【音视频】基于声网实时音视频能力的音视频质量体系建设

在音视频领域带了多年,发现人们往往会觉得,做Android/iOS业务APP或者SDK开发,不如做底层音视频编码解码/网络传输有挑战;同理,觉得服务端做业务系统开发,不如做流媒体开发的有挑战。其实这是一个误区,对于做工程技术(非算法研究)的研发而言,挑战的区别根本不是做“上层”还是做“底层”的技术,而是“规模”,一个产品,支撑的业务数量和线上用户规模上去了,整个产品方方面面都是挑战:稳定性、容错性、性能优化,监控告警、降级方案、资源成本、排障和运维效率,测试效率,服务效率等,很多很多点,都是对整条链路的每个模块都提出了更高的要求,更大的挑战,我们长远的规划和技术成长也都是源于如何应对这种规模带来的挑战。因此,对于工程师,我们更应该看重和追求的是如何做大产品规模,如何加入有业务规模的研发团队,而不是片面的觉得“底层开发”更高级,“上层开发”没挑战。

这是一位从事音视频领域多年的大佬的感悟,作为一个同样在音视频行业摸爬滚打多年的打工人,表示深深的赞同。刚参加工作时确实有过音视频开发”高端“、”有挑战“、”有技术含量“,随着工作经验的积累,以及经手业务规模的提升,对”业务“和”规模“越来越认同。随着规模的提升,稳定性、性能、监控等越发显得重要,尤其在音视频领域,不仅是实时性的挑战,还有问题定位,业务止损方方面的考虑。

本文以声网提供的实时音视频能力为例,探讨音视频质量体系的建设。

1. 音视频质量评价模型理论

质量评估的种类分为两种:

  • 主观质量评估:利用人眼作为对象来进行的质量评判和得到MOS分值
  • 客观质量评估:利用数学模型,模拟主观质量评估的方法,无需人的介入

1.1 主观质量评估

在国际标准中,统一使用MOS值来评价系统接收到的经过压缩后的音视频主观体验。MOS(Mean Opinion Score)主观平均意见分。

主观体验的一般流程为:

  1. 选取测试视频
  2. 衡量音视频质量的方案
  3. 设计主观评估实验
  4. 看视频打分(MOS分)

主观评估的标准有哪些呢?

1.1.1 BT.500标准

BT.500标准《电视图像质量的主观评估方法》主要应用于电视图像的质量评估,对主观测试方法进行了以下规定:

  1. 观察条件:表一列出了BT.1788建议的观测条件,观测距离和水平观测角度BT.500建议如表二
  2. 源信号:源信号直接提供基准图形以及测试中的系统的输入,源片段的质量应尽可能高。
  3. 测试材料选择:测试场景的数目和类型对解释主观评估的结果而言是至关重要的。对于特定的测试问题需要选择相应的测试材料。
  4. 观测者:观测者的数量应达到15人以上,他们应当不是专家,在某种意义上,他们与图形质量没有直接利害关系,只是作为其日常工作的一部分,并且他们不是经验丰富的评估者。但是对于特殊的测试需求,也可以使用专家观测者。
  5. 评估说明:应仔细向评估者介绍评估方法、损伤类型或可能出现的质量因子、等级评定尺度、时间安排等。
  6. 评估方法
  • 双刺激损伤尺度(double-stimulus impairment scale ,DSIS)方法
  • 双刺激连续质量尺度(double-stimulus continuous quality-scale,DSCQS)方法
  • 单刺激(Single-stimulus,SS)方法
  • 刺激-比较(Stimulus-comparison,SC)方法
  • 多媒体视频质量(Subjective Assessment of Multimedia Video Quality,SAMVIQ)的主观评估

表一

表二

1.1.2 P.910标准

P.910标准《多媒体应用的主观性视频质量评价方法》主要应用于多媒体应用,例如:视频会议和相关领域、通信领域,也用于算法的决策、试听系统的性能等级划分等。描述了多媒体应用单向整体视频质量的非交互主观评估方法。从主观评测角度该标准描述了4种测试方法:

  1. Absolute category rating(ACR) 绝对种类评分;
  2. Absolute category rating with hidden reference(ACR-HR) 带隐藏参考的绝对种类评分;
  3. Degradation category rating(DCR) 损伤种类评分;
  4. Pair comparison method(PC) 成对比较法。

