音视频学习(七十四):视频压缩:变换编码

变换编码(Transform Coding)是现代视频压缩技术中消除空间冗余(帧内冗余)和残差冗余的核心环节。无论是在独立编码的I帧中,还是在帧间预测后产生的残差块中,变换编码都是将空间域(像素值)的数据转化为更便于压缩的频率域数据的关键步骤。

变换编码

在视频编码器的整体流程中,变换编码位于预测(帧内或帧间)之后,量化之前

1. 作用与目标

  • 集中能量(Energy Compaction): 这是变换编码最核心的目标。大多数自然图像和视频帧的残差块在空间域上具有很强的相关性(相邻像素相似)。通过变换,可以将这些相关性转化为频域中的少数几个较大的系数(通常是低频系数),而大部分高频系数的值则趋近于零。
  • 便于量化(Facilitation of Quantization): 将能量集中后,编码器可以在量化阶段对那些数值接近于零的高频系数进行粗量化,甚至直接置零,从而实现有损压缩,大幅减少需要存储和传输的数据量。

2. 处理对象

变换编码主要处理两种数据块:

  • 帧内预测残差块: 在I帧或P/B帧的帧内编码模式下,由原始块减去帧内预测块所得的残差。
  • 帧间预测残差块: 在P帧或B帧的帧间编码模式下,由原始块减去运动补偿预测块所得的残差。

核心原理:离散余弦变换(DCT)

在视频编码的早期标准(如MPEG-1/2/4、H.263)和当前主流标准(如H.264/AVC)中,**离散余弦变换(Discrete Cosine Transform, DCT)**是应用最广泛的变换编码方法。

1. DCT 的数学定义(二维)

对于一个 N * N 的像素块 f(x, y),其二维 DCT 变换 F(u, v) 定义为:

2. 变换结果的解释

经过 DCT 变换后,得到的 N * N 系数矩阵 F(u, v) 具有明确的频率含义:

  • 直流(DC)系数 F(0, 0): 位于矩阵的左上角 ,代表原始块中所有像素值的平均值 (即图像块的基准亮度/颜色)。这是最重要的系数,通常数值最大,承载了块中大部分的能量。
  • 交流(AC)系数 F(u, v), (u, v) \ne (0, 0): 矩阵中其余的系数,代表图像块在水平和垂直方向上的频率分量
    • 靠近 F(0, 0) 的系数是低频系数,代表块中平滑、缓慢变化的区域。
    • 远离 F(0, 0) 的系数是高频系数,代表块中细节、纹理和边缘等快速变化的信息。

3. 能量集中的体现

由于残差块的大部分像素值接近于零,经过 DCT 后,能量会高度集中在 F(0, 0) 及其周围的少数低频 AC 系数上。这使得后续的量化可以高效地"砍掉"矩阵右下角(高频)的系数,实现高压缩比。

变换编码在不同标准中的演进

随着视频编码标准的发展,变换编码从简单的 8×88 \times 88×8 DCT 演进到更灵活、更高效的整数变换和多尺寸变换。

1. H.264/AVC 中的整数变换(Integer Transform)

  • 问题: 标准的 DCT 涉及到浮点数运算,会引入微小的反变换失配误差(IDCT Mismatch)。
  • 解决方案: H.264 引入了整数变换,用整数运算来近似 4 * 4 或 8 * 8 的 DCT,消除了 IDCT 失配问题,并简化了硬件实现。
  • 特点: H.264 主要使用4 * 4 块的整数变换,这种小尺寸的变换可以更好地适应复杂的、非平滑的残差信号。对于色度(Chroma)分量,它使用 2 * 2 的变换。

2. H.265/HEVC 中的多尺寸变换(Multi-size Transform)

为了追求更高的压缩效率,H.265/HEVC 进行了显著改进:

  • 变换单元(Transform Unit, TU): 引入了灵活的变换单元 概念,尺寸不再固定。TU 的尺寸可以从最小的 4 * 4 扩展到8 * 8、 16 * 16 甚至 32 * 32
  • 动态选择: 编码器会根据编码树单元(Coding Tree Unit, CTU)的划分和残差块的特性,动态选择最合适的 TU 尺寸。例如,对于平坦区域,使用 32 * 32 变换可以更好地集中能量;对于细节丰富的区域,则使用 4 * 4 变换以避免过多引入振铃效应。
  • 离散正弦变换(DST): 除了 DCT-II(标准的 DCT),HEVC 还引入了**离散正弦变换(Discrete Sine Transform, DST)**用于 4 * 4 块的帧内编码残差,因为实验证明 DST 在处理帧内残差时能提供略微更好的能量集中效果。

