一句话说透计算机视频编码里面的在H264标准里面,视频的第一帧的第一个块应该怎么选择预测模式呢?

165 阅读3分钟

在 H.264 编码中,视频的第一帧是 I 帧(关键帧) ,而第一个块(即第一个宏块,通常位于图像左上角)的预测模式选择遵循以下逻辑:


一、核心原则:边界条件下的预测模式

由于第一个宏块位于图像左上角(坐标 (0,0)),左侧和上方没有已编码的像素,因此:

  1. 无法使用左侧和上方的参考像素(因为图像边界外无数据)。
  2. 编码器会通过 默认值填充 或 限制预测模式 来处理。

二、具体预测模式选择

1. 亮度分量(Luma)的预测模式

  • Intra_16x16 模式(适用于平坦区域):

    • 可选模式

      • DC 预测(所有像素取平均值,默认选择)。
      • 垂直预测(若上方无像素,默认填充为边界值)。
      • 水平预测(若左侧无像素,默认填充为边界值)。
      • 平面预测(需要上下左右像素,不适用)。
    • 实际选择
      由于上方和左侧无参考像素,通常选择 DC 预测(计算效率高,残差小)。

  • Intra_4x4 模式(适用于细节区域):

    • 若启用 Intra_4x4,每个 4x4 块需单独预测。
    • 由于左上角块无参考像素,所有 4x4 子块默认选择 DC 预测

2. 色度分量(Chroma)的预测模式

  • Intra_8x8 模式

    • 同样受限于无参考像素,通常选择 DC 预测 或 垂直/水平预测(填充边界值)。

三、编码器的实际处理

  1. 边界填充

    • 对于缺失的左侧和上方像素,编码器用 图像边界的像素值 或 固定值(如 128)  填充。
    • 例如:若第一个宏块上方无像素,则用当前宏块的第一行像素向上复制填充。
  2. 模式决策

    • 编码器会计算所有可能模式的残差(预测误差),选择 残差最小的模式
    • 但由于无参考像素,大多数模式无法有效预测,最终可能强制使用 DC 预测

四、示例:H.264 的第一个宏块处理

假设编码一个 1920x1080 的视频,第一个宏块(16x16)的左上角坐标为 (0,0)

  1. 参考像素填充

    • 左侧和上方无数据 → 填充为默认值(如 128,对应灰度中值)。
  2. 模式选择

    • 计算 DC 预测(所有像素取填充值的平均)。
    • 计算垂直预测(填充上方为当前宏块第一行)。
    • 选择残差较小的模式(通常 DC 预测更优)。

五、总结

  • 第一帧第一个宏块的预测模式

    • 亮度(Intra_16x16):默认选 DC 预测(最保守且高效)。
    • 色度(Intra_8x8):同亮度逻辑。
  • 核心原因

    • 边界无参考像素 → 预测模式受限。
    • DC 预测鲁棒性强,适合无参考场景。

口诀
“第一帧首块左上角,无依无靠无参考。
垂直水平皆受限,DC预测是王道!”