亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? arithmetic_codec.h

?? 算術編碼程序源代碼
?? H
字號:
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
//                                                                           -
//                       ****************************                        -
//                        ARITHMETIC CODING EXAMPLES                         -
//                       ****************************                        -
//                                                                           -
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
//                                                                           -
// Fast arithmetic coding implementation                                     -
// -> 32-bit variables, 32-bit product, periodic updates, sorted symbols     -
//                                                                           -
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
//                                                                           -
// Version 1.00  -  April 25, 2004                                           -
//                                                                           -
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
//                                                                           -
//                                  WARNING                                  -
//                                 =========                                 -
//                                                                           -
// The only purpose of this program is to demonstrate the basic principles   -
// of arithmetic coding. It is provided as is, without any express or        -
// implied warranty, without even the warranty of fitness for any particular -
// purpose, or that the implementations are correct.                         -
//                                                                           -
// Permission to copy and redistribute this code is hereby granted, provided -
// that this warning and copyright notices are not removed or altered.       -
//                                                                           -
// Copyright (c) 2004 by Amir Said (said@ieee.org) &                         -
//                       William A. Pearlman (pearlw@ecse.rpi.edu)           -
//                                                                           -
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
//                                                                           -
// A description of the arithmetic coding method used here is available in   -
//                                                                           -
// Lossless Compression Handbook, ed. K. Sayood                              -
// Chapter 5: Arithmetic Coding (A. Said), pp. 101-152, Academic Press, 2003 -
//                                                                           -
// A. Said, Introduction to Arithetic Coding Theory and Practice             -
// HP Labs report HPL-2004-76  -  http://www.hpl.hp.com/techreports/         -
//                                                                           -
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -


// - - Definitions - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

#ifndef ARITHMETIC_CODEC
#define ARITHMETIC_CODEC

#include <stdio.h>


// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// - - Class definitions - - - - - - - - - - - - - - - - - - - - - - - - - - -

class Static_Bit_Model                         // static model for binary data
{
public:

  Static_Bit_Model(void);

  void set_probability_0(double);             // set probability of symbol '0'

private:  //  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
  unsigned least_probable_bit, shift_a, shift_b;
  friend class Arithmetic_Codec;
};

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

class Static_Data_Model                       // static model for general data
{
public:

  Static_Data_Model(void);
 ~Static_Data_Model(void);

  unsigned model_symbols(void) { return data_symbols; }

  void set_distribution(unsigned number_of_symbols,
                        const double probability[] = 0);    // 0 means uniform

private:  //  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
  unsigned * distribution, * rank, * data;
  unsigned data_symbols, most_probable_symbol, first_tests[3];
  friend class Arithmetic_Codec;
};

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

class Adaptive_Bit_Model                     // adaptive model for binary data
{
public:

  Adaptive_Bit_Model(void);         

  void reset(void);                             // reset to equiprobable model

private:  //  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
  void     update(void);
  unsigned update_cycle, bits_until_update;
  unsigned mpb_prob, least_probable_bit, lpb_count, bit_count;
  friend class Arithmetic_Codec;
};

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

class Adaptive_Data_Model                    // adaptive model for binary data
{
public:

  Adaptive_Data_Model(void);
  Adaptive_Data_Model(unsigned number_of_symbols);
 ~Adaptive_Data_Model(void);

  unsigned model_symbols(void) { return data_symbols; }

  void reset(void);                             // reset to equiprobable model
  void set_alphabet(unsigned number_of_symbols);

private:  //  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
  void     update(void);
  unsigned * distribution, * symbol_count, * rank, * data;
  unsigned data_symbols, most_probable_symbol, first_tests[3];
  unsigned total_count, update_cycle, symbols_until_update;
  friend class Arithmetic_Codec;
};


// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// - - Encoder and decoder class - - - - - - - - - - - - - - - - - - - - - - -

// Class with both the arithmetic encoder and decoder.  All compressed data is
// saved to a memory buffer

class Arithmetic_Codec
{
public:

  Arithmetic_Codec(void);
 ~Arithmetic_Codec(void);
  Arithmetic_Codec(unsigned max_code_bytes,
                   unsigned char * user_buffer = 0);         // 0 = assign new

