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

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

?? mot_est.c

?? h.263 c編碼源碼。目錄下有input。qcif原始未壓縮文件
?? C
字號(hào):
/************************************************* * libr263: fast H.263 encoder library * * Copyright (C) 1996, Roalt Aalmoes, Twente University * SPA multimedia group * * Based on Telenor TMN 1.6 encoder (Copyright (C) 1995, Telenor R&D) * created by Karl Lillevold  * * Author encoder: Roalt Aalmoes, <aalmoes@huygens.nl> *  * Date: 31-07-96 **************************************************/#include"sim.h"/* Efficient macroblock comparison op. *//* The comparison is between a non-interpolated lowres block of pixel    and a interpolated hires block of pixel. This might be confusing:   Example: compare 3x3 block with 3x3 block, then the 1s of block 1 are   compared with the 2s of block 2.   Block 1:	Block 2:	   1.1.1.	222   ......	222   1.1.1.	222   ......   1.1.1.   You see, for block one (ii), you have 4 times more data!*/
// 返回差值sad//ii為插入半象素后的圖像,curr為當(dāng)前圖像
static  int SAD_HalfPixelMacroblock(unsigned int *ii, unsigned int *curr,int pixels_on_line, int Min_SAD){  int j = 16;  int sad = 0;  while(j--) {    sad += abs(*ii-(*curr++));    ii += 2;    sad += abs(*ii-(*curr++));    ii += 2;    sad += abs(*ii-(*curr++));    ii += 2;    sad += abs(*ii- (*curr++));    ii += 2;    sad += abs(*ii-(*curr++));    ii += 2;    sad += abs(*ii-(*curr++));    ii += 2;    sad += abs(*ii-(*curr++));    ii += 2;    sad += abs(*ii-(*curr++));    ii += 2;    sad += abs(*ii-(*curr++));    ii += 2;    sad += abs(*ii-(*curr++));    ii += 2;    sad += abs(*ii-(*curr++));    ii += 2;    sad += abs(*ii-(*curr++));    ii += 2;    sad += abs(*ii-(*curr++));    ii += 2;    sad += abs(*ii-(*curr++));      ii += 2;    sad += abs(*ii-(*curr++));    ii += 2;    sad += abs(*ii-*curr);    if(sad > Min_SAD)      return INT_MAX;    ii += pixels_on_line*4 - 30;                                 /* Interpolated image, that means two times */				/* We also take only one of the two pixels */				/* This means another two times ... */    curr += pixels_on_line - 15;  } /* end while */  return sad;} /* This implementation contains two mayor algorithms: exhaustive and    logarithmic. The exhaustive algorithm was adapted to be applied on   half-pixel luminance, and the logarithmic algorithm was implemented   by Roalt Aalmoes and is functional equivalent to the one in berkeley's   MPEG encoder. */
// 宏塊運(yùn)動(dòng)估計(jì),得到運(yùn)動(dòng)矢量放入current_MV
// curr當(dāng)前圖像,prev_ipol插入后圖像,seek_dist搜索模式,x_curr當(dāng)前宏塊第一個(gè)值(0,0)在圖像中象素的位置void FullMotionEstimation(unsigned int *curr, unsigned int *prev_ipol, 		     int seek_dist, MotionVector *current_MV, int x_curr, 		     int y_curr)				/*  x_curr and y_curr are whole-pixel values to indicate upperleft (0,0) pixel of this MB in whole frame curr */{  int Min_FRAME;  MotionVector MV_FRAME;  unsigned int *curr_image_MB;  int sxy,xblock,k,yblock,l;  int RightXBorder,LeftXBorder,RightYBorder,LeftYBorder;  int xmax,ymax,sad;  int CenterX, CenterY, origCenterX, origCenterY, newCenterX, newCenterY;  int StepSizeX, StepSizeY;  curr_image_MB = curr + pels*y_curr + x_curr;

  //針對(duì)插入后的圖像操作  /* from now on, all pixel related operations are based on prev_ipol */  /* way: thus resolution is enhanced by 2 for halfpixel search */  CenterX = 2*x_curr;  CenterY = 2*y_curr;  xmax = 2*pels;  ymax = 2*lines;  sxy = mmin(31, seek_dist);  // ?????????????  LeftXBorder = CenterX - sxy;  RightXBorder = CenterX + sxy;  LeftYBorder = CenterY - sxy;  RightYBorder = CenterY + sxy;  if (LeftXBorder<0) LeftXBorder = 0;  if (RightXBorder>xmax-32) RightXBorder = xmax-32;   /* Comparison is still on 16x16 blocks */  if (LeftYBorder<0) LeftYBorder = 0;		        /* but this is interleaved by 1 pixel! */  if (RightYBorder>ymax-32) RightYBorder = ymax-32;   /* e.g. comp. pixno.1 3 5 7 or 2 4 6 8 */  /*but never 1 2 3 4 as this is halfres.*/  Min_FRAME = INT_MAX;  MV_FRAME.x = 0;  MV_FRAME.y = 0;  MV_FRAME.x_half = 0;  MV_FRAME.y_half = 0;     if(search_p_frames == CPARAM_EXHAUSTIVE)  //0  1  
  {    /* This is the spriral search variant of exhaustive seach */    /* First determine zero MV value SAD */    xblock = CenterX; yblock = CenterY;
	//sad差值    sad = SAD_HalfPixelMacroblock(prev_ipol + xblock + yblock*pels*2,curr_image_MB,pels, Min_FRAME) - PREF_NULL_VEC;     /* I assume sad < INT_MAX  */    Min_FRAME = sad;        /* Then do the surrounding MV SADs */    for (l = 1; l <= sxy; l++)
	{      /* For every loop from inside to outside do */      xblock = CenterX - l;      yblock = CenterY - l;      for (k = 0; k < 8*l; k++) 
	  {	      if (xblock>=LeftXBorder && xblock<=RightXBorder && yblock>=LeftYBorder && yblock<=RightYBorder) 
		  {		      /* 16x16 integer pel MV */		      sad = SAD_HalfPixelMacroblock(prev_ipol + xblock + yblock*pels*2,curr_image_MB,pels, Min_FRAME); 			  if (sad < Min_FRAME) 
			  {				MV_FRAME.x = xblock - CenterX;				MV_FRAME.y = yblock - CenterY;				Min_FRAME = sad;			  }		  }			if      (k<2*l) xblock++;			else if (k<4*l) yblock++;			else if (k<6*l) xblock--;			else            yblock--;      }          } /* end for */  } 
  else  /* search_p_frames == 0 */
  {     /* origCenter* is necessary because Center* changes */    origCenterX = CenterX; 
	origCenterY = CenterY;    StepSizeX = ((2*sxy + 1) + 1)/3; /* round(Size of Xinterval / 3), this is maximum size of between twoprobes */     StepSizeY = ((2*sxy + 1) + 1)/3; /* round(Size of Yinterval / 3) */
	//返回兩個(gè)16*16的總差值sad,(是整數(shù)象素還是半象素,如何確定???????)此處為整數(shù)象素    sad = SAD_HalfPixelMacroblock(prev_ipol + CenterX + CenterY*pels*2,curr_image_MB,pels, Min_FRAME) - PREF_NULL_VEC;     /* I assume sad < INT_MAX  */    Min_FRAME = sad; 
    //搜索尋找    while (StepSizeX >= 1 || StepSizeY >= 1)
	{      newCenterX = CenterX;      newCenterY = CenterY;
      /* Do this loop three times */      for(xblock = CenterX - StepSizeX; xblock <= CenterX + StepSizeX &&(StepSizeX != 0); xblock += StepSizeX) 
	  {	       if(xblock < LeftXBorder || xblock > RightXBorder)	         continue;	       /* Do this loop three times */	       for(yblock = CenterY - StepSizeY; yblock <= CenterY + StepSizeY && (StepSizeY != 0); yblock+= StepSizeY)
		   {	           if(yblock < LeftYBorder || yblock > RightYBorder)	              continue;			  /* In fact, the middlest comparison is only required 				 the first time, as the last time it is calculated 				 on the previous while-loop, remember:				 NewCenterZ = zblock */
               //比較	           sad = SAD_HalfPixelMacroblock(prev_ipol + xblock + yblock*pels*2,curr_image_MB,pels, Min_FRAME); 			   if (sad < Min_FRAME)
			   {					MV_FRAME.x = xblock - origCenterX;					MV_FRAME.y = yblock - origCenterY;					Min_FRAME = sad;					newCenterX = xblock; newCenterY = yblock;			   }		   }/* end for yblock */      } /* end for xblock */      if(newCenterX < CenterX) 
	  {	       RightXBorder = LeftXBorder + StepSizeX - 1;      } 
	  else if(newCenterX == CenterX) 
	  {	       LeftXBorder = LeftXBorder + StepSizeX;           RightXBorder = RightXBorder - StepSizeX;      } 
	  else 
	  {	       LeftXBorder = RightXBorder - StepSizeX + 1;      }      if(newCenterY < CenterY)
	  {	       RightYBorder = LeftYBorder + StepSizeY - 1;      }  
	  else if(newCenterY == CenterY) 
	  {			LeftYBorder = LeftYBorder + StepSizeY;			RightYBorder = RightYBorder - StepSizeY;      } 
	  else 
	  {	        LeftYBorder = RightYBorder - StepSizeY + 1;      }      CenterX = newCenterX;      CenterY = newCenterY;      /* Stepsizes are 0 when RightZBorder == LeftZBorder */      StepSizeX = ((RightXBorder - LeftXBorder + 1) + 1)/3;       /* round(Size of Xinterval / 3), this is maximum size of between two	 probes */       StepSizeY = ((RightYBorder - LeftYBorder + 1) + 1)/3;       /* round(Size of Yinterval / 3) */          } /* End while stepsize */  } /* end logarithmic search algorithm */    current_MV->x = MV_FRAME.x / 2;  current_MV->x_half = MV_FRAME.x % 2; /*This might not work for neg. values!*/  current_MV->y = MV_FRAME.y / 2;  current_MV->y_half = MV_FRAME.y % 2; /* This might not work! */  current_MV->min_error = Min_FRAME;  return;}//比較當(dāng)前塊與附近相同大小塊的誤差值int SAD_HalfPixelMacroblock2(unsigned int *ii,unsigned int *curr,int pixels_on_line, int Min_SAD){  int j = 16;  int sad = 0;  while(j--) {    sad += abs(*ii-(*curr));    sad += abs(*(ii + 2)-(*(curr+1)));    sad += abs(*(ii + 4)-(*(curr+2)));    sad += abs(*(ii + 6)-(*(curr+3)));    sad += abs(*(ii + 8)-(*(curr+4)));    sad += abs(*(ii + 10)-(*(curr+5)));    sad += abs(*(ii + 12)-(*(curr+6)));    sad += abs(*(ii + 14)-(*(curr+7)));    sad += abs(*(ii + 16)-(*(curr+8)));    sad += abs(*(ii + 18)-(*(curr+9)));    sad += abs(*(ii + 20)-(*(curr+10)));    sad += abs(*(ii + 22)-(*(curr+11)));    sad += abs(*(ii + 24)-(*(curr+12)));    sad += abs(*(ii + 26)-(*(curr+13)));    sad += abs(*(ii + 28)-(*(curr+14)));    sad += abs(*(ii + 30)-(*(curr+15)));    if(sad > Min_SAD)      return INT_MAX;    ii += pixels_on_line*2*2;                                 /* Interpolated image, that means two times */				/* We also take only one of the two pixels */				/* This means another two times ... */    curr += pixels_on_line;  } /* end while */  return sad;} unsigned int *LoadArea(unsigned int *im, int x, int y, 			int x_size, int y_size, int lx){  unsigned int *res = (unsigned int *)malloc(sizeof(int)*x_size*y_size);  unsigned int *in;  unsigned int *out;  int i = x_size;  int j = y_size;  in = im + (y*lx) + x;  out = res;  while (j--) {    while (i--)      *out++ = *in++;    i = x_size;    in += lx - x_size;  };  return res;}//定位宏塊,從原圖像(x,y)處開(kāi)始,得到一個(gè)宏塊16*16的值void FindMB(int x, int y, unsigned int *image, unsigned int MB[16][16]){  int n;  unsigned int *MB_ptr = &MB[0][0];  unsigned int *image_ptr;  MB_ptr = &MB[0][0];  image_ptr = image + x + y*pels;#ifdef LONGISDOUBLEINT  for(n = 0; n < 16; n++) {    * (unsigned long *) MB_ptr = * (unsigned long *) image_ptr;     MB_ptr += 2; image_ptr += 2;    * (unsigned long *) MB_ptr = * (unsigned long *) image_ptr;     MB_ptr += 2; image_ptr += 2;    * (unsigned long *) MB_ptr = * (unsigned long *) image_ptr;     MB_ptr += 2; image_ptr += 2;    * (unsigned long *) MB_ptr = * (unsigned long *) image_ptr;     MB_ptr += 2; image_ptr += 2;    * (unsigned long *) MB_ptr = * (unsigned long *) image_ptr;     MB_ptr += 2; image_ptr += 2;    * (unsigned long *) MB_ptr = * (unsigned long *) image_ptr;     MB_ptr += 2; image_ptr += 2;    * (unsigned long *) MB_ptr = * (unsigned long *) image_ptr;     MB_ptr += 2; image_ptr += 2;    * (unsigned long *) MB_ptr = * (unsigned long *) image_ptr;     MB_ptr += 2; image_ptr += 2;        image_ptr += pels - 16;  }#else  for (n = 0; n < 16; n++) {    *(unsigned int *) MB_ptr++ = *(unsigned int *) image_ptr++;    *(unsigned int *) MB_ptr++ = *(unsigned int *) image_ptr++;    *(unsigned int *) MB_ptr++ = *(unsigned int *) image_ptr++;    *(unsigned int *) MB_ptr++ = *(unsigned int *) image_ptr++;    *(unsigned int *) MB_ptr++ = *(unsigned int *) image_ptr++;    *(unsigned int *) MB_ptr++ = *(unsigned int *) image_ptr++;    *(unsigned int *) MB_ptr++ = *(unsigned int *) image_ptr++;    *(unsigned int *) MB_ptr++ = *(unsigned int *) image_ptr++;    *(unsigned int *) MB_ptr++ = *(unsigned int *) image_ptr++;    *(unsigned int *) MB_ptr++ = *(unsigned int *) image_ptr++;    *(unsigned int *) MB_ptr++ = *(unsigned int *) image_ptr++;    *(unsigned int *) MB_ptr++ = *(unsigned int *) image_ptr++;    *(unsigned int *) MB_ptr++ = *(unsigned int *) image_ptr++;    *(unsigned int *) MB_ptr++ = *(unsigned int *) image_ptr++;    *(unsigned int *) MB_ptr++ = *(unsigned int *) image_ptr++;    *(unsigned int *) MB_ptr++ = *(unsigned int *) image_ptr++;    image_ptr += pels - 16;  }#endif}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美中文字幕一二三区视频| 美女网站一区二区| 国产精品污www在线观看| 日韩欧美专区在线| 欧美一区二区在线免费观看| 欧美在线小视频| 欧美调教femdomvk| 在线免费亚洲电影| 精品视频全国免费看| 欧美日韩成人综合天天影院 | 欧美高清精品3d| 欧美日韩情趣电影| 91精品国产高清一区二区三区蜜臀 | 亚洲综合精品自拍| 亚洲最大的成人av| 日韩经典中文字幕一区| 免费在线观看日韩欧美| 久久国产剧场电影| 国产 欧美在线| 成人国产亚洲欧美成人综合网| 成人在线视频首页| 色呦呦日韩精品| 91精品国产综合久久国产大片| 日韩欧美一区二区在线视频| 久久免费视频色| 1024成人网| 日本中文字幕不卡| 成人一区二区视频| 在线一区二区三区四区五区| 欧美精品久久一区| 精品国产伦一区二区三区观看方式 | 中文字幕在线观看一区| 日韩久久一区二区| 日本免费新一区视频| 国产91精品入口| 精品视频色一区| 国产日韩欧美精品在线| 一卡二卡三卡日韩欧美| 九九视频精品免费| 91免费在线播放| 欧美一区二区三区免费在线看 | 欧美激情一区在线| 午夜精品aaa| 成人av网站大全| 日韩欧美国产小视频| 亚洲精品国产品国语在线app| 人人精品人人爱| 色偷偷久久一区二区三区| 91精品国产综合久久久久久久久久 | 91在线视频官网| 欧美一区二区三区日韩视频| 中文字幕亚洲综合久久菠萝蜜| 亚洲成av人片观看| av成人老司机| 久久久久99精品国产片| 偷拍日韩校园综合在线| 91在线视频免费观看| 久久蜜臀中文字幕| 久久精品噜噜噜成人88aⅴ| 91久久一区二区| 国产精品卡一卡二| 国产成人在线视频免费播放| 日韩丝袜美女视频| 日韩在线一区二区三区| 色综合久久久久综合99| 日本一区二区成人| 国产精品一级片| 精品国产欧美一区二区| 免费在线看一区| 日韩一区二区视频| 日本亚洲天堂网| 欧美日韩黄色一区二区| 亚洲综合区在线| 91国偷自产一区二区开放时间| 国产精品久久久久久久裸模| 国产精品一区专区| 国产日本一区二区| 国产精品亚洲第一| 国产人成一区二区三区影院| 国产乱理伦片在线观看夜一区| 精品国产露脸精彩对白| 国内精品在线播放| 国产视频一区在线观看| 粉嫩aⅴ一区二区三区四区| 欧美国产成人精品| 91网上在线视频| 亚洲一卡二卡三卡四卡 | 欧美一区二区三区白人| 日韩成人一区二区| 欧美xxxxx牲另类人与| 久久99国内精品| 国产日韩精品一区| 色欲综合视频天天天| 亚洲第一电影网| 欧美大白屁股肥臀xxxxxx| 黄色成人免费在线| 国产精品美女久久福利网站| 91社区在线播放| 日韩国产欧美在线播放| 久久综合九色综合欧美亚洲| 国产乱淫av一区二区三区| 日韩美女视频19| 欧美挠脚心视频网站| 国产一区视频在线看| 国产精品久久久久毛片软件| 色悠悠亚洲一区二区| 青青草原综合久久大伊人精品优势| 久久一夜天堂av一区二区三区| 不卡一区二区在线| 视频在线观看一区二区三区| 久久综合网色—综合色88| a在线欧美一区| 日韩和欧美的一区| 成人欧美一区二区三区1314| 555www色欧美视频| www.欧美精品一二区| 日本一不卡视频| 中文字幕电影一区| 91精品国产欧美日韩| 北条麻妃国产九九精品视频| 香港成人在线视频| 中文字幕在线观看不卡| 日韩精品专区在线影院重磅| www.视频一区| 国产精品网曝门| 日本欧美一区二区在线观看| 国产目拍亚洲精品99久久精品| 欧美性大战久久久久久久蜜臀 | 国产亚洲欧美日韩俺去了| 91在线播放网址| 国产一区二区0| 奇米影视一区二区三区小说| 亚洲第一电影网| 亚洲免费在线播放| 国产香蕉久久精品综合网| 欧美福利电影网| 色综合中文字幕国产| 美女视频黄久久| 亚洲成人资源网| 一区二区成人在线视频| 国产精品电影一区二区| 久久久91精品国产一区二区精品| 欧美日韩国产一区| 色香蕉久久蜜桃| 91女人视频在线观看| 99精品在线免费| 成人免费黄色大片| 国产成人免费xxxxxxxx| 狠狠色丁香婷综合久久| 麻豆国产一区二区| 美腿丝袜在线亚洲一区| 全国精品久久少妇| 丝袜亚洲精品中文字幕一区| 亚洲国产另类av| 亚洲国产aⅴ成人精品无吗| 一区二区三区在线观看国产| 自拍偷在线精品自拍偷无码专区| 欧美激情一区二区在线| 欧美激情综合五月色丁香| 欧美激情在线一区二区| 国产精品色哟哟| 亚洲日本在线天堂| 亚洲激情中文1区| 亚洲成人激情综合网| 天天操天天干天天综合网| 日本在线播放一区二区三区| 麻豆91在线观看| 国产在线不卡一区| 成人动漫精品一区二区| 91玉足脚交白嫩脚丫在线播放| 色综合色综合色综合色综合色综合| 91亚洲精品久久久蜜桃网站| 欧美午夜理伦三级在线观看| 555www色欧美视频| 国产亚洲欧洲997久久综合| 日本一区二区三区在线观看| 亚洲视频一区在线| 亚洲第一综合色| 国产在线一区观看| 99精品国产视频| 欧美久久婷婷综合色| 2024国产精品| 亚洲人成伊人成综合网小说| 日日骚欧美日韩| 国产一区二区在线观看视频| 99久久综合国产精品| 欧美日韩一区三区| 久久久久国产精品人| 亚洲三级免费观看| 久久精品国产久精国产| 亚洲欧美一区二区三区极速播放| 亚洲成人免费观看| 欧美日韩一区三区四区| 亚洲一区二区欧美激情| 91高清在线观看| 亚洲一区二区四区蜜桃| 色偷偷成人一区二区三区91| 亚洲情趣在线观看| 色香色香欲天天天影视综合网| 亚洲人成电影网站色mp4|