JP2005057688A - 画像処理方法、画像処理プログラムおよび画像処理装置 - Google Patents

画像処理方法、画像処理プログラムおよび画像処理装置 Download PDF

Info

Publication number
JP2005057688A
JP2005057688A JP2003289255A JP2003289255A JP2005057688A JP 2005057688 A JP2005057688 A JP 2005057688A JP 2003289255 A JP2003289255 A JP 2003289255A JP 2003289255 A JP2003289255 A JP 2003289255A JP 2005057688 A JP2005057688 A JP 2005057688A
Authority
JP
Japan
Prior art keywords
processing
predicted image
image data
length decoding
storage medium
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2003289255A
Other languages
English (en)
Inventor
Masaru Imai
賢 今井
Atsushi Tanaka
篤志 田中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2003289255A priority Critical patent/JP2005057688A/ja
Publication of JP2005057688A publication Critical patent/JP2005057688A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】MPEG規格に従って符号化された動画像データの復号処理を少量のハードウエアで高速に実行すること。
【解決手段】予測画像データの転送を、マクロブロック階層処理の最初でなく個々のブロック階層処理の最初に行う。すなわちマクロブロック階層ヘッダデコード処理(ステップS205)の後、ヘッダ内の動きベクタから1回目のブロック階層処理で使用する予測画像データ(1ブロック分×最大2個)の位置を計算し、当該データを外部メモリから内蔵メモリへDMA転送する(ステップS210)。そして、この転送と平行して可変長復号処理(ステップS206)・逆量子化処理(ステップS207)・逆DCT処理(ステップS208)を行い、さらに、この間に通常は転送完了している上記予測画像データを用いて動き補償処理を行う(ステップS209)。2回目以降のブロック階層処理も同様とする。
【選択図】 図2

Description

