简谈FPGA实现高斯滤波

大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。

今天和大侠简单聊一聊FPGA实现高斯滤波,话不多说,上货。

1、高斯滤波器的实现方式

方法1:与高斯核直接进行卷积实现,这样使用的资源和乘法器 加法器都会很多。例如3*3窗口的滤波核进行卷积运算,一共需要进行9次乘法和8次加法。

方法2:采用两个一维的高斯滤波进行两次滤波,即先对行进行一维滤波,然后再对列进行一维滤波,这样计算简单,降低了复杂度。

比较两种方法,采用第二种实现方法。

 

2、行列分离计算方法

采用下图的计算方法,其中对边界的处理填0处理。

简谈FPGA实现高斯滤波

 

3、实现结果

always

begin

    #10 clk = ~clk; //100Mhz

end

时间:5201520000ps=5.2ms
 

always

begin

    #5 clk = ~clk; //200Mhz

end

时间:2600780000ps=2.6ms

 

4、与仿真比较

如下图

简谈FPGA实现高斯滤波

 

后续会持续更新,带来Vivado、 ISE、Quartus II 、candence等安装相关设计教程,学习资源、项目资源、好文推荐等,希望大侠持续关注。

大侠们,江湖偌大,继续闯荡,愿一切安好,有缘再见!