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

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

?? arcode.h

?? 此代碼是C編的EWZ的測試程序,大家可以嘗試對這個包里lena.pgm進行圖像壓縮處理.
?? H
字號:
#ifndef __ARCODE_H_
#define __ARCODE_H_

#ifdef __cplusplus
extern "C" {
#endif

#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <assert.h>
#include <math.h>
#include "memchk.h"

/*--------------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------------*/
/* original copyright */
/*--------------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------------*/
/* The code is taken from the MC-EZBC package files 
 * "ar_code.h" and "ar_code.cpp", C++ version 3.02  -  02/01/96
 *
 * The authors are:
 * Amir Said, William A. Pearlman, S.T. Hsiang and P.Chen at RPI.
 * It is an implementation of the arithmetic-coding algorithm by I.H. Witten,
 * R.M. Neal, and J.G. Cleary, published in ``Arithmetic coding for data
 * compression,'' {\em Commun. ACM}, vol.~30, pp.~520--540, June 1987.
 *
 * Remark:
 * =======
 * - Only binary alphabet is supported.
 * - The file i/o is tied to the coding engine.
 *
 * - 28 Jan 2004 : Fixed the AREncoderEncodeBits bug that occurs when output 32 bits word
 *                 Use unsigned integer and make the mask shift after output bit.
 */
/*--------------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------------*/


/*--------------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------------*/
/* Binary histogram */

/*--------------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------------*/
typedef struct HistoBi_{
  int MaxCount;
  int c0;
  int c1;

} HistoBi;

HistoBi* HistoBiAlloc(int MaxCount, int c0, int c1);
void HistoBiDealloc(HistoBi *h);
void  HistoBiReset(HistoBi *h, int c0, int c1);
void HistoBiTaubScale(HistoBi *h, int MinThre, int TotalThre, int TruncFlag);
void HistoBiScale(HistoBi *h);
void HistoBiUpdate(HistoBi *h, int bit);

/*--------------------------------------------------------------------------------------------*/

/*--------------------------------------------------------------------------------------------*/
/* M-ary histogram
 * The statistical table is implemented using Binary Index Tree as described in
 * P. M. Fenwick, "A new data structure for cumulative frequency tables,"
 * Softw. Pract. Exper. 24, 3 (Mar. 1994), 327-336.
 */
/*--------------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------------*/
typedef struct Histo_{
	int nSymbols;	
	int *Tree;	
	int p2half;
   int TotalFreq;
	int MaxCount;
	int ResetCount;
} Histo;

Histo *HistoAlloc(int MaxCount, int nSymbols);
int HistoCopy(Histo *s, Histo *d);
void HistoDealloc(Histo *h);
int HistoGetCumul(Histo *h, int ix);
void HistoPutValue(Histo *h, int val, int ix);
int HistoGetProb(Histo *h, int ix);
void HistoScaleDown(Histo *h);
int HistoGetSymbol(Histo *h, int CumFreq);
void HistoUpdate(Histo *h, int val, int ix);
void HistoReset(Histo *h);

/*--------------------------------------------------------------------------------------------*/


/*--------------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------------*/
/* Encoder */
/*--------------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------------*/
/* - About the number of bits output by the encoder is obtained as follow
 *
 *			number of bits output = 8*ByteCounter+(8-BitIndex)+BitsToFollow
 *
 * - Note that this is the actual bits that has to be output for correct decoding.
 */
typedef struct AREncoder_{
	FILE *f;
	int Closed;
	int BitBuffer, BitIndex;
	int ByteCounter, SymbolCounter;
	long Low, High, BitsToFollow;
} AREncoder;

AREncoder* AREncoderAlloc(void);
void AREncoderDealloc(AREncoder *ar);
void AREncoderOpenFile(AREncoder *ar, char* filename);
void AREncoderOpenAppendFile(AREncoder *ar, char* filename);
void AREncoderCloseFile(AREncoder *ar);
void AREncoderFlush(AREncoder *ar);

/* coding function */
void AREncoderEncodeBit(AREncoder *ar, int bit);
void AREncoderEncodeSymbol(AREncoder *ar, int bit, HistoBi *h);
void AREncoderEncodeBits(AREncoder *ar, int bits, int word);

int AREncoderBitsOutput(AREncoder *ar);



/*--------------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------------*/
/* Decoder */
/*--------------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------------*/
/*
 * - About the number of bits input by the decoder
 * 
 *			number of bits output = 8*ByteCounter+(8-BitIndex)
 *
 */
typedef struct ARDecoder_{
	FILE *f;
	int Closed;
	int BitBuffer, BitIndex, ExtraBits;
	int ByteCounter, SymbolCounter;
	long Low, High, Value;
} ARDecoder;

ARDecoder* ARDecoderAlloc(void);
void ARDecoderDealloc(ARDecoder *ar);
void ARDecoderOpenFile(ARDecoder *ar, char* filename);
void ARDecoderOpenFileOffset(ARDecoder *ar, char* filename, int OffsetBytes);
void ARDecoderCloseFile(ARDecoder *ar);
/* coding function */
int ARDecoderDecodeBit(ARDecoder *ar);
int ARDecoderDecodeSymbol(ARDecoder *ar, HistoBi *h);
int ARDecoderDecodeBits(ARDecoder *ar, int bits);

int ARDecoderBitsInput(ARDecoder *ar);

/*--------------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------------*/
/* function for m-ary arithmetic coding */
void AREncoderEncodeMSymbol(AREncoder *ar, int s, Histo *h);
int ARDecoderDecodeMSymbol(ARDecoder *ar, Histo *h);

/*--------------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------------*/
void ARCoderWarning(char *fmt, ...);
void ARCoderError(char *fmt, ...);

#ifdef __cplusplus
}
#endif

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜乳av一区二区三区| 亚洲欧美视频在线观看视频| 欧美专区日韩专区| 99久久99久久精品免费观看| 成人18视频在线播放| 处破女av一区二区| 风间由美中文字幕在线看视频国产欧美| 免费观看在线色综合| 水蜜桃久久夜色精品一区的特点| 一区二区三区.www| 亚洲va欧美va人人爽午夜| 亚洲国产精品久久一线不卡| 亚洲妇女屁股眼交7| 亚洲成精国产精品女| 日本不卡一区二区三区高清视频| 秋霞电影网一区二区| 久久国内精品视频| 国产高清精品网站| 色偷偷成人一区二区三区91| 欧美日韩一区在线观看| 7777精品伊人久久久大香线蕉最新版| 欧美日韩视频专区在线播放| 欧美一区二区视频免费观看| 亚洲精品一区二区三区福利| 欧美激情综合在线| 亚洲综合在线五月| 理论电影国产精品| av在线这里只有精品| 欧美自拍丝袜亚洲| 精品日韩在线观看| 成人免费一区二区三区在线观看| 一区二区三区四区国产精品| 奇米在线7777在线精品| 国产精品一区二区三区99| 91亚洲国产成人精品一区二三| 欧美日韩精品欧美日韩精品一综合| 日韩一区二区精品在线观看| 中文字幕精品一区二区三区精品| 亚洲一区二区三区四区在线免费观看 | 2023国产精品自拍| 成人免费视频在线观看| 亚洲国产综合视频在线观看| 精品中文字幕一区二区小辣椒| 国产成人高清在线| 51精品视频一区二区三区| 久久先锋影音av| 亚洲在线视频网站| 国产精品亚洲人在线观看| 91精品福利视频| wwww国产精品欧美| 亚洲午夜激情av| 国产成人免费视频精品含羞草妖精 | 欧美日韩成人在线| 亚洲国产精品黑人久久久| 性做久久久久久| 成人app在线| 久久精品人人做人人爽人人| 日韩电影在线观看网站| 成人avav影音| 国产欧美日韩不卡免费| 日本在线不卡视频一二三区| 日本韩国一区二区三区| 国产蜜臀97一区二区三区 | 26uuu亚洲综合色| 午夜精品久久久久久不卡8050| 国产不卡免费视频| 久久久一区二区| 久久se精品一区精品二区| 国产91精品在线观看| 免费观看在线色综合| 色综合久久久久综合99| 亚洲国产精品激情在线观看| 国产主播一区二区三区| 日韩一区二区在线播放| 日韩av不卡在线观看| 欧美日韩不卡在线| 香蕉av福利精品导航| 欧美电影免费观看高清完整版在线 | 五月婷婷激情综合网| 色狠狠色狠狠综合| 一区二区三区日韩| 在线视频中文字幕一区二区| 亚洲精品成人精品456| 91麻豆精品一区二区三区| 亚洲丝袜另类动漫二区| 色综合天天在线| 亚洲精品国产精品乱码不99 | 亚洲v日本v欧美v久久精品| 欧美影院午夜播放| 亚洲成精国产精品女| 欧美日本一道本在线视频| 午夜精品视频一区| 日韩欧美一区在线观看| 国产一区欧美二区| 中文字幕av一区二区三区免费看| 国产高清在线观看免费不卡| 国产精品色在线| 91久久精品一区二区三区| 麻豆视频一区二区| 欧美xxxxxxxxx| 成人免费高清在线观看| 亚洲精品写真福利| 日韩一卡二卡三卡四卡| 国产美女精品一区二区三区| 国产精品每日更新在线播放网址| 97精品久久久午夜一区二区三区 | 午夜精品久久久久久不卡8050| 欧美日韩一区二区在线视频| 乱一区二区av| 中文一区在线播放| 精品视频一区 二区 三区| 老司机午夜精品| 亚洲视频一区二区在线观看| 欧美精品123区| 成人中文字幕合集| 丝袜亚洲另类欧美| 欧美激情资源网| 69成人精品免费视频| 国产成人福利片| 亚洲综合区在线| 久久久久一区二区三区四区| 91国在线观看| 国产在线精品不卡| 亚洲妇女屁股眼交7| 国产欧美一区二区精品秋霞影院 | 国产乱子轮精品视频| 亚洲美女免费在线| 久久久精品国产免大香伊| 欧美三级中文字幕| 成人国产视频在线观看| 久久成人18免费观看| 又紧又大又爽精品一区二区| 久久这里只有精品首页| 日本一区二区三区dvd视频在线 | 精品国产一区二区三区久久影院| 97se亚洲国产综合在线| 国产另类ts人妖一区二区| 视频一区视频二区中文| 亚洲欧美一区二区三区极速播放| 久久综合丝袜日本网| 制服丝袜av成人在线看| 欧美最猛黑人xxxxx猛交| 成人天堂资源www在线| 国产乱码精品一区二区三区av | 精品久久久久久久一区二区蜜臀| 欧美午夜精品理论片a级按摩| 成人免费看黄yyy456| 国产综合久久久久久鬼色| 日韩av高清在线观看| 亚洲成人你懂的| 亚洲综合图片区| 亚洲视频一区在线| 中文字幕一区二区在线播放| 中文一区二区完整视频在线观看| 久久精品水蜜桃av综合天堂| 欧美精品一区二区三区四区 | 成人免费小视频| 亚洲日本一区二区三区| 亚洲裸体xxx| 悠悠色在线精品| 樱桃视频在线观看一区| 亚洲成人综合在线| 国产成人99久久亚洲综合精品| 久久超碰97人人做人人爱| 老司机午夜精品| 国产精品99久久久久久久vr| 成人自拍视频在线观看| 99综合影院在线| 欧美性生交片4| 欧美久久婷婷综合色| 欧美一区二区不卡视频| 欧美精品一区二区三区一线天视频| 日韩精品一区二区三区蜜臀 | 成人免费视频国产在线观看| caoporn国产精品| 在线免费观看成人短视频| 欧美妇女性影城| 久久一区二区三区四区| 中文字幕二三区不卡| 亚洲精品视频自拍| 天堂av在线一区| 韩国v欧美v日本v亚洲v| 91在线免费看| 欧美一区二区三区在线| 国产片一区二区| 亚洲综合久久久| 久久av老司机精品网站导航| 成人动漫av在线| 欧美日韩免费在线视频| 久久免费国产精品| 亚洲综合在线观看视频| 久久国产精品72免费观看| 99精品热视频| 日韩西西人体444www| 国产精品美女www爽爽爽| 欧美96一区二区免费视频| 成人va在线观看| 日韩精品一区国产麻豆| 亚洲欧美色图小说| 激情六月婷婷久久|