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

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

?? block_functions.c

?? tmn3.2編解碼源程序 Linux C環境編寫 文件齊全 壓縮包完整 試用正常 歡迎試用
?? C
?? 第 1 頁 / 共 2 頁
字號:
                   int width, int min_sofar){  int i, sad = 0;  unsigned char *ll, *kk;  kk = aa;  ll = bb;  i = 16;  while (i--)  {    sad += (abs (*ii - ((*kk + *ll) >> 1)) +            abs (*(ii + 1) - ((*(kk + 1) + *(ll + 1)) >> 1)) +            abs (*(ii + 2) - ((*(kk + 2) + *(ll + 2)) >> 1)) +            abs (*(ii + 3) - ((*(kk + 3) + *(ll + 3)) >> 1)) +            abs (*(ii + 4) - ((*(kk + 4) + *(ll + 4)) >> 1)) +            abs (*(ii + 5) - ((*(kk + 5) + *(ll + 5)) >> 1)) +            abs (*(ii + 6) - ((*(kk + 6) + *(ll + 6)) >> 1)) +            abs (*(ii + 7) - ((*(kk + 7) + *(ll + 7)) >> 1)) +            abs (*(ii + 8) - ((*(kk + 8) + *(ll + 8)) >> 1)) +            abs (*(ii + 9) - ((*(kk + 9) + *(ll + 9)) >> 1)) +            abs (*(ii + 10) - ((*(kk + 10) + *(ll + 10)) >> 1)) +            abs (*(ii + 11) - ((*(kk + 11) + *(ll + 11)) >> 1)) +            abs (*(ii + 12) - ((*(kk + 12) + *(ll + 12)) >> 1)) +            abs (*(ii + 13) - ((*(kk + 13) + *(ll + 13)) >> 1)) +            abs (*(ii + 14) - ((*(kk + 14) + *(ll + 14)) >> 1)) +            abs (*(ii + 15) - ((*(kk + 15) + *(ll + 15)) >> 1)));    ii += width;    kk += width;    ll += width;    if (sad > min_sofar)      return INT_MAX;  }  return sad;}int SAD_MB_integer (int *ii, int *act_block, int h_length, int min_sofar){  int i, sad = 0, *kk;  kk = act_block;  i = 16;  while (i--)  {    sad += (abs (*ii - *kk) + abs (*(ii + 1) - *(kk + 1))            + abs (*(ii + 2) - *(kk + 2)) + abs (*(ii + 3) - *(kk + 3))            + abs (*(ii + 4) - *(kk + 4)) + abs (*(ii + 5) - *(kk + 5))            + abs (*(ii + 6) - *(kk + 6)) + abs (*(ii + 7) - *(kk + 7))            + abs (*(ii + 8) - *(kk + 8)) + abs (*(ii + 9) - *(kk + 9))          + abs (*(ii + 10) - *(kk + 10)) + abs (*(ii + 11) - *(kk + 11))          + abs (*(ii + 12) - *(kk + 12)) + abs (*(ii + 13) - *(kk + 13))        + abs (*(ii + 14) - *(kk + 14)) + abs (*(ii + 15) - *(kk + 15)));    ii += h_length;    kk += 16;    if (sad > min_sofar)      return INT_MAX;  }  return sad;}/********************************************************************** * *	Name:        FindMB *	Description:	Picks out one MB from picture * *	Input:        position of MB to pick out, *        pointer to frame data, empty 16x16 array *	Returns: *	Side effects:	fills array with MB data * *	Date: 930119	Author: Karl Olav Lillevold * ***********************************************************************/void FindMB (int x, int y, unsigned char *image, int MB[16][16]){  int n;  register int m;  for (n = 0; n < MB_SIZE; n++)    for (m = 0; m < MB_SIZE; m++)      MB[n][m] = *(image + x + m + (y + n) * pels);}/********************************************************************** * *	Name:        FindPred *	Description:	Find the prediction block * *	Input:        position, vector, array for prediction *        pointer to previous interpolated luminance, * *	Side effects:	fills array with prediction * *	Date: 930126        Author: Karl.Lillevold@nta.no *            950208    Mod: Karl.Lillevold@nta.no * ***********************************************************************/void FindPred (int x, int y, MotionVector * fr, unsigned char *prev,               int *pred, int bs, int comp){  int m, n;  int new_x, new_y;  int lx;  lx = (mv_outside_frame ? pels + (long_vectors ? 64 : 32) : pels);  new_x = x + fr->x;  new_y = y + fr->y;  new_x += ((comp & 1) << 3);  new_y += ((comp & 2) << 2);  /* Fill pred. data */  for (n = 0; n < bs; n++)  {    for (m = 0; m < bs; m++)    {      /* Find interpolated pixel-value */      *(pred + m + n * 16) = *(prev + (new_x + m) * 2 + fr->x_half +                               ((new_y + n) * 2 + fr->y_half) * lx * 2);    }  }  return;}/********************************************************************** * *	Name:        FindPredOBMC *	Description:	Find the OBMC prediction block * *	Input:        position, vector, array for prediction *        pointer to previous interpolated luminance, * *	Returns: *	Side effects:	fills array with prediction * *	Date: 950209        Author: Karl.Lillevold@nta.no * ***********************************************************************/void FindPredOBMC (int x, int y, MotionVector * MV[6][MBR + 1][MBC + 2],                   unsigned char *prev, int *pred, int comp, int PB){  int m, n;  int pc, pt, pb, pr, pl;  int nxc, nxt, nxb, nxr, nxl;  int nyc, nyt, nyb, nyr, nyl;  int xit, xib, xir, xil;  int yit, yib, yir, yil;  int vect, vecb, vecr, vecl;  int c8, t8, l8, r8;  int ti8, li8, ri8;  int xmb, ymb, lx;  MotionVector *fc, *ft, *fb, *fr, *fl;  int Mc[8][8] = {    {4, 5, 5, 5, 5, 5, 5, 4},    {5, 5, 5, 5, 5, 5, 5, 5},    {5, 5, 6, 6, 6, 6, 5, 5},    {5, 5, 6, 6, 6, 6, 5, 5},    {5, 5, 6, 6, 6, 6, 5, 5},    {5, 5, 6, 6, 6, 6, 5, 5},    {5, 5, 5, 5, 5, 5, 5, 5},    {4, 5, 5, 5, 5, 5, 5, 4},  };  int Mt[8][8] = {    {2, 2, 2, 2, 2, 2, 2, 2},    {1, 1, 2, 2, 2, 2, 1, 1},    {1, 1, 1, 1, 1, 1, 1, 1},    {1, 1, 1, 1, 1, 1, 1, 1},    {0, 0, 0, 0, 0, 0, 0, 0},    {0, 0, 0, 0, 0, 0, 0, 0},    {0, 0, 0, 0, 0, 0, 0, 0},    {0, 0, 0, 0, 0, 0, 0, 0},  };  int Mb[8][8] = {    {0, 0, 0, 0, 0, 0, 0, 0},    {0, 0, 0, 0, 0, 0, 0, 0},    {0, 0, 0, 0, 0, 0, 0, 0},    {0, 0, 0, 0, 0, 0, 0, 0},    {1, 1, 1, 1, 1, 1, 1, 1},    {1, 1, 1, 1, 1, 1, 1, 1},    {1, 1, 2, 2, 2, 2, 1, 1},    {2, 2, 2, 2, 2, 2, 2, 2},  };  int Mr[8][8] = {    {0, 0, 0, 0, 1, 1, 1, 2},    {0, 0, 0, 0, 1, 1, 2, 2},    {0, 0, 0, 0, 1, 1, 2, 2},    {0, 0, 0, 0, 1, 1, 2, 2},    {0, 0, 0, 0, 1, 1, 2, 2},    {0, 0, 0, 0, 1, 1, 2, 2},    {0, 0, 0, 0, 1, 1, 2, 2},    {0, 0, 0, 0, 1, 1, 1, 2},  };  int Ml[8][8] = {    {2, 1, 1, 1, 0, 0, 0, 0},    {2, 2, 1, 1, 0, 0, 0, 0},    {2, 2, 1, 1, 0, 0, 0, 0},    {2, 2, 1, 1, 0, 0, 0, 0},    {2, 2, 1, 1, 0, 0, 0, 0},    {2, 2, 1, 1, 0, 0, 0, 0},    {2, 2, 1, 1, 0, 0, 0, 0},    {2, 1, 1, 1, 0, 0, 0, 0},  };  xmb = x / MB_SIZE + 1;  ymb = y / MB_SIZE + 1;  lx = (mv_outside_frame ? pels + (long_vectors ? 64 : 32) : pels);  c8 = (MV[0][ymb][xmb]->Mode == MODE_INTER4V ? 1 : 0);  c8 = (MV[0][ymb][xmb]->Mode == MODE_INTER4V_Q ? 1 : c8);  t8 = (MV[0][ymb - 1][xmb]->Mode == MODE_INTER4V ? 1 : 0);  t8 = (MV[0][ymb - 1][xmb]->Mode == MODE_INTER4V_Q ? 1 : t8);  ti8 = (MV[0][ymb - 1][xmb]->Mode == MODE_INTRA ? 1 : 0);  ti8 = (MV[0][ymb - 1][xmb]->Mode == MODE_INTRA_Q ? 1 : ti8);  l8 = (MV[0][ymb][xmb - 1]->Mode == MODE_INTER4V ? 1 : 0);  l8 = (MV[0][ymb][xmb - 1]->Mode == MODE_INTER4V_Q ? 1 : l8);  li8 = (MV[0][ymb][xmb - 1]->Mode == MODE_INTRA ? 1 : 0);  li8 = (MV[0][ymb][xmb - 1]->Mode == MODE_INTRA_Q ? 1 : li8);  r8 = (MV[0][ymb][xmb + 1]->Mode == MODE_INTER4V ? 1 : 0);  r8 = (MV[0][ymb][xmb + 1]->Mode == MODE_INTER4V_Q ? 1 : r8);  ri8 = (MV[0][ymb][xmb + 1]->Mode == MODE_INTRA ? 1 : 0);  ri8 = (MV[0][ymb][xmb + 1]->Mode == MODE_INTRA_Q ? 1 : ri8);  if (PB)  {    ti8 = li8 = ri8 = 0;  }  switch (comp + 1)  {    case 1:      vect = (ti8 ? (c8 ? 1 : 0) : (t8 ? 3 : 0));      yit = (ti8 ? ymb : ymb - 1);      xit = xmb;      vecb = (c8 ? 3 : 0);      yib = ymb;      xib = xmb;      vecl = (li8 ? (c8 ? 1 : 0) : (l8 ? 2 : 0));      yil = ymb;      xil = (li8 ? xmb : xmb - 1);      vecr = (c8 ? 2 : 0);      yir = ymb;      xir = xmb;      /* edge handling */      if (ymb == 1)      {        yit = ymb;        vect = (c8 ? 1 : 0);      }      if (xmb == 1)      {        xil = xmb;        vecl = (c8 ? 1 : 0);      }      break;    case 2:      vect = (ti8 ? (c8 ? 2 : 0) : (t8 ? 4 : 0));      yit = (ti8 ? ymb : ymb - 1);      xit = xmb;      vecb = (c8 ? 4 : 0);      yib = ymb;      xib = xmb;      vecl = (c8 ? 1 : 0);      yil = ymb;      xil = xmb;      vecr = (ri8 ? (c8 ? 2 : 0) : (r8 ? 1 : 0));      yir = ymb;      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:        MB_Reconstruct *	Description:    Reconstructs the macroblock by using *                  previously calculated prediction array * *	Input:	        pointers prediction diff and prediction arrays *	Returns:        pointer to reconstructed MB data *	Side effects:   allocates memory to MB_structure * *	Date: 97/06/23        Author: Berna Erol <bernae@ee.ubc.ca> * ***********************************************************************/MB_Structure *MB_Reconstruct (MB_Structure * diff, MB_Structure * pred){  int i, j;  MB_Structure *recon = (MB_Structure *) malloc (sizeof (MB_Structure));  /* Reconstruction */  for (j = 0; j < MB_SIZE; j++)    for (i = 0; i < MB_SIZE; i++)      recon->lum[j][i] = pred->lum[j][i] + diff->lum[j][i];  for (j = 0; j < MB_SIZE >> 1; j++)    for (i = 0; i < MB_SIZE >> 1; i++)    {      recon->Cr[j][i] = pred->Cr[j][i] + diff->Cr[j][i];      recon->Cb[j][i] = pred->Cb[j][i] + diff->Cb[j][i];    }  return recon;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人午夜伦理影院| 色婷婷综合五月| 亚洲精品日日夜夜| 精品久久久久久久久久久久包黑料 | 日韩欧美综合一区| 不卡一区二区三区四区| 日韩国产高清影视| 亚洲青青青在线视频| 久久久久综合网| 欧美精品aⅴ在线视频| 成人福利电影精品一区二区在线观看| 亚洲成a人v欧美综合天堂下载| 2020国产精品自拍| 欧美一区二区日韩一区二区| 色香色香欲天天天影视综合网| 国产精品亚洲午夜一区二区三区| 亚洲高清中文字幕| 亚洲欧美视频一区| 中文在线资源观看网站视频免费不卡| 日韩欧美在线网站| 欧美欧美午夜aⅴ在线观看| 99九九99九九九视频精品| 国产一区二区精品久久99| 午夜精品爽啪视频| 亚洲香蕉伊在人在线观| 亚洲男人的天堂一区二区 | 久久久99精品久久| 日韩欧美国产系列| 在线不卡的av| 欧美男女性生活在线直播观看| av在线播放成人| 成人免费看视频| 国产成人免费在线观看| 国产精品亚洲第一| 国产传媒日韩欧美成人| 国产精品一区在线观看乱码| 国产在线播精品第三| 久久99蜜桃精品| 国内精品伊人久久久久av一坑| 伦理电影国产精品| 国产在线一区二区综合免费视频| 免费一级欧美片在线观看| 七七婷婷婷婷精品国产| 美国一区二区三区在线播放| 韩国av一区二区三区四区| 麻豆精品一区二区| 激情综合网激情| 国产成人亚洲综合a∨猫咪| 国产精品一二三区在线| 粉嫩绯色av一区二区在线观看| 成人v精品蜜桃久久一区| 成人的网站免费观看| 日本韩国一区二区| 欧美日韩免费观看一区二区三区| 欧美日韩国产123区| 日韩女优电影在线观看| 精品国产免费人成电影在线观看四季| 亚洲精品在线观看网站| 国产日韩av一区二区| 国产精品超碰97尤物18| 亚洲免费av高清| 日韩国产欧美视频| 国内精品嫩模私拍在线| zzijzzij亚洲日本少妇熟睡| 在线免费观看成人短视频| 91麻豆精品国产自产在线 | 欧美手机在线视频| 欧美理论片在线| xnxx国产精品| 日韩美女视频一区| 午夜欧美视频在线观看| 国产裸体歌舞团一区二区| 成人av电影在线网| 这里只有精品免费| 中文字幕欧美区| 亚洲一卡二卡三卡四卡| 国产资源在线一区| 在线亚洲欧美专区二区| 日韩美女一区二区三区四区| 国产精品网站一区| 日韩精品免费专区| 成人av免费在线播放| 日韩一区二区三区在线| 中文字幕在线免费不卡| 欧美a一区二区| av激情成人网| 日韩一区二区三区在线观看| 亚洲色图制服丝袜| 久久99国产精品久久99果冻传媒| 91麻豆高清视频| 精品少妇一区二区| 亚洲一区二区精品久久av| 国产河南妇女毛片精品久久久| 欧美老女人在线| 中文字幕亚洲欧美在线不卡| 麻豆成人综合网| 色狠狠一区二区三区香蕉| 国产午夜三级一区二区三| 午夜欧美视频在线观看| 91免费看视频| 国产女人aaa级久久久级| 青椒成人免费视频| 91福利区一区二区三区| 国产精品女人毛片| 国产资源精品在线观看| 欧美一区二区三区视频在线| 夜夜嗨av一区二区三区四季av | 粉嫩aⅴ一区二区三区四区| 欧美一二三区在线| 午夜成人免费电影| 91视频91自| 中文字幕不卡的av| 国产一区二区三区在线观看免费视频| 7799精品视频| 亚洲午夜在线电影| 色噜噜狠狠成人网p站| 中文字幕亚洲欧美在线不卡| 国产成人精品一区二| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 成人免费视频一区二区| 欧美精品一区二区在线播放| 麻豆精品久久精品色综合| 欧美高清精品3d| 亚洲午夜三级在线| 欧美视频三区在线播放| 一卡二卡三卡日韩欧美| 91久久精品国产91性色tv| 亚洲欧美影音先锋| 91在线云播放| 亚洲欧美一区二区三区久本道91| 高清成人在线观看| 国产免费久久精品| 国产99一区视频免费| 国产日韩影视精品| 国产91丝袜在线18| 国产精品午夜免费| 成人h动漫精品| 中文字幕一区二区三区不卡在线 | 在线观看一区日韩| 亚洲乱码中文字幕综合| 色婷婷av一区二区三区大白胸| 亚洲欧美国产77777| 欧美性生活大片视频| 天天影视涩香欲综合网| 6080国产精品一区二区| 老司机午夜精品| 精品成a人在线观看| 国产精品88888| 国产日韩欧美不卡在线| av电影天堂一区二区在线 | 国产高清在线观看免费不卡| 国产欧美精品国产国产专区| 99re热视频精品| 亚洲午夜久久久久久久久电影院| 777久久久精品| 黄色小说综合网站| 国产欧美日本一区视频| 91小宝寻花一区二区三区| 亚洲成人av一区| 精品免费日韩av| 不卡一区二区三区四区| 亚洲小说春色综合另类电影| 日韩欧美中文字幕制服| 国产精品一区在线| 一区二区三区日韩精品视频| 欧美酷刑日本凌虐凌虐| 国产精品一二一区| 亚洲欧美日韩国产一区二区三区 | 精品国产乱码久久久久久牛牛| 高清不卡在线观看| 亚洲va韩国va欧美va| 久久久综合视频| 色欧美片视频在线观看在线视频| 日本91福利区| 国产精品国产三级国产| 在线播放亚洲一区| 国产suv一区二区三区88区| 亚洲一本大道在线| 国产三级精品视频| 欧美精品免费视频| 国产成人av影院| 日韩精品一区第一页| 国产精品毛片a∨一区二区三区| 欧美日韩精品一区二区三区蜜桃| 国产精品一二三| 午夜精品影院在线观看| 国产精品视频麻豆| 7777精品伊人久久久大香线蕉完整版 | 91精品国产综合久久久久久| 成人在线综合网站| 青青草国产成人av片免费| 中文字幕亚洲综合久久菠萝蜜| 日韩一区二区三区在线观看| 91啦中文在线观看| 国产一区福利在线| 午夜精品aaa| 亚洲欧美一区二区三区极速播放| 精品久久五月天| 欧美麻豆精品久久久久久| 99在线热播精品免费|