目录4.3 非方向帧内预测1. DC_PRED预测模式2. SMOOTH系列预测模式3. PAETH_PRED预测模式4.3 非方向帧内预测除了方向帧内预测之外AV1 还定义了 5 种非方向帧内预测模式来模拟图像块的平滑区域。这 5 种非方向预测模式分别是DC_PRED、SMOOTH_PRED、SMOOTH_H_PRED、SMOOTH_V_PRED和PAETH_PRED。1.DC_PRED预测模式在DC_PRED预测模式中AV1 使用当前变换块的左侧和上方参考像素的平均值来生成预测像素值。在DC_PRED预测模式下预测像素生成过程具体描述如下如果当前变换块的左侧和上方参考像素AboveRow[0:W-1]和LeftCol[0:H-1]均可用那么否则如果当前变换块的左侧参考像素LeftCol[0:H-1]可用那么否则如果当前变换块的上方参考像素AboveRow[0:W-1]可用那么否则如果AboveRow[0:W-1]和LeftCol[0:H-1]均不可用那么2.SMOOTH系列预测模式预测模式SMOOTH_V_PRED和SMOOTH_H_PRED分别沿垂直和水平方向使用二次插值方式生成预测值而预测模式SMOOTH_PRED则使用SMOOTH_V_PRED和SMOOTH_H_PRED的二次插值结果的平均值生成预测值。用于二次插值的参考像素包括来自顶部和左侧的参考像素以及右上角和左下角的参考像素。具体来讲SMOOTH_V_PRED使用顶部参考像素AboveRow[col]和左下角像素LeftCol[H-1]的加权平均作为预测值。SMOOTH_H_PRED使用左侧参考像素LeftCol[row]和右上角参考像素AboveRow[W-1]的加权平均作为预测值。SMOOTH_PRED则使用LeftCol[row]、AboveRow[col]、AboveRow[W-1]和LeftCol[H-1]这 4 个参考像素的加权平均作为预测值。图4-12所示为4x8变换块在SMOOTH_PRED预测模式下的预测像素和参考像素之间的位置关系。图4-12 SMOOTH_PRED预测模式下的预测像素和参考像素之间的位置关系在预测模式SMOOTH_V_PRED、SMOOTH_H_PRED以及SMOOTH_PRED下AV1 首先根据当前变换块的宽度W和高度H使用表 4-3 中的水平和垂直权重对应关系选择合适的权重数组。表 4-3 中列出的权重数组是通过二次函数 yax^2bxc 拟合得到的其中y是待预测像素位置的权重x是待预测像素距离参考像素的距离a,b和c是拟合参数。由于权重smWeightsX和smWeightsY是通过二次函数拟合得到的因此预测像素值可以视为使用二次插值来生成的。表 4-3SMOOTH_PRED的水平和垂直权重选择方式水平方向权重smWeightsX垂直方向权重smWeightsYlog₂WsmWeightsXlog₂HsmWeightsY2Sm_Weights_Tx_4x42Sm_Weights_Tx_4x43Sm_Weights_Tx_8x83Sm_Weights_Tx_8x84Sm_Weights_Tx_16x164Sm_Weights_Tx_16x165Sm_Weights_Tx_32x325Sm_Weights_Tx_32x326Sm_Weights_Tx_64x646Sm_Weights_Tx_64x64对于SMOOTH_V_PRED预测模式预测值p[col][row]的计算方式如下对于SMOOTH_H_PRED预测模式预测值p[col][row]的计算方式如下对于SMOOTH_PRED预测模式预测值p[col][row]的计算方式如下3.PAETH_PRED预测模式在PAETH_PRED预测模式中AV1 使用顶部参考像素AboveRow[col]、左侧参考像素LeftCol[row]和左上角参考像素AboveRow[-1]来生成预测值p[col][row]。图4-13为PAETH_PRED预测模式中参考像素的位置示意图。图4-13 PAETH_PRED预测模式中参考像素的位置示意图之后PAETH_PRED预测模式按照下述公式来生成预测值p[col][row]也就是说PAETH_PRED预测模式从参考像素AboveRow[col]、LeftCol[row]和AboveRow[-1]中选择与base值最接近的参考像素作为预测值。这种非线性的预测像素生成方式可以控制预测方向使其与具有最高相关性的纹理方向对齐。为了传输非方向帧内预测AV1 仍然使用语法元素intra_frame_y_mode和uv_mode来指明亮度和色度的非方向帧内预测模式