提升音视频QoE的六条建议

640?wx_fmt=jpeg


音视频服务追求的不仅是单纯QoS,而是用户最终的极致体验。阿里巴巴信息平台资深技术专家何亚明在LiveVideoStackCon 2018音视频技术大会的演讲中针对点播,直播等不同场景结合音视频编码,网络传输,服务器架构等方面实际经验,详细解读了如何从端到端整体提升用户的音视频极致体验。LiveVideoStack对内容进行了整理。


文 / 何亚明

整理 / LiveVideoStack


大家好,我是来自阿里巴巴的何亚明,主要负责阿里巴巴信息平台在音视频会议业务部分的技术研发,今天我将为大家分享如何打造音视频服务的极致用户体验。


我最早在微软从事底层编解码开发工作,过去作为团队成员为北京奥运会直播提供技术保障;也曾在Facebook工作四年并参与了Messenger与Facebook Live两项产品的开发,Messenger中的Video Call便得利于WebRTC。相对于国外如Facebook Live等直播平台侧重于实时新闻讯息直播的应用场景,国内的直播场景与玩法更复杂多样,这也是我今天分享的关注重点。


1. 视频行业发展方向

 

640?wx_fmt=png


回顾视频行业的发展历程我们可以看到,从上个世纪七十年代的黑白电视,八十年代逐渐过渡至数字化到九十年代的IP化与标清时代,再到千禧年后的高清与现在的融合通信,总体趋势是不断发生的行业整合与升级。整合体现在以前的电视、互联网、通讯社交等多种通信方式相互独立到现在的全面融合,升级则体现在4K超高清与其编解码的新标准,还有背后的硬件资源等逐步实现云化、硬件资源池化、软件化与虚拟化。无论是思科、微软、亚马逊等国内外大型科技企业还是中小规模初创企业都将音视频纳入生产业务流并将服务进一步升级作为关注重点。

 

640?wx_fmt=png


总而言之,音视频服务的未来发展趋势便是如上图概括的那样:由云+端+服务三方面元素组成。             


640?wx_fmt=png

           

其中的“云”是指云平台化。无论是传统的PaaS还是SaaS,亦或者是私有云与公有云,一切功能都是基于云的服务,云服务已经成为我国的一项重要的基础设施。而在“端”方面,除了我们熟知的手机端、PC端、Web端等,对于企业应用场景而言会议室也是需接入云的重要一端;随着IOT时代的到来,任何基于IOT的设备都可作为云服务的一端实现音视频通话、音视频流播放等功能。


“服务”除了传统的短信、语音、IM、音视频、呼叫中心等,云客服与附加AI的服务也是未来音视频服务的重要趋势。

 

640?wx_fmt=png


根据由思科出品的Virtual Network Index报告,预计到2021年全球互联网用户规模可达到46亿,这对中国企业而言意味着单纯考虑国内市场是远远不够的,拓展国际化市场势在必行;而随着新一代通信与物联网车联网等技术的不断成熟,预计到2021年全球连接至互联网的设备可达270亿,而全球互联网流量中有80%是视频流量,可以看到未来所有互联网服务或多或少都会与音视频相关。十年前我们的信息传播与交流沟通主要依赖文字,近五年我们更频繁地用图片表情包等传递情感,而在不远的将来,基于音视频流的通讯服务毫无疑问将会成为人类传递讯息与表情达意的最常用方式 。于是可以预计在2021年,每一秒钟就有一百万分钟的视频内容通过互联网传递,借助WebRTC等音视频技术与多种开源解决方案,直播的门槛会越来越低,观看内容也不会再受到时间空间的限制。

 

640?wx_fmt=png


画面的提升与分辨率、对比度、色域与色位、帧率等指标紧密相关,而视频分辨率的提升有目共睹。从上个世纪的CIF、千禧年的4CIF到十年前的720P与1080P,再到日趋普及的4K与逐渐成熟的8K,分辨率的提升意味着画面的极致体验,同时也带来了数据量的成倍增长;除了视频分辨率的不断提升,高反差HDR、广色域、高对比度等可为画面质量与颜色质感带来明显改进的技术也正逐渐受到行业的重视;随着用户对画面的观感与色彩还原程度的要求逐渐提高,传统的8-bit RGB已无法满足需求,所以诸如10-bit RGB、12-bit RGB、16bit-RGB等可保存更多色彩信息的色位方案不断涌现,随之而来的数据量会在分辨率提升的基础上进一步翻番;高帧率更是绝佳视频体验的必备元素,传统电影大多使用24帧拍摄完成,电视则多使用30帧;而在未来诸如60帧、120帧甚至160帧等会成为媒体行业的标准配置。


