(57)【要約】【課題】ダイレクト・モードを用いた動き予測処理の適応範囲を拡張し、かつ、その処理負荷を軽減する。【解決手段】動き予測処理の現処理対象画像が参照する参照画像２０の動きベクトルを、参照画像２０上のブロックライン２０−１……を単位として、ベクトル格納メモリ１０を分割したメモリ領域１０−１……のいずれかに書き込む書き込み制御手段２と、ベクトル格納メモリ１０からＦＩＦＯ方式の２つのバッファ１１および１２への、メモリ領域１０−１……ごとの動きベクトルの読み出しを、参照画像２０および現処理対象画像のそれぞれが、フレーム画像あるいはフィールド画像のいずれであるか、および、基本ブロックごとにフレーム予測／フィールド予測を選択的に適用可能なブロック適用型予測モードであるか否かの組み合わせに応じて制御する読み出し制御手段３とを備える。【選択図】図１
2008048199.tif 000002
【特許請求の範囲】
【請求項１】
動画像を一定の領域に分割した基本ブロックを単位としてフレーム間の動き予測処理を行う動き予測処理装置において、
前記動き予測処理の現処理対象画像が参照する参照画像の動きベクトルを、前記参照画像上の水平方向に並列された１列分の前記基本ブロックに対応するブロックラインを単位として、ベクトル格納メモリを分割したメモリ領域のいずれかに書き込む書き込み制御手段と、
前記ベクトル格納メモリからＦＩＦＯ方式の２つのバッファへの、前記メモリ領域ごとの動きベクトルの読み出しを、前記参照画像および前記現処理対象画像のそれぞれが、フレーム画像あるいはフィールド画像のいずれであるか、および、前記基本ブロックごとにフレーム予測／フィールド予測を選択的に適用可能なブロック適用型予測モードであるか否かの組み合わせに応じて制御する読み出し制御手段と、
前記各バッファから順次読み出した動きベクトルを用いて、前記現処理対象画像の所定の前記基本ブロックの動き予測処理に必要な動きベクトルを予測演算するベクトル演算手段と、
を有することを特徴とする動き予測処理装置。
【請求項２】
前記書き込み制御手段は、前記参照画像がフィールド画像であって前記ブロック適用型予測モードでない場合には、前記参照画像上の前記ブロックラインの動きベクトルをフィールド別にそれぞれ異なる前記メモリ領域に格納し、
前記読み出し制御手段は、
前記参照画像および前記現処理対象画像がともに前記ブロック適用型予測モードでなく、前記参照画像がフレーム画像で、前記現処理対象画像がフィールド画像である場合には、前記参照画像内での奇数番目の前記ブロックラインに割り当てられた前記メモリ領域と、偶数番目の前記ブロックラインに割り当てられた前記メモリ領域のそれぞれから、２つの前記バッファに動きベクトルを並列に読み出し、
前記参照画像がフィールド画像であって前記ブロック適用型予測モードでなく、前記現処理対象画像が前記ブロック適用型予測モードである場合には、トップ・フィールドに割り当てられた前記メモリ領域と、ボトム・フィールドに割り当てられた前記メモリ領域のそれぞれから、２つの前記バッファに動きベクトルを並列に読み出し、
前記参照画像および前記現処理対象画像の条件がそれ以外の場合には、前記メモリ領域ごとの動きベクトルを一方の前記バッファのみに読み出す、
ことを特徴とする請求項１記載の動き予測処理装置。
【請求項３】
前記書き込み制御手段は、前記参照画像が前記ブロック適用型予測モードである場合には、前記参照画像上で上下に隣接する２つの前記ブロックラインを、２つの前記メモリ領域に割り当てて動きベクトルを格納し、
前記読み出し制御手段は、前記参照画像が前記ブロック適用型予測モードである場合には、２つの前記ブロックラインに割り当てられた２つの前記メモリ領域ごとに、動きベクトルを一方の前記バッファに対して順次読み出す、
ことを特徴とする請求項２記載の動き予測処理装置。
【請求項４】
前記読み出し制御手段は、前記参照画像および前記現処理対象画像の双方がフィールド画像であって前記ブロック適用型予測モードでない場合には、トップ・フィールドに割り当てられた前記メモリ領域のみから一方の前記バッファのみに対して動きベクトルを読み出すことを特徴とする請求項２記載の動き予測処理装置。
【請求項５】
前記読み出し制御手段は、前記参照画像がフィールド画像であって前記ブロック適用型予測モードでなく、前記現処理対象画像がフレーム画像であって前記ブロック適用型予測モードでない場合には、トップ・フィールドに割り当てられた前記メモリ領域のみを読み出し元とし、同じ前記メモリ領域から２回ずつ連続して、一方の前記バッファのみに対して動きベクトルを読み出すことを特徴とする請求項２記載の動き予測処理装置。
【請求項６】
前記現処理対象画像上の動きベクトル算出対象の前記基本ブロック、および当該現処理対象ブロックに対応する前記参照画像上の前記基本ブロックである参照ブロックのそれぞれが、フレーム構造あるいはフィールド構造のいずれであるか、および、当該現処理対象画像および当該参照画像のそれぞれが前記ブロック適用型予測モードであるか否かの組み合わせに応じて、前記現処理対象ブロックのブロック分割サイズを、対応する前記参照ブロックのブロック分割サイズと同じにするか、あるいは当該参照ブロックで分割されたブロックの一部が１つのブロックに統合されるように設定して、前記ベクトル演算手段に通知するブロック分割設定手段をさらに有することを特徴とする請求項１記載の動き予測処理装置。
【請求項７】
前記現処理対象画像および前記参照画像がともに前記ブロック適用型予測モードでなく、前記現処理対象ブロックがフレーム構造で、前記参照ブロックがフィールド構造であるとき、当該参照ブロックの上側半分および下側半分の各ブロックにおいて、ともに垂直方向に対してさらなるブロック分割が行われていない場合には、対応する前記現処理対象ブロックを垂直方向にブロック分割しないことを特徴とする請求項６記載の動き予測処理装置。
【請求項８】
前記現処理対象画像および前記参照画像がともに前記ブロック適用型予測モードでなく、前記現処理対象ブロックがフィールド構造で、前記参照ブロックがフレーム構造であるとき、前記現処理対象ブロックに対応する前記参照画像上の上下に隣接する２つの前記参照ブロックの双方において、それぞれを４等分したサイズ以下のブロックが存在しない場合には、前記現処理対象ブロックを垂直方向に２等分し、水平方向にブロック分割しないことを特徴とする請求項６記載の動き予測処理装置。
【請求項９】
動画像を一定の領域に分割した基本ブロックを単位としたフレーム間の動き予測処理を利用して、動画像信号を符号化する画像符号化装置において、
前記動き予測処理の現処理対象画像が参照する参照画像の動きベクトルを、前記参照画像上の水平方向に並列された１列分の前記基本ブロックに対応するブロックラインを単位として、ベクトル格納メモリを分割したメモリ領域のいずれかに書き込む書き込み制御手段と、
前記ベクトル格納メモリからＦＩＦＯ方式の２つのバッファへの、前記メモリ領域ごとの動きベクトルの読み出しを、前記参照画像および前記現処理対象画像のそれぞれが、フレーム画像あるいはフィールド画像のいずれであるか、および、前記基本ブロックごとにフレーム予測／フィールド予測を選択的に適用可能なブロック適用型予測モードであるか否かの組み合わせに応じて制御する読み出し制御手段と、
前記各バッファから順次読み出した動きベクトルを用いて、前記現処理対象画像の所定の前記基本ブロックの動き予測処理に必要な動きベクトルを予測演算するベクトル演算手段と、
を有することを特徴とする画像符号化装置。
【請求項１０】
動画像を一定の領域に分割した基本ブロックを単位としたフレーム間の動き予測処理を利用して、符号化された動画像信号を復号化する画像復号化装置において、
前記動き予測処理の現処理対象画像が参照する参照画像の動きベクトルを、前記参照画像上の水平方向に並列された１列分の前記基本ブロックに対応するブロックラインを単位として、ベクトル格納メモリを分割したメモリ領域のいずれかに書き込む書き込み制御手段と、
前記ベクトル格納メモリからＦＩＦＯ方式の２つのバッファへの、前記メモリ領域ごとの動きベクトルの読み出しを、前記参照画像および前記現処理対象画像のそれぞれが、フレーム画像あるいはフィールド画像のいずれであるか、および、前記基本ブロックごとにフレーム予測／フィールド予測を選択的に適用可能なブロック適用型予測モードであるか否かの組み合わせに応じて制御する読み出し制御手段と、
前記各バッファから順次読み出した動きベクトルを用いて、前記現処理対象画像の所定の前記基本ブロックの動き予測処理に必要な動きベクトルを予測演算するベクトル演算手段と、
を有することを特徴とする画像復号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像を一定の領域に分割した基本ブロックを単位としてフレーム間の動き予測処理を行う動き予測処理装置、およびこの装置を備えた画像符号化装置、画像復号化装置に関し、特に、動き予測処理の現処理対象画像が参照する参照画像の動きベクトルから、現処理対象画像の動きベクトルを演算する動作モードに対応した動き予測処理装置、画像符号化装置および画像復号化装置に関する。
【背景技術】
【０００２】
動画像信号の圧縮符号化方式として、ＭＰＥＧ（Moving Picture Expert Group）や、Ｈ．２６４などが知られている。このような圧縮符号化方式では、入力画像データをマクロブロック（以下、ＭＢと呼ぶ）と呼ばれる基本処理単位に分割し、これを単位として符号化・復号化処理が行われる。符号化処理では、入力画像に対して直交変換、量子化などを施して画面内の冗長性を取り除くフレーム内予測と、過去に符号化した複数のフレームから動き補償した予測残差を抽出することでフレーム間の冗長性を取り除くフレーム間予測とが行われ、これらの手法で算出された値がエントロピー符号化されることで、データ圧縮がなされる。また、復号化処理では、その逆動作が行われる。
【０００３】
また、ＭＰＥＧ−２やＨ．２６４などでは、フレーム単位で符号化するモードとフィールド単位で符号化するモードとを適応的に選択可能になっている。これに加えて、上下に隣接する２つのＭＢ（以下、ＭＢペアと呼ぶ）単位で、フレーム間予測とフィールド間予測とを切り替えて用いることも可能となっており、このモードはＭＢＡＦＦ（Macro Block Adaptive Field／Frame）と呼ばれている。これらの３つのモードは符号化タイプ（Coding Type）としてピクチャ単位に設定でき、以下では各符号化タイプを「ＦＲＭ」「ＦＬＤ」「ＭＢＡＦＦ」と表すことにする。
【０００４】
図３３は、符号化タイプ別のＭＢの処理順について説明するための図である。
この図３３の上側では、画像上での１６画素×１６画素のＭＢの処理順を示している。符号化タイプがＦＲＭのときは、同図左上側に示すように、フレーム内の１６画素×１６画素のＭＢが水平方向の並列順に処理されるので、それらの各ＭＢ内では、同図左下側に示すように、奇数ラインのデータと偶数ラインのデータとが交互に処理されることになる。また、符号化タイプがＦＬＤのときは、同図中央上側に示すように、トップ・フィールドのデータとボトム・フィールドのデータとが存在する。このため、同図中央下側に示すように、まずトップ・フィールドに対応する奇数ラインが順に処理された後、次のフィールド同期期間においてボトム・フィールドに対応する偶数ＭＢラインが処理されることになる。
【０００５】
符号化タイプがＭＢＡＦＦのときは、同図右上側に示すように、フレーム内のデータはＭＢペア単位で処理される。ただし、フレーム間予測を適用したＭＢペア（以下、フレーム・ペア（Frame Pair）と呼ぶ）とフィールド間予測を適用したＭＢペア（以下、フィールド・ペア（Field Pair）と呼ぶ）とでは処理順が異なり、同図右下側に示すように、フレーム・ペアでは奇数ラインと偶数ラインとが交互に処理される。一方、フィールド・ペアでは、２つのＭＢがそれぞれトップ・フィールド、ボトム・フィールドに対応するデータに対応しており、奇数ラインが処理された後、続いて偶数ラインが処理されることになる。
【０００６】
また、輪郭を多く含むＭＢなどでは、予測精度を向上させるために、ＭＢをより小さな領域に分割し、分割したブロックを動きベクトルの検出単位として動き予測処理を行うことがある。基本的なＭＢのブロックサイズは１６画素×１６画素であるが、例えばＨ．２６４では、必要に応じて最小で４画素×４画素サイズのブロックを用いることができる。
【０００７】
図３４は、Ｈ．２６４におけるＭＢのブロックサイズを説明するための図である。
図３４（Ａ）は、基本サイズである１６画素×１６画素のＭＢを示している。なお、ここでは、所定の画素サイズのＭＢを「ＭＢ（画素サイズ）」と表記する。例えば、同図（Ａ）のＭＢをＭＢ（１６×１６）と表す。
【０００８】
同図（Ｂ）は、ＭＢ（１６×１６）を横方向に２分割した形状のＭＢ（１６×８）を、同図（Ｃ）には、ＭＢ（１６×１６）を縦方向に２分割した形状のＭＢ（８×１６）を、同図（Ｄ）には、ＭＢ（１６×１６）を４等分した形状のＭＢ（８×８）をそれぞれ示している。なお、図中の点線矢印はＭＢ間の処理順を示しており、ＭＢ（１６×８）では上から下、ＭＢ（８×１６）では左から右、ＭＢ（８×８）では左上、右上、左下、右下の順にそれぞれ処理が行われる。
【０００９】
さらに、Ｈ．２６４では、ＭＢ（８×８）をさらに分割したサブＭＢ分割を指定することもできる。以下、ＭＢの場合と同様に、所定の画素サイズのサブＭＢをサブＭＢ（画素サイズ）と表記すると、このサブＭＢとしては、同図（Ｅ）に示すように、サブＭＢ（８×４）、サブＭＢ（４×８）、サブＭＢ（４×４）の各サイズがある。なお、ＭＢ（８×８）の内部での各サブＭＢ間の処理順は、同図（Ａ）〜（Ｄ）における同一形状のＭＢと同じになる。
【００１０】
ところで、上記の画像符号化方式におけるフレーム間予測では、現処理対象のフレームと過去に符号化したフレームとの間で、ＭＢ単位で動きベクトルが検出される。また、各フレームにおけるＭＢの画像データを基に検出した動きベクトルと、このＭＢの周辺領域の動きベクトルを基に予測した動きベクトル予測値との予測差分値が符号化対象とされ、これにより符号量をより削減できる。さらにＨ．２６４では、符号量削減の手法として、現処理対象のＭＢの動きベクトルを、過去に符号化したフレームの同位置に対応する動きベクトルのみから演算により直接的に算出可能なダイレクト・モードを選択することもできる。
【００１１】
図３５は、ダイレクト・モードにおける動きベクトルの演算手法を概念的に示す図である。
ダイレクト・モードは、現処理対象のピクチャ（以下、ＣｕｒｒＰｉｃ（Current Picture）と呼ぶ）として、双方向予測符号化が行われるＢピクチャに対して設定可能である。ダイレクト・モードでは、ＣｕｒｒＰｉｃ内の現処理対象のＭＢ（以下、ＣｕｒｒＭＢと呼ぶ）の動きベクトルを算出するとき、ＣｕｒｒＰｉｃの予測に用いるピクチャ（以下、ＣｏｌＰｉｃ（Co-located Picture）と呼ぶ。）内の同じ空間位置のＭＢ（以下、ＭＢＣｏｌと呼ぶ）の動きベクトルを利用して、演算によりＣｕｒｒＭＢの動きベクトルを直接算出する。具体的には、表示順で直後のＣｏｌＰｉｃ内の対応するブロックの動きベクトルをピクチャ間の時間距離に応じて内分し、双方向の動きベクトルを得る。
【００１２】
ここで、ダイレクト・モードにより動きベクトルを演算するためには、ＣｏｌＰｉｃの動きベクトルをメモリに保持し、現処理対象のブロックに対応するＣｏｌＰｉｃ内のブロックの動きベクトルをそのメモリから読み出す必要がある。しかし、上述したように、各ピクチャには任意の符号化タイプを設定することができ、さらに、ＭＢの分割タイプが多数存在することから、予測に必要なブロックの動きベクトルを読み出すための読み出し制御が複雑になるという問題があった。特に、符号化タイプとしてＦＲＭおよびＦＬＤだけでなく、ＭＢＡＦＦにも対応可能とした場合には、ＣｕｒｒＭＢとＭＢＣｏｌとの間のブロックのサイズや位置の組み合わせが非常に多岐にわたることになり、対応する動きベクトルの読み出し制御も極端に複雑になってしまう。
【００１３】
なお、ＭＢＡＦＦモードにおける動きベクトル予測値の演算を効率化した従来の技術としては、上側に隣接するＭＢの下側ブロックグループ、および左側に隣接するＭＢの右側ブロックグループの各動きベクトルを記憶するための上側メモリおよび左側メモリを備え、上側メモリには、ＭＢＡＦＦモードにおけるＭＢペアの上部および下部の各動きベクトルを格納するための個別のバンクを形成して、これらのメモリに格納された動きベクトルを参照して現在ブロックの動きベクトルを予測するようにしたものがあった（例えば、特許文献１参照）。
【特許文献１】特開２００６−１６６４５９号公報（段落番号〔００７８〕〜〔００９２〕、図１０）
【発明の開示】
【発明が解決しようとする課題】
【００１４】
上述したように、ＦＲＭ、ＦＬＤ、ＭＢＡＦＦの全符号化タイプに対して、動きベクトル算出時におけるダイレクト・モードを適用できるようにするためには、予測に用いるＣｏｌＰｉｃの動きベクトルを読み出すための制御が非常に複雑になるので、処理負荷が高くなり、また回路構成が複雑になることが問題となっていた。
【００１５】
これに対して、従来では、ＭＢＣｏｌの分割ブロックサイズをすべて最小サイズの４画素×４画素に変換し、変換したブロックごとに予測に用いる動きベクトルを格納しておくことで、読み出し制御を単純化していた。しかし、この手法を採った場合、元のＣｏｌＰｉｃが最小サイズより大きいブロックに分割されていた場合でも、最小サイズで分割した分割数だけのメモリアドレス空間に動きベクトルをすべて格納し、符号化・復号化の際にこれらの空間から必要な動きベクトルを読み出す必要が生じる。このため、符号化・復号化の際の動きベクトルの演算量やメモリアクセス回数が増大して、処理負荷が過大になるという問題があった。また、符号化時においては、生成される符号量が増大してしまい、画像信号の圧縮率を高められないという問題もあった。
【００１６】
本発明はこのような点に鑑みてなされたものであり、ダイレクト・モードを用いた動き予測処理の適応範囲が拡張され、かつ、その処理負荷が軽減された動き予測処理装置、そのような装置を備えた画像符号化装置および画像復号化装置を提供することを目的とする。
【課題を解決するための手段】
【００１７】
本発明では上記課題を解決するために、図１に示すような動き予測処理装置１が提供される。この動き予測処理装置１は、動画像を一定の領域に分割した基本ブロックを単位としてフレーム間の動き予測処理を行うものであり、動き予測処理の現処理対象画像が参照する参照画像２０の動きベクトルを、参照画像２０上の水平方向に並列された１列分の基本ブロックに対応するブロックライン２０−１……を単位として、ベクトル格納メモリ１０を分割したメモリ領域１０−１……のいずれかに書き込む書き込み制御手段２と、ベクトル格納メモリ１０からＦＩＦＯ方式の２つのバッファ１１および１２への、メモリ領域１０−１……ごとの動きベクトルの読み出しを、参照画像２０および現処理対象画像のそれぞれが、フレーム画像あるいはフィールド画像のいずれであるか、および、基本ブロックごとにフレーム予測／フィールド予測を選択的に適用可能なブロック適用型予測モードであるか否かの組み合わせに応じて制御する読み出し制御手段３と、各バッファ１１および１２から順次読み出した動きベクトルを用いて、現処理対象画像の所定の基本ブロックの動き予測処理に必要な動きベクトルを予測演算するベクトル演算手段４とを有する。
【００１８】
このような動き予測処理装置１では、動き予測処理に用いる参照画像２０の動きベクトルを格納するために、複数のメモリ領域１０−１……に分割されたベクトル格納メモリ１０と、ともにＦＩＦＯ方式の２つのバッファ１１および１２とが利用される。書き込み制御手段２は、動き予測処理の現処理対象画像が参照する参照画像２０の動きベクトルを、その参照画像２０上の水平方向に並列された１列分の基本ブロックに対応するブロックラインを単位として、メモリ領域１０−１……のいずれかに書き込む。読み出し制御手段３は、ベクトル格納メモリ１０から２つのバッファ１１および１２へのメモリ領域１０−１……ごとの動きベクトルの読み出しを、参照画像２０および現処理対象画像のそれぞれが、フレーム画像あるいはフィールド画像のいずれであるか、および、基本ブロックごとにフレーム予測／フィールド予測を選択的に適用可能なブロック適用型予測モードであるか否かの組み合わせに応じて制御する。ベクトル演算手段４は、各バッファ１１および１２から順次読み出した動きベクトルを用いて、現処理対象画像の所定の基本ブロックの動き予測処理に必要な動きベクトルを予測演算する。
【発明の効果】
【００１９】
本発明の動き予測処理装置によれば、参照画像についての動きベクトルが、その数が増加されることなく、ベクトル格納メモリに対して読み書きされ、かつ、ベクトル格納メモリに対する読み書きが、ブロックライン単位の動きベクトルを格納するメモリ領域ごとに行われるので、ベクトル格納メモリに対するアクセス回数が必要最小限に抑制される。また、参照画像および現処理対象画像のそれぞれが、フレーム画像あるいはフィールド画像のいずれであるか、および、基本ブロックごとにフレーム予測／フィールド予測を選択的に適用可能なブロック適用型予測モードであるか否かの組み合わせに応じて、ベクトル格納メモリから２つのバッファへのメモリ領域ごとの動きベクトルの読み出しが制御されるので、これらの組み合わせに関係なく、ベクトル演算手段が各バッファから所望の基本ブロックに対応する動きベクトルを確実に取得できるようになる。従って、参照画像の動きベクトルに基づいて現処理対象画像の所定ブロックの動きベクトルを直接演算する処理の適応範囲を拡張できるとともに、その処理負荷を軽減できる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の実施の形態を図面を参照して詳細に説明する。まず、実施の形態に適用される発明の概念について説明し、その後、実施の形態の具体的な内容を説明する。なお、以下の説明では、画像を分割したブロックの画素サイズについて、例えば１６画素×１６画素を１６×１６と省略して表記する。
【００２１】
図１は、本発明の実施の形態に係る動き予測処理装置の概要を示すブロック図である。
図１に示す動き予測処理装置１は、例えば、動画像信号を圧縮符号化する符号化装置、および、符号化された動画像信号を復号化する復号化装置に設けられて、フレーム間の動き予測処理を行うものである。この動き予測処理は、動画像の各フレームを一定の領域に分割した基本ブロックを単位として行われる。基本ブロックは、例えば１６×１６のブロックサイズを有する。
【００２２】
本実施の形態に係る動き予測処理装置１は、特に、動き予測処理に用いる参照画像の動きベクトルに基づいて、現処理対象画像の所定ブロックの動きベクトルを直接演算する、いわゆる「ダイレクト・モード」の処理を実行するために設けられるものである。このダイレクト・モードの処理のために、動き予測処理装置１は、書き込み制御手段２と、読み出し制御手段３と、ベクトル演算手段４とを具備する。また、ダイレクト・モードの処理のために、ベクトル格納メモリ１０と、２つのバッファ１１および１２とが利用される。ベクトル格納メモリ１０は、複数のメモリ領域１０−１，２，３，……に分割されており、領域ごとに連続的なアドレスで書き込みおよび読み出しを行うことが可能となっている。また、バッファ１１および１２は、それぞれＦＩＦＯ方式でデータを記憶する。なお、ベクトル格納メモリ１０、バッファ１１および１２の各機能は、どちらも動き予測処理装置１の外部に設けられていても、内部に設けられていてもよい。
【００２３】
書き込み制御手段２は、動き予測処理の現処理対象画像が参照する参照画像２０の動きベクトルを、その参照画像２０上の水平方向に並列された１列分の基本ブロックに対応するブロックライン２０−１，２，３，……を単位として、メモリ領域１０−１，２，３，……のいずれかに書き込む。
【００２４】
読み出し制御手段３は、ベクトル格納メモリ１０から２つのバッファ１１および１２に対して、動きベクトルをメモリ領域１０−１，２，３，……ごとに読み出す。このとき、参照画像２０および現処理対象画像のそれぞれが、フレーム画像あるいはフィールド画像のいずれであるか、および、基本ブロックごとにフレーム予測／フィールド予測を選択的に適用可能なブロック適用型予測モード（Ｈ．２６４のＭＢＡＦＦモードに対応）であるか否かの組み合わせに応じて、メモリ領域１０−１，２，３，……のデータをどのようにバッファ１１および１２に読み出すかを制御する。
【００２５】
ベクトル演算手段４は、各バッファ１１および１２から順次読み出した動きベクトルを用いて、現処理対象画像の所定の基本ブロックの動き予測処理に必要な動きベクトルを予測演算する。すなわち、ベクトル演算手段４は、ダイレクト・モードにおける動きベクトルの演算（ダイレクト演算）を実行するブロックである。
【００２６】
ここで、ダイレクト・モードおよびブロック適用型予測モードに対応する動き予測処理機能では、上記の読み出し制御手段３が判別している各画像の状態の組み合わせが非常に多岐にわたることから、制御を簡単にするために、参照画像２０の内部で分割されたブロックを、最小サイズのブロック（例えば４×４）に変換し、各ブロックに動きベクトルを割り当ててメモリに記憶していた。このため、元の参照画像２０に対して算出されていた数より多くの動きベクトルがメモリに記憶され、それらがダイレクト演算機能に対して読み出されることから、メモリに対するアクセス回数が増大していた。
【００２７】
これに対して、本実施の形態の動き予測処理装置１では、参照画像２０についての動きベクトルは、最小サイズのブロックに展開されることなく、その数だけベクトル格納メモリ１０に格納される。また、ベクトル格納メモリ１０に対する読み書きは、ブロックライン２０−１，２，３，……を単位として動きベクトルを格納するメモリ領域１０−１，２，３，……ごとに行われるので、ブロックライン２０−１，２，３，……に相当する必要最小限の動きベクトルが１回のアクセスで（すなわち連続したアドレス指定により）読み書きされる。従って、ベクトル格納メモリ１０に対するアクセス回数が必要最小限に抑制されて、ダイレクト演算に伴う処理負荷が軽減されるので、処理速度を高速化し、その消費電力を低減することができる。
【００２８】
また、読み出し制御手段３の制御により、参照画像２０および現処理対象画像のそれぞれが、フレーム画像あるいはフィールド画像のいずれであるか、および、基本ブロックごとにフレーム予測／フィールド予測を選択的に適用可能なブロック適用型予測モードであるか否かの組み合わせに応じて、ベクトル格納メモリ１０から２つのバッファ１１および１２へのメモリ領域１０−１，２，３．……ごとの動きベクトルの読み出しが制御される。これにより、各画像の条件の組み合わせに応じて、ベクトル演算手段４が必要な動きベクトルをバッファ１１および１２の出力から確実に取り出せるように、動きベクトルの出力順を変換することができる。すなわち、ベクトル演算手段４は、バッファ１１および１２から順次動きベクトルを読み出すことで、所望の位置の基本ブロックの動きベクトルを確実に取得して、必要最小限の回数だけ動きベクトルを演算することができる。
【００２９】
なお、これらの各画像についての条件の組み合わせと、各メモリ領域１０−１，２，３，……からバッファ１１および１２への読み出し手順とをあらかじめテーブルに記載しておき、このテーブルに従ってベクトル格納メモリ１０から２つのバッファ１１および１２への読み出しを制御することで、読み出し制御手順を一層単純化することができる。
【００３０】
以上より、本実施の形態に係る動き予測処理装置１では、ダイレクト・モードを用いた動き予測処理の適応範囲を拡張することができ、なおかつ、その動き予測処理の負荷を軽減することができる。特に、参照画像２０と現処理対象画像との間のフレーム／フィールド種別が異なる場合や、少なくとも一方がブロック適用型予測モードである場合でも、比較的簡単な処理でダイレクト演算を確実に実行できるようになる。
【００３１】
次に、Ｈ．２６４に基づく符号化および復号化処理を行う画像符号化装置および画像復号化装置を例に挙げて、本発明の実施の形態についてより具体的に説明する。Ｈ．２６４では、１６×１６のＭＢ（以下、基本ＭＢと呼ぶ）に加え、１６×８、８×１６、および８×８の４種類のＭＢが選択可能となっている。さらに、８×８サイズのＭＢについては、８×８、８×４、４×８、４×４の４種類のサブＭＢ分割を指定することもできる。基本的なアルゴリズムは、符号化処理では、フレームまたはフィールドを基本ＭＢに分割し、それらの基本ＭＢごとに、フレーム内の空間的冗長性を利用したフレーム内予測と、フレーム間の時間的冗長性を利用したフレーム間予測とを適宜切り替えて、入力画像の符号化を行う。復号化処理では、その逆動作が行われる。
【００３２】
図２は、実施の形態に係る画像符号化装置の構成を示すブロック図である。
図２に示す画像符号化装置１００は、ＭＢ分割部１０１、動きベクトル検出部１０２、過去のフレームバッファ１０３、フレーム間予測部１０４、フレーム内予測部１０５、現フレームバッファ１０６、予測モード選択部１０７、減算器１０８、直交変換量子化部１０９、エントロピー符号化部１１０、逆量子化逆直交変換部１１１、加算器１１２、デブロッキングフィルタ１１３、およびフレームバッファ管理部１１４を具備する。
【００３３】
このような画像符号化装置１００では、入力画像は、ＭＢ分割部１０１によって所定の大きさのＭＢに分割される。動きベクトル検出部１０２は、入力されたＭＢ単位の画像データと、過去のフレームバッファ１０３に格納される参照画像のデータとを用いて、対象ＭＢの動きベクトルを検出する。動きベクトルは、通常、周辺領域との相関が高いので、フレーム間予測部１０４は、周辺領域の動きベクトルを基にして動きベクトル予測値を算出し、動きベクトル検出部１０２で検出された動きベクトルとの間の予測差分値（ＭＶＤ）を算出する。一方、フレーム内予測部１０５は、現フレームバッファ１０６に格納された画像のフレーム内予測を行う。
【００３４】
予測モード選択部１０７は、フレーム間予測部１０４とフレーム内予測部１０５との予測誤差を比較するなどして、当該ＭＢを最も効率よく符号化することができる符号化モードを選択し、符号化モード情報を生成する。この符号化モード情報は、符号化対象情報としてエントロピー符号化部１１０へ受け渡される。符号化モード情報には、ＭＢを分割した分割ＭＢのサイズと、分割ＭＢをさらに分割したサブＭＢのサイズが含まれる。
【００３５】
予測モード選択部１０７によりフレーム内予測が選択される場合は、ＭＢ分割部１０１を経由したＭＢの画像データがそのまま直交変換量子化部１０９へ出力され、直交変換と量子化が施される。こうして生成された直交変数係数データは、エントロピー符号化部１１０へ受け渡される。また、この直交変換係数データは、逆量子化逆直交変換部１１１によってデコードされ、現フレームバッファ１０６に書き込まれる。
【００３６】
予測モード選択部１０７によりフレーム間予測が選択される場合は、フレーム間予測部１０４が算出した動きベクトルの予測差分値が符号化対象として選択され、エントロピー符号化部１１０へ受け渡される。また、フレーム間予測部１０４では、算出された動きベクトル予測値と過去のフレームバッファ１０３内の画像データとを基に予測画像が生成され、予測モード選択部１０７経由で減算器１０８へ出力される。減算器１０８では、ＭＢ単位の入力画像と、予測画像との差分が算出され、直交変換量子化部１０９へ出力される。この出力は、逆量子化逆直交変換部１１１によってデコードされ、加算器１１２によって予測モード選択部１０７からの予測画像が加算された後、現フレームバッファ１０６に書き込まれる。
【００３７】
エントロピー符号化部１１０は、符号化対象データのエントロピー符号化を行い、画像圧縮符号化信号として出力する。また、現フレームバッファ１０６に格納された参照画像は、デブロッキングフィルタ１１３によりＭＢ境界が平滑化され、フレームバッファ管理部１１４を経由して、過去のフレームバッファ１０３に格納される。
【００３８】
図３は、実施の形態に係る画像復号化装置の構成を示すブロック図である。
図３に示す画像復号化装置２００は、エントロピー復号化部２０１、逆量子化逆直交変換部２０２、加算器２０３、現フレームバッファ２０４、フレーム内予測部２０５、予測モード選択部２０６、デブロッキングフィルタ２０７、フレームバッファ管理部２０８、過去のフレームバッファ２０９、およびフレーム間予測部２１０を具備して、図２に示した画像符号化装置１００が生成した画像圧縮符号化データを復号化する。
【００３９】
画像圧縮符号化データは、エントロピー復号化部２０１によってエントロピー復号化処理が施された後、逆量子化逆直交変換部２０２によって逆量子化と逆直交変換が施される。フレーム間予測によって符号化されている場合は、予測差分値（ＭＶＤ）の形式で符号化されている動きベクトルデータを復号化する。予測モード選択部２０６は、復号化された符号化モード情報に基づき、フレーム内予測部２０５またはフレーム間予測部２１０を選択する。
【００４０】
予測モード選択部２０６によりフレーム内予測部２０５が選択される場合は、逆量子化逆直交変換部２０２によって復元された画像が現フレームバッファ２０４に書き込まれる。予測モード選択部２０６によりフレーム間予測部２１０が選択される場合は、フレーム間予測部２１０は、動きベクトルの予測差分値と、予測対象のブロックの周囲ブロックから算出した動きベクトル予測値とを加算して動きベクトルを復元する。そして、復元された動きベクトルと過去のフレームバッファ２０９内の参照画像のデータとを基にして、予測画像を復元し、予測モード選択部２０６経由で加算器２０３に入力する。この予測画像と、逆量子化逆直交変換部２０２により復号化された予測誤差とが加算器２０３で加算されることによって、画像が復号化されて現フレームバッファ２０４に格納される。
【００４１】
現フレームバッファ２０４に格納された画像データは、デブロッキングフィルタ２０７によりＭＢ境界が平滑化された後、フレームバッファ管理部２０８を経由して過去のフレームバッファ２０９に格納され、復号化された画像データとして出力されるとともに、参照画像としてフレーム間予測部２１０に利用される。
【００４２】
ここで、本実施の形態では、特に、Ｂピクチャの符号化および復号化の際に、現処理対象ブロックの動きベクトルを、参照画像内の対応するブロックの動きベクトルから演算により直接求めるダイレクト・モードに対応している。画像符号化装置１００において、ダイレクト・モードでは、フレーム間予測部１０４は、表示順で直後の参照画像内の同じ空間位置のブロックの動きベクトルを、ピクチャ間の時間距離に応じて内分し、双方向の動きベクトルを求める。そして、このように予測された動きベクトルが、動きベクトル検出部１０２で求められた動きベクトルと比較してある程度の精度を満たせば、ダイレクト・モードを示すモード情報のみを符号化対象とし、動きベクトルの予測差分値を符号化対象としない。これにより符号量が圧縮される。また、画像復号化装置２００において、ダイレクト・モードが設定されたＢピクチャを復号化する場合には、フレーム間予測部２１０の処理により、参照画像内の同じ空間位置のブロックの動きベクトルから、上記と同様の演算方法により現処理対象ブロックの動きベクトルが復元される。
【００４３】
このように、ダイレクト・モードにより動きベクトルを演算するためには、参照画像の動きベクトルをメモリに格納しておき、現処理対象ブロックの動きベクトル演算の際に、参照画像内の対応ブロックの動きベクトルをそのメモリから読み出す必要がある。すなわち、画像符号化装置１００のフレーム間予測部１０４と、画像復号化装置２００のフレーム間予測部２１０の双方に、このような動きベクトル格納用のメモリと、その書き込み・読み出しのための制御機能を設ける必要がある。
【００４４】
以下、このようなダイレクト・モード対応のためのメモリ制御機能の構成について、具体的に説明する。以下の実施の形態では、特に、ピクチャごとの符号化タイプとしてＦＲＭ、ＦＬＤ、ＭＢＡＦＦのすべてに対応可能となっている。現処理対象のピクチャ（ＣｕｒｒＰｉｃ）と、このＣｕｒｒＰｉｃの予測に用いるピクチャ（ＣｏｌＰｉｃ）との間における上記の符号化モードの組み合わせ、およびブロック分割方式の組み合わせが多数存在するために、従来ではダイレクト・モードでのメモリに対する動きベクトルの書き込み・読み出しの制御が非常に複雑になり、メモリアクセス回数が膨大になっていた。これに対して、本実施の形態では、必要最小限の動きベクトルのみをメモリに格納するようにして、メモリアクセス回数を抑制するとともに、２つの内部バッファと、符号化モードおよびブロック分割方式の組み合わせに応じたテーブルとを用いて読み出しを制御することで、メモリアクセス制御を簡略化する。
【００４５】
図４は、ダイレクト・モード対応のためのメモリ制御機能の構成例を示すブロック図である。
なお、以下の説明では、例として、画像復号化装置２００のフレーム間予測部２１０に設けられるメモリ制御機能を挙げるが、画像符号化装置１００のフレーム間予測部１０４にも同様の構成のメモリ制御機能を設けることができる。
【００４６】
図４に示すように、フレーム間予測部２１０は、動きベクトルの演算を行うＭＶ生成部３１０、ダイレクト・モードのために動きベクトルを一時的に保持する外部メモリ３２０、上記のメモリ制御機能としてのＭＶ書き込み制御部３３０、２つの内部バッファ３４１および３４２、ＭＶ読み出し制御部３５０、および分割サイズ統合部３６０を具備している。なお、ここでは、外部メモリ３２０は、フレーム間予測部２１０（または画像復号化装置２００）を構成する回路の外部に設けられているものとする。例えば、この外部メモリ３２０が他の機能ブロックとの間で共用されてもよい。
【００４７】
ＭＶ生成部３１０は、動き補償のための動きベクトルを生成するブロックであり、基本的には、入力された画像圧縮符号化データから復元された動きベクトルの予測差分値を基に、動きベクトルを復元する。また、このＭＶ生成部３１０は、外部メモリ３２０から読み出されたＣｏｌＰｉｃの動きベクトルを基にＣｕｒｒＰｉｃの動きベクトルを演算するダイレクトＭＶ（Direct MV）演算部３１１を備えている。フレーム間予測部２１０では、復号対象のブロックにダイレクト・モード以外の予測モードが設定されていた場合は、予測差分値を基に復元された動きベクトルを用いて動き補償が行われ、ダイレクト・モードが設定されていた場合には、ダイレクトＭＶ演算部３１１で算出された動きベクトルを用いて動き補償が行われる。そして同時に、動き補償に用いられた動きベクトルが、ＭＶ書き込み制御部３３０を介して外部メモリ３２０に格納される。
【００４８】
なお、図４の構成を画像符号化装置１００に適用する場合、ＭＶ生成部３１０では、ダイレクト・モード以外の予測モードが設定された場合には、動きベクトル検出部１０２で検出された動きベクトルがＭＶ書き込み制御部３３０に出力され、ダイレクト・モードが設定されていた場合には、ダイレクトＭＶ演算部３１１で演算された動きベクトルがＭＶ書き込み制御部３３０に出力される。
【００４９】
外部メモリ３２０は、少なくとも１フレーム分のＣｏｌＰｉｃの動きベクトルを格納できる記憶容量を備えたＦＩＦＯ（First In／First Out）方式のメモリであり、例えばＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）などからなる。外部メモリ３２０は、後述するように、少なくとも、１６×１６の基本ＭＢが水平方向に並列されたライン（以下、ＭＢラインと呼ぶ）のライン数Ｎ（Ｎは２以上の整数）だけのメモリ領域３２０−１〜３２０−Ｎに分割されている。メモリ領域３２０−１〜３２０−Ｎはそれぞれ同じ記憶容量を備えている。
【００５０】
ＭＶ書き込み制御部３３０は、ＭＶ生成部３１０からの動きベクトルを、ＣｏｌＰｉｃの動きベクトルとして外部メモリ３２０に対して書き込むための書き込み動作を制御する。このとき、後述するように、このＣｏｌＰｉｃとこれを参照するＣｕｒｒＰｉｃの各符号化タイプがどのような組み合わせであっても対応し易くなるように、ＣｏｌＰｉｃの動きベクトルを外部メモリ３２０の適切な記憶領域に書き込む。
【００５１】
このＭＶ書き込み制御部３３０は、外部メモリ３２０に対する書き込みアドレスのオフセット値を出力するオフセット出力部３３１を備えている。オフセット出力部３３１は、入力されたＣｕｒｒＰｉｃの符号化タイプがＭＢＡＦＦか否かを示すフラグである「ＭＢＡＦＦ」と、ＦＬＤであるか否かを示すフラグである「ＦＩＥＬＤＦＬＧ」とを基に、ＣｕｒｒＰｉｃの符号化タイプを判別する。また、現処理対象のＭＢ（ＣｕｒｒＭＢ）がフィールド構造の場合は、「ＢＯＴＴＯＭＦＬＧ」を基にフィールド種別（トップ・フィールドまたはボトム・フィールド）を判別する。さらに、「ＭＢＰＯＳＹ」を基にＣｕｒｒＭＢ（ここでは１６×１６の基本ＭＢを指す）の垂直位置を判別する。そして、これらの判別結果を基にオフセット値を発生する。ＭＶ書き込み制御部３３０は、オフセット出力部３３１からのオフセット値を先頭にして外部メモリ３２０に対する書き込みアドレスＷＡＤを発生し、書き込みイネーブル信号ＷＥＮの出力期間に書き込みデータＷＤＴとして動きベクトルを出力する。
【００５２】
内部バッファ３４１および３４２は、それぞれＦＩＦＯ方式のバッファメモリであり、ＭＶ読み出し制御部３５０からの制御の下で、外部メモリ３２０から読み出された動きベクトルを一時的に格納した後、ＭＶ読み出し制御部３５０に出力する。
【００５３】
ＭＶ読み出し制御部３５０および分割サイズ統合部３６０には、動きベクトルの演算対処とされているＣｕｒｒＰｉｃに関する「ＭＢＰＯＳＹ」が変化するごとに、外部メモリ３２０のメモリ領域３２０−１〜３２０−Ｎの先頭を示すように読み出しアドレスをオフセットさせるオフセット出力部３７０が設けられている。また、ＭＶ読み出し制御部３５０および分割サイズ統合部３６０には、ＣｕｒｒＰｉｃとＣｏｌＰｉｃの各符号化タイプの組み合わせに応じて外部メモリ３２０からの動きベクトルの読み出しモードを判定するための読み出しモード判定テーブル３８１と、この読み出しモードとＭＢＣｏｌのブロック分割状態（以下、ＭＢタイプと呼ぶ）とに応じてＣｕｒｒＭＢのＭＢタイプを判定するためのＭＢタイプ判定テーブル３８２とが接続されている。
【００５４】
ＭＶ読み出し制御部３５０は、「ＭＢＡＦＦ」「ＦＩＥＬＤＦＬＧ」「ＢＯＴＴＯＭＦＬＧ」の各フラグに基づくＣｕｒｒＰｉｃの符号化タイプおよびフレーム構造／フィールド構造の種別（以下、フレーム／フィールド種別と呼ぶ）と、ＣｏｌＰｉｃの符号化タイプおよびフレーム／フィールド種別とを基に、読み出しモード判定テーブル３８１に従って外部メモリ３２０から動きベクトルを読み出し、内部バッファ３４１および３４２を介してそれらの動きベクトルを分割サイズ統合部３６０に出力する。ここで、読み出しモード判定テーブル３８１に従い、必要に応じて外部メモリ３２０からの動きベクトルを２つの内部バッファ３４１および３４２に振り分けて読み出すことで、ＣｕｒｒＭＢ内の各ブロックの動きベクトルをダイレクト演算するために必要な動きベクトルが適切な順番で確実に読み出される。
【００５５】
分割サイズ統合部３６０は、ＭＢタイプ判定テーブル３８２に従い、ＭＶ読み出し制御部３５０が読み出した動きベクトルを適用すべきＣｕｒｒＭＢのＭＢタイプを、ＣｏｌＰｉｃのＭＢ（ＭＢＣｏｌ）のＭＢタイプに応じて決定する。この処理により、ＣｕｒｒＭＢ内で分割されたブロックが必要に応じて統合されてブロック数が減少し、ダイレクトＭＶ演算部３１１に演算させる動きベクトルの数（符号化時には符号化対象となる動きベクトルの数）を減らすことができる。
【００５６】
以下、上記のメモリ制御機能について、より詳しく説明する。まず、外部メモリ３２０に対する動きベクトルの書き込み制御について説明する。
図５は、ＭＶ書き込み制御部の内部構成例を示すブロック図である。
【００５７】
図５に示すように、ＭＶ書き込み制御部３３０は、上述したオフセット出力部３３１と、ライトアドレス生成部３３２と、ライトデータ生成部３３３とを備えている。ライトアドレス生成部３３２は、オフセット出力部３３１からのオフセット値をＭＢラインごとの書き込みアドレスの先頭として、ＭＶ生成部３１０からの動きベクトルＭＶと、ＭＢごとのヘッダ情報とを書き込むための書き込みアドレスＷＡＤを生成する。ライトデータ生成部３３３は、ＭＶ生成部３１０において動きベクトルＭＶが生成される際に識別されたＭＢの分割サイズの情報を基にヘッダ情報を生成し、そのヘッダ情報と動きベクトルＭＶとを書き込みデータＷＤＴとして外部メモリ３２０に出力する。以上の構成により、ＭＶ書き込み制御部３３０は、次の図６に示すようなフォーマットで動きベクトルＭＶを外部メモリ３２０に格納する。
【００５８】
図６は、外部メモリにおけるＣｏｌＰｉｃ格納フォーマットを示す図である。
なお、この図６において、「ＭＢ＿ＰＯＳ」は、１６×１６の基本ＭＢのピクチャ内での水平方向、垂直方向の位置を示す。また、ラインサイズ（LINESIZE）は、外部メモリ３２０に割り当てられた１ＭＢライン分の記憶領域の容量を示し、これらはメモリ領域３２０−１〜３２０−Ｎのそれぞれの容量に対応する。
【００５９】
符号化タイプ（Coding Type）がＦＲＭの場合、動きベクトルは、外部メモリ３２０内のメモリ領域３２０−１〜３２０−Ｎに対して、ＭＢラインごとに順次、格納されていく。
【００６０】
また、符号化タイプがＦＬＤの場合、まず、トップ・フィールドのＭＢラインの動きベクトルが、メモリ領域３２０−１〜３２０−Ｎのうちの奇数番号領域に順次格納された後、続いてボトム・フィールドのＭＢラインの動きベクトルが偶数番号領域に順次格納される。これにより、トップ・フィールドのＭＢライン、およびボトム・フィールドのＭＢラインの各動きベクトルが、外部メモリ３２０内のメモリ領域３２０−１〜３２０−Ｎに対して交互に格納される。すなわち、フィールド構造の画像データがフレーム構造のデータ順に変換された状態となる。
【００６１】
符号化タイプがＭＢＡＦＦの場合、ピクチャ内のＭＢは上下に隣接した基本ＭＢのペア（ＭＢペア）を単位として処理されることから、外部メモリ３２０においては、水平方向に並列されたＭＢペアの１列（ＭＢペア・ラインと呼ぶ）分に対して、２ラインサイズ分の領域（すなわちメモリ領域３２０−１〜３２０−Ｎのうちの隣接する２領域）が割り当てられて、ＭＢペアの処理順に外部メモリ３２０に格納される。
【００６２】
ここで、上記のいずれの符号化タイプの場合にも、ＭＢ内のブロック分割状態はＭＢごとに異なるので、メモリ領域３２０−１〜３２０−Ｎ（ＭＢＡＦＦの場合は２領域のそれぞれ）に格納される情報量はそれぞれ異なる。符号化タイプがＦＲＭおよびＦＬＤの場合には、各メモリ領域３２０−１〜３２０−Ｎでは、対応するＭＢラインの動きベクトルがすべて格納されたときに余剰スペースが存在する場合でも、次のＭＢラインの動きベクトルは次のメモリ領域の先頭から書き込まれる。同様にＭＢＡＦＦの場合には、ＭＢペア・ライン単位の各割り当て領域では、対応するＭＢペア・ラインの動きベクトルがすべて格納されたときに余剰スペースが存在する場合でも、次のＭＢペア・ラインの動きベクトルは次の割り当て領域の先頭から書き込まれる。
【００６３】
このような書き込みが行われることにより、従来のように、ＣｏｌＰｉｃ内のブロックをすべて最小単位の４×４のサブＭＢに変換し、このサブＭＢの数だけ動きベクトルをメモリ上に展開した場合と比較して、メモリ内に格納される動きベクトルの数が抑制される。従って、書き込み時のメモリアクセス回数、および、この後にＭＶ読み出し制御部３５０によって動きベクトルが読み出される際のメモリアクセス回数の双方ともに抑制することができ、処理速度を高めることができる。
【００６４】
次に、外部メモリ３２０からのデータ読み出し制御について詳しく説明する。
まず、図７は、読み出しモード判定テーブルの内容を示す図である。
読み出しモード判定テーブル３８１には、図７に示すように、ＣｏｌＰｉｃの符号化タイプおよびフレーム／フィールド種別と、ＣｕｒｒＰｉｃの符号化タイプおよびフレーム／フィールド種別とのすべての組み合わせに対して、「０」〜「６」までの７種類の読み出しモードのいずれかが設定されている。なお、図７以降の図では、ＭＢのフレーム／フィールド種別について、フレーム構造のＭＢを「ｆｒｍ」、フィールド構造のＭＢを「ｆｌｄ」と表す。
【００６５】
ＭＶ読み出し制御部３５０は、読み出しモード判定テーブル３８１を参照し、ＣｏｌＰｉｃの符号化タイプおよびフレーム／フィールド種別と、ＣｕｒｒＰｉｃの符号化タイプおよびフレーム／フィールド種別との組み合わせに対応する読み出しモードを選択し、そのモードに従って、外部メモリ３２０に格納された動きベクトルを内部バッファ３４１および３４２に読み出す。
【００６６】
また、図７では、各読み出しモードにおいて使用する内部バッファ３４１および３４２の数も参考のために記載しており、「１」の場合は内部バッファ３４１のみが使用され、「２」の場合は内部バッファ３４１および３４２の両方が使用されることを意味する。さらに、読み出しモード判定テーブル３８１には、ＣｕｒｒＭＢとＭＢＣｏｌとの間のフレーム／フィールド種別の組み合わせに応じたモード情報である「ＭＢＣｏｌＭｏｄｅ」も設定されている。
【００６７】
なお、ＣｕｒｒＰｉｃの符号化タイプがＭＢＡＦＦ、ＣｏｌＰｉｃの符号化タイプがＦＲＭとなる組み合わせは、Ｈ．２６４の規格上存在しないため、読み出しモード判定テーブル３８１には設定されていない。
【００６８】
ここで、図８および図９を用いて、ＭＢＣｏｌＭｏｄｅ０〜４によって分類されるＣｕｒｒＭＢとＭＢＣｏｌとの間の関係について説明し、その後に、各読み出しモードでの読み出し手順について具体的に説明する。
【００６９】
図８および図９は、ＣｕｒｒＭＢとＭＢＣｏｌとの間のフレーム／フィールド種別の代表的な組み合わせと、ブロック間の対応関係について説明するための図である。
ＭＢＣｏｌＭｏｄｅ０では、ＣｕｒｒＭＢおよびＭＢＣｏｌがともにフレーム構造（ただし、符号化タイプがともにＦＲＭ）になっており、この場合のＣｕｒｒＭＢおよびＭＢＣｏｌの最小のブロックは、図８（Ａ）のように、ともに４×４のサイズとなる。従って、ＣｕｒｒＭＢ内の各ブロックの動きベクトルは、ＭＢＣｏｌ内の同じ位置のブロックの動きベクトルからダイレクト演算することができるので、ダイレクト演算の際にはＭＢＣｏｌ内のブロックをブロック処理順に取得できればよい。なお、図８および９では、ブロックの中に数字が付されているが、この数字は、ＣｕｒｒＭＢ内のブロックの動きベクトルが、同じ数字が付されたＭＢＣｏｌ内のブロックから演算できることを意味している。
【００７０】
ＭＢＣｏｌＭｏｄｅ１では、ＣｕｒｒＭＢおよびＭＢＣｏｌがともにフレーム構造（ただし、符号化タイプがともにＭＢＡＦＦ）、あるいは、ＣｕｒｒＭＢおよびＭＢＣｏｌがともにフィールド構造（符号化タイプはそれぞれＦＲＭまたはＭＢＡＦＦのいずれか）になっている。これらの組み合わせでは、図８（Ｂ）のように、ＭＢＣｏｌの最小ブロックは４×４であるが、ＣｕｒｒＭＢの最小ブロックは８×８となる。このため、ＣｕｒｒＭＢ内のＭＢ５０１〜５０４の各動きベクトルは、それぞれＭＢＣｏｌ内のサブＭＢ５０５〜５０８のみからダイレクト演算される。
【００７１】
ＭＢＣｏｌＭｏｄｅ２および３では、ＣｕｒｒＭＢがフレーム構造（符号化タイプはＦＲＭまたはＭＢＡＦＦのいずれか）、ＭＢＣｏｌがフィールド構造（符号化タイプはＦＬＤ）になっている。ただし、ＭＢＣｏｌＭｏｄｅ２は、ＣｕｒｒＭＢの奇数ライン演算時に対応し、ＭＢＣｏｌＭｏｄｅ３は、ＣｕｒｒＭＢの偶数ライン演算時に対応する。これらの組み合わせでは、図９（Ａ）および（Ｂ）のように、ＭＢＣｏｌの最小ブロックは４×４であるが、ＣｕｒｒＭＢの最小ブロックは８×８となる。
【００７２】
ＭＢＣｏｌＭｏｄｅ２では、図９（Ａ）に示すように、ＣｕｒｒＭＢ内のＭＢ５１１〜５１４の各動きベクトルは、それぞれＭＢＣｏｌ内のサブＭＢ５１５〜５１８からダイレクト演算される。一方、ＭＢＣｏｌＭｏｄｅ３では、図９（Ｂ）に示すように、ＣｕｒｒＭＢ内のＭＢ５２１〜５２４の各動きベクトルは、それぞれ図９（Ｂ）と同じＭＢＣｏｌ内のサブＭＢ５２５〜５２８からダイレクト演算される。従って、上記の符号化タイプの組み合わせでは、ＣｕｒｒＭＢの奇数ライン、偶数ラインの各ベクトル演算のために、それぞれ同じＭＢＣｏｌのデータを個別に取得する必要がある。
【００７３】
ＭＢＣｏｌＭｏｄｅ４は、上記各モード以外の場合に適用される。図９（Ｃ）ではこれらのうち、ＣｕｒｒＭＢがフィールド構造（符号化タイプはＦＬＤ）、ＭＢＣｏｌがフィールド構造（符号化タイプはＦＬＤ）の場合を示している。この場合、ＣｕｒｒＭＢの動き予測には、トップ・フィールド用およびボトム・フィールド用に上下に隣接する２つのＭＢＣｏｌをそれぞれ参照する必要がある。図９（Ｃ）に示すように、ＣｕｒｒＭＢ内のＭＢ５３１および５３２の各動きベクトルは、それぞれＭＢＣｏｌ内のサブＭＢ５３５および５３６からダイレクト演算され、ＣｕｒｒＭＢ内のＭＢ５３３および５３４の動きベクトルは、１つ下側に隣接するＭＢＣｏｌ内のサブＭＢ５３７および５３８からそれぞれダイレクト演算される。
【００７４】
次に、図１０〜図１２は、各読み出しモードでの読み出し手順について説明するための図である。また、図１３〜図１９は、各読み出しモードでのＭＢＣｏｌとＭＢＣｏｌとの対応について説明するための図である。
【００７５】
なお、図１０〜図１２において、丸印の中の数字はデータ読み出しの順番を示している。また、図１３〜図１８において、上段は、外部メモリ３２０に対するＭＢＣｏｌの書き込み順、中段は、読み出しモードを適用したときの外部メモリ３２０からのＭＢＣｏｌの読み出し順、下段は、ＣｕｒｒＭＢのダイレクト演算時の処理順をそれぞれ示しており、点線矢印は、上段からそれぞれデータの書き込み順、読み出し順、演算処理順を示している。また、基本ＭＢ内のブロック分割状態についてはあくまで例であり、「ＭＶ０，ＭＶ１，……」は、各基本ＭＢに含まれる動きベクトルを、基本ＭＢ内での処理順に従って記載したものである。
【００７６】
読み出しモード０は、ＣｕｒｒＰｉｃ、ＣｏｌＰｉｃの符号化タイプがともにＦＬＤの場合に設定される。このような組み合わせの場合は、ＭＢＣｏｌとＣｕｒｒＭＢの関係は図８（Ｂ）のようになるので、各フィールドのＣｕｒｒＭＢの動きベクトルを演算するには、それぞれ対応するフィールドのＭＢＣｏｌを外部メモリ３２０から順次読み込めばよい。
【００７７】
このことから、読み出しモード０では、図１０（Ａ）に示すように、トップ・フィールドのデータ読み出し時には、外部メモリ３２０内のトップ・フィールドのＭＢライン（Ｔｏｐ＿０，Ｔｏｐ＿１，……）のデータを、順次内部バッファ３４１に対して読み出す。すなわち、外部メモリ３２０上のメモリ領域３２０−１〜３２０−Ｎのうち、奇数番号の領域のデータが順次内部バッファ３４１に読み出される。また、ボトム・フィールドのデータ読み出し時には、同様に、ボトム・フィールドのＭＢライン（Ｂｏｔｔｏｍ＿０，Ｂｏｔｔｏｍ＿１，……）のデータ（すなわち、偶数番号のメモリ領域のデータ）が順次内部バッファ３４１に読み出される。
【００７８】
ここで、図１３では、上記符号化タイプの組み合わせでのトップ・フィールドに対応するＣｏｌＰｉｃ６０１およびＣｕｒｒＰｉｃ６０２を示している。ＣｏｌＰｉｃ６０１のデータは、図１３の上段に示すような順序で外部メモリ３２０に格納されているので、ＣｏｌＰｉｃ６０１のデータを外部メモリ３２０からフィールド別にメモリ領域順に読み出したときのＭＢＣｏｌの出力順（図１３の中段参照）は、同図下段に示すように、ＣｕｒｒＰｉｃ６０２内のＣｕｒｒＭＢをフィールド別に処理する際の処理順と一致する。従って、図１０（Ａ）の読み出し順でトップ・フィールド（またはボトム・フィールド）のＭＢＣｏｌを順次内部バッファ３４１に転送し、この内部バッファ３４１からＭＢごとに順次データを取得することで、ダイレクト・モードが設定されたＣｕｒｒＭＢ（例えばＭＢ６０３）の演算に必要なＭＢＣｏｌ（例えばＭＢ６０４）の動きベクトルを確実に取得できる。
【００７９】
読み出しモード１は、ＣｕｒｒＰｉｃ、ＣｏｌＰｉｃの符号化タイプがそれぞれＦＬＤ、ＦＲＭの場合に設定される。この符号化タイプの組み合わせでは、図９（Ｃ）で説明したように、ＣｕｒｒＭＢのトップ・フィールド用とボトム・フィールド用の各動きベクトルを演算するために、上下に隣接する２つのＭＢＣｏｌのデータが必要となる。このため、読み出しモード１では、図１０（Ｂ）に示すように、２つの内部バッファ３４１および３４２を使用し、外部メモリ３２０上の隣接する２つのＭＢライン（ＭＢＬｉｎｅ＿０とＭＢＬｉｎｅ＿１など）のデータ（すなわち隣接するメモリ領域のデータ）をそれぞれ並列に内部バッファ３４１および３４２に読み出す。
【００８０】
ここで、ＣｏｌＰｉｃ６１１のデータは、図１４の上段のような順序で外部メモリ３２０に格納されている。一方、ＣｕｒｒＰｉｃ６１２内のＣｕｒｒＭＢは、フィールドごとに図１４の下段のような順で処理される。例えば、ＣｕｒｒＰｉｃ６１２内のＭＢ６１３に対応するＣｕｒｒＭＢにダイレクト・モードが設定されていたとすると、このＭＢ６１３の動きベクトルをダイレクト演算するためには、ＣｏｌＰｉｃ６１１内のＭＢ６１４および６１５の両方のデータが必要となる。
【００８１】
そこで、読み出しモード１では、図１４の中段に示すように、ＭＢ６１４のデータを含むＭＢラインと、ＭＢ６１５のデータを含むＭＢラインとがそれぞれ内部バッファ３４１および３４２に並列に供給される。従って、内部バッファ３４１および３４２のそれぞれからＭＢごとに順次データを取得することで、所望のＭＢＣｏｌ（ここではＭＢ６１４および６１５）のデータを確実に取得できる。
【００８２】
読み出しモード２は、ＣｕｒｒＰｉｃ、ＣｏｌＰｉｃの符号化タイプがそれぞれＦＲＭ、ＭＢＡＦＦの場合に設定される。図１５の上段に示すように、符号化タイプがＭＢＡＦＦであるＣｏｌＰｉｃ６２１のデータは、ＭＢペア・ラインごとに外部メモリ３２０の各メモリ領域３２０−１〜３２０−Ｎに格納されている。一方、図１５の下段では、トップ・フィールド（またはボトム・フィールド）に対応するＣｕｒｒＰｉｃ６２２を示しているが、このＣｕｒｒＰｉｃ６２２上の所望のＣｕｒｒＭＢの動きベクトルをダイレクト演算したい場合には、ＣｏｌＰｉｃ６２１上のデータをＭＢペア単位で取得する必要がある。例えば、ＣｕｒｒＰｉｃ６２２上のＭＢ６２３のダイレクト演算のためには、ＣｏｌＰｉｃ６２１上のＭＢ６２４および６２５のデータが必要となる。
【００８３】
従って、読み出しモード２では、図１５の中段および図１１（Ａ）に示すように、外部メモリ３２０内のＭＢペア・ライン（図１１（Ａ）におけるＭＢＬｉｎｅ０，１のペア、ＭＢＬｉｎｅ２，３のペア、……）のデータを、順次内部バッファ３４１に読み出せばよい。すなわち、実際の動作では、メモリ領域３２０−１〜３２０−Ｎのデータを順次内部バッファ３４１に転送し、内部バッファ３４１の出力からＭＢペア単位でデータを読み出すことで、所望のＭＢＣｏｌの動きベクトルを確実に取得できる。
【００８４】
読み出しモード３は、ＣｕｒｒＰｉｃ、ＣｏｌＰｉｃの符号化タイプがそれぞれＦＲＭ、ＦＬＤの場合に設定される。このような組み合わせの場合は、図９（Ａ）および（Ｂ）で説明したように、ＣｕｒｒＰｉｃの奇数ラインの動きベクトルを、ＣｏｌＰｉｃの所定ＭＢラインのデータから演算した後、その同じＣｏｌＰｉｃのＭＢラインのデータから、ＣｕｒｒＰｉｃの偶数ラインの動きベクトルを演算する必要がある。このため、読み出しモード３では、図１１（Ｂ）に示すように、外部メモリ３２０内のトップ・フィールドのＭＢライン（Ｔｏｐ＿０，Ｔｏｐ＿１，……）のデータ（すなわち奇数番号のメモリ領域のデータ）が２回ずつ、内部バッファ３４１に順次読み出される。
【００８５】
ここで、ＣｏｌＰｉｃ６３１のデータは、図１６の上段に示すように、まずトップ・フィールドのＭＢラインのデータが外部メモリ３２０内の奇数番号のメモリ領域に書き込まれた後、ボトム・フィールドのＭＢラインのデータが偶数番号のメモリ領域に書き込まれる。そして、読み出しモード３では、図１６の中段に示すように、奇数番号のメモリ領域からＭＢＣｏｌのデータが２回、内部バッファ３４１に転送された後、次の奇数番号のメモリ領域からＭＢＣｏｌのデータが同様に２回、内部バッファ３４１に転送される。
【００８６】
これにより、内部バッファ３４１からは、同じＭＢライン上のＭＢＣｏｌのデータが２回連続して出力される。従って、図１６の下段のように、ＣｕｒｒＰｉｃ６３２内の例えばＭＢ６３３の動きベクトルをダイレクト演算したいときは、まず、奇数ラインの演算のためにＣｏｌＰｉｃ６３１のＭＢ６３４のデータを取得でき、続いて偶数ラインの演算のために同じＭＢ６３４のデータを取得できるようになる。
【００８７】
読み出しモード４は、ＣｕｒｒＰｉｃ、ＣｏｌＰｉｃの符号化タイプがともにＦＲＭの場合に設定される。このような組み合わせの場合は、ＭＢＣｏｌとＣｕｒｒＭＢの関係は図８（Ａ）のようになるので、ＣｕｒｒＭＢの動きベクトルをダイレクト演算するには、ＭＢＣｏｌのデータをブロック処理順に読み込めばよい。従って、読み出しモード４では、図１２（Ａ）のように、外部メモリ３２０内のＭＢライン（ＭＢＬｉｎｅ０，ＭＢＬｉｎｅ１，……）のデータ（すなわちメモリ領域３２０−１〜３２０−Ｎのデータ）を、内部バッファ３４１にＭＢライン順に読み出す。なお、図１７では、ＣｏｌＰｉｃ６４１のデータを外部メモリ３２０からメモリ領域順に読み出したときのＭＢＣｏｌの出力順が、ＣｕｒｒＰｉｃ６４２内のＣｕｒｒＭＢの処理順と一致することを示している。
【００８８】
読み出しモード５は、ＣｕｒｒＰｉｃ、ＣｏｌＰｉｃの符号化タイプがそれぞれＭＢＡＦＦ、ＦＬＤの場合に設定される。このような組み合わせの場合は、ＭＢＣｏｌとＣｕｒｒＭＢとの関係は、図９（Ａ）および（Ｂ）に示したＣｕｒｒＭＢを、それぞれＭＢペアの上側、下側と考えたときと同じである。このため、ＣｕｒｒＰｉｃではＭＢペアを単位として動きベクトルが演算されるため、外部メモリ３２０のＭＢＣｏｌのデータを上下の組み合わせで順次取得する必要がある。そこで、読み出しモード５では、図１２（Ｂ）に示すように、隣接するＭＢラインのうちの上側のデータ（例えばＴｏｐ＿０のデータ）を内部バッファ３４１に対して、下側のデータ（例えばＢｏｔｔｏｍ＿０のデータ）を内部バッファ３４２に対して、それぞれ並列に読み出す。すなわち、メモリ領域３２０−１〜３２０−Ｎのうち、奇数番号のメモリ領域を内部バッファ３４１に、偶数番号のメモリ領域を内部バッファ３４２に読み出す。
【００８９】
図１８の上段では、ＣｏｌＰｉｃ６５１のデータの外部メモリ３２０への書き込み順を、トップ・フィールド、ボトム・フィールドの各データ（ＣｏｌＰｉｃ６５１ａおよび６５１ｂ）として示している。図６のフォーマットにより、各フィールドにおける同じＭＢラインのデータは、外部メモリ３２０上では隣接するメモリ領域に格納される。一方、図１８の下段のように、ＣｕｒｒＰｉｃ６５２のダイレクト演算はＭＢペア単位で実行される。
【００９０】
従って、図１８の中段のように、隣接するＭＢラインのうちの上側および下側のデータをそれぞれ内部バッファ４３１および４３２に対して並列に転送することにより、各内部バッファ３４１および３４２からＭＢペア単位でデータを確実に取り出すことができるようになる。例えば、ＣｕｒｒＰｉｃ６５２上のＭＢペア６５３にダイレクト・モードが設定されていたときには、ＣｏｌＰｉｃ６５１上のＭＢ６５４および６５５のデータを連続して取得し、演算に適用できるようになる。
【００９１】
読み出しモード６は、ＣｕｒｒＰｉｃ、ＣｏｌＰｉｃの符号化タイプがともにＭＢＡＦＦの場合に設定される。この場合には、図１９の上段および下段に示すように、ＣｏｌＰｉｃ６６１のデータの外部メモリ３２０への書き込み順と、ＣｕｒｒＰｉｃ６６２の処理順とが一致する。従って、読み出しモード６では、図１２（Ｃ）および図１９の中段に示すように、外部メモリ３２０内のＭＢペア・ライン（ＭＢＬｉｎｅ０，１のペア、ＭＢＬｉｎｅ２，３のペア、……）のデータが、順次内部バッファ３４１に読み出される。すなわち、メモリ領域３２０−１〜３２０−Ｎのデータが順次内部バッファ３４１に読み出されることになる。
【００９２】
ここで、図２０は、ＭＶ読み出し制御部が備える内部バッファの読み出し制御機能の構成例を示すブロック図である。
ＭＶ読み出し制御部３５０は、上記機能として、リードアドレス生成部３５１および３５２と、ヘッダ情報解析部３５３および３５４と、ＣｏｌＭＶ格納部３５５および３５６と、セレクタ３５７とを具備している。
【００９３】
リードアドレス生成部３５１および３５２は、それぞれ内部バッファ３４１および３４２に対する読み出しアドレスを生成する。リードアドレス生成部３５１および３５２は、オフセット出力部３７０からのオフセット値の出力タイミングを基に、ＣｕｒｒＰｉｃ内のＭＢラインごとの処理タイミングと同期する。セレクタ３５７は、リードアドレス生成部３５１および３５２からの出力アドレスを、それぞれ内部バッファ３４１および３４２に供給する。
【００９４】
ヘッダ情報解析部３５３および３５４は、それぞれ内部バッファ３４１および３４２に格納されたＣｏｌＰｉｃのデータのうち、ＭＢＣｏｌごとに付加されているヘッダ情報を取得する。ヘッダ情報には、ＭＢＣｏｌの分割サイズの情報が格納されているので、ヘッダ情報解析部３５３および３５４は、そのヘッダ情報を解析してＭＢＣｏｌのブロック分割数を判別し、それぞれリードアドレス生成部３５１および３５２に出力する。また、ヘッダ情報から抽出した分割サイズの情報は、分割サイズ統合部３６０に対しても出力される。
【００９５】
リードアドレス生成部３５１および３５２は、供給されたブロック分割数の分だけ、出力する読み出しアドレスをインクリメントする。これにより、内部バッファ３４１および３４２からは、ＭＢＣｏｌに含まれている動きベクトルが読み出される。内部バッファ３４１および３４２からの動きベクトルは、それぞれＣｏｌＭＶ格納部３５５および３５６に供給されて一旦格納された後、分割サイズ統合部３６０に出力される。
【００９６】
図２１は、２つの内部バッファを用いた場合のデータ読み出しを模式的に説明するための図である。なお、この図２１（次の図２２も同様）では、基本ＭＢ内の各ブロックの動きベクトルを、基本ＭＢ内の処理順に従って「ＭＶ０，ＭＶ１，……」と示している。
【００９７】
図２１では、例として読み出しモード１の場合について示している。この図において、ＣｏｌＰｉｃ７０１の動きベクトルは、外部メモリ３２０のメモリ領域３２０−１〜３２０−Ｎのそれぞれに対してＭＢラインごとに格納される。ＣｏｌＰｉｃ７０１では、基本ＭＢ（ＭＢＣｏｌ）ごとにブロックの分割サイズが異なるため、同図の中段に示すように、外部メモリ３２０のメモリ領域３２０−１〜３に格納される動きベクトルの数はそれぞれ異なる。すなわち、各ＭＢラインの動きベクトルは可変長データとして外部メモリ３２０に格納される。
【００９８】
このような状態から、隣接するメモリ領域（ここではメモリ領域３２０−１および３２０−２）のデータが並列に読み出され、それぞれ内部バッファ３４１および３４２に対して転送される。このとき、１つのＭＢラインに対応する動きベクトルを、１つのメモリ領域から連続したアクセスにより（すなわち、連続した読み出しアドレスを指定することにより）読み出すことができる。
【００９９】
内部バッファ３４１および３４２でのデータ格納状態は、同図の下段のようになる。この状態から、ヘッダ情報解析部３５３および３５４が、内部バッファ３４１および３４２からヘッダ情報を並列に読み出して、ブロック分割数をリードアドレス生成部３５１および３５２に通知することで、その都度、ブロック分割数だけの動きベクトルが各内部バッファ３４１および３４２から出力される。このような制御により、例えばＣｏｌＰｉｃ７０１の基本ＭＢ７０２および７０３の動きベクトルを、内部バッファ３４１および３４２から同時に（あるいは連続的に）出力させ、ダイレクト演算に用いることが可能となる。
【０１００】
また、図２２は、１つの内部バッファを用いた場合のデータ読み出しを模式的に説明するための図である。
図２２では、例として読み出しモード６の場合について示している。この図において、ＣｏｌＰｉｃ７１１の動きベクトルは、ＭＢペア・ライン単位で、外部メモリ３２０のメモリ領域３２０−１〜３２０−Ｎのうちの隣接する２つの領域に格納される。この場合も、各ＭＢペア・ラインの動きベクトルは可変長データとして外部メモリ３２０に格納される。
【０１０１】
このような状態から、隣接するメモリ領域（例えば、メモリ領域３２０−１，３２０−２）のデータが内部バッファ３４１に転送される。このとき、ＭＢペア・ライン単位の動きベクトルを連続したアクセスで読み出すことができる。
【０１０２】
内部バッファ３４１および３４２でのデータ格納状態は、同図の下段のようになるが、このように内部バッファ３４２にデータが格納されていない場合、ヘッダ情報解析部３５３のみが内部バッファ３４１からヘッダ情報を読み出し、ブロック分割数をリードアドレス生成部３５１に通知することで、そのブロック分割数だけの動きベクトルが内部バッファ３４１から出力される。これにより、例えばＣｏｌＰｉｃ７１１のＭＢペアである基本ＭＢ７１２および７１３の動きベクトルを、内部バッファ３４１から連続して取り出し、ダイレクト演算に用いることが可能となる。
【０１０３】
ここでさらに、２つの内部バッファ３４１および３４２を用いた場合（読み出しモード１）のデータ読み出し手順の具体例を挙げて説明する。図２３は、以下のデータ読み出し手順の説明に用いるＭＢラインのブロック構成例を示す図である。
【０１０４】
ここでは、図２３に示すようなブロック構造を持つＭＢライン７２１および７２２の各データが、外部メモリ３２０内の隣接するメモリ領域に記憶されているものとする。この図２３に示すように、ＭＢライン７２１および７２２は、ＭＢＣｏｌ７３１〜７３５、ＭＢＣｏｌ７４１〜７４５のそれぞれ５つの基本ＭＢから構成されるが、ＭＢライン７２１および７２２のそれぞれの先頭からの基本ＭＢのブロック分割数や分割ブロックの大きさはまったく異なっている。
【０１０５】
図２４は、図２３に示すような隣接するＭＢラインのデータを２つの内部バッファに格納する際のタイムチャートを示す図である。
なお、図２４において、ＷＥＮ＿Ｂｕｆ１およびＷＥＮ＿Ｂｕｆ２は、それぞれ内部バッファ３４１および３４２に対する書き込みイネーブル信号を示し、ＷＡＤ＿Ｂｕｆ１およびＷＡＤ＿Ｂｕｆ２は、それぞれ内部バッファ３４１および３４２に対する書き込みアドレスを示し、ＷＤＴ＿Ｂｕｆ１およびＷＤＴ＿Ｂｕｆ２は、それぞれ内部バッファ３４１および３４２に対する書き込みデータを示す。
【０１０６】
ここでは、例として、図２３に示したブロック構造を持つＭＢライン７２１および７２２のデータを、それぞれ内部バッファ３４１および３４２に並列に転送する際の動作例を示す。上述したＭＶ書き込み制御部３３０の処理により、外部メモリ３２０には、各ＭＢＣｏｌのデータとして、ヘッダ情報に続いて動きベクトルのデータが格納されている。ヘッダ情報には、ＭＢＣｏｌの最小で８×８までのブロック分割サイズを示す「ＭＢ分割サイズ」と、８×８のＭＢ内でのサブＭＢの分割サイズを示す「サブＭＢ分割サイズ（０）〜（３）」が格納されている。なお、サブＭＢ分割サイズ（０）〜（３）は、ＭＢ分割サイズが８×８のときだけ生成される。
【０１０７】
スライスの先頭となるＭＢライン７２１および７２２の先頭データの読み出しは、タイミングＴ１において同時に開始される。期間Ｐ１１〜Ｐ１５では、それぞれＭＢライン７２１内のＭＢＣｏｌ７３１〜７３５のヘッダ情報および動きベクトルの各データが内部バッファ３４１に転送される。また、期間Ｐ２１〜Ｐ２５では、それぞれＭＢライン７２２内のＭＢＣｏｌ７４１〜７４５のヘッダ情報および動きベクトルの各データが内部バッファ３４２に転送される。
【０１０８】
図２５は、２つの内部バッファからデータを読み出す際のタイムチャートを示す図である。
なお、図２５において、ＲＥＮ＿Ｂｕｆは、内部バッファ３４１および３４２に対して出力する読み出しイネーブル信号を示し、ＲＡＤ＿Ｂｕｆは、内部バッファ３４１および３４２に対して出力する読み出しアドレスを示し、ＲＤＴ＿Ｂｕｆは、内部バッファ３４１および３４２から読み出したデータを示す。
【０１０９】
図２５において、期間Ｐ３１，Ｐ３３，Ｐ３５，Ｐ３７は、内部バッファ３４１からデータが読み出される期間であり、期間Ｐ３２，Ｐ３４，Ｐ３６，Ｐ３８は、内部バッファ３４２からデータが読み出される期間である。各期間では、最初にヘッダ情報解析部３５３または３５４によってヘッダ情報が読み込まれた後、そのヘッダ情報から判別されたブロック分割数分の読み出しアドレスが発行されて、１つのＭＢＣｏｌに対応する動きベクトルが読み出される。
【０１１０】
この図２５の例では、ヘッダ情報解析部３５３および３５４が、内部バッファ３４１および３４２から交互にヘッダ情報を読み込み、それに応じて動きベクトルの読み出しが直列に実行されている。これにより、上下に隣接するＭＢＣｏｌ（例えば、図２４のＭＢＣｏｌ７３１および７４１、ＭＢＣｏｌ７３２および７４２など）の動きベクトルを、連続した期間に出力することができる。
【０１１１】
なお、この他の動作例として、ヘッダ情報解析部３５３および３５４が、各内部バッファ３４１および３４２からヘッダ情報を同時に読み込み、動きベクトルを各内部バッファ３４１および３４２から並列に読み出させて、１つのＭＢＣｏｌに対応するデータ読み出しが終了すると、次のヘッダ情報を読み込むようにしてもよい。
【０１１２】
以上のように、本実施の形態では、ＣｏｌＰｉｃとＣｕｒｒＰｉｃとの間の符号化タイプ、フレーム／フィールド種別、およびブロック分割数の組み合わせに関係なく、ＣｕｒｒＭＢの動きベクトルのダイレクト演算に必要なＭＢＣｏｌのデータを、外部メモリ３２０から確実に取り出すことができる。また、これらの組み合わせに応じた読み出し方法をテーブルにより選択するようにしたこと、ＣｏｌＰｉｃのデータを格納する外部メモリ３２０を固定容量の領域に分割して、ＭＢラインごと、またはＭＢペア・ラインごとにデータを格納したこと、外部メモリ３２０から２つの内部バッファ３４１および３４２を介して出力するようにしたことにより、比較的単純な回路構成によって上記効果を実現できる。特に、ＣｏｌＰｉｃとＣｕｒｒＰｉｃとの間でフレーム／フィールド種別が異なる場合や、符号化タイプとしてＭＢＡＦＦが設定されていた場合でも、単純な回路構成によりダイレクト・モードに確実に対応できることの効果が大きい。
【０１１３】
また、ＣｏｌＰｉｃの動きベクトルを外部メモリ３２０に格納する際には、従来のように動きベクトルをすべて４×４の最小ブロック単位に展開することなく、元のＭＢＣｏｌで生成された動きベクトルのみを格納するので、書き込みおよび読み出しの際の外部メモリ３２０へのアクセス回数およびアクセス時間を大幅に減少させることができる。特に、図２２および図２４で説明したように、ＭＢライン単位またはＭＢペア・ライン単位の動きベクトルが可変長データとなるにもかかわらず、これらの単位のデータを連続したメモリアクセスにより読み出すことができるので、読み出しに要する時間や消費電力を大幅に抑制することができる。また、読み出される動きベクトルの数が減少したことで、符号化時においては発生する符号量が減少し、画質が低下することなく、画像データの圧縮率が高められる。
【０１１４】
また、所望の位置のＭＢＣｏｌを確実に取り出すことができることから、現処理対象のＭＢの位置が途中で戻った場合でも容易に対応できる。さらに、上記の構成を用いることにより、ピクチャの途中でスライス・タイプ（Slice Type）が変更された場合や、スライスの境界において参照するＣｏｌＰｉｃが変更された場合などにも、容易に対応することができる。
【０１１５】
図２６は、スライス・タイプがピクチャの途中で変更する場合の動作を説明するための図である。
Ｈ．２６４では、ピクチャの途中でスライス・タイプを変更することが可能となっている。図２６に示すＣｕｒｒＰｉｃ８０１では、ＣｕｒｒＭＢ８０２とＣｕｒｒＭＢ８０３との間で、スライス・タイプがＰからＢに変更されている。このとき、ＣｕｒｒＭＢ８０３にダイレクト・モードが設定されていた場合でも、上記のような構成を用いて、ＣｕｒｒＭＢ８０３が参照するＣｏｌＰｉｃのデータを外部メモリ３２０に格納しておくことで、ＣｕｒｒＭＢ８０３に対応するＭＢＣｏｌの動きベクトルを上述した簡単な処理で確実に取り出すことができる。すなわち、上記構成では、ＣｏｌＰｉｃの動きベクトルをＭＢライン単位あるいはＭＢペア・ライン単位で外部メモリ３２０から読み出し、ラインの先頭から必要なＭＢＣｏｌの位置を探索するので、必要なＭＢＣｏｌの動きベクトルを簡単な処理で取得できる。
【０１１６】
図２７は、スライス境界において参照するＣｏｌＰｉｃが変更された場合の動作を説明するための図である。
Ｈ．２６４では、さらに、スライスの境界において参照画像を変更することも可能となっている。図２７（Ａ）は、このような設定が行われたＣｕｒｒＰｉｃ８１１を示しており、ＣｕｒｒＭＢ８１２とＣｕｒｒＭＢ８１３との間がスライス８１４および８１５の境界となっている。また、同図（Ｂ）は、ＣｕｒｒＰｉｃ８１１と、スライス境界の前後で参照されるピクチャ８１６および８１７との関係を示している。すなわち、ＣｕｒｒＭＢ８１２を含むスライス８１４はピクチャ８１６をＣｏｌＰｉｃとして予測符号化され、ＣｕｒｒＭＢ８１３を含むスライス８１５はピクチャ８１７をＣｏｌＰｉｃとして予測符号化される。このような場合でも、ピクチャ８１６および８１７の動きベクトルを外部メモリ３２０に格納しておくことで、参照画像が変更された場合でも、必要なＭＢＣｏｌの動きベクトルを簡単な処理で確実に取り出すことができる。
【０１１７】
次に、分割サイズ統合部３６０の処理について説明する。まず、図２８は、ＭＢタイプ判定テーブルの内容を示す図である。
ＭＢタイプ判定テーブル３８２には、図２８に示すように、ＣｕｒｒＭＢおよびＭＢＣｏｌのそれぞれのフレーム／フィールド種別の組み合わせに応じたＭＢＣｏｌＭｏｄｅが記載され、各ＭＢＣｏｌＭｏｄｅについて、ＭＢＣｏｌのＭＢタイプ（ＭＢＣｏｌ＿ＭＢＴＹＰＥ）に応じたＣｕｒｒＭＢのＭＢタイプ（ＣｕｒｒＭＢ＿ＭＢＴＹＰＥ）が設定されている。
【０１１８】
分割サイズ統合部３６０は、読み出しモード判定テーブル３８１を参照して、ＣｕｒｒＰｉｃとＣｏｌＰｉｃとの間の符号化タイプおよびフレーム／フィールド種別の組み合わせに応じて、該当し得るＭＢＣｏｌＭｏｄｅを判別した後、ＣｕｒｒＭＢの処理のたびに、このＣｕｒｒＭＢと対応するＭＢＣｏｌとの間のフレーム／フィールド種別および処理対象のライン種別の組み合わせに応じて、ＭＢタイプ判定テーブル３８２から最終的に適用するＭＢＣｏｌＭｏｄｅを判別する。そして、このときのＭＢＣｏｌのＭＢタイプに応じて、ＭＢタイプ判定テーブル３８２からＣｕｒｒＭＢのＭＢタイプを決定し、ＭＶ読み出し制御部３５０から供給されたもののうち必要な動きベクトルを、ダイレクトＭＶ演算部３１１に供給する。
【０１１９】
なお、図２８において、「統合」の項目は、ＣｕｒｒＭＢ内のブロックの統合処理、すなわちＣｕｒｒＭＢのブロック分割数をＭＢＣｏｌより減少させる処理が行われる可能性があるか否かを、参考のために示している。以下で説明するように、ＣｕｒｒＭＢ内のブロックが統合された場合には、ダイレクト演算される動きベクトルの数が減少する。このため、符号化の場合には、画質を低下させることなく、符号量を減少させて圧縮率を高くすることが可能になる。また、復号化の場合は、画像品質を落とすことなく、動きベクトルの演算および予測補償の処理負荷を軽減することが可能になる。
【０１２０】
以下、図２９〜図３２を用いて、ＭＢＣｏｌのＭＢタイプに応じて設定されるＣｕｒｒＭＢのＭＢタイプを、ＭＢＣｏｌＭｏｄｅごとに具体的に挙げて説明する。なお、図２９〜図３２では、矢印の右側にＭＢＣｏｌのＭＢタイプを、左側にＣｕｒｒＭＢのＭＢタイプをそれぞれ示している。また、各図の一番上に示したパターンでは、ＣｕｒｒＭＢおよびＭＢＣｏｌとして設定可能な最小のブロックのＭＢタイプの組み合わせが示されているが、これらのパターンは図８および図９で示したものと同じである。そして、図８および図９と同様に、これらのパターンのブロックに付された数字については、ＣｕｒｒＭＢ内のブロックの動きベクトルが、同じ数字が付されたＭＢＣｏｌ内のブロックから演算できることを意味している。
【０１２１】
図２９は、ＭＢＣｏｌＭｏｄｅ０で設定されるＣｕｒｒＭＢのＭＢタイプの例を示す図である。
ＭＢＣｏｌＭｏｄｅ０では、ＣｕｒｒＭＢおよびＭＢＣｏｌがともにフレーム構造（ただし、符号化タイプがともにＦＲＭ）であり、ＣｕｒｒＭＢ内の各ブロックの動きベクトルを、ＭＢＣｏｌ内の同じ位置のブロックの動きベクトルからダイレクト演算することができる。従って、ＭＢＣｏｌＭｏｄｅ０では、図２９のパターンＰＴ１〜ＰＴ６のように、ＣｕｒｒＭＢに対して、ＭＢＣｏｌと同じＭＢタイプが設定される。
【０１２２】
図３０は、ＭＢＣｏｌＭｏｄｅ１で設定されるＣｕｒｒＭＢのＭＢタイプの例を示す図である。
ＭＢＣｏｌＭｏｄｅ１では、図８（Ｂ）で説明したように、ＭＢＣｏｌの最小ブロックは４×４であるが、ＣｕｒｒＭＢの最小ブロックは規格上８×８となる。このため、パターンＰＴ１１に示すように、ＣｕｒｒＭＢのＭＢ９０１〜９０４の各動きベクトルは、それぞれＭＢＣｏｌ内のサブＭＢ９０５〜９０８のみからダイレクト演算される。すなわち、パターンＰＴ１１においては、ＭＢＣｏｌ内の左上に存在する４つのサブＭＢを、１つのＭＢ９０１に統合することができる。同様に、ＭＢＣｏｌ内の右上、左下、右下にそれぞれ存在する４つのサブＭＢの組を、ＭＢ９０２〜９０４にそれぞれ統合できる。
【０１２３】
パターンＰＴ１１のようなブロックの対応関係を基本にして考えると、ＭＢＣｏｌの最小ブロックが８×８であるパターンＰＴ１２〜ＰＴ１５では、ＣｕｒｒＭＢに対して、ＭＢＣｏｌと同じＭＢタイプを設定すればよく、ブロックの統合は行われない。一方、パターンＰＴ１６のように、ＭＢＣｏｌに８×８より小さいサブＭＢが存在する場合、それらのサブＭＢはＣｕｒｒＭＢにおいて８×８のＭＢに統合される。
【０１２４】
例えば、ＭＢＣｏｌのサブＭＢ９０９および９１０をＭＢ９１１に統合することができ、ＭＢ９１１の動きベクトルはサブＭＢ９１０の動きベクトルからダイレクト演算される。すなわち、分割サイズ統合部３６０は、サブＭＢ９０９および９１０に対応するＣｕｒｒＭＢの位置のＭＢタイプを８×８と決定し、そのＭＢタイプの情報とともに、サブＭＢ９１０の動きベクトルをダイレクトＭＶ演算部３１１に出力する。
【０１２５】
図３１は、ＭＢＣｏｌＭｏｄｅ２および３で設定されるＣｕｒｒＭＢのＭＢタイプの例を示す図である。
ＭＢＣｏｌＭｏｄｅ２および３では、パターンＰＴ２１のように、ＭＢＣｏｌの最小ブロックは４×４であるが、ＣｕｒｒＭＢの最小ブロックは８×８となる。なお、パターンＰＴ２１に示した左側のＭＢＣｏｌはＣｕｒｒＭＢの奇数ライン演算時に使用され（ＭＢＣｏｌＭｏｄｅ２に対応）、右側のＭＢＣｏｌはＣｕｒｒＭＢの偶数ライン演算時に使用される（ＭＢＣｏｌＭｏｄｅ３に対応）ものであって、どちらも同じＭＢＣｏｌである。
【０１２６】
図９（Ａ）および（Ｂ）で説明したように、ＭＢＣｏｌＭｏｄｅ２では、ＣｕｒｒＭＢ内のＭＢ９１１〜９１４の奇数ラインの動きベクトルは、それぞれＭＢＣｏｌ内のサブＭＢ９１５〜９１８からダイレクト演算される。また、ＭＢＣｏｌＭｏｄｅ３では、ＣｕｒｒＭＢ内のＭＢ９１１〜９１４の偶数ラインの動きベクトルは、同じＭＢＣｏｌ内のサブＭＢ９１９〜９２２からそれぞれダイレクト演算される。従って、ＭＢＣｏｌにおける第１列および第３列の１番目および２番目の計４つのサブＭＢが、ＣｕｒｒＭＢではＭＢ９１１に統合される。同様に、ＭＢＣｏｌにおける第１列および第３列の３番目および４番目のサブＭＢが、ＭＢ９１２に統合され、ＭＢＣｏｌにおける第２列および第４列の１番目および２番目のサブＭＢが、ＭＢ９１３に統合され、同列の３番目および４番目のサブＭＢが、ＭＢ９１４に統合される。
【０１２７】
このパターンＰＴ２１のようなブロックの対応関係を基本にして考えると、ＭＢＣｏｌの上側の１６×８のブロックおよび下側の１６×８のブロックにおいて、ともに垂直方向に対するサブＭＢ分割が行われていない場合には、ＣｕｒｒＭＢを垂直方向に分割する必要がなくなる。図３１のパターンＰＴ２３〜ＰＴ２５がこのような場合に相当し、これらのうちパターンＰＴ２３およびＰＴ２５では、垂直方向に対するブロックの統合が行われている。
【０１２８】
逆に、パターンＰＴ２６においては、ＭＢＣｏｌの上側の１６×８のブロックおよび下側の１６×８のブロックの少なくとも一方において、垂直方向に対するサブＭＢ分割が行われているので、ＣｕｒｒＭＢは最小サイズである８×８のＭＢに分割される。ここで、分割サイズ統合部３６０は、例えば、ＣｕｒｒＭＢのＭＢ９２３および９２４の動きベクトルの演算のために、奇数ライン演算時にはＭＢＣｏｌのサブＭＢ９２５の動きベクトルを、偶数ライン演算時にはＭＢＣｏｌのサブＭＢ９２６および９２７を、それぞれダイレクトＭＶ演算部３１１に出力する。
【０１２９】
なお、パターンＰＴ２２では、ＭＢＣｏｌにおいてブロック分割が行われていないので、当然ながらブロックの統合も行われない。
図３２は、ＭＢＣｏｌＭｏｄｅ４で設定されるＣｕｒｒＭＢのＭＢタイプの例を示す図である。
【０１３０】
ＭＢＣｏｌＭｏｄｅ４の場合でも、パターンＰＴ３１のように、ＭＢＣｏｌの最小ブロックは４×４であるが、ＣｕｒｒＭＢの最小ブロックは８×８となる。このパターンＰＴ３１では、図９（Ｃ）で説明したように、各フィールドに対応するＣｕｒｒＭＢの動きベクトル演算のために、上下に隣接する２つのＭＢＣｏｌの動きベクトルが必要となる。なお、図２８のＭＢタイプ判定テーブル３８２においては、ＭＢＣｏｌＭｏｄｅ４のときのＭＢＣｏｌのＭＢタイプの条件を示す欄に記載された「上側ＭＢＣｏｌ」「下側ＭＢＣｏｌ」とは、このように上下に隣接した２つのＭＢＣｏｌのうちの上側、下側をそれぞれ示している。
【０１３１】
従って、分割サイズ統合部３６０は、ＣｕｒｒＭＢ内のＭＢ９３１および９３２のダイレクト演算のために、それぞれＭＢＣｏｌ内のサブＭＢ９３５および９３６の動きベクトルをダイレクトＭＶ演算部３１１に出力し、ＣｕｒｒＭＢ内のＭＢ９３３および９３４のダイレクト演算のために、下側に隣接するＭＢＣｏｌ内のサブＭＢ９３７および９３８の動きベクトルをそれぞれ出力する。
【０１３２】
このパターンＰＴ３１のようなブロックの対応関係を基本にして考えると、ＭＢＣｏｌＭｏｄｅ４では、上下に隣接する２つのＭＢＣｏｌの両方において、８×８以下のサイズでのブロック分割がない場合には、これらの２つのＭＢＣｏｌは、パターンＰＴ３２のように、ＣｕｒｒＭＢにおいて１６×８のＭＢにそれぞれ統合される。また、ＭＢＣｏｌがそれ以外の状態の場合には、パターンＰＴ３３のように、ＣｕｒｒＭＢには一律に８×８のＭＢが設定される。
【０１３３】
以上説明したように、本実施の形態に係る分割サイズ統合部３６０では、ＭＢＣｏｌのＭＢタイプに応じて、ＣｕｒｒＭＢをできるだけ大きいサイズのブロックに分割するようにＣｕｒｒＭＢのＭＢサイズが設定され、ダイレクト演算時のために必要なＭＢＣｏｌ内の動きベクトルが適宜選択されて出力される。これにより、ダイレクト演算対象となる動きベクトルの数が減少し、動き補償処理時の参照画像データ取得のためのメモリアクセス回数や必要なメモリ帯域を抑制することができる。従って、動き補償処理の精度を低下させることなく、その処理負荷を軽減して、消費電力や回路の製造コストを抑制することができる。また、符号化時に適用した場合には、符号量を減少させ、画質を低下させることなく画像データの圧縮率を高めることができる。
【０１３４】
特に、従来では、元のＭＢＣｏｌのデータが外部メモリ３２０に格納される際に、一律に４×４の最小サイズのブロックに展開されていたので、このようなＭＢＣｏｌのＭＢタイプを基にＣｕｒｒＭＢのブロックを決定すると、最小でも８×８のＭＢに統合することしかできなかった（図２９〜図３２のパターンＰＴ１，ＰＴ１１，ＰＴ２１，ＰＴ３１に対応）。これに対して、本実施の形態では、分割サイズ統合部３６０に入力されるＭＢＣｏｌが元のＭＢタイプを維持していることから、ＣｕｒｒＭＢを８×８よりさらに大きいサイズのブロックに分割することも可能であり、これによりダイレクト演算対象となる動きベクトルの数をさらに減少させることができる。また、分割サイズ統合部３６０に入力されるＭＢＣｏｌの動きベクトル数が、４×４のサイズに展開された場合と比較して少ないことから、分割サイズ統合部３６０でのＭＢタイプ決定処理自体の負荷も軽減され、消費電力を抑制することもできる。
【０１３５】
なお、上記の実施の形態では、ＣｏｌＰｉｃの動きベクトルを格納するメモリを、フレーム間予測部２１０（または画像復号化装置２００）の外部に設けた外部メモリ３２０としたが、このメモリを装置内部に設けてもよい。また、内部バッファ３４１および３４２の機能を、外部のメモリで実現してもよい。また、外部メモリ３２０と内部バッファ３４１および３４２の機能を、ともに同じメモリで実現してもよい。また、これらについては、上記のフレーム間予測部２１０のダイレクト・モード対応機能を、画像符号化装置１００のフレーム間予測部１０４に設けた場合でも同様である。
【０１３６】
さらに、上記の処理機能は、コンピュータによって実現することができる。その場合、上記の画像符号化装置や画像復号化装置が有すべき動き予測処理機能の処理内容を記述したプログラムが提供される。そして、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。
【０１３７】
プログラムを流通させる場合には、例えば、そのプログラムが記録された光ディスクなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、そのプログラムを、サーバコンピュータからネットワークを介して他のコンピュータに転送することもできる。
【０１３８】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１３９】
（付記１）  動画像を一定の領域に分割した基本ブロックを単位としてフレーム間の動き予測処理を行う動き予測処理装置において、
前記動き予測処理の現処理対象画像が参照する参照画像の動きベクトルを、前記参照画像上の水平方向に並列された１列分の前記基本ブロックに対応するブロックラインを単位として、ベクトル格納メモリを分割したメモリ領域のいずれかに書き込む書き込み制御手段と、
前記ベクトル格納メモリからＦＩＦＯ方式の２つのバッファへの、前記メモリ領域ごとの動きベクトルの読み出しを、前記参照画像および前記現処理対象画像のそれぞれが、フレーム画像あるいはフィールド画像のいずれであるか、および、前記基本ブロックごとにフレーム予測／フィールド予測を選択的に適用可能なブロック適用型予測モードであるか否かの組み合わせに応じて制御する読み出し制御手段と、
前記各バッファから順次読み出した動きベクトルを用いて、前記現処理対象画像の所定の前記基本ブロックの動き予測処理に必要な動きベクトルを予測演算するベクトル演算手段と、
を有することを特徴とする動き予測処理装置。
【０１４０】
（付記２）  前記書き込み制御手段は、前記参照画像がフィールド画像であって前記ブロック適用型予測モードでない場合には、前記参照画像上の前記ブロックラインの動きベクトルをフィールド別にそれぞれ異なる前記メモリ領域に格納し、
前記読み出し制御手段は、
前記参照画像および前記現処理対象画像がともに前記ブロック適用型予測モードでなく、前記参照画像がフレーム画像で、前記現処理対象画像がフィールド画像である場合には、前記参照画像内での奇数番目の前記ブロックラインに割り当てられた前記メモリ領域と、偶数番目の前記ブロックラインに割り当てられた前記メモリ領域のそれぞれから、２つの前記バッファに動きベクトルを並列に読み出し、
前記参照画像がフィールド画像であって前記ブロック適用型予測モードでなく、前記現処理対象画像が前記ブロック適用型予測モードである場合には、トップ・フィールドに割り当てられた前記メモリ領域と、ボトム・フィールドに割り当てられた前記メモリ領域のそれぞれから、２つの前記バッファに動きベクトルを並列に読み出し、
前記参照画像および前記現処理対象画像の条件がそれ以外の場合には、前記メモリ領域ごとの動きベクトルを一方の前記バッファのみに読み出す、
ことを特徴とする付記１記載の動き予測処理装置。
【０１４１】
（付記３）  前記書き込み制御手段は、前記参照画像が前記ブロック適用型予測モードである場合には、前記参照画像上で上下に隣接する２つの前記ブロックラインを、２つの前記メモリ領域に割り当てて動きベクトルを格納し、
前記読み出し制御手段は、前記参照画像が前記ブロック適用型予測モードである場合には、２つの前記ブロックラインに割り当てられた２つの前記メモリ領域ごとに、動きベクトルを一方の前記バッファに対して順次読み出す、
ことを特徴とする付記２記載の動き予測処理装置。
【０１４２】
（付記４）  前記読み出し制御手段は、前記参照画像および前記現処理対象画像の双方がフィールド画像であって前記ブロック適用型予測モードでない場合には、トップ・フィールドに割り当てられた前記メモリ領域のみから一方の前記バッファのみに対して動きベクトルを読み出すことを特徴とする付記２記載の動き予測処理装置。
【０１４３】
（付記５）  前記読み出し制御手段は、前記参照画像がフィールド画像であって前記ブロック適用型予測モードでなく、前記現処理対象画像がフレーム画像であって前記ブロック適用型予測モードでない場合には、トップ・フィールドに割り当てられた前記メモリ領域のみを読み出し元とし、同じ前記メモリ領域から２回ずつ連続して、一方の前記バッファのみに対して動きベクトルを読み出すことを特徴とする付記２記載の動き予測処理装置。
【０１４４】
（付記６）  前記読み出し制御手段は、前記参照画像および前記現処理対象画像のそれぞれが、フレーム画像あるいはフィールド画像のいずれであるか、および、前記ブロック適用型予測モードであるか否かの組み合わせごとに、前記メモリ領域から２つの前記バッファに対する読み出し方法を記述したテーブルに従って、前記ベクトル格納メモリから前記各バッファへの動きベクトルの読み出しを制御することを特徴とする付記１記載の動き予測処理装置。
【０１４５】
（付記７）  前記ベクトル演算手段は、前記現処理対象画像上の前記ブロックラインの動きベクトルを演算する際に、２つの前記バッファの双方に動きベクトルが格納されている場合は前記各バッファから交互に、一方の前記バッファにのみ動きベクトルが格納されている場合は当該バッファから、それぞれ動きベクトルを前記基本ブロック単位で順次読み出すことを特徴とする付記１記載の動き予測処理装置。
【０１４６】
（付記８）  前記現処理対象画像上の動きベクトル算出対象の前記基本ブロック、および当該現処理対象ブロックに対応する前記参照画像上の前記基本ブロックである参照ブロックのそれぞれが、フレーム構造あるいはフィールド構造のいずれであるか、および、当該現処理対象画像および当該参照画像のそれぞれが前記ブロック適用型予測モードであるか否かの組み合わせに応じて、前記現処理対象ブロックのブロック分割サイズを、対応する前記参照ブロックのブロック分割サイズと同じにするか、あるいは当該参照ブロックで分割されたブロックの一部が１つのブロックに統合されるように設定して、前記ベクトル演算手段に通知するブロック分割設定手段をさらに有することを特徴とする付記１記載の動き予測処理装置。
【０１４７】
（付記９）  前記現処理対象画像および前記参照画像がともに前記ブロック適用型予測モードでなく、前記現処理対象ブロックがフレーム構造で、前記参照ブロックがフィールド構造であるとき、当該参照ブロックの上側半分および下側半分の各ブロックにおいて、ともに垂直方向に対してさらなるブロック分割が行われていない場合には、対応する前記現処理対象ブロックを垂直方向にブロック分割しないことを特徴とする付記８記載の動き予測処理装置。
【０１４８】
（付記１０）  前記現処理対象画像および前記参照画像がともに前記ブロック適用型予測モードでなく、前記現処理対象ブロックがフィールド構造で、前記参照ブロックがフレーム構造であるとき、前記現処理対象ブロックに対応する前記参照画像上の上下に隣接する２つの前記参照ブロックの双方において、それぞれを４等分したサイズ以下のブロックが存在しない場合には、前記現処理対象ブロックを垂直方向に２等分し、水平方向にブロック分割しないことを特徴とする付記８記載の動き予測処理装置。
【０１４９】
（付記１１）  動画像を一定の領域に分割した基本ブロックを単位としたフレーム間の動き予測処理を利用して、動画像信号を符号化する画像符号化装置において、
前記動き予測処理の現処理対象画像が参照する参照画像の動きベクトルを、前記参照画像上の水平方向に並列された１列分の前記基本ブロックに対応するブロックラインを単位として、ベクトル格納メモリを分割したメモリ領域のいずれかに書き込む書き込み制御手段と、
前記ベクトル格納メモリからＦＩＦＯ方式の２つのバッファへの、前記メモリ領域ごとの動きベクトルの読み出しを、前記参照画像および前記現処理対象画像のそれぞれが、フレーム画像あるいはフィールド画像のいずれであるか、および、前記基本ブロックごとにフレーム予測／フィールド予測を選択的に適用可能なブロック適用型予測モードであるか否かの組み合わせに応じて制御する読み出し制御手段と、
前記各バッファから順次読み出した動きベクトルを用いて、前記現処理対象画像の所定の前記基本ブロックの動き予測処理に必要な動きベクトルを予測演算するベクトル演算手段と、
を有することを特徴とする画像符号化装置。
【０１５０】
（付記１２）  動画像を一定の領域に分割した基本ブロックを単位としたフレーム間の動き予測処理を利用して、符号化された動画像信号を復号化する画像復号化装置において、
前記動き予測処理の現処理対象画像が参照する参照画像の動きベクトルを、前記参照画像上の水平方向に並列された１列分の前記基本ブロックに対応するブロックラインを単位として、ベクトル格納メモリを分割したメモリ領域のいずれかに書き込む書き込み制御手段と、
前記ベクトル格納メモリからＦＩＦＯ方式の２つのバッファへの、前記メモリ領域ごとの動きベクトルの読み出しを、前記参照画像および前記現処理対象画像のそれぞれが、フレーム画像あるいはフィールド画像のいずれであるか、および、前記基本ブロックごとにフレーム予測／フィールド予測を選択的に適用可能なブロック適用型予測モードであるか否かの組み合わせに応じて制御する読み出し制御手段と、
前記各バッファから順次読み出した動きベクトルを用いて、前記現処理対象画像の所定の前記基本ブロックの動き予測処理に必要な動きベクトルを予測演算するベクトル演算手段と、
を有することを特徴とする画像復号化装置。
【０１５１】
（付記１３）  動画像を一定の領域に分割した基本ブロックを単位としてフレーム間の動き予測処理を行う動き予測処理方法において、
書き込み制御手段が、前記動き予測処理の現処理対象画像が参照する参照画像の動きベクトルを、前記参照画像上の水平方向に並列された１列分の前記基本ブロックに対応するブロックラインを単位として、ベクトル格納メモリを分割したメモリ領域のいずれかに書き込み、
読み出し制御手段が、前記ベクトル格納メモリからＦＩＦＯ方式の２つのバッファへの、前記メモリ領域ごとの動きベクトルの読み出しを、前記参照画像および前記現処理対象画像のそれぞれが、フレーム画像あるいはフィールド画像のいずれであるか、および、前記基本ブロックごとにフレーム予測／フィールド予測を選択的に適用可能なブロック適用型予測モードであるか否かの組み合わせに応じて制御し、
ベクトル演算手段が、前記各バッファから順次読み出した動きベクトルを用いて、前記現処理対象画像の所定の前記基本ブロックの動き予測処理に必要な動きベクトルを予測演算する、
ことを特徴とする動き予測処理方法。
【０１５２】
（付記１４）  動画像を一定の領域に分割した基本ブロックを単位としたフレーム間の動き予測処理をコンピュータに実行させる動き予測処理プログラムにおいて、
前記動き予測処理の現処理対象画像が参照する参照画像の動きベクトルを、前記参照画像上の水平方向に並列された１列分の前記基本ブロックに対応するブロックラインを単位として、ベクトル格納メモリを分割したメモリ領域のいずれかに書き込む書き込み制御手段、
前記ベクトル格納メモリからＦＩＦＯ方式の２つのバッファへの、前記メモリ領域ごとの動きベクトルの読み出しを、前記参照画像および前記現処理対象画像のそれぞれが、フレーム画像あるいはフィールド画像のいずれであるか、および、前記基本ブロックごとにフレーム予測／フィールド予測を選択的に適用可能なブロック適用型予測モードであるか否かの組み合わせに応じて制御する読み出し制御手段、
前記各バッファから順次読み出した動きベクトルを用いて、前記現処理対象画像の所定の前記基本ブロックの動き予測処理に必要な動きベクトルを予測演算するベクトル演算手段、
として前記コンピュータを機能させることを特徴とする動き予測処理プログラム。
【図面の簡単な説明】
【０１５３】
【図１】本発明の実施の形態に係る動き予測処理装置の概要を示すブロック図である。
【図２】実施の形態に係る画像符号化装置の構成を示すブロック図である。
【図３】実施の形態に係る画像復号化装置の構成を示すブロック図である。
【図４】ダイレクト・モード対応のためのメモリ制御機能の構成例を示すブロック図である。
【図５】ＭＶ書き込み制御部の内部構成例を示すブロック図である。
【図６】外部メモリにおけるＣｏｌＰｉｃ格納フォーマットを示す図である。
【図７】読み出しモード判定テーブルの内容を示す図である。
【図８】ＣｕｒｒＭＢとＭＢＣｏｌとの間のフレーム／フィールド種別の代表的な組み合わせと、ブロック間の対応関係について説明するための図（その１）である。
【図９】ＣｕｒｒＭＢとＭＢＣｏｌとの間のフレーム／フィールド種別の代表的な組み合わせと、ブロック間の対応関係について説明するための図（その２）である。
【図１０】各読み出しモードでの読み出し手順について説明するための図（その１）である。
【図１１】各読み出しモードでの読み出し手順について説明するための図（その２）である。
【図１２】各読み出しモードでの読み出し手順について説明するための図（その３）である。
【図１３】読み出しモード０でのＭＢＣｏｌとＭＢＣｏｌとの対応について説明するための図である。
【図１４】読み出しモード１でのＭＢＣｏｌとＭＢＣｏｌとの対応について説明するための図である。
【図１５】読み出しモード２でのＭＢＣｏｌとＭＢＣｏｌとの対応について説明するための図である。
【図１６】読み出しモード３でのＭＢＣｏｌとＭＢＣｏｌとの対応について説明するための図である。
【図１７】読み出しモード４でのＭＢＣｏｌとＭＢＣｏｌとの対応について説明するための図である。
【図１８】読み出しモード５でのＭＢＣｏｌとＭＢＣｏｌとの対応について説明するための図である。
【図１９】読み出しモード６でのＭＢＣｏｌとＭＢＣｏｌとの対応について説明するための図である。
【図２０】ＭＶ読み出し制御部が備える内部バッファの読み出し制御機能の構成例を示すブロック図である。
【図２１】２つの内部バッファを用いた場合のデータ読み出しを模式的に説明するための図である。
【図２２】１つの内部バッファを用いた場合のデータ読み出しを模式的に説明するための図である。
【図２３】データ読み出し手順の説明に用いるＭＢラインのブロック構成例を示す図である。
【図２４】隣接するＭＢラインのデータを２つの内部バッファに格納する際のタイムチャートを示す図である。
【図２５】２つの内部バッファからデータを読み出す際のタイムチャートを示す図である。
【図２６】スライス・タイプがピクチャの途中で変更する場合の動作を説明するための図である。
【図２７】スライス境界において参照するＣｏｌＰｉｃが変更された場合の動作を説明するための図である。
【図２８】ＭＢタイプ判定テーブルの内容を示す図である。
【図２９】ＭＢＣｏｌＭｏｄｅ０で設定されるＣｕｒｒＭＢのＭＢタイプの例を示す図である。
【図３０】ＭＢＣｏｌＭｏｄｅ１で設定されるＣｕｒｒＭＢのＭＢタイプの例を示す図である。
【図３１】ＭＢＣｏｌＭｏｄｅ２および３で設定されるＣｕｒｒＭＢのＭＢタイプの例を示す図である。
【図３２】ＭＢＣｏｌＭｏｄｅ４で設定されるＣｕｒｒＭＢのＭＢタイプの例を示す図である。
【図３３】符号化タイプ別のＭＢの処理順について説明するための図である。
【図３４】Ｈ．２６４におけるＭＢのブロックサイズを説明するための図である。
【図３５】ダイレクト・モードにおける動きベクトルの演算手法を概念的に示す図である。
【符号の説明】
【０１５４】
１  動き予測処理装置
２  書き込み制御手段
３  読み出し制御手段
４  ベクトル演算手段
１０  ベクトル格納メモリ
１０−１〜３  メモリ領域
１１，１２  バッファ
２０  参照画像
２０−１〜３  ブロックライン
【図１】
2008048199.tif 000003
【図２】
2008048199.tif 000004
【図３】
2008048199.tif 000005
【図４】
2008048199.tif 000006
【図５】
2008048199.tif 000007
【図６】
2008048199.tif 000008
【図７】
2008048199.tif 000009
【図８】
2008048199.tif 000010
【図９】
2008048199.tif 000011
【図１０】
2008048199.tif 000012
【図１１】
2008048199.tif 000013
【図１２】
2008048199.tif 000014
【図１３】
2008048199.tif 000015
【図１４】
2008048199.tif 000016
【図１５】
2008048199.tif 000017
【図１６】
2008048199.tif 000018
【図１７】
2008048199.tif 000019
【図１８】
2008048199.tif 000020
【図１９】
2008048199.tif 000021
【図２０】
2008048199.tif 000022
【図２１】
2008048199.tif 000023
【図２２】
2008048199.tif 000024
【図２３】
2008048199.tif 000025
【図２４】
2008048199.tif 000026
【図２５】
2008048199.tif 000027
【図２６】
2008048199.tif 000028
【図２７】
2008048199.tif 000029
【図２８】
2008048199.tif 000030
【図２９】
2008048199.tif 000031
【図３０】
2008048199.tif 000032
【図３１】
2008048199.tif 000033
【図３２】
2008048199.tif 000034
【図３３】
2008048199.tif 000035
【図３４】
2008048199.tif 000036
【図３５】
2008048199.tif 000037