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

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

?? basic_prediction_mmx.c

?? 本程序介紹MPEG-4解碼技術
?? C
?? 第 1 頁 / 共 2 頁
字號:
/**************************************************************************
 *                                                                        *
 * This code has been developed by Eugene Kuznetsov. This software is an  *
 * implementation of a part of one or more MPEG-4 Video tools as          *
 * specified in ISO/IEC 14496-2 standard.  Those intending to use this    *
 * software module in hardware or software products are advised that its  *
 * use may infringe existing patents or copyrights, and any such use      *
 * would be at such party's own risk.  The original developer of this     *
 * software module and his/her company, and subsequent editors and their  *
 * companies (including Project Mayo), will have no liability for use of  *
 * this software or modifications or derivatives thereof.                 *
 *                                                                        *
 * Project Mayo gives users of the Codec a license to this software       *
 * module or modifications thereof for use in hardware or software        *
 * products claiming conformance to the MPEG-4 Video Standard as          *
 * described in the Open DivX license.                                    *
 *                                                                        *
 * The complete Open DivX license can be found at                         *
 * http://www.projectmayo.com/opendivx/license.php                        *
 *                                                                        *
 **************************************************************************/
/**
*  Copyright (C) 2001 - Project Mayo
 *
 * Eugene Kuznetsov
 *
 * DivX Advanced Research Center <darc@projectmayo.com>
*
**/

#include "basic_prediction.h"

// Purpose: specialized basic motion compensation routines
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;
	}
}
#define CopyBlockHorLoop \
	"movb (%%esi), %%al\n" 	\
	"incl %%esi\n" 		\
	"movb (%%esi), %%cl\n" 	\
	"addl %%ecx, %%eax\n" 	\
	"incl %%eax\n" 		\
	"shrl $1, %%eax\n" 	\
	"movb %%al, (%%edi)\n" 	\
	"incl %%edi\n"

// input: esi
// output: edi
// modifies: eax, ebx, edx
#define CopyBlockHorLoopFast \
	"movl (%%esi), %%edx\n"	\
	"movl 1(%%esi), %%ebx\n"\
	"movl %%edx, %%eax\n"	\
	"xorl %%ebx, %%edx\n"	\
	"shrl $1, %%edx\n"	\
	"adcl %%ebx, %%eax\n"	\
	"rcrl $1, %%eax\n"	\
	"andl $0x808080, %%edx\n"\
	"addl %%edx, %%eax\n"	\
	"movl %%eax, (%%edi)\n"	\
	"addl $4, %%esi\n"	\
	"addl $4, %%edi\n"

#define CopyBlockVerLoopFast \
	"movl (%%esi), %%edx\n"	\
	"movl (%%esi,%%ecx), %%ebx\n"\
	"movl %%edx, %%eax\n"	\
	"xorl %%ebx, %%edx\n"	\
	"shrl $1, %%edx\n"	\
	"adcl %%ebx, %%eax\n"	\
	"rcrl $1, %%eax\n"	\
	"andl $0x808080, %%edx\n"\
	"addl %%edx, %%eax\n"	\
	"movl %%eax, (%%edi)\n"	\
	"addl $4, %%esi\n"	\
	"addl $4, %%edi\n"


#define CopyBlockHorLoopRound \
	"movb (%%esi), %%al\n" 	\
	"incl %%esi\n" 		\
	"movb (%%esi), %%cl\n" 	\
	"addl %%ecx, %%eax\n" 	\
	"shrl $1, %%eax\n" 	\
	"movb %%al, (%%edi)\n" 	\
	"incl %%edi\n"

#define CopyBlockVerLoop \
    "movb (%%esi), %%al\n" 	\
    "movb (%%esi,%%ebx), %%cl\n" \
    "addl %%ecx, %%eax\n" 	\
    "incl %%eax\n" 		\
    "shrl $1, %%eax\n" 		\
    "movb %%al, (%%edi)\n" 	\
    "incl %%esi\n" 		\
    "incl %%edi\n"

#define CopyBlockVerLoopRound \
    "movb (%%esi), %%al\n" 	\
    "movb (%%esi,%%ebx), %%cl\n" \
    "addl %%ecx, %%eax\n" 	\
    "shrl $1, %%eax\n" 		\
    "movb %%al, (%%edi)\n" 	\
    "incl %%esi\n" 		\
    "incl %%edi\n"

