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

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

?? coder.cpp

?? Netmeeting是Windows系統自帶的網上聊天軟件
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
    cr_now += Global::cpels;    cr_prev += Global::cpels;#endif  }  return;}/********************************************************************** * *	Name:		InterpolateImage *	Description:    Interpolates a complete image for easier half *                      pel prediction *	
 *	Input:	        pointer to image structure
 *	Returns:        pointer to interpolated image
 *	Side effects:   allocates memory to interpolated image
 * *	Date: 950207 	Author: Karl.Lillevold@nta.no *            960207    Author: Roalt aalmoes ***********************************************************************/void InterpolateImage(unsigned int *image, unsigned int *ipol_image, 			       int width, int height){  /* If anyone has better ideas to optimize this code, be my guest!     note: assembly or some advanced bitshifts routine might do the trick...*/  register unsigned int *ii, *oo,     *ii_new,     *ii_new_line2,     *oo_prev,     *oo_prev_line2;    register int i,j;  register unsigned int pix1,pix2,pix3,pix4;  ii = ipol_image;  oo = image;  oo_prev = image;  oo_prev_line2 = image + width;  ii_new = ipol_image;  ii_new_line2 = ipol_image + (width<<1);  /* main image */  for (j = 0; j < height-1; j++) {				/* get Pix1 and Pix3, because they are				   not known the first time */    pix1 = *oo_prev;    pix3 = *oo_prev_line2;    for (i = 0; i  < width-1; i++) {				/* Pix1 Pix2				   Pix3 Pix4 */      /* Pix2 and Pix4 are used here for first time */      pix2 = *(oo_prev + 1);      pix4 = *(oo_prev_line2 + 1);      *(ii_new) = pix1;					/* X.							   ..*/      *(ii_new + 1) = (pix1 + pix2 + 1)>>1; 		/* *X							   .. */      *ii_new_line2 = (pix1 + pix3 + 1)>>1; 		/* *.						           X. */      *(ii_new_line2 + 1) = (pix1 + pix2 + pix3 + pix4 + 2)>>2;            oo_prev++; oo_prev_line2++; ii_new += 2; ii_new_line2 += 2;            pix1 = pix2;      pix3 = pix4;		/* Pix1 Pix2=Pix1' Pix2' */				/* Pix3 Pix4=Pix3' Pix4' */    }        /* One but last column */    *(ii_new++) = pix1;	    *(ii_new++) = pix3;        /* Last column -On the Edge - */    *(ii_new_line2++) = (pix1 + pix3 + 1 ) >>1;    *(ii_new_line2++) = (pix1 + pix3 + 1 ) >>1;    ii_new += (width<<1);	/* ii_new now on old position ii_new_line2,so				   one interpolated screen line must be added*/    ii_new_line2 += (width<<1);	/* In fact, ii_new_line here has same value				   as ii_new */    oo_prev += 1; /* Remember, loop is done one time less! */    oo_prev_line2 += 1;      }  /* last lines */  pix1 = *oo_prev;  for (i = 0; i < width-1; i++) {    pix2 = *(oo_prev + 1);    *ii_new = *ii_new_line2 = pix1;    *(ii_new + 1) = *(ii_new_line2 + 1) = (pix1 + pix2 + 1)>>1;    ii_new += 2;    ii_new_line2 += 2;    oo_prev += 1;    pix1 = pix2;			/* Pix1 Pix2=Pix1' Pix2' */  }    /* bottom right corner Global::pels */  *(ii_new) = pix1;  *(ii_new + 1) = pix1;  *(ii_new_line2) = pix1;  *(ii_new_line2+1) = pix1;  return;}/********************************************************************** * *	Name:		FullMotionEstimatePicture *	Description:    Finds integer and half pel motion estimation *	 *	Input:	       current image, previous image, interpolated *                     reconstructed previous image, seek_dist, *                     motion vector array *	Returns:        *	Side effects: allocates memory for MV structure * *	Date: 960418	Author: Roatlt * ***********************************************************************/void FullMotionEstimatePicture(unsigned int *curr, unsigned int *prev, 			       unsigned int *prev_ipol, int seek_dist, 			       MotionVector *MV_ptr,			       int advanced_method,			       int *EncodeThisBlock){  int i,j;  MotionVector *current_MV;  for(j = 0; j < Global::mbr; j++) {   for(i = 0; i < Global::mbc; i++) {     current_MV = MV_ptr + j*Global::mbc + i;     if(advanced_method && !*(EncodeThisBlock + j*Global::mbc + i) ) {	       current_MV->x = current_MV->y = current_MV->x_half = 	 current_MV->y_half = 0;       current_MV->Mode = MODE_SKIP;      } else {			/* EncodeThisBlock */       	FullMotionEstimation(curr, prev_ipol, seek_dist, current_MV, 			     i*MB_SIZE, j*MB_SIZE);		current_MV->Mode = ChooseMode(curr,i*MB_SIZE,j*MB_SIZE,				      current_MV->min_error);	if(current_MV->Mode == MODE_INTRA) 	  ZeroVec(current_MV);      }    }  }}void CodeInterH263(CParam *params, Bits *bits){  MotionVector *MV;	  MotionVector ZERO = {0,0,0,0,0};  MB_Structure *recon_data_P;   MB_Structure *diff;  int *qcoeff_P;  unsigned int *new_recon=NULL;  unsigned int *prev_recon;  int Mode;    int CBP, CBPB=0;  int newgob;  int i,j;  Global::search_p_frames = params->search_method;  MV =(struct motionvector*) malloc(sizeof(MotionVector)*Global::mbc*Global::mbr);  new_recon =(unsigned int*) malloc(Global::sizeof_frame);  prev_recon = params->recon;  /* buffer control vars */    ZeroBits(bits);  /* Interpolate luminance from reconstr. picture */  InterpolateImage(prev_recon,params->interpolated_lum,Global::pels,Global::lines);  FullMotionEstimatePicture( params->data,			     prev_recon, 			    params->interpolated_lum, 			    params->half_pixel_searchwindow,MV,			    params->advanced_method, params->EncodeThisBlock);    /* Calculate MV for each MB */  /* ENCODE TO H.263 STREAM */    for ( j = 0; j < Global::mbr; j++) {    newgob = 0;    if (j == 0) {      Global::pic->QUANT = params->Q_inter;      Global::pic->picture_coding_type = PCT_INTER;      bits->header += CountBitsPicture(Global::pic);    }    else if (Global::pic->use_gobsync && j%Global::pic->use_gobsync == 0) {      bits->header += CountBitsSlice(j,params->Q_inter); /* insert gob sync */      newgob = 1;    }    for ( i = 0; i < Global::mbc; i++) {      /* This means: For every macroblock (i,j) do ... */      /* We have 4 different situations:
         1) !EncodeThisBlock: this means that the
	    macroblock in not encoded
         2) EncodeThisBlock: This means that the MB is 	    encoded by using the predicted motion vector.         3) EncodeThisBlock: However, the approx of the	    motion vector was so bad, that INTRA coding is more	    appropiate here ...	 4) EncodeThisBlock: The approx is so good that            the coefficients are all zero (after quant.) and are not		    send.      */	/* This means: For every macroblock (i,j) do ... */        Global::pic->DQUANT = 0;	Mode = MV[j*Global::mbc + i].Mode;	/* Determine position of MB */	Global::pic->MB = i + j * Global::mbc;	if(Mode == MODE_SKIP) {	  /* SITUATION 1 */	  Mode = MODE_INTRA;	/* This might be done "better" in the future*/	  MV[j*Global::mbc + i].Mode = Mode;	  ZeroVec(&(MV[j*Global::mbc + i])); 	  CBP = CBPB = 0; 	  /* Now send code for "skip this MB" */	  CountBitsMB(Mode,1,CBP,CBPB,Global::pic,bits);   	  ReconCopyImage(i,j,new_recon,prev_recon);	} else { /* Encode this block */	  if (Mode == MODE_INTER) {	    /* SITUATION 2 */	    /* Predict P-MB */	    diff = Predict_P(params->data,
			     prev_recon,
			     params->interpolated_lum,i*MB_SIZE,
			     j*MB_SIZE,MV);	  } else {	    /* SITUATION 3 */	    /* Create MB_Structure diff that contains coefficients that must be	       sent to the other end */		    diff = (MB_Structure *)malloc(sizeof(MB_Structure));	    FillLumBlock(i*MB_SIZE, j*MB_SIZE, params->data, diff); 	    /* Copy curr->lum to diff for macroblock (i,j) */	    FillChromBlock(i*MB_SIZE, j*MB_SIZE, params->data, diff);	    /* Equiv. for curr->Cb and curr->Cr */	  }	  /* P or INTRA Macroblock */	  /*  diff -> DCT -> QUANTIZED -> qcoeff_P */	  qcoeff_P = MB_EncodeAndFindCBP(diff, params->Q_inter, Mode,&CBP);		  /*   CBP = FindCBP(qcoeff_P, Mode, 64); -> Not required anymore */	  /* All encoded, now calculate decoded image	     for comparison in next frame */	  /* Do DECODING */	  if (CBP == 0 && (Mode == MODE_INTER) ) {				/* SITUATION 4 */	    ZeroMBlock(diff);	  } else {	    /*  qcoeff_P -> Dequantized -> IDCT -> diff */	    MB_Decode(qcoeff_P, diff, params->Q_inter, Mode);	  }	  recon_data_P = MB_Recon_P(prev_recon, 				    params->interpolated_lum,diff, 				    i*MB_SIZE,j*MB_SIZE,MV);	  Clip(recon_data_P);	  free(diff);	  /* Do bitstream encoding */		  if((CBP==0) && (EqualVec(&(MV[j*Global::mbc+i]),&ZERO)) &&	     (Mode == MODE_INTER) ) {	    /* Skipped MB : both CBP and CBPB are zero, 16x16 vector is zero,	       PB delta vector is zero and Mode = MODE_INTER */	    /* Now send code for "skip this MB" */	    CountBitsMB(Mode,1,CBP,CBPB,Global::pic,bits);	  } else {	    /* Normal MB */	    /* VLC */	    CountBitsMB(Mode,0,CBP,CBPB,Global::pic,bits);	    if (Mode == MODE_INTER) {	      bits->no_inter++;	      CountBitsVectors(MV, bits, i, j, Mode, newgob, Global::pic);
	    } else {
	      /* MODE_INTRA */	      bits->no_intra++;	    }	    /* Only encode coefficient if they are nonzero or Mode is INTRA*/
	    
	    if (CBP || Mode == MODE_INTRA)
	      CountBitsCoeff(qcoeff_P, Mode, CBP, bits, 64);	   	  } /* End skip/not skip macroblock encoding */	  ReconImage(i,j,recon_data_P,new_recon);	  free(recon_data_P);	  free(qcoeff_P);		}      /* End advanced */           } /* End for i */  } /* End for j */  Global::pic->QP_mean = params->Q_inter;    free(prev_recon);  params->recon = new_recon;  AddBitsPicture(bits);  free(MV);  return;}				

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久只精品国产| 色猫猫国产区一区二在线视频| 自拍偷拍国产亚洲| 中文一区二区在线观看| 久久综合久久综合亚洲| 久久久三级国产网站| 2024国产精品视频| 欧美国产日韩a欧美在线观看| 精品国产成人在线影院 | 国产·精品毛片| 国产91精品在线观看| 国产成人av电影在线观看| 国产91精品精华液一区二区三区 | 26uuu精品一区二区| 欧美精品一区二| 国产精品久久99| 一区二区三区欧美视频| 亚洲成av人片在www色猫咪| 日韩国产欧美在线观看| 久久激情综合网| 成人精品视频一区二区三区| 色中色一区二区| 91精品国产综合久久精品app| 欧美裸体bbwbbwbbw| 久久久久久久综合日本| 日韩久久一区二区| 日本vs亚洲vs韩国一区三区| 国产高清一区日本| 在线一区二区视频| 精品国产一区二区三区久久影院| 久久精品人人做人人爽97| 日韩毛片高清在线播放| 麻豆精品在线播放| 91在线码无精品| 日韩一级片网址| 一区在线观看免费| 免费成人在线观看| 日本高清不卡视频| 久久久精品2019中文字幕之3| 一区二区三区中文字幕精品精品 | 国产一区91精品张津瑜| av一区二区三区在线| 欧美精品乱码久久久久久按摩| 国产日韩欧美制服另类| 亚洲国产精品久久人人爱| 国产美女视频91| 欧美高清性hdvideosex| 中文字幕亚洲区| 国内成+人亚洲+欧美+综合在线| 97se亚洲国产综合自在线不卡| 日韩一区二区电影在线| 亚洲自拍偷拍九九九| 懂色av一区二区夜夜嗨| 91精品久久久久久蜜臀| 亚洲综合无码一区二区| 波多野结衣在线aⅴ中文字幕不卡| 日韩午夜av电影| 蜜臀a∨国产成人精品| 欧美色综合影院| 亚洲午夜激情av| 在线精品视频一区二区三四| 国产精品二区一区二区aⅴ污介绍| 国产一区二区三区免费播放 | 国产精品久久久久aaaa樱花| 日韩黄色片在线观看| 欧美亚洲国产一卡| 亚洲人妖av一区二区| 成人丝袜高跟foot| 久久午夜电影网| 国模套图日韩精品一区二区| 日韩你懂的电影在线观看| 日本网站在线观看一区二区三区| 欧洲视频一区二区| 亚洲免费在线观看视频| www.亚洲免费av| 中文字幕一区日韩精品欧美| 国产成人精品午夜视频免费| 26uuu精品一区二区三区四区在线| 久久精品99久久久| 2023国产一二三区日本精品2022| 激情国产一区二区| 久久久久国产精品免费免费搜索| 国产一区福利在线| 久久久国产精品麻豆| 国产99久久久精品| 中文字幕一区二区三区在线观看 | 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 精品国产一区二区亚洲人成毛片 | 黑人巨大精品欧美黑白配亚洲| 91精品国产麻豆| 美女国产一区二区三区| 精品日韩成人av| 国产69精品久久久久777| 国产精品灌醉下药二区| 91丨porny丨在线| 亚洲一区二区在线免费看| 欧美日韩aaaaaa| 国产精品99久久不卡二区| 国产精品视频yy9299一区| 在线一区二区三区四区| 视频一区二区三区在线| www国产亚洲精品久久麻豆| www.在线成人| 日本不卡的三区四区五区| 国产欧美日韩视频一区二区| 一道本成人在线| 男女男精品视频| 国产精品久久久久9999吃药| 欧美日韩中文字幕一区| 精品一区二区三区在线播放视频| 国产精品久久午夜| 欧美精品高清视频| 欧美美女激情18p| 麻豆成人免费电影| 自拍偷在线精品自拍偷无码专区| 欧美男男青年gay1069videost| 国产九九视频一区二区三区| 亚洲综合在线第一页| 国产丝袜欧美中文另类| 欧美在线免费观看亚洲| 成人一区二区三区| 久久99九九99精品| 国产精品综合一区二区三区| 亚洲日本一区二区| 国产日韩欧美不卡在线| 欧美日韩不卡一区二区| 色欧美片视频在线观看| 国产不卡在线视频| 日日骚欧美日韩| 亚洲欧美日韩国产中文在线| 欧美tk—视频vk| 欧美另类z0zxhd电影| 99re6这里只有精品视频在线观看| 日本美女一区二区| 亚洲午夜久久久久久久久久久| 国产三级一区二区三区| 日韩欧美中文字幕精品| 在线视频观看一区| 色综合久久天天| 成人91在线观看| 国产成人午夜视频| 国产高清成人在线| 久久99最新地址| 久久99最新地址| 日韩激情视频在线观看| 亚洲成人7777| 亚洲一区二区精品3399| 亚洲欧美日韩电影| 亚洲欧美日韩电影| 一区二区久久久久| 亚洲一区二区视频在线| 亚洲综合免费观看高清在线观看 | 欧美日本国产视频| 欧美日韩一区二区三区四区| 欧美中文字幕一区| 欧美日韩一区二区三区视频| 欧美色区777第一页| 欧美性色欧美a在线播放| 色嗨嗨av一区二区三区| 欧美手机在线视频| 欧美美女一区二区| 日韩午夜在线播放| 亚洲狠狠爱一区二区三区| 一区二区三区四区亚洲| 自拍偷拍国产亚洲| 亚洲国产精品嫩草影院| 亚洲成a人片综合在线| 美女网站一区二区| 国产成人综合精品三级| a级精品国产片在线观看| 91成人免费在线视频| 欧美一区二区观看视频| 久久精品视频免费| 亚洲精品中文在线影院| 香蕉久久夜色精品国产使用方法 | 欧美丝袜丝交足nylons图片| 欧洲人成人精品| 日韩一区二区三区视频在线| 26uuu成人网一区二区三区| 国产欧美一区二区三区在线看蜜臀 | 在线电影国产精品| 日韩欧美国产系列| 中文字幕一区二区在线观看| 亚洲成av人影院在线观看网| 精久久久久久久久久久| 成人激情免费网站| 在线中文字幕一区二区| 欧美成人午夜电影| 亚洲欧美日韩国产手机在线 | 亚洲日本青草视频在线怡红院| 亚洲午夜免费视频| 韩国成人在线视频| 99re这里只有精品首页| 91精品啪在线观看国产60岁| 五月婷婷另类国产| youjizz国产精品| 亚洲精品一区在线观看| 亚洲综合在线电影| 成人久久久精品乱码一区二区三区 | 亚洲二区在线视频|