AICon 上海站|90%日程已就绪,解锁Al未来! 了解详情
写点什么

音视频质量评估绿皮书

  • 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:234177

评论

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

解决事务隔离产生问题的MVCC

做梦都在改BUG

一站式指标平台 Kyligence Zen 功能详解

Kyligence

数据分析 指标平台

三维设计新帮手|Blender怎么入门?

Finovy Cloud

blender 3D软件

selenium源码通读·4 |webdriver/common分析

Python 源码 测试 自动化测试 selenium

Nautilus Chain 上首个 DEX PoseiSwap 通证经济学模型解析

股市老人

OpenTelemetry 正在改变我们跟踪和设计应用的方式

NGINX开源社区

nginx 云原生

软件测试/测试开发丨Pytest 结合 Allure 生成测试报告

测试人

软件测试 自动化测试 测试开发 pytest Allure

Spring Cloud微服务网关Zuul过滤链和整合OAuth2+JWT入门实战

做梦都在改BUG

Java Spring Cloud OAuth2 JWT Zuul

Kubernetes 多集群网络方案系列 1 -- Submariner 介绍

Se7en

火山引擎数智平台协助洞察美图类APP新增长 付费用户转化超过124%

字节跳动数据平台

大数据 增长 产品增长 企业号 4 月 PK 榜 美图

商汤版ChatGPT「商量」来了!开放API,基于千亿参数大模型,体验实录在此

Openlab_cosmoplat

开源社区 ChatGPT

软件测试如何自我提升

FunTester

深度学习基础入门篇[四]:激活函数介绍:tanh、sigmoid、ReLU、PReLU、ELU、softplus、softmax、swish等

汀丶人工智能

人工智能 机器学习 深度学习 激活函数

博睿学院 | 本周四:OpenTelemetry技术在数据标准化中应用实践

博睿数据

可观测性 智能运维 博睿数据 前沿技术 博睿学院

阿里独家「操作系统和计算机网络」,GitHub标星超百万

做梦都在改BUG

Java 程序员 计算机网络 操作系统

一次goroutine 泄漏排查案例

蓝胖子的编程梦

golang 性能 协程 pprof 线上故障

PC GWP-ASan方案原理 | 堆破坏问题排查实践

字节跳动终端技术

问题排查 PC

GitHub数据库榜单第一:Redis核心原理实践

做梦都在改BUG

Java 数据库 redis 缓存

深度剖析Redis九种数据结构实现原理

做梦都在改BUG

Java 数据库 redis 缓存

从零学习SDK(5)SDK文档的学习和参考

MobTech袤博科技

数据开发提效有秘诀!离线开发BatchWorks 六大典型场景拆解

袋鼠云数栈

大数据 离线开发

阿里内部热捧“Spring全线笔记”,不止是全家桶,太完整了

Java你猿哥

spring Spring Cloud Spring Boot Spring MVC

selenium源码通读·5 |webdriver/common/action_chains.py-ActionChains类分析

Python 源码 测试 自动化测试 selenium

重磅官宣,OpenHarmony开发者大会来了!

OpenHarmony开发者

OpenHarmony

Netty服务开发及性能优化

做梦都在改BUG

Java Netty

火山引擎DataLeap推出全链路智能监控报警平台

字节跳动数据平台

数据中台 SLA 数据监控 企业号 4 月 PK 榜

看了我常用的IDEA插件,同事也开始悄悄安装了

Java你猿哥

Java 程序员 ssm IDEA 架构师

手把手教你,从零开始搭建Spring Cloud Alibaba!这份笔记太牛了

Java你猿哥

spring Spring Cloud ssm 架构师

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