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

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

?? recon.c

?? MPEG2解編碼程序源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* Predict.c, motion compensation routines                                    */

/* Copyright (C) 1996, MPEG Software Simulation Group. All Rights Reserved. */

/*
 * Disclaimer of Warranty
 *
 * These software programs are available to the user without any license fee or
 * royalty on an "as is" basis.  The MPEG Software Simulation Group disclaims
 * any and all warranties, whether express, implied, or statuary, including any
 * implied warranties or merchantability or of fitness for a particular
 * purpose.  In no event shall the copyright-holder be liable for any
 * incidental, punitive, or consequential damages of any kind whatsoever
 * arising from the use of these programs.
 *
 * This disclaimer of warranty extends to the user of these programs and user's
 * customers, employees, agents, transferees, successors, and assigns.
 *
 * The MPEG Software Simulation Group does not represent or warrant that the
 * programs furnished hereunder are free of infringement of any third-party
 * patents.
 *
 * Commercial implementations of MPEG-1 and MPEG-2 video, including shareware,
 * are subject to royalty fees to patent holders.  Many of these patents are
 * general enough such that they are unavoidable regardless of implementation
 * design.
 *
 */

#include <stdio.h>

#include "config.h"
#include "global.h"

/* private prototypes */
static void form_prediction _ANSI_ARGS_((unsigned char *src[], int sfield,
  unsigned char *dst[], int dfield,
  int lx, int lx2, int w, int h, int x, int y, int dx, int dy,
  int average_flag));

static void form_component_prediction _ANSI_ARGS_((unsigned char *src, unsigned char *dst,
  int lx, int lx2, int w, int h, int x, int y, int dx, int dy, int average_flag));

