HEVC视频编解码标准学习笔记-1

视频编解码标准H.265/HEVC(High Efficiency Video Coding)通过将视频数据编码为更高效格式,大幅改善了视频流的压缩效率。这里主要介绍Tile、Slice和CTU的定义,以及介绍这些技术组件之间的相互关系。

CTU(编码树单元)

在H.265/HEVC中,CTU(编码树单元)是视频编码的最基本处理单元,它是对H.264/AVC中宏块(Macroblock)技术的一种扩展。CTU的尺寸最大可以达到64x64像素,并且它能被进一步递归地分割成更小的编码块(Coding Block, CB)和变换块(Transform Block, TB)。CTU能在不同的深度上对视频数据进行编码,使得编解码处理能够根据视频内容的不同而灵活调整,大幅度提升编码效率。

Slice和Tile

在H.265/HEVC中,Slice和Tile是对视频图像帧实行并发编解码处理的两个关键机制,但二者有着不同的侧重点。

Slice(切片)

Slice是视频图像中的一部分,由一连串的CTU组成。Slice的设计初衷是为了支持错误恢复、并行处理和提供一定程度上的随机访问。Slice可以是条带形状(条形切片,但必须是符合光栅扫描的顺序,也即从左到右,从上到下)或任意矩形,取决于它们是如何界定的。一幅图像可以包含多个Slice,每个Slice可以单独进行编码和解码,实现了编解码处理的灵活性和效率。
在这里插入图片描述

Tile

Tile是通过将图像在空间上进行分割得到的。一个图像可以被分割成几个Tile,这对于图像的并发处理尤为重要。与Slice不同,Tile提供一种机制来并行处理视频中的多个区域。Tile的设计提高了视频处理过程中的并发性,有利于充分利用现代多核处理器的计算能力。

在这里插入图片描述
(VVC中新增了子图像划分,后续再学习,也希望各位大佬可以加个好友共享一下学习资源,感谢~)

Tile、Slice和CTU之间的关系

Tile、Slice和CTU共同构成了H.265/HEVC编码体系中的多层结构,这些技术配合使用可以在视频编解码中实现不同的目的:
Slice划分目的是压缩数据的高效存储与传输,每个Slice对应一个独立的NAL单元;

Tile划分目的是在增强并行处理能力的同时又不引入新的错误扩散(这里的错误扩散我理解的是当前解码部分会依赖于已解码的像素,如果出现错误,像素错误会扩散到其他CTU);

CTU划分目的是为了适应不同的视频内容

层次结构:从层次上讲,CTU是编解码处理的最小单位,而Slice则是对由若干个CTU组成的视频图像区域进行编码的单元。Tile则通过对整幅图像在空间上的分割来提高处理的并发性。这样的分层和模块化设计既实现了编解码效率的最大化,也保持了足够的灵活性来应对不同的编码情境。
Slice和Tile是互相包含的关系,也即既可以一个Slice包含多个Tile,也可以一个Tile包含多个Slice,但至少需要满足一下两个条件之一:
1、一个Slice中的所有CTU属于同一个Tile(我的理解是这里是指一个Tile包含多个Silce的情况,需要保证其中每个Silce都完整属于Tile)
2、一个Tile中的所有CTU属于同一个Slice(我的理解是这里是指一个Slice包含多个Tile的情况,需要保证其中每个Tile都完整属于Slice)

并发处理:通过Tile和Slice的应用,可以在宏观上对视频图像进行区域划分,实现多个图像区域的并行处理。这对于大幅提高视频编解码效率、加快处理速度、并最终减少编码延迟起到了至关重要的作用。(其中Slice在《新一代视频编解码H266/VVC:原理、标准与实现》有提到,Slice的压缩数据不依赖于其他Slice,可以被独立解码,这里的独立我的理解是这里应该是该Slice涉及的语法元素自身可以确定,指可以正常的进行解码,而不一定能独立的解码输出成一帧图像或一部分图像,因为B slice和P Slice中还需要参考图像参考列表中的内容,不知道这里理解的对不对,如果有大佬能看到这里,希望能指导一下,万分感谢~)

H.265/HEVC的Tile、Slice和CTU这三个组件通过其独特的结构和功能,为视频编解码技术带来了前所未有的效率和灵活性。它们之间的协同工作不仅提升了编码的效率,还大幅改善了视频质量和传输的可靠性。随着视频内容的不断增长和分辨率的提高,这些技术的优势将更加明显,为未来的视频技术发展奠定坚实的基础。

相关推荐

  1. FFmpeg的HEVC解码器源代码学习笔记-2

    2024-02-22 09:24:01       29 阅读
  2. Webrtc支持HEVC解码器创建(二)

    2024-02-22 09:24:01       8 阅读
  3. iOS VideoToolBox 解码 HEVC Open-GOP 视频的问题排查

    2024-02-22 09:24:01       16 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-22 09:24:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-22 09:24:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-22 09:24:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-22 09:24:01       20 阅读

热门阅读

  1. 自定义postcss插件,根据倍率增大font-size大小

    2024-02-22 09:24:01       23 阅读
  2. 子网络划分与互通,上网行为审计

    2024-02-22 09:24:01       35 阅读
  3. MyBatis框架-EhCache(三级缓存)

    2024-02-22 09:24:01       37 阅读
  4. springboot实现Aop(通知)切面编程的案例

    2024-02-22 09:24:01       31 阅读
  5. 微信小程序canvas开发的一些坑和总结-持续更新

    2024-02-22 09:24:01       32 阅读
  6. Ubuntu22.04配置静态ip

    2024-02-22 09:24:01       36 阅读
  7. 【工具】Ubuntu开机黑屏、NVIDIA显卡驱动问题

    2024-02-22 09:24:01       27 阅读
  8. vue、thinkphp实现腾讯云对象存储COS图片上传

    2024-02-22 09:24:01       26 阅读
  9. 数据结构:结构体定义方式

    2024-02-22 09:24:01       26 阅读
  10. 数据结构day2

    2024-02-22 09:24:01       25 阅读