(57)【要約】【課題】高速に復号化処理を行うことのできる動画像復号化装置を提供することを目的とする。【解決手段】動画像を復号化する動画像復号化装置であって、第１プロセッサ１０２と、第２プロセッサ１０６と、メインメモリ１１０と、メインメモリ制御手段１０４と、前記第２プロセッサから直接アクセス可能なローカルメモリ１０６０とを備え、第１プロセッサ１０２は、メインメモリ１１０に保持される情報を参照し、復号化の処理のうち、処理にかかる演算量が予め定められた演算量よりも小さい第１処理を行い、第２プロセッサ１０６は、ローカルメモリ１０６０に保持される情報を参照して、第１プロセッサ１０２からの指示に基づいて、復号化の処理のうち、処理にかかる演算量が予め定められた演算量よりも大きい第２処理を行う。【選択図】        図１
2005191690.tif 000002
【特許請求の範囲】
【請求項１】
動画像を復号化する動画像復号化装置であって、
前記復号化の処理を指示し、かつ前記符号化に関する処理を行う第１プロセッサと、
前記第１プロセッサからの指示に基づいて、前記復号化に関する処理を行う第２プロセッサと、
前記復号化に関する情報を保持するメインメモリと、
前記メインメモリと前記第１プロセッサの間、および前記メインメモリと前記第２プロセッサとの間のデータの授受を制御するメインメモリ制御手段と、
前記第２プロセッサから直接アクセス可能なローカルメモリと
を備え、
前記第１プロセッサは、前記メインメモリ制御手段を介して前記メインメモリに保持される情報を参照し、前記復号化の処理のうち、処理にかかる演算量が予め定められた演算量よりも小さい第１処理を行い、
前記第２プロセッサは、前記ローカルメモリに保持される情報を参照して、前記第１プロセッサからの指示に基づいて、前記復号化の処理のうち、処理にかかる演算量が予め定められた演算量よりも大きい第２処理を行うことを特徴とする動画像復号化装置。
【請求項２】
前記第１処理は、予め定められた閾値よりも大きいメモリ量を要する処理であって、
前記第２処理は、予め定められた閾値よりも小さいメモリ量を要する処理であることを特徴とする請求項１に記載の動画像復号化装置。
【請求項３】
前記第１プロセッサは、前記第１処理として前記動画像の階層構造のうちピクチャ層より上位階層のシンタックスを解析することを特徴とする請求項１または２に記載の動画像復号化装置。
【請求項４】
前記第２プロセッサは、前記第２処理として前記動画像の階層構造のうちピクチャ層以下の階層のシンタックスを解析することを特徴とする請求項１から３のいずれか一項に記載の動画像復号化装置。
【請求項５】
前記第２プロセッサは、前記動画像を構成する複数の部分画像に対して施す反復処理を前記第２処理として行うことを特徴とする請求項４に記載の動画像復号化装置。
【請求項６】
前記メインメモリは、前記第２処理に関する情報をさらに保持し、
前記ローカルメモリは、前記第２プロセッサが前記第２処理を実行するときに、前記メインメモリ制御手段を介して前記メインメモリから前記第２処理に関する情報を取得し、当該第２処理に関する情報を保持することを特徴とする請求項１から５いずれか一項に記載の動画像復号化装置。
【請求項７】
前記第２処理は、複数の部分処理を含み、
前記ローカルメモリは、前記第２プロセッサが前記部分処理を実行するときに、前記メインメモリ制御手段を介して前記メインメモリから前記部分処理に関する情報を取得し、当該部分処理に関する情報を保持することを特徴とする請求項６に記載の動画像復号化装置。
【請求項８】
前記ローカルメモリは、前記第２プロセッサが前記部分処理を完了したときに、前記部分処理に関する情報を前記メインメモリに退避することを特徴とする請求項７に記載の動画像復号化装置。
【請求項９】
前記第２プロセッサを複数備え、
前記第１プロセッサは、前記動画像を複数の部分データに分割し、前記部分データ単位で前記動画像を前記複数の第２プロセッサに配分し、
前記複数の第２プロセッサは、前記第１プロセッサから受け取った前記部分データに対してそれぞれ第２処理を行うことを特徴とする請求項１から８のいずれか一項に記載の動画像復号化装置。
【請求項１０】
前記第１プロセッサは、前記部分データに含まれるスタートコードを検出し、前記スタートコードに基づいて、前記動画像を前記複数の第２プロセッサに配分することを特徴とする請求項９に記載の動画像復号化装置。
【請求項１１】
前記第１プロセッサは、前記動画像を構成する静止画像を複数のスライスに分割し、前記スライス単位で前記動画像を前記複数の第２プロセッサに配分することを特徴とする請求項９または１０に記載の動画像復号化装置。
【請求項１２】
前記第１プロセッサは、前記動画像を複数のビデオパケットに分割し、前記ビデオパケット単位で前記動画像を前記複数の第２プロセッサに配分することを特徴とする請求項９または１０に記載の動画像復号化装置。
【請求項１３】
動画像を復号化する動画像復号化方法であって、
前記復号化の処理を指示し、かつ前記符号化に関する処理を行う第１プロセッサが、前記復号化に関する情報を保持するメインメモリに保持される情報を参照し、前記復号化の処理のうち、処理にかかる演算量が予め定められた演算量よりも小さい第１処理を行う第１のステップと、
前記第１プロセッサからの指示に基づいて、前記復号化に関する処理を行う第２プロセッサが、前記第２プロセッサから直接アクセス可能なローカルメモリに保持される情報を参照して、前記第１プロセッサからの指示に基づいて、前記復号化の処理のうち、処理にかかる演算量が予め定められた演算量よりも大きい第２処理を行う第２のステップと
を有することを特徴とする動画像復号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッシングユニットを用いて、動画像を復号化する動画像復号化装置および動画像復号化方法に関するものである。
【背景技術】
【０００２】
コンピュータ技術の進化に伴い、ＭＰＥＧ−２／ＭＰＥＧ−４に代表される動画像符号化および動画像復号化をソフトウェアベースで行う技術が一般化してきている。この技術を利用して、パーソナルコンピュータ上でソフトウェアによりテレビ放送の復号化を行い、パーソナルコンピュータをハードディスクレコーダとして使用するような利用形態が知られている。
【０００３】
一方、次世代のゲーム機やホームサーバ、デジタルテレビジョンなどに搭載されるＣＰＵとして、高速なＳＩＭＤ(Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ)プロセッサを複数用意し、それらが協調して処理を実行するモデルが提案されている。
【０００４】
例えば、同一のＩＳＡ(Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ａｒｃｈｉｔｅｃｔｕｒｅ)を持つ８個の付加処理ユニット(ＡＰＵ)が共用ダイナミックランダムアクセスメモリ(ＤＲＡＭ)を用いてリアルタイムに通信を行い、処理を行う装置がある（特許文献１参照）。
【０００５】
これによれば、１つのプロセッサエレメント(ＰＥ)は、処理ユニット(ＰＵ)、ダイレクトメモリアクセスコントローラ(ＤＭＡＣ)、および８個のＡＰＵから構成される。ＰＵは、処理のスケジュール管理と装置の全般的管理を行う。そして、ＡＰＵはスケジュールに従って並列的に処理を実行する。
【０００６】
本装置は、ＴＣＰ／ＩＰネットワークからパケット化されたＭＰＥＧデータを取得し、当該データを復号化する一連の処理を行う。この一連の処理のうちＭＰＥＧデータの抽出およびＭＰＥＧデータの復号化はＡＰＵにより行われる。このように、長時間を要する処理をＡＰＵに行わせることにより、処理の高速化を図っている。
【０００７】
【特許文献１】特開２００２−３５８２８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
以上のように、複数のＡＰＵの協働により処理の高速化を図る技術が知られているが、各ＡＰＵが有するローカルメモリのメモリ容量は非常に小さい。従って、メモリを大量に消費する演算や、大量のデータを利用する演算を行う場合には、ＡＰＵとＤＲＡＭの間での情報の授受が必要となる。そして、このようなＡＰＵからＤＲＡＭへのアクセスは処理の遅延の主な要因となる。
【０００９】
本発明は、上記に鑑みてなされたものであって、上述のような処理の遅延を抑制し、高速に復号化処理を行うことのできる動画像復号化装置および動画像復号化方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するために、本発明は、動画像を復号化する動画像復号化装置であって、前記復号化の処理を指示し、かつ前記符号化に関する処理を行う第１プロセッサと、前記第１プロセッサからの指示に基づいて、前記復号化に関する処理を行う第２プロセッサと、前記復号化に関する情報を保持するメインメモリと、前記メインメモリと前記第１プロセッサの間、および前記メインメモリと前記第２プロセッサとの間のデータの授受を制御するメインメモリ制御手段と、前記第２プロセッサから直接アクセス可能なローカルメモリとを備え、前記第１プロセッサは、前記メインメモリ制御手段を介して前記メインメモリに保持される情報を参照し、前記復号化の処理のうち、処理にかかる演算量が予め定められた演算量よりも小さい第１処理を行い、前記第２プロセッサは、前記ローカルメモリに保持される情報を参照して、前記第１プロセッサからの指示に基づいて、前記復号化の処理のうち、処理にかかる演算量が予め定められた演算量よりも大きい第２処理を行うことを特徴とする。
【発明の効果】
【００１１】
本発明にかかる動画像復号化装置は、復号化の処理のうち比較的大きな演算量の処理を、メインメモリに直接アクセス可能な第１プロセッサに担当させ、復号化の処理のうち比較的小さな演算量の処理を、メインメモリには直接アクセスできないが、ローカルメモリに直接アクセス可能な第２プロセッサに担当させる。このように、復号化に含まれる複数の処理を第１プロセッサおよび第２プロセッサに分担させることにより、処理の高速化を図ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００１２】
以下に、本発明にかかる動画像復号化装置および動画像復号化方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【００１３】
図１は、本発明の動画像復号化装置１０のハードウェア構成を示すブロック図である。動画像復号化装置１０は、プロセッサエレメント１００とＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１１０とを有している。さらにプロセッサエレメント１００は、処理ユニット１０２と、ＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）１０４と、複数の付加処理ユニット、すなわち第１付加処理ユニット１０６ａ，第２付加処理ユニット１０６ｂ・・・とを有している。
【００１４】
なお、ここで、本実施の形態にかかる処理ユニット１０２および付加処理ユニット１０６は、それぞれ本発明の第１プロセッサおよび第２プロセッサを構成する。また、本実施の形態のＤＲＡＭ１１０およびＤＭＡＣ１０４は、それぞれ本発明のメインメモリおよびメインメモリ制御手段を構成する。
【００１５】
処理ユニット１０２は、動画像符号化装置１０の全体を統括する。ＤＲＡＭ１１０は、処理対象となる動画像データおよび動画像データに対する符号化処理にかかるプログラム等を保持している。ＤＭＡＣ１０４は、ＤＲＡＭ１１０から取得した情報を処理ユニット１０２または付加処理ユニット１０６に送る。さらに処理ユニット１０２および付加処理ユニット１０６から取得した情報をＤＲＡＭ１１０に送る。このように、ＤＭＡＣ１０４は、ＤＲＡＭ１１０とプロセッサエレメント１００の間のインターフェースとして機能する。また、各付加処理ユニット１０６は、処理ユニット１０２からの指示により、復号化に関する処理を行う。
【００１６】
図２は、図１に示す第１付加処理ユニット１０６ａの詳細な構成を示すブロック図である。付加処理ユニット１０６ａは、ローカルメモリ１０６０と、レジスタ１０６２と、第１浮動少数点演算ユニット１０６４ａ，第２浮動小数点演算ユニット１０６４ｂ，・・・と、第１整数演算ユニット１０６６ａ，第２整数演算ユニット１０６６ｂ・・・とを有している。
【００１７】
第１付加処理ユニット１０６ａは、複数の浮動小数点演算ユニットおよび複数の整数演算ユニットを有している。第１付加処理ユニット１０６ａは、これらの協働により高速演算を行うことができる。
【００１８】
ローカルメモリ１０６０は、１２８キロバイト程度の比較的小さいＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）で構成されている。付加処理ユニット１０６は、ローカルメモリ１０６０が保持するプログラムおよびデータを利用して動作する。また、ＤＭＡＣ１０４に対してＤＲＡＭ１１０と付加処理ユニット１０６の間のデータ転送要求を行う。付加処理ユニット１０６は、ＤＭＡＣ１０４に接続されたＤＲＡＭ１１０を直接アクセスすることはできない。
【００１９】
付加処理ユニット１０６がプログラムを実行する場合、処理ユニット１０２がＤＭＡＣ１０４を制御し、ＤＲＡＭ１１０から付加処理ユニット１０６のローカルメモリ１０６０にオブジェクトプログラムと関連するスタックフレームが転送される。次いで、処理ユニット１０２が付加処理ユニット１０６にプログラムを実行させる旨のコマンドを発行する。そして、付加処理ユニット１０６は、処理ユニット１０２から発行されたコマンドに基づいて、プログラムの実行を開始する。付加処理ユニット１０６はまた、プログラムの結果をＤＭＡＣ１０４を介してＤＲＡＭ１１０に転送する。付加処理ユニット１０６は、処理が完了すると処理ユニット１０２に対し、処理が完了したことを示す割り込みを発生させるように指示する。
【００２０】
なお、図２を参照しつつ第１付加処理ユニット１０６ａの詳細な構成について説明したが、第２付加処理ユニット１０６ｂ等の詳細な構成は、第１付加処理ユニット１０６ａの詳細な構成と同様である。
【００２１】
図３は、プロセッサエレメント１００における復号化処理を示すフローチャートである。まず、処理ユニット１０２は、後述の可変長復号化を行うためのＭＰＥＧのシンタックスの解析を行う(ステップＳ１００)。これとは独立に、付加処理ユニット１０６は、ＤＭＡＣ１０４を介して動画像データを取得し、可変長復号化を行う(ステップＳ１１０)。これにより、バイナリデータを復号化する。次に、逆量子化を行い、ＤＣＴ係数を得る(ステップＳ１１２)。次に、ＤＣＴ係数に対して、逆離散コサイン変換を行い、残差信号を得る(ステップＳ１１４)。次に、残差信号と、可変長復号化処理(ステップＳ１１０)において得られた動きベクトルに基づいて、動き補償により復号化画像を作成する(ステップＳ１１６)。次に、後処理を行う(ステップＳ１１８)。なお、後処理とは、視覚特性に基づいた処理であり、主観画質を向上させる。
【００２２】
以上で、復号化処理が完了する。以上のように、復号化処理を処理ユニット１０２および付加処理ユニット１０６に分担することにより、効率的かつ高速に処理を行うことができる。
【００２３】
また、処理ユニット１０２にＭＰＥＧのシンタックス解析を割り当てるのが望ましい。ＭＰＥＧのシンタックス解析における演算負荷は小さい。しかし大量のテーブルを使用する。そこで、大容量のＤＲＡＭ１１０にＤＭＡＣ１０４を介して直接アクセス可能な処理ユニット１０２に上記処理を担当させることにより、シンタックス解析を付加処理ユニット１０４に割り当てる場合に比べて処理の効率化を図ることができる。このように処理ユニット１０２には、ピクチャー層より上位の処理を割り当てるのが望ましい。ピクチャー層より上位の処理は処理量が少ないので、処理速度が遅くとも全体としての処理の遅延に繋がり難いからである。
【００２４】
また、付加処理ユニット１０６にピクチャー層以下のマクロブロック単位の処理を割り当てるのが望ましい。ピクチャー層以下の処理は、付加処理ユニット１０６による処理に適している。
【００２５】
例えば、逆離散コサイン変換(ステップＳ１０４)および動き補償(ステップＳ１０６)は演算量が大きい。このように、演算量、すなわち演算負荷が大きい処理は、付加処理ユニット１０６に割り当てるのが望ましい。付加処理ユニット１０６は、図２において説明したように、複数の浮動少数点演算ユニット１０６４および複数の整数演算ユニット１０６６により、高速に処理を行うことができるので、処理ユニット１０２が処理する場合に比べてより高速に処理を行うことができるからである。
【００２６】
なお、演算負荷の大小を判断するための閾値を予め定めておいてもよい。この場合は、当該閾値と演算量とを比較することにより、処理ユニット１０２および付加処理ユニット１０６のいずれに割り当てるかを判断する。
【００２７】
このように、所定の演算量を閾値として、閾値を基準に付加処理ユニット１０６に分担させる処理および処理ユニット１０２に分担させる処理を定めることにより、全体として処理の高速化を図ることができる。
【００２８】
また、ピクチャー層以下の処理は、繰り返し処理が多い。このように繰り返し処理が多い場合も、高速な処理が可能な付加処理ユニット１０６による処理に適している。このように、各機能に適した処理を割り当てることにより、全体として処理の効率化を図ることができる。
【００２９】
なお、プロセッサエレメント１００における復号化処理は一般的なＭＰＥＧによる復号化処理と同様である。
【００３０】
図３を参照しつつ説明した付加処理ユニット１０６の処理は、複数のステージに分割されている。本実施の形態においては、付加処理ユニット１０６の処理は３つのステージに分割されている。すなわち、復号化処理は、可変長復号化(ステップＳ１１０)および逆量子化(ステップＳ１１２)を行う第１ステージと、逆離散コサイン変換出(ステップＳ１１４)および動き補償(ステップＳ１１６)を行う第２ステージと、後処理(ステップＳ１１８)を行う第３ステージとを有している。
【００３１】
付加処理ユニット１０６による第１ステージの処理の実行中は、ローカルメモリ１０６０は、第１ステージにおいて実行されるプログラム、第１ステージにおける処理の対象となる動画像データおよび参照されるデータ等を保持している。そして、第１ステージにおける処理が完了すると、第１ステージにおいて実行されるプログラム等がＤＭＡＣ１０４を介して付加処理ユニット１０６からＤＲＡＭ１１０に退避される。
【００３２】
そして、第２ステージにおいて実効されるプログラム等がＤＭＡＣ１０４を介してＤＲＡＭ１１０から付加処理ユニット１０６に書き込まれる。このように、ＤＲＡＭ１１０へのアクセスは、第１ステージから第２ステージへの切り替り、第２ステージから第２ステージへの切り替り、すなわち各ステージの切り替りのタイミングにおいてのみ行われる。
【００３３】
各ステージに含める処理は、付加処理ユニット１０６のローカルメモリ１０６０の大きさ、および付加処理ユニット１０６における演算速度等に基づいて定められている。すなわち、ローカルメモリ１０６０のメモリ容量において保持可能な最大限のデータ量の処理を１つのステージとしている。
【００３４】
復号化処理は、いくつもの複雑な処理を含む。従って、これらの処理をソフトウェアで実現するためのプログラムのデータ量は大きい。また、動き検出や動き補償は、参照画像、対象画像および動き補償画像などデータ量の多いデータを対象とするため大量にメモリを必要とする。また、可変長復号化は可変長復号化テーブルを保持して処理を行うため大量のメモリを必要とする。
【００３５】
これに対して、ローカルメモリ１０６０のメモリ容量は小さいので、符号化処理に利用すべきプログラムおよびデータを一度にローカルメモリ１０６０に保持させることはできない。従って、付加処理ユニット１０６は、必要に応じてプログラムやデータをダイナミックにＤＲＡＭ１１０から取得し、さらにＤＲＡＭ１１０に書き込む必要が生じる。
【００３６】
しかし、ＤＲＡＭ１１０へのアクセスを含む処理は長時間を要し、全体として処理の遅延を招く主な要因となる。そこで、上述のように、ＤＲＡＭ１１０にアクセスする頻度を最小限に留めることにより、ＤＲＡＭ１１０へのアクセスに起因する処理の遅延を避けることができる。
【００３７】
以下、図４から図６を参照しつつ、各ステージにおけるデータの授受について説明する。
【００３８】
図４は、第１ステージにおけるバイナリデータの流れを示す図である。第１ステージにおいては、まず、ＤＭＡＣ１０４は、ＤＲＡＭ１１０からバイナリデータを取得する。そして、ＤＭＡＣ１０４は、処理ユニット１０２からの指示に基づいて、バイナリデータをスライスを最少単位として各付加処理ユニット１０６に分配する。ここで、スライスとは、動画像を静止画の横方向の１ライン分のことである。なお、バイナリデータの分配については後述する。
【００３９】
各付加処理ユニット１０６は、ＤＭＡＣ１０４から受け取ったバイナリデータに対して可変長復号化(ステップＳ１１０)を行い、ローカルメモリ１０６０は、可変長復号化によって得られ量子化ＤＣＴ係数を保持する。さらに、ローカルメモリ１０６０が保持する量子化ＤＣＴ係数に対して逆量子化(ステップＳ１１２)を行う。そして、逆量子化により得られた結果、すなわちＤＣＴ係数をＤＭＡＣ１０４を介してＤＲＡＭ１１０に書き戻す。
【００４０】
可変長復号化(ステップＳ１１０)においては可変長復号化用テーブルを参照する。このテーブルのデータ容量は大きく、ローカルメモリ１０６０をほぼ占有する。一方、逆量子化(ステップＳ１１２)のプログラムおよびこれに必要なデータ量は小さい。そこで、逆量子化は、可変長復号化と同じステージに含めることができる。そこで、これらをまとめて１つのステージとしている。
【００４１】
図５は、第２ステージにおけるバイナリデータの流れを示す図である。第２ステージにおいては、まず、付加処理ユニット１０６は、ＤＭＡＣ１０４を介してＤＲＡＭ１１０より、第１ステージにおいて得られたＤＣＴ係数を取得する。そして、付加処理ユニット１０６は、ＤＣＴ係数に対して逆離散コサイン変換(ステップＳ１１４)を行い、ローカルメモリ１０６０は、逆離散コサイン変換により得られた残差信号を保持する。さらに、付加処理ユニット１０６は、ＤＲＡＭ１１０より動きベクトルおよび参照となるデコード画像を取得し、ローカルメモリ１０６０が保持する残差信号と合わせて動き補償(ステップＳ１１６)を行う。そして、作成されたデコード画像をＤＭＡＣ１０４を介してＤＲＡＭ１１０に書き込む。
【００４２】
逆離散コサイン変換(ステップＳ１１４)および動き補償(ステップＳ１１６)における処理対象となるデコード画像や残差信号は、各マクロブロックの復号化モードによって必要がないためエンコーダに比べ、処理に必要なデータ量は少ない。そこで、これらの処理をまとめて１つのステージとしている。
【００４３】
図６は、第３ステージにおけるバイナリデータの流れを示す図である。第３ステージにおいては、付加処理ユニット１０６は、ＤＭＡＣ１０４を介してＤＲＡＭ１１０から第２ステージにおいて得られたデコード画像を取得する。そして、デコード画像に対して後処理(ステップＳ１１８)を行い、主観画質を向上させる。そして、加工された画像をＤＭＡＣ１０４を介してＤＲＡＭ１１０に書き込む。後処理としては、様々な種類の処理が想定される。そして、各処理にかかるプログラムの容量やデータ容量は、処理毎に異なる。そこで、これを１つのステージとしている。
【００４４】
第３ステージにおいては、上述のように、後処理のみで１つのステージとしている。従って、前処理がメモリを多く必要とする場合であっても、第３ステージにかかる処理の途中でＤＲＡＭ１１０とのデータの授受を行わずに済み、効率的な処理を行うことができる。
【００４５】
図７は、各付加処理ユニット１０６への処理の割り当てを説明するための図である。図７に示すように、付加処理ユニット１０６にはタイミングを制御するタイムバジェットが設定されている。そして、各付加処理ユニット１０６は、同一のタイムバジェットにおいて異なるスライスに対して同一の処理を施す。ここで、スライスとは、動画像を構成する静止画の横方向の１ライン分のことである。
【００４６】
例えば、第１付加処理ユニット１０６ａには、スライス１に対する処理が割り当てられている、また、第２付加処理ユニット１０６ｂには、スライス２に対する処理が割り当てられている。このように、複数の付加処理ユニット１０６が１つの動画像データに対する処理を分担することにより並列処理を行う。
【００４７】
例えば第１ステージでは、第１付加処理ユニット１０６ａは、スライス１に対して前処理を行う。そして、前処理が行われた後のスライス１をＤＲＡＭ１１０に書き戻す。また、第２付加処理ユニット１０６ｂは、スライス２に対して前処理を行う。そして、前処理が行われた後のスライス２をＤＲＡＭ１１０に書き戻す。同様に、各付加処理ユニット１０６が前処理を行い、その結果をそれぞれＤＲＡＭ１１０に書き戻す。
【００４８】
以上のように、複数の付加処理ユニット１０６がスライス単位で処理を分担することにより、処理の高速化を図ることができる。
【００４９】
また、スライスの数が付加処理ユニット１０６の数よりも多い場合には、１つの付加処理ユニットに複数のスライスを割り当ててもよい。例えば、第１付加処理ユニット１０６ａにスライス１〜スライス３が割り当てられ、第２付加処理ユニット１０６ｂにスライス４〜スライス６が割り当てられる。
【００５０】
さらに、第１付加処理ユニット１０６ａが第１ステージの処理を完了したときに、第２付加処理ユニット１０６ｂが第１ステージの処理を完了していない場合がある。例えば、第１付加処理ユニット１０６ａが第１ステージの処理を完了したときに、第２付加処理ユニット１０６ｂがスライス４に対する処理を行っている場合がある。例えば、同一のスライスであっても、処理に要する演算量が異なる場合などである。
【００５１】
この場合には、第２付加処理ユニット１０６ｂがスライス４を処理する間に、第１付加処理ユニット１０６ａは、スライス６に対する処理を行う。これにより、第２付加処理ユニット１０６ｂがスライス４〜スライス６に対する処理を行う場合に比べて、処理を高速化することができる。このように、各付加処理ユニット１０６における処理速度が異なる場合には、スライスを再配分することにより、さらなる処理の高速化を図ることができる
【００５２】
なお、本実施の形態においては、スライス単位で動画像データが各付加処理ユニット１０６に割り当てられているが、各付加処理ユニット１０６への動画像データの割り当ての単位はこれに限定されるものではなく、これ以外の単位でもよい。例えば、スライスを構成するさらに細かい単位であるマクロブロック単位で、動画像データが各付加処理ユニット１０６に割り当てられてもよい。また他の例としては、動画像データにおいて再同期マーカを先頭として分割されたビデオパケット単位で動画像データが各付加処理ユニット１０６に割り当てられてもよい。
【００５３】
図８は、処理ユニット１０２が付加処理ユニット１０６にバイナリデータを割り当てる処理を説明するための図である。処理ユニット１０２は、ＤＲＡＭ１１０からＤＭＡＣ１０４を介して取得したバイナリデータのうちから、スライススタートコード３１０を検出する。そして、一のスライススタートコード３１０ａから次に既述されたスライススタートコード３１０ｂまでの間のデータをスライスコード３１２と判断する。このように、処理ユニット１０２は、スライススタートコードに基づいてバイナリデータを複数のデータに分割し、各付加処理ユニット１０６に割り当てる。
【００５４】
図９は、付加処理ユニット１０６がそれぞれ異なる処理を担当する場合の各付加処理ユニット１０６の処理を説明するための図である。図９に示すように各付加処理ユニット１０６がそれぞれ異なる処理を担当することとすると、第１付加処理ユニット１０６ａがスライス１に対し第１ステージの処理を行っている間は、第２付加処理ユニット１０６ｂは、スライス１に対し第２ステージの処理を行えず、スタンバイ状態となる。このように、複数の付加処理ユニット１０６が異なる処理を行うこととすると、一の付加処理ユニット１０６における処理が完了するまで他の付加処理ユニット１０６は処理を開始できない場合が生じ効率が悪い。複数の付加処理ユニット１０６が異なる処理を担当することとすると、複数の付加処理ユニット１０６による並列処理を行っているにもかかわらず、十分な処理の効率化を図ることができない。
【００５５】
そこで、図７を参照しつつ説明したように、各付加処理ユニット１０６は、それぞれ異なるスライスに対して同一の処理を行うこととした。これにより、図９を参照しつつ説明したような各付加処理ユニット１０６におけるスタンバイ状態の頻出を避けることができ、処理の効率化を図ることができる。
【産業上の利用可能性】
【００５６】
以上のように、本発明にかかる動画像復号化装置および動画像復号化方法は、動画像データの復号化に有用であり、特に、複数のプロセッシングユニットを用いて、バイナリデータを動画像データに復号化する処理に有用である。
【図面の簡単な説明】
【００５７】
【図１】動画像復号化装置１０のハードウェア構成を示すブロック図である。
【図２】図１に示す第１付加処理ユニット１０６ａの詳細な構成を示すブロック図である。
【図３】プロセッサエレメント１００における復号化処理を示すフローチャートである。
【図４】第１ステージにおけるバイナリデータの流れを示す図である。
【図５】第２ステージにおけるバイナリデータの流れを示す図である。
【図６】第３ステージにおけるバイナリデータの流れを示す図である。
【図７】各付加処理ユニット１０６への処理の割り当てを説明するための図である。
【図８】処理ユニット１０２が付加処理ユニット１０６にバイナリデータを割り当てる処理を説明するための図である。
【図９】付加処理ユニット１０６がそれぞれ異なる処理を担当する場合の各付加処理ユニット１０６の処理を説明するための図である。
【符号の説明】
【００５８】
１０  動画像復号化装置
１００  プロセッサエレメント
１０２  処理ユニット
１０６  付加処理ユニット
１０６０  ローカルメモリ
１０６２  レジスタ
１０６４  浮動少数点演算ユニット
１０６６  整数演算ユニット
【図１】
2005191690.tif 000003
【図２】
2005191690.tif 000004
【図３】
2005191690.tif 000005
【図４】
2005191690.tif 000006
【図５】
2005191690.tif 000007
【図６】
2005191690.tif 000008
【図７】
2005191690.tif 000009
【図８】
2005191690.tif 000010
【図９】
2005191690.tif 000011