t.c

来自「音视频编解码的H.263协议-C语言编写」· C语言 代码 · 共 74 行

C
74
字号
#include <stdio.h>#include <stdlib.h>#include <string.h>#include "math.h"#include "RGB.h"char *Cptr;int val[256];main(){FILE *Ip;FILE *Op;int j,k=0,i;char *filename="/home2/H263/orig/tmndec-2.0/SAMPLE/YTAB.ORIG";int index;char s1[12],s2[12],s3[12];int r,g,b;int mind,nearest;int d;int n=0;	for (i=0;i<216;i++)	{	RGBconvert[i].red = RGBconvert[i].red>>8;	RGBconvert[i].green = RGBconvert[i].green>>8;	RGBconvert[i].blue = RGBconvert[i].blue>>8;	}	Op=fopen("YTAB.XLAT","w");	Ip=fopen(filename,"r");	while (fscanf(Ip,"%*s %d %s %s %s",&index,s1,s2,s3)>0)	{		Cptr=strchr(s1,(int)'=');		Cptr++;		r=atoi(Cptr);		Cptr=strchr(s2,(int)'=');		Cptr++;		g=atoi(Cptr);		Cptr=strchr(s3,(int)'=');		Cptr++;		b=atoi(Cptr);		mind=1000000;		for (i=0;i<216;i++)		{       	      d=((r - RGBconvert[i].red )*(r - RGBconvert[i].red ))+		((g - RGBconvert[i].green)*(g - RGBconvert[i].green))+		((b - RGBconvert[i].blue)*(b - RGBconvert[i].blue));		/*	d=(int)sqrt((double)d); */			if (d<mind)			{			mind=d;			nearest=i;			}		}			val[index]=nearest;	}for (i=0;i<256;i++){if (!i) fprintf(Op,"static int xlat[256]={");n++;if (n>14) {fprintf(Op,"\n\t\t\t"); n=0; }if (i!=255) fprintf(Op,"%d,",val[i]); else fprintf(Op,"%d};\n\n",val[i]);  }exit(0);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?