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

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

?? decode.cpp

?? 一種無損圖象壓縮算法,可用于珍貴圖象的保存.
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
	if (temp > UPPER)  temp = UPPER; 
	else if (temp < 0) temp = 0;
	k = nh (aerr + 2*ABS (ww - w) + 2*ABS (w - nw));
	E0[width] = err = nreremap (decode_symbol (k), temp, 0);
	aerr      = ABS (err);
	curr = temp + err;
	//NEARLY LOSSLESS COMPRESSION
	#ifdef OPTION_NEARLY_LOSSLESS
	{
		if (curr < 0)     curr = 0;
		if (curr > UPPER) curr = UPPER;
	}
	#endif
	//NEARLY LOSSLESS COMPRESSION
	u1[width] = curr;
	u1[width+1] = u1[width];    /* Duplicate the last  pixel */
	Dh[width] = ABS (curr - w);
	Dv[width] = ABS (curr - n);

	//From 3rd row process each row
	for (j = 2; j < height; ++j)
	{
		//First pixel of each row
		nn   = u2[1];
		n    = u1[1];
		ne   = u1[2];
		temp = n + (ne - nn)/4;
		if (temp > UPPER)  temp = UPPER; 
		else if (temp < 0) temp = 0;
		k = nh (2*ABS (n - ne) + 2*ABS (n - nn));
		
		err  = nreremap (decode_symbol (k), temp, 0);
		aerr = ABS (err);
		curr = temp + err;
		//NEARLY LOSSLESS COMPRESSION
		#ifdef OPTION_NEARLY_LOSSLESS
		{
			if (curr < 0)     curr = 0;
			if (curr > UPPER) curr = UPPER;
		}
		#endif
		//NEARLY LOSSLESS COMPRESSION
		u0[1] = curr;
		u0[0] = u0[1];        /* Duplicate the first pixel */
		//Second pixel of each row
		nn   = u2[2];
		nne  = u2[3];
		nw   = u1[1];
		n    = u1[2];
		ne   = u1[3];
		w    = u0[1];
		temp = (w + n + 1)/2 + (ne - nw)/4;
		if (temp > UPPER)  temp = UPPER; 
		else if (temp < 0) temp = 0;
		k = nh (aerr + ABS (n - ne) + ABS (n - nw) + ABS (n - nn) + ABS (ne - nne) + ABS (w - nw));
		E0[1] = err;
		
		err   = nreremap (decode_symbol (k), temp, 0);
		aerr  = ABS (err);
		curr = temp + err;
		//NEARLY LOSSLESS COMPRESSION
		#ifdef OPTION_NEARLY_LOSSLESS
		{
			if (curr < 0)     curr = 0;
			if (curr > UPPER) curr = UPPER;
		}
		#endif
		//NEARLY LOSSLESS COMPRESSION
		u0[2] = curr;
		//Rest of the row
		for (x = 3; x <= width - 1; ++x)
		{
			nw   = u1[x-1];
			n    = u1[x];
			ne   = u1[x+1];
			ww   = u0[x-2];
			w    = u0[x-1];
			symb1 = symb2 = w;
			Dv[x-1] = ABS (symb1 - nw);
			Dh[x-1] = ABS (symb1 - ww);
			if (ne != symb1) symb2 = ne;
			else if (n  != symb1) symb2 = n;
			else if (nw != symb1) symb2 = nw;
			else if (ww != symb1) symb2 = ww;
			bflag = 0;

			if (symb1 == symb2) /* only one symbol */
			{
				bflag = 1;
				//ZN:
				tolerance=QT[0];
				mask=QS[0];
				//	
				berr = bdecode_symbol (0);
				if (berr == 0)
				{ 
					E0[x-1] = err;
					aerr    = err = 0;
					curr = symb1;
					u0[x] = curr;
				}
				else 
				{
					/* only TWO symbols: symb1 and esc */
					temp = symb1;
					E0[x-1] = err;
					err     = nreremap (decode_symbol (N_SEQ-2), temp, 0);
					aerr    = ABS (err);
					curr = temp + err;
					//NEARLY LOSSLESS COMPRESSION 
					#ifdef OPTION_NEARLY_LOSSLESS
					{
						if (curr < 0)     curr = 0;
						if (curr > UPPER) curr = UPPER;
					}
					#endif
					//NEARLY LOSSLESS COMPRESSION
					u0[x] = curr;
				}
			}
			else
			{
				nn  = u2[x];
				nne = u2[x+1];
				if ((nne != symb1) && (nne != symb2)) bflag = 0;
				else if ((nn != symb1) && (nn != symb2)) bflag = 0;
				else if ((ne != symb1) && (ne != symb2)) bflag = 0;
				else if ((n  != symb1) && (n  != symb2)) bflag = 0;
				else if ((nw != symb1) && (nw != symb2)) bflag = 0;
				else if ((ww != symb1) && (ww != symb2)) bflag = 0;
				else bflag = 2; /* two symbols */
			}
			if (bflag == 2)
			{
				//ZN:
				tolerance=QT[0];
				mask=QS[0];
				//	
				if (ww == symb1) ptn = 1; else ptn = 0;
				if (nw == symb1) ptn |= 02;
				if (n  == symb1) ptn |= 04;
				if (ne == symb1) ptn |= 010;
				if (nn == symb1) ptn |= 020;
				if (symb1 < symb2) ptn |= 040;
				/* pass out symb1, symb2, esc */
				berr = bdecode_symbol (ptn);
				if (berr == 0)
				{ 
					E0[x-1] = err;
					aerr    = err = 0;
					curr = symb1;
					u0[x] = curr;
				}
				else if (berr == 1)
				{ 
					E0[x-1] = err;
					aerr    = err = 0;
					curr = symb2;
					u0[x] = curr;
				}
				else
				{
					temp = symb1;
					E0[x-1] = err;
					err     = nreremap (decode_symbol (N_SEQ-1), temp, 0);
					aerr    = ABS (err);
					curr = temp + err;
					//NEARLY LOSSLESS COMPRESSION
					#ifdef OPTION_NEARLY_LOSSLESS
					{
						if (curr < 0)     curr = 0;
						if (curr > UPPER) curr = UPPER;
					}
					#endif
					//NEARLY LOSSLESS COMPRESSION
					u0[x] = curr;
				}
			}
			if (bflag == 0)
			{
				nnww = u2[x-2];
				nnw  = u2[x-1];
				nww  = u1[x-2];
				nee  = u1[x+2];
				www  = u0[x-3];
				dv = Dv[x-1] + Dv[x] + Dv[x+1]/2;
				dh = Dh[x-1] + Dh[x] + Dh[x+1];
				k = nh (dv + dh + aerr + ABS (E0[x]) + (ABS (E0[x-1]) + ABS (E0[x+1]))/2);
				/* This computation can be made incremental to reduce running time */
				min = max = w;
				if (n  < min)      min = n;
				else if (n  > max) max = n;
				if (nw < min)      min = nw;
				else if (nw > max) max = nw;
				if (ne < min)      min = ne;
				else if (ne > max) max = ne;
				
				int tempmed,tempgap;
					symb1 = dv - dh;
					temp = (w + n)/2 + (ne - nw)/4; 
					if (symb1 > 32)       temp = (temp + w)/2;
					else if (symb1 > 8)   temp = (temp + (temp << 1) + w)/4;
					else if (symb1 < -31) temp = (temp + n)/2;
					else if (symb1 < -8) temp = (temp + (temp << 1) + n)/4;
				tempgap = temp;
					if (w < n) { symb1 = w; symb2 = n; }
					else       { symb1 = n; symb2 = w; }
					if (nw >= symb2)      temp = symb1;
					else if (nw <= symb1) temp = symb2;
					else temp = w + n - nw;
				tempmed = temp;
				if ( max-min<100 || Pr[x-1]+Pr[x]+Pr[x+1]<2 )
					 temp = tempgap;
				else temp = tempmed;

				if (w  < temp) ptn0  = 01; else ptn0 = 0;
				if (n  < temp) ptn0 |= 02;
				if (nw < temp) ptn0 |= 04;
				if (ne < temp) ptn0 |= 010;
				if (nn < temp) ptn0 |= 020;
				if (ww < temp) ptn0 |= 040;
				if (2*w-ww < temp) ptn0 |= 0100;
				if (2*n-nn < temp) ptn0 |= 0200;
				ptn0 |= ((k/2) << 8);
				if (nww < temp) ptn1 = ptn0 | 02000; else ptn1 = ptn0;
				if (nnw < temp) ptn1 |= 04000; 
				if (nee < temp) ptn2 = ptn0 | 02000; else ptn2 = ptn0;
				if (nne < temp) ptn2 |= 04000;

				//lw
				symb1 = symb2 = 0;
				if (N1[ptn1] > 3)
				{
					symb1 += N1[ptn1];
					symb2 += S1[ptn1];
				}
				adjust = (symb2/(symb1 + 1));
				temp += adjust;
				if (temp > max)      temp = max;
				else if (temp < min) temp = min;
				
				symb1   = S1[ptn1] + S2[ptn2];
				symb1  += err + E0[x] + E0[x-1] + E0[x+1];
				E0[x-1] = err;
					
				//ZN:
				tolerance=QT[k];
				mask=QS[k];
				if (symb1 < 0)
				{
					err  = -nreremap (decode_symbol (k), temp, 1);
					aerr = ABS (err);
				}
				else
				{
					err  = nreremap (decode_symbol (k), temp, 0);
					aerr = ABS (err);
				}
				curr = temp + err;

				//NEARLY LOSSLESS COMPRESSION
				#ifdef OPTION_NEARLY_LOSSLESS
				{
					if (curr < 0)     curr = 0;
					if (curr > UPPER) curr = UPPER;
				}
				#endif
				//NEARLY LOSSLESS COMPRESSION
				
				u0[x] = curr;
				if (ABS (err) < (16*((k >> 1) + 1)))
				{
					if (N1[ptn1] == 63)
					{
						if (ABS (S1[ptn1]) > 128)
						{
							S1[ptn1] = ((S1[ptn1] + err)/4);
							N1[ptn1] = 16;
						}
						else 
						{
							S1[ptn1] = ((S1[ptn1] + err)/2);
							N1[ptn1] = 32;
						}
					}
					else
					{
						S1[ptn1] += err;
						N1[ptn1]++;
					}
					if (N2[ptn2] == 63) 
					{
						if (ABS (S2[ptn2]) > 128)
						{
							S2[ptn2] = ((S2[ptn2] + err)/4);
							N2[ptn2] = 16;
						}
						else
						{
							S2[ptn2] = ((S2[ptn2] + err)/2);
							N2[ptn2] = 32;
						}
					}
					else
					{
						S2[ptn2] += err;
						N2[ptn2]++;
					}
				}
			}//FLAG
		}//X

		//Last pixel
		nn   = u2[width];
		nw   = u1[width-1];
		n    = u1[width];
		ww   = u0[width-2];
		w    = u0[width-1];
		Dh[width-1] = ABS (w - ww);
		Dv[width-1] = ABS (w - nw);
		temp = (w + n + 1)/2;
		if (temp > UPPER)  temp = UPPER; 
		else if (temp < 0) temp = 0;
		k = nh (aerr + ABS (n - nw) + ABS (n - nn) + ABS (w - ww) + ABS (w - nw));
		E0[width-1] = err;
		err         = nreremap (decode_symbol (k), temp, 0);
		aerr        = ABS (err);
		curr = temp + err;
		//NEARLY LOSSLESS COMPRESSION 
		#ifdef OPTION_NEARLY_LOSSLESS
		{
			if (curr < 0)     curr = 0;
			if (curr > UPPER) curr = UPPER;
		}
		#endif
		//NEARLY LOSSLESS COMPRESSION 
		
		u0[width] = curr;
		u0[width+1] = u0[width];    /* Duplicate the last  pixel */
		Dh[width] = ABS (curr - w);
		Dv[width] = ABS (curr - n);
		E0[width] = err;
		
		//Update input buffer here
		if (j < (height - 1)) update_buffer (&u0, &u1, &u2, width);
	}
	flush_buffer (u0, u1, u2, width);
	//Free the memory
	free (N1);  free (S1);
	free (N2);  free (S2);
	free (Dh);  free (Dv);
	free (Pr);
	free (E0);
}