提升声音体验的首要方式是优化声道配置。从传统的单声道、立体声、5.1与7.1到现在的环绕声全景音再到不断成熟的的声音阵列,音频随着场景的不断复杂也需要越来越多的数据量与越来越大的带宽来承载。


总而言之,优异的音视频服务体验一定需要高质量的网络与充裕的带宽作为海量数据传输的基础保障。

 

640?wx_fmt=png


但在现实当中,高质量的网络与充裕的带宽并非信手拈来。上图基于Silver Peak公司的报告展示了欧洲与北美两个地区网络传输的延迟情况,可以明显看到现实中的网络并非我们期待的那样一马平川。其中发生的大量网络丢包并非由包质量问题所引起而是由于发生网络拥塞时,路由器无法及时处理数据拥塞以至于将所有的包都放至Buffer中,导致包的数量超过阈值并出现丢包情况。虽然条形图显示的每两周平均丢包率为0.34%,但有些天的平均丢包率却远高于这个数字可达到2.7%,如果以每毫秒为单位统计丢包率其值一定会继续增大。通常的丢包补偿技术有NACK和FEC,以及通过Codec本身来适应的SVC和SAC,在某些情况下丢包率可通过对网络架构的调整进行优化。


除了丢包率应受到我们的重视之外,抖动也是一项值得关注的指标。抖动是指信号在某些特定时刻相对于其理想时间位置上的短期偏离。抖动对声音质量有比较大的影响,有时我们可以利用背景噪音弥补抖动带来的影响并基于包前后收到的信息对丢包进行一定程度上的弥补,但类似算法往往无法完全解决丢包问题,采用多种优化与解决方案使传输尽可能适应网络环境是我们当下重点探索的方向。

 

640?wx_fmt=png


可以说,从采集源头到用户的整条音视频处理链路上的每一个元素都直接影响到用户体验的优劣。采集而来的视频文件经过前处理与编码之后,通过网络传输至解码与后处理设备,在此处理完成后进行渲染并传输至用户端。需要注意的是,编解码转换完成后的数据经由网络传输传递至最后的渲染流程,整个过程需要经过一个包含端、服务器、主干网络、WLAN、Cellular等等元素在内的冗长链路,即使我们能让其中的主干网络满足理想的条件,也难以让复杂多样的支线网络与端设备满足统一的技术标准。


2. 视频编码选择

 

640?wx_fmt=png


为优化丢包与网络抖动问题,我们有哪些比较好的思路?与汽车在高速公路上通行类似,提升道路通行效率的可行方案是缩小每辆汽车的体积与完善路面铺装情况。对应到音视频传输上来说,缩小每辆车的体积就是进一步优化编解码方案,其中的关键是选择合适而高效的视频编码方案。与过去几年各种良莠不齐的编码方案鱼龙混杂不同,现在的编码方案更为标准化,这样最大的好处是其在不同设备上的兼容性相较于以往提升明显。虽然现在业界较为主流且兼容性最好的编码方案是H.264,但诸如VP8、VP9等更高性能编码方案也越来越受到如Facebook等公司的青睐,这也与不同国家地区的主流设备特性相关。如我国现在市场上销售的绝大多数手机都支持H.264及以上的编码方案,而如非洲等一些国家与地区的用户所用的设备则无法满足这一要求。根据实际应用场景选用合适的Codec是选择视频编码的最重要思路,有些场景下选择H.264可能相对于选择VP8、VP9等效果更好。虽然硬件水平无法改变,但我们可通过基于应用场景的算法优化提升软件的适应能力,从而为尽可能多的用户提供良好的使用体验。


2.1 AV1


640?wx_fmt=png


作为值得期待的新一代视频编码标准之一,AV1的性能提升可通过上图数据清晰体现。经过汇编级的优化还可实现进一步提升。

 

640?wx_fmt=png


AV1最大的优势在于其开源而不受专利权的限制。相较于Google一家独大而缺乏其他厂商硬件支持的VP9,AV1在Codec层面结合了谷歌的VP10以及思科、Mozilla等多个厂商的Codec工具,并实现了主流硬件、软件、内容生产厂商的全面参与从而建立生态闭环。相关的最新结果是AV1的码流标准已经确立,而Encode和Decode也正在优化当中,预计到2020年基于AV1的硬件芯片即可亮相。


