HEVC学习之琐事(一):HEVC编码结构分析

简介: <p><span style="font-size:14px"><span style="white-space:pre"></span><span style="white-space:pre"></span><span style="white-space:pre"></span>在H.264中,编码的基本单元是宏块,对于抽样格式为4:2:0的宏块,它包含一个16x16的亮度样本块和两

在H.264中,编码的基本单元是宏块,对于抽样格式为4:2:0的宏块,它包含一个16x16的亮度样本块和两个相应的8x8色度样本块,如下图所示。


(1)、而在HEVC中,采用了一个新的编码结构——编码树单元(CTU),CTU是HEVC的基本处理单元。一个CTU包括1个亮度CTB、2个色度CTB和相应的语法元素。一个CTU可能只包含一个编码单元(CU),HEVC还能采用树型和类四叉树结构将CTU递归地分成多个大小不一的CU。如下图所示。


在HEVC中,视频帧被分割为若干个互不重叠的CTB,用来表示视频帧中相互独立的区域。亮度CTB的尺寸可以是16x16/32x32/64x64,色度CTB的尺寸可以是8x8/16x16/32x32,尺寸越大,压缩效果越好。


(2)、在HEVC中,CU是最基本的编码单元,每个CU由1个亮度CB、2个色度CB以及相应的语法元素组成。CB是之前已经分割好的CTB根据块中的图像内容而自适应划分的(划分规则:相对比较平坦的区域采用大尺寸的CB,而细节多的区域则采用较小尺寸的CB)。通常情况下,CB的形状是正方形,亮度分量CB的尺寸可以由8x8大小到亮度CTB的大小,色度CB的尺寸可以由4x4大小到色度CTB的大小(也就是说,亮度CTB的尺寸是亮度CB的最大可支持的尺寸;色度CTB的尺寸是色度CB的最大可支持的尺寸)。如下图所示。



CU可以分为两类:跳过型CU(Skipped CU)和普通CU。跳过型CU只能采用帧间预测模式,而且产生的运动向量和图像的残差信息不需要传送给解码器;普通CU则可以采用帧内预测和帧间预测两种方式进行预测,然后对残差数据以及附加的控制信息进行编码。

通常,在图像的右边界和下边界,一些CTU可能会覆盖部分超出图像边界的区域,这时CTU四叉树会自动分割,减小CB尺寸,使整个CB刚好进入图像。

(3)、每个CU还可以进一步分割成一个预测单元(PU)和变换单元(TU)。

PU是包含了预测信息的基本单元。PU包括了亮度PU、色度PU和相应的预测语法。一个CU可以包含一个或多个PU,PU的类型可以是跳过、帧内和帧间。

(4)、TU是变换和量化的基本单元,TU的尺寸可以大于PU,但不能超过CU。HEVC只定义了方形的TU,尺寸为4x4/8x8/16x16/32x32。每个CU可以包含一个或多个TU。

目录
相关文章
|
运维 监控 Linux
云计算运维工程师简历怎么写?带简历案例
云计算运维工程师简历怎么写?带简历案例
2748 0
|
NoSQL Linux Redis
在Windows下使用msys2编译最新版的Redis
在Windows下使用msys2编译最新版的Redis
2192 0
|
JSON 大数据 API
巧用苏宁易购 API,精准分析苏宁易购家电销售大数据
在数据驱动的电商时代,精准分析销售数据能助力企业优化库存、提升营销效果。本文详解如何利用苏宁易购API获取家电销售数据,结合Python进行数据清洗与统计分析,实现销量预测与洞察提取,帮助企业降本增效。
|
监控 安全 搜索推荐
SCUM 管理员工具:提升效率与优化体验的利器
在数字化时代,SCUM 游戏的管理工具为游戏运营和玩家体验带来了新变革。本文介绍了该工具的概述、意义、应用场景及未来趋势,展望了智能化、多元化、个性化和开放化的发展方向。
1349 0
|
定位技术
高德地图进阶开发实战案例(6):添加自定义图片覆盖物图层获取可视范围经纬度的解决方案
高德地图进阶开发实战案例(6):添加自定义图片覆盖物图层获取可视范围经纬度的解决方案
1210 0
|
C语言
C语言打印乘法口诀表——超详细扫盲篇
C语言打印乘法口诀表——超详细扫盲篇
1424 4
|
Shell Linux
shell sleep 睡眠命令
shell sleep 睡眠命令
|
传感器 芯片 C++
带你读《传感器系统:基础及应用》之三:放大器和滤波器 
本书包括传感器相关的数学、物理、电路等基础理论,介绍了相关的性能指标、性能选择以及集成到工程系统所需的软硬件,讲述了先进的传感器技术、分析建模、实际应用和设计研究实例。全书共12章,前面7章是传感器的基础知识,第8~11章分别讨论了不同种类传感器的结构及实际应用,第12章涉及先进的传感器技术。 本书可以作为高等学校测控技术与仪器、自动化、机电一体化、电气工程等专业高年级本科生和研究生教材,也可供相关科研和工程技术人员学习参考。
|
Unix Shell 开发工具
windows下如何安装git以及IDEA如何配置git
该文指导安装Git 2.15.0版本。首先从Git官网下载最新安装包,双击安装,依次选择Next,同意默认配置,确保勾选添加到环境变量。在配置选项中,选择在cmd中使用Git(第2项),行结束转换选Windows(第1项),终端模拟器选MinTTY(第1项)。安装完成后,通过右键菜单或直接打开Git Bash验证安装成功。最后,配置全局用户名和邮箱,并在IDEA中设置Git路径以完成集成。
1496 0
|
JavaScript 搜索推荐 前端开发
《VitePress 简易速速上手小册》第2章:Markdown 与页面创建(2024 最新版)
《VitePress 简易速速上手小册》第2章:Markdown 与页面创建(2024 最新版)
880 0