专利名称:Jepg2000中小波变换算法的高效vlsi实现结构的制作方法
技术领域:
本发明主要是关于国际最新静态图像压缩标准——JPEG2000(标准号15444-1)的核心编码部分中的离散小波变换单元的VLSI实现结构。
整个JEPG2000核心编码算法可以分为五个部分图像预处理,离散小波变换(DWT),基于位平面的熵编码(BPC),算术熵编码(MQ-Coder)以及码流的后处理部分。而小波变换作为一种新兴的处理算法成为整个标准的核心。于是,小波变换部分的VLSI实现也是整个标准的研究重点。小波变换算法具有两种实现方式,即基于卷积(convolution)的实现方式和基于提升(lifting)结构的实现方式。
基于卷积的实现方式的VLSI实现方面应有了较多的研究。根据它们的特点可以将其分为两类结构串行结构和并行结构。在以下几篇论文中对基于串行方式的实现结构进行了详细的描述。(1)M.Vishwanath,R.Owens,and M.J.Irwin,“VLSI architecture for the discrete wavelettransform,”IEEE Trans.Circuits Syst.II,Vol.42,pp.305-316,May 1995(2)J.S.Fridman and E.S.Manolakos,“Discrete wavelet transformData dependence analysisand synthesis of distributed memory and control array architectures,”IEEE Trans.SignalProcessing,Vol.45,pp.1291-1308,May 1997(3)T.Acharya,“A high speed systolic architecture for discrete wavelet transforms,”in Proc.IEEE Global Telecommun.Conf.,Vol.2,1997,pp.669-673在以下的几篇论文中对并行结构进行了详细的阐述。(4)K.K.Parhi and T.Nishitani,“VLSI architectures for discrete wavelet transforms,”IEEETrans,VLSISyst.,Vol.1,pp.191-202,June 1993(5)A.Grzeszczak,M.K.Mandal,S.Panchanathan,and T. Yeap,“VLSI implementation ofdiscrete wavelet transform,”IEEE Trans.VLSI Syst.,Vol.4,pp.421-433,June.1996(6)C.Chakrabarti and M.Vishwanath,“Efficient realizations of the discrete and continuouswavelet transformsFrom single chip implementations to mappings on SIMD arraycomputers,”IEEE Trans.Signal Processing,Vol.43,pp.759-771,Mar.1995但是由于基于卷积的离散小波变换的实现结构,具有较高计算复杂度;在计算过程中需要较多的缓冲存储,从而在小波变换的硬件实现的复杂度和成本方面成为限制其广泛应用的障碍。于是,一种改进的离散小波变换的时现方式——基于提升(lifting)的小波变换算法被提出。并成为JEPG2000标准中的推荐小波变换实现算法。和传统基于卷积的小波变换的实现方式相比较,除了在计算复杂度和计算缓存数量上的明显减少之外,基于提升的小波变换的实现算法还具有原位计算能力,即计算产生的结果可以存回相应原始数据位置,这样可以减少计算过程中中间结果的缓存,并且有利于小波逆变换处理的实现。下面几篇论文是最近几年关于“基于提升结构小波变换的VLSI实现”的一些研究成果。(7)W.Jiang and A.Ortega,“Lifting factorization-based discrete wavelet transform architecturedesign,”IEEE Trans.Circuits Syst.Video TechnoL,Vol.11,pp.651-657,May 2001(8)C.J.Lian,K.F.Chen,H.H.Chen,and L.G.Chen,“Lifting Based Discrete WaveletTransformation Architecture for JPEG2000,”CAS2001(9)K.Andra,C.Chakrabarti,and T.Acharya,“A VLSI architecture for lifting-based forwardand inverse wavelet transform,”IEEE Transactions on Signal processing,Vol.50,No.4,pp.966-977,April.2002上述的实现结构根据数据的处理方式可以分为串行处理结构和并行处理结构。并行处理结构具有较高的处理速度,但是在数据控制和存储单元的调度方面存较为复杂,从而增加了设计复杂度和硬件实现的成本。串行的处理方式具有简单的控制结构,易于实现;于是成为目前较为推崇的处理结构。其中台湾大学C.J.Lian等人的结构具有较为显著的优点,但是他们只是进行对小波变换处理单元进行了描述,在其系统存储单元的分布和调度方面没有进行详细的阐述。另外,美国亚利桑那州立大学K.Andra等人提出了专用于JEPG2000的小波变换VLSI结构,并对结构进行详细的阐述;但是,其结构在灵活性和处理速度方面还不十分理想。于是,具有高灵活性和处理速度适用于JPEG2000的小波变换VLSI结构的还有待进一步的深入研究。
本发明提出的适用于JPEG2000中小波变换算法的VLSI结构,是基于流水线操作和多个有限状态机控制方式,其包括基本控制单元(Basic Control Unit),读/写数据地址产生单元(Address Generation Unit),一维小波变换处理单元(WPU)和内部数据存储单元(Memory Units)。
图1中给出了本发明中总体结构示意图。
本发明中,两维图像数据的小波变换处理按照行/列方式进行,处理两维图像数据块的尺寸为N×N。
在正向离散小波变换过程中,处理结构首先从外部存储单元读取一对数据进行列方向上的小波分解。这里推荐外部存储单元中的数据按照列方向模式,根据其数据序列的奇/偶索引进行存储,这样有利于数据的访问,否则需要对结构中的读外部数据的控制进行相应改动,使之满足一次读入一对奇/偶索引数据。外部数据的推荐存储方式如图2所示。然后,经过小波分解后的数据存入相应的内部存储单元中;这时完成了第一次的列方向上的小波变换分解,生成了列方向上的低频子带(L1C)和高频子带(H1C)。接下来,按照行方向读取数据进行行方向上的小波变换,处理后的数据存入相应的存储单元,这时生成四个子带行低频-列低频(L1RL1C)子带,行低频-列高频(L1RH1C)子带,行高频-列低频(H1RL1C)子带和行高频-列高频(H1RH1C)子带。然后,行低频-列低频子带继续进行下一级小波变换处理,其它三个子带则可以进行JPEG2000核心编码算法中的基于位平面熵编码处理。行低频-列低频子带按照上述的处理方式,首先进列方向的小波变换,然后是行方向的小波变换,同样生成一系列子带。对生成的行低频-列低频子带进行进一步的小波变换直到预定的分解级数为止。
在逆向小波变换过程中,以上的所有处理过程按照其逆方向的方式处理。
下面对各个处理单元进行分别的阐述。
本发明中,基本控制单元负责控制系统中各个模块的控制和数据调度,包括控制正向/逆向小波变换时地址产生单元(AGU)产生读/写外部存储单元的地址信号;控制正向/逆向小波变换时地址产生单元(AGU)产生读/写内部存储单元的地址信号;控制正向/逆向小波变换时小波处理单元的流水线处理的数据调度;控制小波处理单元的数据延拓方式选择等。
本发明中,内部数据存储单元的组织采用10块双口静态随机存储器(RAM)作为小波变换过程中的数据存储单元;每块静态随机存储器(RAM)的尺寸为N/2×N/4=N2/8,N为待处理的两维图像数据块的尺寸;每块静态随机存储器(RAM)基本单元的数据宽度为16比特(bits);根据10块静态随机存储器(RAM)在小波变换过程中功能,将其分为三组组1,组2和组3;组1中包括正在进行小波变换处理的静态随机存储器(RAM),组2中包括用于小波变换的缓冲数据的静态随机存储器(RAM),组3中包括已经完成了小波处理的静态随机存储器(RAM)。
本发明中,读/写数据地址产生单元主要负责产生处理数据读/写地址的产生,包括对外部读/写数据地址的生成,内部存储单元访问的数据地址的产生;按照其数据操作的不同,将其分为读数据地址产生过程和写数据地址产生过程;这两个处理过程具有双重功能的处理过程在正向小波变换过程中,读数据地址产生过程和写数据地址产生过程分别负责读/写数据地址的生成;在逆向小波变换过程中,原来的读数据地址产生过程变为写数据地址产生过程,而原来的写数据地址产生过程变为读数据地址产生过程;这样的两个具有双重功能的地址产生过程是采用两个具有双向工作的有限状态机(FSM)来实现。
本发明中,一维小波变换处理单元完成JPEG2000标准中推荐的一维5/3和9/7小波滤波处理过程。在本发明中采用了高速、可配置的一维离散小波变换结构。该结构是基于流水线操作的一种串行处理方式,基本架构由图6所示。该结构整体基于9/7滤波器的四级数据提升(lifting)处理过程,每级提升(lifting)过程对应着一个乘加处理(MAC)操作。当进行正向小波变换时,在数据输出端进行数据的重规整化(renormalization)处理;当进行逆向小波变换时,逆向的数据重规整化(renormalization)过程在输入数据端进行。对5/3小波处理,只具有两级的数据提升(lifting)过程,在这里可以将其和9/7滤波过程的前半部分结构进行复用,这样可以适当的节省硬件资源。
图2本发明结构中推荐的外部存储单元的数据组织图。
图3本发明结构中的内部存储单元的动态分配图。
图4地址产生单元的双向处理功能的有限状态机。
图5地址产生单元的读写数据状态机各个状态的存储单元的访问情况。
图6一维小波变换单元结构示意图。
图中标号1为基本控制单元(Basic Control Unit),2为读/写数据地址产生单元(AddressGeneration Unit),3为外部存储单元,4为一维小波变换处理单元(WPU),5为内部数据存储单元(Memory Units),6为JPEG2000中的熵编码(EBCOT)单元。
控制计数器还控制小波变换过程中流水线的数据调度和数据延拓的进行。这些将在小波处理单元部分进行详细的阐述。
存储单元的组织(Memory Organization)外部存储单元的组织情况在上面已经给出,这里对内部数据存储单元的组织进行进一步阐述。本发明的结构中采用10块双口静态随机存储器(RAM)作为小波变换过程中的数据存储单元;每块静态随机存储器(RAM)的尺寸为N/2×N/4=N2/8,N为待处理的两维图像数据块的尺寸;每块静态随机存储器(RAM)基本单元的数据宽度为16(比特)bits;根据10块静态随机存储器(RAM)在小波变换过程中功能,将其分为三组组1,组2和组3,组1中包括正在进行小波变换处理的静态随机存储器(RAM),组2中包括用于小波变换的缓冲数据的静态随机存储器(RAM),组3中包括已经完成了小波处理的静态随机存储器(RAM)。在小波变换过程中,10块静态随机存储器(RAM)将在不同的时间动态的分配到三个功能组中。正向小波变换时10块静态随机存储器(RAM)的动态分配情况由图3给出。其中S_0,表示第一级行方向小波变换过程和第一级列方向小波变换的前半处理过程,这是0~7存储单元全部用于小波变换处理,8,9号存储单元用于缓存处理过程中的数据。S_1第一级列方向小波变换的后半处理过程,这时5,7,8,9号存储单元存储着生成的第一级小波变换生成的LH和HH子带,由于这两个子带不需要进一步的小波分解进行,它们将进入功能组3。这时,0,2号存储单元用于小波变换过程中的缓冲数据存储单元,分配到组2。接下来,S_2表示第二级列方向小波变换过程和第二级行方向小波变换的前半处理过程,这是原始子带数据只有存在1和4号存储单元的数据,所以参与数据小波变换的只有1和4号存储单元的数据。缓冲存储单元依然为0和2号存储单元。其余存储单元已经完成了小波分解,属于功能组3。按照这样的动态分配过程,到预定分解级数L时,所有小波分解结束,都属于功能组3。在进行逆向小波变换时,各个存储单元的动态分配情况和正向小波变换时完全相反。
读/写数据地址产生单元(AGU)读/写数据地址产生单元(AGU)主要负责产生处理数据读/写地址的产生;包括对外部读/写数据地址的生成,内部存储单元访问的数据地址的产生;按照其数据操作的不同,将其分为读数据地址产生过程和写数据地址产生过程;这两个处理过程具有双重功能的处理过程在正向小波变换过程中,读数据地址产生过程和写数据地址产生过程分别负责读/写数据地址的生成;在逆向小波变换过程中,原来的读数据地址产生过程变为写数据地址产生过程,而原来的写数据地址产生过程变为读数据地址产生过程;这样的两个具有双重功能的地址产生过程是采用两个具有双向工作的有限状态机(FSM)来实现。图4中是具有双向工作的有限状态机的示意图。当进行正向小波变换时,有限状态机按照顺时针方向工作,其中0表示第一级列方向小波变换状态,1表示第一级行方向小波变换状态,……,2L-1表示第L级行方向小波变换状态。在逆方向小波变换时,有限状态机按照逆时针方向工作,其中2L-1表示第一级列方向逆向小波变换状态,2L-2表示第一级行方向逆向小波变换状态,……,0表示第L级行方向小波变换状态。
两个控制状态机——读数据状态机(RFSM)和写数据状态机(WFSM)完成处理过程中读/写数据的地址生成。其中每个状态对应着不同存储单元的访问,具体的各个状体所对应的存储单元的访问情况在图5中给出。读数据状态机的初始状态从外部存储单元中读入数据,其后的状态处理转入内部存储单元的访问。写数据状态机只对内部单元进行访问操作。当进行逆向小波变换时,两个状态机全部按照逆向工作,其功能也相反,读数据状态机(RFSM)变为写数据状态机(WFSM);写数据状态机(RFSM)变为读数据状态机(WFSM),最终处理结果写入外部存储单元中。
一维小波变换处理单元(WPU)一维小波变换处理单元(WPU)完成JPEG2000标准中推荐的一维5/3和9/7小波滤波处理过程。在本发明中采用高速、可配置的一维离散小波变换结构。该结构是基于流水线操作的一种串行处理方式,基本架构由图6所示。该结构整体基于9/7滤波器的四级数据提升(lifting)处理过程,每级提升(lifting)过程对应着一个乘加处理(MAC)操作。当进行正向小波变换时,在数据输出端进行数据的重规整化(renormalization)处理;当进行逆向小波变换时,逆向的数据重规整化(renormalization)过程在输入数据端进行。对5/3小波处理,只具有两级的数据提升(lifting)过程,在这里可以将其和9/7滤波过程的前半部分结构进行复用,这样可以适当的节省硬件资源。但是在不同的小波滤波器和不同的处理过程(正向或逆向)中,各个提升(lifting)过程对应的乘加处理操作具有不同的系数和操作顺序,因此结构中采用了12个不同的乘加单元(MAC)和8个2选1选择器来完成正向/逆向的5/3和9/7小波处理过程。另外,结构中采用了独有的嵌入式数据延拓方式,它可以有效的减少数据延拓的缓存需要和访存次数。各功能是通过八个2选1选择器加上相应的控制逻辑来完成的。表2给出了各种情况下的各个选择器的工作情况。
本发明结构的VLSI实现我们已经根据本发明中提出的结构,采用Verilog硬件描述语言开发其RTL级的设计模型,并选用中芯国际(SIMC)0.18-μm工艺库,在SYNOPSYS工具中进行了综合,得到其核心逻辑面积(不包括内部存储单元)约为11000个等效门(标准两输入与非门),估计的最高时钟频率为330MHz。表3给出了本发明结构和美国亚利桑那州立大学K.Andra等人提出结构的比较结果,可以看出本发明中的结构在增加少量存储单元的情况下,使设计复杂度和处理速度等方面都有明显的改善。
表1正向小波变换过程中控制计数器各个阶段产生的主要控制信号
表2嵌入式数据延拓过程的控制
表3本发明结构的性能比较
权利要求
1.一种适用于JPEG2000中小波变换算法的VLSI结构,其特征在于基于流水线操作和多个有限状态机控制方式,包括基本控制单元、读/写数据地址产生单元、一维小波变换处理单元和内部数据存储单元。
2.根据权利要求1所述的VLSI结构,其特征在于基本控制单元负责控制系统中各个模块的控制和数据调度,包括控制正向/逆向小波变换时地址产生单元(AGU)产生读/写外部存储单元的地址信号;控制正向/逆向小波变换时地址产生单元(AGU)产生读/写内部存储单元的地址信号;控制正向/逆向小波变换时小波处理单元的流水线处理的数据调度;控制小波处理单元的数据延拓方式选择。
3.根据权利要求1所述的VLSI结构,其特征在于内部数据存储单元的组织采用10块双口静态随机存储器(RAM)作为小波变换过程中的数据存储单元;每块静态随机存储器(RAM)的尺寸为N/2×N/4=N2/8,N为待处理的两维图像数据块的尺寸;每块静态随机存储器(RAM)基本单元的数据宽度为16(比特)bits;根据10块静态随机存储器(RAM)在小波变换过程中功能,将其分为三组组1,组2和组3,组1中包括正在进行小波变换处理的静态随机存储器(RAM),组2中包括用于小波变换的缓冲数据的静态随机存储器(RAM),组3中包括已经完成了小波处理的静态随机存储器(RAM)。
4.根据权利要求1所述的VLSI结构,其特征在于读/写数据地址产生单元主要负责产生处理数据读/写地址的产生;包括对外部读/写数据地址的生成,内部存储单元访问的数据地址的产生;按照其数据操作的不同,将其分为读数据地址产生过程和写数据地址产生过程;这两个处理过程具有双重功能的处理过程在正向小波变换过程中,读数据地址产生过程和写数据地址产生过程分别负责读/写数据地址的生成;在逆向小波变换过程中,原来的读数据地址产生过程变为写数据地址产生过程,而原来的写数据地址产生过程变为读数据地址产生过程;这样的两个具有双重功能的地址产生过程是采用两个具有双向工作的有限状态机(FSM)来实现。
5.根据权利要求1所述的VLSI结构,其特征在于一维小波变换处理单元采用高速、可配置的一维离散小波变换结构,完成JPEG2000标准推荐的一维5/3和9/7小波变换过程。
6.根据权利要求2所述的VLSI结构,其特征在于基本控制单元基于一个双向可计数的计数器,计数器的计数范围为(0-M-1);M由下式给出M=N×N2+N×N2+N2×N22+N2×N22+......+N2L-1×N2L-12+N2L-1×N2L-12=N2(1+122+...+122(L-1))]]>其中,N为待处理的两维图像数据块的尺寸;L为进行正向/逆向小波变换的级数。
全文摘要
本发明为一种适用于JPEG2000中小波变换算法的VLSI结构,它基于流水线操作和多个有限状态机控制方式,包括基本控制单元、读/写数据地址产生单元、一维小波变换处理单元和内部数据存储单元等。本发明可以完成小波正向和逆向的变换处理,并可以根据需要选择相应的小波滤波器和两维图像进行小波变换的次数。本发明在增加少量存储单元的情况下,使设计复杂度和处理速度等得到明显改善。
文档编号G06F12/10GK1477497SQ0312968
公开日2004年2月25日 申请日期2003年7月3日 优先权日2003年7月3日
发明者朱珂, 华林, 周晓方, 章倩苓, 朱 珂 申请人:复旦大学