2.2 场景对编码的影响

 

640?wx_fmt=png


不同的用户场景对视频编码的需求也有所不同,这就要求我们需要分别针对点播、直播、实时通话等不同场景定制参数不同的编码方案。


对点播场景来说视频编码的效率是至关重要,因为点播场景要求采集端使用尽可能少的时间上传尽可能多的数据,而编码速度、码率稳定性与容错能力的考察权重则低于视频编码效率。


至于直播场景,由于允许其存在几秒的延迟,我们对视频编码效率的要求不如点播场景严苛,但由于直播对传输的要求高于点播,其对视频编码速度、码率稳定性与容错能力的要求相较于点播进一步提升。


实时通话场景无疑需要非常高的视频编码速度、码率稳定性与容错能力,才能在尽可能降低延迟的同时保证数据传输的稳定;我们努力控制延迟不高于300ms以降低人对延迟的主观感知,为此可以牺牲一定的视频编码效率以换取更高的视频编码速度。


3. 内容自适应编码

 

640?wx_fmt=png


Content-Adaptive Encoding也就是内容自适应编码则是当下一个较为流行的技术趋势。大家知道无论是点播、直播还是实时通讯应用场景,视频的分辨率、码率、帧率等参数会随着应用场景的不同而做出变化,影响这些参数的因素包括视频内容、编码方案、硬件水平、网络带宽环境等等。根据上图右下角的曲线我们可以看到,在分辨率不变的条件下增加码率,视频画面质量会在初期明显提升,达到拐点之后增长趋于平缓,这个时候就应该提升视频分辨率来提高视频质量,所以单纯地增加视频码率不会带来视频质量持续的线性增长。如果我们希望通过少量的带宽资源稳定传输高清甚至全高清视频流,即可基于此图像采用码率和分辨率自适应编码的方案,在低码率条件下使用低分辨率而在高码率条件下使用高分辨率,每当码率增大至对应分辨率图像拐点位置时切换分辨率至更高值,从而实现如图中红色曲线Convex Hull展示的随着码率提升,视频质量不断提升的效果。而实现此方案的关键在于基于视频内容精确找到每种分辨率所对应的拐点,解决此问题除了可基于大量的测试和经验值,我们也可引入机器学习来进一步强化拐点确定的精准与快速。


3.1 主观评价指标——MOS

 

640?wx_fmt=png


视频质量同样是极致音视频服务体验不可或缺的一部分,众所周知的与HVS人类视觉系统模型最为接近的视频质量评价指标便是MOS,其原理便是采用人眼观看视频并主观评价的方式为不同目标视频赋分。为保证准确性与有效性MOS需要大量人力投入以获取足够多的测试结果,其缺点为昂贵且耗时并容易受到环境、心情等无关变量的干扰,我们还是希望能够使用更为客观高效的方法衡量主观视觉体验的优劣。


3.2 客观评价指标

 

640?wx_fmt=png


这里有多种客观指标可用于视频质量评价,最早的PSNR是累积视频每一帧画面每个像素点压缩前后的差异值再平均化得到的结果。首先,由于人眼的视觉对于误差的敏感度并不是绝对的,其感知结果会受到许多因素的影响而产生变化,加上人眼不会关注每一个像素点,这就使得PSNR的分数无法与人眼看到的画面质量完全匹配,有可能PSNR较高者人眼观察反而比PSNR较低者差;例如,如果我们在视频像素中随意插入一些黑白噪点,使用算法处理这些黑白噪点并不困难;处理后输出的视频虽然理论上画质更好但其PSNR值却较低,原因是其与带有黑白噪点的原视频画面存在一定差异,这就意味着人眼可观察到的主观画质提升会被PSNR判断为画质劣化,这就是为什么业界随后出现了SSIM与MS-SSIM。其中的MS-SSIM会在多种分辨率下对图像进行SSIM评价,达到模拟视频在不同大小的显示设备上播放的效果。


