(57)【要約】【課題】符号化処理または復号処理においてハードウェア資源をより有効に活用することができるようにする。【解決手段】制御部１０１は、画像符号化部１１２の画像符号化処理の処理速度が入力系１１１の処理速度より速い場合、画像符号化処理の処理速度を減速させ、入力系１１１の処理速度に合わせる。また、制御部１０１は、画像符号化部１１２の画像符号化処理の処理速度が出力系１１３の処理速度より速い場合、画像符号化処理の処理速度を減速させ、画像符号化部１１２の画像符号化処理の処理速度が出力系１１３の処理速度より遅い場合、画像符号化処理の処理速度を加速させることにより、画像符号化処理の処理速度を出力系１１３の処理速度に合わせる。本発明は、例えば、符号化装置および復号装置に適用することができる。【選択図】図１
2010244316.tif 000002
【特許請求の範囲】
【請求項１】
符号化処理の対象である画像データに対して、前記符号化処理の前に所定の第１の処理を行う第１の処理手段と、
前記第１の処理手段により前記第１の処理が行われた前記画像データに対して前記符号化処理を行い、コードストリームを生成する符号化手段と、
前記符号化手段による前記符号化処理により前記画像データが符号化されて生成された前記コードストリームに対して、所定の第２の処理を行う第２の処理手段と、
前記第１の処理手段による前記第１の処理の処理速度、および、前記第２の処理手段による前記第２の処理の処理速度に応じて、前記符号化手段による前記符号化処理の処理速度を制御する制御手段と
を備える符号化装置。
【請求項２】
前記制御手段は、前記符号化処理の処理速度が、前記第１の処理の処理速度よりも速い場合、前記符号化処理の処理速度を低下させる
請求項１に記載の符号化装置。
【請求項３】
前記制御手段は、前記符号化処理の処理速度が、前記第２の処理の処理速度よりも速い場合、前記符号化処理の処理速度を低下させる
請求項１に記載の符号化装置。
【請求項４】
前記制御手段は、前記符号化処理の処理速度が、前記第２の処理の処理速度よりも遅い場合、前記符号化処理の処理速度を上昇させる
請求項１に記載の符号化装置。
【請求項５】
前記符号化手段は、複数のコアを持つプロセッサによって実現され、
前記制御手段は、前記符号化処理に割り当てる前記コアの数を増減させることにより、前記符号化処理の処理速度を制御する
請求項１に記載の符号化装置。
【請求項６】
前記符号化手段は、可逆符号化方式により前記符号化処理を行う
請求項１に記載の符号化装置。
【請求項７】
前記符号化手段は、JPEG2000方式の可逆符号化方式により前記符号化処理を行い、
前記制御手段は、前記画像データのコードブロック毎のゼロビットプレーン数を取得し、前記ゼロビットプレーン数から有効ビットプレーン数のピクチャ毎の総和を算出し、前記有効ビットプレーン数のピクチャ毎の総和を用いて、前記符号化手段による前記符号化処理の処理速度を制御する
請求項１に記載の符号化装置。
【請求項８】
前記制御手段による前記符号化処理の処理速度の制御に関する負荷制御情報を、前記コードストリームに付加する付加手段をさらに備える
請求項１に記載の符号化装置。
【請求項９】
符号化装置の第１の処理手段が、符号化処理の対象である画像データに対して、前記符号化処理の前に所定の第１の処理を行い、
前記符号化装置の符号化手段が、前記第１の処理が行われた前記画像データに対して前記符号化処理を行い、コードストリームを生成し、
前記符号化装置の第２の処理手段が、前記符号化処理により前記画像データが符号化されて生成された前記コードストリームに対して、所定の第２の処理を行い、
前記符号化装置の制御手段が、前記第１の処理の処理速度および前記第２の処理の処理速度に応じて、前記符号化処理の処理速度を制御する
符号化方法。
【請求項１０】
復号処理の対象である、画像データが符号化されて生成されたコードストリームに対して、前記復号処理の前に所定の第１の処理を行う第１の処理手段と、
前記第１の処理手段により前記第１の処理が行われた前記コードストリームに対して前記復号処理を行い、前記画像データを生成する復号手段と、
前記復号手段による前記復号処理により前記コードストリームが復号されて生成された前記画像データに対して、所定の第２の処理を行う第２の処理手段と、
前記第１の処理手段による前記第１の処理の処理速度、および、前記第２の処理手段による前記第２の処理の処理速度に応じて、前記復号手段による前記復号処理の処理速度を制御する制御手段と
を備える復号装置。
【請求項１１】
前記制御手段は、前記復号処理の処理速度が、前記第１の処理の処理速度よりも遅い場合、前記復号処理の処理速度を上昇させる
請求項１０に記載の復号装置。
【請求項１２】
前記制御手段は、前記復号処理の処理速度が、前記第１の処理の処理速度よりも速い場合、前記復号処理の処理速度を低下させる
請求項１０に記載の復号装置。
【請求項１３】
前記制御手段は、前記復号処理の処理速度が、前記第２の処理の処理速度よりも速い場合、前記復号処理の処理速度を低下させる
請求項１０に記載の復号装置。
【請求項１４】
前記復号手段は、複数のコアを持つプロセッサによって実現され、
前記制御手段は、前記復号処理に割り当てる前記コアの数を増減させることにより、前記復号処理の処理速度を制御する
請求項１０に記載の復号装置。
【請求項１５】
前記復号手段は、JPEG2000方式の可逆復号方式により前記復号処理を行う
請求項１０に記載の復号装置。
【請求項１６】
前記制御手段は、前記コードストリームのファイルサイズの大きさに基づいて、前記復号手段による前記復号処理の処理速度を制御する
請求項１０に記載の復号装置。
【請求項１７】
復号装置の第１の処理手段が、復号処理の対象である、画像データが符号化されて生成されたコードストリームに対して、前記復号処理の前に所定の第１の処理を行い、
前記復号装置の復号手段が、前記第１の処理が行われた前記コードストリームに対して前記復号処理を行い、前記画像データを生成し、
前記復号装置の第２の処理手段が、前記復号処理により前記コードストリームが復号されて生成された前記画像データに対して、所定の第２の処理を行い、
前記復号装置の制御手段が、前記第１の処理の処理速度および前記第２の処理の処理速度に応じて、前記復号処理の処理速度を制御する
復号方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化装置および方法、並びに、復号装置および方法に関し、特に、符号化処理または復号処理においてハードウェア資源をより有効に活用することができるようにした符号化装置および方法、並びに、復号装置および方法に関する。
【背景技術】
【０００２】
従来のアーカイブシステムまたは画像のデータベースでは、マスタ画像と呼ばれる非圧縮の画像が記憶・保持されており、そのマスタ画像が読み出されエンコーダにより圧縮される。また、その圧縮結果のファイルは、ネットワーク等を介して配信されたり、記憶媒体に保存されたりする（例えば特許文献１および特許文献２参照）。
【０００３】
また、例えば、画像データが圧縮されたコードストリームがネットワークを介して受信され、デコーダにより伸長される。伸長結果の画像データは、ネットワーク等を介して配信されたり、記憶媒体に保存されたりする。
【先行技術文献】
【非特許文献】
【０００４】
【特許文献１】特許３５１６４５０号公報
【特許文献２】特許３５９４０１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、このようなシステムにおいて、エンコーダやデコーダの処理速度に対して、記憶媒体の読み出し速度や書き込み速度が十分に高速で無いことも考えられる。同様に、ネットワークの伝送速度がエンコーダやデコーダの処理速度に対して十分に高速で無いことも考えられる。
【０００６】
つまり、エンコーダやデコーダの処理速度に対して、それらの前段の処理部における処理速度、または、それらの後段の処理部における処理速度が十分に高速でないことが考えられる。換言すれば、例えば、エンコーダやデコーダの処理速度に対して、処理対象の画像データのエンコーダへの入力速度や処理対象のコードストリームのデコーダへの入力速度、または、処理結果のコードストリームのエンコーダからの出力速度や処理結果の画像データのデコーダからの出力速度が十分に高速でないことが考えられる。
【０００７】
このような場合、システム全体の処理速度が前段や後段の処理部における処理速度によって決定されるので、仮にエンコーダやデコーダの処理速度をより高速にしてもシステム全体の処理速度が向上しない、すなわち、不要に負荷を増大させてしまう恐れがあった。
【０００８】
また、逆に、エンコーダやデコーダの処理速度が、それらの前段の処理部における処理速度、および、それらの後段の処理部における処理速度に対して十分に高速でないことも考えられる。
【０００９】
このような場合、システム全体の処理速度がエンコーダやデコーダの処理速度によって決定されるので、仮にエンコーダやデコーダの処理速度をより高速にすることができるのであれば、不要にシステム全体の処理速度を低減させている恐れがあった。
【００１０】
以上のように、各処理部の処理速度の関係を考慮せずに、各処理部の処理速度を個別に調整しても、システム全体の処理速度が向上せずに、不要にハードウェア資源を消費してしまう恐れがあった。
【００１１】
特に、可逆圧縮の場合、その圧縮率が画像の難易度によって大きく変化するので、符号化や復号の処理速度が画像によって大きく変化する恐れがある。したがって、各処理部の処理速度の関係がより不安定になるので、より不要にハードウェア資源を消費してしまう恐れがあった。
【００１２】
本発明は、このような状況に鑑みて提案されたものであり、符号化処理または復号処理においてハードウェア資源をより有効に活用することができるようにするものである。
【課題を解決するための手段】
【００１３】
本発明の一側面は、符号化処理の対象である画像データに対して、前記符号化処理の前に所定の第１の処理を行う第１の処理手段と、前記第１の処理手段により前記第１の処理が行われた前記画像データに対して前記符号化処理を行い、コードストリームを生成する符号化手段と、前記符号化手段による前記符号化処理により前記画像データが符号化されて生成された前記コードストリームに対して、所定の第２の処理を行う第２の処理手段と、前記第１の処理手段による前記第１の処理の処理速度、および、前記第２の処理手段による前記第２の処理の処理速度に応じて、前記符号化手段による前記符号化処理の処理速度を制御する制御手段とを備える符号化装置である。
【００１４】
前記制御手段は、前記符号化処理の処理速度が、前記第１の処理の処理速度よりも速い場合、前記符号化処理の処理速度を低下させることができる。
【００１５】
前記制御手段は、前記符号化処理の処理速度が、前記第２の処理の処理速度よりも速い場合、前記符号化処理の処理速度を低下させることができる。
【００１６】
前記制御手段は、前記符号化処理の処理速度が、前記第２の処理の処理速度よりも遅い場合、前記符号化処理の処理速度を上昇させることができる。
【００１７】
前記符号化手段は、複数のコアを持つプロセッサによって実現され、前記制御手段は、前記符号化処理に割り当てる前記コアの数を増減させることにより、前記符号化処理の処理速度を制御することができる。
【００１８】
前記符号化手段は、可逆符号化方式により前記符号化処理を行うことができる。
【００１９】
前記符号化手段は、JPEG2000方式の可逆符号化方式により前記符号化処理を行い、前記制御手段は、前記画像データのコードブロック毎のゼロビットプレーン数を取得し、前記ゼロビットプレーン数から有効ビットプレーン数のピクチャ毎の総和を算出し、前記有効ビットプレーン数のピクチャ毎の総和を用いて、前記符号化手段による前記符号化処理の処理速度を制御することができる。
【００２０】
前記制御手段による前記符号化処理の処理速度の制御に関する負荷制御情報を、前記コードストリームに付加する付加手段をさらに備えることができる。
【００２１】
本発明の一側面は、また、符号化装置の第１の処理手段が、符号化処理の対象である画像データに対して、前記符号化処理の前に所定の第１の処理を行い、前記符号化装置の符号化手段が、前記第１の処理が行われた前記画像データに対して前記符号化処理を行い、コードストリームを生成し、前記符号化装置の第２の処理手段が、前記符号化処理により前記画像データが符号化されて生成された前記コードストリームに対して、所定の第２の処理を行い、前記符号化装置の制御手段が、前記第１の処理の処理速度および前記第２の処理の処理速度に応じて、前記符号化処理の処理速度を制御する符号化方法である。
【００２２】
本発明の他の側面は、復号処理の対象である、画像データが符号化されて生成されたコードストリームに対して、前記復号処理の前に所定の第１の処理を行う第１の処理手段と、前記第１の処理手段により前記第１の処理が行われた前記コードストリームに対して前記復号処理を行い、前記画像データを生成する復号手段と、前記復号手段による前記復号処理により前記コードストリームが復号されて生成された前記画像データに対して、所定の第２の処理を行う第２の処理手段と、前記第１の処理手段による前記第１の処理の処理速度、および、前記第２の処理手段による前記第２の処理の処理速度に応じて、前記復号手段による前記復号処理の処理速度を制御する制御手段とを備える復号装置である。
【００２３】
前記制御手段は、前記復号処理の処理速度が、前記第１の処理の処理速度よりも遅い場合、前記復号処理の処理速度を上昇させることができる。
【００２４】
前記制御手段は、前記復号処理の処理速度が、前記第１の処理の処理速度よりも速い場合、前記復号処理の処理速度を低下させることができる。
【００２５】
前記制御手段は、前記復号処理の処理速度が、前記第２の処理の処理速度よりも速い場合、前記復号処理の処理速度を低下させることができる。
【００２６】
前記復号手段は、複数のコアを持つプロセッサによって実現され、前記制御手段は、前記復号処理に割り当てる前記コアの数を増減させることにより、前記復号処理の処理速度を制御することができる。
【００２７】
前記復号手段は、複数のコアを持つプロセッサによって実現され、前記制御手段は、前記復号処理に割り当てる前記コアの数を増減させることにより、前記復号処理の処理速度を制御することができる。
【００２８】
前記制御手段は、前記コードストリームのファイルサイズの大きさに基づいて、前記復号手段による前記復号処理の処理速度を制御することができる。
【００２９】
本発明の他の側面は、また、復号装置の第１の処理手段が、復号処理の対象である、画像データが符号化されて生成されたコードストリームに対して、前記復号処理の前に所定の第１の処理を行い、前記復号装置の復号手段が、前記第１の処理が行われた前記コードストリームに対して前記復号処理を行い、前記画像データを生成し、前記復号装置の第２の処理手段が、前記復号処理により前記コードストリームが復号されて生成された前記画像データに対して、所定の第２の処理を行い、前記復号装置の制御手段が、前記第１の処理の処理速度および前記第２の処理の処理速度に応じて、前記復号処理の処理速度を制御する復号方法である。
【００３０】
本発明の一側面においては、符号化処理の対象である画像データに対して、前記符号化処理の前に所定の第１の処理が行われ、前記第１の処理が行われた前記画像データに対して前記符号化処理が行われ、コードストリームが生成され、前記符号化処理により前記画像データが符号化されて生成された前記コードストリームに対して、所定の第２の処理が行われ、前記第１の処理の処理速度および前記第２の処理の処理速度に応じて、前記符号化処理の処理速度が制御される。
【００３１】
本発明の他の側面においては、復号処理の対象である、画像データが符号化されて生成されたコードストリームに対して、復号処理の前に所定の第１の処理が行われ、第１の処理が行われたコードストリームに対して復号処理が行われ、画像データが生成され、復号処理によりコードストリームが復号されて生成された画像データに対して、所定の第２の処理が行われ、第１の処理の処理速度および第２の処理の処理速度に応じて、復号処理の処理速度が制御される。
【発明の効果】
【００３２】
本発明によれば、情報を処理することができる。特に、符号化処理または復号処理においてハードウェア資源をより有効に活用することができる。
【図面の簡単な説明】
【００３３】
【図１】本発明を適用した符号化装置の主な構成例を示すブロック図である。
【図２】図１の符号化装置の具体的な例を示す図である。
【図３】図１の符号化装置の具体的な例を示す図である。
【図４】制御部の主な構成例を示すブロック図である。
【図５】符号化制御処理の流れの例を説明するフローチャートである。
【図６】負荷制御処理の流れの例を説明するフローチャートである。
【図７】画像符号化部の主な構成例を示すブロック図である。
【図８】サブバンドの例を説明する図である。
【図９】コードブロックの例を説明する図である。
【図１０】ビットプレーンの例を説明する図である。
【図１１】制御部の主な構成例を示すブロック図である。
【図１２】ゼロビットプレーンの例を説明する図である。
【図１３】有効ビットプレーン数から処理速度の補正量を求めるためのテーブル情報の例を説明する図である。
【図１４】符号化制御処理の流れの例を説明するフローチャートである。
【図１５】ハードウェア資源の例を説明するブロック図である。
【図１６】制御部の主な構成例を示すブロック図である。
【図１７】符号化制御処理の流れの例を説明するフローチャートである。
【図１８】制御部の主な構成例を示すブロック図である。
【図１９】メインヘッダの例を説明する模式図である。
【図２０】コマンドシンタックスの構成例を説明する図である。
【図２１】符号化制御処理の流れの例を説明するフローチャートである。
【図２２】復号装置の主な構成例を示すブロック図である。
【図２３】図１の符号化装置の具体的な例を示す図である。
【図２４】図１の符号化装置の具体的な例を示す図である。
【図２５】制御部の主な構成例を示すブロック図である。
【図２６】復号制御処理の流れの例を説明するフローチャートである。
【図２７】負荷制御処理の流れの例を説明するフローチャートである。
【図２８】画像復号部の主な構成例を示すブロック図である。
【図２９】制御部の主な構成例を示すブロック図である。
【図３０】復号制御処理の流れの例を説明するフローチャートである。
【図３１】制御部の主な構成例を示すブロック図である。
【図３２】復号制御処理の流れの例を説明するフローチャートである。
【発明を実施するための形態】
【００３４】
以下、発明を実施するための形態（以下実施の形態とする）について 説明する。なお、説明は以下の順序で行う。
１．第１の実施の形態（符号化制御処理）
２．第２の実施の形態（符号化方式がJPEG2000の場合の符号化制御処理）
３．第３の実施の形態（ハードウェア資源を割り当てる符号化制御処理）
４．第４の実施の形態（復号制御処理に負荷情報を提供する符号化制御処理）
５．第５の実施の形態（復号制御処理）
６．第６の実施の形態（符号化方式がJPEG2000の場合の復号制御処理）
７．第７の実施の形態（ハードウェア資源を割り当てる復号制御処理）
【００３５】
＜１．第１の実施の形態＞
［符号化装置の構成］
図１は、本発明を適用した符号化装置の主な構成例を示すブロック図である。図１に示される符号化装置１００は、画像データを所定の符号化方式で符号化し、コードストリームを生成する装置である。符号化装置１００は、制御部１０１、入力系１１１、画像符号化部１１２、および出力系１１３を有する。
【００３６】
制御部１０１は、入力系１１１乃至出力系１１３を制御し、画像データの符号化に関する処理を実行させる。
【００３７】
入力系１１１は、任意のハードウェア資源により実現される１つまたは複数の処理部よりなる系である。入力系１１１は、制御部１０１により制御され、符号化処理の対象となる画像データに対して、例えば、記憶媒体から画像データを読み出したり、ネットワークを介して他の装置より送信された画像データを受信したりする等、任意の処理を行う。また、入力系１１１は、制御部１０１により制御され、矢印１２１に示されるように、任意の処理を施したその画像データを画像符号化部１１２に供給する。
【００３８】
画像符号化部１１２は、制御部１０１により制御され、矢印１２１に示されるように、入力系１１１より供給される画像データを取得する。また、画像符号化部１１２は、制御部１０１により制御され、取得した画像データを所定の方式で符号化してコードストリームを生成する。さらに、画像符号化部１１２は、制御部１０１により制御され、矢印１２２に示されるように、生成したコードストリームを出力系１１３に供給する。
【００３９】
出力系１１３は、任意のハードウェア資源により実現される１つまたは複数の処理部よりなる系である。出力系１１３は、制御部１０１により制御され、矢印１２２に示されるように、画像符号化部１１２より供給されるコードストリームを取得する。また、出力系１１３は、制御部１０１により制御され、取得したコードストリームに対して、例えば記憶媒体に記憶したり、ネットワークを介して他の装置に送信したりする等、任意の処理を行う。
【００４０】
制御部１０１は、矢印１３１に示されるように、入力系１１１から、入力系１１１が行う処理の処理速度を示す入力レート情報を取得する。同様に、制御部１０１は、矢印１３２に示されるように、出力系１１３から、出力系１１３が行う処理の処理速度を示す出力レート情報を取得する。さらに、制御部１０１は、矢印１３３に示されるように、画像符号化部１１２から、画像符号化部１１２が行う画像符号化処理の負荷量を示す負荷情報１３３を取得する。
【００４１】
また、制御部１０１は、矢印１３４に示されるように入力系１１１に制御情報を供給して入力系１１１の処理を制御する。さらに、制御部１０１は、矢印１３５に示されるように画像符号化部１１２に制御情報を供給して画像符号化処理を制御する。また、制御部１０１は、矢印１３６に示されるように出力系１１３に制御情報を供給して出力系１１３の処理を制御する。
【００４２】
このとき、制御部１０１は、入力レート情報、出力レート情報、および負荷情報に基づいて、画像符号化部１１２が行う画像符号化処理の処理速度を決定する。
【００４３】
ここで処理速度とは、単位時間当たりの処理量（所謂スループット）である。この処理速度は、例えば、単位時間当たりに処理される画像データ（コードストリーム）のデータ量（所謂レート）により示される。つまり、入力レート情報は、入力系１１１において単位時間辺りに処理される画像データのデータ量（入力レート）を示す情報である。同様に、出力レート情報は、出力系１１３において単位時間辺りに処理される画像データのデータ量（出力レート）を示す情報である。
【００４４】
この入力レート情報は、入力系１１１に割り当てられたハードウェア資源の仕様であってもよいし、入力系１１１において実際に行われる処理の速度計測結果であってもよい。同様に、出力レート情報は、出力系１１３に割り当てられたハードウェア資源の仕様であってもよいし、出力系１１３において実際に行われる処理の速度計測結果であってもよい。
【００４５】
なお、入力レート情報および出力レート情報は、例えば単位時間当たりに処理されるデータ量のように、直接的にスループットを示す情報であってもよいが、例えばハードウェア資源の量のように、単位時間当たりの処理量に変換可能な、間接的にスループットを示す情報であってもよい。もちろん、入力レート情報および出力レート情報は、ハードウェア資源の仕様と速度計測結果を併用する等、複数の情報を含むようにしてもよい。
【００４６】
負荷情報は、画像符号化部１１２により行われる画像符号化処理の、予測される負荷の大きさを示す予測情報である。換言すれば、負荷情報は、画像符号化処理の処理速度（スループット）の予測値を示す。より具体的には、負荷情報は、例えば、画像データの符号化難易度を示す情報、過去の画像データのスループット、ハードウェア資源の割当量を示す情報、またはその他の設定情報等よりなる。つまり負荷情報は、画像符号化処理のスループットの予測値を求めることができる情報であればどのような情報であってもよい。
【００４７】
制御部１０１は、負荷情報より求められる画像符号化処理の処理速度を、入力系１１１の処理の処理速度や、出力系１１３の処理の処理速度と比較し、それらの比較結果に基づいて画像符号化処理の処理速度を制御する。
【００４８】
例えば、制御部１０１は、画像符号化処理の処理速度が入力系１１１の処理の処理速度より速い場合、画像符号化処理の処理速度を入力系１１１の処理速度まで低下させる。また、例えば、制御部１０１は、画像符号化処理の処理速度が出力系１１３の処理の処理速度より速い場合、画像符号化処理の処理速度を出力系１１３の処理速度まで低下させる。さらに、例えば、制御部１０１は、画像符号化処理の処理速度が出力系１１３の処理の処理速度より遅い場合、画像符号化処理の処理速度を出力系１１３の処理速度まで上昇させる。
【００４９】
このように、制御部１０１は、入力系１１１や出力系１１３等、画像符号化部１１２の前段や後段の処理部が行う処理の処理速度も考慮して画像符号化処理の処理速度を決定するので、符号化装置１００全体の処理速度を向上させるように画像符号化処理の処理速度を制御することができる。
【００５０】
このような制御により符号化装置１００は、不要な負荷の増大を抑制するように、符号化処理にハードウェア資源を割り当てることができる。つまり、符号化装置１００は、符号化処理においてハードウェア資源をより有効に活用することができる。
【００５１】
次に、このような符号化装置１００の構成の具体的な例について説明する。
【００５２】
図２は、図１の符号化装置の具体的な例を示す図である。符号化装置１００Ａは、図１の符号化装置１００の構成の具体的な一例を示す。図２に示されるように、符号化装置１００Ａは、制御部１０１と画像符号化部１１２がバス１４１に接続される。バス１４１には、さらに、記憶部１４２、キャッシュメモリ１４３、および入出力インタフェース１４４が接続される。
【００５３】
バス１４１は、バス１４１に接続される処理部間で授受されるデータの伝送媒体である。例えばPCIバス（Peripheral Components Interconnect bus）等により構成される。記憶部１４２は、データを記憶する記憶媒体である。例えば、ハードディスクやフラッシュメモリ等により構成される。
【００５４】
キャッシュメモリ１４３は、データを一時的に保持する記憶媒体である。例えばRAM（Random Access Memory）等の、記憶部１４２の読み出し速度や、入出力インタフェースの１４４のスループットに比べて高速にデータの授受が可能な半導体メモリにより構成される。
【００５５】
入出力インタフェース１４４は、符号化装置１００Ａのデータの授受を行う。入出力インタフェース１４４は、例えば、符号化装置１００Ａの外部のネットワーク１５１より供給されるデータを取得し、そのデータを、バス１４１を介してキャッシュメモリ１４３等に供給する。また、入出力インタフェース１４４は、例えば、画像符号化部１１２等からバス１４１を介して供給されるデータを取得し、そのデータを、ネットワーク１５１を介して他の装置に供給する。例えば、HDMI（High-Definition Multimedia Interface）、HD-SDI（High Definition Serial Digital Interface）、Ethernet（登録商標）（LAN（Local Area Network）ボード）等により構成される。
【００５６】
このような構成の符号化装置１００Ａにおいて、符号化対象の画像データは記憶部１４２に記憶されている。制御部１０１は、点線矢印１６１に示されるように、記憶部１４２からその画像データを読み出し、バス１４１を介してキャッシュメモリ１４３に供給させ、キャッシュメモリ１４３にその画像データを保持させる。
【００５７】
制御部１０１は、また、点線矢印１６２に示されるように、キャッシュメモリ１４３に保持されている画像データを読み出し、バス１４１を介して画像符号化部１１２に供給させ、符号化させる。
【００５８】
制御部１０１は、さらに、点線１６３に示されるように、画像データが符号化されたコードストリームを、バス１４１を介して入出力インタフェース１４４に供給させ、入出力インタフェース１４４から外部のネットワーク１５１に出力させる。
【００５９】
つまり、この符号化装置１００Ａにおいては、一点鎖線で示されるように、バス１４１、記憶部１４２、およびキャッシュメモリ１４３により入力系１１１が形成され、二点鎖線で示されるように、バス１４１および入出力インタフェース１４４により出力系１１３が形成される。
【００６０】
入力系１１１において、一般的に、記憶部１４２からのデータの読み出しレートは、バス１４１の伝送レートやキャッシュメモリ１４３のデータ入出力レートより低い。従って、図１を参照して説明したように、制御部１０１は、画像符号化部１１２の画像符号化処理の処理速度（スループット）が記憶部１４２のデータ読み出し速度より速い場合、画像符号化部１１２の画像符号化処理の処理速度を減速させ、記憶部１４２のデータ読み出し速度（入力系１１１の処理速度）に合わせる。
【００６１】
出力系１１３において、一般的に、入出力インタフェース１４４のデータの入出力レート（スループット）は、バス１４１の伝送レートより低い。従って、図１を参照して説明したように、制御部１０１は、画像符号化部１１２の画像符号化処理の処理速度（スループット）が入出力インタフェース１４４のデータの入出力速度より速い場合、画像符号化部１１２の画像符号化処理の処理速度を減速させ、入出力インタフェース１４４のデータ入出力速度（出力系１１３の処理速度）に合わせる。
【００６２】
また、図１を参照して説明したように、制御部１０１は、画像符号化部１１２の画像符号化処理の処理速度（スループット）が入出力インタフェース１４４のデータの入出力速度より遅い場合、画像符号化部１１２の画像符号化処理の処理速度を加速させ、入出力インタフェース１４４のデータ入出力速度（出力系１１３の処理速度）に合わせる。
【００６３】
このように制御部１０１が符号化処理を制御することにより、符号化装置１００Ａは、各部の処理速度を適切に調整し、不要な待機時間の発生を抑制することができる。すなわち、符号化装置１００Ａは、ハードウェア資源をより有効に利用して符号化処理を行うことができる。
【００６４】
図３は、図１の符号化装置１００の他の具体的な例を示す図である。
【００６５】
符号化装置１００Ｂは、図１の符号化装置１００の構成の、他の具体的な一例を示す。図３に示されるように、符号化装置１００Ｂは、制御部１０１と画像符号化部１１２がバス１４１に接続される。バス１４１には、さらに、キャッシュメモリ１４３、および入出力インタフェース１４４が接続される。
【００６６】
このような構成の符号化装置１００Ｂにおいて、符号化対象の画像データはネットワーク１５１を介して他の装置より供給される。制御部１０１は、点線矢印１７１に示されるように、入出力インタフェース１４４を制御して、その画像データを取得し、バス１４１を介してキャッシュメモリ１４３に供給させ、キャッシュメモリ１４３にその画像データを保持させる。
【００６７】
制御部１０１は、また、点線矢印１７２に示されるように、キャッシュメモリ１４３に保持されている画像データを読み出し、バス１４１を介して画像符号化部１１２に供給させ、符号化させる。
【００６８】
制御部１０１は、さらに、点線１７３に示されるように、画像データが符号化されたコードストリームを、バス１４１を介して入出力インタフェース１４４に供給させ、入出力インタフェース１４４から外部のネットワーク１５１に出力させる。
【００６９】
つまり、この符号化装置１００Ｂにおいては、一点鎖線で示されるように、バス１４１、キャッシュメモリ１４３、および入出力インタフェース１４４により入力系１１１が形成され、二点鎖線で示されるように、バス１４１および入出力インタフェース１４４により出力系１１３が形成される。
【００７０】
入力系１１１において、一般的に、入出力インタフェース１４４のデータの入出力レート（スループット）は、バス１４１の伝送レートやキャッシュメモリ１４３のデータ入出力レートより低い。従って、図１を参照して説明したように、制御部１０１は、画像符号化部１１２の画像符号化処理の処理速度（スループット）が入出力インタフェース１４４のデータの入出力速度より速い場合、画像符号化部１１２の画像符号化処理の処理速度を減速させ、入出力インタフェース１４４のデータ入出力速度（入力系１１１の処理速度）に合わせる。
【００７１】
また、図２の場合と同様に、制御部１０１は、画像符号化部１１２の画像符号化処理の処理速度（スループット）が入出力インタフェース１４４のデータの入出力速度より速い場合、画像符号化部１１２の画像符号化処理の処理速度を減速させ、入出力インタフェース１４４のデータ入出力速度（出力系１１３の処理速度）に合わせる。
【００７２】
さらに、図２の場合と同様に、制御部１０１は、画像符号化部１１２の画像符号化処理の処理速度（スループット）が入出力インタフェース１４４のデータの入出力速度より遅い場合、画像符号化部１１２の画像符号化処理の処理速度を加速させ、入出力インタフェース１４４のデータ入出力速度（出力系１１３の処理速度）に合わせる。
【００７３】
このように制御部１０１が符号化処理を制御することにより、符号化装置１００Ｂは、各部の処理速度を適切に調整し、不要な待機時間の発生を抑制することができる。すなわち、符号化装置１００Ｂは、ハードウェア資源をより有効に利用して符号化処理を行うことができる。
【００７４】
次に、このような制御を行う制御部１０１について説明する。図４は、制御部の主な構成例を示すブロック図である。図４に示されるように、制御部１０１は、入力レート情報取得部１８１、出力レート情報取得部１８２、符号化処理制御部１８３、負荷情報取得部１８４、負荷制御部１８５、および記憶部１８６を有する。
【００７５】
入力レート情報取得部１８１は、入力系１１１を構成するデバイスより、入力系１１１のスループットを示す入力レート情報１９１を取得し、それを記憶部１８６に記憶させる。出力レート情報取得部１８２は、出力系１１３を構成するデバイスより、出力系１１３のスループットを示す出力レート情報１９２を取得し、それを記憶部１８６に記憶させる。
【００７６】
なお、この入力レート情報１９１および出力レート情報１９２は、入力系１１１または出力系１１３において計測された値であってもよいが、入力系１１１または出力系１１３を構成するデバイスの仕様であってもよい。したがって、入力系１１１および出力系１１３を構成するデバイスが予め定められており、それらのデバイスの仕様を入力レート情報１９１および出力レート情報１９２とする場合、入力レート情報１９１および出力レート情報１９２は、例えば工場出荷時等に予め記憶部１８６に記憶させておくようにしてもよい。その場合、入力レート情報取得部１８１および出力レート情報取得部１８２は、省略することができる。
【００７７】
符号化処理制御部１８３は、画像符号化部１１２による画像データの符号化処理を制御する。符号化処理制御部１８３は、負荷制御部１８５において決定された負荷量となるように、符号化処理のスループットを制御する。
【００７８】
負荷情報取得部１８４は、画像符号化部１１２の画像符号化処理の負荷の大きさ（負荷量）の予測値を示す負荷情報を取得する。例えば、負荷情報取得部１８４は、この負荷情報として、画像符号化処理のスループットの予測値を直接的または間接的に示すスループット情報１９３を取得する。スループット情報１９３の内容は任意であるが、例えば、画像データの符号化の難易度を示す情報や、過去の符号化処理の単位時間当たりの処理量等により構成される。負荷情報取得部１８４は、取得した負荷情報を負荷制御部１８５に供給する。
【００７９】
負荷制御部１８５は、記憶部１８６から入力レート情報１９１および出力レート情報１９２を読み出し、それらと、負荷情報取得部１８４から供給された負荷情報（スループット情報１９３）とに基づいて、画像符号化部１１２による画像符号化処理の負荷量を決定する。負荷制御部１８５は、符号化処理制御部１８３を制御することにより、決定した負荷量となるように画像符号化処理のスループットを制御する。
【００８０】
記憶部１８６は、例えばRAM等の半導体メモリにより構成される記憶媒体であり、入力レート情報１９１や出力レート情報１９２等の情報を記憶する。
【００８１】
［処理の流れ］
次に、以上のような符号化装置１００において実行される各種処理の流れについて説明する。最初に、制御部１０１による符号化制御処理の流れの例を、図５のフローチャートを参照して説明する。
【００８２】
符号化制御処理が開始されると、制御部１０１の入力レート情報取得部１８１は、ステップＳ１０１において、入力レート情報を取得する。ステップＳ１０２において、出力レート情報取得部１８２は、出力レート情報を取得する。ステップＳ１０３において、符号化処理制御部１８３は、画像データを入力系１１１（例えばキャッシュメモリ１４３）から読み出し、画像符号化部１１２に入力させる。
【００８３】
ステップＳ１０４において、符号化処理制御部１８３は、画像符号化部１１２を制御し、入力させた画像データを符号化する画像符号化処理を実行させる。ステップＳ１０５において、負荷情報取得部１８４は、その符号化処理についてスループット情報１９３を取得する。
【００８４】
ステップＳ１０６において、負荷制御部１８５は、入力レートまたは出力レートのうち、少なくともいずれか一方に基づいて、ステップＳ１０４の制御によって実行された画像符号化処理のスループットを制御する。
【００８５】
ステップＳ１０７において、符号化処理制御部１８３は、画像符号化処理により生成されたコードストリームを出力系１１３に出力し、処理させる。
【００８６】
ステップＳ１０８において、符号化処理制御部１８３は、符号化制御処理を終了するか否かを判定する。例えば未処理の画像データが入力系１１１（例えばキャッシュメモリ１４３）に存在する等して、符号化制御処理を終了しないと判定された場合、ステップＳ１０１に処理が戻り、それ以降の処理が繰り返される。
【００８７】
このとき、入力レートが固定値の場合、ステップＳ１０１の処理は省略可能である。同様に、出力レートが固定値の場合、ステップＳ１０２の処理は省略可能である。
【００８８】
ステップＳ１０８において、例えば未処理の画像データが入力系１１１（例えばキャッシュメモリ１４３）に存在せず、符号化制御処理を終了すると判定された場合、符号化制御処理が終了される。
【００８９】
なお、ステップＳ１０５の処理（スループット情報の取得）は、その情報の内容に応じて適切なタイミングで行われる。したがって、例えば、ステップＳ１０４の処理より先にステップＳ１０５およびステップＳ１０６の処理が行われるようにしてもよい。また、例えば、画像符号化処理実行途中において、ステップＳ１０５およびステップＳ１０６の処理が行われるようにしてもよい。
【００９０】
次に、図５のステップＳ１０６において実行される負荷制御処理の詳細な流れの例について、図６のフローチャートを参照して説明する。
【００９１】
負荷制御処理が開始されると、負荷制御部１８５は、ステップＳ１２１において、入力レート情報１９１およびスループット情報１９３に基づいて、符号化処理のスループットが入力レートより高いか否かを判定する。
【００９２】
符号化処理のスループットが入力レートより高いと判定された場合、処理はステップＳ１２２に進む。この場合、画像符号化処理の処理速度が速すぎて、入力系１１１からの画像データの供給が追いつかない。つまり、画像符号化処理がハードウェア資源を不要に消費している。そこで、負荷制御部１８５は、ステップＳ１２２において、画像符号化部１１２の画像符号化処理の処理速度を減速させ、画像符号化処理のスループットを入力レートまで低下させる。ステップＳ１２２の処理が終了すると、図５のステップＳ１０６に戻り、それ以降の処理が実行される。
【００９３】
符号化処理のスループットが入力レートより高くないと判定された場合、処理はステップＳ１２３に進む。負荷制御部１８５は、ステップＳ１２３において、出力レート情報１９２およびスループット情報１９３に基づいて、符号化処理のスループットが出力レートより高いか否かを判定する。
【００９４】
符号化処理のスループットが出力レートより高いと判定された場合、処理はステップＳ１２４に進む。この場合、画像符号化処理の処理速度が速すぎて、出力系１１３における処理がオーバフローする恐れがある。つまり、画像符号化処理がハードウェア資源を不要に消費している。そこで、負荷制御部１８５は、ステップＳ１２４において、画像符号化部１１２の画像符号化処理の処理速度を減速させ、画像符号化処理のスループットを出力レートまで低下させる。ステップＳ１２４の処理が終了すると、図５のステップＳ１０６に戻り、それ以降の処理が実行される。
【００９５】
符号化処理のスループットが出力レートより高くないと判定された場合、処理はステップＳ１２５に進む。負荷制御部１８５は、ステップＳ１２５において、出力レート情報１９２およびスループット情報１９３に基づいて、符号化処理のスループットが出力レートより低いか否かを判定する。
【００９６】
符号化処理のスループットが出力レートより低いと判定された場合、処理はステップＳ１２６に進む。この場合、画像符号化処理の処理速度が遅すぎて、出力系１１３において処理の無駄な空き時間（待機時間）が生じる。つまり、画像符号化処理のハードウェア資源の消費量が少なすぎる。ハードウェア資源に余裕があるのであれば、さらに画像符号化処理がハードウェア資源を消費するようにすることにより、符号化装置１００のスループットを向上させることができる。そこで、負荷制御部１８５は、ステップＳ１２６において、画像符号化部１１２の画像符号化処理の処理速度を加速させ、画像符号化処理のスループットを出力レートまで上昇させる。ステップＳ１２６の処理が終了すると、図５のステップＳ１０６に戻り、それ以降の処理が実行される。
【００９７】
符号化処理のスループットが出力レートより低くないと判定された場合、負荷制御処理が終了され、図５のステップＳ１０６に戻り、それ以降の処理が実行される。
【００９８】
以上のような制御処理が行われることにより、符号化装置１００は、符号化処理においてハードウェア資源をより有効に活用することができる。
【００９９】
なお、図６においては、ステップＳ１２１、ステップＳ１２３、またはステップＳ１２５の各判定処理を、図６に示されるフローチャートの順に行うように説明したが、各判定条件の優先順位は任意であり、どの判定から行うようにしてもよい。また、複数の判定を満たすときのみ符号化処理のスループットの制御（例えば、ステップＳ１２２、ステップＳ１２４、またはステップＳ１２６）を行うようにしてもよい。
【０１００】
＜２．第２の実施の形態＞
［画像符号化部の構成］
画像符号化部１１２の符号化方法は任意であり、例えば、JPEG（Joint Photographic Experts Group）、MPEG（Moving Picture Experts Group）、AVC（Advanced Video Coding）、JPEG-LS（Lossless JPEG）、または、JPEG2000 Losslessなどであってもよいし、これら以外の方法であっても良い。
【０１０１】
以下に符号化方式がJPEG2000の場合について説明する。図７は、画像符号化部１１２の主な構成例を示すブロック図である。図７に示されるように、画像符号化部１１２は、DCレベルシフト部２０１、ウェーブレット変換部２０２、量子化部２０３、コードブロック化部２０４、およびビットプレーン展開部２０５を有する。
【０１０２】
DCレベルシフト部２０１は、後段のウェーブレット変換を効率的に行うために、矢印２３１のように画像符号化部１１２に入力された画像データのDC成分のレベルシフトを行う。例えば、RGB信号が正の値（符号無しの整数）を持っている。そこで、DCレベルシフト部２０１は、そのことを利用し、原信号のダイナミックレンジを半分にするレベルシフトを行うことで、圧縮効率の向上を図る。従ってYCbCr信号のCbやCr（色差信号）の様に符号（正負両方あり）の整数値を持つ信号を原信号とする場合、このレベルシフトは行われない。
【０１０３】
ウェーブレット変換部２０２は、通常低域フィルタと高域フィルタから構成されるフィルタバンクによって実現される。また、デジタルフィルタは通常複数タップ長のインパルス応答（フィルタ係数）を有するので、ウェーブレット変換部１２２は、フィルタリングが行えるだけの入力画像を予めバッファリングするバッファを有する。
【０１０４】
ウェーブレット変換部２０２は、矢印２３２のようにDCレベルシフト部２０１より出力された画像データを、フィルタリングに最低限必要なデータ量以上取得すると、そのDCレベルシフト後の画像データに対して、所定のウェーブレット変換フィルタを用いてフィルタリングを行い、ウェーブレット係数を生成する。なお、ウェーブレット変換部２０２は、画像の垂直方向および水平方向のそれぞれに対して、画像データを低域成分と高域成分に分離するフィルタリングを行う。
【０１０５】
そして、ウェーブレット変換部２０２は、このようなフィルタリング処理を、図８に示されるように、垂直方向および水平方向の両方において低域成分として分離されたサブバンドに対して再帰的に所定回数繰り返す。これは、画像のエネルギーの多くが低域成分に集中しているからである。
【０１０６】
図８は、分割レベル数３のウェーブレット変換処理により生成されるサブバンドの構成例を示す図である。この場合、ウェーブレット変換部２０２は、まず、画像全体をフィルタリングし、サブバンド3LL（図示せず）、3HL、3LH、および3HHを生成する。次に、ウェーブレット変換部２０２は、生成されたサブバンド3LLに対して再度フィルタリングを行い、2LL（図示せず）、2HL、2LH、および2HHを生成する。さらに、ウェーブレット変換部１２２は、生成されたサブバンド2LLに対して再度フィルタリングを行い、0LL、1HL、1LH、および1HHを生成する。
【０１０７】
ウェーブレット変換部２０２は、フィルタリングにより得られたウェーブレット係数を、サブバンド毎に、矢印２３３に示されるように量子化部２０３に供給する。量子化部２０３は、供給されたウェーブレット係数を量子化する。この量子化の方法は任意であるが、量子化ステップサイズで除算するスカラ量子化が一般的である。量子化部２０３は、量子化により得られた量子化係数を、矢印２３４に示されるように、コードブロック化部２０４に供給する。なお、これより後段においては、ウェーブレット係数の代わりに量子化係数が供給されることになるが、この量子化係数もウェーブレット係数の場合と基本的に同様に扱われる。したがって、以下においては、必要でない限りその点についての説明は省略し、単に係数または係数データと称する。
【０１０８】
なお、画像符号化部１１２が、復号処理により元のデータを完全に復元可能な可逆符号化方式により画像データを符号化する場合、この量子化部２０３の処理は省略され、矢印２３５に示されるように、ウェーブレット変換部２０２の出力がコードブロック化部２０４に供給される。
【０１０９】
ウェーブレット係数は、コードブロック化部２０４で、エントロピ符号化の処理単位である所定の大きさのコードブロックに分割される。図９は各サブバンド中のコードブロックの位置関係を示したものである。例えば64×64画素程度のサイズのコードブロックが、分割後のすべてのサブバンド中に生成される。図４の例において、最も分割レベルが小さい3HHのサブバンドの大きさが例えば640×320画素であるとすると、64×64画素のコードブロックは合計５０個存在することになる。後段の各処理部は、このコードブロック毎に処理を行う。
【０１１０】
コードブロック化部２０４は、矢印２３６に示されるように、各コードブロックをビットプレーン展開部２０５に供給する。ビットプレーン展開部２０５は、係数データを、ビットの位毎のビットプレーンに展開する。
【０１１１】
ビットプレーンは、所定の数のウェーブレット係数よりなる係数群を、１ビット毎、つまり位毎に分割（スライス）したものである。つまり、ビットプレーンは、その係数群の互いに同一の位のビット（係数ビット）の集合である。
【０１１２】
図１０にその具体例を示す。図１０の左図は縦４個、横４個の計１６個の係数を示している。この１６個の係数のうち、絶対値が最大のものは１３で、２進数で１１０１と表現される。ビットプレーン展開部２０５は、このような係数群を、絶対値を示す４枚のビットプレーン（絶対値のビットプレーン）と、符号を示す１枚のビットプレーン（符号のビットプレーン）に展開する。つまり、図１０中左の係数群は、図１０中右に示されるように、４枚の絶対値のビットプレーンと１枚の符号のビットプレーンに展開される。ここで、絶対値のビットプレーンの要素はすべて０か１の値をとる。また、符号を示すビットプレーンの要素は、係数の値が正であることを示す値、係数の値が０であることを示す値、または係数の値がマイナスを示す値のいずれかをとる。
【０１１３】
画像符号化部１１２は、さらに、ビットモデリング部２０６、算術符号化部２０７、符号量加算部２０８、制御部２０９、ヘッダ生成部２１０、およびパケット生成部２１１を有する。
【０１１４】
ビットプレーン展開部２０５は、展開したビットプレーンを、矢印２３７に示されるように、ビットモデリング部２０６に供給する。
【０１１５】
ビットモデリング部２０６および算術符号化部２０７は、EBCOT（Embedded Coding with Optimized Truncation）部２２１として動作し、入力される係数データに対して、JPEG2000規格で定められたEBCOTと呼ばれるエントロピ符号化を行う。EBCOTは、所定の大きさのブロック毎にそのブロック内の係数の統計量を測定しながら符号化を行う手法である。
【０１１６】
ビットモデリング部２０６は、JPEG2000規格で定められた手順に従って、係数データに対してビットモデリングを行い、矢印２３８に示されるように算術符号化部２０７にコンテキストを送出する。算術符号化部２０７は、係数のビットプレーンを算術符号化する。
【０１１７】
コードブロックの縦横のサイズは４から２５６まで２のべき乗で、通常使用される大きさは、３２×３２、６４×６４、１２８×３２等がある。係数値がｎビットの符号付き２進数で表されていて、bit０からbit（ｎ−２）がLSBからMSBまでのそれぞれのビットを表すとする。残りの１ビットは符号を示す。符号ブロックの符号化は、MSB側のビットプレーンから順番に、例えばSignificant Propagation Pass、Magnitude Refinement Pass、およびCleanup Passの３種類の符号化パスによって行われる。
【０１１８】
算術符号化部２０７は、生成したコードストリームを、矢印２３９に示されるように、符号量加算部２０８に供給する。符号量加算部２０８は、そのコードストリームの符号量をカウントし、累積する。そして、符号量加算部２０８は、そのコードストリームを、矢印２４２および矢印２４３に示されるように、ヘッダ作成部２１０およびパケット生成部２１１に供給するとともに、矢印２４０に示されるように、符号量の累積値を制御部２０９に供給する。制御部２０９は、供給された符号量の累積値と目標符号量とを比較し、累積値が目標符号量より小さい場合、矢印２４１に示されるように、EBCOT部２２１を制御し、次のビットプレーンの符号化を行わせる。EBCOT部２２１は、その制御に従って次に重要なビットプレーンを符号化し、生成したコードストリームを符号量加算部２０８に供給する。符号量加算部２０８は、そのコードストリームの符号量をカウントして累積し、累積値を制御部２０９に供給する。
【０１１９】
累積値が目標符号量に達するまで、以上のような処理が繰り返される。そして、累積値が目標符号量に達すると、制御部２０９は、EBCOT部２２１を制御し、符号化処理を終了させる。
【０１２０】
パケット生成部２１１は、供給された符号化コードストリームをパケット化する。ヘッダ生成部２１０は、そのパケットのヘッダ情報を生成し、そのヘッダ情報を矢印２４４に示されるように、パケット生成部２１１に供給する。パケット生成部２１１は、そのヘッダ情報を用いてパケット化を行う。生成されたパケットは矢印２４５に示されるように、画像符号化部１１２の外部に出力される。
【０１２１】
［制御部の構成］
次に、このような画像符号化部１１２を制御する制御部について説明する。図１１は、制御部の主な構成例を示すブロック図である。図１１において、制御部１０１は、基本的に図４を参照して説明した場合と同様の構成を有する。すなわち、制御部１０１は、符号化処理制御部１８３乃至記憶部１８６を有する。
【０１２２】
ただし、この場合、制御部１０１の負荷情報取得部１８４は、負荷情報として、画像符号化部１１２からゼロビットプレーン数２５１を取得する。
【０１２３】
ゼロビットプレーンは、画像符号化部１１２のビットプレーン展開部２０５により展開された各ビットプレーンのうち、MSBから連続する、係数が全てゼロのビットプレーンのことを示す。つまり、ゼロビットプレーン数は、全ての係数がゼロであるビットプレーンのMSBからの連続数を示す。この値は、ビットプレーン展開部２０５がコードブロックをビットプレーンに展開した時点で決定される。負荷情報取得部１８４は、このように生成されるゼロビットプレーン数２５１を、画像符号化部１１２のビットプレーン展開部２０５より取得する。
【０１２４】
図１２は、ゼロビットプレーンの例を説明する図である。図１２に示されるように、ゼロビットプレーン数２５１は、コードブロック毎に算出される。各コードブロックのビット深度Ｈからこのゼロビットプレーン数（NUM_ZB）（図１２中空白部分）を減算することにより、各コードブロックの有効ビットプレーン数（NUM_BP）（図１２中斜線部分）が算出される。この有効ビットプレーン数は、各コードブロックのおおよその情報量を示す。すなわち、各コードブロックのおおよその符号化の難易度を示す。
【０１２５】
記憶部１８６には、入力レート情報１９１や出力レート情報１９２の代わりに、テーブル情報２５２が記憶されている。テーブル情報２５２は、有効ビットプレーン数のピクチャ内の総和（ALL_NUM_BP）から画像符号化処理の処理速度の制御量を決定するためのテーブル情報である。このテーブル情報２５２において、有効ビットプレーン数のピクチャ毎の総和と画像符号化処理の処理速度の制御量との対応関係は、入力レートと出力レートを考慮して作成されている。
【０１２６】
図１３は、有効ビットプレーン数から処理速度の補正量を求めるためのテーブル情報の例を説明する図である。
【０１２７】
図１３に示されるように、テーブル情報２５２においては、有効ビットプレーン数の総和（ALL_NUM_BP）の取り得る値が複数の範囲に区切られ、各範囲に対して、画像符号化処理の処理速度の補正量が割り当てられている。例えば、図１３の例の場合、有効ビットプレーン数の総和（ALL_NUM_BP）が「５０１」乃至「１０００」であるときを標準値とし、画像符号化処理の処理速度を変更しない（×1.0倍）とする。また、これより、有効ビットプレーン数の総和（ALL_NUM_BP）が大きい場合はその値に応じて処理速度を加速させ、有効ビットプレーン数の総和（ALL_NUM_BP）が小さい場合はその値に応じて処理速度を減速させるようになされている。
【０１２８】
つまり、負荷制御部１８５は、負荷情報取得部１８４が取得したコードブロック毎のゼロビットプレーン数２５１から、各コードブロックの有効ビットプレーン数を求め、さらにその有効ビットプレーン数の総和をピクチャ毎に求める。負荷制御部１８５は、さらに、記憶部１８６より読み出したテーブル情報２５２を用いて、その有効ビットプレーン数の総和に対応する画像符号化処理の処理速度の制御量を求め、符号化処理制御部１８３を制御する。このようにすることにより、負荷制御部１８５は、入力レート、出力レート、および負荷情報に基づいて、画像符号化処理の負荷量を制御することになる。
【０１２９】
したがって、上述した場合と同様に、符号化装置１００は、符号化処理においてハードウェア資源をより有効に活用することができる。
【０１３０】
なお、この場合、図４の入力レート情報取得部１８１および出力レート情報取得部１８２は、省略される。
【０１３１】
［処理の流れ］
次にこの場合の符号化制御処理の流れの例を図１４のフローチャートを参照して説明する。
【０１３２】
符号化制御処理が開始されると、符号化処理制御部１８３は、ステップＳ２０１において、入力系１１１（例えばキャッシュメモリ１４３）から画像データを画像符号化部１１２に入力させる。
【０１３３】
ステップＳ２０２において、符号化処理制御部１８３は、DCレベルシフト部２０１に、DCレベルをシフトさせる。ステップＳ２０３において、符号化処理制御部１８３は、ウェーブレット変換部２０２にウェーブレット変換させる。また、非可逆符号化方式の場合、符号化処理制御部１８３は、量子化部２０３にウェーブレット係数を量子化させる。ステップＳ２０４において、符号化処理制御部１８３は、コードブロック化部２０４に、係数をコードブロック単位で分割させる。ステップＳ２０５において、符号化処理制御部１８３は、ビットプレーン展開部２０５に、コードブロック毎の係数をビットプレーンに展開させる。
【０１３４】
ステップＳ２０６において、負荷情報取得部１８４は、ビットプレーン展開部２０５より各コードブロックのゼロビットプレーン数２５１を取得する。負荷制御部１８５は、ステップＳ２０７において、ゼロビットプレーン数２５１から、有効ビットプレーン数のピクチャ毎の総和を算出する。負荷制御部１８５は、ステップＳ２０８において、テーブル情報２５２を参照し、有効ビットプレーン数のピクチャ毎の総和（ALL_NUM_BP）に基づいて画像符号化処理のスループットを制御する。
【０１３５】
ステップＳ２０９において、符号化処理制御部１８３は、EBCOT部２２１等を制御し、負荷制御部１８５により決定されたスループットでエントロピ符号化を行わせる。
【０１３６】
符号化処理制御部１８３は、ヘッダ生成部２１０およびパケット生成部２１１を制御し、ステップＳ２１０において、パケットを生成させ、ステップＳ２１１において、そのパケットを出力系１１３に出力させる。
【０１３７】
ステップＳ２１２において、符号化処理制御部１８３は、符号化制御処理を終了するか否かを判定する。終了しないと判定された場合、ステップＳ２０１に戻り、それ以降の処理が繰り返される。また、ステップＳ２１２において、符号化制御処理を終了すると判定された場合、符号化制御処理が終了される。
【０１３８】
このように制御が行われることにより、符号化装置１００は、符号化処理においてハードウェア資源をより有効に活用することができる。
【０１３９】
なお、図７の画像符号化部１１２において、EBCOT２２１の処理の負荷が非常に大きく、DCレベルシフト部２０１乃至ビットプレーン展開部２０５の各処理は、それに比べて負荷が軽い。従って、ビットプレーン展開時に、その有効ビットプレーン数から画像符号化処理のスループットを求めることにより、制御部１０１は、画像符号化処理をより高速に制御することができ、遅延時間の増大を抑制することができる。
【０１４０】
また、特に、可逆符号化の場合、非可逆符号化に比べて、画像データの符号化の難易度による符号化処理の負荷の増減が大きい。したがって、ハードウェア資源を不要に消費する恐れが大きい。しかしながら、制御部１０１が、上述したように制御を行うことにより、ピクチャ単位で画像符号化処理の負荷量を制御することができるので、可逆符号化の場合も、ハードウェア資源をより有効に活用することができる。
【０１４１】
以上における画像符号化処理のスループットの制御方法は任意である。例えば、画像符号化処理のクロックの速度を変更するようにしてもよいし、画像符号化処理の実行に割り当てる時間を増減させても良いし、符号化方法を変更するようにしてもよい。
【０１４２】
また、例えば、画像符号化部１１２の画像符号化処理をソフトウェアにより実現させるようにしてもよく、その場合、制御部１０１が、画像符号化処理に割り当てるハードウェア資源の量を増減させることにより、画像符号化処理のスループットを制御するようにしてもよい。例えば、複数のCPU、複数のコアを有するCPU（Central Processing Unit）、またはマルチスレッド対応のCPUを用いて画像符号化処理を実行させる場合、制御部１０１は、画像符号化処理に割り当てるCPU数、コア数、またはスレッド数を増減させることにより、画像符号化処理のスループットを制御するようにしてもよい。
【０１４３】
＜３．第３の実施の形態＞
［ハードウェア資源の構成］
以下に、複数コアを有するCPUを用いて画像符号化処理を行う場合のハードウェア資源割り当て方法の様子について説明する。図１５は、このときのハードウェア資源の例を説明するブロック図である。
【０１４４】
図１５に示されるように、情報処理システム３００は、画像符号化処理を実現する情報処理装置３０１を有する。その情報処理装置３０１には、PCIバス３０２を介して各種装置が接続される。例えば、記憶装置３０３や、複数台のビデオテープレコーダ（VTR）であるVTR３０４−１乃至VTR３０４−Ｓが接続される。また、ユーザがこれらに対する操作入力を行うためのマウス３０５、キーボード３０６、並びに操作コントローラ３０７等も接続される。情報処理システム３００は、これらの各装置により構成されるシステムであり、インストールされたプログラムによって、画像符号化処理や画像復号処理等を行うシステムである。
【０１４５】
例えば情報処理システム３００の情報処理装置３０１は、大容量の記憶装置３０３に記憶されている動画コンテンツを読み出して符号化し、得られた符号化データを記憶装置３０３に書き戻すことができるようになされている。さらに、情報処理装置３０１は、符号化処理により得られた符号化データをVTR３０４−１乃至VTR３０４−Ｓを介してビデオテープに記録したりすることができるようにもなされている。また、情報処理装置３０１は、VTR３０４−１乃至VTR３０４−Ｓに装着されたビデオテープに記録された動画コンテンツを記憶装置３０３に取り込み得るようにもなされている。その際、情報処理装置３０１が、動画コンテンツを符号化するようにしてもよい。
【０１４６】
情報処理装置３０１は、マイクロプロセッサ４０１、GPU（Graphics Processing Unit）４０２の他に、XDR（Extreme Data Rate）-RAM（Random Access Memory）４０３やサウスブリッジ４０４を有している。また、情報処理装置３０１は、HDD（Hard Disk Drive）４０５、USB（Universal Serial Bus）インタフェース（USB I/F）４０６、およびサウンド入出力コーデック４０７を有している。
【０１４７】
GPU４０２は専用のバス４１１を介してマイクロプロセッサ４０１に接続される。XDR-RAM４０３は専用のバス４１２を介してマイクロプロセッサ４０１に接続される。サウスブリッジ４０４は、専用のバスを介してマイクロプロセッサ４０１のI/Oコントローラ４４４に接続される。このサウスブリッジ４０４には、HDD４０５、USBインタフェース４０６、および、サウンド入出力コーデック４０７も接続されている。このサウンド入出力コーデック４０７にはスピーカ４２１が接続されている。また、GPU４０２にはディスプレイ４２２が接続される。サウスブリッジ４０４には、さらに、PCIバス３０２を介して、マウス３０５、キーボード３０６、VTR３０４−１乃至VTR３０４−Ｓ、記憶装置３０３、並びに、操作コントローラ３０７が接続される。
【０１４８】
マウス３０５およびキーボード３０６は、ユーザの操作入力を受け、PCIバス３０２およびサウスブリッジ４０４を介して、ユーザの操作入力の内容を示す信号を、マイクロプロセッサ４０１に供給する。記憶装置３０３およびVTR３０４−１乃至VTR３０４−Ｓは、所定のデータを記録または再生できるようになされている。PCIバス３０２にはさらに、必要に応じてドライブ３０８が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア３１１が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じてHDD４０５にインストールされる。
【０１４９】
マイクロプロセッサ４０１は、OS（Operating System）等の基本プログラムを実行する汎用のメインCPUコア４４１を有する。また、メインCPUコア４４１には、共有バス４４５を介して複数（この場合８個）のRISC（Reduced Instruction Set Computer）タイプの信号処理プロセッサである、サブCPUコア４４２−１乃至サブCPUコア４４２−８が接続される。また、共有バス４４５には、例えば２５６[MByte]の容量を持つXDR-RAM４０３に対するメモリコントロールを行うメモリコントローラ４４３も接続される。さらに、共有バス４４５には、サウスブリッジ４０４との間でデータの入出力を管理するI/O（In/Out）コントローラ４４４も接続される。マイクロプロセッサ４０１は、これらの構成が１チップに集積された、マルチコア構成のプロセッサである。マイクロプロセッサ４０１の動作周波数は、例えば４[GHz]である。
【０１５０】
このマイクロプロセッサ４０１は、起動時、HDD４０５に格納された制御プログラムに基づき、HDD４０５に格納されている必要なアプリケーションプログラムを読み出してXDR-RAM４０３に展開し、この後このアプリケーションプログラム及びオペレータ操作に基づいて必要な制御処理を実行する。また、マイクロプロセッサ４０１は、ソフトウェアを実行することにより符号化処理や復号処理を実現する。例えば、マイクロプロセッサ４０１は、エンコードの結果得られた符号化ストリームを、サウスブリッジ４０４を介してHDD４０５に供給して記憶させることができる。また、マイクロプロセッサ４０１は、例えば、デコードした結果得られる動画像コンテンツの再生映像を、GPU４０２へデータ転送し、ディスプレイ４２２に表示させることができる。
【０１５１】
マイクロプロセッサ４０１内の各CPUコアの使用方法は任意であるが、例えば、メインCPUコア４４１が、制御部１０１の処理を行い、８個のサブCPUコア４４２−１乃至サブCPUコア４４２−８がそれぞれ、画像符号化部１１２の画像符号化処理を行う。このような情報処理システム３００のマイクロプロセッサ４０１における８個のサブCPUコア４４２−１乃至サブCPUコア４４２−８のそれぞれには、キャッシュメモリが内蔵されている。つまり、８個のサブCPUコア４４２−１乃至サブCPUコア４４２−８は、それぞれ、各自の内部メモリであるキャッシュメモリと外部メモリであるXDR-RAM４０３の両方を利用することができる。
【０１５２】
なお、以下において、サブCPUコア４４２−１乃至サブCPUコア４４２−８を互いに区別して説明する必要の無い場合、サブCPUコア４４２と称する。このサブCPUコア４４２の数は、図１５においては８個設けられるように示されているが、実際には任意である。各サブCPUコア４４２には、事前に、メインCPUコア４４１により画像符号化処理を行うためのソフトウェアプログラムが割り当てられる（キャッシュメモリにロードされる）。各サブCPUコア４４２は、割り当てられたソフトウェアプログラムを実行することにより、符号化処理を実現する。
【０１５３】
［制御部の構成］
図１６は、図１５に示されるようなハードウェア資源を用いて画像符号化処理を実行する場合の、制御部の主な構成例を示すブロック図である。
【０１５４】
この場合の制御部１０１の構成も、基本的に図４を参照して説明した場合と同様であるが、負荷制御部１８５の代わりに、ハードウェア資源割り当て部４６１を有する。ハードウェア資源割り当て部４６１は、入力レート情報１９１、出力レート情報１９２、およびスループット情報１９３に基づいて、画像符号化処理に割り当てるハードウェア資源、すなわち、サブCPUコア４４２のコア数を制御する。符号化処理制御部１８３は、ハードウェア資源割り当て部４６１により割り当てられたサブCPUコア４４２を用いて画像符号化処理を行う。
【０１５５】
なお、ここでは、入力レート情報１９１および出力レート情報１９２が予め記憶部１８６に記憶されているものとし、入力レート情報取得部１８１および出力レート情報取得部１８２は省略されるものとする。もちろんこれらを有するようにしてもよい。
【０１５６】
［処理の流れ］
次に、この場合の符号化制御処理の流れの例について、図１７のフローチャートを参照して説明する。
【０１５７】
符号化制御処理が開始されると、制御部１０１の符号化処理制御部１８３は、ステップＳ３０１において、画像データを入力系１１１（例えばキャッシュメモリ１４３）から読み出し、画像符号化部１１２に入力させる。
【０１５８】
ステップＳ３０２において、符号化処理制御部１８３は、画像符号化部１１２を制御し、入力させた画像データを符号化する画像符号化処理を実行させる。ステップＳ３０３において、負荷情報取得部１８４は、その符号化処理についてスループット情報１９３を取得する。
【０１５９】
ステップＳ３０４において、ハードウェア資源割り当て部４６１は、入力レートまたは出力レートのうち、少なくともいずれか一方に基づいて、画像符号化処理の一部または全部にハードウェア資源を割り当てる。この時、例えば符号化方法がJPEG2000の場合、符号化処理全体に割り当てるハードウェア資源を制御するようにしても良いし、EBCOT２２１により行われるエントロピ符号化処理に割り当てるハードウェア資源を制御するようにしてもよい。
【０１６０】
ステップＳ３０５において、符号化処理制御部１８３は、画像符号化処理により生成されたコードストリームを出力系１１３に出力し、処理させる。
【０１６１】
ステップＳ３０６において、符号化処理制御部１８３は、符号化制御処理を終了するか否かを判定する。例えば未処理の画像データが入力系１１１（例えばキャッシュメモリ１４３）に存在する等して、符号化制御処理を終了しないと判定された場合、ステップＳ３０１に処理が戻り、それ以降の処理が繰り返される。
【０１６２】
ステップＳ３０６において、例えば未処理の画像データが入力系１１１（例えばキャッシュメモリ１４３）に存在せず、符号化制御処理を終了すると判定された場合、符号化制御処理が終了される。
【０１６３】
なお、ステップＳ３０３の処理（スループット情報の取得）は、その情報の内容に応じて適切なタイミングで行われる。したがって、例えば、ステップＳ３０２の処理より先にステップＳ３０３およびステップＳ３０４の処理が行われるようにしてもよい。また、例えば、画像符号化処理実行途中において、ステップＳ３０３およびステップＳ３０４の処理が行われるようにしてもよい。
【０１６４】
以上のような制御処理により、制御部１０１は、例えば、画像符号化処理のスループットが低すぎる場合、画像符号化処理に割り当てるハードウェア資源（例えばコア数）を増やすことにより、スループットを向上させることができる。また、例えば、画像符号化処理のスループットが高すぎる場合、制御部１０１は、画像符号化処理に割り当てるハードウェア資源（例えばコア数）を減らすことにより、スループットを低減させることができる。
【０１６５】
このように、制御部１０１は、入力レートや出力レート等に基づいて、画像符号化処理に割り当てるハードウェア資源の量をより適切な状態に保つことができる。画像符号化処理に割り当てられないコアは、例えば他の処理に割り当てることができるので、以上のような制御により、サブCPUコア４４２がより有効に活用されるようになる。つまり、符号化装置１００は、符号化処理においてハードウェア資源をより有効に活用することができる。
【０１６６】
なお、画像符号化処理に割り当てるCPUの数を制御する場合や、画像符号化処理に割り当てるスレッド数を制御する場合も、基本的にコア数を制御する場合と同様に制御される。
【０１６７】
＜４．第４の実施の形態＞
［制御部の構成］
なお、以上に説明した負荷量の制御に関する情報は、復号処理の際に、ハードウェア資源の割り当て制御に利用することができる。この情報としては、例えば、画像符号化処理の圧縮率、画像符号化処理のスループット、画像符号化処理に割り当てたコア数、または、それらを変更したときの入力レートや出力レート等のシステム環境条件等がある。もちろん、これら以外の情報であっても良い。
【０１６８】
図１８は、この場合の制御部の主な構成例を示すブロック図である。図１８に示されるように、この場合、制御部１０１は、基本的に図１６を参照して説明した場合と同様の構成を有するが、さらに情報付加部４７１を有する。
【０１６９】
情報付加部４７１は、例えば、画像符号化処理の圧縮率、画像符号化処理のスループット、画像符号化処理に割り当てたコア数、または、それらを変更したときの入力レートや出力レート等のシステム環境条件等の負荷量の制御に関する情報を、負荷制御情報として、画像符号化処理により生成されたコードストリームのヘッダに負荷する。情報付加部４７１は、例えば、コードストリームのメインヘッダに付加する。
【０１７０】
図１９は、符号化方式がJPEG2000の場合のコードストリームのメインヘッダの例を説明する模式図である。図１９に示されるように、符号化方式がJPEG2000の場合、コードストリームのメインヘッダ４８０には、SOC４８１に続いてSIZ４８２が形成される。SIZ４８２には、COD４８３、COC４８４、QCD４８５、QCC４８６、RGN４８７、POC４８８、およびCOM４８９等のマーカセグメントが形成される。
【０１７１】
JPEG2000においては、COM４８９のシンタックスは、図２０に示されるように定められており、COM４９１、Lcom４９２、およびRcom４９３等のマーカが含まれる。Rcom４９３は、１６ビットのパラメータであり、値「０」と「１」は予約されているが、それ以外の値は更改されており、自由に使用することができる。
【０１７２】
情報付加部４７１は、このRcom４９３に、「０」と「１」以外の値を用いて、圧縮率等の付加制御情報を付加する。つまり、値「２」から値「65,535」まの値を定義可能なので、例えば、圧縮率＝3分の2＝0.6667 x65,535＝43,690とすれば良い。
【０１７３】
［処理の流れ］
この場合の符号化制御処理の流れの例を図２１のフローチャートを参照して説明する。
【０１７４】
符号化制御処理が開始されると、符号化処理制御部１８３は、ステップＳ４０１において、画像データを入力系１１１（例えばキャッシュメモリ１４３）から読み出し、画像符号化部１１２に入力させる。
【０１７５】
ステップＳ４０２において、符号化処理制御部１８３は、画像符号化部１１２を制御し、入力させた画像データを符号化する画像符号化処理を実行させる。ステップＳ４０３において、負荷情報取得部１８４は、その符号化処理についてスループット情報１９３を取得する。
【０１７６】
ステップＳ４０４において、ハードウェア資源割り当て部４６１は、入力レートまたは出力レートのうち、少なくともいずれか一方に基づいて、画像符号化処理の一部または全部にハードウェア資源を割り当てる。この時、例えば符号化方法がJPEG2000の場合、符号化処理全体に割り当てるハードウェア資源を制御するようにしても良いし、EBCOT２２１により行われるエントロピ符号化処理に割り当てるハードウェア資源を制御するようにしてもよい。
【０１７７】
ステップＳ４０５において、情報負荷部４７１は、例えば画像符号化処理の圧縮率等の、負荷制御情報をコードストリームのヘッダに登録する。
【０１７８】
ステップＳ４０６において、符号化処理制御部１８３は、画像符号化処理により生成されたコードストリームを出力系１１３に出力し、処理させる。
【０１７９】
ステップＳ４０７において、符号化処理制御部１８３は、符号化制御処理を終了するか否かを判定する。例えば未処理の画像データが入力系１１１（例えばキャッシュメモリ１４３）に存在する等して、符号化制御処理を終了しないと判定された場合、ステップＳ４０１に処理が戻り、それ以降の処理が繰り返される。
【０１８０】
ステップＳ４０７において、例えば未処理の画像データが入力系１１１（例えばキャッシュメモリ１４３）に存在せず、符号化制御処理を終了すると判定された場合、符号化制御処理が終了される。
【０１８１】
なお、ステップＳ４０３の処理（スループット情報の取得）は、その情報の内容に応じて適切なタイミングで行われる。したがって、例えば、ステップＳ４０２の処理より先にステップＳ４０３およびステップＳ４０４の処理が行われるようにしてもよい。また、例えば、画像符号化処理実行途中において、ステップＳ４０３およびステップＳ４０４の処理が行われるようにしてもよい。
【０１８２】
以上のような制御処理により、制御部１０１は、例えば、画像の圧縮率、画像符号化処理に割り当てられたコア数、または、スループットを変更したときのシステム環境情報（変更条件の履歴情報）等を含む負荷制御情報を、復号装置に提供することができる。
【０１８３】
＜５．第５の実施の形態＞
［復号装置の構成］
以上のような負荷制御は復号処理においても適用可能である。
【０１８４】
図２２は、復号装置の主な構成例を示すブロック図である。
【０１８５】
図２２に示される復号装置６００は、符号化装置１００の画像符号化処理に対応する方法で画像復号処理を行い、符号化装置１００が生成したコードストリームを復号して画像データを得る装置である。復号装置６００は、制御部６０１、入力系６１１、画像復号部６１２、および出力系６１３を有する。
【０１８６】
制御部６０１は、入力系６１１乃至出力系６１３を制御し、画像データの復号に関する処理を実行させる。
【０１８７】
入力系６１１は、入力系１１１と同様に、任意のハードウェア資源により実現される１つまたは複数の処理部よりなる系である。入力系６１１は、制御部６０１により制御され、復号処理の対象となるコードストリームに対して、例えば、記憶媒体からコードストリームを読み出したり、ネットワークを介して他の装置より送信されたコードストリームを受信したりする等、任意の処理を行う。また、入力系６１１は、制御部６０１により制御され、矢印６２１に示されるように、任意の処理を施したその画像データを画像復号部６１２に供給する。
【０１８８】
画像復号部６１２は、制御部６０１により制御され、矢印６２１に示されるように、入力系６１１より供給されるコードストリームを取得する。また、画像復号部６１２は、制御部６０１により制御され、取得したコードストリームを所定の方式で復号して画像データを生成する。さらに、画像復号部６１２は、制御部６０１により制御され、矢印６２２に示されるように、生成した画像データを出力系６１３に供給する。
【０１８９】
出力系６１３は、出力系１１３と同様に、任意のハードウェア資源により実現される１つまたは複数の処理部よりなる系である。出力系６１３は、制御部６０１により制御され、矢印６２２に示されるように、画像復号部６１２より供給される画像データを取得する。また、出力系６１３は、制御部６０１により制御され、取得したコードストリームに対して、例えば記憶媒体に記憶したり、ネットワークを介して他の装置に送信したりする等、任意の処理を行う。
【０１９０】
制御部６０１は、矢印６３１に示されるように、入力系６１１から、入力系６１１が行う処理の処理速度を示す入力レート情報を取得する。同様に、制御部６０１は、矢印６３２に示されるように、出力系６１３から、出力系６１３が行う処理の処理速度を示す出力レート情報を取得する。さらに、制御部６０１は、矢印６３３に示されるように、画像復号部６１２から、画像復号部６１２が行う画像復号処理の負荷量を示す負荷情報６３３を取得する。
【０１９１】
また、制御部６０１は、矢印６３４に示されるように入力系６１１に制御情報を供給して入力系６１１の処理を制御する。さらに、制御部６０１は、矢印６３５に示されるように画像復号部６１２に制御情報を供給して画像復号処理を制御する。また、制御部６０１は、矢印６３６に示されるように出力系６１３に制御情報を供給して出力系６１３の処理を制御する。
【０１９２】
このとき、制御部６０１は、入力レート情報、出力レート情報、および負荷情報に基づいて、画像復号部６１２が行う画像復号処理の処理速度を決定する。
【０１９３】
なお、復号装置６００の場合、負荷情報は、画像復号部６１２により行われる画像復号処理の、予測される負荷の大きさを示す予測情報である。基本的に符号化装置１００の場合と同様の情報である。
【０１９４】
制御部６０１は、負荷情報より求められる画像復号処理の処理速度を、入力系６１１の処理の処理速度や、出力系６１３の処理の処理速度と比較し、それらの比較結果に基づいて画像復号処理の処理速度を制御する。
【０１９５】
例えば、制御部６０１は、画像復号処理の処理速度が入力系６１１の処理の処理速度より遅い場合、画像復号処理の処理速度を入力系６１１の処理速度まで上昇させる。また、例えば、制御部６０１は、画像復号処理の処理速度が入力系６１１の処理の処理速度より速い場合、画像復号処理の処理速度を入力系６１１の処理速度まで低下させる。さらに、例えば、制御部６０１は、画像復号処理の処理速度が出力系６１３の処理の処理速度より速い場合、画像復号処理の処理速度を出力系６１３の処理速度まで低下させる。
【０１９６】
このように、制御部６０１は、入力系６１１や出力系６１３等、画像復号部６１２の前段や後段の処理部が行う処理の処理速度も考慮して画像復号処理の処理速度を決定するので、復号装置６００全体の処理速度を向上させるように画像復号処理の処理速度を制御することができる。
【０１９７】
このような制御により復号装置６００は、不要な負荷の増大を抑制するように、復号処理にハードウェア資源を割り当てることができる。つまり、復号装置６００は、復号処理においてハードウェア資源をより有効に活用することができる。
【０１９８】
次に、このような復号装置６００の構成の具体的な例について説明する。
【０１９９】
図２３は、図２２の復号装置の具体的な例を示す図である。復号装置６００Ａは、図２２の復号装置６００の構成の具体的な一例を示す。図２３に示されるように、復号装置６００Ａは、制御部６０１と画像復号部６１２がバス６４１に接続される。バス６４１には、さらに、入出力インタフェース６４１、キャッシュメモリ６４３、および記憶部６４４が接続される。
【０２００】
バス６４１は、バス１４１と同様の伝送媒体であり、例えばPCIバス等により構成される。入出力インタフェース６４２は、入出力インタフェース１４４と同様の、外部のネットワーク６５１と接続される通信インタフェースであり、例えば、HDMI、HD-SDI、Ethernet（登録商標）（LANボード）等により構成される。
【０２０１】
キャッシュメモリ６４３は、キャッシュメモリ１４３と同様の記憶媒体であり、例えばRAM等の、記憶部６４４の読み出し速度や、入出力インタフェースの６４２のスループットに比べて高速にデータの授受が可能な半導体メモリにより構成される。記憶部６４４は、記憶部１４２と同様の記憶媒体であり、例えば、ハードディスクやフラッシュメモリ等により構成される。
【０２０２】
このような構成の復号装置６００Ａにおいて、復号対象のコードストリームは例えば、ネットワーク６５１を介して他の装置より供給される。制御部６０１は、点線矢印６６１に示されるように、入出力インタフェース６４２を制御して、そのコードストリームを取得し、バス６４１を介してキャッシュメモリ６４３に供給させ、キャッシュメモリ６４３にそのコードストリームを保持させる。
【０２０３】
制御部６０１は、また、点線矢印６６２に示されるように、キャッシュメモリ６４３に保持されているコードストリームを読み出し、バス６４１を介して画像復号部６１２に供給させ、復号させる。
【０２０４】
制御部６０１は、さらに、点線６６３に示されるように、コードストリームが符号化された画像データを、バス１４１を介して記憶部６４４に供給させ、記憶させる。
【０２０５】
つまり、この復号装置６００Ａにおいては、一点鎖線で示されるように、バス６４１、入出力インタフェース６４２、およびキャッシュメモリ６４３により入力系６１１が形成され、二点鎖線で示されるように、バス６４１および記憶部６４４により出力系６１３が形成される。
【０２０６】
入力系６１１において、一般的に、入出力インタフェース６４２のデータの入出力レート（スループット）は、バス６４１の伝送レートやキャッシュメモリ１４３のデータ入出力レートより低い。従って、図２２を参照して説明したように、制御部６０１は、画像復号部６１２の画像復号処理の処理速度（スループット）が入出力インタフェース６４２のデータの入出力速度より速い場合、画像復号部６１２の画像復号処理の処理速度を減速させ、画像復号部６１２の画像復号処理の処理速度（スループット）が入出力インタフェース６４２のデータの入出力速度より遅い場合、画像復号部６１２の画像復号処理の処理速度を加速させ、入出力インタフェース６４２のデータの入出力速度（入力系６１１の処理速度）に合わせる。
【０２０７】
また、出力系６１３において、一般的に、記憶部６４４へのデータの書き込みレートは、バス６４１の伝送レートより低い。従って、図２２を参照して説明したように、制御部６０１は、画像復号部６１２の画像復号処理の処理速度（スループット）が記憶部６４２のデータ書き込み速度より速い場合、画像復号部６１２の画像復号処理の処理速度を減速させ、記憶部１４２のデータ書き込み速度（入力系６１１の処理速度）に合わせる。
【０２０８】
このように制御部６０１が復号処理を制御することにより、復号装置６００Ａは、各部の処理速度を適切に調整し、不要な待機時間の発生を抑制することができる。すなわち、復号装置６００Ａは、ハードウェア資源をより有効に利用して復号処理を行うことができる。
【０２０９】
図２４は、図２２の復号装置６００の他の具体的な例を示す図である。
【０２１０】
復号装置６００Ｂは、図２２の復号装置６００の構成の、他の具体的な一例を示す。図２４に示されるように、復号装置６００Ｂは、制御部６０１と画像復号部６１２がバス６４１に接続される。バス６４１には、さらに、キャッシュメモリ６４３、および入出力インタフェース６４２が接続される。
【０２１１】
このような構成の復号装置６００Ｂにおいて、復号対象のコードストリームはネットワーク６５１を介して他の装置より供給される。制御部６０１は、点線矢印６７１に示されるように、入出力インタフェース６４２を制御して、そのコードストリームを取得し、バス６４１を介してキャッシュメモリ６４３に供給させ、キャッシュメモリ６４３にそのコードストリームを保持させる。
【０２１２】
制御部６０１は、また、点線矢印６７２に示されるように、キャッシュメモリ６４３に保持されているコードストリームを読み出し、バス１４１を介して画像復号部６１２に供給させ、復号させる。
【０２１３】
制御部６０１は、さらに、点線６７３に示されるように、コードストリームが復号された画像データを、バス６４１を介して入出力インタフェース６４２に供給させ、入出力インタフェース６４２から外部のネットワーク６５１に出力させる。
【０２１４】
つまり、この復号装置６００Ｂにおいては、一点鎖線で示されるように、バス６４１、キャッシュメモリ６４３、および入出力インタフェース６４２により入力系６１１が形成され、二点鎖線で示されるように、バス６４１および入出力インタフェース６４２により出力系６１３が形成される。
【０２１５】
入力系６１１において、一般的に、入出力インタフェース６４２のデータの入出力レート（スループット）は、バス６４１の伝送レートやキャッシュメモリ６４３のデータ入出力レートより低い。従って、図２２を参照して説明したように、制御部６０１は、画像復号部６１２の画像復号処理の処理速度（スループット）が入出力インタフェース６４２のデータの入出力速度より遅い場合、画像復号部６１２の画像復号処理の処理速度を加速させ、画像復号部６１２の画像復号処理の処理速度（スループット）が入出力インタフェース６４２のデータの入出力速度より速い場合、画像復号部６１２の画像復号処理の処理速度を減速させ、入出力インタフェース６４２のデータ入出力速度（入力系６１１の処理速度）に合わせる。
【０２１６】
また、出力系６１３において、図２３の場合と同様に、制御部６０１は、画像復号部６１２の画像復号処理の処理速度（スループット）が入出力インタフェース６４２のデータの入出力速度より速い場合、画像復号部６１２の画像復号処理の処理速度を減速させ、入出力インタフェース６４２のデータ入出力速度（出力系６１３の処理速度）に合わせる。
【０２１７】
このように制御部６０１が復号処理を制御することにより、復号装置６００Ｂは、各部の処理速度を適切に調整し、不要な待機時間の発生を抑制することができる。すなわち、復号装置６００Ｂは、ハードウェア資源をより有効に利用して復号処理を行うことができる。
【０２１８】
次に、このような制御を行う制御部６０１について説明する。図２５は、制御部の主な構成例を示すブロック図である。図２５に示されるように、制御部６０１は、入力レート情報取得部６８１、出力レート情報取得部６８２、復号処理制御部６８３、負荷情報取得部６８４、負荷制御部６８５、および記憶部６８６を有する。
【０２１９】
入力レート情報取得部６８１は、入力系６１１を構成するデバイスより、入力系６１１のスループットを示す入力レート情報６９１を取得し、それを記憶部６８６に記憶させる。出力レート情報取得部６８２は、出力系６１３を構成するデバイスより、出力系６１３のスループットを示す出力レート情報６９２を取得し、それを記憶部６８６に記憶させる。
【０２２０】
なお、この入力レート情報６９１および出力レート情報６９２は、入力系６１１または出力系６１３において計測された値であってもよいが、入力系６１１または出力系６１３を構成するデバイスの仕様であってもよい。したがって、入力系６１１および出力系６１３を構成するデバイスが予め定められており、それらのデバイスの仕様を入力レート情報６９１および出力レート情報６９２とする場合、入力レート情報６９１および出力レート情報６９２は、例えば工場出荷時等に予め記憶部６８６に記憶させておくようにしてもよい。その場合、入力レート情報取得部６８１および出力レート情報取得部６８２は、省略することができる。
【０２２１】
復号処理制御部６８３は、画像復号部６１２による画像データの復号処理を制御する。復号処理制御部１８３は、負荷制御部６８５において決定された負荷量となるように、復号処理のスループットを制御する。
【０２２２】
負荷情報取得部６８４は、画像復号部６１２の画像復号処理の負荷の大きさ（負荷量）の予測値を示す負荷情報を取得する。例えば、負荷情報取得部６８４は、この負荷情報として、画像復号処理のスループットの予測値を直接的または間接的に示すスループット情報６９３を取得する。スループット情報６９３の内容は任意であるが、例えば、画像データの符号化の難易度を示す情報、過去の復号処理の単位時間当たりの処理量、またはコードストリームのファイルサイズ等により構成される。負荷情報取得部６８４は、取得した負荷情報を負荷制御部６８５に供給する。
【０２２３】
負荷制御部６８５は、記憶部６８６から入力レート情報６９１および出力レート情報６９２を読み出し、それらと、負荷情報取得部６８４から供給された負荷情報（スループット情報６９３）とに基づいて、画像復号部６１２による画像復号処理の負荷量を決定する。負荷制御部６８５は、復号処理制御部６８３を制御することにより、決定した負荷量となるように画像復号処理のスループットを制御する。
【０２２４】
記憶部６８６は、例えばRAM等の半導体メモリにより構成される記憶媒体であり、入力レート情報６９１や出力レート情報６９２等の情報を記憶する。
【０２２５】
［処理の流れ］
次に、以上のような復号装置６００において実行される各種処理の流れについて説明する。最初に、制御部６０１による復号制御処理の流れの例を、図２６のフローチャートを参照して説明する。
【０２２６】
復号制御処理が開始されると、制御部６０１の入力レート情報取得部６８１は、ステップＳ６０１において、入力レート情報を取得する。ステップＳ６０２において、出力レート情報取得部６８２は、出力レート情報を取得する。ステップＳ６０３において、復号処理制御部６８３は、コードストリームを入力系６１１（例えばキャッシュメモリ６４３）から読み出し、画像復号部６１２に入力させる。
【０２２７】
ステップＳ６０４において、復号処理制御部６８３は、画像復号部６１２を制御し、入力させた画像データを復号する画像復号処理を実行させる。ステップＳ６０５において、負荷情報取得部６８４は、その復号処理についてスループット情報６９３を取得する。
【０２２８】
ステップＳ６０６において、負荷制御部６８５は、入力レートまたは出力レートのうち、少なくともいずれか一方に基づいて、ステップＳ６０４の制御によって実行された画像復号処理のスループットを制御する。
【０２２９】
ステップＳ６０７において、復号処理制御部６８３は、画像復号処理により生成された画像データを出力系６１３に出力し、処理させる。
【０２３０】
ステップＳ６０８において、復号処理制御部６８３は、復号制御処理を終了するか否かを判定する。例えば未処理の画像データが入力系６１１（例えばキャッシュメモリ６４３）に存在する等して、復号制御処理を終了しないと判定された場合、ステップＳ６０１に処理が戻り、それ以降の処理が繰り返される。
【０２３１】
このとき、入力レートが固定値の場合、ステップＳ６０１の処理は省略可能である。同様に、出力レートが固定値の場合、ステップＳ６０２の処理は省略可能である。
【０２３２】
ステップＳ６０８において、例えば未処理の画像データが入力系６１１（例えばキャッシュメモリ６４３）に存在せず、復号制御処理を終了すると判定された場合、復号制御処理が終了される。
【０２３３】
なお、ステップＳ６０５の処理（スループット情報の取得）は、その情報の内容に応じて適切なタイミングで行われる。したがって、例えば、ステップＳ６０４の処理より先にステップＳ６０５およびステップＳ６０６の処理が行われるようにしてもよい。また、例えば、画像復号処理実行途中において、ステップＳ６０５およびステップＳ６０６の処理が行われるようにしてもよい。
【０２３４】
次に、図２６のステップＳ６０６において実行される負荷制御処理の詳細な流れの例について、図２７のフローチャートを参照して説明する。
【０２３５】
負荷制御処理が開始されると、負荷制御部６８５は、ステップＳ６２１において、入力レート情報６９１およびスループット情報６９３に基づいて、復号処理のスループットが入力レートより低いか否かを判定する。
【０２３６】
復号処理のスループットが入力レートより低いと判定された場合、処理はステップＳ６２２に進む。この場合、画像復号処理の処理速度が遅すぎて、入力系６１１における処理がオーバフローする恐れがある。つまり、画像復号処理のハードウェア資源の消費量が少なすぎる。ハードウェア資源に余裕があるのであれば、さらに画像復号処理がハードウェア資源を消費するようにすることにより、入力系６１１におけるオーバフローの発生を抑制し、復号装置６００のスループットを向上させることができる。そこで、負荷制御部６８５は、ステップＳ６２２において、画像復号部６１２の画像復号処理の処理速度を加速させ、画像復号処理のスループットを入力レートまで上昇させる。ステップＳ６２２の処理が終了すると、図２６のステップＳ６０６に戻り、それ以降の処理が実行される。
【０２３７】
復号処理のスループットが入力レートより低くないと判定された場合、処理はステップＳ６２３に進む。負荷制御部６８５は、ステップＳ６２３において、入力レート情報６９１およびスループット情報６９３に基づいて、復号処理のスループットが入力レートより高いか否かを判定する。
【０２３８】
復号処理のスループットが入力レートより高いと判定された場合、処理はステップＳ６２４に進む。この場合、画像復号処理の処理速度が速すぎて、入力系６１１からのコードストリームの供給が追いつかない。つまり、画像復号処理がハードウェア資源を不要に消費している。そこで、負荷制御部６８５は、ステップＳ６２４において、画像復号部６１２の画像復号処理の処理速度を減速させ、画像復号処理のスループットを入力レートまで低下させる。ステップＳ６２４の処理が終了すると、図２６のステップＳ６０６に戻り、それ以降の処理が実行される。
【０２３９】
復号処理のスループットが入力レートより高くないと判定された場合、処理はステップＳ６２５に進む。負荷制御部６８５は、ステップＳ６２５において、出力レート情報６９２およびスループット情報６９３に基づいて、復号処理のスループットが出力レートより高いか否かを判定する。
【０２４０】
復号処理のスループットが出力レートより高いと判定された場合、処理はステップＳ６２６に進む。この場合、画像復号処理の処理速度が速すぎて、出力系６１３における処理がオーバフローする恐れがある。つまり、画像復号処理がハードウェア資源を不要に消費している。そこで、負荷制御部６８５は、ステップＳ６２６において、画像復号部６１２の画像復号処理の処理速度を減速させ、画像復号処理のスループットを出力レートまで低下させる。ステップＳ６２６の処理が終了すると、図２６のステップＳ６０６に戻り、それ以降の処理が実行される。
【０２４１】
復号処理のスループットが出力レートより高くないと判定された場合、負荷制御処理が終了され、図２６のステップＳ６０６に戻り、それ以降の処理が実行される。
【０２４２】
以上のような制御処理が行われることにより、復号装置６００は、復号処理においてハードウェア資源をより有効に活用することができる。
【０２４３】
なお、図２７においては、ステップＳ６２１、ステップＳ６２３、またはステップＳ６２５の各判定処理を、図２７に示されるフローチャートの順に行うように説明したが、各判定条件の優先順位は任意であり、どの判定から行うようにしてもよい。また、複数の判定を満たすときのみ復号処理のスループットの制御（例えば、ステップＳ６２２、ステップＳ６２４、またはステップＳ６２６）を行うようにしてもよい。
【０２４４】
＜６．第６の実施の形態＞
［画像復号部の構成］
上述したように、符号化方式は任意である。つまり、画像復号部６１２が行う画像複合処理の復号方法は任意である。以下に符号化方式がJPEG2000の場合について説明する。図２８は、画像復号部６１２の主な構成例を示すブロック図である。図２８に示されるように、画像復号部６１２は、パケット解読部７０１、算術復号部７０２、ビットモデリング部７０３、ビットプレーン合成部７０４、コードブロック合成部７０５、ウェーブレット逆変換部７０６、およびDCレベル逆シフト部７０７を有する。
【０２４５】
パケット解読部７０１は、矢印７３１に示されるように、符号化装置１００より供給されるパケットを解読し、矢印７３２に示されるように、コードストリームを算術復号部７０２に供給する。また、パケット解読部７０１は、コードストリームのパケットを解読し、コードストリームのファイルサイズを抽出し、矢印７２１に示されるように、負荷情報として負荷情報取得部６８４に供給する。
【０２４６】
算術復号部７０２およびビットモデリング部７０３は、EBCOT部７１１として動作し、入力されるコードストリームに対して、JPEG2000規格で定められたEBCOTと呼ばれるエントロピ復号を行う。
【０２４７】
算術復号部７０２は、算術符号化部２０７に対応する方法でコードストリームを復号し、矢印７３３に示されるように、コンテキストをビットモデリング部７０３に供給する。ビットモデリング部７０３は、ビットモデリング部２０６に対応する方法で、ビットプレーンに展開されたウェーブレット係数を生成する。ビットモデリング部７０３は、生成したビットプレーン毎の係数データを、矢印７３４に示されるように、ビットプレーン合成部７０４に供給する。
【０２４８】
ビットプレーン合成部７０４は、ビットプレーンに展開されたウェーブレット係数を合成する。ビットプレーン合成部７０４は、ビットプレーンを合成したウェーブレット係数を、矢印７３５に示されるように、コードブロック合成部７０５に供給する。
【０２４９】
コードブロック合成部７０５は、供給されたビットプレーンを用いてコードブロック単位の係数データを生成し、さらにそれらを合成し、サブバンド毎の係数データを生成する。コードブロック合成部７０５は、矢印７３６に示されるように、それをウェーブレット逆変換部７０６に供給する。
【０２５０】
ウェーブレット逆変換部７０６は、供給されたウェーブレット係数をウェーブレット逆変換し、ベースバンドの画像データを生成する。ウェーブレット逆変換部７０６は、生成したベースバンドの画像データを、矢印７３７に示されるように、DCレベル逆シフト部７０７に供給する。
【０２５１】
DCレベル逆シフト部７０７は、その画像データのDC成分に対して、DCレベルシフト部２０１においてシフトした分を元に戻すDCレベル逆シフト処理を必要に応じて行う。DCレベル逆シフト部７０７は、DCレベル逆シフト処理後の画像データを、矢印７３８に示されるように、画像復号部６１２の外部（出力系６１３）に出力する。
【０２５２】
［制御部の構成］
次に、このような画像復号部６１２を制御する制御部について説明する。図２９は、制御部の主な構成例を示すブロック図である。図２９において、制御部６０１は、基本的に図２５を参照して説明した場合と同様の構成を有する。すなわち、制御部６０１は、復号処理制御部６８３乃至記憶部６８６を有する。
【０２５３】
ただし、この場合、制御部６０１の負荷情報取得部６８４は、負荷情報として、画像復号部６１２のパケット解読部７０１からコードストリームのファイルサイズ７５１を取得する。復号処理の難易度は、復号処理対象のコードストリームのファイルサイズの大きさにおおよそ比例する。つまり、ファイルサイズが大きいほど、復号処理の難易度は上がり、復号処理の負荷量は増大することが予想される。
【０２５４】
記憶部６８６には、入力レート情報６９１や出力レート情報６９２の代わりに、テーブル情報７５２が記憶されている。テーブル情報７５２は、ファイルサイズ７５１から画像復号処理の処理速度の制御量を決定するためのテーブル情報である。このテーブル情報７５２において、コードストリームのファイルサイズの大きさと画像復号処理の処理速度の制御量との対応関係は、入力レートと出力レートを考慮して作成されている。
【０２５５】
負荷制御部６８５は、記憶部６８６より読み出したテーブル情報７５２を用いて、負荷情報取得部６８４により取得されたファイルサイズ７５１の値に対応する画像復号処理の処理速度の制御量を求め、復号処理制御部６８３を制御する。このようにすることにより、負荷制御６８５は、入力レート、出力レート、および負荷情報に基づいて、画像復号処理の負荷量を制御することになる。
【０２５６】
したがって、上述した場合と同様に、復号装置６００は、復号処理においてハードウェア資源をより有効に活用することができる。
【０２５７】
なお、この場合、図２５の入力レート情報取得部６８１および出力レート情報取得部６８２は、省略される。
【０２５８】
［処理の流れ］
次にこの場合の復号制御処理の流れの例を図３０のフローチャートを参照して説明する。
【０２５９】
復号制御処理が開始されると、負荷情報取得部６８４は、ステップＳ７０１において、パケット解読部７０１を制御し、処理対象のコードストリームのファイルサイズ７５１を取得する。ステップＳ７０２において、負荷制御部６８５は、取得されたファイルサイズ７５１と、テーブル情報７５２に基づいて、スループットを制御する。
【０２６０】
ステップＳ７０３において、復号処理制御部６８３は、入力系６１１（例えばキャッシュメモリ６４３）からコードストリームを画像復号部６１２に入力させる。
【０２６１】
ステップＳ７０４において、復号処理制御部６８３は、EBCOT部７１１等を制御し、負荷制御部６８５により決定されたスループットでエントロピ復号を行わせる。
【０２６２】
ステップＳ７０５において、復号処理制御部６８３は、ビットプレーン合成部７０４を制御し、復号処理により生成された係数データのビットプレーンを合成させる。ステップＳ７０６において、復号処理制御部６８３は、コードブロック合成部７０５を制御し、係数データのコードブロックを合成させ、サブバンド毎の係数データを生成させる。
【０２６３】
ステップＳ７０７において、復号処理制御部６８３は、ウェーブレット逆変換部７０６を制御し、サブバンド毎の係数データをウェーブレット逆変換させ、ベースバンドの画像データを生成する。ステップＳ７０８において、復号処理制御部６８３は、DCレベル逆シフト部７０７を制御し、画像データのDCレベルを逆シフトさせる。復号処理制御部６８３は、ステップＳ７０９において、DCレベル逆シフト部７０７を制御し、処理済の画像データを出力系６１３に出力させる。
【０２６４】
ステップＳ７１０において、復号処理制御部６８３は、復号制御処理を終了するか否かを判定する。終了しないと判定された場合、ステップＳ７０１に戻り、それ以降の処理が繰り返される。また、ステップＳ７１０において、復号制御処理を終了すると判定された場合、復号制御処理が終了される。
【０２６５】
このように制御が行われることにより、復号装置６００は、復号処理においてハードウェア資源をより有効に活用することができる。また、復号装置６００は、コードストリームのファイルサイズに基づいてこのような負荷制御を行うことができるので、容易に、ハードウェア資源をより有効に活用することができる。
【０２６６】
なお、制御部６０１は、コードストリームのファイルサイズの代わりに、コードストリームの例えばメインヘッダ等に付加される負荷制御情報に基づいて、画像復号処理のスループット制御を行うようにしてもよい。この負荷制御情報は、上述したように、例えば、画像データの圧縮率、画像符号化処理時に割り当てられたハードウェア資源（コア数等）、または、スループットを制御したときのシステム環境情報（変更条件履歴情報）等により構成される。
【０２６７】
いずれの場合においても、記憶部６８６に、負荷制御情報に対応するテーブル情報が予め用意されており、負荷制御部６８５は、そのテーブル情報を用いて、取得された負荷制御情報の値に対応する制御量を求める。
【０２６８】
このようにすることにより、復号装置６００は、容易に、ハードウェア資源をより有効に活用することができる。
【０２６９】
以上における画像復号処理のスループットの制御方法は任意である。例えば、画像復号処理のクロックの速度を変更するようにしてもよいし、画像復号処理の実行に割り当てる時間を増減させても良いし、復号方法を変更するようにしてもよい。
【０２７０】
また、例えば、画像復号部６１２の画像復号処理をソフトウェアにより実現させるようにしてもよく、その場合、制御部６０１が、画像復号処理に割り当てるハードウェア資源の量を増減させることにより、画像復号処理のスループットを制御するようにしてもよい。例えば、複数のCPU、複数のコアを有するCPU、またはマルチスレッド対応のCPUを用いて画像復号処理を実行させる場合、制御部６０１は、画像復号処理に割り当てるCPU数、コア数、またはスレッド数を増減させることにより、画像復号処理のスループットを制御するようにしてもよい。
【０２７１】
＜７．第７の実施の形態＞
［制御部の構成］
以下に、複数コアを有するCPUを用いて画像復号処理を行う場合のハードウェア資源割り当て方法の様子について説明する。
【０２７２】
図３１は、図１５に示されるような、複数コアのCPUを有するハードウェア資源を用いて画像復号処理を実行する場合の、制御部の主な構成例を示すブロック図である。
【０２７３】
この場合の制御部６０１の構成も、基本的に図２５を参照して説明した場合と同様であるが、負荷制御部６８５の代わりに、ハードウェア資源割り当て部７６１を有する。ハードウェア資源割り当て部７６１は、入力レート情報６９１、出力レート情報６９２、およびスループット情報６９３に基づいて、画像復号処理に割り当てるハードウェア資源、すなわち、サブCPUコア４４２のコア数を制御する。復号処理制御部６８３は、ハードウェア資源割り当て部７６１により割り当てられたサブCPUコア４４２を用いて画像復号処理を行う。
【０２７４】
なお、ここでは、入力レート情報６９１および出力レート情報６９２が予め記憶部６８６に記憶されているものとし、入力レート情報取得部６８１および出力レート情報取得部６８２は省略されるものとする。もちろんこれらを有するようにしてもよい。
【０２７５】
［処理の流れ］
次に、この場合の復号制御処理の流れの例について、図３２のフローチャートを参照して説明する。
【０２７６】
復号制御処理が開始されると、制御部６０１の符号化処理制御部６８３は、ステップＳ７３１において、コードストリームを入力系６１１（例えばキャッシュメモリ６４３）から読み出し、画像復号部６１２に入力させる。
【０２７７】
ステップＳ７３２において、復号処理制御部６８３は、画像復号部６１２を制御し、入力させたコードストリームを復号する画像復号処理を実行させる。ステップＳ７３３において、負荷情報取得部６８４は、その復号処理についてスループット情報６９３を取得する。
【０２７８】
ステップＳ７３４において、ハードウェア資源割り当て部７６１は、入力レートまたは出力レートのうち、少なくともいずれか一方に基づいて、画像復号処理の一部または全部にハードウェア資源を割り当てる。この時、例えば復号方法がJPEG2000の場合、復号処理全体に割り当てるハードウェア資源を制御するようにしても良いし、EBCOT部７１１１により行われるエントロピ復号処理に割り当てるハードウェア資源を制御するようにしてもよい。
【０２７９】
ステップＳ７３５において、復号処理制御部６８３は、画像復号処理により生成された画像データを出力系６１３に出力し、処理させる。ステップＳ７３６において、復号処理制御部６８３は、復号制御処理を終了するか否かを判定する。例えば未処理のコードストリームが入力系６１１（例えばキャッシュメモリ６４３）に存在する等して、復号制御処理を終了しないと判定された場合、ステップＳ７３１に処理が戻り、それ以降の処理が繰り返される。
【０２８０】
ステップＳ７３６において、例えば未処理のコードストリームが入力系６１１（例えばキャッシュメモリ６４３）に存在せず、復号制御処理を終了すると判定された場合、復号制御処理が終了される。
【０２８１】
なお、ステップＳ７３３の処理（スループット情報の取得）は、その情報の内容に応じて適切なタイミングで行われる。したがって、例えば、ステップＳ７３２の処理より先にステップＳ７３３およびステップＳ７３４の処理が行われるようにしてもよい。また、例えば、画像復号処理実行途中において、ステップＳ７３３およびステップＳ７３４の処理が行われるようにしてもよい。
【０２８２】
以上のような制御処理により、制御部６０１は、例えば、画像復号処理のスループットが低すぎる場合、画像復号処理に割り当てるハードウェア資源（例えばコア数）を増やすことにより、スループットを向上させることができる。また、例えば、画像復号処理のスループットが高すぎる場合、制御部６０１は、画像復号処理に割り当てるハードウェア資源（例えばコア数）を減らすことにより、スループットを低減させることができる。
【０２８３】
このように、制御部６０１は、入力レートや出力レート等に基づいて、画像復号処理に割り当てるハードウェア資源の量をより適切な状態に保つことができる。画像復号処理に割り当てられないコアは、例えば他の処理に割り当てることができるので、以上のような制御により、サブCPUコア４４２がより有効に活用されるようになる。つまり、復号装置６００は、画像復号処理においてハードウェア資源をより有効に活用することができる。
【０２８４】
なお、画像復号処理に割り当てるCPUの数を制御する場合や、画像復号処理に割り当てるスレッド数を制御する場合も、基本的にコア数を制御する場合と同様に制御される。
【０２８５】
上述した一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、ネットワークや記録媒体からインストールされる。この記録媒体は、例えば、図１５に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM（Compact Disc - Read Only Memory）,DVD（Digital Versatile Disc）を含む）、光磁気ディスク（MD（Mini Disc）を含む）、もしくは半導体メモリなどよりなるリムーバブルメディア３１１により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているHDD４０５や記憶装置３０３に含まれるハードディスクやメモリなどで構成される。
【０２８６】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０２８７】
もちろん、上述した一連の処理は、汎用のハードウェアを用いてソフトウェアを実行することにより実現させることもできるが、専用のハードウェアにより実現させることもできる。
【０２８８】
また、本明細書において、システムとは、複数のデバイス（装置）により構成される装置全体を表すものである。
【０２８９】
なお、以上において、１つの装置（または処理部）として説明した構成を分割し、複数の装置（または処理部）として構成するようにしてもよい。逆に、以上において複数の装置（または処理部）として説明した構成をまとめて１つの装置（または処理部）として構成されるようにしてもよい。また、各装置（または処理部）の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置（または処理部）の構成の一部を他の装置（または処理部）の構成に含めるようにしてもよい。つまり、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【０２９０】
１００  符号化装置，  １０１  制御部，  １１１  入力系，  １１２  画像符号化部，  １１３  出力系，  １８３  符号化処理制御部，  １８４  負荷情報取得部，  １８５  負荷制御部，  １９１  スループット情報，  ２５１  ゼロビットプレーン数，  ２５２  テーブル情報，  ４６１  ハードウェア資源割り当て部，  ４７１  情報付加部，  ６００  復号装置，  ６０１  制御部，  ６１１  入力系，  ６１２  画像復号部，  ６１３  出力系，  ６８３  復号処理制御部，  ６８４  負荷情報取得部，  ６８５  付加制御部，  ６９３  スループット情報，  ７５１  ファイルサイズ，  ７５２  テーブル情報，  ７６１  ハードウェア資源割り当て部
【図１】
2010244316.tif 000003
【図２】
2010244316.tif 000004
【図３】
2010244316.tif 000005
【図４】
2010244316.tif 000006
【図５】
2010244316.tif 000007
【図６】
2010244316.tif 000008
【図７】
2010244316.tif 000009
【図８】
2010244316.tif 000010
【図９】
2010244316.tif 000011
【図１０】
2010244316.tif 000012
【図１１】
2010244316.tif 000013
【図１２】
2010244316.tif 000014
【図１３】
2010244316.tif 000015
【図１４】
2010244316.tif 000016
【図１５】
2010244316.tif 000017
【図１６】
2010244316.tif 000018
【図１７】
2010244316.tif 000019
【図１８】
2010244316.tif 000020
【図１９】
2010244316.tif 000021
【図２０】
2010244316.tif 000022
【図２１】
2010244316.tif 000023
【図２２】
2010244316.tif 000024
【図２３】
2010244316.tif 000025
【図２４】
2010244316.tif 000026
【図２５】
2010244316.tif 000027
【図２６】
2010244316.tif 000028
【図２７】
2010244316.tif 000029
【図２８】
2010244316.tif 000030
【図２９】
2010244316.tif 000031
【図３０】
2010244316.tif 000032
【図３１】
2010244316.tif 000033
【図３２】
2010244316.tif 000034