博客
关于我
H.265/HEVC的编码结构和块划分
阅读量:745 次
发布时间:2019-03-22

本文共 1554 字,大约阅读时间需要 5 分钟。

HEVC编码技术解析

一、CTU(Coding Tree Unit)

树形编码单元(CTU)是HEVC视频编码中的核心概念,用于将一帧图像划分为多个互不重叠的编码单元(CTU)。每个CTU的大小相同,可选为64×64、32×32或16×16,这确保了所有CTU在视频序列中具有统一的尺寸。

CTU内部结构复杂,包括一个LxL的亮度编码块(CTB)以及两个色度编码块(CTB),其尺寸可根据编码器设置而变化。为了实现这一划分,CTU采用了树形结构,该结构在实际编码中能够灵活应对不同类型的图像内容。

二、CB(Coding Block)

CB是HEVC编码中的基本单位,用于描述图像的静态信息。在实际编码过程中,CB的大小通常较大(如64×64)以便于容纳更多的图像细节。CB的划分是基于预测类型决策的,如果CB过大,可能会影响运动矢量(帧间预测)或帧内预测的执行效果。因此,CB在预测阶段通常会被进一步划分为更小的单位,如PB。

三、CU(Coding Unit)

CU是CB和色度信息结合后形成的编码单元。每个CU包含亮度CB和两个色度CB,以及相应的语法元素。CU的划分方式基于树形结构,在实际编码中可根据需要进行分层分割。CU的划分能够提升编码效率,同时确保图像细节的处理更加准确。

四、PB(Prediction Block)与PU(Prediction Unit)

PB是CB在预测阶段划分后的单位,用于表示图像的运动或帧内预测结果。根据预测方式的不同,PB的大小和划分方式可能会有所差异。例如,帧间预测通常使用较长的PB来容纳较大的预测范围。

PU是预测过程的基本单位,包含亮度PB、两个色度PB以及相应的预测信息。PU不仅规定了编码单元的预测模式,还包含了帧间预测的参考图像索引和运动矢量信息。PU是整个预测过程的核心单元。

五、TB(Transform Block)与TU(Transform Unit)

预测完成后,系统需要对原始图像与预测图像之间的残差(差异)进行变换处理。CB在这个过程中可能需要进一步划分为更小的单位,即TB。每个TB包含亮度TB和两个色度TB,负责将高频成分和低频成分分开处理。

TU由亮度TB和两个色度TB组成,是进行变换和量化的基本单元。与CB不同,TU的划分能够更精细地处理图像细节,提高编码效率。

六、Slice(片)

在实际编码中,一幅图像可以被划分为多个垂直条带,每个条带称为片(Slice)。片的划分方式主要基于CTU的扫描顺序,确保CTU的编码过程能够独立进行。每个片的编码结果彼此独立,不会影响其他片的解码过程。

根据预测类型,片可以分为以下几种:

  • I Slice:仅使用帧内预测。
  • P Slice:在I Slice的基础上还可以使用帧间预测。
  • B Slice:在P Slice的基础上,每个预测块(PB)可以使用两个帧间预测参考图像。

不同类型的Slice在编码时会遵循不同的约束条件,但它们的主要目的是确保解码过程能够正确同步。

七、Tile(瓷砖)

HEVC相比AVC引入了Tile概念,将图像水平和垂直划分为多个矩形区域,每个区域称为Tile。Tile的划分主要基于CTU的分布情况,旨在提升编码的并行处理能力,同时确保不同区域的错误累积不会影响整体编码结果。

Tile的划分与Slice的划分是相互独立的,某个Slice可以包含多个Tile,而一个Tile也可以包含多个Slice。Tile的设计能够有效地促进多核处理和并行编码,同时避免误差的扩散。

通过对CTU、CB、CU、PB、PU、TB、TU、Slice和Tile等关键概念的深入理解,可以全面掌握HEVC视频编码技术的核心原理。这一技术在提升编码效率和压缩性能方面具有显著优势。

转载地址:http://kgfwk.baihongyu.com/

你可能感兴趣的文章
memcached高速缓存学习笔记003---利用JAVA程序操作memcached crud操作
查看>>
Memcached:Node.js 高性能缓存解决方案
查看>>
memcache、redis原理对比
查看>>
memset初始化高维数组为-1/0
查看>>
Metasploit CGI网关接口渗透测试实战
查看>>
Metasploit Web服务器渗透测试实战
查看>>
MFC模态对话框和非模态对话框
查看>>
Moment.js常见用法总结
查看>>
MongoDB出现Error parsing command line: unrecognised option ‘--fork‘ 的解决方法
查看>>
mxGraph改变图形大小重置overlay位置
查看>>
MongoDB可视化客户端管理工具之NoSQLbooster4mongo
查看>>
Mongodb学习总结(1)——常用NoSql数据库比较
查看>>
MongoDB学习笔记(8)--索引及优化索引
查看>>
mongodb定时备份数据库
查看>>
mppt算法详解-ChatGPT4o作答
查看>>
mpvue的使用(一)必要的开发环境
查看>>
MQ 重复消费如何解决?
查看>>
mqtt broker服务端
查看>>
MQTT 保留消息
查看>>
MQTT 持久会话与 Clean Session 详解
查看>>