H.266帧内角度预测模式
HEVC中,帧内预测包括Planar模式、DC模式和33种角度预测模式。H.266中,沿用了Planar和DC模式,将角度预测模式增加到了65种,帧内预测模式达到了67种。角度预测更加密集,对所有块、亮度色度分量都可用。
为了容纳新增的角度预测模式,JEM使用了6个最可能模式Most Probable Modes(MPM),主要包括了两方面的技术:(1) 6个MPM的推导。(2) 6个MPM和non-MPM(非最可能模式)的熵编码。另一个重点是帧内预测模式的选择机制。
6个MPM的推导
在JEM中,MPM列表中的模式被分为三类:
· 邻近模式
· 派生模式
· 默认模式
JEM会依次使用邻近模式+非角度模式(Planar+DC)、派生模式、默认模式,填满MPM列表6个候选。
1.邻近模式
邻近模式类似于帧间预测的merge模式,使用和merge模式相同位置的5个邻近块(left (L), above (A), below-left (BL), above-right (AR), and above-left (AL))的帧内预测模式构造MPM。
MPM初始输入为5个邻近模式+非角度模式,7个模式的插入顺序为:L->A->Planar->DC->BL->AR->AL,然后合并重复的情况,
2.派生模式
如果5个邻近模式+Planar+DC没有填满MPM列表(即候选少于6个),则使用派生模式。派生模式通过对MPM列表中已有的角度模式(不可以使用非角度模式)±1得到。
3.默认模式
如果此时MPM列表依然未满,则使用4种默认模式依次来填充:vertical(垂直模式), horizontal(水平模式), mode 2, diagonal mode(对角线模式)。最终得到6个MPM候选模式。
6个MPM的熵编码
6个MPM的熵编码使用截断二进制编码。前三个bins的编码受当前位标记的MPM模式的上下文模型影响。
此时MPM模式分为三类,对应三种上下文:
· 水平模式(模式值小于等于对角线模式值)
· 垂直模式(模式值大于对角线模式值)
· 非角度模式(DC和Planar)
对剩下的61个non-MPM非最可能模式的选择编码如下。61个non-MPM首先被分为如下两个集合:
被选模式集 = {0, 4, 8, 12, 16, 20 …60}——共16个,通过对61个non-MPM下采样得到。
非被选模式集 = {1, 2, 3, 5, 6, 7, 9, 10… 59}——共45个
对61个non-MPM编码规则如下:当前模式所属的模式集在比特流中用一个flag来标识。如果当前模式属于被选模式集,则当前模式使用4比特定长编码;如果当前模式属于非被选模式集,则用截断二进制码编码。
帧内预测模式的选择机制
在HM编码器中,帧内预测使用了两阶段选择机制:
1. 粗选阶段:使用低复杂度的SATD代价,从所有可用的帧内预测模式中选出N个较优模式。
2. 细选阶段:将M个MPM加入到N个较优模式,合并重复模式,使用高复杂度的RD代价,选出一个最优的帧内预测模式。
在JEM中,为降低编码器的复杂度,没有直接沿用HM的两阶段选择机制,对其进行了修改:
1. 粗选阶段(对原HM帧内预测模式进行选择):使用低复杂度的SATD代价,从原HEVC的35种帧内预测模式中选出N个较优模式。
2. 二次粗选阶段(对JEM新增的角度预测模式进行选择):使用SATD,对N个模式中的角度预测模式与其邻近角度比较,选择优者,对N个较优模式进行更新。
3. 细选阶段:将M个MPM插入到N个较优模式中,合并重复模式得到最终的帧内预测模式候选列表。使用RD代价,从候选列表中选出一个最优的帧内预测模式。
其中,HM中有MPM长度M为3,JEM相对于HM增加了一倍,N的取值与帧内预测块尺寸有关:
总结
整体而言,H.266的帧内预测模式方面主要改进就是将角度预测模式和MPM加倍。