大话实时视频编码中的人工智能(下)

2022-02-18 10:18:39 浏览数 (1)

来源:IBC2021 原作者:J. De Cock 原标题:THE (NON)SENSE OF ARTIFICIAL INTELLIGENCE IN REALTIME VIDEO ENCODING 翻译整理:徐鋆 本文是”大话实时视频编码中的人工智能“下集,讨论了为何神经网络还未能进入实时视频编码框架,介绍了神经网络加速方面的研究,总结了在编码领域已经接近实用的 AI/ML 技术。

首先附上上集的链接:大话实时视频编码中的人工智能(上)

目录

  • 为什么这(还)没起作用呢?
    • 理论 VS 实践
    • 实时视频的制约因素
  • 加速神经网络
    • 硬件加速
    • 联合设计
    • TinyML
    • 可解释性:回到特征工程
  • 什么是有效的?
    • 优化编码器决策
    • 视频质量度量
    • 实时编码的实践
  • 结论
  • 参考文献

为什么这(还)没起作用呢?

理论 VS 实践

上述大多数文献都报告了显著的改进,它们与开源参考软件相比,有令人印象深刻的速度提升。但我们都知道,这些参考代码库远未优化,其速度以“每帧秒数”而非“每秒帧数”表示。要证明相对于这些代码库的速度提升是很容易的,但如果与经过专家调优、用汇编指令集优化并在高帧率和分辨率下实时运行的优化编码器相比,就会变得非常困难。

可以说,学术文献专注于与参考软件的比较是有道理的,因为这些是既定的参考点,多年来一直如此。然而,这种做法的危险在于,参考软件和非实时编码器的复杂性掩盖了这些论文中所使用的机器学习网络的复杂性,因此过度承诺了其潜力。因此,将这些应用到实际的编码器中,会导致收益有限。简化和优化编码器的技术在业界是众所周知的。另一方面,在 DNN 中加速重复的 MAC 操作受到硬件能力、并行化选项和内存访问的限制。即使有加速器,也需要在实时处理的智能网络的(共同)设计上花费更多时间和精力。

实时视频的制约因素

区分训练付出和推理付出是很重要的。我们主要关注的是后者,而训练阶段的成本可能要高好几个数量级。本文的重点和目标是用于视频编码和处理的实时推理,它是可广泛部署的,最好是在通用 CPU 上。这样,你就可以在任何平台上进行部署,包括在最广泛的云实例上。

当然,用于 VOD 服务的离线编码和用于直播视频的编码(例如广播、直播活动、直播 ABR、网络会议)之间存在差异。对于前者,可以花更多的精力和计算周期来编码和准备剧集和电影。这是一个编码一次,解码数百万次的情况,如果有必要,每次编码花几个小时也是可以的。

对于实时编码,每秒必须做出数百万个决策,而计算能力是有限的,这导致了在一个三维速率-质量-复杂度空间中的优化。对于实时部署,你也想限制财务成本。任何复杂性的增加都必须是合理的——在系统中增加一个 GPU 会迅速增加你的服务器的成本并损害你的竞争力。硬件/软件的交互也会使进程之间的交互和传输复杂化,并使实施复杂化。纯粹转向硬件会限制你的视频管道所能支持的灵活性和功能。通过硬件实现,VQ 的改进空间有限,创新周期也会放缓。所有这些都会影响到走向(部分)硬件实现的决定,或者完全专注于软件。

加速神经网络

很明显,上述网络不能像实时系统那样以可接受的成本来应用。到目前为止,为了简化 NN,或者为了使它们的潜力更容易被接受,已经做了什么工作?

硬件加速

幸运的是,我们已经看到了一些在深度学习加速器上实现实时推理的努力,例如研究芯片,如斯坦福大学的 EIE 和 TETRIS 芯片;麻省理工学院的 Chen 等人在 Eyeriss 可重构 DNN 加速器上的工作;以及 DianNao 系列研究芯片。[28]给出了一个概述,对研究芯片、极低功率芯片、嵌入式芯片、数据中心芯片和目前正在开发或使用的自主系统进行了区分。

虽然这些加速器肯定会对专用的用例有所帮助,但我们希望尽可能广泛地部署我们的编码器。对于普通的 CPU,TensorFlow Lite 等方法也可以帮助有效地部署模型,高效的指令集如 AVX-512 上的 VNNI 指令也是如此。

联合设计

一般来说,DNN模型和硬件的共同设计[1]将有助于使这些模型更容易获得,通过使用以下的组合:

  • 网络量化。在许多情况下,浮点精度对 DNN 来说是多余的。通过降低操作和操作数的精度,以及用更少的比特表示浮点权重或激活层,可以加速网络计算。因此,需要在加速和网络精度之间找到一个平衡点。这与英特尔提供 32 位浮点精度转换软件的做法是一致的。在这个方向上的学术工作,例如[29],提出了一种将权重和激活层量化为任意位宽的方法。[1]总结了与 32 位浮点运算相比,减少预测的不同技术以及精度损失。
  • 紧凑的网络设计可以通过减少操作的数量和模型的大小来实现。这可以通过利用激活层统计(对于零或低值激活层),或通过网络修剪(将多余的权重设置为零)来实现。后者建立在[30]的早期工作基础上。更多最新的应用在[31]中描述。

