关于H.265/HEVC和H.266/VVC中的块划分的区别:

一、HEVC中首先需要将一个图像固定划分为多个CTU。

① CTU的尺寸固定划分为64×64,一个CTU由一个亮度CTB和两个色度CTB,再加上相应的语法元素组成。
② CTU可以通过四叉树的方式向下划分为一个个小的CU,一个CU由一个亮度CB和两个色度CB再加上相应的语法元素组成。
③ CTU划分的CU最大尺寸是64×64(即整个CTU可独立作为一个CU),最小尺寸为8×8,CTU最多划分3层,通过划分深度就能确定CU块的大小了。每个CU都是正方形的。
④ CTU根据图像的纹理特征划分为CU后,需要对CU进一步划分为PUTU进行预测和变换,一个PU由一个亮度PB和两个色度PB再加上相应的语法元素组成。
⑤CU划分为PU时有8种固定划分方式(类“四叉树”、“二叉树”),划分的PU最大尺寸是CU的大小,最小尺寸是CU的1/4,从CU到PU的划分最多允许1层。
⑤TU和PU类似,也是在CU基础上划分的,但是TU和PU的划分是独立的,CU划分为TU的方式和CTU划分为CU的方式是一样的,只有四叉树一种,CU四叉树划分成的TU会形成一个残差四叉树,因此CU和TU一样都是方形的。TU最大尺寸为64x64,最小为4x4,但是由于DCT变换运算的最大尺寸为32x32,所以64x64的TU隐含着必须进一步划分成4个32x32的TU。

这里:
亮度CTB大小是:64×64
色度CTB大小是:32×32;

亮度CB大小是:8×8~64×64
色度CB大小是:4×4~32×32

亮度PB的大小是4×4~64×64;
色度PB的大小是2×2~32×32;

亮度TU的大小:4×4~ 64×64(实际是4×4~32×32)
色度TU的大小:2×2~ 32×32(实际是4×4~16×16)
CTU、CU、TU都是方形块,比较单一

二、HEVC到VVC的过度版本JEM

我们需要提前知道的是,在JEM中取消了CU、PU、TU的概念,即CTU划分为CU后不再进行PU和TU的划分,直接对CU进行预测,然后接着进行变换量化!!CU=PU=TU。

VVC打破了HEVC中的划分结构,引入了四叉树+二叉树划分(BT),称之为混合树编码结(MTT),更加灵活。因此,在该QTBT划分结构中,最终划分的CU既有方形块又有矩形块。

VVC中提出亮度块和色度块独立划分,色度不再继承亮度的划分情况。对于P和B Slice,亮度和色度使用同一QTBT结构划分,亮度和色度三个分量属于同一CU;对于I Slice,亮度和色度会使用不同的QTBT结构划分,因此亮度分量和色度分量属于不同的CU中,一个CU包含一个亮度分量或两个色度分量。

JEM中也是需要先将图像固定的划分为多个CTU,以CTU为基本单元进行预测编码。

① CTU的尺寸固定划分为128×128,一个CTU由一个亮度CTB和两个色度CTB,再加上相应的语法元素组成。
②CTU到CU的划分,一个CU由一个亮度CB和两个色度CB再加上相应的语法元素组成:
(1)树形编码块(CTB)根节点先进行四叉树划分
(2)然后在四叉树的叶子节点上再进行二叉树划分。二叉树有两种划分方式:水平对称划分和垂直对称划分。二叉树的叶子节点就是最终的编码单元CU,不用再进一步分割,可以直接用来预测和变换,这就意味着CU、PU和TU在新的编码结构中有相同的块尺寸。
(3)如下图是一个QTBT结构示例,实现表示四叉树划分,虚线表示二叉树划分,而二叉树的每一次划分中用flag来标识划分方式:0为水平划分,1为垂直划分。而四叉树是不用标识的,它总是进行四等分划分。


③关于QTBT的重要参数:
-CTU Size(CTU所允许的最大尺寸):四叉树根节点尺寸,和HEVC中概念相同。
-MinQTSize:允许的最小四叉树叶子节点尺寸,即四叉树划分后的最小块尺寸。
-MaxBTSize:允许的最大二叉树根节点尺寸,即四叉树划分的叶子节点的最大尺寸,此时二叉树划分深度为0。
-MaxBTDepth:允许的最大二叉树深度。
-MinBTSize:允许的最小二叉树叶子节点尺寸。

