(57)【要約】【課題】ＭＰＥＧ規格に従って符号化された動画像データの復号処理を少量のハードウエアで高速に実行すること。【解決手段】予測画像データの転送を、マクロブロック階層処理の最初でなく個々のブロック階層処理の最初に行う。すなわちマクロブロック階層ヘッダデコード処理（ステップＳ２０５）の後、ヘッダ内の動きベクタから１回目のブロック階層処理で使用する予測画像データ（１ブロック分×最大２個）の位置を計算し、当該データを外部メモリから内蔵メモリへＤＭＡ転送する（ステップＳ２１０）。そして、この転送と平行して可変長復号処理（ステップＳ２０６）・逆量子化処理（ステップＳ２０７）・逆ＤＣＴ処理（ステップＳ２０８）を行い、さらに、この間に通常は転送完了している上記予測画像データを用いて動き補償処理を行う（ステップＳ２０９）。２回目以降のブロック階層処理も同様とする。【選択図】        図２
2005057688.tif 000002
【特許請求の範囲】
【請求項１】
ＭＰＥＧ規格に従って符号化された動画像中の処理対象のブロックにつき可変長復号処理を行う可変長復号処理工程と、
前記可変長復号処理工程による可変長復号処理の処理結果につき逆量子化処理を行う逆量子化処理工程と、
前記逆量子化処理工程による逆量子化処理の処理結果につき逆ＤＣＴ処理を行う逆ＤＣＴ処理工程と、
前記可変長復号処理工程、前記逆量子化処理工程または前記逆ＤＣＴ処理工程と平行して、前記処理対象のブロックの復号に用いる予測画像データを第１の記憶媒体から第２の記憶媒体に転送する予測画像転送工程と、
前記予測画像転送工程で転送された予測画像データを前記第２の記憶媒体から読み出すとともに、当該予測画像データを用いて前記逆ＤＣＴ処理工程による逆ＤＣＴ処理の処理結果につき動き補償処理を行う動き補償処理工程と、
を含んだことを特徴とする画像処理方法。
【請求項２】
前記予測画像転送工程では、前記予測画像データを前記第１の記憶媒体である外部メモリから前記第２の記憶媒体であるプロセッサの内蔵メモリにＤＭＡ転送することを特徴とする前記請求項１に記載の画像処理方法。
【請求項３】
前記予測画像転送工程では、前記予測画像データを前記第１の記憶媒体である外部メモリから前記第２の記憶媒体であるプロセッサのデータキャッシュに転送することを特徴とする前記請求項１に記載の画像処理方法。
【請求項４】
ＭＰＥＧ規格に従って符号化された動画像中の処理対象のブロックにつき可変長復号処理を行う可変長復号処理工程と、
前記可変長復号処理工程による可変長復号処理の処理結果につき逆量子化処理を行う逆量子化処理工程と、
前記逆量子化処理工程による逆量子化処理の処理結果につき逆ＤＣＴ処理を行う逆ＤＣＴ処理工程と、
前記可変長復号処理工程、前記逆量子化処理工程または前記逆ＤＣＴ処理工程と平行して、前記処理対象のブロックの復号に用いる予測画像データを第１の記憶媒体から第２の記憶媒体に転送する予測画像転送工程と、
前記予測画像転送工程で転送された予測画像データを前記第２の記憶媒体から読み出すとともに、当該予測画像データを用いて前記逆ＤＣＴ処理工程による逆ＤＣＴ処理の処理結果につき動き補償処理を行う動き補償処理工程と、
をプロセッサに実行させることを特徴とする画像処理プログラム。
【請求項５】
ＭＰＥＧ規格に従って符号化された動画像中の処理対象のブロックにつき可変長復号処理を行う可変長復号処理手段と、
前記可変長復号処理手段による可変長復号処理の処理結果につき逆量子化処理を行う逆量子化処理手段と、
前記逆量子化処理手段による逆量子化処理の処理結果につき逆ＤＣＴ処理を行う逆ＤＣＴ処理手段と、
前記可変長復号処理手段、前記逆量子化処理手段または前記逆ＤＣＴ処理手段と平行して、前記処理対象のブロックの復号に用いる予測画像データを第１の記憶媒体から第２の記憶媒体に転送する予測画像転送手段と、
前記予測画像転送手段で転送された予測画像データを前記第２の記憶媒体から読み出すとともに、当該予測画像データを用いて前記逆ＤＣＴ処理手段による逆ＤＣＴ処理の処理結果につき動き補償処理を行う動き補償処理手段と、
を備えたことを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ＭＰＥＧ規格に従って符号化された動画像データを復号するための画像処理方法、画像処理プログラムおよび画像処理装置に関する。
【背景技術】
【０００２】
文字や画像といった各種データの中でも、特に動画像のデータ量はしばしば膨大である。そこで、ＩＳＯにより策定されたマルチメディア符号化の国際標準であるＭＰＥＧ規格が広く利用され、これにより圧縮された動画像データ（以下では単に「ＭＰＥＧ画像」と呼ぶ）の復号を行うハードウエア（プロセッサやＤＳＰなど）およびソフトウエアが、パーソナル・コンピュータはもちろん、各種のＡＶ機器などに広く搭載されている。
【０００３】
そして周知のように、このＭＰＥＧ画像では複数の「ブロック」が集まって１つの「マクロブロック」を、複数のマクロブロックが集まって１つの「スライス」を、複数のスライスが集まって１つの「ピクチャ」を、複数のピクチャが集まって１つの「ＧＯＰ（Ｇｒｏｕｐ  ｏｆ  Ｐｉｃｔｕｒｅｓ）」を、複数のＧＯＰが集まって１つの「シーケンス」を、それぞれ形成している。
【０００４】
また、図７は従来技術におけるＭＰＥＧ画像復号処理の手順を示すフローチャートである。図示するようにＭＰＥＧ画像の復号処理は、シーケンス階層ヘッダデコード処理（ステップＳ７０１）、ＧＯＰ階層ヘッダデコード処理（ステップＳ７０２）、ピクチャ階層ヘッダデコード処理（ステップＳ７０３）、スライス階層ヘッダデコード処理（ステップＳ７０４）、マクロブロック階層ヘッダデコード処理（ステップＳ７０５）、可変長復号処理（ステップＳ７０６）、逆量子化処理（ステップＳ７０７）、逆ＤＣＴ（離散コサイン変換）処理（ステップＳ７０８）、動き補償処理（ステップＳ７０９）として分類することができる。
【０００５】
そして「ブロック階層処理」とは、可変長復号処理（ステップＳ７０６）、逆量子化処理（ステップＳ７０７）、逆ＤＣＴ処理（ステップＳ７０８）および動き補償処理（ステップＳ７０９）を指す。
【０００６】
また「マクロブロック階層処理」は、マクロブロック階層ヘッダデコード処理（ステップＳ７０５）と１回の予測画像データ取り込み（ステップＳ７１０）、および６回のブロック階層処理（ステップＳ７０６〜Ｓ７０９）より構成される。「スライス階層処理」は、スライス階層ヘッダデコード処理（ステップＳ７０４）と複数回のマクロブロック階層処理（ステップＳ７０５〜Ｓ７１０。なお、繰り返しの回数などは画像信号にて指定される）より構成される。「ピクチャ階層処理」は、ピクチャ階層ヘッダデコード処理（ステップＳ７０３）と複数回のスライス階層処理（ステップＳ７０４〜Ｓ７１０。なお、繰り返しの回数などは画像信号にて指定される）より構成され、本処理により１フレーム分の画像デコードとなる。
【０００７】
また「ＧＯＰ階層処理」は、ＧＯＰ階層ヘッダデコード処理（ステップＳ７０２）と複数回のピクチャ階層処理（ステップＳ７０３〜Ｓ７１０。なお、繰り返しの回数などは画像信号にて指定される）により構成される。「シーケンス階層処理」は、シーケンス階層ヘッダデコード処理（ステップＳ７０１）とＧＯＰ階層処理（ステップＳ７０２〜Ｓ７１０。なお、繰り返しの回数などは画像信号にて指定される）より構成される。ＭＰＥＧ画像の復号処理とは、このシーケンス階層処理を画像信号にて指定される部分まで行うことである。
【０００８】
そして上述のブロック階層処理では、まず可変長復号用テーブルを用いて可変長復号処理を行い（ステップＳ７０６）、さらにその結果データと逆量子化用テーブルを用いて逆量子化処理を行い（ステップＳ７０７）、さらにその結果データと逆ＤＣＴ用テーブルを用いて逆ＤＣＴ処理を行う（ステップＳ７０８）。次に動き補償処理（ステップＳ７０９）にて、これに先立つマクロブロック階層ヘッダデコード処理（ステップＳ７０５）で得た動きベクタを元に予測画像データを読み込み、逆ＤＣＴ処理の結果と足し合わせて出力画像データを作成する。
【０００９】
この予測画像データは最も単純には、実際にそれが必要となる時点、すなわち動き補償処理（ステップＳ７０９）において外部メモリよりプロセッサのレジスタファイルにストアされる。
【００１０】
ただ、一般に外部メモリへのアクセスには非常に時間がかかり、これがしばしば処理速度向上のためのボトルネックとなる。この時間を短縮するために、プロセッサには通常キャッシュユニットが設けられているが、予測画像データの場合はデータ量が多く、かつ参照の局所性も少ないため、十分な効果を発揮できないことが多い。また、外部メモリへのアクセスを最適化する従来技術も存在するが（例えば特許文献１参照）、アクセス制御のための専用のハードウエアが必要である。
【００１１】
【特許文献１】国際公開第９９／６７７４２号パンフレット
【００１２】
そこで予測画像データは、いちいち外部メモリから取り込むよりは、予めある程度まとめて内蔵メモリに取り込んでおき、必要なときに必要な分だけ内蔵メモリから取り出すようにしたほうが処理が高速である。図７のフローチャートはこの例を示している。
【００１３】
すなわち、マクロブロック階層処理における１回目の動き補償処理（ステップＳ７０９）の前、たとえば１回目の可変長復号処理（ステップＳ７０６）〜逆ＤＣＴ処理（ステップＳ７０８）と平行して、マクロブロック階層ヘッダデコード処理（ステップＳ７０５）にて得た動きベクタを用いて、今回のマクロブロック階層処理で必要なだけの予測画像データ（１６画素×１６画素すなわち１マクロブロック分を最大２個）を外部メモリから内蔵メモリにＤＭＡ転送しておく（ステップＳ７１０）。そして転送完了を確認後、動き補償処理（ステップＳ７０９）にて、今回のブロック階層処理に必要なだけの予測画像データ（８画素×８画素すなわち１ブロック分を最大２個）を内蔵メモリからレジスタファイルにストアして用いる。
【００１４】
なお、マクロブロック階層処理中２回目以降の動き補償処理（ステップＳ７０９）では、必要な予測画像データはすでに内蔵メモリに取り込まれ、かつその取り込みは完了していることが１回目のブロック階層処理で確認されているので、再度のＤＭＡ転送およびその完了の確認は不要である。すなわち、動き補償処理（ステップＳ７０９）の後は次ブロックの可変長復号処理に移行し（ステップＳ７０６）、逆量子化処理（ステップＳ７０７）・逆ＤＣＴ処理（ステップＳ７０８）を終えると内蔵メモリから１ブロック分×最大２個の予測画像データを取り出して、動き補償処理（ステップＳ７０９）にて逆ＤＣＴ処理の結果データと加算する。
【００１５】
なお、このように予測画像データを内蔵メモリに保持する場合、内蔵メモリには１マクロブロック分の予測画像データを少なくとも２つ保持するための領域（予測画像用メモリ）と、復号後の出力画像データを１マクロブロック分保持するための領域（出力画像用メモリ）とが必要である。ただし、使用した予測画像データの一つを出力画像データで上書きしてしまうようにすれば、出力画像用メモリは予測画像用メモリと兼用できるので、内蔵メモリには最低計２マクロブロック分の予測画像データを格納できる領域があればよい。
【００１６】
また可変長復号用テーブル、逆量子化用テーブルおよび逆ＤＣＴ用テーブルについても、予測画像データと同じく、外部メモリから直接読み込む場合と予め外部メモリから内蔵メモリにＤＭＡ転送しておく場合とがある。後者の場合は上述の２マクロブロック分に加えて、さらにこれらのテーブルを保持できるだけの領域が内蔵メモリに必要である。
【発明の開示】
【発明が解決しようとする課題】
【００１７】
このように従来技術においては、外部メモリへのアクセス回数を削減することで処理速度を向上させようとすると、内蔵メモリとして必要な容量すなわち内蔵メモリの物量が増加してしまい、ハードウエア作成のコストが大きくなってしまう。また、１回のマクロブロック階層処理で必要な予測画像データ（１マクロブロック分×最大２個）のＤＭＡ転送が完了するまで、１回目のブロック階層処理における動き補償処理が待たされるので、この待ち時間に起因する性能劣化が発生する。
【００１８】
この発明は、上述した従来技術による問題点を解消するため、ＭＰＥＧ規格に従って符号化された動画像データの復号処理を少量のハードウエアで高速に実行することができる画像処理方法、画像処理プログラムおよび画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１９】
上述した課題を解決し、目的を達成するため、請求項１の発明にかかる画像処理方法は、ＭＰＥＧ規格に従って符号化された動画像中の処理対象のブロックにつき可変長復号処理を行う可変長復号処理工程と、前記可変長復号処理工程による可変長復号処理の処理結果につき逆量子化処理を行う逆量子化処理工程と、前記逆量子化処理工程による逆量子化処理の処理結果につき逆ＤＣＴ処理を行う逆ＤＣＴ処理工程と、前記可変長復号処理工程、前記逆量子化処理工程または前記逆ＤＣＴ処理工程と平行して、前記処理対象のブロックの復号に用いる予測画像データを第１の記憶媒体から第２の記憶媒体に転送する予測画像転送工程と、前記予測画像転送工程で転送された予測画像データを前記第２の記憶媒体から読み出すとともに、当該予測画像データを用いて前記逆ＤＣＴ処理工程による逆ＤＣＴ処理の処理結果につき動き補償処理を行う動き補償処理工程と、を含んだことを特徴とする。
【００２０】
この請求項１の発明によれば、マクロブロック階層処理でなくブロック階層処理の都度、ブロック単位で予測画像データを転送するので、当該データの転送にかかる時間を平行する可変長復号処理、逆量子化処理または逆ＤＣＴ処理にかかる時間の背後に隠匿することができる。
【００２１】
また、請求項２の発明にかかる画像処理方法は、請求項１に記載の発明において、前記予測画像転送工程では、前記予測画像データを前記第１の記憶媒体である外部メモリから前記第２の記憶媒体であるプロセッサの内蔵メモリにＤＭＡ転送することを特徴とする。
【００２２】
この請求項２の発明によれば、動き補償処理に必要な１ブロック単位の予測画像データを、予め外部メモリより高速なアクセスが可能な内蔵メモリに取り込んでおくので、逆ＤＣＴ処理の完了後すぐ動き補償処理を開始することができる。
【００２３】
また、請求項３の発明にかかる画像処理方法は、請求項１に記載の発明において、前記予測画像転送工程では、前記予測画像データを前記第１の記憶媒体である外部メモリから前記第２の記憶媒体であるプロセッサのデータキャッシュに転送することを特徴とする。
【００２４】
この請求項３の発明によれば、動き補償処理に必要な１ブロック単位の予測画像データを、予め外部メモリより高速なアクセスが可能なデータキャッシュに取り込んでおくので、逆ＤＣＴ処理の完了後すぐ動き補償処理を開始することができる。
【００２５】
また、請求項４の発明にかかる画像処理プログラムは、ＭＰＥＧ規格に従って符号化された動画像中の処理対象のブロックにつき可変長復号処理を行う可変長復号処理工程と、前記可変長復号処理工程による可変長復号処理の処理結果につき逆量子化処理を行う逆量子化処理工程と、前記逆量子化処理工程による逆量子化処理の処理結果につき逆ＤＣＴ処理を行う逆ＤＣＴ処理工程と、前記可変長復号処理工程、前記逆量子化処理工程または前記逆ＤＣＴ処理工程と平行して、前記処理対象のブロックの復号に用いる予測画像データを第１の記憶媒体から第２の記憶媒体に転送する予測画像転送工程と、前記予測画像転送工程で転送された予測画像データを前記第２の記憶媒体から読み出すとともに、当該予測画像データを用いて前記逆ＤＣＴ処理工程による逆ＤＣＴ処理の処理結果につき動き補償処理を行う動き補償処理工程と、をプロセッサに実行させることを特徴とする。
【００２６】
この請求項４の発明によれば、マクロブロック階層処理でなくブロック階層処理の都度、ブロック単位で予測画像データを転送するので、当該データの転送にかかる時間を平行する可変長復号処理、逆量子化処理または逆ＤＣＴ処理にかかる時間の背後に隠匿することができる。
【００２７】
また、請求項５の発明にかかる画像処理装置は、ＭＰＥＧ規格に従って符号化された動画像中の処理対象のブロックにつき可変長復号処理を行う可変長復号処理手段と、前記可変長復号処理手段による可変長復号処理の処理結果につき逆量子化処理を行う逆量子化処理手段と、前記逆量子化処理手段による逆量子化処理の処理結果につき逆ＤＣＴ処理を行う逆ＤＣＴ処理手段と、前記可変長復号処理手段、前記逆量子化処理手段または前記逆ＤＣＴ処理手段と平行して、前記処理対象のブロックの復号に用いる予測画像データを第１の記憶媒体から第２の記憶媒体に転送する予測画像転送手段と、前記予測画像転送手段で転送された予測画像データを前記第２の記憶媒体から読み出すとともに、当該予測画像データを用いて前記逆ＤＣＴ処理手段による逆ＤＣＴ処理の処理結果につき動き補償処理を行う動き補償処理手段と、を備えたことを特徴とする。
【００２８】
この請求項５の発明によれば、マクロブロック階層処理でなくブロック階層処理の都度、ブロック単位で予測画像データを転送するので、当該データの転送にかかる時間を平行する可変長復号処理、逆量子化処理または逆ＤＣＴ処理にかかる時間の背後に隠匿することができる。
【発明の効果】
【００２９】
本発明にかかる画像処理方法、画像処理プログラムおよび画像処理装置によれば、ＭＰＥＧ画像の復号処理に必要なハードウエアの物量（内蔵メモリやデータキャッシュの容量など）を抑制しつつ、かつ当該処理の高速化を図ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００３０】
以下に添付図面を参照して、この発明にかかる画像処理方法、画像処理プログラムおよび画像処理装置の好適な実施の形態を詳細に説明する。
【００３１】
（実施の形態１）
図１は、本発明の実施の形態１にかかる画像処理装置のハードウエア構成を示す図である。本発明にかかる画像処理装置は、少なくともプロセッサ１００、外部メモリ１０１および画像出力装置１０２を具備している。
【００３２】
そして、プロセッサ１００は一般的なプロセッサと同様、実行部１００ａ、キャッシュユニット１００ｂ、内蔵メモリ１００ｃおよび内蔵メモリコントローラ１００ｄを具備している。ただし、内蔵メモリ１００ｃの容量が従来のものよりも少ない（にもかかわらず処理が高速である）点が特徴となっている。以下、図示する各部の機能について順次説明する。
【００３３】
実行部１００ａは、後述するキャッシュユニット１００ｂからデータや制御信号（命令を含む）を、後述する内蔵メモリ１００ｃから処理に必要なデータ（予測画像データなど）を受け取る。そして上記データや制御信号により、可変長復号処理・逆量子化処理・逆ＤＣＴ処理および動き補償処理を行い、その結果をキャッシュユニット１００ｂまたは内蔵メモリ１００ｃに転送するとともに、転送に必要な制御信号をキャッシュユニット１００ｂまたは内蔵メモリコントローラ１００ｄに出力する。
【００３４】
キャッシュユニット１００ｂは、実行部１００ａからの要求に従い、指定されたデータを外部メモリ１０１から実行部１００ａまたは画像出力装置１０２へ出力する。あるいは逆に、実行部１００ａからの要求に従い、指定されたデータを実行部１００ａから外部メモリ１０１に出力する。また、実行部１００ａからの要求に従い、指定された命令を外部メモリ１０１から実行部１００ａに出力するとともに、指定されたデータの転送あるいは書き込み制御信号を外部メモリ１０１に出力する。さらに、実行部１００ａあるいは画像出力装置１０２からの要求に従い、外部メモリ１０１上のデータを画像出力装置１０２に出力する。なお、キャッシュユニット１００ｂは、自己を経由するデータおよび命令を一時的に保持することのできるメモリ機能を備えている。
【００３５】
内蔵メモリ１００ｃは、内蔵メモリコントローラ１００ｄからの制御信号に従って、外部メモリ１０１または実行部１００ａから受け取ったデータを保持するとともに、当該データを外部メモリ１０１または実行部１００ａへ出力する。内蔵メモリ１００ｃは２ブロック分の予測画像データおよび１ブロック分の出力画像データを保持するのに用いられる。また、内蔵メモリ１００ｃと外部メモリ１０１との間のデータ転送は、ＤＭＡ転送として実行部１００ａの処理と並列に実行することができる。
【００３６】
内蔵メモリコントローラ１００ｄは外部メモリ１０１に対して、実行部１００ａからの要求に従い、指定したデータを内蔵メモリ１００ｃへＤＭＡ転送させるための制御信号を出力する。また内蔵メモリ１００ｃに対して、実行部１００ａからの要求に従い、外部メモリ１０１あるいは実行部１００ａから転送されたデータを保持させるための制御信号を出力するとともに、内蔵メモリ１００ｃに保持されたデータを実行部１００ａあるいは外部メモリ１０１に転送させるための制御信号を出力する。さらに、ＤＭＡ転送の完了時に、その事実を示す信号を実行部１００ａに出力する。
【００３７】
外部メモリ１０１はプロセッサ１００の外部に存在し、キャッシュユニット１００ｂあるいは内蔵メモリコントローラ１００ｄから入力した制御信号に従い、指定されたデータをキャッシュユニット１００ｂあるいは内蔵メモリ１００ｃに転送するとともに、キャッシュユニット１００ｂあるいは内蔵メモリ１００ｃから受け取ったデータを保持する。この外部メモリ１０１には、少なくとも２フレーム分の参照画像と１フレーム分の出力画像データが保持される。また、画像出力装置１０２はプロセッサ１００や外部メモリ１０１から受け取った画像データを出力するためのディスプレイなどである。
【００３８】
次に、図２は本発明の実施の形態１にかかる画像処理装置における、ＭＰＥＧ画像復号処理の手順を示すフローチャートである。図中、シーケンス階層ヘッダデコード処理（ステップＳ２０１）、ＧＯＰ階層ヘッダデコード処理（ステップＳ２０２）、ピクチャ階層ヘッダデコード処理（ステップＳ２０３）およびスライス階層ヘッダデコード処理（ステップＳ２０４）は、図７に示した従来技術と同様であるので説明を省略する。
【００３９】
スライス階層ヘッダデコード処理（ステップＳ２０４）の後のマクロブロック階層処理では、まず実行部１００ａにより、マクロブロック階層ヘッダデコード処理が実行される（ステップＳ２０５）。
【００４０】
そしてここでデコードされた動きベクタにもとづいて、実行部１００ａは１回目のブロック階層処理で使用する予測画像データ（１ブロック分×最大２個）の位置を計算し、当該データを外部メモリ１０１から内蔵メモリ１００ｃへＤＭＡ転送するよう、内蔵メモリコントローラ１００ｄに要求する。
【００４１】
これを受けた内蔵メモリコントローラ１００ｄは、外部メモリ１０１には上記データを内蔵メモリ１００ｃへ転送させるための制御信号を、内蔵メモリ１００ｃには外部メモリ１０１から転送されてきた上記データを保持させるための制御信号を、それぞれ出力する。そしてこれにより、外部メモリ１０１から内蔵メモリ１００ｃへ１ブロック分×最大２個の予測画像データがＤＭＡ転送される（以上ステップＳ２１０）。
【００４２】
また、実行部１００ａは内蔵メモリコントローラ１００ｄへＤＭＡ転送を要求した後、内蔵メモリコントローラ１００ｄによる予測画像データの転送と平行して、可変長復号処理（ステップＳ２０６）・逆量子化処理（ステップＳ２０７）および逆ＤＣＴ処理（ステップＳ２０８）を行う。そして、内蔵メモリコントローラ１００ｄからＤＭＡ転送完了の通知を受信した後、動き補償処理にて内蔵メモリ１００ｃ中の予測画像データをロードし、逆ＤＣＴ処理後の結果データと足し合わせて出力画像データを作成する（ステップＳ２０９）。
【００４３】
なお、上記で作成された１ブロック分の出力画像データは、実行部１００ａからの要求を受けた内蔵メモリコントローラ１００ｄによりいったん内蔵メモリ１００ｃに書き出された後、外部メモリ１０１へＤＭＡ転送される。実行部１００ａからキャッシュユニット１００ｂを経由して外部メモリ１０１へ出力するのでもよいが、特にコピーバック方式の場合、キャッシュヒットかキャッシュミスかの判定に時間がかかるため、内蔵メモリ１００ｃを経由してＤＭＡで出力したほうが通常は高速である。なお、ライトスルー方式の場合はＤＭＡ転送するのと一般に処理時間に大差ないので、内蔵メモリ１００ｃを使用せず、実行部１００ａからキャッシュユニット１００ｂを介して外部メモリ１０１に出力するようにしてもよい。
【００４４】
上記により１ブロック目の復号を完了すると、実行部１００ａはステップＳ２０６に戻り、マクロブロック内の２ブロック目についてステップＳ２０６〜Ｓ２１０の処理を繰り返す。すなわち、２回目のブロック階層処理で使用する予測画像データ（１ブロック分×最大２個）の位置を割り出すとともに、内蔵メモリコントローラ１００ｄに指示して、当該データを外部メモリ１０１から内蔵メモリ１００ｃにＤＭＡ転送させる（ステップＳ２１０）。そしてこれと平行して、可変長復号処理（ステップＳ２０６）・逆量子化処理（ステップＳ２０７）および逆ＤＣＴ処理（ステップＳ２０８）を行い、転送完了を確認後、動き補償処理にて出力画像データを作成する（ステップＳ２０９）。
【００４５】
以後のブロックについても同様の処理を繰り返した後、あるマクロブロック内のすべてのブロックについて出力画像データを作成し終えた時点で、実行部１００ａはステップＳ２０５に移行し、次のマクロブロックについてマクロブロック階層ヘッダデコード処理を行う（ステップＳ２０５）。そして、当該マクロブロック内の各ブロックにつき、ステップＳ２０６〜Ｓ２１０の処理を繰り返す。
【００４６】
以後、あるスライス内の全マクロブロックを処理し終えるとステップＳ２０４に、あるピクチャ内の全スライスを処理し終えるとステップＳ２０３に、あるＧＯＰ内の全ピクチャを処理し終えるとステップＳ２０２に戻って、次のスライス／ピクチャ／ＧＯＰについて同様の処理を繰り返し、あるシーケンス内の全ＧＯＰについて上述の処理を終えた時点で、本フローチャートによる処理を終了する。
【００４７】
以上説明した実施の形態１によれば、動き補償処理に先立つ予測画像データの内蔵メモリ１００ｃへの取り込みを、従来のようにマクロブロック階層処理の最初にマクロブロック単位で行うのではなく、ブロック階層処理の最初にブロック単位で行うので、内蔵メモリ１００ｃに最低必要な容量を２マクロブロック分から２ブロック分に削減することができる。従来と同容量の内蔵メモリ１００ｃを搭載し、余った領域（予測画像データに使用しない領域）へたとえば可変長復号用テーブルや逆量子化テーブル、逆ＤＣＴ用テーブルなども取り込んでおくようにすれば、キャッシュミスに起因する遅延を回避し、同等のハードウエアでより処理の高速化を図ることができる。
【００４８】
しかも、本発明によればマクロブロック階層処理にかかる時間を従来よりも短縮することが可能である。すなわち、従来は１マクロブロック分×最大２個の予測画像データの転送に時間がかかるため、１回目の可変長復号処理から逆ＤＣＴ処理までは完了しているにもかかわらず、予測画像データの転送完了まで１回目の動き補償処理が常に待たされていた。しかし上述の実施の形態１によれば、動き補償処理が禁止されるのは１ブロック分×最大２個の予測画像データを転送完了するまでの時間であり、この時間は通常は可変長復号処理〜逆ＤＣＴ処理にかかる時間よりも小さいため、動き補償処理の前に待ちが発生しない。ＤＭＡ転送する予測画像データのサイズをマクロブロック単位からブロック単位に縮小したために、その転送にかかる時間が、可変長復号処理〜逆ＤＣＴ処理にかかる時間の背後に完全に隠匿されるようになった、と言ってもよい。
【００４９】
また、たとえ完全ではなくても、実施の形態１では従来技術に比べてより多くの時間を隠匿することが可能である。すなわち、１ブロック分の可変長復号処理〜逆ＤＣＴ処理にかかる時間をｔとすると、従来技術において予測画像データのＤＭＡ転送にかかる全時間（具体的には１マクロブロック分×最大２個の予測画像データを１回転送するのにかかる時間）のうち、隠匿される時間はｔのみであるが、実施の形態１において予測画像データのＤＭＡ転送にかかる全時間（具体的には１ブロック分×最大２個の予測画像データを６回転送するのにかかる時間）のうち、隠匿される時間は６ｔである。逆に言えば、ブロック階層処理を構成する個々の処理以外に、予測画像データの転送時間として表面化する時間を５ｔだけ短縮できたことになる。
【００５０】
（実施の形態２）
さて、上述した実施の形態１は内蔵メモリ１００ｃの容量の抑制にかかるものであったが、内蔵メモリ１００ｃや内蔵メモリコントローラ１００ｄを具備しないプロセッサであっても、以下で説明する実施の形態２により、復号処理の高速化をはかることが可能である。
【００５１】
図３は、本発明の実施の形態２にかかる画像処理装置のハードウエア構成を示す説明図である。図示するハードウエア構成は、図１に示した実施の形態１のそれから、内蔵メモリ１００ｃおよび内蔵メモリコントローラ１００ｄを除去したものである。
【００５２】
実行部３００ａは、キャッシュユニット３００ｂからデータ（予測画像データなど）や制御信号（命令を含む）を受け取って、可変長復号処理・逆量子化処理・逆ＤＣＴ処理および動き補償処理を行い、その結果をキャッシュユニット３００ｂに転送するとともに、転送に必要な制御信号をキャッシュユニット３００ｂに出力する。
【００５３】
キャッシュユニット３００ｂは、実行部３００ａからの要求に従い、指定されたデータを外部メモリ３０１から実行部３００ａまたは画像出力装置３０２へ出力する。あるいは逆に、実行部３００ａからの要求に従い、指定されたデータを実行部３００ａから外部メモリ３０１に出力する。また、実行部３００ａからの要求に従い、指定された命令を外部メモリ３０１から実行部３００ａに出力するとともに、指定されたデータの転送あるいは書き込み制御信号を外部メモリ３０１に出力する。さらに、実行部３００ａあるいは画像出力装置３０２からの要求に従い、外部メモリ３０１上のデータを画像出力装置３０２に出力する。なお、キャッシュユニット３００ｂは、自己を経由するデータおよび命令を一時的に保持することのできるメモリ機能を備えている。
【００５４】
外部メモリ３０１はプロセッサ３００の外部に存在し、キャッシュユニット３００ｂから入力した制御信号に従い、指定されたデータをキャッシュユニット３００ｂに転送するとともに、キャッシュユニット３００ｂから受け取ったデータを保持する。この外部メモリ３０１には、少なくとも２フレーム分の参照画像と１フレーム分の出力画像データが保持される。また、画像出力装置３０２はプロセッサ３００や外部メモリ３０１から受け取った画像データを出力するためのディスプレイなどである。
【００５５】
次に、図４は本発明の実施の形態２にかかる画像処理装置における、ＭＰＥＧ画像復号処理の手順を示すフローチャートである。図中、シーケンス階層ヘッダデコード処理（ステップＳ４０１）、ＧＯＰ階層ヘッダデコード処理（ステップＳ４０２）、ピクチャ階層ヘッダデコード処理（ステップＳ４０３）およびスライス階層ヘッダデコード処理（ステップＳ４０４）は、図７に示した従来技術と同様であるので説明を省略する。
【００５６】
スライス階層ヘッダデコード処理（ステップＳ４０４）の後のマクロブロック階層処理では、まず実行部３００ａにより、マクロブロック階層ヘッダデコード処理が実行される（ステップＳ４０５）。ここでデコードされた可変長復号用テーブル、逆量子化テーブルおよび逆ＤＣＴ用テーブルは、いったんキャッシュユニット３００ｂを介して外部メモリ３０１にストアされる。
【００５７】
次に実行部３００ａは、後段の可変長復号処理（ステップＳ４０７）で使用する可変長復号用テーブルにアクセスして、必要な箇所を読み出す（ステップＳ４０６）。このときキャッシュユニット３００ｂにキャッシュが残っていれば、外部メモリ３０１から改めて取得する必要はない。
【００５８】
次に実行部３００ａは、マクロブロック階層ヘッダデコード処理（ステップＳ４０５）で得た動きベクタにもとづいて、後段の動き補償処理（ステップＳ４１２）で使用する予測画像データ（１ブロック分×最大２個）の位置を計算し、当該データを外部メモリ３０１からプリフェッチする（ステップＳ４１３）。すなわちキャッシュユニット３００ｂに要求して、当該データを外部メモリ３０１から読み出させ、キャッシュユニット３００ｂ内に一時的に保持させる。
【００５９】
そして、キャッシュユニット３００ｂが外部メモリ３０１から予測画像データを読み出している間に、実行部３００ａはステップＳ４０６で読み出しておいた可変長復号用テーブルを参照して、可変長復号処理を行う（ステップＳ４０７）。
【００６０】
次に、実行部３００ａは外部メモリ３０１から逆量子化用テーブルを読み出し（ステップＳ４０８。これも可変長復号用テーブルと同様、キャッシュユニット３００ｂにキャッシュが残っていればそれを利用する）、当該テーブルを参照して、可変長復号後のデータにつき逆量子化処理を行う（ステップＳ４０９）。
【００６１】
次に、実行部３００ａは外部メモリ３０１から逆ＤＣＴ用テーブルを読み出し（ステップＳ４１０。これも可変長復号用テーブルや逆量子化用テーブルと同様、キャッシュユニット３００ｂにキャッシュが残っていればそれを利用する）、当該テーブルを参照して、逆量子化後のデータにつき逆ＤＣＴ処理を行う（ステップＳ４１１）。
【００６２】
そして、この逆ＤＣＴ処理後のデータにつき、ステップＳ４１３でキャッシュユニット３００ｂに取り込んでおいた予測画像データを使用して動き補償処理を行う（ステップＳ４１２）。なお、ここで作成した出力画像データは、キャッシュユニット３００ｂを介して外部メモリ３０１へ出力する。
【００６３】
その後実行部３００ａはステップＳ４０６に戻り、同一マクロブロック内の全ブロックにつきステップＳ４０６〜Ｓ４１３の処理を繰り返す。そして、あるスライス内の全マクロブロックを処理し終えるとステップＳ４０４に、あるピクチャ内の全スライスを処理し終えるとステップＳ４０３に、あるＧＯＰ内の全ピクチャを処理し終えるとステップＳ４０２に戻って、次のスライス／ピクチャ／ＧＯＰについて同様の処理を繰り返し、あるシーケンス内の全ＧＯＰについて上述の処理を終えた時点で、本フローチャートによる処理を終了する。
【００６４】
以上説明した実施の形態２によれば、動き補償処理に先立って予測画像データをプリフェッチしておくので、動き補償処理の直前に外部メモリ３０１を参照する必要がなく、それに伴う待ち時間が発生しない。
【００６５】
しかもそのプリフェッチを、特に可変長復号用テーブルへのアクセス完了後に行っているのは、一般にこのタイミングではキャッシュユニット３００ｂや、キャッシュユニット３００ｂから外部メモリ３０１に続くバスがビジー状態でないためである。プリフェッチを集中して実行するとキャッシュユニット３００ｂの処理能力を超え、インターロックしてしまう可能性が高いが、このようにキャッシュユニット３００ｂや外部メモリ３０１の使用時を避けて予測画像データを取り込んでおくことで、インターロックを回避し効率的に処理を進めることができる。
【００６６】
なお、プリフェッチのタイミングは必ずしも図示するタイミングでなくともよい。たとえば図５に示すように、逆量子化用テーブルへのアクセスがなくなった時点（ステップＳ４０８の後）、あるいは図６に示すように、逆ＤＣＴ用テーブルへのアクセスがなくなった時点（ステップＳ４１０の後）など、メモリアクセスが少なく、インターロックの発生確率が低いと推測される任意のタイミングにプリフェッチを挿入することができる。なお、キャッシュユニット３００ｂやキャッシュユニット３００ｂに続くバスの実際の使用状況を何らかの手段でリアルタイムに把握できれば、特に上述のタイミングでなくとも、使用率が低下した任意の時期にプリフェッチを実行すればよい。
【００６７】
なお、上述の実施の形態１および２で説明した画像処理方法は、予め用意されたプログラムをプロセッサやＤＳＰなどで実行することにより実現される。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のプロセッサで読み取り可能な記録媒体に記録され、プロセッサによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【００６８】
なお、上述した実施の形態１および２はソフトウエア的な復号の例、すなわち予め用意されたプログラムをプロセッサやＤＳＰで実行することにより復号を行う例であるが、専用の復号器などを用いてハードウエア的に復号を行う場合でも、予測画像データをブロック単位で、アクセスに時間のかかる記憶媒体からより高速にアクセスできる記憶媒体へ予め取り込んでおくことで、ハードウエアの物量の削減と処理の高速化とを同時に実現することができる。
【００６９】
（付記１）ＭＰＥＧ規格に従って符号化された動画像中の処理対象のブロックにつき可変長復号処理を行う可変長復号処理工程と、
前記可変長復号処理工程による可変長復号処理の処理結果につき逆量子化処理を行う逆量子化処理工程と、
前記逆量子化処理工程による逆量子化処理の処理結果につき逆ＤＣＴ処理を行う逆ＤＣＴ処理工程と、
前記可変長復号処理工程、前記逆量子化処理工程または前記逆ＤＣＴ処理工程と平行して、前記処理対象のブロックの復号に用いる予測画像データを第１の記憶媒体から第２の記憶媒体に転送する予測画像転送工程と、
前記予測画像転送工程で転送された予測画像データを前記第２の記憶媒体から読み出すとともに、当該予測画像データを用いて前記逆ＤＣＴ処理工程による逆ＤＣＴ処理の処理結果につき動き補償処理を行う動き補償処理工程と、
を含んだことを特徴とする画像処理方法。
【００７０】
（付記２）前記予測画像転送工程では、前記予測画像データを前記第１の記憶媒体である外部メモリから前記第２の記憶媒体であるプロセッサの内蔵メモリにＤＭＡ転送することを特徴とする前記付記１に記載の画像処理方法。
【００７１】
（付記３）前記予測画像転送工程では、前記予測画像データを前記第１の記憶媒体である外部メモリから前記第２の記憶媒体であるプロセッサのデータキャッシュに転送することを特徴とする前記付記１に記載の画像処理方法。
【００７２】
（付記４）前記予測画像転送工程では、前記可変長復号処理工程、前記逆量子化処理工程または前記逆ＤＣＴ処理工程により前記第１の記憶媒体または前記第２の記憶媒体が使用される時期を避けて前記予測画像データを前記第１の記憶媒体から前記第２の記憶媒体に転送することを特徴とする前記付記３に記載の画像処理方法。
【００７３】
（付記５）ＭＰＥＧ規格に従って符号化された動画像中の処理対象のブロックにつき可変長復号処理を行う可変長復号処理工程と、
前記可変長復号処理工程による可変長復号処理の処理結果につき逆量子化処理を行う逆量子化処理工程と、
前記逆量子化処理工程による逆量子化処理の処理結果につき逆ＤＣＴ処理を行う逆ＤＣＴ処理工程と、
前記可変長復号処理工程、前記逆量子化処理工程または前記逆ＤＣＴ処理工程と平行して、前記処理対象のブロックの復号に用いる予測画像データを第１の記憶媒体から第２の記憶媒体に転送する予測画像転送工程と、
前記予測画像転送工程で転送された予測画像データを前記第２の記憶媒体から読み出すとともに、当該予測画像データを用いて前記逆ＤＣＴ処理工程による逆ＤＣＴ処理の処理結果につき動き補償処理を行う動き補償処理工程と、
をプロセッサに実行させることを特徴とする画像処理プログラム。
【００７４】
（付記６）前記予測画像転送工程では、前記予測画像データを前記第１の記憶媒体である外部メモリから前記第２の記憶媒体であるプロセッサの内蔵メモリにＤＭＡ転送することを特徴とする前記付記５に記載の画像処理プログラム。
【００７５】
（付記７）前記予測画像転送工程では、前記予測画像データを前記第１の記憶媒体である外部メモリから前記第２の記憶媒体であるプロセッサのデータキャッシュに転送することを特徴とする前記付記５に記載の画像処理プログラム。
【００７６】
（付記８）前記予測画像転送工程では、前記可変長復号処理工程、前記逆量子化処理工程または前記逆ＤＣＴ処理工程により前記第１の記憶媒体または前記第２の記憶媒体が使用される時期を避けて前記予測画像データを前記第１の記憶媒体から前記第２の記憶媒体に転送することを特徴とする前記付記７に記載の画像処理プログラム。
【００７７】
（付記９）ＭＰＥＧ規格に従って符号化された動画像中の処理対象のブロックにつき可変長復号処理を行う可変長復号処理手段と、
前記可変長復号処理手段による可変長復号処理の処理結果につき逆量子化処理を行う逆量子化処理手段と、
前記逆量子化処理手段による逆量子化処理の処理結果につき逆ＤＣＴ処理を行う逆ＤＣＴ処理手段と、
前記可変長復号処理手段、前記逆量子化処理手段または前記逆ＤＣＴ処理手段と平行して、前記処理対象のブロックの復号に用いる予測画像データを第１の記憶媒体から第２の記憶媒体に転送する予測画像転送手段と、
前記予測画像転送手段で転送された予測画像データを前記第２の記憶媒体から読み出すとともに、当該予測画像データを用いて前記逆ＤＣＴ処理手段による逆ＤＣＴ処理の処理結果につき動き補償処理を行う動き補償処理手段と、
を備えたことを特徴とする画像処理装置。
【００７８】
（付記１０）前記予測画像転送手段は、前記予測画像データを前記第１の記憶媒体である外部メモリから前記第２の記憶媒体であるプロセッサの内蔵メモリにＤＭＡ転送することを特徴とする前記付記９に記載の画像処理装置。
【００７９】
（付記１１）前記予測画像転送手段は、前記予測画像データを前記第１の記憶媒体である外部メモリから前記第２の記憶媒体であるプロセッサのデータキャッシュに転送することを特徴とする前記付記９に記載の画像処理装置。
【００８０】
（付記１２）前記予測画像転送手段は、前記可変長復号処理手段、前記逆量子化処理手段または前記逆ＤＣＴ処理手段により前記第１の記憶媒体または前記第２の記憶媒体が使用される時期を避けて前記予測画像データを前記第１の記憶媒体から前記第２の記憶媒体に転送することを特徴とする前記付記１１に記載の画像処理装置。
【産業上の利用可能性】
【００８１】
以上のように、本発明にかかる画像処理方法、画像処理プログラムおよび画像処理装置は、外部メモリへのアクセスが頻繁に発生する画像処理に有用であり、特にＭＰＥＧ規格に従って符号化された動画像データの復号処理に適している。
【図面の簡単な説明】
【００８２】
【図１】本発明の実施の形態１にかかる画像処理装置のハードウエア構成を示す図である。
【図２】本発明の実施の形態１にかかる画像処理装置における、ＭＰＥＧ画像復号処理の手順を示すフローチャートである。
【図３】本発明の実施の形態２にかかる画像処理装置のハードウエア構成を示す説明図である。
【図４】本発明の実施の形態２にかかる画像処理装置における、ＭＰＥＧ画像復号処理（可変長復号処理と平行して予測画像データをプリフェッチする場合）の手順を示すフローチャートである。
【図５】本発明の実施の形態２にかかる画像処理装置における、ＭＰＥＧ画像復号処理（逆量子化処理と平行して予測画像データをプリフェッチする場合）の手順を示すフローチャートである。
【図６】本発明の実施の形態２にかかる画像処理装置における、ＭＰＥＧ画像復号処理（逆ＤＣＴ処理と平行して予測画像データをプリフェッチする場合）の手順を示すフローチャートである。
【図７】従来技術におけるＭＰＥＧ画像復号処理の手順を示すフローチャートである。
【符号の説明】
【００８３】
１００，３００  プロセッサ
１００ａ，３００ａ  実行部
１００ｂ，３００ｂ  キャッシュユニット
１００ｃ  内蔵メモリ
１００ｄ  内蔵メモリコントローラ
１０１，３０１  外部メモリ
１０２，３０２  画像出力装置
【図１】
2005057688.tif 000003
【図２】
2005057688.tif 000004
【図３】
2005057688.tif 000005
【図４】
2005057688.tif 000006
【図５】
2005057688.tif 000007
【図６】
2005057688.tif 000008
【図７】
2005057688.tif 000009