JP3943224B2 - ウェーブレット変換のベクトル処理を行う処理装置および方法 - Google Patents

ウェーブレット変換のベクトル処理を行う処理装置および方法 Download PDF

Info

Publication number
JP3943224B2
JP3943224B2 JP02840698A JP2840698A JP3943224B2 JP 3943224 B2 JP3943224 B2 JP 3943224B2 JP 02840698 A JP02840698 A JP 02840698A JP 2840698 A JP2840698 A JP 2840698A JP 3943224 B2 JP3943224 B2 JP 3943224B2
Authority
JP
Japan
Prior art keywords
wavelet transform
dimension
result
data
vector
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
JP02840698A
Other languages
English (en)
Other versions
JPH11232251A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP02840698A priority Critical patent/JP3943224B2/ja
Publication of JPH11232251A publication Critical patent/JPH11232251A/ja
Application granted granted Critical
Publication of JP3943224B2 publication Critical patent/JP3943224B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Complex Calculations (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、信号処理等において、ベクトル処理を利用したウェーブレット変換を行う処理装置およびその方法に関する。
【0002】
【従来の技術とその問題点】
近年、局所的な現象を表現/解析するための方法としてウェーブレット変換(wavelet transform )が注目されており、特に、信号処理の分野においては、音声や画像(または映像)のデジタル信号を圧縮/復元する際に有効なツールであることが指摘されている。また、ウェーブレット変換は、偏微分方程式の解法等の多様な科学技術計算にも用いることができる。
【0003】
1次元のウェーブレット変換は、入力データをその半分の数の平滑成分(低周波成分)と高周波成分(変化率を表す成分)に分ける部分ウェーブレット変換(PWT)を再帰的に繰り返すことで行われる。
【0004】
今、簡単のため、長さN=2p のベクトルデータsp =(sp,0 ,sp,1 ,...,sp,N-1 )を入力データとし、これに対する次数Dのウェーブレット変換の係数(ウェーブレットフィルタ係数)を、h0 ,h1 ,...,hD-1 とする。このとき、入力データsp を半分の長さの平滑成分sp-1 =(sp-1,0 ,sp-1,1 ,...,sp-1,N-1 )と高周波成分dp-1 =(dp-1,0 ,dp-1,1 ,...,dp-1,N-1 )に変換する部分ウェーブレット変換は、次式で与えられる。
【0005】
【数1】
Figure 0003943224
【0006】
ここで、記号Σはi=0,1,...,2p −1についての総和を表し、kの値の範囲はk=0,1,...,2p-1 −1である。また、i−2k<0またはi−2k>D−1の場合はhi-2k=0とし、1−i+2k<0または1−i+2k>D−1の場合はh1-i+2k=0とする。この部分ウェーブレット変換は、図17に示すようにモデル化することができ、これを変換行列QN を用いて書くと、次式のようになる。
【0007】
【数2】
Figure 0003943224
【0008】
変換行列QN は、ウェーブレット係数h0 ,h1 ,...,hD-1 がサイクリックに現れる構成を持ち、例えば、D=4、N=8の場合は、次式のようになる。
【0009】
【数3】
Figure 0003943224
【0010】
入力データsp に対するウェーブレット変換は、図18に示すように、p回の部分ウェーブレット変換を組み合わせて行われる。各部分ウェーブレット変換の出力sr 、dr (r=p−1,p−2,...,1)のうち、平滑成分sr のみが次の部分ウェーブレット変換の入力として用いられ、最終的には、s0 =(s0,0 )とdp-2 ,dp-1 ,...,d0 とがウェーブレット変換の結果として出力される。例えば、D=4、N=16=24 の場合は、図19に示すように、入力データs4 が4回の部分ウェーブレット変換により変換される。
【0011】
このように、(1)、(2)式で定義される部分ウェーブレット変換を、その出力に繰り返し適用することで、ウェーブレット変換が行われる。このため、その処理は再帰的または回帰的となり、ベクトル計算機によるベクトル化には向いていない。
【0012】
また、(1)式または(2)式の右辺の演算をベクトル化することも考えられるが、ウェーブレット係数の次数Dは、通常、入力データの長さNに比べてはるかに小さいため、ベクトル長が短くなってしまう。したがって、十分なベクトル化の効果が得られないという問題もある。
【0013】
本発明の課題は、ウェーブレット変換をベクトル化して効率よく処理する処理装置およびその方法を提供することである。
【0014】
【課題を解決するための手段】
1次元データに対するウェーブレット変換はベクトル化に向いていないが、2次元データに対するウェーブレット変換では、ベクトル化の方向を工夫することで、効率のよいベクトル化を実現することができる。2次元のウェーブレット変換は、2次元配列の行列データに対して行われ、まず、すべての行データに対するウェーブレット変換を行った後、得られた行列のすべての列データに対するウェーブレット変換を行うことで完了する。
【0015】
図1は、このような2次元のウェーブレット変換を行う処理装置の原理図である。図1の処理装置は、第1の格納手段1、第1のベクトル処理手段2、第2の格納手段3、第2のベクトル処理手段4、および出力手段5を備える。
【0016】
第1の格納手段1は、第1次元と第2次元から成る2次元配列のデータを格納する。
第1のベクトル処理手段2は、上記2次元配列における第1次元に対するウェーブレット変換のベクトル処理を行う。
【0017】
第2の格納手段3は、上記第1次元に対するウェーブレット変換の結果を格納する。
第2のベクトル処理手段4は、上記第1次元に対するウェーブレット変換の結果における第2次元に対するウェーブレット変換のベクトル処理を行う。
【0018】
出力手段5は、上記第2次元に対するウェーブレット変換の結果を出力する。
2次元配列のデータが行列データに対応する場合は、例えば、第1次元は行方向に対応し、第2次元は列方向に対応する。第1の格納手段1は、例えば、第2次元の方向をアドレスの連続方向として、2次元配列のデータを格納する。
【0019】
次に、第1のベクトル処理手段2は、第1の格納手段1内で、第2次元の方向に並んでいる複数のデータをベクトル化して、第1次元の方向に並んでいる複数の1次元データに対する部分ウェーブレット変換のベクトル処理を行う。
【0020】
このとき、各1次元データに対しては互いに独立に部分ウェーブレット変換が施されるため、これらの部分ウェーブレット変換は並列に行うことができ、ベクトル化に適している。このときのベクトル化の方向は第2次元の方向であるため、第1の格納手段1に対するアクセスは連続アクセスとなり、効率のよいベクトル処理が行われる。
【0021】
第1のベクトル処理手段2は、この部分ウェーブレット変換を必要な回数だけ繰り返すことで、2次元配列における第1次元に対するウェーブレット変換を行い、変換結果を第2の格納手段3に格納する。
【0022】
次に、第2のベクトル処理手段4は、第2の格納手段3内で、第1次元の方向に並んでいる複数のデータをベクトル化して、第2次元の方向に並んでいる複数の1次元データに対する部分ウェーブレット変換のベクトル処理を行う。
【0023】
この場合も、各1次元データに対しては互いに独立に部分ウェーブレット変換が施されるため、これらの部分ウェーブレット変換は並列に行うことができ、ベクトル化に適している。また、このときのベクトル化の方向(第1次元の方向)がアドレスの連続方向になるように、第2の格納手段3の格納方法を工夫することにより、ベクトル処理はさらに効率化される。
【0024】
この部分ウェーブレット変換を必要な回数だけ繰り返すことで、第1次元に対するウェーブレット変換の結果における第2次元に対するウェーブレット変換が行われる。
【0025】
そして、出力手段5は、この第2次元に対するウェーブレット変換の結果を、上記2次元配列のデータに対する2次元ウェーブレット変換の結果として出力する。
【0026】
このように、図1の処理装置によれば、ベクトル化の方向を適切に選ぶことで、2次元配列に含まれる複数の1次元データの部分ウェーブレット変換を効率よく処理することができ、2次元ウェーブレット変換が高速化される。
【0027】
例えば、図1の第1の格納手段1および第2の格納手段3は、後述する図4のメモリ13に対応し、第1のベクトル処理手段2および第2のベクトル処理手段4はベクトルユニット11に対応し、出力手段5は出力装置18に対応する。
【0028】
【発明の実施の形態】
以下、図面を参照しながら、本発明の実施の形態を詳細に説明する。
2次元のウェーブレット変換は、2次元配列の行列データに対して行われ、まず、すべての行データに対するウェーブレット変換を行った後、得られた行列のすべての列データに対するウェーブレット変換を行うことで完了する。
【0029】
例えば、インタリーブ方式でアドレスを割り当てられた複数のバンクから成るメモリに、図2に示すように行列データが格納されているとすると、各行データは互いに異なるバンクに属することになる。また、各行データに対しては互いに独立に部分ウェーブレット変換が繰り返されるため、これらの部分ウェーブレット変換は並列に行うことができ、ベクトル化に適しているといえる。このときのベクトル化の方向は、アドレスの連続する方向、つまり列方向となり、メモリに対するアクセスは連続アクセスとなる。
【0030】
図3は、行データに対するウェーブレット変換の後の行列データを示している。図3の各列データに対する部分ウェーブレット変換も、同様にして並列化することができるが、ベクトル化の方向は行方向となり、連続アクセスが行えない。このため、バンクコンフリクト(バンク競合)が発生し、処理速度が著しく低下する。
【0031】
そこで、行データに対するウェーブレット変換を行った後、列データに対するウェーブレット変換を行う代わりに、行列全体を転置して、転置後の行データに対するウェーブレット変換を行うことにする。これにより、転置前の各列データは互いに異なるバンクに行データとして格納され、ベクトル化の方向は列方向となって、連続アクセスが可能になる。
【0032】
また、行列を転置するとき、その対角方向のデータに着目してベクトル化することで、バンクコンフリクトを避けて転置を行うことができる。こうして、高速な2次元ウェーブレット変換が実現される。
【0033】
図4は、本実施形態で用いるベクトル計算機の構成図である。図4のベクトル計算機は、ベクトルユニット11、スカラユニット12、メモリ13、メモリ制御ユニット14、IOポート15、およびネットワーク接続ユニット16を備え、それらはバスにより互いに接続されている。また、IOポート15には、入力装置17、出力装置18、外部記憶装置19、および媒体駆動装置20が接続される。
【0034】
メモリ13には、ウェーブレット変換の処理に用いられるプログラムとデータが格納される。メモリ12は、例えばROM(read only memory)、RAM(random access memory)等を含む。
【0035】
メモリ制御ユニット14は、ベクトルユニット11、スカラユニット12、およびネットワーク接続ユニット16から発生するアクセス要求を受け取り、メモリ13に対するアクセスを制御する。ベクトルユニット11とスカラユニット12は、メモリ13を利用してプログラムを実行することにより、必要な処理を行う。
【0036】
ベクトルユニット11は、ロードパイプライン31、ストアパイプライン32、ベクトルレジスタ33、加算/論理演算パイプライン34、および乗算パイプライン35を含む。これらの各パイプラインは、それぞれ複数要素のデータを同時に処理することができる。ベクトルユニット11は、これらのパイプラインを用いて複数のベクトル命令を並列に実行することができる。
【0037】
スカラユニット12は、キャッシュメモリ、汎用レジスタ、浮動小数点レジスタ、スカラ演算器等を含み、スカラ演算を実行する。
IOポート15は、入力装置17、出力装置18、外部記憶装置19、および媒体駆動装置20との間で、入出力データの転送を行う。
【0038】
入力装置17は、例えば、キーボード、ポインティングデバイス、タッチパネル等であり、オペレータからの指示やデータの入力に用いられる。出力装置18は、例えば、ディスプレイやプリンタ等であり、処理結果等の出力に用いられる。
【0039】
外部記憶装置19は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク(magneto-optical disk)装置等である。この外部記憶装置19に、上述のプログラムとデータを保存しておき、必要に応じて、それらをメモリ13にロードして使用することもできる。
【0040】
媒体駆動装置20は、可搬記録媒体21を駆動し、その記録内容にアクセスする。可搬記録媒体21としては、メモリカード、フロッピーディスク、CD−ROM(compact disk read only memory )、光ディスク、光磁気ディスク等、任意のコンピュータ読み取り可能な記録媒体が用いられる。この可搬記録媒体21に上述のプログラムとデータを格納しておき、必要に応じて、それらをメモリ13にロードして使用することもできる。
【0041】
ネットワーク接続ユニット16は、LAN(local area network)等の任意のネットワーク(回線)を介して外部の装置と通信し、通信に伴うデータ変換を行う。これにより、必要に応じて、上述のプログラムとデータを外部の装置から受け取り、それらをメモリ13にロードして使用することができる。
【0042】
図5は、図4のベクトル計算機にプログラムとデータを供給することのできるコンピュータ読み取り可能な記録媒体を示している。可搬記録媒体21や外部のデータベース36に保存されたプログラムとデータは、メモリ13にロードされる。そして、ベクトルユニット11とスカラユニット12は、そのデータを用いてそのプログラムを実行し、必要な処理を行う。
【0043】
図6は、図4のベクトル計算機による2次元データのウェーブレット変換のフローチャートである。ベクトル計算機は、まず、行ベクトルに対するウェーブレット変換を列の長さに着目してベクトル化し(ステップS1)、各行ベクトルのウェーブレット変換を並列に行う(ステップS2)。このとき、各行ベクトルの変換結果は対応する元の行ベクトルに格納される。
【0044】
次に、得られた行列データを転置して(ステップS3)、転置後の行列の行ベクトルに対するウェーブレット変換を列の長さに着目してベクトル化する(ステップS4)。そして、各行ベクトルのウェーブレット変換を並列に行って(ステップS5)、処理を終了する。転置後の行列の行ベクトルと列ベクトルは、それぞれ、転置前の行列の列ベクトルと行ベクトルに対応しているので、ステップS5の処理は、転置前の行列の列ベクトルに対するウェーブレット変換に対応する。
【0045】
図7および図8のフローチャートは、図6のステップS2で行われる行ベクトルの変換処理を示している。ここでは、N行M列の2次元データに対してウェーブレット変換を行うものとし、メモリ13に2つの2次元配列A(N,M)とB(N,M)を用意する。
【0046】
変換対象となる入力データはA(N,M)に格納し、その行ベクトルに対するウェーブレット変換を行うとき、B(N,M)をN行M列の作業領域として利用する。このウェーブレット変換において繰り返される部分ウェーブレット変換の出力は、A(N,M)とB(N,M)に交互に格納される。
【0047】
NとMが、N=2p とM=2q のように、2の巾で表現できるものとすると、ここでは、長さM=2q の各行ベクトルデータに対して部分ウェーブレット変換をq回行うことになる。そして、各部分ウェーブレット変換の高周波成分と最後の部分ウェーブレット変換の平滑成分を、変換結果として生成する。
【0048】
今、入力データのj行目(j=1,...,2p )の行ベクトルをs(j) q =(s(j) q,0 ,s(j) q,1 ,...,s(j) q,M-1 )と書くことにすると、行ベクトルs(j) q の長さはM=2q となる。図9は、N=2p 個の行ベクトルs(j) q がA(N,M)に格納された様子を示している。例えば、各行ベクトルs(j) q は、それぞれ異なるメモリバンクに格納される。
【0049】
最初の部分ウェーブレット変換は、各行ベクトルの2q 個の平滑成分を入力として、2q /2=2q-1 個の平滑成分と2q-1 個の高周波成分を出力する。次の部分ウェーブレット変換は、1つ前の部分ウェーブレット変換の出力である2q-1 個の平滑成分を入力として、2q-1 /2=2q-2 個の平滑成分と2q-2 個の高周波成分を出力する。このような処理を続けていき、最後の部分ウェーブレット変換は、2個の平滑成分を入力として、1個の平滑成分と1個の高周波成分を出力し、処理を終了する。
【0050】
ベクトル計算機は、図7の処理を開始すると、まず、部分ウェーブレット変換の繰り返し回数を表す制御変数nを1とおき(ステップS11)、配列A(N,M)に格納されたデータを入力として、n回目の部分ウェーブレット変換を行う(ステップS12)。
【0051】
n回目の部分ウェーブレット変換は、配列A(N,M)の各行A(j,1:2q+1-n )に格納された長さ2q+1-n の平滑成分のベクトルs(j) q+1-n を入力として、長さ2q+1-(n+1) =2q-n の平滑成分のベクトルs(j) q-n と長さ2q-n の高周波成分のベクトルd(j) q-n を出力する。この変換は、列の長さN=2p をベクトル長として、j=1,...,2p についてベクトル処理される。
【0052】
ベクトルs(j) q+1-n は2q+1-n 個の平滑成分s(j) q+1-n,k (k=0,...,2q+1-n −1)から成り、ベクトルs(j) q-n は2q-n 個の平滑成分s(j) q-n,k (k=0,...,2q-n −1)から成り、ベクトルd(j) q-n は2q-n 個の高周波成分d(j) q-n,k (k=0,...,2q-n −1)から成る。
【0053】
そして、得られた平滑成分のベクトルs(j) q-n と高周波成分のベクトルd(j) q-n は、それぞれ、配列B(N,M)のB(j,1:2q-n )とB(j,2q-n +1:2q+1-n )に格納される(ステップS13)。
【0054】
図10は、n回目の部分ウェーブレット変換の前の配列A(N,M)を示しており、図11は、その変換の後の配列B(N,M)を示している。これらの配列は、図示されたn回目の部分ウェーブレット変換の入出力データ以外に、1〜n−1回目の部分ウェーブレット変換で得られた高周波成分のベクトルd(j) q-1 ,d(j) q-2 ,...,d(j) q-(n-1) も保持している。
【0055】
このn回目の部分ウェーブレット変換は、(1)、(2)式に準じて次のように記述される。
【0056】
【数4】
Figure 0003943224
【0057】
ここで、ウェーブレット係数の次数をDとすると、i−2k<0またはi−2k>D−1の場合はhi-2k=0とみなし、1−i+2k<0または1−i+2k>D−1の場合はh1-i+2k=0とみなす。
【0058】
次に、ベクトル計算機は、B(j,2q-n +1:2q+1-n )に格納された変換結果のベクトルd(j) q-n をA(j,2q-n +1:2q+1-n )にコピーし(ステップS14)、nをqと比較する(ステップS15)。nがqに達していないときは、n=n+1とおき(図8、ステップS17)、配列B(N,M)に格納されたデータを入力として、n回目の部分ウェーブレット変換(次の部分ウェーブレット変換)を行う(ステップS18)。この変換も、ステップS12と同様に、ベクトル処理される。
【0059】
次に、得られた平滑成分のベクトルs(j) q-n と高周波成分のベクトルd(j) q-n を、それぞれ、配列A(N,M)のA(j,1:2q-n )とA(j,2q-n +1:2q+1-n )に格納し(ステップS19)、nをqと比較する(ステップS20)。nがqに達していないときは、n=n+1とおき(ステップS21)、図7のステップS12以降の処理を繰り返す。
【0060】
そして、ステップS15においてn=qになったときは、配列B(N,M)の1列目のB(j,1)に格納された変換結果s(j) 0,0 を、A(j,1)にコピーし(ステップS16)、処理を終了する。これにより、行ベクトルに対するウェーブレット変換の結果がすべて配列A(N,M)に格納されることになる。また、ステップS20においてn=qになったときは、すべての変換結果が既に配列A(N,M)に格納されているので、そのまま処理を終了する。
【0061】
このような処理では、qが奇数のとき、ステップS15においてn=qとなり、qが偶数のとき、ステップS20においてn=qとなる。こうして、行ベクトルに対するウェーブレット変換が終了すると、その変換結果は、図12に示すように、配列A(N,M)に格納される。
【0062】
次に、得られた変換結果の行列の列ベクトルに対してウェーブレット変換を行うわけであるが、仮に、行列の転置を行わずに、複数の列ベクトルに対するウェーブレット変換をベクトル処理するものと仮定してみる。この場合、入力データは、N=2p 、M=2q となるN行M列の配列A(N,M)に、図13に示すように格納されている。ここで、AIJはI行J列の要素A(I,J)を表し、ベクトル化の方向は行方向となる。
【0063】
図13において、アドレスの連続方向は列方向であるので、各列ベクトルの先頭要素A11,A12,A13,...は、メモリ上に長さ2p の間隔を持って配置される。2p がメモリバンクの数に比べてかなり小さい場合は、隣り合う2つの列ベクトルを異なるバンクに格納することも可能であるが、pが大きくなると、これらの列ベクトルの要素A11,A12,A13,...は、同一のメモリバンクに格納されてしまう。このため、行方向の要素のベクトルアクセス(ロード/ストア)は、バンクコンフリクトのために、著しく性能が劣化する。
【0064】
これを避けるために、図6のステップS3において変換結果の行列を転置している。このとき、同様のバンクコンフリクトの発生を避けるため、図14の破線の矢印が示すように、対角方向の要素に着目してベクトルアクセスする。図14において、対角方向の要素A13,A24,A35,...の読み出しは、メモリ上で2p +1の間隔でのアクセスになる。したがって、これらをベクトル処理によりロードしても、バンクコンフリクトが起こらず、効率のよいベクトル処理が可能になる。
【0065】
読み出した要素をM行N列の配列B(M,N)に格納するときも、図15の破線の矢印が示すように、対角方向のベクトルアクセスが行われる。図15において、対角方向の要素A13,A24,A35,...の書き込みは、メモリ上で2q +1の間隔でのアクセスになる。したがって、これらをベクトル処理によりストアしても、バンクコンフリクトが起こらず、効率のよいベクトル処理が可能になる。
【0066】
図16は、このような転置処理のフローチャートである。この処理では、配列A(N,M)を転置して配列B(M,N)に格納するものとする。ベクトル計算機は、まず、対角方向のベクトルを指定する制御変数iを1とおき(ステップS31)、A(i−1+j,j)をB(j,i−1+j)にコピーする(ステップS32)。この処理は、対角方向のベクトルに着目して、j=1,...,MIN(N+1−i,M)についてベクトル処理される。ここで、MIN(N+1−i,M)は、N+1−iとMの最小値を表し、ベクトル長に対応している。
【0067】
次に、i=i+1とおき(ステップS33)、iをNと比較する(ステップS34)。iがNを越えていなければ、ステップS32以降の処理を繰り返す。例えば、i=1のときは、配列A(N,M)の対角線上の要素A11,A22,A33,...が配列B(M,N)の対角線上の要素B11,B22,B33,...にコピーされ、i=2,...,Nのとき、配列A(N,M)の対角線より下の部分が転置されて、配列B(M,N)の対角線より上の部分にコピーされる。
【0068】
ステップS34においてiがNを越えれば、次に、iを2とおき(ステップS35)、A(j,i−1+j)をB(i−1+j,j)にコピーする(ステップS36)。この処理は、対角方向のベクトルに着目して、j=1,...,MIN(M+1−i,N)についてベクトル処理される。
【0069】
次に、i=i+1とおき(ステップS37)、iをMと比較する(ステップS38)。iがMを越えていなければ、ステップS36以降の処理を繰り返し、iがMを越えれば、処理を終了する。ステップS36の処理をi=2,...,Mについて繰り返すことで、配列A(N,M)の対角線より上の部分が転置されて、配列B(M,N)の対角線より下の部分にコピーされる。例えば、i=3のとき、図14の破線が示す対角方向の要素A13,A24,A35,...が、図15に示すように、配列B(M,N)の対角方向の要素B31,B42,B53,...にコピーされる。
【0070】
行列の転置が終了すると、図6のステップS4、S5においては、配列AとBの役割を入れ替えて、ステップS1、S2と同様の処理を行う。ここでは、変換対象となる入力データはB(M,N)に格納されており、その行ベクトルに対するウェーブレット変換を行うとき、A(M,N)をM行N列の作業領域として利用する。このウェーブレット変換において繰り返される部分ウェーブレット変換の出力は、A(M,N)とB(M,N)に交互に格納される。
【0071】
このように、配列A(M,N)、B(M,N)を用い、図7、8においてNとMを入れ替えて(つまり、pとqを入れ替えて)、同様の処理を行うことで、転置された配列の行ベクトルについてウェーブレット変換を行うことができる。この変換は、転置前の配列の列ベクトルに対するウェーブレット変換に対応しており、得られた変換結果は、2次元ウェーブレット変換の結果を転置したものに相当する。
【0072】
図6のアルゴリズムにおいては、2次元配列を行列とみなして、配列の要素が並ぶ方向を行または列と表現しているが、2次元配列を単に2つの次元を持つ配列として定義する場合は、要素の並ぶ方向を第1次元または第2次元と呼ぶことができる。この場合、図6のアルゴリズムは、行を第1次元に置き換え、列を第2次元に置き換えて記述される。
【0073】
以上説明した実施形態においては、2次元データに対するウェーブレット変換について説明したが、同様のアルゴリズムを用いることで、複数の1次元データに対するウェーブレット変換を効率化することができる。
【0074】
例えば、コンパイラによるプログラムの最適化において、1次元データのウェーブレット変換が複数含まれることが分かったとき、それらの1次元データを行ベクトルとする2次元配列を生成する。そして、図6のステップS1、S2の処理を行えば、複数の1次元データのウェーブレット変換を、効率よくベクトル処理することができる。
【0075】
また、3次元以上の多次元のデータについても、ベクトル化の方向をメモリ上でアドレスが連続する方向に揃えてから、各次元のウェーブレット変換を行うことで、同様のベクトル処理の効果が得られるものと考えられる。
【0076】
さらに、本発明は複数のプロセッシングエレメント(PE)を有する並列計算機によるウェーブレット変換にも適用可能である。並列計算機においては、変換対象の配列データを複数のPEに分割して格納し、必要に応じてPE間でデータ転送を行いながら、ウェーブレット変換を行う。
【0077】
【発明の効果】
本発明によれば、2次元配列に格納された2次元データまたは複数の1次元データのウェーブレット変換を、ベクトル処理を利用して高速に行うことができる。
【図面の簡単な説明】
【図1】本発明の処理装置の原理図である。
【図2】行データを示す図である。
【図3】列データを示す図である。
【図4】ベクトル計算機の構成図である。
【図5】記録媒体を示す図である。
【図6】2次元ウェーブレット変換のフローチャートである。
【図7】行ベクトルの変換のフローチャート(その1)である。
【図8】行ベクトルの変換のフローチャート(その2)である。
【図9】第1の行列データを示す図である。
【図10】第2の行列データを示す図である。
【図11】第3の行列データを示す図である。
【図12】第4の行列データを示す図である。
【図13】第5の行列データを示す図である。
【図14】第6の行列データを示す図である。
【図15】第7の行列データを示す図である。
【図16】行列の転置のフローチャートである。
【図17】部分ウェーブレット変換を示す図である。
【図18】ウェーブレット変換を示す図である。
【図19】部分ウェーブレット変換の繰り返しを示す図である。
【符号の説明】
1 第1の格納手段
2 第1のベクトル処理手段
3 第2の格納手段
4 第2のベクトル処理手段
5 出力手段
11 ベクトルユニット
12 スカラユニット
13 メモリ
14 メモリ制御ユニット
15 IOポート
16 ネットワーク接続ユニット
17 入力装置
18 出力装置
19 外部記憶装置
20 媒体駆動装置
21 可搬記録媒体
31 ロードパイプライン
32 ストアパイプライン
33 ベクトルレジスタ
34 加算/論理演算パイプライン
35 乗算パイプライン
36 データベース

Claims (18)

  1. 第1次元と第2次元から成る2次元配列のデータを格納する第1の格納手段と、
    前記2次元配列における第1次元に対するウェーブレット変換のベクトル処理を行う第1のベクトル処理手段と、
    前記第1次元に対するウェーブレット変換の結果を格納する第2の格納手段と、
    前記第1次元に対するウェーブレット変換の結果を転置する転置手段と、
    転置結果を格納する第3の格納手段と、
    前記転置結果における第1次元に対するウェーブレット変換を行うことで、前記第1次元に対するウェーブレット変換の結果における第2次元に対するウェーブレット変換のベクトル処理を行う第2のベクトル処理手段と、
    前記第2次元に対するウェーブレット変換の結果を出力する出力手段と
    を備えることを特徴とする処理装置。
  2. 前記転置手段は、前記第1次元に対するウェーブレット変換の結果の対角方向のデータをベクトル化して、ベクトル処理により転置を行うことを特徴とする請求項記載の処理装置。
  3. 前記第1のベクトル処理手段は、前記2次元配列における第2次元の方向のデータをベクトル化して、前記第1次元に対するウェーブレット変換を行い、前記第2のベクトル処理手段は、前記転置結果における第2次元の方向のデータをベクトル化して、該転置結果における第1次元に対するウェーブレット変換を行うことを特徴とする請求項1または2記載の処理装置。
  4. 前記第1のベクトル処理手段は、部分ウェーブレット変換を繰り返して、前記第1次元に対するウェーブレット変換を行い、前記第2のベクトル処理手段は、
    部分ウェーブレット変換を繰り返して、前記転置結果における第1次元に対するウェーブレット変換を行うことを特徴とする請求項記載の処理装置。
  5. 前記第1のベクトル処理手段は、前記2次元配列における第2次元の方向のデータをベクトル化して、前記第1次元に対するウェーブレット変換を行うことを特徴とする請求項1または2記載の処理装置。
  6. 前記第2のベクトル処理手段は、前記第1次元に対するウェーブレット変換の結果における第1次元の方向のデータをベクトル化して、前記第2次元に対するウェーブレット変換を行うことを特徴とする請求項1または2記載の処理装置。
  7. 前記第1のベクトル処理手段は、前記2次元配列における第2次元の方向のデータをベクトル化して、前記第1次元に対するウェーブレット変換を行い、前記第2のベクトル処理手段は、該第1次元に対するウェーブレット変換の結果における第1次元の方向のデータをベクトル化して、前記第2次元に対するウェーブレット変換を行うことを特徴とする請求項1または2記載の処理装置。
  8. 多次元配列のデータを格納する第1の格納手段と、
    前記多次元配列における1つの次元に対するウェーブレット変換のベクトル処理を行うベクトル処理手段と、
    前記1つの次元に対するウェーブレット変換の結果を格納する第2の格納手段と、
    前記1つの次元に対するウェーブレット変換の結果を転置する転置手段と、
    転置結果を格納する第3の格納手段と、
    前記転置結果における前記1つの次元に対するウェーブレット変換を行うことで、前記1つの次元に対するウェーブレット変換の結果における他の次元に対するウェーブレット変換のベクトル処理を行う第2のベクトル処理手段と、
    前記他の次元に対するウェーブレット変換の結果に基づく前記多次元配列のウェーブレット変換の結果を出力する出力手段と
    を備えることを特徴とする処理装置。
  9. 行列データを格納する第1の格納手段と、
    前記行列データの行に対するウェーブレット変換を行う第1の処理手段と、
    前記行に対するウェーブレット変換の結果を転置して、転置行列データを生成する転置手段と、
    前記転置行列データの行に対するウェーブレット変換を行う第2の処理手段と、
    前記転置行列データの行に対するウェーブレット変換の結果を出力する出力手段と
    を備えることを特徴とする処理装置。
  10. コンピュータのためのプログラムを記録した記録媒体であって、
    第1次元と第2次元から成る2次元配列のデータを入力する機能と、
    前記2次元配列における第1次元に対するウェーブレット変換のベクトル処理を行う機能と、
    前記第1次元に対するウェーブレット変換の結果を転置する機能と、
    前記転置結果における第1次元に対するウェーブレット変換を行うことで、前記第1次元に対するウェーブレット変換の結果における第2次元に対するウェーブレット変換のベクトル処理を行う機能と、
    前記第2次元に対するウェーブレット変換の結果を出力する機能と
    を前記コンピュータに実現させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
  11. コンピュータのためのプログラムを記録した記録媒体であって、
    行列データを入力する機能と、
    前記行列データの行に対するウェーブレット変換を行う機能と、
    前記行に対するウェーブレット変換の結果を転置して、転置行列データを生成する機能と、
    前記転置行列データの行に対するウェーブレット変換を行う機能と、
    前記転置行列データの行に対するウェーブレット変換の結果を出力する機能とを前記コンピュータに実現させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
  12. ベクトル計算機を用いて、第1次元と第2次元から成る2次元配列のデータにおける第1次元に対するウェーブレット変換のベクトル処理を行い、
    ベクトル計算機を用いて、前記第1次元に対するウェーブレット変換の結果を転置する処理を行い、
    ベクトル計算機を用いて、転置結果における第1次元に対するウェーブレット変換を行うことで、前記第1次元に対するウェーブレット変換の結果における第2次元に対するウェーブレット変換のベクトル処理を行う
    ことを特徴とする処理方法。
  13. ベクトル計算機を用いて、行列データの行に対するウェーブレット変換のベクトル処理を行い、
    前記行に対するウェーブレット変換の結果を転置して、転置行列データを生成し、
    ベクトル計算機を用いて、前記転置行列データの行に対するウェーブレット変換のベクトル処理を行う
    ことを特徴とする処理方法。
  14. 前記転置手段は、前記行列データの行に対するウェーブレット変換の結果の対角方向のデータをベクトル化して、ベクトル処理により転置を行うことを特徴とする請求項記載の処理装置。
  15. 前記転置する機能は、前記第1次元に対するウェーブレット変換の結果の対角方向のデータをベクトル化して、ベクトル処理により転置を行うことを特徴とする請求項10記載のコンピュータ読み取り可能な記録媒体。
  16. 前記転置行列データを生成する機能は、前記行列データの行に対するウェーブレット変換の結果の対角方向のデータをベクトル化して、ベクトル処理により転置を行うことを特徴とする請求項11記載のコンピュータ読み取り可能な記録媒体。
  17. 前記転置する処理は、前記第1次元に対するウェーブレット変換の結果の対角方向のデータをベクトル化して、ベクトル処理により転置を行うことを特徴とする請求項12記載の処理方法。
  18. 前記行に対するウェーブレット変換の結果の転置において、前記行列データの行に対するウェーブレット変換の結果の対角方向のデータをベクトル化して、ベクトル処理により転置を行うことを特徴とする請求項13記載の処理方法。
JP02840698A 1998-02-10 1998-02-10 ウェーブレット変換のベクトル処理を行う処理装置および方法 Expired - Fee Related JP3943224B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP02840698A JP3943224B2 (ja) 1998-02-10 1998-02-10 ウェーブレット変換のベクトル処理を行う処理装置および方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP02840698A JP3943224B2 (ja) 1998-02-10 1998-02-10 ウェーブレット変換のベクトル処理を行う処理装置および方法

Publications (2)

Publication Number Publication Date
JPH11232251A JPH11232251A (ja) 1999-08-27
JP3943224B2 true JP3943224B2 (ja) 2007-07-11

Family

ID=12247788

Family Applications (1)

Application Number Title Priority Date Filing Date
JP02840698A Expired - Fee Related JP3943224B2 (ja) 1998-02-10 1998-02-10 ウェーブレット変換のベクトル処理を行う処理装置および方法

Country Status (1)

Country Link
JP (1) JP3943224B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6171640B2 (ja) * 2013-07-10 2017-08-02 日本電気株式会社 データ変換装置、データ変換回路及びデータ変換方法

Also Published As

Publication number Publication date
JPH11232251A (ja) 1999-08-27

Similar Documents

Publication Publication Date Title
US7337205B2 (en) Matrix multiplication in a vector processing system
US4977533A (en) Method for operating an FFT processor
US4821224A (en) Method and apparatus for processing multi-dimensional data to obtain a Fourier transform
US8880575B2 (en) Fast fourier transform using a small capacity memory
US7761495B2 (en) Fourier transform processor
KR101222597B1 (ko) 메모리의 판독 및 기록방법, 메모리 제어방법과, 그것을이용한 연산장치
JPH09153029A (ja) 高速フーリエ変換を行うメモリ分散型並列計算機およびその方法
US6993547B2 (en) Address generator for fast fourier transform processor
JP2002351858A (ja) 処理装置
JP7401513B2 (ja) ハードウェアにおけるスパース行列乗算
JP3639207B2 (ja) 共有メモリ型スカラ並列計算機における多次元フーリエ変換の並列処理方法
Swarztrauber et al. Vector and parallel methods for the direct solution of Poisson's equation
KR102376492B1 (ko) 실수값을 입력으로 하는 고속푸리에 변환장치 및 방법
Li et al. A comment on “quantum image processing?”
US6728742B1 (en) Data storage patterns for fast fourier transforms
JP3943224B2 (ja) ウェーブレット変換のベクトル処理を行う処理装置および方法
WO2023045516A1 (zh) 执行fft的方法、装置及设备
JP6992745B2 (ja) デジタルフィルタ装置、デジタルフィルタ処理方法およびデジタルフィルタ処理プログラム
JP7251354B2 (ja) 情報処理装置、情報処理プログラム、及び情報処理方法
Li et al. Synthesizing efficient out-of-core programs for block recursive algorithms using block-cyclic data distributions
JP6943283B2 (ja) 高速フーリエ変換装置、データ並べ替え処理装置、高速フーリエ変換処理方法およびプログラム
Anguh et al. A truncation method for computing slant transforms with applications to image processing
JPH09212489A (ja) 対称行列の固有値問題を解く並列処理装置および方法
JP3709291B2 (ja) 高速複素フーリエ変換方法及び装置
Du Pont et al. Hardware Acceleration of the Prime-Factor and Rader NTT for BGV Fully Homomorphic Encryption

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051101

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051108

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060516

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060714

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: 20070403

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070405

R150 Certificate of patent (=grant) or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110413

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110413

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120413

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130413

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20140413

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees