引言:从预测残差到比特流的关键一步
在H.265编码流程中,帧内预测和帧间预测完成后,会得到当前块与预测块之间的差值------即残差(Residual)。残差数据虽然比原始像素数据量小得多,但仍需进一步压缩才能高效存储和传输。
变换(Transform)和量化(Quantization)正是完成这一任务的核心模块:变换将空间域的残差转换到频率域,使能量集中;量化则通过有损压缩大幅削减数据量。H.265在这一环节引入了多项创新,包括可变尺寸变换、DST变换以及残差四叉树(RQT)机制。
变换:从空间域到频率域
变换的目的是将残差数据从像素值(空间域)转换为频率系数(频率域)。低频系数对应图像的大面积平滑变化,高频系数对应边缘和纹理细节。经过变换后,能量往往集中在少数低频系数上,便于后续量化压缩。
H.264的变换方式
H.264主要使用4×4和8×8两种尺寸的整数DCT(离散余弦变换),固定尺寸限制了编码的灵活性。
H.265的可变尺寸DCT
H.265将变换尺寸扩展到四种:4×4、8×8、16×16、32×32。编码器可根据CU的尺寸和残差特性,自适应选择最优的变换大小:
- 大尺寸变换(16×16、32×32):适用于平滑区域,频率分辨率更高,能量更集中,压缩效率更好。
- 小尺寸变换(4×4、8×8):适用于纹理复杂、边缘丰富的区域,能更好地保留细节。
这种多尺寸自适应策略使H.265能够更精准地匹配残差数据的空间特征。
DST:为帧内残差量身定制
除了DCT,H.265还引入了DST(离散正弦变换,Discrete Sine Transform),但仅用于4×4尺寸的帧内预测残差。
原因在于:帧内预测残差往往具有非对称的能量分布------靠近预测边界的残差较小,远离边界的残差较大。DST在处理这类非对称信号时,比DCT能更好地集中能量,从而提升压缩效率。
对于帧间预测残差和大于4×4的帧内残差,H.265仍然使用DCT。
残差四叉树(RQT)
H.265引入了残差四叉树(RQT,Residual Quad-Tree)机制,使变换单元的划分独立于预测单元:
- TU与CU解耦:一个CU可以包含一个或多个TU,TU通过四叉树递归划分,尺寸从32×32到4×4。
- 自适应粒度:对于残差能量集中的区域(如边缘),使用小TU精细编码;对于残差较小的平滑区域,使用大TU统一编码。
- 跳过变换:当残差极小时,编码器可选择跳过变换和量化,直接编码残差像素值(Transform Skip模式),避免变换带来的额外误差。
RQT机制使H.265在变换层面实现了与CTU四叉树划分相同的灵活性,进一步提升了编码效率。
量化:有损压缩的核心
量化是视频编码中唯一有损的环节,也是控制码率与画质平衡的关键。其基本原理是将变换系数除以一个量化步长(QStep)并取整,使大量高频小系数变为零,从而大幅减少数据量。
H.265的量化优化
- 更精细的量化参数(QP):H.265支持0~51的QP范围,与H.264一致,但引入了更精细的量化矩阵和自适应量化策略。
- 量化矩阵:针对不同频率系数使用不同的量化步长,对人眼不敏感的高频区域使用更大的步长,在相同码率下获得更好的主观画质。
- 自适应量化(AQ):根据CU的内容复杂度动态调整量化强度------纹理复杂区域分配更多比特,平滑区域减少比特,优化整体视觉质量。
死区量化
H.265采用"死区量化"(Dead-Zone Quantization)策略:在零值附近设置一个更大的量化区间,使更多小系数被量化为零。这虽然增加了有损程度,但显著降低了码率,且对人眼感知影响较小。
实际收益与性能对比
- 压缩效率提升:可变尺寸DCT/DST和RQT机制在变换量化模块可带来约5%~8%的码率节省。
- 主观画质改善:自适应量化和量化矩阵优化使H.265在低码率下仍能保持较好的视觉质量,减少块效应和振铃伪影。
- 编码复杂度:多尺寸变换搜索和RQT划分增加了编码器的计算负担,但解码端开销增加有限。
结语
变换与量化是H.265编码流水线中将残差数据转化为紧凑比特流的关键环节。通过可变尺寸DCT/DST、残差四叉树(RQT)以及量化矩阵优化,H.265在保持视觉质量的同时实现了更高的压缩效率。
在下一篇文章中,我们将深入环路滤波模块,解析H.265新增的SAO(样点自适应补偿)技术,看它如何与去块滤波协同工作,进一步提升重建画面的质量。