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

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

?? recon.c

?? MPEG2解編碼程序源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
          current_frame,0,Coded_Picture_Width<<1,Coded_Picture_Width<<1,16,16,
          bx,by,PMV[0][1][0],PMV[0][1][1],stwtop);
      }
      else if (motion_type==MC_16X8)
      {
        form_prediction(backward_reference_frame,motion_vertical_field_select[0][1],
          current_frame,0,Coded_Picture_Width<<1,Coded_Picture_Width<<1,16,8,
          bx,by,PMV[0][1][0],PMV[0][1][1],stwtop);

        form_prediction(backward_reference_frame,motion_vertical_field_select[1][1],
          current_frame,0,Coded_Picture_Width<<1,Coded_Picture_Width<<1,16,8,
          bx,by+8,PMV[1][1][0],PMV[1][1][1],stwtop);
      }
      else
        /* invalid motion_type */
        printf("invalid motion_type\n");
    }
  }
}

static void form_prediction(src,sfield,dst,dfield,lx,lx2,w,h,x,y,dx,dy,average_flag)
unsigned char *src[]; /* prediction source buffer */
int sfield;           /* prediction source field number (0 or 1) */
unsigned char *dst[]; /* prediction destination buffer */
int dfield;           /* prediction destination field number (0 or 1)*/
int lx,lx2;           /* line strides */
int w,h;              /* prediction block/sub-block width, height */
int x,y;              /* pixel co-ordinates of top-left sample in current MB */
int dx,dy;            /* horizontal, vertical prediction address */
int average_flag;     /* add prediction error to prediction ? */
{
  /* Y */
  form_component_prediction(src[0]+(sfield?lx2>>1:0),dst[0]+(dfield?lx2>>1:0),
    lx,lx2,w,h,x,y,dx,dy,average_flag);

  if (chroma_format!=CHROMA444)
  {
    lx>>=1; lx2>>=1; w>>=1; x>>=1; dx/=2;
  }

  if (chroma_format==CHROMA420)
  {
    h>>=1; y>>=1; dy/=2;
  }

  /* Cb */
  form_component_prediction(src[1]+(sfield?lx2>>1:0),dst[1]+(dfield?lx2>>1:0),
    lx,lx2,w,h,x,y,dx,dy,average_flag);

  /* Cr */
  form_component_prediction(src[2]+(sfield?lx2>>1:0),dst[2]+(dfield?lx2>>1:0),
    lx,lx2,w,h,x,y,dx,dy,average_flag);
}

/* ISO/IEC 13818-2 section 7.6.4: Forming predictions */
/* NOTE: the arithmetic below produces numerically equivalent results
 *  to 7.6.4, yet is more elegant. It differs in the following ways:
 *
 *   1. the vectors (dx, dy) are based on cartesian frame 
 *      coordiantes along a half-pel grid (always positive numbers)
 *      In contrast, vector[r][s][t] are differential (with positive and 
 *      negative values). As a result, deriving the integer vectors 
 *      (int_vec[t]) from dx, dy is accomplished by a simple right shift.
 *
 *   2. Half pel flags (xh, yh) are equivalent to the LSB (Least
 *      Significant Bit) of the half-pel coordinates (dx,dy).
 * 
 *
 *  NOTE: the work of combining predictions (ISO/IEC 13818-2 section 7.6.7)
 *  is distributed among several other stages.  This is accomplished by 
 *  folding line offsets into the source and destination (src,dst)
 *  addresses (note the call arguments to form_prediction() in Predict()),
 *  line stride variables lx and lx2, the block dimension variables (w,h), 
 *  average_flag, and by the very order in which Predict() is called.  
 *  This implementation design (implicitly different than the spec) 
 *  was chosen for its elegance.
*/

