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。

目录
相关文章
|
存储 关系型数据库 MySQL
mysql数据库如何做到定期备份
mysql数据库如何做到定期备份
1036 2
|
安全 小程序 物联网
WLAN基础 无线局域网配置方法 旁挂三层组网隧道转发方式配置
WLAN基础 无线局域网配置方法 旁挂三层组网隧道转发方式配置
1947 0
WLAN基础 无线局域网配置方法 旁挂三层组网隧道转发方式配置
|
运维 监控 Linux
云计算运维工程师简历怎么写?带简历案例
云计算运维工程师简历怎么写?带简历案例
2314 0
|
搜索推荐 Java 数据库
从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(八)saas平台篇-解决不同租户针定制化开发问题(3) -oauth2 登陆源码分析以及扩展添加tenantId属性
从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(八)saas平台篇-解决不同租户针定制化开发问题(3) -oauth2 登陆源码分析以及扩展添加tenantId属性
从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(八)saas平台篇-解决不同租户针定制化开发问题(3) -oauth2 登陆源码分析以及扩展添加tenantId属性
|
C语言
C语言打印乘法口诀表——超详细扫盲篇
C语言打印乘法口诀表——超详细扫盲篇
|
存储 Linux 数据处理
Linux中的raw命令:深入解析与实用指南
Linux的`raw`命令详解:用于直接访问硬件设备,绕过文件系统,提供高灵活性和性能。适用于数据处理,如直接复制文件或设备数据。使用时需谨慎,注意设备理解、数据备份及正确选项选择。结合其他工具可实现更多功能。示例:`raw file1 file2`复制文件,`raw -s 1024 file1 file2`跳过字节复制。
|
SQL 自然语言处理 Linux
探索 Linux 命令:Bison - 一个强大的语法分析器生成器
Bison是Linux下的一个语法分析器生成器,用于将上下文无关文法转换为C代码,简化编译器或解释器开发。它提供性能优化和灵活的语义动作定制,常用于创建解析器,如SQL解析器或自定义脚本语言解释器。通过编写.y文件定义语法规则,使用Bison生成解析器代码,然后集成到项目中,搭配词法分析器如Flex使用。Bison帮助开发者专注于应用逻辑,而非解析器实现。
|
Windows
Windows 11 22H2 跳过系统初次启动时强制联网登录
Windows 11 22H2 跳过系统初次启动时强制联网登录
711 0
|
机器学习/深度学习 算法 自动驾驶
深度强化学习在大模型中的应用:现状、问题和发展
强化学习在大模型中的应用具有广泛的潜力和机会。通过使用强化学习算法,如DQN、PPO和TRPO,可以训练具有复杂决策能力的智能体,在自动驾驶、机器人控制和游戏玩家等领域取得显著成果。然而,仍然存在一些挑战,如样本效率、探索与利用平衡以及可解释性问题。未来的研究方向包括提高样本效率、改进探索策略和探索可解释的强化学习算法,以进一步推动强化学习在大模型中的应用。
3403 3
|
Ubuntu Linux 编译器
arm-linux-gcc交叉编译容器 centos7 环境
arm-linux-gcc交叉编译容器 centos7 环境
1131 1