本次介绍一篇发表于2022 TCSVT期刊的论文,其标题是《HG-FCN: Hierarchical Grid Fully Convolutional Network for Fast VVC Intra Coding》。为了降低VVC中帧内编码的复杂度,本文提出了一种分层网格全卷积网络,以及一种双阈值后处理策略,在编码时间复杂度和编码性能上取得了很好的trade-off,超过了其它的SOTA方法。
首先简单介绍一下背景。编码标准从HEVC发展到VVC,编码性能大大提升,但是复杂度变得非常高,复杂度的最大来源是块划分,具体来说是更复杂度的划分类型(即QTMT)以及更大的允许划分尺寸范围 (128~4)。就帧内编码而言,VVC的平均编码时间是HEVC的19倍,非常需要降低其编码复杂度。而在帧内编码中,递归的QTMT块划分和模式判决在整个帧内编码时间中占比达到了93.84%,因此如果能够快速判决块划分会非常有效地降低帧内复杂度。
VVC标准规定,在帧内划分中,默认配置下的CTU尺寸是128x128,首先需要强制四叉树划分成4个64x64,每个子块可以继续四叉树划分或者不划分,32x32及其它尺寸的子块包括non-splitting在内有6种划分类型。还有一些标准规定的特殊情况,例如某些划分下的子块无法继续某些划分(如BTV划分和BTH划分等);一帧的边缘不满足CTU尺寸的部分强制QT或者BTH划分等。为了得到标准的码流,提出的快速划分方法不能违反标准的上述规定。
目前对于VVC的帧内快速块划分算法可以分为两类,一类是传统的启发式算法,一类是基于学习的方法。启发的算法指的是需要提取一些中间特征,例如梯度信息、纹理关系,考虑到VVC更多的划分类型,还需要考虑纹理方向等等更复杂的特征,该类方法的性能很大程度上依赖于手动挑选的特征,因此很难取得最优的性能。基于学习的方法指的是利用更深层的网络,例如CNN,通过提取像素级的特征判决是否划分。
总的来说,已经有不少工作在降低编码复杂度取得了较好的性能,但是还有以下几点需要被更深入地考虑。一是QTMT划分的有效表达方式;二是对划分模式的预测而非划分深度,后者的性能往往非常有限;然后还需要考虑网络的复杂度和硬件并行友好性,便于应用于实际场景。
本文的贡献一共有以下几点:
1. 提出了提出了一种分层网格全卷积预测网络,可以一次性得到所有CU和sub-CU的划分模式,并且神经网络的推断是高度并行化的。
2. 设计了一种对复杂QTMT划分的有效表达,能够进一步提升预测的精度和召回率。
3. 设计了一种双阈值后处理策略,实现了灵活的复杂度-编码性能配置。最后的性能是51.15%~65.53%的复杂度降低,带来了1.17%~2.19%的BD-rate上升,超过了其它的SOTA方法。
因为128x128的CTU在帧内编码时被强制四叉树划分为4个64x64块,因此这一步不需要我们进行判决。对于64x64的块,因为只能进行QT划分或者不划分,这和HEVC中的块划分规则是一致的,因此本文中对于64x64的划分使用了作者之前一篇针对于HEVC的工作中的方法,其网络结构如图所示,网络输入为64x64的亮度值,使用了非对称卷积核、多路卷积等方法,网络的输出是划分和不划分概率,这里不再深入介绍。对于32x32子块的划分判决,使用本文提出的HGM方法,接下来将对其详细说明。
在32x32的CU中,划分边缘的长度可以分为32、16、8和4,分别对应于HGM中的Level 1、2、3和4,如上图所示。对于划分的边缘,其值为1;对于不划分的边缘,其值为0。对于Leval 1而言,因为最小的划分尺寸为4个pixel,所以水平和垂直分别有8个可能的划分边缘,因此需要计算16个值;对于Level 2、3和4,分别有32,64,128个值需要计算。实际上,每个Level中水平划分的最下方和垂直划分的最右边的边缘一定是需要划分的,这里也将其作为网络的输出是为了兼顾网络的规整性,特别是卷积网络中有大量的下采样过程。
左下图给出了HGM的一种可能输出结果,将QTMT划分模式转换成了分层结构的形式。实际上,已有文献[17]采用类似的思想,如右下方的图所示,只不过该文献中没有采用分层的思想,而是将所有的尺寸为4的边缘都单独计算其划分概率,更大尺寸的划分概率使用尺寸为4的划分概率的组合计算结果,例如取平均或取最小值等,这种方法相当于本文的一个特例,即只使用Level 4的信息。
相比之下,本文的分层结构有两个优点,一是有更高的预测准确性;二是有更好的推断效率。更好的准确性是因为尺寸为4的块的划分概率是不统一的,导致大尺寸的划分判决变得困难,后续也会给出具体的实验结果来证明这个结论。更好的推断效率是指如果推断出Low Level被判决为不再继续划分,则后续的High Level中的小块划分概率不需要继续计算,而文献[17]中则必须要计算所有的4x4边缘的划分概率,势必造成了不必要的浪费。
如图所示为本文提出的分层网格全卷积网络 (HG-FCN),相比于传统的卷积神经网络,本文提出的网络结构中除去了全连接层,使用了全局池化层和1x1xN的卷积核来得到对应Level的值。比如对于Level 1的16个点的值,输出的特征图尺寸为16x16x32,先使用全局池化层得到1x1x32的特征图,然后使用1x1x16的卷积核得到16个点的值,其它Level的输出类似。本文的结构参考了ResNet18,使用了ReLU激活函数和barch normalization (BN) 层来加速训练过程的收敛。这种分层结构意味着推断Low Level被推断为不划分,highLevel的推断可以不执行。为了减少网络的复杂度,本文还使用了剪枝算法,去除掉冗余的filter获得参数更少的网络。对于块划分这种多任务的二分类问题,本文选择binary cross-entropy作为损失函数。
本文提出了一种双阈值的后处理判决方法,具体的判决流程如右图所示。注意:论文给出的图中存在一些问题,这里已用红色字体进行修正。首先,对于某个CU,假定其可以执行Intra和所有的划分 (QT,BTH,BTV,TTH和TTV)。本文中设定了两个阈值,th1和th2,其中th2=1-th1。如果五种划分的概率都大于th1,则直接划分进入下一个划分深度,不执行intra coding。而只要有一种划分的概率小于th1,再判断该划分是否小于th2,如果大于th2,则执行intra coding和该划分;而如果所有的划分都小于th2,则提前停止划分,只执行intra编码。通过th1和th2将概率区间[0,1]划分成三部分,[0,th2],[th2,th1]和[th1,1]。th1和th2的间距越大,则有更大的概率落在区间[th2,th1]之间,因此直接划分进入下一个划分深度的概率更小,时间复杂度降低也更小。可以通过调节阈值,获得不同复杂度和编码性能的trade-off。相比于单阈值方法仅仅判断是否执行该划分,该方法还可以判断是否执行intra coding,可以节约更多的时间。
本文的实验设置如下:在VTM7上进行测试,使用配置文件encoder_intra_main.cfg,在22,27,32和37 4个QP上进行测试,测试序列为JVET standard test set,每个序列测试100帧。阈值设置如下,一共有7个档次。
随着th1和th2设置的越近,大多数的块要么直接划分要么停止划分,因此这种情况下能节省更多的编码时间,实验表明,最多可以实现78%的时间节省,BD-rate增加了6.3%。如果th1设置得越高,则时间节省得越少,实验结果表明仍然可以节省37.9%的编码时间,BDrate仅仅增加了0.82%。后续将在set(i)和set(ii)两个点上继续分析性能。
与其它文献的比较如表所示。这里选择了set(i)和set(ii)两种配置,并且为了更好的比较,对阈值进行了微调。平均性能分别是在高档下:2.17%的BDrate提升@65.53%时间复杂度降低;在低档下:1.17%的BDrate提升@51.15%时间复杂度降低。特别是对于Class A1和Class A2的高分辨率序列,本文的方法相比其它文献在相近的时间复杂度降低的情况下,BDrate提升仅仅只有1.77%和1.81%,明显优于文献[40]和[18]。该性能表现也可以从处理的块的数目看出对应关系,统计结果如右表所示,特别是A1和A2序列,本文提出的方法跳过了超过90%的块的处理,因此在高分辨率序列上表现得更好。
本文证明了提出的分层网络结构相比仅仅包含Level 4 的方法的性能提升,可以看到,相比于Basic level,本文提出的方法在复杂度和编码性能上有更好的trade-off,在相近的编码时间复杂度下,BDrate降低了0.55%。
进一步地分析,本文统计了不同Level和整体的精度 (precision) 和召回率 (recall)。在本文提出的双阈值策略中,阈值th1决定了提前划分,阈值th2决定了提前停止。精度反映了高划分概率边缘的在阈值th1下的预测准确度,召回率反映了有多少的正确的划分被包含在预测中。统计结果如右边两张表格所示,可以看到,无论是准确率还是召回率,Multi-level相比Level 4在所有的序列上都表现得更好,证明了分层网络结构的有效性。
如图展示的是Multi-level相比仅仅Level 4的主观结果。如果仅仅只使用Level4的信息,中间会有很多不连续的划分边缘,这意味着小块划分概率的不统一,如果直接将小块的划分概率通过组合计算得到大块的划分概率,势必会导致预测的不准确,影响最终的性能。而Multi-level结合了多个Level的信息,部分不连续的虚线被消去了,因此分层的方法有更好的判决准确度。
经过剪枝处理后,本文提出的网络的复杂大大降低,相比参考文献[18] ,本文的Flops仅仅只有不到1/10。同时,本文提出的方法除了需要当前CU的像素值之外,不再需要其它的特征和信息,因为可以高度并行化。如右表所示,网络推理的时间仅仅只占整个帧内编码时间的不到1%。
关 注 我 们
  实验室网站:http://viplab.fudan.edu.cn/
  OpenASIC官方网站:www.openasic.org
  知乎专栏:http://zhuanlan.zhihu.com/viplab
  微信公众号:OpenASIC
继续阅读
阅读原文