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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? rdopt_coding_state.c

?? jm_frext22.ZIP的壓縮文件,主要用于嵌入式系統(tǒng)圖象的編解碼的開(kāi)發(fā).
?? C
字號(hào):

/*!
 ***************************************************************************
 * \file rdopt_coding_state.c
 *
 * \brief
 *    Storing/restoring coding state for
 *    Rate-Distortion optimized mode decision
 *
 * \author
 *    Heiko Schwarz
 *
 * \date
 *    17. April 2001
 **************************************************************************/

#include <stdlib.h>
#include <math.h>
#include <memory.h>
#include "rdopt_coding_state.h"
#include "cabac.h"



/*!
 ************************************************************************
 * \brief
 *    delete structure for storing coding state
 ************************************************************************
 */
void
delete_coding_state (CSptr cs)
{
  if (cs != NULL)
  {
    //=== structures of data partition array ===
    if (cs->encenv    != NULL)   free (cs->encenv);
    if (cs->bitstream != NULL)   free (cs->bitstream);

    //=== contexts for binary arithmetic coding ===
    delete_contexts_MotionInfo  (cs->mot_ctx);
    delete_contexts_TextureInfo (cs->tex_ctx);

    //=== coding state structure ===
    free (cs);
    cs=NULL;
  }
}


/*!
 ************************************************************************
 * \brief
 *    create structure for storing coding state
 ************************************************************************
 */
CSptr
create_coding_state ()
{
  CSptr cs;

  //=== coding state structure ===
  if ((cs = (CSptr) calloc (1, sizeof(CSobj))) == NULL)
    no_mem_exit("init_coding_state: cs");

  //=== important variables of data partition array ===
  cs->no_part = input->partition_mode==0?1:3;
  if (input->symbol_mode == CABAC)
  {
    if ((cs->encenv = (EncodingEnvironment*) calloc (cs->no_part, sizeof(EncodingEnvironment))) == NULL)
      no_mem_exit("init_coding_state: cs->encenv");
  }
  else
  {
    cs->encenv = NULL;
  }
  if ((cs->bitstream = (Bitstream*) calloc (cs->no_part, sizeof(Bitstream))) == NULL)
    no_mem_exit("init_coding_state: cs->bitstream");

  //=== context for binary arithmetic coding ===
  cs->symbol_mode = input->symbol_mode;
  if (cs->symbol_mode == CABAC)
  {
    cs->mot_ctx = create_contexts_MotionInfo ();
    cs->tex_ctx = create_contexts_TextureInfo();
  }
  else
  {
    cs->mot_ctx = NULL;
    cs->tex_ctx = NULL;
  }

  return cs;
}


/*!
 ************************************************************************
 * \brief
 *    store coding state (for rd-optimized mode decision)
 ************************************************************************
 */
void
store_coding_state (CSptr cs)
{
  int  i;

  EncodingEnvironment  *ee_src, *ee_dest;
  Bitstream            *bs_src, *bs_dest;

  MotionInfoContexts   *mc_src  = img->currentSlice->mot_ctx;
  TextureInfoContexts  *tc_src  = img->currentSlice->tex_ctx;
  MotionInfoContexts   *mc_dest = cs->mot_ctx;
  TextureInfoContexts  *tc_dest = cs->tex_ctx;
  Macroblock           *currMB  = &(img->mb_data [img->current_mb_nr]);


  if (!input->rdopt)  return;

  if (cs->symbol_mode==CABAC)
  {
  //=== important variables of data partition array ===
	//only one partition for IDR img
  for (i = 0; i <(img->currentPicture->idr_flag? 1:cs->no_part); i++)
  {
    ee_src  = &(img->currentSlice->partArr[i].ee_cabac);
    bs_src  =   img->currentSlice->partArr[i].bitstream;
    ee_dest = &(cs->encenv   [i]);
    bs_dest = &(cs->bitstream[i]);

    memcpy (ee_dest, ee_src, sizeof(EncodingEnvironment));
    memcpy (bs_dest, bs_src, sizeof(Bitstream));
  }

  //=== contexts for binary arithmetic coding ===
    memcpy (mc_dest, mc_src, sizeof(MotionInfoContexts));
    memcpy (tc_dest, tc_src, sizeof(TextureInfoContexts));
  
  }
  else
  {
    //=== important variables of data partition array ===
  for (i = 0; i <(img->currentPicture->idr_flag? 1:cs->no_part); i++)
  {    
    bs_src  =   img->currentSlice->partArr[i].bitstream;   
    bs_dest = &(cs->bitstream[i]);
      memcpy (bs_dest, bs_src, sizeof(Bitstream));
    }
  }
  //=== syntax element number and bitcounters ===
  cs->currSEnr = currMB->currSEnr;
  memcpy (cs->bitcounter, currMB->bitcounter, MAX_BITCOUNTER_MB*sizeof(int));

  //=== elements of current macroblock ===
  memcpy (cs->mvd, currMB->mvd, 2*2*BLOCK_MULTIPLE*BLOCK_MULTIPLE*sizeof(int));
  cs->cbp_bits = currMB->cbp_bits;
}


