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

2011-04-23 10:12周新文钟明光
电子科技 2011年6期
关键词:小波时钟运算

周新文,钟明光

(1.西安电子科技大学电子工程学院,陕西西安 710071;2.西安电子科技大学机电工程学院,陕西西安 710071)

双正交小波[1]具有对称性,因此具有线性相位,有较高的正则性和消失距,能够平滑地近似表示信号,使得小波变换后大系数尽可能地集中在图像边缘处及低频子带,适合于图像压缩。提升小波变换[2-5]是不依赖于傅里叶变换的新一代小波变换,运算量是传统小波变换的50%。提升小波变换可以实现同址计算,这样在运算中可以节省内存的消耗,易于硬件实现。同时提升方法的正反变换结构一致,只有正负号的区别。基于这样的原因,应用提升运算实现传统的双正交小波变换,在图像压缩系统中具有一定意义[6-8]。

1 将双正交小波变换分解为提升步骤

双正交小波具有很多优良的数学性质,适合在图像压缩系统中使用。理论证明,可以将传统的小波滤波器分解成提升步骤。将传统小波变换转换成提升运算,常见较简单的分解方法是基于因式分解的方法,这里应用Euclidean算法实现。

小波滤波器组,应用Euclidean进行分解。将表示为奇数系数与偶数系数的和

由于ho(z)和he(z)互素,式(1)可进一步表示为

对于给定滤波器,通过下式可以得到一个滤波器g0,令

当i为偶数

当i为奇数

由式(4)和式(5)得

令 si(z)=q2i-1(z),t(z)=q2i(z)得到

对于9/7小波滤波器分解为

结合小波滤波器的多相分解he(z),ho(z),ge(z)和go(z),联立方程组解得 α=-1.586 134,β=-0.052 98,γ =0.882 911,δ=0.443 506,k=1.149 604,得到9/7小波变换运算式如式(9)所示。

2 提升小波变换整体设计

采用3级小波变换,共6步一维小波变换操作,即第1层行变换,第2层列变换,第2层行变换,第2层列变换,第3层行变换,第3层列变换。模块要求1个时钟周期计算1个小波系数,进行实时处理。在FPGA中采用流水操作。假设1帧图像的大小为N×N像素,进行小波变换。分析系统可以知道,第1层行列变换需要2×N×N个时钟周期,第2层行列变换需要1/2×N×N个时钟周期,第3层行列变换需要1/8×N×N个时钟周期。

第1层行变换需要直接接收原始数据,因此时钟频率应当与数据同步时钟一致,并且单独设计。其余5步变换共需1.625×N×N个时钟周期。要满足1个时钟周期产生1个小波系数,则后续5步变换模块的时钟频率至少应当是第1层行变换时钟频率的1.625倍,这样设计就会引入双时钟。

FPGA硬件设计中的多时钟往往是造成系统工作不稳定的主要因素。设计时需要考虑的因素增多,因此设计难度增加。更高频率,对于器件的要求会提高,需要更高性能的芯片。同时更高的频率就意味着更高的功耗。基于以上考虑,本文在后续5步变换的设计中采用了双变换核的模式。当前帧图像的第1层行变换与上一帧图像的后续5步变换并行进行。后序变换过程中,采用双运算核设计,同时进行两行(列)数据的运算,这样就能够能保证在使用单一时钟的情况下,每个时钟周期处理1个数据,达到实时处理的要求,这是本文设计的关键。这里引入一个新问题,就是上一步变换的结果需要进行数据组织,为下一步两行(列)并行运算做好准备。小波变换模块整体设计如图1所示。

图1 小波变换模块框图

3 小波变换模块详细设计

下面分运算模块,控制模块和数据组织模块对硬件设计做一介绍。运算模块负责主要的数据运算,控制模块负责流程控制,数据组织模块负责对上一步变换的结果进行组织,以满足下一步两行(列)变换的需要。

(1)运算核设计。小波变换运算核设计如图2所示。运算核共涉及8个加法器和5个乘法器。由于前面输入或者前中间运算结果数据在后序运算中需要用到。因此依据时序为相应的信号设置一定数量的寄存器组。采用流水设计,每步运算到相应寄存器中去取数,这样保证数据时序对齐。同时运算中还需要处理的问题是边界扩展。图 2中的原始数据 x(n),p(m),q(y)和r(z)都需要作边界扩展,每行(列)各扩展一个数据。其中x(n)和q(y)需要在右边界作扩展,分别用第一个数据x(N)和q(Mi),p(m)和r(z)需要在左边界作扩展,分别为最后第一个数据p(0)和r(0),Mi为第i层一维变换需要处理的数据个数的1/2。边界扩展的时序同步由控制模块负责。

图2 小波变换运算硬件设计框图

(2)控制模块。控制模块主要负责各步变换运算的启动,停止,边界扩展同步控制,变换模块数据读写的使能,读写数据存储地址的产生等工作。在设计中将第一层行变换进行单独设计,后序5步变换进行集中设计。这里首先说明第一步行变换的流程控制,后序5步变换相似。

