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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? arithdec.c

?? 這是我剛剛完成的關(guān)于JPEG2000的C語言實現(xiàn)的部分程序。小波變換是采用97變換
?? C
字號:
/*****************************************************************************
// 程序: ebcot 編碼
// 版本:  V0.0
// 作者: 胡運平
// 最后修改時間 : 30, 6, 2005
// 功能描述:
			Context variables made global, rather than access via pointers.
            Manually inlined the CodeMPS and CodeLPS functions.
			Implements mq 解碼,實現(xiàn)MQ解碼所需要的參數(shù)
****************************************************************************/
#include <stdio.h>
#include"mq_code.h"

// Set this to inline to make all internal functions inline.
#define inline
typedef struct
//上下文狀態(tài)的相關(guān)信息
{
	unsigned char I;   //values in the range 0..46
	unsigned char MPS; //MPS(either 0 or 1
} ArithDecContext;

//算術(shù)編碼器所需要的狀態(tài)信息 
static long int C;               //下限寄存器
static long int A;       //間隔長度寄存器
static long int CT;             //向下計數(shù)器
static unsigned char B;         // The byte that is currently being assembled 
static int firstByte;
//1 if the current byte is the first output byte, otherwise 0
//static int L;//代表到當(dāng)前為止所產(chǎn)生的編碼字節(jié)數(shù)
//static uint8 T;//臨時字節(jié)緩沖器
//用 static來聲明一個變量的作用有兩個,一是對局部變量用static聲明,則為該變量分配
//的空間在整個程序執(zhí)行期間始終存在。二是全局變量用static聲明,則該變量的作用域只限于
//本文件模塊。
// The array of allowable context states 
#define MAXCONTEXT 18
static ArithDecContext contexts[MAXCONTEXT+1];//19個(I,MPS)
// Special context labels 
#define RUNLENGTH_CX 17
#define UNIFORM_CX 18
/*****************************************************************************
 Define these inputs to have different data types 
******************************************************************************/
static long int Qe[47] =
{//Qe值的十六進(jìn)制表示
	0x5601UL, 0x3401UL, 0x1801UL, 0x0ac1UL, 0x0521UL, 0x0221UL, 0x5601UL,
	0x5401UL, 0x4801UL, 0x3801UL, 0x3001UL, 0x2401UL, 0x1c01UL, 0x1601UL,
	0x5601UL, 0x5401UL, 0x5101UL, 0x4801UL, 0x3801UL, 0x3401UL, 0x3001UL,
	0x2801UL, 0x2401UL, 0x2201UL, 0x1c01UL, 0x1801UL, 0x1601UL, 0x1401UL,
	0x1201UL, 0x1101UL, 0x0ac1UL, 0x09c1UL, 0x08a1UL, 0x0521UL, 0x0441UL,
	0x02a1UL, 0x0221UL, 0x0141UL, 0x0111UL, 0x0085UL, 0x0049UL, 0x0025UL,
	0x0015UL, 0x0009UL, 0x0005UL, 0x0001UL, 0x5601UL
};
static unsigned char SWITCH[47] =
{
	1, 0, 0, 0, 0, 0,
	1, 0, 0, 0, 0, 0, 0, 0,
	1, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0,
	0
};
static unsigned char NMPS[47] =
{
	1 , 2 , 3 , 4 , 5 , 38 ,
	7 , 8 , 9 , 10 , 11 , 12 , 13 , 29 ,
	15 , 16 , 17 , 18 , 19 , 20 , 21 , 22 ,
	23 , 24 , 25 , 26 , 27 , 28 , 29 , 30 ,
	31 , 32 , 33 , 34 , 35 , 36 , 37 , 38 ,
	39 , 40 , 41 , 42 , 43 , 44 , 45 , 45 ,
	46
};
static unsigned char NLPS[47] =
{
	1 , 6 , 9 , 12 , 29 , 33 ,
	6 , 14 , 14 , 14 , 17 , 18 , 20 , 21 ,
	14 , 14 , 15 , 16 , 17 , 18 , 19 , 19 ,
	20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 ,
	28 , 29 , 30 , 31 , 32 , 33 , 34 , 35 ,
	36 , 37 , 38 , 39 , 40 , 41 , 42 , 43 ,
	46
};
/*****************************************************************************
//輸入字節(jié)Write in bytes, allowing for 0xFF stuffing.
*****************************************************************************/
static inline void byte_in(unsigned char b1)
{
	/* This test sequence might speed up process */
	if (B == 0xFF)//
	{
//		b1 = ReceiveByte(FILE *context);
		if (b1 > 0x8F)
		{
			C += 0xFF00;
		    CT = 8;
		}			
		else
		{		
			C += (B<<=9);//B是C寄存器中的8個b
			CT = 7;
		}		
	}
	else//B != 0XFF;
	{
//		B = ReceiveByte(FILE *context);
		C += (B<<=8);//B是C寄存器中的8個b
		CT = 8;
	}	
}


/******************************************************************************
//初始化算術(shù)解碼器
******************************************************************************/
void ArithDecInit()
{
	C = 0;
//	B = ReceiveByte(FILE *context);
	C += B << 16;
	byte_in(B);
	C <<= 7;
	CT -= 7;
	A = 0x8000;	

} 
/*****************************************************************************
編碼中的重新歸一化直到概率區(qū)間A的大小超過0.75
*****************************************************************************/
static inline void Renorme(void)
{
	do
	{//Check that there will be no overflow with these shifts 
		if (CT == 0)
			byte_in(B);
		A <<= 1;
		C <<= 1;
		CT -= 1;		
	}while (A <= 0x8000);//while((A && 0x8000)==0)
} 

/*****************************************************************************
//Encode a bit using the given context.Output bits will be written to the file 
given to ArithEncInit().
param: D - The bit to encode, either 0 or 1.
param: CX - The number of the context to use.
*****************************************************************************/

unsigned char ArithDecode(unsigned char CD,unsigned char CX)
{
	ArithDecContext *pCX;//指向ArithDecContext的指針
	unsigned char I;
	unsigned char D;
	long int QeI;
	unsigned char MPS;
	pCX = &(contexts[CX]);
	//Put the current context into globals, and write them back later 
	I = pCX->I;//索引號0--46
	MPS = pCX->MPS;//二進(jìn)制數(shù)據(jù)。0 1
	QeI = Qe[I];//概率估計值
	if (pCX->MPS == CD)
	{/* CodeMPS */
		A -= QeI;
		if ((C>>16)<QeI)//
		{
			if(A < QeI)
			{
				A = QeI;
				D = MPS;
				I = NMPS[I];
			}	
			else
			{
				A = QeI;
				D = 1- MPS;
				if(SWITCH[I] == 1)
				{
					MPS = 1 - MPS;
				}
				I = NLPS[I];
			}
			Renorme();			
		}
		else
		{
			C -= QeI<<16;
			if (A >= 0x8000u)
				D = MPS;
			else
			{
				if(A < QeI)
				{
					D = 1- MPS;
					if(SWITCH[I] == 1)
					{
						MPS = 1 - MPS;
					}
					I = NLPS[I];
				}
				else
				{
					D = MPS;
					I = NMPS[I];
				}
				Renorme();
			} 
		}
	}
	else
	{/* CodeLPS */
		A -= QeI;
		if ((C>>16)<QeI)//
		{
			if(A < QeI)
			{
				A = QeI;
				D = MPS;
				I = NMPS[I];
			}	
			else
			{
				A = QeI;
				D = 1- MPS;
				if(SWITCH[I] == 1)
				{
					MPS = 1 - MPS;
				}
				I = NLPS[I];
			}
			Renorme();			
		}
		else
		{
			C -= QeI<<16;
			if (A >= 0x8000u)
				D = MPS;
			else
			{
				if(A < QeI)
				{
					D = 1- MPS;
					if(SWITCH[I] == 1)
					{
						MPS = 1 - MPS;
					}
					I = NLPS[I];
				}
				else
				{
					D = MPS;
					I = NMPS[I];
				}
				Renorme();
			} 
		}
	}
	pCX->I = I;
	pCX->MPS = MPS;
	return D;
} 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久电影网电视剧免费观看| 精品视频全国免费看| 菠萝蜜视频在线观看一区| jizzjizzjizz欧美| 欧美成人在线直播| 亚洲综合免费观看高清完整版在线| 久久精品国产精品亚洲红杏 | 色狠狠综合天天综合综合| 日韩一区二区三区四区 | 成人av资源站| 日韩欧美中文字幕公布| 亚洲综合在线免费观看| 99久久亚洲一区二区三区青草| 欧美一区二区三区日韩| 亚洲国产日韩精品| 色噜噜狠狠成人网p站| 国产精品私人自拍| 激情深爱一区二区| 91精品国产综合久久精品| 亚洲综合一二三区| 日本韩国精品一区二区在线观看| 国产日韩欧美电影| 国产黄人亚洲片| 精品成人一区二区三区四区| 毛片av中文字幕一区二区| 8x8x8国产精品| 青青国产91久久久久久 | 日日夜夜精品视频免费| 91精品福利视频| 亚洲精品国产精华液| 91蜜桃视频在线| 最新国产精品久久精品| 9i在线看片成人免费| 国产精品你懂的在线欣赏| 福利一区福利二区| 中文字幕久久午夜不卡| 成人黄色网址在线观看| 亚洲欧美偷拍另类a∨色屁股| 99国产精品国产精品毛片| 国产精品九色蝌蚪自拍| kk眼镜猥琐国模调教系列一区二区 | 91天堂素人约啪| 1024亚洲合集| 欧美三级午夜理伦三级中视频| 亚洲日本一区二区三区| 欧美私人免费视频| 午夜欧美大尺度福利影院在线看| 欧美剧情电影在线观看完整版免费励志电影 | 91在线看国产| 一区二区三区四区乱视频| 欧美色涩在线第一页| 日韩av电影免费观看高清完整版 | 激情深爱一区二区| 中文字幕精品在线不卡| 欧美自拍偷拍一区| 麻豆极品一区二区三区| 国产拍揄自揄精品视频麻豆| 色美美综合视频| 青娱乐精品视频在线| 国产欧美一区二区精品婷婷 | 国产精品久久免费看| 91国内精品野花午夜精品| 免费欧美在线视频| 国产精品初高中害羞小美女文| 一本一道久久a久久精品| 全部av―极品视觉盛宴亚洲| 中文字幕av一区二区三区高| 欧美日韩一卡二卡| 国产精品亚洲综合一区在线观看| 亚洲少妇30p| 精品国产乱码久久久久久蜜臀| av在线一区二区| 日韩电影免费在线观看网站| 欧美国产97人人爽人人喊| 欧美日韩和欧美的一区二区| 国产麻豆精品95视频| 亚洲成av人影院| 国产精品乱码人人做人人爱| 欧美一级电影网站| 色综合一区二区三区| 久久精品国产99国产| 亚洲精品日日夜夜| 国产婷婷精品av在线| 欧美老女人在线| 色狠狠桃花综合| 高清日韩电视剧大全免费| 五月天激情综合| 亚洲视频一区二区免费在线观看| 精品久久久久久久人人人人传媒| 欧美亚洲一区二区在线| gogogo免费视频观看亚洲一| 久久99精品国产.久久久久久| 亚洲男女一区二区三区| 亚洲国产精华液网站w| 日韩欧美的一区| 欧美日韩国产首页| 色丁香久综合在线久综合在线观看| 国产一区二区精品久久91| 日韩专区中文字幕一区二区| 亚洲精品第一国产综合野| 国产日韩av一区| 国产天堂亚洲国产碰碰| 欧美大片在线观看| 69堂国产成人免费视频| 欧美午夜一区二区三区 | 日韩亚洲欧美在线观看| 欧美日本韩国一区| 欧美日韩高清影院| 欧美精品日韩精品| 欧美日韩成人在线| 欧美日韩在线三区| 欧美性受极品xxxx喷水| 在线免费观看视频一区| 色呦呦网站一区| 色哟哟在线观看一区二区三区| 91丨九色丨黑人外教| 99视频在线精品| 一本色道综合亚洲| 91麻豆福利精品推荐| 色综合久久综合网97色综合 | 亚洲国产欧美日韩另类综合| 夜色激情一区二区| 亚洲不卡av一区二区三区| 亚洲国产精品久久久久婷婷884 | 欧美日韩成人在线一区| 在线播放视频一区| 欧美tickling挠脚心丨vk| 久久亚洲精华国产精华液 | 精品国产制服丝袜高跟| 欧美v日韩v国产v| 国产亚洲婷婷免费| 中文字幕亚洲在| 亚洲福利国产精品| 久久av老司机精品网站导航| 韩国一区二区三区| 成人免费毛片高清视频| 色婷婷综合久久久| 在线综合视频播放| 久久色在线观看| 自拍av一区二区三区| 日韩精品三区四区| 国产在线视频一区二区| 99麻豆久久久国产精品免费优播| 色偷偷成人一区二区三区91| 56国语精品自产拍在线观看| 欧美不卡激情三级在线观看| 欧美经典一区二区三区| 伊人婷婷欧美激情| 麻豆国产精品官网| 成人高清视频免费观看| 欧美三级视频在线观看| 国产亲近乱来精品视频| 亚洲电影一级片| 丁香六月久久综合狠狠色| 欧美日韩卡一卡二| 久久青草欧美一区二区三区| 一区二区三区四区不卡视频| 久久国产精品99精品国产| 91在线精品一区二区三区| 精品国产3级a| 一区二区三区欧美久久| 国产在线麻豆精品观看| 欧美视频一区二区三区在线观看| 精品成人在线观看| 亚洲成人精品一区二区| 懂色av一区二区三区免费观看| 欧美日韩中文一区| 国产精品私人影院| 精品亚洲aⅴ乱码一区二区三区| 91在线国产观看| 日本一区二区视频在线| 蜜臀av一区二区三区| 欧美三级欧美一级| 国产精品毛片大码女人| 国产专区欧美精品| 欧美一级日韩一级| 亚洲国产美女搞黄色| 99国产精品久久久久| 日本一区二区高清| 久久99精品国产.久久久久久| 欧美日韩不卡视频| 一区二区三区中文在线| aaa欧美日韩| 国产欧美日韩另类视频免费观看| 麻豆精品蜜桃视频网站| 在线观看91av| 亚洲成人免费av| 欧美三级中文字幕在线观看| 一区二区三区欧美视频| 一本色道久久综合亚洲91| 中文字幕一区日韩精品欧美| 国产91在线观看| 日本一区二区视频在线观看| 国产剧情在线观看一区二区| 日韩精品专区在线影院观看 | 欧美精品v国产精品v日韩精品| 亚洲女同女同女同女同女同69| 成人性生交大合| 中文字幕制服丝袜一区二区三区| 丁香亚洲综合激情啪啪综合|