例如,在一个QTBT结构中,CTU Size被设置为128x128,MinQTSize设置为16x16,MaxBTSize设置为64x64,MinBTSize(对应宽度和高度)设置为4,MaxBTDepth设置为4。

首先四叉树分割应用于CTU来生成四叉树的叶子节点。四叉树叶子节点可以为16x16(MinQTSize)到128x128(CTU Size)。如果叶子四叉树节点为128x128,大于MaxBTSize,不能进行二叉树划分。当四叉树节点小于等于64x64时,可以进行二叉树划分,四叉树叶子节点也就是二叉树的根节点,它的二叉树深度为0,直到出现以下三种情况,停止二叉树划分:

(1)当二叉树深度到达MaxBTDepth(这里为4)。(2)当二叉树节点的宽度等于MinBTSize(这里为4)。(3)当二叉树节点高度等于MinBTSize

划分的最后:二叉树的叶子节点被称为CU无需进一步分化可进行预测和变换进一步处理,也就没有了CU、PU和TU的划分。

JEM中默认参数如下:

这里:
亮度CTB大小是:128×128
色度CTB大小是:64×64;

亮度CB大小是:4×4~64×64(但在代码中实际还是会把128×128的块强制划分为64×64)
色度CB大小是:2×2~32×32

三、如今日渐成熟的VVC----VTM

现在的VVC使用的MTT中新加入了三叉树划分

QT+MTT结构中的四叉树划分与HM相同,二叉树/三叉树划分结构示意图如下,就是在JEM的QT+BT基础上增加了三叉树划分,使得划分变得更加灵活。划分后的CU可以为正方形或矩形。

①在CTU进行划分时,不限定父块的形状,也就是说矩形也可以继续划分二叉树或三叉树。当然也会限制一些划分情况,防止出现多余的划分,比如:
a.当水平BT划分的第一个子CU进一步垂直BT划分时,第二个子CU中的垂直BT划分被禁用,防止划分成四叉树。

b.当垂直BT划分的第一个子CU进一步水平BT划分并且当QT划分可用时时,第二个子CU中的水平BT划分被禁用,防止划分成四叉树。

c…水平TT划分的第二个子CU中的水平BT划分被禁用,防止与两个二叉树划分重合。

d.垂直TT划分的第二个子CU中垂直BT划分被禁用,防止与两个二叉树划分重合。

e.垂直BT划分的第一个子CU进一步水平TT划分时,第二个子CU中的水平TT划分被禁用,防止与二叉树和三叉树划分重合;

f.水平BT划分的第一个子CU进一步垂直TT划分时,第二个子CU中的垂直TT划分被禁用,防止与二叉树和三叉树划分重合。

②划分的步骤如下所示:
首先进行QT划分,当QT划分结束后,会进行MTT(BT+TT)划分。
需要注意的两点是:
1.MTT划分得到的CU不会在进行QT。
2.MTT划分中,BT划分得到的CU可以继续进行TT,TT得到的CU也可以进行BT。


这里:
亮度CTB大小是:128×128
色度CTB大小是:64×64;

亮度CB大小是:4×4~64×64(但在代码中实际还是会把128×128的块强制划分为64×64)
色度CB大小是:4×4~32×32

在最新的VTM5.0的版本中,将2×2,2×4,4×2色度块给禁用了,因此色度块的最小尺寸是4×4