static void form_component_prediction(src,dst,lx,lx2,w,h,x,y,dx,dy,average_flag)
unsigned char *src;
unsigned char *dst;
int lx;          /* raster line increment */ 
int lx2;
int w,h;
int x,y;
int dx,dy;
int average_flag;      /* flag that signals bi-directional or Dual-Prime 
                          averaging (7.6.7.1 and 7.6.7.4). if average_flag==1,
                          a previously formed prediction has been stored in 
                          pel_pred[] */
{
  int xint;      /* horizontal integer sample vector: analogous to int_vec[0] */
  int yint;      /* vertical integer sample vectors: analogous to int_vec[1] */
  int xh;        /* horizontal half sample flag: analogous to half_flag[0]  */
  int yh;        /* vertical half sample flag: analogous to half_flag[1]  */
  int i, j, v;
  unsigned char *s;    /* source pointer: analogous to pel_ref[][]   */
  unsigned char *d;    /* destination pointer:  analogous to pel_pred[][]  */

  /* half pel scaling for integer vectors */
  xint = dx>>1;
  yint = dy>>1;

  /* derive half pel flags */
  xh = dx & 1;
  yh = dy & 1;

  /* compute the linear address of pel_ref[][] and pel_pred[][] 
     based on cartesian/raster cordinates provided */
  s = src + lx*(y+yint) + x + xint;
  d = dst + lx*y + x;

  if (!xh && !yh) /* no horizontal nor vertical half-pel */
  {
    if (average_flag)
    {
      for (j=0; j<h; j++)
      {
        for (i=0; i<w; i++)
        {
          v = d[i]+s[i];
          d[i] = (v+(v>=0?1:0))>>1;
        }
      
        s+= lx2;
        d+= lx2;
      }
    }
    else
    {
      for (j=0; j<h; j++)
      {
        for (i=0; i<w; i++)
        {
          d[i] = s[i];
        }
        
        s+= lx2;
        d+= lx2;
      }
    }
  }
  else if (!xh && yh) /* no horizontal but vertical half-pel */
  {
    if (average_flag)
    {
      for (j=0; j<h; j++)
      {
        for (i=0; i<w; i++)
        {
          v = d[i] + ((unsigned int)(s[i]+s[i+lx]+1)>>1);
          d[i]=(v+(v>=0?1:0))>>1;
        }
     
        s+= lx2;
        d+= lx2;
      }
    }
    else
    {
      for (j=0; j<h; j++)
      {
        for (i=0; i<w; i++)
        {
          d[i] = (unsigned int)(s[i]+s[i+lx]+1)>>1;
        }

        s+= lx2;
        d+= lx2;
      }
    }
  }
  else if (xh && !yh) /* horizontal but no vertical half-pel */
  {
    if (average_flag)
    {
      for (j=0; j<h; j++)
      {
        for (i=0; i<w; i++)
        {
          v = d[i] + ((unsigned int)(s[i]+s[i+1]+1)>>1);
          d[i] = (v+(v>=0?1:0))>>1;
        }
     
        s+= lx2;
        d+= lx2;
      }
    }
    else
    {
      for (j=0; j<h; j++)
      {
        for (i=0; i<w; i++)
        {
          d[i] = (unsigned int)(s[i]+s[i+1]+1)>>1;
        }

        s+= lx2;
        d+= lx2;
      }
    }
  }
  else /* if (xh && yh) horizontal and vertical half-pel */
  {
    if (average_flag)
    {
      for (j=0; j<h; j++)
      {
        for (i=0; i<w; i++)
        {
          v = d[i] + ((unsigned int)(s[i]+s[i+1]+s[i+lx]+s[i+lx+1]+2)>>2);
          d[i] = (v+(v>=0?1:0))>>1;
        }
     
        s+= lx2;
        d+= lx2;
      }
    }
    else
    {
      for (j=0; j<h; j++)
      {
        for (i=0; i<w; i++)
        {
          d[i] = (unsigned int)(s[i]+s[i+1]+s[i+lx]+s[i+lx+1]+2)>>2;
        }

        s+= lx2;
        d+= lx2;
      }
    }
  }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
综合中文字幕亚洲| 久久午夜电影网| 这里只有精品免费| 91精品国产综合久久精品app| av亚洲精华国产精华| 粉嫩av亚洲一区二区图片| 国产69精品久久777的优势| a4yy欧美一区二区三区| 欧美最猛性xxxxx直播| 日韩精品中文字幕一区 | 国产精品亲子乱子伦xxxx裸| 国产日韩在线不卡| 亚洲影院理伦片| 久久99热这里只有精品| 99久久精品久久久久久清纯| 欧美喷潮久久久xxxxx| 久久久久久久综合色一本| 亚洲欧美一区二区在线观看| 日日摸夜夜添夜夜添国产精品| 极品少妇xxxx偷拍精品少妇| av电影在线不卡| 精品日韩一区二区| 玉米视频成人免费看| 七七婷婷婷婷精品国产| a级精品国产片在线观看| 日韩一区二区三区视频在线观看| 国产精品美女久久久久aⅴ国产馆| 日韩影院精彩在线| 欧美日韩情趣电影| 一色屋精品亚洲香蕉网站| 久久国产精品99久久久久久老狼 | 亚洲国产精品国自产拍av| 秋霞国产午夜精品免费视频| 欧美午夜精品久久久久久超碰 | 精品一区二区免费在线观看| av在线不卡电影| 日本一区二区免费在线观看视频| 久久精品国内一区二区三区| 欧美少妇bbb| 青娱乐精品视频| 久久久夜色精品亚洲| 国产精品99久久久久久有的能看| 久久久91精品国产一区二区三区| 精品一区二区三区蜜桃| 久久精品视频一区二区三区| 精品一区精品二区高清| 久久久久久久久久电影| 国产成人午夜精品5599| 中文字幕在线不卡一区| 91在线观看成人| 亚洲二区视频在线| 欧美一级二级三级乱码| 国产乱码字幕精品高清av | 久草精品在线观看| 久久久精品tv| 在线观看日产精品| 秋霞成人午夜伦在线观看| 久久夜色精品国产噜噜av| 成人精品在线视频观看| 午夜不卡av免费| 国产日产亚洲精品系列| 欧美日韩亚洲高清一区二区| 免费观看在线综合色| 中文字幕精品一区二区精品绿巨人| 91视频免费看| 九九视频精品免费| 亚洲国产精品麻豆| 欧美高清在线视频| 日韩欧美亚洲国产另类| 欧美亚洲一区二区在线| 国产精品白丝jk黑袜喷水| 麻豆精品一区二区av白丝在线| 亚洲精品乱码久久久久久久久 | 成人免费看黄yyy456| 日韩成人伦理电影在线观看| 亚洲乱码中文字幕| 亚洲视频电影在线| 自拍偷拍亚洲综合| 久久久国产精品午夜一区ai换脸| 色吧成人激情小说| 色婷婷精品久久二区二区蜜臂av | 国产亚洲女人久久久久毛片| 日韩无一区二区| 欧美一区二区三区不卡| 欧美一区二区三区免费大片 | 国产成人精品免费视频网站| 日韩国产欧美一区二区三区| 三级精品在线观看| 蜜桃av一区二区| 久久激情五月激情| 国产成人免费9x9x人网站视频| 日本中文字幕一区二区视频| 亚洲一区二区欧美日韩| 日韩精品1区2区3区| 国产精品自在欧美一区| 岛国av在线一区| 在线中文字幕一区| 欧美精品一二三区| 久久免费电影网| 亚洲日本成人在线观看| 亚洲成人黄色影院| 九色综合狠狠综合久久| 97久久精品人人爽人人爽蜜臀| 色哟哟精品一区| 欧美mv和日韩mv的网站| 国产精品久久久久久久浪潮网站 | 欧美va日韩va| 亚洲欧美另类小说视频| 美女免费视频一区二区| 成人avav在线| 欧美电影免费观看高清完整版 | 91免费国产在线观看| 91精品欧美久久久久久动漫| 中文字幕欧美一| 国产一区二区三区四区在线观看| 97精品久久久久中文字幕 | 国产一区二区精品久久91| 在线观看av一区二区| 中文字幕欧美日韩一区| 毛片av一区二区| 欧美美女喷水视频| 一卡二卡欧美日韩| www.在线欧美| 国产欧美日韩亚州综合| 韩国女主播一区| 日韩欧美国产精品一区| 午夜精品福利久久久| 在线观看日产精品| 一区二区在线观看av| 亚洲欧洲制服丝袜| 99精品热视频| 国产欧美中文在线| 九色综合国产一区二区三区| 色香蕉成人二区免费| 国产日韩三级在线| 国产精品综合二区| 久久亚洲免费视频| 午夜不卡在线视频| 4438x成人网最大色成网站| 夜夜揉揉日日人人青青一国产精品| 亚洲成人av电影| 欧美日韩一区成人| 五月婷婷另类国产| 欧美亚州韩日在线看免费版国语版 | 免费一级片91| 欧美一区二区三区在线| 麻豆91小视频| 久久综合色婷婷| 日日噜噜夜夜狠狠视频欧美人| 欧美日韩一区二区在线观看| 亚洲h动漫在线| 欧美变态tickle挠乳网站| 国产精品影视在线| 亚洲美女区一区| 欧美一级视频精品观看| 久久99精品久久久| 国产精品视频线看| 欧美日本在线看| 蜜臀av性久久久久蜜臀aⅴ | 精品国产免费一区二区三区四区 | 国产不卡在线一区| 亚洲国产毛片aaaaa无费看| 精品国产区一区| 一本大道av一区二区在线播放| 亚洲国产欧美另类丝袜| 久久九九影视网| 欧美一区二区三区在线观看视频| 六月丁香综合在线视频| 一级女性全黄久久生活片免费| 日韩欧美中文字幕一区| 99国产精品视频免费观看| 狠狠网亚洲精品| 亚洲一二三区视频在线观看| 亚洲欧洲色图综合| 欧美一卡2卡3卡4卡| 欧美亚洲尤物久久| 色哟哟在线观看一区二区三区| 国产不卡在线播放| 国产成人在线免费观看| 日本成人在线不卡视频| 人妖欧美一区二区| 奇米在线7777在线精品| 亚洲午夜一区二区三区| 伊人开心综合网| 亚洲一区二三区| 亚洲一线二线三线久久久| 亚洲欧美国产高清| 亚洲色欲色欲www| 亚洲一区二区三区国产| 日本欧美一区二区| 亚洲福中文字幕伊人影院| 午夜精品久久久久久久蜜桃app| 亚洲一线二线三线久久久| 日本欧美一区二区在线观看| 久久精品噜噜噜成人av农村| 国产成人综合在线观看| 色婷婷综合在线| 欧美视频中文字幕| 精品日韩99亚洲| 亚洲精品美国一|