(57)【特許請求の範囲】
【請求項１】
入力される符号化画像データを複数の復号部によって並行して復号する画像復号装置であって、
上記入力される符号化画像データを構成する各スライスを、各復号部に復号されるスライスに含まれる小単位データの数の合計が平均化されるように、復号部に分配して復号させる分配処理部を備えていることを特徴とする画像復号装置。
【請求項２】
請求項１の画像復号装置であって、
上記分配処理部は、分配すべき各スライスを、各復号部について既に分配されることが決定されたスライスに含まれる小単位データの数の合計を算出し、上記合計が最も少ない復号部に分配するように構成されていることを特徴とする画像復号装置。
【請求項３】
請求項１の画像復号装置であって、
上記分配処理部は、分配すべき各スライスを、含まれる小単位データの数が多いものから、既に分配されることが決定されたスライスに含まれる小単位データの数の合計が最も少ない復号部に分配するように構成されていることを特徴とする画像復号装置。
【請求項４】
請求項１の画像復号装置であって、
分配されるべきスライスに含まれる小単位データの数の合計を復号部の数で割った平均値を算出する平均値算出部を備え、
上記分配処理部は、それぞれの復号部に対して、各スライスを、既に当該復号部に分配されることが決定されたスライスに含まれる小単位データの数が上記平均値を超えるまで順次分配することを特徴とする画像復号装置。
【請求項５】
請求項１の画像復号装置であって、
上記小単位データは１ビットのデータであることを特徴とする画像復号装置。
【請求項６】
請求項１の画像復号装置であって、
上記符号化画像データは、ＭＰＥＧ規格による圧縮符号化が行われたものであり、
上記小単位データは、各マクロブロックの符号化データであることを特徴とする画像復号装置。
【請求項７】
入力される符号化画像データを複数の復号部によって並行して復号する画像復号装置であって、
上記入力される符号化画像データを構成する現在画面の各スライスについて、前画面のスライスのうち、その現在画面のスライスに対応するスライスに含まれる小単位データの数を特定し、上記現在画面の各スライスを、各復号部に復号される上記現在画面のスライスについて特定した小単位データの数の合計が平均化されるように、復号部に分配して復号させる分配処理部を備えていることを特徴とする画像復号装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、符号化された画像データの復号処理を高速に行う画像復号装置に関する。
【背景技術】
【０００２】
従来、ＭＰＥＧ（ｍｏｖｉｎｇ  ｐｉｃｔｕｒｅ  ｅｘｐｅｒｔｓ  ｇｒｏｕｐ）等の圧縮符号化形式により動画像を符号化して得られた符号化ストリームデータを復号する復号装置として、符号化ストリームデータを所定単位ごとに複数の復号部に振り分け、復号処理を並行して行うものが知られている。具体的には、例えば、特許文献１の図１１に示される復号装置では、デコーダ制御部１０３が複数のデコーダ１１０にストリームデータを順次入力し、各デコーダ１１０がそれぞれ入力されたデータの復号処理を行うようになっている。また、特許文献２の図４に示される復号装置では、ロウデコーダ制御回路１６が、ストリームバッファ１４ａに蓄積されたデータを複数のロウデコーダ１７〜１９に分配して入力し、入力されたデータに対して各ロウデコーダ１７〜１９が並列的に復号処理を行うようになっている。
【０００３】
この種の画像復号装置においては、各復号部が、振り分けられた各所定単位の符号化ストリームデータの復号処理を完了した場合には完了信号を出力し、その完了信号を受信した制御部が、完了信号を出力した復号部に対してデータが配置された順番に所定単位の符号化ストリームデータを入力するようになっている。例えば特許文献２の図７に示されるように、各ロウデコーダ１７〜１９が、１行分のデータについて復号処理を完了した場合には、完了信号をロウデコーダ制御回路１６に送出し、完了信号を受信したロウデコーダ制御回路１６が、完了信号を送出したロウデコーダ１７〜１９に対して、一行分のデータをデータが配置された順番に入力するようになっている。また、特許文献１の復号装置は、１スライスを所定単位として同様の処理を行うようになっている。
【特許文献１】特開２００２−３２５２５５号公報（段落０００３〜０００７、図１１）
【特許文献２】特開２００３−３２６７９号公報（段落００３５〜００３７、図４、段落００７７、図７、段落０００２）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記のように完了信号を出力した復号部に、データが配置された順番に入力されると、他の復号部が休止状態となる時間が長くなる場合がある。例えば、フレーム内の最後のデータがいずれかの復号部に入力された直後に、他の復号部の復号処理が完了し、フレーム内の最後のデータの復号処理に長い時間がかかった場合である。つまり、復号部の休止状態となる時間が長くなることにより、各フレーム全体のデータを復号するのにかかる時間が長くなっていた。
【０００５】
本発明は、上記の点に鑑み、複数の復号部によって復号処理を並行して行う復号装置において、符号化されたデータの復号処理にかかる時間をより短縮することを目的とする。
【課題を解決するための手段】
【０００６】
上記の課題を解決するため、請求項１の発明は、
入力される符号化画像データを複数の復号部によって並行して復号する画像復号装置であって、
上記入力される符号化画像データを構成する各スライスを、各復号部に復号されるスライスに含まれる小単位データの数の合計が平均化されるように、復号部に分配して復号させる分配処理部を備えていることを特徴とする。
【０００７】
また、請求項２の発明は、
請求項１の画像復号装置であって、
上記分配処理部は、分配すべき各スライスを、各復号部について既に分配されることが決定されたスライスに含まれる小単位データの数の合計を算出し、上記合計が最も少ない復号部に分配するように構成されていることを特徴とする。
【０００８】
また、請求項３の発明は、
請求項１の画像復号装置であって、
上記分配処理部は、分配すべき各スライスを、含まれる小単位データの数が多いものから、既に分配されることが決定されたスライスに含まれる小単位データの数の合計が最も少ない復号部に分配するように構成されていることを特徴とする。
【０００９】
また、請求項４の発明は、
請求項１の画像復号装置であって、
分配されるべきスライスに含まれる小単位データの数の合計を復号部の数で割った平均値を算出する平均値算出部を備え、
上記分配処理部は、それぞれの復号部に対して、各スライスを、既に当該復号部に分配されることが決定されたスライスに含まれる小単位データの数が上記平均値を超えるまで順次分配することを特徴とする。
【００１０】
また、請求項５の発明は、
請求項１の画像復号装置であって、
上記小単位データは１ビットのデータであることを特徴とする。
【００１１】
また、請求項６の発明は、
請求項１の画像復号装置であって、
上記符号化画像データは、ＭＰＥＧ規格による圧縮符号化が行われたものであり、
上記小単位データは、各マクロブロックの符号化データであることを特徴とする。
【００１２】
これらにより、各復号部が復号するスライスに含まれる小単位データの数の合計が平均化されることによって、各復号部の復号処理時間も平均化される。したがって、各復号部が休止状態となる時間が短くなり、符号化画像データの復号処理にかかる時間が短くなる。
【００１３】
また、請求項７の発明は、
入力される符号化画像データを複数の復号部によって並行して復号する画像復号装置であって、
上記入力される符号化画像データを構成する現在画面の各スライスについて、前画面のスライスのうち、その現在画面のスライスに対応するスライスに含まれる小単位データの数を特定し、上記現在画面の各スライスを、各復号部に復号される上記現在画面のスライスについて特定した小単位データの数の合計が平均化されるように、復号部に分配して復号させる分配処理部を備えていることを特徴とする。
【００１４】
これにより、各復号部が復号するスライスに対応する前画面のスライスに含まれる小単位データの数が平均化されることによって、各復号部の復号処理時間も平均化される。したがって、各復号部が休止状態となる時間が短くなり、符号化画像データの復号処理にかかる時間が短くなる。
【発明の効果】
【００１５】
本発明によれば、複数の復号部によって復号処理を並行して行う復号装置において、符号化されたデータの復号処理にかかる時間をより短縮することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明に係る復号装置の実施形態について、図面を参照して説明する。なお、以下の各実施形態において、他の実施形態と同様の機能を有する構成要素については同一の符号を付して説明を省略する。
【００１７】
《ＭＰＥＧ２ビットストリームのデータ構造》
最初に、本実施の形態に係る復号装置の復号対象であるＭＰＥＧ２ビットストリームのデータ構造について図１〜図３を用いて説明する。
【００１８】
なお、本実施の形態では、ＭＰＥＧ２方式により圧縮符号化されたＭＰＥＧ２ビットストリームという符号化画像データを復号する復号装置に適用した場合を説明するが、ＭＰＥＧ１やＭＰＥＧ４等のあらゆる画像符号化方式により符号化された符号化画像データを復号する場合にも同様に適用することができる。
【００１９】
ＭＰＥＧ２ビットストリームのデータは、復号装置側で正しく受け取ることができるように、そのデータ構造が細かく決められており、具体的には、図１に示すように、シーケンス、ＧＯＰ（Group of Picture）、ピクチャ、スライス、マクロブロック、およびブロックという階層構造を有する。
【００２０】
シーケンスは、１つ以上のＧＯＰを含み、一般に１つのビデオプログラム全体の符号化信号データである。このシーケンスは、シーケンスヘッダで始まり、シーケンスエンドで終了する。シーケンスヘッダには、画像の大きさを表す情報、１秒間に符号化するフレームの数、通信速度など、シーケンス全体に関連する情報が含まれる。また、シーケンスヘッダに続いて、ＭＰＥＧ２の符号化信号であることを表す機能拡張情報が挿入され、入力画像信号形式などが指定される。
【００２１】
ＧＯＰは、フレーム内符号化が可能なＩピクチャ、過去のフレームのみを用いて前方向の動き補償を行うＰピクチャ、および過去と未来の両方のフレームを用いて双方向の動き補償を行うＢピクチャのうち、１つ以上のピクチャを含んで構成される。なお、各ＧＯＰの最初のピクチャとしては、必ずＩピクチャが挿入される。ＧＯＰヘッダには、画像復元時に音声などとの時間合わせを可能とするためのタイムスタンプ情報などが含まれる。
【００２２】
ピクチャは、１つ以上のスライスを含み、図２に示すように、動画像信号を構成する１枚の画面（ｍ画素×ｎライン）分のデータである。このピクチャのピクチャヘッダには、Ｉ、Ｐ、Ｂピクチャを識別するための情報や、各ピクチャの表示順序を指定する情報などが含まれる。また、ピクチャヘッダに続く機能拡張情報には、フレーム構造／フィールド構造の設定など、ＭＰＥＧ２で導入されている機能を指定する情報が含まれる。
【００２３】
スライスは、画面上で左右方向に１列に並ぶ１つ以上のマクロブロックから構成され、スライス情報には、量子化特性を表す情報など、このスライス内で使用される符号化情報が含まれる。なお、マクロブロックの並びは、通信回線でのエラーの影響が画面上で縦方向に及ばないように、左右方向に１列となり、２列以上となることはない。
【００２４】
マクロブロックは、図２に示すように、４：２：０のフォーマット時には、８×８のＹ信号ブロック４個と、８×８のＣｒ信号ブロック１個と、８×８のＣｂ信号ブロック１個とから構成される。なお、マクロブロック情報には、マクロブロック単位で符号化制御を行うための、マクロブロックアドレスインクリメント（ＭＢＡＩ：画像の左端からマクロブロックの数＋１を示す）、水平および垂直方向のモーションベクトルに関する情報、コーデッドブロックパターン（ＣＢＰ：６つのブロックが有意ブロックかどうかで符号化される）等の情報が含まれる。
【００２５】
ブロックは、図２に示すように、４：２：０のフォーマット時には、８×８のＹ信号、Ｃｒ信号、Ｃｂ信号いずれかのＤＣＴ係数データから構成される。なお、このＤＣＴ係数データは、連続する可変長の符号化データである。各ブロックの最後には、ＥＯＢ（End of Block）コードが付される。
【００２６】
以上のように、ＭＰＥＧ２ビットストリームのデータは、６層からなる階層構造を有する。シーケンス、ＧＯＰ、ピクチャ、スライスの各層には、バイト単位で配置（各層の先頭から８の倍数のビット位置に配置）された、図３に示すような３２ビットのスタートコードがそれぞれ挿入されている。
【００２７】
このスタートコードのビットパターンは、ＭＰＥＧ２ビットストリーム内では、スタートコード位置以外の位置では決して発生しないものである。このため、ＭＰＥＧ２ビットストリームを受け取った復号装置は、かかるスタートコードを検出することにより、例えば、スライス単位ごとに複数の処理系にて並行して復号処理を行うことができる。
【００２８】
なお、図２には、４：２：０のフォーマット時のデータ構成を示したが、本発明はこれに限定されるものではなく、４：２：２のフォーマット時においても同様に適用することができる。
【００２９】
《発明の実施形態１》
（復号装置の構成）
本発明の実施形態１に係る復号装置は、図４に示すように、スタートコード検出部１１、外部バッファ制御部１２、外部バッファ１３、符号化データ分配処理部１４（分配処理部）、デコーダ制御部１５、複数の復号部（デコーダ）１６、および出力メモリ１７を備えている。外部バッファ１３は、ストリームバッファ１３ａ、および分配処理情報バッファ（スタートコードバッファ）１３ｂにより構成される。なお、外部バッファ１３には、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などのメモリが用いられる。
【００３０】
また、デコーダ１６は、可変長復号化部１６ａ、逆量子化部１６ｂ、逆ＤＣＴ部１６ｃ、および動き補償部１６ｄを備えている。
【００３１】
また、図５に示すように、符号化データ分配処理部１４は、マクロブロック数（ＭＢ数）カウント部１４ａ、および分配順決定部１４ｂを備えている。
【００３２】
（復号装置の動作の概要）
まず、復号装置外部から入力されたＭＰＥＧ２ビットストリーム（以下、符号化ストリームデータ）は、ストリームバッファ１３ａに蓄積される。次に、符号化データ分配処理部１４が、この蓄積された符号化ストリームデータを復号するデコーダ１６を、スライス単位毎に決定する。より詳しくは、まずスタートコードバッファ１３ｂに蓄積された各スタートコードのストリームバッファ１３ａにおける書き込み位置を示すスタートコード情報が読み出され、スタートコード情報から書き込み位置が特定される各スタートコード以降の１スライス分の符号化ストリームデータ（各スライス）が解析される。そして、各スライスに含まれるマクロブロック数が算出され、各スライスについて、既に分配されることが決定されたスライスのマクロブロック数の合計が最も少ないデコーダ１６が、復号するデコーダ１６として決定される。そして、デコーダ制御部１５の制御により符号化ストリームデータに対してスライス単位毎にデコーダ１６内で復号処理が実行され、復号された画像データは出力メモリ１７に蓄積される。
【００３３】
（復号装置の各部の主な動作）
スタートコード検出部１１は、外部から入力された符号化ストリームデータと以下に説明するスタートコード情報を外部バッファ制御部１２に供給する。より詳しくは、図３に示した符号化ストリームデータの各スライスのスタートコードを検出し、その検出されたスタートコードより、そのスタートコードがストリームバッファ１３ａに書き込まれる位置を示す情報を含んだスタートコード情報を生成し、符号化ストリームデータおよびスタートコード情報を外部バッファ制御部１２に出力する。
【００３４】
外部バッファ制御部１２は、スタートコード検出部１１から入力された符号化ストリームデータとスタートコード情報とを、外部バッファ１３のストリームバッファ１３ａとスタートコードバッファ１３ｂとにそれぞれ書き込む。
【００３５】
外部バッファ１３（ストリームバッファ１３ａおよびスタートコードバッファ１３ｂ）は、外部バッファ制御部１２から入力された符号化ストリームデータやスタートコード情報を保持する。
【００３６】
符号化データ分配処理部１４のＭＢ数カウント部１４ａは、符号化ストリームデータの各スライスに含まれるマクロブロック数をカウントし、分配順決定部１４ｂに出力する。スタートコードバッファ１３ｂより各スライスのスタートコード情報を読み出し、各スタートコード情報から書き込み位置が特定されるスタートコード以降の１スライス分の符号化ストリームデータ（各スライス）を読み出して解析し、各スライスに含まれるマクロブロック数をカウントし、分配順決定部１４ｂへ各スライスのマクロブロック数を出力する。
【００３７】
符号化データ分配処理部１４の分配順決定部１４ｂは、ＭＢ数カウント部１４ａより入力された各スライスのマクロブロック数により、各スライスを複数あるデコーダ１６のうちどのデコーダ１６で復号するかを決定し、デコーダ制御部１５へその決定結果を出力する。具体的な決定動作については、後に詳述する。
【００３８】
デコーダ制御部１５は、前記決定結果に基づいて、ストリームバッファ１３ａの符号化ストリームデータを、デコーダ１６にスライス単位毎に分配する。また、分配するスライスのスタートコード情報をスタートコードバッファ１３ｂから読み出し、そのスライスのピクチャ層のパラメータとストリームバッファ１３ａにおける書込み位置とを示す情報とを、分配順決定部１４ｂで決定されたデコーダ１６に出力する。ピクチャ層のパラメータは、１枚の画像で共通なパラメータであり、ピクチャの種類（Ｉ／Ｐ／Ｂピクチャ）やピクチャ構造（フレーム／フィールド）を特定するものであり、デコーダの動作に使用される。
【００３９】
デコーダ１６は、デコーダ制御部１５から入力される符号化ストリームデータの書込み位置をスライス毎に示す情報に基づいて、符号化ストリームデータをスライス毎に外部バッファ制御部１２を介してストリームバッファ１３ａから読み出す。そして、デコーダ制御部１５から入力されたピクチャ層のパラメータに従って、読み出したスライス単位の符号化ストリームデータを復号して出力メモリ１７に出力する。また、復号処理が完了すると、デコーダ制御部１５へ完了通知を行う。この復号処理は、可変長復号化部１６ａ、逆量子化部１６ｂ、逆ＤＣＴ部１６ｃおよび動き補償部１６ｄによって行われる。以下に、デコーダ１６における各処理部の処理を説明する。
【００４０】
可変長復号化部１６ａは、符号化データに含まれる可変長符号化データを復号して量子化ＤＣＴ係数を復元する。より詳しくは、まず、デコーダ制御部１５から入力される符号化ストリームデータの書込み位置をスライス毎に示す情報に基づいて、各スライスを外部バッファ制御部１２を介してストリームバッファ１３ａから読み出す。そして、読み出したスライスからマクロブロックを分離する。さらに、各マクロブロックの量子化ＤＣＴ係数を復号し、復号した量子化ＤＣＴ係数を逆量子化部１６ｂに出力する。この可変長符号化データの復号に際しては、所定の復号テーブルが参照される。なお、可変長復号化部１６ａは、予測モードや予測ベクトルなどのパラメータの復号も行い、復号した予測モードおよび予測ベクトルを動き補償部１６ｄに出力する。
【００４１】
逆量子化部１６ｂは、可変長復号化部１６ａから入力される量子化ＤＣＴ係数を逆量子化してＤＣＴ係数に復号し、復号したＤＣＴ係数を逆ＤＣＴ部１６ｃに出力する。なお、この逆量子化に際しても、上記の可変長符号化データの復号の際と同様に、所定の逆量子化テーブルが参照される。
【００４２】
逆ＤＣＴ部１６ｃは、逆量子化部１６ｂから入力されるＤＣＴ係数を逆ＤＣＴ変換して符号化前の画素データを復号し、復号した画素データを動き補償部１６ｄに出力する
動き補償部１６ｄは、逆ＤＣＴ部１６ｃから入力される画素データと、可変長復号化部１６ａから入力される予測モードおよび予測ベクトルとに基づいて、動き補償を行い、動き補償を行った画素データを出力メモリ１７に書き込む。
【００４３】
この出力メモリ１７に書き込まれた画素データは、表示出力に利用されるとともに、他の画像の参照データとして利用される。すなわち、逆ＤＣＴ部１６ｃから入力されるマクロブロックが動き補償を使用している場合には、動き補償部１６ｄは、可変長復号化部１６ａから入力される予測ベクトルにしたがって、その画素データが輝度データであれば、出力メモリ１７の輝度バッファから参照画素を読み込み、その画素データが色差データであれば、出力メモリ１７の色差バッファから参照画素データを読み込む。そして、読み込んだ参照画素データを、逆ＤＣＴ部１６ｃから入力された画素データに加算することにより動き補償を行い、かかる動き補償を行った画素データを出力メモリ１７に書き込む。
【００４４】
（符号化ストリームデータの分配処理）
次に、本実施形態に係る復号装置における符号化データ分配処理部１４による１フレーム分の符号化ストリームデータの分配処理の動作について、図６に基づいて説明する。なお、分配される復号部が決定されながら、並行してその決定結果に応じた復号処理が行われてもよいし、１フレーム分のデータの分配がすべて決定されてから、そのフレームについての復号処理が開始されてもよい。
【００４５】
（Ｓ１０１）符号化データ分配処理部１４において、各レジスタの初期化が行われる。ここで、Ｌはどのデコーダ１６に分配されるかが決定されるスライスのマクロブロック数を示すレジスタの値である。また、Ｍ１〜Ｍｎ〜ＭＮは、Ｎ個の各デコーダ１６に分配されたマクロブロック数の累積を示すレジスタの値である。
【００４６】
（Ｓ１０２）各スライスのスタートコードが、符号化ストリームデータの先頭より順次、ＭＢ数（マクロブロック数）カウント部１４ａに入力され、ＭＢ数（マクロブロック数）カウント部１４ａにおける解析により、各スライスに含まれるマクロブロック数が算出される。
【００４７】
（Ｓ１０３）Ｌに、（Ｓ１０５）で分配されるスライスのマクロブロック数が入力される。
【００４８】
（Ｓ１０４）分配順決定部１４ｂにおいて、既に処理することが決定されたマクロブロック数の累積が最も少ないデコーダ、つまり、Ｍｎの値が最も小さいデコーダ１６が検出される。Ｍｎの値が最も小さいデコーダ１６が複数ある場合は、例えば、ｎの値が小さいデコーダ１６が検出されるようにする。ここでは、Ｍｋが最も小さく、ｎ＝ｋのデコーダ１６が検出されたとする。
【００４９】
（Ｓ１０５）Ｓ１０４で検出されたデコーダ１６にスライスを分配することが決定され、そのデコーダ１６の復号処理を実施するマクロブロック数の累積を示すレジスタの値にスライスに含まれるマクロブロック数が加算される。つまり、ＭｋにＬが加算される。
【００５０】
（Ｓ１０６）フレーム内の分配するスライスの有無が判定される。スライスが残っていれば、さらに残りのスライスについてＳ１０３〜Ｓ１０５の処理が行われ、残っていなければ、処理が終了される。
【００５１】
上記動作により、分配決定結果の例として図７に示すように、復号処理をするデコーダが決定される。
【００５２】
上記分配処理動作が行われながら、または分配処理終了後に、分配決定結果に応じて符号化ストリームデータがスライス毎にデコーダに出力され、各デコーダにより復号動作が行われる。
【００５３】
なお、Ｓ１０４で、Ｍｎの値が最も小さいデコーダ１６が複数ある場合は、そのうち、ｎの値が小さいデコーダ１６が選択されるようにしたが、どれが選択されるようにしてもよい。
【００５４】
（効果）
上述のように、実施形態１に係る復号装置によれば、スタートコードの解析により算出される各スライスのマクロブロック数を利用し、符号化データ分配処理部１４においてデコーダ１６でのスライスの復号順を、各デコーダが処理するデータのマクロブロック数が平均化されるように決定することによって、各デコーダ１６の処理時間を平均化することができ、これにより復号処理の高速化を図ることができる。つまり、複数のデコーダの処理時間を平均化することにより、一部のデコーダは処理を行っているが一部のデコーダは休止している状態の時間（図８に例としてｔ０を示す。）が短縮され、全体として復号処理に要する時間が短くなる。
【００５５】
《発明の実施形態２》
（復号装置の概要）
本発明の実施形態２に係る復号装置は、各スライスが、含まれるビット数が多いものから、前のスライスに対する処理が完了したことを示す完了通知を行ったデコーダ１６に分配されることを特徴としている。またその構成は、実施形態１に係る復号装置における符号化データ分配処理部１４の構成を、図９に示す符号化データ分配処理部２４の構成に変更したものである。符号化データ分配処理部２４は、符号化データ分配処理部１４のＭＢ数カウント部１４ａに代えて、各スライスに含まれるビット数をカウントするビット数カウント部２４ａを備えている。
【００５６】
（符号化データ分配処理部２４の主な動作）
符号化データ分配処理部２４のビット数カウント部２４ａは、スタートコードバッファ１３ｂより各スライスのスタートコードがストリームバッファ１３ａに書き込まれる位置を示す情報を読み出して、各スタートコード以降の１スライス分の符号化ストリームデータ（各スライス）を解析し、各スライスのビット数をカウントし、分配順決定部２４ｂに各スライスのビット数を出力する。
【００５７】
符号化データ分配処理部２４の分配順決定部２４ｂは、１フレーム分のデータ毎に、
ビット数カウント部２４ａより入力されるビット数により、各スライスを複数あるデコーダ１６のうちどのデコーダでどういう順序で復号するかを決定し、デコーダ制御部１５にその決定結果を出力する。
【００５８】
（符号化ストリームデータの分配処理）
次に、本実施形態に係る復号装置における符号化データ分配処理部２４による１フレーム分の符号化ストリームデータの分配処理の動作について、図１０に基づいて説明する。ここでは、スライスを複数あるデコーダ１６のうちいずれで復号するかを示すレジスタの値Ｄ、所定のスライスのビット数が設定されるレジスタの値Ｍ，Ｌ、および復号装置に備えられた全デコーダの個数を示す値Ｎを用いて説明する。
【００５９】
（Ｓ２０１）符号化データ分配処理部２４において、レジスタの初期化が行われる。ここでは、デコーダ１からスライスが割り当てられていくようにするのでＤ＝１と設定される。
【００６０】
（Ｓ２０２）スタートコードが、符号化ストリームデータの先頭より順次、ビット数カウント部２４ａに入力され、ビット数カウント部２４ａにおける解析により、各スライスに含まれるビット数が算出される。
【００６１】
（Ｓ２０３）分配順決定部２４ｂにおいて、（Ｓ２０２）で算出されたビット数の大きさ順にスライスが並べ替えられる。
【００６２】
（Ｓ２０４）どのデコーダで復号されるのかが決定されていない（分配が決定していない）スライスが残っているかどうかが判定される。残っていれば（Ｓ２０５）に進み、残っていなければ処理の終了となる。
【００６３】
（Ｓ２０５）分配が決定していないスライスのうち、最大のビット数を有するスライスをデコーダＤに分配する。
【００６４】
（Ｓ２０６）ＤがＮと等しければ（Ｓ２０８）に進み、そうでなければ（Ｓ２０７）に進む。
【００６５】
（Ｓ２０７）Ｄに１が加算され、（Ｓ２０４）に戻る。
【００６６】
（Ｓ２０８）いずれかのデコーダ１６からの完了通知を待つ。いずれかのデコーダ１６から完了通知が有れば（Ｓ２０９）に進む。
【００６７】
（Ｓ２０９）Ｄの値を完了通知を行ったデコーダ１６を示す番号とする。
【００６８】
（Ｓ２１０）分配が決定していないスライスがフレームに残っているかどうかが判定される。残っていれば（Ｓ２１１）に進み、残っていなければ処理の終了となる。
【００６９】
（Ｓ２１１）分配が決定していないスライスのうち、最大のビット数を有するスライスをデコーダＤに分配し、（Ｓ２０８）に戻る。
【００７０】
上記動作により、決定結果の例として図１１に示すように、復号処理を実施するデコーダを決定することができる。
【００７１】
なお、本実施形態においては、デコーダ１からスライスが割り当てられていくように、Ｄ＝１と初期化されていたが、他のデコーダから割り当てられていくように設定してもよい。
【００７２】
また、（Ｓ２０１）における初期化は、（Ｓ２０２）や（Ｓ２０３）の後に行われるようにしてもよい。
【００７３】
また、（Ｓ２０３）における並べ替えは、例えば、スタートコード情報の先頭に読み出し順を示すビットが付与され、その後、その順でスライスが読み出されるようにする方法で行われてもよい。このような方法においては、スライスが並べ替え後の順で再度別のメモリへ記録される必要がない。
【００７４】
（効果）
上述のように、実施形態２に係る復号装置によれば、スタートコードの解析により算出される各スライスのビット数を利用し、符号化データ分配処理部１４においてデコーダ１６でのストリーム内のスライスの復号順を、各デコーダが処理するデータのビット数が平均化されるように決定することによって、各デコーダ１６の処理時間を平均化することができ、これにより復号処理の高速化を図ることができる。つまり、複数のデコーダの処理時間を平均化することにより、一部のデコーダは処理を行っているが一部のデコーダは休止している状態の時間（図８に例としてｔ０を示す。）が短縮され、全体として復号処理に要する時間が短くなる。
【００７５】
《発明の実施形態３》
（復号装置の構成）
本発明の実施形態３に係る復号装置は、図１２に示すように、復号処理を実施済みのフレームの情報を記憶する前フレーム復号情報検出記憶部３８を備えている点で、実施形態１および実施形態２に係る復号装置と異なっている。また、符号化データ分配処理部３４は、スタートコードを解析するＭＢ数（マクロブロック数）カウント部１４ａやビット数カウント部２４ａを備えておらず、分配順決定部３４ｂが、復号しようとするフレーム（現在画面）の各スライスをどのデコーダによってどういう順序で復号するかを、前フレーム復号情報検出記憶部３８に保持された前フレームの当該スライスに対応するスライスの復号に実際に要した時間に基づいて決定し、デコーダ制御部１５にその決定結果を出力するようになっている。
【００７６】
前フレーム復号情報検出記憶部３８は、各スライスの復号時間を検出して１フレーム分記憶することを特徴とし、図１３に示すように、デコーダ制御部１５からデコーダ１６への符号化データの供給が開始されてから、デコーダ１６によってデコーダ制御部１５に完了通知が行われるまでの時間をカウントするタイマー部３８ａと、各スライスのスライス番号およびカウント時間を記憶する記憶バッファ３８ｂとを備えている。ここで、スライス番号は、スライスを識別する番号であり、例えばスライスのスタートコードが検出される際にスタートコード情報の先頭等に順次付与されるようにしてもよい。
【００７７】
（前フレーム復号情報検出記憶部３８の動作）
次に、本実施形態に係る復号装置における前フレーム復号情報検出記憶部３８の動作について、図１４に基づいて説明する。ここでは、前フレームにおける複数のスライスを識別する番号ｎ、およびｎで示されるスライスに対する復号が開始されてからのデコーダの累積復号時間を示すレジスタの値Ｔｎを用いて説明する。この動作は、フレーム毎に行われる。また、前フレーム復号情報検出記憶部３８はデコーダ毎に備えられる。
【００７８】
（Ｓ３０１）レジスタの初期化が行われる。具体的にはＴｎ＝０と設定される。
【００７９】
（Ｓ３０２）デコーダ制御部１５によってデコーダ１６への符号化ストリームデータの転送が開始されたか否かが判定される。
【００８０】
（Ｓ３０３）転送が開始されていれば、タイマー部３８ａにより復号処理時間がカウントされる。具体的にはＴｎに１が加算される。
【００８１】
（Ｓ３０４）タイマー部３８ａにより、デコーダ１６からデコーダ制御部１５への完了通知の有無が判定される。完了通知があるまで、（Ｓ３０３）の処理と（Ｓ３０４）の判定とが繰り返される。
【００８２】
（Ｓ３０５）完了通知があれば、復号処理時間のカウントが終了し、カウント結果（Ｔｎ）、例えばスライス番号および処理時間を示す値が記憶バッファ３８ｂに書き込まれ、処理が終了する。
【００８３】
（符号化ストリームデータの分配処理）
次に、本実施形態に係る復号装置における符号化データ分配処理部３４による１フレーム分の符号化ストリームデータの分配処理の動作について、図１５に基づいて説明する。ここでは、前フレームにおける復号処理時間の合計を示す値ＳＵＭ、所定のデコーダに既に分配された前フレームにおける復号処理時間Ｍ、各デコーダの前フレームにおける復号処理時間の平均を示すＤＩＶ、複数のデコーダ１６を識別する値Ｄ、およびスライスを識別する値Ｋを用いて説明する。また、全スライス数をＳ、全デコーダ数をＮとする。また、符号化データ分配処理部３４に保持された前フレームにおける各スライスの復号処理時間をＴKとする。
【００８４】
（Ｓ４０１）ＳＵＭ，Ｍ，Ｄ，Ｋ，ＤＩＶの初期化が行われる。
【００８５】
（Ｓ４０２）前フレームについて、タイマー部３８ａでカウントしたスライスの復号処理時間の総和（ＳＵＭ）が算出される。
【００８６】
（Ｓ４０３）（Ｓ４０２）で求めた総和をデコーダ数Ｎで割ることにより、各デコーダ１６における理想平均処理時間（ＤＩＶ）が算出される。
【００８７】
（Ｓ４０４）前フレームにおけるＫで識別されるスライスの復号処理時間ＴKが、Ｍに加算される。
【００８８】
（Ｓ４０５）デコーダＤの累積復号処理時間を示すＭが、理想平均処理時間（ＤＩＶ）を越えたかどうかが判定される。超えたと判定されれば（Ｓ４０６）に進み、越えていないと判定されれば（Ｓ４０８）に進む。
【００８９】
（Ｓ４０６）Ｄ＝Ｎかどうかが判定される。Ｄ＝Ｎであれば（Ｓ４０８）に進み、Ｄ≠Ｎであれば（Ｓ４０７）に進む。
【００９０】
（Ｓ４０７）スライスに復号処理を行うデコーダを別のデコーダにするため、Ｄに１が加算される。また、累積復号処理時間を示すＭが０に戻される。
【００９１】
（Ｓ４０８）デコーダＤにＫ番目のスライスが分配されることが決定される。
【００９２】
（Ｓ４０９）Ｋに１を加算する。
【００９３】
（Ｓ４１０）Ｋの値が全スライス数Ｓの値より大きければ、処理が終了する。大きくなければ、（Ｓ４０４）に戻り、さらに分配処理が続けられる。
【００９４】
上記動作により、分配処理結果の例として図１６に示すように、復号処理を実施するデコーダが決定される。
【００９５】
なお、（Ｓ４１０）において、分配処理すべきスライスの有無がレジスタＫの値により判定されているが、スライスに含まれる情報等により判定されるようにしてもよい。
【００９６】
また、記憶バッファ３８ｂを復号装置の内部に含む例について説明したが、外部のバッファ等を用いるように構成してもよい。
【００９７】
（効果）
上述のように、実施形態３に係る復号装置によれば、前フレームにおける各スライスの復号時間を記憶し、その復号時間に基づいて、符号化データ分配処理部１４においてデコーダ１６でのストリーム内のスライスの復号順を変更することによって、各デコーダ１６の処理時間を平均化することができ、これにより復号処理の高速化を図ることができる。つまり、複数のデコーダの処理時間を平均化することにより、一部のデコーダは処理を行っているが一部のデコーダは休止している状態の時間（図８に例としてｔ０を示す。）が短縮され、全体として復号処理に要する時間が短くなる。
【００９８】
《その他》
なお、実施形態１の復号装置は、各スライスが、既に分配されることが決定されたスライスのマクロブロック数の合計が最も少ないデコーダ１６に分配されるようになっていたが、マクロブロック数の代わりにスライスに対応する前フレームのスライスの復号処理に実際にかかった時間やビット数を用いてもよい。例えば、各スライスが、既に分配されることが決定されたスライスのビット数の合計が最も少ないデコーダ１６に分配されるようにしてもよい。
【００９９】
なお、実施形態２の復号装置は、各スライスが、含まれるビット数が多いものから、完了通知を行ったデコーダに対して分配されるようになっていたが、各デコーダに既に分配されることが決定されたスライスのビット数の合計が算出され、各スライスが、含まれるビット数が多いものから、上記合計が最も少ないデコーダに分配されるようにしてもよい。また、この場合、分配される復号部が決定されながら、並行してその決定結果に応じた復号処理が行われてもよいし、１フレーム分のデータの分配がすべて決定されてから、そのフレームについての復号処理が開始されてもよい。また、ビット数の代わりに、マクロブロック数やスライスに対応する前フレームのスライスの復号処理に実際にかかった時間を用いてもよい。例えば、各スライスが、含まれるマクロブロック数が多いものから、完了通知を行ったデコーダに対して分配されるようにしてもよい。
【０１００】
また、実施形態３の復号装置では前フレームの復号処理時間が平均されているが、実施形態１のＭＢ数カウント部１４ａで算出されるマクロブロック数や、実施形態２のビット数カウント部２４ａで算出されるビット数が平均されるように構成してもよい。また、前フレームのマクロブロック数やビット数が平均されるように構成してもよい。
【０１０１】
また、実施形態１，２，３において、１フレーム分の符号化ストリームデータのデコーダへの分配処理について説明したが、同様の処理をフレーム単位ではなくフィールド単位で行ってもよい。また、実施形態３の復号装置では前フレームの復号処理時間が平均されているが、前フィールドの復号処理時間が平均されるようにしてもよい。
【０１０２】
また、実施形態１，２，３において、それぞれ異なった分配手順について説明したが、実施形態１，２，３に係る復号装置において、どの分配手順を用いてもよいし、複数の手順を組み合わせて用いてもよい。
【産業上の利用可能性】
【０１０３】
本発明に係る画像復号装置は、複数の復号部によって復号処理を並行して行う復号装置において、符号化されたデータの復号処理にかかる時間を短縮するという効果を有し、例えば、符号化されたデータの復号処理を高速に行う画像復号装置等として有用である。
【図面の簡単な説明】
【０１０４】
【図１】ＭＰＥＧ２ビットストリームのデータ構造を示す説明図である。
【図２】ＭＰＥＧ２ビットストリームと画面との対応関係を示す説明図である。
【図３】ＭＰＥＧ２ビットストリームのスタートコードを示す説明図である。
【図４】実施形態１に係る復号装置の構成を示すブロック図である。
【図５】同、符号化データ分配処理部１４の構成を示すブロック図である。
【図６】同、符号化データ分配処理部１４による符号化ストリームデータの分配処理の動作を示すフローチャートである。
【図７】同、符号化データ分配処理部１４による分配処理結果の例を示す説明図である。
【図８】一部のデコーダは処理を行っているが一部のデコーダは休止している状態の時間ｔ０を示す説明図である。
【図９】実施形態２に係る復号装置の符号化データ分配処理部２４の構成を示すブロック図である。
【図１０】同、符号化データ分配処理部２４による符号化ストリームデータの分配処理の動作を示すフローチャートである。
【図１１】同、符号化データ分配処理部２４による分配処理結果の例を示す説明図である。
【図１２】実施形態３に係る復号装置の構成を示すブロック図である。
【図１３】同、前フレーム復号情報検出記憶部３８の構成を示すブロック図である。
【図１４】同、前フレーム復号情報検出記憶部３８の動作を示すフローチャートである。
【図１５】同、符号化データ分配処理部３４による符号化ストリームデータの分配処理の動作を示すフローチャートである。
【図１６】同、符号化データ分配処理部３４による分配処理結果の例を示す説明図である。
【符号の説明】
【０１０５】
１１ スタートコード検出部
１２   外部バッファ制御部
１３   外部バッファ
１３ａ  ストリームバッファ
１３ｂ  スタートコードバッファ（分配処理情報バッファ）
１４ 符号化データ分配処理部
１４ａ  ＭＢ数（マクロブロック数）カウント部
１４ｂ  分配順決定部
１５    デコーダ制御部
１６    デコーダ
１６ａ  可変長復号化部 
１６ｂ  逆量子化部 
１６ｃ  逆ＤＣＴ部 
１６ｄ  動き補償部 
１７    出力メモリ
２４    符号化データ分配処理部
２４ａ  ビット数カウント部
２４ｂ  分配順決定部
３４    符号化データ分配処理部
３４ｂ  分配順決定部
３８    前フレーム復号情報検出記憶部
３８ａ  タイマー部
３８ｂ  記憶バッファ
【図１】
0004594214.tif 000002
【図２】
0004594214.tif 000003
【図３】
0004594214.tif 000004
【図４】
0004594214.tif 000005
【図５】
0004594214.tif 000006
【図６】
0004594214.tif 000007
【図７】
0004594214.tif 000008
【図８】
0004594214.tif 000009
【図９】
0004594214.tif 000010
【図１０】
0004594214.tif 000011
【図１１】
0004594214.tif 000012
【図１２】
0004594214.tif 000013
【図１３】
0004594214.tif 000014
【図１４】
0004594214.tif 000015
【図１５】
0004594214.tif 000016
【図１６】
0004594214.tif 000017