CN1892640A - 用于离散小波变换的结构 - Google Patents
用于离散小波变换的结构 Download PDFInfo
- Publication number
- CN1892640A CN1892640A CNA2006101000466A CN200610100046A CN1892640A CN 1892640 A CN1892640 A CN 1892640A CN A2006101000466 A CNA2006101000466 A CN A2006101000466A CN 200610100046 A CN200610100046 A CN 200610100046A CN 1892640 A CN1892640 A CN 1892640A
- Authority
- CN
- China
- Prior art keywords
- dwt
- level
- group
- processing unit
- input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/63—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/148—Wavelet transforms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Image Processing (AREA)
Abstract
用于执行离散小波变换运算的微处理器结构,所述离散小波变换运算包括在规定数目的分解级别j上,对包括r×km个输入样本的矢量的输入信号进行分解,r,k和m是非零正整数,其中j是1到J的范围中的整数,从第一分解级别开始以及前进到最后的分解级别,所述微处理器结构具有多个处理级,所述多个处理级的每一个相应于离散小波变换的分解级别j,以及由多个基本处理单元执行,从分解级别j到分解级别j+1,在每个所述处理级中实施的基本处理单元的数目减小k倍。
Description
本申请是中请日为2002年5月28日、中请号为02815082.1、发明名称为“用于离散小波变换的结构”的发明专利申请的分案申请。
技术领域
本发明涉及用于实施离散小波变换(DWT)的结构。本发明涉及其中使用DWT的任何领域,它具体地但不排他地关系到在数字信号和图像处理、数据压缩、多媒体和通信领域中使用的结构。
背景技术
在本说明书的末尾给出文件清单。这些文件在下面用它们在方括号中的相应的数字表示。
离散小波变换(DWT)[1]-[4]是一种数学方法,它通过使用单个基函数(即原型小波,prototype wavelet)的膨胀的/收缩的和变换的版本,而分解时域中长度为N=r×km的输入信号。在一个特定的情形下,N=2m(即,r=1和k=2)。DWT可以通过使用Haar小波,Hadamard小波和小波包而被执行。通过Haar小波进行的分解涉及低通和高通滤波,后面跟随对于最终得到的频段进行缩减采样(down-sampling)以及使低频段重复分解为J级别或倍频程(octave)。
在最近十年中,DWT常常被发现为优于其他的传统的信号处理技术,因为它提供有用的特性,诸如固有的可缩放性,0(N)的计算复杂性(其中N是被处理的序列的长度),对于信号处理应用的低混叠畸变,以及自适应的时间-频率窗口。所以,DWT被研究和被应用到各种各样的应用中,包括数字分析[5]-[6],生物医学[7],图像和视频处理[1],[8]-[9],信号处理技术[10]和语音压缩/解压缩[11]。基于DWT的压缩方法已成为诸如JPEG 2000和MPEG-4那样的国际标准的基础。
在许多这样的应用中,为了得到有用的结果,需要实时处理。即使DWT具有线性复杂性,许多应用也不能只通过软件解决方案被处理。使用数字信号处理器(DSP)的DWT实施方案大大地提高计算速度,以及对于某些应用是足够的。然而,在许多应用中,在通用处理器上的软件DWT实施方案或甚至DSP实施方案太慢。所以,藉助于专门的、超大规模集成的(VLSI)专用集成电路(ASIC)最近得到许多研究者的注意,以及提出了许多DWT结构[12]-[24]。这些设备的某些设备的目标是具有低的硬件复杂性。然而,它们需要至少2N个时钟周期(cc)来计算具有N个样本的序列的DWT。尽管如此,设备被设计成具有大约N个cc的周期(例如,在它们配备有加倍的硬件时在[14]中的三个结构,在[15]中的结构A1,在[16]-[18]中的结构,在[19]中的并行滤波器,等等)。大多数这样的结构使用递归的金字塔算法(RPA)[26],或类似的调度技术,以便既减小存储器需求又可以只采用一个或两个滤波器单元,这与要被计算的分解级别(倍频程)的数目无关。这是通过在每个输出可被产生的“最早”的时刻产生每个输出而完成的[26]。
在[17]和[18]中呈现的结构包含两条流水线级,其中第一流水线级实施第一DWT倍频程以及第二级根据RPA实施所有以后的倍频程。即使[17]和[18]的结构对于足够大的数目的DWT倍频程以接近100%硬件利用运行,它们也具有复杂的控制和/或存储器需求。而且,因为它们只采用两条流水线级,所以它们具有相对较低的速度。对于实施2m点DWT,在传统的结构中达到的最高吞吐量是N=2m个时钟周期。接近100%硬件利用和较高的吞吐量是由先前在[31],[32]和[34]中提出的结构得到的。在[34]中提出的FPP和LPP结构依赖于DWT滤波器的长度,以及对于FPP结构,依赖于输入信号的长度。
在现代移动/图像通信系统中对于低功率VLSI电路的需求不断增加。VLSI技术中的改进很大地降低了硬件的成本。所以,即使以增加硬件量为代价,也常常值得减小周期。一个理由是低周期的器件消耗较小的功率。例如,具有周期T=N/2cc的器件D可被利用来执行比具有周期T′=Ncc的器件D′快一倍的处理。替换地,如果器件D以频率f作为时钟,则它可以达到与器件D′以频率f′=2f作为时钟时的相同的性能。所以,对于器件D,电源电压(与f成线性关系)和功率消耗(与f2成线性关系)可以相对于器件D′的电源电压分别减小2和4倍[27]。
高吞吐量结构典型地利用流水线和并行操作,其中DWT倍频程用包含相似硬件单元(流水线级)的流水线实施。即使流水线已被现有的DWT结构(例如,在[12],[23]-[24]中的那些结构)利用,最快速的流水线设计仍需要至少N个时间单元来实施N点DWT。
大多数用于实施DWT的已知的设计是基于图1所示的DWT的树结构的滤波器库表示,其中有几(J)级(或倍频程)信号分解,每级后面跟随因数为2的缩减采样。作为缩减采样的结果,输入到每个以后的分解级的数据量是输入到紧接在前面的分解级的数据量的一半。这使得在典型的、被设计成使用树结构的方法来实施DWT的流水线器件中分解级的硬件严重地利用不足,因为实施倍频程j=1,...,J的级通常以比在第一倍频程中使用的时钟频率低2j-1倍的频率作为时钟[24]。这种利用不足是流水线级实施DWT倍频程时的流水线级的平衡很差的结果,并且会导致低的效率。
在[30]中,根据树结构滤波器库表示提出一种流水线结构,它达到接近100%硬件利用和对于2m点DWT的N/2=2m-1时钟周期的吞吐量。这涉及到一个J级流水线,它从一个级到下一个级尽可能使用一半的处理单元。在[34]-[35]中,提出了一个DWT的流图表示,以及将其与产生并行/流水线DWT结构的树结构滤波器库表示相比较。具体地,该流图表示充分地揭示了在每个倍频程中固有的并行性,以及显示了在倍频程内和倍频程之间的数据传送。这允许流水线和并行性被组合以达到更高的吞吐量和硬件利用。具体地,该流图表示显示了2m点DWT的第j个倍频程,j=1...,J,需要2m-j个独立的相似运行,它们可以全部或部分地并行实施。DWT倍频程以流水线模式被实施,而每个倍频程以并行模式被实施,并且并行性级别从一个倍频程到下一个倍频程被减半。在流水线级内并入变化的并行性级别,使得能够设计具有完美平衡的流水线级的并行-流水线器件。这意味着在流水线模式下实施倍频程,其中流水线级被并行化为逐级变化的程度。这个概念可以以许多不同的方式被实现。在[34]中,提出了被称为完全的并行-流水线(FPP)和有限的并行-流水线(LPP)DWT结构的两种结构。这两种结构均由J个流水线级组成,与先前的级相比较,每个流水线级包含一半数目的处理器单元。结果,达到非常高的吞吐量和接近100%硬件利用。
已知的并行或流水线结构基本上依赖于DWT参量,诸如输入长度、倍频程的数目、长度、以及在某些情形下,低通和高通滤波器的实际的系数数值。对于这些参量的较大数值,这些结构可以是非常大的。而且,在给定的结构给定的硬件实现方案内只可能实施具有固定的参量的DWT。然而,在JPEG 2000中,DWT被分开地应用到图像的贴片(tile)中,其中贴片的大小可以从1到232-1。对于不同的贴片,分解的倍频程数目可以从0变化到255。因此,想要有能够实施具有变化的参量的DWT的装置,或换句话说,相对地独立于DWT参量的统一装置。在串行结构的情形下设计这样的装置是直截了当的。但在并行或流水线结构的情形下,却并不是这么直截了当。
大多数传统的结构[12]-[26]采用正比于DWT滤波器长度的多个乘法器和加法器。即使某些结构[17],[18]能够实施具有变化数目的倍频程的DWT,它们的效率也随倍频程数目的增加而急剧减小。
发明内容
按照本发明的各个方面,本发明针对用于执行离散小波变换运算的微处理器结构。在一个实施例中,离散小波变换运算包括:在特定的分解级别j上对包括多个输入样本的输入信号矢量的分解,其中j是在1到J的范围中的整数,从第一分解级别开始,以及前进到最后的分解级别。该微处理器结构具有多个处理级,每个处理级相应于离散小波变换的分解级别j,以及由多个基本处理单元实施。在每个处理级中实施的基本处理单元的数目在每个增加的分解级别j处减小恒定的倍数。
该微处理器结构通常是基于离散小波变换流图表示的可缩放的结构。
在本发明中,引入两种类型的DWT结构(称为类型1和类型2核心DWT结构)的一般参量结构,以及两种其他DWT结构(它们是根据任一个核心DWT结构被构建的,并且分别被称为多核心DWT结构和可变分辨率DWT结构)的一般参量结构。所有的结构可以以变化的并行性级别被实施,因此提供机会来确定在特定的应用中所需要的硬件资源量以及在计算速度、成本、芯片面积和功率消耗要求之间作出折衷。在本发明中,组合了并行和流水线处理的优点,以便开发具有改进的效率(硬件利用)以及因此具有改进的吞吐量或功率消耗的DWT结构。提出了在每个并行性级别上以接近100%硬件利用运行的几个DWT结构的通用结构。给出的结构是相对地独立于输入信号的大小、DWT滤波器的长度、并且在可变分辨率DWT结构的情形下,也独立于倍频程的数目,并且可以以变化的并行性级别被实施。另外,该结构与现有的DWT设计相比显示了优越的面积-时间特性。本发明提供常规的和易于控制的结构,它们不包含反馈、长的(取决于输入的长度)连接或开关。它们可以被实施为半脉动(semisystolic)阵列。
优选地,按照本发明的微处理器结构,其中相应于所述第一分解级别的处理级还包括路由块,它被安排来接收所述输入矢量的所述r×km个输入样本,所述路由块被安排来把所述r×km个输入样本编组为L个输入样本的组,以及把该组L个输入样本并行地提供到第一处理级的基本处理单元的输入端,以使得第一处理级的每个基本处理单元接收预定的L个输入样本的组。
优选地,按照本发明的微处理器结构,其中相应于所述第一分解级别的处理级还包括路由块,它被安排来接收所述输入矢量的所述2m个输入样本,所述路由块被安排来把所述2m个输入样本编组为L个输入样本的组,以及把该组L个输入样本并行地提供到第一处理级的基本处理单元的输入端,以使得第一处理级的每个基本处理单元接收预定的L个输入样本的组。
优选地,按照本发明的微处理器结构,其中每个处理级的每个基本处理单元具有预定数目的输入端,以及该基本处理单元被安排成执行在两组系数值与在所述预定数目的输入端处并行接收的一组输入值之间的两个内积运算,所述输入端的数目、一组中的所述系数值的数目与并行接收的所述输入值的数目,每个都等于用来形成两个内积的滤波器长度L,所述基本处理单元还包括两个输出端,每个输出端被安排来榆出两个内积的各个内积,该微处理器结构还包括数据路由块,它被安排来从基本处理单元接收成对的内积,所述基本处理单元执行完全反移运算,以便把来自每个处理单元的类似滤波运算的内积编组在一起。
优选地,按照本发明的微处理器结构,其中每个处理级的每个基本处理单元具有预定数目的输入端,以及该基本处理单元被安排成执行在k组系数值与在所述预定数目的输入端处并行接收的一组输入值之间的k个内积运算,所述输入端的数目、一组中的所述系数值的数目与并行接收的所述输入值的数目,每个都等于用来形成k个内积的滤波器长度L,所述基本处理单元还包括k个输出端,每个输出端被安排来输出k个内积的各个内积,该微处理器结构还包括数据路由块,被安排来从基本处理单元接收k个内积,所述基本处理单元执行跨步置换,以便把来自每个处理单元的类似滤波运算的内积编组在一起。
优选地,按照本发明的微处理器结构,其中对任意分解级别j的离散小波变换结果由一个矢量形成,该矢量是根据来自相应于该任意分解级别j的处理级处高通滤波运算和低通滤波运算的输出值和来自所有先前的处理级的高通滤波运算的输出值而构建的。
优选地,按照本发明的微处理器结构,其中微处理器结构包括至少一个核心处理单元,所述核心处理单元包括在每个处理级j处的kJ-j个基本处理单元。
优选地,按照本发明的微处理器结构,其中每个处理级的每个基本处理单元具有预定数目的输入端,以及该基本处理单元被安排成执行在k组系数值与在所述预定数目的输入端处并行接收的一组输入值之间的一组k个内积运算,所述输入端的数目、一组中的所述系数值的数目与并行地接收的所述输入值的数目,每个都等于用来执行所述k个内积运算的滤波器长度L,每个基本处理单元还包括k个输出端,每个输出端被安排成输出一个输出值,该输出值相应于在所述k组系数值之一与该组输入值之间执行的所述k个内积运算之一的结果。
优选地,按照本发明的微处理器结构,其中所述处理级2到J的至少一个级还包括数据路由块,被安排来从紧挨的前一个处理级j-1的每个基本处理单元接收所述k个输出值,所述路由块还被安排来把所述k个输出值中的选择的输出值一起编组为L个输出值的组,以及把该组L个输出值并行地提供到该处理级的基本处理单元的输入端,如此使得处理级j的每个基本处理单元接收从所述紧挨的前一个处理级j-1接收的预定的L个输出值的组。
优选地,按照本发明的微处理器结构,其中相应于所述第一分解级别的处理级还包括路由块,它被安排来接收包括kJ个输入样本的所述连续的子矢量i,所述路由块被安排来通过附加上来自紧接的随后的子矢量i+1的多个样本来把子矢量i安排成可精确地划分到所述的L的组中,而把所述kJ个输入样本形成为L个输入样本的组,所述路由块还被安排来把该组L个输入样本并行地提供到第一处理级的基本处理单元的输入端,以使得第一处理级的每个基本处理单元接收预定的L个输入样本的组。
优选地,按照本发明的微处理器结构,其中所述微处理器被安排成接收包括所述输入矢量的所述r×km个输入样本的kJ个输入样本的子矢量。
优选地,按照本发明的微处理器结构,它被安排成并行地接收该kJ个输入样本。
优选地,按照本发明的微处理器结构,其中微处理器结构的第一处理级被安排成按时间逐步地接收r×km个输入样本的所述矢量作为连续的子矢量。
优选地,按照本发明的微处理器结构,其中至少一个处理级被安排成处理在第一时间周期中的子矢量i,该子矢量i包括来自紧邻第一时间周期的第二时间周期中的子矢量i+1的至少一个样本。
优选地,按照本发明的微处理器结构,其中至少一个处理级被安排成处理附加有来自子矢量i+1的L/2个样本的子矢量i。
优选地,按照本发明的微处理器结构,其中每个基本处理单元被安排成在一个时间周期中执行一个基本运算循环,所述时间周期对于所有的基本处理单元基本上相同。
优选地,按照本发明的微处理器结构,还包括移位寄存器,它被安排成从输入样本的矢量形成子矢量。
优选地,按照本发明的微处理器结构,其中所有的所述基本处理单元被实施以执行同等的运算。
优选地,按照本发明的微处理器结构,其中被附加到子矢量i的样本数目是L/2。
优选地,按照本发明的微处理器结构,其中每个处理级的每个基本处理单元具有预定数目p的输入端,以及该基本处理单元被安排成执行在k组系数值与一组输入值之间的一组k个内积运算,在一组中的所述输入值的总数与在一组中的系数值的数目等于L,其中L可以在从1到Lmax的范围中选择,所述基本处理单元还被安排成在给定的时间在所述p个输入端并行地接收一组p个输入值,以及在给定的运算时间周期中执行包括在p个系数值与所述的p个输入值之间的k个内积运算的内积运算子组。优选地,其中至少一个基本处理单元被在功能上连接到同一个处理级j的至少一个其他的基本处理单元。
优选地,按照本发明的微处理器结构,其中每个基本处理单元被安排成在连续的运行周期中接收一组p个输入值。
优选地,按照本发明的微处理器结构,其中每个基本处理单元还包括k个输出端,每个输出端被安排成输出一个输出值,该输出值相应于在所述k组系数值之一与该组输入值之间执行的所述k个内积运算之一的结果。
优选地,按照本发明的微处理器结构,其中处理级2到J的至少一个级还包括数据路由块,被安排来从紧挨的前一个处理级j-1的每个基本处理单元接收所述k个输出值,所述路由块还被安排来把所述k个输出值中的规定的输出值编组为L个输出值的组,以及以连续的运行周期把所述L个输出值的组在p个数值的连续编组中并行地提供到处理级j的基本处理单元的p个输入端。
优选地,按照本发明的微处理器结构,其中相应于所述第一分解级别的处理级还包括路由块,它被安排来接收包括kJ个输入样本的所述连续的子矢量i,所述路由块被安排来通过附加上来自紧接在后的子矢量i+1的多个样本来把子矢量i安排成可精确地划分到所述的L的组,而把所述kJ个输入样本形成为L个输入样本的组,所述路由块还被安排来以连续的运行周期把所述L的组在p个数值的连续编组中并行地提供到第一处理级的基本处理单元的p个输入端。
优选地,按照本发明的微处理器结构,其中至少一个基本处理单元被在功能上连接到同一个处理级的至少一个其他的基本处理单元。
优选地,按照本发明的微处理器结构,其中处理级j的至少第一基本处理单元被安排成接收来自同一个处理级j中的第二基本处理单元的一个输入。
优选地,按照本发明的微处理器结构,其中来自同一个处理级中的所述第二基本处理单元的所述输入是一组p个数值,代表在先前的运行周期中、在所述第二基本处理单元中执行的内积运算的p个中间结果,以及所述第一基本处理单元被安排成在当前的运行周期中、在执行它的内积运算中使用所述的p个中间结果的组。
优选地,按照本发明的微处理器结构,其中所述p个中间结果在所述第一基本处理单元处被并行地接收。
优选地,按照本发明的微处理器结构,其中所述第一基本处理单元在初始的第一运行周期后、在每个接连的运行周期接收来自所述第二基本处理单元的p个输入值的组。
优选地,按照本发明的微处理器结构,与第二微处理器结构一起被集成在单个器件中用于执行离散小波变换,所述第二微处理器结构被安排成执行除所述最后分解级别J以外的至少一个另外的分解级别。
优选地,按照本发明的微处理器结构,其中所述第二微处理器结构被安排成执行递归的金字塔算法。
优选地,按照本发明的微处理器结构,其中微处理器结构包括至少一个核心处理单元,所述核心处理单元被安排成执行kJ点小波变换运算。
按照本发明,还提供一种执行离散小波变换运算的方法,其执行在如上所述的微处理器结构中实施的步骤。
附图说明
现在参照附图,仅仅借助例子,来描述本发明的实施例,其中:
图1显示DWT的树结构的定义/表示,大多数已知的DWT结构都基于此;
图2显示DWT的新的流图表示的例子,本发明中提出的结构便是以之为基础的;
图3显示DWT流图紧凑形式表示的实施例;
图4显示按照本发明的两种类型的核心DWT结构的通用结构;
图5显示图4的类型1结构的一级的可能实施例;
图6显示相应于参量:p=Lmax=6;J=3;N=2m,m=3,4,...的、图5的类型1核心DWT结构的实施例;
图7显示相应于参量:p=Lmax=6;J=3;N=2m,m=3,4,...的、图5的类型1核心DWT结构的另一个实施例;
图8显示可以在图4的类型1核心DWT结构中使用的处理单元(PE)的四个可能的实施例;
图9显示图4的类型2核心DWT结构的一级的可能实施例;
图10显示类型2核心DWT结构的可能实现方案的实施例;
图11显示按照本发明的多核心DWT结构的通用结构;
图12显示按照本发明的可变分辨率DWT结构的通用结构;
图13显示对于已知的结构和按照本发明的DWT结构的、延时相对基本单元(BU)数目的图;
图14显示了表1;
图15显示了表2;以及
图16显示了表3。
具体实施方式
为了描述在本发明中提出的结构,我们首先需要定义DWT和给出在该结构内实施的基本算法。有DWT的几种替换的定义/表示,诸如树结构滤波器库、网格结构、提升方案或矩阵表示法。以下的讨论使用DWT的矩阵定义和流图表示,这在设计有效的并行/流水线DWT结构时是非常有效的。
离散小波变换是线性变换y=H·x,其中x=[x0,...,XN-1]T和y=[y0,...,yN-1]T分别是长度N=2m的输入和输出矢量,以及H是阶数N×N的DWT矩阵,它被形成为稀疏矩阵的乘积:
H=H(J)H(J-1)·...·H(1),1≤J≤m;
其中Ik是单位(k×k)矩阵(k=2m-2m-j+1),以及Dj是在级j处的分析(2m-j+1×2m-j+1)矩阵,其具有以下的结构:
其中LP=[11,...,1L]和HP=[h1,...,hL]分别是低通和高通滤波器的系数的矢量(L是滤波器的长度),以及Pj是尺寸(2m-j+1×2m-j+1)的完全反移算子(perfect unshuffle operator)的矩阵。完全反移算子在第一(第二)半输出矢量处收集输入矢量的偶数(奇数)编号的分量,假设分量编号从零开始。为了简明起见,假设低通和高通滤波器具有相同的长度,是偶数。该结果可以容易地扩展到任意滤波器长度的一般情形。在一般情形下(也就是其中N=r×km而不是N=2m),其中k不等于2(也就是除了两个滤波运算之外还有),会施加适当的跨步置换(stride permutation)而不是反移运算。
采用在公式(1)和(2)中引入的表示法后,DWT在J级(也称为分解级别或倍频程)中被计算,其中第j级,j=1,...,J,构成稀疏矩阵H(j)与暂用(scratch)变量的当前矢量的乘法,第一个这样的矢量是输入矢量X。注意,每个矩阵H(j)的右下角是单位矩阵,以及考虑到矩阵Dj的结构,相应的算法可被写为以下的伪代码,其中 和
j=1,...,J,是暂用变量的(2m-j×1)矢量,以及符号[(X1)T,...,(Xk)T]T代表列矢量X1,...,Xk的级联。
算法1.
1.设置
2.对于j=1,...,J计算
或,等价地,
2.对于i=0,...,2m-j-1,
开始
形成矢量//*矢量xLP (j-1)的、长度为L的子矢量*//
计算
结束
3.形成输出矢量
对于公式(2)的矩阵Dj的算法1的计算可以通过使用流图表示法被显示。图2上显示了对于N=23=8,L=4,J=3的情形的例子。流图包含J级,第j级,j=1,...,J,具有2m-j个节点(如图2的方块描绘的)。每个节点代表基本的DWT运算(见图2(b))。级j=1,...,J的第i节点,i=0,...,2m-j-1,具有来自前级的L个循环连续的节点2i,2i+1,(2i+2)mod2m-j+1,...,(2i+L-1)mod2m-j+1的进入边缘,或者(对于第一级的节点)具有来自输入的进入边缘。每个节点具有两个外出边缘。上部(下部)外出边缘代表低通(高通)滤波器系数矢量与进入边缘的数值矢量的内积值。一级的外出的数值按照完全反移算子被置换,这样,所有的低通分量(上部外出边缘的数值)被集中在该被置换矢量的前一半中,以及高通分量集中在其后一半中。低通分量然后形成到下一级的输入或者(对于最后一级的节点)代表输出值。在该级处的高通分量和低通分量以给定的分辨率表示输出值。
实质上,流图表示提供了离散小波变换的另一个定义。至少从实施观点看来,它与诸如树结构滤波器库、提升方案或网格结构表示的传统的DWT表示相比较,具有一些优点。
然而,已给出的DWT的流图表示也具有缺点,即,对于较大的N的数值它是非常大的。这个缺点可以根据以下的措施被克服。假设J<log2N,即,分解级别的数目大大地小于输入矢量中的点数(在大多数应用中,J<<log2N),可以看到,DWT流图包含N/2J个类似的图案(见图2上的两个画阴影的区域)。使用把输入信号形成为它的每个倍频程的特定策略,每个图案可被看作为2J点DWT。第j个倍频程,j=1,...,J,的2m-j+1个输入值在(长度N=2m的)原始DWT内被划分成包含2J-j+1个连续数值的N/2J=2m-J个非重叠的组。这等价于把(3)的矢量xLP (j-1)划分成子矢量
s=0,...,2m-J-1,
其中在这里和以下内容中,符号x(a:b)代表包含x的第a到第b分量的x的子矢量。然后,在第s个图案内第j个倍频程,j=1,...,J,是矢量的子矢量
是矢量xLP (j-1)与循环的接下来Qj个矢量的级联,其中Qj=[(L-2)/2J-j+1]。
如果2m-J个图案被合并成单个图案,则得到DWT的紧凑(或核心)流图表示。图3上显示了对于J=3,L=4的情形下DWT紧凑流图表示的例子。紧凑DWT流图在它的第j级具有2J-j个节点,j=1,...,J,其中2m-J个时间分布的数值的组现在被分配给每个节点。每个节点具有L个进入和两个外出边缘,像在(“非紧凑”)DWT流图中那样。进入边缘也是来自于前级的L个“循环连续”节点,但现在每个节点代表一组临时分布的数值。即,第j级,j=1,...,J,的第i个节点的L个输入,为其第s个数值,s=0,...,2m-J-1,被连接到第(j-1)级的节点(2i+n)mod2J-j+1,n=0,...,L-1,它们现在代表它们的第(s+s′)个数值,其中s′=[(2i+n)/2J-j+1]。另外,输出现在不单空间地而且时间地被分布在紧凑流图的输出边缘。也即,相应于最后一级节点的高通滤波结果或节点的低通滤波结果的每个输出边缘代表2m-J个输出值的组。应当指出,紧凑DWT流图的结构不依赖于DWT的长度,而仅仅依赖于分解级别数和滤波器长度。DWT长度只在由每个节点所表示的值的数目中反映。还应当指出,紧凑流图具有2J点DWT的结构,其具有稍微修正的附加策略,事实上,这种附加策略常常在DWT定义的矩阵公式中被使用。
令
表示Dj的主要的(2J-j+1×(2J-j+1+L-2))子式(见公式(2)),j=1,...,J,也就是,令
是由Dj的头2J-j+1行和头2J-j+1+L-2列组成的矩阵。例如,如果J-j+1=2和L=6,则
具有以下的形式:
采用公式(4)的表示法,由紧凑流图表示的计算处理可以用以下的伪代码描述。
算法2.
1.对于s=0,...,2m-j-1,设置
2.对于j=1,...,J
对于s=0,...,2m-j-1
开始
2.2.计算
结束
3.形成输出矢量
对于s并行地执行循环,产生并行的DWT实现方案。另一方面,通过交换对于j和s的循环的嵌套次序,和对于j并行地执行该(嵌套的)循环,有可能实施流水线的DWT实现方案。然而,这两个实现方案都是不经济的,因为运算的数目从一个倍频程到下一个倍频程被减半。然而,组合两个方法,可以产生非常有效的并行-流水线或部分并行-流水线的实现方案。
为了把流水线应用到算法2,必须施加重定时,因为对于s的计算包括对于s+1,...,s+Qj-1的计算的结果,这意味着,第j个倍频程,j=1,...,J,引入Qj个步骤的延时。因为延时被积累,所以在步骤s=s*(j),...,2m-J+s*(j)-1期间,对于第j个倍频程的计算,j=1,...,J,必须以以下的延时开始:
因此,计算从在步骤s=s*(1)开始执行,直至步骤s=s*(J)+2m-J-1为止。在步骤s=s*(1),...,s*(2)-1,只执行第一个倍频程的计算,在步骤s=s*(2),...,s*(3)-1,只执行头两个倍频程的运算,等等。从步骤s=s*(J)开始,直至步骤s=s*(1)+2m-J-1为止(如果s*(J)<s*(1)+2m-J),执行所有倍频程的计算,j=1,...,J,但从步骤s=s*(1)+2m-J开始,不执行第一个倍频程的计算,从步骤s=s*(2)+2m-J开始,不执行头两个倍频程的计算,等等。一般地,在步骤s=s*(1),...,2m-J+s*(J)-1,执行对于倍频程j=J1,...,J2的计算,其中J1=min{j,使得s*(j)≤s<s*(j)+2m-J}和J1=max{j,使得s*(j)≤s<s*(j)+2m-J}。以下的伪代码给出了在本发明中提出的结构内实施的流水线DWT实现方案。
算法3.
1.对于s=0,...,2m-J-1,设置
2.对于s=s*(1),...,2m-J+s*(J)-1,
对于j=J1,...,J2,并行地进行
开始
2.2.计算
结束
3.形成输出矢量
在本发明中,引入被称为类型1和类型2核心DWT结构的两种类型的DWT结构的一般参量结构,以及根据任一个核心DWT结构构建的、两个其他的DWT结构(分别被称为多核心DWT结构和可变分辨率DWT结构)的一般参量结构。所有的结构可以用变化的并行性级别实施,因此允许在速度和硬件复杂性之间的折衷。根据并行性的级别,可以达到直到恒定时间实施方案的吞吐量(每个时间单元一个2m点DWT)。在每个并行性级别上,该结构用接近100%硬件利用运行,因此与串行DWT实施方案相比较,达到相对于并行性级别的几乎线性的加速。该结构是相对独立于DWT参量的。也就是,具有所提出的结构之一的装置能够有效地实施不仅仅一个DWT,而且实施一系列具有不同滤波器长度的不同DWT,以及在可变分辨率DWT结构的情形下,对于任意长度的矢量具有不同数目的分解级别。
所提出结构的许多不同实现是可能的。所以,它们的通用结构是在功能级别上被描述的。也给出了通用结构在寄存器级别上的示例性实现方案。这些实现方案显示了通用结构的有效性。所提出的结构在功能描述级别上与已知的结构在实质上不同,每个提出的结构的更详细的概要如下。应当指出,在[34]中公布的FPP和LPP结构可被看作为类型1(多个和单个)核心DWT结构的特定的实现方案。
类型1和类型2核心DWT结构根据不超过给定数目Lmax的长度L的低通和高通滤波器实施具有J<m个倍频程的2m点DWT,其中J和Lmax(但不是m或L)是实现方案的参量。类型1和类型2核心DWT结构包括一个串行或并行数据输入块以及J个流水线级,笫j级,j=1,...,J,包含数据路由块和2J-j个处理单元(PE)。将参照图4对此进行描述。该结构的第j流水线级,j=1,...,J,在2m-J个运算步骤中实施第j个DWT倍频程的2m-j个独立的类似运算。在每个步骤中,在流水线级的2J-j个PE内并行地实施一组2J-j个运算。PE可以以变化的并行性级别实施,其并行性由它的输入的数目p≤Lmax规定。具有p个输入的单个PE在包含[L/p]个时间单元的一个运算步骤中执行一个基本DWT运算(见图2(b)),其中在每个时间单元,并行地得到2p个乘法和加法的结果。因此,时间周期(被测量为在连续的输入矢量进入结构时的时间单元之间的时间间隔)等于2m-J[L/p]个时间单元,其中时间单元的持续时间等于一次乘法运算的时间周期。这比先前已知的结构[12]-[26]的最好时间周期快了2J/[L/p]倍,以及比[30]中描述的结构快了2J-1/[L/p]倍。这两种结构的效率(或硬件利用)等于L/(p[L/p])·100%≈100%。在p=L=Lmax的情形下,时间周期是2m-J个时间单元,这与在[34]和[35]中给出的LLP结构相同,然而,后者依赖于滤波器长度L(即,LPP结构只能实施具有固定长度L的滤波器的DWT)。两种类型的核心DWT结构根据在一个流水线级的PE之间不存在(类型1)或存在(类型2)互连而不同。两种类型的核心DWT结构的可能实现方案在图5到10上给出。上述两种类型的核心DWT结构可以根据参量p,以变化的并行性程度实施。
在多核心DWT结构内,并行性级别的进一步的灵活性可以通过引入新的参量r=1,...,2m-J而达到。多核心DWT结构实际上是从相应的(单个)核心DWT结构通过把它扩展r倍而得到的。它的通用结构在图11上给出。该结构包含一个串行或并行数据输入块以及J个流水线级,第j个流水线级,j=1,...,J,包含数据路由块和r2J-j个PE。多核心DWT结构的时间周期等于(2m-J[L/p])/r个时间单元,它比单个核心DWT结构快r倍,即,提供了线性加速。多核心DWT结构的效率与单个核心结构相同,也就是,接近100%。应当指出,在p=L=Lmax和r=2m-J的情形下,对于2m点DWT,时间周期正好是一个时间单元。类似的性能在[34]和[35]中给出的FPP结构中也可达到,它可被看作为多核心DWT结构的可能实现方案的特例(p=L=Lmax和r=2m-J)。
单核心和多核心DWT结构是相对独立于输入长度和滤波器长度的,这意味着可以用具有类型1或类型2核心DWT结构的相同装置来实施基于任意滤波器(具有不超过Lmax的长度)和施加任意长度的信号的DWT。然而,类型1、类型2和多核心结构都取决于DWT倍频程的数目J。它们可以用小于J的数目的倍频程来执行DWT,但在硬件利用上会有某些损失。
可变分辨率DWT结构以任意数目J′的倍频程执行DWT,以及无论J′是大于或是等于给定的数目,结构的效率都保持接近100%。可变分辨率DWT结构包括相应于Jmin分解级别的核心DWT结构和任意串行DWT结构,例如,基于RPA的结构(见图12(a))。核心DWT结构执行J′个倍频程DWT的头Jmin个倍频程,而串行DWT结构执行J′个倍频程DWT的最后J′-Jmin个倍频程。由于核心DWT结构可以以变化的并行性级别被执行,所以它可以与串行DWT结构平衡,以使得只要J′≥Jmin,就可以获得接近100%的硬件利用。
基于多核心DWT结构的可变分辨率DWT结构也可被构建(见图12(b)),其中数据路由块被插入在多核心和串行DWT结构之间。
建议的DWT结构
这节给出被称为类型1和类型2核心DWT结构的两种类型的DWT结构,以及根据任一个核心DWT结构构建的两个其他的DWT结构(分别被称为多核心结构和可变分辨率DWT结构)的通用结构。多核心DWT结构是任一个核心DWT结构的扩展,它可以根据参量r以可变的并行性级别被执行,以及在特定的情形下(r=1),它成为单核心DWT结构。为了易于理解,从单核心DWT结构的描述开始介绍该结构。
两种类型的核心DWT结构根据具有长度L不超过给定数目Lmax的低通和高通滤波器,实施具有J个分解级别(倍频程)的任意离散小波变换。它们的运算是基于前面给出的算法3。代表两种类型的核心DWT结构的通用结构在图4上给出,其中虚线表示连接,根据具体的实现方案,这些连接可以存在也可以不存在。在类型1中不存在连接,但在类型2中存在连接。在两种情形下,结构由一个数据输入块和j个流水线级组成,每个级包含数据路由块和处理器单元(PE)块,其中数据输入块执行算法3的步骤1,数据路由块负责步骤2.1,以及PE的块用于步骤2.2的计算。两个核心结构类型的主要不同点在于,在相同流水线级的PE之间数据交换的可能性。在类型2核心DWT结构中,单个级的PE可以通过互连来交换中间数据,而在类型1核心DWT结构中,在流水线级内的PE之间没有互连,因此,单个级的PE在它们的运算期间不交换数据。
通常,数据路由块和PE块的许多不同的实现方案是可能的。所以,一方面,本发明可以被认为是在于结构,如在块级别上被描绘的(图4,11和12)以及以下在功能级别上被描述的结构,而与选择用于PE和数据路由块的精确实施方案无关。然而,在寄存器级别上提出的核心DWT结构的实际的实现方案通过参照图5到10被作为例子给出。这些示例性实施方案证明了本发明的有效性。
图4给出类型1和类型2核心DWT结构的通用结构。正如以上解释的,类型1和类型2的不同点在于:在一级内的PE之间是没有互连还是存在互连。两种核心DWT结构的数据输入块可被实现为字-串行或字-并行。在前一种情形下,数据输入块包含单个(字-串行)输入端口,它被连接到长度为2J的移位寄存器(图4的虚线方块),移位寄存器具有来自它的每个单元的字-并行输出。在后一种情形下,数据输入块包含2J个并行输入端口。在这两种情形下,数据输入块都具有2J个并行输出,它们被连接到第一流水线级的数据路由块的2J个输入上。在图6上,给出字-并行数据输入块的例子,而图7和10给出字-串行数据输入块的例子。
类型1核心DWT结构
在类型1核心DWT结构内执行的基本算法是具有执行步骤2.2的特定次序的算法3。2J-j+1×2J-j+1矩阵
的结构是使得步骤2.2的矩阵矢量乘法可被分解成2J-j个矢量与矢量的内积对计算:
i=0,...,2J-i-1
它们可被并行地执行。另一方面,长度为L的每个矢量与矢量的内积可被分解为长度为p的内积的Lp=[L/p]序列,并对结果进行累加(假设,系数矢量和输入矢量被附加适当数目的零并被划分成连续的p个分量的子矢量)。结果,算法3可以通过以下对前面的伪代码的修正加以表示。
算法3.1.
1.对于s=0,...,2m-J-1,设置
2.对于s=s*(1),...,2m-J+s*(J)-1,
对于j=J1,...,J2,并行地进行
开始
2.1.按照公式(4)设置
2.2.对于i=0,...,2J-j-1并行地进行
开始
设置SLP(i)=0,SHP(i)=0;
对于n=0,...,Lp-1,顺序地进行
开始
结束
设置
结束
结束
3.形成输出矢量
应当指出,给定s和j后,该组运算(6)和(7)涉及到子矢量 (对于n=0),子矢量
以及一般地,子矢量
对于n=0,...,Lp-1。换句话说,对于n=0,...,Lp-1的计算牵涉到通过把矢量
的分量向左移np个位置而得到的矢量
的头2J-j+1+p-2个分量。还应当指出,对于给定的i=0,...,2J-j-1的计算总是牵涉到当前的矢量的分量2i,2i+1,...,2i+p-1。
图4上给出类型1核心DWT结构的通用结构。在这种结构的情形下,可以忽略虚线,因为在单个级的PE之间没有连接。该结构包含数据输入块(已在上面讨论)和J个流水线级。通常,类型1核心DWT结构的第j个流水线级(j=1,...,J)包括数据路由块,所述数据路由块具有形成该级输入的2J-j+1个输入端IPS(j)(0),...,IPS(j)(2J-j+1-1)和被连接到2J-j个PE的输入端的2J-j+1+p-2个输出端ODRB(j)(0),...,ODRB(j)(2J-j+1+p-3)。每个PE具有p个输入端和两个输出端,其中p≤Lmax是描述每个PE的并行性级别的实现的参量。第j级(j=1,...,J)的数据路由块的连续p个输出端ODRB(j)(2i),ODRB(j)(2i+1),...,ODRB(j)(2i+p-1)被连接到同一个级的第i个PE(PEj,i),i=0,...,2J-j-1,的p个输入端。笫j个流水线级,j=1,...,J-1,的2J-j个PE的每个PE的第一个输出构成该级的输出OPS(j)(0),...,OPS(j)(2J-j-1),并被连接到下一级,即第(j+1)级的数据路由块的2J-j个输入端IPS(j+1),(0),...,IPS(j+1)(2J-j-1)。最后级,即第J级的(一个)PE的第一输出是该结构的第0个输出out(0)。第j个流水线级,j=1,...,J,的2J-j个PE的第二输出构成该结构的第(2J-j)到第(2J-j+1-1)个输出out(2J-j),...,out(2J-j+1-1)。
现在,在功能级别上描述类型1核心DWT结构的块。为了方便起见,时间单元被规定为PE完成一次运算的时间周期(它等于进入PE的p个数据的连续编组之间的时间周期),以及该结构的一次运算步骤被规定为包括Lp个时间单元。
该数据输入块以每个运算步骤2J个分量的速率串行或者并行地接收该输入矢量的一组分量,和并行地输出该输入矢量的一组分量。因此,矢量xLP (O,s)在步骤s=0,...,2m-J-1,在数据输入块的输出端处被形成。
数据路由块(级j,j=1,...,J)通常可以以任意电路被实现,它在每个运行步骤的第一时间单元n=0时并行地接收2J-j+1个分量的一个矢量,然后在该运行步骤的每个时间单元n=0,...,Lp-1时,它并行地输出一个矢量的头2J-j+1+p-2个分量np,np+1,...,(n+1)p+2J-j+1-3的矢量,所述矢量是在先前的
个步骤中接受的矢量的级联(按时间顺序),其中
在类型1核心DWT结构中使用的PE的功能是在每个时间单元期间计算在它的p个输入端处的矢量与预定系数的两个矢量的两个内积,以及(分开地)累加在一个运行步骤期间计算的两个内积的结果。在每个运行步骤结束时,两个累加的结果传送到PE的两个输出端,并开始新的累加。显然,每个PE执行一对运算(6)和(7),只要在它们的输入端处形成正确的变元(argument)。
现在将说明,该结构执行按照算法3.1的计算。在L<Lmax的情形下,引入额外的延时。该额外的延时是允许其执行具有任意滤波器长度L≤Lmax的DWT的结构灵活性的结果(花费)。这应当与算法3.1相比较,后者给出具有固定的滤波器长度L的DWT的计算。事实上,该结构是对于滤波器长度Lmax设计的,但也执行具有较短滤波器的DWT,延时略有增加但时间周期没有增加。
令
在该结构的运行期间,在步骤s=0,...,2m-J-1,在数据输入块的输出端处形成矢量xLP (O,s),以及该矢量进入到第一流水线级的数据路由块的输入端。为了示出该结构执行按照算法3.1的计算,示出假设在步骤
矢量
进入第j级的情况下,在步骤
在第j级的PE的第一输出端(它们被连接到第j+1级的输入)处形成矢量
和在它们的第二输出端形成矢量
就足够了(由数学推导证明)。因此,假设级j=1,...,J,的数据路由块在步骤
接受矢量
然后,按照数据路由块的功能描述,在每个步骤
的时间单元n=0,...,Lp-1,在数据路由块的输出端处形成以下矢量的分量np,np+1,...,(n+1)p+2J-j+1-3:
这个矢量是分别在步骤
接受的矢量的级联。由于 (比较(3)和(9)),矢量
(按照式(4)规定的)是的子矢量,这样它们的头2J-j+1+L-3个分量是完全相同的。因此,在级j=1,...,J,的数据路由块的输出端处,在步骤 的时间单元n=0,...,Lp-1形成矢量 由于在数据路由块和PE之间的连接,在PEj,i的输入端处(i=0,...,2J-j-1),在步骤
的时间单元n=0,...,Lp-1形成矢量
的分量2i,2i+1,...,2i+p-1,这些分量实际上是运算(6)和(7)的参数。因此,如果PE使用相应系数执行它们的运算,则在步骤
后,在PE的第一输出端处形成矢量
以及在它们的第二输出端处形成矢量
由于PE的第一输出端被连接到下一个流水线级的输入端,这证明,该结构执行了按照算法3.1的计算,虽然用了不同的时序(在算法3.1中的每处都用
代替s*(j))。
个时间单元。很清楚,该结构可以执行输入矢量流的DWT。所以显然,吞吐量或时间周期(当连续的输入矢量输入到该结构时被测量为在时间单元之间的时间间隔)等于
Tp(C1)=2m-J[L/p] (12)个时间单元。
并行/流水线结构的性能常常相对硬件利用或效率来评估,被规定为
其中T(1)是使用一个PE完成算法的时间,以及T(K)是使用包括K个PE的结构完成同一个算法的时间。可以看到,使用与在类型1核心DWT结构中所用的PE相似的一个PE来执行2m点DWT需要T(1)=(2m-1)[L/p]个时间单元。连同(11)和(12)一起,考虑到在类型1核心DWT结构内总共有K=2J-1个PE,可以看到,相对时延或者还有时间周期复杂性,对于该结构都达到约100%的效率(硬件利用)。应当看到,接近于FPP结构效率的效率只在从现有技术(见[17])已知的几个流水线DWT设计中达到,而大多数已知的流水线DWT结构只能获得远低于100%的平均效率。还应当看到,已知的DWT结构需要至少O(N)个时间单元的时间周期。而提出的结构由于可以根据参量p使用变化的并行性级别实现,因此可以达到想要的时间周期。正如从(12)得到的,实施方案的时间周期复杂性在TL(C1)=2m-J和T1(C1)=L2m-J之间变化。因此,该结构的吞吐量比最快的已知结构的吞吐量要快2J/L到2J倍。用可变的并行性级别实现该结构的可能性也使得有可能在时间与硬件复杂性之间进行折衷。还应当指出,该结构是非常规则的,并且只需要简单的控制结构(基本上,只需要一个时钟),而与例如[17]的结构不同。它不包含反馈、开关、或取决于输入的尺寸的长连接,而只具有最大长度仅仅为O(L)的连接。因此,它可被实现为半脉动阵列。
类型1核心DWT结构的可能的实现方案
图5上显示用于类型1核心DWT结构的第j流水线级(j=1,...,J)的可能结构。在图6和7上分别显示对于Lmax=6,J=3的情形的此类实现方案的两个例子,其中p=Lmax=6和p=2。应当指出,在文献[34]和[35]中给出了相应于p=Lmax的情形的此类实现方案的特定情形,以及具体地,给出图6的例子的特定版本,在其中它被称为有限的并行-流水线(LPP)结构。相反,图5的类型1核心DWT结构和它的实现方案被用于任意p的情形。还应当指出,文献[34]和[35]上描述的LPP结构并不支持具有小于Lmax的滤波器长度的DWT的有效计算,而图5给出的类型1核心DWT结构的实现方案可以支持。
参照图5,可以看到,在这个实现方案中,数据路由块包含
个链连接的组,每个具有2J-j+1延时;以及长度为2J-j+1+Lmax-2的移位寄存器,它在每个时间单元把在它的单元内的数值向上移p个位置。加到该级的2J-j+1个输入被并行地连接到第一组延迟级,该组延迟级的输出被连接到下一组延迟级的输入端,等等。每个组的延迟级的输出被并行地连接到移位寄存器的2J-j+1个连续的单元。倒数第
组延迟级的输出被连接到头2J-j+1个单元,第
组延迟级被连接到紧接的2J-j+1个单元,等等,例外的是该级的头
个输入被直接连接到移位寄存器的最后qj个单元。移位寄存器的头2J-j+1+p-2个单元的输出形成数据路由块的输出,以及被连接到PE的输入端。在p=Lmax的情形下(见图6),不需要移位寄存器,但延迟单元组的输出端和该级的头qj个输入端被直接连接到PE的输入端。另一方面,在p=2的情形下(见图7),在数据路由块与PE之间的互连被简化,因为在这种情形下,从移位寄存器的第一单元到PE的输入端只有2J-j+1个并行连接。本领域技术人员将会看到,给出的实现方案满足对于类型1核心DWT结构的数据路由块的功能性约束条件。事实上,在每个步骤开始时,移位寄存器包含把前
个步骤接受的数据的矢量与来自下一个接受矢量的头Lmax-2个分量的矢量的级联。然后,在Lp个时间单元期间,它每次把该分量向上移位p个位置。
图8上给出在任意的p,p=1,p=2,和p=Lmax的情形下(分别是图8(a),(b),(c),和(d))用于类型1核心DWT结构的PE的可能的结构。同样,本领域技术人员将了解,这些结构实施了(6)和(7)运算,因此,满足PE的功能性描述。同样还应指出,这些结构适合于与滤波器系数无关的通用DWT实施方案,并且对于特定的滤波器系数最佳化的PE结构也可以被实施。
类型2核心DWT结构
类型2核心DWT结构执行算法3.1的一个稍微修正的版本。修正是基于观察到运算(6)和(7)的算子对于下标i和n的(i1,n1)和(i2,n2)对是相同的,使得2i1+n1p=2i2+n2p的情况。假设偶数p(奇数情形可类似地被处理,但对于它的表示需要更多的符号),这意味着当执行(6)和(7)的运算时,需要在分支i=0,...,2J-j-p/2-1内、在时间单元n=1,...,Lp-1使用的被乘数可以根据分支i+p/2内、在步骤n-1得到的被乘数而得到。相应的计算处理过程用以下的伪代码描述,其中我们表示:
算法3.2.
1.对于s=0,...,2m-J-1,设置
2.对于s=s*(1),...,2m-J+s*(J)-1,
对于j=J1,...,J2,并行地进行
开始
2.1.按照公式(4)设置
2.2.对于i=0,...,2J-j-1,并行地进行
开始
对于k=0,...,p-1
开始
设置
计算
结束
对于n=0,...,Lp-1,顺序地进行
开始
对于k=0,...,p-1
开始
设置
结束
计算
结束
设置
结束
3.形成输出矢量
图4上给出类型2核心DWT结构的通用结构。在这种情形下,属于同一个流水线级的PE之间的连接(虚线所示)是有效的。正如从图4上看到的,类型2核心DWT结构类似于类型1核心DWT结构,只是现在除了p个输入端和两个输出端(以后称为主输入端和主输出端)以外,每个PE还具有附加的p个输入端和p个输出端(以后称为中间输入端和中间输出端)。PEj,i+p/2的p个中间输出端被连接到PEj,i,i=0,...,2J-j-p/2-1,的p个中间输入端。类型2核心DWT结构内的其他连接类似于类型1核心DWT结构内的那些连接。
类型2核心DWT结构的块的功能性基本上类似于类型1核心DWT结构的那些块的功能性。数据输入块的功能性与类型1核心DWT结构的情形完全相同。
级j(j=1,...,J)的数据路由块通常可以以任意电路实现,它在每个运行步骤的第一时间单元n=0时并行地接收2J-j+1个分量的一个矢量,以及并行地输出在先前的
个步骤中接受的矢量的级联(按时间顺序排序)所构成的一个矢量的头2J-j+1+p-2个分量(0,1,...,2J-j+1+p-3)的矢量,其中
是在(8)式中规定的。然后在该运行步骤的每个时间单元n=0,...,Lp-1,数据路由块在它的最后p个输出端处并行地输出同一个矢量的p个分量2J-j+1+np-2,...,2J-j+1+(n+1)p-3的下一个子矢量。
在每个运行步骤的每个时间单元n=0,...,Lp-1时,在类型2核心DWT结构中所使用的PE的功能性是计算在它的p个主输入端或p个中间输入端处存在的矢量x与预定系数的两个矢量(长度为p的LP′和HP′)的两个内积,以及计算x与LP′的逐点乘积。在时间单元n=0时,矢量x通过使用PE的p个主输入端被形成,以及在时间单元n=1,...,Lp-1时,矢量x通过使用PE的中间输入端被形成。在一个运行步骤期间计算的两个内积的结果被累积并被传送到PE的两个主输出端,而逐点乘积的结果被传送到PE的中间输出端。
类似于类型1核心DWT结构,可以看到类型2核心DWT结构以由(11)和(12)给出的延时与时间周期特性来执行算法3.2。类型1和类型2结构的其他特性也是相似的。具体地,类型2结构是非常快速的,可作为半脉动结构被实施,并具有变化的并行性级别,从而提供了产生时间与硬件复杂性之间的折衷的机会。这两个结构之间的差别在于,类型1核心DWT结构中数据路由块的移位寄存器用类型2核心DWT结构内的PE之间的附加连接代替。
类型2核心DWT结构的可能的实现方案
图9上显示用于类型2核心DWT结构的第j流水线级(j=1,...,J)的可能的结构。在图10(a)上显示对于Lmax=6,J=3和p=2的情形的这种实现方案的例子。在这个实现方案中,数据路由块包含
个链连接的组,每组具有2J-j+1个延时;以及长度为Lmax-2的移位寄存器,它在每个时间单元把数值向上移p个位置。加到该级的2J-j+1个输入被并行地连接到第一组延迟级,该组延迟级的输出被连接到下一组延迟级的输入端,等等。最后第
组延迟级的输出形成数据路由块的头2J-j+1个输出以及被连接到PE的主输入端。第
组延迟级的输出,
被并行地连接到移位寄存器的2J-j+1个连续的单元。第
组延迟级的输出被连接到头2J-j+1个单元,第
组延迟级的输出被连接到下一个2J-j+1个单元,等等。然而,该级的头
个输入被直接连接到移位寄存器的最后qj个单元。来自移位寄存器的头p-2个单元的输出形成数据路由块的最后p-2个输出,以及按照该通用结构内的连接被连接到PE的主输入端。可以看到,给出的实现方案满足对于类型2核心DWT结构的数据路由块的功能性约束条件。事实上,在每个步骤开始时,在先前的
个步骤中接受的矢量的级联(按时间顺序排序)所形成的一个矢量的头2J-j+1+p-2个分量被形成在数据路由块的输出端处,然后在每个随后的时间单元期间,该矢量的接下来p个分量被形成在它的最后的p个输出端处。
图10(b)上给出在p=2的情形下用于类型2核心DWT结构的PE的可能的结构。本领域技术人员将会看到,对于任意的p和对于p=1,p=2,和p=Lmax的结构可以类似于图8(a),(b),(c),和(d)所显示的那些结构被设计。
应当指出,在p=Lmax的情形下,类型2核心DWT结构的这个实现方案是与图6的类型1核心DWT结构的实现方案相同的。
多核心DWT结构
上述的两种类型的核心DWT结构可以根据参量p而以变化的并行性级别来实施。在多核心DWT结构内,通过引入新的参量r=1,...,2m-J,得到并行性级别上的进一步的灵活性。多核心DWT结构事实上是通过把相应的单核心DWT结构扩展r倍而从其得到的。图11上给出它的通用结构。该结构包含一个数据输入块和J个流水线级,每个级包含一个数据路由块和一个PE块。
数据输入块可以以类似于核心DWT结构的情形的方式被实现为字串行和字并行,但在这种情形下,它现在具有r2J个并行的输出端,它们被连接到第一流水线级的数据路由块的r2J个输入端。数据输入块的功能性是串行或并行地接受,并以每个运行步骤r2J个分量的速率并行输出该输入矢量的一组分量。
首先考虑类型1多核心DWT结构。在这种情形下,第j流水线级,j=1,...,J,包含数据路由块,具有形成到该级的输入端的r2J-j+1个输入IPS(j)(0),...,IPS(J)(r2J-j+1-1)和被连接到r2J-j个PE的输入端的r2J-j+1+p-2个输出端ODRB(j)(0),...,ODRB(j)(r2J-j+J+p-3)。每个PE具有p个输入端和两个输出端,其中p≤Lmax是描述每个PE的并行性级别的实现方案的参量。第j级,j=1,...,J,的数据路由块的连续的p个输出端ODRB(j)(2i),ODRB(J)(2i+1),...,ODRB(j)(2i+p-1)被连接到同一级的第i个PE(PEj,i),i=0,...,r2J-j-1,的p个输入端。第j个流水线级,j=1,...,J,的r2J-j个PE的第一个输出构成该级的输出OPS(j)(0),...,OPS(j)(r2J-j-1),以及被连接到下一级,即第(j+1)级的数据路由块的r2J-j个输入端IPS(j+1)(0),...,IPS(j+1)(r2J-j-1)。最后级,即第J级的r个PE的第一输出形成了该结构的头r个输出out(0),...,out(r-1)。第j个流水线级,j=1,...,J,的r2J-j个PE的第二输出构成该结构的第(r2J-j)到第(r2J-j+1-1)个输出out(r2J-j),...,out(r2J-j+1-1)。
(级j=1,...,J的)数据路由块通常可以以任意电路被实现,它在每个运行步骤的第一时间单元n=0时并行地接受r2J-j+1个分量的一个矢量,然后在该运行步骤的每个时间单元n=0,...,Lp-1时,它并行地输出在先前的
个步骤中接受的矢量的级联(按时间顺序排序)所形成的一个矢量的r2J-j+1+p-2个分量np,np+1,...,(n+1)p+r2J-j+1-3的矢量(见式(8))。PE的功能性是与类型1核心DWT结构的情形完全相同的。
现在考虑类型2多核心DWT结构。数据输入块与类型1核心DWT结构的情形完全相同。在类型2多核心DWT结构中使用的PE与它们之间的互连类似于类型2单核心DWT结构的情形。差别在于,现在在该结构的第j个流水线级(j=1,...,J)内有r2J-j(而不是2J-j)个PE。数据路由块现在具有r2J-j+1个输入端和r2J-j+1+p-2个输出端,具有与类型1多核心DWT结构的情形下相同的、到PE的连接。(级j=1,...,J)的数据路由块通常可以以任意电路被实现,它在每个运行步骤的第一时间单元n=0时并行地接受r2J-j+1个分量的一个矢量,以及并行地输出在先前的
个步骤中接受的矢量级联(按时间顺序排序)所形成的一个矢量的头r2J-j+1+p-2个分量0,1,...,r2J-j+1+p-3的矢量。然后在该运行步骤的每个时间单元n=0,...,Lp-1,在它的最后p个输出端处并行地输出同一个矢量的p个分量r2J-j+1+np-2,...,r2J-j+1+(n+1)p-3的下一个子矢量。
两种类型的多核心DWT结构比起单核心DWT结构快r倍,也就是达到相对于参量r的线性加速。在输入和相应的输出矢量之间的延时等于
个时间单元,以及吞吐量或时间周期等于
Tp(C1)=2m-J[L/p]/r (15)个时间单元。因此,在多核心DWT结构内达到进一步的加速和在时间与硬件复杂性之间折衷的灵活性。此外,该结构是模块化和常规的,以及可以被实施为半脉动阵列。
作为对于p=L=Lmax和r=2m-J的多核心DWT结构的可能的实现方案,可以考虑DWT流图本身(见图2),其中节点(矩形)代表PE以及小圆圈代表锁存器。这个实现方案在[34]中给出,在其中它被称为全并行流水线(FPP)结构。然而,它只是按照本发明提出的多核心DWT结构的一个特定的实现方案。
可变分辨率的DWT结构
上述的结构实施倍频程数目不超过给定数目J的DWT。它们可以实施倍频程数目小于J的DWT,尽管在硬件利用上有一些损失。可变分辨率的DWT结构执行具有任意数目J′的倍频程的DWT,而只要J′大于或等于给定的数目Jmin时,结构的效率保持接近于100%。
图12(a)上显示可变分辨率的DWT结构的通用结构。它包含相应于Jmin个分解级别的核心DWT结构和任意串行的DWT结构,例如基于RPA的一个结构([14]-[17],[19]-[20],[22])。核心DWT结构执行J′倍频程DWT的头Jmin个倍频程。来自核心DWT结构的out(0)的低通结果被传送到串行DWT结构。串行DWT结构执行J′倍频程DWT的最后的J′-Jmin个倍频程。因为核心DWT结构可以以可变的并行性级别实施,所以它可以与串行DWT结构如此平衡,使得只要J′≥Jmin就能达到约100%的硬件利用。
为了达到在两个部分之间的平衡,核心DWT结构被安排成执行具有与串行结构执行(J′-Jmin)倍频程的M点DWT相同的或更快的吞吐量的Jmin倍频程的N点DWT(M=(N/2Jmin))。在文献上找到的串行结构在2M个时间单元中([14],[15])或在M个时间单元中([14]-[19])执行M点DWT,其相应地利用L或2L个基本单元(BU,乘法器-加法器对)。它们可被缩小到包含任意数目K≤2L的BU,以使得M点DWT在M[2L/K]个时间单元中被执行。由于类型1或类型2核心DWT结构在N[L/p]/2Jmin个时间单元中执行Jmin倍频程N点DWT,所以平衡条件成为[L/p]<[2L/K],如果p=[K/2],则这将会被满足。通过这个条件,可变分辨率的DWT结构包含总共A个BU,以及在Td个时间单元中执行J′倍频程N点DWT,其中:
基于多核心DWT结构的可变分辨率DWT结构也可以通过把数据路由块插入在多核心与串行DWT结构之间而被构建(见图12(b))。数据路由块的功能性是以每个运行步骤r个样本的速率而并行地接受和串行地输出数字。在这种情形下的平衡条件是rp=[K/2],以及面积时间特性是
在图14上给出的表1比较了建议的结构与某些传统结构的性能。在这个表上,正如文献上共同接受的,乘法器-加法器对(它们是DWT结构中的基本单元(BU))被看作为代表给定结构的面积。时间单元被取为对于一次乘法所需要的时间周期,因为这是关键的流水线级。按照本发明所建议的DWT结构的特性(在表1的最后7行中显示的),是对于任意的实现参量Lmax,p和r以及对于参量选择的某些例子给出的。还应指出,在建议的结构中使用的BU的数目是在图8的PE例子的假设下(其中具有p个输入端的PE包含2p个BU)给出的。然而,PE可被进一步优化,以包括较小数目的BU。
为了方便起见,图15上显示的表2给出对于DWT参量J=3或J=4,N=1024,和L=9的选择(这相应于大多数流行的DWT,Daubechies 9/7小波)的面积-时间特性的数字实例。图16上显示的表3给出对于J=3或J=4,N=1024,和L=5(Daubechies 5/3小波)的数字实例。在表上给出的门计数是在假设:BU包含16比特Booth乘法器,后面跟随级联的32比特加法器,因此总共包括1914个门的条件下被计算的(见[37])。图13以图形的形式表示表2的某些行。应当指出,相应于建议的结构的线可被扩展到大得多的数目的基本单元,尽管这些未给出的情形需要相当大的硅面积,在当前的技术水平下可能是不实际的。
正如从这些图示得出的,建议的结构与传统的结构相比较在中等面积要求下呈现优越的时间特性。建议的结构的优点可以在相对于ATp 2准则(通常被用来评估面向高速的结构的性能)考虑它们的性能时被最好地理解。注意,表的第一行代表通用DSP结构。在紧接的两个行上给出的结构是非流水线的或限制的(仅仅两级)流水线的结构,它们以大约100%硬件利用运行,正如按照本发明建议的结构那样。因此,它们的性能“正比于”建议的结构的性能,然而,它们在可达到的并行性级别上灵活得多,从而导致可能的时间和面积复杂性的范围很宽。表的第四行给出具有差的硬件利用以及因此差的性能的J级流水线结构。表的第五到第七行给出来自先前的文献的结构,它们是J级流水线的,以及达到100%硬件利用和良好的性能,但不允许灵活的面积与时间复杂性的范围,诸如由按照本发明建议的结构所提供。
以上讨论了能够执行具有任意参量(诸如滤波器长度和系数、输入长度和分解级别的数目)的小波变换的“通用”小波变换器的通用结构。通过优化在结构中所包括的处理单元(PE)的结构,有可能进一步优化特定的离散小波变换(相应于以上参量的特定的组)的结构。
本发明可被实施为使用CMOS技术的专用半脉动的VLSI电路。它可以是独立的器件或用于通用处理器的嵌入式加速器。建议的结构可以用变化的并行性级别实施,这导致变化的成本和性能。实施方案的模式以及想要的并行性级别的选择取决于应用领域。在上面,该结构是在用于执行任意DWT的实施方案的环境下被描述的。然而,它们可被如此地进一步优化和实施,以便专用于特定类型的DWT。这在涉及到JPEG 2000的应用中可能是想要的,其中Daubechies 5/3或9/7小波被规划为基本的DWT。
已经描述了本发明的特定实施方案和实施例。本领域技术人员明白,本发明并不限于以上给出的实施例的细节,而是可以以使用等价装置的其他实施例来实施,而不背离本发明的特性。本发明的范围仅仅由附属的专利权利要求限制。
缩略语
ASIC 专用集成电路
CMOS 补金属氧化物硅
DSP 数字信号处理器
DWT 离散小波变换
FPP 完全的并行-流水线(DWT结构)
LPP 限制的并行-流水线(DWT结构)
PE 处理器单元
参考文献
[1]S.G.Mallat,“A Theory for Multiresolution SignalDecomposition:The Wavelet Representation(多分辨率信号分解的理论:小波表示)”,IEEE Trans.on Pattern Analysis and MachineIntelligence,Vol.2,n.12,Dec.1989,pp.674-693.
[2]M.Vetterli and J.Kovacevic,Wavelet and Subband Coding(小波和子带编码),Englewood Cliffs(NJ):Prentice-Hall,1995.
[3]I.Daubachies,Ten Lectures on Wavelets(关于小波的十次讲座),Philadelphia(PA):SIAM,1992.
[4]I.Daubachies,“The Wavelet Transform,Time Frequency,Locallization and Signal Analysis(小波变换,时间频率,本地化和信号分析)”,IEEE Trans.on Information Theory,vol.36,n.5,Sept.1990,pp.961-1005.
[5]G.Beylkin,R.Coifman,and V.Rokhlin,“Wavelet inNumerical Analysis(数值分析中的小波)”,in Wavelets and theirApplications,New York(NY):Jones and Bartlett,1992,pp.181-210.
[6]G.Beylkin,R.Coifman,and V.Rokhlin,“Fast WaveletTransforms and Numerical Algorithms(快速小波变换和数值算法)”,New Haven(CT):Yale Univ.,1989.
[7]L.Senhadji,G.Carrault,and J.J.Bellanguer,“Interictal EEG Spike Detection:A New Framework Based on TheWavelet Transforms(Interictal EEG尖峰信号检测:基于小波变换的新的框架结构)”,In Proc.IEEE-SP Int.Symp.Time-FrequencyTime-Scale Anal.,Philadephia(PA)Oct,1994,pp.548-551.
[8]S.G.Mallat,“Multifrequency Channel Decomposition ofImages and Wavelet Models(图像的多频率信道分解和小波模型)”,IEEE Trans.on Acoust.Speech,Signal Processing,vol.37,n.12,1989,pp.2091-2110.
[9]Z.Mou and P.Duhamel,“Short-Length FIR Filters andTheir Use in Fast Non Recursive Filtering(短长度的FIR滤波器及其在快速非递归滤波中的使用)”,IEEE Trans.on SignalProcessing,vol.39,n.6,Jun.1991,pp.1322-1332.
[10]A.N.Akansu and R.A.Haddad,Multiresolution SignalDecomposition:Transforms,Subbands and Wavelets(多分辨率的信号分解:变换,子带和小波),New York(NY):Academic,1992.
[11]R.Kronland-Martinet,J.Morlet,and A.Grossman,“Analysis of Sound Patterns through Wavelet Transform(通过小波变换的声音图案的分析)”,Int.Journ,Pattern Recognitionaand Artificial Intell.,vol.1,n.2,1987,pp.273-302.
[12]S.B.Pan and R.H.Park,“New Systolic Arrays forComputation of the 1-D Discrete Wavelet Transform(用于一维离散小波变换的计算的新脉动阵列)”,Proceedings of the IEEEInternational Conference on Acoustics,Speech,and SignalProcessing,1997,Vol.5,1997,pp.41.13-4116.
[13]A.B.Premkumar and A.S.Madhukumar.“An Efficient VLSIArchitecture for the Computation of 1-D Discrete WaveletTransform(用于一维离散小波变换的计算的有效的VLSI结构)”,Proc.Of the IEEE Int.Conf.On Information,Communicationsand Signal Processing(ICICS‘97),Singapore 9-12 September1997,pp.1180-1183.
[14]M.Vishwanath,R.M.Owens,and M.J.Irwin,“VLSIArchitectures for the Discrete Wavelet Transform(用于离散小波变换的VLSI结构)”,IEEE Trans.on Circ.and Syst.II:Analogand Digital Signal Processing,vol.42,n.5,May 1995,pp.305-316.
[15]J.Fridman and S.Manolakos,“Discrete WaveletTransform:Data Dependence Analysis and Synthesis ofDistributed Memory and Control Array Architectures(离散小波变换:分布存储器与控制阵列结构的数据依赖性分析和综合)”,IEEETrans.on Signal Processing,vol.45,n.5,May 1997,pp.1291-1308.
[16]K.K.Parhi and T.Nishitani,“VLSI Architectures forDiscrete Wavelet Transforms(用于离散小波变换的VLSI结构)”,IEEE Trans.on VLSI Systems,vol.1,n.2,1993,pp.191-202.
[17]T.C.Denk and K.K.Parhi,“Systolic VLSI Architecturesfor 1-D Discrete Wavelet Transform(用于一维离散小波变换的脉动VLSI结构)”,Proceedings of the Thirty-Second AsilomarConference on Signal,Systems & Computers,1998,Vol.2,pp.1220-1224.
[18]G.Knowles,“VLSI Architecture for the DiscreteWavelet Transform(用于离散小波变换的VLSI结构)”,ElectronicsLetters,vol.26,n.15,1990,pp.1184-1185.
[19]C.Chakrabarti and M.Vishwanath,“EfficientRealizations of Discrete and Continuous Wavelet Transforms:From Single Chip Implementations to Mappings on SIMD ArrayComputers(离散的和连续的小波变换的有效的实现方案:从单片实施到SIMD阵列计算机上的映射)”,IEEE Trans.on Signal Processing,vol.43,n.3,1995,pp.759-771.
[20]C.Chakrabarti,M.Vishwanath,and R.M.Owens“Architecture for Wavelet Transform:A Survey(用于小波变换的结构:纵览)”,Journal of VLSI Signal Processing,vol.14,n.2,1996,pp.171-192.
[21]A.Grzezczak,M.K.Mandal,S.Panchanatan,“VLSIImplementation of Discrete Wavelet Transform(离散小波变换的VLSI实施)”,IEEE Trans.on VLSI Systems,vol.4,n.4,Dec.1996,pp.421-433.
[22]M.Vishwanath,and R.M.Owens“A Common Architecturefor the DWT and IDWT(用于DWT和IDWT的公共结构)”,Proceedingsof IEEE Int.Conf.on Application Specific Systems,Architectures and Processors,1996,pp.193-198.
[23]C.Yu,C.H.Hsieh,and S.J.Chen,“Design andImplementation of a Highly Efficient VLSI Architecture forDiscrete Wavelet Transforms(用于离散小波变换的高效VLSI结构的设计和实施方案)”,Proceedings of IEEE Int.Conf.on CustomIntegrated Circuits,1997,pp.237-240.
[24]S.B.Syed,M.A.Bayoumi,“A Scalable Architecture forDiscrete Wavelet Transform(用于离散小波变换的可缩放结构)”,Proceedings of Computer Architectures for MachinePerception(CAMP’95),1995,pp.44-50.
[26]M.Vishwanath,“The Recursive Pyramid Algorithm forthe Discrete Wavelet Transform(用于离散小波变换的递归金字塔算法)”,IEEE Transactions on Signal Processing,vol.42,n.3,1994,pp.673-677.
[27]D.Liu,C.Svensson,“Trading Speed for Low Power byChoice of Supply and Threshold Voltages(通过电源和门限电压的选择用速度换取低功率)”,IEEE Journal of Solid State Circuits,vol.28,n.1,1993,pp.10-17.
[28]H.T.Kung,“Why Systolic Architectures?(为什么用脉动结构)”,IEEE Computer,1982.
[30]F.Marine,D.Gevokian,and J.Astola,“High-Speed/Low-Power 1-D DWT Architectures with high efficiency(具有高效率的高速度/低功率的一维DWT结构)”,Proceedings of the IEEEInternational Conference on Circuits and Systems,May 28-312000,Geneva,Switzerland,vol.5,pp.337-340.
[31]D.Z.Gevokian,“Computational Aspects of DiscreteLinear Transforms and Rank Order Based Filters(离散线性变换和基于排名次序的滤波器的计算方面)”,Thesis for the degree ofDoctor of Technology,May 1997,214 pages.
[32]J.T.Astola,S.S.Agaian,and D.Z.Gevokian,“ParallelAlgorithms and Architectures for a Family of Haar-likeTransforms(用于Haar样变换族的并行算法和结构)”,in Proceedingsof the SPIE’s International Symposium on Electronic Imaging:Science and Technology,vol.2421,Feb.1995,San Jose,California,USA.
[34]D.Gevorkian,F.Marino,S.Agaian,and J.Astola,“Flowgraph Representation of Discrete Wavelet Transforms andWavelet Packets for their Efficient Parallel Implementation(离散小波变换和小波包,用于它们的有效并行实施方案的流图表示)”,in Proceedings of TICSP Int.Workshop on SpectralTransforms and Logic Design for Future Digital Systems,June2-3,2000,Tampere,Finland.
[35]D.Gevorkian,J.Astola,F.Marino,and S.Agaian,“Highly Efficient Fast Architectures for Discrete WaveletTransforms based on Their Flowgraph Representation(基于其流图表示、用于离散小波变换的高效快速结构)”,in Proceedings ofthe X European Signal Processing Conference,Sept.4-8,2000,Tampere,Finland.
[36]http:/www.ti.com/sc/products/dsp/c6000/benchmarks/64x.htm#filters
[37]P.Pirsch,Architectures for Digital SignalProcessing(用于数字信号处理的结构),J.Willey & Sons,1998,419Pages.
Claims (10)
1.一种用于执行离散小波变换运算的微处理器结构,所述离散小波变换运算包括在规定数目的分解级别j上对包括多个输入样本的输入信号矢量进行分解,其中j是1到J的范围中的整数,从第一分解级别开始并前进到最后的分解级别,所述微处理器结构具有多个处理级,每个所述级相应于离散小波变换的一个分解级别j,以及所述级通过多个基本处理单元被实施,在每个增加的分解级别j处,每个所述处理级中实施的基本处理单元的数目减小恒定的倍数。
2.按照权利要求1的微处理器结构,其中输入信号矢量包括r×km个输入样本,r,k和m是非零正整数,以及在所述微处理器结构的每个所述处理级中实施的基本处理单元的数目从分解级别j到分解级别j+1减小k倍。
3.按照权利要求2的微处理器结构,该微处理器结构被安排成并行地处理所述输入矢量的全部的所述r×km个输入样本。
4.按照权利要求2的微处理器结构,还包括r×km个输入端,被安排成并行地接收所述输入矢量的全部的所述r×km个输入样本。
5.按照权利要求2的微处理器结构,其中在第一处理级中的所述基本处理单元的数目等于r×km-1。
6.按照权利要求2的微处理器结构,其中每个处理级的每个基本处理单元具有预定数目的输入端,以及该基本处理单元被安排成执行在k组系数值与在所述预定数目的输入端处并行接收的一组输入值之间的一组k个内积运算,所述输入端的数目、一组中的所述系数值的数目以及并行地接收的所述输入值的数目,每个都等于用来形成所述k个内积的滤波器长度L,所述基本处理单元还包括k个输出端,每个输出端被安排成输出一个输出值,该输出值相应于在所述k组系数值之一与该组输入值之间执行的该组k个内积之一的结果。
7.按照权利要求2的微处理器结构,其中每个处理级的每个基本处理单元具有预定数目的输入端,以及该基本处理单元被安排成执行在k组系数值与在所述预定数目的输入端处并行接收的一组输入值之间的一组k个内积运算,所述输入端的数目与并行地接收的所述输入值的数目等于滤波器长度Llong,其中Llong是用来形成任意所述k个内积的系数值的最大数目,所述基本处理单元还包括k个输出端,每个输出端被安排成输出一个输出值,该输出值相应于在所述k组系数值之一与该组L个输入值之间执行的该组k个内积之一的结果。
8.按照权利要求1的微处理器结构,其中每个处理级的每个基本处理单元具有预定数目的输入端,以及被安排成执行在两组系数值与在所述L个输入端处并行接收的一组输入值之间的两个内积,所述两个内积的第一个内积代表低通滤波运算,以及所述两个内积的第二个内积代表高通滤波运算,所述输入端的数目、所述系数值的数目与并行接收的所述输入值的数目等于用来形成所述两个内积的滤波器长度L,所述基本处理单元还包括两个输出端,第一输出端被安排成输出低通滤波的输出值,该低通滤波的输出值相应于在该组输入值上执行低通滤波运算的结果,以及第二输出端被安排成输出高通滤波的输出值,该高通滤波的输出值相应于在该组输入值上执行高通滤波运算的结果。
9.按照权利要求2的微处理器结构,其中处理级2到J的至少一个级还包括数据路由块,它被安排来从紧挨的前一个处理级j-1的每个基本处理单元接收所述k个输出值中一个规定的输出值,所述路由块还被安排来把所述k个输出值中的规定的输出值编组为L个输出值的组,以及把所述L个输出值的组并行地提供到处理级j的基本处理单元的输入端,以使得处理级j的每个基本处理单元接收从所述紧挨的前一个处理级j-1得到的、预定的L个输出值的组。
10.按照权利要求1的微处理器结构,其中处理级2到J的至少一个级还包括路由块,它被安排来从紧挨的前一个处理级j-1的每个基本处理单元接收低通滤波的输出值,所述路由块还被安排来把所述低通滤波的输出值编组为L个低通滤波输出值的组,以及把所述L个低通滤波输出值的组并行地提供到处理级j的基本处理单元的输入端,以使得处理级j的每个基本处理单元接收从所述紧挨的前一个处理级j-1得到的、预定的L个低通滤波输出值的组。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/872682 | 2001-06-01 | ||
US09/872,682 US6976046B2 (en) | 2001-06-01 | 2001-06-01 | Architectures for discrete wavelet transforms |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB028150821A Division CN1271562C (zh) | 2001-06-01 | 2002-05-28 | 用于离散小波变换的结构 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1892640A true CN1892640A (zh) | 2007-01-10 |
Family
ID=25360097
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB028150821A Expired - Fee Related CN1271562C (zh) | 2001-06-01 | 2002-05-28 | 用于离散小波变换的结构 |
CNA2006101000466A Pending CN1892640A (zh) | 2001-06-01 | 2002-05-28 | 用于离散小波变换的结构 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB028150821A Expired - Fee Related CN1271562C (zh) | 2001-06-01 | 2002-05-28 | 用于离散小波变换的结构 |
Country Status (8)
Country | Link |
---|---|
US (1) | US6976046B2 (zh) |
EP (1) | EP1412911B1 (zh) |
JP (1) | JP4180502B2 (zh) |
KR (2) | KR101123106B1 (zh) |
CN (2) | CN1271562C (zh) |
AT (1) | ATE463801T1 (zh) |
DE (1) | DE60235893D1 (zh) |
WO (1) | WO2002097718A1 (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030046322A1 (en) * | 2001-06-01 | 2003-03-06 | David Guevorkian | Flowgraph representation of discrete wavelet transforms and wavelet packets for their efficient parallel implementation |
DE10146582A1 (de) * | 2001-09-21 | 2003-04-24 | Micronas Munich Gmbh | Vorrichtung und Verfahren zur Teilbandzerlegung von Bildsignalen |
US7412103B2 (en) * | 2003-10-20 | 2008-08-12 | Lawrence Livermore National Security, Llc | 3D wavelet-based filter and method |
JP4649859B2 (ja) * | 2004-03-25 | 2011-03-16 | ソニー株式会社 | 信号処理装置および方法、記録媒体、並びにプログラム |
US20050237699A1 (en) * | 2004-04-21 | 2005-10-27 | David Carroll | Multi-screen mobile computing system |
US7706992B2 (en) | 2005-02-23 | 2010-04-27 | Digital Intelligence, L.L.C. | System and method for signal decomposition, analysis and reconstruction |
US7577203B2 (en) * | 2005-03-24 | 2009-08-18 | Dell Products L.P. | Minimizing non-deterministic noise by using wavelet transform |
US20070180418A1 (en) * | 2006-01-30 | 2007-08-02 | Fam Fook T | Clock scheme for circuit arrangement |
US7724975B2 (en) * | 2006-06-22 | 2010-05-25 | National Chun Cheng University | Design techniques and their circuit designs for versatile and scalable video coding |
US20080288568A1 (en) * | 2007-05-14 | 2008-11-20 | Hou Hsieh S | Low power Fast Hadamard transform |
US8755515B1 (en) | 2008-09-29 | 2014-06-17 | Wai Wu | Parallel signal processing system and method |
US20110176743A1 (en) * | 2010-01-21 | 2011-07-21 | Sankar Pathamadi V | Data compression methods |
US9095266B1 (en) | 2010-08-02 | 2015-08-04 | Chi Yung Fu | Method for treating a patient |
US8725669B1 (en) * | 2010-08-02 | 2014-05-13 | Chi Yung Fu | Signal processing method and apparatus |
US9037224B1 (en) | 2010-08-02 | 2015-05-19 | Chi Yung Fu | Apparatus for treating a patient |
KR200454396Y1 (ko) * | 2010-10-28 | 2011-06-30 | 주식회사 농지개량 | 환경 수로관 |
KR101490153B1 (ko) | 2010-11-30 | 2015-02-05 | 엠.에스. 라마이아 스쿨 오브 어드밴스드 스터디스 | 멀티코어 프로세서를 사용하는 웨이블릿 변환 |
FR2996033B1 (fr) | 2012-09-26 | 2015-10-30 | Commissariat Energie Atomique | Dispositif de decomposition d'images par transformee en ondelettes |
EP2792300B1 (en) | 2013-04-16 | 2019-06-05 | BIOTRONIK SE & Co. KG | Implantable cardiac device adapted to extract a patient's respiratory waveforms from an intrathoracic or intracardiac impedance, pressure and/or accelerometry input stream |
CN106767952B (zh) * | 2017-02-28 | 2018-12-07 | 西安交通大学 | 一种电感式位移传感器的干扰消除方法 |
RU2682860C2 (ru) * | 2017-07-12 | 2019-03-21 | Александр Васильевич Горепекин | Способ и устройство преобразования сигналов произвольной формы с использованием пилообразных ступенчатых вейвлетов |
US11602311B2 (en) | 2019-01-29 | 2023-03-14 | Murata Vios, Inc. | Pulse oximetry system |
CN111684484A (zh) * | 2019-07-30 | 2020-09-18 | 深圳市大疆创新科技有限公司 | Dwt运算装置、方法、图像处理装置和可移动平台 |
CN112800386B (zh) * | 2021-01-26 | 2023-02-24 | Oppo广东移动通信有限公司 | 傅里叶变换处理方法和处理器、终端、芯片及存储介质 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6148111A (en) * | 1998-04-27 | 2000-11-14 | The United States Of America As Represented By The Secretary Of The Navy | Parallel digital image compression system for exploiting zerotree redundancies in wavelet coefficients |
US6229926B1 (en) * | 1998-07-24 | 2001-05-08 | Picsurf, Inc. | Memory saving wavelet-like image transform system and method for digital camera and other memory conservative applications |
US6047303A (en) * | 1998-08-06 | 2000-04-04 | Intel Corporation | Systolic architecture for computing an inverse discrete wavelet transforms |
US6178269B1 (en) * | 1998-08-06 | 2001-01-23 | Intel Corporation | Architecture for computing a two-dimensional discrete wavelet transform |
US6584111B1 (en) * | 1998-11-04 | 2003-06-24 | Northern Telecom Limited | ABR flow control using single bit congestion indication and wavelet transform filtering |
US6643406B1 (en) * | 1999-07-28 | 2003-11-04 | Polaroid Corporation | Method and apparatus for performing linear filtering in wavelet based domain |
US6466957B1 (en) * | 1999-09-02 | 2002-10-15 | 3Com Corporation | Reduced computation system for wavelet transforms |
US6684235B1 (en) * | 2000-11-28 | 2004-01-27 | Xilinx, Inc. | One-dimensional wavelet system and method |
US6785700B2 (en) * | 2000-12-13 | 2004-08-31 | Amphion Semiconductor Limited | Implementation of wavelet functions in hardware |
US20030018599A1 (en) * | 2001-04-23 | 2003-01-23 | Weeks Michael C. | Embedding a wavelet transform within a neural network |
-
2001
- 2001-06-01 US US09/872,682 patent/US6976046B2/en not_active Expired - Lifetime
-
2002
- 2002-05-28 JP JP2003500824A patent/JP4180502B2/ja not_active Expired - Fee Related
- 2002-05-28 KR KR1020087018978A patent/KR101123106B1/ko not_active IP Right Cessation
- 2002-05-28 DE DE60235893T patent/DE60235893D1/de not_active Expired - Lifetime
- 2002-05-28 CN CNB028150821A patent/CN1271562C/zh not_active Expired - Fee Related
- 2002-05-28 WO PCT/FI2002/000455 patent/WO2002097718A1/en active Application Filing
- 2002-05-28 AT AT02724362T patent/ATE463801T1/de not_active IP Right Cessation
- 2002-05-28 EP EP02724362A patent/EP1412911B1/en not_active Expired - Lifetime
- 2002-05-28 CN CNA2006101000466A patent/CN1892640A/zh active Pending
- 2002-05-28 KR KR1020037015572A patent/KR100975602B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
DE60235893D1 (de) | 2010-05-20 |
JP2005500595A (ja) | 2005-01-06 |
CN1537297A (zh) | 2004-10-13 |
KR20040018383A (ko) | 2004-03-03 |
ATE463801T1 (de) | 2010-04-15 |
KR20080081366A (ko) | 2008-09-09 |
KR100975602B1 (ko) | 2010-08-17 |
US6976046B2 (en) | 2005-12-13 |
EP1412911B1 (en) | 2010-04-07 |
JP4180502B2 (ja) | 2008-11-12 |
WO2002097718A1 (en) | 2002-12-05 |
EP1412911A1 (en) | 2004-04-28 |
CN1271562C (zh) | 2006-08-23 |
KR101123106B1 (ko) | 2012-03-19 |
US20030065489A1 (en) | 2003-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1271562C (zh) | 用于离散小波变换的结构 | |
CN1149496C (zh) | 自适应视频信号运算处理装置 | |
CN1139777A (zh) | 处理器及其运算方法以及数据处理器 | |
CN1265280C (zh) | 扩展整数的计算域的范围 | |
CN1151454C (zh) | 高速傅里叶变换装置、高速傅里叶反变换装置及方法 | |
CN1190963C (zh) | 数据处理装置和方法,学习装置和方法 | |
CN101069233A (zh) | 通过不同子带域之间通道进行数据处理的方法 | |
CN1145553A (zh) | 使用可逆子波变换和嵌入代码流进行压缩的方法和装置 | |
CN1320764C (zh) | 分段电路 | |
CN87104093A (zh) | 一维余弦变换的计算装置以及包括该计算装置的图象编码装置和解码装置 | |
CN1479907A (zh) | 基于类小波变换和稀疏数据编码的多分辨率图像数据管理系统和方法 | |
CN101048649A (zh) | 可扩展解码装置及可扩展编码装置 | |
CN1860527A (zh) | 一种处理具有离散值序列的信号的设备和方法 | |
CN1860795A (zh) | 用于将基于第一变换核的输入视频代码转换为基于第二变换核的输出视频的方法和装置 | |
CN101038560A (zh) | 并行处理方法中的作业分配方法及并行处理方法 | |
CN1786966A (zh) | 信息处理 | |
CN1529873A (zh) | 采用演化算法的硬件设计 | |
CN1750107A (zh) | 图像处理及传输设备、显示器、图像处理及传输方法 | |
CN1864158A (zh) | 用于处理至少两个输入值的装置和方法 | |
CN1659782A (zh) | 自适应多级维纳滤波器 | |
CN101044687A (zh) | 用于数据压缩优化的方法、系统和计算机程序产品 | |
CN1117172A (zh) | 计算电路 | |
CN1238969C (zh) | 将多个输入信号分离成多个输出信号的系统 | |
CN1314208C (zh) | 可扩展标记语言数据流压缩器及其压缩方法 | |
CN1543708A (zh) | 提供用最小二乘导出的脉冲响应误差特性估计量的方法与装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1102940 Country of ref document: HK |
|
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20070110 |
|
REG | Reference to a national code |
Ref country code: HK Ref legal event code: WD Ref document number: 1102940 Country of ref document: HK |