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

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

?? readpic.c

?? mp3解碼程序vc++環境下運行
?? C
?? 第 1 頁 / 共 3 頁
字號:
					memset(lpframeY, 0, rblank);
					memset(lpframeU, 128, rblank);
					memset(lpframeV, 128, rblank);
					lpframeY += rblank;
					lpframeU += rblank;
					lpframeV += rblank;
				}

				lpcurscanl -= bpscanl;
			} while(--h);
			break;

		case 24:
			lpcurscanl = (unsigned char *)(lpbitmp + ((lpbi->biHeight - 1 - (vcrop/2)) * bpscanl) + ((hcrop/2) * 3));
			lpframeU = Ubuffer+(hblank/2)+topblank*width;
			lpframeV = Vbuffer+(hblank/2)+topblank*width;

			h = lpbi->biHeight - (int) vcrop;
			lblank = hblank/2;
			rblank = hblank - lblank;

			do
			{
				// take care of any blank pixels on the left
				if(lblank > 0)
				{
					memset(lpframeY, 0, lblank);
					memset(lpframeU, 128, lblank);
					memset(lpframeV, 128, lblank);
					lpframeY += lblank;
					lpframeU += lblank;
					lpframeV += lblank;
				}

				if(cpu_MMX)
				{

					w = (lpbi->biWidth-(int)hcrop) >> 1;

					// assume that width is a multiple of 2 !
					_asm
					{
						mov esi, lpcurscanl			;// esi = lpcurscanl
						mov ecx, lpframeY			;// ecx = lpframeY
						mov edx, lpframeU			;// edx = lpframeU
						mov edi, lpframeV			;// edi = lpframeV
						movq mm6, PACKED_128L		;// mm6 = (128, 128)
						pxor mm7, mm7				;// mm7 = 0
readframe__l2:
						movd mm0, [esi]				;// lower 4 bytes into mm0 = esi[0..3]
						movd mm3, [esi+3]			;// lower 4 bytes into mm3 = esi[4..7]
						punpcklbw mm0, mm7			;// unpack the lower 4 bytes into mm0
						punpcklbw mm3, mm7			;// unpack the lower 4 bytes into mm3
						movq mm1, mm0
						movq mm2, mm0
						movq mm4, mm3
						movq mm5, mm3
						pmaddwd mm0, PACKED_Y		;// multiply each word in mm0 by PACKED_Y and add them to make only two dwords
						pmaddwd mm1, PACKED_U		;// multiply each word in mm1 by PACKED_U and add them to make only two dwords
						pmaddwd mm2, PACKED_V		;// multiply each word in mm2 by PACKED_V and add them to make only two dwords
						pmaddwd mm3, PACKED_Y		;// multiply each word in mm3 by PACKED_Y and add them to make only two dwords
						pmaddwd mm4, PACKED_U		;// multiply each word in mm4 by PACKED_U and add them to make only two dwords
						pmaddwd mm5, PACKED_V		;// multiply each word in mm5 by PACKED_V and add them to make only two dwords
						paddd mm0, mm6				;// mm0 += (128, 128)
						paddd mm1, mm6				;// mm1 += (128, 128)
						paddd mm2, mm6				;// mm2 += (128, 128)
						paddd mm3, mm6				;// mm3 += (128, 128)
						paddd mm4, mm6				;// mm4 += (128, 128)
						paddd mm5, mm6				;// mm5 += (128, 128)
						psrad mm0, 8				;// shift mm0 and round to lower
						psrad mm1, 8				;// shift mm1 and round to lower
						psrad mm2, 8				;// shift mm2 and round to lower
						psrad mm3, 8				;// shift mm3 and round to lower
						psrad mm4, 8				;// shift mm4 and round to lower
						psrad mm5, 8				;// shift mm5 and round to lower
						movd eax, mm0				;// load lower dword of mm0 into eax
						psrlq mm0, 32				;// shift mm0 to get upper dword
						movd ebx, mm0				;// load lower dword of mm0 into ebx
						add eax, ebx				;// eax += ebx
						mov [ecx], al				;// store result into [ecx]
						movd eax, mm1				;// load lower dword of mm1 into eax
						psrlq mm1, 32				;// shift mm1 to get upper dword
						movd ebx, mm1				;// load lower dword of mm1 into ebx
						add eax, ebx
						add eax, 128				;// eax += ebx + 128
						mov [edx], al				;// store result into [edx]
						movd eax, mm2				;// load lower dword of mm2 into eax
						psrlq mm2, 32				;// shift mm2 to get upper dword
						movd ebx, mm2				;// load lower dword of mm2 into ebx
						add eax, ebx
						add eax, 128				;// eax += ebx + 128
						mov [edi], al				;// store result into [edi]
						movd eax, mm3				;// load lower dword of mm3 into eax
						psrlq mm3, 32				;// shift mm2 to get upper dword
						movd ebx, mm3				;// load lower dword of mm3 into ebx
						add eax, ebx				;// eax += ebx
						mov [ecx+1], al				;// store result into [ecx+1]
						movd eax, mm4				;// load lower dword of mm4 into eax
						psrlq mm4, 32				;// shift mm4 to get upper dword
						movd ebx, mm4				;// load lower dword of mm4 into ebx
						add eax, ebx
						add eax, 128				;// eax += ebx + 128
						mov [edx+1], al				;// store result into [edx+1]
						movd eax, mm5				;// load lower dword of mm5 into eax
						psrlq mm5, 32				;// shift mm5 to get upper dword
						movd ebx, mm5				;// load lower dword of mm5 into ebx
						add eax, ebx
						add eax, 128				;// eax += ebx + 128
						mov [edi+1], al				;// store result into [edi+1]
						add esi, 6					;// esi += 6
						add ecx, 2					;// ecx += 2
						add edx, 2					;// edx += 2
						add edi, 2					;// edi += 2
						dec dword ptr w				;// decrement w
						jnz readframe__l2			;// loop while not zero
						mov lpframeY, ecx			;//	update lpframeY
						mov lpframeU, edx			;// update lpframeU
						mov lpframeV, edi			;// update lpframeV
						emms						;// empty MMX state
					}
				}
				else
				{
					w = lpbi->biWidth - (int) hcrop;
					lpcurpix = lpcurscanl;

					do
					{
						B = *lpcurpix++;
						G = *lpcurpix++;
						R = *lpcurpix++;

						*lpframeY++ = (int)(RY*R + GY*G + BY*B);
						*lpframeU++ = (int)(RU*R + GU*G + BU*B + 128);
						*lpframeV++ = (int)(RV*R + GV*G + BV*B + 128);
					} while(--w);
				}

				// take care of any blank pixels on the right
				if(rblank > 0)
				{
					memset(lpframeY, 0, rblank);
					memset(lpframeU, 128, rblank);
					memset(lpframeV, 128, rblank);
					lpframeY += rblank;
					lpframeU += rblank;
					lpframeV += rblank;
				}

				lpcurscanl -= bpscanl;
			} while(--h);
			break;

		case 32:
			lpcurscanl = (unsigned char *)(lpbitmp + ((lpbi->biHeight - 1 - (vcrop/2)) * bpscanl) + ((hcrop/2) * 4));
			lpframeU = Ubuffer+(hblank/2)+topblank*width;
			lpframeV = Vbuffer+(hblank/2)+topblank*width;

			h = lpbi->biHeight - (int) vcrop;
			lblank = hblank/2;
			rblank = hblank - lblank;

			do
			{
				// take care of any blank pixels on the left
				if(lblank > 0)
				{
					memset(lpframeY, 0, lblank);
					memset(lpframeU, 128, lblank);
					memset(lpframeV, 128, lblank);
					lpframeY += lblank;
					lpframeU += lblank;
					lpframeV += lblank;
				}

				if(cpu_MMX)
				{

					w = (lpbi->biWidth-(int)hcrop) >> 1;

					// assume that width is a multiple of 2 !
					_asm
					{
						mov esi, lpcurscanl			;// esi = lpcurscanl
						mov ecx, lpframeY			;// ecx = lpframeY
						mov edx, lpframeU			;// edx = lpframeU
						mov edi, lpframeV			;// edi = lpframeV
						movq mm6, PACKED_128L		;// mm6 = (128, 128)
						pxor mm7, mm7				;// mm7 = 0
readframe__l3:
						movd mm0, [esi]				;// lower 4 bytes into mm0 = esi[0..3]
						movd mm3, [esi+3]			;// lower 4 bytes into mm3 = esi[4..7]
						punpcklbw mm0, mm7			;// unpack the lower 4 bytes into mm0
						punpcklbw mm3, mm7			;// unpack the lower 4 bytes into mm3
						movq mm1, mm0
						movq mm2, mm0
						movq mm4, mm3
						movq mm5, mm3
						pmaddwd mm0, PACKED_Y		;// multiply each word in mm0 by PACKED_Y and add them to make only two dwords
						pmaddwd mm1, PACKED_U		;// multiply each word in mm1 by PACKED_U and add them to make only two dwords
						pmaddwd mm2, PACKED_V		;// multiply each word in mm2 by PACKED_V and add them to make only two dwords
						pmaddwd mm3, PACKED_Y		;// multiply each word in mm3 by PACKED_Y and add them to make only two dwords
						pmaddwd mm4, PACKED_U		;// multiply each word in mm4 by PACKED_U and add them to make only two dwords
						pmaddwd mm5, PACKED_V		;// multiply each word in mm5 by PACKED_V and add them to make only two dwords
						paddd mm0, mm6				;// mm0 += (128, 128)
						paddd mm1, mm6				;// mm1 += (128, 128)
						paddd mm2, mm6				;// mm2 += (128, 128)
						paddd mm3, mm6				;// mm3 += (128, 128)
						paddd mm4, mm6				;// mm4 += (128, 128)
						paddd mm5, mm6				;// mm5 += (128, 128)
						psrad mm0, 8				;// shift mm0 and round to lower
						psrad mm1, 8				;// shift mm1 and round to lower
						psrad mm2, 8				;// shift mm2 and round to lower
						psrad mm3, 8				;// shift mm3 and round to lower
						psrad mm4, 8				;// shift mm4 and round to lower
						psrad mm5, 8				;// shift mm5 and round to lower
						movd eax, mm0				;// load lower dword of mm0 into eax
						psrlq mm0, 32				;// shift mm0 to get upper dword
						movd ebx, mm0				;// load lower dword of mm0 into ebx
						add eax, ebx				;// eax += ebx
						mov [ecx], al				;// store result into [ecx]
						movd eax, mm1				;// load lower dword of mm1 into eax
						psrlq mm1, 32				;// shift mm1 to get upper dword
						movd ebx, mm1				;// load lower dword of mm1 into ebx
						add eax, ebx
						add eax, 128				;// eax += ebx + 128
						mov [edx], al				;// store result into [edx]
						movd eax, mm2				;// load lower dword of mm2 into eax
						psrlq mm2, 32				;// shift mm2 to get upper dword
						movd ebx, mm2				;// load lower dword of mm2 into ebx
						add eax, ebx
						add eax, 128				;// eax += ebx + 128
						mov [edi], al				;// store result into [edi]
						movd eax, mm3				;// load lower dword of mm3 into eax
						psrlq mm3, 32				;// shift mm2 to get upper dword
						movd ebx, mm3				;// load lower dword of mm3 into ebx
						add eax, ebx				;// eax += ebx
						mov [ecx+1], al				;// store result into [ecx+1]
						movd eax, mm4				;// load lower dword of mm4 into eax
						psrlq mm4, 32				;// shift mm4 to get upper dword
						movd ebx, mm4				;// load lower dword of mm4 into ebx
						add eax, ebx
						add eax, 128				;// eax += ebx + 128
						mov [edx+1], al				;// store result into [edx+1]
						movd eax, mm5				;// load lower dword of mm5 into eax
						psrlq mm5, 32				;// shift mm5 to get upper dword
						movd ebx, mm5				;// load lower dword of mm5 into ebx
						add eax, ebx
						add eax, 128				;// eax += ebx + 128
						mov [edi+1], al				;// store result into [edi+1]
						add esi, 8					;// esi += 8
						add ecx, 2					;// ecx += 2
						add edx, 2					;// edx += 2
						add edi, 2					;// edi += 2
						dec dword ptr w				;// decrement w
						jnz readframe__l3			;// loop while not zero
						mov lpframeY, ecx			;//	update lpframeY
						mov lpframeU, edx			;// update lpframeU
						mov lpframeV, edi			;// update lpframeV
						emms						;// empty MMX state
					}
				}
				else
				{
					w = lpbi->biWidth - (int) hcrop;
					lpcurpix = lpcurscanl;

					do
					{
						B = *lpcurpix++;
						G = *lpcurpix++;
						R = *lpcurpix++;
						lpcurpix++;

						*lpframeY++ = (int)(RY*R + GY*G + BY*B);
						*lpframeU++ = (int)(RU*R + GU*G + BU*B + 128);
						*lpframeV++ = (int)(RV*R + GV*G + BV*B + 128);
					} while(--w);
				}

				if(rblank > 0)
				{
					memset(lpframeY, 0, rblank);
					memset(lpframeU, 128, rblank);
					memset(lpframeV, 128, rblank);
					lpframeY += rblank;
					lpframeU += rblank;
					lpframeV += rblank;
				}

				lpcurscanl -= bpscanl;
			} while(--h);
			break;

		default:
			fprintf(stderr, "\ninternal error: illegal pixsz value\n");
			exit(29); 
	}

	j = vblank - topblank;
	while(j > 0)
	{
		for(x = 0; x < width; x++)
		{
			*lpframeY++ = 0;
			Ubuffer[x + (topblank+lpbi->biHeight + j - 1)*width] = 128;
			Vbuffer[x + (topblank+lpbi->biHeight + j - 1)*width] = 128;
		}
	j--;
	}



	conv444to422(Ubuffer, Ubuffer422);
	conv444to422(Vbuffer, Vbuffer422);

	conv422to420(Ubuffer422, frame[1]);
	conv422to420(Vbuffer422, frame[2]);

    if (use_image_noise_reduction)
    {
        lpframeY = (unsigned char *)frame[0];
        softfilter(TempFilterBuffer, lpframeY, width, height);
        memcpy(lpframeY, TempFilterBuffer, width*height);

        lpframeU = (unsigned char *)frame[1];
        softfilter(TempFilterBuffer, lpframeU, width/2, height/2);
        memcpy(lpframeU, TempFilterBuffer, width*height/4);

        lpframeV = (unsigned char *)frame[2];
        softfilter(TempFilterBuffer, lpframeV, width/2, height/2);
        memcpy(lpframeV, TempFilterBuffer, width*height/4);
    }
}

