| | 网站首页 | 新闻 | SOPC | FPGA | DSP | ARM | 嵌入式操作系统 | 下载 | 网上商城 | 芯片价格参考 | 留言 | 论坛 | 网络协议 | 驱动设计 | 购买指南-HowtoBuy | | |
![]() |
![]() |
| 您现在的位置: FPGA开发板 FPGA 开发板 SOPC开发板 6713开发板 音视频开发板 嵌入式控制研究室 >> FPGA >> FPGA应用 >> 文章正文 |
|
|||||
| 数字图像空域滤波算法的FPGA设计与实现 | |||||
| 作者:佚名 文章来源:互联网 点击数: 更新时间:2008-1-3 | |||||
|
空域滤波算法是图像增强技术的一种,直接对图像的象素进行处理,不需要进行变换。常见的滤波算子如锐化算子、高通算子、平滑算子等,可以完成图像的边缘提取、噪声去除等处理。这些滤波算子尽管功能不同,实现方法却都是类似的,都是通过模板卷积的方法来实现的。 原文位置VLSI技术的迅猛发展为数字图像实时处理技术提供了硬件基础,其中FPGA(现场可编程门阵列)的特点使其非常适用于数字图像处理。本文研究的就是在FPGA设计平台上设计硬件电路,实现数字图像的空域滤波算法。 原文位置1 数字图像空域滤波算法 原文位置数字图像空域滤波算法的实现步骤如图1所示,左边的部分是要处理的图像的某一部分,中间是对图像进行处理的3×3模板。 原文位置
![]() 具体的处理步骤是: 原文位置将模板在图像上漫游,并将模板中心与图中某个象素位置重合; 原文位置将模板上的系数与模板下对应的象素相乘; 原文位置将所有的乘积相加。 原文位置把和(模板的输出响应)赋给图像中对应模板中心位置的象素。图1中所示是图像的一部分,S0~S8是象素点的灰度值,K0~K8是3×3的模板系数。用这个3×3模板来进行空域滤波的过程是:将模板中心点,即模板系数为K0的点所在位置,与图像中灰度值为S0的点重合,模板的输出响应R为: 原文位置R=K0*S0+K1*S1+…+K8*S8 (1) 原文位置这样增强后的图像在原来位置为(x,y)处的象素点的灰度值就由S0变为R。如果对图像中的每个象素点都这样进行模板操作,就可以得到增强后的图像在所有位置的新灰度值。如果在设计滤波器时给模板系数赋予不同的值,就可以得到不同的高通、低通效果。 原文位置本文采用的图像是256×256大小的灰度图像,滤波模板3×3大小。如何设计硬件电路来完成上述空域滤波算法,分析上述算法实现过程,可以得出结论,实现空域滤波算法可采用3个三阶的FIR滤波器+延时单元来描述。 原文位置2 FIR数字滤波器的FPGA设计 原文位置在设计实现空域滤波算法的3个三阶的FIR滤波器+延时单元的电路时,要考虑的主要问题是:如何缩短硬件电路设计时的关键路径以及提高系统的数据吞吐率。为解决这些实际的FPGA设计中的关键问题,在具体设计电路时,主要从以下几个方面进行考虑: 原文位置2.1 FIR数字滤波器与流水线结构 原文位置现代微处理器、数字信号处理器、高速数字系统设计中都广泛应用了流水线(Pipelining)技术,其核心设计思想是把一个周期内执行的逻辑操作分成几步较小的操作,在多个高速的时钟周期内完成。每一次逻辑小操作的结果都存储在寄存器中,被高速时钟同步,在下一流水线单元使用,因而是速度优化中最常用的技术之一,可以大大地提高数字系统的总体运行速度。 原文位置
三阶有限冲击响应(FIR)数字滤波器可以表示如下: y(n)=ax(n)+bx(n-1)+cx(n-2) (2) 这个三阶的FIR滤波器实现的结构,如图2所示。
![]() 图2中,这种结构的FIR滤波器的关键路径(处理一个新样点的最小时间)由1个乘法器和2个加法器的时间来限定。如果采样周期小于这个最小时间的话,那么这种结构的FIR滤波器就不能满足要求。这时就要考虑流水技术。采用流水线技术可以缩短关键路径,如图3所示。
![]() 在流水线结构的FIR滤波器中,启动当前的迭代计算时,节点2的加法器正在完成前次迭代结果的计算。因此,这时的关键路径由1个乘法器和2个加法器的时间缩短为1个乘法器和1个加法器的时间。 采用在结构中适当插入流水线锁存器来减小关键路径长度的流水技术时,锁存器的插入并不是随意的。当把数据流图切开时,数据方向要一致向前。这样加入的流水线,才不会影响功能。图3中,插入流水线锁存器时,就是沿着结构中数据流的正向,在上下两个路径均加入了锁存器,这样FIR滤波器的逻辑才不会混乱。一种结构的速度(时钟周期),通常由任意两个锁存器之间、一个输入与一个锁存器间、一个锁存器与一个输出间或输入与输出间路径中最长的路径限定。流水线锁存器可以有效地缩短最长路径。 除了以上两种FIR滤波结构外,还有一种数据广播结构的FIR数字滤波器,这种结构通过转置结构来缩短关键路径,同时不需要引入任何的流水线锁存器。具体的改造方法是:改变输入和输出;颠倒信号流程的方向;由一个分支来取代加法器,反之亦然。数据广播结构的FIR数字滤波器如图4所示。
![]() 本文在设计空域滤波算法电路时,就是分别采取了以上介绍的3种不同的FIR数字滤波器结构形式。 原文位置2.2 乘法器模块的硬件设计 原文位置从式(1)的模板运算表达式和式(2)的FIR滤波器表达式可以看出,完成模板运算和实现FIR数字滤波还有一个重要的环节,就是乘法运算。乘法器模块是影响空域滤波算法的运算速度的关键模块之一。 原文位置乘法运算基本上可以分为两步:一是求出所有的基本乘积项,二是将所有的基本乘积项相加。因此,要设计快速的乘法器电路模块,就要针对这两步进行改进,一方面要减少部分积的数目,同时另一方面要提高部分积求和阵列的累加速度。因此,为了加快乘法器模块的运算速度,在设计乘法器电路时,特别考虑到了采用基4-BOOTH算法来减少部分和的数目,同时采用Wallace Tree减少阵列乘法器中部分积加法阵列的进位传输延迟,加快整个加法阵列的运算速度。 原文位置基4-BOOTH算法的基本原理是对乘数进行编码,根据编码表来产生部分积,一次只考虑3位:本位、相邻高位、相邻低位。Wallace Tree比较规则,易于布局布线,这种方法不是直接将所有的部分积完全的一对一地相加,而是采用将各个部分积中具有相同权重的数据位相加合并。通常采用全加器(Full Adder)来完成相同权重的位相加。采用一位全加器,那么Wallace树的每一层,就可以将部分积的向量数目按照3:2的比例缩减。也可以采用2个全加器,来获得4:2的缩减比例。本文中采用3:2计数器(全加器)来进行部分和缩减,这样当部分积的数目很多时,采用Wallace Tree乘法器来缩减部分和速度很快。 原文位置3 仿真综合结果 原文位置第2节介绍了本文中在FPGA平台上设计实现数字图像空域滤波算法的高速数字滤波器FIR的过程,其中主要考虑的是缩短关键路径、提高数据吞吐率。本节给出仿真和综合后的结果比较表。本文中,测试图像选用的是256×256大小、8 b的灰度图像,设计软件是XILINX公司的ISE集成综合开发环境,仿真工具是Modelsim SE 5.8b,综合工具是ISE自带的综合软件XST,实现芯片是XILINX公司的XC2V1000。仿真、综合结果表明,设计电路完全符合要求。 原文位置下面给出根据上述不同的FIR滤波结构设计的,用于实现空域滤波算法的3种电路结构的综合结果比较表。 原文位置从表1可以看出:从资源占用角度看,结构三的等效门数最多,结构二的最少。从延时/最大频率可以看出,结构一最好。 原文位置3种结构的结构时延比较数据,如表2所示。 原文位置
![]() 4 结 语 原文位置本文论述了数字图像空域滤波算法以及FIR滤波器的基本设计方法,在对关键路径分析的基础上,引入流水线设计提高运算速度,提出了滤波器的3种设计结构,给出了滤波器的设计过程,通过仿真和综合结果可以看出,有效地节省了硬件资源,大大减小了硬件体积,增加了系统的可靠性。 |
|||||
| 文章录入:fengfeiyi 责任编辑:fengfeiyi | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| 基于MAX+plusⅡ开发平台的ED… 采用灵活的汽车FPGA提高片上… 一种快速位同步时钟提取方案… 图像采集压缩SOC系统在FPGA中… 基于FPGA的X射线安检设备控制… FPGA使虚拟仪器技术渗透到设… 精简的FPGA编程电路 利用FPGA平台解决接口的总线… 如何改善基于PLC的系统的性能 基于FPGA的二值图像连通域标… |
网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 管理登录 | | |
![]() |
Copyright © 2005www.21control.com 嵌入式控制技术研究室 版权所有 站长:康草科技 |