(57)【特許請求の範囲】
【請求項１】
複数レベルのウェーブレット変換を実行するウェーブレット変換装置であって、ウェーブレット変換の各レベルに１対１に対応付けられた、互いに独立した複数のメモリと、ウェーブレット変換の全レベルに共通のフィルタ部と、装置の内部のデータ転送及び装置の外部とのデータ転送の制御並びに前記複数のメモリの動作の制御を行う制御部とを具備することを特徴とするウェーブレット変換装置。
【請求項２】
複数レベルのウェーブレット変換を実行するウェーブレット変換装置であって、ウェーブレット変換の各レベルに１対１に対応付けられた、互いに独立した複数のメモリと、ウェーブレット変換の全レベルに共通のフィルタ部と、装置の内部のデータ転送及び装置の外部とのデータ転送の制御並びに前記複数のメモリの動作の制御を行う制御部とを具備し、前記複数のメモリは読み出しアドレスと書き込みアドレスが独立し、読み出しと書き込みが同時に可能なメモリであることを特徴とするウェーブレット変換装置。
【請求項３】
請求項１又は２記載のウェーブレット変換装置において、前記制御部は少なくとも、前記複数のメモリに対しアドレス及びイネーブル信号の制御信号を選択的に供給する部分、装置内部のデータ転送及び装置外部とのデータ転送を制御する部分、及びそれら２つの部分の制御及び装置外部との制御情報の授受を行う部分とに分割されてなることを特徴とするウェーブレット変換装置。
【請求項４】
請求項３記載のウェーブレット変換装置において、前記制御部を構成する少なくとも３つの部分はそれぞれエンコード時専用の部分とデコード時専用の部分とに分割されてなることを特徴とするウェーブレット変換装置。
【請求項５】
複数レベルのウェーブレット変換を実行するウェーブレット変換装置であって、ウェーブレット変換の各レベルに１対１に対応付けられた、互いに独立した複数のメモリと、前記複数のメモリ中の最大のワード数を有するメモリと同数のワード数を少なくとも持つウェーブレット変換の全レベルに共通のバッファメモリと、ウェーブレット変換の全レベルに共通のフィルタ部と、装置の内部のデータ転送及び装置の外部とのデータ転送並びに前記複数のメモリ及び前記バッファメモリの動作を制御する制御部とを具備することを特徴とするウェーブレット変換装置。
【請求項６】
請求項５記載のウェーブレット変換装置において、前記フィルタ部は独立した２つのフィルタ部からなり、この２つのフィルタ部の一方が水平処理に割り当てられ、他方が垂直処理に割り当てられることを特徴とするウェーブレット変換装置。
【請求項７】
複数レベルのウェーブレット変換を実行するウェーブレット変換装置であって、ウェーブレット変換の各レベルに１対１に対応付けられた、互いに独立した複数のメモリと、ウェーブレット変換の全レベルに共通のラインメモリと、ウェーブレット変換の全レベルに共通のフィルタ部と、装置の内部のデータ転送及び装置の外部とのデータ転送並びに前記複数のメモリ及び前記ラインメモリの動作を制御する制御部とを具備することを特徴とするウェーブレット変換装置。
【請求項８】
請求項７記載のウェーブレット変換装置において、前記フィルタ部として水平処理用フィルタ部と垂直処理用フィルタ部を具備することを特徴とするウェーブレット変換装置。
【請求項９】
請求項１又は２記載のウェーブレット変換装置において、前記複数のメモリはそれぞれ、ウェーブレット変換係数の種類数と等しい個数の独立したメモリからなり、前記フィルタ部として水平処理及び垂直処理の両方に利用される独立した２つのフィルタ部を具備することを特徴とするウェーブレット変換装置。
【請求項１０】
請求項５記載のウェーブレット変換装置において、前記複数のメモリの各メモリ及び前記バッファメモリはそれぞれ、ウェーブレット変換係数の種類数と等しい個数の独立したメモリからなり、前記フィルタ部として水平処理及び垂直処理の両方に利用される独立した２つのフィルタ部を具備することを特徴とするウェーブレット変換装置。
【請求項１１】
請求項１又は２記載のウェーブレット変換装置において、前記複数のメモリはそれぞれ、ウェーブレット変換係数の全種類のビット深さの総和に等しいビット深さを少なくとも持つことを特徴とするウェーブレット変換装置。
【請求項１２】
請求項５記載のウェーブレット変換装置において、前記複数のメモリの各メモリ及び前記バッファメモリはそれぞれ、ウェーブレット変換係数の全種類のビット深さの総和に等しいビット深さを少なくとも持つことを特徴とするウェーブレット変換装置。
【請求項１３】
請求項１乃至１２のいずれか１項記載のウェーブレット変換装置と、該ウェーブレット変換装置と接続され、該ウェーブレット変換装置の出力データを符号化し、又は外部から入力される符号化データを復号化して該ウェーブレット変換装置に入力する符号化部とを具備する符号化／復号化装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ圧縮及び伸長の分野に係り、特に、ウェーブレット変換を利用する符号化／復号化装置及びウェーブレット変換装置に関する。
【０００２】
【従来の技術】
データ圧縮は、大量のデータの蓄積や伝送のために非常に有用なツールである。例えば、文書のファクシミリ伝送や、ワールドワイドウェブのような画像の伝送に要する時間は、圧縮を使って画像の再生に必要とされるビット数を減らすと、飛躍的に短縮される。
【０００３】
従来より、多様なデータ圧縮手法が存在している。最も広く普及している圧縮方式としてＪＰＥＧ（Ｊoint Ｐhotographics Ｅxperts Ｇroup）の圧縮方式がある。ＪＰＥＧの圧縮方式においては、入力シンボルまたは輝度データは量子化されてから出力符号語へ変換される。量子化は、データの重要な特徴量を保存しつつ、重要でない特徴量を除去することを目的としている。量子化に先立ち、エネルギー集中をするために変換が用いられるが、ＪＰＥＧではＤＣＴ(ＤiscreteＣosine Ｔransform）が採用されている。ところが、ＤＣＴを用いるＪＰＥＧ方式に対し様々な欠点が指摘されている。例えば、ブロックノイズやモスキートノイズ（蚊が飛んでいるように見えるところから、このように呼ばれる）である。画像信号処理においては、これらの欠点を解消する効率的かつ高精度のデータ圧縮符号化方式を追求することに関心が集まっている。その方式の中に、ウェーブレット（wavelet）ピラミッド処理方式がある。
【０００４】
画像信号のような２次元信号にウェーブレット変換を適用する場合には、入力信号に対し水平方向低域通過型フィルタＨＬ（Ｈolizontal Ｌow）及び水平方向高域通過型フィルタＨＨ（Ｈolizontal Ｈigh）を使用して、水平方向低域信号（Ｓ(smooth)係数）及び水平方向高域信号（Ｄ(detail）係数）に分離し、さらにＳ係数及びＤ係数に対して垂直方向低域通過型フィルタＶＬ（Ｖertical Ｌow）及び垂直方向高域通過型フィルタＶＨ（Ｖertical Ｈigh）を使用して水平方向低域−垂直方向低域信号（ＳＳ係数）、水平方向低域−垂直方向高域信号（ＳＤ係数）、水平方向高域−垂直方向低域信号（ＤＳ係数）、及び水平方向高域−垂直方向高域信号（ＤＤ係数）に分離する。以上の一連の処理をレベルと呼び、１回の水平処理と垂直処理を行った出力をレベル１の出力と呼ぶ。さらに、以上の４種類の信号を周波数帯信号と呼ぶ。レベル２以上の出力を希望するときは、この処理がＳＳ係数に対して再帰的に行われる。レベル２の出力では、ＳＳ係数と、１ＳＤ係数及び２ＳＤ係数、１ＤＳ係数及び２ＤＳ係数、１ＤＤ係数及び２ＤＤ係数、の７つの周波数帯信号が得られる。以上の説明では、まず水平方向にフィルタを適用し、次に垂直方向にフィルタを適用したが、その順序は逆でもよい。
【０００５】
図２８にレベル４までの処理を行う場合の従来の構成を示した。図中、１０００はウェーブレット変換部、１１００は符号化部である。符号化部１１００は、ウェーブレット変換部１０００の出力データを符号化して圧縮コードを出力し、あるいは、外部から入力する同様に圧縮されたコードを復号化して各レベルの周波数帯信号に伸長する機能を持つ。
【０００６】
図２８において、１００１〜１０１２はそれぞれフィルタであり、その中のフィルタ１００１，１００４，１００７，１０１０（以下、これらをfilter１Ｈ，filter２Ｈ，filter３Ｈ，filter４Ｈと表記する）は、水平方向低域通過型フィルタＨＬ及び水平方向高域通過型フィルタＨＨを含む水平方向フィルタである。これらのフィルタ名中の数字１〜４はレベル番号を表し、Ｈは水平方向フィルタであることを意味する。同様に、フィルタ１００２（filter１Ｖ１）と同１００３（filter１Ｖ２），同１００５（filter２Ｖ１）と同１００６（filter２Ｖ２），同１００８（filter３Ｖ１）と同１００９（filter３Ｖ２），同１０１１
（filter４Ｖ１）と同１０１２（filter４Ｖ２）は、垂直方向低域通過型フィルタＶＬ及び垂直方向高域通過型フィルタＶＨを含む垂直方向フィルタである。これらのフィルタ名中のＶは垂直方向フィルタであることを意味し、Ｖの前の数字１〜４はレベル番号を表し、Ｖの後の数字１は水平方向低域信号（Ｓ係数）を入力とするフィルタであることを示し、Ｖの後の数字２は水平方向高域信号（Ｄ係数）を入力とするフィルタであることを示す。以上のフィルタはどのような構成のものでもよいが、以下の説明では、水平方向低域通過型フィルタＨＬ及び垂直方向低域通過型フィルタＶＬとして、２組のデータを用いて演算を行う２タップのフィルタを使用するものとする。また、水平方向高域通過型フィルタＨＨ及び垂直方向高域通過型フィルタＶＨとして、低域通過形フィルタＨＬまたはＶＬの出力であるＳ係数のうち、現在の位置と、１つ前及び１つ後の合計３組のデータを用いて演算を行う６タップのフィルタを使用するものとする。
【０００７】
このようなフィルタを用いた場合の演算の例を図３０に示す。但し、この図におけるデータのマッピングは演算の方法を説明するためのものであり、実際のメモリへのマッピングは例えば図３２から図３５に示すようになることに注意されたい。図３０の（ａ）は水平方向フィルタの処理を説明するもので、［００］は０ライン目の０画素目のデータを意味し、［１２］は１ライン目の２画素目のデータを意味する（このようにライン、画素とも０番目から数えるものとする）。水平方向低域通過型フィルタＨＬの０画素目の出力［Ｓ００］は、［００］データ及び［０１］データから求められ、また、１画素目の出力［Ｓ０１］は［０２］データ及び［０３］データから求められる。これに対し、水平方向高域通過型フィルタＨＨの０画素目の出力［Ｄ００］は、［００］データの２つ前及び１つ前のデータ（実在しない）と、［００］データと、［０１］データと、［０２］データと、［０３］データとから求められる。ここで、実在しない［００］データの２つ前と１つ前のデータを得るため、ミラーと呼ばれる処理を施す。具体的には、データを鏡像関係で折り返す処理を行う。これにより、２つ前と１つ前のデータは［０１］データと［００］データとなる。このようにして、［Ｄ００］は６画素のデータから計算される。
【０００８】
図３０の（ｂ）は垂直方向フィルタの処理を説明している。この処理は、垂直方向フィルタ処理によるＳ係数及びＤ係数を用いて垂直方向に行われる。実在しない係数は、水平方向フィルタの処理の場合と同様にミラー処理が施される。
【０００９】
図３１乃至図３５に、ウェーブレット処理の結果の格納方法を例示する。図３１はフレームメモリにラスタ順に格納されたイメージデータを示す。フレームメモリからデータを読み出して水平処理を行い、その結果を再びフレームメモリに書き込む。この書き込みの際に、未処理のデータに上書きしてしまわないように、例えば図３２に示すようなマッピングでＳ係数及びＤ係数を書き込んでいく。図３２において、［１Ｓ００］はレベル１のアドレス００のＳ係数を意味する。図３３は垂直処理を行った後の各係数を書き込む際のマッピングの例を示す。ここまでがレベル１の各係数の格納方法である。図３４はレベル２の水平方向の各係数の格納方法の例を示す。レベル２の処理は１ＳＳ係数に対してのみ行われるため、網掛けされた部分のデータは用いられないことに注意されたい。ついで、図３５に示すようなマッピングで、レベル２の各係数が格納され、レベル２の処理が終了する。以上の処理がレベル４まで繰り返される。
【００１０】
図２９は、図２８に示す構成のウェーブレット変換部１０００のタイミングチャートである。ただし、このタイミングチャートは処理手順の説明のために用いるものであり、メモリアクセス等に必要な時間は考慮されておらず、横軸（時間軸）のスケールはリニアでないことに注意されたい。また、以下の説明では、画素数もしくはライン数を０画素目もしくは０ライン目、というように０から数える。ｄａｔａより入力されるイメージデータ（ラスタデータ）は３２画素×３２ライン（０から３１）であり、１つのデータの区切り（×＝×）が１ラインに相当するものとする。
【００１１】
時刻ｔ０から、０ライン目のデータが０画素目から順次入力され、１画素目が入力されるとfilter１Ｈより０画素目の［１Ｓ００］データが出力される。ついで［１Ｓ０１］データが出力されると、Ｄ係数の計算に必要となる３組のＳ係数（［１Ｓ００］，［１Ｓ００］，［１Ｓ０１］）が揃い（１つ前のデータはミラー処理により得られた）、Ｄ係数［１Ｄ００］が出力される。これが１ライン分、繰り返される。なお、タイミングチャート上では１ラインの時間単位で示されているが、拡大すれば画素単位でのずれが生じていることに注意されたい。
【００１２】
時刻ｔ１から１ライン目のデータの入力が始まり、filter１Ｈより［１Ｓ１０］、［１Ｄ１０］、とＳ係数及びＤ係数が順次出力される。２Ｈの処理（レベル２の水平方向処理）が始まる。［１Ｓ１０］が出力された時点で１Ｖの処理（レベル１の垂直方向処理）が始まり、filter１Ｖ１より［１ＳＳ００］が、filter１Ｖ２より［１ＤＳ００］が出力される。［１Ｓ１１］が出力された時点でfilter１Ｖ１及びfilter１Ｖ２においてＤ係数の計算に必要な３組のデータが揃う。すなわち、filter１Ｖ１においては［１Ｓ１０］，［１Ｓ１０］，［１Ｓ１１］、filter１Ｖ２においては［１Ｄ１０］，［１Ｄ１０］，［１Ｄ１１］が揃い（１つ前のデータはミラー処理により得られる）、レベル１の出力データ［１ＳＳ００］，［１ＳＤ００］，［１ＤＳ００］，［１ＤＤ００］が得られる。これが１ライン分、繰り返される。
【００１３】
時刻ｔ２で、２Ｖの処理（レベル２の垂直方向処理）のための１ライン目の入力が始まり、２Ｖの処理が始まる。以下、同様のタイミング関係で時刻ｔ９まで処理が繰り返され、レベル４までの各周波数帯信号が出力される。
【００１４】
以上のようにして得られた各レベルの周波数帯信号が符号化部１１００で符号化されて圧縮されるのであるが、符号化は通常、ビット処理が行われるため、周波数帯信号を一旦ストレージに書き込んでおく必要がある。一般に用いられるストレージは半導体メモリである。符号化部１１００ではストレージに書き込まれた各周波数帯信号を参照してビット処理を行って符号化し、生成したコードを
ｃｏｄｅとして出力する。圧縮されたコードからイメージデータへの復元は、以上に述べた動作の逆順で行われる。
【００１５】
なお、本発明に関連する符号化／復号化装置、ウェーブレット変換部、あるいはフィルタについてのより詳細な情報は、特開平８−１１６２６５号公報、特開平８−１３９９３５号公報、特開平９−２７７５２号公報、特開平９−２７９１２号公報などを参照されたい。また、類似の従来技術については、特開平３−２７６８７号公報、特開平５−１６７９９７号公報、特開平５−１８３３８６号を参照されたい。
【００１６】
次に、ウェーブレット変換のための処理時間について説明するが、ここではウェーブレット変換部１０００により生成される各周波数帯信号のストレージとして、一度に読み出し又は書き込みの一方しかできない一般的な半導体メモリ等を用いる場合として説明する。
【００１７】
図２９のタイミングチャートを用いて説明したように、各周波数帯信号は同時刻にパラレルに出力されるため、メモリへの書き込みもパラレルに行われなければならないが、通常用いられるメモリでは１時刻に読み出しまたは書き込みをすることができるのは１データだけである。図２９の左下のｒａｎｇｅは、時刻ｔ０からｔ９に対応する、１Ｈ，１Ｖ，．．．，４Ｖの各処理が占める処理時間の範囲を←→で示したものである。ｒａｎｇｅの下のｒ／ｗ cyclesは、ｒａｎｇｅの各範囲（←→）に必要なメモリアクセス回数で、その範囲内での書き込み回数と読み出し回数の合計であるが、異なるレベルが同時に処理されている範囲での回数は、それら各レベルに関する回数の合計で示されている。図２９の右側に示した数値は、各レベルの水平処理もしくは垂直処理に要するメモリアクセスの回数（書き込みと読み出しの合計数）である。メモリアクセスの回数についてであるが、各レベルにおいて、水平処理、垂直処理のいずれも必ず全データが１回読み出され、全データがフィルタ出力データで書き換えられるから、全画素数の２倍の書き込み／書き込み回数が必要となる。
【００１８】
【発明が解決しようとする課題】
前述のように、符号化は各レベルの各周波数帯信号を用いて行われるのであるが、符号化は通常ビット処理が行われるため、ウェーブレット変換後の出力データを一旦ストレージに貯える必要があり、データを単に入力するのに要する時間に比べて数倍の処理時間がかかるという問題があった。前述したところから明らかなように、例えば入力されるイメージデータのサイズを３２画素×３２ライン、レベル数を４とした場合、イメージデータの入力に必要なサイクル数が１０２４＝３２×３２であるのに対し、必要な処理時間は５倍以上の５４４０サイクルとなる。入力データのサイズが増加すれば、処理時間はさらに大幅に増大することは明かである。例えば、６４画素×６４ラインの場合は、図２９に点線で示すように、１Ｈの処理が時刻ｔ１０まで行われる結果、パラレルに出力される区間が増加するため、処理時間は大幅に増大する。レベル数が増えた場合も同様に処理時間が大幅に増大する。
【００１９】
また、各レベルの各周波数帯信号が同じ時刻に出力されるので、パイプライン処理が必要であった。すなわち、すべてのフィルタのデータ入力タイミングが異なっているため、各フィルタに、それが使用される場所に応じたコントローラを内蔵させ個別的に設計する必要があった。また、これらのコントローラはただ一つの条件の画素数とレベルの組合せにしか対応させることができず、画素数またはレベルの一方又は両方が変更された場合に対応が困難であるという問題があった。さらに、通常はエンコード処理（イメージデータを各周波数帯信号に変換する処理、ウェーブレット順変換）とデコード処理（各周波数帯信号をイメージデータに変換する処理、ウェーブレット逆変換）のシーケンスが異なるが、この相違を考慮して全体のパイプライン動作に破綻を来さないように、注意深い設計が必要があった。
【００２０】
本発明の目的は、ウェーブレット変換装置及びウェーブレット変換を利用する符号化／復号化装置における前述の諸問題点を改善することにあり、より具体的に列挙すれば、より高速の動作を可能にする、パイプライン処理を不要にする、設計もしくは設計変更を容易にする、回路規模の増大を回避する等々である。
【００２１】
【課題を解決するための手段】
前記目的を達成するため、請求項１の発明によるウェーブレット変換装置は、ウェーブレット変換の各レベルに１対１に対応付けられた、互いに独立した複数のメモリと、ウェーブレット変換の全レベルに共通のフィルタ部と、装置の内部のデータ転送及び装置の外部とのデータ転送の制御並びに前記複数のメモリの動作の制御を行う制御部とを具備する構成とされる。請求項２の発明によれば、各レベルに１対１に対応付けられた複数のメモリはそれぞれ、読み出しアドレスと書き込みアドレスが独立し、読み出しと書き込みが同時に可能なタイプのメモリとされる。
【００２２】
前記目的を達成するため、請求項３の発明は、請求項１又は２記載のウェーブレット変換装置において、前記制御部を少なくとも、前記複数のメモリに対しアドレス及びイネーブル信号の制御信号を選択的に供給する部分、装置の内部のデータ転送及び装置の外部とのデータ転送を制御する部分、及びそれら２つの部分の制御及び装置外部との制御情報の授受を行う部分とに分割することを特徴とする。請求項４の発明によれば、制御部を構成する少なくとも３つの部分はそれぞれエンコード時専用の部分とデコード時専用の部分とに分割される。
【００２３】
前記目的を達成するため、請求項５の発明によるウェーブレット変換装置は、ウェーブレット変換の各レベルに１対１に対応付けられた、互いに独立した複数のメモリと、前記複数のメモリ中の最大のメモリと同じワード数を少なくとも有するウェーブレット変換の全レベルに共通のバッファメモリと、ウェーブレット変換の全レベルに共通のフィルタ部と、装置の内部のデータ転送及び装置の外部とのデータ転送並びに前記複数のメモリ及び前記バッファメモリの動作を制御する制御部とを具備する構成とされる。請求項６の発明によれば、請求項５記載のフィルタ部は独立した２つのフィルタ部から構成され、この２つのフィルタ部の一方を水平処理に割り当て、他方を垂直処理に割り当てる。
【００２４】
前記目的を達成するため、請求項７の発明によるウェーブレット変換装置は、ウェーブレット変換の各レベルに１対１に対応付けられた、互いに独立した複数のメモリと、ウェーブレット変換の全レベルに共通のラインメモリと、ウェーブレット変換の全レベルに共通のフィルタ部と、装置の内部のデータ転送及び装置の外部とのデータ転送並びに前記複数のメモリ及び前記ラインメモリの動作を制御する制御部とを具備する構成とされる。請求項８の発明によれば、請求項７記載のフィルタ部として水平処理用フィルタ部と垂直処理用フィルタ部を具備せしめる。
【００２５】
前記目的を達成するため、請求項９の発明は、請求項１又は２記載のウェーブレット変換装置において、前記複数のメモリをそれぞれウェーブレット変換係数の種類数と等しい個数の独立したメモリとし、前記フィルタ部として水平処理及び垂直処理の両方に利用される独立した２つのフィルタ部を具備することを特徴とする。
【００２６】
前記目的を達成するため、請求項１０の発明は、請求項５記載のウェーブレット変換装置において、前記複数のメモリの各メモリ及び前記バッファメモリをそれぞれウェーブレット変換係数の種類数と等しい個数の独立したメモリとし、前記フィルタ部として水平処理及び垂直処理の両方に利用される独立した２つのフィルタ部を具備することを特徴とする。
【００２７】
前記目的を達成するため、請求項１１の発明は、請求項１又は２記載のウェーブレット変換装置において、前記複数のメモリをそれぞれウェーブレット変換係数の全種類のビット深さの総和に等しいビット深さを少なくとも持つメモリとすることを特徴とする。
【００２８】
前記目的を達成するため、請求項１２の発明は、請求項５記載のウェーブレット変換装置において、前記複数のメモリの各メモリ及び前記バッファメモリをそれぞれウェーブレット変換係数の全種類のビット深さの総和に等しいビット深さを持つメモリとすることを特徴とする。
【００３２】
また、前記目的を達成するため、請求項１３の発明による符号化／復号化装置は、請求項１乃至１２のいずれか１項記載のウェーブレット変換装置と、該ウェーブレット変換装置と接続し、該ウェーブレット変換装置の出力データを符号化し、又は外部から入力される符号化データを復号化して該ウェーブレット変換装置に入力する符号化部を具備する構成とされる。
【００３３】
【発明の実施の形態】
以下、図面を用いて本発明の実施の形態を説明する。なお、説明の煩雑化を避けるため、複数の図面において、対応する部分には同一又は類似の参照符号が用いられる。また、複数の実施例で同一又は同様の構成については、関連した図面から適宜省略しまたは簡略化し、あるいは他の実施例の図面を援用する。
【００３４】
＜第１実施例＞
図１は本発明の第１実施例による符号化／復号化装置のブロック図である。この符号化／復号化装置は、ウェーブレット変換部１００と符号化部２００からなる。ウェーブレット変換部１００は、レベル４まで処理可能である。もちろん、レベル数はいくつに設定してもよく、レベル数が増えるほど本発明はその効果を発揮する。さらに、入力データ数（画素数）が増えるほど本発明はその効果を発揮する。
【００３５】
ウェーブレット変換部１００は、レベル１，２，３，４の周波数帯信号データをそれぞれ格納するためのメモリ１０２_1〜１０２_4（以下、ｍｅｍ１，ｍｅｍ２，ｍｅｍ３，ｍｅｍ４と表記）と、制御信号選択部（s_mux）１１１、データ選択部（d_mux）１１４、及びそれらを制御する主制御部（main）１１８からなる制御部（cnotroller)１１０と、低域通過型フィルタ及び高域通過型フィルタを含むフィルタ部（filter）１３０とから構成される。
【００３６】
ウェーブレット変換部１００は、外部とのイメージデータの入出力ｄａｔａと符号化部２００との間の周波数帯信号データの入出力を持つ。エンコード時には、ウェーブレット変換部１００に一度に処理できる最大数（画素数）以下のイメージデータが外部から入出力ｄａｔａより入力される。このデータの最大数はｍｅｍ１のワード数Ｗ１と等しい。ｍｅｍ２のワード数Ｗ２は、Ｗ２＝Ｗ１×（１／４）に設定する。ｍｅｍ３のワード数Ｗ３はＷ３＝Ｗ２×（１／４）に設定し、ｍｅｍ４のワード数Ｗ４はＷ４＝Ｗ３×（１／４）に設定する。したがって、メモリｍｅｍ１〜ｍｅｍ４の総ワード数は、入力データ総数に対して
1+(1/4)+(1/4)^2+(1/4)^3 ＝１＋２１／６４
となり、約３３％の増加となる。
【００３７】
制御部１１０の主制御部１１８は、外部との制御信号の授受及び制御信号選択部１１１及びデータ選択部１１４の制御を行う部分であり、制御信号選択部１１１はメモリｍｅｍ１〜ｍｅｍ４のアクセス制御を行う部分である。データ選択部１１４は、ウェーブレット変換部１００の内部のデータ転送の制御及び外部とのイメージデータの転送の制御及び符号化部２００との間の周波数帯信号データの転送の制御を行う部分である。主制御部１１８は、ウェーブレット変換を開始させるための外部入力ｓｔａｒｔ、エンコード（ウェーブレット順変換）又はデコード（ウェーブレット逆変換）の動作を選択するための外部入力ｄｉｒ、ウェーブレット変換の終了を外部に通知するための出力ｅｎｄ、制御信号選択部１１１に対する制御信号の出力ｃｎｔ１、データ選択部１１４に対する制御信号の出力ｃｎｔ２を有する。制御信号選択部１１１の出力mem_cnt1〜mem_cnt4はメモリに対する制御信号で、アドレス及び一連のイネーブル信号等を含む。データ選択部１１４はメモリに対する出力mem_out1〜mem_out4と、メモリからの入力mem_in1〜mem_in4を持ち、さらにフィルタ部１３０に対する出力fil_outと、フィルタ部１３０からの入力fil_inを有する。
【００３８】
以下、本実施例の動作について、図２及び図３に示したメモリマップと、図４及び図５に示したタイミングチャートを参照して説明する。
【００３９】
まず、エンコード動作について説明する。制御部１１０の主制御部１１８にｓｔａｒｔ信号が入力され、それから数画素時間程度遅れてｄａｔａよりイメージデータが入力されるものとする。図４は、このエンコード時のタイミングチャートである。エンコード動作であることはｄｉｒ信号により通知される。
【００４０】
図４の時刻ｔ０でｓｔａｒｔ信号が入力されると、主制御部１１８内のレジスタ等がリセットされ、レベル１のエンコード処理であること、かつ水平処理であることがｃｎｔ１及びｃｎｔ２を通して制御信号選択部１１１及びデータ選択部１１４にそれぞれ通知される。これらの信号を受けて、まず入力されたイメージデータがデータ選択部１１４によりfil_outを通してフィルタ部１３０に入力され、フィルタ部１３０より水平方向の低域通過型フィルタからのＳ係数及び高域通過型フィルタからのＤ係数がfil_inを通してデータ選択部１１４に出力される。データ選択部１１４に入力されたデータは、mem_out1を通してメモリｍｅｍ１に書き込まれる。この時、メモリｍｅｍ１に対し、書き込みアドレス及び各種イネーブル信号が制御信号選択部１１１よりmem_cnt1を通して与えられる。これらの制御のタイミングは主制御部１１８によりスケジューリングされる。これらの動作が時刻ｔ１までラスタ順に行われ、水平方向の処理が終了する。
【００４１】
３２画素×３２ラインのイメージデータを入力した場合、レベル１の水平処理（１Ｈ）に必要なリード／ライトサイクルの総数は１０２４サイクルとなる。Ｓ，Ｄ係数データは、例えば図２に示すように、メモリｍｅｍ１の左半分にＳデータが、右半分にＤデータがそれぞれ書き込まれる。
【００４２】
ついで、主制御部１１８より、垂直処理であることがｃｎｔ１及びｃｎｔ２を通して制御信号選択部１１１及びデータ選択部１１４にそれぞれ通知される。これらの信号を受けて、制御信号選択部１１１からメモリｍｅｍ１に対し、読み出しアドレス及び各種イネーブル信号がmem_cnt1を通して出力される。ただし、この際に行われるアドレッシングは、ラスタ方向（水平方向）ではなく、ライン方向（垂直方向）であることに注意されたい。まず、１Ｈの処理により得られたＳ係数がメモリｍｅｍ１からmem_in1に出力され、これがデータ選択部１１４によりfil_outを通してフィルタ部１３０に入力される。そして、フィルタ部１３０より、垂直方向の低域通過型フィルタからのＳＳ係数及び高域通過型フィルタからのＳＤ係数がfil_inを通してデータ選択部１１４に出力される。次に、１Ｈの処理結果であるＤ係数が同様にメモリｍｅｍ１からmem_in1に出力され、これがデータ選択部１１４からfil_outを通してフィルタ部１３０に入力される。そして、フィルタ部１３０より垂直方向の低域通過型フィルタからのＤＳ係数及び高域通過型フィルタからのＤＤ係数がfil_inを通してデータ選択部１１４に出力される。ただし、ここでは最初にＳ係数を処理し、次にＤ係数を処理したが、順番はそれと逆にしても構わない。さて、フィルタ部１３０からデータ選択部１１４に入力されたＳＳ，ＳＤ，ＤＳ，ＤＤの各係数データは、mem_out1を通してメモリｍｅｍ１に書き込まれる。この時、メモリｍｅｍ１に対する書き込みアドレス及び各種イネーブル信号は、制御信号選択部１１１よりmem_cnt1を通して与えられる。以上の動作が時刻ｔ２まで繰り返し行われ、レベル１の垂直処理（１Ｖ）が終了する。
【００４３】
３２画素×３２ラインのイメージデータを入力した場合、１Ｖの処理に必要なリード／ライトサイクルの総数は、フィルタ部１３０への入力がＳ係数とＤ係数の２種類になるため、２０４８サイクルとなる。
【００４４】
１Ｖ処理の結果のデータは、例えば図３に示すように、メモリｍｅｍ１の左上四半分にＳＳ係数が、左下四半分にＳＤ係数が、右上四半分にＤＳ係数が、右下四半分にＤＤ係数が、それぞれ書き込まれる。
【００４５】
次に時刻ｔ２から時刻ｔ４まで、レベル２の処理が行われるのであるが、その水平処理の対象となるデータはレベル１のＳＳ係数である。したがって、時刻ｔ２から時刻ｔ３までのレベル２の水平処理（２Ｈ）においては、制御信号選択部１１１及びデータ選択部１１４は、メモリｍｅｍ１のＳＳ係数が格納されている領域から入力データを読み出し、フィルタ部１３０の出力データをレベル２のためのメモリｍｅｍ２に書き込むことになり、１Ｈの処理の場合と同様に、データの読み出しと書き込みを同時に行うことができる。レベル２の垂直処理（２Ｖ）では、メモリｍｅｍ２に対しデータの読み出しと書き込みを行うことになる。したがって、２Ｈ処理及び２Ｖ処理に必要なリード／ライトサイクルの総数はそれぞれ、２５６サイクルと５１２サイクルとなる。
【００４６】
続いて時刻ｔ４からｔ６までがレベル３の処理であり、その水平処理（３Ｈ）ではメモリｍｅｍ２のＳＳ係数の読み出しとメモリｍｅｍ３へのデータの書き込みが同時に行われ、垂直処理（３Ｖ）ではメモリｍｅｍ３に対する読み出しと書き込みが行われる。したがって、３Ｈ処理及び３Ｖ処理に必要なリード／ライトサイクルの総数はそれぞれ、６４サイクルと１２８サイクルとなる。続いて時刻ｔ６からｔ８までがレベル４の処理となり、その水平処理（４Ｈ）及び垂直処理（４Ｖ）に必要なリード／ライトサイクルの総数はそれぞれ、１６サイクルと３２サイクルとなる。したがって、レベル１からレベル４までのリード／ライトサイクルの総数は、４０８０サイクルとなる。
【００４７】
次にデコード時の動作を説明する。図５はデコード時のタイミングチャートである。デコード時は、符号化部２００から周波数帯信号データがウェーブレット変換部１００に入力され、ウェーブレット変換部１００はエンコード時とは逆順で動作してウェーブレット逆変換を行い、復元したイメージデータをｄａｔａより外部へ出力する。デコード動作であることはｄｉｒ信号で通知される。
【００４８】
図５において、時刻ｔ０でｓｔａｒｔ信号が入力されると、入力されたレベル４の係数データに対するレベル４の垂直処理が開始する。入力された係数はデータ選択部１１４からfilter_outを通してフィルタ部１３０へ送られ、フィルタ部１３０からの出力データがfilter_inを通してデータ選択部１１４に入力し、これが制御信号選択部１１１の制御によってメモリｍｅｍ４に書き込まれる。これは時刻ｔ１で終了し、次にレベル４の水平処理が開始され、メモリｍｅｍ４のデータが読み出されてデータ選択部１１４を介してフィルタ部１３０に送られ、フィルタ部１３０から出力されるデータ、つまりレベル３のＳＳ係数がデータ選択部１１４を介してメモリｍｅｍ３の対応領域に書き込まれる。この垂直処理は時刻ｔ２で終了する。時刻ｔ２からはレベル３の処理であり、入力されるレベル３のＳＤ，ＤＳ，ＤＤ係数とメモリｍｅｍ３より読み出されるＳＳ係数に対する垂直処理が行われ、その結果はメモリｍｅｍ３の対応領域に書き込まれる。レベル３の垂直処理は時刻ｔ３で終了し、続いてレベル３の水平処理が行われ、その結果データつまりレベル２のＳＳ係数データはメモリｍｅｍ２の対応領域に書き込まれる。時刻ｔ４でレベル３の処理は終了し、続いてレベル２の垂直処理が行われ、時刻ｔ５からレベル２の水平処理が行われる。時刻ｔ６から時刻ｔ７までレベル１の垂直処理、ついで時刻ｔ８までレベル１の水平処理が行われ、復元されたイメージデータはｄａｔａを通して外部に出力される。
【００４９】
各レベルにおいて、水平方向、垂直方向ともに入力画素数に対し出力画素数は２倍になる。したがって、例えば時刻ｔ０からｔ１までの時間もくしは時刻ｔ１からｔ２までの時間に対し、時刻ｔ２からｔ３までの時間もしくは時刻ｔ２からｔ３までの時間は４倍となる。よって、デコード動作に必要なサイクル数は、エンコード時と同様に４０８０サイクルである。
【００５０】
なお、図２及び図３に示したメモリマップは、処理のイメージを掴みやすくするために示した一例にすぎず、アドレッシングの容易さ、あるいは設計の容易さを考慮して、いかような形態にしようと自由である。なぜならば、メモリｍｅｍ１〜ｍｅｍ４は各レベルの演算において独立しており、周波数帯信号を最終的に蓄積しておくストレージであるとともに、水平処理の結果を一時的に蓄積するバッファメモリとしても機能しているためである。
【００５１】
＜第２実施例＞
図６は本発明の第２実施例を示すブロック図である。ただし、符号化部は省略されており、ウェーブレット変換部だけが示されている。
【００５２】
本実施例の構成はＩＣ化に好適なものである。すなわち、前記第１実施例では、メモリｍｅｍ１〜ｍｅｍ４として、最も一般的なメモリ（アドレスが１種類、つまりリードアドレスとライトアドレスが共通なもの）を使用した場合で説明したが、本実施例ではＩＣ内で比較的よく使用されるメモリのような、リードアドレスとライトアドレスが独立しており、読み出しと書き込みを同時に行うことが可能なメモリが使用される。したがって、メモリｍｅｍ１〜ｍｅｍ４は２種類のアドレス入力ｒａ（リード時専用アドレス入力），ｗａ（ライト時専用アドレス入力）、それに対応した２種類のイネーブル入力ｒｅｂ（リード時専用イネーブルバー），ｗｅｂ（ライト時専用イネーブルバー）及びデータ入力ｉ及びデータ出力ｏを持っている。
【００５３】
制御信号選択部（s_mux）１１１はメモリｍｅｍ１〜ｍｅｍ４に対してｒａ１〜ｒａ４、ｗａ１〜ｗａ４、ｒｅｂ１〜ｒｅｂ４、及びｗｅｂ１〜ｗｅｂ４の信号を出力する。これら信号の基になる信号ｒａ，ｗａ，ｒｅｂ，ｗｅｂの各信号が主制御部（ｍａｉｎ）１１８から制御信号選択部１１１へ入力される。さらに、制御信号選択部１１１は、信号出力をレベルに応じて選択するために、主制御部よりhb_s_mux(holizontal bar, s_mux)及びlevel_s_mux(level, s_mux)の各信号が入力される。エンコード／デコードの状態は外部よりｄｉｒ（direction）信号により与えられる。ｓｔａｒｔ信号も同様に外部から与えられる。
【００５４】
データ選択部（d_mux）１１４はメモリｍｅｍ１〜ｍｅｍ４の出力信号ｏ１〜ｏ４、及びフィルタ部（ｆｉｌｔｅｒ）１３０の出力信号ｓｉｎ，ｄｉｎ，ｘｉｎ１，ｘｉｎ２が入力し、また、メモリｍｅｍ１〜ｍｅｍ４への入力信号ｉ１〜ｉ４、及びフィルタ部（filter）１３０への入力信号ｓｏ，ｄｏ，ｘｏ１，ｘｏ２を出力する。
【００５５】
以下、本実施例のエンコード時の動作を図３６のタイミングチャートに基づいて説明する。なお、タイムスケールは、例えば時刻ｔ０からｔ１の間で全てのイメージデータ（ここでは３２画素×３２ライン、トータル１０２４画素）がｄａｔａより入力されるものとして規定している。図中の信号の中には画素単位で変化する信号もあるが、画素単位では描ききれないため、以下のように簡略化している。すなわち、Ｘはdon't care信号であり、ｘ＝ｘはビット深さを持つ信号であり、ｗｅｂやｓｔａｒｔ信号は￣|_|￣のようなカドのある信号（ｘ＝ｘ以外）で、かつハイ／ローの２レベルの信号が同時刻に描かれている信号は１ビットの信号である。
【００５６】
さて、時刻ｔ０にｓｔａｒｔ信号が入力され、これに同期してイメージデータがｄａｔａより入力される。主制御部（ｍａｉｎ）１１８からwa,web,hb_mux，level_s_mux，hb_d_mux及びlevel_d_muxの各信号が出力される。制御信号選択部（s_mux）１１１及びデータ選択部（d_mux）１１４では、level_s_mux，hb_d_mux及びlevel_d_muxの各信号に基づいて、アクセスすべきメモリに対する入出力信号を選択する。図３６においては、level_s_mux及びlevel_d_mux、hb_d_mux及びhb_d_muxが同じ信号として描かれているが、画素単位で時間のずれを生じる可能性があることに注意されたい。時刻ｔ０からｔ１までは入力されたイメージデータに対してレベル１の水平処理が行われ、結果がメモリｍｅｍ１に書き込まれる。アクセスすべきメモリの選択は、信号level_s_mux及びlevel_d_muxが１であることで通知され、水平処理であることは信号ｈｂ＿ｄ＿ｍｕｘ及びhb_d_muxがローレベルであることで通知される。時刻ｔ１からｔ２まではメモリｍｅｍ１に記憶されているＳ係数及びＤ係数に対してレベル１の垂直処理が行われ、その結果がメモリｍｅｍ１に書き込まれる。アクセスすべきメモリの選択は水平処理の時と同様に信号level_s_mux及びlevel_d_muxが１であることで通知され、垂直処理であることは信号hb_s_mux及びhb_d_muxがハイレベルであることで通知される。本実施例では、リードアドレスとライトアドレスが独立しているメモリを用いており、リード／ライトを同時刻に行うことができるので、図３６のタイミングチャートに示すような動作が可能となる。
【００５７】
時刻ｔ２からレベル２の処理が開始される。今度はメモリ１に得られたレベル１のＳＳ係数データ（１ＳＳ）が処理対象となるが、メモリｍｅｍ１，ｍｅｍ２のアドレス信号が独立しているので、レベル１の処理シーケンスをほぼそのままレベル２の処理シーケンスに適用することが可能となる（入力がイメージデータから１ＳＳ係数データに変わり、そのサイズが１／４になるだけである）。したがって、時刻ｔ４まで継続されるレベル２の処理は、レベル１で説明した動作を参照すれば容易に理解されよう。
【００５８】
ついで、時刻ｔ４からｔ６の区間でレベル３の処理が、時刻ｔ６からｔ８の区間でレベル４の処理が行われる。前記第１実施例で求めたと同様にして、本実施例についてメモリアクセスの総数を計算すると、
32x32x2(H,V)+16x16x2+8x8x2+4x4x2＝２７２０サイクル
となる。ただし、複数のアクセスを行う場合でも、それが同時刻で可能であれば、それを１回と数えた。この回数は従来技術の１／２であり、前記第１実施例と比べても２／３のアクセス回数で済む。
【００５９】
デコード時の動作は、以上に説明した動作と逆順になるが、これは以上の説明及び前記第１実施例に関連した説明から容易に理解されるであろうから、説明を割愛する。
【００６０】
＜第３実施例＞
図７は本発明の第３実施例を示すブロック図である。本実施例の全体的なブロック構成は基本的に図６に示したものと同様であるが、ウェーブレット変換部のメモリｍｅｍ１〜ｍｅｍ４及びフィルタ部１３０は省略され、制御部１１０のみ描かれている。
【００６１】
本実施例では、制御部１１０はエンコード用のブロックとデコード用のブロックがそれぞれ専用に割り当てられる構成とされる。すなわち、主制御部１１８、制御信号選択部１１１及びデータ選択部１１４は、エンコード専用のｅｍａｉｎブロック１１８ｅ、es_muxブロック１１８ｄ及びed_muxブロック１１４ｅと、デコード専用のｄｍａｉｎブロック１１８ｄ，ds_muxブロック１１１ｄ及びdd_muxブロック１１４ｄに分けられ、さらに主選択部（m_mux）１２０と開始終了制御部（ｓｅ）１２２が追加されている。制御部に対する入出力は図６と同様である。
【００６２】
さて、エンコード用のｅｍａｉｎ，es_mux及びed_muxの各ブロックについて注目すれば、その構成は図６の構成と同一であることが理解されよう。同様に、デコード用のｄｍａｉｎ，ds_mux及びdd_muxの各ブロックについても、その構成が図６の構成と同一であることが理解されよう。追加された主選択部（m_mux）１２０は、外部からの入力信号ｄｉｒに従って、es_mux及びed_muxの各ブロックの入力又は出力と、ds_mux及びdd_muxの各ブロックの入力又は出力を単に切り替えるに過ぎない。追加された開始終了制御部（ｓｅ）１２２は、外部からの入力信号ｓｔａｒｔ，ｄｉｒに従って、エンコード用のブロックを動作させるか、デコード用のブロックを動作させるかを選択するに過ぎない。すなわち、これらの２つのブロックの設計は非常に容易で、かつ、回路規模は非常に小さい。したがって、設計者は、メインブロックであるエンコード用の３つのブロック１１８ｅ，１１１ｅ，１１４ｅとデコード用の３つのブロック１１８ｄ，１１１ｄ，１１４ｄの設計に注力すればよい。しかも、エンコード用とデコード用それぞれのブロックの設計を別々に、あるいは独立して行うことができるため、設計の期間及び効率を飛躍的に向上させることが可能になる。
【００６３】
＜第４実施例＞
図８は本発明の第４実施例を示すブロック図であり、ウェーブレット変換部だけを表している。本実施例のウェーブレット変換部のブロック構成は、基本的に前記第１実施例又は第２実施例と同様であるが、本実施例ではメモリｍｅｍ１〜ｍｅｍ４とは独立に、バッファメモリ１０６（以下ｂｍｅｍと表記）を配置していることが異なる。バッファメモリｂｍｅｍは、メモリｍｅｍ１と同じワード数を有し、書き込みアドレスと読み出しアドレスが独立している。制御信号選択部１１１とデータ選択部１１４に、バッファメモリｂｍｅｍとの間の配線が追加されることは当然である。
【００６４】
本実施例における動作は、図９及び図４のタイミングチャートを参照すれば容易に理解されよう。すなわち、図４に示されるように前記第１実施例又は第２実施例では、水平処理の結果であるＳ係数及びＤ係数の書き込みはメモリｍｅｍ１〜ｍｅｍ４に再帰的に行われるが、本実施例では、図９に見られるように、水平処理の結果の書き込みはバッファメモリｂｍｅｍになされる。したがって、本実施例における総サイクル数は、３２画素×３２ラインのイメージデータの場合、前記第１実施例及び第２実施例と同様に２７２０サイクルとなり、従来技術の１／２の処理時間で済むことが理解されよう。
【００６５】
バッファメモリｂｍｅｍは、ウェーブレット処理中に水平処理の結果であるＳ係数及びＤ係数を格納するために用いられるが、ウェーブレット処理が終了した後は他のブロックで使用しても何ら問題がない。換言すれば、符号化部でワークメモリが必要であれば、このバッファメモリｂｍｅｍをワークメモリとして利用することができるのである。通常はワークメモリが用意されるケースが殆どであるので、本実施例の構成は好適である。
【００６６】
さらに、本実施例は、前記第１実施例で説明した、最も一般的なメモリをメモリｍｅｍ１〜ｍｅｍ４に使用した場合にその効果を発揮する。すなわち、ＩＣ内で比較的よく使用される、リードアドレスとライトアドレスが独立しているメモリを使用する必要がなくなるのである。リードアドレスとライトアドレスが独立したメモリは、多機能である故に、両アドレスが独立していない最も一般的なメモリに比べて面積が大きいという欠点がある。本実施例によれば、最小のメモリエリアで前記第３実施例と同等の高速処理を実現できる。
【００６７】
＜第５実施例＞
本発明の第５実施例によれば、前記第４実施例と同様な構成において、図１０に示すように、２つのフィルタ部（filterＨ）１３０ｈとフィルタ部（filterＶ）１３０ｖを用意し、前者を水平処理専用に割り当て、後者を垂直処理専用に割り当てる。なお、図１０では省略されているが、本実施例においては、メモリｍｅｍ１〜ｍｅｍ４及びバッファメモリｂｍｅｍすべてにリードアドレスとライトアドレスが独立しているメモリを用いている点に注意されたい。
【００６８】
本実施例の動作を図１１のタイミングチャートに基づいて説明する。時刻ｔ０でイメージデータ（ｄａｔａ）の入力が開始されると、これがフィルタ部１３０ｈに順次入力され、得られたＳ係数及びＤ係数はバッファメモリｂｍｅｍに書き込まれる。時刻ｔ１から１ライン目（ライン及び画素を０番目から数えていることに注意されたい）の水平処理が開始され、時刻ｔ２から２ライン目の水平処理が開始される。２ライン目の１画素目のＳもしくはＤ係数が出力されると、垂直処理におけるＤ係数の計算のためのデータが揃い、フィルタ１３０ｖ部を利用した垂直処理も開始される。ここで、垂直処理におけるＳＳ係数及びＤＳ係数の計算のためのデータは１ライン目の１画素目のＳもしくはＤ係数が出力された時点に既に揃い、出力されているが、このタイミングチャートでは垂直処理について記していることに注意されたい。さて、イメージデータはラスタ順で順次入力され、水平処理が施されたＳ及びＤ係数も順次バッファメモリｂｍｅｍに書き込むと同時に垂直方向の読み出しが行われ、さらに同時に垂直処理が施されたＳＳ，ＳＤ，ＤＳ及びＤＤ係数の書き込みが行われる。このような動作は２組のフィルタ部１３０ｈ，１３０ｖを備える構成であるが故に可能である。時刻ｔ４でレベル１の処理が終わってレベル２の処理が始まり、時刻ｔ７でレベル２の処理が終わりレベル３の処理が開始し、レベルｔ１０でレベル３の処理が終了してレベル４の処理が開始し、時刻ｔ１３で全処理が終了する。
【００６９】
以上のような水平処理と垂直処理の同時実行により、３２画素×３２ラインのイメージデータを処理する場合、本実施例における総サイクル数は１４８０サイクルとなり、これは従来技術の総サイクル数の約１／４であるため、非常な高速動作が可能である。
【００７０】
＜第６実施例＞
図１２は本発明の第６実施例を示すブロック図である。本実施例のブロック構成は基本的に前記第２実施例の場合と同様であるが、本実施例では、図１２に見られるように、Ｓ係数格納用の３本のラインメモリ１０７ｓ（line mem（Ｓ０），line mem（Ｓ１），line mem（Ｓ２））及びＤ係数格納用の３本のラインメモリ１０７ｄ（line mem（Ｄ０），line mem（Ｄ１），line mem（Ｄ２））を備え、さらにデータ選択部（d_mux）１１４がこれらラインメモリに対する信号線を備えている。
【００７１】
本発明の動作を図１３のタイミングチャートに基づいて説明する。時刻ｔ０でイメージデータ（ｄａｔａ）の入力が開始され、フィルタ部１３０に入力されて水平処理され、得られたＳ係数はラインメモリ１０７ｓ中のline mem(S0)に、Ｄ係数はラインメモリ１０７ｄ中のline mem(D0)に、それぞれ書き込まれる。時刻ｔ１から１ライン目の水平処理が開始されると、lime mem(S0)に書き込まれたＳ係数はline mem(S1)に順次シフトされる。line mem(D0)のＤ係数についても同様である。時刻ｔ２において１ライン目の水平処理が終了すると、垂直処理における各周波数帯信号の計算のためのデータが揃う。ここで一旦、イメージデータの入力が停止され、ラインメモリ１０７ｓに書き込まれたＳ係数及びラインメモリ１０７ｖに書き込まれたＤ係数に対して垂直処理が施され、０ライン目のＳＳ，ＳＤ，ＤＳ及びＤＤ係数がメモリｍｅｍ１に書き込まれる。時刻ｔ３でイメージデータの入力が再開され、３ライン目のＳ係数がline mem(S0)に、Ｄ係数がline mem(D0)にそれぞれ書き込まれる。１ライン前のＳ係数及びＤ係数はline mem(S1)及びline mem(D1)にシフトされる。この処理が順次施されれる。最後の２ライン分の垂直処理（時刻ｔ４からｔ５、時刻ｔ５からｔ６）は必要なＳ係数及びＤ係数が全て揃っている（最終ラインに対しては、ミラー処理が施される）ので、続けて処理される。時刻ｔ６でレベル１の処理が終了する。以下、時刻ｔ６からｔ９がレベル２の処理、時刻ｔ９からｔ１０がレベル３の処理、時刻ｔ１０からｔ１１がレベル４の処理である。
【００７２】
本実施例で用いられる６本のラインメモリはパラレルで読み出しを行うことができれば、一般的なレジスタ、あるいはシフトレジスタ等、どのようなものを用いてもよい。３２画素×３２ラインのイメージデータを処理する場合、本実施例での総サイクル数は
(32x32x2)+(16x16x2)+(8x8x2)+(4x4x2)=２７２０サイクル
となることが分かる。この処理サイクル数は従来技術の約１／２の処理時間であり、高速動作を小さな回路規模で実現することができる。
【００７３】
＜第７実施例＞
図１４は本発明の第７実施例を示すブロック図である。本実施例のブロック構成は基本的に前記第６実施例（図１２）と同様であるが、本実施例では図１４に見られるように２つのフィルタ部１３０ｈ，１３０ｖを備え、それぞれを水平処理と垂直処理専用に割り当てる。
【００７４】
本実施例の動作を図１５のタイミングチャートに基づいて説明する。時刻ｔ０でイメージデータ（ｄａｔａ）の入力が開始されると、Ｓ係数がline mem(S0)に、ｄ係数がline mem(D0)にそれぞれ書き込まれる。時刻ｔ１から１ライン目の水平処理が開始されると、line mem(S0)に書き込まれたＳ係数はline mem(S1)に順次シフトされる。line mem(D0)のＤ係数についても同様である。時刻ｔ２において１ライン目の水平処理が終了すると、垂直処理における各周波数帯信号の計算のためのデータが揃う。時刻ｔ２以降、水平処理は水平処理専用のフィルタ部１３０ｈにより行われ、結果がラインメモリ１０７ｓ，１０７ｄに順次書き込まれる。この書き込みを行うのと同時に読み出しが行われ、垂直処理専用のフィルタ部１３０ｖにより垂直処理が行われ、結果はメモリｍｅｍ１に書き込まれる。この処理が順次実行され、時刻ｔ３でレベル１の処理が終了する。時刻ｔ３からレベル２の処理が行われるのであるが、レベル２の処理の対象となるのはレベル１のＳＳ係数となる。以下、時刻ｔ３からｔ６がレベル２の処理、時刻ｔ６からｔ８がレベル３の処理、時刻ｔ８からｔ１０がレベル４の処理である。
【００７５】
本実施例で用いられる６本のラインメモリはパラレルで読み出しを行うことができれば、一般的なレジスタあるいはシフトレジスタ等、どのようなものを用いてもよい。以上のような動作は２つのフィルタ部を利用するが故に実現できる。３２画素×３２ラインのイメージデータを処理する場合、本実施例での総サイクル数は各レベルで２ライン分の増加となるので、１４８０サイクルとなることは図１５より明かであろう。この処理サイクル数は従来技術の約１／４の処理時間となり、非常な高速動作を小さな回路規模で実現することができる。
【００７６】
＜第８実施例＞
本発明の第８実施例によれば、基本的なブロック構成は前記第１実施例又は第２実施例と同様であるが、図１６に示すように、メモリｍｅｍ１〜ｍｅｍ４それぞれを、ＳＳ，ＳＤ，ＤＳ及びＤＤの各係数データ専用の４つの独立したメモリに分割した構成とし、さらに、図１８及び図１９に示すように、水平処理と垂直処理の両方に利用可能な２つのフィルタ部１３０_1，１３０_2を備え、それぞれを水平処理時と垂直処理時とで入出力を切り替えて用いる点が異なる。
【００７７】
本実施例の動作を図１７のメモリマップ、図１８及び図１９の接続図、及び図２０のタイミングチャートに基づいて説明する。図１７はメモリマップを示す図であり、前処理として、左側に示したようなラスタデータ（外部入力のイメージデータ又は前レベルのＳＳ係数データ）を予め右側に示したように４つの各係数専用メモリ上に再配置しておく必要がある。この再配置は以下のような規則で行う。例えばレベル１の処理の場合、メモリｍｅｍ１内のＳＳメモリの０ライン目の０画素目にはラスタデータ（ｄａｔａ）の０ライン目の０画素目のデータが格納され、ＳＤメモリの０ライン目の０画素目にはラスタデータの０ライン目の１画素目のデータが格納される。また、ＤＳメモリの０ライン目の０画素目にはラスタデータの１ライン目の０画素目のデータが格納され、ＤＤの０ライン目の０画素目にはラスタデータの１ライン目の１画素目のデータが格納される。すなわち、偶数ライン目（０ライン目も偶数と数える）の偶数画素目（０画素目も偶数と数える）がＳＳメモリに格納され、偶数ライン目の奇数画素目がＳＤメモリに格納され、奇数ライン目の偶数画素目がＤＳメモリに格納され、奇数ライン目の奇数画素目がＤＤメモリに格納されるのである。
【００７８】
このような形でメモリｍｅｍ１内の４つのメモリに再配置されたデータに対し、まずデータ選択部１１４によって図１８のような接続とし、２つのフィルタ部１３０_1，１３０_2を同時に利用して水平処理が行われる。メモリｍｅｍ１内のＳＳ〜ＤＤの各メモリはそれぞれ独立しているため、同時刻にリード／ライトを行うことができる。偶数ライン目をフィルタ部（filter1）１３０_1で処理し、奇数ライン目をフィルタ部（filter2）１３０_2で処理し、結果をそれぞれのメモリに同時に書き込むのである。次に、図１９のように接続が変更され、垂直処理が行われる。すなわち、偶数画素目をフィルタ部（filter1）１３０_1で処理し、奇数画素目をフィルタ部（filter２）１３０_2で処理し、結果をそれぞれのメモリに同時に書き込むのである。
【００７９】
以上はレベル１の処理の場合であるが、レベル２以降の処理の場合も、処理対象データが前レベルのＳＳ係数データであり、これを再配置してから処理することと、メモリｍｅｍ２〜ｍｅｍ４を利用することを除けば同じである。
【００８０】
次に、本実施例の動作を図２０のタイミングチャートに基づいて説明する。時刻ｔ０でイメージデータ（ｄａｔａ）の入力が開始されると、まずイメージデータ（ラスタデータ）が図１７に示すようにメモリｍｅｍ１内の４つのメモリに振り分けられて格納される（図中ｔｒ）。時刻ｔ１でイメージデータの入力が終了し、時刻ｔ２まで図１８に示す接続により水平処理が行われ、ついで時刻ｔ３まで図１９に示す接続により垂直処理が行われる。時刻ｔ３でレベル１の処理が終了する。時刻ｔ３からｔ４までの間で、メモリｍｅｍ１内のＳＳメモリに記憶されているレベル１のＳＳ係数データが、メモリｍｅｍ２内の４つのメモリに図１７に示すような規則に従って振り分けて格納される。時刻ｔ４でレベル１のＳＳ係数の入力が終了し、このＳＳ係数データに対する水平処理が時刻ｔ５まで行われ、ついで時刻ｔ６まで垂直処理が行われる。以下同様の処理が時刻ｔ１２まで施され、処理が終了する。
【００８１】
本実施例での総サイクル数は、３２画素×３２ラインのイメージデータを処理する場合、
32x32+(16x16x3)+(8x8x3)+(4x4x3)+(2x2x2)＝１８４３サイクル
となる。この処理サイクル数は従来技術の約１／３の処理時間であり、非常な高速動作を実現することができる。各レベルの処理に先だって行われるデータ振り分けのための時間を除いたサイクル数は僅か８２４サイクルだけで済む。
【００８２】
＜第９実施例＞
本発明の第９実施例によれば、前記第８実施例と同様の基本的ブロック構成において、前記第４実施例と同様にバッファメモリｂｍｅｍが設けられが、このバッファメモリｂｍｅｍもメモリｍｅｍ１〜ｍｅｍ４と同様、図２１に示すようにＳＳ，ＳＤ，ＤＳ，ＤＤの各係数専用の４つの独立したメモリに分割された構成とされる。ただし、バッファメモリｂｍｅｍを構成する４つのメモリはそれぞれ、メモリｍｅｍ１と同じワード数を有する。
【００８３】
本実施例の動作を図２２のタイミングチャートに基づいて説明する。時刻ｔ０でイメージデータ（ｄａｔａ）の入力が開始されると、このデータ（ラスタデータ）は前記第８実施例の場合と同様にメモリｍｅｍ１内の４つのメモリに振り分けられて格納される（図中ｔｒ）。時刻ｔ１でイメージデータ（ｄａｔａ）の入力が終了し、時刻ｔ２まで水平処理が行われ、その結果がバッファメモリｂｍｅｍに書き込まれる。このときの動作は、水平処理結果がバッファメモリｂｍｅｍに書き込まれる以外は前記第８実施例の場合と同様である（図１８参照）。
【００８４】
ついで時刻ｔ２からｔ３までバッファメモリｂｍｅｍからデータを読み出して垂直処理が行われる。各係数は、ＳＳ係数のみがメモリｍｅｍ２内の対応メモリに書き込まれ、他の３つの係数ＳＤ，ＤＳ及びＤＤはメモリｍｅｍ１内の対応メモリに書き込まれる。時刻ｔ３でレベル１の処理が終了する。本実施例ではバッファメモリｂｍｅｍからのレベル１のＳＳ係数の読み出しをレベル２の処理と並行して行うことができるため、時刻ｔ３から直ちにレベル２の処理に入れる。以降、時刻ｔ３からｔ５までレベル２の処理が行われ、時刻ｔ５からｔ７までレベル３の処理が行われ、時刻ｔ７からｔ９までレベル４の処理が行われる。
【００８５】
本実施例での総サイクル数は、３２画素×３２ラインのイメージデータを処理する場合
32x2+(16x16x2)+(8x8x2)+(4x4x2)+(2x2x2)＝１７０４サイクル
となることが図２２より分かる。この処理サイクル数は従来技術の１／３未満であり、高速動作を実現できる。最初にデータを振り分ける時間を除いたサイクル数は僅か６８０サイクルだけである。
【００８６】
＜第１０実施例＞
本発明の第１０実施例によれば、基本的ブロック構成は前記第１実施例、第２実施例、第３実施例、第６実施例又は第７実施例と同様とされるが、各レベルに対応したメモリｍｅｍ１〜ｍｅｍ４はそれぞれ、図２３に模式的に示すように、ワード数が１／４にされ、ビット深さがＳＳ，ＳＤ，ＤＳ及びＤＤの各係数に必要なビット深さの和と等しくされる。例えばＳＳ，ＳＤ，ＤＳ及びＤＤの各係数が８ビットであった場合、各メモリのビット深さは３２ビットとされる。もちろん、ＳＳ，ＳＤ，ＤＳ及びＤＤの各係数のビット数が異なっていても、必要なビット深さの和の分が確保されていれば全く問題はない。本実施例の動作は、例えば前記第８実施例（図１６）の構成に適用した場合、図２０と同様のタイミングチャートによって表すことができる。
【００８７】
本実施例によれば、各周波数帯信号毎に分かれていたメモリロケーションを１つのメモリロケーションにまとめることで、メモリサイズの縮小化を図ることができる。一般的に、ＩＣ内のメモリは、ワード数×ビット深さが同じ場合、ワード数が小さい方が面積が小さくなるからである。さらに、アドレス等の制御信号の数が１／４で済むので配線の引き回しが少なくなり、遅延時間が減少し、あるいはノイズが減少する、といった利点がある。
【００８８】
＜第１１実施例＞
本発明の第１１実施例によれば、バッファメモリｂｍｅｍを利用する前記第４実施例や第９実施例と同様な構成において、メモリｍｅｍ１〜ｍｅｍ４のみならずバッファメモリｂｍｅｍについても、前記第１０実施例に述べたように、ワード数が１／４、ビット深さがＳＳ，ＳＤ，ＤＳ及びＤＤの各係数で必要なビット深さの和となるようにする。図２４に、その様子を模式的に示す。ＳＳ，ＳＤ，ＤＳ及びＤＤ係数のビット数がそれぞれ異なっていても、必要なビット深さの和の分が確保されていれば全く問題はない。
【００８９】
本実施例の動作は、例えば前記第９実施例（図２１）の構成に適用した場合、図２２と同様なタイミングチャートにより表すことができる。本実施例によれば、各周波数帯信号毎に分かれていたメモリロケーションを１つのメモリロケーションにまとめることで、前記第１０実施例に述べたように、バッフアメモリｂｍｅｍも含めたメモリサイズの縮小化を図ることができ、さらに、アドレス等の制御信号の数の減少により遅延時間やノイズが減少する等の利点がある。
【００９０】
＜第１２実施例＞
図２５は本発明第１２の実施例を示すブロック図である。ウェーブレット変換部１００はレベル１用のウェーブレット変換単位モジュール１００_level1、レベル２用のウェーブレット変換単位モジュール１００_level2、レベル３用のウェーブレット変換単位モジュール１００_level3、及びレベル４用のウェーブレット変換単位モジュール１００_level4によって構成される。各ウェーブレット変換単位モジュールは、対応した１つのレベルの処理にのみ関わる点を別にすれば、前記各実施例と基本的に同様な構成であり、それぞれ、対応レベル用のメモリ、フィルタ部、それにメモリの制御、モジュール内のデータ転送制御、外部又は隣接レベルのモジュールとのデータ転送制御、及び外部又は隣接レベルのモジュールとの制御信号の授受のための制御部からなる。
【００９１】
すなわち、レベル１用のウェーブレット変換単位モジュール１００_level1は、メモリｍｅｍ１、制御部１１０_level1及びフィルタ部１３０_level1から構成される。メモリｍｅｍ１は、外部から入力されるイメージデータ（ｄａｔａ）と同数のワード数を有する。レベル２用のウェーブレット変換単位モジュール１００_level2は、メモリｍｅｍ２、制御部１１０_level2及びフィルタ部１３０_level2から構成され、メモリｍｅｍ２はメモリｍｅｍ１の１／４のワード数を有する。レベル３用のウェーブレット変換単位モジュール１００_level3は、メモリｍｅｍ３、制御部１１０_level3及びフィルタ部１３０_level3から構成される。メモリｍｅｍ３は、メモリｍｅｍ２の１／４のワード数を有する。レベル４用のウェーブレット変換単位モジュール１００_level4は、メモリｍｅｍ４、制御部１１０_level4及びフィルタ部１３０_level41から構成され、メモリｍｅｍ４はメモリｍｅｍ３の１／４のワード数を有する。
【００９２】
レベル１の制御部１１０_level1は、入力信号として外部からのｅｓｔａｒｔ信号、及びレベル２からのデコード終了信号ｄｅｎｄ１があり、出力信号として外部へのデコード終了信号ｄｅｎｄ及びレベル２へのエンコード終了信号ｅｅｎｄ１があり、入出力信号としてレベル２に対するデータ入出力信号ｄａｔａ１、メモリｍｅｍ１に対する入出力信号及びフィルタ部１３０_level1に対する入出力信号がある。レベル２の制御部１１０_level2の入力信号は、レベル１からのエンコードスタート信号ｅｅｎｄ１及びレベル３からのデコード終了信号ｄｅｎｄ２であり、出力信号は、レベル１へのデコード終了信号ｄｅｎｄ１及びレベル３へのエンコード終了信号ｅｅｎｄ２であり、入出力信号はレベル３に対するデータ入出力信号ｄａｔａ２、メモリｍｅｍ２に対する入出力信号及びフィルタ部１３０_level2に対する入出力信号である。レベル３の制御部１１０_level3の入力信号は、レベル２からのエンコードスタート信号ｅｅｎｄ２及びレベル４からのデコード終了信号ｄｅｎｄ３であり、出力信号は、レベル２へのデコード終了信号ｄｅｎｄ２及びレベル４へのエンコード終了信号ｅｅｎｄ３であり、入出力信号はレベル４に対するデータ入出力信号ｄａｔａ３、メモリｍｅｍ３に対する入出力信号及びフィルタ１３０_level3に対する入出力信号である。レベル４の制御部１１０_level4の入力信号は、レベル３からのエンコードスタート信号ｅｅｎｄ３及び外部からのデコードスタート信号ｄｓｔａｒｔであり、出力信号は、レベル３へのデコード終了信号ｄｅｎｄ３及び外部へのエンコード終了信号ｅｅｎｄであり、入出力信号はメモリｍｅｍ４に対する入出力信号及びフィルタ部１３０_level4に対する入出力信号である。
【００９３】
本実施例の動作のタイミングチャートは図４（エンコード時）又は図５（デコード時）とほぼ同様である。エンコード時の動作を説明する。ｅｓｔａｒｔ信号が入力されると、ウェーブレット変換単位モジュール１００_level1において、外部より入力されるイメージデータ（ｄａｔａ）に対し水平処理が行われ、ついで垂直処理が実行される。レベル１の処理が終了すると、これがｅｅｎｄ１信号により制御部１１０_level2に通知され、ウェーブレット変換単位モジュール２００_level2でレベル２の処理が開始される。以下、レベル４までの処理が終了すると、外部にｅｅｎｄ信号が出力される。
【００９４】
次にデコード時の動作を説明する。ｄｓｔａｒｔ信号が入力されると、符号化部２００より入力されるレベル４の係数データに対して、ウェーブレット変換単位モジュール２００_level4で垂直処理が実行され、ついで水平処理が実行される。レベル４の処理が終了しレベル３のＳＳ係数データが再生されると、これがｄｅｎｄ３信号によって制御部１１０_level3に通知され、ウェーブレット変換単位モジュール１００_level3によるレベル３の処理が開始する。このようなウェーブレット逆変換処理によってイメージデータの再生が終了すると、ｄｅｎｄ信号が外部に出力される。
【００９５】
本実施例によれば、全レベルにわたる動作全体を考慮しながら設計を行う必要がなく、１つの基本モジュールの設計のみを行えばよい。この設計結果を各レベルに適用することで所望レベル数のウェーブレット変換部の設計を行うことができるので、信頼性が向上し、またデータサイズの変更やレベルの追加等の設計変更要求があった場合でも速やかに対応することが可能となる。
【００９６】
＜第１３実施例＞
図２６は本発明の第１３実施例を示すブロック図である。本実施例のウェーブレット変換部１００は、基本的には前記第１２実施例と同様に４つのウェーブレット変換単位モジュールによって構成されるが、各ウェーブレット変換単位モジュールの内部構成が一部相違する。すなわち、各ウェーブレット変換単位モジュール１００_level1〜１００_level4に、例えば前記第４実施例や第５実施例と同様にバッファメモリ（ｂｍｅｍｉ）１０６_leveli（ｉ＝１〜４）を設け、さらに前記第４実施例と同様に水平処理用と垂直処理用の２つのフィルタ部１３０ｈ_leveli，１３０ｖ_leveliを持たせる。バッファメモリｂｍｅｍ１〜ｂｍｅｍ４はそれぞれメモリｍｅｍ１〜ｍｅｍ４と同じワード数を有する。図１３では、ウェーブレット変換単位モジュール１００_level3，１００_level4の内部構成が省略されている。
【００９７】
本実施例の動作は、図１１とほぼ同様のタイミングチャートにより表すことができる。エンコード時の動作を説明する。ｅｓｔａｒｔ信号が入力されると、ウェーブレット変換単位モジュール１００_level1において、外部から入力したイメージデータに対する水平処理と垂直処理がほぼ並行して実行される。レベル１の処理が終了すると、ｅｅｎｄ１信号により制御部１１０_level2に通知され、ウェーブレット変換単位モジュール１００_level2においてレベル２の処理が開始される。以下、レベル４までの処理が終了すると、外部にｅｅｎｄ信号が出力されエンコード処理を終了する。
【００９８】
次にデコード時の動作を説明する。ｄｓｔａｒｔ信号が入力されると、ウェーブレット変換単位モジュール１００_level4でウェーブレット逆変換の垂直処理、ついで水平処理が実行される。レベル４の処理が終了しレベル３のＳＳ係数が再生されると、ｄｅｎｄ３信号によって制御部１１０_level3に通知され、ウェーブレット変換単位モジュール１００_level3でレベル３の処理が開始される。このようにしてイメージデータ（ｄａｔａ）の再生処理が終了すると、外部にｄｅｎｄ信号が出力される。
【００９９】
本実施例は、前記第１２実施例よりも処理の高速化が可能になるとともに、前記第１２実施例と同様に設計の容易化、信頼性の向上、設計変更要求への対応の迅速化といった利点がある。
【０１００】
＜第１４実施例＞
図２７は本発明の第１４実施例を示すブロック図である。本実施例によれば、前記第１３実施例における各ウェーブレット変換単位モジュール１００_leveli内のバッファメモリｂｍｅｍｉに代えて、Ｓ係数の一時的保持のための３本のラインメモリ１０７ｓ_leveliとＤ係数の一時的保持のための３本のラインメモリ１０７ｄ_leveliが設けられる。当然、これらラインメモリに対する入出力信号を制御部１００_leveliは有する。なお、図２７では、ウェーブレット変換単位モジュール１００_level3，１００_level4の内部構成はウェーブレット変換単位モジュール１００_level1又は１００_level2と同様であるため省略し、他モジュール又は外部に対する入出力信号だけを示した。
【０１０１】
本実施例のエンコード時のタイミングチャートは図１５とほぼ同様である。  ｅｓｔａｒｔ信号が入力されると、ウェーブレット変換単位モジュール１００_level1においてレベル１の処理が実行される。レベル１の処理が終了すると、ｅｅｎｄ１信号によりウェーブレット変換単位モジュール１００_level2でレベル２の処理が開始される。レベル４までの処理が終了すると、外部にｅｅｎｄ信号が出力され、処理全体が終了する。デコード時においては、ｄｓｔａｒｔ信号が入力されると、ウェーブレット変換単位モジュール１００_level4で垂直処理と水平処理が行われる。レベル４の処理が終了しレベル３のＳＳ係数が再生されると、ｄｅｎｄ３信号によりウェーブレット変換単位モジュール１００_level3に通知され、レベル３の処理が開始される。イメージデータの再生処理が終了すると、外部にｄｅｎｄ信号が出力される。
【０１０２】
本実施例は、前記第１２実施例と同様な利点のほかに、前記第７実施例と同様の利点を有する。
【０１０３】
【発明の効果】
以上の詳細な説明から明らかなように、以下のような効果を得られる。
【０１０４】
請求項１の発明によれば、ウェーブレット変換のレベル毎にメモりを具備することにより、水平処理（垂直処理を先に行う場合は垂直処理）の時間を短縮し、処理を高速化することができる。レベル対応のメモリは、各レベルの演算において独立しており、周波数帯信号を最終的に蓄積しておくストレージであるとともに、水平処理（又は垂直処理）の結果の一時記憶のためのバッファメモリとしても働くので、アドレッシングの容易さ、あるいは設計の容易さを考慮し自由にアドレスマッピングをすることが可能である。従来は各レベル毎に３個のフィルタを用意し、それぞれに制御機構を用意する必要があったが、制御機構をフィルタから分離して制御部に集約するとともに全レベルに共通のフィルタ部を用意することにより、フィルタ部にフィルタ本来の演算機能のみを持たせれば済むようになり、またループ処理も可能になり、回路構成の簡略化及び規模縮小を図ることができ設計も容易になる。
【０１０５】
請求項２の発明によれば、各レベルの処理において対応したメモリの読み出しと書き込みを同時に行い、処理の一層の高速化を図ることができる。
【０１０６】
請求項３の発明によれば、制御部を構成する部分は機能的に単純であり回路規模も小さくなるため、制御部の設計もしくは設計変更が一層容易になるとともに信頼性を高めることができる。
【０１０７】
請求項４の発明によれば、制御部のエンコード用部分とデコード用部分を独立に扱うことが可能になり、それぞれの部分は機能的により単純になり、また回路規模もより小さくなるため、制御部の設計が一層容易になるとともに信頼性を高めることができる。
【０１０８】
請求項５の発明によれば、レベル対応のメモリのほかに、その最大のものと同じワード数を少なくとも持つバッファメモリを備え、このバッファメモリは他ブロックのバッファメモリとも共有可能であり、これを各レベルの処理に利用することにより、読み出しアドレスと書き込みアドレスが独立したメモリに比べてメモリエリアの小さな、両アドレスが独立していないメモリをレベル対応メモリとして用い、両アドレスが独立したメモリを用いる場合に匹敵する高速処理が可能になる。
【０１０９】
請求項６又は８の発明によれば、水平処理と垂直処理を同時に実行することにより、さらなる高速処理が可能になる。
【０１１０】
請求項７の発明によれば、一般的なレジスタあるいはシフトレジスタ等で構成可能なラインメモリを利用することにより、回路規模を増大させることなく高速処理を実現できる。
【０１１１】
請求項９又は１０の発明によれば水平処理及び垂直処理をそれぞれ並列化して一層の高速化を図ることができ、しかも、読み出しアドリスと書き込みアドレスが独立しない一般的なメモリをレベル対応のメモリやバッファメモリとして利用できるため、メモリエリアの増大を回避できる。
【０１１２】
請求項１１又は１２の発明によれば、レベル対応のメモリ又はレベル対応メモリ及びバッファメモリのメモリサイズを縮小することができるとともに、メモリ又はバッファに関連した配線による信号遅延やノイズを減らすことができる。
【０１１４】
請求項１３によれば、以上に述べたような利点を持つ符号化／復号化装置を実現することができる。
【図面の簡単な説明】
【図１】本発明の第１実施例の構成を示すブロック図である。
【図２】第１実施例におけるＳ係数及びＤ係数のためのメモリマップの一例を示す図である。
【図３】第１実施例におけるＳＳ，ＳＤ，ＤＳ，ＤＤ係数のためのメモリマップの一例を示す図である。
【図４】第１実施例におけるエンコード時のタイミングチャートである。
【図５】第１実施例におけるデコード時のタイミングチャートである。
【図６】本発明の第２実施例の構成を示すブロック図である。
【図７】本発明の第３実施例の構成を示すブロック図である。
【図８】本発明の第４実施例の構成を示すブロック図である。
【図９】第４実施例におけるエンコード時のタイミングチャートである。
【図１０】本発明の第５実施例の構成を示すブロック図である。
【図１１】第５実施例におけるエンコード時のタイミングチャートである。
【図１２】本発明の第６実施例の構成を示すブロック図である。
【図１３】第６実施例におけるエンコード時のタイミングチャートである。
【図１４】本発明の第７実施例の構成を示すブロック図である。
【図１５】第７実施例におけるエンコード時のタイミングチャートである。
【図１６】本発明の第８実施例におけるメモリの構成を示す図である。
【図１７】第８実施例におけるデータ再配置の説明図である。
【図１８】第８実施例における水平処理時の接続を示す図である。
【図１９】第８実施例における垂直処理時の接続を示す図である。
【図２０】第８実施例におけるエンコード時のタイミングチャートである。
【図２１】本発明の第９実施例におけるバッフアメモリの構成を示す図である。
【図２２】第９実施例におけるエンコード時のタイミングチャートである。
【図２３】本発明の第１０実施例におけるメモリの構成を示す図である。
【図２４】本発明の第１１実施例におけるメモリ及びバッファメモリの構成を示す図である。
【図２５】本発明の第１２実施例の構成を示すブロック図である。
【図２６】本発明の第１３実施例の構成を示すブロック図である。
【図２７】本発明の第１４実施例の構成を示すブロック図である。
【図２８】従来技術を示すブロック図である。
【図２９】従来技術におけるエンコード時のタイミングチャートである。
【図３０】ウェーブレット変換の水平処理及び垂直処理の演算方法の説明図である。
【図３１】イメージデータのメモリマップの一例を示す図である。
【図３２】レベル１のＳ係数及びＤ係数のためのメモリマップの一例を示す図である。
【図３３】レベル１のＳＳ係数、ＳＤ係数、ＤＳ係数及びＤＤ係数のためのメモリマップの一例を示す図である。
【図３４】レベル２のＳ係数及びＤ係数のためのメモリマップの一例を示す図である。
【図３５】レベル２のＳＳ係数、ＳＤ係数、ＤＳ係数及びＤＤ係数のためのメモリマップの一例を示す図である。
【図３６】本発明の第２実施例におけるエンコード時のタイミングチャートである。
【符号の説明】
１００  ウェーブレット変換部
１００_level1〜１００_level4  ウェーブレット変換単位モジュール
１０２_1〜１０２_4  メモリ（ｍｅｍ１〜ｍｅｍ４）
１０６  バッファメモリ（ｂｍｅｍ）
１０７ｓ，１０７ｓ_level1，１０７ｓ_level2  Ｓ係数用ラインメモリ
１０７ｄ，１０７ｄ_level1，１０７ｄ_level2  Ｄ係数用ラインメモリ
１１０，１１０_level1〜１１０_level4  制御部
１１１  制御信号選択部（ｓ_ｍｕｘ）
１１１ｅ  エンコード専用制御信号選択部（ｅｓ_ｍｕｘブロック）
１１１ｄ  デコード専用制御信号選択部（ｄｓ_ｍｕｘブロック）
１１４  データ選択部
１１４ｅ  エンコード専用データ選択部（ｅｄ_ｍｕｘブロック）
１１４ｄ  デコード専用データ選択部（ｄｄ_ｍｕｘブロック）
１１８  主制御部
１１８ｅ  エンコード専用主制御部（ｅｍａｉｎブロック）
１１８ｄ  デコード専用主制御部（ｄｍａｉｎブロック）
１２２  開始終了制御部（ｓｅブロック）
１３０，１３０_1，１３０_2  フィルタ部
１３０ｈ，１３０ｈ_level1〜１３０ｈ_level4  水平処理用フィルタ部
１３０ｖ，１３０ｖ_level1〜１３０ｖ_level4  垂直処理用フィルタ部
１３０_level1〜１３０_level4  フィルタ部
２００  符号化部
【図１】
0003655088.tif 000002
【図２】
0003655088.tif 000003
【図３】
0003655088.tif 000004
【図４】
0003655088.tif 000005
【図５】
0003655088.tif 000006
【図６】
0003655088.tif 000007
【図７】
0003655088.tif 000008
【図８】
0003655088.tif 000009
【図９】
0003655088.tif 000010
【図１０】
0003655088.tif 000011
【図１１】
0003655088.tif 000012
【図１２】
0003655088.tif 000013
【図１３】
0003655088.tif 000014
【図１４】
0003655088.tif 000015
【図１５】
0003655088.tif 000016
【図１６】
0003655088.tif 000017
【図１７】
0003655088.tif 000018
【図１８】
0003655088.tif 000019
【図１９】
0003655088.tif 000020
【図２０】
0003655088.tif 000021
【図２１】
0003655088.tif 000022
【図２２】
0003655088.tif 000023
【図２３】
0003655088.tif 000024
【図２４】
0003655088.tif 000025
【図２５】
0003655088.tif 000026
【図２６】
0003655088.tif 000027
【図２７】
0003655088.tif 000028
【図２８】
0003655088.tif 000029
【図２９】
0003655088.tif 000030
【図３０】
0003655088.tif 000031
【図３１】
0003655088.tif 000032
【図３２】
0003655088.tif 000033
【図３３】
0003655088.tif 000034
【図３４】
0003655088.tif 000035
【図３５】
0003655088.tif 000036
【図３６】
0003655088.tif 000037