#define CopyBlockHorVerLoop(STEP) \
    "movb " #STEP "(%%esi), %%al\n" 		\
    "movb " #STEP "+1(%%esi), %%cl\n" 		\
    "addl %%ecx, %%eax\n" 			\
    "movb " #STEP "(%%esi, %%ebx), %%cl\n" 	\
    "addl %%ecx, %%eax\n" 			\
    "movb " #STEP "+1(%%esi, %%ebx), %%cl\n" 	\
    "addl %%ecx, %%eax\n" 			\
    "addl $2, %%eax\n" 				\
    "shrl $2, %%eax\n" 				\
    "movb %%al, " #STEP "(%%edi)\n"

#define CopyBlockHorVerLoopRound(STEP) \
    "movb " #STEP "(%%esi), %%al\n" 		\
    "movb " #STEP "+1(%%esi), %%cl\n" 		\
    "addl %%ecx, %%eax\n" 			\
    "movb " #STEP "(%%esi, %%ebx), %%cl\n" 	\
    "addl %%ecx, %%eax\n" 			\
    "movb " #STEP "+1(%%esi, %%ebx), %%cl\n" 	\
    "addl %%ecx, %%eax\n" 			\
    "incl %%eax\n" 				\
    "shrl $2, %%eax\n" 				\
    "movb %%al, " #STEP "(%%edi)\n"

/**/

void CopyBlockHor(unsigned char * Src, unsigned char * Dst, int Stride)
{
	__asm__ (
	"movl %2, %%esi\n"
	"movl %3, %%edi\n"
	"pushl %%ebx\n"
	"1:\n"
	"pushl %%edx\n"

	CopyBlockHorLoopFast
	CopyBlockHorLoopFast

	"popl %%edx\n"
	"addl %%ecx, %%esi\n"
	"addl %%ecx, %%edi\n"
	"decl %%edx\n"
	"jnz 1b\n"
	"popl %%ebx\n"
	:
	: "c"(Stride-8), "d"(8), "g" (Src), "g"(Dst)
	: "esi", "edi"
	);
}
void CopyBlockVer(unsigned char * Src, unsigned char * Dst, int Stride)
{
	__asm__ (
	"movl %2, %%esi\n"
	"movl %3, %%edi\n"
	"pushl %%ebx\n"
	"1:\n"
	"pushl %%edx\n"

	CopyBlockVerLoopFast
	CopyBlockVerLoopFast

	"popl %%edx\n"
	"addl %%ecx, %%esi\n"
	"subl $8, %%esi\n"
	"addl %%ecx, %%edi\n"
	"subl $8, %%edi\n"
	"decl %%edx\n"
	"jnz 1b\n"
	"popl %%ebx\n"
	:
	: "c"(Stride), "d"(8), "g" (Src), "g"(Dst)
	: "esi", "edi"
	);
}
/*
void CopyBlockHor(unsigned char * Src, unsigned char * Dst, int Stride)
{
	__asm__ (
	"pushl %%ebx\n"
	"movl %1, %%ebx\n"
	"movl %4, %%esi\n"
	"movl %5, %%edi\n"
	"1:\n"

	CopyBlockHorLoop
	CopyBlockHorLoop
	CopyBlockHorLoop
	CopyBlockHorLoop

	CopyBlockHorLoop
	CopyBlockHorLoop
	CopyBlockHorLoop
	CopyBlockHorLoop

	"addl %%ebx, %%esi\n"
	"addl %%ebx, %%edi\n"
	"decl %%edx\n"
	"jnz 1b\n"
	"popl %%ebx\n"
	:
	: "a"(0), "g"(Stride-8), "c"(0), "d"(8), "g" (Src), "g"(Dst)
	);
}
*/
void CopyBlockHorRound(unsigned char * Src, unsigned char * Dst, int Stride)
{
	__asm__ (
	"movl %1, %%eax\n"
	"movl %4, %%esi\n"
	"movl %5, %%edi\n"
	"pushl %%ebx\n"
	"movl %%eax, %%ebx\n"
        "xorl %%eax, %%eax\n"
	"1:\n"

	CopyBlockHorLoopRound
	CopyBlockHorLoopRound
	CopyBlockHorLoopRound
	CopyBlockHorLoopRound

	CopyBlockHorLoopRound
	CopyBlockHorLoopRound
	CopyBlockHorLoopRound
	CopyBlockHorLoopRound

	"addl %%ebx, %%esi\n"
	"addl %%ebx, %%edi\n"
	"decl %%edx\n"
	"jnz 1b\n"
	"popl %%ebx\n"
	:
	: "a"(0), "g"(Stride-8), "c"(0), "d"(8), "g" (Src), "g"(Dst)
	: "esi", "edi"
	);
}

