(57)【要約】【課題】  メモリバンド幅を低減できると共に、回路規模や消費電力を削減できる動きベクトル検出装置及びその方法を提供する。【解決手段】  両方向予測符号化画面に対する動き検出期間では、符号化ブロックに与え得る全動きベクトルを検出可能な参照部分領域を第３のメモリに格納する第１の参照画素格納モードに設定して、同一の参照部分領域で、異なる符号化画面の同一画面位置にある複数の符号化ブロックに対して動きベクトルを検出し、片方向予測符号化画面に対する動き検出期間では、参照画像の水平方向のサイズと同じサイズの参照部分領域を第３のメモリに格納する第１の参照画素格納モードに設定して、複数の動き検出機会での差異評価実行範囲を所定の単位で設定する。【選択図】      図１
2005072726.tif 000002
【特許請求の範囲】
【請求項１】
符号化対象画像を複数の符号化ブロックに分割し、各符号化ブロックと参照画像内に設定した動き検出範囲内の参照ブロックとの間で差異を評価して動画像の画面間の動きベクトルを検出する動きベクトル検出装置において、
符号化対象画像及び参照画像を格納する第１のメモリと、
前記第１のメモリから符号化ブロックを読み出す符号化ブロック転送部と、
前記第１のメモリから読み出された前記符号化ブロックを格納する第２のメモリと、
前記第１のメモリから、前記参照画像の部分領域である参照部分領域を読み出す参照画像転送部と、
前記第１のメモリから読み出された参照部分領域を格納する第３のメモリと、
前記符号化ブロックと前記参照ブロックとの間で差異評価を実行する差異評価実行範囲を設定する差異評価実行範囲設定部と、
前記第２のメモリに格納された前記符号化ブロックと、前記第３のメモリに格納された前記差異評価実行範囲内の参照ブロックとを読み出し、読み出した符号化ブロックと参照ブロックとの間で差異を評価して差異評価値を求める差異評価部と、
前記差異評価値に基づいて、前記符号化ブロックに対して最小の差異評価値が与えられる参照ブロックまでの変位を、当該符号化ブロックに対応する動きベクトルとして検出する最小差異評価値検出部とを具備し、
前記第３のメモリは、異なる符号化画面の同一画面位置にある複数の符号化ブロックに与え得る全動きベクトルを検出可能な参照部分領域を格納し、
前記差異評価実行範囲設定部は、異なる符号化画面の同一画面位置にある複数の符号化ブロックに対して、時間的または空間的に近接する他の符号化ブロックに対する動きベクトルを参照して、前記最小差異評価値検出部に初期設定するモードを含み、順次動きベクトルの検出を実行させることを特徴とする動きベクトル検出装置。
【請求項２】
符号化対象画像を複数の符号化ブロックに分割し、各符号化ブロックと参照画像内に設定した動き検出範囲内の参照ブロックとの間で差異を評価して動画像の画面間の動きベクトルを検出する動きベクトル検出装置において、
符号化対象画像及び参照画像と、複数の符号化ブロックに対する動きベクトル検出結果及び動き検出中間結果を格納する第１のメモリと、
前記第１のメモリから符号化ブロックを読み出す符号化ブロック転送部と、
前記第１のメモリから読み出された前記符号化ブロックを格納する第２のメモリと、
前記第１のメモリから、前記参照画像の部分領域である参照部分領域を読み出す参照画像転送部と、
前記第１のメモリから読み出された参照部分領域を格納する第３のメモリと、
前記第１のメモリに格納された動き検出済み画面の前記動きベクトルを符号化ブロックに対する参照動きベクトルとして読み出す参照情報転送部と、
前記第１のメモリから読み出された前記参照動きベクトルを格納する第４のメモリと、
前記符号化ブロックと前記参照ブロックとの間で差異評価を実行する差異評価実行範囲を設定する差異評価実行範囲設定部と、
前記第２のメモリに格納された前記符号化ブロックと、前記第３のメモリに格納された参照ブロックのうち前記差異評価実行範囲内の参照ブロックとを読み出し、読み出した符号化ブロックと参照ブロックとの間で差異を評価して差異評価値を求める差異評価部と、
前記差異評価値に基づいて、前記符号化ブロックに対して最小の差異評価値が与えられる参照ブロックまでの変位を、当該符号化ブロックに対応する動きベクトルとして検出する最小差異評価値検出部と、
前記最小差異評価値検出部において検出された動き検出結果を格納する第５のメモリと、
前記第５のメモリに格納された動きベクトル及び差異評価値を読み出して前記第１のメモリに格納する動き検出結果転送部とを具備し、
前記参照情報転送部は、同一符号化画面で垂直方向に所定間隔離れた位置にある複数の符号化ブロックに対する参照動きベクトルを前記第１のメモリから読み出して前記第４のメモリに転送すると共に、それらの符号化ブロックに対する動き検出結果を前記第１のメモリから読み出して前記第５のメモリに動き検出中間結果として転送し、
前記差異評価実行範囲設定部は、前記第４のメモリに格納された参照動きベクトルに基づいて、動き検出範囲の所定割合以上が前記第３のメモリに格納されている前記参照部分領域に含まれ、且つ動き検出が未完了の符号化ブロックについてのみ、前記符号化ブロック転送部を制御して前記第２のメモリに転送させ、垂直方向の差異評価実行範囲を前記動き検出範囲の前記所定割合単位で設定するモードを含み、順次動きベクトルの検出を実行させることを特徴とする動きベクトル検出装置。
【請求項３】
当該符号化ブロックに対する差異評価値及び動きベクトルが前記第５のメモリに動き検出中間結果として格納されている時は前記動き検出中間結果を前記最小差異評価値検出部の初期値として設定することを特徴とする請求項２に記載の動きベクトル検出装置。
【請求項４】
前記第３のメモリに格納する参照部分領域の水平方向画素数は、前記参照画像の水平方向サイズに相当する画素数以上とすることを特徴とする請求項２または請求項３に記載の動きベクトル検出装置。
【請求項５】
符号化対象画像を複数の符号化ブロックに分割し、各符号化ブロックと参照画像内に設定した動き検出範囲内の参照ブロックとの間で差異を評価して動画像の画面間の動きベクトルを検出する動きベクトル検出装置において、
符号化対象画像及び参照画像と、複数の符号化ブロックに対する動きベクトル検出結果及び動き検出中間結果を格納する第１のメモリと、
前記第１のメモリに格納された符号化対象画像から符号化ブロックを読み出す符号化ブロック転送部と、
前記第１のメモリから読み出された前記符号化ブロックを格納する第２のメモリと、
前記第１のメモリから前記参照画像の部分領域である参照部分領域を読み出す参照画像転送部と、
前記第１のメモリから読み出された参照部分領域を格納する第３のメモリと、
前記第１のメモリから前記動きベクトル検出結果を符号化ブロックに対する参照動きベクトルとして読み出す参照情報転送部と、
前記第１のメモリから読み出された前記参照動きベクトルを格納する第４のメモリと、
前記符号化ブロックと前記参照ブロックとの間で差異評価を実行する差異評価実行範囲を設定する差異評価実行範囲設定部と、
前記第２のメモリに格納された前記符号化ブロックと、前記第３のメモリに格納された前記差異評価実行範囲内の参照ブロックとを読み出し、読み出した符号化ブロックと参照ブロックとの間で差異を評価して差異評価値を求める差異評価部と、
前記差異評価値に基づいて、前記符号化ブロックに対して最小の差異評価値が与えられる参照ブロックまでの変位を、当該符号化ブロックに対応する動きベクトルとして検出する最小差異評価値検出部と、
前記最小差異評価値検出部において検出された動きベクトル及び差異評価値を動きベクトル検出結果または動き検出中間結果として格納する第５のメモリと、
前記第５のメモリに格納された動きベクトル及び差異評価値を読み出して前記第１のメモリに格納する動き検出結果転送部と、
異なる符号化画面の同一画面位置にある複数の符号化ブロックに与え得る全動きベクトルを検出可能な参照部分領域を前記第３のメモリに格納させる第１の参照画素格納モードと、参照部分領域の水平方向画素数を前記参照画像の水平方向サイズに相当する画素数以上として前記第３のメモリに格納させる第２の参照画素格納モードとを含む格納モードを設定する参照画素格納モード設定部とを具備し、
前記参照画像転送部が、前記格納モードに応じて、前記第３のメモリに参照部分領域を格納することを特徴とする動きベクトル検出装置。
【請求項６】
前記参照情報転送部は、前記第２の参照画素格納モードにおいて、同一符号化画面で垂直方向に所定間隔離れた位置にある複数の符号化ブロックに対する参照動きベクトルを前記第１のメモリから読み出して前記第４のメモリに転送すると共に、それらの符号化ブロックに対する動き検出結果を前記第１のメモリから読み出して前記第５のメモリに動き検出中間結果として転送し、
前記差異評価実行範囲設定部は、前記第１の参照画素格納モードにおいて、異なる符号化画面の同一画面位置にある複数の符号化ブロックに対して、時間的または空間的に近接する他の符号化ブロックに対する動きベクトルを参照して、前記最小差異評価値検出部に初期設定して、前記参照画面に時間的に近い符号化ブロックから順に動きベクトルの検出を実行させ、その検出された動きベクトルを参照動きベクトルとして、次に前記参照画面に時間的に近い符号化ブロックに対して前記差異評価実行範囲を設定し、前記第２の参照画素格納モードにおいて、前記第４のメモリに格納された参照動きベクトルに基づいて、動き検出範囲の所定割合以上が前記第３のメモリに格納されている前記参照部分領域に含まれ、且つ動き検出が未完了の符号化ブロックについてのみ、前記符号化ブロック転送部を制御して前記第２のメモリに転送させ、垂直方向の差異評価実行範囲を前記動き検出範囲の前記所定割合単位で設定し、当該符号化ブロックに対する差異評価値及び動きベクトルが前記第５のメモリに動き検出中間結果として格納されている時は前記最小差異評価値検出部の初期値としてそれらの値を設定し、順次動きベクトルの検出を実行させることを特徴とする請求項５に記載の動きベクトル検出装置。
【請求項７】
前記所定割合は、垂直方向の動き検出範囲の１／２であることを特徴とする請求項２，３，４，６のいずれかに記載の動きベクトル検出装置。
【請求項８】
前記参照画像格納モード設定部は、両方向からの動きベクトルを求める必要のある符号化画面に対してのみ前記第３のメモリを第１の参照画素格納モードに設定することを特徴とする請求項５乃至請求項７のいずれかに記載の動きベクトル検出装置。
【請求項９】
前記参照画像格納モード設定部は、前記第３のメモリに、前記符号化ブロックに与え得る全動きベクトルを検出可能な参照部分領域を格納しきれない符号化画面に対してのみ、前記第２の参照画素格納モードに設定することを特徴とする請求項５乃至請求項７のいずれかに記載の動きベクトル検出装置。
【請求項１０】
符号化対象画像を複数の符号化ブロックに分割し、各符号化ブロックと参照画像内に設定した動き検出範囲内の参照ブロックとの間で差異を評価して動画像の画面間の動きベクトルを検出する動きベクトル検出装置における動きベクトル検出方法であって、
符号化対象画像及び参照画像を格納する第１のメモリ前記参照画像の部分領域である参照部分領域を読み出して第３のメモリに格納するステップと、
異なる符号化画面の同一画面位置にある複数の符号化ブロックに対して、前記参照画面に時間的に近い符号化ブロックの動きベクトル検出結果を参照動きベクトルとして、次に前記参照画面に時間的に近い符号化ブロックに対して前記参照ブロックとの差異評価を実行する差異評価実行範囲を設定するステップと、
異なる符号化画面の同一画面位置にある複数の符号化ブロックに対して、前記参照画面に時間的に近い符号化ブロックから順に動きベクトルの検出を実行させるように、前記第１のメモリに格納された符号化対象画像から符号化ブロックを読み出して第２のメモリに格納するステップと、
前記第２のメモリに格納された前記符号化ブロックと、前記第３のメモリに格納された前記差異評価実行範囲内の参照ブロックを読み出し、読み出した符号化ブロックと参照ブロックとの間で差異を評価して差異評価値を求めるステップと、
前記符号化ブロックに対して差異評価実行範囲内で最小の差異評価値が与えられる参照ブロックまでの変位を、当該符号化ブロックに対応する動きベクトルとして検出するステップと
を含む前記各ステップを前記動きベクトル検出装置に実行させることを特徴とする動きベクトル検出方法。
【請求項１１】
符号化対象画像を複数の符号化ブロックに分割し、各符号化ブロックと参照画像内に設定した動き検出範囲内の参照ブロックとの間で差異を評価して動画像の画面間の動きベクトルを検出する動きベクトル検出装置における動きベクトル検出方法であって、
符号化対象画像及び参照画像と複数の符号化ブロックに対する動きベクトル検出結果及び動き検出中間結果を格納する第１のメモリから、同一符号化画面で垂直方向に所定間隔離れた位置にある複数の符号化ブロックに対する参照動きベクトルとして前記動きベクトル検出結果を読み出して第４のメモリに格納するステップと、
前記第１のメモリから、前記参照画像の部分領域である参照部分領域を読み出して、前記参照画像の水平方向のサイズと同じサイズの参照部分領域を第３のメモリに格納するステップと、
前記第１のメモリから前記垂直方向に所定間隔離れた位置にある複数の符号化ブロックに対する動き検出中間結果を順次読み出して第５のメモリに格納するステップと、
前記参照動きベクトルに基づく動き検出範囲の所定割合以上が前記第３のメモリに格納されている前記参照部分領域に含まれ、且つ動き検出が未完了の符号化ブロックについてのみ、前記符号化ブロック転送部を制御して前記第２のメモリに転送させ、垂直方向の差異評価実行範囲を前記動き検出範囲の前記所定割合単位で設定し、当該符号化ブロックに対する差異評価値及び動きベクトルが前記第５のメモリに動き検出中間結果として格納されている時は最小差異評価値を検出する際の初期値としてそれらの値を設定するステップと、
前記第２のメモリに格納された前記符号化ブロックと、前記第３のメモリに格納された前記差異評価実行範囲内の参照ブロックを読み出し、読み出した符号化ブロックと参照ブロックとの間で差異を評価して差異評価値を求めるステップと、
前記符号化ブロックに対して差異評価実行範囲内で最小の差異評価値が与えられる参照ブロックまでの変位を、当該符号化ブロックに対応する動きベクトルとして検出し第５のメモリに格納するステップと、
前記第５のメモリに格納された動きベクトル検出結果または動き検出中間結果を読み出して前記第１のメモリに格納するステップと
を含む前記各ステップを前記動きベクトル検出装置に実行させることを特徴とする動きベクトル検出方法。
【請求項１２】
符号化対象画像を複数の符号化ブロックに分割し、各符号化ブロックと参照画像内に設定した動き検出範囲内の参照ブロックとの間で差異を評価して動画像の画面間の動きベクトルを検出する動きベクトル検出方法における動きベクトル検出方法であって、
両方向からの動きベクトルを求める必要のある両方向予測符号化画面に対する動き検出期間か、片方向予測符号化画面に対する動き検出期間かを判定するステップと、
両方向予測符号化画面に対する動き検出期間の場合に、符号化対象画像及び参照画像を格納する第１のメモリから前記参照画像の部分領域である参照部分領域を読み出して、前記符号化ブロックに与え得る全動きベクトルを検出可能な参照部分領域を第３のメモリに格納するステップと、異なる符号化画面の同一画面位置にある複数の符号化ブロックに対して、前記参照画面に時間的に近い符号化ブロックの動きベクトル検出結果を参照動きベクトルとして、次に前記参照画面に時間的に近い符号化ブロックに対して前記参照ブロックとの差異評価を実行する差異評価実行範囲を設定するステップと、異なる符号化画面の同一画面位置にある複数の符号化ブロックに対して、前記参照画面に時間的に近い符号化ブロックから順に動きベクトルの検出を実行させるように、前記第１のメモリに格納された符号化対象画像から符号化ブロックを読み出して第２のメモリに格納するステップと、前記第２のメモリに格納された前記符号化ブロックと、前記第３のメモリに格納された前記差異評価実行範囲内の参照ブロックを読み出し、読み出した符号化ブロックと参照ブロックとの間で差異を評価して差異評価値を求めるステップと、前記符号化ブロックに対して差異評価実行範囲内で最小の差異評価値が与えられる参照ブロックまでの変位を、当該符号化ブロックに対応する動きベクトルとして検出するステップとを含む前記各ステップを前記動きベクトル検出装置に実行させ、
片方向予測符号化画面に対する動き検出期間の場合に、符号化対象画像及び参照画像と複数の符号化ブロックに対する動きベクトル検出結果及び動き検出中間結果を格納する第１のメモリから、同一符号化画面で垂直方向に所定間隔離れた位置にある複数の符号化ブロックに対する参照動きベクトルとして前記動きベクトル検出結果を読み出して第４のメモリに格納するステップと、前記第１のメモリから前記参照画像の部分領域である参照部分領域を読み出して、前記参照画像の水平方向のサイズと同じサイズの参照部分領域を第３のメモリに格納するステップと、前記第１のメモリから前記垂直方向に所定間隔離れた位置にある複数の符号化ブロックに対する動き検出中間結果を順次読み出して第５のメモリに格納するステップと、前記参照動きベクトルに基づく動き検出範囲が前記第３のメモリに格納されている前記参照部分領域に含まれ、且つ動き検出が未完了の符号化ブロックを、前記符号化ブロック転送部を制御して前記第２のメモリに転送させ、垂直方向の差異評価実行範囲を設定し、当該符号化ブロックに対する差異評価値及び動きベクトルが前記第５のメモリに動き検出中間結果として格納されている時は最小差異評価値を検出する際の初期値としてそれらの値を設定するステップと、前記第２のメモリに格納された前記符号化ブロックと、前記第３のメモリに格納された前記差異評価実行範囲内の参照ブロックを読み出し、読み出した符号化ブロックと参照ブロックとの間で差異を評価して差異評価値を求めるステップと、前記符号化ブロックに対して差異評価実行範囲内で最小の差異評価値が与えられる参照ブロックまでの変位を、当該符号化ブロックに対応する動きベクトルとして検出し第５のメモリに格納するステップと、
前記第５のメモリに格納された動きベクトル検出結果または動き検出中間結果を読み出して前記第１のメモリに格納するステップとを含む前記各ステップを前記動きベクトル検出装置に実行させることを特徴とする動きベクトル検出方法。
【請求項１３】
前記第２の参照画素格納モードにおける前記差異評価実行範囲を設定するステップにおいて、
前記参照動きベクトルに基づく動き検出範囲の所定割合以上が前記第３のメモリに格納されている前記参照部分領域に含まれ、且つ動き検出が未完了の符号化ブロックを、前記符号化ブロック転送部を制御して前記第２のメモリに転送させ、垂直方向の差異評価実行範囲を前記動き検出範囲の前記所定割合単位で設定し、当該符号化ブロックに対する差異評価値及び動きベクトルが前記第５のメモリに動き検出中間結果として格納されている時は最小差異評価値を検出する際の初期値として設定することを特徴とする請求項１２に記載の動きベクトル検出方法。
【請求項１４】
前記所定割合は、垂直方向の動き検出範囲の１／２であることを特徴とする請求項１１または請求項１３のいずれかに記載の動きベクトル検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＭＰＥＧ方式などの動き補償予測を用いた動画像符号化装置において必要な動画像の画面間の動き検出を行うための動きベクトル検出装置及び動きベクトル検出方法に関する。
【背景技術】
【０００２】
動画像圧縮技術の国際標準であるＭＰＥＧ規格に基づく動画像符号化（以下、ＭＰＥＧ符号化という）装置は、図２３に示すように、入力画像メモリ９１０，ＭＥ（Motion Estimation；動き検出）部９１５，ＭＣ（Motion Compensation；動き補償）部９２０，ＤＣＴ（Discrete Cosine Transform；離散的コサイン変換）部９２５，量子化部９３０，符号化多重部９６０，逆量子化部９３５，ＩＤＣＴ（Inverse Discrete Cosine Transform；逆離散的コサイン変換）部９４０，局部再生部９４５，再生画像メモリ９５０などにより構成される。
【０００３】
入力画像メモリ９１０は、入力画像データ９１０ａを一時記憶し、動きベクトル候補の検出対象ブロックと参照部分領域をＭＥ部９１５に供給すると共に、符号化順序に従って画面順序を並べ替え、符号化対象ブロックを読み出し、ＭＣ部９２０に供給する。ＭＥ部９１５は、動きベクトル検出順序に従って、入力画像メモリ９１０から供給される動きベクトル検出対象ブロックに対して、入力画像メモリ９１０から原画参照画素を読み出して、図２４や図２５に示すような動きベクトル候補を検出する。ＭＣ部９２０は、ＭＥ部９１５から供給される動きベクトル候補に基づいて、入力画像メモリ９１０から再生画像の参照画素を読み出し、符号化順序に従って、入力画像メモリ９１０から供給される符号化対象ブロックに対して最適な１／２画素精度の動きベクトルと最適な動き補償モードを判断し、その予測信号を局部再生部９４５に供給すると共に、予測誤差信号をＤＣＴ部９２５に供給する。
【０００４】
ＤＣＴ部９２５は、ＭＣ部９２０から供給される予測誤差信号に対する最適なＤＣＴタイプ（フィールド・タイプまたはフレーム・タイプ）を判断し、そのＤＣＴタイプに基づいて８×８のブロックに分割し、８×８点の２次元ＤＣＴ処理を行う。量子化部９３０は、ＤＣＴ部９２５から供給されるＤＣＴ係数に対して量子化処理を行い、符号量の調節を行う。符号化多重部９６０は、量子化部９３０から供給される量子化処理されたＤＣＴ係数のスキャン変換を行い、ＤＣＴ係数を零の連続数（ゼロラン）と非零の値（レベル）の組み合わせで表現し、ＭＣ部９２０から供給される動き補償モードや動きベクトルとＤＣＴ部９２５から供給されるＤＣＴタイプ等と共に可変長符号化し、多重出力して出力する。逆量子化部９３５は、量子化部９３０から供給される量子化後のＤＣＴ係数に対して逆量子化処理を行い、ＩＤＣＴ部９４０に供給する。ＩＤＣＴ部９４０は、逆量子化部９３５から供給される逆量子化後のＤＣＴ係数に対して、８×８点の２次元ＩＤＣＴ処理を行い、予測誤差信号を再生して局部再生部９４５に供給する。局部再生部９４５は、符号化画面が参照される画面（ＩピクチャまたはＰピクチャ）の場合に、ＭＣ部９２０から供給される予測信号を、ＩＤＣＴ部９４０から出力される予測誤差信号に加算して局部再生信号を生成し、再生画像メモリ９５０に記憶する。
【０００５】
このように、ＭＰＥＧ符号化においては、動き補償予測のために動画像の画面間の動き量を検出して動きベクトルを生成することが必須である。このような動きベクトル検出方法として、ブロックマッチング法が知られている。ブロックマッチング法では、符号化対象画像内に設定した符号化ブロックと参照画像内に設定した参照ブロックの間で画素毎に差分をとり、その差分の絶対値または２乗の累積和を差異評価値として用い、この評価値に基づき動きベクトルを検出する。
【０００６】
動き量を精度よく求めるためには、参照画像内の参照ブロックの設定間隔、即ち動きベクトル候補の設定間隔を密にする必要がある。また、参照画像内の参照ブロックの設定範囲、即ち動きベクトル候補の設定範囲は、求めたい動きの速さに依存しており、速い動きに追随するためには、その設定範囲を広くする必要があり、参照画面との時間的な距離が大きくなるとその時間的距離の二乗で設定範囲を拡大する必要があり、その演算量は膨大になる。
【０００７】
このような参照画面との時間的な距離による演算量の増加を低減する方法として、１画面前の符号化画面に対して検出した動きベクトルを参照動きベクトルとして、その参照動きベクトルの近傍に複数の動きベクトル候補を設定するテレスコピック探索法が知られている。
【０００８】
また、テレスコピック探索法を用いた動き検出装置において、参照画像の部分領域を格納するＬＳＩ内蔵メモリ容量を削減すると共に、参照画素の読み出しに必要なメモリバンド幅を削減する方法が開示されている（例えば、特許文献１参照）。
【０００９】
特許文献１に記載の動き検出装置においては、同一画面の上下に位置する複数の符号化ブロックに対する参照動きベクトルに基づく動き検出範囲が、ＬＳＩに内蔵したメモリに格納された参照画像の部分領域に含まれるか否かを判断し、その動き検出範囲の一部でも含まれる場合にその符号化ブロックを読み出して動き検出を実行することにより、異なる符号化ブロックに対して、同一参照画素を重複して読み出す回数を削減している。
【特許文献１】特開２０００−２８７２１４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献１に記載の動き検出装置においては、参照動きベクトルに基づく動き検出範囲がＬＳＩに内蔵したメモリに格納された参照画像の部分領域に含まれるか否かの判断処理が多くなると共に、参照動きベクトルに基づく動き検出範囲がＬＳＩに内蔵したメモリに格納された参照画像の部分領域に僅かしか含まれない場合は、その差異評価実行中に次の判断処理や設定処理が完了しないため、差異評価手段を有効利用できないという問題を生じていた。従って、差異評価手段の処理能力の向上や、判断処理や設定処理の高速化が必要となり、動き検出部の回路規模が増大するという問題があった。また、同一符号化ブロックの重複読み出しが必要であるため、メモリバンド幅を低減できないという問題があった。
【００１１】
本発明は、このような問題に鑑みてなされたものであって、符号化ブロックや参照画素を格納するメモリからの符号化ブロックや参照画素読み出しのためのメモリバンド幅を低減できると共に、回路規模や消費電力を削減できる動きベクトル検出装置及び動きベクトル検出方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するため、本発明は、符号化対象画像を複数の符号化ブロックに分割し、各符号化ブロックと参照画像内に設定した動き検出範囲内の参照ブロックとの間で差異を評価して動画像の画面間の動きベクトルを検出する動きベクトル検出装置において、(a)符号化対象画像及び参照画像と、複数の符号化ブロックに対する動きベクトル検出結果及び動き検出中間結果を格納する第１のメモリ（外部大容量メモリ）と、(b)第１のメモリに格納された符号化対象画像から符号化ブロックを読み出す符号化ブロック転送部と、(c)第１のメモリから読み出された符号化ブロックを格納する第２のメモリ（符号化ブロック用高速メモリ）と、(d)第１のメモリから参照画像の部分領域である参照部分領域を読み出す参照画像転送部と、(e)第１のメモリから読み出された参照部分領域を格納する第３のメモリ（参照ブロック用高速メモリ）と、(f)第１のメモリから動きベクトル検出結果を符号化ブロックに対する参照動きベクトルとして読み出す参照情報転送部と、(g)第１のメモリから読み出された参照動きベクトルを格納する第４のメモリ（動きベクトル参照用メモリ）と、(h)符号化ブロックと参照ブロックとの間で差異評価を実行する差異評価実行範囲を設定する差異評価実行範囲設定部と、(i)第２のメモリに格納された符号化ブロックと、第３のメモリに格納された差異評価実行範囲内の参照ブロックとを読み出し、読み出した符号化ブロックと参照ブロックとの間で差異を評価して差異評価値を求める差異評価部と、(j)差異評価値に基づいて、符号化ブロックに対して最小の差異評価値が与えられる参照ブロックまでの変位を、当該符号化ブロックに対応する動きベクトルとして検出する最小差異評価値検出部と、(k)最小差異評価値検出部において検出された動きベクトル及び差異評価値を動きベクトル検出結果または動き検出中間結果として格納する第５のメモリと、(l)第５のメモリに格納された動きベクトル及び差異評価値を読み出して第１のメモリに格納する動き検出結果転送部と、(m)異なる符号化画面の同一画面位置にある複数の符号化ブロックに与え得る全動きベクトルを検出可能な参照部分領域を第３のメモリに格納させる第１の参照画素格納モードと、参照部分領域の水平方向画素数を参照画像の水平方向サイズに相当する画素数以上として第３のメモリに格納させる第２の参照画素格納モードとを含む格納モードを設定する参照画素格納モード設定部とを具備し、上記参照画像転送部が、上記格納モードに応じて、第３のメモリに参照部分領域を格納する。
【００１３】
参照情報転送部は、第２の参照画素格納モードにおいて、同一符号化画面で垂直方向に所定間隔離れた位置にある複数の符号化ブロックに対する参照動きベクトルを第１のメモリから読み出して第４のメモリに転送すると共に、それらの符号化ブロックに対する動き検出結果を第１のメモリから読み出して第５のメモリに動き検出中間結果として転送する。
【００１４】
そして、第１の参照画素格納モードにおいて、差異評価実行範囲設定部は、異なる符号化画面の同一画面位置にある複数の符号化ブロックに対して、時間的または空間的に近接する他の符号化ブロックに対する動きベクトルを参照して、最小差異評価値検出部に初期設定して、参照画面に時間的に近い符号化ブロックから順に動きベクトルの検出を実行させ、その検出された動きベクトルを参照動きベクトルとして、次に参照画面に時間的に近い符号化ブロックに対して差異評価実行範囲を設定する。
【００１５】
また、第２の参照画素格納モードにおいて、差異評価実行範囲設定部は、第４のメモリに格納された参照動きベクトルに基づいて、動き検出範囲の所定割合以上が第３のメモリに格納されている参照部分領域に含まれ、且つ動き検出が未完了の符号化ブロックについてのみ、符号化ブロック転送部を制御して第２のメモリに転送させ、垂直方向の差異評価実行範囲を動き検出範囲の所定割合単位で設定し、当該符号化ブロックに対する差異評価値及び動きベクトルが第５のメモリに動き検出中間結果として格納されている時は最小差異評価値検出部の初期値としてそれらの値を設定し、順次動きベクトルの検出を実行させる。
【００１６】
即ち、第３のメモリを第１の参照画素格納モードに設定した場合は、複数の符号化画面に対して第１のメモリからの同一参照画像の読み出しが１回で済むために、第１のメモリから参照画素を読み出すためのメモリバンド幅を大幅に削減することができる。また、各符号化ブロックに対する動き検出範囲が第３のメモリ内に存在するか否かの判断が不要であり、符号化ブロックを重複して読み出すことも不要となるため、差異評価部の利用効率を向上でき、第１のメモリから符号化ブロックを読み出すためのメモリバンド幅の削減が可能となる。
【００１７】
また、第３のメモリを第２の参照画素格納モードに設定した場合は、同一符号化ブロックに対して２回の異なる参照部分領域保存状態での動き検出を許容することにより、第３のメモリの容量削減と参照画素読み出しのためのメモリバンド幅の削減が可能となる。
【００１８】
更に、第３のメモリを第２の参照画素格納モードに設定した場合は、差異評価実行範囲設定部は、垂直方向に所定間隔離れた位置にある複数の符号化ブロックに対して、各参照動きベクトルに基づく垂直方向の動き検出範囲の所定割合以上が前記第３のメモリ内に含まれ、且つ動き検出が完了していない符号化ブロックについてのみ、符号化ブロック転送部を制御して第２のメモリに転送させ、差異評価実行範囲を動き検出範囲の所定割合単位で行う。これにより、差異評価実行範囲が僅かな範囲に設定されるのを防止し、次の符号化ブロックに対する判断処理や設定処理をその差異評価実行中に完了できるようにすることで、差異評価部の処理能力の向上や、判断処理や設定処理の高速化を不要にすることができる。
【００１９】
また、参照画像格納モード設定部は、第３のメモリの容量的な制限などにより、符号化ブロックに与え得る全動きベクトルが検出可能な参照部分領域を格納できない符号化画面に対してのみ、第３のメモリを第２の参照画素格納モードに設定することで、第３のメモリの容量を削減するようにしても良い。
【００２０】
特に、同一符号化ブロックに対する差異評価の連続処理を分ける場合は最大２回までとしているため、上記所定割合を垂直方向の動き検出範囲の１／２とすることで、差異評価実行中に次の判断処理や設定処理に利用できる最小期間が最も改善され、差異評価部の処理能力の向上や、判断処理や設定処理の高速化が不要となり、回路規模の縮小が可能となる。
【００２１】
また、第３のメモリは、複数のバッファメモリと、参照画像の部分領域を格納する複数の高速メモリとで構成し、第１のメモリから読み出された参照画像の部分領域をその複数のバッファメモリに格納した後、複数のバッファメモリから同時に読み出して複数の高速メモリに高速で転送することにより、差異評価部が高速メモリをアクセスできない期間、即ち差異評価部の停止期間を短縮することが可能となり、差異評価部の高速化を不要にし、回路規模の縮小を可能にする。
【００２２】
更に、差異評価部が読み出していない高速メモリが存在する場合は、複数のバッファメモリから差異評価部が読み出している高速メモリへの参照画像の部分領域の転送に先立って、複数のバッファメモリから差異評価部が読み出していない高速メモリへの参照画像の部分領域の転送を行うことで、差異評価部が高速メモリをアクセスできない期間を無くすることができ、差異評価部の高速化が不要になって回路規模の縮小を可能にする。
【発明の効果】
【００２３】
本発明によれば、符号化ブロックや参照画素を格納するメモリからの符号化ブロックや参照画素読み出しのためのメモリバンド幅を低減できると共に、回路規模や消費電力を削減できる動きベクトル検出装置及び動きベクトル検出方法を提供することができる。
【００２４】
従って、動き検出情報を用いて情報量を圧縮する動画像符号化装置のコストを下げることが可能になる。
【発明を実施するための最良の形態】
【００２５】
以下、本発明の実施形態を図面に基づいて説明する。なお、各図面を通じて同一もしくは同等の部位や構成要素には、同一もしくは同等の参照符号を付し、その説明を省略もしくは簡略化する。
【００２６】
［第１の実施形態］
図１は、第１の実施形態に係る動きベクトル検出装置を例示しており、動き補償予測を用いた動画像符号化システムなどに適用される。
【００２７】
この動きベクトル検出装置は、外部大容量メモリ１１０、検出結果保存メモリ１２０、参照ブロック用高速メモリ１３０、符号化ブロック用高速メモリ１４０、動きベクトル参照用メモリ１５０、外部大容量メモリ１１０の画像記憶用アドレス生成部１０１、外部大容量メモリ１１０から検出結果保存メモリ１２０や動きベクトル参照用メモリ１５０に参照情報を転送するための参照情報転送部１０５、外部大容量メモリ１１０から参照ブロック用高速メモリ１３０に参照部分領域を転送するための参照画像転送部１０３、外部大容量メモリ１１０から符号化ブロック用高速メモリ１４０に符号化ブロックを転送するための符号化ブロック転送部１０４、検出結果保存メモリ１２０に格納された動きベクトルや差異評価値を読み出して外部大容量メモリ１１０に格納する検出結果転送部１０２、差異評価実行範囲設定部１６１、差異評価部１６２、最小差異評価値検出部１６３、参照画像格納モード設定部１００などから構成される。
【００２８】
動画像信号であるディジタル化された入力画像データ１１０ａは、符号化対象画像であり、また、参照画像ともなり得る。ここで、「符号化対象画像」はこれから符号化しようとする画像であり、「参照画像」は動き検出のために参照される画像である。動き検出に用いる参照画像は、例えば動きベクトル等の符号化に必要な情報（動画像符号化データ）の生成が既に終了した画像であるが、動画像符号化データを局部復号して得られる画像を用いても良い。
【００２９】
入力画像データ１１０ａは、外部大容量メモリ１１０の画像記憶用アドレス生成部１０１で生成された入力画像書込アドレス１０１ａで示される位置に書き込まれて保存される。
【００３０】
外部大容量メモリ１１０は、符号化対象画像及び参照画像と、複数の符号化ブロックに対する動きベクトル検出結果及び動き検出中間結果を格納する。
【００３１】
符号化ブロック転送部１０４は、符号化ブロック読出アドレス１０４ａを生成して、外部大容量メモリ１１０から符号化ブロックデータ１４０ａを読み出し、符号化ブロック用高速メモリ１４０に格納する。
【００３２】
参照画像転送部１０３から出力される参照画素読出アドレス１０３ａに従って、外部大容量メモリ１１０から参照画素データ１３０ａが読み出され、読み出された参照画素データ１３０ａは参照画像転送部１０３から出力される参照画素書込アドレス１０３ｂで示される参照ブロック用高速メモリ１３０内の位置に書き込まれて保存される。
【００３３】
参照画像格納モード設定部１００は、これから符号化しようとする画像が表示順序で時間的に過去と未来の両方の画面からの動きベクトルの使用を許可された両方向予測符号化画面（Ｂピクチャ）であるか否かを判定し、判定結果に基づいて参照ブロック用高速メモリ１３０への参照画素格納モードを定める参照画像格納モード信号１００ａを生成する。参照画素格納モードとしては、外部大容量メモリ１１０に格納された参照画像から符号化ブロックに与え得る全動きベクトルを検出可能な参照部分領域を読み出して参照ブロック用高速メモリ１３０に格納させる第１の参照画素格納モードと、外部大容量メモリ１１０に格納された参照画像から参照画像の水平方向のサイズと同じサイズの参照部分領域を読み出して参照ブロック用高速メモリ１３０に格納させる第２の参照画素格納モードとを含む。
【００３４】
参照情報転送部１０５は、参照情報読出アドレス１０５ａを生成して、外部大容量メモリ１１０から動きベクトル検出結果を符号化ブロックに対する参照動きベクトル１５０ａとして読み出し、動きベクトル参照用メモリ１５０に格納する。
【００３５】
検出結果保存メモリ１２０は、最小差異評価値検出部１６３において検出された動きベクトル及び差異評価値を動きベクトル検出結果または動き検出中間結果として格納する。
【００３６】
差異評価実行範囲設定部１６１は、参照情報読出アドレス１６１ｄを生成して、動きベクトル参照用メモリ１５０に格納された参照動きベクトル１５０ｂまたは検出結果保存メモリ１２０に格納された動きベクトル検出結果１２０ｂを参照して、符号化ブロックと参照ブロックとの間で差異評価を実行するための差異評価実行範囲を設定する。
【００３７】
差異評価部１６２は、符号化ブロック読出アドレス１６２ａを生成して符号化ブロック用高速メモリ１４０に格納された符号化ブロックデータ１４０ａを読み出し、参照ブロック読出アドレス１６２ｂを生成して参照ブロック用高速メモリ１３０に格納された差異評価実行範囲内の参照ブロック画素データ１３０ｂを読み出し、読み出した符号化ブロックと参照ブロックとの間で差異を評価して差異評価値を求める。
【００３８】
最小差異評価値検出部１６３は、差異評価値に基づいて同一符号化ブロックに対して最小の差異評価値１６３ａが与えられる参照ブロックまでの変位を、当該符号化ブロックに対応する動きベクトル検出結果１２０ａとして検出結果保存メモリ１２０に格納する。
【００３９】
動き検出結果転送部１０２は、検出結果保存メモリ１２０に格納された動きベクトル検出結果１２０ｃ（動きベクトル及び差異評価値）を読み出して外部大容量メモリ１１０に格納する。
【００４０】
また、参照画像格納モード設定部１００は、両方向からの動きベクトルを求める必要のある符号化画面に対してのみ、参照ブロック用高速メモリ１３０を第１の参照画素格納モードに設定することもできる。
【００４１】
そして、第１の参照画素格納モードにおいて、差異評価実行範囲設定部１６１は、異なる符号化画面の同一画面位置にある複数の符号化ブロックに対して、時間的または空間的に近接する他の符号化ブロックに対する動きベクトルを参照して、最小差異評価値検出部１６３に初期設定して、参照画面に時間的に近い符号化ブロックから順に動きベクトルの検出を実行させ、その検出された動きベクトルを参照動きベクトルとして、次に参照画面に時間的に近い符号化ブロックに対して差異評価実行範囲を設定する。
【００４２】
また、第２の参照画素格納モードにおいて、参照情報転送部１０５は、同一符号化画面で垂直方向に所定間隔離れた位置にある複数の符号化ブロックに対する参照動きベクトル１５０ａを外部大容量メモリ１１０から読み出して動きベクトル参照用メモリ１５０に転送すると共に、それらの符号化ブロックに対する動きベクトル検出結果１２０ｄを外部大容量メモリ１１０から読み出して検出結果保存メモリ１２０に動き検出中間結果として転送する。そして、差異評価実行範囲設定部１６１は、動きベクトル参照用メモリ１５０に格納された参照動きベクトルに基づいて、動き検出範囲の所定割合が参照ブロック用高速メモリ１３０内に含まれ、且つ動き検出が未完了の符号化ブロックについてのみ、符号化ブロック転送部１０４を制御して符号化ブロック用高速メモリ１４０に転送させ、当該符号化ブロックに対する差異評価値及び動きベクトルが動きベクトル参照用メモリ１５０に動き検出中間結果として格納されている時は最小差異評価値検出部１６３の初期値としてそれらの値を設定し、動き検出中間結果が動きベクトル参照用メモリ１５０に格納されていない時は最小差異評価値検出部１６３を初期設定して、動きベクトルの検出を実行させる。
【００４３】
《第１の参照画素格納モード》
次に、これから符号化しようとする画像が両方向予測符号化画面（Ｂピクチャ）である場合の動きベクトル検出装置の処理動作例について説明する。
【００４４】
参照画像格納モード信号１００ａにより、参照画素データ１３０ａは、図２に示すような第１の参照画素格納モードで参照ブロック用高速メモリ１３０に格納され、複数の両方向予測符号化画面（Ｂピクチャ）の同一画面位置にある符号化ブロックに与え得る全ての動きベクトルを検出可能な参照部分領域（図２における領域Ｓ）の画素が参照ブロック用高速メモリ１３０内に保存され、第１の参照画素格納モードに応じたタイミングと所定の画素数単位（図２における領域Ｕ）で、参照ブロック用高速メモリ１３０内の参照部分領域画素が更新される。
【００４５】
また、符号化ブロック転送部１０４から出力される符号化ブロック読出アドレス１０４ａに従って、外部大容量メモリ１１０から符号化ブロックデータ１４０ａが読み出され、読み出された符号化ブロックデータ１４０ａが符号化ブロック転送部１０４から出力される符号化ブロック書込アドレス１０４ｂで示される符号化ブロック用高速メモリ１４０内の位置に書き込まれて保存される。ここで、異なる符号化画面の同一画面位置にある複数の符号化ブロックが、参照画面に時間的に近い符号化ブロックから順に読み出されて、符号化ブロック用高速メモリ１４０に保存される。
【００４６】
差異評価実行範囲設定部１６１は、参照画面に時間的に隣接する符号化画面の符号化ブロックに対して、参照動きベクトル値を零にして、差異評価部１６２に対し差異評価実行範囲を設定すると共に、最小差異評価値検出部１６３に対して動き検出結果が存在しないことを示す初期状態に設定する。
【００４７】
差異評価部１６２は、符号化ブロック読出アドレス１６２ａを符号化ブロック用高速メモリ１４０に与えると共に、差異評価実行範囲設定部１６１によって設定された差異評価実行範囲内の参照ブロック読出アドレス１６２ｂを参照ブロック用高速メモリ１３０に与えて、これに従って符号化ブロック用高速メモリ１４０及び参照ブロック用高速メモリ１３０から読み出された符号化ブロックデータ１４０ｂ及び参照ブロック画素データ１３０ｂとの差異評価値を算出する。
【００４８】
最小差異評価値検出部１６３は、差異評価部１６２から新たな差異評価値１６３ａを受け取る毎に、過去に検出し保持している最小差異評価値と比較する。そして、更に小さな差異評価値を検出する毎に、保持する最小差異評価値とその動きベクトル情報を更新し、設定された差異評価実行範囲内で最終的に最小差異評価値となる動きベクトルを動きベクトル検出結果１２０ａとして検出結果保存メモリ１２０に格納する。
【００４９】
例えば、図２４や図２５で示すように、フレーム単位で動き検出を行う場合は、ここでの差異評価実行範囲、即ち動き検出設定範囲は、図３において、参照画面上の現符号化ブロックＣに対し、動きベクトル零に基づく動き検出設定範囲Ｒ０（水平垂直とも符号化ブロックＣの４倍の画素数、即ち１６倍の画素数）となり、現符号化ブロックＣの左上の画素がこの範囲に含まれる全参照ブロックと現符号化ブロックとの差異評価が差異評価部１６２で行われる。そして、その中で最小差異評価値の参照ブロック位置を示す動きベクトルが最小差異評価値検出部１６３で検出される。
【００５０】
次に差異評価実行範囲設定部１６１は、参照情報読出アドレス１６１ｄを検出結果保存メモリ１２０に与え、先に検出した符号化ブロックに対する動きベクトル情報１２０ｂを読み出し、先に検出した符号化ブロックの次に時間的に参照画面に近く予測方向が同一（例えばどちらの符号化画面も表示順序では参照画面の後になる）で異なる符号化画面の同一画面位置にある符号化ブロックに対して、先に検出した動きベクトル情報１２０ｂを参照動きベクトルとして、差異評価部１６２に差異評価実行範囲を設定する。それと共に、差異評価実行範囲設定部１６１は、最小差異評価値検出部１６３に対し動き検出結果が存在しないことを示す初期状態に設定する。
【００５１】
差異評価部１６２は、符号化ブロック読出アドレス１６２ａを符号化ブロック用高速メモリ１４０に与えると共に、設定された差異評価実行範囲内の参照ブロック読出アドレス１６２ｂを参照ブロック用高速メモリ１３０に与え、これらに従って符号化ブロック用高速メモリ１４０から読み出された符号化ブロックデータ１４０ｂと参照ブロック用高速メモリ１３０から読み出された参照ブロック画素データ１３０ｂとの差異評価値を算出する。
【００５２】
最小差異評価値検出部１６３は、差異評価部１６２から新たな差異評価値を受け取る毎に、過去の最小差異評価値と比較する。比較の結果、更に小さな差異評価値を検出すると、保持する最小差異評価値とその動きベクトル情報を更新し、設定された差異評価実行範囲内で最終的に最小差異評価値となる動きベクトル情報を動きベクトル検出結果１２０ａとして検出結果保存メモリ１２０に格納する。
【００５３】
フレーム単位で動き検出を行う場合、差異評価実行範囲、即ち動き検出設定範囲は、図３において、参照画面上に示した現符号化ブロックＣに対し、２フレーム目の動き検出設定許可範囲Ｒ２（水平垂直とも現符号化ブロックＣの８倍の画素数、つまり現符号化ブロックＣの６４倍の画素数）となり、符号化ブロックＣの左上の画素がこの範囲に含まれる全参照ブロックと現符号化ブロックとの差異評価が差異評価部１６２で行われ、その中で最小差異評価値の参照ブロック位置を示す動きベクトル１２０ａが最小差異評価値検出部１６３で検出される。
【００５４】
このようにして、複数の両方向予測符号化画面（Ｂピクチャ）の同一画面位置にある符号化ブロックに対する動き検出が終了すると、符号化ブロックの画面位置を更新して、前述のような動き検出処理を繰り返す。この符号化ブロックの画面位置は、符号化ブロックの画面位置を１ブロックずつ（図３における領域Ｕ）水平方向に順次更新していき、水平方向への更新が完了した時には画面左端に戻り垂直方向へ１ブロック更新する。
【００５５】
動き検出結果転送部１０２は、所定数の符号化ブロックの動き検出が終了する毎に、動き検出結果読出アドレス１０２ａを生成して検出結果保存メモリ１２０に格納された動きベクトル検出結果１２０ｃを読み出し、参照画像格納モード信号１００ａに応じて生成される動き検出結果書込アドレス１０２ｂに従って、読み出した動きベクトル検出結果１２０ｃを外部大容量メモリ１１０の所定位置に格納する。
【００５６】
《第２の参照画素格納モード》
次に、これから符号化しようとする画像が両方向予測符号化画面（Ｂピクチャ）でない場合、即ちこれから符号化しようとする画像が表示順序で時間的に未来の画面からの動きベクトルの使用を許可されない前方予測符号化画面（Ｐピクチャ）である場合の動きベクトル検出装置の処理動作例について説明する。
【００５７】
参照画像格納モード信号１００ａにより、参照画素データ１３０ａは、図４に示すような第２の参照画素格納モードで参照ブロック用高速メモリ１３０に格納され、参照画像と水平方向について同じサイズの参照部分領域（図４における領域Ｓ）が参照ブロック用高速メモリ１３０内に保存され、第２の参照画素格納モードに応じたタイミングと所定の画素数単位（図２における領域Ｕ）で、参照ブロック用高速メモリ１３０内の参照部分領域画素が更新される。
【００５８】
参照情報転送部１０５は、参照情報読出アドレス１０５ａを生成して、同一符号化画面で垂直方向に所定間隔離れた位置にある複数の符号化ブロックに対して、表示順序で直前の符号化画面における同一画面位置にある符号化ブロックに対する動きベクトルを参照動きベクトル１５０ａとして外部大容量メモリ１１０から読み出す。そして、参照情報転送部１０５は、読み出した参照動きベクトル１５０ａを動きベクトル参照用メモリ１５０内の参照動きベクトル書込アドレス１０５ｂで示される位置に書き込んで保存すると共に、外部大容量メモリ１１０から前記の同一符号化画面で垂直方向に所定間隔離れた位置にある複数の符号化ブロックに対する動き検出結果１２０ｄを読み出して、動き検出結果書込アドレス１０５ｃで示される検出結果保存メモリ１２０内の位置に書き込んで保存する。
【００５９】
ここで、初回の差異評価実行機会となる符号化ブロック（符号化画面の上部に位置する符号化ブロックや、同一符号化画面で垂直方向に所定間隔離れた位置にある複数の符号化ブロックのうち画面上で最も下に位置する符号化ブロック）に対しては、動き検出結果が必ず得られていないので、その符号化ブロックに対する動き検出結果１２０ｄを外部大容量メモリ１１０から読み出さなくても良い。
【００６０】
差異評価実行範囲設定部１６１は、前記垂直方向に所定間隔離れた位置の複数の符号化ブロックに対する参照動きベクトル１５０ｂを動きベクトル参照用メモリ１５０から順次読み出す。そして、差異評価実行範囲設定部１６１は、参照動きベクトル１５０ｂに基づく垂直方向の動き検出範囲の所定割合以上が参照ブロック用高速メモリ１３０内の参照画像領域に含まれ、且つ動き検出が完了していない符号化ブロックについて、参照動きベクトル１５０ｂに基づいて、差異評価実行範囲を垂直方向の動き検出範囲の所定割合単位で設定すると共に、その符号化ブロックの位置情報１６１ａを符号化ブロック転送部１０４に与える。
【００６１】
また、差異評価実行範囲設定部１６１は、参照動きベクトル１５０ｂに基づいて、その符号化ブロックに対する垂直方向の動き検出範囲の所定割合について差異評価が既に完了している場合は、参照情報読出アドレス１６１ｄを検出結果保存メモリ１２０に与え、検出結果保存メモリ１２０からその動き検出途中結果として動きベクトル検出結果１２０ｂ（動きベクトル及び差異評価値）を読み出し、最小差異評価値検出部１６３にそれらの値を初期値として設定する。逆に、その符号化ブロックに対する差異評価実行が初回である場合は、差異評価実行範囲設定部１６１は、最小差異評価値検出部１６３に動き検出結果が存在しないことを示す初期状態に設定する。
【００６２】
符号化ブロック転送部１０４は、差異評価実行範囲設定部１６１から与えられる符号化ブロック位置情報１６１ａに基づいて、符号化ブロック読出アドレス１０４ａを外部大容量メモリ１１０に与え、外部大容量メモリ１１０から符号化ブロックデータ１４０ａを読み出して、符号化ブロック書込アドレス１０４ｂで示される符号化ブロック用高速メモリ１４０内の位置に書き込んで保存する。
【００６３】
差異評価部１６２は、符号化ブロック読出アドレス１６２ａを符号化ブロック用高速メモリ１４０に与える。それと共に、差異評価部１６２は、設定された差異評価実行範囲内の参照ブロック読出アドレス１６２ｂを参照ブロック用高速メモリ１３０に与えて、これに従って符号化ブロック用高速メモリ１４０及び参照ブロック用高速メモリ１３０から読み出された符号化ブロックデータ１４０ｂ及び参照ブロック画素データ１３０ｂとの差異評価値を算出する。
【００６４】
最小差異評価値検出部１６３は、差異評価部１６２から新たな差異評価値１６３ａを受け取る毎に、保持している最小差異評価値と比較し、更に小さな差異評価値を検出する毎に保持する最小差異評価値とその動きベクトル情報を更新し、設定された差異評価実行範囲内で最終的に最小差異評価値となる動きベクトル情報を動きベクトル検出結果１２０ａとして検出結果保存メモリ１２０に格納する。
【００６５】
このようにして、同一符号化画面で垂直方向に所定間隔離れた位置にある複数の符号化ブロックに対する差異評価実行範囲内の最小差異評価値検出が終了する毎に、符号化ブロックの画面位置を順次更新して、前述のような動き検出の処理を繰り返す。符号化ブロックの画面位置は、符号化ブロックの画面位置を１ブロックずつ（図４における領域Ｕ）水平方向に順次更新していき、水平方向への更新が完了すると画面左端に戻り垂直方向へ１ブロック更新する。
【００６６】
このようにして基準符号化ブロック位置が所定数更新される毎に、動き検出結果転送部１０２は、動き検出結果読出アドレス１０２ａにより検出結果保存メモリ１２０に格納された動き検出結果１２０ｃを読み出し、参照画像格納モード信号１００ａに応じて生成する動き検出結果書込アドレス１０２ｂにより、外部大容量メモリ１１０の所定位置に動き検出結果１２０ｃを格納し保存する。なお、同一符号化画面において垂直方向に所定間隔離れた位置における複数の符号化ブロックのうち、画面上で最も上に位置する符号化ブロックに対しては、最終的な動き検出結果が必ず得られているので、その符号化ブロックに対する差異評価値を外部大容量メモリ１１０に保存しなくても良い。
【００６７】
例えば、図２４や図２５で示すように、フレーム単位で動き検出を行う場合は、ここで参照される動きベクトルは、前述の第１の参照画素格納モードにおいて２フレーム目の符号化ブロックに対する動き検出設定許可範囲（図３における領域Ｒ２）内から検出された動きベクトルとなる。従って、前方予測符号化画面（Ｐピクチャ）に対しても両方向予測符号化画面（Ｂピクチャ）と同様な動き速度に追随させるために動き検出を許可しなければならない範囲（動きベクトル検出設定許可範囲）は、現符号化ブロック位置を基準とすると符号化ブロックの水平垂直とも１２倍の画素数となる。
【００６８】
そこで、前述の同一符号化画面における垂直方向に所定間隔離れた位置にある複数の符号化ブロックとして、基準ブロックと、基準ブロックの４ブロック下のブロックと、基準ブロックの３ブロック上のブロックとの３つの符号化ブロックを選ぶと、基準ブロックの４ブロック下の符号化ブロックに対しては、これら３つの符号化ブロックの組が垂直方向に４ブロック及び７ブロック更新された場合にも差異評価実行機会が与えられる。即ち、同一符号化ブロックに対して３回の差異評価実行機会が与えられる。
【００６９】
そこで、これら３つの符号化ブロックに対して図５から図８に示すような動き検出設定許可範囲Ｒを定めて、その符号化ブロックＣに対する参照動きベクトルに基づく動き検出範囲（水平垂直とも符号化ブロックＣの４倍の画素数、即ち符号化ブロックの１６倍の画素数）の垂直方向の所定割合の領域が、動き検出設定許可範囲Ｒ内に含まれるか否かを判定する。
【００７０】
例えば、図５から図６に例示するように、１回目の差異評価実行機会となる基準ブロックＦの４ブロック下の符号化ブロックＣに対しては、参照動きベクトルに基づく動き検出範囲の上側の所定割合である１／４以上がその動き検出設定許可範囲Ｒに含まれる場合に、参照動きベクトルに基づく動き検出範囲の上側から１／４単位で差異評価値算出部１６２に差異評価実行範囲（図５におけるハッチングされた領域Ｒ）として設定する。
【００７１】
同様に、図７に例示するように、２回目の差異評価実行機会となる基準ブロックＦの符号化ブロックＣに対しては、参照動きベクトルに基づく動き検出範囲側１／４以上または上側１／２以上が、動き検出設定許可範囲Ｒに含まれる場合に、参照動きベクトルに基づく動き検出範囲の下側から１／４単位（図７における右下がりのハッチング部分）または上側から１／２単位（図７における右上がりのハッチング部分）で、差異評価部１６２に対する差異評価実行範囲（図７におけるハッチングされた領域Ｒ）として設定する。
【００７２】
更に、図８に例示するように、３回目の差異評価実行機会となる基準ブロックＦの３ブロック上の符号化ブロックＣについては、参照動きベクトルに基づく動き検出範囲の下側１／２以上が、動き検出設定許可範囲Ｒに含まれる場合に、参照動きベクトルに基づく動き検出範囲の下側から１／２単位で、差異評価部１６２に対する差異評価実行範囲（図８におけるハッチングされた領域Ｒ）として設定する。
【００７３】
なお、図５から図８に示した差異実行範囲設定範囲の垂直方向について、１回目と２回目の差異評価実行機会において１ブロック相当の画素の重複があり、２回目と３回目の差異評価実行機会において２ブロック相当の画素の重複があるようにみえるが、これは１画素でも不足が生じないよう考慮しているためである。従って、画素の重複が生じる場合には、その参照動きベクトルにより判断可能であり、後の差異評価実行機会で重複を検出した場合は、その重複範囲については差異実行範囲に含めないようにすることができる。これにより、参照動きベクトルに基づく全ての動き検出範囲から差異評価値を算出することが可能となると共に、同一符号化ブロックに対して２回の差異評価実行機会を使用する場合は、必ず動き検出範囲の垂直方向について１／４単位で設定されることとなる。
【００７４】
図９は、本実施形態における動きベクトル検出装置を用いて、参照ブロック用高速メモリ１３０への参照画素格納モードを第１の参照画素格納モードに設定して、１フレーム期間に参照フレーム間距離が１フレームと２フレームの後方予測動きベクトルまたは前方予測動きベクトルを検出し、参照ブロック用高速メモリ１３０への参照画素格納モードを第２の参照画素格納モードに設定して、参照フレーム間距離が３フレームの前方予測動きベクトルを検出することにより、符号化遅延を最小に最適化した例を示している。
【００７５】
図１０は、本実施形態における動きベクトル検出装置を用いて、参照ブロック用高速メモリ１３０への参照画素格納モードを第１の参照画素格納モードに設定して、２フレーム期間に参照フレーム間距離が１フレームと２フレームの後方予測動きベクトル及び前方予測動きベクトルを検出し、参照ブロック用高速メモリ１３０への参照画素格納モードを第２の参照画素格納モードに設定して、参照フレーム間距離が３フレームの前方予測動きベクトルを検出することにより、外部大容量メモリ１１０から参照画素を読み出すためのメモリバンド幅を最小に最適化した例を示している。
【００７６】
なお、図９及び図１０において、第１の参照画素格納モードにおける符号化フレーム読み出し回数は、符号化フレーム画面の読み出し回数相当数を、第２の参照画素格納モードにおける符号化フレーム読み出し回数は、全ての符号化ブロックにおいて２回の差異評価実行機会を適用した場合の符号化フレーム画面の読み出し回数相当数を表している。また、参照フレーム読み出し回数は、参照フレーム画面の読み出し回数相当数を表し、合計読み出し回数は、１フレーム期間での符号化フレーム画面及び参照フレーム画面の読み出し回数相当数をそれぞれ表している。
【００７７】
また、図９及び図１０において、記号Δは、入力フレームより１世代前の（古い）フレームであることを意味する。例えば、図９において、入力フレームがフレームＢ０である時、参照フレームを入力フレームより１世代前のフレームＰ１４とし、後方符号化フレームを、参照フレームＰ１４から１フレーム離れたフレームＢ１３と参照フレームＰ１４から２フレーム離れたフレームＢ１２とし、参照画素格納モードを第１の参照画素格納モードに設定すると、入力フレームがフレームＢ０である期間の符号化フレームの読み出し回数は２回、参照フレームの読み出し回数は９回となり、合計読み出し回数は、１１回となる。
【００７８】
メモリバンド幅を最小に最適化した図１０における１フレーム期間の画素読み出しのためのメモリバンド幅の最大値は、図９における１フレーム期間のメモリバンド幅の「6.5／11」となり、約半分に低減できる。
【００７９】
［第２の実施形態］
第１の実施形態では、図２４や図２５に示すようなフレーム単位で動き検出を行う例を示したが、第２の実施形態では、図１に示した動きベクトル検出装置において、図２６や図２７に示すようにフィールド単位で動き検出を行う例について説明する。
【００８０】
入力画像データ１１０ａは、外部大容量メモリ１１０の画像記憶用アドレス生成部１０１で生成された入力画像書込アドレス１０１ａで示される位置に書き込まれて保存される。
【００８１】
まず、参照画像格納モード設定部１００は、これから符号化しようとする画像が表示順序で時間的に過去と未来の両方の画面からの動きベクトルの使用を許可された両方向予測符号化画面（Ｂピクチャ）であるか否かを判定し、判定結果に基づいて参照ブロック用高速メモリ１３０への参照画素格納モードを定める参照画像格納モード信号１００ａを生成する。
【００８２】
参照画像転送部１０３から出力される参照画素読出アドレス１０３ａに従って、外部大容量メモリ１１０から参照画素データ１３０ａが読み出され、読み出された参照画素データ１３０ａが参照画像転送部１０３から出力される参照画素書込アドレス１０３ｂで示される参照ブロック用高速メモリ１３０内の位置に書き込まれて保存される。
【００８３】
《第１の参照画素格納モード》
ここで、これから符号化しようとする画像が両方向予測符号化画面（Ｂピクチャ）である場合の動きベクトル検出装置の処理動作例について説明する。
【００８４】
参照画像格納モード信号１００ａにより、参照画素データ１３０ａは、図１１に示すような第１の参照画素格納モードで参照ブロック用高速メモリ１３０に格納されされ、複数の両方向予測符号化画面（Ｂピクチャ）の同一画面位置にある符号化ブロックに与え得る全ての動きベクトルを検出可能な参照部分領域（図１１における領域Ｓ）の画素が参照ブロック用高速メモリ１３０内に保存され、第１の参照画素格納モードに応じたタイミングと所定の画素数単位（図１１における領域Ｕ）で、参照ブロック用高速メモリ１３０内の参照部分領域画素が更新される。
【００８５】
また、符号化ブロック転送部１０４から出力される符号化ブロック読出アドレス１０４ａに従って、外部大容量メモリ１１０から符号化ブロックデータ１４０ａが読み出され、読み出された符号化ブロックデータ１４０ａが符号化ブロック転送部１０４から出力される符号化ブロック書込アドレス１０４ｂで示される符号化ブロック用高速メモリ１４０内の位置に書き込まれて保存される。ここで、異なる符号化画面の同一画面位置にある複数の符号化ブロックが、参照画面に時間的に近い符号化ブロックから順に読み出されて、符号化ブロック用高速メモリ１４０に保存される。
【００８６】
差異評価実行範囲設定部１６１は、参照画面に時間的に隣接する符号化画面の符号化ブロックに対して、参照動きベクトル値を零として、差異評価部１６２に対し差異評価実行範囲を設定すると共に、最小差異評価値検出部１６３に対して動き検出結果が存在しないことを示す初期状態に設定する。
【００８７】
差異評価部１６２は、符号化ブロック読出アドレス１６２ａを符号化ブロック用高速メモリ１４０に与えると共に、差異評価実行範囲設定部１６１によって設定された差異評価実行範囲内の参照ブロック読出アドレス１６２ｂを参照ブロック用高速メモリ１３０に与えて、これに従って符号化ブロック用高速メモリ１４０及び参照ブロック用高速メモリ１３０から読み出された符号化ブロックデータ１４０ｂ及び参照ブロック画素データ１３０ｂとの差異評価値を算出する。
【００８８】
最小差異評価値検出部１６３は、差異評価部１６２から新たな差異評価値１６３ａを受け取る毎に、過去に検出し保持している最小差異評価値と比較する。そして、更に小さな差異評価値を検出する毎に、保持する最小差異評価値とその動きベクトル情報を更新し、設定された差異評価実行範囲内で最終的に最小差異評価値となる動きベクトルを動きベクトル検出結果１２０ａとして検出結果保存メモリ１２０に格納する。
【００８９】
例えば、図２６や図２７に示すようにフィールド単位で動き検出を行う場合は、差異評価実行範囲、即ち動き検出設定範囲は、図１２において、第１の参照フィールド画面（例えば”Top field”）上に示した現符号化ブロックＣに対し、動きベクトル零に基づく動き検出設定範囲Ｒ０（第１の実施形態で示したフレーム単位の動き検出に比べて参照画面との時間的な距離が半分になるため、水平垂直とも符号化ブロックの２倍の画素数、即ち４倍の画素数）となり、現符号化ブロックＣの左上の画素がこの範囲に含まれる全参照ブロックと現符号化ブロックＣとの差異評価が差異評価部１６２で行われる。そして、その中で最小差異評価値の参照ブロック位置を示す動きベクトルが最小差異評価値検出部１６３で検出される。
【００９０】
続いて、同様に第２の参照フィールド画面（例えば”Bottom field”）上にも動きベクトル零に基づく動き検出設定範囲Ｒ０（水平垂直とも符号化ブロックＣの２倍の画素数、即ち４倍の画素数）に現符号化ブロックＣの左上の画素が含まれる全参照ブロックと現符号化ブロックとの差異評価が差異評価部１６２で行われる。最小差異評価値検出部１６３は、先の第１の参照フィールド画面からの動き検出結果を初期値として、最小差異評価値の参照ブロック位置を示す動きベクトル１２０ａを検出し、最終的に最小差異評価値の参照ブロック位置を示す動きベクトルを動きベクトル検出結果１２０ａとして検出結果保存メモリ１２０に格納する。
【００９１】
次に差異評価実行範囲設定部１６１は、参照情報読出アドレス１６１ｄを検出結果保存メモリ１２０に与え、先に検出した符号化ブロック（例えば”Top field”ブロック）に対する動きベクトル検出結果１２０ｂを読み出し、先に検出した符号化ブロックの次に時間的に参照画面に近く予測方向が同一（例えばどちらの符号化画面も表示順序では参照画面の後になる）で異なる符号化画面の同一画面位置にある符号化ブロック（例えば”Bottom field”ブロック）に対して、先に検出した符号化ブロック（例えば”Top field”ブロック）に対する動きベクトル検出結果１２０ｂを参照動きベクトルとして、差異評価部１６２に対し差異評価実行範囲を設定する。それと共に、差異評価実行範囲設定部１６１は、最小差異評価値検出部１６３に対して動き検出結果が存在しないことを示す初期状態に設定する。
【００９２】
差異評価部１６２は、符号化ブロック読出アドレス１６２ａを符号化ブロック用高速メモリ１４０に与えると共に、設定された差異評価実行範囲内の参照ブロック読出アドレス１６２ｂを参照ブロック用高速メモリ１３０に与えて、これに従って符号化ブロック用高速メモリ１４０及び参照ブロック用高速メモリ１３０から読み出された符号化ブロックデータ１４０ｂ及び参照ブロック画素データ１３０ｂとの差異評価値を算出する。
【００９３】
最小差異評価値検出部１６３は、差異評価部１６２から新たな差異評価値受け取る毎に、過去の最小差異評価値と比較し、更に小さな差異評価値を検出する毎に保持する最小差異評価値とその動きベクトル情報を更新し、設定された差異評価実行範囲内で最終的に最小差異評価値となる動きベクトル情報を検出結果として検出結果保存メモリ１２０に格納する。
【００９４】
フィールド単位で動き検出を行う場合、差異評価実行範囲、即ち動き検出設定範囲は、図１２において、第１の参照フィールド画面（例えば”Top field”）上に示した現符号化ブロックＣ（例えば”Bottom field”ブロックで、画面位置は完全に一致しないので近似した位置となる）に対し、２フィールド目の動き検出設定許可範囲Ｒ２内で符号化ブロックＣの水平垂直とも４倍の画素数（符号化ブロックＣの１６倍の画素数）となり、符号化ブロックＣの左上の画素がこの範囲に含まれる全参照ブロックと現符号化ブロックとの差異評価が差異評価部１６２で行われる。そして、その中で最小差異評価値の参照ブロック位置を示す動きベクトルが最小差異評価値検出部１６３で検出される。続いて、同様に第２の参照フィールド画面（例えば”Bottom field”）上にも動きベクトルに基づく動き検出設定範囲Ｒ２（水平垂直とも符号化ブロックの４倍の画素数、即ち符号化ブロックの１６倍の画素数）に現符号化ブロックＣの左上の画素が含まれる全参照ブロックと現符号化ブロックとの差異評価が差異評価部１６２で行われ、最小差異評価値検出部１６３は、先の第１の参照フィールド画面からの動き検出結果を初期値として、最小差異評価値の参照ブロック位置を示す動きベクトルを検出する。そして、最終的に最小差異評価値となる動きベクトルを動きベクトル検出結果１２０ａとして検出結果保存メモリ１２０に格納する。
【００９５】
このようにして、複数の両方向予測符号化画面（Ｂピクチャ）の同一画面位置にある符号化ブロックに対する動き検出が終了すると、符号化ブロックの画面位置を更新して、前述のような動き検出の処理を繰り返す。この符号化ブロックの画面位置の更新は、符号化ブロックの画面位置を１ブロックずつ（図１２における領域Ｕ）水平方向に順次更新していき、水平方向への更新が完了した時には画面左端に戻り垂直方向へ１ブロック更新するというように行う。
【００９６】
動き検出結果転送部１０２は、所定数の符号化ブロックの動き検出が終了する毎に、生成する動き検出結果読出アドレス１０２ａを生成して検出結果保存メモリ１２０に格納された動きベクトル検出結果１２０ｃを読み出し、参照画像格納モード信号１００ａに応じて生成される動き検出結果書込アドレス１０２ｂに従って、読み出した動きベクトル検出結果１２０ｃを外部大容量メモリ１１０の所定位置に格納する。
【００９７】
《第２の参照画素格納モード》
次に、これから符号化しようとする画像が両方向予測符号化画面（Ｂピクチャ）でない場合、即ちこれから符号化しようとする画像が表示順序で時間的に未来の画面からの動きベクトルの使用を許可されない前方予測符号化画面（Ｐピクチャ）である場合の動きベクトル検出装置の処理動作例について説明する。
【００９８】
参照画像格納モード信号１００ａにより、参照画素データ１３０ａは、図１３に示すような第２の参照画素格納モードで参照ブロック用高速メモリ１３０に格納され、参照画像と水平方向について同じサイズの参照部分領域（図１３における領域Ｓ）が参照ブロック用高速メモリ１３０内に保存され、第２の参照画素格納モードに応じたタイミングと所定の画素数単位（図１３における領域Ｕ）で、参照ブロック用高速メモリ１３０内の参照部分領域画素が更新される。
【００９９】
参照情報転送部１０５は、参照情報読出アドレス１０５ａを生成して、同一符号化画面の垂直方向に所定間隔離れた位置にある複数の符号化ブロックに対して、表示順序で直前の符号化画面における同一画面位置の符号化ブロックに対する動きベクトル１５０ａを参照動きベクトル１５０ａとして外部大容量メモリ１１０から読み出し、読み出した参照動きベクトル１５０ａを動きベクトル参照用メモリ１５０内の参照動きベクトル書込アドレス１０５ｂで示される位置に書き込んで保存する。それと共に、参照情報転送部１０５は、外部大容量メモリ１１０から前記の同一符号化画面の垂直方向に所定間隔離れた位置にある複数の符号化ブロックに対する動き検出結果（動きベクトル及び差異評価値）１２０ｄを読み出して、動き検出結果書込アドレス１０５ｃで示される検出結果保存メモリ１２０内の位置に書き込んで保存する。
【０１００】
ここで、同一参照フィールド画面からの動き検出が初回の差異評価実行機会となる符号化ブロック（符号化画面の上部に位置する符号化ブロックや同一符号化画面で垂直方向に所定間隔離れた位置にある複数の符号化ブロックのうち画面上で最も下に位置する符号化ブロック）に対しては、第１の参照フィールド画面（例えば”Top field”）からの動き検出においては、動き検出結果が必ず得られていないので、その符号化ブロックに対する動き検出結果１２０ｄを外部大容量メモリ１１０から読み出さなくても良い。また、第２の参照フィールド画面（例えば”Bottom field”）からの動き検出においては、第１の参照フィールド画面（例えば”Top field”）からの当該符号化ブロックに対する動きベクトル検出結果１２０ｄを参照動きベクトルとして外部大容量メモリ１１０から読み出す。
【０１０１】
差異評価実行範囲設定部１６１は、前記垂直方向に所定間隔離れた位置の複数の符号化ブロックに対する参照動きベクトル１５０ｂを動きベクトル参照用メモリ１５０から順次読み出す。そして、参照動きベクトル１５０ｂに基づく垂直方向の動き検出範囲の所定割合以上が参照ブロック用高速メモリ１３０内の参照画像領域に含まれ、且つ動き検出が完了していない符号化ブロックについて、前記参照動きベクトル１５０ｂに基づいて、差異評価部１６２対し差異評価実行範囲を垂直方向の動き検出範囲の所定割合単位で設定すると共に、その符号化ブロック位置情報１６１ａを符号化ブロック転送部１０４に与える。
【０１０２】
また、参照動きベクトル１５０ｂに基づいてその符号化ブロックに対する垂直方向の動き検出範囲の所定割合について差異評価が既に完了している場合は、参照情報読出アドレス１６１ｄを検出結果保存メモリ１２０に与え、検出結果保存メモリ１２０からその動き検出途中結果として動きベクトル検出結果１２０ｂ（動きベクトル及び差異評価値）を読み出し、最小差異評価値検出部１６３にそれらの値を初期値として設定する。また、第１の参照フィールド画面（例えば”Top field”）からの動き検出においてその符号化ブロックに対する差異評価実行が初回である場合は、最小差異評価値検出部１６３に動き検出結果が存在しないことを示す初期状態に設定する。
【０１０３】
符号化ブロック転送部１０４は、差異評価実行範囲設定部１６１から与えられる符号化ブロック位置情報１６１ａに基づいて、符号化ブロック読出アドレス１０４ａを外部大容量メモリ１１０に与え、外部大容量メモリ１１０から符号化ブロックデータ１４０ａを読み出して、符号化ブロック書込アドレス１０４ｂで示される符号化ブロック用高速メモリ１４０内の位置に書き込んで保存する。
【０１０４】
差異評価部１６２は、符号化ブロック読出アドレス１６２ａを符号化ブロック用高速メモリ１４０に与える。それと共に、差異評価部１６２は、設定された差異評価実行範囲内の参照ブロック読出アドレス１６２ｂを参照ブロック用高速メモリ１３０に与えて、これに従って符号化ブロック用高速メモリ１４０及び参照ブロック用高速メモリ１３０から読み出された符号化ブロックデータ１４０ｂ及び参照ブロック画素データ１３０ｂとの差異評価値を算出する。
【０１０５】
最小差異評価値検出部１６３は、差異評価部１６２から新たな差異評価値１６３ａを受け取る毎に、保持している最小差異評価値と比較し、更に小さな差異評価値を検出する毎に、保持する最小差異評価値とその動きベクトル情報を更新し、設定された差異評価実行範囲内で最終的に最小差異評価値となる動きベクトル情報を動きベクトル検出結果１２０ａとして検出結果保存メモリ１２０に格納する。
【０１０６】
このようにして、同一符号化画面で垂直方向に所定間隔離れた位置にある複数の符号化ブロックに対する差異評価実行範囲内の最小差異評価値検出が終了する毎に、符号化ブロックの画面位置を順次更新して、前述のような動き検出の処理を繰り返す。この符号化ブロックの画面位置の更新は、符号化ブロックの画面位置を１ブロックずつ（図１３における領域Ｕ）水平方向に順次更新して、水平方向への更新が完了した時に画面左端に戻り垂直方向へ１ブロック更新するというように行う。
【０１０７】
このようにして基準符号化ブロック位置が所定数更新される毎に、動き検出結果転送部１０２は、動き検出結果読出アドレス１０２ａにより検出結果保存メモリ１２０に格納された動き検出結果１２０ｃを読み出し、参照画像格納モード信号１００ａに応じて生成する動き検出結果書込アドレス１０２ｂにより、外部大容量メモリ１１０の所定位置に動き検出結果１２０ｃを格納し保存する。なお、第２の参照フィールド画面（例えば”Bottom field”）から動き検出を行う場合において、同一符号化画面で垂直方向に所定間隔離れた位置における複数の符号化ブロックのうち、画面上で最も上に位置する符号化ブロックに対しては、最終的な動き検出結果が必ず得られているので、その符号化ブロックに対する差異評価値を外部大容量メモリ１１０に保存しなくても良い。
【０１０８】
例えば、図２６や図２７で示すようなフィールド単位の動き検出において、５フィールド目となる符号化画面（例えば”Top field”）の符号化ブロックに対して参照される動きベクトルは、前述の第１の参照画素格納モードにおいて４フィールド目の符号化ブロックに対する動き検出設定許可範囲（図１２における領域Ｒ４）内から検出された動きベクトルとなり、前方予測符号化画面（Ｐピクチャ）に対しても両方向予測符号化画面（Ｂピクチャ）と同様な動き速度に追随させるために動き検出を許可しなければならない範囲（動きベクトル検出設定許可範囲）は、現符号化ブロック位置を基準とすると符号化ブロックの水平垂直とも１０倍の画素数となる。
【０１０９】
そこで、前述の同一符号化画面における垂直方向に所定間隔離れた位置にある複数の符号化ブロックとして、その内の基準ブロックと、基準ブロックの３ブロック下のブロックと、基準ブロックの３ブロック上のブロックとの３つの符号化ブロックを選ぶと、基準ブロックの３ブロック下の符号化ブロックに対しては、これら３つの符号化ブロックの組が垂直方向に３ブロック及び６ブロック更新された場合にも差異評価実行機会が与えられる。即ち、同一符号化ブロックに対して３回の差異評価実行機会が与えられる。
【０１１０】
そこで、これら３つの符号化ブロックに対して動き検出設定許可範囲を定めて、図１４に示すように１回目の差異評価実行機会となる基準ブロックＦの３ブロック下の符号化ブロックＣと、図１５に示すように２回目の差異評価実行機会となる基準ブロックＦと同位置の符号化ブロックＣと、図１６に示すように３回目の差異評価実行機会となる基準ブロックＦの３ブロック上の符号化ブロックＣについて、各符号化ブロックＣに対する参照動きベクトルに基づく動き検出範囲（符号化ブロックＣの水平垂直とも２倍の画素数、即ち符号化ブロックの４倍の画素数）の垂直方向について全ての画素がその動き検出設定許可範囲に含まれる場合に、参照動きベクトルに基づく動き検出範囲を差異評価実行範囲（図１４におけるハッチングされた領域Ｒ）として差異評価部１６２に設定する。
【０１１１】
なお、図１４から図１６に示した差異実行範囲設定範囲の垂直方向について、１回目と２回目の差異評価実行機会及び２回目と３回目の差異評価実行機会において、それぞれ２ブロック相当の画素数が重複しているようにみえるが、これは１画素でも不足が生じないよう考慮しているためである。従って、画素の重複が生じる場合には、その参照動きベクトルにより判断可能であり、差異評価実行範囲設定部１６１は、後の差異評価実行機会でその重複を検出した場合は差異評価を実行させないようにすることができる。
【０１１２】
これにより、参照動きベクトルに基づく全ての動き検出範囲から差異評価値を算出することが可能となると共に、同一参照フィールド画面からの同一符号化ブロックに対する動き検出は必ず１回の差異評価実行機会で行うことになる。
【０１１３】
このようにして、第１の参照フィールド画面（例えば”Top field”）からの第１の符号化フィールド画面（例えば”Top field”）の全符号化ブロックに対する動き検出を終了した後に、第２の参照フィールド画面（例えば”Bottom field”）からの第１の符号化フィールド画面（例えば”Top field”）の全符号化ブロックに対する動き検出を行うことで、第１の符号化フィールド画面（例えば”Top field”）に対する動き検出が完了する。
【０１１４】
更に、６フィールド目となる符号化画面（例えば”Bottom field”）の符号化ブロックに対して参照される動きベクトルは、前述の第２の参照画素格納モードにおいて５フィールド目の符号化ブロックに対する動き検出設定許可範囲内から検出された動きベクトルとなり、動き検出を許可しなければならない範囲（動きベクトル検出設定許可範囲）は、現符号化ブロック位置を基準とすると符号化ブロックの水平垂直とも１２倍の画素数となる。
【０１１５】
そこで、前述の同一符号化画面における垂直方向に所定間隔離れた位置にある複数の符号化ブロックとして、その内の基準ブロックと、基準ブロックの４ブロック下のブロックと、基準ブロックの３ブロック上のブロックとの３つの符号化ブロックを選ぶと、基準ブロックの４ブロック下の符号化ブロックに対しては、これら３つの符号化ブロックの組が垂直方向に４ブロック及び７ブロック更新された場合にも差異評価実行機会が与えられる。即ち、同一符号化ブロックに対して３回の差異評価実行機会が与えられる。
【０１１６】
そこで、これら３つの符号化ブロックに対して動き検出設定許可範囲を定めて、各符号化ブロックに対する参照動きベクトルに基づく動き検出範囲（水平垂直とも符号化ブロックの２倍の画素数、即ち符号化ブロックの４倍の画素数）の垂直方向について、図１７に示すように１回目の差異評価実行機会となる基準ブロックＦの４ブロック下の符号化ブロックＣに対しては、上側１／２以上を含む場合に参照動きベクトルに基づく動き検出範囲の上側から１／２単位で差異評価実行範囲（図１７におけるハッチングされた領域Ｒ）を差異評価部１６２に設定する。同様に、図１８に示すように２回目の差異評価実行機会となる基準ブロックＦと同位置の符号化ブロックＣ対しては、下側１／２以上を含む場合に参照動きベクトルに基づく動き検出範囲の下側から１／２単位で差異評価実行範囲（図１８におけるハッチングされた領域Ｒ）を差異評価部１６２に設定し、図１９に示すように３回目の差異評価実行機会となる基準ブロックＦの３ブロック上の符号化ブロックＣに対しては全てがその動き検出設定許可範囲に含まれる場合に参照動きベクトルに基づく動き検出範囲を差異評価部１６２に差異評価実行範囲（図１９におけるハッチングされた領域Ｒ）として設定する。
【０１１７】
なお、図１７から図１９に示した差異実行範囲設定範囲の垂直方向について、１回目と２回目の差異評価実行機会で１ブロック相当の画素数の重複があり、２回目と３回目の差異評価実行機会で２ブロック相当の画素数の重複があるようにみえるが、これは１画素でも不足が生じないよう考慮しているためである。従って、画素の重複が生じる場合には、その参照動きベクトルにより判断可能であり、差異評価実行範囲設定部１６１は、後の差異評価実行機会でその重複を検出した場合は差異評価を実行させないようにすることができる。
【０１１８】
これにより、参照動きベクトルに基づく全ての動き検出範囲から差異評価値を算出することが可能となると共に、同一参照フィールド画面からの同一符号化ブロックに対する動き検出として２回の差異評価実行機会で行う場合は、動き検出範囲の垂直方向について１／２となる。
【０１１９】
このようにして、第１の参照フィールド画面（例えば”Top field”）からの第２の符号化フィールド画面（例えば”Bottom field”）の全符号化ブロックに対する動き検出を終了した後に、第２の参照フィールド画面（例えば”Bottom field”）からの第２の符号化フィールド画面（例えば”Bottom field”）の全符号化ブロックに対する動き検出を行うことで、第２の符号化フィールド画面（例えば”Bottom field”）に対する動き検出が完了する。
【０１２０】
図２０は、本実施形態における動きベクトル検出装置を用いて、参照ブロック用高速メモリ１３０への参照画素格納モードを第１の参照画素格納モードに設定して１フレーム（２フィールド）期間に参照フィールド間距離が１フィールドから４フィールドの後方予測動きベクトルまたは前方予測動きベクトルを検出し、参照ブロック用高速メモリ１３０への参照画素格納モードを第２の参照画素格納モードに設定して参照フィールド間距離が５フィールドから６フィールドの前方予測動きベクトルを検出することにより、符号化遅延を最小に最適化した例である。
【０１２１】
図２１は、本実施形態における動きベクトル検出装置を用いて、参照ブロック用高速メモリ１３０への参照画素格納モードを第１の参照画素格納モードに設定して、２フレーム（４フィールド）期間に参照フィールド間距離が１フィールドから４フィールドの後方予測動きベクトル及び前方予測動きベクトルを検出し、参照ブロック用高速メモリ１３０への参照画素格納モードを第２の参照画素格納モードに設定して、参照フィールド間距離が５フィールドからフィールドの前方予測動きベクトルを検出することにより、外部大容量メモリ１１０から参照画素を読み出すためのメモリバンド幅を最小に最適化した例である。
【０１２２】
なお、図２０及び図２１において、第１の参照画素格納モードにおける符号化フレーム読み出し回数は、符号化フィールド画面の読み出し回数相当数を、第２の参照画素格納モードにおける符号化フレーム読み出し回数は、６フィールド目の符号化画面の全符号化ブロックについて２回の差異評価実行機会を適用した場合の符号化フィールド画面の読み出し回数相当を表している。また、参照フレーム読み出し回数は、参照フィールド画面の読み出し回数相当数を表し、合計読み出し回数は、１フレーム（２フィールド）期間での符号化フィールド画面及び参照フィールド画面の読み出し回数相当数をそれぞれ表している。また、図２０及び図２１において、記号Δは、入力フレームより１世代前の（古い）フレームであることを意味する。
【０１２３】
メモリバンド幅を最小に最適化した図２１における１フレーム期間の画素読み出しのためのメモリバンド幅の最大値は、図２０における１フレーム期間のメモリバンド幅の「13／22」となり、約半分に低減できる。更に、図２１に示す例では、１フレーム期間における第１の参照画素格納モードによる処理画面数は、第２の参照画素格納モードによる処理画面数の２倍であるのに対し、その間の画素読み出しのためのメモリバンド幅は殆ど同等であることから、本動きベクトル検出装置は、図２６や図２７で示すようなフィールド単位の動き検出において特に効果的であることが解る。
【０１２４】
なお、前述の実施形態における参照ブロック用高速メモリ１３０への参照画素格納モードの設定を、第１の参照画素格納モードで格納可能な参照部分領域から、符号化画面と参照画面間の距離が、符号化ブロックに与え得る全動きベクトルを検出可能な距離か否かを判断することにより、決定するようにしても良い。
【０１２５】
［動きベクトル検出方法］
次に、図２２を参照して、第１〜第２の実施形態で説明した動きベクトル検出装置による動きベクトル検出方法について、詳細に説明する。なお、以下の一連の処理は、図１に示した動きベクトル検出装置における図示しないＣＰＵを用いて構成されたコントローラからの制御に従って、実行される。
【０１２６】
まず、ステップＳ００１において、参照画像格納モード設定部１００は、両方向からの動きベクトルを求める必要のある両方向予測符号化画面に対する動き検出期間であるか否かを判定する。
【０１２７】
ステップＳ００１における判定の結果、両方向予測符号化画面に対する動き検出期間であると判定された場合は、ステップＳ１０３へ進む。
【０１２８】
ステップＳ１０３において、参照画像転送部１０３は、符号化画面及び参照画面を記憶した外部大容量メモリ１１０から、参照画像の部分領域である参照部分領域を読み出して参照ブロック用高速メモリ１３０に格納することで、参照ブロック用高速メモリ１３０内の参照部分領域を更新する。
【０１２９】
次に、ステップＳ１０６において、差異評価実行範囲設定部１６１は、異なる符号化画面の同一画面位置にある複数の符号化ブロックのうち、参照画面に時間的に最も近い符号化ブロックに対して、最小差異評価値検出部１６３に対して動き検出結果が存在しないことを示す初期値に初期設定し、動きベクトル零に基づく参照ブロックとの差異評価実行範囲を設定する。
【０１３０】
ステップＳ１０７において、符号化ブロック転送部１０４は、異なる符号化画面の同一画面位置にある複数の符号化ブロックのうち、参照画面に時間的に最も近い符号化ブロックを外部大容量メモリ１１０から読み出して符号化ブロック用高速メモリ１４０に格納する。
【０１３１】
ステップＳ１０８において、差異評価部１６２は、差異評価実行範囲設定部１６１により設定された差異評価実行範囲内の中で最初の差異評価位置の参照ブロックを参照ブロック用高速メモリ１３０から読み出す。
【０１３２】
ステップＳ１０９において、差異評価部１６２は、読み出された差異評価位置の参照ブロックと符号化ブロック用メモリの符号化ブロックとの差異評価値を算出する。
【０１３３】
ステップＳ１１０において、最小差異評価値検出部１６３は、ステップＳ１０６において設定された動き検出結果が存在しないことを示す初期値と、ステップＳ１０９において算出された差異評価値とを比較して、差異評価値の小さな方を選択し、選択した方の差異評価値及び対応する動きベクトルを一時保存する。
【０１３４】
そして、ステップＳ１１１において、設定されている差異評価実行範囲内の差異評価処理が全て終了したか否かを判定する。判定の結果、終了していなければ、ステップＳ１０８に戻り、差異評価部１６２は、設定されている差異評価実行範囲内で差異評価位置を更新して、対応する参照ブロックを参照ブロック用高速メモリ１３０から読み出し、ステップＳ１０９において、更新された差異評価位置に対する参照ブロックと、符号化ブロック用高速メモリ１４０の符号化ブロックとの差異評価値を算出する。更に、ステップＳ１１０において、最小差異評価値検出部１６３は、設定されている差異評価実行範囲内で過去に検出された最小差異評価値と、今回検出された差異評価値とを比較し、最小差異評価値となる方の差異評価値及び対応する動きベクトルを一時記憶する。
【０１３５】
ステップＳ１１１の判定の結果、差異評価実行範囲内の処理が終了していれば、次にステップＳ１１２において、検出した最小差異評価値及びそれに対応する動きベクトルを検出結果保存メモリ１２０に一時記憶する。
【０１３６】
次に、ステップＳ１１３において、異なる符号化画面の同一画面位置にある複数の符号化ブロックに対する動き検出処理が終了したかどうかを判定する。
【０１３７】
ステップＳ１１３における判定の結果、異なる符号化画面の同一画面位置にある複数の符号化ブロックに対する動き検出が終了していない場合、ステップＳ１０６に戻り、差異評価実行範囲設定部１６１は、次に参照画面に時間的に近い符号化ブロックに対して、検出結果保存メモリ１２０に一時記憶されている動き検出結果に基づいて、参照ブロックとの差異評価実行範囲を設定する。ステップＳ１０７において、符号化ブロック転送部１０４は、その符号化ブロック（次に参照画面に時間的に近い符号化ブロック）を、外部大容量メモリ１１０から読み出して符号化ブロック用高速メモリ１４０に格納するといったように、前述のステップ１０６からステップ１１３の処理が繰り返し実行される。
【０１３８】
また、ステップＳ１１３において、異なる符号化画面の同一画面位置にある複数の符号化ブロックに対する動き検出処理が終了したと判断された場合、次にステップＳ１１４に進む。
【０１３９】
ステップＳ１１４において、所定数の符号化ブロックに対する動き検出が終了したかどうかを判定し、所定数の符号化ブロックに対する動き検出が終了していなければ、ステップＳ１０３へ戻る。ステップＳ１０３において、参照画像転送部１０３は、符号化ブロックの画面位置を更新すると共に、外部大容量メモリ１１０から複数の両方向予測符号化画面における同一画面位置の各符号化ブロックに与え得る全動きベクトルを検出可能な動き検出範囲を含む参照部分領域を参照ブロック単位で読み出して参照ブロック用高速メモリ１３０に格納することで、参照ブロック用高速メモリ１３０内の参照部分領域を更新する。そして、上述のステップＳ１０３からステップＳ１１４の処理が繰り返される。
【０１４０】
ステップＳ１１４において、所定数の符号化ブロックに対する動き検出が終了したかどうかを判定し、所定数の符号化ブロックに対する動き検出が終了していれば、次にステップＳ１１５において、所定数の符号化ブロックに対する動き検出結果を外部大容量メモリ１１０に転送する。
【０１４１】
そして、ステップＳ１１６において、複数の両方向予測画面の全符号化ブロックに対する動き検出が終了したかどうかを判定し、複数の両方向予測画面の全符号化ブロックに対する動き検出が終了していなければ上述のステップ１０３からステップＳ１１６の処理が繰り返され、終了していれば第１の参照画素格納モードでの動き検出を終了する。
【０１４２】
一方、ステップＳ００１において、片方向予測符号化画面に対する動き検出期間であると判断された場合は、ステップＳ２０２へ進む。
【０１４３】
ステップＳ２０２において、参照情報転送部１０５は、同一符号化画面で垂直方向に所定間隔離れた位置にある複数の符号化ブロックに対して、外部大容量メモリ１１０から動きベクトル検出結果を読み出して、その複数の符号化ブロックに対する参照動きベクトルとして動きベクトル参照用メモリ１５０に格納する。更に、参照情報転送部１０５は、同一符号化画面で垂直方向に所定間隔離れた位置にある複数の符号化ブロックのうち、画面上で最下位に位置する符号化ブロック以外の符号ブロックに対する動き検出中間結果を、外部大容量メモリ１１０から読み出して検出結果保存メモリ１２０に一時記憶する。
【０１４４】
ステップＳ２０３において、参照画像転送部１０３は、外部大容量メモリ１１０から参照画像の部分領域である参照部分領域を読み出して、参照画像の水平方向のサイズと同じサイズの参照部分領域を参照ブロック用高速メモリ１３０に格納することにより、参照ブロック用高速メモリ１３０内の参照部分領域を更新する。
【０１４５】
ステップＳ２０４において、差異評価実行範囲設定部１６１は、前記垂直方向に所定間隔離れた位置にある複数の符号化ブロックのうち、画面上で最下位に位置する符号化ブロックに対する動き検出中間結果を動きベクトル参照用メモリ１５０から読み出す。
【０１４６】
ステップＳ２０５において、差異評価実行範囲設定部１６１は、その参照動きベクトルに基づく動き検出範囲の所定割合が、参照ブロック用高速メモリ１３０内の参照部分領域に含まれているか否かを判定することで、差異評価の実行の要否を判断する。判定の結果、差異評価の実行が不要と判断された場合、以下に続くステップ２０６からステップ２１２の各処理が省略され、逆に、差異評価の実行が必要と判断された場合、次にステップＳ２０６に進む。
【０１４７】
ステップＳ２０６において、差異評価実行範囲設定部１６１は、ステップＳ２０５で差異評価の実行が必要と判断された符号化ブロックに対して、その参照動きベクトルに基づいて、符号化ブロックと参照ブロックとの間で差異評価を実行する範囲を設定すると共に、最小差異評価値検出部１６３の初期値を動き検出結果が存在しないことを示す初期状態に設定する。
【０１４８】
ステップＳ２０７において、符号化ブロック転送部１０４は、ステップＳ２０５で差異評価の実行が必要と判断された符号化ブロックを、外部大容量メモリ１１０からから読み出して符号化ブロック用高速メモリ１４０に格納する。
【０１４９】
ステップＳ２０８において、差異評価部１６２は、差異評価実行範囲設定部１６１により設定された差異評価実行範囲内の中で最初の差異評価位置の参照ブロックを参照ブロック用高速メモリ１３０から読み出す。
【０１５０】
ステップＳ２０９において、差異評価部１６２は、読み出された差異評価位置の参照ブロックと符号化ブロック用メモリの符号化ブロックとの差異評価値を算出する。
【０１５１】
ステップＳ２１０において、最小差異評価値検出部１６３は、ステップＳ１０６において設定された動き検出結果が存在しないことを示す初期値と、ステップＳ２０９において算出された差異評価値とを比較して、差異評価値の小さな方を選択し、選択した方の差異評価値及び対応する動きベクトルを一時保存する。
【０１５２】
そして、ステップＳ２１１において、設定されている差異評価実行範囲内の差異評価処理が全て終了したか否かを判定し、終了していなければ、ステップＳ２０８に戻り、差異評価部１６２は、設定されている差異評価実行範囲内で差異評価位置を更新して、対応する参照ブロックを参照ブロック用高速メモリ１３０から読み出し、ステップＳ２０９において、読み出された差異評価位置の参照ブロックと符号化ブロック用メモリの符号化ブロックとの差異評価値を算出する。更に、ステップＳ２１０において、最小差異評価値検出部１６３は、設定されている差異評価実行範囲内で過去に検出された最小差異評価値と、ステップＳ２０９において今回新たに算出された差異評価値とを比較して、差異評価値の小さな方を選択し、最小差異評価値となる差異評価値及び対応する動きベクトルを一時保存する。
【０１５３】
また、ステップＳ２１１における判定の結果、差異評価実行範囲内の処理が全て終了したと判断されると、次にステップＳ２１２において、検出した最小差異評価値及びそれに対応する動きベクトルを検出結果保存メモリ１２０に一時記憶する。
【０１５４】
ステップＳ２１３における判定の結果、同一符号化画面で垂直方向に所定間隔離れた位置にある複数の符号化ブロックに対して、差異評価の処理が終了していないと判断された場合、ステップＳ２０４に戻り、差異評価実行範囲設定部１６１は、前記垂直方向に所定間隔離れた位置にある複数の符号化ブロックのうち、画面上で次に下に位置する符号化ブロックに対する参照動きベクトルを動きベクトル参照用メモリ１５０から読み出す。そして、差異評価実行範囲設定部１６１は、ステップＳ２０５において、その参照動きベクトルに基づく動き検出範囲の所定割合が、参照ブロック用高速メモリ１３０内の参照部分領域に含まれているか否かを判定することで、差異評価実行の要否を判断する。差異評価実行が不要と判断された場合、以下のステップ２０６からステップ２１２の処理が省略され、差異評価実行が必要と判断された場合、ステップＳ２０６に進む。
【０１５５】
ステップＳ２０６において、差異評価実行範囲設定部１６１は、ステップＳ２０５において差異評価の実行が必要と判断された符号化ブロックに対して、その参照動きベクトルに基づいて、符号化ブロックと参照ブロックとの間で差異評価を実行する範囲を設定する。それと共に、その符号化ブロックに対して異なる参照部分領域保存状態で２回目の差異評価実行となる場合は、検出結果保存メモリ１２０に格納されている動き検出結果を最小差異評価値検出の初期値として設定し、初回の差異評価実行となる場合は、最小差異評価値検出の初期値を動き検出結果が存在しないことを示す初期状態に設定する。
【０１５６】
ステップＳ２０７において、符号化ブロック転送部１０４は、ステップＳ２０５において差異評価の実行が必要と判断された符号化ブロックを外部大容量メモリ１１０からから読み出して符号化ブロック用高速メモリ１４０に格納する。
【０１５７】
ステップＳ２０８において、差異評価部１６２は、差異評価実行範囲設定部１６１により設定された差異評価実行範囲内の中で最初の差異評価位置の参照ブロックを参照ブロック用高速メモリ１３０から読み出し、ステップＳ２０９において、読み出した差異評価位置の参照ブロックと符号化ブロック用メモリの符号化ブロックとの差異評価値を算出する。
【０１５８】
ステップＳ２１０において、最小差異評価値検出部１６３は、ステップＳ１０６において設定された初期値と、ステップＳ２０９において今回新たに算出された差異評価値とを比較して、差異評価値の小さな方を選択することにより、最小差異評価値となる差異評価値及び対応する動きベクトルを一時保存する。
【０１５９】
そして、ステップＳ２１１において、差異評価実行範囲内の差異評価処理が全てを終了したか否かを判定し、終了していなければ、ステップＳ２０８に戻り、差異評価部１６２は、設定されている差異評価実行範囲内で差異評価位置を更新して、対応する参照ブロックを参照ブロック用高速メモリ１３０から読み出し、ステップＳ２０９において、読み出された差異評価位置の参照ブロックと符号化ブロック用メモリの符号化ブロックとの差異評価値を算出する。更に、ステップＳ２１０において、最小差異評価値検出部１６３は、設定されている差異評価実行範囲内で過去に検出された最小差異評価値と、ステップＳ２０９において今回新たに算出された差異評価値とを比較して、差異評価値の小さな方を選択し、最小差異評価値となる差異評価値及び対応する動きベクトルを一時保存する。
【０１６０】
また、ステップＳ２１１における判定の結果、差異評価実行範囲内の処理が全て終了したと判断されると、次にステップＳ２１２において、検出した最小差異評価値及びそれに対応する動きベクトルを検出結果保存メモリ１２０に一時記憶する。
【０１６１】
以上のような処理が繰り返し実行され、ステップＳ２１３において、同一符号化画面で垂直方向に所定間隔離れた位置にある複数の符号化ブロックに対する差異評価の実行が全て終了したと判断されると、次のステップＳ２１４に進む。
【０１６２】
ステップＳ２１４において、所定数の符号化ブロックに対する差異評価の処理が終了したかどうかを判定し、終了していなければ、ステップＳ２０３へ戻り、参照画像と水平方向について同じサイズの参照部分領域を格納するように、外部大容量メモリ１１０から参照画像を複数に分割した分割領域単位で読み出して参照ブロック用高速メモリ１３０に格納することにより、参照ブロック用高速メモリ１３０内の参照部分領域を更新して、このステップＳ２０３からステップＳ２１４の処理が繰り返し実行される。
【０１６３】
ステップＳ２１４において、所定数の符号化ブロックに対する差異評価実行の要否判定が終了したと判断されると、ステップＳ２１５において、所定数の符号化ブロックに対する動き検出結果を外部大容量メモリ１１０に転送する。
【０１６４】
そして、ステップＳ２１６において、片方向予測画面の全符号化ブロックに対する動き検出が終了したかどうかを判定し、終了していなければ、上述のステップ２０２からステップＳ２１６の処理が繰り返され、終了していれば、第２の参照画素格納モードでの動き検出を終了する。
【０１６５】
以上、第１〜第２の実施形態について詳細に説明したように、参照ブロック用高速メモリ１３０を第１の参照画素格納モードに設定した場合は、複数の符号化画面に対して外部大容量メモリ１１０からの同一参照画像の読み出しが１回で済むために、外部大容量メモリ１１０から参照画素を読み出すためのメモリバンド幅を大幅に削減することができる。また、各符号化ブロックに対する動き検出範囲が参照ブロック用高速メモリ１３０内の参照部分領域に存在するか否かの判断が不要であり、符号化ブロックを重複して読み出すことも不要となるため、差異評価部１６２の利用効率を向上でき、外部大容量メモリ１１０から符号化ブロックを読み出すためのメモリバンド幅の削減が可能となる。
【０１６６】
また、参照ブロック用高速メモリ１３０を第２の参照画素格納モードに設定した場合は、同一符号化ブロックに対して２回の異なる参照部分領域保存状態での動き検出を許容することにより、参照ブロック用高速メモリ１３０の容量の削減と参照画素読み出しのためのメモリバンド幅の削減が可能となる。
【０１６７】
更に、参照ブロック用高速メモリ１３０を第２の参照画素格納モードに設定した場合は、差異評価実行範囲設定部１６１は、垂直方向に所定間隔離れた位置にある複数の符号化ブロックに対して、各参照動きベクトルに基づく垂直方向の動き検出範囲の所定割合以上が参照ブロック用高速メモリ１３０内の参照部分領域に含まれ、且つ動き検出が完了していない符号化ブロックについてのみ、符号化ブロック転送部１０４を制御して符号化ブロック用高速メモリ１４０に転送させ、差異評価実行範囲を動き検出範囲の所定割合単位で行う。これにより、差異評価実行範囲が僅かな範囲に設定されるのを防止し、次の符号化ブロックに対する判断処理や設定処理をその差異評価実行中に完了できるようにすることで、差異評価部１６２の処理能力の向上や、判断処理や設定処理の高速化を不要にすることができる。
【０１６８】
また、参照画像格納モード設定部１００は、参照ブロック用高速メモリ１３０の容量の制限などにより、符号化ブロックに与え得る全動きベクトルを検出可能な参照部分領域を格納できない符号化画面に対してのみ、参照ブロック用高速メモリ１３０を第２の参照画素格納モードに設定することで、参照ブロック用高速メモリ１３０の容量を削減しても良い。
【０１６９】
特に、同一符号化ブロックに対する差異評価の連続処理を分ける場合は最大２回までとしているため、上記所定割合を垂直方向の動き検出範囲の１／２とすることで、差異評価実行中に次の判断処理や設定処理に利用できる最小期間が最も改善され、差異評価部１６２の処理能力の向上や、判断処理や設定処理の高速化が不要となり、回路規模の縮小が可能となる。
【０１７０】
また、参照ブロック用高速メモリ１３０は、複数のバッファメモリと、参照画像の部分領域を格納する複数の高速メモリとで構成し、第１のメモリから読み出された参照画像の部分領域をその複数のバッファメモリに格納した後、複数のバッファメモリから同時に読み出して複数の高速メモリに高速で転送することにより、差異評価部１６２が高速メモリをアクセスできない期間、即ち差異評価部１６２の停止期間を短縮することが可能となり、差異評価部１６２の高速化を不要にし、回路規模の縮小を可能にする。
【０１７１】
更に、差異評価部１６２が読み出していない高速メモリが存在する場合は、複数のバッファメモリから差異評価部１６２が読み出している高速メモリへの参照画像の部分領域の転送に先立って、複数のバッファメモリから差異評価部１６２が読み出していない高速メモリへの参照画像の部分領域の転送を行うことで、差異評価部１６２が高速メモリをアクセスできない期間を無くすることができ、差異評価部１６２の高速化が不要になって回路規模の縮小を可能にする。
【０１７２】
以上、本発明の実施の形態について詳細に説明したが、本発明は、その精神または主要な特徴から逸脱することなく、他の色々な形で実施することができる。
【０１７３】
従って、前述の各実施例はあらゆる点で単なる例示に過ぎず、限定的に解釈してはならない。本発明の範囲は、特許請求の範囲によって示すものであって、明細書本文には何ら拘束されない。更に、特許請求の範囲の均等範囲に属する変形や変更は、全て本発明の範囲内のものである。
【図面の簡単な説明】
【０１７４】
【図１】第１及び第２の実施形態に係る動きベクトル検出装置の構成例を示すブロック図である。
【図２】第１の実施形態において、第１の参照画素格納モードにより参照ブロック用高速メモリに格納される参照部分領域の例を示す図である。
【図３】第１の実施形態において、第１の参照画素格納モードにおける参照画面上の動き検出設定範囲の設定例を示す図である。
【図４】第１の実施形態において、第２の参照画素格納モードにより参照ブロック用高速メモリに格納される参照部分領域の例を示す図である。
【図５】第１の実施形態において、第２の参照画素格納モードにおける参照画面上の動き検出設定範囲の設定例（１回目の実行機会）を示す図である。
【図６】図５に示した動き検出設定範囲において、差異評価実行範囲の設定例を示す図である。
【図７】第１の実施形態において、第２の参照画素格納モードにおける参照画面上の動き検出設定範囲の設定例（２回目の実行機会）を示す図である。
【図８】第１の実施形態において、第２の参照画素格納モードにおける参照画面上の動き検出設定範囲の設定例（３回目の実行機会）を示す図である。
【図９】第１の実施形態において、フレーム単位で動きベクトルを検出し、符号化遅延を最適化した例を示す図である。
【図１０】第１の実施形態において、フレーム単位で動きベクトルを検出し、メモリバンド幅を最適化した例を示す図である。
【図１１】第２の実施形態において、第１の参照画素格納モードにより参照ブロック用高速メモリに格納される参照部分領域の例を示す図である。
【図１２】第２の実施形態において、第１の参照画素格納モードにおける参照画面上の動き検出設定範囲の設定例を示す図である。
【図１３】第２の実施形態において、第２の参照画素格納モードにより参照ブロック用高速メモリに格納される参照部分領域の例を示す図である。
【図１４】第２の実施形態において、第２の参照画素格納モードにおける参照画面上の動き検出設定範囲の設定例（５フィールド目の１回目の実行機会）を示す図である。
【図１５】第２の実施形態において、第２の参照画素格納モードにおける参照画面上の動き検出設定範囲の設定例（５フィールド目の２回目の実行機会）を示す図である。
【図１６】第２の実施形態において、第２の参照画素格納モードにおける参照画面上の動き検出設定範囲の設定例（５フィールド目の３回目の実行機会）を示す図である。
【図１７】第２の実施形態において、第２の参照画素格納モードにおける参照画面上の動き検出設定範囲の設定例（６フィールド目の１回目の実行機会）を示す図である。
【図１８】第２の実施形態において、第２の参照画素格納モードにおける参照画面上の動き検出設定範囲の設定例（６フィールド目の２回目の実行機会）を示す図である。
【図１９】第２の実施形態において、第２の参照画素格納モードにおける参照画面上の動き検出設定範囲の設定例（６フィールド目の３回目の実行機会）を示す図である。
【図２０】第２の実施形態において、フィールド単位で動きベクトルを検出し、符号化遅延を最適化した例を示す図である。
【図２１】第２の実施形態において、フィールド単位で動きベクトルを検出し、メモリバンド幅を最適化した例を示す図である。
【図２２】図１に示した動きベクトル検出装置による動きベクトル検出方法の処理手順例を示すフローチャートである。
【図２３】動き検出情報を用いて情報量を圧縮する動画像符号化装置の構成例を示すブロック図である。
【図２４】フレーム単位の動き検出における前方予測順序を例示した図である。
【図２５】フレーム単位の動き検出における後方予測順序を例示した図である。
【図２６】フィールド単位の動き検出における前方予測順序を例示した図である。
【図２７】フィールド単位の動き検出における後方予測順序を例示した図である。
【符号の説明】
【０１７５】
１００…参照画像格納モード設定部
１００ａ…参照画像格納モード信号
１０１…画像記憶用アドレス生成部
１０１ａ…入力画像書込アドレス
１０２…検出結果転送部
１０２ａ…検出結果読出アドレス
１０２ｂ…検出結果書込アドレス
１０３…参照画像転送部
１０３ａ…参照画素読出アドレス
１０３ｂ…参照画素書込アドレス
１０４…符号化ブロック転送部
１０４ａ…符号化ブロック読出アドレス
１０４ｂ…符号化ブロック書込アドレス
１０５…参照情報転送部
１０５ａ…参照情報読出アドレス
１０５ｂ…参照動きベクトル書込アドレス
１０５ｃ…検出結果書込アドレス
１１０…外部大容量メモリ
１１０ａ…入力画像データ
１２０…検出結果保存メモリ
１２０ａ，１２０ｂ，１２０ｃ，１２０ｄ…動きベクトル検出結果
１３０…参照ブロック用高速メモリ
１３０ａ…参照画素データ
１３０ｂ…参照ブロック画素データ
１４０…符号化ブロック用高速メモリ
１４０ａ，１４０ｂ…符号化ブロックデータ
１５０…動きベクトル参照用メモリ
１５０ａ，１５０ｂ…参照動きベクトル
１６１…差異評価実行範囲設定部
１６１ａ…符号化ブロック位置情報
１６１ｃ，１６１ｄ…参照情報読出アドレス
１６２…差異評価部
１６２ａ…符号化ブロック読出アドレス
１６２ｂ…参照ブロック読出アドレス
１６３…最小差異評価値検出部
１６３ａ…差異評価値
９１０…入力画像メモリ
９１０ａ…入力画像データ
９１５…ＭＥ部
９２０…ＭＣ部
９２５…ＤＣＴ部
９３０…量子化部
９３５…逆量子化部
９４０…ＩＤＣＴ部
９４５…局部再生部
９５０…再生画像メモリ
９６０…符号化多重部
【図１】
2005072726.tif 000003
【図２】
2005072726.tif 000004
【図３】
2005072726.tif 000005
【図４】
2005072726.tif 000006
【図５】
2005072726.tif 000007
【図６】
2005072726.tif 000008
【図７】
2005072726.tif 000009
【図８】
2005072726.tif 000010
【図９】
2005072726.tif 000011
【図１０】
2005072726.tif 000012
【図１１】
2005072726.tif 000013
【図１２】
2005072726.tif 000014
【図１３】
2005072726.tif 000015
【図１４】
2005072726.tif 000016
【図１５】
2005072726.tif 000017
【図１６】
2005072726.tif 000018
【図１７】
2005072726.tif 000019
【図１８】
2005072726.tif 000020
【図１９】
2005072726.tif 000021
【図２０】
2005072726.tif 000022
【図２１】
2005072726.tif 000023
【図２２】
2005072726.tif 000024
【図２３】
2005072726.tif 000025
【図２４】
2005072726.tif 000026
【図２５】
2005072726.tif 000027
【図２６】
2005072726.tif 000028
【図２７】
2005072726.tif 000029