context.h

来自「傅立叶变换和小波变换是图像压缩的重要工具。该代大戏是利用小波变换进行图像压缩。」· C头文件 代码 · 共 34 行

H
34
字号
#ifndef CRB_CONTEXT_H
#define CRB_CONTEXt_H

#include <crblib/arithc.h>

typedef struct { int private; } context;

extern context * contextCreate(arithInfo * arithinfo,int alphabet_size);
extern context * contextCreateMax(arithInfo * arithinfo,int length,int totalMax);
extern bool contextEncode(context *pContext, int symbol); 	/* returns "was char written?" */
extern int  contextDecode(context *pContext); 							/* returns -1 for escape; after escape you MUST call contextAdd! */
extern void contextAdd   (context *pContext, int symbol); 	/* same as Decode_GotC */
extern void contextHalve (context *pContext); 							/* halve counts */
extern void contextFree  (context *pContext); 							/* purge */
extern bool contextHas   (context *pContext,int symbol);

extern bool contextEncodeNoAddIfEsc(context *pContext, int symbol);

/******** not for the general public: ********/

extern void contextGetInterval(context *pContext, int *pLow, int *pHigh, int symbol);
	// pass symbol+1 to GetInterval!!
extern int contextGetCumProb(context *pContext,int symbol); 
extern int contextGetProb(context *pContext,int symbol); 

/******** same as normal encode/decode , but use cap as NumSymbols;
		i.e. symbol < cap always *******/

extern bool contextEncodeCapped(context *pContext, int symbol,int cap);
extern int contextDecodeCapped(context *pContext,int cap);

#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?