この発明は、MPEG規格に従って符号化された動画像データを復号するための画像処理方法、画像処理プログラムおよび画像処理装置に関する。
文字や画像といった各種データの中でも、特に動画像のデータ量はしばしば膨大である。そこで、ISOにより策定されたマルチメディア符号化の国際標準であるMPEG規格が広く利用され、これにより圧縮された動画像データ(以下では単に「MPEG画像」と呼ぶ)の復号を行うハードウエア(プロセッサやDSPなど)およびソフトウエアが、パーソナル・コンピュータはもちろん、各種のAV機器などに広く搭載されている。
そして周知のように、このMPEG画像では複数の「ブロック」が集まって1つの「マクロブロック」を、複数のマクロブロックが集まって1つの「スライス」を、複数のスライスが集まって1つの「ピクチャ」を、複数のピクチャが集まって1つの「GOP(Group of Pictures)」を、複数のGOPが集まって1つの「シーケンス」を、それぞれ形成している。
また、図7は従来技術におけるMPEG画像復号処理の手順を示すフローチャートである。図示するようにMPEG画像の復号処理は、シーケンス階層ヘッダデコード処理(ステップS701)、GOP階層ヘッダデコード処理(ステップS702)、ピクチャ階層ヘッダデコード処理(ステップS703)、スライス階層ヘッダデコード処理(ステップS704)、マクロブロック階層ヘッダデコード処理(ステップS705)、可変長復号処理(ステップS706)、逆量子化処理(ステップS707)、逆DCT(離散コサイン変換)処理(ステップS708)、動き補償処理(ステップS709)として分類することができる。
そして「ブロック階層処理」とは、可変長復号処理(ステップS706)、逆量子化処理(ステップS707)、逆DCT処理(ステップS708)および動き補償処理(ステップS709)を指す。
また「マクロブロック階層処理」は、マクロブロック階層ヘッダデコード処理(ステップS705)と1回の予測画像データ取り込み(ステップS710)、および6回のブロック階層処理(ステップS706〜S709)より構成される。「スライス階層処理」は、スライス階層ヘッダデコード処理(ステップS704)と複数回のマクロブロック階層処理(ステップS705〜S710。なお、繰り返しの回数などは画像信号にて指定される)より構成される。「ピクチャ階層処理」は、ピクチャ階層ヘッダデコード処理(ステップS703)と複数回のスライス階層処理(ステップS704〜S710。なお、繰り返しの回数などは画像信号にて指定される)より構成され、本処理により1フレーム分の画像デコードとなる。
また「GOP階層処理」は、GOP階層ヘッダデコード処理(ステップS702)と複数回のピクチャ階層処理(ステップS703〜S710。なお、繰り返しの回数などは画像信号にて指定される)により構成される。「シーケンス階層処理」は、シーケンス階層ヘッダデコード処理(ステップS701)とGOP階層処理(ステップS702〜S710。なお、繰り返しの回数などは画像信号にて指定される)より構成される。MPEG画像の復号処理とは、このシーケンス階層処理を画像信号にて指定される部分まで行うことである。
そして上述のブロック階層処理では、まず可変長復号用テーブルを用いて可変長復号処理を行い(ステップS706)、さらにその結果データと逆量子化用テーブルを用いて逆量子化処理を行い(ステップS707)、さらにその結果データと逆DCT用テーブルを用いて逆DCT処理を行う(ステップS708)。次に動き補償処理(ステップS709)にて、これに先立つマクロブロック階層ヘッダデコード処理(ステップS705)で得た動きベクタを元に予測画像データを読み込み、逆DCT処理の結果と足し合わせて出力画像データを作成する。
この予測画像データは最も単純には、実際にそれが必要となる時点、すなわち動き補償処理(ステップS709)において外部メモリよりプロセッサのレジスタファイルにストアされる。
ただ、一般に外部メモリへのアクセスには非常に時間がかかり、これがしばしば処理速度向上のためのボトルネックとなる。この時間を短縮するために、プロセッサには通常キャッシュユニットが設けられているが、予測画像データの場合はデータ量が多く、かつ参照の局所性も少ないため、十分な効果を発揮できないことが多い。また、外部メモリへのアクセスを最適化する従来技術も存在するが(例えば特許文献1参照)、アクセス制御のための専用のハードウエアが必要である。
国際公開第99/67742号パンフレット
そこで予測画像データは、いちいち外部メモリから取り込むよりは、予めある程度まとめて内蔵メモリに取り込んでおき、必要なときに必要な分だけ内蔵メモリから取り出すようにしたほうが処理が高速である。図7のフローチャートはこの例を示している。
すなわち、マクロブロック階層処理における1回目の動き補償処理(ステップS709)の前、たとえば1回目の可変長復号処理(ステップS706)〜逆DCT処理(ステップS708)と平行して、マクロブロック階層ヘッダデコード処理(ステップS705)にて得た動きベクタを用いて、今回のマクロブロック階層処理で必要なだけの予測画像データ(16画素×16画素すなわち1マクロブロック分を最大2個)を外部メモリから内蔵メモリにDMA転送しておく(ステップS710)。そして転送完了を確認後、動き補償処理(ステップS709)にて、今回のブロック階層処理に必要なだけの予測画像データ(8画素×8画素すなわち1ブロック分を最大2個)を内蔵メモリからレジスタファイルにストアして用いる。
なお、マクロブロック階層処理中2回目以降の動き補償処理(ステップS709)では、必要な予測画像データはすでに内蔵メモリに取り込まれ、かつその取り込みは完了していることが1回目のブロック階層処理で確認されているので、再度のDMA転送およびその完了の確認は不要である。すなわち、動き補償処理(ステップS709)の後は次ブロックの可変長復号処理に移行し(ステップS706)、逆量子化処理(ステップS707)・逆DCT処理(ステップS708)を終えると内蔵メモリから1ブロック分×最大2個の予測画像データを取り出して、動き補償処理(ステップS709)にて逆DCT処理の結果データと加算する。
なお、このように予測画像データを内蔵メモリに保持する場合、内蔵メモリには1マクロブロック分の予測画像データを少なくとも2つ保持するための領域(予測画像用メモリ)と、復号後の出力画像データを1マクロブロック分保持するための領域(出力画像用メモリ)とが必要である。ただし、使用した予測画像データの一つを出力画像データで上書きしてしまうようにすれば、出力画像用メモリは予測画像用メモリと兼用できるので、内蔵メモリには最低計2マクロブロック分の予測画像データを格納できる領域があればよい。
また可変長復号用テーブル、逆量子化用テーブルおよび逆DCT用テーブルについても、予測画像データと同じく、外部メモリから直接読み込む場合と予め外部メモリから内蔵メモリにDMA転送しておく場合とがある。後者の場合は上述の2マクロブロック分に加えて、さらにこれらのテーブルを保持できるだけの領域が内蔵メモリに必要である。
このように従来技術においては、外部メモリへのアクセス回数を削減することで処理速度を向上させようとすると、内蔵メモリとして必要な容量すなわち内蔵メモリの物量が増加してしまい、ハードウエア作成のコストが大きくなってしまう。また、1回のマクロブロック階層処理で必要な予測画像データ(1マクロブロック分×最大2個)のDMA転送が完了するまで、1回目のブロック階層処理における動き補償処理が待たされるので、この待ち時間に起因する性能劣化が発生する。
この発明は、上述した従来技術による問題点を解消するため、MPEG規格に従って符号化された動画像データの復号処理を少量のハードウエアで高速に実行することができる画像処理方法、画像処理プログラムおよび画像処理装置を提供することを目的とする。
上述した課題を解決し、目的を達成するため、請求項1の発明にかかる画像処理方法は、MPEG規格に従って符号化された動画像中の処理対象のブロックにつき可変長復号処理を行う可変長復号処理工程と、前記可変長復号処理工程による可変長復号処理の処理結果につき逆量子化処理を行う逆量子化処理工程と、前記逆量子化処理工程による逆量子化処理の処理結果につき逆DCT処理を行う逆DCT処理工程と、前記可変長復号処理工程、前記逆量子化処理工程または前記逆DCT処理工程と平行して、前記処理対象のブロックの復号に用いる予測画像データを第1の記憶媒体から第2の記憶媒体に転送する予測画像転送工程と、前記予測画像転送工程で転送された予測画像データを前記第2の記憶媒体から読み出すとともに、当該予測画像データを用いて前記逆DCT処理工程による逆DCT処理の処理結果につき動き補償処理を行う動き補償処理工程と、を含んだことを特徴とする。
この請求項1の発明によれば、マクロブロック階層処理でなくブロック階層処理の都度、ブロック単位で予測画像データを転送するので、当該データの転送にかかる時間を平行する可変長復号処理、逆量子化処理または逆DCT処理にかかる時間の背後に隠匿することができる。
また、請求項2の発明にかかる画像処理方法は、請求項1に記載の発明において、前記予測画像転送工程では、前記予測画像データを前記第1の記憶媒体である外部メモリから前記第2の記憶媒体であるプロセッサの内蔵メモリにDMA転送することを特徴とする。
この請求項2の発明によれば、動き補償処理に必要な1ブロック単位の予測画像データを、予め外部メモリより高速なアクセスが可能な内蔵メモリに取り込んでおくので、逆DCT処理の完了後すぐ動き補償処理を開始することができる。
また、請求項3の発明にかかる画像処理方法は、請求項1に記載の発明において、前記予測画像転送工程では、前記予測画像データを前記第1の記憶媒体である外部メモリから前記第2の記憶媒体であるプロセッサのデータキャッシュに転送することを特徴とする。
この請求項3の発明によれば、動き補償処理に必要な1ブロック単位の予測画像データを、予め外部メモリより高速なアクセスが可能なデータキャッシュに取り込んでおくので、逆DCT処理の完了後すぐ動き補償処理を開始することができる。
また、請求項4の発明にかかる画像処理プログラムは、MPEG規格に従って符号化された動画像中の処理対象のブロックにつき可変長復号処理を行う可変長復号処理工程と、前記可変長復号処理工程による可変長復号処理の処理結果につき逆量子化処理を行う逆量子化処理工程と、前記逆量子化処理工程による逆量子化処理の処理結果につき逆DCT処理を行う逆DCT処理工程と、前記可変長復号処理工程、前記逆量子化処理工程または前記逆DCT処理工程と平行して、前記処理対象のブロックの復号に用いる予測画像データを第1の記憶媒体から第2の記憶媒体に転送する予測画像転送工程と、前記予測画像転送工程で転送された予測画像データを前記第2の記憶媒体から読み出すとともに、当該予測画像データを用いて前記逆DCT処理工程による逆DCT処理の処理結果につき動き補償処理を行う動き補償処理工程と、をプロセッサに実行させることを特徴とする。
この請求項4の発明によれば、マクロブロック階層処理でなくブロック階層処理の都度、ブロック単位で予測画像データを転送するので、当該データの転送にかかる時間を平行する可変長復号処理、逆量子化処理または逆DCT処理にかかる時間の背後に隠匿することができる。
また、請求項5の発明にかかる画像処理装置は、MPEG規格に従って符号化された動画像中の処理対象のブロックにつき可変長復号処理を行う可変長復号処理手段と、前記可変長復号処理手段による可変長復号処理の処理結果につき逆量子化処理を行う逆量子化処理手段と、前記逆量子化処理手段による逆量子化処理の処理結果につき逆DCT処理を行う逆DCT処理手段と、前記可変長復号処理手段、前記逆量子化処理手段または前記逆DCT処理手段と平行して、前記処理対象のブロックの復号に用いる予測画像データを第1の記憶媒体から第2の記憶媒体に転送する予測画像転送手段と、前記予測画像転送手段で転送された予測画像データを前記第2の記憶媒体から読み出すとともに、当該予測画像データを用いて前記逆DCT処理手段による逆DCT処理の処理結果につき動き補償処理を行う動き補償処理手段と、を備えたことを特徴とする。
この請求項5の発明によれば、マクロブロック階層処理でなくブロック階層処理の都度、ブロック単位で予測画像データを転送するので、当該データの転送にかかる時間を平行する可変長復号処理、逆量子化処理または逆DCT処理にかかる時間の背後に隠匿することができる。
本発明にかかる画像処理方法、画像処理プログラムおよび画像処理装置によれば、MPEG画像の復号処理に必要なハードウエアの物量(内蔵メモリやデータキャッシュの容量など)を抑制しつつ、かつ当該処理の高速化を図ることができるという効果を奏する。
以下に添付図面を参照して、この発明にかかる画像処理方法、画像処理プログラムおよび画像処理装置の好適な実施の形態を詳細に説明する。
(実施の形態1)
図1は、本発明の実施の形態1にかかる画像処理装置のハードウエア構成を示す図である。本発明にかかる画像処理装置は、少なくともプロセッサ100、外部メモリ101および画像出力装置102を具備している。
そして、プロセッサ100は一般的なプロセッサと同様、実行部100a、キャッシュユニット100b、内蔵メモリ100cおよび内蔵メモリコントローラ100dを具備している。ただし、内蔵メモリ100cの容量が従来のものよりも少ない(にもかかわらず処理が高速である)点が特徴となっている。以下、図示する各部の機能について順次説明する。
実行部100aは、後述するキャッシュユニット100bからデータや制御信号(命令を含む)を、後述する内蔵メモリ100cから処理に必要なデータ(予測画像データなど)を受け取る。そして上記データや制御信号により、可変長復号処理・逆量子化処理・逆DCT処理および動き補償処理を行い、その結果をキャッシュユニット100bまたは内蔵メモリ100cに転送するとともに、転送に必要な制御信号をキャッシュユニット100bまたは内蔵メモリコントローラ100dに出力する。
キャッシュユニット100bは、実行部100aからの要求に従い、指定されたデータを外部メモリ101から実行部100aまたは画像出力装置102へ出力する。あるいは逆に、実行部100aからの要求に従い、指定されたデータを実行部100aから外部メモリ101に出力する。また、実行部100aからの要求に従い、指定された命令を外部メモリ101から実行部100aに出力するとともに、指定されたデータの転送あるいは書き込み制御信号を外部メモリ101に出力する。さらに、実行部100aあるいは画像出力装置102からの要求に従い、外部メモリ101上のデータを画像出力装置102に出力する。なお、キャッシュユニット100bは、自己を経由するデータおよび命令を一時的に保持することのできるメモリ機能を備えている。
内蔵メモリ100cは、内蔵メモリコントローラ100dからの制御信号に従って、外部メモリ101または実行部100aから受け取ったデータを保持するとともに、当該データを外部メモリ101または実行部100aへ出力する。内蔵メモリ100cは2ブロック分の予測画像データおよび1ブロック分の出力画像データを保持するのに用いられる。また、内蔵メモリ100cと外部メモリ101との間のデータ転送は、DMA転送として実行部100aの処理と並列に実行することができる。
内蔵メモリコントローラ100dは外部メモリ101に対して、実行部100aからの要求に従い、指定したデータを内蔵メモリ100cへDMA転送させるための制御信号を出力する。また内蔵メモリ100cに対して、実行部100aからの要求に従い、外部メモリ101あるいは実行部100aから転送されたデータを保持させるための制御信号を出力するとともに、内蔵メモリ100cに保持されたデータを実行部100aあるいは外部メモリ101に転送させるための制御信号を出力する。さらに、DMA転送の完了時に、その事実を示す信号を実行部100aに出力する。
外部メモリ101はプロセッサ100の外部に存在し、キャッシュユニット100bあるいは内蔵メモリコントローラ100dから入力した制御信号に従い、指定されたデータをキャッシュユニット100bあるいは内蔵メモリ100cに転送するとともに、キャッシュユニット100bあるいは内蔵メモリ100cから受け取ったデータを保持する。この外部メモリ101には、少なくとも2フレーム分の参照画像と1フレーム分の出力画像データが保持される。また、画像出力装置102はプロセッサ100や外部メモリ101から受け取った画像データを出力するためのディスプレイなどである。
次に、図2は本発明の実施の形態1にかかる画像処理装置における、MPEG画像復号処理の手順を示すフローチャートである。図中、シーケンス階層ヘッダデコード処理(ステップS201)、GOP階層ヘッダデコード処理(ステップS202)、ピクチャ階層ヘッダデコード処理(ステップS203)およびスライス階層ヘッダデコード処理(ステップS204)は、図7に示した従来技術と同様であるので説明を省略する。
スライス階層ヘッダデコード処理(ステップS204)の後のマクロブロック階層処理では、まず実行部100aにより、マクロブロック階層ヘッダデコード処理が実行される(ステップS205)。
そしてここでデコードされた動きベクタにもとづいて、実行部100aは1回目のブロック階層処理で使用する予測画像データ(1ブロック分×最大2個)の位置を計算し、当該データを外部メモリ101から内蔵メモリ100cへDMA転送するよう、内蔵メモリコントローラ100dに要求する。
これを受けた内蔵メモリコントローラ100dは、外部メモリ101には上記データを内蔵メモリ100cへ転送させるための制御信号を、内蔵メモリ100cには外部メモリ101から転送されてきた上記データを保持させるための制御信号を、それぞれ出力する。そしてこれにより、外部メモリ101から内蔵メモリ100cへ1ブロック分×最大2個の予測画像データがDMA転送される(以上ステップS210)。
また、実行部100aは内蔵メモリコントローラ100dへDMA転送を要求した後、内蔵メモリコントローラ100dによる予測画像データの転送と平行して、可変長復号処理(ステップS206)・逆量子化処理(ステップS207)および逆DCT処理(ステップS208)を行う。そして、内蔵メモリコントローラ100dからDMA転送完了の通知を受信した後、動き補償処理にて内蔵メモリ100c中の予測画像データをロードし、逆DCT処理後の結果データと足し合わせて出力画像データを作成する(ステップS209)。
なお、上記で作成された1ブロック分の出力画像データは、実行部100aからの要求を受けた内蔵メモリコントローラ100dによりいったん内蔵メモリ100cに書き出された後、外部メモリ101へDMA転送される。実行部100aからキャッシュユニット100bを経由して外部メモリ101へ出力するのでもよいが、特にコピーバック方式の場合、キャッシュヒットかキャッシュミスかの判定に時間がかかるため、内蔵メモリ100cを経由してDMAで出力したほうが通常は高速である。なお、ライトスルー方式の場合はDMA転送するのと一般に処理時間に大差ないので、内蔵メモリ100cを使用せず、実行部100aからキャッシュユニット100bを介して外部メモリ101に出力するようにしてもよい。
上記により1ブロック目の復号を完了すると、実行部100aはステップS206に戻り、マクロブロック内の2ブロック目についてステップS206〜S210の処理を繰り返す。すなわち、2回目のブロック階層処理で使用する予測画像データ(1ブロック分×最大2個)の位置を割り出すとともに、内蔵メモリコントローラ100dに指示して、当該データを外部メモリ101から内蔵メモリ100cにDMA転送させる(ステップS210)。そしてこれと平行して、可変長復号処理(ステップS206)・逆量子化処理(ステップS207)および逆DCT処理(ステップS208)を行い、転送完了を確認後、動き補償処理にて出力画像データを作成する(ステップS209)。
以後のブロックについても同様の処理を繰り返した後、あるマクロブロック内のすべてのブロックについて出力画像データを作成し終えた時点で、実行部100aはステップS205に移行し、次のマクロブロックについてマクロブロック階層ヘッダデコード処理を行う(ステップS205)。そして、当該マクロブロック内の各ブロックにつき、ステップS206〜S210の処理を繰り返す。
以後、あるスライス内の全マクロブロックを処理し終えるとステップS204に、あるピクチャ内の全スライスを処理し終えるとステップS203に、あるGOP内の全ピクチャを処理し終えるとステップS202に戻って、次のスライス/ピクチャ/GOPについて同様の処理を繰り返し、あるシーケンス内の全GOPについて上述の処理を終えた時点で、本フローチャートによる処理を終了する。
以上説明した実施の形態1によれば、動き補償処理に先立つ予測画像データの内蔵メモリ100cへの取り込みを、従来のようにマクロブロック階層処理の最初にマクロブロック単位で行うのではなく、ブロック階層処理の最初にブロック単位で行うので、内蔵メモリ100cに最低必要な容量を2マクロブロック分から2ブロック分に削減することができる。従来と同容量の内蔵メモリ100cを搭載し、余った領域(予測画像データに使用しない領域)へたとえば可変長復号用テーブルや逆量子化テーブル、逆DCT用テーブルなども取り込んでおくようにすれば、キャッシュミスに起因する遅延を回避し、同等のハードウエアでより処理の高速化を図ることができる。
しかも、本発明によればマクロブロック階層処理にかかる時間を従来よりも短縮することが可能である。すなわち、従来は1マクロブロック分×最大2個の予測画像データの転送に時間がかかるため、1回目の可変長復号処理から逆DCT処理までは完了しているにもかかわらず、予測画像データの転送完了まで1回目の動き補償処理が常に待たされていた。しかし上述の実施の形態1によれば、動き補償処理が禁止されるのは1ブロック分×最大2個の予測画像データを転送完了するまでの時間であり、この時間は通常は可変長復号処理〜逆DCT処理にかかる時間よりも小さいため、動き補償処理の前に待ちが発生しない。DMA転送する予測画像データのサイズをマクロブロック単位からブロック単位に縮小したために、その転送にかかる時間が、可変長復号処理〜逆DCT処理にかかる時間の背後に完全に隠匿されるようになった、と言ってもよい。
また、たとえ完全ではなくても、実施の形態1では従来技術に比べてより多くの時間を隠匿することが可能である。すなわち、1ブロック分の可変長復号処理〜逆DCT処理にかかる時間をtとすると、従来技術において予測画像データのDMA転送にかかる全時間(具体的には1マクロブロック分×最大2個の予測画像データを1回転送するのにかかる時間)のうち、隠匿される時間はtのみであるが、実施の形態1において予測画像データのDMA転送にかかる全時間(具体的には1ブロック分×最大2個の予測画像データを6回転送するのにかかる時間)のうち、隠匿される時間は6tである。逆に言えば、ブロック階層処理を構成する個々の処理以外に、予測画像データの転送時間として表面化する時間を5tだけ短縮できたことになる。
(実施の形態2)
さて、上述した実施の形態1は内蔵メモリ100cの容量の抑制にかかるものであったが、内蔵メモリ100cや内蔵メモリコントローラ100dを具備しないプロセッサであっても、以下で説明する実施の形態2により、復号処理の高速化をはかることが可能である。
図3は、本発明の実施の形態2にかかる画像処理装置のハードウエア構成を示す説明図である。図示するハードウエア構成は、図1に示した実施の形態1のそれから、内蔵メモリ100cおよび内蔵メモリコントローラ100dを除去したものである。
実行部300aは、キャッシュユニット300bからデータ(予測画像データなど)や制御信号(命令を含む)を受け取って、可変長復号処理・逆量子化処理・逆DCT処理および動き補償処理を行い、その結果をキャッシュユニット300bに転送するとともに、転送に必要な制御信号をキャッシュユニット300bに出力する。
キャッシュユニット300bは、実行部300aからの要求に従い、指定されたデータを外部メモリ301から実行部300aまたは画像出力装置302へ出力する。あるいは逆に、実行部300aからの要求に従い、指定されたデータを実行部300aから外部メモリ301に出力する。また、実行部300aからの要求に従い、指定された命令を外部メモリ301から実行部300aに出力するとともに、指定されたデータの転送あるいは書き込み制御信号を外部メモリ301に出力する。さらに、実行部300aあるいは画像出力装置302からの要求に従い、外部メモリ301上のデータを画像出力装置302に出力する。なお、キャッシュユニット300bは、自己を経由するデータおよび命令を一時的に保持することのできるメモリ機能を備えている。
外部メモリ301はプロセッサ300の外部に存在し、キャッシュユニット300bから入力した制御信号に従い、指定されたデータをキャッシュユニット300bに転送するとともに、キャッシュユニット300bから受け取ったデータを保持する。この外部メモリ301には、少なくとも2フレーム分の参照画像と1フレーム分の出力画像データが保持される。また、画像出力装置302はプロセッサ300や外部メモリ301から受け取った画像データを出力するためのディスプレイなどである。
次に、図4は本発明の実施の形態2にかかる画像処理装置における、MPEG画像復号処理の手順を示すフローチャートである。図中、シーケンス階層ヘッダデコード処理(ステップS401)、GOP階層ヘッダデコード処理(ステップS402)、ピクチャ階層ヘッダデコード処理(ステップS403)およびスライス階層ヘッダデコード処理(ステップS404)は、図7に示した従来技術と同様であるので説明を省略する。
スライス階層ヘッダデコード処理(ステップS404)の後のマクロブロック階層処理では、まず実行部300aにより、マクロブロック階層ヘッダデコード処理が実行される(ステップS405)。ここでデコードされた可変長復号用テーブル、逆量子化テーブルおよび逆DCT用テーブルは、いったんキャッシュユニット300bを介して外部メモリ301にストアされる。
次に実行部300aは、後段の可変長復号処理(ステップS407)で使用する可変長復号用テーブルにアクセスして、必要な箇所を読み出す(ステップS406)。このときキャッシュユニット300bにキャッシュが残っていれば、外部メモリ301から改めて取得する必要はない。
次に実行部300aは、マクロブロック階層ヘッダデコード処理(ステップS405)で得た動きベクタにもとづいて、後段の動き補償処理(ステップS412)で使用する予測画像データ(1ブロック分×最大2個)の位置を計算し、当該データを外部メモリ301からプリフェッチする(ステップS413)。すなわちキャッシュユニット300bに要求して、当該データを外部メモリ301から読み出させ、キャッシュユニット300b内に一時的に保持させる。
そして、キャッシュユニット300bが外部メモリ301から予測画像データを読み出している間に、実行部300aはステップS406で読み出しておいた可変長復号用テーブルを参照して、可変長復号処理を行う(ステップS407)。
次に、実行部300aは外部メモリ301から逆量子化用テーブルを読み出し(ステップS408。これも可変長復号用テーブルと同様、キャッシュユニット300bにキャッシュが残っていればそれを利用する)、当該テーブルを参照して、可変長復号後のデータにつき逆量子化処理を行う(ステップS409)。
次に、実行部300aは外部メモリ301から逆DCT用テーブルを読み出し(ステップS410。これも可変長復号用テーブルや逆量子化用テーブルと同様、キャッシュユニット300bにキャッシュが残っていればそれを利用する)、当該テーブルを参照して、逆量子化後のデータにつき逆DCT処理を行う(ステップS411)。
そして、この逆DCT処理後のデータにつき、ステップS413でキャッシュユニット300bに取り込んでおいた予測画像データを使用して動き補償処理を行う(ステップS412)。なお、ここで作成した出力画像データは、キャッシュユニット300bを介して外部メモリ301へ出力する。
その後実行部300aはステップS406に戻り、同一マクロブロック内の全ブロックにつきステップS406〜S413の処理を繰り返す。そして、あるスライス内の全マクロブロックを処理し終えるとステップS404に、あるピクチャ内の全スライスを処理し終えるとステップS403に、あるGOP内の全ピクチャを処理し終えるとステップS402に戻って、次のスライス/ピクチャ/GOPについて同様の処理を繰り返し、あるシーケンス内の全GOPについて上述の処理を終えた時点で、本フローチャートによる処理を終了する。
以上説明した実施の形態2によれば、動き補償処理に先立って予測画像データをプリフェッチしておくので、動き補償処理の直前に外部メモリ301を参照する必要がなく、それに伴う待ち時間が発生しない。
しかもそのプリフェッチを、特に可変長復号用テーブルへのアクセス完了後に行っているのは、一般にこのタイミングではキャッシュユニット300bや、キャッシュユニット300bから外部メモリ301に続くバスがビジー状態でないためである。プリフェッチを集中して実行するとキャッシュユニット300bの処理能力を超え、インターロックしてしまう可能性が高いが、このようにキャッシュユニット300bや外部メモリ301の使用時を避けて予測画像データを取り込んでおくことで、インターロックを回避し効率的に処理を進めることができる。
なお、プリフェッチのタイミングは必ずしも図示するタイミングでなくともよい。たとえば図5に示すように、逆量子化用テーブルへのアクセスがなくなった時点(ステップS408の後)、あるいは図6に示すように、逆DCT用テーブルへのアクセスがなくなった時点(ステップS410の後)など、メモリアクセスが少なく、インターロックの発生確率が低いと推測される任意のタイミングにプリフェッチを挿入することができる。なお、キャッシュユニット300bやキャッシュユニット300bに続くバスの実際の使用状況を何らかの手段でリアルタイムに把握できれば、特に上述のタイミングでなくとも、使用率が低下した任意の時期にプリフェッチを実行すればよい。
なお、上述の実施の形態1および2で説明した画像処理方法は、予め用意されたプログラムをプロセッサやDSPなどで実行することにより実現される。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のプロセッサで読み取り可能な記録媒体に記録され、プロセッサによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
なお、上述した実施の形態1および2はソフトウエア的な復号の例、すなわち予め用意されたプログラムをプロセッサやDSPで実行することにより復号を行う例であるが、専用の復号器などを用いてハードウエア的に復号を行う場合でも、予測画像データをブロック単位で、アクセスに時間のかかる記憶媒体からより高速にアクセスできる記憶媒体へ予め取り込んでおくことで、ハードウエアの物量の削減と処理の高速化とを同時に実現することができる。
(付記1)MPEG規格に従って符号化された動画像中の処理対象のブロックにつき可変長復号処理を行う可変長復号処理工程と、
前記可変長復号処理工程による可変長復号処理の処理結果につき逆量子化処理を行う逆量子化処理工程と、
前記逆量子化処理工程による逆量子化処理の処理結果につき逆DCT処理を行う逆DCT処理工程と、
前記可変長復号処理工程、前記逆量子化処理工程または前記逆DCT処理工程と平行して、前記処理対象のブロックの復号に用いる予測画像データを第1の記憶媒体から第2の記憶媒体に転送する予測画像転送工程と、
前記予測画像転送工程で転送された予測画像データを前記第2の記憶媒体から読み出すとともに、当該予測画像データを用いて前記逆DCT処理工程による逆DCT処理の処理結果につき動き補償処理を行う動き補償処理工程と、
を含んだことを特徴とする画像処理方法。
(付記2)前記予測画像転送工程では、前記予測画像データを前記第1の記憶媒体である外部メモリから前記第2の記憶媒体であるプロセッサの内蔵メモリにDMA転送することを特徴とする前記付記1に記載の画像処理方法。
(付記3)前記予測画像転送工程では、前記予測画像データを前記第1の記憶媒体である外部メモリから前記第2の記憶媒体であるプロセッサのデータキャッシュに転送することを特徴とする前記付記1に記載の画像処理方法。
(付記4)前記予測画像転送工程では、前記可変長復号処理工程、前記逆量子化処理工程または前記逆DCT処理工程により前記第1の記憶媒体または前記第2の記憶媒体が使用される時期を避けて前記予測画像データを前記第1の記憶媒体から前記第2の記憶媒体に転送することを特徴とする前記付記3に記載の画像処理方法。
(付記5)MPEG規格に従って符号化された動画像中の処理対象のブロックにつき可変長復号処理を行う可変長復号処理工程と、
前記可変長復号処理工程による可変長復号処理の処理結果につき逆量子化処理を行う逆量子化処理工程と、
前記逆量子化処理工程による逆量子化処理の処理結果につき逆DCT処理を行う逆DCT処理工程と、
前記可変長復号処理工程、前記逆量子化処理工程または前記逆DCT処理工程と平行して、前記処理対象のブロックの復号に用いる予測画像データを第1の記憶媒体から第2の記憶媒体に転送する予測画像転送工程と、
前記予測画像転送工程で転送された予測画像データを前記第2の記憶媒体から読み出すとともに、当該予測画像データを用いて前記逆DCT処理工程による逆DCT処理の処理結果につき動き補償処理を行う動き補償処理工程と、
をプロセッサに実行させることを特徴とする画像処理プログラム。
(付記6)前記予測画像転送工程では、前記予測画像データを前記第1の記憶媒体である外部メモリから前記第2の記憶媒体であるプロセッサの内蔵メモリにDMA転送することを特徴とする前記付記5に記載の画像処理プログラム。
(付記7)前記予測画像転送工程では、前記予測画像データを前記第1の記憶媒体である外部メモリから前記第2の記憶媒体であるプロセッサのデータキャッシュに転送することを特徴とする前記付記5に記載の画像処理プログラム。
(付記8)前記予測画像転送工程では、前記可変長復号処理工程、前記逆量子化処理工程または前記逆DCT処理工程により前記第1の記憶媒体または前記第2の記憶媒体が使用される時期を避けて前記予測画像データを前記第1の記憶媒体から前記第2の記憶媒体に転送することを特徴とする前記付記7に記載の画像処理プログラム。
(付記9)MPEG規格に従って符号化された動画像中の処理対象のブロックにつき可変長復号処理を行う可変長復号処理手段と、
前記可変長復号処理手段による可変長復号処理の処理結果につき逆量子化処理を行う逆量子化処理手段と、
前記逆量子化処理手段による逆量子化処理の処理結果につき逆DCT処理を行う逆DCT処理手段と、
前記可変長復号処理手段、前記逆量子化処理手段または前記逆DCT処理手段と平行して、前記処理対象のブロックの復号に用いる予測画像データを第1の記憶媒体から第2の記憶媒体に転送する予測画像転送手段と、
前記予測画像転送手段で転送された予測画像データを前記第2の記憶媒体から読み出すとともに、当該予測画像データを用いて前記逆DCT処理手段による逆DCT処理の処理結果につき動き補償処理を行う動き補償処理手段と、
を備えたことを特徴とする画像処理装置。
(付記10)前記予測画像転送手段は、前記予測画像データを前記第1の記憶媒体である外部メモリから前記第2の記憶媒体であるプロセッサの内蔵メモリにDMA転送することを特徴とする前記付記9に記載の画像処理装置。
(付記11)前記予測画像転送手段は、前記予測画像データを前記第1の記憶媒体である外部メモリから前記第2の記憶媒体であるプロセッサのデータキャッシュに転送することを特徴とする前記付記9に記載の画像処理装置。
(付記12)前記予測画像転送手段は、前記可変長復号処理手段、前記逆量子化処理手段または前記逆DCT処理手段により前記第1の記憶媒体または前記第2の記憶媒体が使用される時期を避けて前記予測画像データを前記第1の記憶媒体から前記第2の記憶媒体に転送することを特徴とする前記付記11に記載の画像処理装置。
以上のように、本発明にかかる画像処理方法、画像処理プログラムおよび画像処理装置は、外部メモリへのアクセスが頻繁に発生する画像処理に有用であり、特にMPEG規格に従って符号化された動画像データの復号処理に適している。
本発明の実施の形態1にかかる画像処理装置のハードウエア構成を示す図である。 本発明の実施の形態1にかかる画像処理装置における、MPEG画像復号処理の手順を示すフローチャートである。 本発明の実施の形態2にかかる画像処理装置のハードウエア構成を示す説明図である。 本発明の実施の形態2にかかる画像処理装置における、MPEG画像復号処理(可変長復号処理と平行して予測画像データをプリフェッチする場合)の手順を示すフローチャートである。 本発明の実施の形態2にかかる画像処理装置における、MPEG画像復号処理(逆量子化処理と平行して予測画像データをプリフェッチする場合)の手順を示すフローチャートである。 本発明の実施の形態2にかかる画像処理装置における、MPEG画像復号処理(逆DCT処理と平行して予測画像データをプリフェッチする場合)の手順を示すフローチャートである。 従来技術におけるMPEG画像復号処理の手順を示すフローチャートである。
符号の説明
100,300 プロセッサ
100a,300a 実行部
100b,300b キャッシュユニット
100c 内蔵メモリ
100d 内蔵メモリコントローラ
101,301 外部メモリ
102,302 画像出力装置

