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

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

?? unezw.c

?? VC小波應用 視頻編碼播放 EZW2 WAVLETS TRANSFORMER
?? C
?? 第 1 頁 / 共 2 頁
字號:
	for (i=0; i<4; i++){
		BasicCoderDealloc(DominantPassCoder[i]);
	}
	BasicCoderDealloc(SubordinateListCoder);
	free(DomList);
	free(SubList);
	MapDealloc(map);
	
}

/*----------------------------------------------------------------------------*/	
/*----------------------------------------------------------------------------*/	
void DecodeDominantPassMortonScan(DLNode *DomList, SLNode *SubList,
											 int *SubListSize, WTRANSFORM *transform, 
											 MAP *map, int threshold, 
											 ArithDecoder *decoder,
											 BasicCoder **DominantPassCoder, 
											 int DecodeBytes)
{
	int i, j, m, n;
	DLNode node;
	char NodeStatus;
	Boolean HighestSubband = FALSE;
	int IZCount;
	BasicCoder *Coder;
	Boolean ParentSignificant;
	Boolean PreviousCoeffSignificant;
	Boolean CurrentCoeffSignificant = FALSE;
	int DomListSize=0, DomListIndex;
	
	/* initialize LL_0 subband */
	for (j=0; j<transform->subbandVSize[0]; j+=2){
		for (i=0; i<transform->subbandHSize[0]; i+=2){
			/* begin quad_coeff */
			for (m=0; m<4; m++){
				/* parent */
				node.x = i+ScanOrderX[m];
				node.y = j+ScanOrderY[m];
				node.scale = 0;
				node.orientation = 0;

				NodeStatus = MapGetNodeSymbol(map, node.scale, node.orientation,
															node.x, node.y);

				if (!NodeStatus){
					/* node has not been decoded */
					PreviousCoeffSignificant = CurrentCoeffSignificant;
				
					/* perform context switching */
					ParentSignificant = BASEBAND_PARENT_SIGNIFICANT;
					
					if (ParentSignificant && PreviousCoeffSignificant){
						Coder = DominantPassCoder[0];
					}
					else if (ParentSignificant){
						Coder = DominantPassCoder[1];
					}
					else if (PreviousCoeffSignificant){
						Coder = DominantPassCoder[2];
					}
					else{
						Coder = DominantPassCoder[3];
					}

					node.code = BasicCoderDecode(Coder, decoder, TRUE);
					
					DecodeNode(SubList, SubListSize, transform, &node, threshold);

					if (ArithDecoderNBitsInput(decoder)/8 >= DecodeBytes){
						EndDecoding = TRUE;
						return;
					}

					CurrentCoeffSignificant = FALSE;

					if (node.code == POS || node.code == NEG){
						MapSetNodeSymbol(map, node.scale, node.orientation,
							node.x, node.y, 1);
						CurrentCoeffSignificant = TRUE;
					}
				}
				else{
					CurrentCoeffSignificant = TRUE;
				}

				if (node.code!=ZTR || NodeStatus){
					/* insert the offsprings - do the LH_1 first */
					/* LH_0 subband in the main list */
					DomList[DomListSize].x = node.x;
					DomList[DomListSize].y = node.y;
					DomList[DomListSize].scale = 1;
					DomList[DomListSize].orientation = 0;
					DomListSize++;
				}
			}
			/* end quad_coeff */
		}
	}
	
	/* add the HL_1 and HH_1 etries into the list */
	m = DomListSize;

	/* HL_1 */
	for (i=0; i<m; i++){
		DomList[DomListSize].x = DomList[i].x;
		DomList[DomListSize].y = DomList[i].y;
		DomList[DomListSize].scale = 1;
		DomList[DomListSize].orientation = 1;
		DomListSize++;
	}
	
	/* HH_1 */
	for (i=0; i<m; i++){
		DomList[DomListSize].x = DomList[i].x;
		DomList[DomListSize].y = DomList[i].y;
		DomList[DomListSize].scale = 1;
		DomList[DomListSize].orientation = 2;
		DomListSize++;
	}

	/* start the scanning */
	DomListIndex = 0;
	do {
		if (DomListIndex < DomListSize){
			node = DomList[DomListIndex];
	
			NodeStatus = MapGetNodeSymbol(map, node.scale, node.orientation, 
									node.x, node.y);

			if (!NodeStatus){
				PreviousCoeffSignificant = CurrentCoeffSignificant;
				
				if ((node.scale == transform->nsteps) && !HighestSubband){
					/* prevent entering the code again */
					HighestSubband = TRUE;
					/* switch to 3 symbols */
					for (i=0; i<4;i++){
						IZCount = ContextGetProb(DominantPassCoder[i]->context, IZ);
						ContextPutValue(DominantPassCoder[i]->context, -IZCount, IZ);
						ContextPutValue(DominantPassCoder[i]->context, IZCount, ZTR);
					}
				}
				
				/* check if parent is significant by looking at the map */
				/* special treatment for scale 1 subbands */
				if (node.scale==1){
					if (MapGetNodeSymbol(map, 0, 0, node.x, node.y)){
						ParentSignificant = TRUE;
					}
					else{
						ParentSignificant = FALSE;
					}
				}
				else{
					if ( MapGetNodeSymbol(map, node.scale - 1, node.orientation, 
						node.x>>1, node.y>>1)){
						ParentSignificant = TRUE;
					}
					else{
						ParentSignificant = FALSE;
					}
				}
				
				/* perform context switching */
				if (ParentSignificant && PreviousCoeffSignificant){
					Coder = DominantPassCoder[0];
				}
				else if (ParentSignificant){
					Coder = DominantPassCoder[1];
				}
				else if (PreviousCoeffSignificant){
					Coder = DominantPassCoder[2];
				}
				else{
					Coder = DominantPassCoder[3];
				}

				node.code = BasicCoderDecode(Coder, decoder, TRUE);
			
				DecodeNode(SubList, SubListSize, transform, &node, threshold);
			
				if (ArithDecoderNBitsInput(decoder)/8 >= DecodeBytes){
					EndDecoding = TRUE;
					return;
				}

				CurrentCoeffSignificant = FALSE;
				if (node.code == POS || node.code == NEG){
					MapSetNodeSymbol(map, node.scale, node.orientation, 
											node.x, node.y, 1);
					CurrentCoeffSignificant = TRUE;
				}
			}
			else{
				CurrentCoeffSignificant = TRUE;
			}

			/* check if need to insert children */
			if ((node.code!=ZTR || NodeStatus) && node.scale<transform->nsteps){
				i = node.x<<1;
				j = node.y<<1;
				node.scale = node.scale+1;

				/* same orientation */
				for (m=0; m<4; m++){
					DomList[DomListSize].x = i+ScanOrderX[m];
					DomList[DomListSize].y = j+ScanOrderY[m];
					DomList[DomListSize].scale = node.scale;
					DomList[DomListSize].orientation = node.orientation;
					DomListSize++;
				}
			}
			DomListIndex++;
		}
		else{
			break;
		}
	}while(1);

	return;
}

