【转】H.266 QTBT(Quadtree plus Binary Tree)块结构介绍

时间:2022-12-20 15:25:54

联发科公司提出的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块结构图例: 
【转】H.266 QTBT(Quadtree plus Binary Tree)块结构介绍 
从上图可以看到,QTBT块结构先做四叉树划分,然后在四叉树叶结点做二叉树划分。

QTBT性能: 
1、BD-Rate平均在-4%左右,LD配置增益最大,RA配置增益次之,AI配置增益最小。 
2、编码时间是原来的2.2~5.6倍,AI配置增加的编码时间最多(5.6倍),该算法的编码复杂度在提案JVET-C0105中被诟病;解码时间是原来的105%~112%。

QTBT算法实现的伪代码: 
【转】H.266 QTBT(Quadtree plus Binary Tree)块结构介绍

伪代码说明: 
1、函数QTBT_RDO对应的JEM代码中的函数为TEncCu::xCompressCU。 
2、TryInterPredMode/TryIntraPredMode函数对应的JEM函数为 
TEncCu::xCheckRDCostInter/TEncCu::xCheckRDCostMerge2Nx2N/TEncCu::xCheckRDCostIntra 
3、TEncCu::xCompressCU函数中调用自己次,分别是水平划分调用两次、垂直划分调用两次、四叉树划分调用四次。

此技术在JEM4.0中对应的标签为JVET_C0024_QTBT。