1. 67种帧内预测模式的帧内模式编码
为了捕获自然视频中任意边缘的方向,定向帧内模式的数量从HEVC的33中增加到了65种。这些密集的方向帧内预测模式应用于所有大小的块中,也用于所有的亮度和色度帧内预测。
1.1 亮度帧内编码模式
为了适应帧内模式数量的增加,使用6MPMs的帧内模式编码方法。包含两个主要的技术:1)6 MPMs的来源,2)6 MPMs和non-MPM模式的熵编码。
在JEM中,MPM列表中包含的模式可以分为3类:
邻近帧内模式;
派生的帧内模式;
默认帧内模式;
使用5个邻近的帧内预测模式组成MPM列表。5个相邻块的位置和在合并模式中使用的块的位置相同,即左,上,左下,右上和左上。最初的MPM列表通过插入的5个相邻帧内模式和planar模式和DC模式组成。然后使用pruning过程来移除重复的模式,这样在MPM列表中只包含unique的模式。包含的初始模式的顺序为左,上,planar,DC,左下,右上,最后是左上。
如果MPM列表不满,即候选模式小于6,就要增加派生模式。派生的帧内模式通过给MPM列表中已包含的角度模式加1或减1来得到。这样额外的派生模式不能从非角度(DC和planar)模式中派生得到。
对于使用6 MPMs选择的模式的熵编码,使用一个截断的一元码。前三个bins用上下文进行编码,上下文取决于与当前正在被发送的bin相关的MPM模式。MPM模式可以被分成3类:(a)水平主导的模式,即MPM模式的编号小于或等于对角方向的模式编号(b)垂直主导的模式,即MPM模式的编号大于对角方向的模式编号,(c)非角度模式。因此,基于此分类使用三种上下文发送MPM索引。
剩余61个non-MPM的选择的编码如下所示。61个non-MPM首先被分成两个集合:一个选择模式集合,一个非选择模式集合。选择模式的集合包含16个模式,剩下的45个模式被分到非选择模式集合。当前模式(表示什么)所属的模式集合用一个flag在比特流中指明。如果要指示的模式是在选择模式集合内,这选择模式(这个又表示什么)用4比特的定长码来发送。如果要指示的模式来自非选择模式集合,则选择模式用一个截断一元码来发送。选择模式的集合由61个non-MPM模式的自采样来产生。
选择模式集合:= {0, 4, 8, 12, 16,20 … 60}
非选择模式集合:= {1, 2, 3, 5, 6,7, 9, 10 … 59}
在编码端,HM的帧内模式判决过程使用了两个相似的阶段。在第一个阶段,即帧内模式预选择阶段,使用低复杂度的SATD cost去从所有可获得的帧内模式中预选择出N个帧内预测模式。在第二阶段,应用一个高复杂度的R-D cost选择去从N个候选中选择一个帧内预测模式、但是,当应用67中帧内预测模式时,因为可获得的模式的数量翻倍,如果直接使用HM中相同编码器模式判决过程,帧内模式预选择阶段的复杂度也会增加。为了最小化编码器增加的复杂度,执行两步帧内模式的预选择过程。在第一步,基于SADT测度从原始35种帧内预测模式中选出N种模式,在第二步中,被选择的N种模式的直接相邻模式用SATD进行进一步的检查,并更新选择的N种模式的列表。最后,前M个MPMs被增加到N种模式中,生成候选帧内预测模式的最后列表,进行第二阶段的R-D cost的比较。M的值在HM原始设置的基础上加上1,N减少1。
1.2 色度帧内采样
在JEM中,色度CB编码允许11种编码模式。这些模式包括5种传统的帧内模式和6种跨组件线性模型模式。色度模式的候选列表包括下列3部分:
1. CCLM 模式:
2. DM模式,从覆盖当前色度块的5个位置的亮度CBs中派生的帧内预测模式
要check的五个位置的顺序是:对于I slice,当前色度块中对应亮度块内的中心,左上,右上,左下,右下4*4块。对于P和B slice,只有这5个子块的其中之一会被checked。因为他们有相同的模式索引。
3. 来自空间相邻块的色度预测模式
a. 5个色度预测模式:左,上,左下,右上,左上的空间相邻块
b. Planar和DC模式
c. 增加派生模式,这些帧内模式通过给列表中的角度模式加1或者减1来获得
d. 垂直,水平和模式2
不管是否有新的色度帧内模式增加到候选列表中,都要进行pruning过程。Non-CCLM色度帧内模式候选列表的大小减小到5。对于模式信号,首先发送一个指示CCLM模式之一或者传统的色度帧内预测模式之一是否被使用的标记。然后随后可能会发送一些标记去指定用于当前色度CB的具体色度预测模式。
2. 4抽头帧内插值预测滤波(用该滤波器计算预测值)
4抽头帧内插值滤波用于改善双向帧内预测冗余。在HEVC中,使用2抽头线性滤波去生成方向预测模式(即除了DC和planar)中的帧内预测块。在JEM中,使用4抽头帧内插值滤波用于方向帧内预测滤波。使用两种类型的4抽头插值滤波:对于小于或等于64*64的块使用三次插值滤波,对于大于64*64的块使用高斯滤波。滤波的参数是按照块的大小确定的,同样的滤波器可用于所有角度模式的所有预测样本。
具体来说,在帧内的角度模式预测中,在最后计算预测值时,使用该4抽头滤波器计算得到最终的预测值;
pDst[y*dstStride+x] = (Pel)( ( f[0]*p[0] + f[1]*p[1] + f[2]*p[2] + f[3]*p[3] + 128 ) >> 8 );
pDst即为预测值,f(0),f(1),f(2),f(3)即分别为4个抽头系数;
在HEVC中,在为垂直或水平帧内模式生成帧内预测块后,预测样本的最左列和最上行会被分别进一步调整。在JEM中,这种方法被扩展到了多个对角帧内模式,边界采样也通过使用2抽头或3抽头滤波器进一步调整,最多可以4行或4列。
具体来说,对于对角模式66和2,还有几个斜对角模式3--10和58-65,对这些模式计算得到的预测值进行滤波;
4. 跨组件线性模型预测CCLM
为了减少跨组件的冗余,在JEM中使用跨组件线性模型预测模式,使用线性模型基于同一CU的重建亮度采样对色度采样记性预测:
表示CU中预测色度样本, 表示同一CU中下采样重建的亮度采样。 and 是通过最小化当前块相邻重建亮度和色度采样的回归误差推到得到的。
其中L(n)表示下采样的左侧和上侧相邻重构亮度采样,C(n)表示左侧和上侧相邻重构色度采样,N的值等于当前色度编码块的宽和高最小值的两倍。对于方形编码块,这两个等式可以直接应用。对于非方形的编码块,较长边缘的邻近采样首先进行下采样,得到与较短边缘采样数量相等的采样数。α和β并不需要传输,在解码器中也通过上式计算得到。
回归误差最小化作为解码过程的一部分来执行,而不只是编码器的搜索操作,所以不需要使用语法去传送α 和 β值。
CCLM预测模式也包含两个色度组件之间的预测,即从Cb分量中预测Cr分量。不使用重建的采样信号,CCLM Cb到Cr的预测是应用于残差域。
在原始Cr帧内预测上加上一个有权重的重建Cb残差得到最后的Cr预测。
比例因子α是用和CCLM中亮度到色度的预测方式一样的方法推导得到。唯一的不同是增加了一个与误差函数中的默认α值有关的回归代价,这样子推导得到的比例因子偏向于-0.5的默认值。
Cb(n)表示相邻重建的Cb采样,Cr(n)表示相邻重建的Cr采样,λ等于 .
CCLM亮度到色度的预测模式增加为额外的色度帧内预测模式。在编码端,为选择色度帧内预测模式,增加了一次对色度分量的RDcost check.当除了CCLM 亮度到色度的预测模式之外的帧内预测模式用于CU的色度分量,CCLM Cb到Cr的预测用于Cr分量的预测。
4.1 多模型CCLM 在JEM中,有两种CCLM模式:一种是单一模型的CCLM模式,一种是多模型的CCLM模式。顾名思义,图9展示了将相邻采样分成两组的过程。阈值是相邻重建亮度采样的平均值。相邻采样的重建值小于阈值则分到第一组,相邻采样的重建值大于阈值的则分到第二组。
4.2 CCLM中的下采样滤波
为了执行跨组件预测,对于4:2:0色度格式,重建的亮度块需要下采样去匹配色度信号的大小。CCLM模式中使用的默认下采样滤波器如下:
注意假设这个下采样对于与亮度采样位置有关的色度采样位置来说是0型相位关系。即并列的水平采样和间隙的垂直采样。
上面的6抽头下采样滤波器用作单一模型CCLM模式和多模型的CCLM模式的默认滤波器。
对于MMLM模式,编码器可以选择四种额外的亮度下采样滤波器应用于CU的预测,并将滤波器索引发送给解码端。用于多模型CCLM模式的四个可供选择的亮度下采样滤波器如下所示:
5. planar模式的位置决定的帧内预测联合(对参考采样进行滤波)
在JEM中,planar模式的帧内预测结果被位置决定的帧内预测联合方法进一步修改。PDPC是一种帧内预测方法,调用了未滤波边界参考采样和带有滤波边界参考采样的HEVC帧内预测的联合。
用于定义PDPC的名词如图10所示。r和s分贝表示未滤波的边界采样和滤波的边界采样。q(x,y)是基于滤波的参考边界采样s 的HEVC的帧内预测。X和y是离块边界的水平距离和垂直距离。
预测值p[x,y]联合了加权的边界元素和q[x,y]:
C1,C2,C3,C4是预测参数,对于宽度小于等于16的块dx=1,宽度大于16的块dx=2, 对于高度小于等于16的块dy=1,高度大于16的块dy=2.b[x,y]是推导出来的归一化因子。
使用三个预定义的低通滤波器中的一个去平滑边界采样。这三个预定义的低通滤波器包括3抽头滤波器,5抽头滤波器,7抽头滤波器。平滑滤波器的选择基于块的大小和帧内预测模式。将hk定义为滤波器k的脉冲响应,α是参数,则滤波后的参考值计算如下:
每种块大小都要定义一个预测参数集( )。这些参数的总的内存大小是30字节。
具体来说,就是先对参考采样进行滤波(可以选择3抽头,5抽头或者7抽头滤波器),使用滤波后的参考采样计算预测值,最后再使用未滤波采样和上一步得到的预测值进行位置加权预测,得到最终的预测值;