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

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

?? convert.cpp

?? EVC做的Windows Mobile 的H263網(wǎng)絡(luò)視頻
?? CPP
字號:
////////////////////////////////////////////////////////////////////////////
//
//
//    Project     : VideoNet version 1.1.
//    Description : Peer to Peer Video Conferencing over the LAN.
//	  Author      :	Nagareshwar Y Talekar ( nsry2002@yahoo.co.in)
//    Date        : 15-6-2004.
//
//
//    File description : 
//    Name    : convert.cpp
//    Details : Conversion routine from RGB24 to YUV420 & YUV420 to RGB24.
//
/////////////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "convert.h"

// Conversion from RGB to YUV420
int RGB2YUV_YR[256], RGB2YUV_YG[256], RGB2YUV_YB[256];
int RGB2YUV_UR[256], RGB2YUV_UG[256], RGB2YUV_UBVR[256];
int RGB2YUV_VG[256], RGB2YUV_VB[256];

// Conversion from YUV420 to RGB24
static long int crv_tab[256];
static long int cbu_tab[256];
static long int cgu_tab[256];
static long int cgv_tab[256];
static long int tab_76309[256];
static unsigned char clp[1024];			//for clip in CCIR601


//
// Table used for RGB to YUV420 conversion
//
void InitLookupTable()
{
	int i;

	for (i = 0; i < 256; i++) RGB2YUV_YR[i] = (float)65.481 * (i<<8);
	for (i = 0; i < 256; i++) RGB2YUV_YG[i] = (float)128.553 * (i<<8);
	for (i = 0; i < 256; i++) RGB2YUV_YB[i] = (float)24.966 * (i<<8);
	for (i = 0; i < 256; i++) RGB2YUV_UR[i] = (float)37.797 * (i<<8);
	for (i = 0; i < 256; i++) RGB2YUV_UG[i] = (float)74.203 * (i<<8);
	for (i = 0; i < 256; i++) RGB2YUV_VG[i] = (float)93.786 * (i<<8);
	for (i = 0; i < 256; i++) RGB2YUV_VB[i] = (float)18.214 * (i<<8);
	for (i = 0; i < 256; i++) RGB2YUV_UBVR[i] = (float)112 * (i<<8);
}


//
//  Convert from  RGB24 to YUV420
//
int ConvertRGB2YUV(int w,int h,unsigned char *bmp,unsigned int *yuv)
{

unsigned int *u,*v,*y,*uu,*vv;
unsigned int *pu1,*pu2,*pu3,*pu4;
unsigned int *pv1,*pv2,*pv3,*pv4;
unsigned char *r,*g,*b;
int i,j;

uu=new unsigned int[w*h];
vv=new unsigned int[w*h];

if(uu==NULL || vv==NULL)
return 0;

y=yuv;
u=uu;
v=vv;

// Get r,g,b pointers from bmp image data....
r=bmp;
g=bmp+1;
b=bmp+2;


//Get YUV values for rgb values...

	for(i=0;i<h;i++)
	{
	
		for(j=0;j<w;j++)
		{
		*y++=( RGB2YUV_YR[*r]  +RGB2YUV_YG[*g]+RGB2YUV_YB[*b]+1048576)>>16;
		*u++=(-RGB2YUV_UR[*r]  -RGB2YUV_UG[*g]+RGB2YUV_UBVR[*b]+8388608)>>16;
		*v++=( RGB2YUV_UBVR[*r]-RGB2YUV_VG[*g]-RGB2YUV_VB[*b]+8388608)>>16;

		r+=3;
		g+=3;
		b+=3;
		}

	}



	// Now sample the U & V to obtain YUV 4:2:0 format

	// Sampling mechanism...
/*	  @  ->  Y
	  #  ->  U or V
	  
	  @   @   @   @
		#       #
	  @   @   @   @
	
	  @   @   @   @
		#       #
	  @   @   @   @

*/

	// Get the right pointers...
	u=yuv+w*h;
	v=u+(w*h)/4;

	// For U
	pu1=uu;
	pu2=pu1+1;
	pu3=pu1+w;
	pu4=pu3+1;

	// For V
	pv1=vv;
	pv2=pv1+1;
	pv3=pv1+w;
	pv4=pv3+1;

	// Do sampling....
	for(i=0;i<h;i+=2)
	{
	
		for(j=0;j<w;j+=2)
		{
		*u++=(*pu1+*pu2+*pu3+*pu4)>>2;
		*v++=(*pv1+*pv2+*pv3+*pv4)>>2;

		pu1+=2;
		pu2+=2;
		pu3+=2;
		pu4+=2;

		pv1+=2;
		pv2+=2;
		pv3+=2;
		pv4+=2;
		}
	
	pu1+=w;
	pu2+=w;
	pu3+=w;
	pu4+=w;

	pv1+=w;
	pv2+=w;
	pv3+=w;
	pv4+=w;
		
	}


	delete uu;
	delete vv;

return 1;
}







