无分裂结构的二维小波变换图片处理芯片设计与验证

时间:2022-08-06 07:53:19

无分裂结构的二维小波变换图片处理芯片设计与验证

摘要:5/3小波变换硬件实现常用结构是先完成分裂,再依照分裂后的数据完成预测部分和更新部分的变换,这需要复杂的控制结构。在此采用JPEG2000推荐的5/3小波变换公式,在基于行的列变换基础上提出了一种全新的无数据分裂的结构。该结构放弃地址寻址的数据读取模式,采用读取一维数据流节点的输入方式,从对应的寄存器中读取在多个寄存器中依次流动的数据,省略了数据输入的地址控制模块。由于减少了数据分裂步骤,并且无需控制预测及更新步骤的交替进行,因此简化了小波变换控制系统的结构。在此运用软硬件协同的验证方法,利用计算机软件和FPGA结合,完成图片从计算机端输入,在FPGA中完成小波变换,并输出到计算机显示器上显示的步骤。

关键词:小波变换; 软硬件协同验证; FPGA; JPEG 2000

中图分类号:TN91934; TP274文献标识码:A文章编号:1004373X(2012)04016904

Design and verification of 2D wavelet transform image processing chip without splitting structure

CHEN Lizi, FENG Jingping, PANG Zhiyong, CHEN Dihu

(ASIC Design Center, School of Physics and Engineering, Sun Yatsen University 510275, China)

Abstract: The common structure of hardware implementation of 5/3 wavelet transform is to split first and then complete the transform of the prediction part and updated part according to the data collected after split, which needs a complicated control structure. The 5/3 wavelet transform formula recommended by JPEG2000 is adopted and a new structure without data split is proposed based on the row transform of lines. Such a structure abandons the data reading mode depending on addressing but adopts the input mode of reading the onedimensional data flow nodes. It reads the data which flows in proper order in several registers from its corresponding registers and omits the address control module for data input. The structure of wavelet transform control system is simplified due to the reduction the data split step, and the alternation of prediction and update steps. By employing the verification method of hardware/software cooperation, the picture input from a computer port was achieved, the wavelet transform in FPGA was implemented and the pictures was displayed on the computer monitor in combination with computer software and FPGA.

Keywords: wavelet transform; cooperation verification with software and hardware; FPGA; JPEG 2000

收稿日期:201109290引言

小波分析是当前应用数学和工程学科中一个迅速发展的新领域,而近年来基于小波变换的图像压缩技术以硬件方式推向市场,图片压缩已成为小波变换极其重要的应用领域[12]。而在原有的小波变换的理论基础上发展的基于小波变换的更新算法,不采用Fourier变换作为主要的分析工具,这与经典小波变换相比具有小波构造简单、反变换容易实现、运算速度快和节省存储空间等优点。但其在硬件应用开发上,对中间数据量要求较大,占用较多寄存器,因而通过硬件结构的探索来减小寄存器的开销,成为小波变换图片处理的一个重要分支。

本文提出了无分裂步骤的5/3小波变换结构,完成了该结构的FPGA硬件实现,并结合计算机端Matlab软件,正确完成图片变换验证。

1硬件结构

1.1算法实现结构

本文采用JPEG2000推荐的5/3小波变换算法,算法公式如下:

y(2n+1)=x(2n+1)-x(2n)+x(2n+2)2

y(2n)=x(2n)+y(2n-1)+y(2n+1)+24常见的小波变化实现结构如图1所示,先完成分裂,再进行预测,最后完成更新步骤。分裂步骤是指通过对数据地址n的奇偶进行判断,将数据分裂为奇地址部分和偶地址部分。输入奇地址部分数据,进行预测部分运算,并输出细节数据;输入偶地址部分数据,完成更新部分运算,输出平滑数据。因此需要根据输入数据的地址,对数据进行分裂,或控制预测部分和更新部分交替工作[34]。

本文提出一种全新的运算结构,以一维数据流输入数据,无需数据分裂步骤,并且不需要控制预测部分和更新部分的运行和停止,通过对数据流固定节点取值,分别完成预测和更新步骤,并根据数据地址的变换,利用数据选择器从2个端替读取数据即能控制预测和更新步骤的运行。

1.2数据存取结构

本文采用基于行的列变化和流水线结构,完成二维小波变化数据处理。输入数据以一维数据流形式逐一输入,变化模块读取数据流中的数据进行数据计算,产生变化结果。

图1常见小波变换结构图1.2.1行变换数据存取结构

