(57)【要約】【課題】効率よく復号処理を行う復号処理装置を提供する。【解決手段】同一のフレーム内における周辺画素の復号結果を参照して当該復号対象となるマクロブロックの復号処理を行うＣＰＵ３１と、復号結果を記憶するメインメモリ３４とを有するソフトウェア処理系３０であって、復号処理が行われたマクロブロックを構成する所定数の画素のうち同一フレーム内における任意のマクロブロックに参照されうる参照画素をＣＰＵ３１により設定された参照画素の復号結果を参照情報として記憶するＬ２キャッシュ３３をさらに備え、ＣＰＵ３１は、復号対象となるマクロブロックに応じて上記参照情報をＬ２キャッシュ３３から読み出し、読み出した参照情報を参照して当該復号対象となるマクロブロックの復号処理を行う。【選択図】  図２
2008048178.tif 000002
【特許請求の範囲】
【請求項１】
動画像データを、所定数の画素から構成されるマクロブロック単位でフレーム内を行列状に分割して符号化されているマクロブロックに対して、同一のフレーム内における周辺画素の復号結果を参照して当該復号対象となるマクロブロックの復号処理を行う復号処理手段と、上記復号処理手段により復号処理が行われた復号結果を記憶する第１の記憶手段とを有する復号処理装置であって、
上記復号処理手段により復号処理が行われたマクロブロックを構成する所定数の画素のうち、同一フレーム内における任意のマクロブロックに参照されうる参照画素を設定する設定手段と、
上記設定手段により設定された上記参照画素の復号結果を参照情報として記憶する第２の記憶手段とを備え、
上記復号処理手段は、復号対象となるマクロブロックに応じて上記参照情報を上記第２の記憶手段から読み出し、上記読み出した参照情報を参照して当該復号対象となるマクロブロックの復号処理を行うことを特徴とする復号処理装置。
【請求項２】
上記第１の記憶手段は上記復号処理手段の処理を行うプロセッサのメインメモリであり、上記第２の記憶手段は上記復号処理手段の処理を行うプロセッサのキャッシュメモリであることを特徴とする請求項１記載の復号処理装置。
【請求項３】
上記動画像データは、復号対象となるマクロブロックに対して左横、左斜め上、上及び右斜め上のマクロブロックの復号結果を参照することが規定された規格で符号化されており、当該符号化されているマクロブロックにはマクロブロック情報として、フレーム内予測又はフレーム間予測のいずれかで符号化されていることを示すイントラ／インターフラグと、フレーム構造又はフィールド構造のいずれかで符号化されていることを示すフレーム／フィールドフラグと、スキップモードであるか否かを示すスキップフラグと、フレーム内におけるマクロブロックのスライス位置を示すスライス番号が含まれており、
上記設定手段は、マクロブロックの右端垂直方向と下端水平方向とからなる２方向の画素列と、上記マクロブロック情報とを上記参照情報として設定し、
上記第２の記憶手段は、上記参照情報を記憶する際に、上記右端垂直方向の画素列と上記下端水平方向の画素列とが重複する画素のうち、一方の上記重複する画素の復号結果に代えて上記マクロブロック情報を記憶することを特徴とする請求項１記載の復号処理装置。
【請求項４】
上記復号処理手段の処理を行うプロセッサは、フレーム内予測で符号化されているマクロブロックの復号処理専用のプロセッサであることを特徴とする請求項３記載の復号処理装置。
【請求項５】
動画像データを、所定数の画素から構成されるマクロブロック単位でフレーム内を行列状に分割して符号化されているマクロブロックに対して、同一のフレーム内における周辺画素の復号結果を参照して復号処理を行い、当該復号結果を記憶する第１の記憶手段を有する復号処理装置の復号処理方法であって、
復号されたマクロブロックを構成する所定数の画素のうち、同一フレーム内における任意のマクロブロックに参照されうる参照画素を設定する設定工程と、
上記設定工程により設定された上記参照情報の復号結果を、参照情報として第２の記憶手段に記憶する記憶工程と、
復号対象となるマクロブロックの周辺画素に応じた上記参照情報を上記第２の記憶手段から読み出す読み出し工程と、
上記読み出し工程で読み出した参照情報を参照して上記復号対象となるマクロブロックの復号処理を行う復号処理工程とを備えることを特徴とする復号処理方法。
【請求項６】
動画像データを、所定数の画素から構成されるマクロブロック単位でフレーム内を行列状に分割して符号化されているマクロブロックに対して、同一のフレーム内における周辺画素の復号結果を参照して復号処理を行い、当該復号結果を記憶する第１の記録手段を有するコンピュータにより実行される復号処理プログラムであって、
復号されたマクロブロックを構成する所定数の画素のうち、同一フレーム内における任意のマクロブロックに参照されうる参照画素を設定する設定工程と、
上記設定工程により設定された上記参照情報の復号結果を、参照情報として第２の記憶手段に記憶させる記憶工程と、
復号対象となるマクロブロックの周辺画素に応じた上記参照情報を上記第２の記憶手段から読み出す読み出し工程と、
上記読み出し工程で読み出した参照情報を参照して上記復号対象となるマクロブロックの復号処理を行う復号処理工程とを備えることを特徴とする復号処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化された動画像データを復号する復号処理装置、復号処理方法、及び、復号処理プログラムに関するものである。
【背景技術】
【０００２】
近年、画像情報の冗長性を利用して、離散コサイン変換等の直交変換及び動き補償により画像を圧縮するＭＰＥＧ等の方式に準拠した装置が、放送局などにおける情報配信、及び、一般家庭等における情報受信の双方において普及しつつある。
【０００３】
特に、ＭＰＥＧ２（ISO/IEC 13818-2）は、汎用画像符号化方式として定義されており、飛び越し走査画像及び順次走査画像の双方に、また、標準解像度画像及び高精細画像の双方に、それぞれ対応しているため、プロフェッショナル用途及びコンシューマー用途のアプリケーションに広く用いられている。具体的に、ＭＰＥＧ２では、例えば７２０×４８０画素による標準解像度・飛び越し操作方式の画像データを４〜８［Ｍｂｐｓ］のビットレートに圧縮し、また、１９２０×１０８８画素による高解像度・飛び越し操作方式の画像データを１８〜２２［Ｍｂｐｓ］のビットレートに圧縮して、高画質且つ高圧縮率を実現することができる。
【０００４】
しかしながらＭＰＥＧ２は、放送用に適合した高画質符号化方式であり、ＭＰＥＧ１より符号量の少ない高圧縮率の符号化方式に対応していない。これに対して、近年の携帯端末の普及によってＭＰＥＧ１よりも符号量の少ない高圧縮率の符号化方式のニーズの高まりが予測される。このためＭＰＥＧ４(ISO/IEC 14496-2)による符号化方式の規格が１９９８年１２月に国際標準規格として承認された。
【０００５】
一方では、テレビ会議用の画像符号化を当初の目的としたＨ．２６４(ITU-T/Q6/16 VCEG)の規格化が進んでいる。Ｈ．２６４は、ＭＰＥＧ２やＭＰＥＧ４等の従来の符号化方式と比べて符号化・復号処理により多くの演算量が要求される。しかし、Ｈ．２６４では、ＭＰＥＧ２やＭＰＥＧ４に比べてより高い符号化効率を実現できることが知られている。また、ＭＰＥＧ４の活動の一環として、Ｈ．２６４でサポートされていない機能をＨ．２６４に取り入れ、より高い符号化効率を実現する符号化方式の標準化がＪＶＴ（Joint Video Team）で行われている。２００３年３月には、Ｈ．２６４／ＡＶＣ（Advanced Video Coding）が国際標準規格として認められた。この規格は、ＭＰＥＧ−４  Ｐａｒｔ１０とも称される。以降この規格を便宜上ＡＶＣ規格と称する。また、非特許文献１には、この規格に基づく処理内容が記載されている。
【０００６】
ＡＶＣ規格に準拠した符号化方式の具体例の画像情報符号化装置について説明する。図１５は、離散コサイン変換若しくはカルーネン・レーベ変換等の直交変換と動き補償により画像圧縮を実現する画像情報符号化装置１００のブロック図である。図１５に示すように画像情報符号化装置１００は、Ａ／Ｄ（Analog/digital）変換器１０１と、画像並び換えバッファ１０２と、加算器１０３と、直交変換部１０４と、量子化部１０５と、可逆符号化部１０６と、蓄積バッファ１０７と、逆量子化部１０８と、逆直交変換部１０９と、デブロックフィルタ１１０と、フレームメモリ１１１と、イントラ予測部１１２と、動き予測・補償部１１３と、レート制御部１１４とにより構成されている。
【０００７】
Ａ／Ｄ変換器１０１は、入力された画像信号をデジタル信号に変換する。画像並び換えバッファ１０２は、この画像情報符号化装置１００が出力する画像圧縮情報ＧＯＰ（Group of Picture）構造に応じてフレームを並び替える。ここで、画像並び換えバッファ１０２において、イントラ（画面内）符号化を行う画像は、そのフレーム全体の画像情報が直交変換器１０４に供給される。直交変換器１０４は、離散コサイン変換又はカルーネン・レーベ変換等の直交変換を画像情報に施して、得られた変換係数を量子化部１０５に供給する。量子化部１０５は、直交変換部１０４から供給された変換係数に対して量子化処理を施す。
【０００８】
可逆符号化部１０６は、量子化された変換係数に対して可変長符号化・算術符号化等の可逆符号化を施し、符号化された変換係数を蓄積バッファ１０７に供給して蓄積させる。この符号化された変換係数は画像圧縮情報として出力される。
【０００９】
ここで、量子化部１０５の挙動は、レート制御部１１４によって制御される。また、量子化部１０５は、量子化後の変換係数を逆量子化部１０８に供給する。逆量子化部１０８は、量子化された変換係数を逆量子化して逆直交変換部１０９に供給する。逆直交変換部１０９は、逆量子化された変換係数に逆直交変換処理を施して復号画像情報を生成してデブロックフィルタ１１０に供給する。デブロックフィルタ１１０は、復号画像情報からブロック歪みを除去し、フレームメモリ１１１に供給して蓄積させる。
【００１０】
一方、画像並び換えバッファ１０２は、インター（画面間）符号化が行われる画像に関する参照画像情報を生成する。動き予測・補償部１１３は、この参照画像情報を加算器１０３に供給する。加算器１０３は、参照画像情報を当該画像情報との差分信号に変換する。また、動き補償・予測部１１３は、同時に動きベクトル情報を可逆符号化部１０６に供給する。
【００１１】
可逆符号化部１０６は、この動きベクトル情報に対して可変長符号化または算術符号化などの可逆符号化処理を施し、画像圧縮情報のヘッダ部に挿入される情報を形成する。なお、その他の処理についてはイントラ符号化処理が施される画像圧縮情報と同様であるためその説明を省略する。
【００１２】
続いて、画像情報符号化装置１００が出力する圧縮画像情報を復号する画像情報複号処理装置２００の概略構成を図１６に示す。図１６に示すように画像情報復号処理装置２００は、蓄積バッファ２０１と、可逆復号化部２０２と、逆量子化部２０３と、逆直交変換部２０４と、加算器２０５と、デブロックフィルタ２０６と、画面並べ替えバッファ２０７と、Ｄ／Ａ変換器２０８と、イントラ予測部２０９と、フレームメモリ２１０と、動き予測・補償部２１１とにより構成されている。
【００１３】
蓄積バッファ２０１は、入力された画像圧縮情報を一時的に記憶した後に可逆復号化部２０２に供給する。可逆復号化部２０２は、画像圧縮情報の形式に基づいて画像圧縮情報に可変長復号又は算術復号などの処理を施し、量子化された変換係数を逆量子化部２０３に供給する。また、可逆復号化部２０２は、当該フレームがイントラ符号化されたものである場合に画像圧縮情報のヘッダ部に格納されたイントラ予測情報も復号してその情報をイントラ予測部２０９に供給し、当該フレームがインター符号化されたものである場合に画像圧縮情報のヘッダ部に格納された動きベクトル情報も復号してその情報を動き予測・補償部２１１に供給する。
【００１４】
逆量子化部２０３は、可逆復号化部２０２から供給された変換係数に逆量子化処理を施し、その変換係数を逆直交変換部２０４に供給する。逆直交変換部２０４は、画像圧縮情報の形式に基づいて係数変換に逆離散コサイン変換又は逆カルーネン・レーベ変換などの逆直交変換を施す。
【００１５】
加算器２０５は、逆直交変換部２０４から供給される変換係数に、イントラ予測部２０９から出力される予測画像による予測値、若しくは、動き予測・補償部２１１から出力される予測画像による予測値を加算してデブロックフィルタ２０６に供給する。
【００１６】
デブロックフィルタ２０６は、加算器２０５から供給される画像情報のブロック歪みを除去して画面並べ替えバッファ２０７へ供給する。画面並べ替えバッファ２０７は、デブロックフィルタ２０６から供給される画像データのフレームをＧＯＰ構造に応じて並べ替えてＤ／Ａ変換器２０８に供給する。Ｄ／Ａ変換器２０８は、画面並べ替えバッファ２０７から供給されるデータをアナログ信号に変換して出力する。
【００１７】
フレームメモリ２１０は、デブロックフィルタ２０６から出力される画像データを参照画像情報として記憶する。動き予測・補償部２１１は、可逆復号化部２０２から通知される動きベクトル情報に応じた参照画像情報をフレームメモリ２１０から読み出し、その参照画像情報に動き補償処理を施して予測画像による予測値を生成し、この予測値を加算器２０５に供給する。また、イントラ予測部２０９は、可逆復号化部２０２から通知されるイントラ予測情報に応じた参照画像情報をフレームメモリ２１０から読み出し、その参照画像情報にイントラ予測処理を施して予測画像による予測値を生成し、この予測値を加算器２０５に供給する。
【００１８】
ＡＶＣなどの符号化規格では、１つの画面（フレーム）内を所定画素数のブロックに分割し、当該ブロック単位で符号化処理及び復号処理が行われる。この画素ブロックのことをマクロブロックという。
【００１９】
続いて、イントラ予測処理について詳述する。
【００２０】
上述したＡＶＣ規格による符号化・復号処理において、画素情報の輝度成分に関してはＨｉｇｈ  Ｐｒｏｆｉｌｅを除くと、４×４画素ブロック単位に予測を行うイントラ４×４予測モードと１６×１６画素ブロック（マクロブロック）単位で予測を行うイントラ１６×１６予測モードとの２つの予測方式が用いられている。
【００２１】
一方、色差成分に関しては、Ｃｂ，Ｃｒそれぞれの８×８ブロック単位で予測を行う。この予測符号化処理は、イントラ１６×１６予測モードと同様であって、この予測モードを８×８ブロック単位に変更したものである。
【００２２】
これらの予測モードのうち、イントラ４×４予測モードでは、図１７に示すように、予測値を生成する４×４画素ａ〜ｐの予測対象ブロックに対して、近傍１３個の画素Ａ〜Ｍの一部が予測値の生成に供する予測画素に設定され、この予測画素により予測値が生成される。ここで、予測画素Ａ〜Ｍは、予測対象ブロックの走査開始端側で垂直方向に隣接する４個の画素Ａ〜Ｄと、この４個の画素Ａ〜Ｄの走査終了端側の画素Ｄに続く４個の画素Ｅ〜Ｈと、予測対象ブロックの走査開始端側で水平方向に隣接する４個の画素Ｉ〜Ｌと、この水平方向に隣接する４個の画素Ｉ〜Ｌのうち走査開始端側の画素Ｉの上方に位置する画素Ｍとにより形成される。
【００２３】
イントラ４×４予測モードでは、これら１３個の予測画素Ａ〜Ｍと、予測値の生成に供する４×４個の画素ａ〜ｐとの相対的な関係によって、図１８及び図１９に示すように、モード０〜モード８の予測モードが設定されている。例えばモード０及びモード１では、予測値の生成に使用する１３個の予測画素Ａ〜Ｍのうち、それぞれ垂直方向及び水平方向に隣接する予測画素Ａ〜Ｄ及びＩ〜Ｌにより予測値を生成する。
【００２４】
より具体的には、図２０（Ａ）に示すようにモード０は、垂直方向に隣接する予測画素Ａ〜Ｄにより予測値を生成するモードである。また、図２０（Ｂ）に示すようにモード１は、水平方向に隣接する予測画素Ｉ〜Ｌより予測値を生成するモードである。また、図２０（Ｃ）に示すようにモード２は、１３個の予測画素Ａ〜Ｍのうち、このブロックの垂直方向及び水平方向に隣接する画素Ａ〜Ｄ及びＩ〜Ｌにより予測画を生成するモードである。また、図２０（Ｄ）に示すようにモード３は、１３個の予測画素Ａ〜Ｍのうち、水平方向に連続する画素Ａ〜Ｈにより予測値を生成するモードである。また、図２０（Ｅ）に示すようにモード４は、１３個の予測画素Ａ〜Ｍのうち４×４個の画素ａ〜ｐによるブロックに隣接する画素Ａ〜Ｄ・画素Ｉ〜Ｍによって予測値を生成するモードである。また、図２０（Ｆ）に示すようにモード５は、１３個の予測画素Ａ〜Ｍのうち、４×４個の画素ａ〜ｐによるブロックに隣接する画素Ａ〜Ｄ・画素Ｉ〜Ｋ・画素Ｍにより予測値を生成するモードである。また、図２０（Ｇ）に示すようにモード６は、１３個の予測画素Ａ〜Ｍのうち、４×４個の画素ａ〜ｐによるブロックに隣接する画素Ａ〜Ｃ・画素Ｉ〜Ｍにより予測値を生成するモードである。また、図２０（Ｈ）に示すようにモード７は、１３個の予測画素Ａ〜Ｍのうち、４×４個の画素ａ〜ｐによるブロックの上方に隣接する４個の画素Ａ〜Ｄと、この４個の画素Ａ〜Ｄに続く４個の画素Ｅ〜Ｇとにより予測値を生成するモードである。さらに、図２０（Ｉ）に示すようにモード８は、１３個の予測画素Ａ〜Ｍのうち４×４個の画素によるブロックの左方に隣接する４個の画素Ｉ〜Ｌにより予測値を生成するモードである。
【００２５】
これに対して、イントラ１６×１６予測モードでは、図２１に示すように、予測値を生成する１６×１６個の画素Ｐ（０，１５）〜Ｐ（１５，１５）によるブロックＢに対して、このブロックＢの上方に隣接する画素Ｐ（０，−１）〜Ｐ（１５，−１）及びこのブロックＢの左方に隣接する画素Ｐ（−１，０）〜Ｐ（−１，１５）が予測画素に設定され、これらの予測画素により予測値が生成される。
【００２６】
また、イントラ１６×１６予測モードでは、図２２に示すように、モード０〜モード３の予測モードが設定されている。モード０では、図２３（Ａ）に示すように、ブロックＢの上方に隣接する各画素Ｐ（０，−１）〜Ｐ（１５，−１）の画素値によりブロックＢの垂直方向に連続する各画素の予測値が生成される。また、モード１では、図２３（Ｂ）に示すように、ブロックＢの左方に隣接する各画素Ｐ（−１，０）〜Ｐ（−１，１５）の画素値によりブロックＢの水平方向に連続する各画素の予測値が生成される。また、モード２では、図２３（Ｃ）に示すように、画素Ｐ（０，−１）〜Ｐ（１５，−１）及びＰ（−１，０）〜Ｐ（−１，１５）による画素値の平均値によりブロックＢを構成する各画素の予測値が生成される。また、モード３では、図２３（Ｄ）に示すように斜め方向の演算処理により各画素の予測値が生成される。
【００２７】
なお、８×８画素のマクロブロックが処理対象となる色差信号では、ブロックサイズが輝度信号と異なるが処理工程が同様であるから、その説明を省略する。
【００２８】
以上説明した画像情報符号処理装置１００及び画像情報復号処理装置２００については、例えば特許文献１などに記載されている。
【００２９】
ところで、上述したようにイントラ予測を行うには、予測対象のマクロブロックの周辺画素が必要なので、これら周辺画素の属するマクロブロックの画像情報も必要となる。
【００３０】
このようなイントラ予測を専用ハードウェアで実装する一般的なイントラ予測ハードウェア処理系３００は、図２４（Ａ）に示すように、参照画像情報が記憶されているメインメモリ３０１と、イントラ予測を行うイントラ予測回路３０２とから構成される。また、イントラ予測回路３０２には、ＳＲＡＭ（Static Random Access Memory）などのローカルメモリ３０３が内蔵されている。
【００３１】
例えば、図２４（Ｂ）に示すようにマクロブロックＡの右方及び下方の画素列は、マクロブロックＢ，Ｃ，Ｄの周辺画素としてイントラ予測を行う場合に必要となる。したがって、マクロブロックＢ，Ｃ，Ｄのイントラ予測を高速で行うため、イントラハードウェア処理系３００では、マクロブロックＡのうちイントラ予測に必要となる２つの画素列のみをローカルメモリ３０３に保持する。
【００３２】
【非特許文献１】「Draft Errata List with Revision-Marked Corrections for H.264/AVC」, JVT-1050, Thomas Wiegand et al., Joint Video Team (JVT) of ISO/IEC MPEG & ITU-T VCEG, 2003
【特許文献１】特開２００６―９４０８１号公報
【発明の開示】
【発明が解決しようとする課題】
【００３３】
ところで、上述したＪＶＴで標準化が行われている符号化方式などの復号処理をソフトウェア上で実装する場合には汎用プロセッサで実装できるので、各処理ブロックを組み込みプロセッサなどの専用ハードウェアで実装する場合に対して、例えばバージョンアップなどのシステムの設計仕様を容易に変更できるといった利点がある。
【００３４】
イントラ予測処理をソフトウェアにより実装する一般的なソフトウェア処理系４００は、例えば図２５に示すように、ＣＰＵ（Central Processing Unit）４０１と、Ｌ１キャッシュ４０２と、Ｌ２キャッシュ４０３と、メインメモリ４０４とから構成される。
【００３５】
ソフトウェア処理系４００では、復号されたマクロブロック単位の画像をメモリマッピングされたアドレスで管理する。すなわち、マクロブロックは、Ｌ１キャッシュ４０２とＬ２キャッシュ４０３とメインメモリ４０４とにおいて共通のアドレスで管理されている。
【００３６】
よって、ソフトウェア処理系４００において、例えば、図２４（Ｂ）に示したようにマクロブロックＢ，Ｃ，Ｄをイントラ予測する場合には、イントラ予測に必要となる周辺画素を含む周辺マクロブロック（例えば、マクロブロックＡ）をメモリマップで管理された領域から読み出す必要がある。
【００３７】
ここで、イントラ予測に用いられる周辺マクロブロックの復号された画像データを含め、復号処理に必要なデータを記憶するのに十分な記憶領域がＬ２キャッシュ４０３にない場合には、上述した周辺マクロブロックをＣＰＵ４０１へ読み出す際にキャッシュミスを起こして、単位時間当たりにメインメモリ４０４から周辺マクロブロックが読み出される頻度が多くなる。
【００３８】
このようにして、メインメモリへのアクセス数が多くなると、メインメモリ４０４からＬ２キャッシュ４０３を繋ぐバス帯域において周辺画素ブロックデータの占有率が高くなり、イントラ予測処理だけでなくデコード処理全体の処理速度が低下してしまうこととなる。
【００３９】
本発明は、このような実情に鑑みて提案されたものであり、効率よく復号処理を行う復号処理装置、復号処理方法、復号処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【００４０】
上述した課題を解決するための手段として、本発明に係る復号処理装置は、動画像データを、所定数の画素から構成されるマクロブロック単位でフレーム内を行列状に分割して符号化されているマクロブロックに対して、同一のフレーム内における周辺画素の復号結果を参照して当該復号対象となるマクロブロックの復号処理を行う復号処理手段と、上記復号処理手段により復号処理が行われた復号結果を記憶する第１の記憶手段とを有する復号処理装置であって、上記復号処理手段により復号処理が行われたマクロブロックを構成する所定数の画素のうち、同一フレーム内における任意のマクロブロックに参照されうる参照画素を設定する設定手段と、上記設定手段により設定された上記参照画素の復号結果を、参照情報として記憶する第２の記憶手段とを備え、上記復号処理手段は、復号対象となるマクロブロックに応じて上記参照情報を上記第２の記憶手段から読み出し、上記読み出した参照情報を参照して当該復号対象となるマクロブロックの復号処理を行うことを特徴とする。
【００４１】
また、本発明に係る復号処理方法は、動画像データを、所定数の画素から構成されるマクロブロック単位でフレーム内を行列状に分割して符号化されているマクロブロックに対して、同一のフレーム内における周辺画素の復号結果を参照して復号処理を行い、当該復号結果を記憶する第１の記憶手段を有する復号処理装置の復号処理方法であって、復号されたマクロブロックを構成する所定数の画素のうち、同一フレーム内における任意のマクロブロックに参照されうる参照画素を設定する設定工程と、上記設定工程により設定された上記参照情報の復号結果を、参照情報として第２の記憶手段に記憶する記憶工程と、復号対象となるマクロブロックの周辺画素に応じた上記参照情報を上記第２の記憶手段から読み出す読み出し工程と、上記読み出し工程で読み出した参照情報を参照して上記復号対象となるマクロブロックの復号処理を行う復号処理工程とを備えることを特徴とする。
【００４２】
また、本発明に係る復号処理プログラムは、動画像データを、所定数の画素から構成されるマクロブロック単位でフレーム内を行列状に分割して符号化されているマクロブロックに対して、同一のフレーム内における周辺画素の復号結果を参照して復号処理を行い、当該復号結果を記憶する第１の記録手段を有するコンピュータにより実行される復号処理プログラムであって、復号されたマクロブロックを構成する所定数の画素のうち、同一フレーム内における任意のマクロブロックに参照されうる参照画素を設定する設定工程と、上記設定工程により設定された上記参照情報の復号結果を、参照情報として第２の記憶手段に記憶させる記憶工程と、復号対象となるマクロブロックの周辺画素に応じた上記参照情報を上記第２の記憶手段から読み出す読み出し工程と、上記読み出し工程で読み出した参照情報を参照して上記復号対象となるマクロブロックの復号処理を行う復号処理工程とを備えることを特徴とする。
【発明の効果】
【００４３】
本発明は、復号されたマクロブロックを構成する所定数の画素のうち、同一フレーム内における任意のマクロブロックに参照されうる参照画素の復号結果を参照情報として第２の記憶手段に記憶し、上記復号対象となるマクロブロックの周辺画素に応じた上記参照情報を上記第２の記憶手段から読み出して復号処理を行う。このようにして、本発明は、同一フレームに位置する復号されたマクロブロックの全画素の復号結果を記憶する第１の記憶媒体から、復号対象のマクロブロックの周辺画素の復号結果を検索して読み出すのに比べて、周辺画素の読み出し速度が速くなり、全体として復号処理を高速に行うことができる。
【発明を実施するための最良の形態】
【００４４】
以下、本発明を実施するための最良の形態について、図面を参照しながら詳細に説明する。なお、本発明は、以下の実施形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変更が可能であることは勿論である。
【００４５】
（１）画像情報復号処理装置の構成及び動作
まず、本実施の形態における画像情報復号処理装置の概略構成を図１に示す。図１に示すように、画像情報復号処理装置１０は、蓄積バッファ１１と、可逆復号化部１２と、逆量子化部１３と、逆直交変換部１４と、加算器１５と、デブロックフィルタ１６と、画面並べ替えバッファ１７と、Ｄ／Ａ変換器１８と、イントラ予測部１９と、フレームメモリ２０と、動き・補償部２１とにより構成されている。
【００４６】
蓄積バッファ１１は、入力された画像圧縮情報を一時的に記憶した後に可逆復号化部１２に供給する。可逆復号化部１２は、画像圧縮情報の形式に基づいて画像圧縮情報に可変長復号又は算術復号などの処理を施し、量子化された変換係数を逆量子化部１３に供給する。また、可逆復号化部１２は、当該フレームがイントラ符号化されたものである場合に画像圧縮情報のヘッダ部に格納されたイントラ予測情報をも復号してその情報をイントラ予測部１９に供給し、当該フレームがインター符号化されたものである場合に画像圧縮情報のヘッダ部に格納された動きベクトル情報をも復号してその情報を動き予測・補償部２１に供給する。
【００４７】
逆量子化部１３は、可逆復号化部１２から供給された変換係数に逆量子化処理を施し、その変換係数を逆直交変換部１４に供給する。逆直交変換部１４は、画像圧縮情報の形式に基づいて係数変換に逆離散コサイン変換又は逆カルーネン・レーベ変換などの逆直交変換を施す。
【００４８】
加算器１５は、逆直交変換部１４から供給される変換係数に、イントラ予測部１９から出力される予測画像による予測値、若しくは、動き予測・補償部２１から出力される予測画像による予測値を加算してデブロックフィルタ１６に供給する。
【００４９】
デブロックフィルタ１６は、加算器１５から供給される画像情報のブロック歪みを除去して画面並べ替えバッファ１７へ供給する。画面並べ替えバッファ１７は、デブロックフィルタ１６から供給される画像データのフレームをＧＯＰ（Group Of Picture）構造に応じて並べ替えてＤ／Ａ変換器１８に供給する。Ｄ／Ａ変換器１８は、画面並べ替えバッファ１７から供給されるデータをアナログ信号に変換して出力する。
【００５０】
フレームメモリ２０は、デブロックフィルタ１６から出力される画像データを参照画像情報として記憶する。動き予測・補償部２１は、可逆復号化部１２から通知される動きベクトル情報に応じた参照画像情報をフレームメモリ２０から読み出し、その参照画像情報に動き補償処理を施して予測画像による予測値を生成し、この予測値を加算器１５に供給する。また、イントラ予測部１９は、可逆復号化部１２から通知されるイントラ予測情報に応じた参照画像情報をフレームメモリ２０から読み出し、その参照画像情報にイントラ予測処理を施して予測画像による予測値を生成し、この予測値を加算器１５に供給する。なお、フレームメモリ２０が記憶する参照画像情報は、１つの画面を所定数のブロックに分割した複数画素から構成されるマクロブロック単位で管理されている。
【００５１】
（２）画像情報復号処理装置における本発明の適用部分
以上のように、本実施形態に係る画像情報復号処理装置１０の概略構成について説明したが、以下ではイントラ予測部１９におけるフレームメモリ２０に記憶されている参照画像情報の読み出し処理に注目して詳細に説明する。なお、以下では、フレームメモリ２０に記憶される参照画像情報としてのマクロブロックを参照マクロブロックと呼び、イントラ予測部１９によって予測画像の予測値が出力されるマクロブロックをカレントマクロブロックと呼ぶ。また、イントラ予測情報が含まれているマクロブロックをイントラマクロブロックと呼び、動きベクトル情報が含まれているマクロブロックをインターマクロブロックと呼ぶ。
【００５２】
（２−１）第１のソフトウェア処理系
まず、イントラ予測部１９が行うイントラ予測処理をソフトウェアで実装する第１のソフトウェア処理系３０の構成を図２に示す。
【００５３】
第１のソフトウェア処理系３０は、図２に示すように、ＣＰＵ３１と、Ｌ１キャッシュ３２と、Ｌ２キャッシュ３３と、メインメモリ３４とから構成されている。
【００５４】
ＣＰＵ３１は、イントラ予測処理以外に、画像復号処理装置１による復号処理全体を行う。また、ＣＰＵ３１は、Ｌ１キャッシュ３２とＬ２キャッシュ３３とからなる２段階のキャッシュ構造を有している。
【００５５】
メインメモリ３４は、上述した参照画像情報を記憶するフレームメモリ２０の役割を果たすとともに、復号処理を行うために必要なデータを一時的に保持する汎用メモリである。
【００５６】
以上のような構成からなるソフトウェア処理系３０において、参照マクロブロックをＣＰＵ３１が読み出す場合、ＣＰＵ３１は、まずＬ１キャッシュ３２にアクセスし、Ｌ１キャッシュ３２にその参照マクロブロックが存在しなければＬ２キャッシュ３３にアクセスし、さらにその参照マクロブロックがＬ２キャッシュ３３にも存在しなければ最終的にメインメモリ３４にアクセスする。したがって、ＣＰＵ３１が必要なデータを高速に読み出すためには、このようなデータがメインメモリ３４よりもＬ２キャッシュ３３上に記憶されている必要がある。
【００５７】
イントラ予測処理に必要なデータとしては、図３に示すように、カレントマクロブロックに対して左横・左斜上・上・右斜上の周辺マクロブロックを参照マクロブロックとして参照する必要がある。
【００５８】
但し、これら周辺マクロブロックの中にインターマクロブロックが存在する場合には、カレントマクロブロック内に記憶されているフラグconstrained_intra_flagの値に応じて、このインターマクロブロックを参照してカレントマクロブロックのイントラ予測処理を行うか否かが決まる。例えば、フラグconstrained_intra_flagが１の場合には、インターマクロブロックを参照しない。また、周辺マクロブロックとカレントマクロブロックとが別スライスに属する場合には、このような周辺マクロブロックをイントラ予測処理で参照しない。
【００５９】
また、このような符号化規格では、参照マクロブロックの全ての画素を用いて予測対象のマクロブロックの予測値を生成するものではない。換言すれば、参照マクロブロックの一部の画素がイントラ予測処理に使用される。本実施形態では、参照マクロブロックと区別するために、このような画素を参照画素データと呼ぶ。
【００６０】
具体的に、ＡＶＣ規格では様々なサイズのマクロブロックで１画面を分割するが、本実施形態では具体例として、輝度成分Ｙのマクロブロックサイズを図４（Ａ）に示すように１６×１６画素サイズとし、色差成分Ｃｂ，Ｃｒのマクロブロックサイズを図４（Ｂ）に示すよう８×８画素サイズとする。
【００６１】
ここで、輝度成分Ｙに関しては、参照マクロブロックのうち、下端水平ラインＹ＿Ｈの１６画素と右端垂直ラインＹ＿Ｖの１６画素とが参照画素データとしてイントラ予測処理に用いられる。色差成分Ｃｂ，Ｃｒに関してはＣｂ成分とＣｒ成分のそれぞれにおいて、参照マクロブロックのうち下端垂直ラインＣｂ＿Ｖ，Ｃｒ＿Ｖの８画素と右端水平ラインＣｂ＿Ｈ，Ｃｒ＿Ｈの８画素とが参照画素データとしてイントラ処理に用いられる。
【００６２】
例えば、１画素当たりのデータサイズが１バイトとすると、輝度成分Ｙが３２バイトで、色差成分Ｃｂ，Ｃｒがそれぞれ１６バイトで、これらを合計した６４バイトの画素データがイントラ予測の際に１つの参照マクロブロックから最低限読み出す必要のあるデータとなる。
【００６３】
ここで、輝度成分Ｙにおける１６×１６画素のマクロブロックにおいて、図４（Ａ）に示すように、下端水平ラインＹ＿Ｈと右端垂直ラインＹ＿Ｖとの両方に属する重複画素Ｙ＿Ｄが１つ存在する。また、色差成分Ｃｂにおける８×８画素のマクロブロックにおいて、下端水平ラインＣｂ＿Ｈと右端垂直ラインＣｂ＿Ｖとの両方に属する重複画素Ｃｂ＿Ｄが１つ存在する。同様に、色差成分Ｃｒにおける８×８画素のマクロブロックにおいて、下端水平ラインＣｒ＿Ｈと右端垂直ラインＣｒ＿Ｖとの両方に属する重複画素Ｃｒ＿Ｄが１つ存在する。これら３つの重複画素Ｙ＿Ｄ，Ｃｂ＿Ｄ，Ｃｒ＿Ｄについては、それぞれ下端水平ライン及び右端垂直ラインで個々の記憶領域を割り当てて管理する必要がない。よって、輝度成分Ｙに関する参照画素データでは、下端水平ラインＹ＿Ｈを重複画素Ｙ＿Ｄを除いた１５画素とする。同様にして、色差成分Ｃｂ、Ｃｒに関する参照画素データでは、下端水平ラインＣｂ＿Ｈ，Ｃｒ＿Ｈを７画素とする。このようにして、イントラ予測の際に１つの参照マクロブロックから読み出させるのに最低限必要となる画素データは、輝度成分が３１バイトとし、色差成分が３０バイトとして合計で６１バイトとなる。
【００６４】
ソフトウェア処理系３０では、マクロブロック毎に、このような合計６１バイトのデータを参照画素データとして、Ｌ２キャッシュ３３内の記憶領域に管理する。
【００６５】
このようにイントラ予測に必要な画素のみをＬ２キャッシュ３３の記憶領域で記憶させることにより、Ｌ２キャッシュの記憶容量を削減することができる。
【００６６】
ここで、Ｌ２キャッシュ３３の記憶領域が２のべき乗単位でデータサイズを管理するので、合計６１バイトの周辺画素データをＬ２キャッシュ３３で管理する場合には、キャッシュの構造上、図５に示すように、最低限６４バイトの記憶領域が割り当てられ、１マクロブロック当たりの参照画素データに３バイト分のマージンデータ領域が存在することとなる。第１のソフトウェア処理系２０では、このような３バイト分のマージンデータ領域に、イントラ予測の際に当該周辺画素データをＣＰＵ２１へ読み出す必要があるか否かを判断するための情報を割り当てる。
【００６７】
具体的にマージンデータ領域には、当該マクロブロックがイントラマクロブロック又はインターマクロブロックのどちらであるかを示す１ビットのイントラ／インターフラグと、当該マクロブロックがフィールド構造又はフレーム構造のどちらであるかを示す１ビットのフィールド／フレームフラグと、当該マクロブロックがスキップマクロブロックであるか否かを示す１ビットのスキップフラグと、フレーム内における当該マクロブロックのスライス位置を示す２バイトのスライスポインタとが格納される。
【００６８】
また、これらのフラグ情報は、周辺画素データに先立ってＣＰＵ３１に読み出される。このため、Ｌ１キャッシュ３２には、参照画素データ内におけるフラグ情報のアドレス位置が記憶されているものとする。
【００６９】
なお、図５では、これら３つのフラグを輝度成分Ｙの重複画素データＹ＿Ｄに相当するマージンデータ領域に、２バイトのスライスポインタを色差成分Ｃｂ，Ｃｒの重複画素データＣｂ＿Ｄ，Ｃｒ＿Ｄに相当するマージンデータ領域にそれぞれ格納されるが、このような場合に限定せず所望とするマージンデータ領域に種々の情報を割り当てるようにしてもよい。
【００７０】
また、ＡＶＣ規格にはＡＦＦ（Adaptive flame field）という適応型の符号化処理を行うモードがあり、このようなモードで符号化処理が施されたマクロブロックに対しては、２つのマクロブロックを１組としてイントラ予測処理が行われる。さらに、このようなマクロブロックがＡＦＦ形式の場合には、１組のマクロブロックがフィールド構造又はフレーム構造の何れかに応じてこのマクロブロック内における参照画素データの位置が異なる。
【００７１】
図６に示すように、予測対象の１組のマクロブロック（以下カレントペアーと呼ぶ。）の上方に、このカレントペアーに参照される１組のマクロブロック（以下参照ペアーと呼ぶ。）が位置するものとし、参照マクロブロック内における参照画素データの位置を次に示す４つの条件に場合分けて説明する。
【００７２】
ここで、図６に示す各マクロブロックは、輝度成分Ｙに関するものであって、そのサイズが１６×１６画素とする。また、ＡＦＦ形式における１組当たり２つのマクロブロックのうち、上部にあたるものをトップマクロブロックとし、下部にあたるものをボトムマクロブロックと呼ぶ。
【００７３】
図６（Ａ）は、カレントペアー４１及び参照ペアー４２がともにフレーム構造の場合に、カレントペアー４１を構成する２つのマクロブロックのイントラ予測に必要となる参照画素データを示したものである。カレントペアー４１におけるトップマクロブロック４１ａのイントラ予測に必要な参照画素データは、参照ペアー４２のボトムマクロブロック４２ｂにおける１６行目の水平ラインの画素列である。また、カレントペアー４１におけるボトムマクロブロック４１ｂのイントラ予測に必要な参照画素データは、カレントペアー４１のトップマクロブロック４１ａにおける１６行目の水平ラインの画素列である。
【００７４】
図６（Ｂ）は、カレントペアー５１及び参照ペアー５２がともにフィールド構造の場合に、カレントペアー５１を構成する２つのマクロブロックのイントラ予測に必要となる参照画素データを示したものである。カレントペアー５１におけるトップマクロブロック５１ａのイントラ予測を行うのに必要な参照画素データは、参照ペアー５２のトップマクロブロック５２ａにおける１６行目の水平ラインの画素列である。また、カレントペアー５１におけるボトムマクロブロック５１ｂのイントラ予測を行うのに必要な参照画素データは、参照ペアー５２のボトムマクロブロック５２ｂにおける１６行目の水平ラインの画素列である。
【００７５】
図６（Ｃ）は、カレントペアー６１がフレーム構造で参照ペアー６２がフィールド構造の場合に、カレントペアー６１を構成する２つのマクロブロックに参照される参照画素データを示したものである。カレントペアー６１におけるトップマクロブロック６１ａのイントラ予測を行うのに必要な参照画素データは、参照ペアー６２のボトムマクロブロック６２ｂにおける１６行目の水平ラインの画素列である。また、カレントペアー６１におけるボトムマクロブロック６１ｂのイントラ予測を行うのに必要な参照画素データは、カレントペアー６１のトップマクロブロック６１ａにおける１６行目の水平ラインの画素列である。
【００７６】
図６（Ｄ）は、カレントペアー７１がフィールド構造で参照ペアー７２がフレーム構造の場合に、カレントペアー７１を構成する２つのマクロブロックに参照される参照画素データを示したものである。カレントペアー７１におけるトップマクロブロック７１ａのイントラ予測を行うのに必要な参照画素データは、参照ペアー７２のボトムマクロブロック７２ｂにおける１５行目の水平ラインの画素列である。また、カレントペアー７１におけるボトムマクロブロック７１ｂのイントラ予測を行うのに必要な参照画素データは、参照ペアー７２のトップマクロブロック７２ｂにおける１６行目の水平ラインの画素列である。
【００７７】
このように、マクロブロックがＡＦＦ形式の場合では、各マクロブロックの構造に応じてカレントマクロブロックが参照する参照画素データの位置が異なる。このため、ソフトウェア処理系３０は、マクロブロックがＡＦＦ形式の場合に、１組のマクロブロックペアー毎に２つの参照画素データとそれらのマージンデータ領域とを設定する。
【００７８】
図７（Ａ）は、輝度成分Ｙに関するマクロブロックペアーがフレーム構造の場合に設定される参照画素データの位置を示す図である。上述したようにフレーム構造の場合には、トップマクロブロックの下端水平ラインの画素列が参照されない。よって、トップマクロブロックに関しては、右端垂直ラインＹ＿Ｖ１１のみが参照画素データに設定される。また、ボトムマクロブロックに関しては、右端垂直ラインＹ＿Ｖ１２、及び、１５，１６行目の２つ下端水平ラインＹ＿Ｈ１１，Ｙ＿Ｈ１２が参照画素データとして設定される。
【００７９】
図７（Ｂ）は、輝度成分Ｙに関するマクロブロックペアーがフィールド構造の場合に設定される参照画素データの位置を示す図である。上述したようにフィールド構造の場合には、トップマクロブロックの下端水平ラインの画素列も参照画素データとして用いられる。よって、トップマクロブロックは、右端垂直ラインＹ＿Ｖ２１と下端水平ラインＹ＿Ｈ２１とが参照画素データとして設定される。同様にして、ボトムマクロブロックは、右端垂直ラインＹ＿Ｖ２２と下端水平ラインＹ＿Ｈ２２とが参照画素データとして設定される。
【００８０】
また、色差成分Ｃｂ，Ｃｒに関する参照画素データは、ブロックサイズが輝度成分Ｙと異なるが、カレントペアーに参照される参照画素データの位置に関して同様の関係を有する。
【００８１】
すなわち、色差成分Ｃｂに関するマクロブロックペアーがフィールド構造の場合には、図８（Ａ）に示すように、トップマクロブロックの右端垂直ラインＣｂ＿Ｖ１１と、ボトムマクロブロックの右端垂直ラインＣｂ＿Ｖ１２と、ボトムマクロブロックの７，８行目の２つの下端水平ラインＣｂ＿Ｈ１１，Ｃｂ＿Ｈ１２とが、参照画素データとして設定される。同様に、色差成分Ｃｒに関するマクロブロックがフィールド構造の場合には、トップマクロブロックの右端垂直ラインＣｒ＿Ｖ１１と、ボトムマクロブロックの右端垂直ラインＣｒ＿Ｖ１２と、ボトムマクロブロックの７，８行目の２つの下端水平ラインＣｒ＿Ｈ１１，Ｃｒ＿Ｈ１２とが、参照画素データとして設定される。
【００８２】
よって、マクロブロックペアーがフィールド構造の場合には、図８（Ｂ）に示すように、輝度成分Ｙ及び色差成分Ｃｂ，Ｃｒを合計して１２８バイトの参照画素データがＬ２キャッシュ３３の記憶領域に記憶されることとなる。
【００８３】
なお、上述したように、マクロブロックペアーを１単位として参照画素データを設定した場合にも、右端垂直ラインと下端垂直ラインとが重複する画素が存在するので、これら重複画素のデータに上述したフラグ情報を設定する。
【００８４】
具体的には、トップマクロブロックに関するフラグ情報は、下端水平ラインＹ＿Ｈ１１，Ｃｂ＿Ｈ１１，Ｃｒ＿Ｈ１１の合計３バイトのマージンデータ領域に設定される。また、ボトムマクロブロックに関するフラグ情報は、下端水平ラインＹ＿Ｈ１２，Ｃｂ＿Ｈ１２，Ｃｒ＿Ｈ１２の合計３バイトのマージンデータ領域に設定される。
【００８５】
一方、色差成分Ｃｂに関するマクロブロックペアーがフレーム構造の場合には、図９（Ａ）に示すように、トップマクロブロックの右端垂直ラインＣｂ＿Ｖ２１と、トップマクロブロックの下端水平ラインＣｂ＿Ｈ２１と、ボトムマクロブロックの右端垂直ラインＣｂ＿Ｖ２２と、ボトムマクロブロックの下端水平ラインＣｂ＿Ｈ２２とが参照画素データとして設定される。同様に、色差成分Ｃｒに関するマクロブロックがフレーム構造の場合には、トップマクロブロックの右端垂直ラインＣｒ＿Ｖ２１と、トップマクロブロックの下端水平ラインＣｒ＿Ｈ２１と、ボトムマクロブロックの右端垂直ラインＣｒ＿Ｖ１２と、ボトムマクロブロックの下端水平ラインＣｒ＿Ｈ２２とが参照画素データとして設定される。
【００８６】
よって、マクロブロックペアーがフィールド構造の場合には、図９（Ｂ）に示すように、輝度成分Ｙ及び色差成分Ｃｂ，Ｃｒを合計して１２８バイトの参照画素データがＬ２キャッシュ３３の記憶領域に記憶されることとなる。
【００８７】
なお、上述したように、マクロブロックペアーを１単位として参照画素データを設定した場合にも、右端垂直ラインと下端垂直ラインとが重複する画素が存在するので、これら重複画素のデータに上述したフラグ情報を設定する。
【００８８】
具体的には、トップマクロブロックに関するフラグ情報は、下端水平ラインＹ＿Ｈ２１，Ｃｂ＿Ｈ２１，Ｃｒ＿Ｈ２１の合計３バイトのマージンデータ領域に設定される。また、ボトムマクロブロックに関するフラグ情報は、下端水平ラインＹ＿Ｈ２２，Ｃｂ＿Ｈ２２，Ｃｒ＿Ｈ２２の合計３バイトのマージンデータ領域に設定される。
【００８９】
次に、ソフトウェア処理系３０による参照画素データを用いた予測画生成処理について図１０を参照して説明する。ここで、ＣＰＵ３１は、予測画生成処理プログラムに従って、周辺マクロブロックの復号された画素データを用いてカレントマクロブロックの予測処理を行う。
【００９０】
なお、ソフトウェア処理系３０では、カレントマクロブロックの予測処理に必要となる参照マクロブロックが、全て復号されていることを前提として以下の処理を実行する。また、カレントマクロブロックがＡＦＦ形式の場合には、カレントペアーを１単位としてイントラ予測処理を行うものとする。
【００９１】
ステップＳ１０において、ＣＰＵ３１は、カレントマクロブロックの予測画生成処理が完了した後に、カレントマクロブロックの参照画素データをＬ２キャッシュ３３に記憶させるカレントアドレス番号を設定する。ここで、復号処理後にＬ２キャッシュ３３上に記憶されるカレントマクロブロックの参照画素データを、カレント参照画素データと呼び、当該カレントマクロブロックが参照する参照画素データと明確に区別する。また、マクロブロックがＡＦＦ形式の場合、ＣＰＵ３１は、マクロブロック毎にカレントアドレス番号を設定する。
【００９２】
ステップＳ１１において、ＣＰＵ３１は、カレントマクロブロックがスキップマクロブロックか否かを判断する。ここで、ＣＰＵ３１は、スキップマクロブロックであると判断するとステップＳ１２へ進み、スキップマクロブロックではないと判断するとステップＳ１５へ進む。
【００９３】
ステップＳ１２において、ＣＰＵ３１は、カレントマクロブロックに応じたフラグ情報をＬ１キャッシュ３２に書き込む。ここで、フラグ情報は、イントラ／インターフラグと、フィールド／フレームフラグと、スキップフラグと、スライスポインタとからなる。
【００９４】
ステップＳ１３において、ＣＰＵ２１は、カレントマクロブロックに含まれるベクトル情報が指し示す復号された画像データを、Ｌ２キャッシュ３３及びメインメモリ３４へアクセスして読み出す。そしてＣＰＵ３１は読み出された復号画像データをカレントマクロブロックの予測画像とし、算出器１５へ出力する。
【００９５】
ステップＳ１４において、ＣＰＵ３１は、ステップＳ１３により復号したカレントマクロブロックからカレント参照画素データとなる画素を選択し、Ｌ１キャッシュ３２に記憶されているフラグ情報を付加したカレント参照画素データを、Ｌ２キャッシュ３３の記憶領域に書き込む。この処理工程が完了すると、ＣＰＵ３１は、まだ復号されていないマクロブロックをカレントマクロブロックに設定して、予測画生成処理プログラムを実行する。
【００９６】
一方、カレントマクロブロックがスキップマクロブロックでない場合、予測画生成処理プログラムは、ステップＳ１１からステップＳ１５へ進む。
【００９７】
ステップＳ１５において、ＣＰＵ２１は、カレントマクロブロックがイントラマクロブロックであるか否かを判断する。ここで、ＣＰＵ３１は、イントラマクロブロックであると判断するとステップＳ１６へ進み、イントラマクロブロックでない、すなわちインターマクロブロックであると判断するとステップＳ２４へ進む。
【００９８】
ステップＳ１６において、ＣＰＵ３１は、カレントマクロブロックがＡＦＦ形式であるか否かを判断する。ここで、ＣＰＵ３１は、ＡＦＦ形式でないと判断するとステップＳ１７へ進み、ＡＦＦ形式であると判断するとステップＳ２１へ進む。
【００９９】
ステップＳ１７及びステップＳ２０において、ＣＰＵ３１は、周辺マクロブロックの中から、カレントマクロブロックをイントラ予測するのに必要な参照マクロブロックの参照画素データに含まれるフラグ情報をＬ２キャッシュ３３から読み出す。そして、ＣＰＵ３１は、読み出したフラグ情報に基づいて、これらの参照画素データがイントラ予測処理に有効であるか否かを判断する。
【０１００】
具体的に、ＣＰＵ３１は、スライスヘッダに基づいて、カレントマクロブロックのスライス番号と参照画素データのスライス番号が異なる場合に、この参照画素データを無効にする。また、ＣＰＵ３１は、カレントマクロブロックに含まれるフラグconstrained_intra_flagが１の場合にイントラ／インターフラグによりインターマクロブロックであると判断して、当該参照画素データを無効にする。
【０１０１】
カレントマクロブロックがＡＦＦ形式でない場合には、図１１（Ａ）に示すように、カレントマクロブロックの左横・左斜上・上・右斜上の参照マクロブロックがカレントマクロブロックのイントラ予測に用いられる。したがって、ステップＳ１８では、ＣＰＵ３１は、これらの４つの参照マクロブロックのうち、有効であると判断されたマクロブロックのアドレスを設定して、ステップＳ１９へ進む。
【０１０２】
一方、カレントマクロブロックがＡＦＦの場合、カレントペアーのトップマクロブロックＴｏｐが参照する可能性のある参照マクロブロックは、図１１（Ｂ）に示すように、カレントペアーに対して左横に位置する参照ペアーのトップマクロブロックＴｏｐＬ・ボトムマクロブロックＢｔｔｍＬと、カレントペアーに対して左斜上に位置する参照ペアーのトップマクロブロックＴｏｐＬＡ・ボトムマクロブロックＢｔｔｍＬＡと、カレントペアーに対して上に位置する参照ペアーのトップマクロブロックＴｏｐＡ・ボトムマクロブロックＢｔｔｍＡと、カレントペアーに対して右斜上に位置するトップマクロブロックＴｏｐＲＡ・ボトムマクロブロックＢｔｔｍＲＡとの合計８個である。
【０１０３】
また、カレントペアーのボトムマクロブロックＢｔｔｍが参照する可能性のある参照マクロブロックは、図１１（Ｃ）に示すように、カレントペアーのトップマクロブロックＴｏｐと、カレントペアーに対して左横に位置するトップマクロブロックＴｏｐＬ・ボトムマクロブロックＢｔｔｍＬと、カレントペアーに対して左斜上に位置するボトムマクロブロックＢｔｔｍＬＡと、カレントペアーに対して上に位置するボトムマクロブロックＢｔｔｍＡと、カレントペアーに対して右斜上に位置するボトムマクロブロックＢｔｔｍＲＡの合計６個である。このように、ボトムマクロブロックＢｔｔｍが参照する参照マクロブロックは、トップマクロブロックＴｏｐが参照する参照マクロブロックに含まれている。
【０１０４】
よって、ステップＳ２１では、カレントペアーのトップマクロブロックＴｏｐがイントラマクロブロックの場合、ＣＰＵ３１は、図１２（Ａ）に示すように、合計８個のマクロブロックのうち、有効であると判断されたマクロブロックのアドレスを設定する。また、トップマクロブロックＴｏｐがイントラマクロブロックでない場合、すなわち、トップマクロブロックＴｏｐがインターマクロブロック又はスキップマクロブロックである場合、ＣＰＵ３１は、図１２（Ｂ）に示すように、ボトムマクロブロックＢｔｔｍのみが参照する合計６個の参照マクロブロックのうち、有効であると判断されたマクロブロックのアドレスを設定する。よって、イントラ予測に必要最低限の参照マクロブロックをＬ２キャッシュ３３から読み出すことができる。
【０１０５】
ステップＳ１９及びステップＳ２２において、ＣＰＵ３１は、それぞれステップＳ１８及びステップＳ２１で設定したアドレスに対応する参照画素データをＬ２キャッシュ３３から読み出す。
【０１０６】
ステップＳ２３において、ＣＰＵ３１は、ステップＳ１９及びステップＳ２２で有効と判断された参照画素データを用いてカレントマクロブロックのイントラ予測を行って、復号したマクロブロックを算出器１５へ出力して、ステップＳ２４へ進む。
【０１０７】
また、カレントマクロブロックがインターマクロブロックであると判断されてステップＳ２４に進んだ場合には、ＣＰＵ３１は、動きベクトル情報に基づいてカレントマクロブロックにインター予測処理を施して、動き予測・補償部２１から算出器１５へ復号されたマクロブロック単位の画像情報を出力して、ステップＳ２５へ進む。
【０１０８】
ステップＳ２５において、ＣＰＵ３１は、カレントマクロブロックに含まれるフラグ情報に基づいて、イントラ／インターフラグとフィールド／フレームフラグとスキップフラグとスライスポインタとからなるフラグ情報をステップＳ１０で設定したカレントアドレスに対応するＬ１キャッシュ３２の記憶領域に書き込んでステップＳ２６へ進む。
【０１０９】
ステップＳ２６において、ＣＰＵ３１は、ステップＳ１３により復号したカレントマクロブロックからカレント参照画素データとなる画素を選択し、Ｌ１キャッシュ３２に記憶されているフラグ情報を付加したカレント参照画素データを、カレントアドレスに対応するＬ２キャッシュ３３の記憶領域に書き込む。ここで、上述したように、カレントマクロブロックがＡＦＦの場合には、カレントペアーのマクロブロックがフィールド構造又はフレーム構造によって、マクロブロック内の画素データのうち、参照画素データとして書き込まれるデータが異なる。
【０１１０】
この処理工程が完了すると、ＣＰＵ３１は、まだ復号されていないマクロブロックをカレントマクロブロックに設定して、予測画生成処理プログラムを実行する。
【０１１１】
このように、ソフトウェア処理系３０では、メインメモリ３４にアクセスすることなく、イントラ予測処理に必要な画素データをＬ２キャッシュ３３から参照画素データとして読み出す。このため、ソフトウェア処理系３０では、参照画素データをＣＰＵ３１へ読み出す際にキャッシュミスの頻度を低減するので処理速度を向上することができる。また、ソフトウェア処理系３０では、イントラ予測処理に必要な画素データを、マクロブロック毎に参照画素データとして管理しているので、１画素単位で管理する場合に比べて、Ｌ２キャッシュ３３が必要な記憶容量をより小さくすることができる。さらに、ソフトウェア処理系３０では、参照画素データに含まれるフラグ情報に基づいて参照画素データのイントラ予測における有効性を判断し、必要な参照画素データを効率よく選択してＣＰＵ３１へ読み出すので、イントラ予測処理の処理速度を速くすることができる。
【０１１２】
（２−２）第２のソフトウェア処理系
第２のソフトウェア処理系８０は、図１３に示すように、ＣＰＵ８１と、Ｌ１キャッシュ８２と、Ｌ２キャッシュ８３と、メインメモリ８４とに加えて、ＳＩＭＤ（Single Instruction/Multiple Data）プロセッサ８５と、ローカルメモリ８６と、ＤＭＡ（Direct Memory Access）コントローラ８７とから構成されている。
【０１１３】
ＳＩＭＤプロセッサ８５は、１つの命令で複数のデータ処理を行うプロセッサである。第２のソフトウェア処理系８０では、イントラ予測部１９が行う処理を主にＳＩＭＤプロセッサ８５上で行うものとする。
【０１１４】
ローカルメモリ８６は、ＳＩＭＤプロセッサ８５のワーキングメモリとしての役割をはたし、ＤＭＡコントローラ８７を介してＬ２キャッシュ８３へ直接アクセス可能となっている。
【０１１５】
以上のような構成からなる第２のソフトウェア処理系８０において、ＳＩＭＤプロセッサ８５が使用するデータを読み出す場合には、まずローカルメモリ８６にアクセスし、ローカルメモリ８６に演算処理に必要なデータが存在しない場合にはＤＭＡコントローラ８７を介してＬ２キャッシュ８３へアクセスし、さらに当該データがＬ２キャッシュ８３に存在しなければ、最終的にメインメモリ８４にアクセスする。
【０１１６】
また、第２のソフトウェア処理系８０では、第１のソフトウェア処理系２０と同様に、復号されたマクロブロックの画像データから、カレントマクロブロックのイントラ予測処理に用いられる可能性がある画素データを参照画素データとしてＬ２キャッシュ８３上に保持する。そして、第２のソフトウェア処理系８０において、ＳＩＭＤプロセッサ８５は、ＤＭＡコントローラ８７を介してＬ２キャッシュ８３から参照画素データを読み出して、カレントマクロブロックのイントラ予測処理を行う。
【０１１７】
なお、Ｌ２キャッシュ８３上に記憶される参照画素データは、第１のソフトウェア処理系２０におけるＬ２キャッシュ３３上に記憶されるものと同様なので、その説明を省略する。
【０１１８】
次に、第２のソフトウェア処理系８０による参照画素データを用いた予測画像の生成処理に関して図１４を参照して詳細に説明する。ここで、ＣＰＵ８１は、予測画生成処理プログラムに従って、以下に示す処理を実行する。
【０１１９】
ステップＳ３０において、ＣＰＵ８１は、カレントマクロブロックの復号処理が完了した後に、カレントマクロブロックの参照画素データをＬ２キャッシュ８３上に記憶させるカレントアドレスを設定する。さらに、ＣＰＵ８１は、カレントマクロブロックのイントラ予測とカレント参照画素データの書込処理とを行わせる制御命令をＳＩＭＤプロセッサ８５に供給する。そして、ＣＰＵ８１から供給される制御命令に従って、ＳＩＭＤプロセッサ８５が以下に示す処理工程を行うものとする。
【０１２０】
ステップＳ３１において、ＳＩＭＤプロセッサ８５は、カレントマクロブロックがスキップマクロブロックであるか否かを判断する。ここで、ＳＩＭＤプロセッサ８５は、スキップマクロブロックであると判断するとステップＳ３２へ進み、スキップマクロブロックではないと判断するとステップＳ３５へ進む。
【０１２１】
ステップＳ３２において、ＳＩＭＤプロセッサ８５は、カレントマクロブロックに応じたフラグ情報を、カレントアドレスに対応するＬ２キャッシュ８３の記憶領域に書き込む。ここで、フラグ情報は、イントラ／インターフラグと、フィールド／フレームフラグと、スキップフラグと、スライスポインタとからなる。
【０１２２】
ステップＳ３３において、ＳＩＭＤプロセッサ８５は、カレントマクロブロックに含まれるベクトル情報が指し示す復号された画像データを、Ｌ２キャッシュ８３、メインメモリ８４の順にアクセスして読み出す。
【０１２３】
なお、ステップＳ３２及びステップＳ３３は、処理順序の入れ替えや並列処理などを行うようにしても良い。
【０１２４】
ステップＳ３４において、ＳＩＭＤプロセッサ８５は、ステップＳ３３で復号したカレントマクロブロックを構成する画素データのうち、カレント参照画素データを設定する。そして、ＳＩＭＤプロセッサ８５は、マージンデータ領域にフラグ情報を付加したカレント参照画素データを、ＤＭＡコントローラ８７によりＬ２キャッシュ８３へ転送させ、カレントアドレスに応じた記憶領域に書き込む。この処理工程が完了すると、ＣＰＵ８１は、まだ復号されていないマクロブロックをカレントマクロブロックに設定して、予測画生成処理プログラムを実行する。
【０１２５】
一方、カレントマクロブロックがスキップマクロブロックでない場合、予測画生成処理プログラムは、ステップＳ３１からステップＳ３５へ進む。
【０１２６】
ステップＳ３５において、ＳＩＭＤプロセッサ８５は、カレントマクロブロックがイントラマクロブロックであるか否かを判断する。ここで、ＳＩＭＤプロセッサ８５は、イントラマクロブロックであると判断するとステップＳ３６へ進み、イントラマクロブロックではない、すなわちインターマクロブロックであると判断するとステップＳ４３へ進む。
【０１２７】
ここで、ＳＩＭＤプロセッサ８５では、インターマクロブロックに対してインター予測処理を行わない。また、カレントペアーの場合には、１つでもイントラマクロブロックがあればステップＳ３６へ進む。
【０１２８】
ステップＳ３６において、ＳＩＭＤプロセッサ８５は、カレントマクロブロックがＡＦＦ形式であるか否かを判断する。ここで、ＳＩＭＤプロセッサ８５は、ＡＦＦ形式でないと判断するとステップＳ３７へ進み、ＡＦＦ形式であると判断するとステップＳ４０へ進む。
【０１２９】
ステップＳ３７及びステップＳ４０において、ＳＩＭＤプロセッサ８５は、周辺マクロブロックの中から、イントラ予測するのに必要な参照マクロブロックの参照画素データに含まれるフラグ情報を、ＤＭＡコントローラ８７を介してＬ２キャッシュ８３から読み出す。そして、ＳＩＭＤプロセッサ８５は、読み出したフラグ情報に基づいて、これらの参照画素データがイントラ予測処理に有効であるか否かを判断してそれぞれステップＳ３８及びステップＳ４１へ進む。
【０１３０】
ここで、具体的な判断処理に関しては、図１０のステップＳ１７及びステップＳ２０と同様なので、その説明を省略する。
【０１３１】
ステップＳ３８では、ＳＩＭＤプロセッサ８５は、図１０のステップＳ１８と同様に、図１１に示す４つの参照マクロブロックのうち、有効と判断されたマクロブロックに対応するアドレスを読み出して、ステップＳ３９へ進む。
【０１３２】
一方、ステップＳ４１では、カレントペアーのトップマクロブロックＴｏｐがイントラマクロブロックの場合、ＳＩＭＤプロセッサ８５は、図１２（Ａ）に示すように、図１０のステップＳ２１と同様に、合計８個のマクロブロックのうち、有効と判断されたマクロブロックのアドレスを設定する。また、トップマクロブロックＴｏｐがイントラマクロブロックでない場合、すなわち、トップマクロブロックＴｏｐがインターマクロブロック又はスキップマクロブロックである場合、ＳＩＭＤプロセッサ８５は、図１０のステップＳ２１と同様に、図１２（Ｂ）に示すように、ボトムマクロブロックＢｔｔｍのみが参照する合計６個の参照マクロブロックのうち、有効と判断されたマクロブロックのアドレスを設定する。
【０１３３】
ステップＳ３９及びステップＳ４２において、ＳＩＭＤプロセッサ８５は、それぞれステップＳ３８及びステップＳ４１で設定したアドレスに対応する参照画素データに含まれるフラグ情報をＬ２キャッシュ８３から読み出す。そして、ＳＩＭＤプロセッサ８５は、有効と判断した参照画素データをＬ２キャッシュ８３から読み出して、ステップＳ４３へ進む。
【０１３４】
ステップＳ４３において、ＳＩＭＤプロセッサ８５は、カレントマクロブロックに含まれるフラグ情報に基づいて、イントラ／インターフラグとフィールド／フレームフラグとスキップフラグとスライスポインタとからなるフラグ情報を、ＤＭＡコントローラ８７によりＬ２キャッシュ８３にＤＭＡ転送させ、カレントアドレスが指し示す記憶領域に書き込む。
【０１３５】
ステップＳ４４において、ＳＩＭＤプロセッサ８５は、ステップＳ３９及びステップＳ４２で有効と判断された参照画素データを用いてカレントマクロブロックのイントラ予測を行う。
【０１３６】
また、ステップＳ４４において、ステップＳ３５でインターマクロブロックと判断されたマクロブロックは、ＣＰＵ８１又はインター予測処理を専用で行うプロセッサなどにより復号処理が施される。そして、復号処理が施されたインターマクロブロックはローカルメモリ７６に供給される。
【０１３７】
ステップＳ４５において、ＳＩＭＤプロセッサ８５は、ステップＳ４４で復号したカレントマクロブロックを構成する画素データのうち、カレント参照画素データを設定する。そして、ＳＩＭＤプロセッサ８５は、マージンデータ領域にフラグ情報を付加したカレント参照画素データを、ＤＡＭコントローラ８７によりＬ２キャッシュ８３へ転送させ、カレントアドレスに応じた記憶領域に書き込む。この処理工程が完了すると、ＣＰＵ８１は、まだ復号されていないマクロブロックをカレントマクロブロックに設定して、予測画生成処理プログラムを実行する。
【０１３８】
このようにソフトウェア処理系８０では、復号処理のうちイントラ予測処理をＳＩＭＤプロセッサ８５で行わせるので、それ以外に必要な復号処理をＣＰＵ８１が行う。このため、ソフトウェア処理系８０では、第１のソフトウェア処理系２０のようにプロセッサが復号処理全体を行う場合に比べてプロセッサの演算処理量を軽減して、より高速に圧縮画像信号を復号することができる。
【図面の簡単な説明】
【０１３９】
【図１】画像情報復号処理装置の概略構成を示すブロック図である。
【図２】第１のソフトウェア処理系の概略構成を示す図である。
【図３】イントラ予測処理に必要となるマクロブロックの配置を示す図である。
【図４】図４（Ａ）は、輝度成分におけるマクロブロックのブロックサイズを示す図であり、図４（Ｂ）は、色差成分におけるマクロブロックのブロックサイズを示す図である。
【図５】Ｌ２キャッシュに記憶される参照画素データのデータ構成を示す図である。
【図６】トップマクロブロックとボトムマクロブロックが参照する画素データの位置を示す図である。
【図７】図７（Ａ）は、輝度成分に関するマクロブロックペアーがフレーム構造の場合に設定される参照画素データの位置を示す図であり、図７（Ｂ）は、輝度成分に関するマクロブロックペアーがフィールド構造の場合に設定される参照画素データの位置を示す図である。
【図８】図８（Ａ）は、色差成分に関するマクロブロックペアーがフレーム構造の場合に設定される参照画素データの位置を示す図であり、図８（Ｂ）は、参照画素データのデータ構成を示す図である。
【図９】図９（Ａ）は、色差成分に関するマクロブロックペアーがフィールド構造の場合に設定される参照画素データの位置を示す図であり、図９（Ｂ）は、参照画素データのデータ構成を示す図である。
【図１０】第１のソフトウェア処理系が行う予測画生成処理プログラムの処理工程を示すフローチャートである。
【図１１】図１１（Ａ）はＡＦＦ形式ではないカレントマクロブロックに対応する参照マクロブロックの位置関係を示す図であり、図１１（Ｂ）はＡＦＦ形式のトップマクロブロックに対応する参照マクロブロックの位置関係を示す図であり、図１１（Ｃ）はＡＦＦ形式のボトムマクロブロックに対応する参照マクロブロックの位置関係を示す図である。
【図１２】図１２（Ａ）はＡＦＦ形式のトップマクロブロックに対応する参照マクロブロックの位置関係を示す図であり、図１２（Ｂ）はＡＦＦ形式のボトムマクロブロックに対応する参照マクロブロックの位置関係を示す図である。
【図１３】第２のソフトウェア処理系の概略構成を示すブロック図である。
【図１４】第２のソフトウェア処理系が行う予測画生成処理プログラムの処理工程を示すフローチャートである。
【図１５】画像情報符号化装置の概略構成を示すブロック図である。
【図１６】画像情報復号処理装置の概略構成を示すブロック図である。
【図１７】イントラ４×４予測モードにおける予測画素の設定の説明に供する図である。
【図１８】イントラ４×４予測モードの説明に供する図である。
【図１９】イントラ４×４予測モードを示す図表である。
【図２０】イントラ４×４予測モードの各モードの説明に供する図である。
【図２１】イントラ１６×１６予測モードの予測画素の説明に供する図である。
【図２２】イントラ１６×１６予測モードを示す図表である。
【図２３】イントラ１６×１６予測モードの説明に供する図である。
【図２４】図２４（Ａ）はイントラ予測ハードウェア処理系の概略構成を示すブロック図であり、図２４（Ｂ）は予測対象のマクロブロックに対する周辺画素の位置関係を示す図である。
【図２５】イントラ予測処理を行う従来のソフトウェア処理系の概略構成を示す図である。
【符号の説明】
【０１４０】
１０  画像情報復号処理装置、１１  蓄積バッファ、１２  可逆復号化部、１３  逆量子化部、１４  逆直交変換部、１５  加算器、１６  デブロックフィルタ、１７  画面並べ替えバッファ、１８  Ｄ／Ａ変換器、１９  イントラ予測部、２０  フレームメモリ、２１  動き・補償部、３０  第１のソフトウェア処理系、８０  第２のソフトウェア処理系、３１、８１  ＣＰＵ、３２、８２  Ｌ１キャッシュ、３３、８３  Ｌ２キャッシュ、３４、８４  メインメモリ、８５  ＳＩＭＤプロセッサ、８６  ローカルメモリ、８７  ＤＭＡコントローラ
【図１】
2008048178.tif 000003
【図２】
2008048178.tif 000004
【図３】
2008048178.tif 000005
【図４】
2008048178.tif 000006
【図５】
2008048178.tif 000007
【図６】
2008048178.tif 000008
【図７】
2008048178.tif 000009
【図８】
2008048178.tif 000010
【図９】
2008048178.tif 000011
【図１０】
2008048178.tif 000012
【図１１】
2008048178.tif 000013
【図１２】
2008048178.tif 000014
【図１３】
2008048178.tif 000015
【図１４】
2008048178.tif 000016
【図１５】
2008048178.tif 000017
【図１６】
2008048178.tif 000018
【図１７】
2008048178.tif 000019
【図１８】
2008048178.tif 000020
【図１９】
2008048178.tif 000021
【図２０】
2008048178.tif 000022
【図２１】
2008048178.tif 000023
【図２２】
2008048178.tif 000024
【図２３】
2008048178.tif 000025
【図２４】
2008048178.tif 000026
【図２５】
2008048178.tif 000027