(57)【要約】【課題】可逆エンコードされたコードストリームを非可逆エンコードされたコードストリームに変換する際に必要なメモリ容量を低減させることができるようにする。【解決手段】制御部１１１は、ラインベース合成フィルタ部２１３に、最低域成分Pライン毎にラインベースウェーブレット逆変換を行わせ、１ラインのベースバンドの画像データを生成させ、それをバッファ１２２に保持させる。このようなラインベースウェーブレット逆変換処理が繰り返されることにより、バッファ１２２にベースバンドの画像データが所定のＬライン分蓄積され次第、制御部１１１は、ラインベース分析フィルタ部３１１に、そのＬライン分のベースバンドの画像データに対して、ラインベースウェーブレット変換を行わせる。本発明は、例えば、符号化装置に適用することができる。【選択図】図１４
2010245855.tif 000002
【特許請求の範囲】
【請求項１】
可逆符号化された画像のコードストリームを復号する復号手段と、
前記復号手段により前記コードストリームが復号されて得られた、帯域分割されたサブバンド毎の係数データに対して、所定数のライン毎、または、所定のブロック毎に合成フィルタリングを施すことでライン単位にベースバンドの画像データを得る合成フィルタ手段と、
前記合成フィルタ手段による前記合成フィルタリングにより得られた前記ベースバンドの前記画像データを保持する保持手段と、
前記保持手段に保持されている前記ベースバンドの前記画像データを読み出し、分析フィルタリングを施すことで、前記画像データを、所定の分割レベルまで帯域分割する分析フィルタ手段と、
前記分析フィルタ手段による前記分析フィルタリングにより得られた、帯域分割されたサブバンド毎の係数データを符号化する符号化手段と、
前記保持手段に保持される前記ベースバンドの前記画像データが、前記分析フィルタリングが実行可能なサンプル数に達し次第、前記分析フィルタ手段に前記分析フィルタリングを実行させる制御手段と
を備える情報処理装置。
【請求項２】
前記合成フィルタリングの処理単位である前記所定数のラインは、前記分析フィルタリングの結果得られる、前記帯域分割された前記係数データの最低域のサブバンドを少なくとも１ライン以上生成するのに必要なライン数の前記画像データである
請求項１に記載の情報処理装置。
【請求項３】
前記合成フィルタ手段は、前記サブバンド毎の前記係数データに対して、先に水平方向に前記合成フィルタリングを行い、次に垂直方向に前記合成フィルタリングを行い、
前記分析フィルタ手段は、前記サブバンド毎の前記係数データに対して、先に水平方向に前記分析フィルタリングを行い、次に垂直方向に前記分析フィルタリングを行う
請求項１に記載の情報処理装置。
【請求項４】
前記合成フィルタ手段は、前記サブバンド毎の前記係数データに対して、先に垂直方向に前記合成フィルタリングを行い、次に水平方向に前記合成フィルタリングを行い、
前記分析フィルタ手段は、前記サブバンド毎の前記係数データに対して、先に垂直方向に前記分析フィルタリングを行い、次に水平方向に前記分析フィルタリングを行う
請求項１に記載の情報処理装置。
【請求項５】
前記復号手段は、前記コードストリームをJPEG2000復号方式により復号し、
前記符号化手段は、前記係数データをJPEG2000符号化方式により符号化する
請求項１に記載の情報処理装置。
【請求項６】
前記合成フィルタ手段による前記合成フィルタリングの処理単位を定義する定義手段をさらに備える
請求項１に記載の情報処理装置。
【請求項７】
前記定義手段は、前記合成フィルタリングの処理単位を、前記符号化手段による符号化の圧縮率、または、前記保持手段の容量のうち、少なくともいずれか一方に基づいて、前記合成フィルタリングの処理単位を定義する
請求項６に記載の情報処理装置。
【請求項８】
前記符号化手段による符号化の処理単位のブロックのサイズを定義するブロック定義手段と、
前記ブロック定義手段によりサイズが定義された複数の前記ブロックよりなるプリシンクトのサイズを定義するプリシンクト定義手段と
をさらに備える請求項１に記載の情報処理装置。
【請求項９】
前記合成フィルタリングの処理単位とされるライン群が、前記プリシンクト定義手段により定義された前記プリシンクトからはみでる領域については、後続の前記ライン群のデータが獲得でき次第、補充される
請求項１に記載の情報処理装置。
【請求項１０】
情報処理装置の復号手段が、可逆符号化された画像のコードストリームを復号し、
前記情報処理装置の合成フィルタ手段が、前記コードストリームが復号されて得られた、帯域分割されたサブバンド毎の係数データに対して、所定数のライン毎、または、所定のブロック毎に合成フィルタリングを施すことでライン単位にベースバンドの画像データが得られ、
前記情報処理装置の保持手段が、前記合成フィルタリングにより得られた前記ベースバンドの前記画像データを保持し、
前記情報処理装置の分析フィルタ手段が、保持されている前記ベースバンドの前記画像データを読み出し、分析フィルタリングを施すことで、前記画像データを、所定の分割レベルまで帯域分割し、
前記情報処理装置の符号化手段が、前記分析フィルタリングにより得られた、帯域分割されたサブバンド毎の係数データを符号化し、
前記情報処理装置の制御手段が、保持される前記ベースバンドの前記画像データが、前記分析フィルタリングが実行可能なサンプル数に達し次第、前記分析フィルタリングを実行させる
情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および方法に関し、特に、可逆エンコードされたコードストリームを、非可逆エンコードされたコードストリームに変換する際に必要なメモリ容量を低減させることができるようにした情報処理装置および方法に関する。
【背景技術】
【０００２】
従来、映画制作、医療、静止画撮影等、様々な分野で、デジタルの画像データが利用されている。このようなデジタル画像データは、一般的に、非圧縮の画像データをマスタ画像とし、これを必要に応じて圧縮して、圧縮結果のファイルをネットワーク経由で配信したり、記録メディアに書き込んだりすることが多い。
【０００３】
例えば、デジタルシネマの用途では、DCI（Digital Cinema Initiatives）規格によって、映画配信のための圧縮フォーマットが決まっている。それによれば、非可逆圧縮符号化方式である、ISO（International Organization for Standardization）規格のJPEG2000（Joint Photographic Experts Group 2000） Part-1が圧縮・伸長技術として用いられ、ビットレートは、4096×2160画素のXYZ12ビット（24Hz）の動画シーケンスに対して、ピークレートで250Mbpsである。つまり、非圧縮のマスタ画像は、圧縮されてから配信されたり上映されたりする。
【０００４】
また、マスタ画像のデータサイズが大きいこと自体が、マスタ画像の保存に不利であるので、マスタ画像は、可逆圧縮により、データの欠損がないようにデータ量を低減された状態で保存される場合も多い。
【０００５】
例えば、DCI規格で定められている画像の解像度は、4096×2160画素であり、HDTV（High Definition Television）の４倍に達する。したがって、非圧縮の画像データのデータ量が大きいので、実際には、マスタ画像は、可逆方式で圧縮符号化された可逆圧縮ファイルとして保存されることが多い。
【０００６】
この場合、この可逆圧縮ファイルは、非可逆圧縮方式により圧縮されたDCI規格のJPEG2000ファイルに変換されて利用される。ただし、JPEG2000規格では、可逆圧縮符号化方式と、非可逆符号化方式とでウェーブレット変換フィルタが異なるため、この変換の際に、一度ベースバンド画像に戻す必要がある。
【０００７】
このような処理を行う従来のトランスコーダは、可逆圧縮ファイルのコードストリームを全てデコードし、元のベースバンドのマスタ画像と同じデータサイズのベースバンド画像に戻す。
【０００８】
ところで、高解像度画像のビットストリームのDCTブロックの低周波成分の係数のみを用いて逆離散コサイン変換を行い、標準解像度画像に復号するダウンデコーダがあった（例えば、特許文献１および特許文献２参照）。
【先行技術文献】
【非特許文献】
【０００９】
【特許文献１】特許４０１６１６６号
【特許文献２】特許４０２６２３８号
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、上述したような従来のトランスコーダによる変換処理では、コードストリームを全てデコードしてしまうため、上述したようにマスタ画像のデータ量が大きい場合、デコード処理の負荷が増大する恐れがあった。
【００１１】
なお、特許文献１や特許文献２に記載のダウンデコーダを用いてデコードする方法も考えられるが、低周波成分の係数のみをデコードすることしかできず、必ず解像度が低下してしまうので、解像度を変更せずにデータを変換する上述した映画制作においては適用できない恐れがあった。
【００１２】
本発明はこのような問題を解決するためのものであり、可逆エンコードされたコードストリームを、非可逆エンコードされたコードストリームに変換し、その変換の際に必要なメモリ容量を低減させることができるようにするものである。
【課題を解決するための手段】
【００１３】
本発明の一側面は、可逆符号化された画像のコードストリームを復号する復号手段と、前記復号手段により前記コードストリームが復号されて得られた、帯域分割されたサブバンド毎の係数データに対して、所定数のライン毎、または、所定のブロック毎に合成フィルタリングを施すことでライン単位にベースバンドの画像データを得る合成フィルタ手段と、前記合成フィルタ手段による前記合成フィルタリングにより得られた前記ベースバンドの前記画像データを保持する保持手段と、前記保持手段に保持されている前記ベースバンドの前記画像データを読み出し、分析フィルタリングを施すことで、前記画像データを、所定の分割レベルまで帯域分割する分析フィルタ手段と、前記分析フィルタ手段による前記分析フィルタリングにより得られた、帯域分割されたサブバンド毎の係数データを符号化する符号化手段と、前記保持手段に保持される前記ベースバンドの前記画像データが、前記分析フィルタリングが実行可能なサンプル数に達し次第、前記分析フィルタ手段に前記分析フィルタリングを実行させる制御手段とを備える情報処理装置である。
【００１４】
前記合成フィルタリングの処理単位である前記所定数のラインは、前記分析フィルタリングの結果得られる、前記帯域分割された前記係数データの最低域のサブバンドを少なくとも１ライン以上生成するのに必要なライン数の前記画像データであることができる。
【００１５】
前記合成フィルタ手段は、前記サブバンド毎の前記係数データに対して、先に水平方向に前記合成フィルタリングを行い、次に垂直方向に前記合成フィルタリングを行い、前記分析フィルタ手段は、前記サブバンド毎の前記係数データに対して、先に水平方向に前記分析フィルタリングを行い、次に垂直方向に前記分析フィルタリングを行うことができる。
【００１６】
前記合成フィルタ手段は、前記サブバンド毎の前記係数データに対して、先に垂直方向に前記合成フィルタリングを行い、次に水平方向に前記合成フィルタリングを行い、前記分析フィルタ手段は、前記サブバンド毎の前記係数データに対して、先に垂直方向に前記分析フィルタリングを行い、次に水平方向に前記分析フィルタリングを行うことができる。
【００１７】
前記復号手段は、前記コードストリームをJPEG2000復号方式により復号し、前記符号化手段は、前記係数データをJPEG2000符号化方式により符号化することができる。
【００１８】
前記合成フィルタ手段による前記合成フィルタリングの処理単位を定義する定義手段をさらに備えることができる。
【００１９】
前記定義手段は、前記合成フィルタリングの処理単位を、前記符号化手段による符号化の圧縮率、または、前記保持手段の容量のうち、少なくともいずれか一方に基づいて、前記合成フィルタリングの処理単位を定義することができる。
【００２０】
前記符号化手段による符号化の処理単位のブロックのサイズを定義するブロック定義手段と、前記ブロック定義手段によりサイズが定義された複数の前記ブロックよりなるプリシンクトのサイズを定義するプリシンクト定義手段とをさらに備えることができる。
【００２１】
前記合成フィルタリングの処理単位とされるライン群が、前記プリシンクト定義手段により定義された前記プリシンクトからはみでる領域については、後続の前記ライン群のデータが獲得でき次第、補充されることができる。
【００２２】
本発明の一側面は、また、情報処理装置の復号手段が、可逆符号化された画像のコードストリームを復号し、前記情報処理装置の合成フィルタ手段が、前記コードストリームが復号されて得られた、帯域分割されたサブバンド毎の係数データに対して、所定数のライン毎、または、所定のブロック毎に合成フィルタリングを施すことでライン単位にベースバンドの画像データが得られ、前記情報処理装置の保持手段が、前記合成フィルタリングにより得られた前記ベースバンドの前記画像データを保持し、前記情報処理装置の分析フィルタ手段が、保持されている前記ベースバンドの前記画像データを読み出し、分析フィルタリングを施すことで、前記画像データを、所定の分割レベルまで帯域分割し、前記情報処理装置の符号化手段が、前記分析フィルタリングにより得られた、帯域分割されたサブバンド毎の係数データを符号化し、前記情報処理装置の制御手段が、保持される前記ベースバンドの前記画像データが、前記分析フィルタリングが実行可能なサンプル数に達し次第、前記分析フィルタリングを実行させる情報処理方法である。
【００２３】
本発明の一側面においては、可逆符号化された画像のコードストリームが復号され、コードストリームが復号されて得られた、帯域分割されたサブバンド毎の係数データに対して、所定数のライン毎、または、所定のブロック毎に合成フィルタリングを施すことでライン単位にベースバンドの画像データが得られ、合成フィルタリングにより得られたベースバンドの画像データが保持され、保持されているベースバンドの画像データが読み出され、分析フィルタリングが施されることで、画像データが、所定の分割レベルまで帯域分割され、分析フィルタリングにより得られた、帯域分割されたサブバンド毎の係数データが符号化され、保持されるベースバンドの画像データが、分析フィルタリングが実行可能なサンプル数に達し次第、分析フィルタリングが実行される。
【発明の効果】
【００２４】
本発明によれば、非可逆エンコードされたコードストリームをより容易かつ適切に生成することができる。特に、可逆エンコードされたコードストリームを、非可逆エンコードされたコードストリームに変換する際に必要なメモリ容量を低減させることができる。
【図面の簡単な説明】
【００２５】
【図１】本発明を適用した符号化装置の主な構成例を示すブロック図である。
【図２】可逆ラインベースエンコード部の構成例を示すブロック図である。
【図３】サブバンドの例を説明する図である。
【図４】ラインベースウェーブレット変換の様子を説明する図である。
【図５】９×７分析フィルタの例を示す図である。
【図６】リフティング演算例を説明する図である。
【図７】リフティング演算例を説明する図である。
【図８】可逆ラインベースデコード部の構成例を示すブロック図である。
【図９】ラインベースウェーブレット逆変換の様子を説明する図である。
【図１０】９×７合成フィルタの例を示す図である。
【図１１】リフティング演算例を説明する図である。
【図１２】リフティング演算例を説明する図である。
【図１３】非可逆ラインベースエンコード部の構成例を示すブロック図である。
【図１４】ウェーブレット変換およびウェーブレット逆変換の処理の様子を説明する図である。
【図１５】可逆符号化処理の流れの例を説明するフローチャートである。
【図１６】トランスコード制御処理の流れの例を説明するフローチャートである。
【図１７】復号処理の流れの例を説明するフローチャートである。
【図１８】ウェーブレット逆変換処理の流れの例を説明するフローチャートである。
【図１９】ウェーブレット変換処理の流れの例を説明するフローチャートである。
【図２０】非可逆符号化処理の流れの例を説明するフローチャートである。
【図２１】可逆ラインベースエンコード部の他の構成例を示すブロック図である。
【図２２】コードブロックを説明する図である。
【図２３】コードブロックとプレシンクトを説明する図である。
【図２４】ラインブロックの補充の様子を説明する図である。
【図２５】可逆ラインベースデコード部の他の構成例を示すブロック図である。
【図２６】非可逆ラインベースエンコード部の他の構成例を示すブロック図である。
【図２７】可逆符号化処理の流れの例を説明するフローチャートである。
【図２８】復号処理の流れの例を説明するフローチャートである。
【図２９】ウェーブレット逆変換処理の流れの例を説明するフローチャートである。
【図３０】ウェーブレット変換処理の流れの例を説明するフローチャートである。
【図３１】非可逆符号化処理の流れの例を説明するフローチャートである。
【図３２】ラインブロックサイズ定義処理の流れの例を説明するフローチャートである。
【図３３】本発明を適用したパーソナルコンピュータの構成例を示すブロック図である。
【発明を実施するための形態】
【００２６】
以下、発明を実施するための形態（以下実施の形態とする）について 説明する。なお、説明は以下の順序で行う。
１．第１の実施の形態（ラインベースのトランスコード制御処理）
２．第２の実施の形態（符号化方式がJPEG2000の場合のトランスコード制御処理）
【００２７】
＜１．第１の実施の形態＞
［符号化装置の構成］
まず、可逆エンコードされたコードストリームを、非可逆エンコードされたコードストリームに変換する画像データの変換処理について説明する。
【００２８】
図１は、そのような変換処理を用いる本発明を適用した符号化装置の構成例を示す図である。図１に示される符号化装置１００は、入力されるベースバンドの画像データを、一旦、可逆符号化方式により所定の圧縮率で符号化し、その後、符号化されたコードストリームを、所望の圧縮率に変換し、非可逆方式で符号化されたコードストリームとして出力する装置である。
【００２９】
符号化装置１００は、図１に示されるように、可逆ラインベースエンコード部１０１および非可逆トランスコード部１０２を有する。
【００３０】
可逆ラインベースエンコード部１０１は、装置内の処理の負荷を軽減させるため、入力されるベースバンドの画像データ（マスタ画像）を、所定の可逆符号化方式により所定の圧縮率で符号化し、データサイズを小さくしたコードストリームの可逆圧縮ファイルに変換する。ただし、可逆ラインベースエンコード部１０１は、符号化時に画像データに対して、所定のライン数毎にウェーブレット変換するラインベースウェーブレット変換を行う。可逆ラインベースエンコード部１０１の詳細については後述する。
【００３１】
例えば、符号化装置１００は、情報処理部１０３−１において、その可逆圧縮ファイルに対してメタ情報を付加する等の所定の処理を施す。また、例えば、符号化装置１００は、その可逆圧縮ファイルを、所定のバスやネットワーク等の伝送路１０３−２を介して伝送させる。さらに、例えば、符号化装置１００は、その可逆圧縮ファイルをハードディスクや半導体メモリ等の記憶部１０３−３に一旦保存し、所定のタイミングで読み出して出力する。
【００３２】
符号化装置１００は、非可逆トランスコード部１０２において、このコードストリームを、所定の非可逆符号化方式で符号化されたコードストリームに変換する。非可逆トランスコード部１０２は、制御部１１１、可逆ラインベースデコード部１２１、バッファ１２２、および非可逆ラインベースエンコード部１２３を有する。
【００３３】
可逆ラインベースデコード部１２１は、制御部１１１に制御され、情報処理部１０３−１において処理された可逆圧縮ファイル、伝送路１０３−２を介して供給された可逆圧縮ファイル、または、記憶部１０３−３より読み出された可逆圧縮ファイルのコードストリームの一部または全部を復号し、ベースバンドの画像データを生成する。
【００３４】
可逆ラインベースデコード部１２１は、制御部１１１に制御され、生成したベースバンドの画像データをバッファ１２２に供給し、保持させる。
【００３５】
非可逆ラインベースエンコード部１２３は、制御部１１１に制御され、バッファ１２２よりそのベースバンドの画像データを取得し、所定の非可逆符号化方式により所望の圧縮率で符号化し、生成したコードストリームを出力する。
【００３６】
このとき、制御部１１１は、非可逆ラインベースエンコード部１２３が生成するコードストリームの目標符号量を達成するために必要なベースバンドの画像データデータ量を求め、そのベースバンドの画像データの、マスタ画像（原画像）の画像データに対する圧縮率を算出し、それを目標圧縮率として可逆ラインベースデコード部１２１に供給する。つまり、制御部１１１は、目標符号量を達成するために必要なベースバンドの画像データの符号量を、マスタ画像（原画像）の画像データに対する圧縮率で表わし、それを可逆ラインベースデコード部１２１に供給する。
【００３７】
可逆ラインベースデコード部１２１は、その圧縮率を目標圧縮率とし、可逆圧縮ファイルのコードストリームの一部または全部を復号してベースバンドの画像データを生成する。後述するように、可逆ラインベースデコード部１２１は、生成するベースバンドの画像データの符号量が小さいほど、つまり、マスタ画像（原画像）の画像データに対する圧縮率が高いほど、復号するコードストリームの部分が少なくて済むので、復号処理の処理量を低減させることができる。しかしながら、可逆ラインベースデコード部１２１が生成するベースバンドの符号量が少なすぎると、非可逆ラインベースエンコード部１２３が目標符号量を達成することができなくなる恐れがある。
【００３８】
そこで、制御部１１１は、可逆ラインベースデコード部１２１に、可逆ラインベースデコード部１２１が生成するベースバンドの画像データの、マスタ画像（原画像）の画像データに対する圧縮率が、非可逆ラインベースエンコード部１２３の目標圧縮率と一致するように、または、それよりも少し小さくなるように、復号する部分の選択を行わせ、その選択した部分に対してのみ復号処理を行わせる。
【００３９】
換言すれば、制御部１１１は、可逆ラインベースデコード部１２１を制御し、非可逆ラインベースエンコード部１２３が目標符号量を達成することができる範囲において、復号処理の処理量をより低減させるように、可逆圧縮ファイルのコードストリームを部分的に復号させる。
【００４０】
以下において、このようなコードストリームの一部分を復号することを部分デコード処理と称する。以上のように部分デコード処理を行うことにより、可逆ラインベースデコード部１２１は、マスタ画像（原画像）のデータサイズが大きくても、容易かつ適切に可逆圧縮ファイルを復号することができる。
【００４１】
また、可逆ラインベースエンコード部１０１、可逆ラインベースデコード部１２１、および非可逆ラインベースエンコード部１２３のそれぞれが、画像データに対してラインベースのウェーブレット変換、または、コードストリームに対してラインベースのウェーブレット逆変換を行う。つまり、これらの処理部においては、１ピクチャを複数のライン毎に分割したラインブロック毎にウェーブレット変換またはウェーブレット逆変換が行われる。したがって、符号化装置１００は、ピクチャ毎にウェーブレット変換を行う場合よりも、一度に保持するウェーブレット係数の量を低減させることができ、バッファ１２２等として必要なメモリ容量をより低減させることができる。
【００４２】
さらに、非可逆トランスコード部１０２において制御部１１１は、可逆ラインベースデコード部１２１より出力される画像データが、非可逆ラインベースエンコード部１２３が符号化可能な量だけ、バッファ１２２に蓄積され次第、非可逆ラインベースエンコード部１２３を制御し、その画像データを符号化させるようにする。このように制御することにより、符号化装置１００は、バッファ１２２として必要なメモリ容量をより低減させることができる。
【００４３】
可逆ラインベースデコード部１２１および非可逆ラインベースエンコード部１２３の詳細については後述する。
【００４４】
［可逆エンコード部の構成］
次に、図１の符号化装置１００の構成の詳細について説明する。図２は、図１の可逆ラインベースエンコード部１０１の詳細な構成例を示すブロック図である。図２に示されるように、可逆ラインベースエンコード部１０１は、制御部１３１、ラインベース分析フィルタ１４１、バッファ１４２、および可逆符号化部１４３を有する。
【００４５】
制御部１３１は、ラインベース分析フィルタ部１４１の動作を制御するウェーブレット変換制御部１５１、および、可逆符号化部１４３の動作を制御する可逆符号化制御部１５２を有する。
【００４６】
ラインベース分析フィルタ部１４１は、ウェーブレット変換制御部１５１に制御され、入力された画像データに対して、所定のライン数のラインブロック毎に、係数を低域成分と高域成分に分割する分析フィルタ処理を低域成分に対して再帰的に繰り返す、ラインベースのウェーブレット変換を行う。
【００４７】
図３は、分割レベル数３のウェーブレット変換処理により生成されるサブバンドの構成例を示す図である。この場合、ベースバンドの画像データに対して、水平方向および垂直方向に分析フィルタリングが行われ、サブバンド1LL（図示せず）、1HL、1LH、および1HHが生成される。次に、サブバンド1LLに対して再度、水平方向および垂直方向に分析フィルタリングが行われ、2LL（図示せず）、2HL、2LH、および2HHが生成される。さらに、生成されたサブバンド2LLに対して、再度、水平方向および垂直方向に分析フィルタリングが行われ、3LL、3HL、3LH、および3HHが生成される。
【００４８】
ラインベース分析フィルタ部１４１は、このようなウェーブレット変換を、１ピクチャが所定のライン数毎に分割されたラインブロック毎に行う。図４は、このようなラインベースのウェーブレット変換を説明する図である。
【００４９】
図４Ａに示される斜線部分ように、ピクチャ内の連続する一部のラインによりラインブロックは形成される。このとき、図４Ｂに示されるように、ウェーブレット変換処理においては、分析フィルタリングが繰り返される度に、ライン数が低減する。
【００５０】
図４の例の場合、図４Ａに示されるベースバンドの画像データにおいて、８ラインからなるラインブロックを図４Ｂに示されるように分割レベル３まで分割すると、分割レベル１のサブバンド（1HH,1HL,1LH）においては、ライン数は４となり、分割レベル２のサブバンド（2HH,2HL,2LH）においては、ライン数は２となり、分割レベル３のサブバンド（3HH,3HL,3LH,3LL）においては、ライン数は１となる。
【００５１】
したがって、ラインブロックは、少なくとも、ウェーブレット変換後に最低域のサブバンドのライン数が１以上となるのに必要なライン数以上となる。
【００５２】
ラインベース分析フィルタ部１４１は、水平方向に分析フィルタリングを行う水平分析フィルタ部１６１と、垂直方向に分析フィルタリングを行う垂直分析フィルタ部１６２を有する。
【００５３】
ラインベース分析フィルタ部１４１は、まず、水平分析フィルタ部１６１により、水平方向の分析フィルタリングを行い、その処理結果に対して、垂直分析フィルタ部１６２により、垂直方向の分析フィルタリングを行う。所定の分割レベルに達するまで、その処理結果のLL成分について、同様の順で水平方向および垂直方向の分析フィルタリングが繰り返される。
【００５４】
次に、上述した分析フィルタリングにおける演算方法について具体的に説明する。分析フィルタリングにおける演算方法で最も一般的な演算方法は、畳み込み演算と呼ばれる方法である。この畳み込み演算は、デジタルフィルタの最も基本的な実現手段であり、フィルタのタップ係数に、実際の入力データを畳み込み乗算するものである。しかしながら、この畳み込み演算では、タップ長が長いとその分、計算負荷が増えてしまう場合もある。
【００５５】
これに対応する方法として、論文「W.Swelden,“The lifting scheme :A custom-design construction of Biorthogonal wavelets”, Applied and Computational Harmonic Analysis, vol3, no.2, pp.186-200, 1996」で紹介されたウェーブレット変換のリフティング技術が知られている。
【００５６】
図５は、JPEG2000規格でも採用されている９×７分析フィルタのリフティング構成を示している。この９×７分析フィルタに対してリフティング技術を適用したときの分析フィルタリングについて説明する。
【００５７】
図５の例において、１段目（最上段）は、入力画像のサンプル群（画素列）を示し、２，３段目は、それぞれステップＡ１およびステップＡ２の処理で生成される成分（係数）を示す。また、４段目は、ステップＡ３の処理で生成される高域成分出力を示し、５段目は、ステップＡ４の処理で生成される低域成分出力を示している。最上段部は、入力画像のサンプル群に限らず、前の分析フィルタリングで得られた係数であってもよい。ここでは、最上段部が入力画像のサンプル群であるものとし、四角印（■）が偶数番目のサンプルまたはライン、丸印（●）が奇数番目のサンプルまたはラインとする。
【００５８】
９×７分析フィルタに対してリフティング技術を適用した分析フィルタリングにおいては、ステップＡ３の処理で高域成分が得られ、ステップＡ４の処理で低域成分が得られる。なお、ステップＡ１乃至ステップＡ４の処理は、次の式（１）乃至式（４）で表される。
【００５９】
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）
【００６０】
このように、リフティング技術を適用した分析フィルタリングにおいては、ステップＡ１およびＡ２の処理が行われ、ステップＡ３で、高域成分の係数が生成された後に、ステップＡ４で、低域成分の係数が生成される。この際に用いられるフィルタバンクは、式（１）乃至式（４）に示されるように、加算とシフト演算のみで実現できる。したがって、計算量を大幅に低減することができる。そこで、次に説明するように、水平分析フィルタリングおよび垂直分析フィルタリングに、このリフティング技術を適用する。
【００６１】
まず、水平分析フィルタリングの処理について具体的に説明する。図６は、水平分析フィルタリングを、図５のリフティング構成により実行する場合の例を示している。
【００６２】
図６の例においては、入力される水平方向の係数に対して、図５で上述した４つのステップ（ステップＡ１乃至Ａ４）の処理を経て、高域成分の係数（以下、高域係数とも称する）と低域成分の係数（以下、低域係数とも称する）が生成される例が示されており、リフティングのステップの方向は、図中上から下に進む。また、水平方向の係数の上に示される数字は、列（コラム）番号を示している。
【００６３】
さらに、上から１段目の丸および四角は、それぞれ、入力される高域係数および低域係数を表しており、２段目以降の丸および四角は、それぞれ、リフティング演算の過程で生成される高域係数および低域係数を表しており、その中でも、ハッチが付された丸および四角は、それぞれ、リフティング演算の結果である高域係数および低域係数を表している。
【００６４】
以下、動作について上から順に説明する。図６の上段には、水平方向にコラム番号４乃至６の３コラムの係数が入力されて、水平方向のリフティング構成による演算（以下、水平リフティング演算と称する）が行われる場合の例が示されている。
【００６５】
この水平リフティング演算のステップＡ３において１番目の高域係数を求め、ステップＡ４において１番目の低域係数を求めるためには、コラム番号０乃至４の４コラムの係数の入力が必要である。
【００６６】
その後、２番目の高域係数と低域係数を求めるためには、太線実線で示される３つの係数と、丸数字で示されるコラム番号５および６の２コラムの係数が必要であり、さらに、ステップＡ２のＰ１が示される係数を算出するためには、丸数字で示されるコラム番号４の係数も必要である。
【００６７】
太線実線で示される３つの係数は、１番目の高域係数および低域係数を求めるための水平リフティング演算（以下、１番目の水平リフティング演算とも称する）の過程で生成される係数のうちの一部である。
【００６８】
すなわち、２番目の高域係数と低域係数を求めるためには、結局、丸数字で示されるコラム番号４乃至６の３コラムの係数の入力が必要であり、さらに、１番目の水平リフティング演算の過程において生成される太線実線で示される３つの係数を、途中演算用の係数として、ラッチしておく必要がある。実際には、高々３つの係数であるので、フリップフロップ等の小容量の記憶領域を用いることで対応することができる。
【００６９】
したがって、１番目の水平リフティング演算においてラッチされていた太線実線で示される３つの係数と、入力されたコラム番号４乃至６の３コラムの係数が用いられて水平リフティング演算が行われることにより、その演算過程および終了時においては、２番目の高域係数と低域係数を含めた４つの係数（太線点線で示される）が生成される。これらのうち、一点鎖線で示される３つの係数は、３番目の高域係数と低域係数を求めるために必要な係数であるので、途中演算用の係数として、内蔵されるフリップフロップにラッチされる。
【００７０】
コラム番号６の係数の入力の後、水平方向に２コラムの係数が追加入力される場合、すなわち、水平方向にコラム番号６乃至８の３コラムの係数が入力されて、水平リフティング演算が行われる場合の例が、図６の下段に示されている。
【００７１】
２番目の場合と同様に、３番目の高域係数と低域係数を求めるためには、太線実線で示される３つの係数と、丸数字で示されるコラム番号７および８の２コラムの係数が必要であり、さらに、ステップＡ２のＰ２が示される係数を算出するためには、丸数字で示されるコラム番号６の係数も必要であることがわかる。
【００７２】
なお、下段の太線実線で示される３つの係数は、上段の一点鎖線で示されるように、２番目の水平リフティング演算でフリップフロップにラッチされている。
【００７３】
したがって、２番目の水平リフティング演算でラッチされていた太線実線で示される３つの係数と、入力されたコラム番号６乃至８の３コラムの係数が用いられて水平リフティング演算が行われることにより、３番目の高域係数と低域係数を含めた４つの係数（太線点線で示される）が生成される。これらのうち、一点鎖線で示される３つの係数は、４番目の高域係数と低域係数を求めるために必要な係数であるので、内蔵されるフリップフロップにラッチされる。
【００７４】
以上のようにして、３コラム分の係数を順次入力しながら、途中演算用の３つの係数を保持しながら、水平リフティング演算が、画面の最右端のコラムまで実行されることで、水平方向の分析フィルタリングが完了される。
【００７５】
なお、以上においては、リフティング構成による１ライン分の水平分析フィルタリングの例を説明したが、上述した動作によって、係数のラインを上から下方向に順次入力しながら、リフティング構成により水平分析フィルタリングが行われる。
【００７６】
そして、垂直方向の係数が所定数集まり次第、すなわち、所定ライン数集まり次第、右側のリフティングのステップの方向に示されるように、左から右へと、垂直方向のリフティング構成による演算（すなわち、垂直リフティング演算）が行われる。
【００７７】
次に、垂直分析フィルタリングについて具体的に説明する。図７は、垂直方向の分析フィルタリングを、図５のリフティング構成により実行する場合の例を示している。
【００７８】
なお、この図は、水平方向に展開されて並ぶ係数１つに着目したものであり、実際の２次元のウェーブレット変換では、ウェーブレット変換の過程で生成される周波数成分（サブバンド）の水平方向の係数の個数だけ、垂直方向の分析フィルタリングの計算が必要になることは自明である。
【００７９】
図７の例においては、垂直方向の係数に対して、図５で上述した４つのステップ（ステップＡ１乃至Ａ４）の処理を経て、高域係数と低域係数が生成される例が示されており、リフティングのステップの方向は、図中左から右に進む。また、垂直方向の係数の左に示される数字は、ライン番号を示している。
【００８０】
さらに、左から１列目の丸および四角は、それぞれ、入力される高域係数および低域係数を表しており、２列目以降の丸および四角は、それぞれ、リフティング演算の過程で生成される高域係数および低域係数を表しており、その中でも、ハッチが付された丸および四角は、それぞれ、リフティング演算の結果である高域係数および低域係数を表している。
【００８１】
以下、動作について左から順に説明する。図７の左側には、垂直方向にライン番号４乃至６の３ラインの係数が入力されて、垂直リフティング演算が行われる場合の例が示されている。
【００８２】
この垂直リフティング演算のステップＡ３において１番目の高域係数を求め、ステップＡ４において１番目の低域係数を求めるためには、ライン番号０乃至４の４ラインの係数が必要である。
【００８３】
その後、２番目の高域係数と低域係数を求めるためには、太線実線で示される３つの係数と、丸数字で示されるライン番号５および６の２ラインの係数が必要であり、さらに、ステップＡ２のＰ１が示される係数を算出するためには、丸数字で示されるライン番号４の係数も必要である。
【００８４】
太線実線で示される３つの係数は、１番目の高域係数および低域係数を求めるための垂直リフティング演算（以下、１番目の垂直リフティング演算と称する）の過程で生成される係数のうちの一部である。
【００８５】
すなわち、２番目の高域係数と低域係数を求めるためには、結局、丸数字で示されるライン番号４乃至６の３ラインの係数の入力が必要である。さらに、１番目の垂直リフティング演算の過程において生成される太線実線で示される３つの係数が必要である。この３つの係数が途中演算用の係数として記憶される。
【００８６】
したがって、１番目の垂直リフティング演算で記憶されていた太線実線で示される３つの係数と、対応するレベルのバッファから読み出され入力されるライン番号４乃至６の３ラインの係数が用いられて垂直リフティング演算が行われることにより、２番目の高域係数と低域係数を含めた４つの係数（太線点線で示される）が得られる。これらのうち、一点鎖線で示される３つの係数は、３番目の高域係数と低域係数を求めるために必要な係数であるので記憶される。
【００８７】
ライン番号６の係数の読み出しの後、２ラインの係数が追加して読み出される場合、すなわち、垂直方向にライン番号６乃至８の３ラインの係数が入力されて、垂直リフティング演算が行われる場合の例が、図７の右側に示されている。
【００８８】
２番目の場合と同様に、３番目の高域係数と低域係数を求めるためには、太線実線で示される３つの係数と、丸数字で示されるライン番号７および８の２ラインの係数が必要であり、さらに、ステップＡ２のＰ２が示される係数を算出するためには、丸数字で示されるライン番号６の係数も必要であることがわかる。
【００８９】
なお、右側の太線実線で示される３つの係数は、左側の一点鎖線で示されるように、２番目の垂直リフティング演算で記憶されている。したがって、２番目の垂直リフティング演算で記憶されていた太線実線で示される３つの係数と、対応するレベルのバッファから読み出されて入力されるライン番号６乃至８の３ラインの係数が用いられて垂直リフティング演算が行われることにより、３番目の高域係数と低域係数を含めた４つの係数（太線点線で示される）が得られる。これらのうち、一点鎖線で示される３つの係数は、４番目の高域係数と低域係数を求めるために必要な係数であるので記憶される。
【００９０】
以上のようにして、３ライン分の係数を順次入力しながら、途中演算用の３つの係数を保持しながら、垂直リフティング演算が、画面の最下位のラインまで実行されることで、垂直方向の分析フィルタリングが完了される。
【００９１】
図２に戻り、以上のようにして生成されたウェーブレット係数は、バッファ１４２に一時的に保持される。
【００９２】
可逆符号化部１４３は、可逆符号化制御部１５２に制御され、バッファ１４２に所定量の係数データが蓄積され次第、それを読み出して可逆符号化方式によるエントロピ符号化を行い、コードストリームを生成する。
【００９３】
可逆符号化部１４３は、EBCOT（Embedded Coding with Optimized Truncation）部１７１、ヘッダ生成部１７２、およびパケット生成部１７３を有する。
【００９４】
EBCOT部１７１は、入力される係数データに対して、JPEG2000規格で定められたEBCOTと呼ばれるエントロピ符号化を行う。EBCOTは、所定の大きさのブロック毎にそのブロック内の係数の統計量を測定しながら符号化を行う手法である。EBCOT部１７１は、ビットモデリング部１８１および算術符号化部１８２を有する。
【００９５】
ビットモデリング部１８１は、符号化方式の規格で定められた手順に従って、係数データに対してビットモデリングを行い、算術符号化部１８２にコンテキストを送出する。算術符号化部１８２は、係数のビットプレーンを算術符号化する。
【００９６】
コードブロックの縦横のサイズは４から２５６まで２のべき乗で、通常使用される大きさは、３２×３２、６４×６４、１２８×３２等がある。係数値がｎビットの符号付き２進数で表されていて、bit０からbit（ｎ−２）がLSBからMSBまでのそれぞれのビットを表すとする。残りの１ビットは符号を示す。符号ブロックの符号化は、MSB側のビットプレーンから順番に、例えばSignificant Propagation Pass、Magnitude Refinement Pass、およびCleanup Passの３種類の符号化パスによって行われる。
【００９７】
算術符号化部２０７は、生成したコードストリームを、ヘッダ作成部１７２およびパケット生成部１７３に供給する。
【００９８】
パケット生成部１７３は、供給された符号化コードストリームをパケット化する。ヘッダ生成部１７２は、そのパケットのヘッダ情報を生成し、そのヘッダ情報をパケット生成部１７３に供給する。パケット生成部１７３は、そのヘッダ情報を用いてパケット化を行う。生成されたパケットは可逆ラインベースエンコード部１０１の外部に出力される。
【００９９】
［可逆デコード部の構成］
次に、図１の可逆ラインベースデコード部１２１について説明する。図８は、制御部１１１および可逆ラインベースデコード部１２１の構成例を示すブロック図である。
【０１００】
図８に示されるように、可逆ラインベースデコード部１２１は、復号部２１１、バッファ２１２、およびラインベース合成フィルタ部２１３を有する。
【０１０１】
また、制御部１１１は、復号部２１１の動作を制御する復号制御部２０１、および、ラインベース合成フィルタ部２１３の動作を制御するウェーブレット逆変換制御部２０２を有する。
【０１０２】
復号部２１１は、復号制御部２０１により制御され、非可逆トランスコード部１０２の外部より入力されるコードストリームに対して、可逆ラインベースエンコード部１０１における符号化方法に対応する復号方法で復号する。
【０１０３】
復号部２１１は、パケット解読部２３１およびEBCOT部２３２を有する。パケット解読部２３１は、復号制御部２０１により制御され、パケットを解読し、コードストリームをEBCOT部２３２に供給する。EBCOT部２３２は、入力されるコードストリームに対して、規格で定められたEBCOTと呼ばれるエントロピ復号を行う。
【０１０４】
EBCOT部２３２は、算術復号部２４１およびビットモデリング部２４２を有する。算術復号部２４１は、算術符号化部１８２に対応する方法でコードストリームを復号し、コンテキストをビットモデリング部２４２に供給する。ビットモデリング部２４２は、ビットモデリング部１８１に対応する方法で、ウェーブレット係数を生成する。ビットモデリング部２４２は、生成した係数データを、バッファ２１２に供給し、保持させる。
【０１０５】
ラインベース合成フィルタ部２１３は、ウェーブレット逆変換制御部２０２に制御され、バッファ２１２に所定量の係数データが蓄積され次第、それを読み出し、所定のライン数のラインブロック毎に、低域成分と高域成分の係数を合成する合成フィルタ処理を低域成分から再帰的に繰り返す、ラインベースのウェーブレット逆変換を行う。
【０１０６】
ラインベース合成フィルタ部２１３は、このようなウェーブレット逆変換を、各サブバンドの所定のライン数毎に分割されたラインブロック毎に行う。図９は、このようなラインベースのウェーブレット逆変換を説明する図である。
【０１０７】
図９Ａに示される斜線部分ように、各サブバンドの連続する一部のラインによりラインブロックは形成される。このとき、図９Ａに示されるように、ウェーブレット逆変換処理においては、合成フィルタリングが繰り返される度に、ライン数が低減する。
【０１０８】
図９の例の場合、図９Ａに示される最低域のサブバンドにおいて、８ラインからなるラインブロックを合成フィルタリングしていき、図９Ｂに示されるようにベースバンドまで合成すると、そのベースバンドにおいてライン数は１となる。
【０１０９】
したがって、最低域のサブバンドにおいて、ラインブロックは、少なくとも、ウェーブレット逆変換後にベースバンドのライン数が１以上となるのに必要なライン数以上となる。
【０１１０】
ラインベース合成フィルタ部２１３は、垂直方向に合成フィルタリングを行う垂直合成フィルタ部２５１と、水平方向に合成フィルタリングを行う水平合成フィルタ部２５２を有する。
【０１１１】
ラインベース合成フィルタ部２１３は、まず、垂直合成フィルタ部２５１により、最低域の分割レベルの４成分（LL,LH,HL,HH）について、垂直方向の合成フィルタリングを行い、その処理結果に対して、水平合成フィルタ部２５２により、水平方向の合成フィルタリングを行う。所定の分割レベルに達するまで、その処理結果の最低域の分割レベルの４成分について、同様の順で垂直方向および水平方向の合成フィルタリングが繰り返される。
【０１１２】
上述したリフティング技術を適用したときの分析フィルタリングに対応して、効率的にフィルタリングを実行することができることから、ウェーブレット逆変換の合成フィルタリングにおいても、同様にリフティング技術を用いることが好ましい。
【０１１３】
図１０は、JPEG2000規格でも採用されている９×７合成フィルタのリフティング構成を示している。この９×７合成フィルタに対してリフティング技術を適用したときの合成フィルタリングについて説明する。
【０１１４】
図１０の例において、１段目（最上段）は、ウェーブレット変換により生成された係数であり、丸印（●）が高域成分の係数を示し、四角印（■）が低域成分の係数を示す。２，３段目は、それぞれステップＢ１およびステップＢ２の処理で生成される成分（係数）を示す。また、４段目は、ステップＢ３の処理で生成される偶数成分出力を示し、５段目は、ステップＢ４の処理で生成される奇数成分出力を示している。
【０１１５】
９×７合成フィルタに対してリフティング技術を適用した合成フィルタリングにおいては、ステップＢ３の処理で偶数成分が得られ、ステップＢ４の処理で奇数成分が得られる。なお、ステップＢ１乃至ステップＢ４の処理は、次の式（５）乃至式（８）で表される。
【０１１６】
stepＢ１：ｓi1＝ｓi2−δ（ｄi-12＋ｄi2）  ・・・（５）
stepＢ２：ｄi1＝ｄi3−γ（ｓi1＋ｓi+11）  ・・・（６）
stepＢ３：ｓi0＝ｓi1−β（ｄi-11＋ｄi1）  ・・・（７）
stepＢ４：ｄi0＝ｄi1−α（ｓi0＋ｓi+10）  ・・・（８）
（α＝-1.586134342，β＝-0.0529801185，γ＝0.8829110755，δ＝0.4435068520）
【０１１７】
このように、リフティング技術を適用した合成フィルタリングにおいては、ステップＢ１およびＢ２の処理が行われ、ステップＢ３で、偶数成分の係数が生成された後に、ステップＢ４で、奇数成分の係数が生成される。この際に用いられるフィルタバンクは、式（５）乃至式（８）に示されるように、除算とシフト演算のみで実現できる。したがって、計算量を大幅に低減することができる。
【０１１８】
そこで、次に説明するように、垂直合成フィルタリングおよび水平合成フィルタリングに、このリフティング技術を適用する。なお、用いる式が異なるだけであり、垂直合成フィルタリングは、図７を参照して上述した垂直分析フィルタリングと基本的に同様な動作を行い、水平合成フィルタリングは、図６を参照して上述した水平分析フィルタリングと基本的に同様な動作を行う。
【０１１９】
まず、垂直合成フィルタリングの処理について具体的に説明する。図１１は、垂直方向の係数群に対しての垂直合成フィルタリングを、図１０のリフティング構成により実行する場合の例を示している。
【０１２０】
図１１の例においては、垂直方向の係数に対して、図１０で上述した４つのステップ（ステップＢ１乃至Ｂ４）の処理を経て、偶数番目の係数（以下、偶数係数とも称する）と奇数番目の係数（以下、奇数係数とも称する）が生成される例が示されており、リフティングのステップの方向は、図中左から右に進む。
【０１２１】
また、垂直方向の係数の左側に示される数字は、ライン番号を示しており、左から１列目のハッチが付された丸および四角は、それぞれ、高域入力および低域入力を表している。さらに、２列目以降の丸および四角は、それぞれ、リフティング演算の過程で生成される高域係数および低域係数を表しており、その中でも、黒丸および黒四角は、それぞれ、リフティング演算の結果である奇数係数および偶数係数を表している。
【０１２２】
以下、動作について左から順に説明する。図１１の左側には、垂直方向にライン番号４乃至６の３ラインの係数が入力されて、垂直方向のリフティング構成による演算（すなわち、垂直リフティング演算）が行われる場合の例が示されている。なお、いまの場合、最上段の偶数係数は、奇数係数と組みになっていないのでその説明を省略する。
【０１２３】
この垂直リフティング演算のステップＢ３において１番目の偶数係数を求め、ステップＢ４において１番目の奇数係数を求めるためには、ライン番号０乃至５の６ラインの係数が必要である。
【０１２４】
その後、２番目の偶数係数と奇数係数を求めるためには、太線実線で示される３つの係数と、丸数字で示されるライン番号６および７の２ラインの係数が必要であり、さらに、ステップＢ２のＱ１が示される係数を算出するためには、丸数字で示されるライン番号５の係数も必要である。
【０１２５】
太線実線で示される３つの係数は、１番目の偶数係数および奇数係数を求めるための垂直リフティング演算（以下、１番目の垂直リフティング演算と称する）の過程で生成される係数のうちの一部である。
【０１２６】
したがって、２番目の偶数係数と奇数係数を求めるためには、結局、丸数字で示されるライン番号５乃至７の３ラインの係数の入力が必要であり、さらに、１番目の偶数係数と奇数係数を求めるための垂直リフティング演算の過程において生成される太線実線で示される３つの係数を記憶しておく必要がある。なお、このとき、垂直方向の３ラインの係数は、レベル毎に読み出される。
【０１２７】
したがって、１番目の垂直リフティング演算でバッファに記憶されていた太線実線で示される３つの係数と、入力されるライン番号５乃至７の３ラインの係数が用いられて垂直リフティング演算が行われることにより、２番目の偶数係数と奇数係数を含めた４つの係数（太線点線で示される）が得られる。このうち、一点鎖線で示される３つの係数は、３番目の偶数係数と奇数係数を求めるために必要な係数であるので記憶される。
【０１２８】
ライン番号７の係数の読み出しの後、２ラインの係数が追加して読み出される場合、すなわち、垂直方向にライン番号７乃至９の３ラインの係数が入力されて、垂直リフティング演算が行われる場合の例が、図１１の右側に示されている。
【０１２９】
２番目の場合と同様に、３番目の偶数係数と奇数係数を求めるためには、太線実線で示される３つの係数と、丸数字で示されるライン番号８および９の２ラインの係数が必要であり、さらに、ステップＢ２のＱ２が示される係数を算出するためには、丸数字で示されるライン番号７の係数も必要である。
【０１３０】
なお、右側の太線実線で示される３つの係数は、左側の一点鎖線で示されるように、２番目の垂直リフティング演算で係数バッファに記憶されている。
【０１３１】
したがって、２番目の垂直リフティング演算で記憶されていた太線実線で示される３つの係数と、入力されるライン番号７乃至９の３ラインの係数が用いられて垂直リフティング演算が行われることにより、３番目の偶数係数と奇数係数を含めた４つの係数（太線点線で示される）が得られる。このうち、一点鎖線で示される３つの係数は、３番目の偶数係数と奇数係数を求めるために必要な係数であるので記憶される。
【０１３２】
以上のようにして、３ライン分の係数を順次入力しながら、途中演算用の３つの係数を保持しながら、垂直リフティング演算が、画面の最下位のラインまで実行されることで、垂直方向の合成フィルタリングが完了される。
【０１３３】
次に、水平合成フィルタリングについて具体的に説明する。図１２は、垂直方向の合成フィルタリングの結果を水平方向に並べて、水平合成フィルタリングを、図１０のリフティング構成により実行する場合の例を示している。
【０１３４】
図１２の例においては、水平方向の係数に対して、図１０で上述した４つのステップ（ステップＢ１乃至Ｂ４）の処理を経て、奇数係数と偶数係数が生成される例が示されており、リフティングのステップの方向は、図中上から下に進む。
【０１３５】
また、水平方向の係数の上に示される数字は、列（コラム）番号を示しており、上から１段目のハッチが付された丸および四角は、それぞれ、高域入力および低域入力を表しており、２段目以降の丸および四角は、それぞれ、リフティング演算の過程で生成される高域係数および低域係数を表しており、その中でも、黒丸および黒四角は、それぞれ、リフティング演算の結果である奇数係数および偶数係数を表している。
【０１３６】
以下、動作について上から順に説明する。図１２の上段には、水平方向にコラム番号５乃至７の３コラムの係数が入力されて水平方向のリフティング構成による演算（以下、水平リフティング演算と称する）が行われる場合の例が示されている。なお、いまの場合、最左側の偶数係数は奇数係数と組みになっていないのでその説明を省略する。
【０１３７】
この水平リフティング演算のステップＢ３において１番目の偶数係数を求め、ステップＢ４において１番目の奇数係数を求めるためには、コラム番号０乃至５の６コラムの係数が必要である。
【０１３８】
その後、２番目の奇数係数と偶数係数を求めるためには、太線実線で示される３つの係数と、丸数字で示されるコラム番号６および７の２コラムの係数が必要であり、さらに、ステップＢ２のＱ１が示される係数を算出するためには、丸数字で示されるコラム番号５の係数も必要である。
【０１３９】
太線実線で示される３つの係数は、１番目の奇数係数および偶数係数を求めるための水平リフティング演算（以下、１番目の水平リフティング演算とも称する）の過程で生成される係数のうちの一部である。
【０１４０】
すなわち、２番目の奇数係数と偶数係数を求めるためには、結局、丸数字で示されるコラム番号５乃至７の３コラムの係数の入力が必要であり、さらに、１番目の水平リフティング演算の過程において生成される太線実線で示される３つの係数を、ラッチしておく必要がある。実際には、高々３つの係数であるので、フリップフロップのような小容量の記憶領域を用いることで対応することができる。
【０１４１】
したがって、１番目の水平リフティング演算でラッチされていた太線実線で示される３つの係数と、入力されたコラム番号５乃至７の３コラムの係数が用いられて水平リフティング演算が行われることにより、その演算過程および終了時においては、２番目の奇数係数と偶数係数を含めた４つの係数（太線点線で示される）が得られる。このうち、一点鎖線で示される３つの係数は、３番目の奇数係数と偶数係数を求めるために必要な係数であるので、内蔵されるフリップフロップにラッチされる。
【０１４２】
コラム番号７の係数の入力の後、水平方向に２コラムの係数が追加入力される場合、すなわち、水平方向にコラム番号７乃至９の３コラムの係数が入力されて、水平リフティング演算が行われる場合の例が、図１２の下段に示されている。
【０１４３】
２番目の場合と同様に、３番目の奇数係数と偶数係数を求めるためには、太線実線で示される３つの係数と、丸数字で示されるコラム番号８および９の２コラムの係数が必要であり、さらに、ステップＢ２のＱ２が示される係数を算出するためには、丸数字で示されるコラム番号７の係数も必要である。
【０１４４】
なお、下段の太線実線で示される３つの係数は、上段の一点鎖線で示されるように、２番目の水平リフティング演算でラッチされている。
【０１４５】
したがって、２番目の水平リフティング演算でラッチされていた太線実線で示される３つの係数と、新たに入力されるコラム番号７乃至９の３コラムの係数が用いられて水平リフティング演算が行われることにより、３番目の奇数係数と偶数係数を含めた４つの係数（太線点線で示される）が得られる。このうち、一点鎖線で示される３つの係数は、４番目の奇数係数と偶数係数を求めるために必要な係数であるので、内蔵されるフリップフロップにラッチされる。
【０１４６】
以上のようにして、３コラム分の係数を順次入力しながら、途中演算用の３つの係数を保持しながら、水平リフティング演算が、画面の最右端のコラムまで実行されることで、水平方向の合成フィルタリングが完了される。
【０１４７】
以上のように、垂直合成フィルタリングおよび水平合成フィルタリングにおいても、９×７ウェーブレット変換フィルタのリフティング構成が用いられることで、対応する分割レベルのバッファには、３ライン分の係数を記憶する各ラインの係数用のバッファが必要となり、さらに、図１１のＱ１およびＱ２の係数を求めるため、垂直リフティング演算の際、すでに使用したラインの係数も、次の垂直リフティング演算に必要になる。
【０１４８】
したがって、対応するレベルのバッファの内部では、１つのラインのバッファに記憶されている係数を、隣接するラインのバッファに、次々と転送していく構成となる。
【０１４９】
以上のように合成フィルタリングされ、得られたベースバンドの画像データは、バッファ１２２に蓄積される。
【０１５０】
なお、このラインベース合成フィルタ部２１３は、ウェーブレット逆変換制御部２０２に制御され、可逆符号化前の画像データに対して、所望の圧縮率で圧縮されたベースバンドの画像データを得るために、所定の分割レベルまで合成フィルタリングを行う。つまり、ラインベース合成フィルタ部２１３は、必ずしも分割レベル０まで合成するとは限らない。ただし、ラインベース合成フィルタ部２１３がどの分割レベルまで合成フィルタリングを行う場合であっても、得られた合成フィルタ結果は、ベースバンドの画像データとして取り扱われる。
【０１５１】
［非可逆エンコード部の構成］
次に、非可逆ラインベースエンコード部１２３について説明する。図１３は、制御部と非可逆ラインベースエンコード部の構成例を示すブロック図である。図１３に示されるように、非可逆ラインベースエンコード部１２３は、基本的に、可逆ラインベースエンコード部１０１と同様の構成を有する。
【０１５２】
すなわち、非可逆ラインベースエンコード部１２３は、図２のラインベース分析フィルタ部１４１と同様のラインベース分析フィルタ部３１１、図２のバッファ１４２と同様のバッファ３１２、および、可逆符号化部１４３と同様の非可逆符号化部３１３を有する。
【０１５３】
また、制御部１１１は、ラインベース分析フィルタ部３１１の動作を制御するウェーブレット変換制御部３０１、および、非可逆符号化部３１３の動作を制御する非可逆符号化部３０２を有する。
【０１５４】
ラインベース分析フィルタ部３１１は、ウェーブレット変換制御部３０１により制御され、バッファ１２２より読み出された画像データに対して、ラインブロック毎にウェーブレット変換を行う。ラインベース分析フィルタ部３１１は、図２の水平分析フィルタ部１６１と同様の水平分析フィルタ部３２１と、図２の垂直分析フィルタ部１６２と同様の垂直分析フィルタ部３２２を有する。
【０１５５】
水平分析フィルタ部３２１は、ウェーブレット変換制御部３０１により制御され、バッファ１２２より読み出された画像データに対して、水平方向にラインベースの分析フィルタリングを行い、垂直分析フィルタ部３２２は、ウェーブレット変換制御部３０１により制御され、垂直方向にラインベースの分析フィルタリングを行い、得られた処理結果をバッファ３１２に供給して保持させる。
【０１５６】
非可逆符号化部３０２は、可逆符号化部１４３の構成に加え、さらに量子化部３３１を有する。すなわち、EBCOT部３３２は、EBCOT部１７１に対応し、ヘッダ生成部３３３は、図２のヘッダ生成部１７２に対応し、パケット生成部３３４は、パケット生成部１７３に対応する。
【０１５７】
EBCOT部３３２は、EBCOT部１７１のビットモデリング部１８１と同様のビットモデリング部３４１と、EBCOT部１７１の算術符号化部１８２と同様の算術符号化部３４２とを有する。
【０１５８】
量子化部３３１は、非可逆符号化制御部３０２により制御され、バッファ３１２より取得したウェーブレット係数を量子化する。この量子化の方法は任意であるが、量子化ステップサイズで除算するスカラ量子化が一般的である。量子化部３３１は、量子化により得られた量子化係数を、EBCOT部３３２に供給する。なお、これより後段においては、ウェーブレット係数の代わりに量子化係数が供給されることになるが、この量子化係数もウェーブレット係数の場合と基本的に同様に扱われる。したがって、以下においては、必要でない限りその点についての説明は省略し、単に係数または係数データと称する。
【０１５９】
ビットモデリング部３４１は、規格で定められた手順に従って、係数データに対してビットモデリングを行い、算術符号化部３４２にコンテキストを送出する。算術符号化部３４２は、係数のビットプレーンを算術符号化する。
【０１６０】
図１４は、ウェーブレット変換およびウェーブレット逆変換の処理の様子を説明する図である。
【０１６１】
制御部１１１は、可逆ラインベースデコード部１２１によるラインベースウェーブレット逆変換処理と、非可逆ラインベースエンコード部１２３によるラインベースウェーブレット変換処理とを並行して行うように制御する。
【０１６２】
図１４左に示されるように、制御部１１１は、ラインベース合成フィルタ部２１３に、最低域成分のラインが所定のPラインバッファ２１２に保持される毎にラインベースウェーブレット逆変換を行わせ、１ラインのベースバンドの画像データを生成させ、それをバッファ１２２に保持させる。制御部１１１は、ラインベース合成フィルタ部２１３を制御し、このようなラインベースウェーブレット逆変換処理を繰り返す。
【０１６３】
このような処理が繰り返され、バッファ１２２に、ベースバンドの画像データが所定のＬライン分蓄積され次第、制御部１１１は、図１４右に示されるように、ラインベース分析フィルタ部３１１に、そのＬライン分のベースバンドの画像データを取得させ、ラインベースウェーブレット変換を行わせ、サブバンド毎の係数データを生成させる。制御部１１１は、ラインベース分析フィルタ部３１１を制御し、このようなラインベースウェーブレット変換処理を繰り返す。
【０１６４】
このように制御することにより、バッファ１２２に同時に蓄積されるデータ量を必要最小限とすることができるので、制御部１１１は、バッファ１２２として必要なメモリ量を低減させることができる。
【０１６５】
［処理の流れ］
次に、各処理の流れについて説明する。最初に、可逆ラインベースエンコード部１０１により実行される可逆符号化処理の流れの例を、図１５のフローチャートを参照して説明する。
【０１６６】
可逆符号化処理が開始されると、ラインベース分析フィルタ部１４１は、ウェーブレット変換制御部１５１に制御され、対象ラインブロックをウェーブレット変換する。ステップＳ１０２において、EBCOT部１７１は、可逆符号化制御部１５２に制御され、ステップＳ１０１の処理により生成されたウェーブレット係数に対して、エントロピ符号化を行い、コードストリームを生成する。ステップＳ１０３において、ヘッダ生成部１７２およびパケット生成部１７３は、可逆符号化制御部１５２に制御され、ヘッダを生成し、さらにコードストリームのパケットを生成する。ステップＳ１０４において、制御部１３１は、全てのラインブロックを処理したか否かを判定する。
【０１６７】
未処理のラインブロックが存在し、全てのラインブロックを処理していないと判定された場合、ステップＳ１０１に戻り、それ以降の処理が繰り返される。また、ステップＳ１０４において、全てのラインブロックが処理されたと判定された場合、可逆符号化処理が終了される。
【０１６８】
以上のように生成されたパケットは、非可逆トランスコード部１０２に供給される。
【０１６９】
次に、非可逆トランスコード部１０２の制御部１１１により実行されるトランスコード制御処理の流れの例を図１６のフローチャートを参照して説明する。
【０１７０】
トランスコード制御処理が開始されると、ステップＳ１２１において、復号制御部２０１は、復号部２１１を制御し、処理対象コードストリームを全て処理するまで、コードストリームを復号させる。復号されて得られたウェーブレット係数は、順次バッファ２１２に供給され、保持される。
【０１７１】
ステップＳ１２２において、ウェーブレット逆変換制御部２０２は、ラインベース合成フィルタ部２１３を制御し、バッファ２１２に保持されている処理対象係数データが無くなるまで、処理対象係数データをウェーブレット逆変換させる。ウェーブレット逆変換されて得られたベースバンドの画像データは、順次バッファ１２２に保持される。
【０１７２】
ステップＳ１２３において、制御部１１１は、バッファ１２２に画像データが１ラインブロック分蓄積されたか否かを判定し、蓄積されたと判定されるまで待機する。
【０１７３】
バッファ１２２に画像データが１ラインブロック分蓄積されたと判定された場合、処理はステップＳ１２４に進む。ステップＳ１２４において、ウェーブレット変換制御部３０１は、ラインベース分析フィルタ部３１１を制御し、バッファ１２２に蓄積されたラインブロックを読み出させ、ウェーブレット変換させる。符号化されて得られたウェーブレット係数は、順次バッファ３１２に供給され、保持される。
【０１７４】
ステップＳ１２５において、非可逆符号化制御部３０２は、非可逆符号化部１２３を制御し、バッファ３１２に蓄積されたウェーブレット係数を読み出し、非可逆符号化させる。ステップＳ１２５の処理により得られたコードストリームは、パケット化されて符号化装置１００の外部に出力される。
【０１７５】
ステップＳ１２６において、制御部１１１は、バッファ１２２に未処理の画像データが存在するか否かを判定する。存在すると判定された場合、ステップＳ１２３に戻り、それ以降の処理が繰り返される。また、ステップＳ１２６において、バッファ１２２に未処理の画像データが存在しないと判定された場合、トランスコード制御処理が終了される。
【０１７６】
次に、図１６のステップＳ１２１の制御により実行される復号処理の流れの例を図１７のフローチャートを参照して説明する。
【０１７７】
復号処理が開始されると、パケット解読部２３１は、ステップＳ１４１において、所定量のコードストリームを取得する。ステップＳ１４２において、EBCOT部２３２は、得られたコードストリームをエントロピ復号する。ステップＳ１４３において、バッファ１２１は、ステップＳ１４２の処理により得られた係数を保持する。ステップＳ１４３の処理が終了されると、復号処理が終了される。
【０１７８】
次に、図１８のフローチャートを参照して、図１６のステップＳ１２２の制御により実行されるウェーブレット逆変換処理の流れの例を図１８のフローチャートを参照して説明する。
【０１７９】
ウェーブレット逆変換処理が開始されると、ラインベース合成フィルタ部２１３は、ステップＳ１６１において、所定量の係数がバッファ２１２に蓄積されたか否かを判定し、蓄積されたと判定するまで待機する。所定量の係数がバッファ２１２に蓄積されたと判定された場合、処理はステップＳ１６２に進む。
【０１８０】
ステップＳ１６２において、ラインベース合成フィルタ部２１３は、バッファ２１２に保持されている係数を取得する。ステップＳ１６３において、ラインベース合成フィルタ部２１３は、取得した係数に対して、合成フィルタ処理を行う。ステップＳ１６４において、ラインベース合成フィルタ部２１３は、ステップＳ１６３の処理により得られた画像データをバッファ１２２に供給し、保持させる。ステップＳ１６４の処理が終了されると、ウェーブレット逆変換処理が終了される。
【０１８１】
次に、図１５のステップＳ１２４の制御により実行されるウェーブレット変換処理の流れの例を図１９のフローチャートを参照して説明する。
【０１８２】
ウェーブレット変換処理が開始されると、ラインベース分析フィルタ部３１１は、ステップＳ１８１において、バッファ１２２に蓄積された処理対象ラインブロックを取得する。ステップＳ１８２において、ラインベース分析フィルタ部３１１は、取得したラインブロックについて分析フィルタ処理を行う。ステップＳ１８３において、ラインベース分析フィルタ部３１１は、ステップＳ１８２の処理により生成された係数データをバッファ３１２に供給し、保持させる。ステップＳ１８３の処理が終了されると、ウェーブレット変換処理が終了される。
【０１８３】
次に、図１５のステップＳ１２５の制御により実行される非可逆符号化処理の流れの例を図２０のフローチャートを参照して説明する。
【０１８４】
非可逆符号化処理が開始されると、非可逆符号化部３１３は、ステップＳ２０１において、所定量の係数がバッファ３１２に蓄積されたか否かを判定し、蓄積されたと判定されるまで待機する。所定量の係数がバッファ３１２に蓄積されたと判定された場合、処理はステップＳ２０２に進む。
【０１８５】
ステップＳ２０２において、非可逆符号化部３１３は、バッファ３１２より係数データを取得する。ステップＳ２０３において、量子化部３３１は、取得された係数データを量子化する。ステップＳ２０４において、EBCOT部３３２は、量子化された係数をエントロピ符号化し、非可逆方式で符号化されたコードストリームを生成する。ステップＳ２０５において、ヘッダ生成部３３３およびパケット生成部３３４は、ステップＳ２０４の処理により得られたコードストリームのヘッダを生成し、さらにそのヘッダを用いてパケットを生成し、出力する。ステップＳ２０５の処理が終了されると、非可逆符号化処理が終了される。
【０１８６】
以上のように、制御部１１１の図１５のフローチャートを参照して説明したトランスコード制御処理の制御により、図１８を参照して説明したウェーブレット逆変換処理と、図１９を参照して説明したウェーブレット変換処理とが並行して（互いに独立して）実行される。
【０１８７】
このとき制御部１１１は、ウェーブレット逆変換処理により生成された画像データが、バッファ１２２に必要最小限の量だけ蓄積され次第、ウェーブレット変換処理を実行させるので、符号化装置１００は、バッファ１２２に必要はメモリ量を低減させることができる。
【０１８８】
なお、可逆ラインベースエンコード部１０１、可逆ラインベースデコード部１２１、および非可逆ラインベースエンコード部１２３の各部が行う符号化処理または復号処理の符号化方式（復号方式）は任意である。例えば、JPEG2000方式であっても良い。
【０１８９】
＜２．第２の実施の形態＞
［可逆エンコード部の構成］
符号化方式がJPEG2000方式である場合の可逆ラインベースエンコード部について説明する。図２１は、可逆ラインベースエンコード部の他の構成例を示すブロック図である。
【０１９０】
この場合も、可逆ラインベースエンコード部１０１は、基本的に図２を参照して説明した場合と基本的に同様の構成を有するが、制御部１３１の代わりに制御部４０１を有し、また、ラインベース分析フィルタ部１４１の代わりにウェーブレット変換部４１１を有し、さらに、可逆符号化部１４３の代わりに可逆符号化部４１３を備える。
【０１９１】
ウェーブレット変換部４１１は、DCレベルシフト部４３１とラインベース分析フィルタ部１４１を有する。
【０１９２】
DCレベルシフト部４３１は、後段のラインベース分析フィルタリングを効率的に行うために、ウェーブレット変換部４１１に入力された画像データのDC成分のレベルシフトを行う。例えば、RGB信号が正の値（符号無しの整数）を持っている。そこで、DCレベルシフト部４３１は、そのことを利用し、原信号のダイナミックレンジを半分にするレベルシフトを行うことで、圧縮効率の向上を図る。従ってYCbCr信号のCbやCr（色差信号）の様に符号（正負両方あり）の整数値を持つ信号を原信号とする場合、このレベルシフトは行われない。
【０１９３】
ラインベース分析フィルタ部１４１は、DCレベルシフトされた画像データに対してウェーブレット変換処理を行う。
【０１９４】
可逆符号化部４１３は、可逆符号化制御部１５２に制御され、JPEG2000の可逆符号化方式によりウェーブレット係数を符号化する。可逆符号化部４１３は、EBCOT部１７１乃至パケット生成部１７３の他に、さらに、コードブロック化部４４１およびビットプレーン展開部４４２を有する。
【０１９５】
コードブロック化部４４１は、エントロピ符号化の処理単位である所定の大きさのコードブロックに分割される。図２２は各サブバンド中のコードブロックの位置関係を示したものである。例えば64×64画素程度のサイズのコードブロックが、分割後のすべてのサブバンド中に生成される。図２２の例において、最も分割レベルが小さい3HHのサブバンドの大きさが例えば640×320画素であるとすると、64×64画素のコードブロックは合計５０個存在することになる。後段の各処理部は、このコードブロック毎に処理を行う。
【０１９６】
コードブロック化部４４１は、各コードブロックをビットプレーン展開部４４２に供給する。ビットプレーン展開部２０５は、係数データを、ビットの位毎のビットプレーンに展開する。ビットプレーンは、所定の数のウェーブレット係数よりなる係数群を、１ビット毎、つまり位毎に分割（スライス）したものである。つまり、ビットプレーンは、その係数群の互いに同一の位のビット（係数ビット）の集合である。
【０１９７】
EBCOT１７１は、ビットプレーン展開された係数データをエントロピ符号化する。
【０１９８】
制御部４０１は、ウェーブレット変換制御部１５１および可逆符号化制御部１５２の他に、さらに、ラインブロック定義部４２１、コードブロック定義部４２２、およびプリシンクト定義部４２３を有する。
【０１９９】
コードブロック定義部４２２はJPEG2000において規定されるコードブロックのサイズを定義する。プリシンクト定義部４２３は、JPEG2000において規定されるプリシンクトのサイズを定義する。
【０２００】
JPEG2000の場合、コードブロック定義部４２２は、ウェーブレット変換後のサブバンド内に、図２２のように矩形のコードブロック（例えば６４x６４）を定義する。コードブロックの横サイズ（CB_h）、縦サイズ（CB_v）は以下の式で定義される。
【０２０１】
xcb' = min (xcb, PPx-1). For r>0      ・・・・・・・（９）
xcb' = min (xcb, PPx). For r=0      ・・・・・・・（１０）
ycb' = min (ycb, PPy-1). For r>0      ・・・・・・・（１１）
ycb' = min (ycb, PPy). For r=0      ・・・・・・・（１２）
（r：解像度レベル数を意味する。r=0は最低域）
【０２０２】
CB_h （コードブロックの横サイズ）= 2xcb'    ・・・・・・・（１３）
CB_v （コードブロックの縦サイズ）= 2ycb'    ・・・・・・・（１４）
PR_h （プリシンクトの横サイズ）= 2PPx    ・・・・・・・（１５）
PR_v （プリシンクトの縦サイズ）= 2PPy    ・・・・・・・（１６）
【０２０３】
上記より、JPEG2000ではコードブロックが必ずプリシンクト内部で定義されている必要がある。図２３はこれらの関係を図示したもので、JPEG2000 Part1の規格書に図示されているものである。図中太線の矩形はサブバンドの境界を示し、灰色の矩形領域はプリシンクト（Precinct）、最小単位の矩形ブロックがCodeblock（コードブロック）を示している。
【０２０４】
JPEG2000ではエンコードする時点で、コードブロックサイズとプリシンクトサイズが確定している必要がある。例えば、コードブロックとプリシンクトの関係は、ラインベースウェーブレット変換の過程で図２４の様に定義することができる。しかし上記の様に、いずれのサイズも２のべき乗の値を取るべき制約条件が存在する。
【０２０５】
従って、図２４の最低域3LLの１ラインの係数が生成された時の、１HL、１HH、１LHのプリシンクトサイズが２のべき乗の値でなかった際の対応が必要になってくる。これはプリシンクトがラインブロックのライン群よりもはみ出ている部分を、後続のラインブロックのライン群が得られ次第、補充する。尚、上記は他のすべてのサブバンドについても同様である。
【０２０６】
以上においては、水平方向の分析フィルタリングと垂直方向の分析フィルタリングの順番については特に言及しなかった。JPEG2000規格では最初に垂直方向の分析フィルタリングを行い、その後に水平方向の分析フィルタリングを行うように定義されている。
【０２０７】
しかし、JPEG2000の規格以外で構わない場合には、フィルタリングの順番に制約はないので、例えばベースバンド画像が１ライン入力され次第フィルタリングを行う際には、Mコラム数のベースバンド画像が入力され次第水平方向の分析フィルタリングを行えばよい。縦方向にNライン分の係数が溜まり次第、今度は垂直方向の分析フィルタリングを行い、４つのサブバンドが生成される。この場合Lライン分遅延することがないので、低遅延でフィルタリングが実行できる。
【０２０８】
次に、図１の可逆ラインベースエンコード部１０１がJPEG2000方式で符号化する場合の、圧縮率の決め方について説明する。既に述べた様に、JPEG2000ではコードブロック単位にEBCOT符号化を行うため、このコードブロックのサイズが小さいと圧縮率が低下するという問題がある。そのためJPEG2000では通常、32x32または64x64というサイズを用いる。
【０２０９】
しかしながら、図２４の３LL、３HL、３LH、３HHのように「1ライン×Mコラム（水平サイズ）」で１つのプリシンクトが形成されると、コードブロックはこれよりもサイズが小さいので、非常に圧縮率が悪くなる。従って、省メモリと圧縮率との間にはトレードオフがあると言える。
【０２１０】
一方、このライン数Nを１の代わりに大きな値を取れば、ラインブロックを構成する他のサブバンドのライン数は大きくなるので、プリシンクトのサイズ、コードブロックのサイズも大きく設定することが可能になる。従って、エンコード時の圧縮率が高い場合は、上記Nの値を大きくすればよい。逆にエンコード時の圧縮率が低い場合は、上記Nの値を小さくすればよい。
【０２１１】
ラインブロック定義部４２１は、プリシンクトサイズやコードブロックサイズをより大きく取ることができるようにし、符号化の圧縮率を向上させるために、処理に必要なメモリ容量を考慮しながら、ラインブロックのサイズ（ライン数）を極力大きく設定する。
【０２１２】
［可逆デコード部の構成］
次に、この場合の、可逆ラインベースデコード部の構成について説明する。図２５は、可逆ラインベースデコード部の他の構成例を示すブロック図である。
【０２１３】
図２５に示されるように、この場合の可逆ラインベースデコード部１２１の復号部２１１は、図８の場合の構成に加え、さらに、ビットプレーン合成部４７１およびコードブロック合成部４７２を有する。
【０２１４】
ビットプレーン合成部４７１は、ビットプレーンに展開されたウェーブレット係数を合成する。ビットプレーン合成部４７１は、ビットプレーンを合成したウェーブレット係数を、コードブロック合成部４７２に供給する。
【０２１５】
コードブロック合成部４７２は、供給されたビットプレーンを用いてコードブロック単位の係数データを生成し、さらにそれらを合成し、サブバンド毎の係数データを生成する。コードブロック合成部４７２は、それをバッファ２１２に供給し保持させる。
【０２１６】
なお、JPEG2000のEBCOT復号を復号部２１１で実行した後に、ラインベースウェーブレット逆変換をラインベース合成フィルタ部２１３で行う際に必要なメモリサイズは、上記EBCOT部でのラインブロックの最低域のライン数Nに依存する。
【０２１７】
即ち、Nが大きければラインブロックを構成する他のサブバンドのライン数は大きくなるので、必要なメモリサイズも大きくなる。逆にNが小さければ必要なメモリサイズも小さくなる。従って、システムやハードウェアでの許容メモリ容量に応じて、Nの値を決定すれば良い。
【０２１８】
［非可逆エンコード部の構成］
次に、この場合の、非可逆ラインベースエンコード部の構成について説明する。図２６は、非可逆ラインベースエンコード部の他の構成例を示すブロック図である。
【０２１９】
図２６に示されるように、この場合の非可逆ラインベースエンコード部１２３は、図１３のラインベース分析フィルタ部３１１の代わりに、ウェーブレット変換部４９０を有する。ウェーブレット変換部４９０は、DCレベルシフト部４９１およびラインベース分析フィルタ部３１１を有する。
【０２２０】
DCレベルシフト部４９１は、DCレベルシフト部４３１と基本的に同様でありバッファ１２２より取得された画像データのDCレベルをシフトし、ラインベース分析フィルタ部３１１に供給する。ラインベース分析フィルタ部３１１は、DCレベルシフトされた画像データに対してウェーブレット変換を行い、サブバンド毎のウェーブレット係数をバッファ３１２に保持させる。
【０２２１】
また、非可逆符号化部３１３は、図１３の構成に加えて、コードブロック化部４９２およびビットプレーン展開部４９３を有する。コードブロック化部４９２は、量子化部３３１より供給される量子化された係数データを、コードブロック定義部４８２により定義されたサイズのコードブロックに分割する。ビットプレーン展開部４９３は、そのコードブロックに分割された係数データを、ビットプレーンに展開する。EBCOT部３３２は、ビットプレーンに展開された係数データを符号化する。
【０２２２】
制御部１１１は、図１３の場合のウェーブレット変換制御部３０１および非可逆符号化制御部３０２の他に、ラインブロック定義部４８１、コードブロック定義部４８２、およびプリシンクト定義部４８３を有する。
【０２２３】
コードブロック定義部４８２はJPEG2000において規定されるコードブロックのサイズを定義する。プリシンクト定義部４８３は、JPEG2000において規定されるプリシンクトのサイズを定義する。
【０２２４】
この非可逆ラインベースエンコード部１２３の場合も、最低域3LLの１ラインの係数が生成された時の、１HL、１HH、１LHのプリシンクトサイズが２のべき乗の値でなかった際の対応が必要になってくる。これはプリシンクトがラインブロックのライン群よりもはみ出ている部分を、後続のラインブロックのライン群が得られ次第、補充する。尚、上記は他のすべてのサブバンドについても同様である。
【０２２５】
以上においては、水平方向の分析フィルタリングと垂直方向の分析フィルタリングの順番については特に言及しなかった。JPEG2000規格では最初に垂直方向の分析フィルタリングを行い、その後に水平方向の分析フィルタリングを行うように定義されている。
【０２２６】
しかし、JPEG2000の規格以外で構わない場合には、フィルタリングの順番に制約はないので、例えばベースバンド画像が１ライン入力され次第フィルタリングを行う際には、Mコラム数のベースバンド画像が入力され次第水平方向の分析フィルタリングを行えばよい。縦方向にNライン分の係数が溜まり次第、今度は垂直方向の分析フィルタリングを行い、４つのサブバンドが生成される。この場合Lライン分遅延することがないので、低遅延でフィルタリングが実行できる。
【０２２７】
また、ラインブロック定義部４８１は、プリシンクトサイズやコードブロックサイズをより大きく取ることができるようにし、符号化の圧縮率を向上させるために、処理に必要なメモリ容量を考慮しながら、ラインブロックのサイズ（ライン数）を極力大きく設定する。
【０２２８】
［処理の流れ］
次に、以上のように、符号化方式がJPEG2000方式である場合の、各種処理の流れの例を説明する。最初に、可逆ラインベースエンコード部１０１による可逆符号化処理の流れの例を図２７のフローチャートを参照して説明する。
【０２２９】
可逆符号化処理が開始されると、ラインブロック定義部４２１は、ステップＳ３０１において、ラインブロックサイズを定義する。ステップＳ３０２において、コードブロック定義部４２２は、コードブロックサイズを定義する。さらに、プリシンクト定義部４２３は、ステップＳ３０３において、プリシンクトサイズを定義する。
【０２３０】
ステップＳ３０４において、ウェーブレット変換部４１１は、対象ラインブロックを取得する。ステップＳ３０５において、DCレベルシフト部４３１は、取得したラインブロックのDCレベルをシフトする。ステップＳ３０６において、ラインベース分析フィルタ部１４１は、対象ラインブロックの分析フィルタリングを行う。ステップＳ３０７において、ラインベース分析フィルタ部１４１は、その分析フィルタリングの結果である係数データをバッファ１４２に供給し、保持させる。
【０２３１】
ステップＳ３０８において、可逆符号化部４１３は、係数データが１プレシンクト以上バッファ１４２に蓄積されたか否かを判定する。蓄積されていないと判定された場合、ステップＳ３０４に戻りそれ以降の処理が繰り返される。
【０２３２】
また、ステップＳ３０８において、係数データが１プレシンクト以上バッファ１４２に蓄積されたと判定した場合、処理はステップＳ３０９に進む。
【０２３３】
ステップＳ３０９において、コードブロック化部４４１は、係数データのコードブロック化を行う。ステップＳ３１０において、ビットプレーン展開部４４２は、コードブロック毎の係数データをビットプレーンに展開する。EBCOT部１７１は、ステップＳ３１１において、ビットプレーンに展開された係数データに対してエントロピ符号化を行う。
【０２３４】
ステップＳ４１２において、パケット生成部１７３は、エントロピ符号化により生成されたコードストリームのパケットを生成する。
【０２３５】
制御部４０１は、ステップＳ３１３において、全てのラインブロックを処理したか否かを判定する。未処理のラインブロックが存在すると判定した場合、ステップＳ３０４に戻り、それ以降の処理が繰り返される。
【０２３６】
また、ステップＳ３１３において、全てのラインブロックを処理したと判定された場合、可逆符号化処理が終了される。
【０２３７】
なお、この場合も、トランスコード制御処理の流れは、基本的に図１６を参照して説明した場合と同様であるので、その説明は省略する。
【０２３８】
この場合の、図１６のステップＳ１２１の処理により制御されて実行される復号処理の流れの例を図２８のフローチャートを参照して説明する。
【０２３９】
復号処理が開始されると、ステップＳ３３１において、パケット解読部２３１は、１コードブロック分のコードストリームを取得する。ステップＳ３３２において、EBCOT部２３２は、取得されたコードストリームをエントロピ復号する。ステップＳ３３３において、ビットプレーン合成部４７１は、復号結果に対して、ビットプレーンを合成する。ステップＳ３３４において、コードブロック合成部４７２は、ビットプレーンが合成された係数データのコードブロックを合成する。ステップＳ３３５において、コードブロック合成部４７２は、コードブロックを合成した係数データをバッファ２１２に供給し、保持させる。
【０２４０】
ステップＳ３３６において、制御部１１１は、プレシンクト内の全てのコードブロックを処理したか否かを判定する。未処理のコードブロックが存在すると判定された場合、ステップＳ３３１に戻りそれ以降の処理が繰り返される。
【０２４１】
また、ステップＳ３３６において、プレシンクト内の全てのコードブロックが処理されたと判定された場合、復号処理を終了する。
【０２４２】
次に、図１６のステップＳ１２２の制御により実行されるウェーブレット逆変換処理の流れの例を図２９のフローチャートを参照して説明する。
【０２４３】
ウェーブレット逆変換処理が開始されると、ラインベース合成フィルタ部２１３は、ステップＳ３５１において、１プレシンクト分の係数がバッファ２１２に蓄積されたか否かを判定し、蓄積されたと判定されるまで待機する。
【０２４４】
１プレシンクト分の係数がバッファ２１２に蓄積されたと判定された場合、ステップＳ３５２に進む。ステップＳ３５２において、ラインベース合成フィルタ部２１３は、バッファ２１２より係数データを取得する。
【０２４５】
ステップＳ３５３において、ラインベース合成フィルタ部２１３は、取得した係数データに対して、合成フィルタ処理を行い、ベースバンドの画像データを生成する。ステップＳ３５４において、DCレベル逆シフト部４７３は、ベースバンドの画像データのDCレベルを逆シフトする。
【０２４６】
ステップＳ３５５において、DCレベル逆シフト部４７３は、処理後の画像データをバッファ１２２に供給し、保持させる。ステップＳ３５５の処理が終了されると、ウェーブレット逆変換処理が終了される。
【０２４７】
次に、図１６のステップＳ１２４の制御により実行されるウェーブレット変換処理の流れの例を図３０のフローチャートを参照して説明する。
【０２４８】
ウェーブレット変換処理が開始されると、ステップＳ３７１において、ラインブロック定義部４８１は、ラインブロックサイズを定義する。ステップＳ３７２において、コードブロック定義部４８２は、コードブロックサイズを定義する。ステップＳ３７３において、プリシンクト定義部４８３は、プリシンクトサイズを定義する。
【０２４９】
ステップＳ３７４において、DCレベルシフト部４９１は、バッファ１２２から対象ラインブロックを取得する。ステップＳ３７５において、DCレベルシフト部４９１は、取得したラインブロックについてDCレベルをシフトする。
【０２５０】
ステップＳ３７６において、ラインベース分析フィルタ部３１１は、対象ラインブロックの分析フィルタリングを行う。ステップＳ３７７において、ラインベース分析フィルタ部３１１は、分析フィルタリング処理結果をバッファ３１２に供給し、保持させる。
【０２５１】
ステップＳ３７７の処理が終了すると、ウェーブレット変換処理が終了される。
【０２５２】
次に、図１６のステップＳ１２５の制御により実行される非可逆符号化処理の流れの例を、図３１のフローチャートを参照して説明する。
【０２５３】
非可逆符号化処理が開始されると、ステップＳ３９１において、１プレシンクト以上の係数がバッファ３１２に蓄積されたか否かを判定する。蓄積されたと判定された場合、ステップＳ３９２に進む。
【０２５４】
ステップＳ３９２において、量子化部３３１は、バッファ３１２から係数を取得する。ステップＳ３９３において、量子化部３３１は、取得した係数を量子化する。ステップＳ３９４において、コードブロック化部４９２は、量子化された係数データを、コードブロック化する。ステップＳ３９５において、ビットプレーン展開部４９３は、コードブロック毎の係数データをビットプレーンに展開する。
【０２５５】
ステップＳ３９６において、EBCOT部３３２は、ビットプレーンに展開された係数データをエントロピ符号化し、コードストリームを生成する。ステップＳ３９７において、ヘッダ生成部３３３およびパケット生成部３３４は、コードストリームをパケット化する。
【０２５６】
非可逆符号化制御部３０２は、ステップＳ３９８において、すべてのコードブロックを処理したか否かを判定する。未処理のコードブロックが存在すると判定された場合、ステップＳ３９２に戻り、それ以降の処理が繰り返される。また、ステップＳ３９８において、全てのコードブロックを処理したと判定された場合、非可逆符号化処理が終了される。また、ステップＳ３９１において、１プレシンクト以上の係数がバッファ３１２に蓄積されていないと判定された場合、非可逆符号化処理が終了される。
【０２５７】
以上のように、符号化方式がJPEG2000の場合も、制御部１１１の図１５のフローチャートを参照して説明したトランスコード制御処理の制御により、図２９を参照して説明したウェーブレット逆変換処理と、図３０を参照して説明したウェーブレット変換処理とが並行して（互いに独立して）実行される。
【０２５８】
このとき制御部１１１は、ウェーブレット逆変換処理により生成された画像データが、バッファ１２２に必要最小限の量だけ蓄積され次第、ウェーブレット変換処理を実行させるので、符号化装置１００は、バッファ１２２に必要はメモリ量を低減させることができる。
【０２５９】
次に、例えば、図２７のステップＳ３０１、または、図３０のステップＳ３７１等において、実行されるラインブロックサイズ定義処理の流れの例を、図３２のフローチャートを参照して説明する。なおここでは、可逆ラインベースエンコード部１０１が行う場合について説明する。非可逆ラインベースエンコード部１２３が行う場合も同様であるので、その説明は省略する。
【０２６０】
ラインブロックサイズ定義処理が開始されると、ラインブロック定義部４２１は、ステップＳ４１１において、バッファ１２２の容量（バッファサイズ）を取得する。ステップＳ４１２において、ラインブロック定義部４２１は、可逆符号化部４１３が行うエントロピ符号化の圧縮率を取得する。ステップＳ４１３において、ラインブロック定義部４２１は、バッファサイズまたは圧縮率の少なくともいずれか一方に基づいて、ラインブロックサイズを定義する。
【０２６１】
ステップＳ４１３の処理が終了すると、ラインブロックサイズ定義処理が終了される。
【０２６２】
このように、ラインブロックサイズをメモリサイズや圧縮率に応じて定義することにより、ラインブロックのサイズを適切な大きさにすることができ、不要な負荷の増大や圧縮率の低減を抑制することができる。
【０２６３】
以上のように、既にエンコードされた結果のJPEG2000圧縮コードストリームを、JPEG2000のコードストリームにトランスコードする際、例えば最初の圧縮コードストリームがロスレス（可逆圧縮）で後続のエンコードがロッシー（非可逆圧縮）の場合には、フィルタが異なるのでベースバンド画像に１度戻す必要がある。その際、１ピクチャ分すべての画素をデコードしてから再度エンコードすると、大きなメモリ量が必要になる。そこで、本発明では、ラインベースのデコードをしながら同時に、ラインベースのエンコードを並行して行える構成にしたので、常に少ないメモリサイズでデコードとエンコードの両方を実行することができるという効果がある。
【０２６４】
また、デコーダとエンコーダが同時に動かせるので、短い時間で両者の動作を終わらせる高速動作という効果もある。
【０２６５】
本発明では、メモリ消費量を削減しながら、ある符号化コードストリームをデコードして１度ベースバンドに戻してから、再度エンコードして符号化コードストリームに変換することを目的としている。具体的な応用例としては、省メモリでJPEG2000の可逆圧縮ファイルをJPEG2000の非可逆圧縮ファイルに変換することを目的としている。
【０２６６】
この発明のトランスコード装置及び方法は、画像信号の符号化コードストリームを入力して、帯域分割されたサブバンド中のラインブロックのラインまたはブロック単位にエントロピ復号を行う手段と、上記エントロピ復号結果に対して水平方向の合成フィリタリングと垂直方向の合成フィルタリングを施すことでライン単位にベースバンド画像を出力する手段と、上記ベースバンド画像に対して、水平方向の分析フィルタリングと垂直方向の分析フィルタリングを、所定の分解レベル数まで実行する手段と、上記フィルタリングの結果生成される係数が、各サブバンド内でエントロピ符号化を実行可能なサンプル数に達し次第、直ちにエントロピ符号化を行う手段を備えた。
【０２６７】
［パーソナルコンピュータの構成］
上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
【０２６８】
図３３は、上述した一連の処理をプログラムにより実行するコンピュータ５００のハードウェアの構成例を示すブロック図である。
【０２６９】
CPU(Central Processing Unit)５０１、ROM(Read Only Memory)５０２、RAM(Random Access Memory)５０３は、バス５０４により相互に接続されている。
【０２７０】
バス５０４には、さらに、入出力インタフェース５１０が接続されている。入出力インタフェース５１０には、キーボード、マウス、マイクロホンなどよりなる入力部５１１、ディスプレイ、スピーカなどよりなる出力部５１２、ハードディスクや不揮発性のメモリなどよりなる記憶部５１３、ネットワークインタフェースなどよりなる通信部５１４、光ディスクや半導体メモリなどのリムーバブルメディア５２１を駆動するドライブ５１５が接続されている。
【０２７１】
以上のように構成されるコンピュータ５００では、CPU５０１が、例えば、記憶部５１３に記憶されているプログラムを入出力インタフェース５１０及びバス５０４を介してRAM５０３にロードして実行することにより、上述した一連の処理が行われる。
【０２７２】
CPU５０１が実行するプログラムは、例えばリムーバブルメディア５２１に記録して、あるいは、ローカルエリアネットワーク、インターネット、デジタル放送といった、有線または無線の伝送媒体を介して提供され、記憶部５１３にインストールされる。
【０２７３】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０２７４】
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０２７５】
また、本明細書において、システムとは、複数のデバイス（装置）により構成される装置全体を表わすものである。
【０２７６】
また、以上において、１つの装置（または処理部）として説明した構成を分割し、複数の装置（または処理部）として構成するようにしてもよい。逆に、以上において複数の装置（または処理部）として説明した構成をまとめて１つの装置（または処理部）として構成されるようにしてもよい。また、各装置（または各処理部）の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置（または処理部）の構成の一部を他の装置（または他の処理部）の構成に含めるようにしてもよい。つまり、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【０２７７】
１００  符号化装置，  １０１  可逆ラインベースエンコード部，  １０２  非可逆トランスコード部，  １１１  制御部，  １２１  可逆ラインベースデコード部，  １２２  バッファ，  １２３  非可逆ラインベースエンコード部，  ２０１  復号制御部，  ２０２  ウェーブレット逆変換制御部，  ３０１  ウェーブレット変換制御部，  ３０２  非可逆符号化制御部，  ４２１  ラインブロック定義部，  ４２２  コードブロック定義部，  ４２３  プリシンクト定義部，  ４８１  ラインブロック定義部，  ４８２  コードブロック定義部，  ４８３  プリシンクト定義部
【図１】
2010245855.tif 000003
【図２】
2010245855.tif 000004
【図３】
2010245855.tif 000005
【図４】
2010245855.tif 000006
【図５】
2010245855.tif 000007
【図６】
2010245855.tif 000008
【図７】
2010245855.tif 000009
【図８】
2010245855.tif 000010
【図９】
2010245855.tif 000011
【図１０】
2010245855.tif 000012
【図１１】
2010245855.tif 000013
【図１２】
2010245855.tif 000014
【図１３】
2010245855.tif 000015
【図１４】
2010245855.tif 000016
【図１５】
2010245855.tif 000017
【図１６】
2010245855.tif 000018
【図１７】
2010245855.tif 000019
【図１８】
2010245855.tif 000020
【図１９】
2010245855.tif 000021
【図２０】
2010245855.tif 000022
【図２１】
2010245855.tif 000023
【図２２】
2010245855.tif 000024
【図２３】
2010245855.tif 000025
【図２４】
2010245855.tif 000026
【図２５】
2010245855.tif 000027
【図２６】
2010245855.tif 000028
【図２７】
2010245855.tif 000029
【図２８】
2010245855.tif 000030
【図２９】
2010245855.tif 000031
【図３０】
2010245855.tif 000032
【図３１】
2010245855.tif 000033
【図３２】
2010245855.tif 000034
【図３３】
2010245855.tif 000035