5.3.2 块间预测(Block Inter Prediction)

作者:chai51
出处:https://www.cnblogs.com/chai51
版权:本文版权归作者和博客园共有
转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任

引言

块间预测(Block Inter Prediction)是帧间预测生成过程的核心步骤,它使用插值滤波器进行标准运动补偿,生成预测块。块间预测支持子像素精度,使用高质量的8抽头滤波器或快速的双线性滤波器。

源码说明: 本文档基于作者自己编写的AV1解码器Python实现,所有代码示例和实现细节均来自实际可运行的源码。源码仓库:GitHub - av1_learning


块间预测概述

位置: src/reconstruction/prediction.py - block_inter_prediction()

规范文档: 7.11.3.4 Block inter prediction process

功能说明

使用插值滤波器进行标准运动补偿,生成预测块。块间预测支持子像素精度,使用高质量的8抽头滤波器或快速的双线性滤波器。

过程

  1. 水平插值

    # 使用水平插值滤波器
    for r in range(intermediateHeight):
        for c in range(w):
            p = x + xStep * c
            intermediate[r][c] = apply_horizontal_filter(p, ...)
    
  2. 垂直插值

    # 使用垂直插值滤波器
    for r in range(h):
        for c in range(w):
            p = y + yStep * r
            pred[r][c] = apply_vertical_filter(p, intermediate, ...)
    

插值滤波器

  • 8抽头滤波器:用于高质量插值,支持子像素精度
  • 双线性滤波器:用于快速模式,计算简单
  • 根据块大小自动选择滤波器类型

块间预测详细流程图

graph TD A[块间预测开始<br/>block_inter_prediction] --> B[获取参考帧<br/>FrameStore refIdx] B --> C[计算子采样参数<br/>subX subY] C --> D[计算边界<br/>lastX lastY] D --> E[计算中间高度<br/>intermediateHeight] E --> F[选择水平插值滤波器<br/>InterpFilters 1] F --> G{块宽度} G -->|w <= 4| H[调整滤波器类型] G -->|w > 4| I[使用原始滤波器] H --> J[水平插值] I --> J J --> K[遍历中间行] K --> L[遍历列] L --> M[计算子像素位置<br/>p = x + xStep * c] M --> N[应用水平滤波器<br/>8抽头插值] N --> O[存储中间结果<br/>intermediate r c] O --> P{还有列?} P -->|是| L P -->|否| Q{还有行?} Q -->|是| K Q -->|否| R[选择垂直插值滤波器<br/>InterpFilters 0] R --> S{块高度} S -->|h <= 4| T[调整滤波器类型] S -->|h > 4| U[使用原始滤波器] T --> V[垂直插值] U --> V V --> W[遍历输出行] W --> X[遍历列] X --> Y[计算子像素位置<br/>p = y + yStep * r] Y --> Z[应用垂直滤波器<br/>8抽头插值] Z --> AA[存储最终预测<br/>pred r c] AA --> AB{还有列?} AB -->|是| X AB -->|否| AC{还有行?} AC -->|是| W AC -->|否| AD[块间预测完成] style A fill:#e1f5ff style J fill:#fff9c4 style V fill:#fff9c4 style AD fill:#c8e6c9

总结

块间预测使用插值滤波器进行标准运动补偿,生成预测块。它支持子像素精度,使用高质量的8抽头滤波器或快速的双线性滤波器,是帧间预测生成过程的核心步骤。


参考资源:

上一篇: 运动向量缩放
下一篇: Warp预测

posted @ 2026-01-10 07:54  chai51  阅读(0)  评论(0)    收藏  举报