(57)【特許請求の範囲】
【請求項１】
フレーム間予測で使用される参照画像を、記憶装置に記憶されている復号済の画像から生成するフレーム間予測処理装置において、
２つのマクロブロックの前記参照画像の読み出し領域を算出し、算出された前記読み出し領域のサイズに応じて設定される重み値を、前記２つのマクロブロックの前記読み出し領域が互いに重なる領域において、所定数の画素単位で累積した値に基づいて、前記読み出し領域の画像を統合して読み出すか否かを２つのマクロブロック単位で判定する判定部と、
前記読み出し領域の画像を統合して読み出すと判定されたとき、前記記憶装置から前記読み出し領域の画像を統合して読み出す読み出し部と
を備えていることを特徴とするフレーム間予測処理装置。
【請求項２】
前記読み出し領域のサイズに応じた重み値を、前記読み出し領域に対応する位置に所定数の画素単位で格納する累積テーブルを有し、
前記判定部は、前記累積テーブルを初期化した後、前記２つのマクロブロックの前記各読み出し領域の前記重み値を前記累積テーブルの対応する位置に累積して格納し、前記累積テーブルに格納された前記重み値に基づいて、前記読み出し領域の画像を統合して読み出すか否かを判定すること
を特徴とする請求項１記載のフレーム間予測処理装置。
【請求項３】
前記所定数の画素単位は、２×２画素であること
を特徴とする請求項２記載のフレーム間予測処理装置。
【請求項４】
前記重み値は、前記読み出し領域のサイズが小さくなるにつれて大きい値に設定されること
を特徴とする請求項２記載のフレーム間予測処理装置。
【請求項５】
前記重み値は、前記読み出し領域を前記所定数の画素単位分だけ外側に拡大した領域まで設定され、
前記判定部は、前記累積テーブルを初期化した後、前記拡大した領域の前記重み値を前記累積テーブルの対応する位置に累積して格納し、前記累積テーブルに格納された前記重み値に基づいて、前記読み出し領域の画像を統合して読み出すか否かを判定すること
を特徴とする請求項２記載のフレーム間予測処理装置。
【請求項６】
前記拡大した領域の前記読み出し領域以外の領域の前記重み値は、前記読み出し領域の前記重み値より小さい値に設定されること
を特徴とする請求項５記載のフレーム間予測処理装置。
【請求項７】
前記判定部は、前記読み出し領域の画像を統合して読み出すか否かの統合判定を、統合判定対象の前記２つのマクロブロックの前に処理されるマクロブロックの前記読み出し領域の画像の読み出し処理中に、実施すること
を特徴とする請求項１記載のフレーム間予測処理装置。
【請求項８】
フレーム間予測で使用される参照画像を、記憶装置に記憶されている復号済の画像から生成するフレーム間予測処理装置を備え、
前記フレーム間予測処理装置は、
２つのマクロブロックの前記参照画像の読み出し領域を算出し、算出された前記読み出し領域のサイズに応じて設定される重み値を、前記２つのマクロブロックの前記読み出し領域が互いに重なる領域において、所定数の画素単位で累積した値に基づいて、前記読み出し領域の画像を統合して読み出すか否かを２つのマクロブロック単位で判定する判定部と、
前記読み出し領域の画像を統合して読み出すと判定されたとき、前記記憶装置から前記読み出し領域の画像を統合して読み出す読み出し部と
を備えていることを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フレーム間予測処理装置および画像処理装置に関する。
【背景技術】
【０００２】
ＭＰＥＧやＨ．２６４等の画像符号化方式では、圧縮効率を高めるために、動画像データの符号化にフレーム間予測が用いられている。例えば、フレーム間予測では、動きベクトルと復号済のフレームとに基づいて参照画像が生成され、入力画像（符号化対象のフレーム）と参照画像との差分値が符号化される。動きベクトルは、動き補償と呼ばれる技術のパラメータであり、フレーム間の画像の動き量を推定する情報である。例えば、動きベクトルは、復号済のフレーム内での参照画像の読み出し領域の位置を示す情報である。
【０００３】
一般に、復号済のフレームは、例えば、外部記憶装置に格納される。したがって、参照画像は、外部記憶装置から読み出される。ここで、Ｈ．２６４等の画像符号化方式では、参照画像の単位は、例えば、１６×１６画素のマクロブロックより小さいサイズ（４×４画素）に細分化されることもある。参照画像の単位の細分化に伴い、参照画像の読み出し回数は増加する。すなわち、外部記憶装置へのアクセス回数は増加する。
【０００４】
参照画像が外部記憶装置から読み出されている期間は、ＣＰＵ等の他のモジュールは、外部記憶装置を使用できない。この結果、外部記憶装置を使用するシステムの性能は、低下する。近年、参照画像をマクロブロック毎に統合して外部記憶装置から読み出す動画像復号化装置が提案されている（例えば、特許文献１参照）。この種の動画像復号化装置は、１マクロブロック当たりの参照画像が複数に分割されているとき、複数の参照画像を統合して読み出すか否かを判定する。
【０００５】
例えば、動画像復号化装置は、複数の参照画像を統合して読み出すときの読み出しサイクルと複数の参照画像を個別に読み出すときの読み出しサイクルとをそれぞれ算出する。なお、動画像復号化装置は、アドレス指定等の数サイクルのオーバーヘッドを含めた読み出しサイクルを算出する。そして、動画像復号化装置は、複数の参照画像を統合して読み出すときの読み出しサイクルが複数の参照画像を個別に読み出すときの読み出しサイクルより少ないとき、複数の参照画像を統合して読み出す。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】国際公開第２００８／１１７４４０号パンフレット
【発明の概要】
【発明が解決しようとする課題】
【０００７】
参照画像を読み出すときのオーバーヘッドは、例えば、外部記憶装置の種類やハードウエアの構成により変化する。したがって、読み出しサイクルを比較する方式では、外部記憶装置の種類やハードウエアの構成が変更される度に、オーバーヘッドを調べる必要がある。このため、読み出しサイクルを比較する方式では、例えば、汎用性の高い動画像復号化装置を形成することは困難である。また、複数の参照画像を統合して読み出す従来の方式では、１マクロブロックの参照画像を統合して読み出すか否かを判定する。したがって、互いに異なるマクロブロックの参照画像は、統合されない。
【０００８】
本発明の目的は、参照画像の読み出し回数を低減することである。
【課題を解決するための手段】
【０００９】
本発明の一形態では、フレーム間予測で使用される参照画像を、記憶装置に記憶されている復号済の画像から生成するフレーム間予測処理装置は、２つのマクロブロックの参照画像の読み出し領域を算出し、読み出し領域の画像を統合して読み出すか否かを２つのマクロブロック単位で判定する判定部と、読み出し領域の画像を統合して読み出すと判定されたとき、記憶装置から読み出し領域の画像を統合して読み出す読み出し部とを有している。
【発明の効果】
【００１０】
参照画像の読み出し回数を低減できる。
【図面の簡単な説明】
【００１１】
【図１】一実施形態におけるフレーム間予測処理装置の例を示している。
【図２】画像圧縮処理の順序の一例を示している。
【図３】フレーム間予測を実施する際のマクロブロックの分割パターンの一例を示している。
【図４】マクロブロックと参照画像との関係の一例を示している。
【図５】各分割パターンの参照画像の読み出し領域の一例を示している。
【図６】各分割パターンの重み値の一例を示している。
【図７】各分割パターンの重み値の別の例を示している。
【図８】図６および図７に示した重み値の一覧を示している。
【図９】参照画像の読み出し領域と累積テーブルとの関係の一例を示している。
【図１０】図１に示したフレーム間予測処理装置の動作の一例を示している。
【図１１】読み出し領域を統合するときの一例を示している。
【図１２】読み出し領域を統合するときの別の例を示している。
【図１３】読み出し領域を統合しないときの一例を示している。
【図１４】読み出し領域を統合するときの別の例を示している。
【図１５】図１に示したフレーム間予測処理装置が搭載される動画像復号化装置の一例を示している。
【図１６】図１に示したフレーム間予測処理装置が搭載される動画像符号化装置の一例を示している。
【発明を実施するための形態】
【００１２】
以下、実施形態を図面を用いて説明する。
【００１３】
図１は、一実施形態におけるフレーム間予測処理装置１０の例を示している。
【００１４】
フレーム間予測処理装置１０は、例えば、フレーム間予測が用いられる画像処理装置（ＭＰＥＧやＨ．２６４等に準拠した画像処理装置）に搭載され、フレーム間予測で使用される参照画像を生成する。例えば、フレーム間予測が用いられる動画像符号化装置では、入力画像（符号化対象の画像）と参照画像との差分値が符号化される。さらに、入力画像に対する参照画像の動き量（移動距離）を示す動きベクトルＭＶが符号化される。
【００１５】
また、フレーム間予測が用いられる動画像復号化装置では、差分値と参照画像とに基づいて、画像が復号される。このように、参照画像は、画像を符号化（あるいは、復号化）する際に参照される。なお、参照画像は、符号化（あるいは、復号化）対象の画像に類似した復号済の画像であり、動きベクトルＭＶとメモリ２０に記憶されている復号済の画像とに基づいて生成される。
【００１６】
例えば、フレーム間予測処理装置１０は、動きベクトルＭＶを取得し、動きベクトルＭＶに基づく参照画像をメモリ２０から読み出す。なお、フレーム間予測処理装置１０は、参照画像をメモリ２０から読み出す際、複数の動きベクトルＭＶに対応する参照画像を統合して読み出すか否かを判定する。
【００１７】
例えば、フレーム間予測処理装置１０は、判定部１２および読み出し部１４を有している。判定部１２は、２つのマクロブロックの参照画像の読み出し領域を算出し、読み出し領域の画像を統合して読み出すか否かを２つのマクロブロック単位で判定する。例えば、判定部１２は、２つのマクロブロックの動きベクトルＭＶを取得し、取得した動きベクトルＭＶに基づいて、参照画像の読み出し領域を算出する。そして、判定部１２は、例えば、算出した読み出し領域に基づいて、読み出し領域の画像を統合して読み出すか否かを判定する。
【００１８】
例えば、判定部１２は、図６−図８に示すように、参照画像の各読み出し領域に対して、読み出し領域のサイズに応じた重み値を所定数の画素単位で算出する。そして、判定部１２は、例えば、読み出し領域が互いに重なる領域の重み値を用いて評価値を生成する。例えば、判定部１２は、各読み出し領域に対応する位置の重み値を累積して格納する累積テーブル（例えば、図９に示す累積テーブルＣＴＢＬ）を用いて、評価値を算出してもよい。そして、判定部１２は、読み出し領域の画像を統合して読み出すか否かを評価値に基づいて判定する。
【００１９】
ここで、マクロブロックは、１６×１６画素のブロックである。画像圧縮等の処理は、例えば、マクロブロック単位で実施される。なお、参照画像の単位は、例えば、図３に示すように、マクロブロックより小さいサイズに細分化されることもある。このとき、動きベクトルＭＶは、マクロブロックを分割したブロック毎に生成される。
【００２０】
読み出し部１４は、読み出し領域の画像を統合して読み出すと判定されたとき、読み出し領域の画像を統合してメモリ２０から読み出す。例えば、読み出し部１４は、判定部１２が読み出し領域の画像を統合して読み出すと判定したとき、統合対象の読み出し領域の画像を、メモリ２０から統合して読み出す。なお、統合対象以外の読み出し領域の画像は、個別に読み出される。また、読み出し部１４は、判定部１２が読み出し領域の画像を統合して読み出さないと判定したとき、読み出し領域の画像をメモリ２０から個別に読み出す。そして、フレーム間予測処理装置１０は、例えば、メモリ２０から読み出した画像を用いて、マクロブロック毎に参照画像を生成する。
【００２１】
図２は、画像圧縮処理の順序の一例を示している。なお、図２は、８×８マクロブロックＭＢ（１２８×１２８画素）のフレームＦＲＭを、画像圧縮するときの処理順序を示している。フレームＦＲＭのサイズは、８×８マクロブロックＭＢに限定されない。画像圧縮処理は、例えば、１６×１６画素のマクロブロックＭＢ単位で実施される。
【００２２】
画像圧縮処理は、図２の破線の矢印で示したように、最上端のマクロブロックラインＬ１の左端のマクロブロックＭＢから右端のマクロブロックＭＢの順に実施される。次に、マクロブロックラインＬ２の左端のマクロブロックＭＢから右端のマクロブロックＭＢの順に画像圧縮処理が実施される。以降、左端のマクロブロックＭＢから右端のマクロブロックＭＢの順に実施される画像圧縮処理が、最下端のマクロブロックラインＬ８まで繰り返される。
【００２３】
図３は、フレーム間予測を実施する際のマクロブロックＭＢの分割パターンの一例を示している。なお、図中の各ブロック内の数字は、パーティション番号を示している。フレーム間予測を実施する際、予測精度を向上させるために、マクロブロックＭＢが分割されるときがある。例えば、パターンＭＰ１０では、マクロブロックＭＢは、分割されない。パターンＭＰ２０では、マクロブロックＭＢは、１６×８画素のブロックに２分割される。パターンＭＰ３０では、マクロブロックＭＢは、８×１６画素のブロックに２分割される。パターンＭＰ４０では、マクロブロックＭＢは、８×８画素のブロックに４分割される。以下、マクロブロックＭＢを４分割したときの８×８画素のブロックを、サブマクロブロックＳＭＢとも称する。
【００２４】
さらに、パターンＭＰ４０では、８×８画素のサブマクロブロックＳＭＢが分割されるときがある。例えば、パターンＳＰ１０では、サブマクロブロックＳＭＢは、分割されない。パターンＳＰ２０では、サブマクロブロックＳＭＢは、８×４画素のブロックに２分割される。また、パターンＳＰ３０では、サブマクロブロックＳＭＢは、４×８画素のブロックに２分割される。パターンＳＰ４０では、サブマクロブロックＳＭＢは、４×４画素のブロックに４分割される。
【００２５】
なお、動きベクトルＭＶは、マクロブロックＭＢやサブマクロブロックＳＭＢを分割したブロック毎に生成される。すなわち、各ブロックは、動きベクトルＭＶを有している。例えば、各ブロックの動きベクトルＭＶは、ブロックの位置と参照画像の位置との差（動き量）を示している。
【００２６】
図４は、マクロブロックＭＢと参照画像との関係の一例を示している。なお、図４では、フレームＦＲＭ３のマクロブロックＭＢ１（太線で囲んだ領域）は、４つのブロックＢＫ（ＢＫ０、ＢＫ１、ＢＫ２、ＢＫ３）に分割されている。例えば、各ブロックＢＫは、図３に示した８×８画素のサブマクロブロックＳＭＢである。また、フレームＦＲＭの符号の末尾の数字が小さいフレームＦＲＭは、符号の末尾の数字が大きいフレームＦＲＭより過去のフレームである。
【００２７】
例えば、マクロブロックＭＢ１のブロックＢＫ０の参照画像は、フレームＦＲＭ２の画像ＲＩ０ｆとフレームＦＲＭ４の画像ＲＩ０ｂとに基づいて生成される。すなわち、ブロックＢＫ０では、前方向予測および後方向予測による双予測が実施される。したがって、ブロックＢＫ０では、双方向の動きベクトルＭＶが用いられる。
【００２８】
ブロックＢＫ１の参照画像は、フレームＦＲＭ５の画像ＲＩ１に基づいて生成される。すなわち、ブロックＢＫ１では、後方向予測（片方向予測）が実施される。したがって、ブロックＢＫ１では、後方向の動きベクトルＭＶが用いられる。ブロックＢＫ２の参照画像は、フレームＦＲＭ１の画像ＲＩ２に基づいて生成される。すなわち、ブロックＢＫ２では、前方向予測（片方向予測）が実施される。したがって、ブロックＢＫ２では、前方向の動きベクトルＭＶが用いられる。
【００２９】
ブロックＢＫ３の参照画像は、フレームＦＲＭ２の画像ＲＩ３ｆとフレームＦＲＭ４の画像ＲＩ３ｂとに基づいて生成される。すなわち、ブロックＢＫ３では、前方向予測および後方向予測による双予測が実施される。したがって、ブロックＢＫ３では、双方向の動きベクトルＭＶが用いられる。
【００３０】
図５は、各分割パターンの参照画像の読み出し領域の一例を示している。例えば、動きベクトルＭＶが整数精度のとき、整数位置の画素を読み出すことにより、参照画像は生成される。したがって、参照画像の読み出し領域ＲＡのサイズは、ブロックＢＫ（マクロブロックＭＢやサブマクロブロックＳＭＢを分割したブロック）のサイズと一致する。また、動きベクトルＭＶが１／２、１／４精度のとき、少数部分を切り下げた整数位置の画素とその周辺の画素とを用いてフィルタ処理を実施することにより、参照画像は生成される。このため、動きベクトルＭＶが１／２、１／４精度のときには、少数部分を切り下げた整数位置に対して、水平方向に−２から＋３の位置および垂直方向に−２から＋３の位置の画素が読み出される。したがって、参照画像の読み出し領域ＲＡのサイズは、ブロックＢＫのサイズより大きくなる。このように、参照画像の読み出し領域ＲＡは、動きベクトルＭＶの精度により、異なる。
【００３１】
例えば、パターンＭＰ１０では、動きベクトルＭＶが整数精度のとき、読み出し領域ＲＡのサイズは、１６×１６画素である。また、動きベクトルＭＶが１／２、１／４精度のとき、読み出し領域ＲＡのサイズは、２１×２１画素である。なお、動きベクトルＭＶが１／２、１／４精度のときでは、図５のブロックＢＫは、少数部分を切り下げた整数位置の画素の範囲を示している。
【００３２】
例えば、動きベクトルＭＶが１／２、１／４精度のときでは、読み出しの開始位置は、ブロックＢＫに対して、水平方向および垂直方向にそれぞれ−２（図５では、左側および上側がマイナス方向）の位置である。また、読み出しの終了位置は、ブロックＢＫに対して、水平方向および垂直方向にそれぞれ＋３の位置である。すなわち、動きベクトルＭＶが１／２、１／４精度のときでは、読み出し領域ＲＡのサイズは、ブロックＢＫに対して、水平方向および垂直方向にそれぞれ５画素拡大する。
【００３３】
パターンＭＰ２０では、動きベクトルＭＶが整数精度のとき、読み出し領域ＲＡのサイズは、１６×８画素である。また、動きベクトルＭＶが１／２、１／４精度のとき、読み出し領域ＲＡのサイズは、２１×１３画素である。パターンＭＰ３０では、動きベクトルＭＶが整数精度のとき、読み出し領域ＲＡのサイズは、８×１６画素である。また、動きベクトルＭＶが１／２、１／４精度のとき、読み出し領域ＲＡのサイズは、１３×２１画素である。
【００３４】
パターンＭＰ４０、ＳＰ１０では、動きベクトルＭＶが整数精度のとき、読み出し領域ＲＡのサイズは、８×８画素である。また、動きベクトルＭＶが１／２、１／４精度のとき、読み出し領域ＲＡのサイズは、１３×１３画素である。パターンＭＰ４０、ＳＰ２０では、動きベクトルＭＶが整数精度のとき、読み出し領域ＲＡのサイズは、８×４画素である。また、動きベクトルＭＶが１／２、１／４精度のとき、読み出し領域ＲＡのサイズは、１３×９画素である。
【００３５】
パターンＭＰ４０、ＳＰ３０では、動きベクトルＭＶが整数精度のとき、読み出し領域ＲＡのサイズは、４×８画素である。また、動きベクトルＭＶが１／２、１／４精度のとき、読み出し領域ＲＡのサイズは、９×１３画素である。パターンＭＰ４０、ＳＰ４０では、動きベクトルＭＶが整数精度のとき、読み出し領域ＲＡのサイズは、４×４画素である。また、動きベクトルＭＶが１／２、１／４精度のとき、読み出し領域ＲＡのサイズは、９×９画素である。
【００３６】
図６は、各分割パターンの重み値の一例を示している。なお、図６は、動きベクトルＭＶが整数精度のときの各分割パターンの重み値の一例を示している。重み値は、例えば、単位画素群毎に与えられる。単位画素群は、例えば、マクロブロックＭＢやサブマクロブロックＳＭＢを分割したブロックの最小サイズ以下である。この実施形態では、重み値は、２×２画素の単位画素群毎に与えられる。なお、重み値は、例えば、４×４画素の単位画素群毎に与えられてもよいし、画素（１×１画素の単位画素群）毎に与えられてもよい。
【００３７】
なお、図６の各ケースＣ１−Ｃ７の下の括弧内の画素数は、読み出し領域ＲＡのサイズを示している。図６の備考欄の図形の破線は、単位画素群（２×２画素）の境界を示している。また、図６の備考欄の図形の太線で囲んだ領域ＷＲＡは、読み出し領域ＲＡを含む単位画素群を示している。以下、領域ＷＲＡを読み出し領域ＷＲＡとも称する。また、領域ＷＯＡは、領域ＷＲＡの外側の単位画素群のうち、領域ＷＲＡの下側に隣接する単位画素群および領域ＷＲＡの右側に隣接する単位画素群を示している。
【００３８】
ケースＣ１は、マクロブロックＭＢのパターンがパターンＭＰ１０で、かつ、動きベクトルＭＶが整数精度のときの重み値を示している。すなわち、ケースＣ１は、読み出し領域ＲＡのサイズが１６×１６画素のときの重み値を示している。例えば、ケースＣ１では、読み出し領域ＷＲＡの重み値は、“３”であり、読み出し領域ＷＲＡの外側の領域ＷＯＡの重み値は、“１”である。
【００３９】
ケースＣ２は、マクロブロックＭＢのパターンがパターンＭＰ２０で、かつ、動きベクトルＭＶが整数精度のときの重み値を示している。すなわち、ケースＣ２は、読み出し領域ＲＡのサイズが１６×８画素のときの重み値を示している。例えば、ケースＣ２では、読み出し領域ＷＲＡの重み値は、“４”であり、読み出し領域ＷＲＡの外側の領域ＷＯＡの重み値は、“２”である。
【００４０】
ケースＣ３は、マクロブロックＭＢのパターンがパターンＭＰ３０で、かつ、動きベクトルＭＶが整数精度のときの重み値を示している。すなわち、ケースＣ３は、読み出し領域ＲＡのサイズが８×１６画素のときの重み値を示している。例えば、ケースＣ３では、読み出し領域ＷＲＡの重み値は、“４”であり、読み出し領域ＷＲＡの外側の領域ＷＯＡの重み値は、“２”である。
【００４１】
ケースＣ４−Ｃ７は、マクロブロックＭＢのパターンがパターンＭＰ４０ときの重み値を示している。例えば、ケースＣ４は、サブマクロブロックＳＭＢのパターンがパターンＳＰ１０で、かつ、動きベクトルＭＶが整数精度のときの重み値を示している。すなわち、ケースＣ４は、読み出し領域ＲＡのサイズが８×８画素のときの重み値を示している。例えば、ケースＣ４では、読み出し領域ＷＲＡの重み値は、“８”であり、読み出し領域ＷＲＡの外側の領域ＷＯＡの重み値は、“４”である。
【００４２】
ケースＣ５は、サブマクロブロックＳＭＢのパターンがパターンＳＰ２０で、かつ、動きベクトルＭＶが整数精度のときの重み値を示している。すなわち、ケースＣ５は、読み出し領域ＲＡのサイズが８×４画素のときの重み値を示している。例えば、ケースＣ５では、読み出し領域ＷＲＡの重み値は、“１６”であり、読み出し領域ＷＲＡの外側の領域ＷＯＡの重み値は、“８”である。
【００４３】
ケースＣ６は、サブマクロブロックＳＭＢのパターンがパターンＳＰ３０で、かつ、動きベクトルＭＶが整数精度のときの重み値を示している。すなわち、ケースＣ６は、読み出し領域ＲＡのサイズが４×８画素のときの重み値を示している。例えば、ケースＣ６では、読み出し領域ＷＲＡの重み値は、“１６”であり、読み出し領域ＷＲＡの外側の領域ＷＯＡの重み値は、“８”である。
【００４４】
ケースＣ７は、サブマクロブロックＳＭＢのパターンがパターンＳＰ４０で、かつ、動きベクトルＭＶが整数精度のときの重み値を示している。すなわち、ケースＣ７は、読み出し領域ＲＡのサイズが４×４画素のときの重み値を示している。例えば、ケースＣ７では、読み出し領域ＷＲＡの重み値は、“３２”であり、読み出し領域ＷＲＡの外側の領域ＷＯＡの重み値は、“１６”である。
【００４５】
図７は、各分割パターンの重み値の別の例を示している。なお、図７は、動きベクトルＭＶが１／２、１／４精度のときの各分割パターンの重み値の一例を示している。また、図７の各ケースＣ８−Ｃ１４の下の括弧内の画素数は、読み出し領域ＲＡのサイズを示している。重み値は、例えば、２×２画素の単位画素群毎に与えられる。図７の備考欄の図形の破線は、単位画素群（２×２画素）の境界を示している。また、図７の備考欄の図形の太線で囲んだ領域ＷＲＡ（読み出し領域ＷＲＡ）は、読み出し領域ＲＡを含む単位画素群を示している。図７では、読み出し領域ＷＲＡは、読み出し領域ＲＡに対して、右側および下側にそれぞれ１画素拡大している。また、領域ＷＯＡは、領域ＷＲＡの外側の単位画素群のうち、領域ＷＲＡの下側に隣接する単位画素群および領域ＷＲＡの右側に隣接する単位画素群を示している。
【００４６】
ケースＣ８は、マクロブロックＭＢのパターンがパターンＭＰ１０で、かつ、動きベクトルＭＶが１／２、１／４精度のときの重み値を示している。すなわち、ケースＣ８は、読み出し領域ＲＡのサイズが２１×２１画素のときの重み値を示している。例えば、ケースＣ８では、読み出し領域ＷＲＡの重み値は、“２”であり、読み出し領域ＷＲＡの外側の領域ＷＯＡの重み値は、“１”である。
【００４７】
ケースＣ９は、マクロブロックＭＢのパターンがパターンＭＰ２０で、かつ、動きベクトルＭＶが１／２、１／４精度のときの重み値を示している。すなわち、ケースＣ９は、読み出し領域ＲＡのサイズが２１×１３画素のときの重み値を示している。例えば、ケースＣ９では、読み出し領域ＷＲＡの重み値は、“３”であり、読み出し領域ＷＲＡの外側の領域ＷＯＡの重み値は、“１”である。
【００４８】
ケースＣ１０は、マクロブロックＭＢのパターンがパターンＭＰ３０で、かつ、動きベクトルＭＶが１／２、１／４精度のときの重み値を示している。すなわち、ケースＣ１０は、読み出し領域ＲＡのサイズが１３×２１画素のときの重み値を示している。例えば、ケースＣ１０では、読み出し領域ＷＲＡの重み値は、“３”であり、読み出し領域ＷＲＡの外側の領域ＷＯＡの重み値は、“１”である。
【００４９】
ケースＣ１１−Ｃ１４は、マクロブロックＭＢのパターンがパターンＭＰ４０ときの重み値を示している。例えば、ケースＣ１１は、サブマクロブロックＳＭＢのパターンがパターンＳＰ１０で、かつ、動きベクトルＭＶが１／２、１／４精度のときの重み値を示している。すなわち、ケースＣ１１は、読み出し領域ＲＡのサイズが１３×１３画素のときの重み値を示している。例えば、ケースＣ１１では、読み出し領域ＷＲＡの重み値は、“４”であり、読み出し領域ＷＲＡの外側の領域ＷＯＡの重み値は、“２”である。
【００５０】
ケースＣ１２は、サブマクロブロックＳＭＢのパターンがパターンＳＰ２０で、かつ、動きベクトルＭＶが１／２、１／４精度のときの重み値を示している。すなわち、ケースＣ１２は、読み出し領域ＲＡのサイズが１３×９画素のときの重み値を示している。例えば、ケースＣ１２では、読み出し領域ＷＲＡの重み値は、“６”であり、読み出し領域ＷＲＡの外側の領域ＷＯＡの重み値は、“３”である。
【００５１】
ケースＣ１３は、サブマクロブロックＳＭＢのパターンがパターンＳＰ３０で、かつ、動きベクトルＭＶが１／２、１／４精度のときの重み値を示している。すなわち、ケースＣ１３は、読み出し領域ＲＡのサイズが９×１３画素のときの重み値を示している。例えば、ケースＣ１３では、読み出し領域ＷＲＡの重み値は、“６”であり、読み出し領域ＷＲＡの外側の領域ＷＯＡの重み値は、“３”である。
【００５２】
ケースＣ１４は、サブマクロブロックＳＭＢのパターンがパターンＳＰ４０で、かつ、動きベクトルＭＶが１／２、１／４精度のときの重み値を示している。すなわち、ケースＣ１４は、読み出し領域ＲＡのサイズが９×９画素のときの重み値を示している。例えば、ケースＣ１４では、読み出し領域ＷＲＡの重み値は、“８”であり、読み出し領域ＷＲＡの外側の領域ＷＯＡの重み値は、“４”である。
【００５３】
図８は、図６および図７に示した重み値の一覧を示している。なお、図８の単位画素群（２×２画素）の数は、図６および図７に示した読み出し領域ＷＲＡ内の単位画素群の数を示している。重み値は、例えば、読み出し領域ＲＡのサイズが小さくなるにつれて大きい値に設定される。例えば、読み出し領域ＲＡのサイズに反比例した値が重み値として与えられる。なお、この実施形態では、１から３２までの精度で重み値を振り分けている。このため、読み出し領域ＲＡのサイズが異なるときにも、同じ値の重み値が与えられているケースが存在する（例えば、ケースＣ１とケースＣ９、Ｃ１０）。
【００５４】
また、読み出し領域ＷＲＡの外側の領域ＷＯＡの重み値は、読み出し領域ＷＲＡの重み値より小さい値（例えば、読み出し領域ＷＲＡの重み値の約半分の値）に設定される。このように、この実施形態では、重み値は、読み出し領域ＷＲＡを単位画素群分だけ外側に拡大した領域ＷＯＡまで設定されている。
【００５５】
なお、各ケースＣ１−Ｃ１４の重み値は、この例に限定されない。例えば、重み値は、１から６４までの精度で振り分けられてもよい。すなわち、重み値は、１から３２までの精度以外の精度で振り分けられてもよい。また、重み値を領域ＷＯＡに与えなくてもよいし、読み出し領域ＷＲＡと同じ値の重み値を領域ＷＯＡに与えてもよい。あるいは、読み出し領域ＷＲＡの長辺に隣接する領域ＷＯＡと読み出し領域ＷＲＡの短辺に隣接する領域ＷＯＡとに、異なる重み値を与えてもよい。また、重み値が与えられる領域ＷＯＡは、読み出し領域ＷＲＡに隣接する外周の単位画素群を含んでもよい。すなわち、読み出し領域ＷＲＡに隣接する全ての単位画素群に重み値が与えられてもよい。
【００５６】
ここで、図１に示した判定部１２は、各ケースＣ１−Ｃ１４の重み値を記憶した重み付けテーブル（図８の重み値の一覧相当）を有してもよい。すなわち、判定部１２は、読み出し領域ＲＡのサイズに応じた重み値が記憶された重み付けテーブルを有してもよい。あるいは、判定部１２の動作を制御するプログラム内に各ケースの重み値が組み込まれていてもよい。
【００５７】
図９は、参照画像の読み出し領域ＲＡと累積テーブルＣＴＢＬとの関係の一例を示している。なお、図９では、図を見やすくするために、図６−図８で説明した領域ＷＲＡ、ＷＯＡの記載を省略している。図９の例では、マクロブロックＭＢ１、ＭＢ２のパターンは、パターンＭＰ４０であり、サブマクロブロックＳＭＢのパターンは、パターンＳＰ１０である。また、各ブロックＢＫ０−ＢＫ７の動きベクトルＭＶは、整数精度である。
【００５８】
フレームＦＲＭ３のマクロブロックＭＢ１、ＭＢ２の各ブロックＢＫ０−ＢＫ７の参照画像は、例えば、フレームＦＲＭ１に示した各ブロックＢＫ０−ＢＫ７の画像から生成される。フレームＦＲＭ１の太線で囲んだ領域は、フレームＦＲＭ３のマクロブロックＭＢ１、ＭＢ２に対応する位置を示している。また、累積テーブルＣＴＢＬの太線で囲んだ領域は、フレームＦＲＭ３のマクロブロックＭＢ１、ＭＢ２に対応する位置を示している。
【００５９】
図９の累積テーブルＣＴＢＬの破線は、単位画素群（２×２画素）の境界を示している。図６−図８で説明したように、重み値は、単位画素群毎に与えられる。すなわち、累積テーブルＣＴＢＬは、読み出し領域ＲＡのサイズに応じた重み値を、読み出し領域ＲＡに対応する位置に所定数の画素単位で格納する。なお、累積テーブルＣＴＢＬは、判定部１２内に設けられてもよいし、判定部１２の外部に設けられてもよい。
【００６０】
累積テーブルＣＴＢＬの各ブロックＢＫ０−ＢＫ７に対応する位置の重み値は、各ブロックＢＫ０−ＢＫ７の重み値に応じて、更新される。例えば、累積テーブルＣＴＢＬのブロックＢＫ０、ＢＫ３が互いに重なる領域の重み値は、“１６”に更新される。なお、ブロックＢＫ０、ＢＫ３内のその他の領域の重み値は、“８”に更新される。
【００６１】
ここで、判定部１２は、累積テーブルＣＴＢＬの更新された重み値に基づいて、評価値を算出する。例えば、判定部１２は、読み出し領域ＲＡが互いに重なる領域内の重み値を加算して、評価値を算出する。この算出方法では、例えば、ブロックＢＫ０、ＢＫ３を統合して読み出すか否かの評価値は、ブロックＢＫ０、ＢＫ３が互いに重なる領域の単位画素群の数“６”と重み値“１６”とを乗算することにより算出される。
【００６２】
この例では、ブロックＢＫ０、ＢＫ３を統合して読み出すか否かの評価値は、“６×１６”より、“９６”である。そして、判定部１２は、例えば、評価値が予め設定された閾値以上のとき、参照画像の読み出し領域ＲＡを統合して読み出す。例えば、閾値が“３３”のとき、ブロックＢＫ０、ＢＫ３は、統合して読み出される。また、例えば、ブロックＢＫ１、ＢＫ６も統合して読み出され、ブロックＢＫ４、ＢＫ７も統合して読み出される。なお、ブロックＢＫ２、ＢＫ５は、個別に読み出される。
【００６３】
図１０は、図１に示したフレーム間予測処理装置１０の動作の一例を示している。図１０の動作は、ハードウエアのみで実現されてもよく、ハードウエハをソフトウエアにより制御することにより実現されてもよい。例えば、処理Ｓ１００−Ｓ１７０は、図１に示した判定部１２により実施される。また、例えば、処理Ｓ１８０−Ｓ２００は、読み出し部１４により実施される。図１０の動作は、例えば、２つのマクロブロックＭＢの組毎に実施される。例えば、２つのマクロブロックＭＢの組（統合判定対象の２つのマクロブロックＭＢ）は、同一のマクロブロックラインに配置され、互いに隣接している。
【００６４】
処理Ｓ１００では、判定部１２は、累積テーブルＣＴＢＬを初期化する。処理Ｓ１１０では、判定部１２は、２つのマクロブロックＭＢの全てのブロックＢＫ（例えば、図９のマクロブロックＭＢ１、ＭＢ２のブロックＢＫ０−ＢＫ７）の動きベクトルＭＶを生成する。なお、動きベクトルＭＶの生成は、例えば、動画像復号化装置では、符号化された動きベクトルＭＶの復号に対応する。また、例えば、動画像復号化装置では、動きベクトルＭＶの生成は、動きベクトルＭＶの探索に対応する。
【００６５】
処理Ｓ１２０では、判定部１２は、１個目のマクロブロックＭＢの各ブロックＢＫ（例えば、図９のマクロブロックＭＢ１のブロックＢＫ０−ＢＫ３）の読み出し領域ＲＡを算出する。例えば、動きベクトルＭＶが整数精度のときでは、読み出し領域ＲＡのサイズは、ブロックＢＫのサイズと同じである。また、例えば、動きベクトルＭＶが１／２、１／４精度のときでは、読み出し領域ＲＡのサイズは、ブロックＢＫに対して、水平方向および垂直方向にそれぞれ５画素拡大する。
【００６６】
処理Ｓ１３０では、判定部１２は、処理Ｓ１２０で算出した読み出し領域ＲＡに対応する位置の累積テーブルＣＴＢＬの重み値を更新する。例えば、判定部１２は、各ケースの重み値を記憶した重み付けテーブル（図８の重み値の一覧相当）を参照し、各読み出し領域ＲＡの重み値を算出する。なお、判定部１２は、各ケースの重み値が組み込まれたプログラム等により、各読み出し領域ＲＡの重み値を算出してもよい。また、処理Ｓ１３０では、累積テーブルＣＴＢＬの重み値は、累積される。例えば、複数の読み出し領域ＲＡが互いに重なる位置の累積テーブルＣＴＢＬの重み値は、互いに重なる読み出し領域ＲＡのそれぞれの重み値を加算することにより、更新される。
【００６７】
処理Ｓ１４０では、判定部１２は、２個目のマクロブロックＭＢの各ブロックＢＫ（例えば、図９のマクロブロックＭＢ２のブロックＢＫ４−ＢＫ７）の読み出し領域ＲＡを算出する。処理Ｓ１４０の動作は、読み出し領域ＲＡを算出する対象のマクロブロックＭＢを除いて、処理Ｓ１２０の動作と同じである。なお、処理Ｓ１４０の動作は、処理Ｓ１３０の前に実施されてもよい。
【００６８】
処理Ｓ１５０では、判定部１２は、処理Ｓ１４０で算出した読み出し領域ＲＡに対応する位置の累積テーブルＣＴＢＬの重み値を更新する。なお、処理Ｓ１５０の動作は、累積テーブルＣＴＢＬの更新に用いる読み出し領域ＲＡを除いて、処理Ｓ１３０の動作と同じである。
【００６９】
処理Ｓ１６０では、判定部１２は、累積テーブルＣＴＢＬに格納されている重み値に基づいて、評価値を算出する。例えば、判定部１２は、読み出し領域ＲＡが互いに重なる領域内の累積テーブルＣＴＢＬの重み値を加算し、評価値を算出する。
【００７０】
処理Ｓ１７０では、判定部１２は、予め設定された閾値（図１１の例では、“３３”）以上の評価値が存在するか否かを判定する。閾値以上の評価値が存在するとき（処理Ｓ１７０のＹｅｓ）、フレーム間予測処理装置１０の動作は、処理Ｓ１８０に移る。また、閾値以上の評価値が存在しないとき（処理Ｓ１７０のＮｏ）、フレーム間予測処理装置１０の動作は、処理Ｓ１９０に移る。
【００７１】
処理Ｓ１８０では、読み出し部１４は、閾値以上の評価値が算出された読み出し領域ＲＡの画像を統合して読み出す。これにより、この実施形態では、参照画像の読み出し回数を低減できる。なお、統合対象以外の読み出し領域ＲＡの画像は、個別に読み出される。例えば、読み出し部１４は、評価値が閾値より小さい読み出し領域ＲＡの画像を、個別に読み出す。
【００７２】
処理Ｓ１９０では、読み出し部１４は、全てのブロックＢＫ（例えば、図９のマクロブロックＭＢ１、ＭＢ２のブロックＢＫ０−ＢＫ７）の読み出し領域ＲＡの画像を、個別に読み出す。処理Ｓ１８０、Ｓ１９０により読み出された画像は、例えば、フレーム間予測処理装置１０内のメモリ等に一時的に記憶される。
【００７３】
処理Ｓ２００では、読み出し部１４は、処理Ｓ１８０、Ｓ１９０により読み出された画像を用いて、２つのマクロブロックＭＢの参照画像を生成する。例えば、２つのマクロブロックＭＢの参照画像の生成は、図２に示した順序に基づいて実施される。なお、２つのマクロブロックＭＢの参照画像の生成は、読み出し部１４以外のモジュールにより実施されてもよい。
【００７４】
ここで、例えば、判定部１２は、処理Ｓ１００−Ｓ１７０の動作を、統合判定対象のマクロブロックＭＢ（例えば、図９のマクロブロックＭＢ１、ＭＢ２）の前に処理されるマクロブロックＭＢの参照画像の読み出し処理中に、実施する。これにより、この実施形態では、統合判定を効率よく実施できる。また、例えば、処理Ｓ１８０、Ｓ１９０は、フレーム間予測処理装置１０内のメモリ等に空きが発生したときに、実施される。
【００７５】
図１０の動作では、２つのマクロブロックＭＢの組毎に統合判定が実施されるため、１フレームＦＲＭ当たりの統合判定の回数は、１フレームＦＲＭのマクロブロックＭＢの数の約半分である。したがって、この実施形態では、マクロブロックＭＢ毎に統合判定を実施するときに比べて、統合判定の回数を低減できる。
【００７６】
なお、フレーム間予測処理装置１０の動作は、この例に限定されない。例えば、読み出し部１４は、閾値以上の評価値が存在しないとき（処理Ｓ１７０のＮｏ）、１個目のマクロブロックＭＢの全てのブロックＢＫ（例えば、図９のマクロブロックＭＢ１のブロックＢＫ０−ＢＫ４）の読み出し領域ＲＡの画像のみを、個別に読み出してもよい。なお、２個目のマクロブロックＭＢ（例えば、図９のマクロブロックＭＢ２）の参照画像は、次に処理されるマクロブロックＭＢの参照画像と統合して読み出し可能か否か判定される。これにより、マクロブロックＭＢの参照画像は、先に処理されるマクロブロックＭＢ等の参照画像と統合できないときにも、次に処理されるマクロブロックＭＢの参照画像と統合できるとき、統合して読み出される。この結果、参照画像の読み出し領域の統合の効率は、向上する。
【００７７】
また、例えば、処理Ｓ１４０の動作を処理Ｓ１３０の前に実施するとき、処理Ｓ１３０、Ｓ１５０−Ｓ１７０に対応する処理は、参照先のフレームＦＲＭ毎に実施されてもよい。なお、累積テーブルＣＴＢＬは、各フレームＦＲＭの処理（処理Ｓ１３０、Ｓ１５０−Ｓ１７０に対応する処理）が実施される前に初期化される。また、各フレームＦＲＭの処理Ｓ１７０の判定結果は、例えば、フレーム間予測処理装置１０内のバッファ等に一時的に保持される。これにより、累積テーブルＣＴＢＬのサイズが増加することを抑制できる。
【００７８】
また、フレームＦＲＭの先頭のマクロブロックＭＢの処理では、統合判定が実施されることなく、参照画像が個別に読み出されてもよい。あるいは、フレームＦＲＭの先頭のマクロブロックＭＢの処理では、処理Ｓ１４０、Ｓ１５０の動作が省かれてもよい。そして、フレームＦＲＭの先頭のマクロブロックＭＢの処理では、例えば、処理Ｓ１１０において、フレームＦＲＭの先頭のマクロブロックＭＢの全てのブロックＢＫの動きベクトルＭＶのみが生成されてもよい。
【００７９】
なお、マクロブロックラインの右端のマクロブロックＭＢの処理では、同一のマクロブロックライン内のマクロブロックＭＢとの組み合わせで統合判定が実施されないとき、統合判定は、実施されなくてもよい。あるいは、マクロブロックラインの右端のマクロブロックＭＢの処理では、処理Ｓ１４０、Ｓ１５０の動作は、省かれてもよい。
【００８０】
図１１は、読み出し領域ＲＡを統合するときの一例を示している。なお、図１１は、４×４画素の読み出し領域ＲＡ１０と１６×１６画素の読み出し領域ＲＡ２０とが統合されるときの一例を示している。図１１の例では、読み出し領域ＲＡ１０の全体が、読み出し領域ＲＡ２０に重なっている。なお、図中の細い破線は、２×２画素の単位画素群の境界を示している。太い破線で囲んだ領域は、読み出し領域ＲＡ１０、ＲＡ２０、ＲＡ３０を示している。ここで、読み出し領域ＲＡ３０は、読み出し領域ＲＡ１０、ＲＡ２０を統合した読み出し領域を示している。また、図中の丸印は、読み出し領域ＷＲＡ１０、ＷＲＡ２０のそれぞれの重み値が加算されることを示している。図中の三角印は、２つの読み出し領域ＷＲＡ（ＷＲＡ１０、ＷＲＡ２０）の一方の読み出し領域ＷＲＡの外側の領域ＷＯＡの重み値と他方の読み出し領域ＷＲＡの重み値とが加算されることを示している。
【００８１】
読み出し領域ＷＲＡ１０の単独の重み値および読み出し領域ＷＲＡ１０の外側の領域ＷＯＡ１０の単独の重み値は、図８のケースＣ７より、それぞれ“３２”および“１６”である。また、読み出し領域ＷＲＡ２０の単独の重み値および読み出し領域ＷＲＡ２０の外側の領域ＷＯＡ２０の単独の重み値は、図８のケースＣ１より、それぞれ“３”および“１”である。したがって、読み出し領域ＷＲＡ１０、ＷＲＡ２０が互いに重なる領域の累積テーブルＣＴＢＬの重み値（図中の丸印）は、“３２＋３”より、“３５”である。また、読み出し領域ＷＲＡ１０の外側の領域ＷＯＡ１０と読み出し領域ＷＲＡ２０とが重なる領域の累積テーブルＣＴＢＬの重み値（図中の三角印）は、“１６＋３”より、“１９”である。
【００８２】
判定部１２は、予め設定された閾値と評価値とを比較することにより、読み出し領域ＲＡを統合するか否かを判定する。図１１の例では、閾値は、“３３”である。また、評価値は、例えば、複数の読み出し領域ＷＲＡが互いに重なる領域の単位画素群の重み値の合計値である。あるいは、評価値は、領域ＷＲＡ、ＷＯＡが互いに重なる領域の単位画素群の重み値の合計値である。なお、判定部１２は、複数の領域ＷＯＡが互いに重なる領域の単位画素群の重み値の合計値を評価値としてもよい。複数の読み出し領域ＷＲＡが互いに重なる領域等は、例えば、読み出しフラグ等を用いることにより、識別できる。
【００８３】
図１１の例では、読み出し領域ＷＲＡ１０、ＷＲＡ２０が互いに重なる領域の単位画素群の重み値の合計値は、“３５×４”より、“１４０”である。したがって、評価値は、“１４０”である。判定部１２は、評価値（“１４０”）が閾値（“３３”）以上であるため、読み出し領域ＷＲＡ１０、ＷＲＡ２０を統合して読み出すと判定する。
【００８４】
読み出し領域ＲＡ１０、ＲＡ２０を統合した読み出し領域ＲＡ３０は、読み出し領域ＲＡ１０の全体が読み出し領域ＲＡ２０に重なっているため、読み出し領域ＲＡ２０と同じである。したがって、読み出し部１４は、参照先のフレームＦＲＭの読み出し領域ＲＡ３０（ＲＡ２０）の画像を、メモリ２０から読み出す。このように、この実施形態では、１回の読み出し動作で、読み出し領域ＲＡ１０、ＲＡ２０の画像を読み出すことができる。この結果、この実施形態では、参照画像の読み出し回数を低減できる。なお、読み出された画像（読み出し領域ＲＡ２０の画像）は、例えば、フレーム間予測処理装置１０内のメモリ等に一時的に記憶される。
【００８５】
図１２は、読み出し領域ＲＡを統合するときの別の例を示している。なお、図１２は、４×４画素の読み出し領域ＲＡ１０と１６×１６画素の読み出し領域ＲＡ２０とが統合されるときの一例を示している。図１２の例では、読み出し領域ＲＡ１０は、読み出し領域ＲＡ２０に隣接している。なお、図中の細い破線および三角印の意味は、図１１と同じである。図中の太い破線で囲んだ領域は、読み出し領域ＲＡ１０、ＲＡ２０を示している。また、図中の星印は、読み出し領域ＷＲＡ１０の外側の領域ＷＯＡ１０の重み値と読み出し領域ＷＲＡ２０の外側の領域ＷＯＡ２０の重み値とが加算されることを示している。なお、閾値は、図１１と同じである。
【００８６】
図１２の例では、読み出し領域ＷＲＡ１０、ＷＲＡ２０が互いに重なる領域は、存在しない。したがって、判定部１２は、例えば、領域ＷＲＡ、ＷＯＡが互いに重なる領域の単位画素群の重み値の合計値を、評価値として算出する。読み出し領域ＷＲＡ１０と読み出し領域ＷＲＡ２０の外側の領域ＷＯＡ２０とが重なる領域の累積テーブルＣＴＢＬの重み値（図中の三角印）は、“３２＋１”より、“３３”である。なお、読み出し領域ＷＲＡ１０の外側の領域ＷＯＡ１０と読み出し領域ＷＲＡ２０の外側の領域ＷＯＡ２０とが重なる領域の累積テーブルＣＴＢＬの重み値（図中の星印）は、“１６＋１”より、“１７”である。
【００８７】
したがって、領域ＷＲＡ１０、ＷＯＡ２０が互いに重なる領域の単位画素群の重み値の合計値は、“３３×１”より、“３３”である。すなわち、評価値は、“３３”である。判定部１２は、評価値（“３３”）が閾値（“３３”）以上であるため、読み出し領域ＷＲＡ１０、ＷＲＡ２０を統合して読み出すと判定する。
【００８８】
この実施形態では、読み出し領域ＷＲＡの外側の領域ＷＯＡにも重み値を与えているため、読み出し領域ＷＲＡ１０、ＷＲＡ２０が互いに重なっていないときにも、読み出し領域ＷＲＡ１０、ＷＲＡ２０の統合を効率よく実施できる。また、この実施形態では、重み値は、読み出し領域ＲＡのサイズが小さくなるにつれて大きい値に設定される。これにより、この実施形態では、サイズが小さい読み出し領域ＲＡは、近くの読み出し領域ＲＡと統合されやすくなる。
【００８９】
読み出し領域ＲＡ１０、ＲＡ２０を統合した読み出し領域ＲＡ３０は、例えば、読み出し領域ＲＡ１０、ＲＡ２０を含む最小の矩形領域である。例えば、読み出し部１４は、参照先のフレームＦＲＭの読み出し領域ＲＡ３０の画像を、メモリ２０から読み出す。このように、この実施形態では、１回の読み出し動作で、読み出し領域ＲＡ１０、ＲＡ２０の画像を読み出すことができる。この結果、この実施形態では、参照画像の読み出し回数を低減できる。なお、読み出された画像（読み出し領域ＲＡ３０の画像）は、例えば、フレーム間予測処理装置１０内のメモリ等に一時的に記憶される。
【００９０】
図１３は、読み出し領域ＲＡを統合しないときの一例を示している。なお、図１３の例では、２１×２１画素の読み出し領域ＲＡ１０の一部は、２１×２１画素の読み出し領域ＲＡ２０と重なっている。図中の細い破線、丸印および三角印の意味は、図１１と同じである。また、図中の太い破線で囲んだ領域および星印の意味は、図１２と同じである。なお、閾値は、図１１と同じである。
【００９１】
読み出し領域ＷＲＡ１０の単独の重み値および読み出し領域ＷＲＡ１０の外側の領域ＷＯＡ１０の単独の重み値は、図８のケースＣ８より、それぞれ“２”および“１”である。また、読み出し領域ＷＲＡ２０の単独の重み値および読み出し領域ＷＲＡ２０の外側の領域ＷＯＡ２０の単独の重み値は、図８のケースＣ８より、それぞれ“２”および“１”である。
【００９２】
したがって、読み出し領域ＷＲＡ１０、ＷＲＡ２０が互いに重なる領域の累積テーブルＣＴＢＬの重み値（図中の丸印）は、“２＋２”より、“４”である。また、２つの読み出し領域ＷＲＡ（ＷＲＡ１０、ＷＲＡ２０）の一方の読み出し領域ＷＲＡの外側の領域ＷＯＡと他方の読み出し領域ＷＲＡとが重なる領域の累積テーブルＣＴＢＬの重み値（図中の三角印）は、“１＋２”より、“３”である。なお、読み出し領域ＷＲＡ１０の外側の領域ＷＯＡ１０と読み出し領域ＷＲＡ２０の外側の領域ＷＯＡ２０とが重なる領域の累積テーブルＣＴＢＬの重み値（図中の星印）は、“１＋１”より、“２”である。
【００９３】
読み出し領域ＷＲＡ１０、ＷＲＡ２０が互いに重なる領域の単位画素群の重み値の合計値は、“４×８”より、“３２”である。したがって、評価値は、“３２”である。判定部１２は、評価値（“３２”）が閾値（“３３”）より小さいため、読み出し領域ＷＲＡ１０、ＷＲＡ２０を個別に読み出すと判定する。例えば、読み出し部１４は、参照先のフレームＦＲＭの読み出し領域ＲＡ１０、ＲＡ２０の画像を、メモリ２０から個別に読み出す。なお、読み出された画像（読み出し領域ＲＡ１０、ＲＡ２０の画像）は、例えば、フレーム間予測処理装置１０内のメモリ等に一時的に記憶される。
【００９４】
ここで、図１３の例では、読み出し領域ＲＡ１０、ＲＡ２０を統合して読み出したとき、参照画像の生成に使用されない無駄な読み出し領域が増加するため、メモリ２０へのアクセス期間が増加する。すなわち、図１３の例では、読み出し領域ＲＡ１０、ＲＡ２０を統合して読み出すと、メモリ２０を使用するシステムの性能が低下する。したがって、図１３の例では、読み出し領域ＲＡ１０、ＲＡ２０を個別に読み出すことにより、メモリ２０を使用するシステムの性能低下は、抑制される。
【００９５】
なお、この実施形態では、重み値は、読み出し領域ＲＡのサイズが小さくなるにつれて大きい値に設定される。すなわち、重み値は、読み出し領域ＲＡのサイズが大きくなるにつれて小さい値に設定される。これにより、読み出し領域ＲＡ１０、ＲＡ２０が互いに重なる領域の割合が小さいときに、読み出し領域ＲＡが統合されることを防止できる。例えば、判定部１２は、読み出し領域ＷＲＡ１０、ＷＲＡ２０を統合することにより無駄な読み出し領域が増加するとき、読み出し領域ＷＲＡ１０、ＷＲＡ２０を個別に読み出すと判定できる。この結果、この実施形態では、参照画像を読み出すときの無駄な読み出し領域の増加を抑制できる。
【００９６】
図１４は、読み出し領域ＲＡを統合するときの別の例を示している。なお、図１４は、２１×２１画素の読み出し領域ＲＡ１０と２１×２１画素の読み出し領域ＲＡ２０とが統合されるときの一例を示している。図１４の例では、２１×２１画素の読み出し領域ＲＡ１０の一部は、２１×２１画素の読み出し領域ＲＡ２０と重なっている。図中の細い破線、太い破線で囲んだ領域、丸印、三角印および星印の意味は、図１３と同じである。なお、閾値は、図１１と同じである。また、図１４の丸印、三角印および星印の単位画素群のそれぞれの重み値は、図１３の丸印、三角印および星印の単位画素群のそれぞれの重み値（“４”、“３”、“２”）と同じである。
【００９７】
読み出し領域ＷＲＡ１０、ＷＲＡ２０が互いに重なる領域の単位画素群の重み値の合計値は、“４×３０”より、“１２０”である。したがって、評価値は、“１２０”である。判定部１２は、評価値（“１２０”）が閾値（“３３”）以上であるため、読み出し領域ＷＲＡ１０、ＷＲＡ２０を統合して読み出すと判定する。このように、判定部１２は、読み出し領域ＲＡ１０、ＲＡ２０が互いに重なる領域の割合が大きいとき、読み出し領域ＷＲＡ１０、ＷＲＡ２０を統合して読み出すと判定する。
【００９８】
読み出し領域ＲＡ１０、ＲＡ２０を統合した読み出し領域ＲＡ３０は、例えば、読み出し領域ＲＡ１０、ＲＡ２０を含む最小の矩形領域である。例えば、読み出し部１４は、参照先のフレームＦＲＭの読み出し領域ＲＡ３０の画像を、メモリ２０から読み出す。このように、この実施形態では、１回の読み出し動作で、読み出し領域ＲＡ１０、ＲＡ２０の画像を読み出すことができる。この結果、この実施形態では、参照画像の読み出し回数を低減できる。なお、読み出された画像（読み出し領域ＲＡ３０の画像）は、例えば、フレーム間予測処理装置１０内のメモリ等に一時的に記憶される。
【００９９】
なお、評価値と閾値との比較方法は、図１１−図１４で説明した例に限定されない。例えば、判定部１２は、評価値の種類毎に異なる閾値を用いてもよい。ここで、評価値の種類の１つは、例えば、複数の読み出し領域ＷＲＡが互いに重なる領域の単位画素群の重み値の合計値である。また、評価値の種類の別の１つは、例えば、領域ＷＲＡ、ＷＯＡが互いに重なる領域の単位画素群の重み値の合計値である。あるいは、評価値の種類の別の１つは、例えば、複数の領域ＷＯＡが互いに重なる領域の単位画素群の重み値の合計値である。
【０１００】
また、例えば、判定部１２は、読み出し領域ＷＲＡを単位画素群分だけ外側に拡大した領域（以下、判定領域とも称する）の重なりに基づいて、評価値を算出してもよい。例えば、判定部１２は、複数の判定領域が互いに重なる領域の単位画素群の重み値の合計値を評価値としてもよい。この方法では、評価値の種類を区別する必要がないため、統合判定のための処理を簡易にできる。
【０１０１】
図１５は、図１に示したフレーム間予測処理装置１０が搭載される動画像復号化装置ＤＥＣの一例を示している。動画像復号化装置ＤＥＣは、例えば、ＭＰＥＧやＨ．２６４等に準拠した画像処理装置である。例えば、動画像復号化装置ＤＥＣは、メモリ２０、可変長復号処理部３０、逆量子化部４０、逆直交変換部５０、インター予測部６０、イントラ予測部７０、選択部８０、加算部９０およびフィルタ部１００を有している。フレーム間予測処理装置１０は、例えば、インター予測部６０内に設けられる。
【０１０２】
可変長復号処理部３０は、動画像符号化装置（例えば、図１６に示した動画像符号化装置ＥＮＣ）により符号化されたストリームデータＤＳＴＭを受ける。そして、可変長復号処理部３０は、ストリームデータＤＳＴＭに対する可変長復号処理を実施する。これにより、動きベクトルＭＶ等の復号処理に必要な各種情報が抽出される。逆量子化部４０は、可変長復号処理部３０から受けたデータを逆量子化する。逆直交変換部５０は、逆量子化部４０から受けたデータを逆直交変換する。
【０１０３】
インター予測部６０は、可変長復号処理部３０から受けた動きベクトルＭＶに基づいて、フレーム間予測を実施する。例えば、インター予測部６０のフレーム間予測処理装置１０は、参照画像ＲＩＮをメモリ２０から読み出す。この際、フレーム間予測処理装置１０は、図１−図１４で説明したように、参照画像ＲＩＮを統合して読み出すか否かを判定する。以下、インター予測部６０により生成された参照画像を、フレーム間予測画像とも称する。
【０１０４】
イントラ予測部７０は、例えば、可変長復号処理部３０からのデータと、加算部９０からのデータとを受ける。そして、イントラ予測部７０は、例えば、フレーム内予測を実施し、イントラ予測画像を生成する。
【０１０５】
選択部８０は、例えば、インター予測部６０の出力（フレーム間予測画像）およびイントラ予測部７０の出力（イントラ予測画像）のいずれかを選択する。加算部９０は、逆直交変換部５０から受けたデータと選択部８０により選択された予測画像とを加算して、ローカルデコード画像をフィルタ部１００に出力する。
【０１０６】
フィルタ部１００は、例えば、加算部９０から受けたローカルデコード画像に対して、デブロッキングフィルタ処理を実施する。例えば、フィルタ部１００によりデブロッキングフィルタ処理が実施された画像ＩＯＵＴは、動画像復号化装置ＤＥＣから出力されるとともに、メモリ２０に記憶される。これにより、復号済みの画像ＩＯＵＴがメモリ２０に記憶される。
【０１０７】
図１６は、図１に示したフレーム間予測処理装置１０が搭載される動画像符号化装置ＥＮＣの一例を示している。動画像符号化装置ＥＮＣは、例えば、ＭＰＥＧやＨ．２６４等に準拠した画像処理装置である。例えば、動画像符号化装置ＥＮＣは、メモリ２０、逆量子化部４２、逆直交変換部５０、インター予測部６２、イントラ予測部７２、選択部８２、加算部９０、フィルタ部１００、差分算出部１１０、直交変換部１２０、量子化部１３０および可変長符号化部１４０を有している。フレーム間予測処理装置１０は、例えば、インター予測部６２内に設けられる。
【０１０８】
インター予測部６２は、例えば、原画像ＤＩＮ（符号化対象のフレームの画像データＤＩＮ）受け、動きベクトルＭＶを生成する。例えば、インター予測部６２は、動きベクトル探索により、動きベクトルＭＶを生成する。また、インター予測部６２は、動きベクトルＭＶに基づいて動き補償処理を実施し、参照画像を生成する。この際、インター予測部６２のフレーム間予測処理装置１０は、図１−図１４で説明したように、参照画像ＲＩＮを統合して読み出すか否かを判定する。以下、インター予測部６２により生成された参照画像を、フレーム間予測画像とも称する。
【０１０９】
イントラ予測部７２は、例えば、原画像ＤＩＮと、加算部９０からのデータとを受ける。そして、イントラ予測部７２は、例えば、フレーム内予測を実施し、イントラ予測画像を生成する。選択部８２は、例えば、フレーム間予測画像およびイントラ予測画像の圧縮率等の情報に基づいて、インター予測部６２の出力（フレーム間予測画像）およびイントラ予測部７２の出力（イントラ予測画像）のいずれかを選択する。差分算出部１１０は、原画像ＤＩＮと選択部８２により選択された予測画像との差分を算出する。
【０１１０】
直交変換部１２０は、差分算出部１１０から受けたデータ（差分画像）を直交変換する。これにより、離散信号が周波数領域の信号に変換される。量子化部１３０は、直交変換部１２０から受けたデータを量子化する。量子化部１３０により量子化されたデータは、逆量子化部４２および可変長符号化部１４０に出力される。可変長符号化部１４０は、量子化部１３０から受けたデータを可変長符号化する。これにより、ストリームデータＤＳＴＭ（符号化された画像）が生成される。
【０１１１】
逆量子化部４２は、量子化部１３０から受けたデータを逆量子化する。逆直交変換部５０は、逆量子化部４２から受けたデータを逆直交変換する。加算部９０は、逆直交変換部５０から受けたデータと選択部８２により選択された予測画像とを加算して、ローカルデコード画像をフィルタ部１００に出力する。
【０１１２】
フィルタ部１００は、例えば、加算部９０から受けたローカルデコード画像に対して、デブロッキングフィルタ処理を実施する。フィルタ部１００によりデブロッキングフィルタ処理が実施された画像は、例えば、次のフレームを符号化する際に参照される。このため、フィルタ部１００によりデブロッキングフィルタ処理が実施された画像は、例えば、メモリ２０に記憶される。このように、復号済みの画像は、メモリ２０に記憶される。
【０１１３】
以上、この実施形態では、フレーム間予測処理装置１０は、読み出し領域ＲＡの画像を統合して読み出すか否かを、２つのマクロブロックＭＢ単位で判定する。これにより、この実施形態では、参照画像の読み出し回数を低減できる。また、この実施形態では、重み値は、読み出し領域ＲＡのサイズが小さくなるにつれて大きい値に設定される。すなわち、重み値は、読み出し領域ＲＡのサイズが大きくなるにつれて小さい値に設定される。これにより、この実施形態では、サイズが小さい読み出し領域ＲＡは、近くの読み出し領域ＲＡと統合されやすくなる。あるいは、この実施形態では、例えば、２つの読み出し領域ＲＡが互いに重なる領域の割合が小さいときに、読み出し領域ＲＡが統合されることを防止できる。この結果、この実施形態では、参照画像を読み出すときの無駄な読み出し領域ＲＡの増加を抑制しつつ、参照画像の読み出し回数を低減できる。
【０１１４】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずであり、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【０１１５】
１０‥フレーム間予測処理装置；１２‥判定部；１４‥読み出し部；２０‥メモリ；３０‥可変長復号処理部；４０、４２‥逆量子化部；５０‥逆直交変換部；６０、６２‥インター予測部；７０‥イントラ予測部；８０‥選択部；９０‥加算部；１００‥フィルタ部；１１０‥差分算出部；１２０‥直交変換部；１３０‥量子化部；１４０‥可変長符号化部；ＣＴＢＬ‥累積テーブル；ＤＥＣ‥動画像復号化装置；ＥＮＣ‥動画像符号化装置
【図１】
0005688585.tif 000002
【図２】
0005688585.tif 000003
【図３】
0005688585.tif 000004
【図４】
0005688585.tif 000005
【図５】
0005688585.tif 000006
【図６】
0005688585.tif 000007
【図７】
0005688585.tif 000008
【図８】
0005688585.tif 000009
【図９】
0005688585.tif 000010
【図１０】
0005688585.tif 000011
【図１１】
0005688585.tif 000012
【図１２】
0005688585.tif 000013
【図１３】
0005688585.tif 000014
【図１４】
0005688585.tif 000015
【図１５】
0005688585.tif 000016
【図１６】
0005688585.tif 000017