该标准提到的两个指标很有参考意义:

  • 空域感知信息(spatial perceptual information)计算是将视频中每一帧的亮度平面经过Sobel滤波,滤波器是用来提取并集中高频成分,将低频成分过滤掉,再对每一个像素求标准差,进而得到一个时间序列的空域信息,最后这个序列中的最大值用来表达场景内容的空域信息。如果SI值高,表示在一帧内有大量的细节信息,如果该序列是黑屏或者当图像轮廓较为模糊,SI指标会是0。

  • 感知信息(temporal perceptual information)基于运动差异特征,即亮度平面相同位置的像素值之差,最后在整个时间域整个空间内标准差最大值用来表达场景内容的时域信息。画面中运动内容多的TI值更高。如果TI值高,表示场景发生改变频繁,如果是0表示测试序列是静止的。

虽然该ITU标准是用来主观打分的,但SI和TI这两个指标也可以用来做部分参考模型,即比较一下编码前后SI、TI变化情况,SI变化大,说明编码器丢失了很多图像细节纹理信息,TI变化大,说明编码器丢失了很多运动信息。但这种比较不能经过有损伤的传输系统,否则因数据包丢解码出来有马赛克的画面其SI或TI可能比原始图像还大。

1.1.3 GYT 340-2020、 GYT 341-2020 标准

GYT 340-2020《超高清晰度电视图像质量主观评价方法 双刺激连续质量标度法》与GYT 341-2020《基于IP传输的地面数字电视广播单频网组网技术规范》是国家广播电视总局批准的中华人民共和国广播电视和网络视听推荐性行业标准。

1.1.4 总结

主观质量标准对环境、设备、素材、人员、流程、结果有要求。由于是人眼测试,主观评价优点是准确性高;缺点是长时间主观评估,人易疲劳,人的主观性使得测试结果可重复性差,多人长时间的参与开销大。

主观评估的成本高,无法大批量进行评估,只能用来少量评估场景、或者客观评估的的辅助。

MOS分的最主要价值是指导建设客观评估体系。

1.2 客观质量评估

客观质量评估是利用数学模型来模拟主观评估结果,同样的输入参数不变,每次评估结果一样。客观评估分为以下三类:

  • FR(Full Reference)全参考评估
  • RR(Reduced Reference)部分参考评估
  • NR(No Reference):无参考评估

1.2.1 全参考评估

原始图像和压缩后 图像在同一位置的每个像素的比较结果。

  • 传统点运算(对于图像的位运算比较):
  • MSE-均方误差(MSE,mean squared error):首先计算原始图像和失真像象素差值的均方值,然后通过均方值的大小来确定失真图像的失真程度
  • PSNRPSNR-峰值信噪比(PSNR,peak signal to noise rate):衡量图像质量的重要指标,基于通信理论而提出,是最大信号量与噪声强度的比值。
  • 自然视觉特征(模型中添加人眼视觉HSV比较敏感的元素的分析,如亮度):
  • SSIM 基于图像结构相似度的质量评价方法。有争议,与主观评估不太一致。
  • VQM 利用统计学原理模拟实际的人眼视觉系统,提取人眼能感知的图像特征值的基础上,计算出视频质量的客观评价。

  • 优点:最准确
  • 缺点(无法在远程实时监测视频质量):
  • 实现成本高
  • 原始视频的传输成本高

主要应用于视频编解码系统的性能测试,如H.264与H.265的编码对比测试。

1.2.2 部分参考评估

原始视频和解码视频中提取一些特征值进行比较和评估结果。

部分参考评估需要原始视频,准确度降低

1.2.3 无参考评估

  • 缺点:不准确
  • 优点(特征提取+机器学习):
  • 不需要原始视频
  • 实现成本低

1.3 主、客观评估的结合

主观评价:

  • 准确性高
  • 实施成本高
  • 可重复性差
  • 无法大批量评估

客观质量评估:

  • 准确性依赖于评估的数学模型
  • 每次评估结果一样
  • 可大批量评估

