HEVC中CU和TU的划分的过程
2015-10-20 21:26
309 查看
在HEVC中,不仅要在当前CU中确定最佳的预测模式,还要判决当前CU的划分方式是不是最佳的划分方式。具体的实现过程是,我们先在当前CU里求出最佳的三个候选预测模式,所涉及函数是predIntraLumaAng和m_pcEdCost->calcHAD,xModeBitsIntra以及xUpdateCandList,然后再模式预测算法再选出三个候选模式添加到刚刚的候选模式列表中,当然,如果有些模式重合,则合并。利用这个最终的候选模式列表,我们进行最终的预测模式的确定,首先进行DCT变换,然后进行量化编码,然后进行RDCost的计算,然后和之前的预测模式的RDCost进行比较,来判决当前的预测模式是不是最佳,所涉及函数xRecurIntraCodingQT顶层函数,和xIntraCodingLumaBlk,其中这个底层函数又包括predIntraLumaAng预测函数,m_pcTrQuant->transformNxN变换和量化函数,m_pcRdCost->getDistPart失真求和计算函数,从xIntraCodingLumaBlk函数出来后,又会经过m_pcRdCost->calcRdCost率失真计算函数。最后和其他预测模式比较,选择最优的RDCost所对应的预测模式。注意这都是再当前CU中完成,程序的目的也仅仅是选择最佳的预测模式,不涉及CU模式的判决。
经过上面所述,当前的CU的最佳预测模式已经确定,同时最佳预测模式下对应的重建图像的数据和残差数据也已经存入到对应的对象中。下一步就是对CU进行递归了,每递归一次,程序就会经过上面所述的过程一次。对CU的递归其实也就是对TU的递归以及对PU的递归。再HM中,一个CU是不向下划分成PU进行预测的,而是把整个CU当成一个PU进行预测;同样,再对候选模式进行最佳模式判决的时候,也有预测的过程,而且预测的过程是以TU为单位的,除了64x64要划分成4个TU分别进行预测之外,其他情况下,也是把CU当作一个TU来进行预测的。另外,CU递归的详细过程在http://blog.csdn.net/buyi_shizi/article/details/49246323已经介绍过。
经过上面所述,当前的CU的最佳预测模式已经确定,同时最佳预测模式下对应的重建图像的数据和残差数据也已经存入到对应的对象中。下一步就是对CU进行递归了,每递归一次,程序就会经过上面所述的过程一次。对CU的递归其实也就是对TU的递归以及对PU的递归。再HM中,一个CU是不向下划分成PU进行预测的,而是把整个CU当成一个PU进行预测;同样,再对候选模式进行最佳模式判决的时候,也有预测的过程,而且预测的过程是以TU为单位的,除了64x64要划分成4个TU分别进行预测之外,其他情况下,也是把CU当作一个TU来进行预测的。另外,CU递归的详细过程在http://blog.csdn.net/buyi_shizi/article/details/49246323已经介绍过。
相关文章推荐
- dom4j XMLWriter 设置xml文件为UTF-8
- 您可能不曾注意的C++内置类型选择和使用的注意事项
- iWebShop -- 代替ecshop 的开源电子商务网站系统
- Mac下Tomcat的下载安装和配置
- 黑马程序员--【阳哥笔记】Java基础之笔记系列(全)
- Linux下的网络编程模型总结
- 输入一个链表,从尾到头打印链表每个节点的值
- JBOSS.71.1.Final安装配置
- ubuntux下apk反编译工具安装
- Java反射实例-Reflect
- Java 中关于原码,反码,补码的问题及常用的逻辑运算
- BASE64Encoder 加密中文乱码
- Squid Proxy Server 3.1
- 单例
- 如何判断一个链表是否有环?以及对一些文章的错误的看法
- hadoop2.2环境配置
- 【脚本程序】Openssl利用脚本
- SuperSlide -- “焦点图/幻灯片”“Tab标签切换”“图片滚动”“无缝滚动”特效集成
- codeforces #317 C. Lengthening Sticks (很好的想法题)
- 富翁手机游戏开发实战----书中代码下载地址