ESC
输入关键词搜索文章
目录

视频压缩基础:从 MPEG-1 到 H.264/AVC

传统图像与视频压缩技术全景 · 第五篇
运动估计如何让视频压缩比提升百倍
8基础系列
5本篇:视频压缩基础
引言
视频压缩:图像压缩的时间维度

视频本质上是连续的图像帧序列。如果对每帧独立压缩(如 Motion JPEG),压缩效率很低,因为相邻帧之间通常存在极强的相似性——这就是时间冗余

视频压缩的核心突破在于:不再独立编码每帧,而是利用帧间的时间相关性,只编码帧与帧之间的"变化"。这个思想催生了运动估计(Motion Estimation)和运动补偿(Motion Compensation)技术,使视频压缩比比单纯的空间压缩提高了 10–100 倍。

本篇将从视频压缩的基本概念讲起,讲解从 MPEG-1 到 H.264/AVC 的标准演进。H.264 的详细技术原理(宏块划分、帧内/帧间预测、整数 DCT、量化、CABAC/CAVLC、环路滤波、Profile/Level)已独立为专题文章:

📖 H.264 专题

H.264 的完整编码原理已独立为 图像压缩基础系列(八):H.264 视频编码原理详解,按 12 个专题系统拆解:数字视频基础、数据冗余、YUV 色彩空间、帧类型、GOP 与 NAL 层结构、帧内预测、帧间预测、DCT 变换、量化与熵编码。

Part 1
视频压缩的核心概念
视频中的三种冗余

1. 空间冗余(Spatial Redundancy):同一帧内相邻像素的相关性

2. 时间冗余(Temporal Redundancy):相邻帧之间像素的相关性

3. 视觉冗余(Visual Redundancy):人眼对某些信息不敏感

空间冗余的消除方法与图像压缩相同(DCT/小波变换 + 量化)。时间冗余的消除则需要帧间预测运动估计

帧类型:I、P、B

视频编码将帧分为三种类型:

帧类型名称编码方式特点
I 帧Intra-coded仅帧内编码(类似 JPEG)独立解码,文件最大
P 帧Predicted帧间预测(参考前面的帧)文件较小,需要参考帧
B 帧Bi-directional双向预测(参考前后帧)文件最小,压缩比最高
GOP(Group of Pictures)

GOP 定义了 I、P、B 帧的排列模式。一个典型的 GOP 结构:

I B B P B B P B B P B B I

GOP 的长度(两个 I 帧之间的帧数)通常为 12–30 帧。GOP 越长,压缩比越高(因为 P/B 帧占比更大),但随机访问能力越差(需要从最近的 I 帧开始解码)。

运动估计与运动补偿

运动估计是视频压缩的核心技术。其基本思想:

1. 运动估计:在参考帧中搜索与当前块最匹配的区域,记录偏移量(运动矢量)

2. 运动补偿:用参考帧中匹配区域的像素作为当前块的预测值

3. 残差编码:只编码当前块与预测值之间的差值(残差)

运动矢量(Motion Vector, MV)描述了当前块在参考帧中的位移。如果运动估计准确,残差的能量远小于原始像素值,可以用很少的比特编码。

块匹配算法

最常用的运动估计方法是块匹配(Block Matching)。对于当前帧中的每个块,在参考帧的搜索窗口内寻找最佳匹配:

$$\text{最佳 MV} = \arg\min_{(dx, dy)} \sum_{(x,y) \in \text{block}} |I_{\text{curr}}(x,y) - I_{\text{ref}}(x+dx, y+dy)|$$

常用的匹配准则:

  • SAD(Sum of Absolute Differences):计算简单,最常用
  • SATD(Sum of Absolute Transformed Differences):更准确,计算量稍大
  • MSE(Mean Squared Error):数学性质好,但计算量大

搜索算法从全搜索(穷举所有可能的 MV)到快速搜索(三步搜索、菱形搜索等),在速度和精度之间权衡。

亚像素运动估计

真实的运动往往不是整像素的整数倍。视频编码器支持亚像素精度的运动估计:

  • 半像素:在整像素位置之间插值(H.264 使用 6-tap FIR 滤波器)
  • 四分之一像素:在半像素位置之间进一步插值(H.264 支持)

