(57)【要約】【課題】間違った動きベクトルの検出を防止する。【解決手段】動き検出装置１では、評価値テーブル形成部１１は、複数のベクトルそれぞれについて、そのベクトルが注目ブロックの動きを表す度合いの評価値を計算し、閾値計算部１２は、注目ブロックの画素を用いて、評価値を評価するための評価値用閾値を計算する。候補ベクトル抽出部１３は、評価値と評価値用閾値とを比較し、その比較の結果に基づいて、複数のベクトルから注目ブロックの動きを表す動きベクトルの候補となる候補ベクトルを選択し、動きベクトル決定部１５は、候補ベクトルの選択の結果に基づいて、動き情報を出力する。本発明は、例えば、注目ブロックの動きを表す動き情報を求める動き検出装置に適用できる。【選択図】図２
2008171247.tif 000002
【特許請求の範囲】
【請求項１】
画像において注目しているブロックである注目ブロックの動きを表す動き情報を求める動き検出装置において、
複数のベクトルそれぞれについて、そのベクトルが前記注目ブロックの動きを表す度合いの評価値を計算する第１の評価値計算手段と、
前記注目ブロックの画素を用いて、前記評価値を評価するための評価値用閾値を計算する第１の閾値計算手段と、
前記評価値と前記評価値用閾値とを比較し、その比較の結果に基づいて、前記複数のベクトルから前記注目ブロックの動きを表す動きベクトルの候補となる候補ベクトルを選択する選択手段と、
前記候補ベクトルの選択の結果に基づいて、前記動き情報を出力する出力手段と
を備える動き検出装置。
【請求項２】
前記出力手段は、前記候補ベクトルが１つである場合、前記候補ベクトルを前記動き情報として出力し、前記候補ベクトルがない場合、前記注目ブロックの動きが不明である旨を前記動き情報として出力する
請求項１に記載の動き検出装置。
【請求項３】
前記第１の閾値計算手段は、前記注目ブロックと、前記注目ブロックから所定の画素分だけずれた前記注目ブロックと同じ大きさの領域との画素を用いて、前記評価値用閾値を計算する
請求項１に記載の動き検出装置。
【請求項４】
前記候補ベクトルが複数である場合、前記候補ベクトルを１以下に絞り込む候補ベクトル絞り込み手段をさらに備え、
前記候補ベクトル絞り込み手段は、
前記候補ベクトルの評価値を再計算するための評価値計算用ブロックを、前記注目ブロックに対して所定の位置関係にあるブロックから選択するブロック選択手段と、
複数の前記候補ベクトルのそれぞれについて、前記候補ベクトルが前記評価値計算用ブロックの動きを表す度合いの評価値である候補評価値を計算する第２の評価値計算手段と、
前記評価値計算用ブロックの画素を用いて、前記候補評価値を評価するための候補評価値用閾値を計算する第２の閾値計算手段と、
前記候補評価値と前記候補評価値用閾値とを比較し、その比較の結果に基づいて、前記候補ベクトルを絞り込む絞り込み手段と
を有し、
前記候補ベクトルを１以下に絞り込むまで、前記評価値計算用ブロックを、前記注目ブロックに対して前記所定の位置関係にある未選択のブロックから順次選択して、前記候補ベクトルを１以下に絞り込み、
前記出力手段は、前記候補ベクトルが複数である場合、前記候補ベクトルの絞り込みの結果に基づいて、前記動き情報を出力する
請求項１に記載の動き検出装置。
【請求項５】
前記第２の評価値計算手段は、前記評価値計算用ブロックと、前記評価値計算用ブロックから所定の画素分だけずれた前記評価値計算用ブロックと同じ大きさの領域との画素を用いて、前記候補評価値用閾値を計算する
請求項４に記載の動き検出装置。
【請求項６】
画像において注目しているブロックである注目ブロックの動きを表す動き情報を求める動き検出方法において、
複数のベクトルそれぞれについて、そのベクトルが前記注目ブロックの動きを表す度合いの評価値を計算し、
前記注目ブロックの画素を用いて、前記評価値を評価するための評価値用閾値を計算し、
前記評価値と前記評価値用閾値とを比較し、その比較の結果に基づいて、前記複数のベクトルから前記注目ブロックの動きを表す動きベクトルの候補となる候補ベクトルを選択し、
前記候補ベクトルの選択の結果に基づいて、前記動き情報を出力する
ステップを含む動き検出方法。
【請求項７】
画像において注目しているブロックである注目ブロックの動きを表す動き情報を求める動き検出処理をコンピュータに実行させるプログラムにおいて、
複数のベクトルそれぞれについて、そのベクトルが前記注目ブロックの動きを表す度合いの評価値を計算し、
前記注目ブロックの画素を用いて、前記評価値を評価するための評価値用閾値を計算し、
前記評価値と前記評価値用閾値とを比較し、その比較の結果に基づいて、前記複数のベクトルから前記注目ブロックの動きを表す動きベクトルの候補となる候補ベクトルを選択し、
前記候補ベクトルの選択の結果に基づいて、前記動き情報を出力する
ステップを含むプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動き検出装置、方法、及びプログラムに関し、特に、例えば、間違った動きベクトルの検出を防止することができるようにする動き検出装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
画像の動きを表す動き情報を検出する方法としては、例えば、画像の動きを表す動きベクトルを検出するブロックマッチングがある。
【０００３】
ブロックマッチングにおいては、動きベクトルを検出しようとしているフレームである現在フレームのブロックである注目ブロックから、例えば、現在フレームの１フレーム後のフレームである未来フレームのある範囲（サーチエリア）にある注目ブロックと同じ大きさの領域への移動を表す複数のベクトルについて、各ベクトルが注目ブロックの動きを表す度合いの評価値が求められる。そして、複数のベクトルのうちの、評価値が最も良いベクトルが、注目ブロックの動きベクトルとして検出される。
【０００４】
ここで、ブロックマッチングでは、評価値を求めようとして注目している注目ベクトルについて、例えば、現在フレームの注目ブロックと、未来フレームの、注目ブロックから注目ベクトルだけ移動した位置の領域との間の、同一の位置の画素の画素値の差分の絶対値の総和(SAD(Sum of Absolute Difference))が、注目ベクトルの評価値として求められる。
【０００５】
複数のベクトルそれぞれの評価値としてのSADは、各ベクトルに対応付けて評価値テーブルに登録される。そして、評価値テーブルで最小のSADが、最も良い評価値として求められ、そのSADに対応付けられているベクトルが、注目ブロックの動きベクトルとして検出される。
【０００６】
なお、動きベクトルを検出する方法としては、ブロックマッチングの他、例えば、動きベクトルを対応付ける注目画素の近傍領域から特徴画素を抽出し、その特徴画素に基づく相関判定処理に基づいて、注目画素に対応する動きベクトルを決定する方法がある（例えば、特許文献１を参照）。
【特許文献１】特開２００５−２５２３５９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、動きベクトルは、例えば、MPEG(Moving Picture Experts Group)符号化や、画像のフレームレートを、より高いフレームレートに変換する場合等の、フレームの補間を行う場合等に使用される。
【０００８】
MPEG符号化では、いわゆる動き残差、ひいては、符号量を小にする目的で、動きベクトルが用いられるため、動きベクトルが、画像の動きを正確に表していなくても問題はない。
【０００９】
一方、フレームの補間を行う場合には、あるフレームと、次のフレームとの間に補間するフレーム（補間フレーム）における被写体の位置を決めるのに、動きベクトルが用いられるため、動きベクトルは、画像（被写体）の動きを正確に表している必要がある。
【００１０】
しかしながら、ブロックマッチングにおいて、評価値としてのSADが最小のベクトルは、必ずしも、画像の動きを正確に表しているとは限らない。
【００１１】
すなわち、図１は、ブロックマッチングで求められる評価値としてのSADを説明する図である。
【００１２】
いま、現在フレームの注目ブロックの画像の真の波形が、図１上から１番目に、点線で示すように、鋸波状の波形であり、注目ブロックの左から１，２，３，４，５番目の画素値が、それぞれ、０，１０，０，１０，０であるとする。
【００１３】
また、現在フレームの１フレーム後の未来フレームでは、図１上から２番目の左に示すように、波形Ａ（で表される被写体）が動くことによって、波形Ａの位置から０．４画素だけずれた波形Ｂになったとする。この場合、未来フレームの、注目ブロックと同一の位置の領域である、波形Ｂがある領域の左から１乃至５番目の画素値は、それぞれ、４，６，４，６，４となる。
【００１４】
一方、未来フレームのサーチエリア内の、波形Ｂがある領域から離れた別の領域には、図１上から２番目の右に示すように、台形状の波形Ｃがあり、その左から１乃至５番目の画素値が、それぞれ、０，１０，１０，１０，０であるとする。
【００１５】
この場合、波形Ｂが存在する領域については、図１上から３番目の左に示すように、SADとして、20(=｜0−4｜＋｜10−6｜＋｜0−4｜＋｜10−6｜＋｜0−4｜)が求められる。また、波形Ｃが存在する領域については、図１上から３番目の右に示すように、SADとして、10(=｜0−0｜＋｜10−10｜＋｜0−10｜＋｜10−10｜＋｜0−0｜)が求められる。
【００１６】
いま、説明を簡単にするために、評価値テーブルに登録されるSADが、波形Ｂが存在する領域について求められるSAD=20と、波形Ｃが存在する領域について求められるSAD=10だけであるとすると、波形Ｃが存在する領域について求められるSAD=10が最小であるため、波形Ａは、０．４画素だけ右に動いて、波形Ｂとなったにもかかわらず、波形Ｂがある領域から離れた、波形Ｃがある領域の、注目ブロックからの相対的な位置を表すベクトルが、注目ブロックの動きベクトルとして検出される。
【００１７】
すなわち、この場合、波形Ｂがある領域の、注目ブロックからの相対的な位置を表すベクトルが、注目ブロックの動きを表すベクトルとして検出されるべきであるのに、波形Ｃがある領域の、注目ブロックからの相対的な位置を表すベクトルが、注目ブロックの動きを表すベクトルとして誤検出される。
【００１８】
以上のように、SADが最小であるベクトル等の、単に、評価値が最も良いベクトルを、動きベクトルとして検出する方法では、画像の動きが１画素未満であり、かつ、鋸波状等の細かい絵柄がある部分については、画像の真の動きを表していない動きベクトル、つまり、間違った動きベクトルが検出されることがある。
【００１９】
同様に、ノイズ等の影響でも、間違った動きベクトルが検出されることがある。
【００２０】
また、波形の変化がほとんどない平坦な部分や同じ波形が繰り返す部分等では、その波形の部分の中でSADの差が小さいために、間違った動きベクトルが検出されやすい。
【００２１】
さらに、間違った動きベクトルは、被写体どうしが重なり合う場合における、隠れて見えない部分についても検出されることがある。
【００２２】
また、単に、最小のSADのベクトルを、動きベクトルに決定するのではなく、評価値テーブルにおけるSADの最小値の他に、SADの分布をも考慮して、動きベクトルを決定する方法がある。この方法では、最小のSADだけから動きベクトルを決定する場合に比べて、間違った動きベクトルの検出は少なくなるが、本質的に局所部分で動きベクトルを求めることが困難な場合、例えば、平坦な部分や、縞模様等の同じような波形が繰り返される部分等では、間違った動きベクトルの検出を回避することは難しい。
【００２３】
本発明は、このような状況に鑑みてなされたものであり、間違った動きベクトルの検出を防止することができるようにするものである。
【課題を解決するための手段】
【００２４】
本発明の一側面の動き検出装置は、画像において注目しているブロックである注目ブロックの動きを表す動き情報を求める動き検出装置であり、複数のベクトルそれぞれについて、そのベクトルが前記注目ブロックの動きを表す度合いの評価値を計算する第１の評価値計算手段と、前記注目ブロックの画素を用いて、前記評価値を評価するための評価値用閾値を計算する第１の閾値計算手段と、前記評価値と前記評価値用閾値とを比較し、その比較の結果に基づいて、前記複数のベクトルから前記注目ブロックの動きを表す動きベクトルの候補となる候補ベクトルを選択する選択手段と、前記候補ベクトルの選択の結果に基づいて、前記動き情報を出力する出力手段とを備える。
【００２５】
本発明の一側面の動き検出装置には、前記候補ベクトルが複数である場合、前記候補ベクトルを１以下に絞り込む候補ベクトル絞り込み手段をさらに設けることができる。前記候補ベクトル絞り込み手段には、前記候補ベクトルの評価値を再計算するための評価値計算用ブロックを、前記注目ブロックに対して所定の位置関係にあるブロックから選択するブロック選択手段と、複数の前記候補ベクトルのそれぞれについて、前記候補ベクトルが前記評価値計算用ブロックの動きを表す度合いの評価値である候補評価値を計算する第２の評価値計算手段と、前記評価値計算用ブロックの画素を用いて、前記候補評価値を評価するための候補評価値用閾値を計算する第２の閾値計算手段と、前記候補評価値と前記候補評価値用閾値とを比較し、その比較の結果に基づいて、前記候補ベクトルを絞り込む絞り込み手段とを設け、前記候補ベクトルを１以下に絞り込むまで、前記評価値計算用ブロックを、前記注目ブロックに対して前記所定の位置関係にある未選択のブロックから順次選択して、前記候補ベクトルを１以下に絞り込ませることができる。そして、前記出力手段には、前記候補ベクトルが複数である場合、前記候補ベクトルの絞り込みの結果に基づいて、前記動き情報を出力させることができる。
【００２６】
本発明の一側面の検出方法、またはプログラムは、画像において注目しているブロックである注目ブロックの動きを表す動き情報を求める動き検出方法または動き検出処理をコンピュータに実行させるプログラムであり、複数のベクトルそれぞれについて、そのベクトルが前記注目ブロックの動きを表す度合いの評価値を計算し、前記注目ブロックの画素を用いて、前記評価値を評価するための評価値用閾値を計算し、前記評価値と前記評価値用閾値とを比較し、その比較の結果に基づいて、前記複数のベクトルから前記注目ブロックの動きを表す動きベクトルの候補となる候補ベクトルを選択し、前記候補ベクトルの選択の結果に基づいて、前記動き情報を出力するステップを含む。
【００２７】
本発明の一側面においては、複数のベクトルそれぞれについて、そのベクトルが注目ブロックの動きを表す度合いの評価値が計算され、前記注目ブロックの画素を用いて、前記評価値を評価するための評価値用閾値が計算される。さらに、前記評価値と前記評価値用閾値とが比較され、その比較の結果に基づいて、前記複数のベクトルから前記注目ブロックの動きを表す動きベクトルの候補となる候補ベクトルが選択され、前記候補ベクトルの選択の結果に基づいて、前記動き情報が出力される。
【発明の効果】
【００２８】
本発明の一側面によれば、間違った動きベクトルの検出を防止することができる。
【発明を実施するための最良の形態】
【００２９】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書又は図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書又は図面に記載されていることを確認するためのものである。従って、明細書又は図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００３０】
本発明の一側面の動き検出装置は、
画像において注目しているブロックである注目ブロックの動きを表す動き情報を求める動き検出装置（例えば、図２の動き検出装置１）であり、
複数のベクトルそれぞれについて、そのベクトルが前記注目ブロックの動きを表す度合いの評価値を計算する第１の評価値計算手段（例えば、図２の評価値テーブル形成部１１）と、
前記注目ブロックの画素を用いて、前記評価値を評価するための評価値用閾値を計算する第１の閾値計算手段（例えば、図２の閾値計算部１２）と、
前記評価値と前記評価値用閾値とを比較し、その比較の結果に基づいて、前記複数のベクトルから前記注目ブロックの動きを表す動きベクトルの候補となる候補ベクトルを選択する選択手段（例えば、図２の候補ベクトル抽出部１３）と、
前記候補ベクトルの選択の結果に基づいて、前記動き情報を出力する出力手段（例えば、図２の動きベクトル決定部１５）と
を備える。
【００３１】
本発明の一側面の動き検出装置には、
前記候補ベクトルが複数である場合、前記候補ベクトルを１以下に絞り込む候補ベクトル絞り込み手段（例えば、図２の候補ベクトル絞り込み部１４）をさらに設け、
前記候補ベクトル絞り込み手段には、
前記候補ベクトルの評価値を再計算するための評価値計算用ブロックを、前記注目ブロックに対して所定の位置関係にあるブロックから選択するブロック選択手段（例えば、図２のブロック選択部１４Ａ）と、
複数の前記候補ベクトルのそれぞれについて、前記候補ベクトルが前記評価値計算用ブロックの動きを表す度合いの評価値である候補評価値を計算する第２の評価値計算手段（例えば、図２の評価値テーブル形成部１４Ｂ）と、
前記評価値計算用ブロックの画素を用いて、前記候補評価値を評価するための候補評価値用閾値を計算する第２の閾値計算手段（例えば、図２の閾値計算部１４Ｃ）と、
前記候補評価値と前記候補評価値用閾値とを比較し、その比較の結果に基づいて、前記候補ベクトルを絞り込む絞り込み手段（例えば、図２の絞り込み部１４Ｄ）と
を設け、
前記候補ベクトルを１以下に絞り込むまで、前記評価値計算用ブロックを、前記注目ブロックに対して前記所定の位置関係にある未選択のブロックから順次選択して、前記候補ベクトルを１以下に絞り込ませ、
前記出力手段には、前記候補ベクトルが複数である場合、前記候補ベクトルの絞り込みの結果に基づいて、前記動き情報を出力させることができる。
【００３２】
本発明の一側面の検出方法、またはプログラムは、
画像において注目しているブロックである注目ブロックの動きを表す動き情報を求める動き検出方法または動き検出処理をコンピュータに実行させるプログラムであり、
複数のベクトルそれぞれについて、そのベクトルが前記注目ブロックの動きを表す度合いの評価値を計算し（例えば、図６のステップＳ１）、
前記注目ブロックの画素を用いて、前記評価値を評価するための評価値用閾値を計算し（例えば、図６のステップＳ２）、
前記評価値と前記評価値用閾値とを比較し、その比較の結果に基づいて、前記複数のベクトルから前記注目ブロックの動きを表す動きベクトルの候補となる候補ベクトルを選択し（例えば、図６のステップＳ３）、
前記候補ベクトルの選択の結果に基づいて、前記動き情報を出力する（例えば、図６のステップＳ５またはステップＳ１０）
ステップを含む。
【００３３】
以下、図面を参照して本発明を適用した実施の形態について説明する。
【００３４】
図２は、本発明を適用した動き検出装置の一実施の形態の構成例を示すブロック図である。
【００３５】
図２において、動き検出装置１は、評価値テーブル形成部１１、閾値計算部１２、候補ベクトル抽出部１３、候補ベクトル絞込み部１４、及び動きベクトル決定部１５から構成される。
【００３６】
動き検出装置１の評価値テーブル形成部１１には、例えば、外部から、動きを検出する対象のフレームである現在フレームと、その現在フレームの１フレーム後（または１フレーム前）のフレーム等である未来フレーム（または過去フレーム）の画像が供給される。
【００３７】
動き検出装置１の評価値テーブル形成部１１は、そこに供給される現在フレームの画像を構成する複数のブロックのうちの１つに注目し、現在フレームの注目ブロックの位置を中心とする、未来フレームのサーチエリア内において注目ブロックと同じ大きさの複数の領域の、注目ブロックからの相対位置を表す複数のベクトルを、評価値を求める対象の評価対象ベクトルとして、複数の評価対象ベクトルのそれぞれについて、その評価対象ベクトルが注目ブロックの動きを表す度合いを評価する評価値を計算する。さらに、評価値テーブル形成部１１は、複数の評価対象ベクトルと評価値とを対応付けた評価値テーブルを作成し、候補ベクトル抽出部１３に供給する。
【００３８】
ここで、評価対象ベクトルの評価値には、例えば、注目ブロックと、その注目ブロックから評価対象ベクトルだけ移動した位置の未来フレームの領域との間のSADを採用する。
【００３９】
閾値計算部１２には、現在フレームの画像が供給される。
【００４０】
閾値計算部１２は、現在フレームの注目ブロックの画素等を用いて、複数の評価対象ベクトルの評価値を評価するための評価値用閾値を計算し、候補ベクトル抽出部１３に供給する。
【００４１】
候補ベクトル抽出部１３は、評価値テーブル形成部１１から供給される評価値テーブルに登録されている評価値と、閾値計算部１２から供給される評価値用閾値とを比較し、その比較の結果に基づいて、複数の評価対象ベクトルから動きベクトルの候補である候補ベクトルを選択し、その選択の結果を、候補ベクトル絞り込み部１４と動きベクトル決定部１５に供給する。
【００４２】
候補ベクトル絞り込み部１４には、候補ベクトル抽出部１３から候補ベクトルの選択の結果が供給される他、外部から、評価値テーブル形成部１１に供給されるのと同一の現在フレームと未来フレームの画像が供給される。
【００４３】
候補ベクトル絞り込み部１４は、ブロック選択部１４Ａ、評価値テーブル形成部１４Ｂ、閾値計算部１４Ｃ、及び絞り込み部１４Ｄから構成され、ブロック選択部１４Ａ、評価値テーブル形成部１４Ｂ、閾値計算部１４Ｃ、及び絞り込み部１４Ｄを制御することにより、候補ベクトル抽出部１３から複数の候補ベクトルが供給された場合に、候補ベクトルを１以下に絞り込み、その絞り込みの結果を、動きベクトル決定部１５に供給する処理を行う。
【００４４】
すなわち、候補ベクトル絞り込み部１４のブロック選択部１４Ａは、候補ベクトル抽出部１３からの複数の候補ベクトルそれぞれの評価値を再計算するための評価値計算用ブロックを、注目ブロックに対して所定の位置関係にあるブロックから選択する。
【００４５】
評価値テーブル形成部１４Ｂは、候補ベクトル抽出部１３からの複数の候補ベクトルのそれぞれに対して、その候補ベクトルが評価値計算用ブロックの動きを表す度合いを評価する評価値である候補評価値を計算し、各候補ベクトルの候補評価値と、その候補ベクトルとを対応付けた候補ベクトル用評価値テーブルを作成し、絞り込み部１４Ｄに供給する。
【００４６】
閾値計算部１４Ｃは、評価値計算用ブロックの画素等を用いて、候補ベクトル抽出部１３からの複数の候補ベクトルの候補評価値を評価するための候補評価値用閾値を計算し、絞り込み部１４Ｄに供給する。
【００４７】
絞り込み部１４Ｄは、評価値テーブル形成部１４Ｂが作成する候補ベクトル用評価値テーブルに登録されている候補評価値と、閾値計算部１４Ｃから供給される候補評価値用閾値とを比較し、その比較の結果に基づいて、候補ベクトル抽出部１３からの複数の候補ベクトルを絞り込む。
【００４８】
動きベクトル決定部１５は、候補ベクトル抽出部１３による候補ベクトルの選択の結果、または、候補ベクトル絞り込み部１４による候補ベクトルの絞り込みの結果に基づいて、注目ブロックの動きを表す動き情報を決定し、外部に出力する。
【００４９】
次に、図２の閾値計算部１２による評価値用閾値の計算について説明する。
【００５０】
評価対象ベクトルの評価値として、その評価対象ベクトルが、画像の真の動きを表す度合いを正確に表す物理量があれば、その物理量を、評価対象ベクトルの評価値として採用し、評価値が最も良い評価対象ベクトルを、動きベクトルとすることにより、真の動きを表す動きベクトルを検出することができる。
【００５１】
しかしながら、SAD等の、評価対象ベクトルの評価値は、その評価対象ベクトルが画像の動きを表す度合いを、ある程度の精度で表すが、必ずしも正確でないことがあり、その結果、最も評価値が良い評価対象ベクトルを、動きベクトルとすると、前述の図１で説明したように、間違った動きベクトルを検出することがある。
【００５２】
そこで、注目ブロックに対して検出される動きベクトルについて、横方向と縦方向のそれぞれに、１画素の誤差（許容誤差）を許容することとして、真の動きを表す動きベクトルに対して、許容誤差の範囲内の動きベクトルを検出することとする。
【００５３】
いま、評価対象ベクトルの評価値としてのSADが、その評価対象ベクトルが画像の動きを表す度合いを、許容誤差に対応する精度で表しているとすると、ある評価対象ベクトルが、許容誤差の範囲内の動きベクトルであるためには、その評価対象ベクトルの評価値としてのSADが、注目ブロックから真の動きベクトルだけ移動した位置の未来フレームの領域（以下、対応領域ともいう）からさらに１画素だけ移動した位置の未来フレームの領域と、注目ブロックとの間のSAD以下（未満）の値（良い値）になっている必要がある。
【００５４】
評価対象ベクトルが許容誤差の範囲内の動きベクトルであるために、その評価対象ベクトルの評価値としてのSADがとる必要がある最低限の値を、動きマージンということとすると、動きベクトルの許容誤差が１画素である場合には、動きマージンは、注目ブロックと、未来フレームの対応領域から１画素だけ移動した領域との間のSADとなるが、このSADを求めるには、注目ブロックの真の動きを表す動きベクトル、ひいては、その動きベクトルだけ注目ブロックから移動した未来フレームの対応領域を検出することが必要となる。
【００５５】
ところで、注目ブロックの周囲の１画素が注目ブロックと同一の動きをしているとすれば、未来フレームの対応領域から１画素だけ移動した領域は、現在フレームの注目ブロックから、同様に１画素だけ移動した領域で近似することができる。
【００５６】
したがって、現在フレームの注目ブロックと、未来フレームの対応領域から１画素だけ移動した領域との間のSADは、現在フレームの注目ブロックと、現在フレームの注目ブロックから１画素だけ移動した領域との間のSADで近似することができ、このSADを、動きマージンとして採用することとする。
【００５７】
閾値計算部１２では、以上のような動きマージンが、評価値用閾値として求められる。
【００５８】
ここで、動きマージンは、現在フレームの注目ブロックと、現在フレームの注目ブロックから１画素だけ移動した領域とを用いて求められるが、この、動きマージンを求めるのに用いられる、注目ブロックから１画素だけ移動した領域を、以下、適宜、動きマージン計算用領域という。
【００５９】
図３は、閾値計算部１２による動きマージンの計算を説明する図である。
【００６０】
閾値計算部１２は、図３において点線で示す注目ブロックを、注目ブロックの周囲の８の方向、すなわち、左上、上、右上、左、右、左下、下、または右下の方向それぞれに１画素ずらした８の領域を、動きマージン計算用領域として、その８つの動きマージン計算用領域それぞれについて動きマージンを計算する。
【００６１】
そして、閾値計算部１２は、８つの動きマージンのうちの、例えば、最大値や最小値を、注目ブロックの評価対象ベクトルの評価値を評価するための評価値用閾値として、候補ベクトル抽出部１３に供給する。
【００６２】
なお、注目ブロックと動きマージン計算用領域の間のずれ、つまり、許容誤差は、１画素に限定する必要はなく、その他、２画素等とすることもできる。
【００６３】
次に、図４を参照して、図２の候補ベクトル抽出部１３の処理について説明する。
【００６４】
候補ベクトル抽出部１３は、評価値テーブル形成部１１からの注目ブロックについて作成された評価値テーブルの各評価対象ベクトルの評価値と、閾値計算部１２からの注目ブロックの評価値用閾値とを比較することにより、評価対象ベクトルの中から、注目ブロックの動きベクトルの候補となる候補ベクトルを選択する。
【００６５】
すなわち、図４は、注目ブロックについて求められた複数の評価対象ベクトルの評価値としてのSADを示している。
【００６６】
候補ベクトル抽出部１３は、評価値テーブルの評価値としてのSADと、評価値用閾値とを比較し、評価値テーブルにおいて、評価値用閾値よりも良い評価値、すなわち、評価値用閾値以下のSADに対応付けられている評価対象ベクトルを、候補ベクトルとして選択し、その選択の結果を、候補ベクトル絞り込み部１４と動きベクトル決定部１５に供給する。
【００６７】
図４では、３つの評価対象ベクトルＡ，Ｂ，Ｃの評価値としてのSADが、評価値用閾値以下になっており、したがって、その３つの評価対象ベクトルＡ，Ｂ，Ｃが、候補ベクトルとして選択される。
【００６８】
以上のように、候補ベクトル抽出部１３では、ブロックマッチングのように、最小のSADの評価対象ベクトルだけが動きベクトルとされるのではなく、評価値用閾値以下のSADの評価対象ベクトルのすべてが、いわば平等に、注目ブロックの動きベクトルの候補である候補ベクトルとして選択される。
【００６９】
評価値用閾値は、注目ブロックの絵柄に連動して変化するので、そのような評価値用閾値を用いて、評価対象ベクトルの評価値としてのSADを評価することにより、すなわち、評価値用閾値以下の評価値の評価対象ベクトルを、候補ベクトルとして選択することにより、評価値の、絵柄に対する依存性を排除して、候補ベクトルの選択を行うことができる。
【００７０】
ここで、評価値用閾値以下のSADに対応付けられている評価対象ベクトル、つまり、候補ベクトル抽出部１３で選択される候補ベクトルは、いずれも、注目ブロックの動きを表すベクトルとして、同程度に確からしいということができるので、動きベクトル決定部１５では、候補ベクトル抽出部１３から供給されるすべての候補ベクトルを、注目ブロックの動きベクトルとして出力することができる。なお、この場合、動き検出装置１は、候補ベクトル絞り込み部１４を設けずに構成することができる。
【００７１】
しかしながら、動き検出装置１が出力する動きベクトルを用いるアプリケーションの中には、注目ブロックの動きベクトルとして、１つだけのベクトルを要求するアプリケーションがある場合がある。
【００７２】
そこで、動き検出装置１では、候補ベクトル絞り込み部１４において、候補ベクトル抽出部１３が複数の候補ベクトルを選択した場合には、その複数の候補ベクトルを絞り込む絞り込み処理を行うことができる。
【００７３】
図５を参照して、絞り込み処理について説明する。
【００７４】
候補ベクトル絞り込み部１４では、注目ブロックについて、例えば、図５左に示すように、３つのベクトルＡ，Ｂ，Ｃが候補ベクトルとして選択された場合、まず、注目ブロックの左上方向に隣接するブロックが、候補ベクトルとしてのベクトルＡ，Ｂ，Ｃの評価値を再計算するための評価値計算用ブロックに設定され、その評価値計算用ブロックを、仮想的な注目ブロックとして、評価値計算用ブロックが注目ブロックであるとしたならば、評価値テーブル形成部１１、閾値計算部１２、及び候補ベクトル抽出部１３において行われるであろう処理（以下、適宜、候補ベクトル検出処理という）が行われる。
【００７５】
但し、評価値テーブル形成部１１、閾値計算部１２、及び候補ベクトル抽出部１３では、複数の評価対象ベクトルすべてを対象に、候補ベクトル検出処理が行われるが、候補ベクトル絞り込み部１４では、候補ベクトルとしてのベクトルＡ，Ｂ，Ｃだけを対象に、候補ベクトル検出処理が行われる。ここで、候補ベクトル絞り込み部１４において、候補ベクトル検出処理の対象となるベクトルを、絞り込み対象ベクトルという。
【００７６】
候補ベクトル絞り込み部１４は、注目ブロックの左上方向のブロックを評価値計算用ブロックとした候補ベクトル検出処理の結果、複数の絞り込み対象ベクトルが、候補ベクトルとして選択された場合には、現在の評価値計算用ブロックの左上方向に隣接するブロック、つまり、注目ブロックの左上方向に隣接するブロックの、さらに左上方向に隣接するブロックを、新たな評価値計算用ブロックとするとともに、前回の候補ベクトル検出処理において候補ベクトルとして残ったベクトルを、新たな絞り込み対象ベクトルとして、候補ベクトル検出処理を行うことを、候補ベクトルが１以下になるまで繰り返す。
【００７７】
そして、候補ベクトルが１以下になると、すなわち、候補ベクトルとして、１つのベクトルが残るか、または、１つのベクトルも残らなくなると、候補ベクトル絞り込み部１４は、注目ブロックの左上方向にあるブロックを評価値計算用ブロックとした候補ベクトル検出処理を終了し、注目ブロックの周囲の方向のうちの、まだ、評価値計算用ブロックとしたブロックが存在していない方向、すなわち、例えば、注目ブロックの上方向にあるブロックを評価値計算用ブロックとした候補ベクトル検出処理を、候補ベクトル抽出部１３から供給された複数の候補ベクトルを絞り込み対象ベクトルとして、候補ベクトルが１以下になるまで繰り返す。
【００７８】
候補ベクトル絞り込み部１４は、以上のように、注目ブロックの左上、上、右上、左、右、左下、下、右下の８つの方向すべてについて、候補ベクトル検出処理を、候補ベクトルが１以下になるまで繰り返し、その８つの方向それぞれについて、候補ベクトル抽出部１３から供給された複数の候補ベクトルを１以下に絞り込む絞り込み処理を行う。
【００７９】
そして、候補ベクトル絞り込み部１４は、絞り込み処理の結果を、動きベクトル決定部１５に供給する。
【００８０】
動きベクトル決定部１５は、候補ベクトル抽出部１３から供給される候補ベクトルが複数であり、候補ベクトル絞り込み部１４から絞り込み処理の結果が供給された場合、その絞り込み処理の結果において、８つの方向についての候補ベクトルとして残っているベクトルのうちの、例えば、最も数の多いベクトルを、注目ブロックの動きベクトルとして決定して出力する。
【００８１】
この場合、例えば、図５右に示すように、注目ブロックの左上方向については、ベクトルＡが候補ベクトルとして残り、上方向については、ベクトルＢが候補ベクトルとして残り、右上方向については、候補ベクトルが残らず、左方向については、ベクトルＡが候補ベクトルとして残り、右方向については、ベクトルＢが候補ベクトルとして残り、左下方向については、候補ベクトルが残らず、下方向及び右下方向については、ベクトルＡが候補ベクトルとして残ったときには、最も数が多いベクトルＡが、注目ブロックの動きベクトルとして決定される。
【００８２】
次に、図６のフローチャートを参照して、図２の動き検出装置１による動き検出処理について説明する。
【００８３】
動き検出装置１の評価値テーブル形成部１１及び候補ベクトル絞り込み部１４には、外部から、現在フレームと未来フレームの画像が供給され、閾値計算部１２には、外部から、現在フレームの画像が供給される。
【００８４】
評価値テーブル形成部１１は、そこに供給される現在フレームの画像を複数の、例えば、縦×横が８×８画素のブロックに分割する。以降の処理は、その複数のブロックを、順次、注目ブロックとして行われる。
【００８５】
すなわち、ステップＳ１において、評価値テーブル形成部１１は、現在フレームの注目ブロックに対する複数の評価対象ベクトルそれぞれのSADを、各評価対象ベクトルの評価値として計算し、複数の評価対象ベクトルそれぞれのSADと、各評価対象ベクトルとを対応付けた評価値テーブルを作成して、候補ベクトル抽出部１３に供給し、処理はステップＳ２に進む。
【００８６】
ステップＳ２において、閾値計算部１２は、注目ブロックを、注目ブロックの周囲の８の方向、すなわち、左上、上、右上、左、右、左下、下、または右下の方向それぞれに１画素ずらした８の領域を、動きマージン計算用領域として、その８つの動きマージン計算用領域それぞれについて動きマージンを計算する。さらに、ステップＳ２では、閾値計算部１２は、８つの動きマージンのうちの、例えば、最大値を、評価値テーブルのSADを評価するための評価値用閾値に決定して、候補ベクトル抽出部１３に供給する。そして、処理はステップＳ２からステップＳ３に進む。
【００８７】
ここで、評価値用閾値としては、８つの動きマージンのうちの最大値の他、最小値や平均値等を採用することが可能である。
【００８８】
ステップＳ３において、候補ベクトル抽出部１３は、評価値テーブル形成部１１からの評価値テーブルに登録されている評価値としてのSADと、閾値計算部１２からの評価値用閾値とを比較し、評価値用閾値以下のSADに対応付けられている評価対象ベクトルを、注目ブロックの動きベクトルの候補である候補ベクトルとして選択し、候補ベクトル絞り込み部１４と、動きベクトル決定部１５とに供給して、処理はステップＳ４に進む。
【００８９】
ステップＳ４において、動きベクトル決定部１５は、候補ベクトル抽出部１３からの候補ベクトルの数が１であるかを判定する。ステップＳ４において、候補ベクトル抽出部１３からの候補ベクトルの数が１であると判定された場合、処理はステップＳ５に進み、動きベクトル決定部１５は、その１の候補ベクトルを、注目ブロックの動きベクトルに決定し、その動きベクトルを、注目ブロックの動き情報として出力して、動き検出処理は終了する。
【００９０】
一方、ステップＳ４において、候補ベクトル抽出部１３からの候補ベクトルの数が１でないと判定された場合、処理はステップＳ６に進み、動きベクトル決定部１５は、候補ベクトル抽出部１３からの候補ベクトルの数が１より大であるかを判定する。ステップＳ６において、候補ベクトル抽出部１３からの候補ベクトルの数が１より大でないと判定された場合、すなわち、評価値用閾値以下のSADに対応付けられた評価対象ベクトルが存在しない場合、処理はステップＳ１０に進み、動きベクトル決定部１５は、注目ブロックの動きが不明である旨の情報を、注目ブロックの動き情報として出力し、動き検出処理は終了する。
【００９１】
また、ステップＳ６において、候補ベクトル抽出部１３からの候補ベクトルの数が１より大であると判定された場合、すなわち、候補ベクトル抽出部１３からの候補ベクトルが２以上である場合、動きベクトル決定部１５は、候補ベクトル絞り込み部１４に対して、絞り込み処理を要求して、処理はステップＳ７に進む。
【００９２】
ステップＳ７において、候補ベクトル絞り込み部１４は、動きベクトル決定部１５からの要求に応じて、候補ベクトル抽出部１３からの複数の候補ベクトルを絞り込む絞り込み処理を行い、その絞り込み処理の結果を、動きベクトル決定部１５に供給して、処理はステップＳ８に進む。
【００９３】
ステップＳ８では、動きベクトル決定部１５が、候補ベクトル絞り込み部１４から、絞り込み処理の結果として、１以上の候補ベクトルが供給されたかどうかを判定する。
【００９４】
ステップＳ８において、候補ベクトル絞り込み部１４から動きベクトル決定部１５に対して、１以上の候補ベクトルが供給されていないと判定された場合、すなわち、絞り込み処理の結果、候補ベクトルが１つも残らなかった場合、処理はステップＳ１０に進み、上述したように、動きベクトル決定部１５は、注目ブロックの動きが不明である旨の情報を、注目ブロックの動き情報として出力し、動き検出処理は終了する。
【００９５】
また、ステップＳ８において、候補ベクトル絞り込み部１４から動きベクトル決定部１５に対して、１以上の候補ベクトルが供給されたと判定された場合、すなわち、絞り込みの結果、１以上の候補ベクトルが残った場合、処理はステップＳ９に進み、動きベクトル決定部１５は、候補ベクトルとして残っている１以上のベクトルにおいて、最も数が多いベクトルが１つだけ存在するかを判定する。
【００９６】
ステップＳ９において、候補ベクトルとして残っている１以上のベクトルにおいて、最も数が多いベクトルが１つだけでないと判定された場合、すなわち、図５で説明した絞り込み処理の結果、注目ブロックの周囲の８つの方向について候補ベクトルとして残ったベクトルが複数あり、その複数のベクトルにおいて、最も数が多いベクトルが、２種類以上存在する場合、処理はステップＳ１０に進み、上述したように、動きベクトル決定部１５は、注目ブロックの動きが不明である旨の情報を、注目ブロックの動き情報として出力し、動き検出処理は終了する。
【００９７】
また、ステップＳ９において、候補ベクトルとして残っている１以上のベクトルにおいて、最も数が多いベクトルが１つだけ存在すると判定された場合、すなわち、絞り込み処理の結果、注目ブロックの周囲の８つの方向について候補ベクトルとして残ったベクトルが１つである場合、または、絞り込み処理の結果、注目ブロックの周囲の８つの方向について候補ベクトルとして残ったベクトルが複数あり、その複数のベクトルにおいて、最も数が多いベクトルが、１種類だけ存在する場合、処理はステップＳ５に進み、上述したように、動きベクトル決定部１５は、その最も数が多いベクトルを、注目ブロックの動きベクトルに決定し、その動きベクトルを、注目ブロックの動き情報として出力して、動き検出処理は終了する。
【００９８】
次に、図７のフローチャートを参照して、図６のステップＳ７で図２の候補ベクトル絞り込み部１４が行う絞り込み処理について説明する。
【００９９】
ステップＳ３１において、候補ベクトル絞り込み部１４のブロック選択部１４Ａは、注目ブロックの周囲の８の方向の中でまだ注目方向としていない方向があるかを判定する。ステップＳ３１において、まだ注目方向としていない方向があると判定された場合、ブロック選択部１４Ａは、まだ注目方向としていない方向のうちの１つを注目方向として、処理はステップＳ３２に進み、以下、候補ベクトル絞り込み部１４では、注目方向について候補ベクトル検出処理が行われる。
【０１００】
すなわち、ステップＳ３２において、ブロック選択部１４Ａは、注目ブロックを、評価値計算用ブロックにセットし、処理はステップＳ３３に進む。
【０１０１】
ステップＳ３３において、ブロック選択部１４Ａは、現在の評価値計算用ブロックの、注目方向に隣接するブロックを、新たな評価値計算用ブロックにセットする。したがって、注目方向について、最初に行われるステップＳ３３では、注目ブロックの、注目方向に隣接するブロックが、評価値計算用ブロックにセットされる。
【０１０２】
その後、処理はステップＳ３３からステップＳ３４に進み、評価値テーブル形成部１４Ｂは、評価値計算用ブロックが、現在フレームの画枠内にあるかを判定する。ステップＳ３４において、評価値計算用ブロックが現在フレームの画枠内にあると判定された場合、処理はステップＳ３５に進み、評価値テーブル形成部１４Ｂは、評価値計算用ブロックに対する候補ベクトルの候補評価値としてのSAD、すなわち、評価値計算用ブロックが注目ブロックであるとしたならば、評価値テーブル形成部１１が、その注目ブロックに対して求める評価値としてのSADを、候補ベクトル抽出部１３からの複数の候補ベクトルのうちの、絞り込みにより除外されずに残っているものについて計算する。
【０１０３】
さらに、ステップＳ３５では、評価値テーブル形成部１４Ｂは、候補ベクトルの候補評価値としてのSADと、候補ベクトルとを対応付けた候補ベクトル用評価値テーブルを作成し、絞り込み部１４Ｄに供給して、処理はステップＳ３６に進む。
【０１０４】
ステップＳ３６において、閾値計算部１４Ｃは、評価値計算用ブロックが注目ブロックであるとしたならば、閾値計算部１２が求める８つの動きマージンを計算し、その８つの動きマージンのうちの、例えば、最大値を、候補ベクトル用評価値テーブルの候補評価値としてのSADを評価するための候補評価値用閾値として決定し、絞り込み部１４Ｄに供給する。そして、処理はステップＳ３６からステップＳ３７に進む。
【０１０５】
ここで、候補評価値用閾値としては、８つの動きマージンのうちの最大値の他、最小値や平均値等を採用することが可能である。
【０１０６】
ステップＳ３７において、絞り込み部１４Ｄは、評価値テーブル形成部１４Ｂからの候補ベクトル用評価値テーブルの候補評価値としてのSADと、閾値計算部１４Ｃからの候補評価値用閾値とを比較し、候補評価値としてのSADが候補評価値用閾値より大の候補ベクトルを、候補ベクトルから除外することにより、候補ベクトルを、候補評価値としてのSADが候補評価値用閾値以下のベクトルに絞り込み、処理はステップＳ３８に進む。
【０１０７】
ステップＳ３８において、絞り込み部１４Ｄは、ステップＳ３７での絞り込みによって残った候補ベクトルの数が１であるかを判定する。ステップＳ３８において、ステップＳ３７での絞り込みによって残った候補ベクトルの数が１であると判定された場合、処理はステップＳ３９に進み、絞り込み部１４Ｄは、ステップＳ３７での絞り込みによって残った１つの候補ベクトルを、注目方向について残った候補ベクトルとして、動きベクトル決定部１５に供給する。そして、処理はステップＳ３９からステップＳ３１に戻り、以下、同様の処理が繰り返される。
【０１０８】
一方、ステップＳ３４において、評価値計算用ブロックが現在フレームの画枠内にないと判定された場合、処理はステップＳ４０に進み、絞り込み部１４Ｄは、注目方向について残った候補ベクトルの数が０である旨の情報を、動きベクトル決定部１５に供給する。そして、処理はステップＳ４０からステップＳ３１に戻り、以下、同様の処理が繰り返される。
【０１０９】
また、ステップＳ３８において、ステップＳ３７での絞り込みによって残った候補ベクトルの数が１でないと判定された場合、処理はステップＳ４１に進み、絞り込み部１４Ｄは、ステップＳ３７での絞り込みによって残った候補ベクトルの数が０であるかを判定する。ステップＳ４１において、ステップＳ３７での絞り込みによって残った候補ベクトルの数が０であると判定された場合、処理はステップＳ４２に進み、絞り込み部１４Ｄは、注目方向について残った候補ベクトルの数が０である旨の情報を、動きベクトル決定部１５に供給する。そして、処理はステップＳ４２からステップＳ３１に戻り、以下、同様の処理が繰り返される。
【０１１０】
一方、ステップＳ４１において、ステップＳ３７での絞り込みによって残った候補ベクトルの数が０でないと判定された場合、つまり、ステップＳ３７での絞り込みによって残った候補ベクトルの数が２以上である場合、処理はステップＳ３３に戻り、ブロック選択部１４Ａは、現在の評価値計算用ブロックの、注目方向に隣接するブロックを、新たな評価値計算用ブロックにセットし、以下、注目方向について、候補ベクトルが１以下に絞り込まれるまで、同様の処理が繰り返される。
【０１１１】
そして、ステップＳ３１において、まだ注目方向としていない方向がないと判定された場合、すなわち、注目ブロックの周囲の８つの方向すべてについて、候補ベクトルが１以下に絞り込まれた場合、絞り込み処理は終了する。
【０１１２】
次に、図８のフローチャートを参照して、図６のステップＳ７で図２の候補ベクトル絞り込み部１４が行う絞り込み処理の他の例について説明する。
【０１１３】
ここで、図７の絞り込み処理では、８つの動きマージンのうちの最大値を候補評価値用閾値として用いたが、図８の絞り込み処理では、８つの動きマージンのうちの最大値と最小値とが、適応的に、候補評価値用閾値として用いられるようになっている。
【０１１４】
すなわち、図７の絞り込み処理では、８つの動きマージンのうちの最大値を候補評価値用閾値として、その候補評価値より大の候補評価値の候補ベクトルを除外することにより、候補ベクトルを絞り込むようにしたが、図８の絞り込み処理では、まず、８つの動きマージンのうちの最小値を候補評価値用閾値として、その候補評価値用閾値より大の候補評価値の候補ベクトルを除外することにより、候補ベクトルを絞り込み、その絞り込みによって、候補ベクトルが残らなかった場合には、８つの動きマージンのうちの最大値を候補評価値用閾値として、候補ベクトルの絞り込みを行うようになっている。
【０１１５】
ステップＳ６１において、候補ベクトル絞り込み部１４のブロック選択部１４Ａは、図７のステップＳ３１と同様に、注目ブロックの周囲の８の方向のうちのまだ注目方向としていない方向があるかを判定し、まだ注目方向としていない方向があると判定した場合、まだ注目方向としていない方向のうちの１つを注目方向とし、処理はステップＳ６２に進む。
【０１１６】
ステップＳ６２において、ブロック選択部１４Ａは、図７のステップＳ３２と同様に、注目ブロックを、評価値計算用ブロックにセットして、処理はステップＳ６３に進み、図７のステップＳ３３と同様に、現在の評価値計算用ブロックの、注目方向に隣接するブロックを、新たな評価値計算用ブロックにセットして、処理はステップＳ６４に進む。
【０１１７】
ステップＳ６４において、評価値テーブル形成部１４Ｂは、図７のステップＳ３４と同様に、評価値計算用ブロックが、現在フレームの画枠内にあるかを判定し、あると判定した場合、処理はステップＳ６５に進み、図７のステップＳ３５と同様に、評価値計算用ブロックに対する候補ベクトルの候補評価値としてのSADを、候補ベクトル抽出部１３からの複数の候補ベクトルのうちの、絞り込みにより除外されずに残っているものについて計算し、その候補評価値としてのSADと、候補ベクトルとを対応付けた候補ベクトル用評価値テーブルを作成して、絞り込み部１４Ｄに供給する。そして、処理はステップＳ６５からステップＳ６６に進む。
【０１１８】
ステップＳ６６において、閾値計算部１４Ｃは、評価値計算用ブロックが注目ブロックであるとしたならば、閾値計算部１２が求める８つの動きマージンを計算し、その８つの動きマージンのうちの、例えば、最小値を、候補ベクトル用評価値テーブルの候補評価値としてのSADを評価するための候補評価値用閾値として決定し、絞り込み部１４Ｄに供給する。そして、処理はステップＳ６６からステップＳ６７に進む。
【０１１９】
ステップＳ６７において、絞り込み部１４Ｄは、評価値テーブル形成部１４Ｂからの候補ベクトル用評価値テーブルの候補評価値としてのSADと、閾値計算部１４Ｃからの候補評価値用閾値とを比較し、候補評価値としてのSADが候補評価値用閾値より大の候補ベクトルを、候補ベクトルから除外することにより、候補ベクトルを、候補評価値用閾値としての、８つの動きマージンのうちの最小値以下の候補評価値のベクトルに絞り込み、処理はステップＳ６８に進む。
【０１２０】
ステップＳ６８において、絞り込み部１４Ｄは、ステップＳ６７での絞り込みによって残った候補ベクトルの数が１であるかを判定する。ステップＳ６８において、ステップＳ６７での絞り込みによって残った候補ベクトルの数が１であると判定された場合、処理はステップＳ６９に進み、絞り込み部１４Ｄは、ステップＳ６７での絞り込みによって残った１つの候補ベクトルを、注目方向について残った候補ベクトルとして、動きベクトル決定部１５供給する。そして、処理はステップＳ６９からステップＳ６１に戻り、以下、同様の処理が繰り返される。
【０１２１】
一方、ステップＳ６４において、評価値計算用ブロックが現在フレームの画枠内にないと判定された場合、処理はステップＳ７０に進み、絞り込み部１４Ｄは、図７のステップＳ４０と同様に、注目方向についての候補ベクトルの数が０である旨の情報を、動きベクトル決定部１５に供給する。そして、処理はステップＳ６１に戻り、以下、同様の処理が繰り返される。
【０１２２】
また、ステップＳ６８において、ステップＳ６７での絞り込みによって残った候補ベクトルの数が１でないと判定された場合、処理はステップＳ７１に進み、絞り込み部１４Ｄは、ステップＳ６７での絞り込みによって残った候補ベクトルの数が０であるかを判定する。
【０１２３】
ステップＳ７１において、ステップＳ６７での絞り込みによって残った候補ベクトルの数が０であると判定された場合、すなわち、候補評価値用閾値を、ステップＳ６６で求めた８つの動きマージンのうちの最小値として、候補ベクトルを、その候補評価値用閾値以下の候補評価値のベクトルに絞り込むと、候補ベクトルが残らなくなる場合、処理はステップＳ７２に進み、絞り込み部１４Ｄは、候補評価値用閾値を、ステップＳ６６で求めた８つの動きマージンのうちの最小値から最大値に変更する。
【０１２４】
さらに、ステップＳ７２では、絞り込み部１４Ｄは、直前のステップＳ６７で絞り込みの対象とした候補ベクトルを、再度絞り込みの対象として、候補ベクトルを、変更後の候補評価値用閾値以下の候補評価値のベクトルに絞り込み、処理はステップＳ７３に進む。
【０１２５】
ステップＳ７３において、絞り込み部１４Ｄは、ステップＳ７２での絞り込みによって残った候補ベクトルの数が１であるかを判定する。ステップＳ７３において、ステップＳ７２で残った候補ベクトルの数が１であると判定された場合、処理はステップＳ６９に進み、上述したように、絞り込み部１４Ｄは、ステップＳ７２での絞り込みによって残った１つの候補ベクトルを、注目方向について残った候補ベクトルとして、動きベクトル決定部１５に供給する。そして、処理はステップＳ６９からステップＳ６１に戻り、以下、同様の処理が繰り返される。
【０１２６】
一方、ステップＳ７３において、ステップＳ７２での絞り込みによって残った候補ベクトルの数が１でないと判定された場合、処理はステップＳ７４に進み、絞り込み部１４Ｄは、ステップＳ７２での絞り込みによって残った候補ベクトルの数が０であるかを判定する。ステップＳ７４において、ステップＳ７２での絞り込みによって残った候補ベクトルの数が０であると判定された場合、処理はステップＳ７５に進み、絞り込み部１４Ｄは、注目方向について残った候補ベクトルの数が０である旨の情報を、動きベクトル決定部１５に供給する。そして、処理はステップＳ７５からステップＳ６１に戻り、以下、同様の処理が繰り返される。
【０１２７】
一方、ステップＳ７４において、ステップＳ７２での絞り込みによって残った候補ベクトルの数が０でないと判定された場合、つまり、ステップＳ７２での絞り込みによって残った候補ベクトルの数が２以上である場合、処理はステップＳ６３に戻り、ブロック選択部１４Ａは、現在の評価値計算用ブロックの、注目方向に隣接するブロックを、新たな評価値計算用ブロックにセットし、以下、注目方向について、候補ベクトルが１以下に絞り込まれるまで、同様の処理が繰り返される。
【０１２８】
そして、ステップＳ６１において、まだ注目方向としていない方向がないと判定された場合、絞り込み処理は終了する。
【０１２９】
次に、図９乃至１１を参照して、図２の動き検出装置１による動き検出処理のシミュレーションの結果について説明する。
【０１３０】
シミュレーションでは、横×縦が640×480画素の画像を、8×8画素のブロックに分割し、そのうちの１つのブロックを注目ブロックとして、動き検出処理を行った。また、注目ブロックの、例えば、左上の画素等の所定の画素を代表画素として、その代表画素を中心とする30×30画素の領域を、サーチエリアとして採用した。したがって、動きベクトルは、x座標及びy座標が、いずれも、−15から＋15までの範囲の値で表されるベクトルである。
【０１３１】
また、評価値としては、SADを採用した。
【０１３２】
図９は、動き検出処理の対象とした画像を示している。
【０１３３】
動き検出処理の対象とした画像は、あるコンテンツの先頭から58番目のフレーム#58の画像であり、おもちゃの飛行機が左から右に移動している状態が映っている。。
【０１３４】
シミュレーションでは、図１１の画像の、左上の画素を原点として、左から右方向をx軸とするとともに、上から下方向をy軸とする座標系において、座標(296，321)の画素を代表画素とするブロックを、注目ブロックとした。
【０１３５】
注目ブロックについて、評価値用閾値は、1901となり、この評価値用閾値を用いて候補ベクトルの選択を行うと、２６の評価対象ベクトルが、候補ベクトルとして選択された。
【０１３６】
図１０は、シミュレーションにおいて候補ベクトルとして選択された２６の評価対象ベクトルのうちの、２つの評価対象ベクトルを示している。
【０１３７】
ここで、候補ベクトルとしての２６の評価対象ベクトルをSADが小さい順に、ベクトルv#1，v#2，…，v#26と表すこととすると、図１０は、ベクトルv#1とv#2とを示している。
【０１３８】
ベクトルv#1は、ベクトル(-15, 1)であり、ベクトルv#2は、ベクトル(11, 0)であった。また、v#1とv#2のSADはそれぞれ、512と541であった。
【０１３９】
注目ブロックの動きベクトルとしては、ベクトルv#2が正解であるが、SADは、v#2よりもv#1の方が小さい。したがって、ブロックマッチングでは、SADが最小ではあるが、正解ではないベクトルv#1が、動きベクトルとして検出されることになる。
【０１４０】
一方、動き検出装置１による動き検出処理では、ベクトルv#1とベクトルv#2のSADは、いずれも評価値用閾値以下であるので、ベクトルv#1とベクトルv#2のいずれもが候補ベクトルとして選択される。上述したように、シミュレーションでは、v#1とv#2を含む２６のベクトルv#1乃至v#26が、候補ベクトルとして選択された。
【０１４１】
図１１は、シミュレーションでの、候補ベクトルを絞り込む絞り込み処理の様子を示している。
【０１４２】
絞り込み処理では、注目ブロックの周囲の８方向、すなわち、左上、上、右上、左、右、左下、下、右下の方向それぞれに対して、順に、候補ベクトルが絞り込まれる。
【０１４３】
すなわち、絞り込み処理では、左上の方向が注目方向とされ、さらに、注目ブロックが、評価値計算用ブロックにセットされる。また、現在の評価値計算用ブロックである注目ブロックの、注目方向に隣接するブロック#1が、新たな評価値計算用ブロックにセットされる。
【０１４４】
そして、評価値計算用ブロックであるブロック#1に対する候補ベクトルとしてのベクトルv#1乃至v#26の候補評価値としてのSADと、候補評価値を評価するための候補評価値用閾値が計算される。
【０１４５】
シミュレーションでは、候補評価値用閾値は、102となり、ベクトルv#1乃至v#26の候補評価値を、候補評価値用閾値と比較することにより、候補ベクトルが、SADが70のベクトルv#2であるベクトル(11,0)に絞り込まれた。
【０１４６】
候補ベクトルの数が１以下に絞り込まれたので、このベクトルv#2が、注目方向としての左上の方向についての絞り込みにより残った候補ベクトルとなる。
【０１４７】
その後、絞り込み処理では、上の方向が注目方向とされ、さらに、注目ブロックが、評価値計算用ブロックにセットされる。また、現在の評価値計算用ブロックの、注目方向に隣接するブロック#２が、新たな評価値計算用ブロックにセットされる。
【０１４８】
そして、評価値計算用ブロックであるブロック#２に対する候補ベクトルとしてのベクトルv#1乃至v#26の候補評価値としてのSADと、候補評価値を評価するための候補評価値用閾値が計算される。
【０１４９】
シミュレーションでは、候補評価値用閾値は、305となり、ベクトルv#1乃至v#26の候補評価値を、候補評価値用閾値と比較することにより、候補ベクトルが、SADが232のベクトルv#m(mは3乃至26のうちのある数)であるベクトル(10,0)に絞り込まれた。
【０１５０】
候補ベクトルの数が１以下に絞り込まれたので、このベクトルv#mが、注目方向としての上の方向についての絞り込みにより残った候補ベクトルとなる。
【０１５１】
その後、絞り込み処理では、右上の方向が注目方向とされ、さらに、注目ブロックが、評価値計算用ブロックにセットされる。また、現在の評価値計算用ブロックの、注目方向に隣接するブロック#３が、新たな評価値計算用ブロックにセットされる。
【０１５２】
そして、評価値計算用ブロックであるブロック#３に対する候補ベクトルとしてのベクトルv#1乃至v#26の候補評価値としてのSADと、候補評価値を評価するための候補評価値用閾値が計算される。
【０１５３】
シミュレーションでは、候補評価値用閾値は、243となり、ベクトルv#1乃至v#26の候補評価値を、候補評価値用閾値と比較することにより、候補ベクトルが、SADが187のベクトルv#mであるベクトル(10,0)に絞り込まれた。
【０１５４】
候補ベクトルの数が１以下に絞り込まれたので、このベクトルv#mが、注目方向としての右上の方向についての絞り込みにより残った候補ベクトルとなる。
【０１５５】
その後、絞り込み処理では、左の方向が注目方向とされ、さらに、注目ブロックが、評価値計算用ブロックにセットされる。また、現在の評価値計算用ブロックの、注目方向に隣接するブロック#４が、新たな評価値計算用ブロックにセットされる。
【０１５６】
そして、評価値計算用ブロックであるブロック#４に対する候補ベクトルとしてのベクトルv#1乃至v#26の候補評価値としてのSADと、候補評価値を評価するための候補評価値用閾値が計算される。
【０１５７】
シミュレーションでは、候補評価値用閾値は、771となり、ベクトルv#1乃至v#26の候補評価値を、候補評価値用閾値と比較することにより、候補ベクトルが絞り込まれ、絞り込みによって残った候補ベクトルは、１０個となった。
【０１５８】
候補ベクトルの数が１以下に絞り込まれていないので、絞り込み処理では、現在の評価値計算用ブロックであるブロック#４の、注目方向である左の方向に隣接するブロック#５が、新たな評価値計算用ブロックにセットされる。
【０１５９】
そして、評価値計算用ブロックであるブロック#５に対する候補ベクトルとしてのベクトルv#1乃至v#26のうちの絞り込みによって残った１０個のベクトルの候補評価値としてのSADと、候補評価値を評価するための候補評価値用閾値が計算される。
【０１６０】
シミュレーションでは、候補評価値用閾値は、1445となり、ベクトルv#1乃至v#26のうちの絞り込みによって残っている１０個のベクトルの候補評価値を、候補評価値用閾値と比較することにより、候補ベクトルが絞り込まれ、絞り込みによって残った候補ベクトルは、１０個となった。
【０１６１】
候補ベクトルの数が１以下に絞り込まれていないので、絞り込み処理では、現在の評価値計算用ブロックであるブロック#５の、注目方向である左の方向に隣接するブロック#６が、新たな評価値計算用ブロックにセットされる。
【０１６２】
そして、評価値計算用ブロックであるブロック#６に対する候補ベクトルとしてのベクトルv#1乃至v#26のうちの絞り込みによって残っている１０個のベクトルの候補評価値としてのSADと、候補評価値を評価するための候補評価値用閾値が計算される。
【０１６３】
シミュレーションでは、候補評価値用閾値は、640となり、ベクトルv#1乃至v#26のうちの絞り込みによって残っている１０個のベクトルの候補評価値を、候補評価値用閾値と比較することにより、候補ベクトルが、SADが536のベクトルv#2であるベクトル(11,0)に絞り込まれた。
【０１６４】
候補ベクトルの数が１以下に絞り込まれたので、このベクトルv#2が、注目方向としての左の方向についての絞り込みにより残った候補ベクトルとなる。
【０１６５】
その後、絞り込み処理では、右の方向が注目方向とされ、さらに、注目ブロックが、評価値計算用ブロックにセットされる。また、現在の評価値計算用ブロックの、注目方向に隣接するブロック#７が、新たな評価値計算用ブロックにセットされる。
【０１６６】
そして、評価値計算用ブロックであるブロック#７に対する候補ベクトルとしてのベクトルv#1乃至v#26の候補評価値としてのSADと、候補評価値を評価するための候補評価値用閾値が計算される。
【０１６７】
シミュレーションでは、候補評価値用閾値は、573となり、ベクトルv#1乃至v#26の候補評価値を、候補評価値用閾値と比較することにより、候補ベクトルが、SADが549のベクトルv#2であるベクトル(11,0)に絞り込まれた。
【０１６８】
候補ベクトルの数が１以下に絞り込まれたので、このベクトルv#2が、注目方向としての右の方向についての絞り込みにより残った候補ベクトルとなる。
【０１６９】
その後、絞り込み処理では、左下の方向が注目方向とされ、さらに、注目ブロックが、評価値計算用ブロックにセットされる。また、現在の評価値計算用ブロックの、注目方向に隣接するブロック#８が、新たな評価値計算用ブロックにセットされる。
【０１７０】
そして、評価値計算用ブロックであるブロック#８に対する候補ベクトルとしてのベクトルv#1乃至v#26の候補評価値としてのSADと、候補評価値を評価するための候補評価値用閾値が計算される。
【０１７１】
シミュレーションでは、候補評価値用閾値は、81となり、ベクトルv#1乃至v#26の候補評価値を、候補評価値用閾値と比較することにより、候補ベクトルが絞り込まれ、絞り込みによって残った候補ベクトルは、１２個となった。
【０１７２】
候補ベクトルの数が１以下に絞り込まれていないので、絞り込み処理では、現在の評価値計算用ブロックであるブロック#８の、注目方向である左下の方向に隣接するブロック#９が、新たな評価値計算用ブロックにセットされる。
【０１７３】
そして、評価値計算用ブロックであるブロック#９に対する候補ベクトルとしてのベクトルv#1乃至v#26のうちの絞り込みによって残った１２個のベクトルの候補評価値としてのSADと、候補評価値を評価するための候補評価値用閾値が計算される。
【０１７４】
シミュレーションでは、候補評価値用閾値は、81となり、ベクトルv#1乃至v#26のうちの絞り込みによって残っている１２個のベクトルの候補評価値を、候補評価値用閾値と比較することにより、候補ベクトルが、SADが51のベクトルv#2であるベクトル(11,0)に絞り込まれた。
【０１７５】
候補ベクトルの数が１以下に絞り込まれたので、このベクトルv#2が、注目方向としての左下の方向についての絞り込みにより残った候補ベクトルとなる。
【０１７６】
その後、絞り込み処理では、下の方向が注目方向とされ、さらに、注目ブロックが、評価値計算用ブロックにセットされる。また、現在の評価値計算用ブロックの、注目方向に隣接するブロック#１０が、新たな評価値計算用ブロックにセットされる。
【０１７７】
そして、評価値計算用ブロックであるブロック#１０に対する候補ベクトルとしてのベクトルv#1乃至v#26の候補評価値としてのSADと、候補評価値を評価するための候補評価値用閾値が計算される。
【０１７８】
シミュレーションでは、候補評価値用閾値は、79となり、ベクトルv#1乃至v#26の候補評価値を、候補評価値用閾値と比較することにより、候補ベクトルが絞り込まれ、絞り込みによって残った候補ベクトルは、７個となった。
【０１７９】
候補ベクトルの数が１以下に絞り込まれていないので、絞り込み処理では、現在の評価値計算用ブロックであるブロック#１０の、注目方向である下の方向に隣接するブロック#１１が、新たな評価値計算用ブロックにセットされる。
【０１８０】
そして、評価値計算用ブロックであるブロック#１１に対する候補ベクトルとしてのベクトルv#1乃至v#26のうちの絞り込みによって残った７個のベクトルの候補評価値としてのSADと、候補評価値を評価するための候補評価値用閾値が計算される。
【０１８１】
シミュレーションでは、候補評価値用閾値は、233となり、ベクトルv#1乃至v#26のうちの絞り込みによって残っている７個のベクトルの候補評価値を、候補評価値用閾値と比較することにより、候補ベクトルが、SADが56のベクトルv#2であるベクトル(11,0)に絞り込まれた。
【０１８２】
候補ベクトルの数が１以下に絞り込まれたので、このベクトルv#2が、注目方向としての下の方向についての絞り込みにより残った候補ベクトルとなる。
【０１８３】
その後、絞り込み処理では、右下の方向が注目方向とされ、さらに、注目ブロックが、評価値計算用ブロックにセットされる。また、現在の評価値計算用ブロックの、注目方向に隣接するブロック#１２が、新たな評価値計算用ブロックにセットされる。
【０１８４】
そして、評価値計算用ブロックであるブロック#１２に対する候補ベクトルとしてのベクトルv#1乃至v#26の候補評価値としてのSADと、候補評価値を評価するための候補評価値用閾値が計算される。
【０１８５】
シミュレーションでは、候補評価値用閾値は、233となり、ベクトルv#1乃至v#26の候補評価値を、候補評価値用閾値と比較することにより、候補ベクトルが絞り込まれ、絞り込みによって残った候補ベクトルは、１０個となった。
【０１８６】
候補ベクトルの数が１以下に絞り込まれていないので、絞り込み処理では、現在の評価値計算用ブロックであるブロック#１２の、注目方向である右下の方向に隣接するブロック#１３が、新たな評価値計算用ブロックにセットされる。
【０１８７】
そして、評価値計算用ブロックであるブロック#１３に対する候補ベクトルとしてのベクトルv#1乃至v#26のうちの絞り込みによって残った１０個のベクトルの候補評価値としてのSADと、候補評価値を評価するための候補評価値用閾値が計算される。
【０１８８】
シミュレーションでは、候補評価値用閾値は、233となり、ベクトルv#1乃至v#26のうちの絞り込みによって残っている１０個のベクトルの候補評価値を、候補評価値用閾値と比較することにより、候補ベクトルが、SADが68のベクトルv#2であるベクトル(11,0)に絞り込まれた。
【０１８９】
候補ベクトルの数が１以下に絞り込まれたので、このベクトルv#2が、注目方向としての右下の方向についての絞り込みにより残った候補ベクトルとなる。
【０１９０】
以上のように、８の方向のすべてを注目方向として、候補ベクトルの絞り込みが終了すると、その絞り込みによって残った候補ベクトルのうちの、最も数が多いベクトルが動きベクトルに決定される。
【０１９１】
図１１では、６方向について残った６個のベクトルv#2と２方向について残った２個のベクトルv#mが、候補ベクトルとして残るので、最も数が多いベクトルv#2が、動きベクトルに決定される。
【０１９２】
以上のように、動き検出装置１による動き検出処理によれば、ブロックマッチングでは、ベクトルv#1が、動きベクトルとして誤検出される場合であっても、正解の動きベクトルであるベクトルv#2を検出することができ、間違った動きベクトルの検出を防止することができる。
【０１９３】
さらに、注目ブロックを中心として、その注目ブロックから、いわば放射状に、評価値計算用ブロックを移動（シフト）していき、その評価値計算用ブロックに対する候補ベクトルの評価値を再計算した値としての候補評価値に基づき、候補ベクトルを絞り込んでいく絞り込み処理により、本質的に局所部分では、正解の動きベクトルを検出することが困難な細かい絵柄や繰り返しがある部分、平坦な部分等についても、正解の動きベクトルを検出することが可能となる。
【０１９４】
なお、本実施の形態では、評価対象ベクトルの評価値として、注目ブロックと、注目ブロックから評価対象ベクトルだけ移動した位置の、未来フレームの領域（移動後領域）との間のSADを用いたが、評価値としては、その他、例えば、注目ブロックと移動後領域との同一位置の画素の画素値の差分値の絶対値を２値化して総和をとった値や、注目ブロックと移動後領域との同一位置の画素の画素値の差分値の自乗和、注目ブロックと移動後領域との相関などの、注目ブロックと移動後領域との類似性、あるいは、現在フレームの注目ブロックが、未来フレームの移動後領域に移動したことの確からしさを現す値を採用することができる。
【０１９５】
また、動きマージンは、現在フレームの注目ブロックと、現在フレームの注目ブロックから１画素だけ移動した領域との間のSADに限定されるものではない。
【０１９６】
すなわち、例えば、図１２に示すように、注目ブロックの各画素について、その画素と、その画素に隣接する８画素それぞれとの画素値の差分値の絶対値である差分絶対値を求め、その差分絶対値の最大値の総和である第１の値と、最小値の総和である第２の値とを、動きマージンとして採用することができる。なお、第１と第２の値は、それぞれ、現在フレームの注目ブロックと、現在フレームの注目ブロックから１画素だけ移動した領域との間のSADとして求められる動きマージンの最大値と最小値に等価である。
【０１９７】
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
【０１９８】
図１３は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
【０１９９】
コンピュータにおいて、CPU（Central Processing Unit）３１，ROM（Read Only Memory）３２，RAM（Random Access Memory）３３は、バス３４により相互に接続されている。
【０２００】
バス３４には、さらに、入出力インターフェース３５が接続されている。入出力インターフェース３５には、キーボード、マウス、マイクロホンなどよりなる入力部３６、ディスプレイ、スピーカなどよりなる出力部３７、ハードディスクや不揮発性のメモリなどよりなる記憶部３８、ネットワークインタフェースなどよりなる通信部３９、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア４１を駆動するドライブ４０が接続されている。
【０２０１】
以上のように構成されるコンピュータでは、CPU３１が、例えば、記憶部３８に記憶されているプログラムを、入出力インタフェース３５及びバス３４を介して、RAM３３にロードして実行することにより、上述した一連の処理が行われる。
【０２０２】
コンピュータ（CPU３１）が実行するプログラムは、例えば、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)等）、光磁気ディスク、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア３１に記録して、あるいは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供される。
【０２０３】
そして、プログラムは、リムーバブルメディア３１をドライブ４０に装着することにより、入出力インタフェース３５を介して、記憶部３８にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部３９で受信し、記憶部３８にインストールすることができる。その他、プログラムは、ROM３２や記憶部３８に、あらかじめインストールしておくことができる。
【０２０４】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０２０５】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０２０６】
【図１】ブロックマッチングで求められる評価値としてのSADを示す図である。
【図２】本発明を適用した動き検出装置の一実施の形態の構成例を示すブロック図である。
【図３】動きマージンの計算を説明する図である。
【図４】候補ベクトル抽出部１３の処理を説明する図である。
【図５】絞り込み処理を説明する図である。
【図６】動き検出装置１による動き検出処理を説明するフローチャートである。
【図７】図６のステップＳ７で候補ベクトル絞り込み部１４が行う絞り込み処理を説明するフローチャートである。
【図８】図６のステップＳ７で候補ベクトル絞り込み部１４が行う絞り込み処理の他の例を説明するフローチャートである。
【図９】動き検出処理のシミュレーションの対象とした画像を示す図である。
【図１０】シミュレーションにおいて候補ベクトルとして選択された評価対象ベクトルを示す図である。
【図１１】シミュレーションでの絞り込み処理を説明する図である。
【図１２】動きマージンの計算を説明する図である。
【図１３】本発明を適用したコンピュータのハードウェアの構成例を示すブロック図である。
【符号の説明】
【０２０７】
１  動き検出装置，  １１  評価値テーブル形成部，  １２  閾値計算部，  １３  候補ベクトル抽出部，  １４  候補ベクトル絞り込み部，  １４Ａ  ブロック選択部，  １４Ｂ  評価値テーブル形成部，  １４Ｃ  閾値計算部，  １４Ｄ  絞り込み部，  １５  動きベクトル決定部，  ３１  ＣＰＵ，  ３２  ＲＯＭ，  ３３  ＲＡＭ，  ３４  バス，  ３５  入出力インタフェース，  ３６  入力部，  ３７  出力部，  ３８  記憶部，  ３９  通信部，  ４０  ドライブ，  ４１  リムーバブルメディア
【図１】
2008171247.tif 000003
【図２】
2008171247.tif 000004
【図３】
2008171247.tif 000005
【図４】
2008171247.tif 000006
【図５】
2008171247.tif 000007
【図６】
2008171247.tif 000008
【図７】
2008171247.tif 000009
【図８】
2008171247.tif 000010
【図９】
2008171247.tif 000011
【図１０】
2008171247.tif 000012
【図１１】
2008171247.tif 000013
【図１２】
2008171247.tif 000014
【図１３】
2008171247.tif 000015