3)通过把Edge services按照微服务进行划分,能够让到我们更加灵活的去适应客户的需求,实现按照微服务级别的快速上线。
03实时音视频服务质量保障实践第三部分我会分享一下我们在实时音视频服务质量保障上的一些实践,这里主要是一些算法设计上的思考,前文主要是架构上的一些思考。
3.1 视频、音频、网络是影响体验的关键系统因素如上图所示,我们做了一个影响体验的相关维度的分析。从客观指标到主观指标,再到QoE的关系做了一个简单的映射图。我们通过分析,发现影响实时音视频服务体验质量核心的三个系统性因素是视频,音频和网络,接下来我就分别针对这三部分的算法实践进行介绍。
3.2 视频编码技术首先我们来看一下视频编码。我们把视频编码技术按照设计目标进行了一个简单的分类,第一类,它的设计目标是如何科学的减少视频编码的冗余,降低编码失真对人眼主观感受造成影响。因为我们的实时音视频业务还是主要面向人的,所以有一些非常经典的优化思路,比如:从人出发,分析人眼的视觉特点,基于这些特点来优化编码算法,图中简单列了几大类和编码相关度比较高的人眼视觉特点。
还有一种优化思路,就是从源出发,也就是从内容出发,我们会分析不同场景内容的特点优化编码算法,比如计算机生成图像的特点有低噪、大平坦区域等等。
第二个设计目标是如何科学的增加冗余来抵抗弱网传输对人员主观感知的影响。这边简单列了几类增加冗余的编码,比如极端的全I帧编码、帧内刷新的模式以及长期参考帧和SVC编码。在一些空间视频的业务里面,我们为了改善在空间定位的时延,会使用一些全I帧编码结合一些普通编码来使用,减少空间定位的时延。我们在云游戏里为了减少大I帧的突发,会采用帧内刷新的编码方式。在实时音视频服务中,长期参考帧和SVC是比较常见的编码方式。
3.3 PVC感知编码下面介绍一下我们具体的一些编码技术。我们云视频团队联合华为2012中央媒体技术院,从分析人眼视觉系统出发,改进了PVC感知编码算法。我们的算法经历了几轮迭代。最新的感知编码2.0算法实现了1Mbps码率提供了1080P 30帧高清画质的体验;算法的主要改进思路是:首先通过预分析和编码反馈信息,对场景和区域进行区分,实时通话场景主要的高敏感区域包括:人脸区域和静态区域。针对不同场景和区域,采用不同的编码参数和码率分配策略,例如非高敏感区域分配较低的码率;2.0算法在1.0的基础上,我们在码控方面加入了AI的技术,相较于之前,固定的码率和分辨率组合,新的方法,我们基于AI的感知码控,获取不同场景下最优的码率和分辨率组合,达到低带宽下更优的主观效果。
3.4 SCC编码第二编码技术是SCC编码,它主要应用于计算机生成图像的编码,比如在教育或者会议里的屏幕共享场景,我们的算法相较于x265 ultrafast档位,它编码的压缩性能提升了65%,在相同的计算资源的情况下,我们的编码速度提升了50%。针对屏幕共享的场景,我们也解决了它特有的一些问题。在共享的时候,经常会共享一些图文,比如word或者ppt。这一类相对是比较静止的,这个时候编码参数一般会采用低帧率,尽量保证它画质的编码方式,但很多时候共享图文之后会切换到共享视频。如果不能很好的去感知这一点,我们观看视频的体验就是不连续的画面,类似于gif。
为了解决这一问题,我们采用了基于视频时空域的复杂度分析,来自适应视频编码帧率的办法。这样在静态的图文画面下能够有一个高品质的图像,切换到视频共享时,也能够保证流畅性。
我们解决的第二个问题是从YUV444下采样到YUV420场景带来的色彩度的失真问题,因为我们知道很多时候屏幕共享静态的图文,对色彩度的要求是比较高的。但是把它从YUV444下采样到YUV420的时候,UV域的信号会出现很大的衰减,左图是没有使用新算法之前的效果,右图是应用了新算法之后的效果,明显可以看到右图字体会更加清晰,色彩度的失真会更加小,这里的核心是使用了低复杂度色彩校正的算法。
3.5 自适应长期参考帧编码