(57)【要約】【課題】符号化処理および復号処理におけるハードウエア資源の利用効率を向上させることができるようにする。【解決手段】エンコーダは、途中計算バッファ３２５を用いて所定の分割レベルまで分析フィルタ処理を行い、生成されたＬＬ成分を外部メモリ３８３に保持させる。エンコーダは、次の分割レベルの分析フィルタ処理を、外部メモリ３８３より読み出されたＬＬ成分に対して行う。エンコーダは、それ以降の分割レベルの分析フィルタ処理を、また途中計算バッファ３２５を用いて行う。本発明は、例えば、エンコーダまたはデコーダに適用することができる。【選択図】図３
2010136260.tif 000002
【特許請求の範囲】
【請求項１】
第１の記憶部と第２の記憶部を有し、
画像信号の周波数成分を低域成分および高域成分に分割する分析フィルタリングを水平方向および垂直方向の両方に対して行う分析フィルタ処理を、所定の分割レベルまで、前記分析フィルタ処理結果として得られる前記水平方向および前記垂直方向の低域成分の係数に対して再帰的に繰り返すフィルタ手段と、
前記分析フィルタ処理の演算過程として得られる係数、および、前記分析フィルタ処理の演算結果として得られる、所定の分割レベル以外の、前記水平方向および前記垂直方向の低域成分の係数を、前記第２の記憶部に比べて小容量であり、かつ、高速にアクセス可能な前記第１の記憶部に、前記分割レベル毎に独立して保持させ、必要に応じて前記第１の記憶部が保持している前記係数を読み出して前記分析フィルタ処理に提供する第１の制御手段と、
前記分析フィルタ処理の演算結果として得られる、前記所定の分割レベルの、前記水平方向および前記垂直方向の低域成分の係数を、前記第２の記憶部に保持させ、必要に応じて前記第２の記憶部が保持している前記係数を読み出して前記分析フィルタ処理に提供する第２の制御手段と
を備える情報処理装置。
【請求項２】
前記所定の分割レベルは分割レベル１であり、
前記第２の制御手段は、ベースバンドの前記画像信号に対する前記分析フィルタ処理の演算結果として得られる前記水平方向および前記垂直方向の低域成分の係数を、前記第２の記憶部に保持し、
前記第１の制御手段は、前記分析フィルタ処理の演算過程として得られる係数、および、前記分割レベル１より下位の前記分析フィルタ処理の演算結果として得られる前記水平方向および前記垂直方向の低域成分の係数を、前記第１の記憶部に保持する
請求項１に記載の情報処理装置。
【請求項３】
前記フィルタ手段は、前記分析フィルタ処理として、前記垂直方向の前記分析フィルタリングを実行可能なライン分の係数が用意され次第、前記垂直方向の前記分析フィルタリングを行い、前記水平方向の前記分析フィルタリングを実行可能なコラム分の係数が用意され次第、前記水平方向の前記分析フィルタリングを行う
請求項１に記載の情報処理装置。
【請求項４】
前記フィルタ手段は、所定のフィルタを用いたリフティング演算により、前記分析フィルタ処理を実行する
請求項１に記載の情報処理装置。
【請求項５】
前記フィルタ手段は、前記水平方向に前記分析フィルタリングを実行後、前記垂直方向に前記分析フィルタリングを実行する
請求項１に記載の情報処理装置。
【請求項６】
前記フィルタ手段は、前記垂直方向に前記分析フィルタリングを実行後、前記水平方向に前記分析フィルタリングを実行する
請求項１に記載の情報処理装置。
【請求項７】
前記第２の記憶部に比べて高速にアクセス可能な、２バンク構成の第３の記憶部をさらに有し、
前記第２の制御手段は、前記分析フィルタ処理の演算結果として得られる、前記所定の分割レベルの、前記水平方向および前記垂直方向の低域成分の係数を、前記第３の記憶部の各メモリバンクに交互に書き込み、前記第３の記憶部の一方のメモリバンクに前記係数を書き込むのと並行して、他方のメモリバンクに保持されている前記係数を読み出して前記第２の記憶部に保持させる
請求項１に記載の情報処理装置。
【請求項８】
前記第２の記憶部に比べて高速にアクセス可能な、２バンク構成の第３の記憶部をさらに有し、
前記第２の制御手段は、前記第２の記憶部より読み出した前記係数を、前記第３の記憶部の各メモリバンクに交互に書き込み、前記第３の記憶部の一方のメモリバンクに前記係数を書き込むのと並行して、他方のメモリバンクに保持されている前記係数を読み出して前記分析フィルタ処理に提供する
請求項１に記載の情報処理装置。
【請求項９】
前記フィルタ手段による前記分析フィルタ処理の演算結果として得られる各周波数成分の係数を符号化する符号化手段をさらに備える
請求項１に記載の情報処理装置。
【請求項１０】
情報処理装置の情報処理方法であって、
前記情報処理装置は、
第１の記憶部と、
第２の記憶部と
を備え、
第１の制御手段は、画像信号の周波数成分を低域成分および高域成分に分割する分析フィルタリングを水平方向および垂直方向の両方に対して行う分析フィルタ処理を、前記第２の記憶部に比べて小容量であり、かつ、高速にアクセス可能な前記第１の記憶部に、前記分析フィルタ処理の演算過程として得られる係数、および、前記分析フィルタ処理の演算結果として得られる前記水平方向および前記垂直方向の低域成分の係数を一時的に保持させて再利用することにより、第１の所定回数、前記分析フィルタ処理の演算結果として得られる前記水平方向および前記垂直方向の低域成分の係数に対して再帰的に繰り返し、
第２の制御手段は、前記第１の所定回数行われた前記分析フィルタ処理の演算結果として得られる前記水平方向および前記垂直方向の低域成分の係数を、前記第２の記憶部に保持させ、
第３の制御手段は、前記分析フィルタ処理を前記第１の所定回数実行後、前記第２の記憶部に保持されている前記係数を読み出し、
第４の制御手段は、前記第２の記憶部に保持されている前記係数を入力とし、前記分析フィルタ処理を、前記第１の記憶部に前記分析フィルタ処理の演算過程として得られる係数、および、前記分析フィルタ処理の演算結果として得られる前記水平方向および前記垂直方向の低域成分の係数を一時的に保持させて再利用することにより、第２の所定回数、前記分析フィルタ処理の演算結果として得られる前記水平方向および前記垂直方向の低域成分の係数に対して再帰的に繰り返す
情報処理方法。
【請求項１１】
第１の記憶部と第２の記憶部を有し、
画像信号の周波数成分の低域成分および高域成分を合成する合成フィルタリングを垂直方向および水平方向の両方に対して行う合成フィルタ処理を、前記合成フィルタ処理結果として得られる係数を、１つ上位の分割レベルの前記水平方向および前記垂直方向の低域成分の係数として再帰的に繰り返すフィルタ手段と、
前記合成フィルタ処理の演算過程として得られる係数、および、前記合成フィルタ処理の演算結果として得られる所定の分割レベル以外の係数を、前記第２の記憶部に比べて小容量であり、かつ、高速にアクセス可能な前記第１の記憶部に、前記分割レベル毎に独立して保持させ、必要に応じて前記第１の記憶部が保持している前記係数を読み出して前記合成フィルタ処理に提供する第１の制御手段と、
前記合成フィルタ処理の演算結果として得られる前記所定の分割レベルの係数を前記第２の記憶部に保持させ、必要に応じて前記第２の記憶部が保持している前記係数を読み出して前記合成フィルタ処理に提供する第２の制御手段と
を備える情報処理装置。
【請求項１２】
前記所定の分割レベルは分割レベル１であり、
前記第１の制御手段は、前記合成フィルタ処理の演算過程として得られる係数、および、最下位の分割レベルから前記分割レベル２までの前記合成フィルタ処理において演算結果として得られる前記水平方向および前記垂直方向の低域成分の係数を、前記第１の記憶部に保持し、
前記第２の制御手段は、前記分割レベル２における前記合成フィルタ処理の演算結果として得られる前記水平方向および前記垂直方向の低域成分の係数を、前記第２の記憶部に保持する
請求項１１に記載の情報処理装置。
【請求項１３】
前記フィルタ手段は、前記合成フィルタ処理として、前記垂直方向の前記合成フィルタリングを実行可能なライン分の係数が用意され次第、前記垂直方向の前記合成フィルタリングを行い、前記水平方向の前記合成フィルタリングを実行可能なコラム分の係数が用意され次第、前記水平方向の前記合成フィルタリングを行う
請求項１１に記載の情報処理装置。
【請求項１４】
前記フィルタ手段は、所定のフィルタを用いたリフティング演算により、前記合成フィルタ処理を実行する
請求項１１に記載の情報処理装置。
【請求項１５】
符号化データを復号する復号手段をさらに備え、
前記フィルタ手段は、前記復号手段により前記符号化データが復号されて得られた係数を入力とし、前記フィルタ処理を行う
請求項１に記載の情報処理装置。
【請求項１６】
情報処理装置の情報処理方法であって、
前記情報処理装置は、
第１の記憶部と、
第２の記憶部と
を備え、
第１の制御手段は、画像信号の周波数成分の低域成分および高域成分を合成する合成フィルタリングを垂直方向および水平方向の両方に対して行う合成フィルタ処理を、前記第２の記憶部に比べて小容量であり、かつ、高速にアクセス可能な前記第１の記憶部に、前記合成フィルタ処理の演算過程として得られる係数、および、前記合成フィルタ処理の演算結果として得られる係数を一時的に保持させて再利用することにより、第１の所定回数、前記合成フィルタ処理の演算結果として得られる係数を、１つ上位の分割レベルの前記水平方向および前記垂直方向の低域成分の係数として再帰的に繰り返し、
第２の制御手段は、前記第１の所定回数行われた前記合成フィルタ処理の演算結果として得られる前記係数を、前記第２の記憶部に保持させ、
第３の制御手段は、前記合成フィルタ処理を前記第１の所定回数実行後、前記第２の記憶部に保持されている前記係数を読み出し、
第４の制御手段は、前記第２の記憶部に保持されている前記係数を入力とし、前記合成フィルタ処理を、前記第１の記憶部に前記合成フィルタ処理の演算過程として得られる係数、および、前記合成フィルタ処理の演算結果として得られる係数を一時的に保持させて再利用することにより、第２の所定回数、前記合成フィルタ処理の演算結果として得られる係数を、１つ上位の分割レベルの前記水平方向および前記垂直方向の低域成分の係数として再帰的に繰り返す
情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および方法に関し、特に、符号化処理および復号処理におけるハードウエア資源の利用効率を向上させることができるようにした情報処理装置および方法に関する。
【背景技術】
【０００２】
近年、画像の大容量化に伴い、家庭でもフルHDTV（High Definition Television）（1920画素×1080画素）の映像が鑑賞できるようになってきた。またデジタルシネマでは４Ｋ×２Ｋ（4,096画素×2,160画素）という、HDTVの約４倍の解像度の画像が使用される。
【０００３】
デジタルシネマの用途では、DCI規格（Digital Cinema Initiatives）によって、映画配信のための圧縮フォーマットが決められている。それによれば、ISO（International Organization for Standardization）規格のJPEG（Joint Photographic Experts Group）2000 Part-1が圧縮・伸長技術として使用され、ビットレートは、画像サイズ4,096×2,160のXYZ 12ビット（フレームレート24Hz）の動画シーケンスに対して、ピークレートで250Mbpsとされる。従って、デジタルシネマにおいては、ベースバンドのマスタ画像が、このビットレートの符号化データにエンコードされて配信、及び上映される。
【０００４】
またデジタルシネマ以外の用途でも、例えば医用画像や衛星写真画像などをJPEG2000で圧縮するニーズが、今後急増する見込みである。いずれの場合も共通するのは、取り扱われる画像データが非常に大きな解像度であることである。JPEG2000では画像信号の周波数変換技術として、ウェーブレット変換を採用している。ウェーブレット変換は、画像信号を複数の周波数帯域に分割する優れた信号解析技術であり、JPEG2000のような画像圧縮以外にも、画像認識、地震波解析等にも応用されている。このウェーブレット変換においては、垂直方向と水平方向のそれぞれに対してフィルタリング処理が行われるが、その際、係数データを頻繁にバッファに保持させる（例えば、特許文献１参照）。
【０００５】
このようなウェーブレット変換を利用した画像符号化処理は、専用のハードウエアで実現される場合もあるが、ソフトウエアプログラムとして構成され、例えばパーソナルコンピュータ等でそのソフトウエアプログラムが実行されることにより実現される場合もある。
【０００６】
図１は、ウェーブレット変換を利用した画像符号化処理を実現するソフトウエアプログラムをコンピュータにおいて実行する場合の例を示す図である。図１に示されるように、一般的なコンピュータにおいては、ソフトウエアプログラムは、例えばCPU（Central Processing Unit）のような汎用のプロセッサ１において実行される。このような汎用のプロセッサ１には、一般的にキャッシュメモリと称される内部メモリ１１が設けられている。
【０００７】
内部メモリ１１は、プロセッサ外部に設けられる外部メモリに比べて小容量だが高速に読み書き可能という特徴を有する記憶領域であり、プロセッサ１内で実行される処理にのみ使用される。プロセッサ１内では、ソフトウエアプログラムが実行されることにより、ウェーブレット変換やエントロピ符号化等の処理が実行される。図１において、ウェーブレット変換部１２やエントロピ符号化部２６は、それらの機能を示す機能ブロックである。
【０００８】
プロセッサ１の外部より供給される原画像５１は、データ転送レートが低い外部バスを介して、矢印６１のように、内部メモリ１１に設けられた入力バッファ２１に一旦格納される。入力バッファ２１に格納された原画像５１は、ウェーブレット変換部１２の入力制御部２２により、データ転送レートが高い内部バスを介して、矢印６２のように読み出され、矢印６３のようにフィルタ処理部２３に供給される。フィルタ処理部２３の水平分析フィルタ部３１および垂直分析フィルタ部３２は、それぞれ、水平方向または垂直方向にフィルタ処理を行い、入力データを低域成分と高域成分に分割する。このときフィルタ処理部２３は、演算に使用するデータを内部メモリ１１に設けられた途中計算バッファ２５に一時的に保持させながら処理を行う。途中計算バッファ２５へのデータ入出力は、途中計算バッファ制御部２４を介して行われる。途中計算バッファ制御部２４は、矢印６４のように、データをフィルタ処理部２３より取得すると、それを、内部バスを介して、矢印６５のように途中計算バッファ２５に供給し、保持させる。また、途中計算バッファ制御部２４は、内部バスを介して、矢印６６のように途中計算バッファ２５より必要なデータを読み出し、それを、矢印６７のようにフィルタ処理部２３に供給する。
【０００９】
フィルタ処理部２３は、生成した各分割レベルのHL成分、LH成分、およびHH成分、並びに最低域成分を、矢印６８のように順次エントロピ符号化部２６に供給する。エントロピ符号化部２６は、供給される係数データを符号化し、生成した符号化データを、矢印６９のように出力制御部２７に供給する。出力制御部２７は、その符号化データを、内部バスを介して、矢印７０のように、内部メモリ１１に設けられた出力バッファ２８に供給し一時的に保持させる。そして、出力制御部２７は、所定のタイミングで符号化データを出力バッファ２８よりコードストリームとして出力させる。出力バッファ２８より出力された符号化データは、符号化コードストリーム５３として、外部バスを介して矢印７１のようにプロセッサ１から出力される。
【００１０】
以上のように、従来の一般的な符号化処理においては、各処理を高速に実行するために、データを保持するのに内部メモリ１１が利用される。
【００１１】
【特許文献１】特開２００８−０２２４０３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかしながら、内部メモリ１１は、通常の場合外部メモリよりも高価であり、また、プロセッサ１内に設置面積を要するという特徴も有する。したがって、プロセッサ１の製造コストを低減させるために、内部メモリ１１の容量は、一般的に外部メモリより小さく制限される。具体的には、外部メモリがギガバイト単位で構成されるのに対し、内部メモリは、多くても数メガバイト程度とされる場合が多い。例えば、Cellプロセッサ（登録商標）においては、１つのコアプロセッサに対し２５６キロバイトしか設けられていない。プログラム等も格納されるため、実際にデータ保持に利用可能な容量は、その半分程度となる場合も考えられる。
【００１３】
このように、内部メモリ１１は、製造コストの観点から、容量拡大に限界がある。これに対して、取り扱われる画像は年々高解像度化している。ウェーブレット変換では、効率の良い省メモリ型のウェーブレット変換であるラインベース・ウェーブレット変換を使っても、"原画像の水平サイズ×垂直数ライン分×ウェーブレット変換分割レベル分"のメモリ容量が必要になる。したがって、画像の高解像度化に伴い、ウェーブレット変換において一時的に保持されるデータ量も増大する。そのため、内部メモリ１１だけでは容量が不足し、外部メモリを利用する必要が生じてきた。
【００１４】
しかしながら、外部メモリの場合、安価に十分な容量を確保することは可能であるが、データの入出力に要する時間が、内部メモリ１１を利用する場合に比べて大幅に増大する。すなわち、上述したようなウェーブレット変換やエントロピ符号化処理の時間が増大してしまう恐れがあった。
【００１５】
このような符号化処理を専用のハードウエアにより実現する場合も、上述した内部メモリ１１のように高速なメモリをデータのバッファに用いるのが望ましいが、製造コストの観点から十分に容量を確保することは困難であることや、上述した外部メモリのように安価なメモリを用いた場合に処理速度が低下してしまうことは、上述した場合と同様である。
【００１６】
本発明はこのような問題を解決するためのものであり、データのバッファリングに高速のメモリと低速のメモリを併用し、かつ、計画的にバッファリングを行うことにより、符号化処理および復号処理におけるハードウエア資源の利用効率を向上させ、高速な符号化処理または復号処理を安価に実現するものである。
【課題を解決するための手段】
【００１７】
本発明の第１の側面は、第１の記憶部と第２の記憶部を有し、画像信号の周波数成分を低域成分および高域成分に分割する分析フィルタリングを水平方向および垂直方向の両方に対して行う分析フィルタ処理を、所定の分割レベルまで、前記分析フィルタ処理結果として得られる前記水平方向および前記垂直方向の低域成分の係数に対して再帰的に繰り返すフィルタ手段と、前記分析フィルタ処理の演算過程として得られる係数、および、前記分析フィルタ処理の演算結果として得られる、所定の分割レベル以外の、前記水平方向および前記垂直方向の低域成分の係数を、前記第２の記憶部に比べて小容量であり、かつ、高速にアクセス可能な前記第１の記憶部に、前記分割レベル毎に独立して保持させ、必要に応じて前記第１の記憶部が保持している前記係数を読み出して前記分析フィルタ処理に提供する第１の制御手段と、前記分析フィルタ処理の演算結果として得られる、前記所定の分割レベルの、前記水平方向および前記垂直方向の低域成分の係数を、前記第２の記憶部に保持させ、必要に応じて前記第２の記憶部が保持している前記係数を読み出して前記分析フィルタ処理に提供する第２の制御手段とを備える情報処理装置である。
【００１８】
本発明の第１の側面はまた、情報処理装置の情報処理方法であって、前記情報処理装置は、第１の記憶部と、第２の記憶部とを備え、第１の制御手段は、画像信号の周波数成分を低域成分および高域成分に分割する分析フィルタリングを水平方向および垂直方向の両方に対して行う分析フィルタ処理を、前記第２の記憶部に比べて小容量であり、かつ、高速にアクセス可能な前記第１の記憶部に、前記分析フィルタ処理の演算過程として得られる係数、および、前記分析フィルタ処理の演算結果として得られる前記水平方向および前記垂直方向の低域成分の係数を一時的に保持させて再利用することにより、第１の所定回数、前記分析フィルタ処理の演算結果として得られる前記水平方向および前記垂直方向の低域成分の係数に対して再帰的に繰り返し、第２の制御手段は、前記第１の所定回数行われた前記分析フィルタ処理の演算結果として得られる前記水平方向および前記垂直方向の低域成分の係数を、前記第２の記憶部に保持させ、第３の制御手段は、前記分析フィルタ処理を前記第１の所定回数実行後、前記第２の記憶部に保持されている前記係数を読み出し、第４の制御手段は、前記第２の記憶部に保持されている前記係数を入力とし、前記分析フィルタ処理を、前記第１の記憶部に前記分析フィルタ処理の演算過程として得られる係数、および、前記分析フィルタ処理の演算結果として得られる前記水平方向および前記垂直方向の低域成分の係数を一時的に保持させて再利用することにより、第２の所定回数、前記分析フィルタ処理の演算結果として得られる前記水平方向および前記垂直方向の低域成分の係数に対して再帰的に繰り返す情報処理方法である。
【００１９】
本発明の第２の側面は、第１の記憶部と第２の記憶部を有し、画像信号の周波数成分の低域成分および高域成分を合成する合成フィルタリングを垂直方向および水平方向の両方に対して行う合成フィルタ処理を、前記合成フィルタ処理結果として得られる係数を、１つ上位の分割レベルの前記水平方向および前記垂直方向の低域成分の係数として再帰的に繰り返すフィルタ手段と、前記合成フィルタ処理の演算過程として得られる係数、および、前記合成フィルタ処理の演算結果として得られる、所定の分割レベル以外の係数を、前記第２の記憶部に比べて小容量であり、かつ、高速にアクセス可能な前記第１の記憶部に、前記分割レベル毎に独立して保持させ、必要に応じて前記第１の記憶部が保持している前記係数を読み出して前記合成フィルタ処理に提供する第１の制御手段と、前記合成フィルタ処理の演算結果として得られる、前記所定の分割レベルの係数を、前記第２の記憶部に保持させ、必要に応じて前記第２の記憶部が保持している前記係数を読み出して前記合成フィルタ処理に提供する第２の制御手段とを備える情報処理装置である。
【００２０】
本発明の第２の側面はまた、情報処理装置の情報処理方法であって、前記情報処理装置は、第１の記憶部と、第２の記憶部とを備え、第１の制御手段は、画像信号の周波数成分の低域成分および高域成分を合成する合成フィルタリングを垂直方向および水平方向の両方に対して行う合成フィルタ処理を、前記第２の記憶部に比べて小容量であり、かつ、高速にアクセス可能な前記第１の記憶部に、前記合成フィルタ処理の演算過程として得られる係数、および、前記合成フィルタ処理の演算結果として得られる係数を一時的に保持させて再利用することにより、第１の所定回数、前記合成フィルタ処理の演算結果として得られる係数を、１つ上位の分割レベルの前記水平方向および前記垂直方向の低域成分の係数として再帰的に繰り返し、第２の制御手段は、前記第１の所定回数行われた前記合成フィルタ処理の演算結果として得られる前記係数を、前記第２の記憶部に保持させ、第３の制御手段は、前記合成フィルタ処理を前記第１の所定回数実行後、前記第２の記憶部に保持されている前記係数を読み出し、第４の制御手段は、前記第２の記憶部に保持されている前記係数を入力とし、前記合成フィルタ処理を、前記第１の記憶部に前記合成フィルタ処理の演算過程として得られる係数、および、前記合成フィルタ処理の演算結果として得られる係数を一時的に保持させて再利用することにより、第２の所定回数、前記合成フィルタ処理の演算結果として得られる係数を、１つ上位の分割レベルの前記水平方向および前記垂直方向の低域成分の係数として再帰的に繰り返す情報処理方法である。
【００２１】
本発明の第１の側面においては、画像信号の周波数成分を低域成分および高域成分に分割する分析フィルタリングを水平方向および垂直方向の両方に対して行う分析フィルタ処理が、所定の分割レベルまで、分析フィルタ処理結果として得られる水平方向および垂直方向の低域成分の係数に対して再帰的に繰り返され、分析フィルタ処理の演算過程として得られる係数、および、分析フィルタ処理の演算結果として得られる、所定の分割レベル以外の、水平方向および垂直方向の低域成分の係数が、第２の記憶部に比べて小容量であり、かつ、高速にアクセス可能な第１の記憶部に、分割レベル毎に独立して保持され、必要に応じて第１の記憶部が保持している係数が読み出されて分析フィルタ処理に提供され、分析フィルタ処理の演算結果として得られる、所定の分割レベルの、水平方向および垂直方向の低域成分の係数が、第２の記憶部に保持され、必要に応じて第２の記憶部が保持している係数が読み出されて分析フィルタ処理に提供される。
【００２２】
本発明の第２の側面においては、画像信号の周波数成分の低域成分および高域成分を合成する合成フィルタリングを垂直方向および水平方向の両方に対して行う合成フィルタ処理が、合成フィルタ処理結果として得られる係数を１つ上位の分割レベルの水平方向および垂直方向の低域成分の係数として、再帰的に繰り返され、合成フィルタ処理の演算過程として得られる係数、および、合成フィルタ処理の演算結果として得られる、所定の分割レベル以外の係数が、第２の記憶部に比べて小容量であり、かつ、高速にアクセス可能な第１の記憶部に、分割レベル毎に独立して保持され、必要に応じて第１の記憶部が保持している係数が読み出されて合成フィルタ処理に提供され、合成フィルタ処理の演算結果として得られる所定の分割レベルの係数が第２の記憶部に保持され、必要に応じて第２の記憶部が保持している係数が読み出されて合成フィルタ処理に提供される。
【発明の効果】
【００２３】
本発明によれば、データの符号化または復号を行うことができる。特に、符号化処理および復号処理におけるハードウエア資源の利用効率を向上させることができる。
【発明を実施するための最良の形態】
【００２４】
以下、発明を実施するための最良の形態（以下実施の形態とする）について説明する。なお、説明は以下の順序で行う。
１．第１の実施の形態（デバイス：符号化処理または復号処理を行うデバイスの構成例）
２．第２の実施の形態（符号化処理：内部メモリおよび外部メモリの使用を計画的に行う例）
３．第３の実施の形態（符号化処理：入出力バッファの構成例）
４．第４の実施の形態（復号処理：内部メモリおよび外部メモリの使用を計画的に行う例）
【００２５】
＜１．第１の実施の形態＞
［デバイスの構成例］
図２は、本発明を適用した符号化処理や復号処理を実行するデバイスの構成例を示すブロック図である。図２に示される情報処理システム１００は、エンコーダやデコーダのソフトウエアプログラムが実行されるハードウエア資源の例である。
【００２６】
図２に示されるように、情報処理システム１００は、エンコーダやデコーダを実現する情報処理装置１０１を有する。その情報処理装置１０１には、PCIバス（Peripheral Components Interconnect bus）１０２を介して各種装置が接続される。例えば、記憶装置１０３や、複数台のビデオテープレコーダ（VTR）であるVTR１０４−１乃至VTR１０４−Ｓが接続される。また、ユーザがこれらに対する操作入力を行うためのマウス１０５、キーボード１０６、並びに操作コントローラ１０７等も接続される。情報処理システム１００は、これらの各装置により構成されるシステムであり、インストールされたプログラムによって、画像符号化処理や画像復号処理等を行うシステムである。
【００２７】
例えば情報処理システム１００の情報処理装置１０１は、大容量の記憶装置１０３に記憶されている動画コンテンツを読み出して符号化し、得られた符号化データを記憶装置１０３に書き戻すことができるようになされている。また、例えば、情報処理装置１０１は、記憶装置１０３に記憶されている符号化データを読み出して復号し、得られた復号画像データ（動画コンテンツ）を記憶装置１０３に書き戻すことができるようになされている。さらに、情報処理装置１０１は、符号化処理により得られた符号化データや、復号処理により得られた復号画像データをVTR１０４−１乃至VTR１０４−Ｓを介してビデオテープに記録したりすることができるようにもなされている。また、情報処理装置１０１は、VTR１０４−１乃至VTR１０４−Ｓに装着されたビデオテープに記録された動画コンテンツを記憶装置１０３に取り込み得るようにもなされている。その際、情報処理装置１０１が、動画コンテンツを符号化するようにしてもよい。
【００２８】
情報処理装置１０１は、マイクロプロセッサ２０１、GPU（Graphics Processing Unit）２０２の他に、XDR（Extreme Data Rate）-RAM（Random Access Memory）２０３やサウスブリッジ２０４を有している。また、情報処理装置１０１は、HDD（Hard Disk Drive）２０５、USB（Universal Serial Bus）インタフェース（USB I/F）２０６、およびサウンド入出力コーデック２０７を有している。
【００２９】
GPU２０２は専用のバス２１１を介してマイクロプロセッサ２０１に接続される。XDR-RAM２０３は専用のバス２１２を介してマイクロプロセッサ２０１に接続される。サウスブリッジ２０４は、専用のバスを介してマイクロプロセッサ２０１のI/Oコントローラ２４４に接続される。このサウスブリッジ２０４には、HDD２０５、USBインタフェース２０６、および、サウンド入出力コーデック２０７も接続されている。このサウンド入出力コーデック２０７にはスピーカ２２１が接続されている。また、GPU２０２にはディスプレイ２２２が接続される。サウスブリッジ２０４には、さらに、PCIバス１０２を介して、マウス１０５、キーボード１０６、VTR１０４−１乃至VTR１０４−Ｓ、記憶装置１０３、並びに、操作コントローラ１０７が接続される。
【００３０】
マウス１０５およびキーボード１０６は、ユーザの操作入力を受け、PCIバス１０２およびサウスブリッジ２０４を介して、ユーザの操作入力の内容を示す信号を、マイクロプロセッサ２０１に供給する。記憶装置１０３およびVTR１０４−１乃至VTR１０４−Ｓは、所定のデータを記録または再生できるようになされている。PCIバス１０２にはさらに、必要に応じてドライブ１０８が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア１１１が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じてHDD２０５にインストールされる。
【００３１】
マイクロプロセッサ２０１は、OS（Operating System）等の基本プログラムを実行する汎用のメインCPUコア２４１を有する。また、メインCPUコア２４１には、共有バス２４５を介して複数（この場合８個）のRISC（Reduced Instruction Set Computer）タイプの信号処理プロセッサである、サブCPUコア２４２−１乃至サブCPUコア２４２−８が接続される。また、共有バス２４５には、例えば２５６[MByte]の容量を持つXDR-RAM２０３に対するメモリコントロールを行うメモリコントローラ２４３も接続される。さらに、共有バス２４５には、サウスブリッジ２０４との間でデータの入出力を管理するI/O（In/Out）コントローラ２４４も接続される。マイクロプロセッサ２０１は、これらの構成が１チップに集積された、マルチコア構成のプロセッサである。マイクロプロセッサ２０１のの動作周波数は、例えば４[GHz]である。
【００３２】
このマイクロプロセッサ２０１は、起動時、HDD２０５に格納された制御プログラムに基づき、HDD２０５に格納されている必要なアプリケーションプログラムを読み出してXDR-RAM２０３に展開し、この後このアプリケーションプログラム及びオペレータ操作に基づいて必要な制御処理を実行する。また、マイクロプロセッサ２０１は、ソフトウエアを実行することにより符号化処理や復号処理を実現する。例えば、マイクロプロセッサ２０１は、エンコードの結果得られた符号化ストリームを、サウスブリッジ２０４を介してHDD２０５に供給して記憶させることができる。また、マイクロプロセッサ２０１は、例えば、デコードした結果得られる動画像コンテンツの再生映像を、GPU２０２へデータ転送し、ディスプレイ２２２に表示させることができる。
【００３３】
マイクロプロセッサ２０１内の各CPUコアの使用方法は任意であるが、例えば、メインCPUコア２４１が、画像符号化処理や画像復号処理の制御に関する処理を行い、８個のサブCPUコア２４２−１乃至サブCPUコア２４２−８がそれぞれ、符号化処理または復号処理を行う。このような情報処理システム１００のマイクロプロセッサ２０１における８個のサブCPUコア２４２−１乃至サブCPUコア２４２−８のそれぞれには、キャッシュメモリが内蔵されている。つまり、８個のサブCPUコア２４２−１乃至サブCPUコア２４２−８は、それぞれ、各自の内部メモリであるキャッシュメモリと外部メモリであるXDR-RAM２０３の両方を利用することができる。
【００３４】
各キャッシュメモリは、サブCPUコア２４２−１乃至サブCPUコア２４２−８のそれぞれが独占的に使用することができ、かつ、共有バス２４５を介さずにデータの読み出しや書き込みを行うことができ、さらに、XDR-RAM２０３よりも高速に動作する。従って、キャッシュメモリは、XDR-RAM２０３よりも高速にデータの読み出しや書き込みが可能である。ただし、キャッシュメモリは、XDR-RAM２０３と比べて容量当たりの単価が高く、かつ、その容量が小さい。したがって、以下においては、キャッシュメモリの容量は有限であるとし、符号化処理および復号処理において、その有限の容量をより効率よく活用する方法について説明する。
【００３５】
なお、実際には、XDR-RAM２０３の容量も有限である。ただし、XDR-RAM２０３の場合、符号化処理や復号処理において必要な空き容量に比べて圧倒的に大きな容量を安価に実現することができるので、以下においてはXDR-RAM２０３の容量は十分に大きい（容量の制限を特に受けない）ものとして説明する。
【００３６】
なお、以下において、サブCPUコア２４２−１乃至サブCPUコア２４２−８を互いに区別して説明する必要の無い場合、サブCPUコア２４２と称する。このサブCPUコア２４２の数は、図２においては８個設けられるように示されているが、実際には任意である。各サブCPUコア２４２には、事前に、メインCPUコア２４１により符号化処理や復号処理を行うためのソフトウエアプログラムが割り当てられる（キャッシュメモリにロードされる）。各サブCPUコア２４２は、割り当てられたソフトウエアプログラムを実行することにより、符号化処理や復号処理を実現する。
【００３７】
＜２．第２の実施の形態＞
［エンコーダの構成例］
図３は、このようなサブCPUコア２４２において実現されるエンコーダ（符号化装置）の構成例を示すブロック図である。
【００３８】
図３において、プロセッサ３０１は、他と独立して動作する１つの演算処理部であり、図２のマイクロプロセッサ２０１におけるサブCPUコア２４２の１つに対応する。図３に示されるように、プロセッサ３０１は、内部メモリ３１１を有する。この内部メモリ３１１は、例えばSRAM（Static Random Access Memory）により構成され、プロセッサ３０１に内蔵される。内部メモリ３１１は、後述する外部メモリ３８３に対して、例えば、回路規模が大きく実装密度をあげにくい、消費電力が大きい、高速動作が可能、および、読み書きの手順が簡潔であるといった特徴を有する。つまり、内部メモリ３１１は、外部メモリ３８３に比べて、容量が小さく、高速にデータの読み出しや書き込みを行うことができる（内部メモリ３１１は、外部メモリ３８３より小容量かつ高速にアクセス可能である）。
【００３９】
この内部メモリ３１１の容量は任意であるが、容量を増大させるほど、プロセッサ３０１のコストは増大する。以下においては、２５６キロバイトとして説明する。ただし、内部メモリ３１１には、プロセッサ３０１において処理されるデータの他に、プロセッサ３０１において実行されるプログラムも保持される。したがって、データ保持に利用可能な容量はさらに少なくなる。以下においては、データの保持に利用可能な内部メモリ３１１の空き容量が、全体の半分の１２８キロバイトであるものとして説明する。
【００４０】
プロセッサ３０１は、内部メモリ３１１に保持されるプログラムを実行することにより、ウェーブレット変換部３１２、エントロピ符号化部３２６、および出力制御部３２７の機能を実現する。ウェーブレット変換部３１２は、プロセッサ３０１の外部より入力されるベースバンドの画像データに対してウェーブレット変換を行い、所定の分割レベルまで低域成分と広域成分を分割する。ウェーブレット変換は、入力データを低域成分と高域成分に分割するフィルタ処理を水平方向と垂直方向の両方に対して行う処理である。ウェーブレット変換処理においては、このようなフィルタ処理が、そのフィルタ処理により得られた水平方向および垂直方向に低域な成分（ＬＬ成分）に対して再帰的に繰り返される。図４は、ウェーブレット変換の様子を説明するための模式図である。図４の例に示されるように、ベースバンドの原画像３５１は、ウェーブレット変換により（ＬＬ成分に対してフィルタ処理が再帰的に繰り返されることにより）、所定の分割レベルまで低域成分と広域成分に分割されたウェーブレット変換係数３５２に変換される。ウェーブレット変換部３１２は、このようなフィルタ処理を行うフィルタ処理部３２３を有する。フィルタ処理部３２３は、水平分析フィルタ部３３１と垂直分析フィルタ部３３２を有する。
【００４１】
水平分析フィルタ部３３１は、入力画像データを画面水平方向に低域な成分と高域な成分に分割する水平分析フィルタ処理を行う。図５および図６は水平方向および垂直方向の分析フィルタ処理の様子の例を説明する模式図である。図５の左に示されるように、ベースバンドの原画像は、ライン単位に入力され、水平方向のフィルタリングを実行するのに必要なＭコラムのサンプルが用意でき次第、水平分析フィルタリングが実行される。このように水平フィルタリングが行われると、画像データは、図５の右に示されるように、水平方向に低域な成分（Ｌ）と高域な成分（Ｈ）とに分割される（水平分析フィルタ処理結果３５２Ａ）。水平フィルタリング処理は、各ラインについて行われる。
【００４２】
垂直分析フィルタ部３３２は、この水平分析フィルタ処理結果３５２Ａを画面垂直方向に低域な成分と高域な成分に分割する垂直分析フィルタ処理を行う。水平分析フィルタ処理がライン毎に行われ、垂直方向のフィルタリングを実行するのに必要なＮラインのサンプル（水平分析フィルタ処理結果３５２Ａ）が用意でき次第（図５右）、垂直分析フィルタ部３３２により垂直分析フィルタリングが実行される。この垂直分析フィルタリングは、水平方向の低域成分と高域成分のそれぞれについて行われる。その結果、水平分析フィルタ処理結果は、図６の左に示されるように、水平方向および垂直方向の両方に低域な成分（ＬＬ成分）、水平方向に高域で垂直方向に低域な成分（ＨＬ成分）、水平方向に低域で垂直方向に高域な成分（ＬＨ成分）、および、水平方向および垂直方向の両方に高域な成分（ＨＨ成分）の４つの成分のウェーブレット変換係数（以下、係数と称する）に分割される（分割レベル１の係数３５２Ｂ）。
【００４３】
水平分析フィルタ部３３１および垂直分析フィルタ部３３２は、次に、この分割レベル１の係数３５２Ｂの、水平方向および垂直方向の低域成分（ＬＬ成分）に対して、分析フィルタ処理を行い、図６の左に示されるように、分割レベル２の係数３５２Ｃ（ＬＬＬＬ成分、ＬＬＨＬ成分、ＬＬＬＨ成分、およびＬＬＨＨ成分）を生成する。このように、水平分析フィルタ部３３１および垂直分析フィルタ部３３２は、水平方向および垂直方向の両方に低域なＬＬ成分に対して分析フィルタ処理を再帰的に繰り返し、原画像３５１を所望の分割レベルまで分割する。
【００４４】
以上の２つのフィルタ処理は、図７に示されるように、水平フィルタリング、垂直フィルタリングの順に行われる。なお、図８に示されるように、フィルタ処理を垂直フィルタリング、水平フィルタリングの順に行うようにしても、得られる結果（係数データ）は図７の場合と同一である（完全に一致する）。つまり、水平フィルタリングと垂直フィルタリングのどちらを先に行うようにしてもよい。ただし、一般的に、原画像３５１の画像データは、時系列順にピクチャ毎に供給される。各ピクチャは、ライン毎に上から下に向かう順に供給される。各ラインは左から右に向かう順に画素毎に供給される。したがって、入力バッファ３２１に１ライン蓄積される毎に処理することができるので、水平フィルタ処理を先に行う方が入力バッファ３２１の蓄積量（遅延時間）を低減させることができる。
【００４５】
なお、図５および図６に示されるように、ベースバンドの原画像３５１のＮライン分の画像データから生成される分割レベル１の係数のライン数はＮ／２となる。さらにそれをフィルタ処理して生成される分割レベル２の係数のライン数は、Ｎ／４となる。このようにウェーブレット変換を繰り返す毎に（分割レベルが１つ進む毎に）、生成されるライン数は２のべき乗分の１の大きさで小さくなっていく。最終分割レベルの係数を１ライン生成するために必要なベースバンドのライン数（Ｎの最小値）は、そのフィルタリング処理を何回繰り返すか（最終分割レベルの階層数）によって決められる。通常、この階層数は予め定められる。この、最終分割レベルの係数を１ライン生成するために必要なベースバンドの画像データ（複数ライン分の画像データ）、または、各階層の係数をまとめてラインブロック（またはプレシンクト）と称する。図９は、そのラインブロックの様子を示す模式図である。図９において斜線で示される部分が１ラインブロックを構成する係数である。図９に示されるように、ラインブロックは、最終分割レベルである分割レベル３の各成分の１ライン分の係数、分割レベル２の各成分の２ライン分の係数、並びに、分割レベル１の各成分の４ライン分の係数により構成される。内部メモリ３１１に蓄積するデータ量と遅延時間を低減するためには、より少ないデータ量毎にフィルタ処理を行うのが望ましい。そこで、ウェーブレット変換部３１２は、このラインブロック単位にウェーブレット変換処理を行う。
【００４６】
水平分析フィルタ部３３１および垂直分析フィルタ部３３２は、フィルタリング演算を効率よく行うために、実際にはリフティング演算により行う。図１０はJPEG2000 Part-1でも採用されているドビッシー型の９×７実数精度フィルタをリフティング表現した図である。図中、最上部の一列が入力信号列である。データ処理は画面上から下方向に流れ、以下の４つのステップを経由して、Step３において高域係数、Step４において低域係数が出力される。
【００４７】
step１：ｄi1＝ｄi0＋α（ｓi0＋ｓi+10）  ・・・（１）
step２：ｓi1＝ｓi0＋β（ｄi-11＋ｄi1）  ・・・（２）
step３：ｄi2＝ｄi1＋γ（ｓi1＋ｓi+11）  ・・・（３）
step４：ｓi2＝ｓi1＋δ（ｄi-12＋ｄi2）  ・・・（４）
（α＝-1.586134342，β＝-0.0529801185，γ＝0.8829110755，δ＝0.4435068520）
【００４８】
上記より、Step１からStep３の途中の係数は、Step４が終了して低域係数が出力されるまでの間、記憶保持されなければならず、これが図３の途中計算バッファ３２５に記録される。そして、この係数は、ウェーブレット変換の演算を行う過程で、必要に応じて途中計算バッファ３２５から係数を読みだされて、次のStepの演算に利用される。
【００４９】
図１１は、９×７フィルタのリフティング演算（垂直方向）と途中計算バッファ内での演算過程を具体化した図である。図１１に示されるように、ライン６→ライン５→ライン４→ライン３→ライン２→ライン１の順番で、上から下方向にライン入力があるとき、高域成分の係数はStep３で出力され、低域成分の係数はStep４で出力される。このとき、低域成分の係数は、図１１に示されるように、ライン１が入力されて初めて出力される。このように９×７フィルタのリフティング演算を１通り行うためには、最低６ラインの入力が必要になる。また、次の低域成分の係数を出力するためには、今回算出した各係数（途中の係数も含む）と、２ライン分の入力が必要になる。なお、水平方向のフィルタ処理も同様に９×７フィルタを用いたリフティング演算により行うことができる。その場合、ラインとして説明したところをコラムと置き換えることにより、上述の説明を適用することができる。
【００５０】
図３に戻り、ウェーブレット変換部３１２は、入力制御部３２２、途中計算バッファ制御部３２４、および外部メモリ入出力制御部３８１を有する。入力制御部３２２は、フィルタ処理部３２３へのデータ入力を制御する。途中計算バッファ制御部３２４は、フィルタ処理部３２３により生成されるフィルタ処理結果や処理途中の係数の入出力を制御する。途中計算バッファ制御部３２４は、次回以降のフィルタ処理において再利用されるデータの保持を制御する。外部メモリ入出力制御部３８１は、所定のフィルタ処理の結果の保持を制御する。エントロピ符号化部３２６は、フィルタ処理部３２３より供給されるフィルタ処理結果の係数を符号化して符号化データを生成する。出力制御部３２７は、エントロピ符号化部３２６において生成される符号化データのプロセッサ３０１からの出力を制御する。
【００５１】
内部メモリ３１１には、ウェーブレット変換部３１２に入力される画像データ、フィルタ処理部３２３のフィルタ処理の処理結果や処理途中の係数データ、およびエントロピ符号化部３２６において生成された符号化データ等が一時的に保持される。内部メモリ３１１には、これらのデータを保持するために、入力バッファ３２１、途中計算バッファ３２５、入出力バッファ３８２、および出力バッファ３２８が形成される。入力バッファ３２１は、ウェーブレット変換部３１２に入力される前の画像データを保持する。入力バッファ３２１の読み出しは入力制御部３２２に制御される。途中計算バッファ３２５は、フィルタ処理結果または途中の係数データのうち、次回以降のフィルタ処理に使用される係数データを、分割レベル毎に独立して保持する。つまり、途中計算バッファ３２５は、分析フィルタ処理の演算過程として得られる係数、または、後述する第１の目標分割レベルより下位（第１の目標分割レベルを含む）の分析フィルタ処理の演算結果として得られるＬＬ成分の係数を、その分割レベル毎に保持する。その保持している係数は、必要に応じて読み出され、次回以降のフィルタ処理に提供される。途中計算バッファ３２５のデータの入出力は、途中計算バッファ制御部３２４により制御される。なお、この途中計算バッファ３２５は、外部メモリ３８３に比べて小容量であり、かつ、高速にアクセス可能である。入出力バッファ３８２は、フィルタ処理結果であり、次回のフィルタ処理に利用する係数データのうち、外部メモリ３８３に保持させる係数データを保持する。入出力バッファ３８２のデータの入出力は、外部メモリ入出力制御部３８１に制御される。出力バッファ３２８は、エントロピ符号化部３２６により生成された符号化データを保持する。出力バッファ３２８のデータの入出力は、出力制御部３２７により制御される。
【００５２】
外部メモリ３８３は、プロセッサ３０１とは別に形成される記憶領域であり、例えば、図２のXDR-RAM２０３に対応する。外部メモリ３８３は、上述した内部メモリ３１１に対して、例えば、回路規模が小さく実装密度を上げやすい、消費電力が小さい、動作が低速、および、読み書きの手順が複雑であるといった特徴を有する。つまり、外部メモリ３８３は、内部メモリ３１１に比べて、動作が低速であるものの、大容量のデータを保持することができる。
【００５３】
［動作説明］
次に、図３に示されるエンコーダの動作について説明する。例えば、XDR-RAM２０３等の外部メモリ３８３や、HDD２０５に記憶されている原画像３５１は、ウェーブレット変換処理の処理単位ごとに読み出され、共有バス２４５を介して、矢印３６１に示されるように入力バッファ３２１に供給され、一時的に保持される。入力制御部３２２は、入力バッファ３２１に所定ライン数（例えば１ライン）の画像データが蓄積されると、矢印３６２に示されるようにそれを読み出し、矢印３６３に示されるようにフィルタ処理部３２３に供給する。
【００５４】
水平分析フィルタ部３３１は、入力された原画像３５１に対して水平分析フィルタリングを行う。途中計算バッファ制御部３２４は、その水平分析フィルタリング結果（係数）を、適宜、矢印３６４のように取得し、矢印３６５のように途中計算バッファ３２５に保持させる。所定ライン数（例えば６ライン）の係数が蓄積されると、途中計算バッファ制御部３２４は、矢印３６６のように読み出し、矢印３６７のようにフィルタ処理部３２３に供給する。垂直分析フィルタ部３３２は、その係数に対して垂直分析フィルタリングを行う。
【００５５】
水平分析フィルタリングと垂直分析フィルタリングが１回ずつ行われ、ＬＬ成分、ＨＬ成分、ＬＨ成分、およびＨＨ成分の、４つのサブバンドが生成されると、フィルタ処理部３２３は、算出したフィルタリング結果のうち、ＨＬ成分、ＬＨ成分、およびＨＨ成分を、矢印３６８に示されるようにエントロピ符号化部３２６に供給する。エントロピ符号化部３２６は、供給された係数を順次符号化し、生成した符号化データを、矢印３６９に示されるように出力制御部３２７に供給する。出力制御部３２７は、取得した符号化データを矢印３７０に示されるように、出力バッファ３２８に供給して一時的に保持させる。出力制御部３２７は、出力バッファ３２８を制御し、所定のタイミングで出力バッファ３２８に保持されている符号化データを、矢印３７１に示されるように、符号化コードストリーム３５３としてプロセッサ３０１の外部（例えばXDR-RAM２０３やHDD２０５等）に出力させる。
【００５６】
フィルタ処理部３２３は、目標の分割レベルに達するまで、ＬＬ成分の係数に対してフィルタ処理を再帰的に繰り返す。そこで、途中計算バッファ制御部３２４は、算出されたＬＬ成分の係数を、矢印３６４に示されるようにフィルタ処理部３２３より取得し、矢印３６５に示されるように途中計算バッファ３２５に保持させる。また、垂直分析フィルタリングにおいて生成されたリフティング演算途中の係数の一部は、次のラインに対する垂直分析フィルタリングにおいても使用される。そこで、途中計算バッファ制御部３２４は、算出されたその他の係数（ＬＬ成分、ＨＬ成分、ＬＨ成分、およびＨＨ成分のいずれでもないリフティング演算途中の係数）を、矢印３６４に示されるようにフィルタ処理部３２３より取得し、矢印３６５に示されるように途中計算バッファ３２５に保持させる。
【００５７】
途中計算バッファ制御部３２４は、フィルタ処理部３２３による次の分割レベルを対象とするフィルタ処理のために、途中計算バッファ３２５に保持されている係数を、適宜、矢印３６６のように読み出し、矢印３６７に示されるようにフィルタ処理部３２３に供給する。フィルタ処理部３２３は、処理対象分割レベルを１つ下位のレベルに更新し、途中計算バッファ制御部３２４により途中計算バッファ３２５より読み出されたＬＬ成分を入力データとして、水平分析フィルタリングや垂直分析フィルタリングを行う。フィルタ処理部３２３は、１つ目の目標分割レベル（第１の目標分割レベル）に達するまで、各分割レベルのＬＬ成分に対して、このようにフィルタ処理を再帰的に繰り返す。第１の目標分割レベルのＬＬ成分は、途中計算バッファ３２５ではなく外部メモリ３８３に保持される。外部メモリ入出力制御部３８１は、第１の目標分割レベルのＬＬ成分の係数が生成されると、それを、矢印３９１に示されるようにフィルタ処理部３２３より取得し、矢印３９２および矢印３９３に示されるように、入出力バッファ３８２を介して外部メモリ３８３に保持させる。
【００５８】
そして、フィルタ処理の処理対象レベルが第１の目標分割レベルになると、外部メモリ入出力制御部３８１は、外部メモリ３８３に保持されているＬＬ成分の係数を、矢印３９４および矢印３９５に示されるように入出力バッファ３８２を介して読み出し、矢印３９６に示されるようにフィルタ処理部３２３に供給する。つまり、水平分析フィルタ部３３１は、外部メモリ３８３より読み出された係数に対して水平分析フィルタリングを行う。フィルタ処理部３２３は、分割レベルが２つ目の目標分割レベル（第２の目標分割レベル）に達するまで、上述したように、各分割レベルのＬＬ成分に対してフィルタ処理を再帰的に繰り返す。このとき、生成されるＬＬ成分の係数や途中の係数は、途中計算バッファ制御部３２４の制御によって、適宜、途中計算バッファ３２５に保持され、必要に応じて利用される。
【００５９】
以上のようにして生成された第２の目標分割レベルの各成分の係数は、矢印３６８に示されるようにエントロピ符号化部３２６に供給され、符号化される。そして、その符号化により生成された符号化データは、矢印３６９に示されるように出力制御部３２７に供給され、矢印３７０および矢印３７１に示されるように出力バッファ３２８を介してプロセッサ３０１の外部（例えばXDR-RAM２０３やHDD２０５等）に、符号化コードストリーム３５３として出力される。
【００６０】
仮に、従来のように、ウェーブレット変換処理において生成される、各分割レベルのＬＬ成分の係数や、次回のフィルタリングに必要な途中の係数を、全て途中計算バッファ３２５に保持させるとすると、途中計算バッファ３２５には、図１２に示されるように係数が保持される。つまり、途中計算バッファ３２５に保持される係数の垂直ライン数は、各分割レベルにおいて固定値（例えば６）であるが、水平サイズは、分割レベルが１つ進むごとに、ウェーブレット変換の特徴から２分の１ずつ小さくなる。例えば、原画像の水平サイズが４０９６画素の場合、分割レベル１の水平サイズは４０９６画素となり、分割レベル２の水平サイズは２０４８画素となり、分割レベル３の水平サイズは１０２４画素となる。したがって、途中計算バッファ３２５の必要メモリ量は、以下の式（５）のようになる。なお、ウェーブレット変換の第２の目標分割レベルは４とする。
【００６１】
4096（画素）×(1＋1/2＋1/4＋1/8)×6（ライン）×4（バイト）
＝184K（バイト）  ・・・（５）
【００６２】
なお、４バイト（＝32ビット）は、ウェーブレット変換係数の精度として必要なビット数である。つまり、例えば、内部メモリ３１１の容量が256Ｋバイトで、そのうち半分がプログラムや他のデータで使用され、空き容量が128Ｋバイトであるとすると、従来の方法では、途中計算バッファ３２５では容量が不足する。この場合、容量不足分の係数は外部メモリ３８３に保持させる必要があるため、この係数保持を無計画に行うと、外部メモリ３８３へのアクセス数が増大し、遅延時間が不要に増大する恐れがある。
【００６３】
例えば、大容量の外部メモリ３８３を単純に優先的に利用するようにすると、途中計算バッファ３２５は使用されず、処理速度が不要に低下してしまう恐れがあった。逆に、高速に読み書き可能な途中計算バッファ３２５を単純に優先的に使用するようにすると、分割レベルの深い階層において外部メモリ３８３が使用されるので、アクセス頻度が増大し、処理速度が不要に低下してしまう恐れがあった。
【００６４】
そこで、図３に示される本発明を適用したエンコーダは、所定の階層の分割レベル（第１の目標分割レベル）を予め定め、その予め定められた第１の目標分割レベルのＬＬ成分のみを外部メモリ３８３に保持させるようにする。例えば、この第１の目標分割レベルを分割レベル１とし、図１３Ａに示されるように、１回フィルタ処理を行い、生成された１ＬＬ成分を外部メモリ３８３に保持させるようにする。そして、次の分割レベルのフィルタ処理は、図１３Ｂに示されるように、外部メモリ３８３より読み出された１ＬＬ成分に対して行われるようにする。それ以降の係数（保持する必要がある係数）は、途中計算バッファ３２５に保持させるようにする。
【００６５】
つまり、第１の目標分割レベルの１つ上位の分割レベルの係数まで途中計算バッファ３２５に保持し、第１の目標分割レベルのＬＬ成分を外部メモリ３８３に一時的に退避させる。第１の目標分割レベルの１つ上位のフィルタ処理が完了すると、途中計算バッファ３２５に保持される上位の階層の係数が不要になる。そこで、外部メモリ３８３に保持される第１の目標分割レベルのＬＬ成分を用いてそれ以降の階層に対するフィルタ処理が開始される。このとき途中計算バッファ３２５に空き容量が生じるので、それ以降に生成される係数は、途中計算バッファ３２５に保持させることができる。つまり、外部メモリ３８３を用いることにより、途中計算バッファ３２５を、時間的に２回に分けて利用する。
【００６６】
この方法を用いる場合の、途中計算バッファ３２５に必要なメモリ量について、計算する。なお、第１の目標分割レベルより前のウェーブレット変換をステップ１とし、第１の目標分割レベル以降のウェーブレット変換をステップ２とする。なお、第１の目標分割レベルを分割レベル１とし、第２の目標分割レベルを分割レベル３とする。
【００６７】
ステップ１：
4,096（水平サイズ）×１×６（ライン）×４（バイト）
＝98Ｋ（バイト）  ・・・（６）
ステップ２：
2,048（１分割後の水平サイズ）×（1+0.5+0.25）×６（ライン）×４（バイト）
＝86Ｋ（バイト）  ・・・（７）
【００６８】
ステップ１とステップ２は時間的にずれているので、この場合、途中計算バッファ３２５の容量は、98Ｋバイト以上あればよい。つまり、ウェーブレット変換処理全体において、途中計算バッファ３２５に、途中計算バッファ３２５の記憶容量以上の容量の係数を保持させることができる。
【００６９】
以上のように制御することにより、高速に読み書き可能な途中計算バッファ３２５をより多く利用し、外部メモリ３８３の利用を必要最小限に抑制することができるので、外部メモリ３８３を利用することによる処理時間の増大を抑制することができる。すなわち、図３に示されるエンコーダは、よりハードウエア資源をより有効に利用することができ、ウェーブレット変換を用いた符号化処理をより容易かつより高速に行うことができる。このように、図３に示されるエンコーダは、符号化処理全体の処理時間を低減させることができるとともに、コストの増大を抑制することができる。
【００７０】
［処理の流れの説明］
次に以上のような符号化処理の流れの例を、図１４のフローチャートを参照して説明する。図３のエンコーダは、この符号化処理を、原画像３５１のラインブロック毎（所定ライン数毎）に実行する。
【００７１】
符号化処理が開始されると、ウェーブレット変換部３１２は、ステップＳ１０１において、入力バッファ３２１に入力された原画像３５１に対して水平分析フィルタリングを行う第１水平分析フィルタ処理を行う。第１水平分析フィルタ処理の詳細については後述する。第１水平分析フィルタ処理が終了すると、ウェーブレット変換部３１２は、ステップＳ１０２において、処理後の分割レベルが第１の目標分割レベルであるか否かを判定する。現在の処理対象分割レベルが第１の目標分割レベルの１つ上位でなく、フィルタ処理により第１の目標分割レベルの係数が生成されないと判定された場合、処理はステップＳ１０３に進む。
【００７２】
ステップＳ１０３において、ウェーブレット変換部３１２、エントロピ符号化部３２６、および出力制御部３２７は、水平分析フィルタ処理結果に対して垂直分析フィルタリングを行い、生成したＬＬ成分を途中計算バッファ３２５に保持させるとともに、その他の成分を符号化して出力する処理である第１垂直分析フィルタ符号化処理を行う。第１垂直分析フィルタ符号化処理の詳細については後述する。第１垂直分析フィルタ符号化処理が終了すると、ウェーブレット変換部３１２は、ステップＳ１０４において、処理対象分割レベルを１つ下位の分割レベルに更新し、内部メモリ３１１の途中計算バッファ３２５に保持したＬＬ成分を入力データとする。ウェーブレット変換部３１２は、ステップＳ１０５において、新たな処理対象分割レベルに対して水平分析フィルタリングを行う第２水平分析フィルタ処理を行う。すなわち、ウェーブレット変換部３１２は、前回のフィルタ処理において途中計算バッファ３２５に保持されるＬＬ成分に対して水平分析フィルタリングを行う。第２水平分析フィルタ処理の詳細については後述する。
【００７３】
ステップＳ１０５の処理が終了すると、処理は、ステップＳ１０２に戻る。つまり、ウェーブレット変換部３１２は、ステップＳ１０２において処理後の分割レベルが第１の目標分割レベルであると判定されるまで、ステップＳ１０２乃至ステップＳ１０５の処理を繰り返し実行する。そして、ステップＳ１０２において、現在の処理対象分割レベルが第１の目標分割レベルの１つ上位であり、フィルタ処理により第１の目標分割レベルの係数が生成されると判定された場合、処理はステップＳ１０６に進む。
【００７４】
ステップＳ１０６において、ウェーブレット変換部３１２、エントロピ符号化部３２６、および出力制御部３２７は、水平分析フィルタ処理結果に対して垂直分析フィルタリングを行い、生成した第１目標分割レベルのＬＬ成分を外部メモリ３８３に保持させるとともに、その他の成分を符号化して出力する処理である第２垂直分析フィルタ符号化処理を行う。第２垂直分析フィルタ符号化処理の詳細については後述する。ここまでのステップＳ１０１乃至ステップＳ１０６が、上述した「ステップ１」の処理として実行される。第１目標分割レベルのＬＬ成分が外部メモリ３８３に蓄積され、第２垂直分析フィルタ符号化処理が終了すると、処理はステップＳ１１１に進む。
【００７５】
ステップＳ１１１において、ウェーブレット変換部３１２は、処理対象分割レベルを１つ下位の分割レベルに更新し、外部メモリ３８３に保持したＬＬ成分を入力データとする。ウェーブレット変換部３１２は、ステップＳ１１２において、外部メモリ３８３より読み出された第１目標分割レベルのＬＬ成分に対して水平分析フィルタリングを行う第３水平分析フィルタ処理を行う。第３水平分析フィルタ処理の詳細については後述する。
【００７６】
ステップＳ１１３において、ウェーブレット変換部３１２は、処理後の分割レベルが第２の目標分割レベルであるか否かを判定する。現在の処理対象分割レベルが第２の目標分割レベルの１つ上位でなく、フィルタ処理により第２の目標分割レベルの係数が生成されないと判定された場合、処理はステップＳ１１４に進む。ステップＳ１１４において、ウェーブレット変換部３１２、エントロピ符号化部３２６、および出力制御部３２７は、第１垂直分析フィルタ符号化処理を行う。ステップＳ１１５において、ウェーブレット変換部３１２は、処理対象分割レベルを１つ下位の分割レベルに更新し、内部メモリ３１１の途中計算バッファ３２５に保持したＬＬ成分を入力データとする。ウェーブレット変換部３１２は、ステップＳ１１６において、第２水平分析フィルタ処理を行う。
【００７７】
ステップＳ１１６の処理が終了すると、処理は、ステップＳ１１３に戻る。つまり、ウェーブレット変換部３１２は、ステップＳ１１３において処理後の分割レベルが第２の目標分割レベルであると判定されるまで、ステップＳ１１３乃至ステップＳ１１６の処理を繰り返し実行する。そして、ステップＳ１１３において、現在の処理対象分割レベルが第２の目標分割レベルの１つ上位であり、フィルタ処理により第２の目標分割レベルの係数が生成されると判定された場合、処理はステップＳ１１７に進む。
【００７８】
ステップＳ１１７において、ウェーブレット変換部３１２、エントロピ符号化部３２６、および出力制御部３２７は、水平分析フィルタ処理結果に対して垂直分析フィルタリングを行い、生成した第２目標分割レベルの各成分を符号化して出力する処理である第３垂直分析フィルタ符号化処理を行う。第３垂直分析フィルタ符号化処理の詳細については後述する。ここまでのステップＳ１１１乃至ステップＳ１１７が、上述した「ステップ２」の処理として実行される。
【００７９】
以上のようにステップＳ１１７の処理が終了されると、符号化処理が終了される。このように、外部メモリ３８３を利用して、符号化処理をステップ１とステップ２の２つに分けて行うようにしたので、図３のエンコーダは、符号化処理全体において、途中計算バッファ３２５に記憶容量以上の情報を保持させることができ、ハードウエア資源の利用効率を向上させることができる。
【００８０】
次に、図１５のフローチャートを参照して、第１水平分析フィルタ処理の流れの詳細な例を説明する。第１水平分析フィルタ処理が開始されると、入力制御部３２２は、ステップＳ１３１において、内部メモリ３１１の入力バッファ３２１から処理対象ラインの画像データを入力する。途中計算バッファ制御部３２４は、ステップＳ１３２において、内部メモリ３１１の途中計算バッファ３２５から、水平分析フィルタリングに必要なその他の係数を読み出す。フィルタ処理に必要な係数が揃うと、水平分析フィルタ部３３１は、ステップＳ１３３において、ステップＳ１３１およびステップＳ１３２において得られた係数に対して水平分析フィルタリングを行う。ステップＳ１３４において、途中計算バッファ制御部３２４は、その水平分析フィルタリングの処理結果（分析結果）の係数を内部メモリ３１１の途中計算バッファ３２５に保持させる。ステップＳ１３６において、ウェーブレット変換部３１２は、内部メモリの入力バッファ３２１に保持される画像データ（ラインブロック（例えば６ライン分の画像データ））を全て処理したか否かを判定する。全て処理していないと判定した場合、ウェーブレット変換部３１２は、処理をステップＳ１３１に戻し、それ以降の処理を繰り返す。
【００８１】
すなわち、ウェーブレット変換部３１２は、入力バッファ３２１に保持されるラインブロック毎の原画像３５１に対して、ステップＳ１３１乃至ステップＳ１３６の処理を繰り返し実行することにより、１ラインずつ水平分析フィルタリングを行う。このステップＳ１３１乃至ステップＳ１３６の処理は、任意のタイミングで行われるようにしてよいが、入力バッファ３２１の容量をより少なくし、符号化処理時間をより短縮させるために、入力バッファ３２１に画像データが１ライン分蓄積される毎に行われるようにするのが望ましい。ステップＳ１３６において、内部メモリ３１１の入力バッファ３２１に保持される画像データ（ラインブロック）を全て処理したと判定された場合、第１水平分析フィルタ処理が終了され、処理は図１４のステップＳ１０１に戻され、ステップＳ１０２に進められる。
【００８２】
次に、図１６のフローチャートを参照して、第１垂直分析フィルタ符号化処理の流れの詳細な例を説明する。第１垂直分析フィルタ符号化処理が開始されると、途中計算バッファ制御部３２４は、ステップＳ１５１において、内部メモリ３１１の途中計算バッファ３２５から処理対象分割レベルにおける水平分析フィルタリング結果の係数を処理単位ライン数（例えば６ライン）分読み出す。また、途中計算バッファ制御部３２４は、ステップＳ１５２において、内部メモリ３１１の途中計算バッファ３２５から垂直分析フィルタリングに必要なその他の係数を読み出す。ステップＳ１５３において、垂直分析フィルタ部３３２は、ステップＳ１５１およびステップＳ１５２の処理により読み出された各係数に対して垂直分析フィルタリングを行う。ステップＳ１５４において、途中計算バッファ制御部３２４は、垂直分析フィルタリング結果のうち、ＬＬ成分の係数を内部メモリ３１１の途中計算バッファ３２５に保持させる。ステップＳ１５５において、エントロピ符号化部３２６は、垂直分析フィルタリング結果のうち、ＨＬ成分、ＬＨ成分、およびＨＨ成分の係数をエントロピ符号化する。ステップＳ１５６において、出力制御部３２７は、ステップＳ１５５において生成された符号化データを、出力バッファ３２８を介して、符号化コードストリーム３５３として、プロセッサ３０１より出力する。ステップＳ１５７において、途中計算バッファ制御部３２４は、次回のフィルタ処理に必要な係数（その他の係数）を内部メモリ３１１の途中計算バッファ３２５に保持させる。
【００８３】
ステップＳ１５８において、ウェーブレット変換部３１２は、内部メモリ３１１の途中計算バッファ３２５に保持される処理対象分割レベルにおける水平分析フィルタリング結果の係数を全て処理したか否かを判定する。全て処理していないと判定した場合、ウェーブレット変換部３１２は、処理をステップＳ１５１に戻し、それ以降の処理を繰り返す。すなわち、ウェーブレット変換部３１２は、途中計算バッファ３２５に保持される、所定量（例えば６ライン分）の処理対象分割レベルの係数に対して、ステップＳ１５１乃至ステップＳ１５８の処理を繰り返し実行する。したがって、途中計算バッファ３２５の容量をより少なくし、符号化処理時間をより短縮させるために、垂直分析フィルタリングの処理単位ライン数分の水平分析フィルタ処理結果が途中計算バッファ３２５に蓄積され次第、ステップＳ１５１乃至ステップＳ１５８の処理が行われるようにするのが望ましい。
【００８４】
ステップＳ１５８において、内部メモリ３１１の途中計算バッファ３２５に保持される処理対象分割レベルにおける水平分析フィルタリング結果の係数を全て処理したと判定された場合、処理は図１４に戻される。図１４のステップＳ１０６において実行された第１垂直分析フィルタ符号化処理の場合、処理は、図１４のステップＳ１０６に戻され、ステップＳ１１１に進められる。また、図１４のステップＳ１１４において実行された第１垂直分析フィルタ符号化処理の場合、処理は、図１４のステップＳ１１４に戻され、ステップＳ１１５に進められる。
【００８５】
次に、図１７のフローチャートを参照して、第２水平分析フィルタ処理の流れの詳細な例を説明する。第２水平分析フィルタ処理の処理内容は、基本的に第１水平分析フィルタ処理と同様であるが、第２水平分析フィルタ処理は、途中計算バッファ３２５に保持される、１つ上位の分割レベルにおいて行われた垂直分析フィルタ処理結果のＬＬ成分に対して行われる。したがって、第２水平分析フィルタ処理が開始されると、途中計算バッファ制御部３２４は、ステップＳ１７１において、内部メモリ３１１の途中計算バッファ３２５から、処理対象分割レベルの処理対象ラインの係数を読み出し、フィルタ処理部３２３に入力する。ステップＳ１７２乃至ステップＳ１７５の各処理は、図１５のステップＳ１３２乃至ステップＳ１３５の各処理と同様に行われる。
【００８６】
ただし、ステップＳ１７３の水平分析フィルタリングは、ステップＳ１７１およびステップＳ１７２において途中計算バッファ３２５より読み出された係数に対して行われる。この係数は、垂直分析フィルタリング結果であるので、ステップＳ１７１乃至ステップＳ１７６の各処理は、処理対象ラインブロックの処理対象分割レベルの係数が途中計算バッファ３２５に全て保持されてから実行される。
【００８７】
ステップＳ１７６において、ウェーブレット変換部３１２は、内部メモリの途中計算バッファ３２５に保持される、処理対象ラインブロックの処理対象分割レベルの係数を全て処理したか否かを判定する。全て処理していないと判定した場合、ウェーブレット変換部３１２は、処理をステップＳ１７１に戻し、それ以降の処理を繰り返す。すなわち、ウェーブレット変換部３１２は、途中計算バッファ３２５に保持される処理対象ラインブロックの処理対象分割レベルの係数に対して、ステップＳ１７１乃至ステップＳ１７６の処理を繰り返し実行することにより、１ラインずつ水平分析フィルタリングを行う。ステップＳ１７６において、途中計算バッファ３２５に保持される処理対象分割レベルの係数（処理対象ラインブロックの係数）を全て処理したと判定された場合、第２水平分析フィルタ処理が終了され、処理は図１４に戻される。図１４のステップＳ１０５において実行された第２水平分析フィルタ処理の場合、処理は、図１４のステップＳ１０５に戻され、さらにステップＳ１０２に戻される。また、図１４のステップＳ１１６において実行された第２水平分析フィルタ処理の場合、処理は、図１４のステップＳ１１６に戻され、さらにステップＳ１１３に戻される。
【００８８】
次に、図１８のフローチャートを参照して、第２垂直分析フィルタ符号化処理の流れの詳細な例を説明する。第２垂直分析フィルタ符号化処理の処理内容は、基本的に第１垂直分析フィルタ符号化処理と同様であるが、第２垂直分析フィルタ符号化処理は、生成した分析結果のＬＬ成分を外部メモリ３８３に蓄積する。したがって、ウェーブレット変換部３１２は、図１８のステップＳ１９１乃至ステップＳ１９３の各処理を、図１６のステップＳ１５１乃至ステップＳ１５３の各処理と同様に行い、第１垂直分析フィルタ符号化処理の場合と同様に垂直分析フィルタリングを行う。
【００８９】
ステップＳ１９４において、外部メモリ入出力制御部３８１は、ステップＳ１９３において行われた垂直分析フィルタリング結果のＬＬ成分を内部メモリ３１１の入出力バッファ３８２に保持させる。ステップＳ１９５において、外部メモリ入出力制御部３８１は、ステップＳ１９４において保持させた内部メモリ３１１の入出力バッファ３８２のＬＬ成分を、外部メモリ３８３に書き込み、保持させる。ＬＬ成分以外の係数については、第１垂直分析フィルタ符号化処理の場合と同様に処理される。したがって、エントロピ符号化部３２６は、図１８のステップＳ１９６の処理を図１６のステップＳ１５５の場合と同様に行う。出力制御部３２７は、図１８のステップＳ１９７の処理を図１６のステップＳ１５６の場合と同様に行う。途中計算バッファ制御部３２４は、図１８のステップＳ１９８の処理を図１６のステップＳ１５７の場合と同様に行う。
【００９０】
図１８のステップＳ１９９において、ウェーブレット変換部３１２は、図１６のステップＳ１５８の場合と同様に、内部メモリ３１１の途中計算バッファ３２５に保持される処理対象分割レベルにおける水平分析フィルタリング結果の係数を全て処理したか否かを判定する。全て処理していないと判定した場合、ウェーブレット変換部３１２は、処理をステップＳ１９１に戻し、それ以降の処理を繰り返す。すなわち、ウェーブレット変換部３１２は、途中計算バッファ３２５に保持される、所定量（例えば６ライン分）の処理対象分割レベルの係数に対して、ステップＳ１９１乃至ステップＳ１９９の処理を繰り返し実行する。したがって、途中計算バッファ３２５の容量をより少なくし、符号化処理時間をより短縮させるために、垂直分析フィルタリングの処理単位ライン数分の水平分析フィルタ処理結果が途中計算バッファ３２５に蓄積され次第、ステップＳ１９１乃至ステップＳ１９９の処理が行われるようにするのが望ましい。ステップＳ１９９において、内部メモリ３１１の途中計算バッファ３２５に保持される処理対象分割レベルにおける水平分析フィルタリング結果の係数を全て処理したと判定された場合、処理は、図１４のステップＳ１０６に戻され、ステップＳ１１１に進められる。
【００９１】
次に、図１９のフローチャートを参照して、第３水平分析フィルタ処理の流れの詳細な例を説明する。第３水平分析フィルタ処理の処理内容は、基本的に第１水平分析フィルタ処理と同様であるが、第３水平分析フィルタ処理は、外部メモリ３８３に保持される、１つ上位の分割レベルにおいて行われた垂直分析フィルタ処理結果のＬＬ成分に対して行われる。したがって、第３水平分析フィルタ処理が開始されると、外部メモリ入出力制御部３８１は、ステップＳ２１１において、外部メモリ３８３から、処理対象分割レベルの処理対象ラインの係数を読み出し、内部メモリ３１１の入出力バッファ３８２に保持させる。外部メモリ入出力制御部３８１は、ステップＳ２１２において、ステップＳ２１１において保持させた係数を、内部メモリ３１１の入出力バッファ３８２より読み出し、フィルタ処理部３２３に入力する。図１９のステップＳ２１３乃至ステップＳ２１６の各処理は、図１５のステップＳ１３２乃至ステップＳ１３５の各処理と同様に行われる。
【００９２】
ただし、ステップＳ２１４の水平分析フィルタリングは、ステップＳ２１１およびステップＳ２１２において外部メモリより読み出された係数、並びに、ステップＳ２１３において途中計算バッファ３２５より読み出された係数に対して行われる。この係数は、垂直分析フィルタリング結果であるので、ステップＳ２１１乃至ステップＳ２１７の各処理は、処理対象ラインブロックの処理対象分割レベルの係数が外部メモリ３８３に全て保持されてから実行される。
【００９３】
ステップＳ２１７において、ウェーブレット変換部３１２は、外部メモリ３８３に保持される、処理対象ラインブロックの処理対象分割レベルの係数を全て処理したか否かを判定する。全て処理していないと判定した場合、ウェーブレット変換部３１２は、処理をステップＳ２１１に戻し、それ以降の処理を繰り返す。すなわち、ウェーブレット変換部３１２は、外部メモリ３８３に保持される処理対象ラインブロックの処理対象分割レベルの係数に対して、ステップＳ２１１乃至ステップＳ２１７の処理を繰り返し実行することにより、１ラインずつ水平分析フィルタリングを行う。ステップＳ２１７において、外部メモリ３８３に保持される処理対象分割レベルの係数（処理対象ラインブロックの係数）を全て処理したと判定された場合、第３水平分析フィルタ処理が終了され、処理は、図１４のステップＳ１１２に戻され、ステップＳ１１３に進められる。
【００９４】
次に、図２０のフローチャートを参照して、第３垂直分析フィルタ符号化処理の流れの詳細な例を説明する。第３垂直分析フィルタ符号化処理の処理内容は、基本的に第１垂直分析フィルタ符号化処理と同様であるが、第３垂直分析フィルタ符号化処理は、生成した分析結果のＬＬ成分を他の成分と同様に符号化して出力する。
【００９５】
したがって、ウェーブレット変換部３１２は、図２０のステップＳ２３１乃至ステップＳ２３３の各処理を、図１６のステップＳ１５１乃至ステップＳ１５３の各処理と同様に行い、第１垂直分析フィルタ符号化処理の場合と同様に垂直分析フィルタリングを行う。ステップＳ２３４において、エントロピ符号化部３２６は、分析結果の各成分の係数をエントロピ符号化する。つまり、エントロピ符号化部３２６は、ＬＬ成分も含む全ての垂直分析フィルタリング結果を符号化する。ステップＳ２３５において、出力制御部３２７は、ステップＳ２３４において生成された符号化データ（ＬＬ成分に対応する符号化データも含む）を、出力バッファ３２８を介して、符号化コードストリーム３５３として、プロセッサ３０１の外部に出力する。ステップＳ２３６において、途中計算バッファ制御部３２４は、図１６のステップＳ１５７の場合と同様に、次回のフィルタ処理に必要なその他の係数を内部メモリ３１１の途中計算バッファ３２５に保持させる。
【００９６】
ステップＳ２３７において、ウェーブレット変換部３１２は、図１６のステップＳ１５８の場合と同様に、内部メモリ３１１の途中計算バッファ３２５に保持される処理対象分割レベルにおける水平分析フィルタリング結果の係数を全て処理したか否かを判定する。全て処理していないと判定した場合、ウェーブレット変換部３１２は、処理をステップＳ２３１に戻し、それ以降の処理を繰り返す。すなわち、ウェーブレット変換部３１２は、途中計算バッファ３２５に保持される、所定量（例えば６ライン分）の処理対象分割レベルの係数に対して、ステップＳ２３１乃至ステップＳ２３７の処理を繰り返し実行する。したがって、途中計算バッファ３２５の容量をより少なくし、符号化処理時間をより短縮させるために、垂直分析フィルタリングの処理単位ライン数分の水平分析フィルタ処理結果が途中計算バッファ３２５に蓄積され次第、ステップＳ２３１乃至ステップＳ２３７の処理が行われるようにするのが望ましい。ステップＳ２３７において、内部メモリ３１１の途中計算バッファ３２５に保持される処理対象分割レベルにおける水平分析フィルタリング結果の係数を全て処理したと判定された場合、処理は、図１４のステップＳ１１７に戻され、符号化処理が終了される。
【００９７】
以上のように、第１の目標分割レベルを外部メモリ３８３に保持させることにより、分割レベル毎に再帰的に繰り返されるフィルタ処理を、ステップ１とステップ２の２つに分ける。このようにすることにより、途中計算バッファ３２５を、ステップ１とステップ２の２回に分けて利用することができ、途中計算バッファ３２５の実際の記憶容量より多い量の係数を途中計算バッファ３２５に保持させることができる。つまり、途中計算バッファ３２５の記憶容量を時分割して利用することにより擬似的に記憶容量を増大させることができる。したがって、途中計算バッファ３２５の利用効率を向上させることができる。
【００９８】
なお、この第１目標分割レベルとする分割レベルは、ウェーブレット変換処理の最終分割レベルである第２目標分割レベルより上位の階層であれば、任意の分割レベルとしてよい。ただし、途中計算バッファ３２５（内部メモリ３１１）として必要な記憶容量、つまり、ステップ１において必要な容量とステップ２において必要な容量の大きい方の値ができるだけ小さくなるようにするのが望ましい。
【００９９】
図１２を参照して説明したように、保持される係数は、分割レベルが下位になる毎に半減する。したがって、第１目標分割レベルが分割レベル１とするのが望ましい。例えば式（６）および式（７）の例の場合、ステップ１において必要なメモリ容量が９８Ｋバイトであり、ステップ２において必要なメモリ容量が８６Ｋバイトであるので、途中計算バッファ３２５の記憶容量は９８Ｋバイトあればよい。分割レベル２とすると、ステップ２において必要なメモリ容量は低減するが、ステップ１において必要なメモリ容量が増大するので、途中計算バッファ３２５（内部メモリ３１１）として必要な記憶容量は増大してしまう。例えば式（６）および式（７）の例の場合、使用可能な内部メモリ３１１の空き容量が１２８Ｋバイトであっても、十分に対応することができる。
【０１００】
なお、例えば、第１目標分割レベルとして複数の分割レベルを設定するようにしてもよい。例えば、再帰的に繰り返されるフィルタ処理において、複数回外部メモリ３８３にＬＬ成分を保持させるようにしてもよい。しかしながら、この場合、途中計算バッファ３２５の容量を低減させることができる可能性はあるが、外部メモリ３８３へのアクセス回数が増大するので、処理時間が増大してしまう。また、ＬＬ成分の保存先の切り替えを、ある分割レベルの垂直分析フィルタリング中に行うようにしても良い。しかしながら、その場合、ステップ１に必要な容量とステップ２に必要な容量をより均等に配分することができるが、切り替えのための制御が複雑になり、符号化処理の負荷が増大する恐れがある。また、不要な待機時間が増大する等して符号化処理時間が増大する恐れがある。これに対して、上述したように、ＬＬ成分の保存先の切り替えをフィルタ処理単位で（分割レベル単位で）行うようにする、つまり、第１の目標分割レベルのＬＬ成分を外部メモリ３８３に退避させるようにすることにより、切り替えの制御を容易にすることができる。
【０１０１】
＜３．第３の実施の形態＞
［メモリバンク構成１］
なお、プロセッサ３０１内部のバスと、外部のバスとで転送速度が異なる（外部のバスの方が遅い）ので、外部メモリ３８３への係数の転送（またはその外部メモリ３８３からの転送）は、入出力バッファ３８２を介して行うのが望ましい。このとき、入出力バッファ３８２の、外部メモリ３８３への係数の書き込み時に利用される領域のメモリバンク構成は任意であり、１バンク構成としてもよいが、２バンク構成としてもよい。
【０１０２】
メモリバンク構成を１バンクとする場合、メモリコントローラは、その領域全体を１つの領域として管理するため、制御が容易であるものの、データの読み出しと書き込みを同時に行うことができない。つまり、最初に、図２１Ａの矢印６０１に示されるように、外部メモリ入出力制御部３８１から入出力バッファ３８２に係数がストア（Store１）される。そのストアが完了すると、次に、図２１Ｂの矢印６０２に示されるように、入出力バッファ３８２から外部メモリ３８３に係数が読み出される（（DMA（Direct Memory Access））Load１）。その読み出しが終了すると、図２１Ｃの矢印６０３に示されるように、外部メモリ入出力制御部３８１から入出力バッファ３８２に新たな係数がストア（Store２）される。以上のように、入出力バッファ３８２は、係数の入出力を並行して行うことができない。
【０１０３】
これに対して、メモリバンク構成を２バンクとする場合、メモリコントローラは、その領域全体を２つの領域として管理するため、データの読み出しと書き込みを同時に行うことができる。例えば、最初に、図２２Ａの矢印６１１に示されるように、外部メモリ入出力制御部３８１から入出力バッファ３８２のバンクＡ（BankＡ）に係数がストア（Store１）される。この時点でバンクＢ（BankＢ）は、空状態（Empty）である。そのストアが完了すると、次に、図２２Ｂの矢印６１２に示されるように、入出力バッファ３８２のバンクＡから外部メモリ３８３に係数が読み出される（（DMA）Load１）。この処理と並行して、図２２Ｂの矢印６１３に示されるように、外部メモリ入出力制御部３８１から入出力バッファ３８２のバンクＢに係数がストア（Store２）される。そのストアおよび転送が完了すると、次に、図２２Ｃの矢印６１４に示されるように、入出力バッファ３８２のバンクＢから外部メモリ３８３に係数が読み出される（（DMA）Load２）。この処理と並行して、図２２Ｃの矢印６１５に示されるように、外部メモリ入出力制御部３８１から入出力バッ入出力バッファ３８２は、係数の入出力を並行して行うことができる。ファ３８２のバンクＡに係数がストア（Store３）される。したがって、外部メモリ３８３への係数の書き込み時に利用される領域のメモリバンク構成を１バンク構成とする場合、図２３Ａに示されるように、ウェーブレット変換（DWT１，DWT２，DWT３，DWT４）および入出力バッファ３８２へのストア（Store１，Store２，Store３，Store４）を、入出力バッファ３８２から外部メモリ３８３への読み出し（Load１，Load２，Load３，Load４）と並行して行うことができず、処理時間が増大する。
【０１０４】
これに対して、外部メモリ３８３への係数の書き込み時に利用される領域のメモリバンク構成を２バンク構成とする場合、図２３Ｂに示されるように、ウェーブレット変換（DWT１，DWT２，DWT３，DWT４）および入出力バッファ３８２へのストア（Store１，Store２，Store３，Store４）を、入出力バッファ３８２から外部メモリ３８３への読み出し（Load１，Load２，Load３，Load４）と並行して行うことができ、１バンク構成の場合と比べて、不要な待機時間を削減し、処理時間を低減させることができる。
【０１０５】
つまり、外部メモリ３８３への係数の書き込み時に利用される領域のメモリバンク構成を２バンク構成とすることにより、図３のエンコーダは、ハードウエア資源の利用効率を向上させることができる。もちろん、バンク数は任意であり３バンク以上としてもよい。
【０１０６】
［メモリバンク構成２］
なお、入出力バッファ３８２の、外部メモリ３８３からの係数の読み出し時に利用される領域のメモリバンク構成も任意であり、１バンク構成としてもよいし、２バンク構成としてもよい。
【０１０７】
メモリバンク構成を１バンクとする場合、最初に、図２４Ａの矢印７０１に示されるように、外部メモリ３８３から入出力バッファ３８２に係数がストア（（DMA）Store１）される。そのストアが完了すると、次に、図２４Ｂの矢印７０２に示されるように、入出力バッファ３８２から外部メモリ入出力制御部３８１に係数が読み出される（Load１）。その読み出しが終了すると、図２４Ｃの矢印７０３に示されるように、外部メモリ３８３から入出力バッファ３８２に新たな係数がストア（（DMA）Store２）される。以上のように、入出力バッファ３８２は、係数の入出力を並行して行うことができない。
【０１０８】
これに対して、メモリバンク構成を２バンクとする場合、メモリコントローラは、その領域全体を２つの領域として管理するため、データの読み出しと書き込みを同時に行うことができる。例えば、最初に、図２５Ａの矢印７１１に示されるように、外部メモリ３８３から入出力バッファ３８２のバンクＡ（BankＡ）に係数がストア（（DMA）Store１）される。この時点でバンクＢ（BankＢ）は、空状態（Empty）である。そのストアが完了すると、次に、図２５Ｂの矢印７１２に示されるように、入出力バッファ３８２のバンクＡから外部メモリ入出力制御部３８１に係数が読み出される（Load１）。この処理と並行して、図２５Ｂの矢印７１３に示されるように、外部メモリ３８３から入出力バッファ３８２のバンクＢに係数がストア（（DMA）Store２）される。そのストアおよび読み出しが完了すると、次に、図２５Ｃの矢印７１４に示されるように、入出力バッファ３８２のバンクＢから外部メモリ入出力制御部３８１に係数が転送（Load２）される。この処理と並行して、図２５Ｃの矢印７１５に示されるように、外部メモリ３８３から入出力バッファ３８２のバンクＡに係数がストア（（DMA）Store３）される。以上のように、入出力バッファ３８２は、係数の入出力を並行して行うことができる。
【０１０９】
したがって、外部メモリ３８３からの係数の読み出し時に利用される領域のメモリバンク構成を１バンク構成とする場合、図２６Ａに示されるように、外部メモリ３８３から入出力バッファ３８２へのストア（Store１，Store２，Store３，Store４）を、入出力バッファ３８２から外部メモリ入出力制御部３８１への読み出し（Load１，Load２，Load３，Load４）およびウェーブレット変換（DWT１，DWT２，DWT３，DWT４）と並行して行うことができず、処理時間が増大する。
【０１１０】
これに対して、外部メモリ３８３からの係数の読み出し時に利用される領域のメモリバンク構成を２バンク構成とする場合、図２６Ｂに示されるように、外部メモリ３８３から入出力バッファ３８２へのストア（Store１，Store２，Store３，Store４）を、入出力バッファ３８２から外部メモリ入出力制御部３８１への読み出し（Load１，Load２，Load３，Load４）およびウェーブレット変換（DWT１，DWT２，DWT３，DWT４）と並行して行うことができ、１バンク構成の場合と比べて、不要な待機時間を削減し、処理時間を低減させることができる。つまり、外部メモリ３８３からの係数の読み出し時に利用される領域のメモリバンク構成を２バンク構成とすることにより、図３のエンコーダは、ハードウエア資源の利用効率を向上させることができる。もちろん、バンク数は任意であり３バンク以上としてもよい。
【０１１１】
なお、図３のエンコーダをハードウエアにより実現する場合も、上述したソフトウエアプログラムによるエンコーダの場合と同様に、内部メモリ（途中計算バッファ）と外部メモリとを利用することができるエンコーダを実現することができる。つまり、ハードウエア資源の利用効率を向上させるエンコーダを実現することができる。
【０１１２】
＜４．第４の実施の形態＞
［デコーダの構成例］
図２７は、図２に示されるサブCPUコア２４２において実現されるデコーダ（復号装置）の構成例を示すブロック図である。図２７に示されるデコーダは、図３を参照して説明したエンコーダの符号化処理に対応する復号処理を行う。詳細については後述するが、このデコーダも、エンコーダの場合と同様に、復号処理におけるウェーブレット逆変換処理を、外部メモリを計画的に用いて行い、途中計算バッファの利用効率を向上させるようになされている。
【０１１３】
図２７において、デコーダは、プロセッサ８０１および外部メモリ８８３のハードウエア資源を用いて実現される。プロセッサ８０１は、他と独立して動作する１つの演算処理部であり、図２のマイクロプロセッサ２０１におけるサブCPUコア２４２の１つに対応する。つまり、図３のプロセッサ３０１と同様である。換言するに、エンコーダのソフトウエアプログラムが実行されているサブCPUコア２４２がプロセッサ３０１であり、デコーダのソフトウエアプログラムが実行されているサブCPUコア２４２がプロセッサ８０１である。
【０１１４】
図２７に示されるように、プロセッサ８０１は、内部メモリ８１１を有する。この内部メモリ８１１は、図３の内部メモリ３１１と同様の記憶領域である。つまり、内部メモリ８１１は、外部メモリ８８３に比べて、容量が小さく、高速にデータの読み出しや書き込みを行うことができる（内部メモリ８１１は、外部メモリ８８３より小容量かつ高速にアクセス可能である）。この内部メモリ８１１の容量は任意であるが、以下においては、２５６キロバイトとして説明する。当然、容量を増大させれば、プロセッサ８０１の製造コストは増大する。また、以下においては、データの保持に利用可能な内部メモリ８１１の空き容量が、全体の半分の１２８キロバイトであるものとして説明する。
【０１１５】
プロセッサ８０１は、内部メモリ８１１に保持されるプログラムを実行することにより、入力制御部８２２、エントロピ復号部８２３、およびウェーブレット逆変換部８１２の機能を実現する。
【０１１６】
入力制御部８２２は、後述する入力バッファ８２１の入出力を制御することにより、エントロピ復号部８２３へのデータ入力を制御する。エントロピ復号部８２３は、入力制御部８２２より供給される入力データ（エンコーダより供給される符号化データ）に対して、図３のエントロピ符号化部３２６によるエントロピ符号化に対応するエントロピ復号を行い、得られた係数をウェーブレット逆変換部８１２に供給する。
【０１１７】
ウェーブレット逆変換部８１２は、エントロピ復号部８２３より供給される係数に対してウェーブレット逆変換を行い、目標解像度の画像データを生成する。ウェーブレット逆変換は、ウェーブレット変換処理により低域成分と高域成分に分割された係数を合成するフィルタ処理を水平方向と垂直方向の両方に対して行う処理である。ウェーブレット逆変換処理においては、このようなフィルタ処理が再帰的に繰り返される。例えば、ある分割レベルにおいてフィルタ処理により得られる係数を、１つ上位の分割レベルの水平方向および垂直方向に低域な成分（LL成分）とし、その分割レベルの他の成分と合わせて再度フィルタ処理が行われる。このようなフィルタ処理の繰り返しが、目標解像度の画像データが得られるまで繰り返される。
【０１１８】
なお、ウェーブレット変換・ウェーブレット逆変換は、スケーラブルな係数変換であり、分割レベルの階層数が、ウェーブレット変換処理とウェーブレット逆変換処理とで一致する必要はない。つまり、復号後の画像データの解像度（目標解像度）は、符号化前のベースバンドの画像データの解像度より小さくてもよい。ただし、外部メモリ８８３の使用を計画的に行うために、ウェーブレット逆変換における分割レベルの階層数は、予め定められている必要がある。この階層数は、デコーダにおいて予め定められていてもよいし、エンコーダより指定されるようにしてもよい。以下においては、説明の便宜上、復号後の画像データの解像度（目標解像度）と、符号化前のベースバンドの画像データの解像度が互いに等しい（分割レベルの階層数がウェーブレット変換処理とウェーブレット逆変換処理とで一致する）ものとして説明する。
【０１１９】
ウェーブレット逆変換部８１２は、このようなフィルタ処理を行うフィルタ処理部８２４を有する。フィルタ処理部８２４は、垂直合成フィルタ部８３１と水平合成フィルタ部８３２を有する。垂直合成フィルタ部８３１は、画面垂直方向に低域成分と高域成分を合成する垂直合成フィルタ処理を行う。水平合成フィルタ部８３２は、画面水平方向に低域成分と高域成分を合成する水平合成フィルタ処理を行う。垂直合成フィルタ処理は、例えばエントロピ復号部８２３等より供給される入力データに対して行われ、水平合成フィルタ処理は、垂直合成フィルタ処理結果に対して行われる。垂直合成フィルタ処理および水平合成フィルタ処理が行われることにより、係数は、画面垂直方向および水平方向に合成され、ＬＬ成分、ＨＬ成分、ＬＨ成分、およびＨＨ成分の４つの成分が合成され、１つの成分の係数（またはベースバンドの画像データ）が生成される。
【０１２０】
上述したように、エンコーダにおいてウェーブレット変換処理が分割レベル３まで実行されていた場合、分割レベル３、分割レベル２、分割レベル１の順に各分割レベルにおいて合成フィルタ処理（ウェーブレット逆変換）が実行される。また、以上の２つのフィルタ処理は、垂直合成フィルタリング、水平合成フィルタリングの順に行われる。なお、フィルタ処理を水平合成フィルタリング、垂直合成フィルタリングの順に行うようにしてもよい。
【０１２１】
ウェーブレット逆変換部８１２は、途中計算バッファ制御部８２５、外部メモリ入出力制御部８８１、および出力制御部８２７を有する。途中計算バッファ制御部８２５は、フィルタ処理部８２４により生成される合成フィルタ処理結果や処理途中の係数の入出力を制御する。途中計算バッファ制御部８２５は、次回以降の合成フィルタ処理において再利用されるデータの保持を制御する。外部メモリ入出力制御部８８１は、所定の分割レベルにおける合成フィルタ処理の結果の保持を制御する。出力制御部８２７は、フィルタ処理部８２４による合成フィルタ処理結果であるベースバンドの画像データ（原画像３５１）のプロセッサ８０１からの出力を制御する。
【０１２２】
内部メモリ８１１には、エントロピ復号部８２３に入力される符号化データ、並びに、フィルタ処理部８２４のフィルタ処理の処理結果や処理途中の係数データ等が一時的に保持される。内部メモリ８１１には、これらのデータを保持するために、入力バッファ８２１、途中計算バッファ８２６、入出力バッファ８８２、および出力バッファ８２８が形成される。入力バッファ８２１は、エントロピ復号部８２３に入力される前の符号化データ（エンコーダより供給される符号化データ）を保持する。入力バッファ８２１の読み出しは入力制御部８２２に制御される。途中計算バッファ８２６は、合成フィルタ処理結果または途中の係数データのうち、次回以降の合成フィルタ処理に使用される係数データを、分割レベル毎に独立して保持する。つまり、途中計算バッファ８２６は、分析フィルタ処理の演算過程として得られる係数、または、第１の目標分割レベルより下位（第１の目標分割レベルを含む）の分析フィルタ処理の演算結果として得られるＬＬ成分の係数を、その分割レベル毎に保持する。その保持している係数は、必要に応じて読み出され、次回以降のフィルタ処理に提供される。途中計算バッファ８２６のデータの入出力は、途中計算バッファ制御部８２５により制御される。なお、この途中計算バッファ８２６は、外部メモリ８８３に比べて小容量であり、かつ、高速にアクセス可能である。入出力バッファ８８２は、合成フィルタ処理結果であり、次回の合成フィルタ処理に利用する係数データのうち、外部メモリ８８３に保持させる係数データを保持する。入出力バッファ８８２のデータの入出力は、外部メモリ入出力制御部８８１に制御される。出力バッファ８２８は、フィルタ処理部８２４による合成フィルタ処理により生成されたベースバンドの画像データを保持する。出力バッファ８２８のデータの入出力は、出力制御部８２７により制御される。
【０１２３】
図２８に示されるように、内部メモリ８１１（途中計算バッファ８２６）に保持される係数は、分割レベル３、分割レベル２、分割レベル１の順に、水平サイズの大きさが２倍ずつ大きくなる。つまり、フィルタ処理の進行方向は逆だが（合成フィルタ処理の場合、下位層から上位層へ向かう順に進む）、各階層において保持される係数の量は、図１２に示されるウェーブレット変換の場合と同様である。
【０１２４】
外部メモリ８８３は、プロセッサ８０１とは別に形成される記憶領域であり、例えば、図２のXDR-RAM２０３に対応する。つまり、外部メモリ８８３は、図３と外部メモリ３８３に対応するものであり、例えば図２に示されるシステムにおいてエンコーダおよびデコーダの両方が実現される場合、すなわち、例えば図２のサブCPUコア２４２−１においてエンコーダが実現され、サブCPUコア２４２−２においてデコーダが実現されるような場合、エンコーダとデコーダが互いに共通の外部メモリを使用するようにしてもよい。外部メモリ８８３は、内部メモリ８１１に対して、例えば、回路規模が小さく実装密度を上げやすい、消費電力が小さい、動作が低速、および、読み書きの手順が複雑であるといった特徴を有する。つまり、外部メモリ８８３は、内部メモリ８１１に比べて、動作が低速であるものの、大容量のデータを保持することができる。
【０１２５】
［動作説明］
次に、図２７に示されるデコーダの動作について説明する。例えば、XDR-RAM２０３等の外部メモリ８８３や、HDD２０５に記憶されている符号化ストリーム３５３は、ウェーブレット逆変換処理の処理単位ごとに読み出され、共有バス２４５を介して、矢印８６１に示されるように入力バッファ８２１に供給され、一時的に保持される。入力制御部８２２は、入力バッファ８２１に所定量（例えば、ウェーブレット逆変換処理の処理単位）の符号化データが蓄積されると、矢印８６２に示されるようにそれを読み出し、矢印８６３に示されるようにエントロピ復号部８２３に供給する。エントロピ復号部８２３は、供給される符号化データを復号し、得られた係数を矢印８６４のようにウェーブレット逆変換部８１２のフィルタ処理部８２４に供給する。
【０１２６】
フィルタ処理部８２４の垂直合成フィルタ部８３１は、入力された、ＬＬ成分、ＨＬ成分、ＬＨ成分、およびＨＨ成分の各成分の係数に対して垂直合成フィルタリングを行う。途中計算バッファ制御部８２５は、その垂直合成フィルタリング結果（垂直方向に低域成分と高域成分が合成された係数）を、適宜、矢印８６５のように取得し、矢印８６６のように途中計算バッファ８２６に保持させる。所定ライン数（例えば６ライン）の係数が蓄積されると、途中計算バッファ制御部８２５は、矢印８６７のように読み出し、矢印８６８のようにフィルタ処理部８２４に供給する。水平合成フィルタ部８３２は、その係数に対して水平合成フィルタリングを行う。
【０１２７】
実際には、垂直合成フィルタリングおよび水平合成フィルタリングの各処理は、リフティング演算を用いて行われる。例えば図２９に示されるように、９×７フィルタの場合には６ライン分のバファリングが必要であり、画面上から下方向にライン入力がある。従って、ライン１が最新の入力ということになる。図２９の左図のケース１では最上部から６ライン分の垂直方向の係数（低域（○）、高域（□））が並んでおり、リフティング演算は画面左から右方向に行われる。Step１からStep４まで実行することで、ライン５の係数が得られる。図中の赤丸及び赤四角の記号は、６ラインに入っている実際の係数である。それまでの係数は途中計算用としてバッファされ、次の演算に使用される。
【０１２８】
次に垂直方向にラインをずらしながらフィルタリングを行うが、１ライン入力してもリフティング演算は出来ないので、本実施形態では２ラインずらす。その結果がケース２になる。ケース１と同様に左から右の時間方向にリフティング演算を行い、Step３まで行う。次のStep４は、ライン６の□の係数が必要であるが、これはケース１のライン４で生成された係数をそのまま使えば良い。
【０１２９】
以上の動作により、ケース２のStep４とStep３の出力が、次のレベルの低域成分（ＬＬ）として使われる。これを図２８で説明すると、例えば分割レベル３でのライン６とライン５のＬＬ成分出力が、分割レベル２のライン１に入力することを示している。同様にして、レベル２でのライン６とライン５のLL成分出力が、レベル１のライン１に入力することを示している。つまり、垂直合成フィルタ部８３１は、垂直方向のフィルタリングを実行するのに必要なＮラインのサンプルが用意でき次第、垂直合成フィルタリングを実行する。また、水平合成フィルタ部８３２は、水平方向のフィルタリングを実行するのに必要なＭコラムのサンプルが用意でき次第、水平合成フィルタリングを実行する。
【０１３０】
フィルタ処理部８２４は、目標の分割レベルに達するまで、合成フィルタ処理を再帰的に繰り返す。そこで、途中計算バッファ制御部８２５は、算出された係数を、矢印８６５に示されるようにフィルタ処理部８２４より取得し、矢印８６６に示されるように途中計算バッファ８２６に保持させる。また、途中計算バッファ制御部８２５は、合成フィルタリングにおいて生成されたリフティング演算途中の係数の一部も、同様に途中計算バッファ８２６に保持させる。途中計算バッファ制御部８２５は、フィルタ処理部８２４による次（１つ上位）の分割レベルを対象とする合成フィルタ処理のために、途中計算バッファ８２６に保持されている係数を、適宜、矢印８６７のように読み出し、矢印８６８に示されるようにフィルタ処理部８２４に供給する。フィルタ処理部８２４は、処理対象分割レベルを１つ上位のレベルに更新し、途中計算バッファ制御部８２５により途中計算バッファ８２６より読み出された係数をＬＬ成分とし、その他の成分をエントロピ復号部８２３より取得し、それらの係数に対して垂直合成フィルタリングや水平合成フィルタリングを行う。
【０１３１】
フィルタ処理部８２４は、１つ目の目標分割レベル（第１の目標分割レベル）に達するまで、各分割レベルのＬＬ成分に対して、このようにフィルタ処理を再帰的に繰り返す。第１の目標分割レベルの係数（後にＬＬ成分として使用される係数）は、途中計算バッファ８２６ではなく外部メモリ８８３に保持される。外部メモリ入出力制御部８８１は、第１の目標分割レベルの係数が生成されると、それを、矢印８６９に示されるようにフィルタ処理部８２４より取得し、矢印８７０および矢印８７１に示されるように、入出力バッファ８８２を介して外部メモリ８８３に保持させる。
【０１３２】
そして、フィルタ処理の処理対象レベルが第１の目標分割レベルになると、外部メモリ入出力制御部８８１は、外部メモリ８８３に保持されている係数を、矢印８７２および矢印８７３に示されるように入出力バッファ８８２を介して読み出し、矢印８７４に示されるようにフィルタ処理部８２４に供給する。この係数は、ＬＬ成分として使用される。垂直合成フィルタ部８３１は、この外部メモリ８８３より読み出されたＬＬ成分の係数と、エントロピ復号部８２３より供給された、第１の目標分割レベルのその他の成分や演算途中の係数を用いて、垂直合成フィルタリングを行う。水平合成フィルタリングは、これまでの階層と同様に行われる。この第１の目標分割レベルにおける合成フィルタ処理結果は、途中計算バッファ８２６に保持される。それ以降、フィルタ処理部８２４は、分割レベルが２つ目の目標分割レベル（第２の目標分割レベル）に達するまで、上述したように、各分割レベルの係数に対してフィルタ処理を再帰的に繰り返す。このとき、生成されるＬＬ成分の係数や途中の係数は、途中計算バッファ制御部８２５の制御によって、適宜、途中計算バッファ８２６に保持され、必要に応じて利用される。以上のようにして生成された第２の目標分割レベルの係数、すなわち、ベースバンドの画像データは、矢印８７５に示されるように出力制御部８２７により取得される。出力制御部８２７は、取得した係数を矢印８７６および矢印８７７に示されるように、出力バッファ８２８を介して、原画像３５１として、プロセッサ８０１の外部に出力する。
【０１３３】
仮に、従来のように、ウェーブレット逆変換処理において生成される各分割レベルの係数を、全て途中計算バッファ８２６に保持させるとすると、エンコーダの場合と同様に、途中計算バッファ８２６の容量よりも係数のデータ量の方が大きくなる。つまり、従来の方法では、途中計算バッファ８２６では容量が不足する。この場合、容量不足分の係数は外部メモリ８８３に保持させる必要があるため、この係数保持を無計画に行うと、外部メモリ８８３へのアクセス数が増大し、遅延時間が不要に増大する恐れがある。例えば、大容量の外部メモリ８８３を単純に優先的に利用するようにすると、途中計算バッファ８２６は使用されず、処理速度が不要に低下してしまう恐れがあった。逆に、高速に読み書き可能な途中計算バッファ８２６を単純に優先的に使用するようにすると、分割レベルの深い階層において外部メモリ８８３が使用されるので、アクセス頻度が増大し、処理速度が不要に低下してしまう恐れがあった。
【０１３４】
そこで、図２７に示される本発明を適用したデコーダは、所定の階層の分割レベル（第１の目標分割レベル）を予め定め、その予め定められた第１の目標分割レベルのＬＬ成分のみを外部メモリ８８３に保持させるようにする。例えば、この第１の目標分割レベルを分割レベル１とすると、図３０Ａに示されるように、分割レベル１になるまで合成フィルタ処理が繰り返される。そして生成された分割レベル１の係数は、外部メモリ８８３に保持された後、分割レベル１のＬＬ成分（１ＬＬ）の係数として読み出され、分割レベル１の合成フィルタ処理に使用される。つまり、第１の目標分割レベルの１つ下位の分割レベルの係数まで途中計算バッファ８２６に保持し、第１の目標分割レベルのＬＬ成分を外部メモリ８８３に一時的に退避させる。第１の目標分割レベルの１つ下位のフィルタ処理が完了すると、途中計算バッファ８２６に保持される上位の階層の係数が不要になる。そこで、外部メモリ８８３に保持される第１の目標分割レベルの係数を用いてそれ以降の階層に対するフィルタ処理が開始される。このとき途中計算バッファ８２６に空き容量が生じるので、それ以降に生成される係数は、途中計算バッファ８２６に保持させることができる。つまり、外部メモリ８８３を用いることにより、途中計算バッファ８２６を、時間的に２回に分けて利用する。
【０１３５】
なお、第１の目標分割レベルより前のウェーブレット変換をステップ１とし、第１の目標分割レベル以降のウェーブレット変換をステップ２とする。ステップ１とステップ２は時間的にずれているので、この場合、途中計算バッファ８２６の容量は、98Ｋバイト以上あればよい。つまり、ウェーブレット変換処理全体において、途中計算バッファ８２６に、途中計算バッファ８２６の記憶容量以上の容量の係数を保持させることができる。
【０１３６】
以上のように制御することにより、高速に読み書き可能な途中計算バッファ８２６をより多く利用し、外部メモリ８８３の利用を必要最小限に抑制することができるので、外部メモリ８８３を利用することによる処理時間の増大を抑制することができる。すなわち、図２７に示されるデコーダは、よりハードウエア資源をより有効に利用することができ、ウェーブレット変換を用いた復号処理をより容易かつより高速に行うことができる。このように、図２７に示されるデコーダは、復号処理全体の処理時間を低減させることができるとともに、コストの増大を抑制することができる。
【０１３７】
［処理の流れの説明］
次に以上のような復号処理の流れの例を、図３１のフローチャートを参照して説明する。図２７のデコーダは、この復号処理を、原画像３５１のラインブロックに対応する所定量の符号化データ毎に実行する。
【０１３８】
復号処理が開始されると、入力制御部８２２、エントロピ復号部８２３、およびウェーブレット逆変換部８１２は、ステップＳ４０１において、入力バッファ８２１に入力された符号化データを復号し、得られた係数に対して垂直合成フィルタリングを行う第１復号垂直合成フィルタ処理を行う。第１復号垂直合成フィルタ処理の詳細については後述する。第１復号垂直合成フィルタ処理が終了すると、ウェーブレット逆変換部８１２は、ステップＳ４０２において、処理後の分割レベルが第１の目標分割レベルであるか否かを判定する。現在の処理対象分割レベルが第１の目標分割レベルの１つ下位でなく、フィルタ処理により第１の目標分割レベルの係数が生成されないと判定された場合、処理はステップＳ４０３に進む。
【０１３９】
ステップＳ４０３において、ウェーブレット逆変換部８１２は、垂直合成フィルタ処理結果に対して水平合成フィルタリングを行い、生成した係数を途中計算バッファ８２６に保持させる処理である第１水平合成フィルタ処理を行う。第１水平合成フィルタ処理の詳細については後述する。第１水平合成フィルタ処理が行われると、ウェーブレット逆変換部８１２は、ステップＳ４０４において、処理対象分割レベルを１つ上位の分割レベルに更新し、内部メモリ８１１の途中計算バッファ８２６に保持した合成結果の係数を、処理対象分割レベルのＬＬ成分とし、入力データとする。ウェーブレット逆変換部８１２、エントロピ復号部８２３、および入力制御部８２２は、ステップＳ４０５において、入力バッファ８２１に入力された符号化データを復号し、得られた処理対象分割レベルのＨＬ成分、ＬＨ成分、およびＨＨ成分の係数と、途中計算バッファ８２６より読み出したＬＬ成分とに対して垂直合成フィルタリングを行う第２復号垂直合成フィルタ処理を行う。第２復号垂直合成フィルタ処理の詳細については後述する。
【０１４０】
ステップＳ４０５の処理が終了すると、処理は、ステップＳ４０２に戻る。つまり、入力制御部８２２、エントロピ復号部８２３、およびウェーブレット逆変換部８１２は、ステップＳ４０２において処理後の分割レベルが第１の目標分割レベルであると判定されるまで、ステップＳ４０２乃至ステップＳ４０５の処理を繰り返し実行する。そして、ステップＳ４０２において、現在の処理対象分割レベルが第１の目標分割レベルの１つ下位であり、フィルタ処理により第１の目標分割レベルの係数が生成されると判定された場合、処理はステップＳ４０６に進む。
【０１４１】
ステップＳ４０６において、ウェーブレット逆変換部８１２は、垂直合成フィルタ処理結果に対して水平合成フィルタリングを行い、生成した第１目標分割レベルの係数を外部メモリ８８３に保持させる処理である第２水平合成フィルタ処理を行う。第２水平合成フィルタ処理の詳細については後述する。ここまでのステップＳ４０１乃至ステップＳ４０６が、上述した「ステップ１」の処理として実行される。
【０１４２】
第１目標分割レベルの係数（ＬＬ成分）が外部メモリ８８３に蓄積され、第２水平合成フィルタ処理が終了すると、処理はステップＳ４１１に進む。ステップＳ４１１において、ウェーブレット逆変換部８１２は、処理対象分割レベルを１つ上位の分割レベルに更新し、外部メモリ８８３に保持した合成結果の係数を、処理対象分割レベルのＬＬ成分とし、入力データとする。ステップＳ４１２において、ウェーブレット逆変換部８１２、エントロピ復号部８２３、および入力制御部８２２は、第３復号垂直合成フィルタ処理を行う。第３復号垂直合成フィルタ処理の詳細については後述する。
【０１４３】
ステップＳ４１３において、ウェーブレット逆変換部８１２は、処理後の分割レベルが第２の目標分割レベルであるか否かを判定する。現在の処理対象分割レベルが第２の目標分割レベルの１つ下位でなく、フィルタ処理により第２の目標分割レベルの係数が生成されないと判定された場合、処理はステップＳ４１４に進む。
【０１４４】
ステップＳ４１４において、ウェーブレット逆変換部８１２は、垂直合成フィルタ処理結果に対して第１の水平合成フィルタ処理を行う。ステップＳ４１５において、ウェーブレット逆変換部８１２は、処理対象分割レベルを１つ上位の階層に更新し、内部メモリ８１１の途中計算バッファ８２６に保持される合成結果の係数をＬＬ成分とする。ステップＳ４１６において、ウェーブレット逆変換部８１２は、第２復号垂直合成フィルタ処理を行う。ステップＳ４１６の処理が終了されると、処理は、ステップＳ４１３に戻る。
【０１４５】
ステップＳ４１３において、処理後の分割レベルが第２の目標分割レベルに達したと判定された場合、処理はステップＳ４１７に進む。ステップＳ４１７において、ウェーブレット逆変換部８１２は、垂直合成フィルタ処理結果に対して水平合成フィルタリングを行い、生成した第２の目標分割レベルの係数を出力させる処理である第３水平合成フィルタ処理を行う。第３水平合成フィルタ処理の詳細については後述する。ここまでのステップＳ４１１乃至ステップＳ４１７が、上述した「ステップ２」の処理として実行される。
【０１４６】
以上のようにステップＳ４１７の処理が終了されると、復号処理が終了される。このように、外部メモリ８８３を利用して、復号処理をステップ１とステップ２の２つに分けて行うようにしたので、図２７のデコーダは、復号処理全体において、途中計算バッファ８２６に実際の記憶容量以上の情報を保持させることができ、ハードウエア資源の利用効率を向上させることができる。
【０１４７】
次に、図３２のフローチャートを参照して、第１復号垂直合成フィルタ処理の流れの詳細な例を説明する。
【０１４８】
第１復号垂直合成フィルタ処理が開始されると、入力制御部８２２は、ステップＳ４３１において、内部メモリ８１１の入力バッファ８２１から処理対象分割レベルの各成分の処理単位ライン数の符号化データを入力し、エントロピ復号部８２３に供給する。エントロピ復号部８２３は、ステップＳ４３２において、供給された符号化データを復号する。
【０１４９】
ステップＳ４３３において、途中計算バッファ制御部８２５は、内部メモリ３１１の途中計算バッファ８２６から、垂直合成フィルタリングに必要なその他の係数を読み出す。フィルタ処理に必要な係数が揃うと、垂直合成フィルタ部８３１は、ステップＳ４３４において、ステップＳ４３２およびステップＳ４３３の処理により得られた係数に対して垂直合成フィルタリングを行う。ステップＳ４３５において、途中計算バッファ制御部８２５は、その垂直方向の合成結果の係数を内部メモリ８１１の途中計算バッファ８２６に保持させる。ステップＳ４３６において、途中計算バッファ制御部８２５は、次回の合成フィルタ処理に必要なその他の係数を内部メモリ８１１の途中計算バッファ８２６に保持させる。
【０１５０】
ステップＳ４３７において、ウェーブレット逆変換部８１２は、内部メモリ８１１の入力バッファ８２１に保持される処理対象分割レベルの符号化データを全て処理したか否かを判定する。全て処理していないと判定された場合、処理は、ステップＳ４３１に戻り、それ以降の処理を繰り返す。すなわち、ウェーブレット逆変換部８１２は、入力バッファ８２１に保持される処理対象分割レベルの符号化データに対して、ステップＳ４３１乃至ステップＳ４３７の処理を繰り返し実行することにより、所定量単位で垂直合成フィルタリングを行う。ステップＳ４３７において、内部メモリ８１１の入力バッファ８２１に保持される画像データ（ラインブロック）を全て処理したと判定された場合、第１復号垂直合成フィルタ処理が終了され、処理は、図３１のステップＳ４０１に戻り、ステップＳ４０２に進む。
【０１５１】
次に、図３３のフローチャートを参照して、第１水平合成フィルタ処理の流れの詳細な例を説明する。
【０１５２】
第１水平合成フィルタ処理が開始されると、途中計算バッファ制御部８２５は、ステップＳ４５１において、内部メモリ８１１の途中計算バッファ８２６から処理対象分割レベルにおける垂直合成フィルタリング結果の各成分の処理単位ライン数（例えば６ライン）の係数を読み出す。また、途中計算バッファ制御部８２５は、ステップＳ４５２において、内部メモリ８１１の途中計算バッファ８２６から水平合成フィルタリングに必要なその他の係数を読み出す。ステップＳ４５３において、水平合成フィルタ部８３２は、ステップＳ４５１およびステップＳ４５２の処理により読み出された各係数を用いて水平合成フィルタリングを行う。ステップＳ４５４において、途中計算バッファ制御部８２５は、水平方向の合成結果の係数を内部メモリ８１１の途中計算バッファ８２６に保持させる。ステップＳ４５５において、途中計算バッファ制御部８２５は、次回のフィルタ処理に必要なその他の係数を内部メモリ８１１の途中計算バッファ８２６に保持させる。
【０１５３】
ステップＳ４５６において、ウェーブレット逆変換部８１２は、内部メモリ８１１の途中計算バッファ８２６に保持される処理対象分割レベルにおける垂直合成フィルタリング結果の係数を全て処理したか否かを判定する。全て処理していないと判定された場合、処理は、ステップＳ４５１に戻り、それ以降の処理を繰り返す。
【０１５４】
すなわち、ウェーブレット逆変換部８１２は、途中計算バッファ８２６に保持される、処理対象分割レベルの係数に対して、所定量の係数毎にステップＳ４５１乃至ステップＳ４５６の処理を繰り返し実行する。
【０１５５】
ステップＳ４５６において、内部メモリ８１１の途中計算バッファ８２６に保持される処理対象分割レベルにおける水平合成フィルタリング結果の係数を全て処理したと判定された場合、処理は図３１に戻る。図３１のステップＳ４０６において実行された第１水平合成フィルタ符号化処理の場合、処理は、図３１のステップＳ４０６に戻り、ステップＳ４１１に進む。また、図３１のステップＳ４１４において実行された第１垂直分析フィルタ符号化処理の場合、処理は、図３１のステップＳ４１４に戻り、ステップＳ４１５に進む。
【０１５６】
次に、図３４のフローチャートを参照して、第２復号垂直合成フィルタ処理の流れの詳細な例を説明する。第２復号垂直合成フィルタ処理の処理内容は、基本的に第１復号垂直合成フィルタ処理と同様であるが、第２復号垂直合成フィルタ処理は、途中計算バッファ８２６に保持される、１つ上位の分割レベルにおいて算出された合成結果をＬＬ成分とし、そのＬＬ成分を用いた垂直合成フィルタ処理を行う。
【０１５７】
したがって、第２復号垂直合成フィルタ処理が開始されると、入力制御部８２２は、ステップＳ４７１において、内部メモリ８１１の入力バッファ８２１から処理対象分割レベルの、ＨＬ成分、ＬＨ成分、およびＨＨ成分の処理単位ライン数の符号化データを入力し、エントロピ復号部８２３に供給する。エントロピ復号部８２３は、ステップＳ４７２において、供給された符号化データを復号する。ステップＳ４７３において、途中計算バッファ制御部８２５は、内部メモリ３１１の途中計算バッファ８２６から、処理対象分割レベルのＬＬ成分の処理単位ライン数の係数を読み出す。
【０１５８】
ステップＳ４７４乃至ステップＳ４７８の各処理は、図３２のステップＳ４３３乃至ステップＳ４３７の各処理と同様に実行される。ステップＳ４７８において、内部メモリ８１１の入力バッファ８２１に保持される画像データ（ラインブロック）を全て処理したと判定された場合、第２復号垂直合成フィルタ処理が終了され、処理は図３１に戻る。図３１のステップＳ４０５において実行された第２復号垂直合成フィルタ処理の場合、処理は、図３１のステップＳ４０５に戻り、さらにステップＳ４０２に戻る。また、図３１のステップＳ４１６において実行された第２復号垂直合成フィルタ処理の場合、処理は、図３１のステップＳ４１６に戻り、さらに図３１のステップＳ４１３に戻る。
【０１５９】
次に、図３５のフローチャートを参照して、第２水平合成フィルタ処理の流れの詳細な例を説明する。第２水平合成フィルタ処理の処理内容は、基本的に第１水平合成フィルタ処理と同様であるが、第２水平合成フィルタ処理は、算出した合成結果を、外部メモリ８８３に保持させる。
【０１６０】
つまり、第２水平合成フィルタ処理が開始されると、途中計算バッファ制御部８２５および水平合成フィルタ部８３２は、ステップＳ４９１乃至ステップＳ４９３の各処理を、図３３のステップＳ４５１乃至ステップＳ４５３の各処理と同様に実行し、水平合成フィルタリングを行う。ステップＳ４９４において、外部メモリ入出力制御部８８１は、ステップＳ４９３の処理により生成された合成結果の係数を、内部メモリ８１１の入出力バッファ８８２に保持させる。ステップＳ４９５において、外部メモリ入出力制御部８８１は、ステップＳ４９４の処理により入出力バッファ８８２に保持される合成結果の係数を、外部メモリ８８３に書き込む。
【０１６１】
ステップＳ４９６およびステップＳ４９７の各処理は、図３３のステップＳ４５５およびステップＳ４５６の各処理と同様に行われる。ステップＳ４９７において、内部メモリ８１１の途中計算バッファ８２６に保持される処理対象分割レベルにおける水平合成フィルタリング結果の係数を全て処理したと判定された場合、処理は図３１のステップＳ４０６に戻り、ステップＳ４１１に進む。
【０１６２】
次に、図３６のフローチャートを参照して、第３復号垂直合成フィルタ処理の流れの詳細な例を説明する。第３復号垂直合成フィルタ処理の処理内容は、基本的に第１復号垂直合成フィルタ処理と同様であるが、第３復号垂直合成フィルタ処理は、外部メモリ８８３に保持される、１つ上位の分割レベルにおいて算出された合成結果をＬＬ成分とし、そのＬＬ成分を用いた垂直合成フィルタ処理を行う。
【０１６３】
したがって、第３復号垂直合成フィルタ処理が開始されると、入力制御部８２２は、ステップＳ５１１において、内部メモリ８１１の入力バッファ８２１から処理対象分割レベルの、ＨＬ成分、ＬＨ成分、およびＨＨ成分の処理単位ライン数の符号化データを入力し、エントロピ復号部８２３に供給する。エントロピ復号部８２３は、ステップＳ５１２において、供給された符号化データを復号する。ステップＳ５１３において、外部メモリ入出力制御部８８１は、外部メモリ８８３から、処理対象分割レベルのＬＬ成分の処理単位ライン数の係数を読み出し、内部メモリ８１１の入出力バッファ８８２に保持させる。ステップＳ５１４において、外部メモリ入出力制御部８８１は、内部メモリ８１１の入出力バッファ８８２から、ステップＳ５１３の処理により保持させたＬＬ成分の係数を読み出し、フィルタ処理部８２４に入力する。
【０１６４】
ステップＳ５１５乃至ステップＳ５１９の各処理は、図３２のステップＳ４３３乃至ステップＳ４３７の各処理と同様に実行される。ステップＳ５１９において、内部メモリ８１１の入力バッファ８２１に保持される処理対象分割レベルの符号化データを全て処理したと判定された場合、第３復号垂直合成フィルタ処理が終了され、処理は、図３１のステップＳ４１２に戻り、ステップＳ４１３に進む。
【０１６５】
次に、図３７のフローチャートを参照して、第３水平合成フィルタ処理の流れの詳細な例を説明する。第３水平合成フィルタ処理の処理内容は、基本的に第１水平合成フィルタ処理と同様であるが、第３水平合成フィルタ処理は、算出した合成結果の係数を、プロセッサ８０１の外部に出力する。
【０１６６】
つまり、第３水平合成フィルタ処理が開始されると、途中計算バッファ制御部８２５および水平合成フィルタ部８３２は、ステップＳ５３１乃至ステップＳ５３３の各処理を、図３３のステップＳ４５１乃至ステップＳ４５３の各処理と同様に実行し、水平合成フィルタリングを行う。ステップＳ５３４において、出力制御部８２７は、ステップＳ５３３の処理により生成された合成結果の係数（ベースバンドの画像データ）を、出力バッファ８２８を介してプロセッサ８０１の外部に出力させる。ステップＳ５３５およびステップＳ５３６の各処理は、図３３のステップＳ４５５およびステップＳ４５６の各処理と同様に実行される。
【０１６７】
ステップＳ５３６において、内部メモリ８１１の途中計算バッファ８２６に保持される処理対象分割レベルにおける水平合成フィルタリング結果の係数を全て処理したと判定された場合、処理は図３１のステップＳ４１７に戻り、復号処理が終了される。
【０１６８】
以上のように、第１の目標分割レベルを外部メモリ８８３に保持させることにより、分割レベル毎に再帰的に繰り返されるフィルタ処理を、ステップ１とステップ２の２つに分ける。このようにすることにより、途中計算バッファ８２６を、ステップ１とステップ２の２回に分けて利用することができ、途中計算バッファ８２６の実際の記憶容量より多い量の係数を途中計算バッファ８２６に保持させることができる。つまり、途中計算バッファ８２６の記憶容量を時分割して利用することにより擬似的に記憶容量を増大させることができる。したがって、途中計算バッファ８２６の利用効率を向上させることができる。
【０１６９】
なお、この第１目標分割レベルとする分割レベルは、ウェーブレット変換処理の最終分割レベルである第２目標分割レベルより上位の階層であれば、任意の分割レベルとしてよい。ただし、途中計算バッファ８２６（内部メモリ８１１）として必要な記憶容量、つまり、ステップ１において必要な容量とステップ２において必要な容量の大きい方の値ができるだけ小さくなるようにするのが望ましい。図２８に示されるように、保持される係数は、分割レベルが下位になる毎に半減する。したがって、分割レベル１を第１目標分割レベルとするのが望ましい。
【０１７０】
なお、例えば、第１目標分割レベルとして複数の分割レベルを設定するようにしてもよい。また、ＬＬ成分の保存先の切り替えを、ある分割レベルの水平合成フィルタリング中に行うようにしても良い。いずれも符号化処理の場合と同様である。また、図２７に示されるデコーダにおいても、入出力バッファ８８２のメモリバンク構成を１バンク構成としてもよいし、２バンク構成としてもよい。符号化処理の場合と同様に、２バンク構成とする方が、入出力バッファ８８２に対するデータの入出力を、ウェーブレット逆変換処理と並行して行うことができる。つまり、ハードウエア資源の利用効率を向上させることができる。
【０１７１】
なお、エンコーダの場合に説明したように、デコーダの場合も、入出力バッファ８８２のメモリバンクの構成を複数バンクとしてもよい。入出力バッファ８８２のメモリバンクを２バンク以上とすることにより、外部メモリ８８３への情報の読み出しや書き込みを、ウェーブレット逆変換処理と並行して行うことができるようになる。
【０１７２】
以上のように、図３のエンコーダと図２７のデコーダは、例えば、図２に示される情報処理システム１００の情報処理装置１０１により実現される。マイクロプロセッサ２０１には、複数のサブCPUコア２４２が設けられているが、このような場合、一部または全部のサブCPUコア２４２のそれぞれにおいて、図３のエンコーダまたは図２７のデコーダを実現するようにしてもよい。つまり、マイクロプロセッサ２０１において、例えば、１つまたは複数のエンコーダを実現するようにしてもよいし、１つまたは複数のデコーダを実現するようにしてもよいし、エンコーダおよびデコーダの両方を実現するようにしてもよい。
【０１７３】
本発明を適用した図３のエンコーダおよび図２７のデコーダは、複数の記憶領域を計画的に利用することにより、ハードウエア資源の利用効率を向上させるものであるので、複数の記憶領域を有する情報処理装置であれば実現可能であり、図２に示される情報処理装置１０１以外において実現することもできる。例えば、シングルコアのプロセッサを１つ有するパーソナルコンピュータにおいても実現することができる。もちろん、マルチコアプロセッサであってもよいし、複数の記憶領域を有する限り、プロセッサの個数等、各種ハードウエア構成は任意である。
【０１７４】
また図３および図２７においては、利用する記憶領域を内部メモリと外部メモリとして説明したが、どのような記憶領域を利用するようにしてもよい。例えば図２の情報処理装置１０１を適用する場合、エンコーダおよびデコーダの外部メモリや内部メモリは、例えば、各サブCPUコア２４２の内部メモリ、XDR-RAM２０３、HDD２０５、GPU２０２の内部メモリ、メインCPUコア２４１の内部メモリ、または、他のサブCPUコア２４２の内部メモリ等、どの記憶領域を用いて実現するようにしてもよい。また、複数の記憶領域を用いて実現するようにしてもよい。
【０１７５】
ただし、本発明を適用することにより、複数の記憶領域を計画的に利用するエンコーダやデコーダを実現することができる。したがって、主に利用する記憶領域の容量が制限され、ウェーブレット変換や逆ウェーブレット変換において保持する必要のある係数を全て保持することができないが、他の記憶領域を利用することにより全ての係数を保持することができる情報処理装置において実現する場合の方が、本発明を適用することにより得られる効果はより大きくなる。また、本発明を適用することにより、主に利用する記憶領域をより有効に利用するエンコーダまたはデコーダを実現することができるので、主に利用する記憶領域へのアクセス速度（情報の読み出しや書き込みの速度）が他の記憶領域に比べて高速である情報処理装置において実現する場合の方が、本発明を適用することにより得られる効果はより大きくなる。
【０１７６】
なお、この記憶領域のアクセス速度は、記憶領域の特性によるものであってもよいし、その記憶領域が接続されるバスの特性によるものであってもよい。また、例えば、専用バスで接続される専用メモリと、共有バスで接続される共有メモリのような統計的なアクセス速度の差も考えられる。
【０１７７】
特に、図３や図２７を参照して説明したような内部メモリや外部メモリを利用する場合、本発明を適用することにより、各記憶領域へのアクセス制御をより適切に行うことができる。また、実行される符号化処理および復号処理も任意であるが、上述したようなウェーブレット変換またはウェーブレット逆変換を利用した、所定数のライン単位で行われる符号化処理または復号処理の場合、本発明を適用することにより、各フローチャートを参照して説明したように、より適切に各記憶領域へのアクセス制御を行うことができ、ハードウエア資源の利用効率をより向上させることができる。
【０１７８】
なお、以上においては、エンコーダまたはデコーダとして説明したが、本発明は、ウェーブレット変換・ウェーブレット逆変換の各処理においてハードウエア資源の利用効率を向上させるものである。したがって、エントロピ符号化部３２６やエントロピ復号部８２３は、省略することができる。例えば、図３のエンコーダの場合、エントロピ符号化部３２６を他のプロセッサにおいて実現するようにし、出力制御部３２７がフィルタ処理部３２３の出力を、出力バッファ３２８を介して、プロセッサ３０１の外部にあるその他のプロセッサに出力するようにしてもよい。同様に、例えば、図２７のデコーダの場合、エントロピ復号部８２３を他のプロセッサにおいて実現するようにし、入力制御部８２２が、エントロピ復号部８２３の出力を、入力バッファ８２１を介してプロセッサ８０１の外部より取得するようにしてもよい。
【０１７９】
上述した一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、ネットワークや記録媒体からインストールされる。この記録媒体は、例えば、図２に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM（Compact Disc - Read Only Memory）,DVD（Digital Versatile Disc）を含む）、光磁気ディスク（MD（Mini Disc）を含む）、もしくは半導体メモリなどよりなるリムーバブルメディア１１１により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているHDD２０５や記憶装置１０３に含まれるハードディスクやメモリなどで構成される。
【０１８０】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１８１】
もちろん、上述した一連の処理は、汎用のハードウエアを用いてソフトウエアを実行することにより実現させることもできるが、専用のハードウエアにより実現させることもできる。
【０１８２】
また、本明細書において、システムとは、複数のデバイス（装置）により構成される装置全体を表わすものである。
【０１８３】
なお、以上において、１つの装置（または処理部）として説明した構成を分割し、複数の装置（または処理部）として構成するようにしてもよい。逆に、以上において複数の装置（または処理部）として説明した構成をまとめて１つの装置（または処理部）として構成されるようにしてもよい。また、各装置（または処理部）の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置（または処理部）の構成の一部を他の装置（または処理部）の構成に含めるようにしてもよい。つまり、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【産業上の利用分野】
【０１８４】
本発明を適用したエンコーダおよびデコーダは、例えば、デジタルシネマ用編集装置、アーカイブシステム、放送局の画像伝送装置、画像データベース、医用画像の記録システム、ネットワークサーバ、ノンリニア編集装置、ゲーム機、テレビ受像機システム、HDDレコーダ、PC上のオーサリング・ツールまたはそのソフトウェア・モジュール等として適用することができる。もちろん、これ以外に適用するようにしてもよい。
【図面の簡単な説明】
【０１８５】
【図１】従来のエンコーダの主な構成例を示すブロック図である。
【図２】本発明を適用したエンコーダやデコーダを実現するハードウエアの主な構成例を示すブロック図である。
【図３】本発明を適用したエンコーダの主な構成例を示すブロック図である。
【図４】ウェーブレット変換の概要を説明する図である。
【図５】分析フィルタリングの概要を説明する図である。
【図６】分析フィルタリングの概要を説明する図５に続く図である。
【図７】分析フィルタリングの順序例を説明する図である。
【図８】分析フィルタリングの順序例を説明する図である。
【図９】ラインブロックを説明する図である。
【図１０】９×７フィルタの例を示す図である。
【図１１】分析フィルタリングのリフティング演算例を説明する図である。
【図１２】ウェーブレット変換時に内部メモリに保持される係数を説明する図である。
【図１３】本発明を適用したウェーブレット変換の概要を説明する図である。
【図１４】符号化処理の流れの例を説明するフローチャートである。
【図１５】第１水平分析フィルタ処理の流れの例を説明するフローチャートである。
【図１６】第１垂直分析フィルタ符号化処理の流れの例を説明するフローチャートである。
【図１７】第２水平分析フィルタ処理の流れの例を説明するフローチャートである。
【図１８】第２垂直分析フィルタ符号化処理の流れの例を説明するフローチャートである。
【図１９】第３水平分析フィルタ処理の流れの例を説明するフローチャートである。
【図２０】第３垂直分析フィルタ符号化処理の流れの例を説明するフローチャートである。
【図２１】外部メモリへの情報書き込みに利用される入出力バッファが１バンク構成の場合の外部メモリへの情報書き込みの様子を説明する図である。
【図２２】外部メモリへの情報書き込みに利用される入出力バッファが２バンク構成の場合の外部メモリへの情報書き込みの様子を説明する図である。
【図２３】外部メモリへの情報書き込みに利用される入出力バッファのバンク構成毎の処理の流れの様子の例を示す図である。
【図２４】外部メモリからの情報読み出しに利用される入出力バッファが１バンク構成の場合の外部メモリからの情報読み出しの様子を説明する図である。
【図２５】外部メモリからの情報読み出しに利用される入出力バッファが２バンク構成の場合の外部メモリからの情報読み出しの様子を説明する図である。
【図２６】外部メモリからの情報読み出しに利用される入出力バッファのバンク構成毎の処理の流れの様子の例を示す図である。
【図２７】本発明を適用したデコーダの主な構成例を示すブロック図である。
【図２８】ウェーブレット逆変換時に内部メモリに保持される係数を説明する図である。
【図２９】合成フィルタリングのリフティング演算例を説明する図である。
【図３０】本発明を適用したウェーブレット逆変換の概要を説明する図である。
【図３１】復号処理の流れの例を説明するフローチャートである。
【図３２】第１復号垂直合成フィルタ処理の流れの例を説明するフローチャートである。
【図３３】第１水平合成フィルタ処理の流れの例を説明するフローチャートである。
【図３４】第２復号垂直合成フィルタ処理の流れの例を説明するフローチャートである。
【図３５】第２水平合成フィルタ処理の流れの例を説明するフローチャートである。
【図３６】第３復号垂直合成フィルタ処理の流れの例を説明するフローチャートである。
【図３７】第３水平合成フィルタ処理の流れの例を説明するフローチャートである。
【符号の説明】
【０１８６】
１００  情報処理システム，  １０１  情報処理装置，  ２０１  マイクロプロセッサ，  ２０３  XDR-RAM，  ２４２  サブCPUコア，  ３０１  プロセッサ，  ３１１  内部メモリ，  ３１２  ウェーブレット変換部，  ３２３  フィルタ処理部，  ３２４  途中計算バッファ制御部，  ３２５  途中計算バッファ，  ３２６  エントロピ符号化部，  ３８１  外部メモリ入出力制御部，  ３８２  入出力バッファ，  ３８３  外部メモリ，  ８０１  プロセッサ，  ８１１  内部メモリ，  ８１２  ウェーブレット逆変換部，  ８２３  エントロピ復号部，  ８２４  フィルタ処理部，  ８２５  途中計算バッファ制御部，  ８２６  途中計算バッファ，  ８８１  外部メモリ入出力制御部，  ８８２  入出力バッファ，  ８８３  外部メモリ
【図１】
2010136260.tif 000003
【図２】
2010136260.tif 000004
【図３】
2010136260.tif 000005
【図４】
2010136260.tif 000006
【図５】
2010136260.tif 000007
【図６】
2010136260.tif 000008
【図７】
2010136260.tif 000009
【図８】
2010136260.tif 000010
【図９】
2010136260.tif 000011
【図１０】
2010136260.tif 000012
【図１１】
2010136260.tif 000013
【図１２】
2010136260.tif 000014
【図１３】
2010136260.tif 000015
【図１４】
2010136260.tif 000016
【図１５】
2010136260.tif 000017
【図１６】
2010136260.tif 000018
【図１７】
2010136260.tif 000019
【図１８】
2010136260.tif 000020
【図１９】
2010136260.tif 000021
【図２０】
2010136260.tif 000022
【図２１】
2010136260.tif 000023
【図２２】
2010136260.tif 000024
【図２３】
2010136260.tif 000025
【図２４】
2010136260.tif 000026
【図２５】
2010136260.tif 000027
【図２６】
2010136260.tif 000028
【図２７】
2010136260.tif 000029
【図２８】
2010136260.tif 000030
【図２９】
2010136260.tif 000031
【図３０】
2010136260.tif 000032
【図３１】
2010136260.tif 000033
【図３２】
2010136260.tif 000034
【図３３】
2010136260.tif 000035
【図３４】
2010136260.tif 000036
【図３５】
2010136260.tif 000037
【図３６】
2010136260.tif 000038
【図３７】
2010136260.tif 000039
【手続補正書】
【提出日】平成21年12月28日(2009.12.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１の記憶部と第２の記憶部を有し、
画像信号の周波数成分を低域成分および高域成分に分割する分析フィルタリングを水平方向および垂直方向の両方に対して行う分析フィルタ処理を、所定の分割レベルまで、前記分析フィルタ処理結果として得られる前記水平方向および前記垂直方向の低域成分の係数に対して再帰的に繰り返すフィルタ手段と、
前記分析フィルタ処理の演算過程として得られる係数、および、前記分析フィルタ処理の演算結果として得られる、所定の分割レベル以外の、前記水平方向および前記垂直方向の低域成分の係数を、前記第２の記憶部に比べて小容量であり、かつ、高速にアクセス可能な前記第１の記憶部に、前記分割レベル毎に独立して保持させ、必要に応じて前記第１の記憶部が保持している前記係数を読み出して前記分析フィルタ処理に提供する第１の制御手段と、
前記分析フィルタ処理の演算結果として得られる、前記所定の分割レベルの、前記水平方向および前記垂直方向の低域成分の係数を、前記第２の記憶部に保持させ、必要に応じて前記第２の記憶部が保持している前記係数を読み出して前記分析フィルタ処理に提供する第２の制御手段と
を備える情報処理装置。
【請求項２】
前記所定の分割レベルは分割レベル１であり、
前記第２の制御手段は、ベースバンドの前記画像信号に対する前記分析フィルタ処理の演算結果として得られる前記水平方向および前記垂直方向の低域成分の係数を、前記第２の記憶部に保持し、
前記第１の制御手段は、前記分析フィルタ処理の演算過程として得られる係数、および、前記分割レベル１より上位の前記分析フィルタ処理の演算結果として得られる前記水平方向および前記垂直方向の低域成分の係数を、前記第１の記憶部に保持する
請求項１に記載の情報処理装置。
【請求項３】
前記フィルタ手段は、前記分析フィルタ処理として、前記垂直方向の前記分析フィルタリングを実行可能なライン分の係数が用意され次第、前記垂直方向の前記分析フィルタリングを行い、前記水平方向の前記分析フィルタリングを実行可能なコラム分の係数が用意され次第、前記水平方向の前記分析フィルタリングを行う
請求項１に記載の情報処理装置。
【請求項４】
前記フィルタ手段は、所定のフィルタを用いたリフティング演算により、前記分析フィルタ処理を実行する
請求項１に記載の情報処理装置。
【請求項５】
前記フィルタ手段は、前記水平方向に前記分析フィルタリングを実行後、前記垂直方向に前記分析フィルタリングを実行する
請求項１に記載の情報処理装置。
【請求項６】
前記フィルタ手段は、前記垂直方向に前記分析フィルタリングを実行後、前記水平方向に前記分析フィルタリングを実行する
請求項１に記載の情報処理装置。
【請求項７】
前記第２の記憶部に比べて高速にアクセス可能な、２バンク構成の第３の記憶部をさらに有し、
前記第２の制御手段は、前記分析フィルタ処理の演算結果として得られる、前記所定の分割レベルの、前記水平方向および前記垂直方向の低域成分の係数を、前記第３の記憶部の各メモリバンクに交互に書き込み、前記第３の記憶部の一方のメモリバンクに前記係数を書き込むのと並行して、他方のメモリバンクに保持されている前記係数を読み出して前記第２の記憶部に保持させる
請求項１に記載の情報処理装置。
【請求項８】
前記第２の記憶部に比べて高速にアクセス可能な、２バンク構成の第３の記憶部をさらに有し、
前記第２の制御手段は、前記第２の記憶部より読み出した前記係数を、前記第３の記憶部の各メモリバンクに交互に書き込み、前記第３の記憶部の一方のメモリバンクに前記係数を書き込むのと並行して、他方のメモリバンクに保持されている前記係数を読み出して前記分析フィルタ処理に提供する
請求項１に記載の情報処理装置。
【請求項９】
前記フィルタ手段による前記分析フィルタ処理の演算結果として得られる各周波数成分の係数を符号化する符号化手段をさらに備える
請求項１に記載の情報処理装置。
【請求項１０】
情報処理装置の情報処理方法であって、
前記情報処理装置は、
第１の記憶部と、
第２の記憶部と
を備え、
第１の制御手段は、画像信号の周波数成分を低域成分および高域成分に分割する分析フィルタリングを水平方向および垂直方向の両方に対して行う分析フィルタ処理を、前記第２の記憶部に比べて小容量であり、かつ、高速にアクセス可能な前記第１の記憶部に、前記分析フィルタ処理の演算過程として得られる係数、および、前記分析フィルタ処理の演算結果として得られる前記水平方向および前記垂直方向の低域成分の係数を一時的に保持させて再利用することにより、第１の所定回数、前記分析フィルタ処理の演算結果として得られる前記水平方向および前記垂直方向の低域成分の係数に対して再帰的に繰り返し、
第２の制御手段は、前記第１の所定回数行われた前記分析フィルタ処理の演算結果として得られる前記水平方向および前記垂直方向の低域成分の係数を、前記第２の記憶部に保持させ、
第３の制御手段は、前記分析フィルタ処理を前記第１の所定回数実行後、前記第２の記憶部に保持されている前記係数を読み出し、
第４の制御手段は、前記第２の記憶部に保持されている前記係数を入力とし、前記分析フィルタ処理を、前記第１の記憶部に前記分析フィルタ処理の演算過程として得られる係数、および、前記分析フィルタ処理の演算結果として得られる前記水平方向および前記垂直方向の低域成分の係数を一時的に保持させて再利用することにより、第２の所定回数、前記分析フィルタ処理の演算結果として得られる前記水平方向および前記垂直方向の低域成分の係数に対して再帰的に繰り返す
情報処理方法。
【請求項１１】
第１の記憶部と第２の記憶部を有し、
画像信号の周波数成分の低域成分および高域成分を合成する合成フィルタリングを垂直方向および水平方向の両方に対して行う合成フィルタ処理を、前記合成フィルタ処理結果として得られる係数を、１つ下位の分割レベルの前記水平方向および前記垂直方向の低域成分の係数として再帰的に繰り返すフィルタ手段と、
前記合成フィルタ処理の演算過程として得られる係数、および、前記合成フィルタ処理の演算結果として得られる所定の分割レベル以外の係数を、前記第２の記憶部に比べて小容量であり、かつ、高速にアクセス可能な前記第１の記憶部に、前記分割レベル毎に独立して保持させ、必要に応じて前記第１の記憶部が保持している前記係数を読み出して前記合成フィルタ処理に提供する第１の制御手段と、
前記合成フィルタ処理の演算結果として得られる前記所定の分割レベルの係数を前記第２の記憶部に保持させ、必要に応じて前記第２の記憶部が保持している前記係数を読み出して前記合成フィルタ処理に提供する第２の制御手段と
を備える情報処理装置。
【請求項１２】
前記所定の分割レベルは分割レベル１であり、
前記第１の制御手段は、前記合成フィルタ処理の演算過程として得られる係数、および、最下位の分割レベルから分割レベル２までの前記合成フィルタ処理において演算結果として得られる前記水平方向および前記垂直方向の低域成分の係数を、前記第１の記憶部に保持し、
前記第２の制御手段は、前記分割レベル２における前記合成フィルタ処理の演算結果として得られる前記水平方向および前記垂直方向の低域成分の係数を、前記第２の記憶部に保持する
請求項１１に記載の情報処理装置。
【請求項１３】
前記フィルタ手段は、前記合成フィルタ処理として、前記垂直方向の前記合成フィルタリングを実行可能なライン分の係数が用意され次第、前記垂直方向の前記合成フィルタリングを行い、前記水平方向の前記合成フィルタリングを実行可能なコラム分の係数が用意され次第、前記水平方向の前記合成フィルタリングを行う
請求項１１に記載の情報処理装置。
【請求項１４】
前記フィルタ手段は、所定のフィルタを用いたリフティング演算により、前記合成フィルタ処理を実行する
請求項１１に記載の情報処理装置。
【請求項１５】
符号化データを復号する復号手段をさらに備え、
前記フィルタ手段は、前記復号手段により前記符号化データが復号されて得られた係数を入力とし、前記フィルタ処理を行う
請求項１に記載の情報処理装置。
【請求項１６】
情報処理装置の情報処理方法であって、
前記情報処理装置は、
第１の記憶部と、
第２の記憶部と
を備え、
第１の制御手段は、画像信号の周波数成分の低域成分および高域成分を合成する合成フィルタリングを垂直方向および水平方向の両方に対して行う合成フィルタ処理を、前記第２の記憶部に比べて小容量であり、かつ、高速にアクセス可能な前記第１の記憶部に、前記合成フィルタ処理の演算過程として得られる係数、および、前記合成フィルタ処理の演算結果として得られる係数を一時的に保持させて再利用することにより、第１の所定回数、前記合成フィルタ処理の演算結果として得られる係数を、１つ上位の分割レベルの前記水平方向および前記垂直方向の低域成分の係数として再帰的に繰り返し、
第２の制御手段は、前記第１の所定回数行われた前記合成フィルタ処理の演算結果として得られる前記係数を、前記第２の記憶部に保持させ、
第３の制御手段は、前記合成フィルタ処理を前記第１の所定回数実行後、前記第２の記憶部に保持されている前記係数を読み出し、
第４の制御手段は、前記第２の記憶部に保持されている前記係数を入力とし、前記合成フィルタ処理を、前記第１の記憶部に前記合成フィルタ処理の演算過程として得られる係数、および、前記合成フィルタ処理の演算結果として得られる係数を一時的に保持させて再利用することにより、第２の所定回数、前記合成フィルタ処理の演算結果として得られる係数を、１つ下位の分割レベルの前記水平方向および前記垂直方向の低域成分の係数として再帰的に繰り返す
情報処理方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１９
【補正方法】変更
【補正の内容】
【００１９】
本発明の第２の側面は、第１の記憶部と第２の記憶部を有し、画像信号の周波数成分の低域成分および高域成分を合成する合成フィルタリングを垂直方向および水平方向の両方に対して行う合成フィルタ処理を、前記合成フィルタ処理結果として得られる係数を、１つ下位の分割レベルの前記水平方向および前記垂直方向の低域成分の係数として再帰的に繰り返すフィルタ手段と、前記合成フィルタ処理の演算過程として得られる係数、および、前記合成フィルタ処理の演算結果として得られる、所定の分割レベル以外の係数を、前記第２の記憶部に比べて小容量であり、かつ、高速にアクセス可能な前記第１の記憶部に、前記分割レベル毎に独立して保持させ、必要に応じて前記第１の記憶部が保持している前記係数を読み出して前記合成フィルタ処理に提供する第１の制御手段と、前記合成フィルタ処理の演算結果として得られる、前記所定の分割レベルの係数を、前記第２の記憶部に保持させ、必要に応じて前記第２の記憶部が保持している前記係数を読み出して前記合成フィルタ処理に提供する第２の制御手段とを備える情報処理装置である。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００２０
【補正方法】変更
【補正の内容】
【００２０】
本発明の第２の側面はまた、情報処理装置の情報処理方法であって、前記情報処理装置は、第１の記憶部と、第２の記憶部とを備え、第１の制御手段は、画像信号の周波数成分の低域成分および高域成分を合成する合成フィルタリングを垂直方向および水平方向の両方に対して行う合成フィルタ処理を、前記第２の記憶部に比べて小容量であり、かつ、高速にアクセス可能な前記第１の記憶部に、前記合成フィルタ処理の演算過程として得られる係数、および、前記合成フィルタ処理の演算結果として得られる係数を一時的に保持させて再利用することにより、第１の所定回数、前記合成フィルタ処理の演算結果として得られる係数を、１つ下位の分割レベルの前記水平方向および前記垂直方向の低域成分の係数として再帰的に繰り返し、第２の制御手段は、前記第１の所定回数行われた前記合成フィルタ処理の演算結果として得られる前記係数を、前記第２の記憶部に保持させ、第３の制御手段は、前記合成フィルタ処理を前記第１の所定回数実行後、前記第２の記憶部に保持されている前記係数を読み出し、第４の制御手段は、前記第２の記憶部に保持されている前記係数を入力とし、前記合成フィルタ処理を、前記第１の記憶部に前記合成フィルタ処理の演算過程として得られる係数、および、前記合成フィルタ処理の演算結果として得られる係数を一時的に保持させて再利用することにより、第２の所定回数、前記合成フィルタ処理の演算結果として得られる係数を、１つ下位の分割レベルの前記水平方向および前記垂直方向の低域成分の係数として再帰的に繰り返す情報処理方法である。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００２２
【補正方法】変更
【補正の内容】
【００２２】
本発明の第２の側面においては、画像信号の周波数成分の低域成分および高域成分を合成する合成フィルタリングを垂直方向および水平方向の両方に対して行う合成フィルタ処理が、合成フィルタ処理結果として得られる係数を１つ下位の分割レベルの水平方向および垂直方向の低域成分の係数として、再帰的に繰り返され、合成フィルタ処理の演算過程として得られる係数、および、合成フィルタ処理の演算結果として得られる、所定の分割レベル以外の係数が、第２の記憶部に比べて小容量であり、かつ、高速にアクセス可能な第１の記憶部に、分割レベル毎に独立して保持され、必要に応じて第１の記憶部が保持している係数が読み出されて合成フィルタ処理に提供され、合成フィルタ処理の演算結果として得られる所定の分割レベルの係数が第２の記憶部に保持され、必要に応じて第２の記憶部が保持している係数が読み出されて合成フィルタ処理に提供される。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００４７
【補正方法】変更
【補正の内容】
【００４７】
step１：ｄi1＝ｄi0＋α（ｓi0＋ｓi+10）  ・・・（１）
step２：ｓi1＝ｓi0＋β（ｄi-11＋ｄi1）  ・・・（２）
step３：ｄi2＝ｄi1＋γ（ｓi1＋ｓi+11）  ・・・（３）
step４：ｓi2＝ｓi1＋δ（ｄi-12＋ｄi2）  ・・・（４）
（α＝-1.586134342，β＝-0.05298011857，γ＝0.8829110755，δ＝0.4435068520）
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００５７
【補正方法】変更
【補正の内容】
【００５７】
途中計算バッファ制御部３２４は、フィルタ処理部３２３による次の分割レベルを対象とするフィルタ処理のために、途中計算バッファ３２５に保持されている係数を、適宜、矢印３６６のように読み出し、矢印３６７に示されるようにフィルタ処理部３２３に供給する。フィルタ処理部３２３は、処理対象分割レベルを１つ上位のレベルに更新し、途中計算バッファ制御部３２４により途中計算バッファ３２５より読み出されたＬＬ成分を入力データとして、水平分析フィルタリングや垂直分析フィルタリングを行う。フィルタ処理部３２３は、１つ目の目標分割レベル（第１の目標分割レベル）に達するまで、各分割レベルのＬＬ成分に対して、このようにフィルタ処理を再帰的に繰り返す。第１の目標分割レベルのＬＬ成分は、途中計算バッファ３２５ではなく外部メモリ３８３に保持される。外部メモリ入出力制御部３８１は、第１の目標分割レベルのＬＬ成分の係数が生成されると、それを、矢印３９１に示されるようにフィルタ処理部３２３より取得し、矢印３９２および矢印３９３に示されるように、入出力バッファ３８２を介して外部メモリ３８３に保持させる。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００６５
【補正方法】変更
【補正の内容】
【００６５】
つまり、第１の目標分割レベルの１つ下位の分割レベルの係数まで途中計算バッファ３２５に保持し、第１の目標分割レベルのＬＬ成分を外部メモリ３８３に一時的に退避させる。第１の目標分割レベルの１つ下位のフィルタ処理が完了すると、途中計算バッファ３２５に保持される下位の階層の係数が不要になる。そこで、外部メモリ３８３に保持される第１の目標分割レベルのＬＬ成分を用いてそれ以降の階層に対するフィルタ処理が開始される。このとき途中計算バッファ３２５に空き容量が生じるので、それ以降に生成される係数は、途中計算バッファ３２５に保持させることができる。つまり、外部メモリ３８３を用いることにより、途中計算バッファ３２５を、時間的に２回に分けて利用する。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００７１
【補正方法】変更
【補正の内容】
【００７１】
符号化処理が開始されると、ウェーブレット変換部３１２は、ステップＳ１０１において、入力バッファ３２１に入力された原画像３５１に対して水平分析フィルタリングを行う第１水平分析フィルタ処理を行う。第１水平分析フィルタ処理の詳細については後述する。第１水平分析フィルタ処理が終了すると、ウェーブレット変換部３１２は、ステップＳ１０２において、処理後の分割レベルが第１の目標分割レベルであるか否かを判定する。現在の処理対象分割レベルが第１の目標分割レベルの１つ下位でなく、フィルタ処理により第１の目標分割レベルの係数が生成されないと判定された場合、処理はステップＳ１０３に進む。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００７２
【補正方法】変更
【補正の内容】
【００７２】
ステップＳ１０３において、ウェーブレット変換部３１２、エントロピ符号化部３２６、および出力制御部３２７は、水平分析フィルタ処理結果に対して垂直分析フィルタリングを行い、生成したＬＬ成分を途中計算バッファ３２５に保持させるとともに、その他の成分を符号化して出力する処理である第１垂直分析フィルタ符号化処理を行う。第１垂直分析フィルタ符号化処理の詳細については後述する。第１垂直分析フィルタ符号化処理が終了すると、ウェーブレット変換部３１２は、ステップＳ１０４において、処理対象分割レベルを１つ上位の分割レベルに更新し、内部メモリ３１１の途中計算バッファ３２５に保持したＬＬ成分を入力データとする。ウェーブレット変換部３１２は、ステップＳ１０５において、新たな処理対象分割レベルに対して水平分析フィルタリングを行う第２水平分析フィルタ処理を行う。すなわち、ウェーブレット変換部３１２は、前回のフィルタ処理において途中計算バッファ３２５に保持されるＬＬ成分に対して水平分析フィルタリングを行う。第２水平分析フィルタ処理の詳細については後述する。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００７３
【補正方法】変更
【補正の内容】
【００７３】
ステップＳ１０５の処理が終了すると、処理は、ステップＳ１０２に戻る。つまり、ウェーブレット変換部３１２は、ステップＳ１０２において処理後の分割レベルが第１の目標分割レベルであると判定されるまで、ステップＳ１０２乃至ステップＳ１０５の処理を繰り返し実行する。そして、ステップＳ１０２において、現在の処理対象分割レベルが第１の目標分割レベルの１つ下位であり、フィルタ処理により第１の目標分割レベルの係数が生成されると判定された場合、処理はステップＳ１０６に進む
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００７５
【補正方法】変更
【補正の内容】
【００７５】
ステップＳ１１１において、ウェーブレット変換部３１２は、処理対象分割レベルを１つ上位の分割レベルに更新し、外部メモリ３８３に保持したＬＬ成分を入力データとする。ウェーブレット変換部３１２は、ステップＳ１１２において、外部メモリ３８３より読み出された第１目標分割レベルのＬＬ成分に対して水平分析フィルタリングを行う第３水平分析フィルタ処理を行う。第３水平分析フィルタ処理の詳細については後述する。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００７６
【補正方法】変更
【補正の内容】
【００７６】
ステップＳ１１３において、ウェーブレット変換部３１２は、処理後の分割レベルが第２の目標分割レベルであるか否かを判定する。現在の処理対象分割レベルが第２の目標分割レベルの１つ下位でなく、フィルタ処理により第２の目標分割レベルの係数が生成されないと判定された場合、処理はステップＳ１１４に進む。ステップＳ１１４において、ウェーブレット変換部３１２、エントロピ符号化部３２６、および出力制御部３２７は、第１垂直分析フィルタ符号化処理を行う。ステップＳ１１５において、ウェーブレット変換部３１２は、処理対象分割レベルを１つ上位の分割レベルに更新し、内部メモリ３１１の途中計算バッファ３２５に保持したＬＬ成分を入力データとする。ウェーブレット変換部３１２は、ステップＳ１１６において、第２水平分析フィルタ処理を行う。
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００７７
【補正方法】変更
【補正の内容】
【００７７】
ステップＳ１１６の処理が終了すると、処理は、ステップＳ１１３に戻る。つまり、ウェーブレット変換部３１２は、ステップＳ１１３において処理後の分割レベルが第２の目標分割レベルであると判定されるまで、ステップＳ１１３乃至ステップＳ１１６の処理を繰り返し実行する。そして、ステップＳ１１３において、現在の処理対象分割レベルが第２の目標分割レベルの１つ下位であり、フィルタ処理により第２の目標分割レベルの係数が生成されると判定された場合、処理はステップＳ１１７に進む。
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】００８０
【補正方法】変更
【補正の内容】
【００８０】
次に、図１５のフローチャートを参照して、第１水平分析フィルタ処理の流れの詳細な例を説明する。第１水平分析フィルタ処理が開始されると、入力制御部３２２は、ステップＳ１３１において、内部メモリ３１１の入力バッファ３２１から処理対象ラインの画像データを入力する。途中計算バッファ制御部３２４は、ステップＳ１３２において、内部メモリ３１１の途中計算バッファ３２５から、水平分析フィルタリングに必要なその他の係数を読み出す。フィルタ処理に必要な係数が揃うと、水平分析フィルタ部３３１は、ステップＳ１３３において、ステップＳ１３１およびステップＳ１３２において得られた係数に対して水平分析フィルタリングを行う。ステップＳ１３４において、途中計算バッファ制御部３２４は、その水平分析フィルタリングの処理結果（分析結果）の係数を内部メモリ３１１の途中計算バッファ３２５に保持させる。ステップＳ１３５において、途中計算バッファ制御部３２４は、次回に必要なその他の係数を内部メモリの途中計算バッファ３２５に保持させる。ステップＳ１３６において、ウェーブレット変換部３１２は、内部メモリの入力バッファ３２１に保持される画像データ（ラインブロック（例えば６ライン分の画像データ））を全て処理したか否かを判定する。全て処理していないと判定した場合、ウェーブレット変換部３１２は、処理をステップＳ１３１に戻し、それ以降の処理を繰り返す。
【手続補正１５】
【補正対象書類名】明細書
【補正対象項目名】００８５
【補正方法】変更
【補正の内容】
【００８５】
次に、図１７のフローチャートを参照して、第２水平分析フィルタ処理の流れの詳細な例を説明する。第２水平分析フィルタ処理の処理内容は、基本的に第１水平分析フィルタ処理と同様であるが、第２水平分析フィルタ処理は、途中計算バッファ３２５に保持される、１つ下位の分割レベルにおいて行われた垂直分析フィルタ処理結果のＬＬ成分に対して行われる。したがって、第２水平分析フィルタ処理が開始されると、途中計算バッファ制御部３２４は、ステップＳ１７１において、内部メモリ３１１の途中計算バッファ３２５から、処理対象分割レベルの処理対象ラインの係数を読み出し、フィルタ処理部３２３に入力する。ステップＳ１７２乃至ステップＳ１７５の各処理は、図１５のステップＳ１３２乃至ステップＳ１３５の各処理と同様に行われる。
【手続補正１６】
【補正対象書類名】明細書
【補正対象項目名】００９１
【補正方法】変更
【補正の内容】
【００９１】
次に、図１９のフローチャートを参照して、第３水平分析フィルタ処理の流れの詳細な例を説明する。第３水平分析フィルタ処理の処理内容は、基本的に第１水平分析フィルタ処理と同様であるが、第３水平分析フィルタ処理は、外部メモリ３８３に保持される、１つ下位の分割レベルにおいて行われた垂直分析フィルタ処理結果のＬＬ成分に対して行われる。したがって、第３水平分析フィルタ処理が開始されると、外部メモリ入出力制御部３８１は、ステップＳ２１１において、外部メモリ３８３から、処理対象分割レベルの処理対象ラインの係数を読み出し、内部メモリ３１１の入出力バッファ３８２に保持させる。外部メモリ入出力制御部３８１は、ステップＳ２１２において、ステップＳ２１１において保持させた係数を、内部メモリ３１１の入出力バッファ３８２より読み出し、フィルタ処理部３２３に入力する。図１９のステップＳ２１３乃至ステップＳ２１６の各処理は、図１５のステップＳ１３２乃至ステップＳ１３５の各処理と同様に行われる。
【手続補正１７】
【補正対象書類名】明細書
【補正対象項目名】００９８
【補正方法】変更
【補正の内容】
【００９８】
なお、この第１目標分割レベルとする分割レベルは、ウェーブレット変換処理の最終分割レベルである第２目標分割レベルより下位の階層であれば、任意の分割レベルとしてよい。ただし、途中計算バッファ３２５（内部メモリ３１１）として必要な記憶容量、つまり、ステップ１において必要な容量とステップ２において必要な容量の大きい方の値ができるだけ小さくなるようにするのが望ましい。
【手続補正１８】
【補正対象書類名】明細書
【補正対象項目名】００９９
【補正方法】変更
【補正の内容】
【００９９】
図１２を参照して説明したように、保持される係数は、分割レベルが上位になる毎に半減する。したがって、第１目標分割レベルが分割レベル１とするのが望ましい。例えば式（６）および式（７）の例の場合、ステップ１において必要なメモリ容量が９８Ｋバイトであり、ステップ２において必要なメモリ容量が８６Ｋバイトであるので、途中計算バッファ３２５の記憶容量は９８Ｋバイトあればよい。分割レベル２とすると、ステップ２において必要なメモリ容量は低減するが、ステップ１において必要なメモリ容量が増大するので、途中計算バッファ３２５（内部メモリ３１１）として必要な記憶容量は増大してしまう。例えば式（６）および式（７）の例の場合、使用可能な内部メモリ３１１の空き容量が１２８Ｋバイトであっても、十分に対応することができる。
【手続補正１９】
【補正対象書類名】明細書
【補正対象項目名】０１０３
【補正方法】変更
【補正の内容】
【０１０３】
これに対して、メモリバンク構成を２バンクとする場合、メモリコントローラは、その領域全体を２つの領域として管理するため、データの読み出しと書き込みを同時に行うことができる。例えば、最初に、図２２Ａの矢印６１１に示されるように、外部メモリ入出力制御部３８１から入出力バッファ３８２のバンクＡ（BankＡ）に係数がストア（Store１）される。この時点でバンクＢ（BankＢ）は、空状態（Empty）である。そのストアが完了すると、次に、図２２Ｂの矢印６１２に示されるように、入出力バッファ３８２のバンクＡから外部メモリ３８３に係数が読み出される（（DMA）Load１）。この処理と並行して、図２２Ｂの矢印６１３に示されるように、外部メモリ入出力制御部３８１から入出力バッファ３８２のバンクＢに係数がストア（Store２）される。そのストアおよび転送が完了すると、次に、図２２Ｃの矢印６１４に示されるように、入出力バッファ３８２のバンクＢから外部メモリ３８３に係数が読み出される（（DMA）Load２）。この処理と並行して、図２２Ｃの矢印６１５に示されるように、外部メモリ入出力制御部３８１から入出力バッファ３８２のバンクＡに係数がストア（Store３）される。したがって、外部メモリ３８３への係数の書き込み時に利用される領域のメモリバンク構成を１バンク構成とする場合、図２３Ａに示されるように、ウェーブレット変換（DWT１，DWT２，DWT３，DWT４）および入出力バッファ３８２へのストア（Store１，Store２，Store３，Store４）を、入出力バッファ３８２から外部メモリ３８３への読み出し（Load１，Load２，Load３，Load４）と並行して行うことができず、処理時間が増大する。
【手続補正２０】
【補正対象書類名】明細書
【補正対象項目名】０１１７
【補正方法】変更
【補正の内容】
【０１１７】
ウェーブレット逆変換部８１２は、エントロピ復号部８２３より供給される係数に対してウェーブレット逆変換を行い、目標解像度の画像データを生成する。ウェーブレット逆変換は、ウェーブレット変換処理により低域成分と高域成分に分割された係数を合成するフィルタ処理を水平方向と垂直方向の両方に対して行う処理である。ウェーブレット逆変換処理においては、このようなフィルタ処理が再帰的に繰り返される。例えば、ある分割レベルにおいてフィルタ処理により得られる係数を、１つ下位の分割レベルの水平方向および垂直方向に低域な成分（LL成分）とし、その分割レベルの他の成分と合わせて再度フィルタ処理が行われる。このようなフィルタ処理の繰り返しが、目標解像度の画像データが得られるまで繰り返される。
【手続補正２１】
【補正対象書類名】明細書
【補正対象項目名】０１２２
【補正方法】変更
【補正の内容】
【０１２２】
内部メモリ８１１には、エントロピ復号部８２３に入力される符号化データ、並びに、フィルタ処理部８２４のフィルタ処理の処理結果や処理途中の係数データ等が一時的に保持される。内部メモリ８１１には、これらのデータを保持するために、入力バッファ８２１、途中計算バッファ８２６、入出力バッファ８８２、および出力バッファ８２８が形成される。入力バッファ８２１は、エントロピ復号部８２３に入力される前の符号化データ（エンコーダより供給される符号化データ）を保持する。入力バッファ８２１の読み出しは入力制御部８２２に制御される。途中計算バッファ８２６は、合成フィルタ処理結果または途中の係数データのうち、次回以降の合成フィルタ処理に使用される係数データを、分割レベル毎に独立して保持する。つまり、途中計算バッファ８２６は、合成フィルタ処理の演算過程として得られる係数、または、第１の目標分割レベルより上位（第１の目標分割レベルを含む）の合成フィルタ処理の演算結果として得られるＬＬ成分の係数を、その分割レベル毎に保持する。その保持している係数は、必要に応じて読み出され、次回以降のフィルタ処理に提供される。途中計算バッファ８２６のデータの入出力は、途中計算バッファ制御部８２５により制御される。なお、この途中計算バッファ８２６は、外部メモリ８８３に比べて小容量であり、かつ、高速にアクセス可能である。入出力バッファ８８２は、合成フィルタ処理結果であり、次回の合成フィルタ処理に利用する係数データのうち、外部メモリ８８３に保持させる係数データを保持する。入出力バッファ８８２のデータの入出力は、外部メモリ入出力制御部８８１に制御される。出力バッファ８２８は、フィルタ処理部８２４による合成フィルタ処理により生成されたベースバンドの画像データを保持する。出力バッファ８２８のデータの入出力は、出力制御部８２７により制御される。
【手続補正２２】
【補正対象書類名】明細書
【補正対象項目名】０１２３
【補正方法】変更
【補正の内容】
【０１２３】
図２８に示されるように、内部メモリ８１１（途中計算バッファ８２６）に保持される係数は、分割レベル３、分割レベル２、分割レベル１の順に、水平サイズの大きさが２倍ずつ大きくなる。つまり、フィルタ処理の進行方向は逆だが（合成フィルタ処理の場合、上位層から下位層へ向かう順に進む）、各階層において保持される係数の量は、図１２に示されるウェーブレット変換の場合と同様である。
【手続補正２３】
【補正対象書類名】明細書
【補正対象項目名】０１３０
【補正方法】変更
【補正の内容】
【０１３０】
フィルタ処理部８２４は、目標の分割レベルに達するまで、合成フィルタ処理を再帰的に繰り返す。そこで、途中計算バッファ制御部８２５は、算出された係数を、矢印８６５に示されるようにフィルタ処理部８２４より取得し、矢印８６６に示されるように途中計算バッファ８２６に保持させる。また、途中計算バッファ制御部８２５は、合成フィルタリングにおいて生成されたリフティング演算途中の係数の一部も、同様に途中計算バッファ８２６に保持させる。途中計算バッファ制御部８２５は、フィルタ処理部８２４による次（１つ下位）の分割レベルを対象とする合成フィルタ処理のために、途中計算バッファ８２６に保持されている係数を、適宜、矢印８６７のように読み出し、矢印８６８に示されるようにフィルタ処理部８２４に供給する。フィルタ処理部８２４は、処理対象分割レベルを１つ下位のレベルに更新し、途中計算バッファ制御部８２５により途中計算バッファ８２６より読み出された係数をＬＬ成分とし、その他の成分をエントロピ復号部８２３より取得し、それらの係数に対して垂直合成フィルタリングや水平合成フィルタリングを行う。
【手続補正２４】
【補正対象書類名】明細書
【補正対象項目名】０１３４
【補正方法】変更
【補正の内容】
【０１３４】
そこで、図２７に示される本発明を適用したデコーダは、所定の階層の分割レベル（第１の目標分割レベル）を予め定め、その予め定められた第１の目標分割レベルのＬＬ成分のみを外部メモリ８８３に保持させるようにする。例えば、この第１の目標分割レベルを分割レベル１とすると、図３０Ａに示されるように、分割レベル１になるまで合成フィルタ処理が繰り返される。そして生成された分割レベル１の係数は、外部メモリ８８３に保持された後、分割レベル１のＬＬ成分（１ＬＬ）の係数として読み出され、分割レベル１の合成フィルタ処理に使用される。つまり、第１の目標分割レベルの１つ上位の分割レベルの係数まで途中計算バッファ８２６に保持し、第１の目標分割レベルのＬＬ成分を外部メモリ８８３に一時的に退避させる。第１の目標分割レベルの１つ上位のフィルタ処理が完了すると、途中計算バッファ８２６に保持される上位の階層の係数が不要になる。そこで、外部メモリ８８３に保持される第１の目標分割レベルの係数を用いてそれ以降の階層に対するフィルタ処理が開始される。このとき途中計算バッファ８２６に空き容量が生じるので、それ以降に生成される係数は、途中計算バッファ８２６に保持させることができる。つまり、外部メモリ８８３を用いることにより、途中計算バッファ８２６を、時間的に２回に分けて利用する。
【手続補正２５】
【補正対象書類名】明細書
【補正対象項目名】０１３８
【補正方法】変更
【補正の内容】
【０１３８】
復号処理が開始されると、入力制御部８２２、エントロピ復号部８２３、およびウェーブレット逆変換部８１２は、ステップＳ４０１において、入力バッファ８２１に入力された符号化データを復号し、得られた係数に対して垂直合成フィルタリングを行う第１復号垂直合成フィルタ処理を行う。第１復号垂直合成フィルタ処理の詳細については後述する。第１復号垂直合成フィルタ処理が終了すると、ウェーブレット逆変換部８１２は、ステップＳ４０２において、処理後の分割レベルが第１の目標分割レベルであるか否かを判定する。現在の処理対象分割レベルが第１の目標分割レベルの１つ上位でなく、フィルタ処理により第１の目標分割レベルの係数が生成されないと判定された場合、処理はステップＳ４０３に進む。
【手続補正２６】
【補正対象書類名】明細書
【補正対象項目名】０１３９
【補正方法】変更
【補正の内容】
【０１３９】
ステップＳ４０３において、ウェーブレット逆変換部８１２は、垂直合成フィルタ処理結果に対して水平合成フィルタリングを行い、生成した係数を途中計算バッファ８２６に保持させる処理である第１水平合成フィルタ処理を行う。第１水平合成フィルタ処理の詳細については後述する。第１水平合成フィルタ処理が行われると、ウェーブレット逆変換部８１２は、ステップＳ４０４において、処理対象分割レベルを１つ下位の分割レベルに更新し、内部メモリ８１１の途中計算バッファ８２６に保持した合成結果の係数を、処理対象分割レベルのＬＬ成分とし、入力データとする。ウェーブレット逆変換部８１２、エントロピ復号部８２３、および入力制御部８２２は、ステップＳ４０５において、入力バッファ８２１に入力された符号化データを復号し、得られた処理対象分割レベルのＨＬ成分、ＬＨ成分、およびＨＨ成分の係数と、途中計算バッファ８２６より読み出したＬＬ成分とに対して垂直合成フィルタリングを行う第２復号垂直合成フィルタ処理を行う。第２復号垂直合成フィルタ処理の詳細については後述する。
【手続補正２７】
【補正対象書類名】明細書
【補正対象項目名】０１４０
【補正方法】変更
【補正の内容】
【０１４０】
ステップＳ４０５の処理が終了すると、処理は、ステップＳ４０２に戻る。つまり、入力制御部８２２、エントロピ復号部８２３、およびウェーブレット逆変換部８１２は、ステップＳ４０２において処理後の分割レベルが第１の目標分割レベルであると判定されるまで、ステップＳ４０２乃至ステップＳ４０５の処理を繰り返し実行する。そして、ステップＳ４０２において、現在の処理対象分割レベルが第１の目標分割レベルの１つ上位であり、フィルタ処理により第１の目標分割レベルの係数が生成されると判定された場合、処理はステップＳ４０６に進む。
【手続補正２８】
【補正対象書類名】明細書
【補正対象項目名】０１４２
【補正方法】変更
【補正の内容】
【０１４２】
第１目標分割レベルの係数（ＬＬ成分）が外部メモリ８８３に蓄積され、第２水平合成フィルタ処理が終了すると、処理はステップＳ４１１に進む。ステップＳ４１１において、ウェーブレット逆変換部８１２は、処理対象分割レベルを１つ下位の分割レベルに更新し、外部メモリ８８３に保持した合成結果の係数を、処理対象分割レベルのＬＬ成分とし、入力データとする。ステップＳ４１２において、ウェーブレット逆変換部８１２、エントロピ復号部８２３、および入力制御部８２２は、第３復号垂直合成フィルタ処理を行う。第３復号垂直合成フィルタ処理の詳細については後述する。
【手続補正２９】
【補正対象書類名】明細書
【補正対象項目名】０１４３
【補正方法】変更
【補正の内容】
【０１４３】
ステップＳ４１３において、ウェーブレット逆変換部８１２は、処理後の分割レベルが第２の目標分割レベルであるか否かを判定する。現在の処理対象分割レベルが第２の目標分割レベルの１つ上位でなく、フィルタ処理により第２の目標分割レベルの係数が生成されないと判定された場合、処理はステップＳ４１４に進む。
【手続補正３０】
【補正対象書類名】明細書
【補正対象項目名】０１４４
【補正方法】変更
【補正の内容】
【０１４４】
ステップＳ４１４において、ウェーブレット逆変換部８１２は、垂直合成フィルタ処理結果に対して第１の水平合成フィルタ処理を行う。ステップＳ４１５において、ウェーブレット逆変換部８１２は、処理対象分割レベルを１つ下位の階層に更新し、内部メモリ８１１の途中計算バッファ８２６に保持される合成結果の係数をＬＬ成分とする。ステップＳ４１６において、ウェーブレット逆変換部８１２は、第２復号垂直合成フィルタ処理を行う。ステップＳ４１６の処理が終了されると、処理は、ステップＳ４１３に戻る。
【手続補正３１】
【補正対象書類名】明細書
【補正対象項目名】０１５５
【補正方法】変更
【補正の内容】
【０１５５】
ステップＳ４５６において、内部メモリ８１１の途中計算バッファ８２６に保持される処理対象分割レベルにおける垂直合成フィルタリング結果の係数を全て処理したと判定された場合、処理は図３１に戻る。図３１のステップＳ４０３において実行された第１水平合成フィルタ符号化処理の場合、処理は、図３１のステップＳ４０３に戻り、ステップＳ４０４に進む。また、図３１のステップＳ４１４において実行された第１水平分析フィルタ符号化処理の場合、処理は、図３１のステップＳ４１４に戻り、ステップＳ４１５に進む。
【手続補正３２】
【補正対象書類名】明細書
【補正対象項目名】０１６１
【補正方法】変更
【補正の内容】
【０１６１】
ステップＳ４９６およびステップＳ４９７の各処理は、図３３のステップＳ４５５およびステップＳ４５６の各処理と同様に行われる。ステップＳ４９７において、内部メモリ８１１の途中計算バッファ８２６に保持される処理対象分割レベルにおける垂直合成フィルタリング結果の係数を全て処理したと判定された場合、処理は図３１のステップＳ４０６に戻り、ステップＳ４１１に進む。
【手続補正３３】
【補正対象書類名】明細書
【補正対象項目名】０１６７
【補正方法】変更
【補正の内容】
【０１６７】
ステップＳ５３６において、内部メモリ８１１の途中計算バッファ８２６に保持される処理対象分割レベルにおける垂直合成フィルタリング結果の係数を全て処理したと判定された場合、処理は図３１のステップＳ４１７に戻り、復号処理が終了される。
【手続補正３４】
【補正対象書類名】明細書
【補正対象項目名】０１６９
【補正方法】変更
【補正の内容】
【０１６９】
なお、この第１目標分割レベルとする分割レベルは、ウェーブレット変換処理の最終分割レベルである第２目標分割レベルより上位の階層であれば、任意の分割レベルとしてよい。ただし、途中計算バッファ８２６（内部メモリ８１１）として必要な記憶容量、つまり、ステップ１において必要な容量とステップ２において必要な容量の大きい方の値ができるだけ小さくなるようにするのが望ましい。図２８に示されるように、保持される係数は、分割レベルが上位になる毎に半減する。したがって、分割レベル１を第１目標分割レベルとするのが望ましい。
【手続補正３５】
【補正対象書類名】図面
【補正対象項目名】図２
【補正方法】変更
【補正の内容】
【図２】
2010136260.tif 000040
【手続補正３６】
【補正対象書類名】図面
【補正対象項目名】図４
【補正方法】変更
【補正の内容】
【図４】
2010136260.tif 000041
【手続補正３７】
【補正対象書類名】図面
【補正対象項目名】図１０
【補正方法】変更
【補正の内容】
【図１０】
2010136260.tif 000042
【手続補正３８】
【補正対象書類名】図面
【補正対象項目名】図１３
【補正方法】変更
【補正の内容】
【図１３】
2010136260.tif 000043
【手続補正３９】
【補正対象書類名】図面
【補正対象項目名】図２６
【補正方法】変更
【補正の内容】
【図２６】
2010136260.tif 000044
【手続補正４０】
【補正対象書類名】図面
【補正対象項目名】図２８
【補正方法】変更
【補正の内容】
【図２８】
2010136260.tif 000045
【手続補正４１】
【補正対象書類名】図面
【補正対象項目名】図３０
【補正方法】変更
【補正の内容】
【図３０】
2010136260.tif 000046