欢聚集团音视频质量推断实践

LiveVideoStack 2022年12月14日

编者按:音视频质量推断通过全链路指标采集、网络仿真、质量数据分析三个部分的能力来实现。音视频质量推断能从各个维度、各个阶段以及各个场景来衡量音视频通信的质量、比较各个版本的质量变化趋势、对音视频的质量改进提供解决策略等。LiveVideoStackCon 2022 上海站大会邀请到了欢聚集团 高级视频算法工程师 李凌,详细介绍了欢聚集团在音视频质量推断指标体系的建立,自动化仿真工具设计以及通过数据分析进行算法优化等方面的探索与实践。

文 / 李凌

整理 / LiveVideoStack

 

大家好,首先简单自我介绍下,我在音视频行业做了已经有十多年了,主要做一些视频会议、投屏、直播方面的产品,擅长架构设计和质量优化。目前在欢聚集团主要负责音视频质量推断、传输优化以及前沿技术研究,本次分享的内容也是关于欢聚集团在音视频质量推断方面的实践工作,希望对大家有所帮助和启发。

图片

本次分享的内容主要分成三个部分:质量推断系统的业务背景、质量推断系统的设计和未来演进。

01 业务背景

1.1 质量推断定义

图片

首先,什么是质量推断?

我们可以将质量推断理解成是一个质量分析、诊断、预测、改进的综合过程,利用音视频统计指标来分析并改进产品质量的方法,为产品质量提升提供策略支撑,并最终解决产品质量问题。所以质量推断的最终目的就是为了解决产品中遇到的各种各样的质量问题。

图片

1.2 面临的质量问题

图片

那通常我们会面临哪些质量问题呢?

图片

很显然,不同的角色面临的质量问题是不一样的。对于产品,会面对指标是否满足产品设计、产品的可靠性和稳定性以及产品上线前后质量度量等问题;对于开发,会面对如何快速标记 bug 产生的大致位置、模块质量的评价方式、快速检测优化算法的有效性等问题;对于测试来说,对解决重复测试问题的自动化工具的需要比较迫切,另外也会面对多维度版本质量对比、如何有效复现用户的问题等问题;对于运维,需要有可靠的质量预警方式、实时质量监控方式以及随时查看大盘视图的方式;对于用户,特别是主播,会比较关注自己的开播质量、观看质量、房间质量等问题。为了解决这一系列问题,我们设计开发了质量推断系统。

02 质量推断系统

图片

质量推断系统主要是分为三个子系统。指标系统,主要负责数据生产;质量分析系统,主要负责数据分析;自动化仿真系统,可以将其理解为驱动系统,驱动数据生产到数据分析,同时也对外提供使用质量推算系统的入口。

2.1 指标系统

图片

关于指标系统的设计,是如何构建一个可靠准确的指标系统的呢?

2.1.1 指标系统主要工作

图片

我们主要通过指标定义、指标上报、指标准确性这三方面的工作来保证的。

2.1.2 指标系统位置

图片

在介绍指标系统之前,先要了解指标系统在产品中处于的位置。因为目前质量推断系统主要应用在直播产品中,所以接下来的图例也是以直播产品的方式进行讲解。这张图展现的是在直播的过程中,主播、媒体服务节点和观众都会将自己统计到的指标数据上报到指标系统,由指标系统统一进行存储管理,供后续的质量分析使用。

2.1.3 指标定义

图片

这张图是所有音视频的应用(包括直播产品)都具有的模块划分以及业务流程。音视频媒体首先通过采集模块采集,再经过前处理,编码之后最终通过传输模块传到后端节点。在后端,经过一些协议的转换、转码或者中转之后,最终到达了观众端的传输模块。在观众端经过抖动同步的一些处理就可以解码,再经过后处理,最终就可以播放渲染了。

指标的定义就是要覆盖这样的业务流程,所以基于这三端(主播端、服务端、观众端)定义了五大类的质量表。主播端主要是开播质量表和上行质量表;服务端主要是后端质量表;观众端主要是接入质量表和下行质量表。

图片

开播质量表用于描述主播开播状态及质量,共有四大类数据:基础数据(业务信息、应用信息、用户标志、版本信息、频道信息、设备信息)、链路数据(连接信息、RTT)、音频开播数据(流信息、各阶段耗时信息)和视频开播数据(流信息、各阶段耗时信息)。这里的耗时指的是采集、前处理、编码、传输等各个阶段的耗时情况,同时也包含了协议交互的耗时。通过这些指标,就能对主播开播过程中的各项性能指标具有很好的了解。

图片

