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

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

?? basic_prediction_mmx.c

?? < VC++視頻音頻開發(fā)>> 這本書的源碼
?? C
?? 第 1 頁 / 共 2 頁
字號:

**/

#include "basic_prediction.h"

void CopyBlock(unsigned char * Src, unsigned char * Dst, int Stride)
{
	int dy;

	long *lpSrc = (long *) Src;
	long *lpDst = (long *) Dst;
	int lpStride = Stride >> 2;

	for (dy = 0; dy < 8; dy++) {
		lpDst[0] = lpSrc[0];
		lpDst[1] = lpSrc[1];
		lpSrc += lpStride;
		lpDst += lpStride;
	}
}
/**/
void CopyBlockHor(unsigned char * Src, unsigned char * Dst, int Stride)
{
	_asm {
		 xor eax, eax
		 mov ebx, Stride
		 sub ebx, 7
		 xor ecx, ecx
		 mov edx, 8
		 mov esi, dword ptr [Src]
		 mov edi, dword ptr [Dst]

start_again10:
		 // 0
		 mov al, [esi]
		 inc esi
		 mov cl, [esi]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al
		 inc edi

		 // 1
		 mov al, [esi]
		 inc esi
		 mov cl, [esi]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al
		 inc edi

		 // 2
		 mov al, [esi]
		 inc esi
		 mov cl, [esi]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al
		 inc edi

		 // 3
		 mov al, [esi]
		 inc esi
		 mov cl, [esi]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al
		 inc edi

		 // 4
		 mov al, [esi]
		 inc esi
		 mov cl, [esi]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al
		 inc edi

		 // 5
		 mov al, [esi]
		 inc esi
		 mov cl, [esi]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al
		 inc edi

		 // 6
		 mov al, [esi]
		 inc esi
		 mov cl, [esi]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al
		 inc edi

		 // 7
		 mov al, [esi]
		 mov cl, [esi+1]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al

		 add esi, ebx
		 add edi, ebx
		 dec edx
		 jnz start_again10
	}
}

