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

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

?? b_frame.c

?? 網絡MPEG4IP流媒體開發源代碼
?? C
?? 第 1 頁 / 共 4 頁
字號:
/************************************************************************* COPYRIGHT AND WARRANTY INFORMATION** Copyright 2001, International Telecommunications Union, Geneva** DISCLAIMER OF WARRANTY** These software programs are available to the user without any* license fee or royalty on an "as is" basis. The ITU disclaims* any and all warranties, whether express, implied, or* statutory, including any implied warranties of merchantability* or of fitness for a particular purpose.  In no event shall the* contributor or the ITU 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 ITU does not represent or warrant that the programs furnished* hereunder are free of infringement of any third-party patents.* Commercial implementations of ITU-T Recommendations, including* shareware, may be subject to royalty fees to patent holders.* Information regarding the ITU-T patent policy is available from* the ITU Web site at http://www.itu.int.** THIS IS NOT A GRANT OF PATENT RIGHTS - SEE THE ITU-T PATENT POLICY.*************************************************************************//*! ************************************************************************************* * \file b_frame.c * * \brief *    B picture coding * * \author *    Main contributors (see contributors.h for copyright, address and affiliation details) *    - Byeong-Moon Jeon                <jeonbm@lge.com> *    - Yoon-Seong Soh                  <yunsung@lge.com> *    - Thomas Stockhammer              <stockhammer@ei.tum.de> *    - Detlev Marpe                    <marpe@hhi.de> *    - Guido Heising                   <heising@hhi.de> *    - Thomas Wedi                     <wedi@tnt.uni-hannover.de> ************************************************************************************* */#include <stdlib.h>#include <math.h>#include <memory.h>#include "elements.h"#include "b_frame.h"#include "refbuf.h"#ifdef _ADAPT_LAST_GROUP_extern int *last_P_no;#endif/*! ************************************************************************ * \brief *    Set reference frame information in global arrays *    depending on mode decision. Used for motion vector prediction. ************************************************************************ */void SetRefFrameInfo_B(){  int i,j;  const int fw_predframe_no = img->mb_data[img->current_mb_nr].ref_frame;  if(img->imod==B_Direct)  {    for (j = 0; j < 4;j++)    {      for (i = 0; i < 4;i++)      {        fw_refFrArr[img->block_y+j][img->block_x+i] =            bw_refFrArr[img->block_y+j][img->block_x+i] = -1;      }    }  }  else    if (img->imod == B_Forward)    {      for (j = 0;j < 4;j++)      {        for (i = 0;i < 4;i++)        {          fw_refFrArr[img->block_y+j][img->block_x+i] = fw_predframe_no;          bw_refFrArr[img->block_y+j][img->block_x+i] = -1;        }      }    }    else      if(img->imod == B_Backward)      {        for (j = 0;j < 4;j++)        {          for (i = 0;i < 4;i++)          {            fw_refFrArr[img->block_y+j][img->block_x+i] = -1;            bw_refFrArr[img->block_y+j][img->block_x+i] = 0;          }        }      }      else        if(img->imod == B_Bidirect)        {          for (j = 0;j < 4;j++)          {            for (i = 0;i < 4;i++)            {              fw_refFrArr[img->block_y+j][img->block_x+i] = fw_predframe_no;              bw_refFrArr[img->block_y+j][img->block_x+i] = 0;            }          }        }        else // 4x4-, 16x16-intra        {          for (j = 0;j < 4;j++)          {            for (i = 0;i < 4;i++)            {              fw_refFrArr[img->block_y+j][img->block_x+i] =                bw_refFrArr[img->block_y+j][img->block_x+i] = -1;            }          }        }}/*! ************************************************************************ * \brief *    Performs DCT, quantization, run/level pre-coding and IDCT *    for the MC-compensated MB residue of a B-frame; *    current cbp (for LUMA only) is affected ************************************************************************ */void LumaResidualCoding_B(){  int cbp_mask, cbp_blk_mask, sum_cnt_nonz, coeff_cost, nonzero;  int mb_y, mb_x, block_y, block_x, i, j, pic_pix_y, pic_pix_x, pic_block_x, pic_block_y;  int ii4, jj4, iii4, jjj4, i2, j2, fw_pred, bw_pred, ref_inx, df_pred, db_pred;  Macroblock *currMB = &img->mb_data[img->current_mb_nr];  switch(img->imod)  {    case B_Forward :      currMB->cbp     = 0 ;      currMB->cbp_blk = 0 ;      sum_cnt_nonz    = 0 ;      for (mb_y=0; mb_y < MB_BLOCK_SIZE; mb_y += BLOCK_SIZE*2)      {        for (mb_x=0; mb_x < MB_BLOCK_SIZE; mb_x += BLOCK_SIZE*2)        {          cbp_mask=(int)pow(2,(mb_x/8+mb_y/4));          coeff_cost=0;          for (block_y=mb_y; block_y < mb_y+BLOCK_SIZE*2; block_y += BLOCK_SIZE)          {            pic_pix_y=img->pix_y+block_y;            pic_block_y=pic_pix_y/BLOCK_SIZE;            for (block_x=mb_x; block_x < mb_x+BLOCK_SIZE*2; block_x += BLOCK_SIZE)            {              cbp_blk_mask = (block_x>>2)+ block_y ;              pic_pix_x=img->pix_x+block_x;              pic_block_x=pic_pix_x/BLOCK_SIZE;              img->ipredmode[pic_block_x+1][pic_block_y+1]=0;              if(input->mv_res)              {                ii4=(img->pix_x+block_x)*8+tmp_fwMV[0][pic_block_y][pic_block_x+4];                jj4=(img->pix_y+block_y)*8+tmp_fwMV[1][pic_block_y][pic_block_x+4];                for (j=0;j<4;j++)                {                  j2=j*8;                  for (i=0;i<4;i++)                  {                    i2=i*8;                    img->mpr[i+block_x][j+block_y]=UMVPelY_18 (mref[img->fw_multframe_no], jj4+j2, ii4+i2); // refbuf                  }                }              }              else              {                ii4=(img->pix_x+block_x)*4+tmp_fwMV[0][pic_block_y][pic_block_x+4];                jj4=(img->pix_y+block_y)*4+tmp_fwMV[1][pic_block_y][pic_block_x+4];                for (j=0;j<4;j++)                {                  j2=j*4;                  for (i=0;i<4;i++)                  {                    i2=i*4;                    img->mpr[i+block_x][j+block_y]=UMVPelY_14 (mref[img->fw_multframe_no], jj4+j2, ii4+i2); // refbuf                  }                }              }              for (j=0; j < BLOCK_SIZE; j++)              {                for (i=0; i < BLOCK_SIZE; i++)                {                  img->m7[i][j]=                    imgY_org[img->pix_y+block_y+j][img->pix_x+block_x+i]-img->mpr[i+block_x][j+block_y];                }              }              nonzero=dct_luma(block_x,block_y,&coeff_cost);              if (nonzero)              {                currMB->cbp_blk |= 1 << cbp_blk_mask ;            // one bit for every 4x4 block                currMB->cbp     |= cbp_mask;              }            } // block_x          } // block_y          if (coeff_cost > 3)          {            sum_cnt_nonz += coeff_cost;          }          else //discard          {            currMB->cbp     &=  (63-cbp_mask);            currMB->cbp_blk &= ~(51 << (mb_y + (mb_x>>2) )) ;            for (i=mb_x; i < mb_x+BLOCK_SIZE*2; i++)            {              for (j=mb_y; j < mb_y+BLOCK_SIZE*2; j++)              {                imgY[img->pix_y+j][img->pix_x+i]=img->mpr[i][j];              }            }          }        } // mb_x      } // mb_y      if (sum_cnt_nonz <= 5 )      {        currMB->cbp     &= 0xfffff0 ;        currMB->cbp_blk &= 0xff0000 ;        for (i=0; i < MB_BLOCK_SIZE; i++)        {          for (j=0; j < MB_BLOCK_SIZE; j++)          {            imgY[img->pix_y+j][img->pix_x+i]=img->mpr[i][j];          }        }      }      break;    case B_Backward :      currMB->cbp     = 0 ;      currMB->cbp_blk = 0 ;      sum_cnt_nonz    = 0 ;      for (mb_y=0; mb_y < MB_BLOCK_SIZE; mb_y += BLOCK_SIZE*2)      {        for (mb_x=0; mb_x < MB_BLOCK_SIZE; mb_x += BLOCK_SIZE*2)        {          cbp_mask=(int)pow(2,(mb_x/8+mb_y/4));          coeff_cost=0;          for (block_y=mb_y; block_y < mb_y+BLOCK_SIZE*2; block_y += BLOCK_SIZE)          {            pic_pix_y=img->pix_y+block_y;            pic_block_y=pic_pix_y/BLOCK_SIZE;            for (block_x=mb_x; block_x < mb_x+BLOCK_SIZE*2; block_x += BLOCK_SIZE)            {              cbp_blk_mask = (block_x>>2)+ block_y ;              pic_pix_x=img->pix_x+block_x;              pic_block_x=pic_pix_x/BLOCK_SIZE;              img->ipredmode[pic_block_x+1][pic_block_y+1]=0;              if(input->mv_res)              {                iii4=(img->pix_x+block_x)*8+tmp_bwMV[0][pic_block_y][pic_block_x+4];                jjj4=(img->pix_y+block_y)*8+tmp_bwMV[1][pic_block_y][pic_block_x+4];                for (j=0;j<4;j++)                {                  j2=j*8;                  for (i=0;i<4;i++)                  {                    i2=i*8;                    img->mpr[i+block_x][j+block_y]=UMVPelY_18 (mref_P, jjj4+j2, iii4+i2); // refbuf                  }                }              }              else              {                iii4=(img->pix_x+block_x)*4+tmp_bwMV[0][pic_block_y][pic_block_x+4];                jjj4=(img->pix_y+block_y)*4+tmp_bwMV[1][pic_block_y][pic_block_x+4];                for (j=0;j<4;j++)                {                  j2=j*4;                  for (i=0;i<4;i++)                  {                    i2=i*4;                    img->mpr[i+block_x][j+block_y]=UMVPelY_14 (mref_P, jjj4+j2, iii4+i2); // refbuf                  }                }              }              for (j=0; j < BLOCK_SIZE; j++)              {                for (i=0; i < BLOCK_SIZE; i++)                {                  img->m7[i][j]=                    imgY_org[img->pix_y+block_y+j][img->pix_x+block_x+i]-img->mpr[i+block_x][j+block_y];                }              }              nonzero=dct_luma(block_x,block_y,&coeff_cost);              if (nonzero)              {                currMB->cbp_blk |= 1 << cbp_blk_mask ;            // one bit for every 4x4 block                currMB->cbp     |= cbp_mask;              }            } // block_x          } // block_y          if (coeff_cost > 3)          {            sum_cnt_nonz += coeff_cost;          }          else //discard          {            currMB->cbp     &= (63-cbp_mask);            currMB->cbp_blk &= ~(51 << (mb_y + (mb_x>>2) )) ;            for (i=mb_x; i < mb_x+BLOCK_SIZE*2; i++)            {              for (j=mb_y; j < mb_y+BLOCK_SIZE*2; j++)              {                imgY[img->pix_y+j][img->pix_x+i]=img->mpr[i][j];              }            }          }        } // mb_x      } // mb_y      if (sum_cnt_nonz <= 5 )      {        currMB->cbp     &= 0xfffff0 ;        currMB->cbp_blk &= 0xff0000 ;        for (i=0; i < MB_BLOCK_SIZE; i++)        {          for (j=0; j < MB_BLOCK_SIZE; j++)          {            imgY[img->pix_y+j][img->pix_x+i]=img->mpr[i][j];          }        }      }      break;    case B_Bidirect :      currMB->cbp=0;      currMB->cbp_blk=0;      sum_cnt_nonz=0;      for (mb_y=0; mb_y < MB_BLOCK_SIZE; mb_y += BLOCK_SIZE*2)      {        for (mb_x=0; mb_x < MB_BLOCK_SIZE; mb_x += BLOCK_SIZE*2)        {          cbp_mask=(int)pow(2,(mb_x/8+mb_y/4));          coeff_cost=0;          for (block_y=mb_y; block_y < mb_y+BLOCK_SIZE*2; block_y += BLOCK_SIZE)          {            pic_pix_y=img->pix_y+block_y;            pic_block_y=pic_pix_y/BLOCK_SIZE;            for (block_x=mb_x; block_x < mb_x+BLOCK_SIZE*2; block_x += BLOCK_SIZE)            {              cbp_blk_mask = (block_x>>2)+ block_y ;              pic_pix_x=img->pix_x+block_x;              pic_block_x=pic_pix_x/BLOCK_SIZE;              img->ipredmode[pic_block_x+1][pic_block_y+1]=0;              if(input->mv_res)              {                ii4=(img->pix_x+block_x)*8+tmp_fwMV[0][pic_block_y][pic_block_x+4];                jj4=(img->pix_y+block_y)*8+tmp_fwMV[1][pic_block_y][pic_block_x+4];                iii4=(img->pix_x+block_x)*8+tmp_bwMV[0][pic_block_y][pic_block_x+4];                jjj4=(img->pix_y+block_y)*8+tmp_bwMV[1][pic_block_y][pic_block_x+4];

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
自拍偷拍国产精品| 日韩一区国产二区欧美三区| 亚洲午夜久久久久久久久电影网| 3d动漫精品啪啪| 成人av在线资源| 免费在线观看一区| 亚洲一区二区三区四区的| 国产亚洲欧美色| 777a∨成人精品桃花网| 91麻豆国产在线观看| 国产成人亚洲综合色影视| 日韩在线一区二区| 一区二区三区精品| 国产精品热久久久久夜色精品三区| 欧美老肥妇做.爰bbww| 91在线免费看| 国产精品456| 免费观看日韩电影| 三级欧美在线一区| 亚洲123区在线观看| 18成人在线观看| 国产精品―色哟哟| 国产拍揄自揄精品视频麻豆| 欧美成人猛片aaaaaaa| 欧美日韩一区二区欧美激情| 色一情一伦一子一伦一区| 成人中文字幕电影| 国产精品亚洲第一| 国产一区不卡精品| 国产一区二区三区四区五区入口| 美女久久久精品| 青青草一区二区三区| 日韩国产精品久久久久久亚洲| 亚洲精品久久7777| 亚洲欧美一区二区三区国产精品 | 日韩精品一区二区三区四区| 欧美日韩国产另类一区| 欧美三电影在线| 91精彩视频在线观看| 日本乱人伦aⅴ精品| 色综合久久综合网欧美综合网| 成人免费观看视频| 粉嫩av一区二区三区| 成人av在线播放网站| 成人av免费在线播放| 91小视频免费观看| 欧美一区二区三区视频| 欧美三级三级三级爽爽爽| 777久久久精品| 日韩一区二区三区四区五区六区| 日韩欧美一区在线| 久久蜜桃av一区精品变态类天堂 | 国产精品欧美极品| 国产精品美女www爽爽爽| 中文字幕亚洲电影| 亚洲精选视频免费看| 一区二区不卡在线播放 | 色综合久久久久综合99| 一本色道久久综合狠狠躁的推荐 | 亚洲免费观看高清完整版在线观看| 国产精品国产三级国产有无不卡 | 日本道免费精品一区二区三区| 粉嫩嫩av羞羞动漫久久久| 国产成人亚洲综合a∨婷婷| 丰满少妇在线播放bd日韩电影| 成人h精品动漫一区二区三区| 成人免费福利片| 欧美天天综合网| 日韩一区二区三区电影| 久久久亚洲精品石原莉奈| 1024亚洲合集| 奇米一区二区三区av| 丁香亚洲综合激情啪啪综合| 日本韩国欧美一区| 日韩欧美亚洲一区二区| 国产精品欧美一区喷水| 亚洲一区二区三区中文字幕| 日本va欧美va瓶| 成人三级在线视频| 欧美日韩视频不卡| 国产午夜三级一区二区三| 一区二区三区色| 激情欧美日韩一区二区| 91在线观看成人| 日韩一区二区不卡| 中文字幕在线不卡一区二区三区| 亚洲成人动漫在线免费观看| 国产一区不卡精品| 欧美三级一区二区| 中文字幕乱码一区二区免费| 午夜久久久久久久久| 国产电影精品久久禁18| 欧美日韩精品一区视频| 国产日韩欧美综合在线| 亚洲成人一区在线| 成人美女视频在线看| 欧美一区二区三区四区在线观看| 中文字幕视频一区| 国模少妇一区二区三区| 欧美美女直播网站| 国产精品久久久久久久蜜臀| 青青草97国产精品免费观看 | 日韩二区在线观看| 波多野结衣中文字幕一区二区三区| 在线电影院国产精品| 中文字幕一区二区不卡| 国产综合久久久久久鬼色| 欧美精品第1页| 亚洲欧美日韩中文播放| 国产精品一区专区| 欧美一级二级三级蜜桃| 亚洲午夜激情av| 91亚洲男人天堂| 国产精品人妖ts系列视频| 韩国精品免费视频| 日韩免费电影一区| 日韩专区一卡二卡| 91色综合久久久久婷婷| 欧美激情中文字幕一区二区| 精品一区二区三区免费播放| 欧美日韩一级黄| 亚洲日本va午夜在线影院| 成人污视频在线观看| 久久久精品黄色| 国产一区二区三区四| 欧美videos中文字幕| 日本在线不卡视频| 欧美麻豆精品久久久久久| 亚洲激情校园春色| 91亚洲国产成人精品一区二三| 久久精品夜色噜噜亚洲aⅴ| 精品一区二区三区欧美| 亚洲精品在线观看视频| 免费的成人av| 欧美一区二区在线播放| 亚洲v日本v欧美v久久精品| 欧美优质美女网站| 一区二区三区久久| 欧美少妇性性性| 亚洲激情自拍偷拍| 欧美三片在线视频观看| 首页欧美精品中文字幕| 91精品欧美久久久久久动漫| 丝袜美腿成人在线| 日韩一区二区免费在线观看| 精品系列免费在线观看| 久久久久久久久免费| 国产91精品一区二区麻豆亚洲| 国产精品女主播在线观看| 成人高清在线视频| 日韩美女视频19| 欧美日韩在线直播| 日本亚洲三级在线| 2017欧美狠狠色| 国产98色在线|日韩| 一区视频在线播放| 欧美性猛交xxxx乱大交退制版| 首页亚洲欧美制服丝腿| 精品1区2区在线观看| 成人精品一区二区三区四区| 亚洲视频在线观看三级| 欧美色手机在线观看| 麻豆精品精品国产自在97香蕉| 久久久久久久网| 91黄色激情网站| 日韩国产欧美在线观看| 久久亚洲二区三区| 99精品国产99久久久久久白柏| 一区二区三区精品在线| 日韩欧美一级片| 成人一区二区三区| 亚洲国产日韩综合久久精品| 日韩欧美国产一区二区三区| 成人动漫精品一区二区| 亚洲国产精品欧美一二99| 精品久久久久久最新网址| av高清不卡在线| 免费美女久久99| 中文字幕 久热精品 视频在线 | 欧美肥妇free| 国产精品自拍av| 亚洲一二三四区不卡| 欧美精品一区二区三区在线播放| 91在线视频免费91| 久久aⅴ国产欧美74aaa| 亚洲欧美日韩在线| 日韩免费电影网站| 在线观看日韩国产| 国产一区二区精品久久91| 亚洲免费看黄网站| 久久精品免费在线观看| 欧美午夜不卡在线观看免费| 国产一区二区三区香蕉| 婷婷成人综合网| 1区2区3区国产精品| 久久久久一区二区三区四区| 欧美日韩国产中文| 成人精品一区二区三区四区| 久99久精品视频免费观看| 亚洲国产成人精品视频|