JP2004194224A - Device and method for transforming wavelet - Google Patents
Device and method for transforming wavelet Download PDFInfo
- Publication number
- JP2004194224A JP2004194224A JP2002362726A JP2002362726A JP2004194224A JP 2004194224 A JP2004194224 A JP 2004194224A JP 2002362726 A JP2002362726 A JP 2002362726A JP 2002362726 A JP2002362726 A JP 2002362726A JP 2004194224 A JP2004194224 A JP 2004194224A
- Authority
- JP
- Japan
- Prior art keywords
- data
- stage
- intermediate data
- output
- series
- 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.)
- Granted
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Complex Calculations (AREA)
Abstract
Description
【0001】
【発明の属する技術分野】
本発明は、ウェーブレット変換を用いた圧縮伸長技術に関する。
【0002】
【従来の技術】
画像データの高能率符号化方式として、離散ウェーブレット変換(Discrete Wavelet Transformation、以下「DWT」と呼ぶ。)に基づく画像の圧縮伸長方法が知られており、これはISO(国際標準化機構)が策定するJPEG2000(Joint Photographic Experts Group 2000)方式で採用されている。DWTの演算方法としては、畳み込み演算方法とリフティング構成(lifting scheme)に基づく演算方法とが知られており、両者は同一結果を出力するが、後者のリフティング構成に基づく演算方法の方が、前者の畳み込み演算方法と比べて、少ないメモリ使用量で高速演算が可能なことや、ロスレス(可逆)圧縮に適することなどの利点を有している。
【0003】
一般に、DWTは、原信号を高域成分(高周波数成分)と低域成分(低周波数成分)とに帯域分割するフィルタバンクを用いて構成することが可能である。そして、その逆変換(逆DWT)は、帯域分割された高域成分と低域成分とを合成するフィルタバンクを用いて構成することが可能である。
【0004】
図35に、DWTとその逆変換(逆DWT)で用いるフィルタバンク200S,200Aを模式的に示す。入力信号x(n)を低域成分と高域成分との2帯域に分解する分解側フィルタバンク200Sは、低域成分を通過させるローパスフィルタ201Lと、高域成分を通過させるハイパスフィルタ201Hと、第1および第2ダウンサンプラー202,203とで構成されている。ローパスフィルタ201Lとハイパスフィルタ201Hは、畳み込み演算を実行するFIRフィルタによって構成される。また、第1および第2ダウンサンプラー202,203は、それぞれ、フィルタ201L,201Hからの入力信号を1点おきに間引き、信号長を半分にして出力するものである。JPEG2000の規格では、第1ダウンサンプラー202は奇数番目の信号を間引いて偶数番目の信号(低域成分)を出力し、第2ダウンサンプラー203は偶数番目の信号を間引いて奇数番目の信号(高域成分)を出力する。
【0005】
他方、入力信号(低域成分,高域成分)を合成する合成側フィルタバンク200Aは、第1および第2アップサンプラー204,205と、ローパスフィルタ206Lと、ハイパスフィルタ206Hと、加算器207とで構成されている。ローパスフィルタ206Lとハイパスフィルタ206Hは、畳み込み演算を実行するFIRフィルタによって構成されており、一般に、これら合成側フィルタ206L,206Hと分解側フィルタ201L,201Hとは完全再構成条件を満たすように構成される。また、第1および第2アップサンプラー204,205は、各点間にゼロ値を挿入し信号長を倍にして出力する。そして、加算器207は、各合成側フィルタ206L,206Hから出力された信号を加算し、合成信号x’(n)を出力する。ここで、完全再構成条件を満たす場合はx(n)=x’(n)が成立する。
【0006】
2次元DWTは、2次元画像データに対して分解側フィルタバンク200Sを、その2次元画像データの垂直方向,水平方向の順に繰り返し適用することで実行できる。図36は、3次の分解レベル(decomposition level)でDWTを施された2次元画像データ210を模式的に示す帯域分割図である。2次元画像データ210中の各ブロックがサブバンド(帯域成分)を表している。例えば、サブバンドHH1は、分解レベル1における垂直方向の高域成分(H)と水平方向の高域成分(H)とからなり、サブバンドLH2は、分解レベル2における垂直方向の高域成分(H)と水平方向の低域成分(L)とからなる。一般に、サブバンドXYn(X,Yは「H」または「L」の何れか、nは分解レベルの次数)は、分解レベルnにおける垂直方向の成分Yと水平方向の成分Xとからなるものである。
【0007】
分解レベル3のDWTの処理手順は次の通りである。先ず、2次元画像全体に、上記分解側フィルタバンク200Sを2回適用することで、分解レベル1のサブバンドHH1,HL1,LH1,LL1(図示せず)が生成される。次に、分解レベル1の最低域のサブバンドLL1に、分解側フィルタバンク200Sを2回適用することで、分解レベル2のサブバンドHH2,HL2,LH2,LL2(図示せず)が生成される。そして、分解レベル2の最低域のサブバンドLL2に、分解側フィルタバンク200Sを2回適用することで、分解レベル3のサブバンドHH3,HL3,LH3,LL3が生成される。
【0008】
逆に、分解レベル3のサブバンドを合成する逆DWTの処理手順は次の通りである。先ず、サブバンドHH3,HL3,LH3,LL3に、合成側フィルタバンク200Aを2回適用することで、分解レベル2の最低域のサブバンドLL2が生成される。次に、分解レベル2のサブバンドHH2,HL2,LH2,LL2に、合成側フィルタバンク200Aを2回適用することで、分解レベル1の最低域のサブバンドLL1が生成される。そして、分解レベル1のサブバンドHH1,HL1,LH1,LL1に、合成側フィルタバンク200Aを2回適用することで、2次元画像が生成される。
【0009】
以上、3次の分解レベルの例を示したが、JPEG2000方式では、一般に、3次〜8次以上の分解レベルが採用される。また、本例では、1枚の静止画像全体に一括してDWTを施したが、実際には、実装メモリ容量などの関係上、1枚の静止画像を複数の矩形状の「タイル」と称する領域に分割し、各タイル単位でDWTを実行することも行われている。
【0010】
一方、DWTおよび逆DWTはリフティング構成で実現することも可能である。本発明は、合成側の処理に関するものであるので、ここからは逆DWTの処理について説明する。公知の9×7タップのDaubechiesフィルタの場合、入力データY(2n),Y(2n+1),Y(2n+2)(n:整数)などと、出力データX(2n),X(2n+1)との間の関係式は、次式(1)で規定するリフティング構成で表現できる。なお、合成側の処理は逆DWTであることから、この後の説明全般にわたって、入力データにYを出力データにXの文字を使用することとする。
【0011】
【数1】
【0012】
上式(1)中、奇数番目の入力データY(2n+1)は分解処理によって得られた高域成分のデータを示し、偶数番目の入力データY(2n)は分解処理によって得られた低域成分のデータを示している。そして、出力データX(2n)およびX(2n+1)が高域成分と低域成分とが合成されたデータを示している。また、係数α,β,γ,δはリフティング係数と呼ばれ、係数κ,1/κは規格化係数と呼ばれており、これら係数α,β,γ,δ,κ,1/κは、9×7タップのDaubechiesフィルタのフィルタ係数によって一意に導出される。
【0013】
上式(1)で規定されるリフティング構成は、図37に示す格子構造で表現することが可能である。図37の左端の縦一列に並ぶ格子点は、それぞれ、入力データ…,Y(2n−1),(2n),…,Y(2n+9),Y(2n+10),…(n:整数)を表している。つまり、DWTによって分解された低域成分および高域成分のデータが交互に並んで配列されたデータである。また、これら入力データから水平方向右方に延びる線分の右端の格子点は、それぞれ、出力データ…,X(2n−1),X(2n),…,X(2n+9),X(2n+10),…を表している。
【0014】
また、各入力データY(k)(k:整数)を示す格子点から、出力データX(k)を示す格子点まで延びる線分上の複数の格子点は、一系列の中間データを表している。例えば、入力データY(2n)と出力データX(2n)との間の線分上には、入力データY(2n)を始点として生成された中間データS1 n,S2 nを表す格子点が存在している。
【0015】
この格子構造に基づく演算は次の(A)〜(C)の規則に従って行われる。(A)格子点を表すデータは、当該格子点から右方へ延びる線分に沿って移動する。(B)各線分を移動するデータは、当該線分に付した係数を乗算される(係数乗算処理)。(C)各格子点では、線分に沿って左方から移動してきたデータが加算される(加算処理)。例えば、入出力データY(2n),X(2n)間の線分上の中間データS2 nは、S2 n=1×S1 n−δ×D1 n-1−δ×D1 n、のように算出される。この式は、上式(1)中の[step3]に相当するものである。
【0016】
図37に示すように、例えば、中間データS2 nは、図面左方の3つの格子点D1 n-1,S1 n,D1 nから遷移したデータを加算したものである。全ての中間データが、当該中間データよりも左方の3つの格子点から遷移した3点のデータを加算することで算出されることが分かる。JPEG2000方式は、1点の中間データの算出処理を2工程に分けて行うことを推奨している("Mathias Larsson Carlander, Media Lab, Ericsson Research, Sweden, JPEG2000 Verification Model 9.1 (Technical description) WG1 N2165, 28 June, 2001"の文献参照)。図38は、そのJPEG2000方式が推奨する算出方法を模式的に示す図である。格子点x1,x2,x3,yがデータを表しており、α,β,γは、各格子点間を結ぶ線分に付した係数を表している。図示するように、データyは、ステップaで一時データzを算出した後に、ステップbで算出されることが分かる。
【0017】
【非特許文献1】
マシアス・ラーソン・カーランダー(Mathias Larsson Carlander)著,メディアラボ,エリクソン研究所,スエーデン(Media Lab, Ericsson Research, Sweden),「JPEG2000 Verification Model 9.1 (Technical description) WG1 N2165」,2001年6月28日。
【0018】
【発明が解決しようとする課題】
しかしながら、前述のJPEG2000方式が推奨するリフティング演算では、以下に説明するように、1点の出力データを算出するために要する処理時間が長いという問題がある。
【0019】
図39〜図48は、リフティング構成によるDWT逆変換の処理手順の例を説明するための格子図である。なお、図示しないが、各格子点間を結ぶ全ての線分には、図37に示した係数が対応付けされているものとする。また、図39〜図48では、黒く塗りつぶした格子点は、入力済み或いは計算済みのデータ点を表し、上半分だけ塗りつぶした格子点は、上記ステップaの処理だけが終了した一時データの点を表し、空白の格子点は、ステップaとステップbの何れの処理もなされていない未計算の点を表している。これら各図に示す処理は、何れも、1クロック周期内に実行される。
【0020】
図39に示すN回目(N:整数)の処理では、対象領域N1内の入力データY(2n+4)を規格化することで、偶数番目の入力データY(2n+4)を始点とする第1段階の中間データS1 n+2が算出される。
【0021】
図40〜図43に示すN+1回目〜N+4回目の処理では、全て、上記ステップaが実行される。N+1回目処理(図40)では、対象領域A1内の2点の中間データS1 n+2,D1 n+1を用いた処理により、偶数番目の入力データX(2n+4)を始点とする第2段階の一時データ(S2 n+2)が算出される(このように、一時データを表す場合には、データをカッコで括って区別することとする。)。次のN+2回目処理(図41)では、対象領域A2内の2点の中間データD1 n+1,S2 n+1を用いた処理により、奇数番目の入力データY(2n+3)を始点とする第2段階の一時データ(D2 n+1)が算出される。次のN+3回目処理(図42)では、対象領域A3内の2点の中間データS2 n+1,D2 nを用いた処理により、偶数番目の入力データY(2n+2)を始点とする系列上の出力一時データ(X(2n+2))が算出される。そして、N+4回目処理(図43)では、対象領域A4内の2点のデータD2 n,X(2n)を用いた処理により、奇数番目の入力データY(2n+1)を始点とする系列上の出力一時データ(X(2n+1))が算出される。
【0022】
次のN+5回目の処理(図44)では、対象領域N2内の入力データY(2n+5)を規格化することで、奇数番目の入力データY(2n+5)を始点とする系列上の第一段階の中間データD1 n+2が算出される。
【0023】
次に、図45〜図48に示すN+6回目〜N+9回目の処理では、全て、上記ステップbが実行される。N+6回目処理(図45)では、対象領域B1内の中間データD1 n+2と、上記N+1回目処理で算出した一時データ(S2 n+2)とを用いた処理により、中間データS2 n+2が算出される。次のN+7回目処理(図46)では、対象領域B2内の前記N+6回目処理で算出した中間データS2 n+2と、上記N+2回目処理で算出した一時データ(D2 n+1)とを用いた処理により、中間データD2 n+1が算出される。次のN+8回目処理(図47)では、対象領域B3内の前記N+7回目処理で算出した中間データD2 n+1と、上記N+3回目処理で算出した出力一時データ(X(2n+2))とを用いた処理により、出力データX(2n+2)が算出される。そして、N+9回目処理(図48)では、対象領域B4内の前記N+8回目処理で算出した出力データX(2n+2)と、上記N+4回目処理で算出した出力一時データ(X(2n))とを用いた処理により、出力データX(2n+1)が算出される。
【0024】
次に、N+10回目処理(図示せず)では、上記N回目処理と同様に、入力データY(2n+6)を用いた規格化処理が行なわれ、以降、上記N+1回目〜N+9回目処理と同様の処理が繰り返し実行される。
【0025】
このように、高域成分と低域成分とを交互に並べた入力データY(2n+4)およびY(2n+5)を入力することによって合成結果である出力データX(2n+2)およびX(2n+1)を算出するために、N回目〜N+9回目の10クロック周期が必要であることが分かる。したがって、1点の出力データを算出するために平均して5クロック周期が必要となる。この5クロック周期を更に短縮することで逆DWT演算を高速に実行し得る処理方法が求められている。
【0026】
以上の問題などに鑑みて本発明が解決しようとするところは、リフティング構成に基づくウェーブレット変換を短時間で効率良く実行し得るウェーブレット変換装置およびウェーブレット変換方法を提供する点にある。
【0027】
【課題を解決するための手段】
上記課題を解決するため、請求項1記載の発明は、リフティング構成に基づいて、帯域分割された高域成分のデータと低域成分のデータとを合成するウェーブレット変換装置であって、制御部と、高域成分および低域成分の一方からなる第1データ列と、その他方からなる第2データ列とが画素単位で交互に配列されて構成される入力データ列を取り込んで合成された出力データ列を算出するフィルタリング部と、を備え、前記フィルタリング部は、前記入力データ列の各々に所定の規格化係数を乗算することで、各入力データを第1段階の中間データへ1点当たり1クロック周期内に変換する単数または複数の規格化処理を実行する規格化手段と、前記規格化手段によって規格化された第1段階の中間データの各々を単数または複数の段階に亘る一系列の中間データへ1点当たり1クロック周期内に変換し、あるいは、最終段階の中間データの各々を出力データへ1点当たり1クロック周期内に変換する単数または複数の変換処理を実行する中間データ変換手段と、を含み、前記制御部は、前記規格化手段および前記中間データ変換手段に、前記単数または複数の規格化処理および前記単数または複数の変換処理を、全ての点の前記出力データが算出されるまで繰り返し実行させ、且つ、繰り返し実行される前記単数または複数の規格化処理および前記単数または複数の変換処理のうち少なくとも2個の処理を1クロック周期内に並列に実行させるように制御する、ことを特徴とする。
【0028】
請求項2記載の発明は、請求項1記載のウェーブレット変換装置であって、前記規格化手段および前記中間データ変換手段は、前記規格化処理および前記変換処理を並列に実行する。
【0029】
請求項3記載の発明は、請求項1または請求項2記載のウェーブレット変換装置であって、前記規格化手段は、各入力データに前記規格化係数を乗算する規格化係数乗算器と、前記規格化係数乗算器から出力されたデータを遅延させる遅延器と、を含み、前記中間データ変換手段は、2点の中間データの一方に所定のリフティング係数を乗算するリフティング係数乗算器と、該リフティング係数乗算器から出力されたデータと前記2点の中間データの他方とを加算する加算器とからなる2点演算部と、前記2点演算部から出力されたデータを取り込んで前記制御部から指定された出力先に出力する出力先選択部と、を含み、前記ウェーブレット変換装置は、さらに、メモリ管理部と、前記メモリ管理部の制御によりデータを一時記憶するメモリと、を備え、前記メモリ管理部は、前記出力先選択部から出力された前記データを前記メモリに転送し記憶させるように制御する、ことを特徴とする。
【0030】
請求項4記載の発明は、請求項3記載のウェーブレット変換装置であって、前記制御部は、前記変換処理として、「前記第2データ列に属する入力データを起点とする系列」(以下、第2系列と呼ぶ。)上の第1段階の中間データと、その中間データに対して1点前の「前記第1データ列に属する入力データを起点とする系列」(以下、第1系列と呼ぶ。)上の第1段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第2系列上の第2段階の一時データを1点当たり1クロック周期内に算出する第1の変換処理と、前記第1の変換処理で算出され前記メモリに記憶された前記一時データと、その一時データの系列に対して1点後の第1系列上の第1段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第2系列上の第2段階の中間データを1点当たり1クロック周期内に算出する第2の変換処理と、第1系列上の第1段階の中間データと、その中間データに対して1点前の第2系列上の第2段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第1系列上の第2段階の一時データを1点当たり1クロック周期内に算出する第3の変換処理と、前記第3の変換処理で算出され前記メモリに記憶された前記一時データと、その一時データの系列に対して1点後の第2系列上の第2段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第1系列上の第2段階の前記中間データを1点当たり1クロック周期内に算出する第4の変換処理と、第2系列上の第M段階(段階数Mは1以上の整数)の中間データと、その中間データの系列に対して1点前の第1系列上の第M段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第2系列上の第M+1段階の一時データを1点当たり1クロック周期内に算出する第5の変換処理と、前記第5の変換処理で算出され前記メモリに記憶された前記一時データと、その一時データの系列に対して1点後の第1系列上の第M段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第2系列上の第M+1段階の中間データを1点当たり1クロック周期内に算出する第6の変換処理と、第1系列上の第L段階(段階数Lは1以上の整数)の中間データと、その中間データの系列に対して1点前の第2系列上の第L+1段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第1系列上の第L+1段階の一時データを1点当たり1クロック周期内に算出する第7の変換処理と、前記第7の変換処理で算出され前記メモリに記憶された前記一時データと、その一時データの系列に対して1点後の第2系列上の第L+1段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第1系列上の第L+1段階の前記中間データを1点当たり1クロック周期内に算出する第8の変換処理と、を全ての点の前記出力データが算出されるまで前記2点演算部に繰り返し実行させるように制御する。
【0031】
請求項5記載の発明は、請求項4記載のウェーブレット変換装置であって、前記制御部は、前記第1の変換処理および前記第3の変換処理を実行した後に、前記第5の変換処理および前記第7の変換処理を、前記最終段階の前記一時データが算出されるまで前記2点演算部に実行させ、その後、前記第2の変換処理および前記第4の変換処理を実行した後に、前記第6の変換処理および前記第8の変換処理を、前記出力データが算出されるまで前記2点演算部に実行させるように制御する。
【0032】
請求項6記載の発明は、請求項4記載のウェーブレット変換装置であって、互いに独立に動作する4個の前記2点演算部を備え、前記制御部は、前記変換処理として、前記第2データ列に属し且つ前記入力データ列の中でP番目(データ番号Pは整数)の入力データを始点とする系列上の第2段階の中間データを算出する前記第2の変換処理と、P−1番目の入力データを始点とする系列上の第2段階の一時データを算出する前記第3の変換処理と、P−4番目の入力データを始点とする系列上の第M+1段階の中間データを算出する前記第6の変換処理と、P−5番目の入力データを始点とする系列上の第L+1段階の一時データを算出する前記第7の変換処理と、の4工程を前記各2点演算部に並列に実行させると共に、P+2番目の入力データを始点とする系列上の第2段階の一時データを算出する前記第1の変換処理と、前記P−1番目の入力データを始点とする系列上の第2段階の前記中間データを算出する前記第4の変換処理と、P−2番目の入力データを始点とする系列上の第M段階の一時データを算出する前記第5の変換処理と、前記P−5番目の入力データを始点とする系列上の第L+1段階の中間データを算出する前記第8の変換処理と、の4個の処理をそれぞれ前記各2点演算部に並列に実行させるように制御する。
【0033】
請求項7記載の発明は、請求項1または請求項2記載のウェーブレット変換装置であって、前記規格化手段は、各入力データに前記規格化係数を乗算する規格化係数乗算器と、前記規格化係数乗算器から出力されたデータを遅延させる遅延器と、を含み、前記中間データ変換手段は、取り込まれた3点の入力データの中で第1および第2の入力データを加算する第1加算器と、該第1加算器から出力されたデータに所定のリフティング係数を乗算するリフティング係数乗算器と、該リフティング係数乗算器から出力されたデータと第3の入力データとを加算することで中間データを算出する第2加算器とからなる3点演算部と、前記3点演算部から出力された中間データを取り込んで前記制御部から指定された出力先に出力する出力先選択部と、を含み、前記メモリ管理部は、前記出力先選択部から出力された中間データを前記メモリに転送し記憶させるように制御する。
【0034】
請求項8記載の発明は、請求項7記載のウェーブレット変換装置であって、前記制御部は、前記変換処理として、「前記第2データ列に属する入力データを始点とする系列」(以下、第2系列と呼ぶ。)上の第1段階の中間データと、その中間データの系列に対して1点前後する「前記第1データ列に属する入力データを始点とする系列」(以下、第1系列と呼ぶ。)上の2点の第1段階の中間データを加算したデータに所定のリフティング係数を乗算して得たデータとを加算することで、当該第2系列上の第2段階の中間データを1点当たり1クロック周期内に算出する第1の変換処理と、第1系列上の第1段階の中間データと、その第1段階の中間データの系列に対して1点前後する第2系列上の2点の第2段階の中間データを加算したデータに所定のリフティング係数を乗算して得たデータとを加算することで、当該第1系列上の第2段階の中間データを1点当たり1クロック周期内に算出する第2の変換処理と、第2系列上の第M段階(段階数Mは1以上の整数)の中間データと、その第M段階の中間データの系列に対して1点前後する第1系列上の2点の第M段階の中間データを加算したデータに所定のリフティング係数を乗算して得たデータとを加算することで、当該第2系列上の第M+1段階の中間データを1点当たり1クロック周期内に算出する第3の変換処理と、第1系列上の第L段階(段階数Lは1以上の整数)の中間データと、その第L段階の中間データの系列に対して1点前後する第2系列上の2点の第L+1段階の中間データを加算したデータに所定のリフティング係数を乗算して得たデータとを加算することで、当該第1系列上の第L+1段階の中間データを1点当たり1クロック周期内に算出する第4の変換処理と、を全ての点の前記出力データが算出されるまで前記3点演算部に繰り返し実行させるように制御する。
【0035】
請求項9記載の発明は、請求項8記載のウェーブレット変換装置であって、互いに独立に動作する2個の前記3点演算部を備え、前記制御部は、前記第1データ列に属し且つ前記入力データ列の中でP番目(データ番号Pは整数)の入力データを始点とする系列上の前記中間データを算出する前記第2の変換処理と、P−4番目の入力データを始点とする系列上の第L+1段階の前記中間データを算出する前記第4の変換処理と、の2個の処理をそれぞれ前記各3点演算部に並列に実行させるように制御する。
【0036】
請求項10記載の発明は、請求項8または請求項9記載のウェーブレット変換装置であって、前記制御部は、前記入力データ列の中でP+3番目(データ番号Pは整数)の入力データを始点とする系列上の前記中間データを算出する前記第1の変換処理と、P−1番目の入力データを始点とする系列上の第M+1段階の中間データを算出する前記第3の変換処理と、の2個の処理をそれぞれ前記各3点演算部に並列に実行させるように制御する。
【0037】
請求項11記載の発明は、請求項8記載のウェーブレット変換装置であって、前記制御部は、前記第1の変換処理〜前記第4の変換処理を並列にさせるように制御する。
【0038】
請求項12記載の発明は、請求項1〜請求項11の何れか1項に記載のウェーブレット変換装置であって、前記フィルタリング部は、直列に接続される第1フィルタリング部と第2フィルタリング部とから構成されており、前記第1フィルタリング部は、水平方向および垂直方向のうちの一方向に帯域分割されている前記高域成分および前記低域成分のデータを入力し、これらのデータを合成してライン単位で算出し、前記第2フィルタリング部は、前記第1フィルタリング部で算出された合成データに対して処理を実行することで、前記水平方向および前記垂直方向のうちの他方向の合成データを算出する。
【0039】
請求項13記載の発明は、リフティング構成に基づいて、帯域分割された高域成分のデータと低域成分のデータとを合成するウェーブレット変換方法であって、(a)高域成分および低域成分の一方からなる第1データ列と、その他方からなる第2データ列とが画素単位で交互に配列されて構成される入力データ列から、入力データを選択的に取り込む工程と、(b)前記工程(a)で取り込まれた前記入力データの各々に規格化係数を乗算することで第1段階の中間データへ1点当たり1クロック周期内に変換する工程と、(c)第m段階(mは1以上の整数)の中間データを第m+1段階の中間データへ1点当たり1クロック周期内に算出する工程(第m段階の中間データが最終段階の中間データである場合を含む。この場合、第m+1段階の中間データは出力データである。)と、を備え、前記工程(b)および工程(c)を、全ての点の前記出力データが算出されるまで繰り返し実行し、且つ、繰り返し実行される前記工程(b)および工程(c)を1クロック周期内に並列に実行することを特徴とする。
【0040】
請求項14記載の発明は、請求項13に記載のウェーブレット変換方法であって、前記工程(c)は、(c−1)「前記第2データ列に属する入力データを起点とする系列」(以下、第2系列と呼ぶ。)上の第1段階の中間データと、その中間データに対して1点前の「前記第1データ列に属する入力データを起点とする系列」(以下、第1系列と呼ぶ。)上の第1段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第2系列上の第2段階の一時データを1点当たり1クロック周期内に算出する工程と、(c−2)前記工程(c−1)で算出され前記メモリに記憶された前記一時データと、その一時データの系列に対して1点後の第1系列上の第1段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第2系列上の第2段階の中間データを1点当たり1クロック周期内に算出する工程と、(c−3)第1系列上の第1段階の中間データと、その中間データに対して1点前の第2系列上の第2段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第1系列上の第2段階の一時データを1点当たり1クロック周期内に算出する工程と、(c−4)前記工程(c−3)で算出され前記メモリに記憶された前記一時データと、その一時データの系列に対して1点後の第2系列上の第2段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第1系列上の第2段階の中間データを1点当たり1クロック周期内に算出する工程と、(c−5)第2系列上の第M段階(段階数Mは1以上の整数)の中間データと、その中間データの系列に対して1点前の第1系列上の第M段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第2系列上の第M+1段階の一時データを1点当たり1クロック周期内に算出する工程と、(c−6)前記工程(c−5)で算出され前記メモリに記憶された前記一時データと、その一時データの系列に対して1点後の第1系列上の第M段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第2系列上の第M+1段階の一時データを1点当たり1クロック周期内に算出する工程と、(c−7)第1系列上の第L段階(段階数Lは1以上の整数)の前記中間データと、その中間データの系列に対して1点前の第2系列上の第L+1段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第1系列上の第L+1段階の一時データを1点当たり1クロック周期内に算出する工程と、(c−8)前記工程(c−7)で算出され前記メモリに記憶された前記一時データと、その一時データの系列に対して1点後の第2系列上の第L+1段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第1系列上の第L+1段階の中間データを1点当たり1クロック周期内に算出する工程と、を備え、前記工程(c−1)〜工程(c−8)を、全ての点の出力データが算出されるまで繰り返し実行させるように制御する。
【0041】
請求項15記載の発明は、請求項14記載のウェーブレット変換方法であって、前記工程(c−1)および前記工程(c−3)を実行した後に、前記工程(c−5)および前記工程(c−7)を、前記出力データの一時データが算出されるまで実行し、その後、前記工程(c−2)および前記工程(c−4)を実行した後に、前記工程(c−6)および前記工程(c−8)を、前記出力データが算出されるまで実行する。
【0042】
請求項16記載の発明は、請求項14記載のウェーブレット変換方法であって、前記第2データ列に属し且つ前記入力データ列の中でP番目(データ番号Pは整数)の入力データを始点とする系列上の第2段階の中間データを算出する前記工程(c−2)と、P−1番目の入力データを始点とする系列上の第2段階の一時データを算出する前記工程(c−3)と、P−4番目の入力データを始点とする系列上の第M+1段階の中間データを算出する前記工程(c−6)と、P−5番目の入力データを始点とする系列上の第L+1段階の一時データを算出する前記工程(c−7)と、の4工程を前記各2点演算部に並列に実行させると共に、P+2番目の入力データを始点とする系列上の第2段階の一時データを算出する前記工程(c−1)と、前記P−1番目の入力データを始点とする系列上の第2段階の前記中間データを算出する前記工程(c−4)と、P−2番目の入力データを始点とする系列上の第M+1段階の一時データを算出する前記工程(c−5)と、前記P−5番目の入力データを始点とする系列上の第L+1段階の中間データを算出する前記工程(c−8)と、の4個の処理をそれぞれ並列に実行させるように制御する。
【0043】
請求項17記載の発明は、請求項13に記載のウェーブレット変換方法であって、前記工程(c)は、(c−1)「前記第2データ列に属する入力データを始点とする系列」(以下、第2系列と呼ぶ。)上の第1段階の中間データと、その中間データの系列に対して1点前後する「前記第1データ列に属する入力データを始点とする系列」(以下、第1系列と呼ぶ。)上の2点の第1段階の中間データを加算したデータに所定のリフティング係数を乗算して得たデータとを加算することで、当該第2系列上の第2段階の中間データを1点当たり1クロック周期内に算出する工程と、(c−2)第1系列上の第1段階の中間データと、その中間データの系列に対して1点前後する第2系列上の2点の第2段階の中間データを加算したデータに所定のリフティング係数を乗算して得たデータとを加算することで、当該第1系列上の第2段階の中間データを1点当たり1クロック周期内に算出する工程と、(c−3)第2系列上の第M段階(段階数Mは1以上の整数)の中間データと、その第M段階の中間データの系列に対して1点前後する第1系列上の2点の第M段階の中間データを加算したデータに所定のリフティング係数を乗算して得たデータとを加算することで、当該第2系列上の第M+1段階の中間データを1点当たり1クロック周期内に算出する工程と、(c−4)第1系列上の第L段階(段階数Lは1以上の整数)の中間データと、その第L段階の中間データの系列に対して1点前後する第2系列上の2点の第L+1段階の中間データを加算したデータに所定のリフティング係数を乗算して得たデータとを加算することで、当該第1系列上の第L+1段階の中間データを1点当たり1クロック周期内に算出する工程と、を備え、前記工程(c−1)〜工程(c−4)を、全ての点の前記出力データが算出されるまで繰り返し実行する。
【0044】
請求項18記載の発明は、請求項17記載のウェーブレット変換方法であって、前記第1データ列に属し且つ前記入力データ列の中でP番目(データ番号Pは整数)の入力データを始点とする系列上の第2段階の中間データを算出する前記工程(c−2)と、P−4番目の入力データを始点とする系列上の第L+1段階の前記中間データを算出する前記工程(c−4)と、の2個の処理をそれぞれ並列に実行させるように制御する。
【0045】
請求項19記載の発明は、請求項17または請求項18記載のウェーブレット変換方法であって、前記入力データ列の中でP+3番目(データ番号Pは整数)の入力データを始点とする系列上の中間データを算出する前記工程(c−1)と、P−1番目の入力データを始点とする系列上の第M+1段階の中間データを算出する前記工程(c−3)と、の2個の処理をそれぞれ並列に実行させるように制御する。
【0046】
請求項20記載の発明は、請求項17記載のウェーブレット変換方法であって、前記工程(c−1)〜工程(c−4)を並列に実行する。
【0047】
請求項21記載の発明は、請求項13〜請求項20の何れか1項に記載のウェーブレット変換方法であって、低域成分と高域成分に帯域分割された2次元画像データに対して、当該2次元画像データの水平方向および垂直方向のうちの一方向にライン単位で前記工程(a)〜工程(c)を適用することによって合成データ列を算出し、この算出された合成データ列に対して、前記水平方向および前記垂直方向のうちの他方向に前記工程(a)〜工程(c)を適用する、ウェーブレット変換方法。
【0048】
【発明の実施の形態】
<第1の実施形態>
以下、本発明の第1の実施形態に係るウェーブレット変換装置およびウェーブレット変換方法について説明する。図1は、第1の実施形態に係るウェーブレット変換装置1の概略構成を示す図である。このウェーブレット変換装置1は、ウェーブレット変換によって分解された高域成分あるいは低域成分のサブバンドのデータを一時的に保持するバッファ8、外部供給のクロック信号CLKと同期して動作するMMU(メモリ管理部)2、第1リングメモリ3A、水平フィルタリング部4A、ラインバッファ回路5、第2リングメモリ3Bおよび垂直フィルタリング部4Bを備えて構成されている。ここで、第1リングメモリ3A、水平フィルタリング部4A、ラインバッファ回路5、第2リングメモリ3Bおよび垂直フィルタリング部4Bは、外部供給の画素クロック信号PCLKと同期して動作する。
【0049】
本実施形態では、MMU2、水平フィルタリング部4Aおよび垂直フィルタリング部4Bはハードウェアで構成されるが、この代わりに、マイクロプロセッサで実行する命令群を含むコンピュータ・プログラムで構成されてもよい。
【0050】
このウェーブレット変換装置1に入力したサブバンドのデータはバッファ8に一時的に記憶される。ウェーブレット変換装置1は、サブバンドのデータにラインベースの2次元逆DWTを1回施す機能を有している。水平フィルタリング部4Aと垂直フィルタリング部4Bとは、ラインバッファ回路5と第2リングメモリ3Bとを介して直列に接続されている。後述するように、サブバンドのデータは、水平フィルタリング部4Aで水平方向にフィルタリングされた後に、垂直フィルタリング部4Bで垂直方向にフィルタリングされる。2次以上の分解レベルのデータに対して2次元逆DWTを実行する場合、このウェーブレット変換装置1を2回以上繰り返し利用すればよい。
【0051】
MMU2は、バッファ8と第1リングメモリ3Aと第2リングメモリ3Bとのデータ入出力を制御する機能を有しており、バッファ8から読出した入力データを第1リングメモリ3Aに転送し記憶させることができる。水平フィルタリング部4Aは、第1リングメモリ3Aから入力したデータに対して水平方向にフィルタリングを実行することで、画素クロック信号PCLKの8クロック周期で、その水平方向の高域成分と同方向の低域成分とを合成した出力データを2点算出してラインバッファ回路5に出力できる。よって、1点の出力データを算出するのに要する平均周期は4クロック周期である。
【0052】
ラインバッファ回路5から出力されたデータは、第2リングメモリ3Bに記憶される。MMU2は、この第2リングメモリ3Bから垂直フィルタリング部4Bに入データを入力させる。垂直フィルタリング部4Bは、入力データに対して垂直方向にフィルタリングを実行することで、画素クロック信号PCLKの8周期で、その垂直方向の高域成分と同方向の低域成分とを合成した出力データを2点算出し、出力する。
【0053】
水平フィルタリング部4Aの構成と垂直フィルタリング部4Bの構成は互いに同一である。図2に、フィルタリング部4(水平フィルタリング部4Aまたは垂直フィルタリング部4B)の概略構成を示す。図2に示すリングメモリ3は、図1に示した第1リングメモリ3Aと第2リングメモリ3Bとの何れか一方を表すものとする。
【0054】
このフィルタリング部4は、入力データを選択的に取り込む第1データ・セレクタ11、第1係数乗算器12、遅延レジスタ16、第2データ・セレクタ17、第2係数乗算器18、加算器22、出力先選択部(DMUX)23および制御部24を備えて構成される。制御部24は、画素クロック信号PCLKと同期して動作する。第1,第2データ・セレクタ11,17は、この制御部24から供給される選択制御信号SEL0,SEL1の値に応じて、リングメモリ3で取り込んだ入力データや遅延レジスタ16に保持されたデータをそれぞれ第1端子S0と第2端子S1とに出力する。
【0055】
また、第1係数乗算器12は、制御部24から供給される制御信号C0に応じて、第1データ・セレクタ11の第1端子S0から出力されたデータに規格化係数κ,1/κの何れかを乗算して出力する(規格化処理)。第1係数乗算器12から出力されたデータは、遅延レジスタ16で画素クロック信号PCLKの1クロック周期遅延した後に、第2データ・セレクタ17に入力される。なお、第1係数乗算器12と遅延レジスタ16とで本発明の規格化手段が構成される。
【0056】
また、第2係数乗算器18は、制御部24から供給される制御信号C1に応じて、第2データ・セレクタ17の第1端子S0から出力されたデータにリフティング係数−α,−β,−γ,−δの何れかを乗算して出力する(係数乗算処理)。加算器22は、第2係数乗算器18から出力されたデータと、第2データ・セレクタ17の第2端子S1から出力されたデータとを加算して出力先選択部23に出力する(加算処理)。また、1/κで規格化処理されたデータは第2データ・セレクタ17の第3端子S2から外部のMMU2にも出力される。MMU2は、第2データ・セレクタ17の第3端子S2からそれぞれ外部へ出力されたデータをリングメモリ3に転送し記憶させることができる。
【0057】
また、出力先選択部23は、制御部24から供給される選択制御信号SEL2の値に応じて、加算器22から入力するデータを第1端子K0〜第3端子K2のいずれかから出力する。第2係数乗算器18と加算器22での係数乗算処理と加算処理は、1点当たり1クロック周期内に実行される。したがって、1点の入力データにリフティング係数を乗算し加算するのに要する期間は、画素クロック信号PCLKの1周期である。
【0058】
なお、係数レジスタ19と加算器22とはデータ・セレクタ17から2点の入力データを取り込んで演算する2点演算部を構成する。また、この2点演算部と出力先選択部23とで中間データ算出手段が構成される。
【0059】
出力先選択部23の第1端子K0および第2端子K1から出力されたデータは、低域成分と高域成分の入力データが合成された出力データとして外部へ出力される。
【0060】
また、出力先選択部23の第2端子K1から出力されたデータは分岐して外部のMMU2にも出力される。また、第3端子K2から出力されるデータは外部のMMU2に出力される。MMU2は、第2端子K1と第3端子K2からそれぞれ外部へ出力されたデータをリングメモリ3に転送し記憶させることができる。
【0061】
次に、以上のフィルタリング部4を用いたリフティング演算の代表例を、図3〜図10を参照しつつ以下に説明する。図3〜図10は、9×7タップのDaubechiesフィルタのリフティング構成を模式的に示す格子図である。この格子図の演算は、図37の場合と同様に行われる。なお、図3〜図10では、説明の便宜上、各格子点間を結ぶ線分に対応するリフティング係数−α,−β,−γ,−δと規格化係数κ,1/κとを表示していない。
【0062】
図3〜図10に示す通り、入力データ…,Y(2n−1),Y(2n),…,Y(2n+9),…は、それぞれ、複数の段階に亘る一系列の格子点(中間データ)に変換され、出力データ…,X(2n−1),X(2n),…,X(2n+9),として出力される。例えば、入力データY(2n)は、2段階の中間データ(格子点)を経た後、出力データX(2n)として出力される。以下、入力データを規格化して中間データを生成する処理を規格化処理(上記数式(1)中のstep1およびstep2が該当する)と呼び、その他の中間データを算出する処理を変換処理(上記step3およびstep4が該当する)と呼ぶ。なお、本実施形態や後述する他の実施形態では、各系列で2段階の中間データが算出されるが、本発明ではこれに限らず、1段階だけの中間データを算出するリフティング構成もあり得る。実際に、5×3タップや13×7タップのフィルタの場合、1段階だけの中間データを算出するリフティング構成が可能である。
【0063】
図3〜図10は、本実施形態でのN回目(Nは整数)〜N+7回目の処理の内容を示している。N回目処理(図3)では、対象領域A1内の2点の中間データS1 n+2とD1 n+1とを用いた上記ステップa(図38)の2点演算を画素クロック信号PCLKの1周期(1クロック周期)内に実行して、偶数番目の入力データY(2n+4)を始点とする系列上の第2段階の一時データ(S2 n+2)を算出する。すなわち、偶数番目の中間データS1 n+2と、この中間データS1 n+2に対して1点前の系列上の奇数番目の中間データD1 n+1とを用いて上記ステップaの処理が実行される。
【0064】
また、対象領域A1における演算処理の1クロック前の周期において、対象領域N1においては、入力データY(2n+4)に規格化係数κを乗算する規格化処理を実行して、入力データY(2n+4)の系列上の第1段階の中間データS1 n+2が算出されている。
【0065】
このN回目の具体的な処理の内容は次の通りである。図2に示すリングメモリ3は、入力データや中間データや一時データを格納する5ライン(系列)の記憶領域を備えており、参照済みの古いデータを格納する記憶領域に新たなデータを順番に上書きする構造を持つ。
【0066】
まず、1クロック前の周期で実行される対象領域N1における処理から説明する。MMU2は、このリングメモリ3に一時記憶された入力データY(2n+4)を第1データ・セレクタ11に出力させる。制御部24は、選択制御信号SEL0を第1データ・セレクタ11に供給して、入力データY(2n+4)を第1係数乗算器12に出力させる。第1係数乗算器12は、制御部24から供給された制御信号C0に従って選択した規格化係数κを乗算器14に出力し、乗算器14は、入力データY(2n+4)に規格化係数κを乗算して得たデータκ×Y(2n+4)=S1 n+2を遅延レジスタ16に出力する。この第1係数乗算器12での係数乗算処理は1クロック周期内に実行される。
【0067】
1クロック周期後、遅延レジスタ16に保持された中間データS1 n+2が第2データ・セレクタ17に出力される。また、MMU2は、リングメモリ3に一時記憶された中間データD1 n+1を第1データ・セレクタ11に出力させる。第1データ・セレクタ11は、制御部24から供給された選択制御信号SEL0に応じて、第2端子S1から中間データD1 n+1を出力する。出力されたデータは、第2データ・セレクタ17に入力される。第2データ・セレクタ17は、制御部24から供給される選択制御信号SEL1に応じて、中間データD1 n+1を第1端子S0から第2係数乗算器18に出力し、中間データS1 n+2を第2端子S1から加算器22に出力させる。
【0068】
第2係数乗算器18は、制御部24から供給された制御信号C1に従って選択したリフティング係数δを乗算器20に出力し、乗算器20は、中間データD1 n+1にリフティング係数δを乗算して得たデータδ×D1n+1を2の補数演算回路21に出力する。2の補数演算回路21は、入力データの符号を反転する演算回路であり、−δ×D1 n+1を加算器22に出力する。そして、加算器22は、2点のデータ−δ×D1 n+1とS1 n+2とを加算することで一時データ(S2 n+2)を算出し、出力先選択部23に出力する。この一時データ(S2 n+2)の算出処理は1クロック周期内に実行される。
【0069】
出力先選択部23は、制御部24から供給された選択制御信号SEL2の値に従って選択した第3端子K2から、外部のMMU2に一時データ(S2 n+2)を出力する。MMU2は、その一時データ(S2 n+2)をリングメモリ3に転送し、参照済みの記憶領域入力データY(2n+4)に上書きさせる。
【0070】
次の第N+1回目処理(図4)では、対象領域A2内の2点の中間データD1 n +1とS2 n+1とを用いた上記ステップaの2点演算を1クロック周期内に実行して、奇数番目の入力データY(2n+3)を始点とする系列上の第2段階の一時データ(D2 n+1)を算出する。中間データS2 n+1は、入力データY(2n+3)に対して1点前の入力データY(2n+2)を始点とする系列上の第2段階のデータである。具体的には、MMU2は、リングメモリ3から、計算済みの中間データD1 n+1とS2 n+1とを第1データ・セレクタ11に出力させる。次に、制御部24の制御により、第1データ・セレクタ11は、中間データD1 n+1とS2 n+1をそれぞれ第2,3端子S1,S2から第2データ・セレクタ17に出力する。さらに、制御部24の制御により、第2データ・セレクタ17は、中間データS2 n+1を第1端子S0から第2係数乗算器18に、中間データD1 n+1を第2端子S1から加算器22に出力する。
【0071】
第2係数乗算器18は、制御部24から供給された制御信号C1に従って選択したリフティング係数γを乗算器20に出力し、乗算器20は、中間データS2 n+1にリフティング係数γを乗算して得たデータγ×S2n+1を2の補数演算回路21に出力する。そして、加算器22は、2の補数演算回路21の出力データである−γ×S2 n+1と第2データ・セレクタ17からの出力であるD1 n+1を加算することで一時データ(D2 n+1)を算出し、出力先選択部23に出力する。出力先選択部23は、制御部24の制御により、その一時データ(D2 n+1)を第3端子K2から外部のMMU2に出力し、MMU2は、その一時データ(D2 n+1)をリングメモリ3に転送し、参照済みの記憶領域中間データD1 n+1に上書きさせる。
【0072】
次の第N+2回目処理(図5)では、対象領域A3内の2点の中間データS2 n+1とD2 nとを用いた上記ステップaの2点演算を1クロック周期内に実行して、偶数番目の入力データY(2n+2)を始点とする系列上の出力一時データ(X(2n+2))を算出する。中間データD2 nは、入力データY(2n+2)に対して1点前の入力データY(2n+1)を始点とする系列上の第2段階の中間データである。具体的には、MMU2は、リングメモリ3から、計算済みの中間データS2 n+1とD2 nとを第1データ・セレクタ11に出力させる。次に、制御部24の制御により、第1データ・セレクタ11は、中間データS2 n+1とD2 nをそれぞれ第2,3端子S1,S2から第2データ・セレクタ17に出力する。さらに、制御部24の制御により、第2データ・セレクタ17は、中間データD2 nを第1端子S0から第2係数乗算器18に、中間データS2 n+1を第2端子S1から加算器22に出力する。
【0073】
第2係数乗算器18は、中間データD2 nにリフティング係数βを乗算するとともに、リフティング係数βによって重み付けられたβ×D2nを2の補数演算回路21に出力する。そして、加算器22は、2の補数演算回路21の出力データである−β×D2 nと第2データ・セレクタ17からの出力であるS2 n+1を加算することで出力一時データ(X(2n+2))を算出し、出力先選択部23に出力する。出力先選択部23は、制御部24の制御により、その一時データ(X(2n+2))を第3端子K2から外部のMMU2に出力し、MMU2は、その一時データ(X(2n+2))をリングメモリ3に転送し、参照済みの記憶領域中間データS2 n+1に上書きさせる。
【0074】
次の第N+3回目処理(図6)では、対象領域A4内の中間データD2 nと出力データX(2n)とを用いた上記ステップaの2点演算を1クロック周期内に実行して、奇数番目の入力データY(2n+1)を始点とする系列上の出力一時データ(X(2n+1))を算出する。具体的には、MMU2は、リングメモリ3から、計算済みの中間データD2 nと出力データX(2n)とを第1データ・セレクタ11に出力させる。次に、制御部24の制御により、第1データ・セレクタ11は、中間データD2 nとX(2n)とをそれぞれ第2,3端子S1,S2から第2データ・セレクタ17に出力する。さらに、制御部24の制御により、第2データ・セレクタ17は、X(2n)を第1端子S0から第2係数乗算器18に、中間データD2 nを第2端子S1から加算器22に出力する。
【0075】
第2係数乗算器18は、X(2n)にリフティング係数αを乗算するとともに、リフティング係数αによって重み付けられたデータα×X(2n)を2の補数演算回路21に出力する。そして、加算器22は、2の補数演算回路21の出力である−α×X(2n)と第2データ・セレクタ17からの出力であるD2 nとを加算することで出力一時データ(X(2n+1))を算出し、出力先選択部23に出力する。出力先選択部23は、制御部24の制御により、その一時データ(X(2n+1))を第3端子K2から外部のMMU2に出力し、MMU2は、その一時データ(X(2n+1))をリングメモリ3に転送し、参照済みの記憶領域中間データD2 nに上書きさせる。
【0076】
次のN+4回目処理(図7)では、上記N回目処理(図3)で算出した一時データ(S2 n+2)と対象領域B1内の中間データD1 n+1とを用いた上記ステップb(図38)の2点演算を1クロック周期内に実行して、偶数番目の入力データY(2n+4)を始点とする系列上の第2段階の中間データS2 n+2を算出する。中間データD1 n+2は、一時データ(S2 n+2)の系列に対して1点後の系列上のデータである。
【0077】
また、この対象領域B1における演算処理を実行する1クロック前の周期において、対象領域N2では、入力データY(2n+5)に規格化係数1/κを乗算する規格化処理が実行される。これにより、入力データY(2n+5)の系列上の第1段階の中間データD1 n+2が算出されている。
【0078】
具体的な処理を1クロック前の周期から説明する。対象領域B1の演算を行なう1クロック前の周期において、MMU2は、リングメモリ3に一時記憶された入力データY(2n+5)を第1データ・セレクタ11に出力させる。制御部24は、選択制御信号SEL0を第1データ・セレクタ11に供給して、入力データY(2n+5)を第1係数乗算器12に出力させる。第1係数乗算器12は、制御部24の制御に従い入力データY(2n+5)に規格化係数1/κを乗算し、得られたデータ(1/κ)×Y(2n+5)=D1 n+2を遅延レジスタ16に出力する。この第1係数乗算器12での係数乗算処理は1クロック周期内に実行される。
【0079】
1クロック周期後、遅延レジスタ16に保持された中間データD1 n+2が第2データ・セレクタ17に出力される。また、MMU2は、リングメモリ3に一時記憶された一時データ(S2 n+2)を第1データ・セレクタ11に出力させる。制御部24は、選択制御信号SEL0を第1データ・セレクタ11に供給して、一時データ(S2 n+2)を第2データ・セレクタ17に出力させる。
【0080】
そして、制御部24は、選択制御信号SEL1を第2データ・セレクタ17に供給して、中間データD1 n+2を第1端子S0から第2係数乗算器18に出力し、一時データ(S2 n+2)を第2端子S1から加算器22に出力させる。さらに、第2データ・セレクタ17は、制御部24の制御により、中間データD1 n+2を第3端子S2から外部のMMU2に出力し、MMU2は、その中間データD1 n+2をリングメモリ3に転送し、参照済みの記憶領域入力データY(2n+5)に上書きさせる。
【0081】
第2係数乗算器18は、制御部24から供給された制御信号C1に従って選択したリフティング係数δを乗算器20に出力し、乗算器20は、中間データD1 n+2にリフティング係数δを乗算して得たデータδ×D1n+2を2の補数演算回路21に出力し、2の補数演算回路21はデータ−δ×D1 n+2を加算器22に出力する。そして、加算器22は、2点のデータ−δ×D1 n+2と一時データ(S2 n+2)とを加算することで中間データS2 n+2を算出し、出力先選択部23に出力する。この中間データS2 n+2の算出処理は1クロック周期内に実行される。
【0082】
出力先選択部23は、制御部24から供給された選択制御信号SEL2の値に従って選択した第3端子K2から、外部のMMU2に中間データS2 n+2を出力する。MMU2は、その中間データS2 n+2をリングメモリ3に転送し、参照済みの記憶領域一時データ(S2 n+2)に上書きさせる。
【0083】
次のN+5回目処理(図8)では、上記N+1回目処理(図4)で算出した一時データ(D2 n+1)と、前記N+4回目処理(図7)で算出した対象領域B1内の中間データS2 n+2とを用いた上記ステップbの2点演算を1クロック周期内に実行して、奇数番目の入力データY(2n+3)を始点とする系列上の第2段階の中間データD2 n+1を算出する。なお、中間データS2 n+2は、一時データ(D2 n+1)の系列に対して1点後の系列上の第2段階のデータである。
【0084】
具体的には、MMU2は、リングメモリ3から、一時データ(D2 n+1)と中間データS2 n+2とを第1データ・セレクタ11に出力させる。次に、制御部24の制御により、第1データ・セレクタ11は、一時データ(D2 n+1)および中間データS2 n+2を第2,第3端子S1,S2から第2データ・セレクタ17に出力する。さらに、制御部24の制御により、第2データ・セレクタ17は、中間データS2 n+2を第1端子S0から第2係数乗算器18に出力し、一時データ(D2 n+1)を第2端子S1から加算器22に出力する。第2係数乗算器18は、中間データS2 n+2にリフティング係数γを乗算するとともに、2の補数演算回路21において係数の符号を反転させる。加算器22は、リフティング係数−γを重み付けされた中間データ−γ×S2 n+2と一時データ(D2 n+1)とを加算して中間データD2 n+1を算出し、出力先選択部23に出力する。出力先選択部23は、制御部24の制御により、その中間データD2 n+1を第3端子K2から外部のMMU2に出力し、MMU2は、その中間データD2 n+1をリングメモリ3に転送し、参照済みの記憶領域一時データ(D2 n+1)に上書きさせる。
【0085】
次のN+6回目処理(図9)では、上記N+2回目処理(図5)で算出した出力一時データ(X(2n+2))と、前記N+5回目処理(図8)で算出した対象領域B2内の中間データD2 n+1とを用いた上記ステップbの2点演算を1クロック周期内に実行して、偶数番目の入力データY(2n+2)を始点とする系列上の出力データX(2n+2)を算出する。なお、中間データD2 n+1は、出力一時データ(X(2n+2))の系列に対して1点後の系列上の第2段階の中間データである。
【0086】
具体的には、MMU2は、リングメモリ3から、一時データ(X(2n+2))と中間データD2 n+1とを第1データ・セレクタ11に出力させる。次に、制御部24の制御により、第1データ・セレクタ11は、一時データ(X(2n+2))および中間データD2 n+1を第2,第3端子S1,S2から第2データ・セレクタ17に出力する。さらに、制御部24の制御により、第2データ・セレクタ17は、中間データD2 n+1を第1端子S0から第2係数乗算器18に出力し、一時データ(X(2n+2))を第2端子S1から加算器22に出力する。第2係数乗算器18は、中間データD2 n+1にリフティング係数βを乗算するとともに、2の補数演算回路21において係数の符号を反転させる。加算器22は、リフティング係数−βを重み付けされた中間データ−β×D2 n+1と一時データ(X(2n+2))とを加算して出力データX(2n+2)を算出し、出力先選択部23に出力する。出力先選択部23は、制御部24の制御により、その出力データX(2n+2)を第2端子K1から外部と外部のMMU2に出力し、MMU2は、その出力データX(2n+2)をリングメモリ3に転送し、参照済みの記憶領域一時データ(X(2n+2))に上書きさせる。
【0087】
次のN+7回目処理(図10)では、上記N+3回目処理(図6)で算出した出力一時データ(X(2n+1))と、前記N+6回目処理(図9)で算出した対象領域B4内の出力データX(2n+2)とを用いた上記ステップbの2点演算を1クロック周期内に実行して、奇数番目の入力データY(2n+1)を始点とする系列上の出力データX(2n+1)を算出する。なお、出力データX(2n+2)は、出力一時データ(X(2n+1))の系列に対して1点後の系列上の出力データである。
【0088】
具体的には、MMU2は、リングメモリ3から、一時データ(X(2n+1))と出力データX(2n+2)とを第1データ・セレクタ11に出力させる。次に、制御部24の制御により、第1データ・セレクタ11は、一時データ(X(2n+1))および出力データX(2n+2)を第2,第3端子S1,S2から第2データ・セレクタ17に出力する。さらに、制御部24の制御により、第2データ・セレクタ17は、出力データX(2n+2)を第1端子S0から第2係数乗算器18に出力し、一時データ(X(2n+1))を第2端子S1から加算器22に出力する。第2係数乗算器18は、出力データX(2n+2)にリフティング係数αを乗算するとともに、2の補数演算回路21において係数の符号を反転させる。加算器22は、リフティング係数−αを重み付けされた出力データ−α×X(2n+2)と一時データ(X(2n+1))とを加算して出力データX(2n+1)を算出し、出力先選択部23に出力する。出力先選択部23は、制御部24の制御により、その出力データX(2n+1)を第1端子K0から外部に出力する。
【0089】
次のN+8回目処理(図示せず)では、対象領域を除いて上記N回目処理(図3)と同様の処理が行われる。以降、N+1回目〜N+7回目までの処理が繰り返される。以上のように、上記N回目処理(図3)〜上記N+7回目処理(図10)と同様の処理が、全ての点の出力データ…,X(2n−1),X(2n),…が算出されるまで対象領域を移動させつつ実行される。
【0090】
また、本実施形態では、上記N回目〜N+3回目の処理で示したように、最終段階の出力一時データ(X(2n+1))が算出されるまで上記ステップaの2点演算が実行され、その後、上記N+4回目〜N+7回目の処理で示したように、上記N回目〜N+3回目の処理で算出した全ての一時データを中間データあるいは出力データに変換する上記ステップbの2点演算が行われている。
【0091】
以上のように、本実施形態に係るウェーブレット変換方法では、入力データ…,Y(2n),Y(2n+1),…を規格化する処理と、規格化された中間データを他の中間データに変換する変換処理とを1クロック周期内に並列に同時実行するため、1点の出力データを算出するのに要する平均周期を4クロック周期とすることができ、出力データの算出周期を短縮化できる。
【0092】
次に、上記ウェーブレット変換装置1を用いたラインベースの2次元逆DWT処理を以下に説明する。
【0093】
水平フィルタリング部4Aに入力するサブバンド(帯域成分)は、図11に示すように、サブバンド23LLおよび23HL、あるいは、サブバンド23LHおよび23HHである。ここで、サブバンド23LLは、水平方向の低域成分(L)と垂直方向の低域成分(L)とからなり、サブバンド23HLは、水平方向の高域成分(H)と垂直方向の低域成分(L)とからなり、サブバンド23LHは、水平方向の低域成分(L)と垂直方向の高域成分(H)とからなり、サブバンド23HHは、水平方向の高域成分(H)と垂直方向の高域成分(H)とからなる。
【0094】
水平フィルタリング部4Aに入力するサブバンド(帯域成分)が、サブバンド23LLおよび23HL、あるいは、サブバンド23LHおよび23HHである場合には、図3〜図10で示した入力データ・・・,Y(n−1),Y(n),Y(n+1),・・・は、サブバンド23LLと23HLの水平方向のデータを交互に配列したデータ、あるいは、サブバンド23LHと23HHの水平方向のデータを交互に配列したデータである。そして、サブバンド23LLと23HLとからなる入力データに対して水平フィルタリングを施すことにより、水平方向の合成処理が行なわれ、サブバンド23Lが出力される。また、サブバンド23LHと23HHとからなる入力データに対して水平フィルタリングを施すことにより、水平方向の合成処理が行なわれ、サブバンド23Hが出力される。図3〜図10で示した出力データ・・・,X(n−1),X(n),X(n+1),・・・は、サブバンド23Lあるいはサブバンド23Hの水平方向の1ラインのデータを示している。
【0095】
次に、垂直フィルタリング部4Bが入力するサブバンドは、図12に示すように、サブバンド23Lおよびサブバンド23Hである。この場合には、図3〜図10で示した入力データ・・・,Y(n−1),Y(n),Y(n+1),・・・は、サブバンド23Lと23Hの垂直方向のデータを交互に配列したデータである。そして、サブバンド23Lと23Hとからなる入力データに対して垂直フィルタリングを施すことにより、垂直方向の合成処理が行なわれ、画像データ23が出力される。図3〜図10で示した出力データ・・・,X(n−1),X(n),X(n+1),・・・は、画像データ23の垂直方向の1ラインのデータを示している。画像データ23は、水平画素数W、垂直画素数Hを有する矩形状のデータである。
【0096】
サブバンド23LL,23HL,23LH,23HHは、垂直画素数H/2、水平画素数W/2を有する矩形状のデータであって、図12に模式的に示すように、偶数行偶数列のサブバンド23LLおよび偶数行奇数列のサブバンド23HLを1組として、あるいは、奇数行偶数列のサブバンド23LHおよび奇数行奇数列をサブバンド23HHの1組として、垂直方向に配列するデータ列…,Yi(2n),Yi(2n+1),Yi(2n+2)…として水平フィルタリング部4Aに入力させられる。入力データYi(k)の添字iは、当該入力データYi(k)が所属する画素列の番号を示すものとする。画素列の番号iは、i=0,1,…,W−1(W:水平画素数)の値をとる。図中、サブバンド23LLおよび23HLを1組とした偶数行の記憶領域24Lと、サブバンド23LHおよびサブバンド23HHを1組とした奇数行の記憶領域24Hとを2領域に分割しているが、メモリ状のデータ配置はこれに限定されるものではない。
【0097】
具体的には、第1リングメモリ3Aと水平フィルタリング部4Aは、上記N回目処理(図3)〜上記N+7回目処理(図10)を含む各回の処理を、低域側(記憶領域24L側)と高域側(記憶領域24H側)を交互に切り替えながら、各回の処理を画素単位で繰り返し実行する。
【0098】
例えば、上記N回目処理(図3)が、メモリ領域24L側の1番目の画素行に対して1回実行された後に、上記N+1回目処理(図4)が1回実行され、更に、上記N+2回目処理(図5)が1回実行され、・・・といった処理が行われる。同様に、記憶領域24H側の1番目の画素行に対して実行され、次に、記憶領域24L側の2番目の画素行に対して実行された後に、記憶領域24H側の2番目の画素行に対して実行され、次に、記憶領域24L側の3番目の画素行に対して実行された後に、記憶領域24H側の3番目の画素行に対して実行され、・・・、最終的に、記憶領域24L側のH/2番目の画素行に対して実行された後に、記憶領域24H側のH/2番目の画素行に対して実行される。
【0099】
なお、第1リングメモリ3Aは、図13に模式的に示すように、入力データ…,Xj(k),Xj+1(k),…に対応する5点(5画素)のデータを保持する記憶領域26を有しており、上記一時データや中間データを保持することができる。
【0100】
この結果、水平フィルタリング部4Aからは、サブバンド23LLと23HLとが合成されたサブバンド23Lの各水平ライン単位(H/2高さ)の出力と、サブバンド23LHと23HHとが合成されたサブバンド23Hの各水平ライン単位(H/2高さ)の出力とが、交互にで連続的に出力される。そして、サブバンド23Lの水平ラインが、ラインバッファ回路5内のL用ラインバッファ5Lにバッファリングされ、サブバンド23Hの水平ラインが、ラインバッファ回路5内のH用ラインバッファ5Hにバッファリングされる。
【0101】
例えば、上記N+6回目処理(図9)が1番目〜W番目の各画素に対して連続的に実行された結果、2n+2番目の水平成分の合成された1ラインのデータX0(2n+2),X2(2n+2),…,Xj(2n+2),…,Xw -1(2n+2)が連続的に出力され、L用ラインバッファ回路5Lでバッファリングされる。次に、上記N+7回目処理(図10)が1番目〜W番目の各画素に対して連続的に実行された結果、2n+1番目の水平成分の合成された1ラインのデータX0(2n+1),X2(2n+1),…,Xj(2n+1),…,Xw -1(2n+1)が連続的に出力され、H用ラインバッファ回路5Hでバッファリングされる。
【0102】
ラインバッファ回路5は、MMU2の制御により、L用ラインバッファ5L内の1水平ラインの成分とH用ラインバッファ5H内の1水平ラインの成分とを1ラインづつ交互に第2リングメモリ3Bに供給する。第2リングメモリ3Bに出力されたデータが垂直フィルタリング部4Bで処理される。
【0103】
具体的には、第2リングメモリ3Bと垂直フィルタリング部4Bは、上記N回目処理(図3)〜上記N+7回目処理(図10)を含む各画素列について処理を水平ライン単位で繰り返し実行する。例えば、上記N回目処理(図3)が、0番目の画素列に対して実行された後に、1番目の画素列に対して実行され、次に、2番目の画素列に対して実行され、・・・、最終的に、W−1番目の画素列に対して実行される。次に、上記N+1回目処理(図4)が、0番目の画素列に対して実行された後に、1番目の画素列に対して実行され、更に、2番目の画素列に対して実行され、・・・、最終的に、W−1番目の画素列に対して実行される。このようにして、各回の処理が全ての画素列について順次実行される。なお、第2リングメモリ3Bは、図12に模式的に示すように、入力データ列に対応する5×W点(5ライン)のデータを保持する記憶領域24を有しており、上記一時データや中間データを保持することができる。
【0104】
この結果、垂直フィルタリング部4Bは、水平ライン単位で入力するデータ行から画像データ23を出力するのである。
【0105】
以上の処理を再帰的に実行させることで、任意次数の分解レベルの帯域成分を合成処理し、画像データを復元することができる。すなわち、k−1次(kは2以上の整数)の分解レベルにおけるサブバンドLL(k−1),HL(k−1),LH(k−1),HH(k−1)を、ウェーブレット変換装置1に再帰的に入力させることで、k次のサブバンドLL(k)を得ることが可能である。
【0106】
以上のように、本実施形態に係るウェーブレット変換装置1では、図2に示す構成を有する水平フィルタリング部4Aと垂直フィルタリング部4Bとを備えるため、出力データの算出周期を短縮化できる。したがって、ラインベースの2次元ウェーブレット変換を短時間で高速で行うことが可能である。
【0107】
<第2の実施形態>
次に、本発明の第2の実施形態に係るウェーブレット変換装置およびウェーブレット変換方法について説明する。図14は、第2の実施形態に係るウェーブレット変換装置30の概略構成を示す図である。このウェーブレット変換装置30は、サブバンドの2次元画像データを一時的に保持するバッファ34、外部供給のクロック信号CLKと同期して動作するMMU(メモリ管理部)31、第1リングメモリ32A、水平フィルタリング部33A、第2リングメモリ32Bおよび垂直フィルタリング部33Bを備えて構成されている。ここで、第1リングメモリ32A、水平フィルタリング部33A、第2リングメモリ32Bおよび垂直フィルタリング部33Bは、外部供給の画素クロック信号PCLKと同期して動作する。
【0108】
なお、図中、第1および第2リングメモリ32A,32Bの画素数あるいはライン数が8or9となっているが、この第2の実施形態においては、第1リングメモリ32Aは、9点のリングメモリであり、第2リングメモリ32Bは、9ラインのリングメモリである。
【0109】
本実施形態では、MMU31、水平フィルタリング部33Aおよび垂直フィルタリング部33Bはハードウェアで構成されるが、この代わりに、マイクロプロセッサで実行する命令群を含むコンピュータ・プログラムで構成されてもよい。
【0110】
このウェーブレット変換装置30に入力したサブバンドの2次元画像データはバッファ34に一時的に記憶される。ウェーブレット変換装置30は、2次元画像データにラインベースの2次元逆DWTを1回施す機能を有し、k+1次レベルのサブバンド23LL,23HL,23LH,23HHを合成して、k次のサブバンド23LLを生成する。水平フィルタリング部33Aと垂直フィルタリング部33Bとは、第2リングメモリ32Bを介して直列に接続されている。サブバンドのデータは、水平フィルタリング部33Aで水平方向にフィルタリングされた後に、垂直フィルタリング部33Bで垂直方向にフィルタリングされる。2次以上の分解レベルのサブバンドを合成する2次元逆DWTを実行する場合、このウェーブレット変換装置30を2回以上繰り返し利用すればよい。
【0111】
MMU31は、バッファ34と第1リングメモリ32Aと第2リングメモリ32Bとのデータ入出力を制御する機能を有しており、バッファ34から読出したサブバンドのデータを第1リングメモリ32Aに転送し記憶させることができる。詳しくは、サブバンド23LLおよび23HLの水平方向のデータが画素単位で交互に配列されたデータ、および、サブバンド23LHおよび23HHの水平方向のデータが画素単位で交互に配列されたデータとが、第1リングメモリ32Aに記憶される。水平フィルタリング部33Aは、第1リングメモリ32Aから入力したデータに対して水平方向にフィルタリングを実行することで、画素クロック信号PCLKの1クロック周期で、その高域成分と低域成分とを合成したデータを1点ずつ算出して第2リングメモリ32Bに出力できる。詳しくは、サブバンド23LLおよび23HLが合成されたデータと、サブバンド23LHおよび23HHが合成されたデータとが交互に出力されて第2リングメモリ32Bに記憶される。
【0112】
次に、MMU31は、この第2リングメモリ32Bから垂直フィルタリング部33Bにデータを入力させる。垂直フィルタリング部33Bは、入力したデータに対して垂直方向にフィルタリングを実行することで、画素クロック信号PCLKの1クロック周期で、高域成分と低域成分とを合成したデータを1点ずつ算出し、出力する。
【0113】
水平フィルタリング部33Aの構成と垂直フィルタリング部33Bの構成とは互いに同一である。図15に、フィルタリング部33(水平フィルタリング部33Aまたは垂直フィルタリング部33B)の概略構成を示す。図15に示すリングメモリ32は、図14に示した第1リングメモリ32Aと第2リングメモリ32Bとの何れか一方を表すものとする。
【0114】
このフィルタリング部33は、入力データを選択的に取り込む第1データ・セレクタ35、第1係数乗算器36、遅延レジスタ40、第2データ・セレクタ41、第3データ・セレクタ42、加算器43,48,49,54、第2係数乗算器44、第3係数乗算器50、出力先選択部(DMUX)55、および制御部56を備えて構成される。これら構成要素のうち、2個の加算器43,48と第2係数乗算器44からなる組は、3点のデータを1クロック周期内に処理する3点演算部を構成する。また、2個の加算器49,54と第3係数乗算器50からなる組も同様に3点演算部を構成する。また、これら2組の3点演算部と出力先選択部55とで中間データ算出手段が構成される。
【0115】
制御部56は、画素クロック信号PCLKと同期して動作する。第1データ・セレクタ35は、この制御部56から供給される選択制御信号SEL0の値に応じて、リングメモリ32で取り込んだデータを第1端子S0〜第7端子S6の何れかから選択的に出力する。
【0116】
第1データ・セレクタ35の第1端子S0から出力されたデータは、第1係数乗算器36に入力される。第1係数乗算器36では、係数レジスタ37は、制御部56から供給される制御信号C0の値に応じて、規格化係数1/κ,κの何れか一方を乗算器38に出力し、乗算器38は、入力データにその規格化係数を乗算する規格化処理を1クロック周期内に実行する。第1係数乗算器36から出力されたデータは、遅延レジスタ40で画素クロック信号PCLKの1クロック周期遅延した後に第2データ・セレクタ41に入力される。なお、第1係数乗算器36と遅延レジスタ40とで本発明の規格化手段が構成される。
【0117】
3点演算部においては、加算器43は、第3データ・セレクタ42の第1端子S0と第2端子S1とから出力された2点のデータを加算して第2係数乗算器44に出力する。第2係数乗算器44では、係数レジスタ45は、制御部56から供給される制御信号C1の値に応じて、リフティング係数δ,αの何れか一方を入力データに乗算し、2の補数演算回路47で符号が反転された後、加算器48に出力される。そして、加算器48は、第3データ・セレクタ42の第3端子S2から入力したデータと、第2係数乗算器44から入力したデータとを加算して出力先選択部55に出力する。
【0118】
また、加算器49は、第3データ・セレクタ42の第4端子S3と第5端子S4とから出力された2点のデータを加算して第3係数乗算器50に出力する。第3係数乗算器50では、係数レジスタ51は、制御部56から供給される制御信号C2の値に応じて、リフティング係数β,γの何れか一方を入力データに乗算し、2の補数演算回路53で符号が反転した後、加算器54に出力される。加算器54は、第3データ・セレクタ42の第6端子S5から入力したデータと、第3係数乗算器50から入力したデータとを加算して出力先選択部55に出力する。
【0119】
出力先選択部55は、制御部56から供給される選択制御信号SEL3の値に応じて、加算器48,54から並列に入力する2点のデータを第1端子K0から第3端子K2のいずれかから出力する。
【0120】
また、出力先選択部55の第2端子K1から出力されたデータは分岐して外部のMMU2にも出力され、第3端子K2から出力されるデータは外部のMMU2に出力される。MMU2は、第2端子K1と第3端子K2からそれぞれ外部へ出力されたデータをリングメモリ32に転送し記憶させることができる。
【0121】
次に、以上のフィルタリング部33を用いたリフティング演算の代表例を、図16〜図19を参照しつつ以下に説明する。図16〜図19は、9×7タップのDaubechiesフィルタのリフティング構成を模式的に示す格子図である。この格子図の演算は、図37の場合と同様に行われる。なお、図16〜図19は、説明の便宜上、各格子点間を結ぶ線分に対応するリフティング係数−α,−β,−γ,−δと規格化係数κ,1/κとを表示していない。
【0122】
図16〜図19は、本実施形態でのN回目(Nは整数)〜N+3回目の処理を模式的に示している。N回目処理(図16)では、対象領域C1,C2の2個の変換処理が1クロック周期内に並列に同時実行される。対象領域C2では、2点の出力データX(2n),X(2n+2)を加算したデータにリフティング係数−αを乗算することで乗算値を算出した後、この乗算値と中間データD2 nとを加算するという3点演算が実行される。この結果、奇数番目の入力データY(2n+1)を始点とする系列上の出力データX(2n+1)が算出される。2点の出力データX(2n),X(2n+2)は、中間データD2 nの系列に対して1点前後する2系列上のデータである。また、対象領域C1では、2点の中間データS2 n+2,S2 n+3を加算したデータにリフティング係数−γを乗算することで乗算値を算出した後、この乗算値と中間データD1 n+2とを加算するという3点演算が実行される。この結果、偶数番目の入力データY(2n+5)を始点とする系列上の第2段階の中間データD2 n+2が算出される。ここで、2点の中間データS2 n+2,S2 n+3は、中間データD1 n+2の系列に対して1点前後する2系列上のデータである。
【0123】
また、上記対象領域C1およびC2における演算の1クロック前の周期に、対象領域N1において、入力データY(2n+8)に規格化係数κを乗算する規格化処理が実行され、入力データY(2n+8)の系列上の第1段階の中間データであるS1 n+4が算出される。
【0124】
このN回目の具体的な処理の内容は次の通りである。図15に示すリングメモリ32は、入力データや中間データや一時データを格納する9ライン(系列)の記憶領域を備えており、参照済みの古いデータを格納する記憶領域に新たなデータを順番に上書きする構造を持つ。
【0125】
MMU31は、このリングメモリ32に一時記憶された入力データY(2n+8)を第1データ・セレクタ35に出力させる。制御部56は、選択制御信号SEL0を第1データ・セレクタ35に供給して、入力データY(2n+8)を第1係数乗算器36に出力させる。第1係数乗算器36は、制御部56から供給された制御信号C0に従って2個の規格化係数κ,1/κのうち後半の係数κを選択して乗算器38に供給し、乗算器38は、入力データと規格化係数κとを乗算した乗算値(=κ×Y(2n+8)=S1 n+4)を遅延レジスタ40に出力する。この第1係数乗算器36での係数乗算処理は1クロック周期内に実行される。
【0126】
この係数乗算処理から1クロック周期後、遅延レジスタ40に記憶された中間データS1n+4が第2データ・セレクタ41に出力される。第2データ・セレクタ41は、制御部56から供給される選択制御信号SEL1に従って、中間データS1 n+4を第2端子S1からMMU31に出力し、MMU31は、その中間データS1 n+4をリングメモリ32に転送し、参照済みの記憶領域入力データY(2n+8)に上書きさせる。また、この中間データS1 n+4をMMU31に出力する周期と同じクロック周期において、MMU31は、リングメモリ32に一時記憶された6点のデータX(2n),D2 n,X(2n+2),S2 n+2,D1 n+2,S2 n+3を第1データ・セレクタ35に出力させる。第1データ・セレクタ35は、制御部56から供給される選択制御信号SEL0の値に応じて、前記6点のデータを第2端子S1〜第7端子S6に出力する。この出力は、次に、第3データ・セレクタ42に入力され、第3データ・セレクタ42は、制御部56から供給される選択制御信号SEL2の値に応じて、入力データのうち対象領域C2内の3点のデータX(2n),X(2n+2),D2 nを選択して、それぞれ第1端子S0〜第3端子S2から出力し、入力データのうち対象領域C1内の3点のデータS2 n+2,S2 n+3,D1 n+2を選択して、それぞれ第4端子S3〜第6端子S5から出力する。
【0127】
上方の加算器43は、第3データ・セレクタ42の第1端子S0と第2端子S1から入力した2点のデータX(2n),X(2n+2)を加算したデータを第2係数乗算器44に出力する。第2係数乗算器44において、係数レジスタ45は、制御部56から供給される制御信号C1に従って、2個のリフティング係数α,δのうち後半の係数αを選択して乗算器46に供給し、乗算器46は、入力データとリフティング係数αとを乗算した乗算値(=α×(X(2n)+X(2n+2)))を2の補数演算回路47に出力する。2の補数演算回路47において、符号が反転されたデータは、加算器48に出力される。そして、加算器48は、第2係数乗算器44から入力する乗算値と、第3データ・セレクタ42の第3端子S2から入力した中間データD2 nとを加算することで、対象領域C2内の出力データX(2n+1)を算出し、出力先選択部55に出力する。この出力データX(2n+1)の算出処理は1クロック周期内に実行される。
【0128】
一方、下方の加算器50は、第3データ・セレクタ42の第4端子S3と第5端子S4とから入力した2点の中間データS2 n+2,S2 n+3を加算したデータを第3係数乗算器50に出力する。第3係数乗算器50では、係数レジスタ51は、制御部56から供給される制御信号C2に従って、2個のリフティング係数β,γのうち後半の係数γを選択して乗算器52に供給し、乗算器52は、入力データとリフティング係数γとを乗算した乗算値(=γ×(S2 n+2+S2 n+3))を2の補数演算回路53に出力する。2の補数演算回路53において、符号が反転されたデータは、加算器54に出力される。そして、加算器54は、第3係数乗算器50から入力する乗算値と、第3データ・セレクタ42の第6端子S5から入力した中間データD1 n+2とを加算することで、対象領域C1内の中間データD2 n+2を算出し、出力先選択部55に出力する。この中間データD2 n+2の算出処理は1クロック周期内に実行される。
【0129】
出力先選択部55は、制御部56から供給された選択制御信号SEL3の値に従って、加算器48から入力した出力データX(2n+1)を第1端子K0から出力し、他方の加算器54から入力した中間データD2 n+2を第3端子K2から外部のMMU31に出力し、MMU31は、その中間データD2 n+2をリングメモリ32に転送し、参照済みの記憶領域中間データD1 n+2に上書きさせる。
【0130】
次に、N+1回目処理(図17)における対象領域C3,C4の変換処理が行なわれる。対象領域C3では、2点の中間データD1 n+3,D1 n+4を加算したデータにリフティング係数−δを乗算することで乗算値を算出した後、この乗算値と中間データS1 n+4とを加算するという3点演算が実行される。この結果、偶数番目の入力データY(2n+8)を始点とする系列上の第2段階の中間データS2 n+4が算出される。ここで、2点の中間データD1 n+3,D1 n+4は、中間データS1 n+4に対して1点前後するデータである。また、対象領域C4では、2点の中間データD2 n+1,D2 n+2を加算したデータにリフティング係数−βを乗算することで乗算値を算出した後、この乗算値と中間データS2 n+2とを加算するという3点演算が実行される。この結果、偶数番目の入力データY(2n+4)を始点とする系列上の出力データX(2n+4)が算出される。ここで、2点の中間データD2 n+1,D2 n+2は、中間データS2 n+2の系列に対して1点前後する2系列上のデータである。
【0131】
また、対象領域C3,C4における演算処理が実行される1クロック前の周期において、対象領域N2における処理が実行される。対象領域N2においては、入力データY(2n+9)に規格化係数1/κを乗算する規格化処理が実行され、中間データD1 n+4が出力される。
【0132】
このN+1回目の具体的な処理内容は次の通りである。まず、1クロック前の周期に実行される対象領域N2の処理から説明する。MMU31は、このリングメモリ32に一時記憶された入力データY(2n+9)を第1データ・セレクタ35に出力させる。制御部56は、選択制御信号SEL0を第1データ・セレクタ35に供給して、入力データY(2n+9)を第1係数乗算器36に出力させる。第1係数乗算器36は、制御部56から供給された制御信号C0に従って2個の規格化係数κ,1/κのうち前半の係数1/κを選択して乗算器38に供給し、乗算器38は、入力データと規格化係数1/κとを乗算した乗算値(=1/κ×Y(2n+9)=D1 n+4)を遅延レジスタ40に出力する。この第1係数乗算器36での係数乗算処理は1クロック周期内に実行される。
【0133】
この係数乗算処理から1クロック周期後、遅延レジスタ40に記憶された中間データD1n+4が第2データ・セレクタ41に出力される。第2データ・セレクタ41は、制御部56から供給される選択制御信号SEL1に従って、中間データD1 n+4を第1端子S0から第3データ・セレクタ42に出力し、且つ、中間データD1 n+4を第2端子S1からMMU31に出力し、MMU31は、その中間データD1 n+4をリングメモリ32に転送し、参照済みの記憶領域入力データY(2n+9)に上書きさせる。次に、この中間データD1 n+4を第3データ・セレクタ42に出力する周期と同じクロック周期において、MMU31は、リングメモリ32に一時記憶された5点のデータD2 n+1,S2 n+2,D2 n+2,D1 n+3,S1 n+4を第1データ・セレクタ35に出力させる。第1データ・セレクタ35は、制御部56から供給された選択制御信号SEL0の値に応じて、前記5点のデータを第2端子S1〜第6端子S5に出力する。この出力は、次に、第3データ・セレクタ42に入力され、第3データ・セレクタ42は、前記5点のデータのうち対象領域C3内の3点の入力データD2 n+1,D2 n+2,S2 n+2,を選択して第4端子S3〜第6端子S5から出力し、前記5点のデータのうち対象領域C4内の2点のデータおよび第2データ・セレクタ41から入力したデータD1 n+3,D1 n+4,S1 n+4を選択して第1端子S0〜第3端子S2から出力する。
【0134】
上方の加算器43は、第3データ・セレクタ42の第1端子S0と第2端子S1から入力した2点のデータD1 n+3,D1 n+4を加算したデータを第1係数乗算器44に出力する。第1係数乗算器44において、係数レジスタ45は、制御部56から供給される制御信号C1に従って、2個のリフティング係数α,δのうち前半の係数δを選択して乗算器46に供給し、乗算器46は、入力データとリフティング係数δとを乗算した乗算値(=δ×(D1 n+3+D1 n+4))を2の補数演算回路47に出力する。2の補数演算回路47において、符号が反転されたデータは、加算器48に出力される。そして、加算器48は、第2係数乗算器44から入力する乗算値と、第3データ・セレクタ42の第3端子S2から入力した中間データS1 n+4とを加算することで、対象領域C3内の中間データS2 n+4を算出し、出力先選択部55に出力する。この中間データS2 n+4の算出処理は1クロック周期内に実行される。
【0135】
一方、下方の加算器49は、第3データ・セレクタ42の第4端子S3と第5端子S4とから入力した2点の中間データD2 n+1,D2 n+2を加算したデータを第3係数乗算器50に出力する。第3係数乗算器50では、係数レジスタ51は、制御部56から供給される制御信号C2に従って、2個のリフティング係数β,γのうち前半の係数βを選択して乗算器52に供給し、乗算器52は、入力データとリフティング係数βとを乗算した乗算値(=β×(D2 n+1+D2 n+2))を2の補数演算回路53に出力する。2の補数演算回路53において、符号が反転されたデータは、加算器54に出力される。そして、加算器54は、第3係数乗算器50から入力する乗算値と、第3データ・セレクタ42の第6端子S5から入力した中間データS2 n+2とを加算することで、対象領域C4内の出力データX(2n+4)を算出し、出力先選択部55に出力する。この出力データX(2n+4)の算出処理は1クロック周期内に実行される。
【0136】
出力先選択部55は、制御部56から供給された選択制御信号SEL3の値に従って、加算器54から入力した出力データX(2n+4)を第2端子K1から出力し、他方の加算器48から入力した中間データS2 n+4を第3端子K2から外部のMMU31に出力し、MMU31は、その中間データS2 n+4をリングメモリ32に転送し、参照済みの記憶領域中間データS1 n+4に上書きさせる。また、第2端子K1から出力された出力データX(2n+4)は分岐して外部のMMU31にも出力され、MMU31は、その出力データX(2n+4)をリングメモリ32に転送し、参照済みの記憶領域中間データS2 n+2に上書きさせる。
【0137】
次に、N+2回目処理(図18)における対象領域C5,C6の変換処理が実行される。また、対象領域C5,C6における演算処理が実行される1クロック前の周期において、対象領域N3の規格化処理が実行される。ここで、対象領域C5,C6,N3は、それぞれ、上記N回目処理(図16)の対象領域C1,C2,N1を2系列(2点)後方に移動した領域である。これら対象領域C5,C6,N3では、対象領域C1,C2,N1での処理と同様の処理が実行される。したがって、対象領域N3では、偶数番目の入力データY(2n+10)に規格化係数κを乗算する規格化処理を実行して、中間データS1 n+5を算出する。また、対象領域C5では、2点の中間データS2 n+3,S2 n+4を加算したデータにリフティング係数−γを乗算することで乗算値を算出した後、この乗算値と中間データD1 n+3とを加算するという3点演算が実行される。この結果、奇数番目の入力データX(2n+7)を始点とする系列上の第2段階の中間データD2 n+3が算出される。また、対象領域C6では、2点の出力データX(2n+2),X(2n+4)を加算したデータにリフティング係数−αを乗算することで乗算値を算出した後、この乗算値と中間データD2 n+1とを加算するという3点演算が実行される。この結果、奇数番目の入力データY(2n+3)を始点とする系列上の出力データX(2n+3)が算出される。
【0138】
次に、N+3回目処理(図19)における対象領域C7,C8の変換処理が実行される。また、対象領域C7,C8における演算処理が実行される1クロック前の周期において、対象領域N4の規格化処理が実行される。ここで、対象領域C7,C8,N4は、それぞれ、上記N+1回目処理(図17)の対象領域C3,C4,N2を2系列(2点)後方に移動した領域である。これら対象領域C7,C8,N4では、対象領域C3,C4,N2での処理と同様の処理が実行される。したがって、対象領域N4では、入力データY(2N+11)に規格化係数1/κを乗算する規格化処理を実行して、中間データD1 n+5を算出する。また、対象領域C7では、奇数番目の2点の中間データD1 n+4,D1 n+5を加算したデータにリフティング係数−δを乗算することで乗算値を算出した後、この乗算値と偶数番目の中間データS1 n+5とを加算するという3点演算が実行される。この結果、偶数番目の入力データX(2n+10)を始点とする系列上の第2段階の中間データS2 n+5が算出される。また、対象領域C8では、2点の中間データD2 n +2,D2 n+3を加算したデータにリフティング係数−βを乗算して乗算値を算出した後、この乗算値と中間データS2 n+3とを加算するという3点演算が実行される。この結果、偶数番目の入力データY(2n+6)を始点とする系列上の出力データX(2n+6)算出される。
【0139】
以上のように、上記N回目処理(図16)およびN+1回目処理(図17)と同様の処理が、全ての点の出力データが算出されるまで対象領域を移動させつつ繰り返し実行される。これにより、偶数番目或いは奇数番目の1点の出力データを算出するのに要する平均周期を1クロック周期とすることができ、出力データの算出周期を大幅に短縮化できる。
【0140】
次に、上記ウェーブレット変換装置30を用いたラインベースの2次元逆DWT処理を以下に説明する。
【0141】
水平フィルタリング部33Aに入力するサブバンド(帯域成分)は、図11に示すように、サブバンド23LLおよび23HL、あるいは、サブバンド23LHおよび23HHである。
【0142】
図16〜図19で示した入力データ・・・,Y(n−1),Y(n),Y(n+1),・・・は、サブバンド23LLと23HLの水平方向のデータを交互に配列したデータ、あるいは、サブバンド23LHと23HHの水平方向のデータを交互に配列したデータである。そして、サブバンド23LLと23HLとからなる入力データに対して水平フィルタリングを施すことにより、サブバンド23Lが出力され、サブバンド23LHと23HHとからなる入力データに対して水平フィルタリングを施すことによりサブバンド23Hが出力される。図16〜図19で示した出力データ・・・,X(n−1),X(n),X(n+1),・・・は、サブバンド23Lあるいはサブバンド23Hの水平方向の1ラインのデータ列を示している。
【0143】
次に、垂直フィルタリング部33Bが入力するサブバンドは、図11に示すように、サブバンド23Lおよびサブバンド23Hである。この場合には、図16〜図19で示した入力データ・・・,Y(n−1),Y(n),Y(n+1),・・・は、サブバンド23Lと23Hの垂直方向のデータを交互に配列したデータである。そして、サブバンド23Lと23Hとからなる入力データに対して垂直フィルタリングを施すことにより、画像データ23が出力される。図16〜図19で示した出力データ・・・,X(n−1),X(n),X(n+1),・・・は、画像データ23の垂直方向の1ラインのデータ列を示している。画像データ23は、水平画素数W、垂直画素数Hを有する矩形状のデータである。
【0144】
サブバンド23LL,23HL,23LH,23HHは、垂直画素数H/2、水平画素数W/2を有する矩形状のデータであって、図20に模式的に示すように、偶数行偶数列のサブバンド23LLおよび偶数行奇数列のサブバンド23HLを1組として、あるいは、奇数行偶数列のサブバンド23LHおよび奇数行奇数列のサブバンド23HHを1組として、垂直方向に配列するデータ列…,Yi(2n),Yi(2n+1),Yi(2n+2)…として水平フィルタリング部33に入力させられる。つまり、記憶領域58Lにおける各画素行(図の横方向のデータ列)は、サブバンド23LLおよび23HLの各水平ラインの画素を交互に配列したデータ列であり、記憶領域58Hに入力される各画素行(図の横方向のデータ列)は、サブバンド23LHおよび23HHの各水平ラインの画素を交互に配列したデータ列である。入力データYi(k)の添字iは、当該入力データYi(k)が所属する画素列の番号を示すものとする。画素列の番号iは、i=0,1.…,W−1(W:水平画素数)の値をとる。図中、サブバンド23LLおよび23HLを1組とした偶数行の記憶領域58Lと、サブバンド23LHおよびサブバンド23HHを1組とした奇数行の記憶領域58Hとを2領域に分割しているが、メモリ状のデータ配置はこれに限定されるものではない。
【0145】
具体的には、第1リングメモリ32Aと水平フィルタリング部33Aは、上記N回目処理(図16)〜上記N+2回目処理(図17)を含む各回の処理を、低域側(記憶領域58L側)と高域側(記憶領域58H側)を交互に切り替えながら、各回の処理を画素単位について繰り返し実行する。
【0146】
例えば、上記N回目処理(図16)が、メモリ領域58L側の1番目の画素行に対して1回実行された後に、上記N+1回目処理(図17)が1回実行され、更に、上記N+2回目処理(図18)が1回実行され、・・・といった処理が行われる。同様に、記憶領域58H側の1番目の画素行に対して実行され、次に、記憶領域58L側の2番目の画素行に対して実行された後に、記憶領域58H側の2番目の画素行に対して実行され、次に、記憶領域58L側の3番目の画素行に対して実行された後に、記憶領域58H側の3番目の画素行に対して実行され、・・・、最終的に、記憶領域58L側のH/2番目の画素行に対して実行された後に、記憶領域58H側のH/2番目の画素行に対して実行される。
【0147】
なお、第1リングメモリ32Aは、図21に模式的に示すように、入力データ…,Xj(k),Xj+1(k),…に対応する9点(9画素)のデータを保持する記憶領域59を有しており、上記一時データや中間データを保持することができる。
【0148】
この結果、水平フィルタリング部33Aからは、サブバンド23LLと23HLとが合成されたサブバンド23Lの各水平ライン単位(H/2高さ)の出力と、サブバンド23LHと23HHとが合成されたサブバンド23Hの各水平ライン単位(H/2高さ)の出力とが、交互にで連続的に出力される。
【0149】
そして、サブバンド23Lの水平ラインとサブバンド23Hの水平ラインとが、交互に配列されたデータが、垂直ラインのデータとして、そのまま第2リングメモリ32Bに出力され垂直フィルタリング部33Bで処理される。
【0150】
具体的には、第2リングメモリ32Bと垂直フィルタリング部33Bは、上記N回目処理(図16)〜上記N+1回目処理(図17)を含む各画素列について処理を水平ライン単位で繰り返し実行する。例えば、上記N回目処理(図16)が、0番目の画素列に対して実行された後に、1番目の画素列に対して実行され、次に、2番目の画素列に対して実行され、・・・、最終的に、W−1番目の画素列に対して実行される。次に、上記N+1回目処理(図7)が、0番目の画素列に対して実行された後に、1番目の画素列に対して実行され、更に、2番目の画素列に対して実行され、・・・、最終的に、W−1番目の画素列に対して実行される。このようにして、各回の処理が全ての画素列について順次実行される。なお、第2リングメモリ32Bは、図20に模式的に示すように、入力データ列に対応する9×W点(9ライン)のデータを保持する記憶領域58を有しており、上記一時データや中間データを保持することができる。
【0151】
この結果、垂直フィルタリング部33Bは、水平ライン単位で入力するデータ行から画像データ23を出力するのである。
【0152】
以上の処理を再帰的に実行させることで、任意次数の分解レベルの帯域成分を合成処理し、画像データを復元することができる。すなわち、k+1次(kは整数)の分解レベルにおけるサブバンドLL(k+1),HL(k+1),LH(k+1),HH(k+1)を、ウェーブレット変換装置1に再帰的に入力させることで、k次のサブバンドLL(k)を得ることが可能である。
【0153】
以上のように、本実施形態に係るウェーブレット変換装置1では、図15に示す構成を有する水平フィルタリング部33Aと垂直フィルタリング部33Bとを備えるため、出力データの算出周期を短縮化できる。したがって、ラインベースの2次元ウェーブレット変換を短時間で高速で行うことが可能である。
【0154】
そして、第2の実施形態においては、第1の実施の形態において必要であった、水平フィルタリング部33Aの出力を記憶するバッファが不要である。第1の実施形態においては、水平フィルタリング部4Aが4クロックで1画素を出力し、垂直フィルタリング部4Bが4クロックで1画素を入力する構成であったが、水平フィルタリング4AがN+6回目処理(図9)およびN+7回目処理(図10)において、連続的に、垂直ラインを出力するのに対して、垂直フィルタリング部4Bでは、N回目処理(図3)で垂直ラインを入力した後、N+4回目処理(図7)までは、垂直ラインを入力しない。このためバッファが必要であった。これに対して、第2の実施形態においては、水平フィルタリング部33Aが各回処理において垂直ラインを出力し、垂直フィルタリング33Bが各回処理において垂直ラインを入力するので、バッファが不要となるのである。
【0155】
<第3の実施形態>
次に、本発明の第3の実施形態に係るウェーブレット変換装置およびウェーブレット変換方法について説明する。本実施形態に係るウェーブレット変換装置は、水平フィルタリング部と垂直フィルタリング部を除いて、上記第2の実施形態に係るウェーブレット変換装置30(図14)の構成と同じ構成を有する。ただし、第2の実施形態においては第1,第2リングメモリ32A,32Bは、それぞれ9点、9ラインのリングメモリであったが、この実施の形態においては、第1,第2リングメモリ32A,32Bは、それぞれ8点、8ラインのリングメモリである。
【0156】
図22は、第3の実施形態に係るフィルタリング部33sの概略構成を示す図である。このフィルタリング部33sは、水平フィルタリング部または垂直フィルタリング部を示し、また、リングメモリ32sは、図14に示した第1リングメモリ32Aまたは第2リングメモリ32Bの何れかを示すものとする。
【0157】
このフィルタリング部33sは、リングメモリ32sから入力データを選択的に取り込む第1,第2データ・セレクタ60,65、遅延レジスタ64、第1〜第5係数乗算器61,66,71,76,81、加算器70,75,80,85、出力先選択部(DMUX)86、および制御部87を備えて構成される。これら構成要素のうち、第2係数乗算器66と加算器70の組は、2点のデータを上記ステップa或いはステップb(図38)の方法で処理する2点演算部を構成する。その他、第3係数乗算器71と加算器75の組、第4係数乗算器76と加算器80の組、および第5係数乗算器81と加算器85の組も同様に2点演算部を構成している。また、これら2点演算部と出力先選択部86とで中間データ算出手段が構成される。
【0158】
制御部87は、画素クロック信号PCLKと同期して動作する。第1データ・セレクタ60は、この制御部87から供給される選択制御信号SEL0の値に応じて、リングメモリ32sから取り込んだデータを第1端子S0〜第8端子S7の何れかから選択的に出力する。
【0159】
第1データ・セレクタ60の第1端子S0から出力されたデータは、第1係数乗算器61に入力される。第1係数乗算器61では、制御部87から供給される制御信号C0の値に応じて、規格化係数κ,1/κの何れか一方を乗算器63に出力し、乗算器63は、入力データにその規格化係数を乗算する。乗算器63からの出力データは、遅延レジスタ64に入力される。この第1係数乗算器61における規格化処理は1クロック周期内に実行される。なお、第1係数乗算器61と遅延レジスタ64とから規格化手段が構成される。遅延レジスタ64の出力は第2データ・セレクタ65に入力され、かつ、分岐してMMU31に入力される。
【0160】
第2データ・セレクタ65は、制御部87から供給される選択制御信号SEL1の値に応じて、遅延レジスタ64および第1データ・セレクタ60から取り込んだデータを第1端子S0〜第8端子S7の何れかから選択的に出力する。第2〜第5係数乗算器66,71,76,81は、それぞれ、制御信号C1〜C4に従って入力データにリフティング係数−α,−β,−γ,−δを乗算する回路である。係数レジスタ67,72,77,82は、制御信号C1〜C4を受けて、リフティング係数α,β,γ,δをそれぞれ乗算器68,73,78,83に出力する。乗算器68,73,78,83は、それぞれ、第2データ・セレクタ65の出力端子S0,S2,S4,S6から入力するデータにリフティング係数α,β,γ,δを乗算して出力する。2の補数演算回路69,74,79,84は、それぞれ乗算器68,73,78,83からの出力データの符号を反転させる。加算器70,75,80,85は、それぞれ、第2〜第5係数乗算器66,71,76,81から入力したデータと、第2データ・セレクタ65の出力端子S1,S3,S5,S7から入力したデータとを加算して出力先選択部86に出力する。
【0161】
出力先選択部86は、制御部87から供給される選択制御信号SEL2の値に応じて、加算器70,75,80,85から並列に入力する4点のデータを第1端子K0〜第5端子K4から出力する。第1端子K0および第2端子K1から出力されたデータは合成データとして外部に出力される。また、第2端子K1から分岐されたデータおよび第3端子K2〜第5端子K4から出力されたデータは、MMU31に入力される。MMU31は、これら第2端子K1〜第5端子K4からMMU31へ出力されたデータをリングメモリ32sに転送し記憶させることができる。
【0162】
次に、図22に示すフィルタリング部33sを用いたリフティング演算の代表例を、図23〜図25を参照しつつ以下に説明する。この格子図の演算は、図37の場合と同様に行われる。なお、図23〜図25では、説明の便宜上、各格子点間を結ぶ線分に対応するリフティング係数−α,−β,−γ,−δと規格化係数κ,1/κとを表示していない。
【0163】
図23は、N回目処理(N:整数)が終了した時点の格子図を示し、図24、図25は、それぞれN+1回目、N+2回目の処理を模式的に示している。N回目処理(図23)では、対象領域A1,A2,B1,B2の4個の変換処理が1クロック周期内に並列に同時実行される。対象領域A1では、2点の中間データD1 n+2,S2 n+2を用いた上記ステップa(図38)の2点演算を実行して、奇数番目の入力データY(2n+5)を始点とする系列上の第2段階の一時データ(D2 n+2)を算出する。ここで、中間データS2 n+2は、中間データD1 n+2の系列に対して1点前の系列上のデータである。また、対象領域A2では、2点のデータD2 n,X(2n)を用いた上記ステップaの2点演算を実行して、奇数番目の入力データY(2n+1)を始点とする系列上の出力一時データ(X(2n+1))を算出する。また、対象領域B1では、一時データ(S2 n+3)と1クロック周期前の演算処理で算出された中間データD1 n+3とを用いた上記ステップb(図38)の2点演算を実行して、偶数番目の入力データY(2n+6)を始点とする系列上の第2段階の中間データS2 n+3を算出する。ここで、中間データD1 n+3は、一時データ(S2 n+3)の系列に対して1点後の系列上のデータである。また、対象領域B2では、出力一時データ(X(2n+2))と中間データD2 n+1とを用いた上記ステップbの2点演算を実行して、偶数番目の入力データY(2n+2)を始点とする系列上の出力データX(2n+2)を算出する。
【0164】
また、対象領域A1,A2,B1,B2における上記並列処理の1クロック前の周期において、対象領域N1の規格化処理が行なわれる。対象領域N1においては、入力データY(2n+7)に規格化係数1/κを乗算する規格化処理が実行される。
【0165】
このN回目の具体的な処理の内容は次の通りである。リングメモリ32sは8ライン(系列)の記憶領域を備えている。
N回目処理においては、対象領域A1,A2,B1,B2内の演算処理が1クロック周期内に行なわれるが、この演算処理の1クロック周期前において、対象領域N1内の演算処理が行なわれる。この1クロック前の周期における処理から説明する。MMU31は、リングメモリ32sに一時記憶された入力データY(2n+7)を第1データ・セレクタ60に出力する。第1データ・セレクタ60は、制御部87からの選択制御信号SEL0の値に応じて、入力データY(2n+7)を第1端子S0から出力する。
【0166】
第1端子S0から出力された入力データY(2n+7)は、第1係数乗算器61に入力される。第1係数乗算器61において、係数レジスタ62は、制御部87から供給された制御信号C0に従って、2個の規格化係数κ,1/κのうち規格化係数1/κを乗算器63に出力し、乗算器63は入力データY(2n+7)に規格化係数1/κを乗算する。この結果、第1係数乗算器61は、データD1 n+3(=(1/κ)×Y(2n+7))を算出する。乗算器63の出力は、遅延レジスタ64に入力される。以上の処理が、対象領域A1,A2,B1,B2内の演算処理が行なわれる1クロック前の周期において実行される。
【0167】
次のクロック周期において、MMU31は、リングメモリ32sに一時記憶された7点のデータX(2n),D2 n,(X(2n+2)),D2 n+1,S2 n+2,D1 n+2,(S2 n+3)を第1データ・セレクタ60に出力させる。第1データ・セレクタ60は、制御部87から供給される選択制御信号SEL0の値に応じて、前記7点のデータを第2データ・セレクタ65に出力する。また、遅延レジスタ64に記憶されているデータD1 n+3が第2データ・セレクタ65に出力される。遅延レジスタ64から出力されたは中間データD1 n+3は分岐して外部のMMU31にも出力され、MMU31は、その中間データD1 n+3をリングメモリ32sに転送し、参照済みの記憶領域入力データY(2n+7)に上書きさせる。
【0168】
第2データ・セレクタ65は、制御部87から供給される選択制御信号SEL1の値に応じて、8点のデータのうち対象領域A2内の2点の出力データX(2n),D2 nを選択して第1端子S0と第2端子S1とに出力し、対象領域B2内の中間データD2 n+1と一時データ(X(2n+2))とを第3端子S2と第4端子S3とから出力し、対象領域A1内の中間データS2 n+2とD1 n+2とを第5端子S4と第6端子S5とから出力し、対象領域B1内の中間データD1 n+3と一時データ(S2 n+3)とを第7端子S6と第8端子S7とから出力する。
【0169】
第2係数乗算器66において、係数レジスタ67は、制御部87から供給された制御信号C1に応じてリフティング係数αを乗算器68に出力し、乗算器68は、第1端子S0から入力したデータX(2n)にリフティング係数αを乗算して得たデータα×X(2n)を出力する。乗算器68からの出力データは、2の補数演算回路69において符号が反転され、加算器70に出力される。加算器70は、第2係数乗算器66から出力されたたデータ−α×X(2n)と、第2データ・セレクタ65の第2端子S1から入力したデータD2 nとを加算することで対象領域A2内の一時データ(X(2n+1))を算出し、出力先選択部86に出力する。
【0170】
また、第3係数乗算器71では、係数レジスタ72は、制御部87から供給された制御信号C2に応じてリフティング係数βを乗算器73に出力し、乗算器73は、第3端子S2から入力した中間データD2 n+1にリフティング係数βを乗算して得たデータβ×D2 n+1を出力する。乗算器73の出力は、2の補数演算回路74において符号が反転された後、加算器75に出力される。加算器75は、第3係数乗算器71から出力されたデータ−β×D2 n+1と、第2データ・セレクタ65の第4端子S3から入力した出力一時データ(X(2n+2))とを加算することで、対象領域B2内の出力データX(2n+2)を算出し、出力先選択部86に出力する。
【0171】
また、第4係数乗算器76では、係数レジスタ77は、制御部87から供給された制御信号C3に応じてリフティング係数γを乗算器78に出力し、乗算器78は、第5端子S4から入力した中間データS2 n+2にリフティング係数γを乗算して得たデータγ×S2 n+2を出力する。乗算器78の出力は、2の補数演算回路79において符号が反転された後、加算器80に出力される。加算器80は、第4係数乗算器76から出力されたデータ−γ×S2 n+2と、第2データ・セレクタ65の第6端子S5から入力したデータD1 n+2とを加算することで、対象領域A1内の一時データ(D2 n+2)を算出し、出力先選択部86に出力する。
【0172】
また、第5係数乗算器81では、係数レジスタ82は、制御部87から供給された制御信号C4に応じてリフティング係数δを乗算器83に出力し、乗算器83は、第7端子S6から入力した中間データD1 n+3にリフティング係数δを乗算して得たデータδ×D1 n+3を出力する。乗算器83の出力は、2の補数演算回路84において符号が反転された後、加算器85に出力される。加算器85は、第5係数乗算器81から出力されたデータ−δ×D1 n+3と、第2データ・セレクタ65の第8端子S7から入力した一時データ(S2 n+3)とを加算することで、対象領域B1内の第2段階の中間データS2 n+3を算出し、出力先選択部86に出力する。
【0173】
出力先選択部86は、制御部87から供給された選択制御信号SEL2の値に従って、加算器75から入力した出力データX(2n+2)を第2端子K1から外部に出力する。また、出力データX(2n+2)は、MMU31にも出力される。また、出力先選択部86は、前記選択制御信号SEL2に従って、加算器70,80,85から入力した3点のデータ(X(2n+1)),(D2 n+2),S2 n+3を第3端子K2〜第5端子K4からMMU31に出力する。MMU31は、フィルタリング部33sから外部に出力された4点のデータ(X(2n+1)),X(2n+2),(D2 n+2),S2 n+3をリングメモリ32sに転送し、MMU31は、その4点のデータ(X(2n+1)),X(2n+2),(D2 n+2),S2 n+3をリングメモリ32sに転送し、参照済みの記憶領域D2 n,(X(2n+2)),D1 n+2,(S2 n+3)に上書きさせる。
【0174】
次に、N+1回目処理(図24)における対象領域A3,A4,B3,B4における変換処理が並列に同時実行される。対象領域A3では、1クロック周期前の演算処理で算出された中間データS1 n+4と中間データD1 n+3を用いた上記ステップa(図38)の2点演算を実行して、偶数番目の入力データY(2n+8)を始点とする系列上の第2段階の一時データ(S2 n+4)を算出する。ここで、中間データD1 n+3は、中間データS1 n+4の系列に対して1点前の系列上のデータである。また、対象領域A4では、2点のデータS2 n+2,D2 n+1を用いた上記ステップaの2点演算を実行して、偶数番目の入力データY(2n+4)を始点とする系列上の出力一時データ(X(2n+4))を算出する。また、対象領域B3では、一時データ(D2 n+2)と中間データS2 n+3とを用いた上記ステップb(図38)の2点演算を実行して、奇数番目の入力データY(2n+5)を始点とする系列上の第2段階の中間データD2 n+2を算出する。ここで、中間データS2 n+3は、一時データ(D2 n+2)の系列に対して1点後の系列上のデータである。また、対象領域B4では、出力一時データ(X(2n+1))と出力データX(2n+2)とを用いた上記ステップbの2点演算を実行して、奇数番目の入力データY(2n+1)を始点とする系列上の出力データX(2n+1)を算出する。
【0175】
また、対象領域A3,A4,B3,B4における上記並列処理の1クロック前の周期において、対象領域N2の規格化処理が行なわれる。対象領域N2では、入力データY(2n+8)に規格化係数κを乗算する規格化処理が実行される。
【0176】
次に、N+1回目の具体的な処理の内容は次の通りである。1クロック前の周期の対象領域N2における処理から説明する。MMU31は、リングメモリ32sに一時記憶された入力データY(2n+8)を第1データ・セレクタ60に出力する。第1データ・セレクタ60は、制御部87からの選択制御信号SEL0の値に応じて、入力データY(2n+8)を第1端子S0から出力する。
【0177】
第1端子S0から出力された入力データY(2n+8)は、第1係数乗算器61に入力される。第1係数乗算器61において、係数レジスタ62は、制御部87から供給された制御信号C0に従って、2個の規格化係数κ,1/κのうち規格化係数κを乗算器63に出力し、乗算器63は入力データY(2n+8)に規格化係数κを乗算する。この結果、第1係数乗算器61は、データS1 n+4(=κ×Y(2n+8))を算出する。乗算器63の出力は、遅延レジスタ64に入力される。以上の処理が、対象領域A1,A2,B1,B2内の演算処理が行なわれる1クロック前の周期において実行される。
【0178】
次のクロック周期において、MMU31は、リングメモリ32sに一時記憶された7点のデータ(X(2n+1)),X(2n+2),D2 n+1,S2 n+2,(D2 n+2),S2 n+3,D1 n+3を第1データ・セレクタ60に出力させる。第1データ・セレクタ60は、制御部87から供給される選択制御信号SEL0の値に応じて、前記7点のデータを第2データ・セレクタ65に出力する。また、遅延レジスタ64に記憶されている中間データS1 n+4が第2データ・セレクタ65に出力される。遅延レジスタ64から出力されたは中間データS1 n+4は分岐して外部のMMU31にも出力され、MMU31は、その中間データS1 n+4をリングメモリ32sに転送し、参照済みの記憶領域入力データY(2n+8)に上書きさせる。
【0179】
第2データ・セレクタ65は、制御部87から供給される選択制御信号SEL1の値に応じて、8点のデータのうち対象領域B4内の2点の入力データX(2n+2),(X(2n+1))を選択して第1端子S0と第2端子S1とに出力し、対象領域A4内の中間データD2 n+1,S2 n+2とを第3端子S2と第4端子S3とから出力し、対象領域B3内の中間データS2 n+3と一時データ(D2 n+2)とを第5端子S4と第6端子S5とから出力し、対象領域A3内の中間データD1 n+3とS1 n+4とを第7端子S6と第8端子S7とから出力する。
【0180】
第2係数乗算器66において、係数レジスタ67は、制御部87から供給された制御信号C1に応じてリフティング係数αを乗算器66に出力し、乗算器68は、第1端子S0から入力したデータX(2n+2)にリフティング係数αを乗算して得たデータα×X(2n+2)を出力する。乗算器68からの出力データは、2の補数演算回路69において符号が反転され、加算器70に出力される。加算器70は、第2係数乗算器66から出力されたたデータ−α×X(2n+2)と、第2データ・セレクタ65の第2端子S1から入力した一時データ(X(2n+1))とを加算することで対象領域B4内の出力データX(2n+1)を算出し、出力先選択部86に出力する。
【0181】
また、第3係数乗算器71では、係数レジスタ72は、制御部87から供給された制御信号C2に応じてリフティング係数βを乗算器73に出力し、乗算器73は、第3端子S2から入力した中間データD2 n+1にリフティング係数βを乗算して得たデータβ×D2 n+1を出力する。乗算器73の出力は、2の補数演算回路74において符号が反転された後、加算器75に出力される。加算器75は、第3係数乗算器71から出力されたデータ−β×D2 n+1と、第2データ・セレクタ65の第4端子S3から入力した中間データS2 n+2とを加算することで、対象領域A4内の出力一時データ(X(2n+4))を算出し、出力先選択部86に出力する。
【0182】
また、第4係数乗算器76では、係数レジスタ77は、制御部87から供給された制御信号C3に応じてリフティング係数γを乗算器78に出力し、乗算器78は、第5端子S4から入力した中間データS2 n+3にリフティング係数γを乗算して得たデータγ×S2 n+3を出力する。乗算器78の出力は、2の補数演算回路79において符号が反転された後、加算器80に出力される。加算器80は、第4係数乗算器76から出力されたデータ−γ×S2 n+3と、第2データ・セレクタ65の第6端子S5から入力した一時データ(D2 n+2)とを加算することで、対象領域B3内の中間データD2 n+2を算出し、出力先選択部86に出力する。
【0183】
また、第5係数乗算器81では、係数レジスタ82は、制御部87から供給された制御信号C4に応じてリフティング係数δを乗算器83に出力し、乗算器83は、第7端子S6から入力した中間データD1 n+3にリフティング係数δを乗算して得たデータδ×D1 n+3を出力する。乗算器83の出力は、2の補数演算回路84において符号が反転された後、加算器85に出力される。加算器85は、第5係数乗算器81から出力されたデータ−δ×D1 n+3と、第2データ・セレクタ65の第8端子S7から入力した中間データS1 n+4とを加算することで、対象領域A3内の第2段階の中間データS2 n+4を算出し、出力先選択部86に出力する。
【0184】
出力先選択部86は、制御部87から供給された選択制御信号SEL2の値に従って、加算器70から入力した出力データX(2n+1)を第1端子K0から外部に出力する。また、出力先選択部86は、前記選択制御信号SEL2に従って、加算器75,80,85から入力した3点のデータ(X(2n+4)),D2 n+2,(S2 n+4)を第3端子K2〜第5端子K4からMMU31に出力する。MMU31は、フィルタリング部33sから外部に出力された3点のデータ(X(2n+4)),D2 n+2,(S2 n+4)をリングメモリ32sに転送し、MMU31は、その3点のデータ(X(2n+4)),D2 n+2,(S2 n+4)をリングメモリ32sに転送し、参照済みの記憶領域S2 n+2,(D2 n+2),S1 n+4に上書きさせる。
【0185】
次に、N+2回目処理(図25)における対象領域A5,A6,B5,B6の4個の変換処理が1クロック周期内に並列に同時実行される。また、対象領域A5,A6,B5,B6における上記並列処理の1クロック前の周期において、対象領域N3の規格化処理が行なわれる。
【0186】
対象領域A6,B6,A5,B5,N3は、それぞれ、上記N回目処理(図23)の対象領域A2,B2,A1,B1,N1を2系列(2点)後方に移動した領域である。これら対象領域A6,B6,A5,B5,N3では、それぞれ、対象領域A2,B2,A1,B1,N1における処理と同様の処理が実行される。この結果として、対象領域A6では一時データ(X(2n+3))が、対象領域B6では出力データX(2n+4)が、対象領域A5では一時データ(D2 n+3)が、対象領域B5では中間データS2 n+4が、対象領域N3では中間データD1 n+4がそれぞれ算出される。
【0187】
次に、N+3回目処理(図示せず)においては、上記N+1回目処理(図24)の対象領域B4,A4,B3,A3,N2を2系列(2点)後方に移動した領域において、N+1回目処理と同様の処理が行なわれる。
【0188】
以上のように、上記N回目処理(図23)および上記N+1回目処理(図24)と同様の処理が、全ての出力データが算出されるまで対象領域を移動させつつ繰り返し実行される。これにより、偶数番目或いは奇数番目の1点の出力データを算出するのに要する平均周期を1クロック周期とすることができ、出力データの算出周期を大幅に短縮化できる。
【0189】
本実施形態に係るウェーブレット変換装置は、図22に示す構成を有する水平フィルタリング部と垂直フィルタリング部とを備えるため、上記第2の実施形態の場合と同じラインベースの2次元逆DWT処理を実行することが可能である。したがって、ウェーブレット変換を極めて短時間で高速に行うことが可能である。
【0190】
また、第3の実施形態においても、第2の実施形態で説明したように水平フィルタリング部33sが各回処理において水平ラインを出力し、垂直フィルタリング33sが各回処理において画素列を入力するので、上記第1の実施形態に係るウェーブレット変換装置1のようにラインバッファ回路5を必要としない。したがって、小回路規模で、低消費電力で動作する廉価なウェーブレット変換装置の実現が可能である。
【0191】
<変形例>
図26は、上記した第2および第3の実施形態の変形例に係る2次元ウェーブレット変換装置30aの概略構成を示す図である。このウェーブレット変換装置30aは、サブバンドの2次元画像データを一時的に保持するバッファ88、外部供給のクロック信号CLKと同期して動作するMMU(メモリ管理部)89、第1リングメモリ32または32s、水平フィルタリング部33または33s、第2リングメモリ3、垂直フィルタリング部4を備えて構成されている。
【0192】
ここで、第2リングメモリ3と垂直フィルタリング部4は、上記第1の実施形態に係るリングメモリ3とフィルタリング部4と同じ構成を有する。よって、本変形例の第2リングメモリ3Bと垂直フィルタリング部4Bは4ライン周期で1ラインの出力データを算出できる。
【0193】
また、第1リングメモリ32または32sと水平フィルタリング部33または33sとは、上記第2の実施形態に係るリングメモリ32とフィルタリング部33と、若しくは上記第3の実施形態に係るリングメモリ32sとフィルタリング部33sと同じ構成を有する。よって、本変形例の第1リングメモリ32または32sと水平フィルタリング部33または33sは1クロック周期で1点の出力データを算出できる。
【0194】
したがって、この変形例においては、水平フィルタリング部33または33sは、第1リングメモリ32から4クロック周期間隔で入力データを取り込むように処理する。これにより、上記第1の実施形態に係るウェーブレット変換装置1(図1)のようにラインバッファ回路5を必要としない。したがって、メモリ使用量が少ない、小回路規模で低廉なウェーブレット変換装置の実現が可能となる。
【0195】
なお、本変形例では、第2リングメモリと垂直フィルタリング部として第1の実施形態に係る第2リングメモリ3Bと垂直フィルタリング部4Bを採用したが、この代わりに、第2リングメモリと垂直フィルタリング部として従来技術で説明したような平均5クロック周期で1点の出力データを算出する構成を採用してもよい。この場合には、水平フィルタリング部33または33sは、第1リングメモリ32から5ライン周期間隔で入力データを取り込むように処理する。これにより、ラインバッファ回路5を必要としない構成とすることができる。
【0196】
<第4の実施形態>
次に、本発明の第4の実施形態に係るウェーブレット変換装置およびウェーブレット変換方法について説明する。図27は、第4の実施形態に係るウェーブレット変換装置90の概略構成を示す図である。このウェーブレット変換装置90は、サブバンドの2次元画像データを一時的に保持するバッファ91、外部供給のクロック信号CLKと同期して動作するMMU(メモリ管理部)92、第1リングメモリ32H、第1水平フィルタリング部33H、第2リングメモリ32L、第2水平フィルタリング部33L、第3リングメモリ93および垂直フィルタリング部94を備えて構成されている。ここで、第1リングメモリ32H、第1水平フィルタリング部33H、第2リングメモリ32L、第2水平フィルタリング部33L、第3リングメモリ93および垂直フィルタリング部94は、外部供給の画素クロック信号PCLKと同期して動作する。
【0197】
本実施形態では、MMU92、第1水平フィルタリング部33H、第2水平フィルタリング部33Lおよび垂直フィルタリング部94、はハードウェアで構成されるが、この代わりに、マイクロプロセッサで実行する命令群を含むコンピュータ・プログラムで構成されてもよい。
【0198】
このウェーブレット変換装置90は、2次元画像データにラインベースの2次元逆DWTを1回施す機能を有している。第1および第2水平フィルタリング部33H,33Lと垂直フィルタリング部94とは、それぞれ第3リングメモリ93を介して接続されている。
【0199】
MMU92は、バッファ91、第1リングメモリ32H、第2リングメモリ32Lおよび第3リングメモリ93のデータ入出力を制御する機能を有しており、バッファ91から読出したサブバンドの2次元画像データを第1リングメモリ32Hおよび第2リングメモリ32Lに転送し記憶させることができる。
【0200】
ここで、バッファ91には、図11で示した4つのサブバンドのデータ23LL,23HL,23LH,23HHが入力され、第1リングメモリ32Hには、サブバンド23LHと23HHの水平方向の画素が交互に配列された水平幅W、垂直高さH/2の画像データが入力され、第2リングメモリ32Lには、サブバンド23LLと23HLの水平方向の画素が交互に配列された水平幅W、垂直高さH/2の画像データが入力される。
【0201】
第1水平フィルタリング部33Hは、第1リングメモリ32Hから入力したデータに対して2次元画像の水平方向にフィルタリングを実行することで、画素クロック信号PCLKの1クロック周期で、サブバンド23LHと23HHとを合成した画像データであるサブバンド23Hのデータを1点ずつ算出できる。このようにして算出されたサブバンド23Hの画像データYH(m)が第3リングメモリ93に転送される。
【0202】
第2水平フィルタリング部33Lは、第2リングメモリ32Lから入力したデータに対して2次元画像の水平方向にフィルタリングを実行することで、画素クロック信号PCLKの1クロック周期で、サブバンド23LLと23HLとを合成した画像データであるサブバンド23Lのデータを1点ずつ算出できる。このようにして算出されたサブバンド23Lの画像データYL(m)が第3リングメモリ93に転送される。
【0203】
これら第1水平フィルタリング部33Hと第2水平フィルタリング部33Lとしては、上記第2または第3の実施形態に係るフィルタリング部33または33sと同じ構成を採用すればよい。
【0204】
一方、垂直フィルタリング部94は、第3リングメモリ93からサブバンド23Lと23Hの画像データYL(m)およびYH(m)を入力し、この画像データYL(m)およびYH(m)の垂直方向のラインを交互に配列したデータに対して画素列ごとに水平方向にフィルタリングを実行することで、画素クロック信号PCLKの1クロック周期で、画像データ23の垂直ラインのデータを水平方向に2点ずつ算出できる。
【0205】
図28に、本実施形態に係る垂直フィルタリング部94の概略構成を示す。この垂直フィルタリング部94は、入力データを選択的に取り込む第1データ・セレクタ95、第1および第2係数乗算器96,100、遅延レジスタ99,103、第2データ・セレクタ104、前段の4つの加算器105,111,117,123、第3〜第6係数乗算器106,112,118,124、後段の4つの加算器110,116,122,128、出力先選択部(DMUX)129、および制御部130を備えて構成される。これら構成要素のうち、2個の加算器105,110と第3係数乗算器106からなる組は3点のデータを1クロック周期内に処理するため、3点演算部を構成する。また、2個の加算器111,116と第4係数乗算器112からなる組、2個の加算器117,122と第5係数乗算器118からなる組、および2個の加算器123,128と第6係数乗算器124からなる組も、それぞれ、3点のデータを1クロック周期内に処理するため、3点演算部を構成する。また、これら4組の3点演算部と出力先選択部129とで中間データ算出手段が構成される。
【0206】
制御部130は、画素クロック信号PCLKと同期して動作する。第1データ・セレクタ95は、この制御部130から供給される選択制御信号SEL0の値に応じて、第3リングメモリ93から取り込んだデータ(YL(m)およびYH(m)の垂直方向のラインを交互に配列したデータ)を第1端子S0〜第12端子S11の何れかから選択的に出力する。
【0207】
第1データ・セレクタ95の第1端子S0あるいは第2端子S1から出力されたデータは、第1係数乗算器96と第2係数乗算器100とに入力される。第1係数乗算器96では、係数レジスタ97は、制御部130から供給される制御信号C0に応じて、規格化係数κを乗算器98に出力し、乗算器98は、入力データに規格化係数κを乗算し、乗算出力を遅延レジスタ99に出力する。また、第2係数乗算器100では、係数レジスタ101は、制御部130から供給される制御信号C1に応じて、規格化係数1/κを乗算器102に出力し、乗算器102は、入力データに規格化係数1/κを乗算し、乗算出力を遅延レジスタ103に出力する。なお、第1係数乗算器96と遅延レジスタ99との組、第2係数乗算器101と遅延レジスタ103との組で、それぞれ、本発明の規格化手段が構成される。
【0208】
遅延レジスタ99と遅延レジスタ103とに入力されたデータは、画素クロック信号PCLKの1クロック周期遅延した後に、第2データ・セレクタ104に出力される。また、遅延レジスタ103に入力されたデータは、分岐してMMU92に出力される。
【0209】
また、第1データ・セレクタ95の第3端子S2〜第12端子S11から出力されたデータは、第2データ・セレクタ104に出力され、さらに、第2データ・セレクタ104は、制御部130から供給される選択制御信号SEL1に応じて、各データを4組の3点演算部に出力し、これら3点演算部において並列処理が実行される。
【0210】
前段の加算器105は、第2データ・セレクタ104の第1端子S0と第2端子S1とから出力された2点のデータを加算して第3係数乗算器106に出力する。第3係数乗算器106では、係数レジスタ107は、制御部130から供給される制御信号C2に応じて、リフティング係数αを乗算器108に出力し、乗算器108は、加算器105から入力したデータにリフティング係数αを乗算する。その乗算出力は2の補数演算回路109において符号が反転されて後段の加算器110に出力される。そして、後段の加算器110は、第3係数乗算器106から入力したデータと、第2データ・セレクタ104の第3端子S2から入力したデータとを加算して出力先選択部129に出力する。
【0211】
また、前段の加算器111は、第2データ・セレクタ104の第4端子S3と第5端子S4とから出力された2点のデータを加算して第4係数乗算器112に出力する。第4係数乗算器112では、係数レジスタ113は、制御部130から供給される制御信号C3に応じて、リフティング係数βを乗算器114に出力し、乗算器114は、加算器111から入力したデータにリフティング係数βを乗算する。その乗算出力は2の補数演算回路115において符号が反転されて後段の加算器116に出力される。後段の加算器116は、第4係数乗算器112から入力したデータと、第2データ・セレクタ104の第6端子S5から入力したデータとを加算して出力先選択部129に出力する。
【0212】
また、前段の加算器117は、第2データ・セレクタ104の第7端子S6と第8端子S7とから出力された2点のデータを加算して第5係数乗算器118に出力する。第5係数乗算器118では、係数レジスタ119は、制御部130から供給される制御信号C4に応じて、リフティング係数γを乗算器120に出力し、乗算器120は、加算器117から入力したデータにリフティング係数γを乗算する。その乗算出力は2の補数演算回路121において符号が反転されて後段の加算器122に出力される。後段の加算器122は、第5係数乗算器118から入力したデータと、第2データ・セレクタ104の第9端子S8から入力したデータとを加算して出力先選択部129に出力する。
【0213】
また、前段の加算器123は、第2データ・セレクタ104の第10端子S9と第11端子S10とから出力された2点のデータを加算して第6係数乗算器124に出力する。第6係数乗算器124では、係数レジスタ125は、制御部130から供給される制御信号C5に応じて、リフティング係数δを乗算器126に出力し、乗算器126は、加算器123から入力したデータにリフティング係数δを乗算する。その乗算出力は2の補数演算回路127において符号が反転されて後段の加算器128に出力される。後段の加算器128は、第6係数乗算器124から入力したデータと、第2データ・セレクタ104の第12端子S11から入力したデータとを加算して出力先選択部129に出力する。
【0214】
出力先選択部129は、制御部130から供給される選択制御信号SEL2の値に応じて、後段の加算器110,116,122,128から並列に入力する4点のデータを第1端子K0〜第4端子K3の何れかから選択的に出力する。
【0215】
出力先選択部129は、第1端子K0と第2端子K1から出力データX(2k)およびX(2k+1)とを出力する。また、出力先選択部129の第1端子K0、第3端子K2、第4端子K3から出力されたデータはMMU92にも出力される。MMU92は、第1端子K0、第3端子K2、第4端子K3から出力されたデータを第3リングメモリ93に転送し、参照済みの記憶領域に上書きさせることができる。
【0216】
次に、以上の垂直フィルタリング部94を用いたリフティング演算の代表例を、図29〜図31を参照しつつ以下に説明する。図29〜図31は、9×7タップのDaubechiesフィルタのリフティング構成を模式的に示す格子図である。この格子図の演算は、図37の場合と同様に行われる。なお、図29〜図31は、説明の便宜上、各格子点間を結ぶ線分に対応するリフティング係数−α,−β,−γ,−δと規格化係数κ,1/κとを表示していない。
【0217】
図29〜図31は、本実施形態でのN回目(Nは整数)〜N+2回目の処理を模式的に示している。
【0218】
N回目処理(図29)では、対象領域C1,C2,C3,C4の4個の変換処理が1クロック周期内に並列に同時実行される。
【0219】
対象領域C1では、2点の中間データD1 n+4,D1 n+5を加算したデータにリフティング係数−δを乗算することで乗算値を算出した後、この乗算値と中間データS1 n+5とを加算するという3点演算が実行される。この結果、偶数番目の入力データY(2n+10)を始点とする系列上の第2段階の中間データS2 n+5が算出される。ここで、2点の中間データD1 n+4,D1 n+5は、中間データS1 n+5の系列に対して1点前後する系列上のデータである。
【0220】
また、対象領域C2では、2点の中間データS2 n+3,S2 n+4を加算したデータにリフティング係数−γを乗算した後、この乗算値と中間データD1 n+3とを加算するという3点演算が実行される。この結果、奇数番目の入力データY(2n+7)を始点とする系列上の第2段階の中間データD2 n+3が算出される。ここで、2点の中間データS2 n+3,S2 n+4は、中間データD1 n+3の系列に対して1点前後する系列上のデータである。
【0221】
また、対象領域C3では、2点の中間データD2 n+1,D2 n+2を加算したデータにリフティング係数−βを乗算することで乗算値を算出した後、この乗算値と中間データS2 n+2とを加算するという3点演算が実行される。この結果、入力データY(2n+4)を始点とする系列上の出力データX(2n+4)が算出される。ここで、2点の中間データD2 n+1,D2 n+2は、中間データS2 n+2の系列に対して1点前後する系列上のデータである。
【0222】
また、対象領域C4では、偶数番目の2点の出力データX(2n),X(2n+2)を加算したデータにリフティング係数−αを乗算することで乗算値を算出した後、この乗算値と中間データD2 nとを加算するという3点演算が実行される。この結果、入力データY(2n+1)を始点とする系列上の出力データX(2n+1)が算出される。ここで、偶数番目の2点の入力データX(2n),X(2n+2)は、中間データD2 nに対して1点前後するデータである。
【0223】
また、前記対象領域C1〜C4における演算処理が実行される1クロック前の周期において、対象領域N1およびN2における演算処理が並列実行される。対象領域N1においては、入力データY(2n+10)に規格化係数κを乗算する規格化処理が実行され中間データS1 n+5が算出され、対象領域N2においては、入力データY(2n+11)に規格化係数1/κを乗算する規格化処理が実行され中間データD1 n+5が算出される。
【0224】
このN回目の具体的な処理の内容は次の通りである。N回目処理においては、対象領域C1,C2,C3,C4内の演算処理が1クロック周期内に行なわれるが、この演算処理の1クロック周期前において、対象領域N1およびN2内の演算処理が行なわれる。この1クロック前の周期における処理から説明する。MMU92は、リングメモリ93に一時記憶された入力データY(2n+10)およびY(2n+11)を入力し、制御部130から供給される選択制御信号SEL0に応じて第1端子S0から入力データY(2n+10)を出力し、第2端子S1から入力データY(2n+11)を出力する。
【0225】
第1端子S0から出力された入力データY(2n+10)は、第1係数乗算器96に入力される。第1係数乗算器96において、係数レジスタ97は、制御部130から供給された制御信号C0に従って規格化係数κを乗算器98に出力し、乗算器98は入力データY(2n+10)に規格化係数κを乗算する。この結果、第1係数乗算器96は、中間データS1 n+5(=κ×Y(2n+10))を1クロック周期内に算出する。
【0226】
第2端子S1から出力された入力データY(2n+11)は、第2係数乗算器100に入力される。第2係数乗算器100において、係数レジスタ101は、制御部130から供給された制御信号C1に従って規格化係数1/κを乗算器102に出力し、乗算器102は入力データY(2n+11)に規格化係数1/κを乗算する。この結果、第2係数乗算器100は、中間データD1 n+5(=1/κ×Y(2n+11))を1クロック周期内に算出する。
【0227】
第1および第2係数乗算器96,100から出力された中間データS1 n+5,D1 n+5は、それぞれ遅延レジスタ99,103に入力される。遅延レジスタ99,100において、中間データS1 n+5,D1 n+5は1クロック周期遅延された後、出力される。
【0228】
上記対象領域N1およびN2内の演算処理が行なわれた1クロック周期の後において、MMU92は、第3リングメモリ93に一時記憶された10点のデータX(2n),D2 n,X(2n+2),D2 n+1,S2 n+2,D2 n+2,S2 n+3,D1 n+3,S2 n+4,D1 n+4を第1データ・セレクタ95に出力させる。第1データ・セレクタ95は、制御部130から供給された選択制御信号SEL0の値に応じて、前記10点のデータを第3端子S2〜第12端子S11から出力する。この出力データは、第2データ・セレクタ104に入力される。また、遅延レジスタ96,103に記憶されている中間データS1 n+5,D1 n+5が第2データ・セレクタ104に入力される。遅延レジスタ103から出力された中間データD1 n+5は分岐して外部のMMU92にも出力され、MMU92は、その中間データD1 n+5をリングメモリ93に転送し、参照済みの記憶領域入力データY(2n+11)に上書きさせる。
【0229】
第2データ・セレクタ104は、制御部130から供給された選択制御信号SEL1に応じて、前記12点のデータの中から、対象領域C4内の3点の入力データX(2n),X(2n+2),D2 nを選択してそれぞれ第1端子S0〜第3端子S2から出力し、対象領域C3内の3点のデータD2 n+1,D2 n+2,S2 n+2を選択してそれぞれ第4端子S3〜第6端子S5から出力し、対象領域C2内の3点のデータS2 n+3,S2 n+4,D1 n+3を選択してそれぞれ第7端子S6〜第9端子S8から出力し、対象領域C1内の3点のデータD1 n+4,D1 n+5,S1 n+5を選択してそれぞれ第10端子S9〜第12端子S11から出力する。
【0230】
前段の加算器105は、第2データ・セレクタ104の第1端子S0と第2端子S1から入力した対象領域C4内の2点のデータX(2n),X(2n+2)を加算したデータを第3係数乗算器106に出力する。第3係数乗算器106では、係数レジスタ107は制御信号C2に従ってリフティング係数αを乗算器108に供給し、乗算器108は、入力データとリフティング係数αとを乗算した乗算値(=α×(X(2n)+X(2n+2)))を出力する。この出力データは、2の補数演算回路109において符号が反転された後、後段の加算器110に出力される。そして、後段の加算器110は、第3係数乗算器106から入力する乗算値と、第2データ・セレクタ104の第3端子S2から入力したデータD2 nとを加算することで、対象領域C4内の出力データX(2n+1)算出し、出力先選択部129に出力する。
【0231】
また、前段の加算器111は、第2データ・セレクタ104の第4端子S3と第5端子S4から入力した対象領域C3内の2点のデータD2 n+1,D2 n+2を加算したデータを第4係数乗算器112に出力する。第4係数乗算器112では、係数レジスタ113は制御信号C3に従ってリフティング係数βを乗算器114に供給し、乗算器114は、入力データとリフティング係数βとを乗算した乗算値(=β×(D2 n+1+D2 n+2))を出力する。この出力データは、2の補数演算回路115において符号が反転された後、後段の加算器116に出力される。そして、後段の加算器116は、第4係数乗算器112から入力する乗算値と、第2データ・セレクタ104の第6端子S5から入力したデータS2 n+2を加算することで、対象領域C3内の出力データX(2n+4)を算出し、出力先選択部129に出力する。
【0232】
また、前段の加算器117は、第2データ・セレクタ104の第7端子S6と第8端子S7から入力した対象領域C2内の2点のデータS2 n+3,S2 n+4を加算したデータを第5係数乗算器118に出力する。第5係数乗算器118では、係数レジスタ119は制御信号C4に従ってリフティング係数γを乗算器120に供給し、乗算器120は、入力データとリフティング係数γとを乗算した乗算値(=γ×(S2 n+3+S2 n+4))を出力する。この出力データは2の補数演算回路121において符号が反転された後、後段の加算器122に出力される。そして、後段の加算器122は、第5係数乗算器118から入力する乗算値と、第2データ・セレクタ104の第9端子S8から入力したデータD1 n+3とを加算することで、対象領域C2内の中間データD2 n+3を算出し、出力先選択部129に出力する。
【0233】
また、前段の加算器123は、第2データ・セレクタ104の第10端子S9と第11端子S10から入力した対象領域C1内の2点のデータD1 n+4,D1 n+5を加算したデータを第6係数乗算器124に出力する。第6係数乗算器124では、係数レジスタ125は制御信号C5に従ってリフティング係数δを乗算器126に供給し、乗算器126は、入力データとリフティング係数δとを乗算した乗算値(=δ×(D1 n+4+D1 n+5))を出力する。この出力データは、2の補数演算回路127において符号が反転された後、後段の加算器128に出力される。そして、後段の加算器128は、第6係数乗算器124から入力する乗算値と、第2データ・セレクタ104の第12端子S11から入力した中間データS1 n +5とを加算することで、対象領域C1内の中間データS2 n+5を算出し、出力先選択部129に出力する。
【0234】
出力先選択部129は、選択制御信号SEL2の値に従って、後段の2つの加算器110,116から入力した2点の出力データを第1端子K0と第2端子K1とからそれぞれ出力する。また、出力先選択部129は、後段の3つの加算器110,122,128からの入力した3点のデータをMMU92へ出力する。MMU92は、出力された中間データX(2n+4),D2 n+3,S2 n+5を第3リングメモリ93に転送し、MMU92は、その3点のデータ(2n+4),D2 n+3,S2 n+5をリングメモリ93に転送し、参照済みの記憶領域S2 n+2,D1 n+3,Y(2n+10)に上書きさせる。
【0235】
次のN+1回目処理(図30)では、対象領域C5,C6,C7,C8の変換処理が行なわれる。また、この対象領域C5,C6,C7,C8の変換処理より1クロック前の周期において対象領域N3,N4の2個の規格化処理とが実行される。対象領域C5,C6,C7,C8,N3,N4は、上記N回目処理(図29)の対象領域C1,C2,C3,C4,N1,N2を2系列(2点)後方に移動した領域である。これら対象領域C5,C6,C7,C8,N3,N4では、それぞれ、対象領域C1,C2,C3,C4,N1,N2での処理と同様の処理が実行される。したがって、対象領域C8では、奇数番目の入力データY(2n+3)を始点とする系列上の出力データX(2n+3)が算出され、対象領域C7では、偶数番目の入力データY(2n+6)を始点とする系列上の出力データX(2n+6)が算出され、対象領域C6では、奇数番目の入力データY(2n+9)を始点とする系列上の第2段階の中間データD2 n+4が算出され、対象領域C1では、偶数番目の入力データY(2n+12)を始点とする系列上の第2段階の中間データS2 n+6が算出される。また、1クロック前の周期において、対象領域N3,N4では、入力データY(2n+12),Y(2n+13)に対する規格化処理が実行される。
【0236】
さらに、N+2回目処理(図31)では、対象領域C9,C10,C11,C12の変換処理が行なわれる。また、この対象領域C9,C10,C11,C12の変換処理より1クロック前の周期において対象領域N5,N6の2個の規格化処理とが実行される。
【0237】
以上のように、上記N回目処理(図29)と同様の処理が、全ての点の出力データが算出されるまで対象領域を移動させつつ繰り返し実行される。これにより、偶数番目および奇数番目の2点の出力データを算出するのに要する平均周期を1クロック周期とすることができ、出力データの算出周期を大幅に短縮化できる。
【0238】
次に、上記ウェーブレット変換装置90を用いたラインベースの2次元逆DWT処理を以下に説明する。
【0239】
第1水平フィルタリング部33Hに入力されるデータは、図11に示したサブバンド23LHおよび23HHであり、第2水平フィルタリング部33Lに入力されるデータは、サブバンド23LLおよび23HLである。そして、第1および第2水平フィルタリング部33H,33Lからは、それぞれサブバンド23H(YH(m)),23L(YL(m))が出力される。
【0240】
垂直フィルタリング部94に入力するデータは、第1および第2水平フィルタリング部33H,33Lから出力されるデータYH(m),YL(m)であり、これらデータYH(m),YL(m)の垂直ラインのデータが交互に配列されることによって、水平方向に画素列として入力される。そして、垂直フィルタリング部94は、2次元画像データ23を出力する。
【0241】
具体的には、第1リングメモリ32Hと第1水平フィルタリング部33Hは、水平ライン単位で入力するデータを1点当たり1クロック周期でフィルタリングすることでサブバンド23Hを出力し、また、第2リングメモリ32Lと第2水平フィルタリング部33Lは、水平ライン単位で入力するデータを1点当たり1クロック周期でフィルタリングすることでサブバンド23Lを出力する。
【0242】
なお、第1リングメモリ32Hと第2リングメモリ33Lは、第3の実施例で述べた図22のリングメモリ32sを用いることができ、図33に示すように、入力データ…,Xj(k),Xj+1(k),…に対応する8点(8画素)のデータを保持する記憶領域133を有し、上記一時データや中間データを保持することができる。もしくは、第1リングメモリ32Hと第2リングメモリ33Lは、第2の実施例で述べた図15のリングメモリ32を用いることができ、図21に示すように、入力データ…,Xj(k),Xj+1(k),…に対応する9点(9画素)のデータを保持する記憶領域59を有し、上記一時データや中間データを保持することができる。
【0243】
同様に、第1および第2水平フィルタリング部33H,33Lは、第3の実施例で述べた図22のフィルタリング部33s、もしくは、第2の実施例で述べた図15のフィルタリング部33を用いることができる。
【0244】
第3リングメモリ93と垂直フィルタリング部94は、上記N回目処理(図29)と上記N+1回目処理(図30)を含む各回の処理を、各画素列について水平ライン単位で繰り返し実行する。例えば、上記N回目処理(図29)が、0番目の画素列に対して実行された後に、1番目の画素列に対して実行され、次に、2番目の画素列に対して実行され、・・・、最終的に、W−1番目の画素列に対して実行される。その後、上記N+1回目処理(図30)が、0番目の画素列に対して実行された後に、1番目の画素列に対して実行され、更に、2番目の画素列に対して実行され、・・・、最終的に、W−1番目の画素列に対して実行される。このようにして、各回の処理が全ての画素列について繰り返し実行される。
【0245】
この結果、垂直フィルタリング部94からは、偶数行のデータと奇数行のデータとが各水平ライン単位で並列に出力される。例えば、上記N回目処理(図29)を0番目〜W−1番目の画素列に対して連続的に実行した結果、2n+1番目の水平ラインの奇数行のデータX0(2n+1),X1(2n+1),…,Xj(2n+1),…,XW-1(2n+1)が連続的に出力される。これと並行して、2n+4番目の水平ラインの偶数行のデータX0(2n+4),X1(2n+4),…,Xj(2n+4),…,XW-1(2n+4)が連続的に出力される。
【0246】
なお、第1リングメモリ93は、図32に模式的に示すように、入力データ列に対応する12×W点(12ライン)のデータを保持する記憶領域132を有しており、上記一時データや中間データを保持することができる。この記憶領域132は、垂直方向に12点のデータを保持する列領域の集合体である。一つの列領域によって、1回の処理で参照される入力データや中間データが保持される。例えば、N回目処理(図29)では、或る列領域において、データ列{X(2n),D2 n,X(2n+2),D2 n+1,S2 n+2,D2 n+2,S2 n+3,D1 n+3,S2 n+4,D1 n+4,Y(2n+10),Y(2n+11)}から、データ列{X(2n),D2 n,X(2n+2),D2 n+1,X(2n+4),D2 n+2,S2 n+3,D2 n+3,S2 n+4,D1 n+4,S2 n+5,D1 n+5}へ記憶内容が変化する(データS2 n+2,D1 n+3,Y(2n+10),Y(2n+11)が、それぞれ、データX(2n+4),D2 n+3,S2 n+5,D1 n+5に上書きされる)。
【0247】
以上の処理を再帰的に実行させることで、任意次数の分解レベルのサブバンド(帯域成分)を合成することができる。すなわち、k+1次(kは2以上の整数)の分解レベルにおける4つのサブバンドLL(k+1),HL(k+1),LH(k+1),HH(k+1)を、ウェーブレット変換装置90に入力させることで、k次の分解レベルにおけるサブバンドLL(k)を得ることが可能であり、このような処理を再帰的に実行することによって、k次の分解レベルのサブバンドから元の画像データを復元することが可能である。
【0248】
このように、本実施形態に係るウェーブレット変換装置90とウェーブレット変換方法では、4点の中間データを算出する4個の変換処理と2点の中間データを規格化する2個の規格化処理とを1クロック周期内に並列に同時実行するため、出力データの算出周期を大幅に短縮化できる。したがって、ウェーブレット変換を極めて短時間で高速に実行することが可能である。
【0249】
また、ウェーブレット変換装置90は、1クロック周期内に1点のデータを算出する第1および第2水平フィルタリング部33H,33Lと、1クロック周期内で2点のデータを算出する垂直フィルタリング部94とを備えるため、1クロック周期内に2点の合成データを並列に算出できる。したがって、ラインベースの2次元DWT演算を極めて高速に実行することが可能である。
【0250】
<変形例>
図34は、上記した第4の実施形態の変形例に係る2次元ウェーブレット変換装置140の概略構成を示す図である。このウェーブレット変換装置140は、サブバンドの2次元画像データを一時的に保持するバッファ91、外部供給のクロック信号CLKと同期して動作するMMU(メモリ管理部)92A、第1リングメモリ93A、水平フィルタリング部94A、ラインバッファ回路141、第2リングメモリ93Bおよび垂直フィルタリング部94Bを備えて構成されている。
【0251】
ここで、水平フィルタリング部94Aと垂直フィルタリング部94Bは、上記第4の実施形態に係る垂直フィルタリング部94(図28)の構成と同じ構成を有し、図29〜図31で示したリフティング演算を実行するように、データを与えられ且つ制御される。
【0252】
水平フィルタリング部94Aからは、サブバンド23Hと23Lのデータが交互に各水平ライン単位で出力される。
【0253】
ラインバッファ回路141においては、第1ラインバッファ143と第2ラインバッファ144は、それぞれ、水平ライン2本分のバッファを備えている。セレクタ142が、入力する2本のデータを第1ラインバッファ143と第2ラインバッファ144の何れか一方に記憶させる期間、デマルチプレクサ145は、その他方に記憶済みの2本のデータを読み出して第2リングメモリ93Bに出力する。
【0254】
このように本変形例の構成によっても、1クロック周期内に合成データを2点並列に算出できることから、ラインベースの2次元DWT演算を極めて高速に実行することが可能である。
【0255】
【発明の効果】
以上の如く、本発明に係るウェーブレット変換装置によれば、各入力データを規格化する処理と、各中間データを一系列上の他の中間データや出力データに変換する変換処理とを繰り返し実行し、繰り返し実行される複数の処理のうち少なくとも2個の処理を1クロック周期内に並列に実行するため、出力データの算出周期を短縮化でき、逆ウェーブレット変換を短時間で高速に実行することが可能になる。
【0256】
また、本発明に係るウェーブレット変換方法によれば、入力データを規格化して第1段階の中間データに変換する工程(b)と、中間データを一系列上の他の中間データに変換する工程(c)と、最終段階の中間データを出力データに変換する工程(d)とは繰り返し実行されるが、繰り返し実行する複数の工程のうち少なくとも2工程を1クロック周期内に並列に実行するため、入力データ列から出力データを算出する周期を短縮化でき、逆ウェーブレット変換を短時間で高速に行うことが可能になる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態に係るウェーブレット変換装置の概略構成を示す図である。
【図2】第1の実施形態に係るフィルタリング部の概略構成図である。
【図3】第1の実施形態に係るリフティング演算の工程を模式的に示す図である。
【図4】第1の実施形態に係るリフティング演算の工程を模式的に示す図である。
【図5】第1の実施形態に係るリフティング演算の工程を模式的に示す図である。
【図6】第1の実施形態に係るリフティング演算の工程を模式的に示す図である。
【図7】第1の実施形態に係るリフティング演算の工程を模式的に示す図である。
【図8】第1の実施形態に係るリフティング演算の工程を模式的に示す図である。
【図9】第1の実施形態に係るリフティング演算の工程を模式的に示す図である。
【図10】第1の実施形態に係るリフティング演算の工程を模式的に示す図である。
【図11】サブバンドから画像を合成する工程を模式的に示す図である。
【図12】2次元画像データとリングメモリの記憶領域とを模式的に示す図である。
【図13】リングメモリの記憶領域を模式的に示す図である。
【図14】本発明の第2の実施形態に係るウェーブレット変換装置の概略構成を示す図である。
【図15】第2の実施形態に係るフィルタリング部の概略構成図である。
【図16】第2の実施形態に係るリフティング演算の工程を模式的に示す図である。
【図17】第2の実施形態に係るリフティング演算の工程を模式的に示す図である。
【図18】第2の実施形態に係るリフティング演算の工程を模式的に示す図である。
【図19】第2の実施形態に係るリフティング演算の工程を模式的に示す図である。
【図20】2次元画像データとリングメモリの記憶領域とを模式的に示す図である。
【図21】リングメモリの記憶領域を模式的に示す図である。
【図22】本発明の第3の実施形態に係るフィルタリング部の概略構成を示す図である。
【図23】第3の実施形態に係るリフティング演算の工程を模式的に示す図である。
【図24】第3の実施形態に係るリフティング演算の工程を模式的に示す図である。
【図25】第3の実施形態に係るリフティング演算の工程を模式的に示す図である。
【図26】第2および第3の実施形態の変形例に係るウェーブレット変換装置の概略構成を示す図である。
【図27】本発明の第4の実施形態に係るウェーブレット変換装置の概略構成を示す図である。
【図28】第4の実施形態に係る垂直フィルタリング部の概略構成図である。
【図29】第4の実施形態に係るリフティング演算の工程を模式的に示す図である。
【図30】第4の実施形態に係るリフティング演算の工程を模式的に示す図である。
【図31】第4の実施形態に係るリフティング演算の工程を模式的に示す図である。
【図32】2次元画像データとリングメモリの記憶領域とを模式的に示す図である。
【図33】リングメモリの記憶領域を模式的に示す図である。
【図34】第4の実施形態の変形例に係るウェーブレット変換装置の概略構成を示す図である。
【図35】DWTと逆DWTで用いるフィルタバンクを模式的に示す図である。
【図36】3次の分解レベルで2次元DWTを施された画像データを模式的に示す図である。
【図37】合成側のリフティング構成を模式的に示す格子図である。
【図38】JPEG2000方式が推奨する算出方法を模式的に示す図である。
【図39】リフティング演算の工程を模式的に示す図である。
【図40】リフティング演算の工程を模式的に示す図である。
【図41】リフティング演算の工程を模式的に示す図である。
【図42】リフティング演算の工程を模式的に示す図である。
【図43】リフティング演算の工程を模式的に示す図である。
【図44】リフティング演算の工程を模式的に示す図である。
【図45】リフティング演算の工程を模式的に示す図である。
【図46】リフティング演算の工程を模式的に示す図である。
【図47】リフティング演算の工程を模式的に示す図である。
【図48】リフティング演算の工程を模式的に示す図である。
【符号の説明】
1 ウェーブレット変換装置
2 MMU(メモリ管理部)
3A,3B リングメモリ
4A,4B フィルタリング部
5 ラインバッファ回路[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a compression / decompression technique using a wavelet transform.
[0002]
[Prior art]
As an efficient coding method for image data, there is known an image compression / decompression method based on Discrete Wavelet Transformation (hereinafter referred to as "DWT"), which is formulated by the ISO (International Organization for Standardization). JPEG2000 (Joint Photographic Experts Group 2000) is used. As a calculation method of the DWT, a convolution calculation method and a calculation method based on a lifting scheme are known, and both output the same result. However, the calculation method based on the latter lifting scheme is better than the former. As compared with the convolution operation method, there are advantages that a high-speed operation can be performed with a small amount of memory usage and that the method is suitable for lossless (lossless) compression.
[0003]
In general, a DWT can be configured using a filter bank that divides an original signal into high-frequency components (high-frequency components) and low-frequency components (low-frequency components). Then, the inverse transform (inverse DWT) can be configured using a filter bank that combines the high-frequency component and the low-frequency component that have been band-divided.
[0004]
FIG. 35 schematically illustrates the DWT and the
[0005]
On the other hand, the synthesis-
[0006]
The two-dimensional DWT can be executed by repeatedly applying the decomposition-
[0007]
The processing procedure of DWT of
[0008]
Conversely, the processing procedure of the inverse DWT for synthesizing the subband of the
[0009]
As described above, the example of the tertiary decomposition level has been described. In the JPEG2000 system, generally, the tertiary to eighth or higher decomposition levels are employed. Also, in this example, DWT is applied to the entire still image as a whole, but actually, one still image is referred to as a plurality of rectangular “tiles” due to the mounting memory capacity and the like. It is also performed to divide the image into regions and execute DWT for each tile.
[0010]
On the other hand, DWT and inverse DWT can also be realized in a lifting configuration. Since the present invention relates to processing on the synthesis side, processing of inverse DWT will be described below. In the case of a known 9 × 7 tap Daubechies filter, between input data Y (2n), Y (2n + 1), Y (2n + 2) (n: integer) and the like, and output data X (2n), X (2n + 1) Can be expressed by a lifting configuration defined by the following equation (1). Since the process on the synthesis side is inverse DWT, throughout the following description, Y is used for input data and X is used for output data.
[0011]
(Equation 1)
[0012]
In the above equation (1), odd-numbered input data Y (2n + 1) indicates high-frequency component data obtained by the decomposition processing, and even-numbered input data Y (2n) indicates low-frequency component data obtained by the decomposition processing. 2 shows the data. The output data X (2n) and X (2n + 1) indicate data obtained by combining the high frequency component and the low frequency component. The coefficients α, β, γ, δ are called lifting coefficients, and the coefficients κ, 1 / κ are called normalization coefficients. These coefficients α, β, γ, δ, κ, 1 / κ are It is uniquely derived by the filter coefficient of the 9 × 7 tap Daubechies filter.
[0013]
The lifting configuration defined by the above equation (1) can be expressed by a lattice structure shown in FIG. The grid points arranged in a vertical line at the left end of FIG. 37 represent input data..., Y (2n−1), (2n),..., Y (2n + 9), Y (2n + 10),. ing. That is, it is data in which the data of the low-frequency component and the data of the high-frequency component decomposed by the DWT are alternately arranged. Also, the grid points at the right end of the line segment extending rightward in the horizontal direction from the input data are output data..., X (2n−1), X (2n),..., X (2n + 9), and X (2n + 10), respectively. , ....
[0014]
A plurality of grid points on a line segment extending from a grid point indicating each input data Y (k) (k: an integer) to a grid point indicating output data X (k) represents a series of intermediate data. I have. For example, on the line segment between the input data Y (2n) and the output data X (2n), the intermediate data S generated with the input data Y (2n) as the starting point1 n, STwo nIs present.
[0015]
The calculation based on this lattice structure is performed according to the following rules (A) to (C). (A) Data representing a grid point moves along a line segment extending rightward from the grid point. (B) Data moving on each line segment is multiplied by a coefficient assigned to the line segment (coefficient multiplication process). (C) At each grid point, data moving from the left along the line segment is added (addition processing). For example, intermediate data S on a line segment between input / output data Y (2n) and X (2n)Two nIs STwo n= 1 × S1 n−δ × D1 n-1−δ × D1 nIs calculated as follows. This equation corresponds to [step 3] in the above equation (1).
[0016]
As shown in FIG. 37, for example, the intermediate data STwo nIs the three grid points D on the left side of the drawing.1 n-1, S1 n, D1 nIs the sum of the data transitioned from. It can be seen that all the intermediate data are calculated by adding the data of three points that have transitioned from the three lattice points on the left of the intermediate data. The JPEG2000 method recommends that the calculation of one point of intermediate data be performed in two steps ("Mathias Larsson Carlander, Media Lab, Ericsson Research, Sweden, JPEG2000 Verification Model 9.1 (Technical description) WG1 N2165, 28 June, 2001 "). FIG. 38 is a diagram schematically showing a calculation method recommended by the JPEG2000 method. Grid point x1, XTwo, XThree, Y represent data, and α, β, γ represent coefficients assigned to line segments connecting the respective grid points. As shown, the data y is calculated in step b after calculating the temporary data z in step a.
[0017]
[Non-patent document 1]
Mathias Larsson Carlander, Media Lab, Ericsson Research Institute, Sweden, Media Lab, Ericsson Research, Sweden, JPEG2000 Verification Model 9.1 (Technical description) WG1 N2165, June 28, 2001. .
[0018]
[Problems to be solved by the invention]
However, the lifting operation recommended by the JPEG2000 method described above has a problem that the processing time required to calculate one point of output data is long, as described below.
[0019]
FIG. 39 to FIG. 48 are grid diagrams for explaining an example of the processing procedure of the DWT inverse transform using the lifting configuration. Although not shown, it is assumed that the coefficients shown in FIG. 37 are associated with all line segments connecting the respective grid points. Also, in FIGS. 39 to 48, the grid points filled in black represent input or calculated data points, and the grid points filled in only the upper half are the points in the temporary data for which only the processing in step a has been completed. The blank grid points represent uncalculated points on which neither step a nor step b has been performed. All of the processes shown in these figures are executed within one clock cycle.
[0020]
In the N-th (N: integer) process shown in FIG. 39, the input data Y (2n + 4) in the target area N1 is normalized, so that the even-numbered input data Y (2n + 4) is used as a starting point. Intermediate data S1 n + 2Is calculated.
[0021]
In the (N + 1) -th to (N + 4) -th processes shown in FIGS. 40 to 43, the above-described step a is executed. In the (N + 1) th processing (FIG. 40), the intermediate data S of two points in the target area A11 n + 2, D1 n + 1, The temporary data of the second stage starting from the even-numbered input data X (2n + 4) (STwo n + 2) Is calculated (in this way, when representing temporary data, the data is enclosed in parentheses and distinguished). In the next (N + 2) -th processing (FIG. 41), the intermediate data D of two points in the target area A21 n + 1, STwo n + 1, The temporary data (D) of the second stage starting from the odd-numbered input data Y (2n + 3).Two n + 1) Is calculated. In the next N + 3rd processing (FIG. 42), the intermediate data S of two points in the target area A3Two n + 1, DTwo n, The output temporary data (X (2n + 2)) on the series starting from the even-numbered input data Y (2n + 2) is calculated. Then, in the N + 4th processing (FIG. 43), the data D of two points in the target area A4Two n, X (2n), the output temporary data (X (2n + 1)) on the series starting from the odd-numbered input data Y (2n + 1) is calculated.
[0022]
In the next N + 5th processing (FIG. 44), the input data Y (2n + 5) in the target area N2 is normalized, so that the odd-numbered input data Y (2n + 5) as a starting point of the first stage on the series. Intermediate data D1 n + 2Is calculated.
[0023]
Next, in the (N + 6) th to (N + 9) th processes shown in FIGS. 45 to 48, the above step b is executed. In the (N + 6) th processing (FIG. 45), the intermediate data D in the target area B11 n + 2And the temporary data (STwo n + 2), The intermediate data STwo n + 2Is calculated. In the next N + 7th processing (FIG. 46), the intermediate data S calculated in the N + 6th processing in the target area B2Two n + 2And the temporary data (DTwo n + 1), The intermediate data DTwo n + 1Is calculated. In the next N + 8th processing (FIG. 47), the intermediate data D calculated in the N + 7th processing in the target area B3Two n + 1And output temporary data (X (2n + 2)) calculated in the N + 3rd process, output data X (2n + 2) is calculated. In the N + 9th processing (FIG. 48), the output data X (2n + 2) calculated in the N + 8th processing in the target area B4 and the output temporary data (X (2n)) calculated in the N + 4th processing are used. By the processing, the output data X (2n + 1) is calculated.
[0024]
Next, in the N + 10th processing (not shown), the normalization processing using the input data Y (2n + 6) is performed in the same manner as the Nth processing, and thereafter, the same processing as the N + 1th to N + 9th processings is performed. Is repeatedly executed.
[0025]
In this way, by inputting input data Y (2n + 4) and Y (2n + 5) in which high-frequency components and low-frequency components are alternately arranged, output data X (2n + 2) and X (2n + 1), which are synthesis results, are calculated. It can be seen that N-th to (N + 9) -
[0026]
In view of the above problems, it is an object of the present invention to provide a wavelet transform apparatus and a wavelet transform method that can efficiently perform a wavelet transform based on a lifting configuration in a short time.
[0027]
[Means for Solving the Problems]
In order to solve the above-mentioned problem, an invention according to
[0028]
The invention according to
[0029]
According to a third aspect of the present invention, in the wavelet transform device according to the first or second aspect, the normalizing means includes: a normalizing coefficient multiplier for multiplying each input data by the normalizing coefficient; A delay unit for delaying data output from the conversion coefficient multiplier, wherein the intermediate data conversion means multiplies one of the two intermediate data by a predetermined lifting coefficient, and the lifting coefficient multiplier A two-point operation unit comprising an adder for adding the data output from the multiplier and the other of the two-point intermediate data, and taking in the data output from the two-point operation unit and designated by the control unit. An output destination selection unit for outputting to the output destination, wherein the wavelet transform device further includes: a memory management unit; and a memo for temporarily storing data under the control of the memory management unit. When, wherein the memory management unit, the said data output from the output destination selecting unit transferred to the memory controls to store, it is characterized.
[0030]
According to a fourth aspect of the present invention, in the wavelet transform apparatus according to the third aspect, the control unit performs, as the conversion process, a "sequence starting from input data belonging to the second data sequence" Intermediate data at the first stage above, and a "series starting from the input data belonging to the first data string" immediately before the intermediate data (hereinafter referred to as a first series). )) And the data obtained by multiplying the intermediate data of the first stage above by a predetermined lifting coefficient are added, so that the temporary data of the second stage on the second series can be shifted within one clock cycle per point. A first conversion process to be calculated, the temporary data calculated in the first conversion process and stored in the memory, and a first step in a first series one point after the series of the temporary data. Multiply the intermediate data by a predetermined lifting coefficient The second conversion process of calculating the intermediate data of the second stage on the second series within one clock cycle per point by adding the data obtained in the first series and the first stage of the first series on the first series By adding the intermediate data and the data obtained by multiplying the intermediate data in the second stage on the second series one point before the intermediate data by a predetermined lifting coefficient, the intermediate data is added to the first series. A third conversion process for calculating the temporary data of the second stage within one clock cycle per point; a process for calculating the third conversion process and storing the temporary data in the memory; On the other hand, by adding the intermediate data of the second stage on the second series one point later and data obtained by multiplying the intermediate data by a predetermined lifting coefficient, the intermediate data of the second stage on the first series can be obtained. Fourth variation calculated within one clock cycle per point Processing, intermediate data of the M-th stage (the number of stages M is an integer of 1 or more) on the second stream, and intermediate data of the M-th stage on the first stream one point before the series of the intermediate data A fifth conversion process for calculating the temporary data of the (M + 1) th stage on the second stream within one clock cycle per point by adding data obtained by multiplying a predetermined lifting coefficient; The temporary data calculated in the conversion process of
[0031]
The invention according to
[0032]
The invention according to
[0033]
According to a seventh aspect of the present invention, in the wavelet transform device according to the first or second aspect, the normalizing means includes: a normalizing coefficient multiplier for multiplying each input data by the normalizing coefficient; And a delay unit for delaying data output from the conversion coefficient multiplier, wherein the intermediate data conversion means adds first and second input data among the input three-point input data. An adder, a lifting coefficient multiplier that multiplies the data output from the first adder by a predetermined lifting coefficient, and adding the data output from the lifting coefficient multiplier and third input data A three-point operation unit including a second adder for calculating intermediate data, and an output destination selection unit that receives the intermediate data output from the three-point operation unit and outputs the intermediate data to an output destination specified by the control unit Includes, the memory management unit controls the intermediate data output from the output destination selecting unit so as to transfer stored in said memory.
[0034]
The invention according to
[0035]
The invention according to
[0036]
According to a tenth aspect of the present invention, in the wavelet transform device according to the eighth or ninth aspect, the control unit starts the input data of the (P + 3) th (data number P is an integer) in the input data sequence. The first conversion processing for calculating the intermediate data on the series to be set, and the third conversion processing for calculating the M + 1-th stage intermediate data on the series starting from the (P−1) th input data, Are controlled so that each of the three-point calculation units is executed in parallel.
[0037]
According to an eleventh aspect of the present invention, in the wavelet transform device according to the eighth aspect, the control unit controls the first to fourth conversion processes in parallel.
[0038]
The invention according to
[0039]
According to a thirteenth aspect of the present invention, there is provided a wavelet transform method for synthesizing band-divided high-frequency component data and low-frequency component data based on a lifting configuration, wherein (a) a high-frequency component and a low-frequency component (B) selectively taking in input data from an input data string configured by alternately arranging a first data string composed of one of the two and a second data string composed of the other in a pixel unit; Multiplying each of the input data fetched in the step (a) by a normalization coefficient to convert the input data into the first-stage intermediate data within one clock cycle per point; and (c) the m-th stage (m Calculating intermediate data of (m is an integer of 1 or more) into m + 1-th intermediate data within one clock cycle per point (including the case where the m-th intermediate data is the final intermediate data. In this case, M + 1 The intermediate data of the floor is output data.), And the steps (b) and (c) are repeatedly executed until the output data of all points are calculated, and are repeatedly executed. The method is characterized in that the steps (b) and (c) are executed in parallel within one clock cycle.
[0040]
According to a fourteenth aspect of the present invention, in the wavelet transform method according to the thirteenth aspect, the step (c) comprises the step of: (c-1) “a sequence starting from input data belonging to the second data sequence” ( Hereinafter, this is referred to as a second series.) The intermediate data of the first stage on the above and a “series starting from the input data belonging to the first data string” immediately before the intermediate data (hereinafter, the first series) The temporary data of the second stage on the second sequence is added to the intermediate data of the first stage on the above first sequence and data obtained by multiplying the intermediate data of the first stage by a predetermined lifting coefficient by one clock per point. (C-2) the temporary data calculated in the step (c-1) and stored in the memory, and a first series one point after the temporary data series. Multiply the intermediate data of the first stage by a predetermined lifting coefficient (C-3) calculating the intermediate data of the second stage on the second series within one clock cycle per point by adding the obtained data to the first series. Is added to data obtained by multiplying the intermediate data of the second stage on the second series immediately before by the intermediate data by a predetermined lifting coefficient with respect to the intermediate data of the first series. Calculating the temporary data of the second stage in one clock cycle per point; (c-4) the temporary data calculated in the step (c-3) and stored in the memory; and the temporary data Is added to the data obtained by multiplying the intermediate data of the second stage on the second series one point after the series by a predetermined lifting coefficient, thereby obtaining the intermediate data of the second stage on the first series. Calculating data within one clock cycle per point; (c) 5) The intermediate data of the M-th stage (the number of stages M is an integer of 1 or more) on the second stream and the intermediate data of the M-th stage on the first stream one point before the series of the intermediate data are specified. (C-6) calculating temporary data of the (M + 1) -th stage on the second sequence within one clock cycle per point by adding the data obtained by multiplying by the lifting coefficient of Multiplying the temporary data calculated in (c-5) and stored in the memory, and the intermediate data of the M-th stage on the first series one point after the temporary data series by a predetermined lifting coefficient; (C-7) calculating temporary data of the (M + 1) th stage on the second stream within one clock cycle per point by adding the obtained data to the Lth step on the first stream. (The number of stages L is an integer of 1 or more) and the intermediate data By adding the data obtained by multiplying the intermediate data at the (L + 1) -th stage on the second sequence immediately before the data sequence by a predetermined lifting coefficient to the (L + 1) -th stage on the first sequence, (C-8) calculating the temporary data within one clock cycle per point; and (c-8) calculating the temporary data calculated in the step (c-7) and stored in the memory, and the sequence of the temporary data. By adding the intermediate data of the (L + 1) th stage on the second series one point later and data obtained by multiplying the intermediate data of the (L + 1) th stage by a predetermined lifting coefficient, the intermediate data of the (L + 1) th stage on the first series is added by one point. And calculating within one clock cycle per step, wherein the steps (c-1) to (c-8) are repeatedly executed until output data of all points are calculated.
[0041]
The invention according to
[0042]
According to a sixteenth aspect of the present invention, there is provided the wavelet transform method according to the fourteenth aspect, wherein a P-th (data number P is an integer) input data belonging to the second data sequence and the input data sequence is defined as a starting point. The step (c-2) of calculating intermediate data of the second stage on the sequence to be performed and the step (c-2) of calculating temporary data of the second stage on the sequence starting from the P-1st input data 3), the step (c-6) of calculating intermediate data at the (M + 1) th stage on the sequence starting from the P-4th input data, and the step (c-6) on the sequence starting from the P-5th input data. And the step (c-7) of calculating the temporary data of the (L + 1) th stage is performed in parallel by the respective two-point arithmetic units, and the second step on the series starting from the (P + 2) th input data The step (c-1) of calculating temporary data of The step (c-4) of calculating the intermediate data in the second stage on the sequence starting from the P-1st input data; and the M + 1th sequence on the sequence starting from the P-2th input data. The step (c-5) of calculating the temporary data of the step and the step (c-8) of calculating the intermediate data of the (L + 1) th step on the series starting from the P-5th input data. Control is performed so that each of the four processes is executed in parallel.
[0043]
According to a seventeenth aspect of the present invention, in the wavelet transform method according to the thirteenth aspect, in the step (c), (c-1) "a sequence starting from input data belonging to the second data sequence" ( Hereinafter, this is referred to as a second series.) The intermediate data at the first stage on the above and a “series starting from the input data belonging to the first data sequence” which is one point around the intermediate data series (hereinafter, referred to as “second series”) The data obtained by multiplying the data obtained by multiplying the intermediate data of the first two stages in the first stage by a predetermined lifting coefficient is added to the second stage on the second system. And (c-2) a first stage of intermediate data on the first stream, and a second stream that is about one point from the intermediate data stream. The above two points are added to the data obtained by adding the intermediate data of the second stage. (C-3) calculating the intermediate data of the second stage on the first series within one clock cycle per point by adding the data obtained by multiplying by the lifting coefficient of The intermediate data of the M-th stage (the number of stages M is an integer equal to or greater than 1) on the series, and the middle of the M-stage of two points on the first series that is about one point behind the series of the intermediate data of the M-th Calculating the intermediate data of the (M + 1) th stage on the second stream within one clock cycle by adding the data obtained by multiplying the data obtained by multiplying the data by a predetermined lifting coefficient; (C-4) L-stage intermediate data on the first stream (the number of stages L is an integer equal to or greater than 1) and 2nd-stream data on the second stream that is about one point away from the L-stage intermediate data stream A predetermined lifting is performed on the data obtained by adding the intermediate data of the (L + 1) th stage of the point. Calculating the intermediate data of the (L + 1) -th stage on the first series within one clock cycle per point by adding the data obtained by multiplying the coefficient by the coefficient. ) To (c-4) are repeatedly executed until the output data of all points is calculated.
[0044]
The invention according to
[0045]
The invention according to
[0046]
The invention according to
[0047]
The invention according to
[0048]
BEST MODE FOR CARRYING OUT THE INVENTION
<First embodiment>
Hereinafter, a wavelet transform device and a wavelet transform method according to the first embodiment of the present invention will be described. FIG. 1 is a diagram illustrating a schematic configuration of a
[0049]
In the present embodiment, the
[0050]
The sub-band data input to the
[0051]
The
[0052]
The data output from the
[0053]
The configuration of the
[0054]
The
[0055]
Further, the
[0056]
Further, the
[0057]
Further, the output
[0058]
Note that the
[0059]
The data output from the first terminal K0 and the second terminal K1 of the output
[0060]
The data output from the second terminal K1 of the output
[0061]
Next, a representative example of the lifting operation using the
[0062]
As shown in FIGS. 3 to 10, input data..., Y (2n−1), Y (2n),..., Y (2n + 9) are each a series of grid points (intermediate data) ), And output as output data..., X (2n-1), X (2n),..., X (2n + 9). For example, the input data Y (2n) is output as output data X (2n) after passing through two stages of intermediate data (lattice points). Hereinafter, a process of normalizing input data to generate intermediate data is referred to as a normalization process (corresponding to
[0063]
3 to 10 show the contents of the N-th (N is an integer) to N + 7-th processing in the present embodiment. In the N-th processing (FIG. 3), the intermediate data S of two points in the target area A11 n + 2And D1 n + 1Is performed within one cycle (one clock cycle) of the pixel clock signal PCLK using the above-mentioned step a (FIG. 38), and the even-numbered input data Y (2n + 4) is used as a starting point. The temporary data of the second stage (STwo n + 2) Is calculated. That is, the even-numbered intermediate data S1 n + 2And this intermediate data S1 n + 2Odd-numbered intermediate data D on the series one point before1 n + 1Is used to execute the processing of step a.
[0064]
Further, in the cycle one clock before the arithmetic processing in the target area A1, in the target area N1, a normalization process of multiplying the input data Y (2n + 4) by the normalization coefficient κ is executed, and the input data Y (2n + 4) Intermediate data S of the first stage on the series1 n + 2Is calculated.
[0065]
The contents of the N-th specific processing are as follows. The
[0066]
First, the processing in the target area N1 executed in the cycle one clock before will be described. The
[0067]
One clock cycle later, the intermediate data S held in the
[0068]
The
[0069]
The output
[0070]
In the next (N + 1) -th processing (FIG. 4), the intermediate data D of two points in the target area A21 n +1And STwo n + 1Is performed within one clock cycle, and the temporary data (D) of the second stage on the series starting from the odd-numbered input data Y (2n + 3) is obtained.Two n + 1) Is calculated. Intermediate data STwo n + 1Is the second stage data on the series starting from the input data Y (2n + 2) one point before the input data Y (2n + 3). Specifically, the
[0071]
The
[0072]
In the next (N + 2) -th processing (FIG. 5), the intermediate data S of two points in the target area A3Two n + 1And DTwo nIs performed within one clock cycle to calculate output temporary data (X (2n + 2)) on the series starting from the even-numbered input data Y (2n + 2). Intermediate data DTwo nIs the second stage intermediate data on the series starting from the input data Y (2n + 1) one point before the input data Y (2n + 2). Specifically, the
[0073]
The
[0074]
In the next N + 3rd processing (FIG. 6), the intermediate data D in the target area A4Two nAnd the output data X (2n), the two-point operation in step a is executed within one clock cycle, and the output temporary data (X (X (2n + 1)) on the sequence starting from the odd-numbered input data Y (2n + 1) is obtained. 2n + 1)) is calculated. Specifically, the
[0075]
The
[0076]
In the next N + 4th processing (FIG. 7), the temporary data (STwo n + 2) And the intermediate data D in the target area B11 n + 1Is executed within one clock cycle, and the intermediate data S of the second stage on the sequence starting from the even-numbered input data Y (2n + 4) is used.Two n + 2Is calculated. Intermediate data D1 n + 2Is the temporary data (STwo n + 2) Is data on the series one point after the series.
[0077]
Further, in the cycle one clock before executing the arithmetic processing in the target area B1, in the target area N2, the normalization processing of multiplying the input data Y (2n + 5) by the
[0078]
Specific processing will be described starting from the cycle one clock before. The
[0079]
One clock cycle later, the intermediate data D held in the
[0080]
Then, the
[0081]
The
[0082]
The output
[0083]
In the next N + 5th processing (FIG. 8), the temporary data (DTwo n + 1) And the intermediate data S in the target area B1 calculated in the N + 4th processing (FIG. 7)Two n + 2Is performed within one clock cycle, and the intermediate data D of the second stage on the series starting from the odd-numbered input data Y (2n + 3) is used.Two n + 1Is calculated. The intermediate data STwo n + 2Is the temporary data (DTwo n + 1) Is the data of the second stage on the series one point after the series.
[0084]
Specifically, the
[0085]
In the next N + 6th processing (FIG. 9), the output temporary data (X (2n + 2)) calculated in the N + 2nd processing (FIG. 5) and the intermediate data in the target area B2 calculated in the N + 5th processing (FIG. 8) Data DTwo n + 1Is executed within one clock cycle to calculate the output data X (2n + 2) on the series starting from the even-numbered input data Y (2n + 2). The intermediate data DTwo n + 1Is the intermediate data of the second stage on the series one point after the series of the output temporary data (X (2n + 2)).
[0086]
Specifically, the
[0087]
In the next N + 7th processing (FIG. 10), the output temporary data (X (2n + 1)) calculated in the N + 3rd processing (FIG. 6) and the output in the target area B4 calculated in the N + 6th processing (FIG. 9) The two-point operation of the above step b using the data X (2n + 2) is executed within one clock cycle to calculate output data X (2n + 1) on the series starting from the odd-numbered input data Y (2n + 1). I do. Note that the output data X (2n + 2) is output data on a series one point after the series of output temporary data (X (2n + 1)).
[0088]
Specifically, the
[0089]
In the next N + 8th processing (not shown), processing similar to the Nth processing (FIG. 3) is performed except for the target area. Thereafter, the processing from the (N + 1) th to the (N + 7) th is repeated. As described above, the same processing as the N-th processing (FIG. 3) to the N + 7-th processing (FIG. 10) is performed when the output data of all points..., X (2n−1), X (2n),. It is executed while moving the target area until the calculation is performed.
[0090]
Further, in the present embodiment, as shown in the N-th to (N + 3) -th processes, the two-point calculation in step a is executed until the temporary output data (X (2n + 1)) at the final stage is calculated. As shown in the (N + 4) th to (N + 7) th processes, the two-point calculation in step (b) for converting all the temporary data calculated in the (N) th to (N + 3) th processes into intermediate data or output data is performed. I have.
[0091]
As described above, in the wavelet transform method according to the present embodiment, the process of normalizing the input data..., Y (2n), Y (2n + 1), and the process of converting the standardized intermediate data to other intermediate data And the conversion process to be performed simultaneously in one clock cycle, the average cycle required to calculate one point of output data can be set to four clock cycles, and the calculation cycle of output data can be shortened.
[0092]
Next, a line-based two-dimensional inverse DWT process using the
[0093]
The subbands (band components) input to the
[0094]
When the sub-bands (band components) input to the
[0095]
Next, the subbands input by the
[0096]
The subbands 23LL, 23HL, 23LH, and 23HH are rectangular data having the number of vertical pixels H / 2 and the number of horizontal pixels W / 2, and as schematically shown in FIG. Data strings vertically arranged as a set of bands 23LL and sub-bands 23HL of even rows and odd columns, or a set of sub bands 23LH of odd rows and even columns and sub bands 23HH of sub rows 23HH.i(2n), Yi(2n + 1), Yi(2n + 2)... Are input to the
[0097]
Specifically, the first ring memory 3A and the
[0098]
For example, after the N-th processing (FIG. 3) is executed once for the first pixel row on the
[0099]
Note that, as schematically shown in FIG. 13, the first ring memory 3A stores input data.j(K), Xj + 1(K), has a
[0100]
As a result, the
[0101]
For example, as a result of the N + 6th processing (FIG. 9) being continuously performed on each of the first to Wth pixels, the data X of one line in which the 2n + 2nd horizontal components are combined is obtained.0(2n + 2), XTwo(2n + 2), ..., Xj(2n + 2), ..., Xw -1(2n + 2) are continuously output and buffered by the L
[0102]
The
[0103]
Specifically, the
[0104]
As a result, the
[0105]
By performing the above processing recursively, it is possible to combine band components of decomposition levels of any order and restore image data. That is, the subbands LL (k-1), HL (k-1), LH (k-1), and HH (k-1) at the (k-1) -th order (k is an integer of 2 or more) decomposition level are represented by wavelets. By making the
[0106]
As described above, since the
[0107]
<Second embodiment>
Next, a wavelet transform device and a wavelet transform method according to a second embodiment of the present invention will be described. FIG. 14 is a diagram illustrating a schematic configuration of a
[0108]
In the figure, the number of pixels or the number of lines of the first and
[0109]
In the present embodiment, the
[0110]
The sub-band two-dimensional image data input to the
[0111]
The
[0112]
Next, the
[0113]
The configuration of the
[0114]
The
[0115]
The
[0116]
The data output from the first terminal S0 of the
[0117]
In the three-point operation unit, the adder 43 adds two points of data output from the first terminal S0 and the second terminal S1 of the
[0118]
The
[0119]
The output
[0120]
The data output from the second terminal K1 of the output
[0121]
Next, a typical example of the lifting operation using the
[0122]
16 to 19 schematically show the N-th (N is an integer) to (N + 3) -th processing in the present embodiment. In the N-th process (FIG. 16), two conversion processes of the target areas C1 and C2 are simultaneously executed in parallel within one clock cycle. In the target area C2, a multiplication value is calculated by multiplying the data obtained by adding the output data X (2n) and X (2n + 2) at two points by a lifting coefficient -α, and then the multiplication value and the intermediate data D are calculated.Two nAre added to perform a three-point operation. As a result, output data X (2n + 1) on the series starting from the odd-numbered input data Y (2n + 1) is calculated. Output data X (2n) and X (2n + 2) at two points are intermediate data DTwo nThis is data on two series that is one point around the series. In the target area C1, two intermediate data STwo n + 2, STwo n + 3Is multiplied by a lifting coefficient −γ to the data obtained by adding the multiplication value and the intermediate data D1 n + 2Are added to perform a three-point operation. As a result, the intermediate data D of the second stage on the sequence starting from the even-numbered input data Y (2n + 5)Two n + 2Is calculated. Here, two intermediate data STwo n + 2, STwo n + 3Is the intermediate data D1 n + 2This is data on two series that is one point around the series.
[0123]
Further, in the period one clock before the operation in the target regions C1 and C2, a normalization process of multiplying the input data Y (2n + 8) by the normalization coefficient κ is executed in the target region N1, and the input data Y (2n + 8) S, which is the intermediate data of the first stage on the series1 n + 4Is calculated.
[0124]
The contents of the N-th specific processing are as follows. The
[0125]
The
[0126]
One clock cycle after the coefficient multiplication process, the intermediate data S1n + 4 stored in the
[0127]
The upper adder 43 adds the data X (2n) and X (2n + 2) of two points input from the first terminal S0 and the second terminal S1 of the
[0128]
On the other hand, the
[0129]
The output
[0130]
Next, conversion processing of the target areas C3 and C4 in the (N + 1) th processing (FIG. 17) is performed. In the target area C3, two intermediate data D1 n + 3, D1 n + 4Is multiplied by a lifting coefficient −δ to calculate a multiplication value, and the multiplication value and the intermediate data S1 n + 4Are added to perform a three-point operation. As a result, the second-stage intermediate data S on the series starting from the even-numbered input data Y (2n + 8)Two n + 4Is calculated. Here, two intermediate data D1 n + 3, D1 n + 4Is the intermediate data S1 n + 4Is one point before and after. In the target area C4, two intermediate data DTwo n + 1, DTwo n + 2Is multiplied by a lifting coefficient −β to the multiplied value, and the multiplied value and the intermediate data STwo n + 2Are added to perform a three-point operation. As a result, output data X (2n + 4) on the series starting from the even-numbered input data Y (2n + 4) is calculated. Here, two intermediate data DTwo n + 1, DTwo n + 2Is the intermediate data STwo n + 2This is data on two series that is one point around the series.
[0131]
Further, the processing in the target area N2 is executed in a cycle one clock before the execution of the arithmetic processing in the target areas C3 and C4. In the target area N2, a normalization process of multiplying the input data Y (2n + 9) by a
[0132]
The specific processing contents of the (N + 1) -th process are as follows. First, the processing of the target area N2 executed in the cycle one clock before will be described. The
[0133]
One clock cycle after the coefficient multiplication process, the intermediate data D1n + 4 stored in the
[0134]
The upper adder 43 outputs two points of data D input from the first terminal S0 and the second terminal S1 of the
[0135]
On the other hand, the
[0136]
The output
[0137]
Next, conversion processing of the target areas C5 and C6 in the N + 2nd processing (FIG. 18) is executed. Further, the normalization process of the target area N3 is executed in a cycle one clock before the execution of the arithmetic processing in the target areas C5 and C6. Here, the target regions C5, C6, and N3 are regions obtained by moving the target regions C1, C2, and N1 of the N-th process (FIG. 16) two series (two points) backward. In these target areas C5, C6, and N3, processing similar to the processing in the target areas C1, C2, and N1 is performed. Therefore, in the target area N3, a normalization process of multiplying the even-numbered input data Y (2n + 10) by the normalization coefficient κ is executed, and the intermediate data S1 n + 5Is calculated. In the target area C5, two intermediate data STwo n + 3, STwo n + 4Is multiplied by a lifting coefficient −γ to the data obtained by adding the multiplication value and the intermediate data D1 n + 3Are added to perform a three-point operation. As a result, the intermediate data D of the second stage on the series starting from the odd-numbered input data X (2n + 7)Two n + 3Is calculated. In the target area C6, a multiplication value is calculated by multiplying data obtained by adding two points of output data X (2n + 2) and X (2n + 4) by a lifting coefficient -α, and then the multiplication value and the intermediate data D are calculated.Two n + 1Are added to perform a three-point operation. As a result, output data X (2n + 3) on the series starting from the odd-numbered input data Y (2n + 3) is calculated.
[0138]
Next, conversion processing of the target areas C7 and C8 in the N + 3rd processing (FIG. 19) is executed. Further, the normalization processing of the target area N4 is performed in a cycle one clock before the execution of the arithmetic processing in the target areas C7 and C8. Here, the target areas C7, C8, and N4 are areas obtained by moving the target areas C3, C4, and N2 of the (N + 1) -th processing (FIG. 17) two series (two points) backward. In these target areas C7, C8, and N4, processing similar to the processing in the target areas C3, C4, and N2 is performed. Therefore, in the target area N4, the normalization process of multiplying the input data Y (2N + 11) by the
[0139]
As described above, processes similar to the N-th process (FIG. 16) and the (N + 1) -th process (FIG. 17) are repeatedly executed while moving the target area until output data of all points is calculated. As a result, the average cycle required to calculate the output data of the even-numbered or odd-numbered one point can be set to one clock cycle, and the calculation cycle of the output data can be greatly reduced.
[0140]
Next, a line-based two-dimensional inverse DWT process using the
[0141]
The subbands (band components) input to the
[0142]
.., Y (n−1), Y (n), Y (n + 1),... Shown in FIG. 16 to FIG. 19 are arranged alternately with horizontal data of subbands 23LL and 23HL. Or the data in which the horizontal data of the subbands 23LH and 23HH are alternately arranged. Then, the sub-band 23L is output by subjecting the input data composed of the sub-bands 23LL and 23HL to horizontal filtering, and the sub-band 23L is outputted by performing the horizontal filtering on the input data composed of the sub-bands 23LH and 23HH. 23H is output. .., X (n−1), X (n), X (n + 1),... Shown in FIGS. 16 to 19 are the horizontal lines of the
[0143]
Next, the sub-bands input by the
[0144]
The subbands 23LL, 23HL, 23LH, and 23HH are rectangular data having the number of vertical pixels H / 2 and the number of horizontal pixels W / 2, and as schematically shown in FIG. Data rows vertically arranged as a set of the band 23LL and the sub-band 23HL of the even-numbered row and the odd-numbered column, or a set of the sub-band 23LH of the odd-numbered row and the even-numbered column and the sub-band 23HH of the odd-numbered row and the odd-numbered columni(2n), Yi(2n + 1), Yi(2n + 2)... Are input to the
[0145]
Specifically, the
[0146]
For example, after the N-th process (FIG. 16) is performed once for the first pixel row on the
[0147]
Note that, as schematically shown in FIG. 21, the
[0148]
As a result, the
[0149]
Then, data in which the horizontal lines of the sub-band 23L and the horizontal lines of the sub-band 23H are alternately arranged is output as it is to the second ring memory 32B as vertical line data, and is processed by the
[0150]
Specifically, the second ring memory 32B and the
[0151]
As a result, the
[0152]
By performing the above processing recursively, it is possible to combine band components of decomposition levels of any order and restore image data. That is, the subbands LL (k + 1), HL (k + 1), LH (k + 1), and HH (k + 1) at the (k + 1) -th order (k is an integer) decomposition level are recursively input to the
[0153]
As described above, since the
[0154]
In the second embodiment, a buffer for storing the output of the
[0155]
<Third embodiment>
Next, a wavelet transform device and a wavelet transform method according to a third embodiment of the present invention will be described. The wavelet transform device according to the present embodiment has the same configuration as that of the wavelet transform device 30 (FIG. 14) according to the second embodiment, except for the horizontal filtering unit and the vertical filtering unit. However, in the second embodiment, the first and
[0156]
FIG. 22 is a diagram illustrating a schematic configuration of a
[0157]
The
[0158]
The
[0159]
The data output from the first terminal S0 of the
[0160]
The
[0161]
The output
[0162]
Next, a representative example of the lifting operation using the
[0163]
FIG. 23 is a lattice diagram at the time when the N-th processing (N: integer) is completed, and FIGS. 24 and 25 schematically show the N + 1-th processing and the N + 2-th processing, respectively. In the N-th process (FIG. 23), four conversion processes of the target areas A1, A2, B1, and B2 are simultaneously executed in parallel within one clock cycle. In the target area A1, two intermediate data D1 n + 2, STwo n + 2Is performed, and the second-stage temporary data (D) in the series starting from the odd-numbered input data Y (2n + 5)Two n + 2) Is calculated. Here, the intermediate data STwo n + 2Is the intermediate data D1 n + 2Is the data on the series one point before the series. In the target area A2, two points of data DTwo n, X (2n) to calculate the temporary output data (X (2n + 1)) on the series starting from the odd-numbered input data Y (2n + 1). In the target area B1, the temporary data (STwo n + 3) And the intermediate data D calculated by the arithmetic operation one clock cycle earlier1 n + 3And the two-point calculation of the above step b (FIG. 38) is performed, and the second-stage intermediate data S on the series starting from the even-numbered input data Y (2n + 6)Two n + 3Is calculated. Here, the intermediate data D1 n + 3Is the temporary data (STwo n + 3) Is data on the series one point after the series. In the target area B2, the output temporary data (X (2n + 2)) and the intermediate data DTwo n + 1Is performed, the output data X (2n + 2) on the series starting from the even-numbered input data Y (2n + 2) is calculated.
[0164]
Further, the normalization processing of the target area N1 is performed in a cycle one clock before the parallel processing in the target areas A1, A2, B1, and B2. In the target area N1, a normalization process of multiplying the input data Y (2n + 7) by a
[0165]
The contents of the N-th specific processing are as follows. The ring memory 32s has a storage area of 8 lines (series).
In the N-th processing, the arithmetic processing in the target areas A1, A2, B1, and B2 is performed within one clock cycle, but the arithmetic processing in the target area N1 is performed one clock cycle before this arithmetic processing. The processing in the cycle one clock before will be described. The
[0166]
The input data Y (2n + 7) output from the first terminal S0 is input to the first coefficient multiplier 61. In the first coefficient multiplier 61, the
[0167]
In the next clock cycle, the
[0168]
The
[0169]
In the
[0170]
Further, in the
[0171]
In the
[0172]
In the
[0173]
The output
[0174]
Next, the conversion processing in the target areas A3, A4, B3, and B4 in the (N + 1) th processing (FIG. 24) is simultaneously executed in parallel. In the target area A3, the intermediate data S calculated by the arithmetic processing one clock cycle earlier is used.1 n + 4And intermediate data D1 n + 3, The two-point calculation of the above step a (FIG. 38) is performed, and the second-stage temporary data (S) on the series starting from the even-numbered input data Y (2n + 8)Two n + 4) Is calculated. Here, the intermediate data D1 n + 3Is the intermediate data S1 n + 4Is the data on the series one point before the series. In the target area A4, two points of data STwo n + 2, DTwo n + 1Is performed, and the output temporary data (X (2n + 4)) on the series starting from the even-numbered input data Y (2n + 4) is calculated. In the target area B3, the temporary data (DTwo n + 2) And intermediate data STwo n + 3And the second point intermediate data D in the series starting from the odd-numbered input data Y (2n + 5) by executing the two-point operation of step b (FIG. 38)Two n + 2Is calculated. Here, the intermediate data STwo n + 3Is the temporary data (DTwo n + 2) Is data on the series one point after the series. Further, in the target area B4, the two-point operation of the above step b using the output temporary data (X (2n + 1)) and the output data X (2n + 2) is executed, and the odd-numbered input data Y (2n + 1) is set as the starting point. Output data X (2n + 1) on a series to be calculated.
[0175]
Further, the normalization process of the target area N2 is performed in a cycle one clock before the parallel processing in the target areas A3, A4, B3, and B4. In the target area N2, a normalization process of multiplying the input data Y (2n + 8) by a normalization coefficient κ is executed.
[0176]
Next, the contents of the (N + 1) -th specific processing are as follows. The processing will be described from the processing in the target area N2 of the cycle one clock before. The
[0177]
The input data Y (2n + 8) output from the first terminal S0 is input to the first coefficient multiplier 61. In the first coefficient multiplier 61, the
[0178]
In the next clock cycle, the
[0179]
The
[0180]
In the
[0181]
Further, in the
[0182]
In the
[0183]
In the
[0184]
The output
[0185]
Next, four conversion processes of the target areas A5, A6, B5, and B6 in the (N + 2) th process (FIG. 25) are simultaneously executed in parallel within one clock cycle. Further, the normalization processing of the target area N3 is performed in a cycle one clock before the parallel processing in the target areas A5, A6, B5, and B6.
[0186]
The target areas A6, B6, A5, B5, and N3 are areas obtained by moving the target areas A2, B2, A1, B1, and N1 of the N-th processing (FIG. 23) two series (two points) backward. In the target areas A6, B6, A5, B5, and N3, the same processing as that in the target areas A2, B2, A1, B1, and N1 is performed. As a result, the temporary data (X (2n + 3)) in the target area A6, the output data X (2n + 4) in the target area B6, and the temporary data (DTwo n + 3), But in the target area B5, the intermediate data STwo n + 4However, in the target area N3, the intermediate data D1 n + 4Are calculated respectively.
[0187]
Next, in the (N + 3) th processing (not shown), in the area in which the target areas B4, A4, B3, A3, and N2 of the (N + 1) th processing (FIG. 24) are moved backward by two series (two points), the (N + 1) th processing is performed. The same processing as the processing is performed.
[0188]
As described above, processes similar to the N-th process (FIG. 23) and the (N + 1) -th process (FIG. 24) are repeatedly executed while moving the target area until all output data is calculated. As a result, the average cycle required to calculate the output data of the even-numbered or odd-numbered one point can be set to one clock cycle, and the calculation cycle of the output data can be greatly reduced.
[0189]
Since the wavelet transform device according to the present embodiment includes the horizontal filtering unit and the vertical filtering unit having the configuration shown in FIG. 22, it performs the same line-based two-dimensional inverse DWT processing as in the second embodiment. It is possible. Therefore, it is possible to perform the wavelet transform in a very short time and at a high speed.
[0190]
Also in the third embodiment, as described in the second embodiment, the
[0191]
<Modification>
FIG. 26 is a diagram illustrating a schematic configuration of a two-dimensional
[0192]
Here, the
[0193]
Further, the
[0194]
Therefore, in this modification, the
[0195]
In this modification, the
[0196]
<Fourth embodiment>
Next, a wavelet transform device and a wavelet transform method according to a fourth embodiment of the present invention will be described. FIG. 27 is a diagram illustrating a schematic configuration of a
[0197]
In the present embodiment, the
[0198]
The
[0199]
The
[0200]
Here, the data 23LL, 23HL, 23LH, and 23HH of the four sub-bands shown in FIG. 11 are input to the
[0201]
The first
[0202]
The second horizontal filtering unit 33L performs filtering on the data input from the
[0203]
The first
[0204]
On the other hand, the
[0205]
FIG. 28 shows a schematic configuration of the
[0206]
The
[0207]
The data output from the first terminal S0 or the second terminal S1 of the
[0208]
The data input to the delay registers 99 and 103 are output to the second data selector 104 after being delayed by one clock cycle of the pixel clock signal PCLK. The data input to the
[0209]
The data output from the third terminal S2 to the twelfth terminal S11 of the
[0210]
The adder 105 at the previous stage adds the two data points output from the first terminal S0 and the second terminal S1 of the second data selector 104 and outputs the result to the third coefficient multiplier 106. In the third coefficient multiplier 106, the
[0211]
Further, the adder 111 at the preceding stage adds the two data points output from the fourth terminal S3 and the fifth terminal S4 of the second data selector 104 and outputs the result to the
[0212]
Further, the adder 117 at the preceding stage adds the two data points output from the seventh terminal S6 and the eighth terminal S7 of the second data selector 104 and outputs the result to the
[0213]
The
[0214]
The output
[0215]
The output
[0216]
Next, a representative example of the lifting operation using the
[0217]
29 to 31 schematically show the N-th (N is an integer) to (N + 2) -th processing in this embodiment.
[0218]
In the N-th process (FIG. 29), four conversion processes of the target areas C1, C2, C3, and C4 are simultaneously executed in parallel within one clock cycle.
[0219]
In the target area C1, two intermediate data D1 n + 4, D1 n + 5Is multiplied by a lifting coefficient −δ to calculate a multiplication value, and the multiplication value and the intermediate data S1 n + 5Are added to perform a three-point operation. As a result, the second-stage intermediate data S on the series starting from the even-numbered input data Y (2n + 10)Two n + 5Is calculated. Here, two intermediate data D1 n + 4, D1 n + 5Is the intermediate data S1 n + 5This is data on the series that is about one point behind the series.
[0220]
In the target area C2, two intermediate data STwo n + 3, STwo n + 4Is multiplied by a lifting coefficient −γ, and the multiplied value and the intermediate data D1 n + 3Are added to perform a three-point operation. As a result, the intermediate data D of the second stage on the series starting from the odd-numbered input data Y (2n + 7)Two n + 3Is calculated. Here, two intermediate data STwo n + 3, STwo n + 4Is the intermediate data D1 n + 3This is data on the series that is about one point behind the series.
[0221]
In the target area C3, two intermediate data DTwo n + 1, DTwo n + 2Is multiplied by a lifting coefficient −β to the multiplied value, and the multiplied value and the intermediate data STwo n + 2Are added to perform a three-point operation. As a result, output data X (2n + 4) on the series starting from the input data Y (2n + 4) is calculated. Here, two intermediate data DTwo n + 1, DTwo n + 2Is the intermediate data STwo n + 2This is data on the series that is about one point behind the series.
[0222]
Further, in the target area C4, a multiplication value is calculated by multiplying the data obtained by adding the output data X (2n) and X (2n + 2) of the even-numbered two points by the lifting coefficient -α, and then the multiplication value is calculated. Data DTwo nAre added to perform a three-point operation. As a result, output data X (2n + 1) on the series starting from the input data Y (2n + 1) is calculated. Here, the input data X (2n) and X (2n + 2) of the even-numbered two points are the intermediate data DTwo nIs one point before and after.
[0223]
Further, in the cycle one clock before execution of the arithmetic processing in the target areas C1 to C4, the arithmetic processing in the target areas N1 and N2 is executed in parallel. In the target area N1, a normalization process of multiplying the input data Y (2n + 10) by the normalization coefficient κ is executed, and the intermediate data S1 n + 5Is calculated in the target area N2, a normalization process of multiplying the input data Y (2n + 11) by a
[0224]
The contents of the N-th specific processing are as follows. In the N-th processing, the arithmetic processing in the target areas C1, C2, C3, and C4 is performed within one clock cycle, but the arithmetic processing in the target areas N1 and N2 is performed one clock cycle before this arithmetic processing. It is. The processing in the cycle one clock before will be described. The
[0225]
The input data Y (2n + 10) output from the first terminal S0 is input to the
[0226]
The input data Y (2n + 11) output from the second terminal S1 is input to the
[0227]
Intermediate data S output from first and
[0228]
After one clock cycle in which the arithmetic processing in the target areas N1 and N2 has been performed, the
[0229]
The second data selector 104 selects input data X (2n) and X (2n + 2) of three points in the target area C4 from the data of the twelve points in response to the selection control signal SEL1 supplied from the
[0230]
The adder 105 in the preceding stage adds the data obtained by adding the data X (2n) and X (2n + 2) of the two points in the target area C4 input from the first terminal S0 and the second terminal S1 of the second data selector 104 to the Output to the three coefficient multiplier 106. In the third coefficient multiplier 106, the
[0231]
The adder 111 at the preceding stage outputs the data D of two points in the target area C3 input from the fourth terminal S3 and the fifth terminal S4 of the second data selector 104.Two n + 1, DTwo n + 2Is output to the
[0232]
The adder 117 at the previous stage outputs the data S of two points in the target area C2 input from the seventh terminal S6 and the eighth terminal S7 of the second data selector 104.Two n + 3, STwo n + 4Is output to the
[0233]
The
[0234]
The output
[0235]
In the next (N + 1) -th processing (FIG. 30), conversion processing of the target areas C5, C6, C7, and C8 is performed. In addition, two normalization processes of the target regions N3 and N4 are executed in a cycle one clock before the conversion process of the target regions C5, C6, C7, and C8. The target areas C5, C6, C7, C8, N3, and N4 are areas obtained by moving the target areas C1, C2, C3, C4, N1, and N2 of the N-th processing (FIG. 29) two series (two points) backward. is there. In these target areas C5, C6, C7, C8, N3, and N4, processing similar to the processing in the target areas C1, C2, C3, C4, N1, and N2 is performed, respectively. Therefore, in the target area C8, the output data X (2n + 3) on the series starting from the odd-numbered input data Y (2n + 3) is calculated. In the target area C7, the even-numbered input data Y (2n + 6) is set as the starting point. The output data X (2n + 6) on the sequence to be processed is calculated, and in the target area C6, the intermediate data D of the second stage on the sequence starting from the odd-numbered input data Y (2n + 9)Two n + 4Is calculated, and in the target area C1, the second-stage intermediate data S on the series starting from the even-numbered input data Y (2n + 12)Two n + 6Is calculated. In the cycle one clock before, in the target areas N3 and N4, normalization processing is performed on the input data Y (2n + 12) and Y (2n + 13).
[0236]
Furthermore, in the (N + 2) -th processing (FIG. 31), conversion processing of the target areas C9, C10, C11, and C12 is performed. Further, two normalization processes of the target regions N5 and N6 are executed in a cycle one clock before the conversion process of the target regions C9, C10, C11 and C12.
[0237]
As described above, the same processing as the N-th processing (FIG. 29) is repeatedly performed while moving the target area until output data of all points is calculated. As a result, the average period required to calculate the output data of the even-numbered and odd-numbered points can be set to one clock period, and the calculation period of the output data can be greatly reduced.
[0238]
Next, a line-based two-dimensional inverse DWT process using the
[0239]
The data input to the first
[0240]
Data input to the
[0241]
Specifically, the
[0242]
The
[0243]
Similarly, the first and second
[0244]
The
[0245]
As a result, the data of the even-numbered rows and the data of the odd-numbered rows are output in parallel for each horizontal line from the
[0246]
As schematically shown in FIG. 32, the
[0247]
By performing the above processing recursively, it is possible to synthesize subbands (band components) having decomposition levels of any order. That is, the four subbands LL (k + 1), HL (k + 1), LH (k + 1), and HH (k + 1) at the (k + 1) -th (k is an integer of 2 or more) decomposition level are input to the
[0248]
As described above, in the
[0249]
In addition, the
[0250]
<Modification>
FIG. 34 is a diagram illustrating a schematic configuration of a two-dimensional
[0251]
Here, the
[0252]
From the
[0253]
In the line buffer circuit 141, each of the
[0254]
As described above, according to the configuration of the present modification, two points of composite data can be calculated in parallel within one clock cycle, so that a line-based two-dimensional DWT calculation can be performed at an extremely high speed.
[0255]
【The invention's effect】
As described above, according to the wavelet transform device of the present invention, the process of normalizing each input data and the transform process of transforming each intermediate data into other intermediate data and output data on one line are repeatedly executed. Since at least two processes among a plurality of processes repeatedly executed are executed in parallel within one clock cycle, the calculation cycle of output data can be shortened, and inverse wavelet transform can be executed in a short time and at high speed. Will be possible.
[0256]
According to the wavelet transform method of the present invention, a step (b) of normalizing input data and converting it into intermediate data of a first stage, and a step of converting intermediate data into other intermediate data in a series ( c) and the step (d) of converting intermediate data of the final stage into output data are repeatedly executed. However, at least two steps of the repeatedly executed steps are executed in parallel within one clock cycle. The cycle of calculating output data from the input data sequence can be shortened, and inverse wavelet transform can be performed in a short time and at high speed.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating a schematic configuration of a wavelet transform device according to a first embodiment of the present invention.
FIG. 2 is a schematic configuration diagram of a filtering unit according to the first embodiment.
FIG. 3 is a diagram schematically showing a lifting calculation process according to the first embodiment.
FIG. 4 is a diagram schematically showing steps of a lifting operation according to the first embodiment.
FIG. 5 is a diagram schematically showing a step of a lifting calculation according to the first embodiment.
FIG. 6 is a diagram schematically showing a lifting calculation process according to the first embodiment.
FIG. 7 is a diagram schematically showing a lifting calculation process according to the first embodiment.
FIG. 8 is a diagram schematically illustrating a step of a lifting operation according to the first embodiment.
FIG. 9 is a diagram schematically showing a lifting calculation process according to the first embodiment.
FIG. 10 is a diagram schematically showing a lifting calculation process according to the first embodiment.
FIG. 11 is a diagram schematically showing a process of synthesizing an image from subbands.
FIG. 12 is a diagram schematically showing two-dimensional image data and a storage area of a ring memory.
FIG. 13 is a diagram schematically showing a storage area of a ring memory.
FIG. 14 is a diagram illustrating a schematic configuration of a wavelet transform device according to a second embodiment of the present invention.
FIG. 15 is a schematic configuration diagram of a filtering unit according to a second embodiment.
FIG. 16 is a diagram schematically showing a lifting calculation process according to the second embodiment.
FIG. 17 is a diagram schematically showing a lifting calculation process according to the second embodiment.
FIG. 18 is a diagram schematically showing a lifting calculation process according to the second embodiment.
FIG. 19 is a diagram schematically illustrating a lifting calculation process according to the second embodiment.
FIG. 20 is a diagram schematically showing two-dimensional image data and a storage area of a ring memory.
FIG. 21 is a diagram schematically showing a storage area of a ring memory.
FIG. 22 is a diagram illustrating a schematic configuration of a filtering unit according to a third embodiment of the present invention.
FIG. 23 is a view schematically showing a step of a lifting operation according to the third embodiment.
FIG. 24 is a diagram schematically showing a lifting calculation process according to the third embodiment.
FIG. 25 is a diagram schematically showing a lifting calculation process according to the third embodiment.
FIG. 26 is a diagram illustrating a schematic configuration of a wavelet transform device according to a modification of the second and third embodiments.
FIG. 27 is a diagram illustrating a schematic configuration of a wavelet transform device according to a fourth embodiment of the present invention.
FIG. 28 is a schematic configuration diagram of a vertical filtering unit according to a fourth embodiment.
FIG. 29 is a diagram schematically showing a lifting calculation process according to the fourth embodiment.
FIG. 30 is a diagram schematically showing a lifting calculation process according to the fourth embodiment.
FIG. 31 is a diagram schematically showing a lifting calculation process according to the fourth embodiment.
FIG. 32 is a diagram schematically showing two-dimensional image data and a storage area of a ring memory.
FIG. 33 is a diagram schematically showing a storage area of a ring memory.
FIG. 34 is a diagram illustrating a schematic configuration of a wavelet transform device according to a modification of the fourth embodiment.
FIG. 35 is a diagram schematically showing a filter bank used in DWT and inverse DWT.
FIG. 36 is a diagram schematically illustrating image data subjected to two-dimensional DWT at a third-order decomposition level.
FIG. 37 is a lattice diagram schematically showing a lifting configuration on the combining side.
FIG. 38 is a diagram schematically illustrating a calculation method recommended by the JPEG2000 system.
FIG. 39 is a diagram schematically showing a step of a lifting calculation.
FIG. 40 is a view schematically showing a step of a lifting operation.
FIG. 41 is a diagram schematically showing a step of a lifting calculation.
FIG. 42 is a view schematically showing a step of a lifting operation.
FIG. 43 is a view schematically showing a step of a lifting operation.
FIG. 44 is a view schematically showing a step of a lifting operation.
FIG. 45 is a diagram schematically showing a lifting calculation process.
FIG. 46 is a view schematically showing a step of a lifting operation.
FIG. 47 is a view schematically showing a step of a lifting operation.
FIG. 48 is a view schematically showing a step of a lifting operation.
[Explanation of symbols]
1 Wavelet transform device
2 MMU (memory management unit)
3A, 3B ring memory
4A, 4B filtering unit
5 Line buffer circuit
Claims (21)
制御部と、
高域成分および低域成分の一方からなる第1データ列と、その他方からなる第2データ列とが画素単位で交互に配列されて構成される入力データ列を取り込んで合成された出力データ列を算出するフィルタリング部と、
を備え、
前記フィルタリング部は、
前記入力データ列の各々に所定の規格化係数を乗算することで、各入力データを第1段階の中間データへ1点当たり1クロック周期内に変換する単数または複数の規格化処理を実行する規格化手段と、
前記規格化手段によって規格化された第1段階の中間データの各々を単数または複数の段階に亘る一系列の中間データへ1点当たり1クロック周期内に変換し、あるいは、最終段階の中間データの各々を出力データへ1点当たり1クロック周期内に変換する単数または複数の変換処理を実行する中間データ変換手段と、を含み、
前記制御部は、
前記規格化手段および前記中間データ変換手段に、前記単数または複数の規格化処理および前記単数または複数の変換処理を、全ての点の前記出力データが算出されるまで繰り返し実行させ、且つ、繰り返し実行される前記単数または複数の規格化処理および前記単数または複数の変換処理のうち少なくとも2個の処理を1クロック周期内に並列に実行させるように制御する、
ことを特徴とするウェーブレット変換装置。A wavelet transform device that combines band-divided high-frequency component data and low-frequency component data based on a lifting configuration,
A control unit;
An output data sequence synthesized by taking in an input data sequence constituted by alternately arranging a first data sequence composed of one of a high-frequency component and a low-frequency component and a second data sequence composed of the other in pixel units A filtering unit that calculates
With
The filtering unit,
A standard for executing one or more normalization processes for converting each input data into first stage intermediate data within one clock cycle per point by multiplying each of the input data strings by a predetermined normalization coefficient. Means,
Each of the first-stage intermediate data standardized by the normalization means is converted into one series or a plurality of stages of intermediate data within one clock cycle per point, or the final stage intermediate data is converted. Intermediate data conversion means for performing one or more conversion processes for converting each to output data within one clock cycle per point,
The control unit includes:
Causing the normalizing means and the intermediate data converting means to repeatedly execute the singular or plural normalizing processing and the singular or plural converting processing until the output data of all points is calculated; and Controlling at least two of the singular or plural normalization processes and the singular or plural conversion processes to be executed in parallel within one clock cycle;
A wavelet transform device characterized by the above-mentioned.
前記規格化手段は、
各入力データに前記規格化係数を乗算する規格化係数乗算器と、
前記規格化係数乗算器から出力されたデータを遅延させる遅延器と、
を含み、
前記中間データ変換手段は、
2点の中間データの一方に所定のリフティング係数を乗算するリフティング係数乗算器と、該リフティング係数乗算器から出力されたデータと前記2点の中間データの他方とを加算する加算器とからなる2点演算部と、
前記2点演算部から出力されたデータを取り込んで前記制御部から指定された出力先に出力する出力先選択部と、
を含み、
前記ウェーブレット変換装置は、さらに、
メモリ管理部と、
前記メモリ管理部の制御によりデータを一時記憶するメモリと、
を備え、
前記メモリ管理部は、
前記出力先選択部から出力された前記データを前記メモリに転送し記憶させるように制御する、
ことを特徴とするウェーブレット変換装置。The wavelet transform device according to claim 1 or 2, wherein
The normalizing means,
A normalization coefficient multiplier for multiplying each input data by the normalization coefficient,
A delay unit for delaying data output from the normalization coefficient multiplier,
Including
The intermediate data conversion means,
A lifting coefficient multiplier for multiplying one of the two intermediate data by a predetermined lifting coefficient; and an adder for adding the data output from the lifting coefficient multiplier and the other of the two intermediate data. A point calculation unit,
An output destination selection unit that captures data output from the two-point calculation unit and outputs the data to an output destination specified by the control unit;
Including
The wavelet transform device further includes:
A memory management unit,
A memory for temporarily storing data under the control of the memory management unit;
With
The memory management unit,
Controlling the data output from the output destination selection unit to be transferred to and stored in the memory,
A wavelet transform device characterized by the above-mentioned.
前記制御部は、前記変換処理として、
「前記第2データ列に属する入力データを起点とする系列」(以下、第2系列と呼ぶ。)上の第1段階の中間データと、その中間データに対して1点前の「前記第1データ列に属する入力データを起点とする系列」(以下、第1系列と呼ぶ。)上の第1段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第2系列上の第2段階の一時データを1点当たり1クロック周期内に算出する第1の変換処理と、
前記第1の変換処理で算出され前記メモリに記憶された前記一時データと、その一時データの系列に対して1点後の第1系列上の第1段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第2系列上の第2段階の中間データを1点当たり1クロック周期内に算出する第2の変換処理と、
第1系列上の第1段階の中間データと、その中間データに対して1点前の第2系列上の第2段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第1系列上の第2段階の一時データを1点当たり1クロック周期内に算出する第3の変換処理と、
前記第3の変換処理で算出され前記メモリに記憶された前記一時データと、その一時データの系列に対して1点後の第2系列上の第2段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第1系列上の第2段階の前記中間データを1点当たり1クロック周期内に算出する第4の変換処理と、
第2系列上の第M段階(段階数Mは1以上の整数)の中間データと、その中間データの系列に対して1点前の第1系列上の第M段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第2系列上の第M+1段階の一時データを1点当たり1クロック周期内に算出する第5の変換処理と、
前記第5の変換処理で算出され前記メモリに記憶された前記一時データと、その一時データの系列に対して1点後の第1系列上の第M段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第2系列上の第M+1段階の中間データを1点当たり1クロック周期内に算出する第6の変換処理と、
第1系列上の第L段階(段階数Lは1以上の整数)の中間データと、その中間データの系列に対して1点前の第2系列上の第L+1段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第1系列上の第L+1段階の一時データを1点当たり1クロック周期内に算出する第7の変換処理と、
前記第7の変換処理で算出され前記メモリに記憶された前記一時データと、その一時データの系列に対して1点後の第2系列上の第L+1段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第1系列上の第L+1段階の前記中間データを1点当たり1クロック周期内に算出する第8の変換処理と、
を全ての点の前記出力データが算出されるまで前記2点演算部に繰り返し実行させるように制御する、ウェーブレット変換装置。The wavelet transform device according to claim 3, wherein
The control unit, as the conversion process,
The intermediate data at the first stage on the “series starting from the input data belonging to the second data string” (hereinafter, referred to as a second series), and the “1st stage intermediate data before the intermediate data” By adding intermediate data of the first stage on a sequence starting from input data belonging to a data sequence (hereinafter referred to as a first sequence) with data obtained by multiplying by a predetermined lifting coefficient, A first conversion process for calculating the second stage temporary data on the second stream within one clock cycle per point;
The temporary data calculated in the first conversion process and stored in the memory, and the intermediate data of the first stage on the first series one point after the temporary data series are multiplied by a predetermined lifting coefficient. A second conversion process of calculating the intermediate data of the second stage on the second sequence within one clock cycle per point by adding
The first stage intermediate data on the first series and the data obtained by multiplying the second stage intermediate data on the second series one point earlier by a predetermined lifting coefficient with respect to the intermediate data are added. In this way, a third conversion process of calculating the second stage temporary data on the first stream within one clock cycle per point,
Multiplying the temporary data calculated in the third conversion processing and stored in the memory by a predetermined lifting coefficient to the intermediate data of the second stage on the second series one point after the temporary data series A fourth conversion process of calculating the intermediate data of the second stage on the first series within one clock cycle per point by adding
A predetermined lifting is performed on the intermediate data of the M-th stage (the number of stages M is an integer of 1 or more) on the second sequence and the intermediate data of the M-th stage on the first sequence one point before the intermediate data sequence A fifth conversion process of calculating temporary data of the (M + 1) -th stage on the second sequence within one clock cycle per point by adding the data obtained by multiplying the coefficients;
Multiplying the temporary data calculated in the fifth conversion process and stored in the memory and the intermediate data of the M-th stage on the first series one point after the temporary data series by a predetermined lifting coefficient; A sixth conversion process of calculating the intermediate data of the (M + 1) th stage on the second stream within one clock cycle per point by adding the data obtained by
A predetermined lifting is performed on intermediate data of the L-th stage (the number of stages L is an integer of 1 or more) on the first stream and intermediate data of the L + 1-th stage on the second stream one point before the series of the intermediate data A seventh conversion process of calculating the temporary data of the (L + 1) th stage on the first series within one clock cycle per point by adding the data obtained by multiplying the coefficients,
The temporary data calculated in the seventh conversion processing and stored in the memory and the intermediate data of the L + 1-th stage on the second series one point after the temporary data series are multiplied by a predetermined lifting coefficient. An eighth conversion process of calculating the intermediate data of the (L + 1) th stage on the first stream within one clock cycle per point by adding
Is controlled so that the two-point calculation unit is repeatedly executed until the output data of all points is calculated.
前記制御部は、前記第1の変換処理および前記第3の変換処理を実行した後に、前記第5の変換処理および前記第7の変換処理を、前記最終段階の前記一時データが算出されるまで前記2点演算部に実行させ、その後、前記第2の変換処理および前記第4の変換処理を実行した後に、前記第6の変換処理および前記第8の変換処理を、前記出力データが算出されるまで前記2点演算部に実行させるように制御する、
ウェーブレット変換装置。The wavelet transform device according to claim 4, wherein
The control unit, after executing the first conversion process and the third conversion process, performs the fifth conversion process and the seventh conversion process until the temporary data in the final stage is calculated. After the second conversion process and the fourth conversion process are performed by the two-point operation unit, the output data is calculated by performing the sixth conversion process and the eighth conversion process after performing the second conversion process and the fourth conversion process. Until it is executed by the two-point calculation unit,
Wavelet transform device.
互いに独立に動作する4個の前記2点演算部を備え、
前記制御部は、前記変換処理として、
前記第2データ列に属し且つ前記入力データ列の中でP番目(データ番号Pは整数)の入力データを始点とする系列上の第2段階の中間データを算出する前記第2の変換処理と、
P−1番目の入力データを始点とする系列上の第2段階の一時データを算出する前記第3の変換処理と、
P−4番目の入力データを始点とする系列上の第M+1段階の中間データを算出する前記第6の変換処理と、
P−5番目の入力データを始点とする系列上の第L+1段階の一時データを算出する前記第7の変換処理と、
の4工程を前記各2点演算部に並列に実行させると共に、
P+2番目の入力データを始点とする系列上の第2段階の一時データを算出する前記第1の変換処理と、
前記P−1番目の入力データを始点とする系列上の第2段階の前記中間データを算出する前記第4の変換処理と、
P−2番目の入力データを始点とする系列上の第M段階の一時データを算出する前記第5の変換処理と、
前記P−5番目の入力データを始点とする系列上の第L+1段階の中間データを算出する前記第8の変換処理と、
の4個の処理をそれぞれ前記各2点演算部に並列に実行させるように制御する、ウェーブレット変換装置。The wavelet transform device according to claim 4, wherein
It comprises four of said two-point arithmetic units operating independently of each other,
The control unit, as the conversion process,
A second conversion process of calculating intermediate data of a second stage on a sequence belonging to the second data sequence and starting from a P-th (data number P is an integer) input data in the input data sequence; ,
The third conversion processing of calculating temporary data of a second stage on a series starting from the P-1st input data;
The sixth conversion processing for calculating intermediate data at the (M + 1) th stage on a sequence starting from the P-4th input data;
The seventh conversion process of calculating temporary data at the (L + 1) th stage on a sequence starting from the P-5th input data;
The above four steps are executed in parallel by the respective two-point arithmetic units,
The first conversion processing of calculating temporary data of a second stage on a series starting from the P + 2th input data;
A fourth conversion process of calculating the intermediate data in a second stage on a sequence starting from the P-1st input data;
The fifth conversion processing for calculating the M-th stage temporary data on the series starting from the P-2nd input data;
The eighth conversion processing for calculating intermediate data at the (L + 1) th stage on a sequence starting from the P-5th input data;
A wavelet transform device that controls each of the two processing units to execute the four processes in parallel.
前記規格化手段は、
各入力データに前記規格化係数を乗算する規格化係数乗算器と、
前記規格化係数乗算器から出力されたデータを遅延させる遅延器と、
を含み、
前記中間データ変換手段は、
取り込まれた3点の入力データの中で第1および第2の入力データを加算する第1加算器と、該第1加算器から出力されたデータに所定のリフティング係数を乗算するリフティング係数乗算器と、該リフティング係数乗算器から出力されたデータと第3の入力データとを加算することで中間データを算出する第2加算器とからなる3点演算部と、
前記3点演算部から出力された中間データを取り込んで前記制御部から指定された出力先に出力する出力先選択部と、
を含み、
前記メモリ管理部は、
前記出力先選択部から出力された中間データを前記メモリに転送し記憶させるように制御する、
ウェーブレット変換装置。The wavelet transform device according to claim 1 or 2, wherein
The normalizing means,
A normalization coefficient multiplier for multiplying each input data by the normalization coefficient,
A delay unit for delaying data output from the normalization coefficient multiplier,
Including
The intermediate data conversion means,
A first adder for adding the first and second input data among the three input data taken in, and a lifting coefficient multiplier for multiplying the data output from the first adder by a predetermined lifting coefficient A three-point operation unit comprising: a second adder that calculates intermediate data by adding data output from the lifting coefficient multiplier and third input data;
An output destination selection unit that takes in the intermediate data output from the three-point calculation unit and outputs the intermediate data to an output destination specified by the control unit;
Including
The memory management unit,
Controlling the intermediate data output from the output destination selection unit to be transferred to and stored in the memory;
Wavelet transform device.
前記制御部は、前記変換処理として、
「前記第2データ列に属する入力データを始点とする系列」(以下、第2系列と呼ぶ。)上の第1段階の中間データと、その中間データの系列に対して1点前後する「前記第1データ列に属する入力データを始点とする系列」(以下、第1系列と呼ぶ。)上の2点の第1段階の中間データを加算したデータに所定のリフティング係数を乗算して得たデータとを加算することで、当該第2系列上の第2段階の中間データを1点当たり1クロック周期内に算出する第1の変換処理と、第1系列上の第1段階の中間データと、その第1段階の中間データの系列に対して1点前後する第2系列上の2点の第2段階の中間データを加算したデータに所定のリフティング係数を乗算して得たデータとを加算することで、当該第1系列上の第2段階の中間データを1点当たり1クロック周期内に算出する第2の変換処理と、
第2系列上の第M段階(段階数Mは1以上の整数)の中間データと、その第M段階の中間データの系列に対して1点前後する第1系列上の2点の第M段階の中間データを加算したデータに所定のリフティング係数を乗算して得たデータとを加算することで、当該第2系列上の第M+1段階の中間データを1点当たり1クロック周期内に算出する第3の変換処理と、
第1系列上の第L段階(段階数Lは1以上の整数)の中間データと、その第L段階の中間データの系列に対して1点前後する第2系列上の2点の第L+1段階の中間データを加算したデータに所定のリフティング係数を乗算して得たデータとを加算することで、当該第1系列上の第L+1段階の中間データを1点当たり1クロック周期内に算出する第4の変換処理と、
を全ての点の前記出力データが算出されるまで前記3点演算部に繰り返し実行させるように制御する、ウェーブレット変換装置。The wavelet transform device according to claim 7, wherein
The control unit, as the conversion process,
The first-stage intermediate data on the “sequence starting from the input data belonging to the second data sequence” (hereinafter, referred to as a second sequence) and one point around the intermediate data sequence “ It is obtained by multiplying data obtained by adding intermediate data of the first stage of two points on a sequence starting from input data belonging to the first data sequence (hereinafter referred to as a first sequence) by a predetermined lifting coefficient. By adding the data, a first conversion process of calculating the second-stage intermediate data on the second sequence within one clock cycle per point, and a first-stage intermediate data on the first sequence Add the data obtained by multiplying the data obtained by adding the intermediate data of the second stage of the second series, which is about one point to the series of the intermediate data of the first stage, by a predetermined lifting coefficient. By doing, the intermediate data of the second stage on the first series A second conversion processing for calculating the data within one clock cycle per point,
Intermediate data at the M-th stage (the number of stages M is an integer equal to or greater than 1) on the second series, and two M-th stages on the first series that are about one point behind the series of intermediate data at the M-th The intermediate data of the (M + 1) th stage on the second sequence is calculated within one clock cycle by adding data obtained by multiplying the intermediate data of the second series by a predetermined lifting coefficient. 3 conversion processing;
Intermediate data at the L-th stage (the number of stages L is an integer equal to or greater than 1) on the first stream, and two points on the second stream at the L + 1-th stage, which is one point around the L-stage intermediate data series By adding the data obtained by multiplying the intermediate data of the first series by a predetermined lifting coefficient and adding the data obtained by multiplying the data by a predetermined lifting coefficient, the intermediate data of the (L + 1) th stage on the first series is calculated within one clock cycle per point. 4 conversion processing;
Is controlled so that the three-point calculation unit is repeatedly executed until the output data of all the points is calculated.
互いに独立に動作する2個の前記3点演算部を備え、
前記制御部は、
前記第1データ列に属し且つ前記入力データ列の中でP番目(データ番号Pは整数)の入力データを始点とする系列上の前記中間データを算出する前記第2の変換処理と、
P−4番目の入力データを始点とする系列上の第L+1段階の前記中間データを算出する前記第4の変換処理と、
の2個の処理をそれぞれ前記各3点演算部に並列に実行させるように制御する、ウェーブレット変換装置。The wavelet transform device according to claim 8, wherein
Comprising two of the three-point operation units operating independently of each other;
The control unit includes:
A second conversion process for calculating the intermediate data on a sequence belonging to the first data sequence and starting from a P-th (data number P is an integer) input data in the input data sequence;
The fourth conversion processing of calculating the intermediate data of the (L + 1) -th stage on the sequence starting from the P-4th input data;
A wavelet transform device for controlling the two processes of the three-point calculation units to execute the two processes in parallel.
前記制御部は、
前記入力データ列の中でP+3番目(データ番号Pは整数)の入力データを始点とする系列上の前記中間データを算出する前記第1の変換処理と、
P−1番目の入力データを始点とする系列上の第M+1段階の中間データを算出する前記第3の変換処理と、
の2個の処理をそれぞれ前記各3点演算部に並列に実行させるように制御する、ウェーブレット変換装置。The wavelet transform device according to claim 8 or 9, wherein:
The control unit includes:
The first conversion processing of calculating the intermediate data on a sequence starting from the P + 3th (data number P is an integer) input data in the input data sequence;
The third conversion processing of calculating intermediate data at the (M + 1) th stage on a sequence starting from the (P-1) th input data;
A wavelet transform device for controlling the two processes of the three-point calculation units to execute the two processes in parallel.
前記フィルタリング部は、直列に接続される第1フィルタリング部と第2フィルタリング部とから構成されており、
前記第1フィルタリング部は、水平方向および垂直方向のうちの一方向に帯域分割されている前記高域成分および前記低域成分のデータを入力し、これらのデータを合成してライン単位で算出し、
前記第2フィルタリング部は、前記第1フィルタリング部で算出された合成データに対して処理を実行することで、前記水平方向および前記垂直方向のうちの他方向の合成データを算出する、
ウェーブレット変換装置。The wavelet transform device according to any one of claims 1 to 11, wherein
The filtering unit includes a first filtering unit and a second filtering unit connected in series,
The first filtering unit receives the data of the high-frequency component and the low-frequency component, which are band-divided in one of a horizontal direction and a vertical direction, and combines these data to calculate a line unit. ,
The second filtering unit calculates the combined data in the other direction of the horizontal direction and the vertical direction by performing a process on the combined data calculated by the first filtering unit.
Wavelet transform device.
(a)高域成分および低域成分の一方からなる第1データ列と、その他方からなる第2データ列とが画素単位で交互に配列されて構成される入力データ列から、入力データを選択的に取り込む工程と、
(b)前記工程(a)で取り込まれた前記入力データの各々に規格化係数を乗算することで第1段階の中間データへ1点当たり1クロック周期内に変換する工程と、
(c)第m段階(mは1以上の整数)の中間データを第m+1段階の中間データへ1点当たり1クロック周期内に算出する工程(第m段階の中間データが最終段階の中間データである場合を含む。この場合、第m+1段階の中間データは出力データである。)と、
を備え、
前記工程(b)および工程(c)を、全ての点の前記出力データが算出されるまで繰り返し実行し、且つ、繰り返し実行される前記工程(b)および工程(c)を1クロック周期内に並列に実行することを特徴とするウェーブレット変換方法。A wavelet transform method for combining band-divided high-frequency component data and low-frequency component data based on a lifting configuration,
(A) Input data is selected from an input data sequence in which a first data sequence composed of one of a high-frequency component and a low-frequency component and a second data sequence composed of the other are alternately arranged in pixel units. The process of capturing
(B) multiplying each of the input data fetched in the step (a) by a normalization coefficient to convert the input data into a first stage intermediate data within one clock cycle per point;
(C) calculating the m-th stage (m is an integer of 1 or more) intermediate data into the (m + 1) -th stage intermediate data within one clock cycle per point (where the m-th stage intermediate data is the final stage intermediate data) In this case, the intermediate data at the (m + 1) th stage is output data.)
With
The steps (b) and (c) are repeatedly executed until the output data of all points are calculated, and the steps (b) and (c) executed repeatedly are performed within one clock cycle. A wavelet transform method, which is performed in parallel.
前記工程(c)は、
(c−1)「前記第2データ列に属する入力データを起点とする系列」(以下、第2系列と呼ぶ。)上の第1段階の中間データと、その中間データに対して1点前の「前記第1データ列に属する入力データを起点とする系列」(以下、第1系列と呼ぶ。)上の第1段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第2系列上の第2段階の一時データを1点当たり1クロック周期内に算出する工程と、
(c−2)前記工程(c−1)で算出され前記メモリに記憶された前記一時データと、その一時データの系列に対して1点後の第1系列上の第1段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第2系列上の第2段階の中間データを1点当たり1クロック周期内に算出する工程と、
(c−3)第1系列上の第1段階の中間データと、その中間データに対して1点前の第2系列上の第2段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第1系列上の第2段階の一時データを1点当たり1クロック周期内に算出する工程と、
(c−4)前記工程(c−3)で算出され前記メモリに記憶された前記一時データと、その一時データの系列に対して1点後の第2系列上の第2段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第1系列上の第2段階の中間データを1点当たり1クロック周期内に算出する工程と、
(c−5)第2系列上の第M段階(段階数Mは1以上の整数)の中間データと、その中間データの系列に対して1点前の第1系列上の第M段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第2系列上の第M+1段階の一時データを1点当たり1クロック周期内に算出する工程と、
(c−6)前記工程(c−5)で算出され前記メモリに記憶された前記一時データと、その一時データの系列に対して1点後の第1系列上の第M段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第2系列上の第M+1段階の一時データを1点当たり1クロック周期内に算出する工程と、
(c−7)第1系列上の第L段階(段階数Lは1以上の整数)の前記中間データと、その中間データの系列に対して1点前の第2系列上の第L+1段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第1系列上の第L+1段階の一時データを1点当たり1クロック周期内に算出する工程と、
(c−8)前記工程(c−7)で算出され前記メモリに記憶された前記一時データと、その一時データの系列に対して1点後の第2系列上の第L+1段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第1系列上の第L+1段階の中間データを1点当たり1クロック周期内に算出する工程と、
を備え、
前記工程(c−1)〜工程(c−8)を、全ての点の出力データが算出されるまで繰り返し実行させるように制御する、ウェーブレット変換方法。The wavelet transform method according to claim 13, wherein
The step (c) comprises:
(C-1) Intermediate data at the first stage on the "series starting from the input data belonging to the second data string" (hereinafter referred to as "second series") and one point before the intermediate data Is added to the data obtained by multiplying the intermediate data of the first stage on the “sequence starting from the input data belonging to the first data string” (hereinafter referred to as the first series) by a predetermined lifting coefficient. Calculating the temporary data of the second stage on the second stream within one clock cycle per point;
(C-2) the temporary data calculated in the step (c-1) and stored in the memory, and the intermediate data of the first stage on the first series one point after the series of the temporary data Calculating intermediate data of the second stage on the second sequence within one clock cycle per point by adding the data obtained by multiplying by a predetermined lifting coefficient;
(C-3) Intermediate data in the first stage on the first stream and intermediate data in the second step on the second stream one point before the intermediate data are multiplied by a predetermined lifting coefficient. Calculating the temporary data of the second stage on the first stream within one clock cycle per point by adding
(C-4) the temporary data calculated in the step (c-3) and stored in the memory, and the intermediate data of the second stage on the second series one point after the series of the temporary data Calculating intermediate data of the second stage on the first series within one clock cycle per point by adding the data obtained by multiplying by a predetermined lifting coefficient;
(C-5) Intermediate data of the M-th stage (the number of stages M is an integer of 1 or more) on the second stream, and the middle of the M-th stage on the first stream one point before the series of the intermediate data Calculating temporary data of the (M + 1) th stage on the second stream within one clock cycle by adding the data obtained by multiplying the data by a predetermined lifting coefficient;
(C-6) The temporary data calculated in the step (c-5) and stored in the memory, and the intermediate data of the M-th stage on the first series one point after the series of the temporary data. Calculating the temporary data of the (M + 1) th stage on the second stream within one clock cycle per point by adding the data obtained by multiplying the predetermined lifting coefficient;
(C-7) The L-th stage (the number of stages L is an integer of 1 or more) of the intermediate data on the first stream and the L + 1-th stage on the second stream that is one point before the intermediate data series Calculating the temporary data of the (L + 1) -th stage on the first stream within one clock cycle by adding the intermediate data and data obtained by multiplying the intermediate data by a predetermined lifting coefficient;
(C-8) The temporary data calculated in the step (c-7) and stored in the memory, and the intermediate data of the L + 1-th stage on the second series one point after the series of the temporary data. Calculating intermediate data of the (L + 1) -th stage on the first stream within one clock cycle per point by adding data obtained by multiplying by a predetermined lifting coefficient;
With
A wavelet transform method that controls the steps (c-1) to (c-8) to be repeatedly executed until output data of all points are calculated.
前記工程(c−1)および前記工程(c−3)を実行した後に、前記工程(c−5)および前記工程(c−7)を、前記出力データの一時データが算出されるまで実行し、
その後、前記工程(c−2)および前記工程(c−4)を実行した後に、前記工程(c−6)および前記工程(c−8)を、前記出力データが算出されるまで実行する、
ウェーブレット変換方法。The wavelet transform method according to claim 14,
After executing the steps (c-1) and (c-3), the steps (c-5) and (c-7) are executed until temporary data of the output data is calculated. ,
Then, after executing the steps (c-2) and (c-4), the steps (c-6) and (c-8) are executed until the output data is calculated.
Wavelet transform method.
前記第2データ列に属し且つ前記入力データ列の中でP番目(データ番号Pは整数)の入力データを始点とする系列上の第2段階の中間データを算出する前記工程(c−2)と、
P−1番目の入力データを始点とする系列上の第2段階の一時データを算出する前記工程(c−3)と、
P−4番目の入力データを始点とする系列上の第M+1段階の中間データを算出する前記工程(c−6)と、
P−5番目の入力データを始点とする系列上の第L+1段階の一時データを算出する前記工程(c−7)と、
の4工程を前記各2点演算部に並列に実行させると共に、
P+2番目の入力データを始点とする系列上の第2段階の一時データを算出する前記工程(c−1)と、
前記P−1番目の入力データを始点とする系列上の第2段階の前記中間データを算出する前記工程(c−4)と、
P−2番目の入力データを始点とする系列上の第M+1段階の一時データを算出する前記工程(c−5)と、
前記P−5番目の入力データを始点とする系列上の第L+1段階の中間データを算出する前記工程(c−8)と、
の4個の処理をそれぞれ並列に実行させるように制御する、
ウェーブレット変換方法。The wavelet transform method according to claim 14,
The step (c-2) of calculating intermediate data of a second stage on a sequence belonging to the second data string and starting from a P-th (data number P is an integer) input data in the input data string; When,
The step (c-3) of calculating temporary data of a second stage on a series starting from the P-1st input data;
The step (c-6) of calculating intermediate data of the (M + 1) th stage on the sequence starting from the P-4th input data;
The step (c-7) of calculating temporary data at the (L + 1) th stage on the sequence starting from the P-5th input data;
The above four steps are executed in parallel by the respective two-point arithmetic units,
The step (c-1) of calculating temporary data of a second stage on a sequence starting from the P + 2th input data;
The step (c-4) of calculating the intermediate data of the second stage on the sequence starting from the P-1st input data;
The step (c-5) of calculating temporary data at the (M + 1) th stage on a sequence starting from the (P-2) th input data;
The step (c-8) of calculating intermediate data of the (L + 1) -th stage on a sequence starting from the P-5th input data;
Are controlled to execute the four processes in parallel, respectively.
Wavelet transform method.
前記工程(c)は、
(c−1)「前記第2データ列に属する入力データを始点とする系列」(以下、第2系列と呼ぶ。)上の第1段階の中間データと、その中間データの系列に対して1点前後する「前記第1データ列に属する入力データを始点とする系列」(以下、第1系列と呼ぶ。)上の2点の第1段階の中間データを加算したデータに所定のリフティング係数を乗算して得たデータとを加算することで、当該第2系列上の第2段階の中間データを1点当たり1クロック周期内に算出する工程と、(c−2)第1系列上の第1段階の中間データと、その中間データの系列に対して1点前後する第2系列上の2点の第2段階の中間データを加算したデータに所定のリフティング係数を乗算して得たデータとを加算することで、当該第1系列上の第2段階の中間データを1点当たり1クロック周期内に算出する工程と、(c−3)第2系列上の第M段階(段階数Mは1以上の整数)の中間データと、その第M段階の中間データの系列に対して1点前後する第1系列上の2点の第M段階の中間データを加算したデータに所定のリフティング係数を乗算して得たデータとを加算することで、当該第2系列上の第M+1段階の中間データを1点当たり1クロック周期内に算出する工程と、
(c−4)第1系列上の第L段階(段階数Lは1以上の整数)の中間データと、その第L段階の中間データの系列に対して1点前後する第2系列上の2点の第L+1段階の中間データを加算したデータに所定のリフティング係数を乗算して得たデータとを加算することで、当該第1系列上の第L+1段階の中間データを1点当たり1クロック周期内に算出する工程と、
を備え、
前記工程(c−1)〜工程(c−4)を、全ての点の前記出力データが算出されるまで繰り返し実行するウェーブレット変換方法。The wavelet transform method according to claim 13, wherein
The step (c) comprises:
(C-1) The first-stage intermediate data on the “sequence starting from the input data belonging to the second data sequence” (hereinafter, referred to as the second sequence), and 1 for the intermediate data sequence A predetermined lifting coefficient is added to the data obtained by adding the intermediate data of the first stage of the two points on the “sequence starting from the input data belonging to the first data string” (hereinafter referred to as the first series) that is before or after the point. (C-2) calculating the intermediate data of the second stage on the second stream within one clock cycle per point by adding the data obtained by the multiplication; One-stage intermediate data, and data obtained by multiplying data obtained by adding two points of second-stage intermediate data on a second series that is one point around the intermediate data series by a predetermined lifting coefficient, and Is added to the intermediate data of the second stage on the first series. (C-3) intermediate data of the M-th stage (the number of stages M is an integer of 1 or more) on the second stream, and intermediate data of the M-th stage By adding a data obtained by multiplying the data obtained by multiplying a predetermined lifting coefficient to data obtained by adding two points of the M-th stage intermediate data on the first stream which is about one point to the second stream. Calculating the intermediate data of the (M + 1) th stage within one clock cycle per point;
(C-4) L-stage intermediate data on the first stream (the number of stages L is an integer equal to or greater than 1) and 2nd-stream data on the second stream that is about one point away from the L-stage intermediate data stream By adding the data obtained by multiplying the data obtained by multiplying the intermediate data of the (L + 1) -th stage of the point by a predetermined lifting coefficient, the intermediate data of the (L + 1) -th stage on the first stream can be changed by one clock cycle per point. Calculating within
With
A wavelet transform method in which the steps (c-1) to (c-4) are repeatedly executed until the output data of all points is calculated.
前記第1データ列に属し且つ前記入力データ列の中でP番目(データ番号Pは整数)の入力データを始点とする系列上の第2段階の中間データを算出する前記工程(c−2)と、
P−4番目の入力データを始点とする系列上の第L+1段階の前記中間データを算出する前記工程(c−4)と、
の2個の処理をそれぞれ並列に実行させるように制御する、
ウェーブレット変換方法。The wavelet transform method according to claim 17, wherein
The step (c-2) of calculating intermediate data of a second stage on a sequence belonging to the first data sequence and starting from a P-th (data number P is an integer) input data in the input data sequence. When,
The step (c-4) of calculating the intermediate data of the (L + 1) -th stage on the sequence starting from the P-4th input data;
Is controlled so that the two processes are executed in parallel.
Wavelet transform method.
前記入力データ列の中でP+3番目(データ番号Pは整数)の入力データを始点とする系列上の中間データを算出する前記工程(c−1)と、
P−1番目の入力データを始点とする系列上の第M+1段階の中間データを算出する前記工程(c−3)と、
の2個の処理をそれぞれ並列に実行させるように制御する、
ウェーブレット変換方法。A wavelet transform method according to claim 17 or claim 18, wherein
The step (c-1) of calculating intermediate data on a sequence starting from the (P + 3) th (data number P is an integer) input data in the input data sequence;
The step (c-3) of calculating intermediate data at the (M + 1) -th stage on a sequence starting from the (P-1) th input data;
Is controlled so that the two processes are executed in parallel.
Wavelet transform method.
低域成分と高域成分に帯域分割された2次元画像データに対して、当該2次元画像データの水平方向および垂直方向のうちの一方向にライン単位で前記工程(a)〜工程(c)を適用することによって合成データ列を算出し、この算出された合成データ列に対して、前記水平方向および前記垂直方向のうちの他方向に前記工程(a)〜工程(c)を適用する、ウェーブレット変換方法。The wavelet transform method according to any one of claims 13 to 20, wherein
For the two-dimensional image data band-divided into a low-frequency component and a high-frequency component, the steps (a) to (c) are performed in line units in one of the horizontal direction and the vertical direction of the two-dimensional image data. Is applied, and the steps (a) to (c) are applied to the calculated combined data string in the other of the horizontal direction and the vertical direction. Wavelet transform method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002362726A JP4223795B2 (en) | 2002-12-13 | 2002-12-13 | Wavelet transform apparatus and wavelet transform method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002362726A JP4223795B2 (en) | 2002-12-13 | 2002-12-13 | Wavelet transform apparatus and wavelet transform method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004194224A true JP2004194224A (en) | 2004-07-08 |
JP4223795B2 JP4223795B2 (en) | 2009-02-12 |
Family
ID=32761089
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002362726A Expired - Fee Related JP4223795B2 (en) | 2002-12-13 | 2002-12-13 | Wavelet transform apparatus and wavelet transform method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4223795B2 (en) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100628441B1 (en) | 2004-09-16 | 2006-09-26 | 전남대학교산학협력단 | Apparatus for lifting discrete wavelet transform of JPEG2000 |
JP2008288883A (en) * | 2007-05-17 | 2008-11-27 | Sony Corp | Information processing device and method |
US8204331B2 (en) | 2007-05-17 | 2012-06-19 | Sony Corporation | Information processing apparatus and method to reduce delay in image decoding |
CN108829921A (en) * | 2018-05-03 | 2018-11-16 | 天津大学 | VLSI design method based on multilevel two-dimensional wavelet transform |
CN109408770A (en) * | 2018-09-08 | 2019-03-01 | 天津大学 | High performance two-dimensional discrete wavelet conversion architecture design method based on boosting algorithm |
CN113554722A (en) * | 2021-07-22 | 2021-10-26 | 辽宁科技大学 | Improved EZW-based image compression method for crown word number of RMB banknote |
-
2002
- 2002-12-13 JP JP2002362726A patent/JP4223795B2/en not_active Expired - Fee Related
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100628441B1 (en) | 2004-09-16 | 2006-09-26 | 전남대학교산학협력단 | Apparatus for lifting discrete wavelet transform of JPEG2000 |
JP2008288883A (en) * | 2007-05-17 | 2008-11-27 | Sony Corp | Information processing device and method |
US8204331B2 (en) | 2007-05-17 | 2012-06-19 | Sony Corporation | Information processing apparatus and method to reduce delay in image decoding |
CN108829921A (en) * | 2018-05-03 | 2018-11-16 | 天津大学 | VLSI design method based on multilevel two-dimensional wavelet transform |
CN108829921B (en) * | 2018-05-03 | 2022-05-17 | 天津大学 | VLSI design method based on multilevel two-dimensional discrete wavelet transform |
CN109408770A (en) * | 2018-09-08 | 2019-03-01 | 天津大学 | High performance two-dimensional discrete wavelet conversion architecture design method based on boosting algorithm |
CN109408770B (en) * | 2018-09-08 | 2022-05-20 | 天津大学 | Lifting algorithm-based two-dimensional discrete wavelet transform architecture design method |
CN113554722A (en) * | 2021-07-22 | 2021-10-26 | 辽宁科技大学 | Improved EZW-based image compression method for crown word number of RMB banknote |
CN113554722B (en) * | 2021-07-22 | 2023-08-15 | 辽宁科技大学 | Image compression method for crown word number of RMB paper currency based on improved EZW |
Also Published As
Publication number | Publication date |
---|---|
JP4223795B2 (en) | 2009-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5838377A (en) | Video compressed circuit using recursive wavelet filtering | |
US5984514A (en) | Method and apparatus for using minimal and optimal amount of SRAM delay line storage in the calculation of an X Y separable mallat wavelet transform | |
JP3855827B2 (en) | Two-dimensional subband encoding device | |
US8204331B2 (en) | Information processing apparatus and method to reduce delay in image decoding | |
JP4223795B2 (en) | Wavelet transform apparatus and wavelet transform method | |
JP4245123B2 (en) | Wavelet processing apparatus and wavelet processing method | |
Dia et al. | Multi-level discrete wavelet transform architecture design | |
US7676096B2 (en) | Modular, low cost, memory efficient, input resolution independent, frame-synchronous, video compression system using multi stage wavelet analysis and temporal signature analysis with a highly optimized hardware implementation | |
Chen et al. | A scalable systolic array architecture for 2D discrete wavelet transforms | |
Chakrabarti et al. | Efficient realizations of analysis and synthesis filters based on the 2-D discrete wavelet transform | |
JP2002237740A (en) | Digital filtering method and device | |
US7940991B2 (en) | Image signal processing apparatus | |
JP4102165B2 (en) | Wavelet transform apparatus and wavelet transform method | |
EP1585060A1 (en) | Subband video coding with temporal prediction | |
KR100300338B1 (en) | VLSI Architecture for the 2-D Discrete Wavelet Transform | |
Argüello et al. | Architecture for wavelet packet transform based on lifting steps | |
KR20140113880A (en) | Vc-2 decoding using parallel decoding paths | |
KR100395614B1 (en) | Two dimensional discrete wavelet transformation apparatus | |
JP2014119949A (en) | Super-resolution system and program | |
KR100628441B1 (en) | Apparatus for lifting discrete wavelet transform of JPEG2000 | |
KR20080028608A (en) | Apparatus and system for lifting discrete wavelet transform | |
JP4700838B2 (en) | Filter processing device | |
KR100723043B1 (en) | Apparatus and method for discrete wavelet transforming image data | |
KR100810137B1 (en) | Apparatus and method for reconstructing image using inverse discrete wavelet transforming | |
KR100771153B1 (en) | Discrete wavelet transform device and the same method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051209 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081107 |
|
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: 20081118 |
|
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: 20081120 |
|
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: 20111128 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111128 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121128 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121128 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121128 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20151128 Year of fee payment: 7 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |