写点什么

音视频质量评估绿皮书

  • 2019-08-26
  • 本文字数:1552 字

    阅读完需:约 5 分钟

音视频质量评估绿皮书

网络技术的升级使得市场上音视频类的产品形态越来越多,直播、短视频你方唱罢我登场。公司内也有多个专注于音视频技术、音视频产品服务的团队。音视频产品需要关注哪些质量控制点,如何评估音视频质量,笔者就在音视频实验室的几年工作经验进行介绍。欢迎相关团队同学互相探讨,共同成长。

不同场景下关注评估重点不同

音视频产品的评估涵盖多个维度,不同场景下的维度取舍存在较大的差别。目前市场上主流的音视频产品可以按应用场景分为如下几类(还有些小众产品,如会议类、投屏类没有列入在内)



特别说明,上述的划分也不是绝对的,有些会有交集,如直播里很多产品都有互动直播的能力,这一部分会与实时通话的场景相近。


对于这几类场景,从质量角度,虽然很多指标是通用的,但侧重点会有所不同。实时场景关注 E2E 传输质量(如时延)和信息可懂性,直播场景更关注主播上行网络抗性能力和观众体验(卡顿、音画是否同步),短视频会更多关注画质与用户体验,而长视频则会更关注转码质量及效率。这些的背后与产品的定位及所采用的技术密切相关。

音视频产品的质量关注点

通常音视频数据的加工流程可以概括为下图:



每个环节都有可能引入质量的损失,导致最终信息接收者观看到的内容变差(上面这种是流水线式处理,长短视频场景下数据生产和消费的环节是分开的,而且其中会有离线转码处理的环节,如多分辨率,HDR 等)。


我们可以针对每个环节进行测试,但产品质量更多的是这些环节的综合过程,所以从观众的角度来进行考虑效率会更高一些。以下罗列一些我们重点关注的质量维度:



按照现在比较流行的划分方法,这里按照用户是否可直接感知分为 QoE(Quality of Experience)与 Qos(Quality of Service)两个大的维度。


对于长视频产品,由于视频源一般为专业设备所拍摄,所以原始质量相对是非常高的,用户的槽点会集中在视频是否流畅,画质是否有瑕疵(花屏、马赛克),画质是否稳定(想像看视频时 480p 和 1080p 来回反复切换的状态);与长视频相比,由于视频内容多为用户普通终端拍摄,原始视频质量就会参差不齐了,需要借助算法提升质量,所以除了长视频的关注点外还需要关注清晰度等画质细节指标(特别说明一个常见的误区,清晰度不能等同于分辨率,高分辨率图像的清晰度未必比低分辨率高);互动直播和实时通话这种对时延敏感的产品,传输技术上一般是采用 UDP 或基于 UDP(如 Quic)的协议来进行,就容易产生音轨与视频轨不一致的问题,音画同步在这类场景下也一个很重要的质量指标。除此之外,音频下的杂音、破音、丢字、回声也都会严重影响用户体验的,一般产品都会进行 3A 处理模块,那么处理效果怎么样,也需要进行验证评估。(补充说明一下,音视频的 QoE 实际是一个相对复杂的范畴,我们只能从一些客观技术指标上进行评判。不同人群对于内容的喜好也会对 QoE 产生较大影响,这就更偏重于心理学问题了。)


除了用户体验之外,由于音视频的流量消耗、存储消耗与高 CPU 消耗的特点也决定我们要对这些通用性能指标进行关注。

音视频质量评估方法

音视频质量的测试,以开发角度来说,可以采取 LOG 埋点、虚拟机的方式来收集数据。但站在用户的角度,在集成测试阶段并不推崇这种方式,因为音视频业务对硬件的依赖可能会导致软件理论结果与产品现网实际表现存在较大差异。E2E 的验证更能有效说明产品质量。为了追求场景的无干扰性、模拟准确性、指标测量准确性,一致性。音视频实验室建立起一套相对完整的音视频测试能力体系。这些包括专业化实验室与商用设备。



也包括我们自研的一些方法,如《音画同步测试方法》,《视频卡顿测试方法》等。我这里对相关的指标的评估技术做一个简单的梳理:



作者介绍:


赵珺,腾讯音视频实验室高级工程师,曾参与 QQ 音视频通话、腾讯互动 SDK 等多个项目,在音视频产品质量评价体系建立和效率工程方面具有丰富经验。


2019-08-26 20:233924

评论

发布
暂无评论
发现更多内容

融云清空历史消息 Android 端

融云 RongCloud

sdk

markdown如何插入图片、音频、视频?

xiezhr

markdown markdown语法 音频

php的一些漏洞梳理

依旧廖凯

28天写作 3月日更

融云即时通讯SDK集成 -- 通知检查

融云 RongCloud

即时通讯

LeetCode题解:91. 解码方法,动态规划(优化),JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

5 分钟部署一个 OIDC 服务并对接 nightingale

冯骐

CAS Nightingale 认证授权 OIDC Apereo

Nginx配置静态文件服务从入门到精通

happlyfox

28天写作 3月日更

假期无聊冰河开发了一款国民级游戏!

冰河

Java 游戏

融云 IMkit 拦截或监听所有发送消息

融云 RongCloud

sdk

融云 IM SDK 集成 --- 刷新会话界面和会话列表界面

融云 RongCloud

IM

短网址服务设计整理

程序员架构进阶

架构 设计实践 28天写作 实操案例 3月日更

容器or虚拟机?

xcbeyond

Docker 容器 3月日更 专业术语

诊所数字化:医疗机构常见的系统整理

boshi

医院 医疗 七日更

金三银四跳槽阿里必备:分布式/高并发/Redis,不看我真的怕你后悔

比伯

Java 编程 架构 面试 程序人生

一卷河图赋太虚:HMS Core CG kit与移动游戏新可能

脑极体

像这样操作 Python 列表,能让你的代码更优雅 | pythonic 小技巧

AlwaysBeta

Python

算法攻关-climbing-stairs(O(n))_70

小诚信驿站

刘晓成 小诚信驿站 28天写作 算法攻关

大作业

LouisN

京东数科面试真题:常见的 IO 模型有哪些?Java 中的 BIO、NIO、AIO 有啥区别?

Java 架构 面试

项目延期了,怎么办?

石云升

项目管理 28天写作 职场经验 管理经验 3月日更

美丽的数学学习笔记(1)

方勇(gopher)

产品经理训练营 - 大作业

joelhy

产品经理训练营

产品训练营 第四周作业

万顷湖天碧

yum安装Nginx全流程指南

happlyfox

28天写作 3月日更

Wireshark 数据包分析学习笔记 Day13

穿过生命散发芬芳

Wireshark 数据包分析 3月日更

Hamcrest

insight

单元测试 3月日更

阿里大师口述:让你可以在简历上写精通SpringBoot

编程 架构 springboot

唠一唠融云的消息扩展功能

融云 RongCloud

sdk

融云即时通讯SDK集成 -- 定制UI(二) ——添加自定义表情库

融云 RongCloud

Android 端如何添加自定义表情

融云 RongCloud

IM

算命、运气和其他「Day 24」

道伟

28天写作

音视频质量评估绿皮书_大前端_赵珺_InfoQ精选文章