联发科公司提出的QTBT块结构被JVET采纳,集成在JEM3.0及其后的版本中,替代了原来HEVC的四叉树(QT)块结构。QTBT与四叉树划分的主要区别:
1、QTBT块结构在四叉树的叶结点,继续往下做二叉树递归遍历,其中二叉树可以水平划分或垂直划分。
2、在QTBT块结构中,CB=PB=TB,也就是说取消了PU/TU/PB/TB的概念,预测块即是变换块。
3、I slice的亮度分量的CTB和色度分量的CTB划分脱钩,单独划分。
4、四叉树结构的亮度分量的CTB最大为64x64,而QTBT结构亮度分量的CTB的大小默认从128x128开始,且最大可以设置为256x256。
QTBT块结构图例:
从上图可以看到,QTBT块结构先做四叉树划分,然后在四叉树叶结点做二叉树划分。
QTBT性能:
1、BD-Rate平均在-4%左右,LD配置增益最大,RA配置增益次之,AI配置增益最小。
2、编码时间是原来的2.2~5.6倍,AI配置增加的编码时间最多(5.6倍),该算法的编码复杂度在提案JVET-C0105中被诟病;解码时间是原来的105%~112%。
QTBT算法实现的伪代码:
伪代码说明:
1、函数QTBT_RDO对应的JEM代码中的函数为TEncCu::xCompressCU。
2、TryInterPredMode/TryIntraPredMode函数对应的JEM函数为
TEncCu::xCheckRDCostInter/TEncCu::xCheckRDCostMerge2Nx2N/TEncCu::xCheckRDCostIntra
3、TEncCu::xCompressCU函数中调用自己次,分别是水平划分调用两次、垂直划分调用两次、四叉树划分调用四次。
此技术在JEM4.0中对应的标签为JVET_C0024_QTBT。