- 积分
- 760
- 最后登录
- 2013-12-26
- 阅读权限
- 30
- 注册时间
- 2011-6-11
- 回帖
- 10
- 精华
- 0
村里打铁的
- UID
- 219
- 威望
- 0
- 机械币
- 149
- 活力
- 0
|
摘要:在数字技术极大发展的今天,利用硬件处理图像可以获得比纯软件处理高的多的速度。由于FPGA具有可重复编程,开发成本低,可迅速向ASIC转型等优点,越来越多的图像处理算法被应用到FPGA中。为此,本文提出了一种基于FPGA的数字图像带通滤波器。文中首先分析了Xilinx Virtex II器件的优点,然后具体讨论了带通滤波器的实现。结果证明方案可行。
关键词:数字图像;Virtex II 器件;FPGA;FFT;带通滤波
Virtex II是Xilinx公司设计的一系列FPGA芯片种类之一。Virtex II内部主要由可重构逻辑单元(CLB)、可编程输入输出模块(IOB)、数字时钟管理单元(DCM)、互联资源,以及内部的乘法器,块存储器组成。
可重构单元CLB:在器件中以阵列分布。提供基本的组合逻辑和时序,其基本元素包括两个寄存器和一个三态缓冲门。两个寄存器可配置为触发器或者锁存器。在实际应用中,单个的CLB通过外部连接矩阵与其他CLB构成复杂的逻辑单元。CLB是FPGA的核心部分,硬件的逻辑以及缓存功能都通过一定数目的CLB互联得以实现。
数字管理单元(DCM):主要部分是数字锁相环。通过对输入时钟进行锁相改善时钟质量,同时也能完成倍频、分频。
输入单元(IOB)负责对输入输出的信号的标准进行转换,可接收发送3.3V、2.5V、1.8V各种信号,也可以直接输入差分信号。
通过块存储器和乘法器设计,Virtex II器件在一定程度上解决了传统FPGA器件存储空间小,运算能力差的缺点。Virtex II器件内部的双口RAM有A、B两个端口,每个端口的信号包括时钟、使能、读写等控制信号以及完全独立的地址线和数据线。这种完全的双口RAM为滤波算法所需的数据缓存提供了硬件基础。
一、数字图像带通滤波原理
首先对图像进行二维FFT变换,对其频域系数按照如下规则修正然后再将其逆FFT 变换得到滤波后的图像。
IF(U^2+V^2))hThreshold) W(U,V)=0;(1)
其中U,V为数字频域坐标,lThreshold,hThreshold分别为频率下限,频率上限,W(U,V)为富里叶变换系数。算法的复杂度为3N*Log2N+2N+N2,其中N为图像每行像素数(假定图像长宽比为1)。
本系统硬件框图如图3.1。
其中控制寄存器保存带通滤波的滤波器表索引号,详见下面带通滤波器设计部分。双口SDRAM负责存储外部输入的原始数据及经过FFT&IFFT运算后的中间数据。图像输入模块,双口RAM,控制逻辑三者之间采用乒乓操作模式,如图3.2所示。FFT/IFFT模块在实际实现的时候采用同一模块来实现。
当图像输入模块输入图像数据满一帧时,将输出控制信号通知FFT模块对存放在RAM中的数据进行 行&列FFT变换,同时图像输入模块再接收下一帧图像。FFT模块变换完成后通知带通滤波模块进行带通滤波运算,带通滤波运算完成后则通知图像输出模块取走数据。滤波的全过程实行流水作业模式。流水作业与乒乓操作保证了图像滤波的实时性。
二、FFT模块设计
提高FFT速度的两个主要途径是采用流水结构和并行运算,采用高基数结构也可以提高速度,只是用FPGA实现时必须综合考虑系统要求、结构特点及片内资源。针对本系统自身特点,这里按时间抽选算法进行分析。本系统采用基-2DIT行列算法。
N点基-2DIT行列算法信号流图如图4。
根据上面的流图可以设计出FFT/IFFT模块框图如图5。
其中系数寄存单元保存富里叶变换的系数。循环单元负责循环寻址,蝶形处理单元负责蝶形运算。地址发生器、循环单元和控制器一起产生RAM地址和系数地址。蝶形处理单元根据地址发生器提供的地址对RAM和系数寄存单元进行访问,先按行后按列对图像数据进行碟形运算,处理后的数据存放进RAM。 |
|