基于FPGA的均值滤波(三)

时间:2022-04-28
本文章向大家介绍基于FPGA的均值滤波(三),主要内容包括基于FPGA的均值滤波(三)、之二维求和模块、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

基于FPGA的均值滤波(三)

之二维求和模块

在实现了窗口内一维行方向上的求和操作,现在要得到整个窗口内的像素之和,还必须将每一行的计算结果再叠加起来。但是每一行的计算结果就不可以使用上面的增量更新的方法进行计算,这是由于纵向的数据流不是流水线式的。这时就只能采用普通的求和方式了。

同样,在进行列方向上的求和时,需要进行行缓存,并将一维行方向的求和结果打入行缓存,行缓存个数为窗口尺寸减1.

就窗口尺寸5x5而言,二维求和模块的带你撸设计如下:

module sum_2d(

rst_n, //异步复位信号
clk, //同步时钟
din_valid, //输入数据有效
din, //输入数据流
dout, //输出数据流
vsync_din, //输入场同步信号
vsync_out, //输出场同步信号
is_boarder, //输出边界信息
dout_valid                //输出数据有效信号
 );
parameter DW = 14;
parameter KSZ = 3;
parameter IH = 512;
parameter IW = 640;
//首先例化一个行方向上的求和模块
wire [2*DW-1:0] sum_row; //行求和模块
wire row_valid; //行求和结果有效信号
sum_1d #(DW,KSZ)
rom_sum
(
.clk(clk),
.din(din),
.din_valid(din_valid),
.dout_valid(row_valid),
.dout(sum_row)
 );
//例化(KSZ-1)个行缓存
generate
begin : line_buffer_inst
end
endgenerate
endmodule