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

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

?? pred.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"
// 插入圖像和當(dāng)前圖像x,y處宏塊的差值(宏塊結(jié)構(gòu))
//curr_image當(dāng)前宏塊,prev_image重建圖像,prev_ipol插入圖像,x,y當(dāng)前宏塊象素位置,MV_ptr圖像mv值MB_Structure *Predict_P(unsigned int *curr_image, unsigned int *prev_image,			unsigned int *prev_ipol, int x, int y, 			MotionVector *MV_ptr){  int m,n;  int curr[16][16];  int pred[16][16];  MotionVector *fr0;  int dx, dy;  int xmb, ymb;  MB_Structure *pred_error;  pred_error = (MB_Structure *)malloc(sizeof(MB_Structure));      xmb = x/MB_SIZE;  ymb = y/MB_SIZE;  fr0 = MV_ptr + ymb*mbc + xmb;// mv矢量  /* Find MB in current image */
  //從(x,y)處,開(kāi)始,得到當(dāng)前數(shù)據(jù)宏塊curr[16][16]  FindMB(x, y, curr_image, curr);
  /* Find prediction based on half pel MV */
  // 從插入圖像prev_ipol的相對(duì)位置,取出對(duì)應(yīng)的原始宏塊值,放入pred[16][16]中  FindPred(x, y, fr0, prev_ipol, &pred[0][0]);  /* Do the actual prediction */  if (fr0->Mode == MODE_INTER) 
  {
	 //預(yù)測(cè)差值    for (n = 0; n < MB_SIZE; n++)      for (m = 0; m < MB_SIZE; m++) 	        pred_error->lum[n][m] = (int)(curr[n][m] - pred[n][m]);//差值    dx = 2*fr0->x + fr0->x_half;    dy = 2*fr0->y + fr0->y_half;    dx = ( dx % 4 == 0 ? dx >> 1 : (dx>>1)|1 );    dy = ( dy % 4 == 0 ? dy >> 1 : (dy>>1)|1 );

    DoPredChrom_P(x, y, dx, dy, curr_image, prev_image, pred_error);  }  else    fprintf(stderr,"Illegal Mode in Predict_P (pred.c)\n");  return pred_error;}

