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

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

?? fdct_xvid.c

?? adi bf533視頻編碼程序
?? C
字號:
/* This routine is a slow-but-accurate integer implementation of the * forward DCT (Discrete Cosine Transform). Taken from the IJG software * * A 2-D DCT can be done by 1-D DCT on each row followed by 1-D DCT * on each column.  Direct algorithms are also available, but they are * much more complex and seem not to be any faster when reduced to code. * * This implementation is based on an algorithm described in *   C. Loeffler, A. Ligtenberg and G. Moschytz, "Practical Fast 1-D DCT *   Algorithms with 11 Multiplications", Proc. Int'l. Conf. on Acoustics, *   Speech, and Signal Processing 1989 (ICASSP '89), pp. 988-991. * The primary algorithm described there uses 11 multiplies and 29 adds. * We use their alternate method with 12 multiplies and 32 adds. * The advantage of this method is that no data path contains more than one * multiplication; this allows a very simple and accurate implementation in * scaled fixed-point arithmetic, with a minimal number of shifts. * * The poop on this scaling stuff is as follows: * * Each 1-D DCT step produces outputs which are a factor of sqrt(N) * larger than the true DCT outputs.  The final outputs are therefore * a factor of N larger than desired; since N=8 this can be cured by * a simple right shift at the end of the algorithm.  The advantage of * this arrangement is that we save two multiplications per 1-D DCT, * because the y0 and y4 outputs need not be divided by sqrt(N). * In the IJG code, this factor of 8 is removed by the quantization step * (in jcdctmgr.c), here it is removed. * * We have to do addition and subtraction of the integer inputs, which * is no problem, and multiplication by fractional constants, which is * a problem to do in integer arithmetic.  We multiply all the constants * by CONST_SCALE and convert them to integer constants (thus retaining * CONST_BITS bits of precision in the constants).  After doing a * multiplication we have to divide the product by CONST_SCALE, with proper * rounding, to produce the correct output.  This division can be done * cheaply as a right shift of CONST_BITS bits.  We postpone shifting * as long as possible so that partial sums can be added together with * full fractional precision. * * The outputs of the first pass are scaled up by PASS1_BITS bits so that * they are represented to better-than-integral precision.  These outputs * require 8 + PASS1_BITS + 3 bits; this fits in a 16-bit word * with the recommended scaling.  (For 12-bit sample data, the intermediate * array is INT32 anyway.) * * To avoid overflow of the 32-bit intermediate results in pass 2, we must * have 8 + CONST_BITS + PASS1_BITS <= 26.  Error analysis * shows that the values given below are the most effective. * * We can gain a little more speed, with a further compromise in accuracy, * by omitting the addition in a descaling shift.  This yields an incorrectly * rounded result half the time... *///#include "fdct_xvid.h"#define USE_ACCURATE_ROUNDING#define RIGHT_SHIFT(x, shft)  ((x) >> (shft))#ifdef USE_ACCURATE_ROUNDING#define ONE ((int) 1)#define DESCALE(x, n)  RIGHT_SHIFT((x) + (ONE << ((n) - 1)), n)#else#define DESCALE(x, n)  RIGHT_SHIFT(x, n)#endif#define CONST_BITS  13#define PASS1_BITS  2// *8192#define FIX_0_298631336  ((int)  2446)	/* FIX(0.298631336) */#define FIX_0_390180644  ((int)  3196)	/* FIX(0.390180644) */#define FIX_0_541196100  ((int)  4433)	/* FIX(0.541196100) */#define FIX_0_765366865  ((int)  6270)	/* FIX(0.765366865) */#define FIX_0_899976223  ((int)  7373)	/* FIX(0.899976223) */#define FIX_1_175875602  ((int)  9633)	/* FIX(1.175875602) */#define FIX_1_501321110  ((int) 12299)	/* FIX(1.501321110) */#define FIX_1_847759065  ((int) 15137)	/* FIX(1.847759065) */#define FIX_1_961570560  ((int) 16069)	/* FIX(1.961570560) */#define FIX_2_053119869  ((int) 16819)	/* FIX(2.053119869) */#define FIX_2_562915447  ((int) 20995)	/* FIX(2.562915447) */#define FIX_3_072711026  ((int) 25172)	/* FIX(3.072711026) *//* * Perform an integer forward DCT on one block of samples. */voidfdct_int32(short *const block){	int tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7;	int tmp10, tmp11, tmp12, tmp13;	int z1, z2, z3, z4, z5;	short *blkptr;	int *dataptr;	int data[64];	int i;	/* Pass 1: process rows. */	/* Note results are scaled up by sqrt(8) compared to a true DCT; */	/* furthermore, we scale the results by 2**PASS1_BITS. */	dataptr = data;	blkptr = block;	for (i = 0; i < 8; i++) {		tmp0 = blkptr[0] + blkptr[7];		tmp7 = blkptr[0] - blkptr[7];		tmp1 = blkptr[1] + blkptr[6];		tmp6 = blkptr[1] - blkptr[6];		tmp2 = blkptr[2] + blkptr[5];		tmp5 = blkptr[2] - blkptr[5];		tmp3 = blkptr[3] + blkptr[4];		tmp4 = blkptr[3] - blkptr[4];		/* Even part per LL&M figure 1 --- note that published figure is faulty;		 * rotator "sqrt(2)*c1" should be "sqrt(2)*c6".		 */		tmp10 = tmp0 + tmp3;		tmp13 = tmp0 - tmp3;		tmp11 = tmp1 + tmp2;		tmp12 = tmp1 - tmp2;		dataptr[0] = (tmp10 + tmp11) << PASS1_BITS;		dataptr[4] = (tmp10 - tmp11) << PASS1_BITS;		z1 = (tmp12 + tmp13) * FIX_0_541196100;		dataptr[2] =			DESCALE(z1 + tmp13 * FIX_0_765366865, CONST_BITS - PASS1_BITS);		dataptr[6] =			DESCALE(z1 + tmp12 * (-FIX_1_847759065), CONST_BITS - PASS1_BITS);		/* Odd part per figure 8 --- note paper omits factor of sqrt(2).		 * cK represents cos(K*pi/16).		 * i0..i3 in the paper are tmp4..tmp7 here.		 */		z1 = tmp4 + tmp7;		z2 = tmp5 + tmp6;		z3 = tmp4 + tmp6;		z4 = tmp5 + tmp7;		z5 = (z3 + z4) * FIX_1_175875602;	/* sqrt(2) * c3 */		tmp4 *= FIX_0_298631336;	/* sqrt(2) * (-c1+c3+c5-c7) */		tmp5 *= FIX_2_053119869;	/* sqrt(2) * ( c1+c3-c5+c7) */		tmp6 *= FIX_3_072711026;	/* sqrt(2) * ( c1+c3+c5-c7) */		tmp7 *= FIX_1_501321110;	/* sqrt(2) * ( c1+c3-c5-c7) */		z1 *= -FIX_0_899976223;	/* sqrt(2) * (c7-c3) */		z2 *= -FIX_2_562915447;	/* sqrt(2) * (-c1-c3) */		z3 *= -FIX_1_961570560;	/* sqrt(2) * (-c3-c5) */		z4 *= -FIX_0_390180644;	/* sqrt(2) * (c5-c3) */		z3 += z5;		z4 += z5;		dataptr[7] = DESCALE(tmp4 + z1 + z3, CONST_BITS - PASS1_BITS);		dataptr[5] = DESCALE(tmp5 + z2 + z4, CONST_BITS - PASS1_BITS);		dataptr[3] = DESCALE(tmp6 + z2 + z3, CONST_BITS - PASS1_BITS);		dataptr[1] = DESCALE(tmp7 + z1 + z4, CONST_BITS - PASS1_BITS);		dataptr += 8;			/* advance pointer to next row */		blkptr += 8;	}	/* Pass 2: process columns.	 * We remove the PASS1_BITS scaling, but leave the results scaled up	 * by an overall factor of 8.	 */	dataptr = data;	for (i = 0; i < 8; i++) {		tmp0 = dataptr[0] + dataptr[56];		tmp7 = dataptr[0] - dataptr[56];		tmp1 = dataptr[8] + dataptr[48];		tmp6 = dataptr[8] - dataptr[48];		tmp2 = dataptr[16] + dataptr[40];		tmp5 = dataptr[16] - dataptr[40];		tmp3 = dataptr[24] + dataptr[32];		tmp4 = dataptr[24] - dataptr[32];		/* Even part per LL&M figure 1 --- note that published figure is faulty;		 * rotator "sqrt(2)*c1" should be "sqrt(2)*c6".		 */		tmp10 = tmp0 + tmp3;		tmp13 = tmp0 - tmp3;		tmp11 = tmp1 + tmp2;		tmp12 = tmp1 - tmp2;		dataptr[0] = DESCALE(tmp10 + tmp11, PASS1_BITS);		dataptr[32] = DESCALE(tmp10 - tmp11, PASS1_BITS);		z1 = (tmp12 + tmp13) * FIX_0_541196100;		dataptr[16] =			DESCALE(z1 + tmp13 * FIX_0_765366865, CONST_BITS + PASS1_BITS);		dataptr[48] =			DESCALE(z1 + tmp12 * (-FIX_1_847759065), CONST_BITS + PASS1_BITS);		/* Odd part per figure 8 --- note paper omits factor of sqrt(2).		 * cK represents cos(K*pi/16).		 * i0..i3 in the paper are tmp4..tmp7 here.		 */		z1 = tmp4 + tmp7;		z2 = tmp5 + tmp6;		z3 = tmp4 + tmp6;		z4 = tmp5 + tmp7;		z5 = (z3 + z4) * FIX_1_175875602;	/* sqrt(2) * c3 */		tmp4 *= FIX_0_298631336;	/* sqrt(2) * (-c1+c3+c5-c7) */		tmp5 *= FIX_2_053119869;	/* sqrt(2) * ( c1+c3-c5+c7) */		tmp6 *= FIX_3_072711026;	/* sqrt(2) * ( c1+c3+c5-c7) */		tmp7 *= FIX_1_501321110;	/* sqrt(2) * ( c1+c3-c5-c7) */		z1 *= -FIX_0_899976223;	/* sqrt(2) * (c7-c3) */		z2 *= -FIX_2_562915447;	/* sqrt(2) * (-c1-c3) */		z3 *= -FIX_1_961570560;	/* sqrt(2) * (-c3-c5) */		z4 *= -FIX_0_390180644;	/* sqrt(2) * (c5-c3) */		z3 += z5;		z4 += z5;		dataptr[56] = DESCALE(tmp4 + z1 + z3, CONST_BITS + PASS1_BITS);		dataptr[40] = DESCALE(tmp5 + z2 + z4, CONST_BITS + PASS1_BITS);		dataptr[24] = DESCALE(tmp6 + z2 + z3, CONST_BITS + PASS1_BITS);		dataptr[8] = DESCALE(tmp7 + z1 + z4, CONST_BITS + PASS1_BITS);		dataptr++;				/* advance pointer to next column */	}	/* descale */	for (i = 0; i < 64; i++)		block[i] = (short int) DESCALE(data[i], 3);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩电影在线一区| 国内久久婷婷综合| 精品综合免费视频观看| 成人av在线一区二区三区| 欧美精品日韩一区| 国产精品女上位| 麻豆91精品视频| 91久久精品网| 国产精品区一区二区三| 麻豆国产精品一区二区三区 | 亚洲国产高清aⅴ视频| 亚洲一区av在线| 福利一区二区在线| 欧美高清视频一二三区 | 成人99免费视频| 欧美一级二级三级蜜桃| 国产精品美女久久久久久久久久久| 三级不卡在线观看| 色欧美日韩亚洲| 国产精品视频在线看| 国模冰冰炮一区二区| 欧美一区二区三区免费视频| 一区二区三区在线视频免费观看 | 国产精品久久毛片a| 久久99久久久久| 91精品国产aⅴ一区二区| 亚洲综合图片区| 欧美伊人久久大香线蕉综合69| 国产精品久久久99| 处破女av一区二区| 国产欧美日韩精品在线| 国产综合久久久久久久久久久久 | 麻豆国产91在线播放| 欧美一区二区三区啪啪| 天堂一区二区在线| 51精品秘密在线观看| 天堂资源在线中文精品| 欧美人妖巨大在线| 首页综合国产亚洲丝袜| 欧美另类高清zo欧美| 亚洲18色成人| 欧美精品久久99久久在免费线 | 国产中文字幕精品| 国产香蕉久久精品综合网| 国产综合色视频| 国产精品素人视频| 91丨porny丨中文| 亚洲乱码国产乱码精品精可以看 | av欧美精品.com| 亚洲欧美日韩国产成人精品影院 | 9色porny自拍视频一区二区| 国产精品午夜免费| 日本精品视频一区二区| 午夜影院在线观看欧美| 日韩欧美国产小视频| 国产一区亚洲一区| 欧美高清在线视频| 91在线视频免费91| 亚洲国产一区二区a毛片| 91精品国产高清一区二区三区| 激情综合色综合久久| 国产精品女人毛片| 欧美日本精品一区二区三区| 久久99精品久久久久婷婷| 亚洲欧美在线另类| 在线91免费看| 国产精品一区一区| 伊人一区二区三区| 精品日本一线二线三线不卡| 成人高清视频在线| 日韩国产欧美三级| 亚洲国产精品传媒在线观看| 欧美少妇性性性| 国内精品久久久久影院一蜜桃| 中文字幕在线不卡国产视频| 色狠狠av一区二区三区| 精品一区二区三区在线视频| 亚洲精品国产视频| 久久综合久久鬼色| 欧美在线免费视屏| 国产精品一线二线三线精华| 午夜av一区二区三区| 中文字幕中文字幕一区二区 | 中文字幕一区二区三| 555www色欧美视频| 91色porny| 国产福利一区二区三区视频 | 成人免费视频免费观看| 亚洲成人7777| 自拍偷拍国产精品| 欧美va亚洲va香蕉在线| 日本精品一区二区三区高清| 国产精品久久一级| 久久午夜免费电影| 欧美优质美女网站| 成人爱爱电影网址| 看电影不卡的网站| 五月天精品一区二区三区| 国产精品三级在线观看| 欧美一区二区三区的| 91亚洲精品一区二区乱码| 日本亚洲视频在线| 国产精品福利在线播放| 久久久av毛片精品| 欧美一级二级在线观看| 欧美在线观看视频在线| 国产精品一级片| 美女视频网站久久| 亚洲自拍偷拍综合| 久久先锋影音av鲁色资源网| 日韩午夜激情视频| 在线免费精品视频| 99精品国产91久久久久久| 国产一区二区看久久| 日韩国产精品久久久| 亚洲一区视频在线观看视频| 一区二区三区在线不卡| 国产精品久久一卡二卡| 国产午夜精品在线观看| 精品久久久影院| 欧美大片在线观看一区二区| 波多野结衣一区二区三区 | 日韩国产高清影视| 亚洲一区二区三区免费视频| 综合在线观看色| 国产精品麻豆一区二区| 久久久精品免费观看| 欧美欧美午夜aⅴ在线观看| 欧美日韩国产综合视频在线观看| 91在线视频在线| 91看片淫黄大片一级在线观看| 成人午夜免费视频| 福利一区福利二区| 99久久精品国产精品久久| 在线免费亚洲电影| 欧美久久久久免费| 欧美日韩精品欧美日韩精品| 欧美性大战久久| 欧美人与禽zozo性伦| 在线观看成人小视频| 91精品国产乱| 久久亚洲精精品中文字幕早川悠里| 26uuu国产在线精品一区二区| 久久综合九色综合久久久精品综合| 欧美电视剧免费观看| 国产婷婷一区二区| 亚洲国产综合色| 蜜臀91精品一区二区三区| 国产综合色视频| 成人av在线播放网站| 97久久久精品综合88久久| 91免费看片在线观看| 欧美亚洲愉拍一区二区| 91精品婷婷国产综合久久性色| 欧美成人video| 欧美激情在线看| 国产欧美一区二区精品婷婷 | 成人动漫一区二区在线| 国产成人自拍在线| 欧美久久一区二区| 精品国产乱子伦一区| 国产精品久久久久婷婷二区次| 亚洲欧美激情在线| 青青草精品视频| 激情深爱一区二区| 欧美视频一区二区三区在线观看| 欧美精选一区二区| 久久精品人人做人人爽人人| 亚洲日本va在线观看| 天天色综合天天| 国产在线观看免费一区| 欧美日韩性生活| 久久精品夜色噜噜亚洲a∨| 亚洲精品一二三| 久久97超碰国产精品超碰| zzijzzij亚洲日本少妇熟睡| 欧美军同video69gay| 日本一区二区三区高清不卡| 亚洲国产裸拍裸体视频在线观看乱了| 美女脱光内衣内裤视频久久网站| 波多野结衣在线aⅴ中文字幕不卡| 一本色道久久综合精品竹菊| 久久九九久精品国产免费直播| 亚洲欧美激情插| 国产成人av资源| 欧美一区二区三区公司| 自拍偷拍亚洲激情| 国内精品久久久久影院色| 欧美日韩国产一级二级| 国产精品国产三级国产普通话99| 日本一不卡视频| 欧洲亚洲精品在线| 亚洲精品国产第一综合99久久| 国产一区欧美一区| 91精品国产色综合久久| 亚洲免费伊人电影| 成人黄色大片在线观看| 欧美成人伊人久久综合网| 石原莉奈一区二区三区在线观看| 91亚洲精华国产精华精华液|