// 水平濾波和2:1子采樣
static void conv444to422(src,dst)
unsigned char *src, *dst;
{
	int i, j, im5, im4, im3, im2, im1, ip1, ip2, ip3, ip4, ip5, ip6;
	int width_div8;
	int h;

	if(cpu_MMX && width > 16 && (width & 15) == 0)
	{
		h = height;
		width_div8 = width >> 3;

		do
		{
			// prologue

			*dst++ = clp[(int)(228*(src[0]+src[1])
							   +70*(src[0]+src[2])
							   -37*(src[0]+src[3])
							   -21*(src[0]+src[4])
							   +11*(src[0]+src[5])
							   + 5*(src[0]+src[6])+256)>>9];
			*dst++ = clp[(int)(228*(src[2]+src[3])
							   +70*(src[1]+src[4])
							   -37*(src[0]+src[5])
							   -21*(src[0]+src[6])
							   +11*(src[0]+src[7])
							   + 5*(src[0]+src[8])+256)>>9];
			*dst++ = clp[(int)(228*(src[4]+src[5])
							   +70*(src[3]+src[6])
							   -37*(src[2]+src[7])
							   -21*(src[1]+src[8])
							   +11*(src[0]+src[9])
							   + 5*(src[0]+src[10])+256)>>9];
			*dst++ = clp[(int)(228*(src[6]+src[7])
							   +70*(src[5]+src[8])
							   -37*(src[4]+src[9])
							   -21*(src[3]+src[10])
							   +11*(src[2]+src[11])
							   + 5*(src[1]+src[12])+256)>>9];

			src += 8;

			_asm
			{
				mov esi, src				;// esi = src
				mov edi, dst				;// edi = dst
				mov ecx, width_div8
				sub ecx, 2					;// ecx = (width >> 3) - 2
conv444to422__l1:
				movq mm7, PACKED_255		;// mm7 = (255, 255, 255, 255)
				movq mm5, [esi-1]			;// mm5 = 4 words into esi[-1..6]
				movq mm4, [esi]				;// mm4 = 4 words into esi[0..7]
				movq mm1, [esi+1]			;// mm1 = 4 words into esi[1..8]
				movq mm3, [esi+2]			;// mm3 = 4 words into esi[2..9]
				pand mm5, mm7				;// keep only LSB of mm5
				pand mm4, mm7				;// keep only LSB of mm4
				pand mm1, mm7				;// keep only LSB of mm1
				pand mm3, mm7				;// keep only LSB of mm3
				paddw mm4, mm1				;// mm4 += mm1

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲人精品一区| 奇米777欧美一区二区| 亚洲成a人片在线不卡一二三区| 偷拍日韩校园综合在线| 国产成人鲁色资源国产91色综 | 日韩你懂的电影在线观看| 国产精品三级av| 精品一区二区在线播放| 日本高清免费不卡视频| wwwwww.欧美系列| 亚洲成人av资源| 91视频你懂的| 国产色91在线| 久久国产精品72免费观看| 在线观看视频91| 中文字幕日韩欧美一区二区三区| 久久精品国产第一区二区三区| 成人在线视频一区二区| 精品国产亚洲在线| 五月开心婷婷久久| 欧美日韩国产综合一区二区| 国产精品久久久一本精品| 国产最新精品免费| 日韩你懂的在线播放| 日本中文字幕一区二区有限公司| 在线影视一区二区三区| 亚洲三级免费观看| 成人av午夜影院| 亚洲国产电影在线观看| 国产福利一区在线| 欧美国产日韩在线观看| 国产成人av网站| 亚洲国产成人在线| 国产jizzjizz一区二区| 久久久精品一品道一区| 国产夫妻精品视频| 中文天堂在线一区| 波波电影院一区二区三区| 国产精品久久毛片| 色94色欧美sute亚洲线路二| 一区二区视频在线| 在线中文字幕不卡| 日韩中文字幕亚洲一区二区va在线| 欧美三级在线看| 午夜久久久久久电影| 在线播放中文字幕一区| 精品一区二区三区蜜桃| 久久九九影视网| 91丝袜美腿高跟国产极品老师| 亚洲欧美日韩久久| 欧美综合亚洲图片综合区| 性欧美大战久久久久久久久| 日韩欧美一区电影| 成人黄色电影在线| 午夜久久久影院| 欧美成人在线直播| 成人免费看片app下载| 国产精品久久久一本精品| 91豆麻精品91久久久久久| 日韩精品三区四区| 久久精品亚洲麻豆av一区二区| av不卡在线观看| 日韩精品一级二级| 国产人成一区二区三区影院| 日本道免费精品一区二区三区| 婷婷一区二区三区| 久久免费电影网| 欧美做爰猛烈大尺度电影无法无天| 另类中文字幕网| 亚洲日本在线观看| 日韩精品一区二区三区swag| 成人午夜免费视频| 欧美96一区二区免费视频| 国产农村妇女毛片精品久久麻豆| 欧美三级电影一区| 国产精品一区2区| 夜夜爽夜夜爽精品视频| 2017欧美狠狠色| 欧美偷拍一区二区| 懂色av一区二区三区免费观看| 亚洲综合男人的天堂| 久久这里只精品最新地址| 欧洲一区在线观看| 成人污污视频在线观看| 日韩国产欧美视频| 亚洲欧美成aⅴ人在线观看| 精品欧美一区二区在线观看 | 欧美日韩在线播放三区| 国产传媒久久文化传媒| 亚洲va韩国va欧美va精品 | 日韩精品一区二区三区视频| 91在线播放网址| 丁香六月综合激情| 久久99九九99精品| 视频一区视频二区在线观看| 亚洲欧洲99久久| 中文字幕不卡一区| 精品99久久久久久| 3d动漫精品啪啪| 欧美性xxxxxx少妇| 色婷婷国产精品| 不卡视频一二三四| 成人午夜看片网址| 国产裸体歌舞团一区二区| 日韩综合小视频| 亚洲国产成人高清精品| 亚洲男同性视频| 亚洲人成精品久久久久| 欧美激情在线看| 久久久99久久| 日本一区二区三区四区| 国产亚洲精品精华液| 欧美激情一区在线| 国产精品久久久久久久久果冻传媒| 久久日韩粉嫩一区二区三区 | 久久99国产精品久久| 久久99精品久久久久久久久久久久| 日韩一区欧美二区| 久久精品国产99国产| 国产在线视视频有精品| 国产不卡视频在线观看| 成人性色生活片免费看爆迷你毛片| 国产成人精品亚洲777人妖| 国产999精品久久久久久绿帽| 国产精品88888| fc2成人免费人成在线观看播放| 成人免费看的视频| 91久久精品午夜一区二区| 色综合久久综合中文综合网| 欧美日韩亚洲综合一区二区三区| 欧美日韩夫妻久久| 欧美成人a在线| 国产欧美日韩视频一区二区| 中文字幕中文乱码欧美一区二区 | 久久久国产综合精品女国产盗摄| 337p粉嫩大胆色噜噜噜噜亚洲 | 97精品久久久久中文字幕| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 亚洲免费电影在线| 亚洲18色成人| 久国产精品韩国三级视频| 久久99精品国产麻豆婷婷| 成人高清在线视频| 欧美丝袜第三区| 26uuu久久天堂性欧美| 成人欧美一区二区三区在线播放| 一区二区在线免费观看| 男人的j进女人的j一区| 成人午夜免费电影| 91麻豆精品国产91久久久资源速度 | 国模一区二区三区白浆| 91丨国产丨九色丨pron| 欧美日韩1区2区| 国产午夜精品一区二区三区嫩草 | 欧美一级高清大全免费观看| 国产视频一区在线观看| 亚洲五码中文字幕| 国产中文字幕一区| 欧美亚洲日本一区| 久久久国产一区二区三区四区小说| 一区二区不卡在线视频 午夜欧美不卡在 | 日韩精品一区二区在线观看| 亚洲私人影院在线观看| 免费人成在线不卡| 91香蕉视频mp4| 久久综合九色综合欧美亚洲| 一区二区日韩av| 国产成人日日夜夜| 日韩一区二区在线看| 亚洲一区二区在线观看视频 | 色婷婷精品久久二区二区蜜臀av| 精品播放一区二区| 亚洲成人一区二区在线观看| 成人蜜臀av电影| 久久麻豆一区二区| 日韩二区在线观看| 精品视频免费在线| 亚洲男人天堂一区| 国产成人在线网站| 日韩一级片网址| 亚洲国产成人av网| 色狠狠一区二区| 国产精品视频在线看| 久久国内精品视频| 欧美日本一区二区三区四区| 亚洲色图欧美激情| 大美女一区二区三区| 精品裸体舞一区二区三区| 日韩不卡一区二区| 欧美丝袜第三区| 夜夜嗨av一区二区三区中文字幕| 波多野结衣91| 亚洲少妇30p| www.欧美亚洲| 中文字幕av免费专区久久| 成人午夜精品在线| 亚洲欧美在线视频观看| 91小视频免费观看| 一区二区三区在线视频免费 | 亚洲乱码国产乱码精品精小说|