从零开始理解 H.264 编码原理

揭秘现代视频压缩的核心技术

1. 什么是视频编码?

视频编码的本质是去除冗余信息。一个视频序列包含大量的帧,其中相邻帧之间、同一帧的不同区域都存在大量的相似性。H.264 就是通过高效地利用这些冗余来压缩视频数据。

2. 核心压缩技术

H.264 主要利用了以下两种方式进行压缩:

  • 帧内预测 (Intra-prediction): 编码器利用当前帧内部已编码的相邻像素来预测当前宏块的像素值,只编码预测值与实际值之间的残差。这大大减少了同一帧内的空间冗余。
  • 帧间预测 (Inter-prediction): 编码器利用前后帧中的信息来预测当前宏块。通过运动补偿,找到一个运动向量,指向参考帧中最相似的宏块,然后只编码运动向量和残差。这是视频压缩中最核心的机制,可以去除大量的时间冗余。

3. 编码步骤概述

一个简单的 H.264 编码过程可以概括为:

  1. 将视频帧分割为宏块。
  2. 对每个宏块进行预测(帧内或帧间)。
  3. 计算预测值与原始值的残差。
  4. 对残差进行变换(如 DCT 变换)和量化。
  5. 对变换后的系数进行熵编码,得到最终的码流。