Claims (5)

  1. MPEG規格に従って符号化された動画像中の処理対象のブロックにつき可変長復号処理を行う可変長復号処理工程と、
    前記可変長復号処理工程による可変長復号処理の処理結果につき逆量子化処理を行う逆量子化処理工程と、
    前記逆量子化処理工程による逆量子化処理の処理結果につき逆DCT処理を行う逆DCT処理工程と、
    前記可変長復号処理工程、前記逆量子化処理工程または前記逆DCT処理工程と平行して、前記処理対象のブロックの復号に用いる予測画像データを第1の記憶媒体から第2の記憶媒体に転送する予測画像転送工程と、
    前記予測画像転送工程で転送された予測画像データを前記第2の記憶媒体から読み出すとともに、当該予測画像データを用いて前記逆DCT処理工程による逆DCT処理の処理結果につき動き補償処理を行う動き補償処理工程と、
    を含んだことを特徴とする画像処理方法。
  2. 前記予測画像転送工程では、前記予測画像データを前記第1の記憶媒体である外部メモリから前記第2の記憶媒体であるプロセッサの内蔵メモリにDMA転送することを特徴とする前記請求項1に記載の画像処理方法。
  3. 前記予測画像転送工程では、前記予測画像データを前記第1の記憶媒体である外部メモリから前記第2の記憶媒体であるプロセッサのデータキャッシュに転送することを特徴とする前記請求項1に記載の画像処理方法。
  4. MPEG規格に従って符号化された動画像中の処理対象のブロックにつき可変長復号処理を行う可変長復号処理工程と、
    前記可変長復号処理工程による可変長復号処理の処理結果につき逆量子化処理を行う逆量子化処理工程と、
    前記逆量子化処理工程による逆量子化処理の処理結果につき逆DCT処理を行う逆DCT処理工程と、
    前記可変長復号処理工程、前記逆量子化処理工程または前記逆DCT処理工程と平行して、前記処理対象のブロックの復号に用いる予測画像データを第1の記憶媒体から第2の記憶媒体に転送する予測画像転送工程と、
    前記予測画像転送工程で転送された予測画像データを前記第2の記憶媒体から読み出すとともに、当該予測画像データを用いて前記逆DCT処理工程による逆DCT処理の処理結果につき動き補償処理を行う動き補償処理工程と、
    をプロセッサに実行させることを特徴とする画像処理プログラム。
  5. MPEG規格に従って符号化された動画像中の処理対象のブロックにつき可変長復号処理を行う可変長復号処理手段と、
    前記可変長復号処理手段による可変長復号処理の処理結果につき逆量子化処理を行う逆量子化処理手段と、
    前記逆量子化処理手段による逆量子化処理の処理結果につき逆DCT処理を行う逆DCT処理手段と、
    前記可変長復号処理手段、前記逆量子化処理手段または前記逆DCT処理手段と平行して、前記処理対象のブロックの復号に用いる予測画像データを第1の記憶媒体から第2の記憶媒体に転送する予測画像転送手段と、
    前記予測画像転送手段で転送された予測画像データを前記第2の記憶媒体から読み出すとともに、当該予測画像データを用いて前記逆DCT処理手段による逆DCT処理の処理結果につき動き補償処理を行う動き補償処理手段と、
    を備えたことを特徴とする画像処理装置。

