本系统采用Verilog HDL语言。利用一种快速的中值滤波改进算法对电路进行设计,并以Altera公司生产的Stratix II EP2S60F67214型FPGA芯片为硬件平台。该器件继承了Altera公司Stratix II系列的共同优点,由于引入了崭新的自适应逻辑模块(ALM),使得Stratix II有更高的性能和逻辑封装、更少的逻辑和布线级数以及更强的DSP支持,而Stratix II EP2S60F67214更是比Xilinx公司的类似器件Virtex-4XC4VLX60多出18%的器件逻辑,其中包括51 182个寄存器位,2 544 129个存储器位以及48 352个ALUT,该器件资源丰富,只需占用很小一部分实现中值滤波器,为后续设计的增长留有更多空间。
2 中值滤波的基本原理及改进算法
2.1中值滤波的基本原理
中值滤波是由Tukey发明的一种非线性信号处理技术,早期用于一维信号处理,后来很快被用到二维数字图像平滑中,是一种有效抑制图像噪声,提高图像信噪比的非线性滤波技术。它是一种邻域运算,类似于卷积,但计算的不是加权求和,而是把邻域中的像素按灰度级进行排序,然后选择该组的中间值作为输出像素值。与均值滤波器以及其他线性滤波器相比,中值滤波器的突出特点是在很好地滤除脉冲噪声(Impulsive Noise)和椒盐噪声(Salt and Pepper Noise)的同时,还能够保护目标图像边缘轮廓的细节。用公式表示为:
整个电路的设计使用Verilog HDL语言编写,以ALTEra公司的Stratix II EP2S60器件为硬件平台,在Quartus II 5.1的软件开发环境下实现320*256*16 bit灰度图像的中值滤波。该图像1场时间是20ms(其中场消隐时间约为6.35 ms),像素时钟是6 MHz,算法占用资源如表2所示。
由表2可见,该中值滤波设计的芯片资源占用率是非常小的,因此绝大部分资源可以用于后续的开发设计中。处理一场数据所需时间仅约为4.2 ms,完全满足整个系统对速度的高要求。而同样的3×3模板中值滤波若在ADI的TS201型DSP上处理,所需时间约为15.3 ms。显而易见,基于Stratix II EP2S60来实现红外图像的中值滤波比基于TS201来实现有更好的实时性优势,而且该设计使用了快速中值滤波算法,所以比传统算法节约了更多时间,资源占用率也非常小。输入、输出图像分别如图3、图4所示,由于本滤波模块把边缘置为0,所以图的边缘是一条黑线。对比前后图像可以看出中值滤波对椒盐噪声有很好的滤波作用。
5 结束语
本设计方案采用了一种改进的快速中值滤波算法,成功地在Altera公司的高性能Stratix II EP2S60上实现整个数字红外图像滤波,在保证实时性的同时,使得硬件体积大为缩减,大大降低了成本,具有很强的实用价值。如果再结合其他滤波预处理方法,则可以进一步提高其滤除噪声的能力,更好地改善图像质量。本设计方案只能运用于矩阵型3*3模板,对于其他类型的模板(如5*5模板、十字线型模板),需要重新进行系统设计。另外。在FPGA设计中,一定要严格控制时序,保证时钟有足够的建立时间和保持时间,并保证时序的严格同步,电路的延时应该尽可能小。