功能描述:
在实际中,由于FPGA搜索九个数据的中间值是非常复杂的,通常的做法就是采用中值滤波快速算法,具体如下所示:

从上面的结构可知,中值滤波器分三级进行计算,其中每级之间通过D触发器来稳定时序。
然后整个模块的计算需要4个时钟周期的延迟。
另外一方面,由于在FPGA中,图像即以串行保存在存储器中,而中值滤波需要每次输入9个数据进行滤波,所以这里需要一个地址控制器,用来控制输入图像像素值。这九个数,其对应的地址分别为:
Address
Address+1
Address+2
Address+800
Address+1+800
Address+2+800
Address+1600
Address+1+1600
Address+2+1600
因为数据是600*800,所以,总地址为480000,
仿真之后,将FPGA中保存得到的Rec.txt文件复制出来,运行view.m这个MATLAB文件,modelsim和MATLAB运行后期对应的结果分别如下所示:
|