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


    联发科公司提出的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。

  • 相关阅读:
    定时任务时间表达式的规则(自己总结)
    本地vagrant配置虚拟域名的坑
    商派onex本地部署无法进入的问题
    一周一篇文章,立贴为证
    Ecshop安装的坑,建议不要使用!
    MYSQL查询语句优化
    .gitignore文件
    剖析Disruptor:为什么会这么快?(二)神奇的缓存行填充
    Disruptor 为什么这么快?
    一篇文章让你成为 NIO 大师 - MyCAT通信模型
  • 原文地址:https://www.cnblogs.com/SoaringLee/p/10532392.html
Copyright © 2020-2023  润新知