void form_predictions(bx,by,macroblock_type,motion_type,PMV,motion_vertical_field_select,dmvector,stwtype)
int bx, by;
int macroblock_type;
int motion_type;
int PMV[2][2][2], motion_vertical_field_select[2][2], dmvector[2];
int stwtype;
{
  int currentfield;
  unsigned char **predframe;
  int DMV[2][2];
  int stwtop, stwbot;

  stwtop = stwtype%3; /* 0:temporal, 1:(spat+temp)/2, 2:spatial */
  stwbot = stwtype/3;

  if ((macroblock_type & MACROBLOCK_MOTION_FORWARD) 
   || (picture_coding_type==P_TYPE))
  {
    if (picture_structure==FRAME_PICTURE)
    {
      if ((motion_type==MC_FRAME) 
        || !(macroblock_type & MACROBLOCK_MOTION_FORWARD))
      {
        /* frame-based prediction (broken into top and bottom halves
             for spatial scalability prediction purposes) */
        if (stwtop<2)
          form_prediction(forward_reference_frame,0,current_frame,0,
            Coded_Picture_Width,Coded_Picture_Width<<1,16,8,bx,by,
            PMV[0][0][0],PMV[0][0][1],stwtop);

        if (stwbot<2)
          form_prediction(forward_reference_frame,1,current_frame,1,
            Coded_Picture_Width,Coded_Picture_Width<<1,16,8,bx,by,
            PMV[0][0][0],PMV[0][0][1],stwbot);
      }
      else if (motion_type==MC_FIELD) /* field-based prediction */
      {
        /* top field prediction */
        if (stwtop<2)
          form_prediction(forward_reference_frame,motion_vertical_field_select[0][0],
            current_frame,0,Coded_Picture_Width<<1,Coded_Picture_Width<<1,16,8,
            bx,by>>1,PMV[0][0][0],PMV[0][0][1]>>1,stwtop);

        /* bottom field prediction */
        if (stwbot<2)
          form_prediction(forward_reference_frame,motion_vertical_field_select[1][0],
            current_frame,1,Coded_Picture_Width<<1,Coded_Picture_Width<<1,16,8,
            bx,by>>1,PMV[1][0][0],PMV[1][0][1]>>1,stwbot);
      }
      else if (motion_type==MC_DMV) /* dual prime prediction */
      {
        /* calculate derived motion vectors */
        Dual_Prime_Arithmetic(DMV,dmvector,PMV[0][0][0],PMV[0][0][1]>>1);

        if (stwtop<2)
        {
          /* predict top field from top field */
          form_prediction(forward_reference_frame,0,current_frame,0,
            Coded_Picture_Width<<1,Coded_Picture_Width<<1,16,8,bx,by>>1,
            PMV[0][0][0],PMV[0][0][1]>>1,0);

          /* predict and add to top field from bottom field */
          form_prediction(forward_reference_frame,1,current_frame,0,
            Coded_Picture_Width<<1,Coded_Picture_Width<<1,16,8,bx,by>>1,
            DMV[0][0],DMV[0][1],1);
        }

        if (stwbot<2)
        {
          /* predict bottom field from bottom field */
          form_prediction(forward_reference_frame,1,current_frame,1,
            Coded_Picture_Width<<1,Coded_Picture_Width<<1,16,8,bx,by>>1,
            PMV[0][0][0],PMV[0][0][1]>>1,0);

          /* predict and add to bottom field from top field */
          form_prediction(forward_reference_frame,0,current_frame,1,
            Coded_Picture_Width<<1,Coded_Picture_Width<<1,16,8,bx,by>>1,
            DMV[1][0],DMV[1][1],1);
        }
      }
      else
        /* invalid motion_type */
        printf("invalid motion_type\n");
    }
    else /* TOP_FIELD or BOTTOM_FIELD */
    {
      /* field picture */
      currentfield = (picture_structure==BOTTOM_FIELD);

      /* determine which frame to use for prediction */
      if ((picture_coding_type==P_TYPE) && Second_Field
         && (currentfield!=motion_vertical_field_select[0][0]))
        predframe = backward_reference_frame; /* same frame */
      else
        predframe = forward_reference_frame; /* previous frame */

      if ((motion_type==MC_FIELD)
        || !(macroblock_type & MACROBLOCK_MOTION_FORWARD))
      {
        /* field-based prediction */
        if (stwtop<2)
          form_prediction(predframe,motion_vertical_field_select[0][0],current_frame,0,
            Coded_Picture_Width<<1,Coded_Picture_Width<<1,16,16,bx,by,
            PMV[0][0][0],PMV[0][0][1],stwtop);
      }
      else if (motion_type==MC_16X8)
      {
        if (stwtop<2)
        {
          form_prediction(predframe,motion_vertical_field_select[0][0],current_frame,0,
            Coded_Picture_Width<<1,Coded_Picture_Width<<1,16,8,bx,by,
            PMV[0][0][0],PMV[0][0][1],stwtop);

          /* determine which frame to use for lower half prediction */
          if ((picture_coding_type==P_TYPE) && Second_Field
             && (currentfield!=motion_vertical_field_select[1][0]))
            predframe = backward_reference_frame; /* same frame */
          else
            predframe = forward_reference_frame; /* previous frame */

          form_prediction(predframe,motion_vertical_field_select[1][0],current_frame,0,
            Coded_Picture_Width<<1,Coded_Picture_Width<<1,16,8,bx,by+8,
            PMV[1][0][0],PMV[1][0][1],stwtop);
        }
      }
      else if (motion_type==MC_DMV) /* dual prime prediction */
      {
        if (Second_Field)
          predframe = backward_reference_frame; /* same frame */
        else
          predframe = forward_reference_frame; /* previous frame */

        /* calculate derived motion vectors */
        Dual_Prime_Arithmetic(DMV,dmvector,PMV[0][0][0],PMV[0][0][1]);

        /* predict from field of same parity */
        form_prediction(forward_reference_frame,currentfield,current_frame,0,
          Coded_Picture_Width<<1,Coded_Picture_Width<<1,16,16,bx,by,
          PMV[0][0][0],PMV[0][0][1],0);

        /* predict from field of opposite parity */
        form_prediction(predframe,!currentfield,current_frame,0,
          Coded_Picture_Width<<1,Coded_Picture_Width<<1,16,16,bx,by,
          DMV[0][0],DMV[0][1],1);
      }
      else
        /* invalid motion_type */
        printf("invalid motion_type\n");
    }
    stwtop = stwbot = 1;
  }

  if (macroblock_type & MACROBLOCK_MOTION_BACKWARD)
  {
    if (picture_structure==FRAME_PICTURE)
    {
      if (motion_type==MC_FRAME)
      {
        /* frame-based prediction */
        if (stwtop<2)
          form_prediction(backward_reference_frame,0,current_frame,0,
            Coded_Picture_Width,Coded_Picture_Width<<1,16,8,bx,by,
            PMV[0][1][0],PMV[0][1][1],stwtop);

        if (stwbot<2)
          form_prediction(backward_reference_frame,1,current_frame,1,
            Coded_Picture_Width,Coded_Picture_Width<<1,16,8,bx,by,
            PMV[0][1][0],PMV[0][1][1],stwbot);
      }
      else /* field-based prediction */
      {
        /* top field prediction */
        if (stwtop<2)
          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>>1,PMV[0][1][0],PMV[0][1][1]>>1,stwtop);

        /* bottom field prediction */
        if (stwbot<2)
          form_prediction(backward_reference_frame,motion_vertical_field_select[1][1],
            current_frame,1,Coded_Picture_Width<<1,Coded_Picture_Width<<1,16,8,
            bx,by>>1,PMV[1][1][0],PMV[1][1][1]>>1,stwbot);
      }
    }
    else /* TOP_FIELD or BOTTOM_FIELD */
    {
      /* field picture */
      if (motion_type==MC_FIELD)
      {
        /* field-based prediction */
        form_prediction(backward_reference_frame,motion_vertical_field_select[0][1],

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美亚洲综合久久| 国产情人综合久久777777| 日韩视频永久免费| 中文字幕中文字幕一区二区| 亚洲尤物视频在线| 高清在线观看日韩| 欧美乱妇一区二区三区不卡视频| 久久综合资源网| 亚洲午夜久久久| 国产成人亚洲综合a∨婷婷| 欧美三级日韩三级| 国产精品国产三级国产aⅴ中文| 青青草97国产精品免费观看无弹窗版| 欧美一区二区三区在线看| 国产欧美一区二区精品性| 三级一区在线视频先锋 | 欧美日韩视频在线一区二区| 国产片一区二区三区| 亚洲成人黄色影院| 91麻豆国产香蕉久久精品| 国产欧美精品一区二区三区四区| 麻豆精品国产91久久久久久| 欧美性视频一区二区三区| 国产精品午夜电影| 国模套图日韩精品一区二区| 91精品国产综合久久香蕉麻豆| 亚洲欧美成人一区二区三区| 国产激情一区二区三区四区| 日韩久久久精品| 偷拍亚洲欧洲综合| 欧美性色黄大片| 亚洲欧美国产77777| 播五月开心婷婷综合| 国产日产欧美一区二区三区| 国产乱子伦一区二区三区国色天香| 91精品国产色综合久久ai换脸| 亚洲精品videosex极品| 91美女在线看| 亚洲黄色av一区| 欧洲亚洲精品在线| 亚洲成人av一区二区三区| 在线精品观看国产| 亚洲婷婷综合久久一本伊一区| 成人av电影在线| 日韩美女视频一区| 一本色道**综合亚洲精品蜜桃冫| 日韩理论片在线| 在线观看视频一区| 亚洲成人一区二区| 欧美男同性恋视频网站| 亚洲mv在线观看| 7777精品伊人久久久大香线蕉最新版| 婷婷六月综合亚洲| 日韩精品专区在线影院重磅| 精品制服美女久久| 国产欧美日韩一区二区三区在线观看| 国产成人8x视频一区二区| 国产精品无人区| 91视视频在线观看入口直接观看www | 成人免费毛片片v| 综合色中文字幕| 欧美日韩视频在线观看一区二区三区 | 日韩一区二区三区四区| 九色|91porny| 中文字幕成人网| 在线观看三级视频欧美| 日韩国产欧美视频| 国产三级欧美三级日产三级99| 91亚洲男人天堂| 免费看欧美美女黄的网站| 国产精品麻豆久久久| 67194成人在线观看| 国产福利一区二区三区在线视频| 一区二区三区日韩欧美| 精品久久久久久久人人人人传媒| 国产精品99久| 亚洲国产一区二区在线播放| 久久天天做天天爱综合色| 欧美综合视频在线观看| 久久精品国产久精国产爱| 综合亚洲深深色噜噜狠狠网站| 3751色影院一区二区三区| 成人做爰69片免费看网站| 亚洲福利一区二区| 中文字幕成人在线观看| 欧美一区中文字幕| 91香蕉视频污| 国产大片一区二区| 午夜久久久影院| 国产精品―色哟哟| 欧美一区在线视频| 91久久国产最好的精华液| 国产酒店精品激情| 日韩综合一区二区| 最好看的中文字幕久久| 国产丝袜在线精品| 日韩欧美高清在线| 4hu四虎永久在线影院成人| 99久久婷婷国产| 国产老肥熟一区二区三区| 日韩中文字幕1| 一区二区三区中文字幕| 国产精品欧美一级免费| 精品少妇一区二区三区日产乱码| 欧美亚洲动漫精品| 91一区二区在线观看| 国产.精品.日韩.另类.中文.在线.播放 | 久久精品视频免费| 日韩一二三区不卡| 欧美日韩精品一区二区三区四区| 成人综合在线观看| 国产精品123| 精彩视频一区二区三区| 日韩高清一级片| 亚洲成人中文在线| 亚洲成av人片| 日韩精品成人一区二区三区| 亚洲成人先锋电影| 天天综合网 天天综合色| 亚洲国产精品一区二区www| 亚洲欧洲综合另类在线| 亚洲色图清纯唯美| **性色生活片久久毛片| 中文字幕一区二区视频| 国产精品青草综合久久久久99| 久久亚洲精品国产精品紫薇| 久久这里只有精品视频网| 欧美成人精品二区三区99精品| 这里只有精品免费| 日韩欧美国产1| 日韩精品中文字幕一区| 日韩你懂的在线播放| 久久精品网站免费观看| 国产精品麻豆网站| 亚洲狠狠爱一区二区三区| 午夜精品影院在线观看| 麻豆国产欧美日韩综合精品二区| 日本aⅴ免费视频一区二区三区| 精品一区二区三区免费播放 | 日韩二区三区四区| 久热成人在线视频| 成人亚洲精品久久久久软件| 色婷婷激情久久| 777亚洲妇女| 久久亚洲一区二区三区四区| 亚洲欧美一区二区视频| 亚洲va欧美va人人爽午夜| 老司机午夜精品| av一区二区三区| 欧美性生活久久| 精品国产免费久久| 亚洲日本在线观看| 日本中文字幕一区| jlzzjlzz亚洲日本少妇| 欧美性大战久久久久久久蜜臀| 日韩一区二区影院| 国产精品嫩草影院av蜜臀| 亚洲国产日韩综合久久精品| 奇米一区二区三区| 91视频精品在这里| 日韩一区二区三区免费观看| 中文字幕乱码久久午夜不卡| 五月综合激情网| 国产激情91久久精品导航| 在线欧美小视频| 久久久久久久久99精品| 亚洲高清中文字幕| 丁香五精品蜜臀久久久久99网站| 欧美日韩中字一区| 国产精品成人一区二区三区夜夜夜 | 欧美r级在线观看| 亚洲精品一卡二卡| 国产精品91一区二区| 欧美探花视频资源| 欧美国产在线观看| 久久精品国产精品青草| 欧美综合亚洲图片综合区| 国产欧美日韩卡一| 婷婷国产在线综合| 在线观看日韩av先锋影音电影院| 久久久午夜精品| 三级欧美韩日大片在线看| 9i看片成人免费高清| 久久久国产综合精品女国产盗摄| 日韩在线一区二区三区| 色综合色综合色综合色综合色综合 | 久久一区二区三区四区| 亚洲大片精品永久免费| 色综合天天综合网天天看片| 久久日一线二线三线suv| 午夜精品福利一区二区蜜股av| av午夜精品一区二区三区| 久久影院视频免费| 久久国产精品免费| 欧美一级理论片| 日本中文字幕一区二区视频 | 成人久久18免费网站麻豆| 精品国产免费人成在线观看| 久久精品国产亚洲aⅴ| 欧美电影免费观看高清完整版|