//
//Initialize conversion table for YUV420 to RGB
//
void InitConvertTable()
{
   long int crv,cbu,cgu,cgv;
   int i,ind;   
     
   crv = 104597; cbu = 132201;  /* fra matrise i global.h */
   cgu = 25675;  cgv = 53279;
  
   for (i = 0; i < 256; i++) {
      crv_tab[i] = (i-128) * crv;
      cbu_tab[i] = (i-128) * cbu;
      cgu_tab[i] = (i-128) * cgu;
      cgv_tab[i] = (i-128) * cgv;
      tab_76309[i] = 76309*(i-16);
   }
	 
   for (i=0; i<384; i++)
	  clp[i] =0;
   ind=384;
   for (i=0;i<256; i++)
	   clp[ind++]=i;
   ind=640;
   for (i=0;i<384;i++)
	   clp[ind++]=255;
}


//
//  Convert from YUV420 to RGB24
//
void ConvertYUV2RGB(unsigned char *src0,unsigned char *src1,unsigned char *src2,unsigned char *dst_ori,
								 int width,int height)
{
	int y1,y2,u,v; 
	unsigned char *py1,*py2;
	int i,j, c1, c2, c3, c4;
	unsigned char *d1, *d2;

	py1=src0;
	py2=py1+width;
	d1=dst_ori;
	d2=d1+3*width;
 	for (j = 0; j < height; j += 2) { 
		for (i = 0; i < width; i += 2) {

			u = *src1++;
			v = *src2++;

			c1 = crv_tab[v];
			c2 = cgu_tab[u];
			c3 = cgv_tab[v];
			c4 = cbu_tab[u];

			//up-left
            y1 = tab_76309[*py1++];	
			*d1++ = clp[384+((y1 + c1)>>16)];  
			*d1++ = clp[384+((y1 - c2 - c3)>>16)];
            *d1++ = clp[384+((y1 + c4)>>16)];

			//down-left
			y2 = tab_76309[*py2++];
			*d2++ = clp[384+((y2 + c1)>>16)];  
			*d2++ = clp[384+((y2 - c2 - c3)>>16)];
            *d2++ = clp[384+((y2 + c4)>>16)];

			//up-right
			y1 = tab_76309[*py1++];
			*d1++ = clp[384+((y1 + c1)>>16)];  
			*d1++ = clp[384+((y1 - c2 - c3)>>16)];
			*d1++ = clp[384+((y1 + c4)>>16)];

			//down-right
			y2 = tab_76309[*py2++];
			*d2++ = clp[384+((y2 + c1)>>16)];  
			*d2++ = clp[384+((y2 - c2 - c3)>>16)];
            *d2++ = clp[384+((y2 + c4)>>16)];
		}
		d1 += 3*width;
		d2 += 3*width;
		py1+=   width;
		py2+=   width;
	}       


}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美丰满嫩嫩电影| av网站免费线看精品| 亚洲综合丁香婷婷六月香| 国产精品家庭影院| 亚洲人成在线播放网站岛国| 最近中文字幕一区二区三区| 亚洲日本丝袜连裤袜办公室| 一区二区欧美在线观看| 亚洲香肠在线观看| 午夜电影网亚洲视频| 奇米影视在线99精品| 国产一区二区三区四区五区入口 | 欧美三级视频在线| 6080日韩午夜伦伦午夜伦| 欧美大片日本大片免费观看| xnxx国产精品| 中文字幕制服丝袜一区二区三区| 中文字幕在线不卡国产视频| 一区二区日韩电影| 麻豆精品久久精品色综合| 国产精品一区二区三区网站| 成人性色生活片免费看爆迷你毛片| 97久久超碰国产精品| 欧美日本在线观看| 久久久91精品国产一区二区精品| 亚洲色图丝袜美腿| 石原莉奈在线亚洲二区| 国产精品996| 欧美日本一区二区三区四区| 久久综合久久鬼色中文字| 中文字幕av一区二区三区 | 在线观看亚洲一区| 欧美zozo另类异族| 亚洲精品菠萝久久久久久久| 免费精品视频在线| 91蝌蚪porny成人天涯| 91精品国产高清一区二区三区 | gogo大胆日本视频一区| 欧美群妇大交群中文字幕| 国产日韩欧美激情| 日韩va欧美va亚洲va久久| 99久久99久久精品免费观看| 日韩免费在线观看| 尤物视频一区二区| 国产一区二区在线影院| 欧美久久久久久久久中文字幕| 久久久99久久| 激情综合五月天| 欧美精品1区2区3区| 18成人在线观看| 国产精品综合一区二区三区| 欧美久久久久久蜜桃| 亚洲精选在线视频| 成人av动漫在线| 久久久一区二区三区捆绑**| 日本成人在线电影网| 在线观看亚洲成人| 一区二区在线观看免费视频播放| 成人听书哪个软件好| 久久久噜噜噜久噜久久综合| 六月丁香婷婷久久| 日韩三级视频在线看| 五月激情丁香一区二区三区| 在线观看视频一区| 亚洲男人的天堂在线aⅴ视频| 国产激情视频一区二区三区欧美 | 亚洲成在人线免费| 色婷婷精品久久二区二区蜜臂av| 国产精品黄色在线观看| 成人午夜视频福利| 中文av一区特黄| 丁香五精品蜜臀久久久久99网站 | 成人一级视频在线观看| 久久一区二区视频| 国产资源在线一区| 国产嫩草影院久久久久| 国产91精品一区二区麻豆网站| 久久精品人人爽人人爽| 国产精品自拍av| 国产精品久久一卡二卡| 一本大道av伊人久久综合| 一区二区三区欧美在线观看| 在线视频一区二区三区| 日韩国产精品久久久久久亚洲| 欧美日本乱大交xxxxx| 日韩av一区二区在线影视| 日韩美女在线视频| 成人妖精视频yjsp地址| 亚洲精品综合在线| 欧美日韩综合不卡| 久久精品国产999大香线蕉| 久久久99久久| 色综合一个色综合| 亚洲韩国一区二区三区| 日韩午夜电影av| 国产成人亚洲精品青草天美| 亚洲免费视频成人| 7777精品伊人久久久大香线蕉 | 国产一区999| 自拍偷拍国产精品| 8v天堂国产在线一区二区| 激情综合网av| 亚洲日本在线a| 91精品国产综合久久久久久久| 国产精品资源在线| 亚洲成a人v欧美综合天堂下载 | 波多野结衣91| 日韩影院精彩在线| 亚洲国产精品成人久久综合一区| 日本电影欧美片| 麻豆精品视频在线| 一区二区国产视频| 精品国产凹凸成av人导航| 91丨九色丨尤物| 极品少妇xxxx精品少妇偷拍| 一区二区不卡在线视频 午夜欧美不卡在 | 中文字幕电影一区| 宅男在线国产精品| 色94色欧美sute亚洲线路一久| 久久99久久久欧美国产| 亚洲免费观看在线视频| 久久久久久久久蜜桃| 欧美日韩国产精品自在自线| 成人99免费视频| 国产精品一区免费在线观看| 日韩电影免费在线看| 亚洲伦理在线免费看| 国产日韩欧美精品一区| 精品国产乱码91久久久久久网站| 91黄色免费网站| 91亚洲精品久久久蜜桃| 国产寡妇亲子伦一区二区| 奇米在线7777在线精品| 三级不卡在线观看| 一级日本不卡的影视| 国产精品久久久久影视| 欧美精品一区二区三区在线| 91精品国产一区二区三区| 欧美日韩一区二区欧美激情| 色婷婷综合在线| av网站免费线看精品| 99久久免费国产| 94色蜜桃网一区二区三区| 波多野结衣视频一区| 99这里只有久久精品视频| 成人美女视频在线看| 成人高清伦理免费影院在线观看| 国产馆精品极品| 国产a级毛片一区| 成人动漫一区二区| 99riav一区二区三区| 白白色 亚洲乱淫| 91在线播放网址| 在线观看一区二区视频| 欧美日韩免费在线视频| 欧美日韩高清一区二区三区| 91精品国产乱| 久久女同精品一区二区| 国产精品色一区二区三区| 日韩一区欧美小说| 亚洲精品ww久久久久久p站| 亚洲大尺度视频在线观看| 青娱乐精品视频在线| 国产一区二区三区免费在线观看| 国产精品一区二区在线播放| 粉嫩嫩av羞羞动漫久久久| 99免费精品在线观看| 欧美亚洲高清一区| 日韩欧美一级二级| 欧美国产综合色视频| 亚洲午夜久久久久久久久电影网 | 一区二区三区在线不卡| 亚洲乱码国产乱码精品精小说| 夜夜夜精品看看| 激情久久久久久久久久久久久久久久| 激情深爱一区二区| 99免费精品在线| 日韩午夜精品视频| 国产精品久久影院| 日本在线播放一区二区三区| 国产精品18久久久久久久久久久久| 北条麻妃一区二区三区| 欧美一区二区视频网站| 国产精品全国免费观看高清| 亚洲国产aⅴ成人精品无吗| 久久精品免费看| 91麻豆免费看| 日韩一区二区三区三四区视频在线观看 | 精品99999| 亚洲视频免费在线观看| 日本欧美一区二区| 99久久久精品免费观看国产蜜| 91精品欧美久久久久久动漫| 中文字幕亚洲区| 久久www免费人成看片高清| 欧美在线制服丝袜| 国产精品久久久久久亚洲毛片| 美腿丝袜在线亚洲一区 | 首页综合国产亚洲丝袜| 成人永久看片免费视频天堂|