音视频测试 视频质量评估系列二 - 有参考评估算法系列

yanbin · 2019年08月05日 · 最后由 www 回复于 2021年08月10日 · 5721 次阅读

本文主要介绍客观评估的有参考评估算法有哪些
有参考客观评估算法有哪些
从之前的文章中我们知道视频质量量化必须用客观评估,也就是依赖各种算法来评估,视频质量客观评估就是量化一段视频通过视频传输/处理系统时画面质量变化(通常是下降)程度的方法。客观视频评估技术是一些与主观质量评估结果相近的数学模型,但是它们通常由计算机按照一定的标准与指标自动完成。评价的方法大致是将原视频(高品质、一般不被压缩)与处理后的视频进行分类对比。分类对比分为三种:全参考(FR)、部分参考(RR)、无参考(NR)。全参考比较处理前后的两段视频每个像素的差别,部分参考提取两段视频的一些特性,并依此给予它们评分。以上两种方法通常在原视频可用时使用,如在有限的带宽下。无参考则试图在没有任何原视频的参考下进行评估,比如说视频增强,视频合并,VR ,线上直播等场景。

当然,最传统的方法是计算两段视频信噪比(SNR)与峰值信噪比(PSNR)的差异。 PSNR 是使用最广泛的客观视频质量的度量方法,但由于人类视觉系统的非线性,因此 PSNR 值与人眼感受到的视频质量仍有较大出入。近来一些更复杂、更精确的一些指标被指定,比如 UQI、VQM、PEVQ、结构相似性(SSIM)、VQuad-HD 与 CZD。最近几年 Netflix 也开源了自己的评估算法 VMAF,

一个客观的视频质量指标的表现由计算客观分数与主观(en:Subjective_video_quality)测试分数之间的相关性得出。后者被称为平均意见得分(en:Mean_Opinion_Score,MOS)。最常用的相关系数有:[相关 | 线性相关系数]、斯皮尔曼等级相关系数、峰度、Kappa 系数与离群率。

通用算法介绍
下面我们介绍几个通用的算法,PSNR , SSIMVMAF
PSNR 峰值信噪比(英语:Peak signal-to-noise ratio,常缩写为 PSNR)
峰值信噪比经常用作图像压缩等领域中信号重建质量的测量方法,它常简单地通过均方误差(MSE)进行定义。两个 m×n 单色图像 I 和 K,如果一个为另外一个的噪声近似,那么它们的的均方误差定义为:

峰值信噪比定义为:

其中,MAXI 是表示图像点颜色的最大数值,如果每个采样点用 8 位表示,那么就是 255。
对于每点有 RGB 三个值的彩色图像来说峰值信噪比的定义类似,只是均方误差是所有方差之和除以图像尺寸再除以 3。
图像压缩中典型的峰值信噪比值在 30 到 40dB 之间,愈高愈好。

SSIM 结构相似性指标(英文:structural similarity index,SSIM index)
SSIM 是一种用以衡量两张图像相似程度的指标。当两张图像其中一张为无失真图像,另一张为失真后的图像,二者的结构相似性可以看成是失真图像的图像品质指标。为了改进传统的指标,研究人员正朝着自然场景统计(NSS)模型的方向发展,开发出越来越复杂的算法。在此之前,自然图像被理解为捕获的真实图像,其包括生物体或人造物体,而不是 3D 动画图形,特别是矢量图形。传统质量指标的扩展名称就是结构相似性指数指标(SSIM)。 FR 客观指标包含模型中的分布,协方差,方差等统计模型。除此之外,可以扩展来自等式的公式以将亮度比较结合在红色,绿色(RGB)颜色属性内。通常是使用 PSNR 和 SSIM 相结合来判断图像的质量。

给定两个信號 x ,y 两者的结构相似性定义为:

l(x,y) 表示对比 x,y 的亮度,x(x,y) 表示 x,y 的对比度,s(x,y) 表示 x,y 的结构性,如果对比两张完全一样的长宽的图像,那么

最终可以得出 SSIM 的计算公式是

VMAF--Video Multimethod Assessment Fusion
随着感知 HVS 概念变得实用以提高 Objective FR VQA 的准确性,从视频中提取具有不同特征的损伤解耦方法以进行不同的评估。从其他研究人员的分类中也称为自然视觉特征,这些概念加强了模糊和阻挡测量,此外还增加了视觉特征的图像分割和边缘,平面和纹理的边缘检测。信号被分离出不同的失真,以不同的方式与感知 HVS 相关联。有许多感知 HVS 模型将指标分类为感知视觉质量指标(PVQM),以模拟人类视觉系统进入统计建模。通过实现诸如奇异值分解(SVD)和支持向量回归(SVR)的机器学习,存在模仿感知 HVS 的另一趋势。
VMAF 使用现有的图像质量指标和其他功能来预测视频质量:

视觉信息保真度(VIF):考虑四种不同空间尺度的信息保真度损失
细节损失度量(DLM):[6] 测量细节的丢失和损害观众注意力的损伤
平均共位像素差(MCPD):测量亮度分量上的帧之间的时间差
抗噪声信噪比(AN-SNR)
使用基于 SVM 的回归来融合上述特征,以在每个视频帧的 0-100 范围内提供单个输出分数,其中 100 分表示与参考视频的质量相同。然后使用算术平均值在整个视频序列上汇集这些分数以提供总体差异平均意见分数(DMOS)。

如何使用上述有参考评估
有参考视频评估算法通常建立在成熟的图像对比算法上,一段视频序列可以切割成一系列的视频帧,每一帧就是一张图片,视频质量可以量化成每一帧图片质量的趋势图,所以可以通过制作完全对标的待对比视频序列和需比较的视频序列,通过 openCV/ffmpeg 来计算 SSIM /PSNR 的值
VMAF 也开源了他们的代码https://github.com/Netflix/vmaf, 如需使用要先在电脑上按照官网步骤安装起来。
欢迎使用
https://github.com/open-webrtc-toolkit/QoSTestFramework/ 来实现三种算法的计算和可视化显示,比如说下图的多路视频在不同情况下的 PSNR 的对比值可视化结果

Reference:
https://en.wikipedia.org/wiki/Video_quality
Video quality assessment: A review of full-referenced, reduced-referenced and no-referenced methods
https://ieeexplore.ieee.org/document/8064957
https://en.wikipedia.org/wiki/Video_Multimethod_Assessment_Fusion

共收到 6 条回复 时间 点赞

是张琰彬老师的帖子吧?支持一个

嗯嗯,抽空把这个系列更新完😎

ffmpeg 算 psnr,ssim 都很方便,openCV 是要自己实现吗?

ffmpeg -i main.mp4 -i ref.mp4 -lavfi psnr="stats_file=psnr.log" -f null -
ffmpeg -i main.mp4 -i ref.mp4 -lavfi ssim="stats_file=ssim.log" -f null -

上周想搭 QoSTestFramework 没弄出来,各种报错😭 😭

黑水 回复

是什么错误呢,你可以在社区提交问题,openCV 里面有类似的 sample 代码实现,自己适配修改就可以 我们的代码实现里面有

黑水 回复

你还可以在微信群里面提问 我们看到了会回复的

QoSTestFramework 有中文教程吗?

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册