//預(yù)測(cè)色度塊   ?????????void DoPredChrom_P(int x_curr, int y_curr, int dx, int dy,		   unsigned int *curr, unsigned int *prev, 		   MB_Structure *pred_error){  int m,n;  int x, y, ofx, ofy, pel, lx;  int xint, yint;  int xh, yh;  lx = pels/2;  x = x_curr>>1;  y = y_curr>>1;  xint = dx>>1;  xh = dx & 1;  yint = dy>>1;  yh = dy & 1;  if (!xh && !yh) {    for (n = 0; n < 8; n++) {      for (m = 0; m < 8; m++) {	ofx = x + xint + m;	ofy = y + yint + n;
	/* prev+vskip does not work directly... */	pel=*(prev+vskip + ofx    + (ofy   )*lx);	pred_error->Cr[n][m] = (int)(*(curr+vskip + x+m + (y+n)*cpels) - pel);	pel=*(prev+uskip + ofx    + (ofy   )*lx);	pred_error->Cb[n][m] = (int)(*(curr + uskip + x+m + (y+n)*cpels) - pel);      }    }  }  else if (!xh && yh) {    for (n = 0; n < 8; n++) {      for (m = 0; m < 8; m++) {	ofx = x + xint + m;	ofy = y + yint + n;	pel=(*(prev+vskip + ofx    + (ofy   )*lx)+	     *(prev+vskip + ofx    + (ofy+yh)*lx) + 1)>>1;	pred_error->Cr[n][m] = 	  (int)(*(curr+vskip + x+m + (y+n)*cpels) - pel);	pel=(*(prev+uskip + ofx    + (ofy   )*lx)+	     *(prev+uskip + ofx    + (ofy+yh)*lx) + 1)>>1;	pred_error->Cb[n][m] = 	  (int)(*( curr+uskip + x+m + (y+n)*cpels) - pel);            }    }  }  else if (xh && !yh) {    for (n = 0; n < 8; n++) {      for (m = 0; m < 8; m++) {	ofx = x + xint + m;	ofy = y + yint + n;	pel=(*(prev+vskip+ofx    + (ofy   )*lx)+	     *(prev+vskip+ofx+xh + (ofy   )*lx) + 1)>>1;	pred_error->Cr[n][m] = 	  (int)(*(curr+vskip + x+m + (y+n)*cpels) - pel);	pel=(*(prev+uskip+ofx    + (ofy   )*lx)+	     *(prev+uskip+ofx+xh + (ofy   )*lx) + 1)>>1;	pred_error->Cb[n][m] = 	  (int)( *( curr+uskip + x+m + (y+n)*cpels) - pel);            }    }  }  else { /* xh && yh */    for (n = 0; n < 8; n++) {      for (m = 0; m < 8; m++) {	ofx = x + xint + m;	ofy = y + yint + n;	pel=(*(prev+vskip+ofx    + (ofy   )*lx)+	     *(prev+vskip+ofx+xh + (ofy   )*lx)+	     *(prev+vskip+ofx    + (ofy+yh)*lx)+	     *(prev+vskip+ofx+xh + (ofy+yh)*lx)+	     2)>>2;	pred_error->Cr[n][m] = 	  (int)(*(curr+vskip + x+m + (y+n)*cpels) - pel);	pel=(*(prev+uskip+ofx    + (ofy   )*lx)+	     *(prev+uskip+ofx+xh + (ofy   )*lx)+	     *(prev+uskip+ofx    + (ofy+yh)*lx)+	     *(prev+uskip+ofx+xh + (ofy+yh)*lx)+	     2)>>2;	pred_error->Cb[n][m] = 	  (int)(*(curr+uskip + x+m + (y+n)*cpels) - pel);            }    }  }  return;}
// 找到運(yùn)動(dòng)矢量對(duì)應(yīng)的插入圖像中的宏塊的值,xy宏塊位置,fr為矢量,prev插入圖像,放入pred[16][16]中void FindPred(int x, int y, MotionVector *fr, unsigned int *prev, int *pred){  int n;  int new_x, new_y;  int *prev_ptr;
  // 新的位置  new_x = 2*(x + fr->x) + fr->x_half;  new_y = 2*(y + fr->y) + fr->y_half;  prev_ptr =  (int *) prev + 2*new_y*pels + new_x;  /* Fill pred. data */  for (n = 0; n < 16; n++) {    /* Interpolated data -> too bad it can't be done in longs... */      *(pred++) = *(prev_ptr);      prev_ptr += 2;       *(pred++) = *(prev_ptr);      prev_ptr += 2;       *(pred++) = *(prev_ptr);      prev_ptr += 2;       *(pred++) = *(prev_ptr);      prev_ptr += 2;       *(pred++) = *(prev_ptr);      prev_ptr += 2;       *(pred++) = *(prev_ptr);      prev_ptr += 2;       *(pred++) = *(prev_ptr);      prev_ptr += 2;       *(pred++) = *(prev_ptr);      prev_ptr += 2;       *(pred++) = *(prev_ptr);      prev_ptr += 2;       *(pred++) = *(prev_ptr);      prev_ptr += 2;       *(pred++) = *(prev_ptr);      prev_ptr += 2;       *(pred++) = *(prev_ptr);      prev_ptr += 2;       *(pred++) = *(prev_ptr);      prev_ptr += 2;       *(pred++) = *(prev_ptr);      prev_ptr += 2;       *(pred++) = *(prev_ptr);      prev_ptr += 2;       *(pred++) = *(prev_ptr);      prev_ptr += pels*4 - 30;  }  return;}//p幀中重建宏塊MB_Structure *MB_Recon_P(unsigned int *prev_image, unsigned int *prev_ipol,			 MB_Structure *diff, int x_curr, int y_curr, 			 MotionVector *MV_ptr){  MB_Structure *recon_data = (MB_Structure *)malloc(sizeof(MB_Structure));  MotionVector *fr0;  int dx, dy;  fr0 = MV_ptr + (y_curr/MB_SIZE)*mbc + (x_curr/MB_SIZE);  if (fr0->Mode == MODE_INTER) {      /* Inter 16x16 */    ReconLumBlock_P(x_curr,y_curr,fr0,prev_ipol,&diff->lum[0][0]);        dx = 2*fr0->x + fr0->x_half;    dy = 2*fr0->y + fr0->y_half;    dx = ( dx % 4 == 0 ? dx >> 1 : (dx>>1)|1 );    dy = ( dy % 4 == 0 ? dy >> 1 : (dy>>1)|1 );    ReconChromBlock_P(x_curr, y_curr, dx, dy, prev_image, diff);  }  memcpy(recon_data, diff, sizeof(MB_Structure));  return recon_data;}