/*!
 ************************************************************************
 * \brief
 *    restore coding state (for rd-optimized mode decision)
 ************************************************************************
 */
void
reset_coding_state (CSptr cs)
{
  int  i;

  EncodingEnvironment  *ee_src, *ee_dest;
  Bitstream            *bs_src, *bs_dest;

  MotionInfoContexts   *mc_dest = img->currentSlice->mot_ctx;
  TextureInfoContexts  *tc_dest = img->currentSlice->tex_ctx;
  MotionInfoContexts   *mc_src  = cs->mot_ctx;
  TextureInfoContexts  *tc_src  = cs->tex_ctx;
  Macroblock           *currMB  = &(img->mb_data [img->current_mb_nr]);


  if (!input->rdopt)  return;

  if (cs->symbol_mode==CABAC) 
  {
  //=== important variables of data partition array ===
  //only one partition for IDR img
  for (i = 0; i <(img->currentPicture->idr_flag? 1:cs->no_part); i++)
  {
    ee_dest = &(img->currentSlice->partArr[i].ee_cabac);
    bs_dest =   img->currentSlice->partArr[i].bitstream;
    ee_src  = &(cs->encenv   [i]);
    bs_src  = &(cs->bitstream[i]);

    //--- parameters of encoding environments ---
    memcpy (ee_dest, ee_src, sizeof(EncodingEnvironment));
    memcpy (bs_dest, bs_src, sizeof(Bitstream));
  }


  //=== contexts for binary arithmetic coding ===
    memcpy (mc_dest, mc_src, sizeof(MotionInfoContexts));
    memcpy (tc_dest, tc_src, sizeof(TextureInfoContexts));
    
  }
  else
  {
    //=== important variables of data partition array ===
	//only one partition for IDR img
  for (i = 0; i <(img->currentPicture->idr_flag? 1:cs->no_part); i++)

    {
      bs_dest =   img->currentSlice->partArr[i].bitstream;
      bs_src  = &(cs->bitstream[i]);

      //--- parameters of encoding environments ---   
      memcpy (bs_dest, bs_src, sizeof(Bitstream));
    }
  }

  //=== syntax element number and bitcounters ===
  currMB->currSEnr = cs->currSEnr;
  memcpy (currMB->bitcounter, cs->bitcounter, MAX_BITCOUNTER_MB*sizeof(int));

  //=== elements of current macroblock ===
  memcpy (currMB->mvd, cs->mvd, 2*2*BLOCK_MULTIPLE*BLOCK_MULTIPLE*sizeof(int));
  currMB->cbp_bits = cs->cbp_bits;
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩二区三区四区| 欧美日本视频在线| 美女视频免费一区| 午夜久久久久久| 亚洲影视资源网| 亚洲国产精品久久久久婷婷884| 国产蜜臀97一区二区三区| 国产日韩欧美精品一区| 日本一区二区三区四区在线视频| 国产亚洲成aⅴ人片在线观看| 久久久精品日韩欧美| 国产精品丝袜一区| 国产精品白丝在线| 亚洲品质自拍视频网站| 午夜精品一区二区三区电影天堂| 日韩精品一区第一页| 精品一区二区三区日韩| 91在线视频网址| 91福利资源站| 日韩久久久精品| 国产精品丝袜一区| 亚洲国产成人tv| 久久97超碰国产精品超碰| 国产成人精品网址| 欧美中文字幕一区二区三区| 6080国产精品一区二区| 久久久久国产一区二区三区四区| 日韩一区欧美一区| 日av在线不卡| www.日本不卡| 日韩精品中文字幕在线一区| 国产精品私房写真福利视频| 日一区二区三区| 国产成人av电影在线| 欧美日韩视频在线观看一区二区三区| 欧美一级国产精品| 亚洲日本韩国一区| 激情综合色综合久久| 欧美性一二三区| 国产网红主播福利一区二区| 亚洲国产人成综合网站| 国产成人一级电影| 久久久久久久久久久电影| 综合久久一区二区三区| 久久国产视频网| 欧洲国内综合视频| 中文字幕av不卡| 极品少妇xxxx精品少妇| 欧美日韩一区成人| 亚洲视频网在线直播| 国内精品国产成人| 7777精品伊人久久久大香线蕉| 国产精品亲子伦对白| 九九热在线视频观看这里只有精品| 色久综合一二码| 国产精品嫩草影院av蜜臀| 麻豆成人免费电影| 在线91免费看| 夜夜精品视频一区二区| 99在线精品观看| xf在线a精品一区二区视频网站| 五月天激情小说综合| 欧美性videosxxxxx| 亚洲三级在线看| 成人av资源在线| 国产精品情趣视频| 成人丝袜视频网| 日本一区二区免费在线观看视频 | 国模套图日韩精品一区二区| 欧美日韩国产123区| 一区二区三区日韩| 欧美性极品少妇| 亚洲自拍偷拍麻豆| 欧洲精品一区二区三区在线观看| 亚洲色图欧洲色图| 在线免费观看日本一区| 一区二区三区影院| 欧美日韩国产123区| 午夜日韩在线电影| 欧美日韩欧美一区二区| 国产精品毛片大码女人| 成人性视频网站| 亚洲视频你懂的| 在线观看国产日韩| 日本欧美一区二区三区| 欧美r级电影在线观看| 精品亚洲免费视频| 欧美激情综合五月色丁香小说| 国产福利精品一区二区| 国产精品电影院| 欧美三级电影在线看| 日韩有码一区二区三区| 久久综合五月天婷婷伊人| 国产黄色精品视频| 综合色天天鬼久久鬼色| 欧美日韩一本到| 国产在线视频一区二区三区| 中文字幕在线免费不卡| 欧美性色黄大片| 激情五月婷婷综合网| 国产精品女同一区二区三区| 欧美日韩日日摸| 国产一区不卡精品| 亚洲欧美一区二区三区国产精品| 色综合激情久久| 久久99精品国产麻豆婷婷洗澡| 久久精品一区二区三区av| 色综合久久88色综合天天6| 男男视频亚洲欧美| 国产精品丝袜91| 欧美日韩高清一区二区| 激情五月播播久久久精品| 亚洲视频中文字幕| 久久亚洲一区二区三区四区| 色婷婷久久一区二区三区麻豆| 美腿丝袜在线亚洲一区| 综合婷婷亚洲小说| xf在线a精品一区二区视频网站| 91色乱码一区二区三区| 国内精品久久久久影院色| 亚洲精品高清在线观看| 久久久久久一级片| 欧美日韩大陆一区二区| 成人高清免费在线播放| 激情都市一区二区| 午夜精品在线视频一区| 亚洲免费av在线| 日本一区二区三区四区 | 久久女同互慰一区二区三区| 色综合久久天天| 成人国产一区二区三区精品| 免费高清视频精品| 亚洲国产精品久久不卡毛片 | www.激情成人| 国产一区不卡视频| 精品一区中文字幕| 日韩av高清在线观看| 一区二区三区在线观看国产| 国产精品国产自产拍在线| 久久综合狠狠综合| 日韩一级完整毛片| 日韩欧美一级二级三级久久久| 欧美色综合网站| 在线欧美日韩国产| 色婷婷综合久久久久中文一区二区| 国产又黄又大久久| 国产精品综合二区| 国产一区在线视频| 国产曰批免费观看久久久| 狠狠色伊人亚洲综合成人| 免费国产亚洲视频| 久久国产精品色| 国产在线一区二区综合免费视频| 日本人妖一区二区| 老司机精品视频一区二区三区| 日韩黄色小视频| 久久99国内精品| 国产综合色产在线精品| 国产在线不卡一区| 福利一区二区在线观看| av在线不卡电影| 91成人在线观看喷潮| 欧美三级视频在线| 51精品视频一区二区三区| 欧美日产在线观看| 日韩精品中文字幕一区二区三区 | 99国产精品国产精品久久| 色综合天天综合给合国产| 欧洲一区二区三区在线| 精品视频1区2区3区| 欧美一级日韩一级| 久久青草欧美一区二区三区| 国产精品久久久久久久久久免费看 | 91国产福利在线| 欧美久久久久久蜜桃| 久久麻豆一区二区| 亚洲欧美怡红院| 欧美aaaaa成人免费观看视频| 国产电影一区在线| 在线观看视频欧美| 2017欧美狠狠色| 亚洲女同一区二区| 蜜臀久久99精品久久久久久9| 国产精品一区二区久久不卡 | 91精品国产乱码久久蜜臀| 精品精品国产高清一毛片一天堂| 国产欧美日韩一区二区三区在线观看| 中文字幕一区日韩精品欧美| 图片区日韩欧美亚洲| 岛国av在线一区| 欧美丝袜丝交足nylons| 久久久久久久精| 亚洲国产中文字幕| 成人亚洲精品久久久久软件| 4438成人网| 久久在线免费观看| 亚洲成av人片在线观看无码| 国产不卡视频一区二区三区| 在线电影国产精品| 一色桃子久久精品亚洲|