参考像素滤波
在帧内预测时需要使用左侧一列和上方一行重建像素作为参考像素。在使用参考像素进行预测前为了更好的利用空域相关性和降噪,通常需要对参考像素进行滤波。在HEVC中根据TU大小和帧内预测模式的不同会使用不同的滤波,即模式依赖的参考像素滤波( mode dependent intra reference sample smoothing,MDIS)。
滤波选择
(1)不同尺寸TU的滤波
-
DC模式的任何尺寸TU都不进行滤波。
-
4x4大小的TU不进行滤波。
-
32x32的TU:除模式10(水平)、模式26(垂直)之外的所有角度模式以及Planar模式需要滤波。
-
16x16TU:在32x32TU基础上去掉模式9、11、25、27,其他模式需要滤波。
-
8x8TU:仅对3个45度方向的模式(模式2、18、34)和Planar模式进行滤波。
(2)滤波强度
-
常规滤波
HEVC使用3抽头滤波器[1,2,1]/4进行常规滤波,如上图所示。滤波过程如下:
其中x,y=1,2,...2N-1。
对于R_0,0,R_2N,0,R_0,2N,滤波结果如下:
-
强滤波
强滤波仅对32x32TU进行,且需要满足下面两个条件:
其中Bd为位深。
强滤波在水平和垂直方向的过程如下:
像素投影
帧内预测时需要使用左侧一列和上方一行重建像素作为参考像素,在实际使用时通常需要将其投影到一维,即对于垂直类模式将左侧参考像素投影到上方,对于水平类模式将上方参考像素投影到左侧。在使用投影后的一维参考像素进行预测时,若该角度模式未落到整数像素位置需要使用1/32像素精度进行插值预测。
角度预测过程
每个角度模式都相当于在水平或垂直方向进行了一个偏移,各角度模式对应的偏移值如下:
以垂直类模式为例介绍预测像素计算过程:
(1)像素投影
给定的垂直类模式M,需要将参考像素映射为一维形式Ref。
-
若模式M的偏移offset[M]<0,则需要将TU左侧的像素投影到上方像素的左侧,投影方式如下:
-
若模式M的偏移offset[M]>=0,则预测时只需要用到上方的参考像素。
以8x8TU,模式20(offset=-21)为例,投影方式如下:
y(-1)=2,y(-2)=,y(-3)=5,y(-4)=6,y(-5)=8
则有:
Ref[-1]=R_0,2,Ref[-2]=R_0,3,Ref[-3]=R_0,5,Ref[-4]=R_0,6,Ref[-5]=R_0,8。
(2)预测值计算
-
计算当前像素对应的参考像素在Ref中的位置pos:
pos=(y*offset[M])>>5
-
计算加权因子w
w=(y*offset[M])&31
-
计算预测值
P_xy=((32-w)Ref[pos]+w*Ref[pos+1]+16)>>5
附:下图是4x4TU水平类模式投影的结果
感兴趣的请关注微信公众号Video Coding