0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用FPGA实现多种小波变换

Wildesbeast 来源:未知 2019-08-25 11:01 次阅读

基于提升框架的小波变换方法,利用FPGA编程特性可实现多种小波变换。提升框架(LS :Lifting Scheme) 是由Sweldens 等人在近几年提出的一种小波变换方法,用它的框架结构能有效地计算DWT。对于较长的滤波器,LS 的操作次数比滤波器组的操作方式减少将近一半,更适合硬件实现。作者根据提升小波变换的框架式结构,利用FPGA 可完全重构的特点构造不同的小波变换核,以满足不同应用场合的要求。在结构设计中采用由下至上的设计方法,每个提升步骤都由一些可编程的参数来表示,保证了每个步骤均可重构。这些参数包括用于表示数据的位数和每个内部数学模块的通道深度。在逻辑综合时按不同小波的要求,改变参数可得到不同的结果。以图像处理中常用的(5 ,3)滤波器为例说明依靠FPGA 的重组特性实现滤波器的小波变换核方法。实验结果表明,利用FPGA 设计的提升小波变换核能满足不同场合和不同运行的要求。

LS 小波变换理论

LS 变换过程如图1 所示,逆变换与正变换相同,只是顺序相反。时间离散的滤波器可由它的多项矩阵来表示,多项矩阵由脉冲响应的奇偶采样序列的Z 变换得到。LS 小波变换的实质是对经典小波滤波器采用Euclidean 算法的多项式进行分解。

图1 正向LS 变换

一个时间离散的滤波器H( z ) 用多项式表示如下:

基于FPGA实现多种小波变换

He ( z ) 和Ho ( z ) 各自从

基于FPGA实现多种小波变换

奇偶系数得到。分析滤波器H ( z ) 和G( z ) 分别表示低通和高通,表示成多相矩阵为

基于FPGA实现多种小波变换

P( z ) 可被模拟为分析滤波器。根据Euclidean算法可将P( z ) 和P( z ) 分解成:

基于FPGA实现多种小波变换

上面的分解不是唯一的,可有几对{ si ( z ) } 和{ t i ( z ) } 滤波器,但对于计算DWT 所有的选择是等同的。

FPGA 及提升核的实现

FPGA 及重构特性

FPGA(Field Programmable Gate Array ,现场可编程门阵列) 是超大规模集成电路(VL、SI) 技术和计算机辅助设计(CAD) 技术发展的结果。FPGA 器件集成度高、体积小、具有通过用户编程实现专门应用的功能。FPGA 一般由3 种可编程电路和1 个用于存放编程数据的SRAM 组成。这3 种可编程电路是:可编程逻辑块CLB (Configurable Logic Block) 、输入/输出模块IOB ( I/O Block) 和互连资源IR( Interconnect Resource) 。由于基于小波的应用越来越广泛,所以利用FPGA 的灵活结构实现可重构的提升框架小波变换核具有很高的应用价值和研究价值。设计从基本的数学模块和逻辑模块开始,采用由下至上的设计方法,所有的库模块用VHDL 语言描述,允许根据设计精度要求选择每个单元的数据通道大小。为了满足不同环境的需要,既要求可以改变单独模块的通道层深度,又要求考虑与其他设备的相容性。将提升方法与FPGA 的特性结合起来,使不同的提升小波变换在FPGA 上可满足不同应用场合的需要。

图2 提升核结构体

提升小波变换核的实现

如图1 所示,LS 变换是连续的独立的简单滤波操作过程,这个过程就是提升步骤。由图1 可导出优化了的提升核结构体。近几年,采用JPEG2000 标准进行图像传输成为热点,很多文献中均提出了不同的提升小波变换结构体。

但是这些提升结构体大都只考虑可操作性,而忽略了功耗和灵活性。作者提出的提升核结构体(图2) 采用与以往不同的由下至上的设计方法。主要特点是指定了1 个单独的流水式的乘法单元和2个加法单元。乘法单元主要用于处理滤波器系数的对称问题,加法单元用于实现分析或综合的变换。

值得注意的是所有的通道层都可用所设计的库模块来排列,因此为了保证内部IP 核数据流的同步性,必须考虑前后交叉问题。例如,在加法输出时,已经放置了一个乘法器,允许对提升步骤的结果进行归一化。采用这种设计方法,能获得最高的数据精度和最快的运行速度。此外,整数的数学单元更容易进行深层的流水操作,获得很高的数据吞吐量。图2 所提出的结构既考虑了可操作性又考虑了应用的灵活性,由于提高了运行速度,所以降低了功耗。

逻辑综合结果

首先采用VHDL 语言来描述由基本的可重构的数学模块和逻辑模块设计的变换核结构体,然后在MAX+PLUSⅡ集成环境下进行功能仿真,实现所需变换核,最后进行FPGA 逻辑综合。在Altera1 公司的FLEX10K上设计的结构体,经过逻辑综合得到很满意的结果,见表1 。表1 的结果直接由逻辑综合得到,没有考虑各种客观因素引起的延时。在设计流程步骤之后的安放运行过程中,可进行更精确的时序分析。另外,为了获得完整的分析结果,需参考FPGA 厂家提供的指标估计功率消耗,使用时应选择功耗小的可编程器件,更好地满足不同使用环境的要求。以(5 ,3) 滤波器为例,计算(5 ,3) 小波需要4个提升核的叠加,所提出的结构体计算正向或逆向(5 ,3)DWT ,对每帧像素1400×1400 采用15位采样数和12位合成滤波器系数,以全时钟频率运行,进行5 层分解、重构,每秒钟能处理25 帧图像,功耗为267.6 mW。

