技术领域
[0001] 本
发明属于超大规模集成
电路(Very Large Scale Integration,简称VLSI)设计范畴,设计出一种的基于提升
算法的高性能二维
离散小波变换(Discrete Wavelet Transform,简称DWT)的VLSI结构。
背景技术
[0002] 离散小波变换以其优异的时频局部特性和良好的去相关能
力,作为多
分辨率分析的有效工具,在
信号处理和视频压缩等领域获得了广泛的应用。由于DWT计算量较大,为了满足实时处理的需要,必须将算法运行在
硬件电路上以提升计算速度。因此设计高效的离散小波变换的硬件架构具有重要意义,其中提高系统性能和减少硬件开销成为离散小波变换架构优化设计的主要考虑因素。
[0003] 在目前已有的二维DWT电路结构中,各文献创新主要集中在算法内部的硬件效率上。Darji A等人在论文《Dual-scan parallel flipping architecture for a lifting-based 2-D discrete wavelet transform》中使用了较为传统的提升算法,使用了乘法器和加法器进行运算,改进了转置结构。Hu Y和Jong C C在论文《A memory-efficient scalable architecture for lifting-based discrete wavelet transform》中阐述了一种并行提升算法。随着并行度的提高,计算速度有所提升。但是在扫描方式的选择上,由于其使用了
自上而下的图像扫描方式,故需要存入整张图像的数据后才能开始进行处理,存储需求较大。Mohanty B K等人在论文《Area-and power-efficient architecture for high-throughput implementation of lifting 2-D DWT》中提出一种并行的DWT计算架构,采用了多个输入数据同步的读取方式,在速度上和硬件开销上取得了较为平衡的的效果。Hsia C H等人在论文《Memory-efficient hardware architecture of 2-D dual-mode lifting-based discrete wavelet transform》中设计了一种三输入无乘法器DWT计算结构。该结构使用移位加法器替代了乘法器,减小了硬件开销,但是由于其扫描方式为自上而下,故存储需求也较大。Darji A等人在论文《Multiplier-less pipeline architecture for lifting-based two-dimensional discrete wavelet transform》中使用了一种基于改进的提升算法的二维DWT架构,在其架构中也使用了移位加法器替代乘法器,减少了硬件开销。但是由于其系数
精度只有8为,计算精度损失严重。曹鹏和王超在
专利《一种二维离散小波变换的硬件架构》中使用了基于处理单元的设计架构,硬件速度较高,但是转置缓存较大。
[0004] 基于以上分析,现有架构都忽略了一个现象:通常输入数据是单个数据依次输入,而并不是直接一次性输入大量数据。基于以上现象,本发明提出了一种新型DWT架构。
[0005] Wei Z等人在论文《An Efficient VLSI Architecture for Lifting-Based Discrete Wavelet Transform》提出了改进的二输入提升架构,将一维9/7小波变换总结为以下公式:
[0006]
[0007]
[0008]
[0009]
[0010]
[0011]
[0012]
[0013]
[0014] H°(2n+1)=-K×H(2n+1) (9)
[0015]
[0016] 其中,x为输入数据, 为列变换中需要暂存的中间变量,H°(2n+1)和L°(2n)为小波变换的输出结果,常系数取值分别为α=-1.586134342,β=-
0.052980118,γ=0.882911075,δ=0.443506852,K=1.230174105。经过两次该过程运算即可得到二维DWT结果。本发明将以公式(1)~公式(10)为
基础进行改进设计。
发明内容
[0017] 考虑到输入数据多为单
像素数据依次进入,现有架构需要较大的输入数据存储空间;另一方面,目前多数架构使用乘法器较多,导致硬件效率较低的问题,本发明提出一种二维离散小波变换的VLSI设计方法,本发明的技术方案为:
[0018] 1.一种二维离散小波变换的VLSI设计方法,采用9/7小波的能离散小波变换架构,将暂存变量从4个减少为3个,输入数据个数从2个增加到3个,利用公式(2)~公式(4)、公式(6)~公式(10)和公式(11)组成三输入小波变换计算方法:
[0019]
[0020]
[0021]
[0022]
[0023]
[0024]
[0025]
[0026]
[0027] H°(2n+1)=-K×H(2n+1) (9)
[0028]
[0029]
[0030] 其中,x为输入数据,y为输出数据, 为列变换中需要暂存的中间变量,H°(2n+1)和L°(2n)为小波变换的输出结果,常系数取值分别为α=-
1.586134342,β=-0.052980118,γ=0.882911075,δ=0.443506852,K=1.230174105;
[0031] 硬件架构包括输入数据存储模
块、列变换模块、转置模块、行变换模块以及缩放模块。数据先依次进入数据存储模块,然后由存储模块送往后续模块依次进行处理,最终由缩放模块输出,公式中的所有乘法运算均使用加减法移位操作替代;
[0032] 输入数据存储模块用于暂时存储输入图像数据,输出为3个同列的像素点数据。
[0033] 列变换模块负责完成二维小波变换的列向一维变换计算,整个模块分为两步提升,共设计11级流
水线,关键路径延时为Ta,即一个16位加法器延时,利用公式(2)~公式(4)、公式(6)~公式(10)和公式(11)组成三输入小波变换计算方法;
[0034] 转置模块,用于数据的重新排列,关键路径为Tmux,即一个选择器延时。
[0035] 行变换模块,负责完成二维变换中的行向一维变换计算。整个模块分为两步提升,共设计11级流水线,关键路径延时为Ta。使用基于公式(1)~公式(10)的二输入计算方法。
[0036] 缩放模块设计4级流水线,关键路径延时为Ta。
[0037] 本发明提供了一种硬件效率更高的二维离散小波变换结构,使用加减法移位操作替代了乘法器,缩短了关键路径延时,设计了更为高效的输入数据存储以及扫描方式,在提升系统运算速度的同时,节省了硬件开销,具有更高的硬件效率。
附图说明
[0038] 图1为本发明的整体结构图
[0039] 图2为本发明所采用的扫描方式示意图
[0040] 图3为图1中输入数据存储模块的结构图
[0041] 图4为图1中列变换模块的结构图
[0042] 图5为图1中转置模块的结构图
[0043] 图6为图1中行变换模块的结构图
[0044] 图7为图4和图6中第一个乘法器M1的结构图
[0045] 图8为图4中第二个乘法器M2的结构图
[0046] 图9为图6中第二个乘法器M2’的结构图
[0047] 图10为图4和图6中第三个乘法器M3的结构图
[0048] 图11为图4和图6中第四个乘法器M4的结构图
[0049] 图12为图1中缩放模块的结构图
具体实施方式
[0050] 下面结合附图对本发明进行详细说明。
[0051] 如图1所示,本发明为一种高性能的二维离散小波变换架构,适用于9/7小波系数,包括输入数据存储模块、列变换模块、转置模块、行变换模块以及缩放模块,上述5个模块依次连接。图像数据以
逐行扫描的方式输入数据存储模块,离散小波变换的输出结果由缩放模块输出。
[0052] 本发明首先根据公式(1)~公式(10),提出改进的三输入计算方法。将公式(1)带入公式(5)中,可得到
[0053]
[0054] 其中, 被替换,所需要的暂存变量从4个减少为3个,输入数据个数从2个增加到3个。公式(2)~公式(4)、公式(6)~公式(10)和公式(11)组成了本发明的三输入小波变换计算方法。
[0055] 其次,基于上述计算方法,设计了一种应用于9/7小波的高性能离散小波变换架构,包括输入数据存储模块、列变换模块、转置模块、行变换模块以及缩放模块。数据先依次进入数据存储模块,然后由存储模块送往后续模块依次进行处理,最终由缩放模块输出。公式中的所有乘法运算均使用加减法移位操作替代。
[0056] 输入数据存储模块用于暂时存储输入图像数据,输出为3个同列的像素点数据。
[0057] 列变换模块包含15个加法器、9个减法器、33个寄存器以及3个深度为N,宽度为16位的RAM。该模块负责完成二维小波变换的列向一维变换计算。整个模块分为两步提升,共设计11级流水线,关键路径延时为Ta,即一个16位加法器延时。列变换使用了三输入计算方法。
[0058] 转置模块包含3个寄存器和2个选择器,用于数据的重新排列,关键路径为Tmux,即一个选择器延时。
[0059] 行变换模块包含16个加法器、9个减法器以及37个寄存器,负责完成二维变换中的行向一维变换计算。整个模块分为两步提升,共设计11级流水线,关键路径延时为Ta。由于转置模块输出为二个数据,因此行变换模块使用的是基于公式(1)~公式(10)的二输入计算方法。
[0060] 缩放模块由10个加法器、4个减法器、18个寄存器以及2个选择器组成,共设计了4级流水线,关键路径延时为Ta。
[0061] 在本发明中,图像数据以逐行扫描的方式进入数据存储模块。数据存储模块负责将数据
整理重排,按照图2所示方式进行输出,之后的DWT模块实质上是一个三输入的二维DWT模块。
[0062] DWT模块中包含列变换模块、转置模块、行变换模块以及缩放模块。
[0063] 列变换模块结构如图4所示,该模块使用了两级提升的架构,由4个乘法器、8个加法器、3个RAM以及19个寄存器组成,整个架构以流水线方式进行计算。由于使用了图7、9-11的乘法器替代结构,4个乘法器被7个加法器、9个减法器以及14个寄存器所替代,同时也将关键路径延时缩短为一个减法器延时。而一个16位减法器延时等于一个
反相器延时和一个16位加法器延时的和,而且一个反相器延时远小于一个16位加法器延时,故一个减法器延时近似等于加法器延时。因此,该模块关键路径延时缩短至一个加法器延时(Ta)。
[0064] 转置模块结构如图5所示,由3个寄存器和2个选择器组成,负责完成列变换模块的输出转置。
[0065] 行变换模块结构如图6所示。与列变换模块相似,行变换模块也使用了两级提升的流水线架构,由4个乘法器、8个加法器以及18个寄存器组成。具体实现时使用了图8-11的乘法器替代结构,4个乘法器被8个加法器、9个减法器以及15个寄存器所替代,关键路径为一个减法器延时,约等于Ta。
[0066] 缩放模块结构如图12所示。实质上缩放模块进行了4个乘法运算,通过两个选择器进行结果选择。由于使用了乘法器替代结构,故整个模块由10个加法器、4个减法器、18个寄存器以及2个选择器构成,关键路径为一个减法器延时,约等于Ta。
[0067] 本发明还对提出的架构进行了分析,各模块的硬件开销如表1所示。
[0068] 表1本发明各模块的硬件开销
[0069]
[0070]
[0071] 本发明与现有其他二维离散小波变换架构进行了对比,对比结果如表2所示。
[0072] [1]代表Darji A等人(2014)的传统的双输入、水平扫描架构,[2]代表Hu Y和Jong C C(2013)并行计算、自上而下扫描的架构,[3]代表Mohanty B K等人(2012)的双输入水平扫描并行计算架构,[4]代表Hsia C H等(2013)的三输入、无乘法器、自上而下扫描的架构,[5]代表Darji A等人(2015)的双输入、无乘法器、水平扫描架构,[6]代表曹鹏和王超(2012)的单输入、水平扫描架构。表中S代表并行架构中的并行度,通常取S=8或16,CPD表示该架构的关键路径延时(Critical Path Delay)。
[0073] 表2各架构硬件开销对比
[0074]
[0075] 为了更明确的对比不同架构之间的硬件效率,使用参数——预估晶体管数-延时-吞吐率(Transistor Count-Delay-Product,简称TDP)进行效率对比,计算公式如下:
[0076] TDP=TransistorCount×CPD×ACT(transistor·s) (12)
[0077] 其中Transistor Count表示架构的总晶体管数量,ACT(全称Active Cycle Time)表示计算一副图像所需要的周期数,ACT=N2/吞吐量。
[0078] 单个器件的硬件开销以及延时如表3所示。表4为整体架构的硬件效率对比,其中测试图像大小为1024×1024,即N=1024。
[0079] 表3单一器件的晶体管数占用以及延时
[0080]器件 晶体管数 CPD
16位加法器 504 3.01ns
16位乘法器 5852 6.79ns
16位寄存器 256 -
1x16位RAM 96 -
1x8位RAM 48 -
[0081] 表4整体架构的硬件效率对比
[0082]
[0083]
[0084] 从表4中可以看出,本发明架构的TDP最小,所以硬件效率最高。虽然[5]在效率上与本发明接近,但是其计算精度差,缺乏实用价值。因此,本发明所设计的二维离散小波变换架构缩短了系统的关键路径,减少了片内存储需求,具有较高的硬件效率。