(57)【要約】【課題】高い処理性能を実現することができるようにしたＭＰＥＧデコーダを提供する。【解決手段】可変長復号処理部３６＿０、３６＿１はアクセスユニット単位で並列して可変長復号処理を行う。可変長復号処理部３６＿０、３６＿１が出力する中間データを中間データバッファ３７に格納し、中間データバッファ３７に格納するマクロブロックラインのデータ位置を示すマクロブロックラインポインタをマクロブロックラインポインタテーブル３８に記録する。画像復号処理部３９＿０、３９＿１は、それぞれ、マクロブロックポインタテーブル３８を参照して中間データバッファ３７から偶数マクロブロックライン及び奇数マクロブロックラインの中間データを読み出して偶数マクロブロックライン及び奇数マクロブロックラインの画像復号処理を並列して行う。【選択図】図１
2008067026.tif 000002
【特許請求の範囲】
【請求項１】
一つ以上の可変長復号処理部と、
該一つ以上の可変長復号処理部が出力するデータを格納するデータバッファと、
該データバッファから前記データを読み出して画像復号処理を行う複数の画像復号処理部を備えることを特徴とするＭＰＥＧデコーダ。
【請求項２】
前記一つ以上の可変長復号処理部が複数の可変長復号処理部の場合、
該複数の可変長復号処理部は、ピクチャ単位で並列処理を行い、
前記複数の画像復号処理部は、マクロブロックライン単位又はマクロブロックペアライン単位で並列処理を行うことを特徴とする請求項１に記載のＭＰＥＧデコーダ。
【請求項３】
前記一つ以上の可変長復号処理部が複数の可変長復号処理部の場合、
該複数の可変長復号処理部は、スライス単位で並列処理を行い、
前記複数の画像復号処理部は、マクロブロックライン単位又はマクロブロックペアライン単位で並列処理を行うことを特徴とする請求項１に記載のＭＰＥＧデコーダ。
【請求項４】
複数の画像符号処理部と、
該複数の画像符号処理部が出力するデータを格納するデータバッファと、
該データバッファから前記データを読み出して可変長符号処理を行う一つ以上の可変長符号処理部を備えることを特徴とするＭＰＥＧエンコーダ。
【請求項５】
前記一つ以上の可変長符号処理部が複数の可変長符号処理部の場合、
前記複数の画像符号処理部は、マクロブロックライン単位又はマクロブロックペアライン単位で並列処理を行い、
前記複数の可変長符号処理部は、ピクチャ単位で並列処理を行うことを特徴とする請求項４に記載のＭＰＥＧエンコーダ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像をＭＰＥＧ（Moving Picture Experts Group）方式で圧縮符号化してなるＭＰＥＧストリームの復号を行うＭＰＥＧデコーダ、及び、動画像をＭＰＥＧ方式で圧縮符号化してＭＰＥＧストリームを作成するＭＰＥＧエンコーダに関する。
【背景技術】
【０００２】
ＭＰＥＧデコーダの処理能力向上を図るためには処理の並列化が必要とされる。しかしながら、ＭＰＥＧデコーダにおいては、可変長復号処理、周辺予測処理、フレーム間予測処理等の依存関係のために処理順序を守る必要があり、処理の単純な並列化は難しいとされている。
【０００３】
従来、ＭＰＥＧデコーダにおける処理の並列化として、ブロックレベルでの処理の並列化（例えば、特許文献１参照）や、ＭＰＥＧ２におけるスライスレベルでの処理の並列化（例えば、特許文献２、３参照）が提案されている。ブロックレベルでの処理の並列化は、マクロブロックを構成するブロックを並列化して処理を行うというものであり、スライスレベルでの処理の並列化は、画面を分割するスライスを並列化して処理を行うというものである。
【０００４】
図１８は第１従来例のＭＰＥＧデコーダを説明するための図である。図１８（Ａ）中、１はピクチャ、ＭＢはピクチャ１を構成するマクロブロックであり、マクロブロックＭＢは、４個の輝度ブロックＢＬＫ０〜ＢＬＫ３と、２個の色差ブロックＢＬＫ４、ＢＬＫ５に分割される。
【０００５】
図１８（Ｂ）中、２はピクチャ１を含む動画像をＭＰＥＧ方式で圧縮符号化してなるＭＰＥＧストリームの復号を行う第１従来例のＭＰＥＧデコーダであり、ブロックレベルでの並列処理を行うものである。３はＭＰＥＧデコーダ２が出力するデコード画像を格納するためのフレームメモリ、４はＭＰＥＧデコーダ２が出力するデコード画像のフレームメモリ３への格納やフレームメモリ３からの参照画像の読み出し等を制御するメモリ制御部である。
【０００６】
また、ＭＰＥＧデコーダ２において、５は可変長復号処理（ＶＬＤ）部、６＿０、６＿１は逆量子化（ＩＱ）部、７＿０、７＿１は逆直交変換（ＩＴ）部、８＿０、８＿１は動き補償（ＭＣ）部である。
【０００７】
ＭＰＥＧデコーダ２は、可変長復号処理については、ブロックＢＬＫ０〜ＢＬＫ５の順にシリアルに行うが、画像復号処理については、ブロックＢＬＫ０〜ＢＬＫ５をブロックＢＬＫ０〜ＢＬＫ２とブロックＢＬＫ３〜ＢＬＫ５とに並列化し、ブロックＢＬＫ０〜ＢＬＫ２の復号処理は、逆量子化部６＿０と逆直交変換部７＿０と動き補償部８＿０で行い、ブロックＢＬＫ３〜ＢＬＫ５の復号処理は、逆量子化部６＿１と直交変換部７＿１と動き補償部８＿１で行うというものである。
【０００８】
図１９は第２従来例のＭＰＥＧデコーダを説明するための図である。図１９（Ａ）中、１１はピクチャ、ＳＬ０はピクチャ１１の上半分のマクロブロックラインＭＢＬ０〜ＭＢＬ７を含むスライス、ＳＬ１はピクチャ１１の下半分のマクロブロックラインＭＢＬ８〜ＭＢＬ１５を含むスライスである。
【０００９】
図１９（Ｂ）中、１２はピクチャ１１を含む動画像をＭＰＥＧ方式で圧縮符号化してなるＭＰＥＧストリームの復号を行う第２従来例のＭＰＥＧデコーダであり、スライスレベルでの並列化処理を行うものである。１３はＭＰＥＧデコーダ１２が出力するデコード画像を格納するためのフレームメモリ、１４はＭＰＥＧデコーダ１２が出力するデコード画像のフレームメモリ１３への格納やフレームメモリ１３からの参照画像の読み出し等を制御するメモリ制御部である。
【００１０】
また、ＭＰＥＧデコーダ１２において、１５はＭＰＥＧストリームからスライスを検出するスライス検出部、１６＿０、１６＿１はデコード処理部であり、１７＿０、１７＿１は可変長復号処理（ＶＬＤ）部、１８＿０、１８＿１は逆量子化（ＩＱ）部、１９＿０、１９＿１は逆直交変換（ＩＴ）部、２０＿０、２０＿１は動き補償（ＭＣ）部である。
【００１１】
ＭＰＥＧデコーダ１２は、スライスＳＬ０、ＳＬ１をスライス検出部１５で検出し、これらスライスＳＬ０、ＳＬ１を並列化して、スライスＳＬ０の復号処理はデコード処理部１６＿０で行い、スライスＳＬ１の復号処理はデコード処理部１６＿１で行うというものである。
【特許文献１】特開平１０−５６６４１号公報
【特許文献２】特開平１１−１８７３９３号公報
【特許文献３】特開２００３−３２６７９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
図１８に示す第１従来例のＭＰＥＧデコーダ２は、可変長復号処理をブロックＢＬＫ０〜ＢＬＫ５の順にシリアル処理で行うとしているため、可変長復号処理部５を高速に動作させることが必要となり、全体の動作周波数を上げなければならないという問題点を有していた。
【００１３】
図１９に示す第２従来例のＭＰＥＧデコーダ１２は、ＭＰＥＧ２では画面がスライスという単位で分けられていることを利用しているが、ＭＰＥＧ４、Ｈ.２６４等では画面のスライス単位での分割は必ずしも行われないので、使用できない場合が多いという問題点を有していた。
【００１４】
また、ＭＰＥＧエンコーダにおいても、処理能力向上を図るためには処理の並列化が必要とされるが、処理の依存関係のために処理順序を守る必要があり、処理の単純な並列化は難しいとされている。
【００１５】
本発明は、かかる点に鑑み、高い処理性能を実現することができるようにしたＭＰＥＧデコーダ及びＭＰＥＧエンコーダを提供することを目的とする。
【課題を解決するための手段】
【００１６】
本発明のＭＰＥＧデコーダは、一つ以上の可変長復号処理部と、該一つ以上の可変長復号処理部が出力するデータを格納するデータバッファと、該データバッファから前記データを読み出して画像復号処理を行う複数の画像復号処理部を備えるものである。
【００１７】
本発明のＭＰＥＧエンコーダは、複数の画像符号処理部と、該複数の画像符号処理部が出力するデータを格納するデータバッファと、該データバッファから前記データを読み出して可変長符号処理を行う一つ以上の可変長符号処理部を備えるものである。
【発明の効果】
【００１８】
本発明のＭＰＥＧデコーダによれば、一つ以上の可変長復号処理部と複数の画像復号処理部との間に、一つ以上の可変長復号処理部が出力するデータを格納するデータバッファを設けるようにしているので、可変長復号処理部を一つとする場合には、画像復号処理部を処理能力に合わせた並列構成とすることができ、また、可変長復号処理部を複数とする場合には、可変長復号処理部及び画像復号処理部をそれぞれの処理能力に合わせた並列構成とすることができる。したがって、高い処理性能を実現することができる。
【００１９】
本発明のＭＰＥＧエンコーダによれば、複数の画像符号処理部と一つ以上の可変長符号処理部との間に、複数の画像符号処理部が出力するデータを格納するデータバッファを設けるようにしているので、可変長符号処理部を一つとする場合には、画像符号処理部を処理能力に合わせた並列構成とすることができ、また、可変長符号処理部を複数とする場合には、画像符号処理部及び可変長符号処理部をそれぞれの処理能力に合わせた並列構成とすることができる。したがって、高い処理性能を実現することができる。
【発明を実施するための最良の形態】
【００２０】
（本発明のＭＰＥＧデコーダの第１実施形態）
図１は本発明のＭＰＥＧデコーダの第１実施形態を説明するための図である。図１中、３１＿０、３１＿１は連続するピクチャであり、ピクチャ３１＿０は０番目のアクセスユニットＡＵ０内のピクチャ、ピクチャ３１＿１は１番目のアクセスユニットＡＵ１内のピクチャである。
【００２１】
３２は本発明のＭＰＥＧデコーダの第１実施形態であり、ピクチャ３１＿０、３１＿１を含む動画像をＭＰＥＧ方式で圧縮符号化してなるＭＰＥＧストリームの復号を行うものである。３３は本発明のＭＰＥＧデコーダの第１実施形態３２が出力するデコード画像を格納するためのフレームメモリ、３４は本発明のＭＰＥＧデコーダの第１実施形態３２が出力するデコード画像のフレームメモリ３３への格納やフレームメモリ３３からの参照画像の読み出しなどを制御するメモリ制御部である。
【００２２】
また、本発明のＭＰＥＧデコーダの第１実施形態３２において、３５は復号対象のＭＰＥＧストリームからアクセスユニットを検出するＡＵ（アクセスユニット）検出部である。３６＿０、３６＿１はアクセスユニット単位で可変長復号処理を行う可変長復号処理（ＶＬＤ）部である。なお、可変長復号処理部は、２個に限定されず、処理能力に合わせた並列構成又は１個とすることができる。
【００２３】
３７は可変長復号処理部３６＿０、３６＿１が出力する係数データなどの中間データを格納するための中間データバッファ、３８は中間データバッファ３７に格納されたマクロブロックラインの先頭データ位置を示すマクロブロックラインポインタを記録するためのマクロブロックラインポインタテーブルである。なお、中間データバッファ３７は、複数のマクロブロックラインのデータを格納する容量を持つものである。
【００２４】
可変長復号処理部３６＿０、３６＿１は、アクセスユニット内のピクチャについて可変長復号処理を行い、マクロブロックライン単位で中間データを中間データバッファ３７に書き込むが、その際、マクロブロックラインポインタを作成し、マクロブロックラインポインタテーブル３８に記録する。
【００２５】
３９＿０は中間データバッファ３７から偶数マクロブロックラインの中間データを読み出して偶数マクロブロックラインの画像復号処理を行う画像復号処理部であり、４０＿０は逆量子化（ＩＱ）部、４１＿０は逆直交変換（ＩＴ）部、４２＿０は動き補償（ＭＣ）部である。
【００２６】
３９＿１は中間データバッファ３７から奇数マクロブロックラインの中間データを読み出して奇数マクロブロックラインの画像復号処理を行う画像復号処理部であり、４０＿１は逆量子化（ＩＱ）部、４１＿１は逆直交変換（ＩＴ）部、４２＿１は動き補償（ＭＣ）部である。
【００２７】
図２はマクロブロックラインポインタテーブル３８の例を示す図である。図３は図２に示すマクロブロックラインポインタテーブル３８が作成された場合のマクロブロックラインポインタと中間データとの関係を示す図である。なお、図２において、「備考」の欄は、マクロブロックラインポインタテーブル３８の内容ではなく、説明のために記載したものである。
【００２８】
図２及び図３において、ＡＵ０ＰＴＲｉ（但し，ｉ＝０、１、…、１５である。）、ＡＵ１ＰＴＲｉはマクロブロックラインポインタであり、マクロブロックラインポインタＡＵ０ＰＴＲｉは、アクセスユニットＡＵ０内のピクチャのマクロブロックラインＭＢＬｉの中間データバッファ３７内の先頭データ位置を示し、マクロブロックラインポインタＡＵ１ＰＴＲｉは、アクセスユニットＡＵ１内のピクチャのマクロブロックラインＭＢＬｉの中間データバッファ３７内の先頭データ位置を示している。
【００２９】
この例では、可変長復号処理部３６＿０は、アクセスユニットＡＵ０内のピクチャについて可変長復号処理を行い、マクロブロックライン単位で中間データを中間データバッファ３７に書き込むが、その際、マクロブロックラインポインタＡＵ０ＰＴＲｉを作成し、マクロブロックラインポインタテーブル３８に記録する。
【００３０】
また、可変長復号処理部３６＿１は、アクセスユニットＡＵ１内のピクチャについて可変長復号処理を行い、マクロブロックライン単位で中間データを中間データバッファ３７に書き込むが、その際、マクロブロックラインポインタＡＵ１ＰＴＲｉを作成し、マクロブロックラインポインタテーブル３８に記録する。
【００３１】
また、この例では、マクロブロックラインポインタテーブル３８からの偶数番目のマクロブロックラインポインタＡＵ０ＰＴＲ０、ＡＵ０ＰＴＲ２、…、ＡＵ０ＰＴＲ１４、ＡＵ１ＰＴＲ０、ＡＵ１ＰＴＲ２、…、ＡＵ１ＰＴＲ１４のリード元は画像復号処理部３９＿０に設定され、奇数番目のマクロブロックラインポインタＡＵ０ＰＴＲ１、ＡＵ０ＰＴＲ３、…、ＡＵ０ＰＴＲ１５、ＡＵ１ＰＴＲ１、ＡＵ１ＰＴＲ３、…、ＡＵ１ＰＴＲ１５のリード元は画像復号処理部３９＿１に設定される。
【００３２】
そこで、画像復号処理部３９＿０は、まず、マクロブロックラインポインタテーブル３８からマクロブロックラインポインタＡＵ０ＰＴＲ０の値を取得し、このマクロブロックラインポインタＡＵ０ＰＴＲ０が示す中間データバッファ３７内のデータ位置からアクセスユニットＡＵ０内のピクチャのマクロブロックラインＭＢＬ０の中間データを読み出し、マクロブロックラインＭＢＬ０の画像復号処理を行う。
【００３３】
そして、画像復号処理部３９＿０は、アクセスユニットＡＵ０内のピクチャのマクロブロックラインＭＢＬ０の画像復号処理が完了すると、次に、マクロブロックラインポインタＡＵ０ＰＴＲ２の値を取得し、このマクロブロックラインポインタＡＵ０ＰＴＲ２が示す中間データバッファ３７内のデータ位置からマクロブロックラインＭＢＬ２の中間データを読み出し、マクロブロックラインＭＢＬ２の画像復号処理を行う。以後、同様にして偶数マクロブロックラインの復号処理を続ける。
【００３４】
また、画像復号処理部３９＿１は、まず、マクロブロックラインポインタテーブル３８からマクロブロックラインポインタＡＵ０ＰＴＲ１の値を取得し、このマクロブロックラインポインタＡＵ０ＰＴＲ１が示す中間データバッファ３７内のデータ位置からアクセスユニットＡＵ０内のピクチャのマクロブロックラインＭＢＬ１の中間データを読み出し、マクロブロックラインＭＢＬ１の画像復号処理を行う。
【００３５】
そして、画像復号処理部３９＿１は、アクセスユニットＡＵ０内のピクチャのマクロブロックラインＭＢＬ１の画像復号処理が完了すると、次に、マクロブロックラインポインタＡＵ０ＰＴＲ３の値を取得し、このマクロブロックラインポインタＡＵ０ＰＴＲ３が示す中間データバッファ３７内のデータ位置からマクロブロックラインＭＢＬ３の中間データを読み出し、マクロブロックラインＭＢＬ３の画像復号処理を行う。以後、同様にして奇数マクロブロックラインの復号処理を続ける。
【００３６】
図４は本発明のＭＰＥＧデコーダの第１実施形態３２の動作例を示すタイミングチャートであり、（Ａ）は可変長復号処理部３６＿０の処理状況、（Ｂ）は可変長復号処理部３６＿１の処理状況、（Ｃ）は画像復号処理部３９＿０の処理状況、（Ｄ）は画像復号処理部３９＿１の処理状況を示している。
【００３７】
この例では、可変長復号処理部３６＿０は、ＡＵ検出部３５が先に出力したアクセスユニットＡＵ０内のピクチャについての可変長復号処理を実行し、可変長復号処理部３６＿１は、ＡＵ検出部３５がアクセスユニットＡＵ０の次に出力したアクセスユニットＡＵ１内のピクチャについての可変長復号処理を実行しているが、可変長復号処理部３６＿０によるアクセスユニットＡＵ０内のピクチャについての可変長復号処理が可変長復号処理部３６＿１によるアクセスユニットＡＵ１内のピクチャについての可変長復号処理よりも先に終了している。
【００３８】
そこで、可変長復号処理部３６＿０は、ＡＵ検出部３５がアクセスユニットＡＵ１の次に出力したアクセスユニットＡＵ２内のピクチャについての可変長復号処理を実行し、可変長復号処理部３６＿１は、ＡＵ検出部３５がアクセスユニットＡＵ２の次に出力したアクセスユニットＡＵ３内のピクチャについての可変長復号処理を実行している。
【００３９】
そして、この例の場合には、可変長復号処理部３６＿０によるアクセスユニットＡＵ０内のピクチャについての可変長復号処理が終了すると、画像復号処理部３９＿０は、アクセスユニットＡＵ０内のピクチャの偶数マクロブロックラインについての画像復号処理を開始し、画像復号処理部３９＿１は、アクセスユニットＡＵ０内のピクチャの奇数マクロブロックラインについての画像復号処理を開始している。
【００４０】
そして、その後、画像復号処理部３９＿０によるアクセスユニットＡＵ０内のピクチャの偶数マクロブロックラインについての画像復号処理が終了し、画像復号処理部３９＿１によるアクセスユニットＡＵ０内のピクチャの奇数マクロブロックラインについての画像復号処理が終了している。そこで、この場合には、画像復号処理部３９＿０は、アクセスユニットＡＵ１内のピクチャの偶数マクロブロックラインについて画像復号処理の実行を開始し、画像復号処理部３９＿１は、アクセスユニットＡＵ１内のピクチャの奇数マクロブロックラインについて画像復号処理の実行を開始している。
【００４１】
以上のように、本発明のＭＰＥＧデコーダの第１実施形態３２においては、第１従来例のＭＰＥＧデコーダ２の場合と同様に、画像復号処理部３９＿０、３９＿１による画像復号処理のマクロブロックラインレベルでの並列化を行うようにしているが、第１従来例のＭＰＥＧデコーダ２の場合と異なり、中間データバッファ３７を挟んで、可変長復号処理部３６＿０、３６＿１と画像復号処理部３９＿０、３９＿１を設けるようにし、可変長復号処理部３６＿０、３６＿１と画像復号処理部３９＿０、３９＿１との処理の進みを合わせながら、可変長復号処理部３６＿０、３６＿１によるピクチャレベルでの並列処理を可能としている。
【００４２】
この結果、可変長復号処理部３６＿０、３６＿１の個々の動作周波数を第１従来例のＭＰＥＧデコーダ２と同様としても、可変長復号処理部３６＿０、３６＿１による可変長復号処理のピクチャレベルでの並列化により可変長復号処理の高速化を図ることができる。したがって、本発明のＭＰＥＧデコーダの第１実施形態３２によれば、全体の動作周波数を上げることなく、高い処理性能を実現することができる。
【００４３】
（本発明のＭＰＥＧデコーダの第２実施形態）
図５は本発明のＭＰＥＧデコーダの第２実施形態を説明するための図である。図５中、５２は本発明のＭＰＥＧデコーダの第２実施形態、５３は本発明のＭＰＥＧデコーダの第１実施形態５２が出力するデコード画像を格納するためのフレームメモリ、５４は本発明のＭＰＥＧデコーダの第２実施形態５２が出力するデコード画像のフレームメモリ５３への格納やフレームメモリ５３からの参照画像の読み出しなどを制御するメモリ制御部である。
【００４４】
本発明のＭＰＥＧデコーダの第２実施形態５２は、４個の画像復号処理部３９＿０〜３９＿３を設け、その他については、図１に示す本発明のＭＰＥＧデコーダの第１実施形態３２と同様に構成したものである。また、画像復号処理部３９＿０〜３９＿３において、４０＿０〜４０＿３は逆量子化（ＩＱ）部、４１＿０〜４１＿３は逆直交変換（ＩＴ）部、４２＿０〜４２＿３は動き補償（ＭＣ）部である。
【００４５】
図６は本発明のＭＰＥＧデコーダの第２実施形態５２におけるマクロブロックラインポインタテーブル３８の例を示す図である。なお、図６において、「備考」の欄は、マクロブロックラインポインタテーブル３８の内容ではなく、説明のために記載したものである。この例でも、可変長復号処理部３６＿０は、アクセスユニットＡＵ０内のピクチャについて可変長復号処理を行い、マクロブロックライン単位で中間データを中間データバッファ３７に書き込むが、その際、マクロブロックラインポインタＡＵ０ＰＴＲｉを作成し、マクロブロックラインポインタテーブル３８に記録する。
【００４６】
また、可変長復号処理部３６＿１は、アクセスユニットＡＵ１内のピクチャについて可変長復号処理を行い、マクロブロックライン単位で中間データを中間データバッファ３７に書き込むが、その際、マクロブロックラインポインタＡＵ１ＰＴＲｉを作成し、マクロブロックラインポインタテーブル３８に記録する。
【００４７】
これに対して、マクロブロックラインポインタテーブル３８からのマクロブロックラインポインタＡＵ０ＰＴＲ０、ＡＵ０ＰＴＲ４、ＡＵ０ＰＴＲ８、ＡＵ０ＰＴＲ１２、ＡＵ１ＰＴＲ０、ＡＵ１ＰＴＲ４、ＡＵ１ＰＴＲ８、ＡＵ１ＰＴＲ１２のリード元は画像復号処理部３９＿０に設定される。
【００４８】
また、マクロブロックラインポインタテーブル３８からのポインタＡＵ０ＰＴＲ１、ＡＵ０ＰＴＲ５、ＡＵ０ＰＴＲ９、ＡＵ０ＰＴＲ１３、ＡＵ１ＰＴＲ１、ＡＵ１ＰＴＲ５、ＡＵ１ＰＴＲ９、ＡＵ１ＰＴＲ１３のリード元は画像復号処理部３９＿１に設定される。
【００４９】
また、マクロブロックラインポインタテーブル３８からのポインタＡＵ０ＰＴＲ２、ＡＵ０ＰＴＲ６、ＡＵ０ＰＴＲ１０、ＡＵ０ＰＴＲ１４、ＡＵ１ＰＴＲ２、ＡＵ１ＰＴＲ６、ＡＵ１ＰＴＲ１０、ＡＵ１ＰＴＲ１４のリード元は画像復号処理部３９＿２に設定される。
【００５０】
また、マクロブロックラインポインタテーブル３８からのポインタＡＵ０ＰＴＲ３、ＡＵ０ＰＴＲ７、ＡＵ０ＰＴＲ１１、ＡＵ０ＰＴＲ１５、ＡＵ１ＰＴＲ３、ＡＵ１ＰＴＲ７、ＡＵ１ＰＴＲ１１、ＡＵ１ＰＴＲ１５のリード元は画像復号処理部３９＿３に設定される。
【００５１】
そこで、画像復号処理部３９＿０は、まず、マクロブロックラインポインタテーブル３８からマクロブロックラインポインタＡＵ０ＰＴＲ０の値を取得し、このマクロブロックラインポインタＡＵ０ＰＴＲ０が示す中間データバッファ３７内のデータ位置からアクセスユニットＡＵ０内のピクチャのマクロブロックラインＭＢＬ０の中間データを読み出し、マクロブロックラインＭＢＬ０の画像復号処理を行う。
【００５２】
そして、画像復号処理部３９＿０は、アクセスユニットＡＵ０内のピクチャのマクロブロックラインＭＢＬ０の画像復号処理が完了すると、次に、マクロブロックラインポインタＡＵ０ＰＴＲ４の値を取得し、このマクロブロックラインポインタＡＵ０ＰＴＲ４が示す中間データバッファ３７内のデータ位置からマクロブロックラインＭＢＬ４の中間データを読み出し、マクロブロックラインＭＢＬ４の画像復号処理を行う。以後、同様にしてマクロブロックラインＭＢＬ８、ＭＢＬ１２などの復号処理を続ける。
【００５３】
また、画像復号処理部３９＿１は、まず、マクロブロックラインポインタテーブル３８からマクロブロックラインポインタＡＵ０ＰＴＲ１の値を取得し、このマクロブロックラインポインタＡＵ０ＰＴＲ１が示す中間データバッファ３７内のデータ位置からアクセスユニットＡＵ０内のピクチャのマクロブロックラインＭＢＬ１の中間データを読み出し、マクロブロックラインＭＢＬ１の画像復号処理を行う。
【００５４】
そして、画像復号処理部３９＿１は、アクセスユニットＡＵ０内のピクチャのマクロブロックラインＭＢＬ１の画像復号処理が完了すると、次に、マクロブロックラインポインタＡＵ０ＰＴＲ５の値を取得し、このマクロブロックラインポインタＡＵ０ＰＴＲ５が示す中間データバッファ３７内のデータ位置からマクロブロックラインＭＢＬ５の中間データを読み出し、マクロブロックラインＭＢＬ５の画像復号処理を行う。以後、同様にしてマクロブロックラインＭＢＬ９、ＭＢＬ１３などの復号処理を続ける。
【００５５】
また、画像復号処理部３９＿２は、まず、マクロブロックラインポインタテーブル３８からマクロブロックラインポインタＡＵ０ＰＴＲ２の値を取得し、このマクロブロックラインポインタＡＵ０ＰＴＲ２が示す中間データバッファ３７内のデータ位置からアクセスユニットＡＵ０内のピクチャのマクロブロックラインＭＢＬ２の中間データを読み出し、マクロブロックラインＭＢＬ２の画像復号処理を行う。
【００５６】
そして、画像復号処理部３９＿２は、アクセスユニットＡＵ０内のピクチャのマクロブロックラインＭＢＬ２の画像復号処理が完了すると、次に、マクロブロックラインポインタＡＵ０ＰＴＲ６の値を取得し、このマクロブロックラインポインタＡＵ０ＰＴＲ６が示す中間データバッファ３７内のデータ位置からマクロブロックラインＭＢＬ６の中間データを読み出し、マクロブロックラインＭＢＬ６の画像復号処理を行う。以後、同様にしてマクロブロックラインＭＢＬ１０、ＭＢＬ１４などの復号処理を続ける。
【００５７】
また、画像復号処理部３９＿３は、まず、マクロブロックラインポインタテーブル３８からマクロブロックラインポインタＡＵ０ＰＴＲ３の値を取得し、このマクロブロックラインポインタＡＵ０ＰＴＲ３が示す中間データバッファ３７内のデータ位置からアクセスユニットＡＵ０内のピクチャのマクロブロックラインＭＢＬ３の中間データを読み出し、マクロブロックラインＭＢＬ３の画像復号処理を行う。
【００５８】
そして、画像復号処理部３９＿３は、アクセスユニットＡＵ０内のピクチャのマクロブロックラインＭＢＬ３の画像復号処理が完了すると、次に、マクロブロックラインポインタＡＵ０ＰＴＲ７の値を取得し、このマクロブロックラインポインタＡＵ０ＰＴＲ７が示す中間データバッファ３７内のデータ位置からマクロブロックラインＭＢＬ７の中間データを読み出し、マクロブロックラインＭＢＬ７の画像復号処理を行う。以後、同様にしてマクロブロックラインＭＢＬ１１、ＭＢＬ１５などの復号処理を続ける。
【００５９】
図７は本発明のＭＰＥＧデコーダの第２実施形態５２の動作例を示すタイミングチャートであり、（Ａ）は可変長復号処理部３６＿０の処理状況、（Ｂ）は可変長復号処理部３６＿１の処理状況、（Ｃ）は画像復号処理部３９＿０の処理状況、（Ｄ）は画像復号処理部３９＿１の処理状況、（Ｅ）は画像復号処理部３９＿２の処理状況、（Ｆ）は画像復号処理部３９＿３の処理状況を示している。
【００６０】
この例では、可変長復号処理部３６＿０は、ＡＵ検出部３５が先に出力したアクセスユニットＡＵ０内のピクチャについての可変長復号処理の実行を開始し、可変長復号処理部３６＿１は、ＡＵ検出部３５がアクセスユニットＡＵ０の次に出力したアクセスユニットＡＵ１内のピクチャについての可変長復号処理の実行を開始している。
【００６１】
その後、可変長復号処理部３６＿０は、アクセスユニットＡＵ０内のピクチャについての可変長復号処理を可変長復号処理部３６＿１によるアクセスユニットＡＵ１内のピクチャについての可変長復号処理よりも先に終了させている。そこで、可変長復号処理部３６＿０は、ＡＵ検出部３５がアクセスユニットＡＵ１の次に出力したアクセスユニットＡＵ２内のピクチャについての可変長復号処理の実行を開始している。
【００６２】
その後、可変長復号処理部３６＿０は、アクセスユニットＡＵ２内のピクチャについての可変長復号処理を可変長復号処理部３６＿１によるアクセスユニットＡＵ１内のピクチャについての可変長復号処理よりも先に終了させている。そこで、可変長復号処理部３６＿０は、ＡＵ検出部３５がアクセスユニットＡＵ２の次に出力したアクセスユニットＡＵ３内のピクチャについての可変長復号処理の実行を開始している。
【００６３】
その後、可変長復号処理部３６＿１は、アクセスユニットＡＵ１内のピクチャについての可変長復号処理を終了させている。そこで、可変長復号処理部３６＿１は、ＡＵ検出部３５がアクセスユニットＡＵ３の次に出力したアクセスユニットＡＵ４内のピクチャについての可変長復号処理の実行を開始している。
【００６４】
そして、この例の場合には、可変長復号処理部３６＿０によるアクセスユニットＡＵ０内のピクチャについての可変長復号処理が終了すると、画像復号処理部３９＿０〜３９＿３は、それぞれアクセスユニットＡＵ０内のピクチャのマクロブロックラインＭＢＬ０、ＭＢＬ１、ＭＢＬ２、ＭＢＬ３についての画像復号処理を開始している。
【００６５】
その後、可変長復号処理部３６＿１によるアクセスユニットＡＵ１内のピクチャについての可変長復号処理が終了し、また、画像復号処理部３９＿０〜３９＿３によるアクセスユニットＡＵ０内のピクチャのマクロブロックラインＭＢＬ１２、ＭＢＬ１３、ＭＢＬ１４、ＭＢＬ１５についての画像復号処理を終了している。
【００６６】
そこで、この場合には、画像復号処理部３９＿０、３９＿１、３９＿２、３９＿３は、それぞれアクセスユニットＡＵ１内のピクチャのマクロブロックラインＭＢＬ０、ＭＢＬ１、ＭＢＬ２、ＭＢＬ３についての画像復号処理を開始している。
【００６７】
以上のように、本発明のＭＰＥＧデコーダの第２実施形態５２においては、４個の画像復号処理部３９＿０〜３９＿３による画像復号処理のマクロブロックラインレベルでの並列化を行うようにしているが、中間データバッファ３７を挟んで、可変長復号処理部３６＿０、３６＿１と、画像復号処理部３９＿０〜３９＿３を設けるようにし、可変長復号処理部３６＿０、３６＿１と画像復号処理部３９＿０〜３９＿３との処理の進みを合わせながら、可変長復号処理部３６＿０、３６＿１によるピクチャレベルでの並列処理を可能としている。
【００６８】
この結果、可変長復号処理部３６＿０、３６＿１の個々の動作周波数を第１従来例のＭＰＥＧデコーダ２と同様としても、可変長復号処理部３６＿０、３６＿１による可変長復号処理のピクチャレベルでの並列化により可変長復号処理の高速化を図ることができる。したがって、本発明のＭＰＥＧデコーダの第２実施形態５２によれば、全体の動作周波数を上げることなく、高い処理性能を実現することができる。
【００６９】
（本発明のＭＰＥＧデコーダの第３実施形態）
図８は本発明のＭＰＥＧデコーダの第３実施形態を説明するための図である。図８中、６２は本発明のＭＰＥＧデコーダの第３実施形態、６３は本発明のＭＰＥＧデコーダの第３実施形態６２が出力するデコード画像を格納するためのフレームメモリ、６４は本発明のＭＰＥＧデコーダの第３実施形態６２が出力するデコード画像のフレームメモリ６３への格納やフレームメモリ６３からの参照画像の読み出しなどを制御するメモリ制御部である。
【００７０】
また、本発明のＭＰＥＧデコーダの第３実施形態６２において、６５は復号対象のＭＰＥＧストリームからスライスを検出するスライス検出部、６６＿０、６６＿１はスライス単位で可変長復号処理を行う可変長復号処理（ＶＬＤ）部、６７は可変長復号処理部６６＿０、６６＿１が出力する中間データを格納するための中間データバッファである。なお、中間データバッファ６７は、複数のマクロブロックラインのデータを格納する容量を持つものである。
【００７１】
６８Ａは中間データバッファ６７に格納されたマクロブロックラインのデータ位置を示すマクロブロックラインポインタを記録するためのマクロブロックラインポインタテーブル、６８Ｂは中間データバッファ６７に格納されたスライスの先頭データ位置を示すスライスポインタを記録するためのスライスポインタテーブルである。
【００７２】
可変長復号処理部６６＿０、６６＿１は、アクセスユニット内のピクチャのスライスについて可変長復号処理を行い、中間データを中間データバッファ６７に書き込み、その際、中間データの格納位置を示すマクロブロックラインポインタ及びスライスポインタを作成し、マクロブロックラインポインタテーブル６８Ａ及びスライスポインタテーブル６８Ｂに記録する。
【００７３】
６９＿０は中間データバッファ６７から偶数マクロブロックラインの画像信号を読み出して画像復号処理を行う画像復号処理部であり、７０＿０は逆量子化（ＩＱ）部、７１＿０は逆直交変換（ＩＴ）部、７２＿０は動き補償（ＭＣ）部である。
【００７４】
６９＿１は中間データバッファ６７から奇数マクロブロックラインの画像信号を読み出して画像復号処理を行う画像復号処理部であり、７０＿１は逆量子化（ＩＱ）部、７１＿１は逆直交変換（ＩＴ）部、７２＿１は動き補償（ＭＣ）部である。
【００７５】
図９はスライスによるピクチャの分割例を示す図である。この例では、アクセスユニットＡＵ０のピクチャ３１＿０は、３個のスライスＳＬ０、ＳＬ１、ＳＬ２に分割され、アクセスユニットＡＵ１のピクチャ３１＿１も、３個のスライスＳＬ０、ＳＬ１、ＳＬ２に分割されている。
【００７６】
なお、ピクチャ３１＿０においては、スライスＳＬ１の先頭はマクロブロックラインＭＢＬ４を分断し、スライスＳＬ２の先頭はマクロブロックラインＭＢＬ１１を分断している。また、ピクチャ３１＿１においては、スライスＳＬ１の先頭はマクロブロックラインＭＢＬ３を分断し、スライスＳＬ２の先頭はマクロブロックラインＭＢＬ１０を分断している。
【００７７】
図１０はマクロブロックラインポインタテーブル６８Ａの例を示す図、図１１はスライステーブルポインタ６８Ｂの例を示す図、図１２は図１０に示すマクロブロックラインポインタテーブル６８Ａ及び図１１に示すスライスポインタテーブル６８Ｂが作成された場合のマクロブロックラインポインタ及びスライスポインタと中間データとの関係を示す図である。これら図１０、図１１及び図１２は、図９に示すスライスによるピクチャ分割例を前提としたものである。なお、図１０及び図１１において、「備考」の欄は、マクロブロックラインポインタテーブル６８Ａ及びスライスポインタテーブル６８Ｂの内容ではなく、説明のために記載したものである。
【００７８】
図１０及び図１２において、マクロブロックラインポインタＡＵ０ＰＴＲｉは、アクセスユニットＡＵ０内のピクチャのマクロブロックラインＭＢＬｉの中間データバッファ６７内の先頭データ位置を示し、マクロブロックラインポインタＡＵ１ＰＴＲｉは、アクセスユニットＡＵ１内のピクチャのマクロブロックラインＭＢＬｉの中間データバッファ６７内の先頭データ位置を示している。
【００７９】
また、図１１及び図１２において、ＡＵ０ＳＬｊ（但し、ｊ＝０、１、２である。）及びＡＵ１ＳＬｊはスライスポインタであり、スライスポインタＡＵ０ＳＬｊはスライスＳＬｊの中間データバッファ６７内の先頭データ位置を示し、スライスポインタＡＵ１ＳＬｊはスライスＳＬｊの中間データバッファ６７内の先頭データ位置を示している。また、図１１において、ＭＢＬの欄は、スライスポインタが示す位置がどのマクロブロックラインにあるかを示している。
【００８０】
この例では、可変長復号処理部６６＿０は、アクセスユニットＡＵ０内のピクチャのスライスＳＬ０、ＳＬ２及びアクセスユニットＡＵ１内のピクチャのスライスＳＬ１について可変長復号処理を行い、中間データを中間データバッファ６７に書き込み、その際、マクロブロックラインポインタ及びスライスポインタを作成し、これらをマクロブロックラインポインタテーブル６８Ａ及びスライスポインタテーブル６８Ｂに記録する。
【００８１】
また、可変長復号処理部６６＿１は、アクセスユニットＡＵ１内のピクチャのスライスＳＬ１及びアクセスユニットＡＵ１内のピクチャのスライスＳＬ０、ＳＬ２について可変長復号処理を行い、中間データを中間データバッファ６７に書き込むが、その際マクロブロックラインポインタ及びスライスポインタを作成し、これらをマクロブロックラインポインタテーブル６８Ａ及びスライスポインタテーブル６８Ｂに記録する。
【００８２】
また、この例では、マクロブロックラインポインタテーブル６８Ａからの偶数番目のマクロブロックラインポインタＡＵ０ＰＴＲ０、ＡＵ０ＰＴＲ２、…、ＡＵ０ＰＴＲ１４、ＡＵ１ＰＴＲ０、ＡＵ１ＰＴＲ２、…、ＡＵ１ＰＴＲ１４のリード元は画像復号処理部６９＿０に設定される。
【００８３】
また、マクロブロックラインポインタテーブル６８Ａからの奇数番目のマクロブロックラインポインタＡＵ０ＰＴＲ１、ＡＵ０ＰＴＲ３、…、ＡＵ０ＰＴＲ１５、ＡＵ１ＰＴＲ１、ＡＵ１ＰＴＲ３、…、ＡＵ１ＰＴＲ１５のリード元は画像復号処理部６９＿１に設定される。
【００８４】
また、スライスポインタテーブル６８ＢからのスライスポインタＡＵ０ＳＬ０、ＡＵ０ＳＬ１、ＡＵ１ＳＬ０、ＡＵ１ＳＬ２のリード元は画像復号処理部６９＿０であり、スライスポインタＡＵ０ＳＬ２、ＡＵ１ＳＬ１のリード元は画像復号処理部６９＿１に設定される。
【００８５】
そこで、画像復号処理部６９＿０は、まず、マクロブロックラインポインタテーブル６８ＡからマクロブロックラインポインタＡＵ０ＰＴＲ０の値を取得し、このマクロブロックラインポインタＡＵ０ＰＴＲ０が示す中間データバッファ６７内のデータ位置からアクセスユニットＡＵ０内のピクチャのマクロブロックラインＭＢＬ０の中間データを読み出し、マクロブロックラインＭＢＬ０の画像復号処理を行う。
【００８６】
そして、画像復号処理部６９＿０は、アクセスユニットＡＵ０内のピクチャのマクロブロックラインＭＢＬ０の画像復号処理が完了すると、次に、マクロブロックラインポインタＡＵ０ＰＴＲ２の値を取得し、このマクロブロックラインポインタＡＵ０ＰＴＲ２が示す中間データバッファ６７内のデータ位置からマクロブロックラインＭＢＬ２の中間データを読み出し、マクロブロックラインＭＢＬ２の画像復号処理を行う。
【００８７】
そして、画像復号処理部６９＿０は、アクセスユニットＡＵ０内のピクチャのマクロブロックラインＭＢＬ２の画像復号処理が完了すると、次に、マクロブロックラインポインタＡＵ０ＰＴＲ４の値を取得し、このマクロブロックラインポインタＡＵ０ＰＴＲ４が示す中間データバッファ６７内のデータ位置からマクロブロックラインＭＢＬ４の中間データを読み出し、マクロブロックラインＭＢＬ４の画像復号処理を開始する。
【００８８】
しかしながら、マクロブロックラインＭＢＬ４は、スライスで分かれているので、画像復号処理部６９＿０は、マクロブロックラインポインタＡＵ０ＰＴＲ４が示す位置からスライスポインタＡＵ０ＳＬ２が示す位置までのデータを処理した後、スライスポインタＡＵ０ＳＬ１が示す位置に飛び、残りのマクロブロックラインＭＢＬ４の復号処理を行う。以後、同様の処理を行いながら、偶数マクロブロックラインの復号処理を行う。画像復号処理部６９＿１も、奇数マクロブロックラインについて同様にして復号処理を行う。
【００８９】
図１３は本発明のＭＰＥＧデコーダの第３実施形態６２の動作例を示すタイミングチャートであり、（Ａ）は可変長復号処理部６６＿０の処理状況、（Ｂ）は可変長復号処理部６６＿１の処理状況、（Ｃ）は画像復号処理部６９＿０の処理状況、（Ｄ）は画像復号処理部６９＿１の処理状況を示している。
【００９０】
この例では、可変長復号処理部６６＿０は、アクセスユニットＡＵ０内のピクチャのスライスＳＬ０、ＳＬ２及びアクセスユニットＡＵ１内のピクチャのスライスＳＬ１の順に可変長復号処理を行い、可変長復号処理部６６＿１は、アクセスユニットＡＵ０内のピクチャのスライスＳＬ１及びアクセスユニットＡＵ１内のピクチャのスライスＳＬ０、ＳＬ２の順に可変長復号処理を行っている。
【００９１】
そこで、この例の場合には、可変長復号処理部６６＿０によるアクセスユニットＡＵ０内のピクチャのスライスＳＬ０についての可変長復号処理が終了すると、画像復号処理部６９＿０は、アクセスユニットＡＵ０内のピクチャの偶数マクロブロックラインについての画像復号処理を開始し、画像復号処理部６９＿１は、アクセスユニットＡＵ０内のピクチャの奇数マクロブロックラインについての画像復号処理を開始している。
【００９２】
そして、その後、画像復号処理部６９＿０によるアクセスユニットＡＵ０内のピクチャの偶数マクロブロックラインについての画像復号処理が終了し、画像復号処理部６９＿１によるアクセスユニットＡＵ０内のピクチャの奇数マクロブロックラインについての画像復号処理が終了しているが、このときには、既に可変長復号処理部６９＿１によるアクセスユニットＡＵ０内のピクチャのスライスＳＬ０の可変長復号処理が終了している。
【００９３】
そこで、この場合には、画像復号処理部６９＿０は、アクセスユニットＡＵ１内のピクチャの偶数マクロブロックラインについて画像復号処理の実行を開始し、画像復号処理部６９＿１は、アクセスユニットＡＵ１内のピクチャの奇数マクロブロックラインについて画像復号処理の実行を開始している。
【００９４】
以上のように、本発明のＭＰＥＧデコーダの第３実施形態６２においては、第１従来例のＭＰＥＧデコーダ２の場合と同様に、画像復号処理部６９＿０、６９＿１による画像復号処理のマクロブロックラインレベルでの並列化を行うようにしているが、第１従来例のＭＰＥＧデコーダ２の場合と異なり、中間データバッファ６７を挟んで、可変長復号処理部６６＿０、６６＿１と画像復号処理部６９＿０、６９＿１を設けるようにし、可変長復号処理部６６＿０、６６＿１と画像復号処理部６９＿０、６９＿１との処理の進みを合わせながら、可変長復号処理部６６＿０、６６＿１によるスライスレベルでの並列処理を可能としている。
【００９５】
この結果、可変長復号処理部６６＿０、６６＿１の個々の動作周波数を第１従来例のＭＰＥＧデコーダ２と同様としても、可変長復号処理部６６＿０、６６＿１による可変長復号処理のスライスレベルでの並列化により可変長復号処理の高速化を図ることができる。したがって、本発明のＭＰＥＧデコーダの第３実施形態６２によれば、全体の動作周波数を上げることなく、高い処理性能を実現することができる。しかも、可変長復号処理は、スライスレベルでの並列化により実行するようにしているので、ピクチャレベルでの並列化の場合よりも処理遅延を少なくすることができる。
【００９６】
なお、本発明のＭＰＥＧデコーダの第１実施形態３２、第２実施形態５２、第３実施形態６２においては、可変長復号処理部及び画像復号処理部を全て使用する場合について説明したが、本発明のＭＰＥＧデコーダの第１実施形態３２、第２実施形態５２、第３実施形態６２に設ける全体制御部（図示せず）により可変長復号処理部の並列数と画像復号処理部の並列数を制御可能とするようにしても良く、上記に述べた並列数に限定されない。
【００９７】
このようにする場合には、画像サイズは大きいが、ビットレートが低く、このため、画像復号処理部の並列度は大きくしなければならないが、可変長復号処理部の並列度は小さくしても良い場合や、ハード構成的に並列度が高い構成であっても、それだけの処理能力が不要な場合に、可変長復号処理部又は画像復号処理部の一部を停止させ、消費電力を下げて使用したい場合などに対応することができる。
【００９８】
また、本発明のＭＰＥＧデコーダの第１実施形態３２、第２実施形態５２及び第３実施形態６２においては、画像復号処理をマクロブロックラインレベルでの並列処理で行うようにしているが、Ｈ.２６４／ＡＶＣのＭＢＡＦＦによる場合には、画像復号処理をマクロブロックペアラインレベルでの並列処理で行うように構成することができる。この場合、マクロブロックラインポインタテーブルの代わりに、マクロブロックペアラインポインタテーブルを設けるようにする。また、中間データバッファは、複数のマクロブロックラインのデータが格納できる容量とする。
【００９９】
（本発明のＭＰＥＧエンコーダの一実施形態）
図１４は本発明のＭＰＥＧエンコーダの一実施形態を説明するための図である。図１４中、８２は本発明のＭＰＥＧエンコーダの一実施形態であり、入力画像を圧縮符号化してＭＰＥＧストリームを作成するものである。
【０１００】
８３は本発明のＭＰＥＧエンコーダの一実施形態８２が出力するローカルデコード画像を格納するためのフレームメモリ、８４は本発明のＭＰＥＧエンコーダの一実施形態８２が出力するローカルデコード画像のフレームメモリ８３への格納やフレームメモリ８３からの参照画像の読み出し等を制御するメモリ制御部である。
【０１０１】
８５＿０は入力画像の偶数マクロブロックラインの画像符号処理を行う画像符号処理部であり、８６＿０は動きベクトル算出部、８７＿０は動き補償（ＤＩＦＦ）部、８８＿０は直交変換（Ｔ）部、８９＿０は量子化（Ｑ）部、９０＿０は逆量子化（ＩＱ）部、９１＿０は逆直交変換（ＩＴ）部、９２＿０は動き補償（ＭＣ）部である。
【０１０２】
８５＿１は入力画像の奇数マクロブロックラインの画像符号処理を行う画像符号処理部であり、８６＿１は動きベクトル算出部、８７＿１は動き補償（ＤＩＦＦ）部、８８＿１は直交変換（Ｔ）部、８９＿１は量子化（Ｑ）部、９０＿１は逆量子化（ＩＱ）部、９１＿１は逆直交変換（ＩＴ）部、９２＿１は動き補償（ＭＣ）部である。
【０１０３】
９３は画像符号処理部８５＿０、８５＿１が出力する中間データが格納される中間データバッファ、９４は中間データバッファ９３に格納されたマクロブロックラインのデータ位置を示すマクロブロックラインポインタを記録するためのマクロブロックラインポインタテーブルである。なお、中間データバッファ９３は、複数のマクロブロックラインのデータを格納する容量を持つものである。
【０１０４】
画像符号処理部８５＿０、８５＿１は、入力画像についてマクロブロックライン単位で画像符号処理を行い、マクロブロックライン単位で中間データを中間データバッファに書き込み、その際、中間データの格納位置を示すマクロブロックラインポインタを作成し、マクロブロックラインポインタテーブル９４に記録する。
【０１０５】
９５＿０、９５＿１は中間データバッファ９３からピクチャ単位で中間データを読み出して可変長符号処理を行う可変長符号処理部、９６＿０は可変長符号処理部９５＿０が出力するストリームが格納されるストリームバッファ、９６＿１は可変長符号処理部９５＿１が出力するストリームが格納されるストリームバッファ、９７はストリームバッファ９６＿０に格納されたストリームとストリームバッファ９６＿１に格納されたストリームとを多重化してＭＰＥＧストリームを生成する多重化部である。
【０１０６】
図１５はマクロブロックラインポインタテーブル９４の例を示す図である。図１６は図１５に示すマクロブロックラインポインタテーブル９４が作成された場合のマクロブロックラインポインタと中間データとの関係を示す図である。なお、図１５において、「備考」の欄は、マクロブロックラインポインタテーブル９４の内容ではなく、説明のために記載したものである。
【０１０７】
この例では、画像符号処理部８５＿０は、アクセスユニットＡＵ０のピクチャの偶数マクロブロックラインＭＢＬ０、ＭＢＬ２、…、ＭＢＬ１４及びアクセスユニットＡＵ１のピクチャの偶数マクロブロックラインＭＢＬ０、ＭＢＬ２、…、ＭＢＬ１４の画像符号処理を行い、マクロブロックライン単位で中間データを中間データバッファ９３に書き込むが、その際、マクロブロックラインポインタＡＵ０ＰＴＲ０、ＡＵ０ＰＴＲ２、…ＡＵ０ＰＴＲ１４、ＡＵ１ＰＴＲ０、ＡＵ１ＰＴＲ２、…、ＡＵ１ＰＴＲ１４を作成し、マクロブロックラインポインタテーブル９４に記録する。
【０１０８】
また、画像符号処理部８５＿１は、アクセスユニットＡＵ０のピクチャの奇数マクロブロックラインＭＢＬ１、ＭＢＬ３、…、ＭＢＬ１５及びアクセスユニットＡＵ１のピクチャの奇数マクロブロックラインＭＢＬ１、ＭＢＬ３、…、ＭＢＬ１５の画像符号処理を行い、マクロブロックライン単位で中間データを中間データバッファ９３に書き込むが、その際、マクロブロックラインポインタＡＵ０ＰＴＲ１、ＡＵ０ＰＴＲ３、…ＡＵ０ＰＴＲ１５、ＡＵ１ＰＴＲ１、ＡＵ１ＰＴＲ３、…、ＡＵ１ＰＴＲ１５を作成し、マクロブロックラインポインタテーブル９４に記録する。
【０１０９】
また、この例では、マクロブロックラインポインタテーブル９４からのポインタＡＵ０ＰＴＲ０、ＡＵ０ＰＴＲ１、…、ＡＵ０ＰＴＲ１５のリード元は可変長符号処理部９５＿０に設定される。また、マクロブロックラインポインタテーブル９４からのポインタＡＵ１ＰＴＲ０、ＡＵ１ＰＴＲ１、…、ＡＵ１ＰＴＲ１５のリード元は可変長符号処理部９５＿１に設定される。
【０１１０】
そこで、可変長符号処理部９５＿０は、まず、マクロブロックラインポインタテーブル９４からマクロブロックラインポインタＡＵ０ＰＴＲ０の値を取得し、このマクロブロックラインポインタＡＵ０ＰＴＲ０が示す中間データバッファ９３内のデータ位置からアクセスユニットＡＵ０内のピクチャのマクロブロックラインＭＢＬ０の中間データを読み出し、マクロブロックラインＭＢＬ０の可変長符号処理を行う。
【０１１１】
そして、可変長符号処理部９５＿０は、アクセスユニットＡＵ０内のピクチャのマクロブロックラインＭＢＬ０の可変長符号処理が完了すると、次に、マクロブロックラインポインタＡＵ０ＰＴＲ１の値を取得し、このマクロブロックラインポインタＡＵ０ＰＴＲ１が示す中間データバッファ９３内のデータ位置からマクロブロックラインＭＢＬ１の中間データを読み出し、マクロブロックラインＭＢＬ１の画像符号処理を行う。以後、同様にしてアクセスユニットＡＵ０内のピクチャの可変長符号処理を続ける。
【０１１２】
また、可変長符号処理部９５＿１は、まず、マクロブロックラインポインタテーブル９４からマクロブロックラインポインタＡＵ１ＰＴＲ０の値を取得し、このマクロブロックラインポインタＡＵ１ＰＴＲ０が示す中間データバッファ９３内のデータ位置からアクセスユニットＡＵ１内のピクチャのマクロブロックラインＭＢＬ０の中間データを読み出し、マクロブロックラインＭＢＬ０の可変長符号処理を行う。
【０１１３】
そして、可変長符号処理部９５＿１は、アクセスユニットＡＵ１内のピクチャのマクロブロックラインＭＢＬ０の可変長符号処理が完了すると、次に、マクロブロックラインポインタＡＵ１ＰＴＲ１の値を取得し、このマクロブロックラインポインタＡＵ０ＰＴＲ１が示す中間データバッファ９３内のデータ位置からマクロブロックラインＭＢＬ１の中間データを読み出し、マクロブロックラインＭＢＬ１の画像復号処理を行う。以後、同様にしてアクセスユニットＡＵ１内のピクチャの可変長符号処理を続ける。
【０１１４】
図１７は本発明のＭＰＥＧエンコーダの一実施形態８２の動作例を示すタイミングチャートであり、（Ａ）は画像符号処理部８５＿０の処理状況、（Ｂ）は画像符号処理部８５＿１の処理状況、（Ｃ）は可変長符号処理部９５＿０の処理状況、（Ｄ）は可変長符号処理部９５＿１の処理状況を示している。
【０１１５】
この例では、画像符号処理部８５＿０は、アクセスユニットＡＵ０のピクチャの偶数マクロブロックライン、アクセスユニットＡＵ１のピクチャの偶数マクロブロックライン、アクセスユニットＡＵ２のピクチャの偶数マクロブロックライン及びアクセスユニットＡＵ３のピクチャの偶数マクロブロックラインについて順に画像符号処理を実行している。
【０１１６】
また、画像符号処理部８５＿１は、アクセスユニットＡＵ０のピクチャの奇数マクロブロックライン、アクセスユニットＡＵ１のピクチャの奇数マクロブロックライン、アクセスユニットＡＵ２のピクチャの奇数マクロブロックライン及びアクセスユニットＡＵ３のピクチャの奇数マクロブロックラインについて順に画像符号処理を実行している。
【０１１７】
そして、この例の場合には、画像符号処理部８５＿０、８５＿１によるアクセスユニットＡＵ０のピクチャについての画像符号処理が終了すると、可変長符号処理部９５＿０は、アクセスユニットＡＵ０のピクチャについての可変長符号処理を開始している。
【０１１８】
その後、画像符号処理部８５＿０、８５＿１によるアクセスユニットＡＵ１のピクチャについての画像符号処理が終了すると、可変長符号処理部９５＿１は、アクセスユニットＡＵ１のピクチャについての可変長符号処理を開始している。
【０１１９】
その後、画像符号処理部８５＿０、８５＿１によるアクセスユニットＡＵ２のピクチャについての画像符号処理が終了しているが、このときには、可変長符号処理部９５＿０は、既にアクセスユニットＡＵ０のピクチャについての可変長符号処理を終了しているので、アクセスユニットＡＵ２のピクチャについての可変長符号処理を開始している。
【０１２０】
以上のように、本発明のＭＰＥＧエンコーダの一実施形態８２においては、画像符号処理部８５＿０、８５＿１による画像符号処理のマクロブロックラインレベルでの並列化を行うようにしているが、中間データバッファ９３を挟んで、画像符号処理部８５＿０、８５＿１と可変長符号処理部９５＿０、９５＿１を設けるようにし、画像符号処理部８５＿０、８５＿１と可変長符号処理部９５＿０、９５＿１との処理の進みを合わせながら、可変長符号処理部９５＿０、９５＿１によるピクチャレベルでの並列処理を可能としている。なお、可変長符号処理部は、２個に限定されず、処理能力に合わせた並列構成又は１個とすることができる。
【０１２１】
この結果、可変長符号処理部９５＿０、９５＿１の個々の動作周波数が低くても、可変長符号処理部９５＿０、９５＿１による可変長符号処理のピクチャレベルでの並列化により可変長符号処理の高速化を図ることができる。したがって、本発明のＭＰＥＧエンコーダの一実施形態８２によれば、全体の動作周波数を上げることなく、高い処理性能を実現することができる。
【０１２２】
なお、本発明のＭＰＥＧエンコーダの一実施形態８２においては、可変長符号処理部９５＿０、９５＿１はピクチャ単位で処理を行うようにしているが、スライス単位で処理を行い、スライスレベルでの並列処理を行うように構成することもできる。この場合には、スライスの区切りを示すスライスポインタを記録するためのスライスポインタテーブルを設けるようにする。
【０１２３】
また、本発明のＭＰＥＧエンコーダの一実施形態８２においては、画像符号処理部及び可変長符号処理部を全て使用する場合について説明したが、本発明のＭＰＥＧエンコーダの一実施形態８２に設ける全体制御部（図示せず）により画像符号処理部の並列数と可変長符号処理部の並列数を制御可能とするようにしても良い。
【０１２４】
また、本発明のＭＰＥＧエンコーダの一実施形態８２においては、画像符号処理をマクロブロックラインレベルでの並列処理で行うようにしているが、Ｈ.２６４／ＡＶＣのＭＢＡＦＦによる場合には、画像符号処理をマクロブロックペアラインレベルでの並列処理で行うように構成することができる。この場合、マクロブロックラインポインタテーブルの代わりに、マクロブロックペアラインポインタテーブルを設けるようにする。また、中間データバッファは、複数のマクロブロックラインのデータが格納できる容量とする。
【０１２５】
ここで、本発明を整理すると、本発明には、少なくとも、以下のＭＰＥＧデコーダ及びＭＰＥＧエンコーダが含まれる。
【０１２６】
（付記１）一つ以上の可変長復号処理部と、該一つ以上の可変長復号処理部が出力するデータを格納するデータバッファと、該データバッファから前記データを読み出して画像復号処理を行う複数の画像復号処理部を備えることを特徴とするＭＰＥＧデコーダ。
【０１２７】
（付記２）前記データバッファは、複数マクロブロックライン又は複数マクロブロックペアラインのデータが格納可能とされたものであることを特徴とする付記１に記載のＭＰＥＧデコーダ。
【０１２８】
（付記３）前記データバッファ内のマクロブロックライン又はマクロブロックペアラインのデータ位置を示すマクロブロックラインポインタ又はマクロブロックペアラインポインタを記録する記録部を備えることを特徴とする付記２に記載のＭＰＥＧデコーダ。
【０１２９】
（付記４）前記データバッファに格納されたデータのスライス区切りを示すスライスポインタを記録する記録部を備えることを特徴とする付記２に記載のＭＰＥＧデコーダ。
【０１３０】
（付記５）前記複数の画像復号処理部は、前記可変長復号処理部が前記データバッファに格納したデータを読み出し、マクロブロックライン単位又はマクロブロックペアライン単位で並列処理を行うことを特徴とする付記１、２又は３に記載のＭＰＥＧデコーダ。
【０１３１】
（付記６）前記一つ以上の可変長復号処理部が複数の可変長復号処理部の場合、該複数の可変長復号処理部は、ピクチャ単位で並列処理を行い、前記複数の画像復号処理部は、マクロブロックライン単位又はマクロブロックペアライン単位で並列処理を行うことを特徴とする付記１、２又は３に記載のＭＰＥＧデコーダ。
【０１３２】
（付記７）前記一つ以上の可変長復号処理部が複数の可変長復号処理部の場合、該複数の可変長復号処理部は、スライス単位で並列処理を行い、前記複数の画像復号処理部は、マクロブロックライン単位又はマクロブロックペアライン単位で並列処理を行うことを特徴とする付記１〜４のいずれか一の付記に記載のＭＰＥＧデコーダ。
【０１３３】
（付記８）前記一つ以上の可変長復号処理部が複数の可変長復号処理部の場合、該複数の可変長復号処理部のうち、動作させる可変長復号処理部の数と、前記画像復号処理部のうち、動作させる画像復号処理部の数を制御可能とされていることを特徴とする付記１〜７のいずれか一の付記に記載のＭＰＥＧデコーダ。
【０１３４】
（付記９）複数の画像符号処理部と、該複数の画像符号処理部が出力するデータを格納するデータバッファと、該データバッファから前記データを読み出して可変長符号処理を行う一つ以上の可変長符号処理部を備えることを特徴とするＭＰＥＧエンコーダ。
【０１３５】
（付記１０）前記データバッファは、複数マクロブロックライン又は複数マクロブロックペアラインのデータが格納可能とされたものであることを特徴とする付記９に記載のＭＰＥＧエンコーダ。
【０１３６】
（付記１１）前記データバッファ内のマクロブロックライン又はマクロブロックペアラインのデータ位置を示すマクロブロックラインポインタ又はマクロブロックペアラインポインタを記録する記録部を備えることを特徴とする付記１０に記載のＭＰＥＧエンコーダ。
【０１３７】
（付記１２）前記データバッファに格納されたデータのスライス区切りを示すスライスポインタを記録する記録部を備えることを特徴とする付記１０に記載のＭＰＥＧエンコーダ。
【０１３８】
（付記１３）前記複数の画像符号処理部は、マクロブロックライン単位又はマクロブロックペアライン単位で並列処理を行い、前記可変長符号処理部は、前記マクロブロックライン又はマクロブロックペアラインのデータを順次読み出して可変長復号処理を行うことを特徴とする付記９、１０又は１１に記載のＭＰＥＧエンコーダ。
【０１３９】
（付記１４）前記一つ以上の可変長符号処理部が複数の可変長符号処理部の場合、前記複数の画像符号処理部は、マクロブロックライン単位又はマクロブロックペアライン単位で並列処理を行い、前記複数の可変長符号処理部は、ピクチャ単位で並列処理を行うことを特徴とする付記９、１０又は１１に記載のＭＰＥＧエンコーダ。
【０１４０】
（付記１５）前記一つ以上の可変長符号処理部が複数の可変長符号処理部の場合、前記複数の画像符号処理部は、マクロブロックライン単位又はマクロブロックペアライン単位で並列処理を行い、前記複数の可変長符号処理部は、スライス単位で並列処理を行うことを特徴とする付記９〜１２のいずれか一の付記に記載のＭＰＥＧエンコーダ。
【０１４１】
（付記１６）前記一つ以上の可変長符号処理部が複数の可変長符号処理部の場合、前記複数の画像符号処理部のうち、動作させる画像符号処理部の数と、前記可変長符号処理部のうち、動作させる可変長符号処理部の数を制御可能とされていることを特徴とする付記９〜１５のいずれか一の付記に記載のＭＰＥＧエンコーダ。
【図面の簡単な説明】
【０１４２】
【図１】本発明のＭＰＥＧデコーダの第１実施形態を説明するための図である。
【図２】本発明のＭＰＥＧデコーダの第１実施形態で作成されるマクロブロックラインポインタテーブルの例を示す図である。
【図３】図２に示すマクロブロックラインポインタテーブルが作成された場合のマクロブロックラインポインタと中間データとの関係を示す図である。
【図４】本発明のＭＰＥＧデコーダの第１実施形態の動作例を示すタイミングチャートである。
【図５】本発明のＭＰＥＧデコーダの第２実施形態を説明するための図である。
【図６】本発明のＭＰＥＧデコーダの第２実施形態で作成されるマクロブロックラインポインタテーブルの例を示す図である。
【図７】本発明のＭＰＥＧデコーダの第２実施形態の動作例を示すタイミングチャートである。
【図８】本発明のＭＰＥＧデコーダの第３実施形態を説明するための図である。
【図９】スライスによるピクチャの分割例を示す図である。
【図１０】本発明のＭＰＥＧデコーダの第３実施形態で作成されるマクロブロックラインポインタテーブルの例を示す図である。
【図１１】本発明のＭＰＥＧデコーダの第３実施形態で作成されるスライスポインタテーブルの例を示す図である。
【図１２】図１０に示すマクロブロックラインポインタテーブル及び図１１に示すスライスポインタテーブルが作成された場合のマクロブロックラインポインタ及びスライスポインタと中間データとの関係を示す図である。
【図１３】本発明のＭＰＥＧデコーダの第３実施形態の動作例を示すタイミングチャートである。
【図１４】本発明のＭＰＥＧエンコーダの一実施形態を説明するための図である。
【図１５】本発明のＭＰＥＧエンコーダの一実施形態が備えるマクロブロックラインポインタテーブルの例を示す図である。
【図１６】図１５に示すマクロブロックラインポインタテーブルが作成された場合のマクロブロックラインポインタと中間データとの関係を示す図である。
【図１７】本発明のＭＰＥＧエンコーダの一実施形態の動作例を示すタイミングチャートである。
【図１８】第１従来例のＭＰＥＧデコーダを説明するための図である。
【図１９】第２従来例のＭＰＥＧデコーダを説明するための図である。
【符号の説明】
【０１４３】
１…ピクチャ
２…第１従来例のＭＰＥＧデコーダ
３…フレームメモリ
４…メモリ制御部
５…可変長復号処理部
６＿０、６＿１…逆量子化部
７＿０、７＿１…逆直交変換部
８＿０、８＿１…動き補償部
１１…ピクチャ
１２…第２従来例のＭＰＥＧデコーダ
１３…フレームメモリ
１４…メモリ制御部
１５…スライス検出部
１６＿０、１６＿１…デコード処理部
１７＿０、１７＿１…可変長復号処理部
１８＿０、１８＿１…逆量子化部
１９＿０、１９＿１…逆直交変換部
２０＿０、２０＿１…動き補償部
３１＿０、３１＿１…ピクチャ
３２…本発明のＭＰＥＧデコーダの第１実施形態
３３…フレームメモリ
３４…メモリ制御部
３５…ＡＵ検出部
３６＿０、３６＿１…可変長復号処理部
３７…中間データバッファ
３８…マクロブロックラインポインタテーブル
３９＿０〜３９＿３…画像復号処理部
４０＿０〜４０＿３…逆量子化部
４１＿０〜４１＿３…逆直交変換部
４２＿０〜４２＿３…動き補償部
５２…本発明のＭＰＥＧデコーダの第２実施形態
５３…フレームメモリ
５４…メモリ制御部
６２…本発明のＭＰＥＧデコーダの第３実施形態
６３…フレームメモリ
６４…メモリ制御部
６５…スライス検出部
６６＿０、６６＿１…可変長復号処理部
６７…中間データバッファ
６８Ａ…マクロブロックラインポインタテーブル
６８Ｂ…スライスポインタテーブル
６９＿０、６９＿１…画像復号処理部
７０＿０、７０＿１…逆量子化部
７１＿０、７１＿１…逆直交変換部
７２＿０、７２＿１…動き補償部
８２…本発明のＭＰＥＧエンコーダの一実施形態
８３…フレームメモリ
８４…メモリ制御部
８５＿０、８５＿１…画像符号処理部
８６＿０、８６＿１…動きベクトル算出部
８７＿０、８７＿１…動き補償部
８８＿０、８８＿１…直交変換部
８９＿０、８９＿１…量子化部
９０＿０、９０＿１…逆量子化部
９１＿０、９１＿１…逆直交変換部
９２＿０、９２＿１…動き補償部
９３…中間データバッファ
９４…マクロブロックラインポインタテーブル
９５＿０、９５＿１…可変長符号処理部
９６＿０、９６＿１…ストリームバッファ
９７…多重化部
【図１】
2008067026.tif 000003
【図２】
2008067026.tif 000004
【図３】
2008067026.tif 000005
【図４】
2008067026.tif 000006
【図５】
2008067026.tif 000007
【図６】
2008067026.tif 000008
【図７】
2008067026.tif 000009
【図８】
2008067026.tif 000010
【図９】
2008067026.tif 000011
【図１０】
2008067026.tif 000012
【図１１】
2008067026.tif 000013
【図１２】
2008067026.tif 000014
【図１３】
2008067026.tif 000015
【図１４】
2008067026.tif 000016
【図１５】
2008067026.tif 000017
【図１６】
2008067026.tif 000018
【図１７】
2008067026.tif 000019
【図１８】
2008067026.tif 000020
【図１９】
2008067026.tif 000021