  unsigned char * buffer(void) { return code_buffer; }

  void set_buffer(unsigned max_code_bytes,
                  unsigned char * user_buffer = 0);          // 0 = assign new

  void     start_encoder(void);
  void     start_decoder(void);
  void     read_from_file(FILE * code_file);  // read code data, start decoder

  unsigned stop_encoder(void);                 // returns number of bytes used
  unsigned write_to_file(FILE * code_file);   // stop encoder, write code data
  void     stop_decoder(void);

  void     put_bit(unsigned bit);
  unsigned get_bit(void);

  void     put_bits(unsigned data, unsigned number_of_bits);
  unsigned get_bits(unsigned number_of_bits);

  void     encode(unsigned bit,
                  Static_Bit_Model &);
  unsigned decode(Static_Bit_Model &);

  void     encode(unsigned data,
                  Static_Data_Model &);
  unsigned decode(Static_Data_Model &);

  void     encode(unsigned bit,
                  Adaptive_Bit_Model &);
  unsigned decode(Adaptive_Bit_Model &);

  void     encode(unsigned data,
                  Adaptive_Data_Model &);
  unsigned decode(Adaptive_Data_Model &);

private:  //  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
  void propagate_carry(void);
  void renorm_enc_interval(void);
  void renorm_dec_interval(void);
  unsigned char * code_buffer, * new_buffer, * ac_pointer;
  unsigned base, value, length;                     // arithmetic coding state
  unsigned buffer_size, mode;     // mode: 0 = undef, 1 = encoder, 2 = decoder
};

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品一区二区影视| 一区二区三区在线观看国产| 狠狠色丁香久久婷婷综合_中| 欧美精品三级在线观看| 免费人成在线不卡| 久久综合久久综合久久综合| 激情综合色综合久久综合| 久久精品夜色噜噜亚洲aⅴ| 国产精品一区二区男女羞羞无遮挡| 国产欧美精品区一区二区三区 | 欧美日韩免费观看一区三区| 亚洲福利视频导航| 欧美成人高清电影在线| 国产成人高清在线| 亚洲国产美国国产综合一区二区| 欧美精品xxxxbbbb| 国内精品免费**视频| 亚洲欧美电影院| 欧美一区二区三区免费| 韩国精品一区二区| 亚洲精品视频自拍| 日韩欧美一二三区| 99久久精品国产毛片| 日韩av在线播放中文字幕| 精品播放一区二区| 色诱视频网站一区| 精品一区二区三区影院在线午夜| 自拍偷拍亚洲激情| 精品国产亚洲一区二区三区在线观看| 粗大黑人巨茎大战欧美成人| 亚洲高清免费观看| 亚洲一区av在线| 欧美成人在线直播| 91女人视频在线观看| 精品影院一区二区久久久| 日韩毛片在线免费观看| 久久综合久久综合九色| 在线免费观看视频一区| 国产精品一二三四区| 亚洲成人av资源| 中文字幕一区二区三区四区不卡 | 日韩高清不卡一区二区三区| 国产目拍亚洲精品99久久精品| 在线观看日韩国产| 风间由美一区二区av101| 五月婷婷综合在线| 国产精品久久毛片a| 欧美精品一区二区不卡| 欧美日韩欧美一区二区| 99久久精品99国产精品| 精品一区二区在线观看| 视频一区视频二区中文字幕| 亚洲色欲色欲www在线观看| 2023国产精品| 日韩视频免费观看高清在线视频| 91国偷自产一区二区使用方法| 国产成人夜色高潮福利影视| 青青青伊人色综合久久| 亚洲香肠在线观看| 一区二区三区在线视频免费观看| 国产日产精品1区| 精品电影一区二区三区| 欧美成人伊人久久综合网| 欧美一区二区免费视频| 欧美日韩三级在线| 欧美三级在线播放| 日本久久精品电影| 91麻豆免费看片| 91在线视频免费91| 99久久精品国产观看| av电影天堂一区二区在线观看| 福利一区二区在线观看| 懂色av一区二区在线播放| 国产一区999| 国产精品66部| 成人自拍视频在线| 99在线视频精品| av中文字幕不卡| 日本韩国视频一区二区| 911精品国产一区二区在线| 欧美精品日韩综合在线| 欧美久久高跟鞋激| 欧美肥妇bbw| 日韩三级视频在线观看| 日韩精品自拍偷拍| 久久看人人爽人人| 中文字幕精品综合| 怡红院av一区二区三区| 午夜伦理一区二区| 久久国产精品72免费观看| 国产毛片精品视频| 波多野结衣中文字幕一区| 岛国精品在线播放| 欧美性色欧美a在线播放| 欧美日本在线一区| 精品88久久久久88久久久| 久久久www免费人成精品| 国产精品国产三级国产a| 亚洲国产成人91porn| 人妖欧美一区二区| 处破女av一区二区| 91福利国产精品| 精品久久一区二区三区| 国产精品欧美精品| 亚洲伊人色欲综合网| 老汉av免费一区二区三区 | 国产一区二区三区四区五区入口| 国产99一区视频免费| 欧美伊人久久久久久久久影院 | 色呦呦网站一区| 91麻豆精品国产91久久久资源速度| 精品日产卡一卡二卡麻豆| 国产精品色婷婷久久58| 亚洲高清视频中文字幕| 国产精品99久| 欧美日韩一区二区欧美激情| 精品国产精品一区二区夜夜嗨 | 一区二区成人在线观看| 麻豆传媒一区二区三区| 91亚洲午夜精品久久久久久| 欧美一区二区三区在线| 国产精品的网站| 日本aⅴ亚洲精品中文乱码| 不卡视频一二三| 日韩一区二区三区av| 18欧美亚洲精品| 国产一区视频导航| 日本丰满少妇一区二区三区| 精品国产a毛片| 日韩国产精品久久久久久亚洲| 成人网男人的天堂| 精品久久久网站| 亚洲国产精品一区二区久久 | 天堂蜜桃91精品| 97se亚洲国产综合自在线| 精品国产网站在线观看| 亚洲国产va精品久久久不卡综合| 欧美日韩国产免费一区二区| 中国色在线观看另类| 久久99精品一区二区三区三区| 精品视频全国免费看| 国产精品大尺度| 福利电影一区二区三区| 久久综合狠狠综合久久综合88| 亚洲第一福利一区| 欧美在线一二三| 亚洲精品国产一区二区精华液 | 精品亚洲成a人| 这里只有精品免费| 亚洲黄色在线视频| 色综合色综合色综合 | 26uuu精品一区二区| 日韩经典一区二区| 3d成人动漫网站| 五月天久久比比资源色| 欧美三级资源在线| 亚洲专区一二三| 在线观看国产91| 一区二区在线观看免费| 色综合一区二区三区| 国产精品久久久久影院亚瑟| 粉嫩一区二区三区性色av| 国产欧美精品日韩区二区麻豆天美| 国内精品伊人久久久久av影院| 日韩欧美一级在线播放| 日本午夜精品视频在线观看| 91精品国产全国免费观看| 日韩国产成人精品| 欧美久久一区二区| 男女性色大片免费观看一区二区 | 色综合网色综合| 一区二区视频在线看| 欧美在线色视频| 性做久久久久久免费观看| 欧美日韩精品一区二区三区四区 | 久久久九九九九| 国产精品羞羞答答xxdd| 国产女同性恋一区二区| 成人激情黄色小说| 一区二区三区免费看视频| 欧美日韩美少妇| 老司机精品视频在线| 日本一区二区电影| 在线中文字幕一区| 五月婷婷久久丁香| 2023国产精品自拍| 91麻豆免费观看| 奇米色777欧美一区二区| 精品动漫一区二区三区在线观看| 国产999精品久久久久久绿帽| 中文字幕一区二区三区不卡 | 精品免费视频.| 国产成人精品网址| 亚洲制服丝袜av| 欧美xfplay| 93久久精品日日躁夜夜躁欧美| 亚洲成va人在线观看| 国产午夜亚洲精品午夜鲁丝片| 99re成人精品视频| 免费看日韩精品|