上行质量表用于描述主播媒体上行状态及质量。主播开播之后,它就进入到持续的媒体上行过程。直播过程中的质量就是通过这个表来衡量的,也是包括四大类数据,基础数据与开播质量表类似;链路数据,除了连接信息和 RTT 之外,还包括发包信息和流量信息的统计;音视频上行数据除了流信息和各阶段的耗时,还包括采集、编码、传输模块的统计信息。通过这些数据,就能够很好了解主播上行的质量状况。

图片

后端质量表用于描述服务节点的状态及质量,因为后端的业务比较复杂,所以质量表非常多,因为支持接入的用户和方式多、业务多、媒体从主播到观众后端服务节点中转多,对这些都需要进行质量统计。目前质量推断系统主要是基于用户端侧的,主要利用主播和观众端的质量表进行评价,后端目前还用得比较少。

图片

接入质量表用于描述观众接入状态及质量,其基础数据和链路数据与开播质量表类似,音视频接入数据也是包括流信息和各阶段耗时信息,但这里的耗时是服务端到观众端的传输模块,再到解码、、渲染等各个阶段的耗时情况。

图片

下行质量表用于描述观众媒体下行状态及质量,其基础数据和链路数据与上行质量表类似,差别在于音视频下行数据除了流信息和各阶段耗时,也包含了各个模块的统计信息,例如收包信息、解码信息、播放信息等等。此外,和用户感官相关的一些指标也会进行统计,比如延迟、卡顿,同步等等。

2.1.4 指标上报

图片

指标定义好之后,就是指标的埋点上报,主要有三个比较重要的方面,首先是上报周期。上报周期会根据业务的精度要求进行统计周期配置,另外也会根据统计精度的要求进行动态周期的调整。其次是上报方式,主要通过 HTTP 的方式,并对重复指标进行流量优化。最后是上报时机,除了超时上报之外,在主播和观众退出、停流、异常、取消订阅的时候都会触发指标上报,因此保证了整个业务过程中上报的完整性。

2.1.5 指标准确性

图片

指标系统中最后一项是指标准确性,需要耗费大量时间。因为只有保证指标的准确,才能保证后续质量分析的准确性,所以这一阶段的工作非常重要。通过大量的人工实测校准各项指标,同时覆盖测试使用产品 TOP100 的手机,使指标统计和后续质量分析更具有代表性。另外也引入了自动化仿真系统对各项指标进行自动化测验,大大提高了测试效率。经过这三方面的工作基本保证了指标的准确可靠。

图片

音频卡频率指标优化是指标优化中的一个例子。在业内,一般通过卡顿时长除以统计时长定义卡顿率,但在实际的使用过程中,该定义还是比较宽松的,现实中统计到的卡顿率经常为 0,但用户仍然会有卡顿的感觉。所以,通过常规卡顿加密集卡顿的方法来定义卡顿率会更加合适。常规卡顿就是前面定义的方式,密集卡顿是一些短时的连续的卡顿,造成的观众感官上卡顿的感觉。所以最终通过卡顿率加卡顿等级来定义音频卡顿率。

图片

另一个例子是音视频无参质量指标优化。最开始是通过码率、帧率、分辨率、采样率这些指标来表征音视频原始的质量,但在实际操作中这种评价是非常不准确的,因为其不具有代表性和通用性。因此,引入了音视频无参质量评价服务,最终通过大量的主观测试和其他测试手段,不断校正音视频无参质量评价服务的准确性。音视频无参质量评价服务主要在后端节点运行,通过在后端节点对音视频的媒体片段进行打分,最终将统计到的质量分指标上报到指标系统,最后供质量分析使用。

2.2 质量分析系统

图片

有了数据之后,接下来就是进行分析。应该如何科学进行质量分析?接下来介绍质量分析系统的设计。

图片

质量分析主要通过评价需求、评价分类、分析模型、质量呈现这四方面的工作来进行的,实际上就是质量分析的一个层次模型。

2.2.1 质量分析系统位置

图片

深入模型之前,需要了解质量分析系统在产品中的位置。质量分析系统实际上是指标系统的数据消费者,利用指标系统提供的指标数据进行各种质量问题的分析。

2.2.2 层次模型

图片

这张图就是刚才提到的层次模型。不同角色面临的问题不一样,随着业务的发展,质量问题会层出不穷,所以为了更好的质量分析的扩展性,在最外层定义了评价需求层来处理各种用户的质量问题,比如卡顿率分布情况。卡顿率分布情况通常是用卡顿率单个指标进行质量分析的,但我们可以基于单个用户、多个用户或版本和区域进行卡顿率分布情况的分析;类似质量问题还有版本延迟对比,版本延迟质量分析依赖于延迟单个指标进行多个版本质量差异的对比;另外还有 QoE 质量评价,是基于多个指标的,目前的指标选择上会依赖于音视频无参原始评价质量、音视频的卡顿率延迟、视频的帧率进行综合评价,因此是基于多个指标 的综合分析过程;同理,区域质量评价也是依赖于多个指标的;此外,模块质量对比,很显然衡量一个模块的质量不是依赖于单个指标的,也是依赖于多个指标的;最后版本质量对比是一个综合对比,同样也是依赖多个指标。

