Peath模式原理
- Paeth预测模式:AV1引入的新的帧内预测模式,由计算机科学家Alan W. Paeth在开发PNG格式时提出,因此以他的名字进行命名该模式;
- 原理:是一种加权预测,如图所示,根据其顶部(T)、左侧(L)和左上角(TL)的参考样本预测每个样本。在这些参考样本中,与(T + L – TL)的值最接近的那个值被选为预测样本。
- 应用:Paeth预测模式特别适合于图像的平滑区域,因为它可以有效地减少预测误差,提高压缩效率。在AV1中,这种模式是多种帧内预测模式之一,与其他模式一起使用,以适应不同类型的图像内容。
libaom相关源码分析
-
libaom 模式序号为 12,在 enums.h 中定义。
-
libaom 源码相关函数关系:
-
paeth_predictor函数
- 外层循环遍历块的高度bh。
- 内层循环遍历块的宽度bw。
- paeth_predictor_single函数被调用来计算每个像素的预测值,该函数接受三个参数:左侧像素值left[r],上方像素值above[c],以及左上角像素值ytop_left。
- 计算得到的预测值被存储在dst[c]中。
- 每次内层循环结束后,dst指针增加stride,以移动到下一行的目标缓冲区。
static INLINE void paeth_predictor(uint8_t *dst, ptrdiff_t stride, int bw,
int b