视频质量评价PSNR的两种计算方法

news2025/1/16 7:43:19

PSNR(峰值信噪比)
峰值信号的能量与噪声的平均能量之比,本质的是比较两张图像像素值差异,用途较广,目前仍作为对照其他指标的基线。PSNR的单位是dB,数值越大表示失真越小。
在这里插入图片描述
m×n单色图像 I 和K, I 为一无噪声的原始图像,K为 I 的噪声近似(例:I 为未压缩的原始图像,K为 I 经过压缩后的图像)。
在这里插入图片描述
其中,MAX是表示图像点颜色的最大数值,如果每个采样点用 8 位表示(例:影像处理),那么就是 255。
首先看下单个分量的PSNR两种计算方式:
1、PSNR avg.MSE:当聚合整个视频的逐帧分数时,首先计算MSE的算术平均值,然后取对数。
在这里插入图片描述
2、PSNR avg.log:当聚合整个视频的逐帧分数时,首先计算每帧的PSNR,然后计算所有视频帧的算术平均值。
在这里插入图片描述
这里有个问题,可以思考下,这2种计算PSNR的方式哪种合理,有如下论点:
相较于PSNR avg.MSE,PSNR avg.log具有一定不合理性,其太过“照顾”质量更高的帧,比如PSNR=99dB和PSNR=50dB的单帧,往往在主观上看不出区别,但通过PSNR avg.log的公式计算后,PSNR=99dB的一帧就会大大拉高最终平均分,在特定序列上容易被trick。
事实上,人眼对于质量越差的帧反而越敏感,所谓一锅老鼠屎坏了一锅粥,当观看视频时突然闪现一帧质量差的画面,人眼会对这一帧记忆更为深刻。相较于PSNR avg.log,PSNR avg.MSE就更加关照低质量帧,从这点上可能更符合主观感受。

上述两种方式实现代码如下:
1、将Y,U,V分量的SSE值都算出来相加,取整个序列的SSE平均值后,获取整个序列的PSNR。
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
2、将每帧的Y,U,V分量的PSNR值都算出来,取三个分量的加权平均值,获取一帧的PSNR,最终求取整个序列的算术平均值:

在这里插入图片描述
在这里插入图片描述
x264/x265软件采取的就是这种方式。
总结:

不同工具算出来的值,取值范用不同,但是无论什么工具,在PSNR小于50db以内,值还是基本一致的,PSNR值和视频质量对应关系如下:
图像与影像压缩中典型的峰值信噪比值在30dB到50dB之间,愈高愈好;
PSNR接近50dB,代表压缩后的图像仅有些许非常小的误差;
PSNR大于30dB,人眼很难查觉压缩后和原始影像的差异;
PSNR介于20dB到30dB之间,人眼就可以察觉出图像的差异;
PSNR介于10dB到20dB之间,人眼还是可以用肉眼看出这个图像原始的结构,目直观上会判断两张图像不存在很大的差异;
PSNR低于10dB,人类很难用肉眼去判断两个图像是否为相同,一个图像是否为另一个图像的压缩结果。
参考:https://blog.51cto.com/u_16213665/7983883

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1628531.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringCloud系列(17)--将服务消费者Consumer注册进Zookeeper

前言:在上一章节中我们把服务提供者Provider注册进了Zookeeper,而本章节则是关于如何将服务消费者Consumer注册进Zookeeper 1、再次创建一个服务提供者模块,命名为consumerzk-order80 (1)在父工程下新建模块 (2)选择模块的项目类型为Maven并…

WIFI加密方式对无线速率的影响

文章目录 无线加密三种选择:WEP、WPA和WPA2测试平台和测试方法非加密和WEP加密测试 结果差别巨大非加密条件下 300M无线路由实测WEP加密条件下 300M无线路由实测 TKIP加密算法:WPA与WPA2成绩低迷WPA加密(TKIP加密算法)条件下 300M…

TypeScript入门第一天,所有类型+基础用法+接口使用

表示逻辑值&#xff1a;true 和 false。在JavaScript和TypeScript里叫做boolean | | 数组类型 | 无 | 声明变量为数组。 // 在元素类型后面加上[] let arr: number[] [1, 2]; // 或者使用数组泛型&#xff0c;Array<元素类型> let arr: Array [1, 2]; | | 元组…

大数据—数据采集DataX

一、DataX介绍 官网&#xff1a; DataX/introduction.md at master alibaba/DataX GitHub DataX 是阿里云 DataWorks数据集成 的开源版本&#xff0c;在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。 DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、…

翻译《The Old New Thing》 - Why .shared sections are a security hole

Why .shared sections are a security hole - The Old New Thing (microsoft.com)https://devblogs.microsoft.com/oldnewthing/20040804-00/?p38253 Raymond Chen 2004年08月04日 许多人会推荐使用共享数据节作为在应用程序的多个实例之间共享数据的一种方式。这听起来是个好…

立即刷新导致请求的response没有来得及加载造成的this request has no response data available