通过这些评价需求问题的分析,可以对其进行分类。在评价分类这一层,将所有评价需求分类为单指标评价和多指标评价。除了基于单指标和多指标的分析之外,还有一种就是对比。比如版本延迟对比,基于单个指标的对比;版本质量对比,基于多个指标的对比。所以为了每一个评价需求处理的方便度,在分析模型这一层将每一个评价的分类细分为分析和对比:单指标分析和单指标对比,多指标分析和多指标对比。

经过分析模型处理之后,需要以一种用户便于理解的方式呈现质量分析的结果。因此在质量呈现层定义了一些质量呈现的方法。通常以图文结合的方式来描述,例如折线图、分布曲线图、指标看板、雷达图。另外,也会提供统计学结论对每一个评价需求进行详细描述。比如,提供分析样本的最大值、最小值、均值、方差等数据,并且会给出质量差异好坏的评价。

图片

这是质量分析的流程,实际上就是上述层次模型的流程化。首先,根据用户的评价需求选择样本,根据评价需求来确定是进行单指标还是多指标评价。其次,对每种评价也会细分为分析和对比。所以针对每一个问题,都会进行以上四种流程中的某一个。比如单指标分析的处理相对比较简单,根据提取的样本绘制相应图表,并给出统计学结论。

通过这些,用户就能够了解当前数据的大致情况;单指标对比相对复杂一点,首先绘制分布密度图,得出最佳拟合函数,但并不是一定能够得到,因为有些数据并不满足某种分布,因此最终会选取一种对比方法。这种对比方法会将样本拟合成一个分数,通过分数进行对比样本的好坏;多指标评价分析也是根据需求通过样本绘制相应图表,最终得出统计学结论;多指标对比是最复杂的流程,首先需要确定各个指标的权重,并进行同向化和无量纲的处理之后采用了 TOPSIS 的方式得出一个拟合分数,将其降维到单指标评价,就能够得出多指标对比的质量差异。

图片

这是单指标分析的例子,以观众端帧率为例,会给出分析样本统计学的结论,例如均值、最大值、最小值、中位数、方差等信息,并根据样本绘制分布图。通常针对多用户或者区域版本的信息,倾向于使用这种分布图的方式。

图片

如果针对用户帧率,一般使用折线图。从时间序列来看,就能很好地了解用户帧率的走势情况和异常信息。

图片

这是单指标对比分析的流程,根据对比样本进行样本预处理,得到统计特征,根据其分布特征得到拟合函数,最终经过对比分析后能够对每一个样本进行打分,通过分数就能够比较对比样本的质量排序。

图片

这是单指标对比分析的一些图表,也提供了各个样本的统计特征,一般会在同一个分布图里绘制样本的分布图,帮助更好地看出质量差异。

图片

但同时也会提供统计学分析。比如列出采用的统计方式,样本质量好坏等。

图片

多指标分析以 QoE 质量分析为例。QoE 质量参考的指标主要是音视频无参质量、延迟、帧率、同步差等综合评价用户感官质量,这些指标的选取是根据用户看音视频的感受的指标来定义的。

图片

进行多指标分析时,通常综合结合雷达图、看板、统计学结论来描述信息。例如图中雷达图对各个指标进行正向化,越向外代表质量越好。因此基本通过雷达图就能看出多指标质量的情况。

图片

多指标对比分析也可以将多个对比画在同一个雷达图中,能够较明显地看出质量差异。

图片

多指标分析流程相对复杂。首先对对比样本进行预处理,然后采用变异系数法或专家赋权的方式进行权重确定,接着对各个指标进行同向化。进行同向化的理由是在质量评价的时候每一个指标对质量的影响是不一样的,比如延迟越小越好,帧率越大越好。另外,还要进行无量纲的处理,消除由单位不一样带来的量纲的影响。随后采用 TOPSIS,将每一个对比样本中多指标的集合量化为一个质量分,最终每一个对比样本都是一个质量分的集合。此时可以将多指标评价降维至单指标对比分析,通过对比能够得到对比样本的质量排序。

图片

上图为多指标对比分析结果展示,会将得到的质量分绘制在一个图表,从中能看出质量趋势和好坏。

2.3 自动化仿真系统

图片

数据分析之后,最主要的工作就是自动化。我们不能等到产品上线产生足够的数据之后才进行事后分析,因此要在产品上线之前产生足够数据,对产品进行各个维度的质量评价,因此有了自动化仿真系统。