//Function : main 
void main (int argc, char *argv[])
{
	unsigned char *line_curr;
	unsigned char *line_1_up;
	unsigned char *line_2_up;
	int width, height, depth;
	//Check if the number of arguments is correct
	if (argc != 7)
	{
		fprintf (stderr, "USAGE : %s InputFile OutputFile Width Height Depth\n", argv[0]);
		exit    (1);
	}
	//Determine the dimension of the input file
	width  = atoi (argv[3]);
	height = atoi (argv[4]);
	if ((depth = atoi (argv[5])) != 8)
	{
		fprintf (stderr, "ERROR : the input must be an 8-bits image!\n");
		exit    (1);
	}
	tolerance = atoi (argv[6]);
	mask = (tolerance<<1) + 1;
	infile=fopen(argv[1],"rb");
	outfile=fopen(argv[2],"wb");
	for(int i=0;i<=7;i++)
	{
		QT[i]=tolerance;
		QS[i]=mask;
	}
	/*	
	if(tolerance>3)
	{
		QT[0]=7;
		QS[0]=15;
		QT[1]=7;
		QS[1]=15;
	}*/
	//Process the input file
	init_bdecoder  ();
	init_sdecoder  ();
	init_mydecoder ();
	create_buffer  (&line_curr, &line_1_up, &line_2_up, width);
	decode_buffer  (line_curr, line_1_up, line_2_up, width, height);
	destory_buffer (&line_curr, &line_1_up, &line_2_up);
	stop_mydecoder ();
	fclose(infile);
	fclose(outfile);
	printf("Finish Decoding!\n");
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
樱桃国产成人精品视频| 91老师片黄在线观看| 日本久久电影网| 久久免费视频一区| 日韩av一区二区在线影视| 精品入口麻豆88视频| 亚洲欧美激情一区二区| 日韩欧美在线不卡| 亚洲女同一区二区| 丁香激情综合五月| 国产精品欧美一级免费| 国产精品亚洲一区二区三区在线 | 91电影在线观看| 国内精品视频一区二区三区八戒| 国产成人在线观看免费网站| 成人蜜臀av电影| 3atv一区二区三区| 亚洲一区视频在线| 日韩和欧美一区二区三区| 国产精一品亚洲二区在线视频| av欧美精品.com| 欧美一二三在线| 18涩涩午夜精品.www| 欧美久久免费观看| 韩国女主播成人在线| 国产亚洲视频系列| 欧美主播一区二区三区美女| 亚洲福利视频一区二区| 日韩一级二级三级精品视频| 国产精品一区二区久激情瑜伽 | 欧美日韩久久一区| 国产美女精品一区二区三区| 亚洲免费伊人电影| 日韩一级成人av| 色欧美乱欧美15图片| 久久精品理论片| 一区二区三区四区乱视频| 精品久久99ma| 在线精品国精品国产尤物884a| 久久电影国产免费久久电影| 中文字幕一区二区三区精华液| 日韩一区二区三区视频在线 | 欧美成人国产一区二区| 91小视频在线免费看| 精品视频一区 二区 三区| 亚洲毛片av在线| 色综合天天综合网国产成人综合天| 久久久久久久综合日本| 91影院在线观看| 久久久久久久久久电影| 久久成人免费网站| 精品久久人人做人人爽| 韩国v欧美v亚洲v日本v| 美女在线视频一区| 婷婷中文字幕一区三区| 亚洲成人资源在线| 亚洲综合在线视频| 樱花影视一区二区| 国产一区啦啦啦在线观看| 国产亚洲精品福利| 成人app在线| 午夜精品久久久久久| 欧美一级黄色大片| 国产91丝袜在线观看| 最新不卡av在线| 欧美日韩成人综合| 久草热8精品视频在线观看| 国产日韩欧美麻豆| 日本韩国欧美一区| 激情综合色综合久久综合| 中文字幕不卡在线| 欧美亚洲综合另类| 狠狠色2019综合网| 一区二区三区四区国产精品| 欧美肥妇bbw| av资源站一区| 秋霞国产午夜精品免费视频| 中文成人av在线| 91精品国产全国免费观看| 丁香婷婷综合网| 麻豆一区二区99久久久久| 亚洲视频一二三| 精品国产自在久精品国产| 在线精品视频免费播放| 国产精品一区二区三区99| 亚洲一区二区三区四区不卡| 一区二区国产视频| 麻豆精品视频在线观看免费| 高清在线观看日韩| 精品久久一区二区| 亚洲妇女屁股眼交7| 成人午夜电影久久影院| 久久综合五月天婷婷伊人| 欧美一区二区精品久久911| 日本高清免费不卡视频| 不卡av在线网| 成人不卡免费av| 国产电影一区在线| 国产成人免费视| 国产高清精品久久久久| 开心九九激情九九欧美日韩精美视频电影| 亚洲视频在线观看三级| 亚洲人精品午夜| 精品99一区二区三区| 精品在线免费观看| 精品久久久久99| 国产91综合一区在线观看| 日本一区二区不卡视频| 国产精品99久久久久久宅男| 精品久久久久久亚洲综合网| 另类欧美日韩国产在线| 精品奇米国产一区二区三区| 国产精品综合网| 自拍视频在线观看一区二区| 色94色欧美sute亚洲线路二| 亚洲图片欧美综合| 91精品国产品国语在线不卡| 色综合天天综合网天天看片| 国产一区二区三区免费观看| 97se亚洲国产综合自在线观| 亚洲天天做日日做天天谢日日欢| 亚洲国产精品精华液2区45| 亚洲色欲色欲www在线观看| 亚洲国产综合在线| 国产一区二区不卡在线 | 五月婷婷另类国产| 国产精品 日产精品 欧美精品| 成人手机电影网| 日韩亚洲国产中文字幕欧美| 国产日产欧美一区| 久久九九国产精品| 欧美猛男gaygay网站| 国产精品99久久久久久久女警| 亚洲永久精品国产| 国产精品嫩草影院com| 欧美精三区欧美精三区| 国产高清精品在线| 免费观看久久久4p| 一区二区三区不卡在线观看 | 国产精品久久久久一区二区三区| 91麻豆精品国产自产在线观看一区| 日本亚洲三级在线| 一卡二卡三卡日韩欧美| 国产精品色哟哟网站| 久久影院电视剧免费观看| 欧美久久久一区| 欧美福利视频一区| 在线看一区二区| 91国产丝袜在线播放| 91美女福利视频| 91亚洲国产成人精品一区二三| 国产69精品久久久久777| 国产精品一级片在线观看| 国内久久精品视频| 韩国女主播一区二区三区| 免费人成在线不卡| 日韩成人免费看| 看国产成人h片视频| 九九国产精品视频| 久久精品国产第一区二区三区| 91在线精品一区二区| 亚洲日本免费电影| 欧美无砖砖区免费| 亚洲成av人片在线| 欧美挠脚心视频网站| 97久久超碰国产精品电影| 精品福利在线导航| 国产精品一区二区在线观看网站| 国产欧美一区二区精品婷婷| av在线这里只有精品| 国产精品麻豆视频| 91行情网站电视在线观看高清版| 亚洲一级不卡视频| 日韩欧美不卡在线观看视频| 日本中文字幕一区二区视频 | 18成人在线观看| 日韩国产一二三区| 99久久99久久精品国产片果冻| 欧美一卡在线观看| 成人18视频在线播放| 一区二区在线观看视频在线观看| 欧美精品亚洲一区二区在线播放| 蜜臀99久久精品久久久久久软件| 欧美国产日韩亚洲一区| 欧美午夜精品电影| 国产精品一线二线三线精华| 一区二区三区欧美日| 日韩一区二区三区免费看| av在线不卡网| 精品无人码麻豆乱码1区2区| 一区二区理论电影在线观看| 久久久久久免费| 91精品一区二区三区久久久久久 | 国产suv精品一区二区6| 亚洲一级片在线观看| 中文字幕在线观看不卡视频| 欧美成人a视频| 欧美人与禽zozo性伦| 成人免费av在线| 国产久卡久卡久卡久卡视频精品|