/**/
void CopyBlockVer(unsigned char * Src, unsigned char * Dst, int Stride)
{
	_asm {
		 xor eax, eax
		 mov ebx, Stride
		 xor ecx, ecx
		 mov edx, 8
		 mov esi, dword ptr [Src]
		 mov edi, dword ptr [Dst]

start_again10:
		 // 0
		 mov al, [esi]
		 mov cl, [esi+ebx]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al
		 inc esi
		 inc edi

		 // 1
		 mov al, [esi]
		 mov cl, [esi+ebx]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al
		 inc esi
		 inc edi

		 // 2
		 //xor eax, eax
		 mov al, [esi]
		 mov cl, [esi+ebx]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al
		 inc esi
		 inc edi

		 // 3
		 //xor eax, eax
		 mov al, [esi]
		 mov cl, [esi+ebx]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al
		 inc esi
		 inc edi

		 // 4
		 mov al, [esi]
		 mov cl, [esi+ebx]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al
		 inc esi
		 inc edi

		 // 5
		 mov al, [esi]
		 mov cl, [esi+ebx]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al
		 inc esi
		 inc edi

		 // 6
		 mov al, [esi]
		 mov cl, [esi+ebx]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al
		 inc esi
		 inc edi

		 // 7
		 mov al, [esi]
		 mov cl, [esi+ebx]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al

		 add esi, ebx
		 sub esi, 7
		 add edi, ebx
		 sub edi, 7
		 dec edx
		 jnz start_again10
	}
}
/**/
void CopyBlockHorVer(unsigned char * Src, unsigned char * Dst, int Stride)
{
	int dy, dx;

	for (dy = 0; dy < 8; dy++) {
		for (dx = 0; dx < 8; dx++) {
			Dst[dx] = (Src[dx] + Src[dx+1] + 
								Src[dx+Stride] + Src[dx+Stride+1] +2) >> 2; // horver interpolation with rounding
		}
		Src += Stride;
		Dst += Stride;
	}
}
/**/
void CopyBlockHorRound(unsigned char * Src, unsigned char * Dst, int Stride)
{
	_asm {
		 xor eax, eax
		 mov ebx, Stride
		 sub ebx, 7
		 xor ecx, ecx
		 mov edx, 8
		 mov esi, dword ptr [Src]
		 mov edi, dword ptr [Dst]

start_again1:
		 // 0
		 mov al, [esi]
		 inc esi
		 mov cl, [esi]
		 add eax, ecx
		 shr eax, 1
		 mov [edi], al
		 inc edi

		 // 1
		 mov al, [esi]
		 inc esi
		 mov cl, [esi]
		 add eax, ecx
		 shr eax, 1
		 mov [edi], al
		 inc edi

		 // 2
		 //xor eax, eax
		 mov al, [esi]
		 inc esi
		 mov cl, [esi]
		 add eax, ecx
		 shr eax, 1
		 mov [edi], al
		 inc edi

		 // 3
		 //xor eax, eax
		 mov al, [esi]
		 inc esi
		 mov cl, [esi]
		 add eax, ecx
		 shr eax, 1
		 mov [edi], al
		 inc edi

		 // 4
		 mov al, [esi]
		 inc esi
		 mov cl, [esi]
		 add eax, ecx
		 shr eax, 1
		 mov [edi], al
		 inc edi

		 // 5
		 mov al, [esi]
		 inc esi
		 mov cl, [esi]
		 add eax, ecx
		 shr eax, 1
		 mov [edi], al
		 inc edi

		 // 6
		 mov al, [esi]
		 inc esi
		 mov cl, [esi]
		 add eax, ecx
		 shr eax, 1
		 mov [edi], al
		 inc edi

		 // 7
		 mov al, [esi]
		 mov cl, [esi+1]
		 add eax, ecx
		 shr eax, 1
		 mov [edi], al

		 add esi, ebx
		 add edi, ebx
		 dec edx
		 jnz start_again1
	} 
}
/**/
void CopyBlockVerRound(unsigned char * Src, unsigned char * Dst, int Stride)
{
	_asm {
		 xor eax, eax
		 mov ebx, Stride
		 xor ecx, ecx
		 mov edx, 8
		 mov esi, dword ptr [Src]
		 mov edi, dword ptr [Dst]

start_again1:
		 // 0
		 mov al, [esi]
		 mov cl, [esi+ebx]
		 add eax, ecx
		 shr eax, 1
		 mov [edi], al
		 inc esi
		 inc edi

		 // 1
		 mov al, [esi]
		 mov cl, [esi+ebx]
		 add eax, ecx
		 shr eax, 1
		 mov [edi], al
		 inc esi
		 inc edi

		 // 2
		 //xor eax, eax
		 mov al, [esi]
		 mov cl, [esi+ebx]
		 add eax, ecx
		 shr eax, 1
		 mov [edi], al
		 inc esi
		 inc edi

		 // 3
		 //xor eax, eax
		 mov al, [esi]
		 mov cl, [esi+ebx]
		 add eax, ecx
		 shr eax, 1
		 mov [edi], al
		 inc esi
		 inc edi

		 // 4
		 mov al, [esi]
		 mov cl, [esi+ebx]
		 add eax, ecx
		 shr eax, 1
		 mov [edi], al
		 inc esi
		 inc edi

		 // 5
		 mov al, [esi]
		 mov cl, [esi+ebx]
		 add eax, ecx
		 shr eax, 1
		 mov [edi], al
		 inc esi
		 inc edi

		 // 6
		 mov al, [esi]
		 mov cl, [esi+ebx]
		 add eax, ecx
		 shr eax, 1
		 mov [edi], al
		 inc esi
		 inc edi

		 // 7
		 mov al, [esi]
		 mov cl, [esi+ebx]
		 add eax, ecx
		 shr eax, 1
		 mov [edi], al

		 add esi, ebx
		 sub esi, 7
		 add edi, ebx
		 sub edi, 7
		 dec edx
		 jnz start_again1
	}
}
/**/
void CopyBlockHorVerRound(unsigned char * Src, unsigned char * Dst, int Stride)
{
	int dy, dx;

	for (dy = 0; dy < 8; dy++) {
		for (dx = 0; dx < 8; dx++) {
			Dst[dx] = (Src[dx] + Src[dx+1] + 
								Src[dx+Stride] + Src[dx+Stride+1] +1) >> 2; // horver interpolation with rounding
		}
		Src += Stride;
		Dst += Stride;
	}
}
/** *** **/
void CopyMBlock(unsigned char * Src, unsigned char * Dst, int Stride)
{
	_asm {
		 mov ebx, Stride
		 sub ebx, 12
		 mov edx, 16
		 mov esi, dword ptr [Src]
		 mov edi, dword ptr [Dst]

start_again:
		 mov eax, [esi]
		 mov [edi], eax
		 add esi, 4
		 add edi, 4

		 mov eax, [esi]
		 mov [edi], eax
		 add esi, 4
		 add edi, 4

		 mov eax, [esi]
		 mov [edi], eax
		 add esi, 4
		 add edi, 4

		 mov eax, [esi]
		 mov [edi], eax

		 add esi, ebx
		 add edi, ebx
		 dec edx
		 jnz start_again
	}
}
/**/
void CopyMBlockHor(unsigned char * Src, unsigned char * Dst, int Stride)
{
	_asm {
		 xor eax, eax
		 mov ebx, Stride
		 sub ebx, 15
		 xor ecx, ecx
		 mov edx, 16
		 mov esi, dword ptr [Src]
		 mov edi, dword ptr [Dst]

start_again0:
		 // 0
		 mov al, [esi]
		 inc esi
		 mov cl, [esi]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al
		 inc edi

		 // 1
		 mov al, [esi]
		 inc esi
		 mov cl, [esi]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al
		 inc edi

		 // 2
		 mov al, [esi]
		 inc esi
		 mov cl, [esi]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al
		 inc edi

		 // 3
		 //xor eax, eax
		 mov al, [esi]
		 inc esi
		 mov cl, [esi]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al
		 inc edi

		 // 4
		 mov al, [esi]
		 inc esi
		 mov cl, [esi]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al
		 inc edi

		 // 5
		 mov al, [esi]
		 inc esi
		 mov cl, [esi]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al
		 inc edi

		 // 6
		 mov al, [esi]
		 inc esi
		 mov cl, [esi]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al
		 inc edi

		 // 7
		 mov al, [esi]
		 inc esi
		 mov cl, [esi]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al
		 inc edi

		 // 8
		 mov al, [esi]
		 inc esi
		 mov cl, [esi]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al
		 inc edi

		 // 9
		 mov al, [esi]
		 inc esi
		 mov cl, [esi]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al
		 inc edi

		 // 10
		 mov al, [esi]
		 inc esi
		 mov cl, [esi]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al
		 inc edi

		 // 11
		 mov al, [esi]
		 inc esi
		 mov cl, [esi]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al
		 inc edi

		 //12
		 mov al, [esi]
		 inc esi
		 mov cl, [esi]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al
		 inc edi

		 //13 
		 mov al, [esi]
		 inc esi
		 mov cl, [esi]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al
		 inc edi

		 //14
		 mov al, [esi]
		 inc esi
		 mov cl, [esi]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al
		 inc edi

		 //15
		 mov al, [esi]
		 mov cl, [esi+1]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al

		 add esi, ebx
		 add edi, ebx
		 dec edx
		 jnz start_again0
	}
}
/**/
void CopyMBlockVer(unsigned char * Src, unsigned char * Dst, int Stride)
{
	_asm {
		 xor eax, eax
		 mov ebx, Stride
		 xor ecx, ecx
		 mov edx, 16
		 mov esi, dword ptr [Src]
		 mov edi, dword ptr [Dst]

start_again0:
		 // 0
		 mov al, [esi]
		 mov cl, [esi+ebx]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al
		 inc esi
		 inc edi

		 // 1
		 mov al, [esi]
		 mov cl, [esi+ebx]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al
		 inc esi
		 inc edi

		 // 2
		 mov al, [esi]
		 mov cl, [esi+ebx]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al
		 inc esi
		 inc edi

		 // 3
		 //xor eax, eax
		 mov al, [esi]
		 mov cl, [esi+ebx]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al
		 inc esi
		 inc edi

		 // 4
		 mov al, [esi]
		 mov cl, [esi+ebx]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al
		 inc esi
		 inc edi

		 // 5
		 mov al, [esi]
		 mov cl, [esi+ebx]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al
		 inc esi
		 inc edi

		 // 6
		 mov al, [esi]
		 mov cl, [esi+ebx]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al
		 inc esi
		 inc edi

		 // 7
		 mov al, [esi]
		 mov cl, [esi+ebx]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al
		 inc esi
		 inc edi

		 // 8
		 mov al, [esi]
		 mov cl, [esi+ebx]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al
		 inc esi
		 inc edi

		 // 9
		 mov al, [esi]
		 mov cl, [esi+ebx]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al
		 inc esi
		 inc edi

		 // 10
		 mov al, [esi]
		 mov cl, [esi+ebx]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al
		 inc esi
		 inc edi

		 // 11
		 mov al, [esi]
		 mov cl, [esi+ebx]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al
		 inc esi
		 inc edi

		 //12
		 mov al, [esi]
		 mov cl, [esi+ebx]
		 add eax, ecx
		 inc eax
		 shr eax, 1
		 mov [edi], al
		 inc esi
		 inc edi

		 //13 
		 mov al, [esi]

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产美女浴室洗澡无遮挡| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 亚洲成人av福利| 欧美色男人天堂| 蜜桃91丨九色丨蝌蚪91桃色| 精品粉嫩aⅴ一区二区三区四区| 国内国产精品久久| 国产欧美一区二区三区网站| 成人一道本在线| 亚洲欧美激情在线| 欧美色图在线观看| 美腿丝袜亚洲综合| 久久久久成人黄色影片| 99热这里都是精品| 亚洲第一电影网| 精品三级在线观看| 99久久久精品免费观看国产蜜| 一区二区三区精品在线观看| 91精品午夜视频| 极品少妇一区二区三区精品视频| 中文字幕免费在线观看视频一区| 一本大道久久a久久精品综合| 日韩影院精彩在线| 久久噜噜亚洲综合| 一本大道久久a久久综合| 日韩精品午夜视频| 国产色产综合色产在线视频| 91蜜桃免费观看视频| 日韩成人伦理电影在线观看| 精品国产91亚洲一区二区三区婷婷| 国产一区二区三区免费观看| 亚洲人成小说网站色在线| 欧美精品 日韩| 高清不卡一区二区在线| 亚洲一区av在线| 久久新电视剧免费观看| 在线这里只有精品| 久久精品国产99国产| 亚洲三级久久久| 欧美成人一区二区三区在线观看| av不卡免费在线观看| 美国十次了思思久久精品导航| 中文字幕一区二区三区在线不卡| 91精品国产一区二区三区蜜臀 | 精品国产免费久久| 99久久精品国产一区| 日本欧美加勒比视频| 国产精品灌醉下药二区| 日韩精品一区二区三区中文不卡| 99久久婷婷国产综合精品电影| 奇米在线7777在线精品| 亚洲欧美一区二区三区极速播放 | 在线播放国产精品二区一二区四区| 国产精一区二区三区| 香蕉成人啪国产精品视频综合网| 国产欧美精品日韩区二区麻豆天美| 欧美挠脚心视频网站| voyeur盗摄精品| 精品一区二区三区在线观看 | 久久国产人妖系列| 亚洲综合色噜噜狠狠| 亚洲国产精品v| 日韩欧美一区二区三区在线| 欧美自拍丝袜亚洲| 国产不卡视频一区| 麻豆91在线观看| 亚洲免费观看高清完整版在线观看 | 国产欧美一区二区三区在线老狼| 91.com视频| 色菇凉天天综合网| 成人精品在线视频观看| 久久激情五月激情| 婷婷综合五月天| 亚洲人成网站色在线观看| 国产日韩精品一区二区浪潮av| 日韩小视频在线观看专区| 欧美色手机在线观看| 91丨九色丨蝌蚪丨老版| 国产suv一区二区三区88区| 黄色小说综合网站| 日本成人在线一区| 亚洲成人av一区二区| 一区二区三区在线影院| 自拍偷拍欧美精品| 国产日韩精品一区| 久久久欧美精品sm网站| 日韩三级伦理片妻子的秘密按摩| 欧美乱妇15p| 欧美三级在线看| 欧美性淫爽ww久久久久无| 色久优优欧美色久优优| 91天堂素人约啪| 成人黄色电影在线 | 亚洲黄色小说网站| 亚洲视频每日更新| 亚洲欧美偷拍另类a∨色屁股| 国产精品久久久久aaaa樱花 | 韩国成人福利片在线播放| 麻豆成人av在线| 免费在线观看一区| 日av在线不卡| 青娱乐精品在线视频| 男人的j进女人的j一区| 日韩精品亚洲一区二区三区免费| 天堂成人免费av电影一区| 日韩黄色小视频| 日韩精品欧美精品| 麻豆精品国产91久久久久久| 麻豆精品国产传媒mv男同| 精品一区二区精品| 国产在线播精品第三| 国产精品 欧美精品| 国产成人精品www牛牛影视| 国产91精品露脸国语对白| 成人app网站| 91在线精品一区二区| 一本一道久久a久久精品综合蜜臀| 99精品国产99久久久久久白柏| 91网站最新地址| 欧美午夜精品免费| 欧美丰满高潮xxxx喷水动漫| 日韩一级成人av| 2020国产精品久久精品美国| 国产亚洲精品福利| 中文字幕在线不卡一区| 夜夜揉揉日日人人青青一国产精品| 亚洲国产乱码最新视频 | 一本到一区二区三区| 欧美性受xxxx黑人xyx| 91麻豆精品国产91久久久资源速度| 日韩欧美一区在线观看| 国产午夜精品美女毛片视频| 欧美国产乱子伦| 综合自拍亚洲综合图不卡区| 亚洲一级二级三级在线免费观看| 日韩精品亚洲一区| 国模套图日韩精品一区二区| 不卡的电视剧免费网站有什么| 欧美在线看片a免费观看| 欧美高清精品3d| 2021国产精品久久精品| 日韩一区有码在线| 婷婷成人综合网| 国产麻豆欧美日韩一区| 91色porny蝌蚪| 91麻豆精品国产91久久久久久 | 欧美日韩视频专区在线播放| 欧美不卡123| 国产精品家庭影院| 亚洲h精品动漫在线观看| 韩国精品免费视频| 色综合久久综合| 日韩三级中文字幕| 国产精品毛片无遮挡高清| 亚洲国产精品久久不卡毛片 | 美腿丝袜亚洲一区| 不卡视频一二三四| 777午夜精品免费视频| 久久久久国产精品人| 一区二区三区日韩精品| 精品一区二区三区在线视频| 99riav一区二区三区| 日韩一卡二卡三卡四卡| 国产精品麻豆99久久久久久| 视频一区欧美日韩| 成人av网在线| 日韩欧美中文一区二区| 国产精品对白交换视频| 奇米亚洲午夜久久精品| www.日韩大片| 日韩一区二区免费在线观看| 中文字幕五月欧美| 久久精品久久99精品久久| 色综合天天综合狠狠| 欧美不卡视频一区| 亚洲一区免费视频| 国产成人av电影在线观看| 欧美日韩精品一区二区在线播放| 久久精品无码一区二区三区| 婷婷久久综合九色国产成人| 成人禁用看黄a在线| 欧美大片免费久久精品三p| 伊人一区二区三区| 国产精品1024| 日韩一区二区三区观看| 玉米视频成人免费看| 国产91高潮流白浆在线麻豆| 欧美一级专区免费大片| 一区二区三区国产精品| 成人久久久精品乱码一区二区三区| 日韩亚洲欧美高清| 亚洲一区二区黄色| av福利精品导航| 久久毛片高清国产| 男人的天堂亚洲一区| 欧美三区在线观看| 亚洲视频在线一区二区| 国产精品一二二区| 日韩美女在线视频| 婷婷综合另类小说色区|