JP4180502B2 - 離散ウェーブレット変換のためのアーキテクチャ - Google Patents

離散ウェーブレット変換のためのアーキテクチャ Download PDF

Info

Publication number
JP4180502B2
JP4180502B2 JP2003500824A JP2003500824A JP4180502B2 JP 4180502 B2 JP4180502 B2 JP 4180502B2 JP 2003500824 A JP2003500824 A JP 2003500824A JP 2003500824 A JP2003500824 A JP 2003500824A JP 4180502 B2 JP4180502 B2 JP 4180502B2
Authority
JP
Japan
Prior art keywords
processing circuit
values
output
input
dwt
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.)
Expired - Fee Related
Application number
JP2003500824A
Other languages
English (en)
Other versions
JP2005500595A (ja
Inventor
ゲヴォルキアン ダヴィド
リウハ ぺトリ
ラウニアイネン アキ−ユハナ
ラパライネン ヴィル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nokia Oyj
Original Assignee
Nokia Oyj
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nokia Oyj filed Critical Nokia Oyj
Publication of JP2005500595A publication Critical patent/JP2005500595A/ja
Application granted granted Critical
Publication of JP4180502B2 publication Critical patent/JP4180502B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/148Wavelet transforms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Data Mining & Analysis (AREA)
  • Computational 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)

Description

