在看文章的时候看到这篇在知网上面的作者写的这篇文章。可以很清晰的介绍了H.264/AVC、H.265/HEVC、H.266/VVC 视频编码标准中图像划分技术的演进过程,分析不同编码标准图像划分技术的差异。

目前的视频编码标准都采用了基于块的混合编码方式,这种编码方式先以块为基本单元进行帧内或帧间的预测,然后对预测残差进行变换量化,最后将分块模式、预测信息以及量化后残差等进行熵编码,得到编码码流。随着编码标准的不断演进,分块技术也在不断地发展中,分块的方式呈现出从小块到大块,从简单划分到复杂划分的整体趋势,以达到不断提升编编码性能的目的。

1.H.264/AVC视频编码的图像划分

在 H.264/AVC 编码标准中, 将输入图像划分成固定的尺寸的块作为编码的基本单元,并把它称为宏块(MB,Macro Block), 包括一个亮度块和两个色度块, 亮度块大小为16×16。为简单起见,文中所描述的块大小均为亮度块的大小, 如果采用 4 :2 :0 采样,色度块大小为亮度块大小的一半。

在预测环节,根据预测模式的不同,将宏块进一步划分为用于预测的小块。帧内预测中可以把宏块划分成 16×16、8×8、4×4 的小块,每个小块分别进行帧内预测。帧间预测模式中分块方式有两个层级,首先可以把宏块划分为 16×16、16×8、8×16、8×8 的小块。若划分方式为 8×8,则把分成的四个块称为子宏块,子宏块可进行再次划分,划分为 8×8、8×4、4×8、4×4 的小块。每个小块均可独立进行运动估计, 但每个子宏块内的小块只能参考同一个参考帧。

在变换量化环节,将宏块划分为 4×4 或 8×8 的小块,将每个小块中的预测残差分别进行变换和量化,得到量化后系数。

此外,为了限制误码扩散和传输,H.264/AVC 中提出了条带(slice)的概念,将一幅图像划分为一个或多个 slice,每个slice 中的宏块按照光栅扫描的顺序进行编码。每个 slice 可以单独编码和传输,不受其他 slice 的影响,因此也有利于并行运算。

2.H.265/HEVC视频编码图像划分

HEVC的基本编码原理和H.264/AVC基本一致,即预测加变换的分块编码;在编码细节上和前者也很相似,包含帧内预测、帧间预测、运动估计与运动补偿、DCT变换、量化、环路滤波、熵编码和重建等编解码模块。但是与H.264/AVC相比。HEVC在每个编码环节都采取了重要的改进措施。

2.1 CTU 划分

一幅图像被分割成编码树单元(CTU,Coding Tree Unit), CTU 是编码的基本单元(概念上对应H.264/AVC 中的宏块)。一个 CTU 包含一个亮度编码树块(CTB,Coding Tree Block) 和两个色度编码树块,H.265/HEVC 标准中 CU 的最大尺寸一般为 64×64。

2.2Slice和Tile划分

H.265/HEVC 标准中每个 slice 可以进一步被划分为 slice 片段(segment),slice 片段包含独立 slice 片段(independent slice segment)和非独立 slice 片段(dependent slice segment)。一个 slice 可以包含一个或者多个 slice 片段,这些片段以独立slice 片段开始,跟随多个非独立 slice 片段。独立 slice 片段头的编码语法与前序 slice 片段无关,而非独立 slice 片段中部分编码语法元素值需要从解码顺序更前的 slice 片段头中导出。

图 3 中给出了 slice 划分的一个示例,该图像包含 11×9 个 CTU,划分为两个 slice,第一个 slice 由一个独立 slice 片段和两个非独立 slice 片段组成,第二个 slice 包含一个独立 slice 片段。

H.265/HEVC 编码标准在 H.264/AVC 基础上,还新增了 tile(片)的概念,与 slice 的条带状划分不同,tile 可以将图像水平和垂直划分为多个矩形区域,每个 tile 包含一个或多个 CTU, 按照扫描顺序进行编码,可以进一步增强并行处理的能力。图 4 中图像被垂直划分为两个 tile,左图中图像包含一个slice,该 slice 包含一个独立 slice 片段和 4 个非独立 slice 片段; 右图中第一个 tile 中包含两个 slice,第二个 tile 包含一个 slice。

2.3 CU 划分和编码树结构

为了适应多种多样的视频内容和视频特征,CTU 采用四叉树(QT,Quadro Tree)方式迭代划分为一系列编码单元(CU, Coding Unit),CU 是帧内/ 帧间编码的基本单元。一个 CU 包含一个亮度编码块 (CB,Coding Block) 和两个色度编码块及相关语法结构,最大 CU 大小为 CTU,最小 CU 大小为 8×8

2.4 PU 划分

经过 2.3 编码树划分得到的叶子节点 CU 根据预测方式的不同,可分为三种类型 :帧内预测的 intra CU、帧间预测的inter CU 和 skipped CU。skipped CU 可以看作是 inter CU 的特例,不包含运动信息和残差信息。叶子节点 CU 包含一个或者多个预测单元(PU,Prediction Unit),H.265/HEVC 支持 4×4〜 64×64 大小 PU,一共有八种划分模式。

对于帧内编码模式,可能的划分模式有两种 :Part_2Nx2N 和 Part_NxN。当且仅当 CU 的大小为最小 CU(SCU,Smallest CU)时,帧内预测才存在 Part_NxN 的划分,即可将一个 CU 划分为 4 个相同大小的 PU。

对于帧间编码模 式,可能的划分模式有八种 : Part_ 2Nx2N, Part_ 2NxN, Part_ Nx2N, Part_ 2NxnU, Part_2NxnD,Part_nLx2N,Part_nRx2N,Part_NxN 。 其 中 , Part_2NxnU,Part_2NxnD,Part_nLx2N,Part_nRx2N 属于非对称运动划分,当 CU 大于 SCU 时,才存在非对称划分模式。而对于 Part_NxN 划 分, 当且仅当当前 CU 为 SCU 且 SCU 大于 8×8 时才存在。对于 8×4 和 4×8 的划分,也仅在单向预测时存在

2.5 TU划分和变换树结构

对于残差信号,CU采用残差四叉树划分为变换单元TU。结构如图6所示。

一个 TU 包含一个亮度变换块(TB,Transform Block)和两个色度变换块。仅允许方形的划分,将一个 CB 划分为 1 个或者 4 个 PB。同一个 TU 具有相同的变换和量化过程,支持的大小为 4×4 到 32×32。与之前的编码标准不同,在帧间预测中,TB 可以跨越 PB 的边界,这样可以进一步最大化帧间编码的编码效率。

3、VVC/H.266视频编码图像划分

3.1 CTU划分和树结构

VVC/H.266视频编码图像首先划分跟HEVC相似的编码树单元 CTU,但是最大尺寸从 H.265/ HEVC 标准中的 64×64 提高到了 128×128, 可以适配更大的图像尺寸。

H.266/VVC 提出了四叉树和嵌套多类型树(MTT,Multi-Type Tree)划 分,MTT 包括二叉树(BT,Binary Tree)和三叉树(TT, Ternary Tree), 统 一 了 H.265/HEVC 中 CU、 PU、TU 的概念,并且支持更灵活的 CU 划分形状。CTU 按照四叉树结构进行划分,叶子节点通过 MTT 进一步划分,划分类型一共有4 种 :垂直二划分(SPLIT_BT_VER)、水平划分(SPLIT_BT_HOR)、垂直 1 :2 :1 三划分(SPLIT_TT_VER)和水平 1 :2 :1 三划分(SPLIT_TT_HOR),如图 6 所示。多类型树叶子节点成为编码单元 CU,当 CU 不大于最大变换单元(64×64)时,后续预测和变换不会 再进一步划分。所以大部分情况下,CU、PU、TU 都具有相同的大小。

在编码过程中,需要对图像划分信息进行标识,以便解码端可以正确解码,图 7 列出了具体的划分标识方法。CTU 为四叉树的根节点,qt_split_cu_ fag 标识是否采用四叉树结构划分。四叉树的叶子节点进一步采用 MTT 结构划分,mtt_split_cu_fag 用来标识是否采用 MTT 划分,如果采用,mtt_split_cu_vertical_fag 用来标识 MTT 划分方向,“1”代表垂直划分,“0”代表水平划分,再用 mtt_ split_cu_binary_fag 标识采用二分还是三分,最终确定该 CTU 的划分。

图 8 中给出了一种四叉树和嵌套多类型树的划分结构图, 这种划分方式可以根据图像内容自适应的划分,提升了划分灵活性。最大 CU 大小为 CTU,最小 CU 大小为 4×4,最大变换块大小为 64×64

3.2虚拟流水线单元

在硬件实现中,一般采用流水线数据处理方式,以确保高效性。将图像中非重叠的单元定义为虚拟流水线数据单元(VPDU,Virtual Pipeline Data Units),这些单元在同一时刻相互独立,因此可以实现流水数据处理。VPDU 大小与现在大多数流水线缓冲区大小密切相关,考虑到具体实现的限制,VPDU 设置为最大变换单元大小 64×64。但 H.266/VVC 中采用的 TT 和 BT 划分可能会导致 VPDU 尺寸变大,因此在最新的 H.266/VVC参考软件平台 VTM6.0 中对图像划分做了以下限制 :

  1. CU 的长和宽任意一项为 128 时,TT 禁用
  2. CU 宽为 128,高小于 128 时,BT 禁用 ;
  3. CU 高为 128,宽小于 128 时,BT 禁用。

