在VVC中,对CU进行简单、普通和复杂块的分类,并进行水平、垂直划分模式选择或者直接跳过。
引言
首先,VVC有着基于块的混合编码结构,它用变换编码融合了帧间和帧内预测。它采用嵌套的多类型树来提高压缩效率,但是编码复杂度有了一定提高。因此,为降低复杂度,提出一种基于纹理特征的帧内快速算法。
简单来说,就是自适应设定纹理阈值,将编码单元分为简单、普通和复杂三类。对于简单的CU,在早期就跳过分区模式。对于复杂CU,跳过非分区模式。然后,通过计算比较常见和复杂的CU的方向特征,排除不必要的方向模式。最后从剩余分区中导出最优模式,实验结果表明,这种算法平均节省51.72%的编码时间。
介绍
2018年4月,JVET提出了VVC。与上一代HEVC相比,VVC利用多嵌套树来提高压缩效率,但是也带来了编码复杂度的提高。因此,在保持相同编码性能的同时,降低VVC复杂度也是很重要的。
基于纹理特征的快速算法
这种算法流程图如下:
VVC中,分区模式(PM)包括四叉树(QT)和多类型树(MT)包括二叉树(BT)和三叉树(TT)。其中BT和TT都包括水平分区模式(HPM)和垂直分区模式(VPM),非分区模式仅包含帧内模式。从上图可以看出来,这种快速算法包括两个部分,高效划分决策(EPD)和多类型树的方向决策(MTDD)。其中对于某个CU,EPD决定是否跳过分区模式或者非分区模式。对于MTDD指定尺寸(包括8x8、16x16、32x32)的计算单元,直接跳过HPM和VPM。
1.自适应EPD
采用单位面积标准差对单位面积进行分类,则标准差等于:
根据下面式子来判断CU是简单、普通或者是复杂的。
其中T2和T1分别代表上下阈值,T2>=T1。
如之前所说,对于简单的CU,直接跳过分区模式;对于复杂的CU,直接跳过非分区模式。其中,不管分类是否正确,普通类的CU通常都是编码的。不正确分类和正确分类的概率分别为
为保证编码性能,严格控制Pe和Pr,并最大化T1和T2之间的距离,可通过下式计算:
遍历Ω可以精确获得T1、T2,那么上面式子可以简化为:
其中,fT1和fT2分别是不分区模式的fT和分区模式的fT。
经验证,这种自适应方法可以适用于不同大小的CU,序列第一帧可用于获取自适应阈值。
2.基于方向特征的多类型树的方向决策
经过EPD将CU进行简单、普通和复杂的分类之后,普通和复杂的CU还有很多可能的分区模式,我们可以决定:对于某个CU,使用HPM或者VPM。
对于垂直纹理的CU,水平方向的亮度差异大于垂直方向的亮度差异。因此,一个CU在不同方向上的变化可以反映纹理方向。所以,用不同方向的标准差来判断CU的纹理方向。水平和垂直特征的标准差计算如下:
由于这种模型是基于正方形单元的,所以MTDD只能应用于正方形单元,不能用于非正方形单元。如果一个CU中的fH大于fV,那么将跳过HPM,即对于一个垂直纹理的CU,跳过水平分区模式。为保证编码性能,如果
将不跳过HPM或VPM。
不足
由于在高分辨率中,CU之间的纹理相关性很弱,很可能导致复杂类的CU被错误地跳过分区模式。因此在像Tango2这样的4K序列中,PSNR与原平台基本一致,但是比特率略有增加。
结论
本文提出一种快速VVC帧内编码算法。这种算法根据自适应阈值和纹理特征去除了不必要的模式,并通过方向特征进一步剔除非最优模式。这种方法对于CU的方向特征是十分有效的,但是并不是对所有序列都友好。对于纹理简单,方向复杂的序列,这种算法值得推广。实验结果表明,与原平台相比,这种算法平均减少了51.72%的编码时间,BD-rate仅增加了2.53%。