目录
摘要 介绍 深度学习网络的复杂度 视频编码的演变和计算复杂性 视频编码中的机器学习 深度方案 深度工具 标准化工作 符合现有标准的工作 前处理和后处理 复杂度考虑 参考文献
摘要 在过去的十年中,数千篇文章主张人工智能(ai)和机器学习(ML)具有显著的优势。其中一些文章是基于现实的,而另一些则夸大了ML技术在众多应用中的潜在好处。那么,真正的优势在哪里?市场营销部门何时越界,进入了无稽之谈的领域?在如实时(视频)处理或编码等严格条件下的应用中呢?考虑到计算开销、延迟和成本限制后,实际的净收益又有多少?
本文尝试区分现实与虚构,探讨AI带来的好处以及ai工具如何增强编码器工具集。在明确定义AI/ML术语后,本文概述了视频编码领域的最新技术。随后,本文将介绍有效技术的示例和反例,以及对编码器阵容有益的方法。
介绍 在本文中,我不打算重复对人工智能、机器学习或(深度)神经网络的全面概述。这方面已经有很好的书和文章,例如文献[1]和[2],而且新的论文发布速度比阅读速度快。
首先,正确理解术语是有帮助的。AI和ML经常被互换使用。为了避免任何混淆,我们重复一下AI中的类层次结构。AI是创造智能机器或程序的科学和工程。在AI中,ML被定义为一个研究领域,它使计算机能够在不被明确编程的情况下学习。
目前有多种类型的ML算法,每种都有其优点,包括决策树、随机森林和支持向量机。鉴于它们在各种任务上的表现,重点已经转向了受到大脑启发的ML技术,其中使用的神经元可以将信号作为输入,对这些信号进行计算,并产生输出信号。
神经网络(NN)是最常见的受到大脑启发的ML技术,其中神经元的计算涉及到输入值的加权和,然后应用一个非线性函数,只有当输入超过某个阈值时才会产生一个输出。在神经网络领域,我们发现了深度学习,其中的神经网络有3层以上,并且至少有一层是隐藏的。这些所谓的深度神经网络(dnn)已经变得越来越流行,通常包含几十甚至几百个(卷积)层。
一般来说,我们已经看到了从使用手工挑选的特征作为输入的浅层网络向具有众多卷积滤波层的“黑盒子”深度神经网络的演变。特别是对于计算机视觉,使用几个卷积层似乎非常有效。我们有理由期待视频压缩也会有同样的发展。
深度学习网络的复杂度 为了设定预期:尽管有如此多的潜力,将DNN应用于视频编码并期望在压缩性能方面出现神奇的飞跃,这是根本不会发生的。产生的网络要么过于复杂,需要大量的计算能力——这会提高解决方案的成本;要么它们变得非常浅层,导致精度下降。在这种情况下,坚持在既定的编码器中使用手动定制的启发式方法可能更有好处。硬件加速可以工作(但也提高了成本),但你会失去部署解决方案的灵活性。
在文献中,DNN的复杂性不断增加。幸运的是,越来越多的文献关注,或者至少提到了ML的复杂性。那么,什么是衡量机器学习复杂性的好方法呢?一个越来越多被使用的参考点是用乘法运算(MAC)的数量来表达这些架构的复杂性。这些MAC可以从每秒数千到数百万不等,是复杂度的一个很好的代表[1]。即使在硬件并行化之后,一个MAC仍然是一个昂贵的操作。
作为一个例子,表1中列出了已经提交给ImageNet挑战的最先进的cnn,从LeNet到ResNet和VGG,提到了所需的层数和MAC总数。对于较新的网络,操作数通常以GigaOps表示,突出了所需计算能力的爆炸性增长。
表1 流行的DNN概述
即使是在强大的(和昂贵的)GPU上,这些网络的推理时间对于一张1024×1024的图像来说也会超过100ms。而且,对于这些较新的网络来说,每参数的准确度会下降,而且规模较大的网络并不能完全发挥其学习能力[3]。虽然这只是说明了现代DNN的复杂性,但视频压缩能从这种深度网络中受益多少呢?
视频编码的演变和计算复杂性 自80年代的第一个数字压缩系统以来,视频编码已经有了长足的进步。从H.261到MPEG-2和H.263,我们现在处于一个多编码的世界,有几种引人注目的格式,包括H.264/AVC、HEVC、VP9、AV1和VVC[4]。通常情况下,视频标准的引入是与分辨率的提高同步进行的。特别是在广播领域,分辨率的下一步和新标准(如H.264/AVC和HD,HEVC和UHD)之间有密切联系。预计VVC的引入将与8K的采用齐头并进。
伴随着压缩效率的提高,视频编码器和解码器的复杂性也大大增加。对于实时编码来说,以最新的标准实时处理高帧数、高分辨率的视频,面临着越来越多的挑战。在现实生活中的系统,如广播或直播ABR分发,系统的成本是一个非常重要的参数,以保持竞争力。一般来说,AI技术可以带来好处,使编码器供应商更具竞争力。但是,如上所述,许多网络的复杂性让人望而却步,在应用于编码时,会导致净劣势。我们将在本文的其余部分探讨这种权衡,排除一些方法的考虑,同时讨论其他看起来有希望的方法。但正如介绍中所宣布的,在市场承诺和现实之间存在着差距。
视频编码中的机器学习 机器学习已经在图像和视频编码中应用了几十年。在80年代末,基于多层感知器(MLP)网络的图像压缩实验已经开始进行[5]。在90年代,工作转向用于图像[6][7]和视频[8]压缩的随机神经网络。这些文献侧重于替代当时的压缩方案,如JPEG和H.261,具有相当的计算复杂性。尽管它们提供了合理的性能,但它们从未成功进入该领域,焦点转向了标准化的编码解决方案,如MPEG-2和H.264/AVC。
自2010年代初以来,与视频编码相关的机器学习工作已经复苏,并在过去几年中真正加速,带来了一系列你可以描述为“深度方案”、“深度工具”和“符合标准”的工作。很难对这个方向的工作提供详尽的概述,因为这些主题中的每一个都是极其热门的研究课题,每天都有新的文献出现。
深度方案 深度压缩方案是一种完全不同的编码方法,提供了一个完整的端到端解决方案。它们建立在降维和自动编码的概念上,实现了自动学习并消除了对手工选择的特征的需求[9]。在过去的5年中,这些自动编码器受到了越来越多的关注,并取得了非常有希望的结果,特别是在感知质量方面。在[10]中,提出了一个基于CNN的视频压缩框架DeepCoder,用单独的CNN网络处理预测信号和残差信号,之后应用标量量化和Huffman编码。作者在SSIM方面获得了与x264 IPPP编码相似的效率。但没有提到关于其计算复杂度的需求。[11]的工作集中在端到端优化和图像压缩上,有可能在压缩性能方面超过JPEG和JPEG 2000等格式。[12]专注于用CNN来建模空间-时间一致性以进行预测编码,得到了接近H.264/AVC的压缩性能。但是据报告,其总体计算复杂度是H.264/AVC参考软件JM的141倍。[13]提出了一个端到端的深度视频压缩网络,复杂度约为11M参数,对CIF大小的视频达到约24帧每秒。
在[2]中,概述了端到端的神经视频编码解决方案,并进行了案例研究。但很明显,这些“深度方案”还没有准备好用于实时视频的黄金时间,而且在广泛部署之前,它们缺乏一个标准化的解决方案。
深度工具 更接近现有标准的是所谓的“深度工具”或“模块化神经视频编码”[2]的工作,其中编码器工具被学习的算法取代。传统上,编码器工具是由活跃在标准化过程中的工程师手工设计和调整的。通过学习,可以找到能够更好地适应内容类型的解决方案,或者更好地利用时空一致性。
在过去的几年里,我们已经看到了关于帧内预测的学习算法提案,例如[14],其中报告了与HEVC参考软件相比的微小收益。[15]提到,相对于HM编码和解码软件,比特率节省了1.1%,计算成本分别为148%和290%。[16]提出了互补的HEVC帧内预测模式,其中明确提到了乘法方面的高成本,它随着块大小而增长(从4×4块的每个像素20次乘法到32×32块的每个像素132次乘法)。
对于时域预测,[17]提出了一种基于分组变化卷积神经网络(GVCNN)的分数插值方法。这使比特率平均节省了2.2%,但相对于参考软件,编码器/解码器的时间为6倍和1500倍。已经有其他方案被提出,例如在编码器和解码器之间不发送运动信息就能预测纹理[18]。编码器的时间是1.5倍,而解码器的时间则超过100倍。
标准化工作 目前,标准化工作正在进行中,以便将ML工具带入现实生活中。在JPEG中已经开始了一项活动(JPEG AI),在基于学习的编码方向上开始了探索。另外,在MPEG/JVET中,有一种在视频压缩方案中使用AI的趋势。在过去的JVET会议上,在这个方向上已经提交了一些贡献,并且成立了一个AHG,目标是开发一个潜在的支持基于学习的编码工具的VVC扩展[19]。该小组讨论的工具包括帧内预测、环路滤波、后处理和超分辨率。类似的工作正在开放媒体联盟内进行,以便在AV1和AV2的范围内进行改进。
从缺点来看,这些工具中许多又是非常复杂的。在积极的一面,通过优化网络,复杂性受到了关注。在JVET AHG中,提到每个像素的MAC数量是一项要求。但是,对于许多这些工具来说,与VVC参考软件相比,解码时间上升了两三个数量级,需要做更多的工作来将复杂性降低到可接受的水平。
符合现有标准的工作 最近的部分研究集中在以规范的方式(即不修改现有标准或工具)改进和加速视频编码。从HEVC的引入开始,可以发现大量的研究试图降低编码器的复杂性。作为一个例子,“数据挖掘”方法被应用,产生了决策树,以减少HEVC编码的计算复杂性[20]。在[21]中,基于CNN和lstm的模型都被引入,以加速HEVC内部和内部编码的四叉树分区。但是,第一个模型仍然需要总共1.5M的乘法和加法,而第二个模型需要大约760K。尽管与参考软件相比,这些模型导致了60-70%的编码时间的减少,但对于实际的实施来说,它们的数量级还是太高。
最近,工作转向VP9[22]、AV1[23]和VVC[24][25]编码的加速。[22]中最小的模型使用了大约26K的可训练参数,每64×64的超级块需要大约10M的浮点运算。虽然与VOD类型的设置相比,这导致了速度的提高,但对于实时编码来说,要证明这个操作数是合理的,要困难得多。
前处理和后处理 DNN已经被证明在(预)滤波应用方面非常强大。一系列关于预滤波技术的文章已经写好,包括锐化、去噪、对比度增强、运动去模糊和边缘检测。有一种不同的方法专注于视频内容语义,以协助视频编码,如物体检测/分割、显著性预测等。更具前瞻性的是分析-合成技术,它与人类视觉系统对纹理的感知方式更为接近。一个基于纹理的视频编码方法在[2]中提出,同时也提出了它的开放性问题,如分析的准确性。
一段时间以来,一个有前途的方向是超分辨率,即在编码前对输入视频进行降采样,然后在接收端对重建的帧再次进行升采样。这些方法可以在可接受的复杂度要求下节省比特(见[26]的概述)。这些方法的好处是它们可以以符合标准的方式工作,而不需要修改基础编码器或基础设施。缺点是,超分辨率上采样算法需要在接收端应用,这使得不是所有的(传统的)客户端都适合这种类型的分发。
复杂度考虑 如[2]所述,“所有这些问题对基于DNN的工具的市场采用构成了严重障碍,特别是在节能的移动平台上。一个有希望的解决方案是设计专门的硬件来加速DNN算法”。而根据[27],“将现有的深度工具与传统的非深度方案中的对应工具相比较,人们很容易发现前者的计算复杂性比后者高得多。高复杂度确实是深度学习的一个普遍问题,也是阻碍深度网络在计算资源有限的情况下(如手机)采用的一个关键问题。”
尽管有这些潜力,我们离在实时编码器中应用这些方案和工具还很远。虽然在加速编码器的传统决策方面已经花费了大量的研究和工程,但在加速基于DNN的编码器决策方面还需要大量的工作。投入GPU或并行硬件并不能解决这个问题,因为它导致了一个非常昂贵的解决方案,这是目前部署在通用CPU上的软件的几倍。在越来越多的文献中,网络的复杂性被明确提及,这是一个很好的发展,因为我们离许多网络的实际部署还有很大的距离。
参考文献 V. Sze, Y. Chen, T. Yang and J. S. Emer, “Efficient Processing of Deep Neural Networks: A Tutorial and Survey,” in Proc. of the IEEE, vol. 105 (12), pp. 2295-2329, Dec. 2017. D. Ding, Z. Ma, D. Chen, Q. Chen, Z. liu and F. Zhu, “Advances in Video Compression System using Deep Neural Network: A Review and Case Studies,” in Proc. of the IEEE, March 2021. A. Canziani, E. Culurciello and A. Paszke, “Evaluation of neural network architectures for embedded systems,” IEEE int. Symposium on Circuits and Systems (ISCAS), 2017. J. De Cock, “Navigating a Multi-Codec World”, Streaming Media Magazine, https://www.php.cn/link/ad0578a527187de255ab445a7e7fde0c. G. W. Cottrell, P. Munro and D. Zipser, “Image compression by back propagation: an example of extensional programming,” Models of cognition: rev. of cognitive science, vol. 1 (208), 1989. S. Marsi, G. Ramponi and G. L. Sicuranza, “Improved neural structures for image compression,” Int. Conf. on Acoustics, Speech, and signal Processing (ICASSP), 1991, pp. 2821-2824. E. Gelenbe and M. Sungur, “Random network learning and image compression,” in IEEE Int. Conf. on Neural Networks (ICNN), vol. 6, 1994, pp. 3996–3999. C. Cramer, E. Gelenbe and H. Bakircloglu, “Low bit-rate video compression with neural networks and temporal subsampling,” in Proceedings of the IEEE, vol. 84, no. 10, pp. 1529-1543, Oct. 1996. G. E. Hinton and R. R. Salakhutdinov, “reducing the dimensionality of data with neural networks,” Science, vol. 313, no. 5786, pp. 504–507, 2006. T. Chen, H. Liu, Q. Shen, T. Yue, X. Cao, Z. Ma, “DeepCoder: A deep neural network based video compression”. IEEE Visual Communications and Image Processing Conference (VCIP), 2017. J. Ballé, V. Laparra, and E. P. Simoncelli, “End-to-end optimized image compression”, International Conference on Learning Representations (ICLR), April 2017. Z. Chen, T. He, X. Jin and F. Wu, “Learning for Video Compression”, in IEEE Trans. on Circuits and Systems for Video Technology, vol. 30 (2), pp. 566-576, Feb. 2020. G. Lu, W. Ouyang, D. Xu, X. Zhang, C. Cai and Z. Gao. “DVC: An End-To-End Deep Video Compression Framework.” IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), 2019. W. Cui et al., “Convolutional Neural Networks Based Intra Prediction for HEVC”, Data Compression Conference (DCC), 2017, pp. 436-436. J. Li, B. Li, J. Xu and R. Xiong, “Intra prediction using fully connected network for video coding”, IEEE International Conference on Image Processing (ICIP), 2017. J. Pfaff, P. Helle, D. Maniry, S. Kaltenstadler, W. Samek, H. Schwarz, D. Marpe, and T. Wiegand, “Neural network based intra prediction for video coding,” SPIE Applications of Digital Image Processing XLI, vol. 10752, 2018. J. Liu, S. Xia, W. Yang, M. Li, and D. Liu, “One-for-all: Grouped variation networkbased fractional interpolation in video coding,” IEEE Transactions on Image Processing, vol. 28 (5), pp. 2140–2151, 2018. H. Choi and I. V. Bajić, “Deep Frame Prediction for Video Coding”, in IEEE Trans. on Circuits and Systems for Video Technology, vol. 30 (7), pp. 1843-1855, July 2020. S. Liu et al., “AhG on neural network based coding tools”, JVET-S0267, June 2020. G. Correa, P. A. Assuncao, L. V. Agostini and L. A. da Silva Cruz, “Fast HEVC encoding decisions using data mining,” IEEE Transactions on Circuits and Systems for Video Technology, vol. 25 (4), pp. 660– 673, Apr. 2015. M. Xu, T. Li, Z. Wang, X. Deng, R. Yang and Z. Guan, “Reducing Complexity of HEVC: A Deep Learning Approach,” in IEEE Transactions on Image Processing, vol. 27 (10), pp. 5044-5059, Oct. 2018. S. Paul, A. Norkin and A. C. Bovik, “Speeding Up VP9 Intra Encoder with Hierarchical Deep Learning-Based Partition Prediction”, in IEEE Transactions on Image Processing, vol. 29, pp. 8134-8148, 2020. C. Chiang, J. Han and Y. Xu, “A Multi-Pass Coding Mode Search Framework for AV1 Encoder Optimization”, Data Compression Conference (DCC), 2019. G. Tang, M. Jing, X. Zeng and Y. Fan, “Adaptive CU Split Decision with Poolingvariable CNN for VVC Intra Encoding”, IEEE Visual Communications and Image Processing (VCIP), 2019. J. Zhao, Y. Wang, Q. Zhang, “Adaptive CU Split Decision Based on Deep Learning and Multifeature Fusion for H.266/VVC”, Scientific Programming, 2020. W. Yang, X. Zhang, Y. Tian, W. Wang, J. Xue and Q. Liao, “Deep Learning for Single Image Super-Resolution: A Brief Review,” in IEEE Transactions on Multimedia, vol. 21 (12), pp. 3106-3121, Dec. 2019. D. Liu, Y. Li, J. Lin, H. Li, F. Wu, “Deep Learning-Based Video Coding: A Review and A Case Study”, ACM Computing Surveys 53 (1), pp. 1-35, Feb. 2020.