(57)【要約】【課題】低コストで正確に動きベクトルを検出できるようにする。【解決手段】  ベクトル位置検出部６１が入力された各ベクトルの指し位置を検出する。ブロック抽出部６２はベクトルの起点となる画素を中心とする所定の大きさのブロックを抽出し、ブロック抽出部６３−１乃至６３−４が、ベクトルの指し位置の周辺の４つの画素を中心とする同じ大きさのブロックを抽出し、差分絶対値和演算部６４−１乃至６４−４がそれぞれ４つのブロック差分絶対値和を演算し、結果出力部６５に出力する。結果出力部６５は、４つのブロック差分絶対値和の平均値、最大値、または最小値を演算し、その値を入力された各ベクトルに対応付けて、各ベクトルの評価値として出力する。【選択図】図４
2005259027.tif 000002
【特許請求の範囲】
【請求項１】
画像の動きを表すベクトルを検出する動きベクトル検出装置であって、
前記画像の動きを表すベクトルの候補となる複数の候補ベクトルの指し位置を検出する位置検出手段と、
前記候補ベクトルの起点となる画素を中心とする予め設定された大きさ領域の画素ブロックを抽出する第１の抽出手段と、
前記位置検出手段により検出された前記候補ベクトルの指し位置に近接する複数の画素を中心とする、複数の予め設定された大きさ領域の画素ブロックを抽出する第２の抽出手段と、
前記第１の抽出手段により抽出された画素ブロック内の画素の値と、前記第２の抽出手段により抽出された複数の画素ブロック内の、それぞれ対応する画素の値とを比較し、比較結果を複数出力する比較結果出力手段と、
前記比較結果出力手段により出力された複数の比較結果に基づいて、前記候補ベクトルの評価値を出力する評価値出力手段と、
前記評価値出力手段により出力された評価値に基づいて、前記複数の候補ベクトルの中から確度が高いベクトルを選択する選択手段と
を備えることを特徴とする動きベクトル検出装置。
【請求項２】
前記第２の抽出手段は、前記候補ベクトルの指し位置を表す点の上下左右の方向に最も近い位置にある４つの画素を中心とする、４つの画素ブロックを抽出する
ことを特徴とする請求項１に記載の動きベクトル検出装置。
【請求項３】
前記比較結果出力手段は、前記第１の抽出手段により抽出された画素ブロックと、前記第２の抽出手段により抽出された４つの画素ブロックとについて、それぞれ４つの差分絶対値和を、前記比較結果として出力し、
評価値出力手段は、前記４つの差分絶対値和の平均値、最大値、または最小値を前記評価値として出力する
ことを特徴とする請求項２に記載の動きベクトル検出装置。
【請求項４】
前記複数の候補ベクトルとして、初期ベクトル、初期ベクトルに対して勾配法による演算を１回、または２回の行うことにより求められる第１または第２のベクトルが入力され、
前記選択手段は、前記初期ベクトル、前記第1または第２のベクトルのうち確度の高いものを、その画像の動きベクトルとして選択する
ことを特徴とする請求項１に記載の動きベクトル検出装置。
【請求項５】
前記複数の候補ベクトルは、前記初期ベクトルの候補ベクトルであり、
前記選択手段は、前記複数の候補ベクトルのうち確度の高いものを、前記初期ベクトルとして選択する
ことを特徴とする請求項４に記載の動きベクトル検出装置。
【請求項６】
画像の動きを表すベクトルを検出する動きベクトル検出装置の動きベクトル検出方法であって、
前記画像の動きを表すベクトルの候補となる複数の候補ベクトルの指し位置を検出する位置検出ステップと、
前記候補ベクトルの起点となる画素を中心とする予め設定された大きさ領域の画素ブロックを抽出する第１の抽出ステップと、
前記位置検出ステップの処理により検出された前記候補ベクトルの指し位置に近接する複数の画素を中心とする、複数の予め設定された大きさ領域の画素ブロックを抽出する第２の抽出ステップと、
前記第１の抽出ステップの処理により抽出された画素ブロック内の画素の値と、前記第２の抽出ステップの処理により抽出された複数の画素ブロック内の、それぞれ対応する画素の値とを比較し、比較結果を複数出力する比較結果出力ステップと、
前記比較結果出力ステップの処理により出力された複数の比較結果に基づいて、前記候補ベクトルの評価値を出力する評価値出力ステップと、
前記評価値出力ステップの処理により出力された評価値に基づいて、前記複数の候補ベクトルの中から確度が高いベクトルを選択する選択ステップと
を含むことを特徴とする動きベクトル検出方法。
【請求項７】
画像の動きを表すベクトルを検出する動きベクトル検出装置のプログラムであって、
前記画像の動きを表すベクトルの候補となる複数の候補ベクトルの指し位置の検出を制御する位置検出制御ステップと、
前記候補ベクトルの起点となる画素を中心とする予め設定された大きさ領域の画素ブロックを抽出するように制御する第１の抽出制御ステップと、
前記位置検出制御ステップの処理により検出された前記候補ベクトルの指し位置に近接する複数の画素を中心とする、複数の予め設定された大きさ領域の画素ブロックを抽出するように制御する第２の抽出制御ステップと、
前記第１の抽出制御ステップの処理により抽出された画素ブロック内の画素の値と、前記第２の抽出制御ステップの処理により抽出された複数の画素ブロック内の、それぞれ対応する画素の値とを比較し、比較結果を複数出力するように制御する比較結果出力制御ステップと、
前記比較結果出力制御ステップの処理により出力された複数の比較結果に基づいて、前記候補ベクトルの評価値を出力するように制御する評価値出力制御ステップと、
前記評価値出力制御ステップの処理により出力された評価値に基づいて、前記複数の候補ベクトルの中から確度が高いベクトルを選択するように制御する選択制御ステップと
をコンピュータに実行させることを特徴とするプログラム。
【請求項８】
画像の動きを表すベクトルを検出する動きベクトル検出装置のプログラムが記録されている記録媒体であって、
前記画像の動きを表すベクトルの候補となる複数の候補ベクトルの指し位置の検出を制御する位置検出制御ステップと、
前記候補ベクトルの起点となる画素を中心とする予め設定された大きさ領域の画素ブロックを抽出するように制御する第１の抽出制御ステップと、
前記位置検出制御ステップの処理により検出された前記候補ベクトルの指し位置に近接する複数の画素を中心とする、複数の予め設定された大きさ領域の画素ブロックを抽出するように制御する第２の抽出制御ステップと、
前記第１の抽出制御ステップの処理により抽出された画素ブロック内の画素の値と、前記第２の抽出制御ステップの処理により抽出された複数の画素ブロック内の、それぞれ対応する画素の値とを比較し、比較結果を複数出力するように制御する比較結果出力制御ステップと、
前記比較結果出力制御ステップの処理により出力された複数の比較結果に基づいて、前記候補ベクトルの評価値を出力するように制御する評価値出力制御ステップと、
前記評価値出力制御ステップの処理により出力された評価値に基づいて、前記複数の候補ベクトルの中から確度が高いベクトルを選択するように制御する選択制御ステップと
をコンピュータに実行させるプログラムが記録されることを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動きベクトル検出装置および方法、プログラム並びに記録媒体に関し、特に、低コストで正確に動きベクトルを検出できるようにする動きベクトル検出装置および方法、プログラム並びに記録媒体に関する。
【背景技術】
【０００２】
近年、動画像の画像処理の技術において、画像の解像度を向上させたり、画像の中のオブジェクトの動きを追尾するため、画像の動きを表す動きベクトルを、正確に検出することが重要となっている。
【０００３】
このため動きベクトルの誤検出を抑止するために、画像データの中で、時間的に前のフレームの動きベクトルの起点となる画素を中心とする部分と、その部分が動きベクトルに従って移動した場合、時間的に後のフレームの動きベクトルの指し位置となる点を中心とする部分を比較する必要があり、この比較の際に、動きベクトルの起点となる画素を中心とする所定の大きさ（所定の個数の画素）のブロックと、動きベクトルの指し位置となる画素を中心とする同じ大きさのブロックを抽出し、それぞれのブロックの対応する画素の値の差分の絶対値和（ブロック差分絶対値和）を演算し、そのブロック差分絶対値和が小さい場合、動きベクトルの確度が高いと判定する方法が提案されている（例えば、特許文献１参照）。
【特許文献１】特開平７−８７４９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、時間的に後のフレームにおける動きベクトルの指し位置は、必ずしもそのフレームの中の画素位置と一致するとは限らない。すなわち、フレームの中で、所定の間隔で配置される画素と画素の間に位置する点が、動きベクトルの指し位置となることも多い。動きベクトルの指し位置が画素位置と一致しない場合、従来の技術では、動きベクトルの指し位置の座標の値を四捨五入するなどして、適当な画素を動きベクトルの指し位置としたり、あるいはまた、動きベクトルの指し位置の周囲の画素の値に所定の重み付けを行うなどして、いわば仮想の画素ブロックを生成することにより、ブロック差分絶対値和の演算を行っていた。
【０００５】
しかしながら、動きベクトルの指し位置の座標の値を四捨五入して適当な画素を動きベクトルの指し位置としても、それにより抽出されるブロックが動きベクトルに対応するブロックとして適当か否かは保証されるものではなく、また、動きベクトルの指し位置の周囲の画素の値に所定の重み付けを行うなどして、仮想の画素ブロックを生成する場合、画素値の演算等に必要となる処理が複雑になり、装置のコストが高くなる。さらに、いずれの場合も、ブロック差分絶対値和の値が局所的に小さくなる局所解に陥る可能性があり、その結果、正確な動きベクトルを検出できない恐れがあるという課題があった。
【０００６】
本発明はこのような状況に鑑みてなされたものであり、低コストで正確に動きベクトルを検出できるようにするものである。
【課題を解決するための手段】
【０００７】
本発明の画像処理装置は、画像の動きを表すベクトルを検出する動きベクトル検出装置であって、画像の動きを表すベクトルの候補となる複数の候補ベクトルの指し位置を検出する位置検出手段と、候補ベクトルの起点となる画素を中心とする予め設定された大きさ領域の画素ブロックを抽出する第１の抽出手段と、位置検出手段により検出された候補ベクトルの指し位置に近接する複数の画素を中心とする、複数の予め設定された大きさ領域の画素ブロックを抽出する第２の抽出手段と、第１の抽出手段により抽出された画素ブロック内の画素の値と、第２の抽出手段により抽出された複数の画素ブロック内の、それぞれ対応する画素の値とを比較し、比較結果を複数出力する比較結果出力手段と、比較結果出力手段により出力された複数の比較結果に基づいて、候補ベクトルの評価値を出力する評価値出力手段と、評価値出力手段により出力された評価値に基づいて、複数の候補ベクトルの中から確度が高いベクトルを選択する選択手段とを備えることを特徴とする。
【０００８】
前記第２の抽出手段は、候補ベクトルの指し位置を表す点の上下左右の方向に最も近い位置にある４つの画素を中心とする、４つの画素ブロックを抽出するようにすることができる。
【０００９】
前記比較結果出力手段は、第１の抽出手段により抽出された画素ブロックと、第２の抽出手段により抽出された４つの画素ブロックとについて、それぞれ４つの差分絶対値和を、比較結果として出力し、評価値出力手段は、４つの差分絶対値和の平均値、最大値、または最小値を評価値として出力するようにすることができる。
【００１０】
前記複数の候補ベクトルとして、初期ベクトル、初期ベクトルに対して勾配法による演算を１回、または２回の行うことにより求められる第１または第２のベクトルが入力され、選択手段は、初期ベクトル、第1または第２のベクトルのうち確度の高いものを、その画像の動きベクトルとして選択するようにすることができる。
【００１１】
前記複数の候補ベクトルは、初期ベクトルの候補ベクトルであり、選択手段は、複数の候補ベクトルのうち確度の高いものを、初期ベクトルとして選択するようにすることができる。
【００１２】
本発明の動きベクトル検出方法は、画像の動きを表すベクトルを検出する動きベクトル検出装置の動きベクトル検出方法であって、画像の動きを表すベクトルの候補となる複数の候補ベクトルの指し位置を検出する位置検出ステップと、候補ベクトルの起点となる画素を中心とする予め設定された大きさ領域の画素ブロックを抽出する第１の抽出ステップと、位置検出ステップの処理により検出された候補ベクトルの指し位置に近接する複数の画素を中心とする、複数の予め設定された大きさ領域の画素ブロックを抽出する第２の抽出ステップと、第１の抽出ステップの処理により抽出された画素ブロック内の画素の値と、第２の抽出ステップの処理により抽出された複数の画素ブロック内の、それぞれ対応する画素の値とを比較し、比較結果を複数出力する比較結果出力ステップと、比較結果出力ステップの処理により出力された複数の比較結果に基づいて、候補ベクトルの評価値を出力する評価値出力ステップと、評価値出力ステップの処理により出力された評価値に基づいて、複数の候補ベクトルの中から確度が高いベクトルを選択する選択ステップとを含むことを特徴とする。
【００１３】
本発明のプログラムは、画像の動きを表すベクトルを検出する動きベクトル検出装置のプログラムであって、画像の動きを表すベクトルの候補となる複数の候補ベクトルの指し位置の検出を制御する位置検出制御ステップと、候補ベクトルの起点となる画素を中心とする予め設定された大きさ領域の画素ブロックを抽出するように制御する第１の抽出制御ステップと、位置検出制御ステップの処理により検出された候補ベクトルの指し位置に近接する複数の画素を中心とする、複数の予め設定された大きさ領域の画素ブロックを抽出するように制御する第２の抽出制御ステップと、第１の抽出制御ステップの処理により抽出された画素ブロック内の画素の値と、第２の抽出制御ステップの処理により抽出された複数の画素ブロック内の、それぞれ対応する画素の値とを比較し、比較結果を複数出力するように制御する比較結果出力制御ステップと、比較結果出力制御ステップの処理により出力された複数の比較結果に基づいて、候補ベクトルの評価値を出力するように制御する評価値出力制御ステップと、評価値出力制御ステップの処理により出力された評価値に基づいて、複数の候補ベクトルの中から確度が高いベクトルを選択するように制御する選択制御ステップとをコンピュータに実行させることを特徴とする。
【００１４】
本発明の記録媒体は、画像の動きを表すベクトルを検出する動きベクトル検出装置のプログラムが記録されている記録媒体であって、画像の動きを表すベクトルの候補となる複数の候補ベクトルの指し位置の検出を制御する位置検出制御ステップと、候補ベクトルの起点となる画素を中心とする予め設定された大きさ領域の画素ブロックを抽出するように制御する第１の抽出制御ステップと、位置検出制御ステップの処理により検出された候補ベクトルの指し位置に近接する複数の画素を中心とする、複数の予め設定された大きさ領域の画素ブロックを抽出するように制御する第２の抽出制御ステップと、第１の抽出制御ステップの処理により抽出された画素ブロック内の画素の値と、第２の抽出制御ステップの処理により抽出された複数の画素ブロック内の、それぞれ対応する画素の値とを比較し、比較結果を複数出力するように制御する比較結果出力制御ステップと、比較結果出力制御ステップの処理により出力された複数の比較結果に基づいて、候補ベクトルの評価値を出力するように制御する評価値出力制御ステップと、評価値出力制御ステップの処理により出力された評価値に基づいて、複数の候補ベクトルの中から確度が高いベクトルを選択するように制御する選択制御ステップとをコンピュータに実行させるプログラムが記録されることを特徴とする。
【００１５】
本発明の動きベクトル検出装置および方法、プログラム、並びに記録媒体においては、入力された、画像の動きを表すベクトルの候補となる複数の候補ベクトルの指し位置が検出され、候補ベクトルの起点となる画素を中心とする予め設定された大きさの領域の画素ブロックが抽出され、検出された候補ベクトルの指し位置に近接する画素を中心とする、複数の予め設定された大きさの領域の画素ブロックが抽出され、抽出された画素ブロック内の画素の値と、抽出された候補ベクトルの指し位置周辺の複数の画素を中心とする複数の画素ブロック内の、それぞれ対応する画素の値とが比較され、比較結果が複数出力され、演算された複数の比較結果に基づいて、候補ベクトルの評価値が出力され、評価値出力ス出力された評価値に基づいて、複数の候補ベクトルの中から確度が高いベクトルが選択される。
【発明の効果】
【００１６】
本発明によれば、動きベクトルを検出することができる。特に、低コストで正確に動きベクトルを検出できるようにすることができる。
【発明を実施するための最良の形態】
【００１７】
以下に本発明の実施の形態を説明するが、本明細書に記載した発明と、発明の実施の形態との対応関係を例示すると、次のようになる。この記載は、本明細書に記載されている発明をサポートする実施の形態が明細書に記載されていることを確認するためのものである。従って、明細書には記載されているが、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応しないものであることを意味するものでもない。
【００１８】
さらに、この記載は、明細書に記載されている発明が、全て請求されていることを意味するものではない。換言すれば、この記載は、明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により出願、または追加される発明の存在を否定するものではない。
【００１９】
請求項１に記載の動きベクトル検出装置は、画像の動きを表すベクトルを検出する動きベクトル検出装置（例えば、図１の動きベクトル検出装置１）であって、前記画像の動きを表すベクトルの候補となる複数の候補ベクトルの指し位置を検出する位置検出手段（例えば、図４のベクトル位置検出部６１）と、前記候補ベクトルの起点となる画素を中心とする予め設定された大きさ領域の画素ブロックを抽出する第１の抽出手段（例えば、図４のブロック抽出部６２）と、前記位置検出手段により検出された前記候補ベクトルの指し位置に近接する複数の画素を中心とする、複数の予め設定された大きさ領域の画素ブロックを抽出する第２の抽出手段（例えば、図４のブロック抽出部６３−１乃至６３−４）と、前記第１の抽出手段により抽出された画素ブロック内の画素の値と、前記第２の抽出手段により抽出された複数の画素ブロック内の、それぞれ対応する画素の値とを比較し、比較結果（例えば、ブロック差分絶対値和）を複数出力する比較結果出力手段（例えば、図４の差分絶対値和演算部６４−１乃至６４−４）と、前記比較結果出力手段により出力された複数の比較結果に基づいて、前記候補ベクトルの評価値（例えば、平均値、最大値、または最小値）を出力する評価値出力手段（例えば、図４の結果出力部６５）と、前記評価値出力手段により出力された評価値に基づいて、前記複数の候補ベクトルの中から確度が高いベクトルを選択する選択手段（例えば、図１の選択部４３または図１１の選択部１２４）とを備える。
【００２０】
請求項２に記載の動きベクトル検出装置は、前記第２の抽出手段が、前記候補ベクトルの指し位置を表す点（例えば、図６の点８２）の上下左右の方向に最も近い位置にある４つの画素を中心とする、４つの画素ブロック（例えば、図７のブロック１００A乃至ブロック１００D）を抽出するようにすることができる。
【００２１】
請求項３に記載の動きベクトル検出装置は、前記比較結果出力手段が、前記第１の抽出手段により抽出された画素ブロックと、前記第２の抽出手段により抽出された４つの画素ブロックとについて、それぞれ４つの差分絶対値和（例えば、DFD（Ａ）乃至ＤＦＤ（Ｄ））を、前記比較結果として出力し、評価値出力手段は、前記４つの差分絶対値和の平均値、最大値、または最小値を前記評価値として出力するようにすることができる。
【００２２】
請求項４に記載の動きベクトル検出装置は、前記複数の候補ベクトルとして、初期ベクトル（例えば、初期ベクトルV0）、初期ベクトルに対して勾配法による演算を１回、または２回の行うことにより求められる第１または第２のベクトル（ベクトルV1またはベクトルV2）が入力され、前記選択手段は、前記初期ベクトル、前記第1または第２のベクトルのうち確度の高いものを、その画像の動きベクトルとして選択するようにすることができる。
【００２３】
請求項５に記載の動きベクトル検出装置は、前記複数の候補ベクトルが、前記初期ベクトルの候補ベクトルであり、前記選択手段は、前記複数の候補ベクトルのうち確度の高いものを、前記初期ベクトルとして選択するようにすることができる。
【００２４】
請求項６に記載の動きベクトル検出方法は、画像の動きを表すベクトルを検出する動きベクトル検出装置（例えば、図１の動きベクトル検出装置１）の動きベクトル検出方法であって、前記画像の動きを表すベクトルの候補となる複数の候補ベクトルの指し位置を検出する位置検出ステップ（例えば、図５のステップS２１）と、前記候補ベクトルの起点となる画素を中心とする予め設定された大きさ領域の画素ブロックを抽出する第１の抽出ステップ（例えば、図５のステップS２２）と、前記位置検出ステップの処理により検出された前記候補ベクトルの指し位置に近接する複数の画素を中心とする、複数の予め設定された大きさ領域の画素ブロックを抽出する第２の抽出ステップ（例えば、図５のステップS２３）と、前記第１の抽出ステップの処理により抽出された画素ブロック内の画素の値と、前記第２の抽出ステップの処理により抽出された複数の画素ブロック内の、それぞれ対応する画素の値とを比較し、比較結果（例えば、ブロック差分絶対値和）を複数出力する比較結果出力ステップ（例えば、図５のステップＳ２４）と、前記比較結果出力ステップの処理により出力された複数の比較結果に基づいて、前記候補ベクトルの評価値（例えば、平均値、最大値、または最小値）を出力する評価値出力ステップ（例えば、図５のステップS２５）と、前記評価値出力ステップの処理により出力された評価値に基づいて、前記複数の候補ベクトルの中から確度が高いベクトルを選択する選択ステップ（例えば、例えば、図３のステップS３、図１３のステップＳ１０４、Ｓ１０９、または図１４のステップS１２６）とを含む。
【００２５】
請求項７に記載のプログラムは、画像の動きを表すベクトルを検出する動きベクトル検出装置（例えば、図１の動きベクトル検出装置１）のプログラムであって、前記画像の動きを表すベクトルの候補となる複数の候補ベクトルの指し位置の検出を制御する位置検出制御ステップ（例えば、図５のステップS２１）と、前記候補ベクトルの起点となる画素を中心とする予め設定された大きさ領域の画素ブロックを抽出するように制御する第１の抽出制御ステップ（例えば、図５のステップS２２）と、前記位置検出制御ステップの処理により検出された前記候補ベクトルの指し位置に近接する複数の画素を中心とする、複数の予め設定された大きさ領域の画素ブロックを抽出するように制御する第２の抽出制御ステップ（例えば、図５のステップS２３）と、前記第１の抽出制御ステップの処理により抽出された画素ブロック内の画素の値と、前記第２の抽出制御ステップの処理により抽出された複数の画素ブロック内の、それぞれ対応する画素の値とを比較し、比較結果（例えば、ブロック差分絶対値和）を複数出力するように制御する比較結果出力制御ステップ（例えば、図５のステップＳ２４）と、前記比較結果出力制御ステップの処理により出力された複数の比較結果に基づいて、前記候補ベクトルの評価値（例えば、平均値、最大値、または最小値）を出力するように制御する評価値出力制御ステップ（例えば、図５のステップS２５）と、前記評価値出力制御ステップの処理により出力された評価値に基づいて、前記複数の候補ベクトルの中から確度が高いベクトルを選択するように制御する選択制御ステップ（例えば、例えば、図３のステップS３、図１３のステップＳ１０４、Ｓ１０９、または図１４のステップS１２６）とをコンピュータに実行させる。
【００２６】
請求項８に記載の記録媒体は、画像の動きを表すベクトルを検出する動きベクトル検出装置（例えば、図１の動きベクトル検出装置１）のプログラムが記録されている記録媒体であって、前記画像の動きを表すベクトルの候補となる複数の候補ベクトルの指し位置の検出を制御する位置検出制御ステップ（例えば、図５のステップS２１）と、前記候補ベクトルの起点となる画素を中心とする予め設定された大きさ領域の画素ブロックを抽出するように制御する第１の抽出制御ステップ（例えば、図５のステップS２２）と、前記位置検出制御ステップの処理により検出された前記候補ベクトルの指し位置に近接する複数の画素を中心とする、複数の予め設定された大きさ領域の画素ブロックを抽出するように制御する第２の抽出制御ステップ（例えば、図５のステップS２３）と、前記第１の抽出制御ステップの処理により抽出された画素ブロック内の画素の値と、前記第２の抽出制御ステップの処理により抽出された複数の画素ブロック内の、それぞれ対応する画素の値とを比較し、比較結果（例えば、ブロック差分絶対値和）を複数出力するように制御する比較結果出力制御ステップ（例えば、図５のステップＳ２４）と、前記比較結果出力制御ステップの処理により出力された複数の比較結果に基づいて、前記候補ベクトルの評価値（例えば、平均値、最大値、または最小値）を出力するように制御する評価値出力制御ステップ（例えば、図５のステップS２５）と、前記評価値出力制御ステップの処理により出力された評価値に基づいて、前記複数の候補ベクトルの中から確度が高いベクトルを選択するように制御する選択制御ステップ（例えば、例えば、図３のステップS３、図１３のステップＳ１０４、Ｓ１０９、または図１４のステップS１２６）とをコンピュータに実行させるプログラムが記録される。
【００２７】
以下、図面を参照して、本発明の実施の形態について説明する。図１は、本発明を適用した動きベクトル検出装置の構成例を示すブロック図である。動きベクトル検出装置１は、例えば、入力された動画像の画像データから、画像の動きを表す動きベクトルを出力するものであり、この例では、画像データから初期ベクトルを検出（選択）する初期ベクトル選択部２１と、初期ベクトル選択部２１から出力された初期ベクトルに基づいて、動きベクトルを生成（選択）する動きベクトル選択部２２が設けられている。
【００２８】
図２は、初期ベクトル検出部２１の詳細な構成例を示すブロック図である。候補ベクトル検出部４１は、入力された画像データに基づいて、初期ベクトルの候補となる複数の候補ベクトルを検出し、検出された候補ベクトルをＤＦＤ（Displaced Frame Difference）演算部４２に出力する。候補ベクトルの検出は、例えば、過去の検出結果などに基づいて、画像の動きに近いベクトルが検出される。
【００２９】
ＤＦＤ演算部４２は、候補ベクトル検出部４１から出力された候補ベクトルに基づいて、画像データの中の時間的に前のフレームにおける予め設定された大きさのブロックと、時間的に後のフレームにおける同じ大きさのブロックを抽出し、フレーム間のブロック差分絶対値和（後述）を演算し、演算結果を選択部４３に出力する。
【００３０】
選択部４３は、ＤＦＤ演算部４２によるフレーム間のブロック差分絶対値和の演算結果に基づいて、候補ベクトル検出部４１により検出された複数のベクトルの中から初期ベクトルV0を選択し、出力する。
【００３１】
次に、図３のフローチャートを参照して、初期ベクトル検出部２１の動作について説明する。
【００３２】
ステップＳ１において、候補ベクトル検出部４１は、複数の候補ベクトルを検出する。ステップＳ２において、ＤＦＤ演算部４２は、後述するブロック差分絶対値和演算処理を実行する。これにより、画像データの中の時間的に前のフレームと、時間的に後のフレームの、フレーム間のブロック差分絶対値和が演算される。
【００３３】
ここで、図４乃至図７を参照して、このブロック差分絶対値和演算処理について、詳細に説明する。図４は、ＤＦＤ演算部４２のさらに詳細な構成例を示すブロック図である。候補ベクトル検出部４１から出力された複数の候補ベクトルは、画像データとともに、ベクトル位置検出部６１に入力される。ベクトル位置検出部６１は、注目画素と、入力された候補ベクトルに基づいて、その候補ベクトルに対応する画素位置（ベクトルの指し位置）を検出する。具体的には、画像データの中の時間的に前のフレーム（例えば、フレームｎ−１）の中で、候補ベクトルの起点となる画素（注目画素）に対して、候補ベクトルの動きが演算され、時間的に後のフレーム（例えば、フレームｎ）における注目画素の画素位置（ベクトルの指し位置）が検出される。
【００３４】
ブロック抽出部６２は、画像データの中の注目画素が存在するフレームｎ−１において、注目画素周辺の所定のブロック、例えば、注目画素を中心とした縦方向（図中垂直方向）に３個、横方向（図中水平方向）に３個分の９個の画素のブロックを抽出する。ブロック抽出部６３−１乃至６３−４は、フレームｎにおける注目画素の周辺に存在する画素について、ブロック抽出部６２による抽出されるブロックと同じ大きさ（今の場合、９個の画素）の、４つのブロックを抽出する。なお、フレームｎにおける注目画素の周辺の４つのブロックの抽出方法については後述する。
【００３５】
差分絶対値和演算部６４−１乃至６４−４は、ブロック抽出部６３−１乃至６３−４により抽出されたブロックと、ブロック抽出部６２により抽出されたブロックの画素について、対応する画素同士の差分の絶対値和を演算し、それぞれの演算の結果を結果出力部６５に出力する。
【００３６】
結果出力部６５は、差分絶対値和演算部６４−１乃至６４−４からの出力結果に基づいて、４つのブロック差分絶対値和の平均値、最大値、または最小値を演算し、その演算結果を入力された候補ベクトルに対応付けて、ＤＦＤ演算部４２の演算結果として出力する。
【００３７】
次に、図５のフローチャートを参照して、図３のステップＳ２のブロック差分絶対値和演算処理の詳細について説明する。
【００３８】
ステップＳ２１において、ベクトル位置検出部６１は、入力されたベクトルの指し位置を検出する。
【００３９】
ここで、図６を参照してベクトルの指し位置について説明する。図６Ａと図６Ｂは、それぞれ、フレームｎ−１とフレームｎにおける所定の部分の画素の配列を示すものであり、図６Ａには、左上から順番に画素ｍ１１乃至ｍ１４の画素が配置されている。画素ｍ１１乃至ｍ１４の下には、画素ｍ２１乃至ｍ２４、画素ｍ３１乃至ｍ３４、および画素ｍ４１乃至ｍ４４が配置されている。また、図６Ｂにも、同様にして、左上から順番に、画素ｎ１１乃至１４、画素ｎ２１乃至ｎ２４、画素ｎ３１乃至ｎ３４、および画素ｎ４１乃至ｎ４４が配置されている。例えば、入力画像のフレームｎ−１において、候補ベクトルの起点８１が、図６Ａの図中黒丸で示される画素ｍ２２である場合、この画素に対して、候補ベクトルの動きが演算され、フレームｎにおける注目画素に対応する画素位置が、図６Ｂの図中×印で示される点８２として検出される。
【００４０】
ステップＳ２２において、ブロック抽出部６２は、注目画素（入力画像のフレームｎ−１において、候補ベクトルの起点となる画素）を中心とする画素のブロックを抽出する。このとき、図６Ａの画素ｍ２２を中心として、３×３＝９個の画素ｍ１１乃至ｍ３３がブロック８０として抽出される。
【００４１】
ステップＳ２３において、ブロック抽出部６３−１乃至６３−４は、ベクトルの指し位置である点８２に近接する４つの画素を中心とする画素のブロックを抽出する。図６Ｂにおいて、ベクトルの指し位置である点８２は、画素位置と一致していない（図中丸印で示される画素と画素の間に位置している）ため、このままでは、フレームｎにおいて、３×３＝９個のブロックを抽出することができない。このため、図７Ａ乃至Ｄに示されるように、ベクトルの指し位置に近接する４つの画素を中心とするブロックが抽出される。
【００４２】
図７Ａのブロック１００Ａは、ベクトルの指し位置である点８２の左上側において最も近い位置となる画素ｎ２２を中心とした３×３＝９個の画素ｎ１１乃至ｎ３３により構成されるブロックであり、ブロック抽出部６３−１により抽出される。図７Ｂのブロック１００Ｂは、ベクトルの指し位置である点８２の右上側において最も近い位置となる画素ｎ２３を中心とした３×３＝９個の画素ｎ１２乃至ｎ３４により構成されるブロックであり、ブロック抽出部６３−２により抽出される。
【００４３】
図７Ｃのブロック１００Ｃは、ベクトルの指し位置である点８２の左下側において最も近い位置となる画素ｎ３２を中心とした３×３＝９個の画素ｎ２１乃至ｎ４３により構成されるブロックであり、ブロック抽出部６３−３により抽出される。図７Ｄのブロック１００Ｄは、ベクトルの指し位置である点８２の右下側において最も近い位置となる画素ｎ３３を中心とした３×３＝９個の画素ｎ２２乃至ｎ４４により構成されるブロックであり、ブロック抽出部６３−４により抽出される。
【００４４】
なお、フレームｎにおけるベクトルの指し位置が、画素位置と一致している場合、ブロック抽出部６３−１乃至６３−４は、その画素を中心とする同一のブロックを抽出することになる。
【００４５】
ステップＳ２４において、差分絶対値和演算部６４−１乃至６４−４は、ブロック８０と、ブロック１００Ａ乃至ブロック１００Ｄの４つブロックとの差分絶対値和を演算する。例えば、ブロック８０の９個の画素ｍ１１乃至ｍ３３の各画素の値が、それぞれP(1)乃至P(9)であり、ブロック１００Ａの９個の画素ｎ１１乃至ｎ３３の各画素の値が、それぞれQ(1)乃至Q(9)である場合、差分絶対値和演算部６４−１は、ブロック８０とブロック１００Ａのブロック差分絶対値和ＤＦＤ（Ａ）を、次式により演算する。
【００４６】
ＤＦＤ(Ａ)＝│P(1)-Q(1)│＋│P(2)-Q(2)│＋│P(3)-Q(3)│＋・・・│P(9)-Q(9)│
【００４７】
同様にして、差分絶対値和演算部６４−２は、ブロック８０とブロック１００Ｂのブロック差分絶対値和ＤＦＤ（Ｂ）を、差分絶対値和演算部６４−３は、ブロック８０とブロック１００Ｃのブロック差分絶対値和ＤＦＤ（Ｃ）を、差分絶対値和演算部６４−４は、ブロック８０とブロック１００Ｄのブロック差分絶対値和ＤＦＤ（Ｄ）を、それぞれ演算する。
【００４８】
ステップＳ２５において、結果出力部６５は、４つのブロック差分絶対値和ＤＦＤ（Ａ）乃至ＤＦＤ（Ｄ）の平均値、最大値、および最小値を演算する。
【００４９】
なお、ステップＳ２１乃至Ｓ２５の処理は、入力される候補ベクトル毎に実行され、例えば、３つの候補ベクトルが入力される場合、ステップＳ２５では、それぞれのベクトルに対応するブロック差分絶対値和の平均値、最大値、および最小値が演算され、３種類の、平均値、最大値、および最小値の組み合わせが演算される。
【００５０】
そして、ステップＳ２６において、結果出力部６５は、入力された候補ベクトルと対応付けて、ブロック差分絶対値和の平均値、最大値、および最小値を出力する。なお、このブロック差分絶対値和の平均値、最大値、および最小値は、その候補ベクトルのいわば評価値として利用される。
【００５１】
このようにして、ブロック差分絶対値和が演算される。時間的に後のフレーム（フレームｎ）の画素のブロックは、ベクトルの指し位置に近接する４つの画素を中心とする画素のブロックが抽出されるようにしたので、ベクトルの指し位置が画素位置と一致しなくても、ブロック差分絶対値和を求めることができる。また、ベクトルの指し位置の周囲の画素に基づいて、仮想の画素値を演算して、ブロック差分絶対値和を求める場合と比較して、小数精度のビット長増加などにより回路規模が大きくなり、複雑になるなどといった問題が解消され、その結果、低コストで、品質の高い装置を実現することができる。
【００５２】
なお、ここでは、フレームｎとフレームｎ−１において、それぞれ９個の画素により構成される画素のブロックが抽出される例について説明したが、抽出されるブロックの画素数は、９個に限られるものではなく、必要に応じて画素数を変えてもよい。
【００５３】
図３に戻って、ステップＳ３において、選択部４３は、ベクトル選択処理を実行する。ここで、図８乃至図１０のフローチャートを参照して、図３のステップＳ３のベクトル選択処理の詳細について説明する。
【００５４】
図８は、ベクトル選択処理の第１の例であるベクトル選択処理１を説明するフローチャートである。ステップＳ４１において、選択部４３は、各候補ベクトルに対応するブロック差分絶対値和の平均値を比較し、ステップＳ４２において、ブロック差分絶対値和の平均値が最も小さい候補ベクトルを初期ベクトルV0として選択する。
【００５５】
上述したように、ブロック差分絶対値和ＤＦＤ（Ａ）乃至ＤＦＤ（Ｄ）は、それぞれフレームｎ−１とフレームｎにおけるブロック間の差分絶対値和なので、これらのブロック差分絶対値和の平均値が小さいほど、フレームｎ−１のブロックの画像と、フレームｎのブロックの画像に共通点が多いと考えられ、そのブロック差分絶対値和の平均値に対応する候補ベクトルは、画像の動きを適確に反映している（確度が高い）と考えられる。このため、ベクトル選択処理１においては、ブロック差分絶対値和の平均値を候補ベクトルの評価値として利用している。
【００５６】
図９は、ベクトル選択処理の第２の例であるベクトル選択処理２を説明するフローチャートである。ステップＳ６１において、選択部４３は、各候補ベクトルに対応するブロック差分絶対値和の最大値を比較し、ステップＳ６２において、ブロック差分絶対値和の最大値が最も小さい候補ベクトルを初期ベクトルV0として選択する。
【００５７】
ブロック差分絶対値和ＤＦＤ（Ａ）乃至ＤＦＤ（Ｄ）は、各候補ベクトルの指し位置に対応した、フレームｎ−１とフレームｎにおけるブロック間の差分絶対値和なので、これらのブロック差分絶対値和の最大値が小さいほど、フレームｎ−１のブロックの画像と、フレームｎのブロックの画像に相違する点が少ないと考えられ、そのブロック差分絶対値和の最大値に対応する候補ベクトルは、画像の動きを適確に反映している（確度が高い）と考えられる。このため、ベクトル選択処理２においては、ブロック差分絶対値和の最大値を候補ベクトルの評価値として利用している。
【００５８】
図１０は、ベクトル選択処理の第３の例であるベクトル選択処理３を説明するフローチャートである。ステップＳ８１において、選択部４３は、各候補ベクトルに対応するブロック差分絶対値和の最小値を比較し、ステップＳ８２において、ブロック差分絶対値和の最小値が最も小さい候補ベクトルを初期ベクトルV0として選択する。
【００５９】
ブロック差分絶対値和ＤＦＤ（Ａ）乃至ＤＦＤ（Ｄ）は、各候補ベクトルの指し位置に対応した、フレームｎ−１とフレームｎにおけるブロック間の差分絶対値和なので、これらのブロック差分絶対値和の最小値が小さいほど、フレームｎ−１のブロックの画像と、フレームｎのブロックの画像に相違が少ない（ほぼ一致する部分があったと）考えられ、そのブロック差分絶対値和の最小値に対応する候補ベクトルは、画像の動きを適確に反映している（確度が高い）と考えられる。このため、ベクトル選択処理３においては、ブロック差分絶対値和の最小値を候補ベクトルの評価値として利用している。
【００６０】
このようにして、初期ベクトルV0が選択される。初期ベクトルV0は、ブロック差分絶対値和ＤＦＤ（Ａ）乃至ＤＦＤ（Ｄ）の平均値、最大値、または最小値に基づいて選択されるので、局所的に最小となる局所解に基づいて誤った選択が行われることなどを抑止し、正確な初期ベクトルを選択することができる。なお、ベクトル選択処理１乃至ベクトル選択処理３のいずれを実行するかは、画像の特性などを考慮してユーザにより選択されるようにしてもよいし、予め設定されるようにしてもよい。
【００６１】
図３にもどって、ステップＳ４において選択部４３は、ステップＳ３で選択された初期ベクトルV0を出力する。
【００６２】
次に、動きベクトル選択部２２の構成と動作について説明する。図１１は、動きベクトル選択部２２の詳細な構成例を示すブロック図である。この例では、動きベクトル選択部２２は、初期ベクトル選択部２１から出力された初期ベクトルV0に対して、勾配法による演算を１回または２回行い、最終的に動きベクトルVを出力する。
【００６３】
初期ベクトルV0は、第１回勾配法演算部１２１に入力され、第１回勾配法演算部１２１の演算の結果、ベクトルV1が出力される。画素値補間部１２５とＤＦＤ演算部１２３によりベクトルV1の指し位置に対応する画素の画素ブロックが選択されることにより、第２回目の勾配法に用いられる画素値が補間される。そして、第２回勾配法演算部１２２にベクトルV1が入力され、第２回勾配法演算部１２２の演算の結果、ベクトルV２が出力される。
【００６４】
ここで、勾配法について説明する。動画像の中で、水平軸、垂直軸、時間軸を用いた座標（x,y,t）で表される画素の値をg（x,y,t）とする。ある画素（x0,y0,t0）が微小時間中に（dx,dy,dt）だけ変化したとき、水平方向、垂直方向、時間方向の勾配をgx(x0,y0,t0）,gy(x0,y0,t0）, gt(x0,y0,t0）と表すと、変化後の画素の値は、Taylor展開を用いて、式（１）のように表すことができる。
【００６５】
【数１】
2005259027.tif 000003
【００６６】
ここで、画像の中のある着目画素が１フレーム後に水平方向にvx，垂直方向にvyだけ移動した場合、
【００６７】
【数２】
2005259027.tif 000004
となり、式（１）より、式（３）を導出することができる。
【００６８】
【数３】
2005259027.tif 000005
【００６９】
式（３）は、vxとvyの２変数の式であるため、１つの着目画素に対する単独の式では、その解を求めることができない。そこで着目画素の周辺領域を１つの処理単位として考え、その領域内の全ての画素が同じ動き（vx,vy）をすると仮定し、各画素について同様の式を立てる。そして周辺画素の式を連立させて領域内の全画素のフレーム間差分の自乗和が最小となるように動き（vx,vy）を求める。
【００７０】
画素（x,y,t）が１フレーム間に（vx,vy）だけ移動したときのフレーム間差分ｄは、式（４）により表される。
【００７１】
【数４】
2005259027.tif 000006
【００７２】
ここで、Δx＝g（x,y,t）であり水平方向の勾配を表す。ΔyとΔtについても同様である。これらを用いてフレーム間差分の自乗和Eを表すと式（５）のようになる。
【００７３】
【数５】
2005259027.tif 000007
【００７４】
ここでEが最小となる（vx,vy）は、各変数における偏微分値が０になるとき、すなわち、
∂Ｅ／∂vx＝∂Ｅ／∂vyの条件が成立するときなので、式（５）より、
【数６】
2005259027.tif 000008
【数７】
2005259027.tif 000009
【００７５】
となる。式（６）、式（７）から動き（vx,vy）を式（８）のように求めることができる。
【数８】
2005259027.tif 000010
【００７６】
このようにして、求められたベクトルV1またはV２は、それぞれ初期ベクトルV0またはベクトルV1とともに、ＤＦＤ演算部１２３に出力される。ＤＦＤ演算部１２３は、図４に示したＤＦＤ演算部４２と同様の構成であり、図１２に示されるように、フレームｎにおける初期ベクトルV0の指し位置１７１、ベクトルV1（V0+V1）の指し位置１７２、またはベクトルV2（V0＋V1+V2）の指し位置１７３を検出し、フレームｎ−１における注目画素１５１を中心とするブロックと、指し位置１７１乃至１７３の周辺の４つの画素を中心とするブロックの差分の絶対値和をそれぞれ演算し、選択部１２４に出力する。選択部１２４は、初期ベクトルV0、ベクトルV1（V0+V1）、またはベクトルV2（V0＋V1+V2）のうちのいずれか最も確度が高いと推定されるベクトルを動きベクトルVとして選択し、出力する。
【００７７】
次に、図１３のフローチャートを参照して、動きベクトル選択部２２の動作について説明する。
【００７８】
ステップＳ１０１において、第１回勾配法演算部１２１は、初期ベクトルV0に対する勾配法の演算を行い、ベクトルV１を求める。ステップＳ１０２において、画素値補間部１２５は、ベクトルV1（V0＋V1）の指し位置（図１２の指し位置１７２）を検出する。
【００７９】
ステップＳ１０３において、ＤＦＤ演算部１２３は、ブロック差分絶対値和演算処理を実行する。この処理は、図５のフローチャートを参照して上述した処理と同様の処理なので、詳細な説明は省略するが、ここでは、上述した場合と異なり、複数の候補ベクトルに代わって、初期ベクトルV0とベクトルV１が入力され、それぞれ４つのブロック差分絶対値和ＤＦＤ（Ａ）乃至ＤＦＤ（Ｄ）が演算され（ステップＳ２４）、ブロック差分絶対値和ＤＦＤ（Ａ）乃至ＤＦＤ（Ｄ）の平均値、最大値、および最小値がそれぞれ演算される（ステップＳ２５）。そして、初期ベクトルV0およびベクトルV１の２つのベクトルに対応付けられて、ブロック差分絶対値和の平均値、最大値、および最小値の組み合わせが出力される（ステップＳ２６）。
【００８０】
ステップS１０４において、ベクトル選択部１２４は、ベクトル選択処理を実行する。この処理は、図８乃至図１０を参照して上述した処理と同様の処理なので、詳細な説明は省略するが、ここでは、上述した場合と異なり、複数の候補ベクトルに代わって、初期ベクトルV0、ベクトルV１の２つのベクトルのうち、最も確度が高いと推定されるベクトルが選択される。
【００８１】
ステップS１０５において、選択部１２４は、ステップS１０５の処理の結果、初期ベクトルV0が選択されたか否かを判定する。ステップS１０５において、初期ベクトルV0が選択されていないと判定された場合、その結果をＤＦＤ演算部１２３に出力し、処理は、第２回目の勾配法の演算を行うため、ステップＳ１０６に進む。
【００８２】
ステップＳ１０６において、画素値補間部１２５は、ステップＳ１０３のブロック差分絶対値和演算処理により演算された、ベクトルＶ１の４つのブロック差分絶対値和ＤＦＤ（Ａ）乃至ＤＦＤ（Ｄ）の中の最小値に対応する画素ブロックを、ベクトルＶ１の指し位置の画素ブロックとして選択し、第２回勾配法演算部１２２に出力する。
【００８３】
例えば、ベクトルV1の４つのブロック差分絶対値和ＤＦＤ（Ａ）乃至ＤＦＤ（Ｄ）に対応する画素ブロックが、それぞれ図７Ａ乃至図７Ｄのブロック１００Ａ乃至１００Ｄである場合、４つのブロック差分絶対値和ＤＦＤ（Ａ）乃至ＤＦＤ（Ｄ）の中でその値が最小となるものが、ブロック差分絶対値和ＤＦＤ（Ａ）のとき、ブロック１００Ａが最小値に対応する画素ブロックとして選択され、ブロック１００Ａの中の中心となる画素ｎ２２がベクトルV1の指し位置として補間され、第２回目の勾配法の演算に用いられる。
【００８４】
ステップＳ１０７において、第２回勾配法演算部１２２は、ステップＳ１０６で選択された画素ブロックと、ステップＳ１０１で求められたベクトルV1に基づいて、第２回目の勾配法の演算を行い、ベクトルV2を求める。
【００８５】
ステップＳ１０８において、ＤＦＤ演算部１２３は、ブロック差分絶対値和演算処理を実行する。この処理は、図５のフローチャートを参照して上述した処理と同様の処理なので、詳細な説明は省略するが、ここでは、上述した場合と異なり、複数の候補ベクトルに代わって、ベクトルV1とベクトルV２が入力され、それぞれ４つのブロック差分絶対値和ＤＦＤ（Ａ）乃至ＤＦＤ（Ｄ）が演算され（ステップＳ２４）、ブロック差分絶対値和ＤＦＤ（Ａ）乃至ＤＦＤ（Ｄ）の平均値、最大値、および最小値がそれぞれ演算される（ステップＳ２５）。そして、ベクトルV１およびベクトルV１の２つのベクトルに対応付けられて、ブロック差分絶対値和の平均値、最大値、および最小値の組み合わせが出力される（ステップＳ２６）。
【００８６】
ステップS１０９において、ベクトル選択部１２４は、ベクトル選択処理を実行する。この処理は、図８乃至図１０を参照して上述した処理と同様の処理なので、詳細な説明は省略するが、ここでは、上述した場合と異なり、複数の候補ベクトルに代わって、ベクトルV1、ベクトルV2の２つのベクトルのうち、最も確度が高いと推定されるベクトルが選択される。
【００８７】
ステップＳ１１０において、ベクトル選択部１２４は、ステップＳ１０９の処理により選択されたベクトルを、動きベクトルVとして出力する。
【００８８】
なお、ステップＳ１０５の処理で、初期ベクトルV0が選択されたと判定された場合、ステップＳ１０６乃至Ｓ１０９の処理は、スキップされ、ステップＳ１１０で初期ベクトルV0がそのまま動きベクトルVとして出力される。
【００８９】
このようにして、画像の動きを表す動きベクトルVが検出される。動きベクトルVは、初期ベクトルV0、初期ベクトルに対して勾配法による演算を行って求められたベクトルV1、またはベクトルV1に対してさらに勾配法による演算を行って求められたベクトルV２のうち、最も確度が高いものが、選択されて出力されるので、画像の動きをより正確に検出することができる。
【００９０】
この例では、勾配法の演算を行うために、ブロック差分絶対値和演算処理を行い、勾配法に用いる画素値（画素ブロック）を補間するようにしたが、勾配法に用いる画素値は、他の方法で補間されるようにしてもよい。図１４は、動きベクトル選択処理の他の例を示すフローチャートである。
【００９１】
すなわち、ステップＳ１２１において、第１回勾配法演算部１２１は、初期ベクトルV0に対する勾配法の演算を行い、ベクトルV１を求める。ステップＳ１２２において、画素値補間部１２５は、ベクトルV1（V0＋V1）の指し位置（図１２の指し位置１７２）を検出し、ステップ１２３において、指し位置の画素値を補間する。このとき、画素値の補間は、例えば、次のようにして行われる。
【００９２】
いま、フレームｎにおけるベクトルV1の指し位置が、図１５の図中黒丸で示される点ｑとして検出されたとする。点qの周囲には、左上に画素l0、右上に画素l1、左下に画素l2、右下に画素l3が存在する。画素間の距離を１とすると、点qは、画素l0とl2を結ぶ図中垂直（y軸と並行）な線から、水平方向（x軸方向）に、距離αだけ離れており、画素l1とl3を結ぶ図中垂直な線から、x軸方向に距離1-αだけ離れている。また、点qは、画素l0とl1を結ぶ図中水平（x軸と並行）な線から、垂直方向（y軸方向）に距離βだけ離れており、画素l2とl3を結ぶ図中水平な線からy軸方向に距離1-βだけ離れている。
【００９３】
画素l0乃至l3の画素値をL0乃至L3とすると、画素値補間部１２５は、指し位置の画素の値Ｑを次式により演算し、補間する。
【００９４】
Ｑ＝(1-α)(1-β)L0＋α(1-β)L1＋(1-α)βL2＋αβL3
【００９５】
同様にして、図１６に、図中黒丸で示される点ｑの周囲の所定の位置の画素値も、図中白丸で示される画素の画素値に基づいて補間される。
【００９６】
図１４に戻って、ステップＳ１２４において、第２回勾配法演算部１２２は、ステップＳ１２３で補間された画素値と、ステップＳ１２１で求められたベクトルV1に基づいて、第２回目の勾配法の演算を行い、ベクトルV2を求める。
【００９７】
ステップＳ１２５において、ＤＦＤ演算部１２３は、ブロック差分絶対値和演算処理を実行する。この処理は、図５のフローチャートを参照して上述した処理と同様の処理なので、詳細な説明は省略するが、ここでは、上述した場合と異なり、複数の候補ベクトルに代わって、初期ベクトルV0、ベクトルV１とV2の３つのベクトルが入力され、各ベクトルに対応するそれぞれ４つのブロック差分絶対値和ＤＦＤ（Ａ）乃至ＤＦＤ（Ｄ）が演算され（ステップＳ２４）、ブロック差分絶対値和ＤＦＤ（Ａ）乃至ＤＦＤ（Ｄ）の平均値、最大値、および最小値がそれぞれ演算される（ステップＳ２５）。そして、初期ベクトルV0、ベクトルV１とV2の３つのベクトルに対応付けられて、ブロック差分絶対値和の平均値、最大値、および最小値の組み合わせが出力される（ステップＳ２６）。
【００９８】
ステップＳ１２６において、選択部１２４は、ベクトル選択処理を実行する。この処理は、図８乃至図１０を参照して上述した処理と同様の処理なので、詳細な説明は省略するが、ここでは、上述した場合と異なり、複数の候補ベクトルに代わって、初期ベクトルV0、ベクトルV１とV2の３つのベクトルのうち、最も確度が高いと推定されるベクトルが動きベクトルVとして選択される。
【００９９】
ステップＳ１２７において、選択部１２４は、動きベクトルVを出力する。
【０１００】
このようにして、画像の動きを表す動きベクトルVが検出される。
【０１０１】
なお、上述した一連の処理をハードウェアで実現するか、ソフトウェアで実現するかは問わない。上述した一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば図１７に示されるような汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
【０１０２】
図１７において、CPU（Central  Processing  Unit）９０１は、ROM（Read  Only  Memory）９０２に記憶されているプログラム、または記憶部９０８からRAM（Random  Access  Memory）９０３にロードされたプログラムに従って各種の処理を実行する。RAM９０３にはまた、CPU９０１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【０１０３】
CPU９０１、ROM９０２、およびRAM９０３は、バス９０４を介して相互に接続されている。このバス９０４にはまた、入出力インタフェース９０５も接続されている。
【０１０４】
入出力インタフェース９０５には、キーボード、マウスなどよりなる入力部９０６、CRT(Cathode Ray Tube)、LCD(Liquid Crystal display)などよりなるディスプレイ（表示部）、並びにスピーカなどよりなる出力部９０７、ハードディスクなどより構成される記憶部９０８、モデム、ターミナルアダプタなどより構成される通信部９０９が接続されている。通信部９０９は、インターネットなどのネットワークを介しての通信処理を行う。
【０１０５】
入出力インタフェース９０５にはまた、必要に応じてドライブ９１０が接続され、ドライブ９１０には、本発明のプログラムが記録された記録媒体として、例えば、リムーバブルメディア９１１が装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部９０８にインストールされる。
【０１０６】
なお、本明細書において上述した一連の処理を実行するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【図面の簡単な説明】
【０１０７】
【図１】本発明を適用した動きベクトル検出装置の構成例を示すブロック図である。
【図２】図１の初期ベクトル選択部の詳細な構成例を示すブロック図である。
【図３】初期ベクトル選択処理を説明するフローチャートである。
【図４】図２のDFD演算部の詳細な構成例を示すブロック図である。
【図５】ブロック差分絶対値和演算処理を説明するフローチャートである。
【図６】ベクトルの起点と指し位置を示す図である。
【図７】ベクトルの指し位置周辺の画素を中心とするブロックを示す図である。
【図８】ベクトル選択処理１を説明するフローチャートである。
【図９】ベクトル選択処理２を説明するフローチャートである。
【図１０】ベクトル選択処理３を説明するフローチャートである。
【図１１】図１の動きベクトル選択部の詳細な構成例を示すブロック図である。
【図１２】勾配法により求められるベクトルの指し位置を示す図である。
【図１３】動きベクトル選択処理を説明するフローチャートである。
【図１４】動きベクトル選択処理の他の例を説明するフローチャートである。
【図１５】画素値の補間を説明する図である。
【図１６】画素値が補間される位置を示す図である。
【図１７】パーソナルコンピュータの構成例を示すブロック図である。
【符号の説明】
【０１０８】
１  動きベクトル検出装置，  ２１  初期ベクトル選択部，  ２２  動きベクトル選択部，  ４１  候補ベクトル検出部，  ４２  ＤＦＤ演算部，  ４３  選択部，  ６１  ベクトル位置検出部，  ６２  ブロック抽出部，  ６３−１乃至６３−４  ブロック抽出部，  ６４−１乃至６４−４  差分絶対値和演算部，  ６５  結果出力部，  １２３  ＤＦＤ演算部，  １２４  選択部，  １２５  画素値補間部
【図１】
2005259027.tif 000011
【図２】
2005259027.tif 000012
【図３】
2005259027.tif 000013
【図４】
2005259027.tif 000014
【図５】
2005259027.tif 000015
【図６】
2005259027.tif 000016
【図７】
2005259027.tif 000017
【図８】
2005259027.tif 000018
【図９】
2005259027.tif 000019
【図１０】
2005259027.tif 000020
【図１１】
2005259027.tif 000021
【図１２】
2005259027.tif 000022
【図１３】
2005259027.tif 000023
【図１４】
2005259027.tif 000024
【図１５】
2005259027.tif 000025
【図１６】
2005259027.tif 000026
【図１７】
2005259027.tif 000027