/**/
/*
void CopyBlockVer(unsigned char * Src, unsigned char * Dst, int Stride)
{
	__asm__ (
	"pushl %%ebx\n"
	"movl %1, %%ebx\n"
	"movl %4, %%esi\n"
	"movl %5, %%edi\n"
	"1:\n"
	CopyBlockVerLoop
	CopyBlockVerLoop
	CopyBlockVerLoop
	CopyBlockVerLoop

	CopyBlockVerLoop
	CopyBlockVerLoop
	CopyBlockVerLoop
	CopyBlockVerLoop

	"addl %%ebx, %%esi\n"
	"subl $8, %%esi\n"
	"addl %%ebx, %%edi\n"
	"subl $8, %%edi\n"
	"decl %%edx\n"
	"jnz 1b\n"
	"popl %%ebx\n"
	:
	: "a"(0), "g"(Stride), "c"(0), "d"(8), "g" (Src), "g"(Dst)
	);
}
*/
/**/
void CopyBlockVerRound(unsigned char * Src, unsigned char * Dst, int Stride)
{
	__asm__ (
	"movl %1, %%eax\n"
	"movl %4, %%esi\n"
	"movl %5, %%edi\n"
	"pushl %%ebx\n"
	"movl %%eax, %%ebx\n"
        "xorl %%eax, %%eax\n"
	"1:\n"
	CopyBlockVerLoopRound
	CopyBlockVerLoopRound
	CopyBlockVerLoopRound
	CopyBlockVerLoopRound

	CopyBlockVerLoopRound
	CopyBlockVerLoopRound
	CopyBlockVerLoopRound
	CopyBlockVerLoopRound

	"addl %%ebx, %%esi\n"
	"subl $8, %%esi\n"
	"addl %%ebx, %%edi\n"
	"subl $8, %%edi\n"
	"decl %%edx\n"
	"jnz 1b\n"
	"popl %%ebx\n"
	:
	: "a"(0), "g"(Stride), "c"(0), "d"(8), "g" (Src), "g"(Dst)
	: "esi", "edi"
	);
}/**/
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 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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧洲精品中文字幕| 国产成人免费高清| 日韩不卡一二三区| 免费观看久久久4p| 福利一区在线观看| 在线精品视频一区二区| 欧美精品一二三四| 久久综合色播五月| 亚洲三级在线播放| 日日夜夜免费精品| 国产成人免费视| 欧美日免费三级在线| 国产欧美一区二区三区网站| 日韩激情视频在线观看| 韩日av一区二区| 欧美日韩国产123区| 久久久激情视频| 日本亚洲最大的色成网站www| 国产精品一区二区91| 欧美日韩精品综合在线| 国产精品乱子久久久久| 国产一区啦啦啦在线观看| 欧美日韩一区二区电影| 国产精品久久久久久久久晋中| 日韩国产高清影视| 欧美亚洲动漫制服丝袜| 中文字幕视频一区| 国产电影一区在线| 久久久久久久久久电影| 美女一区二区三区在线观看| 欧美人与性动xxxx| 午夜精品久久久久影视| 91啪亚洲精品| 亚洲另类中文字| 色婷婷av一区二区| 一二三区精品视频| 欧美色图天堂网| 三级不卡在线观看| 精品久久久久久亚洲综合网 | 在线观看欧美日本| 亚洲精品久久久蜜桃| 欧美日韩二区三区| 捆绑变态av一区二区三区| 久久综合成人精品亚洲另类欧美| 国产成人午夜精品影院观看视频| 2019国产精品| 色94色欧美sute亚洲13| 亚洲国产成人高清精品| 欧美成人aa大片| 激情综合五月天| 国产精品白丝在线| 制服丝袜亚洲播放| 成人动漫一区二区| 午夜在线成人av| 中文在线免费一区三区高中清不卡 | 欧美日韩国产一区二区三区地区| 亚洲超丰满肉感bbw| 久久综合久久综合亚洲| 色婷婷综合久久久| 精品一区二区三区免费毛片爱| 日韩一区在线看| 精品乱码亚洲一区二区不卡| 91麻豆免费看片| 91网页版在线| 成人的网站免费观看| 国产精品18久久久久久久久久久久| 一区二区三区在线观看动漫| 国产农村妇女毛片精品久久麻豆 | 久久精品国产久精国产爱| 国产精品毛片无遮挡高清| 日韩一区二区精品在线观看| 欧美日韩日日摸| 色综合av在线| 欧美私人免费视频| 欧美视频一区在线| 91久久一区二区| 欧美三级午夜理伦三级中视频| 91蜜桃视频在线| 色婷婷精品久久二区二区蜜臂av| av一区二区三区四区| 色婷婷综合在线| 7777精品伊人久久久大香线蕉超级流畅 | 欧美一区二区不卡视频| 欧美大片在线观看一区| 久久久久久久久久久久久女国产乱 | 国产精品女同一区二区三区| 国产精品久久久久久久久果冻传媒| 欧美国产一区在线| 最好看的中文字幕久久| 艳妇臀荡乳欲伦亚洲一区| 亚洲一区二区四区蜜桃| 成人高清av在线| 欧美在线观看一区二区| 日韩欧美综合在线| 欧美高清一级片在线观看| 一区二区免费在线| 久久99热这里只有精品| eeuss鲁片一区二区三区| 欧美在线免费播放| 久久久精品一品道一区| 亚洲精品国产一区二区精华液 | 日韩精品资源二区在线| 午夜精品成人在线视频| 成人伦理片在线| 欧美精品一区二区三区蜜臀| 亚洲一区在线观看免费观看电影高清| 日韩精品五月天| 91国产丝袜在线播放| 国产日产欧美精品一区二区三区| 亚洲成人福利片| 99久久亚洲一区二区三区青草| 日韩欧美激情在线| 亚洲第一主播视频| 91久久精品网| 亚洲自拍另类综合| 99久久久久久| 亚洲国产精品久久久久秋霞影院| 国产风韵犹存在线视精品| 26uuu亚洲综合色欧美| 免费看精品久久片| 欧美一级欧美三级| 美国av一区二区| 欧美精品一区男女天堂| 韩国v欧美v日本v亚洲v| 日韩片之四级片| 久久精品国产第一区二区三区| 欧美午夜不卡在线观看免费| 一区二区视频免费在线观看| 欧美综合亚洲图片综合区| 亚洲一区二区偷拍精品| 制服丝袜av成人在线看| 蜜臀a∨国产成人精品| 欧美成人乱码一区二区三区| 久久疯狂做爰流白浆xx| 久久精子c满五个校花| 春色校园综合激情亚洲| 国产精品不卡视频| 欧美日韩国产综合一区二区| 日产国产高清一区二区三区| 久久一区二区三区国产精品| 91在线精品秘密一区二区| 亚洲国产精品一区二区久久 | 亚洲bt欧美bt精品| 日韩免费在线观看| caoporm超碰国产精品| 日韩电影在线观看一区| 欧美国产日韩精品免费观看| 色狠狠一区二区三区香蕉| 久久se精品一区精品二区| 老司机免费视频一区二区 | 成人手机电影网| 日韩电影在线观看一区| ㊣最新国产の精品bt伙计久久| 日韩午夜激情电影| 欧美午夜一区二区三区免费大片| 国产一二精品视频| 玖玖九九国产精品| 亚洲韩国精品一区| 国产精品福利一区二区三区| 精品美女一区二区三区| 91精品免费观看| 51午夜精品国产| 欧美精品色综合| 精品婷婷伊人一区三区三| 91看片淫黄大片一级在线观看| 国产精品中文字幕日韩精品| 捆绑变态av一区二区三区| 日本不卡一区二区三区 | 欧美色中文字幕| 欧美日韩精品免费观看视频| 91久久一区二区| 欧美一区二区黄| 欧美成人精品3d动漫h| 樱桃国产成人精品视频| 国产大片一区二区| 欧美在线制服丝袜| 正在播放亚洲一区| 久久综合九色综合久久久精品综合 | 日本va欧美va欧美va精品| 美女视频免费一区| 丁香六月综合激情| 欧美精品自拍偷拍| 久久亚洲精品小早川怜子| 亚洲一区在线观看视频| 婷婷综合久久一区二区三区| 国产凹凸在线观看一区二区| 高清不卡在线观看| 日韩欧美亚洲国产精品字幕久久久 | 久草热8精品视频在线观看| 成人黄色在线看| 日韩欧美电影一区| 一区二区久久久| 精品一区二区三区免费播放| 色婷婷亚洲综合| 国产精品久久久久一区| 激情伊人五月天久久综合| 欧美r级电影在线观看| 欧美96一区二区免费视频| 美女脱光内衣内裤视频久久网站 | 欧美性猛交一区二区三区精品 |