(57)【要約】      （修正有）【課題】動きベクトル算出に必要な特性（特徴量）を損なうことなく、ノイズ成分のみ除去（軽減）が可能な平滑化手段を有する動きベクトル検出装置を提供する。【解決手段】垂直方向ブロック射影データ平滑化部における平滑化処理においては、例えば、Ｐａ、Ｐｂ、Ｐｃという水平方向に連続する３点の配列要素を使って説明すると、射影データの変動パターンが「下に凸で、ａ＞０、ｂ≧０、ｃ＞０」の場合、中心の点Ｐｂの値ｂを値ａと値ｃとの平均値に変更することで、下に凸となった形状を解消する。【選択図】図１６
2008176590.tif 000002
【特許請求の範囲】
【請求項１】
時系列的に前後の関係となる前フレームと後フレームとに関するフレーム画像間の動きベクトルを検出する動きベクトル検出装置であって、
水平ラインの画素走査を垂直方向に順に繰り返すことによって読み出されるフレーム画像に関して、前記フレーム画像における所定の画像領域について垂直方向のエッジを強調するエッジ強調手段と、
前記エッジ強調手段でエッジが強調された画像について垂直方向に射影をとり、１水平ライン分のデータ配列を有する射影データを生成する射影手段と、
前記射影データに重畳された変動ノイズを除去して平滑化射影データを得る平滑化手段と、
前記前フレームに対して前記平滑化射影データに関して、前記データ配列の要素順に配列要素の値をグラフ化した波形と、配列要素の値が所定の一定値となる直線とが交差する各交差点の配列要素の位置を特定する特定手段と、
前記各交差点の配列要素の位置を中心とした所定範囲のデータ配列を、前記後フレームに対して前記平滑化射影データから抽出する抽出手段と、
前記抽出手段で抽出された所定範囲のデータ配列それぞれについて、前記各交差点の配列要素の位置に対して相対位置が同じ配列要素同士の値を加算する加算手段と、
前記加算手段で加算された加算結果に基づき、前記フレーム画像の所定の画像領域についての水平方向動きベクトルを検出する検出手段と、を備える、動きベクトル検出装置。
【請求項２】
時系列的に前後の関係となる前フレームと後フレームとに関するフレーム画像間の動きベクトルを検出する動きベクトル検出装置であって、
水平ラインの画素走査を垂直方向に順に繰り返すことによって読み出されるフレーム画像に関して、前記フレーム画像における所定の画像領域について水平方向のエッジを強調するエッジ強調手段と、
前記エッジ強調手段でエッジが強調された画像について水平方向に射影をとり、１垂直ライン分のデータ配列を有する射影データを生成する射影手段と、
前記射影データに重畳された変動ノイズを除去して平滑化射影データを得る平滑化手段と、
前記前フレームに対して前記平滑化射影データに関して前記データ配列の要素順に配列要素の値をグラフ化した波形と、配列要素の値が所定の一定値となる直線とが交差する各交差点の配列要素の位置を特定する特定手段と、
前記各交差点の配列要素の位置を中心とした所定範囲のデータ配列を、前記後フレームに対して前記平滑化射影データから抽出する抽出手段と、
前記抽出手段で抽出された所定範囲のデータ配列それぞれについて、前記各交差点の配列要素の位置に対して相対位置が同じ配列要素同士の値を加算する加算手段と、
前記加算手段で加算された加算結果に基づき、前記フレーム画像の所定の画像領域についての垂直方向動きベクトルを検出する検出手段と、を備える、動きベクトル検出装置。
【請求項３】
前記前フレームに関する射影データの配列要素において最大値を求める最大値特定手段、をさらに備え、
前記所定の一定値は、前記最大値特定手段で求められた最大値に基づき設定される、請求項１または請求項２に記載の動きベクトル検出装置。
【請求項４】
前記抽出手段で抽出された所定範囲のデータ配列に関する各配列要素のデータ長を圧縮する圧縮手段、をさらに備え、
前記加算手段は、
前記圧縮手段によりデータ長が圧縮された所定範囲のデータ配列それぞれについて、前記各交差点の配列要素の位置に対して相対位置が同じ配列要素同士の値を加算する手段を有する  請求項１または請求項２に記載の動きベクトル検出装置。
【請求項５】
前記圧縮手段は、
前記抽出手段で抽出された所定範囲のデータ配列に関する各配列要素の値を３値化処理する手段を有し、
前記３値化処理では、前記後フレームの射影データ、ないしは、前記前フレームの射影データにおける配列要素の最大値に基づき設定される閾値Ｔｈ（Ｔｈ＞０）に関して、前記抽出手段で抽出された射影データに関する配列要素の値が、(−Ｔｈ)より小さい場合、(−Ｔｈ)以上でＴｈ以下の場合、およびＴｈより大きい場合の３段階による３値化が行われる、請求項４記載の動きベクトル検出装置。
【請求項６】
前記平滑化手段は、
前記射影データに関して前記データ配列の要素順に配列要素の値をグラフ化した波形について、連続する３個の配列要素に基づいて平滑化処理を実行し、
前記平滑化処理は、
前記３個の配列要素が何れも正の値であって、下に凸のパターンを形成する場合、中心の配列要素の値を、前後の配列要素の平均値に変更し、
前記３個の配列要素が何れも負の値であって、上に凸のパターンを形成する場合、前記中心の配列要素の値を、前記前後の配列要素の平均値に変更する処理を含む、請求項１または請求項２に記載の動きベクトル検出装置。
【請求項７】
前記平滑化処理は、
前記３個の配列要素が、正、零、正の値であって、下に凸のパターンを形成する場合、前記中心の配列要素の値を、前記前後の配列要素の平均値に変更し、
前記３個の配列要素が、負、零、負の値であって、上に凸のパターンを形成する場合、前記中心の配列要素の値を、前記前後の配列要素の平均値に変更する処理を含む、請求項１または請求項２に記載の動きベクトル検出装置。
【請求項８】
前記平滑化手段は、
前記射影データに関して前記データ配列の要素順に配列要素の値をグラフ化した波形について、連続する３個の配列要素に基づいて平滑化処理を実行し、
前記平滑化処理は、
前記３個の配列要素が、正、負、正の値であって、下に凸のパターンを形成する場合、前記中心の配列要素の値を、前記圧縮手段において、零に圧縮される値に変更し、
前記３個の配列要素が、負、正、負の値であって、上に凸のパターンを形成する場合、前記中心の配列要素の値を、前記圧縮手段において、零に圧縮される値に変更する処理を含む、請求項５に記載の動きベクトル検出装置。
【請求項９】
前記エッジ強調手段は、
前記フレーム画像を垂直方向に分割して得られる複数の画像領域を、前記所定の画像領域として設定する手段と、
前記複数の画像領域それぞれについて垂直方向のエッジを強調する手段と、を有する、請求項１記載の動きベクトル検出装置。
【請求項１０】
前記エッジ強調手段は、
前記フレーム画像について垂直方向のエッジを強調する強調手段と、
前記強調手段でエッジが強調されたフレーム画像を垂直方向に分割して得られる複数の画像領域を、前記所定の画像領域として設定する手段と、を有する、請求項１記載の動きベクトル検出装置。
【請求項１１】
前記エッジ強調手段は、
前記フレーム画像を水平方向に分割して得られる複数の画像領域を、前記所定の画像領域として設定する手段と、
前記複数の画像領域それぞれについて水平方向のエッジを強調する手段と、を有する、請求項２記載の動きベクトル検出装置。
【請求項１２】
前記エッジ強調手段は、
前記フレーム画像について水平方向のエッジを強調する強調手段と、
前記強調手段でエッジが強調されたフレーム画像を水平方向に分割して得られる複数の画像領域を、前記所定の画像領域として設定する手段と、を有する、請求項２記載の動きベクトル検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、時系列的に前後の関係となる前フレームと後フレームとに関するフレーム画像間の動きベクトルを検出する動きベクトル検出装置に関するものである。
【背景技術】
【０００２】
手振れ補正などに用いられるフレーム画像間の動きベクトル検出技術としては、特許文献１に記載されているように、時間的に連続する複数の画像毎の差分画像から、画素毎に周辺画素との画素値を比較し、方位毎に動きの方向を推定し、それらの動きベクトルの和の平均を計算することにより、画素毎の動きベクトルを計算し、局所的な動きベクトル（オプティカルフロー）を計算している。
【０００３】
このとき、画素毎に求められたオプティカルフローに対して、ノイズによる影響を削減（軽減）するために、周辺８画素を含む初期推定動きベクトルの和の平均を取るなどの平滑化処理がなされている。
【０００４】
また、あるいは、特許文献２では、特許文献１と同様の平滑化手法を射影データに対して適用し、入力画像を各部分領域に分け、複数の部分領域毎に算出した動きベクトルを使って、画像全体の動きベクトルを算出している。
【０００５】
また、一般的に、ノイズを除去する手法として、特許文献３の図２に記載されているような、（１／４、１／２、１／４）からなる３タップの低域通過フィルタが用いられることが多い。
【０００６】
【特許文献１】特開平１０−２４０９４５号公報
【特許文献２】特開２００２−６３５７８号公報
【特許文献３】特許第３３１４５５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
特許文献１および特許文献２に開示された平滑化手法では、算出した動きベクトルを周辺画素結果と平均をとることにより平滑化を行っており、動きベクトル算出に用いる元画像や、射影データそのものに対してはノイズ除去を行っていない。そのため、ノイズを含んだデータを用いて動きベクトルの算出処理を行っており、周辺画素にまでノイズの影響が及んでいる場合には、正確に動きベクトルを算出できないという問題がある。
【０００８】
また、特許文献３に開示された低域通過フィルタを用いた平滑化手法では、適用される元画像や射影データの高周波成分（特性）を著しく損なうため、動きベクトル算出に際して必要な特性（特徴量）まで無くしてしまう可能性がある。
【０００９】
本発明は上記のような問題点を解消するためになされたものであり、動きベクトル算出に必要な特性（特徴量）を損なうことなく、ノイズ成分のみ除去（軽減）が可能な平滑化手段を有する動きベクトル検出装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明に係る請求項１記載の動きベクトル検出装置は、時系列的に前後の関係となる前フレームと後フレームとに関するフレーム画像間の動きベクトルを検出する動きベクトル検出装置であって、水平ラインの画素走査を垂直方向に順に繰り返すことによって読み出されるフレーム画像に関して、前記フレーム画像における所定の画像領域について垂直方向のエッジを強調するエッジ強調手段と、前記エッジ強調手段でエッジが強調された画像について垂直方向に射影をとり、１水平ライン分のデータ配列を有する射影データを生成する射影手段と、前記射影データに重畳された変動ノイズを除去して平滑化射影データを得る平滑化手段と、前記前フレームに対して前記平滑化射影データに関して、前記データ配列の要素順に配列要素の値をグラフ化した波形と、配列要素の値が所定の一定値となる直線とが交差する各交差点の配列要素の位置を特定する特定手段と、前記各交差点の配列要素の位置を中心とした所定範囲のデータ配列を、前記後フレームに対して前記平滑化射影データから抽出する抽出手段と、前記抽出手段で抽出された所定範囲のデータ配列それぞれについて、前記各交差点の配列要素の位置に対して相対位置が同じ配列要素同士の値を加算する加算手段と、前記加算手段で加算された加算結果に基づき、前記フレーム画像の所定の画像領域についての水平方向動きベクトルを検出する検出手段と、を備えている。
【００１１】
本発明に係る請求項２記載の動きベクトル検出装置は、時系列的に前後の関係となる前フレームと後フレームとに関するフレーム画像間の動きベクトルを検出する動きベクトル検出装置であって、水平ラインの画素走査を垂直方向に順に繰り返すことによって読み出されるフレーム画像に関して、前記フレーム画像における所定の画像領域について水平方向のエッジを強調するエッジ強調手段と、前記エッジ強調手段でエッジが強調された画像について水平方向に射影をとり、１垂直ライン分のデータ配列を有する射影データを生成する射影手段と、前記射影データに重畳された変動ノイズを除去して平滑化射影データを得る平滑化手段と、前記前フレームに対して前記平滑化射影データに関して前記データ配列の要素順に配列要素の値をグラフ化した波形と、配列要素の値が所定の一定値となる直線とが交差する各交差点の配列要素の位置を特定する特定手段と、前記各交差点の配列要素の位置を中心とした所定範囲のデータ配列を、前記後フレームに対して前記平滑化射影データから抽出する抽出手段と、前記抽出手段で抽出された所定範囲のデータ配列それぞれについて、前記各交差点の配列要素の位置に対して相対位置が同じ配列要素同士の値を加算する加算手段と、前記加算手段で加算された加算結果に基づき、前記フレーム画像の所定の画像領域についての垂直方向動きベクトルを検出する検出手段と、を備えている。
【発明の効果】
【００１２】
本発明に係る請求項１記載の動きベクトル検出装置によれば、平滑化手段において、動きベクトル検出に必要な射影データの特性を損なうことなく、重畳された変動ノイズを除去するため、より正確な水平方向動きベクトル検出が可能となる。
【００１３】
本発明に係る請求項２記載の動きベクトル検出装置によれば、平滑化手段において、動きベクトル検出に必要な射影データの特性を損なうことなく、重畳された変動ノイズを除去するため、より正確な垂直方向動きベクトル検出が可能となる。
【発明を実施するための最良の形態】
【００１４】
＜実施の形態１＞
＜動きベクトル検出装置の構成＞
図１は、本発明の実施の形態１に係る動きベクトル検出装置１の要部構成を示すブロック図である。
【００１５】
動きベクトル検出装置１は、例えば動画像において画面内の被写体の動きを表す画像動きベクトルを検出するものであり、時系列的に前後の関係となる前フレームと後フレームとに関するフレーム画像間の動きベクトルが検出される。この動きベクトル検出装置１で検出された動きベクトルはビデオカメラの手振れ補正などに利用される。なお、動きベクトル検出装置１に入力されるフレーム画像は、図２に示すように水平方向の画素走査および垂直方向のライン走査を行うことによって読み出されるものとする。
【００１６】
動きベクトル検出装置１は、入力端子１１と、水平方向動きベクトル検出部２および垂直方向動きベクトル検出部４と、２つの出力端子１２、１３とを備えている。この水平方向動きベクトル検出部２および垂直方向動きベクトル検出部４については、その機能が例えばマイクロプロセッサによってソフトウェア的に実現されてもよく、また大半をハードウエア(一部をソフトウェア)で実現するようにしてもよい。もちろん、全機能をハードウエアで実現しても良いことは言うまでもない。
【００１７】
入力端子１１には、例えばビデオカメラ内の撮像素子で取得された画像(動画像)データやビデオ信号などの画像データが入力される。入力端子１１に入力された画像データは、水平方向動きベクトル検出部２において水平方向の動きベクトルが検出され、その検出された水平方向動きベクトルが出力端子１２から出力される。
【００１８】
一方、垂直方向動きベクトル検出部４では、入力端子１１に入力された画像データについて垂直方向の動きベクトルが検出される。この垂直方向動きベクトル検出部４で検出された垂直方向動きベクトルは、出力端子１３から出力される。
【００１９】
以下では、水平方向動きベクトル検出部２と垂直方向動きベクトル検出部４との構成を順に説明する。
【００２０】
図３は、水平方向動きベクトル検出部２の要部構成を示すブロック図である。
水平方向動きベクトル検出部２は、入力端子２０と、垂直方向画像分割部２１と、垂直方向エッジ抽出フィルタリング部２２と、垂直方向ブロック射影部２３と、第１の垂直方向ブロック射影データ最大値保存部２４と、ビット数削減部２５と、第１の垂直方向ブロック射影ラインメモリ２６と、垂直方向ブロック射影データ平滑部３４とを備えている。また、水平方向動きベクトル検出部２は、第２の垂直方向ブロック射影ラインメモリ２７と、第２の垂直方向ブロック射影データ最大値保存部２８と、第１の閾値交差点探索部２９と、垂直方向ブロック射影データ読み出し部３０と、垂直方向ブロック水平方向動きベクトル算出部３１と、水平方向動きベクトル決定部３２と、出力端子３３とを備えている。以上の水平方向動きベクトル検出部２の各部位について、その機能を簡単に説明する(具体的な動作は後で詳述する)。
【００２１】
垂直方向画像分割部２１は、入力端子２０に入力されたフレーム画像を垂直方向に分割し、垂直方向に分割したブロック(以下では「垂直方向ブロック」とも称する)を出力する。
【００２２】
垂直方向エッジ抽出フィルタリング部２２は、垂直方向画像分割部２１で分割されたブロック毎にエッジ抽出を行うためのフィルタリング処理を行う。
【００２３】
垂直方向ブロック射影部２３は、垂直方向エッジ抽出フィルタリング部２２から出力されるエッジ強調済みの垂直方向ブロックについて垂直方向に射影をとり、垂直方向ブロック毎に射影データを出力する。
【００２４】
第１の垂直方向ブロック射影データ最大値保存部２４は、垂直方向ブロック射影部２３から出力された現フレームの垂直方向ブロックの射影データにおける最大値を保存する。
（以下では「現フレームの垂直方向ブロック射影データ最大値」または「第１の垂直方向ブロック射影データ最大値」とも言う）を保存する。また、第１の垂直方向ブロック射影データ最大値保存部２４は、第１の垂直方向ブロック射影データ最大値に基づき、後述する第２の閾値を算出する。
【００２５】
ビット数削減部２５は、第１の垂直方向ブロック射影データ最大値保存部２４に保存された第１の垂直方向ブロック射影データ最大値に基づき、垂直方向ブロック射影部２３から出力された垂直方向ブロックの射影データのビット数を削減する。ビット数を削減された垂直方向ブロックの射影データを「第１の垂直方向ブロック射影データ」と称する。
【００２６】
第１の垂直方向ブロック射影ラインメモリ２６は、ビット数削減部２５でビット数が削減された第１の垂直方向ブロック射影データを保存する。
【００２７】
垂直方向ブロック射影データ平滑化部３４は、第１の垂直方向ブロック射影ラインメモリ２６に保存された垂直方向ブロック射影データを読み出し、垂直方向ブロック射影データに重畳されている変動ノイズを除去し、平滑化した射影データ（以下では、平滑化射影データと記す）を第１の垂直方向ブロック射影ラインメモリ２６に書き戻す。従って、以降の処理における「射影データ」とは、特に区別して記載しない場合も含めて、「平滑化された射影データ（平滑化射影データ）」のことであり、「第１の垂直方向ブロック射影データ」についても、平滑化射影データである。
【００２８】
第２の垂直方向ブロック射影ラインメモリ２７は、第１の垂直方向ブロック射影ラインメモリ２６から送られた垂直方向ブロック射影データを、前フレームの垂直方向ブロックの射影データ(以下では「第２の垂直方向ブロック射影データ」ともいう)として保存する。
【００２９】
第２の垂直方向ブロック射影データ最大値保存部２８は、第１の垂直方向ブロック射影データ最大値保存部２４から出力された第１の垂直方向ブロック射影データ最大値を、前フレームに関する「第２の垂直方向ブロック射影データ最大値」（「前フレームの垂直方向ブロック射影データ最大値」とも言う）として保存する。また、第２の垂直方向ブロック射影データ最大値保存部２８は、第２の垂直方向ブロック射影データ最大値に基づき、後述する第１の閾値を算出する。
【００３０】
第１の閾値交差点探索部２９は、第２の垂直方向ブロック射影ラインメモリ２７に保存される前フレームに係る第２の垂直方向ブロック射影データの波形と、第２の垂直方向ブロック射影データ最大値保存部２８で算出された第１の閾値とが交差する点を求め、この交差点（以下では「第１の閾値交差点」ともいう）の情報を出力する。
【００３１】
垂直方向ブロック射影データ読み出し部３０は、第１の閾値交差点探索部２９で求められた第１の閾値交差点を中心に、その前後の所定範囲(動きベクトル検出範囲)内にある第１の垂直方向ブロック射影データを、第１の垂直方向ブロック射影ラインメモリ２６から読み出す。
【００３２】
垂直方向ブロック水平方向動きベクトル算出部３１は、第１の垂直方向ブロック射影データ最大値保存部２４から出力される第２の閾値を用い、垂直方向ブロック射影データ読み出し部３０で読み出された第１の垂直方向ブロック射影データそれぞれをｎ値化（ｎは２以上の整数）してビット数の削減を行うとともに、ｎ値化された射影データを第１の閾値交差点からの距離毎に加算する。
【００３３】
水平方向動きベクトル決定部３２は、垂直方向ブロック水平方向動きベクトル算出部３１からの出力に基づき画像の水平方向動きベクトルを決定する。ここで決定された画像の水平方向動きベクトルは出力端子３３から出力される。
【００３４】
図４は、垂直方向ブロック射影部２３の要部構成を示すブロック図である。
垂直方向ブロック射影部２３は、入力端子２３１と、１水平ラインずつデータ加算を行う加算器２３２と、加算器２３２で加算されたデータを逐次保存するバッファメモリとしての垂直方向射影一時記憶メモリ２３３と、出力端子２３４とを備えている。
【００３５】
入力端子２３１には、垂直方向エッジ抽出フィルタリング部２２で垂直方向のエッジが強調された画像が垂直方向ブロック毎に入力される。入力端子２３１に入力された画像は、垂直方向ブロック毎に加算器２３２および垂直方向射影一時記憶メモリ２３３によって垂直方向に射影がとられる。具体的には、加算器２３２において垂直方向ブロックの１水平ライン分のデータと、垂直方向射影一時メモリ２３３から読み出された１水平ライン分のデータとが加算され、加算結果が垂直方向射影一時記憶メモリ２３３に再び戻されて記憶される。このような加算動作が繰り返されることにより垂直方向ブロックにおける全ての水平ラインの加算が終了すると、全水平ラインの加算データ、つまり垂直方向の射影データが出力端子２３４から出力されることとなる。
【００３６】
図５は、垂直方向ブロック水平方向動きベクトル算出部３１の要部構成を示すブロック図である。
【００３７】
垂直方向ブロック水平方向動きベクトル算出部３１は、３つの入力端子３１１〜３１３と、ｎ値化器３１４と、ｎ値化器３１４でｎ値化された第１の垂直方向ブロック射影データの加算を行う加算器３１５と、加算器３１５で加算されたデータを逐次保存するバッファメモリとしての水平方向動きベクトル加算メモリ３１６と、ピーク検出器３１７と、出力端子３１８とを備えている。
【００３８】
入力端子３１１には、垂直方向ブロック射影データ読み出し部３０から出力された第１の垂直方向ブロック射影データが入力され、入力端子３１２には、第１の垂直方向ブロック射影データ最大値保存部２４から出力された第２の閾値が入力される。また、入力端子３１３には、第１の閾値交差点探索部２９から出力された第１の閾値交差点の情報が入力される。
【００３９】
ｎ値化器３１４は、入力端子３１１から入力された第１の垂直方向ブロック射影データを、入力端子３１２から入力される第２の閾値に基づいてｎ値化(例えば３値化)する。
【００４０】
加算器３１５は、ｎ値化器３１４でｎ値化された第１の垂直方向ブロック射影データと、水平方向動きベクトル加算メモリ３１６から読み出されたデータとを第１の閾値交差点を中心として加算し、加算結果を水平方向動きベクトル加算メモリ３１６に再び記憶させる。このような加算動作が繰り返されることにより垂直方向ブロックに関する全ての第１の閾値交差点についての加算が終了すると、垂直方向ブロックに関する加算データがピーク検出器３１７に出力される。
【００４１】
ピーク検出器３１７は、加算器３１５から出力された加算データにおけるピーク位置（後述する水平方向動きベクトル）を検出する。このピーク検出器３１７で検出されたピーク位置は、出力端子３１８を介して水平方向動きベクトル決定部３２に入力されることとなる。
【００４２】
次に、垂直方向動きベクトル検出部４の構成を説明する。
図６は、垂直方向動きベクトル検出部４の要部構成を示すブロック図である。
【００４３】
垂直方向動きベクトル検出部４は、入力端子４０と、水平方向画像分割部４１と、水平方向エッジ抽出フィルタリング部４２と、水平方向ブロック射影部４３と、第１の水平方向ブロック射影ラインメモリ４４と、第１の水平方向ブロック射影データ最大値保存部４５と、水平方向ブロック射影データ平滑化部５３とを備えている。また、垂直方向動きベクトル検出部４は、第２の水平方向ブロック射影ラインメモリ４６と、第２の水平方向ブロック射影データ最大値保存部４７と、第３の閾値交差点探索部４８と、水平方向ブロック射影データ読み出し部４９と、水平方向ブロック垂直方向動きベクトル算出部５０と、垂直方向動きベクトル決定部５１と、出力端子５２とを備えている。以上の垂直方向動きベクトル検出部４の各部位について、その機能を簡単に説明する(具体的な動作は後で詳述する)。
【００４４】
水平方向画像分割部４１は、入力端子４０に入力されたフレーム画像を水平方向に分割し、水平方向に分割したブロック(以下では「水平方向ブロック」とも称する)を出力する。
【００４５】
水平方向エッジ抽出フィルタリング部４２は、水平方向画像分割部４１で分割されたブロック毎にエッジ抽出を行うためのフィルタリング処理を行う。
【００４６】
水平方向ブロック射影部４３は、水平方向エッジ抽出フィルタリング部４２から出力されるエッジ強調済みの水平方向ブロックについて水平方向に射影をとり、水平方向ブロック毎に射影データを出力する。
【００４７】
第１の水平方向ブロック射影ラインメモリ４４は、水平方向ブロック射影部４３から出力された水平方向ブロックの射影データを、現フレームの水平方向ブロック射影データ（以下では「第１の水平方向ブロック射影データ」ともいう）として保存する。
【００４８】
水平方向ブロック射影データ平滑化部５３は、第１の水平方向ブロック射影ラインメモリ４４に保存された水平方向ブロック射影データを読み出し、水平方向ブロック射影データに重畳されている変動ノイズを除去し、平滑化した射影データ（以下では、平滑化射影データと記す）を第１の水平方向ブロック射影ラインメモリ４４に書き戻す。従って、以降の処理における「射影データ」とは、特に区別して記載しない場合も含めて、「平滑化された射影データ（平滑化射影データ）」のことであり、「第１の水平方向ブロック射影データ」についても、平滑化射影データである。
【００４９】
第１の水平方向ブロック射影データ最大値保存部４５は、水平方向ブロック射影部４３から出力された現フレームの水平方向ブロックの射影データの最大値（以下では「現フレームの水平方向ブロック射影データ最大値」または「第１の水平方向ブロック射影データ最大値」とも言う）を保存する。
【００５０】
第２の水平方向ブロック射影ラインメモリ４６は、第１の水平方向ブロック射影ラインメモリ４４から送られた水平方向ブロック射影データを、前フレームの水平方向ブロックの射影データ(以下では「第２の水平方向ブロック射影データ」ともいう)として保存する。
【００５１】
第２の水平方向ブロック射影データ最大値保存部４７は、第１の水平方向ブロック射影データ最大値保存部４５から出力された第１の水平方向ブロック射影データ最大値を、前フレームに関する「第２の水平方向ブロック射影データ最大値」（「前フレームの水平方向ブロック射影データ最大値」とも言う）として保存する。また、第２の水平方向ブロック射影データ最大値保存部４７は、第２の水平方向ブロック射影データ最大値に基づき、後述する第３の閾値および第４の閾値を算出する。
【００５２】
第３の閾値交差点探索部４８は、第２の水平方向ブロック射影ラインメモリ４６に保存される前フレームに係る第２の水平方向ブロック射影データと、第２の水平方向ブロック射影データ最大値保存部４７で算出された第３の閾値とが交差する点を求め、この交差点（以下では「第３の閾値交差点」ともいう）の情報を出力する。
【００５３】
水平方向ブロック射影データ読み出し部４９は、第３の閾値交差点探索部４８で求められた第３の閾値交差点を中心に、その前後の所定範囲(動きベクトル検出範囲)内にある第１の水平方向ブロック射影データを、第１の水平方向ブロック射影ラインメモリ４４から読み出す。
【００５４】
水平方向ブロック垂直方向動きベクトル算出部５０は、第２の水平方向ブロック射影データ最大値保存部４７から出力される第４の閾値を用い、水平方向ブロック射影データ読み出し部４９で読み出された第１の水平方向ブロック射影データそれぞれをｎ値化（ｎは２以上の整数）してビット数の削減を行うとともに、ｎ値化された射影データを第３の閾値交差点からの距離毎に加算する。
【００５５】
垂直方向動きベクトル決定部５１は、水平方向ブロック垂直方向動きベクトル算出部５０からの出力に基づき画像の垂直方向動きベクトルを決定する。ここで決定された画像の垂直方向動きベクトルは出力端子５２から出力される。
【００５６】
図７は、水平方向ブロック射影部４３の要部構成を示すブロック図である。
水平方向ブロック射影部４３は、入力端子４３１と、水平方向ブロックの１水平ラインデータの加算を行う加算器４３２と、加算器４３２で加算されたデータを逐次保存するバッファメモリとしての水平方向射影一時記憶メモリ４３３と、出力端子４３４とを備えている。
【００５７】
入力端子４３１には、水平方向エッジ抽出フィルタリング部４２で水平方向のエッジが強調された画像が入力される。入力端子４３１に入力された画像は、水平方向ブロック毎に加算器４３２および水平方向射影一時記憶メモリ４３３によって水平方向に射影がとられる。具体的には、水平方向ブロック内の１水平ラインの画素について、入力端子４３１から入力された画素と、前画素までに加算器４３２で加算され水平方向射影一時記憶メモリ４３３に記憶された加算結果を、加算器４３２で加算し、その加算結果を再び水平方向射影一時記憶メモリ４３３に戻し記憶する。このような加算動作が繰り返されることにより水平方向ブロックにおける１水平ラインの加算が終了すると、その水平方向ブロックの１水平ラインの全画素の加算データ、つまり水平方向の射影データが出力端子４３４から出力されることとなる。以下、同様にして、次の水平方向ブロックの水平方向の射影データが処理され、全ての水平方向ブロックの１水平ラインの処理が終了すると、次の１水平ラインの処理がなされる。
【００５８】
図８は、水平方向ブロック垂直方向動きベクトル算出部５０の要部構成を示すブロック図である。
【００５９】
水平方向ブロック垂直方向動きベクトル算出部５０は、３つの入力端子５０１〜５０３と、ｎ値化器５０４と、ｎ値化器５０４でｎ値化された第１の水平方向ブロック射影データの加算を行う加算器５０５と、加算器５０５で加算されたデータを逐次保存するバッファメモリとしての垂直方向動きベクトル加算メモリ５０６と、ピーク検出器５０７と、出力端子５０８とを備えている。
【００６０】
入力端子５０１には、水平方向ブロック射影データ読み出し部４９から出力された第１の水平方向ブロック射影データが入力され、入力端子５０２には、第２の水平方向ブロック射影データ最大値保存部４７から出力された第４の閾値が入力される。また、入力端子５０３には、第３の閾値交差点探索部４８から出力された第３の閾値交差点の情報が入力される。
【００６１】
ｎ値化器５０４は、入力端子５０１から入力された第１の水平方向ブロック射影データを、入力端子５０２から入力される第４の閾値に基づいてｎ値化(例えば３値化)する。
【００６２】
加算器５０５は、ｎ値化器５０４でｎ値化された第１の水平方向ブロック射影データと、垂直方向動きベクトル加算メモリ５０６から読み出されたデータとを第３の閾値交差点を中心として加算し、加算結果を垂直方向動きベクトル加算メモリ５０６に再び記憶させる。このような加算動作が繰り返されることにより水平方向ブロックに関する全ての第３の閾値交差点についての加算が終了すると、水平方向ブロックに関する加算データがピーク検出器５０７に出力される。
【００６３】
ピーク検出器５０７は、加算器５０５から出力された加算データにおけるピーク位置（後述する垂直方向動きベクトル）を検出する。このピーク検出器５０７で検出されたピーク位置は、出力端子５０８を介して垂直方向動きベクトル決定部５１に入力されることとなる。
【００６４】
以上のような構成を有する動きベクトル検出装置１の動作について、以下で説明する。
【００６５】
＜動きベクトル検出装置１の動作＞
＜水平方向動きベクトル検出部２の動作＞
まず、動きベクトル検出装置１において画像の水平方向の動きベクトルを検出する水平方向動きベクトル検出部２の動作を説明する。
【００６６】
図２のように水平ラインの画素走査を垂直方向に順に繰り返すことによって読み出されるフレーム画像が、図３に示す水平方向動きベクトル検出部２の入力端子２０に入力されると、垂直方向画像分割部２１で垂直方向にブロック分割される。すなわち、垂直方向画像分割部２１においては、フレーム画像において垂直方向に分割して得られる複数の画像領域(垂直方向ブロック)が設定される。これにより、以降の処理では、垂直方向ブロック毎に処理および管理が行われることとなる。
【００６７】
垂直方向画像分割部２１では、例えば図９(ａ)に示すように６４０画素×４８０画素の画像データが、垂直方向に６４画素の幅(分割幅)を有した７個の垂直方向ブロックｖｂ０〜ｖｂ６に分割される。なお、垂直方向の最下段の画像データｖｂ７は水平方向動きベクトルの検出において利用されないこととなるが、フレーム画像の大部分を占める７つの垂直方向ブロックｖｂ０〜ｖｂ６が水平方向動きベクトルの検出に使用されるため、検出精度の面で特に問題はないと考えられる。ここで、図９(ａ)に示す分割幅および分割数とするのは必須ではない。
【００６８】
垂直方向画像分割部２１で図９(ａ)のように７個の垂直方向ブロックｖｂ０〜ｖｂ６に分割された画像は、垂直方向エッジ抽出フィルタリング部２２において垂直方向に延びるエッジ成分の抽出、換言すれば水平方向に急峻に変化する画像部分を強調するようなフィルタリング処理が施される。
【００６９】
このフィルタリング処理で用いられるフィルタとしては、単純に水平方向に隣接する画素との差分を取る(１,−１)の２タップフィルタや、２次微分に相当する(−１,２,−１)の３タップフィルタなどの使用が可能である。なお、このようなフィルタを使用するのは必須でなく、水平方向に輝度変化が大きくなる画像部分において出力値が上昇するフィルタであれば良い。
【００７０】
垂直方向エッジ抽出フィルタリング部２２で各垂直方向ブロック(画像領域)ｖｂ０〜ｖｂ６毎に垂直方向のエッジが強調された画像データは、垂直方向ブロック射影部２３に入力され、垂直方向ブロック射影部２３で垂直方向に射影される。この射影により、垂直方向の(ライン間で)ノイズ成分を低減でき、また垂直方向のエッジ成分をより強調できるため、特徴点に対応する垂直方向エッジを際立たせて動きベクトル検出精度の向上を図れることとなる。垂直方向ブロック射影部２３の動作について、図９(ｂ)の概念図を参照しつつ説明する。
【００７１】
垂直方向ブロック射影部２３では、図９(ａ)に示す各垂直方向ブロックｖｂ０〜ｖｂ６の入力が完了した時点、つまりエッジ強調された各垂直方向ブロックｖｂ０〜ｖｂ６における最終ラインの最終画素が入力された時点で、１水平ライン分のデータ配列Ｍｖを有する垂直方向ブロック射影データｖｎ０〜ｖｎ６(図９(ｂ))それぞれの全配列要素が生成される。なお、データ配列Ｍｖは、水平ラインの全画素数(例えば６４０)の配列要素を有しているが、(１，−１)のような２タップフィルタでは有効要素が水平ラインの全画素数−１(例えば６３９)、(−１，２，−１)のような３タップフィルタでは有効要素が水平ラインの全画素数−２(例えば６３８)となる。
【００７２】
具体的には、図４に示すように入力端子２３１を介して入力された各垂直方向ブロックｖｂ０〜ｖｂ６の画像データ(垂直方向のエッジ強調が施された画像データ)が、順次に加算器２３２に入力される。
【００７３】
加算器２３２では、まず入力された垂直方向ブロックの先頭の水平ラインが、垂直方向射影一時記憶メモリ２３３内のデータを読み出すことなく、垂直方向射影一時記憶メモリ２３３に書き込まれる。次に、加算器２３２では、垂直方向射影一時記憶メモリ２３３に記憶されている前ラインまでの加算結果を読み出し、入力端子２３１から入力される垂直方向ブロックの水平１ラインとの加算を行って、その加算結果を垂直方向射影一時記憶メモリ２３３に書き戻す。
【００７４】
そして、垂直方向ブロックにおける最終の水平ラインが加算器２３２に入力されると、垂直方向射影一時記憶メモリ２３３に保存された前ラインまでの加算結果を読み出し、入力端子２３１から入力される垂直方向ブロックの最終ラインとの加算を行って、その加算結果、つまり垂直方向ブロックの全ての水平ラインが加算されたデータを垂直方向ブロックの射影データとして、出力端子２３４から第１の垂直方向ブロック射影データ最大値保存部２４とビット数削減部２５とに出力する。
【００７５】
なお、加算器２３２において垂直方向ブロックの全水平ラインが加算された射影データを垂直方向射影一時記憶メモリ２３３に一旦記憶させ、次の垂直方向ブロックの先頭ラインが入力される際に、垂直方向射影一時記憶メモリ２３３内の射影データを読み出して出力端子２３４から出力するようにしても良い。
【００７６】
第１の垂直方向ブロック射影データ最大値保存部２４では、垂直方向ブロック射影部２３から出力された垂直方向ブロックの射影データに関する最大値を算出し、第１の垂直方向ブロック射影データ最大値（現フレームの垂直方向ブロック射影データ最大値）として保存する。すなわち、第１の垂直方向ブロック射影データ最大値保存部２４は、現フレーム(後フレーム)の射影データに関するデータ配列Ｍｖ(図９(ｂ))の配列要素において最大値を求め、この最大値を記憶する。
【００７７】
また、第１の垂直方向ブロック射影データ最大値保存部２４では、算出された現フレームの垂直方向ブロック射影データ最大値に基づき、第２の閾値を算出する。例えば、現フレームの垂直方向ブロック射影データ最大値をＰ１mａxとすると、第２の閾値α２は次の式（１）で算出される。
【００７８】
α２＝Ｐ１max×ｋ１・・・・・・・・(１)
ここで、ｋ１は予め定められた係数で、０＜ｋ１＜１である。
【００７９】
なお、第２の閾値α２の演算は、上式(１)に限るものではなく、現フレームの垂直方向ブロック射影データ最大値Ｐ１maxが大きくなれば第２の閾値α２が大きくなるものであれば良く、また変換テーブルを使用しても良い。
【００８０】
ビット数削減部２５では、第１の垂直方向ブロック射影データ最大値保存部２４から入力された現フレームの垂直方向ブロック射影データ最大値（第１の垂直方向ブロック射影データ最大値）に基づき射影データの有効ビットレンジを決定する。そして、この有効ビットレンジに基づき設定される上位無効ビットおよび下位無効ビットを垂直方向ブロック射影部２３から入力された垂直方向ブロック射影データから削減し、有効ビットのみで構成される現フレームの垂直方向ブロック射影データを第１の垂直方向ブロック射影ラインメモリ２６に出力する。
【００８１】
第１の垂直方向ブロック射影ラインメモリ２６は、ビット数削減部２５によってビット数が低減された現フレームの垂直方向ブロック射影データを、第１の垂直方向ブロック射影データとして垂直方向ブロック毎に保存する。すなわち、第１の垂直方向ブロック射影ラインメモリ２６には、第１の垂直方向ブロック射影データ最大値保存部２４で求められた第１の垂直方向ブロック射影データ最大値に基づきビット数削減部２５においてビット数(各配列要素のデータ長)が削減された現フレーム(後フレーム)の射影データが記憶される。
【００８２】
第１の垂直方向ブロック射影ラインメモリ２６に保存された垂直方向ブロック射影データは、必要なデータが揃った時点で、垂直方向ブロック射影データ平滑化部３４に読み出され、平滑化処理がなされた後、第１の垂直方向ブロック射影ラインメモリ２６に書き戻される。例えば、Ｐａ、Ｐｂ、Ｐｃという水平方向に連続する３点を使って平滑化処理を行う場合には、「必要なデータが揃った時点」とは、水平方向に３点が揃った時点ということになり、このとき、真ん中の点Ｐｂの平滑化処理が可能ということになる。垂直方向ブロック射影データ平滑化部３４における平滑化処理の詳細については、後述する。
【００８３】
第１の垂直方向ブロック射影ラインメモリ２６は、現フレームに関する新たな第１の垂直方向ブロック射影データが入力されるタイミングで、前フレームの垂直方向ブロック射影データ（平滑化されたデータ）を読み出し、第２の垂直方向ブロック射影ラインメモリ２７に与える。第２の垂直方向ブロック射影ラインメモリ２７は、第１の垂直方向ブロック射影ラインメモリ２６から読み出された前フレームの垂直方向ブロック射影データを、第２の垂直方向ブロック射影データとして保存する。
【００８４】
同様に、第１の垂直方向ブロック射影データ最大値保存部２４は、現フレームに関する新たな第１の垂直方向ブロック射影データ最大値が更新されるタイミングで、既に保存されている第１の垂直方向ブロック射影データ最大値を読み出し、第２の垂直方向ブロック射影データ最大値保存部２８に与える。第２の垂直方向ブロック射影データ最大値保存部２８では、第１の垂直方向ブロック射影データ最大値保存部２４から読み出された第１の垂直方向ブロック射影データ最大値が、前フレームに関する第２の垂直方向ブロック射影データ最大値（前フレームの垂直方向ブロック射影データ最大値）として保存される。
【００８５】
換言すれば、第１の垂直方向ブロック射影データ最大値保存部２４に保存された現フレームの垂直方向ブロック射影データ最大値は、次のフレームでは、第２の垂直方向ブロック射影データ最大値保存部２８に前フレームの垂直方向ブロック射影データ最大値として保存されることとなる。
【００８６】
第２の垂直方向ブロック射影データ最大値保存部２８は、前フレームに関する第２の垂直方向ブロック射影データ最大値に基づき、第１の閾値(所定の一定値)が設定される。例えば、前フレームの垂直方向ブロック射影データ最大値をＰ２maxとすると、第１の閾値α１は次の式(２)で算出される。
【００８７】
α１＝Ｐ２max×ｋ２・・・・・・・・(２)
ここで、ｋ２は予め定められた係数で、０＜ｋ２＜１である。
【００８８】
なお、第１の閾値α１の演算は、上式(２)に限るものではなく、前フレームの垂直方向ブロック射影データ最大値Ｐ２maxが大きくなれば第１の閾値α１が大きくなるものであれば良く、また変換テーブルを使用しても良い。
【００８９】
第１の閾値交差点探索部２９では、第２の垂直方向ブロック射影ラインメモリ２７から読み出された第２の垂直方向ブロック射影データと、第２の垂直方向ブロック射影データ最大値保存部２８から出力された第１の閾値との交差点(第１の閾値交差点)を水平方向に探索する。この第１の閾値交差点探索部２９で得られた第１の閾値交差点の情報は、垂直方向ブロック射影データ読み出し部３０と垂直方向ブロック水平方向動きベクトル算出部３１とに出力される。
【００９０】
垂直方向ブロック射影データ読み出し部３０は、第１の閾値交差点探索部２９から出力された第１の閾値交差点を中心とした動きベクトル検出範囲に対応した現フレームの(第１の)垂直方向ブロック射影データを第１の垂直方向ブロック射影ラインメモリ２６から読み出す。すなわち、第１の閾値交差点をＡ(ｉ)（ただしｉ＝１,２,・・・ｐで、ｐは検出された第１の閾値交差点の総数）とし、動きベクトル検出範囲を第１の閾値交差点を中心とした(−Ｖ)から(＋Ｖ)（ただしＶは正の整数）の範囲とすると、第１の垂直方向ブロック射影ラインメモリ２６から読み出される射影データは、水平方向において(Ａ(ｉ)−Ｖ)から(Ａ(ｉ)＋Ｖ)までの範囲にある第１の垂直方向ブロック射影データの部分データとなる。
【００９１】
この垂直方向ブロック射影データ読み出し部３０によって第１の垂直方向ブロック射影ラインメモリ２６から読み出された第１の垂直方向ブロック射影データは、垂直方向ブロック水平方向動きベクトル算出部３１に出力される。
【００９２】
垂直方向ブロック射影データ読み出し部３０から出力された第１の垂直方向ブロック射影データは、図５に示す垂直方向ブロック水平方向動きベクトル算出部３１の入力端子３１１を介してｎ値化器３１４に入力される。このｎ値化器３１４では、第１の垂直方向ブロック射影データ最大値保存部２４から出力され、入力端子３１２を介して入力された第２の閾値に基づき、第１の垂直方向ブロック射影データをｎ値化する。すなわち、ｎ値化器３１４は、垂直方向ブロック射影データ読み出し部３０で抽出された現フレームの射影データに関するデータ配列Ｍｖ（図９(ｂ)）各配列要素のデータ長を、例えば３値化処理して圧縮する。このｎ値化器３１４の処理について、図１０（ａ）〜図１０（ｃ）を参照しつつ説明する。
【００９３】
図１０（ａ）〜図１０（ｃ）は、ｎ値化器３１４におけるｎ値化処理を説明するための図である。なお、図１０（ａ）〜図１０（ｃ）では、ｎ＝３となる３値化処理の一例を示している。
【００９４】
ｎ値化器３１４に入力される第１の垂直方向ブロック射影データをＤ、入力端子３１２を介して入力される第２の閾値をα２(α２は正の整数)とすると、ｎ値化器３１４では、Ｄ＜(−α２)のとき(−１)を出力し、(−α２)≦Ｄ≦α２のとき０を出力するとともに、Ｄ＞α２のとき１を出力することで３値化処理が行われる。すなわち、ｎ値化器３１４における３値化処理では、現フレーム(後フレーム)の射影データにおけるデータ配列Ｍｖの配列要素の最大値に基づき設定される第２の閾値α２(α２＞０)に関して、垂直方向ブロック射影データ読み出し部３０で抽出された現フレームの射影データに関する配列要素の値が、(−α２)より小さい場合、(−α２)以上でα２以下の場合、およびα２より大きい場合の３段階による３値化が行われる。
【００９５】
このｎ値化器３１４でのｎ値化処理については、垂直方向ブロック射影データ読み出し部３０から出力される現フレームの第１の垂直方向ブロック射影データの部分波形が、第１の閾値交差点に対してどのような位置関係、つまりどのような傾向の波形となっているのかが重要であるため、第１の垂直方向ブロック射影データの波形において山や谷が判別できるだけのビット精度を確保すれば十分である。
【００９６】
一方、ｎ値化器３１４においてビット数の削減を行わずに、垂直方向ブロック射影データ読み出し部３０から出力された第１の垂直方向ブロック射影データの値そのものを採用する場合には、第１の垂直方向ブロック射影データＤ＞α２に対応する大きな振幅の山や、Ｄ＜(−α２)に対応する大きな振幅の谷に、画像の特徴が表れる小さな振幅の山や谷が埋没してしまう恐れがあり不適切である。さらに、(−α２)≦Ｄ≦α２に対応する小さな山や谷は、ノイズの影響を受けやすく数も多いため、これに画像の特徴が表れる適度な振幅の山や谷が埋もれることとなる。
【００９７】
よって、ｎ値化器３１４では、第１の垂直方向ブロック射影データに対して適切なｎ値化処理を施すことにより、動きベクトルの検出精度の向上を図っている。
【００９８】
以上で説明した第１の閾値交差点探索部２９、垂直方向ブロック射影データ読み出し部３０および垂直方向ブロック水平方向動きベクトル算出部３１の動作について、図１１（ａ）〜図１１（ｃ）を参照しつつ具体的に説明する。なお、図１１(ａ)および図１１(ｂ)の横軸は、射影データのデータ配列Ｍｖ(図９(ｂ))の配列要素の位置を示している。また、図１１(ａ)では、第１の閾値交差点Ａ(１)〜Ａ(８)それぞれを丸印で表している。
【００９９】
第１の閾値交差点探索部２９では、図１１(ａ)に示すように前フレームに関する第２の垂直方向ブロック射影データＷ２の波形において、第２の垂直方向ブロック射影データ最大値保存部２８から出力された第１の閾値α１と交差する第１の閾値交差点Ａ(１)〜Ａ(８)が求められる。すなわち、第１の閾値交差点探索部２９は、前フレームに対して垂直方向ブロック射影部２３で得られた射影データに関して射影データのデータ配列Ｍｖ（図９(ｂ)）の要素順に配列要素の値をグラフ化した波形Ｗ２と、配列要素の値が第１の閾値(所定の一定値)α１となる一次関数の直線とが交差する各第１の閾値交差点の配列要素の位置を特定する。
【０１００】
次に、垂直方向ブロック射影データ読み出し部３０では、図１１(ａ)に示す各第１の閾値交差点Ａ(１)〜Ａ(８)を中心とした所定の動きベクトル検出範囲について第１の垂直方向ブロック射影ラインメモリ２６から現フレームの垂直方向ブロック射影データが読み出される。すなわち、垂直方向ブロック射影データ読み出し部３０は、各第１の閾値交差点における射影データ(データ配列)の配列要素の位置を中心とした所定範囲のデータ配列を、垂直方向ブロック射影部２３から出力されビット数削減部２５によりビット数が削減された現フレーム(後フレーム)の射影データから抽出する。例えば第１の閾値交差点Ａ(７)に関しては、図１１(ｂ)に示すように第１の閾値交差点Ａ(７)を中心に(Ａ(７)−Ｖ)から(Ａ(７)＋Ｖ)までの範囲(矩形の破線内の波形部分)に対応する第１の垂直方向ブロック射影データＷ１が読み出される。
【０１０１】
そして、垂直方向ブロック射影データ読み出し部３０によって読み出された第１の垂直方向ブロック射影データは、第１の垂直方向ブロック射影データ最大値保存部２４から出力された第２の閾値α２を用いて、垂直方向ブロック水平方向動きベクトル算出部３１のｎ値器３１４でｎ値化処理される。例えば第１の閾値交差点Ａ(７)に関しては、図１１(ｂ)に示す第２の閾値α２および(−α２)に対する第１の垂直方向ブロック射影データＷ１の大小関係に基づき、第１の閾値交差点Ａ(７)を中心に(Ａ(７)−Ｖ)から(Ａ(７)＋Ｖ)までの範囲(矩形の破線内の波形部分)について、図１１(ｃ)のように第１の垂直方向ブロック射影データが３値化処理される。これにより、現フレームの垂直方向ブロック射影データが「−１」、「０」または「１」で表されることとなる。
【０１０２】
ｎ値化器３１４では、第１の閾値交差点探索部２９から出力される全ての第１の閾値交差点について、図１１(ｃ)に示すようなｎ値化処理が行われる。
【０１０３】
次に、加算器３１５(図５)では、入力端子３１３を介して第１の閾値交差点探索部２９から出力された第１の閾値交差点を中心に、ｎ値化器３１４でｎ値化された第１の垂直方向ブロック射影データと、水平方向動きベクトル加算メモリ３１６から読み出されたひとつ前までのｎ値化された第１の垂直方向ブロック射影データの加算値とを加算し、その加算結果を水平方向動きベクトル加算メモリ３１６に再び記憶させる。そして、第１の閾値交差点探索部２９で検出された全ての第１の閾値交差点のうち最後のものに関するｎ値化された第１の垂直方向ブロック射影データを加算器３１５で加算して１つの垂直方向ブロックについての加算処理を終了する際には、その加算結果をピーク検出器３１７に出力するようにする。なお、加算器３１５での加算処理終了後に、全ての第１の閾値交差点に関する加算結果を記憶している水平方向動きベクトル加算メモリ３１６から、その加算結果をピーク検出部３１７が読み出すようにしても良い。
【０１０４】
ピーク検出器３１７には、第１の閾値交差点探索部２９で検出された全ての第１の閾値交差点について各第１の閾値交差点を中心とした動きベクトル検出範囲（上述した±Ｖの範囲）に対応するｎ値化済みの第１の垂直方向ブロック射影データを加算したデータ（以下では「垂直方向ブロックｎ値化データ」ともいう）が入力されるが、この垂直方向ブロックｎ値化データに関するピーク値がピーク検出器３１７で検出される。このピーク検出器３１７において検出される垂直方向ブロックｎ値化データのピーク位置が、その垂直方向ブロックから得られる水平方向動きベクトルとなり、出力端子３１８を介して水平方向動き決定部３２に出力される。
【０１０５】
以上で説明した加算器３１５およびピーク検出部３１７の動作について、図１２（ａ）および図１２（ｂ）を参照しつつ具体的に説明する。なお、図１２(ａ)では、図１１(ａ)に示す第１の閾値交差点Ａ(１)〜Ａ(８)を中心とした動きベクトル検出範囲(±Ｖの範囲)において第１の垂直方向ブロック射影データを３値化したものを概念的に示している。
【０１０６】
加算器３１５において、図１２(ａ)に示す第１の閾値交差点Ａ(１)〜Ａ(８)周辺の３値化データが順次に入力されると、これらのデータが加算され、図１２(ｂ)に示すような垂直方向ブロックｎ値化データが生成される。具体的には、加算器３１５において垂直方向ブロック射影データ読み出し部３０により垂直方向ブロック射影データ(データ配列Ｍｖ(図９(ｂ)))から抽出されｎ値器３１４でデータ長が圧縮された現フレームに係る動きベクトル検出範囲(所定範囲)のデータ配列それぞれについて、各第１の閾値交差点の配列要素の位置に対して相対位置が同じ配列要素同士の値が加算されることとなる。
【０１０７】
加算器３１５で生成された垂直方向ブロックｎ値化データがピーク検出器３１７に入力されると、その垂直方向ブロックの水平方向動きベクトルとして図１２(ｂ)に示す水平方向のピーク位置ｈｖが検出される。すなわち、ピーク検出器３１７では、加算器３１５で加算された加算結果に基づき、フレーム画像の水平方向に関する動きベクトルが検出される。
【０１０８】
次に、垂直方向ブロック射影データ平滑化部３４における平滑化処理について、図１６〜図１９を用いて詳細に説明する。第１の垂直方向ブロック射影ラインメモリ２６に保存された垂直方向ブロック射影データは、垂直方向ブロック射影データ平滑化部３４に読み出され、平滑化処理がなされた後、第１の垂直方向ブロック射影ラインメモリ２６に書き戻される。図１６〜図１９においては、Ｐａ、Ｐｂ、Ｐｃという水平方向に連続する３点の配列要素を使って、平滑化処理を行う例を説明する。なお、ａ、ｂ、ｃは、それぞれ、点Ｐａ、Ｐｂ、Ｐｃでの値である。
【０１０９】
図１６は、射影データの変動パターンが「下に凸で、ａ＞０、ｂ≧０、ｃ＞０」の場合の平滑化処理を示している。
【０１１０】
動きベクトルの検出には、射影データにおいて連続する複数の点による漸増、漸減が重要であり、少数の点による凹凸は閾値との関係により精度を落とす原因となるため、除去することが望ましい。従って、図１６に示すパターンでは、中心の点Ｐｂの値ｂを値ａと値ｃとの平均値に変更することで、下に凸となった形状を解消する。
【０１１１】
同様に、図１７は、射影データの変動パターンが「上に凸で、ａ＜０、ｂ≦０、ｃ＜０」の場合の平滑化処理を示している。この場合にも、中心の点Ｐｂの値ｂを値ａと値ｃとの平均値に変更することで、上に凸となった形状を解消する。
【０１１２】
一方、図１８は、射影データの変動パターンが「下に凸で、ａ＞０、ｂ＜０、ｃ＞０」の場合の平滑化処理を示している。
【０１１３】
この場合、ｂ＜−α２であり、このまま処理を進めると、値ｂは、ｎ値化器３１４によるｎ値化処理（本例では３値化）の際に、第２の閾値−α２に基づいて−１とされ、前後の点Ｐａ、Ｐｃの値が１となった場合には、Ｐａ、Ｐｂ、Ｐｃの各点の値が、１、−１、１となって振動してしまう。それが、加算器３１５において、各第１の閾値交差点を中心に加算されることにより大きな振動（振幅）となり、本来、動きベクトル位置を指し示す位置に１つの大きなピークが立つべきところが、この振動により、本来のピーク位置でない部分においても大きな値を示すことになる。
【０１１４】
しかし、図１８に示す変動パターンに対しても図１６あるいは図１７と同様の平滑化処理を実行すると、射影データの特徴をｎ値化処理に正確に反映できなくなるという問題がある。
【０１１５】
すなわち、図１８に示すように、点Ｐｂの値ｂが第２の閾値−α２より小さく、点Ｐａおよび点Ｐｃの値が０より大きくなるような大きな変動を示す場合、点Ｐａは、点Ｐａより前の点Ｐｑ、Ｐｒ、・・・（・・・＜Ｐｒ＜Ｐｑ＜Ｐａ）により構成される前段の変動パターンの一部を構成し、点Ｐｂも前段の変動パターンを構成することが考えられる。
【０１１６】
また、点Ｐｃは、点Ｐｃより後の点Ｐｓ、Ｐｔ、・・・（Ｐｃ＜Ｐｓ＜Ｐｔ＜・・・）により構成される後段の変動パターンの一部を構成し、点Ｐｂも後段の変動パターンを構成することが考えられる。
【０１１７】
このような場合に、点Ｐｂの値ｂを単純に値ａと値ｃの平均値にする平滑化処理を行うと、前段の変動パターンおよび後段の変動パターンの特徴が改変されてしまうことになり、両パターンの特徴をｎ値化処理に正確に反映できなくなる。
【０１１８】
そこで、図１８に示すような変動パターンにおいては、点Ｐｂの値ｂを、ｎ値化処理を施した場合に「０」に圧縮される値（−β）に変更するという平滑化処理を行う。ここで、「０」に圧縮される値を被圧縮値と呼称し、当該被圧縮値は、第２の閾値−α２よりも大きく、０以下の固定された値に設定する。この処理により、前段の変動パターンおよび後段の変動パターンの特徴を損なうことなく、両パターンの特徴をｎ値化処理に正確に反映することが可能となる。
【０１１９】
図１９は、射影データの変動パターンが「上に凸で、ａ＜０、ｂ＞０、ｃ＜０」の場合の平滑化処理を示している。
【０１２０】
この場合、ｂ＞α２であり、このまま処理を進めると、値ｂはｎ値化器３１４によるｎ値化処理（本例では３値化）の際に、第２の閾値α２に基づいて１とされ、前後の点Ｐａ、Ｐｃの値が−１となった場合には、Ｐａ、Ｐｂ、Ｐｃの各点の値が、−１、１、−１となって振動してしまう。それが、加算器３１５において、各第１の閾値交差点を中心に加算されることにより大きな振動（振幅）となり、本来、動きベクトル位置を指し示す位置に１つの大きなピークが立つべきところが、この振動により、本来のピーク位置でない部分においても大きな値を示すことになる。
【０１２１】
しかし、図１９に示す変動パターンに対しても図１６あるいは図１７と同様の平滑化処理を実行すると、射影データの特徴をｎ値化処理に正確に反映できなくなるという問題がある。
【０１２２】
すなわち、図１９に示すように、点Ｐｂの値ｂが第２の閾値α２より大きく、点Ｐａおよび点Ｐｃの値が０より小さくなるような大きな変動を示す場合、点Ｐａは、点Ｐａより前の点Ｐｑ、Ｐｒ、・・・（・・・＜Ｐｒ＜Ｐｑ＜Ｐａ）により構成される前段の変動パターンの一部を構成し、点Ｐｂも前段の変動パターンを構成することが考えられる。
【０１２３】
また、点Ｐｃは、点Ｐｃより後の点Ｐｓ、Ｐｔ、・・・（Ｐｃ＜Ｐｓ＜Ｐｔ＜・・・）により構成される後段の変動パターンの一部を構成し、点Ｐｂも後段の変動パターンを構成することが考えられる。
【０１２４】
このような場合に、点Ｐｂの値ｂを単純に値ａと値ｃの平均値にする平滑化処理を行うと、前段の変動パターンおよび後段の変動パターンの特徴が改変されてしまうことになり、両パターンの特徴をｎ値化処理に正確に反映できなくなる。
【０１２５】
そこで、図１９に示すような変動パターンにおいては、点Ｐｂの値ｂを、ｎ値化処理を施した場合に「０」に圧縮される値（β）に変更するという平滑化処理を行う。ここで、「０」に圧縮される値を被圧縮値と呼称し、当該被圧縮値は、第２の閾値α２よりも小さく、０以上の固定された値に設定する。この処理により、前段の変動パターンおよび後段の変動パターンの特徴を損なうことなく、両パターンの特徴をｎ値化処理に正確に反映することが可能となる。
【０１２６】
なお、被圧縮値を０に設定する場合、後段の変動パターンの平滑化に点Ｐｂの圧縮値を使用すると、後段の変動パターンの特徴が若干変わってしまうが、それを問題にしないのであれば、被圧縮値を０に設定しても良い。
【０１２７】
次に、図２０〜図２３に示す射影データの変動パターンの具体例を用いて、垂直方向ブロック射影データ平滑化部３４における平滑化処理による効果を説明する。
【０１２８】
図２０は、平滑化処理を施さない場合の垂直方向ブロック射影データの波形の一部である。図２０に示すように、当該波形は、隣り合う各点で上下振動する波形である。
【０１２９】
この振動の原因としては、前段回路における各種信号処理によるものの他、垂直方向に限って言えば、例えば、カメラ信号などでライン毎に信号レベルが微妙に変動している場合に、それが、射影処理を行う毎に加算（強調）されて顕著化したことが考えられる。
【０１３０】
図２１は、図２０に示した射影データに、３値化処理を行う場合の閾値αおよび−αを設定した状態を模式的に示す図であり、丸囲みした領域の各点で閾値を上下することが判る。従って、このまま３値化処理を行うと、３値化結果に大きな影響を与えることになる。
【０１３１】
ここで、図１６〜図１９を用いて説明した平滑化処理を、図２０に示した射影データに施した結果を図２２に示す。
【０１３２】
図２２においては、元の垂直方向ブロック射影データの波形の全体的な特徴を残しながら、その上に重畳されている振動が除去された波形となっている。
【０１３３】
例えば、丸囲みした領域Ｒ１１〜Ｒ１５は、図２１において閾値を上下する領域に含まれるデータを平滑化した領域であり、これらについては、図１６および図１７を用いて説明した、両隣のデータの平均値を用いる平滑化処理が施されている。
【０１３４】
また、領域Ｒ１０は、図２１において、例えば点２２、点２３および点２４で示されるように、点２３の値が閾値αより大きく、点２２および点２４の値が０より小さくなるような大きな変動を有する領域であり、これらについては、図１８および図１９を用いて説明した、３点のうち、中央の点の値をｎ値化処理を施した場合に「０」に圧縮される値に変更するという平滑化処理が施されている。
【０１３５】
以上のような平滑化処理を施すことで、閾値との交差点近傍における振動によって３値化値に大きな影響を与えることのない垂直方向ブロック射影データが得られる。
【０１３６】
図２３は、第１の垂直方向ブロック射影データをｎ値化器３１４によるｎ値化処理後に、加算器３１５により、第１の閾値交差点探索部２９で検出された全ての第１の閾値交差点について、各第１の閾値交差点を中心とした動きベクトル検出範囲（先に説明した±Ｖの範囲）で加算した垂直方向ブロックｎ値化データの一例を図示したものである。ここで、Ｖは３１であり、横軸の目盛り３２が水平方向動きベクトル０の位置を示している。
【０１３７】
そして、塗り潰した菱形で示されているデータが「平滑化処理なし」のデータであり、塗り潰した正方形で示されているデータが「平滑化処理あり」のデータである。
【０１３８】
両データによってそれぞれ表される波形のうち、「平滑化処理なし」の波形は大きく振動しており、各所で上に凸、下に凸となっている。一方で、「平滑化処理あり」の波形は元の波形の特徴を残しながらも、余計な凹凸を有していない波形となっている。
【０１３９】
図２３においては、「平滑化処理なし」の波形、「平滑化処理あり」の波形ともに、目盛り３０の位置に最大ピークがあるので、ピーク検出器３１７にて、動きベクトル検出範囲全体の最大ピーク位置を水平方向動きベクトルと判断する場合には、誤判定は発生しない。
【０１４０】
しかし、例えば、値が負→正→負と変化する「上に凸な塊」毎にピーク位置を算出し、その「塊」毎のピーク値の大小を評価することにより、周期性画像に対する動きベクトル算出結果を排除するような信頼性評価を行い、より算出精度を高めるような方法を採る場合においては、本例の「平滑化処理なし」の波形は「信頼性なし」と評価されるが、「平滑化処理あり」の波形では、正しい水平方向動きベクトルを算出することができる。
【０１４１】
すなわち、「平滑化処理なし」の波形においては、目盛り３０以外に、目盛り２８、目盛り３２の他、多数の位置において、「塊」が形成され、それぞれ、４０、３０、２６という加算値を有している。本来、小さなピーク以外には唯一の大きなピークを持つべきものであり、このように、多数の位置において、同等の大きなピーク値を持つ場合には、その結果は信頼に値しない。
【０１４２】
一方、「平滑化処理あり」の波形では、目盛り３０で加算値２１、目盛り４２で加算値５、目盛り５で加算値３のピークを持つが、目盛り３０のピークは唯一の大きなピークと判断できるため、目盛り３０、すなわち、ベクトル−２を水平方向動きベクトルと判断することができる。
【０１４３】
ピーク検出器３１７で垂直方向ブロック毎に算出された水平方向動きベクトルは、順次に出力端子３１８を介して水平方向動きベクトル決定部３２に入力される。
【０１４４】
水平方向動きベクトル決定部３２では、垂直方向ブロック水平方向動きベクトル算出部３１から順次に出力される各垂直方向ブロックの水平方向動きベクトルに基づき、画像全体の水平方向動きベクトルが決定される。具体的には、各垂直方向ブロックの水平方向動きベクトルについてヒストグラムを作成し、ヒストグラム値の最も大きな水平方向動きベクトルを、画面全体の水平方向動きベクトルとするなどである。
【０１４５】
以上説明したように、垂直方向ブロック射影データ平滑化部３４において、垂直方向ブロック射影データの大きな傾向（特徴）を損なうことなく、垂直方向ブロック射影データに重畳された変動ノイズを除去することができ、加算器３１５での加算結果として余計なピークを発生させることがないため、ピーク検出部３１７における誤判定と信頼性低下を軽減することができる。結果として、信頼性のある垂直方向ブロック水平方向動きベクトルを算出することができる。
【０１４６】
＜垂直方向動きベクトル検出部４の動作＞
次に、動きベクトル検出装置１において画像の垂直方向の動きベクトルを検出する垂直方向動きベクトル検出部４の動作を説明する。
【０１４７】
図２のように水平ラインの画素走査を垂直方向に順に繰り返すことによって読み出されるフレーム画像が、図６に示す垂直方向動きベクトル検出部４の入力端子４０に入力されると、水平方向画像分割部４１で水平方向にブロック分割される。すなわち、水平方向画像分割部４１においては、フレーム画像において水平方向に分割して得られる複数の画像領域(水平方向ブロック)が設定される。これにより、以降の処理では、水平方向ブロック毎に処理や管理が行われることとなる。
【０１４８】
水平方向画像分割部４１では、例えば図１３(ａ)に示すように６４０画素×４８０画素の画像データが、水平方向に６４画素の幅(分割幅)を有した１０個の垂直方向ブロックｈｂ０〜ｈｂ９に分割される。なお、図１３(ａ)に示す分割幅および分割数とするのは必須でなく、例えば分割数を１にしても良い。
【０１４９】
水平方向画像分割部４１で図１３(ａ)のように１０個の水平方向ブロックｈｂ０〜ｈｂ９に分割された画像は、水平方向エッジ抽出フィルタリング部４２において水平方向に延びるエッジ成分の抽出、換言すれば垂直方向に急峻に変化する画像部分を強調するようなフィルタリング処理が施される。
【０１５０】
このフィルタリング処理で用いられるフィルタとしては、単純に水平方向に隣接する画素との差分を取る(１,−１)の２タップフィルタや、２次微分に相当する(−１,２,−１)の３タップフィルタなどの使用が可能である。なお、このようなフィルタを使用するのは必須でなく、垂直方向に輝度変化が大きくなる画像部分において出力値が上昇するフィルタであれば良い。
【０１５１】
水平方向エッジ抽出フィルタリング部４２で各水平方向ブロック(画像領域)ｈｂ０〜ｈｂ９ごとに水平方向のエッジが強調された画像データは、水平方向ブロック射影部４３に入力され、水平方向ブロック射影部４３で水平方向に射影される。この射影により、水平方向の(ライン間で)ノイズ成分を低減でき、また水平方向のエッジ成分をより強調できるため、特徴点に対応する水平方向エッジを際立たせて動きベクトル検出精度の向上を図れることとなる。水平方向ブロック射影部４３の動作について、図１３(ｂ)の概念図を参照しつつ説明する。
【０１５２】
水平方向ブロック射影部４３では、図１３(ａ)に示す各水平方向ブロックｈｂ０〜ｈｂ９の１水平ラインの入力が完了した時点で、１垂直ライン分のデータ配列Ｍｈを有する水平方向射影データｈｎ０〜ｈｎ９(図１３(ｂ))の１配列要素が生成される。従って、全配列要素が揃うのは、各水平方向ブロックｈｂ０〜ｈｂ９の最終の水平ラインの入力が完了した時点である。なお、データ配列Ｍｈは、垂直ラインの全画素数(例えば４８０)の配列要素を有しているが、(１，−１)のような２タップフィルタでは有効要素が垂直ラインの全画素数−１(例えば４７９)、(−１，２，−１)のような３タップフィルタでは有効要素が垂直ラインの全画素数−２(例えば４７８)となる。
【０１５３】
具体的には、図７に示すように入力端子４３１を介して入力された各水平方向ブロックｈｂ０〜ｈｂ９の画像データ(水平方向のエッジ強調が施された画像データ)が、加算器４３２に入力される。加算器４３２では、まず入力された水平方向ブロックの１水平ラインの先頭では、水平方向射影一時記憶メモリ４３３内のデータを読み出すことなく、水平方向射影一時記憶メモリ４３３に書き込まれる。次に、加算器４３２では、水平方向射影一時記憶メモリ４３３に記憶されている１水平ラインの前画素までの加算結果を読み出し、入力端子４３１から入力される水平方向ブロックの１水平ラインの現画素との加算を行って、その加算結果を水平方向射影一時記憶メモリ４３３に書き戻す。そして、水平方向ブロックにおける１水平ラインの最終画素が加算器４３２に入力されると、水平方向射影一時記憶メモリ４３３に保存された前画素までの加算結果を読み出し、入力端子４３１から入力される水平方向ブロックの１水平ラインの最終画素との加算を行って、その加算結果、つまり水平方向ブロックの１水平ラインの全画素が加算されたデータを水平方向ブロックの１水平ラインに関する射影データとして、出力端子４３４から第１の水平方向ブロック射影ラインメモリ４４と第１の水平方向ブロック射影データ最大値保存部４５とに出力する。なお、加算器４３２において水平方向ブロックの１水平ラインの全画素が加算された射影データを水平方向射影一時記憶メモリ４３３に一旦記憶させ、次の水平方向ブロックの１水平ラインの先頭画素が入力される際に、水平方向射影一時記憶メモリ４３３内の射影データを読み出して出力端子４３４から出力するようにしても良い。
【０１５４】
第１の水平方向ブロック射影ラインメモリ４４では、水平方向ブロック射影部４３から入力された現フレームの水平方向ブロック射影データを、第１の水平方向ブロック射影データとして水平方向ブロック毎に保存する。
【０１５５】
第１の水平方向ブロック射影ラインメモリ４４に保存された水平方向ブロック射影データは、必要なデータが揃った時点で、水平方向ブロック射影データ平滑化部５３に読み出され、平滑化処理がなされた後、第１の水平方向ブロック射影ラインメモリ４４に書き戻される。例えば、Ｐａ、Ｐｂ、Ｐｃという垂直方向に連続する３点を使って平滑化処理を行う場合には、「必要なデータが揃った時点」とは、垂直方向に３点が揃った時点ということになり、このとき、真ん中の点Ｐｂの平滑化処理が可能ということになる。水平方向ブロック射影データ平滑化部５３における平滑化処理の詳細については、後述する。
【０１５６】
第１の水平方向ブロック射影データ最大値保存部４５では、水平方向ブロック射影部４３から入力された水平方向ブロックの射影データに関する最大値を算出し、第１の水平方向ブロック射影データ最大値（現フレームの水平方向ブロック射影データ最大値）として保存する。
【０１５７】
第２の水平方向ブロック射影ラインメモリ４６は、第１の水平方向ブロック射影ラインメモリ４４から読み出された水平方向ブロック射影データを、前フレームに関する第２の水平方向ブロック射影データとして保存する。同様に、第２の水平方向ブロック射影データ最大値保存部４７では、第１の水平方向ブロック射影データ最大値保存部４５から出力された第１の水平方向ブロック射影データ最大値が、前フレームに関する第２の水平方向ブロック射影データ最大値（前フレームの水平方向ブロック射影データ最大値）として保存される。換言すれば、第１の水平方向ブロック射影データ最大値保存部４５に保存された現フレームの水平方向ブロック射影データ最大値は、次のフレームでは、第２の水平方向ブロック射影データ最大値保存部４７に前フレームの水平方向ブロック射影データ最大値として保存されることとなる。
【０１５８】
また、第２の水平方向ブロック射影データ最大値保存部４７では、算出された前フレームの水平方向ブロック射影データ最大値に基づき、第４の閾値を算出する。例えば、前フレームの水平方向ブロック射影データ最大値をＰ４mａxとすると、第４の閾値α４は次の式（３）で算出される。
【０１５９】
α４＝Ｐ４max×ｋ４・・・・・・・・(３)
ここで、ｋ４は予め定められた係数で、０＜ｋ４＜１である。
【０１６０】
なお、第４の閾値α４の演算は、上式(３)に限るものではなく、前フレームの水平方向ブロック射影データ最大値Ｐ４maxが大きくなれば第４の閾値α４が大きくなるものであれば良く、また変換テーブルを使用しても良い。また、第４の閾値α４については、水平方向ブロック毎の第２の水平方向ブロック射影データ最大値を使用するのは必須でなく、例えば前フレームの画像全体についての水平方向ブロック射影データの最大値を用いて第４の閾値を算出し、画像全体で同じ第４の閾値を採用しても良い。
【０１６１】
第２の水平方向ブロック射影データ最大値保存部４７は、前フレームに関する第２の水平方向ブロック射影データ最大値に基づき、第３の閾値（所定の一定値）が設定される。例えば、前フレームの水平方向ブロック射影データ最大値をＰ３mａxとすると、第３の閾値α３は次の式（４）で算出される。
【０１６２】
α３＝Ｐ３max×ｋ３・・・・・・・・(４)
ここで、ｋ３は予め定められた係数で、０＜ｋ３＜１である。
【０１６３】
なお、第３の閾値α３の演算は、上式(４)に限るものではなく、前フレームの水平方向ブロック射影データ最大値Ｐ３maxが大きくなれば第３の閾値α３が大きくなるものであれば良く、また変換テーブルを使用しても良い。また、第３の閾値α３については、水平方向ブロック毎の第２の水平方向ブロック射影データ最大値を使用するのは必須でなく、例えば前フレームの画像全体についての水平方向ブロック射影データの最大値を用いて第３の閾値を算出し、画像全体で同じ第３の閾値を採用しても良い。
【０１６４】
第３の閾値交差点探索部４８では、第２の水平方向ブロック射影ラインメモリ４６から読み出された第２の水平方向ブロック射影データと、第２の水平方向ブロック射影データ最大値保存部４７から出力された第３の閾値との交差点(第３の閾値交差点)を垂直方向に探索する。この第３の閾値交差点探索部４８で得られた第３の閾値交差点の情報は、水平方向ブロック射影データ読み出し部４９と水平方向ブロック垂直方向動きベクトル算出部５０とに入力される。
【０１６５】
水平方向ブロック射影データ読み出し部４９は、第３の閾値交差点探索部４８から出力された第３の閾値交差点を中心とした動きベクトル検出範囲に対応した現フレームの(第１の)水平方向ブロック射影データを第１の水平方向ブロック射影ラインメモリ４４から読み出す。すなわち、第３の閾値交差点をＢ(ｉ)（ただしｉ＝１,２,・・・ｑで、ｑは検出された第３の閾値交差点の総数）とし、動きベクトル検出範囲を第３の閾値交差点を中心とした(−Ｕ)から(＋Ｕ)（ただしＵは正の整数）の範囲とすると、第１の水平方向ブロック射影ラインメモリ４４から読み出される射影データは、垂直方向において(Ｂ(ｉ)−Ｕ)から(Ｂ(ｉ)＋Ｕ)までの範囲にある第１の水平方向ブロック射影データの部分データとなる。
【０１６６】
この水平方向ブロック射影データ読み出し部４９によって第１の水平方向ブロック射影ラインメモリ４４から読み出された第１の水平方向ブロック射影データは、水平方向ブロック垂直方向動きベクトル算出部５０に出力される。
【０１６７】
水平方向ブロック射影データ読み出し部４９から出力された第１の水平方向ブロック射影データは、図８に示す水平方向ブロック垂直方向動きベクトル算出部５０の入力端子５０１を介してｎ値化器５０４に入力される。このｎ値化器５０４では、第２の水平方向ブロック射影データ最大値保存部４７から出力され、入力端子５０２を介して入力された第４の閾値に基づき、第１の水平方向ブロック射影データをｎ値化する。すなわち、ｎ値化器５０４は、水平方向ブロック射影データ読み出し部４９で抽出された現フレームの射影データに関するデータ配列Ｍｈ（図１３(ｂ)）の各配列要素のデータ長を圧縮する。このｎ値化器５０４の処理については、上述したｎ値化器３１４と同様の処理を行い、例えば３値化処理が実行される。すなわち、ｎ値化器５０４における３値化処理では、前フレームの射影データにおけるデータ配列Ｍｈの配列要素の最大値に基づき設定される第４の閾値α４(α４＞０)に関して、水平方向ブロック射影データ読み出し部４９で抽出された現フレームの射影データに関する配列要素の値が、(−α４)より小さい場合、(−α４)以上でα４以下の場合、およびα４より大きい場合の３段階による３値化が行われる。なお、ｎ値化器５０４においては、ｎ値化器３１４と同じ特性を有するのは必須でなく、ｎ値化器５０４と異なる特性を有しても良い。
【０１６８】
以上で説明した第３の閾値交差点探索部４８、水平方向ブロック射影データ読み出し部４９および水平方向ブロック垂直方向動きベクトル算出部５０の動作について、図１４（ａ）、図１４（ｂ）および図１４（ｃ）を参照しつつ具体的に説明する。なお、図１４(ａ)および図１４(ｂ)の横軸は、射影データのデータ配列Ｍｈ(図１３(ｂ))の配列要素の位置を示している。また、図１４(ａ)では、第３の閾値交差点Ｂ(１)〜Ｂ(６)それぞれを丸印で表している。
【０１６９】
第３の閾値交差点探索部４８では、図１４(ａ)に示すように前フレームに関する第２の垂直方向ブロック射影データＷ４の波形において、第２の水平方向ブロック射影データ最大値保存部４７から出力された第３の閾値α３と交差する第３の閾値交差点Ｂ(１)〜Ｂ(６)が求められる。すなわち、第３の閾値交差点探索部４８は、前フレームに対して水平方向ブロック射影部４３で得られた射影データに関して射影データのデータ配列Ｍｈ（図１３(ｂ)）の要素順に配列要素の値をグラフ化した波形Ｗ４と、配列要素の値が第３の閾値(所定の一定値)α３となる一次関数の直線とが交差する各第３の閾値交差点の配列要素の位置を特定する。
【０１７０】
次に、水平方向ブロック射影データ読み出し部４９では、図１４(ａ)に示す各第３の閾値交差点Ｂ(１)〜Ｂ(６)を中心とした所定の動きベクトル検出範囲について第１の水平方向ブロック射影ラインメモリ４４から現フレームの水平方向ブロック射影データが読み出される。すなわち、水平方向ブロック射影データ読み出し部４９は、各第３の閾値交差点における射影データ(データ配列)の配列要素の位置を中心とした所定範囲のデータ配列を、水平方向ブロック射影部４３で得られた現フレーム(後フレーム)の射影データから抽出する。例えば第３の閾値交差点Ｂ(４)に関しては、図１４(ｂ)に示すように第３の閾値交差点Ｂ(４)を中心に(Ｂ(４)−Ｕ)から(Ｂ(４)＋Ｕ)までの範囲(矩形の破線内の波形部分)に対応する第１の水平方向ブロック射影データＷ３が読み出される。
【０１７１】
そして、水平方向ブロック射影データ読み出し部４９によって読み出された第１の水平方向ブロック射影データは、第２の水平方向ブロック射影データ最大値保存部４７から出力された第４の閾値α４を用いて、水平方向ブロック垂直方向動きベクトル算出部５０のｎ値器５０４でｎ値化処理される。例えば第３の閾値交差点Ｂ(４)に関しては、図１４(ｂ)に示す第４の閾値α４および(−α４)に対する第１の水平方向ブロック射影データＷ３の大小関係に基づき、第３の閾値交差点Ｂ(４)を中心に(Ｂ(４)−Ｕ)から(Ｂ(４)＋Ｕ)までの範囲(矩形の破線内の波形部分)について、図１４(ｃ)のように第１の水平方向ブロック射影データが３値化処理される。これにより、現フレームの水平方向ブロック射影データが「−１」、「０」または「１」で表されることとなる。
【０１７２】
ｎ値化器５０４では、第３の閾値交差点探索部４８から出力される全ての第３の閾値交差点について、図１４(ｃ)に示すようなｎ値化処理が行われる。
【０１７３】
次に、加算器５０５(図８)では、入力端子５０３を介して第３の閾値交差点探索部４８から出力された第３の閾値交差点を中心に、ｎ値化器５０４でｎ値化された第１の水平方向ブロック射影データと、垂直方向動きベクトル加算メモリ５０６から読み出されたひとつ前までのｎ値化された第１の水平方向ブロック射影データの加算値とを加算し、その加算結果を垂直方向動きベクトル加算メモリ５０６に再び記憶させる。そして、第３の閾値交差点探索部４８で検出された全ての第３の閾値交差点のうち最後のものに関するｎ値化された第１の水平方向ブロック射影データを加算器５０５で加算して１つの水平方向ブロックについての加算処理を終了する際には、その加算結果をピーク検出器５０７に出力するようにする。なお、加算器５０５での加算処理終了後に、全ての第３の閾値交差点に関する加算結果を記憶している垂直方向動きベクトル加算メモリ５０６から、その加算結果をピーク検出部５０７が読み出すようにしても良い。
【０１７４】
ピーク検出器５０７には、第３の閾値交差点探索部４８で検出された全ての第３の閾値交差点について各第３の閾値交差点を中心とした動きベクトル検出範囲（上述した±Ｕの範囲）に対応するｎ値化済みの第１の水平方向ブロック射影データを加算したデータ（以下では「水平方向ブロックｎ値化データ」ともいう）が入力されるが、この水平方向ブロックｎ値化データに関するピーク値がピーク検出器５０７で検出される。このピーク検出器５０７において検出される水平方向ブロックｎ値化データのピーク位置が、その水平方向ブロックから得られる垂直方向動きベクトルとなり、出力端子５０８を介して垂直方向動き決定部５１に出力される。
【０１７５】
以上で説明した加算器５０５およびピーク検出部５０７の動作について、図１５（ａ）および図１５（ｂ）を参照しつつ具体的に説明する。なお、図１５(ａ)では、図１４(ａ)に示す第３の閾値交差点Ｂ(１)〜Ｂ(６)を中心とした動きベクトル検出範囲(±Ｕの範囲)において第１の水平方向ブロック射影データを３値化したものを概念的に示している。
【０１７６】
加算器５０５において、図１５(ａ)に示す第３の閾値交差点Ｂ(１)〜Ｂ(６)周辺の３値化データが順次に入力されると、これらのデータが加算され、図１５(ｂ)に示すような水平方向ブロックｎ値化データが生成される。具体的には、加算器５０５において水平方向ブロック射影データ読み出し部４９により水平方向ブロック射影データ（データ配列Ｍｈ(図１３(ｂ))）から抽出されｎ値器５０４でデータ長が圧縮された現フレームに係る動きベクトル検出範囲(所定範囲)のデータ配列それぞれについて、各第３の閾値交差点の配列要素の位置に対して相対位置が同じ配列要素同士の値が加算されることとなる。
【０１７７】
加算器５０５で生成された水平方向ブロックｎ値化データがピーク検出器５０７に入力されると、その水平方向ブロックの垂直方向動きベクトルとして図１５(ｂ)に示す垂直方向のピーク位置ｖｖが検出される。すなわち、ピーク検出器５０７では、加算器５０５で加算された加算結果に基づき、フレーム画像の垂直方向に関する動きベクトルが検出される。
【０１７８】
次に、水平方向ブロック射影データ平滑化部５３における平滑化処理について、図１６〜図１９を用いて詳細に説明する。第１の水平方向ブロック射影ラインメモリ４４に保存された水平方向ブロック射影データは、水平方向ブロック射影データ平滑化部５３に読み出され、平滑化処理がなされた後、第１の水平方向ブロック射影ラインメモリ４４に書き戻される。図１６〜図１９においては、Ｐａ、Ｐｂ、Ｐｃという垂直方向に連続する３点の配列要素を使って、平滑化処理を行う例を説明する。なお、ａ、ｂ、ｃは、それぞれ、点Ｐａ、Ｐｂ、Ｐｃでの値である。
【０１７９】
図１６は、射影データの変動パターンが「下に凸で、ａ＞０、ｂ≧０、ｃ＞０」の場合の平滑化処理を示している。
【０１８０】
動きベクトルの検出には、射影データにおいて連続する複数の点による漸増、漸減が重要であり、少数の点による凹凸は閾値との関係により精度を落とす原因となるため、除去することが望ましい。従って、図１６に示すパターンでは、中心の点Ｐｂの値ｂを値ａと値ｃとの平均値に変更することで、下に凸となった形状を解消する。
【０１８１】
同様に、図１７は、射影データの変動パターンが「上に凸で、ａ＜０、ｂ≦０、ｃ＜０」の場合の平滑化処理を示している。この場合にも、中心の点Ｐｂの値ｂを値ａと値ｃとの平均値に変更することで、上に凸となった形状を解消する。
【０１８２】
一方、図１８は、射影データの変動パターンが「下に凸で、ａ＞０、ｂ＜０、ｃ＞０」の場合の平滑化処理を示している。
【０１８３】
この場合、ｂ＜−α２であり、このまま処理を進めると、値ｂは、ｎ値化器５０４によるｎ値化処理（本例では３値化）の際に、第４の閾値−α４に基づいて−１とされ、前後の点Ｐａ、Ｐｃの値が１となった場合には、Ｐａ、Ｐｂ、Ｐｃの各点の値が、１、−１、１となって振動してしまう。それが、加算器５０５において、各第３の閾値交差点を中心に加算されることにより大きな振動（振幅）となり、本来、動きベクトル位置を指し示す位置に１つの大きなピークが立つべきところが、この振動により、本来のピーク位置でない部分においても大きな値を示すことになる。
【０１８４】
しかし、図１８に示す変動パターンに対しても図１６あるいは図１７と同様の平滑化処理を実行すると、射影データの特徴をｎ値化処理に正確に反映できなくなるという問題がある。
【０１８５】
すなわち、図１８に示すように、点Ｐｂの値ｂが第４の閾値−α４より小さく、点Ｐａおよび点Ｐｃの値が０より大きくなるような大きな変動を示す場合、点Ｐａは、点Ｐａより前の点Ｐｑ、Ｐｒ、・・・（・・・＜Ｐｒ＜Ｐｑ＜Ｐａ）により構成される前段の変動パターンの一部を構成し、点Ｐｂも前段の変動パターンを構成することが考えられる。
【０１８６】
また、点Ｐｃは、点Ｐｃより後の点Ｐｓ、Ｐｔ、・・・（Ｐｃ＜Ｐｓ＜Ｐｔ＜・・・）により構成される後段の変動パターンの一部を構成し、点Ｐｂも後段の変動パターンを構成することが考えられる。
【０１８７】
このような場合に、点Ｐｂの値ｂを単純に値ａと値ｃの平均値にする平滑化処理を行うと、前段の変動パターンおよび後段の変動パターンの特徴が改変されてしまうことになり、両パターンの特徴をｎ値化処理に正確に反映できなくなる。
【０１８８】
そこで、図１８に示すような変動パターンにおいては、点Ｐｂの値ｂを、ｎ値化処理を施した場合に「０」に圧縮される値（−β）に変更するという平滑化処理を行う。ここで、「０」に圧縮される値を被圧縮値と呼称し、当該被圧縮値は、第２の閾値−α４よりも大きく、０以下の固定された値に設定する。この処理により、前段の変動パターンおよび後段の変動パターンの特徴を損なうことなく、両パターンの特徴をｎ値化処理に正確に反映することが可能となる。
【０１８９】
図１９は、射影データの変動パターンが「上に凸で、ａ＜０、ｂ＞０、ｃ＜０」の場合の平滑化処理を示している。
【０１９０】
この場合、ｂ＞α４であり、このまま処理を進めると、値ｂはｎ値化器５０４によるｎ値化処理（本例では３値化）の際に、第４の閾値α４に基づいて１とされ、前後の点Ｐａ、Ｐｃの値が−１となった場合には、Ｐａ、Ｐｂ、Ｐｃの各点の値が、−１、１、−１となって振動してしまう。それが、加算器５０５において、各第３の閾値交差点を中心に加算されることにより大きな振動（振幅）となり、本来、動きベクトル位置を指し示す位置に１つの大きなピークが立つべきところが、この振動により、本来のピーク位置でない部分においても大きな値を示すことになる。
【０１９１】
しかし、図１９に示す変動パターンに対しても図１６あるいは図１７と同様の平滑化処理を実行すると、射影データの特徴をｎ値化処理に正確に反映できなくなるという問題がある。
【０１９２】
すなわち、図１９に示すように、点Ｐｂの値ｂが第４の閾値α４より大きく、点Ｐａおよび点Ｐｃの値が０より小さくなるような大きな変動を示す場合、点Ｐａは、点Ｐａより前の点Ｐｑ、Ｐｒ、・・・（・・・＜Ｐｒ＜Ｐｑ＜Ｐａ）により構成される前段の変動パターンの一部を構成し、点Ｐｂも前段の変動パターンを構成することが考えられる。
【０１９３】
また、点Ｐｃは、点Ｐｃより後の点Ｐｓ、Ｐｔ、・・・（Ｐｃ＜Ｐｓ＜Ｐｔ＜・・・）により構成される後段の変動パターンの一部を構成し、点Ｐｂも後段の変動パターンを構成することが考えられる。
【０１９４】
このような場合に、点Ｐｂの値ｂを単純に値ａと値ｃの平均値にする平滑化処理を行うと、前段の変動パターンおよび後段の変動パターンの特徴が改変されてしまうことになり、両パターンの特徴ｎ値化処理に正確に反映できなくなる。
【０１９５】
そこで、図１９に示すような変動パターンにおいては、点Ｐｂの値ｂを、ｎ値化処理を施した場合に「０」に圧縮される値（β）に変更するという平滑化処理を行う。ここで、「０」に圧縮される値を被圧縮値と呼称し、当該被圧縮値は、第４の閾値α４よりも小さく、０以上の固定された値に設定する。この処理により、前段の変動パターンおよび後段の変動パターンの特徴を損なうことなく、両パターンの特徴をｎ値化処理に正確に反映することが可能となる。
【０１９６】
なお、被圧縮値を０に設定する場合、後段の変動パターンの平滑化に点Ｐｂの被圧縮値を使用すると、後段の変動パターンの特徴が若干変わってしまうが、それを問題にしないのであれば、被圧縮値を０に設定しても良い。
【０１９７】
次に、図２０〜図２３に示す射影データの変動パターンの具体例を用いて、水平方向ブロック射影データ平滑化部５３における平滑化処理による効果を説明する。
【０１９８】
図２０は、平滑化処理を施さない場合の水平方向ブロック射影データの波形の一部である。図２０に示すように、当該波形は、隣り合う各点で上下振動する波形である。
【０１９９】
この振動の原因としては、前段回路における各種信号処理によるものの他、水平方向に限って言えば、例えば、カメラ信号などでライン毎に信号レベルが微妙に変動している場合に、それが、射影処理を行う毎に加算（強調）されて顕著化したことが考えられる。
【０２００】
図２１は、図２０に示した射影データに、３値化処理を行う場合の閾値αおよび−αを設定した状態を模式的に示す図であり、丸囲みした領域の各点で閾値を上下することが判る。従って、このまま３値化処理を行うと、３値化結果に大きな影響を与えることになる。
【０２０１】
ここで、図１６〜図１９を用いて説明した平滑化処理を、図２０に示した射影データに施した結果を図２２に示す。
【０２０２】
図２２においては、元の垂直方向ブロック射影データの波形の全体的な特徴を残しながら、その上に重畳されている振動が除去された波形となっている。
【０２０３】
例えば、丸囲みした領域Ｒ１１〜Ｒ１５は、図２１において閾値を上下する領域に含まれるデータを平滑化した領域であり、これらについては、図１６および図１７を用いて説明した、両隣のデータの平均値を用いる平滑化処理が施されている。
【０２０４】
また、領域Ｒ１０は、図２１において、例えば点２２、点２３および点２４で示されるように、点２３の値が閾値αより大きく、点２２および点２４の値が０より小さくなるような大きな変動を有する領域であり、これらについては、図１８および図１９を用いて説明した、３点のうち、中央の点の値をｎ値化処理を施した場合に「０」に圧縮される値に変更するという平滑化処理が施されている。
【０２０５】
以上のような平滑化処理を施すことで、閾値との交差点近傍における振動によって３値化値に大きな影響を与えることのない水平方向ブロック射影データが得られる。
【０２０６】
図２３は、第１の水平方向ブロック射影データをｎ値化器５０４によるｎ値化処理後に、加算器５０５により、第１の閾値交差点探索部４８で検出された全ての第３の閾値交差点について、各第３の閾値交差点を中心とした動きベクトル検出範囲（先に説明した±Ｕの範囲）で加算した水平方向ブロックｎ値化データの一例を図示したものである。ここで、Ｕは３１であり、横軸の目盛り３２が垂直方向動きベクトル０の位置を示している。
【０２０７】
そして、塗り潰した菱形で示されているデータが「平滑化処理なし」のデータであり、塗り潰した正方形で示されているデータが「平滑化処理あり」のデータである。
【０２０８】
両データによってそれぞれ表される波形のうち、「平滑化処理なし」の波形は大きく振動しており、各所で上に凸、下に凸となっている。一方で、「平滑化処理あり」の波形は元の波形の特徴を残しながらも、余計な凹凸を有していない波形となっている。
【０２０９】
図２３においては、「平滑化処理なし」の波形、「平滑化処理あり」の波形ともに、目盛り３０の位置に最大ピークがあるので、ピーク検出器５０７にて、動きベクトル検出範囲全体の最大ピーク位置を水平方向動きベクトルと判断する場合には、誤判定は発生しない。
【０２１０】
しかし、例えば、値が負→正→負と変化する「上に凸な塊」毎にピーク位置を算出し、その「塊」毎のピーク値の大小を評価することにより、周期性画像に対する動きベクトル算出結果を排除するような信頼性評価を行い、より算出精度を高めるような方法を採る場合においては、本例の「平滑化処理なし」の波形は「信頼性なし」と評価されるが、「平滑化処理あり」の波形では、正しい垂直方向動きベクトルを算出することができる。
【０２１１】
すなわち、「平滑化処理なし」の波形においては、目盛り３０以外に、目盛り２８、目盛り３２の他、多数の位置において、「塊」が形成され、それぞれ、４０、３０、２６という加算値を有している。本来、小さなピーク以外には唯一の大きなピークを持つべきものであり、このように、多数の位置において、同等の大きなピーク値を持つ場合には、その結果は信頼に値しない。
【０２１２】
一方、「平滑化処理あり」の波形では、目盛り３０で加算値２１、目盛り４２で加算値５、目盛り５で加算値３のピークを持つが、目盛り３０のピークは唯一の大きなピークと判断できるため、目盛り３０、すなわち、ベクトル−２を垂直方向動きベクトルと判断することができる。
【０２１３】
ピーク検出器５０７で水平方向ブロック毎に算出された垂直方向動きベクトルは、順次に出力端子５０８を介して垂直方向動きベクトル決定部５１に入力される。
【０２１４】
垂直方向動きベクトル決定部５１（図６）では、水平方向ブロック垂直方向動きベクトル算出部５０から順次に出力される各水平方向ブロックの垂直方向動きベクトルに基づき、画像全体の垂直方向動きベクトルが決定される。具体的には、各水平方向ブロックの垂直方向動きベクトルについてヒストグラムを作成し、ヒストグラム値の最も大きな垂直方向動きベクトルを、画面全体の垂直方向動きベクトルとするなどである。
【０２１５】
以上説明したように、水平方向ブロック射影データ平滑化部５３において、水平方向ブロック射影データの大きな傾向（特徴）を損なうことなく、水平方向ブロック射影データに重畳された変動ノイズを除去することができ、加算器５０５での加算結果として余計なピークを発生させることがないため、ピーク検出部５０７における誤判定と信頼性低下を軽減することができる。結果、信頼性のある水平方向ブロック垂直方向動きベクトルを算出することができる。
【０２１６】
＜効果＞
以上に説明したように、実施の形態１に係る動きベクトル検出装置１の水平方向動きベクトル検出部２においては、垂直方向ブロック射影データ平滑化部３４において、垂直方向ブロック射影データの大局的な傾向（特徴）を損なうことなく、重畳された局所的な変動ノイズを除去することができるため、信頼性のある垂直方向ブロック水平方向動きベクトルを検出することができる。その結果、信頼性の高い垂直方向ブロック水平方向動きベクトルに基づいて画像全体の水平方向動きベクトルを決定することが可能となる。
【０２１７】
また、垂直方向動きベクトル検出部４においては、水平方向ブロック射影データ平滑化部５３において、水平方向ブロック射影データの大局的な傾向（特徴）を損なうことなく、重畳された局所的な変動ノイズを除去することができるため、信頼性のある水平方向ブロック垂直方向動きベクトルを検出することができる。その結果、信頼性の高い水平方向ブロック垂直方向動きベクトルに基づいて画像全体の垂直方向動きベクトルを決定することが可能となる。
【０２１８】
また、動きベクトル検出装置１のビット数削減部２５では、第１の垂直方向ブロック射影データ最大値保存部２４で求められた現フレームの垂直方向射影データの最大値に基づき現フレームの垂直方向射影データのビット数を削減するため、以降の処理における演算量を抑制でき、動きベクトルの検出を一層迅速に行える。
【０２１９】
また、動きベクトル検出装置１では、前フレームに関する第２の垂直方向ブロック射影データの最大値を求め、この最大値に基づき第１の閾値α１を設定するため、適切な第１の閾値交差点を設定できる。同様に、前フレームに関する第２の水平方向ブロック射影データの最大値を求め、この最大値に基づき第３の閾値α３を設定するため、適切な第３の閾値交差点を設定できる。
【０２２０】
また、動きベクトル検出装置１では、垂直方向画像分割部２１でフレーム画像を垂直方向に分割した後に、各分割画像(垂直方向ブロック)について垂直方向のエッジを強調するため、垂直方向のエッジが強調された分割画像を簡易に生成できる。同様に、水平方向画像分割部４１でフレーム画像を水平方向に分割した後に、各分割画像(水平方向ブロック)について水平方向のエッジを強調するため、水平方向のエッジが強調された分割画像を簡易に生成できる。
【０２２１】
また、動きベクトル検出装置１では、垂直方向ブロック水平方向動きベクトル算出部３１のｎ値化器３１４において垂直方向ブロック射影データ読み出し部３０で読み出された射影データをｎ値化するため、以降の演算量を低減でき、動きベクトルの検出をより迅速に行える。特に、ｎ値化器３１４では、現フレームの垂直方向ブロック射影データの最大値に基づき設定される第２の閾値α２に基づき３値化するため、ダイナミックレンジを比較的大きく確保しつつ、リアルタイム処理可能な動きベクトル検出が実現できる。また、メモリも大幅に削減することができる。
【０２２２】
同様に、水平方向ブロック垂直方向動きベクトル算出部５０のｎ値化器５０４において水平方向ブロック射影データ読み出し部４９で読み出された射影データをｎ値化するため、以降の演算量を低減でき、動きベクトルの検出をより迅速に行える。特に、ｎ値化器５０４では、前フレームの水平方向ブロック射影データの最大値に基づき設定される第４の閾値α４に基づき３値化するため、適切な第４の閾値α４を設定でき、ダイナミックレンジを大きく損なうことなく、リアルタイム処理可能な動きベクトル検出が実現できる。また、メモリも大幅に削減することができる。
【０２２３】
＜実施の形態２＞
＜動きベクトル検出装置の構成＞
本発明の実施の形態２に係る動きベクトル検出装置１Ａについては、図１に示す実施の形態１の動きベクトル検出装置１と類似の構成を有しているが、水平方向動きベクトル検出部と垂直方向動きベクトル検出部との構成が異なっている。この動きベクトル検出装置１Ａにおける水平方向動きベクトル検出部２Ａおよび垂直方向動きベクトル検出部４Ａの構成について図２４および図２５を参照して説明する。
【０２２４】
図２４は、水平方向動きベクトル検出部２Ａの要部構成を示すブロック図である。なお、図２４では、実施の形態１と同様の機能を有する部位には同一の符号を付している。
【０２２５】
水平方向動きベクトル検出部２Ａでは、実施の形態１の水平方向動きベクトル検出部２に対して垂直方向画像分割部２１と垂直方向エッジ抽出フィルタリング部２２との配置が逆転している。以下では、この水平方向動きベクトル検出部２Ａの動作について説明する。
【０２２６】
図２に示すように水平ラインの画素走査を垂直方向に順に繰り返すことによって読み出されるフレーム画像が、水平方向動きベクトル検出部２Ａの入力端子２０に入力されると、垂直方向エッジ抽出フィルタリング部２２において垂直方向に延びるエッジ成分の抽出、換言すれば水平方向に急峻に変化する画像部分を強調するようなフィルタリング処理が施される。
【０２２７】
垂直方向エッジ抽出フィルタリング部２２で垂直方向のエッジが強調されたフレーム画像が垂直方向画像分割部２１に入力されると、垂直方向にブロック分割される。すなわち、垂直方向画像分割部２１では、エッジ強調が施されたフレーム画像を垂直方向に分割して得られる複数の画像領域(垂直方向ブロック)が設定される。これにより、以降の処理では、垂直方向ブロック毎に処理および管理が行われることとなる。
【０２２８】
垂直方向画像分割部２１で分割された画像データは、垂直方向ブロック射影部２３に入力されるが、この垂直方向ブロック射影部２３以降の処理は、実施の形態１の水平方向動きベクトル検出部２と同様の処理が行われる。
【０２２９】
図２５は、垂直方向動きベクトル検出部４Ａの要部構成を示すブロック図である。なお、図２５では、実施の形態１と同様の機能を有する部位には同一の符号を付している。
【０２３０】
垂直方向動きベクトル検出部４Ａでは、実施の形態１の垂直方向動きベクトル検出部４に対して水平方向画像分割部４１と水平方向エッジ抽出フィルタリング部４２との配置が逆転している。以下では、この垂直方向動きベクトル検出部４Ａの動作について説明する。
【０２３１】
図２に示すように水平ラインの画素走査を垂直方向に順に繰り返すことによって読み出されるフレーム画像が、垂直方向動きベクトル検出部４Ａの入力端子４０に入力されると、水平方向エッジ抽出フィルタリング部４２において水平方向に延びるエッジ成分の抽出、換言すれば垂直方向に急峻に変化する画像部分を強調するようなフィルタリング処理が施される。
【０２３２】
水平方向エッジ抽出フィルタリング部４２で水平方向のエッジが強調されたフレーム画像が水平方向画像分割部４１に入力されると、水平方向にブロック分割される。すなわち、水平方向画像分割部４１では、エッジ強調が施されたフレーム画像を水平方向に分割して得られる複数の画像領域(水平方向ブロック)が設定される。これにより、以降の処理では、水平方向ブロック毎に処理および管理が行われることとなる。
【０２３３】
水平方向画像分割部４１で分割された画像データは、水平方向ブロック射影部４３に入力されるが、この水平方向ブロック射影部４３以降の処理は、実施の形態１の垂直方向動きベクトル検出部４と同様の処理が行われる。
【０２３４】
以上の動きベクトル検出装置１Ａの動作により、実施の形態１と同様の効果を奏する。
【０２３５】
そして、動きベクトル検出装置１Ａでは、垂直方向エッジ抽出フィルタリング部２２でフレーム画像に対する垂直方向のエッジを強調した後に、エッジ強調されたフレーム画像を垂直方向画像分割部２１において垂直方向に分割するため、垂直方向のエッジが強調された分割画像を簡易に生成できる。
【０２３６】
同様に、水平方向エッジ抽出フィルタリング部４２でフレーム画像に対する水平方向のエッジを強調した後に、エッジ強調されたフレーム画像を水平方向画像分割部４１において水平方向に分割するため、水平方向のエッジが強調された分割画像を簡易に生成できる。
【０２３７】
なお、動きベクトル検出装置１Ａにおいては、垂直方向エッジ抽出フィルタリング部２２と水平方向エッジ抽出フィルタリング部４２とを別々に水平方向動きベクトル検出部２Ａおよび垂直方向動きベクトル検出部４Ａに配置するのは必須でなく、垂直方向エッジ抽出フィルタリング部２２および水平方向エッジ抽出フィルタリング部４２の双方の機能を一体化した水平／垂直方向エッジ抽出フィルタリング部を設けて、その出力を垂直方向画像分割部２１および水平方向画像分割部４１ぞれぞれに入力させるようにしても良い。
【０２３８】
＜変形例＞
上記の各実施の形態における垂直方向エッジ抽出フィルタリング部および水平方向エッジ抽出フィルタリング部については、エッジ抽出を行うフィルタリング処理後に、所定の閾値との大小関係を判別する閾値処理により例えば「エッジあり」「エッジなし」の２値化や、「正のエッジあり」「エッジなし」「負のエッジあり」の３値化を行うようにしても良い。このような閾値処理を行うことにより、所定の閾値以上の輝度変化(輝度勾配)を有するエッジを同一に扱うことが可能となる。
【０２３９】
上記の各実施の形態においては、ビット数削減部２５から出力されるデータを、例えばフレーム毎のスイッチ切替えによって第１の垂直方向ブロック射影ラインメモリ２６と第２の垂直方向ブロック射影ラインメモリ２７とに交互に入力させるようにしても良い。
【０２４０】
また、水平方向ブロック射影部４３から出力されるデータを、例えばフレームごとのスイッチ切替えによって第１の水平方向ブロック射影ラインメモリ４４と第２の水平方向ブロック射影ラインメモリ４６とに交互に入力させるようにしても良い。
【０２４１】
同様に、垂直(水平)方向ブロック射影部から出力されるデータを、例えばフレーム毎のスイッチ切替えによって第１の垂直(水平)方向ブロック射影データ最大値保存部と第２の垂直(水平)方向ブロック射影データ最大値保存部とに交互に入力させるようにしても良い。
【０２４２】
本発明における「前フレーム」には、後フレーム(例えば現在のフレーム)に対して１つだけ前のフレームに限らず、２つ以上前のフレームも含まれる。例えば、フレーム間引き処理により途中のフレームがスキップされている場合には、スキップされたフレームの前のフレームが含まれる。
【図面の簡単な説明】
【０２４３】
【図１】本発明の実施の形態１に係る動きベクトル検出装置１（１Ａ）の要部構成を示すブロック図である。
【図２】フレーム画像における画素走査方向を説明するための図である。
【図３】水平方向動きベクトル検出部２の要部構成を示すブロック図である。
【図４】垂直方向ブロック射影部２３の要部構成を示すブロック図である。
【図５】垂直方向ブロック水平方向動きベクトル算出部３１の要部構成を示すブロック図である。
【図６】垂直方向動きベクトル検出部４の要部構成を示すブロック図である。
【図７】水平方向ブロック射影部４３の要部構成を示すブロック図である。
【図８】水平方向ブロック垂直方向動きベクトル算出部５０の要部構成を示すブロック図である。
【図９】垂直方向画像分割部２１および垂直方向ブロック射影部２３の動作を説明するための図である。
【図１０】ｎ値化器３１４（５０４）におけるｎ値化処理を説明するための図である。
【図１１】第１の閾値交差点探索部２９、垂直方向ブロック射影データ読み出し部３０および垂直方向ブロック水平方向動きベクトル算出部３１の動作を説明するための図である。
【図１２】加算器３１５およびピーク検出部３１７の動作を説明するための図である。
【図１３】水平方向画像分割部４１および水平方向ブロック射影部４３の動作を説明するための図である。
【図１４】第３の閾値交差点探索部４８、水平方向ブロック射影データ読み出し部４９および水平方向ブロック垂直方向動きベクトル算出部５０の動作を説明するための図である。
【図１５】加算器５０５およびピーク検出部５０７の動作を説明するための図である。
【図１６】垂直方向ブロック射影データ平滑化部３４（水平方向ブロック射影データ平滑化部５３）における平滑化処理を説明するための図である。
【図１７】垂直方向ブロック射影データ平滑化部３４（水平方向ブロック射影データ平滑化部５３）における平滑化処理を説明するための図である。
【図１８】垂直方向ブロック射影データ平滑化部３４（水平方向ブロック射影データ平滑化部５３）における平滑化処理を説明するための図である。
【図１９】垂直方向ブロック射影データ平滑化部３４（水平方向ブロック射影データ平滑化部５３）における平滑化処理を説明するための図である。
【図２０】垂直方向ブロック射影データ平滑化部３４（水平方向ブロック射影データ平滑化部５３）における平滑化処理を説明するための射影データ波形の一例を示す図である。
【図２１】垂直方向ブロック射影データ平滑化部３４（水平方向ブロック射影データ平滑化部５３）における平滑化処理を説明するための射影データ波形の一例を示す図である。
【図２２】垂直方向ブロック射影データ平滑化部３４（水平方向ブロック射影データ平滑化部５３）における平滑化処理を説明するための射影データ波形の一例を示す図である。
【図２３】垂直方向ブロック射影データ平滑化部３４（水平方向ブロック射影データ平滑化部５３）における平滑化処理を行った場合と行わなかった場合の垂直方向ブロックｎ値化データ（水平方向ブロックｎ値化データ）の波形の一例を示す図である。
【図２４】本発明の実施の形態２に係る動きベクトル検出装置１Ａにおける水平方向動きベクトル検出部２Ａの要部構成を示すブロック図である。
【図２５】動きベクトル検出装置１Ａにおける垂直方向動きベクトル検出部４Ａの要部構成を示すブロック図である。
【符号の説明】
【０２４４】
１，１Ａ  動きベクトル検出装置、ｈｂ０〜ｈｂ９  水平方向ブロック、ｈｎ０〜ｈｎ９  水平方向ブロック射影データ、ｖｂ０〜ｖｂ７  垂直方向ブロック、ｖｎ０〜ｖｎ６  垂直方向ブロック射影データ、Ａ（１）〜Ａ（８）  第１の閾値交差点、α１  第１の閾値、α２  第２の閾値、Ｂ（１）〜Ｂ（６）  第３の閾値交差点、α３  第３の閾値、α４  第４の閾値。
【図１】
2008176590.tif 000003
【図２】
2008176590.tif 000004
【図３】
2008176590.tif 000005
【図４】
2008176590.tif 000006
【図５】
2008176590.tif 000007
【図６】
2008176590.tif 000008
【図７】
2008176590.tif 000009
【図８】
2008176590.tif 000010
【図９】
2008176590.tif 000011
【図１０】
2008176590.tif 000012
【図１１】
2008176590.tif 000013
【図１２】
2008176590.tif 000014
【図１３】
2008176590.tif 000015
【図１４】
2008176590.tif 000016
【図１５】
2008176590.tif 000017
【図１６】
2008176590.tif 000018
【図１７】
2008176590.tif 000019
【図１８】
2008176590.tif 000020
【図１９】
2008176590.tif 000021
【図２０】
2008176590.tif 000022
【図２１】
2008176590.tif 000023
【図２２】
2008176590.tif 000024
【図２３】
2008176590.tif 000025
【図２４】
2008176590.tif 000026
【図２５】
2008176590.tif 000027