H.266/VVC相关技术学习笔记4:HEVC和VVC中块划分的差别相关推荐

  1. H.266/VVC相关技术学习笔记16:VTM6.0中的CIIP技术(帧内帧间联合预测)

    今天讲一下目前VTM6.0版本中的CIIP技术,CIIP即为帧内帧间联合预测技术,这属于Merge系列的一个分支. 该技术需要先计算当前预测块的帧内预测值,即用Planar.DC.角度预测等传统的帧内 ...

  2. H.266/VVC相关技术学习笔记18:帧间预测中的AMVR技术(自适应运动适量精度)

    AMVR技术也称为自适应运动适量精度技术,就是在以前的HEVC中,MVD的精度只有一个默认的1/4像素精度,但是由于要适应不同分辨率的图像,仅仅使用一个精度去表示MVD是远远不够的,因此在VTM6.0 ...

  3. H.266/VVC相关技术学习笔记20:帧间预测技术中的MMVD技术(Merge mode with MVD)

    今天介绍一下帧间预测技术中的MMVD技术(Merge mode with MVD),也称带有运动矢量差的融合技术,MMVD也属于基于Merge的技术中的一种,在解码端的语法元素中也属于Merge分支. ...

  4. H.266/VVC相关技术学习笔记21:帧间预测中五种Merge模式的熵编码方式

    今天主要详细讲一下帧间预测中五种Merge模式的熵编码方式,以及对应的VTM的代码中的编码方式的实现.现阶段VTM6.0中Merge模式大致上分为五种,分别是Subblock_Merge.MMVD_M ...

  5. SpringBoot整合第三方技术学习笔记(自用)

    SpringBoot整合第三方技术学习笔记 搬运黑马视频配套笔记 KF-4.数据层解决方案 KF-4-1.SQL 回忆一下之前做SSMP整合的时候数据层解决方案涉及到了哪些技术?MySQL数据库与My ...

  6. 小五思科技术学习笔记之SSH

    下面介绍一下相关概念: SSH的概念: SSH的英文全称为Secure Shell,SSH使用TCP的22号端口,其目的是要在非安全的网络上提供安全的远程登陆和其他安全的网络服务, 为什么要使用SSH ...

  7. 知识图谱技术学习笔记

    知识图谱技术学习笔记 从一开始的Google搜索,到现在的聊天机器人.大数据风控.证券投资.智能医疗.自适应教育.推荐系统,无一不跟知识图谱相关.它在技术领域的热度也在逐年上升. 本文以通俗易懂的方式 ...

  8. hadoop大数据开发技术学习笔记第三天:(前序)MySQL数据库进阶

    hadoop大数据开发技术学习笔记第三天:(前序)MySQL数据库进阶 一.回顾知识 1.myschool数据库和数据表的创建 (1)创建数据库 (2)数据库模型图 (3)创建数据表grand (4) ...

  9. java mvc框架代码_JAVA技术学习笔记:SpringMVC框架(内附入门程序开发代码)

    原标题:JAVA技术学习笔记:SpringMVC框架(内附入门程序开发代码) JavaEE体系结构包括四层,从上到下分别是应用层.Web层.业务层.持久层.Struts和SpringMVC是Web层的 ...

最新文章

  1. 想学习测试人必看的5本好书,没看过你就吃亏啦
  2. 最短路算法总结(入门版)
  3. FMDB支持的事务类型
  4. 完美解决 IOS系统safari5.0 浏览器页面布局iframe滚动栏失效问题
  5. 锐捷网络交换机配置命令大全
  6. 阿里云分布式容器平台即将全面启动公测
  7. DataGrid/DataList在ASP.NET中应用
  8. 11.Excel数据分析-复合型饼图与漏斗图
  9. zoj3777(状态压缩)
  10. 求生2本地服务器怎么修改参数,《求生之路2》服务器指令及难度参数设置(难度篇).pdf...
  11. 小米真香产品被友商怼:只有USB2.0接口 怎么播高码率的视频?
  12. java transient关键字_嗯?你真的会用 Java 序列化机制?
  13. 只更新服务器代码有变更的文件,签出TFS 2010变更集中的文件(check out files in TFS 2010 changeset)...
  14. ACCESS集团VTN 引领跨境电商新机遇 助力海外品牌找到增长突破口
  15. Python自学篇——快递分拣程序
  16. php 数字转换为字符串,PHP-将数字转换为Excel的字符串
  17. html5怎么修改图片大小,HTML5 javascript修改canvas的大小
  18. 数组元素两两组合 php,js多个数组元素两两组合三三组合
  19. 基于JAVA控制台版本银行自动取款机(修改版)
  20. 在Mac中开发STM32单片机

热门文章

  1. leetcode【每日一题】514. 自由之路 Java【待完成
  2. 微服务器:概念,设计,优势与不足,核心,分类,联系,原则,基础,发展,选择,通信,定制
  3. java eclipse 查看版本_怎么查看eclipse的版本号
  4. 项目开发过程中如何使用免费开发手机验证码验证功能(详细教程)
  5. 【FPGA】04_关于“复位“的理解与总结
  6. H3C任意命令执行漏洞
  7. 计算机管理器里的WiFi不见了,电脑wifi图标不见了也连不上网
  8. Java知识点--类变量
  9. 微软过桥问题的图论解法
  10. win11,google chrome没有声音怎么办