第1层行变换模块主要作以下工作:1)接收外部数据,将运算结果送数据组织模块。2)数据运算。3)产生写数据地址信号以及写使能信号。4)控制边界扩展。5)产生外部存储器RAM片选信号;f产生第一层行变换结束标志。数据按帧处理,帧内部按行处理。随原始数据有帧同步和行同步信号。控制模块依据同步信号来控制相应的计数器计数,以控制边界扩展,产生写使能,写数据地址,RAM片选信号,第一层行变换结束标志等信号的产生。

第1层行变换结束,随即启动该帧数据的后序5步变换依次进行。后序5步变换进行独立设计。同时后序5步变换依次控制两个运算核进行运算,实现两行(列)的并行处理,这是本设计的关键。

(3)数据组织模块。数据组织模块服务于运算模块。分为两个子模块,org1和org2,分别负责行变换数据组织和列变换数据组织。行变换结束之后的数据都要参与列变换运算,在数据组织过程中将同行相邻两列两个数据组织起来,存在一个存储单元内,这样在列变换时,读取一次就能读出来两个分别属于两列的数据,再分别送给两个运算核进行处理。数据组织及数据读取如图3所示。

图3 行变换数据组织及列变换数据读取示意图

列变换数据组织模块org2负责列变换结果数据组织。列变换结果只有第1层列变换后的LL1区域和第2层列变换后的LL2区域的数据参与下一层行变换,因此也只有这些数据需要进行组织,其他数据作为最终的变换结果。这些数据的组织是结合后序操作进行的,文中不予说明。列变换结果组织的目标是在行变换过程中读取一次数据,可以读取同一列相邻两行的两个数据。数据组织形式与图3所示类似。

4 试验仿真

文中的设计在外部时钟为50 MHz下通过仿真验证。系统工作稳定可靠。仿真中主要参照C语言版本的数据。格外关注帧数据首尾、行列首尾的同步信号、控制信号、计数器和运算数据等。同时在行列中进行了大量的数据核对工作。在硬件设计中使用了数字时钟管理模块(DCM),同时对时钟和端口做了约束。仿真结果如图4所示。

图4 小波变换模块仿真截图

双正交小波变换采用提升步骤进行计算,大大降低了计算量,同时由于双运算核设计,系统能够达到实时处理的要求。双正交小波变换在图像压缩中性能优良。将小波变换作为图像压缩系统的一部分,进行了测试。测试过程中,将最终的小波系数按照编码扫描的要求进行组织。结果显示,该模块能够满足图像压缩系统的要求,数据正确,压缩性能优良,系统工作稳定。图5给出了小波变换模块应用于图像压缩编解码系统的测试结果。图5(a)为原始图像,图5(b),图5(c)和图5(d)分别为8倍,16倍和20倍压缩重构图像。在20倍压缩时,重构图像依然比较清晰。

图5 小波变换图像压缩测试结果

5 结束语

小波变换是图像压缩系统中的关键模块。其端口定义明确,易于进行独立设计。本文应用提升算法在FPGA硬件平台上实现了小波变换。使用了双运算核的设计,使得系统在不增加设计复杂性,不提高功耗的情况下,实现了数据的实时处理。系统通过了仿真验证,工作稳定可靠,达到实用要求。

[1] 崔锦泰.小波分析导论[M].西安:西安交通大学出版社,1995.

[2] DAUBECHIES I,SWELDEN W.Factoring wavelet transforms into lifting steps[J].Journal of Fourier Analysis and Applications,1998,4(3):247 -269.

[3] LIN T,HAO Pengwei,XU Shufang.Factoring m - band wavelet transforms into reversible integer mappings and lifting steps[C].IEEE International Conference on Acoustics,Speech,and Signal Processing,2005(4):629 -632.

[4] CHENG L,LIANG D L,ZHANG Z H.Popular biorthogonal wavelet filters via a liftings cheme and Its application in image compression [J].IEE Proc. - Vis.Image Signal Process.,August,2003,150(4):227 -232.

[5] SWELDEN W.The lifting scheme a custom -design construction of biorthogonal wavelets[J].Applied and Computational Harmonic Analysis,1996,3(2):186 -200.

[6] 王文君,陈思锦,秦其明,等.基于双正交小波的多分辨率遥感图像数据融台[J].现代电子技术,2004(5):33-36.

[7] 都伊林,戴文琪.双正交小波提升系数的递推算法与实现[J].现代电子技术,2006(8):77-80.

[8] 胡涛,黄铝文,张鹏.基于双正交小波变换在灰度图像压缩中的应用[J].现代电子技术,2004(21):84-86.

猜你喜欢
小波时钟运算
重视运算与推理,解决数列求和题
别样的“时钟”
构造Daubechies小波的一些注记
古代的时钟
有趣的运算
基于MATLAB的小波降噪研究
基于改进的G-SVS LMS 与冗余提升小波的滚动轴承故障诊断
“整式的乘法与因式分解”知识归纳
有趣的时钟
时钟会开“花”