(57)【特許請求の範囲】
【請求項１】
ある時間の入力画像中における矩形形状のテンプレートブロックがそれ以前の入力画像である参照画像中の所定の探索範囲内のどのブロックから移動したかを示す動きベクトルを、前記テンプレートブロックと前記探索範囲内から取り出した矩形形状の評価ブロックとのマッチング度合いに基づいて検出する動きベクトル検出方法であって、前記テンプレートブロック及び評価ブロックの、縦横いずれかの方向の所定数のラインについて、当該ライン上に存在する全画素中から、画素値の大きい順または小さい順に前記ライン上の全画素数よりも少ない数だけ選択してサンプリング点を設定するサンプリング点設定処理を行い、その設定されたサンプリング点の画素値を用いて動きベクトルの検出を行う動きベクトル検出方法において、
前記サンプリング点設定処理は、
前記ライン数が複数である場合には、前記画素値の大きい順に選択してサンプリング点を設定する処理と、前記画素値の小さい順に選択してサンプリング点を設定する処理とをラインに応じて変えて行うことを特徴とする動きベクトル検出方法。
【請求項２】
請求項１記載の動きベクトル検出方法において、
前記サンプリング点設定処理は、
前記所定数のライン群中における隣接ライン間で、前記画素値の大きい順に選択してサンプリング点を設定する処理と、前記画素値の小さい順に選択してサンプリング点を設定する処理とを交互に変えること
を特徴とする動きベクトル検出方法。
【請求項３】
ある時間の入力画像中における矩形形状のテンプレートブロックがそれ以前の入力画像である参照画像中の所定の探索範囲内のどのブロックから移動したかを示す動きベクトルを、前記テンプレートブロックと前記探索範囲内から取り出した矩形形状の評価ブロックとのマッチング度合いに基づいて検出する動きベクトル検出方法であって、前記テンプレートブロック及び評価ブロックの、縦横いずれかの方向の所定数のラインについて、当該ライン上に存在する全画素中から、隣り合う画素間における画素値の差分値が大きい画素の組合せ又は小さい画素の組み合わせを所定数選択してサンプリング点として設定するサンプリング点設定処理を行い、その設定されたサンプリング点の画素値を用いて前記動きベクトルを検出する動きベクトル検出方法において、
前記サンプリング点設定処理は、
前記ライン数が複数である場合には、前記画素値の差分値が大きい画素の組合せを選択してサンプリング点を設定する処理と、前記画素値の差分値が小さい画素の組合せを選択してサンプリング点を設定する処理とをラインに応じて変えて行うこと
を特徴とする動きベクトル検出方法。
【請求項４】
請求項３記載の動きベクトル検出方法において、
前記サンプリング点設定処理は、
前記ライン数が複数である場合には、前記画素値の差分値が大きい画素の組合せを選択してサンプリング点を設定する処理と、前記画素値の差分値が小さい画素の組合せを選択してサンプリング点を設定する処理とをラインに応じて変えて行うこと
を特徴とする動きベクトル検出方法。
【請求項５】
ある時間の入力画像中における矩形形状のテンプレートブロックがそれ以前の入力画像である参照画像中の所定の探索範囲内のどのブロックから移動したかを示す動きベクトルを、前記テンプレートブロックと前記探索範囲内から取り出した矩形形状の評価ブロックとのマッチング度合いに基づいて検出する動きベクトル検出方法において、
前記テンプレートブロックに対して前記請求項１〜４のいずれか記載のサンプリング点設定処理を実行して得たサンプリング点の画素のアドレスと、前記評価ブロックに対して前記請求項１〜４のいずれか記載のサンプリング点設定処理を実行して得たサンプリング点の画素のアドレスとを比較し、その一致度合いに基づいて前記動きベクトルを検出することを特徴とする動きベクトル検出方法。
【請求項６】
ある時間の入力画像中における矩形形状のテンプレートブロックがそれ以前の入力画像である参照画像中の所定の探索範囲内のどのブロックから移動したかを示す動きベクトルを、前記テンプレートブロックと前記探索範囲内から取り出した矩形形状の評価ブロックとのマッチング度合いに基づいて検出する動きベクトル検出方法において、
前記テンプレートブロックに対して前記請求項１〜４のいずれか記載のサンプリング点設定処理を実行して得たサンプリング点の画素の値と、前記評価ブロック中における、前記テンプレートブロックについてのサンプリング点と同じアドレスの画素の値とを比較し、その画素値の一致度合いに基づいて前記動きベクトルを検出することを特徴とする動きベクトル検出方法。
【請求項７】
請求項１〜６のいずれか記載の動きベクトル検出方法が、コンピュータシステムにて実行するプログラムとして記録されたことを特徴とする記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えば動画像符号化における動き補償予測などに用いられる動きベクトルを検出する方法に関するものである。
【０００２】
【従来の技術】
動きベクトルは、動画像のある時間における画像において、隣接する複数の画素で構成される画素ブロックが、異なる時間の画像中のどの位置と一番似ているかを示すベクトルである。この動きベクトルを検出する手法として、例えば文献「ディジタル画像圧縮の基礎」（安田浩、渡辺裕  著、日経ＢＰ出版センター、１９９７）ｐ．４７記載のブロックマッチング法がある。
【０００３】
図１１は、従来の動きベクトル検出方法を説明する図である。図１１（ａ）においては、ベクトル検出の対象となるテンプレートブロックをＴＢ１、探索範囲をＳＢ１と表している。また、探索範囲ＳＢ１の画素を（○）、テンプレートブロックＴＢ１の画素を（△）で示している。図１１（ａ）中では、探索範囲ＳＢ１にテンプレートブロックＴＢ１を重ねて示しているため、テンプレートブロックＴＢ１が重なっている部分の探索範囲ＳＢ１の画素（○）は省略されている。また、図１中では、テンプレートブロックＴＢ１は８画素×８ラインとなっているが、このブロックの大きさはこの大きさ以外であっても良い。
【０００４】
動きベクトルの検出は、ある時間の画像ブロックが異なる時間の画像中のどこに移動したか（又は、どこから移動したか）を探索するものである。つまり探索範囲ＳＢ１は上記異なる時間の画素ブロックであり、テンプレートブロックＴＢ１は上記ある時間の画像中から切り出された画素ブロックである。したがって、テンプレートブロックＴＢ１が探索範囲ＳＢ１中のどの部分から移動したものかを探索することで動きベクトルを検出する。
【０００５】
この動きベクトルを検出する方法として、従来、上記ブロックマッチング法による全探索法が知られている。この方法では、まずある時間の画像中から切り出されたテンプレートブロックＴＢ１中の各画素値と、異なる時間の画像の探索範囲ＳＢ１中から取り出した評価ブロックＳＢＭ１の各画素値の違いを、各画素ごとに差分絶対値あるいは差分自乗値などで算出し、これらの値の総和を求め評価値とする。次に評価ブロックＳＢＭ１を探索範囲内で左右あるいは上下に１画素移動し、この移動後の画像ブロックＳＢＭ１の各画素値と、テンプレートブロックＴＢ１の各画素値との違いを、上記と同様に算出し、評価値を求める。
【０００６】
このように評価ブロックＳＢＭ１を１画素分左右・上下に移動しながら、それぞれの評価値を算出していく。そして上記評価値が最小となる評価ブロックＳＢＭ１から、テンプレートブロックＴＢ１が移動してきたと判断する。図１１（ａ）の例では、探索範囲ＳＢ１が１６画素×１６ラインで構成されており、テンプレートブロックＴＢ１が水平・垂直方向にそれぞれ９回移動するため、評価ブロックＳＢＭ１は９×９＝８１組存在する。また図１１（ａ）中では、動きベクトルの検出範囲を水平・垂直方向ともに±４とし、例えば図１１（ａ）中の評価ブロックＳＢＭ１における評価値が最小だった場合には、動きベクトルは（３，３）となる。
【０００７】
上記従来の全探索法においては、全探索領域を評価するためには、テンプレートブロックＴＢ１と比較する評価ブロックが８１組存在し、各評価値を算出するためには、評価ブロックに８×８＝６４画素あるので、８１×６４＝５１８４回の差分絶対値あるいは差分自乗値を算出する必要があり、演算量が多いという問題がある。
【０００８】
一方、上記演算量を削減するための手法として、以下に示す２ステップ探索法が知られている。すなわち、第１ステップでは、複数の画素から１つの画素を選択するサンプリングを行って縮小画像を作成し、この縮小画像上で動きベクトルを評価する。そして、次の第２ステップでは、第１ステップで求められた初期変位の周囲を、サンプリング前の画像上で、相対的に狭い探索範囲で評価するものである。
【０００９】
図１１（ｂ）は、この第１ステップにおいて、４画素×４ラインから１画素をサンプリングするときに選択される画素を示したものであり、探索範囲内の画素のサンプリング点を（●）で示し、テンプレートブロック中の画素のサンプリング点を（▲）で示している。これにより、図１１（ｂ）に示す例においては、テンプレートブロックＴＢ２と比較して評価値を求めるべき評価ブロックは３×３＝９組であり、各評価値を算出するためには、各ブロックに２×２＝４画素あるので、９×４＝３６回の差分絶対値あるいは差分自乗値を算出することとなる。さらに第２ステップとして、上記初期変位の周りを例えば±２の範囲で探索する場合、テンプレートブロックＴＢ２と比較して評価値を求めるべき評価ブロックは５×５＝２５組あり、各評価値を算出するために８×８＝６４画素あるので、２５×６４＝１５３６回の差分絶対値あるいは差分自乗値を算出することとなる。したがって、演算量の合計は３６＋１５３６＝１５７２回であり、上記全探索法に比較すれば演算量は大幅に削減される。つまり、全探索法によれば演算量が多いため、ハードウェアの回路規模が大きくなってしまうが、この２ステップ探索法によればその問題を解決できるのである。
【００１０】
【発明が解決しようとする課題】
しかしながら、２ステップ探索法によれば、次のような問題がある。すなわち、演算量の削減のために、第１ステップにおいて画素のサンプリングを行っているため、この初期変位を求める段階で探索点の選択を誤ると、以降の段階で検出される動きベクトルが上記全探索法で検出される動きベクトルとは異なったものとなり、符号化効率が低下してしまう。ここで、探索点の選択を誤った具体例を図１２を例にとって説明する。
【００１１】
図１２において枠内の値は画素値を示しており、４画素×４ラインから１画素をサンプリングした場合、斜線を施した枠内の値を選択する。この場合は、４画素×４ラインからなる領域中の「左上隅の画素」を固定的に選択している。この図１２（ａ）及び（ｂ）の表す画像は、実際は全く異なる画像であるが、サンプリング点で構成される縮小画像は同じものとなっている。したがって、このようなサンプリング点の選択方法では、初期変位を正確に求めることができなくなってしまう。これは、動きベクトルを適切に求めるという観点から好ましくない。
【００１２】
本発明はこのような事情に鑑みてなされたものであり、動きベクトルの検出精度を向上させるとともに、動きベクトルを検出するための演算量を削減することができ、ハードウェアの回路規模を削減することのできる動きベクトル検出方法を提供することを目的としている。
【００１３】
【課題を解決するための手段、及び発明の効果】
上記目的を達成するためになされた本発明の動きベクトル検出方法は、ある時間の入力画像中における矩形形状のテンプレートブロックがそれ以前の入力画像である参照画像中の所定の探索範囲内のどのブロックから移動したかを示す動きベクトルを、テンプレートブロックと探索範囲内から取り出した矩形形状の評価ブロックとのマッチング度合いに基づいて検出することを前提とする。そして、テンプレートブロック及び評価ブロックの画素中よりサンプリングした画素の値を用いて動きベクトルの検出を行う。このように、テンプレートブロックと評価ブロックとのブロックマッチングを、各ブロックの全ての画素ではなく、サンプリングした画素同士で行うため、演算量が低減される。
【００１４】
しかし、サンプリング手法が従来のように固定位置にて行われると、図１２を参照して説明したように、実際は全く異なる画像であっても同じ画像であると判断してしまう場合も生じる。これは、固定的なサンプリング手法では、テンプレートブロック及び評価ブロックの特徴を反映した画素が選択されない可能性が高いことに起因している。
【００１５】
そこで、ブロックの特徴を反映した画素を選択できるようなサンプリング点設定処理を行うようにしたのである。この「ブロックの特徴を反映した画素を選択できるようなサンプリング点設定処理」については、いくつかの観点に基づいているので、適宜分類して説明する。
【００１６】
（１）画素値の大小比較
請求項１の動きベクトル検出方法におけるサンプリング点設定処理では、ブロックの縦横いずれかの方向の所定数のラインについて、当該ライン上に存在する全画素中から、画素値の大きい順または小さい順にライン上の全画素数よりも少ない数だけ選択してサンプリング点を設定する。このようなサンプリングをすれば、画素値の最大値あるいは最小値などの「画素値の大小度合い」を考慮したサンプリングとなり、ブロックの特徴点を反映していると言えるため、動きベクトルの検出精度が向上する。すなわち、動きベクトルの検出精度を向上させるとともに、動きベクトルを検出するための演算量を削減することができる。したがって、ハードウェアの回路規模も削減できる。
【００１７】
なお、「所定数のライン」については、ブロックを構成する全ラインでもよいし１ラインでもよい。また、画素値の大きい順または小さい順にライン上の全画素数よりも少ない数だけ選択するのであるから、これは最低１個でもよい。そして、ライン数が少ないほど、あるいは１ライン上から選択する画素数が少ないほど演算量は低減できる。しかし、逆に選択画素数が少ないほどブロックの特徴を反映した画素が選択されなくなる可能性も高くなるので、これらについては両者のバランスを考慮して設定することが望ましい。
【００１８】
さらに、請求項１の動きベクトル検出方法におけるサンプリング点設定処理においては、ライン数が複数である場合には、画素値の大きい順に選択してサンプリング点を設定する処理と、画素値の小さい順に選択してサンプリング点を設定する処理とをラインに応じて変えて行う。
【００１９】
このようにすれば、ブロック中の画素値の「大小差」も判る。つまり、画素値の大きいものあるいは小さいものだけを選択すると、例えばブロック中における画素値の大小差が大きいものと、画素値の大小差が小さいものとの区別が付け難くなるが、画素値の大小差も反映させれば、それらの区別は容易に付くからである。したがって、上述した「大小度合い」に加えて、よりブロックの特徴点がサンプリングされるようになる。
【００２０】
さらに、請求項２に示すように、所定数のライン群中における隣接ライン間で、画素値の大きい順に選択してサンプリング点を設定する処理と、画素値の小さい順に選択してサンプリング点を設定する処理とを交互に変えてもよい。これは、例えばブロック内の画素値の分布が均一であれば、画素値の大きいものを選択するラインと小さいものを選択するラインをどのようにとっても問題ないが、実際には画素値の分布は偏りがあるため、サンプリングした画素がブロック内の画素値の大小差が適切に反映していないことが想定されることを考慮したものである。つまり、隣接ライン間で画素値の大きい順・小さい順での選択を交互に行えば、画素値の分布に偏りがあった場合でも、極力画素値の大小差を反映したサンプリングが実現できるため、より画像の特徴点がサンプリングされるようになる。
【００２１】
（２）画素値の差分値比較
請求項３の動きベクトル検出方法におけるサンプリング点設定処理では、テンプレートブロック及び評価ブロックの、縦横いずれかの方向の所定数のラインについて、当該ライン上に存在する全画素中から、隣り合う画素間における画素値の差分値が大きい画素の組合せ又は小さい画素の組み合わせを所定数選択してサンプリング点として設定する。上述した請求項１の場合には、ブロック中の画素値の「大小差」も考慮することとなる。これはいわばマクロ的な観点からの画素値の大小差であるが、請求項３の場合には、ミクロ的な観点からの画素値の大小差に着目している。
【００２２】
例えば、ブロック中の両端に存在する画素同士に所定の画素値の差分があっても、それらの間の画素値の変化は判らない。グラデーション的に明暗変化しているだけかもしれないし、急激な明暗変化がいくつも存在しているかもしれない。つまり、それらの間の明暗変化については判らない。それに対し、隣り合う画素間における画素値の差に着目すると、例えば差分値の最も大きな画素同士の組合せが選択されると、少なくとも同一ライン上においては、その差分値を超えるような明暗変化は他にはないことが判る。逆に、差分値の最も小さな画素同士の組合せが選択されると、少なくとも同一ライン上においては、その差分値を下回るような明暗変化は他にはないことが判る。例えばその最小の差分値がそれなりに大きければ、該当するライン全体として明暗変化が激しいことが判る。このように、隣接画素間の画素差分値が大きな画素をサンプリングすれば、ブロックの特徴点を反映した画素を得ることができる。
【００２３】
なお、この場合の「所定数のライン」については、請求項１と同様に全ラインでもよいし１ラインでもよい。また、選択画素数が少ないほど演算量は低減できるが、逆に選択画素数が少ないほどブロックの特徴を反映した画素が選択されなくなる可能性も高くなるため、これらについては両者のバランスを考慮して設定することが望ましい点についても同様である。
【００２４】
さらに、請求項３の動きベクトル検出方法におけるサンプリング点設定処理においては、ライン数が複数である場合には、画素値の差分値が大きい画素の組合せを選択してサンプリング点を設定する処理と、画素値の差分値が小さい画素の組合せを選択してサンプリング点を設定する処理とをラインに応じて変えて行う。差分値が大きい画素の組合せ・差分値が小さい画素の組合せを混在させることで、より画像の特徴点がサンプリングされるようになる。さらに、請求項４に示すように、所定数のライン群中における隣接ライン間で、画素値の差分値が大きい画素の組合せを選択してサンプリング点を設定する処理と、画素値の差分値が小さい画素の組合せを選択してサンプリング点を設定する処理とを交互に変えてもよい。
【００２９】
（３）両画像のサンプリング点のアドレスを比較
請求項５の動きベクトル検出方法では、テンプレートブロックに対して請求項１〜４のいずれか記載のサンプリング点設定処理を実行して得たサンプリング点の画素のアドレスと、評価ブロックに対して請求項１〜４のいずれか記載のサンプリング点設定処理を実行して得たサンプリング点の画素のアドレスとを比較し、その一致度合いに基づいて動きベクトルを検出する。最終的に動きベクトルを検出できた場合の評価ブロックの画素値とテンプレートブロックの画素値のマッチング度合いは高いので、両ブロックに同じサンプリング点設定処理を施せば、サンプリングされる画素の位置が同じになる可能性が高い。したがって、両ブロックのサンプリング点のアドレスの一致度合いに基づけば、動きベクトルを検出することができる。そして、サンプリング点設定処理の段階でブロックの特徴点を反映しているため動きベクトルの検出精度が向上しており、且つ演算量を低減することも実現している。
【００３０】
（４）１の画像のサンプリング点の画素値と別の画像における同じアドレスの画素値とを比較
請求項６の動きベクトル検出方法では、テンプレートブロックに対して請求項１〜４のいずれか記載のサンプリング点設定処理を実行して得たサンプリング点の画素の値と、評価ブロック中における、テンプレートブロックについてのサンプリング点と同じアドレスの画素の値とを比較し、その画素値の一致度合いに基づいて動きベクトルを検出する。上述したように、最終的に動きベクトルを検出できた場合の評価ブロックの画素値とテンプレートブロックの画素値のマッチング度合いは高い。したがって、評価ブロック中における、テンプレートブロックについてのサンプリング点と同じアドレスの画素値と、テンプレートブロックからサンプリングした画素値とのマッチング度合いに基づけば、やはり、動きベクトルを検出できる。そして、動きベクトルの検出精度の向上及び演算量の低減という効果も得られる。
【００４１】
また、請求項７に示すように、請求項１〜６のいずれか記載の動きベクトル検出方法を実行する機能は、例えば、デジタル回路やコンピュータシステム側で起動するプログラムとして備えられる。プログラムで実現する場合、例えば、ＦＤ、光磁気ディスク、ＣＤ−ＲＯＭ、ハードディスク等の機械読み取り可能な記録媒体に記憶し、必要に応じてコンピュータシステムにロードして起動することにより用いることができる。この他、ＲＯＭやバックアップＲＡＭを機械読み取り可能な記録媒体として前記プログラムを記憶しておき、このＲＯＭあるいはバックアップＲＡＭをコンピュータシステムに組み込んで用いても良い。
【００４２】
なお、本発明の動きベクトル検出方法によって検出された動きベクトルは、例えば動画像符号化における動き補償予測に用いられることが考えられるが、それに限られるわけではない。例えば動画像中の異なる動きを持つ物体の検出や、画像中の動きのある領域と静止領域（例えば背景）とを分割する、といった目的のために用いることもできる。
【００４３】
【発明の実施の形態】
以下、本発明が適用された実施例について図面を用いて説明する。なお、本発明の実施の形態は、下記の実施例に何ら限定されることなく、本発明の技術的範囲に属する限り、種々の形態を採り得ることは言うまでもない。
【００４４】
［第１実施例］
図１は、第１実施例の動きベクトル検出装置の概略構成を示すブロック図であり、サンプリング比をＮとした場合の、Ｎ画素精度の動きベクトル（以下、動きベクトルを「ＭＶ」と略記することもある。）検出部１１と、１画素精度のＭＶ検出部１２とを備える。Ｎ画素精度ＭＶ検出部１１には、入力画像データ及び参照画像データが入力される。具体的には、入力画像中の動きベクトルの移動後のブロックであるテンプレートブロックＴＢと、そのテンプレートブロックＴＢが移動してきた参照画像中の元のブロックを含む探索範囲ＳＢとが入力される。
【００４５】
そして、このＮ画素精度ＭＶ検出部１１では、テンプレートブロックＴＢ及び探索範囲ＳＢ中から取り出した評価ブロック（図２中ではＳＢＭと表している）の両者について後述するサンプリングを行い、そのサンプリング点の画素同士のマッチング度合いを判定する。具体的には、画素値の違いを各画素ごとに差分絶対値などで算出し、これらの値の総和を求め評価値とする。このブロックマッチングについては、図２に示すように、入力画像中のテンプレートブロックＴＢの位置に対応する参照画像中の位置の評価ブロックＳＢＭから開始する。そして、続いて評価ブロックＳＢＭを探索範囲ＳＢ内で左右あるいは上下にＮ画素移動し、この移動後の画像ブロックについてやはり同様のサンプリングを行って得たサンプリング点の各画素値と、テンプレートブロックＴＢの各画素値との違いを、上記と同様に算出して評価値を求める。このように評価ブロックをＮ画素分左右・上下に所定回数、すなわち最初の評価ブロックの位置から上下左右にＳ画素分の範囲（これが探索範囲ＳＢ）を移動しながら、それぞれの評価値を算出していく。そして上記評価値が最小となる評価ブロックを、初期変位ＭＶＳとして決定する。
【００４６】
一方、図１に示すＮ画素精度ＭＶ検出部１１から１画素精度ＭＶ検出部１２へは、テンプレートブロックＴＢ、探索範囲ＳＢのデータに加えて、上述の初期変位ＭＶＳのデータが出力される。そして、１画素精度ＭＶ検出部１２では、探索範囲ＳＢ中の初期変位ＭＶＳの周囲を評価していく。その評価手法は、初期変位ＭＶＳの周囲を左右あるいは上下に１画素移動し、この移動後の評価ブロックとテンプレートブロックＴＢの各画素同士のマッチング度合いを判定する。つまり、１画素単位で評価するのである。そして上記評価値が最小となる評価ブロックを、動きベクトルＭＶ１として決定する。なお、初期変位ＭＶＳの周囲のどの程度の範囲を１画素精度で評価するかは、予め設定されているが、相対的には、Ｎ画素精度ＭＶ検出部１１において探索する範囲よりは小さく設定される。
【００４７】
これらの説明からも判るように、本実施例の動きベクトル検出装置は、いわゆる２ステップ探索法を実行して動きベクトルを求めるものであり、Ｎ画素精度ＭＶ検出部１１において第１検出ステップが実行され、１画素精度ＭＶ検出部１２にて第２検出ステップが実行される。なお、１画素精度ＭＶ検出部１２から外部へは、動きベクトルＭＶ１と、その動きベクトルＭＶ１を決定した際の差分絶対値和が出力される。
【００４８】
ここまでで説明した概略構成は、従来から存在する２ステップ探索法を用いた動きベクトルの検出方法と同じであるが、本第１実施例では、Ｎ画素精度ＭＶ検出部１１において実行される第１検出ステップの内容が従来と異なっている。具体的には、テンプレートブロックＴＢ及び探索範囲ＳＢ内の評価ブロックＳＢＭを構成する画素サンプリング点を設定する際に工夫を施しているので、次に、そのサンプリング点設定処理について説明する。
【００４９】
図３には、第１実施例のサンプリング点設定処理の具体例を示した。ここでは、サンプリング対象のテンプレートブロックＴＢ及び評価ブロックを、図３（ａ）に示すように縦８画素×横８画素の画素ブロックとする。そして、この画素ブロックから４画素を選択する場合、縦方向に８ラインある内から２ライン選択し、その選択した各ライン中から２画素選択する。具体的には、１ライン目と５ライン目から選択する。そして、各ライン中から２画素選択する際には、まず１ライン目を構成する８画素の画素値を大小比較し、画素値の大きいものから順に２画素選択する。次に、５ライン目の画素値を大小比較し、今度は画素値の小さいものから順に２画素選択する。
【００５０】
このようなサンプリング手法にて選択された画素は、図３（ｃ）に示すように、１ライン目においては、（上から）３番目の画素（画素値：２５５）と４番目の画素（画素値：２３１）となり、５ライン目においては、（上から）７番目の画素（画素値：２２４）と８番目の画素（画素値：２０７）となる。
【００５１】
図３（ｂ）は、比較のために、従来のサンプリング手法にて選択された画素を示している。従来は、固定的に各ライン（この場合は１ライン目と５ライン目）の１番目と５番目の画素を選択していた。したがって、１ライン目からは画素値２０７の画素が２つと、５ライン目からは画素値が２４０の画素が２つ選択される。これは、ブロック内において位置的な偏りを無くすという観点から設定されたものであるが、このような選択手法であれば、図３（ｃ）に示す画素ブロックにおいても、同じ画素値となる。つまり、この図３（ｂ）と図３（ｃ）の画素ブロックは、１，５ライン目の１，５番目の画素同士を比較すれば全く同じであるが、ブロック全体の画素値を比較すれば全く異なる画像であることが判る。したがって、従来手法では、図３（ｃ）の画素ブロックから画像的特徴を反映した画素が適切にサンプリングされているとは言い難い。
【００５２】
これに対して、図２（ｃ）にて示したサンプリング手法であれば、画素値の最大値あるいは最小値などの「画素値の大小度合い」を考慮したサンプリングとなっている。さらに、単なる「大小度合い」だけでなく、ブロック中の画素値の「大小差」も判る。したがって、ブロックの画像的特徴点を反映したサンプリングがなされていると言える。そのため、動きベクトルの検出精度が向上する。なぜなら、不適切な初期変位ＭＶＳを決定してしまうと、その後、１画素精度ＭＶ検出部１２で、探索範囲ＳＢ中の初期変位ＭＶＳの周囲を評価していった場合に、やはり実際の移動元のブロックを検出できない可能性が高くなるからである。このように、その第１検出ステップにおける初期変位ＭＶＳを適切に決定することで、動きベクトルの検出精度をも向上させることができる。なお、基本的にはサンプリング手法を採用しているため、演算量の低減も実現でき、ハードウェアの回路規模も削減できる。
【００５３】
［第１実施例の別態様］
（１）上述した具体例では、図３に例示したように８ラインの内から２ライン選択するようにしたが、これは全ラインであってもよいし、１ラインであってもよい。また、２ライン選択する場合に、１ライン目と５ライン目に限定されることはなく、他のラインであってもよい。また、ラインを構成する画素から選択する場合には、ライン上の全画素数よりも少ない数だけ選択すればよい。したがって、最低１個でもよい。そして、選択するライン数が少ないほど、あるいは１ライン上から選択する画素数が少ないほど演算量は低減できる。しかし、逆に選択画素数が少ないほどブロックの特徴を反映した画素が選択されなくなる可能性も高くなるので、これらについては両者のバランスを考慮して設定することが望ましい。
【００５４】
（２）また、上記具体例では、図３に示すように、画素値の大きい順に選択してサンプリング点を設定する処理と、画素値の小さい順に選択してサンプリング点を設定する処理とをラインに応じて変えて行った。しかし、全ラインについて画素値の大きい順に選択してもよいし、逆に画素値の小さい順に選択してもよい。サンプリング点を設定する処理とをラインに応じて変えて行った。但し、両者を混在させた方が、画素値の大小差も反映されるため、適切なサンプリングとなる場合が多いと考えられる。
【００５５】
（３）また、画素値の大きい順に選択してサンプリング点を設定する処理と、画素値の小さい順に選択してサンプリング点を設定する処理とをラインに応じて変えて行うことを前提とし、選択ライン数が３ライン以上の場合には、選択ライン群中における隣接ライン間で、画素値の大きい順に選択してサンプリング点を設定する処理と、画素値の小さい順に選択してサンプリング点を設定する処理とを交互に変えてもよい。ブロック中における画素値の分布が偏っていることも考えられるので、大きい順・小さい順での選択を交互に行えば、より画像の特徴点がサンプリングされるようになると考えられるからである。
【００５６】
［第２実施例］
本第２実施例においてもサンプリング点設定処理が特徴であり、動きベクトル検出装置として実現した場合の概略構成は図１と同様である。したがって、Ｎ画素精度ＭＶ検出部１１において実行されるサンプリング点設定処理について説明する。
【００５７】
図４には、第２実施例のサンプリング点設定処理の具体例を示した。上述した第１実施例の場合と同様に、サンプリング対象のブロックを、図４（ａ）に示すように縦８画素×横８画素の画素ブロックとして説明する。そして、この画素ブロックから４画素を選択する場合、縦方向に８ラインある内から２ライン選択し、その選択した各ライン中から２画素選択する。具体的には、１ライン目と５ライン目から選択する。
【００５８】
そして、各ライン中から２画素選択する際、本第２実施例においては、まず１ライン目を構成する８画素について、隣り合う（この場合は上下）画素値の差分値を算出し、差分値の大きい組み合わせの画素値を２画素選択する。図４（ｃ）に示すように、この具体例の１ライン目の１番目と２番目の画素値の差分値（２番目の画素値から１番目の画素値を減算した値）は２４であり、以下の画素値間の差分値はそれぞれ２４，−２４，−２４，０，０，０である。したがって、この場合は、１番目の画素（画素値：２０７）と２番目の画素（画素値：２３１）が選択される。なお、２番目と３番目の画素値の差分値も同じ２４であるため、これらを選択してもよいが、ここでは上位番目の画素を優先することとした。
【００５９】
次に、５ライン目を構成する８画素について、隣り合う（この場合は上下）画素値の差分値を算出し、今度は、差分値の小さい組み合わせの画素値を２画素選択する。図４（ｃ）に示すように、この具体例の５ライン目の１番目と２番目の画素値の差分値は７であり、以下の画素値間の差分値はそれぞれ８，−８，−７，０，−１６，−１７である。したがって、この場合は、７番目の画素（画素値：２２４）と８番目の画素（画素値：２０７）が選択される。
【００６０】
図４（ｂ）は、比較のために、従来のサンプリング手法にて選択された画素を示している。これは図３（ｂ）に示した具体例と同じであり、固定的に、１ライン目及び５ライン目について１番目及び５番目の画素を選択している。したがって、１ライン目からは画素値２０７の画素が２つと、５ライン目からは画素値が２４０の画素が２つ選択される。このような選択手法であれば、図４（ｃ）に示す画素ブロックにおいても、同じ画素値となる。つまり、この図４（ｂ）と図４（ｃ）の画素ブロックは、１，５ライン目の１，５番目の画素同士を比較すれば全く同じであるが、ブロック全体の画素値を比較すれば全く異なる画像であることが判る。したがって、従来手法では、図４（ｃ）の画素ブロックから画像的特徴を反映した画素が適切にサンプリングされているとは言い難い。
【００６１】
これに対して、図４（ｃ）にて示したサンプリング手法であれば、隣接画素間の画素値の「大小差」を考慮しているため、ブロックの画像的特徴点を反映したサンプリングがなされ、動きベクトルの検出精度が向上する。したがって、上述した第１実施例の場合と同様に、サンプリングによって演算量の低減を実現しているにもかかわらず、動きベクトルの検出精度を向上させるという効果を発揮する。
【００６２】
なお、上述した第１実施例の場合には、ブロック中の画素値の「大小差」を考慮することとなっていたが、これはいわばマクロ的な観点からの画素値の大小差である。これに対して本第２実施例の場合は、隣接画素間というミクロ的な観点からの画素値の大小差に着目したものである。
【００６３】
［第２実施例の別態様］
（１）第１実施例の場合と同様に、図４に例示した８ラインの内から選択するライン数は２に限られず、全ラインであってもよいし、１ラインであってもよい。また、２ライン選択する場合に、１ライン目と５ライン目に限定されることはなく、他のラインであってもよい。また、ラインを構成する画素から選択する場合には、ライン上の全画素数よりも少ない数だけ選択すればよいため、最低２個となる。そして、選択ライン数が少ないほど、あるいは１ライン上から選択する画素数が少ないほど演算量は低減できるが、逆に選択画素数が少ないほどブロックの特徴を反映した画素が選択されなくなる可能性も高くなるため、両者のバランスを考慮して設定することが望ましい点についても第１実施例の場合と同様である。
【００６４】
（２）また、上記具体例では、図４に示すように、隣接画素値の差分値が大きい画素を選択してサンプリング点を設定する処理と、隣接画素値の差分値が小さい順に選択してサンプリング点を設定する処理とをラインに応じて変えて行った。しかし、全ラインについて隣接画素値の差分値が大きい画素を選択してもよいし、逆に隣接画素値の差分値が小さい順に選択してもよい。但し、両者を混在させた方が、隣接画素値の差分値の大小差も反映されるため、適切なサンプリングとなる場合が多いと考えられる。
【００６５】
（３）また、隣接画素値の差分値が大きい順に選択してサンプリング点を設定する処理と、隣接画素値の差分値が小さい順に選択してサンプリング点を設定する処理とをラインに応じて変えて行うことを前提とし、選択ライン数が３ライン以上の場合には、選択ライン群中における隣接ライン間で、隣接画素値の差分値が大きい順に選択してサンプリング点を設定する処理と、隣接画素値の差分値が小さい順に選択してサンプリング点を設定する処理とを交互に変えてもよい。
【００６６】
［第３実施例］
本第３実施例においてもサンプリング点設定処理が特徴であり、動きベクトル検出装置として実現した場合の概略構成は図１と同様である。したがって、Ｎ画素精度ＭＶ検出部１１において実行されるサンプリング点設定処理について説明する。
【００６７】
図５には、第３実施例のサンプリング点設定処理の具体例を示した。上述した第１実施例の場合と同様に、サンプリング対象のブロックを、図５（ａ）に示すように縦８画素×横８画素の画素ブロックとして説明する。そして、この画素ブロックから４画素を選択する場合、縦方向に８ラインある内から２ライン選択し、その選択した各ライン中から２画素選択する。具体的には、１ライン目と５ライン目から選択する。
【００６８】
そして、この第３実施例では、まず１ライン目を上下２段に分割し、その１段目（上側）を構成する４画素の画素値を大小比較し、画素値の大きいものを１画素選択する。次に、２段目（下側）の４画素の画素値を大小比較し、画素値の大きいものを１画素選択する。一方、５ライン目も上下２段に分割するが、今度は、その１段目を構成する４画素の画素値を大小比較して画素値の小さいものを１画素選択する。次に２段目の４画素の画素値を大小比較して画素値の小さいものを１画素選択する。
【００６９】
このようなサンプリング手法にて選択された画素は、図５（ｃ）に示すように、１ライン目においては、３番目の画素（画素値：２５５）と５番目の画素（画素値：２０７）となり、５ライン目においては、１番目の画素（画素値：２４０）と８番目の画素（画素値：２０７）となる。
【００７０】
図５（ｂ）は、比較のために従来のサンプリング手法にて選択された画素を示している。これは図３（ｂ）に示した具体例と同じであり、固定的に１ライン目及び５ライン目について１番目及び５番目の画素を選択している。したがって、１ライン目からは画素値２０７の画素が２つと、５ライン目からは画素値が２４０の画素が２つ選択される。このような選択手法であれば、図５（ｃ）に示す画素ブロックにおいても同じ画素値となる。つまり、この図５（ｂ）と図５（ｃ）の画素ブロックは、１，５ライン目の１，５番目の画素同士を比較すれば全く同じであるが、ブロック全体の画素値を比較すれば全く異なる画像であることが判る。したがって、従来手法では、図５（ｃ）の画素ブロックから画像的特徴を反映した画素が適切にサンプリングされているとは言い難い。
【００７１】
これに対して、図５（ｃ）にて示したサンプリング手法であれば、画素値の最大値あるいは最小値などの「画素値の大小度合い」を考慮したサンプリングとなっている。さらに、単なる「大小度合い」だけでなく、ブロック中の画素値の「大小差」も判る。したがって、ブロックの画像的特徴点を反映したサンプリングがなされており、動きベクトルの検出精度が向上する。
【００７２】
なお、ラインを分割した後のサンプリング内容は、上述した第１実施例の場合と同様であるが、本第３実施例の場合には、最初に分割しておくことで、ブロック全体から満遍なく特徴的な画素をサンプリングし易くなる。
また、本実施例では２段に分割したが３段以上であってもよい。分割範囲が小さくなるほど（つまり分割範囲を構成する画素数が少なくなるほど）サンプリングした画素がブロックの特徴を反映している可能性が高くなるが、逆にサンプリング数は多くなって演算量が増加する。したがって、この場合も、ブロックの特徴を反映した画素を選択できるというメリットと、演算量の低減というメリットとの両者のバランスを考慮して設定することが望ましい。
【００７３】
［第４実施例］
第４実施例におけるサンプリング点設定処理は、第３実施例において分割後に行うサンプリング内容が異なるだけである。つまり、第３実施例においては、分割後のラインを構成する画素に対して第１実施例と同様のサンプリングを行ったが、第４実施例においては、分割後のラインを構成する画素に対して第２実施例と同様のサンプリングを行う。具体的には、１ライン目を上下２段に分割し、その１段目を構成する４画素について隣接画素値の差分値が大きい２画素を選択してサンプリング点を設定し、次に２段目を構成する４画素について隣接画素値の差分値が大きい２画素を選択してサンプリング点を設定する。一方、５ライン目の１段目を構成する４画素については、今度は隣接画素値の差分値が小さい２画素を選択してサンプリング点を設定し、次に２段目を構成する４画素について隣接画素値の差分値が小さい２画素を選択する。
【００７４】
以上の説明からも判るように、この第４実施例の場合には、分割したライン上からは最低限２画素を選択しなくてはならないので、１ライン上からは最低４画素を選択することとなる。
なお、上記説明では、１ライン目は上下段とも隣接画素値の差分値が大きい２画素を選択し、５ライン目は上下段とも隣接画素値の差分値が小さい２画素を選択したが、これ以外にも適宜バリエーションは考えられる。つまり、全て隣接画素値の差分値が大きい２画素を選択してもよいし、逆に全て隣接画素値の差分値が小さい２画素を選択してもよい。また、１ライン目の上段は隣接画素値の差分値が大きい２画素を選択し、下段は隣接画素値の差分値が小さい２画素を選択するが、５ライン目は逆に、上段は隣接画素値の差分値が小さい２画素を選択し、下段は隣接画素値の差分値が大きい２画素を選択してもよい。
【００７５】
［第３，４実施例の別態様］
第１，２実施例の場合と同様に、８ラインの内から選択するライン数は２に限られず、全ラインであってもよいし、１ラインであってもよい。また、２ライン選択する場合に、１ライン目と５ライン目に限定されることはなく、他のラインであってもよい。また、分割された後のサンプリング処理については、ライン上の全画素数よりも少ない数だけ選択すればよい。
【００７６】
その他、サンプリング後の処理に関する考慮点については、第１，２実施例の場合と同様である。
［第５実施例］
図６は、第５実施例の動きベクトル検出装置の概略構成を示すブロック図であり、可変サンプリングＭＶ検出部５１と、全探索法ＭＶ検出部５２と、演算制御部５４とを備える。可変サンプリングＭＶ検出部５１には、入力画像データ及び参照画像データが入力される。具体的には、入力画像中の動きベクトルの移動後のブロックであるテンプレートブロックＴＢと、そのテンプレートブロックＴＢが移動してきた参照画像中の元のブロックを含む探索範囲ＳＢとが入力される。そして可変サンプリングＭＶ検出部５１から全探索法ＭＶ検出部５２へは、テンプレートブロックＴＢ、探索範囲ＳＢのデータに加えて、可変サンプリングＭＶ検出部５１にて検出した初期変位ＭＶＳのデータが出力される。そして、全探索法ＭＶ検出部５２では、探索範囲ＳＢ中の初期変位ＭＶＳの周囲を評価して動きベクトルＭＶ１を決定し、差分絶対値和と共に外部へ出力する。
【００７７】
ここまでの、概略的な動作は図１に示した第１実施例の場合と同様であるが、本第５実施例では、演算制御部５４からの指示によって、可変サンプリングＭＶ検出部５１におけるサンプリング比Ｎが変更設定され、また、全探索法ＭＶ検出部５２における探索範囲ＳＢが変更設定される。この演算制御部５４には、探索範囲ＳＢのサイズを示す水平（横）探索範囲及び垂直（縦）探索範囲のデータが入力され、これらに基づいて上述の可変サンプリングＭＶ検出部５１でのサンプリング比や全探索法ＭＶ検出部５２での探索範囲ＳＢの変更設定を指示する。
【００７８】
可変サンプリングＭＶ検出部５１におけるサンプリング比Ｎは、水平・垂直探索範囲が広い場合には大きい値に、水平・垂直探索範囲が狭い場合には小さい値に設定され、全探索法ＭＶ検出部５２における探索範囲±ｊは、可変サンプリングＭＶ検出部５１での第１検出ステップで求められた動きベクトルの初期変位ＭＶＳの周囲を探索する値として設定され、１≦ｊ＜Ｎである。
【００７９】
図７には、このように水平・垂直探索範囲に応じてサンプリング比Ｎを変更したり、探索範囲ＳＢを変更する場合の具体例を示した。図７（ａ），（ｂ）では１６画素×１６画素の画素ブロックを示し、それを参照して説明する。
まず、図７（ａ）において探索範囲ＳＢが水平・垂直に±８の場合には、可変サンプリングＭＶ検出部５１におけるサンプリング比Ｎ＝２とし、第１検出ステップでは２画素×２画素から１画素選択する（図７（ａ）中の●参照）。そして、このようにサンプリングされた画素によって構成される縮小画像を用いて２画素精度の動きベクトルの初期変位を検出する。また、全探索法ＭＶ検出部５２における第２検出ステップの処理としては、探索範囲ＳＢを水平・垂直それぞれに±１とした全探索法によって１画素精度の動きベクトルを検出する。
【００８０】
一方、図７（ｂ）において探索範囲ＳＢが水平・垂直に±１６〜３２の場合には、可変サンプリングＭＶ検出部５１におけるサンプリング比Ｎ＝４とし、第１検出ステップでは４画素×４画素から１画素選択する（図７（ｂ）中の●参照）。そして、このようにサンプリングされた画素によって構成される縮小画像を用いて４画素精度の動きベクトルの初期変位を検出する。また、全探索法ＭＶ検出部５２における第２検出ステップの処理としては、探索範囲ＳＢを水平・垂直それぞれに±２とした全探索法によって１画素精度の動きベクトルを検出する。
【００８１】
このようにサンプリング比Ｎを変えることによって、探索範囲ＳＢが拡大しても演算量の増加を抑制することができる。この方法を用いることにより、２画素×２ラインから１画素選択した場合の差分演算を４個のブロック（図７（ａ）中に点線によって示したブロック）に分割して考えた場合、４画素×４画素の画素値の差分演算あるいは自乗誤差演算となる。これは、４画素×４画素から１画素選択する場合と同じ画素数となり、差分演算器あるいは自乗誤差演算器を共有できるため、ハードウェア化にも適している。
【００８２】
ここで、図７中に示した具体的な数値に関して説明しておく。図７（ａ）に示すように、例えば探索範囲が±８の場合、サンプリング比を２とし、参照画像と入力画像を共に２画素×２画素から１画素選択したとき、ブロックをマッチングする回数は｛（８／２）×２＋１）｝2 ＝８１（回）となる。この場合、図７（ａ）中に示す破線で分割すると、４画素×４画素のブロックが４つ存在することとなるので、４画素×４画素の差分演算は８１×４＝３２４回必要となる。この４画素×４画素の差分演算を基準に考えると、３２４回以内の演算であれば同一のハードウェアで処理可能である。
【００８３】
そこで、図７（ｂ）に示すようにサンプリング比を４とした場合を考える。このときは、１６画素×１６画素の画像ブロックが４画素×４画素の画像ブロックにサンプリングされる。探索範囲が±１６の場合、ブロックをマッチングする回数は｛（１６／４）×２＋１｝2 ＝８１回、探索範囲が±２４の場合、ブロックをマッチングする回数は｛（２４／４）×２＋１｝2 ＝１６９回、探索範囲が±３２の場合、ブロックをマッチングする回数は｛（３２／４）×２＋１｝2 ＝２８９回となる。上述したように、３２４回までの演算であれば同一のハードウェアで処理可能であるため、探索範囲を±８〜±３２まで可変とすることができるのである。
【００８４】
［第６実施例］
上述した第１〜第５実施例においては、サンプリング点設定処理を特徴とするものであったが、動きベクトルの検出精度の向上、演算量の増加防止という目的を実現する場合には、探索範囲ＳＢの設定方法に着目することも有効である。本第６実施例は、そのような観点からなされたものである。
【００８５】
図８は、第６実施例の動きベクトル検出装置の概略構成を示すブロック図であり、車速センサ６１と、ステアリングセンサ６２と、探索範囲決定部６３と、動きベクトル検出部６４とからなる。車速センサ６１及びステアリングセンサ６２が存在することからも判るように、本実施例の装置は車両に搭載された撮像装置から入力した画像についての動きベクトルを検出することを前提としている。
【００８６】
ここで、このように車両に搭載された場合に特有の問題点について再度確認しておく。図９（ａ）に示すように、従来手法では、参照画像（前フレーム）中の探索範囲として、入力画像（現フレーム）中のテンプレートブロックと同じ位置を基準に左右上下に所定画素分の範囲を設定するのが一般的であった。これは、動きベクトルの向きが判らないので、全方向、つまり左右上下に同じ画素数分の範囲を設定することで、いずれの向きであっても動きベクトルを適切に検出できるようにするためである。
【００８７】
しかしながら、車両に搭載された撮像装置にて車両前方を撮像した画像について動きベクトルを検出することを考えた場合、その画像中の風景は車速によって移動する量が異なる。特に、直線走行している場合には、車両の正面側、つまり画面中心付近の風景の移動量は小さいが、車両の横側、つまり画面の左右両端付近の風景の移動量は非常に大きくなる。また、カーブ走行している場合には、車両正面の風景であってもその移動量は非常に大きくなる。
【００８８】
したがって、比較的狭い探索範囲を固定的に設定していると十分な対応ができなくなり、動きベクトルの適切な検出ができない。そうかといって、あらゆる場合において動きベクトルを高精度に検出しようとすると、探索範囲を広く設定しておく必要がある。しかし、探索範囲を広く設定しておくと、常に広い探索範囲についての探索が必要となるため、演算量が増大してしまう。
【００８９】
そこで、本第６実施例の動きベクトル検出装置によれば、探索範囲決定部６３が車速センサ６１にて検出した車速（Ｖ）と、ステアリングセンサ６２にて検出した操舵角（θ）とに基づいて探索範囲の位置を決定する。そして、その決定された探索範囲に基づいて、動きベクトル検出部６４が動きベクトルを検出する。なお、この動きベクトル検出部６４における検出手法は、例えば第１〜第５実施例の検出手法を用いるなどすればよいが、これらに限定されるものではない。
【００９０】
探索範囲決定部６３における探索範囲の決定の概要は、図９（ｂ）に示すように、車両の走行速度及び操舵状態に応じてテンプレートブロックの概略的な移動元の位置を推定し、その推定位置の周囲に探索範囲を設定するのである。このようにすれば、その探索範囲内の評価ブロックＳＢＭとテンプレートブロックとのブロックマッチングによって、適切に動きベクトルを検出することができるようになる。つまり、動きベクトルの検出精度を向上させることができる。そして、広い探索範囲を固定的に設定しておく必要がないので、演算量の増加も防止できる。
【００９１】
次に、探索範囲決定部６３において実行される探索範囲の決定にかかる処理内容を図１０のフローチャートを参照して説明する。
最初のステップＳ１０１にて車速センサ６１から車速（Ｖ）を、ステアリングセンサ６２から操舵角（θ）をそれぞれ取り込む。そして、続くＳ１０２において操舵角θ＝０が否かを判断する。つまり、直進走行（θ＝０）しているのか否かを判断している。
【００９２】
そして、カーブ走行している場合には（Ｓ１０２：ＮＯ）、左右いずれにカーブ走行しているかを判断し（Ｓ１０３）、左カーブの場合にはＳ１０４へ移行して、右方向へ移動させる。なお、ここでは右方向をプラス方向として考え、その移動分ΔＭＶは、操舵角θと車速Ｖの関数Ｆ（θ，Ｖ）で表される。つまりΔＭＶ＝Ｆ（θ，Ｖ）である。また、右カーブの場合にはＳ１０５へ移行して、左方向へ移動させる。この場合の移動分ΔＭＶは、ΔＭＶ＝−Ｆ（θ，Ｖ）となる。
【００９３】
一方、直進走行している場合には（Ｓ１０２：ＹＥＳ）、Ｓ１０６で分割された領域に応じて次のように対処する。まず左側領域の場合の移動分ΔＭＶは、車速Ｖの関数Ｆ（Ｖ）を用いて、ΔＭＶ＝−Ｆ（θ）とする（Ｓ１０７）。逆に右側領域の場合の移動分ΔＭＶは、ΔＭＶ＝Ｆ（θ）とする（Ｓ１０９）。しかし、中心領域については移動しないものとする（Ｓ１０８）。つまりΔＭＶ＝０である。
【００９４】
［第６実施例の別態様］
上述の実施例では、車速Ｖと操舵角θとに基づいて探索範囲の「位置」を決定したが、探索範囲の「サイズ」を決定してもよい。つまり、車速Ｖ及び操舵角θに基づき、移動ベクトルが大きいと推定されれば探索範囲を大きくするのである。例えば画像中心付近の風景の移動量は、直線走行していれば車速にあまり影響されず小さい。したがって、探索範囲も小さくて良い。これに対して、画面の左右両端付近の風景の移動量は車速に応じて大きくなるため、車速が大きいほど探索範囲も大きくする。このように、常に広い探索範囲を設定しておくのではなく、必要に応じて探索範囲を広げるようにすれば、固定的に広い探索範囲を設定しておく必要がないので、演算量の増加も防止でき、動きベクトルの検出精度も向上させることができるのである。
【００９５】
以上、本発明はこのような実施例に何等限定されるものではなく、本発明の主旨を逸脱しない範囲において種々なる形態で実施し得る。それらのいくつかを説明する。
（１）上述した第１〜第４実施例におけるサンプリング点設定処理は、２ステップ探索法における第１検出ステップでの処理を前提としたが、このような２ステップ探索法を前提しなくてもよい。つまり、サンプリングした画素同士のブロックマッチングを１ステップだけ実行するような使用方法も考えられる。
【００９６】
（２）また、上述した第１〜第４実施例においては、「ブロックの特徴を反映した画素を選択できるようなサンプリング点設定処理」を特徴とするものであったが、サンプリング点設定処理以外の工夫も施すことが考えられる。その例を２つ説明する。
【００９７】
（ａ）両画像のサンプリング点のアドレスを比較
テンプレートブロックＴＢに対して第１〜第４実施例のいずれか記載のサンプリング点設定処理を実行して得たサンプリング点の画素のアドレスと、評価ブロックＳＢＭに対して第１〜第４実施例のいずれか記載のサンプリング点設定処理を実行して得たサンプリング点の画素のアドレスとを比較し、その一致度合いに基づいて動きベクトルを検出する。最終的に動きベクトルを検出できた場合の評価ブロックＳＢＭの画素値とテンプレートブロックの画素値のマッチング度合いは高いので、両ブロックに同じサンプリング点設定処理を施せば、サンプリングされる画素の位置が同じになる可能性が高い。したがって、両ブロックのサンプリング点のアドレスの一致度合いに基づけば、動きベクトルを検出することができる。そして、サンプリング点設定処理の段階でブロックの特徴点を反映しているため動きベクトルの検出精度が向上しており、且つ演算量を低減することも実現している。
【００９８】
（ｂ）テンプレートブロックＴＢのサンプリング点の画素値と評価ブロックＳＢＭにおける同じアドレスの画素値とを比較
テンプレートブロックＴＢに対して第１〜第４実施例のいずれか記載のサンプリング点設定処理を実行して得たサンプリング点の画素の値と、評価ブロックＳＢＭ中における、テンプレートブロックＴＢについてのサンプリング点と同じアドレスの画素の値とを比較し、その画素値の一致度合いに基づいて動きベクトルを検出する。（ａ）でも述べたように、最終的に動きベクトルを検出できた場合の評価ブロックＳＢＭの画素値とテンプレートブロックＴＢの画素値のマッチング度合いは高い。したがって、評価ブロックＳＢＭ中における、テンプレートブロックＴＢについてのサンプリング点と同じアドレスの画素値と、テンプレートブロックＴＢからサンプリングした画素値とのマッチング度合いに基づけば、やはり、動きベクトルを検出できる。そして、動きベクトルの検出精度の向上及び演算量の低減という効果も得られる。
【００９９】
（３）上述した各実施例にて検出された動きベクトルは、例えば動画像符号化における動き補償予測に用いられることが考えられる。しかし、そのような用途に限られるわけではない。例えば動画像中の異なる動きを持つ物体の検出や、画像中の動きのある領域と静止領域（例えば背景）とを分割する、といった目的のために用いることもできる。
【図面の簡単な説明】
【図１】  第１〜第４実施例の動きベクトル検出装置を示す概略ブロック図である。
【図２】  ブロックマッチングの概要を示す説明図である。
【図３】  第１実施例のサンプリング点設定処理を示す説明図である。
【図４】  第２実施例のサンプリング点設定処理を示す説明図である。
【図５】  第３実施例のサンプリング点設定処理を示す説明図である。
【図６】  第５実施例の動きベクトル検出装置を示す概略ブロック図である。
【図７】  第５実施例の、水平・垂直探索範囲に応じてサンプリング比Ｎを変更したり、探索範囲を変更する場合の具体例を示す説明図である。
【図８】  第６実施例の動きベクトル検出装置を示す概略ブロック図である。
【図９】  第６実施例の、車速や操舵角に応じて探索範囲を決定する処理の概要を示す説明図である。
【図１０】  第６実施例の、探索範囲決定部にて実行される探索範囲の決定処理を示すフローチャートである。
【図１１】  従来の動きベクトル検出方法の説明図である。
【図１２】  従来の動きベクトル検出方法の問題点を示す説明図である。
【符号の説明】
１１…Ｎ画素精度ＭＶ検出部
１２…１画素精度ＭＶ検出部
５１…可変サンプリングＭＶ検出部
５２…全探索法ＭＶ検出部
５４…演算制御部
６１…車速センサ
６２…ステアリングセンサ
６３…探索範囲決定部
６４…動きベクトル検出部
【図１】
0004075238.tif 000002
【図２】
0004075238.tif 000003
【図３】
0004075238.tif 000004
【図４】
0004075238.tif 000005
【図５】
0004075238.tif 000006
【図６】
0004075238.tif 000007
【図７】
0004075238.tif 000008
【図８】
0004075238.tif 000009
【図９】
0004075238.tif 000010
【図１０】
0004075238.tif 000011
【図１１】
0004075238.tif 000012
【図１２】
0004075238.tif 000013