当前互联网上大于75%的流量都来自于视频,据估计5G时代视频流量更是高达90%以上。如何压缩、传输以及分析视频内容成为5G部署及大规模应用的关键。虽然传统的5G部署也有一定市场,但经过AI加持的智能终端/边缘/云计算可以为5G带来更大的收益及降低其部署成本。本次报告主要探索了在硬件层面如何利用传统方法及深度学习方法对视频进行压缩和分析,以及如何在5G信道中传输压缩后的码流。
文 / 徐科
整理 / LiveVideoStack
本次分享的内容是关于在AI + 5G时代下视频、图像处理等技术的发展情况,以及在5G技术与人工智能的加持下,视频处理,图像处理等技术的发展方向。本次分享侧重于硬件以及芯片方面,将更多地介绍关于硬件设计、驱动、并行架构等方面的内容。
本次内容主要分为三个部分。第一部分是针对人眼的视频编解码压缩,这也是传统的处理领域。二是针对机器视觉的视频压缩。现在越来越多的视频或者图像主要目的是给机器分析,而不是给人眼去看,那么视频编解码、视频处理是否会有变化,如果有变化,其变化情况如何。三是随着5G和AI的兴起,尤其是在视频编解码标准这一方面,是否遵循着以前的混合架构。MPEG系列的的混合架构已经用了几十年了,到现在使用的ITU、H.266、VVC也没有完全地跳出MPEG-I的框架。
1. 对于人而言的视频编解码的压缩
1.1 VVC、EVC、LCEVC介绍
最开始的视频编解码可能就是MPEG一条线,然后一步一步发展,比如H.264、H.265,到现在正在做的H.266。但这样一条线的日子并没持续太长时间,就出现了两个竞争对手,其中一个就是我们国家自己的AVS标准,之所以出现这样的标准,原因是H.264基本上被国际标准组织所把控,所以国家也需要有一些自己特定的标准,于是就开发了AVS,到现在已经是AVS3了。另外一个是像Google或者AOM联盟,其主要目的是把标准开源化。像Facebook这样的大公司,视频占据整个流量的绝大部分,所以Facebook需要每一年向MPEG这样的标准组织交纳大概6000万美元的专利费,这是一个巨大的数字,因此像Facebook这样的公司计划将每年交纳的专利费用于做标准并且进行开源,这就促成了VP8、VP9,现在的AV1以及正在开发的AV2这一标准系列的诞生。所以除了MPEG系列之外,还有AVS、VP/AV这样的标准系列。图中列举了三个,对于MPEG标准组织而言,也不是只做VVC这一方面,EVC和LCEVC两者可用于解决VVC里一些不能覆盖的问题。
H.264是20年前的技术,H.265是2013年出来的,H.264是2003年出来的,目前H.264在整个网络流量的占比非常大,超过一半。而H.265到现在为止,经过多年还未成为主流的技术的主要原因就是输在它的专利上,第一它的专利费不如H.264便宜,第二H.264专利的收费方明确规定,一旦交纳专利费就不会再有其他的专利问题。但H.265并非如此,它有几个不同的专利池,另外还有些公司在H.265里有自己的专利,但实际上并未加入专利池,这相当于即使使用了H.265,还是需要交纳专利费,所以这就阻止了很多公司对H.265进行大规模地开发。
H.266里面有VVC、EVC、LCEVC,三者针对不同的应用有不同的收费方式。比如VVC是即将在2020发布的,它的Versatile就是适应很多不同的场景,VVC里做了很多的技术以适应不同场景下的不同的编码,所以它的License是要收费的。EVC跟VVC的区别是EVC在Baseline部分是不收费的,它是一个免费简单且效率不太高的编解码标准,但是在Main及以上部分就需要收费了。
随着视频编解码越来越复杂,VVC里的一些新的编码工具的复杂度也是一代一代地增加,LCEVC主要的目的就是,不管在软件还是在硬件方面,把复杂度降低,这相当于把复杂度倒回去,因为H.264->H.265->H.266越来越复杂,所以LCEVC可以在硬件受限制的场景下进行使用。
随着人工智能或者5G的发展,视频编解码应用的场合越来越多,VVC的目的就是满足对一个巨大而全的编码方式的需求,但是在这样的标准出来之后,首先要解决的并不是技术问题,而是知识产权的归属以及收费的模式,这才是阻碍VVC大量发展与应用的关键因素。
1.2 VVC的新的编码工具
这里列举了VVC里的一些新的编码工具,实际上从整个MPEG发展到现在的趋势看,它的整个框架并未偏离hybrid-coding的趋势。随着目前AI的兴起,很多研究人员开始用一些深度学习的方法来替代其中的一些coding tool。所以H.266/VVC可能是最后一代混合架构。右图中假如H.264把整个图像分成16x16的Block,可以再分成小的4x4,但是不能扩大。而H.265在图像的平滑区域,会将编码的LCU划得更大。H.266/VVC更近一步,会把整个CTU做到128/256甚至更多。如果在图像纹理非常明显或者非常密集的地方,可以做很多很小的划分,通过这种不对称的划分方式,可以大幅度提升编码效率。
1.3 VVC的多样性
VVC主要解决以下三个问题:一是屏幕内容编码,随着玩游戏人数的增加,大部分观看的都是游戏重播,即把游戏录制下来然后进行播放。很多时候游戏内容跟一般的自然风景内容不同,它的结构所表现出来的形式和自然产生的是完全不同的,如果还是采取针对自然场景下的压缩形式就达不到较好的效果,所以VVC里的Versatility最重要的一点就是屏幕内容编码。
二是参考图片重采样,先传输一个720的分辨率,再调成1080或者4K的分辨率,如果采用传统的方法是难以进行参考的。因为分辨率变成了1080,不可能再取前面的那一帧,VVC就是尝试着解决随着Streaming的内容越来越多的时候,编码工具如何变化以减少基流的费用开支。
三是独立子图片,其中包括了像360等级的视频,主要针对虚拟现实情况下的编解码。
总的来说VVC主要针对多样性,根据不同的场景进行编解码处理。目前最新的测试模型6.1跟HEVC(HM)相比,基于PSNR的HD和UHD比特率会降低38%。一般情况下视频标准都是10年一代,但由于AVS以及AV1、AV2等的竞争,VVC的标准提前了大约三年左右。另外,目前版本的VVC中我们可以看到x8.9倍编码器和x1.6倍的解码器硬件资源消耗的增加。
2. 对于机器视觉而言的视频压缩
2.1 面向机器视觉的编码
这部分介绍了面向机器视觉的视频压缩与人和机器混合视觉的视频压缩之间的区别。对于人的视觉来说,较高的高清度还原性是最重要的,即看到的就是所拍摄下来的内容;其次是较大的图像规格,即不断的提高视频的分辨率;三是帧率的提高,随着VR的发展,为了满足人眼的舒适度就要不断的提高帧率。
但是对于机器来说,视觉要求没有人那么高,但是要求具有较高的精确度;其次是较低延迟,尤其在5G情况下,要求较低的延迟;最后是面向目标对象。
评估面向机器的视频编解码的性能主要有三点:PSNR、mAP、主观和客观的评判标准。
2.2 面向机器视觉的应用场景
这里列举了有关机器视觉的例子,比如智能工厂、视频监控、自动驾驶车辆、娱乐方面、零售分析等等。机器视觉不同于人眼视觉只需要高保真就可以,它在很多不同的应用场景需要不同的要求,这些都是对机器视觉提出来的挑战。
2.3 面向机器视觉的视频编码方式
面向机器的视频编码主要有两种方式,图中的上面是一种传统方法,先输入视频进行编码,在接收端进行解码再进行通用特征提取等,最后将结果输出。
对于面向机器的视频编码不需要传输原始的图像,而是在输入视频里将针对神经网络的权重提取出来,然后将这些特殊的特征进行压缩后,通过传送器传输到接收端对其进行解压,最后用神经网络进行检测。神经网络的输入不再是单纯的图片,而是前面已经处理好的特殊的特征。
3. 新时代的视频压缩
3.1 视频压缩的发展方向
针对于现在的5G+AI时代,视频压缩未来的方向主要包括图中四部分:5G、系统方法、AI/DL/NN上的硬件和半导体。
3.2 5G应用场景
目前5G主要有三个应用场景:eMBB、URLLC、mMTC。
- eMBB是针对人的视觉的,5G进一步提升带宽和降低延迟。
- URLLC是一个低延迟的传输协议,主要用于自动驾驶的车联网以及远程医疗。
- mMTC主要针对物联网IoT,目前的人联网会随着5G的发展成为物联网,问题是用传统的网络带宽不够,而5G会极大地扩充整个网络带宽的频段以及同时接入的设备数量。
3.2.1 5G技术
这张图是5G和3G、4G的展示图,主要介绍几个方面,一是Mobility,即在某种速度下可以联网,4G可以做到在25km每小时的高铁上连网也没有问题,5G更推进了一步,可以做到在500km每小时的情况下正常连网。二是Latency,延迟在4G情况下是10毫秒,这是相当大的,在5G情况下延迟提高到1毫秒,相当于达到十倍的降低。三是Peak Data Rate,4G情况下是1Gbps,5G情况下是4G的20倍,可以达到20Gbps。四是Number of Decvices,5G情况下可以达到10^6/km²,即在一平方公里可以连接100万个设备。
利用5G技术在路上进行自动驾驶通讯
这张图表示,5G改变了通信的信道,在视频编解码阶段,以前的通信里面编解码归编解码管,通讯归通讯管,两个基本上是分开的,视频压缩端不涉及数据的即时传输,这就会造成视频的卡顿。
解决方法就是将视频编解码和传输协议做成紧密耦合的系统。编码时要做到:一是可伸缩视频编码,二是功能性视频编解码。
3.3 视频编解码的改革
编解码器为传输提供了三种选择:一是稍高的版本,二是较低的版本,三是直接丢弃。这三种形式需要根据当前的网络形态或者当前网络阻塞的判断,决定采用哪一种,即视频编解码将最后的决定权给了传输协议。
以后的视频编码标准可能会有图中所列的三个:内容感知、任务感知、接受方式感知。
以前的压缩标准对要求每个像素的方式或者效率基本都相等,但这并不是最好的方式,因为它不是一个针对对象的压缩方式,尤其对机器视觉来说,更需要的是关注的对象。比如在自动驾驶过程中更关注的是车牌,所以这种方式就需要通过一些人工智能的方式进行处理。
在介绍人工智能处理器之前先普及一些硬件的知识。图中可以看到每一磅的碳排放量,如果坐飞机从纽约到旧金山进行往返旅行,那每一磅的碳排放量大概是1984;一个正常的地球人一年来说是11023;一个美国人一年碳排放量比全世界平均排放量高了三倍。
但一种对神经网络进行架构搜索的算法transformer运算起来的碳排放量非常的惊人,达到了626155。这就产生一个问题,即现在的人工智能虽然在某些地方可能超过人的智能,但其功耗是非常大的,实际上是通过堆砌众多的计算单元及计算量来进行一件简单的事。
现有的神经网络运算是如何把复杂度支撑起来
如果采用传统的一些硬件进行,它的效能就比较低,过于消耗功耗。解决这种问题的方案是,图中对比了三种不同的计算单元,一是蓝线代表的CPU,二是绿线代表的GPGPU,虽然它的效能提高,但是其灵活度下降了。三是红线代表Semi-custom SoCs & FPGAs,做一些专用的神经网络加速器,它的灵活度非常低,但是效率却非常高。
3.4 MemoryWall
在设计人工智能加速器的时候,首先关注的是Memory Wall,这些神经网络从本质上来讲就是一堆乘加的运算,但如何将乘加的操作数搬上去,这是一个非常重要和最难的事情,图中是比较经典的三个网络:AlexNet、ResNet-152、Languagemodel。其中Memory操作占了整个需要计算的75%及以上。
3.4.1 MemoryCapacity
从准确的数字表达可以看到,对于ResNet的CNN和LSTM引擎,两者的模型大小都非常大,分别是120MBytes和2.5GBytes。两者的记忆使用,即在进行训练和推理时所占的带宽,ResNet在训练时有21,而推理时只有0.12。LSTM在训练时是40,而推理时是2.5。
高性能算法系统性能从硬件的角度看,有10%的节点内通信,10%的CPU计算,10%的网络带宽和延迟,50%的GPU计算,GPU的优点是将很多小的相似的任务并行操作,最后是20%的记忆带宽和容量。基本上就是按图中这种划分方式对高性能计算的性能进行划分。
图中展示的是深度学习神经网络系统,整个系统最上部有Tensorflow、PyTorch、Caffe、ONNX等神经网络训练架构。中间部分是软件堆栈层,最下部分是硬件层。
在不同的软件堆栈层要进行不同的事情,在优化层,比如现在的神经网络有很多是冗余的,因为它对于一个黑盒子来说,很多参数在训练的时候,作为设计师不知道什么意思,但尝试后效果还不错,所以将其留下,但实际上如果仔细地解剖看,里面有很多冗余的东西,所以要进行修剪、量化的处理,即把神经网络里面有些不必要的部分去除。其次,固件层的工作主要是数据管理、流量控制、异常处理。最后是驱动层,它与硬件结合十分紧密,主要进行寄存器配置、寄存器状态读取、启动/停止硬件、中断处理。
3.5 AI引擎
图中是一个AI引擎设计图,它有几个不同的层次,其中DMA处理数据的进出。
这是一个8×16×32的AI加速引擎设计的MAC列阵图。
目前的AI加速引擎都是类似脉动阵列的方式,输入数据一是从上往下进去,一是从左往右进去,那么通过排列组合,将其成为一个非常规则的脉动阵列的方式。其实现有的神经网络的设计并不复杂,基本上就是一堆乘加器,它的挑战主要在于计算量非常的大,需要计算众多参数和图片,另外需要消耗巨大的存储。
目前AI计算引擎已经是一个2.0的引擎,它有海量的传感器,比如在自动驾驶的时候,会有很多的传感器收集数据,并传输到AI处理器进行处理,再通过极低延迟与传统的SoC进行交互。
图中展示的是芯片设计或者硬件设计的性能增益,其中增益最多的是40%的工艺技术,也就是随着工艺的不断发展,其性能提高了40%。其他有编译器性能提升了8%,微架构性能提升了17等等。总的来说,如果想要优化神经网络处理器,可以根据图中这些方面进行一步步的优化。
这是一个三维堆叠图,SoC芯片跟DRAM两个并列在一起,但随着进一步的发展,会把不同的芯片合并在一起,通过这种方式,片上存储的通讯带宽就会扩大,就无需考虑记忆库的问题。但需要考虑的是散热,如果把所有东西都垂直的叠在一起,散热就成了需要解决的问题。
4. 总结
目前为止,视频编解码器仍被视为视频系统中的黑匣子,尤其是和5G结合时。但是随着通信的发展以及对延迟的需求的扩大,应该将视频系统、通信系统、视频编解码和5G通信结合起来。
目前针对视频,我们需要对应用程序、标准、硬件和软件等不同层次进行优化。首先要不断开发新的视频标准,其次,需要一些深度学习/神经网络技术进行处理,将应用、标准、硬件、软件进行协同优化(应用+标准+硬件+软件),不管针对视频还是深度学习,需要不断对硬件架构进行开发(宏/微架构),随着摩尔定律推进的减弱,将逻辑+内存+3D封装在一起。(逻辑+内存+3D)。