void ReconLumBlock_P(int x, int y, MotionVector *fr, 		     unsigned int *prev, int *data){  int m, n;  int x1, y1;  int *data_ptr = data;  unsigned int *prev_ptr;  x1 = 2*(x + fr->x) + fr->x_half;  y1 = 2*(y + fr->y) + fr->y_half;    prev_ptr = prev + x1 + y1*2*pels;  for (n = 0; n < 16; n++) {    for (m = 0; m < 16; m++) {      *data_ptr++ += (int)(*prev_ptr);      prev_ptr += 2;    }    prev_ptr += 2*2*pels - 32;  }  return;}void ReconChromBlock_P(int x_curr, int y_curr, int dx, int dy,		       unsigned int *prev, MB_Structure *data){  int m,n;  int x, y, ofx, ofy, pel,lx;  int xint, yint;  int xh, yh;  lx = pels/2;  x = x_curr>>1;  y = y_curr>>1;  xint = dx>>1;  xh = dx & 1;  yint = dy>>1;  yh = dy & 1;      if (!xh && !yh) {    for (n = 0; n < 8; n++) {      for (m = 0; m < 8; m++) {	ofx = x + xint + m;	ofy = y + yint + n;	pel=*(prev+vskip+ ofx    + (ofy   )*lx);	data->Cr[n][m] += pel;	pel=*(prev+uskip + ofx    + (ofy   )*lx);	data->Cb[n][m] += pel;      }    }  }  else if (!xh && yh) {    for (n = 0; n < 8; n++) {      for (m = 0; m < 8; m++) {	ofx = x + xint + m;	ofy = y + yint + n;	pel=(*(prev+vskip+ ofx    + (ofy   )*lx)+	     *(prev+vskip+ ofx    + (ofy+yh)*lx) + 1)>>1;	data->Cr[n][m] += pel;	pel=(*(prev+uskip+ofx    + (ofy   )*lx)+	     *(prev+uskip+ofx    + (ofy+yh)*lx) + 1)>>1;	data->Cb[n][m] += pel;            }    }  }  else if (xh && !yh) {    for (n = 0; n < 8; n++) {      for (m = 0; m < 8; m++) {	ofx = x + xint + m;	ofy = y + yint + n;	pel=(*(prev+vskip+ofx    + (ofy   )*lx)+	     *(prev+vskip+ofx+xh + (ofy   )*lx) + 1)>>1;	data->Cr[n][m] += pel;	pel=(*(prev+uskip+ofx    + (ofy   )*lx)+	     *(prev+uskip+ofx+xh + (ofy   )*lx) + 1)>>1;	data->Cb[n][m] += pel;            }    }  }  else { /* xh && yh */    for (n = 0; n < 8; n++) {      for (m = 0; m < 8; m++) {	ofx = x + xint + m;	ofy = y + yint + n;	pel=(*(prev+vskip+ofx    + (ofy   )*lx)+	     *(prev+vskip+ofx+xh + (ofy   )*lx)+	     *(prev+vskip+ofx    + (ofy+yh)*lx)+	     *(prev+vskip+ofx+xh + (ofy+yh)*lx)+	     2)>>2;	data->Cr[n][m] += pel;	pel=(*(prev+uskip+ofx    + (ofy   )*lx)+	     *(prev+uskip+ofx+xh + (ofy   )*lx)+	     *(prev+uskip+ofx    + (ofy+yh)*lx)+	     *(prev+uskip+ofx+xh + (ofy+yh)*lx)+	     2)>>2;	data->Cb[n][m] += pel;            }    }  }  return;}void FindChromBlock_P(int x_curr, int y_curr, int dx, int dy,		      unsigned int *prev, MB_Structure *data){  int m,n;  int x, y, ofx, ofy, pel,lx;  int xint, yint;  int xh, yh;  lx = pels/2;  x = x_curr>>1;  y = y_curr>>1;  xint = dx>>1;  xh = dx & 1;  yint = dy>>1;  yh = dy & 1;      if (!xh && !yh) {    for (n = 0; n < 8; n++) {      for (m = 0; m < 8; m++) {	ofx = x + xint + m;	ofy = y + yint + n;	pel=*(prev+vskip+ofx    + (ofy   )*lx);	data->Cr[n][m] = pel;	pel=*(prev+uskip+ofx    + (ofy   )*lx);	data->Cb[n][m] = pel;      }    }  }  else if (!xh && yh) {    for (n = 0; n < 8; n++) {      for (m = 0; m < 8; m++) {	ofx = x + xint + m;	ofy = y + yint + n;	pel=(*(prev+vskip+ofx    + (ofy   )*lx)+	     *(prev+vskip+ofx    + (ofy+yh)*lx) + 1)>>1;	data->Cr[n][m] = pel;	pel=(*(prev+uskip+ofx    + (ofy   )*lx)+	     *(prev+uskip+ofx    + (ofy+yh)*lx) + 1)>>1;	data->Cb[n][m] = pel;            }    }  }  else if (xh && !yh) {    for (n = 0; n < 8; n++) {      for (m = 0; m < 8; m++) {	ofx = x + xint + m;	ofy = y + yint + n;	pel=(*(prev+vskip+ofx    + (ofy   )*lx)+	     *(prev+vskip+ofx+xh + (ofy   )*lx) + 1)>>1;	data->Cr[n][m] = pel;	pel=(*(prev+uskip+ofx    + (ofy   )*lx)+	     *(prev+uskip+ofx+xh + (ofy   )*lx) + 1)>>1;	data->Cb[n][m] = pel;            }    }  }  else { /* xh && yh */    for (n = 0; n < 8; n++) {      for (m = 0; m < 8; m++) {	ofx = x + xint + m;	ofy = y + yint + n;	pel=(*(prev+vskip+ofx    + (ofy   )*lx)+	     *(prev+vskip+ofx+xh + (ofy   )*lx)+	     *(prev+vskip+ofx    + (ofy+yh)*lx)+	     *(prev+vskip+ofx+xh + (ofy+yh)*lx)+	     2)>>2;	data->Cr[n][m] = pel;	pel=(*(prev+uskip+ofx    + (ofy   )*lx)+	     *(prev+uskip+ofx+xh + (ofy   )*lx)+	     *(prev+uskip+ofx    + (ofy+yh)*lx)+	     *(prev+uskip+ofx+xh + (ofy+yh)*lx)+	     2)>>2;	data->Cb[n][m] = pel;            }    }  }  return;}//curr當(dāng)前圖像,x,y位置的宏塊, min_SAD當(dāng)前mv的誤差差值
//此宏塊的整體方差較小時(shí),A小于(inter誤差 - 500)時(shí),用interint ChooseMode(unsigned int *curr, int x_pos, int y_pos, int min_SAD){  int i,j;  int MB_mean = 0, A = 0;  int y_off;  for (j = 0; j < MB_SIZE; j++)
  {    y_off = (y_pos + j) * pels;    for (i = 0; i < MB_SIZE; i++) 
	{      MB_mean += *(curr + x_pos + i + y_off);    }  }
  MB_mean /= (MB_SIZE*MB_SIZE);  for (j = 0; j < MB_SIZE; j++) 
  {    y_off = (y_pos + j) * pels;    for (i = 0; i < MB_SIZE; i++) 
	{      A += abs( *(curr + x_pos + i + y_off) - MB_mean );    }  }
  //16*16的方差較小時(shí),用intra  if (A < (min_SAD - 500))     return MODE_INTRA;  else    return MODE_INTER;}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美大尺度电影在线| 99精品视频一区二区| 免费av网站大全久久| 日精品一区二区| 国产精品一区专区| 成人精品国产福利| 91无套直看片红桃| 色婷婷综合久久久中文一区二区| 欧美亚洲一区三区| 日韩美女在线视频| 日韩毛片在线免费观看| 亚洲无人区一区| 免费观看成人鲁鲁鲁鲁鲁视频| 狠狠色狠狠色综合系列| 不卡的av电影| 精品免费国产一区二区三区四区| 中文字幕不卡的av| 久草中文综合在线| 18成人在线观看| 国产精品免费人成网站| 7777精品伊人久久久大香线蕉完整版| 北岛玲一区二区三区四区| 欧美午夜精品一区二区三区| 国产成a人亚洲精品| 91啦中文在线观看| 欧美一区二视频| 中文字幕在线一区| 久久99久久精品| 欧美影视一区二区三区| 2023国产一二三区日本精品2022| 亚洲天堂网中文字| 国产成人夜色高潮福利影视| 欧美喷水一区二区| 亚洲在线成人精品| 99精品在线观看视频| 26uuu久久天堂性欧美| 亚洲成av人**亚洲成av**| 色天天综合久久久久综合片| 国产午夜精品理论片a级大结局| 欧美a级一区二区| 7777精品伊人久久久大香线蕉超级流畅 | 中文字幕在线观看一区| 国产资源精品在线观看| 久久久精品免费网站| 韩国精品久久久| 久久免费精品国产久精品久久久久| 亚洲国产中文字幕在线视频综合| 99热99精品| 亚洲六月丁香色婷婷综合久久 | 国产亚洲精品资源在线26u| 国产一区二区三区香蕉| 国产夜色精品一区二区av| 国内不卡的二区三区中文字幕| 久久久久久99精品| 色妹子一区二区| 肉丝袜脚交视频一区二区| 精品久久久久99| 色婷婷综合在线| 美洲天堂一区二卡三卡四卡视频| 国产亚洲综合av| 欧美在线小视频| 国产成人免费视频网站| 一区二区三区在线看| 久久蜜桃香蕉精品一区二区三区| 99国产精品久| 亚洲高清免费观看| 欧美激情一区二区三区蜜桃视频| 91久久线看在观草草青青| 精品伊人久久久久7777人| 亚洲天堂精品视频| 久久久不卡影院| 欧美一区二区三区色| 在线亚洲一区二区| 国产东北露脸精品视频| 蜜臀av一级做a爰片久久| 亚洲免费在线播放| 日韩美女久久久| 中文字幕av不卡| 久久精品亚洲乱码伦伦中文| 欧美一级片免费看| 欧美卡1卡2卡| 欧美男男青年gay1069videost| 91视频com| 色综合欧美在线| 欧美色图天堂网| 色狠狠色噜噜噜综合网| 91麻豆自制传媒国产之光| 成人免费福利片| 一本一本久久a久久精品综合麻豆| 国产精品88888| 9色porny自拍视频一区二区| 成人午夜av在线| 色综合久久中文字幕| 在线精品亚洲一区二区不卡| 欧美日精品一区视频| 欧美日本精品一区二区三区| 日韩一区二区三区视频在线| 欧美刺激午夜性久久久久久久| 日韩欧美123| 国产精品萝li| 午夜精品福利视频网站| 久久99久久精品欧美| 国产成人av一区| 欧美性xxxxxx少妇| 日韩一卡二卡三卡| 国产精品久久久久影院亚瑟| 亚洲精品美腿丝袜| 激情综合一区二区三区| 色综合久久综合网欧美综合网| 欧美一区二区在线视频| 国产三级欧美三级日产三级99| 亚洲另类在线一区| 久久精品噜噜噜成人av农村| av中文字幕亚洲| 精品伦理精品一区| 亚洲国产日韩一区二区| 国产在线乱码一区二区三区| 欧美日韩精品电影| 亚洲品质自拍视频| 成人深夜在线观看| 欧美精品一区二区三区在线播放| 一区二区三区四区五区视频在线观看| 久久精品国产在热久久| 91.麻豆视频| 日韩精品视频网| 欧美午夜一区二区三区| 亚洲精品国产一区二区三区四区在线| 国产一区二区不卡| 国产亚洲欧美激情| 国产精品影视在线观看| 久久综合狠狠综合| 国产激情一区二区三区四区| 色又黄又爽网站www久久| 91精品国产日韩91久久久久久| 成人精品国产一区二区4080| 日韩电影一区二区三区四区| 国产精品热久久久久夜色精品三区 | 激情久久五月天| 一区二区三区美女| 国产亚洲va综合人人澡精品| 欧美日韩精品欧美日韩精品| 不卡视频在线看| 国产一区 二区| 捆绑调教一区二区三区| 亚洲在线中文字幕| 1024成人网| 中文字幕亚洲在| 久久久国产精品麻豆| 欧美一二三区在线观看| 欧美性色黄大片| 不卡的av中国片| 国产风韵犹存在线视精品| 蜜臀av一级做a爰片久久| 成人免费小视频| 国产欧美一区在线| 精品国产a毛片| 精品99一区二区| 日韩美一区二区三区| 欧美日韩aaaaaa| 一本大道久久a久久综合| 国产高清精品在线| 国产成人精品影院| 国产一区三区三区| 精品亚洲国产成人av制服丝袜| 麻豆精品国产传媒mv男同| 日本不卡的三区四区五区| 天堂影院一区二区| 爽好久久久欧美精品| 日本aⅴ免费视频一区二区三区| 亚洲成av人片一区二区梦乃| 亚洲欧美电影院| 日韩综合一区二区| 麻豆国产欧美日韩综合精品二区 | 日韩伦理av电影| 亚洲特黄一级片| 一区二区三区欧美激情| 亚洲成av人片在线| 国产ts人妖一区二区| 色94色欧美sute亚洲13| 欧美美女bb生活片| 91精品国产欧美一区二区| 欧美极品少妇xxxxⅹ高跟鞋| 亚洲午夜三级在线| 国产精品一区二区在线看| 欧美性受xxxx| 国产日韩一级二级三级| 亚洲在线一区二区三区| 狂野欧美性猛交blacked| 99精品欧美一区二区蜜桃免费| 一本色道久久综合精品竹菊| 精品国产欧美一区二区| 亚洲激情图片一区| 粉嫩欧美一区二区三区高清影视 | 99久久久无码国产精品| 欧美成人一区二区三区片免费 | 亚洲成人中文在线| 色综合一个色综合| 欧美激情一区二区三区全黄| 狠狠色综合色综合网络| 欧美高清激情brazzers|