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

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

?? pred.c

?? encoder 視頻會議 視頻編碼算法 源程序
?? C
?? 第 1 頁 / 共 3 頁
字號:
    xir = (ri8 ? xmb : xmb+1);    /* edge handling */    if (ymb == 1) {      yit = ymb;      vect = (c8 ? 2 : 0);    }    if (xmb == pels/16) {      xir = xmb;      vecr = (c8 ? 2 : 0);    }    break;  case 3:    vect = (c8 ? 1 : 0) ; yit = ymb  ; xit = xmb;    vecb = (c8 ? 3 : 0) ; yib = ymb  ; xib = xmb;          vecl = (li8 ? (c8 ? 3 : 0) : (l8 ? 4 : 0));     yil = ymb;      xil = (li8 ? xmb : xmb-1);        vecr = (c8 ? 4 : 0) ; yir = ymb  ; xir = xmb;    /* edge handling */    if (xmb == 1) {      xil = xmb;      vecl = (c8 ? 3 : 0);    }    break;  case 4:    vect = (c8 ? 2 : 0) ; yit = ymb  ; xit = xmb;    vecb = (c8 ? 4 : 0) ; yib = ymb  ; xib = xmb;    vecl = (c8 ? 3 : 0) ; yil = ymb  ; xil = xmb;    vecr = (ri8 ? (c8 ? 4 : 0) : (r8 ? 3 : 0));     yir = ymb;     xir = (ri8 ? xmb : xmb+1);    /* edge handling */    if (xmb == pels/16) {      xir = xmb;      vecr = (c8 ? 4 : 0);    }    break;  default:    fprintf(stderr,"Illegal block number in FindPredOBMC (pred.c)\n");    exit(-1);    break;  }  fc = MV[c8 ? comp + 1: 0][ymb][xmb];  ft = MV[vect][yit][xit];  fb = MV[vecb][yib][xib];  fr = MV[vecr][yir][xir];  fl = MV[vecl][yil][xil];  nxc = 2*x + ((comp&1)<<4); nyc = 2*y + ((comp&2)<<3);  nxt = nxb = nxr = nxl = nxc;  nyt = nyb = nyr = nyl = nyc;  nxc += 2*fc->x + fc->x_half; nyc += 2*fc->y + fc->y_half;  nxt += 2*ft->x + ft->x_half; nyt += 2*ft->y + ft->y_half;  nxb += 2*fb->x + fb->x_half; nyb += 2*fb->y + fb->y_half;  nxr += 2*fr->x + fr->x_half; nyr += 2*fr->y + fr->y_half;  nxl += 2*fl->x + fl->x_half; nyl += 2*fl->y + fl->y_half;  /* Fill pred. data */  for (n = 0; n < 8; n++) {    for (m = 0; m < 8; m++) {      /* Find interpolated pixel-value */      pc = *(prev + nxc + 2*m + (nyc + 2*n)*lx*2) * Mc[n][m];      pt = *(prev + nxt + 2*m + (nyt + 2*n)*lx*2) * Mt[n][m];      pb = *(prev + nxb + 2*m + (nyb + 2*n)*lx*2) * Mb[n][m];      pr = *(prev + nxr + 2*m + (nyr + 2*n)*lx*2) * Mr[n][m];      pl = *(prev + nxl + 2*m + (nyl + 2*n)*lx*2) * Ml[n][m];      /*$pc = *(prev + nxc + 2*m + (nyc + 2*n)*lx*2) * 8;      pt = *(prev + nxt + 2*m + (nyt + 2*n)*lx*2) * 0;;      pb = *(prev + nxb + 2*m + (nyb + 2*n)*lx*2) * 0;      pr = *(prev + nxr + 2*m + (nyr + 2*n)*lx*2) * 0;      pl = *(prev + nxl + 2*m + (nyl + 2*n)*lx*2) * 0;$*/      *(pred + m + n*16) = (pc+pt+pb+pr+pl+4)>>3;    }	  }  return;}/********************************************************************** * *	Name:        ReconMacroblock_P *	Description:	Reconstructs MB after quantization for P_images *	 *	Input:        pointers to current and previous image, *        current slice and mb, and which mode *        of prediction has been used *	Returns: *	Side effects: * *	Date: 930122	Author: Karl.Lillevold@nta.no * ***********************************************************************/MB_Structure *MB_Recon_P(PictImage *prev_image, unsigned char *prev_ipol,         MB_Structure *diff, int x_curr, int y_curr,          MotionVector *MV[6][MBR+1][MBC+2], int PB){  MB_Structure *recon_data = (MB_Structure *)malloc(sizeof(MB_Structure));  MotionVector *fr0,*fr1,*fr2,*fr3,*fr4;  int pred[16][16];  int dx, dy, sum;  int i,j;  fr0 = MV[0][y_curr/MB_SIZE+1][x_curr/MB_SIZE+1];  if (advanced) {    if (fr0->Mode == MODE_INTER || fr0->Mode == MODE_INTER_Q) {      FindPredOBMC(x_curr, y_curr, MV, prev_ipol, &pred[0][0], 0, PB);      FindPredOBMC(x_curr, y_curr, MV, prev_ipol, &pred[0][8], 1, PB);      FindPredOBMC(x_curr, y_curr, MV, prev_ipol, &pred[8][0], 2, PB);      FindPredOBMC(x_curr, y_curr, MV, prev_ipol, &pred[8][8], 3, PB);      for (j = 0; j < MB_SIZE; j++)         for (i = 0; i < MB_SIZE; i++)           diff->lum[j][i] += pred[j][i];      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);    }    else if (fr0->Mode == MODE_INTER4V) { /* Inter 8x8 */            FindPredOBMC(x_curr, y_curr, MV, prev_ipol, &pred[0][0], 0, PB);      FindPredOBMC(x_curr, y_curr, MV, prev_ipol, &pred[0][8], 1, PB);      FindPredOBMC(x_curr, y_curr, MV, prev_ipol, &pred[8][0], 2, PB);      FindPredOBMC(x_curr, y_curr, MV, prev_ipol, &pred[8][8], 3, PB);      for (j = 0; j < MB_SIZE; j++)         for (i = 0; i < MB_SIZE; i++)           diff->lum[j][i] += pred[j][i];      fr1 = MV[1][y_curr/MB_SIZE+1][x_curr/MB_SIZE+1];      fr2 = MV[2][y_curr/MB_SIZE+1][x_curr/MB_SIZE+1];      fr3 = MV[3][y_curr/MB_SIZE+1][x_curr/MB_SIZE+1];      fr4 = MV[4][y_curr/MB_SIZE+1][x_curr/MB_SIZE+1];      sum = 2*fr1->x + fr1->x_half + 2*fr2->x + fr2->x_half +        2*fr3->x + fr3->x_half + 2*fr4->x + fr4->x_half ;       dx = sign(sum)*(roundtab[abs(sum)%16] + (abs(sum)/16)*2);      sum = 2*fr1->y + fr1->y_half + 2*fr2->y + fr2->y_half +        2*fr3->y + fr3->y_half + 2*fr4->y + fr4->y_half;      dy = sign(sum)*(roundtab[abs(sum)%16] + (abs(sum)/16)*2);      ReconChromBlock_P(x_curr, y_curr, dx, dy, prev_image, diff);    }  }  else {    if (fr0->Mode == MODE_INTER || fr0->Mode == MODE_INTER_Q) {      /* Inter 16x16 */      ReconLumBlock_P(x_curr,y_curr,fr0,prev_ipol,&diff->lum[0][0],16,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;}/********************************************************************** * *	Name:        ReconLumBlock_P *	Description:	Reconstructs one block of luminance data *	 *	Input:        position, vector-data, previous image, data-block *	Returns: *	Side effects:	reconstructs data-block * *	Date: 950210	Author: Karl.Lillevold@nta.no * ***********************************************************************/void ReconLumBlock_P(int x, int y, MotionVector *fr,              unsigned char *prev, int *data, int bs, int comp){  int m, n;  int x1, y1, lx;  lx = (mv_outside_frame ? pels + (long_vectors?64:32) : pels);  x1 = 2*(x + fr->x) + fr->x_half;  y1 = 2*(y + fr->y) + fr->y_half;    x1 += ((comp&1)<<4);  y1 += ((comp&2)<<3);  for (n = 0; n < bs; n++) {    for (m = 0; m < bs; m++) {      *(data+m+n*16) += (int)(*(prev+x1+2*m + (y1+2*n)*2*lx));    }  }  return;}/********************************************************************** * *	Name:        ReconChromBlock_P *	Description:        Reconstructs chrominance of one block in P frame *	 *	Input:        position, vector-data, previous image, data-block *	Returns:         *	Side effects:	reconstructs data-block * *	Date: 930203	Author: Karl.Lillevold@nta.no * ***********************************************************************/void ReconChromBlock_P(int x_curr, int y_curr, int dx, int dy,               PictImage *prev, MB_Structure *data){  int m,n;  int x, y, ofx, ofy, pel,lx;  int xint, yint;  int xh, yh;  lx = (mv_outside_frame ? pels/2 + (long_vectors?32:16) : 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->Cr+ofx    + (ofy   )*lx);        data->Cr[n][m] += pel;        pel=*(prev->Cb+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->Cr+ofx    + (ofy   )*lx)+             *(prev->Cr+ofx    + (ofy+yh)*lx) + 1)>>1;        data->Cr[n][m] += pel;        pel=(*(prev->Cb+ofx    + (ofy   )*lx)+             *(prev->Cb+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->Cr+ofx    + (ofy   )*lx)+             *(prev->Cr+ofx+xh + (ofy   )*lx) + 1)>>1;        data->Cr[n][m] += pel;        pel=(*(prev->Cb+ofx    + (ofy   )*lx)+             *(prev->Cb+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->Cr+ofx    + (ofy   )*lx)+             *(prev->Cr+ofx+xh + (ofy   )*lx)+             *(prev->Cr+ofx    + (ofy+yh)*lx)+             *(prev->Cr+ofx+xh + (ofy+yh)*lx)+             2)>>2;        data->Cr[n][m] += pel;        pel=(*(prev->Cb+ofx    + (ofy   )*lx)+             *(prev->Cb+ofx+xh + (ofy   )*lx)+             *(prev->Cb+ofx    + (ofy+yh)*lx)+             *(prev->Cb+ofx+xh + (ofy+yh)*lx)+             2)>>2;        data->Cb[n][m] += pel;            }    }  }  return;}/********************************************************************** * *	Name:        FindChromBlock_P *	Description:        Finds chrominance of one block in P frame *	 *	Input:        position, vector-data, previous image, data-block * *	Date: 950222	Author: Karl.Lillevold@nta.no * ***********************************************************************/void FindChromBlock_P(int x_curr, int y_curr, int dx, int dy,              PictImage *prev, MB_Structure *data){  int m,n;  int x, y, ofx, ofy, pel,lx;  int xint, yint;  int xh, yh;  lx = (mv_outside_frame ? pels/2 + (long_vectors?32:16) : 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->Cr+ofx    + (ofy   )*lx);        data->Cr[n][m] = pel;        pel=*(prev->Cb+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->Cr+ofx    + (ofy   )*lx)+             *(prev->Cr+ofx    + (ofy+yh)*lx) + 1)>>1;        data->Cr[n][m] = pel;        pel=(*(prev->Cb+ofx    + (ofy   )*lx)+             *(prev->Cb+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->Cr+ofx    + (ofy   )*lx)+             *(prev->Cr+ofx+xh + (ofy   )*lx) + 1)>>1;        data->Cr[n][m] = pel;        pel=(*(prev->Cb+ofx    + (ofy   )*lx)+             *(prev->Cb+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->Cr+ofx    + (ofy   )*lx)+             *(prev->Cr+ofx+xh + (ofy   )*lx)+             *(prev->Cr+ofx    + (ofy+yh)*lx)+             *(prev->Cr+ofx+xh + (ofy+yh)*lx)+             2)>>2;        data->Cr[n][m] = pel;        pel=(*(prev->Cb+ofx    + (ofy   )*lx)+             *(prev->Cb+ofx+xh + (ofy   )*lx)+             *(prev->Cb+ofx    + (ofy+yh)*lx)+             *(prev->Cb+ofx+xh + (ofy+yh)*lx)+             2)>>2;        data->Cb[n][m] = pel;            }    }  }  return;}/********************************************************************** * *	Name:        ChooseMode *	Description:    chooses coding mode *	 *	Input:	        pointer to original fram, min_error from  *                      integer pel search, DQUANT *	Returns:        1 for Inter, 0 for Intra * *	Date: 941130	Author: Karl.Lillevold@nta.no * ***********************************************************************/int ChooseMode(unsigned char *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 );    }  }  if (A < (min_SAD - 500))     return MODE_INTRA;  else    return MODE_INTER;}int ModifyMode(int Mode, int dquant){  if (Mode == MODE_INTRA) {    if(dquant!=0)      return MODE_INTRA_Q;    else      return MODE_INTRA;  }  else{     if(dquant!=0)      return MODE_INTER_Q;    else      return Mode;  }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色婷婷国产精品综合在线观看| 欧美日韩黄色一区二区| 日本在线不卡一区| 中文幕一区二区三区久久蜜桃| 欧美色网一区二区| 成人午夜在线视频| 日韩成人免费看| 悠悠色在线精品| 国产校园另类小说区| 91精品国产综合久久久久久久 | av在线播放一区二区三区| 免费在线观看一区| 亚洲成人久久影院| 亚洲女同ⅹxx女同tv| 久久精品一二三| 日韩美一区二区三区| 欧美日本免费一区二区三区| 97久久精品人人澡人人爽| 国产高清不卡一区| 精品系列免费在线观看| 琪琪久久久久日韩精品| 一二三四区精品视频| 中文字幕不卡的av| 久久在线免费观看| 精品久久久久久久人人人人传媒| 欧美视频第二页| 一本色道久久综合精品竹菊| av爱爱亚洲一区| 粉嫩av一区二区三区在线播放 | 国产91清纯白嫩初高中在线观看| 蜜桃av一区二区在线观看| 亚洲福利视频导航| 亚洲成人1区2区| 亚洲va欧美va人人爽| 亚洲第一久久影院| 亚洲在线免费播放| 亚洲成人动漫av| 日韩黄色免费网站| 五月综合激情婷婷六月色窝| 亚洲高清一区二区三区| 亚洲成av人片一区二区三区| 亚洲成av人片在线观看无码| 亚洲aaa精品| 日韩av不卡一区二区| 蜜桃在线一区二区三区| 日韩高清一区在线| 美女网站色91| 久久99精品久久久| 国产一区二区三区在线观看免费 | 精品国产凹凸成av人网站| 欧美刺激午夜性久久久久久久| 欧美哺乳videos| 亚洲精品在线免费观看视频| 国产婷婷色一区二区三区| 国产精品久久久久aaaa樱花| 亚洲欧美激情在线| 亚洲高清一区二区三区| 免费一级片91| 国产一区二区精品久久91| 成人精品高清在线| 日本乱人伦aⅴ精品| 欧美电影在哪看比较好| 精品福利一区二区三区| 中文字幕一区日韩精品欧美| 自拍偷拍亚洲综合| 日韩精品三区四区| 国产精一品亚洲二区在线视频| 成人福利视频网站| 欧洲一区在线观看| 精品国产乱码久久| 亚洲欧洲成人自拍| 热久久国产精品| 成人综合在线网站| 欧美日韩一区二区三区免费看| 欧美一区二区三区不卡| 国产精品三级av| 丝袜亚洲精品中文字幕一区| 国产成人高清在线| 欧美在线一区二区| 久久久不卡网国产精品一区| 亚洲欧美精品午睡沙发| 久久精品免费看| 91在线无精精品入口| 日韩精品专区在线影院重磅| 综合亚洲深深色噜噜狠狠网站| 午夜精品视频一区| proumb性欧美在线观看| 日韩视频一区二区在线观看| 中文字幕一区二区不卡| 精品在线亚洲视频| 欧美在线短视频| 久久久久久电影| 亚洲成av人影院| 99re66热这里只有精品3直播| 日韩精品中文字幕一区 | 久久草av在线| 在线亚洲高清视频| 久久精品综合网| 蜜桃视频免费观看一区| 日本道精品一区二区三区| 欧美经典三级视频一区二区三区| 日韩av中文字幕一区二区三区| 不卡一区二区三区四区| 久久综合成人精品亚洲另类欧美 | 亚洲特黄一级片| 国产乱码一区二区三区| 欧美精品乱码久久久久久按摩| 国产精品久久三| 国产精品一区一区三区| 日韩视频一区二区三区在线播放 | 99久久精品99国产精品| 久久综合久久综合九色| 麻豆高清免费国产一区| 欧美另类一区二区三区| 亚洲精品成a人| 成人福利视频网站| 国产欧美日韩精品一区| 国产一区二区三区av电影| 67194成人在线观看| 午夜影院久久久| 欧美私人免费视频| 一区二区三区91| 色妹子一区二区| 日韩一区中文字幕| 91亚洲资源网| 中文字幕中文字幕在线一区| 国产成人高清在线| 国产欧美精品一区| 懂色av噜噜一区二区三区av| 久久久久久夜精品精品免费| 国产一区二区三区在线观看免费视频 | 欧美色男人天堂| 一区二区三区免费在线观看| 97精品久久久午夜一区二区三区 | 91蜜桃视频在线| 国产精品传媒视频| 91麻豆精东视频| 一区二区三区免费在线观看| 欧美亚洲国产bt| 日韩影院免费视频| 欧美一区二区私人影院日本| 日本系列欧美系列| 欧美一区二区福利在线| 狠狠色丁香婷婷综合| 久久久久久久久久电影| 成人久久视频在线观看| 一色桃子久久精品亚洲| 91国偷自产一区二区三区观看 | 欧美一级午夜免费电影| 久久成人免费电影| 欧美极品xxx| 91视频你懂的| 亚洲国产精品久久久久婷婷884| 欧美在线视频日韩| 蜜臀av性久久久久蜜臀aⅴ四虎| 久久青草欧美一区二区三区| 成人免费高清在线观看| 亚洲欧美日韩一区二区| 欧美精品色综合| 国产一区二区三区精品视频| 国产精品美女一区二区在线观看| 99久久国产综合精品女不卡| 亚洲成精国产精品女| 久久久美女毛片| 99久久久精品免费观看国产蜜| 亚洲一二三区在线观看| 欧美成人三级在线| 91最新地址在线播放| 奇米精品一区二区三区在线观看一| 精品久久久久久无| 91麻豆蜜桃一区二区三区| 日韩激情一二三区| 国产精品视频九色porn| 欧美欧美欧美欧美首页| 国产成人免费视频| 天天av天天翘天天综合网色鬼国产| 久久久精品免费免费| 欧美性生活一区| 国产一区二区视频在线播放| 一区二区国产盗摄色噜噜| 亚洲精品一区二区三区影院| 色婷婷久久久亚洲一区二区三区| 九色|91porny| 亚洲国产成人av| 日本一区二区视频在线| 欧美日本一区二区三区四区| 国产ts人妖一区二区| 日本亚洲电影天堂| 亚洲另类春色国产| 久久精品亚洲一区二区三区浴池| 欧美日韩亚洲综合在线 | 国产精品天天摸av网| 欧美美女黄视频| 不卡电影一区二区三区| 黄色资源网久久资源365| 亚洲精品国产高清久久伦理二区| 精品福利在线导航| 5858s免费视频成人| 色综合色综合色综合| 国产精品亚洲人在线观看|