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

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

?? p_picture.c

?? tmn3.2編解碼源程序 Linux C環(huán)境編寫 文件齊全 壓縮包完整 試用正常 歡迎試用
?? C
?? 第 1 頁 / 共 5 頁
字號:
      /* round values according to TABLE 16/H.263 */      dx = sign (xvec) * (roundtab[abs (xvec) % 16] + (abs (xvec) / 16) * 2);      dy = sign (yvec) * (roundtab[abs (yvec) % 16] + (abs (yvec) / 16) * 2);      FindChromBlock_P (x, y, dx, dy, prev_image, pred, 0);      /* chroma vectors are sum of B luma vectors divided and rounded */      xvec = yvec = 0;      for (k = 1; k <= 4; k++)      {        mvx = 2 * f[k]->x + f[k]->x_half;        mvy = 2 * f[k]->y + f[k]->y_half;        xvec += bdx == 0 ? (TRB - TRD) * mvx / TRD : TRB * mvx / TRD + bdx - mvx;        yvec += bdy == 0 ? (TRB - TRD) * mvy / TRD : TRB * mvy / TRD + bdy - mvy;      }      /* round values according to TABLE 16/H.263 */      dx = sign (xvec) * (roundtab[abs (xvec) % 16] + (abs (xvec) / 16) * 2);      dy = sign (yvec) * (roundtab[abs (yvec) % 16] + (abs (yvec) / 16) * 2);      FindBiDirChrPredPB (recon_P, dx, dy, pred);    }     else    {      xvec = 4 * (TRB * (2 * f[0]->x + f[0]->x_half) / TRD + bdx);      yvec = 4 * (TRB * (2 * f[0]->y + f[0]->y_half) / TRD + bdy);      /* round values according to TABLE 16/H.263 */      dx = sign (xvec) * (roundtab[abs (xvec) % 16] + (abs (xvec) / 16) * 2);      dy = sign (yvec) * (roundtab[abs (yvec) % 16] + (abs (yvec) / 16) * 2);      /* chroma vectors */      FindChromBlock_P (x, y, dx, dy, prev_image, pred, 0);      mvx = 2 * f[0]->x + f[0]->x_half;      xvec = bdx == 0 ? (TRB - TRD) * mvx / TRD : TRB * mvx / TRD + bdx - mvx;      xvec *= 4;      mvy = 2 * f[0]->y + f[0]->y_half;      yvec = bdy == 0 ? (TRB - TRD) * mvy / TRD : TRB * mvy / TRD + bdy - mvy;      yvec *= 4;      /* round values according to TABLE 16/H.263 */      dx = sign (xvec) * (roundtab[abs (xvec) % 16] + (abs (xvec) / 16) * 2);      dy = sign (yvec) * (roundtab[abs (yvec) % 16] + (abs (yvec) / 16) * 2);      FindBiDirChrPredPB (recon_P, dx, dy, pred);    }    /* Do the actual prediction */    for (j = 0; j < MB_SIZE; j++)      for (i = 0; i < MB_SIZE; i++)      {        p_err->lum[j][i] = *(curr_image->lum + x + i + (y + j) * pels) - pred->lum[j][i];        pred_macroblock->lum[j][i] = pred->lum[j][i];      }    xx = x >> 1;    yy = y >> 1;    for (j = 0; j < MB_SIZE >> 1; j++)      for (i = 0; i < MB_SIZE >> 1; i++)      {        p_err->Cr[j][i] = *(curr_image->Cr + xx + i + (yy + j) * cpels) - pred->Cr[j][i];        p_err->Cb[j][i] = *(curr_image->Cb + xx + i + (yy + j) * cpels) - pred->Cb[j][i];        pred_macroblock->Cr[j][i] = pred->Cr[j][i];        pred_macroblock->Cb[j][i] = pred->Cb[j][i];      }  }  /* store PB-deltas */  MV[6][y / MB_SIZE + 1][x / MB_SIZE + 1]->x = bdx; /* is in half pel format */  MV[6][y / MB_SIZE + 1][x / MB_SIZE + 1]->y = bdy;  MV[6][y / MB_SIZE + 1][x / MB_SIZE + 1]->x_half = 0;  MV[6][y / MB_SIZE + 1][x / MB_SIZE + 1]->y_half = 0;  free (pred);  free (frw_pred);  return p_err;}/*********************************************************************** * *	Name:        MB_Recon_B *	Description:    Reconstructs the B macroblock in PB-frame *                      prediction * *	Input:	        pointers previous recon. frame, pred. diff., *                      pos. in image, MV-data, reconstructed macroblock *                      from image ahead *	Returns:        pointer to reconstructed MB data *	Side effects:   allocates memory to MB_structure * *	Date: 950114        Author: Karl.Lillevold@nta.no * ***********************************************************************/MB_Structure *MB_Recon_B (PictImage * prev_image, MB_Structure * diff,                           unsigned char *prev_ipol, int x, int y,                           MotionVector * MV[5][MBR + 1][MBC + 2],                           MB_Structure * recon_P, int TRD, int TRB){  int i, j, k;  int dx, dy, bdx, bdy, mvx, mvy, xvec, yvec;  MB_Structure *recon_B = (MB_Structure *) malloc (sizeof (MB_Structure));  MB_Structure *pred = (MB_Structure *) malloc (sizeof (MB_Structure));  MotionVector *f[5];  for (k = 0; k <= 4; k++)    f[k] = MV[k][y / MB_SIZE + 1][x / MB_SIZE + 1];  bdx = MV[6][y / MB_SIZE + 1][x / MB_SIZE + 1]->x;  bdy = MV[6][y / MB_SIZE + 1][x / MB_SIZE + 1]->y;  if (f[0]->Mode == MODE_INTER4V || f[0]->Mode == MODE_INTER4V_Q)  {                             /* Mode INTER4V */    /* Find forward prediction */    /* Luma */    FindForwLumPredPB (prev_ipol, x, y, f[1], &pred->lum[0][0], TRD, TRB, bdx, bdy, 8, 0);    FindForwLumPredPB (prev_ipol, x, y, f[2], &pred->lum[0][8], TRD, TRB, bdx, bdy, 8, 1);    FindForwLumPredPB (prev_ipol, x, y, f[3], &pred->lum[8][0], TRD, TRB, bdx, bdy, 8, 2);    FindForwLumPredPB (prev_ipol, x, y, f[4], &pred->lum[8][8], TRD, TRB, bdx, bdy, 8, 3);    /* chroma vectors are sum of B luma vectors divided and rounded */    xvec = yvec = 0;    for (k = 1; k <= 4; k++)    {      xvec += TRB * (2 * f[k]->x + f[k]->x_half) / TRD + bdx;      yvec += TRB * (2 * f[k]->y + f[k]->y_half) / TRD + bdy;    }    /* round values according to TABLE 16/H.263 */    dx = sign (xvec) * (roundtab[abs (xvec) % 16] + (abs (xvec) / 16) * 2);    dy = sign (yvec) * (roundtab[abs (yvec) % 16] + (abs (yvec) / 16) * 2);    FindChromBlock_P (x, y, dx, dy, prev_image, pred, 0);    /* Find bidirectional prediction */    FindBiDirLumPredPB (&recon_P->lum[0][0], f[1], &pred->lum[0][0],                        TRD, TRB, bdx, bdy, 0, 0);    FindBiDirLumPredPB (&recon_P->lum[0][8], f[2], &pred->lum[0][8],                        TRD, TRB, bdx, bdy, 1, 0);    FindBiDirLumPredPB (&recon_P->lum[8][0], f[3], &pred->lum[8][0],                        TRD, TRB, bdx, bdy, 0, 1);    FindBiDirLumPredPB (&recon_P->lum[8][8], f[4], &pred->lum[8][8],                        TRD, TRB, bdx, bdy, 1, 1);    /* chroma vectors are sum of B luma vectors divided and rounded */    xvec = yvec = 0;    for (k = 1; k <= 4; k++)    {      mvx = 2 * f[k]->x + f[k]->x_half;      mvy = 2 * f[k]->y + f[k]->y_half;      xvec += bdx == 0 ? (TRB - TRD) * mvx / TRD : TRB * mvx / TRD + bdx - mvx;      yvec += bdy == 0 ? (TRB - TRD) * mvy / TRD : TRB * mvy / TRD + bdy - mvy;    }    /* round values according to TABLE 16/H.263 */    dx = sign (xvec) * (roundtab[abs (xvec) % 16] + (abs (xvec) / 16) * 2);    dy = sign (yvec) * (roundtab[abs (yvec) % 16] + (abs (yvec) / 16) * 2);    FindBiDirChrPredPB (recon_P, dx, dy, pred);  } else  {                             /* Mode INTER or INTER_Q */    /* Find forward prediction */    FindForwLumPredPB (prev_ipol, x, y, f[0], &pred->lum[0][0], TRD, TRB,                       bdx, bdy, 16, 0);    xvec = 4 * (TRB * (2 * f[0]->x + f[0]->x_half) / TRD + bdx);    yvec = 4 * (TRB * (2 * f[0]->y + f[0]->y_half) / TRD + bdy);    /* round values according to TABLE 16/H.263 */    dx = sign (xvec) * (roundtab[abs (xvec) % 16] + (abs (xvec) / 16) * 2);    dy = sign (yvec) * (roundtab[abs (yvec) % 16] + (abs (yvec) / 16) * 2);    FindChromBlock_P (x, y, dx, dy, prev_image, pred, 0);    /* Find bidirectional prediction */    FindBiDirLumPredPB (&recon_P->lum[0][0], f[0], &pred->lum[0][0],                        TRD, TRB, bdx, bdy, 0, 0);    FindBiDirLumPredPB (&recon_P->lum[0][8], f[0], &pred->lum[0][8],                        TRD, TRB, bdx, bdy, 1, 0);    FindBiDirLumPredPB (&recon_P->lum[8][0], f[0], &pred->lum[8][0],                        TRD, TRB, bdx, bdy, 0, 1);    FindBiDirLumPredPB (&recon_P->lum[8][8], f[0], &pred->lum[8][8],                        TRD, TRB, bdx, bdy, 1, 1);    /* chroma vectors */    mvx = 2 * f[0]->x + f[0]->x_half;    xvec = bdx == 0 ? (TRB - TRD) * mvx / TRD : TRB * mvx / TRD + bdx - mvx;    xvec *= 4;    mvy = 2 * f[0]->y + f[0]->y_half;    yvec = bdy == 0 ? (TRB - TRD) * mvy / TRD : TRB * mvy / TRD + bdy - mvy;    yvec *= 4;    /* round values according to TABLE 16/H.263 */    dx = sign (xvec) * (roundtab[abs (xvec) % 16] + (abs (xvec) / 16) * 2);    dy = sign (yvec) * (roundtab[abs (yvec) % 16] + (abs (yvec) / 16) * 2);    FindBiDirChrPredPB (recon_P, dx, dy, pred);  }  /* Reconstruction */  for (j = 0; j < MB_SIZE; j++)    for (i = 0; i < MB_SIZE; i++)      recon_B->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_B->Cr[j][i] = pred->Cr[j][i] + diff->Cr[j][i];      recon_B->Cb[j][i] = pred->Cb[j][i] + diff->Cb[j][i];    }  free (pred);  return recon_B;}/********************************************************************** * *	Name:	       FindForwLumPredPB *	Description:   Finds the forward luma  prediction in PB-frame *                     pred. * *	Input:	       pointer to prev. recon. frame, current positon, *                     MV structure and pred. structure to fill * *	Date: 950114        Author: Karl.Lillevold@nta.no * ***********************************************************************/void FindForwLumPredPB (unsigned char *prev_ipol, int x_curr, int y_curr,                         MotionVector * fr, int *pred, int TRD, int TRB,                         int bdx, int bdy, int bs, int comp){  int i, j;  int xvec, yvec, lx;  lx = (mv_outside_frame ? pels + (long_vectors ? 64 : 32) : pels);  /* Luma */  xvec = (TRB) * (2 * fr->x + fr->x_half) / TRD + bdx;  yvec = (TRB) * (2 * fr->y + fr->y_half) / TRD + bdy;  x_curr += ((comp & 1) << 3);  y_curr += ((comp & 2) << 2);  for (j = 0; j < bs; j++)  {    for (i = 0; i < bs; i++)    {      *(pred + i + j * 16) = *(prev_ipol + (i + x_curr) * 2 + xvec +                               ((j + y_curr) * 2 + yvec) * lx * 2);    }  }  return;}/********************************************************************** * *	Name:	       FindBiDirLumPredPB *	Description:   Finds the bi-dir. luma prediction in PB-frame *                     prediction * *	Input:	       pointer to future recon. data, current positon, *                     MV structure and pred. structure to fill * *	Date: 950115        Author: Karl.Lillevold@nta.no * ***********************************************************************/void FindBiDirLumPredPB (int *recon_P, MotionVector * fr, int *pred, int TRD,                          int TRB, int bdx, int bdy, int nh, int nv){  int xstart, xstop, ystart, ystop;  int xvec, yvec, mvx, mvy;  mvx = 2 * fr->x + fr->x_half;  mvy = 2 * fr->y + fr->y_half;  xvec = (bdx == 0 ? (TRB - TRD) * mvx / TRD : TRB * mvx / TRD + bdx - mvx);  yvec = (bdy == 0 ? (TRB - TRD) * mvy / TRD : TRB * mvy / TRD + bdy - mvy);  /* Luma */  FindBiDirLimits (xvec, &xstart, &xstop, nh);  FindBiDirLimits (yvec, &ystart, &ystop, nv);  BiDirPredBlock (xstart, xstop, ystart, ystop, xvec, yvec, recon_P, pred, 16);  return;}/********************************************************************** * *	Name:	       FindBiDirChrPredPB *	Description:   Finds the bi-dir. chroma prediction in PB-frame *                     prediction * *	Input:	       pointer to future recon. data, current positon, *                     MV structure and pred. structure to fill * *	Date: 950115        Author: Karl.Lillevold@nta.no * ***********************************************************************/void FindBiDirChrPredPB (MB_Structure * recon_P, int dx, int dy,                          MB_Structure * pred){  int xstart, xstop, ystart, ystop;  FindBiDirChromaLimits (dx, &xstart, &xstop);  FindBiDirChromaLimits (dy, &ystart, &ystop);  BiDirPredBlock (xstart, xstop, ystart, ystop, dx, dy,                  &recon_P->Cb[0][0], &pred->Cb[0][0], 8);  BiDirPredBlock (xstart, xstop, ystart, ystop, dx, dy,                  &recon_P->Cr[0][0], &pred->Cr[0][0], 8);  return;}void FindBiDirLimits (int vec, int *start, int *stop, int nhv){  /* limits taken from C loop in section G5 in H.263 */  *start = mmax (0, (-vec + 1) / 2 - nhv * 8);  *stop = mmin (7, 15 - (vec + 1) / 2 - nhv * 8);  return;}void FindBiDirChromaLimits (int vec, int *start, int *stop){  /* limits taken from C loop in section G5 in H.263 */  *start = mmax (0, (-vec + 1) / 2);  *stop = mmin (7, 7 - (vec + 1) / 2);  return;}void BiDirPredBlock (int xstart, int xstop, int ystart, int ystop,                      int xvec, int yvec, int *recon, int *pred, int bl){  int i, j, pel;  int xint, yint;  int xh, yh;  xint = xvec >> 1;  xh = xvec - 2 * xint;  yint = yvec >> 1;  yh = yvec - 2 * yint;  if (!xh && !yh)  {    for (j = ystart; j <= ystop; j++)    {      for (i = xstart; i <= xstop; i++)      {        pel = *(recon + (j + yint) * bl + i + xint);        *(pred + j * bl + i) = (mmin (255, mmax (0, pel)) + *(pred + j * bl + i)) >> 1;      }    }  } else if (!xh && yh)  {    for (j = ystart; j <= ystop; j++)    {      for (i = xstart; i <= xstop; i++)      {        pel = (*(recon + (j + yint) * bl + i + xint) +               *(recon + (j + yint + yh) * bl + i + xint) + 1) >> 1;        *(pred + j * bl + i) = (pel + *(pred + j * bl + i)) >> 1;      }    }  } else if (xh && !yh)  {    for (j = ystart; j <= ystop; j++)    {      for (i = xstart; i <= xstop; i++)      {        pel = (*(recon + (j + yint) * bl + i + xint) +               *(recon + (j + yint) * bl + i + xint + xh) + 1) >> 1;        *(pred + j * bl + i) = (pel + *(pred + j * bl + i)) >> 1;      }    }  } else  {                             /* xh && yh */    for (j = ystart; j <= ystop; j++)    {      for (i = xstart; i <= xstop; i++)      {        pel = (*(recon + (j + yint) * bl + i + xint) +               *(recon + (j + yint + yh) * bl + i + xint) +               *(recon + (j + yint) * bl + i + xint + xh) +               *(recon + (j + yint + yh) * bl + i + xint + xh) + 2) >> 2;        *(pred + j * bl + i) = (pel + *(pred + j * bl + i)) >> 1;      }    }  }  return;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品对白交换视频| 亚洲麻豆国产自偷在线| 又紧又大又爽精品一区二区| 国产精品一区二区免费不卡| 337p粉嫩大胆色噜噜噜噜亚洲 | 99在线精品观看| 国产精品久久毛片av大全日韩| 成人开心网精品视频| 国产精品美女久久久久久| 成人一区二区在线观看| 亚洲国产精品精华液ab| 91免费观看国产| 亚洲丰满少妇videoshd| 精品乱码亚洲一区二区不卡| 国产精品99久| 一区二区三区四区不卡在线| 欧美一区二区视频观看视频| 久久99深爱久久99精品| 国产亚洲婷婷免费| 欧美亚洲免费在线一区| 日本三级韩国三级欧美三级| 中文在线资源观看网站视频免费不卡| 色综合久久中文字幕| 免费成人在线视频观看| 中文字幕永久在线不卡| 欧美精品三级日韩久久| av电影天堂一区二区在线| 亚洲成av人片观看| 中文字幕永久在线不卡| 欧美不卡一二三| 欧美日本一区二区在线观看| 丁香婷婷深情五月亚洲| 日本视频一区二区三区| 中文字幕亚洲成人| 久久综合久久鬼色中文字| 欧美专区亚洲专区| 91丨porny丨国产入口| 国产精品一区二区果冻传媒| 亚洲国产日产av| 亚洲免费在线视频一区 二区| 久久丝袜美腿综合| 欧美日韩国产综合视频在线观看| 成人国产免费视频| 国产精品 日产精品 欧美精品| 乱一区二区av| 美女视频第一区二区三区免费观看网站 | 91麻豆精品国产自产在线 | 99久久综合狠狠综合久久| 麻豆精品精品国产自在97香蕉| 一区二区三区高清| 亚洲一区在线观看网站| 亚洲午夜免费视频| 五月激情丁香一区二区三区| 亚洲制服丝袜一区| 日韩制服丝袜av| 久久不见久久见免费视频1| 蜜桃av一区二区| 国产精品77777| 99久久精品免费看国产 | 久久精品99国产精品日本| 精品日韩一区二区三区| 91伊人久久大香线蕉| av网站一区二区三区| 本田岬高潮一区二区三区| 99精品久久只有精品| 91免费版在线| 91麻豆精品国产自产在线 | 国产98色在线|日韩| 91天堂素人约啪| 欧美肥妇bbw| 日韩精品中文字幕在线不卡尤物| 亚洲精品一区二区三区影院| 中文字幕乱码日本亚洲一区二区| 欧美国产在线观看| 天堂成人免费av电影一区| 国产又黄又大久久| 欧美午夜精品电影| 日韩一级片网址| 亚洲一区二区黄色| 粉嫩在线一区二区三区视频| 91视频观看免费| 精品国产一区二区三区久久久蜜月| 91精品啪在线观看国产60岁| 中文在线资源观看网站视频免费不卡| 亚洲激情图片一区| 国产自产v一区二区三区c| av一区二区三区黑人| 国产午夜亚洲精品午夜鲁丝片| 一区二区欧美视频| 国产成人鲁色资源国产91色综 | 91网站视频在线观看| 精品国产伦一区二区三区观看体验| 国产精品嫩草影院com| 午夜一区二区三区视频| 色综合天天视频在线观看| 久久久久久久久久久99999| 久久国产福利国产秒拍| 欧美日韩高清在线播放| 亚洲品质自拍视频| 成人avav在线| 国产精品久久一卡二卡| 成人理论电影网| 亚洲激情自拍偷拍| 欧美色倩网站大全免费| 亚洲一区在线视频| 91麻豆精品国产自产在线| 久久精品国产第一区二区三区| 91精品免费观看| 另类小说图片综合网| 欧美精品一区二区三| 韩国av一区二区三区在线观看| 欧美成人性福生活免费看| 国产激情一区二区三区| 久久精品男人的天堂| 成人小视频在线观看| 伊人婷婷欧美激情| 欧美日韩一区高清| 九九精品视频在线看| 国产婷婷色一区二区三区| av亚洲产国偷v产偷v自拍| 亚洲成人资源网| 久久久久久黄色| 在线观看国产一区二区| 热久久免费视频| 中文字幕一区二区不卡| 欧美嫩在线观看| 色综合久久九月婷婷色综合| 国产综合成人久久大片91| 亚洲一区在线观看视频| 精品三级av在线| 色天天综合久久久久综合片| 毛片一区二区三区| 亚洲九九爱视频| 国产调教视频一区| 精品国产电影一区二区| 在线播放91灌醉迷j高跟美女| 成人一区二区在线观看| 日韩精品一级中文字幕精品视频免费观看 | 国产欧美一区二区精品秋霞影院| 不卡av电影在线播放| 国产自产高清不卡| 国产自产视频一区二区三区| 午夜成人免费电影| 一区二区三区精品视频| 国产精品久久久久久久久晋中 | 亚洲免费观看高清完整版在线 | 一区二区三区av电影 | 精品国产免费一区二区三区香蕉| 在线视频国内一区二区| 91一区在线观看| 一本色道久久综合亚洲91 | 亚洲色图视频网站| 亚洲视频一区在线| 国产精品国产三级国产普通话蜜臀| 久久久久久久网| 国产亚洲女人久久久久毛片| 精品999久久久| 欧美一区二区三区四区视频| 欧美成人精品二区三区99精品| 日韩视频一区二区三区在线播放 | 麻豆91在线观看| 激情成人午夜视频| 国产mv日韩mv欧美| 不卡一区中文字幕| 欧美亚洲自拍偷拍| 精品国产乱码久久久久久夜甘婷婷| 久久综合视频网| 亚洲视频一区二区免费在线观看| 日韩久久一区二区| 香蕉久久夜色精品国产使用方法 | 日韩欧美一二区| 日韩欧美一区二区视频| 色诱亚洲精品久久久久久| 欧美日韩五月天| 日韩欧美的一区二区| 久久久欧美精品sm网站| 亚洲私人黄色宅男| 日韩国产欧美在线观看| 国产东北露脸精品视频| 欧美日韩成人一区| 亚洲色图欧洲色图婷婷| 粉嫩绯色av一区二区在线观看| 欧美怡红院视频| 国产精品妹子av| 天天做天天摸天天爽国产一区| 久久国产精品区| 欧美私人免费视频| 欧美—级在线免费片| 午夜a成v人精品| 色综合久久久网| 久久久久久麻豆| 久久超级碰视频| 欧美日韩黄色一区二区| 亚洲精品国产精品乱码不99| 色综合一区二区| 亚洲少妇30p| www.久久久久久久久| 日韩一区二区精品葵司在线| 亚洲国产日日夜夜| 欧美亚洲国产一区在线观看网站|