2.3.1 自动化仿真系统位置

图片

自动化仿真系统在产品中的位置如图所示,蓝色部分就是自动化仿真系统,它是属于分布式的。在用户接入部分提供 UI 操作的方式,同时也提供了 API 接口,用户能够通过这两种方式发起仿真任务。由于接入部分会将仿真任务下发到后端节点,后端节点会根据仿真任务对相应主播和观众的上下行进行网络仿真。仿真任务结束后,就可以通知质量分析系统进行相应的质量分析,这就是自动化仿真系统的大致业务流程。

2.3.2 自动化仿真系统功能

图片

实现自动化仿真系统主要依赖于八大功能:模拟各种网损、用户网络重放、多端仿真、多用户仿真、自动化任务、自动化分析、自动报表、自动化接口。1、模拟各种网损:自动化仿真系统具有类似网络损伤仪的功能,能够对各种弱网条件进行仿真,因此可以对产品进行弱网测试。2、用户网络重放:通过采集用户真实网络数据来实现真实用户的仿真,能够基于真实的网络环境测试产品。3、多端仿真:能够同时支持主播和观众的上下行的网络仿真。4、多用户仿真:能够支持用户的并发使用,大大提高了使用效率。5、自动化任务、自动化分析、自动报表:能够创建一些定时触发的任务,也能创建跟随版本提测的自动化任务的触发。自动化任务执行之后能够进行自动化分析并生成自动报表。6、自动化接口:能够使用户通过编程的方式使用自动化仿真工具,大大提高工具使用的灵活性和方便度。

2.3.3 自动化仿真系统使用

图片

自动化仿真系统的使用也很简单。第一步是创建各种弱网条件的用例;第二步创建任务,一个任务是可以包含多个用例的;第三步执行任务;第四步对结果进行查询对比分析。这个流程既可以通过 UI 也能通过 API 接口的方式进行操作。

图片

以 UI 为例,以上是测试用例的页面,创建了很多弱网用例,可以对其增删改查。

图片

上图创建弱网用例的例子展示了我们能够对主播和观众的弱网进行设置。另外也可以构造各种网络形式的弱网。导入脚本功能实际上就是用户网络重放,导入采集到的用户的真实网络形成的脚本,形成用户真实网络的弱网用例。

图片

上图为仿真任务的页面。可以创建很多仿真任务并对其增删改查,也可以对任务的结果进行查看和导出。另外也可以对每个执行用例进行对比分析。

图片

上图为创建仿真任务的页面,一个任务可以包含多个用例,执行顺序、时长都可以进行调整。

图片

上图为查看用例执行结果的页面,可以对执行之后的每一个指标进行查看,比如某个用例进入弱网之前、刚开始进入、进入中和进入后的指标表现情况,对优化弱网收敛性也很有帮助。

图片

上图为指标导出的例子,能够导出一个 Excel 文件,展示了每个任务中每个用例的执行指标的情况和基本信息。

图片

上图为用例对比的页面,对执行后的用例进行对比,能够看到其质量变化趋势和最优表现用例。

03 未来演进

图片

目前质量推断系统的闭环已经运用产品中,一开始提到的不同角色面临的质量问题也都得以解决。比如产品关注的可靠性问题,就能通过自动化仿真系统在产品上线前进行各种弱网的自动化测试;比如开发,就能通过多指标评价功能对模块进行分析和优化,检测算法的有效性;比如测试,自动化仿真系统便利各种弱网条件的执行情况,大大提高了测试效率;比如运维,通过质量推断系统能够实时查看产品全局的质量视图,随时分析指标情况;比如用户,能够衡量主播开播质量情况等等。

但尽管已经实现了质量推断系统的闭环,仍旧存在一些问题。比如音视频无参评价的准确性,在不同场景下有不同的语音场景,音视频质量评价在这方面仍需提升准确度;比如质量分析及对比算法模型,尽管质量推断系统支持任何指标的多指标分析和评价,但分析的准确性也有待提升,后续也会引入更多对比算法模型进行综合评价;比如提供更全能精准的网络仿真,虽然目前具有网络损伤仪的功能,但是实际上和损伤仪的精度还有有一定差异,后续会引入其他仿真方案提高仿真的准确性;

最后我们希望质量推断系统能够成为我们所有产品质量解决的入口,能有更多应用场景,后续也会挖掘更多的质量需求。在未来,将会根据以上四个方面做更深一步的分析。

以上就是本次分享的内容,谢谢大家。


还可输入800
全部评论
作者介绍

LiveVideoStack

音视频技术社区

文章

粉丝

视频

阅读排行
  • 2周
  • 4周
  • 16周