博客
关于我
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/

你可能感兴趣的文章
MySQL中ON DUPLICATE KEY UPDATE的介绍与使用、批量更新、存在即更新不存在则插入
查看>>
MYSQL中TINYINT的取值范围
查看>>
MySQL中UPDATE语句的神奇技巧,让你操作数据库如虎添翼!
查看>>
Mysql中varchar类型数字排序不对踩坑记录
查看>>
MySQL中一条SQL语句到底是如何执行的呢?
查看>>
MySQL中你必须知道的10件事,1.5万字!
查看>>
MySQL中使用IN()查询到底走不走索引?
查看>>
Mysql中使用存储过程插入decimal和时间数据递增的模拟数据
查看>>
MySql中关于geometry类型的数据_空的时候如何插入处理_需用null_空字符串插入会报错_Cannot get geometry object from dat---MySql工作笔记003
查看>>
mysql中出现Incorrect DECIMAL value: '0' for column '' at row -1错误解决方案
查看>>
mysql中出现Unit mysql.service could not be found 的解决方法
查看>>
mysql中出现update-alternatives: 错误: 候选项路径 /etc/mysql/mysql.cnf 不存在 dpkg: 处理软件包 mysql-server-8.0的解决方法(全)
查看>>
Mysql中各类锁的机制图文详细解析(全)
查看>>
MySQL中地理位置数据扩展geometry的使用心得
查看>>
Mysql中存储引擎简介、修改、查询、选择
查看>>
Mysql中存储过程、存储函数、自定义函数、变量、流程控制语句、光标/游标、定义条件和处理程序的使用示例
查看>>
mysql中实现rownum,对结果进行排序
查看>>
mysql中对于数据库的基本操作
查看>>
Mysql中常用函数的使用示例
查看>>
MySql中怎样使用case-when实现判断查询结果返回
查看>>