3. H.266/VVC 中的进一步优化

  • 多模式变换(Multiple Transform Set, MTS): VVC 进一步扩展了可用的变换种类,并允许对同一个块的不同子块使用不同的变换。
  • 非分离变换(Non-Separable Transform): 对于 4 * 4 块,VVC 引入了非分离变换,进一步优化了低频分量的编码效率。
  • 低频补偿: VVC 还包含了一些机制来补偿变换编码对低频(DC)系数造成的损失。

变换编码与量化的协同作用

变换编码只是压缩的准备阶段,真正的有损压缩是在**量化(Quantization)**阶段完成的,两者紧密配合。

1. 量化过程

量化就是对变换后的系数 F(u, v) 进行除法和取整操作:

其中 Q 是量化步长(Quantization Step Size),其大小由量化参数(QP)决定。

2. 协同效果

  • 低频系数: F(0, 0) 和相邻的低频 AC 系数数值大,即使被 Q 除后取整,其结果 F(u, v) 仍然是非零的,这部分信息得以保留,保证了图像的基本结构。
  • 高频系数: 高频 AC 系数数值小,经过除以 Q 后,大部分会被量化为零
  • Z字形扫描(Zig-Zag Scanning): 量化后的系数矩阵通常采用 Z字形扫描转换为一维序列。由于能量集中,这个序列的开头是重要的非零系数,而结尾则是一长串的零。

3. 熵编码增益

Z字形扫描和量化操作后产生的序列,其特点是:前面是非零系数,后面是大量的零。这种序列结构非常适合进行熵编码(Entropy Coding) ,如霍夫曼编码或算术编码(CABAC/CAVLC),从而实现无损压缩,最终达到视频压缩的整体目标。

总结

变换编码是视频压缩流水线中不可或缺的组成部分,它通过以下步骤实现了空间冗余的有效消除:

  1. 数据转换: 将空间域的残差信号通过数学变换(主要是 DCT 或其整数近似)映射到频率域。
  2. 能量集中: 利用自然图像信号的特性,将大部分信号能量集中在少数低频系数上。
  3. 配合量化: 为后续的有损量化阶段创造条件,使得编码器能够高效地丢弃视觉上不重要的高频信息(将它们量化为零)。
  4. 序列优化: 通过 Z字形扫描,将量化后的稀疏矩阵转化为利于熵编码的高效序列。
相关推荐
神秘的摄影师4 小时前
2026年AE音乐素材下载网站TOP5评测——短视频与自媒体创作者专属指南
音视频·媒体
2601_957786775 小时前
短视频矩阵系统的信号处理密码:用奈奎斯特采样定理破解“限流“黑箱
矩阵·音视频·信号处理
若兰幽竹6 小时前
【大模型应用】抖音爆款视频深度分析系统:流水线式AI逆向拆解流量密码,精准预测播放量!
人工智能·python·音视频·抖音爆款分析
网管NO.17 小时前
视频核心技术 08:播放器原理与秒开优化 —— 首帧链路、缓冲策略与卡顿根治
音视频
searchforAI7 小时前
视频画面里的PPT怎么提取?视频转图文讲义的实操教程
人工智能·学习·ai·aigc·powerpoint·音视频·贴图
视频号下载助手7 小时前
2026实测可用!全网视频无水印保存完整操作方法
音视频
广州灵眸科技有限公司9 小时前
瑞芯微(EASY EAI)RV1126B 音频电路
开发语言·人工智能·深度学习·算法·yolo·音视频
孤舟簔笠翁9 小时前
音频均衡器(EQ)详解
音视频
jushi899910 小时前
网易爆米花 网盘视频聚合播放器 支持各大网盘、NAS挂载
音视频
MicroTech202510 小时前
微算法科技(NASDAQ :MLGO)发布基于NEQR技术的新型量子视频处理算法,重构智能视觉底层逻辑
科技·算法·音视频