(57)【要約】  圧縮符号化された画像データの復号処理においてキャッシュヒット率を向上することのできる復号装置を提供する。  復号装置は、復号処理に先立って、ＧＯＰに含まれ、フレーム種別がＰ又はＢピクチャである複数のＭＰＥＧデータストリームに対して、参照ピクチャ毎にソートテーブルを生成する。復号装置は、生成したソートテーブルを用いて、同一の参照マクロブロックを参照する複数の復号対象マクロブロックからなるピクチャ群を選択する。復号装置は、選択したピクチャ群が参照する同一の参照マクロブロックを含む４つ分のマクロブロックを参照ピクチャから取得し、キャッシュメモリに格納する。復号装置は、選択したピクチャ群に含まれる復号対象の各マクロブロックを、キャッシュメモリに格納された４つ分のマクロブロックを用いて、順次復号する。
2008038513.tif 000002
【特許請求の範囲】
【請求項１】
複数のフレーム画像が予測符号化された符号化列を復号する復号装置であって、
前記符号化列は、複数の符号化フレーム画像を含み、各符号化フレーム画像は、複数の符号化ブロック画像を含み、少なくとも一部の符号化ブロック画像は、ブロック画像が１の参照ブロック画像を参照して予測符号化されるとともに、前記ブロック画像から当該参照ブロック画像への参照を示す参照関係情報を含み、
前記復号装置は、
キャッシュメモリと、
前記符号化列を取得する取得手段と、
取得した前記符号化列から複数の参照関係情報を抽出する抽出手段と、
１の参照ブロック画像を選択し、選択した前記参照ブロック画像について、抽出された前記複数の参照関係情報を用いて、当該参照ブロック画像から逆にたどって複数の参照元の符号化ブロック画像を特定する特定手段と、
前記参照ブロック画像を読み出し、読み出した前記参照ブロック画像を前記キャッシュメモリに格納する格納手段と、
前記キャッシュメモリに前記参照ブロック画像そのものが破棄されることなく保持されている間に、当該参照ブロック画像を参照して、特定された前記複数の符号化ブロック画像を復号する復号手段と
を備えることを特徴とする復号装置。
【請求項２】
前記参照関係情報は、参照先のフレーム画像を示す参照フレーム情報を含み、
前記特定手段は、
前記複数の参照関係情報に含まれる前記参照フレーム情報により示される複数の参照先のフレーム画像から、１のフレーム画像を選択し、選択した前記フレーム画像から前記参照ブロック画像を選択する
ことを特徴とする請求項１に記載の復号装置。
【請求項３】
前記参照関係情報は、参照先の参照ブロック画像内における参照位置を示す参照位置情報を含み、
前記特定手段は、
選択した前記フレーム画像に対して、当該フレーム画像を参照先とする参照フレーム情報を含む複数の参照関係情報それぞれから参照位置情報を抽出し、抽出した複数の参照位置情報からなる参照リストを生成し、生成した前記参照リストから、前記参照ブロック画像内を参照位置とする参照位置情報に対応する前記複数の符号化ブロック画像を特定する
ことを特徴とする請求項２に記載の復号装置。
【請求項４】
前記特定手段は、
前記抽出した参照位置情報それぞれに対して、当該参照位置情報を有する参照関係情報が含まれる符号化ブロック画像を含む符号化フレーム画像と当該符号化フレーム画像内における当該符号化ブロック画像の位置とを示す復号位置情報を対応付けて前記参照リストを生成し、生成した前記参照リストから、前記参照ブロック画像内を参照領域とすることを示す前記複数の参照位置情報を取得し、取得した複数の参照位置情報それぞれに対応する復号位置情報を特定することにより、前記複数の符号化ブロック画像を特定する
ことを特徴とする請求項３に記載の復号装置。
【請求項５】
前記復号手段は、
前記特定手段にて特定された復号位置情報それぞれにより示される符号化ブロック画像それぞれを順次復号する
ことを特徴とする請求項４に記載の復号装置。
【請求項６】
前記特定手段は、
前記フレーム画像内の全ての参照ブロック画像について、複数の符号化ブロック画像の特定を繰り返す
ことを特徴とする請求項４に記載の復号装置。
【請求項７】
前記特定手段は、
前記参照リストに含まれる参照位置情報それぞれについて、参照領域が同一の参照ブロック画像に含まれることを示す複数の参照位置情報が同一のグループに属するように分類する
ことを特徴とする請求項５に記載の復号装置。
【請求項８】
前記特定手段は、
前記参照リストに含まれる複数の参照位置情報にて示される参照位置それぞれから、当該参照位置にて特定される参照領域を含む参照ブロック画像のブロック番号を算出し、算出したブロック番号の順に、前記参照位置情報とそれに対応する復号位置情報とからなる組の並び替えを行う
ことを特徴とする請求項７に記載の復号装置。
【請求項９】
前記参照位置は、フレーム画像における第１軸上の位置を示す第１の位置情報と、前記第１軸と直交する第２軸上の位置を示す第２の位置情報とからなり、
前記ブロック画像特定部は、
前記第１座標と前記第２座標とから示される座標点から、当該座標点を含む参照ブロック画像のブロック番号を算出する
ことを特徴とする請求項８に記載の復号装置。
【請求項１０】
前記復号手段は、
前記参照ブロック画像を参照して、前記特定された複数の符号化ブロック画像を連続して復号する
ことを特徴とする請求項１に記載の復号装置。
【請求項１１】
前記符号化ブロック画像それぞれは、再生時における再生順序を示す再生情報を含み、
前記復号手段は、
前記特定された複数の符号化ブロック画像それぞれについて、再生情報にて示される再生順序に基づいて、前記特定された複数の符号化ブロック画像それぞれを復号する
ことを特徴とする請求項１０に記載の復号装置。
【請求項１２】
前記復号装置は、さらに、
前記復号された１のフレーム画像において、前記格納手段及び前記復号手段のそれぞれの動作を、前記特定手段にて特定された複数の符号化ブロック画像毎に繰り返すように制御する制御手段を備え、
前記格納手段は、前記復号手段による前記複数の符号化ブロック画像の復号後、前記制御手段により前記１のフレーム画像から他の参照ブロック画像を取得し、
前記復号手段は、前記複数の符号化ブロック画像の復号後、前記制御手段により前記他の参照ブロック画像を参照先とする複数の符号化ブロック画像を復号し、
前記制御手段は、前記復号手段が前記フレーム画像に含まれる全ての参照ブロック画像が復号処理に用いられるまでの間、前記格納手段及び前記復号手段の動作を繰り返すよう制御する
ことを特徴とする請求項１に記載の復号装置。
【請求項１３】
前記符号化列は、他のフレーム画像を参照することなく符号化された少なくとも１のイントラ符号化フレーム画像と、他のフレーム画像を参照して符号化された複数のノンイントラ符号化フレーム画像とを含み、
前記復号手段は、さらに、前記符号化列に対する最初の復号処理として、１のイントラ符号化フレーム画像を復号してフレーム画像を生成し、
前記格納手段、前記復号手段及び前記制御手段は、前記複数のノンイントラ符号化フレーム画像に対する最初の復号として、前記フレーム画像を参照する全てのノンイントラ符号化フレーム画像に対する復号を行う
ことを特徴とする請求項１２に記載の復号装置。
【請求項１４】
前記復号装置は、さらに、
メインメモリを備え、
前記取得手段は、取得した前記符号化列を前記メインメモリに格納し、
前記復号手段は、符号化ブロック画像を復号し、その結果を前記メインメモリに格納し、
前記格納手段は、前記参照ブロック画像を前記メインメモリから読み出す
ことを特徴とする請求項１３に記載の復号装置。
【請求項１５】
前記キャッシュメモリ、前記取得手段、前記抽出手段、前記特定手段、前記格納手段、及び前記復号手段は、復号用半導体装置を構成する
ことを特徴とする請求項１に記載の復号装置。
【請求項１６】
複数のフレーム画像が予測符号化された符号化列を復号する復号装置で用いられる復号方法であって、
前記符号化列は、複数の符号化フレーム画像を含み、各符号化フレーム画像は、複数の符号化ブロック画像を含み、少なくとも一部の符号化ブロック画像は、ブロック画像が１の参照ブロック画像を参照して予測符号化されるとともに、前記ブロック画像から当該参照ブロック画像への参照を示す参照関係情報を含み、
前記復号装置は、
キャッシュメモリを備え、
前記復号方法は、
前記符号化列を取得する取得ステップと、
取得した前記符号化列から複数の参照関係情報を抽出する抽出ステップと、
１の参照ブロック画像を選択し、選択した前記参照ブロック画像について、抽出された前記複数の参照関係情報を用いて、当該参照ブロック画像から逆にたどって複数の参照元の符号化ブロック画像を特定する特定ステップと、
前記参照ブロック画像を読み出し、読み出した前記参照ブロック画像を前記キャッシュメモリに格納する格納ステップと、
前記キャッシュメモリに前記参照ブロック画像そのものが破棄されることなく保持されている間に、当該参照ブロック画像を参照して、特定された前記複数の符号化ブロック画像を復号する復号ステップと
を含むことを特徴とする復号方法。
【請求項１７】
複数のフレーム画像が予測符号化された符号化列を復号する復号装置で用いられる復号プログラムであって、
前記符号化列は、複数の符号化フレーム画像を含み、各符号化フレーム画像は、複数の符号化ブロック画像を含み、少なくとも一部の符号化ブロック画像は、ブロック画像が１の参照ブロック画像を参照して予測符号化されるとともに、前記ブロック画像から当該参照ブロック画像への参照を示す参照関係情報を含み、
前記復号装置は、
キャッシュメモリを備え、
前記復号プログラムは、
前記符号化列を取得する取得ステップと、
取得した前記符号化列から複数の参照関係情報を抽出する抽出ステップと、
１の参照ブロック画像を選択し、選択した前記参照ブロック画像について、抽出された前記複数の参照関係情報を用いて、当該参照ブロック画像から逆にたどって複数の参照元の符号化ブロック画像を特定する特定ステップと、
前記参照ブロック画像を読み出し、読み出した前記参照ブロック画像を前記キャッシュメモリに格納する格納ステップと、
前記キャッシュメモリに前記参照ブロック画像そのものが破棄されることなく保持されている間に、当該参照ブロック画像を参照して、特定された前記複数の符号化ブロック画像を復号する復号ステップと
を含むことを特徴とする復号プログラム。
【請求項１８】
前記復号プログラムは、コンピュータ読み取り可能な記録媒体に記録されている
ことを特徴とする請求項１７に記載の復号用プログラム。
【請求項１９】
複数のフレーム画像が予測符号化された符号化列を復号する復号装置の集積回路であって、
前記符号化列は、複数の符号化フレーム画像を含み、各符号化フレーム画像は、複数の符号化ブロック画像を含み、少なくとも一部の符号化ブロック画像は、ブロック画像が１の参照ブロック画像を参照して予測符号化されるとともに、前記ブロック画像から当該参照ブロック画像への参照を示す参照関係情報を含み、
前記集積回路は、
キャッシュメモリと、
前記符号化列を取得する取得手段と、
取得した前記符号化列から複数の参照関係情報を抽出する抽出手段と、
１の参照ブロック画像を選択し、選択した前記参照ブロック画像について、抽出された前記複数の参照関係情報を用いて、当該参照ブロック画像から逆にたどって複数の参照元の符号化ブロック画像を特定する特定手段と、
前記参照ブロック画像を読み出し、読み出した前記参照ブロック画像を前記キャッシュメモリに格納する格納手段と、
前記キャッシュメモリに前記参照ブロック画像そのものが破棄されることなく保持されている間に、当該参照ブロック画像を参照して、特定された前記複数の符号化ブロック画像を復号する復号手段と
を備えることを特徴とする集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、圧縮符号化された動画データを復号する技術に関し、特にキャッシュ機構を持つ処理ユニットによって信号処理を行う際のメモリアクセス効率の向上の技術に関する。
【背景技術】
【０００２】
動画データを記録したり、また伝送したりする際にそのデータ量を圧縮するための方式としてＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｕｔｒｅ  ｃｏｒｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）と呼ばれる国際標準方式が広く普及している。ＭＰＥＧはＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）向け動画像符号化規格として普及したＭＰＥＧ−１、デジタルテレビやＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）に対応したＭＰＥＧ−２、さらにインターネットや移動体通信で使用されることを想定し低ビットレート化を進めたＭＰＥＧ−４などがある。また近年では圧縮率の更なる向上を図ったＨ．２６４／ＡＶＣ（Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｒｄｉｎｇ）が制定され、これを使用した機器も普及しつつある。【０００３】
前述のようなＭＰＥＧの規格に準拠して圧縮された画像データの復号には膨大な計算量が必要となる。そのため初期のＭＰＥＧを利用する機器においては、リアルタイム性を保ちながらＭＰＥＧ圧縮データを復号するためには専用のハードウェアを用いることが一般的であった。しかしながら、近年の計算機技術の発展により、専用のハードウェアを必要とせずソフトウェアのみでリアルタイムに復号することが可能となってきている。専用のハードウェアが不要となることによって、様々な機器においてＭＰＥＧデータを利用することが可能となり、その広がりが期待されている。【０００４】
ＭＰＥＧの復号アルゴリズムはＶＬＤ（Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｄｅｃｏｒｄｉｎｇ）と呼ばれる可変長符号復号処理、逆量子化処理、逆ＤＣＴ（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）処理、および動き補償処理の４つの処理からなる。前述したＭＰＥＧ−１／２／４やＨ．２６４／ＡＶＣなども詳細な処理の違いはあるがほぼ同様のアルゴリズムを利用している。【０００５】
ＭＰＥＧデータを復号するシステムは、通常、ＨＤＤやＣＤ／ＤＶＤといった外部記憶装置、メインメモリ、ＣＰＵ、及び表示装置から構成されている。外部記憶装置は、ＭＰＥＧデータを格納している。ＣＰＵは、外部記録装置からＭＰＥＧデータを読み出し、読み出したＭＰＥＧデータをメインメモリに一旦格納する。ＣＰＵは、メインメモリに格納したＭＰＥＧデータを、当該ＣＰＵにて動作する復号処理プログラムによって復号し、その復号結果である画像データを再びメインメモリに格納する。ＣＰＵは、メインメモリに格納された画像データを再び読み出し、表示装置に表示するためのフォーマット変換を行い、その結果を表示装置に転送する。表示装置は、受け取った画像を表示する。【０００６】
図１４は、従来技術において、ＭＰＥＧ方式で復号を行う場合のピクチャ（画像データ）の順序を示した図である。ＭＰＥＧには３つのピクチャタイプが定義されており、それらは、動き補償を行わずそのピクチャ内の情報のみからピクチャを復号することができるＩピクチャ、過去のピクチャの情報を利用してそのピクチャの予測復号処理を行う動き補償処理を必要とするＰピクチャ、過去と未来の双方向の情報を利用してそのピクチャの予測復号処理を行うＢピクチャ、となっている。【０００７】
図１４（ａ）は外部記録装置上に格納されているピクチャの順番を示した図である。各ピクチャ内に付された番号はそのピクチャの先頭からの順番を示すものであり、ピクチャ下部にはそのピクチャのタイプを示してある。図１４（ａ）において、ピクチャ番号１はＩピクチャであるので他のピクチャの情報を必要とせずに復号が可能である。ピクチャ番号２及び３は、Ｂピクチャであるのでピクチャ番号１のピクチャとピクチャ番号４のピクチャの双方の情報を利用して復号する必要がある。Ｂピクチャは他のピクチャの予測処理には利用されない。ピクチャ番号４はＰピクチャであるのでピクチャ番号１のピクチャの情報を利用して復号する。同様に、ピクチャ番号５および６のピクチャはピクチャ番号４のピクチャとピクチャ番号７のピクチャの情報を利用して、ピクチャ番号７のピクチャはピクチャ番号４のピクチャを利用して、それぞれ復号が行われる。【０００８】
図１４（ｂ）は前述のピクチャタイプと復号の順番に従って、復号処理順を示した図である。実際に復号処理を行う場合は、最初にピクチャ番号１のＩピクチャが復号される。次に復号済みのピクチャ番号１の画像データを利用してピクチャ番号４のＰピクチャの復号が行われる。続いて復号済みのピクチャ番号１の画像データとピクチャ番号４の画像データを利用して、ピクチャ番号３とピクチャ番号４のＢピクチャの復号が順次行われる。ピクチャ番号６以降も同様にＰピクチャの復号後にＢピクチャの復号が行われる。この復号順序はＭＰＥＧによる圧縮処理を行う順番と同じ順番で行う必要がある。【０００９】
図１４（ｃ）は復号済みの画像を表示する順番を示したものである。
ＭＰＥＧの復号処理では、メインメモリへのアクセスが頻繁に発生する。通常、上記にて示すシステムでは、メインメモリへのアクセス負荷を軽減するため、キャッシュメモリがＣＰＵに備えられている。キャッシュメモリはＣＰＵ外部に接続されるメインメモリに比べると容量は少ないが、非常に高速にアクセスできるように設計されたメモリである。【００１０】
例えば、図１４（ｂ）にて示すピクチャ番号４のＰピクチャを復号する場合には、ＣＰＵは、先ず復号する復号対象マクロブロックが有する動きベクトルを用いて、復号処理時に参照するマクロブロック（通常４つ分のマクロブロック）をＩピクチャ（ピクチャ番号「１」）から取得し、キャッシュメモリに格納する。ＣＰＵは、格納したマクロブロックを用いて、復号対象マクロブロックを復号する。次の復号対象マクロブロックを取得し、取得した復号対象マクロブロックが有する動きベクトルを用いて、復号処理時に参照するマクロブロック（通常４つ分のマクロブロック）をＩピクチャ（ピクチャ番号「１」）から取得し、キャッシュメモリに格納し、復号処理を行う。このとき、既に格納されていた４つ分のマクロブロックはキャッシュメモリからは消去されている。ＣＰＵは、この動作をＰピクチャも全てのマクロブロックの復号が完了するまで繰り返す。Ｐピクチャの復号が完了すると、Ｂピクチャの復号を行うが、この場合も基本的には、上記と同様の動作を繰り返す。なお、この場合、参照するピクチャは、Ｉピクチャ及びＰピクチャである。【００１１】
また、Ｐピクチャ、Ｂピクチャの復号のために参照されるマクロブロックは、通常一枚のピクチャの復号には一回のみしか使用されないことが多い。加えて現状のＭＰＥＧデータの復号は復号対象のピクチャを一枚ごと順次処理していく方法が一般的である。したがって、キャッシュメモリに読み込まれた参照ピクチャのデータは連続してアクセスされる確率は非常に低くなり再利用されることなく破棄されるため、キャッシュメモリの利用効率は大変悪いものとなってしまっている。【００１２】
ＭＰＥＧデータの復号方法においては、動き補償処理において参照するすべてのマクロブロック（参照される復号済みのピクチャ全体）をキャッシュメモリに格納しておくことができないため、同じデータ（参照されるマクロブロック）を何度もメインメモリから読み込まなければならなくなり、復号処理のパフォーマンスの低下の要因となっていた。
上記課題を解決するものとして特許文献１には、連続するＢピクチャの類似性を利用して、キャッシュメモリ内のデータを有効活用し、復号処理の速度低下を抑制する方法が開示されている。開示されている方法においては、あるピクチャの復号処理を行う際にそのピクチャがＢピクチャであり、かつその次のピクチャもＢピクチャであるならば、１番目のピクチャの１マクロブロック分の復号処理と２番目のピクチャの１マクロブロック分の復号処理とを交互に繰り返すことで、隣接する２ピクチャの復号処理を同時に行うことが特徴とされている（１マクロブロックを交互に復号するのではなく、一定数マクロブロック分の復号処理を交互に繰り返してもよい）。すなわち、上記特許文献１においては、隣接するピクチャがともにＢピクチャである場合、その２ピクチャの復号処理をひとつあるいは複数のマクロブロック単位で交互に行うため、隣接するピクチャの同じ位置にあるマクロブロックの復号処理が連続して行われることになるため、動き補償処理においてキャッシュミスが発生する確率を低くすることができる。この方法は隣接するピクチャの同じ位置にあるマクロブロックにおける動き補償処理は、参照されるピクチャの近い位置にある領域（マクロブロック）を利用することが多い、という性質を利用したものである。
【特許文献１】特許第３３２２２３３号明細書
【非特許文献１】ＩＴＵ−Ｔ  Ｒｅｃ．Ｈ．２６４    ＩＳＯ／ＩＥＣ  １４４９６−１０  ＡＶＣ  Ｊｏｉｎｔ  Ｆｉｎａｌ  Ｃｏｍｍｉｔｔｅｅ  Ｄｒａｆｔ  ｏｆ  Ｊｏｉｎｔ  Ｖｉｄｅｏ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  （２００２−８−１０）（Ｐ５４  ８．３．６．３  Ｄｅｆａｕｌｔ  ｉｎｄｅｘ  ｏｒｄｅｒｓ、  Ｐ５６  ８．３．６．４  Ｃｈａｎｇｉｎｇ  ｔｈｅ  ｄｅｆａｕｌｔ  ｉｎｄｅｘ  ｏｒｄｅｒｓ）
【発明の開示】
【発明が解決しようとする課題】
【００１３】
上記にて示す技術は、連続する２つのＢピクチャ（例えば、図１４（ｃ）におけるＢ２、Ｂ３）の復号処理においては同じデータ（参照されるマクロブロック）を何度もメインメモリから読み込む必要が無いため、復号処理のパフォーマンスの向上には有効である。ここで、Ｂ２、Ｂ３それぞれは、ピクチャ番号が２、３であるＢピクチャを示す。
しかしながら、特許文献１にて開示されている技術は、Ｂ２、Ｂ３が必ず表示順序（時間順序）で直前前方１枚（図１４（ｃ）ではＩ１）と直後後方１枚（図１４（ｃ）ではＰ４）とを参照して復号される符号化列である場合には有効であるが、例えば、非特許文献１にて規定されるＨ．２６４／ＭＰＥＧ４ＡＶＣのように、マクロブロック単位で前方の参照ピクチャを指定できる符号化列には対応できない。ここで、Ｉ１は、ピクチャ番号が１であるＩピクチャを示し、Ｐ４は、ピクチャ番号が４であるＰピクチャを示す。【００１４】
また、ピクチャ単位でみても参照関係が復号順で直前に復号されたピクチャ（Ｐ４）を参照するとは限らない符号化列にも対応できない。
具体的には、直前のＰピクチャ（Ｐ４）に、連続（隣接）する２枚のＢピクチャ（Ｂ２、Ｂ３）のみならず、更に、復号順で連続しない他のピクチャ（例えば、図１４（ｃ）におけるＢ５、Ｂ６）中の所定のマクロブロックが前記同じデータを参照して復号を行う符号化列の場合には、当該他のピクチャを復号する際に前記同じデータを再度メインメモリから読み出す必要があり、復号処理のパフォーマンスは向上されないという問題がある。【００１５】
そこで、本発明は、復号対象ピクチャ内で参照するピクチャがスライス単位やマクロブロック単位に指定できる符号化列である場合、または／及び、復号順で連続しないピクチャが同一の参照データを利用する場合においても、キャッシュヒット率を向上することのできる復号装置、復号方法、復号プログラム及び集積回路を提供することを目的とする。
【課題を解決するための手段】
【００１６】
上記目的を達成するために、本発明は、複数のフレーム画像が予測符号化された符号化列を復号する復号装置であって、前記符号化列は、複数の符号化フレーム画像を含み、各符号化フレーム画像は、複数の符号化ブロック画像を含み、少なくとも一部の符号化ブロック画像は、ブロック画像が１の参照ブロック画像を参照して予測符号化されるとともに、前記ブロック画像から当該参照ブロック画像への参照を示す参照関係情報を含み、前記復号装置は、キャッシュメモリと、前記符号化列を取得する取得手段と、取得した前記符号化列から複数の参照関係情報を抽出する抽出手段と、１の参照ブロック画像を選択し、選択した前記参照ブロック画像について、抽出された前記複数の参照関係情報を用いて、当該参照ブロック画像から逆にたどって複数の参照元の符号化ブロック画像を特定する特定手段と、前記参照ブロック画像を読み出し、読み出した前記参照ブロック画像を前記キャッシュメモリに格納する格納手段と、前記キャッシュメモリに前記参照ブロック画像そのものが破棄されることなく保持されている間に、当該参照ブロック画像を参照して、特定された前記複数の符号化ブロック画像を復号する復号手段とを備えることを特徴とする。
【発明の効果】
【００１７】
上記の構成によると、復号装置は、参照により復号される符号化ブロック画像毎に取得した参照関係情報それぞれを用いて、１の参照ロブロック画像を参照して復号される複数の符号化ブロック画像を特定し、前記参照ブロック画像をキャッシュメモリに格納して、前記キャッシュメモリに格納した参照ブロック画像を参照して復号される複数の符号化ブロック画像を連続して復号する。これにより、復号装置は、同一の参照ブロック画像を参照する複数の符号化ブロック画像を復号する度に、前記参照ブロック画像を読み出して格納する必要がないので、復号対象ピクチャ内で参照するピクチャがスライス単位やマクロブロック単位に指定できる符号化列である場合、または／及び、復号順で連続しないピクチャが同一の参照データを利用する場合に関わらずキャッシュヒット率を向上することができる。【００１８】
特に、Ｈ．２６４／ＭＰＥＧ４ＡＶＣのように連続しないピクチャ間で、参照／被参照関係が存在する場合において、上記の効果を顕著に有する。また、１つのＧＯＰ（Ｇｒｏｕｐ  Ｏｆ  Ｐｉｃｔｕｒｅ）に含まれるピクチャの数が多い（１５枚より多いピクチャ数を含むＬｏｎｇＧＯＰ）のような符号化列において、連続しないピクチャ（遠方ピクチャ）が同じデータを参照して、当該遠方ピクチャ内の所定のマクロブロックの復号を行う符号化列である場合においても同様の効果を挙げることが可能である。【００１９】
ここで、前記参照関係情報は、参照先のフレーム画像を示す参照フレーム情報を含み、前記特定手段は、前記複数の参照関係情報に含まれる前記参照フレーム情報により示される複数の参照先のフレーム画像から、１のフレーム画像を選択し、選択した前記フレーム画像から前記参照ブロック画像を選択するとしてもよい。
この構成によると、復号装置は、取得した参照関係情報それぞれに含まれる参照フレーム情報を用いることにより、参照される１のフレーム画像に含まれる参照ブロック画像を決定し、決定した参照ブロック画像を参照して復号される複数の符号化ブロック画像を特定することができる。【００２０】
ここで、前記参照関係情報は、参照先の参照ブロック画像内における参照位置を示す参照位置情報を含み、前記特定手段は、選択した前記フレーム画像に対して、当該フレーム画像を参照先とする参照フレーム情報を含む複数の参照関係情報それぞれから参照位置情報を抽出し、抽出した複数の参照位置情報からなる参照リストを生成し、生成した前記参照リストから、前記参照ブロック画像内を参照位置とする参照位置情報に対応する前記複数の符号化ブロック画像を特定するとしてもよい。【００２１】
この構成によると、復号装置は、取得した参照関係情報それぞれに含まれる参照位置情報を用いることにより、決定した参照ブロック画像を参照する複数の符号化ブロック画像を容易に特定することができる。
ここで、前記特定手段は、前記抽出した参照位置情報それぞれに対して、当該参照位置情報を有する参照関係情報が含まれる符号化ブロック画像を含む符号化フレーム画像と当該符号化フレーム画像内における当該符号化ブロック画像の位置とを示す復号位置情報を対応付けて前記参照リストを生成し、生成した前記参照リストから、前記参照ブロック画像内を参照領域とすることを示す前記複数の参照位置情報を取得し、取得した複数の参照位置情報それぞれに対応する復号位置情報を特定することにより、前記複数の符号化ブロック画像を特定するとしてもよい。【００２２】
この構成によると、復号装置は、参照リストを用いて、決定した参照ブロック画像を参照する複数の復号位置情報を特定することで、複数の符号化ブロック画像を容易に特定することができる。
ここで、前記復号手段は、前記特定手段にて特定された復号位置情報それぞれにより示される符号化ブロック画像それぞれを順次復号するとしてもよい。【００２３】
この構成によると、復号装置は、特定された複数の復号位置情報を用いることにより、復号先を容易に特定することができる。
ここで、前記特定手段は、前記フレーム画像内の全ての参照ブロック画像について、複数の符号化ブロック画像の特定を繰り返すとしてもよい。
この構成によると、復号装置は、１のフレーム画像において、当該フレーム画像に含まれる参照ブロック画像それぞれに対して、当該参照ブロック画像を参照する複数の符号化ブロック画像を特定することができる。【００２４】
ここで、前記特定手段は、前記参照リストに含まれる参照位置情報それぞれについて、参照領域が同一の参照ブロック画像に含まれることを示す複数の参照位置情報が同一のグループに属するように分類するとしてもよい。
この構成によると、復号装置は、参照リスト内の並び替えを行うことにより、前記複数の符号化ブロック画像の特定を容易に行うことができる。【００２５】
ここで、前記特定手段は、前記参照リストに含まれる複数の参照位置情報にて示される参照位置それぞれから、当該参照位置にて特定される参照領域を含む参照ブロック画像のブロック番号を算出し、算出したブロック番号の順に、前記参照位置情報とそれに対応する復号位置情報とからなる組の並び替えを行うとしてもよい。
この構成によると、復号装置は、算出された複数の開始位置を用いることにより、前記参照リストの並び替えを容易に行うことができる。【００２６】
ここで、前記参照位置は、フレーム画像における第１軸上の位置を示す第１の位置情報と、前記第１軸と直交する第２軸上の位置を示す第２の位置情報とからなり、前記ブロック画像特定部は、前記第１座標と前記第２座標とから示される座標点から、当該座標点を含む参照ブロック画像のブロック番号を算出するとしてもよい。
この構成によると、復号装置は、フレーム画像上における座標（第１の位置情報と第２の位置情報とからなる組）として与えられた位置情報から参照ブロック画像の開始位置を特定することができる。【００２７】
ここで、前記復号手段は、前記参照ブロック画像を参照して、前記特定された複数の符号化ブロック画像を連続して復号するとしてもよい。
この構成によると、復号装置は、制御手段により、キャッシュメモリに格納された参照ブロック画像を用いて、特定された複数の符号化ブロック画像を連続して復号することができる。つまり、復号装置は、参照ブロック画像を１回読み出すだけで、読み出した参照ブロック画像を参照する全ての符号化ブロック画像を復号することができる。【００２８】
ここで、前記符号化ブロック画像それぞれは、再生時における再生順序を示す再生情報を含み、前記復号手段は、前記特定された複数の符号化ブロック画像それぞれについて、再生情報にて示される再生順序に基づいて、前記特定された複数の符号化ブロック画像それぞれを復号するとしてもよい。
この構成によると、復号装置は、前記特定手段が特定した複数の符号化ブロック画像それぞれを、読み出し順序に基づいて復号することができる。【００２９】
ここで、前記復号装置は、さらに、前記復号された１のフレーム画像において、前記格納手段及び前記復号手段のそれぞれの動作を、前記特定手段にて特定された複数の符号化ブロック画像毎に繰り返すように制御する制御手段を備え、前記格納手段は、前記復号手段による前記複数の符号化ブロック画像の復号後、前記制御手段により前記１のフレーム画像から他の参照ブロック画像を取得し、前記復号手段は、前記複数の符号化ブロック画像の復号後、前記制御手段により前記他の参照ブロック画像を参照先とする複数の符号化ブロック画像を復号し、前記制御手段は、前記復号手段が前記フレーム画像に含まれる全ての参照ブロック画像が復号処理に用いられるまでの間、前記格納手段及び前記復号手段の動作を繰り返すよう制御するとしてもよい。【００３０】
この構成によると、復号装置は、１のフレーム画像を参照する参照する全ての符号化ブロック画像を、前記フレーム画像に含まれる１以上の参照ブロック画像毎に、復号することができる。これにより、復号装置は、キャッシュメモリ内のデータ（参照ブロック画像）を効率良く利用することができる。
ここで、前記符号化列は、他のフレーム画像を参照することなく符号化された少なくとも１のイントラ符号化フレーム画像と、他のフレーム画像を参照して符号化された複数のノンイントラ符号化フレーム画像とを含み、前記復号手段は、さらに、前記符号化列に対する最初の復号処理として、１のイントラ符号化フレーム画像を復号してフレーム画像を生成し、前記格納手段、前記復号手段及び前記制御手段は、前記複数のノンイントラ符号化フレーム画像に対する最初の復号として、前記フレーム画像を参照する全てのノンイントラ符号化フレーム画像に対する復号を行うとしてもよい。【００３１】
この構成によると、復号装置は、最初にイントラ符号化フレーム画像を復号することにより、当該イントラ符号化フレーム画像から復号されたフレーム画像を参照する符号化ブロック画像を復号して、当該フレーム画像を参照する符号化フレーム画像を復号することができる。
【図面の簡単な説明】
【００３２】
【図１】復号処理システム１の構成を示すブロック図である。
【図２】本発明におけるＧＯＰ（Ｇｒｏｕｐ  Ｏｆ  Ｐｉｃｔｕｒｅ）に含まれるデータの組を説明する図である。
【図３】ＭＰＥＧデータストリームのデータ構造の一例を示す図である。
【図４】参照位置情報テーブルＴ１００及びインデックス情報テーブルＴ２００のデータ構造の一例を示す図である。
【図５】ソートテーブルＴ３００のデータ構造の一例を示す図である。
【図６】復号処理部２０４の構成を示すブロック図である。
【図７】復号用半導体装置１０の動作を示す流れ図である。
【図８】ＭＢ復号処理の動作を示す流れ図である。図９へ続く。
【図９】ＭＢ復号処理の動作を示す流れ図である。図８から続く。
【図１０】ＭＰＥＧデータにおけるピクチャ間の動き補償処理の際の参照関係を示す図である。
【図１１】本発明におけるＭＰＥＧデータの復号順序を示す図である。
【図１２】ＣＰＵ１００が参照のためにメインメモリ３０から読み出された情報をメインメモリ３０へ再度アクセスすることが必要ないことを示す図である。
【図１３】キャッシュメモリ１０１に格納されている情報を繰り返し利用できることを示す図である。
【図１４】従来技術において、ＭＰＥＧ２方式でのピクチャの格納順序、復号順序および出力順序を示す図である。
【符号の説明】
【００３３】
１    復号処理システム
１０    復号用半導体装置
２０    外部記憶装置
３０    メインメモリ
３０    再度メインメモリ
４０    表示装置
１００    ＣＰＵ
１０１    キャッシュメモリ
２００    アプリケーション部
２０１    ＧＯＰ読出部
２０２    参照ＭＢ情報取得部
２０３    ソート処理部
２０４    復号処理部
２５０    復号処理制御部
２５１    ピクチャ群選択部
２５２    参照ＭＢ読出部
２５３    ＭＢ復号処理部
【発明を実施するための最良の形態】
【００３４】
１．第１の実施の形態
本発明に係る第１の実施の形態としての復号処理システム１について説明する。
復号処理システム１は、図１に示すように、復号用半導体装置１０、外部記憶装置２０、メインメモリ３０、及び表示装置４０から構成されている。
ここで、復号処理システム１は、具体的には、圧縮符号化された画像を復号する復号装置である。表示装置４０は、上述したように、復号装置に組み込まれていてもよいし、または、表示装置４０は、復号装置とは個別の装置であり、専用線により復号装置と接続されていてもよい。また、外部記憶装置２０についても同様に、復号装置に組み込まれていてもよいし、または、復号装置とは個別の装置として専用線により復号装置と接続されていてもよい。
外部記憶装置２０は、ＭＰＥＧデータを格納している。外部記憶装置２０は、具体的には、ＨＤＤやＣＤ／ＤＶＤなどである。【００３５】
メインメモリ３０は、ＭＰＥＧデータの復号を行う際に、復号対象のＭＰＥＧデータ及び復号された画像データを格納する領域を有している。
復号用半導体装置１０は、ＭＰＥＧデータの復号処理プログラムに基づいて、外部記憶装置２０に格納されているＭＰＥＧデータを復号し、画像データを生成する。また、復号用半導体装置１０は、復号した画像データに対して、表示装置４０にて表示ができるようにフォーマット変換を行い、その結果を表示装置４０へ転送する。【００３６】
表示装置４０は、フォーマット変換された画像を表示する。
本発明におけるＭＰＥＧデータストリームの復号処理では、少なくとも１ＧＯＰ（Ｇｒｏｕｐ  Ｏｆ  Ｐｉｃｔｕｒｅ：ＧＯＰヘッダ間に属する所定枚数のピクチャの集合）以上のピクチャ群を含むことが可能であって、所定単位を構成する全てのピクチャが同一所定単位に含まれるピクチャ群のみを参照して復号できるピクチャの集合を、本発明におけるＧＯＰ単位として扱う。【００３７】
ここで、図２を用いて、本発明におけるＧＯＰ単位を説明する。図２は、ピクチャの並びを上から順に、符号化順序、復号／伝送順序、及び表示順序を示したものである。復号／伝送順序にて示される３種類の破線は、参照元のピクチャから参照先のピクチャへの方向を示している。例えば、Ｐ１（または、Ｐ１中の所定のマクロブロック）は、Ｉ１の所定画素値を参照して復号を行うことを示している。また、例えば、Ｂ３、Ｂ４は、復号／伝送の順番ではＩ１及びＰ１の後方にあるが、符号化の順番、及び表示の順番ではＩ１の後方かつＰ１の前方にあるので、これらのピクチャ（または、これらピクチャ中の所定のマクロブロック）は、前方及び後方の双方向の参照を行うことにより復号を行うことを示している。【００３８】
ここで、本発明にて定義するＧＯＰは、図２にて示す従来のＧＯＰ単位であるＧＯＰ（ｉ）、ＧＯＰ（ｉ＋１）及びＧＯＰ（ｉ＋２）において、表示順序にて示すハッチング部分（ＧＯＰ（ｉ＋１）及びＧＯＰ（ｉ＋２））を示す。
したがって、一つ前あるいは一つ後ろのＧＯＰに含まれる、例えばＢピクチャから参照されるために、ＧＯＰ（ｉ＋２）のＢピクチャがＧＯＰ（ｉ＋１）のＰピクチャを参照している場合には、ＧＯＰ（ｉ＋１）とＧＯＰ（ｉ＋２）とは、本発明における１つのＧＯＰの単位となる。ここで、ＧＯＰ（ｉ＋２）のように直前のＧＯＰ中のピクチャを参照して復号する、若しくは直後のＧＯＰ中のピクチャを参照して復号するピクチャを含むＧＯＰをＯｐｅｎＧＯＰと呼ぶ。【００３９】
また逆に、ＧＯＰ（ｉ）と、ＧＯＰ（ｉ＋１）とでは、参照関係がないので、ＧＯＰ（ｉ）と、ＧＯＰ（ｉ＋１）とは、本発明における１つのＧＯＰを構成しない。
なお、本発明では、図２の復号／伝送順序にて示すＧＯＰ（ｉ＋１）中のピクチャＰｎのように、直近のピクチャＰ２を超えて、遠方のピクチャＰ１を参照して復号されるようなピクチャを含む符号化列も復号処理の対象として含む。【００４０】
ここで、ＭＰＥＧデータストリームのデータ構造の一例について説明する。なお、以降において、マクロブロックを、単にＭＢと表記する場合がある。
ＭＰＥＧデータストリームＤ１００は、図３に示すように、フレーム種別Ｄ１０１、マクロブロック情報（ＭＢ０）Ｄ１１０、マクロブロック情報（ＭＢ１）Ｄ１１０ａ、マクロブロック情報（ＭＢ２）Ｄ１１０ｂ、・・・、マクロブロック情報（ＭＢｎ）Ｄ１１０ｎ、・・・から構成されている。フレーム種別Ｄ１０１、マクロブロック情報（ＭＢ０）Ｄ１１０、Ｄ１１０ａ、Ｄ１１０ｂ、・・・、Ｄ１１０ｎ、・・・は、符号化されている。【００４１】
フレーム種別Ｄ１０１は、ＭＰＥＧデータストリームＤ１００のフレーム（Ｉピクチャ、Ｂピクチャ、Ｐピクチャ）を識別する情報である。
また、マクロブロック情報（ＭＢ０）Ｄ１１０は、動きベクトル情報Ｄ１２０及び差分情報Ｄ１２１から構成されている。動きベクトル情報Ｄ１２０は、復号処理時に参照するピクチャのマクロブロック内の位置を示す情報であり、ピクチャのフレームに対して水平方向の位置を示すＸ座標、及び垂直方向の位置を示すＹ座標にて示されている。差分情報は、他のピクチャを参照することなく復号するために必要な情報である。つまり、復号対象のマクロブロックにおいて、差分情報のみを用いて復号を行うと、参照すべき画像データを除く他の画像データからなるピクチャが生成される。【００４２】
マクロブロックは、通常１６画素×１６画素からなる。また、通常、動きベクトルを用いた復号処理では、動きベクトル情報にて示された位置から１６画素×１６画素分のマクロブロックが用いられる。
なお、マクロブロック情報（ＭＢ１）Ｄ１１０ａ、マクロブロック情報（ＭＢ２）Ｄ１１０ｂ、・・・、マクロブロック情報（ＭＢｎ）Ｄ１１０ｎのデータ構造については、マクロブロック情報（ＭＢ０）Ｄ１１０と同様であるので、ここでの説明は省略する。【００４３】
１．１  復号用半導体装置１０の構成
復号用半導体装置１０は、図１に示すように、ＣＰＵ１００とアプリケーション部２００とから構成されている。
（１）ＣＰＵ１００
ＣＰＵ１００は、図１に示すように、キャッシュメモリ１０１を有している。キャッシュメモリ１０１は、メインメモリ３０に比べると容量は少ないが、非常に高速にアクセスできるように設計されたメモリである。【００４４】
ＣＰＵ１００はコンピュータシステムを構成しており、アプリケーション部２００に格納されたプログラムを読み込み、読み込んだプログラムとハードウェア資源とが協働することにより機能を達成する。
ＣＰＵ１００は、ＭＰＥＧデータの復号時に、外部記憶装置２０から、ＧＯＰ単位に１つ以上のＭＰＥＧデータを読み出し、読み出したＧＯＰに含まれる１つ以上のＭＰＥＧデータをメインメモリ３０に格納する。【００４５】
ＣＰＵ１００は、メインメモリ３０に格納されているＭＰＥＧデータを読み出し、読み出したデータの復号を行い、復号した画像データをメインメモリ３０に格納する。
ＣＰＵ１００は、復号時に参照されるデータをメインメモリ３０から読み出し、読み出したデータを、キャッシュメモリ１０１へ格納する。ここでは、ＣＰＵ１００は、復号対象のピクチャが参照する、つまり動きベクトルで指示されたマクロブロックに相当する領域を含む通常４つ分のマクロブロックをメインメモリ３０から読み出し、読み出した４つ分のマクロブロックをキャッシュメモリ１０１に格納する。なお、以降において、読み出した４つ分のマクロブロックを参照ブロック画像ともいう。【００４６】
ＣＰＵ１００は、連続して同じデータにアクセスする場合には、アクセスする度にメインメモリ３０からデータを取得するのではなく、ＣＰＵ１００内のキャッシュメモリ１０１に格納されたデータを利用することで、メインメモリ３０へのアクセスを減らし、より高速に処理を行うことが可能となっている（キャッシュヒットという）。ただし、ＣＰＵ１００がアクセスしたデータは次々とキャッシュメモリ１０１に格納されるので、同じデータにアクセスする場合でも、別のデータにアクセスしてから当該データに再度アクセスを試みるとキャッシュメモリ１０１にはすでに存在しない場合がある（キャッシュミスという）。この場合は、ＣＰＵ１００は、再度メインメモリ３０にアクセスしてデータを取得し、取得したデータをキャッシュメモリ１０１へ格納する。【００４７】
（２）アプリケーション部２００
アプリケーション部２００はアプリケーションプログラムとハードウェアとが協働した具体的手段であり、図１に示すように、ＧＯＰ読出部２０１と、参照ＭＢ情報取得部２０２と、ソート処理部２０３と、復号処理部２０４とを備える。
（２−１）ＧＯＰ読出部２０１
ＧＯＰ読出部２０１は、ＭＰＥＧデータの復号処理開始時、及び復号処理部２０４からＭＰＥＧデータストリームの読み出しを行う旨の読出指示を受け取った場合に、外部記憶装置２０からＭＰＥＧデータストリームを、前述の本発明におけるＧＯＰを単位として読み出し、読み出したＧＯＰをメインメモリ３０へ格納する。【００４８】
ＧＯＰ読出部２０１は、ＧＯＰの格納が完了すると、格納したＧＯＰに含まれる１以上のピクチャの解析を行う旨を示す解析指示を参照ＭＢ情報取得部２０２へ通知する。
ＧＯＰ読出部２０１は、復号処理部２０４から取得したＧＯＰに対する復号が完了した旨を示すＧＯＰ復号完了通知を受け取ると、未読出のＭＰＥＧデータストリームが存在するか否かを判断する。未読出のＭＰＥＧデータストリームが存在すると判断する場合には、ＧＯＰ読出部２０１は、次のＧＯＰを読出し、上記の動作を行う。存在しないと判断する場合には、ＧＯＰ読出部２０１は、処理を終了する。【００４９】
（２−２）参照ＭＢ情報取得部２０２
参照ＭＢ情報取得部２０２は、ＧＯＰ読出部２０１から解析指示を受け取ると、以下の動作を行う。
参照ＭＢ情報取得部２０２は、メインメモリ３０に格納されたＧＯＰに含まれる１以上のＭＰＥＧデータストリームのそれぞれに対して、ＭＰＥＧデータストリームのフレーム種別が、Ｉピクチャ、Ｐピクチャ、Ｂピクチャのいずれかを示すかを順次調べる。このとき、通常、フレーム種別は符号化されているので、参照ＭＢ情報取得部２０２は、フレーム種別を復号して解析対象であるＭＰＥＧデータストリームのフレームの種別（Ｉピクチャ、Ｐピクチャ、Ｂピクチャ）を調べる。【００５０】
解析対象であるＭＰＥＧデータストリームのフレームの種別がＰピクチャ、及びＢピクチャの何れかである場合、参照ＭＢ情報取得部２０２は、解析対象であるＭＰＥＧデータストリーム（以下、「解析対象ピクチャ」という。）に含まれるマクロブロック情報（以下、「解析対象ＭＢ」）ごとに動きベクトル情報を抽出し、抽出した動きベクトルを用いて、参照しているピクチャ（参照ピクチャ）およびそのピクチャにおいて参照される位置（参照位置）を特定する。このとき、通常、動きベクトル情報は符号化されているので、参照ＭＢ情報取得部２０２は、動きベクトル情報を復号して解析対象ＭＢが参照する参照ピクチャ及び参照位置を特定する。なお、解析対象ＭＢが参照する参照ピクチャは、ＭＢ単位に指定されるものであってもよいし、ＭＢが含まれるスライスヘッダに記述された値をもとに導出されるものであってもよい。【００５１】
参照ピクチャの特定方法は、従来と同様であるので、ここでの説明は省略する。ここで、参照位置の特定も従来と同様に、動きベクトルを用いて参照位置のＸ座標及びＹ座標を特定する。これにより、参照位置を基準とし、復号処理時の参照に用いられる画像領域（参照位置から１６画素×１６画素分のマクロブロック）を特定することができる。このとき、参照ＭＢ情報取得部２０２は、参照ピクチャ毎に、図４（ａ）に示す参照位置情報テーブルＴ１００を生成する。参照位置情報テーブルＴ１００は、ＭＢ番号、Ｘ座標、及びＹ座標からなる組を１以上記憶するための領域を有している。ＭＢ番号は、解析対象ＭＢを識別する番号を示す。Ｘ座標は参照ピクチャにおいて参照位置の水平方向を示し、Ｙ座標は、参照ピクチャにおいて参照位置の垂直方向を示す。また、Ｘ座標及びＹ座標において、「−」は、参照すべき位置がない、つまり、ＭＢ番号にて示される解析対象ＭＢは、参照ピクチャのマクロブロックを参照せずに復号することを示している。以降において、ＭＢ番号、Ｘ座標、及びＹ座標からなる組を参照ＭＢ情報という。つまり、参照ＭＢ情報取得部２０２は、参照ピクチャと、参照位置を特定することにより、参照ピクチャの情報と１以上の参照ＭＢ情報とを取得することができる。【００５２】
また、参照ＭＢ情報取得部２０２は、解析対象ピクチャがＰピクチャ、及びＢピクチャの何れかである場合、さらに、解析対象ピクチャにおける各解析対象ＭＢ（マクロブロック情報）に含まれる差分情報それぞれに対してインデックスを付加し、解析対象ピクチャ毎に、図４（ｂ）に示すインデックス情報テーブルＴ２００を生成する。インデックス情報テーブルＴ２００は、ＭＢ番号、インデックス情報、及びデータ先頭位置情報からなる組を１以上記憶するための領域を有している。ＭＢ番号は、解析対象ＭＢを識別する番号を示す。インデックス情報は、解析対象ＭＢに含まれる差分情報に付加されたインデックスを示す。データ先頭位置情報は、インデックス情報にて示されるインデックスが付加された差分情報の先頭位置を示す情報である。【００５３】
参照ＭＢ情報取得部２０２は、ＧＯＰに含まれる全てのＭＰＥＧデータストリームの解析が終了すると、生成した1以上の参照位置情報テーブルのソートを指示するソート指示をソート処理部２０３へ通知する。
なお、解析対象ピクチャがＢピクチャである場合には、参照するピクチャが２つあるので、参照ＭＢ情報取得部２０２は、それぞれの参照ピクチャに対する参照位置情報テーブルを生成する必要がある。つまり、参照ＭＢ情報取得部２０２は、解析対象ピクチャがＢピクチャである場合には、２つの参照位置情報テーブルと、１つのインデックス情報テーブルとを生成することになる。【００５４】
（２−３）ソート処理部２０３
ソート処理部２０３は、参照ＭＢ情報取得部２０２からソート指示を受け取ると、参照ＭＢ情報取得部２０２が生成した1以上の参照位置情報テーブルに対して、参照位置情報テーブルにて特定された参照ピクチャ毎に、図５にて示すソートテーブルＴ３００を生成する。なお、一例として図５にて示すソートテーブルＴ３００は、参照ピクチャを図２にて示すＩピクチャ“Ｉ１”とするテーブルである。【００５５】
ソートテーブルＴ３００は、参照ピクチャ、Ｘ座標、Ｙ座標、復号ピクチャ、復号対象ＭＢ、及びインデックス情報からなる組を１以上記憶するための領域を有している。
参照ピクチャは、復号処理時に参照されるピクチャを示す。Ｘ座標は参照ピクチャにおいて参照位置の水平方向を示し、Ｙ座標は、参照ピクチャにおいて参照位置の垂直方向を示す。【００５６】
復号ピクチャは、参照ピクチャを用いて復号するＭＰＥＧデータストリーム（以下、「復号対象データ」という。）を示す。
復号対象ＭＢは、復号対象データ（つまり、復号対象のＭＰＥＧデータストリーム）に含まれる１以上のマクロブロックのうち復号対象となるマクロブロック情報を示す。例えば、復号対象ＭＢ（ｘ、ｙ）は、復号後のピクチャにおいて水平方向“ｘ”、垂直方向“ｙ”に位置するマクロブロックを示す。ここで、復号対象ＭＢ（ｘ、ｙ）は、対応する復号ピクチャを形成するＭＰＥＧデータストリームに含まれるマクロブロック情報と１対１に対応付けがなされている。例えば、復号対象ＭＢ（０、０）は、マクロブロック情報ＭＢ０と対応付けがなされている。【００５７】
インデックス情報は、復号処理時に、復号対象ＭＢにて示されるマクロブロック情報に含まれる差分情報に付加されたインデックスを示す。
なお、参照ピクチャ、Ｘ座標、Ｙ座標、復号ピクチャ、復号対象ＭＢ、及びインデックス情報からなる情報を復号処理情報という。
ソート処理部２０３は、ソートテーブルＴ３００の生成時に、“Ｋｅｙ＝ｉｎｔ（Ｙ／１６）×１２０＋ｉｎｔ（Ｘ／１６）”をキーとして、ソートテーブルの情報に対してソートを行う。ここで、Ｘ、Ｙのそれぞれは、復号処理情報に含まれるＸ座標及びＹ座標の値である。【００５８】
ソート処理部２０３は、参照ピクチャ毎に対するソートテーブルの生成が完了すると、復号処理の行う旨の復号指示を復号処理部２０４へ通知する。
上記にて示す算出式“Ｋｅｙ”は、参照位置を含むマクロブロックのＭＢＡ（Ｍａｃｒｏ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）を算出する演算式である。
ソート処理部２０３は、参照ブロック画像毎に、当該参照ブロック画像を参照先とする復号ピクチャ及びその復号対象ＭＢを1つ以上特定し、ソートにより特定した1つ以上の復号ピクチャ及びその復号対象ＭＢが連続するように並び替えている。ソート処理部２０３は、本発明における特定手段に相当する。【００５９】
ソートテーブルの生成について、以下に具体的な動作を説明する。
処理（１）：  ソート処理部２０３は、先ず、1以上の参照ピクチャのうち、ソートテーブルが未だ生成されていない１の参照ピクチャを選択する。
処理（２）：  ソート処理部２０３は、選択した１の参照ピクチャに対して、ソート前のソートテーブルを生成する。ソート処理部２０３は、生成したソート前のソートテーブルにおいて、当該ソートテーブル内の復号処理情報に含まれるＸ座標とＹ座標とからなる組それぞれに対して算出式“Ｋｅｙ”を施して、各復号処理情報に含まれる復号ピクチャ及びその復号対象ＭＢそれぞれの参照ブロック画像のＭＢＡを算出する。【００６０】
処理（３）：  処理（２）にて算出された1つ以上のＭＢＡに対して、ソート処理部２０３は、未だ選択されていない値のうち最小の値を示すＭＢＡを選択、つまりソート処理部２０３は、１つの参照ブロック画像を選択する。ソート処理部２０３は、選択したＭＢＡと同一の値が前記算出式にて算出されるＸ座標とＹ座標とからなる組を含む1以上の復号処理情報を特定する。つまりソート処理部２０３は、決定した参照ブロック画像を参照先とする復号ピクチャとその復号対象ＭＢとからなる１つ以上の組を特定する。【００６１】
処理（４）：  ソート処理部２０３は、特定した１以上の復号処理情報が連続するようにソートテーブルの並び替えを行う。
処理（５）：  ソート処理部２０３は、処理（３）、（４）を、1以上のＭＢＡそれぞれにて示される全ての値が選択されるまでの間、繰り返して、処理（１）にて選択された参照ピクチャに対するソート後のソートテーブルを生成する。【００６２】
処理（６）：  ソート処理部は、処理（１）から（５）を繰り返すことにより、全ての参照ピクチャに対するソート後のソートテーブルを生成する。
（２−４）復号処理部２０４
復号処理部２０４は、図６に示すように、復号処理制御部２５０、ピクチャ群選択部２５１、参照ＭＢ読出部２５２、及びＭＢ復号処理部２５３から構成されている。【００６３】
（復号処理制御部２５０）
復号処理制御部２５０は、ソート処理部２０３から復号指示を受け取ると、メインメモリ３０に格納されているＧＯＰから１のＭＰＥＧデータストリームを取得し、取得したＭＰＥＧデータストリームのフレーム種別がＩピクチャであるか否かを判断する。このとき、通常、フレーム種別は符号化されているので、復号処理制御部２５０は、フレーム種別を復号して取得したＭＰＥＧデータストリームのフレームの種別を調べる。【００６４】
Ｉピクチャであると判断する場合には、復号処理制御部２５０は、Ｉピクチャの復号を指示するＩピクチャ復号指示をＭＢ復号処理部２５３へ通知する。
Ｉピクチャでないと判断する場合には、復号処理制御部２５０は、取得したＭＰＥＧデータストリームが参照し、且つ復号済のＩピクチャ又はＰピクチャが存在するか否かを判断する。存在すると判断する場合には、復号処理制御部２５０は、参照されるピクチャを決定し、決定した参照ピクチャを取得し、取得した参照ピクチャを参照するピクチャ群の選択を指示する選択指示をピクチャ群選択部２５１へ通知する。【００６５】
参照され、且つ復号済のＩピクチャ及びＰピクチャが存在しないと判断する場合には、復号処理制御部２５０は、メインメモリ３０に格納されているＧＯＰから未取得である１のＭＰＥＧデータストリームを取得し、上記の動作行う。
復号処理制御部２５０は、ＭＢ復号処理部２５３からＩピクチャの復号が完了した旨を示す第１復号完了通知、又はピクチャ群選択部２５１から参照ピクチャを用いた復号が完了した旨を示す第２復号完了通知を受け取ると、ＧＯＰ内の全てのピクチャの復号が完了したか否かを判断する。復号が完了したと判断する場合には、復号処理制御部２５０は処理を終了し、復号が完了していないと判断する場合には、メインメモリ３０に格納されているＧＯＰから未取得である１のピクチャを取得し、上記の動作行う。【００６６】
なお、復号処理制御部２５０は、処理の終了時にＧＯＰ復号完了通知をＧＯＰ読出部２０１へ通知する。
ここで、「Ｉピクチャの復号」とは、「フレーム種別がＩピクチャであるＭＰＥＧデータストリームに対する復号」のことをいう。
（ピクチャ群選択部２５１）
ピクチャ群選択部２５１は、選択指示を復号処理制御部２５０から受け取ると、ソート処理部２０３にて生成された１以上のソートテーブルのうち復号処理制御部２５０が取得した参照ピクチャに対するソートテーブルを用いて、参照位置を含むマクロブロックが同一のマクロブロックであり、同一のマクロブロックを含む４つ分のマクロブロックを参照するピクチャ群を選択する。ここで、ピクチャ群とは、メインメモリ３０に格納されているＧＯＰに含まれる１以上のＭＰＥＧデータストリームからなる集合である。例えば、ピクチャ群選択部２５１は、上記にて示す算出式“Ｋｅｙ”を用いて、参照位置を含むマクロブロックのＭＢＡを算出し、算出したＭＢＡが同一となる復号処理情報を１つ以上取得することにより、前記ピクチャ群を選択する。【００６７】
ピクチャ群選択部２５１は、１つ以上の復号処理情報を取得すると、４つ分のマクロブロックを取得する旨の参照ＭＢ読出指示を参照ＭＢ読出部２５２へ通知する。
ピクチャ群選択部２５１は、ＭＢ復号処理部２５３からマクロブロックの参照により復号処理が完了したことを示す第３復号完了通知を受け取ると、参照ピクチャにおいて、他のマクロブロックを参照するピクチャ群が存在するか否かを判断する。【００６８】
存在すると判断する場合には、ピクチャ群選択部２５１は、他のマクロブロックを参照するピクチャ群を取得し、上記の動作を行う。
存在しないと判断する場合には、ピクチャ群選択部２５１は、マクロブロックを参照しないで復号を行う旨のイントラＭＢ復号指示をＭＢ復号処理部２５３へ通知する。
以降において、マクロブロックを参照して復号される復号対象のマクロブロックをノンイントラＭＢともいい、また、他のマクロブロックを参照することなく復号される復号対象のマクロブロックをイントラＭＢという場合がある。【００６９】
ここで、復号処理情報を取得の一例を、図５にて示すソートテーブルＴ３００を用いて以下に示す。
ピクチャ群選択部２５１は、復号処理情報Ｔ３０１に含まれるＸ座標及びＹ座標の各値を用いて、“Ｋｅｙ”を算出する。この場合、Ｋｅｙ＝０となる。このとき、算出されたＫｅｙの値により参照されるマクロブロックの開始番号が決定されていることに注意する。【００７０】
ピクチャ群選択部２５１は、算出したＫｅｙの値と同一の値が算出されるＸ座標及びＹ座標の各値を含む他の復号処理情報を取得する、この場合、復号処理情報Ｔ３０２、及びＴ３０３が取得されることになる。
これらの動作により、ピクチャ群選択部２５１は、復号処理情報Ｔ３０１、Ｔ３０２、及びＴ３０３を取得することができる。【００７１】
復号処理情報Ｔ３０１、Ｔ３０２、及びＴ３０３を用いた復号処理が完了すると、ピクチャ群選択部２５１は、次に、復号処理情報Ｔ３０４に含まれるＸ座標及びＹ座標の各値を用いて、“Ｋｅｙ”を算出し、上記動作を行う。
これらの動作をソートテーブルＴ３００に含まれる全ての復号処理情報に対して行うことにより、参照ピクチャ“Ｉ１”を用いた復号処理が完了する。【００７２】
（参照ＭＢ読出部２５２）
参照ＭＢ読出部２５２は、ピクチャ群選択部２５１から参照ＭＢ読出指示を受け取ると、ピクチャ群選択部２５１が１以上の復号処理情報を取得する際に用いた“Ｋｅｙ”の値にて特定されるマクロブロックのＭＢＡにて示されるマクロブロックを含む４つ分のマクロブロックをメインメモリ３０から読み出し、読み出した４つ分のマクロブロックをキャッシュメモリ１０１に格納する。【００７３】
参照ＭＢ読出部２５２は、ＭＢの復号を行う旨を示すＭＢ復号指示をＭＢ復号処理部２５３へ通知する。
例えば、１以上の復号処理情報を取得する際に用いた“Ｋｅｙ”の値にて特定されるマクロブロックのＭＢＡ（Ｍａｃｒｏ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）が（ｋ，  ｌ）である場合には、参照ＭＢ読出部２５２は、ＭＢＡが（ｋ，  ｌ）、（ｋ＋１，  ｌ）、（ｋ，  ｌ＋１）、（ｋ＋１，  ｌ＋１）である４つのマクロブロックをメインメモリ３０から読み出し、読み出した４つのマクロブロックをキャッシュメモリ１０１に格納する。【００７４】
（ＭＢ復号処理部２５３）
ＭＢ復号処理部２５３は、復号処理制御部２５０からＩピクチャ復号指示を受け取ると、復号処理制御部２５０にて取得されたＭＰＥＧデータストリーム（フレーム種別は「Ｉピクチャ」）に含まれる全てのマクロブロック情報に基づいて、各マクロブロック情報に対応するマクロブロックの復号を行う。Ｉピクチャの復号が完了すると、第１復号完了通知を復号処理制御部２５０へ通知する。このとき、復号されたＩピクチャ（画像データ）は、メインメモリ３０に格納されている。ここで、「マクロブロックを復号する」とは、「符号化されたマクロブロックを復号する」ことをいう。また、符号化されたマクロブロックの復号には、２つの方法がある。１つは、動きベクトルと差分情報とを用いた復号であり、もう１つは、差分情報のみを用いた復号である。【００７５】
ＭＢ復号処理部２５３は、参照ＭＢ読出部２５２からＭＢ復号指示を受け取ると、ピクチャ群選択部２５１にて選択されたピクチャ群において、キャッシュメモリ１０１に格納されている４つ分のＭＢを用いて、ピクチャ群選択部２５１が取得した１以上の復号処理情報にて示される全てのマクロブロックの復号を順次行う。例えば、ピクチャ群選択部２５１が図５にて示す復号処理情報Ｔ３０１、Ｔ３０２、及びＴ３０３を取得した場合、ＭＢ復号処理部２５３は、先ず復号処理情報Ｔ３０１を選択し、選択した復号処理情報Ｔ３０１にて示されるマクロブロック情報を用いて、前記マクロブロック情報に対応するマクロブロックを復号する。次に、ＭＢ復号処理部２５３は、復号処理情報Ｔ３０２を選択し、選択した復号処理情報Ｔ３０２にて示されるマクロブロック情報を用いて、前記マクロブロック情報に対応するマクロブロックを復号する。復号処理情報Ｔ３０２にて示されるマクロブロック情報を用いた復号を行った後、ＭＢ復号処理部２５３は、復号処理情報Ｔ３０３を選択し、選択した復号処理情報Ｔ３０３にて示されるマクロブロック情報を用いて、前記マクロブロック情報に対応するマクロブロックを復号する。【００７６】
このとき、ＭＢ復号処理部２５３は、選択した復号処理情報に含まれるインデックス情報にて示されるインデックスに対応するデータの先頭位置を特定することにより、復号対象となるマクロブロック情報に含まれる差分情報を取得する。ＭＢ復号処理部２５３は、従来技術と同様に、取得した差分情報（上述したように、符号化されている。）に対して、可変長復号、逆量子化、逆ＤＣＴ、及び動き補償の各処理を施すことにより、マクロブロックの復号を行う。ＭＢ復号処理部２５３は、復号処理情報に含まれるＸ座標及びＹ座標にて示されるマクロブロックをキャッシュメモリ１０１から読み出し、逆ＤＣＴにて復元された画素空間データに、読み出したマクロブロックを加えることにより１つのマクロブロックを復号することができる。【００７７】
ＭＢ復号処理部２５３は、ピクチャ群選択部２５１が取得した１以上の復号処理情報にて示される全てのマクロブロック情報のそれぞれに対応するマクロブロックの復号が完了すると、第３復号完了通知をピクチャ群選択部２５１へ通知する。
ＭＢ復号処理部２５３は、ピクチャ群選択部２５１からイントラＭＢ復号指示を受け取ると、復号処理制御部２５０にて取得された参照ピクチャを参照する１以上のＭＰＥＧデータストリームにおいて、既に復号に用いたマクロブロック情報を除いて、イントラＭＢを示すマクロブロック情報が存在するか否かを判断する。【００７８】
イントラＭＢを示すマクロブロック情報が存在すると判断する場合には、ＭＢ復号処理部２５３は、参照ピクチャを参照する１以上のＭＰＥＧデータストリームに含まれる全てのイントラＭＢを復号する。
このとき、ＭＢ復号処理部２５３は、従来技術と同様に、マクロブロック情報に含まれる差分情報に対して、可変長復号、逆量子化、及び逆ＤＣＴの各処理を施すことにより、イントラＭＢの復号を行う。【００７９】
イントラＭＢを示すマクロブロック情報が存在しないと判断する場合、及び全てのイントラＭＢの復号が完了した場合には、ＭＢ復号処理部２５３は、第２復号完了通知を復号処理制御部２５０へ通知する。
１．２  復号処理システム１の動作
（１）復号用半導体装置１０の動作
ここでは、復号用半導体装置１０の動作について、図７にて示す流れ図を用いて説明する。【００８０】
ＧＯＰ読出部２０１は、外部記憶装置２０に格納されているＭＰＥＧデータストリームをＧＯＰを単位として読み出し、メインメモリ３０に格納する（ステップＳ５）。
ＧＯＰ読出部２０１は、メインメモリ３０に少なくとも１つのＧＯＰの格納が完了したか否かを判断する（ステップＳ１０）。
完了していないと判断する場合には（ステップＳ１０における「ＮＯ」）、ＧＯＰ読出部２０１は、ステップＳ５に戻る。【００８１】
完了したと判断する場合には（ステップＳ１０における「ＹＥＳ」）、ＧＯＰ読出部２０１は、解析指示を参照ＭＢ情報取得部２０２へ通知し、参照ＭＢ情報取得部２０２は、ＧＯＰ読出部２０１から解析指示を受け取る。参照ＭＢ情報取得部２０２は、メインメモリ３０に格納されたＧＯＰに含まれる１のＭＰＥＧデータストリームを取得する（ステップＳ１５）。【００８２】
参照ＭＢ情報取得部２０２は、取得したＭＰＥＧデータストリームのフレーム種別がＰピクチャ又はＢピクチャであるかを判断する。
フレーム種別がＰピクチャ又はＢピクチャであると判断する場合には（ステップＳ２０における「ＹＥＳ」）、参照ＭＢ情報取得部２０２は、取得したＭＰＥＧデータストリームに含まれる１つ以上のマクロブロック情報から参照ＭＢ情報を取得し、取得したＭＰＥＧデータストリームに対する参照位置情報テーブルを生成する（ステップＳ２５）。また、このとき、参照ＭＢ情報取得部２０２は、取得したＭＰＥＧデータストリーム（フレーム種別がＰピクチャ又はＢピクチャ）毎に、インデックス情報テーブルを生成する。【００８３】
取得したＭＰＥＧデータストリームのフレーム種別がＰピクチャ及びＢピクチャの何れでもない、つまり、Ｉピクチャであると判断する場合には（ステップＳ２０における「ＮＯ」）、又は参照位置情報テーブルの生成後、参照ＭＢ情報取得部２０２は、取得したＭＰＥＧデータストリームがＧＯＰにおける最後のデータであるか否かを判断する（ステップＳ３０）。【００８４】
最後のデータでないと判断する場合には（ステップＳ３０における「ＮＯ」）、参照ＭＢ情報取得部２０２は、ステップＳ１５に戻る。
最後のデータであると判断する場合には（ステップＳ３０における「ＹＥＳ」）、参照ＭＢ情報取得部２０２はソート指示をソート処理部２０３へ通知し、ソート処理部２０３は参照ＭＢ情報取得部２０２からソート指示を受け取る。ソート処理部２０３は、参照ＭＢ情報取得部２０２が生成した1以上の参照位置情報テーブルに対して、参照位置情報テーブルにて特定された参照ピクチャ毎にソートテーブルを生成することにより、参照されるＭＢについて参照関係をソートする（ステップＳ３５）。【００８５】
ソート処理部２０３は、参照ピクチャ毎にソートテーブルの生成を完了すると、復号指示を復号処理部２０４へ通知し、復号処理部２０４はソート処理部２０３から復号指示を受け取る。
復号処理部２０４は、ＭＢ復号処理を行い、ＧＯＰに含まれる全てのＭＰＥＧデータストリームの復号を行う（ステップＳ４０）。【００８６】
復号処理部２０４は、ＭＢ復号処理が終了すると、ＧＯＰ復号完了通知をＧＯＰ読出部２０１へ通知し、ＧＯＰ読出部２０１は復号処理部２０４からＧＯＰ復号完了通知を受け取る。ＧＯＰ読出部２０１は、未読出のＭＰＥＧデータストリームが存在するか否か、つまりＭＰＥＧデータストリームの読み込みが終了したか否かを判断する（ステップＳ４５）。読み込みが終了していないと判断する場合には（ステップＳ４５における「ＮＯ」）、ＧＯＰ読出部２０１は、ステップＳ５に戻る。終了したと判断する場合には（ステップＳ４５における「ＹＥＳ」）、ＧＯＰ読出部２０１は、処理を終了する。【００８７】
（２）ＭＢ復号処理
ここでは、図７のステップＳ４０にて示すＭＢ復号処理について、図８及び図９にて示す流れ図を用いて説明する。
復号処理制御部２５０は、ソート処理部２０３から復号指示を受け取ると、メインメモリ３０に格納されているＧＯＰから１のＭＰＥＧデータストリームを取得し（ステップＳ１００）、取得したＭＰＥＧデータストリームのフレーム種別がＩピクチャであるか否かを判断する（ステップＳ１０５）。【００８８】
フレーム種別がＩピクチャであると判断する場合には（ステップＳ１０５における「ＹＥＳ」）、復号処理制御部２５０は、Ｉピクチャ復号指示をＭＢ復号処理部２５３へ通知する。ＭＢ復号処理部２５３は、復号処理制御部２５０からＩピクチャ復号指示を受け取ると、復号処理制御部２５０にて取得されたＭＰＥＧデータストリーム（フレーム種別はＩピクチャ）に含まれるに全てのマクロブロック情報それぞれにマクロブロックの復号を行う（ステップＳ１１０）。【００８９】
ＭＢ復号処理部２５３は、Ｉピクチャの復号が完了すると、第１復号完了通知を復号処理制御部２５０へ通知する。このとき、復号されたＩピクチャ（画像データ）は、メインメモリ３０に格納されている。
復号処理制御部２５０は、ＭＢ復号処理部２５３から第１復号完了通知を受け取ると、ＧＯＰ内の全てのＭＰＥＧデータストリームの復号が完了したか否かを判断する（ステップＳ１１５）。復号が完了したと判断する場合には（ステップＳ１１５における「ＹＥＳ」）、復号処理制御部２５０は、処理を終了する。復号が完了していないと判断する場合には（ステップＳ１１５における「ＮＯ」）、復号処理制御部２５０は、ステップＳ１００に戻る。なお、復号処理制御部２５０は、処理の終了時にＧＯＰ復号完了通知をＧＯＰ読出部２０１へ通知する。【００９０】
取得したＭＰＥＧデータストリームのフレーム種別がＩピクチャでないと判断する場合には（ステップＳ１０５における「ＮＯ」）、復号処理制御部２５０は、取得したＭＰＥＧデータストリームが参照し、且つ復号済のＩピクチャ又はＰピクチャが存在するか否かを判断する（ステップＳ１２０）。
存在しないと判断する場合には（ステップＳ１２０における「ＮＯ」）、復号処理制御部２５０は、ステップＳ１００に戻る。【００９１】
存在すると判断する場合には（ステップＳ１２０における「ＹＥＳ」）、復号処理制御部２５０は、参照されるピクチャを決定し、決定した参照ピクチャを取得する（ステップＳ１２５）。
復号処理制御部２５０は選択指示をピクチャ群選択部２５１へ通知し、ピクチャ群選択部２５１は選択指示を復号処理制御部２５０から受け取る。ピクチャ群選択部２５１は、ソート処理部２０３にて生成された１以上のソートテーブルのうち復号処理制御部２５０が取得した参照ピクチャに対するソートテーブルを用いて、参照位置を含むマクロブロックが同一のマクロブロックであり、同一のマクロブロックを含む４つ分のマクロブロックを参照するピクチャ群を選択する（ステップＳ１３０）。例えば、ピクチャ群選択部２５１は、上記にて示す算出式“Ｋｅｙ”を用いて、参照位置を含むマクロブロックのＭＢＡを算出し、算出したＭＢＡが同一となる復号処理情報を１つ以上取得することにより、前記ピクチャ群を選択する。【００９２】
ピクチャ群選択部２５１は、１つ以上の復号処理情報を取得すると、参照ＭＢ読出指示を参照ＭＢ読出部２５２へ通知する。参照ＭＢ読出部２５２は、ピクチャ群選択部２５１から参照ＭＢ読出指示を受け取ると、ピクチャ群選択部２５１が１以上の復号処理情報を取得する際に用いた“Ｋｅｙ”の値にて特定されるマクロブロックのＭＢＡにて示されるマクロブロックを含む４つ分のマクロブロックをメインメモリ３０から読み出し、読み出した４つ分のマクロブロックをキャッシュメモリ１０１に格納する（ステップＳ１３５）。【００９３】
参照ＭＢ読出部２５２は、ＭＢ復号指示をＭＢ復号処理部２５３へ通知する。ＭＢ復号処理部２５３は、参照ＭＢ読出部２５２からＭＢ復号指示を受け取ると、ピクチャ群選択部２５１にて選択されたピクチャ群において、キャッシュメモリ１０１に格納されている４つ分のＭＢを用いて、ピクチャ群選択部２５１が取得した１以上の復号処理情報にて示される全てのマクロブロックの復号を順次行う（ステップＳ１４０）。【００９４】
ＭＢ復号処理部２５３は、ピクチャ群選択部２５１が取得した１以上の復号処理情報にて示される全てのマクロブロックの復号が完了すると、第３復号完了通知をピクチャ群選択部２５１へ通知する。ピクチャ群選択部２５１は、ＭＢ復号処理部２５３から第３復号完了通知を受け取ると、参照ピクチャにおいて、他のマクロブロックを参照するピクチャ群が存在するか否かを判断、つまり、取得した参照ピクチャを参照する全てのノンイントラMBの復号が完了したか否かを判断する（ステップＳ１４５）。【００９５】
他のマクロブロックを参照するピクチャ群が存在する、つまり参照ピクチャを参照する全てのノンイントラMBの復号が完了していないと判断する場合には（ステップＳ１４５における「NO」）、ピクチャ群選択部２５１は、ステップＳ１３５に戻り、他のマクロブロックを参照するピクチャ群を取得し、以降の動作を行う。
他のマクロブロックを参照するピクチャ群が存在しない、つまり参照ピクチャを参照する全てのノンイントラMBの復号が完了したと判断する場合には（ステップＳ１４５における「YES」）、ピクチャ群選択部２５１は、イントラＭＢ復号指示をＭＢ復号処理部２５３へ通知する。ＭＢ復号処理部２５３は、ピクチャ群選択部２５１からイントラＭＢ復号指示を受け取ると、復号処理制御部２５０にて取得された参照ピクチャを参照する１以上のＭＰＥＧデータストリームにおいて、既に復号に用いたマクロブロック情報を除いて、イントラＭＢを示すマクロブロック情報が存在するか否かを判断する（ステップＳ１５０）。【００９６】
イントラＭＢを示すマクロブロック情報が存在すると判断する場合には（ステップＳ１５０における「ＹＥＳ」）、ＭＢ復号処理部２５３は、参照ピクチャを参照する１以上のＭＰＥＧデータストリームに含まれる全てのイントラＭＢを復号する（ステップＳ１５５）。
イントラＭＢを示すマクロブロック情報が存在しないと判断する場合には（ステップＳ１５０における「ＮＯ」）、及びステップＳ１５５の実行後、ＭＢ復号処理部２５３は、第２復号完了通知を復号処理制御部２５０へ通知する。【００９７】
復号処理制御部２５０は、ＭＢ復号処理部２５３から第２復号完了通知を受け取ると、ステップＳ１１５を実行し、それ以降の動作を行う。
１．３  具体例
（１）参照関係の具体例
ここでは、参照ピクチャと復号対象ピクチャとの参照関係について、図１０に示す具体例を用いて説明する。【００９８】
図１０に示すように、ピクチャＤ２００は、参照ピクチャであり、Ｉピクチャ又はＰピクチャの何れかである。ピクチャＤ２１０、Ｄ２１１、Ｄ２１２、及びＤ２１３は、復号対象ピクチャであり、Ｂピクチャである。また、Ｄ２１３は、復号対象ピクチャであり、Ｐピクチャである。
ピクチャＤ２００におけるＭＢＡ（Ｍａｃｒｏ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）が（ｋ，  ｌ）、（ｋ＋１，  ｌ）、（ｋ，  ｌ＋１）、（ｋ＋１，  ｌ＋１）である４つのマクロブロックに含まれる領域の情報が、ピクチャＤ２００に先行する２つのピクチャＤ２１０とピクチャＤ２１１、及びピクチャＤ２００に続く３つのピクチャＤ２１２と、ピクチャＤ２１３とピクチャＤ２１４のそれぞれに参照されており、それぞれ（ｍｂ１，  ｎｂ１）、（ｍｂ２，  ｎｂ２）、（ｍｂ３，  ｎｂ３）、（ｍｂ４，  ｎｂ４）、（ｍｐ１，  ｎｐ１）というＭＢＡのマクロブロックの復号に利用される、という情報が、参照ＭＢ情報取得部２０２及びソート処理部２０３を用いることにより得られる。【００９９】
このように、ソート処理部２０３は、ＧＯＰ内のマクロブロックごとの参照関係を『参照されるマクロブロック』に注目してソートする。この時点では各マクロブロックの具体的な値は求めておく必要はなく、マクロブロック間の参照関係、とくに参照されるマクロブロックから見てどのピクチャのどのマクロブロックに自身の値が参照されるのかが明らかになっていればよい。【０１００】
（２）復号処理の具体例
ここでは、復号処理の順序について、図１１にて示す具体例を用いて説明する。
図１１は、ひとつのＧＯＰにおける本発明を用いた場合の復号処理の順番を示したものである。
Ｉピクチャ（Ｉ１と記す）の復号は従来と同じ方法である。次に、最初に出現するＰピクチャ（Ｐ１と記す）の復号を行う。この順番も従来と同じであるが、本発明ではＰ１の復号を行うと同時に、Ｉ１とＰ１の情報を用いて復号を行うＢピクチャ（Ｂ３、Ｂ４と記す）の復号も並行して行う点に特長がある。すなわちＰ１を復号するために、すでに復号済みのＩ１のマクロブロックの情報をメインメモリにアクセスして読み出したときに、Ｂ３、Ｂ４の復号処理にもこのマクロブロックの情報を利用するということがわかっている（事前にピクチャ間、マクロブロック間の参照関係が明らかになっているため）ので、このマクロブロックの情報を利用するＢ３、Ｂ４のマクロブロックの復号処理にその値を利用する。このような順番で復号処理を行うと、同じデータに連続してアクセスすることになるため、キャッシュメモリを備えた計算機ではほぼ確実にキャッシュヒットする。したがって、Ｐ１、Ｂ３、Ｂ４の３つのピクチャの復号に用いるＩ１の情報をメインメモリからの読み出す回数は１回でよい。【０１０１】
ここで現在復号処理を行っているＧＯＰがＣｌｏｓｅｄＧＯＰでない場合、ひとつ前のＧＯＰに含まれるピクチャの情報を用いて、ＧＯＰの先頭に含まれるＢピクチャの復号が可能な場合がある（図１１ではこのような場合を示している）。このときは先ほど述べたＰ１、Ｂ３、Ｂ４の３つのピクチャの復号と並行して、ＧＯＰの先頭の２つのＢピクチャＢ１、Ｂ２の復号も同時に行う。Ｂ１、Ｂ２の復号には一つ前のＧＯＰに含まれるＰピクチャＰｐ（Ｉピクチャの場合もありうる）とＩ１ピクチャの情報が利用できる。したがって、合計５つのピクチャの復号処理を並行に行うことが可能となる。Ｂ１、Ｂ２はすでにＰｐから得られる情報はセットされているため、Ｉ１から情報を得ることで復号処理が完了する。Ｐ１もＩ１からのみ情報を得て復号処理を行うので、復号処理は完了する。【０１０２】
ところが、Ｂ３、Ｂ４はＰ１から情報を得ないと復号処理が完了できないが、Ｐ１は現在復号処理を行っている最中であるので、Ｐ１の情報は復号には利用できない状態である。したがってＩ１から得られる情報のみを用いて復号処理の途中段階の状態で一旦メインメモリに格納される。図１１において、復号の順番を示した数字のうち右上に「’」が付加された数字は双方向参照ピクチャのうち、片方の情報のみしか取得できていない状態であることを示す。【０１０３】
次にＰ１を用いてＢ３、Ｂ４、Ｂ５、Ｂ６、Ｐ２の復号を行う。Ｂ３、Ｂ４については双方向予測に用いるＩ１の情報をすでに取得済みであるため、Ｐ１からの情報を取得した時点で復号が完了する。Ｐ２はＰ１のみを参照しているため、Ｐ１からの情報を取得することで復号できる。Ｂ５、Ｂ６は双方向予測であるためＰ１とＰ２の情報が復号には必要であるが、Ｐ２の復号が完了していないためＢ１、Ｂ２、Ｐ１の復号を行ったときと同様にＰ１から得た情報のみを復号に利用する（順番の番号が「３’」）。このときもＰ１の参照されるマクロブロックを基準として復号処理を行う領域を決定し、順次復号処理を行うことで、参照される復号済みのＰ１のマクロブロックの情報は１回のメモリアクセスですむ（キャッシュミスが発生しないため）。【０１０４】
以下同様に、ＧＯＰ内のすべてのピクチャ（つまりは、ＭＰＥＧデータストリーム）について前記と同様の処理を行うことによって、Ｐピクチャ、Ｂピクチャの復号の際に参照されるマクロブロックを取得するためのメモリアクセスをそれぞれのマクロブロック（参照される側のマクロブロック）について１回のみにすることができる（２回目以降はキャッシュメモリから得ることができるため）。【０１０５】
ＧＯＰのすべてのピクチャ（ＭＰＥＧデータストリーム）について復号処理が完了した後、復号済みのピクチャを順次メインメモリから読み出して、表示装置に転送する。なお、表示装置への転送はＧＯＰのすべてのピクチャの復号を待つ必要はなく、参照される必要がなくなった復号済みのピクチャを順次表示装置に転送してもよい。また、表示装置に表示するためにはフォーマット変換やスキャンコンバートなどの処理が必要になる場合がある。その場合には（一般に）ＣＰＵ１００において上記処理を行った後で表示装置へ転送することになる。【０１０６】
上記の説明から、Ｐ１はＢ１、Ｂ２と同時に復号処理が完了することがわかる。なお、Ｐピクチャ、Ｂピクチャともにイントラマクロブロックの復号タイミングは、参照、あるいは表示のための出力までに完了していればよいものとする。
本発明はあらかじめ参照ＭＢ情報取得部２０２及びソート処理部２０３を用いて、ピクチャ間、マクロブロック間の参照関係を明らかにした後に復号処理を開始しているため、参照されるために読み出されたマクロブロックを復号処理に利用できるピクチャ、マクロブロックの復号を連続して行うことが可能であり、したがって同じデータ（参照されるために読み出された情報）へ連続してアクセスすることになるためキャッシュヒット率を従来方法に比べて向上させることが可能となる。【０１０７】
（３）キャッシュメモリ１０１へのアクセスの具体例
ここでは、キャッシュメモリ１０１へのアクセスについて、図１２及び図１３にて示す具体例を用いて説明する。
図１２および図１３は、ＣＰＵ１００が参照のためにメインメモリ３０から読み出された情報をメインメモリ３０へ再度アクセスすることが必要ないことを説明するための図である。【０１０８】
図１２において参照ピクチャの一部分（４つ分のマクロブロック）が読み出されキャッシュメモリ１０１へと格納される。
このとき、復号処理システム１は、参照ＭＢ情報取得部２０２及びソート処理部２０３を用いることにより、メインメモリ３０から読み出された情報がどのピクチャのどのマクロブロックで利用できるのかをすでに情報として得ているため、この情報を利用するピクチャ、マクロブロックに相当するデータストリーム（あるいは復号途中のピクチャ）をメインメモリ３０から読み出し、それらのデータの復号処理を行う。【０１０９】
これにより、１度読み出された参照ピクチャの一部分（４つ分のマクロブロック）を参照する全てのピクチャに対して用いるので、１度読み出された参照ピクチャの一部分は、その後、復号処理を行うために再度読み出されることはないことが分かる。
図１３は、図１２において説明した内容について、キャッシュメモリ１０１に格納されている情報を繰り返し利用できることを説明するための図である。【０１１０】
上述したように、参照ピクチャの一部分（４つ分のマクロブロック）が読み出されキャッシュメモリ１０１へと格納される。
このとき、復号処理システム１は、参照ＭＢ情報取得部２０２及びソート処理部２０３を用いることにより、メインメモリ３０から読み出された情報がどのピクチャのどのマクロブロックで利用できるのかをすでに情報として得ているため、この情報を利用するピクチャ、マクロブロックに相当するデータストリームあるいは復号途中のピクチャ（ここでは、復号ピクチャ１、２、・・・、ｎとする）をメインメモリ３０から読み出す。復号処理システム１は、キャッシュメモリ１０１に格納された４つ分のマクロブロックを用いて、メインメモリ３０から読み出した復号ピクチャ１、２、・・・、ｎに対する復号処理を行う。【０１１１】
なお、図１２、図１３において、それぞれの復号対象ピクチャの復号中のマクロブロックが利用する参照データはお互いに完全に一致するものではないが、キャッシュメモリに格納されているマクロブロック４つ分の情報から抽出できる情報であることが条件となる。
１．４  変形例
本発明を上記の実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下の場合も本発明に含まれる。【０１１２】
（１）本発明における参照ブロック画像の概念に、参照位置が含まれるマクロブロックを含む４つ分のマクロブロックを含める。
または、参照ブロック画像は、１のマクロブロックからなるとしてもよい。つまり、参照ブロック画像とは、１以上のマクロブロックからなる。
（２）上記第１の実施の形態において、復号処理情報を取得後、復号時の参照に用いる４つ分のマクロブロックをキャッシュメモリに読み出したが、これに限定されない。【０１１３】
復号処理部は、復号処理情報を取得前に、復号時の参照に用いる４つ分のマクロブロックをキャッシュメモリに読み出してもよい。
この場合、復号処理部は、キャッシュメモリに格納された４つ分のマクロブロックを参照することを示す復号処理情報を取得する。
（３）上記第１の実施の形態において、復号時の参照に用いるマクロブロックの個数、つまり、キャッシュメモリに読み出されるマクロブロックの個数は４つとしたが、これに限定されない。【０１１４】
復号時の参照に用いるマクロブロックの個数は、動きベクトルにて特定されるブロックを含むようなサイズとなる数であればよい。
上記第１の実施の形態では、動きベクトルにて特定されるブロックのサイズは、１６画素×１６画素であり、通常のマクロブロックのサイズと同様としたため、動きベクトルにて特定されるブロックを含むためには、復号時の参照に用いるマクロブロックの個数は４つであれば十分であることが分かる。【０１１５】
（４）上記第１の実施の形態では、Ｐピクチャ、Ｂピクチャに含まれるノンイントラマクロブロックの復号後にイントラマクロブロックを復号したが、これに限定されない。
イントラマクロブロックの復号を先に行い、その後、ノンイントラマクロブロックの復号を行ってもよい。
（５）本願は複数の圧縮されたデータストリームの復号処理を並列に行う場合にも有効である。基本的にはデータストリームのＧＯＰを単位としてメインメモリに取り込み、参照関係が閉じたデータ（ピクチャ）の復号を完了させた後、次のＧＯＰ（このＧＯＰは別のデータストリームのＧＯＰでもよいし、同一のＧデータストリームのＧＯＰでもよい）の復号を開始する、という方法をとることで、メインメモリへのアクセス効率を最大限に上げることが可能となる。どのデータストリームのＧＯＰをメインメモリに取り込み、復号処理を行うかは本願では記述しないが、各データストリームのフレームレートや圧縮率などをパラメータとして、再生時に違和感を感じなければどのような順番であってもよい。【０１１６】
（６）上記第１の実施の形態では、簡単のためメインメモリに取り込むＧＯＰはひとつと限定して説明を行ったが、メインメモリの容量によっては複数のＧＯＰをメインメモリに取り込み、これらを並列（あるいは時分割処理によって見かけ上並列に）処理してもよい。この方法は複数のデータストリームを同時に取り扱う際に、有効である。
（７）上記第１の実施の形態では、ＭＰＥＧ形式による動画像を圧縮したデータストリームを用いたが、これに限定されない。ＭＰＥＧ−２／４はもちろん、Ｈ．２６４といった動画像を圧縮したデータストリームを用いてもよい。【０１１７】
また、扱うデータは、動画像に限定されない。動画像でいうピクチャに相当するような所定のデータの集まりの間において参照関係が存在するようなデータストリームについても用いることが可能である（例えば音声データなど）。
（８）上記第１の実施の形態において、復号処理システム１は、復号用半導体装置１０、外部記憶装置２０、メインメモリ３０、及び表示装置４０から構成されるとしたが、これに限定されない。【０１１８】
復号処理システム１に、ＭＰＥＧデータストリームを外部の装置から受け取り、受け取ったＭＰＥＧデータストリームを外部記憶装置２０へ格納する入力装置を追加してもよい。
（９）上記第１の実施の形態において、ピクチャ群選択部２５１の動作の一例として、算出式“Ｋｅｙ”を用いて参照位置を含むマクロブロックのＭＢＡを算出し、算出したＭＢＡが同一となる復号処理情報を１つ以上取得することにより、前記ピクチャ群を選択するとしたが、これに限定されない。【０１１９】
ピクチャ群選択部２５１は、同一の参照ブロック群（キャッシュメモリに格納される４つ分のマクロブロック）を参照して動き補償を用いた復号を行うブロック各々を連続して行うように、復号対象ピクチャの読み出し順序をスケジューリングするような動作であってもよい。
例えば、読み出し順序は、復号対象ピクチャの再生の順序に基づくものである。【０１２０】
このとき、ＭＢ復号処理部２５３は、スケジューリングされた順序に基づいて、ＭＢの復号処理を行う。
（１０）上記第１の実施の形態における復号処理システムは、例えば、圧縮符号化された動画像を復号し、復号した動画像を再生する復号処理装置である。復号処理装置は、具体的には、デジタルテレビやＤＶＤプレーヤー等である。【０１２１】
つまり、上記第１の実施の形態における復号用半導体装置は、復号処理装置に含まれることになる。
（１１）上記第１の実施の形態において、ＭＰＥＧデータストリームの復号処理をソフトウェアで行ったが、これに限定されない。
ＭＰＥＧデータストリームの復号処理は、専用のハードウェアで行ってもよい。【０１２２】
また、アプリケーション部におけるＧＯＰ読出部、参照ＭＢ情報取得部、ソート処理部、及び復号処理部における各動作を専用のハードウェアで行ってもよい。また、これら構成要素の一部を専用のハードウェアで動作するようにしてもよい。
（１２）上記第１の実施の形態において、復号処理情報にＸ座標及びＹ座標を含むとしたが、これに限定されない。【０１２３】
復号処理情報には、Ｘ座標及びＹ座標の代わりに、Ｘ座標及びＹ座標から示されるマクロブロックアドレスが含まれるとしてもよい。
この場合、マクロブロックアドレスは、参照位置テーブルの生成時に算出されてもよいし、ソートテーブルの生成時に算出されてもよい。
または、動きベクトルが示す参照位置を、Ｘ座標及びＹ座標で表す代わりに、マクロブロックアドレスにて表してもよい。【０１２４】
または、参照位置に含まれる情報には、マクロブロックアドレス、及びＸ座標とＹ座標とからなる組の双方を含んでもよい。
（１２）本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。【０１２５】
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ―ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、半導体メモリなど、に記録したものとしてもよい。また、これらの記録媒体に記録されている前記コンピュータプログラム又は前記デジタル信号であるとしてもよい。【０１２６】
また、本発明は、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしてもよい。【０１２７】
また、前記プログラム又は前記デジタル信号を前記記録媒体に記録して移送することにより、又は前記プログラム又は前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
（１３）上記の各装置（復号用半導体装置や復号装置）を構成する構成要素の一部または全部は、１個のシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：大規模集積回路）から構成されているとしてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどを含んで構成されるコンピュータシステムである。前記ＲＡＭには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムＬＳＩは、その機能を達成する。【０１２８】
また、上記の各装置（復号用半導体装置や復号装置）を構成する構成要素の各部は、個別に１チップ化されていても良いし、一部又は全てを含むように１チップ化されてもよい。
また、ここでは、システムＬＳＩとしたが、集積度の違いにより、ＩＣ、ＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。【０１２９】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
（１４）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
１．５  まとめ
現在、汎用的に用いられているＣＰＵでは、例えば、ＣＰＵ内部に設けられる一次キャッシュが数十ＫＢであり、ＣＰＵ外部に設置される二次キャッシュが最大で２ＭＢである。一般にコンシューマ向け機器に搭載されるＣＰＵあるいはマイコンは上記よりもキャッシュメモリの容量は小さく、一次キャッシュが数十ＫＢ、二次キャッシュが数百ＫＢであることが多い。一方、ＭＰＥＧが処理対象としている画像データ（復号済み）は、一般的なＭＰＥＧ−２のプロファイルで圧縮されている場合、１ピクチャあたり７００ＫＢ程度となる。この値は二次キャッシュにはピクチャを一枚から数枚格納することができることを示しているが、今後普及が見込まれているハイビジョン画像については、最悪の場合ピクチャ一枚を格納することが不可能な場合も想定される。また、前述のようにＢピクチャの復号には少なくとも２枚の復号済みピクチャが必要となるので、画像データ一枚のみをキャッシュメモリに格納してももう一枚分のピクチャに関する情報はメインメモリにアクセスしなければならず、従来の方法を用いても復号処理全体の処理速度向上にはつながりにくい。【０１３０】
しかしながら、本発明における復号処理の方法は、キャッシュメモリに読み込まれている情報を参照しているピクチャ、マクロブロックに相当するデータストリームを選択的にメインメモリから読み出し、復号を行っている。参照される情報はすでにキャッシュメモリに格納されており、これに対して連続的にアクセスすることになるので、メインメモリへの複数回同一のデータを取得するためのアクセスは発生しなくなる。したがって、本発明による復号処理の方法を用いることにより、号処理全体の処理速度を向上することができる。【０１３１】
また、従来の復号処理のようにピクチャ毎に復号処理を施す場合、あるピクチャ（例えば、Ｐピクチャ）をＩピクチャを参照して復号した後、別のピクチャ（例えば、Ｂピクチャ）を復号する際には、同じ参照ピクチャ（Ｉピクチャ）に対して、再度メインメモリにアクセスしてデータを取得しなければならない。このとき、アクセスに要する時間は、キャッシュメモリにアクセスしてデータを取得するアクセス時間よりも数倍から数十倍の時間を要することが一般的である。さらにこの間、ＣＰＵはデータが取得できるまで何もできない状態となっており、キャッシュメモリの利用効率が全体のパフォーマンスに及ぼす影響は極めて大きいといえる。【０１３２】
また、特許文献１では、連続したＢピクチャにのみ適用が可能であるため、同じく動き補償処理を必要とするＰピクチャの復号には利用することができない。さらに、一組の連続したＢピクチャの復号処理におけるキャッシュミスの抑制が目的であるため、参照されるピクチャの前後に位置する複数のＢピクチャの組の間では、キャッシュメモリ内のデータの再利用が困難であり、キャッシュヒット率の向上には限界がある。またさらに、近年普及が進んでいるＨ．２６４／ＡＶＣ等のロングＧＯＰを利用する方式においては、動き補償のための参照データの設定方法の自由度が大幅に拡大されたため、特許文献１に記載された方法では必ずしもキャッシュヒット率の向上にはつながらない可能性がある。【０１３３】
しかしながら、本発明にて示すように、同じデータに連続的にアクセスを行うようにアルゴリズムを制御することにより、キャッシュメモリを有効に利用することができるので、キャッシュメモリの利用効率が向上し、復号処理全体のパフォーマンスも向上する。
また、本発明によれば、ＭＰＥＧデータを復号する際のキャッシュミスを抑制し、メインメモリへのアクセス回数を減少させることによって、より高速な復号処理が可能となる。【０１３４】
従来技術では、他のピクチャを参照して復号されるピクチャ（Ｂピクチャ又はＰピクチャ）に対して、１のピクチャ（Ｂピクチャ又はＰピクチャ）の復号が完了するまでそのピクチャに対して復号処理を施している。しかしながら、本発明では、ピクチャ毎に復号処理を施すのではなく、参照ピクチャを参照することにより復号される複数のピクチャ（Ｂピクチャ又はＰピクチャ）に対して交互に復号処理を施すことにより、前記複数のピクチャを復号することができる。【０１３５】
また、本発明は、以下に示す特徴をも含む。
（１）本発明は、キャッシュメモリを内蔵する演算器と、メインメモリによって構成される動画像復号方法であって、前記メインメモリに格納されたＧＯＰに含まれるピクチャの復号処理を開始する前に、前記ＧＯＰに含まれる全ピクチャの動き補償に関する情報をプリフェッチすることを特徴とする。【０１３６】
この構成によると、メインメモリから読み出されたデータが連続してキャッシュメモリを含んだ演算器で使用されるため、演算器内のキャッシュメモリに格納されているデータを利用することが可能となり（キャッシュヒット）、その結果メインメモリへのアクセスが減少することによって、復号処理の効率化、高速化が実現できる。
（２）ここで、上記（１）の動画像復号方法において、前記プリフェッチした動き補償に関する情報は参照ピクチャと動きベクトルであり、前記参照ピクチャおよび前記動きベクトルから動き補償に用いられる画像領域を特定するとしてもよい。【０１３７】
（３）ここで、上記（２）の動画像復号方法において、前記動き補償に用いられる画像領域のサイズと、前記動き補償に用いられる画像領域を参照する前記ＧＯＰに含まれるピクチャの画像領域のサイズは、動き補償処理を行うブロックのサイズであるとしてもよい。
（４）ここで、上記（３）の動画像復号方法において、前記動き補償に用いられる画像領域を含む１つ以上のブロック群からなる参照ブロック領域を設定し、前記参照ブロック領域を参照している前記ＧＯＰに含まれる全ピクチャの前記動き補償を行うブロックをすべて抽出するとしてもよい。【０１３８】
（５）ここで、上記（４）の動画像復号方法において、前記ＧＯＰに含まれるピクチャの復号処理を実行する際に、前記動き補償に用いられる領域を含む１つ以上のブロック群が同一であるような、前記ＧＯＰに含まれる全ピクチャの前記動き補償を行うブロック各々について、これらの復号を連続して行うとしてもよい。
（６）ここで、上記（５）の動画像復号方法において、複数の異なる動画像圧縮データの復号処理を、ＧＯＰを単位として、前記動画像ごとに交互に実行するとしてもよい。【０１３９】
（７）ここで、上記（５）又は（６）の動画像復号方法において、動画像圧縮データを格納する外部記憶装置をさらに備えるとしてもよい。
（８）ここで、上記（５）又は（６）の動画像復号方法において、動画像圧縮データストリームの入力を行うデータ入力装置をさらに備えるとしてもよい。
（９）ここで、上記（５）又は（６）の動画像復号方法において、復号済みの動画像データを表示する表示装置をさらに備えるとしてもよい。【０１４０】
（１０）また、本発明は、動画像圧縮データを復号する復号手段と、前記復号手段に内蔵されるキャッシュメモリ手段と、前記動画像圧縮データを一時的に記憶し、前記復号手段が指定した復号処理の対象となるデータを読み出して前記復号装置に送るメインメモリ手段によって構成される動画像復号装置であって、前記メインメモリ手段に格納されたＧＯＰに含まれる全ピクチャの、動き補償に関する情報として参照ピクチャと動きベクトルを抽出する動き補償情報プリフェッチ手段を備えることを特徴とする。【０１４１】
（１１）ここで、上記（１０）の動画像復号装置において、前記参照ピクチャおよび前記動きベクトルから動き補償を行うブロックと同じサイズの参照画像領域を特定し、前記参照画像領域を含むひとつ以上のブロックからなる参照ブロック領域を参照している前記ＧＯＰに含まれる全ピクチャの前記動き補償を行うブロックをすべて抽出する、参照関係ソート手段をさらに備えるとしてもよい。【０１４２】
（１２）ここで、上記（１１）の動画像復号装置において、前記参照関係ソート手段の抽出結果に従い、前記復号手段における復号処理を、同一の前記参照ブロック領域を参照している前記ＧＯＰに含まれる全ピクチャの前記動き補償を行うブロック各々を連続して行うように、前記メインメモリ手段からの前記動画像圧縮データの読み出し順序をスケジューリングするスケジューリング手段をさらに備えるとしてもよい。
【産業上の利用可能性】
【０１４３】
本発明は、圧縮された動画像を復号する復号用半導体装置を製造、販売する産業において、経営的、つまり反復的かつ継続的に利用されうる。
また、本発明にかかる復号用半導体装置は、ＭＰＥＧ圧縮されたＡＶコンテンツを視聴するデジタルテレビやデジタルビデオプレイヤー等として有用である。またモバイル機器におけるワンセグ放送受像機等の用途にも応用できる。
【図１】
2008038513.tif 000003
【図２】
2008038513.tif 000004
【図３】
2008038513.tif 000005
【図４】
2008038513.tif 000006
【図５】
2008038513.tif 000007
【図６】
2008038513.tif 000008
【図７】
2008038513.tif 000009
【図８】
2008038513.tif 000010
【図９】
2008038513.tif 000011
【図１０】
2008038513.tif 000012
【図１１】
2008038513.tif 000013
【図１２】
2008038513.tif 000014
【図１３】
2008038513.tif 000015
【図１４】
2008038513.tif 000016
【手続補正書】
【提出日】平成20年3月24日(2008.3.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のフレーム画像が予測符号化された符号化列を復号する復号装置であって、
前記符号化列は、複数の符号化フレーム画像を含み、各符号化フレーム画像は、複数の符号化ブロック画像を含み、少なくとも一部の符号化ブロック画像は、ブロック画像が１の参照ブロック画像を参照して予測符号化されるとともに、前記ブロック画像から当該参照ブロック画像への参照を示す参照関係情報を含み、
前記参照関係情報は、参照先のフレーム画像を示す参照フレーム情報及び参照先の参照ブロック画像内における参照位置を示す参照位置情報を含み、
前記復号装置は、
キャッシュメモリと、
前記符号化列を取得する取得手段と、
取得した前記符号化列から複数の参照関係情報を抽出する抽出手段と、
抽出した前記複数の参照関係情報に含まれる前記参照フレーム情報により示される複数の参照先のフレーム画像から、１のフレーム画像を選択し、選択した前記フレーム画像を参照先とする参照フレーム情報を含む複数の参照関係情報それぞれから参照位置情報を抽出し、抽出した参照位置情報からなる参照リストを生成し、選択した前記フレーム画像に含まれる複数の参照ブロック画像それぞれに対して、当該参照ブロック画像を参照する複数の参照元の符号化ブロック画像を特定する特定手段と、
前記参照先のフレーム画像において１の参照ブロック画像を読み出し、読み出した前記参照ブロック画像を前記キャッシュメモリに格納する格納手段と、
前記キャッシュメモリに前記参照ブロック画像そのものが破棄されることなく保持されている間に、前記参照リストを用いて当該参照ブロック画像を参照する複数の符号化ブロック画像を決定し、決定した前記複数の符号化ブロック画像を復号する復号手段とを備え、
前記特定手段は、抽出した参照位置情報にて示される参照位置それぞれから、参照領域が同一の参照ブロック画像に含まれることを示す複数の参照位置情報が同一のグループに属するように、前記参照リスト内の参照位置情報それぞれを並び替えることにより、前記複数の参照ブロック画像それぞれに対して、当該参照ブロック画像を参照する複数の参照元の符号化ブロック画像を特定し、
前記復号手段は、決定した前記複数の符号化ブロック画像を、参照位置情報それぞれが並び替えられた前記参照リストの並びの順番に従って復号する
ことを特徴とする復号装置。
【請求項２】
前記特定手段は、
前記抽出した参照位置情報それぞれに対して、当該参照位置情報を有する参照関係情報が含まれる符号化ブロック画像を含む符号化フレーム画像と当該符号化フレーム画像内における当該符号化ブロック画像の位置とを示す復号位置情報を対応付けて前記参照リストを生成し、生成した前記参照リストから、前記参照ブロック画像内を参照領域とすることを示す前記複数の参照位置情報を取得し、取得した複数の参照位置情報それぞれに対応する復号位置情報を特定することにより、前記複数の符号化ブロック画像を特定する
ことを特徴とする請求項１に記載の復号装置。
【請求項３】
前記復号手段は、
前記参照リストを用いて、前記参照ブロック画像を参照する複数の参照位置情報それぞれに対応する復号位置情報を特定することにより、当該参照ブロック画像を参照する複数の符号化ブロック画像を決定する
ことを特徴とする請求項２に記載の復号装置。
【請求項４】
前記特定手段は、
前記フレーム画像内の全ての参照ブロック画像について、複数の符号化ブロック画像の特定を繰り返す
ことを特徴とする請求項２に記載の復号装置。
【請求項５】
前記特定手段は、
前記参照リストに含まれる複数の参照位置情報にて示される参照位置それぞれから、当該参照位置にて特定される参照領域を含む参照ブロック画像のブロック番号を算出し、算出したブロック番号の順に、前記参照位置情報とそれに対応する復号位置情報とからなる組の並び替えを行う
ことを特徴とする請求項２に記載の復号装置。
【請求項６】
前記参照位置は、フレーム画像における第１軸上の位置を示す第１の位置情報と、前記第１軸と直交する第２軸上の位置を示す第２の位置情報とからなり、
前記ブロック画像特定部は、
前記第１座標と前記第２座標とから示される座標点から、当該座標点を含む参照ブロック画像のブロック番号を算出する
ことを特徴とする請求項５に記載の復号装置。
【請求項７】
前記符号化ブロック画像それぞれは、再生時における再生順序を示す再生情報を含み、
前記特定手段は、前記グループ内において、当該グループに属する複数の参照位置情報が、再生情報にて示される再生順序に従って並ぶように並び替えを行い、
前記復号手段は、
前記特定された複数の符号化ブロック画像それぞれについて、前記参照リストにより、再生情報にて示される再生順序に従って前記特定された複数の符号化ブロック画像それぞれを連続して復号する
ことを特徴とする請求項１に記載の復号装置。
【請求項８】
前記復号装置は、さらに、
前記１のフレーム画像において、前記格納手段及び前記復号手段のそれぞれの動作を、前記特定手段にて特定された複数の符号化ブロック画像毎に繰り返すように制御する制御手段を備え、
前記格納手段は、前記復号手段による前記複数の符号化ブロック画像の復号後、前記制御手段により前記１のフレーム画像から他の参照ブロック画像を取得し、
前記復号手段は、前記複数の符号化ブロック画像の復号後、前記制御手段により前記他の参照ブロック画像を参照先とする複数の符号化ブロック画像を復号し、
前記制御手段は、前記復号手段が前記フレーム画像に含まれる全ての参照ブロック画像が復号処理に用いられるまでの間、前記格納手段及び前記復号手段の動作を繰り返すよう制御する
ことを特徴とする請求項１に記載の復号装置。
【請求項９】
前記符号化列は、他のフレーム画像を参照することなく符号化された少なくとも１のイントラ符号化フレーム画像と、他のフレーム画像を参照して符号化された複数のノンイントラ符号化フレーム画像とを含み、
前記復号手段は、さらに、前記符号化列に対する最初の復号処理として、１のイントラ符号化フレーム画像を復号してフレーム画像を生成し、
前記格納手段、前記復号手段及び前記制御手段は、前記複数のノンイントラ符号化フレーム画像に対する最初の復号として、前記フレーム画像を参照する全てのノンイントラ符号化フレーム画像に対する復号を行う
ことを特徴とする請求項８に記載の復号装置。
【請求項１０】
前記復号装置は、さらに、
メインメモリを備え、
前記取得手段は、取得した前記符号化列を前記メインメモリに格納し、
前記復号手段は、符号化ブロック画像を復号し、その結果を前記メインメモリに格納し、
前記格納手段は、前記参照ブロック画像を前記メインメモリから読み出す
ことを特徴とする請求項９に記載の復号装置。
【請求項１１】
前記キャッシュメモリ、前記取得手段、前記抽出手段、前記特定手段、前記格納手段、及び前記復号手段は、復号用半導体装置を構成する
ことを特徴とする請求項１に記載の復号装置。
【請求項１２】
複数のフレーム画像が予測符号化された符号化列を復号する復号装置で用いられる復号方法であって、
前記符号化列は、複数の符号化フレーム画像を含み、各符号化フレーム画像は、複数の符号化ブロック画像を含み、少なくとも一部の符号化ブロック画像は、ブロック画像が１の参照ブロック画像を参照して予測符号化されるとともに、前記ブロック画像から当該参照ブロック画像への参照を示す参照関係情報を含み、
前記参照関係情報は、参照先のフレーム画像を示す参照フレーム情報及び参照先の参照ブロック画像内における参照位置を示す参照位置情報を含み、
前記復号装置は、
キャッシュメモリを備え、
前記復号方法は、
前記符号化列を取得する取得ステップと、
取得した前記符号化列から複数の参照関係情報を抽出する抽出ステップと、
抽出した前記複数の参照関係情報に含まれる前記参照フレーム情報により示される複数の参照先のフレーム画像から、１のフレーム画像を選択し、選択した前記フレーム画像を参照先とする参照フレーム情報を含む複数の参照関係情報それぞれから参照位置情報を抽出し、抽出した参照位置情報からなる参照リストを生成し、選択した前記フレーム画像に含まれる複数の参照ブロック画像それぞれに対して、当該参照ブロック画像を参照する複数の参照元の符号化ブロック画像を特定する特定ステップと、
前記参照先のフレーム画像において１の参照ブロック画像を読み出し、読み出した前記参照ブロック画像を前記キャッシュメモリに格納する格納ステップと、
前記キャッシュメモリに前記参照ブロック画像そのものが破棄されることなく保持されている間に、前記参照リストを用いて当該参照ブロック画像を参照する複数の符号化ブロック画像を決定し、決定した前記複数の符号化ブロック画像を復号する復号ステップとを含み、
前記特定ステップは、抽出した参照位置情報にて示される参照位置それぞれから、参照領域が同一の参照ブロック画像に含まれることを示す複数の参照位置情報が同一のグループに属するように、前記参照リスト内の参照位置情報それぞれを並び替えることにより、前記複数の参照ブロック画像毎に当該参照ブロック画像を参照する複数の参照元の符号化ブロック画像を特定し、
前記復号ステップは、決定した前記複数の符号化ブロック画像を、参照位置情報それぞれが並び替えられた前記参照リストの並びの順番に従って復号する
ことを特徴とする復号方法。
【請求項１３】
複数のフレーム画像が予測符号化された符号化列を復号する復号装置で用いられる復号プログラムであって、
前記符号化列は、複数の符号化フレーム画像を含み、各符号化フレーム画像は、複数の符号化ブロック画像を含み、少なくとも一部の符号化ブロック画像は、ブロック画像が１の参照ブロック画像を参照して予測符号化されるとともに、前記ブロック画像から当該参照ブロック画像への参照を示す参照関係情報を含み、
前記参照関係情報は、参照先のフレーム画像を示す参照フレーム情報及び参照先の参照ブロック画像内における参照位置を示す参照位置情報を含み、
前記復号装置は、
キャッシュメモリを備え、
前記復号方法は、
前記符号化列を取得する取得ステップと、
取得した前記符号化列から複数の参照関係情報を抽出する抽出ステップと、
抽出した前記複数の参照関係情報に含まれる前記参照フレーム情報により示される複数の参照先のフレーム画像から、１のフレーム画像を選択し、選択した前記フレーム画像を参照先とする参照フレーム情報を含む複数の参照関係情報それぞれから参照位置情報を抽出し、抽出した参照位置情報からなる参照リストを生成し、選択した前記フレーム画像に含まれる複数の参照ブロック画像それぞれに対して、当該参照ブロック画像を参照する複数の参照元の符号化ブロック画像を特定する特定ステップと、
前記参照先のフレーム画像において１の参照ブロック画像を読み出し、読み出した前記参照ブロック画像を前記キャッシュメモリに格納する格納ステップと、
前記キャッシュメモリに前記参照ブロック画像そのものが破棄されることなく保持されている間に、前記参照リストを用いて当該参照ブロック画像を参照する複数の符号化ブロック画像を決定し、決定した前記複数の符号化ブロック画像を復号する復号ステップとを含み、
前記特定ステップは、抽出した参照位置情報にて示される参照位置それぞれから、参照領域が同一の参照ブロック画像に含まれることを示す複数の参照位置情報が同一のグループに属するように、前記参照リスト内の参照位置情報それぞれを並び替えることにより、前記複数の参照ブロック画像毎に当該参照ブロック画像を参照する複数の参照元の符号化ブロック画像を特定し、
前記復号ステップは、決定した前記複数の符号化ブロック画像を、参照位置情報それぞれが並び替えられた前記参照リストの並びの順番に従って復号する
ことを特徴とする復号プログラム。
【請求項１４】
前記復号プログラムは、コンピュータ読み取り可能な記録媒体に記録されている
ことを特徴とする請求項１２に記載の復号用プログラム。
【請求項１５】
複数のフレーム画像が予測符号化された符号化列を復号する復号装置の集積回路であって、
前記符号化列は、複数の符号化フレーム画像を含み、各符号化フレーム画像は、複数の符号化ブロック画像を含み、少なくとも一部の符号化ブロック画像は、ブロック画像が１の参照ブロック画像を参照して予測符号化されるとともに、前記ブロック画像から当該参照ブロック画像への参照を示す参照関係情報を含み、
前記参照関係情報は、参照先のフレーム画像を示す参照フレーム情報及び参照先の参照ブロック画像内における参照位置を示す参照位置情報を含み、
前記集積回路は、
キャッシュメモリと、
前記符号化列を取得する取得手段と、
取得した前記符号化列から複数の参照関係情報を抽出する抽出手段と、
抽出した前記複数の参照関係情報に含まれる前記参照フレーム情報により示される複数の参照先のフレーム画像から、１のフレーム画像を選択し、選択した前記フレーム画像を参照先とする参照フレーム情報を含む複数の参照関係情報それぞれから参照位置情報を抽出し、抽出した参照位置情報からなる参照リストを生成し、選択した前記フレーム画像に含まれる複数の参照ブロック画像それぞれに対して、当該参照ブロック画像を参照する複数の参照元の符号化ブロック画像を特定する特定手段と、
前記参照先のフレーム画像において１の参照ブロック画像を読み出し、読み出した前記参照ブロック画像を前記キャッシュメモリに格納する格納手段と、
前記キャッシュメモリに前記参照ブロック画像そのものが破棄されることなく保持されている間に、前記参照リストを用いて当該参照ブロック画像を参照する複数の符号化ブロック画像を決定し、決定した前記複数の符号化ブロック画像を復号する復号手段とを備え、
前記特定手段は、抽出した参照位置情報にて示される参照位置それぞれから、参照領域が同一の参照ブロック画像に含まれることを示す複数の参照位置情報が同一のグループに属するように、前記参照リスト内の参照位置情報それぞれを並び替えることにより、前記複数の参照ブロック画像毎に当該参照ブロック画像を参照する複数の参照元の符号化ブロック画像を特定し、
前記復号手段は、決定した前記複数の符号化ブロック画像を、参照位置情報それぞれが並び替えられた前記参照リストの並びの順番に従って復号する
ことを特徴とする集積回路。
【手続補正書】
【提出日】平成21年3月3日(2009.3.3)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のフレーム画像が予測符号化された符号化列を復号する復号装置であって、
前記符号化列は、複数の符号化フレーム画像を含み、各符号化フレーム画像は、複数の符号化ブロック画像を含み、少なくとも一部の符号化ブロック画像は、ブロック画像が１の参照ブロック画像を参照して予測符号化されるとともに、前記ブロック画像から当該参照ブロック画像への参照を示す参照関係情報を含み、
前記参照関係情報は、参照先のフレーム画像を示す参照フレーム情報及び参照先の参照ブロック画像内における参照位置を示す参照位置情報を含み、
前記復号装置は、
キャッシュメモリと、
前記符号化列を取得する取得手段と、
取得した前記符号化列から複数の参照関係情報を抽出する抽出手段と、
抽出した前記複数の参照関係情報に含まれる前記参照フレーム情報により示される複数の参照先のフレーム画像から、１のフレーム画像を選択し、選択した前記フレーム画像を参照先とする参照フレーム情報を含む複数の参照関係情報それぞれから参照位置情報を抽出し、抽出した参照位置情報からなる参照リストを生成し、選択した前記フレーム画像に含まれる複数の参照ブロック画像それぞれに対して、当該参照ブロック画像を参照する複数の参照元の符号化ブロック画像を特定する特定手段と、
前記参照先のフレーム画像において１の参照ブロック画像を読み出し、読み出した前記参照ブロック画像を前記キャッシュメモリに格納する格納手段と、
前記キャッシュメモリに前記参照ブロック画像そのものが破棄されることなく保持されている間に、前記参照リストを用いて当該参照ブロック画像を参照する複数の符号化ブロック画像を決定し、決定した前記複数の符号化ブロック画像を復号する復号手段とを備え、
前記特定手段は、抽出した参照位置情報にて示される参照位置それぞれから、参照領域が同一の参照ブロック画像に含まれることを示す複数の参照位置情報が同一のグループに属するように、前記参照リスト内の参照位置情報それぞれを並び替えることにより、前記複数の参照ブロック画像それぞれに対して、当該参照ブロック画像を参照する複数の参照元の符号化ブロック画像を特定し、
前記復号手段は、決定した前記複数の符号化ブロック画像を、参照位置情報それぞれが並び替えられた前記参照リストの並びの順番に従って復号する
ことを特徴とする復号装置。
【請求項２】
前記特定手段は、
前記抽出した参照位置情報それぞれに対して、当該参照位置情報を有する参照関係情報が含まれる符号化ブロック画像を含む符号化フレーム画像と当該符号化フレーム画像内における当該符号化ブロック画像の位置とを示す復号位置情報を対応付けて前記参照リストを生成し、生成した前記参照リストから、前記参照ブロック画像内を参照領域とすることを示す前記複数の参照位置情報を取得し、取得した複数の参照位置情報それぞれに対応する復号位置情報を特定することにより、前記複数の符号化ブロック画像を特定する
ことを特徴とする請求項１に記載の復号装置。
【請求項３】
前記復号手段は、
前記参照リストを用いて、前記参照ブロック画像を参照する複数の参照位置情報それぞれに対応する復号位置情報を特定することにより、当該参照ブロック画像を参照する複数の符号化ブロック画像を決定する
ことを特徴とする請求項２に記載の復号装置。
【請求項４】
前記特定手段は、
前記フレーム画像内の全ての参照ブロック画像について、複数の符号化ブロック画像の特定を繰り返す
ことを特徴とする請求項２に記載の復号装置。
【請求項５】
前記特定手段は、
前記参照リストに含まれる複数の参照位置情報にて示される参照位置それぞれから、当該参照位置にて特定される参照領域を含む参照ブロック画像のブロック番号を算出し、算出したブロック番号の順に、前記参照位置情報とそれに対応する復号位置情報とからなる組の並び替えを行う
ことを特徴とする請求項２に記載の復号装置。
【請求項６】
前記参照位置は、フレーム画像における第１軸上の位置を示す第１の位置情報と、前記第１軸と直交する第２軸上の位置を示す第２の位置情報とからなり、
前記ブロック画像特定部は、
前記第１座標と前記第２座標とから示される座標点から、当該座標点を含む参照ブロック画像のブロック番号を算出する
ことを特徴とする請求項５に記載の復号装置。
【請求項７】
前記符号化ブロック画像それぞれは、再生時における再生順序を示す再生情報を含み、
前記特定手段は、前記グループ内において、当該グループに属する複数の参照位置情報が、再生情報にて示される再生順序に従って並ぶように並び替えを行い、
前記復号手段は、
前記特定された複数の符号化ブロック画像それぞれについて、前記参照リストにより、再生情報にて示される再生順序に従って前記特定された複数の符号化ブロック画像それぞれを連続して復号する
ことを特徴とする請求項１に記載の復号装置。
【請求項８】
前記復号装置は、さらに、
前記１のフレーム画像において、前記格納手段及び前記復号手段のそれぞれの動作を、前記特定手段にて特定された複数の符号化ブロック画像毎に繰り返すように制御する制御手段を備え、
前記格納手段は、前記復号手段による前記複数の符号化ブロック画像の復号後、前記制御手段により前記１のフレーム画像から他の参照ブロック画像を取得し、
前記復号手段は、前記複数の符号化ブロック画像の復号後、前記制御手段により前記他の参照ブロック画像を参照先とする複数の符号化ブロック画像を復号し、
前記制御手段は、前記復号手段が前記フレーム画像に含まれる全ての参照ブロック画像が復号処理に用いられるまでの間、前記格納手段及び前記復号手段の動作を繰り返すよう制御する
ことを特徴とする請求項１に記載の復号装置。
【請求項９】
前記符号化列は、他のフレーム画像を参照することなく符号化された少なくとも１のイントラ符号化フレーム画像と、他のフレーム画像を参照して符号化された複数のノンイントラ符号化フレーム画像とを含み、
前記復号手段は、さらに、前記符号化列に対する最初の復号処理として、１のイントラ符号化フレーム画像を復号してフレーム画像を生成し、
前記格納手段、前記復号手段及び前記制御手段は、前記複数のノンイントラ符号化フレーム画像に対する最初の復号として、前記フレーム画像を参照する全てのノンイントラ符号化フレーム画像に対する復号を行う
ことを特徴とする請求項８に記載の復号装置。
【請求項１０】
前記復号装置は、さらに、
メインメモリを備え、
前記取得手段は、取得した前記符号化列を前記メインメモリに格納し、
前記復号手段は、符号化ブロック画像を復号し、その結果を前記メインメモリに格納し、
前記格納手段は、前記参照ブロック画像を前記メインメモリから読み出す
ことを特徴とする請求項９に記載の復号装置。
【請求項１１】
前記キャッシュメモリ、前記取得手段、前記抽出手段、前記特定手段、前記格納手段、及び前記復号手段は、復号用半導体装置を構成する
ことを特徴とする請求項１に記載の復号装置。
【請求項１２】
複数のフレーム画像が予測符号化された符号化列を復号する復号装置で用いられる復号方法であって、
前記符号化列は、複数の符号化フレーム画像を含み、各符号化フレーム画像は、複数の符号化ブロック画像を含み、少なくとも一部の符号化ブロック画像は、ブロック画像が１の参照ブロック画像を参照して予測符号化されるとともに、前記ブロック画像から当該参照ブロック画像への参照を示す参照関係情報を含み、
前記参照関係情報は、参照先のフレーム画像を示す参照フレーム情報及び参照先の参照ブロック画像内における参照位置を示す参照位置情報を含み、
前記復号装置は、
キャッシュメモリを備え、
前記復号方法は、
前記符号化列を取得する取得ステップと、
取得した前記符号化列から複数の参照関係情報を抽出する抽出ステップと、
抽出した前記複数の参照関係情報に含まれる前記参照フレーム情報により示される複数の参照先のフレーム画像から、１のフレーム画像を選択し、選択した前記フレーム画像を参照先とする参照フレーム情報を含む複数の参照関係情報それぞれから参照位置情報を抽出し、抽出した参照位置情報からなる参照リストを生成し、選択した前記フレーム画像に含まれる複数の参照ブロック画像それぞれに対して、当該参照ブロック画像を参照する複数の参照元の符号化ブロック画像を特定する特定ステップと、
前記参照先のフレーム画像において１の参照ブロック画像を読み出し、読み出した前記参照ブロック画像を前記キャッシュメモリに格納する格納ステップと、
前記キャッシュメモリに前記参照ブロック画像そのものが破棄されることなく保持されている間に、前記参照リストを用いて当該参照ブロック画像を参照する複数の符号化ブロック画像を決定し、決定した前記複数の符号化ブロック画像を復号する復号ステップとを含み、
前記特定ステップは、抽出した参照位置情報にて示される参照位置それぞれから、参照領域が同一の参照ブロック画像に含まれることを示す複数の参照位置情報が同一のグループに属するように、前記参照リスト内の参照位置情報それぞれを並び替えることにより、前記複数の参照ブロック画像毎に当該参照ブロック画像を参照する複数の参照元の符号化ブロック画像を特定し、
前記復号ステップは、決定した前記複数の符号化ブロック画像を、参照位置情報それぞれが並び替えられた前記参照リストの並びの順番に従って復号する
ことを特徴とする復号方法。
【請求項１３】
複数のフレーム画像が予測符号化された符号化列を復号する復号装置で用いられる復号プログラムであって、
前記符号化列は、複数の符号化フレーム画像を含み、各符号化フレーム画像は、複数の符号化ブロック画像を含み、少なくとも一部の符号化ブロック画像は、ブロック画像が１の参照ブロック画像を参照して予測符号化されるとともに、前記ブロック画像から当該参照ブロック画像への参照を示す参照関係情報を含み、
前記参照関係情報は、参照先のフレーム画像を示す参照フレーム情報及び参照先の参照ブロック画像内における参照位置を示す参照位置情報を含み、
前記復号装置は、
キャッシュメモリを備え、
前記復号方法は、
前記符号化列を取得する取得ステップと、
取得した前記符号化列から複数の参照関係情報を抽出する抽出ステップと、
抽出した前記複数の参照関係情報に含まれる前記参照フレーム情報により示される複数の参照先のフレーム画像から、１のフレーム画像を選択し、選択した前記フレーム画像を参照先とする参照フレーム情報を含む複数の参照関係情報それぞれから参照位置情報を抽出し、抽出した参照位置情報からなる参照リストを生成し、選択した前記フレーム画像に含まれる複数の参照ブロック画像それぞれに対して、当該参照ブロック画像を参照する複数の参照元の符号化ブロック画像を特定する特定ステップと、
前記参照先のフレーム画像において１の参照ブロック画像を読み出し、読み出した前記参照ブロック画像を前記キャッシュメモリに格納する格納ステップと、
前記キャッシュメモリに前記参照ブロック画像そのものが破棄されることなく保持されている間に、前記参照リストを用いて当該参照ブロック画像を参照する複数の符号化ブロック画像を決定し、決定した前記複数の符号化ブロック画像を復号する復号ステップとを含み、
前記特定ステップは、抽出した参照位置情報にて示される参照位置それぞれから、参照領域が同一の参照ブロック画像に含まれることを示す複数の参照位置情報が同一のグループに属するように、前記参照リスト内の参照位置情報それぞれを並び替えることにより、前記複数の参照ブロック画像毎に当該参照ブロック画像を参照する複数の参照元の符号化ブロック画像を特定し、
前記復号ステップは、決定した前記複数の符号化ブロック画像を、参照位置情報それぞれが並び替えられた前記参照リストの並びの順番に従って復号する
ことを特徴とする復号プログラム。
【請求項１４】
前記復号プログラムは、コンピュータ読み取り可能な記録媒体に記録されている
ことを特徴とする請求項１２に記載の復号用プログラム。
【請求項１５】
複数のフレーム画像が予測符号化された符号化列を復号する復号装置の集積回路であって、
前記符号化列は、複数の符号化フレーム画像を含み、各符号化フレーム画像は、複数の符号化ブロック画像を含み、少なくとも一部の符号化ブロック画像は、ブロック画像が１の参照ブロック画像を参照して予測符号化されるとともに、前記ブロック画像から当該参照ブロック画像への参照を示す参照関係情報を含み、
前記参照関係情報は、参照先のフレーム画像を示す参照フレーム情報及び参照先の参照ブロック画像内における参照位置を示す参照位置情報を含み、
前記集積回路は、
キャッシュメモリと、
前記符号化列を取得する取得手段と、
取得した前記符号化列から複数の参照関係情報を抽出する抽出手段と、
抽出した前記複数の参照関係情報に含まれる前記参照フレーム情報により示される複数の参照先のフレーム画像から、１のフレーム画像を選択し、選択した前記フレーム画像を参照先とする参照フレーム情報を含む複数の参照関係情報それぞれから参照位置情報を抽出し、抽出した参照位置情報からなる参照リストを生成し、選択した前記フレーム画像に含まれる複数の参照ブロック画像それぞれに対して、当該参照ブロック画像を参照する複数の参照元の符号化ブロック画像を特定する特定手段と、
前記参照先のフレーム画像において１の参照ブロック画像を読み出し、読み出した前記参照ブロック画像を前記キャッシュメモリに格納する格納手段と、
前記キャッシュメモリに前記参照ブロック画像そのものが破棄されることなく保持されている間に、前記参照リストを用いて当該参照ブロック画像を参照する複数の符号化ブロック画像を決定し、決定した前記複数の符号化ブロック画像を復号する復号手段とを備え、
前記特定手段は、抽出した参照位置情報にて示される参照位置それぞれから、参照領域が同一の参照ブロック画像に含まれることを示す複数の参照位置情報が同一のグループに属するように、前記参照リスト内の参照位置情報それぞれを並び替えることにより、前記複数の参照ブロック画像毎に当該参照ブロック画像を参照する複数の参照元の符号化ブロック画像を特定し、
前記復号手段は、決定した前記複数の符号化ブロック画像を、参照位置情報それぞれが並び替えられた前記参照リストの並びの順番に従って復号する
ことを特徴とする集積回路。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、圧縮符号化された動画データを復号する技術に関し、特にキャッシュ機構を持つ処理ユニットによって信号処理を行う際のメモリアクセス効率の向上の技術に関する。
【背景技術】
【０００２】
動画データを記録したり、また伝送したりする際にそのデータ量を圧縮するための方式としてＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｕｔｒｅ  ｃｏｒｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）と呼ばれる国際標準方式が広く普及している。ＭＰＥＧはＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）向け動画像符号化規格として普及したＭＰＥＧ−１、デジタルテレビやＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）に対応したＭＰＥＧ−２、さらにインターネットや移動体通信で使用されることを想定し低ビットレート化を進めたＭＰＥＧ−４などがある。また近年では圧縮率の更なる向上を図ったＨ．２６４／ＡＶＣ（Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｒｄｉｎｇ）が制定され、これを使用した機器も普及しつつある。
【０００３】
前述のようなＭＰＥＧの規格に準拠して圧縮された画像データの復号には膨大な計算量が必要となる。そのため初期のＭＰＥＧを利用する機器においては、リアルタイム性を保ちながらＭＰＥＧ圧縮データを復号するためには専用のハードウェアを用いることが一般的であった。しかしながら、近年の計算機技術の発展により、専用のハードウェアを必要とせずソフトウェアのみでリアルタイムに復号することが可能となってきている。専用のハードウェアが不要となることによって、様々な機器においてＭＰＥＧデータを利用することが可能となり、その広がりが期待されている。
【０００４】
ＭＰＥＧの復号アルゴリズムはＶＬＤ（Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｄｅｃｏｒｄｉｎｇ）と呼ばれる可変長符号復号処理、逆量子化処理、逆ＤＣＴ（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）処理、および動き補償処理の４つの処理からなる。前述したＭＰＥＧ−１／２／４やＨ．２６４／ＡＶＣなども詳細な処理の違いはあるがほぼ同様のアルゴリズムを利用している。
【０００５】
ＭＰＥＧデータを復号するシステムは、通常、ＨＤＤやＣＤ／ＤＶＤといった外部記憶装置、メインメモリ、ＣＰＵ、及び表示装置から構成されている。外部記憶装置は、ＭＰＥＧデータを格納している。ＣＰＵは、外部記録装置からＭＰＥＧデータを読み出し、読み出したＭＰＥＧデータをメインメモリに一旦格納する。ＣＰＵは、メインメモリに格納したＭＰＥＧデータを、当該ＣＰＵにて動作する復号処理プログラムによって復号し、その復号結果である画像データを再びメインメモリに格納する。ＣＰＵは、メインメモリに格納された画像データを再び読み出し、表示装置に表示するためのフォーマット変換を行い、その結果を表示装置に転送する。表示装置は、受け取った画像を表示する。
【０００６】
図１４は、従来技術において、ＭＰＥＧ方式で復号を行う場合のピクチャ（画像データ）の順序を示した図である。ＭＰＥＧには３つのピクチャタイプが定義されており、それらは、動き補償を行わずそのピクチャ内の情報のみからピクチャを復号することができるＩピクチャ、過去のピクチャの情報を利用してそのピクチャの予測復号処理を行う動き補償処理を必要とするＰピクチャ、過去と未来の双方向の情報を利用してそのピクチャの予測復号処理を行うＢピクチャ、となっている。
【０００７】
図１４（ａ）は外部記録装置上に格納されているピクチャの順番を示した図である。各ピクチャ内に付された番号はそのピクチャの先頭からの順番を示すものであり、ピクチャ下部にはそのピクチャのタイプを示してある。図１４（ａ）において、ピクチャ番号１はＩピクチャであるので他のピクチャの情報を必要とせずに復号が可能である。ピクチャ番号２及び３は、Ｂピクチャであるのでピクチャ番号１のピクチャとピクチャ番号４のピクチャの双方の情報を利用して復号する必要がある。Ｂピクチャは他のピクチャの予測処理には利用されない。ピクチャ番号４はＰピクチャであるのでピクチャ番号１のピクチャの情報を利用して復号する。同様に、ピクチャ番号５および６のピクチャはピクチャ番号４のピクチャとピクチャ番号７のピクチャの情報を利用して、ピクチャ番号７のピクチャはピクチャ番号４のピクチャを利用して、それぞれ復号が行われる。
【０００８】
図１４（ｂ）は前述のピクチャタイプと復号の順番に従って、復号処理順を示した図である。実際に復号処理を行う場合は、最初にピクチャ番号１のＩピクチャが復号される。次に復号済みのピクチャ番号１の画像データを利用してピクチャ番号４のＰピクチャの復号が行われる。続いて復号済みのピクチャ番号１の画像データとピクチャ番号４の画像データを利用して、ピクチャ番号３とピクチャ番号４のＢピクチャの復号が順次行われる。ピクチャ番号６以降も同様にＰピクチャの復号後にＢピクチャの復号が行われる。この復号順序はＭＰＥＧによる圧縮処理を行う順番と同じ順番で行う必要がある。
【０００９】
図１４（ｃ）は復号済みの画像を表示する順番を示したものである。
ＭＰＥＧの復号処理では、メインメモリへのアクセスが頻繁に発生する。通常、上記にて示すシステムでは、メインメモリへのアクセス負荷を軽減するため、キャッシュメモリがＣＰＵに備えられている。キャッシュメモリはＣＰＵ外部に接続されるメインメモリに比べると容量は少ないが、非常に高速にアクセスできるように設計されたメモリである。
【００１０】
例えば、図１４（ｂ）にて示すピクチャ番号４のＰピクチャを復号する場合には、ＣＰＵは、先ず復号する復号対象マクロブロックが有する動きベクトルを用いて、復号処理時に参照するマクロブロック（通常４つ分のマクロブロック）をＩピクチャ（ピクチャ番号「１」）から取得し、キャッシュメモリに格納する。ＣＰＵは、格納したマクロブロックを用いて、復号対象マクロブロックを復号する。次の復号対象マクロブロックを取得し、取得した復号対象マクロブロックが有する動きベクトルを用いて、復号処理時に参照するマクロブロック（通常４つ分のマクロブロック）をＩピクチャ（ピクチャ番号「１」）から取得し、キャッシュメモリに格納し、復号処理を行う。このとき、既に格納されていた４つ分のマクロブロックはキャッシュメモリからは消去されている。ＣＰＵは、この動作をＰピクチャも全てのマクロブロックの復号が完了するまで繰り返す。Ｐピクチャの復号が完了すると、Ｂピクチャの復号を行うが、この場合も基本的には、上記と同様の動作を繰り返す。なお、この場合、参照するピクチャは、Ｉピクチャ及びＰピクチャである。
【００１１】
また、Ｐピクチャ、Ｂピクチャの復号のために参照されるマクロブロックは、通常一枚のピクチャの復号には一回のみしか使用されないことが多い。加えて現状のＭＰＥＧデータの復号は復号対象のピクチャを一枚ごと順次処理していく方法が一般的である。したがって、キャッシュメモリに読み込まれた参照ピクチャのデータは連続してアクセスされる確率は非常に低くなり再利用されることなく破棄されるため、キャッシュメモリの利用効率は大変悪いものとなってしまっている。
【００１２】
ＭＰＥＧデータの復号方法においては、動き補償処理において参照するすべてのマクロブロック（参照される復号済みのピクチャ全体）をキャッシュメモリに格納しておくことができないため、同じデータ（参照されるマクロブロック）を何度もメインメモリから読み込まなければならなくなり、復号処理のパフォーマンスの低下の要因となっていた。
上記課題を解決するものとして特許文献１には、連続するＢピクチャの類似性を利用して、キャッシュメモリ内のデータを有効活用し、復号処理の速度低下を抑制する方法が開示されている。開示されている方法においては、あるピクチャの復号処理を行う際にそのピクチャがＢピクチャであり、かつその次のピクチャもＢピクチャであるならば、１番目のピクチャの１マクロブロック分の復号処理と２番目のピクチャの１マクロブロック分の復号処理とを交互に繰り返すことで、隣接する２ピクチャの復号処理を同時に行うことが特徴とされている（１マクロブロックを交互に復号するのではなく、一定数マクロブロック分の復号処理を交互に繰り返してもよい）。すなわち、上記特許文献１においては、隣接するピクチャがともにＢピクチャである場合、その２ピクチャの復号処理をひとつあるいは複数のマクロブロック単位で交互に行うため、隣接するピクチャの同じ位置にあるマクロブロックの復号処理が連続して行われることになるため、動き補償処理においてキャッシュミスが発生する確率を低くすることができる。この方法は隣接するピクチャの同じ位置にあるマクロブロックにおける動き補償処理は、参照されるピクチャの近い位置にある領域（マクロブロック）を利用することが多い、という性質を利用したものである。
【特許文献１】特許第３３２２２３３号明細書
【非特許文献１】ＩＴＵ−Ｔ  Ｒｅｃ．Ｈ．２６４    ＩＳＯ／ＩＥＣ  １４４９６−１０  ＡＶＣ  Ｊｏｉｎｔ  Ｆｉｎａｌ  Ｃｏｍｍｉｔｔｅｅ  Ｄｒａｆｔ  ｏｆ  Ｊｏｉｎｔ  Ｖｉｄｅｏ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  （２００２−８−１０）（Ｐ５４  ８．３．６．３  Ｄｅｆａｕｌｔ  ｉｎｄｅｘ  ｏｒｄｅｒｓ、  Ｐ５６  ８．３．６．４  Ｃｈａｎｇｉｎｇ  ｔｈｅ  ｄｅｆａｕｌｔ  ｉｎｄｅｘ  ｏｒｄｅｒｓ）
【発明の開示】
【発明が解決しようとする課題】
【００１３】
上記にて示す技術は、連続する２つのＢピクチャ（例えば、図１４（ｃ）におけるＢ２、Ｂ３）の復号処理においては同じデータ（参照されるマクロブロック）を何度もメインメモリから読み込む必要が無いため、復号処理のパフォーマンスの向上には有効である。ここで、Ｂ２、Ｂ３それぞれは、ピクチャ番号が２、３であるＢピクチャを示す。
しかしながら、特許文献１にて開示されている技術は、Ｂ２、Ｂ３が必ず表示順序（時間順序）で直前前方１枚（図１４（ｃ）ではＩ１）と直後後方１枚（図１４（ｃ）ではＰ４）とを参照して復号される符号化列である場合には有効であるが、例えば、非特許文献１にて規定されるＨ．２６４／ＭＰＥＧ４ＡＶＣのように、マクロブロック単位で前方の参照ピクチャを指定できる符号化列には対応できない。ここで、Ｉ１は、ピクチャ番号が１であるＩピクチャを示し、Ｐ４は、ピクチャ番号が４であるＰピクチャを示す。
【００１４】
また、ピクチャ単位でみても参照関係が復号順で直前に復号されたピクチャ（Ｐ４）を参照するとは限らない符号化列にも対応できない。
具体的には、直前のＰピクチャ（Ｐ４）に、連続（隣接）する２枚のＢピクチャ（Ｂ２、Ｂ３）のみならず、更に、復号順で連続しない他のピクチャ（例えば、図１４（ｃ）におけるＢ５、Ｂ６）中の所定のマクロブロックが前記同じデータを参照して復号を行う符号化列の場合には、当該他のピクチャを復号する際に前記同じデータを再度メインメモリから読み出す必要があり、復号処理のパフォーマンスは向上されないという問題がある。
【００１５】
そこで、本発明は、復号対象ピクチャ内で参照するピクチャがスライス単位やマクロブロック単位に指定できる符号化列である場合、または／及び、復号順で連続しないピクチャが同一の参照データを利用する場合においても、キャッシュヒット率を向上することのできる復号装置、復号方法、復号プログラム及び集積回路を提供することを目的とする。
【課題を解決するための手段】
【００１６】
上記目的を達成するために、本発明は、複数のフレーム画像が予測符号化された符号化列を復号する復号装置であって、前記符号化列は、複数の符号化フレーム画像を含み、各符号化フレーム画像は、複数の符号化ブロック画像を含み、少なくとも一部の符号化ブロック画像は、ブロック画像が１の参照ブロック画像を参照して予測符号化されるとともに、前記ブロック画像から当該参照ブロック画像への参照を示す参照関係情報を含み、前記復号装置は、キャッシュメモリと、前記符号化列を取得する取得手段と、取得した前記符号化列から複数の参照関係情報を抽出する抽出手段と、１の参照ブロック画像を選択し、選択した前記参照ブロック画像について、抽出された前記複数の参照関係情報を用いて、当該参照ブロック画像から逆にたどって複数の参照元の符号化ブロック画像を特定する特定手段と、前記参照ブロック画像を読み出し、読み出した前記参照ブロック画像を前記キャッシュメモリに格納する格納手段と、前記キャッシュメモリに前記参照ブロック画像そのものが破棄されることなく保持されている間に、当該参照ブロック画像を参照して、特定された前記複数の符号化ブロック画像を復号する復号手段とを備えることを特徴とする。
【発明の効果】
【００１７】
上記の構成によると、復号装置は、参照により復号される符号化ブロック画像毎に取得した参照関係情報それぞれを用いて、１の参照ロブロック画像を参照して復号される複数の符号化ブロック画像を特定し、前記参照ブロック画像をキャッシュメモリに格納して、前記キャッシュメモリに格納した参照ブロック画像を参照して復号される複数の符号化ブロック画像を連続して復号する。これにより、復号装置は、同一の参照ブロック画像を参照する複数の符号化ブロック画像を復号する度に、前記参照ブロック画像を読み出して格納する必要がないので、復号対象ピクチャ内で参照するピクチャがスライス単位やマクロブロック単位に指定できる符号化列である場合、または／及び、復号順で連続しないピクチャが同一の参照データを利用する場合に関わらずキャッシュヒット率を向上することができる。
【００１８】
特に、Ｈ．２６４／ＭＰＥＧ４ＡＶＣのように連続しないピクチャ間で、参照／被参照関係が存在する場合において、上記の効果を顕著に有する。また、１つのＧＯＰ（Ｇｒｏｕｐ  Ｏｆ  Ｐｉｃｔｕｒｅ）に含まれるピクチャの数が多い（１５枚より多いピクチャ数を含むＬｏｎｇＧＯＰ）のような符号化列において、連続しないピクチャ（遠方ピクチャ）が同じデータを参照して、当該遠方ピクチャ内の所定のマクロブロックの復号を行う符号化列である場合においても同様の効果を挙げることが可能である。
【００１９】
ここで、前記参照関係情報は、参照先のフレーム画像を示す参照フレーム情報を含み、前記特定手段は、前記複数の参照関係情報に含まれる前記参照フレーム情報により示される複数の参照先のフレーム画像から、１のフレーム画像を選択し、選択した前記フレーム画像から前記参照ブロック画像を選択するとしてもよい。
この構成によると、復号装置は、取得した参照関係情報それぞれに含まれる参照フレーム情報を用いることにより、参照される１のフレーム画像に含まれる参照ブロック画像を決定し、決定した参照ブロック画像を参照して復号される複数の符号化ブロック画像を特定することができる。
【００２０】
ここで、前記参照関係情報は、参照先の参照ブロック画像内における参照位置を示す参照位置情報を含み、前記特定手段は、選択した前記フレーム画像に対して、当該フレーム画像を参照先とする参照フレーム情報を含む複数の参照関係情報それぞれから参照位置情報を抽出し、抽出した複数の参照位置情報からなる参照リストを生成し、生成した前記参照リストから、前記参照ブロック画像内を参照位置とする参照位置情報に対応する前記複数の符号化ブロック画像を特定するとしてもよい。
【００２１】
この構成によると、復号装置は、取得した参照関係情報それぞれに含まれる参照位置情報を用いることにより、決定した参照ブロック画像を参照する複数の符号化ブロック画像を容易に特定することができる。
ここで、前記特定手段は、前記抽出した参照位置情報それぞれに対して、当該参照位置情報を有する参照関係情報が含まれる符号化ブロック画像を含む符号化フレーム画像と当該符号化フレーム画像内における当該符号化ブロック画像の位置とを示す復号位置情報を対応付けて前記参照リストを生成し、生成した前記参照リストから、前記参照ブロック画像内を参照領域とすることを示す前記複数の参照位置情報を取得し、取得した複数の参照位置情報それぞれに対応する復号位置情報を特定することにより、前記複数の符号化ブロック画像を特定するとしてもよい。
【００２２】
この構成によると、復号装置は、参照リストを用いて、決定した参照ブロック画像を参照する複数の復号位置情報を特定することで、複数の符号化ブロック画像を容易に特定することができる。
ここで、前記復号手段は、前記特定手段にて特定された復号位置情報それぞれにより示される符号化ブロック画像それぞれを順次復号するとしてもよい。
【００２３】
この構成によると、復号装置は、特定された複数の復号位置情報を用いることにより、復号先を容易に特定することができる。
ここで、前記特定手段は、前記フレーム画像内の全ての参照ブロック画像について、複数の符号化ブロック画像の特定を繰り返すとしてもよい。
この構成によると、復号装置は、１のフレーム画像において、当該フレーム画像に含まれる参照ブロック画像それぞれに対して、当該参照ブロック画像を参照する複数の符号化ブロック画像を特定することができる。
【００２４】
ここで、前記特定手段は、前記参照リストに含まれる参照位置情報それぞれについて、参照領域が同一の参照ブロック画像に含まれることを示す複数の参照位置情報が同一のグループに属するように分類するとしてもよい。
この構成によると、復号装置は、参照リスト内の並び替えを行うことにより、前記複数の符号化ブロック画像の特定を容易に行うことができる。
【００２５】
ここで、前記特定手段は、前記参照リストに含まれる複数の参照位置情報にて示される参照位置それぞれから、当該参照位置にて特定される参照領域を含む参照ブロック画像のブロック番号を算出し、算出したブロック番号の順に、前記参照位置情報とそれに対応する復号位置情報とからなる組の並び替えを行うとしてもよい。
この構成によると、復号装置は、算出された複数の開始位置を用いることにより、前記参照リストの並び替えを容易に行うことができる。
【００２６】
ここで、前記参照位置は、フレーム画像における第１軸上の位置を示す第１の位置情報と、前記第１軸と直交する第２軸上の位置を示す第２の位置情報とからなり、前記ブロック画像特定部は、前記第１座標と前記第２座標とから示される座標点から、当該座標点を含む参照ブロック画像のブロック番号を算出するとしてもよい。
この構成によると、復号装置は、フレーム画像上における座標（第１の位置情報と第２の位置情報とからなる組）として与えられた位置情報から参照ブロック画像の開始位置を特定することができる。
【００２７】
ここで、前記復号手段は、前記参照ブロック画像を参照して、前記特定された複数の符号化ブロック画像を連続して復号するとしてもよい。
この構成によると、復号装置は、制御手段により、キャッシュメモリに格納された参照ブロック画像を用いて、特定された複数の符号化ブロック画像を連続して復号することができる。つまり、復号装置は、参照ブロック画像を１回読み出すだけで、読み出した参照ブロック画像を参照する全ての符号化ブロック画像を復号することができる。
【００２８】
ここで、前記符号化ブロック画像それぞれは、再生時における再生順序を示す再生情報を含み、前記復号手段は、前記特定された複数の符号化ブロック画像それぞれについて、再生情報にて示される再生順序に基づいて、前記特定された複数の符号化ブロック画像それぞれを復号するとしてもよい。
この構成によると、復号装置は、前記特定手段が特定した複数の符号化ブロック画像それぞれを、読み出し順序に基づいて復号することができる。
【００２９】
ここで、前記復号装置は、さらに、前記復号された１のフレーム画像において、前記格納手段及び前記復号手段のそれぞれの動作を、前記特定手段にて特定された複数の符号化ブロック画像毎に繰り返すように制御する制御手段を備え、前記格納手段は、前記復号手段による前記複数の符号化ブロック画像の復号後、前記制御手段により前記１のフレーム画像から他の参照ブロック画像を取得し、前記復号手段は、前記複数の符号化ブロック画像の復号後、前記制御手段により前記他の参照ブロック画像を参照先とする複数の符号化ブロック画像を復号し、前記制御手段は、前記復号手段が前記フレーム画像に含まれる全ての参照ブロック画像が復号処理に用いられるまでの間、前記格納手段及び前記復号手段の動作を繰り返すよう制御するとしてもよい。
【００３０】
この構成によると、復号装置は、１のフレーム画像を参照する参照する全ての符号化ブロック画像を、前記フレーム画像に含まれる１以上の参照ブロック画像毎に、復号することができる。これにより、復号装置は、キャッシュメモリ内のデータ（参照ブロック画像）を効率良く利用することができる。
ここで、前記符号化列は、他のフレーム画像を参照することなく符号化された少なくとも１のイントラ符号化フレーム画像と、他のフレーム画像を参照して符号化された複数のノンイントラ符号化フレーム画像とを含み、前記復号手段は、さらに、前記符号化列に対する最初の復号処理として、１のイントラ符号化フレーム画像を復号してフレーム画像を生成し、前記格納手段、前記復号手段及び前記制御手段は、前記複数のノンイントラ符号化フレーム画像に対する最初の復号として、前記フレーム画像を参照する全てのノンイントラ符号化フレーム画像に対する復号を行うとしてもよい。
【００３１】
この構成によると、復号装置は、最初にイントラ符号化フレーム画像を復号することにより、当該イントラ符号化フレーム画像から復号されたフレーム画像を参照する符号化ブロック画像を復号して、当該フレーム画像を参照する符号化フレーム画像を復号することができる。
【発明を実施するための最良の形態】
【００３２】
１．第１の実施の形態
本発明に係る第１の実施の形態としての復号処理システム１について説明する。
復号処理システム１は、図１に示すように、復号用半導体装置１０、外部記憶装置２０、メインメモリ３０、及び表示装置４０から構成されている。
ここで、復号処理システム１は、具体的には、圧縮符号化された画像を復号する復号装置である。表示装置４０は、上述したように、復号装置に組み込まれていてもよいし、または、表示装置４０は、復号装置とは個別の装置であり、専用線により復号装置と接続されていてもよい。また、外部記憶装置２０についても同様に、復号装置に組み込まれていてもよいし、または、復号装置とは個別の装置として専用線により復号装置と接続されていてもよい。
外部記憶装置２０は、ＭＰＥＧデータを格納している。外部記憶装置２０は、具体的には、ＨＤＤやＣＤ／ＤＶＤなどである。
【００３３】
メインメモリ３０は、ＭＰＥＧデータの復号を行う際に、復号対象のＭＰＥＧデータ及び復号された画像データを格納する領域を有している。
復号用半導体装置１０は、ＭＰＥＧデータの復号処理プログラムに基づいて、外部記憶装置２０に格納されているＭＰＥＧデータを復号し、画像データを生成する。また、復号用半導体装置１０は、復号した画像データに対して、表示装置４０にて表示ができるようにフォーマット変換を行い、その結果を表示装置４０へ転送する。
【００３４】
表示装置４０は、フォーマット変換された画像を表示する。
本発明におけるＭＰＥＧデータストリームの復号処理では、少なくとも１ＧＯＰ（Ｇｒｏｕｐ  Ｏｆ  Ｐｉｃｔｕｒｅ：ＧＯＰヘッダ間に属する所定枚数のピクチャの集合）以上のピクチャ群を含むことが可能であって、所定単位を構成する全てのピクチャが同一所定単位に含まれるピクチャ群のみを参照して復号できるピクチャの集合を、本発明におけるＧＯＰ単位として扱う。
【００３５】
ここで、図２を用いて、本発明におけるＧＯＰ単位を説明する。図２は、ピクチャの並びを上から順に、符号化順序、復号／伝送順序、及び表示順序を示したものである。復号／伝送順序にて示される３種類の破線は、参照元のピクチャから参照先のピクチャへの方向を示している。例えば、Ｐ１（または、Ｐ１中の所定のマクロブロック）は、Ｉ１の所定画素値を参照して復号を行うことを示している。また、例えば、Ｂ３、Ｂ４は、復号／伝送の順番ではＩ１及びＰ１の後方にあるが、符号化の順番、及び表示の順番ではＩ１の後方かつＰ１の前方にあるので、これらのピクチャ（または、これらピクチャ中の所定のマクロブロック）は、前方及び後方の双方向の参照を行うことにより復号を行うことを示している。
【００３６】
ここで、本発明にて定義するＧＯＰは、図２にて示す従来のＧＯＰ単位であるＧＯＰ（ｉ）、ＧＯＰ（ｉ＋１）及びＧＯＰ（ｉ＋２）において、表示順序にて示すハッチング部分（ＧＯＰ（ｉ＋１）及びＧＯＰ（ｉ＋２））を示す。
したがって、一つ前あるいは一つ後ろのＧＯＰに含まれる、例えばＢピクチャから参照されるために、ＧＯＰ（ｉ＋２）のＢピクチャがＧＯＰ（ｉ＋１）のＰピクチャを参照している場合には、ＧＯＰ（ｉ＋１）とＧＯＰ（ｉ＋２）とは、本発明における１つのＧＯＰの単位となる。ここで、ＧＯＰ（ｉ＋２）のように直前のＧＯＰ中のピクチャを参照して復号する、若しくは直後のＧＯＰ中のピクチャを参照して復号するピクチャを含むＧＯＰをＯｐｅｎＧＯＰと呼ぶ。
【００３７】
また逆に、ＧＯＰ（ｉ）と、ＧＯＰ（ｉ＋１）とでは、参照関係がないので、ＧＯＰ（ｉ）と、ＧＯＰ（ｉ＋１）とは、本発明における１つのＧＯＰを構成しない。
なお、本発明では、図２の復号／伝送順序にて示すＧＯＰ（ｉ＋１）中のピクチャＰｎのように、直近のピクチャＰ２を超えて、遠方のピクチャＰ１を参照して復号されるようなピクチャを含む符号化列も復号処理の対象として含む。
【００３８】
ここで、ＭＰＥＧデータストリームのデータ構造の一例について説明する。なお、以降において、マクロブロックを、単にＭＢと表記する場合がある。
ＭＰＥＧデータストリームＤ１００は、図３に示すように、フレーム種別Ｄ１０１、マクロブロック情報（ＭＢ０）Ｄ１１０、マクロブロック情報（ＭＢ１）Ｄ１１０ａ、マクロブロック情報（ＭＢ２）Ｄ１１０ｂ、・・・、マクロブロック情報（ＭＢｎ）Ｄ１１０ｎ、・・・から構成されている。フレーム種別Ｄ１０１、マクロブロック情報（ＭＢ０）Ｄ１１０、Ｄ１１０ａ、Ｄ１１０ｂ、・・・、Ｄ１１０ｎ、・・・は、符号化されている。
【００３９】
フレーム種別Ｄ１０１は、ＭＰＥＧデータストリームＤ１００のフレーム（Ｉピクチャ、Ｂピクチャ、Ｐピクチャ）を識別する情報である。
また、マクロブロック情報（ＭＢ０）Ｄ１１０は、動きベクトル情報Ｄ１２０及び差分情報Ｄ１２１から構成されている。動きベクトル情報Ｄ１２０は、復号処理時に参照するピクチャのマクロブロック内の位置を示す情報であり、ピクチャのフレームに対して水平方向の位置を示すＸ座標、及び垂直方向の位置を示すＹ座標にて示されている。差分情報は、他のピクチャを参照することなく復号するために必要な情報である。つまり、復号対象のマクロブロックにおいて、差分情報のみを用いて復号を行うと、参照すべき画像データを除く他の画像データからなるピクチャが生成される。
【００４０】
マクロブロックは、通常１６画素×１６画素からなる。また、通常、動きベクトルを用いた復号処理では、動きベクトル情報にて示された位置から１６画素×１６画素分のマクロブロックが用いられる。
なお、マクロブロック情報（ＭＢ１）Ｄ１１０ａ、マクロブロック情報（ＭＢ２）Ｄ１１０ｂ、・・・、マクロブロック情報（ＭＢｎ）Ｄ１１０ｎのデータ構造については、マクロブロック情報（ＭＢ０）Ｄ１１０と同様であるので、ここでの説明は省略する。
【００４１】
１．１  復号用半導体装置１０の構成
復号用半導体装置１０は、図１に示すように、ＣＰＵ１００とアプリケーション部２００とから構成されている。
（１）ＣＰＵ１００
ＣＰＵ１００は、図１に示すように、キャッシュメモリ１０１を有している。キャッシュメモリ１０１は、メインメモリ３０に比べると容量は少ないが、非常に高速にアクセスできるように設計されたメモリである。
【００４２】
ＣＰＵ１００はコンピュータシステムを構成しており、アプリケーション部２００に格納されたプログラムを読み込み、読み込んだプログラムとハードウェア資源とが協働することにより機能を達成する。
ＣＰＵ１００は、ＭＰＥＧデータの復号時に、外部記憶装置２０から、ＧＯＰ単位に１つ以上のＭＰＥＧデータを読み出し、読み出したＧＯＰに含まれる１つ以上のＭＰＥＧデータをメインメモリ３０に格納する。
【００４３】
ＣＰＵ１００は、メインメモリ３０に格納されているＭＰＥＧデータを読み出し、読み出したデータの復号を行い、復号した画像データをメインメモリ３０に格納する。
ＣＰＵ１００は、復号時に参照されるデータをメインメモリ３０から読み出し、読み出したデータを、キャッシュメモリ１０１へ格納する。ここでは、ＣＰＵ１００は、復号対象のピクチャが参照する、つまり動きベクトルで指示されたマクロブロックに相当する領域を含む通常４つ分のマクロブロックをメインメモリ３０から読み出し、読み出した４つ分のマクロブロックをキャッシュメモリ１０１に格納する。なお、以降において、読み出した４つ分のマクロブロックを参照ブロック画像ともいう。
【００４４】
ＣＰＵ１００は、連続して同じデータにアクセスする場合には、アクセスする度にメインメモリ３０からデータを取得するのではなく、ＣＰＵ１００内のキャッシュメモリ１０１に格納されたデータを利用することで、メインメモリ３０へのアクセスを減らし、より高速に処理を行うことが可能となっている（キャッシュヒットという）。ただし、ＣＰＵ１００がアクセスしたデータは次々とキャッシュメモリ１０１に格納されるので、同じデータにアクセスする場合でも、別のデータにアクセスしてから当該データに再度アクセスを試みるとキャッシュメモリ１０１にはすでに存在しない場合がある（キャッシュミスという）。この場合は、ＣＰＵ１００は、再度メインメモリ３０にアクセスしてデータを取得し、取得したデータをキャッシュメモリ１０１へ格納する。
【００４５】
（２）アプリケーション部２００
アプリケーション部２００はアプリケーションプログラムとハードウェアとが協働した具体的手段であり、図１に示すように、ＧＯＰ読出部２０１と、参照ＭＢ情報取得部２０２と、ソート処理部２０３と、復号処理部２０４とを備える。
（２−１）ＧＯＰ読出部２０１
ＧＯＰ読出部２０１は、ＭＰＥＧデータの復号処理開始時、及び復号処理部２０４からＭＰＥＧデータストリームの読み出しを行う旨の読出指示を受け取った場合に、外部記憶装置２０からＭＰＥＧデータストリームを、前述の本発明におけるＧＯＰを単位として読み出し、読み出したＧＯＰをメインメモリ３０へ格納する。
【００４６】
ＧＯＰ読出部２０１は、ＧＯＰの格納が完了すると、格納したＧＯＰに含まれる１以上のピクチャの解析を行う旨を示す解析指示を参照ＭＢ情報取得部２０２へ通知する。
ＧＯＰ読出部２０１は、復号処理部２０４から取得したＧＯＰに対する復号が完了した旨を示すＧＯＰ復号完了通知を受け取ると、未読出のＭＰＥＧデータストリームが存在するか否かを判断する。未読出のＭＰＥＧデータストリームが存在すると判断する場合には、ＧＯＰ読出部２０１は、次のＧＯＰを読出し、上記の動作を行う。存在しないと判断する場合には、ＧＯＰ読出部２０１は、処理を終了する。
【００４７】
（２−２）参照ＭＢ情報取得部２０２
参照ＭＢ情報取得部２０２は、ＧＯＰ読出部２０１から解析指示を受け取ると、以下の動作を行う。
参照ＭＢ情報取得部２０２は、メインメモリ３０に格納されたＧＯＰに含まれる１以上のＭＰＥＧデータストリームのそれぞれに対して、ＭＰＥＧデータストリームのフレーム種別が、Ｉピクチャ、Ｐピクチャ、Ｂピクチャのいずれかを示すかを順次調べる。このとき、通常、フレーム種別は符号化されているので、参照ＭＢ情報取得部２０２は、フレーム種別を復号して解析対象であるＭＰＥＧデータストリームのフレームの種別（Ｉピクチャ、Ｐピクチャ、Ｂピクチャ）を調べる。
【００４８】
解析対象であるＭＰＥＧデータストリームのフレームの種別がＰピクチャ、及びＢピクチャの何れかである場合、参照ＭＢ情報取得部２０２は、解析対象であるＭＰＥＧデータストリーム（以下、「解析対象ピクチャ」という。）に含まれるマクロブロック情報（以下、「解析対象ＭＢ」）ごとに動きベクトル情報を抽出し、抽出した動きベクトルを用いて、参照しているピクチャ（参照ピクチャ）およびそのピクチャにおいて参照される位置（参照位置）を特定する。このとき、通常、動きベクトル情報は符号化されているので、参照ＭＢ情報取得部２０２は、動きベクトル情報を復号して解析対象ＭＢが参照する参照ピクチャ及び参照位置を特定する。なお、解析対象ＭＢが参照する参照ピクチャは、ＭＢ単位に指定されるものであってもよいし、ＭＢが含まれるスライスヘッダに記述された値をもとに導出されるものであってもよい。
【００４９】
参照ピクチャの特定方法は、従来と同様であるので、ここでの説明は省略する。ここで、参照位置の特定も従来と同様に、動きベクトルを用いて参照位置のＸ座標及びＹ座標を特定する。これにより、参照位置を基準とし、復号処理時の参照に用いられる画像領域（参照位置から１６画素×１６画素分のマクロブロック）を特定することができる。このとき、参照ＭＢ情報取得部２０２は、参照ピクチャ毎に、図４（ａ）に示す参照位置情報テーブルＴ１００を生成する。参照位置情報テーブルＴ１００は、ＭＢ番号、Ｘ座標、及びＹ座標からなる組を１以上記憶するための領域を有している。ＭＢ番号は、解析対象ＭＢを識別する番号を示す。Ｘ座標は参照ピクチャにおいて参照位置の水平方向を示し、Ｙ座標は、参照ピクチャにおいて参照位置の垂直方向を示す。また、Ｘ座標及びＹ座標において、「−」は、参照すべき位置がない、つまり、ＭＢ番号にて示される解析対象ＭＢは、参照ピクチャのマクロブロックを参照せずに復号することを示している。以降において、ＭＢ番号、Ｘ座標、及びＹ座標からなる組を参照ＭＢ情報という。つまり、参照ＭＢ情報取得部２０２は、参照ピクチャと、参照位置を特定することにより、参照ピクチャの情報と１以上の参照ＭＢ情報とを取得することができる。
【００５０】
また、参照ＭＢ情報取得部２０２は、解析対象ピクチャがＰピクチャ、及びＢピクチャの何れかである場合、さらに、解析対象ピクチャにおける各解析対象ＭＢ（マクロブロック情報）に含まれる差分情報それぞれに対してインデックスを付加し、解析対象ピクチャ毎に、図４（ｂ）に示すインデックス情報テーブルＴ２００を生成する。インデックス情報テーブルＴ２００は、ＭＢ番号、インデックス情報、及びデータ先頭位置情報からなる組を１以上記憶するための領域を有している。ＭＢ番号は、解析対象ＭＢを識別する番号を示す。インデックス情報は、解析対象ＭＢに含まれる差分情報に付加されたインデックスを示す。データ先頭位置情報は、インデックス情報にて示されるインデックスが付加された差分情報の先頭位置を示す情報である。
【００５１】
参照ＭＢ情報取得部２０２は、ＧＯＰに含まれる全てのＭＰＥＧデータストリームの解析が終了すると、生成した1以上の参照位置情報テーブルのソートを指示するソート指示をソート処理部２０３へ通知する。
なお、解析対象ピクチャがＢピクチャである場合には、参照するピクチャが２つあるので、参照ＭＢ情報取得部２０２は、それぞれの参照ピクチャに対する参照位置情報テーブルを生成する必要がある。つまり、参照ＭＢ情報取得部２０２は、解析対象ピクチャがＢピクチャである場合には、２つの参照位置情報テーブルと、１つのインデックス情報テーブルとを生成することになる。
【００５２】
（２−３）ソート処理部２０３
ソート処理部２０３は、参照ＭＢ情報取得部２０２からソート指示を受け取ると、参照ＭＢ情報取得部２０２が生成した1以上の参照位置情報テーブルに対して、参照位置情報テーブルにて特定された参照ピクチャ毎に、図５にて示すソートテーブルＴ３００を生成する。なお、一例として図５にて示すソートテーブルＴ３００は、参照ピクチャを図２にて示すＩピクチャ“Ｉ１”とするテーブルである。
【００５３】
ソートテーブルＴ３００は、参照ピクチャ、Ｘ座標、Ｙ座標、復号ピクチャ、復号対象ＭＢ、及びインデックス情報からなる組を１以上記憶するための領域を有している。
参照ピクチャは、復号処理時に参照されるピクチャを示す。Ｘ座標は参照ピクチャにおいて参照位置の水平方向を示し、Ｙ座標は、参照ピクチャにおいて参照位置の垂直方向を示す。
【００５４】
復号ピクチャは、参照ピクチャを用いて復号するＭＰＥＧデータストリーム（以下、「復号対象データ」という。）を示す。
復号対象ＭＢは、復号対象データ（つまり、復号対象のＭＰＥＧデータストリーム）に含まれる１以上のマクロブロックのうち復号対象となるマクロブロック情報を示す。例えば、復号対象ＭＢ（ｘ、ｙ）は、復号後のピクチャにおいて水平方向“ｘ”、垂直方向“ｙ”に位置するマクロブロックを示す。ここで、復号対象ＭＢ（ｘ、ｙ）は、対応する復号ピクチャを形成するＭＰＥＧデータストリームに含まれるマクロブロック情報と１対１に対応付けがなされている。例えば、復号対象ＭＢ（０、０）は、マクロブロック情報ＭＢ０と対応付けがなされている。
【００５５】
インデックス情報は、復号処理時に、復号対象ＭＢにて示されるマクロブロック情報に含まれる差分情報に付加されたインデックスを示す。
なお、参照ピクチャ、Ｘ座標、Ｙ座標、復号ピクチャ、復号対象ＭＢ、及びインデックス情報からなる情報を復号処理情報という。
ソート処理部２０３は、ソートテーブルＴ３００の生成時に、“Ｋｅｙ＝ｉｎｔ（Ｙ／１６）×１２０＋ｉｎｔ（Ｘ／１６）”をキーとして、ソートテーブルの情報に対してソートを行う。ここで、Ｘ、Ｙのそれぞれは、復号処理情報に含まれるＸ座標及びＹ座標の値である。
【００５６】
ソート処理部２０３は、参照ピクチャ毎に対するソートテーブルの生成が完了すると、復号処理の行う旨の復号指示を復号処理部２０４へ通知する。
上記にて示す算出式“Ｋｅｙ”は、参照位置を含むマクロブロックのＭＢＡ（Ｍａｃｒｏ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）を算出する演算式である。
ソート処理部２０３は、参照ブロック画像毎に、当該参照ブロック画像を参照先とする復号ピクチャ及びその復号対象ＭＢを1つ以上特定し、ソートにより特定した1つ以上の復号ピクチャ及びその復号対象ＭＢが連続するように並び替えている。ソート処理部２０３は、本発明における特定手段に相当する。
【００５７】
ソートテーブルの生成について、以下に具体的な動作を説明する。
処理（１）：  ソート処理部２０３は、先ず、1以上の参照ピクチャのうち、ソートテーブルが未だ生成されていない１の参照ピクチャを選択する。
処理（２）：  ソート処理部２０３は、選択した１の参照ピクチャに対して、ソート前のソートテーブルを生成する。ソート処理部２０３は、生成したソート前のソートテーブルにおいて、当該ソートテーブル内の復号処理情報に含まれるＸ座標とＹ座標とからなる組それぞれに対して算出式“Ｋｅｙ”を施して、各復号処理情報に含まれる復号ピクチャ及びその復号対象ＭＢそれぞれの参照ブロック画像のＭＢＡを算出する。
【００５８】
処理（３）：  処理（２）にて算出された1つ以上のＭＢＡに対して、ソート処理部２０３は、未だ選択されていない値のうち最小の値を示すＭＢＡを選択、つまりソート処理部２０３は、１つの参照ブロック画像を選択する。ソート処理部２０３は、選択したＭＢＡと同一の値が前記算出式にて算出されるＸ座標とＹ座標とからなる組を含む1以上の復号処理情報を特定する。つまりソート処理部２０３は、決定した参照ブロック画像を参照先とする復号ピクチャとその復号対象ＭＢとからなる１つ以上の組を特定する。
【００５９】
処理（４）：  ソート処理部２０３は、特定した１以上の復号処理情報が連続するようにソートテーブルの並び替えを行う。
処理（５）：  ソート処理部２０３は、処理（３）、（４）を、1以上のＭＢＡそれぞれにて示される全ての値が選択されるまでの間、繰り返して、処理（１）にて選択された参照ピクチャに対するソート後のソートテーブルを生成する。
【００６０】
処理（６）：  ソート処理部は、処理（１）から（５）を繰り返すことにより、全ての参照ピクチャに対するソート後のソートテーブルを生成する。
（２−４）復号処理部２０４
復号処理部２０４は、図６に示すように、復号処理制御部２５０、ピクチャ群選択部２５１、参照ＭＢ読出部２５２、及びＭＢ復号処理部２５３から構成されている。
【００６１】
（復号処理制御部２５０）
復号処理制御部２５０は、ソート処理部２０３から復号指示を受け取ると、メインメモリ３０に格納されているＧＯＰから１のＭＰＥＧデータストリームを取得し、取得したＭＰＥＧデータストリームのフレーム種別がＩピクチャであるか否かを判断する。このとき、通常、フレーム種別は符号化されているので、復号処理制御部２５０は、フレーム種別を復号して取得したＭＰＥＧデータストリームのフレームの種別を調べる。
【００６２】
Ｉピクチャであると判断する場合には、復号処理制御部２５０は、Ｉピクチャの復号を指示するＩピクチャ復号指示をＭＢ復号処理部２５３へ通知する。
Ｉピクチャでないと判断する場合には、復号処理制御部２５０は、取得したＭＰＥＧデータストリームが参照し、且つ復号済のＩピクチャ又はＰピクチャが存在するか否かを判断する。存在すると判断する場合には、復号処理制御部２５０は、参照されるピクチャを決定し、決定した参照ピクチャを取得し、取得した参照ピクチャを参照するピクチャ群の選択を指示する選択指示をピクチャ群選択部２５１へ通知する。
【００６３】
参照され、且つ復号済のＩピクチャ及びＰピクチャが存在しないと判断する場合には、復号処理制御部２５０は、メインメモリ３０に格納されているＧＯＰから未取得である１のＭＰＥＧデータストリームを取得し、上記の動作行う。
復号処理制御部２５０は、ＭＢ復号処理部２５３からＩピクチャの復号が完了した旨を示す第１復号完了通知、又はピクチャ群選択部２５１から参照ピクチャを用いた復号が完了した旨を示す第２復号完了通知を受け取ると、ＧＯＰ内の全てのピクチャの復号が完了したか否かを判断する。復号が完了したと判断する場合には、復号処理制御部２５０は処理を終了し、復号が完了していないと判断する場合には、メインメモリ３０に格納されているＧＯＰから未取得である１のピクチャを取得し、上記の動作行う。
【００６４】
なお、復号処理制御部２５０は、処理の終了時にＧＯＰ復号完了通知をＧＯＰ読出部２０１へ通知する。
ここで、「Ｉピクチャの復号」とは、「フレーム種別がＩピクチャであるＭＰＥＧデータストリームに対する復号」のことをいう。
（ピクチャ群選択部２５１）
ピクチャ群選択部２５１は、選択指示を復号処理制御部２５０から受け取ると、ソート処理部２０３にて生成された１以上のソートテーブルのうち復号処理制御部２５０が取得した参照ピクチャに対するソートテーブルを用いて、参照位置を含むマクロブロックが同一のマクロブロックであり、同一のマクロブロックを含む４つ分のマクロブロックを参照するピクチャ群を選択する。ここで、ピクチャ群とは、メインメモリ３０に格納されているＧＯＰに含まれる１以上のＭＰＥＧデータストリームからなる集合である。例えば、ピクチャ群選択部２５１は、上記にて示す算出式“Ｋｅｙ”を用いて、参照位置を含むマクロブロックのＭＢＡを算出し、算出したＭＢＡが同一となる復号処理情報を１つ以上取得することにより、前記ピクチャ群を選択する。
【００６５】
ピクチャ群選択部２５１は、１つ以上の復号処理情報を取得すると、４つ分のマクロブロックを取得する旨の参照ＭＢ読出指示を参照ＭＢ読出部２５２へ通知する。
ピクチャ群選択部２５１は、ＭＢ復号処理部２５３からマクロブロックの参照により復号処理が完了したことを示す第３復号完了通知を受け取ると、参照ピクチャにおいて、他のマクロブロックを参照するピクチャ群が存在するか否かを判断する。
【００６６】
存在すると判断する場合には、ピクチャ群選択部２５１は、他のマクロブロックを参照するピクチャ群を取得し、上記の動作を行う。
存在しないと判断する場合には、ピクチャ群選択部２５１は、マクロブロックを参照しないで復号を行う旨のイントラＭＢ復号指示をＭＢ復号処理部２５３へ通知する。
以降において、マクロブロックを参照して復号される復号対象のマクロブロックをノンイントラＭＢともいい、また、他のマクロブロックを参照することなく復号される復号対象のマクロブロックをイントラＭＢという場合がある。
【００６７】
ここで、復号処理情報を取得の一例を、図５にて示すソートテーブルＴ３００を用いて以下に示す。
ピクチャ群選択部２５１は、復号処理情報Ｔ３０１に含まれるＸ座標及びＹ座標の各値を用いて、“Ｋｅｙ”を算出する。この場合、Ｋｅｙ＝０となる。このとき、算出されたＫｅｙの値により参照されるマクロブロックの開始番号が決定されていることに注意する。
【００６８】
ピクチャ群選択部２５１は、算出したＫｅｙの値と同一の値が算出されるＸ座標及びＹ座標の各値を含む他の復号処理情報を取得する、この場合、復号処理情報Ｔ３０２、及びＴ３０３が取得されることになる。
これらの動作により、ピクチャ群選択部２５１は、復号処理情報Ｔ３０１、Ｔ３０２、及びＴ３０３を取得することができる。
【００６９】
復号処理情報Ｔ３０１、Ｔ３０２、及びＴ３０３を用いた復号処理が完了すると、ピクチャ群選択部２５１は、次に、復号処理情報Ｔ３０４に含まれるＸ座標及びＹ座標の各値を用いて、“Ｋｅｙ”を算出し、上記動作を行う。
これらの動作をソートテーブルＴ３００に含まれる全ての復号処理情報に対して行うことにより、参照ピクチャ“Ｉ１”を用いた復号処理が完了する。
【００７０】
（参照ＭＢ読出部２５２）
参照ＭＢ読出部２５２は、ピクチャ群選択部２５１から参照ＭＢ読出指示を受け取ると、ピクチャ群選択部２５１が１以上の復号処理情報を取得する際に用いた“Ｋｅｙ”の値にて特定されるマクロブロックのＭＢＡにて示されるマクロブロックを含む４つ分のマクロブロックをメインメモリ３０から読み出し、読み出した４つ分のマクロブロックをキャッシュメモリ１０１に格納する。
【００７１】
参照ＭＢ読出部２５２は、ＭＢの復号を行う旨を示すＭＢ復号指示をＭＢ復号処理部２５３へ通知する。
例えば、１以上の復号処理情報を取得する際に用いた“Ｋｅｙ”の値にて特定されるマクロブロックのＭＢＡ（Ｍａｃｒｏ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）が（ｋ，  ｌ）である場合には、参照ＭＢ読出部２５２は、ＭＢＡが（ｋ，  ｌ）、（ｋ＋１，  ｌ）、（ｋ，  ｌ＋１）、（ｋ＋１，  ｌ＋１）である４つのマクロブロックをメインメモリ３０から読み出し、読み出した４つのマクロブロックをキャッシュメモリ１０１に格納する。
【００７２】
（ＭＢ復号処理部２５３）
ＭＢ復号処理部２５３は、復号処理制御部２５０からＩピクチャ復号指示を受け取ると、復号処理制御部２５０にて取得されたＭＰＥＧデータストリーム（フレーム種別は「Ｉピクチャ」）に含まれる全てのマクロブロック情報に基づいて、各マクロブロック情報に対応するマクロブロックの復号を行う。Ｉピクチャの復号が完了すると、第１復号完了通知を復号処理制御部２５０へ通知する。このとき、復号されたＩピクチャ（画像データ）は、メインメモリ３０に格納されている。ここで、「マクロブロックを復号する」とは、「符号化されたマクロブロックを復号する」ことをいう。また、符号化されたマクロブロックの復号には、２つの方法がある。１つは、動きベクトルと差分情報とを用いた復号であり、もう１つは、差分情報のみを用いた復号である。
【００７３】
ＭＢ復号処理部２５３は、参照ＭＢ読出部２５２からＭＢ復号指示を受け取ると、ピクチャ群選択部２５１にて選択されたピクチャ群において、キャッシュメモリ１０１に格納されている４つ分のＭＢを用いて、ピクチャ群選択部２５１が取得した１以上の復号処理情報にて示される全てのマクロブロックの復号を順次行う。例えば、ピクチャ群選択部２５１が図５にて示す復号処理情報Ｔ３０１、Ｔ３０２、及びＴ３０３を取得した場合、ＭＢ復号処理部２５３は、先ず復号処理情報Ｔ３０１を選択し、選択した復号処理情報Ｔ３０１にて示されるマクロブロック情報を用いて、前記マクロブロック情報に対応するマクロブロックを復号する。次に、ＭＢ復号処理部２５３は、復号処理情報Ｔ３０２を選択し、選択した復号処理情報Ｔ３０２にて示されるマクロブロック情報を用いて、前記マクロブロック情報に対応するマクロブロックを復号する。復号処理情報Ｔ３０２にて示されるマクロブロック情報を用いた復号を行った後、ＭＢ復号処理部２５３は、復号処理情報Ｔ３０３を選択し、選択した復号処理情報Ｔ３０３にて示されるマクロブロック情報を用いて、前記マクロブロック情報に対応するマクロブロックを復号する。
【００７４】
このとき、ＭＢ復号処理部２５３は、選択した復号処理情報に含まれるインデックス情報にて示されるインデックスに対応するデータの先頭位置を特定することにより、復号対象となるマクロブロック情報に含まれる差分情報を取得する。ＭＢ復号処理部２５３は、従来技術と同様に、取得した差分情報（上述したように、符号化されている。）に対して、可変長復号、逆量子化、逆ＤＣＴ、及び動き補償の各処理を施すことにより、マクロブロックの復号を行う。ＭＢ復号処理部２５３は、復号処理情報に含まれるＸ座標及びＹ座標にて示されるマクロブロックをキャッシュメモリ１０１から読み出し、逆ＤＣＴにて復元された画素空間データに、読み出したマクロブロックを加えることにより１つのマクロブロックを復号することができる。
【００７５】
ＭＢ復号処理部２５３は、ピクチャ群選択部２５１が取得した１以上の復号処理情報にて示される全てのマクロブロック情報のそれぞれに対応するマクロブロックの復号が完了すると、第３復号完了通知をピクチャ群選択部２５１へ通知する。
ＭＢ復号処理部２５３は、ピクチャ群選択部２５１からイントラＭＢ復号指示を受け取ると、復号処理制御部２５０にて取得された参照ピクチャを参照する１以上のＭＰＥＧデータストリームにおいて、既に復号に用いたマクロブロック情報を除いて、イントラＭＢを示すマクロブロック情報が存在するか否かを判断する。
【００７６】
イントラＭＢを示すマクロブロック情報が存在すると判断する場合には、ＭＢ復号処理部２５３は、参照ピクチャを参照する１以上のＭＰＥＧデータストリームに含まれる全てのイントラＭＢを復号する。
このとき、ＭＢ復号処理部２５３は、従来技術と同様に、マクロブロック情報に含まれる差分情報に対して、可変長復号、逆量子化、及び逆ＤＣＴの各処理を施すことにより、イントラＭＢの復号を行う。
【００７７】
イントラＭＢを示すマクロブロック情報が存在しないと判断する場合、及び全てのイントラＭＢの復号が完了した場合には、ＭＢ復号処理部２５３は、第２復号完了通知を復号処理制御部２５０へ通知する。
１．２  復号処理システム１の動作
（１）復号用半導体装置１０の動作
ここでは、復号用半導体装置１０の動作について、図７にて示す流れ図を用いて説明する。
【００７８】
ＧＯＰ読出部２０１は、外部記憶装置２０に格納されているＭＰＥＧデータストリームをＧＯＰを単位として読み出し、メインメモリ３０に格納する（ステップＳ５）。
ＧＯＰ読出部２０１は、メインメモリ３０に少なくとも１つのＧＯＰの格納が完了したか否かを判断する（ステップＳ１０）。
完了していないと判断する場合には（ステップＳ１０における「ＮＯ」）、ＧＯＰ読出部２０１は、ステップＳ５に戻る。
【００７９】
完了したと判断する場合には（ステップＳ１０における「ＹＥＳ」）、ＧＯＰ読出部２０１は、解析指示を参照ＭＢ情報取得部２０２へ通知し、参照ＭＢ情報取得部２０２は、ＧＯＰ読出部２０１から解析指示を受け取る。参照ＭＢ情報取得部２０２は、メインメモリ３０に格納されたＧＯＰに含まれる１のＭＰＥＧデータストリームを取得する（ステップＳ１５）。
【００８０】
参照ＭＢ情報取得部２０２は、取得したＭＰＥＧデータストリームのフレーム種別がＰピクチャ又はＢピクチャであるかを判断する。
フレーム種別がＰピクチャ又はＢピクチャであると判断する場合には（ステップＳ２０における「ＹＥＳ」）、参照ＭＢ情報取得部２０２は、取得したＭＰＥＧデータストリームに含まれる１つ以上のマクロブロック情報から参照ＭＢ情報を取得し、取得したＭＰＥＧデータストリームに対する参照位置情報テーブルを生成する（ステップＳ２５）。また、このとき、参照ＭＢ情報取得部２０２は、取得したＭＰＥＧデータストリーム（フレーム種別がＰピクチャ又はＢピクチャ）毎に、インデックス情報テーブルを生成する。
【００８１】
取得したＭＰＥＧデータストリームのフレーム種別がＰピクチャ及びＢピクチャの何れでもない、つまり、Ｉピクチャであると判断する場合には（ステップＳ２０における「ＮＯ」）、又は参照位置情報テーブルの生成後、参照ＭＢ情報取得部２０２は、取得したＭＰＥＧデータストリームがＧＯＰにおける最後のデータであるか否かを判断する（ステップＳ３０）。
【００８２】
最後のデータでないと判断する場合には（ステップＳ３０における「ＮＯ」）、参照ＭＢ情報取得部２０２は、ステップＳ１５に戻る。
最後のデータであると判断する場合には（ステップＳ３０における「ＹＥＳ」）、参照ＭＢ情報取得部２０２はソート指示をソート処理部２０３へ通知し、ソート処理部２０３は参照ＭＢ情報取得部２０２からソート指示を受け取る。ソート処理部２０３は、参照ＭＢ情報取得部２０２が生成した1以上の参照位置情報テーブルに対して、参照位置情報テーブルにて特定された参照ピクチャ毎にソートテーブルを生成することにより、参照されるＭＢについて参照関係をソートする（ステップＳ３５）。
【００８３】
ソート処理部２０３は、参照ピクチャ毎にソートテーブルの生成を完了すると、復号指示を復号処理部２０４へ通知し、復号処理部２０４はソート処理部２０３から復号指示を受け取る。
復号処理部２０４は、ＭＢ復号処理を行い、ＧＯＰに含まれる全てのＭＰＥＧデータストリームの復号を行う（ステップＳ４０）。
【００８４】
復号処理部２０４は、ＭＢ復号処理が終了すると、ＧＯＰ復号完了通知をＧＯＰ読出部２０１へ通知し、ＧＯＰ読出部２０１は復号処理部２０４からＧＯＰ復号完了通知を受け取る。ＧＯＰ読出部２０１は、未読出のＭＰＥＧデータストリームが存在するか否か、つまりＭＰＥＧデータストリームの読み込みが終了したか否かを判断する（ステップＳ４５）。読み込みが終了していないと判断する場合には（ステップＳ４５における「ＮＯ」）、ＧＯＰ読出部２０１は、ステップＳ５に戻る。終了したと判断する場合には（ステップＳ４５における「ＹＥＳ」）、ＧＯＰ読出部２０１は、処理を終了する。
【００８５】
（２）ＭＢ復号処理
ここでは、図７のステップＳ４０にて示すＭＢ復号処理について、図８及び図９にて示す流れ図を用いて説明する。
復号処理制御部２５０は、ソート処理部２０３から復号指示を受け取ると、メインメモリ３０に格納されているＧＯＰから１のＭＰＥＧデータストリームを取得し（ステップＳ１００）、取得したＭＰＥＧデータストリームのフレーム種別がＩピクチャであるか否かを判断する（ステップＳ１０５）。
【００８６】
フレーム種別がＩピクチャであると判断する場合には（ステップＳ１０５における「ＹＥＳ」）、復号処理制御部２５０は、Ｉピクチャ復号指示をＭＢ復号処理部２５３へ通知する。ＭＢ復号処理部２５３は、復号処理制御部２５０からＩピクチャ復号指示を受け取ると、復号処理制御部２５０にて取得されたＭＰＥＧデータストリーム（フレーム種別はＩピクチャ）に含まれるに全てのマクロブロック情報それぞれにマクロブロックの復号を行う（ステップＳ１１０）。
【００８７】
ＭＢ復号処理部２５３は、Ｉピクチャの復号が完了すると、第１復号完了通知を復号処理制御部２５０へ通知する。このとき、復号されたＩピクチャ（画像データ）は、メインメモリ３０に格納されている。
復号処理制御部２５０は、ＭＢ復号処理部２５３から第１復号完了通知を受け取ると、ＧＯＰ内の全てのＭＰＥＧデータストリームの復号が完了したか否かを判断する（ステップＳ１１５）。復号が完了したと判断する場合には（ステップＳ１１５における「ＹＥＳ」）、復号処理制御部２５０は、処理を終了する。復号が完了していないと判断する場合には（ステップＳ１１５における「ＮＯ」）、復号処理制御部２５０は、ステップＳ１００に戻る。なお、復号処理制御部２５０は、処理の終了時にＧＯＰ復号完了通知をＧＯＰ読出部２０１へ通知する。
【００８８】
取得したＭＰＥＧデータストリームのフレーム種別がＩピクチャでないと判断する場合には（ステップＳ１０５における「ＮＯ」）、復号処理制御部２５０は、取得したＭＰＥＧデータストリームが参照し、且つ復号済のＩピクチャ又はＰピクチャが存在するか否かを判断する（ステップＳ１２０）。
存在しないと判断する場合には（ステップＳ１２０における「ＮＯ」）、復号処理制御部２５０は、ステップＳ１００に戻る。
【００８９】
存在すると判断する場合には（ステップＳ１２０における「ＹＥＳ」）、復号処理制御部２５０は、参照されるピクチャを決定し、決定した参照ピクチャを取得する（ステップＳ１２５）。
復号処理制御部２５０は選択指示をピクチャ群選択部２５１へ通知し、ピクチャ群選択部２５１は選択指示を復号処理制御部２５０から受け取る。ピクチャ群選択部２５１は、ソート処理部２０３にて生成された１以上のソートテーブルのうち復号処理制御部２５０が取得した参照ピクチャに対するソートテーブルを用いて、参照位置を含むマクロブロックが同一のマクロブロックであり、同一のマクロブロックを含む４つ分のマクロブロックを参照するピクチャ群を選択する（ステップＳ１３０）。例えば、ピクチャ群選択部２５１は、上記にて示す算出式“Ｋｅｙ”を用いて、参照位置を含むマクロブロックのＭＢＡを算出し、算出したＭＢＡが同一となる復号処理情報を１つ以上取得することにより、前記ピクチャ群を選択する。
【００９０】
ピクチャ群選択部２５１は、１つ以上の復号処理情報を取得すると、参照ＭＢ読出指示を参照ＭＢ読出部２５２へ通知する。参照ＭＢ読出部２５２は、ピクチャ群選択部２５１から参照ＭＢ読出指示を受け取ると、ピクチャ群選択部２５１が１以上の復号処理情報を取得する際に用いた“Ｋｅｙ”の値にて特定されるマクロブロックのＭＢＡにて示されるマクロブロックを含む４つ分のマクロブロックをメインメモリ３０から読み出し、読み出した４つ分のマクロブロックをキャッシュメモリ１０１に格納する（ステップＳ１３５）。
【００９１】
参照ＭＢ読出部２５２は、ＭＢ復号指示をＭＢ復号処理部２５３へ通知する。ＭＢ復号処理部２５３は、参照ＭＢ読出部２５２からＭＢ復号指示を受け取ると、ピクチャ群選択部２５１にて選択されたピクチャ群において、キャッシュメモリ１０１に格納されている４つ分のＭＢを用いて、ピクチャ群選択部２５１が取得した１以上の復号処理情報にて示される全てのマクロブロックの復号を順次行う（ステップＳ１４０）。
【００９２】
ＭＢ復号処理部２５３は、ピクチャ群選択部２５１が取得した１以上の復号処理情報にて示される全てのマクロブロックの復号が完了すると、第３復号完了通知をピクチャ群選択部２５１へ通知する。ピクチャ群選択部２５１は、ＭＢ復号処理部２５３から第３復号完了通知を受け取ると、参照ピクチャにおいて、他のマクロブロックを参照するピクチャ群が存在するか否かを判断、つまり、取得した参照ピクチャを参照する全てのノンイントラMBの復号が完了したか否かを判断する（ステップＳ１４５）。
【００９３】
他のマクロブロックを参照するピクチャ群が存在する、つまり参照ピクチャを参照する全てのノンイントラMBの復号が完了していないと判断する場合には（ステップＳ１４５における「NO」）、ピクチャ群選択部２５１は、ステップＳ１３５に戻り、他のマクロブロックを参照するピクチャ群を取得し、以降の動作を行う。
他のマクロブロックを参照するピクチャ群が存在しない、つまり参照ピクチャを参照する全てのノンイントラMBの復号が完了したと判断する場合には（ステップＳ１４５における「YES」）、ピクチャ群選択部２５１は、イントラＭＢ復号指示をＭＢ復号処理部２５３へ通知する。ＭＢ復号処理部２５３は、ピクチャ群選択部２５１からイントラＭＢ復号指示を受け取ると、復号処理制御部２５０にて取得された参照ピクチャを参照する１以上のＭＰＥＧデータストリームにおいて、既に復号に用いたマクロブロック情報を除いて、イントラＭＢを示すマクロブロック情報が存在するか否かを判断する（ステップＳ１５０）。
【００９４】
イントラＭＢを示すマクロブロック情報が存在すると判断する場合には（ステップＳ１５０における「ＹＥＳ」）、ＭＢ復号処理部２５３は、参照ピクチャを参照する１以上のＭＰＥＧデータストリームに含まれる全てのイントラＭＢを復号する（ステップＳ１５５）。
イントラＭＢを示すマクロブロック情報が存在しないと判断する場合には（ステップＳ１５０における「ＮＯ」）、及びステップＳ１５５の実行後、ＭＢ復号処理部２５３は、第２復号完了通知を復号処理制御部２５０へ通知する。
【００９５】
復号処理制御部２５０は、ＭＢ復号処理部２５３から第２復号完了通知を受け取ると、ステップＳ１１５を実行し、それ以降の動作を行う。
１．３  具体例
（１）参照関係の具体例
ここでは、参照ピクチャと復号対象ピクチャとの参照関係について、図１０に示す具体例を用いて説明する。
【００９６】
図１０に示すように、ピクチャＤ２００は、参照ピクチャであり、Ｉピクチャ又はＰピクチャの何れかである。ピクチャＤ２１０、Ｄ２１１、Ｄ２１２、及びＤ２１３は、復号対象ピクチャであり、Ｂピクチャである。また、Ｄ２１３は、復号対象ピクチャであり、Ｐピクチャである。
ピクチャＤ２００におけるＭＢＡ（Ｍａｃｒｏ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）が（ｋ，  ｌ）、（ｋ＋１，  ｌ）、（ｋ，  ｌ＋１）、（ｋ＋１，  ｌ＋１）である４つのマクロブロックに含まれる領域の情報が、ピクチャＤ２００に先行する２つのピクチャＤ２１０とピクチャＤ２１１、及びピクチャＤ２００に続く３つのピクチャＤ２１２と、ピクチャＤ２１３とピクチャＤ２１４のそれぞれに参照されており、それぞれ（ｍｂ１，  ｎｂ１）、（ｍｂ２，  ｎｂ２）、（ｍｂ３，  ｎｂ３）、（ｍｂ４，  ｎｂ４）、（ｍｐ１，  ｎｐ１）というＭＢＡのマクロブロックの復号に利用される、という情報が、参照ＭＢ情報取得部２０２及びソート処理部２０３を用いることにより得られる。
【００９７】
このように、ソート処理部２０３は、ＧＯＰ内のマクロブロックごとの参照関係を『参照されるマクロブロック』に注目してソートする。この時点では各マクロブロックの具体的な値は求めておく必要はなく、マクロブロック間の参照関係、とくに参照されるマクロブロックから見てどのピクチャのどのマクロブロックに自身の値が参照されるのかが明らかになっていればよい。
【００９８】
（２）復号処理の具体例
ここでは、復号処理の順序について、図１１にて示す具体例を用いて説明する。
図１１は、ひとつのＧＯＰにおける本発明を用いた場合の復号処理の順番を示したものである。
Ｉピクチャ（Ｉ１と記す）の復号は従来と同じ方法である。次に、最初に出現するＰピクチャ（Ｐ１と記す）の復号を行う。この順番も従来と同じであるが、本発明ではＰ１の復号を行うと同時に、Ｉ１とＰ１の情報を用いて復号を行うＢピクチャ（Ｂ３、Ｂ４と記す）の復号も並行して行う点に特長がある。すなわちＰ１を復号するために、すでに復号済みのＩ１のマクロブロックの情報をメインメモリにアクセスして読み出したときに、Ｂ３、Ｂ４の復号処理にもこのマクロブロックの情報を利用するということがわかっている（事前にピクチャ間、マクロブロック間の参照関係が明らかになっているため）ので、このマクロブロックの情報を利用するＢ３、Ｂ４のマクロブロックの復号処理にその値を利用する。このような順番で復号処理を行うと、同じデータに連続してアクセスすることになるため、キャッシュメモリを備えた計算機ではほぼ確実にキャッシュヒットする。したがって、Ｐ１、Ｂ３、Ｂ４の３つのピクチャの復号に用いるＩ１の情報をメインメモリからの読み出す回数は１回でよい。
【００９９】
ここで現在復号処理を行っているＧＯＰがＣｌｏｓｅｄＧＯＰでない場合、ひとつ前のＧＯＰに含まれるピクチャの情報を用いて、ＧＯＰの先頭に含まれるＢピクチャの復号が可能な場合がある（図１１ではこのような場合を示している）。このときは先ほど述べたＰ１、Ｂ３、Ｂ４の３つのピクチャの復号と並行して、ＧＯＰの先頭の２つのＢピクチャＢ１、Ｂ２の復号も同時に行う。Ｂ１、Ｂ２の復号には一つ前のＧＯＰに含まれるＰピクチャＰｐ（Ｉピクチャの場合もありうる）とＩ１ピクチャの情報が利用できる。したがって、合計５つのピクチャの復号処理を並行に行うことが可能となる。Ｂ１、Ｂ２はすでにＰｐから得られる情報はセットされているため、Ｉ１から情報を得ることで復号処理が完了する。Ｐ１もＩ１からのみ情報を得て復号処理を行うので、復号処理は完了する。
【０１００】
ところが、Ｂ３、Ｂ４はＰ１から情報を得ないと復号処理が完了できないが、Ｐ１は現在復号処理を行っている最中であるので、Ｐ１の情報は復号には利用できない状態である。したがってＩ１から得られる情報のみを用いて復号処理の途中段階の状態で一旦メインメモリに格納される。図１１において、復号の順番を示した数字のうち右上に「’」が付加された数字は双方向参照ピクチャのうち、片方の情報のみしか取得できていない状態であることを示す。
【０１０１】
次にＰ１を用いてＢ３、Ｂ４、Ｂ５、Ｂ６、Ｐ２の復号を行う。Ｂ３、Ｂ４については双方向予測に用いるＩ１の情報をすでに取得済みであるため、Ｐ１からの情報を取得した時点で復号が完了する。Ｐ２はＰ１のみを参照しているため、Ｐ１からの情報を取得することで復号できる。Ｂ５、Ｂ６は双方向予測であるためＰ１とＰ２の情報が復号には必要であるが、Ｐ２の復号が完了していないためＢ１、Ｂ２、Ｐ１の復号を行ったときと同様にＰ１から得た情報のみを復号に利用する（順番の番号が「３’」）。このときもＰ１の参照されるマクロブロックを基準として復号処理を行う領域を決定し、順次復号処理を行うことで、参照される復号済みのＰ１のマクロブロックの情報は１回のメモリアクセスですむ（キャッシュミスが発生しないため）。
【０１０２】
以下同様に、ＧＯＰ内のすべてのピクチャ（つまりは、ＭＰＥＧデータストリーム）について前記と同様の処理を行うことによって、Ｐピクチャ、Ｂピクチャの復号の際に参照されるマクロブロックを取得するためのメモリアクセスをそれぞれのマクロブロック（参照される側のマクロブロック）について１回のみにすることができる（２回目以降はキャッシュメモリから得ることができるため）。
【０１０３】
ＧＯＰのすべてのピクチャ（ＭＰＥＧデータストリーム）について復号処理が完了した後、復号済みのピクチャを順次メインメモリから読み出して、表示装置に転送する。なお、表示装置への転送はＧＯＰのすべてのピクチャの復号を待つ必要はなく、参照される必要がなくなった復号済みのピクチャを順次表示装置に転送してもよい。また、表示装置に表示するためにはフォーマット変換やスキャンコンバートなどの処理が必要になる場合がある。その場合には（一般に）ＣＰＵ１００において上記処理を行った後で表示装置へ転送することになる。
【０１０４】
上記の説明から、Ｐ１はＢ１、Ｂ２と同時に復号処理が完了することがわかる。なお、Ｐピクチャ、Ｂピクチャともにイントラマクロブロックの復号タイミングは、参照、あるいは表示のための出力までに完了していればよいものとする。
本発明はあらかじめ参照ＭＢ情報取得部２０２及びソート処理部２０３を用いて、ピクチャ間、マクロブロック間の参照関係を明らかにした後に復号処理を開始しているため、参照されるために読み出されたマクロブロックを復号処理に利用できるピクチャ、マクロブロックの復号を連続して行うことが可能であり、したがって同じデータ（参照されるために読み出された情報）へ連続してアクセスすることになるためキャッシュヒット率を従来方法に比べて向上させることが可能となる。
【０１０５】
（３）キャッシュメモリ１０１へのアクセスの具体例
ここでは、キャッシュメモリ１０１へのアクセスについて、図１２及び図１３にて示す具体例を用いて説明する。
図１２および図１３は、ＣＰＵ１００が参照のためにメインメモリ３０から読み出された情報をメインメモリ３０へ再度アクセスすることが必要ないことを説明するための図である。
【０１０６】
図１２において参照ピクチャの一部分（４つ分のマクロブロック）が読み出されキャッシュメモリ１０１へと格納される。
このとき、復号処理システム１は、参照ＭＢ情報取得部２０２及びソート処理部２０３を用いることにより、メインメモリ３０から読み出された情報がどのピクチャのどのマクロブロックで利用できるのかをすでに情報として得ているため、この情報を利用するピクチャ、マクロブロックに相当するデータストリーム（あるいは復号途中のピクチャ）をメインメモリ３０から読み出し、それらのデータの復号処理を行う。
【０１０７】
これにより、１度読み出された参照ピクチャの一部分（４つ分のマクロブロック）を参照する全てのピクチャに対して用いるので、１度読み出された参照ピクチャの一部分は、その後、復号処理を行うために再度読み出されることはないことが分かる。
図１３は、図１２において説明した内容について、キャッシュメモリ１０１に格納されている情報を繰り返し利用できることを説明するための図である。
【０１０８】
上述したように、参照ピクチャの一部分（４つ分のマクロブロック）が読み出されキャッシュメモリ１０１へと格納される。
このとき、復号処理システム１は、参照ＭＢ情報取得部２０２及びソート処理部２０３を用いることにより、メインメモリ３０から読み出された情報がどのピクチャのどのマクロブロックで利用できるのかをすでに情報として得ているため、この情報を利用するピクチャ、マクロブロックに相当するデータストリームあるいは復号途中のピクチャ（ここでは、復号ピクチャ１、２、・・・、ｎとする）をメインメモリ３０から読み出す。復号処理システム１は、キャッシュメモリ１０１に格納された４つ分のマクロブロックを用いて、メインメモリ３０から読み出した復号ピクチャ１、２、・・・、ｎに対する復号処理を行う。
【０１０９】
なお、図１２、図１３において、それぞれの復号対象ピクチャの復号中のマクロブロックが利用する参照データはお互いに完全に一致するものではないが、キャッシュメモリに格納されているマクロブロック４つ分の情報から抽出できる情報であることが条件となる。
１．４  変形例
本発明を上記の実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下の場合も本発明に含まれる。
【０１１０】
（１）本発明における参照ブロック画像の概念に、参照位置が含まれるマクロブロックを含む４つ分のマクロブロックを含める。
または、参照ブロック画像は、１のマクロブロックからなるとしてもよい。つまり、参照ブロック画像とは、１以上のマクロブロックからなる。
（２）上記第１の実施の形態において、復号処理情報を取得後、復号時の参照に用いる４つ分のマクロブロックをキャッシュメモリに読み出したが、これに限定されない。
【０１１１】
復号処理部は、復号処理情報を取得前に、復号時の参照に用いる４つ分のマクロブロックをキャッシュメモリに読み出してもよい。
この場合、復号処理部は、キャッシュメモリに格納された４つ分のマクロブロックを参照することを示す復号処理情報を取得する。
（３）上記第１の実施の形態において、復号時の参照に用いるマクロブロックの個数、つまり、キャッシュメモリに読み出されるマクロブロックの個数は４つとしたが、これに限定されない。
【０１１２】
復号時の参照に用いるマクロブロックの個数は、動きベクトルにて特定されるブロックを含むようなサイズとなる数であればよい。
上記第１の実施の形態では、動きベクトルにて特定されるブロックのサイズは、１６画素×１６画素であり、通常のマクロブロックのサイズと同様としたため、動きベクトルにて特定されるブロックを含むためには、復号時の参照に用いるマクロブロックの個数は４つであれば十分であることが分かる。
【０１１３】
（４）上記第１の実施の形態では、Ｐピクチャ、Ｂピクチャに含まれるノンイントラマクロブロックの復号後にイントラマクロブロックを復号したが、これに限定されない。
イントラマクロブロックの復号を先に行い、その後、ノンイントラマクロブロックの復号を行ってもよい。
（５）本願は複数の圧縮されたデータストリームの復号処理を並列に行う場合にも有効である。基本的にはデータストリームのＧＯＰを単位としてメインメモリに取り込み、参照関係が閉じたデータ（ピクチャ）の復号を完了させた後、次のＧＯＰ（このＧＯＰは別のデータストリームのＧＯＰでもよいし、同一のＧデータストリームのＧＯＰでもよい）の復号を開始する、という方法をとることで、メインメモリへのアクセス効率を最大限に上げることが可能となる。どのデータストリームのＧＯＰをメインメモリに取り込み、復号処理を行うかは本願では記述しないが、各データストリームのフレームレートや圧縮率などをパラメータとして、再生時に違和感を感じなければどのような順番であってもよい。
【０１１４】
（６）上記第１の実施の形態では、簡単のためメインメモリに取り込むＧＯＰはひとつと限定して説明を行ったが、メインメモリの容量によっては複数のＧＯＰをメインメモリに取り込み、これらを並列（あるいは時分割処理によって見かけ上並列に）処理してもよい。この方法は複数のデータストリームを同時に取り扱う際に、有効である。
（７）上記第１の実施の形態では、ＭＰＥＧ形式による動画像を圧縮したデータストリームを用いたが、これに限定されない。ＭＰＥＧ−２／４はもちろん、Ｈ．２６４といった動画像を圧縮したデータストリームを用いてもよい。
【０１１５】
また、扱うデータは、動画像に限定されない。動画像でいうピクチャに相当するような所定のデータの集まりの間において参照関係が存在するようなデータストリームについても用いることが可能である（例えば音声データなど）。
（８）上記第１の実施の形態において、復号処理システム１は、復号用半導体装置１０、外部記憶装置２０、メインメモリ３０、及び表示装置４０から構成されるとしたが、これに限定されない。
【０１１６】
復号処理システム１に、ＭＰＥＧデータストリームを外部の装置から受け取り、受け取ったＭＰＥＧデータストリームを外部記憶装置２０へ格納する入力装置を追加してもよい。
（９）上記第１の実施の形態において、ピクチャ群選択部２５１の動作の一例として、算出式“Ｋｅｙ”を用いて参照位置を含むマクロブロックのＭＢＡを算出し、算出したＭＢＡが同一となる復号処理情報を１つ以上取得することにより、前記ピクチャ群を選択するとしたが、これに限定されない。
【０１１７】
ピクチャ群選択部２５１は、同一の参照ブロック群（キャッシュメモリに格納される４つ分のマクロブロック）を参照して動き補償を用いた復号を行うブロック各々を連続して行うように、復号対象ピクチャの読み出し順序をスケジューリングするような動作であってもよい。
例えば、読み出し順序は、復号対象ピクチャの再生の順序に基づくものである。
【０１１８】
このとき、ＭＢ復号処理部２５３は、スケジューリングされた順序に基づいて、ＭＢの復号処理を行う。
（１０）上記第１の実施の形態における復号処理システムは、例えば、圧縮符号化された動画像を復号し、復号した動画像を再生する復号処理装置である。復号処理装置は、具体的には、デジタルテレビやＤＶＤプレーヤー等である。
【０１１９】
つまり、上記第１の実施の形態における復号用半導体装置は、復号処理装置に含まれることになる。
（１１）上記第１の実施の形態において、ＭＰＥＧデータストリームの復号処理をソフトウェアで行ったが、これに限定されない。
ＭＰＥＧデータストリームの復号処理は、専用のハードウェアで行ってもよい。
【０１２０】
また、アプリケーション部におけるＧＯＰ読出部、参照ＭＢ情報取得部、ソート処理部、及び復号処理部における各動作を専用のハードウェアで行ってもよい。また、これら構成要素の一部を専用のハードウェアで動作するようにしてもよい。
（１２）上記第１の実施の形態において、復号処理情報にＸ座標及びＹ座標を含むとしたが、これに限定されない。
【０１２１】
復号処理情報には、Ｘ座標及びＹ座標の代わりに、Ｘ座標及びＹ座標から示されるマクロブロックアドレスが含まれるとしてもよい。
この場合、マクロブロックアドレスは、参照位置テーブルの生成時に算出されてもよいし、ソートテーブルの生成時に算出されてもよい。
または、動きベクトルが示す参照位置を、Ｘ座標及びＹ座標で表す代わりに、マクロブロックアドレスにて表してもよい。
【０１２２】
または、参照位置に含まれる情報には、マクロブロックアドレス、及びＸ座標とＹ座標とからなる組の双方を含んでもよい。
（１２）本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
【０１２３】
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ―ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、半導体メモリなど、に記録したものとしてもよい。また、これらの記録媒体に記録されている前記コンピュータプログラム又は前記デジタル信号であるとしてもよい。
【０１２４】
また、本発明は、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしてもよい。
【０１２５】
また、前記プログラム又は前記デジタル信号を前記記録媒体に記録して移送することにより、又は前記プログラム又は前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
（１３）上記の各装置（復号用半導体装置や復号装置）を構成する構成要素の一部または全部は、１個のシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：大規模集積回路）から構成されているとしてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどを含んで構成されるコンピュータシステムである。前記ＲＡＭには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムＬＳＩは、その機能を達成する。
【０１２６】
また、上記の各装置（復号用半導体装置や復号装置）を構成する構成要素の各部は、個別に１チップ化されていても良いし、一部又は全てを含むように１チップ化されてもよい。
また、ここでは、システムＬＳＩとしたが、集積度の違いにより、ＩＣ、ＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
【０１２７】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
（１４）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
１．５  まとめ
現在、汎用的に用いられているＣＰＵでは、例えば、ＣＰＵ内部に設けられる一次キャッシュが数十ＫＢであり、ＣＰＵ外部に設置される二次キャッシュが最大で２ＭＢである。一般にコンシューマ向け機器に搭載されるＣＰＵあるいはマイコンは上記よりもキャッシュメモリの容量は小さく、一次キャッシュが数十ＫＢ、二次キャッシュが数百ＫＢであることが多い。一方、ＭＰＥＧが処理対象としている画像データ（復号済み）は、一般的なＭＰＥＧ−２のプロファイルで圧縮されている場合、１ピクチャあたり７００ＫＢ程度となる。この値は二次キャッシュにはピクチャを一枚から数枚格納することができることを示しているが、今後普及が見込まれているハイビジョン画像については、最悪の場合ピクチャ一枚を格納することが不可能な場合も想定される。また、前述のようにＢピクチャの復号には少なくとも２枚の復号済みピクチャが必要となるので、画像データ一枚のみをキャッシュメモリに格納してももう一枚分のピクチャに関する情報はメインメモリにアクセスしなければならず、従来の方法を用いても復号処理全体の処理速度向上にはつながりにくい。
【０１２８】
しかしながら、本発明における復号処理の方法は、キャッシュメモリに読み込まれている情報を参照しているピクチャ、マクロブロックに相当するデータストリームを選択的にメインメモリから読み出し、復号を行っている。参照される情報はすでにキャッシュメモリに格納されており、これに対して連続的にアクセスすることになるので、メインメモリへの複数回同一のデータを取得するためのアクセスは発生しなくなる。したがって、本発明による復号処理の方法を用いることにより、号処理全体の処理速度を向上することができる。
【０１２９】
また、従来の復号処理のようにピクチャ毎に復号処理を施す場合、あるピクチャ（例えば、Ｐピクチャ）をＩピクチャを参照して復号した後、別のピクチャ（例えば、Ｂピクチャ）を復号する際には、同じ参照ピクチャ（Ｉピクチャ）に対して、再度メインメモリにアクセスしてデータを取得しなければならない。このとき、アクセスに要する時間は、キャッシュメモリにアクセスしてデータを取得するアクセス時間よりも数倍から数十倍の時間を要することが一般的である。さらにこの間、ＣＰＵはデータが取得できるまで何もできない状態となっており、キャッシュメモリの利用効率が全体のパフォーマンスに及ぼす影響は極めて大きいといえる。
【０１３０】
また、特許文献１では、連続したＢピクチャにのみ適用が可能であるため、同じく動き補償処理を必要とするＰピクチャの復号には利用することができない。さらに、一組の連続したＢピクチャの復号処理におけるキャッシュミスの抑制が目的であるため、参照されるピクチャの前後に位置する複数のＢピクチャの組の間では、キャッシュメモリ内のデータの再利用が困難であり、キャッシュヒット率の向上には限界がある。またさらに、近年普及が進んでいるＨ．２６４／ＡＶＣ等のロングＧＯＰを利用する方式においては、動き補償のための参照データの設定方法の自由度が大幅に拡大されたため、特許文献１に記載された方法では必ずしもキャッシュヒット率の向上にはつながらない可能性がある。
【０１３１】
しかしながら、本発明にて示すように、同じデータに連続的にアクセスを行うようにアルゴリズムを制御することにより、キャッシュメモリを有効に利用することができるので、キャッシュメモリの利用効率が向上し、復号処理全体のパフォーマンスも向上する。
また、本発明によれば、ＭＰＥＧデータを復号する際のキャッシュミスを抑制し、メインメモリへのアクセス回数を減少させることによって、より高速な復号処理が可能となる。
【０１３２】
従来技術では、他のピクチャを参照して復号されるピクチャ（Ｂピクチャ又はＰピクチャ）に対して、１のピクチャ（Ｂピクチャ又はＰピクチャ）の復号が完了するまでそのピクチャに対して復号処理を施している。しかしながら、本発明では、ピクチャ毎に復号処理を施すのではなく、参照ピクチャを参照することにより復号される複数のピクチャ（Ｂピクチャ又はＰピクチャ）に対して交互に復号処理を施すことにより、前記複数のピクチャを復号することができる。
【０１３３】
また、本発明は、以下に示す特徴をも含む。
（１）本発明は、キャッシュメモリを内蔵する演算器と、メインメモリによって構成される動画像復号方法であって、前記メインメモリに格納されたＧＯＰに含まれるピクチャの復号処理を開始する前に、前記ＧＯＰに含まれる全ピクチャの動き補償に関する情報をプリフェッチすることを特徴とする。
【０１３４】
この構成によると、メインメモリから読み出されたデータが連続してキャッシュメモリを含んだ演算器で使用されるため、演算器内のキャッシュメモリに格納されているデータを利用することが可能となり（キャッシュヒット）、その結果メインメモリへのアクセスが減少することによって、復号処理の効率化、高速化が実現できる。
（２）ここで、上記（１）の動画像復号方法において、前記プリフェッチした動き補償に関する情報は参照ピクチャと動きベクトルであり、前記参照ピクチャおよび前記動きベクトルから動き補償に用いられる画像領域を特定するとしてもよい。
【０１３５】
（３）ここで、上記（２）の動画像復号方法において、前記動き補償に用いられる画像領域のサイズと、前記動き補償に用いられる画像領域を参照する前記ＧＯＰに含まれるピクチャの画像領域のサイズは、動き補償処理を行うブロックのサイズであるとしてもよい。
（４）ここで、上記（３）の動画像復号方法において、前記動き補償に用いられる画像領域を含む１つ以上のブロック群からなる参照ブロック領域を設定し、前記参照ブロック領域を参照している前記ＧＯＰに含まれる全ピクチャの前記動き補償を行うブロックをすべて抽出するとしてもよい。
【０１３６】
（５）ここで、上記（４）の動画像復号方法において、前記ＧＯＰに含まれるピクチャの復号処理を実行する際に、前記動き補償に用いられる領域を含む１つ以上のブロック群が同一であるような、前記ＧＯＰに含まれる全ピクチャの前記動き補償を行うブロック各々について、これらの復号を連続して行うとしてもよい。
（６）ここで、上記（５）の動画像復号方法において、複数の異なる動画像圧縮データの復号処理を、ＧＯＰを単位として、前記動画像ごとに交互に実行するとしてもよい。
【０１３７】
（７）ここで、上記（５）又は（６）の動画像復号方法において、動画像圧縮データを格納する外部記憶装置をさらに備えるとしてもよい。
（８）ここで、上記（５）又は（６）の動画像復号方法において、動画像圧縮データストリームの入力を行うデータ入力装置をさらに備えるとしてもよい。
（９）ここで、上記（５）又は（６）の動画像復号方法において、復号済みの動画像データを表示する表示装置をさらに備えるとしてもよい。
【０１３８】
（１０）また、本発明は、動画像圧縮データを復号する復号手段と、前記復号手段に内蔵されるキャッシュメモリ手段と、前記動画像圧縮データを一時的に記憶し、前記復号手段が指定した復号処理の対象となるデータを読み出して前記復号装置に送るメインメモリ手段によって構成される動画像復号装置であって、前記メインメモリ手段に格納されたＧＯＰに含まれる全ピクチャの、動き補償に関する情報として参照ピクチャと動きベクトルを抽出する動き補償情報プリフェッチ手段を備えることを特徴とする。
【０１３９】
（１１）ここで、上記（１０）の動画像復号装置において、前記参照ピクチャおよび前記動きベクトルから動き補償を行うブロックと同じサイズの参照画像領域を特定し、前記参照画像領域を含むひとつ以上のブロックからなる参照ブロック領域を参照している前記ＧＯＰに含まれる全ピクチャの前記動き補償を行うブロックをすべて抽出する、参照関係ソート手段をさらに備えるとしてもよい。
【０１４０】
（１２）ここで、上記（１１）の動画像復号装置において、前記参照関係ソート手段の抽出結果に従い、前記復号手段における復号処理を、同一の前記参照ブロック領域を参照している前記ＧＯＰに含まれる全ピクチャの前記動き補償を行うブロック各々を連続して行うように、前記メインメモリ手段からの前記動画像圧縮データの読み出し順序をスケジューリングするスケジューリング手段をさらに備えるとしてもよい。
【産業上の利用可能性】
【０１４１】
本発明は、圧縮された動画像を復号する復号用半導体装置を製造、販売する産業において、経営的、つまり反復的かつ継続的に利用されうる。
また、本発明にかかる復号用半導体装置は、ＭＰＥＧ圧縮されたＡＶコンテンツを視聴するデジタルテレビやデジタルビデオプレイヤー等として有用である。またモバイル機器におけるワンセグ放送受像機等の用途にも応用できる。
【図面の簡単な説明】
【０１４２】
【図１】復号処理システム１の構成を示すブロック図である。
【図２】本発明におけるＧＯＰ（Ｇｒｏｕｐ  Ｏｆ  Ｐｉｃｔｕｒｅ）に含まれるデータの組を説明する図である。
【図３】ＭＰＥＧデータストリームのデータ構造の一例を示す図である。
【図４】参照位置情報テーブルＴ１００及びインデックス情報テーブルＴ２００のデータ構造の一例を示す図である。
【図５】ソートテーブルＴ３００のデータ構造の一例を示す図である。
【図６】復号処理部２０４の構成を示すブロック図である。
【図７】復号用半導体装置１０の動作を示す流れ図である。
【図８】ＭＢ復号処理の動作を示す流れ図である。図９へ続く。
【図９】ＭＢ復号処理の動作を示す流れ図である。図８から続く。
【図１０】ＭＰＥＧデータにおけるピクチャ間の動き補償処理の際の参照関係を示す図である。
【図１１】本発明におけるＭＰＥＧデータの復号順序を示す図である。
【図１２】ＣＰＵ１００が参照のためにメインメモリ３０から読み出された情報をメインメモリ３０へ再度アクセスすることが必要ないことを示す図である。
【図１３】キャッシュメモリ１０１に格納されている情報を繰り返し利用できることを示す図である。
【図１４】従来技術において、ＭＰＥＧ２方式でのピクチャの格納順序、復号順序および出力順序を示す図である。
【符号の説明】
【０１４３】
１    復号処理システム
１０    復号用半導体装置
２０    外部記憶装置
３０    メインメモリ
３０    再度メインメモリ
４０    表示装置
１００    ＣＰＵ
１０１    キャッシュメモリ
２００    アプリケーション部
２０１    ＧＯＰ読出部
２０２    参照ＭＢ情報取得部
２０３    ソート処理部
２０４    復号処理部
２５０    復号処理制御部
２５１    ピクチャ群選択部
２５２    参照ＭＢ読出部
２５３    ＭＢ復号処理部
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2008038513.tif 000017
【図２】
2008038513.tif 000018
【図３】
2008038513.tif 000019
【図４】
2008038513.tif 000020
【図５】
2008038513.tif 000021
【図６】
2008038513.tif 000022
【図７】
2008038513.tif 000023
【図８】
2008038513.tif 000024
【図９】
2008038513.tif 000025
【図１０】
2008038513.tif 000026
【図１１】
2008038513.tif 000027
【図１２】
2008038513.tif 000028
【図１３】
2008038513.tif 000029
【図１４】
2008038513.tif 000030
【国際調査報告】
2008038513.tif 000031
2008038513.tif 000032
2008038513.tif 000033
2008038513.tif 000034