H.266/VVC中的帧内预测

67种帧内预测模式

为了能够刻画视频中任意边界方向特征,VTM4中的帧内预测角度模式增加到了65种(HEVC角度模式有33种)。如下图所示,新增的角度模式用红色虚线表示。同时planar和DC模式和HEVC仍相同。这些角度模式会被用于各种尺寸块各个分量的帧内预测。
在这里插入图片描述
同时,在VTM4中,对于非方形的块进行帧内预测时,一些传统的角度预测模式会被自动替换成宽角度帧内预测模式(见后面)。

另外,对于DC模式,由于HEVC中的帧内编码块总是方形,且尺寸是2的次方,因此在HEVC中进行DC模式预测时不需要除法(使用的是移位操作)。而在VTM4中,编码块可以是矩形块,因此计算dc模式的dcVal时会用到除法,为了避免dc模式下使用除法,VTM4中的DC模式在处理非方形块时只对较长的一边计算平均值(使用移位操作相比除法能更加快速地运算)。

MPM构建

为了减少MPM(most probable mode)的计算复杂度。VVC中通过参考与当前编码块相邻的两个块的帧内预测模式来确定6个MPMs。构建MPM时主要参考以下三方面的信息:

  • 默认帧内预测模式
  • 相邻帧内预测模式
  • 导出的帧内预测模式

其中,相邻帧内预测模式包括当前块左方的编码块A和上方的编码块B的预测模式。

具体构建MPM列表的过程如下:

首先有默认的6个MPM:{A, Planar (0) or DC (1), Vertical (50), HOR (18), VER - 4 (46), VER + 4 (54)}

接下来如果A和B模式相同,且均大于DC模式(1),则MPM由两部分组成,一部分是三个默认的模式:{ A, Planar, DC },另一部分则需要推导得出,将A加上预先定义的偏移值得到一个并怎么样再得到两个(文档没说清楚,我也不知道)。

如果A和B模式不同,则MPM包含这两种模式,剩余的四种从默认列表里面选取。

最终的MPM列表中每种模式都是不同的,对于非MPM中的预测模式,熵编码时会采用截断二元码进行编码。

非方块的宽角度帧内预测

传统帧内角度预测范围是从45度到-135度。在VTM4中对非方块进行帧内预测时,一些传统角度模式会被替换为宽角度模式。宽角度模式会使用原本的角度模式编号,一一对应。角度模式的总数并没有改变,只不过是对应的模式使用了宽角度预测方式。也就是说并不会影响帧内预测模式的编码。

如果使用宽角度预测,则选取的参考像素也会和常规角度不同,如下图,模式66原本是45度预测,但是若当前块满足使用宽角度预测的条件,则会对预测角度进行调整。
在这里插入图片描述
当前块的尺寸满足特定条件时,某些角度会被替换成宽角度模式,具体条件如下:
在这里插入图片描述
另外,如下图所示,使用宽角度预测时,两个竖直相邻的待预测像素可能会使用不相邻的参考像素。为了减少这种现象带来的负面影响,对宽角度模式下的参考像素需要进行低通滤波以及边界平滑。
在这里插入图片描述

根据模式进行的帧内平滑(Mode Dependent Intra Smoothing,MDIS)

在VVC中用到了四抽头插值滤波器来提升帧内预测的准确性(HEVC中使用的是两抽头的线性插值滤波器)。在VTM4中,针对角度预测使用简化的6比特4抽头高斯插值滤波器,对非角度模式不做改变,且以下角度模式也不会使用4抽头滤波器:2, HOR_IDX, DIA_IDX, VER_IDX, 66。

根据预测模式的不同,具体帧内预测过程如下:

  1. 首先将帧内预测模式分类:
  • A. 竖直或水平模式(HOR_IDX, VER_IDX)
  • B. 对角模式(2, DIA_IDX, VDIA_IDX(应该就是66))
  • C. 其余模式
  1. 如果预测模式属于A类,参考像素直接生成预测像素(水平或竖直平移即可)。
  2. 如果预测模式属于B类,则使用[1,2,1]的抽头系数来对参考像素进行滤波,并由滤波后的参考像素直接生成(copy)预测像素,并不需要对参考像素进行插值。
  3. 如果是C类,则使用插值滤波器对参考像素进行插值(以应对待预测像素的参考像素落到非整精度位置的情况)并直接生成预测像素,此时参考像素不需要滤波。
发布了25 篇原创文章 · 获赞 46 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/huster1446/article/details/87917341