视频基础知识

编码格式

基础概念 (Basic Concepts)

在视频压缩中,为了进一步降低数据量,编码器会利用帧与帧之间的相似性(时间冗余)。根据参考方式的不同,视频帧主要分为三种类型:I 帧、P 帧和 B 帧。

1. I 帧 (Intra-coded Picture) - 关键帧

  • 定义: 帧内编码帧,也称为关键帧 (Keyframe)
  • 特点:
    • 不依赖其他帧,可以独立解码。
    • 包含一幅完整的图像数据(类似于一张 JPG 图片)。
    • 压缩率最低,体积最大。
  • 作用: 作为 GOP (Group of Pictures) 的起点,提供解码的参考基准。视频拖动播放(Seek)时,通常需要定位到最近的 I 帧开始解码。

2. P 帧 (Predictive-coded Picture) - 前向预测帧

  • 定义: 前向预测编码帧。
  • 特点:
    • 利用前一帧(I 帧或 P 帧)作为参考进行编码。
    • 只记录与前一帧的差异数据(运动矢量和残差)。
    • 压缩率高于 I 帧,体积约为 I 帧的 30%~50%。
  • 作用: 进一步压缩数据,但解码必须依赖前一帧。

3. B 帧 (Bidirectionally predicted Picture) - 双向预测帧

  • 定义: 双向预测编码帧。
  • 特点:
    • 利用前一帧后一帧(I 帧或 P 帧)作为参考进行编码。
    • 记录当前帧与前后参考帧的差异。
    • 压缩率最高,体积最小(约为 I 帧的 10%~20%)。
  • 缺点:
    • 编码/解码复杂度高: 需要对比前后两帧。
    • 增加延迟: 必须等待后一帧解码完成后,才能解码当前的 B 帧。因此不适合对实时性要求极高(如超低延迟直播)的场景。

GOP (Group of Pictures)

  • 定义: 两个 I 帧之间的一组连续画面。
  • 结构: 通常以 I 帧开始,包含若干 P 帧和 B 帧。例如:I B B P B B P ...
  • GOP 长度: 两个 I 帧之间的距离。GOP 越长,B/P 帧越多,压缩率越高,但 Seek 响应越慢,且抗丢包能力越弱。

DTS 与 PTS

引入 B 帧后,视频帧的解码顺序显示顺序不再一致,因此需要两个时间戳:

  • DTS (Decoding Time Stamp): 解码时间戳,告诉播放器什么时候解码这一帧。
  • PTS (Presentation Time Stamp): 显示时间戳,告诉播放器什么时候显示这一帧。

示例:

  • 显示顺序 (PTS): I B B P
  • 解码顺序 (DTS): I P B B (因为 B 帧需要参考后面的 P 帧,所以 P 帧必须先解码)

H.264 (AVC)

H.264,全称为 MPEG-4 Part 10, Advanced Video Coding (AVC),是一种面向块的运动补偿视频压缩标准。它是目前最常用的视频编码格式之一,广泛应用于网络流媒体、蓝光光盘和高清电视广播。

核心概念

  • 宏块 (Macroblock): H.264 处理图像的基本单位是 16x16 像素的宏块。
  • 帧内预测 (Intra Prediction): 利用当前帧中已编码像素预测当前块,减少空间冗余。
  • 帧间预测 (Inter Prediction): 利用参考帧(过去或未来)预测当前块,减少时间冗余。支持多参考帧。
  • 变换与量化: 使用整数变换(DCT的近似)和量化来压缩数据。
  • 熵编码: 使用 CABAC (Context-based Adaptive Binary Arithmetic Coding) 或 CAVLC (Context-based Adaptive Variable Length Coding) 进行无损压缩。

常见 Profile (档次)

  • Baseline Profile: 计算复杂度低,适用于实时通信(如视频会议、移动设备)。不支持 B 帧。
  • Main Profile: 曾用于标清数字电视,支持 B 帧和隔行扫描。
  • High Profile: 目前最主流,用于高清电视、蓝光、网络视频。支持 8x8 变换,压缩效率更高。

优缺点

  • 优点: 兼容性极好(几乎所有设备都支持),压缩效率高,画质好。
  • 缺点: 相比 H.265,在 4K/8K 超高清分辨率下压缩效率显得不足。

H.265 (HEVC)

H.265,全称为 High Efficiency Video Coding (HEVC),是 H.264 的继任者。其设计目标是在保证相同视频质量的前提下,将比特率降低约 50%。

核心改进

  • 编码树单元 (CTU): 取代了 H.264 的宏块。CTU 的尺寸最大可达 64x64,可以根据图像内容的平坦或复杂程度灵活划分(四叉树结构)。这对于高分辨率视频(4K/8K)非常有效。
  • 更高效的预测: 支持更多的帧内预测方向(35种 vs H.264的9种),更精细的帧间预测。
  • 并行处理: 设计了 Tile 和 Wavefront Parallel Processing (WPP) 技术,更有利于多核处理器并行解码。

优缺点

  • 优点: 压缩效率极高(同画质下体积约为 H.264 的一半),非常适合 4K、8K 和 HDR 视频。
  • 缺点:
    • 计算复杂度高: 编码和解码需要的算力远高于 H.264(编码复杂度约增加 2-10 倍)。
    • 专利授权: 专利池比较复杂,收费较高,一定程度上阻碍了早期推广。

H.264 vs H.265 对比

特性H.264 (AVC)H.265 (HEVC)
发布年份20032013
基本单元宏块 (Macroblock),固定 16x16编码树单元 (CTU),最大 64x64
压缩效率基准提升约 50% (同画质下码率减半)
计算复杂度较低,对硬件要求低较高,需要更强的 CPU/GPU
最高分辨率支持4K (通常)8K (甚至更高)
应用场景1080p 视频, 直播, 广泛兼容场景4K/8K 视频, 带宽受限的高清传输