VVC-帧内预测改进

1. 65个帧内预测方向

HEVC帧内预测:包括Planar模式、DC模式和33种角度预测模式。
VVC帧内预测:Planar和DC模式,角度预测模式增加到了65种,帧内预测模式达到了67种。角度预测更加密集,对所有块、亮度色度分量都可用。

VVC-帧内预测改进_第1张图片

预测方向加倍后,进行模式粗选时的MPM也加倍。

帧内预测模式的选择机制更新
在HM编码器中,帧内预测使用了两阶段选择机制:
a.粗选阶段:使用低复杂度的SATD代价,从所有可用的帧内预测模式中选出N个较优模式。
b. 细选阶段:将M个MPM加入到N个较优模式,合并重复模式,使用高复杂度的RD代价,选出一个最优的帧内预测模式。
在JEM中,为降低编码器的复杂度,没有直接沿用HM的两阶段选择机制,对其进行了修改:
a. 粗选阶段(对原HM帧内预测模式进行选择):使用低复杂度的SATD代价,从原HEVC的35种帧内预测模式中选出N个较优模式。
b. 二次粗选阶段(对JEM新增的角度预测模式进行选择):使用SATD,对N个模式中的角度预测模式与其邻近角度比较,选择优者,对N个较优模式进行更新。
c. 细选阶段:将M个MPM插入到N个较优模式中,合并重复模式得到最终的帧内预测模式候选列表。使用RD代价,从候选列表中选出一个最优的帧内预测模式。

2. 位置决定的联合预测(Position dependent intra prediction combination,PDPC)

提案:JVET-B0022。核心思想是联合帧内当前块的已滤波边缘参考采样与未滤波边缘参考采样,进行加权预测。
HEVC的帧内预测是根据预测模式和块尺寸大小,选择未滤波或者滤波后的边缘参考采样两者中的一个,来进行预测。而PDPC中,将未滤波和滤波后的边缘参考采样联合进行加权预测。下面采用提案里的一个参考图介绍思想:
VVC-帧内预测改进_第2张图片
1step(边缘滤波): 设未滤波的参考边缘为R,根据块尺寸和预测模式,选择3-7抽头的滤波器用于R的滤波;
2step(帧内预测): 使用滤波后的参考像素对4x4块进行帧内预测,Planar,DC,33directions,得到预测值P;
3step(联合预测): 以加权的形式联合R和P,越接近左和上边缘的,则R权重越大。

3. 分量间线性模型预测(Cross component linear model intra prediction,CCLM)

CCLM中包含两种分量间预测。一种是亮度分量预测色度分量,像素域,直接得预测值;一种是色度Cb预测色度Cr,残差域,重构Cb残差加到原始Cr帧内预测上构成最终的Cr预测值。
a. 亮度预测色度
在CCLM中,色度采样基于相同块中的重构亮度采样来进行预测,使用如下线性模型(注意luma-chroma预测是在重构采样域进行的):

其中predc(i,j)表示一个块中色度采样的预测值,recL(i,j)表示同一块中下采样重构亮度采样。参数α和β由当前块周围的相邻重构亮度和色度采样的最小回归误差推出.如下图所示,由重建区域中,亮度边界和色度边界的像素值,拟合映射关系曲线,得到α和β;用于块内预测。其中亮度边界处采用间隔像素采样。
VVC-帧内预测改进_第3张图片
b. 色度Cb到Cr的预测
CCLM Cb-to-Cr预测应用于残差,取代重构采样信号。通过将加权的重构Cb残差加到原始Cr帧内预测上构成最终的Cr预测值(注意Cb-Cr预测是在残差域进行的):

比例系数α的推导与亮度到色度模式中的方法相似,通过拟合Cb残差边界与Cr边界的回归曲线,推出α用于块内预测。
在编码器端,色度帧内预测模式选择中增加了一次RD cost的比较:当一个CU的帧内预测色度分量没有使用CCLM亮度到色度预测模式时,对Cr分量使用CCLM色度到色度预测。

