本文内容来自ICIP2020论文《COMPLEXITY ANALYSIS OF NEXT-GENERATION VVC ENCODING AND DECODING》

论文使用VTM6对编码端和解码端的速度及内存占用情况进行分析并和HM16做对比。

VVC新增工具

块划分

最大CTU尺寸变为128×128,且引入多类型树划分,允许CTU按照四叉树、二叉树、三叉树方式划分。

帧内预测

允许67个帧内预测模型,其中65个角度模式、DC模式、planar模式。允许非正方形块的帧内预测。可以进行宽角度帧内预测。角度模式使用4抽头滤波器进行平滑滤波。引入CCLM和MRL。

帧间预测

帧间预测中merge模式的候选项可以使用pairwise average vector和history-based vector。增加merge with MVD(MMVD)模式。对称MVD模式。仿射运动补偿。三角划分。双向光流BDOF。解码端运动向量修正DMVR。

变换

亮度块最大变换尺寸64×64,色度块为32×32。大变换块高频系数置零。多变换模式选择MTS。子块变换SBT。

熵编码

改进的CABAC。引入了基于QP的上下文初始化。概率模型的选择取决于语法元素的值和局部0元素的数量。

环路滤波

除了DBF、SAO外还引入了ALF。

测试条件

论文实验使用VTM6和HM16作为测试平台,测试三种配置Low delay,Random Access,All intra。有6条测试序列,分辨率包括1280×720,1920×1080,3840×2160。使用22,27,32,37共4个QP参数。使用Intel VTune Amplifier软件进行性能分析。测试机器为windows10,Intel core i7 4790K,主频4GHz,内存8GB。

上图是测试序列详细情况。

编码器复杂度分析

编码器主要考虑了六个模块复杂度:运动估计(Motion Estimation,ME)、帧内预测(Intra Prediction,IP)、变换量化(Transform and Quantization,T/Q),熵编码(Entropy Coding,EC)、环路滤波(Loop Filter,LF),内存消耗(Mem)。

上图Fig.1是VVC编码器各模块复杂度分布情况。在LD和RA配置下可以看见随着码率降低(QP增大),T/Q和EC所占比重下降,ME和LF所占比重上升。AI配置下IP、T/Q、EC占了绝大部分复杂度。VVC复杂度高主要原因是递归的进行多类型树划分,但这个过程分布在所有编码函数中不能简单的归为某一个工具。通过限定树的划分深度可见其影响,在LD配置下通过设置树划分层次为1~4,分别与默认的深度6比较,其降低的复杂度分别为82%,76%,58%,26%。通过禁止多类型划分可降低83%的复杂度。

上图Fig.2是HEVC编码器各模块复杂度分布情况。和VVC相比可以明显看出LF占比较小,在LD配置下HEVC占比0.1%而VVC占比5.5%。同样在LD配置下IP在HEVC占比1%,在VVC占比5%。EC、ME、T/Q在VVC中的占比近似为HEVC中的0.8倍。实际上VVC中的ME复杂度比HEVC要高,这说明其他工具复杂度升高的比重更大。

上图Fig.3展示了VVC和HEVC的720p和1080p视频编码器平均复杂度比较情况。平均来说在LD,RA,AI配置下,VVC的平均复杂度分别是HEVC的5倍,7倍,31倍。一个有趣的发现是,不像其他标准帧内编码比帧间编码简单很多,在VVC在LD和RA配置下帧内编码分别是1.3倍和1.4倍。而且VVC的复杂度和QP很相关,在LD配置下QP=22的复杂度是QP=37的4.8倍,而在HEVC中是1.6倍,这意味着要达到更好的质量需要更多的处理。

上图Fig.4是内存占用情况,是在LD配置下1080p视频中的测试结果。由于VTM和HM都达不到实时编码,上面的结果都缩放到实时情况,且为了更好的展示图中结果都乘以10了。可以看到QP越小内存消耗越大。VVC的平均编码和解码内存带宽分别是332GB/s和14GB/s,而HEVC分别是11GB/s和5GB/s。这是因为VVC的CU尺寸更大,预测候选项更大需要更大存储空间,而且不同的CU组合和各种编码模式导致对相同数据的多次和不规则访问。

解码器复杂度分析

上图Fig.5是VVC解码器各模块复杂度分布情况。可以看到LF占比很高,平均SAO占3%,ALF占13%,DBF占17%。

上图Fig.6是HEVC解码器各模块复杂度分布情况。

上图Fig.7展示了VVC和HEVC的720p和1080p视频解码器平均复杂度比较情况。平均来说在LD,RA,AI配置下,VVC的平均复杂度分别是HEVC的1.5倍,1.5倍,1.8倍。AI相对于LD和RA的复杂度也提高了,在VVC中AI的复杂度是LD和RA的2.2倍,而在HEVC中分别是1.7倍和1.8倍。

更详细的信息请参考原论文《COMPLEXITY ANALYSIS OF NEXT-GENERATION VVC ENCODING AND DECODING》

感兴趣的请关注微信公众号Video Coding