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

你可能感兴趣的文章
nacos源码 nacos注册中心1.4.x 源码 nacos源码如何下载 nacos 客户端源码下载地址 nacos discovery下载地址(一)
查看>>
nacos源码 nacos注册中心1.4.x 源码 spring cloud alibaba 的discovery做了什么 nacos客户端是如何启动的(二)
查看>>
nacos源码 nacos注册中心1.4.x 源码 如何注册服务 发送请求,nacos clinet客户端心跳 nacos 注册中心客户端如何发送的心跳 (三)
查看>>
Nacos源码分析:心跳机制、健康检查、服务发现、AP集群
查看>>
nacos看这一篇文章就够了
查看>>
Nacos简介、下载与配置持久化到Mysql
查看>>
Nacos简介和控制台服务安装
查看>>
Nacos管理界面详细介绍
查看>>
Nacos编译报错NacosException: endpoint is blank
查看>>
nacos自动刷新配置
查看>>
nacos运行报错问题之一
查看>>
Nacos部署中的一些常见问题汇总
查看>>
NACOS部署,微服务框架之NACOS-单机、集群方式部署
查看>>
Nacos配置Mysql数据库
查看>>
Nacos配置中心中配置文件的创建、微服务读取nacos配置中心
查看>>
Nacos配置中心集群原理及源码分析
查看>>
nacos配置在代码中如何引用
查看>>
nacos配置新增不成功
查看>>
nacos配置自动刷新源码解析
查看>>
nacos集成分布式事务插件Seata的序列化问题,实际上是Seata本身存在bug!!
查看>>