首页 > 编程语言 >基于FPGA的图像PSNR质量评估计算实现,包含testbench和MATLAB辅助验证程序

基于FPGA的图像PSNR质量评估计算实现,包含testbench和MATLAB辅助验证程序

时间:2023-12-26 22:25:26浏览次数:25  
标签:PSNR FPGA testbench 质量 图像 reg 评估

1.算法运行效果图预览

设置较大的干扰,PSNR=15。

 

 

 

设置较小的干扰,PSNR=25。

 

 

 

2.算法运行软件版本

matlab2022a

 

vivado2019.2

 

 

3.算法理论概述

       基于FPGA的图像PSNR(峰值信噪比)质量评估计算实现涉及到数字图像处理、硬件设计和编程等多个领域。PSNR是一种用于评估图像质量的指标,它衡量了原始图像和经过处理后的图像之间的相似程度。PSNR值越大,表示处理后的图像质量越好。基于FPGA的图像PSNR质量评估计算实现通过硬件加速,可以实现对图像质量的实时评估,为图像处理算法的优化和调试提供有力的支持。

 

PSNR的计算公式如下:

 

PSNR = 10 × log10((MAX_I^2) / MSE)

 

       其中,MAX_I表示图像的最大像素值,MSE表示原始图像和处理后的图像之间的均方误差。均方误差的计算公式如下:

 

MSE = (1 / (M × N)) × ΣΣ[I(i,j) - K(i,j)]^2

 

       其中,I(i,j)表示原始图像中像素(i,j)的灰度值,K(i,j)表示处理后图像中像素(i,j)的灰度值,M和N分别表示图像的行数和列数。

 

      基于FPGA的图像PSNR质量评估计算实现需要将上述数学公式转化为硬件电路,通过编程实现对图像的实时处理和质量评估。具体步骤如下:

 

图像输入:将待评估的图像数据输入到FPGA中。

计算均方误差:根据输入的原始图像和处理后的图像,计算它们之间的均方误差。这需要设计相应的硬件电路,对每个像素进行差值平方和累加操作。

计算PSNR:根据计算得到的均方误差和图像的最大像素值,计算PSNR值。这需要设计相应的硬件电路,实现上述PSNR计算公式的功能。

输出结果:将计算得到的PSNR值输出到显示器或其他输出设备中,完成图像质量评估。

        综上所述,基于FPGA的图像PSNR质量评估计算实现需要结合数字图像处理、硬件设计和编程等多个领域的知识,通过合理的算法设计和硬件优化,实现对图像质量的实时评估和提升。

 

4.部分核心程序

