(57)【特許請求の範囲】
【請求項１】
動き予測を利用して符号化されたビデオストリームを復号化する画像復号化装置において、
前記ビデオストリームから抽出した複数の動きベクトルがそれぞれ指し示す領域を含む参照画像上の読み出し領域を設定する領域設定手段と、
過去に復号化されてメモリに格納された前記参照画像のデータのうち、前記領域設定手段により設定された前記読み出し領域に対応するデータを、前記メモリから連続的なアクセスシーケンスで読み出す参照画像読み出し手段と、
前記参照画像読み出し手段により読み出された前記読み出し領域のデータを基に予測画像を生成する予測画像生成手段と、
前記予測画像生成手段により生成された前記予測画像を利用して画像を復元する復号化処理手段と、
を有することを特徴とする画像復号化装置。
【請求項２】
前記領域設定手段により設定された前記読み出し領域のサイズを所定のしきい値と比較するサイズ比較手段をさらに有し、
前記参照画像読み出し手段は、前記サイズ比較手段による比較結果に基づき、前記読み出し領域のサイズが前記しきい値以内である場合には、当該読み出し領域に対応する前記参照画像上のデータを前記メモリから連続的なアクセスシーケンスで読み出し、前記読み出し領域のサイズが前記しきい値を超えた場合には、動きベクトルがそれぞれ指し示す領域に対応する前記参照画像上のデータを前記メモリから個別のアクセスシーケンスで読み出す、
ことを特徴とする請求項１記載の画像復号化装置。
【請求項３】
前記領域設定手段により設定された前記読み出し領域のサイズを所定のしきい値と比較するサイズ比較手段と、
前記サイズ比較手段による比較結果に基づき、前記読み出し領域のサイズが前記しきい値以内である場合には、当該読み出し領域に対応する前記参照画像上のデータを前記メモリから連続的なアクセスシーケンスで読み出すとともに、前記参照画像上の当該読み出し領域から外れた領域については、動きベクトルがそれぞれ指し示す領域に対応するデータを前記メモリから個別のアクセスシーケンスで読み出すように、前記参照画像読み出し手段を制御する読み出し制御手段と、
をさらに有することを特徴とする請求項１記載の画像復号化装置。
【請求項４】
前記読み出し制御手段は、前記領域設定手段により設定された第１の読み出し領域のサイズが、前記サイズ比較手段による比較処理により前記しきい値を超えた場合には、前記領域設定手段に前回より少ない数の動きベクトルが指し示す領域を含む第２の読み出し領域を設定させ、前記サイズ比較手段による比較処理により前記第２の読み出し領域のサイズが前記しきい値以内である場合には、当該第２の読み出し領域に対応する前記参照画像上のデータを前記メモリから連続的なアクセスシーケンスで読み出すように、前記参照画像読み出し手段を制御することを特徴とする請求項３記載の画像復号化装置。
【請求項５】
前記読み出し制御手段は、前記領域設定手段により設定された前記読み出し領域のサイズが、前記サイズ比較手段による比較処理により前記しきい値以内である場合には、前記参照画像上の当該読み出し領域から外れた領域から前記領域設定手段に別の前記読み出し領域を設定させる処理を繰り返し、サイズが前記しきい値以内となった１つ以上の前記読み出し領域に対応する前記参照画像上のデータを、前記読み出し領域ごとに連続的なアクセスシーケンスで前記メモリから読み出し、前記参照画像上の前記各読み出し領域から外れた領域については、動きベクトルがそれぞれ指し示す領域に対応するデータを前記メモリから個別のアクセスシーケンスで読み出すように制御することを特徴とする請求項３記載の画像復号化装置。
【請求項６】
前記参照画像読み出し手段の制御により前記メモリから読み出された前記読み出し領域のデータを記憶するローカルメモリをさらに有し、
前記予測画像生成手段は、前記ローカルメモリ内の前記読み出し領域のデータを、動きベクトルに対応する領域ごとに読み出して、前記予測画像を生成する、
ことを特徴とする請求項１記載の画像復号化装置。
【請求項７】
動き予測を利用してビデオ信号を符号化する画像符号化装置において、
符号化対象画像のデータと参照画像のデータとをメモリから読み出し、読み出した各画像のデータから動き予測処理を実行する動き予測処理手段と、
前記動き予測処理手段の処理結果に基づく複数の動きベクトルがそれぞれ指し示す領域を含む前記参照画像上の読み出し領域を設定する領域設定手段と、
前記領域設定手段により設定された前記読み出し領域に対応する前記参照画像のデータを、前記メモリから連続的なアクセスシーケンスで読み出す参照画像読み出し手段と、
前記参照画像読み出し手段により読み出された前記読み出し領域のデータを基に予測画像を生成する予測画像生成手段と、
前記予測画像生成手段により生成された前記予測画像のデータと前記符号化対象画像のデータとを利用して符号化処理を行い、ビデオストリームを生成する符号化処理手段と、
前記符号化処理手段によって符号化された画像を再び復号化し、前記参照画像として利用する画像を生成して前記メモリに格納する復号化処理手段と、
を有することを特徴とする画像符号化装置。
【請求項８】
前記予測画像生成手段は、前記動き予測処理手段により前記メモリから読み出された前記参照画像と同じ前記メモリ上の画像データから、前記読み出し領域に対応するデータを再び読み出すことを特徴とする請求項７記載の画像符号化装置。
【請求項９】
前記動き予測処理手段は、前記符号化対象画像および前記参照画像の各輝度データを前記メモリから読み出して動き予測処理を実行し、
前記領域設定手段は、前記動き予測処理手段の処理結果に基づく複数の色差データ用の動きベクトルがそれぞれ指し示す領域を含む、前記参照画像上の読み出し領域を設定し、
前記参照画像読み出し手段は、前記領域設定手段により設定された前記読み出し領域に対応する前記参照画像の色差データを、前記メモリから連続的なアクセスシーケンスで読み出し、
前記予測画像生成手段は、前記参照画像読み出し手段により読み出された前記読み出し領域の色差データを基に予測画像を生成し、
前記符号化処理手段は、前記予測画像生成手段により生成された前記予測画像のデータと前記符号化対象画像の色差データとを利用して符号化処理を行い、ビデオストリームを生成する、
ことを特徴とする請求項７記載の画像符号化装置。
【請求項１０】
動き予測を利用して符号化されたビデオストリームを復号化する画像復号化方法において、
領域設定手段が、前記ビデオストリームから抽出した複数の動きベクトルがそれぞれ指し示す領域を含む参照画像上の読み出し領域を設定するステップと、
参照画像読み出し手段が、過去に復号化されてメモリに格納された前記参照画像のデータのうち、前記領域設定手段により設定された前記読み出し領域に対応するデータを、前記メモリから連続的なアクセスシーケンスで読み出すステップと、
予測画像生成手段が、前記参照画像読み出し手段により読み出された前記読み出し領域のデータを基に予測画像を生成するステップと、
復号化処理手段が、前記予測画像生成手段により生成された前記予測画像を利用して画像を復元するステップと、
を含むことを特徴とする画像復号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビデオストリームを復号化する画像復号化装置およびその方法、ビデオストリームを符号化する画像符号化装置に関し、特に、動き予測を利用して符号化されたビデオストリームを復号化する画像復号化装置およびその方法、そのようなビデオストリームの符号化を行う画像符号化装置に関する。
【背景技術】
【０００２】
近年、動画像情報をデジタル信号として取り扱うことが一般化しており、そのための標準的な圧縮符号化方式として、ＭＰＥＧ（Moving Picture Experts Group）やＨ．２６ｘなどが用いられている。特に、主に放送メディアへの適用を目的として策定されたＭＰＥＧ−２に代わり、最近では、さらに携帯端末やネットワーク配信などの広範囲へ適用可能な、より高圧縮率の符号化方式として、ＭＰＥＧ−４、Ｈ．２６４などが注目されている。【０００３】
ＭＰＥＧやＨ．２６ｘの特徴的な要素技術として、時間的に前の画像、あるいは前と後の画像を参照して動き予測を行い、その予測値を用いて符号化することが挙げられる。そして、このような手法により符号化されたデータの復号化の際には、過去に復号化した画像を参照した画像のデータ（予測画データ）と、符号化ストリームから与えられる差分データとを加算する動き補償処理が行われる。通常、動き補償処理は、１６画素×１６画素からなるマクロブロックと呼ばれる単位で行われる。すなわち、マクロブロックごとに１つあるいは複数の動きベクトルが与えられるので、復号化装置は、それらの動きベクトルの指し示す画像領域のデータを参照画像のデータから読み出し、符号化ストリームから与えられる原画像との差分データを加算することにより、画像を復元することができる。【０００４】
ところで、上記の復号化処理を実行する復号化回路は、通常、復号化した画像（以下、デコード画像と呼ぶ。）のデータを一旦外部のメモリに格納する構成とされている。このため、動き予測を利用した画像の復号化のためには、外部のメモリから参照画像のデータを読み出すことが必要となる。ここで、例えばＭＰＥＧ−２では、マクロブロックを２つの領域に分割し、分割した領域ごとに動き予測を行うことが可能となっている。また、Ｈ．２６４ではさらに、マクロブロックを４画素×４画素のサイズに１６分割することが可能となっている。このようにマクロブロックを分割した場合、従来は、動きベクトルが指し示す参照画像の領域のデータを、分割した領域ごとに外部のメモリから読み出していたので、分割数が増加すると、メモリにアクセスする回数が増加し、また、メモリと復号化回路との間のデータトラフィックが増大するという問題があった。【０００５】
さらに、Ｈ．２６４では、動き補償処理において参照画像を読み込む際に、タップ数の大きいフィルタ処理を必要とする場合もある。ここで、図１５は、フィルタ処理を行う場合の参照画像領域の境界部分を示す図である。また、図１６は、フィルタ処理を行う場合の参照画像領域の大きさを示す図である。【０００６】
動き予測の精度を半画素とした場合、動きベクトルが指し示す参照画像内の領域の境界は、例えば図１５中のＢ１のようになる。参照画像を読み込む際に６タップのフィルタ処理を行うためには、境界Ｂ１からさらに３画素分大きくした領域の画素が必要となる。図１５では、このときの領域の境界をＢ２として示してある。【０００７】
従って、例えば、１６画素×１６画素のマクロブロックの分割数を１としたときに、輝度予測画を生成するために必要な参照画像の領域は、図１６（Ａ）のように２１画素×２１画素の領域となる。この場合、１マクロブロックの輝度予測画像（２５６バイト）を生成するために必要な参照画像の最大読み出し量は、双方向予測の場合、２１［画素］×２１［画素］×１［ベクトル数］×２［予測方向］＝８８２［バイト］となる。一方、分割数を１６（４画素×４画素）としたときには、分割した１つのブロックにつき、図１６（Ｂ）のように９画素×９画素の領域を読み出す必要がある。この場合に１マクロブロックの輝度予測画を生成するために必要な参照画像の最大読み出し量は、双方向予測の場合、９［画素］×９［画素］×１６［ベクトル数］×２［予測方向］＝２５９２［バイト］となり、読み出し量が増大することがわかる。【０００８】
なお、上記の符号化技術に関連する従来の画像符号化装置として、個々の動きベクトル検出単位の領域の大きさに関連付けて、局所的に仮想サンプルの精度を決定することで、仮想サンプル生成に必要なメモリバンド幅を削減するようにしたものがあった（例えば、特許文献１参照）。また、デコード画像をメモリに格納する際に、双方向予測を行った画像については画素数を縮小して格納することで、デコード画像の格納に必要なメモリ容量を削減した復号化装置もあった（例えば、特許文献２参照）。
【特許文献１】特開２００４−４８５５２号公報（段落番号〔００２６〕〜〔００３５〕、図３）
【特許文献２】特開２０００−４４４２号公報（段落番号〔００１５〕〜〔００２２〕、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上述したように、動き補償の単位とする領域を多数に分割すると、参照画像が蓄積されたメモリにアクセスする回数が増加してしまう。また、動き補償処理に利用する参照画像の読み込み時にフィルタ処理を行う場合には、メモリから読み込むデータの量が増大してしまう。これらの事態は、復号化処理の高速化を阻害する要因となり、高速化のために動作周波数を高めると、消費電力が増加してしまうことが問題となっていた。さらに、これらの問題点は復号化処理だけでなく、符号化処理時にデコード画像をメモリから読み出す際にも同様に発生しうる。【００１０】
本発明はこのような点に鑑みてなされたものであり、動き予測を利用して符号化されたビデオストリームを、高速かつ低消費電力で復号化できる画像復号化装置および方法を提供することを目的とする。【００１１】
また、本発明の他の目的は、動き予測を利用し、高速かつ低消費電力でビデオストリームを符号化できる画像符号化装置を提供することである。
【課題を解決するための手段】
【００１２】
本発明では上記課題を解決するために、図１に示すような画像復号化装置１が提供される。この画像復号化装置１は、動き予測を利用して符号化されたビデオストリーム１０を復号化するものであり、前記ビデオストリーム１０から抽出した複数の動きベクトルがそれぞれ指し示す領域を含む参照画像上の読み出し領域を設定する領域設定手段１１と、過去に復号化されてメモリ２に格納された前記参照画像のデータのうち、前記領域設定手段１１により設定された前記読み出し領域に対応するデータを、前記メモリ２から連続的なアクセスシーケンスで読み出す参照画像読み出し手段１２と、前記参照画像読み出し手段１２により読み出された前記読み出し領域のデータを基に予測画像を生成する予測画像生成手段１３と、前記予測画像生成手段１３により生成された前記予測画像を利用して画像を復元する復号化処理手段１４とを有することを特徴とする。【００１３】
ここで、画像復号化装置１に接続されたメモリ２には、過去に復号化された画像のデータが格納されており、画像復号化装置１は、それらの画像を予測画像の生成時に参照画像として読み出して利用する。領域設定手段１１は、ビデオストリームから抽出した複数の動きベクトルがそれぞれ指し示す領域を含む参照画像上の読み出し領域を設定する。参照画像読み出し手段１２は、メモリ２に格納された参照画像のデータのうち、領域設定手段１１により設定された読み出し領域に対応するデータを、メモリ２から連続的なアクセスシーケンスで読み出す。予測画像生成手段１３は、参照画像読み出し手段１２により読み出された読み出し領域のデータを基に、予測画像を生成する。復号化処理手段１４は、予測画像生成手段１３により生成された予測画像を利用して、画像を復元する。【００１４】
また、本発明では、動き予測を利用してビデオ信号を符号化する画像符号化装置において、符号化対象画像のデータと参照画像のデータとをメモリから読み出し、読み出した各画像のデータから動き予測処理を実行する動き予測処理手段と、前記動き予測処理手段の処理結果に基づく複数の動きベクトルがそれぞれ指し示す領域を含む前記参照画像上の読み出し領域を設定する領域設定手段と、前記領域設定手段により設定された前記読み出し領域に対応する前記参照画像のデータを、前記メモリから連続的なアクセスシーケンスで読み出す参照画像読み出し手段と、前記参照画像読み出し手段により読み出された前記読み出し領域のデータを基に予測画像を生成する予測画像生成手段と、前記予測画像生成手段により生成された前記予測画像のデータと前記符号化対象画像のデータとを利用して符号化処理を行い、ビデオストリームを生成する符号化処理手段と、前記符号化処理手段によって符号化された画像を再び復号化し、前記参照画像として利用する画像を生成して前記メモリに格納する復号化処理手段とを有することを特徴とする画像符号化装置が提供される。【００１５】
ここで、画像符号化装置に接続されたメモリには、符号化対象画像のデータと、復号化処理手段により過去に復号化され、参照画像として利用される画像のデータとが格納されている。動き予測処理手段は、符号化対象画像のデータと参照画像のデータとをメモリから読み出し、読み出した各画像のデータから動き予測処理を実行する。領域設定手段は、動き予測処理手段の処理結果に基づく複数の動きベクトルがそれぞれ指し示す領域を含む参照画像上の読み出し領域を設定する。参照画像読み出し手段は、領域設定手段により設定された読み出し領域に対応する参照画像のデータを、メモリから連続的なアクセスシーケンスで読み出す。予測画像生成手段は、参照画像読み出し手段により読み出された読み出し領域のデータを基に、予測画像を生成する。符号化処理手段は、予測画像生成手段により生成された予測画像のデータと符号化対象画像のデータとを利用して符号化処理を行い、ビデオストリームを生成する。復号化処理手段は、符号化処理手段によって符号化された画像を再び復号化し、参照画像として利用する画像を生成してメモリに格納する。
【発明の効果】
【００１６】
本発明の画像復号化装置によれば、領域設定手段により、ビデオストリームから抽出した複数の動きベクトルがそれぞれ指し示す領域を含むように、参照画像上の読み出し領域が設定され、参照画像読み出し手段により、メモリに格納された参照画像のデータのうち、領域設定手段により設定された読み出し領域に対応するデータが、連続的なアクセスシーケンスで読み出される。このため、メモリ内の参照画像のデータのうち、動きベクトルが指し示す領域に対応するデータを個別に読み出す場合と比較して、読み出しに要するクロックサイクル数および読み出しデータ量を低減できる場合が多くなる。従って、予測画像を生成するための参照画像のデータ読み出し処理を、動作周波数を高めることなく、高速化できるようになり、低消費電力かつ高速な画像復号化装置を実現できる。【００１７】
また、本発明の画像符号化装置によれば、領域設定手段により、動き予測処理手段の処理結果に基づく複数の動きベクトルがそれぞれ指し示す領域を含む参照画像上の読み出し領域が設定され、参照画像読み出し手段により、領域設定手段により設定された読み出し領域に対応する参照画像のデータが、メモリから連続的なアクセスシーケンスで読み出される。このため、メモリ内の参照画像のデータのうち、動きベクトルが指し示す領域に対応するデータを個別に読み出す場合と比較して、読み出しに要するクロックサイクル数および読み出しデータ量を低減できる場合が多くなる。従って、予測画像を生成するための参照画像のデータ読み出し処理を、動作周波数を高めることなく、高速化できるようになり、低消費電力かつ高速な画像符号化装置を実現できる。【００１８】
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施の形態に係る画像復号化装置の概略構成を示すブロック図である。
【図２】本発明の実施の形態に係るデコーダＬＳＩの内部構成を示すブロック図である。
【図３】予測画像読み出し／生成部の内部構成を示すブロック図である。
【図４】マクロブロックの分割例を示す図である。
【図５】１マクロブロックに対応する参照画像上の領域のデータ読み出しについて説明するための図である。
【図６】フィルタ処理が必要な場合の参照画像上の領域のデータ読み出しについて説明するための図である。
【図７】サイズが大きく設定されたときの統合読み出し領域の例を示す図である。
【図８】Ｈ．２６４に対して好適な参照画像のデータ読み出しの全体の処理手順を示すフローチャートである。
【図９】制御判定／参照画像読み出し処理の第１の例を示すフローチャートである。
【図１０】マクロブロック内の統合対象とする動きベクトルのうち、１つのみが大きく離れた領域を指し示している場合の例を示す図である。
【図１１】制御判定／参照画像読み出し処理の第２の例を示すフローチャートである。
【図１２】ＭＰＥＧ−４・シンプル・プロファイルに対して好適な参照画像のデータ読み出し処理手順の第１の例を示すフローチャートである。
【図１３】ＭＰＥＧ−４・シンプル・プロファイルに対して好適な参照画像のデータ読み出し処理手順の第２の例を示すフローチャートである。
【図１４】本発明の実施の形態に係るエンコーダＬＳＩの要部構成を示すブロック図である。
【図１５】フィルタ処理を行う場合の参照画像領域の境界部分を示す図である。
【図１６】フィルタ処理を行う場合の参照画像領域の大きさを示す図である。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の実施の形態を図面を参照して詳細に説明する。
図１は、本発明の実施の形態に係る画像復号化装置の概略構成を示すブロック図である。【００２１】
図１に示す画像復号化装置１は、動き予測を利用した圧縮符号化方式に従って生成されたビデオストリーム１０の入力を受けて、動画像を伸張復号化する装置である。この画像復号化装置１は、領域設定手段１１、参照画像読み出し手段１２、予測画像生成手段１３、および復号化処理手段１４を具備する。また、画像復号化装置１には、主に復号化処理中に必要なデータや復号化された画像（デコード画像）のデータを格納するためのメモリ２が接続されている。【００２２】
この画像復号化装置１において、時間的に前の画像、あるいは前と後の画像を参照して動き予測を行い、その予測値を用いて符号化されたフレームを復号化する際には、それ以前に復号化され、メモリ２に格納されていたデコード画像を参照画像として利用し、その参照画像のデータと、ビデオストリーム１０から与えられる差分データとを加算する動き補償処理を行うことで、フレームのデータが復元される。ビデオストリーム１０からは、動き予測処理により得られた動きベクトルと、前の画像または前後の画像との差分に基づく情報とが与えられる。また、動き予測処理は、フレームを分割した領域ごとに行われるので、動きベクトルもこれらの領域ごと、また予測に用いたフレームごとに与えられる。【００２３】
領域設定手段１１は、ビデオストリーム１０から抽出した動きベクトルの情報に基づき、メモリ２に格納された参照画像から、動き補償処理のために読み出す画像の領域を設定する。このとき、領域設定手段１１は、ビデオストリーム１０から抽出した複数の動きベクトルがそれぞれ指し示す領域を含むように、その読み出し領域を設定する。参照画像読み出し手段１２は、メモリ２に格納された参照画像のデータのうち、領域設定手段１１により設定された読み出し領域に対応するデータを、連続的なアクセスシーケンスで読み出す。【００２４】
予測画像生成手段１３は、参照画像読み出し手段１２の制御により読み出されたデータを基に、動きベクトルから予測される予測画像を生成する。復号化処理手段１４は、生成された予測画像を利用して、フレームを復元する。復号化処理手段１４は、実際には、例えば、生成された予測画像のデータに、ビデオストリーム１０から抽出した係数情報に基づく差分データを加算することで、画像を復元する。復号化された画像のデータは、メモリ２に格納される。【００２５】
以上の画像復号化装置１では、領域設定手段１１および参照画像読み出し手段１２の動作により、１つの参照画像のデータのうち、複数の動きベクトルが指し示す領域をすべて含むデータが、１回のアクセスシーケンスでメモリ２から読み出される。このため、各動きベクトルが指し示す領域ごとに、対応する画像データをメモリ２から読み出す場合と比較して、メモリ２に対するアクセス回数を減少させることができ、読み出しに要するクロックサイクル数が低減されることが多くなり、また、メモリ２からの正味の読み出しデータ量が削減されやすくなる。従って、復号化の処理負荷が低減されて、動作周波数を高くすることなく、より高圧縮率でかつ画質の高い画像の復号化処理が可能となり、高性能かつ低消費電力の復号化装置を実現できる。特に、動き補償の単位とする領域のフレーム内の分割数が多くなった場合や、参照画像の読み込みの際にフィルタ処理が必要な場合などに、上記の効果がより大きくなる。【００２６】
次に、本発明の実施の形態について、より具体的に説明する。
〔デコーダ回路の構成〕
図２は、本発明の実施の形態に係るデコーダＬＳＩ（Large Scale Integration）の内部構成を示すブロック図である。【００２７】
図２に示すデコーダＬＳＩ１００は、ＭＰＥＧやＨ．２６ｘなどの画像符号化方式に準拠した動画像のビデオストリームを伸張復号化する回路であり、例えば、ビデオプレーヤ／レコーダやビデオカメラなど、ビデオ再生機能を具備する装置に搭載されるものである。このデコーダＬＳＩ１００は、ビデオストリームの入力を受けるストリーム入力部１１０と、ビデオストリームをデコードするデコード処理部１２０と、デコードされた画像のデータを基に表示画像信号を生成して出力する表示制御部１３０と、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）２００に対するインタフェースとして機能するＳＤＲＡＭ制御部１４０とを具備している。また、デコーダＬＳＩ１００には、一連のデコード処理の作業領域として利用されるＳＤＲＡＭ２００が接続されている。【００２８】
このデコーダＬＳＩ１００において、ストリーム入力部１１０に入力されたビデオストリームは、ＳＤＲＡＭ制御部１４０を介して、一旦ＳＤＲＡＭ２００に格納される。デコード処理部１２０は、ＳＤＲＡＭ２００からビデオストリームを読み出してデコード処理を行い、デコード画像をＳＤＲＡＭ２００に再び書き込む。また、動き予測を利用してエンコードされたフレームをデコードする際には、それ以前にデコードしたフレームのデータをＳＤＲＡＭ２００から読み込み、そのフレームを参照画像としてデコード処理に利用する。表示制御部１３０は、ＳＤＲＡＭ２００に格納されたデコード画像を表示順に読み出し、図示しないビデオインタフェース回路などに表示画像信号として出力する。【００２９】
デコード処理部１２０は、ストリーム解析部１２１、予測画像読み出し／生成部１２２、およびデコード画像生成部１２３を具備している。ストリーム解析部１２１は、ＳＤＲＡＭ２００に格納されたビデオストリームを、ＳＤＲＡＭ制御部１４０を介して読み込み、動きベクトル、ＤＣＴ（Discrete Cosine Transform）係数などのデコード処理に必要な各種情報を抽出する。【００３０】
予測画像読み出し／生成部１２２は、ビデオストリームから抽出された動きベクトルなどの情報を基に、参照画像上の読み出し領域を設定し、その領域に対応するデータをＳＤＲＡＭ２００から読み出す。そして、読み出したデータを基に、予測画像を生成する。後述するように、参照画像の読み出しの際には、複数の動きベクトルの指し示す領域をすべて含むように統合した読み出し領域を設定し、その読み出し領域を連続したアクセスシーケンスでＳＤＲＡＭ２００から読み出すようにする。このような読み出し制御を、ここでは“統合読み出し制御”と呼ぶことにする。【００３１】
デコード画像生成部１２３は、ストリーム解析部１２１により抽出された係数情報を用いて逆量子化および逆ＤＣＴ変換の演算を行い、予測誤差を復元する。そして、予測画像読み出し／生成部１２２により生成された予測画像のデータに予測誤差を加算して、デコード画像を生成し、ＳＤＲＡＭ２００に格納する。【００３２】
図３は、予測画像読み出し／生成部の内部構成を示すブロック図である。
予測画像読み出し／生成部１２２は、図３に示すように、予測画像読み出し制御部２２１、統合読み出し制御部２２２、メモリアクセス制御部２２３、ローカルメモリ２２４、および予測画像生成部２２５を具備する。【００３３】
予測画像読み出し制御部２２１は、ビデオストリームから抽出された動きベクトル、および動き予測の単位とされたブロックの情報に基づき、ブロックごとに動きベクトルが指し示す領域の情報を統合読み出し制御部２２２に出力する。また、ローカルメモリ２２４に対して、ブロックごとの参照画像データの読み出しを指示する。【００３４】
統合読み出し制御部２２２は、後述する処理により、複数の動きベクトルの指し示す領域を含むように参照画像上の読み出し領域を設定し、その読み出し領域をメモリアクセス制御部２２３に対して指示する。メモリアクセス制御部２２３は、指示された読み出し領域に対応するデータをＳＤＲＡＭ２００からローカルメモリ２２４に読み出すためのシーケンスを発行する。このとき、指示された１つの読み出し領域のデータを１回のアクセスシーケンスでＳＤＲＡＭ２００から読み出すようにする。【００３５】
ローカルメモリ２２４には、ＳＤＲＡＭ２００から読み出された上記の読み出し領域のデータが一旦格納される。このローカルメモリ２２４からは、予測画像読み出し制御部２２１からの指示に応じて、動き予測のブロックごとに対応する領域のデータが個別に読み出され、予測画像生成部２２５に出力される。予測画像生成部２２５は、ローカルメモリ２２４から読み出された画像データを基に、予測画像を生成する。【００３６】
この予測画像読み出し／生成部１２２では、統合読み出し制御部２２２およびメモリアクセス制御部２２３の機能により統合読み出し制御が実行されて、複数の動きベクトルが指し示す領域が統合された読み出し領域（以下、統合読み出し領域と呼称する。）に対応する参照画像のデータがＳＤＲＡＭ２００から読み込まれる。読み込まれた画像データはローカルメモリ２２４に一旦格納され、予測画像読み出し制御部２２１の制御により、動き予測単位のブロックに対応する領域の画像データが予測画像生成部２２５に対して個別に読み出され、予測画像が生成される。【００３７】
〔統合読み出し制御の基本的な処理〕
次に、上記の統合読み出し制御について、具体的に説明する。以下の説明では、１６画素×１６画素のマクロブロックごとに、統合読み出し領域の設定判断処理を実行するものとする。まず、図４は、マクロブロックの分割例を示す図である。【００３８】
例えばＨ．２６４では、マクロブロックを最大で１６分割したブロックを、輝度信号に基づく動き予測の単位とすることができる。ここでは例として、図４（Ａ）に示すように、マクロブロックを４分割し、それらのうちの１つのブロックをさらに４分割した、合計７ブロックでそれぞれ動き予測が行われて符号化されたものとする。また、図４（Ｂ）では、各ブロックで検出された動きベクトルの指し示す参照画像上の領域を示している。この例では、１マクロブロックに付与された動きベクトルのうち、同一の参照画像に対応するすべての動きベクトル（ここでは各ブロックに対応する７つの動きベクトル）が指し示す領域が、参照画像上における２０画素×２０画素の領域に含まれることを示している。【００３９】
図５は、１マクロブロックに対応する参照画像上の領域のデータ読み出しについて説明するための図である。
上記の図４に示したように、１マクロブロックは８画素×８画素からなる３つのブロックと、４画素×４画素からなる４つのブロックとに分割されている。このため、各ブロックに付与された動きベクトルに基づいて予測画像を生成するためには、図５（Ａ）に示すように、マクロブロック上の各分割領域と同じサイズの領域のデータを、ＳＤＲＡＭ２００に格納された参照画像のデータから切り出す必要がある。従来は、このような各動きベクトルが指し示す参照画像上の領域のデータを、ＳＤＲＡＭ２００から個別に読み出して、予測画像を生成していた。すなわち、従来の参照画像の読み出し方法では、８画素×８画素の領域のデータ読み出しが３回と、４画素×４画素の領域のデータ読み出しが４回の合計７回分だけ、ＳＤＲＡＭ２００に対するアクセスシーケンスを実行する必要があった。【００４０】
ここで、デコード画像の１画素あたりのデータ量が１バイト、ＳＤＲＡＭ２００の１ワードあたりの記憶データ量が４バイトで、水平方向に隣接する４画素を１ワードに割り付ける仕様とする。このとき、必要な画素が必ずしもワードの境界で区切れているとは限らないため、８画素×８画素の領域については、最大で、３［ワード］（１２画素）×８＝２４［ワード］だけのデータをＳＤＲＡＭ２００から読み出す必要があり、４画素×４画素の領域については、最大で、２［ワード］（８画素）×４＝８［ワード］だけのデータを読み出す必要がある。【００４１】
従って、各ブロックに対応する領域のデータを１回ずつのアクセスシーケンスで読み出す場合、ＳＤＲＡＭ２００に対する１回のアクセスシーケンスにおけるオーバヘッドを、１ワードの読み出しサイクルのＭ回分とすると、１マクロブロック当たりの読み出しに要するサイクル数は、２４×３＋８×４＋６Ｍ＝１０４＋６Ｍとなる。【００４２】
これに対して、本実施の形態で適用する統合読み出し制御では、基本的に、図５（Ｂ）に示すように、各動きベクトルが指し示す参照画像上の領域をすべて含むように、統合読み出し領域を設定する。図５（Ｂ）の例では、２０画素×２０画素の領域を統合読み出し領域として設定している。すなわち、統合読み出し制御部２２２は、分割ブロックの領域情報と動きベクトルとに基づいて、上記のような統合読み出し領域を設定し、メモリアクセス制御部２２３は、設定された１つの統合読み出し領域に対応する参照画像上のデータを、１回のアクセスシーケンスでＳＤＲＡＭ２００から読み出す。なお、統合読み出し領域は、メモリアクセスの容易さから、矩形の領域として設定することが望ましい。【００４３】
ここで、上記の２０画素×２０画素の統合読み出し領域のデータを読み出す場合、６［ワード］（２４画素）×２０＝１２０［ワード］だけのデータが、ＳＤＲＡＭ２００から１回のアクセスシーケンスで読み出されることになる。従って、１回のアクセスシーケンスにおけるオーバヘッドのサイクル数Ｍが、Ｍ＞（１２０−１０４）／６＝２．６７の条件を満たすとき、１マクロブロック当たりの読み出しに要するサイクル数は、統合読み出し制御を行った場合の方が短くなる。通常のＳＤＲＡＭに対する読み出しでは上記の条件を満たすことが多いので、統合読み出し制御を行った方が、１マクロブロック分の動き補償処理に必要な参照画像のデータ読み出しを高速で実行できる。【００４４】
また、上記の図５の例では、各動きベクトルが別々の方向を指し示しているために、１マクロブロック当たりの正味の読み出しデータ量は、統合読み出し制御を行った場合の方が多くなっている。しかし、通常、例えば同一マクロブロック内などの比較的近いブロック同士では、動きベクトルの差が小さくなることが多く、その場合には、それらが指し示す領域同士が重なることがある。このような場合、統合読み出し領域のサイズがより小さく設定されて、正味の読み出しデータ量を従来と比較して低減できることが多くなる。従って、ＳＤＲＡＭ２００からのデータ読み出し量が減少して、読み出しの処理負荷を軽減することができるので、動作周波数を高めることなく、またＳＤＲＡＭ２００との間のバスの帯域幅を広くすることなく、デコード処理を高速化することができる。【００４５】
また、Ｈ．２６４では、動き補償処理において参照画像を読み込む際に、タップ数の大きいフィルタ処理を必要とする場合もある。図６は、フィルタ処理が必要な場合の参照画像上の領域のデータ読み出しについて説明するための図である。【００４６】
図６では、動き予測の精度を半画素とし、すべての領域の読み出しに対して６タップのフィルタ処理を行う場合の、参照画像の読み出し領域を示している。各動きベクトルの指し示す領域のデータを個別に読み出す場合、図６（Ａ）に示すように、８画素×８画素のブロックに対応する予測画像の生成のために、１３画素×１３画素の領域のデータをＳＤＲＡＭ２００から読み出す必要があり、４画素×４画素のブロックに対応する予測画像の生成のために、９画素×９画素の領域のデータを読み出す必要がある。【００４７】
１３画素×１３画素の領域については、最大で、４［ワード］×１３＝５２［ワード］だけのデータをＳＤＲＡＭ２００から読み出す必要があり、９画素×９画素の領域については、最大で、３［ワード］×９＝２７［ワード］だけのデータを読み出す必要がある。従って、１マクロブロック当たりの読み出しに要するサイクル数は、５２×３＋２７×４＋６Ｍ＝２６４＋６Ｍとなる。【００４８】
一方、統合読み出し制御を適用した場合には、基本的には、図６（Ｂ）に示すように、２５画素×２５画素の矩形領域が統合読み出し領域として設定される。このとき、７［ワード］×２５＝１７５［ワード］だけのデータが、ＳＤＲＡＭ２００から１回のアクセスシーケンスで読み出されることになるので、動きベクトルの指し示す領域を個別に読み出した場合と比較して、読み出すデータ量自体を削減でき、読み出し処理のサイクル数も大幅に減少する。【００４９】
従って、フィルタ処理を用いて高圧縮率かつ高精度なデータ圧縮を行って符号化されたビデオストリームを、動作周波数を高めることなく、より高速にデコードできるようになる。すなわち、消費電力が低く、より高画質な動画像のエンコードが可能な高性能なデコード回路を実現できる。また、デコード処理の高速化により、ビデオストリームの倍速再生など、高速なデコード処理が必要となる特殊再生処理を、より容易に実現できるようになる。【００５０】
〔統合読み出し制御の具体例１〕
ところで、上述したように、通常、比較的近いブロック同士では、動きベクトルの差が小さくなることが多い。しかし、各動きベクトルが、方向が異なりかつ距離の遠い領域を指し示していた場合には、統合読み出し領域のサイズが非常に大きく設定されてしまう。【００５１】
図７は、サイズが大きく設定されたときの統合読み出し領域の例を示す図である。
この図７では、例として、図４（Ａ）のように分割された１６画素×１６画素のマクロブロックについて、すべての動きベクトルの指し示す領域を含むように統合読み出し領域を設定したとき、その統合読み出し領域が５０画素×４０画素のサイズとなった場合を示している。この場合、読み出しの際にフィルタ処理が不要であるとすると、最大で、１３［ワード］×４０＝５２０［ワード］だけのデータをＳＤＲＡＭ２００から読み出す必要がある。一方、従来のように動きベクトルにそれぞれ対応する領域のデータを個別に読み出した場合には、各領域の読み出しデータ量に変化はないので、読み出しに要するサイクル数は、上述したように、１０４＋６Ｍとなる。従って、オーバヘッドのサイクル数Ｍが、１０４＋６Ｍ＜５４０の条件を満たした場合には、統合読み出し制御を行った方が読み出しに要するサイクル数が多くなってしまう。【００５２】
そこで、統合読み出し領域を設定する際に、その領域の水平方向、垂直方向の各サイズのしきい値Ｌｘ，Ｌｙを設け、統合読み出し領域のサイズがしきい値を超えた場合には、動きベクトルの指し示す領域のデータを個別に読み出すようにする。以下、図８および図９を用いて、このような場合の処理手順について説明する。【００５３】
図８は、例としてＨ．２６４に対して好適な参照画像のデータ読み出しの全体の処理手順を示すフローチャートである。なお、図８の処理により、１マクロブロック分に対応する参照画像のデータが読み出される。【００５４】
まず、予測画像読み出し／生成部１２２において、予測画像読み出し制御部２２１は、ストリーム解析部１２１によりビデオストリームから抽出された動きベクトル、対応するブロックの領域情報、参照フレームを示す情報などを取得する。そして、統合処理判定の対象とするブロック（ここでは１マクロブロックを分割したブロック）の動きベクトルと、そのブロックの領域および参照フレームの情報を、統合読み出し制御部２２２に出力する（ステップＳ１０１）。【００５５】
統合読み出し制御部２２２は、予測画像読み出し制御部２２１からの情報を基に、個別のブロックについて読み出しが必要な参照画像の領域を決定する（ステップＳ１０２）。すなわち、各ブロックに付加された動きベクトルが指し示す参照画像上の領域を個別に決定する。なお、参照画像のデータ読み出し時にフィルタ処理が実行される場合には、その処理に必要なだけの参照画像領域が設定される。【００５６】
次に、決定した各ブロックに対応する参照画像領域を、参照フレームごとにグループ化して分類する（ステップＳ１０３）。そして、分類したグループごとに、統合読み出し制御に対する必要な判定処理を実行し、各種判定結果に応じて統合読み出し制御または動きベクトルごとの個別読み出し制御を実行して、参照画像のデータをＳＤＲＡＭ２００からローカルメモリ２２４に読み出す（ステップＳ１０４）。【００５７】
１グループ分に対応する参照画像の読み出しが終了すると、ステップＳ１０４に戻って次のグループの処理を実行し、全グループの処理が終了すると、１マクロブロック分の参照画像の読み出しが終了する（ステップＳ１０５）。なお、Ｈ．２６４では、８画素×８画素のブロックごとに参照フレームを変えることが可能であり、１つのマクロブロックに対して、双方向予測の場合、最大で８フレームを参照画像として利用できる。このため、ステップＳ１０４〜Ｓ１０５のループ処理は最大で８回実行されることになる。【００５８】
図９は、図８のステップＳ１０４に対応する制御判定／参照画像読み出し処理の第１の例を示すフローチャートである。
統合読み出し制御部２２２は、図８のステップＳ１０２で決定された参照画像領域の領域情報のうち、処理対象とするグループに対応する情報を選択し、これらの参照画像領域の座標値から左端、上端、右端、下端の各座標を求め、これらの領域がすべて含まれる矩形の統合読み出し領域のサイズを算出する（ステップＳ２０１）。次に、算出した統合読み出し領域の水平サイズ、垂直サイズを、それぞれしきい値Ｌｘ，Ｌｙと比較する（ステップＳ２０２）。【００５９】
統合読み出し領域が、上記各しきい値に基づく範囲に収まる場合には、その統合読み出し領域に対応する参照画像のデータを１回のアクセスシーケンスで読み出すようにメモリアクセス制御部２２３に指示する（ステップＳ２０３）。これにより、対応する画像データがＳＤＲＡＭ２００からローカルメモリ２２４に読み出される。一方、統合読み出し領域が、上記各しきい値に基づく範囲より大きい場合には、グループ内の各動きベクトルが指し示す参照画像領域をメモリアクセス制御部２２３に対して個別に伝送し、各領域に対応するデータをその都度、ＳＤＲＡＭ２００からローカルメモリ２２４に出力させる（ステップＳ２０４）。【００６０】
以上の図９の処理によれば、図７のように、動きベクトルが、方向が異なりかつ距離の遠い領域を指し示しているために、統合読み出し領域を連続的に読み出したときの読み出しサイクル数が、動きベクトルごとに領域を個別に読み出した場合より多くなってしまう場合には、各領域のデータが個別のアクセスシーケンスによりＳＤＲＡＭ２００から読み出される。従って、常に読み出しに要するサイクル数を低く設定でき、動作周波数を高めることなく、より高速にビデオストリームをデコードできるようになる。【００６１】
〔統合読み出し制御の具体例２〕
図１０は、マクロブロック内の統合対象とする動きベクトルのうち、１つのみが大きく離れた領域を指し示している場合の例を示す図である。【００６２】
図１０の例では、マクロブロックを分割した７つのブロックのうち、６つのブロックに対応する動きベクトルが、ある程度小さい領域（図中左上の１８画素×２０画素の領域）を指し示し、残りの１つの動きベクトルのみが大きく離れた領域（図中右下の領域）を指し示している。このような場合に、すべての動きベクトルが指し示す領域を統合して、３０画素×３０画素の統合読み出し領域を設定した場合、読み出しの際にフィルタ処理が不要であるとすると、最大で、８［ワード］×３０＝２４０［ワード］だけのデータをＳＤＲＡＭ２００から読み出す必要があり、読み出しに要するサイクル数は２４０サイクルとなる。また、図９の処理手順で、上記の３０画素×３０画素の統合読み出し領域がしきい値に基づくサイズを超えていると判断して、各動きベクトルの指し示す領域を個別に読み出した場合には、オーバヘッドのサイクル数Ｍを８とすると、１０４＋６Ｍ＝１５２だけのサイクル数が読み出しのために必要となる。【００６３】
このように、マクロブロック内の統合対象とする動きベクトルが、図７の例のようにすべて大きく離れた領域を指し示しているのではなく、それらのうちの１つまたは少数の動きベクトルのみが大きく離れた領域を指し示している場合や、動きベクトルの組同士が、それぞれ離れた場所に存在するある程度小さな領域をそれぞれ指し示している場合などには、上記の統合読み出し制御の各処理手順では、読み出しに要するサイクル数が大きくなってしまう場合がある。そこで、以下の図１１の処理例では、１つ以上の動きベクトルが指し示すある程度小さい領域をまとめて、１つの統合読み出し領域として設定することで、上記のような場合にも読み出しに要するサイクル数を小さくできるようにする。【００６４】
図１１は、図８のステップＳ１０４に対応する制御判定／参照画像読み出し処理の第２の例を示すフローチャートである。
統合読み出し制御部２２２は、グループ内の参照画像領域のすべてを統合する場合の判定を行うために、判定対象とする残りの参照画像領域数Ｎにグループ内の参照画像領域の全領域数（Ｎ０）を設定し、統合読み出し領域内の参照画像領域数ｎにＮを設定する（ステップＳ３０１）。そして、判定対象とする残りの参照画像領域数Ｎが０になるまで、ステップＳ３０２〜Ｓ３１１の処理を実行する。【００６５】
まず、統合読み出し制御部２２２は、ｎ個の参照画像領域を含む矩形の統合読み出し領域を設定し、そのサイズを算出する（ステップＳ３０２）。最初は、グループ内の動きベクトルが指し示すすべての参照画像領域を含む１つの統合読み出し領域が設定される。なお、この統合読み出し領域の設定では、上記図９のステップＳ２０２と同様に、参照画像のデータ読み出し時にフィルタ処理が実行される場合には、その処理に必要なだけの領域が設定される。【００６６】
次に、ステップＳ３０２で設定した統合読み出し領域のうち、サイズが最小のものを選択する（ステップＳ３０３）。そして、選択した統合読み出し領域の水平サイズ、垂直サイズを、それぞれしきい値Ｌｘ’，Ｌｙ’と比較する（ステップＳ３０４）。この比較により、統合読み出し領域のサイズがしきい値に基づく範囲に収まらない場合には、統合読み出し領域内の参照画像領域数ｎを１だけ減算する（ステップＳ３０５）。そして、参照画像領域数ｎが１であるか否かを判定し（ステップＳ３０６）、ｎ＝１でない場合はステップＳ３０２に戻る。一方、ｎ＝１である場合は、その領域は統合できずに残ったものであるので、その領域に対応する参照画像のデータを個別に（すなわち単独で）ＳＤＲＡＭ２００からローカルメモリ２２４に読み出すように、メモリアクセス制御部２２３に指示する（ステップＳ３０７）。【００６７】
ステップＳ３０６の判定で、統合読み出し領域内の参照画像領域数ｎが１でない（すなわち２以上）の場合には、統合読み出し制御部２２２は、統合読み出し領域に含める参照画像領域を１だけ少なくして、再び統合読み出し領域を可能な限り設定し、それらのサイズを算出する（ステップＳ３０２）。そして、サイズが最小の領域を選択して（ステップＳ３０３）、その領域がしきい値に基づく所定サイズ内となった場合に（ステップＳ３０４）、その統合読み出し領域を１回のアクセスシーケンスでＳＤＲＡＭ２００からローカルメモリ２２４に読み出すようにメモリアクセス制御部２２３に指示する（ステップＳ３０８）。【００６８】
その後、ステップＳ３０８で統合して読み出したｎ個の参照画像領域を、判定対象から除外し（ステップＳ３０９）、判定対象とする残りの参照画像領域数Ｎをｎだけ減算して、そのＮを、統合読み出し領域内の参照画像領域数ｎに設定する（ステップＳ３１０）。さらに、参照画像領域数Ｎが０であるか否かを判定する（ステップＳ３１１）。Ｎ＝０であれば、グループ内のすべての参照画像領域のデータ読み出しが済んでいることになるので、処理を終了する。また、Ｎ＝０でなければ、読み出しが済んでいない参照画像領域が存在するので、ステップＳ３０２に戻り、残りの領域から統合読み出し領域を設定して、サイズが最小のものについてしきい値との判定を行う。【００６９】
この結果、グループ内の複数の参照画像領域を含んだ所定サイズ以内の統合読み出し領域が１つ以上設定され、それらの統合読み出し領域のデータについては、それぞれ１回のアクセスシーケンスでＳＤＲＡＭ２００から読み出される。また、統合読み出し領域に含まれなかった参照画像領域のデータは、別のアクセスシーケンスでＳＤＲＡＭ２００から読み出される。【００７０】
ここで、図１０の例を適用した場合、ステップＳ３０４でのしきい値を、Ｌｘ’＝２４，Ｌｙ’＝２０とすると、図１０中の左上に存在する６つの参照画像領域が、２０画素×１８画素の領域に含まれるので、この領域が統合読み出し領域として設定される。この統合読み出し領域については、最大で、６［ワード］×１８＝１０８［ワード］だけのデータがＳＤＲＡＭ２００から読み出される。また、残りの図中右下に存在する４画素×４画素の参照画像領域については、個別のアクセスシーケンスでＳＤＲＡＭ２００から読み出され、最大で、２［ワード］×４＝８［ワード］だけのデータが読み出される。全体のアクセスシーケンス数は２回となるので、１回のアクセスシーケンスに要するオーバヘッドのサイクル数Ｎを８とすると、これらの読み出しに要するサイクル数は、１０８＋８＋８＝１２４となる。従って、マクロブロック内のすべての参照画像領域を含むように統合読み出し領域を設定した場合や、各参照画像領域を個別のアクセスシーケンスで読み出した場合と比較して、読み出しに要するサイクル数が低減され、読み出しデータ量も低減される。【００７１】
以上の図１１の処理によれば、マクロブロック内の動きベクトルのうちの１つまたは少数が大きく離れた領域を指し示している場合や、動きベクトルの組同士が、それぞれ離れた場所に存在するある程度小さな領域をそれぞれ指し示している場合でも、参照画像のデータ読み出しに要するサイクル数を常に低く設定でき、動作周波数を高めることなく、より高速にビデオストリームをデコードできるようになる。【００７２】
〔統合読み出し制御の具体例３〕
次に、上記の統合読み出し制御を、ＭＰＥＧ−４・シンプル・プロファイル（Simple Profile）に従って符号化されたビデオストリームのデコード処理に適用する場合の処理例について説明する。なお、このようなビデオストリームのデコーダＬＳＩは、基本的に、図２および図３に示したデコーダＬＳＩ１００と同様の機能により実現される。また、ＭＰＥＧ−４・シンプル・プロファイルの仕様では、マクロブロックの分割数は４または１（分割なし）の２パターンであり、参照画像は１フレームのみである。【００７３】
まず、上記の図７のように、マクロブロック中の動きベクトルが、それぞれ方向が異なりかつ距離の遠い領域を指し示している場合に好適な処理例（図８および図９の処理に対応）について、以下の図１２を用いて説明する。【００７４】
図１２は、ＭＰＥＧ−４・シンプル・プロファイルに対して好適な参照画像のデータ読み出し処理手順の第１の例を示すフローチャートである。なお、図８と同様に、図１２の処理により、１マクロブロック分に対応する参照画像のデータが読み出される。【００７５】
まず、予測画像読み出し／生成部１２２において、予測画像読み出し制御部２２１は、ストリーム解析部１２１によりビデオストリームから抽出された動きベクトル、対応するブロックの領域情報などを取得し、統合処理判定の対象とするブロック（ここでは１マクロブロックまたはその分割ブロック）の動きベクトルとそのブロックの領域情報を、統合読み出し制御部２２２に出力する（ステップＳ４０１）。【００７６】
統合読み出し制御部２２２は、予測画像読み出し制御部２２１からの情報を基に、各ブロックについて読み出しが必要な参照画像の領域を決定する（ステップＳ４０２）。次に、マクロブロック内のブロックの分割があるか否かを判定する（ステップＳ４０３）。ブロックの分割がない場合には、マクロブロックに対応する参照画像領域のデータを、個別の（すなわち１回の）読み出しシーケンスでＳＤＲＡＭ２００から読み出すように、メモリアクセス制御部２２３に指示する（ステップＳ４０４）。これにより、マクロブロック内のただ１つの動きベクトルの指し示す参照画像領域でのデータが、ＳＤＲＡＭ２００からローカルメモリ２２４に読み出される。【００７７】
また、ステップＳ４０３の判定でブロックの分割がある場合には、各ブロックに対応する参照画像領域を含む統合読み出し領域を設定し、これらの参照画像領域の座標値から左端、上端、右端、下端の各座標を求め、これらの領域がすべて含まれる矩形の統合読み出し領域のサイズを算出する（ステップＳ４０５）。次に、算出した統合読み出し領域の水平・方向のサイズを、それぞれしきい値と比較する（ステップＳ４０６）。【００７８】
統合読み出し領域が、上記各しきい値に基づく範囲に収まる場合には、その統合読み出し領域に対応する参照画像のデータを１回のアクセスシーケンスで読み出すようにメモリアクセス制御部２２３に指示する（ステップＳ４０７）。これにより、対応する画像データがＳＤＲＡＭ２００からローカルメモリ２２４に読み出される。一方、統合読み出し領域が、上記各しきい値に基づく範囲より大きい場合には、各ブロックの動きベクトルが指し示す参照画像領域のデータを、個別にＳＤＲＡＭ２００から読み出すように、メモリアクセス制御部２２３に指示する（ステップＳ４０４）。【００７９】
以上の読み出し処理によれば、図９の場合と同様に、動きベクトルが、方向が異なりかつ距離の遠い領域を指し示しているために、統合読み出し領域を連続的に読み出したときの読み出しサイクル数が、動きベクトルごとに領域を個別に読み出した場合より多くなってしまう場合には、各領域のデータが個別のアクセスシーケンスによりＳＤＲＡＭ２００から読み出されるようになる。従って、常に読み出しに要するサイクル数を低く設定でき、動作周波数を高めることなく、より高速にビデオストリームをデコードできるようになる。【００８０】
なお、マクロブロックの分割数が４である場合には、例えば上記図１０および図１１で説明したように、１つ以上の動きベクトルが指し示すある程度小さい領域をまとめて、１つの統合読み出し領域として設定して統合読み出しを行い、統合できなかった参照画像領域を個別のアクセスシーケンスで読み出すようにしてもよい。これにより、マクロブロック内の動きベクトルのうちの１つまたは少数が大きく離れた領域を指し示している場合や、動きベクトルの組同士が、それぞれ離れた場所に存在するある程度小さな領域をそれぞれ指し示している場合でも、読み出しに要するサイクル数を小さくすることができる。【００８１】
〔統合読み出し制御の具体例４〕
次に、ＭＰＥＧ−４・シンプル・プロファイルのビデオストリームのデコード処理において、マクロブロックのブロック分割数が１で、隣接する複数のマクロブロック（以下の図１３の例では２つのマクロブロック）を、統合読み出しの判定対象とした場合の処理例について、以下の図１３を用いて説明する。【００８２】
図１３は、ＭＰＥＧ−４・シンプル・プロファイルに対して好適な参照画像のデータ読み出し処理手順の第２の例を示すフローチャートである。なお、この図１３の処理により、隣接する２つのマクロブロックに対応する参照画像のデータが読み出される。【００８３】
まず、予測画像読み出し／生成部１２２において、予測画像読み出し制御部２２１は、ストリーム解析部１２１から取得した情報に基づき統合処理判定の対象とする、隣接する２つのマクロブロックの動きベクトルの情報を、統合読み出し制御部２２２に出力する（ステップＳ５０１）。【００８４】
統合読み出し制御部２２２は、予測画像読み出し制御部２２１からの情報を基に、各動きベクトルが指し示す先の、読み出しが必要な参照画像の領域を決定する（ステップＳ５０２）。次に、各マクロブロックに対応する参照画像領域を含む統合読み出し領域を設定し、これらの参照画像領域の座標値から左端、上端、右端、下端の各座標を求め、これらの領域がすべて含まれる矩形の統合読み出し領域のサイズを算出する（ステップＳ５０３）。【００８５】
次に、算出した統合読み出し領域の水平・方向のサイズを、それぞれしきい値と比較し（ステップＳ５０４）、その統合読み出し領域が、上記各しきい値に基づく範囲に収まる場合には、その統合読み出し領域に対応する参照画像のデータを１回のアクセスシーケンスで読み出すようにメモリアクセス制御部２２３に指示する（ステップＳ５０５）。また、統合読み出し領域が、上記各しきい値に基づく範囲より大きい場合には、各動きベクトルが指し示す参照画像領域のデータを、個別にＳＤＲＡＭ２００から読み出すように、メモリアクセス制御部２２３に指示する（ステップＳ５０６）。【００８６】
以上の読み出し処理によれば、図１２の場合と同様に、動きベクトルが、方向が異なりかつ距離の遠い領域を指し示している場合でも、常に読み出しに要するサイクル数が低く設定されるようになり、動作周波数を高めることなく、より高速にビデオストリームをデコードできるようになる。【００８７】
〔エンコーダ回路に適用した場合の回路構成〕
ところで、本発明は、画像復号化装置だけでなく、画像符号化装置における外部メモリからの参照画像のデータ読み込み機能に対して適用することもできる。例えば、後述するように、ＭＰＥＧやＨ．２６４に従ったエンコード時において、動きベクトルの検出用の参照画像とは別に、予測画像生成用の参照画像を読み込む場合、あるいは、輝度成分データのみで動きベクトルを検出した後に、色差成分の参照画像のデータを読み出す場合などに、統合読み出し制御を適用することができる。【００８８】
図１４は、本発明の実施の形態に係るエンコーダＬＳＩの要部構成を示すブロック図である。この図では、ＭＰＥＧやＨ．２６４に従ったインター（Inter）マクロブロックデコード処理に関する機能について、概略的に示している。【００８９】
図１４に示すエンコーダＬＳＩ３００は、例えば、ビデオレコーダやビデオカメラなどのビデオ録画機能を具備する装置や、ビデオストリームの配信機能を具備する装置に搭載されるものである。このエンコーダＬＳＩ３００は、エンコード対象の画像信号の入力を受ける画像入力制御部３１０と、画像のエンコード処理を実行するエンコード処理部３２０と、エンコード処理により生成されたビデオストリームを外部に出力するストリーム出力部３３０と、エンコード処理の作業領域として利用されるＳＤＲＡＭ４００との間のインタフェースとして機能するＳＤＲＡＭ制御部３４０とを具備する。【００９０】
このエンコーダＬＳＩ３００において、画像入力制御部３１０に入力された画像信号は、ＳＤＲＡＭ制御部３４０を介して、一旦ＳＤＲＡＭ４００に格納される。エンコード処理部３２０は、ＳＤＲＡＭ４００に格納された画像データをＳＤＲＡＭ制御部３４０を介して読み込み、エンコード処理を実行して、生成したビデオストリームをＳＤＲＡＭ４００に再び書き込む。ＳＤＲＡＭ４００に格納されたビデオストリームは、ストリーム出力部３３０に読み出され、外部の記録装置やネットワークインタフェースなどに対して出力する。また、エンコード処理部３２０は、エンコード処理とともに、動き予測のために利用されるローカルデコード画像を生成して、ＳＤＲＡＭ４００に格納する。そして、動き予測を行う際に、エンコード対象の画像（原画像）のデータをＳＤＲＡＭ４００から読み込むとともに、過去のローカルデコード画像のデータをＳＤＲＡＭ４００から読み込み、その画像を参照画像として処理に利用する。【００９１】
エンコード処理部３２０は、動きベクトルを検出する動きベクトル検出部３２１と、検出された動きベクトルに基づいて予測画像を生成する予測画像生成部３２２と、生成された予測画像と原画像とを基に符号化ストリームを生成する符号化演算処理部３２３とを具備する。【００９２】
動き予測を利用したフレームのエンコードを行う場合、動きベクトル検出部３２１は、原画像のデータと、動き予測に利用する参照画像（過去のローカルデコード画像）のデータとを、ＳＤＲＡＭ４００から読み込み、動きベクトルを検出する。一般的に、動きベクトルの検出では、ブロックマッチングなどの手法により原画像と参照画像との予測誤差が小さくなるようなベクトルが検出される。【００９３】
予測画像生成部３２２は、動きベクトル検出部３２１により検出された動きベクトルの情報に基づいて、参照画像の読み出し領域を算出し、その算出結果に基づいて、ＳＤＲＡＭ４００から対応する参照画像のデータを読み出し、予測画像を生成する。【００９４】
符号化演算処理部３２３は、予測画像生成部３２２により生成された予測画像と、対応する原画像との予測誤差を検出し、その検出値に対してＤＣＴ変換処理および量子化処理を施して、規格に従ったビデオストリームを生成してＳＤＲＡＭ４００に格納する。これと同時に、符号化データに対して逆量子化処理および逆ＤＣＴ変換処理を行って、必要なローカルデコード画像を生成し、ＳＤＲＡＭ４００に格納する。【００９５】
ここで、上記処理では、動きベクトルの検出のための参照画像を動きベクトル検出部３２１がＳＤＲＡＭ４００から読み出した後、同じ参照画像を予測画像生成部３２２が再びＳＤＲＡＭ４００から読み出す手順となっている。動きベクトルの検出は、例えばマクロブロックを複数個に分割した領域ごとに行われるが、動きベクトル検出部３２１は、検出対象の分割ブロックのデータを順次読み出せばよい。これに対して、予測画像生成部３２２は、動きベクトルに基づいて算出した参照画像上の領域のデータをＳＤＲＡＭ４００から読み出す必要がある。【００９６】
このため、予測画像生成部３２２による参照画像の読み出し処理に対して、上述した統合読み出し制御を適用することで、予測画像生成のための参照画像の読み込みに要するサイクル数を低減し、処理を高速化することが可能となる。例えば、１つの参照画像に対応する参照画像領域をすべて含むように統合読み出し領域を設定し、その領域を１回のアクセスシーケンスでＳＤＲＡＭ４００から読み出すようにする。また、図９や図１１のように、設定した統合読み出し領域を用いて統合読み出し制御を行うか否かを判定することで、より多様な場合でも、安定的に処理を高速化することが可能となる。【００９７】
さらに、動きベクトルの検出を、輝度成分のデータのみから行い、その検出結果を用いて色差成分に対応する予測画像の生成を行う場合でも、輝度成分に対応する参照画像のデータの読み出し後に、色差成分に対応する参照画像のデータを、動きベクトルの指し示す領域ごとに読み出す必要がある。従って、この場合に、色差成分に対応する参照画像の読み出しの際に、上述した統合読み出し制御を適用することで、同様に、予測画像生成のための参照画像の読み込みに要するサイクル数を低減し、処理を高速化することが可能となる。【００９８】
以上のように、本発明を適用することにより、ビデオストリームのデコードだけでなく、エンコード時にも、動作周波数を高めることなく、ＳＤＲＡＭ４００へのアクセスに要するサイクル数および読み出しデータ量を低減して、処理を高速化できるようになる。従って、低消費電力でありながら、高圧縮率でかつ高品質なビデオストリームの作成および再生処理が可能な装置を実現できる。特に、Ｈ．２６４などの高圧縮率かつ高画質の符号化方式は、携帯型電話機やＰＤＡ（Personal Digital Assistance）などの携帯機器でのビデオ録画・再生に採用することが要望されており、上記手法によりデコード処理時の低消費電力化が実現されることで、バッテリ寿命が長く、より長時間のビデオ録画・再生が可能な携帯機器を実現できるようになる。【００９９】
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【符号の説明】
【０１００】
１  画像復号化装置
２  メモリ
１０  ビデオストリーム
１１  領域設定手段
１２  参照画像読み出し手段
１３  予測画像生成手段
１４  復号化処理手段
【図１】
0004675383.tif 000002
【図２】
0004675383.tif 000003
【図３】
0004675383.tif 000004
【図４】
0004675383.tif 000005
【図５】
0004675383.tif 000006
【図６】
0004675383.tif 000007
【図７】
0004675383.tif 000008
【図８】
0004675383.tif 000009
【図９】
0004675383.tif 000010
【図１０】
0004675383.tif 000011
【図１１】
0004675383.tif 000012
【図１２】
0004675383.tif 000013
【図１３】
0004675383.tif 000014
【図１４】
0004675383.tif 000015
【図１５】
0004675383.tif 000016
【図１６】
0004675383.tif 000017