行变换模块输入数据读取方式,是用读取寄存器中数据流的方式代替地址寻址的数据读取模式。

数据依照输入顺序,在寄存器A,B,C,D中依次流动。变换模块在不同的时间分别从A,C和D中读取数据,进行预测和更新的变化步骤。变换后输出的数据存放在列变换模块的寄存器D1和FIFOA中。行变换模块结构图如图2所示。

图2行变换模块结构图1.2.2列变化数据存取结构

在进行列变换时,需要读取变换数据点临近行的同列数据。而完成该数据点变换后,进行的是同一行下一列的数据点的列变换。因此需要依次读出相邻4行的同列数据,行数不变,列数依次递增[56]。

为了简单的实现该数据读取的顺序,本文使用3个FIFO来保存连续3行的数据:当输入新一行的第1个数据时,3个FIFO释放出第1个数据(即之前3行每1行的第1个数据),刚好组成完成列变换的相邻4行的同列数据。同时,数据的新1行的数据进入FIFOA,FIFOA释放出的数据进入FIFOB,FIFOB释放出的数据进入FIFOC。之后,释放出第2列的数据,并重复上述步骤。

因此在完成数据变换的同时,数据在FIFOA,FIFOB,FIFOC中依次流动。完成该行的所有列数据的变换后,FIFOA中的数据依次寄存在FIFOB中,FIFOB的数据寄存在FIFOC中,而FIFOA则寄存了新1行的数据。当下1行的数据输入时,又依照上述顺序,开始下1行的列变换。

1.3变换模块结构

常见的小波变换结构是当输入奇数地址数据时完成预测步骤,当输入偶数地址数据时完成更新步骤。而本文提出的结构不进行数据分裂,直接对数据进行预测和更新,并同时输出到数据选择器。数据选择器对地址奇偶进行判断,选择输出数据,可以得到和常用结构相同的结果。列变换模块结构图如图3所示。

图3列变换模块结构图1.3.1行变换结构

本文提出了无分裂步骤的结构中,行变换时数据流输入后依次寄存在寄存器D1,D2,D3,D4中。如图4(a),寄存器D1,D2,D3,D4中已分别寄存了输入数据X4,X3,X2,X1,而寄存器D5,D6,D7则分别寄存了数据Y2,Y1,Y0。此时利用寄存器D1,D2,D3中的数据X4,X3,X2经过预测步骤,得到预测结果y3=x3-(x2+x4)/2;此前已在寄存器D5,D6,D7中分别寄存了前3个时钟分别完成计算的结果Y2,Y1,Y0,则经过更新步骤可得y1=x1+(y0+y2+2)/4。此时通过数据选择器输出的值Y1是奇数地址,因此仅需要完成预测步骤运算的结果(即寄存器D6中的数据),也就是说输出寄存器D6中的Y1值,放弃更新步骤产生的Y1值。

在下一个时钟沿来临时,X4,X3,X2依次取代X3,X2,X1的位置,输入的X5则寄存在X4的位置,同理Y2,Y1依次取代Y1,Y0的位置,预测产生的Y3值则寄存在Y2,则下一次计算时,寄存器中的值如图4b,预测步骤产生Y4,更新步骤产生Y2,由于是偶数地址,所以通过数据选择器输出经过更新步骤的Y2值。

1.3.2列变换结构

列变换时,假设第m行的第n列完成行变换后的数据为X(m,n),将该数据寄存在寄存器D1中,下个时钟沿来临时,FIFOA和FIFOB中分别释放出第m-1和m-2行的第n列的数据X(m-1,n)和X(m-2,n),同D1中X(m,n)数据共同完成预测步骤生成Y(m,n)并寄存在D2中,同时从D1和FIFOA,FIFOB中释放出的数据X(m,n),X(m-1,n)和X(m-2,n)分别寄存进FIFOA,FIFOB,FIFOC。再下一个时钟沿来临时,完成第m行第n+1列的行变换,并寄存在D1中,之后即可按照上述步骤完成第m行第n+1列数据的预测和更新,得出结果Y(m,n+1)。当FIFO把第m行数据完全释放出时,已在该FIFO寄存了第m+1行的完整数据,可以开始下一行的列变换。同理,完成预测步骤的数据寄存在D2,FIFOD,FIFOE中,依据预测步骤相似的原理完成更新步骤。之后依据数据的列地址的奇偶,选择不同的Y值输出。

图4行变换数据变换图1.4控制结构

