4.3.5 基本帧内预测(Paeth)

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

引言

基本帧内预测(Paeth Prediction)是AV1帧内预测中的一种通用预测模式,使用Paeth预测器选择最接近的参考像素(左侧、上方或左上角),适合通用场景。它通过计算三个参考像素与预测值的距离来选择最佳参考。

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


基本帧内预测概述

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

规范文档: 7.11.2.2 Basic intra prediction process

功能说明

Paeth预测器选择最接近的参考像素(左侧、上方或左上角),适合通用场景。它通过计算三个参考像素与预测值的距离来选择最佳参考。

预测流程

  1. 计算base值

    base = AboveRow[j] + LeftCol[i] - AboveRow[-1]
    
  2. 计算三个距离

    pLeft = abs(base - LeftCol[i])
    pTop = abs(base - AboveRow[j])
    pTopLeft = abs(base - AboveRow[-1])
    
  3. 选择最小距离

    if pLeft <= pTop and pLeft <= pTopLeft:
        pred[i][j] = LeftCol[i]
    elif pTop <= pTopLeft:
        pred[i][j] = AboveRow[j]
    else:
        pred[i][j] = AboveRow[-1]
    

Paeth预测流程图

graph TD A[基本帧内预测开始<br/>_basic_intra_prediction] --> C[遍历每个像素位置] C --> D[计算base值] D --> E[计算三个距离] E --> F{选择最小距离} F -->|pLeft最小| G[使用左侧像素<br/>pred i j = LeftCol i] F -->|pTop最小| H[使用上方像素<br/>pred i j = AboveRow j] F -->|pTopLeft最小| I[使用左上角像素<br/>pred i j = AboveRow -1] G --> J{还有像素?} H --> J I --> J J -->|是| C J -->|否| K[基本预测完成] style A fill:#e1f5ff style F fill:#fff9c4 style K fill:#c8e6c9

总结

基本帧内预测是AV1帧内预测中的通用预测器,使用Paeth预测器选择最佳参考像素。它简单高效,适合通用场景,是AV1帧内预测体系的重要组成部分。


参考资源:

上一篇: 递归帧内预测
下一篇: 调色板预测

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