音频质量评估-2
音频质量评估-1:之前主要学习了音视频的编码和解码原理,和测试音频质量的方法。接下来继续学习下当前 短视频 领域的 视频质量测试方法。
算法了解
可以参考python的 scikit-image这个库。里面有很很多算法。
- PSNR
用于表示信号的最大可能功率与影响信号表示
的保真度的腐蚀噪声功率之间的比率。由于许多信号具有非常宽的动态范围,PSNR通常以对数分贝刻度表示。 是一个全参考算法
- SSIM Structural SIMilarity
因为视频就是很多帧图片合成的,然后通过编码压缩后的。因此测试视频质量 在测试图片的质量就很重要了。
测量两个图像之间的相似性的方法
。SSIM指数可以看作是对被比较图像之一的质量衡量标准
,前提是其他图像被视为质量完美。
# Based on: https://github.com/mostafaGwely/Structural-Similarity-Index-SSIM-
# pip3 install scikit-image opencv-python imutils
from skimage.measure import compare_ssim
import imutils
import cv2
# 3. Load the two input images
imageA = cv2.imread("1.png")
imageB = cv2.imread("2.png")
# 4. Convert the images to grayscale
grayA = cv2.cvtColor(imageA, cv2.COLOR_BGR2GRAY)
grayB = cv2.cvtColor(imageB, cv2.COLOR_BGR2GRAY)
# 5. Compute the Structural Similarity Index (SSIM) between the two
# images, ensuring that the difference image is returned
(score, diff) = compare_ssim(grayA, grayB, full=True)
diff = (diff * 255).astype("uint8")
# 6. You can print only the score if you want
print("SSIM: {}".format(score))
视频质量
基础测试指标
一是视频流畅度相关的参数,比如说fps, 视频帧抖动jitter,导入延时,端对端延时等,这方面主要影响因子是网络因数,上下行带宽,网络拥塞等,这些可以通过产品开发接口或者日志信息等获取相关的参数信息,
- FPS 帧数
- 抖动
- 延时
- e2e 延时
- 网络因子 ---
带宽, 网络拥塞
除此之外呢,就是对视频画面也就是视频帧观感的评估
, 业界有主观和客观的。
主观就是 每个人有每个人的看法。 采用平均意见分 MOS meanopinion score
- 观看距离
- 观测环境
- 测试序列的选择
- 序列的显示时间间隔等
客观就是根据每一帧的质量来量化, 和audio一样,分为全参考和无参考。概念都和差不多。
- 有参考评估,就是依赖原始视频和待评测视频进行对比,目前比较熟知的就是PSNR, SSIM VIF VMAF PEVQ等
- 无参考方法,在判断视频质量时不需要来自原始参考视频的任何信息,通过对
失真视频空域和频域
的处理分析来提取失真视频的特征,或者基于视频像素的质量模型等来得到视频质量。这种评估标准适合与线上无原始参考视频序列的无线和IP视频业务,或者输入和输出差异化的模型,比如说视频增强,视频合并等场景
测试框架
目前知晓的有2个,一个 QoSTestFramework,一个是Netflix的 vmaf
QoSTestFramework(这个里面集成了VMAF)
- 丰富的指标 ---用了 FR和NR 视频质量测试的指标 比如PSNR等
- 模块化 --- 易于扩展
- 可视化 -- 所有结果都可视化
框架图
- Qos server 处理来自web的请求
- High modular and scalable 预处理
- Analysis module 分析
- Web Application -- 触发测试任务和可视化结果显示
- Video transmission adapter module -- 用于不同实时视频系统的适配
VMAF Video Multi-Method Assessment Fusion
VMAF 是 Netflix 开发的感知视频质量评估算法。VMAF 开发工具包 (VDK) 是一个包含 VMAF 算法实现的软件包,以及一组允许用户训练和测试自定义 VMAF 模型的工具。
- VMAF python 库 - 提供完整的功能,包括运行基本的 VMAF 命令行、在一批视频文件上运行 VMAF、在视频数据集上训练和测试 VMAF 模型以及可视化工具等。
- vmafossexec - a C++ executable
流媒体性能测试
https://github.com/winlinvip/srs-bench 服务器负载测试工具SB
read more
作者:叉叉敌
博客:https://chasays.github.io/
微信公众号:Chasays, 欢迎关注一起吹牛逼,也可以加个人微信号「xxd_0225」互吹。
本博客大多为学习笔记或读书笔记,本文如对您有帮助,还请多推荐下此文,如有错误欢迎指正,相互学习,共同进步。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现