GetBlkBits函数的主要功能是计算使用某种PU划分模式的时候,该种模式占用的比特数

Void TEncSearch::xGetBlkBits( PartSize eCUMode, Bool bPSlice, Int iPartIdx, UInt uiLastMode, UInt uiBlkBit[3])
{if ( eCUMode == SIZE_2Nx2N ){uiBlkBit[0] = (! bPSlice) ? 3 : 1;uiBlkBit[1] = 3;uiBlkBit[2] = 5;}else if ( (eCUMode == SIZE_2NxN || eCUMode == SIZE_2NxnU) || eCUMode == SIZE_2NxnD ){UInt aauiMbBits[2][3][3] = { { {0,0,3}, {0,0,0}, {0,0,0} } , { {5,7,7}, {7,5,7}, {9-3,9-3,9-3} } };if ( bPSlice ){uiBlkBit[0] = 3;uiBlkBit[1] = 0;uiBlkBit[2] = 0;}else{::memcpy( uiBlkBit, aauiMbBits[iPartIdx][uiLastMode], 3*sizeof(UInt) );}}else if ( (eCUMode == SIZE_Nx2N || eCUMode == SIZE_nLx2N) || eCUMode == SIZE_nRx2N ){UInt aauiMbBits[2][3][3] = { { {0,2,3}, {0,0,0}, {0,0,0} } , { {5,7,7}, {7-2,7-2,9-2}, {9-3,9-3,9-3} } };if ( bPSlice ){uiBlkBit[0] = 3;uiBlkBit[1] = 0;uiBlkBit[2] = 0;}else{::memcpy( uiBlkBit, aauiMbBits[iPartIdx][uiLastMode], 3*sizeof(UInt) );}}else if ( eCUMode == SIZE_NxN ){uiBlkBit[0] = (! bPSlice) ? 3 : 1;uiBlkBit[1] = 3;uiBlkBit[2] = 5;}else{printf("Wrong!\n");assert( 0 );}
}

HM编码器代码阅读(15)——帧间预测之AMVP模式(三)xGetBlkBits函数相关推荐

  1. HM编码器代码阅读(16)——帧间预测之AMVP模式(四)预测MV的获取

    帧间预测的原理 AMVP的原理 帧间预测的实质就是为当前的PU在参考帧中寻找一块最相似块(相似度的判断准则有SAD等方法).但是参考图像通常都比较大,我们直接去搜索的话就太费时了,应该使用某种方法在参 ...

  2. HM编码器代码阅读(13)——帧间预测之AMVP模式(一)总体流程

    帧间预测的原理 AMVP的原理 帧间预测的实质就是为当前的PU在参考帧中寻找一块最相似块(相似度的判断准则有SAD等方法).但是参考图像通常都比较大,我们直接去搜索的话就太费时了,应该使用某种方法在参 ...

  3. HM编码器代码阅读(14)——帧间预测之AMVP模式(二)predInterSearch函数

    简介     predInterSearch主要的工作是ME(运动估计)和MC(运动补偿).     函数中有一个bTestNormalMC变量,它表示是否进行正常的MC过程,正常的MC过程就是进行M ...

  4. HM编码器代码阅读(30)——帧间预测之AMVP模式(五)运动估计

    运动估计 通过 点击打开链接 介绍的方法得到MVP之后,可以根据该MVP确定运动估计的搜索起点,然后进行运动估计 xMotionEstimation就是进行运动估计的入口函数     1.先进行一些初 ...

  5. HM编码器代码阅读(32)——帧间预测之AMVP/Merge模式(七)encodeResAndCalcRdInterCU函数:残差计算、变换量化

    encodeResAndCalcRdInterCU 原理和细节 经过运动估计.运动补偿,我们得到了MV以及参考块,那么接下来是计算残差.计算MVD,然后对系数进行变换.量化. encodeResAnd ...

  6. HM编码器代码阅读(31)——帧间预测之AMVP/Merge模式(六)运动补偿

    运动补偿 原理 说实话一直很难理解运动补偿中"补偿"二字的意思,在参考了 http://blog.csdn.net/hevc_cjl/article/details/8457642 ...

  7. HM编码器代码阅读(38)——帧内预测(五)帧内预测之正式的预测操作

    正式的预测操作 在前面的操作中,我们已经得到了模式候选列表,但是我们的目的是要得到一个最优的模式,因此我们还需要对这个列表中的模式进行遍历,对于每一个模式,进行预测操作,为了计算率失真代价还必须进行变 ...

  8. HM编码器代码阅读(14)——帧间预測之AMVP模式(二)predInterSearch函数

    简单介绍     predInterSearch基本的工作是ME(运动预计)和MC(运动补偿).     函数中有一个bTestNormalMC变量.它表示是否进行正常的MC过程,正常的MC过程就是进 ...

  9. HM代码阅读1: 帧间预测函数Void TEncSearch::predInterSearch()

    AMVP理论知识简单回顾(含GPB) MVP主要是为了给当前PU提供一个运动矢量的预测,可加快ME的计算速度以及提升准确性.并且在后续编码中也只用编码MVD,减少了传输bit数. HM中获取每个参考图 ...

最新文章

  1. 手机应用:非功能需求 Check List
  2. hive中的单分区与多分区在hadoop上的对应关系
  3. some more debugging screenshot about timeformat in DatePicker 15
  4. 【云周刊】第205期:阿里云重磅开源实时计算平台Blink,挑战计算领域的“珠峰”...
  5. 2017-2018-2 20179306 《网络攻防技术》第十周作业
  6. 惠而浦扫地机器人充不进电_【今日关注】惠而浦扫地机器人怎么样?体验2个月之肺腑之言? | 智能扫地机器人评测...
  7. python 获取表格中的空数据_在python beautifulsoup中获取表格单元格值为空时的文本输出...
  8. 使用hive计算每一年的最大气温的日期+温度
  9. 两分钟实现安全完备的登录模块
  10. python3视频教程哪个好_python3入门视频教程
  11. 广外男生病毒代码剖析
  12. R语言数据缺失值处理
  13. 差分技术:LVDS(低电压差分信号)
  14. Pug 介绍和在 Vue 中使用
  15. 华为往事(十一)---华为的“中南海”
  16. HDU 1069 Monkey and Banana
  17. 如何用短代码实现内容WordPress会员登录可见?
  18. 苹果微信分身版ios_苹果手机怎么下载微信分身
  19. 对openmv色块查找的思考笔记
  20. 在windows7下农业银行网银(金e顺)不能使用

热门文章

  1. 简要介绍下tensorflow的计算图
  2. 2016全球大数据战略版图剖析(4):分析篇下
  3. 【菜菜的sklearn课堂笔记】决策树-分类树
  4. python进阶数据分析_数据分析--Part 2: Python进阶
  5. 联想笔记本声音太小怎么办_电脑音量调到最大了还是声音太小,怎么办啊??...
  6. HDU1116 Play on Words——欧拉路(有向图+并查集)
  7. 5种经典的Linux桌面系统
  8. Markdown的书写方法
  9. 华为用linux系统装eclipse,centos装eclipse
  10. linux tar 压缩 删除源文件,Linux tar 如何在压缩之后删除原文件