亚像素插值提高了运动估计的精度,减少了残差能量。

块匹配搜索算法详解

运动估计的精度和速度由搜索算法决定。三种常用匹配准则的权衡:

准则计算公式精度速度
SAD$\sum |I_c - I_r|$最快
SATD$\sum |\text{HAD}(I_c - I_r)|$
MSE$\frac{1}{N^2}\sum (I_c - I_r)^2$最慢

其中 $\text{HAD}$ 是 Hadamard 变换。SATD 在率失真意义上更接近最优,广泛用于 H.264/HEVC 的模式决策。

三步搜索(TSS)的步骤:

1. 以当前块位置为中心,第一步搜索 8 个步长为 4 的候选位置

2. 找到最小 SAD 的位置作为新中心,第二步搜索步长为 2 的 8 个位置

3. 第三步搜索步长为 1 的 8 个位置

搜索范围(Search Range)通常为 ±16 到 ±64 像素。搜索范围越大压缩比越高,但计算量以 $O(SR^2)$ 增长。

菱形搜索(DS)利用运动矢量通常接近零的特点,优先搜索中心附近:

1. 以当前块为中心,搜索大菱形模板(9 个点)的 SAD

2. 最小 SAD 点成为新中心;若最小点在菱形中心则进入小菱形模板

3. 重复直到中心为最小点

菱形搜索的平均搜索点数远少于 TSS,在自然视频中通常更高效。

Part 2
视频编码标准的演进
MPEG-1(1993)

MPEG-1 是第一个成功的视频压缩标准,用于 VCD(Video CD)和 CD-ROM 存储。

关键特征:

  • 分辨率:352×240(NTSC)或 352×288(PAL)
  • 码率:1.5 Mbps
  • 帧类型:I、P、B
  • 变换:8×8 DCT
  • 运动补偿:16×16 宏块,半像素精度
  • 熵编码:Huffman
MPEG-2(1995)/ H.262

MPEG-2 是 MPEG-1 的增强版,用于 DVD、数字电视和蓝光光盘。

关键改进:

  • 支持隔行扫描视频
  • 分辨率最高 1920×1080
  • 码率最高 80 Mbps
  • 更灵活的帧间预测(支持场预测和帧预测)
  • 支持可变长编码
H.263(1995)

H.263 为低码率通信(如视频会议)设计。

关键改进:

  • 更灵活的宏块划分(支持 8×8 块的运动补偿)
  • 改进的运动预测(非限制运动矢量)
  • 更高效的熵编码
MPEG-4 Part 2 / Visual(1999)

MPEG-4 引入了基于对象的编码概念,但在实践中大多数实现仍使用基于块的编码。

H.264/AVC(2003)

H.264 是视频压缩的里程碑标准,由 ITU-T VCEG 和 ISO/IEC MPEG 联合开发(Joint Video Team, JVT)。它在 MPEG-2 的基础上提供了约 50% 的压缩效率提升,至今仍是使用最广泛的视频编码标准。

📖 H.264 详细技术原理

H.264 的完整编码架构(宏块划分、帧内/帧间预测、整数 DCT、量化、CABAC/CAVLC、环路滤波、多参考帧、Profile/Level)已独立为专题文章:图像压缩基础系列(八):H.264 视频编码原理详解。该文按 12 个专题系统拆解 H.264 的全部核心技术模块。

参考来源

  • Richardson, I. E. G. (2010). The H.264 Advanced Video Compression Standard (2nd ed.). Wiley.
  • ITU-T H.264 (2021). "Advanced Video Coding for Generic Audiovisual Services".
  • Wiegand, T., et al. (2003). "Overview of the H.264/AVC Video Coding Standard". IEEE Transactions on Circuits and Systems for Video Technology, 13(7), 560–576.
  • Vcodex (2024). "Historical Timeline of Video Coding Standards and Formats".
  • MPEG (1993). ISO/IEC 11172-2, "Coding of Moving Pictures and Associated Audio".
系列导航
下一篇

本篇是基础系列的第五篇。