JP2003289255A 2003-08-07 2003-08-07 画像処理方法、画像処理プログラムおよび画像処理装置 Pending JP2005057688A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003289255A JP2005057688A (ja) 2003-08-07 2003-08-07 画像処理方法、画像処理プログラムおよび画像処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003289255A JP2005057688A (ja) 2003-08-07 2003-08-07 画像処理方法、画像処理プログラムおよび画像処理装置

Publications (1)

Publication Number Publication Date
JP2005057688A true JP2005057688A (ja) 2005-03-03

Family

ID=34367654

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003289255A Pending JP2005057688A (ja) 2003-08-07 2003-08-07 画像処理方法、画像処理プログラムおよび画像処理装置

Country Status (1)

Country Link
JP (1) JP2005057688A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100380952C (zh) * 2005-06-06 2008-04-09 威盛电子股份有限公司 数字影像解码装置及其方法
CN100380953C (zh) * 2005-06-06 2008-04-09 威盛电子股份有限公司 数字影像解码装置及其方法
CN100384246C (zh) * 2005-06-06 2008-04-23 威盛电子股份有限公司 数字影像解码装置及其方法
US7423652B2 (en) 2005-05-27 2008-09-09 Via Technologies Inc. Apparatus and method for digital video decoding
JP2011518527A (ja) * 2008-04-25 2011-06-23 コア ロジック,インコーポレイテッド 映像の復号化

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7423652B2 (en) 2005-05-27 2008-09-09 Via Technologies Inc. Apparatus and method for digital video decoding
CN100380952C (zh) * 2005-06-06 2008-04-09 威盛电子股份有限公司 数字影像解码装置及其方法
CN100380953C (zh) * 2005-06-06 2008-04-09 威盛电子股份有限公司 数字影像解码装置及其方法
CN100384246C (zh) * 2005-06-06 2008-04-23 威盛电子股份有限公司 数字影像解码装置及其方法
JP2011518527A (ja) * 2008-04-25 2011-06-23 コア ロジック,インコーポレイテッド 映像の復号化

