当前主流的视频编码标准(例如MPEG-2,H.264,VP9,AVS1等)均采用行列可分离的主变化(Separable primary transform)技术。可分离主变化对预测残差进行空域和变换域之间的转换,用于降低二维预测残差信号间的统计冗余。相比行列不可分离变换(Non-separable transform),行列可分离变换的主要优势在于更低的运算复杂度,然而对二维数据样本间的去相关能力相对受限。近几年的最新研究成果表明,在相对可控的运算复杂度前提下,不可分离变换与二次变化的结合能够进一步带来视频编码效率的显著提升。
本文以HEVC(High-Efficiency Video Coding)和正在制定过程中的下一代VVC(Versatile Video Coding)标准为背景,阐述了二次变换技术在这两代国际视频压缩标准之间将近十年时间里的技术演进。
一、 二次变换技术
所谓二次变换,就是在主变换(Primary transform)之后对频域信号(主变换系数)进行第二次变换,将信号从一个变换域转换至另外一个变换域,之后再进行量化,熵编码等操作,其目的是进一步提升变换效率,从而实现编码器的整体性能提高。
最早将二次变换应用于视频压缩标准的技术方案来自H.264/AVC标准。H.264/AVC标准对16x16帧内预测残差的变换采用了DCT和二次Hadamard变换相结合的机制 [1]。出于对解码器复杂度方面的控制,H.264/AVC仅采用了4点和8点两种变换尺寸。根据H.264/AVC标准,当宏块(Macroblock)采用16x16的帧内预测模式时, 16x16的帧内预测残差首先被划分为16个互相不重叠的4x4残差子块,然后对每个4x4残差子块进行4x4的主变换,之后再将主变换生成的16个DC系数合并组成一个4x4大小的DC系数块并对其进行4x4的二次哈达玛变换(Hadamard transform)。通过这一系列运算,编码器最终得到一个4x4的二次变换系数数组和其余十六个包含15个AC系数的主变换系数数组,这些变换系数通过后续的量化运算并最终进行熵编码。H.264/AVC二次变换的合理性在于DC系数之间通常存在较高的统计冗余,并且DC系数的幅值通常比较大,熵编码的代价高,对DC系数进行通过二次变换进一步去冗余可以达到相对更好的性能和复杂度折衷。
在此之后,HEVC标准制定工作的初期阶段,提案JCTVC-A124 [2] 提出了所谓的旋转变换(Rotational transform,ROT)并被采纳到HEVC的初期测试模型(Test Model under Consideration, TMuC)中。ROT本质上是一种可分离的二次变换,如下图所示,ROT在主变换DCT和量化之间对变换系数进行二次变换。
ROT所用的变换核是一种旋转矩阵,如下所示分别为ROT采用的列变换和行变换的变换核,
该旋转矩阵可以由三个稀疏的旋转矩阵相乘得到,其旋转角度分别为α1,α2,α3。由于旋转矩阵的稀疏性,ROT的解码复杂度相对较低,然而ROT定义了多组候选旋转矩阵,编码器需要进行额外的模式决策运算来选择性能最优的旋转矩阵并传输其索引序号,这不可避免地增加了编码器的计算复杂度,最终没有被HEVC标准所采纳。
二、 HEVC后的二次变换技术演进
HEVC制定工作完成之后,各个公司开展了下一代视频编码技术的研究工作,其中一个里程碑式的贡献是由提案COM16-C806提出的基于HEVC的编解码技术改进方案 [3],该方案主要包括了Adaptive Loop Filter (ALF),Cross-Component Prediction (CCP),Overlapped Block Motion Compensation (OBMC),Adaptive Temporal Motion Vector Prediction (ATMVP),64点大变换和上一篇文章提到的Adaptive Multiple Transform (AMT)技术。在此基础之上,三星公司于2015年2月再一次推出ROT技术并将其应用于该编解码技术改进方案[4]。在此之后的一次会议,X. Zhao等人提出Mode-dependent Non-Separable Secondary Transform (NSST)技术[5, 6],该技术首次将不可分离变换以提案技术的形式推向标准组织,并在ROT之上实现了显著的编码性能提升,最终取代了ROT技术成为下一代视频编码技术探索平台Joint Exploration Model(JEM)中的二次变换技术方案原型。
NSST技术首先将整个主变换系数块进行4x4的子块划分,然后对每个子块进行二次变换,如下图所示。采用不可分离二次变换首先需要将二维的主变换系数矩阵拉伸成一个一维的向量,然后再对该向量进行一次16x16的变换,得到二次变换系数,之后再对二次变换系数进行重新排序以遵循系数熵编码假设系数幅度从小到大的设计原则。
除过采用不可分离的变换核,NSST的另一项重要技术特征是采用帧内预测模式相关的变换核。根据帧内预测模式,NSST定义了总共12组候选二次变换集,帧内预测模式和变换集的对应关系如下表所示。每个变换矩阵集包含了三个16x16的变换核,编码器针对每个残差块分别选择最优的候选变换,并对其索引序号进行传输。
NSST采用的变换核一定程度上体现了所对应的帧内预测的方向性,如下图所示为45°帧内预测模式所对应的不可分离变换的基图像(basis image)。
在之后2016年成都举办的JVET(Joint Video Exploration Team)会议中,X. Zhao等人提出了NSST的进一步提高方案JVET-D0120 [7, 8],改进方案提出对8x8以上变换系数块采用8x8的NSST变换核,并实现了在NSST初始设计的基础上进一步显著的编码性能提升。
在HEVC标准制定工作完成后的几年时间里, A. Arrufat等人和S. Takamura等人在同时期分别发表了学术文章并提出将不可分离变换应用于帧内预测残差 [9, 10]。然而这些工作目前还停留在学术论文研究的阶段,因为不可分离变换的计算复杂度随变换大小呈现指数上升趋势。实现一个16x16残差块的不可分离变换需要256x256的矩阵乘法,这对现阶段的设备计算能力是一个不太现实的方案,更不必说32x32甚至64x64预测残差所用到的不可分离变换。然而,根据NSST的设计,预测残差经过主变换,能量通常集中在低频区域,理论上仅对低频区域进行二次不可分离变换理论上就可以近似更大尺寸的不可分离主变换,这便是NSST的设计初衷和主要优势,实现了以显著更低的运算及存储复杂度来近似不可分离变换的目的。
三、VVC中的二次变换技术
经过多轮改进和简化, NSST技术于最近一次在日内瓦举办的JVET会议被采纳。采纳的技术方案JVET-N0193 [11] 在NSST原有设计方案基础上对高频系数采用归零方案(Zero-out),也就是仅保留二次变换的低频系数,高频系数假设为0,该技术也因此特征被称作低频二次变换(Low-Frequency Non-separable Secondary Transform, LFNST)。以下图所示16x16预测残差块为例,JVET-N0193提出仅对左上三个4x4子块(阴影区域)所包含的变换系数进行二次变换,变换的结果仅保留前16个系数,因此一个LFNST变换核的大小为16x48,仅为一个完整的8x8 NSST变换核的18.75%大小。
LFNST所采用的归零方案的主要优势是大比例降低用于保存NSST变换核的存储空间(降低为8KB),同时由于避免了高频变换系数的计算,NSST所需的运算量也得到大幅度降低(硬件设计所关心的最坏情况控制在每个系数8次乘法),并在会议上得到硬件专家的认可。
四、 总结
本文以HEVC和VVC标准制定为背景,总结了过去将近十年的时间里业界对二次变换技术的探索和技术演进。新一代VVC标准于最近一次二零一九年三月日内瓦会议采纳了基于归零的不可分离二次变换技术方案,该技术实现了继多候选变换技术的又一次技术跨越,提供了视频编码整体性能的显著提高。音视频实验室在此项技术上具备业界领先的经验积累,将持续密切关注并深度参与该技术在标准化过程中的进展。
参考文献
[1] T. Wiegand, G. J.Sullivan, G. Bjøntegaard, and A. Luthra, “Overview of the H.264/AVC video coding standard”, IEEE Trans. Circuits Systems Video Technol., vol.13, no.7, pp.560-576, Jul. 2003.
[2] “Samsung’s Response to the Call for Proposals on Video Compression Technology”, JCTVC-A124, Joint Collaborative Team on Video Coding Meeting, April 2010, Dresden, Germany.
[3] J. Chen, Y. Chen, M. Karczewicz, X. Li, H. Liu, L. Zhang, X. Zhao, "Coding tools investigation for next generation video coding", ITU-T SG16 Doc. COM16-C806, Feb. 2015.
[4] E. Alshina, A. Alshin, J.-H. Min, K. Choi, A. Saxena, M. Budagavi, “Known tools performance investigation for next generation video coding”, ITU-T SG16 Doc. VCEG-AZ05, Jun. 2015.
[5] X. Zhao, J. Chen, M. Karczewicz, "Mode-dependent non-separable secondary transform", ITU-T SG16/Q6 Doc. COM16-C1044, Oct. 2015.
[6] X. Zhao, J. Chen, A. Said, V. Seregin, H. E. Egilmez and M. Karczewicz, “NSST: Non-Separable Secondary Transforms for Next Generation Video Coding,” in Proc. Picture Coding Symposium, 2016.
[7] X. Zhao, A. Said, V. Seregin, M. Karczewicz, J. Chen, "EE1: Improvements on non-separable secondary transform", JVET-D0120, Oct. 2016.
[8] X. Zhao, J. Chen, M. Karczewicz, A. Said, and V. Seregin, “Joint separable and non-separable transforms for next-generation video coding,” IEEE Transactions on Image Processing, vol. 27, no. 5, pp. 2514–2525, May 2018.
[9] A. Arrufat, P. Philippe, and O. Déforges, “Non-separable mode dependent transforms for intra coding in HEVC,” in IEEE Proc. on Visual Communications and Image Processing, pp. 61–64, 2014.
[10] S. Takamura and A. Shimizu, “On Intra Coding Using Mode Dependent 2D-KLT,” Picture Coding Symposium, pp. 137–140, 2013.
[11] M. Koo, M. Salehifar, J. Lim, S. Kim, “CE6: Reduced Secondary Transform (RST) (CE6-3.1),” JVET-N0193, Mar. 2019.
———— / END / ————