(57)【特許請求の範囲】
【請求項１】
イメージデータ又は周波数帯信号データを一時的に記憶するための記憶手段、
フレームを分割したタイルを処理単位としてイメージデータのウェーブレット順変換処理を行って周波数帯信号データを生成するウェーブレット変換手段、
周波数帯信号データの符号化処理を行って圧縮コードを生成する符号化手段、
フレームメモリより前記ウェーブレット順変換処理の対象となるイメージデータを前記記憶手段へ転送する制御、前記記憶手段より前記ウェーブレット順変換処理によって生成された周波数帯信号データを前記フレームメモリへ転送する制御、前記フレームメモリより前記符号化処理の対象となる周波数帯信号データを前記記憶手段へ転送する制御、前記記憶手段と前記ウェーブレット変換手段との間でイメージデータ又は周波数帯信号データを転送する制御、前記記憶手段と前記符号化手段との間で周波数帯信号データを転送する制御を行う制御手段を有し、
前記制御手段の制御によって、前記記憶手段より前記ウェーブレット順変換処理によって生成された周波数帯信号データが周波数帯毎に連続して読み出され、該読み出されたデータが前記フレームメモリのライン毎のラスタ順の連続データとして前記フレームメモリへ転送されることを特徴とする符号化装置。
【請求項２】
前記記憶手段は、前記フレームメモリより転送された、ウェーブレット順変換処理の対象タイルのイメージデータ中のタイル境界部のデータを、当該タイルより後の他のタイルを対象としたウェーブレット順変換処理で参照するために一時的に保存するオーバーラップメモリを含み、
前記オーバーラップメモリへのデータの保存、及び、前記オーバーラップメモリに保存されたデータのウェーブレット順変換処理での参照が前記制御手段により制御されることを特徴とする請求項１に記載の符号化装置。
【請求項３】
ウェーブレット順変換処理時に前記記憶手段に記憶されているイメージデータ又は周波数帯信号データの一部を、該ウェーブレット順変換処理で参照するために一時的に保存するラインメモリを有し、
前記ラインメモリへのイメージデータ又は周波数帯信号データの保存、及び、前記ラインメモリに保存されたイメージデータ又は周波数帯信号データのウェーブレット順変換処理での参照が前記制御手段により制御され、かつ、前記制御手段の制御により、ウェーブレット順変換処理により生成された周波数帯信号データは周波数帯毎に集約された形で前記記憶手段に記憶されることを特徴とする請求項１に記載の符号化装置。
【請求項４】
前記記憶手段は複数のメモリブロックからなり、
前記フレームメモリから前記記憶手段に転送されたイメージデータは、前記制御手段の制御により、前記複数のメモリブロックの特定の記憶領域に分割されて記憶され、
ウェーブレット変換処理により生成された周波数帯信号データは、前記制御手段の制御により、周波数帯別に集約された形で、前記複数のメモリブロック中の対応したメモリブロックの対応した記憶領域に記憶されることを特徴とする請求項１記載の符号化装置。
【請求項５】
前記複数のメモリブロックはそれぞれ物理的に独立しており、それぞれ独立にアクセス可能であることを特徴とする請求項４に記載の符号化装置。
【請求項６】
前記各メモリブロックの各記憶領域は、そこに記憶される周波数帯信号データのビット深さ分のビット深さを持つことを特徴とする請求項４に記載の符号化装置。
【請求項７】
前記各メモリブロックは、
複数のメモリ要素と、
前記各メモリ要素に対する読み出し及び書き込みを制御する入力データ制御手段と、
前記各メモリ要素の出力データの外部出力を制御する出力データ制御手段とを有し、
外部からの入力信号として、読み出しアドレス、書き込みアドレス、読み出し許可、入力データ、ウェーブレット順変換のレベル、及び、当該メモリブロックに対する選択信号の各信号を有することを特徴とする請求項５に記載の符号化装置。
【請求項８】
前記記憶手段は、ワード単位でもビット単位でも読み出しと書き込みが可能な記憶要素であることを特徴とする請求項１に記載の符号化装置。
【請求項９】
前記記憶要素はレジスタであることを特徴とする請求項８に記載の符号化装置。
【請求項１０】
前記制御手段は、前記フレームメモリから符号化処理の対象となる周波数帯信号データを、前記記憶手段を介することなく、直接的に前記符号化手段へ転送する制御のための手段を含むことを特徴とする請求項１に記載の符号化装置。
【請求項１１】
周波数帯信号データ又はイメージデータを一時的に記憶するための記憶手段、
圧縮コードの復号化処理を行って周波数帯信号データを生成する復号化手段、
フレームを分割したタイルを処理単位として周波数帯信号データのウェーブレット逆変換処理を行ってイメージデータを生成するウェーブレット変換手段、
前記復号化手段より前記復号化処理によって生成された周波数帯信号データを前記記憶手段へ転送する制御、前記記憶手段より前記復号化処理によって生成された周波数帯信号データをフレームメモリへ転送する制御、前記フレームメモリより前記ウェーブレット逆変換処理の対象となる周波数帯信号データを前記記憶手段へ転送する制御、前記記憶手段より前記ウェーブレット逆変換処理によって生成されたイメージデータを前記フレームメモリへ転送する制御、前記記憶手段と前記ウェーブレット変換手段との間で周波数帯信号データ又はイメージデータを転送する制御を行う制御手段を有し、
前記制御手段の制御によって、前記記憶手段より前記復号化処理によって生成された周波数帯信号データが周波数帯毎に連続して読み出され、該読み出されたデータが前記フレームメモリのライン毎のラスタ順の連続データとして前記フレームメモリへ転送されることを特徴とする復号化装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ圧縮及び伸長の分野に係り、特に、ウェーブレット変換を利用する符号化及び復号化のための装置に関する。
【０００２】
【従来の技術】
データ圧縮は、大量のデータの蓄積や伝送のために非常に有用なツールである。例えば、文書のファクシミリ伝送や、ワールドワイドウェブのような画像の伝送に要する時間は、圧縮を使ってその画像の再生に必要とされるビット数を減らすと、飛躍的に短縮される。
【０００３】
従来より、多くの様々なデータ圧縮手法が存在している。最も広く普及している圧縮方式としてＪＰＥＧ（Joint Photographic Experts Group）の圧縮方式がある。ＪＰＥＧの圧縮方式においては、入力シンボルまたは輝度データは量子化されてから出力符号語へ変換される。量子化は、データの重要な特徴量を保存する一方、重要でない特徴量を除去することを目的としている。量子化に先立ち、エネルギー集中をするために変換が用いられるが、ＪＰＥＧではＤＣＴ（離散コサイン変換）が採用されている。ところが、ＤＣＴを用いるＪＰＥＧ方式に対し様々な欠点が指摘されている。例えば、ブロックノイズやモスキートノイズ（蚊が飛んでいるように見えるところから、このように呼ばれる）である。画像信号処理においては、これらの欠点を解消する効率的かつ高精度のデータ圧縮符号化方式を追求することに関心が集まっている。その方式の中に、ウェーブレット（wavelet）ピラミッド処理方式がある。
【０００４】
画像信号のような２次元信号にウェーブレット変換（順変換）を適用する場合には、入力信号に対し水平方向低域通過型フィルタＨＬ（Horizontal  Low）及び水平方向高域通過型フィルタＨＨ（Horizontal  High）を使用して、水平方向低域信号であるＳ（smooth）係数及び水平方向高域信号であるＤ（detail）係数に分離し、さらに、これらＳ係数及びＤ係数に対して、垂直方向低域通過型フィルタＶＬ（Vertical  Low）及び垂直方向高域通過型フィルタＶＨ（Vertical  High)を使用して水平方向低域−垂直方向低域信号であるＳＳ係数、水平方向低域−垂直方向高域信号であるＳＤ係数、水平方向高域−垂直方向低域信号であるＤＳ係数、及び水平方向高域−垂直方向高域信号であるＤＤ係数に分離する。
【０００５】
以上の一連の処理をレベルと呼び、１回の水平処理と垂直処理を行った出力をレベル１の出力と呼ぶ。さらに、以上の４種類の信号を周波数帯信号と呼ぶ。レベル２以上の出力を希望するときは、この処理がＳＳ係数に対して再帰的に行われる。レベル２の出力では、ＳＳ係数、１ＳＤ係数と２ＳＤ係数、１ＤＳ係数と２ＤＳ係数、１ＤＤ係数と２ＤＤ係数、の７つの周波数帯信号が得られる。以上の説明では、まず水平方向にフィルタを適用し、次に垂直方向にフィルタを適用したが、その順序は逆でもよい。
【０００６】
図１４にレベル４までの処理を行う場合の従来の構成を示した。図中、１０００はウェーブレット変換部、１１００はメモリ部、１２００は符号化／復号化部である。符号化時には、イメージデータdataがメモリ部１１００に取り込まれ、このイメージデータに対してウェーブレット変換部１０００によりウェーブレット順変換が施され、メモリ部１１００に周波数帯信号が得られる。符号化／復号化部１２００は、メモリ部１１００から周波数帯信号を取り込み、符号化して圧縮コードcodeを出力する。復号化時には、入力する圧縮コードcodeが符号化／復号化部１２００によって復号化され、メモリ部１１００上に周波数帯信号が復元される。この周波数帯信号に対してウェーブレット変換部１０００によってウェーブレット逆変換が施されることによりイメージデータがメモリ部１１００に復元され、これが外部に出力される。
【０００７】
ウェーブレット変換部１０００においてfilter１Ｈ，filter２Ｈ，filter３Ｈ，filter４Ｈは、水平方向低域通過型フィルタＨＬ及び水平方向高域通過型フィルタＨＨを含む水平方向フィルタである。これらフィルタ名中の数字１〜４はレベル番号を表し、Ｈは水平方向フィルタであることを意味する。同様にfilter１Ｖ１とfilter１Ｖ２，filter２Ｖ１とfilter２Ｖ２，filter３Ｖ１とfilter３Ｖ２，filter４Ｖ１とfilter４Ｖ２は、垂直方向低域通過型フィルタＶＬ及び垂直方向高域通過型フィルタＶＨを含む垂直方向フィルタである。これらのフィルタ名中のＶは垂直方向フィルタであることを意味し、Ｖの前の数字１〜４はレベル番号を表し、Ｖの後の数字１は水平方向低域信号（Ｓ係数）を入力とするフィルタであることを示し、Ｖの後の数字２は水平方向高域信号（Ｄ係数）を入力とするフィルタであることを示す。Controllerはメモリ部１１００とフィルタとの間のデータ転送等を制御するコントローラである。
【０００８】
以上のフィルタはどのような構成のものでもよいが、以下の説明では、水平方向低域通過型フィルタＨＬ及び垂直方向低域通過型フィルタＶＬとして、２組のデータを用い演算を行う２タップのフィルタを使用するものとする。水平方向高域通過型フィルタＨＨ及び垂直方向高域通過型フィルタＶＨとして、低域通過形フィルタＨＬまたはＶＬの出力であるＳ係数のうち、現在の位置と、１つ前及び１つ後の合計３組のデータを用い演算を行う６タップのフィルタを使用するものとする。
【０００９】
このようなフィルタを用いた場合の演算の例を図１５に示す。図１５の（ａ）は水平方向フィルタの処理を説明するもので、００は０ライン目の０画素目のデータを意味し、１２は１ライン目の２画素目のデータを意味する（このようにライン、画素とも０番目から数えるものとする）。水平方向低域通過型フィルタＨＬの０画素目の出力Ｓ００は、００データ及び０１データから求められ、また、１画素目の出力Ｓ０１は０２データ及び０３データから求められる。これに対し、水平方向高域通過型フィルタＨＨの０画素目の出力Ｄ００は、００データの２つ前及び１つ前のデータ（実在しない）と、００データと、０１データと、０２データと、０３データとから求められる。ここで、実在しない００データの２つ前と１つ前のデータを得るため、ミラーと呼ばれる処理を施す。具体的には、データを鏡像関係で折り返す処理を行う。これにより、２つ前と１つ前のデータは０１データと００データとなる。このようにして、Ｄ００は６画素のデータから計算される。
【００１０】
図１５の（ｂ）は垂直方向フィルタの処理を説明している。この処理は、垂直方向フィルタ処理によるＳ係数及びＤ係数を用いて垂直方向に行われる。実在しない係数は、水平方向フィルタの処理の場合と同様にミラー処理が施される。
【００１１】
図１６はフレームメモリなどにラスタ順に格納されたイメージデータを示す。図１７乃至図２０に、ウェーブレット変換処理のレベル２までの演算結果の格納方法の一例を示す。最初にフレームメモリからデータを読み出して水平処理を行い、その結果を再びフレームメモリに書き込む。この書き込みの際に、未処理のデータに上書きしてしまわないように、例えば図１７に示すようなマッピングでＳ係数及びＤ係数を書き込んでいく。図１７において、１Ｓ００と１Ｄ００はレベル１のアドレス００のＳ係数とＤ係数を意味する。図１８は垂直処理を行った後の各係数を書き込む際のマッピングの例を示す。ここまでがレベル１の各係数の格納方法である。図１９はレベル２の水平方向の各係数の格納方法の例を示す。レベル２の処理は１ＳＳ係数に対してのみ行われるため、網掛けされた部分のデータは用いられないことに注意されたい。ついで、図２０に示すようなマッピングで、レベル２の各係数が格納され、レベル２の処理が終了する。同様の処理が、レベル４まで順に繰り返される。１６画素×１６ラインのイメージデータを入力した場合において、レベル４まで処理したときの各レベルの各周波数帯信号の格納方法を図２１に示す。
【００１２】
以上のようにして得られた各レベルの周波数帯信号が符号化／復号化部１２００で符号化されて圧縮されるのであるが、符号化は通常、ビット処理が行われるため、前述のように、周波数帯信号を一旦、メモリ部１１００内のストレージに書き込んでおく必要がある。一般に用いられるストレージは半導体メモリである。符号化／復号化部１２００ではストレージに書き込まれた各周波数帯信号を参照してビット処理を行って符号化し、圧縮コードcodeとして出力する。圧縮コードcodeからイメージデータへの復元処理は前述の符号化処理と逆順で行われる。
【００１３】
なお、本発明に関連する符号化及び復号化装置、ウェーブレット変換部、あるいはフィルタについてのより詳細な情報は、特開平８−１３９９３５号公報などを参照されたい。また、類似の従来技術が特開平３−２７６８７号公報、特開平５−１６７９９７号公報、特開平５−１８３３８６号公報に開示されている。
【００１４】
【発明が解決しようとする課題】
イメージデータは通常、図１６に示したようにラスタデータとしてフレームメモリに書き込まれている。ウェーブレット変換部では、このラスタデータをラスタ順にメモリから読み出してウェーブレット変換を行う。この際、未処理のデータに対して上書きしないように、図２１に示したように、データを離散的にマッピングしてフレームメモリに書き込んでいる。
【００１５】
処理時間がそれほど問題にならないのであれば、フレームメモリにどのようなものを用いても問題はないが、高速処理を実現するためには、ＳＤＲＡＭあるいはＲＤＲＡＭなどの高速メモリを用いる必要がある。これらの高速メモリは、バースト転送、すなわち指定したアドレスを起点とした連続したアドレスに対応するデータを読み出し又は書き込みするような構成となっているため、離散的なアドレスをアクセスする場合にはウエイト時間が発生する。画素方向に対して離散的にアクセスする場合には、工夫をすればある程度はウエイトを小さくすることができる。しかし、ライン方向に対しては、構造的に必ずウエイト時間が発生してしまう。例えば、ライン方向に離散的なアドレッシングを行う場合（垂直処理の場合に必ず必要となる）にウエイトが２サイクル分発生すれば、垂直処理に対しては実際のメモリアクセスに必要な１サイクル分を含め、トータルで３倍の処理時間がかかってしまう。
【００１６】
このようなわけで、高速メモリの高速性を十分に活かすことができないという問題があった。ウェーブレット処理をしながらフレームメモリをアクセスする場合、内部との同期をとる必要があるが、この同期がとれるまでウエイト時間が発生するという問題もあった。ウェーブレット変換後のアドレスマップが図２１に示した如く複雑で離散的なものであるため、フレームメモリとのインターフェース部も複雑になるという問題もあった。
【００１７】
また、装置を１チップ化し、画像の処理単位であるタイルに対応する大きさのメモリを内部に設けようとした場合、チップ内部で使用できる１つのメモリ要素の大きさに制限があるため、２個以上のメモリ要素から構成せざるを得ないことがある。このような構成の場合、ウェーブレット変換部及び符号化／復号化部の両方のブロックからのメモリアクセスが複雑になる。すなわち、ウェーブレット変換部と符号化／復号化部双方の制御部が、規模が大きく複雑な構成になるという問題があった。
【００１８】
また、ウェーブレット変換部ではデータの入出力がワード単位であり、一方、符号化／復号化部ではデータの入出力がビット単位であるので、使用される記憶手段がウェーブレット変換部と符号化／復号化部とで異なっており、そのため記憶のためのチップ領域が大きくなってしまうという問題があった。
【００１９】
本発明は、前記問題点に鑑みてなされたものであり、その目的は、ウェーブレット変換を利用する符号化／復号化装置の動作の高速化、構成の簡略化、メモリ使用効率の向上などを図ることにある。
【００２０】
【課題を解決するための手段】
請求項１記載の発明は、イメージデータ又は周波数帯信号データを一時的に記憶するための記憶手段、フレームを分割したタイルを処理単位としてイメージデータのウェーブレット順変換処理を行って周波数帯信号データを生成するウェーブレット変換手段、周波数帯信号データの符号化処理を行って圧縮コードを生成する符号化手段、フレームメモリより前記ウェーブレット順変換処理の対象となるイメージデータを前記記憶手段へ転送する制御、前記記憶手段より前記ウェーブレット順変換処理によって生成された周波数帯信号データを前記フレームメモリへ転送する制御、前記フレームメモリより前記符号化処理の対象となる周波数帯信号データを前記記憶手段へ転送する制御、前記記憶手段と前記ウェーブレット変換手段との間でイメージデータ又は周波数帯信号データを転送する制御、前記記憶手段と前記符号化手段との間で周波数帯信号データを転送する制御を行う制御手段を有し、前記制御手段の制御によって、前記記憶手段より前記ウェーブレット順変換処理によって生成された周波数帯信号データが周波数帯毎に連続して読み出され、該読み出されたデータが前記フレームメモリのライン毎のラスタ順の連続データとして前記フレームメモリへ転送されることを特徴とする符号化装置である。
前記記憶手段より前記フレームメモリへの周波数帯信号データの転送の具体的な内容は、例えば後記実施例１との関連で説明するならば次の通りである。
１のタイルに対するウェーブレット順変換処理によって例えばＳＳ，４ＳＤ，４ＤＳ，４ＤＤ，２ＳＤ，２ＤＳ，２ＤＤ，１ＳＤ，１ＤＳ，１ＤＤの各周波数帯の信号が生成され、これが例えば図２１のようなマッピングで内部メモリ１１０に記憶される。そして、このような周波数帯信号データは周波数帯毎に連続して内部メモリ１１０より読み出され、該データはフレームメモリ１００のライン毎のラスタ順の連続データとしてフレームメモリ１００へ転送されることにより、フレームメモリ１００の当該タイルの領域に例えば図５に示すマッピングで記憶される。
例えば、２ＳＤの場合、そのデータは連続して読み出され、まずフレームメモリ１００のライン１に対応したラスタ順の連続データとして転送され、フレームメモリ１００のライン１に記憶される。２ＤＳのデータも連続して読み出され、ライン２のラスタ順の連続データとして順次転送され、フレームメモリ１００のライン２に記憶される。２ＤＤのデータも同様にライン３のラスタ順の連続データとして転送され、フレームメモリのライン３に記憶される。１ＳＤ，１ＤＳ，１ＤＤのデータも同様に周波数帯毎に連続して読み出され、ライン毎のラスタ順の連続データとして順次転送され、フレームメモリのライン４〜１５に順次記憶される。ただし、周波数帯ＳＳ，４ＳＤ，４ＤＳ，４ＤＤ，３ＳＤ，３ＤＳ，３ＤＤのデータは周波数帯毎に連続して読み出されるが、これらは係数の個数が少ないため、その全体が１ライン分のラスタ順の連続データとして転送され、ラインメモリ１００のライン０に記憶される。
【００２１】
請求項２記載の発明は、請求項１記載の発明に係る符号化装置であって、前記記憶手段は、前記フレームメモリより転送された、ウェーブレット順変換処理の対象タイルのイメージデータ中のタイル境界部のデータを、当該タイルより後の他のタイルを対象としたウェーブレット順変換処理で参照するために一時的に保存するオーバーラップメモリを含み、前記オーバーラップメモリへのデータの保存、及び、前記オーバーラップメモリに保存されたデータのウェーブレット順変換処理での参照が前記制御手段により制御されることを特徴とする符号化装置である。
【００２２】
請求項３記載の発明は、請求項１記載の発明に係る符号化装置であって、ウェーブレット順変換処理時に前記記憶手段に記憶されているイメージデータ又は周波数帯信号データの一部を、該ウェーブレット順変換処理で参照するために一時的に保存するラインメモリを有し、前記ラインメモリへのイメージデータ又は周波数帯信号データの保存、及び、前記ラインメモリに保存されたイメージデータ又は周波数帯信号データのウェーブレット順変換処理での参照が前記制御手段により制御され、かつ、前記制御手段の制御により、ウェーブレット順変換処理により生成された周波数帯信号データは周波数帯毎に集約された形で前記記憶手段に記憶されることを特徴とする符号化装置である。
【００２３】
請求項４記載の発明は、請求項１記載の発明に係る符号化装置であって、前記記憶手段は複数のメモリブロックからなり、前記フレームメモリから前記記憶手段に転送されたイメージデータは、前記制御手段の制御により、前記複数のメモリブロックの特定の記憶領域に分割されて記憶され、ウェーブレット変換処理により生成された周波数帯信号データは、前記制御手段の制御により、周波数帯別に集約された形で、前記複数のメモリブロック中の対応したメモリブロックの対応した記憶領域に記憶されることを特徴とする符号化装置である。
【００２４】
請求項５記載の発明は、請求項４記載の発明に係る符号化装置であって、前記複数のメモリブロックはそれぞれ物理的に独立しており、それぞれ独立にアクセス可能であることを特徴とする符号化装置である。
【００２５】
請求項６記載の発明は、請求項４記載の発明に係る符号化装置であって、前記各メモリブロックの各記憶領域は、そこに記憶される周波数帯信号データのビット深さ分のビット深さを持つことを特徴とする符号化装置である。
【００２６】
請求項７記載の発明は、請求項５記載の発明に係る符号化装置であって、前記各メモリブロックは、複数のメモリ要素と、前記各メモリ要素に対する読み出し及び書き込みを制御する入力データ制御手段と、前記各メモリ要素の出力データの外部出力を制御する出力データ制御手段とを有し、外部からの入力信号として、読み出しアドレス、書き込みアドレス、読み出し許可、入力データ、ウェーブレット順変換のレベル、及び、当該メモリブロックに対する選択信号の各信号を有することを特徴とする符号化装置である。
【００２７】
請求項８記載の発明は、請求項１記載の発明に係る符号化装置であって、前記記憶手段は、ワード単位でもビット単位でも読み出しと書き込みが可能な記憶要素であることを特徴とする符号化装置である。
【００２８】
請求項９記載の発明は、請求項８記載の発明に係る符号化装置であって、前記記憶要素はレジスタであることを特徴とする符号化装置である。
【００２９】
請求項１０記載の発明は、請求項１記載の発明に係る符号化装置であって、前記制御手段は、前記フレームメモリから符号化処理の対象となる周波数帯信号データを、前記記憶手段を介することなく、直接的に前記符号化手段へ転送する制御のための手段を含むことを特徴とする符号化装置である。
【００３０】
請求項１１記載の発明は、周波数帯信号データ又はイメージデータを一時的に記憶するための記憶手段、圧縮コードの復号化処理を行って周波数帯信号データを生成する復号化手段、フレームを分割したタイルを処理単位として周波数帯信号データのウェーブレット逆変換処理を行ってイメージデータを生成するウェーブレット変換手段、前記復号化手段より前記復号化処理によって生成された周波数帯信号データを前記記憶手段へ転送する制御、前記記憶手段より前記復号化処理によって生成された周波数帯信号データをフレームメモリへ転送する制御、前記フレームメモリより前記ウェーブレット逆変換処理の対象となる周波数帯信号データを前記記憶手段へ転送する制御、前記記憶手段より前記ウェーブレット逆変換処理によって生成されたイメージデータを前記フレームメモリへ転送する制御、前記記憶手段と前記ウェーブレット変換手段との間で周波数帯信号データ又はイメージデータを転送する制御を行う制御手段を有し、前記制御手段の制御によって、前記記憶手段より前記復号化処理によって生成された周波数帯信号データが周波数帯毎に連続して読み出され、該読み出されたデータが前記フレームメモリのライン毎のラスタ順の連続データとして前記フレームメモリへ転送されることを特徴とする復号化装置である。
【００３１】
【発明の実施の形態】
以下、添付図面を参照して本発明の実施の形態を説明する。なお、説明の便宜上、複数の図において同一部分又は対応部分に同一の参照符号が付されている。
【００３２】
＜実施例１＞
図１は本発明の一実施例による符号化／復号化システムのブロック図である。図１において、１００はフレームメモリ、１０１はウェーブレット変換部、１０２は符号化／復号化部、１０３は記憶部である。例えば、ウェーブレット変換部１０１、符号化／復号化部１０２及び記憶部１０３は同じ一つのチップ上に集積され、フレームメモリ１００は外付けのメモリとなる。フレームメモリ１００としては、例えばバースト転送の可能なＳＤＲＡＭが用いられる。
【００３３】
符号化／復号化部１０２は、符号化動作の場合に、ウェーブレット変換の周波数帯信号を符号化して圧縮コードcodeを生成する符号化部とし働き、復号化動作の場合に、圧縮コードcodeを復号化して周波数帯信号を生成する復号化部として働く。なお、符号化／復号化部１０２を符号化専用のものと置き換えた同様構成の符号化システムと、符号化／復号化部１０２を復号化専用のものと置き換えた同様構成の復号化システムも、本発明に包含される。
【００３４】
記憶部１０３は、内部メモリ（内部記憶手段）１１０と、データ転送の制御などのための手段としての３つの入出力インターフェース部１１１，１１２，１１３とからなる。入出力インターフェース部１１１は内部メモリ１１０とフレームメモリ１００との間のデータ転送などの制御を行い、入出力インターフェース部１１２は内部メモリ１１０とウェーブレット変換部１０１との間のデータ転送などの制御を行い、また、入出力インターフェース部１１３は内部メモリ１１０と符号化／復号化部１０２との間のデータ転送などの制御を行う。
【００３５】
フレームメモリ１００は、図２に示すように、Ｘ画素×Ｙラインの大きさを持つ。このフレームメモリ１００上のイメージデータに対するウェーブレット順変換などは、図２に示すように、Ｍ（ｘ方向）×Ｎ（ｙ方向）の大きさの領域（タイル）を処理単位として行われる。このタイル分割は、隣り合うタイル間がオーバーラップしないように行われる。
【００３６】
内部メモリ１１０は、図３に示すように、フレームメモリ１００の１つのタイルの大きさに対応した大きさを持つタイルメモリ１２０と、ａ×Ｎ画素の大きさを持つｘ方向（画素方向）オーバーラップメモリ１２１と、Ｘ×ａ画素の大きさのｙ方向（ライン方向）オーバーラップメモリ１２２とからなる。ここで、ａはウェーブレット変換部１０１に用いられるフィルタのタップ数で決まる。前記従来技術において述べたフィルタを用いる場合には、ａ＝２となる。
【００３７】
タイルメモリ１２０は、概念的には、図３に示すような位置関係のＡ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆ，Ｇ，Ｈ，Ｚの領域から構成される。領域Ｚ，Ｅ，Ｆ，Ｇ，Ｈの集まりからなるメモリ領域は、タイルの大きさと同じＭ×Ｎ画素の大きさを有し、フレームメモリ１００のあるタイルをウェーブレット順変換する場合には、当該タイルのイメージデータが１対１対応で当該メモリ領域に転送される。領域Ａ，Ｂ，Ｃ，Ｄは、図３に示すような位置関係で上記Ｍ×Ｎ画素のメモリ領域の外側に位置する。領域Ａと領域ＣはそれぞれＭ×ａ画素の大きさであり、領域Ｂと領域Ｄの大きさはそれぞれａ×Ｎ画素である。領域Ａ，Ｂ，Ｃ，Ｄとオーバーラップメモリ１２１，１２２の利用方法については、図４に関連して後述する。
【００３８】
次に、フレームメモリ１００上のイメージデータを符号化する場合の動作を説明する。図６は、この場合のウェーブレット順変換処理に関連した概略フローチャートである。
【００３９】
まず、記憶部１０３内の入出力インターフェース部１１１の制御により、フレームメモリ１００の処理対象となった一つのタイルと、領域Ｃ，Ｄに対応する領域のイメージデータがライン毎、ラスタ順に内部メモリ１１０へバースト転送され、タイルメモリ１２０へ１対１対応で書き込まれる（ステップ１）。
【００４０】
次に、入出力インターフェース部１１１（又は入出力インターフェース部１１２）の制御により、タイルメモリ１２０内のＨ領域とＧ領域（図３参照）のイメージデータがｘ方向オーバーラップメモリ１２１とｙ方向オーバーラップメモリ１２２にそれぞれコピーされる（ステップ２）。
【００４１】
次に、入出力インターフェース部１１１（又は１１２）の制御により、タイルメモリ１２０のＡ，Ｂ，Ｃ，Ｄに対する必要なデータコピーが行われる（ステップ３）。このデータコピーの内容は、処理対象のタイルの位置に依存する。フレームメモリ１００上でのタイルの位置関係は図４（ｂ）に代表して示すような９種類に分類される。入出力インターフェース部１１１（又は１１２）は、処理するタイルがいずれの位置にあるか、図４（ａ）の「判断」欄に記載された条件に従って判別し、その結果に応じて図４（ａ）の「コピー元」欄の記載に従ったデータコピーを行う。
【００４２】
最初は、図２中の斜線領域である左上のタイル（０）を処理するが、このタイルは図４（ｂ）に示す位置１にあるタイルである。この位置１にあるタイルの場合、ウェーブレット順変換処理に必要なＡ領域とＢ領域のデータは存在せず、従来技術に関連して述べたようなミラー処理を行う必要がある。このミラー処理として、入出力インターフェース部１１１（又は１１２）により、図４（ａ）の「コピー元」欄に記載されているように、タイルメモリ１２０のＡ領域へ、Ｅ領域とＨ領域の一部からデータがコピーされ、また、Ｂ領域に対し、Ｆ領域とＥ，Ｇ領域の一部からデータがコピーされる。かくして、タイルメモリ１２０内にタイル（０）のウェーブレット順変換処理に必要なデータが揃う。
【００４３】
次に、ウェーブレット変換部１０１は、入出力インターフェース部１１２を介してタイルメモリ１２０をアクセスし、ウェーブレット順変換処理を実行する（ステップ４）。例えば従来技術に関連して述べたと同様の４レベルのウェーブレット順変換が行われる。この際、タイルメモリ１２０に、例えば、レベル１の水平処理の結果であるＳ係数とＤ係数は図１７に示すようなマッピングで書き込まれ、レベル１の垂直処理の結果である１ＳＳ係数，１ＳＤ係数、１ＤＳ係数及び１ＤＤ係数は図１８に示すようなマッピングで書き込まれる。同様に、１ＳＳ係数に対するレベル２の水平処理の結果である２Ｓ係数と２Ｄ係数は図１９に示すようなマッピングで書き込まれ、レベル２の垂直処理の結果である２ＳＳ係数、２ＳＤ係数、２ＤＳ係数及び２ＤＤ係数は図２０のようなマッピングで書き込まれる。最終的に、レベル４の垂直処理が終わると、タイルメモリ１２０のＭ×Ｎ画素のメモリ領域に図２１に示すようなマッピングで各レベルの各周波数帯信号が書き込まれる。ただし、図２１はタイルサイズをＭ＝Ｎ＝１６としている（以下、同様）。
【００４４】
このようにしてタイル（０）のウェーブレット順変換が終了すると、タイルメモリ１２０のＭ×Ｎのメモリ領域のデータが、入出力インターフェース部１１１を介してフレームメモリ１００のタイル（０）の領域に書き出される（ステップ５）。この際、入出力インターフェース部１１１は、図２１に示すように離散的にマッピングされているタイルメモリ１２０上の各周波数帯信号データをライン毎、ラスタ順の連続したデータとなるように、タイルメモリ１２０をアドレッシングして読み出し、そのデータをライン毎、ラスタ順にフレームメモリ１００へ転送し、例えば図５に示すようなマッピングでフレームメモリ１００のタイル（０）の領域に書き込む。
【００４５】
このようにしてタイル（０）に対するウェーブレット順変換処理が終了すると、右隣のタイル（１）が処理の対象に選ばれ（ステップ６）、入出力インターフェース部１１１により、フレームメモリ１００のタイル（１）とその周囲のＣ，Ｄ領域に対応した領域のイメージデータがライン毎、ラスタ順に内部メモリ１１０へ転送され、タイルメモリ１２０に書き込まれる（ステップ１）。次に、Ｈ領域とＧ領域のデータがオーバーラップメモリ１２１，１２２へそれぞれコピーされる（ステップ２）。
【００４６】
タイル（１）は図４（ｂ）に示す位置２にあるタイルであるため、Ａ領域のデータは存在しないので、そのミラー処理として、入出力インターフェース部１１１（又は１１２）によりＥ領域とＨ領域の一部からＡ領域へデータがコピーされる（ステップ３）。また、領域Ｂに対応したフレームメモリ１００上のデータはタイル（０）の処理によって書き換えられているが、その書き換え前のデータがオーバーラップメモリ（ｘ）１２１に保存されている。この保存データがＢ領域にコピーされる（ステップ３）。これでタイル（１）のウェーブレット順変換に必要なデータがタイルメモリ１２０に揃った。
【００４７】
そして、ウェーブレット変換部１０１は入出力インターフェース部１１２を介してタイルメモリ１２０をアクセスしつつウェーブレット順変換を行う（ステップ４）。タイルメモリ１２０上に離散的にマッピングされた各レベルの各周波数帯信号データは、入出力インターフェース部１１１によってライン毎、ラスタ順のデータに変換されてフレームメモリ１００へ転送され、図５に示すようなマッピングで書き込まれる（ステップ５）。
【００４８】
タイル（ｎ−１）の手前のタイルまで順次右側のタイルが処理されるが、それらタイルは図４（ｂ）の位置２に示すタイルであるのでステップ３においてタイル（１）と同様のデータコピーが行われる。
【００４９】
右端のタイル（ｎ−１）は図４（ｂ）の位置３にあるタイルである。この位置にあるタイルを処理する場合、ステップ３において、データの存在しないＡ領域に対して、Ｅ領域とＨ領域の一部のデータがコピーされ（ミラー処理）、また、データの存在しないＤ領域に対してＨ領域のデータがコピーされる（ミラー処理）。さらに、データが書き換えられているＢ領域に対し、オーバーラップメモリ１２１に保存されているデータがコピーされる。
【００５０】
次に２列目の最初のタイル（ｎ）が処理されるが、これは図４（ｂ）の位置４にあるタイルである。この位置にあるタイルを処理する場合、ステップ３において、データが存在しないＢ領域に対しＦ領域、Ｅ領域の一部、及びＧ領域の一部のデータがコピーされる（ミラー処理）。データが書き換えられているＡ領域に対し、オーバーラップメモリ１１２に保存されているデータがコピーされる。
【００５１】
次に右隣のタイル（ｎ＋１）が処理されるが、これは図４（ｂ）の位置５にあるタイルである。この位置にあるタイルを処理する場合、ステップ３において、データが書き換えられているＡ領域とＢ領域に、オーバーラップメモリ１２２とオーバーラップ１２１から書き換え前のデータがそれぞれコピーされる。
【００５２】
その右側のタイル（右端のタイルを除く）の場合も、タイル（ｎ）と同様のコピー処理がステップ３で行われる。その右端のタイルは図４（ｂ）の位置６にあり、ステップ３では、データが書き換えられたＡ領域とＢ領域にオーバーラップメモリ１２２とオーバーラップメモリ１２１からデータがコピーされ、データの存在しないＤ領域に対しＨ領域のデータがコピーされる（ミラー処理）。
【００５３】
同様にして上から下、左から右へとタイルが順次処理されるが、それらタイルに対しては図４（ｂ）の位置４、位置５又は位置６のタイルに対応したデータのコピー操作がステップ３で行われる。
【００５４】
フレームメモリ１００の左下のタイルは図４（ｂ）の位置７にある。このタイルを処理する場合、ステップ３において、データが存在しないＢ領域にＦ領域と、Ｅ領域の一部と、Ｇ領域の一部からデータがコピーされ（ミラー処理）、データが存在しないＣ領域にＧ領域とＨ領域の一部のデータがコピーされる（ミラー処理）。また、データが書き換えられているＡ領域に、オーバーラップメモリ１２２からデータがコピーされる。
【００５５】
その右側のタイル（右端のタイルを除く）は図４（ｂ）の位置８にあるタイルである。これらタイルを処理する場合、ステップ３において、データが存在しないＣ領域にＧ領域とＨ領域の一部のデータがコピーされる（ミラー処理）。また、データが書き換えられているＡ領域とＢ領域に、オーバーラップメモリ１２２とオーバーラップメモリ１２１から書き換え前のデータがそれぞれコピーされる。
【００５６】
最後の右端（右下）のタイル、すなわち図４（ｂ）の位置９にあるタイルを処理する場合、ステップ３において、データが存在しないＣ領域にＧ領域とＨ領域の一部のデータがコピーされ（ミラー処理）、データが存在しないＤ領域にＨ領域のデータがコピーされる（ミラー処理）。また、データが書き換えられているＡ領域とＢ領域に、オーバーラップメモリ１２２とオーバーラップメモリ１２１から書き換え前のデータがそれぞれコピーされる。
【００５７】
以上に述べたように、フレームメモリ１００から内部メモリ１１０のタイルメモリ１２０へのイメージデータの転送も、タイルメモリ１２０からフレームメモリ１００への周波数帯信号データの転送も、ライン毎、ラスタ順に行われる。したがって、フレームメモリ１００としてＳＤＲＡＭを用いた場合、レイテンシを生じさせることなく、それらデータの転送をバースト転送により高速に行うことができる。
【００５８】
イメージデータをタイルメモリ１２０に読み込んだ後は、ウェーブレット順変換処理中にアクセスされるメモリは内部メモリ１１０だけであり、フレームメモリ１００をアクセスする必要がない。したがって、従来問題になっていた垂直処理時のフレームメモリ・アクセスに関連したレイテンシの発生は回避される。タイルメモリ１２０はフレームメモリ１００に比べ小容量であり、高速なランダムアクセスが可能な任意の種類のメモリとすることができるので、ウェーブレット順変換処理を極めて高速に行うことができる。また、入出力インターフェース部１１１では、タイルメモリ１２０上に離散的にマッピングされた周波数帯信号データをフレームメモリ１００へ転送する際に、周波数帯信号データをライン毎、ラスタ順の連続したデータとなるようにアドレッシングしてタイルメモリ１２０をアクセスするが、このアクセスも極めて高速に行うことが可能である。したがって、フレームメモリ１００よりイメージデータをタイルメモリ１２０へ転送する動作から、周波数帯信号をタイルメモリ１２０よりイメージメモリ１２０へ転送する動作までの一連の動作を高速に行うことができる。
【００５９】
１フレーム分のウェーブレット順変換処理が終了すると、フレームメモリ１００上の周波数帯信号データが記憶部１０３を介し符号化／復号化部１０２へ転送され符号化され、圧縮コードcodeとして外部へ出力される。符号化／復号化部１０２では、あるレベルのある種類の周波数帯信号データを連続して得る必要があるが、フレームメモリ１００に周波数帯信号データが図５に示すようにマッピングされているため、フレームメモリ１００から内部メモリ１１０への周波数帯信号データの転送をバースト転送により高速に行うことができる。例えば、１ＤＤ係数データについては、図５に●印で示したアドレス（x=0，y=12）からｘ方向（画素方向）にバースト転送し、次のラインのデータは、その１つ下のアドレス（0,13）からバースト転送すればよい。
【００６０】
周知のように、フレームメモリ１００として使用されることの多いＳＤＲＡＭは、ｘ方向（画素方向）にはバースト転送を行うので高速である。しかし、ｙ方向（ライン方向）の転送は、センスアンプにその行方向のデータが存在していれば即読み出し可能ではあるが、それが無ければ一旦プリチャージが必要で、そのために遅れ（レイテンシ）が生じる。図２１のように離散的にデータがマッピングされている場合、レイテンシの発生を避けられない。これに対し、本実施例においてはデータが図５に示すようにマッピングされているため、バースト転送が容易であり、プリチャージ時間を十分にとれるためレイテンシは発生しない（例えばｘ方向の４画素以上をバースト転送すれば、その間にプリチャージを終了させることができる）。なお、図５から理解されるように、レベル３とレベル４の周波数帯信号については離散的であるため、その転送の際にレイテンシが発生する。しかし、それら周波数帯信号の画素数が少ないため（例えばレベル３のある係数の総数はレベル１のある係数の総数の１／１６にすぎない）、そのレイテンシはデータ転送時間全体から見れば格別問題にならない。
【００６１】
フレームメモリ１００から内部メモリ１１０へ転送された周波数帯信号データは、入出力インターフェース部１１３を介して符号化／復号化部１０２へ転送される。符号化／復号化部１０２で必要なデータはビット単位である。内部メモリ１１０がデータの読み書きをワード単位でしか行うことができないメモリである場合には、入出力インターフェース部１１３においてワードから必要なビットを抽出する操作が行われる（後述）。
【００６２】
符号化についてさらに説明すれば、ＳＳ係数を除いた各レベルの各種類の周波数帯信号毎に、例えば４ＤＳ、４ＳＤ、４ＤＤ、．．．毎に、ビットプレーン（同じビット深さの位置の２次元のビット平面）単位で、そのＭＳＢ（最上位ビット）から下位ビットへと順に処理される。符号化の処理は、ビットプレーンの２（ｘ方向）×８（ｙ方向）画素単位（これは２×８の大きさのデータが存在する場合。それより小さい場合はその大きさ）で行われる。実際に処理されるのは、上述の大きさの単位毎であるが、その周辺も参照するため、周辺を含めた領域のデータ、例えば４×１０画素のデータがフレームメモリ１００から読み込まれる。さらに、同じ種類の１つ上のレベルの周波数帯信号が存在する場合は、それも参照されるので、同様にフレームメモリ１００から読み込まれる。最上位のビットプレーンの処理が終了すると、１つ下位のビットプレーンが同様に処理される。これを繰り返すことにより、１つのレベルの１種類の周波数帯信号の処理が終了する。これが全レベルの全種類の周波数帯信号に対して行われ、符号化が終了する。
【００６３】
１ＤＤ係数データの内部メモリ１１０への転送についてさらに説明すれば、１ＤＤ係数は、図５中の●印のアドレス（０，１２）を先頭として、４ライン分のデータがｘ方向にフレームメモリ・サイズＸと同じ大きさで存在する。まず、入出力インターフェース部１１１によって、フレームメモリ１００のアドレス（０，１２）を先頭アドレスとして、１ＤＤ係数データが内部メモリ１１０へバースト転送される。この際に転送するデータ数（ワード数）が指定されるが、この転送データ数は内部メモリ１１０のＺ，Ｅ，Ｇ，Ｇ，Ｈ領域からなるメモリ領域が１６×１６の大きさの場合は最大６４画素相当となる。バースト転送された６４画素分のＩＤＤ係数データは、内部メモリ１１０にアドレス（０，０）〜（１５，０）、アドレス（０，４）〜（１５，４）、．．．のように４ラインおきに書き込まれる。次に、フレームメモリ１００のアドレス（０，１３）が先頭アドレスとして指定され、６４画素分の１ＤＤ係数データがバースト転送され、内部メモリ１１０のアドレス（０，１）〜（１５，１）、アドレス（０，５）〜（１５，５）．．．のように４ラインおきに書き込まれる。このような形で内部メモリ１１０に書き込むのは、各係数の隣接関係を破壊しないためである。かくして、フレームメモリ１００上の一番左上（先頭）の１ＤＤ係数データが内部メモリ１１０の上１／４に、その右隣の１ＤＤ係数データが内部メモリ１１０の次の１／４に、その右隣の１ＤＤ係数データが内部メモリ１１０の次の１／４に書き込まれる。さらに、一つ上のレベルの２ＤＤデータが（０，３）を先頭として６４画素分、バースト転送され、内部メモリ１１０の一番下の領域に４ラインおきに書き込まれる。
【００６４】
以上は符号化を行う場合の説明である。復号化は、符号化の場合と逆の手順で行われる。すなわち、符号化／復号化部１０２によって、圧縮コードcodeが復号化されて周波数帯信号データが内部メモリ１１０上に復元され、これがフレームメモリ１００に転送される。最終的にフレームメモリ１００に図５に示すようなマッピングで１フレーム分の周波数帯信号データに得られる。より詳しく述べれば、復号化は、外部より入力した圧縮コードcodeから、あるレベルのある種類の周波数帯信号、例えば４ＤＤ係数が、ＭＳＢからビット単位で復号化され、ビットプレーンが再生される。復号化もビットプレーンの２（ｘ方向）×８（ｙ方向）画素単位（２×８の大きさのデータが存在する場合。それより小さい場合はその大きさの単位）で再生される。同じ種類の１つ上のレベルの周波数帯信号が存在する場合は、それも参照される。当該ビットプレーンの処理が終了すると、ＭＳＢ−１のビット深さのビットプレーンが処理される。同様の処理が全レベルの全種類の周波数帯信号に対して施され、符号化部／復号化部１０２の復号化処理が終了する。
【００６５】
フレームメモリ１００には図５に示すようなマッピングで周波数帯信号データが書き込まれる。すなわち、符号化時の読み出し処理が、復号化時は書き込み処理になる。この周波数帯信号データが１タイル分、内部メモリ１１０へ転送され、例えば図１０に示すようなマッピングで内部メモリ１１０に書き込まれる。この周波数帯信号データに対し、ウェーブレット変換部１０１によってウェーブレット逆変換処理が行われる。ウェーブレット逆変換処理はレベル４から行われ、また各レベルの垂直処理、水平処理がこの順で行われる。最初にＳＳ係数と４ＳＤ，４ＤＳ，４ＤＤの各係数から３ＳＳ係数が再生され、これがＳＳ係数と４ＳＤ，４ＤＳ，４ＤＤに上書きされる。再生された３ＳＳ係数と３ＳＤ，３ＤＳ，３ＤＤの各係数から２ＳＳ係数が再生され、これが３ＳＳ，３ＳＤ，３ＤＳ，３ＤＤに上書きされる。同様にウェーブレット順変換とは逆の手順が繰り返され、最終的にイメージデータが復元され、これがフレームメモリ１００に転送され、当該タイルの周波数帯信号データに上書きされる。フレームメモリ１００と内部メモリ１１０との間のデータ転送は、符号化の場合と同様にライン毎、ラスタ順にバースト転送によって行われる。
【００６６】
なお、タイルメモリ１２０のサイズは、ウェーブレット変換部１０１で要求される最大レベルに合わせて決定される。すなわち、最大レベルのＳＳ出力が１画素になるように選ばれる。本実施例では、レベル４であるのでタイルサイズはＭ＝Ｎ＝１６に選ばれている。レベル６であれば、Ｍ＝Ｎ＝６４に選ばれる。このようにすると、タイルメモリ１２０の使用効率が向上する。換言すれば、ウェーブレット変換のレベル数に応じて内部メモリ１１０のワード数を最適化し、メモリ使用効率を高めるわけである。このことは以下の各実施例においても同様である。
【００６７】
＜実施例２＞
図７は、本発明の他の実施例による符号化／復号化システムのブロック図である。前記実施例１と本実施例との構成上の相異は、図１と図７を対比すれば明らかなように、記憶部１０３内に、Ｍ／２のワード数（ただし、Ｍ≧Ｎ）を持つラインメモリ（ライン記憶手段）１１５が追加されている点である。後述のように、ウェーブレット順変換処理においてラインメモリ１１５を利用する点を除けば、全体的な動作は前記実施例１と同様である。
【００６８】
符号化の場合、フレームメモリ１００から１タイル分の処理のためのイメージデータが内部メモリ１１０のタイルメモリ１２０に読み込まれる。この際のオーバーラップメモリ１２１，１２２へのデータコピーとミラー処理などは前記実施例１において図３及び図４を参照して説明した通りである。
【００６９】
タイルメモリ１２０上のイメージデータに対しウェーブレット変換部１０１によりウェーブレット順変換が行われる。レベル１の水平処理は、図８に●印で示した０ライン目の０画素目から行われれるが、その開始に先だって、図８に斜線領域として示した（Ｍ／２＋１）画素目から最後の画素までのデータが入出力インターフェース部１１２によりラインメモリ１１５にコピーされる。そして、タイルメモリ１２０の０ライン目の水平処理が行われ、得られたＳ係数はタイルメモリ１２０の０ライン目の０画素目から順次書き込まれ、また、Ｄ係数は０ライン目の（Ｍ／２＋１）画素目から順次書き込まれる。この水平処理中に、タイルメモリ１２０の０ライン目の（Ｍ／２＋１）画素目以降に対しＤ係数が上書きされるが、その元のデータはラインメモリ１１５に保存されおり、ウェーブレット変換部１１５は入出力インターフェース部１１２を介してラインメモリ１１５のデータを参照することにより、最後の画素まで支障無く水平処理を行うことができる。
【００７０】
次の１ライン目の０画素目からの水平処理の際にも同様に、まずタイルメモリ１２０の１ライン目の（Ｍ／２＋１）画素目から最後の画素までのデータがラインメモリ１１５にコピーされた後、水平処理が行われ、Ｓ係数とＤ係数が同様に書き込まれる。上書きされたデータについても、０ライン目と同様にラインメモリ１１５のデータを参照することにより、支障無く最後の画素まで水平処理が行われる。以下同様にして、最後のラインまで水平処理が行われることにより、図８に示すようにタイルメモリ１２０の左半分にＳ係数、右半分にＤ係数が保存される。
【００７１】
次にレベル１の垂直処理が、図９に●印で示す画素から縦一列のＳ係数データについて行われるが、この場合にも図９に斜線領域として示した（Ｎ／２＋１）ライン目から最終ラインまでのＳ係数データがラインメモリ１１５に予めコピーされる。垂直処理により得られるＳＳ係数はタイルメモリ１２０の０ライン目から下へ向かって順に書き込まれ、ＳＤ係数は（Ｎ／２＋１）ライン目から下へ向かって順に書き込まれる。ＳＤ係数が上書きされる位置のＳ係数データはラインメモリ１１５に保存されているので、これを参照することによりウェーブレット変換部１０１は支障無くＳ係数データに対する垂直処理を行うことができる。同様にしてＳ係数データに対する垂直処理が行われ、（Ｍ／２＋１）画素目からはＤ係数に対する垂直処理が行われ、得られた１ＤＳ係数はタイルメモリ１２０の０ライン目から書き込まれ、１ＤＤ係数はタイルメモリ１２０の（Ｎ／２＋１）ライン目から書き込まれる。この場合にも同様に、タイルメモリ１２０の下半分のＤ係数データが、その垂直処理に先だってラインメモリ１１５にコピーされ、それがウェーブレット変換部１０１により参照されるため、支障無く垂直処理を行うことができる。かくして、レベル１のＳＳ係数、１ＳＤ係数、１ＤＳ係数、１ＤＤ係数のデータが図９に示すようなマッピングでタイルメモリ１２０上に得られる。
【００７２】
次にレベル１のＳＳ係数データに対して、レベル２の水平処理が行われる。この場合も、各ラインの水平処理を開始するに先だって、そのラインの（Ｍ／４＋１）画素目から後のＳＳ係数データがラインメモリ１１５にコピーされ、水平処理中にラインメモリ１１５上のＳＳ係数データが参照される。得られたＳ係数は０画素目から、Ｄ係数は（Ｍ／４＋１）画素目から、それぞれ書き込まれる。水平処理結果に対しレベル２の垂直処理が行われるが、この場合も処理する縦一列の下半分のＳ係数データ又はＤ係数データは予めラインメモリ１１５にコピーされ、処理中に参照される。得られたＳＳ係数又は２ＤＳ係数は０ライン目から書き込まれ、２ＳＤ係数又は２ＤＤ係数は（Ｎ／４＋１）ライン目から書き込まれる。
【００７３】
次にレベル２のＳＳ係数に対し、レベル３の水平処理が行われ、その結果に対して垂直処理が行われる。レベル３の処理により得られたＳＳ係数に対しレベル４の処理が行われる。レベル３とレベル４の処理においても、処理により得られた係数が上書きされる部分のデータがラインメモリ１１５にコピーされ、処理中に参照される。かくして、最終的な周波数帯信号データがタイルメモリ１２０上に図１０に示すようにマッピングされる。
【００７４】
タイルメモリ１２０に得られた周波数帯信号データは、入出力インターフェース部１１１を介して、前記実施例１の場合と同様にライン毎、ラスタ順に連続したデータに変換されてバースト転送によりラインメモリ１００へ転送される。この際、タイルメモリ１２０上に周波数帯信号データが図１０のように非離散的にマッピングされているため、例えば図２１に示すように離散的にマッピングされた場合に比べ、入出力インターフェース部１１２のタイルメモリ１２０に対するアドレッシングが簡単になる。例えば、図１０に示したように、１ＤＤ係数データの読み出しは、●印の位置を起点とする、連続したアドレッシングを行えば済む。他の係数データも、図１０に●印で示した位置を起点として同様に連続したアドレッシングによって読み出せばよい。したがって、入出力インターフェース部１１１のアドレス生成機構を大幅に単純化できる。また、ウェーブレット順変換処理中に、図８及び図９に示すようにタイルメモリ１２０上に係数データが連続的にマッピングされるため、図１７乃至図２０に示したように離散的にマッピングされる場合に比べ、タイルメモリ１２０に対する読み書きのための入出力インターフェース部１１２によるアドレッシングも単純になるため、入出力インターフェース部１１２のアドレス生成機構も単純化できる。
【００７５】
＜実施例３＞
本発明の他の実施例によれば、前記実施例２の構成において、内部メモリ１１０のタイルメモリが、図１１に示すような周波数帯信号の種類別に対応付けた４つの独立したメモリブロック（memSS，memSD，memDS，memDD）１２４に分割した構成とされる。それぞれのメモリブロックmemSS，memSD，memDS，memDDは、図３に示したタイルメモリ１２０を縦横に４分割したものに相当する記憶領域（網掛けのない領域）に、レベル２以降の対応した種類の周波数帯信号を格納するための記憶領域（網掛けした領域）を付加した如き構成のメモリである。
【００７６】
このような分割構成のタイルメモリへのイメージデータの読み込みは、前記実施例１及び２と同様に考えればよいが、１タイル分のイメージデータは４つのメモリブロックmemSS，memSD，memDS，memDDの網掛けされない記憶領域に分散された形で書き込まれる。イメージデータに対するミラー処理なども同様である。読み込まれたイメージデータに対するウェーブレット順変換は、基本的には前記実施例２と同様に考えればよいが、レベル１の各種類の係数データは、図１１に示すように、対応付けられたメモリブロックmemSS，memSD，memDS，memDDの網掛けされていない記憶領域に書き込まれ、レベル２からレベル４の各種類の係数データは図１１に示すように対応付けられた網掛けされた記憶領域に書き込まれる。
【００７７】
メモリブロックmemSS，memSD，memDS，memDDはそれぞれ物理的に独立しているので、それぞれを同時にアクセスし、Ｓ係数とＤ係数を同時に読み書きし、又はＳＳ，ＳＤ，ＤＳ，ＤＤを同時に読み書きすることができるため、より高速な処理が可能である。このことは、復号化時のウェーブレット逆変換処理についても同様である。また、各係数データは対応したメモリブロックの対応した記憶領域に連続的にマッピングされるので、ウェーブレット変換処理時の入出力インターフェース部１１２の内部メモリ１１０に対するアドレッシングが単純になる。また、最終的に必要となる各種の周波数帯信号データは、図１１を見れば明らかなように、すでに連続したデータとして内部メモリ１１０上にマッピングされた形となるため、それらをフレームメモリ１００へバースト転送する際に入出力インターフェース部１１１は複雑なアドレッシングを行う必要がない。
【００７８】
さらに、本実施例の構成は、ウェーブレット変換部１０１で使用される低域通過フィルタ又は高域通過フィルタの出力ビット深さが、イメージデータのビット深さと異なる場合に特に有効である。例えば、イメージデータが８ビット深さ、ＳＳ係数が８ビット深さ、ＳＤ係数とＤＳ係数が１２ビット深さ、ＤＤ係数が１６ビット深さである場合、それぞれの係数データのための記憶領域に、対応する係数のビット深さ分のビット深さを持たせることができる。したがって、メモリ全体に最大のビット深さであるＤＤ係数と同じ１６ビットの深さを持たせるよりも、内部メモリ１１０の総ビット数を減らしメモリコストを削減できる。
【００７９】
＜実施例４＞
本発明の他の実施例によれば、前記実施例３にけるタイルメモリを構成する各メモリブロック（memSS，memSD，memDS，memDD）１２４が図１２に示すような構成とされる。すなわち、各メモリブロック１２４は、独立した３個（一般的には複数個）のメモリ要素（mem1，mem2，mem3）２０２と、これらメモリ要素２０２に対する読み出し及び書き込みを制御するための入力データ制御部２００と、各メモリ要素２０２の出力データの外部出力を制御するための出力データ制御部２０１とからなり、入力信号としてｒａ（読み出しアドレス）、ｗａ（書き込みアドレス）、ｒｅｂ（読み出し許可）、ｗｅｂ（書き込み許可）、ｉ（入力データ）、ｌｅｖｅｌ（ウェーブレット変換のレベル）、ｓｅｌ（このメモリブロックに対する選択信号）の各信号を持ち、また、一つの出力信号ｏ（出力データ）を持ち、外部から見れば、複数のメモリ要素２０２をあたかも一つの大きなメモリ要素であるかのように扱うことができる構成である。
【００８０】
チップに内蔵できるメモリの大きさには限度がある。それを越えるサイズのメモリブロックが要求される場合、チップ内において複数のメモリ要素から各メモリブロックmemSS，memsD，memDS，memDDを構成せざるを得ない。この場合、本実施例のメモリブロックを用いれば、ウェーブレット変換部１０１及び符号化／復号化部１０２は、各メモリブロックが複数のメモリ要素から構成されていることを意識することなく、レベルとアドレスなどを指定するだけで、各メモリブロックをアクセスすることができるため、単純に複数のメモリ要素を用いる場合に比べ、両者からのメモリブロック・アクセスに関係した制御機構を簡単かつ小規模にできる。
【００８１】
＜実施例５＞
本発明の他の実施例によれば、前記各実施例の構成において、内部メモリ１１０のタイルメモリがワード単位でもビット単位でも読み出しと書き込みが可能な記憶要素、例えばレジスタを用いて構成される。そのような種類のメモリがあれば、それを用いてタイルメモリを構成してもよい。
【００８２】
ウェーブレット変換部１０１ではデータの操作はワード単位で行われるのに対し、符号化／復号化部１０２で必要なデータはビット単位である。したがって、タイルメモリがワード単位でしかデータの読み書きを行えない場合、符号化／復号化部１０２では、データを１ワードずつ読み込み、必要なビットだけを抽出する処理をし、当該ビットのみを書き換え（他のビットはマスクする等の方法で書き換えられないような処理が必要）、再びワード単位で書き戻すといった処理が必要になる。これに対し、タイルメモリがビット単位でもデータの読み書きが可能なものであれば、必要なビットだけを読み込み、処理をして同じアドレス及びビットプレーンに書き戻すだけで済むため、より効率的・高速な処理が可能である。
【００８３】
＜実施例６＞
本発明の他の実施例によれば、記憶部１０３が図１３に示すような構成に変更される。これ以外の構成は前記実施例１，２，３又は４と同様である。
【００８４】
図１３において、３００はフレームメモリ１００と内部メモリ１１０又は符号化／復号化部１０２との間のデータ転送を制御するための入出力インターフェース部であり、これは内部メモリ１１０とフレームメモリ１００との間のデータ転送を制御する入出力インターフェース部３０１、符号化／復号化部１０２とフレームメモリ１００との間のデータ転送を制御する入出力インターフェース部３０２、及び、データ選択部３０３からなる。
【００８５】
フレームメモリ１００上のイメージデータを符号化する場合、データ選択部３０３によって入出力インターフェース部３０１とフレームメモリ１００とが接続された形になり、前記実施例１，２，３又は４の場合と同様に、入出力インターフェース部３０１の制御によりフレームメモリ１００からイメージデータがバースト転送されて内部メモリ１１０のタイルメモリに書き込まれる。このイメージデータに対するウェーブレット順変換がウェーブレット変換部１０１によって行われ、得られた周波数帯信号データは入出力インターフェース部３０１の制御によりフレームメモリ１００へバースト転送される。フレームメモリ１００に得られた周波数帯信号データの符号化を行う場合、データ選択部３０３によってフレームメモリ１００と入出力インターフェース部３０２とが接続された形となり、入出力インターフェース部３０２の制御により、周波数帯信号データは内部メモリ１１０を介することなく直接的に符号化／復号化部１０２へ入力される。このように内部メモリ１１０へのデータ転送のステップが不要になるため、高速な符号化処理が可能である。
【００８６】
復号化の場合、データ選択部３０３によりフレームメモリ１００と入出力インターフェース部３０２とが接続された形となり、符号化／復号化部１０２により、内部メモリ１１０を介することなく直接的にフレームメモリ１００上に周波数帯信号データが復元される。復元された周波数帯信号に対するウェーブレット逆変換動作は前記実施例１，２，３又は４の場合と同様であり、データ選択部３０３によって入出力インターフェース部３０１が選択され、同入出力インターフェース部の制御により、周波数帯信号が内部メモリ１１０に読み込まれてウェーブレット変換部１０１によってウェーブレット逆変換を施されてイメージデータが再生され、これがフレームメモリ１００に書き出される。
【００８７】
以上、本発明の実施の形態を説明したが、本発明はそのような実施形態のみに限定されるものではなく、様々な変形が許されるものである。
【００８８】
【発明の効果】
以上に詳細に説明したように、本発明によれば、以下に述べるような多くの効果を得られる。
【００８９】
請求項１乃至１１の各項記載の符号化装置又は復号化装置においては、内部記憶手段からフレームメモリへの周波数帯信号データの転送をバースト転送で高速に行うことが可能である。また、フレームメモリ上に周波数帯信号が非離散的にマッピングされるためフレームメモリから内部記憶手段へ周波数帯信号データをバースト転送で高速に転送することも可能になる。また、ウェーブレット変換を内部記憶手段を利用して行うことができるため、ウェーブレット変換時にフレームメモリをライン方向にアクセスする必要がない。したがって、フレームメモリに対するアクセスに伴う遅れを回避し、符号化／復号化動作を高速化できる。
【００９０】
請求項３記載の符号化装置においては、前述のように、ラインメモリを用意することにより、ウェーブレット変換の段階で内部記憶手段に周波数帯信号データを非離散的にマッピングするため、その周波数帯信号データをフレームメモリへ転送する際に、その転送の制御のための手段が離散的なアドレスマッピングを行うことなくライン毎、ラスタ順のデータとして周波数帯信号データを転送することができ、したがって、その制御のための手段を簡略、小規模なものにできる。また、ウェーブレット変換時の内部記憶手段に対するアドレッシングも単純になるため、その制御機構も簡略化できる。
【００９１】
さらに、請求項４，５，６記載の符号化装置においては、ウェーブレット順変換時に内部記憶手段の複数のブロックを同時にアクセスすることが可能であるため、符号化動作の一層の高速化が可能である。また、各ブロックに、対応した種類の周波数帯信号に応じて必要最小限のビット深さを持たせることにより、内部記憶手段のためのメモリコストを減らすことができる。
【００９２】
請求項７記載の符号化装置においては、内部記憶手段の各ブロックが複数の記憶要素から構成されていることを意識することなく、ウェーブレット変換部及び符号化部から各ブロックをあたかも単一の記憶要素の如く扱ってアクセスすることができるため、そのアクセスに関連した制御機構を簡略化できる。
【００９３】
請求項８，９記載の符号化装置においては、前述のように、符号化部の処理を単純化・高速化し、符号化動作をより高速化することができる。
【００９４】
請求項１０記載の符号化装置においては、符号化部とフレームメモリとの間で内部記憶手段を介さず直接的にデータを転送することにより、より高速な符号化動作が可能になる。
【図面の簡単な説明】
【図１】  本発明の第１の実施例による符号化／復号化システムのブロック図である。
【図２】  フレームメモリと処理単位であるタイルの説明図である。
【図３】  タイルメモリとオーバーラップメモリの説明図である。
【図４】  （ａ）処理対象のタイルの位置の判断方法及びミラー処理などの内容を説明する表図である。
（ｂ）フレームメモリ上のタイルの位置関係を示す図である。
【図５】  フレームメモリにおける周波数帯信号データのマッピングを示す図である。
【図６】  イメージデータのウェーブレット変換処理に関連した動作を説明するためのフローチャートである。
【図７】  本発明の第２の実施例による符号化／復号化システムのブロック図である。
【図８】  タイルメモリに対する水平処理時におけるラインメモリの利用方法と係数データの格納方法を説明するための図である。
【図９】  タイルメモリに対する垂直処理時におけるインメモリの利用方法と係数データの格納方法を説明するための図である。
【図１０】  タイルメモリにおける周波数帯信号データのマッピングを示す図である。
【図１１】  本発明の第３の実施例におけるタイルメモリの構成と周波数帯信号データの格納方法を示す図である。
【図１２】  本発明の第４の実施例におけるメモリブロックの構成を示すブロック図である。
【図１３】  本発明の第５の実施例による圧縮／伸長システムのブロック図である。
【図１４】  従来技術を説明するためのブロック図である。
【図１５】  ウェーブレット変換の水平処理及び垂直処理における演算を説明するための図である。
【図１６】  イメージデータのメモリマップを示す図である。
【図１７】  １Ｓ係数及び１Ｄ係数のメモリマップを示す図である。
【図１８】  １ＳＳ係数、１ＳＤ係数、１ＤＳ係数及び１ＤＤ係数のメモリマップを示す図である。
【図１９】  ２Ｓ係数及び２Ｄ係数のメモリマップを示す図である。
【図２０】  ２ＳＳ係数、２ＳＤ係数、２ＤＳ係数及び２ＤＤ係数のメモリマップを示す図である。
【図２１】  レベル４の各係数のメモリマップを示す図である。
【符号の説明】
１００  フレームメモリ
１０１  ウェーブレット変換部
１０２  符号化／復号化部
１０３  記憶部
１１０  内部メモリ
１１１，１１２，１１３  入出力インターフェース部
１１５  ラインメモリ
１２０  タイルメモリ
１２１  ｘ方向オーバーラップメモリ
１２２  ｙ方向オーバーラップメモリ
１２４  メモリブロック
２００  入力データ制御部
２０１  出力データ制御部
２０２  メモリ要素
３０１，３０２  入出力インターフェース部
３０３  データ選択部
【図１】
0003719699.tif 000002
【図２】
0003719699.tif 000003
【図３】
0003719699.tif 000004
【図４】
0003719699.tif 000005
【図５】
0003719699.tif 000006
【図６】
0003719699.tif 000007
【図７】
0003719699.tif 000008
【図８】
0003719699.tif 000009
【図９】
0003719699.tif 000010
【図１０】
0003719699.tif 000011
【図１１】
0003719699.tif 000012
【図１２】
0003719699.tif 000013
【図１３】
0003719699.tif 000014
【図１４】
0003719699.tif 000015
【図１５】
0003719699.tif 000016
【図１６】
0003719699.tif 000017
【図１７】
0003719699.tif 000018
【図１８】
0003719699.tif 000019
【図１９】
0003719699.tif 000020
【図２０】
0003719699.tif 000021
【図２１】
0003719699.tif 000022