/*----------------------------------------------------------------------------*/	
/*----------------------------------------------------------------------------*/	
void DecodeNode(SLNode *SubList, int *SubListSize, WTRANSFORM *transform, 
					 DLNode *node, int threshold)
{
	int idx;
	
	if (node->scale==0){
		idx=0;
	}
	else{
		idx = 3*node->scale - 2 + node->orientation;
	}
	
	if (node->code == POS || node->code == NEG){
		if (node->code == POS){
			transform->subbandPtr[idx]
				[node->y*transform->subbandHSize[idx] + node->x] = 3*(threshold>>1);
		}
		else{
			transform->subbandPtr[idx]
				[node->y*transform->subbandHSize[idx] + node->x] = -3*(threshold>>1);
		}
		
		/* put node into subordinate list */
		SubList[*SubListSize].x = node->x;
		SubList[*SubListSize].y = node->y;
		SubList[*SubListSize].scale = node->scale;
		SubList[*SubListSize].orientation = node->orientation;
		SubList[*SubListSize].qvalue = 0;
		SubList[*SubListSize].rvalue = 0;
		(*SubListSize)++;
	}
}

/*----------------------------------------------------------------------------*/	
/*----------------------------------------------------------------------------*/	
void DecodeSubordinatePass(SLNode *SubList, int SubListSize, int threshold,
									WTRANSFORM *transform, ArithDecoder *decoder,
									BasicCoder *SubordinateListCoder, int DecodeBytes)
{
	double temp;
	int idx, i;
	
	if (threshold>0){
		for (i=0; i<SubListSize; i++){
			
			idx = 0;
			if (SubList[i].scale!=0){
				idx = 3*SubList[i].scale - 2 + SubList[i].orientation;
			}
			
			temp = transform->subbandPtr[idx]
						[SubList[i].y*transform->subbandHSize[idx] + SubList[i].x];
			
			if (BasicCoderDecode(SubordinateListCoder, decoder, TRUE) == 1){
				if (temp>=0){
					transform->subbandPtr[idx]
						[SubList[i].y*transform->subbandHSize[idx] + SubList[i].x] 
						= temp + (threshold>>1);
				}
				else{
					transform->subbandPtr[idx]
						[SubList[i].y*transform->subbandHSize[idx] + SubList[i].x]
						= temp - (threshold>>1);
				}
			}
			else{
				if (temp>=0){
					transform->subbandPtr[idx]
						[SubList[i].y*transform->subbandHSize[idx] + SubList[i].x]
						= temp - (threshold>>1);
				}
				else{
					transform->subbandPtr[idx]
						[SubList[i].y*transform->subbandHSize[idx] + SubList[i].x]
						= temp + (threshold>>1);
				}
			}
				
			SubList[i].rvalue = abs((int)transform->subbandPtr[idx]
										[SubList[i].y*transform->subbandHSize[idx] 
										+ SubList[i].x]);
			
			if (ArithDecoderNBitsInput(decoder)/8 >= DecodeBytes){
				EndDecoding = TRUE;
				break;;
			}
		}
	}
}

