前言
B 站在为用户提供优质视频内容的同时,还要保障用户的观看体验,而视频画质是影响用户观看体验的重要因素。为了保证用户观看到的视频画质清晰,B 站建设了画质监控系统,并自研了很多视频图像分析和处理算法,但不论是研发算法,还是量化用户观看体验,都绕不开同一个问题:“如何评价视频的画质?”。视频质量评价(Video Quality Assessment,VQA)是视频图像应用的终极问题之一。
图1:VQA 是视频图像应用的终极问题之一
为了对视频质量进行准确的评价,我们研发了一套基于深度学习的无参考视频画质评价体系,如图 2,其中包括哔哩哔哩无参视频质量评价模型(BILIVQA)的设计、训练与工程化,以及在业务中的应用方式。不仅解决了 VQA 准确率的问题,更重要的是提出了一整套应用模式,使 VQA 能够满足丰富多变的业务需求,并支持基于 VQA 的应用长期稳定地运转。
图2:基于深度学习的无参视频画质评价体系
一、视频画质评价相关背景
视频画质评价(Video Quality Assessment,VQA)是一种衡量视频内容质量的方法,旨在评估和量化数字视频的视觉和感知质量,它的目标是判断人们在观看视频时所感受到的质量,包括图像的清晰度、色彩还原、运动流畅性等方面。对视频网站来说,画质十分重要,是所有的业务关注的重要指标之一。用户在视频网站上观看到的视频,都经历了三个步骤:1)生产端:视频作者在完成视频的拍摄、剪辑后,将原片上传网站;2)云端:通常会对视频稿件进行转码压缩。这是因为用户上传的原片码率较高,若不经过转码压缩,用户可能无法流畅地观看,同时视频网站将会产生巨额带宽成本;3)消费端:指用户通过手机端或网页端直接观看视频的过程。
如图 1 所示,对于视频处理和传输系统,VQA 的作用贯穿始终:
1)生产端:这一环节 VQA 可以对自动对视频稿件进行画质检测;
2)云端:B 站自研了很多视频图像处理算法用于提升视频质量,如 SDR 视频转 HDR 视频、视频去噪、去抖动、去块效应、时域插帧、画质增强、超分辨率等算法,VQA 能为这些视频图像处理提供优化方向,提高视频的主观效果。在对视频进行转码时,可以采用基于 VQA 的质量可控的编码方法,保证编码后的视频具有稳定的画质体验。
3)消费端:这一环节与用户体验(Quality Of Experience,QoE)直接相关,我们需要 VQA 来实时监控用户观看到的视频画质,也可以对一些画质极好的视频进行推荐加权。
总之,对于视频网站而言,视频图像分析、处理、编码、画质监控、用户体验分析、视频内容推荐等都与 VQA 息息相关。毫无疑问,VQA 是视频网站关注的 “终极问题”之一,大多数的视频公司都在 VQA 技术上有着不遗余力的投入,如 Netflix、Youtube、抖音、淘宝、快手、腾讯等。
1.1 有参考视频画质评价(Reference VQA)
自数字图像技术诞生起,VQA 就已经存在,最初使用的是一些传统画质评价指标,通常需要参考视频作为比较对象,通过量化目标视频和参考视频之间的画质差异,来评价目标视频的画质,这类方法统称为有参 VQA。其中,参考视频通常是原始未失真的版本或者是已知质量的视频。峰值信噪比(Peak Signal-to-Noise Ratio, PSNR)是目前最常用的有参客观质量评价指标,通常用来评价编码画质失真,原理是计算两个信号之间的相似程度,当其中一个信号是无失真原片,另一个信号是失真视频,二者计算得到的 PSNR 值就可以表示失真视频相对于原片的失真程度。
PSNR 计算复杂度小,实现速度快,但是受局部像素点的影响大,没有考虑到视频的结构信息,与人眼主观感受的相关性较低;结构相似性指数(Structural Similarity Index Measure, SSIM)试图模拟从场景图像中提取结构(Structure)信息的过程,然后同时考虑结构信息与亮度(Luminance)、对比度(Contrast)来衡量两个图像或视频之间的结构相似性,但该评价方式与人眼主观评价画质还是存在一定差异,真实的主观评价还会受人类视觉系统的一些重要的心理、生理因素的影响,如视频流畅度、视频包含的信息量、是否符合美学标准等;
视频多方法综合评价(Video Multi-Method Assessment Fusion, VMAF)是 Netflix 提出的一个客观有参画质评价指标,通过 3 个基础指标同时提取空间域(同一帧画面内)图像特征和时间域(连续多帧画面间)相关性特征,其中 Visual Quality Fidelity(VIF)和 Detail Loss Measure(DLM)属于空域特征,Temporal Information(TI)属于时域特征,最终使用机器学习算法(SVM)将这 3 个基础指标融合成最终的画质分数。VMAF 与主观感受相关性很高,已经成为了目前视频行业的事实画质标准之一,在编码应用中具有不可替代的作用。
1.2 无参考视频画质评价
(No-Reference VQA)
然而在更广泛的业务场景中,待评价视频的原片可能是无法获取的,没有参考视频,也就意味着无法使用有参 VQA 方法,因此无需参考视频即可评价视频画质的无参 VQA 是更符合业务场景的一种 VQA 方法。最初的无参 VQA 方法如 BRISQUE、VIDEVAL 等,是通过手工设计特征,然后用 SVM 等机器学习模型预测视频主观质量,在这个过程中,将人工标注的 MOS 分数作为监督,把画质评价问题转化为一个回归问题。随着深度学习的快速发展,基于神经网络的无参 VQA 算法逐渐成为主流,原因在于神经网络能自动且高效地提取特征,并将特征学习融入到模型训练的过程中,且深度学习引入了深度神经网络,具有多个隐藏层,能够学习视频中更抽象、更高级别的特征。
二、BILIVQA 算法设计
学术界和工业界不乏开源的 VQA 模型,但开源的模型不能直接用于 B 站的业务场景,主要原因在于:不同模型在训练时所用的数据集不同,有些数据集中的视频是自然场景下的视频,训练出来的模型对自然类型的失真更敏感,如模糊、抖动、雾化、过曝等;有些数据集由编码视频组成,训练出来的模型对编码失真更敏感,如块效应、振铃效应等。而用户上传 B 站的视频种类繁多,如下图 3,包括 PGC(Professionally-generated Content,专业生产内容)、UGC(User-generated Content,用户生产内容)、横屏、竖屏、鬼畜、二创、特效贴纸等诸多场景,涵盖多种失真类型,现有的公共数据集训练出来的模型无法满足业务需求。
图3:上传 B 站的视频种类繁多且包含多种失真类型
更具体地,视频画质评价模型,根本上评价的是画质的相对关系,设想视频画质评价模型是一个完全准确和公正的受试者,如果他预先在数据集 A 上学习打分标准,理论上对一个新视频,他打出的分数是该视频在数据集 A 中的画质排名的一个映射值。但是如果让他评价的视频与数据集 A 的分布有差异,那他打出的分数在数据集 A 中相对位置将不再准确,这就是我们常说的“评价不准”,即开源的模型在 B 站视频上表现出很弱的泛化性。
为此,我们自研了 BILIVQA 算法,并建设了一个 UGC 视频数据集用于训练该模型。
2.1 BILIVQA 模型设计
2.1.1 采样策略
与图片画质评价不同,人眼对视频画质的评价是一个动态过程,除了关注静态帧不同空间位置的画质特性,还会受到视频帧间内容相关性的影响,即同样的画面在连续帧之间的画质变化情况,我们把前者定义为空域信息,后者定义为时域信息。我们假设视频的时域信息和空域信息对 VQA 模型同样重要,从而设计了一种采样策略,同时对空域关键帧和时域切片帧进行采样,并分别提取这两类信息的特征用于训练 BILIVQA 模型。具体的采样策略如图 4:我们按照某种分片规则,将视频切分成 N 个切片(Clips),对每个视频切片抽取第 1 帧作为空域关键帧(Spatial Frames),抽取连续 32 帧作为时域切片帧(Motion Frames)。
VQA 对每个切片推理画质分数,取所有切片分数的平均值,得到整个视频的画质分数。值得一提的是,在业务场景中我们发现更合理的视频分片规则应该基于场景分割(Scene Cut),即对每个场景的视频切片出一个分数,可以对视频进行更精确的评价。