`timescale 1ns / 1ps
//
// Company: 
// Engineer: 
// 
// Create Date: 2022/07/28 01:51:45
// Design Name: 
// Module Name: test_image
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//
 
 
module test_image;
 
reg i_clk;
reg i_rst;
reg [7:0] tmps1 [0:100000];
reg [7:0] tmps2 [0:100000];
reg [7:0] Images1;
reg [7:0] Images2;
wire [7:0] o_PSNR;
integer fids1,fids2,idx=0,dat1,dat2;
 
//D:\FPGA_Proj\FPGAtest\codepz\test0N.bmp 路径改为自己的路径 
 
initial 
begin
	fids1 = $fopen("D:\\FPGA_Proj\\FPGAtest\\codepz\\test0.bmp","rb");
	dat1 = $fread(tmps1,fids1);
	$fclose(fids1);
	fids2 = $fopen("D:\\FPGA_Proj\\FPGAtest\\codepz\\test0N.bmp","rb");
	dat2 = $fread(tmps2,fids2);
	$fclose(fids2);
end
 
initial 
begin
i_clk=1;
i_rst=1;
#1000;
i_rst=0;
end 
 
always #5  i_clk=~i_clk;
 
always@(posedge i_clk) 
begin
    if(idx<=66613)
    begin
	Images1<=tmps1[idx];
	Images2<=tmps2[idx];
	end
	else begin
	Images1<=8'd0;
	Images2<=8'd0;
	end
	idx<=idx+1;
end
 
 
tops tops_u(
.i_clk      (i_clk),
.i_rst      (i_rst),
.i_images1  (Images1),
.i_images2  (Images2),
.o_PSNR     (o_PSNR)
);
 
//integer fout1;
//initial begin
// fout1 = $fopen("medfilter.txt","w");
//end
 
//always @ (posedge i_clk)
// begin
//    if(idx<=67131)
//	$fwrite(fout1,"%d\n",o_medfilter);
//    else
//    $fwrite(fout1,"%d\n",0);
//end
 
endmodule

  

标签:PSNR,FPGA,testbench,质量,图像,reg,评估
From: https://www.cnblogs.com/matlabworld/p/17929498.html

相关文章

  • FPGA学习笔记---verilog学习(2)--过程块always@(*)
    在Verilog中always@(*)语句的意思是always模块中的任何一个输入信号或电平发生变化时,该语句下方的模块将被执行。1、always语句有两种触发方式。第一种是电平触发,例如always@(aorborc),a、b、c均为变量,当其中一个发生变化时,下方的语句将被执行。2、第二种是沿触发,例如always......
  • 最大工作频率为32MHz,R7F100GPL2DFA、R7F100GPL3CFA低功耗MCU,10M08SAU169C8GGB MAX® 1
    一、RL78/G23 新一代RL78微控制器,最大工作频率为32MHz,外围功能得到进一步扩展,低功耗性能也有所提升。RL78/G23微控制器是RL78系列的新一代产品,CPU工作时的功耗为41μA/MHz,STOP(保持4KBSRAM)时的功耗为210nA,其低功耗在业内首屈一指。此外,由于采用SNOOZE模式定序器,它还能大幅度减少......
  • 基于Zynq FPGA对雷龙SD NAND的测试
    文章目录一、SDNAND特征1.1SD卡简介1.2SD卡Block图二、SD卡样片三、Zynq测试平台搭建3.1测试流程3.2SOC搭建四、软件搭建五、测试结果六、总结一、SDNAND特征1.1SD卡简介  雷龙的SDNAND有很多型号,在测试中使用的是CSNP4GCR01-AWM与CSNP32GCR01-AOW。芯片是基于NANDFLASH......
  • 【FPGA基础】状态机
    状态机由状态寄存器和组合逻辑电路组成;在不同的当前状态下,能够控制信号的变化进行状态的转移,从而实现相关信号的赋值,完成特定控制时序的设计。状态机的三个基本要素:      状态变迁(当前状态current_state和下一状态next_state      输入条件(状态变化的触发事件 ......
  • 高云FPGA的LVDS应用
    本板卡提供如下例程,主要基于具体案例,聚焦于摄像头采集,LCD屏驱动显示等图像处理相关。像GPIO,CLK,LED等这种简单的操作都放到具体实例中了,不再一一介绍,常用的IP也是非常简单的操作,高云文档有些写得不太仔细,如遇到不清楚的地方可以联系官方FAE或者我这边。3.1LVDS的应用LVDS使用......
  • ubuntu 18.04.6 编译Preloader提示 没有规则可制作目标 /host_tools/altera/preloader
     生成spl_bsp后,在spl_bsp路径下输入make 提示:没有规则可制作目标/host_tools/altera/preloader/uboot-socfpga.tar.gz 原来要先运行 ./embeddedcommandshell.sh,并在该终端窗口下输入make   ......
  • Gowin FPGA Designer 简介
    高云FPGADesigner是高云FPGA开发的IDE软件,软件包不大,安装包241M,解压Gowin_V1.9.8.07_vin压缩包,后点击文件夹的exe安装包,直接一直按下一步,完成软件的安装,安装后在桌面会有如下图标  双击打开软件,进入主界面,如下  软件的使用,请参考软件使用视频或者在高云官......
  • 图像质量评价指标 PSNR 和 SSIM
    PSNR和SSIM是两种常见的图像质量评价指标,通常用于衡量两张图像的相似度。参考材料:https://zh.wikipedia.org/wiki/峰值信噪比https://zhuanlan.zhihu.com/p/50757421PSNRPSNR:峰值信噪比(Peaksignal-to-noiseratio),常用对数分贝单位来表示。先定义均方误差\(MSE\)。灰......
  • 基于FPGA的超声波测距
    基于FPGA的超声波测距系统通常涉及超声波传感器、FPGA芯片、时钟模块、距离测量算法等组件。以下是一个基本的系统设计框架:原理详细解释:超声波传感器:用于发送超声波脉冲并接收回波。一般使用的是超声波传感器,其工作原理是发送超声波脉冲,当脉冲遇到障碍物时,部分能量被反射回来,通过......
  • 基于FPGA的图像形态学腐蚀算法实现,包括tb测试文件和MATLAB辅助验证
    1.算法运行效果图预览 将FPGA的仿真结果导入到MATLAB,结果如下所示:   2.算法运行软件版本vivado2019.2 matlab2022a 3.算法理论概述      基于FPGA的图像形态学腐蚀算法实现主要依赖于图像处理的基本原理和数学形态学的基础知识。在图像处理中,形态学操......