更进一步的方案便是VMAF,其原理是在支持向量机回归因子中使用下列基本指标进行融合:


  • 视觉信息保真度(Visual Information Fidelity,VIF):综合四个Scale下保真度的丢失情况得出。

  • 细节丢失指标(Detail Loss Metric,DLM):分别衡量可能影响到内容可见性的细节丢失情况与可能分散观众注意力的不必要损失并与Additive Impairment Measure结合从而算出最终分数。VMAF中仅使用DLM作为基本指标。

  • 运动量:由于VIF和DLM都是衡量图片质量的指标,考虑到视频的Temporal characteristic,我们引入运动量这一衡量相邻帧之间时域差分的有效措施,通过计算像素亮度分量的均值反差即可得到该值。 


通过获取上述三项指标并加权计算得出基于VMAF的视频质量评价结果,将此结果与同一目标文件基于MOS得到的评价结果进行对比,分析二者差异与影响因素;同时借助CNN等深度学习技术,利用对比分析反馈出的数据训练并优化VMAF使其尽可能逼近真实场景下的评价结果。由于VMAF中的VIF与DLM多用于静态图像质量评价,如果我们在视频中间隔性零散插入若干个坏帧,虽然坏帧存在但人眼所感受到的视频画面质量几乎不会出现明显劣化;而如果我们将相同数量的坏帧集中连续地插入视频帧序列的某一个区域,虽然在此区域前后视频质量非常出色,但人眼观看此视频时的主观感受尤其到了插入坏帧的部分一定十分糟糕。诸如此类的问题还需业界进一步探索。


Facebook曾提出一种被称为FBMOS的视频质量客观指标,此客观指标不仅考虑到用户端播放视频时呈现出的视觉体验,更考虑了当网络环境发生变化时缓存端的性能与状态变化情况,此方案更多针对Facebook业务形态与产品使用场景而设立。


需要注意的是,上述介绍了一系列评价视频质量好坏的客观指标,并不意味着某一种指标就绝对适合或性能优秀。针对不同使用场景与应用环境的各种视频质量客观指标百花齐放,我们应当根据应用场景特点与视频类型选取最适合的评价指标并随时做出优化与调整才能获取最为客观准确的质量评价结果。


3.3 精度提升

 

640?wx_fmt=png


为了进一步提升内容自适应编码的准确,我们需要细化模型分析与处理的精度。从对每一类别视频进行大致考量到对每一种场景与主题内容进行归纳分析,从视频段继续细化至块甚至帧级别,随着模型精度的不断提升与内容自适应编码的不断深入,其对视频质量与用户体验的优化也在不断提升。上图下方展示的两篇文章分别介绍了Netflix分别在Per-Tile与Per-Shot级别做出的优化,其过程并不修改Encoder内核,仅在码率控制上做出优化;而Facebook则在Per-GOP与Per-Frame级别做出了进一步优化,文章内容会对这些内容作出更加详细的介绍,这里我就不再赘述。


Facebook于2014年收购了一家致力于实现GOP级别编码优化的公司,其思路主要是通过机器学习为不同类型的视频GOP训练多组通用Encoding参数,X.264中的参数大约有一百个左右,这样便组成了一个数据集;通过使用某一种指标(PSNR或SSIM)对其进行训练即可获得多组参数变量,通过分析变量间差异与总体变化找到影响视频质量的几个最关键参数;根据视频内容与应用场景的不同选取合适的参数,采用并行压缩的方式压缩视频若干次,每一次仅取一种参数作为变量并观察压缩后的最终结果,压缩效果最好质量最高的即为所需最佳编码调参方案。


4. 编码优化

 

640?wx_fmt=png


进一步探索帧级别的编码优化,我们研究了Video Saliency Encoding视频显著度对编码的影响。大家知道,虽然大脑所占人的体积并不多,但却能够消耗人体每日总需能量的1/3;从基因角度来说大脑会尽量控制过度的能量消耗,反馈出的结果便是人在观看视频时不会注意画面当中的所有细节。换句话说人在观看视频一定会专注于画面的某一区域,而这部分区域一定是与视频内容相关并直接关系到其所传递核心信息与大脑对视频内容的理解。我们通过研究上千位试验者观看同一内容视频时眼球的运动轨迹来确定每一帧视频画面的显著程度,从而得到可反映人眼观察视频画面时专注度的热力图。可以看到上图右上红色区域便是人眼重点观察的区域对象,这一部分也是我们在编解码时需要重点优化以保证其画面质量与流畅度的区域。此技术多用于VR、全景视频等视频规格更高且对实时性要求更严苛的应用场景,通过对高显著区域的编码重点优化、视频质量强化以及码率的科学调配,优先保证视觉重点区域画质与流畅度,从而提高带宽资源利用效率,使用有限的网络资源提供最优质的音视频服务体验。