一般的变化模块,均采用状态机的控制方法,利用状态的跳转,来控制行变化和列变化之间的关系,完成预测和更新步骤。

而本文提出了全新的、更为灵活的直角坐标系控制法,即利用行坐标(rowc)和列坐标(colc)形成一个二维直角坐标系,并将图片映射到直角坐标系上,每一对坐标(rowc,colc)对应直角坐标系上图片的一个点,也对应该点的变换时刻。通过rowc,colc的值来判断正在进行变换的行列值,来决定FIFO和变化模块的动作。利用rowc,colc的末位来判断进行变换的行和列地址分别是奇数地址还是偶数地址,决定是进行预测步骤还是更新步骤。结合计数器,通过输入的图片的行像素值M和列像素值N,分别控制rowc和colc的跳变。因而可以简单的通过改变M,N值的大小来改变进行变换的图片的大小。

2结果验证

2.1采用软硬件协同验证的结构

本文采用软硬件协同工作的结构,如图5所示。利用计算机端的Matlab软件从FPGA芯片中读取变换后的RGB数据,并显示在计算机显示器上。

具体结构是将图片数据通过北翰科技公司的Verilink插件,从Matlab软件中送入FPGA芯片中的FIFO,小波变换模块从FIFO中依次读取数据,并进行变换,完成变换的数据通过FIFO送回Matlab软件,并显示在计算机的显示器上。

图5软硬件协同结构图2.2验证结果

本文采用128×128像素RGB图片作为变换图像源,在计算机的Matlab软件中,将图片转换成一维数据流,并依次通过Verilink插件送入FPGA芯片的FIFO中,在送入数据的同时,FPGA中的变换模块从FIFO中读出数据进行变换,并将变换结果通过输出的FIFO送至计算机端的Matlab软件。在完成全部数据变换后,在计算机端将获得的数据重新排列,并转换成128×128×3的RGB图片格式,并对比显示变换前和变换后的图片效果。变换前图片如图6(a),变换并重排后图片如图6(b),图片数据高频分量和低频分量分离正确无误。

3结语

本文提出了无分裂步骤的小波变换结构,简化了变换模块的控制系统,采用数据流模式输入数据,并且和软硬件协同的工作方式良好配对,利用FPGA和计算机完成了二维小波变换的板级验证。本文提出的结构在5/3小波变换中有效运行,并起到简化结构的关键作用,下一步将尝试把该结构运用于9/7小波变换的硬件结构实现中,并提出适合9/7小波变换硬件实现的结构。

图6验证结果图片对比参考文献

[1]CHRISTOPOULOS C, SKODRAS A, EBRAHINMI T. The JPEG2000 still image coding system: an overview \[J\]. IEEE Transactions on Consumer Electronics, 2000, 46 (4): 11031127.

[2]SCHWARZ H, MARPE D, WIEGAND T. Overview of the scalable video coding extension of the H.264/AVC standard \[J\]. IEEE Transactions on Circuits and Systems for Video Technology, 2007, 17 (9): 11031120.

[3]JOSE C, THOMAS L. Hardware implementation of 1D wavelet transform on an FPGA for infrasound signal classification \[J\]. IEEE Transactions on Nuclear Science, 2008, 55 (1): 913.

[4]WU B F, LIN C F. A highperformance andmemoryefficient pipeline architecture for the 5/3 and9/7 discrete wavelet transform of JPEG 2000 codec \[J\]. IEEE Trans. on Circuits and Systems, 2005, 15 (12): 16281651.

[5]ACHARYA T, CHAKRABARTI C. A survey onliftingbased discrete wavelet transform architectures \[J\]. VLSI Signal Processing Systems, 2006, 42 (3): 321339.

[6]ANDRA K, CHAKRABARTI C, ACHARYA T. A VLSI architecture for liftingbased forward and inverse wavelet transform \[J\]. IEEE Transactions on Signal Processing, 2002, 50 (4): 966977.

[7]陈维波,邓家先,王海荣.基于FPGA的快速9/7整形离散小波变换系统设计\[J\].电子科技,2010(5):46.

[8]周新文,钟明光.双运算核提升小波变换的FPGA硬件实现\[J\].电子科技,2010(6):1518.

[9]钟云德,史承兴,闵彪.基于FPGA的多级小波逆变换实时系统设计\[J\].电子科技,2010(9):3033.

上一篇:超宽带雷达自组网的数字波束扫描研究与实现 下一篇:光学电压互感器晶体双折射误差的分析与抑制