在JEM中,有两个CCLM模式:单模型CCLM模式和多模型CCLM模式(MMLM)。
c.单模型CCLM
对整个CU使用一个亮度采样到色度采样的线性预测模型。
d.多模型CCLM(MMLM)
存在两个模型,当前块的邻近亮度采样和邻近色度采样根据一定阈值被划分为两组,每组作为一个训练集推导一个线性模型(也就是每组有其对应的α和β)。另外,当前亮度块的采样也按照和邻近亮度采样相同的分类进行了分类。
https://blog.csdn.net/lin453701006/article/details/52807401
e. CCLM模式的下采样滤波器
推导出系数值后,在进行块内预测时,仍存在亮度分量和色度分量尺寸不相同的问题,在CCLM模式中需要对重构亮度块下采样来匹配色度块尺寸。CCLM中,默认使用如下的6抽头下采样滤波器,单模型CCLM和多模型CCLM中均使用该滤波器(六抽头涉及像素位置为Cur,左,右,左下,下,右下)。

VVC-帧内预测改进_第4张图片

4. 4抽头插值滤波器&边界滤波器(Block size and mode dependent 4 tap interpolation filter)

a. 关于4抽头滤波器提案里只是有简单介绍,思想就是从HEVC的双抽头得到预测像素,变为了4抽头。如根据B0022提案:
HEVC中,2抽头线性插值滤波器被用来产生方向预测模式的帧内预测块(不包括planar和DC)。
JEM中,使用两种类型的四抽头内插滤波器:块<=64时使用三次插值滤波器,块>=64时使用高斯插值滤波器。滤波器系数取决于块大小,一个块内的所有的像素和所有的角度模式使用相同的滤波器。
b. 在HEVC帧内预测中,垂直或水平模式生成帧内预测块之后,最左侧一列或最上方一行会进一步调整,以保持块边界的连续性。
JEM中,这一处理被扩展到了一些帧内对角模式,且使用2抽头(帧内模式2&34)调整的边缘采样增加到4行/列,或可使用3抽头(帧内模式3-6&30-33)滤波器对边缘1行/列的采样进行调整。
下图为JEM帧内模式34和30-33边缘预测滤波器示意图,此时的边缘预测滤波器与HEVC帧内模式2和3-6的相似。
VVC-帧内预测改进_第5张图片
所以涉及的主要改进: 1.更换了角度预测模式的插值滤波器,换用了两个4抽头的插值滤波器。2.对边缘预测滤波器进行扩展。

5. 多参考线帧内预测(Multi-reference line intra prediction,MRL)

HEVC帧内预测仅使用当前块的相邻左侧一列和相邻上侧一行作为参考采样来计算当前块的预测值,MRL将参考扩展到了三行三列:

VVC-帧内预测改进_第6张图片

图中显示为四行四列,但是实际只接收了相邻1,2,4三行散列。具体来说:在对65种角度模式进行预测时,依次遍历3个参考行/列,然后根据 RD代价选择最小的一个参考行/列,参考行/列的索引和模式索引一样也要发送到解码端。
局限:当前CU处于CTU第一行/列时,不可用MRL。仅参考一行/列。

6. 帧内子划分(Intra sub-partitions, ISP)

根据块大小将块划分成2个或者4个子块。为了保证子块的像素数仍不少于16,所以对
4x4和4x8的CU做了特殊处理:

VVC-帧内预测改进_第7张图片

对于其余尺寸CU划分方式:

VVC-帧内预测改进_第8张图片

水平或者竖直划分成4个子块。
对于每个子块,解码端对编码端传过来的残差信号进行熵解码,并经过反量化反变换后加上帧内预测信号就可以得到重建信号。然后进行下一个子块的重建。所有子块使用相同的帧内预测模式。
编码端还要传输一个标志位表明是否使用了ISP模式,如果使用还要进一步传输是竖直划分还是水平划分的标志。

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