(57)【特許請求の範囲】
【請求項１】
画像データを、リフティング格子構造の複数の演算ユニットを用いて、ウェーブレット変換するためのフィルタ装置であって、
ウェーブレット変換対象の画像データの水平、又は、垂直方向のいずれか一方の第１の方向をＹ軸、当該第１の方向に直交する第２の方向をＸ軸とし、前記Ｘ座標の画素位置ｘ、Ｙ座標の画素位置ｙの画素データをＰx,yと定義し、前記画像データ中の、同じＹ座標位置の画素データの並びを行と定義したとき、
第ｉ処理サイクル（ｉ＝０，１，２，…）で、前記第１の方向に隣り合う２つの画素データの組｛Ｐx+i,y，Ｐx+i,y+1｝を入力し、１行前に入力した画素データＰx+i,y-1と、少なくとも当該画素データＰx+i,y-1に基づいて演算した前記演算ユニットの演算結果とを用いて、入力した組｛Ｐx+i,y，Ｐx+i,y+1｝から、１つの低周波変換係数Ｌiと、１つの高周波変換係数Ｈiとを出力する第１の方向のウェーブレット変換手段と、
前記第１の方向のウェーブレット変換手段の２処理サイクル分で生成された周波数変換係数Ｌi，Ｈi及びＬi+1，Ｈi+1を入力する毎に、当該４つの周波数変換係数を並べ替え、低周波変換係数の組｛Ｌi，Ｌi+1｝と、高周波変換係数の組｛Ｈi，Ｈi+1｝をそれぞれを１処理サイクル単位に出力する並び替え手段と、
前記並び替え手段から低周波変換係数の組｛Ｌi，Ｌi+1｝を入力した１処理サイクルでは、１行前に入力した低周波変換係数Ｌi-1と、少なくとも当該低周波変換係数Ｌi-1に基づいて演算した前記演算ユニットの演算結果とを用いて、入力した組｛Ｌi,Ｌi+1｝から、１つの低低周波変換係数ＬＬと、１つの低高周波変換係数ＬＨとを出力し、前記並び替え手段から高周波変換係数の組｛Ｈi，Ｈi+1｝を入力した１処理サイクルでは、１行前に入力した高周波変換係数Ｈi-1と、少なくとも当該高周波変換係数Ｈi-1に基づいて演算した前記演算ユニットの演算結果とを用いて、入力した組｛Ｈi,Ｈi+1｝から、１つの高低周波変換係数ＨＬと、１つの高高周波変換係数ＨＨとを出力する第２の方向ウェーブレット変換手段と
を備えることを特徴とするフィルタ処理装置。
【請求項２】
前記第２の方向のウェーブレット変換手段は、ＦＩＲフィルタであることを特徴とする請求項１に記載のフィルタ処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はフィルタ処理装置に関し、更に詳しくは、画像データをウェーブレット変換したり、ウェーブレット変換係数を画像データに逆変換する等のフィルタ処理装置に関する。
【０００２】
【従来の技術】
画像、特に多値画像は非常に多くの情報を含んでおり、その画像を蓄積・伝送する際にはデータ量が膨大であるという問題がある。このため画像の蓄積・伝送に際しては、画像の持つ冗長性を除く、或いは画質の劣化が視覚的に認識し難い程度で、画像の内容を変更することによってデータ量を削減する高能率符号化が用いられる。
【０００３】
例えば、静止画像の国際標準符号化方式としてＩＳＯとＩＴＵ−Ｔにより勧告されたＪＰＥＧでは、画像データをブロック（８画素×８画素）ごとに離散コサイン変換（ＤＣＴ）して、ＤＣＴ係数に変換した後に、各係数を各々量子化し、さらにエントロピー符号化することにより画像データを圧縮している。しかしこの方式では、ブロックごとにＤＣＴ、量子化を行なっているため、復号画像の各ブロックの境界で、所謂ブロック歪みが現れる場合がある。
【０００４】
一方、新しい静止画像の国際標準符号化方式としてＪＰＥＧ２０００が検討されているが、ＪＰＥＧ２０００では、量子化の前に行う変換処理として、ウェーブレット変換が提案されている。ウェーブレット変換は、現行ＪＰＥＧのようにブロック単位で処理を行うのではなく、入力データを連続的に処理するので、復号画像の劣化を視覚的に分かりにくくできるといった特徴がある。
【０００５】
ＪＰＥＧ２０００で使われているウェーブレット変換では、リフティング機構と呼ばれる方法で処理をすることで、少ない演算量で効率良く変換処理を行うことができる。
【０００６】
図１２に順方向のリフティング機構、図１３に逆方向のリフティング機構におけるシグナルフローを表わす図を示す。図の中のα、β、γ、δはリフティング係数と呼ばれるものである。
【０００７】
まず、図１２に示すリフティング機構の動作について説明する。
【０００８】
入力画素を、入力される順にＸ0、Ｘ1、Ｘ2、Ｘ3、Ｘ4、Ｘ5、… のように順に表わす。該入力画素は、分類ユニット２０１にて、偶数画素系列と奇数画素系列とに分類され、分類ユニット２０１の一方の出力端子（図１２では上側）からは添字が偶数の画素Ｘ0、Ｘ2、Ｘ4、…（すなわちＸ2n）が、もう一方の出力端子（図１２では下側）からは添字が奇数の画素 Ｘ1、Ｘ3、Ｘ5、…（すなわちＸ2n+1）が出力される。
【０００９】
初段のリフティング 処理では、偶数画素系列に対しリフティング係数αを乗し、連続する２個の偶数画素の乗算結果を、該２画素の中央に位置する奇数画素系列中の画素に加算する。
【００１０】
これを一般化した式で表現すると、以下のようになる。
【００１１】
Ｄ2n+1 ＝ Ｘ2n+1 ＋ α・Ｘ2n＋ α・Ｘ2n+2          …（１）
２段目のリフティング処理では、新たに得られた奇数画素系列 Ｄ1、Ｄ3、Ｄ5、…に対しリフティング係数βを乗算し、連続する２個の奇数画素の乗算結果を、該２画素の中央に位置する偶数画素系列中の画素に加算する。
【００１２】
これを一般化した式で表現すると、以下のようになる。
【００１３】
Ｅ2n+2 ＝ Ｘ2n+2＋ β・Ｄ2n+1＋ β・Ｄ2n+3        …（２）
３段目のリフティング 処理では、リフティング係数γを用いて初段と同様に、また、４段目のリフティング処理では、リフティング係数δを用いて２段目と同様に処理する。３段、４段目のリフティング処理内容を表わす式は、それぞれ下記のようになる。
【００１４】
Ｈ2n+1 ＝ Ｄ2n+1 ＋ γ・Ｅ2n   ＋ γ・Ｅ2n+2          …（３）
Ｌ2n+2 ＝ Ｅ2n+2 ＋ δ・Ｈ2n+1 ＋ δ・Ｈ2n+3          …（４）
また、図１２中、Ｋはウェーブレット係数を正規化するものであるが、本発明の本質を説明するにあたって特に関係ないことであるので、ここでは説明を省略する。
【００１５】
正規化処理を無視すれば、３段、４段目のリフティング処理によって得られる、Ｈn、Ｌn は各々高域変換係数と低域変換係数に対応する。
【００１６】
次に、図１３に示す逆方向のリフティング機構のシグナルフローについて簡単に説明する。まず始めに、順方向のリフティング機構における正規化処理に対応して、逆の係数を掛けた後、４段のリフティング処理を行う。各段の処理内容を以下にまとめて式で表わす。
【００１７】
（１段目）  Ｅ2n+2 ＝ Ｌ2n+2 − δ・Ｈ2n+1 − δ・Ｈ2n+3      …（５）
（２段目）  Ｄ2n+1 ＝ Ｈ2n+1 − γ・Ｅ2n   − γ・Ｅ2n+2      …（６）
（３段目）  Ｘ2n+2 ＝ Ｅ2n+2 − β・Ｄ2n+1 − β・Ｄ2n+3      …（７）
（４段目）  Ｘ2n+1 ＝ Ｄ2n+1 − α・Ｘ2n   − α・Ｘ2n+2      （８）
上記（５）（６）（７）（８）式は、各々（４）（３）（２）（１）式を移項することにより得られるものである。
【００１８】
図１２及び図１３に示すリフティング機構を別の視点から表現したものが、図１４及び図１５に示すリフティング格子構造である。同図において、□は入力データを、〇は格子点（あるいは格子点データ演算器）を表わし、〇から出ている矢印は格子点データの流れを示す。これらの図はリフティング機構における基本処理（前記（１）〜（８）式の処理）並びに該処理によって得られる新たなデータを１つの格子点に対応させたものである。
【００１９】
図１４に示す順方向のリフティング格子構造では、１つの格子点データは前記（１）〜（４）式のいずれかを用いて計算される。
【００２０】
図１５に示す逆方向のリフティング格子構造では、１つの格子点データは前記（５）〜（８）式のいずれかにより計算される。
【００２１】
普通のフィルタは、データが１つ入力されるごとに１つの出力が計算されるが、図１４のリフティング格子構造から解かるように、リフティング演算処理では、新たなデータが２つ用意されてはじめて、２つのデータ出力が可能になる。
【００２２】
例えば、Ｘ8までの入力データでは、出力データとして Ｌ4、Ｈ5 まで演算できるだけである。次に Ｘ9だけが新たに用意されても、新たに演算できる格子点データは何も無い。しかし、 Ｘ10 が用意されることにより、新たに Ｄ9、Ｅ8、Ｈ7、Ｌ6 が演算可能になる。更に、Ｘ11、Ｘ12 の２つの入力データが用意されて、はじめて出力データである Ｈ9、Ｌ8が演算可能になる。
【００２３】
このように、リフティング演算に基づくフィルタ処理では、新たな２つの入力データが用意されるごとに２つの出力（変換係数）が計算可能となる。図１５に示す逆変換処理においても同様に、２つの変換係数が用意されるごとに２つの復元データが計算可能になることがわかる。
【００２４】
また、垂直方向の逆変換処理に当てはめて見てみると、低域と高域の２種類の変換係数９ライン分を水平スキャン順序で入力することにより、２ライン分の復元データが水平スキャン順序で同時に計算され、出力される。
【００２５】
この点が、リフティング演算によるフィルタ処理（ウェーブレット変換）とそうでないフィルタ処理との大きな違いである。
【００２６】
上記のように、水平方向（又は垂直方向）のウェーブレット変換処理を行うウェーブレット変換部からペアで出力される低域と高域の変換係数は、それぞれ垂直方向（又は水平方向）のウェーブレット変換処理を行う次のウェーブレット変換部にて処理され、該２回の変換処理により水平・垂直方向の２次元ウェーブレット変換処理が行なわれる。
【００２７】
２次元ウェーブレット変換を行う処理部は、特開平１０−２８３３４２に示されているように、従来は図１６のように構成されていた。同図において、５０１は水平方向の１次元ＤＷＴ（Discrete Wavelet Transform）処理部（以下、「水平ＤＷＴ処理部」と呼ぶ。）、５０３及び５０５は垂直方向の１次元ＤＷＴ処理部（以下、垂直ＤＷＴ処理部」と呼ぶ。）、５１１及び５１３はバッファである。
【００２８】
水平ＤＷＴ処理部５０１は、水平方向に走査されたラスタースキャンデータを受け取って処理し、処理毎に水平方向の低域と高域の２つの変換係数を出力する。バッファ５１１、５１３は、前記水平ＤＷＴ処理部５０１から出力される低域と高域の変換係数を分けて、それぞれ１水平ライン分の変換係数を格納する。
【００２９】
一方、垂直ＤＷＴ処理部５０３及び５０５では、垂直方向の１次元ウェーブレット変換処理をした直後、その内部バッファに、該変換処理に用いた複数ライン分の変換係数が格納されている。変換処理が終了すると、この内２ライン分の変換係数は不要となり、新たな２ライン分の変換係数が水平ＤＷＴ処理部５０１及びバッファ５１１及び５１３から入力されると、次の垂直ウェーブレット変換処理が可能になる。そして、垂直ＤＷＴ処理部５０３及び５０５は、入力された新たなセットの変換係数を用いて演算処理を行い、垂直方向の低域と高域の２つの変換係数をそれぞれ出力する。
【００３０】
このように、水平と垂直の２種類のウェーブレット変換処理を施すことにより、垂直ＤＷＴ処理部５０３からは、ＬＬ（垂直‐低域、水平‐低域）、ＨＬ（垂直‐高域、水平‐低域）の２種類の変換係数が、垂直ＤＷＴ処理部５０５からは、ＬＨ（垂直‐低域、水平‐高域）、ＨＨ（垂直‐高域、水平‐高域）の２種類の変換係数が出力される。
【００３１】
図１６の構成では、水平ＤＷＴ処理部５０１は、毎サイクル２つのデータを入力すれば１００％の稼働率で動作させることが可能である。それに対し、２つ存在する垂直ＤＷＴ処理部５０３及び５０５は、それぞれバッファ５１１と５１３に次の水平１ライン分の変換係数を蓄えている間、何も処理せずに休止しており、さらに次の２ライン目の変換係数が水平ＤＷＴ処理部５０１から垂直ＤＷＴ処理部５０３及び５０５に入力する時に、バッファ５１１及び５１３に蓄えた変換係数を読み出すことで、２ライン分の変換係数を用いて垂直ウェーブレット変換処理を行う。
【００３２】
従って、２つの垂直ＤＷＴ処理部５０３及び５０５が動作する期間は、新たに垂直ＤＷＴ処理部５０３及び５０５に入力される２ライン変換係数の内、水平ＤＷＴ処理部５０１が２ライン目の変換係数を処理、出力している期間と同じである。つまり、２つの垂直ＤＷＴ処理部は各々５０％の稼働率で動作することになる。
【００３３】
【発明が解決しようとする課題】
上述したように、従来の２次元ウェーブレット変換処理では、水平方向と垂直方向の変換処理の内、後段に配置される変換処理部は２つ必要である。すなわち、同じ量の処理をするのに、前段では１つの変換処理部で済むが、後段では２つの変換処理部を用いるのでハードウェア資源を有効に活用することができず、回路規模が大きくなるという問題があった。
【００３４】
本発明は上記問題点を鑑みてなされたものであり、ハードウェア資源をより有効に活用し、より小さいハードウエア構成で２次元ウェーブレット変換処理装置を実現することを目的とする。
【００３５】
【課題を解決するための手段】
上記目的を達成するために、本発明のフィルタ処理装置は、以下の構成を備える。すなわち、
画像データを、リフティング格子構造の複数の演算ユニットを用いて、ウェーブレット変換するためのフィルタ装置であって、
ウェーブレット変換対象の画像データの水平、又は、垂直方向のいずれか一方の第１の方向をＹ軸、当該第１の方向に直交する第２の方向をＸ軸とし、前記Ｘ座標の画素位置ｘ、Ｙ座標の画素位置ｙの画素データをＰx,yと定義し、前記画像データ中の、同じＹ座標位置の画素データの並びを行と定義したとき、
第ｉ処理サイクル（ｉ＝０，１，２，…）で、前記第１の方向に隣り合う２つの画素データの組｛Ｐx+i,y，Ｐx+i,y+1｝を入力し、１行前に入力した画素データＰx+i,y-1と、少なくとも当該画素データＰx+i,y-1に基づいて演算した前記演算ユニットの演算結果とを用いて、入力した組｛Ｐx+i,y，Ｐx+i,y+1｝から、１つの低周波変換係数Ｌiと、１つの高周波変換係数Ｈiとを出力する第１の方向のウェーブレット変換手段と、
前記第１の方向のウェーブレット変換手段の２処理サイクル分で生成された周波数変換係数Ｌi，Ｈi及びＬi+1，Ｈi+1を入力する毎に、当該４つの周波数変換係数を並べ替え、低周波変換係数の組｛Ｌi，Ｌi+1｝と、高周波変換係数の組｛Ｈi，Ｈi+1｝をそれぞれを１処理サイクル単位に出力する並び替え手段と、
前記並び替え手段から低周波変換係数の組｛Ｌi，Ｌi+1｝を入力した１処理サイクルでは、１行前に入力した低周波変換係数Ｌi-1と、少なくとも当該低周波変換係数Ｌi-1に基づいて演算した前記演算ユニットの演算結果とを用いて、入力した組｛Ｌi,Ｌi+1｝から、１つの低低周波変換係数ＬＬと、１つの低高周波変換係数ＬＨとを出力し、前記並び替え手段から高周波変換係数の組｛Ｈi，Ｈi+1｝を入力した１処理サイクルでは、１行前に入力した高周波変換係数Ｈi-1と、少なくとも当該高周波変換係数Ｈi-1に基づいて演算した前記演算ユニットの演算結果とを用いて、入力した組｛Ｈi,Ｈi+1｝から、１つの高低周波変換係数ＨＬと、１つの高高周波変換係数ＨＨとを出力する第２の方向ウェーブレット変換手段とを備える。
【００４１】
また、本発明の好適な一態様によれば、前記第２の方向のウェーブレット変換手段は、ＦＩＲフィルタである。
【００５１】
【発明の実施の形態】
以下、添付図面を参照して本発明の好適な実施の形態を詳細に説明する。
【００５２】
図１は、図１４に示す各格子点における演算を行う格子点データ演算ユニットを示し、図２は、フィルタ処理のリフティング演算を行うための、図１に示す各格子点データ演算ユニットを多段接続した構成を示す。
【００５３】
図１において、６０１及び６０３は２つのデータを入力する端子、６０７は演算した格子点データを出力する端子、６２１は端子６０３からの入力データを格納するバッファ、６０９はバッファ６２１の出力データを外部へ出力する端子、６１１はバッファ６２１の出力データと端子６０３からの入力データを加算する加算器、６１３は、加算機６１１の加算結果に係数Ｃ（α, β, γ, δの内の１つ）を乗算する乗算器、６１５は演算に用いる３つのデータの中央に位置する入力データに、乗算器６１３の乗算結果を加算する加算器である。
【００５４】
まず、本発明の実施の形態における演算方式の概要を、図１４、図１及び図２を参照しながら簡単に説明する。なお、以下の説明においては、図１４の各格子点から出力されるデータも、格子点と同じ参照名で呼ぶ。
【００５５】
例えば、９個の入力データＸ0、Ｘ1、Ｘ2、Ｘ3、Ｘ4、Ｘ5、Ｘ6、Ｘ7、Ｘ8を処理する場合、１０個の格子点データ（Ｄ1、Ｄ3、Ｄ5、Ｄ7、Ｅ2、Ｅ4、Ｅ6、Ｈ3、Ｈ5、Ｌ4）を演算することにより、低域変換係数Ｌ4と高域変換係数Ｈ5を出力することができる。
【００５６】
次にＸ9、Ｘ10の２つのデータが新たに入力データとして加わった場合、上記と同様に１０個の格子点データを演算することにより、低域変換係数Ｌ6と高域変換係数Ｈ7を出力することもできるが、Ｘ9、Ｘ10が入力される以前に演算した格子点データを利用すれば、新たに計算しなければならないのは、Ｄ9、Ｅ8、Ｌ7、Ｌ6の４つだけで済む。
【００５７】
以前に演算した格子点データを利用にするには演算を終えた格子点データを記憶し、保持するための媒体が必要であり、それが図１におけるバッファ６２１である。
【００５８】
図２における最上段の格子点データ演算ユニット７０１内のバッファのみは、以前に演算した格子点データでは無く、以前に入力したデータを保持するために用いられるが、その他の格子点データ演算ユニット内のバッファは以前演算した格子点データを保持するために用いる。このバッファのサイズは最小１で上限は無い。
【００５９】
Ｘ0からＸ8のデータを用いた処理がすでに終了し、低域変換係数Ｌ6と高域変換係数Ｈ7を出力するために、最上段の格子点データ演算ユニット７０１には、新たな入力データＸ9、Ｘ10 の２つのみが入力される。格子点データ演算ユニット７０１ではＤ9を演算するが、入力データＸ9及びＸ10の他にこの演算に必要なデータＸ8は、図１のバッファ６２１から出力される。このＸ8は、前回の処理でＸ8が端子６０３から入力された時にバッファ６２１に格納されたものである。
【００６０】
格子点データ演算ユニット７０１は、演算したＤ9とバッファ６２１からの出力Ｘ8をそれぞれ端子６０７と６０９からユニットの外部へ出力し、次の格子点データ演算ユニット７０２に送る。
【００６１】
格子点データ演算ユニット７０２は、入力されたＤ9及びＸ8を用いてＥ8を演算するが、この演算に必要なもう一つのデータＤ7は、ユニット７０２内のバッファ６２１から出力される。このＤ7も前回の処理で端子６０３から入力された時にバッファ６２１に格納しておいたものである。そして、演算したＥ8とバッファ６２１からの出力Ｄ7をそれぞれ端子６０７、６０９からユニットの外へ出力し、次の格子点データ演算ユニット７０３に送る。
【００６２】
格子点データ演算ユニット７０３、７０４も上記と同様の処理を行う。その結果、演算ユニット７０３からは高域変換係数Ｈ7が、演算ユニット７０４からは低域変換係数Ｌ6がそれぞれ出力される。
【００６３】
以降、演算ユニット７０１に新たなデータが２つ入力される毎に、演算ユニット７０３と７０４から高域と低域の変換係数が出力される。
【００６４】
図１のバッファ６２１が、図１７に示すように１画素分のデータを格納するレジスタ１７０１が１段だけで構成されている場合は、従来と同様の水平ウェーブレット変換処理を行うことが可能であり、図１８に示すようにそれぞれ１画素分のデータを格納する２段のレジスタ１８０１、１８０２で構成されている場合は、後述するように２種類の信号を交互に処理することで２種類の信号のウェーブレット変換処理を行うことが可能である。図１８におけるデータの流れは、まず図の上方よりレジスタ１８０１へ入力され、次のタイミングでレジスタ１８０２へシフトされ、さらに次のタイミングで図の下方から出力されるとする。さらに、図１９に示すように画像１ライン分のデータを格納できるラインメモリ１９０１で構成されている場合は、垂直ウェーブレット変換処理を行うことができる。
【００６５】
（第１の実施形態）
次に、本発明の第１の実施形態における、上記構成を有するウェーブレット変換処理部を用いた２次元のウェーブレット変換処理について説明する。
【００６６】
本発明の第１の実施形態では、２次元のウェーブレット変換処理を、方向の違う１次元の変換処理を２段階に分けて実施することで実現し、その際に、この２段の変換処理の間に２×２のデータ回転処理を行う。
【００６７】
図３に本第１の実施形態における２次元ウェーブレット変換処理装置の構成を示す。同図において、９０１は垂直方向の１次元ＤＷＴ処理部（以下、「垂直ＤＷＴ処理部」と呼ぶ。）、９０３は２×２データの回転処理を行うデータ回転ユニット、９０５は水平方向の１次元ＤＷＴ処理部（以下、「水平ＤＷＴ処理部」と呼ぶ。）である。垂直ＤＷＴ処理部９０１及び水平ＤＷＴ処理部９０５は、それぞれ図２に示すように、図１で示す演算ユニットを４段縦続接続した構成を有し、垂直ＤＷＴ処理部９０１は４段の演算ユニットそれぞれにおけるバッファ６２１（図１）としてラインメモリ１９０１（図１９）を、水平ＤＷＴ処理部９０５は４段の演算ユニットそれぞれにおけるバッファ６２１として２段のレジスタ１８０１、１８０２（図１８）を持ち、それぞれ垂直方向と水平方向の１次元ウェーブレット変換処理を行う。
【００６８】
不図示のメモリあるいはラインバッファから、２ライン分の画素データの各ラインの端から１画素ずつ、すなわち垂直方向に並ぶ２画素ずつの画素データが、順に垂直ＤＷＴ処理部９０１に与えられる。
【００６９】
垂直ＤＷＴ処理部９０１は、新たに受け取る垂直２画素のデータと内部バッファ６２１、すなわち、ここではラインメモリ１９０１（図１９）に格納された、１ライン前のタイミングにおいて入力された画素データとを用いて、垂直方向の低域変換係数Ｌｖと高域変換係数Ｈｖを１つずつ出力する。１ライン分の画像データを格納するラインメモリ用いることで、１ライン前に入力された画素データと、新たに受け取る垂直２画素のデータとの、垂直に並ぶ３画素間における演算を行うことが可能となる。
【００７０】
上記した垂直ＤＷＴ処理部９０１の処理について、詳細に説明する。
【００７１】
図２０は垂直ＤＷＴ処理部９０１を構成する４段の演算ユニットのうち、隣り合ういずれか２段の演算ユニット２０００ａ、２０００ｂを縦続接続した状態を表す図である。ここでは、図２における演算ユニット７０１、７０２を接続した状態である例として説明する。すなわち、２０００ａ、２０００ｂがそれぞれ演算ユニット７０１、７０２に相当する。演算ユニット２０００ａ、２０００ｂにおいて、乗算器２０１３ａ、２０１３ｂの乗算係数Ｃはそれぞれα、βである。また、演算ユニット２０００ａの２つの出力２００７ａ、２００９ａは、演算ユニット２０００ｂの２つの入力２００１ｂ、２００３ｂに接続される。さらに、上述したように、バッファ６２１はそれぞれラインメモリ２０２１ａ、２０２１ｂにより構成される。図示していない残りの２段の演算ユニット７０３、７０４についても同様の構成である。
【００７２】
図２０におけるデータの流れを以下に説明する。ここでは、画素データの添え字番号は該画素データの垂直位置を表わしている。
【００７３】
演算ユニット２０００ａの一方の入力端子２００１ａより、偶数ラインの画素データ１ライン分のうち、ある画素データＸ2n-1を加算器２０１５ａへ入力する。他方の入力端子２００３ａより、奇数ラインの画素データ１ライン分のうち、Ｘ2n-1と垂直の関係にある画素データＸ2nを加算器２０１１ａへ入力すると同時に、ラインメモリ２０２１ａへも入力する。
【００７４】
ラインメモリ２０２１ａでは、入力画素とちょうど垂直の関係にある画素データＸ2n-2を出力端子２００９ａ及び加算器２０１１ａへ出力する。該画素データＸ2n-2はライン周期前に、ラインメモリ２０２１ａに入力されたデータである。加算器２０１１ａでは、Ｘ2nとＸ2n-2を加算し、乗算器２０１３ａへ出力する。ここで、Ｘ2n-2は、画像上の位置がＸ2nの２ライン前のデータでＸ2nと画素位置がちょうど垂直の関係にあり、それらを加算することになる。乗算器２０１３ａでは、それに係数Ｃ＝αを乗算した結果α（Ｘ２n＋Ｘ2n-2）を加算器２０１５ａへ出力する。加算器２０１５ａでは、乗算器２０１３ａからの乗算結果と入力端子２００１ａからの入力Ｘ2n-1とを加算して、Ｄ2n-1＝Ｘ2n-1＋α（Ｘ2n＋Ｘ2n-2）を得て、出力端子２００７ａへ出力される。
【００７５】
以上の演算を画素データ１ライン分すべてについて求めることで、上述した（１）式に相当する奇数画素系列Ｄを求める演算が行なわれる。
【００７６】
演算ユニット２０００ｂにおいては、上記で求められた奇数データ系列を入力として用い、上述の（２）式に相当する偶数データ系列Ｅを求めることができる。２０００ｂにおける演算は、入力系列２００３ｂがＤである点と係数Ｃ＝βである点を除き２０００ａと全く同様の演算を行っており、詳細な説明は省略する。
【００７７】
このようにして、４段縦続接続された演算ユニットを用いて、垂直方向の低域変換係数及び高域変換係数を求めることができる。
【００７８】
出力された２つの変換係数Ｌｖ、Ｈｖはデータ回転ユニット９０３に入力される。回転ユニット９０３は、低域と高域の２つの変換係数をそれぞれ２個受け取ると、それを並び替えて低域変換係数２つと高域変換係数２つの順に出力する。この入出力の関係を図４に概念的に示す。
【００７９】
図４（ａ）は、２組のデータを、入力単位で区切って示したものであり、図４（ｂ）は、２組のデータを、出力単位で区切って示したものである。（ａ）と（ｂ）を比較すると、（ａ）を右へ９０度回転したものが（ｂ）になっていることが分かる。
【００８０】
並び替えた低域変換係数２つと高域変換係数２つは、それぞれ水平方向に連続している変換係数であるため、これを水平ＤＷＴ処理部９０５で処理すると水平方向のウェーブレット変換を行うことができる。
【００８１】
本第１の実施形態では、データ回転ユニットを設けてデータの並び替えを行い、並び替えをした低域と高域の２種類のデータを水平ＤＷＴ処理部９０５において低域と高域を交互に多重化処理する。
【００８２】
多重化処理は、水平ＤＷＴ処理部９０５の各格子点データ演算ユニットのバッファ６２１（図１）がレジスタ２段１８０１、１８０２（図１８）から成る場合、２種類の信号を交互に処理することにより低域と高域の２種類の信号を交互に水平ウェーブレット変換するものである。この処理についてさらに詳細に説明する。
【００８３】
現在の処理サイクルで、仮に、各格子点データ演算ユニットのバッファ６２１である２段のレジスタ１８０１、１８０２の先頭１８０２に低域変換係数演算用のデータが格納され、後段１８０１に高域変換係数演算用のデータが格納されているものとする。この時、高域変換係数演算用のデータはその先のレジスタ１８０２に繋がっているのみで、どの演算ユニットも該データを参照していない。これは高域変換係数演算用データが存在していないのに等しく、すべての演算ユニットは低域変換係数を処理する状態になっている。
【００８４】
従ってこのサイクルでは、図４に示す変換係数の内、２つの低域変換係数Ｌｖ１及びＬｖ２を入力して、低域変換係数と一緒に２段レジスタの先頭のレジスタ１８０２が出力するデータ（ここでは低域変換係数演算用のデータ）を処理し、該処理結果（ＬＬ、ＬＨ）を出力する。すると、次のサイクルで、後段のレジスタ１８０１に格納されている高域変換係数用のデータが上記２段のレジスタ１８０２の先頭に移動し、入力したＬｖ２または前段の格子点データ演算ユニットから入力された、現在のサイクルで処理に用いたデータが該レジスタ１８０１の後段に取り込まれる。
【００８５】
次のサイクルでは、２段のレジスタ１８０１、１８０２に保存された低域変換係数と高域変換係数の順序が逆転し、すべての演算ユニットが高域変換係数を処理する状態になる。従って、次のサイクルでは、回転ユニット９０３からは２つの高域変換係数Ｈｖ１及びＨｖ２が入力され、処理されて、該処理結果（ＨＬ、ＨＨ）が出力される。
【００８６】
この水平ＤＷＴ処理部９０５の処理について、詳細に説明する。
【００８７】
図２１は水平ＤＷＴ処理部の９０５を構成する４段の演算ユニットのうち、隣り合ういずれか２段の演算ユニット２１００ａ、２１００ｂを縦続接続した状態を表す図である。ここでは、図２における演算ユニット７０１、７０２を接続した状態である例として説明する。すなわち、２１００ａ、２１００ｂがそれぞれ演算ユニット７０１、７０２に相当する。演算ユニット２１００ａ、２１００ｂにおいて、乗算器２１１３ａ、２１１３ｂの乗算係数Ｃはそれぞれα、βである。また、演算ユニット２１００ａの２つの出力２１０７ａ、２１０９ａは、演算ユニット２１００ｂの２つの入力２１０１ｂ、２１０３ｂに接続される。さらに、上述したように、バッファ６２１はそれぞれ２段レジスタ２１２１ａと２１２３ａ、２１２１ｂと２１２３ｂにより構成される。図示していない残りの２段の演算ユニット７０３、７０４についても同様の構成である。
【００８８】
図２１におけるデータの流れを以下に説明する。ここでは、変換係数の添え字番号は該変換係数の水平位置を表わしている。
【００８９】
まず、上述から明らかなように、演算ユニット２１００ａの入力端子２１０１ａには、回転ユニット９０３より出力された低域変換係数と高域変換係数とが交互に並んだ系列Ｌ2m-3、Ｈ2m-3、Ｌ2m-1、Ｈ2m-1、Ｌ2m+1、Ｈ2m+1、…が入力される。同様に入力端子２１０３ａには、Ｌ2m-2、Ｈ2m-2、Ｌ2m、Ｈ2m、Ｌ2m+2、Ｈ2m+2、…が入力される。２つの入力タイミングは、Ｌ2m-1とＬ2mとが同時に入力されるとする。
【００９０】
入力端子２１０１ａより低域変換係数Ｌ2m-1が加算器２１１５ａへ入力され、同時に入力端子２１０３ａより低域変換係数Ｌ2mが加算器２１１１ａと２１２１ａに入力された場合について述べる。
【００９１】
Ｌ2m-1、Ｌ2mが入力されるとき、レジスタ２１２１ａには１つ前のタイミングで入力端子２１０３ａより入力された高域変換係数Ｈ2m-2が格納されている。また、そのときレジスタ２１２３ａにはさらに１つ前のタイミングで入力端子２１０３ａより入力された低域変換係数Ｌ2m-2が格納されている。
【００９２】
従って、加算器２１１１ａにおいて、入力端子２１０３ａより入力されたＬ2mは、レジスタ２１２３ａに格納されていた低域変換係数Ｌ2m-2と加算されて、乗算器２１１３ａへ出力される。
【００９３】
乗算器２１１３ａでは、それに係数Ｃ＝αを乗算した結果α（Ｌ2m＋Ｌ2m-2）を加算器２１１５ａへ出力する。加算器２１１５ａでは、乗算器２１１３ａからの乗算結果と入力端子２１０１ａからの入力Ｌ2m-1とを加算して、低域変換系列からなるＤＬ2m-1＝Ｌ2m-1＋α（Ｌ2m＋Ｌ2m-2）を得て、出力端子２１０７ａへ出力される。他方の出力端子２１０９ａへは、レジスタ２１２３ａの出力値Ｌ2m-2が出力される。
【００９４】
次のタイミングにおいては、入力端子２１０１ａ、２１０１ｂにはそれぞれ高域変換係数Ｈ2m-1、Ｈ2mが入力される。同時に、２段レジスタ２１２１ａ、２１２３ａは、それぞれ格納データがシフトされ、レジスタ２１２１ａにはＬ2m、レジスタ２１２３ａにはＨ2m-2が格納される。従って、このタイミングにおける加算器２１１５ａの演算結果は、高域変換係数からなるＤＨ2m-1＝Ｈ2m-1＋α（Ｈ2m＋Ｈ2m-2）となり、出力端子２１０７ａへ出力される。他方の出力端子２１０９ａへは、Ｈ2m-2が出力される。
【００９５】
以上の演算を画素データ１ライン分すべてについて求めることで、上述した（１）式に相当する画素変換データ系列Ｄを、低域と高域について交互に求める演算が行なわれる。
【００９６】
演算ユニット２１００ｂにおいては、上記で求められた画素系列を入力として用い、画素系列ＥＬ2m-1＝Ｌ2m-1＋β（Ｄ2m-2＋Ｄ2m）もしくはＥＨ2m-1＝Ｈ2m-1＋β（Ｄ2m-2＋Ｄ2m）を、低域と高域について交互に求めることができる。２１００ｂにおける演算は、入力系列２１０３ｂがＤである点と係数Ｃ＝βである点を除き２１００ａと全く同様の演算を行っており、詳細な説明は省略する。
【００９７】
以上の処理を繰り返すことで、４段縦続接続された演算ユニットを用いて、低域と高域の２種類の信号を水平ウェーブレット変換処理して、変換係数ＬＬ、ＬＨ、ＨＬ、ＨＨをそれぞれ求めることができる。
【００９８】
上記の通り本第１の実施形態によれば、回転ユニットを設けることで、垂直方向と水平方向の１次元ウェーブレット変換処理部をそれぞれ１つづつ用いれば２次元のウェーブレット変換処理を行うことができるため、ハードウエア構成を縮小することができる。
【００９９】
（第２の実施形態）
本第２の実施形態は、前記第１の実施形態の水平ウェーブレット変換処理と垂直ウェーブレット変換処理の順序を入れ替えたものである。図５に示すように、垂直ＤＷＴ処理部９０１を水平ＤＷＴ処理部９０５の出力側に配置し、水平ＤＷＴ処理部９０５の前に新たな回転ユニット１１０１を設ける。
【０１００】
不図示のメモリあるいはラインバッファから入力する画素データの順序は、前記第１の実施形態と同じであるものとする。すなわち、２ラインの画素データが端から１画素ずつ、すなわち垂直方向に並ぶ２画素ずつの画素データが並列に回転ユニット１１０１に入力される。
【０１０１】
回転ユニット１１０１は、２ラインの並列データをライン交互の２画素のデータに並び替えて出力する。これはデータを９０度回転する処理と同じである。図６は、回転ユニット１１０１の入出力の関係を概念的に示す図である。図６において、添字Ｕは２ラインの上側（upper line）、Ｌは下側（lower line）を示し、１及び２は、画素の順番を示す。図６（ａ）に示すように入力する画素データを右方向に９０度回転することにより、同じ行の２画素分の画素データが、交互に出力される。
【０１０２】
このようにライン毎に交互に出力される２画素分の画素データは、水平ＤＷＴ処理部９０５に入力され、それぞれの入力データに対応した水平ウェーブレット変換処理が行なわれる。２ラインのデータが交互に入力されることで、２種類の信号を交互にウェーブレット変換することになるので、第１の実施形態で説明したように、水平ＤＷＴ処理部９０５内の各格子点データ演算ユニットのバッファ６２１（図６）はレジスタ２段で構成される。
【０１０３】
水平ウェーブレット変換して出力される変換係数は、あるラインの低域・高域変換係数と次のラインの低域・高域変換係数であり、交互に出力される。これらは、さらに回転ユニット９０３に入力されて図４に示すように並び替えられる。
【０１０４】
この結果、２つのラインからの低域変換係数２個と、高域変換係数２個が交互に回転ユニット９０３から出力される。
【０１０５】
各々の２つの変換係数は垂直方向に並んでいるので、この２つの変換係数を垂直ＤＷＴ処理部９０１に入力すれば、入力された２つの変換係数と、内部バッファ６２１に保持されたデータとから、垂直方向のウェーブレット変換処理を行うことができる。
【０１０６】
なお、垂直ＤＷＴ処理部９０１の各格子点データ演算ユニットはバッファ６２１としてラインメモリを持っており、２ライン分の変換係数を保持している。なお、低域変換係数用に１ライン分と高域変換係数用に１ライン分の計２ライン分の変換係数を保持するが、各変換係数の数は元のラインデータの数の半分になっているので、ラインメモリの容量としては１ライン分あればよい。該ラインメモリには、低域変換係数と高域変換係数とが１つおきに格納されており、低域変換係数と高域変換係数を交互に処理できるようになっている。
【０１０７】
上記の通り第２の実施形態によれば、第１の実施形態と同様の効果を得ることができる。
【０１０８】
なお、不図示のメモリあるいはラインバッファからウェーブレット変換処理装置に入力される画素データの順序を、ライン交互に２画素のデータを入力するように変更すれば、最初の回転ユニット１１０１は不要となる。
【０１０９】
（第３の実施形態）
第１及び第２の実施形態においては、水平ＤＷＴ処理部９０５は図２に示す構成を前提としてきたが、一般的なＦＩＲフィルタで用いられる構成であってもよい。この場合、低域変換係数と高域変換係数は別々の演算器で計算される。
【０１１０】
ここでは、ウェーブレット変換フィルタは直線位相、すなわち、ウェーブレット変換のフィルタ係数が対称であるものとする。
【０１１１】
図７は、本第３の実施形態における２次元ウェーブレット変換処理装置の構成を示す。図７の構成の内、図９に構成を示すデータ入力部１４０１及び図８に構成を示すフィルタ演算部１４０２以外は、前記第２の実施形態で図５を参照して説明した構成と同様である。
【０１１２】
図８は、フィルタ演算部１４０２の構成を示す概略図である。同図において、１２０１はフィルタ入力データ、１２０２はフィルタ乗算係数の等しい２つの入力データを加算する加算器、１２０３は係数乗算器、１２０４及び１２０５は乗算結果を合計する加算器である。
【０１１３】
次に、図８に示すフィルタ演算部１４０２を用いて水平ウェーブレット変換処理を行う場合のウェーブレット変換処理部全体の構成について説明する。
【０１１４】
フィルタ演算部１４０２には、フィルタのタップ数と同数の画素データを入力する必要があるが、図１に示す構成と違い、変換処理部の内部にバッファを持たないので、バッファへのデータ書き込み、読み出しに気を使うことなく画素データを入力することができる。すなわち、複数種類のデータの変換処理を交互に行う場合であっても、フィルタ演算部１４０２内部の状態を気にする必要が無い。
【０１１５】
複数種類のデータの変換処理を交互に行うには、入力画素データ全てを同時に切り換える必要がある。例えば、変換係数を得るためのフィルタのタップ数が９である場合、９つのデータを同時に切り換えなければならない。これだけのデータをメモリから直接受け取るのは効率が悪いので、フィルタ演算部１４０２にデータを供給する部分についても、それに対応した新たなデータ入力部１４０１が必要となる。
【０１１６】
ＣＣＤやスキャナなどから得られる画素データは、一般的にラスタースキャン順序で生成されるため、以下ではラスタースキャン順序で生成された画素データを受けとって処理するものとする。図９に示すデータ入力部１４０１は、ラスタースキャン順序で生成された画素データに対応するものである。同図において、１３０１は、ラスタースキャン順序の画素データを入力する端子、１３０３は、１ライン分の容量を有する第１のラインメモリ、１３０５は、１ラインの半分の容量を有する第２のラインメモリ、１３０７、１３０９は、９つのレジスタが繋がったシフトレジスタ、１３１１は、２系統の９つの画素データを切り換えるセレクタである。
【０１１７】
以下、データ入力部１４０１の具体的な動作を説明する。
【０１１８】
まず、図７に示すデータ入力部１４０１の端子１３０１から入力される１ライン目の入力画素データを第１のラインメモリ１３０３に格納する。本発明の重要な構成要素であるウェーブレット変換処理部の処理サイクル（周期）を基準にして考えると、１サイクルの間に２つの画素データが入力されると全体の処理バランスが最も良くなるので、ここではそのようなレートで画素データが入力されるものとする。
【０１１９】
次に、２ライン目の入力画素データを第２のラインメモリ１３０５に格納しながら、１サイクルに１画素ずつ第１のラインメモリ１３０３及び第２のラインメモリ１３０５からデータを読み出し、それぞれシフトレジスタ１３０７、１３０９へデータを送る。両方のラインメモリ１３０３及び１３０５から同時にデータの読み出しを開始するよりも、第２のラインメモリ１３０５からの読み出しを１サイクル遅らせると、後述する理由により都合が良いので、そのように読み出す。
【０１２０】
第２のラインメモリ１３０５は、１サイクルで２つの画素データを格納し、１つの画素データを出力するので、２ライン目のすべての画素データを格納し終えた時点では、半分のデータしか残っていない。そのため、第２のラインメモリ１３０５の容量は１ラインの半分のデータを記憶できればよい。
【０１２１】
シフトレジスタ１３０７、１３０９に取り込まれた画素データは１サイクルごとに交互にセレクタ１３１１で切り換えられて、図８に示すフィルタ演算部１４０２で処理される。シフトレジスタ１３０９の画素データの位相は、シフトレジスタ１３０７より１サイクル遅いが、セレクタ１３１１が２つのシフトレジスタ１３０７、１３０９を選択するタイミングにも１サイクルのずれがあるので、１サイクルの遅れは打ち消されて、セレクタ出力では同位相のデータとなる。このようにして出力された該２ライン分の同位相の９つのデータそれぞれを基にして、フィルタ演算部１４０２では低域と高域のウェーブレット変換係数が計算され、出力される。
【０１２２】
変換係数の出力タイミングは前記第２の実施形態と同じであるため、回転ユニット９０３で変換係数を並び替えて、次に垂直ＤＷＴ処理部９０１にて変換処理すれば、前記第２の実施形態と同じタイミングで２次元ウェーブレット変換された変換係数を得ることができる。
【０１２３】
（第４の実施形態）
ここでは、第３の実施形態においてフィルタ演算部１４０２の入力側で使用していた２つのラインメモリをフィルタ演算部１４０２の出力側に移動した構成について示す。但し、ラインメモリの総容量は、第３の実施形態と同じではあるが、各々１／２ラインの容量のラインメモリを３つに分けて持つ。
【０１２４】
水平方向のウェーブレット変換処理とラスタースキャン順序の画素データとは元々相性が良く、画素データを直接、水平ＤＷＴ処理部に入力して処理することが可能である。なお、水平ＤＷＴ処理部は、図８の構成のフィルタ演算部であっても良いし、図２の構成の変換処理部であっても良い。
【０１２５】
図１０は、本第４の実施形態におけるウェーブレット変換処理装置の構成を示すブロック図である。図１０の構成では、ラスタースキャン順序の画素データを受け取り、水平ＤＷＴ処理部１５００にて、直ちに水平方向のウェーブレット変換処理を行う。画素データは第３の実施形態と同様、１サイクル当たり２画素入力されるものとする。
【０１２６】
水平ＤＷＴ処理部１５００による２ｎライン目の処理結果である低域と高域の変換係数は、それぞれ１５０１、１５０３に格納される。また、２ｎ＋１ライン目の処理結果の内、高域変換係数は１５０５に格納するが、低域変換係数はどこにも格納せずセレクタ１５１１を経由して直ちに垂直ＤＷＴ処理部９０１に送る。それに合わせて、１ライン前の低域変換係数をラインメモリ１５０１から読み出し、垂直に並ぶ２つの低域変換係数のもう一方の係数と一緒に垂直ＤＷＴ処理部９０１に送る。
【０１２７】
これにより、垂直ＤＷＴ処理部９０１は水平方向の低域変換係数を連続して変換処理することができる。この間、２ｎ＋１ライン目の水平方向の高域変換係数はすべてラインメモリ１５０５に格納される。
【０１２８】
２ｎ＋１ライン目の画素データ入力が終わると、２ｎ及び２ｎ＋１ライン目の低域変換係数の処理も終わるので、次に、蓄えられた２ライン分の高域変換係数を２つのラインメモリ１５０３と１５０５から読み出し、セレクタ１５１１を経由して、垂直ＤＷＴ処理部９０１に送り、変換処理を行う。
【０１２９】
低域変換係数の処理が２ｎ＋１ライン目の画素データの入力に同期して行なわれたように、高域変換係数の処理は、２ｎ＋２ライン目の画素データの入力に同期して行なわれる。高域変換係数の処理中に入力される２ｎ＋２ライン目の画素データは、水平ウェーブレット変換処理され、処理結果は２ｎライン目の時と同じところに格納される。高域変換係数を格納するラインメモリ１５０３は、出力するデータと格納するデータの割合が同じなので、保持するデータ量は変化せず古いデータが新しいデータに更新されるように新しいデータに変わっていく。
【０１３０】
以上のようにして、２次元ウェーブレット変換された変換係数を得ることができるが、変換係数の出力順序がこれまでとは異なり、２ライン分の画像データに対する低域・高域変換係数が各画素データを処理する毎にライン交互に出力されるのではなく、水平ＤＷＴ処理部１５００からは１ライン分ずつ低域及び高域変換係数が出力される。このように、各ライン毎に出力される低域及び高域変換係数を一時的に保持するラインバッファを備えることで、垂直方向と水平方向の１次元ウェーブレット変換処理部をそれぞれ１つづつ用いれば２次元のウェーブレット変換処理を行うことができるため、ハードウエア構成を縮小することができる。
【０１３１】
（第５の実施形態）
上記第１乃至第４の実施形態は、変換処理１サイクル当たり２画素のデータ入力を前提としていたが、本第５の実施形態では変換処理１サイクル当たり１画素の割合でデータ入力する場合に適したウェーブレット変換処理装置の構成について説明する。
【０１３２】
単純に、変換処理１サイクル当たり１画素のデータ入力に減らしてしまうと、各変換処理部等が稼働率５０％になるだけで、ハードウェア資源の有効利用にならない。
【０１３３】
そこで、本第５の実施形態では、１つの変換処理部で垂直ウェーブレット変換処理と水平ウェーブレット変換処理の両方を行うことによって、変換処理部の稼働率を１００％にし、ハードウェアの有効利用を図る。
【０１３４】
本第５の実施形態の構成を図１１に示す。同図において、１６０１は、２入力２系統のデータから一方の系統を選択出力するセレクタ、１６０３は、水平・垂直ＤＷＴ処理部、１６０５は、２×２データの回転処理を行うデータ回転ユニット、である。
【０１３５】
前記第１の実施形態と同様、不図示のメモリあるいはラインバッファから、２ラインデータの各ラインの端から１画素ずつ、すなわち垂直２画素ずつを、セレクタ１６０１を経由して、ＤＷＴ処理部１６０３に入力する。
【０１３６】
これに対し、ＤＷＴ処理部１６０３は、垂直変換モードで該入力データを処理する。
【０１３７】
但し、連続して入力するのは２サイクルで４つの画素データのみで、次の２サイクルはデータ入力を停止する。トータル４サイクルで４つの画素データを入力することになるので、前述したように、１サイクル当たり１画素のデータ入力割合となる。
【０１３８】
変換処理部１６０３は、２サイクル期間に入力された４つの画素データを処理することによって、垂直方向の低域変換係数と高域変換係数を２組出力する。
この変換係数はスイッチ１６０６及び１６０７を経由して、前記第１の実施形態と同様、回転ユニット１６０５にて並び替えられ、２個の低域変換係数と２個の高域変換係数が順次、セレクタ１６０１に入力される。
【０１３９】
前記データ入力が停止する２サイクル期間は、回転ユニット１６０５にて並び替えられた変換係数がセレクタ１６０１で選択され、垂直・水平ＤＷＴ処理部１６０３に送られる。垂直・水平変換処理部１６０３は、今度は水平変換モードにて、２サイクル続けて入力される２個２組の変換係数を水平方向にウェーブレット変換処理し、スイッチ１６０６及び１６０７を経由して出力する。
【０１４０】
なお、垂直・水平ＤＷＴ処理部１６０３は基本的には図２に示す構成を有するが、各演算ユニット内のバッファは、垂直方向の変換に対応したラインメモリと水平方向の変換に対応した２段のレジスタを有し、それを変換モードに応じて切り換えて使用することで、上述したような動作が可能になる。
【０１４１】
また、２ラインデータの水平２画素ずつを交互に入力し、該入力データを先に水平変換モードで処理し、回転ユニットで並び替えた変換係数を次に垂直変換モードで処理しても、同じ結果を得ることができる。
【０１４２】
第１乃至第５の実施形態では、すべて順方向のウェーブレット変換処理についてのみ説明してきたが、逆方向のウェーブレット変換処理は乗算係数が異なるのと一部の加算演算が減算に変わるのみで、図２の構成並びに上位の構成は順方向も逆方向も同じであるため、本発明は逆方向のウェーブレット変換処理にも適用することができる。
【０１４３】
【発明の効果】
上記の通り本発明によれば、ハードウェア資源をより有効に活用し、より小さいハードウエア構成で２次元ウェーブレット変換処理装置を実現することができる。
【図面の簡単な説明】
【図１】本発明の実施の形態における演算ユニットの構成を示す図である。
【図２】図１の演算ユニットを多段接続した、フィルタ処理のためのリフティング演算を行うための構成を示すブロック図である。
【図３】本発明の第１の実施形態における２次元ウェーブレット変換処理装置の構成を示すブロック図である。
【図４】図３の回転ユニットの動作を概念的に示す図である。
【図５】本発明の第２の実施形態における２次元ウェーブレット変換処理装置の構成を示すブロック図である。
【図６】図５の回転ユニットの動作を概念的に示す図である。
【図７】本発明の第３の実施形態における２次元ウェーブレット変換処理装置の構成を示すブロック図である。
【図８】図７に示すＦＩＲ型のフィルタ演算部の構成を示す図である。
【図９】図７に示すデータ入力部の構成を示す図である。
【図１０】本発明の第４の実施形態における２次元ウェーブレット変換処理装置の構成を示すブロック図である。
【図１１】本発明の第５の実施形態における２次元ウェーブレット変換処理装置の構成を示すブロック図である。
【図１２】９×７フィルタ処理をリフティング演算で実現する時の従来の構成を示す図である。
【図１３】９×７逆フィルタ処理をリフティング演算で実現する時の従来の構成を示す図である。
【図１４】９×７フィルタ処理のリフティング演算を表現するリフティング格子構造を示す図である。
【図１５】９×７逆フィルタ処理のリフティング演算を表現するリフティング格子構造を示す図である。
【図１６】従来の２次元ウェーブレット変換処理装置の構成を示すブロック図である。
【図１７】図１に示すバッファがレジスタ１段で構成されていることを示す図である。
【図１８】図１に示すバッファがレジスタ２段で構成されていることを示す図である。
【図１９】図１に示すバッファがラインメモリで構成されていることを示す図である。
【図２０】図３に示す垂直ＤＷＴ処理部を構成する演算ユニット４段のうち、隣り合ういずれか２段の演算ユニットを縦続接続した状態を表す図である。
【図２１】図３に示す水平ＤＷＴ処理部を構成する演算ユニット４段のうち、隣り合ういずれか２段の演算ユニットを縦続接続した状態を表す図である。
【符号の説明】
５０３、５０５、９０１  垂直ＤＷＴ処理部
５０１、９０５          水平ＤＷＴ処理部
５１１、５１３          バッファ
６１１、６１５          加算器
６１３                  乗算器、
６２１                  バッファ
７０１〜７０４          格子点データ演算ユニット
９０３、１１０１、１６０５  ２×２回転ユニット
１３１１、１５１１、１６０１    セレクタ
１３０３、１３０５、１５０１、１５０３，１５０５    ラインメモリ
１４０１                データ入力部
１４０２                フィルタ演算部
１６０３                水平・垂直ＤＷＴ処理部
【図１】
0004217408.tif 000002
【図２】
0004217408.tif 000003
【図３】
0004217408.tif 000004
【図４】
0004217408.tif 000005
【図５】
0004217408.tif 000006
【図６】
0004217408.tif 000007
【図７】
0004217408.tif 000008
【図８】
0004217408.tif 000009
【図９】
0004217408.tif 000010
【図１０】
0004217408.tif 000011
【図１１】
0004217408.tif 000012
【図１２】
0004217408.tif 000013
【図１３】
0004217408.tif 000014
【図１４】
0004217408.tif 000015
【図１５】
0004217408.tif 000016
【図１６】
0004217408.tif 000017
【図１７】
0004217408.tif 000018
【図１８】
0004217408.tif 000019
【図１９】
0004217408.tif 000020
【図２０】
0004217408.tif 000021
【図２１】
0004217408.tif 000022