TinyML

上一节中描述的协同设计与“TinyML”的目标一致,该领域的目标是能够以极低的功率进行设备(传感器)数据分析的硬件、算法和软件。正如[32]所描述的,“修剪、权重共享和 Huffman 压缩的组合将最先进的网络在内存大小上压缩了 50 倍"。确实有必要将深度网络的复杂性降低几个数量级,以便在低功耗设备上实现它们。

最后,我们在视频编码器中寻找的复杂性,类似于这项研究在低功耗设备上试图完成的网络。在一个视频编码器内,许多网络可以并行运行,每秒做出数千次决定。这些网络中的每一个都只被允许占用 CPU 整体功率的一小部分。

可解释性:回到特征工程

在机器学习的最初几年,研究重点是将特征输入神经网络。后来,黑盒型模型被引入,它提供了更多的灵活性,但也有更高的复杂性。最近,解释模型所学内容的能力正受到越来越多的关注[33]。在可解释性方法中,提出了基于领域和基于模型的特征工程。领域/专家知识和洞察力有助于识别特定领域的特征并帮助解释。

最近的论文集中讨论了用于视频编码的 CNN 的可解释性[34]。这种方法试图通过解释学到的参数来建立更简单的模型,从而降低 CNN 的复杂性。如[34]所述,解释和理解网络所学到的关系能够推导出精简的、不那么复杂的算法,从而达到比原始模型更简单的性能。

什么是有效的?

幸运的是,这并不都是坏消息,简化的趋势导致了在准确性和计算复杂性之间的权衡中,可以用 ML 实现的好例子。尽管文献中提出的和上面描述的大多数深度网络不能以可接受的成本在实时编码工作流程中如此应用,但我们确实看到在不久的将来在以下领域的好处。

优化编码器决策

鉴于巨大的搜索空间,编码器决策是加速的良好候选者。上面已经提到了一些技术,其中一些只适用于参考软件。但是,更浅层的神经网络有可能在复杂性和准确性之间提供一个良好的权衡。特别是最近的格式,如 HEVC、AV1 和 VVC,考虑到它们的许多自由度,将从基于神经网络的加速中获益最多。有希望的工作已经在以下方向发表,其中包括:

  • 帧内预测。[35]的工作提出了基于 NN 的帧内预测模式,以及导致 16x16 块的乘数在 100s 到 10,000s 之间的简化方法。这是在[16]的工作基础上进行的,并进行了解释分析,以得出更简单、可解释的预测器,易于实现。其结果是基于 NN 的模式更接近于现实生活的使用。
  • 帧间预测。虽然最近的大部分工作都集中在 NN 上,但其他 ML 技术,如决策树,也被证明是优化编码器决策的有效方法,如[36],其中对 AV1 的帧间预测进行了加速。
  • 模式决策。[37]提出了一个基于 CNN 的 CU 分区大小决策,其合理的复杂度为 3000 个 MAC,同时还提出了一个硬件实现。
  • 变换选择。在[38]中,AV1 的变换搜索被加速了,基于一个有一个隐藏层的神经网络。对于变换核的预测,使用了两个浅层网络,它们被组合成一个二维变换的分数。

这些论文以及我们的发现所传递的信息是,相当简单的神经网络可以产生准确的结果,而且计算复杂度可以接受。

视频质量度量

已经引入了一些基于神经网络训练的指标,例如预测 PSNR、SSIM、主观分数或用于 QoE 监测。流行的 VMAF 指标是在支持向量机回归的基础上训练的。然而,这些指标可能非常复杂,使得实时计算或在编码器内部深入计算这些指标具有挑战性。然而,有可能在低复杂度网络和特征的基础上对这些指标进行近似计算,如[39]所述。

实时编码的实践

速率控制是实时编码器中能够真正改变视频质量的算法之一。速率控制决定了如何在 GOP、帧和帧里的块之间最佳地分配比特,从而使视觉质量最大化。对于帧级速率控制,我们已经看到了估算精度的改进,这使得速率控制对不同类型的内容有更强的适应性,并有助于消除在异常情况下的错误预测,例如在简单和困难类型的内容之间的快速过渡。

在[40]中,一个 CNN 被用来预测拉格朗日乘数,以达到更精确的速率控制。基于显著性的编码是一种有前途的方法,可以将比特引导到最重要的地方。在[41]中,显著性图被输入 x264 编码器,以帮助其速率控制。像[42]中的重要性图可以进一步帮助自适应量化。

在广播领域,统计多路复用算法提供了一种强大的方式来充分利用一系列频道的可用带宽。基于 ML 的复杂性估计可以帮助将比特率分配给不同的频道。对于 VOD 应用,ML 有助于以内容自适应的方式优化视频质量。通过包括低复杂度的视频质量测量,VQ 可以以实时的方式被引导,导致决策优化到镜头水平。

Throttling 有助于根据服务器上的可用资源,自动调整编码器的复杂性。当 CPU 负载上升时,编码器可以降低搜索操作的规模。在极端情况下,这可能会对 VQ 产生影响。Throttling 可以通过 ML 操作来协助在 CPU 负载、编码器决策和 VQ 之间找到一个最佳的平衡点,从而使编码器更加强大。

结论

在过去的几十年里,机器学习技术已经取得了实质性的进展。作为一个副作用,其复杂性也成倍增长。尽管深度神经网络可以为各种任务提供出色的准确性,但它们也伴随着大量的计算成本,因此也是财务成本。为了应对这种成本,有一种趋势是简化、有效的协同设计和硬件加速 DNN 推理网络。

视频压缩,特别是实时编码,给任何平台都带来了挑战。每一秒钟都要处理数以百万计的像素和数以千计的决定。需要在手工制作的技术和缺少一些“可解释性”的深度网络之间做出权衡。不幸的是,文献中描述的许多技术只在非常复杂的编码器上表现良好,比如优化不佳的参考软件。一旦你把这些应用到快速编码器上,这些 DNN 的真正复杂性就会显现出来。

很明显,需要做更多的工作来使这些方法更容易使用,而且成本接近于用专家调整的启发式方法所能达到的效果。至少可以找到一些好的例子,但是更多的文献需要明确说明其适用性并关注计算复杂性。尽管如此,还是可以找到 ML 在实时视频编码中应用的好例子,导致更快的、更自适应的和稳健的编码器。

参考文献

注:前 27 参考文献见上集。

  1. A. Reuther, P. Michalea, M. Jones, V. Gadepally, S. Samsi, and J. Kepner, “Survey of Machine Learning Accelerators”, IEEE High Performance Extreme Computing Conference (HPEC), 2020.
  2. Zhang, D., J. Yang, Dongqiangzi Ye and G. Hua. “LQ-Nets: Learned Quantization for Highly Accurate and Compact Deep Neural Networks”, European Conference on Computer Vision (ECCV), pp. 365-382, 2018.
  3. Y. LeCun, J. S. Denker and S. A. Solla, “Optimal Brain Damage,” in NIPS, 1990.
  4. H. Li, K. Asim, I. Durdanovic, H. Samet and H. Graf. “Pruning Filters for Efficient ConvNets.”, ICLR 2017.
  5. M. Verhelst and B. Moons, "Embedded Deep Neural Network Processing: Algorithmic and Processor Techniques Bring Deep Learning to IoT and Edge Devices," in IEEE Solid-State Circuits Magazine, vol. 9 (4), pp. 55-65, Fall 2017.
  6. W. J. Murdoch, C. Singh, K. Kumbier, R. Abbasi-Asl, B. Yu, “Definitions, methods, and applications in interpretable machine learning”, Proc. of the National Academy of Sciences, vol. 116 (44), Oct 2019, pp. 22071-22080.
  7. L. Murn, S. Blasi, A. F. Smeaton, N. E. O’Connor and M. Mrak, “Interpreting CNN For Low Complexity Learned Sub-Pixel Motion Compensation in Video Coding”, IEEE International Conference on Image Processing (ICIP), 2020, pp. 798-802.
  8. M. Santamaria, S. Blasi, E. Izquierdo and M. Mrak, “Analytic Simplification of Neural Network Based Intra-Prediction Modes for Video Compression”, IEEE International Conference on Multimedia & Expo Workshops (ICMEW), 2020.
  9. J. Kim, S. Blasi, A. S. Dias, M. Mrak and E. Izquierdo, “Fast Inter-prediction Based on Decision Trees for AV1 Encoding”, IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), 2019, pp. 1627-1631.
  10. Z. Liu, X. Yu, Y. Gao, S. Chen, X. Ji and D. Wang, “CU Partition Mode Decision for HEVC Hardwired Intra Encoder Using Convolution Neural Network”, IEEE Transactions on Image Processing, vol. 25 (11), pp. 5088-5103, Nov. 2016.
  11. H. Su, M. Chen, A. Bokov, D. Mukherjee, Y. Wang and Y. Chen, "Machine Learning Accelerated Transform Search for AV1," Picture Coding Symposium (PCS), 2019.
  12. N. Barman, E. Jammeh, S. A. Ghorashi and M. G. Martini, “No-Reference Video Quality Estimation Based on Machine Learning for Passive Gaming Video Streaming Applications”, in IEEE Access, vol. 7, pp. 74511-74527, 2019.
  13. Y. Li, B. Li, D. Liu and Z. Chen, "A convolutional neural network-based approach to rate control in HEVC intra coding," IEEE Visual Communications and Image Processing (VCIP), 2017.
  14. V. Lyudvichenko, M. Erofeev, A. Ploshkin, and D. Vatolin, “Improving video compression with deep visual-attention models,” International Conference on Intelligent Medicine and Image Processing, 2019, pp. 88–94.
  15. M. Li, W. Zuo, S. Gu, D. Zhao, D. Zhang, “Learning convolutional networks for contentweighted image compression”, IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2018, 3214-3223.

0 人点赞