结束语

提出的可重构的提升核结构体,采用特殊的即从下至上的设计方法,保证了最大限度地重复利用性和重构特性。仿真结果说明,提升小波变换核的结构体无论在处理能力和功耗方面都取得了很好的结果,尤其在处理速度上,能满足图像处理实时性要求。将来的进一步发展是将更多的自由参数加入基本的算术模块中,保证结构体具有更好的操作性,并且使功率消耗减少,能满足不同应用场合的需要,对降低设备成本,提高使用效率有实际意义。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1625

    文章

    21658

    浏览量

    601596
  • 滤波器
    +关注

    关注

    160

    文章

    7724

    浏览量

    177610
  • 小波变换
    +关注

    关注

    2

    文章

    183

    浏览量

    29700
收藏 人收藏

    评论

    相关推荐

    FPGA 实现变换

    如何用FPGA实现97整型小变换,各位有相关的资料吗?
    发表于 10-15 09:34

    如何通过FPGA 可编程特性实现多种变换

    LS 小变换是怎样进行的?FPGA 及提升核是怎样实现的?如何实现提升小
    发表于 04-12 06:27

    基于DSP Builder的小变换设计实现

    单片机实现,存在实时性差等缺点。随之,基于FPGA的小变换在脑电信号数字处理中应运而生,其实时性好。 DSP Builder将Matlab/Simulink设计仿真工具的算法开发、模
    发表于 05-13 07:00

    基于DSP Builder的小变换设计实现

    单片机实现,存在实时性差等缺点。随之,基于FPGA的小变换在脑电信号数字处理中应运而生,其实时性好。 DSP Builder将Matlab/Simulink设计仿真工具的算法开发、模
    发表于 06-04 07:00

    提升小FPGA实现

    提升小FPGA实现
    发表于 05-08 17:23 9次下载

    提升小变换FPGA设计与实现

              根据1996 年Sweldens 等人提出的提升小变换方法,设计了一种有效的JPEG2000CDF(2,2)整数小
    发表于 09-12 11:28 30次下载

    基于FPGA的快速9/7整形离散小变换系统

    美国空间数据系统咨询委员会(简称CCSDS)于2005年推出一套适用于空间领域的图像压缩标准,标准使用了离散小变换为核心算法,推荐使用9/7整数离散小变换
    发表于 01-25 21:33 1691次阅读
    基于<b class='flag-5'>FPGA</b>的快速9/7整形离散小<b class='flag-5'>波</b><b class='flag-5'>变换</b>系统

    图像的二维提升小变换FPGA实现

    本文将实现基于FPGA的图像二维5/3提升小变换,采用FPGA芯片实现计算量十分复杂的二维提升
    发表于 06-29 11:59 3520次阅读
    图像的二维提升小<b class='flag-5'>波</b><b class='flag-5'>变换</b>的<b class='flag-5'>FPGA</b><b class='flag-5'>实现</b>

    双运算核提升小变换FPGA硬件实现

    采用双运算核在FPGA硬件平台上实现变换模块。采用单一时钟,在不增加系统设计复杂性和功耗的情况下,使得系统达到实时处理的要求。系统通过仿真验证,工作稳定可靠。
    发表于 12-07 13:59 22次下载
    双运算核提升小<b class='flag-5'>波</b><b class='flag-5'>变换</b>的<b class='flag-5'>FPGA</b>硬件<b class='flag-5'>实现</b>

    基于LEON2和FPGA的在轨图像小变换模块设计

    基于LEON2和FPGA的在轨图像小变换模块设计,感兴趣的可以看看。
    发表于 09-22 14:08 15次下载

    基于FPGA实现多种变换

    基于提升框架的小变换方法,利用FPGA 可编程特性可实现多种
    发表于 08-18 09:47 2107次阅读
    基于<b class='flag-5'>FPGA</b><b class='flag-5'>实现</b><b class='flag-5'>多种</b>小<b class='flag-5'>波</b><b class='flag-5'>变换</b>

    如何使用LabVIEW实现变换

    本文档的主要内容详细介绍的是如何使用LabVIEW实现变换包括了:小变换的基本理论,在LabVIEW中
    发表于 04-20 08:00 56次下载
    如何使用LabVIEW<b class='flag-5'>实现</b>小<b class='flag-5'>波</b><b class='flag-5'>变换</b>

    多级二维整数小变换FPGA实现资料详细说明

    为了满足整数小变换实时应用的需要,研究了整数小变换FPGA实现问题。相对于DSP等传统
    发表于 02-01 11:53 9次下载

    基于FPGA提升框架的小变换方法

    基于提升框架的小变换方法,利用FPGA 可编程特性可实现多种
    的头像 发表于 05-11 15:33 705次阅读
    基于<b class='flag-5'>FPGA</b>提升框架的小<b class='flag-5'>波</b><b class='flag-5'>变换</b>方法

    离散小变换FPGA实现(一)

    在正式进入小变换之前,我们不妨来讨论一下傅里叶变换的局限性和为什么我们需要引入小变换
    发表于 06-27 11:30 1189次阅读
    离散小<b class='flag-5'>波</b><b class='flag-5'>变换</b>的<b class='flag-5'>FPGA</b><b class='flag-5'>实现</b>(一)