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预测器选择最接近的参考像素(左侧、上方或左上角),适合通用场景。它通过计算三个参考像素与预测值的距离来选择最佳参考。
预测流程
-
计算base值
base = AboveRow[j] + LeftCol[i] - AboveRow[-1] -
计算三个距离
pLeft = abs(base - LeftCol[i]) pTop = abs(base - AboveRow[j]) pTopLeft = abs(base - AboveRow[-1]) -
选择最小距离
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帧内预测体系的重要组成部分。
参考资源:
- AV1规范文档
- 源码实现: GitHub - av1_learning
- 预测实现:
src/reconstruction/prediction.py
- 预测实现:

浙公网安备 33010602011771号