在音视频领域带了多年,发现人们往往会觉得,做 Android/iOS 业务 APP 或者 SDK 开发,不如做底层音视频编码解码/网络传输有挑战;同理,觉得服务端做业务系统开发,不如做流媒体开发的有挑战。其实这是一个误区,对于做工程技术(非算法研究)的研发而言,挑战的区别根本不是做“上层”还是做“底层”的技术,而是“规模”,一个产品,支撑的业务数量和线上用户规模上去了,整个产品方方面面都是挑战:稳定性、容错性、性能优化,监控告警、降级方案、资源成本、排障和运维效率,测试效率,服务效率等,很多很多点,都是对整条链路的每个模块都提出了更高的要求,更大的挑战,我们长远的规划和技术成长也都是源于如何应对这种规模带来的挑战。因此,对于工程师,我们更应该看重和追求的是如何做大产品规模,如何加入有业务规模的研发团队,而不是片面的觉得“底层开发”更高级,“上层开发”没挑战。
这是一位从事音视频领域多年的大佬的感悟,作为一个同样在音视频行业摸爬滚打多年的打工人,表示深深的赞同。刚参加工作时确实有过音视频开发”高端“、”有挑战“、”有技术含量“,随着工作经验的积累,以及经手业务规模的提升,对”业务“和”规模“越来越认同。随着规模的提升,稳定性、性能、监控等越发显得重要,尤其在音视频领域,不仅是实时性的挑战,还有问题定位,业务止损方方面的考虑。
本文以声网提供的实时音视频能力为例,探讨音视频质量体系的建设。
质量评估的种类分为两种:
在国际标准中,统一使用 MOS 值来评价系统接收到的经过压缩后的音视频主观体验。MOS(Mean Opinion Score)主观平均意见分。
主观体验的一般流程为:
主观评估的标准有哪些呢?
BT.500 标准《电视图像质量的主观评估方法》主要应用于电视图像的质量评估,对主观测试方法进行了以下规定:
表一
表二
P.910 标准《多媒体应用的主观性视频质量评价方法》主要应用于多媒体应用,例如:视频会议和相关领域、通信领域,也用于算法的决策、试听系统的性能等级划分等。描述了多媒体应用单向整体视频质量的非交互主观评估方法。从主观评测角度该标准描述了 4 种测试方法:
该标准提到的两个指标很有参考意义:
虽然该 ITU 标准是用来主观打分的,但 SI 和 TI 这两个指标也可以用来做部分参考模型,即比较一下编码前后 SI、TI 变化情况,SI 变化大,说明编码器丢失了很多图像细节纹理信息,TI 变化大,说明编码器丢失了很多运动信息。但这种比较不能经过有损伤的传输系统,否则因数据包丢解码出来有马赛克的画面其 SI 或 TI 可能比原始图像还大。
GYT 340-2020《超高清晰度电视图像质量主观评价方法 双刺激连续质量标度法》与 GYT 341-2020《基于 IP 传输的地面数字电视广播单频网组网技术规范》是国家广播电视总局批准的中华人民共和国广播电视和网络视听推荐性行业标准。
主观质量标准对环境、设备、素材、人员、流程、结果有要求。由于是人眼测试,主观评价优点是准确性高;缺点是长时间主观评估,人易疲劳,人的主观性使得测试结果可重复性差,多人长时间的参与开销大。
主观评估的成本高,无法大批量进行评估,只能用来少量评估场景、或者客观评估的的辅助。
MOS 分的最主要价值是指导建设客观评估体系。
客观质量评估是利用数学模型来模拟主观评估结果,同样的输入参数不变,每次评估结果一样。客观评估分为以下三类:
原始图像和压缩后 图像在同一位置的每个像素的比较结果。
主要应用于视频编解码系统的性能测试,如 H.264 与 H.265 的编码对比测试。
原始视频和解码视频中提取一些特征值进行比较和评估结果。
部分参考评估需要原始视频,准确度降低
主观评价:
客观质量评估:
结合两种质量评估:
有点类似于机器学习中的标注和训练来提高预测准确度。客观评估的两个重点:
在实时音视频中我们围绕着画质、声音、流畅度/卡顿建立评价体系。根据核心指标拆分出不同的维度,如:
在实际的生产环境我们很难拿到原始视频,所以只能基于 NR 的客观评估模型进行评估,然后结合 MOS 方法主观抽样评价打造能反映用户真实体验感受的指标模型。
接下来我们就需要创建我们的数学模型和进行数据采集。
数学模型模拟人眼观看视频的主观体验,输入视频的指标数据,输出客观评分的结果。
我们这里采用差体验扣分的算法。扣分算法是指在每次遇到的差体验,按一定的规则进行扣分。
总分公式:
总分=100 分-(a1+a2+a3...+am)
a1,a2..,am 是每次连续的差体验扣分。
α1 = 100 * C * ∑( Max(β1,β2,...,βj) ) * / ∑(0,n)
有了算法模型,我们该去关心哪些指标,怎么收集指标呢?在声网的控制台水晶球中我们可以看到声网官方提供的指标信息:
概览
音频
视频
我们看到的指标有:
我们在使用声网服务时端上如何采集这些信息?以声网视频通话 SDK 为例,agora SDK 提供了数据统计事件,加入频道后,SDK 每隔 2 秒自动触发回调:
回调中包含了视频宽高、接收码率、远端视频解码器的输出帧率、远端视频渲染器的输出帧率、远端视频在网络对抗后的丢包率、远端用户在加入频道后发生视频卡顿的累计时长、远端用户在加入频道后发生视频卡顿的累计时长占视频总有效时长的百分比 、视频总有效时长、远端视频流的累计发布时长、实际发送码率、实际发送帧率、本地编码器的输出帧率、本地渲染器的输出帧率、当前编码器的目标编码码率、当前编码器的目标编码帧率、自上次统计后本地视频质量的自适应情况、视频编码码率、视频发送的帧数,累计值、弱网对抗前本地客户端到 Agora 边缘服务器的视频丢包率 (%)、本地视频采集帧率、本地采集的画质亮度级别、远端用户发送的音频流质量、音频发送端到接收端的网络延迟、接收端到网络抖动缓冲的网络延迟、统计周期内的远端音频流的丢帧率、统计周期内接收到的远端音频采样率、接收流在统计周期内的平均码率、远端用户在加入频道后发生音频卡顿的累计时长、远端用户在加入频道后发生音频卡顿的累计时长占音频总有效时长的百分比、远端用户在音频通话开始到本次回调之间的有效时长、远端音频流的累计发布时长、接收远端音频时,本地用户的主观体验质量、接收远端音频时,本地用户主观体验质量较差的原因、统计周期内,Agora 实时音频 MOS(平均主观意见分)评估方法对接收到的远端音频流的质量评分。
sdk 回调收集上传指标信息,借助大数据等数据处理平台做数据的实时计算,从而完成基于声网实时音视频能力的质量体系建设,并形成监控报警工具。
本文介绍了音视频质量体系模型理论:主观质量评估与客观质量评估,并基于声网视频通话 SDK 提供的统计能力,构建基于扣分模型的质量体系评价模型和实现方案。
领取专属 10元无门槛券
私享最新 技术干货