本発明は、離散ウェーブレット変換(DWT)を実施するためのアーキテクチャに関する。本発明は、DWTを使用する可能性のある任意の分野に関し、特に、ディジタル信号および画像の処理、データ圧縮、マルチメディア、および通信の分野において使用されるアーキテクチャに関するが、それらに限定されない。
ドキュメントのリストがこの説明書の終りに与えられている。これらのドキュメントは、角括弧中のそれぞれの対応している数値によって以降で参照される。
「離散ウェーブレット変換」(DWT)[1]‐[4]は、プロトタイプ・ウェーブレットと呼ばれる単独ベース関数の拡大/縮小および変換されたバージョンを使用することによって、時間領域において長さN=r×kの入力信号を分解する数学的技法である。1つの特定のケースでは、N=2(すなわち、r=1およびk=2)である。DWTは、Haarウェーブレット、Hadamardウェーブレットおよびウェーブレット・パケットを使用して実行することができる。Haarウェーブレットによる分解は低域および高域フィルタリングを含み、その後に両方の結果の帯域の2つによるダウンサンプリングおよび低周波帯域のJレベルまたはオクターブへの繰り返された分解が続く。
過去10年間において、DWTは他の従来の信号処理技法より好ましいことがしばしば見出されてきた。何故なら、DWTは、例えば、本来的なスケーラビリティ、O(N)(ここで、Nは処理されるシーケンスの長さ)の計算的複雑度、信号処理の用途に対する低いエイリアシング歪み、および適応型時間‐周波数ウィンドウなどの他の有用な特徴を提供するからである。従って、DWTは数値解析[5]‐[6]、生医学[7]、画像およびビデオ処理[1]、[8]‐[9]、信号処理技術[10]および音声圧縮/解凍[11]などの広範囲の用途に対して研究され、適用されてきた。DWTベースの圧縮方法は、JPEG2000およびMPEG‐4などの国際標準のベースとなっている。
これらの用途の多くにおいて、有用な結果を得るためにリアルタイム処理が必要である。DWTは線形複雑性を有しているが、多くの用途はソフトウェアによる解決法だけでは処理できない。ディジタル信号プロセッサ(DSP)を使用したDWTの実施により計算速度が大幅に改善され、いくつかの用途に対しては十分である。しかし、多くの用途においては、汎用プロセッサの場合、あるいはDSPにおいてさえも、ソフトウェアによるDWT実施は遅過ぎる。従って、専用超大規模集積(VLSI)特定用途向け集積回路(ASIC)が最近多くの研究者の注目を集めており、いくつかのDWTアーキテクチャが提案されている([12]‐[24])。これらのデバイスのいくつかはハードウェアの複雑性が低いことを目標にしている。しかし、サンプル数がNであるシーケンスのDWTを計算するためには少なくとも2Nクロック・サイクル(cc)を必要とする。それにもかかわらず、周期が約Nccであるデバイスが設計されてきた(例えば、二重ハードウェアで提供される時の[14]における3つのアーキテクチャ、[15]におけるアーキテクチャA1、[16]‐[18]におけるアーキテクチャ、[19]における並列フィルタなど)。これらのアーキテクチャのほとんどは、計算される分解能レベル(オクターブ)の数とは無関係に1つまたは2つのフィルタ・ユニットを採用することと、メモリの容量を減らすことの両方のために、「再帰型ピラミッド・アルゴリズム」(RPA)[26]、または同様なスケジューリング技法を使用する。これは作り出すことができる「最も早い」瞬間において各出力を発生することによって行われる[26]。
[17]および[18]において提示されているアーキテクチャは、2つのパイプライン段から構成され、第1のパイプライン段は第1のDWTオクターブを実施し、第2の段はそれ以降のすべてのオクターブをRPAに基づいて実施する。[17]および[18]のアーキテクチャは、十分多い数のDWTオクターブに対して約100%のハードウェア利用率で動作するが、それらは制御が複雑であり、および/またはメモリの必要量が大きい。さらに、それらは2つのパルプライン段しか採用していないので、比較的低速である。従来のアーキテクチャにおいて得られる最高のスループットは、2点DWTの実施に対してN=2クロック・サイクルである。[31]、[32]および[34]において以前に提案のアーキテクチャによって、約100%のハードウェア利用率およびより高いスループットが得られる。[34]において提示されているFPPおよびLPPのアーキテクチャはDWTフィルタの長さに依存し、FPPアーキテクチャの場合、入力信号の長さに依存する。
現代の移動/ビジュアル通信において、低電力VLSI回路に対する需要が増加している。VLSI技術における改善によって、ハードウェアのコストが大幅に削減されている。従って、ハードウェアの増加のコストが掛かっても、周期を低減する方が価値のあることが多い。1つの理由は、周期の短いデバイスは消費電力が少ないことである。例えば、周期がT=N/2ccであるデバイスDを採用して、周期がT’=NccであるデバイスD’の2倍の速度で処理することができる。別の方法として、デバイスDが周波数fでクロックされている場合、周波数f’=2fでクロックされているデバイスD’と同じ性能を達成することができる。従って、デバイスDに対して電源電圧(fに対して線形)およびワット損(fに関して線形)を、デバイスD’[27]の電源電圧に対してそれぞれ2倍および4倍低減することができる。
高スループットのアーキテクチャは、通常、パイプラインまたは並列性を使用し、その中でDWTのオクターブが同様なハードウェア・ユニット(パイプライン段)から構成されているパイプラインで実施される。パイプラインは既存のDWTアーキテクチャ(例えば、[12]、[23]‐[24])によって既に使用されているが、最高速のパイプライン型の設計はN点のDWTを実施するために少なくともN個のタイム・ユニットを必要とする。
DWTの実施に対する既知の設計のほとんどは、図1に示されているDWTのツリー構造のフィルタ・バンク表現に基づいており、その場合、信号の分解のいくつかの(J個の)段(すなわち、オクターブ)があり、それぞれがその後に2のファクタによるダウン・サンプリングを伴っている。ダウンサンプリングの結果として、それ以降の各分解段に対するデータ入力の量は直前の分解段の直前に対する入力の量の半分である。これは、ツリー構造の方法を使用してDWTを実施するように設計された代表的なパイプライン型のデバイスにおける分解段のハードウェアの利用率を大幅に低下させる。何故なら、オクターブj=1,...,Jを実施している段は、普通は第1のオクターブにおいて使用されるクロック周波数より2j−1倍低い周波数でクロックされるからである[24]。この利用率の低さはDWTオクターブを実施する時のパイプライン段のバランシングが悪いことからきており、その結果、効率が低くなる。
[30]において、ツリー構造のフィルタ・バンク表現に基づいて1つのパイプライン・アーキテクチャが提案されており、それは2点のDWTに対して約100%のハードウェア利用率およびN/2=2m−1クロック・サイクルのスループットを達成する。これは可能な限りにおいて、ある段から次の段への半数の処理ユニットを使用しているJ段のパイプラインを含む。[34]‐[35]において、DWTの流れ図表現が提案され、並列/パイプラインのDWTアーキテクチャを作り出すためにツリー構造のフィルタ・バンク表現と比較された。特に、その流れ図表現はオクターブ内およびオクターブ間でのデータ転送を示すこと以外に、すべてのオクターブにおいて本来的な並列性を完全に具現している。これによって、パイプラインと並列性を組み合わせてより高いスループットおよびハードウェア利用率を達成することができる。特に、流れ図表現は2点のDWTのj番目(j=1,...,J)のオクターブが全面的に、または部分的に並列に実施することができる独立の同様な2m−j個の演算を必要とすることを示している。DWTのオクターブはパイプライン型のモードで実施され、一方、すべてのオクターブは並列モードで実施され、その並列性のレベルは1つのオクターブから次のオクターブへ半分になっている。パイプライン段内に可変レベルの並列性を組み込むことによって、パイプライン段が完全にバランスされている並列パイプライン型のデバイスが設計される。これはパイプライン型のモードでオクターブを実施し、その中でパイプライン段が段から段へ変化している度合いで並列化されていることを意味する。このアイデアは多くの異なる方法で実現することができる。[34]において、完全並列パイプライン型(FPP)および制限された並列パイプライン型(LPP)DWTアーキテクチャと呼ばれる2つのアーキテクチャが提案された。この2つのアーキテクチャは両方ともJ個のパイプライン段から構成され、各パイプライン段は前の段に比べて半分の数のプロセッサ要素を含んでいる。結果として、非常に高いスループットおよび約100%のハードウェア利用率が得られる。
既知の並列またはパイプライン型のアーキテクチャは本質的に入力の長さ、オクターブの数、長さ、およびある場合においては、低域および高域フィルタの実際の係数値などのDWTのパラメータに本質的に依存する。これらのパラメータの値が大きい場合、これらのアーキテクチャは非常に大きくなる可能性がある。さらに、所与のアーキテクチャの所与のハードウェア実現の中でパラメータが固定されているDWTを実現することだけが可能である。しかし、JPEG2000においては、DWTは1つの画像のファイルに対して別々に適用され、その中で、タイルのサイズは1から232−1の範囲で変化することができる。分解のオクターブの数は異なるタイルに対して0から255まで変化する可能性がある。従って、パラメータが変化しているDWTを実施することができるデバイス、言い換えれば、DWTパラメータには比較的依存しない一体化されたデバイスがあることが望ましい。そのようなデバイスを設計することは、直列のアーキテクチャの場合には簡単である。それは並列またはパイプライン型のアーキテクチャの場合にはそれほど簡単ではない。
従来のアーキテクチャ[12]‐[26]のほとんどが、DWTフィルタの長さに対して比例している数の乗算器および加算器を採用している。いくつかのアーキテクチャ[17]、[18]はオクターブの数が変化しているDWTを実施することができるが、オクターブの数が増えるにつれてそれらの効率が急激に低下する。
本発明の態様によれば、本発明は離散ウェーブレット変換の演算を実行するためのマイクロプロセッサ構造に向けられている。1つの実施形態においては、その離散ウェーブレット変換の演算は、規定された数の分解レベルjにわたっていくつかの数の入力サンプルを含んでいる入力信号ベクトルの分解を含み、ここで、jは1からJまでの整数であり、それは第1の分解レベルから始まって最終の分解レベルまで進行する。このマイクロプロセッサ構造はいくつかの処理段を備え、各段は離散ウェーブレット変換の分解レベルjに対応し、いくつかの基本処理要素によって実施されている。各処理段の中で実施されている基本処理要素の数は分解レベルjが増加するごとに一定のファクタだけ減少する。
このマイクロプロセッサ構造は、離散ウェーブレット変換の流れ図表現に基づいて一般にスケーラブルな構造である。
本発明においては、タイプ1およびタイプ2のコアDWTアーキテクチャと呼ばれる2種類のDWTアーキテクチャの一般的なパラメトリック構造、およびコアDWTアーキテクチャのいずれかに基づいて構築され、そして複数コアDWTアーキテクチャおよび可変分解能DWTアーキテクチャとそれぞれ呼ばれる2つの他のDWTアーキテクチャの一般的なパラメトリック構造が導入されている。すべてのアーキテクチャは可変レベルの並列性で実施することができ、従って、特定の用途において必要なハードウェア資源の量を決定し、そして計算速度、コスト、チップ面積および消費電力の条件の間のトレードオフを行うための機会が提供される。本発明においては、効率(ハードウェアの利用率)が改善され、結果としてスループットまたは消費電力が改善されているDWTアーキテクチャを開発するために、並列型およびパイプライン型の処理が組み合わされている。すべてのレベルの並列性においてほぼ100%のハードウェア利用率で動作するいくつかのDWTアーキテクチャの一般的な構造が提案されている。提示されているアーキテクチャは入力信号のサイズ、DWTフィルタの長さには比較的依存せず、そして可変分解能DWTアーキテクチャの場合には、オクターブの数にも依存せず、そして可変レベルの並列性で実施することができる。さらに、そのアーキテクチャは既存のDWT設計に比べて面積‐時間特性が極めて優れている。本発明は規則的で簡単に制御されるアーキテクチャを提供し、フィードバック、長い(入力の長さによって変わる)接続またはスイッチを含まない。それらはセミシストリック・アレイ(semisystolic array)として実施することができる。
本発明の実施形態を、添付の図面を参照しながら以下に記述するが、これは単なる例示としてのものにすぎない。
本発明において提案されているアーキテクチャを説明するためには、DWTを定義し、そのアーキテクチャ内に実施される基本アルゴリズムを提示する必要がある。ツリー構造のフィルタ・バンク、格子構造、リフティング方式または行列表現などの、いくつかの代案の定義/表現がある。次の説明はDWTの行列定義および流れ図表現を使用し、それは効率的な並列/パイプライン型DWTアーキテクチャの設計において非常に有効である。
離散ウェーブレット変換は線形変換y=H・xであり、ここで、x=[x,...,xN−1およびy=[y,...,yN−1は、それぞれ、長さN=2の入力および出力のベクトルであり、そしてHは疎行列の積として形成されるN×N次のDWT行列である。
Figure 0004180502
ここで、Iは単位(k×k)行列(k=2−2m−j+1)であり、Dは次の構造を備えている段jにおける解析(2m−j+1×2m−j+1)行列である。
Figure 0004180502
ここで、LP=[l,...,l]およびHP=[h,...,h]は、それぞれ低域フィルタおよび高域フィルタの係数のベクトル(Lはフィルタの長さ)であり、そしてPはサイズ(2m−j+1×2m−j+1)の完全アンシャッフル演算子の行列である。完全アンシャッフル演算子は構成要素のナンバリングがゼロから始まっていると仮定して、出力ベクトルの第1の(第2の)半分における入力ベクトルの偶数(奇数)番号の構成要素を収集する。簡単のため、低域フィルタおよび高域フィルタは両方とも長さが同じであり、その長さは偶数であると仮定される。その結果を任意のフィルタ長の一般的な場合に対して容易に拡張することができる。一般的な場合、(すなわち、N=2ではなく、N=r×kの場合)ここで、kは2に等しくない(すなわち、2以外のフィルタリング演算がある)場合、アンシャッフル演算ではなく、適切なストライド置換が適用される。
式(1)および(2)において導入された表現を採用して、そのDWTはJ個の段(分解レベルまたはオクターブとも呼ばれる)において計算され、ここで、j番目の段(j=1,...,J)は、スクラッチ変数の現在のベクトルによる疎行列H(j)の乗算を含み、最初のそのようなベクトルは入力ベクトルxである。すべての行列H(j)の右下隅が単位行列であることに注目し、行列Dの構造を考慮に入れて、対応しているアルゴリズムを次の擬似コードとして書くことができる。
ここで、x(j) LP=[x(j) LP(0),...,x(j) LP(2m−j−1)]および、x(j) HP=[x(j) HP(0),...,x(j) HP(2m−j−1)](j=1,...,J)はスクラッチ変数の(2m−j×1)ベクトルであり、表記[(x,...,(xは列ベクトルx,...,xの連結を表す。
アルゴリズム1
1.x(0) LP=[x(0) LP(0),...,x(0) LP(2m−j−1)]=xを設定;
2.j=1,...,Jについて、x(j) LP=[x(j) LP(0),...,x(j) LP(2m−j−1)]およびx(j) HP=[x(j) HP(0),...,x(j) HP(2m−j−1)]を計算。
ここで、
Figure 0004180502
または、同等に
2.i=0,...,2m−j−1について、
開始
ベクトル形成 //ベクトルx(j−1) LPの長さLのサブベクトル//
=[x(j−1) LP(2i),x(j−1) LP(2i+1),x(j−1) LP((2i+2)mоd2m−j+1,...,x(j−1) LP((2i+L−1)mоd2m−j+1))]
(j) LP(i)=LP・x;x(j) HP(i)=HP・xを計算
終了
3.出力ベクトル形成
y=[x(J) LP,x(J) HP,x(J−1) HP,...,x(2) HP,x(1) HP
式(2)の行列Dによるアルゴリズム1の計算は流れ図表現を使用して示すことができる。N=2=8、L=4、J=3の場合の一例が図2に示されている。この流れ図は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からまたは(第1の段のノードの場合には)入力から入って来るエッジを有している。すべてのノードは2つの出て行くエッジを有している。上側(下側)の出て行くエッジは低域(高域)フィルタ係数のベクトルと入って来るエッジの値のベクトルとの内積の値を表す。1つの段の出て行く値は完全アンシャッフル演算子に従って置換され、すべての低域構成要素(上側の出て行くエッジの値)が、置換されたベクトルの最初の半分の中に収集され、そして高域構成要素が、置換されたベクトルの第2の半分の中に収集される。次に低域構成要素が次の段に対する入力を形成するか、あるいは(最後の段のノードの場合は)出力値を表す。その段における高域構成要素および低域構成要素は所与の分解能での出力値を表す。
本質的に、流れ図表現は離散ウェーブレット変換の1つの代案の定義を提供する。それは少なくとも実施の観点から、従来のDWT表現、例えば、ツリー構造のフィルタ・バンク、リフティング方式または格子構造表現などと比較して、いくつかの利点を有する。
しかし、示されてきたようなDWTの流れ図表現にはNの値が大きい場合に非常に大きくなるという欠点がある。この欠点は次のことに基づいて克服することができる。J<logN、すなわち、分解レベルの数が入力ベクトル内の点の数より大幅に小さいと仮定して(ほとんどの用途においてはJ<<logNである)、DWTの流れ図はN/2個の同様なパターンから構成されていることが分かる(図2の2つの斜線領域参照)。
各パターンは入力信号をその各オクターブに対して形成する特定の戦略による2点のDWTとみなすことができる。j番目(j=1,...,J)のオクターブの2m−j+1個の入力値が元のDWT(N=2の長さの)内で、2J−j+1個の連続した値から構成されているN/2=2m−J個のオーバラップしていないグループに分割される。
これは式(3)のベクトルx(j−1) LPをサブベクトルx(j−1,s)=x(j−1) LP(s・2J−j+1:(s+1)・2J−j+1−1)、(s=0,...2m−J−1)に分割することに等価であり、ここで、そして以降において、表記x(a:b)はxのa番目からb番目までの構成要素から構成されるxのサブベクトルを表す。s番目のパターン内のj番目(j=1,...,J)の入力は次のベクトルのサブベクトルx^(j−1,s)(0:2J−j+1+L−3)である。
Figure 0004180502
これはベクトルx(j−1,s) LPと巡回的に次のQベクトルQ=[(L−2)/2J−j+1]との連結である。
m−J個のパターンが1つのパターンに併合される場合、DWTのコンパクトな(またはコアの)流れ図表現が得られる。J=3、L=4の場合に対するDWTのコンパクト流れ図表現の一例が図3に示されている。このコンパクトDWTの流れ図はそのj番目の段(j=1,...,J)において2J−j個のノードを有し、ここで、2m−J個の一時的に分散されている値の組がすべてのノードに対して割り当てられている。すべてのノードは(「非コンパクトな」)DWTの流れ図の場合と同様に、L個の入って来るエッジおよび2つの出て行くエッジを有している。再び、入って来るエッジは前段のL個の「巡回的に連続した」ノードから入って来るが、ここではすべてのノードが一時的に分散された値の組を表す。すなわち、入力のs番目の値、s=0,...,2m−J−1に対する、j番目の段(j=1,...,J)のi番目のノードのL個の入力が、(j−1)番目の段のノード(2i+n)mod2J−j+1(n=0,...,L−1)に対して連結され、それはここではそれぞれの(s+s’)番目の値を表し、ここで、s'=[(2i+n)/2J−j+1]である。また、出力はここではコンパクトな流れ図の出て行くエッジにわたって、空間的にだけでなく時間的にも分散されている。すなわち、1つのノードの高域フィルタリングの結果または最後の段のノードの低域フィルタリングの結果に対応している各出て行くエッジは2m−J個の出力値の組を表す。コンパクトDWT流れ図の構造は、DWTの長さには依存せず、分解レベルの数およびフィルタの長さにのみ依存することに留意されたい。DWTの長さは、すべてのノードによって表される値の数においてのみ反映される。また、このコンパクト流れ図は僅かに変更された付加戦略によって2点のDWTの構造を有していることにも留意されたい。実際に、この付加戦略はDWT定義の行列形成においてしばしば使用される。
がD(式(2)参照)(j=1,...,J)のメインの(2J−j+1×(2J−j+1+L−2))個の小行列式を示すものとする。すなわち、D を、Dの最初の2J−j+1個の行および最初の2J−j+1+L−2個の列から構成されている行列であるとする。例えば、J−j+1=2、そしてL=6である場合、D は次の形式となる。
Figure 0004180502
式(4)の表記を採用して、コンパクト流れ図によって表される計算のプロセスを次の擬似コードによって記述することができる。
アルゴリズム2
1.s=0,...,2m−J−1について、
(0,s) LP=x(s・2:(s+1)・2−1)を設定
2.j=1,...,J、s=0,...,2m−J−1について
開始
2.1. 式(4)に従ってx^(j−1,s)を設定
2.2. [(x(j,s) LP,(x(j,s) HP=D ・x^(j−1,s)(0:2J−j+1+L−3)を計算
終了
3.出力ベクトル形成
Figure 0004180502
sに対してサイクルを並列に実施することによって、並列のDWTが実現される。他方、jおよびsに対してサイクルのネスティングの順序を交換することによって、そしてjに対して並列に(入れ子)サイクルを実施することによって、パイプライン型のDWTの実現を実施することができる。しかし、これらの実現は両方とも効率が悪い。何故なら、演算の数が1オクターブから次のオクターブへ半分になるからである。しかし、2つの方法を組み合わせることによって、非常に効率の良い並列パイプライン型の、あるいは部分的並列パイプライン型の実現が実施される。
アルゴリズム2に対してパイプライン化を適用するには、リタイミングが適用されなければならない。何故なら、sに対する計算はs+1,...,s+Q−1に対する計算の結果を含み、それはj番目(j=1,...,J)のオクターブがQステップの遅延を導入することを意味するからである。その遅延が累積されるので、j番目(j=1,...,J)のオクターブに対する計算は、ステップs=s(j),...,2m−J+s(j)−1の間に次の時間だけ遅れて始まらなければならない。
Figure 0004180502
従って、計算はステップs=s(1)からステップs=s(J)+2m−J−1まで行われる。ステップs=s(1),...,s(2)−1において、最初のオクターブだけの計算が実施され、ステップs=s(2),...,s(3)−1において最初の2つのオクターブの演算だけが実施され、以下同様に実施される。ステップs=s(J)から開始して、ステップs=s(1)+2m−J−1まで(s(J)<s(1)+2m−Jの場合)すべてのオクターブj=1,...,Jの計算が実施されるが、ステップs=s(1)+2m−Jから始まって第1のオクターブに対する計算は実施されず、ステップs=s(2)+2m−Jから始まって、最初の2つのオクターブに対する計算は実施されない。以下同様になる。
一般に、ステップs=s(1),...,2m−J+s(J)−1において、オクターブj=J,...,Jに対する計算が実施される。ここでJ=min{s(j)≦s<s(j)+2m−JとなるようなJ}、そしてJ=max{s(j)≦s<s(j)+2m−JとなるようなJ}である。次の擬似コードは本発明において提案されるアーキテクチャの範囲内で実施されるパイプライン型のDWTの実現を示す。
アルゴリズム3
1.s=0,...,2m−J−1について、x(0,s) LP=x(s・2:(s+1)・2−1)を設定
2.s=s(1),...,2m−J+s(J)−1
j=J,...,Jについて、並列に以下を実行
開始
2.1.(4)に従ってx^(j−1,s−s*(j))を設定
2.2.[(x(j,s−s*(j)) LP,(x(j,s−s*(j)) HP=D ・x^(j−1,s−s*(j))(0:2J−j+1+L+3)を計算
終了
3.出力ベクトル形成
Figure 0004180502
本発明においては、タイプ1およびタイプ2のコアDWTアーキテクチャと呼ばれる2つのタイプのDWTアーキテクチャの一般的なパラメトリック構造が導入され、それ以外に、コアDWTアーキテクチャのいずれかに基づいて、複数コアDWTアーキテクチャ、および可変分解能DWTアーキテクチャとそれぞれ呼ばれる2つの他のDWTアーキテクチャの一般的なパラメトリック構造が導入される。
すべてのアーキテクチャは可変レベルの並列性で実施することができ、従って、速度とハードウェアの複雑度との間のトレードオフが可能である。並列性のレベルに依存して、一定時間の実施(タイム・ユニットごとに1つの2点のDWT)までのスループットを得ることができる。並列性のすべてのレベルにおいて、このアーキテクチャは約100%のハードウェア利用率で動作し、従って、直列のDWT実施に比較して並列性のレベルに関してほとんど線形のスピードアップが得られる。このアーキテクチャはDWTのパラメータには比較的依存しない。すなわち、提案のアーキテクチャの1つを備えているデバイスは1つのDWTだけでなく、異なるフィルタ長のある範囲の異なるDWTを効率的に実施することができ、そして可変分解能DWTアーキテクチャの場合において、任意の長さのベクトル上での異なる数の分解レベルで効率的に実施することができる。
提案のアーキテクチャの多くの異なる実現が可能である。従って、それらの一般的な構造が機能レベルで説明される。レジスタ・レベルでの一般的な構造の実現の例も示される。これらの実現はこの一般的な構造の妥当性を示す。提案のアーキテクチャは機能的技術レベルに関して既知のアーキテクチャとは本質的に異なっている。提案の各アーキテクチャのより詳しい要約が次に示される。[34]において発表されているFPPおよびLPPのアーキテクチャはタイプ1(複数コアおよび単一コア)DWTアーキテクチャの特定の実現とみなすことができることは留意されるべきである。
タイプ1およびタイプ2のコアDWTアーキテクチャは、所与の数Lmaxを超えない長さLの低域および高域フィルタに基づいてJ≦mオクターブでの2点のDWTを実施する。ここで、JおよびLmax(mまたはLではなく)は、その実現のパラメータである。タイプ1およびタイプ2のコアDWTアーキテクチャは両方とも直列または並列のデータ入力ブロックおよびJ個のパイプライン段を含み、j番目の段(j=1,...,J)は1つのデータ・ルーティング・ブロックおよび2J−j個の処理要素(PE)から構成されている。これは図4に関連して説明される。このアーキテクチャのj番目のパイプライン段(j=1,...,J)は、j番目のDWTオクターブの2m−j個の独立の同様な演算を2m−J個の演算ステップで実施する。すべてのステップにおいて、2J−j個の演算のグループがそのパイプライン段の2J−j個のPE内で並列に実施される。PEはその入力の数p≦Lmaxによって規定される可変レベルの並列性で実施することができる。
p個の入力を備えた1つのPEは、1つの基本DWT演算(図2(b)参照)を、[L/p]のタイム・ユニットから構成されている1つの演算ステップにおいて実施し、ここですべてのタイム・ユニットにおいて、2p個の乗算および加算の結果が並列に得られる。従って、その時間周期(連続している入力ベクトルがこのアーキテクチャに入る時のタイム・ユニット間の時間間隔で測定される)は、2m−J[L/p]のタイム・ユニットに等しく、ここでそのタイム・ユニットの持続時間は1つの乗算演算の期間に等しい。これは以前に知られているアーキテクチャ[12−26]の最善の期間より2/[L/p]倍早く、[30]において記述されているアーキテクチャより2J−1/[L/p]倍早い。両方のアーキテクチャの効率(すなわち、ハードウェアの利用率)はL/(p[L/p])・100%=100%に等しい。p=L=Lmaxの場合、その時間周期は2m−Jタイム・ユニットであり、それは[34]および[35]に示されているLPPアーキテクチャの場合と同じであるが、フィルタの長さに依存する(すなわち、LPPアーキテクチャは固定長LのフィルタでDWTを実施することができるだけである)。この2つのタイプのコアDWTアーキテクチャは、1つのパイプライン段のPE間の相互接続の不在(タイプ1)または存在(タイプ2)に従って異なっている。この2つのタイプのコアDWTアーキテクチャの可能な実現が図5乃至10に示されている。上記2種類のコアDWTアーキテクチャは、パラメータpに依存して可変の度合いの並列性で実施することができる。
並列性のレベルにおける更なる柔軟性が、新しいパラメータr=1,...,2m−Jを導入することによって複数コアDWTアーキテクチャ内で得られる。複数コアDWTアーキテクチャは、実際には、対応している「単一」コアDWTアーキテクチャからそれをr回拡張することによって得られる。その一般的構造が図11に示されている。そのアーキテクチャは直列または並列のデータ入力ブロックおよびJ個のパイプライン段から構成され、そのj番目(j=1,...,J)のパイプライン段は、1つのデータ・ルーティング・ブロックおよびr2J−j個のPEから構成されている。複数コアDWTアーキテクチャの時間周期は(2m−J[L/p])/rタイム・ユニットに等しく、それは単一コアDWTアーキテクチャの時間周期よりr倍早い。すなわち、線形のスピードアップが提供される。複数コアDWTアーキテクチャの効率は単一コアアーキテクチャの場合と同じであり、すなわち、約100%である。p=L=Lmaxおよびr=2m−Jの場合、その周期は2点のDWTに対して丁度1タイム・ユニットであることに留意されたい。同様な性能が[34]および[35]において示されているFPPアーキテクチャにおいて達成され、それは複数コアDWTアーキテクチャの可能な1つの実現の特殊ケース(p=L=Lmaxおよびr=2m−J)とみなすことができる。
単一コアおよび複数コアDWTアーキテクチャは、入力の長さおよびフィルタの長さには比較的依存せず、そのことは、任意のフィルタ(長さがLmaxを超えない)に基づいていて、任意の長さの信号に対して適用されるDWTが、タイプ1またはタイプ2のコアDWTアーキテクチャのいずれかを備えている同じデバイスで効率的に実施できることを意味する。しかし、タイプ1、タイプ2および複数コアのアーキテクチャはDWTオクターブJの数に依存する。それらはオクターブの数がJより小さいDWTを実施することができるが、ハードウェアの利用率がある程度損なわれる。
可変分解能のDWTアーキテクチャは、任意の数のオクターブJ’のDWTを実施し、そしてそのアーキテクチャの効率はJ’が所与の数より大きいか、あるいはそれに等しい時は常に約100%のままである。可変分解能のDWTアーキテクチャはJminの分解能レベルに対応している1つのコアDWTアーキテクチャと、任意の直列のDWTアーキテクチャ、例えば、RPAベースのアーキテクチャ(図12(a)参照)とを含む。コアDWTアーキテクチャはJ’オクターブのDWTの最初のJmin個のオクターブを実施し、そして直列のDWTアーキテクチャはJ’オクターブのDWTの最後のJ’−Jmin個のオクターブを実施する。コアDWTアーキテクチャは可変レベルの並列性で実施できるので、J‘≧Jminである時は常に約100%のハードウェア利用率が得られるように直列のDWTアーキテクチャとバランスを取ることができる。
複数コアDWTアーキテクチャに基づいた可変分解能DWTアーキテクチャも構築することができ(図12(b)参照)、その場合、1つのデータ・ルーティング・ブロックが複数コアDWTアーキテクチャと直列のDWTアーキテクチャとの間に挿入される。
提案のDWTアーキテクチャ
本節では、タイプ1およびタイプ2のコアDWTアーキテクチャと呼ばれる2種類のDWTアーキテクチャ、およびそれ以外に、いずれかのDWTアーキテクチャに基づいて構築され、複数コアDWTアーキテクチャおよび可変分解能DWTアーキテクチャとそれぞれ呼ばれている2つの他のDWTアーキテクチャの一般的構造を示す。複数コアDWTアーキテクチャはコアDWTアーキテクチャのいずれか1つの拡張であり、これはパラメータrに依存して可変レベルの並列性で実施することができ、そして1つの特定のケース(r=1)においては、単一コアDWTアーキテクチャとなる。理解し易くするために、このアーキテクチャのプレゼンテーションは、単一コアDWTアーキテクチャの説明から開始される。
両方のタイプのコアDWTアーキテクチャは、与えられた数値Lmaxを超えない長さLの低域および高域フィルタに基づいてJの分解レベル(オクターブ)で任意の離散ウェーブレット変換を実施する。それらの演算は前に示されたアルゴリズム3に基づいている。両方のタイプのコアDWTアーキテクチャを表している一般的構造が図4に示されており、ここで点線は接続を表し、それは特定の実現に依存して存在する場合もあり存在しない場合もある。接続はタイプ1には存在しないが、タイプ2には存在する。両方の場合、そのアーキテクチャは1つのデータ入力ブロックとJ個のパイプライン段とから構成され、各段が1つのデータ・ルーティング・ブロックとプロセッサ要素(PE)のブロックとを含んでいて、データ入力ブロックはアルゴリズム3のステップ1を実施し、データ・ルーティング・ブロックはステップ2.1を担当し、PEのブロックはステップ2.2を計算するためにある。2つのコア・アーキテクチャのタイプは同じパイプライン段のPE間のデータ交換の可能性によって主として区別される。タイプ2のコアDWTアーキテクチャにおいては、1つの段のPEが相互接続を経由して中間のデータを交換することができ、一方、タイプ1のコアDWTアーキテクチャにおいては、1つのパイプライン段内のPE間には相互接続がなく、従って、1つの段のPEはそれぞれの演算中にデータを交換しない。
一般に、データ・ルーティング・ブロックおよびPEのブロックの多くの異なる実現が可能である。従って、1つの態様においては、本発明はブロック・レベルにおいて示されているようなアーキテクチャ(図4、図11、および図12)、およびPAおよびデータ・ルーティング・ブロックに対して選定された正確な実施とは独立に、機能レベルにおいて以下に説明されるようなアーキテクチャの中に存在することができる。しかし、より高いレベルにおける提案のコアDWTアーキテクチャの実際的ないくつかの実現が図5乃至10を参照して、例示の方法によって示されている。これらの例示としての実施は本発明の妥当性を示している。
図4はタイプ1およびタイプ2のコアDWTアーキテクチャの一般的構造を示している。前に説明されたように、タイプ1とタイプ2は段内のPE間の相互接続が存在するかしないかにおいてのみ異なっている。両方のコアDWTアーキテクチャのデータ入力ブロックはワード直列またはワード並列のいずれかとして実現することができる。前者の場合、そのデータ入力ブロックは1つ(ワード直列)の入力ポートから構成され、それは各セルからのワード並列の出力を備えている長さ2のシフト・レジスタ(図4の点線のブロック)に対して接続されている。後者の場合、データ入力ブロックは2個の並列入力ポートを含む。両方の場合、データ入力ブロックは2個の並列の出力を備え、それらは第1のパイプライン段のデータ・ルーティング・ブロックの2個の入力に接続されている。図6において、ワード並列のデータ入力ブロックの一例が示されており、一方、図7および図10はワード直列のデータ入力ブロックの例を示している。
タイプ1のコアDWTアーキテクチャ
タイプ1のコアDWTアーキテクチャ内に実施されている基本アルゴリズムは特定の順序の実施ステップ2.2によるアルゴリズム3である。2J−j+1×2J−j+1個の行列D の構造はステップ2.2の行列ベクトル乗算を、次のようにベクトル間の内積の計算の2J−j個のペアに分解することができるようになっている。
(j,s−s*(j))(i)=LP・x^(j−1,(s−s*(j)))(2i:2i+L−1)
(j,s−s*(j))(i+2J−j)=HP・x^(j−1,(s−s*(j)))(2i:2i+L−1)
i=0,...,2J−j−1
これは並列に実施することができる。
他方、長さLのすべてのベクトル間の内積は、長さpのL=[L/p]の内積のシーケンスに分解することができ、その結果が累積される(係数ベクトルおよび入力ベクトルが任意の数のゼロを伴って付加され、連続したp個の構成要素のサブベクトルに分解されると仮定して)。結果として、アルゴリズム3は前の擬似コードに対して次の変更を行うことによって示すことができる。
アルゴリズム3.1
1.s=0,...,2m−J−1について、x(0,s) LP=x(s・2:(s+1)・2−1)を設定
2.s=s(1),...,2m−J+s(J)−1
j=J,...,Jについて、以下を並列に実行
開始
2.1.(4)に従ってx^(j−1,s−s*(j))を設定
2.2.i=0,...,2J−j−1について、以下を並列に実行
開始
LP(i)=0,SHP(i)=0を設定
n=0,...,L−1について、以下をシーケンシャルに実行
開始
Figure 0004180502
Figure 0004180502
終了
(j,s−s*(j)) LP(i)=SLP(i);
(j,s−s*(j)) HP(i)=SHP(i)を設定
終了
終了
3.出力ベクトル形成
Figure 0004180502
sおよびjが与えられて、演算(6)および(7)のグループはn=0に対するサブベクトルx^(j−1,s−s*(j))(0:2J−j+1+p−3)、サブベクトルx^(j−1,s−s*(j))(p:2J−j+1+2p−3)、および一般に、n=0,...,L−1に対するサブベクトルx^(j−1,sj,n)=x^(j−1,s−s*(j))(np:2J−j+1+(n+1)p−3)を含む。言い換えれば、n=0,...,L−1に対する計算はベクトルx^(j−1,sj,n)の最初の2J−j+1+p−2個の構成要素を含み、それはベクトルx^(j−1,s−s*(j))をnpポジションだけその構成要素を左にシフトすることによって得られることに留意されたい。また、所与のi=0,...,2J−j−1に対する計算は常に現在のベクトルx^(j−1,sj,n)の構成要素2i,2i+1,...,2i+p−1を常に含むことにも留意されたい。
タイプ1のコアDWTアーキテクチャの一般的構造が図4に示されている。このアーキテクチャの場合、1つの段のPE間に接続がないので、点線を無視することができる。このアーキテクチャは1つのデータ入力ブロック(既に上で説明された)と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個の入力と2つの出力を備え、ここで、p≦LmaxはすべてのPEの並列性のレベルを記述している実現のパラメータである。J番目(j=1,...,J)の段のデータ・ルーティング・ブロックの連続したp個の出力ODRB(j)(2i),ODRB(j)(2i+1),...,ODRB(j)(2i+p−1)が同じ段のi番目(i=0,...,2J−j−1)のPE(PEj,i)のp個の入力に接続されている。j番目のパイプライン段(j=1,...,J−1)の2J−j個の各PEの第1の出力がその段の出力OPS(j)(0),...,OPS(j)(2J−j−1)を形成し、次の(j+1)番目の段のデータ・ルーティング・ブロックの2J−j個の入力IPS(j+1)(0),...,IPS(j+1)(2J−j−1)に接続されている。最後のJ番目の段の(1つの)PEの第1の出力がこのアーキテクチャのゼロ番目の出力out(0)である。j番目(j=1,...,J)のパイプライン段の2J−j個のPEの第2の出力が、このアーキテクチャの(2J−j)番目から(2J−j+1−1)番目までの出力out(2J−j),...,out(2J−j+1−1)を形成する。
タイプ1のコアDWTアーキテクチャのブロックがここで機能レベルで記述される。便宜上、タイム・ユニットはPEが1つの演算を完了するための時間周期(PEに入って来るp個のデータの連続したグループ間の期間に等しい)と定義され、このアーキテクチャの1つの演算ステップはL個のタイム・ユニットを含んでいると定義される。
データ入力ブロックは入力ベクトルの構成要素のグループを、演算ステップあたり2構成要素のレートで直列に、あるいは並列に受け入れて並列に出力する。従って、ベクトルx(0,s) LPはステップs=0,...,2m−J−1においてデータ入力ブロックの出力において形成される。
(段j=1,...,Jの)データ・ルーティング・ブロックは、一般に、任意の回路として実現することができ、それはすべての演算ステップの最初のタイム・ユニットn=0において2J−j+1個の構成要素のベクトルを並列に受け入れ、次にその演算ステップのすべてのタイム・ユニットn=0,...,L−1においてベクトルの2J−j+1+p−2個の構成要素np,np+1,...,(n+1)p+2J−j+1−3を並列に出力する。そのベクトルは前のQ ステップにおいて受け入れられたベクトルの連結(時間的順序での)であり、ここで、Q は下式で表される。
Figure 0004180502
タイプ1のコアDWTアーキテクチャにおいて使用されるPEの機能は、そのp個の入力におけるベクトルと所定の係数の2つのベクトルとの2つの内積を計算すること、および計算された両方の内積の結果を1つの演算ステップの間に累積する(別々に)ことである。すべての演算ステップの終りにおいて、2つの累積された結果がPEの2つの出力に渡され、そして新しい累積が開始される。明らかに、すべてのPEはその正しい引数がそれぞれの入力において形成された場合、一対の演算(6)および(7)を実施する。
ここで、このアーキテクチャはアルゴリズム3.1に従って計算を実施することが示される。L<Lmaxの場合、余分の遅延が導入される。その余分の遅延は任意のフィルタ長L≦LmaxでDWTを実施することができるこのアーキテクチャの柔軟性の結果(コスト)である。これは固定のフィルタ長LでDWTの計算を提示するアルゴリズム3.1と比較される必要がある。実際に、このアーキテクチャはフィルタ長Lmaxに対して設計されている。しかし、遅延時間が僅かに増加するが、時間周期における増加がない、より短いフィルタでDWTを実施することも行う。
次のように定義する。
Figure 0004180502
このアーキテクチャの動作時に、ベクトルx(0,s) LPがステップs=0,...,2m−j−1においてデータ入力ブロックの出力において形成され、これが第1のパイプライン段のデータ・ルーティング・ブロックの入力に入る。このアーキテクチャがアルゴリズム3.1に従って計算を実施することを示すためには、j番目の段のPEの第1の出力(それは(j+1)番目の段の入力に接続されている)においてベクトルx(j,s―s^(j)) LPが形成され、そしてベクトルx(j−1,s―s^(j−1)) LPがステップs=s(j−1),...,s(j−1)+2m−J−1においてj番目の段に入る場合にベクトルx(j,s―s^(j)) HPがステップs=s(j),...,s(j)+2m−J−1においてそれぞれの第2の出力において形成されることを示すだけで十分である(数学的帰納法による証明)。従って、段j=1,...,Jのデータ・ルーティング・ブロックはベクトルx(j−1,s―s^(j−1)) LPをステップs=s(j−1),...,s(j−1)+2m−J−1において受け入れると仮定される。次に、データ・ルーティング・ブロックの機能的記述に従って、次のベクトルの構成要素np,np+1,...,(n+1)p+2J−j+1−3がすべてのステップs=s(j),...,s(j)+2m−J−1のタイム・ユニットn=0,...,L−1においてデータ・ルーティング・ブロックの出力において形成される。それはそれぞれステップs−Q ,s−Q +2,...,sにおいて受け入れられたベクトルの連結である。
Figure 0004180502
(j)≧s(j)((3)および(9)を比較)なので、ベクトルx^(j−1,s―s^(j))(式(4)に従って定義された)はx〜(j−1,s―s^(j))のサブベクトルであり、従って、それぞれの最初の2J−j+1+L−3個の構成要素は正確に同じである。従って、ベクトルx^(j−1,sj,n)=x^(j−1,s―s^(j))(np:2J−j+1+(n+1)p−3)がステップs=s(j),...,s(j)+2m−J−1のタイム・ユニットn=0,...,L−1において段j=1,...,Jのデータ・ルーティング・ブロックの出力において形成される。データ・ルーティング・ブロックとPEとの間の接続のために、ベクトルx^(j−1,sj,n)の構成要素2i,2i+1,...,2i+p−1(それらは実際には、演算(6)および(7)の引数である)が、PEj,i(i=0,...,2J−j−1)の入力において、ステップs=s(j),...,s(j)+2m−J−1のタイム・ユニットn=0,...,L−1において形成される。従って、PEは対応している係数に従ってそれぞれの演算を実施し、ベクトルx(j,s−s^(j)) LPがそのPEの第1の出力において形成され、ベクトルx(j,s−s^(j)) HPがステップs=s(j),...,s(j)+2m−J−1の後でそれぞれの第2の出力において形成される。PEの第1の出力は次のパイプライン段の入力に接続されているので、これはこのアーキテクチャがたとえ異なるタイミングにおいてでも(アルゴリズム3.1内のすべての場所のs(j)をs(j)で置き換える)、アルゴリズム3.1に従って計算を実施することを証拠立てる。
上記考察から、2個の点のDWTが、それぞれがLのタイム・ユニットから構成されている2m−J+s(J)ステップにおいてタイプ1のコアDWTアーキテクチャで実施されることは明らかである。従って、入力ベクトルと対応している出力ベクトルとの間の遅延時間は次のタイム・ユニット数に等しい。
Figure 0004180502
明らかに、このアーキテクチャは入力ベクトルのストリームのDWTを実施することができる。従って、スループットまたは時間周期(連続している入力ベクトルがこのアーキテクチャに入る時のタイム・ユニット間の時間間隔として測定される)は、次のタイム・ユニット数に等しい。
Figure 0004180502
並列/パイプライン型アーキテクチャの性能は次のように定義されるハードウェア利用率、すなわち、効率に関して評価されることが多い。
Figure 0004180502
ここで、T(1)は1つのPEでのアルゴリズムの実施の時間であり、T(K)はK個のPEを含んでいるアーキテクチャでの同じアルゴリズムの実施の時間である。タイプ1のコアDWTアーキテクチャにおいて使用されるPEと同様な1つのPEを使用して2点のDWTを実施するのに必要な時間はT(1)=(2−1)[L/p]タイム・ユニットであることが分かる。式(11)および(12)を一緒にし、そしてタイプ1のコアDWTアーキテクチャ内に合計K=2−1個のPEがあることを考慮に入れて、このアーキテクチャに対して遅延時間、あるいはさらには、時間周期の複雑性に関しての両方において約100%の効率(ハードウェア利用率)が得られることを示すことができる。FPPアーキテクチャの効率に近い効率が、従来の技術から知られている少数のパイプライン型のDWT設計([17]参照)だけで達成され、一方、既知のパイプラインのDWTアーキテクチャは100%の平均効率よりずっと小さい効率であることに留意されたい。また、少なくともO(N)のタイム・ユニットの時間周期が、既知のDWTアーキテクチャによって必要とされることにも留意されたい。提案のアーキテクチャはパラメータpによって変わる並列性の可変レベルで実現することができるように、所望の時間周期を達成することができる。
式(12)から分かるように、この実施の時間周期の複雑性はT(C1)=2m−JとT(C1)=L2m−Jとの間で変化する。従って、このアーキテクチャのスループットは既知の最高速のアーキテクチャのスループットより2/L乃至2倍早い。また、可変レベルの並列性でこのアーキテクチャを実現することができることによって、時間とハードウェアの複雑性とのトレードオフの機会が与えられる。また、このアーキテクチャは非常に規則的であり、例えば、[17]のアーキテクチャとは違って、単純な制御構造(本質的に、1クロックだけ)を必要とするだけであることにも留意されたい。それはフィードバック、スイッチ、または入力のサイズに依存する長い接続を含まず、長さの最大値がO(L)に過ぎない接続だけを備えている。従って、それはセミシストリック・アレイとして実施することができる。
タイプ1のコアDWTアーキテクチャの可能な実現
タイプ1のコアDWTアーキテクチャに対する、j番目のパイプライン段(j=1,...,J)の可能な1つの構造が図5に示されている。Lmax=6、J=3の場合に対するそのような実現の2つの例が図6および図7に示されており、それぞれp=Lmax=6、およびp=2である。p=Lmaxに対応しているこの特定の実現の場合、そして特に、図6の例の特定のバージョンの場合が出版物[34]および[35]の中で示されていた(そこではそれは制限された並列パイプライン型(LPP)アーキテクチャと呼ばれていた)ことに留意されたい。対照的に、タイプ1のコアDWTアーキテクチャおよびその図5における実現は、任意のpの場合に対するものである。さらに、ドキュメント[34]および[35]の中で記述されているLPPアーキテクチャは、フィルタ長がLmaxより小さいDWTの効率的な計算をサポートせず、一方、図5に示されているタイプ1のコアDWTアーキテクチャの実現はそれをサポートすることに留意されたい。
図5を参照して、この実現において、データ・ルーティング・ブロックがそれぞれ2J−j+1の遅延時間のQ チェーン接続されたグループと、すべてのタイム・ユニットごとにセル内の値をpポジションだけ上方にシフトする長さ2J−j+1+Lmax−2のシフト・レジスタとから構成されていることが分かる。その段に対する2J−j+1個の入力は、第1のグループの遅延要素に対して並列に接続されており、その出力が次のグループの遅延要素の入力に接続されている。以下同様に接続されている。遅延要素の各グループの出力はシフト・レジスタの2J−j+1個の連続したセルに対して並列に接続されている。遅延要素の最後のQ 番目のグループの出力は最初の2J−j+1個のセルに接続されており、遅延要素の(Q −1)番目のグループの出力は次の2J−j+1個のセルに接続されており、以下同様に接続されている。ただし、その段の第1のq=(Lmax−2)−(Qj−1)2J−j+1入力はシフト・レジスタの最後のq個のセルに対して直接に接続されている。
シフト・レジスタの最初の2J−j+1+p−2個のセルの出力はデータ・ルーティング・ブロックの出力を形成し、そしてPEの入力に対して接続されている。p=Lmaxの場合(図6参照)、シフト・レジスタは不要であるが、遅延要素のグループの出力およびその段の最初のq個の入力がPEの入力に直接に接続されている。他方、p=2の場合(図7参照)、データ・ルーティング・ブロックとPEとの間の相互接続が単純化される。何故なら、この場合、シフト・レジスタの第1のセルからPEの入力に2J−j+1個の並列の接続だけがあるからである。タイプ1のコアDWTアーキテクチャのデータ・ルーティング・ブロックに対して提示された実現が機能的に制約を満足することはこの分野の技術において普通の技能を有する人には明らかである。実際には、すべてのステップの開始時に、シフト・レジスタは、第1のLmax−2個の構成要素のベクトルについて次の受け入れられたベクトルからQ ステップだけ以前に受け入れられたデータのベクトルの連結を含む。従って、Lタイム・ユニットの間に、それは毎時pポジションだけ上方にその構成要素をシフトする。
タイプ1のコアDWTアーキテクチャに対するPEの可能な構造が、任意のp、p=1、p=2、およびp=Lmaxの場合に対して図8に示されている(図8の(a)、(b)、(c)、および(d)のそれぞれ)。再び、これらの構造は式(6)および(7)の演算を実施し、従って、PEの機能的記述を満足することは、この分野の通常の技能を有する人にとって明らかである。また再び、これらの構造はフィルタ係数とは独立に一般的なDWT実施に対して適しており、この特定のフィルタ係数に対して最適化されたPEの構造を実施できることにも留意されたい。
タイプ2のコアDWTアーキテクチャ
タイプ2のコアDWTアーキテクチャは僅かに変更されたバージョンのアルゴリズム3.1を実施する。その変更は演算(6)および(7)のオペランドがインデックスiおよびnのペア(i,n)および(i,n)に対して同じであり、2i+np=2i+npであることの観察に基づいている。偶数のpを仮定して(奇数の場合は同様に扱われるが、その表示のためにより多くの表記を必要とする)、このことは、式(6)および(7)の演算を実施する時、ブランチi=0,...,2J−j−p/2−1内のタイム・ユニットn=1,...,L−1において使用するために必要な被乗数が、ブランチi+p/2内のステップn−1において得られた被乗数から得られることを意味する。対応している計算プロセスが次の擬似コードで記述される。ここで次のように定義する。
Figure 0004180502
アルゴリズム3.2
1.s=0,...,2m−J−1について、x(0,s) LP=x(s・2:(s+1)・2−1)を設定
2.s=s(1),...,2m−J+s(J)−1
j=J,...,Jについて、以下を並列に実行
開始
2.1.(4)に従って、x^(j−1,s−s*(j))を設定
2.2.i=0,...,2J−j−1について、以下を並列に実行
開始
k=0,...,p−1について
開始
LP(i,0,k)=l^(j−1,s−s*(j))(2i+k);
HP(i,0,k)=h^(j−1,s−s*(j))(2i+k)を設定
Figure 0004180502
を計算
終了
n=1,...,L−1について、次をシーケンシャルに実行
開始
k=0,...,p−1
開始
Figure 0004180502
を設定
Figure 0004180502
を設定
終了
Figure 0004180502
を計算
終了
(j,s−s*(j)) LP(i)=SLP(i);
(j,s−s*(j)) HP(i)=SHP(i)を設定
終了
3. 出力ベクトル形成
Figure 0004180502
タイプ2のコアDWTアーキテクチャの一般的構造が図4に示されている。この場合、同じパイプライン段に属しているPE間の接続(点線)は有効である。図4から分かるように、タイプ2のコアDWTアーキテクチャはタイプ1のコアDWTアーキテクチャに似ているが、この場合は、p個の入力および2つの出力(これ以降ではメイン入力およびメイン出力と呼ばれる)を除いて、すべてのPEは1つの追加のp個の入力およびp個の出力(これ以降では中間入力および中間出力と呼ばれる)を備えている。PEj,i+p/2のp個の中間出力はPEj,i(i=0,...,2J−1−p/2−1)のp個の中間入力に接続されている。タイプ2のコアDWTアーキテクチャ内の他の接続は、タイプ1のコアDWTアーキテクチャ内のそれらと似ている。
タイプ2のコアDWTアーキテクチャのブロックの機能は、タイプ1のコアDWTアーキテクチャのそれらと実質的に似ている。データ入力ブロックの機能はタイプ2のコアDWTアーキテクチャの場合と正確に同じである。
データ・ルーティング・ブロック(段j=1,...,Jの)は一般に、任意の回路として実現することができ、その回路はすべての演算ステップの最初のタイム・ユニットn=0において、2J−j+1個の構成要素のベクトルを並列に受け付け、そして1つのベクトルの最初の2J−j+1+p−2個の構成要素0,1,...,2J−j+1+p−3のベクトルを並列に出力し、そのベクトルは前のQ ステップにおいて受け入れられたベクトルの連結(時間的順序での)であり、ここで、Q は式(8)において定義されている。次に、その演算ステップのすべてのタイム・ユニットn=0,...,L−1において、データ・ルーティング・ブロックはその最後のp個の出力上に同じベクトルのp個の構成要素2J−j+1+np−2,...,2J−j+1+(n+1)p−3の次のサブベクトルを並列に出力する。
すべての演算ステップのすべてのタイム・ユニットn=0,...,L−1においてタイプ2のコアDWTアーキテクチャにおいて使用されるPEの機能は、長さpの所定の係数、LP’およびHP’の2つのベクトルとそのp個のメインまたはp個の中間入力のいずれの上に存在するベクトルxとの2つの内積を計算すること、およびそれ以外にxとLP’とのポイントごとの積を計算することである。タイム・ユニットn=0において、ベクトルxはPEのメインのp個の入力を使用して形成され、タイム・ユニットn=1,...,L−1において、ベクトルxはPEの中間入力を使用して形成される。1つの演算ステップの間に計算された両方の内積の結果が累積され、PEの2つのメイン出力に渡され、一方、ポイントごとの積はPEの中間出力に渡される。
タイプ1のコアDWTアーキテクチャの場合と同様に、タイプ2のコアDWTアーキテクチャは式(11)および(12)によって与えられる時間遅延および時間周期の特性を伴ってアルゴリズム3.2を実施する。タイプ1およびタイプ2のアーキテクチャの他の特性も同様に似ている。特に、タイプ2のアーキテクチャは非常に高速であり、セミシストリック・アーキテクチャとして、そして可変レベルの並列性で実施することができ、時間とハードウェアの複雑性との間のトレードオフを生成するための機会を提供する。これら2つのアーキテクチャの間の違いは、タイプ1のコアDWTアーキテクチャ内のデータ・ルーティング・ブロックのシフト・レジスタが、タイプ2のコアDWTアーキテクチャ内ではPE間の追加の接続で置き換えられていることである。
タイプ2のコアDWTアーキテクチャの1つの可能な実現
タイプ2のコアDWTアーキテクチャに対するj番目(j=1,...,J)のパイプライン段の1つの可能な構造が図9に示されている。Lmax=6、J=3およびp=2の場合に対するそのような実現の一例が図10(a)に示されている。この実現においては、データ・ルーティング・ブロックは2J−j+1個の各遅延要素がチェーン接続されているQ個のグループ、およびすべてのタイム・ユニットにおいて値をpポジションだけ上方にシフトする長さLmax−2のシフト・レジスタから構成されている。その段に対する2J−j+1個の入力は遅延要素の第1のグループに対して並列に接続され、その出力は次の遅延要素のグループの入力に接続されている。以下同様である。遅延要素の最後のQ 番目のグループの出力はデータ・ルーティング・ブロックの最初の2J−j+1個の出力を形成し、PEのメイン入力に接続されている。遅延要素(t=1,...,Q −1)の(Q −t)番目のグループの出力はシフト・レジスタの2J−j+1個の連続したセルに並列に接続されている。遅延要素の(Q −1)番目のグループの出力は最初の2J−j+1個のセルに接続され、遅延要素の(Q −2)番目のグループの出力は次の2J−j+1個のセルに接続されている。以下同様である。しかし、その段の最初のq=(Lmax−2)−(Q−1)2J−j+1個の入力は、シフト・レジスタの最後のq個のセルに直接接続されている。
シフト・レジスタの最初のp−2個のセルからの出力はデータ・ルーティング・ブロックの最後のp−2個の出力を形成し、一般的な構造内の接続に従ってPEのメイン入力に接続されている。提示された実現はタイプ2のコアDWTアーキテクチャのデータ・ルーティング・ブロックに対する機能的制約を満足することを示すことができる。実際に、すべてのステップの初めにおいて、以前のQ 項のステップにおいて受け入れられたベクトルの連結(期間的順序での)であるベクトルの最初の2J−j+1+p−2個の構成要素が、データ・ルーティング・ブロックの出力において形成され、次に、すべての次のタイム・ユニットの間に、そのベクトルの次のp個の構成要素がその最後のp個の出力において形成される。
p=2の場合に対するタイプ2のコアDWTアーキテクチャのための1つの可能なPE構造が図10(b)に示されている。この分野の技術に通常の技能を有する人にとっては、任意のpおよびp=1、p=2、およびp=Lmaxに対する構造を、図8(a)、(b)、(c)、および(d)に示されているものと同様に設計できることは明らかである。
p=Lmaxの場合、タイプ2のコアDWTアーキテクチャのこの実現は図6に示されているタイプ1のコアDWTアーキテクチャの実現と同じであることに留意されたい。
複数コアDWTアーキテクチャ
上記2つのタイプのコアDWTアーキテクチャは、パラメータpによって変わる可変レベルの並列性で実施することができる。新しいパラメータr=1,...,2m−Jを導入することによって、複数コアDWTアーキテクチャ内で並列性のレベルにおける更なる柔軟性が得られる。複数コアDWTアーキテクチャは、対応している単一コアDWTアーキテクチャからそれをr倍拡張することによって実際に得られる。その一般的な構造が図11に示されている。その構造は1つのデータ入力ブロックおよびJ個のパイプライン段から構成され、各段は1つのデータ・ルーティング・ブロックおよびPEのブロックを含んでいる。
データ入力ブロックはワード直列として、あるいはワード並列として、コアDWTアーキテクチャの場合と同様に実現することができるが、この場合、それはr2個の並列の出力を備え、それは第1のパイプライン段のデータ・ルーティング・ブロックのr2個の入力に接続されている。データ入力ブロックの機能は入力ベクトルの構成要素のグループを演算ステップあたりr2個の構成要素のレートで並列に受け入れて並列に出力することである。
先ず最初に、タイプ1の複数コアDWTアーキテクチャを考える。この場合、j番目のパイプライン段(j=1,...,J)は、その段に対する入力を形成しているr2J−j+1個の入力IPS(j)(0),...,IPS(j)(r2J−j+1−1)を備えている1つのデータ・ルーティング・ブロック、およびr2J−j個のPEの入力に接続されているr2J−j+1+p−2個の出力ODRB(j)(0),...,ODRB(j)(r2J−j+1+p−3)から構成されている。すべてのPEはp個の入力および2つの出力を備え、ここで、p≦LmaxはすべてのPEの並列性のレベルを記述している実現のパラメータである。j番目(j=1,...,J)の段のデータ・ルーティング・ブロックの連続したp個の出力ODRB(j)(2i),ODRB(j)(2i+1),...,ODRB(j)(2i+p−1)は、同じ段のi番目(i=0,...,r2J−j−1)のPE(PEj,i)のp個の入力に接続されている。j番目のパイプライン段(j=1,...,J−1)のr2J−j個のPEの第1の出力は、その段の出力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の第1の出力は、そのアーキテクチャの第1のr個の出力out(0),...,out(r−1)を形成する。j番目のパイプライン段(j=1,...,J)のr2J−j個のPEの第2の出力は、そのアーキテクチャの(r2J−j)番目から(r2J−j+1−1)番目までの出力out(r2J−j),...,out(r2J−j+1−1)を形成する。
データ・ルーティング・ブロック(段j=1,...,Jの)は、一般に、任意の回路として実現され、その回路はすべての演算ステップの最初のタイム・ユニットn=0においてr2J−j+1個の構成要素のベクトルを並列に受け入れ、次に、その演算ステップのすべてのタイム・ユニットn=0,...,L−1において、以前のQ 個のステップ((8)参照)において受け入れられたベクトルの連結(時間的順序での)であるベクトルのr2J−j+1+p−2個の構成要素np,np+1,...,(n+1)p+r2J−j+1−3のベクトルを並列に出力する。PEの機能はタイプ1のコアDWTアーキテクチャの場合と全く同じである。
ここでタイプ2の複数コアDWTアーキテクチャを考える。そのデータ入力ブロックはタイプ1の複数コアDWTアーキテクチャの場合と全く同じである。タイプ2の複数コアDWTアーキテクチャおよびそれらの間の相互接続において使用されているPEは、タイプ2の単一コアDWTアーキテクチャの場合に類似している。その違いは、このアーキテクチャのj番目のパイプライン段(j=1,...,J)内にはr2J−j(2J−jではなく)個のPEがあることである。この場合のデータ・ルーティング・ブロックはタイプ1の複数コアDWTアーキテクチャの場合のようにPEに対する同様な接続によるr2J−j+1個の入力およびr2J−j+1+p−2個の出力を備えている。データ・ルーティング・ブロック(段j=1,..,Jの)は、一般に、任意の回路として実現することができ、その回路はすべての演算ステップの最初のタイム・ユニットn=0においてr2J−j+1個の構成要素のベクトルを並列に受け入れ、そして以前のQ 個のステップにおいて受け入れられたベクトルの連結(時間的順序での)であるベクトルの最初のr2J−j+1+p−2個の構成要素0,1,...,r2J−j+1+p−3のベクトルを並列に出力する。次に、その演算ステップのすべてのタイム・ユニットn=0,...,L−1において、同じベクトルのp個の構成要素r2J−j+1+np−2,..,r2J−j+1+(n+1)p−3の次のサブベクトルをその最後のp個の出力において並列に出力する。
両方のタイプの複数コアDWTアーキテクチャは、単一コアDWTアーキテクチャよりr倍早い。すなわち、パラメータrに関して線形のスピードアップが得られる。入力ベクトルと対応している出力ベクトルとの間の遅延は、タイム・ユニットの単位で次の値に等しく、
Figure 0004180502
そのスループットまたは時間周期はタイム・ユニットの単位で次の値に等しい。
Figure 0004180502
従って、時間とハードウェアの複雑性との間のトレードオフのための更なるスピードアップおよび柔軟性が、複数コアDWTアーキテクチャにおいて得られる。さらに、これらのアーキテクチャはモジュール型であり、規則正しく、そしてセミシストリック・アレイとして実施することができる。
p=L=Lmaxおよびr=2m−Jの場合に対する複数コアDWTアーキテクチャの1つの可能な実現として、ノード(四角形)がPEを表し、小さい円がラッチを表しているDWTの流れ図そのもの(図2参照)を考えることができる。この実現は[34]において示されたものであり、完全並列パイプライン型(FPP)アーキテクチャと呼ばれていた。しかし、それは本発明に従って提案される複数コアDWTアーキテクチャの1つの特定の実現に過ぎない。
可変分解能DWTアーキテクチャ
上記アーキテクチャはオクターブの数が所与の数Jを超えないDWTを実施する。それらはハードウェアの利用率がある程度損なわれるが、オクターブの数がJより小さいDWTを実施することができる。可変分解能のDWTアーキテクチャは任意の数のオクターブJ’でDWTを実施し、一方、そのアーキテクチャの効率はJ’が所与の数Jminより大きいか、あるいはそれに等しい場合は常にそのアーキテクチャの効率が約100%のままである。
可変分解能DWTアーキテクチャの一般的構造が図12(a)に示されている。それはJminの分解レベルに対応している1つのコアDWTアーキテクチャ、および任意の直列のDWTアーキテクチャ、例えば、RPA([14]‐[17]、[19]‐[20]、[22])に基づいたアーキテクチャから構成されている。そのコアDWTアーキテクチャはJ’オクターブDWTの最初のJminオクターブを実施する。コアDWTアーキテクチャのout(0)からの低域フィルタの結果が直列のDWTアーキテクチャに渡される。直列のDWTアーキテクチャはJ’オクターブDWTの最後のJ’−Jminオクターブを実施する。コアDWTアーキテクチャは可変レベルの並列性で実施することができるので、J’≧Jminである時は常にほぼ100%のハードウェア利用率が得られるように直列のDWTアーキテクチャとバランスを取ることができる。
2つの部分間のバランスを達成するために、コアDWTアーキテクチャはJminオクターブのN点のDWTを、直列のアーキテクチャが(J’−Jmin)オクターブのM点のDWT(M=(N/2Jmin))を実施するのと同じか、あるいはより速いスループットで実施するように構成されている。文献において見られる直列のアーキテクチャはM点のDWTを2Mタイム・ユニット([14]、[15])、あるいはMタイム・ユニット([14]‐[19])のいずれかで実施し、それに対応して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アーキテクチャは合計で次の個数のBUから構成され、
A=2p(2Jmin−1)+K=(Kが偶数の場合)K2Jmin、(Kが奇数の場合)(K+1)2Jmin−1
タイム・ユニット単位での次の値の時間周期でJ’オクターブのN点のDWTを実施する。
=N[2L/K]/2Jmin
複数コアDWTアーキテクチャに基づいた可変分解能DWTアーキテクチャを、複数コアDWTアーキテクチャと直列のDWTアーキテクチャとの間に1つのデータ・ルーティング・ブロックを挿入して構築することもできる(図12(b)参照)。そのデータ・ルーティング・ブロックの機能は、演算ステップあたりr個のサンプルのレートでディジットを並列に受け入れて直列に出力することである。この場合におけるバランシングの条件は、rp=[K/2]であり、その面積時間特性は次のように表される。
A=2pr(2Jmin−1)+K=(Kが偶数の場合)K2Jmin、(Kが奇数の場合)(K+1)2Jmin−1、T=N[2L/K]/2Jmin
図14において示されている表1は、提案のアーキテクチャといくつかの従来のアーキテクチャとの間で性能を比較している。この表の中で、文献において一般に受け入れられているように、乗算器‐加算器ペア(これらはDWTアーキテクチャにおける基本ユニット(BU)である)の数は、所与のアーキテクチャの面積を表していると考えられる。そのタイム・ユニットは1つの乗算によって必要とされる時間周期であると取られる。何故なら、これがその臨界のパイプライン段であるからである。表1の最後の7つの行内に示されている、本発明による提案のDWTアーキテクチャの特性は、パラメータ選定のいくつかの例として以外に、任意の実現パラメータLmax、pおよびrに対して与えられている。提案のアーキテクチャにおいて使用されているBUの数は、図8のPEの例(そこではp個の入力を有するPEが2pのBUを含んでいる)を仮定して与えられている。しかし、PEをさらに最適化し、より少ない個数のBUを含むようにすることができる。
便宜上、図15において示されている表2は、DWTパラメータJ=3またはJ=4、N=1024、およびL=9の選定に対する面積‐時間特性の数値例を示している(これは最も広く使用されているDWT、Daubechies9/7ウェーブレットに対応する)。図16に示されている表3は、J=3またはJ=4、N=1024、およびL=5(Daubechies5/3ウェーブレット)に対する数値例を示している。この表の中で示されているゲート数は、BUが16ビットのBoothの乗算器の後に階層的な32ビット加算器が続くものから構成されており、従って、合計1914個のゲートを含む([37]参照)ことを仮定して計算された。図13は表2からの行のいくつかをグラフィック形式で示している。提案のアーキテクチャに対応しているラインをずっと大きな数の基本ユニットにまで拡張することができることに留意されたい。ただし、これらの示されていないケースは非常に大きなシリコン面積を必要とし、現在の技術水準においては非実際的である可能性がある。
これらの例示から分かるように、提案のアーキテクチャは従来のアーキテクチャに比べて、程良い面積条件において卓越した時間特性を示す。提案のアーキテクチャの利点はAT 基準に関してそれらの性能を考える時に最も高く評価することができる。この基準は高速指向のアーキテクチャの性能を評価するために一般に使用されている。表の最初の行は汎用のDSPアーキテクチャを表していることに留意されたい。次の2つの行の中で示されているアーキテクチャは非パイプライン型または制限された(2段のみ)パイプライン型のいずれかであり、それらは本発明による提案のアーキテクチャと同様に約100%のハードウェア利用率で動作する。従って、それらの性能は提案のアーキテクチャの性能に「比例している」が、達成できる並列性のレベルにおいてより大きい柔軟性があり、結果として広い範囲の可能な時間および面積の複雑度となる。表の第4行はハードウェアの利用率が悪く、そして結果として性能の悪いJ段のパイプライン型アーキテクチャを示している。表の第5から第7までの行は以前の刊行物からのアーキテクチャを示しており、それらはJ段のパイプライン型アーキテクチャであり、100%のハードウェア利用率および良好な性能を達成するが、本発明による提案のアーキテクチャによって提供されるような柔軟な範囲の面積および時間の複雑度は可能ではない。
前記において、フィルタ長およびフィルタ係数、入力長、および分解レベルの数などの任意のパラメータのウェーブレット変換を実施することができる「汎用の」ウェーブレット変換器の一般的構造を説明してきた。特定の離散ウェーブレット変換(上記パラメータの特定の組に対応している)に対するアーキテクチャの更なる最適化が、そのアーキテクチャに含まれている処理要素(PE)の構造を最適化することによって可能である。
本発明はCMOS技術を使用した専用のセミシストリックVLSI回路として実施することができる。これはスタンドアローンのデバイスまたは汎用プロセッサに対する組込み型のアクセレレータのいずれかとすることができる。提案のアーキテクチャは各種のレベルの並列性で実施することができ、それによって種々のコストおよび性能が導かれる。所望のレベルの並列性と同様に、実施のモードの選定は応用分野によって変わる。前記において、このアーキテクチャは任意のDWTを実行するための実施のコンテキストにおいて記述された。しかし、それらは特定のタイプのDWTに対して専用であるような方法でさらに最適化および実施することができる。これは、例えば、Daubechiesの5/3または9/7ウェーブレットが基本のDWTとして計画されている、JPEG2000に関連した用途において望ましい可能性がある。
これまで本発明の特定の実施および実施形態が説明されてきた。当業者なら、本発明が上記の実施形態の詳細には限定されず、本発明の特性から逸脱することなしに等価な手段を使用して他の実施形態において実施できることは明らかである。本発明の範囲は添付の特許請求の範囲によってのみ制限される。
<略号>
ASIC 特定用途向け集積回路
CMOS 相補型金属酸化物シリコン
DSP ディジタル信号プロセッサ
DWT 離散ウェーブレット変換
FPP 完全並列パイプライン型(DWTアーキテクチャ)
LPP 制限された並列パイプライン型(DWTアーキテクチャ)
PE プロセッサ要素
<参照文献>
[1] S. G. Mallat, "A Theory for Multiresolution Signal Decomposition: The Wavelet Representation," IEEE Trans. on Pattern Analysis and Machine Intelligence, Vol. 2, n. 12, Dec. 1989, pp. 674-693.
[2] M. Vetterli and J. Kovacevic, Wavelets and Subband Coding, Englewood Cliffs (NJ): Prentice- Hall, 1995.
[3] 1. Daubachies, Ten Lectures on Wavelets, Philadelphia (PA): SIAM, 1992.
[4] 1. Daubechies, "The Wavelet Transform, Time Frequency, Localization 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 in Numerical Analysis" in Wavelets and their Applications, New York (NY): Jones and Bartlett, 1992, pp. 181-210.
[6] G. Beylkin, R. Coifman, and V. Rokhlin, Fast Wavelet Transforms and Numerical Algorithms, New Haven (CT): Yale Univ., 1989.
[7] L. Senhadji, G. Carrault, and J. J. Bellanguer, "Interictal EEG Spike Detection: A New Frame- work Based on The Wavelet Transforms," in Proc. IEEE-SP Int. Symp. Time-Frequency Time- Scale Anal., Philadelphia (PA) Oct 1994, pp. 548-551.
[8] S. G Mallat, "Multitrequency Channel Decompositions of Images 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 and Their Use in Fast Non Recursive Fil- tering,"IEEE Trans. on Signal Processing, vol. 39, n. 6, Jun. 1991, pp. 1322-1332.
[10] A. N. Akansu and R. A. Haddad, Multiresolution Signal Decomposition : 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 Recognitiona and Artificial Intell., vol. n.2, 1987, pp. 273-302.
[12] S. B. Pan, and R. H. Park, "New Systolic Arrays for Computation of the 1-D Discrete Wavelet Transform," Proceedings of the IEEE Internationald Conference on Acoustics, Speech, and Sig- nal Processing, 1997, Vol. 5, 1997, pp. 4113-4116.
[13] A. B. Premkumar, and A. S. Madhukumar, "An Efficient VLSI Architecture for the Computation of 1-D Discrete Wavelet Transform," Proc. of the IEEE Int. Conf. On Information, Communications and Signal Processing (ICICS'97), Singapore 9-12 September 1997, pp. 1180-1183.
[14] M. Vishwanath, R. M. Owens, and M. J. Irwin, "VLSI Architectures for the Discrete Wavelet Transform," IEEE Trans. on Circ. and Syst. II:Analog and Digital Signal Processing, vol. 42, n. 5, May 1995, pp. 305-316.
[15] J. Fridman, and S. Manolakos, "Discrete Wavelet Transform: Data Dependence Analysis and Synthesis of Distributed Memory and Control Array Architectures," IEEE Trans. on Signal Processing, vol. 45, n. 5, May 1997, pp. 1291-1308.
[16] K. K. Parhi, and T. Nishitani,"VLSI Architectures for Discrete Wavelet Transforms," IEEE Trans. on VLSI Systems, vol. 1, n.2, 1993, pp. 191-202.
[17] T. C. Denk, and K. K. Parhi, "Systolic VLSI Architectures for 1-D Discrete Wavelet Transform," Proceedings of the Thirty-Second Asilomar Conference on Signals, Systems & Computers, 1998, vol. 2 pp. 1220-1224.
[18] G. Knowles, "VLSI Architecture for the Discrete Wavelet Transform," Electronics Letters, vol. 26, n. 15, 1990, pp. 1184-1185.
[19] C. Chakrabarti and M. Vishwanath, "Efficient Realizations of Discrete and Continuous Wavelet Transforms: From Single Chip Implementations to Mappings on SIMD Array Computers," IEEE Trans. on Signal Processing, vol. 43, n. 3,1995, pp. 759-771.
[20] C. Chakrabarti, M. Vishwanath, and R. M. Owens, "Architectures for Wavelet Transforms: A Survey," Journal of VLSI Signal Processing, vol. 14, n. 2,1996, pp. 171-192.
[21] A. Grzeszczak, M. K. Mandal, S. Panchanatan, "VLSI Implementation of Discrete Wavelet Transform," IEEE Trans. on VLSI Systems, vol. 4, n. 4, Dec. 1996, pp. 421-433.
[22] M. Vishwanath, and R. M. Owens, "A Common Architecture for the DWT and IDWT," Proceedings of 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 and Implementation of a Highly Efficient VLSI Ar- chitecture for Discrete Wavelet Transforms," Proceedings of IEEE Int. Conf. On Custom Integrated Circuits, 1997, pp. 237-240.
[24] S. B. Syed, M. A. Bayoumi, "A Scalable Architecture for Discrete Wavelet Transform," Proceedings of Computer Architectures for Machine Perception (CAMP '95), 1995, pp. 44-50.
[26] M. Vishwanath, "The Recursive Pyramid Algorithm for the Discrete Wavelet Tranform," IEEE Transactions on Signal Processing, vol. 42, n. 3,1994, pp. 673-677.
[27] D. Liu, C. Svensson, "Trading Speed for Low Power by Choice 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. Marino, D. Gevorkian, and J. Astola, "High-Speed/Low-Power 1-D DWT Architectures with high efficiency," in Proceedings of the IEEE International Conference on Circuits and Systems, May 28-31 2000, Geneva, Switzerland, vol. 5, pp. 337-340.
[31] D. Z. Gevorkian, "Computational Aspects of Discrete Linear Transforms and Rank Order Based Filters", Thesis for the degree of Doctor of Technology, May 1997,214 pages.
[32] J. T. Astola, S. S. Agaian, and D. Z. Gevorkian, "Parallel Algorithms and Architectures for a Family of Haar-like Transforms," in Proceedings of 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 and Wavelet Packets for their Efficient Parallel Implementation," to appear in Proceedings of TICSP Int. Workshop on Spectral Transforms and Logic Design for Future Digital Systems, June 2-3,2000, Tampere, Finland.
[35] D. Gevorkian, J. Astola, F. Marino, and S. Agaian, "Highly Efficient Fast Architectures for Discrete Wavelet Transforms Based on Their Flowgraph Representation," in Proceedings of the X European Signal Processing Conference, Sept. 4-8,2000, Tampere, Finland.
[36] http://www. ti. com/sc/docs/products/dsp/c6000/benchmarks/64x. htm#filters
[37] P. Pirsch, Architectures for Digital Signal Processing, J. Willey & Sons, 1998,419 pages.
ほとんどの既知のDWTアーキテクチャがベースにしているDWTのツリー構造の定義/表現を示す。 本発明において提案されているアーキテクチャがベースにしているDWTの新しい流れ図表現の一例を示す。 DWTのコンパクトな形式の流れ図表現の1つの実施形態を示す。 本発明による2種類のコアDWTアーキテクチャの一般的なアーキテクチャを示す。 図4のタイプ1のアーキテクチャの1つの段の1つの可能な実施形態を示す。 p=Lmax=6;J=3;N=2、m=3,4,...のパラメータに対応している、図5のタイプ1のコアDWTアーキテクチャの1つの実施形態を示す。 p=Lmax=6;J=3;N=2、m=3,4,...のパラメータに対応している、図5のタイプ1のコアDWTアーキテクチャのもう1つの実施形態を示す。 図4のタイプ1のコアDWTアーキテクチャにおいて使用することができる処理要素(PE)の4つの可能な実施形態を示す。 図4のタイプ2のコアDWTアーキテクチャの1つの段の1つの可能な実施形態を示す。 タイプ2のコアDWTアーキテクチャの可能な実現の1つの実施形態を示す。 本発明による複数コアDWTアーキテクチャの一般的アーキテクチャを示す。 本発明による可変分解能DWTアーキテクチャの一般的アーキテクチャを示す。 既知のアーキテクチャおよび本発明によるDWTアーキテクチャの遅延時間対基本ユニット(BU)数のグラフを示す。 表1を示す。 表2を示す。 表3を示す。

Claims (35)

  1. 入力信号ベクトルxに関し、連続した分解レベルjに渡って所定の最大分解レベルJまで離散ウェーブレット変換の演算を実行するためのマイクロプロセッサ構造であって、前記分解レベルjは、1からJまでの範囲内の整数であり、
    前記マイクロプロセッサ構造は、J個の連続した処理段を有し、前記J個の連続した処理段の各々は、前記離散ウェーブレット変換の任意の分解レベルjに対応し、
    前記離散ウェーブレット変換の演算のフィルタリング演算である各々の内積演算を実行するための複数の基本処理回路(PE)を備え、
    前記J個の連続した処理段の各々に備えられた前記複数の基本処理回路(PE)は、各々の分解レベルjの増加に伴い、一定のファクタkだけ減少し、前記一定のファクタkは、前記離散ウェーブレット変換の演算において使われる独自のフィルタリング演算のタイプの数に対応することを特徴とするマイクロプロセッサ構造。
  2. 各処理段の各基本処理回路(PE)は、入力値を並列に受信するためにp個の入力を有し、
    前記p個の入力においてL/p個の連続した並列グループで受信されたL個の入力値の一組に、L個の係数値のk個の各組を適用することにより、k個の独自のフィルタリング演算を実行し、
    各基本処理回路(PE)は、さらにk個の出力を有し、各出力は、前記k個の独自のフィルタリング演算の各1つの結果に対応している出力値を出力するように構成されていることを特徴とする請求項に記載のマイクロプロセッサ構造。
  3. 各処理段各基本処理回路(PE)は、入力値を並列に受信するためにL max 個の入力を有し、
    前記L max は、前記マイクロプロセッサ構造の最大フィルタ長に対応し、
    前記各基本処理回路は、前記L max 個の入力において並列に受信されたL max 個の入力値の一組に、L max 個の係数値のk個の各組を適用してk個の独自のフィルタリング演算を実行するよう構成され、
    各基本処理回路(PE)は、さらにk個の出力を有し、k個の各出力は、前記k個の独自のフィルタリング演算の各1つの結果に対応している出力値を出力するように構成されていることを特徴とする請求項に記載のマイクロプロセッサ構造。
  4. 基本処理回路(PE)は、L個の係数値のk個の各組を適用してk個の独自のフィルタリング演算を実行するよう構成され、前記L max 個の入力において並列に受信されたL個の入力値の一組に対して、L<L max であることを特徴とする請求項に記載のマイクロプロセッサ構造。
  5. 各処理段の各基本処理回路(PE)は、入力値を並列に受信するためにp個の入力を有し、
    前記p個の入力においてL/p個の連続した並列グループで受信されたL個の入力値の一組に、L個の係数値の2つの各組を適用することにより、2つの独自のフィルタリング演算を実行するよう構成され、
    前記2つの独自のフィルタリング演算の第1のものが低域フィルタリング演算(LP)を表し、前記2つの独自のフィルタリング演算の第2のものが高域フィルタリング演算(HP)を表し
    記基本処理回路(PE)は、2つの出力をさらに含み、第1の出力は前記L個の入力値の組について実行された前記低域フィルタリング演算(LP)の結果に対応している低域フィルタされた出力値を出力し、第2の出力が前記L個の入力値の組について実行された高域フィルタリング演算(HP)の結果に対応している高域フィルタされた出力値を出力するように構成されていることを特徴とする請求項1に記載のマイクロプロセッサ構造。
  6. 前記第1の分解レベルに対応している前記処理段が、前記入力ベクトルのr×k 個の入力サンプルを並列に受信するように構成されたr×k 個の入力を含むルーティング・ブロックをさらに含み、前記ルーティング・ブロックが前記r×k 個の入力サンプルをL個の入力サンプルの組にまとめ、前記L個の入力サンプルの組を第1の処理段の前記基本処理回路(PE)の入力に対して並列に供給し、前記第1の処理段の各基本処理回路(PE)が所定のL個の入力サンプルの組を受信し、前記Lは特定のフィルタ長に対応するように構成されていることを特徴とする請求項に記載のマイクロプロセッサ構造。
  7. 前記第1の分解レベルに対応している前記処理段が、前記入力信号ベクトルの2個の入力サンプルを並列に受信するように構成された2 個の入力を含むルーティング・ブロックをさらに含み、前記ルーティング・ブロックが前記2 個の入力サンプルをL個の入力サンプルの組にまとめ、前記L個の入力サンプルの組を前記第1の処理段の前記基本処理回路(PE)の入力に対して並列に供給するよう構成され、前記第1の処理段の各基本処理回路(PE)が所定のL個の入力サンプルの組を受信し、前記Lは特定のフィルタ長に対応することを特徴とする請求項1に記載のマイクロプロセッサ構造。
  8. 各処理段の各基本処理回路(PE)入力値を並列に受信するため備えられたp個の入力を有し、前記p個の入力値において、L/p個の連続した並列グループで受信されたL個の入力値の一組に、L個の係数値の2つの各組を適用して、2つの独自のフィルタリング演算を実行するよう構成され、
    前記基本処理回路(PE)が2つの出力をさらに含み、各出力が前記2つの独自のフィルタリング演算のうちのそれぞれの1つの結果に対応する出力値を出力するように構成され、
    前記マイクロプロセッサ構造の連続した処理段は、前記基本処理回路(PE)のそれぞれの出力から出力値のペアを受信し、前記連続する処理段に提供されるp個の入力値のグループにフィルタリング演算からの出力値を一緒にまとめることにより、前記出力値のペアに関し完全アンシャッフル演算を実行するように構成されているデータ・ルーティング・ブロックをさらに含ことを特徴とする請求項1に記載のマイクロプロセッサ構造。
  9. 各処理段の各基本処理回路(PE)p個の入力を有し、前記p個の入力値において、L/p個の連続した並列グループで受信されたL個の入力値の組にL個の係数値のk個の各組を適用してk個の内積演算を実行するように構成され、
    前記基本処理回路(PE)がk個の出力をさらに含み、各出力が前記k個の内積のうちのそれぞれの1つを出力するように構成され、
    前記マイクロプロセッサ構造の連続する処理段前記処理段の前記基本処理回路(PE)の出力からのk個の内積の結果の組を受信するように構成され前記基本処理回路(PE)の各々によって実行されるフィルタリング演算からの内積の結果を一緒にまとめるために前記k個の内積の結果の組に関してストライド置換を実行するように構成されていることを特徴とする請求項に記載のマイクロプロセッサ構造。
  10. 前記マイクロプロセッサ構造は、任意の分解レベルjに対する離散ウェーブレット変換の結果が前記任意の分解レベルjに対応している処理段における高域フィルタリング演算および低域フィルタリング演算からの出力値、およびすべての前の処理段の高域フィルタリング演算からの出力値からベクトルを構築することによって形成されることを特徴とする請求項1に記載のマイクロプロセッサ構造。
  11. 離散ウェーブレット変換を実行するための第2のマイクロプロセッサ構造を備えた1つのデバイスに集積化され、前記第2のマイクロプロセッサ構造が、前記最終の分解レベルJに加えて少なくとも1つの更なる分解レベルを実行するように構成されていることを特徴とする請求項1に記載のマイクロプロセッサ構造。
  12. 個の値を含む入力信号ベクトルxに関し、連続した分解レベルjに渡って所定の最大分解レベルJまで、離散ウェーブレット変換の演算を実行するためのマイクロプロセッサ構造に含まれるコア処理回路であって、前記分解レベルjは、1からJまでの範囲内の整数であり、
    前記コア処理回路は、J個の連続した処理段を有し、前記J個の連続した処理段階の各々が、前記離散ウェーブレット変換の分解レベルjに対応し、各処理段jにおいて、kJ−j個の基本処理回路(PE)を含み、
    前記基本処理回路(PE)は、前記離散ウェーブレット変換の演算のフィルタリング演算である各内積演算を実行することを特徴とするコア処理回路
  13. 各処理段の各基本処理回路が所定の数の入力を有し、k組の係数値と前記所定の数の入力において並列に受信された一組の入力値との間で一組のk個の内積演算を実行するように構成され、前記入力の数、一組の中の前記係数値の数、および並列に受信された前記入力値の数がそれぞれ前記k個の内積演算を実行するために使用されるフィルタ長Lに等しく、各基本処理回路がk個の出力をさらに含み、各出力が前記k組の係数値の1つと前記入力値の組との間で実行された前記k個の内積演算のうちの1つの結果に対応している出力値を出力するように構成されていることを特徴とする請求項12に記載のマイクロプロセッサ構造。
  14. 前記コア処理回路は、前記k個の前記入力信号ベクトル値を並列に受信するように構成されていることを特徴とする請求項12に記載のコア処理回路
  15. 前記コア処理回路の前記第1の処理段が時間的に進行しながらr×k個の値の入力信号ベクトルxを、連続したサブベクトルとして受信して処理し、各サブベクトルは、個のサンプルを含むように構成されていることを特徴とする請求項12に記載のコア処理回路
  16. 少なくとも1つの処理段が、第1の期間の直後の第2の期間においてサブベクトルi+1からの少なくとも1つのサンプルを含むサブベクトルiを第1の期間において処理するように構成されていることを特徴とする請求項15に記載のコア処理回路
  17. 前記少なくとも1つの処理段が、前記サブベクトルi+1からL/2個のサンプルが付加された前記サブベクトルiを処理するように構成されていることを特徴とする請求項16に記載のコア処理回路
  18. 各基本処理回路がすべての基本処理回路に対して実質的に同じである1つの時間の期間において基本演算サイクルを実行するように構成されていることを特徴とする請求項1に記載のマイクロプロセッサ構造。
  19. 前記入力サンプルのベクトルから前記サブベクトルを形成するために構成されたシフト・レジスタをさらに含むことを特徴とする請求項12に記載のコア処理回路
  20. 前記基本処理回路のすべてが同じ演算を実行するように実装されていることを特徴とする請求項1に記載のマイクロプロセッサ構造。
  21. 前記サブベクトルiに対して付加されるサンプルの数がL/2であることを特徴とする請求項16に記載のコア処理回路
  22. 各処理段jの各基本処理回路(PE)は、入力値を並列に受信するためにp個の入力を有し、
    前記p個の入力においてL/p個の連続した並列グループで受信されたL個の入力値の一組に、L個の係数値のk個のそれぞれの組を適用することにより、k個の独自のフィルタリング演算を実行し、
    各基本処理回路(PE)は、さらにk個の出力を有し、各出力は、前記k個の独自のフィルタリング演算の各1つの結果に対応した出力値を出力するように構成されていることを特徴とする請求項12に記載のコア処理回路。
  23. 各処理段jの各基本処理回路(PE)は、入力値を並列に受信するためにLmax個の入力を有し、
    前記Lmaxは、前記マイクロプロセッサ構造の最大フィルタ長に対応し、
    前記各基本処理回路は、前記Lmax個の入力において並列に受信されたLmax個の入力値の一組に、Lmax個の係数値のk個の各組を適用してk個の独自のフィルタリング演算を実行するよう構成され、
    各基本処理回路(PE)は、さらにk個の出力を有し、k個の各出力は、前記k個の独自のフィルタリング演算の各1つの結果に対応している出力値を出力するように構成されていることを特徴とする請求項12に記載のコア処理回路。
  24. 各基本処理回路(PE)は、L個の係数値のk個の各組を適用してk個の独自のフィルタリング演算を実行するよう構成され、前記Lmax個の入力において並列に受信されたL個の入力値の一組に対して、L<Lmaxであることを特徴とする請求項23に記載のコア処理回路。
  25. 各処理段jの各基本処理回路(PE)は、入力値を並列に受信するためにp個の入力を有し、
    前記p個の入力においてL/p個の連続した並列グループで受信されたL個の入力値の一組に、L個の係数値の2つの組を適用することにより、2つの独自のフィルタリング演算を実行するよう構成され、
    前記2つの独自のフィルタリング演算の第1のものが低域フィルタリング演算(LP)を表し、前記2つの独自のフィルタリング演算の第2のものが高域フィルタリング演算(HP)を表し、
    前記基本処理回路(PE)は、2つの出力をさらに含み、第1の出力は前記L個の入力値の組について実行された前記低域フィルタリング演算(LP)の結果に対応している低域フィルタされた出力値を出力し、第2の出力が前記L個の入力値の組について実行された高域フィルタリング演算(HP)の結果に対応している高域フィルタされた出力値を出力するように構成されていることを特徴とする請求項12に記載のコア処理回路。
  26. 各処理段の各基本処理回路(PE)は、入力値を並列に受信するためにp個の入力を有し、
    L個の入力値の一組に、L個の係数値のk組をそれぞれ適用して、k個の独自のフィルタリング演算を実行するように構成され、一組の中の前記入力値の合計数および一組の中の前記係数値の数がLに等しく、ここで、Lは1からLmaxまでの範囲内で選択可能であり、前記基本処理回路(PE)は、k個の出力を有し、各出力は、前記k個の独自のフィルタリング演算の各1つの結果に対応した出力値を出力するように構成され、
    前記基本処理回路(PE)は、連続した演算期間において、L/p個の連続する並列グループで前記L個の入力値の組を受信するよう構成され、
    p個の入力値の連続して受信したグループに関し、それぞれ内積演算を行うことにより、前記k個の出力値を形成し、
    中間のフィルタリング値を得るために係数値に対応し、且つ、前記連続した演算期間で得られた前記中間のフィルタリング値を蓄積することを特徴とする請求項12に記載のコア処理回路
  27. 前記処理段2乃至Jのうちの少なくとも1つが、直前の処理段j−1の前記処理回路のそれぞれから前記k個の出力値を受信するように構成されているデータ・ルーティング・ブロックをさらに含み、
    前記ルーティング・ブロックが前記k個の出力値のうちの指定されたものをL個の出力値の組にまとめ、連続している動作期間において処理段jの前記基本処理回路の前記p個の入力に対して並列にp個の値の連続したグループの前記L個の出力値の組を供給するようにさらに構成されていることを特徴とする請求項26に記載のコア処理回路
  28. 前記第1の分解レベルに対応している前記処理段が、k個の入力サンプルを含む前記連続したサブベクトルiを受信するように構成されているルーティング・ブロックをさらに含み、
    前記ルーティング・ブロックが前記k個の入力サンプルを、直後のサブベクトルi+1からいくつかのサンプルを付加することによってL個の組に正確に分割されるように前記サブベクトルiを構成することによって、L個の入力サンプルの組に形成するように構成され、
    前記ルーティング・ブロックが、連続した動作期間において前記第1の処理段の前記基本処理回路の前記p個の入力に対して並列にp個の値の連続したグループで前記L個の組を供給するようにさらに構成されていることを特徴とする請求項26に記載のコア処理回路
  29. 処理段jの少なくとも第1の基本処理回路(PE)、以前の動作期間において同じ前記処理段jの第2の基本処理回路(PE)において得られたp個の中間フィルタリング結果を表しているp個の値の一組を受信するように構成され、前記第1の基本処理回路(PE)が、現在の動作期間において前記p個の中間フィルタリング結果の組を使用するように構成されていることを特徴とする請求項26に記載のコア処理回路
  30. 前記第1の基本処理回路(PE)は、前記p個の中間フィルタリング結果並列に受信するように構成されていることを特徴とする請求項29に記載のコア処理回路
  31. 前記第1の基本処理回路(PE)が前記第2の基本処理回路(PE)から、初期の第1の動作期間の後、連続している各動作期間においてp個の入力値の一組を並列に受信するように構成されていることを特徴とする請求項29に記載のコア処理回路
  32. 離散ウェーブレット変換を実行するための第2のマイクロプロセッサ構造を伴った1つのデバイスに集積化され、前記第2のマイクロプロセッサ構造が前記最終の分解レベルJに加えて少なくとも1つの更なる分解レベルを実行するように構成されていることを特徴とする請求項12に記載のコア処理回路
  33. 離散ウェーブレット変換を実行するための第2のマイクロプロセッサ構造を伴った1つのデバイスに集積化され、前記第2のマイクロプロセッサ構造が前記最終の分解レベルJに加えて少なくとも1つの更なる分解レベルを実行するように構成されていることを特徴とする請求項26に記載のコア処理回路
  34. 前記第2のマイクロプロセッサ構造が再帰型ピラミッド・アルゴリズムを実行するように構成されていることを特徴とする請求項に記載のマイクロプロセッサ構造。
  35. マイクロプロセッサ構造を有するコア処理回路を用い、r×k 個の値を含む入力信号ベクトルxに関し、連続した分解レベルjに渡って所定の最大分解レベルJまで離散ウェーブレット変換演算の実行ステップを実施するための方法であって、
    前記分解レベルjは、1からJの範囲内の整数であり、
    前記コア処理回路は、J個の連続した処理段を有し、前記J個の連続した処理段の各々は、前記離散ウェーブレット変換の任意の分解レベルjに対応し、各々の処理段jにおいてk J−j 個の基本処理回路(PE)で実装され、
    前記基本処理回路(PE)は、前記離散ウェーブレット変換の演算のフィルタリング演算である各々の内積演算を実行するためにあり、
    前記方法は、前記入力信号ベクトルをk 個の値のr個の連続した部分に分割することを含み、且つ、各々の連続した部分のために前記コア処理回路を用いることを含むことを特徴とする方法。
JP2003500824A 2001-06-01 2002-05-28 離散ウェーブレット変換のためのアーキテクチャ Expired - Fee Related JP4180502B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/872,682 US6976046B2 (en) 2001-06-01 2001-06-01 Architectures for discrete wavelet transforms
PCT/FI2002/000455 WO2002097718A1 (en) 2001-06-01 2002-05-28 Architectures for discrete wavelet transforms

Publications (2)

Publication Number Publication Date
JP2005500595A JP2005500595A (ja) 2005-01-06
JP4180502B2 true JP4180502B2 (ja) 2008-11-12

Family

ID=25360097

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003500824A Expired - Fee Related JP4180502B2 (ja) 2001-06-01 2002-05-28 離散ウェーブレット変換のためのアーキテクチャ

Country Status (8)

Country Link
US (1) US6976046B2 (ja)
EP (1) EP1412911B1 (ja)
JP (1) JP4180502B2 (ja)
KR (2) KR101123106B1 (ja)
CN (2) CN1271562C (ja)
AT (1) ATE463801T1 (ja)
DE (1) DE60235893D1 (ja)
WO (1) WO2002097718A1 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
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
US7702502B2 (en) 2005-02-23 2010-04-20 Digital Intelligence, L.L.C. Apparatus 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
US9037224B1 (en) 2010-08-02 2015-05-19 Chi Yung Fu Apparatus for treating a patient
US8725669B1 (en) * 2010-08-02 2014-05-13 Chi Yung Fu Signal processing method and apparatus
US9095266B1 (en) 2010-08-02 2015-08-04 Chi Yung Fu Method 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)

* Cited by examiner, † Cited by third party
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
US6178269B1 (en) 1998-08-06 2001-01-23 Intel Corporation Architecture for computing a two-dimensional discrete wavelet transform
US6047303A (en) * 1998-08-06 2000-04-04 Intel Corporation Systolic architecture for computing an inverse discrete wavelet transforms
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

Also Published As

Publication number Publication date
CN1271562C (zh) 2006-08-23
CN1537297A (zh) 2004-10-13
DE60235893D1 (de) 2010-05-20
KR100975602B1 (ko) 2010-08-17
KR101123106B1 (ko) 2012-03-19
EP1412911B1 (en) 2010-04-07
JP2005500595A (ja) 2005-01-06
KR20040018383A (ko) 2004-03-03
CN1892640A (zh) 2007-01-10
ATE463801T1 (de) 2010-04-15
WO2002097718A1 (en) 2002-12-05
US20030065489A1 (en) 2003-04-03
US6976046B2 (en) 2005-12-13
EP1412911A1 (en) 2004-04-28
KR20080081366A (ko) 2008-09-09

Similar Documents

Publication Publication Date Title
JP4180502B2 (ja) 離散ウェーブレット変換のためのアーキテクチャ
Wu et al. A high-performance and memory-efficient pipeline architecture for the 5/3 and 9/7 discrete wavelet transform of JPEG2000 codec
Andra et al. A VLSI architecture for lifting-based forward and inverse wavelet transform
Jou et al. Efficient VLSI architectures for the biorthogonal wavelet transform by filter bank and lifting scheme
Huang et al. Flipping structure: An efficient VLSI architecture for lifting-based discrete wavelet transform
Chen VLSI implementation for one-dimensional multilevel lifting-based wavelet transform
Weeks et al. Discrete wavelet transform: architectures, design and performance issues
US20070156801A1 (en) Flowgraph representation of discrete wavelet transforms and wavelet packets for their efficient parallel implementation
Marino Two fast architectures for the direct 2-D discrete wavelet transform
Marino et al. A parallel implementation of the 2-D discrete wavelet transform without interprocessor communications
Benkrid et al. Design and implementation of a generic 2-D biorthogonal discrete wavelet transform on an FPGA
Park et al. High speed lattice based VLSI architecture of 2D discrete wavelet transform for real-time video signal processing
Yang et al. A block-based architecture for lifting scheme discrete wavelet transform
Al-Sulaifanie et al. Very large scale integration architecture for integer wavelet transform
Uzun et al. Framework for FPGA-based discrete biorthogonal wavelet transforms implementation
Lipinski et al. Efficient 1D and 2D Daubechies wavelet transforms with application to signal processing
Zhang et al. A VLSI architecture for a high-speed computation of the 1D discrete wavelet transform
Chen VLSI implementation of lifting discrete wavelet transform using the 5/3 filter
Savić et al. Memory Efficient Hardware Architecture for 5/3 Lifting-Based 2-D Forward Discrete Wavelet Transform
Zhang et al. An efficient VLSI architecture for discrete wavelet transform based on the Daubechies architecture
Shiau et al. Efficient architectures for the biorthogonal wavelet transform by filter bank and lifting scheme
Peng et al. An efficient vlsi architecture for separable 2-d discrete wavelet transform
Guevorkian et al. Highly efficient scalable parallel-pipelined architectures for discrete wavelet transforms
Akilandeswari A Multiplier-Less Lifting Scheme Based DWT Structure
Kumar et al. A two stage pipeline architecture for hardware implementation of multi-level decomposition of 1-D framelet transform

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050308

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070906

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071023

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080123

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080130

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080222

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080229

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080324

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080805

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080827

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110905

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120905

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120905

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130905

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130905

Year of fee payment: 5

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130905

Year of fee payment: 5

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees