随着各种AI新技术的发展和应用,它们不仅为我们带来了对于服务形式、内容,如各种视频特效、功能实现上的改变,更为重要的是对于服务质量以及成本上的优化。本文由NVIDIA深度学习解决方案架构师 吴金钟 在线上分享中的演讲内容整理而成,详细分析探讨了英伟达GPU上的硬编解码方案和CUDA并行计算架构赋能下的音视频AI技术研究与最新实践应用。
文 / 吴金钟
文章整理 / LiveVideoStack
我是英伟达深度学习解决方案架构师吴金钟,今天给大家介绍的是英伟达在直播场景中的解决方案。
英伟达针对直播场景提出了Broadcast engine(RBX)和Maxine两个解决方案,针对的是消费级GPU和数据中心GPU两个应用场景。我会先对这两个解决方案做一个简单的概述,然后再对其中的视频压缩技术codec和transcoding做一个详解,最后是NGC,NGC是英伟达高度优化的解决方案的hub,为开发者使用GPU提供便利。
1. RBX & MAXINE
目前英伟达在直播场景中,GPU的功能按运行平台分成两个部分,一个是RBX,另一个是MAXINE。RBX依托的就是RTX GPU强大的算力,支持了实时的AI特效,比如说背景噪音的剔除、绿幕、超分、人脸跟踪等等。MAXINE是为数据中心准备的,它是英伟达在2020年最新发布的解决方案,不管是RBX还是MAXINE,它们其实都是一组AI能力的集合。
我们看右边的图,这个图就显示了RBX和MAXINE的软件栈结构,它们的功能都是由一组SDK提供,我们刚刚说到的绿幕和超分就是由视频特效SDK提供,背景噪音剔除是由音频特效SDK提供,Face tracking是由AI特效提供的。同时里面还集成了Codec的功能,利用GPU上硬编解码单元,提供了串流的能力。Jarvis是英伟达对话式AI的解决方案,直播中引入Jarvis提供transcription、ASR和TTS等功能。Audio2Face是语音驱动avatar的功能,我们之前在GTC上看到的Misty水滴的效果,就使用到了Audio2Face的功能。同时NVIDIA Research最新的研究成果也会不断地增加进来。我们后面会对其中的AI视频压缩技术做一个详解。
再往下看就是CUDA并行计算架构,提供了GPU强大的并行计算能力。我们刚才提到的这些AI的模型都是需要通过CUDA和TensorRT进行加速来实现实时计算的。TensorRT是英伟达提供的AI模型推理加速的SDK,同时从Volta (如V100)这一代开始GPU上增加了Tensor core矩阵乘单元来对模型推理进一步加速。Tensor core同时也可以通过混合精度训练的方式来对训练进行加速。再往下就是GPU的硬件层。
1.1 RBX
这些是MAXINE主要的功能,它分为几大类。视频特效包括绿幕、超分、upscale、artifact reduction。绿幕的功能是前后景分割,分割后的背景可以被虚化,也可以替换成其他的图片、视频或者游戏画面等等。超分和Upscale都有提升分辨率的能力。超分在视频增强的同时还有一定的artifact reduction的功能,它计算量比较重。Upscale有一定的锐化作用,是一个比较轻量级的算法。Artifact reduction主要是用于消除在低码率下所引起的artifact。
音频特效就包括背景噪音的剔除,比如说PC风扇的声音、直播时背景人群窃窃私语的声音、窗外下雨的声音等等。AR特效包括人脸检测、跟踪、landmark点和3D mesh生成。人脸检测输出的是2D bounding boxes,同时也支持多个bounding boxes的输出。用户也可以根据自己的场景去指定输出bounding box的数量。
人脸关键点的检测输出的是126点的landmark,可以对眼睛、嘴唇、眼球进行跟踪。它输入的数据可以是image + bounding boxes,也可以直接输入image,在内部进行人脸检测再生成bounding boxes。3D mesh和上面二者处理的方式类似,一般情况下输入image + landmark点。如果没有landmark点,也可以在内部计算landmark点,然后通过landmark点拟合出来3D mesh。右下角的网址包含了更多的细节。
1.2 MAXINE