本文译自提案JVET-D1001的2.2.1节内容,对应的软件版本为最新的JEM4.0。
为了更好地捕获展现在自然视频中的边缘方向,方向性的帧内角度模式从HEVC的33种拓展到65种。新的角度模式如下图中的红色虚线箭头所示,Planar和DC模式保持不变。这些更加密集的角度预测模式适用于任何的块大小以及亮度和色度的帧内预测。
图1 67种帧内预测模式
为了与数量增加后的角度帧内模式相适应,帧内模式编码使用6个MPM(Most Probable Modes )。两个主要的技术方面被涉及到:1、6个MPM的产生,2、6个MPM以及非MPM模式的熵编码。
在JEM中,MPM列表中的模式分为三类:
1、相邻的帧内模式
2、派生的帧内模式
3、默认的帧内模式
五个相邻的帧内预测模式用来产生MPM列表。这5个相邻块的位置与merge模式的相同,也就是下图所示的左(L)、上(A)、左下(AR)、右上(AR)、左上(AL)。初始的MPM列表通过插入五个相邻帧内模式、planar模式、DC模式产生。然后通过一个剪枝的过程移除重复的模式,使得MPM列表里面的模式都是唯一的。初始MPM列表插入模式时的顺序为:左、上、planar、DC、左下、右上、左上。
用于产生MPM模式的五个相邻块
如果MPM列表未满(列表中少于6个MPM候选模式),则加入派生的模式。这些派生的帧内预测模式通过给MPM列表中的角度模式加1或减1得到的。派生的过程不应用于非角度模式(DC或planar)
最后,如果MPM列表仍然不完整,则按顺序加入默认模式:垂直、水平、模式2、对角模式。这个过程后,6个唯一的MPM模式产生了。
对于6个MPM的熵编码,使用截断一元码进行二值化。前三个bins的编码受当前位标记的MPM模式的上下文模型影响。MPM模式分为三种类型:是否为水平类(MPM模式小于对角模式)、是否为垂直类(MPM模式大于对角模式)、是否为非角度模式(DC或planar)。相应的三个上下文用来标记MPM索引。
剩余的61个非MPM模式的编码如下。首先,61种非MPM模式非为两个集合:被选模式集、非被选模式集。当前模式所属的模式集在比特流中用一个记号显示。然后,若当前模式属于被选模式集,当前模式用4比特的定长码编码,否则,用截断二进制码编码。被选的模式集由61个非MPM模式索引通过下采样得到,如下:
被选模式集 = {0, 4, 8, 12, 16, 20 …60}
非被选模式集 = {1, 2, 3, 5, 6, 7, 9, 10… 59}
在编码端,有与HM相似的两个阶段帧内模式判决过程。第一阶段(预判决阶段),使用较低复杂度的SATD失真度量从所有可能的模式中预选出N个最佳的模式。第二阶段,使用更高复杂度的率失真代码从N个候选模式选择最佳的帧内预测模式。然而,使用67种帧内预测模式,模式总数量几乎翻倍,如果直接使用与HM编码器相同的模式判决过程,帧内模式预选阶段的复杂度也会增加。为了最小化编码器复杂度的增加,使用一种二阶段的帧内模式预选过程。第一步,从原来的35种帧内预测模式(图1中的实线标示)通过SATD代价选出最佳的N(N跟帧内预测块大小有关)个模式;第二步,被选的N个模式左右两边的模式(图1中的虚线标示的新增的角度模式)进一步通过SATD来选择,然后所选的N个被选列表也被更新。最终,最初的M个MPM也被加到N个模式中(如果不包含的话),并且最终的帧内模式候选列表也为第二阶段的率失真代价检验产生了,方式与HM相同。M的值比原来HM的设置多1,N的值稍微减少,以优化67种预测模式的性能,N的值如下表所示。
表1:帧内模式预选阶段最佳模式候选数量
Intra prediction block size | 4x4 | 8x8 | 16x16 | 32x32 | 64x64 | >64x64 |
HM | 8 | 8 | 3 | 3 | 3 | 3 |
HM with 67 Intra prediction modes | 7 | 7 | 2 | 2 | 2 | 2 |