(57)【要約】【課題】メモリアクセスの負荷を低減し、高速に処理を行うウェーブレット変換装置を提供すること。【解決手段】  フレームメモリ上に２次元配列されたデータに対して２次元ウェーブレット変換を行うウェーブレット変換装置であって、前記データを用いてＸ方向のサブバンド処理を行うＸ方向サブバンド変換手段と、前記Ｘ方向サブバンド変換手段の出力に対してＹ方向のサブバンド処理を行うＹ方向サブバンド変換手段と、前記フレームメモリから、Ｘ方向に前記データのＸ方向の総数より少ない所定の数Ｃ連なった前記データを、Ｙ方向に繰り返し読み出して前記Ｘ方向サブバンド変換手段に入力するＸ方向入力手段と、前記Ｘ方向サブバンド変換手段の出力を保持するＸ係数レジスタと、前記Ｘ係数レジスタから、前記Ｘ方向サブバンド手段の出力を読み出して前記Ｙ方向サブバンド変換手段に入力するＹ方向入力手段とを有するウェーブレット変換装置。【選択図】図１０
2008079130.tif 000002
【特許請求の範囲】
【請求項１】
フレームメモリ上に２次元配列されたデータを、Ｘ方向及びＹ方向にそれぞれサブバンド変換して、Ｘ方向低域Ｙ方向低域成分、Ｘ方向低域Ｙ方向高域成分、Ｘ方向高域Ｙ方向低域成分、及び、Ｘ方向高域Ｙ方向高域成分に周波数分割し、さらに、前記Ｘ方向低域Ｙ方向低域成分に対して前記サブバンド変換を繰り返すウェーブレット変換装置であって、
前記データを用いてＸ方向のサブバンド処理を行い、Ｘ方向低域成分、及び、Ｘ方向高域成分を生成するＸ方向サブバンド変換手段と、
前記Ｘ方向低域成分又は前記Ｘ方向高域成分を用いてＹ方向のサブバンド処理を行い、Ｘ方向低域Ｙ方向低域成分及びＸ方向低域Ｙ方向高域成分、又は、Ｘ方向高域Ｙ方向低域成分及びＸ方向高域Ｙ方向高域成分を生成するＹ方向サブバンド変換手段と、
前記フレームメモリから、Ｘ方向に前記データのＸ方向の総数より少ない所定の数Ｃ連なった前記データを、Ｙ方向に繰り返し読み出して前記Ｘ方向サブバンド変換手段に入力するＸ方向入力手段と、
前記Ｙ方向のサブバンド処理をする際に用いる前記Ｘ方向低域成分及び前記Ｘ方向高域成分を保持するＸ係数レジスタと、
前記Ｘ係数レジスタから、前記Ｘ方向低域成分又は前記Ｘ方向高域成分を読み出して前記Ｙ方向サブバンド変換手段に入力するＹ方向入力手段と
を有することを特徴とするウェーブレット変換装置。
【請求項２】
前記フレームメモリは、前記Ｘ方向サブバンド変換手段及び前記Ｙ方向サブバンド変換手段によって変換された、前記Ｘ方向低域Ｙ方向低域成分、前記Ｘ方向低域Ｙ方向高域成分、前記Ｘ方向高域Ｙ方向低域成分、及び、前記Ｘ方向高域Ｙ方向高域成分を、前記データとして保持し、
前記Ｘ方向低域Ｙ方向低域成分は、前記フレームメモリ内で横方向に所定の数Ｅ毎に連続して前記フレームメモリに格納されることを特徴とする請求項１記載のウェーブレット変換装置。
【請求項３】
前記フレームメモリは、所定の数Ｆ毎に区切られたデータの出力を行い、
前記Ｘ方向サブバンド変換手段は、Ｘ方向に所定の数Ａ連なった前記データを用いてＸ方向のサブバンド処理を行い、
前記フレームメモリの端から所定の数Ａの半分以下の位置にあるデータのサブバンド処理を行う場合に、
前記Ｘ方向入力手段は、前記フレームメモリの端から２個目以上のデータに対して、前記端のデータ位置を中心とするミラーリングによる拡張データを生成し、
前記フレームメモリの左端から２個以上右側のデータのサブバンド処理を行う場合に、新たに必要となる最初のデータが、前記左端から所定の数Ｆの整数倍の位置となるように前記端のデータに対する前記拡張データ及び前記データを入力することを特徴とする請求項１記載のウェーブレット変換装置。
【請求項４】
前記Ｘ方向サブバンド変換手段、及び、前記Ｙ方向サブバンド変換手段は、サブバンド処理の際に、それぞれ中間係数を生成し、
前記Ｘ方向低域成分及び前記Ｘ方向高域成分への中間係数であるＸ中間係数を保持するＸ中間係数保持手段を有し、
前記Ｘ方向入力手段は、前記Ｘ中間係数保持手段から前記Ｘ中間係数を読み出し、さらに、前記フレームメモリから前記Ｘ中間係数とともにサブバンド処理に用いるデータを読み出し、前記Ｘ方向サブバンド変換手段に入力し、
前記Ｘ係数レジスタは、さらに、前記Ｘ方向低域Ｙ方向低域成分及び前記Ｘ方向低域Ｙ方向高域成分、並びに、前記Ｘ方向高域Ｙ方向低域成分及び前記Ｘ方向高域Ｙ方向高域成分への中間係数であるＹ中間係数を保持し、
前記Ｙ方向入力手段は、前記Ｘ係数レジスタから、前記Ｘ係数と前記Ｙ中間係数とを読み出して前記Ｙ方向サブバンド変換手段に入力することを特徴とする請求項１記載のウェーブレット変換装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ウェーブレット変換装置に関する。
【背景技術】
【０００２】
従来から、画像のデータを削減する圧縮処理において、画像のデータを空間周波数により分割する方法として、ウェーブレット変換処理が用いられている。ウェーブレット変換処理は、画像の縦と横との２方向に対して、ハイパスフィルタとローパスフィルタとの対によるサブバンド処理を行うため、画像データや処理の途中の中間データを格納するメモリへのアクセス回数が多くなる、画像等を格納するメモリの容量が大きくなる、などの課題がある。
【０００３】
そこで、例えば、特開２００３−２９８８４６号公報（特許文献１）には、画像の縦方向の処理を横方向の処理に先んじて行い、さらに、縦方向の処理と横方向の処理とをパイプライン的に接続することにより、中間データのメモリを削減し、処理の高速化を実現する２次元サブバンド符号化装置の技術が開示されている。
【０００４】
また、例えば、特許第３６６０１３６号公報（特許文献２）には、複数レベルのサブバンド処理を行うことにより実現するウェーブレット変換に用いるバッファ領域と、その後に行う符号化処理のバッファ領域を共用することにより、メモリを削減する符号化複合化装置の技術が開示されている。特許文献２では、各レベルのサブバンド処理によって生成する変換係数を、元のメモリ上に上書きしている。
【特許文献１】特開２００３−２９８８４６号公報
【特許文献２】特許第３６６０１３６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１に開示されている技術では、画像のデータが格納されているメモリ等から、どのように画像のデータを読み出すかについては考慮されていない。また、上記特許文献２に開示されている技術では、変換係数が、メモリ上の原画素に係る位置に格納されるため、一つのレベル内で、変換係数が格納されている場所が離散する。
【０００６】
ウェーブレット変換を実現するＬＳＩでは、画像のデータはＳＤＲＡＭに格納されることが多い。ＳＤＲＡＭでは、横方向に連なったデータを連続して出力する仕様により、メモリへのアクセス回数を削減するが、上記特許文献１及び２に開示されている技術では、そのようなことは考慮されていない。
【０００７】
本発明は、上記の点に鑑みて、これらの問題を解消するために発明されたものであり、メモリアクセスの負荷を低減し、高速に処理を行うウェーブレット変換装置を提供することを目的としている。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明のウェーブレット変換装置は次の如き構成を採用した。
【０００９】
本発明のウェーブレット変換装置は、フレームメモリ上に２次元配列されたデータを、Ｘ方向及びＹ方向にそれぞれサブバンド変換して、Ｘ方向低域Ｙ方向低域成分、Ｘ方向低域Ｙ方向高域成分、Ｘ方向高域Ｙ方向低域成分、及び、Ｘ方向高域Ｙ方向高域成分に周波数分割し、さらに、前記Ｘ方向低域Ｙ方向低域成分に対して前記サブバンド変換を繰り返すウェーブレット変換装置であって、前記データを用いてＸ方向のサブバンド処理を行い、Ｘ方向低域成分、及び、Ｘ方向高域成分を生成するＸ方向サブバンド変換手段と、前記Ｘ方向低域成分又は前記Ｘ方向高域成分を用いてＹ方向のサブバンド処理を行い、Ｘ方向低域Ｙ方向低域成分及びＸ方向低域Ｙ方向高域成分、又は、Ｘ方向高域Ｙ方向低域成分及びＸ方向高域Ｙ方向高域成分を生成するＹ方向サブバンド変換手段と、前記フレームメモリから、Ｘ方向に前記データのＸ方向の総数より少ない所定の数Ｃ連なった前記データを、Ｙ方向に繰り返し読み出して前記Ｘ方向サブバンド変換手段に入力するＸ方向入力手段と、前記Ｙ方向のサブバンド処理をする際に用いる前記Ｘ方向低域成分及び前記Ｘ方向高域成分を保持するＸ係数レジスタと、前記Ｘ係数レジスタから、前記Ｘ方向低域成分又は前記Ｘ方向高域成分を読み出して前記Ｙ方向サブバンド変換手段に入力するＹ方向入力手段とを有する構成とすることができる。
【００１０】
これにより、メモリアクセスの負荷を低減し、高速に処理を行うウェーブレット変換装置を提供することができる。
【００１１】
また、上記目的を達成するために、本発明のウェーブレット変換装置は、さらに、前記フレームメモリは、前記Ｘ方向サブバンド変換手段及び前記Ｙ方向サブバンド変換手段によって変換された、前記Ｘ方向低域Ｙ方向低域成分、前記Ｘ方向低域Ｙ方向高域成分、前記Ｘ方向高域Ｙ方向低域成分、及び、前記Ｘ方向高域Ｙ方向高域成分を、前記データとして保持し、前記Ｘ方向低域Ｙ方向低域成分は、前記フレームメモリ内で横方向に所定の数Ｅ毎に連続して前記フレームメモリに格納されるように構成することができる。
【００１２】
これにより、フレームメモリに、横方向に連続して変換係数を格納させるウェーブレット変換装置を提供することができる。
【００１３】
また、上記目的を達成するために、本発明のウェーブレット変換装置は、さらに、前記フレームメモリは、所定の数Ｆ毎に区切られたデータの出力を行い、前記Ｘ方向サブバンド変換手段は、Ｘ方向に所定の数Ａ連なった前記データを用いてＸ方向のサブバンド処理を行い、前記フレームメモリの端から所定の数Ａの半分以下の位置にあるデータのサブバンド処理を行う場合に、前記Ｘ方向入力手段は、前記フレームメモリの端から２個目以上のデータに対して、前記端のデータ位置を中心とするミラーリングによる拡張データを生成し、前記フレームメモリの左端から２個以上右側のデータのサブバンド処理を行う場合に、新たに必要となる最初のデータが、前記左端から所定の数Ｆの整数倍の位置となるように前記端のデータに対する前記拡張データ及び前記データを入力するように構成することができる。
【００１４】
これにより、フレームメモリの左端から数Ｆの整数倍の位置に、新たに必要となる最初のデータを格納するウェーブレット変換装置を提供することができる。
【００１５】
また、上記目的を達成するために、本発明のウェーブレット変換装置は、さらに、前記Ｘ方向サブバンド変換手段、及び、前記Ｙ方向サブバンド変換手段は、サブバンド処理の際に、それぞれ中間係数を生成し、前記Ｘ方向低域成分及び前記Ｘ方向高域成分への中間係数であるＸ中間係数を保持するＸ中間係数保持手段を有し、前記Ｘ方向入力手段は、前記Ｘ中間係数保持手段から前記Ｘ中間係数を読み出し、さらに、前記フレームメモリから前記Ｘ中間係数とともにサブバンド処理に用いるデータを読み出し、前記Ｘ方向サブバンド変換手段に入力し、前記Ｘ係数レジスタは、さらに、前記Ｘ方向低域Ｙ方向低域成分及び前記Ｘ方向低域Ｙ方向高域成分、並びに、前記Ｘ方向高域Ｙ方向低域成分及び前記Ｘ方向高域Ｙ方向高域成分への中間係数であるＹ中間係数を保持し、前記Ｙ方向入力手段は、前記Ｘ係数レジスタから、前記Ｘ係数と前記Ｙ中間係数とを読み出して前記Ｙ方向サブバンド変換手段に入力するように構成することができる。
【００１６】
これにより、前の成分の中間係数を用いて低域成分及び高域成分への周波数分割を行うウェーブレット変換装置を提供することができる。
【発明の効果】
【００１７】
本発明のウェーブレット変換装置によれば、メモリアクセスの負荷を低減し、高速に処理を行うウェーブレット変換装置を提供することが可能になる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施例を図面に基づき説明する。
〔第一の実施の形態〕
（ウェーブレット変換処理の要素技術（フィルタ処理））
本発明のウェーブレット変換装置の理解を容易にするために、ウェーブレット変換処理の要素技術について図１から図３を用いて説明する。ウェーブレット変換処理は、サブバンド処理によって周波数分割された成分のうち、低域成分に対して、さらに、サブバンド処理を繰り返すことにより実現する。サブバンド処理は、一のデータを、ハイパスフィルタとローパスフィルタとにより、低域成分及び高域成分とに周波数分割し、それぞれの成分に対して、間引き処理を行うものである。
【００１９】
図１は、サブバンド処理に用いられるフィルタを説明する図であって、９／７フィルタの例である。図１では、最上段に入力データＩ００からＩ０Ｆが並び、最下段に低域成分Ｌ００からＬ０７、その上段に高域成分Ｈ００からＨ０７が並んでいる。Ｍ及びＮは、低域成分Ｈ及び高域成分Ｌを生成する際の中間係数である。
【００２０】
図１では、例えば、Ｌ０２を生成するためには、Ｈ０１、Ｈ０２、及び、Ｎ０２が必要であることを表している。そこで、それらの係数を生成するために必要な入力データは、Ｉ００からＩ０８であり、サブバンド処理を行うのに必要なデータの数Ａは９となる。一方、Ｈ０２を生成するために必要な入力データは、Ｉ０２からＩ０８までの７個である。
【００２１】
図１に従い、さらに、入力データＩ又は中間係数Ｍ及びＮに対して、所定の係数を乗じて加算することにより、中間係数Ｍ及びＮ、高域成分Ｈ、低域成分Ｌがそれぞれ求められる。なお、本発明のウェーブレット変換装置は、９／７フィルタに限らず、どのようなサブバンド処理のフィルタを用いてもよい。
【００２２】
ところで、画像に対してウェーブレット変換を行う場合には、画像のデータが２次元に配列されているため、Ｘ方向及びＹ方向のそれぞれに対して、サブバンド処理を行う。これを、２次元ウェーブレット変換という。２次元ウェーブレット変換では、周波数分割により、４個の成分が生成する。それぞれ、Ｘ方向低域成分（以下、「Ｌ成分」という。）に基づく、Ｘ方向低域Ｙ方向低域成分（以下、「ＬＬ成分」という。）及びＸ方向低域Ｙ方向高域成分（以下、「ＬＨ成分」という。）、Ｘ方向高域成分（以下、「Ｈ成分」という。）に基づく、Ｘ方向高域Ｙ方向低域成分（以下、「ＨＬ成分」という。）及びＸ方向高域Ｙ方向高域成分（以下、「ＨＨ成分」という。）である。
【００２３】
（入力データと変換係数の格納）
図２及び図３は、入力データＩと、変換係数とが格納されたメモリを説明する図である。図２は、メモリに入力データＩが格納されている場合の図である。図２では、データ００からデータ７７が、２次元に配置されている。データを表す番号は、１の位がＸ方向の位置（列番号）、１０の位がＹ方向の位置（行番号）を表している。すなわち、ｍｎ（ｍ、ｎは整数）のうち、ｍが行番号、ｎが列番号である。
【００２４】
図３は、図２と同じメモリ上に、変換係数が格納された場合の図である。図３（Ａ）は、図２のデータに対して、Ｘ方向及びＹ方向のそれぞれにサブバンド処理を１回行った結果を格納している。図３（Ａ）では、一つの入力データに対する４個の成分、すなわち、ＬＬ成分、ＬＨ成分、ＨＬ成分、及び、ＨＨ成分が、縦横２個分のデータの位置に、まとめて格納されている。図３（Ｂ）は、図３（Ａ）のＬＬ成分に対し、さらに、サブバンド処理を行った結果が格納されている場合の図である。
【００２５】
なお、以後、各係数に対して行われたサブバンド処理の回数を「レベル」という。図３（Ａ）では、レベル１の係数のみが格納されているが、図３（Ｂ）は、レベル１及びレベル２の係数が格納されている。
【００２６】
図３のＬＬ成分を構成する変換係数のメモリ上の位置（ｎ、ｍ）は、次式（１）で表される。
【００２７】
ｎ＝２ｊ＊ｘ＝Ｉｘ
ｍ＝２ｊ＊ｙ＝Ｉｙ                          （１）
但し、ｊは、レベルを表す数、
ｘは、レベルｊにおけるＬＬ成分からなる平面内の、当該変換係数のｘ座標、
ｙは、レベルｊにおけるＬＬ成分からなる平面内の、当該変換係数のｙ座標、
（Ｉｘ、Ｉｙ）は、当該変換係数に対して最も寄与の大きな入力データである、ｘ方向のサブバンド処理を行う際にフィルタの中心となる入力データＩが格納されていたメモリ上の位置である。
【００２８】
（本発明のウェーブレット変換装置によるフィルタ処理）
図４は、本発明のウェーブレット変換装置が行うサブバンド処理に用いられるフィルタを説明する図である。図４では、図１に対して、中間係数Ｍ及びＮ、低域成分、高域成分のそれぞれが、入力データＩに対して、１画素分位相がずれている。図４のフィルタを実現する変換式を、式（２）から式（７）に記す。
【００２９】
M(n)=I(2n)+p1*(I(2n-1)+I(2n+1))      ・・・（２）
N(n)=I(2n+1)+u1*(M(n)+M(n+1))      ・・・（３）
H(n)=M(n)+p2*(N(n-1)+N(n))        ・・・・（４）
L(n)=N(n)+u2*(H(n)+H(n+1))        ・・・・（５）
Hn=K0*H(n)      ・・・・・・・・・・・・（６）
Ln=K1*L(n)      ・・・・・・・・・・・・（７）
但し、p1=-1.586134342059924
u1=0.52980118572961
p2=0.882911075530934
u2=0.443506852043971
K0=1.23017410491200
K1=1/K0
である。
【００３０】
図５は、図１及び図４の９／７フィルタを用いてサブバンド処理を行う際の、画像の端の部分の処理を説明する図である。図５（Ａ）は、図１の９／７フィルタを用いる場合の例である。図１の９／７フィルタでは、例えば、低域成分Ｌ００を取得するために、低域成分Ｌ００と同位相にあるＩ００を中心として、左右に４個ずつ計９個の入力データＩが必要となる。しかし、Ｉ００の左側には、データが存在しないため、Ｉ００の右側のデータを、Ｉ００を中心として対称拡張を行う。これをミラーリングという。ミラーリングにより生成したＩ０１'からＩ０４'と、Ｉ００からＩ０４との９個（Ａ１）を用いることにより、９個のデータに基づくフィルタ処理を行う。
【００３１】
すなわち、図５（Ａ）の例では、Ｌ００を取得するためには、Ｉ００からＩ０４までが必要であり、次のＬ０１を取得するために新たに必要となるのは、Ｉ０５とＩ０６の組であるＡ１ａである。ところで、入力データＩが格納されているメモリが、バースト動作が可能な場合には、バースト読み出しの開始位置と、新たに必要となるデータの開始位置とを一致させることにより、メモリからのデータの読み出しを高速に行うことができる。バースト読み出し長Ｆに対し、バースト読み出しの開始位置は、Ｆの整数倍の位置となる。これは、偶数番目のアドレスであることが多い。
【００３２】
しかし、図５（Ａ）の例のように、Ａ１ａの開始位置と、バースト読み出しの開始位置とが一致していない場合には、Ｉ０５を取得するために、先ず、Ｉ０４とＩ０５とを読み出し、次に、Ｉ０６とＩ０７とを読み出すことになる。これは、メモリへのアクセス回数を増やすこととなる。
【００３３】
一方、図５（Ｂ）は、図４の９／７フィルタを用いる場合の例である。図４では、高域成分Ｈ００を取得する際に必要となる入力データは、Ｉ００からＩ０３、及び、ミラーリングにより生成するＩ０１'からＩ０３'の７個（Ａ２）である。すなわち、図５（Ｂ）の例では、Ｈ００に続く、Ｈ０１を取得するために新たに必要となるのは、Ｉ０４とＩ０５の組であるＡ２ａである。Ａ２ａの開始位置は、バースト読み出しの開始位置と一致するため、一度のメモリアクセスで、Ｉ０５とＩ０６とを読み出すことができ、メモリへのアクセスを効率良く行うことができる。
【００３４】
（本発明のウェーブレット変換装置による変換係数の格納）
図６は、本発明のウェーブレット変換装置により、変換係数が格納されたメモリを説明する図である。図６（Ａ）は、レベル１の係数が格納されていることを説明する図である。図６（Ａ）では、Ｉ０１に係るＬＬ成分、及び、Ｉ０３に係るＬＬ成分が、連続して格納されている他、その他のＬＬ成分も、２個ずつ連続して格納されている。図６（Ｂ）は、さらに、レベル１のＬＬ成分に基づき、生成したレベル２のＬＬ成分が、それぞれ２個ずつ連続して格納される。
【００３５】
図６のＬＬ成分を構成する変換係数のメモリ上の位置（ｎ、ｍ）は、次式（８）及び（９）で表される。
ｎが所定の数Ｅの倍数の場合
ｎ＝２ｊ＊ｘ
ｍ＝２ｊ＊ｙ                                （８）
ｎが所定の数Ｅの倍数では無い場合
ｎ＝２ｊ＊（ｘ−ｘ％Ｅ）＋ｘ％Ｅ
ｍ＝２ｊ＊ｙ                                （９）
但し、ｊは、レベルを表す数、
ｘは、レベルｊにおけるＬＬ成分からなる平面内の、当該変換係数のｘ座標、
ｙは、レベルｊにおけるＬＬ成分からなる平面内の、当該変換係数のｙ座標、
％は、剰余演算子であって、（ｘ％Ｅ）は、ｘのＥに対する剰余、
である。
【００３６】
式（１）によれば、ＬＬ成分がメモリ上に離散して格納される。一方、式（８）及び（９）によれば、一のレベルで生成されたＬＬ成分が、メモリの横方向に所定の数Ｅだけ連続して格納される。そこで、例えば、バースト読み出しを行う場合には、式（８）及び（９）に基づいて格納されることにより、次のレベルの処理におけるメモリアクセスを効率的に行うことができるようになる。また、例えば、バースト動作によらないアクセスを行う場合でも、連続している箇所については、変換係数が格納されているアドレスを生成する際に、ｘ方向に１ずつ加算した値を生成すればよく、処理を簡易にすることができる。
【００３７】
なお、ここでは、連続させる所定の数Ｅは２であるが、本発明のウェーブレット変換装置は、所定の数Ｅをバースト読み出し長Ｆと等しくすることにより、メモリアクセスが効率的になる。なお、ＬＨ成分、ＨＬ成分、及び、ＨＨ成分も、ＬＬ成分と略同一の処理により、格納位置を定める。
【００３８】
（本発明のウェーブレット変換装置の構成例）
図７は、本発明のウェーブレット変換装置の構成の例である。図７では、フレームメモリ８０に格納されたデータを、データコントローラ１０が読み出し、フィルタ処理により周波数分割を行い、メモリ書き込みＩ／Ｆ７０により、再びフレームメモリ８０に変換係数が格納される。
【００３９】
図７のウェーブレット変換装置１は、データコントローラ１０、Ｒｏｗフィルタ２０、Ｒｏｗデータバッファ３０、カラムレジスタ４０、カラムフィルタ６０、及び、メモリ書き込みＩ／Ｆ７０を有する。ウェーブレット変換装置１は、さらに、フレームメモリ８０を有してもよい。フレームメモリ８０が、ウェーブレット変換装置１に設けられていない場合には、ウェーブレット変換装置１は、フレームメモリ８０からのデータの読み出し及び書き込みのインタフェースを有する。
【００４０】
以下の説明の理解を容易にするために、フレームメモリ８０について、説明する。フレームメモリ８０は、所定の数のデータを格納する記憶手段である。フレームメモリ８０は、データを、Ｘ方向及びＹ方向の２次元のデータとして格納する。フレームメモリ８０に格納されるデータの、格納位置を２桁の整数ｍｎで表す。ｍは、Ｙ方向、すなわち行の番号であり、ｎは、Ｘ方向、すなわち列の番号である。例えば、Ｉ００は、フレームメモリ８０の左上端に格納されたデータＩを表す。
【００４１】
データコントローラ１０は、フレームメモリ８０から入力データＩを読み出し、Ｒｏｗデータバッファ３０又はＲｏｗフィルタ２０に入力する。データコントローラ１０は、フレームメモリ８０の０行目のデータを、画像の左端から、Ｘ方向に所定の数Ｃだけ連続して入力データＩ００〜Ｉ０（Ｃ−１）を読み出す。次に、データコントローラ１０は、フレームメモリ８０の１行目のデータを、同様に画像の左端から、Ｘ方向に所定の数Ｃだけ連続して入力データＩ１０〜Ｉ１（Ｃ−１）を読み出す。フレームメモリ８０の全ての行に対して、Ｉｎ０〜Ｉｎ（Ｃ−１）のデータを読み出した後、データコントローラ１０は、フレームメモリ８０の０行目のデータのうち、入力データＩ０Ｃ〜Ｉ０（２＊Ｃ−１）を読み出し、他の行についても同様に繰り返す。以上の処理を繰り返すことにより、Ｘ方向に数Ｃだけ連なったデータを読み出して、Ｒｏｗフィルタに入力する。
【００４２】
なお、数Ｃは、フレームメモリのバースト読み出し長Ｆと一致させることにより、メモリアクセスを効率的にすることができる。
【００４３】
Ｒｏｗフィルタ２０は、図４の９／７フィルタにより、サブバンド処理を行う。Ｒｏｗフィルタ２０は、サブバンド処理により、Ｌ成分とＨ成分、及び、中間係数ＭとＮとを出力する。Ｌ成分及びＨ成分は、カラムレジスタ４０に格納される。一方、中間係数Ｍ及びＮは、Ｒｏｗデータバッファ３０に格納される。
【００４４】
Ｒｏｗフィルタ２０は、画像の端付近のデータのサブバンド処理を行う場合には、図５（Ｂ）に示された方法でミラーリング処理を行う。なお、ミラーリング処理は、図５（Ｂ）に示す方法に限らず、図５（Ａ）に示す方法又はその他の方法であっても、次の変換係数を求める際に、新たに必要となるデータの開始位置が、バースト読み出しの開始位置と一致するように、端のデータに対するミラーリングを行えばよい。
【００４５】
また、Ｒｏｗフィルタ２０が行うサブバンド処理は、図４の例に限らず、図１の９／７フィルタ、又は、その他のフィルタであってもよいが、一のＬ成分又はＨ成分を生成するために新たに必要となる入力データが、フレームメモリのバースト読み出しの開始位置と一致するフィルタ及び／又はミラーリング処理が好ましい。
【００４６】
Ｒｏｗフィルタ２０が、ｘ方向に連なったデータのサブバンド処理を行っている場合には、中間係数Ｍ、Ｎ、及び、Ｈ成分は、Ｒｏｗフィルタ２０の内部で書き戻して使用するフォアーディング処理を行うことにより、次以降のクロックで、次のＨ成分及びＬ成分を求めるために供せられる。
【００４７】
例えば、図４の例では、Ｌ００を生成する際には、Ｍ０２及びＮ０１の中間係数と、Ｈ０１が生成されている。そこで、Ｌ０１を生成する際に必要となるデータとして、Ｍ０２、Ｎ０１、Ｈ０１、及び、入力データＩ０５が、フォアーディング処理される。
【００４８】
Ｒｏｗデータバッファ３０は、Ｒｏｗフィルタ２０が出力する中間係数Ｍ及びＮ等を格納する。Ｒｏｗデータバッファ３０は、また、画像の端のデータのサブバンド処理を行う場合に必要となる、入力データを格納する。
【００４９】
Ｒｏｗデータバッファ３０は、また、Ｒｏｗフィルタ２０が、次の行の処理に移る際には、最後のＬ成分及びＨ成分を求めた際に用いられた入力データＩのうち最後の入力データと、中間係数ＭとＮ、及び、Ｈ成分とを格納する。例えば、Ｃが８の場合に、図４では、最後の入力データであるＩ０７、中間係数Ｍ０３及びＮ０２、及び、Ｈ０２の４つの数を、Ｒｏｗデータバッファ３０に格納する。ここで格納されたデータは、Ｌ０２を求めるサブバンド処理が行われるまで保持される。従って、Ｒｏｗデータバッファ３０は、入力データＩが有する行の数に等しい数の、Ｉ、Ｍ、Ｎ、Ｈの組を保持する。
【００５０】
カラムレジスタ４０は、Ｒｏｗフィルタ２０から出力されるＬ成分及びＨ成分を格納するレジスタであり、格納したＬ成分及びＨ成分を、レジスタコントローラ５０の制御により、カラムフィルタ４０に対して出力する。カラムレジスタ４０は、また、カラムフィルタ６０が出力する中間係数を格納する。
【００５１】
レジスタコントローラ５０は、カラムレジスタ４０からデータを読み出してカラムフィルタ６０に入力し、また、カラムフィルタ６０から出力される中間係数を、カラムレジスタ４０に格納させる。
【００５２】
カラムフィルタ６０は、Ｙ方向のサブバンド処理を行う手段である。カラムフィルタ６０は、例えば、図４に示す９／７フィルタによって、サブバンド処理を行う。カラムフィルタ６０が、図４の９／７フィルタを用いる場合には、入力データＩは、Ｒｏｗフィルタから出力されるＬ成分又はＨ成分である。そこで、以下の説明は、主としてＬ成分について行う。Ｈ成分は、Ｌ成分と同様の処理が行われるため、ここでは説明を省略する。
【００５３】
なお、カラムフィルタ６０は、図４の入力データＩをＬ成分、中間係数Ｍ又はＮをＬＭ又はＬＮ、Ｈ成分又はＬ成分をＬＨ成分又はＬＬ成分と、それぞれ置き換えることにより、Ｒｏｗフィルタ２０と同じ処理が行われることは明らかである。
【００５４】
すなわち、カラムレジスタ４０に、Ｌ００からＬ３０の４つのデータが格納された後、カラムフィルタ６０が処理を開始する。このとき、カラムレジスタ４０には、Ｌ０１からＬ２１の３つ、ないし、Ｌ０１からＬ３１の４つのデータも格納されている。すなわち、カラムレジスタ４０は、Ｒｏｗフィルタ２０が処理するｘ方向に連なった入力データＩの数Ｃの半分の数のＸ方向低域成分を、カラムフィルタ６０が処理を開始するまで保持する。
【００５５】
カラムフィルタ６０は、端のデータを処理する際には、図５に示す方法等によりミラーリングを行い、サブバンド処理を行う。カラムフィルタ６０は、入力データＬ、中間係数ＬＭ及びＬＮ、ＬＨ成分を出力し、レジスタコントローラ５０によって、カラムレジスタ４０に格納させる。カラムフィルタ６０は、さらに、ＬＬ成分及びＬＨ成分を、メモリ書き込みＩ／Ｆ７０に出力する。
【００５６】
従って、カラムレジスタ４０は、Ｌ００からＬ３０等の入力データＬの組、又は、一の入力データＬ、中間係数ＬＭ及びＬＮ、ＬＨ成分の組を保持する。図４のフィルタを用いる場合には、組を構成するデータの数Ｄは、４であり、Ｒｏｗフィルタ２０がｘ方向に連続して処理する入力データＩの数がＣであるので、カラムレジスタ４０は、（Ｄ＊Ｃ／２）個の値を保持する。但し、入力データＩの数Ｃが奇数である場合には、生成するＸ方向低域成分の数であるＣ／２は、ミラーリング処理等を行うときは、小数点以下を切り上げた値となり、端の入力データを無視するときは、小数点以下を切り捨てた値となる。
【００５７】
以上の処理を、Ｈ成分についても行うことにより、カラムフィルタ６０が、ＨＬ成分及びＨＨ成分を、メモリ書き込みＩ／Ｆ７０に出力する。
【００５８】
メモリ書き込みＩ／Ｆ７０は、カラムフィルタ６０が出力するＬＬ成分、ＬＨ成分、ＨＬ成分、及び、ＨＨ成分を、フレームメモリ８０に格納する際の、格納位置を制御する手段である。メモリ書き込みＩ／Ｆ７０は、図６（Ａ）又は（Ｂ）に示す方法により、格納位置を制御する。
【００５９】
なお、データコントローラ１０は、Ｒｏｗデータバッファ３０又はＲｏｗフィルタ２０内に設けられていてもよい。また、レジスタコントローラ５０は、カラムレジスタ４０又はカラムフィルタ内に設けられていてもよい。また、データコントローラ１０及びメモリ書き込みＩ／Ｆ７０は、一のメモリコントローラとして設けられていてもよい。
【００６０】
（タイミングチャート）
図８及び図９は、図７のウェーブレット変換装置における、データの入出力を説明するタイミングチャートであって、図８は、Ｒｏｗフィルタ２０が、０行目から３行目までの４行の入力データに対して処理を行っている図であり、図９は、カラムフィルタ６０の処理を含む図である。
【００６１】
なお、図８及び図９において、各バスの名称につけられたアルファベットの符号は、図７でバスに付した符号に対応している。また、図８及び図９において、「＆Ｈ」は、「同時刻の同バス内におけるＬ成分に係る各係数等に対応するＨ成分に係る各係数等」を表す。例えば、ｃｌｋ＝１６のＣｏｌ＿ｒｅｇ（ｉｎ）の「Ｌ３０、＆Ｈ」は、「Ｌ３０、Ｈ３０」を表し、ｃｌｋ＝１９のＣｏｌ＿ｒｅｇ（ｉｎ）の「ＬＭ０１、ＬＮ００、ＬＨ００、＆Ｈ」は、「ＬＭ０１、ＬＮ００、ＬＨ００、ＨＭ０１、ＨＮ００、ＨＨ００」を表す。
【００６２】
また、図８及び図９において、フレームメモリ８０の読み出し位置の指定又は読み出し位置の活性化のための遅延、Ｒｏｗフィルタ２０又はカラムフィルタ６０内での中間係数生成に係る遅延、フレームメモリ８０から読み出されたデータがＲｏｗデータバッファ３０に格納される際の遅延、Ｒｏｗデータバッファ３０から読み出されたデータがＲｏｗデータバッファに格納される際の遅延等は、本発明の理解を容易にするために無視している。
【００６３】
図８は、Ｒｏｗフィルタ２０の処理を説明するタイムチャートである。図８では、フレームメモリ８０から、１クロックにつき２個のデータが読み出され、００から０３までのデータが読み出された時（ｃｌｋ＝１）に、Ｒｏｗフィルタ２０に対してデータが入力され、サブバンド処理が開始される。Ｒｏｗフィルタ２０から出力されるＬ００及びＨ００は、カラムレジスタ４０に入力され（ｃｌｋ＝４）、さらに、中間係数Ｍ０３、Ｎ０２、Ｈ０２、及び、入力データ０７が、Ｒｏｗバッファ３０に格納される（ｃｌｋ＝４）。
【００６４】
一方、図９では、Ｒｏｗフィルタ２０の処理に加えて、カラムフィルタ６０が処理を行う。レジスタ４０に、Ｌ００からＬ３０が格納される（ｃｌｋ＝１６）と、Ｌ００からＬ３０がカラムフィルタ６０に入力され（ｃｌｋ＝１７）、ＬＨ００等が出力される（ｃｌｋ＝１８）。カラムフィルタ６０が、ＬＬ００を得るためには、さらに、Ｌ４０及びＬ５０が必要である。そこで、それらがカラムレジスタ４０に入力され（ｃｌｋ＝２４）、さらに、カラムフィルタ６０に入力される（ｃｌｋ＝２５）と、ＬＬ００を求める処理が行われ、ＬＬ００が出力される（ｃｌｋ＝２６）。
【００６５】
Ｈ成分についても、Ｌ成分と同一の処理が同一のタイミングで行われ、ＨＬ００及びＨＨ００が、ｃｌｋ＝２６で出力される。
【００６６】
（ウェーブレット変換装置の機能構成の例）
図１０は、本発明のウェーブレット変換装置の機能構成の例の図である。図１０では、ウェーブレット変換装置１００が、フレームメモリ８００に格納されたデータを読み出して、サブバンド処理を行い、その結果をフレームメモリ８００に格納することを繰り返す。
【００６７】
ウェーブレット変換装置１００は、Ｘ方向入力手段１１０、Ｘ方向サブバンド手段１２０、Ｘ係数レジスタ１４０、Ｙ方向入力手段１５０、及び、Ｙ方向サブバンド変換手段１６０を有する。ウェーブレット変換装置１００は、さらに、Ｘ中間係数保持手段１３０及び／又はフレームメモリ書き込み制御手段１７０を有してもよい。
【００６８】
Ｘ方向サブバンド変換手段１２０、及び、Ｙ方向サブバンド変換手段１６０は、入力されるデータに対してサブバンド処理を行う、ウェーブレット変換装置１００の主たる処理部である。サブバンド処理は、入力されたデータを、空間周波数に基づき、高域成分と低域成分とに分割するものであって、例えば、図１又は図４の９／７フィルタを用いてもよい。Ｘ方向サブバンド変換手段１２０及びＹ方向サブバンド変換手段１６０は、それぞれ、入力されるデータに対して、高域成分と低域成分の２つの成分を出力する。
【００６９】
Ｘ方向サブバンド変換手段１２０又はＹ方向サブバンド変換手段１６０は、さらに、サブバンド処理の途中で生成するＸ中間係数又はＹ中間係数を出力してもよい。
【００７０】
Ｘ方向入力手段１１０及びＹ方向入力手段１５０は、それぞれ、Ｘ方向サブバンド変換手段１２０と、Ｙ方向サブバンド変換手段１６０とに入力するデータを制御する手段である。Ｘ方向入力手段１１０は、フレームメモリ８００の所定のアドレスに格納されているデータを、順に読み出してＸ方向サブバンド変換手段１２０に入力する。Ｘ方向入力手段１１０は、さらに、Ｘ中間係数保持手段１３０に格納されているデータを読み出してＸ方向サブバンド変換手段１２０に入力してもよい。
【００７１】
Ｙ方向入力手段１５０は、Ｘ係数レジスタ１４０に格納されているデータを読み出して、Ｙ方向サブバンド変換手段１６０に入力する。
【００７２】
Ｘ係数レジスタ１４０は、Ｘ方向サブバンド変換手段１２０が出力する、Ｌ成分及びＨ成分を格納する手段である。
【００７３】
Ｘ係数レジスタ１４０は、Ｌ係数レジスタ１４１及びＨ係数レジスタ１４２を有してもよい。Ｌ係数レジスタ１４１は、Ｌ成分を格納する手段であり、Ｈ係数レジスタ１４２は、Ｈ成分を格納する手段である。
【００７４】
Ｘ係数レジスタ１４０は、さらに、Ｙ方向サブバンド変換手段１６０が出力するＹ中間係数を格納してもよい。Ｙ中間係数とは、例えば、図１におけるＭ又はＮに対応する係数であって、それぞれに係るＬ成分又はＨ成分に基づき、ＬＭ及びＬＮ、又は、ＨＭ及びＨＮと称する。これにより、Ｙ方向のサブバンド処理を高速に実行できることは、図１より容易に理解することができる。
【００７５】
Ｘ中間係数保持手段１３０は、Ｘ方向サブバンド手段１２０が、Ｘ中間係数を出力する場合に、これを格納する手段である。中間係数とは、例えば、図１におけるＭ又はＮである。図１において、低域成分Ｌ毎又は高域成分Ｈ毎に、入力データＩから計算を行う代わりに、一つ前の低域成分Ｌ又は高域成分Ｈを算出する際に用いたＭ又はＮを用いることにより、サブバンド処理を高速にできることは、図１より容易に理解することができる。
【００７６】
フレームメモリ書き込み制御手段１７０は、Ｙ方向サブバンド変換手段１６０が出力するＬＬ成分、ＬＨ成分、ＨＬ成分、及び、ＨＨ成分を、フレームメモリ８０に書き込み際の格納位置を制御する手段である。フレームメモリ書き込み制御手段１７０は、図６の例に従って、各成分を格納する位置を制御する。
【００７７】
なお、図４から図９におけるウェーブレット変換装置等の各処理部と、図１０における各手段との対応は、以下の通りである。データコントローラ１０は、Ｘ方向入力手段１１０に対応する。Ｒｏｗフィルタ２０は、Ｘ方向サブバンド手段１２０に対応する。Ｒｏｗデータバッファ３０は、Ｘ中間係数保持手段１３０に対応する。カラムレジスタ４０は、Ｘ係数レジスタ１４０に対応する。レジスタコントローラ５０は、Ｙ方向入力手段１５０及び／又はＹ方向サブバンド手段１６０が有する図示しない出力インタフェースの一部に対応する。カラムフィルタ６０は、Ｙ方向サブバンド手段１６０に対応する。メモリ書き込みＩ／Ｆ７０は、フレームメモリ書き込み制御手段１７０に対応する。フレームメモリ８０は、フレームメモリ８００に対応する。
【００７８】
以上述べてきたように、本発明によるウェーブレット変換装置によれば、Ｘ方向に所定の数Ｃ連なったデータのそれぞれに対してサブバンド処理を行い、さらに続いてＹ方向のサブバンド処理を行うことにより、Ｘ方向の全データに対してサブバンド処理を行い、さらに続いてＹ方向のサブバンド処理を行う場合と比べて、Ｘ方向のサブバンド処理とＹ方向のサブバンド処理との間で保持する中間係数の数を少なくすることができる。
【００７９】
また、本発明のウェーブレット変換装置によれば、さらに、入力データが、横方向に連なったデータに対して、バースト動作が可能なフレームメモリ等に格納されている場合に、メモリアクセスを簡易にすることができる。また、入力データを、バースト動作によらずに読み出す場合でも、データが格納されているアドレスを生成する処理を簡易にすることができる。
【００８０】
また、本発明によるウェーブレット変換装置によれば、レベル毎の変換係数を、成分毎に、横方向に連続してフレームメモリに格納することにより、入力データに加えて、変換係数を次のレベルの変換係数を求める処理の入力値とする際にも、メモリアクセスを簡易にすることができ、又は、データが格納されているアドレスの生成処理を簡易にすることができる。
【００８１】
また、本発明によるウェーブレット変換装置によれば、一の変換係数を求める際に新たに必要となるデータが、フレームメモリのバースト動作に対応した位置に好適に格納されることにより、メモリアクセスを簡易にすることができる。
【００８２】
また、本発明によるウェーブレット変換装置によれば、フォアーディング処理として用いるデータを、入力データに代えて、サブバンド処理の際に生成する中間係数とすることにより、保持するデータ等の数を減らすことができ、サブバンド処理に必要な記憶手段の容量を低減することができる。また、サブバンド処理の全体として、処理に必要なステップ数を減らすことができ、処理結果を高速に得ることができる。
【００８３】
以上、発明を実施するための最良の形態について説明を行ったが、本発明は、この最良の形態で述べた実施の形態に限定されるものではない。本発明の主旨をそこなわない範囲で変更することが可能である。
【図面の簡単な説明】
【００８４】
【図１】サブバンド処理に用いられる９／７フィルタの例。
【図２】メモリに入力データＩが格納されていることを説明する図。
【図３】メモリに変換係数が格納されていることを説明する図。
【図４】本発明のウェーブレット変換装置が行うサブバンド処理に用いられる９／７フィルタの例。
【図５】サブバンド処理を行う際の、画像の端の部分の処理を説明する図。
【図６】メモリに変換係数が連続して格納されていることを説明する図。
【図７】本発明のウェーブレット変換装置の構成の例。
【図８】Ｒｏｗフィルタ２０の処理を説明するタイムチャート。
【図９】カラムフィルタ６０が処理を説明するタイムチャート。
【図１０】本発明のウェーブレット変換装置の機能構成の例。
【符号の説明】
【００８５】
１、１００  ウェーブレット変換装置
１０  データコントローラ
２０  Ｒｏｗフィルタ
３０  Ｒｏｗデータバッファ
４０  カラムレジスタ
５０  レジスタコントローラ
６０  カラムフィルタ
７０  メモリ書き込みインタフェース
８０、８００  フレームメモリ
１１０  Ｘ方向入力手段
１２０  Ｘ方向サブバンド変換手段
１３０  Ｘ中間係数保持手段
１４０  Ｘ係数レジスタ
１４１  Ｌ係数レジスタ
１４２  Ｈ係数レジスタ
１５０  Ｙ方向入力手段
１６０  Ｙ方向サブバンド変換手段
１７０  フレームメモリ書き込み制御手段
【図１】
2008079130.tif 000003
【図２】
2008079130.tif 000004
【図３】
2008079130.tif 000005
【図４】
2008079130.tif 000006
【図５】
2008079130.tif 000007
【図６】
2008079130.tif 000008
【図７】
2008079130.tif 000009
【図８】
2008079130.tif 000010
【図９】
2008079130.tif 000011
【図１０】
2008079130.tif 000012