5G时代来临在即,视频技术将会如何发展呢?基于视频云服务的技术开发又有怎样的变化呢?为此,京东云视频云产品研发部高级总监魏伟为大家做出了详细解读。
魏伟拥有10多年视频行业研发经验,先后从事于AVS标准制定、广电音视频系统、互联网视频平台、视频云服务平台的架构设计和研发工作,具有丰富的广电、互联网视频、视频云等行业的研发和管理经验。让我们一起看一看他对于5G时代下视频技术的理解。
在5G时代到来之前,移动通信技术已经经历了1G、2G、3G和4G,视频产业在4G时代实现了突飞猛进,如短视频、直播、长视频、视频会议等形式的出现,使得人与人之间的沟通和交流方式从传统的语音、文字、图片等模式快速升级到视频。相应的,4G时代全网视频流量已占到全网数据流量约70%,而在5G时代,视频流量占的比例还会更高。
在5G时代,如VR、3D超高清实现等技术的大规模应用,人与人之间的联系被沟通的更近。因为视频比图片和声音有更强的表达能力,也符合信息传播的未来演进方向。
5G时代的视频云服务关键技术与实践
— 京东云高级总监 魏伟—
数字视频时代的起点在80年代,那时视频标准化从H.261/MPEG-1标准开始,应用在如光盘、VCD等形式,分辨率只在352×288;到1993年,MPEG-2标准推出,分辨率达到720×576的标清时代,主要载体是DVD,也开始出现高清蓝光,是均以离线传播为主的时代;而到2003年,随着H.264标准推出,数字视频进入了互联网时代,促生了点播、直播、短视频等应用形态,H.264延续至今依然是主力的视频标准;4K视频开始崛起,H.265标准在2013年应运而生。每一代视频压缩标准,压缩效率均提升了一倍,编码复杂度也提升了很多。
当前我们所处的阶段视频是以H.264为主,4K高清视频以H.265为主的时代。视频技术的变化,每10年更新一代标准,压缩效率也能提升1倍左右。视频的标准除了ITU制定的主力标准以外,自主知识产权的国产AVS标准也快速发展起来,还有一些厂商制定的比如VP标准、RM标准以及现在免费开源的AV1标准。而面向未来的VVC新一代标准,如果顺利这一标准将会在2020年左右推出,其视频压缩效率将会比H.265再增加一倍,运算复杂度及运算量都将增加很多。
那么科普一下,视频是如何压缩的呢?视频是由一幅幅单独的画面(称为帧frame)序列组成,每秒约25帧。每帧画面之间的差异很小,只需要对视频帧之间的差异进行压缩编码,即信息熵,相邻的画面之间、相邻像素之间的的相似冗余需要去除掉,即可得到一个较高的压缩比。但对于视频技术来说,还可以利用人眼视觉模型(HVS),举例而言,1080P的视频,每秒假设有25帧,彩色视频有RGB三个分量,视频每秒的数据量为1920*1080*3*25*8=1244.16Mb/s,每秒就超过1G多数据,利用信息论去除前后相邻帧之间的时间冗余,再去除相邻像素间的空间冗余,再去除信元的统计冗余,再结合HVS做有损压缩,在不影响人眼主观感受的情况下,视频压缩可以达到300到500倍。
再看一下整个视频编码过程,涉及到的一些基本概念,上图就是一个视频压缩的经典技术框架。从最早的一代视频标准H.261/MPEG-1开始,到现在的H.265/HEVC乃至于面向未来的VVC的标准,其系统结构都是采用基于块的混合编码系统,涵盖了时间冗余去除,空间冗余去除,统计冗余去除、有损压缩等形成混合编码的结构。
每一代的视频标准都有一些共性的开发问题。比如帧结构和场结构,在帧结构中,一幅画面就是一帧;在场结构中,一幅画面是由顶场和底场两场组成。GOP(Group of pictures)图像组,需要把视频序列拆成N个图像组,每一个图像组里面包括了Intra、带前向预测的Inter,以及带双向预测的Bi-directional。Intra解决视频的随机接入问题,在任何一个Intra帧都可以开始接收和解码图像,Intra预测目前也已经非常成熟,从H264的9个方向到H265的35个的预测方向,而在未来的H.266时代预测方向会达到60多个。
第二个就是Motion Estimation即运动估计,用来消除相邻帧之间的时间冗余。因为相邻帧间的图像会有一些轻微的运动变化,运动估计技术能把这些运动给“估计”出来;Motion Compensation运动补偿是运动估计相反的过程,在解码过程中实现,解码时MC重建出当前画面,避免传输整帧画面;视频编码有Coding Mode Selection概念,多种的编码模式根据不同画面内容进行选择,有多种算法进行快速实现。
再者就是Transform变换技术,进行正交变换把视频的亮度域变成频率域,将运动估计处理后的灰度域的像素点变成频率域表示,把高低频内容区分出来,方便去除人眼不敏感的高频信号,去除空间冗余信息。还有缩放和量化(Scaling & Quantization)技术,在做有损压缩的过程中,通过量化过程对高低频信号选择合适的量化阶把不敏感的内容去掉,量化和码率控制技术密切相关,通过调整量化参数,来实现每一帧视频的码率控制。码率控制又分为CBR和VBR,CBR是固定码率,即每一秒滑动窗的码率都是均匀的,主要是用在一些固定信道传输领域比如卫星通信,码率稳定。VBR是可变码率控制,用在互联网传输方面,控制整体平均码率,但会根据视频每一段的复杂度来分配合适的码率,在复杂区域高码率、简单区域低码率来实现整体质量的均匀和整体平均码率的均匀。
所有人都在追求更好的视频体验,那么视频体验究竟指的是什么呢?哪些办法能让用户体验更好呢?
像素更多,视频的发展从标清、高清、超清到4K、8K还有以后的16K,像素越来越多,用户体验越来越好;
像素更快,以前的视频一秒钟只有15帧,现在逐渐发展变成25帧、30帧、60帧、120帧,未来还会有240帧,360帧,更快意味着更舒适;
更好的像素。以往,每一个像素是8个比特,以后像素质量会上升到10比特、12比特、16比特;
色域更宽广,色彩会更加逼真;
高保真的音频,音频压缩的难度比视频压缩更大,耳朵的灵敏程度远比眼睛要高。视频可以达到几百倍的压缩,音频的压缩也就几十倍,到100倍就已经是非常非常困难了;近年开始有全景声的概念提出,对于体验提升很有帮助;
更低的码率,虽然数据量越来越大,需要更高压缩实现更低码率来解决视频卡顿和传输成本问题;
更快速的起播,用户打开视频的速度要更快。
对视频质量的评价也有标准和方法,如今比较常见的方法有四种:
Rate-Distortion (PSNR)峰值信噪比,根据RD值绘制曲线,曲线越高,压缩效率越高、质量越好;
SSIM,根据视频结构性、相似性进行评价,目前使用越来越广泛;
VMAF,把不同的视频、不同的分辨率,放在相同维度上以统一的标准来衡量;
MOS人眼主观评价,这也是最权威的评价方法,也就是眼睛看着是否舒服。MOS评分虽然是主观评价方法,但也是最客观的视频质量评价方式。
不论直播、点播还是广播技术,视频服务都可以分成四个层面:最底层是编码最内核的Codec层,其上层是Container封装层,再上是Stream码流层,最上层便是服务层。涉及到大量的行业标准,其中大多数标准是由ITU制定的,比如H.264、H.265标准,还有封装层的MP4、TS等标准。
很多标准都有开源代码实现可参考,比如ffmpeg、VLC等服务框架,就是比较全面的开源实现;X264、X265对应的就是H.264、H.265两个标准的开源实现;Container层也有mp4box、MKV等优秀的开源封装格式;在服务层,有Nginx、SRS等开源实现,在每一层都有对应的开源实现。音视频领域虽说不大,但是技术域从底层到上层种类繁多、技术栈从汇编到go语言非常长,此处列出的仅仅是其中小部分,还有大量的开源实现来支持视频技术。
从视频技术变成视频服务,其间还有很长的一段路,除了视频技术本身,还需要进行服务平台搭建的工作,视频非常看重端到端的完整流程。在一场比赛直播中,现场摄像机拍摄、经过网络传输和云端存储、云端编转码处理、经由平台层进行内容发布和媒资管理,还有网络资源调度、节点管理、线路规划、线路节点调优等CDN工作,还可能涉及百万级的并发均衡、P2P内容分发传输,最后到终端播放。只有从采集到终端播放形成完整的链条,才能保证视频内容的流畅高质量地播出。
对于视频服务提供商而言,想要提升端到端视频服务的用户体验,就需要在播放、平台、产品等多个方面提升。播放体验包括了秒起播、低卡顿、高清晰、高质量、低延时、唇音同步;平台体验包括了高效率、大并发、稳定可靠、可管可控、安全;产品体验包括了云化、标准化、服务化、可量化、可视化;音频体验包括了响度、音质等。
具体到京东云来看,京东云在视频BD-PSNR衡量标准上,不同分辨率对比其他厂商能再低20%到25%的码率,也就意味着能够帮助内容服务提供商降低25%的带宽费用,省下25%的成本。
这些数字背后隐藏着那些技术呢?目前,开发者可以基于京东云特有的视频编码能力,在保持处理速度不降低的情况下能够把视频压缩到相比于其他厂商更低15%到20%的码率上,并且提供极速处理模式,提供优质画面的同时可以为客户降低带宽,同时处理成本不增加。京东云的对象存储的技术,对数据的安全性进一步提升,实现9个9的安全性,对存储的数据进行访问加速,并对视频方面进行定制优化。京东云CDN也进行了系统化的提升,包括资源建设,技术优化、运维监控、调度调优等,京东云提供了一张覆盖全国的CDN网络,提供超过20TB容量的CDN服务,此外再加上客户端的处理技术,接入京东云的SDK后能在短时间实现功能丰富的直播或短视频应用。
5G到来以后,延时更低、带宽更大,比4G多了更多可能性,比如超高清视频、5G+8K的视频传输和实现,更多包括视频监控和AR/VR技术将更为受益;可明确预见的是超高清视频甚至超过8K的视频处理都将很快变成可能。
随着带宽的扩充、扩容,超高清视频是一定会实现,VR也会成为新的焦点。那么,5G来了是不是VR一下又能重新爆发呢?可以抱着谨慎乐观的态度。因为VR技术和相关产业并不是一个新兴产业,而是一个完整的产业链,很难像新技术一样瞬间火爆。技术圈对于VR视频技术的探索比5G还要早,在1968年就已经在进行VR技术的尝试了,所有人都希望能有更近距离、无障碍的交流沟通体验,VR能够将人带到实际的场景中,获得沉浸式的体验。
在5G时代VR的发展到底会怎样?在2016 VR市场非常火爆,Google、Facebook相继进入VR市场,硬件厂商如三星、sony、英伟达,视频公司YouTube,内容方面腾讯、爱奇艺、乐视、暴风等逐步加入;但是到了2017年和2018年,大家又变得非常理性了。背后的原因分析一下不难得出这一结论,阻碍VR技术发展的并不只是网络,而是整个产业链。
VR的采集端是由多个无死角采集具有重叠区域的视频画面拼接而成的,他会把360度的视频拍摄下来;拼接的过程需要解决特征点匹配、多镜头同步、时间同步等问题,需要进行多镜头曝光校正、画面融合等操作,再把每个平面变成球面的画面还原出来才能完成。VR视频的编码播放与前面所讲的视频播放技术、视频处理技术大体一样,从技术架构上来说,采集、拼接、编码传输这都没有问题,但真正不好解决是在播放设备上,因为VR是戴着头盔来体验VR内容,蒙在眼前的屏幕只有几厘米距离的时候,人是很容易发生眩晕的,如何来解决眩晕感是VR普及的最关键因素。如果要在VR头盔上没有眩晕感,基本上分辨率需要达到15K左右,比现在8K还要再高四倍的像素,而在显示速度上,每秒120帧是必须条件,这样才可能避免眩晕感。
在显示屏方面,当年发布iPhone 4时提出了视网膜屏幕的概念,是指当屏幕距离人眼25-30厘米时,分辨率只要达到300ppi(每英寸300个像素点)以上,人的视网膜就无法分辨出像素点了。而从iPhone 4到iPhone XS近十年都过去了,屏幕像素只是从300PPI发展成现在的450PPI,发展速度相比晶体管非常缓慢。因为显示屏、液晶屏的发展与摩尔定律无关,速度远远低于数据处理能力的发展速度。如果VR想要达到不眩晕的效果,就得让15K分辨率和120帧帧率显示效果放进头盔里,屏幕需要达到2560PPI,无论是LCD还是OLED都很难达到。当然现也可以期待像microLCD等更高质量显示技术的成熟,来帮助VR产业进一步落地,但这显然都和5G时代关联并不大。5G的低延迟、大带宽肯定会提升数据传输能力,促进VR的体验提升和发展,但VR的普及还需要整个产业链的提升,仅有5G还不足够。
课程问答
有没有好的存储优化方案降低服务器成本?
存储技术这一个不是我的技术专长,我说一下关于视频存储降低服务成本的我们的一些实践。因为大家都知道视频的格式很多,比如说在移动端使用HLS,然后下载播放又要用MP4,然后有别的场景我又要用TS,可能有一些场景还要用FLV,格式很多意味着相同内容需要存储成多个格式的多份文件,成倍地使用存储空间。京东云现在提供的服务里面我们会只保存成一个MP4格式,然后在不同端访问请求到达时实时转换为对应格式,我们做了一个动态的转格式服务,也就是change-on-fly,从访问这个视频的时候转换成了你想要的格式。这样的话,我们通过动态视频格式的技术,在存储上只保留一份文件即可实现多种格式的访问需求,能够成倍的降低视频存储量,不再需要说为不同的终端、不同的场景再存储一个独立的视频格式,可以把所有的场景终端、所有的视频格式需求都通过一个文件加动态转换来实现。当然动态转换是有一些技术要求的,如何去降低转换资源开销是有比较高技术挑战,我们对此做了大量的深入的优化工作。
直播的时候遇到高并发,怎么监控质量?
这个是一个非常好的问题,大家遇到直播的高并发对于很多的服务商或者说对于很多的站点来说都是非常大的一个挑战,比如说你的直播有可能在5分钟之内就涌进来100万人到你的平台上来,但这个5分钟大家都知道观众分布是非常不均匀的,有可能密集地进入某个区域的某个节点。一个节点甚至说一台服务器上的带宽和服务能力都是有限的,如果说涌入过快的话,比如说瞬间一万人跑到你这一台服务器上来,那对于你的服务质量就会非常非常的不好做、不好管,我们怎么来做这种高并发接入和支持呢?
首先我们得有一个质量监控平台,接收云服务平台的上报,节点上报容量是多少、水位线是多少、连接数是多少,当节点到较大容量时就不能再使用比较粗放的DNS调图,而需要做一些全局负载均衡类似的调度方式,把每个节点的利用率都能提升上去;服务质量的监控还包括链路质量部分,在五分钟之内消化100万的并发需要均匀的分配到很多节点上去,需要结合链路质量通过调度平台选择不同的路由把访问量均匀分配下去。
服务监控质量也包括客户端的一些上报,客户端的服务质量上报包括卡顿比、下载速度、访问内容、访问时长等等,客户端的质量上报也涉及很多运营相关的数据。播放质量方面客户端也会有一些动态的调整,客户端(SDK)需要根据播放质量自动地刷新,包括服务节点、获取内容方式等方面的更新,通过更新服务节点来使质量变好。
总的来说,服务质量监控平台需要包括服务端的数据、客户端的数据,当然还包括各个控制面接口的服务质量监控,形成一个整体的视频播放质量的监控平台,方便做服务调优和故障处理。
京东云的视频产品均支持H.265,直播点播的转码、分发、存储等全功能均支持4K H265服务。直播产品支持H.264、H.265编码格式和RTMP/HDL/HLS等协议;京东云的点播产品支持H.264、H.265编码格式和MP4、FLV、HLS等多种文件格式输出。