图 9 中给出了 VTM6 中对划分的限制示例,CU 的宽和高均为 128,分成 4 个 64×64 的 VPDU,按照划分限制要求, 图中红线为禁用的划分。

3.3 色度分离树

考虑到亮度和色度的不同特性和具体实现的并行度,色度可以采用单独的划分树结构,而不必和亮度划分树保持一致。H.266/VVC 中I 帧的色度划分采用色度分离树,P 帧和 B 帧色度划分则与亮度划分保持一致。采用I 帧色度分离树划分后, 色度块的大小可能为 2×2、4×2 和 2×4,导致硬件实现流水线编码路径过长,不利于实际应用。因此,采用色度分离树划分时,禁用 2×2、4×2 和 2×4 的小块。

3.4 Slice,tile 和 brick 结构

H.266/VVC 编码在 H.265/HEVC 基础上,将 tile 进一步划分为 brick(砖块)。一个 tile 可以划分为一个或者多个 brick,一个 brick 包含一个 tile 的多行 CTU。

Slice 支持两种模式,一种是扫描顺序(raster-scan)slice 模式,另一类是矩形 slice 模式。扫描顺序 slice 模式与H.265/ HEVC 一致,一个 slice 可以包含一个或多个按照图像扫描模式顺序划分的 tile。矩形 slice 模式中,一个 slice 可以包含由图像矩形区域组成的多个 brick。

图 10 左图中一幅图像被水平和垂直划分为 12 个 tile,包含 3 个按照扫描顺序划分的 slice ;右图包含 4 个 tile,左上角的 tile 包含一个 brick,右上 tile 包含 5 个 brick,左下 tile 包含2 个 brick,右下 tile 包含 3 个 brick,一共包含 4 个矩形 slice。

4.不同编码图像划分技术对比分析

随着图像划分技术的不断演进,划分结构从简单的宏块结构到复杂的四叉树、二叉树、三叉树递归结构,亮度和色度从一致的划分结构发展为可分离划分,块组织结构从简单的 slice 扩充到 tile、brick 等新结构,编码、预测、变换块的大小和划分形状也更加丰富和灵活,不同编码标准对应的图像划分技术对比见表 1 所示

表1 图像划分技术对比

编码标准图像划分

H.264/AVC

H.265/HEVC

H.266/VVC

划分结构

宏块和子宏块

四叉树递归(CU/PU/TU

结构 )

四叉树和嵌套多类型树递归

亮度色度划分一致性

一致

一致

I 帧亮度色度可分离划分

块组织方式

扫描顺序slice

扫描顺序slice、

slice 片段、tile

扫描顺序slice、

slice 片段、矩形 slice、tile、brick

最大亮度编码块尺寸

16×16

64×64

128×128

最小亮度编码块尺寸

4×4

8×8

4×4

最大亮度预测块尺寸

16×16

64×64

128×128

最小亮度预测块尺寸

4×4

4×4

4×4

最大亮度变换块尺寸

8×8

32×32

64×64

最小亮度变换块尺寸

4×4

4×4

4×4

帧内预测块划分形状

方形

方形

方形 + 非方形

帧间预测块划分形状

对称

对称 + 单层非对称

对称 + 多层非对称

5.总结

随着 4K、8K 超高清等视频应用的出现,视频数据量爆发式增长,对编码技术提出了更高的需求。作为混合编码技术框架的基础,图像划分从单一、固定划分不断朝着多样、灵活的划分结构发展,能够更加高效的适配高分辨率图像的编解码处理。此外,新的图像划分采用了更加丰富的图像组织结构,有利于抗误码和并行处理的实现。但复杂的划分一般也会导致复杂度的显著提升,对编解码实现提出了更高的挑战,因此需要针对实际应用场‰对图像划分做一定的限制和优化,寻求编码性能和编码复杂度之间的平衡。

(若有侵权,立即删除!!!)

