ac_simple1.c

来自「视频编码的码率控制」· C语言 代码 · 共 39 行

C
39
字号
//*********************************************************************************************
//Simple arithmetic coding program for the example of Witten and Neal's paper---
// ---arithmetic coding for data compression(Communications of ACM,June 1987 Volume 30 Number 6)
//
//******************************************************************************************

static double low;
static double high;

void start_encoding();
void encode_symbol(int,double *);

int main(int argc, char* argv[])
{
	double c_freq[7]={1,0.9,0.8,0.6,0.5,0.2,0}; //AC Models
	int sym[5]={5,6,4,4,1};
	int i;
	
	start_encoding();
	for(i=0;i<5;i++)
		encode_symbol(sym[i],c_freq);

	return 0;
		
}

void encode_symbol(int symbol,double *cum_freq)
{
	double range;
	range=high-low;
	high=low+cum_freq[symbol-1]*range;
	low=low+cum_freq[symbol]*range;
}

void start_encoding()
{
	low=0;
	high=1;
}

⌨️ 快捷键说明

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