|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
摘 要:根据小波变换的框架式结构,提出了一种在FPGA 上完全依靠重构来实现不同提升小波变换核的方法。根据变换特性和重构要求,采用了由下至上的结构体设计方法,将每个提升步骤用可编程的参数来表示,以保证每个提升步骤均可重构。给出了提升小波变换核在FPGA 上的结构体,在逻辑综合时按不同小波的要求,改变参数可得到不同的结果。仿真实验表明,提升小波变换核的结构体在处理能力和功耗方面都取得了很好的效果,尤其在处理速度上,能满足图像处理实时性要求。
* w6 v/ U' y ]7 q' T5 }, j) e; M& n! B! E7 V$ m
关键词:图像处理;提升框架;FPGA ;重构;综合 3 s! S& s; T5 `! a: c/ C. C0 }! R; S A
5 L2 n8 ]; u: f' L2 J' t 引 言- P8 T& @! O G: @$ ?
9 e( j' I- n* x, y# t$ U: ? 基于提升框架的小波变换方法,利用FPGA 可编程特性可实现多种小波变换。提升框架(LS :Lifting Scheme) 是由Sweldens 等人在近几年提出的一种小波变换方法,用它的框架结构能有效地计算DWT。对于较长的滤波器,LS 的操作次数比滤波器组的操作方式减少将近一半,更适合硬件实现。作者根据提升小波变换的框架式结构,利用FPGA 可完全重构的特点构造不同的小波变换核,以满足不同应用场合的要求。在结构设计中采用由下至上的设计方法,每个提升步骤都由一些可编程的参数来表示,保证了每个步骤均可重构。这些参数包括用于表示数据的位数和每个内部数学模块的通道深度。在逻辑综合时按不同小波的要求,改变参数可得到不同的结果。以图像处理中常用的(5 ,3)滤波器为例说明依靠FPGA 的重组特性实现滤波器的小波变换核方法。实验结果表明,利用FPGA 设计的提升小波变换核能满足不同场合和不同运行的要求。
; J$ M1 h& i2 n/ `- v: z% e+ L8 V& [% s {9 S2 c
LS 小波变换理论
6 v' a: ^; Q, U1 {2 B0 {4 H. ^) v% g, g& Y: [, _; A
LS 变换过程如图1 所示,逆变换与正变换相同,只是顺序相反。时间离散的滤波器可由它的多项矩阵来表示,多项矩阵由脉冲响应的奇偶采样序列的Z 变换得到。LS 小波变换的实质是对经典小波滤波器采用Euclidean 算法的多项式进行分解。
* \) h+ [9 p( r' a1 o7 l# B9 l$ R0 e! x+ M
图1 正向LS 变换 # { f3 R; K$ `5 z6 \6 E& N
\6 K( q6 L" t! h1 Y 一个时间离散的滤波器H( z ) 用多项式表示如下:
3 ]& r- m D1 h+ g7 R( g! C) d& x+ S
He ( z ) 和Ho ( z ) 各自从8 @6 j3 r# ]8 G o( \3 o1 ?
9 Z0 T0 Q- J7 t" j; d0 j奇偶系数得到。分析滤波器H ( z ) 和G( z ) 分别表示低通和高通,表示成多相矩阵为3 `. H+ P9 v% ~
, ?6 I. F, \' Q. y9 A- {3 n. Q4 ?
P( z ) 可被模拟为分析滤波器。根据Euclidean算法可将P( z ) 和P( z ) 分解成:
* Q0 G1 {5 L' w& P3 e+ `' E d, t# D7 U( n4 g J
上面的分解不是唯一的,可有几对{ si ( z ) } 和{ t i ( z ) } 滤波器,但对于计算DWT 所有的选择是等同的。
& y' |. G- b0 p! z+ J! m' S. G$ N
% L% U& o( x1 ?% x! H; i l FPGA 及提升核的实现 4 q+ {, C8 |; e1 C2 M/ k& v# j8 g
2 _2 X$ R0 w s, H# M FPGA 及重构特性 Z8 [2 l3 S/ \9 A2 T5 T% Y
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 上可满足不同应用场合的需要。' _$ v7 O3 \0 k2 d, w7 @
4 t6 C& ^6 U- Y9 `8 y 图2 提升核结构体 5 {2 A+ W m+ J& s6 R: [
4 M/ i$ A- M A) D0 h
提升小波变换核的实现 / L- ~8 k% L9 Z) n1 P8 @2 A3 p$ X6 m
如图1 所示,LS 变换是连续的独立的简单滤波操作过程,这个过程就是提升步骤。由图1 可导出优化了的提升核结构体。近几年,采用JPEG2000 标准进行图像传输成为热点,很多文献中均提出了不同的提升小波变换结构体。 $ M9 t5 Y2 r) H8 k% H6 _
- @+ ]# g9 O) K4 [6 Y 但是这些提升结构体大都只考虑可操作性,而忽略了功耗和灵活性。作者提出的提升核结构体(图2) 采用与以往不同的由下至上的设计方法。主要特点是指定了1 个单独的流水式的乘法单元和2个加法单元。乘法单元主要用于处理滤波器系数的对称问题,加法单元用于实现分析或综合的变换。 8 z* X. o+ e- ~& ] y) h
, T; g2 a: o+ u0 T# `3 O4 M/ M; ` 值得注意的是所有的通道层都可用所设计的库模块来排列,因此为了保证内部IP 核数据流的同步性,必须考虑前后交叉问题。例如,在加法输出时,已经放置了一个乘法器,允许对提升步骤的结果进行归一化。采用这种设计方法,能获得最高的数据精度和最快的运行速度。此外,整数的数学单元更容易进行深层的流水操作,获得很高的数据吞吐量。图2 所提出的结构既考虑了可操作性又考虑了应用的灵活性,由于提高了运行速度,所以降低了功耗。 ) v- {0 }$ F C8 [" s9 B) ~
, A% o3 m0 U" L' p% e
逻辑综合结果 + y/ F2 n- C: z; d
* j$ Z% K; r |2 s6 h
首先采用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。
$ p. s2 ~7 K7 ^' C3 h+ C) g8 y; B0 k0 g5 ^
表1 提升核综合结果 0 q, I! E1 Z) Q' `1 S
1 s# N7 A, @. `3 S
结束语 7 N; _ v7 u% R! [: Z
8 i: I8 h4 U3 A; s6 ^ 提出的可重构的提升核结构体,采用特殊的即从下至上的设计方法,保证了最大限度地重复利用性和重构特性。仿真结果说明,提升小波变换核的结构体无论在处理能力和功耗方面都取得了很好的结果,尤其在处理速度上,能满足图像处理实时性要求。将来的进一步发展是将更多的自由参数加入基本的算术模块中,保证结构体具有更好的操作性,并且使功率消耗减少,能满足不同应用场合的需要,对降低设备成本,提高使用效率有实际意义。
2 {' k: q0 L2 X, m: S |
|