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

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

?? xvid_bench.c

?? 這是一個(gè)新的知識(shí)的運(yùn)用我還看不懂
?? C
?? 第 1 頁(yè) / 共 4 頁(yè)
字號(hào):
	assert(S->Nb>0);	Norm = 1. / (double)S->Nb;	printf("\n== Max absolute values of errors ==\n");	for(i=0; i<64; i++) {		printf("  %4ld", S->Max_Errors[i]);		if ((i&7)==7) printf("\n");	}	printf("\n== Mean square errors ==\n");	for(i=0; i<64; i++)	{		double Err = Norm * (double)S->Sqr_Errors[i];		printf(" %.3f", Err);		if ((i&7)==7) printf("\n");	}	printf("\n== Mean errors ==\n");	for(i=0; i<64; i++)	{		double Err = Norm * (double)S->Errors[i];		printf(" %.3f", Err);		if ((i&7)==7) printf("\n");	}	printf("\n");}static const char *CHECK(double v, double l) {	if (fabs(v)<=l) return "ok";	else return "FAIL!";}void report_stats(STATS_8x8 *S, const double *Limits){	int i;	double Norm, PE, PMSE, OMSE, PME, OME;	assert(S->Nb>0);	Norm = 1. / (double)S->Nb;	PE = 0.;	for(i=0; i<64; i++) {		if (PE<S->Max_Errors[i])			PE = S->Max_Errors[i];	}	PMSE = 0.;	OMSE = 0.;	for(i=0; i<64; i++)	{		double Err = Norm * (double)S->Sqr_Errors[i];		OMSE += Err;		if (PMSE < Err) PMSE = Err;	}	OMSE /= 64.;	PME = 0.;	OME = 0.;	for(i=0; i<64; i++)	{		double Err = Norm * (double)S->Errors[i];		OME += Err;		Err = fabs(Err);		if (PME < Err) PME = Err;	}	OME /= 64.;	printf( "Peak error:   %4.4f\n", PE );	printf( "Peak MSE:     %4.4f\n", PMSE );	printf( "Overall MSE:  %4.4f\n", OMSE );	printf( "Peak ME:      %4.4f\n", PME );	printf( "Overall ME:   %4.4f\n", OME );	if (Limits!=0)	{		printf( "[PE<=%.4f %s]  ", Limits[0], CHECK(PE,   Limits[0]) );		printf( "\n" );		printf( "[PMSE<=%.4f %s]", Limits[1], CHECK(PMSE, Limits[1]) );		printf( "[OMSE<=%.4f %s]", Limits[2], CHECK(OMSE, Limits[2]) );		printf( "\n" );		printf( "[PME<=%.4f %s] ", Limits[3], CHECK(PME , Limits[3]) );		printf( "[OME<=%.4f %s] ", Limits[4], CHECK(OME , Limits[4]) );		printf( "\n" );	}}///* ////////////////////////////////////////////////////// *//* Pseudo-random generator specified by IEEE 1180 */static long ieee_seed = 1;static void ieee_reseed(long s) {	ieee_seed = s;}static long ieee_rand(int Min, int Max){	static double z = (double) 0x7fffffff;	long i,j;	double x;	ieee_seed = (ieee_seed * 1103515245) + 12345;	i = ieee_seed & 0x7ffffffe;	x = ((double) i) / z;	x *= (Max-Min+1);	j = (long)x;	j = j + Min;	assert(j>=Min && j<=Max);	return (short)j;}#define CLAMP(x, M)   (x) = ((x)<-(M)) ? (-(M)) : ((x)>=(M) ? ((M)-1) : (x))static double Cos[8][8];static void init_ref_dct(){	int i, j;	for(i=0; i<8; i++)	{		double scale = (i == 0) ? sqrt(0.125) : 0.5;		for (j=0; j<8; j++)			Cos[i][j] = scale*cos( (M_PI/8.0)*i*(j + 0.5) );	}}void ref_idct(short *M){	int i, j, k;	double Tmp[8][8];	for(i=0; i<8; i++) {		for(j=0; j<8; j++)		{			double Sum = 0.0;			for (k=0; k<8; k++) Sum += Cos[k][j]*M[8*i+k];			Tmp[i][j] = Sum;		}	}	for(i=0; i<8; i++) {		for(j=0; j<8; j++) {			double Sum = 0.0;			for (k=0; k<8; k++) Sum += Cos[k][i]*Tmp[k][j];			M[8*i+j] = (short)floor(Sum + .5);		}	}}void ref_fdct(short *M){	int i, j, k;	double Tmp[8][8];	for(i=0; i<8; i++) {		for(j=0; j<8; j++)		{			double Sum = 0.0;			for (k=0; k<8; k++) Sum += Cos[j][k]*M[8*i+k];			Tmp[i][j] = Sum;		}	}	for(i=0; i<8; i++) {		for(j=0; j<8; j++) {			double Sum = 0.0;			for (k=0; k<8; k++) Sum += Cos[i][k]*Tmp[k][j];			M[8*i+j] = (short)floor(Sum + 0.5);		}	}}void test_IEEE1180_compliance(int Min, int Max, int Sign){	static const double ILimits[5] = { 1., 0.06, 0.02, 0.015, 0.0015 };	int Loops = 10000;	int i, m, n;	DECLARE_ALIGNED_MATRIX(Blk0, 8, 8, short, 16); /* reference */	DECLARE_ALIGNED_MATRIX(Blk,  8, 8, short, 16);	DECLARE_ALIGNED_MATRIX(iBlk, 8, 8, short, 16);	DECLARE_ALIGNED_MATRIX(Ref_FDCT, 8, 8, short, 16);	DECLARE_ALIGNED_MATRIX(Ref_IDCT, 8, 8, short, 16);	STATS_8x8 FStats; /* forward dct stats */	STATS_8x8 IStats; /* inverse dct stats */	CPU *cpu;	init_ref_dct();	for(cpu = cpu_list; cpu->name!=0; ++cpu)	{		if (!init_cpu(cpu))			continue;		printf( "\n===== IEEE test for %s ==== (Min=%d Max=%d Sign=%d Loops=%d)\n",				cpu->name, Min, Max, Sign, Loops);		init_stats(&IStats);		init_stats(&FStats);		ieee_reseed(1);		for(n=0; n<Loops; ++n)		{			for(i=0; i<64; ++i)				Blk0[i] = (short)ieee_rand(Min,Max) * Sign;			/* hmm, I'm not quite sure this is exactly */			/* the tests described in the norm. check... */			memcpy(Ref_FDCT, Blk0, 64*sizeof(short));			ref_fdct(Ref_FDCT);			for(i=0; i<64; i++) CLAMP( Ref_FDCT[i], 2048 );			memcpy(Blk, Blk0, 64*sizeof(short));			emms(); fdct(Blk); emms();			for(i=0; i<64; i++) CLAMP( Blk[i], 2048 );			store_stats(&FStats, Blk, Ref_FDCT);			memcpy(Ref_IDCT, Ref_FDCT, 64*sizeof(short));			ref_idct(Ref_IDCT);			for (i=0; i<64; i++) CLAMP( Ref_IDCT[i], 256 );			memcpy(iBlk, Ref_FDCT, 64*sizeof(short));			emms(); idct(iBlk); emms();			for(i=0; i<64; i++) CLAMP( iBlk[i], 256 );			store_stats(&IStats, iBlk, Ref_IDCT);		}		printf( "\n  -- FDCT report --\n" );//    print_stats(&FStats);		report_stats(&FStats, 0); /* so far I know, IEEE1180 says nothing for fdct */		for(i=0; i<64; i++) Blk[i] = 0;		emms(); fdct(Blk); emms();		for(m=i=0; i<64; i++) if (Blk[i]!=0) m++;		printf( "FDCT(0) == 0 ?  %s\n", (m!=0) ? "NOPE!" : "yup." );		printf( "\n  -- IDCT report --\n" );//    print_stats(&IStats);		report_stats(&IStats, ILimits);		for(i=0; i<64; i++) Blk[i] = 0;		emms(); idct(Blk); emms();		for(m=i=0; i<64; i++) if (Blk[i]!=0) m++;		printf( "IDCT(0) == 0 ?  %s\n", (m!=0) ? "NOPE!" : "yup." );	}}void test_dct_saturation(int Min, int Max){/* test behaviour on input range fringe */	int i, n, p;	CPU *cpu;//  const short IDCT_MAX =  2047;  /* 12bits input *///  const short IDCT_MIN = -2048;//  const short IDCT_OUT =   256;  /* 9bits ouput */	const int Partitions = 4;	const int Loops = 10000 / Partitions;	init_ref_dct();	for(cpu = cpu_list; cpu->name!=0; ++cpu)	{		short Blk0[64], Blk[64];		STATS_8x8 Stats;		if (!init_cpu(cpu))			continue;		printf( "\n===== IEEE test for %s Min=%d Max=%d =====\n",				cpu->name, Min, Max );		/* FDCT tests // */		init_stats(&Stats);		/* test each computation channels separately */		for(i=0; i<64; i++) Blk[i] = Blk0[i] = ((i/8)==(i%8)) ? Max : 0;		ref_fdct(Blk0);		emms(); fdct(Blk); emms();		store_stats(&Stats, Blk, Blk0);		for(i=0; i<64; i++) Blk[i] = Blk0[i] = ((i/8)==(i%8)) ? Min : 0;		ref_fdct(Blk0);		emms(); fdct(Blk); emms();		store_stats(&Stats, Blk, Blk0);		/* randomly saturated inputs */		for(p=0; p<Partitions; ++p)		{			for(n=0; n<Loops; ++n)			{				for(i=0; i<64; ++i)					Blk0[i] = Blk[i] = (ieee_rand(0,Partitions)>=p)? Max : Min;				ref_fdct(Blk0);				emms(); fdct(Blk); emms();				store_stats(&Stats, Blk, Blk0);			}		}		printf( "\n  -- FDCT saturation report --\n" );		report_stats(&Stats, 0);		/* IDCT tests // */#if 0		/* no finished yet */		init_stats(&Stats);/* test each computation channel separately */		for(i=0; i<64; i++) Blk[i] = Blk0[i] = ((i/8)==(i%8)) ? IDCT_MAX : 0;		ref_idct(Blk0);		emms(); idct(Blk); emms();		for(i=0; i<64; i++) { CLAMP(Blk0[i], IDCT_OUT); CLAMP(Blk[i], IDCT_OUT); }		store_stats(&Stats, Blk, Blk0);		for(i=0; i<64; i++) Blk[i] = Blk0[i] = ((i/8)==(i%8)) ? IDCT_MIN : 0;		ref_idct(Blk0);		emms(); idct(Blk); emms();		for(i=0; i<64; i++) { CLAMP(Blk0[i], IDCT_OUT); CLAMP(Blk[i], IDCT_OUT); }		store_stats(&Stats, Blk, Blk0);		/* randomly saturated inputs */		for(p=0; p<Partitions; ++p)		{			for(n=0; n<Loops; ++n)			{				for(i=0; i<64; ++i)					Blk0[i] = Blk[i] = (ieee_rand(0,Partitions)>=p)? IDCT_MAX : IDCT_MIN;				ref_idct(Blk0);				emms(); idct(Blk); emms();				for(i=0; i<64; i++) { CLAMP(Blk0[i],IDCT_OUT); CLAMP(Blk[i],IDCT_OUT); }				store_stats(&Stats, Blk, Blk0);			}		}		printf( "\n  -- IDCT saturation report --\n" );		print_stats(&Stats);		report_stats(&Stats, 0);#endif	}}/********************************************************************* * measure raw decoding speed *********************************************************************/void test_dec(const char *name, int width, int height, int with_chksum){	FILE *f = 0;	void *dechandle = 0;	int xerr;	xvid_gbl_init_t xinit;	xvid_dec_create_t xparam;	xvid_dec_frame_t xframe;	double t = 0.;	int nb = 0;	uint8_t *buf = 0;	uint8_t *rgb_out = 0;	int buf_size, pos;	uint32_t chksum = 0;	memset(&xinit, 0, sizeof(xinit));	xinit.cpu_flags = XVID_CPU_MMX | XVID_CPU_FORCE;	xinit.version = XVID_VERSION;	xvid_global(NULL, 0, &xinit, NULL);	memset(&xparam, 0, sizeof(xparam));	xparam.width = width;	xparam.height = height;	xparam.version = XVID_VERSION;	xerr = xvid_decore(NULL, XVID_DEC_CREATE, &xparam, NULL);	if (xerr==XVID_ERR_FAIL) {		printf("can't init decoder (err=%d)\n", xerr);		return;	}	dechandle = xparam.handle;	f = fopen(name, "rb");	if (f==0) {		printf( "can't open file '%s'\n", name);		return;	}	fseek(f, 0, SEEK_END);	buf_size = ftell(f);	fseek(f, 0, SEEK_SET);	if (buf_size<=0) {		printf("error while stating file\n");		goto End;	}	else printf( "Input size: %d\n", buf_size);	buf = malloc(buf_size); /* should be enuf' */	rgb_out = calloc(4, width*height);  /* <-room for _RGB24 */	if (buf==0 || rgb_out==0) {		printf( "malloc failed!\n" );		goto End;	}	if (fread(buf, buf_size, 1, f)!=1) {		printf( "file-read failed\n" );		goto End;	}	nb = 0;	pos = 0;	t = -gettime_usec();	while(1) {		memset(&xframe, 0, sizeof(xframe));		xframe.version = XVID_VERSION;		xframe.bitstream = buf + pos;		xframe.length = buf_size - pos;		xframe.output.plane[0] = rgb_out;		xframe.output.stride[0] = width;		xframe.output.csp = XVID_CSP_BGR;		xerr = xvid_decore(dechandle, XVID_DEC_DECODE, &xframe, 0);		nb++;		pos += xframe.length;		if (with_chksum) {			int k = width*height;			uint32_t *ptr = (uint32_t *)rgb_out;			while(k-->0) chksum += *ptr++;		}		if (pos==buf_size)			break;		if (xerr==XVID_ERR_FAIL) {			printf("decoding failed for frame #%d (err=%d)!\n", nb, xerr);			break;		}	}	t += gettime_usec();	if (t>0.)		printf( "%d frames decoded in %.3f s -> %.1f FPS\n", nb, t*1.e-6f, (float)(nb*1.e6f/t) );	if (with_chksum)		printf("checksum: 0x%.8x\n", chksum);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美片网站yy| 久久久精品蜜桃| 国产午夜亚洲精品午夜鲁丝片| 亚洲精品中文在线| 成人午夜免费视频| 久久九九99视频| 欧美无砖专区一中文字| 一区二区三区欧美视频| 色猫猫国产区一区二在线视频| 国产偷国产偷亚洲高清人白洁 | 国产精品久久久久9999吃药| 黄一区二区三区| 日韩欧美国产综合一区| 美女性感视频久久| 精品国产制服丝袜高跟| 国产一区二区免费视频| 久久久久久久久久美女| 91精品国产aⅴ一区二区| 婷婷久久综合九色国产成人| 欧美精品v日韩精品v韩国精品v| 日韩不卡手机在线v区| 精品久久久久久久人人人人传媒| 国产一区二区伦理| 青青青伊人色综合久久| 2021中文字幕一区亚洲| 成人app下载| 亚洲精品乱码久久久久久黑人 | 欧美一卡二卡三卡四卡| 91黄色免费网站| 91热门视频在线观看| 亚洲成av人片一区二区三区| 欧美一区二区国产| 欧美日韩国产经典色站一区二区三区 | 综合激情成人伊人| 欧美日韩国产bt| 91国偷自产一区二区使用方法| av资源站一区| 日韩av一二三| 蜜臀久久99精品久久久久宅男| 日本成人超碰在线观看| 日本一道高清亚洲日美韩| 亚洲第一在线综合网站| 亚洲一区二区四区蜜桃| 精品卡一卡二卡三卡四在线| 欧美一区二区三区免费| 欧美一级欧美三级在线观看| 91.麻豆视频| 99久久亚洲一区二区三区青草| 男女视频一区二区| 麻豆精品一区二区av白丝在线| 毛片av中文字幕一区二区| 精品在线观看视频| 亚洲大片精品永久免费| 亚洲va欧美va人人爽| 青青草97国产精品免费观看 | av中文字幕亚洲| 91小视频在线免费看| 91黄色免费看| 欧美美女黄视频| 日韩免费观看高清完整版 | 亚洲国产精品一区二区www在线| 久久久久久久久久久久久女国产乱 | 91麻豆免费看| 欧美日韩激情在线| 日韩午夜在线影院| 欧美日韩亚洲综合在线 | 亚洲不卡在线观看| 久久精品国产999大香线蕉| 亚洲夂夂婷婷色拍ww47| 午夜精品久久久久影视| 美脚の诱脚舐め脚责91| 国产精品亚洲专一区二区三区| 日韩精品午夜视频| 午夜精品福利视频网站| 欧美a一区二区| 国产91丝袜在线18| 国产一二精品视频| 91亚洲大成网污www| 日韩一级免费一区| 中文字幕一区二区在线播放| 欧美国产视频在线| 久久亚洲二区三区| 综合久久国产九一剧情麻豆| 日韩成人免费电影| 懂色av一区二区三区免费看| 欧美日韩一区视频| 国产欧美一区二区精品性色| 久久天堂av综合合色蜜桃网| 亚洲精品中文字幕在线观看| 精品一区精品二区高清| 一本高清dvd不卡在线观看| av激情亚洲男人天堂| 在线综合+亚洲+欧美中文字幕| 国产精品第一页第二页第三页| 日韩成人一级大片| 色噜噜狠狠成人网p站| 久久在线免费观看| 日韩在线a电影| 91美女片黄在线观看91美女| 欧美v日韩v国产v| 亚洲国产一二三| gogo大胆日本视频一区| 欧美tickling挠脚心丨vk| 亚洲综合色自拍一区| 国产999精品久久久久久| 日韩欧美国产三级| 午夜激情久久久| 色一区在线观看| 国产精品视频你懂的| 日韩理论电影院| 国产精品18久久久久久久久 | 亚洲欧洲日产国码二区| 久久er99热精品一区二区| 91成人免费网站| 亚洲视频一区在线观看| 国产精品一线二线三线| 日韩一区二区中文字幕| 午夜精品久久久久久久久| 91亚洲永久精品| 中文字幕一区视频| 国产高清无密码一区二区三区| 91小视频在线| 中文字幕精品一区二区精品绿巨人 | 国产麻豆视频一区| 日韩免费观看2025年上映的电影| 天天影视网天天综合色在线播放| 色吧成人激情小说| 亚洲情趣在线观看| 日本成人在线视频网站| 欧美日本一道本| 亚洲午夜羞羞片| 在线看不卡av| 久久久久久久久久久久久女国产乱 | 欧美一级日韩不卡播放免费| 亚洲电影中文字幕在线观看| 一本大道久久a久久综合婷婷| 国产精品久久久久影院色老大| 国产98色在线|日韩| 国产精品日韩成人| 成人av手机在线观看| 国产精品视频第一区| 99精品一区二区三区| 日韩码欧中文字| 欧美视频中文字幕| 日日摸夜夜添夜夜添亚洲女人| 777久久久精品| 六月丁香婷婷色狠狠久久| 日韩欧美高清dvd碟片| 国产又粗又猛又爽又黄91精品| 国产亚洲精品免费| 99国产精品久久| 亚洲一区二区三区在线看| 欧美精品久久久久久久多人混战| 日韩电影在线一区二区三区| 欧美一区二区日韩一区二区| 久久成人综合网| 国产日韩精品一区| 91麻豆精品在线观看| 天天操天天干天天综合网| 日韩欧美视频一区| 国产iv一区二区三区| 亚洲欧洲成人自拍| 欧美色电影在线| 国产真实乱子伦精品视频| 国产精品女主播在线观看| 色狠狠一区二区| 久久黄色级2电影| 国产精品国模大尺度视频| 在线观看日韩av先锋影音电影院| 日日骚欧美日韩| 国产欧美一区二区三区网站| 91久久精品一区二区三| 老司机精品视频导航| 中文字幕一区二区三区四区不卡| 欧美亚洲国产一区在线观看网站| 免费观看30秒视频久久| 国产日本欧美一区二区| 欧美性淫爽ww久久久久无| 理论片日本一区| 中文字幕欧美一| 日韩欧美在线网站| 99久久99久久精品免费观看| 七七婷婷婷婷精品国产| 亚洲欧洲日产国产综合网| 欧美一区二区三区四区在线观看| 丁香五精品蜜臀久久久久99网站| 天天av天天翘天天综合网色鬼国产| 国产性色一区二区| 欧美日韩一区精品| 成人深夜视频在线观看| 日韩电影在线观看网站| |精品福利一区二区三区| 日韩欧美色综合网站| 欧洲国内综合视频| 懂色av一区二区三区免费看| 蜜臀av性久久久久蜜臀aⅴ流畅| 亚洲欧美精品午睡沙发| 久久午夜羞羞影院免费观看| 欧美日韩视频一区二区| 97久久久精品综合88久久|