(57)【要約】【課題】フレーム画像間の動きベクトルの検出を精度良く迅速に行える動きベクトル検出装置を提供する。【解決手段】前フレームと現在のフレーム(後フレーム)とに関するフレーム画像間の動きベクトルを検出する動きベクトル検出装置では、まずフレーム画像を垂直方向に分割した複数の画像領域について垂直方向のエッジを強調した後に、垂直方向に射影をとって１水平ライン分の射影データを生成する。次に、この射影データと第１の閾値との交差点を探索し、各交差点を中心とした動きベクトル検出範囲に相当する現フレームの射影データを抽出する。そして、抽出された各射影データを上記の各交差点からの距離毎に加算し、この加算結果からフレーム画像の水平方向に関する動きベクトルを検出する。以上により、動きベクトルの検出を精度良く迅速に行えることとなる。【選択図】図３
2008052472.tif 000002
【特許請求の範囲】
【請求項１】
時系列的に前後の関係となる前フレームと後フレームとに関するフレーム画像間の動きベクトルを検出する動きベクトル検出装置であって、
(a)水平ラインの画素走査を垂直方向に順に繰り返すことによって読み出されるフレーム画像に関して、前記フレーム画像における所定の画像領域について垂直方向のエッジを強調するエッジ強調手段と、
(b)前記エッジ強調手段でエッジが強調された画像について垂直方向に射影をとり、１水平ライン分のデータ配列を有する射影データを生成する射影手段と、
(c)前記前フレームに対して前記射影手段で得られた射影データに関して前記データ配列の要素順に配列要素の値をグラフ化した波形と、配列要素の値が所定の一定値となる直線とが交差する各交差点の配列要素の位置を特定する特定手段と、
(d)前記各交差点の配列要素の位置を中心とした所定範囲のデータ配列を、前記後フレームに対して前記射影手段で得られた射影データから抽出する抽出手段と、
(e)前記抽出手段で抽出された所定範囲のデータ配列それぞれについて、前記各交差点の配列要素の位置に対して相対位置が同じ配列要素同士の値を加算する加算手段と、
(f)前記加算手段で加算された加算結果に基づき、フレーム画像の水平方向に関する動きベクトルを検出する検出手段と、
を備えることを特徴とする動きベクトル検出装置。
【請求項２】
請求項１に記載の動きベクトル検出装置において、
前記射影データの配列要素において最大値を求める最大値取得手段と、
前記最大値取得手段で求められた最大値に基づき前記射影データに関する各配列要素のデータ長を削減する削減手段と、
前記後フレームについて前記削減手段でデータ長が削減された射影データを記憶する記憶手段と、
をさらに備え、
前記特定手段は、
(c-1)前記前フレームについて前記削減手段でデータ長が削減された射影データに関して前記データ配列の要素順に配列要素の値をグラフ化した波形と、配列要素の値が所定の一定値となる直線とが交差する各交差点の配列要素の位置を特定する位置特定手段、
を有するとともに、
前記抽出手段は、
(d-1)前記位置特定手段で特定された各交差点の配列要素の位置を中心とした所定範囲のデータ配列を、前記記憶手段に記憶されるデータ長が削減された後フレームの射影データから抽出する手段、
を有することを特徴とする動きベクトル検出装置。
【請求項３】
請求項１または請求項２に記載の動きベクトル検出装置において、
前記前フレームに関する射影データの配列要素において最大値を求める最大値特定手段、
をさらに備え、
前記所定の一定値は、前記最大値特定手段で求められた最大値に基づき設定されることを特徴とする動きベクトル検出装置。
【請求項４】
請求項１ないし請求項３のいずれかに記載の動きベクトル検出装置において、
前記エッジ強調手段は、
(a-1)前記フレーム画像を垂直方向に分割して得られる複数の画像領域を、前記所定の画像領域として設定する手段と、
(a-2)前記複数の画像領域それぞれについて垂直方向のエッジを強調する手段と、
を有することを特徴とする動きベクトル検出装置。
【請求項５】
請求項１ないし請求項３のいずれかに記載の動きベクトル検出装置において、
前記エッジ強調手段は、
(a-3)前記フレーム画像について垂直方向のエッジを強調する強調手段と、
(a-4)前記強調手段でエッジが強調されたフレーム画像を垂直方向に分割して得られる複数の画像領域を、前記所定の画像領域として設定する手段と、
を有することを特徴とする動きベクトル検出装置。
【請求項６】
請求項１ないし請求項５のいずれかに記載の動きベクトル検出装置において、
前記抽出手段で抽出された所定範囲のデータ配列に関する各配列要素のデータ長を圧縮する圧縮手段、
をさらに備え、
前記加算手段は、
(e-1)前記圧縮手段によりデータ長が圧縮された所定範囲のデータ配列それぞれについて、前記各交差点の配列要素の位置に対して相対位置が同じ配列要素同士の値を加算する手段、
を有することを特徴とする動きベクトル検出装置。
【請求項７】
請求項６に記載の動きベクトル検出装置において、
前記圧縮手段は、
前記抽出手段で抽出された所定範囲のデータ配列に関する各配列要素の値を３値化処理する手段、
を有し、
前記３値化処理では、前記後フレームの射影データにおける配列要素の最大値に基づき設定される閾値Ｔｈ（Ｔｈ＞０）に関して、前記抽出手段で抽出された射影データに関する配列要素の値が、(−Ｔｈ)より小さい場合、(−Ｔｈ)以上でＴｈ以下の場合、およびＴｈより大きい場合の３段階による３値化が行われることを特徴とする動きベクトル検出装置。
【請求項８】
時系列的に前後の関係となる前フレームと後フレームとに関するフレーム画像間の動きベクトルを検出する動きベクトル検出装置であって、
(a)水平ラインの画素走査を垂直方向に順に繰り返すことによって読み出されるフレーム画像に関して、前記フレーム画像における所定の画像領域について水平方向のエッジを強調するエッジ強調手段と、
(b)前記エッジ強調手段でエッジが強調された画像について水平方向に射影をとり、１垂直ライン分のデータ配列を有する射影データを生成する射影手段と、
(c)前記前フレームに対して前記射影手段で得られた射影データに関して前記データ配列の要素順に配列要素の値をグラフ化した波形と、配列要素の値が所定の一定値となる直線とが交差する各交差点の配列要素の位置を特定する特定手段と、
(d)前記各交差点の配列要素の位置を中心とした所定範囲のデータ配列を、前記後フレームに対して前記射影手段で得られた射影データから抽出する抽出手段と、
(e)前記抽出手段で抽出された所定範囲のデータ配列それぞれについて、前記各交差点の配列要素の位置に対して相対位置が同じ配列要素同士の値を加算する加算手段と、
(f)前記加算手段で加算された加算結果に基づき、フレーム画像の垂直方向に関する動きベクトルを検出する検出手段と、
を備えることを特徴とする動きベクトル検出装置。
【請求項９】
請求項８に記載の動きベクトル検出装置において、
前記前フレームに関する射影データの配列要素において最大値を求める最大値特定手段、
をさらに備え、
前記所定の一定値は、前記最大値特定手段で求められた最大値に基づき設定されることを特徴とする動きベクトル検出装置。
【請求項１０】
請求項８または請求項９に記載の動きベクトル検出装置において、
前記エッジ強調手段は、
(a-1)前記フレーム画像を水平方向に分割して得られる複数の画像領域を、前記所定の画像領域として設定する手段と、
(a-2)前記複数の画像領域それぞれについて水平方向のエッジを強調する手段と、
を有することを特徴とする動きベクトル検出装置。
【請求項１１】
請求項８または請求項９に記載の動きベクトル検出装置において、
前記エッジ強調手段は、
(a-3)前記フレーム画像について水平方向のエッジを強調する強調手段と、
(a-4)前記強調手段でエッジが強調されたフレーム画像を水平方向に分割して得られる複数の画像領域を、前記所定の画像領域として設定する手段と、
を有することを特徴とする動きベクトル検出装置。
【請求項１２】
請求項８ないし請求項１１のいずれかに記載の動きベクトル検出装置において、
前記抽出手段で抽出された所定範囲のデータ配列に関する各配列要素のデータ長を圧縮する圧縮手段、
をさらに備え、
前記加算手段は、
(e-1)前記圧縮手段によりデータ長が圧縮された所定範囲のデータ配列それぞれについて、前記各交差点の配列要素の位置に対して相対位置が同じ配列要素同士の値を加算する手段、
を有することを特徴とする動きベクトル検出装置。
【請求項１３】
請求項１２に記載の動きベクトル検出装置において、
前記圧縮手段は、
前記抽出手段で抽出された所定範囲のデータ配列に関する各配列要素の値を３値化処理する手段、
を有し、
前記３値化処理では、前記前フレームの射影データにおける配列要素の最大値に基づき設定される閾値Ｔｈ（Ｔｈ＞０）に関して、前記抽出手段で抽出された射影データに関する配列要素の値が、(−Ｔｈ)より小さい場合、(−Ｔｈ)以上でＴｈ以下の場合、およびＴｈより大きい場合の３段階による３値化が行われることを特徴とする動きベクトル検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、時系列的に前後の関係となる前フレームと後フレームとに関するフレーム画像間の動きベクトルを検出する動きベクトル検出装置に関するものである。
【背景技術】
【０００２】
手振れ補正などに用いられるフレーム画像間の動きベクトル検出技術としては、代表点マッチング方式を用いて、連続して取り込んだ画像から動きベクトルを検出するものがある。この代表点マッチング方式では、連続して取り込んだ画像において前フレームの画像の固定された位置に代表点を設定するとともに、現在のフレームの画像を２次元方向にずらしながら代表点の相関演算を行うことにより、相関の最も高くなるズレ量を動きベクトルとして検出する。
【０００３】
しかし、以上の動きベクトル検出技術では、代表点に一定以上の輝度勾配が存在することが必要であるため、例えば文書画像のような白黒の画像を対象とする場合には全ての代表点で輝度勾配が低くなって、動き量(動きベクトル)が精度良く検出できないこととなる。
【０００４】
この不具合を改善する技術としては、例えば特許文献１に開示されるものがある。この技術では、まず輝度勾配を持つ画像の特徴点を抽出し、抽出された特徴点を代表点として代表点マッチング処理を行うことにより、動きベクトルの良好な検出を可能としている。
【０００５】
【特許文献１】特許第３５３４５５１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１の技術では、輝度勾配が存在する代表点を確実に設定できるものの、依然としてフレーム画像において探索範囲の全体にわたって画素を少しずつずらしながら代表点の相関演算を行うため、代表点(特徴点)毎に相当の演算量が必要となる。よって、代表点の数を一定以下に抑えない限り、迅速な動きベクトルの検出が困難となってリアルタイム処理が難しくなる。一方、代表点が少なすぎると、動きベクトルの検出精度の低下を招いていまう。
【０００７】
本発明は、上記課題に鑑みてなされたものであり、フレーム画像間の動きベクトルの検出を精度良く迅速に行える動きベクトル検出装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の第１の局面に係る動きベクトル検出装置は、時系列的に前後の関係となる前フレームと後フレームとに関するフレーム画像間の動きベクトルを検出する動きベクトル検出装置であって、(a)水平ラインの画素走査を垂直方向に順に繰り返すことによって読み出されるフレーム画像に関して、前記フレーム画像における所定の画像領域について垂直方向のエッジを強調するエッジ強調手段と、(b)前記エッジ強調手段でエッジが強調された画像について垂直方向に射影をとり、１水平ライン分のデータ配列を有する射影データを生成する射影手段と、(c)前記前フレームに対して前記射影手段で得られた射影データに関して前記データ配列の要素順に配列要素の値をグラフ化した波形と、配列要素の値が所定の一定値となる直線とが交差する各交差点の配列要素の位置を特定する特定手段と、(d)前記各交差点の配列要素の位置を中心とした所定範囲のデータ配列を、前記後フレームに対して前記射影手段で得られた射影データから抽出する抽出手段と、(e)前記抽出手段で抽出された所定範囲のデータ配列それぞれについて、前記各交差点の配列要素の位置に対して相対位置が同じ配列要素同士の値を加算する加算手段と、(f)前記加算手段で加算された加算結果に基づき、フレーム画像の水平方向に関する動きベクトルを検出する検出手段とを備えるものである。
【０００９】
本発明の第２の局面に係る動きベクトル検出装置は、時系列的に前後の関係となる前フレームと後フレームとに関するフレーム画像間の動きベクトルを検出する動きベクトル検出装置であって、(a)水平ラインの画素走査を垂直方向に順に繰り返すことによって読み出されるフレーム画像に関して、前記フレーム画像における所定の画像領域について水平方向のエッジを強調するエッジ強調手段と、(b)前記エッジ強調手段でエッジが強調された画像について水平方向に射影をとり、１垂直ライン分のデータ配列を有する射影データを生成する射影手段と、(c)前記前フレームに対して前記射影手段で得られた射影データに関して前記データ配列の要素順に配列要素の値をグラフ化した波形と、配列要素の値が所定の一定値となる直線とが交差する各交差点の配列要素の位置を特定する特定手段と、(d)前記各交差点の配列要素の位置を中心とした所定範囲のデータ配列を、前記後フレームに対して前記射影手段で得られた射影データから抽出する抽出手段と、(e)前記抽出手段で抽出された所定範囲のデータ配列それぞれについて、前記各交差点の配列要素の位置に対して相対位置が同じ配列要素同士の値を加算する加算手段と、(f)前記加算手段で加算された加算結果に基づき、フレーム画像の垂直方向に関する動きベクトルを検出する検出手段とを備えるものである。
【発明の効果】
【００１０】
本発明に係る動きベクトル検出装置によれば、フレーム画像における所定の画像領域について垂直方向のエッジを強調し、エッジ強調された画像について垂直方向に射影をとって１水平ライン分のデータ配列を有する射影データを生成するとともに、前フレームの射影データに関してデータ配列の要素順に配列要素の値をグラフ化した波形と、配列要素の値が所定の一定値となる直線とが交差する各交差点の配列要素の位置を特定する。そして、各交差点の配列要素の位置を中心とした所定範囲のデータ配列を後フレームの射影データから抽出するとともに、抽出された所定範囲のデータ配列それぞれについて各交差点の配列要素の位置に対して相対位置が同じ配列要素同士の値を加算し、その加算結果に基づきフレーム画像の水平方向に関する動きベクトルを検出する。その結果、フレーム画像間の動きベクトルの検出を精度良く迅速に行える。
【００１１】
また、本発明に係る動きベクトル検出装置によれば、フレーム画像における所定の画像領域について水平方向のエッジを強調し、エッジ強調された画像について水平方向に射影をとって１垂直ライン分のデータ配列を有する射影データを生成するとともに、前フレームの射影データに関してデータ配列の要素順に配列要素の値をグラフ化した波形と、配列要素の値が所定の一定値となる直線とが交差する各交差点の配列要素の位置を特定する。そして、各交差点の配列要素の位置を中心とした所定範囲のデータ配列を後フレームの射影データから抽出するとともに、抽出された所定範囲のデータ配列それぞれについて各交差点の配列要素の位置に対して相対位置が同じ配列要素同士の値を加算し、その加算結果に基づきフレーム画像の垂直方向に関する動きベクトルを検出する。その結果、フレーム画像間の動きベクトルの検出を精度良く迅速に行える。
【発明を実施するための最良の形態】
【００１２】
＜実施の形態１＞
＜動きベクトル検出装置の構成＞
図１は、本発明の実施の形態１に係る動きベクトル検出装置１の要部構成を示すブロック図である。
【００１３】
動きベクトル検出装置１は、例えば動画像において画面内の被写体の動きを表す画像動きベクトルを検出するものであり、時系列的に前後の関係となる前フレームと後フレームとに関するフレーム画像間の動きベクトルが検出される。この動きベクトル検出装置１で検出された動きベクトルはビデオカメラの手振れ補正などに利用される。なお、動きベクトル検出装置１に入力されるフレーム画像は、図２に示すように水平方向の画素走査および垂直方向のライン走査を行うことによって読み出されるものとする。
【００１４】
動きベクトル検出装置１は、入力端子１１と、水平方向動きベクトル検出部２および垂直方向動きベクトル検出部４と、２つの出力端子１２、１３とを備えている。この水平方向動きベクトル検出部２および垂直方向動きベクトル検出部４については、その機能が例えばマイクロプロセッサによってソフトウェア的に実現されてもよく、また大半をハードウェア(一部をソフトウェア)で実現するようにしてもよい。もちろん、全機能をハードウェアで実現してもよいことは言うまでもない。
【００１５】
入力端子１１には、例えばビデオカメラ内の撮像素子で取得された画像(動画像)データやビデオ信号などの画像データが入力される。入力端子１１に入力された画像データは、水平方向動きベクトル検出部２において水平方向の動きベクトルが検出され、その検出された水平方向動きベクトルが出力端子１２から出力される。
【００１６】
一方、垂直方向動きベクトル検出部４では、入力端子１１に入力された画像データについて垂直方向の動きベクトルが検出される。この垂直方向動きベクトル検出部４で検出された垂直方向動きベクトルは、出力端子１３から出力される。
【００１７】
以下では、水平方向動きベクトル検出部２と垂直方向動きベクトル検出部４との構成を順に説明する。
【００１８】
図３は、水平方向動きベクトル検出部２の要部構成を示すブロック図である。
【００１９】
水平方向動きベクトル検出部２は、入力端子２０と、垂直方向画像分割部２１と、垂直方向エッジ抽出フィルタリング部２２と、垂直方向ブロック射影部２３と、第１の垂直方向ブロック射影データ最大値保存部２４と、ビット数削減部２５と、第１の垂直方向ブロック射影ラインメモリ２６とを備えている。また、水平方向動きベクトル検出部２は、第２の垂直方向ブロック射影ラインメモリ２７と、第２の垂直方向ブロック射影データ最大値保存部２８と、第１の閾値交差点探索部２９と、垂直方向ブロック射影データ読み出し部３０と、垂直方向ブロック水平方向動きベクトル算出部３１と、水平方向動きベクトル決定部３２と、出力端子３３とを備えている。以上の水平方向動きベクトル検出部２の各部位について、その機能を簡単に説明する(具体的な動作は後で詳述する)。
【００２０】
垂直方向画像分割部２１は、入力端子２０に入力されたフレーム画像を垂直方向に分割し、垂直方向に分割したブロック(以下では「垂直方向ブロック」とも称する)を出力する。
【００２１】
垂直方向エッジ抽出フィルタリング部２２は、垂直方向画像分割部２１で分割されたブロック毎にエッジ抽出を行うためのフィルタリング処理を行う。
【００２２】
垂直方向ブロック射影部２３は、垂直方向エッジ抽出フィルタリング部２２から出力されるエッジ強調済みの垂直方向ブロックについて垂直方向に射影をとり、垂直方向ブロック毎に射影データを出力する。
【００２３】
第１の垂直方向ブロック射影データ最大値保存部２４は、垂直方向ブロック射影部２３から出力された現フレームの垂直方向ブロックの射影データにおける絶対値の最大値を保存する。また、第１の垂直方向ブロック射影データ最大値保存部２４は、現フレームの垂直方向ブロックの射影データ(以下では「第１の垂直方向ブロック射影データ」ともいう)の最大値に基づき、後述する第２の閾値を算出する。
【００２４】
ビット数削減部２５は、第１の垂直方向ブロック射影データ最大値保存部２４に保存された第１の垂直方向ブロック射影データの最大値に基づき、垂直方向ブロック射影部２３から出力された垂直方向ブロックの射影データのビット数を削減する。
【００２５】
第１の垂直方向ブロック射影ラインメモリ２６は、ビット数削減部２５でビット数が削減された第１の垂直方向ブロック射影データを保存する。
【００２６】
第２の垂直方向ブロック射影ラインメモリ２７は、第１の垂直方向ブロック射影ラインメモリ２６から送られた垂直方向ブロック射影データを、前フレームの垂直方向ブロックの射影データ(以下では「第２の垂直方向ブロック射影データ」ともいう)として保存する。
【００２７】
第２の垂直方向ブロック射影データ最大値保存部２８は、第１の垂直方向ブロック射影データ最大値保存部２４から出力された垂直方向ブロックの射影データの最大値を、前フレームに関する第２の垂直方向ブロック射影データの最大値として保存する。また、第２の垂直方向ブロック射影データ最大値保存部２８は、第２の垂直方向ブロック射影データの最大値に基づき、後述する第１の閾値を算出する。
【００２８】
第１の閾値交差点探索部２９は、第２の垂直方向ブロック射影ラインメモリ２７に保存される前フレームに係る第２の垂直方向ブロック射影データの波形と、第２の垂直方向ブロック射影データ最大値保存部２８で算出された第１の閾値とが交差する点を求め、この交差点（以下では「第１の閾値交差点」ともいう）の情報を出力する。
【００２９】
垂直方向ブロック射影データ読み出し部３０は、第１の閾値交差点探索部２９で求められた第１の閾値交差点を中心に、その前後の所定範囲(動きベクトル検出範囲)内にある第１の垂直方向ブロック射影データを、第１の垂直方向ブロック射影ラインメモリ２６から読み出す。
【００３０】
垂直方向ブロック水平方向動きベクトル算出部３１は、第１の垂直方向ブロック射影データ最大値保存部２４から出力される第２の閾値を用い、垂直方向ブロック射影データ読み出し部３０で読み出された第１の垂直方向ブロック射影データそれぞれをｎ値化（ｎは２以上の整数）してビット数の削減を行うとともに、ｎ値化された射影データを第１の閾値交差点からの距離毎に加算する。
【００３１】
水平方向動きベクトル決定部３２は、垂直方向ブロック水平方向動きベクトル算出部３１からの出力に基づき画像の水平方向動きベクトルを決定する。ここで決定された画像の水平方向動きベクトルは出力端子３３から出力される。
【００３２】
図４は、垂直方向ブロック射影部２３の要部構成を示すブロック図である。
【００３３】
垂直方向ブロック射影部２３は、入力端子２３１と、１水平ラインずつデータ加算を行う加算器２３２と、加算器２３２で加算されたデータを逐次保存するバッファメモリとしての垂直方向射影一時記憶メモリ２３３と、出力端子２３４とを備えている。
【００３４】
入力端子２３１には、垂直方向エッジ抽出フィルタリング部２２で垂直方向のエッジが強調された画像が垂直方向ブロック毎に入力される。入力端子２３１に入力された画像は、垂直方向ブロック毎に加算器２３２および垂直方向射影一時記憶メモリ２３３によって垂直方向に射影がとられる。具体的には、加算器２３２において垂直方向ブロックの１水平ライン分のデータと、垂直方向射影一時メモリ２３３から読み出された１水平ライン分のデータとが加算され、加算結果が垂直方向射影一時記憶メモリ２３３に再び戻されて記憶される。このような加算動作が繰り返されることにより垂直方向ブロックにおける全ての水平ラインの加算が終了すると、全水平ラインの加算データ、つまり垂直方向の射影データが出力端子２３４から出力されることとなる。
【００３５】
図５は、垂直方向ブロック水平方向動きベクトル算出部３１の要部構成を示すブロック図である。
【００３６】
垂直方向ブロック水平方向動きベクトル算出部３１は、３つの入力端子３１１〜３１３と、ｎ値化器３１４と、ｎ値化器３１４でｎ値化された第１の垂直方向ブロック射影データの加算を行う加算器３１５と、加算器３１５で加算されたデータを逐次保存するバッファメモリとしての水平方向動きベクトル加算メモリ３１６と、ピーク検出器３１７と、出力端子３１８とを備えている。
【００３７】
入力端子３１１には、垂直方向ブロック射影データ読み出し部３０から出力された第１の垂直方向ブロック射影データが入力され、入力端子３１２には、第１の垂直方向ブロック射影データ最大値保存部２４から出力された第２の閾値が入力される。また、入力端子３１３には、第１の閾値交差点探索部２９から出力された第１の閾値交差点の情報が入力される。
【００３８】
ｎ値化器３１４は、入力端子３１１から入力された第１の垂直方向ブロック射影データを、入力端子３１２から入力される第２の閾値に基づいてｎ値化(例えば３値化)する。
【００３９】
加算器３１５は、ｎ値化器３１４でｎ値化された第１の垂直方向ブロック射影データと、水平方向動きベクトル加算メモリ３１６から読み出されたデータとを第１の閾値交差点を中心として加算し、加算結果を水平方向動きベクトル加算メモリ３１６に再び記憶させる。このような加算動作が繰り返されることにより垂直方向ブロックに関する全ての第１の閾値交差点についての加算が終了すると、垂直方向ブロックに関する加算データがピーク検出器３１７に出力される。
【００４０】
ピーク検出器３１７は、加算器３１５から出力された加算データにおけるピーク位置（後述する水平方向動きベクトル）を検出する。このピーク検出器３１７で検出されたピーク位置は、出力端子３１８を介して水平方向動きベクトル決定部３２に入力されることとなる。
【００４１】
次に、垂直方向動きベクトル検出部４の構成を説明する。
【００４２】
図６は、垂直方向動きベクトル検出部４の要部構成を示すブロック図である。
【００４３】
垂直方向動きベクトル検出部４は、入力端子４０と、水平方向画像分割部４１と、水平方向エッジ抽出フィルタリング部４２と、水平方向ブロック射影部４３と、第１の水平方向ブロック射影ラインメモリ４４と、第１の水平方向ブロック射影データ最大値保存部４５とを備えている。また、垂直方向動きベクトル検出部４は、第２の水平方向ブロック射影ラインメモリ４６と、第２の水平方向ブロック射影データ最大値保存部４７と、第３の閾値交差点探索部４８と、水平方向ブロック射影データ読み出し部４９と、水平方向ブロック垂直方向動きベクトル算出部５０と、垂直方向動きベクトル決定部５１と、出力端子５２とを備えている。以上の垂直方向動きベクトル検出部４の各部位について、その機能を簡単に説明する(具体的な動作は後で詳述する)。
【００４４】
水平方向画像分割部４１は、入力端子４０に入力されたフレーム画像を水平方向に分割し、水平方向に分割したブロック(以下では「水平方向ブロック」とも称する)を出力する。
【００４５】
水平方向エッジ抽出フィルタリング部４２は、水平方向画像分割部４１で分割されたブロック毎にエッジ抽出を行うためのフィルタリング処理を行う。
【００４６】
水平方向ブロック射影部４３は、水平方向エッジ抽出フィルタリング部４２から出力されるエッジ強調済みの水平方向ブロックについて水平方向に射影をとり、水平方向ブロック毎に射影データを出力する。
【００４７】
第１の水平方向ブロック射影ラインメモリ４４は、水平方向ブロック射影部４３から出力された水平方向ブロックの射影データを、現フレームの水平方向ブロック射影データ（以下では「第１の水平方向ブロック射影データ」ともいう）として保存する。
【００４８】
第１の水平方向ブロック射影データ最大値保存部４５は、水平方向ブロック射影部４３から出力された現フレームの水平方向ブロックの射影データの最大値を保存する。
【００４９】
第２の水平方向ブロック射影ラインメモリ４６は、第１の水平方向ブロック射影ラインメモリ４４から送られた水平方向ブロック射影データを、前フレームの水平方向ブロックの射影データ(以下では「第２の水平方向ブロック射影データ」ともいう)として保存する。
【００５０】
第２の水平方向ブロック射影データ最大値保存部４７は、第１の水平方向ブロック射影データ最大値保存部４５から出力された水平方向ブロックの射影データの最大値を、前フレームに関する第２の水平方向ブロック射影データの最大値として保存する。また、第２の水平方向ブロック射影データ最大値保存部４７は、前フレームに関する第２の水平方向ブロック射影データの最大値に基づき、後述する第３の閾値および第４の閾値を算出する。
【００５１】
第３の閾値交差点探索部４８は、第２の水平方向ブロック射影ラインメモリ４６に保存される前フレームに係る第２の水平方向ブロック射影データと、第２の水平方向ブロック射影データ最大値保存部４７で算出された第３の閾値とが交差する点を求め、この交差点（以下では「第３の閾値交差点」ともいう）の情報を出力する。
【００５２】
水平方向ブロック射影データ読み出し部４９は、第３の閾値交差点探索部４８で求められた第３の閾値交差点を中心に、その前後の所定範囲(動きベクトル検出範囲)内にある第１の水平方向ブロック射影データを、第１の水平方向ブロック射影ラインメモリ４４から読み出す。
【００５３】
水平方向ブロック垂直方向動きベクトル算出部５０は、第２の水平方向ブロック射影データ最大値保存部４７から出力される第４の閾値を用い、水平方向ブロック射影データ読み出し部４９で読み出された第１の水平方向ブロック射影データそれぞれをｎ値化（ｎは２以上の整数）してビット数の削減を行うとともに、ｎ値化された射影データを第３の閾値交差点からの距離毎に加算する。
【００５４】
垂直方向動きベクトル決定部５１は、水平方向ブロック垂直方向動きベクトル算出部５０からの出力に基づき画像の垂直方向動きベクトルを決定する。ここで決定された画像の垂直方向動きベクトルは出力端子５２から出力される。
【００５５】
図７は、水平方向ブロック射影部４３の要部構成を示すブロック図である。
【００５６】
水平方向ブロック射影部４３は、入力端子４３１と、水平方向ブロックの１水平ラインデータの加算を行う加算器４３２と、加算器４３２で加算されたデータを逐次保存するバッファメモリとしての水平方向射影一時記憶メモリ４３３と、出力端子４３４とを備えている。
【００５７】
入力端子４３１には、水平方向エッジ抽出フィルタリング部４２で水平方向のエッジが強調された画像が入力される。入力端子４３１に入力された画像は、水平方向ブロック毎に加算器４３２および水平方向射影一時記憶メモリ４３３によって水平方向に射影がとられる。具体的には、水平方向ブロック内の１水平ラインの画素について、入力端子４３１から入力された画素と、前画素までに加算器４３２で加算され水平方向射影一時記憶メモリ４３３に記憶された加算結果を、加算器４３２で加算し、その加算結果を再び水平方向射影一時記憶メモリ４３３に戻し記憶する。このような加算動作が繰り返されることにより水平方向ブロックにおける１水平ラインの加算が終了すると、その水平方向ブロックの１水平ラインの全画素の加算データ、つまり水平方向の射影データが出力端子４３４から出力されることとなる。以下、同様にして、次の水平方向ブロックの水平方向の射影データが処理され、１水平ラインについて全ての水平方向ブロックの処理が終了すると、次の１水平ラインの処理がなされる。
【００５８】
図８は、水平方向ブロック垂直方向動きベクトル算出部５０の要部構成を示すブロック図である。
【００５９】
水平方向ブロック垂直方向動きベクトル算出部５０は、３つの入力端子５０１〜５０３と、ｎ値化器５０４と、ｎ値化器５０４でｎ値化された第１の水平方向ブロック射影データの加算を行う加算器５０５と、加算器５０５で加算されたデータを逐次保存するバッファメモリとしての垂直方向動きベクトル加算メモリ５０６と、ピーク検出器５０７と、出力端子５０８とを備えている。
【００６０】
入力端子５０１には、水平方向ブロック射影データ読み出し部４９から出力された第１の水平方向ブロック射影データが入力され、入力端子５０２には、第２の水平方向ブロック射影データ最大値保存部４７から出力された第４の閾値が入力される。また、入力端子５０３には、第３の閾値交差点探索部４８から出力された第３の閾値交差点の情報が入力される。
【００６１】
ｎ値化器５０４は、入力端子５０１から入力された第１の水平方向ブロック射影データを、入力端子５０２から入力される第４の閾値に基づいてｎ値化(例えば３値化)する。
【００６２】
加算器５０５は、ｎ値化器５０４でｎ値化された第１の水平方向ブロック射影データと、垂直方向動きベクトル加算メモリ５０６から読み出されたデータとを第３の閾値交差点を中心として加算し、加算結果を垂直方向動きベクトル加算メモリ５０６に再び記憶させる。このような加算動作が繰り返されることにより水平方向ブロックに関する全ての第３の閾値交差点についての加算が終了すると、水平方向ブロックに関する加算データがピーク検出器５０７に出力される。
【００６３】
ピーク検出器５０７は、加算器５０５から出力された加算データにおけるピーク位置（後述する垂直方向動きベクトル）を検出する。このピーク検出器５０７で検出されたピーク位置は、出力端子５０８を介して垂直方向動きベクトル決定部５１に入力されることとなる。
【００６４】
以上のような構成を有する動きベクトル検出装置１の動作について、以下で説明する。
【００６５】
＜動きベクトル検出装置１の動作＞
まず、動きベクトル検出装置１において画像の水平方向の動きベクトルを検出する水平方向動きベクトル検出部２の動作を説明する。
【００６６】
図２のように水平ラインの画素走査を垂直方向に順に繰り返すことによって読み出されるフレーム画像が、図３に示す水平方向動きベクトル検出部２の入力端子２０に入力されると、垂直方向画像分割部２１で垂直方向にブロック分割される。すなわち、垂直方向画像分割部２１においては、フレーム画像において垂直方向に分割して得られる複数の画像領域(所定の画像領域)が設定される。これにより、以降の処理では、垂直方向ブロック毎に処理および管理が行われることとなる。
【００６７】
垂直方向画像分割部２１では、例えば図９(ａ)に示すように６４０画素×４８０画素の画像データが、垂直方向に６４画素の幅(分割幅)を有した７個の垂直方向ブロックｖｂ０〜ｖｂ６に分割される。なお、垂直方向の最下段の画像データｖｂ７は水平方向動きベクトルの検出において利用されないこととなるが、フレーム画像の大部分を占める７つの垂直方向ブロックｖｂ０〜ｖｂ６が水平方向動きベクトルの検出に使用されるため、検出精度の面で特に問題はないと考えられる。ここで、図９(ａ)に示す分割幅および分割数とするのは必須でなく、例えば分割数を１にしても良い。
【００６８】
垂直方向画像分割部２１で図９(ａ)のように７個の垂直方向ブロックｖｂ０〜ｖｂ６に分割された画像は、垂直方向エッジ抽出フィルタリング部２２において垂直方向に延びるエッジ成分の抽出、換言すれば水平方向に急峻に変化する画像部分を強調するようなフィルタリング処理が施される。このフィルタリング処理で用いられるフィルタとしては、単純に水平方向に隣接する画素との差分を取る(１,−１)の２タップフィルタや、２次微分に相当する(−１,２,−１)の３タップフィルタなどの使用が可能である。なお、このようなフィルタを使用するのは必須でなく、水平方向に輝度変化が大きくなる画像部分において出力値が上昇するフィルタであれば良い。
【００６９】
垂直方向エッジ抽出フィルタリング部２２で各垂直方向ブロック(画像領域)ｖｂ０〜ｖｂ６毎に垂直方向のエッジが強調された画像データは、垂直方向ブロック射影部２３に入力され、垂直方向ブロック射影部２３で垂直方向に射影される。この射影により、垂直方向の(ライン間で)ノイズ成分を低減でき、また垂直方向のエッジ成分をより強調できるため、特徴点に対応する垂直方向エッジを際立たせて動きベクトル検出精度の向上を図れることとなる。垂直方向ブロック射影部２３の動作について、図９(ｂ)の概念図を参照しつつ説明する。
【００７０】
垂直方向ブロック射影部２３では、図９(ａ)に示す各垂直方向ブロックｖｂ０〜ｖｂ６の入力が完了した時点、つまりエッジ強調された各垂直方向ブロックｖｂ０〜ｖｂ６における最終ラインの最終画素が入力された時点で、１水平ライン分のデータ配列Ｍｖを有する垂直方向ブロック射影データｖｎ０〜ｖｎ６(図９(ｂ))それぞれの全配列要素が生成される。なお、データ配列Ｍｖは、水平ラインの全画素数(例えば６４０)の配列要素を有しているが、(１，−１)のような２タップフィルタでは有効要素が水平ラインの全画素数−１(例えば６３９)、(−１，２，−１)のような３タップフィルタでは有効要素が水平ラインの全画素数−２(例えば６３８)となる。
【００７１】
具体的には、図４に示すように入力端子２３１を介して入力された各垂直方向ブロックｖｂ０〜ｖｂ６の画像データ(垂直方向のエッジ強調が施された画像データ)が、順次に加算器２３２に入力される。加算器２３２では、まず入力された垂直方向ブロックの先頭の水平ラインが、垂直方向射影一時記憶メモリ２３３内のデータを読み出すことなく、垂直方向射影一時記憶メモリ２３３に書き込まれる。次に、加算器２３２では、垂直方向射影一時記憶メモリ２３３に記憶されている前ラインまでの加算結果を読み出し、入力端子２３１から入力される垂直方向ブロックの水平１ラインとの加算を行って、その加算結果を垂直方向射影一時記憶メモリ２３３に書き戻す。そして、垂直方向ブロックにおける最終の水平ラインが加算器２３２に入力されると、垂直方向射影一時記憶メモリ２３３に保存された前ラインまでの加算結果を読み出し、入力端子２３１から入力される垂直方向ブロックの最終ラインとの加算を行って、その加算結果、つまり垂直方向ブロックの全ての水平ラインが加算されたデータを垂直方向ブロックの射影データとして、出力端子２３４から第１の垂直方向ブロック射影データ最大値保存部２４とビット数削減部２５とに出力する。なお、加算器２３２において垂直方向ブロックの全水平ラインが加算された射影データを垂直方向射影一時記憶メモリ２３３に一旦記憶させ、次の垂直方向ブロックの先頭ラインが入力される際に、垂直方向射影一時記憶メモリ２３３内の射影データを読み出して出力端子２３４から出力するようにしても良い。
【００７２】
第１の垂直方向ブロック射影データ最大値保存部２４では、垂直方向ブロック射影部２３から出力された垂直方向ブロックの射影データに関する最大値を算出し、現フレームの垂直方向ブロック射影データ最大値として保存する。すなわち、第１の垂直方向ブロック射影データ最大値保存部２４は、現フレーム(後フレーム)の射影データに関するデータ配列Ｍｖ(図９(ｂ))の配列要素において最大値を求め、この最大値を記憶する。
【００７３】
また、第１の垂直方向ブロック射影データ最大値保存部２４では、算出された現フレームの垂直方向ブロック射影データ最大値に基づき、第２の閾値を算出する。例えば、現フレームの垂直方向ブロックの射影データに関する最大値をＰ１maxとすると、第２の閾値α２は次の式(１)で算出される。
【００７４】
α２＝Ｐ１max×ｋ１・・・・・・・・(１)
ここで、ｋ１は予め定められた係数で、０＜ｋ１＜１である。
【００７５】
なお、第２の閾値α２の演算は、上式(１)に限るものではなく、現フレームの垂直方向ブロック射影データ最大値Ｐ１maxが大きくなれば第２の閾値α２が大きくなるものであれば良く、また変換テーブルを使用しても良い。
【００７６】
ビット数削減部２５では、第１の垂直方向ブロック射影データ最大値保存部２４から入力された現フレームの垂直方向ブロック射影データの最大値に基づき射影データの有効ビットレンジを決定する。そして、この有効ビットレンジに基づき設定される上位無効ビットおよび下位無効ビットを垂直方向ブロック射影部２３から入力された垂直方向ブロック射影データから削減し、有効ビットのみで構成される現フレームの垂直方向ブロック射影データを第１の垂直方向ブロック射影ラインメモリ２６に出力する。
【００７７】
第１の垂直方向ブロック射影ラインメモリ２６は、ビット数削減部２５によってビット数が低減された現フレームの垂直方向ブロック射影データを、第１の垂直方向ブロック射影データとして垂直方向ブロック毎に保存する。すなわち、第１の垂直方向ブロック射影ラインメモリ２６には、第１の垂直方向ブロック射影データ最大値保存部２４で求められた射影データの最大値に基づきビット数削減部２５においてビット数(各配列要素のデータ長)が削減された現フレーム(後フレーム)の射影データが記憶される。
【００７８】
第２の垂直方向ブロック射影ラインメモリ２７は、第１の垂直方向ブロック射影ラインメモリ２６から読み出された垂直方向ブロック射影データを、前フレームに関する第２の垂直方向ブロック射影データとして保存する。同様に、第２の垂直方向ブロック射影データ最大値保存部２８では、第１の垂直方向ブロック射影データ最大値保存部２４から出力された垂直方向ブロック射影データの最大値が、前フレームに関する第２の垂直方向ブロック射影データの最大値として保存される。換言すれば、第１の垂直方向ブロック射影データ最大値保存部２４に保存された現フレームの垂直方向ブロック射影データの最大値は、次のフレームでは、第２の垂直方向ブロック射影データ最大値保存部２８に前フレームの垂直方向ブロック射影データの最大値として保存されることとなる。
【００７９】
第２の垂直方向ブロック射影データ最大値保存部２８は、前フレームに関する第２の垂直方向ブロック射影データの最大値に基づき、第１の閾値(所定の一定値)が設定される。例えば、前フレームの垂直方向ブロック射影データの最大値をＰ２maxとすると、第１の閾値α１は次の式(２)で算出される。
【００８０】
α１＝Ｐ２max×ｋ２・・・・・・・・(２)
ここで、ｋ２は予め定められた係数で、０＜ｋ２＜１である。
【００８１】
なお、第１の閾値α１の演算は、上式(２)に限るものではなく、前フレームの垂直方向ブロック射影データ最大値Ｐ２maxが大きくなれば第１の閾値α１が大きくなるものであれば良く、また変換テーブルを使用しても良い。
【００８２】
第１の閾値交差点探索部２９では、第２の垂直方向ブロック射影ラインメモリ２７から読み出された第２の垂直方向ブロック射影データと、第２の垂直方向ブロック射影データ最大値保存部２８から出力された第１の閾値との交差点(第１の閾値交差点)を水平方向に探索する。この第１の閾値交差点探索部２９で得られた第１の閾値交差点の情報は、垂直方向ブロック射影データ読み出し部３０と垂直方向ブロック水平方向動きベクトル算出部３１とに出力される。
【００８３】
垂直方向ブロック射影データ読み出し部３０は、第１の閾値交差点探索部２９から出力された第１の閾値交差点を中心とした動きベクトル検出範囲に対応した現フレームの(第１の)垂直方向ブロック射影データを第１の垂直方向ブロック射影ラインメモリ２６から読み出す。すなわち、第１の閾値交差点をＡ(ｉ)（ただしｉ＝１,２,・・・ｐで、ｐは検出された第１の閾値交差点の総数）とし、動きベクトル検出範囲を第１の閾値交差点を中心とした(−Ｖ)から(＋Ｖ)（ただしＶは正の整数）の範囲とすると、第１の垂直方向ブロック射影ラインメモリ２６から読み出される射影データは、水平方向において(Ａ(ｉ)−Ｖ)から(Ａ(ｉ)＋Ｖ)までの範囲にある第１の垂直方向ブロック射影データの部分データとなる。
【００８４】
この垂直方向ブロック射影データ読み出し部３０によって第１の垂直方向ブロック射影ラインメモリ２６から読み出された第１の垂直方向ブロック射影データは、垂直方向ブロック水平方向動きベクトル算出部３１に出力される。
【００８５】
垂直方向ブロック射影データ読み出し部３０から出力された第１の垂直方向ブロック射影データは、図５に示す垂直方向ブロック水平方向動きベクトル算出部３１の入力端子３１１を介してｎ値化器３１４に入力される。このｎ値化器３１４では、第１の垂直方向ブロック射影データ最大値保存部２４から出力され、入力端子３１２を介して入力された第２の閾値に基づき、第１の垂直方向ブロック射影データをｎ値化する。すなわち、ｎ値化器３１４は、垂直方向ブロック射影データ読み出し部３０で抽出された現フレームの射影データに関するデータ配列Ｍｖ（図９(ｂ)）各配列要素のデータ長を、例えば３値化処理して圧縮する。このｎ値化器３１４の処理について、図１０を参照しつつ説明する。
【００８６】
図１０は、ｎ値化器３１４におけるｎ値化処理を説明するための図である。なお、図１０では、ｎ＝３となる３値化処理の一例を示している。
【００８７】
ｎ値化器３１４に入力される第１の垂直方向ブロック射影データをＤ、入力端子３１２を介して入力される第２の閾値をα２(α２は正の整数)とすると、ｎ値化器３１４では、Ｄ＜(−α２)のとき(−１)を出力し、(−α２)≦Ｄ≦α２のとき０を出力するとともに、Ｄ＞α２のとき１を出力することで３値化処理が行われる。すなわち、ｎ値化器３１４における３値化処理では、現フレーム(後フレーム)の射影データにおけるデータ配列Ｍｖの配列要素の最大値に基づき設定される第２の閾値α２(α２＞０)に関して、垂直方向ブロック射影データ読み出し部３０で抽出された現フレームの射影データに関する配列要素の値が、(−α２)より小さい場合、(−α２)以上でα２以下の場合、およびα２より大きい場合の３段階による３値化が行われる。
【００８８】
このｎ値化器３１４でのｎ値化処理については、垂直方向ブロック射影データ読み出し部３０から出力される現フレームの第１の垂直方向ブロック射影データの部分波形が、第１の閾値交差点に対してどのような位置関係、つまりどのような傾向の波形となっているのかが重要であるため、第１の垂直方向ブロック射影データの波形において山や谷が判別できるだけのビット精度を確保すれば十分である。
【００８９】
一方、ｎ値化器３１４においてビット数の削減を行わずに、垂直方向ブロック射影データ読み出し部３０から出力された第１の垂直方向ブロック射影データの値そのものを採用する場合には、第１の垂直方向ブロック射影データＤ＞α２に対応する大きな振幅の山や、Ｄ＜(−α２)に対応する大きな振幅の谷に、画像の特徴が表れる小さな振幅の山や谷が埋没してしまう恐れがあり不適切である。さらに、(−α２)≦Ｄ≦α２に対応する小さな山や谷は、ノイズの影響を受けやすく数も多いため、これに画像の特徴が表れる適度な振幅の山や谷が埋もれることとなる。
【００９０】
よって、ｎ値化器３１４では、第１の垂直方向ブロック射影データに対して適切なｎ値化処理を施すことにより、動きベクトルの検出精度の向上を図っている。
【００９１】
以上で説明した第１の閾値交差点探索部２９、垂直方向ブロック射影データ読み出し部３０および垂直方向ブロック水平方向動きベクトル算出部３１の動作について、図１１を参照しつつ具体的に説明する。なお、図１１(ａ)および図１１(ｂ)の横軸は、射影データのデータ配列Ｍｖ(図９(ｂ))の配列要素の位置を示している。また、図１１(ａ)では、第１の閾値交差点Ａ(１)〜Ａ(８)それぞれを丸印で表している。
【００９２】
第１の閾値交差点探索部２９では、図１１(ａ)に示すように前フレームに関する第２の垂直方向ブロック射影データＷ２の波形において、第２の垂直方向ブロック射影データ最大値保存部２８から出力された第１の閾値α１と交差する第１の閾値交差点Ａ(１)〜Ａ(８)が求められる。すなわち、第１の閾値交差点探索部２９は、前フレームに対して垂直方向ブロック射影部２３で得られた射影データに関して射影データのデータ配列Ｍｖ（図９(ｂ)）の要素順に配列要素の値をグラフ化した波形Ｗ２と、配列要素の値が第１の閾値(所定の一定値)α１となる直線とが交差する各第１の閾値交差点の配列要素の位置を特定する。
【００９３】
次に、垂直方向ブロック射影データ読み出し部３０では、図１１(ａ)に示す各第１の閾値交差点Ａ(１)〜Ａ(８)を中心とした所定の動きベクトル検出範囲について第１の垂直方向ブロック射影ラインメモリ２６から現フレームの垂直方向ブロック射影データが読み出される。すなわち、垂直方向ブロック射影データ読み出し部３０は、各第１の閾値交差点における射影データ(データ配列)の配列要素の位置を中心とした所定範囲のデータ配列を、垂直方向ブロック射影部２３から出力されビット数削減部２５によりビット数が削減された現フレーム(後フレーム)の射影データから抽出する。例えば第１の閾値交差点Ａ(７)に関しては、図１１(ｂ)に示すように第１の閾値交差点Ａ(７)を中心に(Ａ(７)−Ｖ)から(Ａ(７)＋Ｖ)までの範囲(矩形の破線内の波形部分)に対応する第１の垂直方向ブロック射影データＷ１が読み出される。
【００９４】
そして、垂直方向ブロック射影データ読み出し部３０によって読み出された第１の垂直方向ブロック射影データは、第１の垂直方向ブロック射影データ最大値保存部２４から出力された第２の閾値α２を用いて、垂直方向ブロック水平方向動きベクトル算出部３１のｎ値器３１４でｎ値化処理される。例えば第１の閾値交差点Ａ(７)に関しては、図１１(ｂ)に示す第２の閾値α２および(−α２)に対する第１の垂直方向ブロック射影データＷ１の大小関係に基づき、第１の閾値交差点Ａ(７)を中心に(Ａ(７)−Ｖ)から(Ａ(７)＋Ｖ)までの範囲(矩形の破線内の波形部分)について、図１１(ｃ)のように第１の垂直方向ブロック射影データが３値化処理される。これにより、現フレームの垂直方向ブロック射影データが「−１」、「０」または「１」で表されることとなる。
【００９５】
ｎ値化器３１４では、第１の閾値交差点探索部２９から出力される全ての第１の閾値交差点について、図１１(ｃ)に示すようなｎ値化処理が行われる。
【００９６】
次に、加算器３１５(図５)では、入力端子３１３を介して第１の閾値交差点探索部２９から出力された第１の閾値交差点を中心に、ｎ値化器３１４でｎ値化された第１の垂直方向ブロック射影データと、水平方向動きベクトル加算メモリ３１６から読み出されたひとつ前までのｎ値化された第１の垂直方向ブロック射影データの加算値とを加算し、その加算結果を水平方向動きベクトル加算メモリ３１６に再び記憶させる。そして、第１の閾値交差点探索部２９で検出された全ての第１の閾値交差点のうち最後のものに関するｎ値化された第１の垂直方向ブロック射影データを加算器３１５で加算して１つの垂直方向ブロックについての加算処理を終了する際には、その加算結果をピーク検出器３１７に出力するようにする。なお、加算器３１５での加算処理終了後に、全ての第１の閾値交差点に関する加算結果を記憶している水平方向動きベクトル加算メモリ３１６から、その加算結果をピーク検出部３１７が読み出すようにしても良い。
【００９７】
ピーク検出器３１７には、第１の閾値交差点探索部２９で検出された全ての第１の閾値交差点について各第１の閾値交差点を中心とした動きベクトル検出範囲（上述した±Ｖの範囲）に対応するｎ値化済みの第１の垂直方向ブロック射影データを加算したデータ（以下では「垂直方向ブロックｎ値化データ」ともいう）が入力されるが、この垂直方向ブロックｎ値化データに関するピーク値がピーク検出器３１７で検出される。このピーク検出器３１７において検出される垂直方向ブロックｎ値化データのピーク位置が、その垂直方向ブロックから得られる水平方向動きベクトルとなり、出力端子３１８を介して水平方向動き決定部３２に出力される。
【００９８】
以上で説明した加算器３１５およびピーク検出部３１７の動作について、図１２を参照しつつ具体的に説明する。なお、図１２(ａ)では、図１１(ａ)に示す第１の閾値交差点Ａ(１)〜Ａ(８)を中心とした動きベクトル検出範囲(±Ｖの範囲)において第１の垂直方向ブロック射影データを３値化したものを概念的に示している。
【００９９】
加算器３１５において、図１２(ａ)に示す第１の閾値交差点Ａ(１)〜Ａ(８)周辺の３値化データが順次に入力されると、これらのデータが加算され、図１２(ｂ)に示すような垂直方向ブロックｎ値化データが生成される。具体的には、加算器３１５において垂直方向ブロック射影データ読み出し部３０により垂直方向ブロック射影データ(データ配列Ｍｖ(図９(ｂ)))から抽出されｎ値器３１４でデータ長が圧縮された現フレームに係る動きベクトル検出範囲(所定範囲)のデータ配列それぞれについて、各第１の閾値交差点の配列要素の位置に対して相対位置が同じ配列要素同士の値が加算されることとなる。
【０１００】
加算器３１５で生成された垂直方向ブロックｎ値化データがピーク検出器３１７に入力されると、その垂直方向ブロックの水平方向動きベクトルとして図１２(ｂ)に示す水平方向のピーク位置ｈｖが検出される。すなわち、ピーク検出器３１７では、加算器３１５で加算された加算結果に基づき、フレーム画像の水平方向に関する動きベクトルが検出される。
【０１０１】
このピーク検出器３１７では、原則的に動きベクトル検出範囲（±Ｖの範囲）において最大値となるピーク位置が探索されるが、同一の最大値が複数ある場合には、原点０に近いもの(原点０までの距離が等しい場合には負の位置のもの)を優先する。なお、このようなピーク位置の検出ルールに限らず、正の位置にある最大値を優先しても良く、また前フレームにおける動きベクトルの傾向を現フレームのピーク位置の検出に利用するようにしても良い。
【０１０２】
ピーク検出器３１７で垂直方向ブロック毎に算出された水平方向動きベクトルは、順次に出力端子３１８を介して水平方向動きベクトル決定部３２に入力される。
【０１０３】
水平方向動きベクトル決定部３２では、垂直方向ブロック水平方向動きベクトル算出部３１から順次に出力される各垂直方向ブロックの水平方向動きベクトルに基づき、画像全体の水平方向動きベクトルが決定される。この水平方向動きベクトル決定部３２では、例えば最も出現頻度が高い水平方向動きベクトルを画像全体の水平方向動きベクトルとして決定する。なお、最も出現頻度が高い水平方向動きベクトルを画像全体の水平方向動きベクトルとして決定するのは必須でなく、垂直方向ブロック水平方向動きベクトル算出部３１から出力される各垂直方向ブロックの水平方向動きベクトルの平均値を、画像全体の水平方向動きベクトルとして決定するようにしても良い。
【０１０４】
以上のように水平方向動きベクトル決定部３２では、各垂直方向ブロックの水平方向動きベクトルに基づいてフレーム画像全体に関する水平方向の動きベクトルを決定するため、画像の一部で動きがあった場合でも、その動きへの誤反応を抑制できることとなる。なお、フレーム画像全体に関する水平方向動きベクトルの検出にあたっては、必ずしもフレーム画像全体を使う必要はなく、フレーム画像の一部から水平方向動きベクトルを検出し、それをフレーム画像全体に関する水平方向動きベクトルとしても良い。
【０１０５】
次に、動きベクトル検出装置１において画像の垂直方向の動きベクトルを検出する垂直方向動きベクトル検出部４の動作を説明する。
【０１０６】
図２のように水平ラインの画素走査を垂直方向に順に繰り返すことによって読み出されるフレーム画像が、図６に示す垂直方向動きベクトル検出部４の入力端子４０に入力されると、水平方向画像分割部４１で水平方向にブロック分割される。すなわち、水平方向画像分割部４１においては、フレーム画像において水平方向に分割して得られる複数の画像領域(所定の画像領域)が設定される。これにより、以降の処理では、水平方向ブロック毎に処理や管理が行われることとなる。
【０１０７】
水平方向画像分割部４１では、例えば図１３(ａ)に示すように６４０画素×４８０画素の画像データが、水平方向に６４画素の幅(分割幅)を有した１０個の垂直方向ブロックｈｂ０〜ｈｂ９に分割される。なお、図１３(ａ)に示す分割幅および分割数とするのは必須でなく、例えば分割数を１にしても良い。
【０１０８】
水平方向画像分割部４１で図１３(ａ)のように１０個の水平方向ブロックｈｂ０〜ｈｂ９に分割された画像は、水平方向エッジ抽出フィルタリング部４２において水平方向に延びるエッジ成分の抽出、換言すれば垂直方向に急峻に変化する画像部分を強調するようなフィルタリング処理が施される。このフィルタリング処理で用いられるフィルタとしては、単純に水平方向に隣接する画素との差分を取る(１,−１)の２タップフィルタや、２次微分に相当する(−１,２,−１)の３タップフィルタなどの使用が可能である。なお、このようなフィルタを使用するのは必須でなく、垂直方向に輝度変化が大きくなる画像部分において出力値が上昇するフィルタであれば良い。
【０１０９】
水平方向エッジ抽出フィルタリング部４２で各水平方向ブロック(画像領域)ｈｂ０〜ｈｂ９ごとに水平方向のエッジが強調された画像データは、水平方向ブロック射影部４３に入力され、水平方向ブロック射影部４３で水平方向に射影される。この射影により、水平方向の(ライン間で)ノイズ成分を低減でき、また水平方向のエッジ成分をより強調できるため、特徴点に対応する水平方向エッジを際立たせて動きベクトル検出精度の向上を図れることとなる。水平方向ブロック射影部４３の動作について、図１３(ｂ)の概念図を参照しつつ説明する。
【０１１０】
水平方向ブロック射影部４３では、図１３(ａ)に示す各水平方向ブロックｈｂ０〜ｈｂ９の１水平ラインの入力が完了した時点で、１垂直ライン分のデータ配列Ｍｈを有する水平方向ブロック射影データｈｎ０〜ｈｎ９(図１３(ｂ))の１配列要素が生成される。したがって、全配列要素が揃うのは、各水平方向ブロックｈｂ０〜ｈｂ９の最終の水平ラインの入力が完了した時点である。なお、データ配列Ｍｈは、垂直ラインの全画素数(例えば４８０)の配列要素を有しているが、(１，−１)のような２タップフィルタでは有効要素が垂直ラインの全画素数−１(例えば４７９)、(−１，２，−１)のような３タップフィルタでは有効要素が垂直ラインの全画素数−２(例えば４７８)となる。
【０１１１】
具体的には、図７に示すように入力端子４３１を介して入力された各水平方向ブロックｈｂ０〜ｈｂ９の画像データ(水平方向のエッジ強調が施された画像データ)が、加算器４３２に入力される。加算器４３２では、まず入力された水平方向ブロックの１水平ラインの先頭では、水平方向射影一時記憶メモリ４３３内のデータを読み出すことなく、水平方向射影一時記憶メモリ４３３に書き込まれる。次に、加算器４３２では、水平方向射影一時記憶メモリ４３３に記憶されている１水平ラインの前画素までの加算結果を読み出し、入力端子４３１から入力される水平方向ブロックの１水平ラインの現画素との加算を行って、その加算結果を水平方向射影一時記憶メモリ４３３に書き戻す。そして、水平方向ブロックにおける１水平ラインの最終画素が加算器４３２に入力されると、水平方向射影一時記憶メモリ４３３に保存された前画素までの加算結果を読み出し、入力端子４３１から入力される水平方向ブロックの１水平ラインの最終画素との加算を行って、その加算結果、つまり水平方向ブロックの１水平ラインの全画素が加算されたデータを水平方向ブロックの１水平ラインに関する射影データとして、出力端子４３４から第１の水平方向ブロック射影ラインメモリ４４と第１の水平方向ブロック射影データ最大値保存部４５とに出力する。なお、加算器４３２において水平方向ブロックの１水平ラインの全画素が加算された射影データを水平方向射影一時記憶メモリ４３３に一旦記憶させ、次の水平方向ブロックの１水平ラインの先頭画素が入力される際に、水平方向射影一時記憶メモリ４３３内の射影データを読み出して出力端子４３４から出力するようにしても良い。
【０１１２】
第１の水平方向ブロック射影ラインメモリ４４では、水平方向ブロック射影部４３から入力された現フレームの水平方向ブロック射影データを、第１の水平方向ブロック射影データとして水平方向ブロック毎に保存する。
【０１１３】
第１の水平方向ブロック射影データ最大値保存部４５では、水平方向ブロック射影部４３から入力された水平方向ブロックの射影データに関する最大値を算出し、現フレームの水平方向ブロック射影データ最大値として保存する。
【０１１４】
第２の水平方向ブロック射影ラインメモリ４６は、第１の水平方向ブロック射影ラインメモリ４４から読み出された水平方向ブロック射影データを、前フレームに関する第２の水平方向ブロック射影データとして保存する。同様に、第２の水平方向ブロック射影データ最大値保存部４７では、第１の水平方向ブロック射影データ最大値保存部４５から出力された水平方向ブロック射影データの最大値が、前フレームに関する第２の水平方向ブロック射影データの最大値として保存される。換言すれば、第１の水平方向ブロック射影データ最大値保存部４５に保存された現フレームの水平方向ブロック射影データの最大値は、次のフレームでは、第２の水平方向ブロック射影データ最大値保存部４７に前フレームの水平方向ブロック射影データの最大値として保存されることとなる。
【０１１５】
また、第２の水平方向ブロック射影データ最大値保存部４７では、算出された前フレームの水平方向ブロック射影データ最大値に基づき、第４の閾値を算出する。例えば、前フレームの水平方向ブロックの射影データに関する最大値をＰ４maxとすると、第４の閾値α４は次の式(３)で算出される。
【０１１６】
α４＝Ｐ４max×ｋ４・・・・・・・・(３)
ここで、ｋ４は予め定められた係数で、０＜ｋ４＜１である。
【０１１７】
なお、第４の閾値α４の演算は、上式(３)に限るものではなく、前フレームの水平方向ブロック射影データ最大値Ｐ４maxが大きくなれば第４の閾値α４が大きくなるものであれば良く、また変換テーブルを使用しても良い。また、第４の閾値α４については、各水平方向ブロック毎の第２の水平方向ブロック射影データの最大値を使用するのは必須でなく、例えば前フレームの画像全体についての水平方向ブロック射影データ最大値を用いて第４の閾値を算出し、画像全体で同じ第４の閾値を採用しても良い。
【０１１８】
第２の水平方向ブロック射影データ最大値保存部４７は、前フレームに関する第２の水平方向ブロック射影データの最大値に基づき、第３の閾値(所定の一定値)が設定される。例えば、前フレームの水平方向ブロック射影データの最大値をＰ３maxとすると、第３の閾値α３は次の式(４)で算出される。
【０１１９】
α３＝Ｐ３max×ｋ３・・・・・・・・(４)
ここで、ｋ３は予め定められた係数で、０＜ｋ３＜１である。
【０１２０】
なお、第３の閾値α３の演算は、上式(４)に限るものではなく、前フレームの水平方向ブロック射影データ最大値Ｐ３maxが大きくなれば第３の閾値α３が大きくなるものであれば良く、また変換テーブルを使用しても良い。また、第３の閾値α３については、各水平方向ブロック毎の第２の水平方向ブロック射影データの最大値を使用するのは必須でなく、例えば前フレームの画像全体についての水平方向ブロック射影データ最大値を用いて第３の閾値を算出し、画像全体で同じ第３の閾値を採用しても良い。
【０１２１】
第３の閾値交差点探索部４８では、第２の水平方向ブロック射影ラインメモリ４６から読み出された第２の水平方向ブロック射影データと、第２の水平方向ブロック射影データ最大値保存部４７から出力された第３の閾値との交差点(第３の閾値交差点)を垂直方向に探索する。この第３の閾値交差点探索部４８で得られた第３の閾値交差点の情報は、水平方向ブロック射影データ読み出し部４９と水平方向ブロック垂直方向動きベクトル算出部５０とに入力される。
【０１２２】
水平方向ブロック射影データ読み出し部４９は、第３の閾値交差点探索部４８から出力された第３の閾値交差点を中心とした動きベクトル検出範囲に対応した現フレームの(第１の)水平方向ブロック射影データを第１の水平方向ブロック射影ラインメモリ４４から読み出す。すなわち、第３の閾値交差点をＢ(ｉ)（ただしｉ＝１,２,・・・ｑで、ｑは検出された第３の閾値交差点の総数）とし、動きベクトル検出範囲を第３の閾値交差点を中心とした(−Ｕ)から(＋Ｕ)（ただしＵは正の整数）の範囲とすると、第１の水平方向ブロック射影ラインメモリ４４から読み出される射影データは、垂直方向において(Ｂ(ｉ)−Ｕ)から(Ｂ(ｉ)＋Ｕ)までの範囲にある第１の水平方向ブロック射影データの部分データとなる。
【０１２３】
この水平方向ブロック射影データ読み出し部４９によって第１の水平方向ブロック射影ラインメモリ４４から読み出された第１の水平方向ブロック射影データは、水平方向ブロック垂直方向動きベクトル算出部５０に出力される。
【０１２４】
水平方向ブロック射影データ読み出し部４９から出力された第１の水平方向ブロック射影データは、図８に示す水平方向ブロック垂直方向動きベクトル算出部５０の入力端子５０１を介してｎ値化器５０４に入力される。このｎ値化器５０４では、第２の水平方向ブロック射影データ最大値保存部４７から出力され、入力端子５０２を介して入力された第４の閾値に基づき、第１の水平方向ブロック射影データをｎ値化する。すなわち、ｎ値化器５０４は、水平方向ブロック射影データ読み出し部４９で抽出された現フレームの射影データに関するデータ配列Ｍｈ（図１３(ｂ)）の各配列要素のデータ長を圧縮する。このｎ値化器５０４の処理については、上述したｎ値化器３１４と同様の処理を行い、例えば３値化処理が実行される。すなわち、ｎ値化器５０４における３値化処理では、前フレームの射影データにおけるデータ配列Ｍｈの配列要素の最大値に基づき設定される第４の閾値α４(α４＞０)に関して、水平方向ブロック射影データ読み出し部４９で抽出された現フレームの射影データに関する配列要素の値が、(−α４)より小さい場合、(−α４)以上でα４以下の場合、およびα４より大きい場合の３段階による３値化が行われる。なお、ｎ値化器５０４においては、ｎ値化器３１４と同じ特性を有するのは必須でなく、ｎ値化器５０４と異なる特性を有しても良い。
【０１２５】
以上で説明した第３の閾値交差点探索部４８、水平方向ブロック射影データ読み出し部４９および水平方向ブロック垂直方向動きベクトル算出部５０の動作について、図１４を参照しつつ具体的に説明する。なお、図１４(ａ)および図１４(ｂ)の横軸は、射影データのデータ配列Ｍｈ(図１３(ｂ))の配列要素の位置を示している。また、図１４(ａ)では、第３の閾値交差点Ｂ(１)〜Ｂ(６)それぞれを丸印で表している。
【０１２６】
第３の閾値交差点探索部４８では、図１４(ａ)に示すように前フレームに関する第２の垂直方向ブロック射影データＷ４の波形において、第２の水平方向ブロック射影データ最大値保存部４７から出力された第３の閾値α３と交差する第３の閾値交差点Ｂ(１)〜Ｂ(６)が求められる。すなわち、第３の閾値交差点探索部４８は、前フレームに対して水平方向ブロック射影部４３で得られた射影データに関して射影データのデータ配列Ｍｈ（図１３(ｂ)）の要素順に配列要素の値をグラフ化した波形Ｗ４と、配列要素の値が第３の閾値(所定の一定値)α３となる直線とが交差する各第３の閾値交差点の配列要素の位置を特定する。
【０１２７】
次に、水平方向ブロック射影データ読み出し部４９では、図１４(ａ)に示す各第３の閾値交差点Ｂ(１)〜Ｂ(６)を中心とした所定の動きベクトル検出範囲について第１の水平方向ブロック射影ラインメモリ４４から現フレームの水平方向ブロック射影データが読み出される。すなわち、水平方向ブロック射影データ読み出し部４９は、各第３の閾値交差点における射影データ(データ配列)の配列要素の位置を中心とした所定範囲のデータ配列を、水平方向ブロック射影部４３で得られた現フレーム(後フレーム)の射影データから抽出する。例えば第３の閾値交差点Ｂ(４)に関しては、図１４(ｂ)に示すように第３の閾値交差点Ｂ(４)を中心に(Ｂ(４)−Ｕ)から(Ｂ(４)＋Ｕ)までの範囲(矩形の破線内の波形部分)に対応する第１の水平方向ブロック射影データＷ３が読み出される。
【０１２８】
そして、水平方向ブロック射影データ読み出し部４９によって読み出された第１の水平方向ブロック射影データは、第２の水平方向ブロック射影データ最大値保存部４７から出力された第４の閾値α４を用いて、水平方向ブロック垂直方向動きベクトル算出部５０のｎ値器５０４でｎ値化処理される。例えば第３の閾値交差点Ｂ(４)に関しては、図１４(ｂ)に示す第４の閾値α４および(−α４)に対する第１の水平方向ブロック射影データＷ３の大小関係に基づき、第３の閾値交差点Ｂ(４)を中心に(Ｂ(４)−Ｕ)から(Ｂ(４)＋Ｕ)までの範囲(矩形の破線内の波形部分)について、図１４(ｃ)のように第１の水平方向ブロック射影データが３値化処理される。これにより、現フレームの水平方向ブロック射影データが「−１」、「０」または「１」で表されることとなる。
【０１２９】
ｎ値化器５０４では、第３の閾値交差点探索部４８から出力される全ての第３の閾値交差点について、図１４(ｃ)に示すようなｎ値化処理が行われる。
【０１３０】
次に、加算器５０５(図８)では、入力端子５０３を介して第３の閾値交差点探索部４８から出力された第３の閾値交差点を中心に、ｎ値化器５０４でｎ値化された第１の水平方向ブロック射影データと、垂直方向動きベクトル加算メモリ５０６から読み出されたひとつ前までのｎ値化された第１の水平方向ブロック射影データの加算値とを加算し、その加算結果を垂直方向動きベクトル加算メモリ５０６に再び記憶させる。そして、第３の閾値交差点探索部４８で検出された全ての第３の閾値交差点のうち最後のものに関するｎ値化された第１の水平方向ブロック射影データを加算器５０５で加算して１つの水平方向ブロックについての加算処理を終了する際には、その加算結果をピーク検出器５０７に出力するようにする。なお、加算器５０５での加算処理終了後に、全ての第３の閾値交差点に関する加算結果を記憶している垂直方向動きベクトル加算メモリ５０６から、その加算結果をピーク検出部５０７が読み出すようにしても良い。
【０１３１】
ピーク検出器５０７には、第３の閾値交差点探索部４８で検出された全ての第３の閾値交差点について各第３の閾値交差点を中心とした動きベクトル検出範囲（上述した±Ｕの範囲）に対応するｎ値化済みの第１の水平方向ブロック射影データを加算したデータ（以下では「水平方向ブロックｎ値化データ」ともいう）が入力されるが、この水平方向ブロックｎ値化データに関するピーク値がピーク検出器５０７で検出される。このピーク検出器５０７において検出される水平方向ブロックｎ値化データのピーク位置が、その水平方向ブロックから得られる垂直方向動きベクトルとなり、出力端子５０８を介して垂直方向動き決定部５１に出力される。
【０１３２】
以上で説明した加算器５０５およびピーク検出部５０７の動作について、図１５を参照しつつ具体的に説明する。なお、図１５(ａ)では、図１４(ａ)に示す第３の閾値交差点Ｂ(１)〜Ｂ(６)を中心とした動きベクトル検出範囲(±Ｕの範囲)において第１の水平方向ブロック射影データを３値化したものを概念的に示している。
【０１３３】
加算器５０５において、図１５(ａ)に示す第３の閾値交差点Ｂ(１)〜Ｂ(６)周辺の３値化データが順次に入力されると、これらのデータが加算され、図１５(ｂ)に示すような水平方向ブロックｎ値化データが生成される。具体的には、加算器５０５において水平方向ブロック射影データ読み出し部４９により水平方向ブロック射影データ（データ配列Ｍｈ(図１３(ｂ))）から抽出されｎ値器５０４でデータ長が圧縮された現フレームに係る動きベクトル検出範囲(所定範囲)のデータ配列それぞれについて、各第３の閾値交差点の配列要素の位置に対して相対位置が同じ配列要素同士の値が加算されることとなる。
【０１３４】
加算器５０５で生成された水平方向ブロックｎ値化データがピーク検出器５０７に入力されると、その水平方向ブロックの垂直方向動きベクトルとして図１５(ｂ)に示す垂直方向のピーク位置ｖｖが検出される。すなわち、ピーク検出器５０７では、加算器５０５で加算された加算結果に基づき、フレーム画像の垂直方向に関する動きベクトルが検出される。
【０１３５】
このピーク検出器５０７では、原則的に動きベクトル検出範囲（±Ｕの範囲）において最大値となるピーク位置が探索されるが、同一の最大値が複数ある場合には、原点０に近いもの(原点０までの距離が等しい場合には負の位置のもの)を優先する。なお、このようなピーク位置の検出ルールに限らず、正の位置にある最大値を優先しても良く、また前フレームにおける動きベクトルの傾向を現フレームのピーク位置の検出に利用するようにしても良い。
【０１３６】
ピーク検出器５０７で水平方向ブロック毎に算出された垂直方向動きベクトルは、順次に出力端子５０８を介して垂直方向動きベクトル決定部５１に入力される。
【０１３７】
垂直方向動きベクトル決定部５１では、水平方向ブロック垂直方向動きベクトル算出部５０から順次に出力される各水平方向ブロックの垂直方向動きベクトルに基づき、画像全体の垂直方向動きベクトルが決定される。この垂直方向動きベクトル決定部５１では、例えば最も出現頻度が高い垂直方向動きベクトルを画像全体の垂直方向動きベクトルとして決定する。なお、最も出現頻度が高い垂直方向動きベクトルを画像全体の垂直方向動きベクトルとして決定するのは必須でなく、水平方向ブロック垂直方向動きベクトル算出部５０から出力される各水平方向ブロックの垂直方向動きベクトルの平均値を、画像全体の垂直方向動きベクトルとして決定するようにしても良い。
【０１３８】
以上のように垂直方向動きベクトル決定部５１では、各水平方向ブロックの垂直方向動きベクトルに基づいてフレーム画像全体に関する垂直方向の動きベクトルを決定するため、画像の一部で動きがあった場合でも、その動きへの誤反応を抑制できることとなる。なお、フレーム画像全体に関する垂直方向動きベクトルの検出にあたっては、必ずしもフレーム画像全体を使う必要はなく、フレーム画像の一部から垂直方向動きベクトルを検出し、それをフレーム画像全体に関する垂直方向動きベクトルとしても良い。
【０１３９】
以上の動きベクトル検出装置１の動作により、垂直方向のエッジが強調された各垂直方向ブロックについて垂直方向に射影をとって垂直方向ブロック射影データを生成するとともに、前フレームの垂直方向ブロック射影データと第１の閾値α１との交差点(第１の閾値交差点)を中心とした動きベクトル検出範囲に対応した現フレームの垂直方向ブロック射影データを読み出して各第１の閾値交差点からの距離毎に加算し、その加算結果から水平方向に関する動きベクトルを検出するため、特徴点に相当する画像の垂直方向エッジの動きを少ない演算量で追跡できる。同様に、水平方向のエッジが強調された各水平方向ブロックについて水平方向に射影をとって水平方向ブロック射影データを生成するとともに、前フレームの水平方向ブロック射影データと第３の閾値α３との交差点(第３の閾値交差点)を中心とした動きベクトル検出範囲に対応した現フレームの水平方向ブロック射影データを読み出して各第３の閾値交差点からの距離毎に加算し、その加算結果から垂直方向に関する動きベクトルを検出するため、特徴点に相当する画像の水平方向エッジの動きを少ない演算量で追跡できる。その結果、水平方向および垂直方向に関する動きベクトルの検出を精度良く迅速に行える。
【０１４０】
また、動きベクトル検出装置１のビット数削減部２５では、第１の垂直方向ブロック射影データ最大値保存部２４で求められた現フレームの垂直方向ブロック射影データの最大値に基づき現フレームの垂直方向ブロック射影データのビット数を削減するため、以降の処理における演算量を抑制でき、動きベクトルの検出を一層迅速に行える。
【０１４１】
また、動きベクトル検出装置１では、前フレームに関する第２の垂直方向ブロック射影データの最大値を求め、この最大値に基づき第１の閾値α１を設定するため、適切な第１の閾値交差点を設定できる。同様に、前フレームに関する第２の水平方向ブロック射影データの最大値を求め、この最大値に基づき第３の閾値α３を設定するため、適切な第３の閾値交差点を設定できる。
【０１４２】
また、動きベクトル検出装置１では、垂直方向画像分割部２１でフレーム画像を垂直方向に分割した後に、各分割画像(垂直方向ブロック)について垂直方向のエッジを強調するため、垂直方向のエッジが強調された分割画像を簡易に生成できる。同様に、水平方向画像分割部４１でフレーム画像を水平方向に分割した後に、各分割画像(水平方向ブロック)について水平方向のエッジを強調するため、水平方向のエッジが強調された分割画像を簡易に生成できる。
【０１４３】
また、動きベクトル検出装置１では、垂直方向ブロック水平方向動きベクトル算出部３１のｎ値化器３１４において垂直方向ブロック射影データ読み出し部３０で読み出された射影データをｎ値化するため、以降の演算量を低減でき、動きベクトルの検出をより迅速に行える。特に、ｎ値化器３１４では、現フレームの垂直方向ブロック射影データの最大値に基づき設定される第２の閾値α２に基づき３値化するため、ダイナミックレンジを比較的大きく確保しつつ、リアルタイム処理可能な動きベクトル検出が実現できる。また、メモリも大幅に削減することができる。
【０１４４】
同様に、水平方向ブロック垂直方向動きベクトル算出部５０のｎ値化器５０４において水平方向ブロック射影データ読み出し部４９で読み出された射影データをｎ値化するため、以降の演算量を低減でき、動きベクトルの検出をより迅速に行える。特に、ｎ値化器５０４では、前フレームの水平方向ブロック射影データの最大値に基づき設定される第４の閾値α４に基づき３値化するため、適切な第４の閾値α４を設定でき、ダイナミックレンジを大きく損なうことなく、リアルタイム処理可能な動きベクトル検出が実現できる。また、メモリも大幅に削減することができる。
【０１４５】
＜実施の形態２＞
＜動きベクトル検出装置の構成＞
本発明の実施の形態２に係る動きベクトル検出装置１Ａについては、図１に示す実施の形態１の動きベクトル検出装置１と類似の構成を有しているが、水平方向動きベクトル検出部と垂直方向動きベクトル検出部との構成が異なっている。この動きベクトル検出装置１Ａにおける水平方向動きベクトル検出部２Ａおよび垂直方向動きベクトル検出部４Ａの構成について図１６および図１７を参照して説明する。
【０１４６】
図１６は、水平方向動きベクトル検出部２Ａの要部構成を示すブロック図である。なお、図１６では、実施の形態１と同様の機能を有する部位には同一の符号を付している。
【０１４７】
水平方向動きベクトル検出部２Ａでは、実施の形態１の水平方向動きベクトル検出部２に対して垂直方向画像分割部２１と垂直方向エッジ抽出フィルタリング部２２との配置が逆転している。以下では、この水平方向動きベクトル検出部２Ａの動作について説明する。
【０１４８】
図２に示すように水平ラインの画素走査を垂直方向に順に繰り返すことによって読み出されるフレーム画像が、水平方向動きベクトル検出部２Ａの入力端子２０に入力されると、垂直方向エッジ抽出フィルタリング部２２において垂直方向に延びるエッジ成分の抽出、換言すれば水平方向に急峻に変化する画像部分を強調するようなフィルタリング処理が施される。
【０１４９】
垂直方向エッジ抽出フィルタリング部２２で垂直方向のエッジが強調されたフレーム画像が垂直方向画像分割部２１に入力されると、垂直方向にブロック分割される。すなわち、垂直方向画像分割部２１では、エッジ強調が施されたフレーム画像を垂直方向に分割して得られる複数の画像領域(所定の画像領域)が設定される。これにより、以降の処理では、垂直方向ブロック毎に処理および管理が行われることとなる。
【０１５０】
垂直方向画像分割部２１で分割された画像データは、垂直方向ブロック射影部２３に入力されるが、この垂直方向ブロック射影部２３以降の処理は、実施の形態１の水平方向動きベクトル検出部２と同様の処理が行われる。
【０１５１】
図１７は、垂直方向動きベクトル検出部４Ａの要部構成を示すブロック図である。なお、図１７では、実施の形態１と同様の機能を有する部位には同一の符号を付している。
【０１５２】
垂直方向動きベクトル検出部４Ａでは、実施の形態１の垂直方向動きベクトル検出部４に対して水平方向画像分割部４１と水平方向エッジ抽出フィルタリング部４２との配置が逆転している。以下では、この垂直方向動きベクトル検出部４Ａの動作について説明する。
【０１５３】
図２に示すように水平ラインの画素走査を垂直方向に順に繰り返すことによって読み出されるフレーム画像が、垂直方向動きベクトル検出部４Ａの入力端子４０に入力されると、水平方向エッジ抽出フィルタリング部４２において水平方向に延びるエッジ成分の抽出、換言すれば垂直方向に急峻に変化する画像部分を強調するようなフィルタリング処理が施される。
【０１５４】
水平方向エッジ抽出フィルタリング部４２で水平方向のエッジが強調されたフレーム画像が水平方向画像分割部４１に入力されると、水平方向にブロック分割される。すなわち、水平方向画像分割部４１では、エッジ強調が施されたフレーム画像を水平方向に分割して得られる複数の画像領域(所定の画像領域)が設定される。これにより、以降の処理では、水平方向ブロック毎に処理および管理が行われることとなる。
【０１５５】
水平方向画像分割部４１で分割された画像データは、水平方向ブロック射影部４３に入力されるが、この水平方向ブロック射影部４３以降の処理は、実施の形態１の垂直方向動きベクトル検出部４と同様の処理が行われる。
【０１５６】
以上の動きベクトル検出装置１Ａの動作により、実施の形態１と同様の効果を奏する。
【０１５７】
そして、動きベクトル検出装置１Ａでは、垂直方向エッジ抽出フィルタリング部２２でフレーム画像に対する垂直方向のエッジを強調した後に、エッジ強調されたフレーム画像を垂直方向画像分割部２１において垂直方向に分割するため、垂直方向のエッジが強調された分割画像を簡易に生成できる。同様に、水平方向エッジ抽出フィルタリング部４２でフレーム画像に対する水平方向のエッジを強調した後に、エッジ強調されたフレーム画像を水平方向画像分割部４１において水平方向に分割するため、水平方向のエッジが強調された分割画像を簡易に生成できる。
【０１５８】
なお、動きベクトル検出装置１Ａにおいては、垂直方向エッジ抽出フィルタリング部２２と水平方向エッジ抽出フィルタリング部４２とを別々に水平方向動きベクトル検出部２Ａおよび垂直方向動きベクトル検出部４Ａに配置するのは必須でなく、垂直方向エッジ抽出フィルタリング部２２および水平方向エッジ抽出フィルタリング部４２の双方の機能を一体化した水平／垂直方向エッジ抽出フィルタリング部を設けて、その出力を垂直方向画像分割部２１および水平方向画像分割部４１それぞれに入力させるようにしても良い。
【０１５９】
＜変形例＞
・上記の各実施の形態における垂直方向エッジ抽出フィルタリング部および水平方向エッジ抽出フィルタリング部については、エッジ抽出を行うフィルタリング処理後に、所定の閾値との大小関係を判別する閾値処理により例えば「エッジあり」「エッジなし」の２値化や、「正のエッジあり」「エッジなし」「負のエッジあり」の３値化を行うようにしても良い。このような閾値処理を行うことにより、所定の閾値以上の輝度変化(輝度勾配)を有するエッジを同一に扱うことが可能となる。
【０１６０】
・上記の各実施の形態においては、ビット数削減部２５から出力されるデータを、例えばフレーム毎のスイッチ切替えによって第１の垂直方向ブロック射影ラインメモリ２６と第２の垂直方向ブロック射影ラインメモリ２７とに交互に入力させるようにしても良い。同様に、垂直(水平)方向ブロック射影部から出力されるデータを、例えばフレーム毎のスイッチ切替えによって第１の垂直(水平)方向ブロック射影データ最大値保存部と第２の垂直(水平)方向ブロック射影データ最大値保存部とに交互に入力させるようにしても良い。
【０１６１】
・本発明における「前フレーム」には、後フレーム(例えば現在のフレーム)に対して１つだけ前のフレームに限らず、２つ以上前のフレームも含まれる。例えば、フレーム間引き処理により途中のフレームがスキップされている場合には、スキップされたフレームの前のフレームが含まれる。
【図面の簡単な説明】
【０１６２】
【図１】本発明の実施の形態１に係る動きベクトル検出装置１の要部構成を示すブロック図である。
【図２】フレーム画像における画素走査方向を説明するための図である。
【図３】水平方向動きベクトル検出部２の要部構成を示すブロック図である。
【図４】垂直方向ブロック射影部２３の要部構成を示すブロック図である。
【図５】垂直方向ブロック水平方向動きベクトル算出部３１の要部構成を示すブロック図である。
【図６】垂直方向動きベクトル検出部４の要部構成を示すブロック図である。
【図７】水平方向ブロック射影部４３の要部構成を示すブロック図である。
【図８】水平方向ブロック垂直方向動きベクトル算出部５０の要部構成を示すブロック図である。
【図９】垂直方向画像分割部２１および垂直方向ブロック射影部２３の動作を説明するための図である。
【図１０】ｎ値化器３１４におけるｎ値化処理を説明するための図である。
【図１１】第１の閾値交差点探索部２９、垂直方向ブロック射影データ読み出し部３０および垂直方向ブロック水平方向動きベクトル算出部３１の動作を説明するための図である。
【図１２】加算器３１５およびピーク検出部３１７の動作を説明するための図である。
【図１３】水平方向画像分割部４１および水平方向ブロック射影部４３の動作を説明するための図である。
【図１４】第３の閾値交差点探索部４８、水平方向ブロック射影データ読み出し部４９および水平方向ブロック垂直方向動きベクトル算出部５０の動作を説明するための図である。
【図１５】加算器５０５およびピーク検出部５０７の動作を説明するための図である。
【図１６】本発明の実施の形態２に係る動きベクトル検出装置１Ａにおける水平方向動きベクトル検出部２Ａの要部構成を示すブロック図である。
【図１７】動きベクトル検出装置１Ａにおける垂直方向動きベクトル検出部４Ａの要部構成を示すブロック図である。
【符号の説明】
【０１６３】
１，１Ａ  動きベクトル検出装置、２，２Ａ  水平方向動きベクトル検出部、４，４Ａ  垂直方向動きベクトル検出部、２１  垂直方向画像分割部、２２  垂直方向エッジ抽出フィルタリング部、２３  垂直方向ブロック射影部、２４  第１の垂直方向ブロック射影データ最大値保存部、２５  ビット数削減部、２６  第１の垂直方向ブロック射影ラインメモリ、２７  第２の垂直方向ブロック射影ラインメモリ、２８  第２の垂直方向ブロック射影データ最大値保存部、２９  第１の閾値交差点探索部、３０  垂直方向ブロック射影データ読み出し部、３１  垂直方向ブロック水平方向動きベクトル算出部、３２  水平方向動きベクトル決定部、４１  水平方向画像分割部、４２  水平方向エッジ抽出フィルタリング部、４３  水平方向ブロック射影部、４４  第１の水平方向ブロック射影ラインメモリ、４５  第１の水平方向ブロック射影データ最大値保存部、４６  第２の水平方向ブロック射影ラインメモリ、４７  第２の水平方向ブロック射影データ最大値保存部、４８  第３の閾値交差点探索部、４９  水平方向ブロック射影データ読み出し部、５０  水平方向ブロック垂直方向動きベクトル算出部、５１  垂直方向動きベクトル決定部、ｈｂ０〜ｈｂ９  水平方向ブロック、ｈｎ０〜ｈｎ９  水平方向ブロック射影データ、ｖｂ０〜ｖｂ７  垂直方向ブロック、ｖｎ０〜ｖｎ６  垂直方向ブロック射影データ。
【図１】
2008052472.tif 000003
【図２】
2008052472.tif 000004
【図３】
2008052472.tif 000005
【図４】
2008052472.tif 000006
【図５】
2008052472.tif 000007
【図６】
2008052472.tif 000008
【図７】
2008052472.tif 000009
【図８】
2008052472.tif 000010
【図９】
2008052472.tif 000011
【図１０】
2008052472.tif 000012
【図１１】
2008052472.tif 000013
【図１２】
2008052472.tif 000014
【図１３】
2008052472.tif 000015
【図１４】
2008052472.tif 000016
【図１５】
2008052472.tif 000017
【図１６】
2008052472.tif 000018
【図１７】
2008052472.tif 000019