/*----------------------------------------------------------------------------*/	
/*----------------------------------------------------------------------------*/	
void UNEZW2Error(char *fmt, ...)
{
	va_list argptr;
	
	va_start( argptr, fmt );
	fprintf(stderr, "UNEZW2Error: " );
	vprintf( fmt, argptr );
	va_end( argptr );
	exit( -1 );
}

/*----------------------------------------------------------------------------*/	
/*----------------------------------------------------------------------------*/	
void UNEZW2Warning(char *fmt, ...)
{
	va_list argptr;
	
	va_start( argptr, fmt );
	fprintf( stderr, "UNEZW2Warning: " );
	vprintf( fmt, argptr );
	va_end( argptr );
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91香蕉视频污在线| 久久久精品综合| 午夜不卡av在线| 久久精品水蜜桃av综合天堂| 色婷婷综合在线| 成人白浆超碰人人人人| 久草这里只有精品视频| 亚洲高清在线视频| 亚洲一二三四区不卡| 亚洲靠逼com| 亚洲日本青草视频在线怡红院| 欧美亚洲日本国产| 欧美日韩精品高清| 欧美丰满少妇xxxbbb| 欧美日韩一区二区三区四区| 日本韩国一区二区三区| 国产成人免费视频网站 | 欧美一区二区三区在线视频| 一本到不卡精品视频在线观看 | 亚洲一区二区三区国产| 精品国产青草久久久久福利| 精品久久久久久亚洲综合网| 欧美xxxxxxxxx| 国产精品免费看片| 悠悠色在线精品| 亚洲综合激情另类小说区| 午夜影视日本亚洲欧洲精品| 肉丝袜脚交视频一区二区| 国产一区二区三区在线观看精品| 卡一卡二国产精品| 91麻豆高清视频| 日韩精品中文字幕一区| 91.com在线观看| 国产精品嫩草影院com| 亚洲国产欧美另类丝袜| 国产一区二区中文字幕| voyeur盗摄精品| 欧美一区二区视频在线观看2020| 久久久亚洲综合| 中文字幕一区三区| 精品无人码麻豆乱码1区2区| 99在线视频精品| 亚洲高清免费视频| 欧美在线999| 国产91综合网| 91视视频在线直接观看在线看网页在线看| 91久久免费观看| 2023国产精品自拍| 日本视频在线一区| 91九色最新地址| 一区二区三区中文在线观看| 国产一区二区在线影院| 懂色av中文一区二区三区| 欧美日韩一区二区三区四区| 亚洲综合丁香婷婷六月香| 日本高清成人免费播放| 欧美国产日韩亚洲一区| 国产成+人+日韩+欧美+亚洲| 国产午夜亚洲精品理论片色戒| 久久99国产乱子伦精品免费| 欧美一区二区三区思思人| 日一区二区三区| 精品国产一二三| 国产剧情在线观看一区二区| 欧美xxx久久| 91色视频在线| 亚洲美女免费在线| 欧美精品丝袜中出| 久久精品久久久精品美女| 日韩女优毛片在线| 国产精品一二三在| 亚洲欧洲日韩一区二区三区| 欧美日韩一区二区欧美激情| 亚洲精品国产a久久久久久| 91黄视频在线| 精品一区二区三区蜜桃| 亚洲精品一线二线三线无人区| 精品一区二区av| 一区二区三区日韩在线观看| 欧美一区二区三区视频在线| 99久久综合狠狠综合久久| 亚洲五月六月丁香激情| 国产三区在线成人av| 欧美中文字幕一区二区三区| 国内精品久久久久影院一蜜桃| 国产精品第四页| 欧美成人精品高清在线播放| 99久久久久免费精品国产| 久久成人av少妇免费| 天天色天天操综合| 亚洲一区二区高清| 国产精品久久久久影视| 久久久综合视频| 欧美成人高清电影在线| 制服丝袜中文字幕一区| 国产麻豆视频精品| 亚洲最新在线观看| 亚洲欧美另类图片小说| 亚洲人快播电影网| 一区在线中文字幕| 亚洲免费在线电影| 中文字幕一区二区三区不卡在线| 国产精品无码永久免费888| 欧美视频在线一区二区三区| 国产欧美精品日韩区二区麻豆天美| 欧美日韩在线播放| 国产成人综合在线播放| 久久久国产一区二区三区四区小说| 在线播放中文字幕一区| 日韩三级视频在线观看| 日韩精品一区二区在线观看| 久久综合给合久久狠狠狠97色69| 欧美成人vps| 亚洲欧美日韩中文播放| 一区二区成人在线| 黑人巨大精品欧美一区| 99免费精品在线观看| 欧美一区二区三区免费视频| 久久精品亚洲精品国产欧美| 欧美国产精品v| 国产美女在线观看一区| 精品入口麻豆88视频| 亚洲日本青草视频在线怡红院| 精品在线一区二区| 7777精品伊人久久久大香线蕉完整版| 国产欧美一区二区三区沐欲 | 亚洲高清在线视频| 色综合中文字幕| 亚洲色图欧美偷拍| 成人黄色一级视频| 日本一区二区三区四区在线视频 | 欧美精品vⅰdeose4hd| 亚洲午夜在线视频| 欧美性猛交xxxx乱大交退制版 | 成人妖精视频yjsp地址| 精品日韩在线观看| 韩国欧美国产一区| 国产视频一区二区三区在线观看| 国产精品一区二区在线观看不卡| 精品噜噜噜噜久久久久久久久试看 | 综合激情成人伊人| 色天使色偷偷av一区二区| 日本亚洲电影天堂| 日韩精品在线一区| 亚洲综合在线观看视频| 亚洲高清久久久| 亚洲va欧美va国产va天堂影院| 国产91精品入口| 中文字幕在线观看不卡视频| 国产精品久久久久久福利一牛影视| 亚洲日本在线观看| 国产精品中文字幕一区二区三区| 精品久久久影院| 欧美视频你懂的| 精品一区二区在线看| 亚洲综合在线免费观看| 精品免费视频.| 在线观看日产精品| 国产精品一二三| 日韩福利视频网| 夜夜夜精品看看| 国产亚洲欧洲997久久综合| 欧美日韩一区二区三区视频| 懂色一区二区三区免费观看| 爽爽淫人综合网网站| 亚洲欧美日韩在线播放| 国产亚洲精品7777| 精品美女被调教视频大全网站| 欧美日韩卡一卡二| 色婷婷国产精品久久包臀| 国产一区二区三区在线观看免费| 天天做天天摸天天爽国产一区 | 免费成人你懂的| 亚洲精品一区二区三区蜜桃下载| 在线免费不卡视频| 91小视频在线免费看| 91在线免费看| 97se亚洲国产综合自在线不卡 | 欧美一二三区在线观看| 3751色影院一区二区三区| 日本二三区不卡| 欧美性受极品xxxx喷水| 91久久精品一区二区| 日本丶国产丶欧美色综合| 色狠狠桃花综合| 欧美在线观看视频一区二区| 在线影视一区二区三区| 欧美日韩免费一区二区三区| 欧美性生交片4| 日韩一区二区三区视频在线观看| 久久综合久色欧美综合狠狠| 欧美天堂亚洲电影院在线播放| caoporen国产精品视频| 一道本成人在线| 日韩免费福利电影在线观看| 久久在线观看免费| 亚洲色大成网站www久久九九| 香蕉久久夜色精品国产使用方法| 亚洲一级二级三级| 国产精品一色哟哟哟|