Similar Documents

Publication Publication Date Title
JP4668914B2 (ja) 画像復号装置
KR101238163B1 (ko) 파일 입출력 스케줄러
TWI364714B (en) Caching method and apparatus for video motion compensation
US5812791A (en) Multiple sequence MPEG decoder
US7965773B1 (en) Macroblock cache
US8400460B2 (en) Image data processing method, program for image data processing method, recording medium with recorded program for image data processing method and image date processing device
US20060291560A1 (en) Method and apparatus for processing image data
US20050262276A1 (en) Design method for implementing high memory algorithm on low internal memory processor using a direct memory access (DMA) engine
US7885336B2 (en) Programmable shader-based motion compensation apparatus and method
JP2007295423A (ja) 画像データの処理装置、画像データの処理方法、画像データの処理方法のプログラム及び画像データの処理方法のプログラムを記録した記録媒体
US20100321579A1 (en) Front End Processor with Extendable Data Path
CN110708609A (zh) 一种视频播放方法及装置
US6459737B1 (en) Method and apparatus for avoiding redundant data retrieval during video decoding
JP2005057688A (ja) 画像処理方法、画像処理プログラムおよび画像処理装置
JP2001331793A (ja) 画像処理装置及びキャッシュメモリ
US20050286633A1 (en) Image processing using unaligned memory load instructions
JP3322233B2 (ja) 動画像伸長方法及びそれを実行するプログラムを記録した記録媒体
JP3123496B2 (ja) 動き補償処理方法及びシステム並びにその処理プログラムを記録した記録媒体
TWI772947B (zh) 具有上下文預提取以及缺失處理的熵解碼裝置及相關熵解碼方法
KR100891116B1 (ko) 대역폭 인식 움직임 보상 장치 및 그 방법
US6873735B1 (en) System for improved efficiency in motion compensated video processing and method thereof
JP2005189975A (ja) 画像処理装置、画像処理方法およびプログラム
KR102171119B1 (ko) 복수개의 블록 기반의 파이프라인을 이용한 데이터 처리 속도 개선 장치 및 그 동작 방법
JP2009130599A (ja) 動画像復号装置
US20080056377A1 (en) Neighboring Context Management

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060721

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080718

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080729

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080929

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20081104