(57)【要約】本発明は、符号化された画像を転送した際に、低遅延で復号された画像を得ることができる符号化装置および符号化方法、並びに復号装置および復号方法に関する。識別情報生成部２１は、画像データの符号化処理及び符号化ストリームの復号処理において共有する処理を符号化処理若しくは復号処理のどちらで行うかを識別する共有処理識別情報、又は、復号処理を構成する複数のプロセスを複数の演算処理部に割り当てる割り当てパターン若しくは複数のプロセスで利用するメモリの配置パターンがそれぞれ異なる複数の復号プログラムの中からどの復号プログラムを選択するかを識別するプログラム識別情報を生成し、伝送部２２は、識別情報生成手段により生成された共有処理識別情報又はプログラム選択情報を伝送する。本発明は、例えば、符号化装置および復号装置に適用できる。
2008143156.tif 000002
【特許請求の範囲】
【請求項１】
画像データを符号化処理して符号化ストリームを生成する符号化装置において、
前記画像データの符号化処理及び前記符号化ストリームの復号処理において共有する処理を符号化処理若しくは復号処理のどちらで行うかを識別する共有処理識別情報、又は、前記復号処理を構成する複数のプロセスを複数の演算処理部に割り当てる割り当てパターン若しくは前記複数のプロセスで利用するメモリの配置パターンがそれぞれ異なる複数の復号プログラムの中からどの復号プログラムを選択するかを識別するプログラム識別情報を生成する識別情報生成手段と、
前記画像データを符号化処理して符号化ストリームを生成する符号化手段と、
前記識別情報生成手段により生成された共有処理識別情報又はプログラム選択情報を、前記符号化手段により生成された符号化ストリームとともに伝送する伝送手段と、
を備える符号化装置。
【請求項２】
前記伝送手段は、前記識別情報生成手段により生成された共有処理識別情報又はプログラム選択情報を、前記符号化ストリームに挿入する
請求項１に記載の符号化装置。
【請求項３】
前記伝送手段は、前記識別情報生成手段により生成された共有処理識別情報又はプログラム選択情報を、前記符号化ストリームのヘッダに挿入する
請求項２に記載の符号化装置。
【請求項４】
前記伝送手段は、前記識別情報生成手段により生成された共有処理識別情報又はプログラム選択情報を、前記符号化ストリームのヘッダに挿入するシーケンスヘッダ又はピクチャヘッダに挿入する
請求項３に記載の符号化装置。
【請求項５】
前記伝送手段は、前記識別情報生成手段により生成された共有処理識別情報又はプログラム選択情報と、前記符号化ストリームとを記録媒体に記録する
請求項１に記載の符号化装置。
【請求項６】
前記符号化処理を構成する複数のプロセスは、
前記画像データに対して、少なくとも最低域成分のサブバンドの1ライン分の係数データを生成するのに必要なライン数分の画像データを含むプレシンクト毎にフィルタ処理を行い、周波数帯域毎に分解された係数データからなる複数のサブバンドを生成するフィルタ処理と、
前記フィルタ処理により生成された係数データをプレシンクト毎に記憶する記憶処理と、
前記記憶処理により記憶された前記係数データを、周波数帯域に分解された複数のサブバンドの係数データを合成して画像データを生成する合成処理を実行する順に並び替える係数並び替え処理と、
前記係数並び替え処理により並び替えられた係数データを符号化する符号化処理と、  を含む
請求項１に記載の符号化装置。
【請求項７】
前記識別情報生成手段は、符号化装置側で前記係数並び替え処理が行われたことを示す共有処理識別情報を生成し、
前記伝送手段は、前記識別情報生成手段により生成された共有処理識別情報を、前記符号化ストリームとともに伝送する
請求項６に記載の符号化装置。
【請求項８】
前記符号化処理を構成する複数のプロセスは、
前記画像データに対して、少なくとも最低域成分のサブバンドの1ライン分の係数データを生成するのに必要なライン数分の画像データを含むプレシンクト毎にフィルタ処理を行い、周波数帯域毎に分解された係数データからなる複数のサブバンドを生成するフィルタ処理と、
前記フィルタ処理により生成された係数データをプレシンクト毎に記憶する記憶処理と、
前記記憶手段により記憶された係数データを符号化する符号化処理と、
を含む
請求項１に記載の符号化装置。
【請求項９】
前記識別情報生成手段は、前記記憶処理により記憶された前記係数データを、周波数帯域に分解された複数のサブバンドの係数データを合成して画像データを生成する合成処理を実行する順に並び替える係数並び替え処理が、符号化装置側で行われていないことを示す情報を、前記共有処理識別情報として生成する
請求項８に記載の符号化装置。
【請求項１０】
前記識別情報生成手段は、符号化処理の制御方法として、低遅延で符号化を行うことを優先する低遅延優先制御、または高スループットで符号化を行うことを優先するスループット優先制御のうちのいずれが選択されるかを表す制御識別情報を生成し、
前記伝送手段は、前記識別情報生成手段により生成された制御識別情報を、前記符号化ストリームとともに伝送する
請求項６に記載の符号化装置。
【請求項１１】
前記識別情報生成手段は、前記フィルタ処理手段で用いられるフィルタを識別するフィルタ情報を生成し、
前記伝送手段は、前記識別情報生成手段により生成されたフィルタ情報を、前記符号化ストリームとともに伝送する
請求項６に記載の符号化装置。
【請求項１２】
前記識別情報生成手段は、フィルタ処理の精度が、固定小数点精度、浮動小数点精度、または整数精度のいずれであるかを表すフィルタ処理精度情報を生成し、
前記伝送手段は、前記識別情報生成手段により生成されたフィルタ処理精度情報を、前記符号化ストリームとともに伝送する
請求項１１に記載の符号化装置。
【請求項１３】
画像データを符号化処理して符号化ストリームを生成する符号化方法において、
前記画像データの符号化処理及び前記符号化ストリームの復号処理において共有する処理を符号化処理若しくは復号処理のどちらで行うかを識別する共有処理識別情報、又は、前記復号処理を構成する複数のプロセスを複数の演算処理部に割り当てる割り当てパターン若しくは前記複数のプロセスで利用するメモリの配置パターンがそれぞれ異なる複数の復号プログラムの中からどの復号プログラムを選択するかを識別するプログラム識別情報を生成し、
前記画像データを符号化処理して符号化ストリームを生成し、
前記共有処理識別情報又はプログラム選択情報を、前記符号化ストリームとともに伝送する
ステップを含む符号化方法。
【請求項１４】
画像データを符号化処理して得られる符号化ストリームを復号処理する復号装置において、
前記画像データの符号化処理及び前記符号化ストリームの復号処理において共有する処理を符号化処理若しくは復号処理のどちらで行うかを識別する共有処理識別情報、又は、前記復号処理を構成する複数のプロセスを複数の演算処理部に割り当てる割り当てパターン若しくは前記複数のプロセスで利用するメモリの配置パターンがそれぞれ異なる複数の復号プログラムの中からどの復号プログラムを選択するかを識別するプログラム識別情報を、前記符号化ストリームとともに取得する取得手段と、
前記取得手段により取得された符号化ストリームを復号処理する復号手段と、
前記取得手段により取得された共有処理識別情報又はプログラム識別情報に示される処理方式に従って復号処理するように、前記復号手段を制御する制御手段と、
を備える復号装置。
【請求項１５】
画像データを符号化処理して得られる符号化ストリームを復号処理する復号方法において、
前記画像データの符号化処理及び前記符号化ストリームの復号処理において共有する処理を符号化処理若しくは復号処理のどちらで行うかを識別する共有処理識別情報、又は、前記復号処理を構成する複数のプロセスを複数の演算処理部に割り当てる割り当てパターン若しくは前記複数のプロセスで利用するメモリの配置パターンがそれぞれ異なる複数の復号プログラムの中からどの復号プログラムを選択するかを識別するプログラム識別情報を、前記符号化ストリームとともに取得し、
前記符号化ストリームを復号処理し、
前記共有処理識別情報又はプログラム識別情報に示される処理方式に従って復号処理するような制御を行う
ステップを含む復号方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化装置および符号化方法、並びに復号装置および復号方法に関し、特に、符号化された画像を転送した際に、低遅延で復号された画像を得ることができるようにした符号化装置および符号化方法、並びに復号装置および復号方法に関する。
【背景技術】
【０００２】
従来、代表的な画像圧縮方式として、ＩＳＯ(International Organization for Standardization)により標準化されたＪＰＥＧ(Joint Photographic Experts Group)方式がある。このＪＰＥＧ方式では、画像がブロックに分割され、それぞれのブロックに対してＤＣＴ(Discrete Cosine Transform)が施されてＤＣＴ係数が取得され、そのＤＣＴ係数が量子化されて、さらにエントロピ符号化が行われることで、高品質かつ高圧縮率な画像圧縮が実現されている。【０００３】
一方、近年では、フィルタバンクと呼ばれるハイパスフィルタとローパスフィルタとを組み合わせたフィルタによって、画像を複数の帯域に分割し、帯域毎に符号化を行う符号化方式の研究が盛んになっている。その中でも、ウェーブレット変換符号化は、ＤＣＴにおける高圧縮時でのブロック歪みが顕著になるという欠点がないことから、ＤＣＴに代わる新たな技術として有力視されている。【０００４】
例えば、２００１年１月に国際標準化が完了したＪＰＥＧ２０００は、このウェーブレット変換に、ビットプレーン単位のビットモデリングと算術符号化による高能率エントロピ符号化を組み合わせた圧縮符号化方式を採用している。このＪＰＥＧ２０００方式では、ＪＰＥＧ方式に対して符号化効率の大きな改善が実現されている。特許文献１には、より符号化効率を向上させたウェーブレット変換方法が記載されている。【０００５】
【特許文献１】特開平９−１３０８００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、上述したような符号化方式で符号化された画像を転送した際に、低遅延で復号された画像を得るための所定の処理を、符号化装置または復号装置のいずれか一方の装置で行う必要がある。例えば、符号化装置で所定の処理を実行した場合には、復号装置でその所定の処理を実行する必要がないことを、符号化装置から復号装置に通知する必要がある。一方、符号化装置で所定の処理を実行していない場合には、復号装置でその所定の処理を実行する必要があることを、符号化装置から復号装置に通知する必要がある。【０００７】
このように、符号化装置から復号装置に、所定の処理の実行の有無などの情報を適切に通知することができなければ、符号化された画像を転送した際に、低遅延で復号された画像を得ることが難しかった。【０００８】
本発明は、このような状況に鑑みてなされたものであり、符号化された画像を転送した際に、低遅延で復号された画像を得ることができるようにするものである。
【課題を解決するための手段】
【０００９】
本発明の第１の側面の符号化装置は、画像データを符号化処理して符号化ストリームを生成する符号化装置であって、前記画像データの符号化処理及び前記符号化ストリームの復号処理において共有する処理を符号化処理若しくは復号処理のどちらで行うかを識別する共有処理識別情報、又は、前記復号処理を構成する複数のプロセスを複数の演算処理部に割り当てる割り当てパターン若しくは前記複数のプロセスで利用するメモリの配置パターンがそれぞれ異なる複数の復号プログラムの中からどの復号プログラムを選択するかを識別するプログラム識別情報を生成する識別情報生成手段と、前記画像データを符号化処理して符号化ストリームを生成する符号化手段と、前記識別情報生成手段により生成された共有処理識別情報又はプログラム選択情報を、前記符号化手段により生成された符号化ストリームとともに伝送する伝送手段と、を備える。【００１０】
本発明の第１の側面の符号化方法は、画像データを符号化処理して符号化ストリームを生成する符号化方法であって、前記画像データの符号化処理及び前記符号化ストリームの復号処理において共有する処理を符号化処理若しくは復号処理のどちらで行うかを識別する共有処理識別情報、又は、前記復号処理を構成する複数のプロセスを複数の演算処理部に割り当てる割り当てパターン若しくは前記複数のプロセスで利用するメモリの配置パターンがそれぞれ異なる複数の復号プログラムの中からどの復号プログラムを選択するかを識別するプログラム識別情報を生成し、前記画像データを符号化処理して符号化ストリームを生成し、前記共有処理識別情報又はプログラム選択情報を、前記符号化ストリームとともに伝送するステップを含む。【００１１】
本発明の第１の側面においては、画像データの符号化処理及び符号化ストリームの復号処理において共有する処理を符号化処理若しくは復号処理のどちらで行うかを識別する共有処理識別情報、又は、復号処理を構成する複数のプロセスを複数の演算処理部に割り当てる割り当てパターン若しくは複数のプロセスで利用するメモリの配置パターンがそれぞれ異なる複数の復号プログラムの中からどの復号プログラムを選択するかを識別するプログラム識別情報が生成される。そして、画像データを符号化処理して符号化ストリームが生成され、共有処理識別情報又はプログラム選択情報が、符号化ストリームとともに伝送される。【００１２】
本発明の第２の側面の復号装置は、画像データを符号化処理して得られる符号化ストリームを復号処理する復号装置であって、前記画像データの符号化処理及び前記符号化ストリームの復号処理において共有する処理を符号化処理若しくは復号処理のどちらで行うかを識別する共有処理識別情報、又は、前記復号処理を構成する複数のプロセスを複数の演算処理部に割り当てる割り当てパターン若しくは前記複数のプロセスで利用するメモリの配置パターンがそれぞれ異なる複数の復号プログラムの中からどの復号プログラムを選択するかを識別するプログラム識別情報を、前記符号化ストリームとともに取得する取得手段と、前記取得手段により取得された符号化ストリームを復号処理する復号手段と、前記取得手段により取得された共有処理識別情報又はプログラム識別情報に示される処理方式に従って復号処理するように、前記復号手段を制御する制御手段と、を備える。【００１３】
本発明の第２の側面の復号方法は、画像データを符号化処理して得られる符号化ストリームを復号処理する復号方法であって、前記画像データの符号化処理及び前記符号化ストリームの復号処理において共有する処理を符号化処理若しくは復号処理のどちらで行うかを識別する共有処理識別情報、又は、前記復号処理を構成する複数のプロセスを複数の演算処理部に割り当てる割り当てパターン若しくは前記複数のプロセスで利用するメモリの配置パターンがそれぞれ異なる複数の復号プログラムの中からどの復号プログラムを選択するかを識別するプログラム識別情報を、前記符号化ストリームとともに取得し、前記符号化ストリームを復号処理し、前記共有処理識別情報又はプログラム識別情報に示される処理方式に従って復号処理するような制御を行うステップを含む。【００１４】
本発明の第２の側面においては、画像データの符号化処理及び符号化ストリームの復号処理において共有する処理を符号化処理若しくは復号処理のどちらで行うかを識別する共有処理識別情報、又は、復号処理を構成する複数のプロセスを複数の演算処理部に割り当てる割り当てパターン若しくは複数のプロセスで利用するメモリの配置パターンがそれぞれ異なる複数の復号プログラムの中からどの復号プログラムを選択するかを識別するプログラム識別情報が、符号化ストリームとともに取得される。そして、符号化ストリームが復号処理され、共有処理識別情報又はプログラム識別情報に示される処理方式に従って復号処理するような制御が行われる。
【発明の効果】
【００１５】
本発明の第１および第２の側面によれば、符号化された画像を転送した際に、低遅延で復号された画像を得ることができる。
【図面の簡単な説明】
【００１６】
【図１】本発明を適用した符号化装置の一実施の形態の構成例を示すブロック図である。
【図２】本発明を適用した復号装置の構成例を示すブロック図である。
【図３】符号化部１４の構成例を示すブロック図である。
【図４】ウェーブレット変換について概略的に説明するための略線図である。
【図５】ウェーブレット変換について概略的に説明するための略線図である。
【図６】５×３フィルタのリフティングによるフィルタリングを分解レベル＝２まで実行した例を示す略線図である。
【図７】この発明によるウェーブレット変換およびウェーブレット逆変換の流れを概略的に示す略線図である。
【図８】ヘッダの構成例を示す図である。
【図９】シーケンスヘッダを説明する図である。
【図１０】ピクチャヘッダを説明する図である。
【図１１】プレシンクトヘッダを説明する図である。
【図１２】復号部３６の構成例を示すブロック図である。
【図１３】画像データを符号化する処理を説明するフローチャートである。
【図１４】ヘッダを生成する処理を説明するフローチャートである。
【図１５】画像データを復号する処理を説明するフローチャートである。
【図１６】ヘッダを解析する処理を説明するフローチャートである。
【図１７】符号化部および復号部の各要素が行う並列動作の様子の例を概略的に示す略線図である。
【図１８】パーソナルコンピュータの構成例を示すブロック図である。
【図１９】符号化部に対するハードウェア資源の割り当ての例を示す図である。
【図２０】図１９の例の場合の処理の流れを示す模式図である。
【図２１】符号化部に対するハードウェア資源の割り当ての、他の例を示す図である。
【図２２】符号化部に対するハードウェア資源の割り当ての、さらに他の例を示す図である。
【図２３】図２２の例の場合の処理の流れを示す模式図である。
【図２４】符号化部に対するハードウェア資源の割り当ての、さらに他の例を示す図である。
【図２５】図２４の例の場合の処理の流れを示す模式図である。
【図２６】復号部に対するハードウェア資源の割り当ての例を示す図である。
【図２７】図２６の例の場合の処理の流れを示す模式図である。
【図２８】復号部に対するハードウェア資源の割り当ての、他の例を示す図である。
【図２９】図２８の例の場合の処理の流れを示す模式図である。
【図３０】復号部に対するハードウェア資源の割り当ての、さらに他の例を示す図である。
【図３１】図３０の例の場合の処理の流れを示す模式図である。
【図３２】符号化部の他の構成例を示すブロック図である。
【図３３】図３２の符号化部に対するハードウェア資源の割り当ての、他の例を示す図である。
【図３４】符号化部の、さらに他の構成例を示すブロック図である。
【図３５】図３４の符号化部に対応する復号部の構成例を示すブロック図である。
【図３６】情報処理システムの構成例を示すブロック図である。
【図３７】サブCPUコアの構成例を示すブロック図である。
【図３８】メインCPUコアの構成例を示すブロック図である。
【図３９】ウェーブレット変換用関係テーブルの構成例を示す図である。
【図４０】係数並び替え用関係テーブルの構成例を示す図である。
【図４１】符号化選択制御処理の流れの例を説明するフローチャートである。
【図４２】演算精度選択処理の流れの例を説明するフローチャートである。
【図４３】符号化方式選択処理の流れの例を説明するフローチャートである。
【図４４】復号選択制御処理の流れの例を説明するフローチャートである。
【図４５】復号方式選択処理の流れの例を説明するフローチャートである。
【図４６】５×３フィルタのリフティングによるフィルタリングを分解レベル＝２まで実行した例を示す略線図である。
【図４７】５×３フィルタのリフティングによるフィルタリングを分解レベル＝２まで実行した例を示す略線図である。
【図４８】復号部３６の他の実施の形態を示すブロック図である。
【図４９】符号化部１４のさらに他の実施の形態を示すブロック図である。
【図５０】復号部３６のさらに他の実施の形態を示すブロック図である。
【符号の説明】
【００１７】
１２  撮像装置，  １３  符号化装置，  １４  符号化部，  １５  パケット生成部，  １６  送信部，  １７  ヘッダ生成部，  １８  シーケンスヘッダ生成部，  １９  ピクチャヘッダ生成部，  ２０  プレシンクトヘッダ生成部，  ２１  伝送部，  ２２  識別情報生成部，  ３２  復号装置，  ３３  表示装置，  ３４  受信部，  ３５  パケット解読部，  ３６  復号部，  ３７  出力部，  ３８  ヘッダ解読部，  ３９  シーケンスヘッダ解読部，  ４０  ピクチャヘッダ解読部，  ４１  プレシンクトヘッダ解読部，  ４２  識別情報取得部，  ４３  復号制御部４３，  ４４  符号化コードストリーム取得部，  ５１  ウェーブレット変換部，  ５２  途中計算用バッファ部，  ５３  係数並び替え用バッファ部，  ５４  係数並び替え部，  ５５  エントロピ符号化部，  ６１  エントロピ復号部，  ６２  係数バッファ部，  ６３  ウェーブレット逆変換部，  １００  パーソナルコンピュータ，  １０１  CPU，  １０３  RAM，  １１１  キャッシュメモリ，  ３００  情報処理システム，  ４０３  XDR-RAM，  ４４１  メインCPUコア，  ４４２  サブCPUコア，  ４５１  LS，  ５０２  符号化選択制御部，  ５０３  復号選択制御部，  ５０４  キャッシュ，  ５１６  符号化方式選択部，  ５１７  割り当て部，  ５２４  復号方式選択部，  ５２５  割り当て部
【発明を実施するための最良の形態】
【００１８】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。【００１９】
図１は、本発明を適用した符号化装置の一実施の形態の構成例を示すブロック図である。【００２０】
図１において、符号化装置１３には、撮像装置１２が接続されており、符号化装置１３は、撮像装置１２が撮像した画像を符号化する。【００２１】
撮像装置１２は、CCD（Charge Coupled Device）やCMOS（Complementary Metal Oxide Semiconductor）等を利用した撮像素子を有しており、被写体を撮像する。即ち、撮像装置１２は、被写体からの光を受光し、その光の受光量に応じた電気信号からなる撮像画像を生成する。そして、撮像装置１２は、その撮像画像をデジタルデータである画像データに変換し、画像データを符号化装置１３に供給する。【００２２】
符号化装置１３は、符号化部１４、識別情報生成部２１、伝送部２２から構成される。【００２３】
符号化部１４には、撮像装置１２から画像データが供給され、符号化部１４は、その画像データを所定の方法で符号化し、その符号化により得られた符号化データを、パケット生成部１５に供給する。【００２４】
識別情報生成部２１は、符号化部１４において行われる符号化処理に関する情報を生成し、伝送部２２に供給する。符号化処理に関する情報としては、例えば、符号化部１４の符号化処理および復号装置３２の復号部３６（後述の図２）において行われる復号処理において共有する処理を、符号化部１４と復号部３６のどちらで行うかを識別する情報（共有処理識別情報）や、復号部３６を構成する複数のプロセスを複数の演算処理部に割り当てる割り当てパターン、または、複数のプロセスで利用するメモリの配置パターンがそれぞれ異なる複数の復号プログラムの中から、どの復号プログラムを選択するかを識別する情報（プログラム識別情報）などがある。【００２５】
伝送部２２は、識別情報生成部２１により生成された情報を、ストリーム形式に変換して符号化コードストリームを生成し、符号化コードストリームのヘッダ（具体的には、MPEG（Moving Picture Experts Group）規格では、ユーザデータエリア）に適宜記述する。
さらに、伝送部２２は、図示しないドライブに装着された記録媒体に、符号化コードストリーム（ヘッダに含まれる情報を含む）を記録させるために、そのドライブに符号化コードストリームを送出することができる。【００２６】
即ち、伝送部２２は、パケット生成部１５、送信部１６、およびヘッダ生成部１７から構成される。【００２７】
パケット生成部１５には、符号化データが符号化部１４から供給されるとともに、符号化データに関する情報を含むヘッダが、ヘッダ生成部１７から供給され、パケット生成部１５は、符号化データをパケット化する。即ち、パケット生成部１５は、符号化データを所定のデータ量で分割し、ヘッダ生成部１７からのヘッダや、データの送受信のタイミングを同期させるための同期コードなどを付加して、パケットを生成する。パケット生成部１５は、そのパケットを送信部１６に供給する。【００２８】
送信部１６は、有線または無線、或いは、有線および無線を含む回線を介して、パケット生成部１５から供給されるパケットからなる符号化コードストリームを、画像の同期信号のタイミングに合わせて、所定の通信方法で送信（送出）する。また、パケットを伝送する回線としては、専用または汎用の伝送ケーブルであってもよいし、例えばLAN（Local Area Network）やインターネット等のような、１つまたは複数の通信網を含むようにしてもよいし、何らかの通信中継装置を含むようにしてもよい。【００２９】
ヘッダ生成部１７は、シーケンスヘッダ生成部１８、ピクチャヘッダ生成部１９、プレシンクトヘッダ生成部２０から構成され、識別情報生成部２１から供給される情報（プログラム識別情報やプログラム識別情報など）を、シーケンスヘッダ生成部１８、ピクチャヘッダ生成部１９、プレシンクトヘッダ生成部２０に適宜供給する。【００３０】
ここで、符号化装置１３から送信される一連の画像の全体をシーケンスと称し、シーケンスを構成する複数枚の画像のうちの、１枚の画像をピクチャと称する。また、ピクチャを構成する複数のラインのうちの、図６を参照して後述するウェーブレット変換の処理単位となるライン数の集合プレシンクトと称する。即ち、ピクチャは、複数のプレシンクトから構成される。【００３１】
シーケンスヘッダ生成部１８は、符号化装置１３が一連の画像の送信を開始するときに、その一連の画像の全てに共通する情報を含むシーケンスヘッダを生成し、パケット生成部１５に供給する。シーケンスヘッダに含まれる情報については、図９を参照して後述する。【００３２】
ピクチャヘッダ生成部１９は、符号化部１４からパケット生成部１５にピクチャが供給されるたびに、それぞれのピクチャに関する情報を含むピクチャヘッダを生成して、パケット生成部１５に供給する。ピクチャヘッダに含まれる情報については、図１０を参照して後述する。【００３３】
プレシンクトヘッダ生成部２０は、符号化部１４からパケット生成部１５にプレシンクトが供給されるたびに、それぞれのプレシンクトに関する情報を含むプレシンクトヘッダを生成して、パケット生成部１５に供給する。プレシンクトヘッダに含まれる情報については、図１１を参照して後述する。【００３４】
次に、図２は、本発明を適用した復号装置の構成例を示すブロック図である。【００３５】
図２において、復号装置３２には表示装置３３が接続されている。【００３６】
表示装置３３は、ディスプレイを有しており、復号装置３２において復号されて出力される画像を、そのディスプレイに表示する。【００３７】
復号装置３２は、符号化コードストリーム取得部４４、識別情報取得部４２、復号制御部４３、復号部３６、および出力部３７から構成される。【００３８】
符号化コードストリーム取得部４４は、図１の送信部１６の伝送部２２から伝送される符号化コードストリームを取得する。符号化コードストリーム取得部４４は、符号化コードストリームを復号し、符号化コードストリームのヘッダ（具体的には、MPWG規格では、ユーザデータエリア）に記述されている情報を抽出して識別情報取得部４２に供給する。
または、符号化コードストリーム取得部４４は、符号化コードストリーム（ヘッダに含まれる情報を含む）が記録された記録媒体が装着されたドライブ（図示せず）から符号化コードストリームを読み出して（再生して）、取得する。【００３９】
即ち、符号化コードストリーム取得部４４は、受信部３４、パケット解読部３５、およびヘッダ解読部３８から構成される。【００４０】
受信部３４は、所定の通信方法で、図１の送信部１６から送信される符号化コードストリームを受信し、パケット解読部３５に供給する。【００４１】
パケット解読部３５は、受信部３４から供給される符号化コードストリームのパケットからヘッダと符号化データとを抽出し、ヘッダをヘッダ解読部３８に供給するとともに、符号化データを復号部３６に供給する。【００４２】
ヘッダ解読部３８は、シーケンスヘッダ解読部３９、ピクチャヘッダ解読部４０、プレシンクトヘッダ解読部４１から構成される。【００４３】
シーケンスヘッダ解読部３９には、パケット解読部３５がパケットから抽出したシーケンスヘッダが供給され、シーケンスヘッダ解読部３９は、シーケンスヘッダを解析し、シーケンスヘッダに含まれている情報を、識別情報取得部４２に供給する。【００４４】
ピクチャヘッダ解読部４０には、パケット解読部３５がパケットから抽出したピクチャヘッダが供給され、ピクチャヘッダ解読部４０は、ピクチャヘッダを解析し、ピクチャヘッダに含まれている情報を、識別情報取得部４２に供給する。【００４５】
プレシンクトヘッダ解読部４１には、パケット解読部３５がパケットから抽出したプレシンクトヘッダが供給され、プレシンクトヘッダ解読部４１は、プレシンクトヘッダを解析し、プレシンクトヘッダに含まれている情報を、識別情報取得部４２に供給する。【００４６】
識別情報取得部４２には、符号化コードストリームのヘッダに含まれていた情報が、符号化コードストリーム取得部４４から供給される。識別情報取得部４２は、符号化コードストリームのヘッダに含まれていた情報、即ち、図１の識別情報生成部２１が生成した情報（プログラム識別情報やプログラム識別情報など）を取得し、復号制御部４３に供給する。【００４７】
復号制御部４３は、識別情報取得部４２から供給された情報に示される処理方式に従って、符号化コードストリームを復号するように復号部３６を制御する。【００４８】
復号部３６は、復号制御部４３の制御に従って、パケット解読部３５から供給された符号化データを、図１の符号化部１４による符号化の方法に対応する方法で復号し、その結果得られる画像データを出力部３７に供給する。【００４９】
出力部３７は、復号部３６から供給された画像データを表示装置３３に出力する。【００５０】
以上のように構成される符号化装置１３および復号装置３２においては、撮像装置１２において撮像された画像が、符号化部１４において符号化され、パケット生成部１５においてパケット化されて送信され、パケット解読部３５においてパケットが解読され、復号部３６において復号されて、表示装置３３に表示される。【００５１】
なお、符号化装置１３および復号装置３２においては、撮像装置１２において撮像された画像の他、例えば、あらかじめ撮像されて蓄積されている画像が伝送されてもよい。また、符号化装置１３から伝送される画像は、図示しない記録装置に記録するなど、表示装置３３に表示する以外で、利用してもよい。また、ここでは伝送されるデータとして画像データについてのみ説明するが、例えば、音声データ等、その他のデータが画像データとともに伝送されてもよい。【００５２】
また、符号化装置１３が行うパケットの送信方法は、復号装置３２に対してのみ送信するユニキャストであってもよいし、復号装置３２を含む複数の装置に対して送信するマルチキャストであってもよいし、不特定多数の装置に対して送信するブロードキャストであってもよい。【００５３】
さらに、符号化装置１３の識別情報生成部２１が生成した情報は、パケットのヘッダに付加して復号装置３２に送信する他、識別情報生成部２１から識別情報取得部４２に多重化して、例えば、画像データ（符号化データ）が伝送される回線とは別の回線（別系統）で、並列的に、送信することができる。【００５４】
次に、図３は、図１の符号化部１４の構成例を示すブロック図である。【００５５】
図３に示されるように、符号化部１４は、ウェーブレット変換部５１、途中計算用バッファ部５２、係数並び替え用バッファ部５３、係数並び替え部５４、およびエントロピ符号化部５５の機能を有する。【００５６】
符号化部１４に入力された画像データは、ウェーブレット変換部５１を介して途中計算用バッファ部５２に一時的に溜め込まれる。ウェーブレット変換部５１は、途中計算用バッファ部５２に溜め込まれた画像データに対してウェーブレット変換を施す。すなわち、ウェーブレット変換部５１は、途中計算用バッファ部５２から画像データを読み出して分析フィルタによりフィルタ処理を施して低域成分および高域成分の係数のデータを生成し、生成された係数データを途中計算用バッファ部５２に格納する。ウェーブレット変換部５１は、水平分析フィルタと垂直分析フィルタとを有し、画像データ群に対して、画面水平方向と画面垂直方向の両方について分析フィルタ処理を行う。ウェーブレット変換部５１は、途中計算用バッファ部５２に格納された低域成分の係数データを再度読み出し、読み出した係数データに対して分析フィルタによるフィルタ処理を施して、高域成分および低域成分の係数のデータをさらに生成する。生成された係数データは、途中計算用バッファ部５２に格納される。【００５７】
ウェーブレット変換部５１は、この処理を繰り返して分解レベルが所定レベルに達したら、途中計算用バッファ部５２から係数データを読み出し、読み出された係数データを係数並び替え用バッファ部５３に書き込む。【００５８】
係数並び替え部５４は、係数並び替え用バッファ部５３に書き込まれた係数データを所定の順序で読み出し、エントロピ符号化部５５に供給する。エントロピ符号化部５５は、供給された係数データを、所定の方法で量子化し、例えば、ハフマン符号化や算術符号化といった所定のエントロピ符号化方式で符号化する。エントロピ符号化部５５は、生成した符号化データを符号化部１４の外部に出力する。【００５９】
次に、図３のウェーブレット変換部５１で行われる処理について、より詳細に説明する。先ず、ウェーブレット変換について、概略的に説明する。画像データに対するウェーブレット変換では、図４に概略的に示されるように、画像データを空間周波数の高い帯域と低い帯域とに分割する処理を、分割の結果得られる空間周波数の低い帯域のデータに対して再帰的に繰り返す。こうして、空間周波数の低い帯域のデータをより小さな領域に追い込んでいくことで、効率的な圧縮符号化を可能とする。【００６０】
なお、図４は、画像データの最低域成分領域に対する低域成分の領域Ｌおよび高域成分の領域Ｈへの分割処理を３回、繰り返し、分割の階層の総数を示す分割レベル＝３とした場合の例である。図４において、"Ｌ"および"Ｈ"は、それぞれ低域成分および高域成分を表し、"Ｌ"および"Ｈ"の順序は、前側が横方向に分割した結果の帯域を示し、後側が縦方向に分割した結果の帯域を示す。また、"Ｌ"および"Ｈ"の前の数字は、その領域の階層を示しており、低域成分の階層ほど小さい値で表されている。この階層の最大値が、ウェーブレット変換のその時の分割レベル（分割数）を示す。【００６１】
また、図４の例から分かるように、画面の右下の領域から左上の領域にかけて段階的に処理がなされ、低域成分が追い込まれていく。すなわち、図４の例では、画面の右下の領域が最も低域成分の少ない（高域成分が最も多く含まれる）領域３ＨＨとされる、画面が４分割された左上の領域は、さらに４分割され、この４分割された領域のうち左上の領域がさらに４分割される。最も左上隅の領域は、最も低域成分を多く含む領域０ＬＬとされる。【００６２】
低域成分に対して繰り返し変換および分割を行うのは、画像のエネルギが低域成分に集中しているためである。このことは、図５のAに一例が示される分割レベル＝１の状態から、図５のBに一例が示される分割レベル＝３の状態のように分割レベルを進めていくに従って、図５のBに示されるようにしてサブバンドが形成されていくことからも、理解される。
例えば、図４におけるウェーブレット変換の分割レベルは３であり、この結果、１０個のサブバンドが形成されている。【００６３】
ウェーブレット変換部５１は、通常、低域フィルタと高域フィルタとから構成されるフィルタバンクを用いて、上述のような処理を行う。なお、デジタルフィルタは、通常、複数タップ長のインパルス応答すなわちフィルタ係数を持っているため、フィルタ処理を行えるだけの入力画像データまたは係数データを予めバッファリングしておく必要がある。
また、ウェーブレット変換を多段にわたって行う場合も同様に、前段で生成したウェーブレット変換係数を、フィルタ処理が行える数だけバッファリングしておく必要がある。【００６４】
このウェーブレット変換の具体的な例として、５×３フィルタを用いた方法について説明する。この５×３フィルタを用いた方法は、JPEG２０００規格でも採用されており、少ないフィルタタップ数でウェーブレット変換を行うことができる点で、優れた方法である。【００６５】
５×３フィルタのインパルス応答（Ｚ変換表現）は、次の式（１）および式（２）に示すように、低域フィルタＨ0（ｚ）と、高域フィルタＨ1（ｚ）とから構成される。【００６６】
Ｈ0（ｚ）＝（−１＋２ｚ-1＋６ｚ-2＋２ｚ-3−ｚ-4）／８    ・・・（１）
Ｈ1（ｚ）＝（−１＋２ｚ-1−ｚ-2）／２            ・・・（２）【００６７】
これら式（１）および式（２）によれば、低域成分および高域成分の係数を、直接的に算出することができる。ここで、リフティング(Lifting)技術を用いることで、フィルタ処理の計算を減らすことができる。【００６８】
次に、このウェーブレット変換方法について、さらに具体的に説明する。図６は、５×３フィルタのリフティングによるフィルタ処理を、分解レベル＝２まで実行した例を示している。なお、図６において、図の左側に分析フィルタとして示される部分は、図３のウェーブレット変換部５１のフィルタである。また、図の右側に合成フィルタとして示される部分は、後述するウェーブレット逆変換部のフィルタである。【００６９】
なお、以下の説明では、例えば表示デバイスなどにおいて画面の左上隅の画素を先頭として、画素が画面の左端から右端に向けて走査されて１ラインが構成され、ライン毎の走査が画面の上端から下端に向けて行われて１画面が構成されるものとする。【００７０】
図６において、左端列は、原画像データのライン上の対応する位置にある画素データが縦方向に並べられて示されている。すなわち、ウェーブレット変換部５１におけるフィルタ処理は、垂直フィルタを用いて画面上を画素が縦に走査されて行われる。左端から１列目乃至３列目が分割レベル＝１のフィルタ処理を示し、４列目乃至６列目が分割レベル＝２のフィルタ処理を示す。左端から２列目は、左端の原画像データの画素に基づく高域成分出力、左端から３列目は、原画像データおよび高域成分出力に基づく低域成分出力を示す。分割レベル＝２のフィルタ処理は、左端から４列目乃至６列目に示されるように、分割レベル＝１のフィルタ処理の出力に対して処理がなされる。【００７１】
分解レベル＝１のフィルタ処理において、第１段階のフィルタ処理として、原画像データの画素に基づき高域成分の係数データが算出され、第２段階のフィルタ処理として、第１段階のフィルタ処理で算出された高域成分の係数データと、原画像データの画素とに基づき低域成分の係数データが算出される。分解レベル＝１の一例のフィルタ処理を、図６における左側（分析フィルタ側）の第１列目乃至第３列目に示す。算出された高域成分の係数データは、図３の係数並び替え用バッファ部５３に格納される。また、算出された低域成分の係数データは、図３の途中計算用バッファ部５２に格納される。【００７２】
図６においては、係数並び替え用バッファ部５３は、一点鎖線で囲まれた部分として示し、途中計算用バッファ部５２は、点線で囲まれた部分として示す。【００７３】
途中計算用バッファ部５２に保持された分解レベル＝１のフィルタ処理の結果に基づき、分解レベル＝２のフィルタ処理が行われる。分解レベル＝２のフィルタ処理では、分解レベル＝１のフィルタ処理において低域成分の係数として算出された係数データを、低域成分および高域成分を含んだ係数データと見做して、分解レベル＝１と同様のフィルタ処理を行う。分解レベル＝２のフィルタ処理により算出された、高域成分の係数データおよび低域成分の係数データは、係数並び替え用バッファ部５３に格納される。【００７４】
ウェーブレット変換部５１では、上述したようなフィルタ処理を、画面の水平方向および垂直方向にそれぞれ行う。例えば、先ず、分解レベル＝１のフィルタ処理を水平方向に行い、生成された高域成分および低域成分の係数データを途中計算用バッファ部５２に格納する。次に、途中計算用バッファ部５２に格納された係数データに対して、垂直方向に分解レベル＝１のフィルタ処理を行う。この分解レベル＝１の水平および垂直方向の処理により、高域成分をさらに高域成分および低域成分に分解した係数データのそれぞれによる領域ＨＨおよび領域ＨＬと、低域成分をさらに高域成分および低域成分に分解した係数データのそれぞれによる領域ＬＨおよび領域ＬＬとの４領域が形成される。【００７５】
そして、分解レベル＝２では、水平方向および垂直方向のそれぞれについて、分解レベル＝１で生成された低域成分の係数データに対してフィルタ処理が行われる。すなわち、分解レベル＝２では、分解レベル＝１で分割されて形成された領域ＬＬがさらに４分割され、領域ＬＬ内にさらに領域ＨＨ、領域ＨＬ、領域ＬＨおよび領域ＬＬが形成される。【００７６】
ウェーブレット変換部５１は、ウェーブレット変換によるフィルタ処理を、画面の縦方向について、数ライン毎の処理に分割して、複数回に分けて段階的に行うようにしている。図６の例では、画面上の第１ラインからの処理になる１回目の処理は、７ラインについてフィルタ処理を行い、８ライン目からの処理になる２回目以降の処理は、４ライン毎にフィルタ処理を行っている。このライン数は、高域成分と低域成分とに２分解した後に、１ライン分の最低域成分が生成されるために必要なライン数に基づく。【００７７】
なお、以下において、この最低域成分の１ライン分（最低域成分のサブバンドの１ライン分の係数データ）を生成するために必要な、他のサブバンドも含めたラインの集まりを、プレシンクト（またはラインブロック）と称する。ここでラインとは、ウェーブレット変換前の画像データに対応するピクチャ（フレームまたはフィールド）、または各サブバンド内において形成される１行分の画素データ若しくは係数データのことを示す。すなわち、プレシンクト（ラインブロック）とは、ウェーブレット変換前の元の画像データにおける、ウェーブレット変換後の最低域成分のサブバンド１ライン分の係数データを生成するために必要なライン数分の画素データ群、または、その画素データ群をウェーブレット変換して得られる各サブバンドの係数データ群のことを示す。【００７８】
図６によれば、分解レベル＝２のフィルタ処理結果で得られる係数Ｃ５は、係数Ｃ４および途中計算用バッファ部５２に格納された係数Ｃaに基づき算出され、係数Ｃ４は、途中計算用バッファ部５２に格納された係数Ｃa、係数Ｃbおよび係数Ｃcに基づき算出される。さらに、係数Ｃcは、係数並び替え用バッファ部５３に格納される係数Ｃ２および係数Ｃ３、並びに、第５ラインの画素データに基づき算出される。また、係数Ｃ３は、第５ライン乃至第７ラインの画素データに基づき算出される。このように、分割レベル＝２における低域成分の係数Ｃ５を得るためには、第１ライン乃至第７ラインの画素データが必要とされる。【００７９】
これに対して、２回目以降のフィルタ処理においては、前回までのフィルタ処理で既に算出され係数並び替え用バッファ部５３に格納されている係数データを用いることができるので、必要なライン数が少なくて済む。【００８０】
すなわち、図６によれば、分解レベル＝２のフィルタ処理結果で得られる低域成分の係数のうち、係数Ｃ５の次の係数である係数Ｃ９は、係数Ｃ４および係数Ｃ８、並びに、途中計算用バッファ部５２に格納された係数Ｃcに基づき算出される。係数Ｃ４は、上述した１回目のフィルタ処理により既に算出され、係数並び替え用バッファ部５３に格納されている。同様に、係数Ｃcは、上述の１回目のフィルタ処理により既に算出され、途中計算用バッファ部５２に格納されている。したがって、この２回目のフィルタ処理においては、係数Ｃ８を算出するためのフィルタ処理のみが、新たになされることになる。この新たなフィルタ処理は、第８ライン乃至第１１ラインがさらに用いられてなされる。【００８１】
このように、２回目以降のフィルタ処理は、前回までのフィルタ処理により算出され途中計算用バッファ部５２および係数並び替え用バッファ部５３に格納されたデータを用いることができるので、それぞれ４ライン毎の処理で済むことになる。【００８２】
なお、画面上のライン数が符号化のライン数と合致しない場合は、原画像データのラインを所定の方法で複製してライン数を符号化のライン数と合わせて、フィルタ処理を行う。【００８３】
このように、最低域成分１ライン分の係数データが得られるだけのフィルタ処理を段階的に、画面全体のラインに対して複数回に分けて（プレシンクト単位で）行うことで、符号化データを伝送した際に低遅延で復号画像を得ることを可能としている。【００８４】
ウェーブレット変換を行うためには、ウェーブレット変換そのものを実行するために用いられる第１のバッファと、所定の分割レベルまで処理を実行する間に生成される係数を格納するための第２のバッファとが必要とされる。第１のバッファは、途中計算用バッファ部５２に対応し、図６においては点線で囲まれて示されている。また、第２のバッファは、係数並び替え用バッファ部５３に対応し、図６においては一点鎖線に囲まれて示されている。第２のバッファに格納された係数は、復号の際に用いられるため、後段のエントロピ符号化処理の対象とされる。【００８５】
次に、図３の係数並び替え部５４の処理について説明する。上述したように、ウェーブレット変換部５１で算出された係数データは、係数並び替え用バッファ部５３に格納され、係数並び替え部５４により順序を並び替えられて読み出され、コーディングユニット単位でエントロピ符号化部５５に送出される。【００８６】
既に説明したように、ウェーブレット変換においては、高域成分側から低域成分側へと係数が生成されていく。図６の例では、１回目において、原画像の画素データにより、分解レベル＝１のフィルタ処理で、高域成分の係数Ｃ１、係数Ｃ２および係数Ｃ３が順次生成される。そして、分解レベル＝１のフィルタ処理で得られた低域成分の係数データに対して分解レベル＝２のフィルタ処理を行い、低域成分の係数Ｃ４および係数Ｃ５が順次生成される。すなわち、第１回目では、係数Ｃ１、係数Ｃ２、係数Ｃ３、係数Ｃ４、係数Ｃ５の順に、係数データが生成される。この係数データの生成順は、ウェーブレット変換の原理上、必ずこの順序（高域から低域の順）になる。【００８７】
これに対して、復号側では、低遅延で即座に復号を行うためには低域成分から画像の生成および出力を行う必要がある。そのため、符号化側で生成された係数データを最低域成分側から高域成分側に向けて並び替えて復号側に供給することが望ましい。【００８８】
図６の例を用いて、より具体的に説明する。図６の右側は、逆ウェーブレット変換を行う合成フィルタ側を示す。復号側の、出力画像データの第１ライン目を含む１回目の合成処理（逆ウェーブレット変換処理）は、符号化側の１回目のフィルタ処理で生成された最低域成分の係数Ｃ４および係数Ｃ５と、係数Ｃ１とを用いて行われる。【００８９】
すなわち、１回目の合成処理においては、係数Ｃ５、係数Ｃ４、係数Ｃ１の順に符号化側から復号側に係数データを供給し、復号側では、分解レベル＝２に対応する合成処理である合成レベル＝２の処理で、係数Ｃ５および係数Ｃ４に対して合成処理を行って係数Ｃfを生成し、バッファに格納する。そして、分解レベル＝１に対応する合成処理である合成レベル＝１の処理で、この係数Ｃfと係数Ｃ１に対して合成処理を行って、第１ラインを出力する。【００９０】
このように、第１回目の合成処理においては、符号化側で係数Ｃ１、係数Ｃ２、係数Ｃ３、係数Ｃ４、係数Ｃ５の順に生成され係数並び替え用バッファ部５３に格納された係数データが、係数Ｃ５、係数Ｃ４、係数Ｃ１、・・・の順に並び替えられて復号側に供給される。【００９１】
なお、図６の右側に示す合成フィルタ側では、符号化側から供給される係数について、括弧内に符号化側での係数の番号を記し、括弧外に合成フィルタのライン順を記す。例えば係数Ｃ１（５）は、図６の左側の分析フィルタ側では係数Ｃ５であって、合成フィルタ側では第１ライン目であることを示す。【００９２】
符号化側の２回目以降のフィルタ処理で生成された係数データによる復号側の合成処理は、前回の合成処理の際に合成あるいは符号化側から供給された係数データを用いて行うことができる。図６の例では、符号化側の２回目のフィルタ処理で生成された低域成分の係数Ｃ８および係数Ｃ９を用いて行う、復号側の２回目の合成処理は、符号化側の１回目のフィルタ処理で生成された係数Ｃ２および係数Ｃ３がさらに必要とされ、第２ライン乃至第５ラインが復号される。【００９３】
すなわち、２回目の合成処理においては、係数Ｃ９、係数Ｃ８、係数Ｃ２、係数Ｃ３の順に符号化側から復号側に係数データを供給する。復号側では、合成レベル＝２の処理において、係数Ｃ８および係数Ｃ９と、１回目の合成処理の際に符号化側から供給された係数Ｃ４とを用いて係数Ｃgを生成し、バッファに格納する。この係数Ｃgと、上述の係数Ｃ４と、１回目の合成処理により生成されバッファに格納された係数Ｃfとを用いて係数Ｃhを生成し、バッファに格納する。【００９４】
そして、合成レベル＝１の処理において、合成レベル＝２の処理で生成されバッファに格納された係数Ｃgおよび係数Ｃhと、符号化側から供給された係数Ｃ２（合成フィルタでは係数Ｃ６（２）と示されている）および係数Ｃ３（合成フィルタでは係数Ｃ７（３）と示されている）とを用いて合成処理が行われ、第２ライン乃至第５ラインが復号される。【００９５】
このように、第２回目の合成処理においては、符号化側で係数Ｃ２、係数Ｃ３、（係数Ｃ４、係数Ｃ５）、係数Ｃ６、係数Ｃ７、係数Ｃ８、係数Ｃ９の順に生成された係数データが、係数Ｃ９、係数Ｃ８、係数Ｃ２、係数Ｃ３、・・・の順に並び替えられて復号側に供給される。【００９６】
３回目以降の合成処理においても、同様にして、係数並び替え用バッファ部５３に格納された係数データが所定の順序に並び替えられて復号部に供給され、４ラインずつ、ラインが復号される。【００９７】
なお、符号化側において画面の下端のラインを含むフィルタ処理（以下、最後の回と呼ぶ）に対応する復号側の合成処理では、それまでの処理で生成されバッファに格納された係数データを全て出力することになるため、出力ライン数が多くなる。図６の例では、最後の回に８ラインが出力される。【００９８】
なお、係数並び替え部５４による係数データの並び替え処理は、例えば、係数並び替え用バッファ部５３に格納された係数データを読み出す際の読み出しアドレスを、所定の順序に設定することでなされる。【００９９】
図７を用いて、上述までの処理をより具体的に説明する。図７は、５×３フィルタを用いて、分解レベル＝２までウェーブレット変換によるフィルタ処理を施した例である。ウェーブレット変換部５１において、図７のAに一例が示されるように、入力画像データの第１ラインから第７ラインに対して１回目のフィルタ処理が水平および垂直方向にそれぞれ行われる（図７のAのＩｎ−１）。【０１００】
１回目のフィルタ処理の分解レベル＝１の処理において、係数Ｃ１、係数Ｃ２、および係数Ｃ３の３ライン分の係数データが生成され、図７のBに一例が示されるように、分解レベル＝１で形成される領域ＨＨ、領域ＨＬおよび領域ＬＨのそれぞれに配置される（図７のBのＷＴ−１）。【０１０１】
また、分解レベル＝１で形成される領域ＬＬは、分解レベル＝２による水平および垂直方向のフィルタ処理でさらに４分割される。分解レベル＝２で生成される係数Ｃ５および係数Ｃ４は、分解レベル＝１による領域ＬＬ内において、領域ＬＬに係数Ｃ５による１ラインが配置され、領域ＨＨ、領域ＨＬおよび領域ＬＨのそれぞれに、係数Ｃ４による１ラインが配置される。【０１０２】
ウェーブレット変換部５１による２回目以降のフィルタ処理では、４ライン毎にフィルタ処理が行われ（図７のAのＩｎ−２・・・）、分解レベル＝１で２ラインずつの係数データが生成され（図７のBのＷＴ−２）、分解レベル＝２で１ラインずつの係数データが生成される。【０１０３】
図６の２回目の例では、分解レベル＝１のフィルタ処理で係数Ｃ６および係数Ｃ７の２ライン分の係数データが生成され、図７のBに一例が示されるように、分解レベル１で形成される領域ＨＨ、領域ＨＬおよび領域ＬＨの、１回目のフィルタ処理で生成された係数データの次から配置される。同様に、分解レベル＝１による領域ＬＬ内において、分解レベル＝２のフィルタ処理で生成された１ライン分の係数Ｃ９が領域ＬＬに配置され、１ライン分の係数Ｃ８が領域ＨＨ、領域ＨＬおよび領域ＬＨにそれぞれ配置される。【０１０４】
図７のBのようにウェーブレット変換されたデータを復号した際には、図７のCに一例が示されるように、符号化側の第１ライン乃至第７ラインによる１回目のフィルタ処理に対して、復号側の１回目の合成処理による第１ラインが出力される（図７のCのＯｕｔ−１）。
以降、符号化側の２回目から最後の回の前までのフィルタ処理に対して、復号側で４ラインずつが出力される（図７のCのＯｕｔ−２・・・）。そして、符号化側の最後の回のフィルタ処理に対して、復号側で８ラインが出力される。【０１０５】
ウェーブレット変換部５１で高域成分側から低域成分側へと生成された係数データは、係数並び替え用バッファ部５３に順次格納される。係数並び替え部５４は、上述した係数データの並び替えが可能となるまで係数並び替え用バッファ部５３に係数データが蓄積されると、係数並び替え用バッファ部５３から合成処理に必要な順に並び替えて係数データを読み出す。読み出された係数データは、エントロピ符号化部５５に順次、供給される。【０１０６】
エントロピ符号化部５５は、供給される係数データを順次符号化し、生成した符号化データを符号化部１４の外部に出力する。【０１０７】
以上のように符号化部１４において符号化された画像データ、即ち、符号化データが、図１のパケット生成部１５に供給される。【０１０８】
次に、図８は、図１のヘッダ生成部１７において生成されるヘッダの構成例を示す図である。【０１０９】
ヘッダ生成部１７では、シーケンスヘッダ、ピクチャヘッダ、およびプレシンクトヘッダが生成される。シーケンスヘッダ、ピクチャヘッダ、およびプレシンクトヘッダは、階層構造を成している。【０１１０】
シーケンスヘッダには、シーケンスヘッダであることを表すフラグであるシーケンスヘッダフラグ（Sequence Header Flag）が、先頭に配置され、シーケンスヘッダフラグに続いて、１ビットのCoeff_order，２ビットのPriority mode，２ビットのDWT filter、および２ビットのFilter precisionが、順次配置される。【０１１１】
ピクチャヘッダには、ピクチャヘッダであることを表すフラグであるピクチャヘッダフラグが、先頭に配置され、ピクチャヘッダフラグに続いて、１ビットのInterlace/Progressive，２ビットのBit Precision、および２ビットのProgram Choiceが、順次配置される。【０１１２】
プレシンクトヘッダには、プレシンクトヘッダであることを表すフラグであるプレシンクトヘッダフラグが、先頭に配置され、プレシンクトヘッダフラグに続いて、２ビットのBit Precisionが配置される。【０１１３】
次に、図９を参照して、シーケンスヘッダについて説明する。【０１１４】
シーケンスヘッダのCoeff_orderは、係数並び替えの場所を表す。例えば、Coeff_orderが０であれば、係数の並び替えがエンコーダ側で行われることを表し、Coeff_orderが１であれば、係数の並び替えがデコーダ側で行われることを表す。【０１１５】
ここで、係数の並び替えの処理は、図３を参照して説明したように、符号化部１４の係数並び替え部５４で行うことができるが、符号化部１４で行わずに、復号部３６（例えば、後述する図４８の復号部３６の係数並び替え部６５）で行うこともできる。即ち、係数の並び替えの処理は、符号化部１４と復号部３６とにおいて共有する処理であり、Coeff_orderは、共有処理識別情報である。【０１１６】
なお、係数の並び替えの処理には、処理を実行するための回路と、係数を蓄積するバッファ（メモリ）とが必要となるため、係数の並び替えの処理を符号化部１４または復号部３６のいずれでおこなうかは、符号化部１４または復号部３６が、それらのハードウェアを具備することができるかどうかによって選択される。例えば、携帯電話端末やPDA(Personal Digital Assistant)、携帯型ゲーム機器、小型カメラといった所謂モバイル端末などの、比較的処理能力の低い機器に符号化部１４が搭載される場合には、多くのメモリを内蔵することができず、必然的に、復号部３６が係数の並び替え処理を行うことになる。
一方、放送用機器、プロフェッショナル用のディジタル送信装置などの、比較的処理能力の高い、豊富な電源と豊富なハードウェアとを有する機器に符号化部１４が搭載される場合には、符号化部１４において係数の並び替え処理が行われる。【０１１７】
そして、例えば、符号化部１４も復号部３６も係数の並び替え処理を行うことができ、符号化部１４において、係数の並び替えの処理が行われた場合には、シーケンスヘッダのCoeff_orderが０であり、復号部３６では、係数の並び替えの処理をスキップすることができる。【０１１８】
シーケンスヘッダのPriority modeは、エンコーダの制御方式を表す制御識別情報である。例えば、Priority modeが００であれば、低遅延用の制御がエンコーダにおいて行われることを表しており、Priority modeが０１であれば、スループットを優先した制御がエンコーダにおいて行われることを表している。なお、Priority modeにおいて、１０または１１は、制御方式が拡張された場合など、他の制御方式を表すときに用いられる。【０１１９】
例えば、スループットを優先した制御では、図３の符号化部１４のウェーブレット変換部５１での処理が終了次第、エントロピ符号化部５５による処理を行わせるような制御が最適である。一方、低遅延用の制御では、ウェーブレット変換部５１での処理と、エントロピ符号化部５５による処理とを、並列的に行わせるような制御が最適である。例えば、符号化部１４で、低遅延用の制御が選択された場合には、低遅延用の制御が選択されたことを復号部３６に通知し、復号部３６でも、低遅延用の制御を選択することで、全体として遅延を少なくすることができる。【０１２０】
シーケンスヘッダのDWT filterは、DWT filterの種類選択を表すフィルタ情報である。例えば、DWT filterが００であれば、画像データがIrreversible 9x7でフィルタリングされていることを表しており、DWT filterが０１であれば、画像データがIrreversible 5x3でフィルタリングされていることを表しており、DWT filterが１０であれば、画像データがReversible 5x3でフィルタリングされていることを表している。なお、DWT filterの１１は、画像データが他の種類のフィルタ、例えば、独自設計のフィルタでフィルタリングされているときに、そのフィルタが選択されていることを表すときに用いられる。【０１２１】
例えば、JPEG２０００規格で採用されている５×３フィルタと９×７フィルタとでは、９×７フィルタの方が、演算回数が単純計算で約２倍になり、計算に必要なメモリも多くなるので、ハードウェアの負荷を軽減したい場合には、５×３フィルタを符号化部１４と復号部３６とで選択するのが適当である。一方、９×７フィルタは、高性能なフィルタリングができるので、高画質のニーズがあるときに選択するのが適当である。【０１２２】
シーケンスヘッダのFilter precisionは、DWT filteringの演算精度を表すフィルタ処理精度情報である。例えば、Filter precisionが００であれば、DWT filteringが固定小数点精度で施されていることを表しており、Filter precisionが０１であれば、DWT filteringが浮動小数点精度で施されていることを表しており、Filter precisionが１０であれば、DWT filteringが整数精度で施されていることを表している。【０１２３】
例えば、浮動小数点精度での演算が、最もハードウェアの負荷が大きく、整数精度での演算が、最もハードウェアの負荷が小さい。従って、ハードウェアの処理能力に応じて、適宜、演算精度を決定することで、ハードウェア資源を有効活用することができる。また、高精細な画像を処理する場合には、浮動小数点精度が望まれる。なお、演算精度は、後述する図４２を参照して説明するようにして選択することができる。【０１２４】
次に、図１０を参照して、ピクチャヘッダについて説明する。【０１２５】
ピクチャヘッダのInterlace/Progressiveは、ピクチャの構造を表す。例えば、Interlace/Progressiveが０であれば、ピクチャがInterlace画像であることを表しており、Interlace/Progressiveが１であれば、ピクチャがProgressive画像であることを表している。【０１２６】
ここで、例えば、テレビジョン放送の画像信号は、インターレースであるが、パーソナルコンピュータや映画の画像信号は、プログレッシブである。また、復号部３６から出力する場合でも、液晶テレビジョン受像機は、プログレッシブであるため、画像信号がインターレースである場合には、プログレッシブに変換して出力する必要がある。また、インターレースでは、符号化処理および復号処理をフィールド単位に行うのに対し、プログレッシブでは、符号化処理および復号処理をフレーム単位に行う。これらのような違いから、ピクチャ単位で、インターレースであるかプログレッシブであるかを、符号化部１４から復号部３６に通知することで、復号部３６で最適な処理を行うことができる。【０１２７】
ピクチャヘッダのBit Precisionは、ピクチャ内の演算精度を表す。例えば、Bit Precisionが００であれば、ピクチャが８ビットの精度で演算されていることを表しており、Bit Precisionが０１であれば、ピクチャが１０ビットの精度で演算されていることを表しており、Bit Precisionが１０であれば、ピクチャが１２ビットの精度で演算されていることを表しており、Bit Precisionが１１であれば、ピクチャが１６ビットの精度で演算されていることを表している。【０１２８】
例えば、入力画像が、８ビットである場合には、４分解のウェーブレット変換後には、ウェーブレット変換係数を１２ビットまで拡大することが知られており、入力画像が、１２ビットである場合には、４分解のウェーブレット変換後には、ウェーブレット変換係数を１６ビットまで拡大することが知られている。従って、精度を維持するためには、ウェーブレット変換係数で必要な精度を維持したまま符号化処理を実行する必要がある。即ち、符号化部１４で１２ビット精度を要求した場合には、復号部３６で１６ビットの精度の演算が可能なリソースがあったとしても、１２ビットの精度の演算を実行することで、少ないリソースで復号を行うことができる。【０１２９】
ピクチャヘッダのProgram Choiceは、ピクチャの符号化および復号に用いるプログラムの種類選択を表すプログラム識別情報である。例えば、Program Choiceが００であれば、プログラムＡを選択することを表しており、Program Choiceが０１であれば、プログラムＢを選択することを表しており、Program Choiceが１０であれば、プログラムＣを選択することを表しており、Program Choiceが１１であれば、プログラムＤを選択することを表している。【０１３０】
ここで、プログラムＡ乃至Ｄは、後述するようなCPUやメモリの割り当て方法を適用した符号化方法Ａ乃至Ｄそれぞれに対応するプログラムであり、例えば、符号化部１４は、後述の図４３のフローチャートを参照して説明するようにして選択することがで、復号部３６は、ピクチャヘッダに基づいて、符号化部１４が選択した符号化方法に対応した復号方法を選択することができる。【０１３１】
次に、図１１を参照して、プレシンクトヘッダについて説明する。【０１３２】
プレシンクトヘッダのBit Precisionは、プレシンクト内の演算精度を表す。例えば、Bit Precisionが００であれば、プレシンクトが８ビットの精度で演算されていることを表しており、Bit Precisionが０１であれば、プレシンクトが１０ビットの精度で演算されていることを表しており、Bit Precisionが１０であれば、プレシンクトが１２ビットの精度で演算されていることを表しており、Bit Precisionが１１であれば、プレシンクトが１６ビットの精度で演算されていることを表している。【０１３３】
プレシンクトヘッダのBit Precisionで演算精度を通知することで、ピクチャヘッダのBit Precisionと同様に、復号部３６のリソースを有効活用することができる。なお、ピクチャヘッダのBit Precisionで表された演算精度と、プレシンクトヘッダのBit Precisionで表された演算精度とが異なる場合は、プレシンクトヘッダのBit Precisionで表された演算精度が優先される。【０１３４】
なお、共有処理識別情報、制御識別情報、フィルタ情報、フィルタ処理精度情報、プログラム識別情報は、識別情報生成部２１により生成され、シーケンスヘッダ生成部１８、ピクチャヘッダ生成部１９、プレシンクトヘッダ生成部２０にそれぞれ供給され、シーケンスヘッダ、ピクチャヘッダ、プレシンクトヘッダが生成、即ち、シーケンスヘッダ、ピクチャヘッダ、プレシンクトヘッダにそれぞれフラグが設定される。【０１３５】
また、これらの情報を、符号化装置１３側であらかじめ生成して、復号装置３２に送信して復号装置３２で利用させることにより、復号装置３２では、処理選択の判断（例えば、後述の図４５でのプログラムの選択を判断する処理）を省略することができるとともに、復号に伴う負荷を軽減することができる。特に、プログラム選択処理では、情報を参照するだけで復号できるプログラム機能を有しているのかを判断することができる。【０１３６】
なお、符号化装置１３では、符号化処理を時分割に分けて、符号化に伴うデータ量（処理の負荷）に応じて、適応的に選択モードを設け、適宜、異なるプログラムで符号化処理を行ってもよい。即ち、符号化装置１３は、一連の画像に対し、ある期間では、プログラムＡを選択して符号化を行い、次の期間では、プログラムＤを選択して符号化を行い、さらに次の期間では、プログラムＣを選択して符号化を行うようにすることができる。【０１３７】
次に、図１２は、図２の復号部３６の構成例を示すブロック図である。【０１３８】
図１２に示されるように、復号部３６は、エントロピ復号部６１、係数バッファ部６２、およびウェーブレット逆変換部６３の機能を有する。【０１３９】
エントロピ復号部６１は、供給された符号化データを、エントロピ符号化部５５（図３）による符号化方法に対応する復号方法で復号し、係数データを得る。その係数データは、係数バッファ部６２に格納される。ウェーブレット逆変換部６３は、係数バッファ部６２に格納された係数データを用いて、合成フィルタによる合成フィルタ処理（ウェーブレット逆変換）を行い、合成フィルタ処理の結果を再び係数バッファ部６２に格納する。ウェーブレット逆変換部６３は、この処理を分解レベルに応じて繰り返して、復号された画像データ（出力画像データ）を得ると、それを外部に出力する。【０１４０】
次に、図１３乃至１６を参照して、各部の実行する処理の流れについて説明する。【０１４１】
図１３は、図３の符号化部１４が、画像データを符号化する処理を説明するフローチャートである。【０１４２】
符号化処理が開始されると、符号化部１４のウェーブレット変換部５１は、ステップＳ１において、処理対象プレシンクトの番号Ａを初期設定にする。通常の場合、番号Ａは「１」に設定される。設定が終了すると、ウェーブレット変換部５１は、ステップＳ２において、最低域サブバンドにおいて上からＡ番目の１ラインを生成するのに必要なライン数（すなわち、１プレシンクト）の画像データを取得し、その画像データに対して、ステップＳ３において画面垂直方向に並ぶ画像データに対して分析フィルタリングを行う垂直分析フィルタリング処理を行い、ステップＳ４において画面水平方向に並ぶ画像データに対して分析フィルタリング処理を行う水平分析フィルタリング処理を行う。【０１４３】
ステップＳ５においてウェーブレット変換部５１は、分析フィルタリング処理を最終レベルまで行ったか否かを判定する。分解レベルが最終レベルに達していないと判定された場合、処理はステップＳ３に戻り、現在の分解レベルに対して、ステップＳ３およびステップＳ４の分析フィルタリング処理が繰り返される。【０１４４】
ステップＳ５において、分析フィルタリング処理が最終レベルまで行われたと判定された場合、処理は、ステップＳ６に進む。【０１４５】
ステップＳ６において、係数並び替え部５４は、プレシンクトＡ（ピクチャ（フレームまたはフィールド）の上からＡ番目のプレシンクト）の係数を低域から高域の順番に並び替える。エントロピ符号化部５５は、ステップＳ７において、その係数に対してライン毎にエントロピ符号化し、ステップＳ８において、プレシンクトＡの符号化データを送出する。【０１４６】
ウェーブレット変換部５１は、ステップＳ９において番号Ａの値を「１」インクリメントして次のプレシンクトを処理対象とし、ステップＳ１０において、処理対象のピクチャ（フレームまたはフィールド）について、未処理の画像入力ラインが存在するか否かを判定する。未処理の画像入力ラインが存在すると判定された場合、処理は、ステップＳ２に戻り、新たな処理対象のプレシンクトに対してそれ以降の処理が繰り返される。【０１４７】
以上のようにステップＳ２乃至ステップＳ１０の処理が繰り返し実行され、各プレシンクトが符号化される。そして、ステップＳ１０において、未処理の画像入力ラインが存在しないと判定された場合、そのピクチャに対する符号化処理が終了される。次のピクチャに対しては新たに符号化処理が開始される。【０１４８】
このように、ウェーブレット変換部５１は、プレシンクト単位で垂直分析フィルタリング処理および水平分析フィルタリング処理を最終レベルまで連続して行うので、従来の方法と比較して、一度に（同時期に）保持する（バッファリングする）必要のあるデータの量が少なく、用意すべきバッファのメモリ量を大幅に低減させることができる。また、最終レベルまで分析フィルタリング処理が行われることにより、後段の係数並び替えやエントロピ符号化等の処理も行うことができる（つまり、係数並び替えやエントロピ符号化をプレシンクト単位で行うことができる）。従って、画面全体に対してウェーブレット変換を行う方法と比較して遅延時間を大幅に低減させることができる。【０１４９】
次に、図１４は、図１のヘッダ生成部１７が、ヘッダを生成する処理を説明するフローチャートである。【０１５０】
符号化部１４における符号化処理が開始されると同時に処理が開始され、ステップＳ２１において、パケット生成部１５は、シーケンスヘッダを生成（記述）するか否かを判定する。【０１５１】
例えば、パケット生成部１５は、符号化処理において符号化の対象となっている画像が、符号化装置１３から送信される一連の画像のうちの、最初の画像であれば、シーケンスヘッダを生成すると判定し、一方、最初の画像でなければ、シーケンスヘッダを生成しないと判定する。【０１５２】
ステップＳ２１において、パケット生成部１５が、シーケンスヘッダを生成すると判定した場合、処理はステップＳ２２に進み、パケット生成部１５は、シーケンスヘッダの生成を指示する信号をシーケンスヘッダ生成部１８に供給する。シーケンスヘッダ生成部１８は、パケット生成部１５からシーケンスヘッダの生成を指示する信号が供給されると、図９に示したような情報（パラメータ）を、識別情報生成部２１から取得してシーケンスヘッダを生成し、パケット生成部１５に供給して、処理はステップＳ２３に進む。【０１５３】
一方、ステップＳ２１において、パケット生成部１５が、シーケンスヘッダを生成しないと判定した場合、処理はステップＳ２２をスキップしてステップＳ２３に進む。【０１５４】
ステップＳ２３において、パケット生成部１５は、ピクチャヘッダを生成（記述）するか否かを判定する。【０１５５】
例えば、パケット生成部１５は、符号化の対象となっている画像が、符号化処理が開始されてから最初の画像である場合、および、前回符号化の対象となった画像から符号化のパラメータが変更された場合、ピクチャヘッダを生成すると判定する。一方、パケット生成部１５は、前回符号化の対象となった画像から符号化のパラメータが変更されていない場合、ピクチャヘッダを生成しないと判定する。【０１５６】
ステップＳ２３において、パケット生成部１５が、ピクチャヘッダを生成すると判定した場合、処理はステップＳ２４に進み、パケット生成部１５は、ピクチャヘッダの生成を指示する信号をピクチャヘッダ生成部１９に供給する。ピクチャヘッダ生成部１９は、パケット生成部１５からピクチャヘッダの生成を指示する信号が供給されると、図１０に示したような情報（パラメータ）を、識別情報生成部２１から取得してピクチャヘッダを生成し、パケット生成部１５に供給して、処理はステップＳ２５に進む。【０１５７】
一方、ステップＳ２３において、パケット生成部１５が、ピクチャヘッダを生成しないと判定した場合、処理はステップＳ２４をスキップしてステップＳ２５に進む。なお、この場合、パケット生成部１５は、前回符号化の対象となった画像に対するピクチャヘッダと同一のピクチャヘッダを画像に付加する。【０１５８】
ステップＳ２５において、パケット生成部１５は、プレシンクトヘッダを生成（記述）するか否かを判定する。【０１５９】
例えば、パケット生成部１５は、符号化の対象となっているプレシンクトが、符号化処理が開始されてから最初のプレシンクトである場合、および、前回符号化の対象となったプレシンクトから符号化のパラメータが変更された場合、プレシンクトヘッダを生成すると判定する。一方、パケット生成部１５は、前回符号化の対象となったプレシンクトから符号化のパラメータが変更されていない場合、プレシンクトヘッダを生成しないと判定する。【０１６０】
ステップＳ２５において、パケット生成部１５が、プレシンクトヘッダを生成すると判定した場合、処理はステップＳ２６に進み、パケット生成部１５は、プレシンクトヘッダの生成を指示する信号をプレシンクトヘッダ生成部２０に供給する。プレシンクトヘッダ生成部２０は、パケット生成部１５からプレシンクトヘッダの生成を指示する信号が供給されると、図１１に示したような情報（パラメータ）を、識別情報生成部２１から取得してプレシンクトヘッダを生成し、パケット生成部１５に供給して、処理はステップＳ２７に進む。【０１６１】
一方、ステップＳ２５において、パケット生成部１５が、プレシンクトヘッダを生成しないと判定した場合、処理はステップＳ２６をスキップしてステップＳ２７に進む。なお、この場合、パケット生成部１５は、前回符号化の対象となったプレシンクトに対するプレシンクトヘッダと同一のプレシンクトヘッダをプレシンクトに付加する。【０１６２】
ステップＳ２７において、パケット生成部１５は、現在、符号化処理の対象となっている画像内に符号化されていないプレシンクトがあるか否かを判定する。【０１６３】
ステップＳ２７において、パケット生成部１５が、現在、符号化処理の対象となっている画像内に符号化されていないプレシンクトがあると判定した場合、処理はステップＳ２５に戻り、以下、同様の処理が繰り返される。【０１６４】
一方、ステップＳ２７において、パケット生成部１５が、現在、符号化処理の対象となっている画像内に符号化されていないプレシンクトがないと判定した場合、即ち、符号化処理の対象となっている画像内のすべてのプレシンクトが符号化されている場合、処理はステップＳ２８に進む。【０１６５】
ステップＳ２８において、送信部１６は、ステップＳ２２で生成されたシーケンスヘッダ、ステップＳ２４で生成されたピクチャヘッダ、またはステップＳ２６で生成されたプレシンクトヘッダが、符号化部１４から出力される符号化データに付加されたパケットを送信する。【０１６６】
ステップＳ２８の処理後、処理はステップＳ２９に進み、パケット生成部１５は、符号化装置１３から送信される一連の画像の全てを符号化したか否かを判定する。【０１６７】
ステップＳ２９において、パケット生成部１５が、符号化装置１３から送信される一連の画像の全てを符号化していないと判定した場合、即ち、符号化すべき次の画像がまだある場合、処理はステップＳ２３に戻り、以下、次の画像を符号化の対象として、同様の処理が繰り返される。【０１６８】
一方、ステップＳ２９において、パケット生成部１５が、符号化装置１３から送信される一連の画像の全てを符号化したと判定した場合、処理は終了される。【０１６９】
次に、図１５は、図１２の復号部３６が、画像データを復号する処理を説明するフローチャートである。【０１７０】
復号処理が開始されると、エントロピ復号部６１は、ステップＳ３１において、復号部３６の外部より供給される符号化データを取得し、ステップＳ３２において、ライン毎に符号化データをエントロピ復号する。ステップＳ３３において、係数バッファ部６２は、その復号されて得られた係数データを保持する。ステップＳ３４においてウェーブレット逆変換部６３は、係数バッファ部６２に１プレシンクト分の係数データが蓄積されたか否かを判定する。１プレシンクト分の係数データが蓄積されていないと判定された場合、処理は、ステップＳ３１に戻り、それ以降の処理が実行される。つまり、ウェーブレット逆変換部６３は、係数バッファ部６２に１プレシンクト分の係数データが蓄積されるまで待機する。【０１７１】
ステップＳ３４において係数バッファ部６２に１プレシンクト分の係数データが蓄積されたと判定された場合、処理はステップＳ３５に進む。ステップＳ３５において、ウェーブレット逆変換部６３は、係数バッファ部６２に保持されている係数データを１プレシンクト分読み出し、ステップＳ３６において、その読み出した係数データに対して、画面垂直方向に並ぶ係数データに対して合成フィルタリング処理を行う垂直合成フィルタリング処理を行い、ステップＳ３７において、画面水平方向に並ぶ係数データに対して合成フィルタリング処理を行う水平合成フィルタリング処理を行う。ステップＳ３８において、ウェーブレット逆変換部６３は、合成フィルタリング処理がレベル１（分解レベルの値が「１」のレベル）まで終了したか否か、すなわち、ウェーブレット変換前の状態まで逆変換したか否かを判定する。レベル１まで達していないと判定された場合、処理はステップＳ３６に戻り、ステップＳ３６およびステップＳ３７のフィルタリング処理が繰り返される。【０１７２】
ステップＳ３８において、レベル１までウェーブレット逆変換処理が終了されたと判定した場合、処理はステップＳ３９に進む。ステップＳ３９において、ウェーブレット逆変換部６３は、ウェーブレット逆変換処理により得られた画像データを外部に出力する。【０１７３】
ステップＳ４０において、エントロピ復号部６１は、復号処理を終了するか否かを判定する。復号処理を終了しないと判定された場合、処理はステップＳ３１に戻り、それ以降の処理が繰り返される。また、ステップＳ４０において、プレシンクトが終了するなどして復号処理が終了されると判定した場合、復号処理は終了される。【０１７４】
従来のウェーブレット逆変換の方法の場合、処理対象の分解レベルの全係数に対して、まず、画面水平方向に水平合成フィルタリング処理を行い、次に画面垂直方向に垂直合成フィルタリング処理を行っていた。つまり、各合成フィルタリング処理の度に、その合成フィルタリング処理の結果をバッファに保持させる必要があるが、その際、バッファは、その時点の分解レベルの合成フィルタリング結果と、次の分解レベルの全係数を保持する必要があり、多大なメモリ容量を必要とすることになる（保持するデータ量が多い）。【０１７５】
また、この場合、ピクチャ（フレームまたはフィールド）内において全てのウェーブレット逆変換が終了するまで画像データ出力が行われないので、入力から出力までの遅延時間が増大する。【０１７６】
これに対して、復号部３６のウェーブレット逆変換部６３の場合、上述したようにプレシンクト単位で垂直合成フィルタリング処理および水平合成フィルタリング処理をレベル１まで連続して行うので、従来の方法と比較して、一度に（同時期に）バッファリングする必要のあるデータの量が少なく、用意すべきバッファのメモリ量を大幅に低減させることができる。また、レベル１まで合成フィルタリング処理（ウェーブレット逆変換処理）が行われることにより、ピクチャ内の全画像データが得られる前に（プレシンクト単位で）画像データを順次出力させることができ、従来の方法と比較して遅延時間を大幅に低減させることができる。【０１７７】
次に、図１６は、図２のヘッダ解読部３８が、ヘッダを解読する処理を説明するフローチャートである。【０１７８】
復号処理が開始されると、ステップＳ５１において、パケット解読部３５は、パケットから抽出したヘッダがシーケンスヘッダであるか否かを判定する。【０１７９】
ステップＳ５１において、パケット解読部３５が、パケットから抽出したヘッダがシーケンスヘッダであると判定した場合、処理はステップＳ５２に進み、パケット解読部３５は、シーケンスヘッダをシーケンスヘッダ解読部３９に供給する。シーケンスヘッダ解読部３９は、パケット解読部３５から供給されたシーケンスヘッダを解読して、シーケンスヘッダに含まれている情報（パラメータ）を取得して識別情報取得部４２に供給し、処理はステップＳ５３に進む。【０１８０】
一方、ステップＳ５１において、パケット解読部３５が、パケットから抽出したヘッダがシーケンスヘッダでないと判定した場合、処理はステップＳ５２をスキップしてステップＳ５３に進む。【０１８１】
ステップＳ５３において、パケット解読部３５は、パケットから抽出したヘッダがピクチャヘッダであるか否かを判定する。【０１８２】
ステップＳ５３において、パケット解読部３５が、パケットから抽出したヘッダがピクチャヘッダであると判定した場合、処理はステップＳ５４に進み、パケット解読部３５は、シーケンスヘッダをピクチャヘッダ解読部４０に供給する。ピクチャヘッダ解読部４０は、パケット解読部３５から供給されたピクチャヘッダを解読して、ピクチャヘッダに含まれている情報（パラメータ）が、更新されていれば、即ち、前回取得したピクチャヘッダに含まれていた情報から変更されていれば、その情報を取得して識別情報取得部４２に供給し、処理はステップＳ５５に進む。【０１８３】
一方、ステップＳ５３において、パケット解読部３５が、パケットから抽出したヘッダがピクチャヘッダでないと判定した場合、処理はステップＳ５４をスキップしてステップＳ５５に進む。【０１８４】
ステップＳ５５において、パケット解読部３５は、パケットから抽出したヘッダがプレシンクトヘッダであるか否かを判定する。【０１８５】
ステップＳ５５において、パケット解読部３５が、パケットから抽出したヘッダがプレシンクトヘッダであると判定した場合、処理はステップＳ５６に進み、パケット解読部３５は、プレシンクトヘッダをプレシンクトヘッダ解読部４１に供給する。プレシンクトヘッダ解読部４１は、パケット解読部３５から供給されたプレシンクトヘッダを解読して、プレシンクトヘッダに含まれている情報（パラメータ）が、更新されていれば、即ち、前回取得したプレシンクトヘッダに含まれていた情報から変更されていれば、その情報を取得して識別情報取得部４２に供給し、処理はステップＳ５７に進む。【０１８６】
一方、ステップＳ５５において、パケット解読部３５が、パケットから抽出したヘッダがプレシンクトヘッダでないと判定した場合、処理はステップＳ５６をスキップしてステップＳ５７に進む。【０１８７】
ステップＳ５７において、識別情報取得部４２は、ステップＳ５２でシーケンスヘッダ解読部３９から供給された情報、ステップＳ５４でピクチャヘッダ解読部４０から供給された情報、または、ステップＳ５６でプレシンクトヘッダ解読部４１から供給された情報を、復号制御部４３に供給し、復号制御部４３は、それらの情報に基づく処理方式で、復号部３６が復号処理を行うように、復号部３６を制御する。【０１８８】
ステップＳ５７の処理後、処理はステップＳ５８に進み、パケット解読部３５は、符号化装置１３から送信されてくる一連の画像の全てが受信されたか否かを判定する。【０１８９】
ステップＳ５８において、パケット解読部３５が、符号化装置１３から送信されてくる一連の画像の全てが受信されていないと判定した場合、処理はステップＳ５１に戻り、以下、同様の処理が繰り返される。【０１９０】
一方、ステップＳ５８において、パケット解読部３５が、符号化装置１３から送信されてくる一連の画像の全てが受信されたと判定した場合、処理は終了される。【０１９１】
以上のように、シーケンスヘッダ、ピクチャヘッダ、プレシンクトヘッダのそれぞれに、符号化部１４および復号部３６で共通の処理を施すための各種のフラグをセットすることで、符号化部１４と復号部３６とで、リソースを有効に活用すること、例えば、アプリケーションに応じて、演算精度や、ウェーブレット変換の種類、CPUの割り当てなどを、最適に選択することができる。【０１９２】
以上のような各種処理は、例えば、図１７に示されるように、適宜、並列的に実行させることもできる。【０１９３】
図１７は、図３に示される符号化部１４および図１２に示される復号部３６の各部により実行される処理の各要素の並列動作の例を概略的に示す図である。この図１７は、上述した図６と対応するものである。画像データの入力Ｉｎ−１（図１７のA）に対して、ウェーブレット変換部５１（図３）で１回目のウェーブレット変換ＷＴ−１が施される（図１７のB）。図６を参照し説明したように、この１回目のウェーブレット変換ＷＴ−１は、最初の３ラインが入力された時点で開始され、係数Ｃ１が生成される。すなわち、画像データＩｎ−１の入力からウェーブレット変換ＷＴ−１が開始されるまで、３ライン分の遅延が生じる。【０１９４】
生成された係数データは、係数並び替え用バッファ部５３（図３）に格納される。以降、入力された画像データに対してウェーブレット変換が施され、１回目の処理が終了すると、そのまま２回目のウェーブレット変換ＷＴ−２に処理が移行する。【０１９５】
２回目のウェーブレット変換ＷＴ−２のための画像データＩｎ−２の入力と、当該２回目のウェーブレット変換ＷＴ−２の処理と並列的に、係数並び替え部５４（図３）により３個の、係数Ｃ１、係数Ｃ４、および係数Ｃ５の並び替えＯｒｄ−１が実行される（図１７のC）。【０１９６】
なお、ウェーブレット変換ＷＴ−１の終了から並び替えＯｒｄ−１が開始されるまでの遅延は、例えば、並び替え処理を係数並び替え部５４に指示する制御信号の伝達に伴う遅延や、制御信号に対する係数並び替え部５４の処理開始に要する遅延、プログラム処理に要する遅延といった、装置やシステム構成に基づく遅延であって、符号化処理における本質的な遅延ではない。【０１９７】
係数データは、並び替えが終了した順に係数並び替え用バッファ部５３から読み出され、エントロピ符号化部５５（図３）に供給され、エントロピ符号化ＥＣ−１が行われる（図１７のD）。このエントロピ符号化ＥＣ−１は、３個の、係数Ｃ１、係数Ｃ４、および係数Ｃ５の、全ての並び替えの終了を待たずに開始することができる。例えば、最初に出力される係数Ｃ５による１ラインの並び替えが終了した時点で、当該係数Ｃ５に対するエントロピ符号化を開始することができる。この場合、並び替えＯｒｄ−１の処理開始からエントロピ符号化ＥＣ−１の処理開始までの遅延は、１ライン分となる。【０１９８】
エントロピ符号化部５５によるエントロピ符号化ＥＣ−１が終了した符号化データは、所定の信号処理が施された後、復号部３６（図１２）に伝送される（図１７のE）。【０１９９】
以上のように、符号化部１４に対しては、１回目の処理による７ライン分の画像データ入力に続けて、画面上の下端のラインまで画像データが順次、入力される。符号化部１４では、画像データの入力Ｉｎ−ｎ（ｎは２以上）に伴い、上述したようにして、４ライン毎にウェーブレット変換ＷＴ−ｎ、並び替えＯｒｄ−ｎおよびエントロピ符号化ＥＣ−ｎを行う。符号化部１４における最後の回の処理に対する並び替えＯｒｄおよびエントロピ符号化ＥＣは、６ラインに対して行われる。これらの処理は、符号化部１４において、図１７のA乃至図１７のDに例示されるように、並列的に行われる。【０２００】
符号化部１４によるエントロピ符号化ＥＣ−１により符号化された符号化データは、復号部３６に供給される。復号部３６のエントロピ復号部６１（図１２）は、供給された、エントロピ符号化ＥＣ−１により符号化された符号化データに対して、順次、エントロピ符号の復号ｉＥＣ−１を行い、係数データを復元する（図１７のF）。復元された係数データは、順次、係数バッファ部６２に格納される。ウェーブレット逆変換部６３は、係数バッファ部６２にウェーブレット逆変換が行えるだけ係数データが格納されたら、係数バッファ部６２から係数データを読み出して、読み出された係数データを用いてウェーブレット逆変換ｉＷＴ−１を行う（図１７のG）。【０２０１】
図６を参照して説明したように、ウェーブレット逆変換部６３によるウェーブレット逆変換ｉＷＴ−１は、係数Ｃ４および係数Ｃ５が係数バッファ部６２に格納された時点で開始することができる。したがって、エントロピ復号部６１による復号ｉＥＣ−１が開始されてからウェーブレット逆変換部６３によるウェーブレット逆変換ｉＷＴ−１が開始されるまでの遅延は、２ライン分となる。【０２０２】
ウェーブレット逆変換部６３において、１回目のウェーブレット変換による３ライン分のウェーブレット逆変換ｉＷＴ−１が終了すると、ウェーブレット逆変換ｉＷＴ−１で生成された画像データの出力Ｏｕｔ−１が行われる（図１７のH）。出力Ｏｕｔ−１では、図６および図７を用いて説明したように、第１ライン目の画像データが出力される。【０２０３】
復号部３６に対して、符号化部１４における１回目の処理による３ライン分の符号化された係数データの入力に続けて、エントロピ符号化ＥＣ−ｎ（ｎは２以上）により符号化された係数データが順次、入力される。復号部３６では、入力された係数データに対して、上述したようにして、４ライン毎にエントロピ復号ｉＥＣ−ｎおよびウェーブレット逆変換ｉＷＴ−ｎを行い、ウェーブレット逆変換ｉＷＴ−ｎにより復元された画像データの出力Ｏｕｔ−ｎを順次、行う。符号化部１４の最後の回に対応するエントロピ復号ｉＥＣおよびウェーブレット逆変換ｉＷＴは、６ラインに対して行われ、出力Ｏｕｔは、８ラインが出力される。これらの処理は、復号部３６において、図１７のF乃至図１７のHに例示されるように、並列的に行われる。【０２０４】
上述のようにして、画面上部から下部の方向に順番に、符号化部１４および復号部３６における各処理を並列的に行うことで、画像圧縮処理および画像復号処理をより低遅延で行うことが可能となる。【０２０５】
図１７を参照して、５×３フィルタを用いて分解レベル＝２までウェーブレット変換を行った場合の、画像入力から画像出力までの遅延時間を計算してみる。第１ライン目の画像データが符号化部１４に入力されてから、この第１ライン目の画像データが復号部３６から出力されるまでの遅延時間は、下記の各要素の総和となる。なお、ここでは、伝送路における遅延や、装置各部の実際の処理タイミングに伴う遅延などの、システムの構成により異なる遅延は、除外している。【０２０６】
（１）最初のライン入力から７ライン分のウェーブレット変換ＷＴ−１が終了するまでの遅延Ｄ＿ＷＴ
（２）３ライン分の計数並び替えＯｒｄ−１に伴う時間Ｄ＿Ｏｒｄ
（３）３ライン分のエントロピ符号化ＥＣ−１に伴う時間Ｄ＿ＥＣ
（４）３ライン分のエントロピ復号ｉＥＣ−１に伴う時間Ｄ＿ｉＥＣ
（５）３ライン分のウェーブレット逆変換ｉＷＴ−１に伴う時間Ｄ＿ｉＷＴ【０２０７】
図１７を参照して、上述の各要素による遅延の計算を試みる。（１）の遅延Ｄ＿ＷＴは、１０ライン分の時間である。（２）の時間Ｄ＿Ｏｒｄ、（３）の時間Ｄ＿ＥＣ、（４）の時間Ｄ＿ｉＥＣ、および（５）の時間Ｄ＿ｉＷＴは、それぞれ３ライン分の時間である。また、符号化部１４において、並び替えＯｒｄ−１が開始されてから１ライン後には、エントロピ符号化ＥＣ−１を開始することができる。同様に、復号部３６において、エントロピ復号ｉＥＣ−１が開始されてから２ライン後には、ウェーブレット逆変換ｉＷＴ−１を開始することができる。また、エントロピ復号ｉＥＣ−１は、エントロピ符号化ＥＣ−１で１ライン分の符号化が終了した時点で処理を開始することができる。【０２０８】
したがって、この図１７の例では、符号化部１４に第１ライン目の画像データが入力されてから、復号部３６から当該第１ライン目の画像データが出力されるまでの遅延時間は、１０＋１＋１＋２＋３＝１７ライン分となる。【０２０９】
遅延時間について、より具体的な例を挙げて考察する。入力される画像データがHDTV(High Definition Television)のインタレースビデオ信号の場合、例えば１９２０画素×１０８０ラインの解像度で１フレームが構成され、１フィールドは、１９２０画素×５４０ラインとなる。したがって、フレーム周波数を３０Hzとした場合、１フィールドの５４０ラインが１６.６７msec（＝１sec/６０フィールド）の時間に、符号化部１４に入力されることになる。【０２１０】
したがって、７ライン分の画像データの入力に伴う遅延時間は、０.２１６msec（＝１６.６７msec×７/５４０ライン）であり、例えば１フィールドの更新時間に対して非常に短い時間となる。また、上述した（１）の遅延Ｄ＿ＷＴ、（２）の時間Ｄ＿Ｏｒｄ、（３）の時間Ｄ＿ＥＣ、（４）の時間Ｄ＿ｉＥＣ、および（５）の時間Ｄ＿ｉＷＴの総和についても、処理対象のライン数が少ないため、遅延時間が非常に短縮される。【０２１１】
次に、以上のようなソフトウェアエンコーダやソフトウェアデコーダが実装されるハードウェアについて説明する。図１８は、パーソナルコンピュータの構成例を示すブロック図である。【０２１２】
図１８において、パーソナルコンピュータ１００のCPU１０１−１、CPU１０１−２、CPU１０１−３、およびCPU１０１−４は、それぞれ、ソフトウェアプログラムに従って各種の処理を実行する演算処理部である。以下において、CPU１０１−１乃至CPU１０１−４を互いに区別して説明する必要の無い場合、CPU１０１と称する。CPU１０１は、共有バスであるバス１０４を介してROM（Read Only Memory）１０２およびRAM（Random Access Memory）１０３と相互に接続されている。ROM１０２には予めソフトウェアプログラムやデータが格納されている。RAM１０３には、ROM１０２や記憶部１２３に格納されているソフトウェアプログラムやデータがロードされる。【０２１３】
CPU１０１−１にはキャッシュメモリ１１１−１が内蔵され、CPU１０１−２にはキャッシュメモリ１１１−２が内蔵され、CPU１０１−３にはキャッシュメモリ１１１−３が内蔵され、CPU１０１−４にはキャッシュメモリ１１１−４が内蔵される。以下において、キャッシュメモリ１１１−１乃至キャッシュメモリ１１１−４を互いに区別して説明する必要の無い場合、キャッシュメモリ１１１と称する。【０２１４】
キャッシュメモリ１１１は、例えばSRAM（Static Random Access Memory）のような、高速で動作する記憶媒体であり、そのキャッシュメモリ１１１を内蔵するCPU１０１により独占的に使用される。このキャッシュメモリ１１１は、記憶容量辺りの単価が高く、また、CPU１０１に内蔵されるため、キャッシュメモリ１１１の記憶容量を増大させるとCPU１０１の回路規模も増大してしまう。そこでコストの低減や回路規模の増大を抑制するために、キャッシュメモリ１１１の記憶容量は、一般的に、例えば数百キロバイト乃至数メガバイト程度と、数百メガバイト乃至数ギガバイト程度の記憶容量を有する、CPU１０１の外部に設けられたRAM１０３よりも小容量に抑えられている。【０２１５】
もちろん、キャッシュメモリ１１１としてどのようなメモリを用いるようにし、また、その記憶容量をどの程度にしてもよいが、ここでは、キャッシュメモリ１１１が、そのキャッシュメモリ１１１を内蔵するCPU１０１により独占的に使用され、RAM１０３より高速にデータの読み出しや書き込みが可能であるものの、その記憶容量がRAM１０３より小容量であり、格納可能な情報量に制限がある記憶媒体であるものとする。【０２１６】
このキャッシュメモリ１１１に対して、RAM１０３は、CPU１０１−１乃至CPU１０１−４等により共有され、キャッシュメモリ１１１よりもデータの読み出しや書き込みが低速であり、かつ、キャッシュメモリ１１１より大容量であるものとする。なお、もちろん、実際にはRAM１０３の記憶容量も有限であるが、以下においては、説明の便宜上、RAM１０３の記憶容量は、上述した符号化処理や復号処理に必要な容量に対して十分に大きく、その容量の制限については特に考慮しないものとする。【０２１７】
つまり、キャッシュメモリ１１１は、高速でプログラムやデータの入出力が可能であるが、容量に制限があるので、ソフトウェアエンコーダやソフトウェアデコーダの全てのソフトウェアプログラムやデータを格納することが困難であることもある。これに対して、RAM１０３は、任意のソフトウェアプログラムやデータを格納可能であるが、それらの入出力が低速である。【０２１８】
CPU１０１は、自分自身に内蔵されるキャッシュメモリ１１１またはRAM１０３にソフトウェアプログラムやデータをロードし、それらを用いて符号化や復号の各種処理を行う。【０２１９】
バス１０４にはまた、入出力インタフェース１２０も接続されている。入出力インタフェース１２０には、キーボード、マウスなどよりなる入力部１２１、CRT（Cathode Ray Tube）、LCD（Liquid Crystal Display）などよりなるディスプレイ、並びにスピーカなどよりなる出力部１２２、ハードディスクなどより構成される記憶部１２３、モデムなどより構成される通信部１２４が接続されている。通信部１２４は、インターネットを含むネットワークを介しての通信処理を行う。【０２２０】
入出力インタフェース１２０にはまた、必要に応じてドライブ１２５が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア１３１が適宜装着され、それらから読み出されたソフトウェアプログラムが、必要に応じて記憶部１２３にインストールされる。なお、ソフトウェアプログラムは、ネットワークを介して通信部１２４よりインストールすることも可能である。【０２２１】
なお、図１８においては、パーソナルコンピュータ１００に、CPU１０１が４つ設けられているように説明したが、CPU１０１の数は任意である。ただし、後述するソフトウェアエンコーダやソフトウェアデコーダの実装方法によっては、CPU１０１の最小数に制限がある場合もあり、例えば、CPU１０１が２つ必要な場合や、４つ必要な場合もある。また、このCPU１０１−１乃至CPU１０１−４が、４つのコアを有する物理的には１つのCPU１０１であるものとしてもよい。その場合、各CPUコア（CPU１０１−１乃至CPU１０１−４）にキャッシュメモリ１１１−１乃至キャッシュメモリ１１１−４が設けられているものとしてもよいし、各CPUコアが共有する唯一のキャッシュメモリ１１１の、各CPUコアに割り当てられたキャッシュメモリ１１１の部分領域がキャッシュメモリ１１１−１乃至キャッシュメモリ１１１−４であるとしてもよい。【０２２２】
このような構成のパーソナルコンピュータ１００において、図３の符号化部１４や図１２の復号部３６を、不要に処理の効率を低下させたり、遅延時間を増大させたりしないように実装するためには、符号化部１４や復号部３６の各処理に対してCPU１０１やRAM１０３等のパーソナルコンピュータ１００のハードウェア資源を適切に割り当てる必要がある。以下にその割り当ての例について説明する。【０２２３】
図１９は、図３の符号化部１４に対するハードウェア資源の割り当ての例を示す図である。図１９に示される例においては、符号化部１４のウェーブレット変換部５１、係数並び替え部５４、およびエントロピ符号化部５５の全処理に対してCPU１０１−１が割り当てられ、途中計算用バッファ部５２および係数並び替え用バッファ部５３は、キャッシュメモリ１１１−１に形成される。【０２２４】
このとき、ウェーブレット変換部５１、係数並び替え部５４、およびエントロピ符号化部５５の各機能を実現するソフトウェアプログラムは、キャッシュメモリ１１１−１にロードされる。CPU１０１−１は、そのソフトウェアプログラムの関数を必要に応じてキャッシュメモリ１１１−１より読み出して実行する。【０２２５】
符号化される画像データの輝度成分である画像データＹと、色差成分である画像データＣは、RAM１０３に保持される。なお、実際には、色差成分にはCbとCrとがあるが、ここでは説明の簡略化のため、CbとCrをまとめてＣとする。なお、以下においては輝度成分Ｙと色差成分ＣよりなるYC（YCbCr）コンポーネントについて説明するが、Ｒ成分、Ｇ成分、およびＢ成分よりなるRGBコンポーネントの場合も同様である。【０２２６】
図１９の例の場合、画像データＹも画像データＣもCPU１０１−１において符号化される。つまり、CPU１０１−１は、ウェーブレット変換部５１の処理を実行することにより、RAM１０３より画像データＹを読み出してウェーブレット変換処理を行う。その際、CPU１０１−１は、キャッシュメモリ１１１−１の記憶領域の一部を途中計算用バッファ部５２として利用し、ウェーブレット変換処理の垂直方向および水平方向の分析フィルタリング処理において発生する中間データ（例えば、途中の分割レベルの低域成分）をその途中計算用バッファ部５２に保持させる。また、CPU１０１−１は、キャッシュメモリ１１１−１の記憶領域の、他の一部を係数並び替え用バッファ部５３として利用し、ウェーブレット変換により生成された係数データをその係数並び替え用バッファ部５３に保持させる。【０２２７】
CPU１０１−１は、係数並び替え部５４の処理を実行することにより、キャッシュメモリ１１１−１の係数並び替え用バッファ部５３に保持されている係数データを所定の順に並び替えながら読み出す。CPU１０１−１は、エントロピ符号化部５５の処理を実行することにより、係数並び替え部５４の処理により順序が並び替えられながらキャッシュメモリ１１１−１より読み出された係数データを符号化し、符号化データＹを生成する。CPU１０１−１は、生成した符号化データＹをRAM１０３に供給して格納させる。【０２２８】
CPU１０１−１は、画像データＣに対しても画像データＹの場合と同様に処理を行う。【０２２９】
図１９のように、パーソナルコンピュータ１００において符号化部１４を実装する場合、符号化部１４の全ての処理は、１つのCPU１０１において実行され、符号化処理中に発生するウェーブレット変換の中間データや係数データは、全てそのCPU１０１のキャッシュメモリ１１１に格納される。【０２３０】
このとき、例えば、他のCPU１０１−２乃至CPU１０１−４も、このCPU１０１−１と同様に符号化部１４に割り当てられるようにしてもよい。つまり、図１９に示されるCPU１０１−１の場合と同様に、ウェーブレット変換部５１、係数並び替え部５４、およびエントロピ符号化部５５の各機能を実現するソフトウェアプログラムは、キャッシュメモリ１１１−２乃至キャッシュメモリ１１１−４のそれぞれにもロードされる。CPU１０１−２乃至CPU１０１−４は、それぞれのキャッシュメモリ１１１よりそれらのソフトウェアプログラムを読み出して実行し、符号化部１４のウェーブレット変換部５１、係数並び替え部５４、およびエントロピ符号化部５５の各処理を実行する。このとき、キャッシュメモリ１１１−２乃至キャッシュメモリ１１１−４のそれぞれには、キャッシュメモリ１１１−１と同様に、途中計算用バッファ部５２および係数並び替え用バッファ部５３が形成される。【０２３１】
つまり、この場合、CPU１０１−１乃至CPU１０１−４により４つの符号化部１４が実現される。これらの符号化部１４は、例えば、符号化される動画像データのピクチャ毎に符号化処理が割り当てられる。つまり、この場合、CPU１０１−１乃至CPU１０１−４は、互いに異なるピクチャに対する符号化処理を互いに並行して実行する。その場合の処理の流れを図２０に模式的に示す。【０２３２】
図２０においては、図中縦方向上から下向きに時系列が示されており、各CPUにおいて実行される処理が四角で示されている。【０２３３】
図２０の例において、CPU１０１−１は、最初に、先頭のピクチャの先頭のプレシンクト（P1）の輝度成分Ｙである画像データＹをRAM１０３より読み出し、その画像データＹに対してキャッシュメモリ１１１−１に中間データを保持させながらウェーブレット変換を行い（P1DWT（Y））、得られた係数データをキャッシュメモリ１１１−１に保持させた後、その係数データに対して、順序の並び替えおよびエントロピ符号化を行う（P1VLC（Y））。このエントロピ符号化により生成された符号化データＹは、RAM１０３に蓄積される。次に、CPU１０１−１は、この先頭のプレシンクト（P1）の色差成分Ｃである画像データＣをRAM１０３より読み出し、その画像データＣに対してキャッシュメモリ１１１−１に中間データを保持させながらウェーブレット変換を行い（P1DWT（C））、得られた係数データをキャッシュメモリ１１１−１に保持させた後、その係数データに対して、順序の並び替えおよびエントロピ符号化を行う（P1VLC（C））。このエントロピ符号化により生成された符号化データＣは、RAM１０３に蓄積される。【０２３４】
この時点で、RAM１０３には、少なくとも１プレシンクト分以上の符号化データＹおよび符号化データＣが蓄積されるので、それら符号化データＹおよび符号化データＣの出力が開始される。【０２３５】
このように、CPU１０１−１およびキャッシュメモリ１１１−１において実現されるウェーブレット変換部５１乃至エントロピ符号化部５５は、画像データＹおよび画像データＣの両方に対して、互いに同様に処理を行ったり、データを保持したりする。換言するにCPU１０１−１およびキャッシュメモリ１１１−１は、画像データＹと画像データＣの何れに対しても同様に符号化に関する処理を行ったりデータを保持したりする。【０２３６】
先頭のプレシンクトに対する処理が終了すると、CPU１０１−１は、次に、先頭のピクチャの２番目のプレシンクト（P2）の画像データＹをRAM１０３より読み出し、その画像データＹに対してキャッシュメモリ１１１−１に中間データを保持させながらウェーブレット変換を行い（P2DWT（Y））、得られた係数データをキャッシュメモリ１１１−１に保持させた後、その係数データに対して、順序の並び替えおよびエントロピ符号化を行う（P2VLC（Y））。このエントロピ符号化により生成された符号化データＹは、RAM１０３に蓄積された後出力される。次に、CPU１０１−１は、２番目のプレシンクト（P2）の画像データＣをRAM１０３より読み出し、その画像データＣに対してキャッシュメモリ１１１−１に中間データを保持させながらウェーブレット変換を行い（P2DWT（C））、得られた係数データをキャッシュメモリ１１１−１に保持させた後、その係数データに対して、順序の並び替えおよびエントロピ符号化を行う（P2VLC（C））。このエントロピ符号化により生成された符号化データＣは、RAM１０３に蓄積された後出力される。【０２３７】
CPU１０１−１は、先頭のピクチャの３番目以降のプレシンクトに対しても同様に処理を行い、最後のｎ番目のプレシンクト（Pn）の画像データＹと画像データＣのそれぞれに対して、ウェーブレット変換、並びに、係数並び替えおよびエントロピ符号化を行う（PnDWT(Y),PnVLC(Y),PnDWT(C),PnVLC(C)）。得られた符号化データＹおよび符号化データＣは、それまでのプレシンクトと同様にRAM１０３に蓄積された後出力される。ｎ番目のプレシンクトの符号化データＣが出力されると、先頭のピクチャの符号化データは全て出力されたので、先頭のピクチャについて符号化データの出力が終了される。【０２３８】
このCPU１０１−１の処理と並行して、図２０に示されるように、CPU１０１−２は２番目のピクチャについて、CPU１０１−３は３番目のピクチャについて、CPU１０１−４は４番目のピクチャについて、それぞれ、先頭のプレシンクトからｎ番目のプレシンクトまで、CPU１０１の場合と同様にウェーブレット変換、並びに、係数並び替えおよびエントロピ符号化の各処理を行い、画像データＹおよび画像データＣより符号化データＹおよび符号化データＣを生成し、それらをRAM１０３に保持させた後出力させるようにすることができる。【０２３９】
つまり、この場合、CPU１０１−２およびキャッシュメモリ１１１−２、CPU１０１−３およびキャッシュメモリ１１１−３、並びに、CPU１０１−４およびキャッシュメモリ１１１−４のそれぞれも、CPU１０１−１およびキャッシュメモリ１１１−１と同様に、画像データＹと画像データＣの両方に対して同様に符号化に関する処理を行ったり、データを保持したりする。【０２４０】
この場合、CPU１０１−１は、先頭のピクチャに対する処理が終了すると次に５番目のピクチャに対して符号化処理を行う。そのCPU１０１−１の処理と並行してCPU１０１−２乃至CPU１０１−４も同様に、それぞれ６番目乃至８番目のピクチャに対して符号化処理を行う。なお、９番目以降のピクチャについても同様に処理される。【０２４１】
以上のように、図１９に示される割り当ての例の場合、符号化部１４は、４つのピクチャの符号化処理を同時に並行して行うことができる。さらに、この場合、一連の符号化処理の中でCPUの切り替えを行う必要がない。また、キャッシュメモリ１１１のみを用いてRAM１０３を使用せずに処理を行うことができるので、ウェーブレット変換部５１や係数並び替え部５４は、途中計算用バッファ部５２や係数並び替え用バッファ部５３へのデータの読み出しや書き込みも高速に行うことができる。従って、このようなハードウェア資源の割り当てにより、符号化部１４は、高速に画像データを符号化することができる。つまり、図１９に示される割り当ての例の場合、符号化部１４は、高スループットで符号化を行うことができる。また、パーソナルコンピュータ１００は、そのCPU１０１の数によらず（例えば１つであっても）、符号化部１４を実装することができる。【０２４２】
しかしながら、キャッシュメモリ１１１の容量は少ないので、同時に蓄積可能なデータ量に制限があり、符号化する画像データのデータ量や内容によっては、キャッシュメモリ１１１の容量が不足し、溢れが生じる恐れがあるので、図１９に示される割り当ての例は、符号化の実行に必要なバッファ量が多い場合には適用することができないこともある。【０２４３】
また、画像データＹの符号化も、画像データＣの符号化も１つのCPU１０１において行われるので、符号化処理が開始されてから先頭のプレシンクトの符号化データが符号化部１４より出力されるまでの時間、すなわち符号化処理の遅延時間が長い。従って、その符号化データが復号部３６において復号され、復元された画像データの画像がモニタに表示されるまでの遅延時間も長くなる。同様の理由により先頭のピクチャがモニタに表示されるまでの時間が長い。【０２４４】
図２１に、図３の符号化部１４に対するハードウェア資源の割り当ての、他の例を示す。図２１に示される例においては、図１９の場合と同様に、符号化部１４のウェーブレット変換部５１、係数並び替え部５４、およびエントロピ符号化部５５の全処理に、CPU１０１−１が割り当てられる。ただし、途中計算用バッファ部５２は、キャッシュメモリ１１１−１に形成されるものの、係数並び替え用バッファ部５３は、RAM１０３に形成される。【０２４５】
このとき、ウェーブレット変換部５１、係数並び替え部５４、およびエントロピ符号化部５５の各機能を実現するソフトウェアプログラムは、キャッシュメモリ１１１−１にロードされる。CPU１０１−１は、そのソフトウェアプログラムの関数を必要に応じてキャッシュメモリ１１１−１より読み出して実行する。【０２４６】
図２１の例の場合も、図１９の例の場合と同様に、画像データＹおよび画像データＣのいずれもCPU１０１−１において符号化される。つまり、CPU１０１−１は、ウェーブレット変換部５１の処理を実行することにより、RAM１０３より画像データＹを読み出してウェーブレット変換処理を行う。その際、CPU１０１−１は、キャッシュメモリ１１１−１の記憶領域の一部を途中計算用バッファ部５２として利用し、ウェーブレット変換処理の垂直方向および水平方向の分析フィルタリング処理において発生する中間データ（例えば、途中の分割レベルの低域成分）をその途中計算用バッファ部５２に保持させる。【０２４７】
ただし、図２１の例の場合、図１９の例の場合と異なり、CPU１０１−１は、RAM１０３の記憶領域の一部を係数並び替え用バッファ部５３として利用し、ウェーブレット変換により生成された係数データをその係数並び替え用バッファ部５３に保持させる。【０２４８】
CPU１０１−１は、係数並び替え部５４の処理を実行することにより、RAM１０３の係数並び替え用バッファ部５３に保持されている係数データを所定の順に並び替えながら読み出す。CPU１０１−１は、エントロピ符号化部５５の処理を実行することにより、係数並び替え部５４の処理により順序が並び替えられながらRAM１０３より読み出された係数データを符号化し、符号化データＹを生成する。CPU１０１−１は、生成した符号化データＹをRAM１０３に供給して格納させる。【０２４９】
CPU１０１−１は、画像データＣに対しても画像データＹの場合と同様に処理を行う。【０２５０】
図２１のように、パーソナルコンピュータ１００において符号化部１４を実装する場合、符号化部１４の全ての処理は、１つのCPU１０１において実行され、符号化処理中に発生するウェーブレット変換の中間データは、高速に動作する、そのCPU１０１のキャッシュメモリ１１１に格納され、ウェーブレット変換により生成される係数データは、大容量のRAM１０３に格納される。【０２５１】
このとき、例えば、他のCPU１０１−２乃至CPU１０１−４も、このCPU１０１−１と同様に符号化部１４に割り当てられるようにしてもよい。つまり、図２１の場合と同様に、ウェーブレット変換部５１、係数並び替え部５４、およびエントロピ符号化部５５の各機能を実現するソフトウェアプログラムは、キャッシュメモリ１１１−２乃至キャッシュメモリ１１１−４のそれぞれにもロードされる。CPU１０１−２乃至CPU１０１−４は、それぞれのキャッシュメモリ１１１よりそれらのソフトウェアプログラムを読み出して実行し、符号化部１４のウェーブレット変換部５１、係数並び替え部５４、およびエントロピ符号化部５５の各処理を実行する。このとき、キャッシュメモリ１１１−２乃至キャッシュメモリ１１１−４のそれぞれには、キャッシュメモリ１１１−１と同様に、途中計算用バッファ部５２が形成され、RAM１０３にはそれぞれの係数並び替え用バッファ部５３が形成される。【０２５２】
つまりこの場合、CPU１０１−１乃至CPU１０１−４により４つの符号化部１４が実現される。これらの符号化部１４は、例えば、符号化される動画像データのピクチャ毎に符号化処理が割り当てられる。つまり、この場合、CPU１０１−１乃至CPU１０１−４は、互いに異なるピクチャに対する符号化処理を互いに並行して実行する。その場合の処理の流れは、図１９の場合と同様に、図２０に模式的に示される。【０２５３】
以上のような図２１に示される割り当ての例の場合、係数並び替え用バッファ部５３がRAM１０３に形成されるため、図１９の割り当ての例の場合よりも、キャッシュメモリ１１１の多くを途中計算用バッファ部５２として使用することができる。つまり、途中計算用バッファ部５２の容量を大きくすることができる。また、係数並び替え用バッファ部５３の容量も大きくすることができる。つまり、図２１の例のように割り当てられた場合の方が、符号化部１４は、図１９のように割り当てられた場合よりも、バッファ溢れの発生を抑制することができ、より広範な条件下で実現可能である。【０２５４】
ただし、係数並び替え用バッファ部５３が、読み出しおよび書き込みがキャッシュメモリ１１１よりも低速なRAM１０３に形成されるため、図１９の割り当ての例の場合よりも、スループットは低下する。しかしながら、データの読み出しや書き込みの回数が多い途中計算用バッファ部５２は、高速に動作するキャッシュメモリ１１１に形成されるので、そのスループットの低下は少ない。【０２５５】
図２２に、図３の符号化部１４に対するハードウェア資源の割り当ての、さらに他の例を示す。図２２に示される例においては、図２１の割り当ての例よりさらに、画像データＹの符号化を行う符号化部と画像データＣの符号化を行う符号化部のそれぞれに対して、互いに異なるCPUが割り当てられている。つまり、画像データＹの符号化を行う符号化部のウェーブレット変換部５１−１、係数並び替え部５４−１、およびエントロピ符号化部５５−１の全処理に対してCPU１０１−１が割り当てられ、途中計算用バッファ部５２−１は、キャッシュメモリ１１１−１に形成され、係数並び替え用バッファ部５３−１は、RAM１０３に形成される。また、画像データＣの符号化を行う符号化部のウェーブレット変換部５１−２、係数並び替え部５４−２、およびエントロピ符号化部５５−２の全処理に対してCPU１０１−２が割り当てられ、途中計算用バッファ部５２−２は、キャッシュメモリ１１１−２に形成され、係数並び替え用バッファ部５３−２は、RAM１０３に形成される。【０２５６】
このとき、ウェーブレット変換部５１、係数並び替え部５４、およびエントロピ符号化部５５の各機能を実現するソフトウェアプログラムは、キャッシュメモリ１１１−１およびキャッシュメモリ１１１−２にロードされる。CPU１０１−１およびCPU１０１−２は、それぞれ、そのソフトウェアプログラムの関数を必要に応じてキャッシュメモリ１１１−１またはキャッシュメモリ１１１−２より読み出して実行する。【０２５７】
図２２の例の場合、画像データＹはCPU１０１−１において符号化され、画像データＣはCPU１０１−２において符号化される。つまり、CPU１０１−１は、画像データＹについて、図２１の例の場合と同様に、ウェーブレット変換部５１−１の処理を実行することにより、RAM１０３より画像データＹを読み出してウェーブレット変換処理を行う。その際、CPU１０１−１は、キャッシュメモリ１１１−１の記憶領域の一部を途中計算用バッファ部５２−１として利用し、ウェーブレット変換処理の垂直方向および水平方向の分析フィルタリング処理において発生する中間データをその途中計算用バッファ部５２−１に保持させる。【０２５８】
CPU１０１−１は、図２１の例の場合と同様に、RAM１０３の記憶領域の一部を係数並び替え用バッファ部５３−１として利用し、ウェーブレット変換により生成された係数データをその係数並び替え用バッファ部５３−１に保持させる。CPU１０１−１は、係数並び替え部５４−１の処理を実行することにより、RAM１０３の係数並び替え用バッファ部５３−１に保持されている係数データを所定の順に並び替えながら読み出す。CPU１０１−１は、エントロピ符号化部５５−１の処理を実行することにより、係数並び替え部５４−１の処理により順序が並び替えられながらRAM１０３より読み出された係数データを符号化し、符号化データＹを生成する。CPU１０１−１は、生成した符号化データＹをRAM１０３に供給して格納させる。【０２５９】
ただし、図２２の例の場合、図２１の例の場合と異なり、そのCPU１０１−１の処理と並行して、CPU１０１−２が、画像データＣについて、図２１の例の場合と同様に、ウェーブレット変換、係数並び替え、およびエントロピ符号化を行う。【０２６０】
図２２のように、パーソナルコンピュータ１００において符号化部１４を実装する場合、画像データＹおよび画像データＣに対する符号化部１４の全ての処理は、それぞれ互いに異なる１つのCPU１０１において実行され、それらの符号化処理中に発生するウェーブレット変換の中間データは、それぞれのCPU１０１に内蔵されるキャッシュメモリ１１１に格納され、それぞれのウェーブレット変換により生成される係数データは、ともにRAM１０３に格納される。つまり、２つのCPUを１組として符号化処理が行われる。【０２６１】
このとき、例えば、他のCPU１０１−３およびCPU１０１−４も、このCPU１０１−１およびCPU１０１−２と同様に、符号化部１４に割り当てられるようにしてもよい。つまり、図２２の場合と同様に、ウェーブレット変換部５１、係数並び替え部５４、およびエントロピ符号化部５５の各機能を実現するソフトウェアプログラムは、キャッシュメモリ１１１−３およびキャッシュメモリ１１１−４のそれぞれにもロードされる。CPU１０１−３およびCPU１０１−４は、それぞれのキャッシュメモリ１１１よりそれらのソフトウェアプログラムを読み出して実行し、符号化部１４のウェーブレット変換部５１、係数並び替え部５４、およびエントロピ符号化部５５の各処理を実行する。このとき、キャッシュメモリ１１１−３には、画像データＹ用の途中計算用バッファ部５２−１が形成され、キャッシュメモリ１１１−４には、画像データＣ用の途中計算用バッファ部５２−２が形成され、RAM１０３には、画像データＹ用の係数並び替え用バッファ部５３−１および画像データＣ用の係数並び替え用バッファ部５３−２の両方が形成される。【０２６２】
つまり、この場合、CPU１０１−１乃至CPU１０１−４により２つの符号化部１４が実現される。これらの符号化部１４は、例えば、符号化される動画像データのピクチャ毎に符号化処理が割り当てられる。例えば、CPU１０１−１およびCPU１０１−２が奇数番目のピクチャの符号化処理を行い、CPU１０１−３およびCPU１０１−４が偶数番目のピクチャの符号化処理を行うようにされる。その場合の処理の流れを図２３に示す。【０２６３】
図２３の例において、CPU１０１−１は、先頭のピクチャの先頭のプレシンクト（P1）の画像データＹをRAM１０３より読み出し、その画像データＹに対してキャッシュメモリ１１１−１に中間データを保持させながらウェーブレット変換を行い（P1DWT（Y））、得られた係数データをRAM１０３に保持させた後、その係数データに対して、順序の並び替えおよびエントロピ符号化を行う（P1VLC（Y））。このエントロピ符号化により生成された符号化データＹは、RAM１０３に蓄積される。そのCPU１０１−１の処理に並行して、CPU１０１−２は、先頭のピクチャの先頭のプレシンクト（P1）の画像データＣをRAM１０３より読み出し、その画像データＣに対してキャッシュメモリ１１１−２に中間データを保持させながらウェーブレット変換を行い（P1DWT（C））、得られた係数データをRAM１０３に保持させた後、その係数データに対して、順序の並び替えおよびエントロピ符号化を行う（P1VLC（C））。このエントロピ符号化により生成された符号化データＣも、RAM１０３に蓄積される。【０２６４】
従って、この場合の符号化部１４は、CPU１０１−１およびCPU１０１−２が先頭のプレシンクトについてエントロピ符号化を終了した時点で、RAM１０３に１プレシンクト分以上の符号化データ（符号化データＹおよび符号化データＣ）が蓄積されるので、符号化データの出力を開始することができる。【０２６５】
２番目以降のプレシンクトについても同様に、画像データＹは、CPU１０１−１により符号化され、それと並行して、画像データＣは、CPU１０１−２により符号化される。最後のｎ番目のプレシンクト（Pn）の画像データＹおよび画像データＣが符号化され、符号化データＹおよび符号化データＣが出力されると、先頭のピクチャの符号化データは全て出力されたので、先頭のピクチャについて符号化データの出力が終了される。【０２６６】
このCPU１０１−１およびCPU１０１−２の処理と並行して、図２３に示されるように、CPU１０１−３およびCPU１０１−４により２番目のピクチャについて、CPU１０１−１およびCPU１０１−２の処理と同様の符号化処理を行うようにすることができる。つまり、この場合、CPU１０１−３は２番目のピクチャの画像データＹについて符号化を行い、CPU１０１−４は２番目のピクチャの画像データＣについて符号化を行う。【０２６７】
この場合、CPU１０１−１およびCPU１０１−２は、先頭のピクチャに対する処理を終了すると、次に、３番目のピクチャに対して復号処理を行う。そのCPU１０１−１およびCPU１０１−２の処理と並行して、CPU１０１−３およびCPU１０１−４も同様に４番目のピクチャに対して復号処理を行う。５番目以降のピクチャについても同様に処理される。【０２６８】
以上のように、図２２に示される割り当ての例の場合、画像データＹと画像データＣを並行して符号化することにより、図１９や図２１の例の場合よりも、符号化データの出力開始タイミング、すなわち、先頭のプレシンクトの符号化データＹおよび符号化データＣの出力タイミングを早めることができるので、符号化処理の遅延時間を低減させることができる。付言するに、同様の理由から、図２２に示される割り当ての例の場合の方が、図１９や図２１の例の場合よりも速く、先頭ピクチャの符号化を完了させることができる。
従って、符号化部１４において符号化された符号化データを復号部３６において順次復号し、復元された画像データの画像をモニタに表示させる場合、符号化が開始されてから最初のピクチャが表示されるまでの遅延時間は、図２２に示される割り当ての例の場合の方が、図１９や図２１の例の場合よりも短くなる。【０２６９】
また、図２１の例の場合と同様に、途中計算用バッファ部５２がキャッシュメモリ１１１に形成され、係数並び替え用バッファ部５３がRAM１０３に形成されるので、図１９の例の場合よりも、途中計算用バッファ部５２および係数並び替え用バッファ部５３の容量を大きくすることができ、バッファ溢れの発生を抑制することができ、さらにスループットの低下を小さくすることができる。【０２７０】
なお、図２２の例の場合、画像データＹのウェーブレット変換の中間データと、画像データＣのウェーブレット変換の中間データとが、互いに異なるキャッシュメモリ１１１に蓄積されるので、図２１の例の場合よりも、途中計算用バッファ部５２の容量をさらに大きくすることができ、バッファ溢れの発生をより抑制することができる。【０２７１】
ただし、実際には、画像データＹの方が画像データＣよりも情報量が多く絵が複雑であるので、符号化処理に要する時間が長い。従って、CPU１０１−２に待機時間が発生するので、CPU１０１の使用効率は図２１の場合よりも低下し、スループットも図２１の場合よりも低下する。【０２７２】
図２４に、図３の符号化部１４に対するハードウェア資源の割り当ての、さらに他の例を示す。図２４に示される例においては、図２２の割り当ての例よりさらに、ウェーブレット変換部５１と、係数並び替え部５４およびエントロピ符号化部５５のそれぞれに対して互いに異なるCPU１０１が割り当てられている。【０２７３】
つまり、画像データＹのウェーブレット変換処理を行うウェーブレット変換部５１−１に対して、CPU１０１−１が割り当てられ、画像データＹの係数データの係数並び替えを行う係数並び替え部５４−１、および、画像データＹの係数データのエントロピ符号化を行うエントロピ符号化部５５−１に対して、CPU１０１−２が割り当てられる。途中計算用バッファ部５２−１は、CPU１０１−１のキャッシュメモリ１１１−１に形成され、係数並び替え用バッファ部５３−１は、RAM１０３に形成される。【０２７４】
同様に、画像データＣのウェーブレット変換処理を行うウェーブレット変換部５１−２に対して、CPU１０１−３が割り当てられ、画像データＣの係数データの係数並び替えを行う係数並び替え部５４−２、および、画像データＣの係数データのエントロピ符号化を行うエントロピ符号化部５５−２に対して、CPU１０１−４が割り当てられる。途中計算用バッファ部５２−２は、CPU１０１−３のキャッシュメモリ１１１−３に形成され、係数並び替え用バッファ部５３−２は、RAM１０３に形成される。【０２７５】
このとき、ウェーブレット変換部５１の機能を実現するソフトウェアプログラムは、キャッシュメモリ１１１−１およびキャッシュメモリ１１１−３にロードされ、係数並び替え部５４およびエントロピ符号化部５５の各機能を実現するソフトウェアプログラムは、キャッシュメモリ１１１−２およびキャッシュメモリ１１１−４にロードされる。CPU１０１−１乃至CPU１０１−４は、それぞれ、それらのソフトウェアプログラムの関数を、必要に応じて、それぞれのキャッシュメモリ１１１より読み出して実行する。【０２７６】
図２４の例の場合、画像データＹはCPU１０１−１およびCPU１０１−２において符号化され、画像データＣはCPU１０１−３およびCPU１０１−４において符号化される。つまり、CPU１０１−１は、画像データＹについて、ウェーブレット変換部５１−１の処理を実行することにより、RAM１０３より画像データＹを読み出してウェーブレット変換処理を行う。その際、CPU１０１−１は、キャッシュメモリ１１１−１の記憶領域の一部を途中計算用バッファ部５２として利用し、ウェーブレット変換処理の垂直方向および水平方向の分析フィルタリング処理において発生する中間データをその途中計算用バッファ部５２に保持させる。【０２７７】
CPU１０１−１は、図２２の例の場合と同様に、RAM１０３の記憶領域の一部を係数並び替え用バッファ部５３として利用し、ウェーブレット変換により生成された係数データをその係数並び替え用バッファ部５３に保持させる。【０２７８】
ただし、図２４の例の場合、図２２の例の場合と異なり、CPU１０１−２が、係数並び替え部５４の処理を実行することにより、CPU１０１−１が生成し、RAM１０３の係数並び替え用バッファ部５３に保持されている係数データを所定の順に並び替えながら読み出す。CPU１０１−２は、エントロピ符号化部５５の処理を実行することにより、係数並び替え部５４の処理により順序が並び替えられながらRAM１０３より読み出された係数データを符号化し、符号化データＹを生成する。CPU１０１−２は、生成した符号化データＹをRAM１０３に供給して格納させる。【０２７９】
このCPU１０１−１およびCPU１０１−２の処理と並行して、CPU１０１−３およびCPU１０１−４が、画像データＣについて、図２２の例の場合と同様に、ウェーブレット変換、係数並び替え、およびエントロピ符号化を行う。【０２８０】
図２４のように、パーソナルコンピュータ１００において符号化部１４を実装する場合、CPU１０１−１乃至CPU１０１−４の４つのCPUを１組として符号化処理が行われる。従って、この場合、CPU１０１−１乃至CPU１０１−４により１つの符号化部１４が実現される。当然、この符号化部１４は、符号化される動画像データの全てのピクチャの符号化処理を行うようにされる。その場合の処理の流れを図２５に示す。【０２８１】
CPU１０１−１乃至CPU１０１−４は、互いに独立して動作するので、図２５に示される例のように、各処理を並行して実行することができる。【０２８２】
図２５に示される例においては、CPU１０１−１は、先頭のピクチャの先頭のプレシンクト（P1）の画像データＹをRAM１０３より読み出し、その画像データＹに対してキャッシュメモリ１１１−１に中間データを保持させながらウェーブレット変換を行い（P1DWT（Y））、得られた係数データをRAM１０３に格納する。【０２８３】
係数データをRAM１０３に格納すると、CPU１０１−１は、続けて、先頭のピクチャの２番目のプレシンクト（P1）の画像データＹをRAM１０３より読み出し、その画像データＹに対してキャッシュメモリ１１１−１に中間データを保持させながらウェーブレット変換を行い（P2DWT（Y））、得られた係数データをRAM１０３に格納する。このとき、CPU１０１−２は、そのCPU１０１−１のP2DWT（Y）の処理と並行して、RAM１０３に格納された先頭のプレシンクト（P1）の係数データを読み出し、順序の並び替えおよびエントロピ符号化を行う（P1VLC（Y））。得られた符号化データＹをRAM１０３に格納すると、CPU１０１−２は、続けて、RAM１０３に格納された２番目のプレシンクト（P1）の係数データを読み出し、順序の並び替えおよびエントロピ符号化を行う（P2VLC（Y））。【０２８４】
つまり、CPU１０１−１およびCPU１０１−２は、処理対象を互いに１プレシンクト分ずらして、ウェーブレット変換と、係数並び替えおよびエントロピ符号化を並行して実行する。３番目以降のプレシンクトについても同様に、ウェーブレット変換と、係数並び替えおよびエントロピ符号化が並行して実行される。【０２８５】
なお、この画像データＹに対する符号化処理と並行して、CPU１０１−３およびCPU１０１−４は、画像データＣに対して同様に処理を行う。つまり、CPU１０１−１がP1DWT（Y）の処理を実行するのと並行して、CPU１０１−３がP1DWT（C）の処理を実行し、CPU１０１−１がP2DWT（Y）の処理を実行するのと並行して、CPU１０１−３がP2DWT（C）の処理を実行し、CPU１０１−４がP1VLC（C）の処理を実行する。【０２８６】
従って、この場合の符号化部１４は、CPU１０１−２およびCPU１０１−４が先頭のプレシンクトについてエントロピ符号化を終了した時点で、RAM１０３に１プレシンクト分以上の符号化データ（符号化データＹおよび符号化データＣ）が蓄積されるので、符号化データの出力を開始することができる。【０２８７】
２番目以降のプレシンクトについても同様に、画像データＹは、CPU１０１−１およびCPU１０１−２により符号化され、それと並行して、画像データＣは、CPU１０１−３およびCPU１０１−４により符号化される。最後のｎ番目のプレシンクト（Pn）の画像データＹおよび画像データＣが符号化され、符号化データＹおよび符号化データＣが出力されると、先頭のピクチャの符号化データは全て出力されたので、先頭のピクチャについて符号化データの出力が終了される。【０２８８】
２番目以降のピクチャについても同様に処理される。【０２８９】
以上のように、図２４に示される割り当ての例の場合、図２２の例の場合と同様に、符号化データの出力開始タイミングを早くすることができ、遅延時間を低減させることができる。付言するに、図２５に示されるように、図２４に示される割り当ての例の場合、符号化部１４は、図２２の例の場合よりも速く、最初のピクチャの符号化を行うことができるので、符号化部１４において符号化された符号化データを復号部３６において順次復号し、復元された画像データの画像をモニタに表示させる場合、符号化が開始されてから最初のピクチャが表示されるまでの遅延時間を短くすることができる。【０２９０】
また、図２１の例の場合と同様に、途中計算用バッファ部５２がキャッシュメモリ１１１に形成され、係数並び替え用バッファ部５３がRAM１０３に形成されるので、図１９の例の場合よりも、途中計算用バッファ部５２および係数並び替え用バッファ部５３の容量を大きくすることができ、バッファ溢れの発生を抑制することができ、さらにスループットの低下を小さくすることができる。【０２９１】
さらに、図２４の例の場合、図２２の例の場合と同様に、画像データＹのウェーブレット変換の中間データと、画像データＣのウェーブレット変換の中間データとが、互いに異なるキャッシュメモリ１１１に蓄積されるので、図２１の例の場合よりも、途中計算用バッファ部５２の容量をさらに大きくすることができ、バッファ溢れの発生をより抑制することができる。【０２９２】
ただし、実際には、画像データＹの方が画像データＣよりも情報量が多く絵が複雑であるので、符号化処理に要する時間が長い。従って、CPU１０１−３およびCPU１０１−４に待機時間が発生する。さらに、符号化処理の途中でCPU１０１が切り替わるので制御が複雑になるとともに処理時間も増大する。従って、CPU１０１の使用効率は図２２の場合よりもさらに低下し、スループットも図２２の場合よりもさらに低下する。【０２９３】
ウェーブレット変換、係数並び替え、およびエントロピ符号化の各処理は、それぞれ複数の関数により構成されているので、上述したようなウェーブレット変換と係数並び替えの間以外のところで割り当てるCPU１０１を変更するようにすることも可能であるが、並列に実行可能な処理でなければ互いに異なるCPU１０１が割り当てられるようにしても処理時間を短縮することはできない。図３に示される符号化部１４において、ウェーブレット変換部５１の処理に含まれる詳細な処理を並列化することは困難である。また、係数並び替えは、係数並び替え用バッファ部５３からの係数データの読み出しであるので、この係数並び替えとエントロピ符号化に互いに異なるCPU１０１を割り当てると、さらにCPU１０１間で係数データの転送も必要になるので、処理が非効率になる。従って、符号化部１４においては、上述したように、ウェーブレット変換と、係数並び替えおよびエントロピ符号化とで分けるのが理想的である。【０２９４】
従来あるコンピュータのように、コンピュータが自動的に処理を実行するCPUを割り当てる場合、負荷状況等に応じて割り当てを行うため、このように最適な位置で処理を分割し、互いに異なるCPUに割り当てるとは限らず、場合によっては符号化処理の効率が大幅に低減してしまう恐れがある。予め、図２５の例のように、ウェーブレット変換と、係数並び替えおよびエントロピ符号化との間で処理を分割するようにすることにより、符号化部１４は、効率よく符号化処理を実行することができる。【０２９５】
図２６は、図１２の復号部３６に対するハードウェア資源の割り当ての例を示す図である。図２６に示される例においては、図１９の符号化部１４の例の場合と同様に、復号部３６のエントロピ復号部６１およびウェーブレット逆変換部６３の全処理に対してCPU１０１−１が割り当てられ、係数バッファ部６２は、キャッシュメモリ１１１−１に形成される。【０２９６】
このとき、エントロピ復号部６１およびウェーブレット逆変換部６３の各機能を実現するソフトウェアプログラムは、キャッシュメモリ１１１−１にロードされる。CPU１０１−１は、そのソフトウェアプログラムの関数を必要に応じてキャッシュメモリ１１１−１より読み出して実行する。【０２９７】
復号される符号化データＹと符号化データＣは、RAM１０３に保持される。【０２９８】
図２６の例の場合、符号化データＹも符号化データＣもCPU１０１−１において復号される。つまり、CPU１０１−１は、エントロピ復号部６１の処理を実行することにより、RAM１０３より符号化データＹを読み出してエントロピ復号を行う。CPU１０１−１は、キャッシュメモリ１１１−１の記憶領域の一部または全部を係数バッファ部６２として利用し、エントロピ復号により生成された係数データをその係数バッファ部６２に保持させる。【０２９９】
CPU１０１−１は、ウェーブレット逆変換部６３の処理を実行することにより、キャッシュメモリ１１１−１の係数バッファ部６２に保持されている係数データを読み出し、ウェーブレット逆変換処理を行い、画像データＹを復元する。CPU１０１−１は、復元した画像データＹをRAM１０３に供給して格納させる。【０３００】
CPU１０１−１は、画像データＣに対しても画像データＹの場合と同様に処理を行う。【０３０１】
図２６のように、パーソナルコンピュータ１００において符号化部１４を実装する場合、復号部３６の全ての処理は、１つのCPU１０１において実行され、エントロピ復号処理により生成される係数データは、そのCPU１０１のキャッシュメモリ１１１に格納される。【０３０２】
このとき、例えば、他のCPU１０１−２乃至CPU１０１−４も、このCPU１０１−１と同様に復号部３６に割り当てられるようにしてもよい。つまり、図２６に示されるCPU１０１−１の場合と同様に、エントロピ復号部６１およびウェーブレット逆変換部６３の各機能を実現するソフトウェアプログラムは、キャッシュメモリ１１１−２乃至キャッシュメモリ１１１−４のそれぞれにもロードされる。CPU１０１−２乃至CPU１０１−４は、それぞれのキャッシュメモリ１１１よりそれらのソフトウェアプログラムを読み出して実行し、復号部３６のエントロピ復号部６１およびウェーブレット逆変換部６３を実行する。このとき、キャッシュメモリ１１１−２乃至キャッシュメモリ１１１−４のそれぞれには、キャッシュメモリ１１１−１と同様に、係数バッファ部６２が形成される。【０３０３】
つまり、この場合、CPU１０１−１乃至CPU１０１−４により４つの復号部３６が実現される。これらの復号部３６は、例えば、符号化データの符号化前の画像データのピクチャ毎に割り当てられる。つまり、この場合、CPU１０１−１乃至CPU１０１−４は、互いに異なるピクチャに対する復号処理を互いに並行して実行する。その場合の処理の流れを図２７に模式的に示す。【０３０４】
図２７に示されるように、エントロピ復号部６１の処理を実行するCPU１０１−１は、RAM１０３より先頭のピクチャの先頭のプレシンクトの符号化データＹを読み出してエントロピ復号を行い（P1VLD（Y））、得られた係数データを、キャッシュメモリ１１１−１の係数バッファ部６２に格納させる。次に、ウェーブレット逆変換部６３の処理を実行するCPU１０１−１は、その係数バッファ部６２より係数データを読み出し、ウェーブレット逆変換を行い（P1DWT（Y））、得られた画像データＹをRAM１０３に供給して保持させる。画像データＹについて処理が終了すると、CPU１０１−１は、次に符号化データＣについて同様の処理を行う（P1VLD(C),P1DWT(C)）。【０３０５】
この時点で、RAM１０３には、少なくとも１プレシンクト分以上の画像データＹおよび画像データＣが蓄積されるので、それら画像データＹおよび画像データＣの出力が開始される。【０３０６】
先頭のプレシンクトに対して復号処理が終了すると、CPU１０１−１は、２番目以降のプレシンクトに対して復号処理を同様に行う（P2VLD(Y),P2DWT(Y),P2VLD(C),P2DWT(C),・・・）。【０３０７】
図２７に示されるように、このCPU１０１−１の処理と並行して、CPU１０１−２は２番目のピクチャについて、CPU１０１−３は３番目のピクチャについて、CPU１０１−４は４番目のピクチャについて、同様の復号処理を行うこともできる。この場合、CPU１０１−１は、先頭のピクチャに対する処理が終了すると、次に、５番目のピクチャに対して復号処理を行う。そのCPU１０１−１の処理と並行して、CPU１０１−２乃至CPU１０１−４も同様に、それぞれ６番目乃至８番目のピクチャに対して復号処理を行う。なお、９番目以降のピクチャについても同様に処理される。【０３０８】
つまり、このように図２６に示される割り当ての場合、復号部３６は４つのピクチャの復号処理を同時に並行して行うことができる。さらに、この場合、一連の復号処理の中でCPUの切り替えを行う必要が無い。また、キャッシュメモリ１１１のみを用いてRAM１０３を使用せずに処理を行うことができるので、復号部３６は、高速に符号化データを復号することができる。つまり復号部３６は、高スループットで復号処理を行うことができる。
また、パーソナルコンピュータ１００は、そのCPU１０１の数によらず（例えば１つであっても）、復号部３６を実装することができる。【０３０９】
しかしながら、キャッシュメモリ１１１の容量は少ないので、同時に蓄積可能なデータ量に制限があり、復号する符号化データのデータ量や内容によっては、キャッシュメモリ１１１の容量が不足し、溢れが生じる恐れがあるので、図２６に示される割り当ての例は、復号の実行に必要なバッファ量が多い場合には適用することができないこともある。【０３１０】
図２８は、図１２の復号部３６に対するハードウェア資源の割り当ての、他の例を示す図である。図２８に示される例においては、符号化データＹの復号を行う復号部と、符号化データＣの復号を行う復号部のそれぞれに対して互いに異なるCPUが割り当てられている。【０３１１】
つまり、符号化データＹの復号を行う復号部のエントロピ復号部６１−１およびウェーブレット逆変換部６３−１の全処理に対して、CPU１０１−１が割り当てられ、係数バッファ部６２−１はキャッシュメモリ１１１−１に形成される。また、符号化データＣの復号を行う復号部のエントロピ復号部６１−２およびウェーブレット逆変換部６３−２の全処理に対してCPU１０１−２が割り当てられ、係数バッファ部６２−２はキャッシュメモリ１１１−２に形成される。【０３１２】
このときエントロピ復号部６１およびウェーブレット逆変換部６３の各機能を実現するソフトウェアプログラムは、キャッシュメモリ１１１−１およびキャッシュメモリ１１１−２にロードされる。CPU１０１−１およびCPU１０１−２は、それぞれ、そのソフトウェアプログラムの関数を必要に応じてキャッシュメモリ１１１−１またはキャッシュメモリ１１１−２に読み出して実行する。【０３１３】
図２８の例の場合、符号化データＹはCPU１０１−１において復号され、符号化データＣは、CPU１０１−２において復号される。つまり、CPU１０１−１は、エントロピ復号部６１−１の処理を実行することにより、RAM１０３より符号化データＹを読み出してエントロピ復号を行う。CPU１０１−１は、キャッシュメモリ１１１−１の記憶領域の一部または全部を係数バッファ部６２−１として利用し、エントロピ復号により生成された係数データをその係数バッファ部６２−１に保持させる。【０３１４】
CPU１０１−１は、ウェーブレット逆変換部６３−１の処理を実行することにより、キャッシュメモリ１１１−１の係数バッファ部６２−１に保持されている係数データを読み出し、ウェーブレット逆変換処理を行い、画像データＹを復元する。CPU１０１−１は、復元した画像データＹをRAM１０３に供給して格納させる。【０３１５】
CPU１０１−２は、エントロピ復号部６１−２の処理を実行することにより、RAM１０３より符号化データＣを読み出してエントロピ復号を行う。CPU１０１−２は、キャッシュメモリ１１１−２の記憶領域の一部または全部を係数バッファ部６２−２として利用し、エントロピ復号により生成された係数データをその係数バッファ部６２−２に保持させる。【０３１６】
CPU１０１−２は、ウェーブレット逆変換部６３−２の処理を実行することにより、キャッシュメモリ１１１−２の係数バッファ部６２−２に保持されている係数データを読み出し、ウェーブレット逆変換処理を行い、画像データＣを復元する。CPU１０１−２は、復元した画像データＣをRAM１０３に供給して格納させる。【０３１７】
図２８のように、パーソナルコンピュータ１００において符号化部１４を実装する場合、画像データＹおよび画像データＣに対する復号部３６の全ての処理は、それぞれ互いに異なる１つのCPU１０１において実行され、エントロピ復号により発生する係数データは、それぞれのCPU１０１に内蔵されるキャッシュメモリ１１１に格納され、ウェーブレット逆変換により復元される画像データＹおよび画像データＣは、ともにRAM１０３に格納される。つまり、２つのCPUを１組として符号化処理が行われる。【０３１８】
このとき、例えば、他のCPU１０１−３およびCPU１０１−４も、このCPU１０１−１およびCPU１０１−２と同様に、復号部３６に割り当てられるようにしてもよい。つまり、図２８のCPU１０１−１およびCPU１０１−２の場合と同様に、エントロピ復号部６１およびウェーブレット逆変換部６３の各機能を実現するソフトウェアプログラムは、キャッシュメモリ１１１−３およびキャッシュメモリ１１１−４のそれぞれにもロードされる。CPU１０１−３およびCPU１０１−４は、それぞれのキャッシュメモリ１１１よりそれらのソフトウェアプログラムを読み出して実行し、復号部３６のエントロピ復号部６１およびウェーブレット逆変換部６３の各処理を実行する。このとき、キャッシュメモリ１１１−３には、符号化データＹ用の係数バッファ部６２−１が形成され、キャッシュメモリ１１１−４には、符号化データＣ用の係数バッファ部６２−２が形成される。【０３１９】
つまり、この場合、CPU１０１−１乃至CPU１０１−４により２つの復号部３６が実現される。これらの復号部３６は、例えば、符号化データの符号化前の画像データのピクチャ毎に割り当てられる。例えば、CPU１０１−１およびCPU１０１−２が奇数番目のピクチャの復号処理を行い、CPU１０１−３およびCPU１０１−４が偶数番目のピクチャの復号処理を行うようにされる。その場合の処理の流れを図２９に示す。【０３２０】
この場合、図２９に示されるように、エントロピ復号部６１−１の処理を実行するCPU１０１−１は、RAM１０３より先頭のピクチャの先頭のプレシンクトの符号化データＹを読み出してエントロピ復号を行い（P1VLD（Y））、得られた係数データを、キャッシュメモリ１１１−１の係数バッファ部６２−１に格納させる。次に、ウェーブレット逆変換部６３−１の処理を実行するCPU１０１−１は、その係数バッファ部６２−１より係数データを読み出し、ウェーブレット逆変換を行い（P1DWT（Y））、得られた画像データＹをRAM１０３に供給して保持させる。【０３２１】
この処理と並行して、エントロピ復号部６１−２の処理を実行するCPU１０１−２は、RAM１０３より先頭のピクチャの先頭のプレシンクトの符号化データＣを読み出してエントロピ復号を行い（P1VLD（C））、得られた係数データを、キャッシュメモリ１１１−２の係数バッファ部６２−２に格納させる。次に、ウェーブレット逆変換部６３−２の処理を実行するCPU１０１−１は、その係数バッファ部６２−２より係数データを読み出し、ウェーブレット逆変換を行い（P1DWT（C））、得られた画像データＣをRAM１０３に供給して保持させる。【０３２２】
従って、この場合の復号部３６は、CPU１０１−１およびCPU１０１−２が先頭のプレシンクトについてウェーブレット逆変換を終了した時点で、RAM１０３に１プレシンクト分以上の画像データ（画像データＹおよび画像データＣ）が蓄積されるので、画像データの出力を開始することができる。【０３２３】
２番目以降のプレシンクトについても同様に、符号化データＹはCPU１０１−１により、符号化データＣはCPU１０１−２により、互いに並行して復号される。【０３２４】
このCPU１０１−１およびCPU１０１−２の処理と並行して、CPU１０１−３およびCPU１０１−４により２番目のピクチャについてCPU１０１−１およびCPU１０１−２の処理と同様の復号処理を行うようにすることができる。この場合、CPU１０１−３は２番目のピクチャの符号化データＹについて復号を行い、CPU１０１−４は２番目のピクチャの符号化データＣについて復号を行う。【０３２５】
この場合、CPU１０１−１およびCPU１０１−２は、先頭のピクチャに対する処理を終了すると、次に、３番目のピクチャに対して復号処理を行う。そのCPU１０１−１およびCPU１０１−２の処理と並行して、CPU１０１−３およびCPU１０１−４も同様に４番目のピクチャに対して復号処理を行う。５番目以降のピクチャについても同様に処理される。【０３２６】
従って、図２８に示される割り当ての例の場合、符号化データＹと符号化データＣを並行して復号することにより、図２６の例の場合よりも、復元された画像データの出力開始タイミング、すなわち、先頭のプレシンクトの画像データＹおよび画像データＣの出力タイミングを早くすることができるので、復号処理の遅延時間を低減させることができる。
付言するに、同様の理由から、図２８に示される割り当ての例の場合の方が、図２６の例の場合よりも速く、先頭ピクチャの復号を完了させることができる。従って、復号部３６において復元された画像データの画像をモニタに表示させる場合、復号処理が開始されてから最初のピクチャが表示されるまでの遅延時間は、図２８に示される割り当ての例の場合の方が、図２６の例の場合よりも短くなる。【０３２７】
また、符号化データＹが復号されて得られる係数データと、符号化データＣが復号されて得られる係数データとが、互いに異なるキャッシュメモリ１１１に蓄積されるので、図２６の例の場合よりも、係数バッファ部６２の容量を大きくすることができ、バッファ溢れの発生をより抑制することができる。【０３２８】
なお、画像データＹの方が画像データＣよりも情報量が多く絵が複雑であるので、復号処理に要する時間が長い。従って、CPU１０１−３やCPU１０１−４に待機時間が発生するので、CPU１０１の使用効率は図２６の例の場合よりも低下し、スループットも図２６の場合よりも低下する。【０３２９】
図３０に、図１２の復号部３６の割り当ての、さらに他の例を示す。図３０に示される例においては、図２８の割り当ての例よりさらに、エントロピ復号部６１と、ウェーブレット逆変換部６３のそれぞれに対して互いに異なるCPU１０１が割り当てられている。【０３３０】
つまり、符号化データＹを復号するエントロピ復号部６１−１に対して、CPU１０１−１が割り当てられ、エントロピ復号部６１−１において生成された係数データのウェーブレット逆変換処理を行うウェーブレット逆変換部６３−１に対して、CPU１０１−２が割り当てられている。係数バッファ部６２−１は、キャッシュメモリ１１１−２に形成される。【０３３１】
同様に、符号化データＣを復号するエントロピ復号部６１−２に対して、CPU１０１−３が割り当てられ、エントロピ復号部６１−２において生成された係数データのウェーブレット逆変換処理を行うウェーブレット逆変換部６３−２に対して、CPU１０１−４が割り当てられている。係数バッファ部６２−２は、キャッシュメモリ１１１−４に形成される。【０３３２】
このとき、エントロピ復号部６１の機能を実現するソフトウェアプログラムは、キャッシュメモリ１１１−１およびキャッシュメモリ１１１−３にロードされ、ウェーブレット逆変換部６３の各機能を実現するソフトウェアプログラムは、キャッシュメモリ１１１−２およびキャッシュメモリ１１１−４にロードされる。CPU１０１−１乃至CPU１０１−４は、それぞれ、それらのソフトウェアプログラムの関数を、必要に応じて、それぞれのキャッシュメモリ１１１より読み出して実行する。【０３３３】
図３０の例の場合、符号化データＹはCPU１０１−１およびCPU１０１−２において復号され、符号化データＣはCPU１０１−３およびCPU１０１−４において復号される。つまり、CPU１０１−１は、符号化データＹについて、エントロピ復号部６１−１の処理を実行することにより、RAM１０３より符号化データＹを読み出してエントロピ復号処理を行う。その際、CPU１０１−１は、キャッシュメモリ１１１−２の記憶領域の一部または全部を係数バッファ部６２として利用し、生成した係数データをその係数バッファ部６２に保持させる。【０３３４】
CPU１０１−２は、ウェーブレット逆変換部６３−１の処理を実行することにより、CPU１０１−１が生成し、RAM１０３の係数バッファ部６２に保持されている係数データを読み出し、ウェーブレット変換処理として階層的に垂直方向および水平方向に合成フィルタリング処理を行い、画像データＹを生成する。CPU１０１−２は、生成した画像データＹをRAM１０３に供給して格納させる。【０３３５】
このCPU１０１−１およびCPU１０１−２の処理と並行して、CPU１０１−３およびCPU１０１−４が、画像データＣについて、図３０の例の場合と同様に、エントロピ復号処理およびウェーブレット逆変換処理を行う。【０３３６】
図３０の例のように、パーソナルコンピュータ１００において復号部３６を実装する場合、CPU１０１−１乃至CPU１０１−４の４つのCPUを１組として復号処理が行われる。従って、この場合、CPU１０１−１乃至CPU１０１−４により１つの復号部３６が実現される。当然、この復号部３６は、復号されて復元される動画像データの全てのピクチャの符号化処理を行うようにされる。その場合の処理の流れを図３１に示す。【０３３７】
CPU１０１−１乃至CPU１０１−４は、互いに独立して動作するので、図３１に示される例のように、各処理を並行して実行することができる。【０３３８】
この場合、図３１に示されるように、エントロピ復号部６１−１の処理を実行するCPU１０１−１は、RAM１０３より先頭のピクチャの先頭のプレシンクトの符号化データＹを読み出してエントロピ復号を行い（P1VLD（Y））、得られた係数データを、キャッシュメモリ１１１−２の係数バッファ部６２−１に格納させる。エントロピ復号部６１−１の処理を実行するCPU１０１−１は、２番目のプレシンクトの符号化データＹに対して同様にエントロピ復号（P2VLD（Y））を行う。【０３３９】
このP2VLD（Y）に並行して、ウェーブレット逆変換部６３−１の処理を実行するCPU１０１−２は、係数バッファ部６２−１より、先頭のピクチャの先頭のプレシンクトの係数データを読み出し、ウェーブレット逆変換（P1DWT（Y））を行い、得られた画像データＹを、RAM１０３に保持させた後出力させる。ウェーブレット逆変換部６３−１の処理を実行するCPU１０１−２は、２番目のプレシンクトの係数データに対して同様にウェーブレット逆変換（P2DWT（Y））を行う。【０３４０】
CPU１０１−１およびCPU１０１−２は、３番目以降のプレシンクトに対しても、同様に、処理対象を互いに１プレシンクト分ずらして、エントロピ復号と、ウェーブレット逆変換とを並行して実行する。【０３４１】
なお、この画像データＹに対する符号化処理と並行して、CPU１０１−３およびCPU１０１−４は、画像データＣに対して同様に処理を行う。つまり、CPU１０１−１がP1DWT（Y）の処理を実行するのと並行して、CPU１０１−３がP1DWT（C）の処理を実行し、CPU１０１−１がP2DWT（Y）の処理を実行するのと並行して、CPU１０１−３がP2DWT（C）の処理を実行し、CPU１０１−４がP1VLC（C）の処理を実行する。【０３４２】
従って、この場合の復号部３６は、CPU１０１−２およびCPU１０１−４が先頭のプレシンクトについてウェーブレット逆変換を終了した時点で、RAM１０３に１プレシンクト分以上の画像データ（画像データＹおよび画像データＣ）が蓄積されるので、画像データの出力を開始することができる。【０３４３】
２番目以降のプレシンクトについても同様に、符号化データＹは、CPU１０１−１およびCPU１０１−２により復号され、それと並行して、符号化データＣは、CPU１０１−３およびCPU１０１−４により復号される。最後のｎ番目のプレシンクト（Pn）の符号化データＹおよび符号化データＣが復号され、画像データＹおよび画像データＣが出力されると、先頭のピクチャの画像データは全て出力されたので、先頭のピクチャについて画像データの出力が終了される。【０３４４】
２番目以降のピクチャについても同様に処理される。【０３４５】
以上のように、図３０に示される割り当ての例の場合、エントロピ復号処理とウェーブレット逆変換処理とを並行して行うことにより、図２８の例の場合よりも、復元された画像データの出力開始タイミング、すなわち、先頭のプレシンクトの画像データＹおよび画像データＣの出力タイミングを早くすることができるので、復号処理の遅延時間を低減させることができる。付言するに、同様の理由から、図３０に示される割り当ての例の場合の方が、図２８の例の場合よりも速く、先頭ピクチャの復号を完了させることができる。
従って、復号部３６において復元された画像データの画像をモニタに表示させる場合、復号処理が開始されてから最初のピクチャが表示されるまでの遅延時間は、図３０に示される割り当ての例の場合の方が、図２８の例の場合よりも短くなる。【０３４６】
また、図２８の例の場合と同様に、符号化データＹを復号して得られる係数データと、符号化データＣを復号して得られる係数データとが互いに異なるキャッシュメモリ１１１に蓄積されるので、図２６の例の場合よりも、係数バッファ部６２の容量をさらに大きくすることができ、バッファ溢れの発生をより抑制することができる。【０３４７】
ただし、実際には、画像データＹの方が画像データＣよりも情報量が多く絵が複雑であるので、復号処理に要する時間が長い。従って、CPU１０１−３およびCPU１０１−４に待機時間が発生する。さらに、復号処理の途中でCPU１０１が切り替わるので制御が複雑になるとともに処理時間も増大する。従って、CPU１０１の使用効率は図２８の場合よりもさらに低下し、スループットも図２８の場合よりもさらに低下する。【０３４８】
エントロピ復号およびウェーブレット逆変換の各処理は、それぞれ複数の関数により構成されているので、上述したようなエントロピ復号とウェーブレット逆変換の間以外のところで割り当てるCPU１０１を変更するようにすることも可能であるが、並列に実行可能な処理でなければ互いに異なるCPU１０１に割り当てられるようにしても処理時間を短縮することはできない。図１２に示される復号部３６において、エントロピ復号やウェーブレット逆変換の処理に含まれる詳細な処理を並列化することは困難である。従って、復号部３６においては、上述したように、エントロピ復号とウェーブレット逆変換とで分けるのが理想的である。【０３４９】
従来あるコンピュータのように、コンピュータが自動的に処理を実行するCPUを割り当てる場合、負荷状況等に応じて割り当てを行うため、このように最適な位置で処理を分割し、互いに異なるCPUに割り当てるとは限らず、場合によっては復号処理の効率が大幅に低減してしまう恐れがある。予め、図３０の例のように、エントロピ復号とウェーブレット逆変換との間で処理を分割するようにすることにより、復号部３６は、効率よく復号処理を実行することができる。【０３５０】
ところで、図３においては、係数の並び替えをウェーブレット変換の直後（エントロピ符号化の前）に行うように説明したが、符号化データが低域から高域の順に復号部３６（図１２）のウェーブレット逆変換部６３に供給されればよく（つまり、低域のサブバンドに属する係数データを符号化して得られる符号化データから、高域のサブバンドに属する係数データを符号化して得られる符号化データに向かう順に供給されればよく）、並び替えのタイミングは、ウェーブレット変換の直後以外であってもよい。【０３５１】
例えば、図３２に示されるように、エントロピ符号化によって得られる符号化データの順序を並び替えるようにしてもよい。図３２の場合の符号化部１４は、図３の場合と同様に、ウェーブレット変換部５１、途中計算用バッファ部５２、およびエントロピ符号化部５５を有するが、図３の係数並び替え用バッファ部５３および係数並び替え部５４の代わりに、符号並び替え用バッファ部２１３および符号並び替え部２１４を有する。【０３５２】
ウェーブレット変換部５１より出力された係数データはエントロピ符号化部５５に供給される。エントロピ符号化部５５は、供給される係数データをその供給順に符号化し、符号化により得られた符号化データを符号並び替え用バッファ部２１３に保持させる。つまり、符号並び替え用バッファ部２１３には、符号化データが高域から低域の順に供給される。符号並び替え部２１４は、符号並び替え用バッファ部２１３に保持されている符号化データを、ウェーブレット逆変換処理が行われる順、すなわち、低域から高域の順に読み出すことにより符号化データの並び替えを行い、RAM１０３に保持させた後、その順で出力させる。【０３５３】
図３２には、このような符号化部１４に対するハードウェア資源の割り当ての例も示す。図３２の例の場合、１つのCPU１０１において、符号化処理の各処理を全て行うように割り当てが行われている。つまり、符号化データの順序を並び替える場合も、図１９を参照して説明した係数データを並び替える場合と同様にハードウェア資源を割り当てることができる。同様に、図２１、図２２、または図２４の例のようにハードウェア資源を割り当てることもできる。図２４の例のようにハードウェア資源を割り当てるときの様子を図３３に示す。【０３５４】
図３３に示されるように、この場合、画像データＹのウェーブレット変換処理を行うウェーブレット変換部５１−１に対して、CPU１０１−１が割り当てられ、画像データＹの係数データのエントロピ符号化を行うエントロピ符号化部５５−１、および、符号化データＹの並び替えを行う符号並び替え部２１４−１に対して、CPU１０１−２が割り当てられる。途中計算用バッファ部５２−１は、CPU１０１−１のキャッシュメモリ１１１−１に形成され、符号並び替え用バッファ部２１３−１は、RAM１０３に形成される。【０３５５】
同様に、画像データＣのウェーブレット変換処理を行うウェーブレット変換部５１−２に対して、CPU１０１−３が割り当てられ、画像データＣの係数データのエントロピ符号化を行うエントロピ符号化部５５−２、および、符号化データＣの並び替えを行う符号並び替え部２１４−２に対して、CPU１０１−４が割り当てられる。途中計算用バッファ部５２−２は、CPU１０１−３のキャッシュメモリ１１１−３に形成され、符号並び替え用バッファ部２１３−２は、RAM１０３に形成される。【０３５６】
このように、符号化データの順序を並び替える場合も、係数データを並び替える場合と同様に、ハードウェア資源の割り当てを適切に行うことにより、符号化部１４は、効率よく符号化処理を実行することができる。なお、符号化データの順序を並び替える場合も、図３３に示されるようにウェーブレット変換部５１−１、エントロピ符号化部５５−１、および符号並び替え部２１４−１（または、ウェーブレット変換部５１−２、エントロピ符号化部５５−２、および符号並び替え部２１４−２）に対して複数のCPU１０１を割り当てるとき、そのCPU１０１の切り替え位置を予め定めておくことにより、不適切なハードウェア資源の割り当てを抑制することができる。【０３５７】
なお、ハードウェア資源の割り当て方法は、上述した以外であってもよい。例えば、図３３の例において、符号並び替え用バッファ部２１３−１がキャッシュメモリ１１１−２に形成され、符号並び替え用バッファ部２１３−２がキャッシュメモリ１１１−４に形成されるようにしてもよいし、エントロピ符号化部５５−１に対してCPU１０１−１を割り当て、エントロピ符号化部５５−２に対してCPU１０１−３を割り当てるようにしてもよいし、ウェーブレット変換部５１−１、エントロピ符号化部５５−１、および符号並び替え部２１４−１に対して互いに異なるCPU１０１を割り当て、ウェーブレット変換部５１−２、エントロピ符号化部５５−２、および符号並び替え部２１４−２に対して互いに異なるCPU１０１を割り当てるようにしてもよい。【０３５８】
なお、この場合、復号部３６の構成およびハードウェア資源の割り当て方法は、図２６乃至図３１を参照して説明した場合と同様である。【０３５９】
並び替えは、復号部３６側で行うようにしてもよい。その場合、符号化部１４は、図３４に示されるように、ウェーブレット変換部５１、途中計算用バッファ部５２、およびエントロピ符号化部５５を有し、図３のような係数並び替え用バッファ部５３や係数並び替え部５４を有していない。【０３６０】
もちろん、このときの符号化部１４のCPU１０１への割り当ても、図２０乃至図２５を参照して説明した、係数データを並び替える場合と同様に行うことができる。つまり、この場合も、ハードウェア資源の割り当てを適切に行うことにより、符号化部１４は、効率よく符号化処理を実行することができる。一例として、図２４の例に対応する例を図３４に示す。【０３６１】
このときの符号化部１４に対応する復号部３６の構成は、図３５に示されるようになる。すなわち、復号部３６は、係数バッファ部６２とウェーブレット逆変換部６３との間に、係数データの順序を並び替えるための係数並び替え用バッファ部２２３を有する。このときの復号部３６も図２６乃至図３１を参照して説明した例と同様に、CPU１０１に割り当てることができる。つまり、この場合も、ハードウェア資源の割り当てを適切に行うことにより、復号部３６は、効率よく復号処理を実行することができる。一例として、図３０の例に対応する例を図３５に示す。【０３６２】
図３５の例の場合、係数バッファ部６２−１より出力される輝度成分Ｙの係数データを保持する係数並び替え用バッファ部２２３−１、および、係数バッファ部６２−２より出力される色差成分Ｃの係数データを保持する係数並び替え用バッファ部２２３−２は、RAM１０３に形成される。【０３６３】
ウェーブレット逆変換部６３−１の処理を実行するCPU１０１−２は、RAM１０３の係数並び替え用バッファ部２２３−１より、輝度成分Ｙの係数データを、並び替えた順、すなわち低域から高域に向かう順で読み出し、その順で係数データに対してウェーブレット逆変換処理を行う。CPU１０１−２は、生成された画像データＹをRAM１０３に保持させた後出力させる。【０３６４】
同様に、ウェーブレット逆変換部６３−２の処理を実行するCPU１０１−４は、RAM１０３の係数並び替え用バッファ部２２３−２より、色差成分Ｃの係数データを、並び替えた順、すなわち低域から高域に向かう順で読み出し、その順で係数データに対してウェーブレット逆変換処理を行う。CPU１０１−４は、生成された画像データＣをRAM１０３に保持させた後出力させる。【０３６５】
以上のように、符号化部１４および復号部３６の各処理を適切にCPU１０１に割り当てることにより、符号化部１４および復号部３６の処理効率を向上させ、スループットを向上させたり、遅延時間を低減させたりすることができる。【０３６６】
なお、符号化部１４や復号部３６に求められる特性が、画像によって異なる場合がある。そのような場合にも適切に対応することができるように、上述したような割り当てのパターンを予め複数用意し、条件に応じて適切に割り当てのパターンを選択するようにしてもよい。以下にその場合について説明する。最初に、ソフトウェアエンコーダやソフトウェアデコーダが実装されるハードウェアについて説明する。図３６は、ソフトウェアエンコーダやソフトウェアデコーダが実装される情報処理システムの構成例を示すブロック図である。【０３６７】
図３６に示されるように、情報処理システム３００は、情報処理装置３０１、その情報処理装置３０１とPCIバス３０２によって接続された、記憶装置３０３、複数台のビデオテープレコーダ（VTR）であるVTR３０４−１乃至VTR３０４−Ｓ、ユーザがこれらに対する操作入力を行うためのマウス３０５、キーボード３０６、並びに操作コントローラ３０７により構成されるシステムであり、インストールされたプログラムによって、上述したような画像符号化処理や画像復号処理等を行うシステムである。【０３６８】
例えば情報処理システム３００の情報処理装置３０１は、RAID（Redundant Arrays of Independent Disks）でなる大容量の記憶装置３０３に記憶されている動画コンテンツを符号化して得られた符号化データを記憶装置３０３に記憶させたり、記憶装置３０３に記憶されている符号化データを復号して得られた復号画像データ（動画コンテンツ）を記憶装置３０３に記憶させたり、符号化データや復号画像データをVTR３０４−１乃至VTR３０４−Ｓを介してビデオテープに記録したりすることができる。また、情報処理装置３０１は、VTR３０４−１乃至VTR３０４−Ｓに装着されたビデオテープに記録された動画コンテンツを記憶装置３０３に取り込み得るようにもなされている。その際、情報処理装置３０１が、動画コンテンツを符号化するようにしてもよい。【０３６９】
情報処理装置３０１は、マイクロプロセッサ４０１、GPU（Graphics Processing Unit）４０２、XDR（Extreme Data Rate）-RAM４０３、サウスブリッジ４０４、HDD（Hard Disk Drive）４０５、USBインタフェース（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コア４４２−８のそれぞれに対してプレシンクト単位で処理を割り振るようにすれば、符号化処理や復号処理が、図１７を参照して説明した場合と同様にプレシンクト単位で同時並列的に実行される。つまり、符号化処理や復号処理の効率を向上させ、処理全体の遅延時間を短縮させ、さらに、負荷、処理時間、および、処理に必要なメモリ容量を低減させることができる。もちろん、これ以外の方法で各処理を行うようにしてもよい。【０３７８】
GPU４０２は、ディスプレイ４２２に表示する動画コンテンツの再生映像を動かすときのテクスチャの張り込みなどに関する最終的なレンダリング処理に加えて、動画コンテンツの再生映像及び静止画コンテンツの静止画像をディスプレイ４２２に一度に複数表示するときの座標変換計算処理や、動画コンテンツの再生映像及び静止画コンテンツの静止画像に対する拡大・縮小処理等を行う機能を司り、マイクロプロセッサ４０１の処理負担を軽減させるようになされている。【０３７９】
GPU４０２は、マイクロプロセッサ４０１の制御のもとに、供給された動画コンテンツの映像データや静止画コンテンツの画像データに対して所定の信号処理を施し、その結果得られた映像データや画像データをディスプレイ４２２へ送出して、画像信号をディスプレイ４２２へ表示させる。【０３８０】
ところで、マイクロプロセッサ４０１における８個のサブCPUコア４４２−１乃至サブCPUコア４４２−８で同時並列的にデコードされた複数の動画コンテンツにおける再生映像は、バス４１１を介してGPU４０２へデータ転送されるが、このときの転送速度は、例えば、最大３０[Gbyte/sec]であり、特殊効果の施された複雑な再生映像であっても高速かつ滑らかに表示し得るようになされている。【０３８１】
また、マイクロプロセッサ４０１は、動画コンテンツの映像データ及び音声データのうち音声データに対して音声ミキシング処理を施し、その結果得られた編集音声データを、サウスブリッジ４０４およびサウンド入出力コーデック４０７を介して、スピーカ４２１へ送出することにより、音声信号に基づく音声をスピーカ４２１から出力させることもできる。【０３８２】
このような情報処理システム３００のマイクロプロセッサ４０１における８個のサブCPUコア４４２−１乃至サブCPUコア４４２−８のそれぞれには、図３７に示されるように、キャッシュメモリとしてLS（Local Store）４５１−１乃至LS４５１−８が内蔵されている。つまり、８個のサブCPUコア４４２−１乃至サブCPUコア４４２−８は、各自が内蔵するLS４５１−１乃至LS４５１−８とXDR-RAM４０３の記憶領域を利用することができる。【０３８３】
図１８のパーソナルコンピュータ１００のキャッシュメモリ１１１の場合と同様に、LS４５１−１乃至LS４５１−８は、サブCPUコア４４２−１乃至サブCPUコア４４２−８のそれぞれが独占的に使用することができ、かつ、共有バス４４５を介さずにデータの読み出しや書き込みを行うことができ、さらに、XDR-RAM４０３よりも高速に動作する。従って、LS４５１−１乃至LS４５１−８は、XDR-RAM４０３よりも高速にデータの読み出しや書き込みが可能である。ただし、LS４５１−１乃至LS４５１−８は、XDR-RAM４０３と比べて容量当たりの単価が高く、かつ、その容量が小さい。【０３８４】
実際には、XDR-RAM４０３の容量も有限であるが、以下においては、XDR-RAM４０３の容量は十分に大きいものとし、逆に、LS４５１−１乃至LS４５１−８の容量は小さく、必要最小限のデータしか保持することができないものとする。【０３８５】
なお、以下において、サブCPUコア４４２−１乃至サブCPUコア４４２−８を互いに区別して説明する必要の無い場合、サブCPUコア４４２と称する。また、LS４５１−１乃至LS４５１−８を互いに区別して説明する必要の無い場合、LS４５１と称する。【０３８６】
サブCPUコア４４２−１乃至サブCPUコア４４２−８は、メインCPUコア４４１により、予め用意された、上述したような複数の割り当て方法から最適なものが選択され、その割り当て方法に従って符号化部１４および復号部３６の各処理が割り当てられる。【０３８７】
そのメインCPUコア４４１が有する機能ブロックを図３８に示す。【０３８８】
図３８に示されるように、メインCPUコア４４１は、情報処理システム３００全体の制御を行い、ソフトウェアプログラムの処理をハードウェアに実行させる基本ソフトウェアであるOS５０１、符号化部１４を実装する際の割り当て方法の選択を行う符号化選択制御部５０２、復号部３６を実装する際の割り当て方法の選択を行う復号選択制御部５０３、および、メインCPUコア４４１のローカルなキャッシュメモリであるキャッシュ５０４を有する。【０３８９】
OS５０１は、情報処理システム３００のハードウェア資源を管理しており、符号化選択制御部５０２や復号選択制御部５０３からの要求に基づいて、ハードウェア資源に関する情報である資源情報を提供したり、処理に対してハードウェア資源を割り当てたりする。
例えば、OS５０１は、符号化プログラムや復号プログラムをHDD４０５より読み出し、LS４５１やXDR-RAM４０３に割り当てたり、処理をサブCPUコア４４２に実行させたりする。
また、OS５０１は、例えば、XDR-RAM４０３に必要な容量の領域を確保したりする。【０３９０】
符号化選択制御部５０２は、サイズ情報取得部５１１、資源情報取得部５１２、演算精度選択部５１３、途中計算用バッファ使用量算出部５１４、係数並び替え用バッファ使用量算出部５１５、符号化方式選択部５１６、および割り当て部５１７を有する。【０３９１】
サイズ情報取得部５１１は、XDR-RAM４０３より、XDR-RAM４０３に保持されている処理対象の画像データ５４１の、画像の縦横サイズ、ビット深度、ウェーブレットフィルタの種類、およびウェーブレット変換の分解数等の情報のうち、少なくともいずれか１つを含むサイズ情報を取得する。資源情報取得部５１２は、現在利用可能なサブCPUコアの個数やLS４５１の容量等の情報のうち、少なくともいずれか１つを含む資源情報を、OS５０１を介して取得する。演算精度選択部５１３は、可逆符号化であるか否か、レイテンシ優先であるか否か、スループット優先であるか否か、または精度優先であるか否か等の、予め定められた符号化に関する設定情報である符号化パラメータ５３１に基づいて、エントロピ符号化における演算選択する。【０３９２】
途中計算用バッファ使用量算出部５１４は、途中計算用バッファ部５２として必要な容量を示す途中計算用バッファ使用量を各コンポーネントについて算出する。係数並び替え用バッファ使用量算出部５１５は、係数並び替え用バッファ部５３として必要な容量を示す係数並び替え用バッファ使用量を各コンポーネントについて算出する。【０３９３】
符号化方式選択部５１６は、各種条件に従って、XDR-RAM４０３に保持されている符号化プログラム５４３−１、符号化プログラム５４３−２、・・・の中から、実行するプログラムを１つ選択する。符号化プログラム５４３−１、符号化プログラム５４３−２、・・・は、それぞれ、図３の符号化部１４を実現するソフトウェアプログラムであり、自分自身に対するハードウェアの割り当て方法が予め定められている。ただし、その割り当て方法は、ソフトウェアプログラム毎に互いに異なる。なお、以下において、これらの符号化プログラム５４３−１、符号化プログラム５４３−２、・・・を互いに区別して説明する必要の無い場合、符号化プログラム５４３と称する。割り当て部５１７は、符号化方式選択部５１６に選択された符号化プログラム５４３に対して、その符号化プログラム５４３の割り当て方法に従って、サブCPUコア４４２−１乃至サブCPUコア４４２−８等のハードウェア資源を割り当てる。【０３９４】
復号選択制御部５０３は、サイズ情報取得部５２１、資源情報取得部５２２、係数バッファ使用量算出部５２３、復号方式選択部５２４、および割り当て部５２５を有する。【０３９５】
サイズ情報取得部５２１は、XDR-RAM４０３に保持されている処理対象の符号化データ５４２の、画像の縦横サイズ、ビット深度、ウェーブレットフィルタの種類、およびウェーブレット変換の分解数等の情報のうち、少なくともいずれか１つを含むサイズ情報を取得する。資源情報取得部５２２は、OS５０１を介して情報処理システム３００の資源情報を取得する。【０３９６】
係数バッファ使用量算出部５２３は、係数バッファ部６２として必要な容量を示す係数バッファ使用量を各コンポーネントについて算出する。【０３９７】
復号方式選択部５２４は、各種条件に従って、XDR-RAM４０３に保持されている復号プログラム５４４−１、復号プログラム５４４−２、・・・の中から、実行するプログラムを１つ選択する。復号プログラム５４４−１、復号プログラム５４４−２、・・・は、それぞれ、図１２の復号部３６を実現するソフトウェアプログラムであり、自分自身に対するハードウェアの割り当て方法が予め定められている。ただし、その割り当て方法は、ソフトウェアプログラム毎に互いに異なる。なお、以下において、これらの復号プログラム５４４−１、復号プログラム５４４−２、・・・を互いに区別して説明する必要の無い場合、復号プログラム５４４と称する。割り当て部５２５は、復号方式選択部５２４に選択された復号プログラム５４４に対して、その復号プログラム５４４の割り当て方法に従って、サブCPUコア４４２−１乃至サブCPUコア４４２−８等のハードウェア資源を割り当てる。【０３９８】
キャッシュ５０４には、予め設定された符号化条件を示す符号化パラメータ５３１、および、予め設定された復号条件を示す復号パラメータ５３２が記憶される。また、キャッシュ５０４には、符号化方式の選択に用いられるウェーブレット変換用関係テーブル５３３、および、係数並び替え用関係テーブル５３４が保持されている。【０３９９】
ウェーブレット変換用関係テーブル５３３は、図３９に示されるように、分解数、５×３フィルタ、および９×７フィルタの各項により構成されるテーブル情報であり、ウェーブレット変換用の途中計算用バッファ部５２に必要な容量を算出するための関係指数を求めるためのテーブル情報である。【０４００】
また、係数並び替え用関係テーブル５３４は、図４０に示されるように、分解数、５×３フィルタ、および９×７フィルタの各項により構成されるテーブル情報であり、係数並び替え用バッファ部５３に必要な容量を算出するための関係指数を求めるためのテーブル情報である。【０４０１】
次に、以上のようなメインCPUコア４４１により実行される各処理について説明する。【０４０２】
最初に、符号化選択制御部５０２により実行される符号化選択制御処理の流れの例を図４１のフローチャートを参照して説明する。符号化選択制御処理は、符号化処理を行う際に、サブCPUコア４４２−１乃至サブCPUコア４４２−８の割り当て方が互いに異なる複数の符号化プログラム５４３の中から１つを選択するために実行される処理である。例えば、ユーザにより符号化処理の実行を指示されると、符号化選択制御部５０２は、符号化選択制御処理を開始する。【０４０３】
符号化選択制御処理が開始されると、ステップＳ１０１において、サイズ情報取得部５１１は、XDR-RAM４０３に保持されている処理対象の画像データ５４１についてのサイズ情報を取得する。ステップＳ１０２において、資源情報取得部５１２は、OS５０１を介して、使用可能なハードウェア資源に関する情報である資源情報を取得する。ステップＳ１０３において、演算精度選択部５１３は、符号化パラメータ５３１やサイズ情報等に基づいて、符号化処理の演算精度を選択し、設定する。演算精度選択処理の詳細な流れについては後述する。【０４０４】
演算精度が選択されると、途中計算用バッファ使用量算出部５１４は、ステップＳ１０４において、ウェーブレット変換用関係テーブル５３３等を用いて、途中計算用バッファ部５２として必要な容量を示す途中計算用バッファ使用量を算出する。係数並び替え用バッファ使用量算出部５１５は、ステップＳ１０５において、係数並び替え用関係テーブル５３４等を用いて、係数並び替え用バッファ部５３として必要な容量を示す係数並び替え用バッファ使用量を算出する。【０４０５】
ステップＳ１０６において、符号化方式選択部５１６は、サイズ情報、資源情報、選択された演算精度、並びに、算出された途中計算用バッファ使用量および係数並び替え用バッファ使用量等の各種情報に基づいて符号化方式を選択する。符号化方式選択処理の詳細については後述する。【０４０６】
符号化方式が選択されると、ステップＳ１０７において、割り当て部５１７は、選択された符号化プログラム５４３の割り当て方法に従って、各処理に対してサブCPUコア４４２−１乃至サブCPUコア４４２−８を割り当てる。【０４０７】
ステップＳ１０７の処理が終了すると、符号化選択制御処理は終了される。【０４０８】
次に、図４１のステップＳ１０３において実行される演算精度選択処理の流れの例を図４２のフローチャートを参照して説明する。【０４０９】
演算精度選択処理が開始されると、演算精度選択部５１３は、ステップＳ１２１において、サイズ情報に基づいて、ウェーブレット変換処理において使用されるフィルタの種類が５×３フィルタであるか９×７フィルタであるかを判定する。５×３フィルタであると判定された場合、処理はステップＳ１２２に進む。【０４１０】
ステップＳ１２２において、演算精度選択部５１３は、符号化パラメータ５３１に基づいて、エントロピ符号化として可逆符号化を行うか否かを判定する。可逆符号化を行うと判定された場合、処理はステップＳ１２３に進む。ステップＳ１２３において、演算精度選択部５１３は、サイズ情報に基づいて、画像データ５４１のビット深度が１３以下であるか否かを判定する。【０４１１】
ビット深度が１３以下であると判定された場合、処理はステップＳ１２４に進む。ステップＳ１２４において、演算精度選択部５１３は、演算精度として１６ビット固定小数点型を選択し、設定する。ステップＳ１２４の処理が終了すると、演算精度選択処理が終了され、処理は図４１のステップＳ１０３に戻り、ステップＳ１０４以降の処理が実行される。【０４１２】
また、図４２のステップＳ１２３において、ビット深度が１３より大きいと判定された場合、処理はステップＳ１２５に進む。ステップＳ１２５において、演算精度選択部５１３は、演算精度として３２ビット固定小数点型を選択し、設定する。ステップＳ１２５の処理が終了すると、演算精度選択処理が終了され、処理は図４１のステップＳ１０３に戻り、ステップＳ１０４以降の処理が実行される。【０４１３】
図４２のステップＳ１２２において、エントロピ符号化として非可逆符号化が行われると判定された場合、処理はステップＳ１２６に進む。ステップＳ１２６において、演算精度選択部５１３は、符号化パラメータ５３１に基づいて、精度優先であるか否かを判定する。精度優先でないと判定された場合、処理はステップＳ１２３に戻り、それ以降の処理が繰り返される。【０４１４】
また、ステップＳ１２６において、精度優先であると判定された場合、処理はステップＳ１２７に進む。さらに、ステップＳ１２１において、サイズ情報に基づいて、ウェーブレット変換処理に使用されるフィルタの種類が９×７フィルタであると判定された場合、処理はステップＳ１２７に進む。【０４１５】
ステップＳ１２７において、演算精度選択部５１３は、演算精度として３２ビット浮動小数点型を選択し、設定する。ステップＳ１２７の処理が終了すると、演算精度選択処理が終了され、処理は図４１のステップＳ１０３に戻り、ステップＳ１０４以降の処理が実行される。【０４１６】
以上のように演算精度が選択される。【０４１７】
次に、図４１のステップＳ１０６において実行される符号化方式選択処理の流れの例を図４３のフローチャートを参照して説明する。【０４１８】
ステップＳ１４１において、符号化方式選択部５１６は、途中計算用バッファ使用量算出部５１４が算出した途中計算用バッファ使用量と、資源情報取得部５１２により確認されたLS４５１の使用可能な記憶容量を示す使用可能量に基づいて、LS４５１の使用可能量が２コンポーネント分の途中計算用バッファ部５２として十分な容量があるか否かを判定する。つまり、符号化方式選択部５１６は、LS４５１の使用可能量が２コンポーネントのそれぞれの途中計算用バッファ使用量の和以上であるか否かを判定する。十分であると判定された場合、処理はステップＳ１４２に進む。【０４１９】
ステップＳ１４２において、符号化方式選択部５１６は、途中計算用バッファ使用量算出部５１４が算出した途中計算用バッファ使用量と、係数並び替え用バッファ使用量算出部５１５が算出した係数並び替え用バッファ使用量と、資源情報取得部５１２により確認されたLS４５１の使用可能量に基づいて、LS４５１の使用可能量が２コンポーネント分の途中計算用バッファ部５２および係数並び替え用バッファ部５３として十分な容量があるか否かを判定する。つまり、符号化方式選択部５１６は、LS４５１の使用可能量が、２コンポーネントのそれぞれの途中計算用バッファ使用量および係数並び替え用バッファ使用量の総和以上であるか否かを判定する。十分であると判定された場合、処理はステップＳ１４３に進む。【０４２０】
ステップＳ１４３において、符号化方式選択部５１６は、符号化パラメータ５３１に基づいてスループット優先であるか否かを判定する。スループット優先であると判定された場合、処理はステップＳ１４４に進む。【０４２１】
ステップＳ１４４において、符号化方式選択部５１６は、図１９を参照して説明した割り当て方法を適用する符号化方式Ａを選択する。つまりこの場合、図１９に示されるように、符号化部１４の全ての処理に対して１つのサブCPUコア４４２が割り当てられる。また、そのLS４５１には、途中計算用バッファ部５２および係数並び替え用バッファ部５３の両方が形成される。ステップＳ１４４の処理が終了すると、符号化方式選択処理は終了され、処理は図４１のステップＳ１０６に戻り、ステップＳ１０７に処理が進む。【０４２２】
図４３のステップＳ１４２において、LS４５１の使用可能量が２コンポーネント分の途中計算用バッファ部５２および係数並び替え用バッファ部５３として十分でないと判定された場合、処理はステップＳ１４５に進む。ステップＳ１４５において、符号化方式選択部５１６は、符号化パラメータ５３１に基づいてスループット優先であるか否かを判定する。スループット優先であると判定された場合、処理はステップＳ１４６に進む。また、ステップＳ１４３において、スループット優先でないと判定された場合、処理はステップＳ１４６に進む。【０４２３】
ステップＳ１４６において、符号化方式選択部５１６は、図２１を参照して説明した割り当て方法を適用する符号化方式Ｂを選択する。つまりこの場合、図２１に示されるように、符号化部１４の全ての処理に対して１つのサブCPUコア４４２が割り当てられる。また、そのLS４５１には、途中計算用バッファ部５２が形成され、係数並び替え用バッファ部５３は共有メモリであるXDR-RAM４０３に形成される。ステップＳ１４６の処理が終了すると、符号化方式選択処理は終了され、処理は図４１のステップＳ１０６に戻り、ステップＳ１０７に処理が進む。【０４２４】
図４３のステップＳ１４５において、スループット優先でないと判定された場合、処理はステップＳ１４７に進む。ステップＳ１４７において、符号化方式選択部５１６は、資源情報取得部５１２が取得した資源情報に基づいて、現在使用可能なサブCPUコア４４２が１個であるか否かを判定する。１個であると判定された場合、処理はステップＳ１４６に戻る。また、ステップＳ１４７において、使用可能なサブCPUコア４４２が複数存在すると判定された場合、処理はステップＳ１４８に進む。ステップＳ１４８において、符号化方式選択部５１６は、資源情報取得部５１２が取得した資源情報に基づいて、現在使用可能なサブCPUコア４４２が２個であるか否かを判定する。２個であると判定された場合、処理はステップＳ１４９に進む。【０４２５】
ステップＳ１４９において、符号化方式選択部５１６は、図２２を参照して説明した割り当て方法を適用する符号化方式Ｃを選択する。つまりこの場合、図２２に示されるように、２つのサブCPUコア４４２を１組として、画像データＹを符号化する符号化部１４の全ての処理に対して一方のサブCPUコア４４２が割り当てられ、画像データＣを符号化する符号化部１４の全ての処理に対して他方のサブCPUコア４４２が割り当てられる。また、画像データＹに対するウェーブレット変換で利用される途中計算用バッファ部５２−１は、画像データＹを符号化するサブCPUコア４４２のLS４５１に形成され、画像データＣに対するウェーブレット変換で利用される途中計算用バッファ部５２−２は、画像データＣを符号化するサブCPUコア４４２のLS４５１に形成される。また、画像データＹより生成された係数データを保持する係数並び替え用バッファ部５３−１と、画像データＣより生成された係数データを保持する係数並び替え用バッファ部５３−２は、両方とも共有メモリであるXDR-RAM４０３に形成される。ステップＳ１４９の処理が終了すると、符号化方式選択処理は終了され、処理は図４１のステップＳ１０６に戻り、ステップＳ１０７に処理が進む。【０４２６】
図４３のステップＳ１４１において、LS４５１の使用可能量が２コンポーネント分の途中計算用バッファ部５２として十分でないと判定された場合、処理はステップＳ１５０に進む。ステップＳ１５０において、符号化方式選択部５１６は、途中計算用バッファ使用量算出部５１４が算出した途中計算用バッファ使用量と、資源情報取得部５１２により確認されたLS４５１の使用可能量に基づいて、LS４５１の使用可能量が１コンポーネント分の途中計算用バッファ部５２として十分な容量があるか否かを判定する。つまり、符号化方式選択部５１６は、LS４５１の使用可能量が、各コンポーネントの途中計算用バッファ使用量以上であるか否かを判定する。十分であると判定された場合、処理はステップＳ１５１に進む。【０４２７】
ステップＳ１５１において、符号化方式選択部５１６は、資源情報取得部５１２が取得した資源情報に基づいて、現在使用可能なサブCPUコア４４２が１個であるか否かを判定する。使用可能なサブCPUコア４４２が複数存在すると判定された場合、処理はステップＳ１５２に進む。ステップＳ１５２において、符号化方式選択部５１６は、資源情報取得部５１２が取得した資源情報に基づいて、現在使用可能なサブCPUコア４４２が２個であるか否かを判定する。２個であると判定された場合、処理はステップＳ１４９に戻る。【０４２８】
ステップＳ１５２において、現在使用可能なサブCPUコア４４２が３個以上あると判定された場合、処理はステップＳ１５３に進む。ステップＳ１５３において、符号化方式選択部５１６は、符号化パラメータ５３１に基づいてスループット優先であるか否かを判定する。スループット優先であると判定された場合、処理はステップＳ１４９に戻る。【０４２９】
また、ステップＳ１５３において、スループット優先でないと判定された場合、処理はステップＳ１５４に進む。また、ステップＳ１４８において、現在使用可能なサブCPUコア４４２が３個以上あると判定された場合、処理はステップＳ１５４に進む。【０４３０】
ステップＳ１５４において、符号化方式選択部５１６は、図２４を参照して説明した割り当て方法を適用する符号化方式Ｄを選択する。つまりこの場合、図２４に示されるように、４つのサブCPUコア４４２を１組として、画像データＹを符号化する符号化部１４のウェーブレット変換部５１−１の処理、画像データＹを符号化する符号化部１４の係数並び替え部５４−１およびエントロピ符号化部５５−１の処理、画像データＣを符号化する符号化部１４のウェーブレット変換部５１−２の処理、画像データＣを符号化する符号化部１４の係数並び替え部５４−２およびエントロピ符号化部５５−２の各処理に対して、互いに異なるサブCPUコア４４２が割り当てられる。【０４３１】
また、画像データＹを符号化する符号化部１４の途中計算用バッファ部５２−１は、ウェーブレット変換部５１−１の処理が割り当てられたサブCPUコア４４２のLS４５１に形成され、画像データＣを符号化する符号化部１４の途中計算用バッファ部５２−２は、ウェーブレット変換部５１−２の処理が割り当てられたサブCPUコア４４２のLS４５１に形成される。【０４３２】
さらに、画像データＹを符号化する符号化部１４の係数並び替え用バッファ部５３−１と、画像データＣを符号化する符号化部１４の係数並び替え用バッファ部５３−２は、両方とも共有メモリであるXDR-RAM４０３に形成される。ステップＳ１５４の処理が終了すると、符号化方式選択処理は終了され、処理は図４１のステップＳ１０６に戻り、ステップＳ１０７に処理が進む。【０４３３】
図４３のステップＳ１５０において、LS４５１の使用可能量が１コンポーネント分の途中計算用バッファ部５２として十分でないと判定された場合、処理はステップＳ１５５に進む。また、ステップＳ１５１において、現在使用可能なサブCPUコアが１個であると判定された場合、処理はステップＳ１５５に進む。この場合、予め用意された４つの符号化方式のいずれも選択することができないので（実装不可能であるので）、符号化方式選択部５１６は、ステップＳ１５５において、例えばユーザに通知する等のエラー処理を行う。ステップＳ１５５の処理が終了すると、符号化方式選択処理は終了され、処理は図４１のステップＳ１０６に戻り、ステップＳ１０７に処理が進む。【０４３４】
以上のように、符号化選択制御部５０２は、画像データ５４１のサイズ情報、資源情報、または符号化パラメータ等に基づいて、実際の条件下において、符号化部１４がより効率的に動作するように、適切にハードウェア資源の割り当てを行うことができる。【０４３５】
なお、この割り当ては、どのような単位で行うようにしてもよく、例えば、プレシンクト毎に行うようにしてもよいし、ピクチャ毎に行うようにしてもよい。また、以上においては４つの割り当て方法を予め用意し、符号化方式選択部５１６がその中から選択するように説明したが、用意するハードウェア資源の割り当て方法は、いくつであってもよい。
つまり、符号化プログラム５４３の数は任意である。さらに、ハードウェア資源の割り当て方法は、任意であり、上述した４つの割り当て方法以外の方法であってもよい。【０４３６】
また、８つのサブCPUコア４４２−１乃至サブCPUコア４４２−８の内、任意のサブCPUコア４４２を用いて、上述した符号化方式Ａ乃至符号化方式Ｄを併用する（並列的に動作させる）ようにしてもよい。つまり、例えば、符号化選択制御部５０２は、プレシンクト毎やピクチャ毎に互いに異なる符号化方式を採用し、ハードウェア資源の割り当て方を変更することもできる。このようにすることにより、符号化選択制御部５０２は、ハードウェア資源をより有効に利用するように符号化部１４の各処理にハードウェア資源を割り当て、符号化部１４がより効率的に動作するようにすることができる。【０４３７】
次に、図４４のフローチャートを参照して、復号選択制御部５０３により実行される復号選択制御処理の流れの例を説明する。復号選択制御処理は、復号処理を行う際に、サブCPUコア４４２−１乃至サブCPUコア４４２−８の割り当て方が互いに異なる複数の復号プログラム５４４の中から１つを選択するために実行される処理である。例えば、ユーザにより復号処理の実行を指示されると、復号選択制御部５０３は、復号選択制御処理を開始する。【０４３８】
復号選択制御処理が開始されると、ステップＳ２０１において、サイズ情報取得部５２１は、XDR-RAM４０３に保持されている処理対象の符号化データ５４２についてのサイズ情報を取得する。ステップＳ２０２において、資源情報取得部５２２は、OS５０１を介して、使用可能なハードウェア資源に関する情報である資源情報を取得する。【０４３９】
係数バッファ使用量算出部５２３は、ステップＳ２０３において、ウェーブレット変換用関係テーブル５３３等を用いて、係数バッファ部６２として必要な容量を示す係数バッファ使用量を算出する。【０４４０】
ステップＳ２０４において、復号方式選択部５２４は、サイズ情報、資源情報、並びに、算出された係数バッファ使用量等の各種情報に基づいて復号方式を選択する。復号方式選択処理の詳細については後述する。【０４４１】
復号方式が選択されると、ステップＳ２０５において、割り当て部５２５は、選択された復号プログラム５４４の割り当て方法に従って、各処理に対してサブCPUコア４４２−１乃至サブCPUコア４４２−８を割り当てる。【０４４２】
ステップＳ２０５の処理が終了すると、符号化選択制御処理は終了される。【０４４３】
次に、図４４のステップＳ２０４において実行される復号方式選択処理の流れの例を図４５のフローチャートを参照して説明する。【０４４４】
ステップＳ２２１において、復号方式選択部５２４は、係数バッファ使用量算出部５２３が算出した係数バッファ使用量と、資源情報取得部５１２により確認されたLS４５１の使用可能量に基づいて、LS４５１の使用可能量が係数バッファ部６２として十分な容量があるか否かを判定する。つまり、復号方式選択部５２４は、LS４５１の使用可能量が、各コンポーネントの係数バッファ使用量以上であるか否かを判定する。十分であると判定された場合、処理はステップＳ２２２に進む。【０４４５】
ステップＳ２２２において、復号方式選択部５２４は、復号パラメータ５３２に基づいて、復号処理がスループット優先であるか否かを判定する。スループット優先であると判定された場合、処理はステップＳ２２３に進む。【０４４６】
ステップＳ２２３において、復号方式選択部５２４は、係数バッファ使用量算出部５２３が算出した係数バッファ使用量と、資源情報取得部５１２により確認されたLS４５１の使用可能量に基づいて、LS４５１の使用可能量が２コンポーネント分の係数バッファ部６２として十分な容量があるか否かを判定する。つまり、復号方式選択部５２４は、LS４５１の使用可能量が、２コンポーネントのそれぞれの係数バッファ使用量の和以上か否かを判定する。十分であると判定された場合、処理はステップＳ２２４に進む。【０４４７】
ステップＳ２２４において、復号方式選択部５２４は、図２６を参照して説明した割り当て方法を適用する復号方式Ａを選択する。つまりこの場合、図２６に示されるように、復号部３６の全ての処理に対して１つのサブCPUコア４４２が割り当てられる。また、そのLS４５１には、係数バッファ部６２が形成される。ステップＳ２２４の処理が終了すると、復号方式選択処理は終了され、処理は図４４のステップＳ２０４に戻り、ステップＳ２０５に処理が進む。【０４４８】
図４５のステップＳ２２２において、復号処理がスループット優先でないと判定された場合、処理はステップＳ２２５に進む。ステップＳ２２５において、復号方式選択部５２４は、資源情報取得部５２２が取得した資源情報に基づいて、現在使用可能なサブCPUコア４４２が１個であるか否かを判定する。１個であると判定された場合、処理はステップＳ２２３に戻り、それ以降の処理が繰り返される。また、ステップＳ２２５において、使用可能なサブCPUコア４４２が複数存在すると判定された場合、処理はステップＳ２２６に進む。【０４４９】
ステップＳ２２６において、復号方式選択部５２４は、資源情報取得部５２２が取得した資源情報に基づいて、現在使用可能なサブCPUコア４４２が２個であるか否かを判定する。２個であると判定された場合、処理はステップＳ２２７に進む。また、ステップＳ２２３において、LS４５１の使用可能量が２コンポーネント分の係数バッファ部６２として十分でないと判定された場合、処理はステップＳ２２７に進む。【０４５０】
ステップＳ２２７において、復号方式選択部５２４は、図２８を参照して説明した割り当て方法を適用する復号方式Ｂを選択する。つまりこの場合、図２８に示されるように、２つのサブCPUコア４４２を１組として、符号化データＹを復号する復号部３６の全ての処理に対して一方のサブCPUコア４４２が割り当てられ、符号化データＣを復号する復号部３６の全ての処理に対して他方のサブCPUコア４４２に割り当てられる。また、符号化データＹを復号する復号部３６の係数バッファ部６２−１は、符号化データＹを復号する復号部３６が割り当てられたサブCPUコア４４２のLS４５１に形成され、符号化データＣを復号する復号部３６の係数バッファ部６２−２は、符号化データＣを復号する復号部３６が割り当てられたサブCPUコア４４２のLS４５１に形成される。ステップＳ２２７の処理が終了すると、復号方式選択処理は終了され、処理は図４４のステップＳ２０４に戻り、ステップＳ２０５に処理が進む。【０４５１】
図４５のステップＳ２２６において、現在使用可能なサブCPUコア４４２が３個以上であると判定された場合、処理はステップＳ２２８に進む。【０４５２】
ステップＳ２２８において、復号方式選択部５２４は、図３０を参照して説明した割り当て方法を適用する復号方式Ｃを選択する。つまりこの場合、図３０に示されるように、４つのサブCPUコア４４２を１組として、符号化データＹを復号する復号部３６のエントロピ復号部６１−１の処理、符号化データＹを復号する復号部３６のウェーブレット逆変換部６３−１の処理、符号化データＣを復号する復号部３６のエントロピ復号部６１−２の処理、および、符号化データＣを復号する復号部３６のウェーブレット逆変換部６３−２の各処理に対して、互いに異なるサブCPUコア４４２が割り当てられる。【０４５３】
また、符号化データＹを復号する復号部３６の係数バッファ部６２−１は、ウェーブレット逆変換部６３−１の処理が割り当てられたサブCPUコア４４２のLS４５１に形成され、符号化データＣを復号する復号部３６の係数バッファ部６２−２は、ウェーブレット逆変換部６３−２の処理が割り当てられたサブCPUコア４４２のLS４５１に形成される。【０４５４】
ステップＳ２２８の処理が終了すると、復号方式選択処理は終了され、処理は図４４のステップＳ２０４に戻り、ステップＳ２０５に処理が進む。【０４５５】
図４５のステップＳ２２１において、LS４５１の使用可能量が係数バッファ部６２として十分でないと判定された場合、処理はステップＳ２２９に進む。この場合、予め用意された３つの復号方式のいずれも選択することができないので（実装不可能であるので）、復号方式選択部５２４は、ステップＳ２２９において、例えばユーザに通知する等のエラー処理を行う。ステップＳ２２９の処理が終了すると、復号方式選択処理は終了され、処理は図４４のステップＳ２０４に戻り、ステップＳ２０５に処理が進む。【０４５６】
以上のように、復号選択制御部５０３は、符号化データ５４２のサイズ情報、資源情報、または復号パラメータ５３２等に基づいて、実際の条件下において、復号部３６がより効率的に動作するように、適切にハードウェア資源の割り当てを行うことができる。【０４５７】
なお、この割り当ては、どのような単位で行うようにしてもよく、例えば、プレシンクト毎に行うようにしてもよいし、ピクチャ毎に行うようにしてもよい。また、以上においては４つの割り当て方法を予め用意し、復号方式選択部５２４がその中から選択するように説明したが、用意するハードウェア資源の割り当て方法は、いくつであってもよい。つまり、復号プログラム５４４の数は任意である。さらに、ハードウェア資源の割り当て方法は、任意であり、上述した４つの割り当て方法以外の方法であってもよい。【０４５８】
また、８つのサブCPUコア４４２−１乃至サブCPUコア４４２−８の内、任意のサブCPUコア４４２を用いて、上述した復号方式Ａ乃至復号方式Ｃを併用する（並列的に動作させる）ようにしてもよい。つまり、例えば、復号選択制御部５０３は、プレシンクト毎やピクチャ毎に互いに異なる復号方式を採用し、ハードウェア資源の割り当て方を変更することもできる。このようにすることにより、復号選択制御部５０３は、ハードウェア資源をより有効に利用するように復号部３６の各処理にハードウェア資源を割り当て、復号部３６がより効率的に動作するようにすることができる。【０４５９】
次に、割り当ての具体的な例について説明する。【０４６０】
第１の例として、符号化される画像データ５４１は、その画像サイズが１９２０画素×１０８０画素であり、そのデータ構成が輝度成分Ｙと色差成分ＣよりなるコンポーネントＹ／Ｃであり、そのビット深度が１２ビットであるものとし、ウェーブレット変換に用いられるフィルタは、５×３フィルタであり、ウェーブレット変換の分解レベルは４であり、精度優先の設定はなされていないものとする。また、現在使用可能なサブCPUコア４４２の数が４個以上であるとし、各サブCPUコア４４２のLS４５１の容量が２５６［kByte］とする。【０４６１】
さらに符号化パラメータ５３１において符号化条件として、非可逆符号化とレイテンシ優先の設定がされている。また、復号パラメータ５３２において復号条件としてレイテンシ優先の設定がされている。【０４６２】
このような場合において、演算精度選択部５１３は、図４２に示されるフローチャートのように演算精度選択処理を行い、５×３フィルタ、可逆符号化、精度優先設定無し、および、ビット深度１３以下の条件に基づいて、１６ビット固定小数点型を選択する。また、途中計算用バッファ使用量算出部５１４は、ウェーブレット変換用関係テーブル５３３を用いて、５×３フィルタと分解数４の条件から、関係指数に「７．５」を設定し、さらに、入力画像の横サイズ（１９２０画素）と、演算精度（１６ビット）と、その関係指数（７．５）を乗算することにより、途中計算用バッファ使用量を算出する。【０４６３】
また、係数並び替え用バッファ使用量算出部５１５は、係数並び替え用関係テーブル５３４を用いて、５×３フィルタと分解数４の条件から、関係指数に「４２．２５」を設定し、さらに、入力画像の横サイズ（１９２０画素）と、単位サイズと、その関係指数（４２．２５）を乗算することにより、係数並び替え用バッファ使用量を算出する。【０４６４】
以上の算出結果および資源情報等に基づいて、符号化方式選択部５１６は、図４３に示されるフローチャートのように符号化方式選択処理を行う。LS４５１の使用可能量が、２コンポーネント分の途中計算用バッファ部５２として十分であるものの、２コンポーネント分の途中計算用バッファ部５２および係数並び替え用バッファ部５３としては不十分であり、優先項目はレイテンシであり、使用可能なサブCPUコア４４２の数が４個であるので、符号化方式選択部５１６は、図２４に示されるように割り当てを行う符号化方式Ｄを選択する。【０４６５】
このような割り当てにより、符号化部１４は、符号化処理を図２５に示されるように進めることができる。つまり、このような割り当てにより、符号化部１４は、低遅延で符号化処理を行うことができる。【０４６６】
なお、この条件において、復号部３６を割り当てる場合、復号方式選択部５２４は、図４５に示されるフローチャートのように復号方式選択処理を行う。LS４５１の使用可能量が、係数バッファ部６２として十分であり、優先項目がレイテンシであり、使用可能なサブCPUコア４４２の数が４個であるので、復号方式選択部５２４は、図３０に示されるように割り当てを行う復号方式Ｃを選択する。【０４６７】
このような割り当てにより、復号部３６は、復号処理を図３１に示されるように進めることができる。つまり、このような割り当てにより、復号部３６は、低遅延で復号処理を行うことができる。【０４６８】
例えば、テレビジョン会議システムのように、リアルタイムに画像の授受を行うことが要求されるシステムにおいては、低遅延で符号化処理や復号処理を行うことが求められる。このような場合でも、符号化選択制御部５０２および復号選択制御部５０３は、符号化部１４および復号部３６が低遅延に処理を行うことができるように、ハードウェア資源を適切に割り当てることができる。【０４６９】
第２の例として、符号化される画像データ５４１は、その画像サイズが１２８０画素×７２０画素であり、そのデータ構成が輝度成分Ｙと色差成分ＣよりなるコンポーネントＹ／Ｃであり、そのビット深度が１２ビットであるものとし、ウェーブレット変換に用いられるフィルタが９×７フィルタであり、ウェーブレット変換の分解レベルが４であるものとする。また、現在使用可能なサブCPUコア４４２の数が４個以上であるとし、各サブCPUコア４４２のLS４５１の容量が２５６［kByte］とする。【０４７０】
さらに符号化パラメータ５３１において符号化条件としてスループット優先の設定がされている。また、復号パラメータ５３２において復号条件としてスループット優先の設定がされている。【０４７１】
このような場合において、演算精度選択部５１３は、図４２に示されるフローチャートのように演算精度選択処理を行い、９×７フィルタの条件に基づいて、３２ビット浮動小数点型を選択する。また、途中計算用バッファ使用量算出部５１４は、ウェーブレット変換用関係テーブル５３３を用いて、９×７フィルタと分解数４の条件から、関係指数に「１１．２５」を設定し、さらに、入力画像の横サイズ（１２８０画素）と、演算精度（３２ビット）と、その関係指数（１１．２５）を乗算することにより、途中計算用バッファ使用量を算出する。【０４７２】
また、係数並び替え用バッファ使用量算出部５１５は、係数並び替え用関係テーブル５３４を用いて、９×７フィルタと分解数４の条件から、関係指数に「９４．７５」を設定し、さらに、入力画像の横サイズ（１２８０画素）と、単位サイズと、その関係指数（９４．７５）を乗算することにより、係数並び替え用バッファ使用量を算出する。【０４７３】
以上の算出結果および資源情報等に基づいて、符号化方式選択部５１６は、図４３に示されるフローチャートのように符号化方式選択処理を行う。LS４５１の使用可能量が、２コンポーネント分の途中計算用バッファ部５２として十分であるものの、２コンポーネント分の途中計算用バッファ部５２および係数並び替え用バッファ部５３としては不十分であり、優先項目がスループットであることから、符号化方式選択部５１６は、図２１に示されるように割り当てを行う符号化方式Ｂを選択する。【０４７４】
このような割り当てにより、符号化部１４は、符号化処理を図２０に示されるように進めることができる。つまり、このような割り当てにより、符号化部１４は、高スループットで符号化処理を行うことができる。【０４７５】
なお、この条件において、復号部３６を割り当てる場合、復号方式選択部５２４は、図４５に示されるフローチャートのように復号方式選択処理を行う。LS４５１の使用可能量が、係数バッファ部６２として十分であり、優先項目がスループットであり、さらに、LS４５１の使用可能量が、２コンポーネント分の係数バッファ部６２としても十分であるので、復号方式選択部５２４は、図２６に示されるように割り当てを行う復号方式Ａを選択する。【０４７６】
このような割り当てにより、復号部３６は、復号処理を図２７に示されるように進めることができる。つまり、このような割り当てにより、復号部３６は、高スループットで復号処理を行うことができる。【０４７７】
例えば、フレームレートが高い画像データを処理するシステムのように、符号化処理や復号処理をより高速に行うこと（高スループット）が要求される場合がある。このような場合でも、符号化選択制御部５０２および復号選択制御部５０３は、符号化部１４および復号部３６が高スループットで処理を行うことができるように、ハードウェア資源を適切に割り当てることができる。【０４７８】
第３の例として、符号化される画像データ５４１は、その画像サイズが４０９６画素×２１６０画素であり、そのデータ構成が輝度成分Ｙと色差成分ＣよりなるコンポーネントＹ／Ｃであり、そのビット深度が１２ビットであるものとし、ウェーブレット変換に用いられるフィルタが９×７フィルタであり、ウェーブレット変換の分解レベルが４であるものとする。また、現在使用可能なサブCPUコア４４２の数が４個以上であるとし、各サブCPUコア４４２のLS４５１の容量が２５６［kByte］とする。【０４７９】
さらに符号化パラメータ５３１において符号化条件としてスループット優先の設定がされている。また、復号パラメータ５３２において復号条件としてスループット優先の設定がされている。【０４８０】
このような場合において、演算精度選択部５１３は、図４２に示されるフローチャートのように演算精度選択処理を行い、９×７フィルタの条件に基づいて、３２ビット浮動小数点型を選択する。また、途中計算用バッファ使用量算出部５１４は、ウェーブレット変換用関係テーブル５３３を用いて、９×７フィルタと分解数４の条件から、関係指数に「１１．２５」を設定し、さらに、入力画像の横サイズ（１２８０画素）と、演算精度（３２ビット）と、その関係指数（１１．２５）を乗算することにより、途中計算用バッファ使用量を算出する。【０４８１】
また、係数並び替え用バッファ使用量算出部５１５は、係数並び替え用関係テーブル５３４を用いて、９×７フィルタと分解数４の条件から、関係指数に「９４．７５」を設定し、さらに、入力画像の横サイズ（１２８０画素）と、単位サイズと、その関係指数（９４．７５）を乗算することにより、係数並び替え用バッファ使用量を算出する。【０４８２】
以上の算出結果および資源情報等に基づいて、符号化方式選択部５１６は、図４３に示されるフローチャートのように符号化方式選択処理を行う。LS４５１の使用可能量が、２コンポーネント分の途中計算用バッファ部５２として不十分であるが、１コンポーネント分の途中計算用バッファ部５２としては十分であり、使用可能なサブCPUコア４４２の数が４個で、優先項目がスループットであることから、符号化方式選択部５１６は、図２２に示されるように割り当てを行う符号化方式Ｃを選択する。【０４８３】
このような割り当てにより、符号化部１４は、符号化処理を図２３に示されるように進めることができる。つまり、このような割り当てにより、符号化部１４は、符号化方式Ｄよりも高スループットで、かつ、符号化方式Ｂよりも低遅延に符号化処理を行うことができる。【０４８４】
なお、この条件において、復号部３６を割り当てる場合、復号方式選択部５２４は、図４５に示されるフローチャートのように復号方式選択処理を行う。LS４５１の使用可能量が、係数バッファ部６２として十分であり、優先項目がスループットであり、さらに、LS４５１の使用可能量が、２コンポーネント分の係数バッファ部６２として不十分であり、使用可能なサブCPUコア４４２の数が４個であるので、復号方式選択部５２４は、図２８に示されるように割り当てを行う復号方式Ｂを選択する。【０４８５】
このような割り当てにより、復号部３６は、復号処理を図２９に示されるように進めることができる。つまり、このような割り当てにより、復号部３６は、符号化方式Ｃよりも高スループットで、かつ、符号化方式Ａよりも低遅延に復号処理を行うことができる。【０４８６】
例えば、高精細映像の画像データを処理するシステムのように、符号化処理や復号処理をより高速に行うこと（高スループット）が要求されるものの、画像データのデータ量が多い場合がある。このような場合、スループット向上のために、１つのサブCPUコア４４２で符号化処理および復号処理を行うようにすると、LS４５１の容量が不足し、不要な遅延が増大する恐れがある。そのため、符号化選択制御部５０２および復号選択制御部５０３は、符号化部１４および復号部３６が、バッファ溢れ等の発生により遅延時間が不用に増大しないように、かつ、極力スループットを向上させるように、ハードウェア資源を適切に割り当てることができる。【０４８７】
なお、図３の符号化部１４および図１２の復号部３６においては、上述したように、符号化部１４で、ウェーブレット変換係数の並び替えの処理が行われた後に、復号部３６に符号化データが送信されるが、符号化部１４において、ウェーブレット変換係数の並び替えの処理をスキップし、符号化データを復号部３６に送信した後に、復号部３６においてウェーブレット変換係数の並び替えの処理が行われてもよい。即ち、図４６に示すように、符号化部１４でウェーブレット変換係数の並び替えの処理が行われた後に、復号部３６に符号化データが送信することも、図４７に示すように、復号部３６に符号化データが送信された後に、復号部３６でウェーブレット変換係数の並び替えの処理を行うこともできる。【０４８８】
この場合、復号部３６は、図４８に示すように、係数並び替え部６５を備える必要がある。図４８は、復号部３６の他の実施の形態を示すブロック図である。【０４８９】
図４８において、復号部３６は、図１２の復号部３６と同様に、エントロピ復号部６１、係数バッファ部６２、およびウェーブレット逆変換部６３を備えており、さらに、係数並び替え部６５を備えている。【０４９０】
係数並び替え部６５は、エントロピ復号部６１が復号した結果得られるウェーブレット変換係数を並び替えを行い、即ち、係数並び替え部６５は、図２の係数並び替え部５４と同様にウェーブレット変換係数を並び替えを行い、ウェーブレット逆変換部６３に供給して記憶させる。【０４９１】
符号化部１４または復号部３６のうちのいずれで、ウェーブレット変換係数の並び替えを行うかは、それぞれの装置のリソースに応じて適宜決定することができる。【０４９２】
また、符号化部１４では、エントロピ符号化部５５においてウェーブレット変換係数の量子化が行われているが、例えば、ウェーブレット変換部５１が出力したウェーブレット変換係数を量子化し、係数並び替え用バッファ部５３に格納する量子化部を設けてもよい。【０４９３】
図４９は、符号化部１４のさらに他の実施の形態を示すブロック図である。【０４９４】
図４９において、符号化部１４は、量子化部５６を備えており、符号化部１４を構成する他のブロックは、図３の符号化部１４と同様である。【０４９５】
量子化部５６は、ウェーブレット変換部５１が出力したウェーブレット変換係数を量子化し、係数並び替え用バッファ部５３に格納する。このように、エントロピ符号化部５５とは別に量子化部５６を設けることにより、各種の処理がより最適に行われるように、または、遅延時間がより小さくなるように、所定のCPUやメモリの割り当てを行うことができる。【０４９６】
なお、量子化部５６は、係数並び替え部５４とエントロピ符号化部５５に設けてもよく、この場合、係数並び替え部５４が出力するウェーブレット変換係数を量子化して、エントロピ符号化部５５に供給する。【０４９７】
次に、図５０は、復号部３６のさらに他の実施の形態を示すブロック図である。【０４９８】
図５０において、復号部３６は、逆量子化部６６を備えており、復号部３６を構成する他のブロックは、図４８の復号部３６と同様である。【０４９９】
逆量子化部６６は、係数並び替え部６５が出力するウェーブレット変換係数を量子化し、ウェーブレット逆変換部６３に供給する。逆量子化部６６を設けることにより、量子化部５６を設けた場合と同様に、各種の処理がより最適に行われるように、または、遅延時間がより小さくなるように、所定のCPUやメモリの割り当てを行うことができる。【０５００】
なお、逆量子化部６６は、エントロピ復号部６１と係数バッファ部６２との間に設けられていてもよく、この場合、逆量子化部６６は、エントロピ復号部６１が出力する係数データを逆量子化し、係数バッファ部６２に格納する。【０５０１】
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。【０５０２】
例えば、図１９に示されるように、符号化部１４が、ウェーブレット変換部５１、係数並び替え部５４、およびエントロピ符号化部５５の各処理を行う１つの演算処理部と、途中計算用バッファ部５２および係数並び替え用バッファ部５３が形成される1つの記憶部により構成されるようにしてもよい。【０５０３】
同様に、符号化部１４が、図２１に示されるように、ウェーブレット変換部５１、係数並び替え部５４、およびエントロピ符号化部５５の各処理を行う１つの演算処理部と、途中計算用バッファ部５２が形成される高速に読み出しおよび書き込みが可能な第１の記憶部と、係数並び替え用バッファ部５３が形成される大容量の第２の記憶部とにより構成されるようにしてもよい。【０５０４】
また、同様に、符号化部１４が、図２２に示されるように、ウェーブレット変換部５１−１、係数並び替え部５４−１、およびエントロピ符号化部５５−１の各処理を行う第１の演算処理部と、途中計算用バッファ部５２−１が形成される高速に読み出しおよび書き込みが可能な第１の記憶部と、ウェーブレット変換部５１−２、係数並び替え部５４−２、およびエントロピ符号化部５５−２の各処理を行う第２の演算処理部と、途中計算用バッファ部５２−２が形成される高速に読み出しおよび書き込みが可能な第２の記憶部と、係数並び替え用バッファ部５３−１および係数並び替え用バッファ部５３−２が形成される大容量の第３の記憶部とにより構成されるようにしてもよい。【０５０５】
さらに、同様に、符号化部１４が、図２４に示されるように、ウェーブレット変換部５１−１の処理を行う第１の演算処理部と、途中計算用バッファ部５２−１が形成される高速に読み出しおよび書き込みが可能な第１の記憶部と、係数並び替え部５４−１およびエントロピ符号化部５５−１の各処理を行う第２の演算処理部と、ウェーブレット変換部５１−２の処理を行う第３の演算処理部と、途中計算用バッファ部５２−２が形成される高速に読み出しおよび書き込みが可能な第２の記憶部と、係数並び替え部５４−２およびエントロピ符号化部５５−２の各処理を行う第４の演算処理部と、係数並び替え用バッファ部５３−１および係数並び替え用バッファ部５３−２が形成される大容量の第３の記憶部とにより構成されるようにしてもよい。【０５０６】
同様に、復号部３６が、図２６に示されるように、エントロピ復号部６１およびウェーブレット逆変換部６３の各処理を行う１つの演算処理部と、係数バッファ部６２が形成される記憶部とにより構成されるようにしてもよい。【０５０７】
また、同様に、復号部３６が、図２８に示されるように、エントロピ復号部６１−１およびウェーブレット逆変換部６３−１の各処理を行う第１の演算処理部と、係数バッファ部６２−１が形成される第１の記憶部と、エントロピ復号部６１−２およびウェーブレット逆変換部６３−２の各処理を行う第２の演算処理部と、係数バッファ部６２−２が形成される第２の記憶部とにより構成されるようにしてもよい。【０５０８】
さらに、同様に、復号部３６が、図３０に示されるように、エントロピ復号部６１−１の処理を行う第１の演算処理部と、ウェーブレット逆変換部６３−１の処理を行う第２の演算処理部と、係数バッファ部６２−１が形成される第１の記憶部と、エントロピ復号部６１−２の処理を行う第３の演算処理部と、ウェーブレット逆変換部６３−２の処理を行う第４の演算処理部と、係数バッファ部６２−２が形成される第２の記憶部とにより構成されるようにしてもよい。【０５０９】
このように符号化部１４や復号部３６をハードウェアで構成する場合も、上述したようにソフトウェアプログラムをハードウェアに割り当てた場合と同様の効果を得ることができる。【０５１０】
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ、または、複数の装置よりなる情報処理システムの情報処理装置などに、プログラム記録媒体からインストールされる。【０５１１】
この記録媒体は、例えば、図１８や図３６に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む）、光磁気ディスク（MD（Mini-Disk）（登録商標）を含む）、もしくは半導体メモリなどよりなるリムーバブルメディア１３１またはリムーバブルメディア３１１により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM１０２や、記憶部１２３または記憶装置３０３に含まれるハードディスク、または、HDD４０５などで構成される。【０５１２】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。【０５１３】
また、本明細書において、システムとは、複数のデバイス（装置）により構成される装置全体を表すものである。【０５１４】
なお、以上において、１つの装置として説明した構成を分割し、複数の装置として構成するようにしてもよい。逆に、以上において複数の装置として説明した構成をまとめて１つの装置として構成されるようにしてもよい。また、各装置の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置の構成の一部を他の装置の構成に含めるようにしてもよい。
つまり、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図１】
2008143156.tif 000003
【図２】
2008143156.tif 000004
【図３】
2008143156.tif 000005
【図４】
2008143156.tif 000006
【図５】
2008143156.tif 000007
【図６】
2008143156.tif 000008
【図７】
2008143156.tif 000009
【図８】
2008143156.tif 000010
【図９】
2008143156.tif 000011
【図１０】
2008143156.tif 000012
【図１１】
2008143156.tif 000013
【図１２】
2008143156.tif 000014
【図１３】
2008143156.tif 000015
【図１４】
2008143156.tif 000016
【図１５】
2008143156.tif 000017
【図１６】
2008143156.tif 000018
【図１７】
2008143156.tif 000019
【図１８】
2008143156.tif 000020
【図１９】
2008143156.tif 000021
【図２０】
2008143156.tif 000022
【図２１】
2008143156.tif 000023
【図２２】
2008143156.tif 000024
【図２３】
2008143156.tif 000025
【図２４】
2008143156.tif 000026
【図２５】
2008143156.tif 000027
【図２６】
2008143156.tif 000028
【図２７】
2008143156.tif 000029
【図２８】
2008143156.tif 000030
【図２９】
2008143156.tif 000031
【図３０】
2008143156.tif 000032
【図３１】
2008143156.tif 000033
【図３２】
2008143156.tif 000034
【図３３】
2008143156.tif 000035
【図３４】
2008143156.tif 000036
【図３５】
2008143156.tif 000037
【図３６】
2008143156.tif 000038
【図３７】
2008143156.tif 000039
【図３８】
2008143156.tif 000040
【図３９】
2008143156.tif 000041
【図４０】
2008143156.tif 000042
【図４１】
2008143156.tif 000043
【図４２】
2008143156.tif 000044
【図４３】
2008143156.tif 000045
【図４４】
2008143156.tif 000046
【図４５】
2008143156.tif 000047
【図４６】
2008143156.tif 000048
【図４７】
2008143156.tif 000049
【図４８】
2008143156.tif 000050
【図４９】
2008143156.tif 000051
【図５０】
2008143156.tif 000052
【国際調査報告】
2008143156.tif 000053
2008143156.tif 000054