H.264/H.265/H.266三代视频编码的图像划分相关推荐

  1. H.264/AVC (advanced video coding 高级视频编码)

    在视频会议应用中,视频质量和网络带宽占用是矛盾的,通常情况下视频流占用的带宽越高则视频质量也越高:如要求高质量的视频效果,那么需要的网络带宽也越大:解决这一矛盾的钥匙当然是视频编解码技术.评判一种视频 ...

  2. H.264 RTPpayload 格式------ H.264 视频 RTP 负载格式

    H.264 RTPpayload 格式------ H.264 视频 RTP 负载格式 1. 网络抽象层单元类型 (NALU) NALU 头由一个字节组成, 它的语法如下: +------------ ...

  3. 回顾各种编码的创新和异同-MEPG2, MPEG4, H.264/AVC以及H.265/HEVC比较

    1.宏块匹配像素精度: MPEG2中,运动估计的精度是1/2的像素,通过线性插值实现; H.264/AVC和MPEG4 都可以支持1/4像素的精度. 2.参考帧的数量:     MPEG2,MPEG4 ...

  4. 【Codecs系列】H.266/VVC视频编码标准 技术系列汇总

    DATE: 2020.9.30 文章目录 1.H.266/VCC标准专栏 2.H.266/VCC视频编码标准 技术汇总 1.H.266/VCC标准专栏       视音频技术之H.266/VVC 2. ...

  5. H.264 SVC 与H.264 AVC 有什么区别?

    AVC 实际上是 H.264 协议的别名.但自从 H.264 协议中增加了 SVC 的部分之后,人们习惯将不包含 SVC 的 H.264 协议那一部分称为 AVC,而将 SVC 这一部分单独称为 SV ...

  6. H.264再学习 -- H.264视频压缩标准

    如需转载请注明出处:https://blog.csdn.net/qq_29350001/article/details/78221863 H.264 这部分一直在讲,但是却没有系统的来说.接下来要详细 ...

  7. H.264/H.265/H.266音视频编码基础

    一.背景 跟音频编码一样,视频编码最重要的目的也是为了进行数据压缩,以此来降低数据传输和存储成本. 以一路分辨率 720x1280(常说的 720P),帧率为 30 fps 的视频为例,如果不经过编码 ...

  8. H.266/VVC视频编码原理探索

    在2020年7月,H.266/VVC的标准规范正式面世.据统计,VVC的编码压缩率比HEVC提升一倍,支持RPR参考帧重采样.SCC屏幕内容编码等新技术.这意味着在5G时代,VVC视频编码让4K.8K ...

  9. 码流格式: Annex-B, AVCC(H.264)与HVCC(H.265), extradata详解

    1.前言 介绍H.264结构的文章铺天盖地,无责任翻译.无责任转载以及部分经验之谈(目前搜索最靠前的一篇实际是对stackoverflow上答案的翻译..链接后面给出了),所以缺的不是资料,是叙述准确 ...

最新文章

  1. windows 2008本地计算机策略,windows2008组策略操作出现了扩展错误 未能保存本地策略数据库#...
  2. ((void *) 0)的含义和void的一些细节
  3. pcm 采样率转换_Cool Audio Video Converter(音视频格式转换工具)V2.18 最新版 - 绿色先锋下载 -...
  4. 代码实现【mini版】——给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?
  5. 二维数组求最小值_05-最大子矩形-最大值减去最小值小于或等于num的子数组数量...
  6. 如何对SAP Spartacus支持路由的Component进行单元测试
  7. Java实现图片文件的上传和获取
  8. chrome最强大的浏览器插件推荐,只要你会用其他的插件你可以删除了
  9. localhost提示没有入口_管家婆财贸双全连接失败,服务器端没有找到加密狗
  10. 常用软件版本查看Windows下
  11. 2022年五一数学建模竞赛C题
  12. word 去除页眉默认的横线及python操作分析
  13. word 2013 新建批注 显示/隐藏批注 删除批注
  14. Datawhale学习笔记【阿里云天池 金融风控-贷款违约预测】Task2 数据分析
  15. 服装ERP系统的优势与缺点
  16. sublime 自定义快捷键、宏录制
  17. 怎么视频提取音频文件?分享这3种简单实用的提取方法
  18. 前端之vue3使用动画库animate.css(含动画、过渡)
  19. 思必驰发布DUI平台,重磅嘉宾圆桌论道语音交互的现状及未来
  20. 6-4 学生成绩链表处理(20 分)

热门文章

  1. SpringBoot 实现 QQ邮箱注册和登录
  2. 定义变量byte a = (byte)128输出a的结果
  3. Wol 网络远程唤醒技术,通过TP-LINK路由器远程一键开启电脑
  4. AndroidEventBus(事件总线)了解+实战体验
  5. html合并单元格后有虚线,excle单元格中间出现虚线/Excel表格里出现虚线,是怎么回事?...
  6. c++ 拼数 (sort 快排)
  7. 彗星mysql_【What if 系列】彗星与棒球
  8. 计算机开关键是什么符号,按钮开关符号知识大盘点 【图文】
  9. 爱春秋-在线挑战-综合渗透训练全部详解(更新中)
  10. 基于URL特征的网站结构信息挖掘