1、前端递归调用后端接口 const startProgress () > {timer.value setInterval(() > {if (progress.value < 100) {time.value--;progress.value Math.ceil(100 / wait_time.value);} else {clearInterval(timer.value);progress.value 0;timer.value null;time.…

pytest-asyncio:协程异步测试案例

简介&#xff1a;pytest-asyncio是一个pytest插件。它便于测试使用异步库的代码。具体来说&#xff0c;pytest-asyncio提供了对作为测试函数的协同程序的支持。这允许用户在测试中等待代码。 历史攻略&#xff1a; asyncio并发访问websocket Python&#xff1a;协程 - 快速创…

vscode安装中文插件不生效

在 escode 中&#xff0c;安装了上面的插件&#xff0c;但是界面依然显示的是英文。 解决方案 使用组合键 ctrshiftp&#xff0c;输入 Configure Display Language&#xff0c; 选中 zh-cn&#xff0c;重启

机器视觉3D视觉检测系统的优势

随着科技的飞速发展&#xff0c;机器视觉技术已经成为现代工业生产中不可或缺的一部分。特别是3D视觉检测系统&#xff0c;其优势日益凸显&#xff0c;为各行业的质量控制和生产自动化提供了强大的支持。本文将探讨机器视觉3D视觉检测系统的优势&#xff0c;并分析其在实际应用…

C语言入门课程学习笔记-6

C语言入门课程学习笔记-6 第27课 - 字符数组与字符串&#xff08;上&#xff09;第28课 - 字符数组与字符串&#xff08;下&#xff09;第29课 - 数组专题练习&#xff08;上&#xff09;第30课 - 数组专题练习&#xff08;下&#xff09; 本文学习自狄泰软件学院 唐佐林老师的…

【图像压缩算法】霍夫曼编码

1. 研究背景 霍夫曼在1952年提出一种构造最佳码的方法&#xff0c;称之为霍夫曼编码&#xff08;Huffman)。霍夫曼编码是一种无损的统计编码方法&#xff0c;利用信息符号概率分布特性的改变字长进行编码。霍夫曼编码适用于多元独立信源&#xff0c;对于多元独立信源来说它是最…

淘宝API接口大全:淘宝app商品详情数据接口

淘宝APP商品详情数据接口是用于获取商品详情信息的专用API&#xff0c;适用于移动应用开发者使用。 要使用这个接口&#xff0c;你需要遵循以下步骤&#xff1a; 了解和申请API权限&#xff1a;在使用淘宝API接口之前&#xff0c;需要先前往淘宝开放平台了解相关的API文档&am…

Git泄露和hg泄露原理理解和题目实操

一.Git泄露 1.简介 Git是一个开源的分布式版本控制系统&#xff0c;它可以实现有效控制应用版本&#xff0c;但是在一旦在代码发布的时候&#xff0c;存在不规范的操作及配置&#xff0c;就很可能将源代码泄露出去。那么&#xff0c;一旦攻击者发现这个问题之后&#xff0c;就…

速卖通自养号测评:如何规避安全风险?

对于初涉电商领域的新卖家而言&#xff0c;进行销量测评显得尤为关键。由于速卖通新店铺往往难以获得平台活动的支持&#xff0c;流量也相对匮乏&#xff0c;因此&#xff0c;开店的首要任务便是进行测评&#xff0c;通过积累一定的评论和销售数据。 测评的益处颇多&#xff0…

Java web应用性能分析之【sysbench基准测试】

Java web应用性能分析之【CPU飙高分析之MySQL】-CSDN博客 Java web应用性能分析之【Linux服务器性能监控分析概叙】-CSDN博客 Java web应用性能分析概叙-CSDN博客 Java web应用性能分析之【基准测试】-CSDN博客 上面基本科普了一下基准测试&#xff0c;这里我们将从sysbench…

leetCode60. 排列序列

leetCode60. 排列序列 方法一:语法版&#xff0c;面试官不认可的方法&#xff1a;next_permutation函数 // 方法一&#xff1a;使用next_permutation函数&#xff0c;将某容器设置为当前按照字典序 // 的下一个全排列的内容 class Solution { public:string getPermutation(in…

将游戏界面与注册/登录界面连接到一起

一、 导包 在注册页面中导入一个import subprocess包 二、 使用代码将其连接到一起 在循环中加入下面这一行代码&#xff0c;用来实现效果 subprocess.run(["python", "game代码.py"]

RocketMQ 部署

RocketMQ 部署 1、安装依赖&#xff08;Java&#xff09; [rootMicroservices ~]# mkdir -p /data/businessServer/ [rootMicroservices ~]# cd /data/businessServer/# 获取安装包&#xff08;下载较慢&#xff09; [rootMicroservices businessServer]# wget https://githu…

【深度学习实战(25)】搭建训练框架之ModelEMA

一、什么是ModelEMA&#xff1a; 在深度学习中&#xff0c;经常会使用EMA&#xff08;指数移动平均&#xff09;这个方法对模型的参数做平均&#xff0c;以求提高测试指标并增加模型鲁棒。 指数移动平均&#xff08;Exponential Moving Average&#xff09;也叫权重移动平均&a…

Redis面试题二(数据存储)

目录 1.redis 的数据过期策略 1. 惰性删除&#xff08;Lazy Expiration&#xff09; 2. 定期删除&#xff08;Periodic Expiration&#xff09; 3. 定时删除&#xff08;Timing-Based Expiration&#xff09; 实际应用中的组合策略 2.redis 有哪些内存淘汰机制 volatile&…