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

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

?? arithmetic_codec.h

?? 算術編碼程序源代碼
?? H
字號:
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
//                                                                           -
//                       ****************************                        -
//                        ARITHMETIC CODING EXAMPLES                         -
//                       ****************************                        -
//                                                                           -
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
//                                                                           -
// Fast arithmetic coding implementation                                     -
// -> 32-bit variables, 32-bit product, periodic updates, table decoding     -
//                                                                           -
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
//                                                                           -
// Version 1.01  -  November 28, 2005                                        -
//                                                                           -
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
//                                                                           -
//                                  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 bit_0_prob;
  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, * decoder_table;
  unsigned data_symbols, last_symbol, table_size, table_shift;
  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 bit_0_prob, bit_0_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(bool);
  unsigned * distribution, * symbol_count, * decoder_table;
  unsigned total_count, update_cycle, symbols_until_update;
  unsigned data_symbols, last_symbol, table_size, table_shift;
  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一区二区三区免费野_久草精品视频
一本大道av伊人久久综合| 亚洲国产精品久久不卡毛片| 麻豆一区二区在线| 日韩亚洲欧美成人一区| 六月丁香综合在线视频| 亚洲一区视频在线| 久久黄色级2电影| 久久久久久久久久美女| 丁香一区二区三区| 一区二区三区在线免费播放| 欧美熟乱第一页| 免费在线观看日韩欧美| 久久综合久久鬼色| 成人av电影免费观看| 亚洲观看高清完整版在线观看| 制服丝袜中文字幕一区| 国产一区二三区| 亚洲婷婷综合色高清在线| 欧美午夜不卡在线观看免费| 精品一区二区免费看| 中文字幕日韩av资源站| 欧美区在线观看| 国产乱人伦精品一区二区在线观看| 国产精品麻豆欧美日韩ww| 日本精品视频一区二区| 久久超级碰视频| 日韩理论片网站| 欧美大度的电影原声| 99视频在线精品| 日本三级亚洲精品| 国产精品区一区二区三区| 欧美久久久久免费| 国产成人免费视频精品含羞草妖精 | 欧美妇女性影城| 欧美va亚洲va在线观看蝴蝶网| 亚洲444eee在线观看| 久久色视频免费观看| 一本色道久久综合亚洲aⅴ蜜桃| 日韩国产一区二| 中文乱码免费一区二区| 欧洲一区在线电影| 国产精品1区二区.| 亚洲aaa精品| 中文字幕亚洲一区二区av在线 | 一本大道综合伊人精品热热| 日本成人中文字幕在线视频| 中文字幕欧美激情| 欧美一级片在线观看| 日本国产一区二区| 懂色一区二区三区免费观看| 男男gaygay亚洲| 亚洲一区二区在线免费观看视频| 国产精品久久久久久福利一牛影视 | 欧美在线视频不卡| 国产高清在线精品| 久久99精品国产麻豆婷婷洗澡| 亚洲自拍偷拍麻豆| 亚洲人成网站色在线观看| 国产亚洲短视频| 337p日本欧洲亚洲大胆色噜噜| 欧美丰满高潮xxxx喷水动漫| 91电影在线观看| av电影天堂一区二区在线| 懂色av一区二区在线播放| 激情六月婷婷综合| 蜜臀av一区二区在线免费观看| 亚洲香肠在线观看| 一区二区三区在线观看网站| 尤物在线观看一区| 最新久久zyz资源站| 欧美韩国日本一区| 中文字幕免费观看一区| 欧美激情中文字幕一区二区| 久久一日本道色综合| 欧美精品一区二区三区蜜臀| 日韩免费观看2025年上映的电影| 欧美精品久久一区| 欧美一级日韩免费不卡| 日韩欧美国产三级| 精品国产一区二区三区av性色 | 午夜精品视频一区| 日韩精品一二三四| 青青草国产成人99久久| 麻豆国产91在线播放| 国产一区福利在线| 国产成人精品aa毛片| 成人动漫av在线| 色综合久久久久| 欧美日韩综合一区| 欧美日韩免费观看一区三区| 男男gaygay亚洲| 亚洲少妇30p| 一区二区三区小说| 亚洲va欧美va人人爽| 蜜桃一区二区三区四区| 国产一区二区三区四区五区入口| 国产黄色精品网站| 99re在线视频这里只有精品| 欧美偷拍一区二区| 日韩免费高清电影| 国产欧美精品日韩区二区麻豆天美 | 成人在线视频首页| 色综合久久久久综合体| 欧美日韩视频第一区| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 日韩精品一区在线| 国产亚洲精品aa| 一区二区三区四区不卡在线| 免费在线观看日韩欧美| 国产91精品一区二区麻豆网站| 色综合久久综合网欧美综合网 | 精品99999| 亚洲欧美另类久久久精品2019| 亚洲.国产.中文慕字在线| 精品亚洲欧美一区| 91日韩精品一区| 欧美va亚洲va在线观看蝴蝶网| 国产精品视频免费看| 五月婷婷综合网| 国产福利精品一区二区| 欧美系列日韩一区| 久久精品一二三| 亚洲成人av中文| 国产乱码精品一区二区三区五月婷| 91在线高清观看| 91精品国产91热久久久做人人| 国产精品网站一区| 亚洲国产色一区| 国产中文字幕一区| 欧美日韩中文国产| 久久精品人人做人人综合 | 亚洲视频一区二区在线| 免费观看在线综合| 一本大道久久a久久综合婷婷| 欧美一级黄色片| 亚洲图片欧美一区| 99视频在线观看一区三区| 日韩免费福利电影在线观看| 亚洲黄一区二区三区| 成人一区在线看| 欧美tk—视频vk| 肉色丝袜一区二区| 欧美在线视频日韩| 亚洲乱码国产乱码精品精98午夜| 国产一区二区不卡| 日韩一区二区三区视频在线| 一区二区三区欧美在线观看| 成人aa视频在线观看| 久久久不卡网国产精品一区| 蜜臀av一区二区在线免费观看| 欧美日韩一区小说| 一区二区三区鲁丝不卡| 色综合久久久久综合体| 亚洲欧洲精品天堂一级| 国产精品资源网站| 久久亚洲捆绑美女| 激情综合网av| 日韩女优av电影在线观看| 免费在线成人网| 日韩一卡二卡三卡国产欧美| 日本不卡123| 制服丝袜日韩国产| 日日骚欧美日韩| 欧美一区二区三区精品| 美腿丝袜亚洲三区| 欧美va日韩va| 国产美女av一区二区三区| 日韩一区二区三区在线视频| 91丨九色丨蝌蚪丨老版| 国产精品天美传媒| jlzzjlzz亚洲女人18| 中文字幕亚洲综合久久菠萝蜜| 不卡视频在线观看| 中文字幕欧美一| 色欲综合视频天天天| 一区二区三区四区不卡视频| 欧美视频一区二区三区| 丝袜亚洲精品中文字幕一区| 日韩欧美专区在线| 国产一区二区看久久| 亚洲国产精品成人综合| eeuss国产一区二区三区| 亚洲精选在线视频| 欧美色手机在线观看| 蜜芽一区二区三区| 久久综合九色综合97_久久久| 成人午夜视频免费看| 亚洲黄一区二区三区| 欧美一级二级在线观看| 国产精品99久| 亚洲伦理在线精品| 日韩视频免费观看高清完整版在线观看 | 91麻豆精品国产91久久久久久久久 | 91久久精品一区二区三区| 亚洲一区二区3| 欧美成人精品福利| av在线一区二区三区| 一级精品视频在线观看宜春院| 欧美一级欧美三级在线观看| 国产毛片精品视频|