Video ROI Encoding同样是值得我们讨论的技术趋势。相较于Video Saliency Encoding ,Video ROI Encoding 更多是基于主观判断结合机器学习实现的视频重点区域编码优化。例如上图中下展示的那样,画面的视觉重点一定是两位主人公的人脸,我们可通过优化人脸所在区域的编码来增强其质量与流畅度,但最后依旧需要保证视频整体码率的平衡,这就会造成不在视觉重点区域的元素例如人物背景等的质量会有所下降。编码器拥有多种增强质量方法供开发者选择,例如针对视觉重点区域,通过评估区域块的重要性调整编码器编码所选用的函数,需要保证质量的区域块使用高质量函数编码,需要妥协质量的区域块使用低质量函数编码,这是未来编码端打造音视频服务极致用户体验的发展方向。


5. 媒体网络架构

 

640?wx_fmt=png


常用的媒体网络构架分为MESH、MCU与SFU三种。点对点的MESH在多人通讯场景中几乎没有被使用,MCU的优势在于其在传输过程中可针对不同内容与场景进行转码、转流与信令转换、路由优化、媒体处理等操作。

 

640?wx_fmt=png


除此之外,通过将流分为大流与小流并配置不同的码率,MCU可为网络环境较好带宽质量优良的客户端提供高质量视频内容,为网络环境较差带宽质量一般的客户端提供一般质量的内容。这种针对不同用户的个性化传输服务能确保视频体验在不同网络环境下的一致性。MCU的路由优化也可让数据包经过不同的路径传输,从而减少丢包现象的发生。

 

640?wx_fmt=png


如果对分发速度有更高要求,SFU是一个可选方案。但SFU的分法策略相对于MCU更复杂多样,需要特别关注。

 

640?wx_fmt=png


我们更推荐采用这种SFU-MCU混合网络架构,对无法分流仅支持一路流的端(多为商业端或对码流格式有特定要求)采用MCU;而对服务器性能优异,但网络带宽或接收端质量十分糟糕的情形,我们推荐使用混合方案,具体还需要针对实际应用场景做出特别优化。


6. 网络带宽与拥塞控制

 

640?wx_fmt=png


网络带宽预测与阻塞控制也是打造音视频服务极致用户体验不可或缺的一环。除了上图展示的GCC、SCREAM、Sprout等传统网络算法,在WebRTC中Google开发了一种被称为PCC的网络算法,也就是根据丢包率与抖动两项指标对传输带来的影响判断拥塞控制方案,上图中展示了其大致原理与流程。除包括音视频分配策略与弱网提示在内被老生常谈的分配策略话题之外,我想补充一点心理学对音视频服务体验的影响。通过实际数据我们发现了一个有趣的现象,在通讯或播放页面添加“HD”标识可让用户停留在产品上的时间增加1%,不得不说心理暗示也是一项影响产品体验的重要元素。


7. 声音保真与质量监控

 

640?wx_fmt=png


声音当然是我们关注的重点,尤其对于商业级别远程会议而言,音频收集与传输的质量优劣直接关系到所传达信息的准确性。这也就是为什么一些大型公司为保证视频会议的声音采集,愿意花重金改造整个会议室的声学结构。这里我想强调的是,音视频服务的良好体验无法完全依赖算法优化完美解决,达成最为理想的极致体验需要设备、软件、算法、工程、网络、心理学等多方面的共同配合努力。

 

640?wx_fmt=png


而基于全链路的主观反馈数据实现的端到端质量监控可以为每一项主观与客观指标提供必要的数据基础。


8. 指导性建议

 

640?wx_fmt=png


我曾在Facebook工作的感受是Facebook利用数据指导开发工作。这需要足够数量的灰度测试与高效的AB Testing比较,通过监控工具对关键数据进行实时监控,基于数据随时对产品进行调整与优化;与此同时,根据数据工程师也能快速定位问题,根据用户反馈数据对产品进行升级,我想这会对我们提升音视频服务用户体验带来一定指导意义。



640?wx_fmt=jpeg

点击【阅读原文】或扫描图中二维码了解更多LiveVideoStackCon 2019 上海 音视频技术大会 讲师信息。

猜你喜欢

转载自blog.csdn.net/vn9PLgZvnPs1522s82g/article/details/87887708
今日推荐