H.266/VVC技术学习:帧内预测之角度预测模式

帧内预测之角度预测

为了捕捉自然视频中呈现的任意边缘方向,VVC中的帧内传统角度预测模式数从HEVC中使用的33个扩展到65个。在下图中,VVC中的新的角度预测模式被描绘成红色虚线箭头,并且planar和DC模式保持不变。

                 H.266/VVC技术学习:帧内预测之角度预测模式_第1张图片                         H.266/VVC技术学习:帧内预测之角度预测模式_第2张图片

                                            H.265/HEVC                                                                       H.266/VVC
在HEVC中,每个帧内编码块都是正方形的且每边的长度是2的幂,因此,使用DC模式进行帧内预测时不需要除法运算。在VVC中,帧内编码块可以是矩形,为了避免用DC模式进行帧内预测时需要进行除法运算,VVC只计算较长一边的均值作为预测值。

1、帧内模式编码

如果直接对预测块的模式进行编码,那么对于67种模式需要7bit来编码,数据量很大。VVC采取和HEVC一样的方法,先构建最可能模式列表(most probable mode ,MPM),在VVC内MPM list里有6个预测模式(无论是否应用MRL和ISP),如果该块的预测模式在MPM中只需要编码其索引号(只需要3bit),如果该块的预测模式不在MPM中而是在61个non-MPM模式中,在熵编码阶段使用截断二元码(Truncated Binary Code ,TBC)编码其模式。

MPM列表是基于左边相邻块和上方相邻块的帧内模式构造的,构造方法如下:

  • 当左边块和上边块不可参考时,其帧内模式默认设置为Planar模式
  • 如果左边块和上边块都是非角度模式时
    • MPM list -> {Planar,DC,V,H,V--4,V+4}
  • 如果左边块和上边块其中一个是角度模式,另一个不是角度模式时
    • Max是左边块和上边块较大的模式
    • –MPM list ->{Planar, Max, DC, Max − 1, Max + 1, Max − 2}
  • 如果左边块和上边块都是角度模式且它们不同时
    • Max是左边块和上边块较大的模式
    • 如果左边和上边块的模式差在2到62之间(包括2到62),则MPM list ->{Planar, Left, Above, DC, Max − 1, Max + 1}
    • 否则,MPM list ->{Planar, Left, Above, DC, Max − 2, Max + 2}
  • 如果左边块和上边块时相同的角度模式时
    • MPM list –>{Planar, Left, Left − 1, Left + 1, DC, Left − 2}

MPM索引码字的第一个bin是CABAC上下文编码的。总共使用三个上下文,分别对应于当前帧内块是启用了MRL、启用了ISP还是正常的帧内块。

生成MPM列表时候,需要删除重复的模式,以便包含在MPM列表的模式唯一。

2、针对矩形块的宽角度模式

在HEVC中,由于帧内预测块都是正方形的所以各个角度预测模式使用的概率是相等的。而在VVC中,帧内预测块可能是矩形块,对于水平类的块(宽大于高)上边的参考像素使用概率大于左边参考像素的使用概率,对于垂直类的块(高大于宽)上边的参考像素使用概率小于左边参考像素的使用概率。因此,VVC引入了宽角度预测模式,在对矩形块预测时,将传统的角度预测模式转换为宽角度预测模式。

H.266/VVC技术学习:帧内预测之角度预测模式_第3张图片

如图,模式2 ~ 66表示传统的帧内预测模式,模式 -1 ~ -14以及模式67 ~ 80表示宽角度预测模式。

宽角度预测模式仍然使用使用传统角度模式索引发出信号,在解码端在将传统角度模式再转换为宽角度预测模式,这样的话帧内预测模式的总数和帧内模式编码方法保持不变。

H.266/VVC技术学习:帧内预测之角度预测模式_第4张图片

                                                       Reference samples for wide-angular intra prediction

宽角度预测模式参考像素如上图所示,为了支持宽角度预测方向,上图定义了长度为2W+1的顶部参考和长度为2H+1的左侧参考。

宽角度帧内预测模式的替换取决于块的宽高比。具体如下表所示:

Aspect ratio

Replaced intra prediction modes

W / H == 16

Modes 12, 13,14,15

W / H == 8

Modes 12, 13

W / H == 4

Modes 2,3,4,5,6,7,8,9,10,11

W / H == 2

Modes 2,3,4,5,6,7,

W / H == 1

None

W / H == 1/2

Modes 61,62,63,64,65,66

W / H == 1/4

Mode 57,58,59,60,61,62,63,64,65,66

W / H == 1/8

Modes 55, 56

W / H == 1/16

Modes 53, 54, 55, 56

H.266/VVC技术学习:帧内预测之角度预测模式_第5张图片

如上图所示,当对矩形块使用宽角度预测时,垂直相邻的两个预测像素可能使用两个不相邻的参考像素。为了减少参考像素间距∆pα带来的负面影响,需要对参考像素进行低通滤波和平滑处理。当预测模式是[-14, -12, -10, -6, 72, 76, 78, 80]时,参考像素可以不经处理直接使用。

3、模式相关的帧内平滑滤波 (MDIS)

在HEVC中,对角度预测模式(不包括Planar和DC)使用两抽头线性插值滤波器进行滤波。在VVC中,采用四抽头高斯插值滤波器来进行滤波,从而提高帧内角度预测精度。

在VVC中,根据帧内角度模式,选择[1,2,1]滤波器(([1 2 1] / 4 ) reference filter)或者简化后的6bit 4抽头高斯插值滤波器(Gaussian 4-tap interpolation filter),具体处理如下:

  1. 将角度预测模式分为以下:
    1. A垂直或水平模式(HOR_IDX, VER_IDX)
    2. B对角线模式(2, DIA_IDX, VDIA_IDX)
    3. 其它
  2. 如果角度模式属于A,不进行滤波处理,直接将参考像素作为预测像素。

  3. 如果角度模式属于B,使用[1, 2, 1]滤波器对参考像素进行滤波,直接将滤波后的值作为预测像素不进行插值处理。

  4. 如果角度模式属于C,对落到非整数位置的参考像素进行插值处理(不再进行滤波)。

你可能感兴趣的:(H.266/VVC)