评价视频/图片质量的3个工具:PSNR,SSIM,VMAF和(MOS)

本文介绍了几种视频质量评估指标。PSNR用于衡量影像处理后品质,但与人眼视觉品质不完全一致;SSIM衡量两幅图像相似度,在广播等领域广泛应用;VMAF是机器学习构建的工具,能准确预测人对视频质量的主观认知;MOS用于评价压缩后话音质量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PSNR(Peak Signal Noise Rate),峰值信噪比

peak的中文意思是顶点。而ratio的意思是比率或比列的。整个意思就是到达噪音比率的顶点信号,psnr一般是用于最大值信号和背景噪音之间的一个工程项目。通常在经过影像压缩之后,输出的影像都会在某种程度与原始影像不同。为了衡量经过处理后的影像品质,我们通常会参考PSNR值来衡量某个处理程序能否令人满意。它的单位是dB。 公式自行百度。
优缺点:PSNR是最普遍,最广泛使用的评鉴画质的客观量测法,不过许多实验结果都显示,PSNR的分数无法和人眼看到的视觉品质完全一致,有可能PSNR较高者看起来反而比PSNR较低者差。这是因为人眼的视觉对于误差的敏感度并不是绝对的,其感知结果会受到许多因素的影响而产生变化。

SSIM(Structural SIMilarity),结构相似性

SSIM是一种衡量两幅图像相似度的指标。该指标首先由德州大学奥斯丁分校的图像和视频工程实验室(Laboratory for Image and Video Engineering)提出。SSIM使用的两张图像中,一张为未经压缩的无失真图像,另一张为失真后的图像。
作为结构相似性理论的实现,结构相似度指数从图像组成的角度将结构信息定义为独立于亮度、对比度的,反映场景中物体结构的属性,并将失真建模为亮度、对比度和结构三个不同因素的组合。用均值作为亮度的估计,标准差作为对比度的估计,协方差作为结构相似程度的度量。由于SSIM的出色表现,SSIM已经成为广播和有线电视中广为使用的一种衡量视频质量的方法。在超分辨,图像去模糊中都有广泛的应用。

VMAF(Video Multi-method Assessment Fusion),视频多方法评估融合

VMAF是使用机器学习构建的一套工具。它是一个准确的视频质量评估工具,能够预测人对视频质量的主观认知,同时很重要的一点是保证跨内容的一致性:例如用户在观看动画片或动作片时,用于预估用户观看的质量的评测标准应当保持一致;而为了确保此工具能够在云端进行大规模的部署,其复杂度不能过高;同样关键的是,此工具能够准确地预测在HTTP流媒体技术下的图像质量失真,包括压缩失真和缩放失真。VMAF已经被集成到ffmpeg里面了。
在最近在瑞典举办的JVET会议上公布的研究——使用包括PSNR\VMAF\MOS在内的三种不同的评测方法对比VVC和HEVC两个编解码器的性能并根据结果构建出能够反映比特率和图像质量之间关系的图线以计算出BD-rate——相同质量下的平均码率节省比例。对比VMAF和MOS也就是主观视觉质量,二者预测结果十分接近,而PSNR的评分结果偏低。也就是说如果我们使用PSNR作为评测工具那么最新一代的编解码器性能将会被低估,而如果使用主观视觉质量测试的话那么对应预测结果将偏高;但使用VMAF将妥善规避以上误差。

以上大多出自于百度百科词条和videostack
后面会有文章进一步学习VMAF的框架,这应该属于视频质量评估领域。

MOS(Mean Opinion Score),平均主观意见分

在国际标准中,统一使用MOS值来评价系统接收到的经过压缩后的话音质量。5优;4良;3尚可;2差;1劣,与俄罗斯教育体制中的5分制非常相似。如果从听清话音需要的注意力程度来衡量:5分就是无需注意就可听清;4分就是需要一点注意力才可听清;3分就是需要一定的注意力才可听清;2分就是需要相当的注意力才勉强可以听到;1分是怎么注意也难以听清。

一、命令行 psnr_ssim_analyzer.exe --height=480 --width=640 --reference_file=ref.yuv --test_file=test.yuv --results_file=test.csv 二、代码来源及修订记录: 1、该工具是根据webrtc的psnr_ssim_analyzer.cc源码修改,webrtc源码有bug,没有判断文件是否结束。导致计算结果异常。 2、优化写结果格式,可以在excel中打开,进行统计分析。 、修改webrtc代码点: bool ExtractFrameFromYuvFile(const char* i420_file_name, int width, int height, int frame_number, uint8_t* result_frame) { int frame_size = GetI420FrameSize(width, height); int64_t offset = frame_number * frame_size; // Calculate offset for the frame. bool errors = false; FILE* input_file = fopen(i420_file_name, "rb"); if (input_file == NULL) { fprintf(stderr, "Couldn't open input file for reading: %s\n", i420_file_name); return false; } fseek (input_file, 0, SEEK_END); int64_t file_size = ftell(input_file); if (offset > file_size) { fprintf(stderr, "the end %s frame_number:%d frame_size:%d file_size:%lld offset:%lld\n", i420_file_name, frame_number, frame_size, file_size, offset); return false; } // Change stream pointer to new offset. fseek(input_file, offset, SEEK_SET); size_t bytes_read = fread(result_frame, 1, frame_size, input_file); if (bytes_read != static_cast(frame_size) && ferror(input_file)) { fprintf(stdout, "Error while reading frame no %d from file %s\n", frame_number, i420_file_name); errors = true; } fclose(input_file); return !errors; }
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值