结合两种质量评估:

  • 主观评估的准确性高的优点,来检验客观评估的数据模型

有点类似于机器学习中的标注和训练来提高预测准确度。客观评估的两个重点:

  • 指标
  • 数学模型

2. 音视频质量评价实践

在实时音视频中我们围绕着画质、声音、流畅度/卡顿建立评价体系。根据核心指标拆分出不同的维度,如:

  • 拉流成功率
  • 百秒卡顿时长
  • 百秒卡顿次数
  • 端到端延迟
  • 首帧时长

在实际的生产环境我们很难拿到原始视频,所以只能基于NR的客观评估模型进行评估,然后结合MOS方法主观抽样评价打造能反映用户真实体验感受的指标模型。

接下来我们就需要创建我们的数学模型和进行数据采集。

2.1 客观评价体系数学模型

数学模型模拟人眼观看视频的主观体验,输入视频的指标数据,输出客观评分的结果。

我们这里采用 差体验扣分 的算法。扣分算法是指在每次遇到的差体验,按一定的规则进行扣分。

总分公式:

总分=100分-(a1+a2+a3…+am)

a1,a2…,am是每次连续的差体验扣分。

α1 = 100 * C * ∑( Max(β1,β2,…,βj) ) * / ∑(0,n)

  • C:频次系数,同时长的差体验,短时间,多次的差体验比一次长时间差体验感觉越差
  • β:指标系数,根据数值变化,同一时间,发生多个差体验(比如:卡顿、帧率低),按照更差的指标系数扣分
  • ∑ (Max(β1,β2,…,βj)):连续差体验时,最高的指标系数值的相加
  • n:播放总时长

2.2 指标收集

有了算法模型,我们该去关心哪些指标,怎么收集指标呢?在声网的控制台水晶球中我们可以看到声网官方提供的指标信息:

概览

音频

视频

我们看到的指标有:

  • 设备状态
  • 音频采集音量
  • 音频上行和网络丢包
  • 音频解码卡顿
  • 视频发送/接收分辨率
  • 视频发送/接收帧率
  • 视频上行和网络丢包
  • 视频下行和端到端丢包

我们在使用声网服务时端上如何采集这些信息?以声网视频通话SDK为例,agora SDK提供了数据统计事件,加入频道后,SDK每隔2秒自动触发回调:

回调中包含了视频宽高、接收码率、远端视频解码器的输出帧率、远端视频渲染器的输出帧率、远端视频在网络对抗后的丢包率、远端用户在加入频道后发生视频卡顿的累计时长、远端用户在加入频道后发生视频卡顿的累计时长占视频总有效时长的百分比 、视频总有效时长、远端视频流的累计发布时长、实际发送码率、实际发送帧率、本地编码器的输出帧率、本地渲染器的输出帧率、当前编码器的目标编码码率、当前编码器的目标编码帧率、自上次统计后本地视频质量的自适应情况、视频编码码率、视频发送的帧数,累计值、弱网对抗前本地客户端到 Agora 边缘服务器的视频丢包率 (%)、本地视频采集帧率、本地采集的画质亮度级别、远端用户发送的音频流质量、音频发送端到接收端的网络延迟、接收端到网络抖动缓冲的网络延迟、统计周期内的远端音频流的丢帧率、统计周期内接收到的远端音频采样率、接收流在统计周期内的平均码率、远端用户在加入频道后发生音频卡顿的累计时长、远端用户在加入频道后发生音频卡顿的累计时长占音频总有效时长的百分比、远端用户在音频通话开始到本次回调之间的有效时长、远端音频流的累计发布时长、接收远端音频时,本地用户的主观体验质量、接收远端音频时,本地用户主观体验质量较差的原因、统计周期内,Agora 实时音频 MOS(平均主观意见分)评估方法对接收到的远端音频流的质量评分。

2.3 评分模型实现

sdk回调收集上传指标信息,借助大数据等数据处理平台做数据的实时计算,从而完成基于声网实时音视频能力的质量体系建设,并形成监控报警工具。

3.总结

本文介绍了音视频质量体系模型理论:主观质量评估与客观质量评估,并基于声网视频通话SDK提供的统计能力,构建基于扣分模型的质量体系评价模型和实现方案。

4.参考