(57)【特許請求の範囲】
【請求項１】
画像フレームにおいて、動きベクトルを検出する画像処理装置において、
動きベクトルを検出するための勾配法演算の対象となる演算ブロック内の画素差分に基づいて、前記演算ブロック内の画素が、前記動きベクトルの検出に有効であるか否かを判定する有効画素判定手段と、
前記有効画素判定手段により前記動きベクトルの検出に有効であると判定された有効画素の水平方向および垂直方向毎の勾配の有無を検出する勾配検出手段と、
前記勾配検出手段による検出結果に基づいて、前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が多いか否かを判定する片側勾配画素判定手段と、
前記片側勾配画素判定手段により前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が少ないと判定された場合、前記勾配法演算を、差分二乗和を用いた統合型勾配法演算に切り替え、前記片側勾配画素判定手段により前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が多いと判定された場合、前記勾配法演算を、水平方向および垂直方向毎に実行される独立型勾配法演算に切り替える演算切替手段と、
前記演算切替手段により切り替えられた前記統合型勾配法演算を、前記演算ブロック内の画素のうち、前記有効画素判定手段により前記動きベクトルの検出に有効であると判定された有効画素のみを用いて実行する統合型勾配法演算手段と、
前記演算切替手段により切り替えられた水平方向の独立型勾配法演算を、前記有効画素判定手段により前記動きベクトルの検出に有効であると判定された有効画素のうち、前記水平方向に勾配がある画素のみを用いて実行し、前記演算切替手段により切り替えられた垂直方向の独立型勾配法演算を、前記有効画素判定手段により前記動きベクトルの検出に有効であると判定された有効画素のうち、前記垂直方向に勾配がある画素のみを用いて実行する独立型勾配法演算手段と
を備える画像処理装置。
【請求項２】
前記片側勾配画素判定手段による判定結果に基づいて、前記勾配法演算により検出された動きベクトルの評価値と所定の比較対象ベクトルの評価値とを比較した結果に応じて、前記勾配法演算により検出された動きベクトルを修正するベクトル評価手段を
さらに備える請求項１に記載の画像処理装置。
【請求項３】
前記片側勾配画素判定手段による判定結果に基づいて、前記勾配法演算を反復するか否かを判定する反復判定手段を
さらに備える請求項１に記載の画像処理装置。
【請求項４】
動きベクトルを検出し、検出された動きベクトルに基づいて、画素値を生成する画像処理装置の画像処理方法において、
動きベクトルを検出するための勾配法演算の対象となる演算ブロック内の画素差分に基づいて、前記演算ブロック内の画素が、前記動きベクトルの検出に有効であるか否かを判定する有効画素判定ステップと、
前記有効画素判定ステップの処理により前記動きベクトルの検出に有効であると判定された有効画素の水平方向および垂直方向毎の勾配の有無を検出する勾配検出ステップと、
前記勾配検出ステップの処理による検出結果に基づいて、前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が多いか否かを判定する片側勾配画素判定ステップと、
前記片側勾配画素判定ステップの処理により前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が少ないと判定された場合、前記勾配法演算を、差分二乗和を用いた統合型勾配法演算に切り替え、前記片側勾配画素判定ステップの処理により前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が多いと判定された場合、前記勾配法演算を、水平方向および垂直方向毎に実行される独立型勾配法演算に切り替える演算切替ステップと、
前記演算切替ステップの処理により切り替えられた前記統合型勾配法演算を、前記演算ブロック内の画素のうち、前記有効画素判定ステップの処理により前記動きベクトルの検出に有効であると判定された有効画素のみを用いて実行する統合型勾配法演算ステップと、
前記演算切替ステップの処理により切り替えられた水平方向の独立型勾配法演算を、前記有効画素判定ステップの処理により前記動きベクトルの検出に有効であると判定された有効画素のうち、前記水平方向に勾配がある画素のみを用いて実行し、前記演算切替ステップの処理により切り替えられた垂直方向の独立型勾配法演算を、前記有効画素判定ステップの処理により前記動きベクトルの検出に有効であると判定された有効画素のうち、前記垂直方向に勾配がある画素のみを用いて実行する独立型勾配法演算ステップと
を含む画像処理方法。
【請求項５】
動きベクトルを検出し、検出された動きベクトルに基づいて、画素値を生成する処理をコンピュータに実行させるプログラムであって、
動きベクトルを検出するための勾配法演算の対象となる演算ブロック内の画素差分に基づいて、前記演算ブロック内の画素が、前記動きベクトルの検出に有効であるか否かを判定する有効画素判定ステップと、
前記有効画素判定ステップの処理により前記動きベクトルの検出に有効であると判定された有効画素の水平方向および垂直方向毎の勾配の有無を検出する勾配検出ステップと、
前記勾配検出ステップの処理による検出結果に基づいて、前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が多いか否かを判定する片側勾配画素判定ステップと、
前記片側勾配画素判定ステップの処理により前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が少ないと判定された場合、前記勾配法演算を、差分二乗和を用いた統合型勾配法演算に切り替え、前記片側勾配画素判定ステップの処理により前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が多いと判定された場合、前記勾配法演算を、水平方向および垂直方向毎に実行される独立型勾配法演算に切り替える演算切替ステップと、
前記演算切替ステップの処理により切り替えられた前記統合型勾配法演算を、前記演算ブロック内の画素のうち、前記有効画素判定ステップの処理により前記動きベクトルの検出に有効であると判定された有効画素のみを用いて実行する統合型勾配法演算ステップと、
前記演算切替ステップの処理により切り替えられた水平方向の独立型勾配法演算を、前記有効画素判定ステップの処理により前記動きベクトルの検出に有効であると判定された有効画素のうち、前記水平方向に勾配がある画素のみを用いて実行し、前記演算切替ステップの処理により切り替えられた垂直方向の独立型勾配法演算を、前記有効画素判定ステップの処理により前記動きベクトルの検出に有効であると判定された有効画素のうち、前記垂直方向に勾配がある画素のみを用いて実行する独立型勾配法演算ステップと
を含むプログラム。
【請求項６】
請求項５に記載のプログラムが記録されている記録媒体。
【請求項７】
画像フレームにおいて、動きベクトルを検出する画像処理装置において、
前記動きベクトルを検出する対象の第１のフレーム上の前記動きベクトルを検出するための勾配法演算の対象となる演算ブロック内の画素の第１の空間の画素差分を算出する第１の空間差分算出手段と、
前記第１のフレームの次の第２のフレーム上の前記演算ブロック内の画素の第２の空間の画素差分を算出する第２の空間差分算出手段と、
前記第１のフレームおよび前記第２のフレーム上の前記演算ブロック内の画素の時間方向の画素差分を算出する時間差分算出手段と、
前記演算ブロック内の画素が、前記第１および第２の空間差分算出手段、並びに、前記時間差分算出手段により算出された前記第１および第２空間、並びに、前記時間方向の画素差分に基づく、水平方向の勾配に着目した条件、垂直方向の勾配に着目した条件、並びに、水平方向および垂直方向の勾配に着目した条件を満たすか否かを判定する勾配条件判定手段と、
前記勾配条件判定手段により、前記演算ブロック内の画素が、前記水平方向の勾配に着目した条件、前記垂直方向の勾配に着目した条件、並びに、前記水平方向および垂直方向の勾配に着目した条件の少なくとも１つを満たすと判定された場合、前記演算ブロック内の画素が、前記動きベクトルの検出に有効であると判定する有効画素判定手段と、
前記水平方向の勾配に着目した条件、前記垂直方向の勾配に着目した条件、並びに、前記水平方向および垂直方向の勾配に着目した条件のうち、前記勾配条件判定手段により前記動きベクトルの検出に有効であると判定された有効画素が満たした条件に基づいて、前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が多いか否かを判定する片側勾配画素判定手段と、
前記片側勾配画素判定手段により前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が少ないと判定された場合、前記勾配法演算を、差分二乗和を用いた統合型勾配法演算に切り替え、前記片側勾配画素判定手段により前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が多いと判定された場合、前記勾配法演算を、水平方向および垂直方向毎に実行される独立型勾配法演算に切り替える演算切替手段と、
前記演算切替手段により切り替えられた前記統合型勾配法演算を、前記演算ブロック内の画素のうち、前記有効画素判定手段により前記動きベクトルの検出に有効であると判定された有効画素のみを用いて実行する統合型勾配法演算手段と、
前記演算切替手段により切り替えられた水平方向の独立型勾配法演算を、前記有効画素判定手段により前記動きベクトルの検出に有効であると判定された有効画素のうち、前記水平方向に勾配がある画素のみを用いて実行し、前記演算切替手段により切り替えられた垂直方向の独立型勾配法演算を、前記有効画素判定手段により前記動きベクトルの検出に有効であると判定された有効画素のうち、前記垂直方向に勾配がある画素のみを用いて実行する独立型勾配法演算手段と
を備える画像処理装置。
【請求項８】
前記片側勾配画素判定手段による判定結果に基づいて、前記勾配法演算により検出された動きベクトルの評価値と所定の比較対象ベクトルの評価値とを比較した結果に応じて、前記勾配法演算により検出された動きベクトルを修正するベクトル評価手段を
さらに備える請求項７に記載の画像処理装置。
【請求項９】
前記片側勾配画素判定手段による判定結果に基づいて、前記勾配法演算を反復するか否かを判定する反復判定手段を
さらに備える請求項７に記載の画像処理装置。
【請求項１０】
動きベクトルを検出し、検出された動きベクトルに基づいて、画素値を生成する画像処理装置の画像処理方法において、
前記動きベクトルを検出する対象の第１のフレーム上の前記動きベクトルを検出するための勾配法演算の対象となる演算ブロック内の画素の第１の空間の画素差分を算出する第１の空間差分算出ステップと、
前記第１のフレームの次の第２のフレーム上の前記演算ブロック内の画素の第２の空間の画素差分を算出する第２の空間差分算出ステップと、
前記第１のフレームおよび前記第２のフレーム上の前記演算ブロック内の画素の時間方向の画素差分を算出する時間差分算出ステップと、
前記演算ブロック内の画素が、前記第１および第２の空間差分算出ステップの処理、並びに、前記時間差分算出ステップの処理により算出された前記第１および第２空間、並びに、前記時間方向の画素差分に基づく、水平方向の勾配に着目した条件、垂直方向の勾配に着目した条件、並びに、水平方向および垂直方向の勾配に着目した条件を満たすか否かを判定する勾配条件判定ステップと、
前記勾配条件判定ステップの処理により、前記演算ブロック内の画素が、前記水平方向の勾配に着目した条件、前記垂直方向の勾配に着目した条件、並びに、前記水平方向および垂直方向の勾配に着目した条件の少なくとも１つを満たすと判定された場合、前記演算ブロック内の画素が、前記動きベクトルの検出に有効であると判定する有効画素判定ステップと、
前記水平方向の勾配に着目した条件、前記垂直方向の勾配に着目した条件、並びに、前記水平方向および垂直方向の勾配に着目した条件のうち、前記勾配条件判定ステップの処理により前記動きベクトルの検出に有効であると判定された有効画素が満たした条件に基づいて、前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が多いか否かを判定する片側勾配画素判定ステップと、
前記片側勾配画素判定ステップの処理により前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が少ないと判定された場合、前記勾配法演算を、差分二乗和を用いた統合型勾配法演算に切り替え、前記片側勾配画素判定ステップの処理により前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が多いと判定された場合、前記勾配法演算を、水平方向および垂直方向毎に実行される独立型勾配法演算に切り替える演算切替ステップと、
前記演算切替ステップの処理により切り替えられた前記統合型勾配法演算を、前記演算ブロック内の画素のうち、前記有効画素判定ステップの処理により前記動きベクトルの検出に有効であると判定された有効画素のみを用いて実行する統合型勾配法演算ステップと、
前記演算切替ステップの処理により切り替えられた水平方向の独立型勾配法演算を、前記有効画素判定ステップの処理により前記動きベクトルの検出に有効であると判定された有効画素のうち、前記水平方向に勾配がある画素のみを用いて実行し、前記演算切替ステップの処理により切り替えられた垂直方向の独立型勾配法演算を、前記有効画素判定ステップの処理により前記動きベクトルの検出に有効であると判定された有効画素のうち、前記垂直方向に勾配がある画素のみを用いて実行する独立型勾配法演算ステップと
を含む画像処理方法。
【請求項１１】
動きベクトルを検出し、検出された動きベクトルに基づいて、画素値を生成する処理をコンピュータに実行させるプログラムであって、
前記動きベクトルを検出する対象の第１のフレーム上の前記動きベクトルを検出するための勾配法演算の対象となる演算ブロック内の画素の第１の空間の画素差分を算出する第１の空間差分算出ステップと、
前記第１のフレームの次の第２のフレーム上の前記演算ブロック内の画素の第２の空間の画素差分を算出する第２の空間差分算出ステップと、
前記第１のフレームおよび前記第２のフレーム上の前記演算ブロック内の画素の時間方向の画素差分を算出する時間差分算出ステップと、
前記演算ブロック内の画素が、前記第１および第２の空間差分算出ステップの処理、並びに、前記時間差分算出ステップの処理により算出された前記第１および第２空間、並びに、前記時間方向の画素差分に基づく、水平方向の勾配に着目した条件、垂直方向の勾配に着目した条件、並びに、水平方向および垂直方向の勾配に着目した条件を満たすか否かを判定する勾配条件判定ステップと、
前記勾配条件判定ステップの処理により、前記演算ブロック内の画素が、前記水平方向の勾配に着目した条件、前記垂直方向の勾配に着目した条件、並びに、前記水平方向および垂直方向の勾配に着目した条件の少なくとも１つを満たすと判定された場合、前記演算ブロック内の画素が、前記動きベクトルの検出に有効であると判定する有効画素判定ステップと、
前記水平方向の勾配に着目した条件、前記垂直方向の勾配に着目した条件、並びに、前記水平方向および垂直方向の勾配に着目した条件のうち、前記勾配条件判定ステップの処理により前記動きベクトルの検出に有効であると判定された有効画素が満たした条件に基づいて、前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が多いか否かを判定する片側勾配画素判定ステップと、
前記片側勾配画素判定ステップの処理により前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が少ないと判定された場合、前記勾配法演算を、差分二乗和を用いた統合型勾配法演算に切り替え、前記片側勾配画素判定ステップの処理により前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が多いと判定された場合、前記勾配法演算を、水平方向および垂直方向毎に実行される独立型勾配法演算に切り替える演算切替ステップと、
前記演算切替ステップの処理により切り替えられた前記統合型勾配法演算を、前記演算ブロック内の画素のうち、前記有効画素判定ステップの処理により前記動きベクトルの検出に有効であると判定された有効画素のみを用いて実行する統合型勾配法演算ステップと、
前記演算切替ステップの処理により切り替えられた水平方向の独立型勾配法演算を、前記有効画素判定ステップの処理により前記動きベクトルの検出に有効であると判定された有効画素のうち、前記水平方向に勾配がある画素のみを用いて実行し、前記演算切替ステップの処理により切り替えられた垂直方向の独立型勾配法演算を、前記有効画素判定ステップの処理により前記動きベクトルの検出に有効であると判定された有効画素のうち、前記垂直方向に勾配がある画素のみを用いて実行する独立型勾配法演算ステップと
を含むプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および方法、プログラム、並びに記録媒体に関し、特に、演算ブロック内の有効画素のうち、水平および垂直方向のどちらか一方にしか勾配がない片側勾配の画素の割合を判定することで、動きベクトル検出の精度を向上することができるようにした画像処理装置および方法、プログラム、並びに記録媒体に関する。
【背景技術】
【０００２】
動画像のフレーム周波数変換処理や動画像圧縮処理を行う画像処理装置においては、動画像上で動き検出処理を行い、検出された動きベクトルを用いて処理を行うことが多い（特許文献１参照）。この動き検出処理において、一般的に用いられる方法として、ブロックマッチングや反復勾配法などがある。
【０００３】
この反復勾配法は、簡単な演算で画素以下の動きを検出できる特徴がある一方、画素単位の検出では、精度が悪いため、通常の場合、ブロック単位で値を積算して、動きベクトル検出が行われることが多い。
【０００４】
したがって、従来においては、動きベクトルを検出する対象となる着目画素、または、着目ブロックの周辺に設定した演算ブロック内すべての画素を用いて勾配法演算が行われていた。理想的には、この演算ブロック内部の画素がほぼ同等な動きを持っている場合には、確からしい動きベクトルが検出される。
【０００５】
【特許文献１】特開平９−１７２６２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、この演算ブロックに、着目画素または着目ブロックのものとは異なる動きを持つオブジェクトの画素が混入する場合があり、この場合には、確からしくない動きベクトルが検出されることが多く、動きベクトルの検出精度が著しく悪くなった。
【０００７】
また、演算ブロックが、水平方向または垂直方向のどちらか一方にのみ勾配が存在する領域（片側勾配領域）に含まれていた場合にも、確からしくない動きベクトルが検出されることが多かった。
【０００８】
そして、この結果得られた動きベクトルを用いて、フレーム周波数変換を行った画像は、特に、そのオブジェクトの境界付近に、ノイズが生じたり、不連続になってしまうなど、著しい視覚劣化をもたらす恐れもあった。
【０００９】
本発明は、このような状況に鑑みてなされたものであり、勾配法による動きベクトルの検出精度を向上することができるようにするものである。
【課題を解決するための手段】
【００１０】
本発明の第１の側面の画像処理装置は、画像フレームにおいて、動きベクトルを検出する画像処理装置において、動きベクトルを検出するための勾配法演算の対象となる演算ブロック内の画素差分に基づいて、前記演算ブロック内の画素が、前記動きベクトルの検出に有効であるか否かを判定する有効画素判定手段と、前記有効画素判定手段により前記動きベクトルの検出に有効であると判定された有効画素の水平方向および垂直方向毎の勾配の有無を検出する勾配検出手段と、前記勾配検出手段による検出結果に基づいて、前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が多いか否かを判定する片側勾配画素判定手段と、前記片側勾配画素判定手段により前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が少ないと判定された場合、前記勾配法演算を、差分二乗和を用いた統合型勾配法演算に切り替え、前記片側勾配画素判定手段により前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が多いと判定された場合、前記勾配法演算を、水平方向および垂直方向毎に実行される独立型勾配法演算に切り替える演算切替手段と、前記演算切替手段により切り替えられた前記統合型勾配法演算を、前記演算ブロック内の画素のうち、前記有効画素判定手段により前記動きベクトルの検出に有効であると判定された有効画素のみを用いて実行する統合型勾配法演算手段と、前記演算切替手段により切り替えられた水平方向の独立型勾配法演算を、前記有効画素判定手段により前記動きベクトルの検出に有効であると判定された有効画素のうち、前記水平方向に勾配がある画素のみを用いて実行し、前記演算切替手段により切り替えられた垂直方向の独立型勾配法演算を、前記有効画素判定手段により前記動きベクトルの検出に有効であると判定された有効画素のうち、前記垂直方向に勾配がある画素のみを用いて実行する独立型勾配法演算手段とを備える。
【００１１】
前記片側勾配画素判定手段による判定結果に基づいて、前記勾配法演算により検出された動きベクトルの評価値と所定の比較対象ベクトルの評価値とを比較した結果に応じて、前記勾配法演算により検出された動きベクトルを修正するベクトル評価手段をさらに備えることができる。
【００１２】
前記片側勾配画素判定手段による判定結果に基づいて、前記勾配法演算を反復するか否かを判定する反復判定手段をさらに備えることができる。
【００１３】
本発明の第１の側面の画像処理方法は、動きベクトルを検出し、検出された動きベクトルに基づいて、画素値を生成する画像処理装置の画像処理方法において、動きベクトルを検出するための勾配法演算の対象となる演算ブロック内の画素差分に基づいて、前記演算ブロック内の画素が、前記動きベクトルの検出に有効であるか否かを判定する有効画素判定ステップと、前記有効画素判定ステップの処理により前記動きベクトルの検出に有効であると判定された有効画素の水平方向および垂直方向毎の勾配の有無を検出する勾配検出ステップと、前記勾配検出ステップの処理による検出結果に基づいて、前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が多いか否かを判定する片側勾配画素判定ステップと、前記片側勾配画素判定ステップの処理により前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が少ないと判定された場合、前記勾配法演算を、差分二乗和を用いた統合型勾配法演算に切り替え、前記片側勾配画素判定ステップの処理により前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が多いと判定された場合、前記勾配法演算を、水平方向および垂直方向毎に実行される独立型勾配法演算に切り替える演算切替ステップと、前記演算切替ステップの処理により切り替えられた前記統合型勾配法演算を、前記演算ブロック内の画素のうち、前記有効画素判定ステップの処理により前記動きベクトルの検出に有効であると判定された有効画素のみを用いて実行する統合型勾配法演算ステップと、前記演算切替ステップの処理により切り替えられた水平方向の独立型勾配法演算を、前記有効画素判定ステップの処理により前記動きベクトルの検出に有効であると判定された有効画素のうち、前記水平方向に勾配がある画素のみを用いて実行し、前記演算切替ステップの処理により切り替えられた垂直方向の独立型勾配法演算を、前記有効画素判定ステップの処理により前記動きベクトルの検出に有効であると判定された有効画素のうち、前記垂直方向に勾配がある画素のみを用いて実行する独立型勾配法演算ステップとを含む。
【００１４】
本発明の第１の側面のプログラムは、動きベクトルを検出し、検出された動きベクトルに基づいて、画素値を生成する処理をコンピュータに実行させるプログラムであって、動きベクトルを検出するための勾配法演算の対象となる演算ブロック内の画素差分に基づいて、前記演算ブロック内の画素が、前記動きベクトルの検出に有効であるか否かを判定する有効画素判定ステップと、前記有効画素判定ステップの処理により前記動きベクトルの検出に有効であると判定された有効画素の水平方向および垂直方向毎の勾配の有無を検出する勾配検出ステップと、前記勾配検出ステップの処理による検出結果に基づいて、前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が多いか否かを判定する片側勾配画素判定ステップと、前記片側勾配画素判定ステップの処理により前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が少ないと判定された場合、前記勾配法演算を、差分二乗和を用いた統合型勾配法演算に切り替え、前記片側勾配画素判定ステップの処理により前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が多いと判定された場合、前記勾配法演算を、水平方向および垂直方向毎に実行される独立型勾配法演算に切り替える演算切替ステップと、前記演算切替ステップの処理により切り替えられた前記統合型勾配法演算を、前記演算ブロック内の画素のうち、前記有効画素判定ステップの処理により前記動きベクトルの検出に有効であると判定された有効画素のみを用いて実行する統合型勾配法演算ステップと、前記演算切替ステップの処理により切り替えられた水平方向の独立型勾配法演算を、前記有効画素判定ステップの処理により前記動きベクトルの検出に有効であると判定された有効画素のうち、前記水平方向に勾配がある画素のみを用いて実行し、前記演算切替ステップの処理により切り替えられた垂直方向の独立型勾配法演算を、前記有効画素判定ステップの処理により前記動きベクトルの検出に有効であると判定された有効画素のうち、前記垂直方向に勾配がある画素のみを用いて実行する独立型勾配法演算ステップとを含む。
【００１５】
本発明の第１の側面においては、動きベクトルを検出するための勾配法演算の対象となる演算ブロック内の画素差分に基づいて、前記演算ブロック内の画素が、前記動きベクトルの検出に有効であるか否かが判定され、前記動きベクトルの検出に有効であると判定された有効画素の水平方向および垂直方向毎の勾配の有無が検出され、その検出結果に基づいて、前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が多いか否かが判定される。そして、前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が少ないと判定された場合、前記勾配法演算が、差分二乗和を用いた統合型勾配法演算に切り替えられ、前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が多いと判定された場合、前記勾配法演算が、水平方向および垂直方向毎に実行される独立型勾配法演算に切り替えられる。切り替えられた前記統合型勾配法演算では、前記演算ブロック内の画素のうち、前記有効画素のみを用いて実行され、切り替えられた水平方向の独立型勾配法演算では、前記有効画素のうち、前記水平方向に勾配がある画素のみを用いて実行され、切り替えられた垂直方向の独立型勾配法演算では、前記有効画素のうち、前記垂直方向に勾配がある画素のみを用いて実行される。
【００１６】
本発明の第２の側面の画像処理装置は、画像フレームにおいて、動きベクトルを検出する画像処理装置において、前記動きベクトルを検出する対象の第１のフレーム上の前記動きベクトルを検出するための勾配法演算の対象となる演算ブロック内の画素の第１の空間の画素差分を算出する第１の空間差分算出手段と、前記第１のフレームの次の第２のフレーム上の前記演算ブロック内の画素の第２の空間の画素差分を算出する第２の空間差分算出手段と、前記第１のフレームおよび前記第２のフレーム上の前記演算ブロック内の画素の時間方向の画素差分を算出する時間差分算出手段と、前記演算ブロック内の画素が、前記第１および第２の空間差分算出手段、並びに、前記時間差分算出手段により算出された前記第１および第２空間、並びに、前記時間方向の画素差分に基づく、水平方向の勾配に着目した条件、垂直方向の勾配に着目した条件、並びに、水平方向および垂直方向の勾配に着目した条件を満たすか否かを判定する勾配条件判定手段と、前記勾配条件判定手段により、前記演算ブロック内の画素が、前記水平方向の勾配に着目した条件、前記垂直方向の勾配に着目した条件、並びに、前記水平方向および垂直方向の勾配に着目した条件の少なくとも１つを満たすと判定された場合、前記演算ブロック内の画素が、前記動きベクトルの検出に有効であると判定する有効画素判定手段と、前記水平方向の勾配に着目した条件、前記垂直方向の勾配に着目した条件、並びに、前記水平方向および垂直方向の勾配に着目した条件のうち、前記勾配条件判定手段により前記動きベクトルの検出に有効であると判定された有効画素が満たした条件に基づいて、前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が多いか否かを判定する片側勾配画素判定手段と、前記片側勾配画素判定手段により前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が少ないと判定された場合、前記勾配法演算を、差分二乗和を用いた統合型勾配法演算に切り替え、前記片側勾配画素判定手段により前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が多いと判定された場合、前記勾配法演算を、水平方向および垂直方向毎に実行される独立型勾配法演算に切り替える演算切替手段と、前記演算切替手段により切り替えられた前記統合型勾配法演算を、前記演算ブロック内の画素のうち、前記有効画素判定手段により前記動きベクトルの検出に有効であると判定された有効画素のみを用いて実行する統合型勾配法演算手段と、前記演算切替手段により切り替えられた水平方向の独立型勾配法演算を、前記有効画素判定手段により前記動きベクトルの検出に有効であると判定された有効画素のうち、前記水平方向に勾配がある画素のみを用いて実行し、前記演算切替手段により切り替えられた垂直方向の独立型勾配法演算を、前記有効画素判定手段により前記動きベクトルの検出に有効であると判定された有効画素のうち、前記垂直方向に勾配がある画素のみを用いて実行する独立型勾配法演算手段とを備える。
【００１７】
前記片側勾配画素判定手段による判定結果に基づいて、前記勾配法演算により検出された動きベクトルの評価値と所定の比較対象ベクトルの評価値とを比較した結果に応じて、前記勾配法演算により検出された動きベクトルを修正するベクトル評価手段をさらに備えることができる。
【００１８】
前記片側勾配画素判定手段による判定結果に基づいて、前記勾配法演算を反復するか否かを判定する反復判定手段をさらに備えることができる。
【００１９】
本発明の第２の側面の画像処理方法は、動きベクトルを検出し、検出された動きベクトルに基づいて、画素値を生成する画像処理装置の画像処理方法において、前記動きベクトルを検出する対象の第１のフレーム上の前記動きベクトルを検出するための勾配法演算の対象となる演算ブロック内の画素の第１の空間の画素差分を算出する第１の空間差分算出ステップと、前記第１のフレームの次の第２のフレーム上の前記演算ブロック内の画素の第２の空間の画素差分を算出する第２の空間差分算出ステップと、前記第１のフレームおよび前記第２のフレーム上の前記演算ブロック内の画素の時間方向の画素差分を算出する時間差分算出ステップと、前記演算ブロック内の画素が、前記第１および第２の空間差分算出ステップの処理、並びに、前記時間差分算出ステップの処理により算出された前記第１および第２空間、並びに、前記時間方向の画素差分に基づく、水平方向の勾配に着目した条件、垂直方向の勾配に着目した条件、並びに、水平方向および垂直方向の勾配に着目した条件を満たすか否かを判定する勾配条件判定ステップと、前記勾配条件判定ステップの処理により、前記演算ブロック内の画素が、前記水平方向の勾配に着目した条件、前記垂直方向の勾配に着目した条件、並びに、前記水平方向および垂直方向の勾配に着目した条件の少なくとも１つを満たすと判定された場合、前記演算ブロック内の画素が、前記動きベクトルの検出に有効であると判定する有効画素判定ステップと、前記水平方向の勾配に着目した条件、前記垂直方向の勾配に着目した条件、並びに、前記水平方向および垂直方向の勾配に着目した条件のうち、前記勾配条件判定ステップの処理により前記動きベクトルの検出に有効であると判定された有効画素が満たした条件に基づいて、前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が多いか否かを判定する片側勾配画素判定ステップと、前記片側勾配画素判定ステップの処理により前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が少ないと判定された場合、前記勾配法演算を、差分二乗和を用いた統合型勾配法演算に切り替え、前記片側勾配画素判定ステップの処理により前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が多いと判定された場合、前記勾配法演算を、水平方向および垂直方向毎に実行される独立型勾配法演算に切り替える演算切替ステップと、前記演算切替ステップの処理により切り替えられた前記統合型勾配法演算を、前記演算ブロック内の画素のうち、前記有効画素判定ステップの処理により前記動きベクトルの検出に有効であると判定された有効画素のみを用いて実行する統合型勾配法演算ステップと、前記演算切替ステップの処理により切り替えられた水平方向の独立型勾配法演算を、前記有効画素判定ステップの処理により前記動きベクトルの検出に有効であると判定された有効画素のうち、前記水平方向に勾配がある画素のみを用いて実行し、前記演算切替ステップの処理により切り替えられた垂直方向の独立型勾配法演算を、前記有効画素判定ステップの処理により前記動きベクトルの検出に有効であると判定された有効画素のうち、前記垂直方向に勾配がある画素のみを用いて実行する独立型勾配法演算ステップとを含む。
【００２０】
本発明の第２の側面のプログラムは、動きベクトルを検出し、検出された動きベクトルに基づいて、画素値を生成する処理をコンピュータに実行させるプログラムであって、前記動きベクトルを検出する対象の第１のフレーム上の前記動きベクトルを検出するための勾配法演算の対象となる演算ブロック内の画素の第１の空間の画素差分を算出する第１の空間差分算出ステップと、前記第１のフレームの次の第２のフレーム上の前記演算ブロック内の画素の第２の空間の画素差分を算出する第２の空間差分算出ステップと、前記第１のフレームおよび前記第２のフレーム上の前記演算ブロック内の画素の時間方向の画素差分を算出する時間差分算出ステップと、前記演算ブロック内の画素が、前記第１および第２の空間差分算出ステップの処理、並びに、前記時間差分算出ステップの処理により算出された前記第１および第２空間、並びに、前記時間方向の画素差分に基づく、水平方向の勾配に着目した条件、垂直方向の勾配に着目した条件、並びに、水平方向および垂直方向の勾配に着目した条件を満たすか否かを判定する勾配条件判定ステップと、前記勾配条件判定ステップの処理により、前記演算ブロック内の画素が、前記水平方向の勾配に着目した条件、前記垂直方向の勾配に着目した条件、並びに、前記水平方向および垂直方向の勾配に着目した条件の少なくとも１つを満たすと判定された場合、前記演算ブロック内の画素が、前記動きベクトルの検出に有効であると判定する有効画素判定ステップと、前記水平方向の勾配に着目した条件、前記垂直方向の勾配に着目した条件、並びに、前記水平方向および垂直方向の勾配に着目した条件のうち、前記勾配条件判定ステップの処理により前記動きベクトルの検出に有効であると判定された有効画素が満たした条件に基づいて、前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が多いか否かを判定する片側勾配画素判定ステップと、前記片側勾配画素判定ステップの処理により前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が少ないと判定された場合、前記勾配法演算を、差分二乗和を用いた統合型勾配法演算に切り替え、前記片側勾配画素判定ステップの処理により前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が多いと判定された場合、前記勾配法演算を、水平方向および垂直方向毎に実行される独立型勾配法演算に切り替える演算切替ステップと、前記演算切替ステップの処理により切り替えられた前記統合型勾配法演算を、前記演算ブロック内の画素のうち、前記有効画素判定ステップの処理により前記動きベクトルの検出に有効であると判定された有効画素のみを用いて実行する統合型勾配法演算ステップと、前記演算切替ステップの処理により切り替えられた水平方向の独立型勾配法演算を、前記有効画素判定ステップの処理により前記動きベクトルの検出に有効であると判定された有効画素のうち、前記水平方向に勾配がある画素のみを用いて実行し、前記演算切替ステップの処理により切り替えられた垂直方向の独立型勾配法演算を、前記有効画素判定ステップの処理により前記動きベクトルの検出に有効であると判定された有効画素のうち、前記垂直方向に勾配がある画素のみを用いて実行する独立型勾配法演算ステップとを含む。
【００２１】
本発明の第２の側面においては、動きベクトルを検出する対象の第１のフレーム上の動きベクトルを検出するための勾配法演算の対象となる演算ブロック内の画素の第１の空間の画素差分が算出され、前記第１のフレームの次の第２のフレーム上の前記演算ブロック内の画素の第２の空間の画素差分が算出され、前記第１のフレームおよび前記第２のフレーム上の前記演算ブロック内の画素の時間方向の画素差分が算出される。前記演算ブロック内の画素が、第１および第２空間、並びに、前記時間方向の画素差分に基づく、水平方向の勾配に着目した条件、垂直方向の勾配に着目した条件、並びに、水平方向および垂直方向の勾配に着目した条件を満たすか否かが判定され、前記演算ブロック内の画素が、前記水平方向の勾配に着目した条件、前記垂直方向の勾配に着目した条件、並びに、前記水平方向および垂直方向の勾配に着目した条件の少なくとも１つを満たすと判定された場合、前記演算ブロック内の画素が、前記動きベクトルの検出に有効であると判定される。
前記水平方向の勾配に着目した条件、前記垂直方向の勾配に着目した条件、並びに、前記水平方向および垂直方向の勾配に着目した条件のうち、前記動きベクトルの検出に有効であると判定された有効画素が満たした条件に基づいて、前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が多いか否かが判定され、前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が少ないと判定された場合、前記勾配法演算が、差分二乗和を用いた統合型勾配法演算に切り替えられ、前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が多いと判定された場合、前記勾配法演算が、水平方向および垂直方向毎に実行される独立型勾配法演算に切り替えられる。切り替えられた前記統合型勾配法演算では、前記演算ブロック内の画素のうち、前記有効画素のみを用いて実行され、切り替えられた水平方向の独立型勾配法演算では、前記有効画素のうち、前記水平方向に勾配がある画素のみを用いて実行され、切り替えられた垂直方向の独立型勾配法演算では、前記有効画素のうち、前記垂直方向に勾配がある画素のみを用いて実行される。
【発明の効果】
【００２２】
本発明の一側面によれば、特に、勾配法による動きベクトルの検出精度をさらに向上させることができる。
【発明を実施するための最良の形態】
【００２３】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書または図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書または図面に記載されていることを確認するためのものである。従って、明細書または図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００２４】
本発明の第１の側面の画像処理装置は、画像フレームにおいて、動きベクトルを検出する画像処理装置において、動きベクトルを検出するための勾配法演算の対象となる演算ブロック内の画素差分に基づいて、前記演算ブロック内の画素が、前記動きベクトルの検出に有効であるか否かを判定する有効画素判定手段（例えば、図２６の画素判定部４２２）と、前記有効画素判定手段により前記動きベクトルの検出に有効であると判定された有効画素の水平方向および垂直方向毎の勾配の有無を検出する勾配検出手段（例えば、図２６の水平勾配判定部４３２および垂直勾配判定部４３３）と、前記勾配検出手段による検出結果に基づいて、前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が多いか否かを判定する片側勾配画素判定手段（例えば、図２６のカウンタ値演算部４５１）と、前記片側勾配画素判定手段により前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が少ないと判定された場合、前記勾配法演算を、差分二乗和を用いた統合型勾配法演算に切り替え、前記片側勾配画素判定手段により前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が多いと判定された場合、前記勾配法演算を、水平方向および垂直方向毎に実行される独立型勾配法演算に切り替える演算切替手段（例えば、図２７の演算判定部４６２）と、前記演算切替手段により切り替えられた前記統合型勾配法演算を、前記演算ブロック内の画素のうち、前記有効画素判定手段により前記動きベクトルの検出に有効であると判定された有効画素のみを用いて実行する統合型勾配法演算手段（例えば、図２７の統合型勾配演算部４６３−１）と、前記演算切替手段により切り替えられた水平方向の独立型勾配法演算を、前記有効画素判定手段により前記動きベクトルの検出に有効であると判定された有効画素のうち、前記水平方向に勾配がある画素のみを用いて実行し、前記演算切替手段により切り替えられた垂直方向の独立型勾配法演算を、前記有効画素判定手段により前記動きベクトルの検出に有効であると判定された有効画素のうち、前記垂直方向に勾配がある画素のみを用いて実行する独立型勾配法演算手段（例えば、図２７の独立型勾配演算部４６３−２）とを備える。
【００２５】
本発明の第１の側面の画像処理方法またはプログラムは、動きベクトルを検出し、検出された動きベクトルに基づいて、画素値を生成する画像処理装置の画像処理方法において、または、動きベクトルを検出し、検出された動きベクトルに基づいて、画素値を生成する処理をコンピュータに行わせるプログラムであって、動きベクトルを検出するための勾配法演算の対象となる演算ブロック内の画素差分に基づいて、前記演算ブロック内の画素が、前記動きベクトルの検出に有効であるか否かを判定する有効画素判定ステップ（例えば、図３２のステップＳ３０３）と、前記有効画素判定ステップの処理により前記動きベクトルの検出に有効であると判定された有効画素の水平方向および垂直方向毎の勾配の有無を検出する勾配検出ステップと、前記勾配検出ステップの処理による検出結果に基づいて、前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が多いか否かを判定する片側勾配画素判定ステップ（例えば、図３２のステップＳ３０５）と、前記片側勾配画素判定ステップの処理により前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が少ないと判定された場合、前記勾配法演算を、差分二乗和を用いた統合型勾配法演算に切り替え、前記片側勾配画素判定ステップの処理により前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が多いと判定された場合、前記勾配法演算を、水平方向および垂直方向毎に実行される独立型勾配法演算に切り替える演算切替ステップ（例えば、図３６のステップＳ４０２）と、前記演算切替ステップの処理により切り替えられた前記統合型勾配法演算を、前記演算ブロック内の画素のうち、前記有効画素判定ステップの処理により前記動きベクトルの検出に有効であると判定された有効画素のみを用いて実行する統合型勾配法演算ステップと、前記演算切替ステップの処理により切り替えられた水平方向の独立型勾配法演算を、前記有効画素判定ステップの処理により前記動きベクトルの検出に有効であると判定された有効画素のうち、前記水平方向に勾配がある画素のみを用いて実行し、前記演算切替ステップの処理により切り替えられた垂直方向の独立型勾配法演算を、前記有効画素判定ステップの処理により前記動きベクトルの検出に有効であると判定された有効画素のうち、前記垂直方向に勾配がある画素のみを用いて実行する独立型勾配法演算ステップとを含む。
【００２６】
本発明の第２の側面の画像処理装置は、画像フレームにおいて、動きベクトルを検出する画像処理装置において、前記動きベクトルを検出する対象の第１のフレーム上の前記動きベクトルを検出するための勾配法演算の対象となる演算ブロック内の画素の第１の空間の画素差分を算出する第１の空間差分算出手段（例えば、図２６の第１空間勾配画素差分算出部４２１−１）と、前記第１のフレームの次の第２のフレーム上の前記演算ブロック内の画素の第２の空間の画素差分を算出する第２の空間差分算出手段（例えば、図２６の第２空間勾配画素差分算出部４２１−２）と、前記第１のフレームおよび前記第２のフレーム上の前記演算ブロック内の画素の時間方向の画素差分を算出する時間差分算出手段（例えば、図２６の時間方向画素差分算出部４２１−３）と、前記演算ブロック内の画素が、前記第１および第２の空間差分算出手段、並びに、前記時間差分算出手段により算出された前記第１および第２空間、並びに、前記時間方向の画素差分に基づく、水平方向の勾配に着目した条件、垂直方向の勾配に着目した条件、並びに、水平方向および垂直方向の勾配に着目した条件を満たすか否かを判定する勾配条件判定手段（例えば、図４０の水平垂直勾配判定部４３１−１、水平勾配判定部４３１−２、および垂直勾配判定部４３１−３）と、前記勾配条件判定手段により、前記演算ブロック内の画素が、前記水平方向の勾配に着目した条件、前記垂直方向の勾配に着目した条件、並びに、前記水平方向および垂直方向の勾配に着目した条件の少なくとも１つを満たすと判定された場合、前記演算ブロック内の画素が、前記動きベクトルの検出に有効であると判定する有効画素判定手段（例えば、図２６の画素判定部４２２）と、前記水平方向の勾配に着目した条件、前記垂直方向の勾配に着目した条件、並びに、前記水平方向および垂直方向の勾配に着目した条件のうち、前記勾配条件判定手段により前記動きベクトルの検出に有効であると判定された有効画素が満たした条件に基づいて、前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が多いか否かを判定する片側勾配画素判定手段（例えば、図２６のカウンタ値演算部４５１）と、前記片側勾配画素判定手段により前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が少ないと判定された場合、前記勾配法演算を、差分二乗和を用いた統合型勾配法演算に切り替え、前記片側勾配画素判定手段により前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が多いと判定された場合、前記勾配法演算を、水平方向および垂直方向毎に実行される独立型勾配法演算に切り替える演算切替手段（例えば、図２７の演算判定部４６２）と、前記演算切替手段により切り替えられた前記統合型勾配法演算を、前記演算ブロック内の画素のうち、前記有効画素判定手段により前記動きベクトルの検出に有効であると判定された有効画素のみを用いて実行する統合型勾配法演算手段（例えば、図２７の統合型勾配演算部４６３−１）と、前記演算切替手段により切り替えられた水平方向の独立型勾配法演算を、前記有効画素判定手段により前記動きベクトルの検出に有効であると判定された有効画素のうち、前記水平方向に勾配がある画素のみを用いて実行し、前記演算切替手段により切り替えられた垂直方向の独立型勾配法演算を、前記有効画素判定手段により前記動きベクトルの検出に有効であると判定された有効画素のうち、前記垂直方向に勾配がある画素のみを用いて実行する独立型勾配法演算手段（例えば、図２７の独立型勾配演算部４６３−２）とを備える。
【００２７】
前記片側勾配画素判定手段による判定結果に基づいて、前記勾配法演算により検出された動きベクトルの評価値と所定の比較対象ベクトルの評価値とを比較した結果に応じて、前記勾配法演算により検出された動きベクトルを修正するベクトル評価手段（例えば、図３２のステップＳ３０７の処理を実行する図１７のベクトル評価部１０４）をさらに備えることができる。
【００２８】
前記片側勾配画素判定手段による判定結果に基づいて、前記勾配法演算を反復するか否かを判定する反復判定手段（例えば、図３２のステップＳ３０８の処理を実行する図２５の評価判定部４１２）をさらに備えることができる。
【００２９】
本発明の第２の側面の画像処理方法またはプログラムは、動きベクトルを検出し、検出された動きベクトルに基づいて、画素値を生成する画像処理装置の画像処理方法において、または、動きベクトルを検出し、検出された動きベクトルに基づいて、画素値を生成する処理をコンピュータに行わせるプログラムであって、前記動きベクトルを検出する対象の第１のフレーム上の前記動きベクトルを検出するための勾配法演算の対象となる演算ブロック内の画素の第１の空間の画素差分を算出する第１の空間差分算出ステップと、前記第１のフレームの次の第２のフレーム上の前記演算ブロック内の画素の第２の空間の画素差分を算出する第２の空間差分算出ステップと、前記第１のフレームおよび前記第２のフレーム上の前記演算ブロック内の画素の時間方向の画素差分を算出する時間差分算出ステップと、前記演算ブロック内の画素が、前記第１および第２の空間差分算出ステップの処理、並びに、前記時間差分算出ステップの処理により算出された前記第１および第２空間、並びに、前記時間方向の画素差分に基づく、水平方向の勾配に着目した条件、垂直方向の勾配に着目した条件、並びに、水平方向および垂直方向の勾配に着目した条件を満たすか否かを判定する勾配条件判定ステップと、前記勾配条件判定ステップの処理により、前記演算ブロック内の画素が、前記水平方向の勾配に着目した条件、前記垂直方向の勾配に着目した条件、並びに、前記水平方向および垂直方向の勾配に着目した条件の少なくとも１つを満たすと判定された場合、前記演算ブロック内の画素が、前記動きベクトルの検出に有効であると判定する有効画素判定ステップ（例えば、図３２のステップＳ３０３）と、前記水平方向の勾配に着目した条件、前記垂直方向の勾配に着目した条件、並びに、前記水平方向および垂直方向の勾配に着目した条件のうち、前記勾配条件判定ステップの処理により前記動きベクトルの検出に有効であると判定された有効画素が満たした条件に基づいて、前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が多いか否かを判定する片側勾配画素判定ステップ（例えば、図３２のステップＳ３０５）と、前記片側勾配画素判定ステップの処理により前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が少ないと判定された場合、前記勾配法演算を、差分二乗和を用いた統合型勾配法演算に切り替え、前記片側勾配画素判定ステップの処理により前記有効画素に、水平方向および垂直方向のどちらか一方に対する勾配がない画素が多いと判定された場合、前記勾配法演算を、水平方向および垂直方向毎に実行される独立型勾配法演算に切り替える演算切替ステップ（例えば、図３６のステップＳ４０２）と、前記演算切替ステップの処理により切り替えられた前記統合型勾配法演算を、前記演算ブロック内の画素のうち、前記有効画素判定ステップの処理により前記動きベクトルの検出に有効であると判定された有効画素のみを用いて実行する統合型勾配法演算ステップと、前記演算切替ステップの処理により切り替えられた水平方向の独立型勾配法演算を、前記有効画素判定ステップの処理により前記動きベクトルの検出に有効であると判定された有効画素のうち、前記水平方向に勾配がある画素のみを用いて実行し、前記演算切替ステップの処理により切り替えられた垂直方向の独立型勾配法演算を、前記有効画素判定ステップの処理により前記動きベクトルの検出に有効であると判定された有効画素のうち、前記垂直方向に勾配がある画素のみを用いて実行する独立型勾配法演算ステップとを含む。
【００３３】
以下、図を参照して本発明の実施の形態について説明する。
【００３４】
図１は、本発明を適用した信号処理装置１の構成例を表している。信号処理装置１は、例えば、パーソナルコンピュータなどで構成される。図１において、ＣＰＵ（Central Processing Unit）１１は、ＲＯＭ（Read Only Memory）１２、または記憶部１８に記憶されているプログラムに従って各種の処理を実行する。ＲＡＭ（Random Access Memory）１３には、ＣＰＵ１１が実行するプログラムやデータなどが適宜記憶される。これらのＣＰＵ１１、ＲＯＭ１２、およびＲＡＭ１３は、バス１４により相互に接続されている。
【００３５】
ＣＰＵ１１にはまた、バス１４を介して入出力インタフェース１５が接続されている。入出力インタフェース１５には、キーボード、マウス、マイクロフォンなどよりなる入力部１６、ディスプレイ、スピーカなどよりなる出力部１７が接続されている。ＣＰＵ１１は、入力部１６から入力される指令に対応して各種の処理を実行する。そして、ＣＰＵ１１は、処理の結果、得られた画像や音声等を出力部１７に出力する。
【００３６】
入出力インタフェース１５に接続されている記憶部１８は、例えばハードディスクなどで構成され、ＣＰＵ１１が実行するプログラムや各種のデータを記憶する。通信部１９は、インターネット、その他のネットワークを介して外部の装置と通信する。また、通信部１９を介してプログラムを取得し、記憶部１８に記憶してもよい。
【００３７】
入出力インタフェース１５に接続されているドライブ２０は、磁気ディスク３１、光ディスク３２、光磁気ディスク３３、或いは半導体メモリ３４などが装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記憶部１８に転送され、記憶される。
【００３８】
なお、信号処理装置１は、例えば、テレビジョン受像機、光ディスクプレーヤなど、または、それらの信号処理部とすることもできる。
【００３９】
図２は、信号処理装置１を示すブロック図である。
【００４０】
なお、信号処理装置１の各機能をハードウェアで実現するか、ソフトウェアで実現するかは問わない。つまり、本明細書の各ブロック図は、ハードウェアのブロック図と考えても、ソフトウェアによる機能ブロック図と考えてもよい。
【００４１】
図２に構成を示す信号処理装置１においては、例えば、フレーム周波数２４Ｈｚのプログレッシブ画像信号（以下、２４Ｐ信号と称する）の画像が入力され、入力された画像（入力画像）が、フレーム周波数６０Ｈｚのプログレッシブ画像信号（以下、６０Ｐ信号と称する）の画像に変換されて、出力される。すなわち、図２は、画像処理装置である信号処理装置の構成を示す図である。
【００４２】
信号処理装置１に入力された２４Ｐ信号の入力画像は、フレームメモリ５１、ベクトル検出部５２、ベクトル割付部５４、割付補償部５７、および画像補間部５８に供給される。フレームメモリ５１は、入力画像をフレーム単位で記憶する。フレームメモリ５１は、時刻ｔ＋１の入力画像の１つ前の時刻ｔのフレームを記憶する。フレームメモリ５１に記憶される時刻ｔのフレームは、ベクトル検出部５２、ベクトル割付部５４、割付補償部５７、および画像補間部５８に供給される。なお、以下、フレームメモリ５１上の時刻ｔのフレームをフレームｔと称し、時刻ｔ＋１の入力画像のフレームを、フレームｔ＋１と称する。
【００４３】
ベクトル検出部５２は、フレームメモリ５１上のフレームｔの着目ブロックと、入力画像のフレームｔ＋１の対象ブロックの間で動きベクトルを検出し、検出した動きベクトルを、検出ベクトルメモリ５３に記憶する。この２フレーム間の動きベクトルの検出方法には、勾配法またはブロックマッチング法などが用いられる。ベクトル検出部５２の構成の詳細は、図１７を参照して後述する。検出ベクトルメモリ５３は、フレームｔにおいて、ベクトル検出部５２により検出された動きベクトルを記憶する。
【００４４】
ベクトル割付部５４は、２４Ｐ信号のフレームｔ上において求められた動きベクトルを、割付ベクトルメモリ５５上の、補間する６０Ｐ信号のフレーム（以下、６０Ｐ信号のフレームは、２４Ｐ信号のフレームと区別するため、内挿フレームとも称する）上の画素に割り付け、動きベクトルが割り付けられた画素の割付フラグメモリ５６の割付フラグを１(True)に書き換える。ベクトル割付部５４の構成の詳細は、図７１を参照して後述する。
【００４５】
割付ベクトルメモリ５５は、ベクトル割付部５４により割り付けられた動きベクトルを、内挿フレームの各画素に対応させて記憶する。割付フラグメモリ５６は、内挿フレームの画素毎に、割り付けられる動きベクトルの有無を示す割付フラグを記憶している。例えば、True(1)である割付フラグは、対応する画素に動きベクトルが割り付けられていることを示し、False(0)である割付フラグは、対応する画素に動きベクトルが割り付けられていないことを示す。
【００４６】
割付補償部５７は、割付フラグメモリ５６の割付フラグを参照し、ベクトル割付部５４により動きベクトルが割り付けられなかった着目画素に対して、その着目画素の周辺画素の動きベクトルを補い、割付ベクトルメモリ５５の内挿フレーム上に割り付ける。このとき、割付補償部５７は、動きベクトルを割り付けた着目画素の割付フラグを１(True)に書き換える。割付補償部５７の構成の詳細は、図７５を参照して後述する。
【００４７】
画像補間部５８は、割付ベクトルメモリ５５の内挿フレームに割り付けられた動きベクトルと、フレームｔおよび次のフレームｔ＋１の画素値を用いて、内挿フレームの画素値を補間生成する。そして、画像補間部５８は、生成された内挿フレームを出力し、その次に、必要に応じて、フレームｔ＋１を出力することにより、６０Ｐ信号の画像を、図示せぬ後段に出力する。画像補間部５８の構成の詳細は、図７８を参照して後述する。
【００４８】
なお、以下においては、画素値を、適宜、輝度値とも称する。
【００４９】
図３は、本発明に係る信号処理装置１における処理の原理を説明する図である。図３の例においては、点線が、信号処理装置１に入力される、時刻ｔ，ｔ＋１，およびｔ＋２における２４Ｐ信号のフレームを表しており、実線が、入力された２４Ｐ信号から信号処理装置１により、生成される時刻ｔ，ｔ＋０．４，ｔ＋０．８，ｔ＋１．２，ｔ＋１．６，およびｔ＋２における６０Ｐ信号の内挿フレームを表している。
【００５０】
一般に、２４Ｐ信号を、６０Ｐ信号に変換するためには、５／２倍のフレームが必要になる。すなわち、２枚の２４Ｐ信号の画像から５枚の６０Ｐ信号の画像が生成されなければならない。このとき、生成される６０Ｐ信号の内挿フレームは、そのフレーム間隔を等しくするために、２４Ｐ信号上での時間位相が０．０，０．４，０．８，１．２，および１．６となる位置に配置される。この中で、時間位相が０．０である時刻ｔの１フレームを除く４フレーム（ｔ＋０．４，ｔ＋０．８，ｔ＋１．２，およびｔ＋１．６のフレーム）は、２４Ｐ信号上には存在しない画像である。したがって、信号処理装置１は、２４Ｐ信号の画像が入力されると、２４Ｐ信号の時刻ｔおよび時刻ｔ＋１の２枚のフレームから、４つの内挿フレームを生成する。したがって、信号処理装置１からは、時刻ｔ，ｔ＋０．４，ｔ＋０．８，ｔ＋１．２，およびｔ＋１．６の５枚のフレームからなる６０Ｐ信号の画像が出力される。
【００５１】
以上のようにして、信号処理装置１は、２４Ｐ信号の画像から６０Ｐ信号の画像に、フレーム周波数を変換する処理を実行する。
【００５２】
なお、原理的には、上述したように、２４Ｐ信号の時刻ｔおよび時刻ｔ＋１の２枚のフレームから、時刻ｔ，ｔ＋０．４，ｔ＋０．８，ｔ＋１．２，およびｔ＋１．６の５枚の６０Ｐ信号のフレームが新しく生成されるが、実際には、図３の例の場合、２４Ｐ信号の時刻ｔおよび時刻ｔ＋１の２枚のフレームに基づいて、ｔ，ｔ＋０．４，ｔ＋０．８の６０Ｐ信号のフレームが生成され、２４Ｐ信号の時刻ｔ＋１およびｔ＋２の２枚のフレームに基づいて、ｔ＋１．２，ｔ＋１．６，およびｔ＋２の６０Ｐ信号のフレームが生成される。
【００５３】
図４は、本発明の処理をより具体的に説明する図である。図４の例においては、太線矢印は、各状態への遷移を表しており、矢印Ｔは、状態Ｊ１乃至Ｊ５における時間の経過方向を表している。また、状態Ｊ１乃至Ｊ５は、信号処理装置１を構成する各部への入出力時の、２４Ｐ信号の時刻ｔのフレームｔ、時刻ｔの次の時刻ｔ＋１のフレームｔ＋１、または、フレームｔおよびフレームｔ＋１の間に生成される６０Ｐ信号の内挿フレームＦの状態を概念的に表している。すなわち、実際には、例えば、状態Ｊ２に示されるような動きベクトルが検出されたフレームがベクトル割付部５４に入力されるわけではなく、フレームと動きベクトルは、別々にベクトル割付部５４に入力される。
【００５４】
また、図４の例においては、ベクトル検出部５２、ベクトル割付部５４、および割付補償部５７は、動きベクトルの精度の信頼度を評価するための評価値を演算する評価値演算部６１をそれぞれ有している。
【００５５】
状態Ｊ１は、ベクトル検出部５２に入力される、２４Ｐ信号のフレームｔおよびフレームｔ＋１の状態を表している。状態Ｊ１のフレームｔ上の黒点は、フレームｔ上の画素を表している。
【００５６】
ベクトル検出部５２は、状態Ｊ１のフレームｔ上の画素が、次の時刻のフレームｔ＋１において、どの位置に移動するかを検出し、その動きを、状態８２のフレームｔ上に示されるように、各画素に対応する動きベクトルとして出力する。この２フレーム間の動きベクトルの検出方法には、ブロックマッチング法または勾配法などが用いられる。なお、このとき、画素に複数の動きベクトルが検出された場合、ベクトル検出部５２は、各動きベクトルについて、内蔵する評価値演算部６１に評価値を演算させ、演算された評価値に基づいて動きベクトルを選択する。
【００５７】
状態Ｊ２は、ベクトル割付部５４に入力される、フレームｔおよびフレームｔ＋１の状態を表している。状態Ｊ２において、フレームｔの各画素の矢印は、ベクトル検出部５２により検出された動きベクトルを表している。
【００５８】
ベクトル割付部５４は、状態Ｊ２のフレームｔの各画素に対して検出された動きベクトルを、次のフレームｔ＋１まで延長させ、予め設定されている時間位相（例えば、図３のｔ＋０．４）にある内挿フレームＦ上のどの位置を通過するかを求める。これは、フレームｔおよびフレームｔ＋１の間が一定動きであると仮定すると、動きベクトルが内挿フレームＦを通過した点が、そのフレームでの画素位置となるためである。したがって、ベクトル割付部５４は、この通過する動きベクトルを、状態Ｊ３の内挿フレームＦ上の近傍４画素に割り付ける。
【００５９】
また、このとき、内挿フレームの画素によっては、動きベクトルが存在しない場合、あるいは、複数の動きベクトルが、割付候補となりうる場合がある。後者のような場合には、ベクトル割付部５４は、ベクトル検出部５２と同様に、内蔵する評価値演算部６１に各動きベクトルについての評価値を演算させ、演算された評価値に基づいて割り付ける動きベクトルを選択する。
【００６０】
状態Ｊ３は、割付補償部５７に入力される、フレームｔおよびフレームｔ＋１、並びに動きベクトルが割り付けられた内挿フレームＦの状態を表している。状態Ｊ３の内挿フレームＦにおいては、ベクトル割付部５４により動きベクトルが割り付けられている画素と、動きベクトルが割り付けられなかった画素が示されている。
【００６１】
割付補償部５７は、状態Ｊ３の動きベクトルが割り付けられていない画素に対して、その画素の周辺画素に割り付けられている動きベクトルを用いて補う。これは、ある着目画素の近傍領域が同じ動きであるという仮定が成り立つならば、着目画素の周辺画素の動きベクトルと、その着目画素の動きベクトルは似たものであるからである。これにより、動きベクトルが割り付けられなかった画素にも、ある程度正確な動きベクトルが与えられ、状態８４の内挿フレームＦ上のすべての画素に動きベクトルが割り付けられる。
【００６２】
なお、この場合にも、複数の周辺画素の動きベクトルが候補として存在するため、割付補償部５７は、ベクトル割付部５４と同様に、内蔵する評価値演算部６１に各動きベクトルについての評価値を演算させ、演算された評価値に基づいて割り付ける動きベクトルを選択する。
【００６３】
状態Ｊ４は、画像補間部５８に入力される、フレームｔおよびフレームｔ＋１、並びに、すべての画素に動きベクトルが割り付けられた内挿フレームＦの状態を表している。これらのすべての画素に割り付けられた動きベクトルにより、画像補間部５８は、内挿フレームＦ上の画素と、２枚のフレームｔおよびフレームｔ＋１の画素の位置関係を決定することができる。
【００６４】
したがって、画像補間部５８は、内挿フレームＦ上に割り付けられた動きベクトルと、フレームｔおよびフレームｔ＋１の画素値を用いて、状態Ｊ５の内挿フレームＦの黒点に示されるように、内挿フレームＦ上の画素値を補間生成する。そして、画像補間部５８は、生成された内挿フレームを出力し、その次に、必要に応じて、フレームｔ＋１を出力することにより、６０Ｐ信号の画像を、図示せぬ後段に出力する。
【００６５】
次に、図５を参照して、本発明に係る信号処理装置１において用いられる動きベクトルの評価値を説明する。図４を参照して上述したように、信号処理装置１の各部（ベクトル検出部５２、ベクトル割付部５４、および割付補償部５７）において、後段の処理に最適な動きベクトルが選択される。
【００６６】
このとき、信号処理装置１の各部においては、動きベクトルに対する評価値として、２つのフレームの注目するベクトル量分ずらしたブロック間の相関値を表す差分絶対値和（ＤＦＤ(Displaced Frame Difference)）が各部の評価値演算部６１により演算されて、用いられる。
【００６７】
図５の例においては、時刻ｔのフレームｔ上の画素位置ｐを中心としたｍ×ｎのブロック、および、時刻ｔ＋１のフレームｔ＋１上の画素位置ｐから注目する動きベクトルｖのベクトル量分ずらした画素位置ｐ＋ｖを中心としたｍ×ｎのブロックの２つのブロックが示されている。これら２つのブロック間において求められる差分絶対値和ＤＦＤt（ｐ）は、次の式（１）で表される。
【００６８】
【数１】
0004752407.tif 000002
・・・（１）
【００６９】
ここで、Ｆt（ｐ）は、時刻ｔにおける画素位置ｐの輝度値を表しており、ｍ×ｎは、差分絶対値和を求めるためのＤＦＤ演算範囲（ブロック）を表している。この差分絶対値和は、２つのフレームにおけるＤＦＤ演算範囲（ブロック）間の相関値を表しているため、一般的には、この差分絶対値和が小さいほどフレーム間のブロックの波形が一致しており、差分絶対値和が小さいほど、動きベクトルｖの信頼度が高いと判定される。
【００７０】
これにより、この差分絶対値和（以下、評価値ＤＦＤと称する）は、複数の候補の中から、最も確からしい動きベクトルを選ぶ場合などに用いられる。
【００７１】
さらに、評価値ＤＦＤについて詳しく説明する。
【００７２】
図６は、評価値ＤＦＤを演算する評価値演算部６１の構成例を示すブロック図である。図６の例において、時刻ｔの画像のフレームｔは、および、フレームメモリ５１からの時刻ｔ＋１の画像のフレームｔ＋１は、輝度値取得部７２に入力されている。
【００７３】
評価値演算部６１は、ブロック位置演算部７１、輝度値取得部７２、差分絶対値演算部７３、および積和演算部７４により構成されている。
【００７４】
評価値演算部６１には、前段から、フレームｔのブロック（ＤＦＤ演算範囲）位置と評価対象となる動きベクトルとが入力される。フレームｔのブロック位置は、ブロック位置演算部７１および輝度値取得部７２に入力され、動きベクトルは、ブロック位置演算部７１に入力される。
【００７５】
ブロック位置演算部７１は、入力されたフレームｔのブロック位置と動きベクトルを用いて、フレームｔ＋１のブロック位置を算出し、輝度値取得部７２に出力する。輝度値取得部７２は、図示せぬフレームｔのフレームメモリから、入力されたフレームｔのブロック位置に対応する輝度値を取得し、フレームｔ＋１のフレームメモリ５１から、入力されたフレームｔ＋１のブロック位置に対応する輝度値を取得し、取得した各輝度値を、差分絶対値演算部７３に出力する。
【００７６】
差分絶対値演算部７３は、輝度取得部７２からのフレームｔおよびｔ＋１の各ブロック内の輝度値を用いて、輝度差分絶対値を演算し、演算した輝度差分絶対値を、積和演算部７４に出力する。積和演算部７４は、差分絶対値演算部７３により演算された輝度差分絶対値を積算することで、評価値ＤＦＤを取得し、取得した評価値ＤＦＤを後段に出力する。
【００７７】
次に、図７のフローチャートを参照して、図６の評価値演算部６１の評価値演算処理を説明する。
【００７８】
評価値演算部６１には、前段から、フレームｔのブロック（ＤＦＤ演算範囲）位置と評価対象となる動きベクトルとが入力される。ブロック位置演算部７１は、フレームｔのブロック位置と評価対象となる動きベクトルが入力されると、ステップＳ１１において、入力されたフレームｔのブロック位置と動きベクトルを用いて、フレームｔ＋１のブロック位置を算出し、輝度値取得部７２に出力する。
【００７９】
輝度値取得部７２は、ステップＳ１２において、入力されたフレームｔおよびフレームｔ＋１のブロック位置に基づいて、各フレームのブロック（ＤＦＤ演算範囲）の画素の輝度値を取得し、取得した各輝度値を差分絶対値演算部７３に出力する。なお、輝度値取得部７２は、ブロックの左上の画素の輝度値から取得する。
【００８０】
差分絶対値演算部７３は、ステップＳ１３において、輝度値取得部７２からのフレームｔおよびフレームｔ＋１の画素の輝度値を用いて、輝度差分絶対値を演算し、演算した輝度差分絶対値を積和演算部７４に出力する。
【００８１】
積和演算部７４は、ステップＳ１４において、差分絶対値演算部７３からの輝度差分絶対値を積算し、ステップＳ１５において、ブロック内の全画素に対して処理が終了したか否かを判定する。ステップＳ１５において、ブロック内の全画素に対して処理が終了していないと判定された場合、処理は、ステップＳ１２に戻り、それ以降の処理が繰り返される。すなわち、ブロックの次の画素に対しての処理が行われる。
【００８２】
一方、ステップＳ１５において、ブロック内の全画素に対して処理が終了したと判定された場合、積和演算部７４は、ステップＳ１６において、輝度差分絶対値を積算した結果であるＤＦＤを取得し、評価値ＤＦＤとして後段に出力する。これにより、評価値演算処理は終了される。
【００８３】
以上のように、評価値ＤＦＤは、ブロック（ＤＦＤ演算範囲）内の輝度値の差分絶対値を積算することで求められるため、一般的には、評価値ＤＦＤが小さいほど、フレーム間のブロックの波形が一致し、動きベクトルｖの信頼度が高いと判定される。
【００８４】
しかしながら、光源の移動や影の通過などで、評価値を求めるフレーム間で平均輝度値レベルが大きく変化する場合、評価値ＤＦＤでは、動きベクトルを正しく評価することが難しい。
【００８５】
次に、図８および図９を参照して、平均輝度レベル変化時の評価値ＤＦＤについて説明する。図８の例においては、矢印Ｔは、図中、左手前の時刻ｔのフレームｔから、右奥の時刻ｔ＋１のフレームｔ＋１への時間の経過を示している。
【００８６】
フレームｔ上には、画素ｐ０を中心としたｍ×ｎのブロックＢ０が示されている。
【００８７】
フレームｔ＋１上には、フレームｔおよびｔ＋１間における画素ｐ０の正しい動きベクトルである動きベクトルｖ１が示されており、フレームｔ上の画素ｐ０が対応する画素ｐ１から動きベクトルｖ１のベクトル量ずらした（シフトさせた）位置の画素ｐ１＋ｖ１を中心としたｍ×ｎのブロックＢ１が示されている。フレームｔ＋１上には、また、フレームｔおよびｔ＋１間における画素ｐ０の誤った動きベクトルである動きベクトルｖ２が示されており、フレームｔ上の画素ｐ０が対応する画素ｐ１から動きベクトルｖ２のベクトル量ずらした位置の画素ｐ１＋ｖ２を中心としたｍ×ｎのブロックＢ２が示されている。
【００８８】
図９の左側のグラフには、一般的な場合（すなわち、フレーム間において、光源の移動や影の通過などが無い場合）における図８のブロックＢ０、ブロックＢ１、およびブロックＢ２のそれぞれの（画素）位置における輝度値の波形Ｙ０、Ｙ１、およびＹ２が示されており、右側のグラフには、フレームｔ＋１上のブロックＢ１に光源の移動や影の通過などがあり、ブロックＢ１がそれらの影響を受けた場合における図８のブロックＢ０、ブロックＢ１、およびブロックＢ２のそれぞれの（画素）位置における輝度値の波形Ｙ０、Ｙ１１、およびＹ２が示されている。
【００８９】
すなわち、ブロックＢ０およびＢ２は、光源の移動や影の通過の影響を受けていないため、左右のグラフにおける輝度値の波形Ｙ０およびＹ２は変わらず、同じである。
【００９０】
図９の左側のグラフに示されるように、一般的な場合には、ブロックＢ１の輝度値の波形Ｙ１は、波形Ｙ０と波形Ｙ１の間の斜線の部分に示されるように、ブロックＢ２の輝度値の波形Ｙ２よりも、ブロックＢ０の輝度値の波形Ｙ０に類似しているため、ブロックＢ０とブロックＢ１間の評価値ＤＦＤ（Ｙ１）は、ブロックＢ０とブロックＢ２間の評価値ＤＦＤ（Ｙ２）よりも小さくなる。したがって、正しい動きベクトルである動きベクトルｖ１の信頼度は、誤った動きベクトルｖ２の信頼度より高いと判定される。
【００９１】
しかしながら、図９の右側のグラフに示されるように、フレームｔ＋１上のブロックＢ１に光源の移動や影の通過などがあり、ブロックＢ１のみがそれらの影響を受けた場合、波形Ｙ１であったブロックＢ１の輝度値は、波形Ｙ１１に示されるように、輝度レベルが全体的に（平均的に）大きく変化してしまう。すなわち、ブロックＢ１の輝度値の波形Ｙ１１は、左側のグラフの波形Ｙ１から平均輝度値レベルの変化量だけ離れてしまい、結果的に、波形Ｙ０と波形Ｙ１１の間の斜線の部分に示されるように、ブロックＢ２の輝度値の波形Ｙ２よりも、ブロックＢ０の輝度値の波形Ｙ０から離れてしまう。
【００９２】
したがって、平均輝度値レベルの変化量がオフセットとして重畳されてしまい、この場合のブロックＢ０とブロックＢ１間の評価値ＤＦＤ（Ｙ１１）は、ブロックＢ０とブロックＢ２間の評価値ＤＦＤ（Ｙ２）よりも大きくなってしまい、正しい動きベクトルである動きベクトルｖ１の信頼度は、誤った動きベクトルｖ２の信頼度より低いと判定されてしまう。
【００９３】
以上のように、光源の移動や影の通過などにより、動きｖを持つ物体の平均輝度レベルが大きく変化する場合には、平均輝度レベルの変化量がオフセットとして評価値ＤＦＤに重畳されるため、評価値ＤＦＤが大きくなってしまい、真の動き量ｖに対する信頼度が低くなってしまう。
【００９４】
そこで、評価値ＤＦＤの代わりに、信号処理装置１のベクトル検出部５２においては、動きベクトルに対する評価値の他の例として、評価値ＤＦＤと同様に評価対象となるベクトルの始点と終点を含むブロック間で演算される差分分散（ｄｆｖ：difference variance）が用いられて、後段の処理に最適な動きベクトルが選択される。評価対象となる動きベクトルをｖとすると、差分分散は、次の式（２）で表される。
【００９５】
【数２】
0004752407.tif 000003
・・・（２）
【００９６】
ここで、
【数３】
0004752407.tif 000004
は、ｍ×ｎ画素の差分分散の演算範囲における輝度値の平均を表している。
【００９７】
なお、差分分散は、実際には、式（２）からもわかるように、時刻ｔ＋１における画素位置ｐ＋ｖの輝度値および時刻ｔ＋１における画素位置ｐ＋ｖの演算範囲における輝度値の平均の差分から、時刻ｔにおける画素位置ｐの輝度値および時刻ｔにおける画素位置ｐの演算範囲における輝度値の平均の差分を引いたものの自乗和であるが、式（２）を展開していくことにより、演算ブロック内の輝度値差分の分散の式（後述する式（５））になることから、差分分散と称される。
【００９８】
差分分散も、評価値ＤＦＤと同様に、フレーム間のブロックの波形の一致度をベクトルの信頼度とする評価値であり、値が小さいほどベクトルｖの信頼度が高いと判定することができる。
【００９９】
図１０は、平均輝度レベル変化時の差分分散について説明する図である。なお、図１０は、図９を参照して説明した評価値ＤＦＤの例に対応する差分分散ｄｆｖの例が示されており、図１０の例においては、図９の例の場合と同様に、図８のブロックＢ０、ブロックＢ１、およびブロックＢ２を用いて説明する。
【０１００】
図１０の左側のグラフには、図９の場合と同様に、一般的な場合（すなわち、フレーム間において、光源の移動や影の通過などが無い場合）における図８のブロックＢ０、ブロックＢ１、およびブロックＢ２のそれぞれの（画素）位置における輝度値の波形Ｙ０、Ｙ１、およびＹ２が示されており、右側のグラフには、フレームｔ＋１上のブロックＢ１に光源の移動や影の通過などがあり、ブロックＢ１がそれらの影響を受けた場合における図８のブロックＢ０、ブロックＢ１、およびブロックＢ２のそれぞれの（画素）位置における輝度値の波形Ｙ０、Ｙ１１、およびＹ２が示されている。
【０１０１】
図１０の左側のグラフに示されるように、一般的な場合には、ブロックＢ１の輝度値の波形Ｙ１は、波形Ｙ０と波形Ｙ１の間の斜線の部分に示されるように、ブロックＢ２の輝度値の波形Ｙ２よりも、ブロックＢ０の輝度値の波形Ｙ０に類似しているため、図９の評価値ＤＦＤの場合と同様に、ブロックＢ０とブロックＢ１間の差分分散であるｄｆｖ（Ｙ１）は、ブロックＢ０とブロックＢ２間の差分分散であるｄｆｖ（Ｙ２）よりも小さくなる。したがって、正しい動きベクトルである動きベクトルｖ１の信頼度は、誤った動きベクトルｖ２の信頼度より高いと判定される。
【０１０２】
一方、図１０の右側のグラフに示されるように、フレームｔ＋１上のブロックＢ１に光源の移動や影の通過などがあり、ブロックＢ１のみがそれらの影響を受けた場合、波形Ｙ１であったブロックＢ１の輝度値は、波形Ｙ１１に示されるように、輝度レベルが全体的に（平均的に）大きく変化してしまう。すなわち、ブロックＢ１の輝度値の波形Ｙ１１は、波形Ｙ１から平均輝度値レベルの変化量だけ離れてしまい、結果的に、ブロックＢ２の輝度値の波形Ｙ２よりも、ブロックＢ０の輝度値の波形Ｙ０から離れてしまう。
【０１０３】
ここで、図１０の右のグラフには、さらに、点線で示される波形Ｚ１と、波形Ｚ２が示されている。波形Ｚ１は、波形Ｙ１１から、波形Ｙ１１および波形Ｙ０の差分の平均を差し引いた輝度値の波形を表しており、波形Ｚ２は、波形Ｙ２から、波形Ｙ２および波形Ｙ０の差分の平均を差し引いた輝度値の波形を表している。
【０１０４】
式（２）で示されるように、差分分散は、各フレーム毎に演算ブロック内の輝度値平均をオフセットとして差し引いた輝度値の自乗和、すなわち、各フレーム毎に演算ブロック内の輝度値平均をオフセットとして差し引いた統計量である。
【０１０５】
したがって、図１０の右のグラフにおける斜線部分である波形Ｙ０と波形Ｚ１の差分は、波形Ｙ０から、波形Ｙ１１と、波形Ｙ１１および波形Ｙ０の差分の平均との差分を引いたもの、すなわち、ブロックＢ０とブロックＢ１間の差分分散であるｄｆｖ（Ｙ１１）を求める式（２）の自乗和の括弧内の部分を表しており、波形Ｙ０から、波形Ｙ２と、波形Ｙ２および波形Ｙ０の差分の平均との差分を引いたもの、すなわち、ブロックＢ０とブロックＢ２間の差分分散であるｄｆｖ（Ｙ２）を求める式（２）の自乗和の括弧内の部分を表す、波形Ｙ０と波形Ｚ２の差分よりも値が小さい。
【０１０６】
このように、光源の移動や影の通過などにより、動きｖを持つ物体の平均輝度レベルが大きく変化する場合であっても、ブロックＢ０とブロックＢ１間の差分分散であるｄｆｖ（Ｙ１１）は、ブロックＢ０とブロックＢ２間の差分分散であるｄｆｖ（Ｙ２）よりも小さい。したがって、正しい動きベクトルである動きベクトルｖ１の信頼度は、誤った動きベクトルｖ２の信頼度より高いと判定される。
【０１０７】
以上により、ＤＦＤを評価値として用いたときに対応することが困難であった、フレーム間の平均輝度レベルが変化する場合であっても、差分分散（以下、評価値ｄｆｖとも称する）を評価値として用いることにより、ベクトルの信頼度の評価を正しく行うことが可能になる。
【０１０８】
なお、評価値ｄｆｖは、式（２）に示されるように、二乗和の式であるため、乗算器を用いる必要があり、評価値ＤＦＤを演算する場合よりもハードウェア上の回路規模が大きくなってしまう。
【０１０９】
そこで、二乗を用いない評価値、かつ、差分分散（評価値ｄｆｖ）の特徴である、平均輝度レベル変化に対応した動きベクトルの評価値として、輝度平均オフセットを考慮したＤＦＤ（以下、ｍＤＦＤ（mean ＤＦＤ）と称する）も挙げられる。ｍＤＦＤは、式（３）で表される。
【０１１０】
【数４】
0004752407.tif 000005
・・・（３）
【０１１１】
ｍＤＦＤも、差分分散と同様に、平均輝度レベルを考慮した波形の一致度を表しており、フレーム間で平均輝度レベルが大きく変化する場合に対応した動きベクトルの評価値となる。したがって、以下、ｍＤＦＤを評価値ｍＤＦＤとも称する。
【０１１２】
さらに、評価値ｍＤＦＤについて詳しく説明する。
【０１１３】
図１１は、評価値ｍＤＦＤを演算する評価値演算部６１Ａの構成例を示すブロック図である。
【０１１４】
なお、図１１の例は、ブロック位置演算部７１、輝度値取得部７２、差分絶対値演算部７３および積和演算部７４が設けられている点で図６の評価値演算部６１と共通しているが、積和演算部８１−１および８１−２、平均値算出部８２−１および８２−２、並びに、差分演算部８３−１および８３−２が追加されている点で図６の評価値演算部６１と異なっている。
【０１１５】
図１１の例において、輝度値取得部７２は、図示せぬフレームｔのフレームメモリから、入力されたフレームｔのブロック位置に対応する輝度値を取得し、取得したフレームｔの輝度値を積和演算部８１−１および差分演算部８３−１に出力する。また、輝度値取得部７２は、フレームｔ＋１のフレームメモリ５１から、入力されたフレームｔ＋１のブロック位置に対応する輝度値を取得し、取得したフレームｔ＋１の輝度値を、積和演算部８１−２および差分演算部８３−２に出力する。
【０１１６】
積和演算部８１−１は、フレームｔのブロック内の全画素の輝度値を積算し、積算した輝度値を平均値算出部８２−１に出力する。平均値算出部８２−１は、積和演算部８１−１からの積算された輝度値を用いて、ブロック内の輝度平均値を算出し、算出したブロック内の輝度平均値を差分演算部８３−１に出力する。
【０１１７】
差分演算部８３−１は、輝度値取得部７２からの輝度値と平均値算出部８２−１からのブロック内の輝度平均値を用いて、フレームｔのブロック内の各画素とブロック内の輝度平均値の差分を算出し、算出したフレームｔの差分を差分絶対値演算部７３に出力する。
【０１１８】
積和演算部８１−２、平均値算出部８２−２、および差分演算部８３−２は、フレームｔ＋１に対して、積和演算部８１−１、平均値算出部８２−１、および差分演算部８３−１と同様の処理を行う。
【０１１９】
すなわち、積和演算部８１−２は、フレームｔ＋１のブロック内の全画素の輝度値を積算し、積算した輝度値を平均値算出部８２−２に出力する。平均値算出部８２−２は、積和演算部８１−２からの積算された輝度値を用いて、ブロック内の輝度平均値を算出し、算出したブロック内の輝度平均値を差分演算部８３−２に出力する。
【０１２０】
差分演算部８３−２は、輝度値取得部７２からの輝度値と平均値算出部８２−２からのブロック内の輝度平均値を用いて、フレームｔ＋１のブロック内の各画素とブロック内の輝度平均値の差分を算出し、算出したフレームｔ＋１の差分を差分絶対値演算部７３に出力する。
【０１２１】
図１１の例において、差分絶対値演算部７３は、差分演算部８３−１からのフレームｔのブロック内の輝度値、および差分演算部８３−２からのｔ＋１のブロック内の輝度値を用いて、輝度差分絶対値を演算し、演算した輝度差分絶対値を、積和演算部７４に出力する。積和演算部７４は、差分絶対値演算部７３により演算された輝度差分絶対値を積算することで、評価値ｍＤＦＤを取得し、取得した評価値ｍＤＦＤを後段に出力する。
【０１２２】
次に、図１２および図１３のフローチャートを参照して、図１１の評価値演算部６１Ａの評価値演算処理を説明する。
【０１２３】
評価値演算部６１Ａには、前段から、フレームｔのブロック（ＤＦＤ演算範囲）位置と評価対象となる動きベクトルとが入力される。ブロック位置演算部７１は、フレームｔのブロック位置と評価対象となる動きベクトルが入力されると、ステップＳ３１において、入力されたフレームｔのブロック位置と動きベクトルを用いて、フレームｔ＋１のブロック位置を算出し、輝度値取得部７２に出力する。
【０１２４】
輝度値取得部７２は、ステップＳ３２において、入力されたフレームｔおよびフレームｔ＋１のブロック位置に基づいて、各ブロック（ＤＦＤ演算範囲）の画素の輝度値を取得し、取得したフレームｔの画素の輝度値を積和演算部８１−１に出力し、取得したフレームｔ＋１の画素の輝度値を積和演算部８１−２に出力する。なお、このとき、輝度値取得部７２は、取得したフレームｔの画素の輝度値を差分演算部８３−１にも出力し、フレームｔ＋１の画素の輝度値を差分演算部８３−２にも出力する。
【０１２５】
積和演算部８１−１は、ステップＳ３３において、輝度値取得部７２からのフレームｔの画素の輝度値を積算し、ステップＳ３４において、ブロック内の全画素に対して処理が終了したか否かを判定する。ステップＳ３４において、ブロック内の全画素に対して処理が終了していないと判定された場合、処理は、ステップＳ３２に戻り、それ以降の処理が繰り返される。すなわち、ブロックの次の画素に対しての処理が行われる。
【０１２６】
ステップＳ３４において、ブロック内の全画素に対して処理が終了したと判定された場合、積和演算部８１−１は、フレームｔのブロック内の全画素の輝度値を積算した値を、平均値算出部８２−１に出力する。
【０１２７】
平均値算出部８２−１は、ステップＳ３５において、積和演算部８１−１からの積算された輝度値を用いて、フレームｔのブロック内の輝度平均値を算出し、算出したブロック内の輝度平均値を差分演算部８３−１に出力する。
【０１２８】
差分演算部８３−１は、図１３のステップＳ３６において、輝度値取得部７２からの輝度値と平均値算出部８２−１からのブロック内の輝度平均値を用いて、フレームｔのブロック内の各画素とブロック内の輝度平均値の差分を算出し、算出したフレームｔの差分を差分絶対値演算部７３に出力する。
【０１２９】
なお、説明は繰り返しになるので便宜上、省略するが、上述したステップＳ３２乃至Ｓ３６の処理は、積和演算部８１−２、平均値算出部８２−２、および差分演算部８３−２においても、フレームｔ＋１に対して同様に実行される。したがって、ステップＳ３７において、差分演算部８３−１によりフレームｔのブロック内の各画素とブロック内の輝度平均値の差分が算出され、差分絶対値演算部７３に出力される。
【０１３０】
差分絶対値演算部７３は、ステップＳ３８において、差分演算部８３−１および差分演算部８３−２からの輝度差分絶対値を積算し、ステップＳ３９において、ブロック内の全画素に対して処理が終了したか否かを判定する。ステップＳ３８において、ブロック内の全画素に対して処理が終了していないと判定された場合、処理は、ステップＳ３６に戻り、それ以降の処理が繰り返される。すなわち、ブロックの次の画素に対しての処理が行われる。
【０１３１】
一方、ステップＳ３９において、ブロック内の全画素に対して処理が終了したと判定された場合、積和演算部７４は、ステップＳ４０において、輝度差分絶対値を積算した結果である輝度平均オフセットを考慮したＤＦＤ（すなわち、ｍＤＦＤ）を取得し、評価値ｍＤＦＤとして後段に出力する。
【０１３２】
以上により、評価値演算処理は終了され、フレーム間で平均輝度レベルが大きく変化する場合に対応した動きベクトルの評価値としての、評価値ｍＤＦＤが求められる。
【０１３３】
このように、評価値ｍＤＦＤを演算する図１１の評価値演算部６１Ａは、乗算器を必要としないため、ハードウェア上、回路規模を大きくする必要がない。
【０１３４】
しかしながら、評価値ｍＤＦＤの演算処理においては、式（３）および図１２からも明らかなように、一旦、各ブロック内の平均輝度値を演算し、各ブロック内の平均輝度値が確定した後で、ブロック内の各画素の輝度値から、対応する平均輝度値を減じて、その差分を積算するという順序を取らなければならない。すなわち、評価値ｍＤＦＤの演算処理においては、各ブロック内の平均輝度値が確定するまで、次の処理を行うことができない。
【０１３５】
ここで、再度、式（２）で表される差分分散について説明する。次の式（４）は、画素位置Ｐx,yにおけるｖによるフレーム間差分を表している。
【０１３６】
【数５】
0004752407.tif 000006
・・・（４）
【０１３７】
上述した差分分散ｄｆｖの式（２）を、上述した式（４）を用いて変形すると、差分分散は、次の式（５）で表される。
【０１３８】
【数６】
0004752407.tif 000007
・・・（５）
【０１３９】
式（５）は、差分分散が評価値演算ブロック内の輝度値Ｄtの分散であることを示している。したがって、式（５）は、分散の式の展開から、式（６）のように変形できる。
【０１４０】
【数７】
0004752407.tif 000008
・・・（６）
【０１４１】
この式（６）に示されるように、差分分散は、差分自乗和（差分二乗和）の項と差分和の二乗の項に分離することが可能である。すなわち、差分分散を演算する際には、各項を並列に演算させるように、差分分散の演算部を構成することができる。
【０１４２】
図１４は、差分分散（すなわち、評価値ｄｆｖ）を演算する評価値演算部６１Ｂの構成例を示すブロック図である。
【０１４３】
なお、図１４の例は、ブロック位置演算部７１、および輝度値取得部７２が設けられている点で図６の評価値演算部６１と共通しているが、差分絶対値演算部７３および積和演算部７４の代わりに、差分演算部９１、差分和二乗演算部９２、差分二乗和演算部９３、乗算器９４、および差分演算部９５が追加されている点で図６の評価値演算部６１と異なっている。
【０１４４】
図１４の例において、輝度値取得部７２は、図示せぬフレームｔのフレームメモリから、入力されたフレームｔのブロック位置に対応する輝度値を取得し、フレームｔ＋１のフレームメモリ５１から、入力されたフレームｔ＋１のブロック位置に対応する輝度値を取得し、取得した各輝度値を、差分演算部９１に出力する。
【０１４５】
差分演算部９１は、対象となる画素の輝度値差分を演算し、演算した輝度値差分を、差分和二乗演算部９２、および差分二乗和演算部９３に出力する。
【０１４６】
差分和二乗演算部９２は、積和演算部９２ａおよび乗算器９２ｂにより構成される。積和演算部９２ａは、差分演算部９１からの輝度値差分をブロック分積算し、積算した輝度値差分（輝度値差分和）を乗算器９２ｂに出力する。乗算器９２ｂは、積和演算部９２ａからの輝度値差分和を二乗し、輝度値差分和二乗を差分演算部９５に出力する。
【０１４７】
差分二乗和演算部９３は、乗算器９３ａおよび積和演算部９３ｂにより構成される。乗算器９３ａは、差分演算部９１からの輝度値差分の二乗を演算し、演算した輝度差分二乗を積和演算部９３ｂに出力する。積和演算部９３ｂは、輝度差分二乗をブロック分積算し、積算した輝度値差分二乗（輝度値差分二乗和）を、乗算器９４に出力する。
【０１４８】
乗算器９４には、図示せぬ制御部などから予めブロック内画素数が入力されている。乗算器９４は、ブロック内画素数と輝度差分値二乗和を乗算し、差分演算部９５に出力する。
【０１４９】
差分演算部９５は、乗算器９２ｂからの輝度値差分和二乗から、乗算器９４からの、ブロック内画素数を乗算した輝度差分値二乗和を減算することで、差分分散を取得し、評価値ｄｆｖとして後段に出力する。
【０１５０】
次に、図１５のフローチャートを参照して、図１４の評価値演算部６１Ｂの評価値演算処理を説明する。
【０１５１】
評価値演算部６１Ｂには、前段から、フレームｔのブロック（ＤＦＤ演算範囲）位置と評価対象となる動きベクトルとが入力される。ブロック位置演算部７１は、フレームｔのブロック位置と評価対象となる動きベクトルが入力されると、ステップＳ５１において、入力されたフレームｔのブロック位置と動きベクトルを用いて、フレームｔ＋１のブロック位置を算出し、輝度値取得部７２に出力する。
【０１５２】
輝度値取得部７２は、ステップＳ５２において、入力されたフレームｔおよびフレームｔ＋１のブロック位置に基づいて、各フレームのブロック（ＤＦＤ演算範囲）の画素の輝度値を取得し、取得した各輝度値を差分演算部９１に出力する。
【０１５３】
差分演算部９１は、ステップＳ５３において、対象となる画素の輝度値差分を演算し、演算した輝度値差分を、差分和二乗演算部９２および差分二乗和演算部９３に出力する。
【０１５４】
ステップＳ５４においては、輝度値差分が演算され、輝度値差分二乗が積算される。すなわち、差分和二乗演算部９２の積和演算部９２ａは、ステップＳ５４において、差分演算部９１からの輝度値差分を積算する。このとき、並行して、差分二乗和演算部９３の積和演算部９３ｂは、差分演算部９１からの輝度差分が乗算器９３ａにより演算された輝度値差分二乗を積算する。
【０１５５】
積和演算部９２ａおよび積和演算部９３ｂは、ステップＳ５５において、ブロック内の全画素に対して処理が終了したか否かを判定する。ステップＳ５５において、ブロック内の全画素に対して処理が終了していないと判定された場合、処理は、ステップＳ５２に戻り、それ以降の処理が繰り返される。すなわち、ブロックの次の画素に対しての処理が行われる。
【０１５６】
一方、ステップＳ５５において、ブロック内の全画素に対して処理が終了したと判定された場合、積和演算部９２ａは、積算した輝度値差分（輝度値差分和）を乗算器９２ｂに出力し、積和演算部９３ｂは、積算した輝度値差分二乗（輝度値差分二乗和）を、乗算器９４に出力する。
【０１５７】
ステップＳ５６においては、輝度値差分和二乗が演算され、ブロック内画素数と、輝度値差分二乗和が演算される。すなわち、差分和二乗演算部９２の乗算器９２ｂは、ステップＳ５６において、積和演算部９２ａからの輝度値差分和を二乗し、輝度値差分和二乗を差分演算部９５に出力する。このとき、並行して、乗算器９４は、ブロック内画素数と輝度差分値二乗和を乗算し、差分演算部９５に出力する。
【０１５８】
差分演算部９５は、ステップＳ５７において、乗算器９２ｂからの輝度値差分和二乗から、ブロック内画素数を乗算した輝度差分値二乗和を減算し、ステップＳ５８において、減算した結果である差分分散を取得し、評価値ｄｆｖとして後段に出力する。
【０１５９】
以上により、評価値演算処理は終了され、フレーム間で平均輝度レベルが大きく変化する場合に対応した動きベクトルの評価値としての、評価値ｄｆｖが求められる。
【０１６０】
したがって、差分分散を評価値として用いることにより、フレーム間の平均輝度レベルが大きく変化する場合にも、信頼度の高いベクトルの評価を行うことが可能になる。
【０１６１】
また、この差分分散を演算する評価値演算処理においては、ステップＳ５４およびステップＳ５６において、差分和二乗演算部９２と差分二乗和演算部９３が並列で演算処理を行うことができる。したがって、図１４の評価値演算部６１Ｂに示されるように、差分分散は、乗算器を必要とするため、ハードウェア実装が大きくなってしまうが、その反面、回路を並列化することができるので、ｍＤＦＤと比較して演算処理時間を短縮することが可能になる。
【０１６２】
以上より、以降、信号処理装置１のベクトル検出部５２においては、動きベクトルが選択される場合の評価値として、評価値ＤＦＤの代わりに評価値ｄｆｖが用いられ、その他のベクトル割付部５４、および割付補償部５７においては、動きベクトルが選択される場合の評価値として、特に言及しない場合には、差分絶対値和（以下、評価値ＤＦＤと称する）が用いられることとする。
【０１６３】
したがって、ベクトル検出部５２は、内部に評価値演算部６１Ｂを有することとして説明し、ベクトル割付部５４、および割付補償部５７は、内部に評価値演算部６１を有することとして説明していく。
【０１６４】
なお、もちろん、ベクトル検出部５２に限らず、ベクトル割付部５４、または割付補償部５７においても評価値ＤＦＤの代わりに評価値ｄｆｖが用いられるように構成してもよい。
【０１６５】
次に、図１６のフローチャートを参照して、信号処理装置１のフレーム周波数を変換する処理を説明する。
【０１６６】
ステップＳ８１において、ベクトル検出部５２は、時刻ｔ＋１の入力画像のフレームｔ＋１と、フレームメモリ５１の入力画像の１つ前の時刻ｔのフレームｔの画素値を入力する。なお、このとき、ベクトル割付部５４、割付補償部５７および画像補間部５８も、時刻ｔ＋１の入力画像のフレームｔ＋１と、フレームメモリ５１の入力画像の１つ前の時刻ｔのフレームｔの画素値を入力する。
【０１６７】
ステップＳ８２において、ベクトル検出部５２は、動きベクトル検出処理を実行する。すなわち、ベクトル検出部５２は、フレームメモリ５１上のフレームｔの着目ブロックと、入力画像である次のフレームｔ＋１の対象ブロックの間で動きベクトルを検出し、検出した動きベクトルを、検出ベクトルメモリ５３に記憶する。この２フレーム間の動きベクトルの検出方法には、勾配法またはブロックマッチング法などが用いられる。
【０１６８】
また、動きベクトルの候補が複数ある場合には、ベクトル検出部５２においては、評価値演算部６１Ｂにより、各動きベクトルに対して、評価値ｄｆｖ（差分分散）が求められ、求められた評価値ｄｆｖに基づいた信頼度の高い動きベクトルが検出される。すなわち、この場合、動きベクトルを検出する着目ブロックにおいて、最も確からしい動きベクトルが選択され、検出される。ステップＳ８２における、動きベクトル検出処理の詳細は、図２０を参照して後述する。
【０１６９】
ステップＳ８３において、ベクトル割付部５４は、ベクトル割付処理を実行する。すなわち、ベクトル割付部５４は、ステップＳ８３において、フレームｔ上において求められた動きベクトルを、割付ベクトルメモリ５５上の、補間する内挿フレーム上の着目画素に割り付け、動きベクトルが割り付けられた画素の割付フラグメモリ５６の割付フラグを１(True)に書き換える。例えば、Trueである割付フラグは、対応する画素に動きベクトルが割り付けられていることを示し、Falseである割付フラグは、対応する画素に動きベクトルが割り付けられていないことを示す。
【０１７０】
なお、各画素において、動きベクトルの候補が複数ある場合には、ベクトル割付部５４においては、評価値演算部６１により、各動きベクトルに対して、評価値ＤＦＤが求められ、求められた評価値ＤＦＤに基づいた信頼度の高い動きベクトルが割り付けられる。すなわち、この場合、動きベクトルを割り付ける着目画素において、最も確からしい動きベクトルが選択され、割り付けられる。ステップＳ８３における、ベクトル割付処理の詳細は、図７３を参照して後述する。
【０１７１】
ステップＳ８４において、割付補償部５７は、割付補償処理を実行する。すなわち、割付補償部５７は、ステップＳ８４において、割付フラグメモリ５６の割付フラグを参照し、ベクトル割付部５４により動きベクトルが割り付けられなかった着目画素に対して、その着目画素の周辺画素の動きベクトルを補い、割付ベクトルメモリ５５の内挿フレーム上に割り付ける。このとき、割付補償部５７は、動きベクトルを補い、割付けた着目画素の割付フラグを１(True)に書き換える。
【０１７２】
なお、周辺画素の動きベクトルが複数ある場合には、割付補償部５７においては、各動きベクトルに対して、評価値演算部６１により、評価値ＤＦＤが求められ、求められた評価値ＤＦＤに基づいた、信頼度の高い動きベクトルが割り付けられる。すなわち、この場合、動きベクトルを割り付ける着目画素において、最も確からしい動きベクトルが選択され、割り付けられる。ステップＳ８４における、割付補償処理の詳細は、図７６を参照して後述する。
【０１７３】
ステップＳ８５において、画像補間部５８は、画像補間処理を実行する。すなわち、画像補間部５８は、ステップＳ８５において、割付ベクトルメモリ５５の内挿フレームに割り付けられた動きベクトルと、フレームｔおよびフレームｔ＋１の画素値を用いて、内挿フレームの画素値を補間生成する。ステップＳ８５における、画像補間処理の詳細は、図７９を参照して後述する。画像補間部５８は、ステップＳ８６において、生成された内挿フレームを出力し、その次に、必要に応じて、フレームｔ＋１を出力することにより、６０Ｐ信号の画像を、図示せぬ後段に出力する。
【０１７４】
ステップＳ８７において、ベクトル検出部５２は、すべてのフレームの処理が終了したか否かを判定し、すべてのフレームの処理がまだ終了していないと判定した場合、ステップＳ８１に戻り、それ以降の処理を繰り返す。一方、ベクトル検出部５２は、ステップＳ８７において、すべてのフレームの処理が終了したと判定した場合、フレーム周波数を変換する処理を終了する。
【０１７５】
以上のように、本発明に係る信号処理装置１は、２４Ｐ信号の入力画像のフレームから動きベクトルを検出し、検出した動きベクトルを、６０Ｐ信号のフレーム上の画素に割付け、割付けられた動きベクトルに基づいて、６０Ｐ信号のフレーム上の画素値を生成する。
【０１７６】
このとき、信号処理装置１は、ベクトル検出処理において、評価値ｄｆｖ（差分分散）に基づく、より信頼度の高い動きベクトルを選択し、後段に出力する。したがって、信号処理装置１においては、動きベクトルを求めるフレーム間で平均輝度レベルが大きく変化してしまっても、動きベクトルの信頼度の評価を正しく行うことが可能になる。これにより、動きが破綻することなどが抑制され、より精度のよい画像を生成することができる。
【０１７７】
次に、ベクトル検出部５２の構成の詳細について説明する。
【０１７８】
図１７は、ベクトル検出部５２の構成を示すブロック図である。図１７に構成を示すベクトル検出部５２は、入力される時刻ｔの画像のフレームｔと、時刻ｔ＋１の画像のフレームｔ＋１を用いて、フレームｔ上の動きベクトルを検出し、検出した動きベクトルを、検出ベクトルメモリ５３に記憶する。この動きベクトルを検出する処理は、複数の画素からなる所定のブロック毎に実行される。
【０１７９】
初期ベクトル選択部１０１は、所定のブロック毎に、過去の動きベクトルの検出結果から求められる信頼度が高い動きベクトルを、勾配法に用いられる初期値となる初期ベクトルＶ０として、反復勾配法演算部１０３に出力する。具体的には、初期ベクトル選択部１０１は、検出ベクトルメモリ５３に記憶される過去に求められた周辺のブロックの動きベクトルや、シフト初期ベクトルメモリ１０７に記憶されるシフト初期ベクトルを、初期ベクトルの候補ベクトルとして選択する。そして、初期ベクトル選択部１０１は、図１４を参照して上述した評価値演算部６１Ｂを有しており、評価値演算部６１Ｂに、フレームｔとフレームｔ＋１を用いて、候補ベクトルの評価値ｄｆｖを求めさせ、候補ベクトルの中から、評価値演算部６１Ｂにより求められた評価値ｄｆｖに基づく、最も信頼度が高いものを選択し、初期ベクトルＶ０として出力する。なお、初期ベクトル選択部１０１の構成の詳細は、図２３を参照して後述する。
【０１８０】
プリフィルタ１０２−１および１０２−２は、ローパスフィルタやガウシアンフィルタにより構成され、それぞれ、入力される画像のフレームｔおよびフレームｔ＋１のノイズ成分を除去し、反復勾配法演算部１０３に出力する。
【０１８１】
反復勾配法演算部１０３は、初期ベクトル選択部１０１から入力された初期ベクトルＶ０と、プリフィルタ１０２−１および１０２−２を介して入力されるフレームｔおよびフレームｔ＋１を用いて、所定のブロック毎に、勾配法により、動きベクトルＶｎを算出する。反復勾配法演算部１０３は、初期ベクトルＶ０と、算出された動きベクトルＶｎをベクトル評価部１０４に出力する。また、反復勾配法演算部１０３は、ベクトル評価部１０４による動きベクトルの評価結果に基づいて、勾配法の演算を繰り返し行い、動きベクトルＶｎを算出する。
【０１８２】
ベクトル評価部１０４も、評価値演算部６１Ｂを有しており、評価値演算部６１Ｂに、反復勾配法演算部１０３からの動きベクトルＶｎ−１（または初期ベクトルＶ０）と、動きベクトルＶｎの評価値ｄｆｖを求めさせ、評価値演算部６１Ｂにより求められた評価値ｄｆｖに基づいて、反復勾配法演算部１０３を制御し、勾配法の演算を繰り返し実行させ、最終的に、評価値ｄｆｖに基づく、信頼性の高いものを選択し、選択した動きベクトルＶを、検出ベクトルメモリ５３に記憶させる。
【０１８３】
このとき、ベクトル評価部１０４は、動きベクトルＶとともに、その動きベクトルＶに対して求められた評価値ｄｆｖを、シフト初期ベクトル割付部１０５に供給する。なお、反復勾配法演算部１０３およびベクトル評価部１０４の構成の詳細は、図２５を参照して後述する。
【０１８４】
シフト初期ベクトル割付部１０５は、ベクトル評価部１０４より動きベクトルＶおよびその評価値ｄｆｖが供給されると、次のフレーム上の着目ブロックを通過する動きベクトルを、その着目ブロックにシフトさせた、シフト初期ベクトルとして設定する。換言すると、シフト初期ベクトル割付部１０５は、動きベクトルＶの終点のブロックと同じ位置の次のフレーム上の着目ブロックを始点とした、動きベクトルＶと同じ大きさで同じ向きの動きベクトルを、シフト初期ベクトルとして設定する。そして、シフト初期ベクトル割付部１０５は、設定したシフト初期ベクトルを、着目ブロックに対応させて、シフト初期ベクトルメモリ１０７に割り付ける。
【０１８５】
具体的には、シフト初期ベクトル割付部１０５は、シフト初期ベクトルとして割り付けられた動きベクトルＶの評価値ｄｆｖを、着目ブロックに対応させて、評価値メモリ１０６に記憶させておき、同じ着目ブロックを通過する（すなわち、着目ブロックと同じ位置の過去のフレームのブロックを終点とする）他の動きベクトルＶの評価値ｄｆｖと比較する。そして、シフト初期ベクトル割付部１０５は、評価値ｄｆｖに基づく、信頼度が高いとされた動きベクトルＶを、着目ブロックにシフトさせ、着目ブロックのシフト初期ベクトルとして、シフト初期ベクトルメモリ１０７に割り付ける。なお、シフト初期ベクトル割付部１０５の構成の詳細は、図２１を参照して後述する。
【０１８６】
次に、ベクトル検出部５２において用いられる勾配法の原理について説明する。まず、動画像中において、水平、垂直、時間軸を用いた座標（ｘ，ｙ，ｔ）で表される画素の輝度値をｇ（ｘ，ｙ，ｔ）とする。ここで、着目画素（ｘ0，ｙ0，ｔ0）が、微小時間中に、（ｄｘ，ｄｙ，ｄｔ）だけ変位したとき、水平、垂直、時間軸の勾配（差分差）を、それぞれｇｘ（ｘ0，ｙ0，ｔ0），ｇｙ（ｘ0，ｙ0，ｔ0），ｇｔ（ｘ0，ｙ0，ｔ0）と表すと、変位後の画素の輝度値は、Taylor展開近似を用いて、次の式（７）で表される。
【０１８７】
【数８】
0004752407.tif 000009
・・・（７）
【０１８８】
ここで、動画像中のある着目画素が１フレーム後に水平ｖｘ，垂直ｖｙだけ移動した場合（以降、（ｖｘ，ｖｙ）と表す）、その画素の輝度値は、次の式（８）で表される。
【０１８９】
【数９】
0004752407.tif 000010
・・・（８）
【０１９０】
式（７）を式（８）に代入すると、次の式（９）で表される。
【０１９１】
【数１０】
0004752407.tif 000011
・・・（９）
【０１９２】
式（９）は、ｖｘ，ｖｙの２変数の式であるので、着目１画素に対する単独の式では、その解を求めることができない。そこで、次に説明するように、着目画素の周辺領域であるブロックを１つの処理単位として考え、ブロック（周辺領域）内の全画素が同じ動き（ｖｘ，ｖｙ）をすると仮定し、各画素について同様の式を立てる。仮定が前提となるが、２変数に対して周辺画素の個数の式が得られる。したがって、それらの式を連立させ、ブロック内全画素の動き補償フレーム差分の自乗和が最小になるような（ｖｘ，ｖｙ）を求める。
【０１９３】
画素（ｘ，ｙ，ｔ）が１フレーム間に（ｖｘ，ｖｙ）だけ移動したとき、その動き補償フレーム間差分dは、次の式（１０）で表される。
【０１９４】
【数１１】
0004752407.tif 000012
・・・（１０）
【０１９５】
式（１０）において、Δｘ=ｇｘ（ｘ，ｙ，ｔ）であり、水平方向の勾配を表し、Δｙ＝ｇｙ（ｘ，ｙ，ｔ）であり、垂直方向の勾配を表し、Δｔ＝ｇｔ（ｘ，ｙ，ｔ）であり、時間方向の勾配を表す。これらを用いて、動き補償フレーム間差分の自乗和をＥとすると、式（１１）で表される。
【０１９６】
【数１２】
0004752407.tif 000013
・・・（１１）
【０１９７】
ここで、Ｅが最小となる（ｖｘ，ｖｙ）は、各変数における偏微分値が０になるとき、すなわち、δＥ／δｖｘ＝δＥ／δｖｙ＝０の条件が成立するときなので、式（１１）から、次の式（１２）および式（１３）となる。
【０１９８】
【数１３】
0004752407.tif 000014
・・・（１２）
【０１９９】
【数１４】
0004752407.tif 000015
・・・（１３）
【０２００】
これらの式（１２）および式（１３）から、求めたい動きである（ｖｘ，ｖｙ）は、次の式（１４）を演算することにより求めることができる。
【０２０１】
【数１５】
0004752407.tif 000016
・・・（１４）
【０２０２】
ここで、図１８を参照して、具体的に説明する。図１８の例において、矢印Ｘは、水平方向を示しており、矢印Ｙは、垂直方向を示している。また、矢印Ｔは、図中、右奥の時刻ｔのフレームｔから、左手前の時刻ｔ＋１のフレームｔ＋１への時間の経過方向を示している。なお、図１８の例においては、各フレームは、着目画素ｐの周辺領域（ブロック）として、勾配法演算に用いられる８画素×８画素の領域のみ示されている。
【０２０３】
フレームｔにおいて、左上の画素から下に５番目、右に５番目の画素である着目画素ｐの動きベクトルＶ（ｖｘ，ｖｙ）を、上述した勾配法を用いて求める場合、動きベクトルＶ（ｖｘ，ｖｙ）は、着目画素ｐのｘ，ｙ方向のそれぞれについて求められる隣接画素ｐｘおよびｐｙとの輝度の差分差（すなわち、勾配）ΔｘおよびΔｙ、フレームｔ＋１において求められる着目画素ｐの同位相に位置する画素ｑとの時間方向の輝度の差分差（勾配）Δｔを、着目画素ｐの周辺領域（８画素×８画素）のすべての画素について求め、それらの差分差を、式（１４）を用いて演算することにより、求めることができる。
【０２０４】
すなわち、勾配法とは、２フレーム間において、勾配Δｘ，Δｙ，およびΔｔを求め、求められたΔｘ，Δｙ，およびΔｔから、差分自乗和を用いて、統計的に、動きベクトルＶ（ｖｘ，ｖｙ）を算出するものである。
【０２０５】
一般的に、このような勾配法を用いた動きベクトル検出方法においては、微小動きに対して精度の高い結果が得られる。ただし、実際の動画像の中で動きを求めようとするとする場合、この勾配法は、その動き量が大きすぎるため実用的とはいえない。これに対応して、この勾配法を複数回反復する方法が考えられる。勾配法を反復して実行することにより、各演算で求められる動き量が収束するため、徐々に正しい動きが求められる。
【０２０６】
しかしながら、ただ、勾配法を反復するだけでは、リアルタイム処理を行おうとした場合、演算時間の面から実用的ではない。そこで、ベクトル検出部５２においては、過去フレームと現在フレームでの周辺画素の動きに基づいて求められる初期ベクトルを、初期値として用いることで、勾配法の繰り返し回数を軽減している。すなわち、動きの起点となる着目画素から、初期ベクトルが指す先へオフセットを予め加えることで大まかな動きを算出し、オフセットが加えられたその位置から勾配法を用いた演算を行うようにすれば、画素以下動きを含めた微調整を行うことができる。これにより、演算時間を増大させることなく、精度のよい動きベクトルを検出することができる。
【０２０７】
図１９は、初期ベクトルを用いて実行される反復勾配法について具体的に説明する図である。図１９の例においては、矢印Ｔは、図中、左手前の時刻ｔのフレームｔから、右奥の時刻ｔ＋１のフレームｔ＋１への時間の経過を示している。なお、各画素ｐ，ｑ０，ｑ１，ｑ２，およびｑ３を中心としたブロックは、その画素の、勾配法演算に用いられる周辺領域（ブロック）を表している。
【０２０８】
図１９の例の場合、フレームｔにおける着目画素ｐに対して、フレームｔ＋１においては、着目画素ｐの同位相に位置する画素ｑ０ではなく、予め求めておいた初期ベクトルｖ０をオフセット（移動）して計算した位置（画素）ｑ１を開始点として１回目の勾配法演算が行われ、その結果、動きベクトルｖ１が得られる。
【０２０９】
次に、画素ｑ０からｖ０＋ｖ１をオフセットして計算した位置（画素）ｑ２を開始点として、２回目の勾配法演算が行われ、その結果、動きベクトルｖ２が得られる。これにより、最終的に動きベクトルＶは、式（１５）として求められる。
【０２１０】
Ｖ  ＝  ｖ０＋ｖ１＋ｖ２
・・・（１５）
【０２１１】
以上のようにして、初期ベクトルを用いて、反復勾配法の演算を実行することにより、演算時間を短縮させつつ、精度の高い動きベクトルを求めることができる。
【０２１２】
次に、図２０のフローチャートを参照して、動きベクトル検出処理の詳細について説明する。ベクトル検出部５２には、入力される時刻ｔの画像のフレームｔと、時刻ｔ＋１の画像のフレームｔ＋１が入力される。
【０２１３】
初期ベクトル選択部１０１は、ステップＳ１０１において、フレームｔ上の処理の対象となるブロックを、着目ブロックとして選択する。なお、フレーム上においては、左上のブロックからラスタスキャン順に処理が実行される。
【０２１４】
ステップＳ１０２において、初期ベクトル選択部１０１は、初期ベクトル選択処理を実行する。初期ベクトル選択部１０１は、ステップＳ１０２において、所定のブロック毎に、過去の動きベクトルの検出結果から、信頼度が高い動きベクトルを選択し、選択した動きベクトルを、勾配法に用いられる初期値となる初期ベクトルＶ０として、反復勾配法演算部１０３に出力する。
【０２１５】
すなわち、初期ベクトル選択部１０１は、過去の勾配法演算評価処理（後述するステップＳ１０３）において求められ、検出ベクトルメモリ５３に記憶された周辺ブロックの動きベクトルや、過去のシフト初期ベクトル割付処理（後述するステップＳ１０４）においてシフト初期ベクトルメモリ１０７に記憶されたシフト初期ベクトルを、初期ベクトルの候補ベクトルとして選択する。そして、初期ベクトル選択部１０１は、評価値演算部６１Ｂに、フレームｔとフレームｔ＋１を用いて、候補ベクトルの評価値ｄｆｖを求めさせ、候補ベクトルの中から、評価値演算部６１Ｂにより求められた評価値ｄｆｖに基づいた信頼度が高いものを選択し、選択された候補ベクトルを、初期ベクトルＶ０として出力する。なお、ステップＳ１０２における、初期ベクトル選択処理の詳細は、図２４を参照して後述する。
【０２１６】
ステップＳ１０３において、反復勾配法演算部１０３およびベクトル評価部１０４は、反復勾配法演算評価処理（なお、反復勾配法演算処理とも称する）を実行する。具体的には、ステップＳ１０３において、反復勾配法演算部１０３は、初期ベクトル選択部１０１から入力された初期ベクトルＶ０と、プリフィルタ１０２−１および１０２−２を介して入力されるフレームｔおよびフレームｔ＋１を用いて、ベクトル評価部１０４による動きベクトルの評価結果に基づいて、勾配法の演算を繰り返し行い、動きベクトルＶｎを算出する。また、ベクトル評価部１０４は、評価値演算部６１Ｂに、反復勾配法演算部１０３からの動きベクトルＶｎ−１と、動きベクトルＶｎの評価値ｄｆｖを求めさせ、評価値演算部６１Ｂにより求められた評価値ｄｆｖに基づく、最も信頼性の高いものを選択し、動きベクトルＶとして、検出ベクトルメモリ５３に記憶させる。このとき、ベクトル評価部１０４は、動きベクトルＶとともに、その動きベクトルＶに対して求められた評価値ｄｆｖを、シフト初期ベクトル割付部１０５に供給する。なお、ステップＳ１０３における、反復勾配法演算処理の詳細は、図３２を参照して後述する。
【０２１７】
ステップＳ１０４において、シフト初期ベクトル割付部１０５は、シフト初期ベクトル割付処理を実行する。シフト初期ベクトル割付部１０５は、ベクトル評価部１０４より動きベクトルＶおよびその評価値ｄｆｖが供給されると、ステップＳ１０４において、次のフレーム上の着目ブロックを通過する動きベクトルを、その着目ブロックにシフトさせた、シフト初期ベクトルとして設定する。すなわち、換言すると、動きベクトルＶの終点のブロックと同じ位置の次のフレーム上の着目ブロックを始点とした、動きベクトルＶと同じ大きさで同じ向きの動きベクトルが、シフト初期ベクトルとして設定される。そして、シフト初期ベクトル割付部１０５は、設定したシフト初期ベクトルを、着目ブロックに対応させて、シフト初期ベクトルメモリ１０７に割り付ける。
【０２１８】
なお、具体的には、シフト初期ベクトル割付部１０５は、シフト初期ベクトルとして割り付けられた動きベクトルＶの評価値ｄｆｖを、着目ブロックに対応させて、評価値メモリ１０６に記憶させておき、同じ着目ブロックを通過する（すなわち、着目ブロックと同じ位置の過去のフレームのブロックを終点とする）他の動きベクトルＶの評価値ｄｆｖと比較し、評価値ｄｆｖに基づく、信頼度が高いとされた動きベクトルＶを、そのブロックにシフトさせてシフト初期ベクトルと設定し、シフトさせたブロックに対応させて、シフト初期ベクトルメモリ１０７に割り付ける。なお、シフト初期ベクトル割付部１０５の構成の詳細は、図２２を参照して後述する。
【０２１９】
ステップＳ１０５において、初期ベクトル選択部１０１は、フレームｔにおいて、すべてのブロックの処理が終了したか否かを判定する。ステップＳ１０５において、すべてのブロックの処理が終了していないと判定された場合、処理は、ステップＳ１０１に戻り、それ以降の処理が繰り返される。また、ステップＳ１０５において、フレームｔにおいて、すべてのブロックの処理が終了したと判定された場合、すなわち、フレームｔ上のすべてのブロックにおいて、動きベクトルＶが検出されたと判定され、動きベクトル検出処理は、終了される。
【０２２０】
以上のように、過去に検出された動きベクトルから初期ベクトルが選択され、選択された初期ベクトルに基づいて、反復勾配法の演算が用いられて、繰り返し動きベクトルが算出され、算出された動きベクトルの中から、評価値ｄｆｖに基づく、信頼度が高い（すなわち、最も確からしい）動きベクトルが検出される。この結果、検出ベクトルメモリ５３に、フレームｔ上のすべてのブロックに対応する動きベクトルＶが記憶される。
【０２２１】
次に、シフト初期ベクトル割付部１０５の構成の詳細について説明する。
【０２２２】
図２１は、シフト初期ベクトル割付部１０５の構成を示すブロック図である。図２１に構成を示すシフト初期ベクトル割付部１０５は、前（過去）フレームにおいて、ベクトル評価部１０４より検出された動きベクトルＶに基づいて、初期ベクトルの候補ベクトルとなるシフト初期ベクトルを設定し、シフト初期ベクトルメモリ１０７に割り付ける処理を行う。シフト初期ベクトル割付部１０５には、ベクトル評価部１０４より検出された動きベクトルＶ、および、その動きベクトルＶの評価値ｄｆｖが入力される。
【０２２３】
割付対象位置演算部２０１は、ベクトル評価部１０４より検出された動きベクトルＶが、次の時刻のフレーム上において通過するブロックの位置（すなわち、現在のフレーム上において検出された動きベクトルＶの終点のブロックと同じ位置にある次のフレーム上のブロックの位置）を演算し、演算されたブロックの位置を、評価値メモリ１０６およびシフト初期ベクトル置換部２０３に供給する。
【０２２４】
評価値比較部２０２は、動きベクトルＶ、および、その動きベクトルＶの評価値ｄｆｖが入力されると、割付対象位置演算部２０１からのブロックの位置の評価値ｄｆｖを、評価値メモリ１０６から読み出す。そして、評価値比較部２０２は、評価値メモリ１０６から読み出された評価値ｄｆｖと、ベクトル評価部１０４により検出された動きベクトルＶの評価値ｄｆｖとを比較判定する。
【０２２５】
評価値比較部２０２は、検出された動きベクトルＶの評価値ｄｆｖの方が小さい（すなわち、信頼度が高い）と判定した場合、シフト初期ベクトル置換部２０３を制御し、シフト初期ベクトルメモリ１０７の、シフト初期ベクトル割付部１０５により供給されたブロックの位置のシフト初期ベクトルを、評価値ｄｆｖに基づく、信頼度が高いと判定した動きベクトルＶで書き換えさせる。また、それと同時に、評価値比較部２０２は、評価値置換部２０４を制御し、評価値メモリ１０６において、割付対象位置演算部２０１により選択されたブロックの位置の評価値ｄｆｖを、動きベクトルＶの評価値ｄｆｖで書き換えさせる。
【０２２６】
シフト初期ベクトル置換部２０３は、シフト初期ベクトルメモリ１０７の、割付対象位置演算部２０１により供給されたブロックの位置のシフト初期ベクトルを、評価値比較部２０２から供給される動きベクトルＶ（すなわち、動きベクトルＶと同じ大きさで同じ向きの動きベクトル）で書き換える。評価値置換部２０４は、評価値比較部２０２の制御のもと、評価値メモリ１０６において、割付対象位置演算部２０１により選択されたブロックの位置の評価値ｄｆｖを、動きベクトルＶの評価値ｄｆｖで書き換える。
【０２２７】
評価値メモリ１０６は、次のフレーム上における、各ブロックに割り当てられるシフト初期候補ベクトルの評価値ｄｆｖをブロック毎に記憶する。シフト初期ベクトルメモリ１０７は、次のフレームにおける各ブロックにおいて最も評価値ｄｆｖが小さい（すなわち、最も信頼度がある）動きベクトルを、シフト初期ベクトルとして、そのブロックに対応させて記憶する。
【０２２８】
次に、図２２のフローチャートを参照して、シフト初期ベクトル割り付け処理の詳細について説明する。前段において、ベクトル評価部１０４は、フレームｔ−１上の着目ブロックの動きベクトルＶを検出すると、検出された動きベクトルＶとともに、その動きベクトルＶに対して求めた評価値ｄｆｖを、シフト初期ベクトル割付部１０５に供給する。
【０２２９】
ステップＳ２０１において、評価値比較部２０２は、ベクトル評価部１０４から、動きベクトルＶとともに、その動きベクトルＶの評価値ｄｆｖを入力する。また、このとき、割付対象位置演算部２０１も、動きベクトルＶを入力する。割付対象位置演算部２０１は、ステップＳ２０２において、動きベクトルＶのフレームｔにおけるオフセット（動き補償）先の割付対象ブロックの位置を求める。すなわち、割付対象位置演算部２０１は、フレームｔ−１上において検出された動きベクトルＶの終点のブロックと同じ位置にあるフレームｔ上のブロックの位置を求める。
【０２３０】
割付対象位置演算部２０１は、ステップＳ２０３において、求められた割付対象ブロックのうち、１つの割付対象ブロックを選択し、選択した割り付け対象ブロックの位置を、評価値メモリ１０６およびシフト初期ベクトル置換部２０３に供給する。なお、ステップＳ２０３においては、割付対象ブロックのうち、フレームｔ上において左上のブロックから順に選択される。
【０２３１】
ステップＳ２０４において、評価値比較部２０２は、評価値メモリ１０６から、割付対象位置演算部２０１により選択された割付対象ブロックの評価値ｄｆｖを取得し、ステップＳ２０５において、ステップＳ２０１において入力された動きベクトルＶの評価値ｄｆｖが、評価値メモリ１０６の評価値ｄｆｖよりも小さいか否か（すなわち、動きベクトルＶの評価値ｄｆｖが、評価値メモリ１０６の評価値ｄｆｖよりも信頼度が高いか否か）を判定する。ステップＳ２０５において、動きベクトルＶの評価値ｄｆｖが、評価値メモリ１０６の評価値ｄｆｖよりも小さいと判定された場合、処理は、ステップＳ２０６に進む。
【０２３２】
評価値比較部２０２は、ステップＳ２０６において、シフト初期ベクトル置換部２０３を制御し、割付対象位置演算部２０１により選択されたシフト初期ベクトルメモリ１０７の割付対象ブロックのシフト初期ベクトルを、動きベクトルＶ（すなわち、動きベクトルＶと同じ大きさで同じ向きの動きベクトル）に書き換えさせ、ステップＳ２０７において、評価値置換部２０４を制御し、割付対象位置演算部２０１により選択された割付対象ブロックの評価値ｄｆｖを、動きベクトルＶの評価値ｄｆｖで書き換えさせる。
【０２３３】
また、ステップＳ２０５において、ステップＳ２０１において入力された動きベクトルＶの評価値ｄｆｖが、評価値メモリ１０６に記憶される評価値ｄｆｖよりも小さくないと判定された場合、処理は、ステップＳ２０６およびＳ２０７をスキップし、ステップＳ２０８に進む。すなわち、この場合、評価値メモリ１０６の評価値ｄｆｖが、動きベクトルＶの評価値ｄｆｖよりも信頼度が高いと判定されるので、評価値メモリ１０６およびシフト初期ベクトルメモリ１０７の値は、書き換えられることはない。
【０２３４】
割付対象位置演算部２０１は、ステップＳ２０８において、動きベクトルＶの割り付け対象ブロックすべての処理が終了したか否かを判定する。ステップＳ２０８において割り付け対象ブロックすべての処理が終了していないと判定された場合、処理は、ステップＳ２０３に戻り、それ以降の処理が繰り返される。また、ステップＳ２０８において、動きベクトルＶの割り付け対象ブロックすべての処理が終了したと判定された場合、シフト初期ベクトル割付処理は終了される。
【０２３５】
なお、初回の処理においては、選択された割付対象ブロックに対応するシフト初期ベクトルが、シフト初期ベクトルメモリ１０７にまだ記憶されていない。したがって、そのシフト初期ベクトルの評価値ｄｆｖが、評価値メモリ１０６の対応する割付対象ブロックに、まだ記憶されていない場合には、ステップＳ２０４において、選択された割付対象ブロックから評価値ｄｆｖは、取得されないので、ステップＳ２０５においてはＹｅｓと判定されることとし、ステップＳ２０６およびＳ２０７の処理が実行される。
【０２３６】
以上のように、シフト初期ベクトルを割り付ける際にも、評価値ｄｆｖを用いるようにしたので、光源の移動や影の通過などにより、フレーム間の平均輝度レベルが変化する場合であっても、ベクトルの信頼度の評価を正しく行うことができ、勾配法演算による動きベクトル検出に、より適切な初期ベクトルの候補を得ることができる。
【０２３７】
また、シフト初期ベクトルを求める際に、前の時刻のフレームにおいて検出された動きベクトルが次の時刻のフレームにおいて通過するブロック（すなわち、フレームｔ−１上において検出された動きベクトルＶの終点のブロックと同じ位置にあるフレームｔ上のブロック）を求め、次の時刻のフレーム上の着目ブロックにおけるシフト初期ベクトルとして割り付けるようにし、さらに、その際に、評価値ｄｆｖも前の時刻のフレームにおいて検出された動きベクトルを求める際に算出されるものを用いるようにしたので、再度評価値ｄｆｖを求める必要がなく、着目ブロックを通過する動きベクトルを、前の時刻のフレームの全ブロックの動きベクトルから探索する場合よりも、処理の演算量が削減されるため、膨大な演算量により実現が困難であったハードウェア化を実現することができる。
【０２３８】
次に、初期ベクトル選択部１０１の構成の詳細について説明する。
【０２３９】
図２３は、初期ベクトル選択部１０１の構成を示すブロック図である。図２３に構成を示す初期ベクトル選択部１０１は、前（過去）フレームにおいて検出された動きベクトルや、シフト初期ベクトルなどの候補ベクトル（以下、初期候補ベクトルとも称する）から、信頼度の高い動きベクトルを、初期ベクトルとして選択する処理を行う。初期ベクトル選択部１０１には、時刻ｔの画像のフレームｔと、時刻ｔ＋１の画像のフレームｔ＋１が入力される。
【０２４０】
候補ベクトル位置演算部２５１は、フレームｔが入力されると、フレームｔ上の処理の対象となる着目ブロックを選択し、着目ブロックの周辺領域から、着目ブロックの初期候補ベクトルを取得する候補ブロックの位置、初期候補ベクトルとなる動きベクトルの種類および優先順位を求め、求められた優先順位の順に、候補ブロックの位置情報および初期候補ベクトルの種類情報を、検出ベクトル取得部２５２およびシフト初期ベクトル取得部２５３に供給する。また、候補ベクトル位置演算部２５１は、候補ブロックの位置情報を、オフセット位置演算部２５４にも供給する。
【０２４１】
なお、信号処理装置１においては、初期候補ベクトルの数は、初期ベクトルの精度と、ハードウェア能力の兼ね合いなどに基づいて所定数に設定されており、さらに、候補ブロックの位置、初期候補ベクトルの種類、および優先順位も、予め設定されている。また、初期候補ベクトルの種類としては、過去フレームにおいて、所定のブロックを通過する動きベクトルを、その所定のブロックにシフトさせた動きベクトル（すなわち、過去フレーム上において検出された動きベクトルの終点のブロックと同じ位置にある次のフレーム上のブロックを始点とした、動きベクトルＶと同じ大きさで同じ向きの動きベクトル）であるシフト初期ベクトルＳＶ、過去フレームにおいて検出された動きベクトル（以下、過去ベクトルＰＶとも称する）、現在のフレームにおいて着目ブロックより手前のブロックにおいて検出された動きベクトル（現在ベクトルＣＶとも称する）、および０ベクトルがある。
【０２４２】
したがって、候補ベクトル位置演算部２５１は、予め設定された初期候補ベクトルの種類が過去ベクトルまたは現在ベクトルであった場合、候補ブロックの位置情報および初期候補ベクトルの種類情報を、検出ベクトル取得部２５２に供給し、求めた初期候補ベクトルの種類がシフト初期ベクトルであった場合、候補ブロックの位置情報および初期候補ベクトルの種類情報を、シフト初期ベクトル取得部２５３に供給し、そのどちらでもなかった場合（例えば、初期候補ベクトルの種類が、０ベクトルである場合）、０ベクトルを設定し、０ベクトルと共に、候補ブロックの位置情報を、オフセット位置演算部２５４に供給する。
【０２４３】
検出ベクトル取得部２５２は、候補ベクトル位置演算部２５１により供給された候補ブロックの位置情報および初期候補ベクトルの種類情報に応じた動きベクトルを、検出ベクトルメモリ５３より取得し、取得した動きベクトルを、初期候補ベクトルとして、オフセット位置演算部２５４に出力する。
【０２４４】
シフト初期ベクトル取得部２５３は、候補ベクトル位置演算部２５１により供給された候補ブロックの位置情報および初期候補ベクトルの種類情報に応じて、候補ブロックの位置情報に対応したシフト初期ベクトルを、シフト初期ベクトルメモリ１０７から取得し、初期候補ベクトルとしてオフセット位置演算部２５４に出力する。また、シフト初期ベクトル取得部２５３は、候補ベクトル位置演算部２５１により指示されたブロックの位置に、シフト初期ベクトルが割り付けられていない場合、０ベクトルを、オフセット位置演算部２５４に出力する。なお、シフト初期ベクトルが割り付けられていない場合には、０ベクトルが、シフト初期ベクトルメモリ１０７に予め記憶されているようにしてもよい。
【０２４５】
オフセット位置演算部２５４は、検出ベクトル取得部２５２またはシフト初期ベクトル取得部２５３から初期候補ベクトル（あるいは候補ベクトル位置演算部２５１からの０ベクトル）を入力すると、候補ベクトル位置演算部２５１により供給された候補ブロックの位置情報に基づいて、各初期候補ベクトルに対して、フレームｔの着目ブロックを、フレームｔ＋１にオフセット（動き補償）させたオフセット先のブロック位置を演算する。そして、オフセット位置演算部２５４は、初期候補ベクトルとともに、候補ブロックの位置情報、およびオフセット先ブロック位置の情報を、図１４を参照して上述した評価値演算部６１Ｂに出力する。
【０２４６】
評価値演算部６１Ｂは、オフセット位置演算部２５４より初期候補ベクトルとともに、候補ブロックの位置情報、およびオフセット先ブロック位置の情報を入力すると、フレームｔとフレームｔ＋１を用いて、初期候補ベクトルの評価値ｄｆｖを求める。そして、評価値演算部６１Ｂは、初期候補ベクトルとともに、求められた評価値ｄｆｖを、評価値比較部２５６に出力する。
【０２４７】
評価値比較部２５６は、評価値演算部６１Ｂにより入力された評価値ｄｆｖと、最適候補格納用レジスタ２５７に格納されている最適候補ベクトルの評価値ｄｆｖを比較し、評価値演算部６１Ｂにより入力された初期候補ベクトルの評価値ｄｆｖが、最適候補ベクトルの評価値ｄｆｖよりも小さい、すなわち、初期候補ベクトルが最適候補ベクトルよりも信頼度が高いと判定された場合、最適候補格納用レジスタ２５７の最適候補ベクトルおよびその評価値ｄｆｖを、信頼度が高いとされた初期候補ベクトルおよびその評価値ｄｆｖで置き換える。そして、最終的に、評価値比較部２５６は、最適候補格納用レジスタ２５７を制御し、すべての候補ベクトルの中から、評価値ｄｆｖに基づく、信頼度が最も高いと判定された最適候補ベクトルを、初期ベクトルＶ０として、反復勾配法演算部１０３に出力させる。
【０２４８】
最適候補格納用レジスタ２５７は、評価値比較部２５６により評価値ｄｆｖが小さい（信頼度が高い）とされた初期候補ベクトルが、最適候補ベクトルとして、その評価値ｄｆｖとともに記憶されている。そして、最適候補格納用レジスタ２５７は、評価値比較部２５６の制御のもと、最終的に記憶されている最適候補ベクトルを、初期ベクトルＶ０として、反復勾配法演算部１０３に出力する。
【０２４９】
次に、図２４のフローチャートを参照して、初期ベクトル選択処理の詳細について説明する。
【０２５０】
候補ベクトル位置演算部２５１は、ステップＳ２５１において、選択された着目ブロックの周辺領域から、予め設定されている着目ブロックの初期候補ベクトルを取得する候補ブロックの位置、初期候補ベクトルの種類および優先順位を求め、ステップＳ２５２において、求められた優先順位の順に、候補ブロックの初期候補ベクトルの種類が、過去ベクトルまたは現在ベクトルであるか否かを判定する。ステップＳ２５２において、候補ブロックの初期候補ベクトルの種類が、過去ベクトルまたは現在ベクトルであると判定された場合、候補ベクトル位置演算部２５１は、ステップＳ２５３において、候補ブロックの位置情報および初期候補ベクトルの種類情報を、検出ベクトル取得部２５２に供給し、検出ベクトル取得部２５２に、候補ブロックの位置情報および初期候補ベクトルの種類情報に応じた動きベクトル（過去ベクトルＰＶまたは現在ベクトルＣＶ）を、検出ベクトルメモリ５３から取得させ、取得させた動きベクトルを、オフセット位置演算部２５４に出力させる。
【０２５１】
ステップＳ２５２において、候補ブロックの初期候補ベクトルの種類が、過去ベクトルまたは現在ベクトルでないと判定された場合、候補ベクトル位置演算部２５１は、ステップＳ２５４において、候補ブロックの初期候補ベクトルの種類が、シフト初期ベクトルであるか否かを判定する。ステップＳ２５４において、候補ブロックの初期候補ベクトルの種類が、シフト初期ベクトルであると判定された場合、候補ベクトル位置演算部２５１は、ステップＳ２５５において、候補ブロックの位置情報および初期候補ベクトルの種類情報を、シフト初期ベクトル取得部２５３に供給し、シフト初期ベクトル取得部２５３に、候補ブロックの位置情報に対応したシフト初期ベクトルを、シフト初期ベクトルメモリ１０７から取得させ、取得させたシフト初期ベクトルを、オフセット位置演算部２５４に出力させる。
【０２５２】
ステップＳ２５４において、候補ブロックの初期候補ベクトルの種類が、シフト初期ベクトルではないと判定された場合（すなわち、候補ブロックの初期候補ベクトルの種類が、０ベクトルであると判定された場合）、候補ベクトル位置演算部２５１は、ステップＳ２５６において、初期候補ベクトルに０ベクトルを設定し、０ベクトルと共に、候補ブロックの位置情報を、オフセット位置演算部２５４に供給する。なお、ステップＳ２５３およびＳ２５５においても、候補ベクトル位置演算部２５１は、候補ブロックの位置情報を、オフセット位置演算部２５４に供給している。
【０２５３】
オフセット位置演算部２５４は、ステップＳ２５７において、検出ベクトル取得部２５２またはシフト初期ベクトル取得部２５３から初期候補ベクトルを入力すると、候補ベクトル位置演算部２５１により供給された候補ブロックの位置情報に基づいて、各初期候補ベクトルに対して、フレームｔの着目ブロックを、フレームｔ＋１にオフセットさせたオフセット先のブロック位置を演算する。そして、オフセット位置演算部２５４は、初期候補ベクトルとともに、候補ブロックの位置情報、およびオフセット先ブロック位置の情報を、評価値演算部６１Ｂに出力する。
【０２５４】
評価値演算部６１Ｂは、オフセット位置演算部２５４より初期候補ベクトルとともに、候補ブロックの位置情報、およびオフセット先ブロック位置の情報を入力すると、ステップＳ２５８において、フレームｔとフレームｔ＋１を用いて、初期候補ベクトルの評価値ｄｆｖを求め、初期候補ベクトルとともに、求められた評価値ｄｆｖを、評価値比較部２５６に出力する。
【０２５５】
評価値比較部２５６は、ステップＳ２５９において、評価値演算部６１Ｂにより求められた評価値ｄｆｖが、最適候補格納用レジスタ２５７に格納されている最適候補ベクトルの評価値ｄｆｖより小さいか否かを判定し、評価値演算部６１Ｂにより求められた評価値ｄｆｖが、最適候補格納用レジスタ２５７に格納されている最適候補ベクトルの評価値ｄｆｖより小さい、すなわち、初期候補ベクトルが最適候補ベクトルよりも信頼度が高いと判定された場合、ステップＳ２６０において、最適候補格納用レジスタ２５７の最適候補ベクトルおよびその評価値ｄｆｖを、信頼度が高いとされた初期候補ベクトルおよびその評価値ｄｆｖで書き換える。
【０２５６】
また、評価値演算部６１Ｂにより求められた評価値ｄｆｖが、最適候補格納用レジスタ２５７に格納されている最適候補ベクトルの評価値ｄｆｖより小さくないと判定された場合、処理は、ステップＳ２６０をスキップし、ステップＳ２６１に進む。
【０２５７】
ステップＳ２６１において、候補ベクトル位置演算部２５１は、すべての初期候補ベクトル（例えば、８ベクトル）の処理が終了したか否かを判定する。ステップＳ２６１において、すべての初期候補ベクトルの処理が終了していないと判定された場合、処理は、ステップＳ２５２に戻り、それ以降の処理が繰り返される。
【０２５８】
ステップＳ２６１において、すべての初期候補ベクトルの処理が終了したと判定された場合、ステップＳ２６２において、評価値比較部２５６は、最適候補格納用レジスタ２５７を制御し、すべての初期候補ベクトルの中から、評価値ｄｆｖに基づく、信頼度が最も高いとされた最適候補ベクトルを、初期ベクトルＶ０として反復勾配法演算部１０３に出力させる。以上により、初期ベクトル選択処理は終了される。
【０２５９】
以上のように、着目ブロックにおいて、複数の初期候補ベクトルの評価値ｄｆｖを求め、評価値ｄｆｖが最も小さい、すなわち、信頼度が最も高いとされる初期候補ベクトルを、初期ベクトルとして選択するようにしたので、光源の移動や影の通過などにより、動きを持つ物体の平均輝度レベルが大きく変化する場合であっても、後段の動きベクトル検出に最適な初期ベクトルを与えることができ、その結果、後段の動きベクトル検出の精度を向上させることができる。
【０２６０】
さらに、連続するフレーム間において動物体の動き量にはある程度の連続性があり、動き量の変化が小さいことに基づいて、前フレームから着目ブロックを通過する動きベクトルであるシフト初期ベクトルも、評価値ｄｆｖを用いて求めて、初期ベクトルの候補とするようにしたので、従来のように、周辺ブロックにおいて過去に求められている動きベクトルのみを初期ベクトルの候補とする場合よりも、精度の高い動き検出を行うことができる。これは、特に、動いている物体の境界において、効果的である。
【０２６１】
次に、反復勾配法演算部１０３およびベクトル評価部１０４の構成の詳細について説明する。
【０２６２】
図２５は、反復勾配法演算部１０３およびベクトル評価部１０４の構成を示すブロック図である。図２５に構成を示す反復勾配法演算部１０３およびベクトル評価部１０４は、入力される時刻ｔの画像のフレームｔと、時刻ｔ＋１の画像のフレームｔ＋１を用いて、最適な動きベクトルを検出する処理を行う。
【０２６３】
この動きベクトルを検出する処理は、複数の画素からなる所定のブロック毎に実行される処理であり、反復勾配法演算部１０３およびベクトル評価部１０４は、各ブロック毎に、勾配法を用いた演算を繰り返し実行することにより、評価値ｄｆｖに基づく、信頼度が高い、最適な動きベクトルを出力する。すなわち、動きベクトルは、動きベクトルの検出対象となる検出対象ブロック毎に求められるが、その検出対象ブロックの動きベクトルを求める際の勾配法演算は、勾配法演算の対象となる演算ブロックを対象として実行される。
【０２６４】
反復勾配法演算部１０３は、セレクタ４０１、メモリ制御信号生成部４０２、メモリ４０３、有効画素判定部４０４、勾配法演算部４０５、および遅延部４０６により構成される。
【０２６５】
セレクタ４０１には、初期ベクトル選択部１０１からの初期ベクトルＶ０が入力される。セレクタ４０１は、初期ベクトル選択部１０１からの初期ベクトルＶ０を、勾配法演算の初期値として用いる動きベクトル（以下、オフセットベクトルと称する）Ｖｎ−１として選択し、メモリ制御信号生成部４０２、勾配法演算部４０５、およびベクトル評価部１０４に出力する。
【０２６６】
また、セレクタ４０１は、遅延部４０６から、勾配法演算部４０５により勾配法演算が実行された結果の動きベクトルＶが入力された場合、勾配法演算部４０５により演算された動きベクトルＶを、オフセットベクトルＶｎ−１として選択し、メモリ制御信号生成部４０２、勾配法演算部４０５、およびベクトル評価部１０４に出力する。
【０２６７】
メモリ制御信号生成部４０２には、信号処理装置１の図示せぬ制御部から、処理の開始タイミングと位置情報を制御する制御信号が入力される。メモリ制御信号生成部４０２は、制御信号およびセレクタ４０１からのオフセットベクトルＶｎ−１に応じて、メモリ４０３に記憶されている時刻ｔの画像のフレームｔと、時刻ｔ＋１の画像のフレームｔ＋１から、処理の対象となる演算ブロックを構成する画素の画素値（輝度値）（以下、対象画素値と称する）を読み出させ、読み出した対象画素値を、有効画素判定部４０４および勾配法演算部４０５に供給させる。
【０２６８】
メモリ４０３には、プリフィルタ１０２−１および１０２−２を介して、時刻ｔの画像のフレームｔと、時刻ｔ＋１の画像のフレームｔ＋１が入力され、記憶されている。
【０２６９】
有効画素判定部４０４は、メモリ４０３から供給される対象画素値を用いて、例えば、フレームｔとフレームｔ＋１の演算ブロックの画素差分を演算し、その画素差分に基づいて、演算ブロックに、勾配法の演算に有効な画素の数が所定のしきい値より多いか否かを判定し、その判定結果に応じたカウンタフラグ（countflg）を、勾配法演算部４０５およびベクトル評価部１０４に供給する。
【０２７０】
また、有効画素判定部４０４は、演算ブロックにおいて有効な画素と判定された画素について、水平方向および垂直方向毎の勾配状態（すなわち、勾配があるか否か）を求め、水平方向および垂直方向のどちらか一方にのみ勾配がある画素（以下、片側勾配の画素とも称する）の割合が多いか否かも判定し、その判定結果に応じた勾配フラグ(gladflg)を、勾配法演算部４０５およびベクトル評価部１０４に供給する。
【０２７１】
勾配法演算部４０５は、有効画素判定部４０４から供給されるカウンタフラグおよび勾配フラグの値に基づいて、メモリ４０３から供給される対象画素値を用いて、勾配法演算を実行し、セレクタ４０１からのオフセットベクトルＶｎ−１を用いて、動きベクトルＶｎを算出し、算出された動きベクトルＶｎを、ベクトル評価部１０４に出力する。なお、このとき、勾配法演算部４０５においては、用いられる勾配法演算（式）が、上述した式（１４）の最小自乗和を用いた勾配法演算処理（以下、統合型勾配法演算処理とも称する）か、後述する式（２３）の簡易的な勾配法演算処理（以下、独立型勾配法演算処理）のどちらに切り替えられて実行される。
【０２７２】
遅延部４０６には、ベクトル評価部１０４から、勾配法演算部４０５により算出され、ベクトル評価部１０４により評価された結果の動きベクトルＶが入力される。遅延部４０６は、ベクトル評価部１０４から入力される動きベクトルＶを、有効画素判定部４０４および勾配法演算部４０５の次の処理のサイクルまで保持し、次の処理のサイクルで、動きベクトルＶをセレクタ４０１に出力する。
【０２７３】
ベクトル評価部１０４は、図１４を参照して上述した評価値演算部６１Ｂ、および評価値判定部４１２により構成されている。
【０２７４】
評価値演算部６１Ｂには、プリフィルタ１０２−１および１０２−２を介して、時刻ｔの画像のフレームｔと、時刻ｔ＋１の画像のフレームｔ＋１が入力され、また、信号処理装置１の図示せぬ制御部から、位置情報を制御する制御信号が入力されている。
【０２７５】
評価値演算部６１Ｂは、評価値判定部４１２の制御のもと、フレームｔとフレームｔ＋１、および位置情報を用いて、勾配法演算部４０５により算出された動きベクトルＶｎ、セレクタ４０１からのオフセットベクトルＶｎ−１、および、０ベクトルの評価値ｄｆｖを求める。そして、評価値演算部６１Ｂは、各ベクトルとともに、求められた評価値ｄｆｖを、評価値判定部４１２に出力する。
【０２７６】
評価値判定部４１２は、有効画素判定部４０４から供給されるカウンタフラグおよび勾配フラグに基づいて、評価値演算部６１Ｂに演算させた評価値ｄｆｖを比較することにより、信頼性の高いものを選択し、動きベクトルＶを求める。
【０２７７】
また、評価値判定部４１２は、有効画素判定部４０４から供給されるカウンタフラグおよび勾配フラグに基づいて、勾配法演算処理を反復させるか否かを判定し、反復させると判定した場合、求めた動きベクトルＶを、遅延部４０６に出力する。評価値判定部４１２は、勾配法演算処理を反復させない場合、求めた動きベクトルＶを、検出ベクトルメモリ５３に記憶させる。このとき、評価値判定部４１２は、動きベクトルＶとともに、その動きベクトルＶに対して求められた評価値ｄｆｖを、シフト初期ベクトル割付部１０５に供給する。
【０２７８】
図２６は、有効画素判定部４０４の詳細な構成を示すブロック図である。図２６の例において、有効画素判定部４０４は、画素差分算出部４２１、画素判定部４２２、カウンタ４２３、勾配法継続判定部４２４、および演算実行判定部４２５により構成される。
【０２７９】
画素差分算出部４２１は、第１空間勾配画素差分算出部４２１−１、第２空間勾配画素差分算出部４２１−２、および時間方向画素差分算出部４２１−３により構成される。
【０２８０】
第１空間勾配画素差分算出部４２１−１は、メモリ４０３から供給される対象画素値のうち、フレームｔ＋１における演算ブロック内の画素の画素値を用いて、フレームｔ＋１における演算ブロック内の画素の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙを算出し、算出されたフレームｔ＋１における演算ブロック内の画素の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙを、画素判定部４２２に出力する。
【０２８１】
第２空間勾配画素差分算出部４２１−２は、メモリ４０３から供給される対象画素値のうち、フレームｔにおける演算ブロック内の画素の画素値を用いて、フレームｔにおける演算ブロック内の画素の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙを算出し、算出されたフレームｔにおける演算ブロック内の画素の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙを、画素判定部４２２に出力する。
【０２８２】
時間方向画素差分算出部４２１−３は、メモリ４０３から供給される対象画素値（すなわち、フレームｔおよびフレームｔ＋１における演算ブロック内の画素の画素値）を用いて、フレームｔにおける演算ブロック内の画素の時間方向の画素差分Δｔを算出し、算出されたフレームｔにおける演算ブロック内の画素の時間方向の画素差分Δｔを、画素判定部４２２に出力する。
【０２８３】
画素判定部４２２は、有効画素判定部４３１、水平勾配判定部４３２、および垂直勾配判定部４３３により構成される。カウンタ４２３は、有効画素数カウンタ４４１、水平勾配無カウンタ４４２、および垂直勾配無カウンタ４４３により構成される。
【０２８４】
有効画素判定部４３１は、第１空間勾配画素差分算出部４２１−１からのフレームｔ＋１における演算ブロック内の画素の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙ、第２空間勾配画素差分算出部４２１−２からのフレームｔにおける演算ブロック内の画素の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙ、並びに、時間方向画素差分算出部４２１−３からのフレームｔ＋１およびフレームｔ間の演算ブロック内の画素の時間方向の画素差分Δｔを用いて、所定の論理演算を行う。なお、この所定の論理演算の詳細は、図２９を参照して後述する。
【０２８５】
有効画素判定部４３１は、その所定の論理演算に基づいて、演算ブロック内の画素が、動きベクトルの検出（すなわち、後段の勾配法演算部４０５の演算）に有効であるか否かを判定し、動きベクトルの検出に有効であると判定した場合、有効画素数カウンタ４４１の値（有効画素の数）を１加算するとともに、水平勾配判定部４３２および垂直勾配判定部４３３を制御し、動きベクトルの検出に有効であると判定した有効画素について、水平方向および垂直方向それぞれの勾配状態を求めさせる。
【０２８６】
水平勾配判定部４３２は、有効画素判定部４３１の制御のもと、有効画素の水平方向の勾配の状態を求め、有効画素の水平方向の勾配があるか否かを判定し、有効画素の水平方向の勾配がないと判定した場合、水平勾配無カウンタ４４２の値（水平勾配がない画素の数）を１加算する。
【０２８７】
垂直勾配判定部４３３は、有効画素判定部４３１の制御のもと、有効画素の垂直方向の勾配の状態を求め、有効画素の垂直方向の勾配があるか否かを判定し、有効画素の垂直方向の勾配がないと判定した場合、垂直勾配無カウンタ４４３の値（すなわち、水平勾配がない画素の数）を１加算する。
【０２８８】
有効画素数カウンタ４４１は、演算ブロック毎に、有効画素判定部４３１により動きベクトルの検出に有効であると判定された有効画素の数を記憶する。水平勾配無カウンタ４４２は、演算ブロック毎に、水平勾配判定部４３２により、水平方向の勾配がないと判定された有効画素の数を記憶する。垂直勾配無カウンタ４４３は、演算ブロック毎に、垂直勾配判定部４３３により、垂直方向の勾配がないと判定された有効画素の数を記憶する。
【０２８９】
勾配法継続判定部４２４は、有効画素数カウンタ４４１を参照して、演算ブロックにおける勾配法の演算に有効な画素の数が所定のしきい値αより多いか否かを判定する。勾配法継続判定部４２４は、演算ブロックにおける勾配法の演算に有効な画素の数が所定のしきい値αより多いと判定した場合、勾配法演算を実行させるカウンタフラグ（countflg＝１）を、演算実行判定部４２５、勾配法演算部４０５およびベクトル評価部１０４に出力し、演算ブロックにおける勾配法の演算に有効な画素の数が所定のしきい値αより少ないと判定した場合、勾配法演算を打ち切らせるカウンタフラグ（countflg＝０）を、演算実行判定部４２５、勾配法演算部４０５およびベクトル評価部１０４に出力する。
【０２９０】
演算実行判定部４２５は、カウンタ値演算部４５１、およびフラグ設定部４５２により構成される。
【０２９１】
カウンタ値演算部４５１は、勾配法継続判定部４２４からのカウンタフラグの値が１であるとき、カウンタ４２３（有効画素数カウンタ４４１、水平勾配無カウンタ４４２、および垂直勾配無カウンタ４４３）から、有効画素の数、水平方向に勾配のない画素の数、および垂直方向に勾配のない画素の数を取得して、演算ブロックにおける有効画素と、有効画素のうち片側勾配の画素（すなわち、水平方向または垂直方向のどちらか一方にのみ勾配がある画素）の割合を演算し、演算結果に応じて、フラグ設定部４５２が設定する勾配フラグ（gladflg）の値を制御する。
【０２９２】
フラグ設定部４５２は、カウンタ値演算部４５１の制御のもと、勾配フラグの値を設定し、勾配フラグを、勾配法演算部４０５および評価判定部４１２に出力する。勾配フラグの値については、図３１を参照して後述する。
【０２９３】
図２７は、勾配法演算部４０５の詳細な構成を示すブロック図である。図２７の例において、勾配法演算部４０５は、画素差分算出部４６１、演算判定部４６２、統合型勾配演算部４６３−１、独立型勾配演算部４６３−２、およびベクトル算出部４６４により構成される。
【０２９４】
画素差分算出部４６１は、第１空間勾配画素差分算出部４６１−１、第２空間勾配画素差分算出部４６１−２、および時間方向画素差分算出部４６１−３により構成され、演算判定部４６２の制御のもと、対象となる画素差分を算出する。
【０２９５】
第１空間勾配画素差分算出部４６１−１は、第１空間勾配画素差分算出部４２１−１と同様の構成であり、メモリ４０３から供給される対象画素値のうち、フレームｔ＋１における演算ブロック内の画素の画素値を用いて、フレームｔ＋１における演算ブロック内の画素の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙを算出し、算出されたフレームｔ＋１における演算ブロック内の画素の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙを、演算判定部４６２に出力する。
【０２９６】
第２空間勾配画素差分算出部４６１−２は、第２空間勾配画素差分算出部４２１−２と同様に構成され、メモリ４０３から供給される対象画素値のうち、フレームｔにおける演算ブロック内の画素の画素値を用いて、フレームｔにおける演算ブロック内の画素の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙを算出し、算出されたフレームｔにおける演算ブロック内の画素の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙを、演算判定部４６２に出力する。
【０２９７】
時間方向画素差分算出部４６１−３は、時間方向画素差分算出部４２１−３と同様に構成され、メモリ４０３から供給される対象画素値（すなわち、フレームｔおよびフレームｔ＋１における演算ブロック内の画素の画素値）を用いて、フレームｔにおける演算ブロック内の画素の時間方向の画素差分Δｔを算出し、算出されたフレームｔにおける演算ブロック内の画素の時間方向の画素差分Δｔを、演算判定部４６２に出力する。
【０２９８】
演算判定部４６２は、有効画素判定部４７１、水平勾配判定部４７２、および垂直勾配判定部４７３により構成される。有効画素判定部４７１は、勾配法継続判定部４２４から供給されるカウンタフラグ（countflg）の値に基づいて、勾配法演算部４０５の実行、禁止を制御する。
【０２９９】
また、有効画素判定部４７１は、演算実行判定部４２５から供給される勾配フラグ（gladflg）の値に基づいて、第１空間勾配画素差分算出部４６１−１、第２空間勾配画素差分算出部４６１−２、および時間方向画素差分算出部４６１−３の画素差分算出処理の実行、禁止を制御するとともに、統合型勾配演算部４６３−１および独立型勾配演算部４６３−２のどちらで、勾配法演算処理を行うかを判定する。
【０３００】
有効画素判定部４７１は、勾配フラグの値に基づいて、統合型勾配演算部４６３−１で勾配法演算処理を行うと判定した場合、第１空間勾配画素差分算出部４６１−１からのフレームｔ＋１における演算ブロック内の画素の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙ、第２空間勾配画素差分算出部４６１−２からのフレームｔにおける演算ブロック内の画素の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙ、並びに、時間方向画素差分算出部４６１−３からのフレームｔ＋１およびフレームｔ間の演算ブロック内の画素の時間方向の画素差分Δｔを用いて、有効画素判定部４３１と同様の所定の論理演算を行い、所定の論理演算に基づいて、演算ブロック内の画素が、動きベクトルの検出に有効であるか否かを判定し、動きベクトルの検出に有効であると判定した有効画素の勾配（画素差分）を、統合型勾配演算部４６３−１に供給し、統合型勾配法演算処理を実行させる。
【０３０１】
有効画素判定部４７１は、勾配フラグの値に基づいて、独立型勾配演算部４６３−２で勾配法演算処理を行うと判定した場合、水平勾配判定部４７２および垂直勾配判定部４７３の少なくとも一方を制御し、所定の論理演算に基づいて、演算ブロック内の画素が動きベクトルの検出に有効であると判定した有効画素について、水平方向および垂直方向それぞれの勾配状態を求めさせる。
【０３０２】
水平勾配判定部４７２は、有効画素判定部４７１の制御のもと、有効画素の水平方向の勾配の状態を求め、有効画素の水平方向の勾配があるか否かを判定し、有効画素のうち、水平方向の勾配がある画素の勾配（画素差分）のみを、独立型勾配演算部４６３−２に供給し、水平方向に対しての独立型勾配法演算処理を実行させる。
【０３０３】
垂直勾配判定部４７３は、有効画素判定部４７１の制御のもと、有効画素の垂直方向の勾配の状態を求め、有効画素の垂直方向の勾配があるか否かを判定し、有効画素のうち、垂直方向の勾配がある画素の勾配（画素差分）のみを、独立型勾配演算部４６３−２に供給し、垂直方向に対しての独立型勾配法演算処理を実行させる。
【０３０４】
統合型勾配演算部４６３−１は、有効画素判定部４７１の制御のもと、統合型勾配法演算処理を実行する。すなわち、統合型勾配演算部４６３−１は、有効画素判定部４７１により供給された有効画素の勾配（時間方向の画素差分Δｔ、水平方向の画素差分Δｘ、および、垂直方向の画素差分Δｙ）を積算し、上述した式（１４）の最小自乗和を用いて、動きベクトルｖｎを求め、求めた動きベクトルｖｎをベクトル算出部４６４に出力する。
【０３０５】
独立型勾配演算部４６３−２は、水平勾配判定部４７２の制御のもと、水平方向の独立型勾配法演算処理を実行する。すなわち、独立型勾配演算部４６３−２は、水平勾配判定部４７２により供給された有効画素のうち水平方向に勾配がある画素の勾配（時間方向の画素差分Δｔ、水平方向の画素差分Δｘ、および、垂直方向の画素差分Δｙ）を積算し、式（１４）の代わりに、後述する簡易的な数式である式（２３）を用いて、動きベクトルｖｎの水平方向成分を求め、求めた動きベクトルｖｎの水平方向成分をベクトル算出部４６４に出力する。
【０３０６】
また、独立型勾配演算部４６３−２は、垂直勾配判定部４７３の制御のもと、垂直方向の独立型勾配法演算処理を実行する。すなわち、独立型勾配演算部４６３−２は、垂直勾配判定部４７３により供給された有効画素のうち垂直方向に勾配がある画素の画素値の勾配（時間方向の画素差分Δｔ、水平方向の画素差分Δｘ、および、垂直方向の画素差分Δｙ）を積算し、式（１４）の代わりに、後述する簡易的な数式である式（２３）を用いて、動きベクトルｖｎの垂直方向成分を求め、求めた動きベクトルｖｎの垂直方向成分をベクトル算出部４６４に出力する。
【０３０７】
ベクトル算出部４６４は、セレクタ４０１からのオフセットベクトルＶｎ−１を、統合型勾配演算部４６３−１からの動きベクトルｖｎ、または、独立型勾配演算部４６３−２からの動きベクトルｖｎに加算して、動きベクトルＶｎを算出し、算出した動きベクトルＶｎをベクトル評価部１０４に出力する。
【０３０８】
図２８は、動きベクトルの検出対象となる検出対象ブロックと、その検出対象ブロックに対応する、勾配法演算の対象となる演算ブロックの他の例を示している。なお、図２８の例においては、フレームｔが示されており、フレームｔ上の丸は、画素を表している。
【０３０９】
図２８の例の場合、フレームｔ上において、４画素×４画素からなる検出対象ブロックＫ１乃至Ｋ３と、検出対象ブロックＫ１乃至Ｋ３をそれぞれ中心とした８画素×８画素の各演算ブロックＥ１乃至Ｅ３が示されている。なお、各演算ブロックＥ１乃至Ｅ３は、それぞれ隣接する演算ブロックと、構成する画素半分がオーバーラップしている。
【０３１０】
ベクトル検出部５２においては、フレーム上の左上の検出対象ブロックからラスタスキャン順に、動きベクトルの検出が実行される。したがって、フレームｔ上において、検出対象ブロックＫ１、検出対象ブロックＫ２、および、検出対象ブロックＫ３が順々に、動きベクトルの検出対象ブロックとなる。そして、これに対応して、勾配法の演算ブロックは、演算ブロックＥ１、演算ブロックＥ２、および、演算ブロックＥ３となる。すなわち、図２８の例の検出対象ブロックと演算ブロックの場合には、各演算ブロックＥ１乃至Ｅ３は、隣の演算ブロックと、構成される画素半分がオーバーラップすることになる。
【０３１１】
なお、以降においては、上述したように構成される検出対象ブロックと演算ブロックを用いて、図２５の反復勾配法演算部１０３およびベクトル評価部１０４の処理について説明するが、これらの構成の検出対象ブロックおよび演算ブロックには限定されず、検出対象ブロックは、４つの画素に限らず、例えば、１つの画素で構成されてもよいし、その他の複数の画素数であってもよい。また、図２８の例においては、検出対象ブロックと演算ブロックの画素数が異なるが、同じ画素数で構成することもできる。すなわち、演算ブロックがそのまま検出対象ブロックとなるようにも構成できる。
【０３１２】
次に、図２９を参照して、有効画素判定部４０４の有効画素判定方法を説明する。図２９の例においては、矢印Ｔは、図中、左手前の時刻ｔのフレームｔから、右奥の時刻ｔ＋１のフレームｔ＋１への時間の経過方向を示している。
【０３１３】
フレームｔ上においては、動きベクトルの検出の対象となる４画素×４画素からなる検出対象ブロックＫｔ（図中黒丸）と、検出対象ブロックＫｔを中心とした（検出対象ブロックの周囲の）８画素×８画素からなる演算ブロックＥｔが示されている。一方、フレームｔ＋１上においては、検出対象ブロックＫｔに対応する４画素×４画素からなる検出対象ブロックＫｔ＋１（図中黒丸）と、演算ブロックＥｔに対応する８画素×８画素からなる演算ブロックＥｔ＋１が示されている。なお、フレームｔ＋１上の点線のブロックは、検出対象ブロックＫｔと同位相のブロックを表しており、フレームｔ＋１上において、動きベクトルＶ（Ｖｘ，Ｖｙ）が初期ベクトルとして与えられた分だけ、点線のブロックからシフト（移動）された位置の演算ブロックＥｔ＋１が勾配法の演算の対象として用いられる。
【０３１４】
ここで、フレームｔ上の演算ブロックＥｔの画素ｐ１とフレームｔ＋１上の演算ブロックＥｔ＋１間の同位置の画素ｐ２における時間方向の画素差分（フレーム差分）をΔｔとし、このときの画枠をｗとすると、演算ブロックＥｔの画素ｐ１の水平方向の画素差分Δｘ１、垂直方向の画素差分Δｙ１、および時間方向の画素差分Δｔは、式（１６）乃至式（１８）で求められる。
【０３１５】
【数１６】
0004752407.tif 000017
・・・（１６）
【数１７】
0004752407.tif 000018
・・・（１７）
【数１８】
0004752407.tif 000019
・・・（１８）
【０３１６】
なお、Ｙｔ＋１は、時刻ｔ＋１における画素値を表し、Ｙｔは、時刻ｔにおける画素値を表し、ｋ＋１およびｋは、アドレス（位置）を表す。また、画素ｐ１に対応する演算ブロックＥｔ＋１の画素ｐ２の水平方向の画素差分Δｘ２、および垂直方向の画素差分Δｙ２も同様に求められる。
【０３１７】
有効画素判定部４０４は、これらの値を用いて、論理演算を行い、その結果に基づいて、有効画素判定を行う。すなわち、有効画素判定部４０４の有効画素判定部４３１は、演算ブロックＥｔの画素のうち、次の３つの条件式（１９）乃至（２１）のいずれかを満たす（すなわち、式（２２）を満たす）か否かを求めることにより、その画素が動きベクトル検出に有効な画素であるか否かを判定する。
【０３１８】
【数１９】
0004752407.tif 000020
・・・（１９）
【数２０】
0004752407.tif 000021
・・・（２０）
【数２１】
0004752407.tif 000022
・・・（２１）
【０３１９】
式（１９）‖式（２０）‖式（２１）                              ・・・（２２）
【０３２０】
ここで、‖は、論理和、＆＆は、論理積、・は、乗算、ｔｈ１およびｔｈ２は、それぞれ所定のしきい値を表している。なお、ｔｈ１は、例えば、１，１．５，または２とされ、ｔｈ２は、例えば、４とされる。
【０３２１】
したがって、式（１９）において、Δｘ１≠０  ＆＆  Δｘ２≠０は、画素ｐ１および画素ｐ２の水平勾配が平坦ではない（水平方向に勾配を有する）ことを表す。｜Δｘ１｜＞ｔｈ１・｜Δｙ１｜は、水平勾配が垂直勾配よりもある程度大きく、より支配的であることを表す。｜Δｔ／Δｘ１−Δｔ／Δｘ２｜＜ｔｈ２は、勾配法による（正規化した場合の）水平方向の動きが、所定のしきい値ｔｈ２より小さい、すなわち、水平方向の動きに、類似性があることを表す。以上により、式（１９）は、水平方向に着目した条件を表しており、これら全てを満たした画素は、水平方向の動きに類似性があると判定され、後段の勾配法に用いて有効であると判定される。
【０３２２】
また、式（２０）において、Δｙ１≠０  ＆＆  Δｙ２≠０は、垂直勾配が平坦ではない（垂直方向に勾配を有する）ことを表す。｜Δｙ１｜＞ｔｈ１・｜Δｘ１｜は、垂直勾配が水平勾配よりもある程度大きく、より支配的であることを表す。｜Δｔ／Δｙ１−Δｔ／Δｙ２｜＜ｔｈ２は、勾配法による（正規化した場合の）垂直方向の動きに類似性があることを表す。以上により、式（２０）は、垂直方向に着目した条件を表しており、これら全てを満たした画素は、垂直方向の動きに類似性があると判定され、後段の勾配法に用いて有効であると判定される。
【０３２３】
同様に、式（２１）において、Δｘ１≠０  ＆＆  Δｘ２≠０  ＆＆  Δｙ１≠０  ＆＆  Δｙ２≠０は、垂直および水平勾配が平坦ではない（垂直および水平方向に勾配を有する）ことを表す。｜Δｔ／Δｘ１−Δｔ／Δｘ２｜＜ｔｈ２  ＆＆  ｜Δｔ／Δｙ１−Δｔ／Δｙ２｜＜ｔｈ２は、勾配法による（正規化した場合の）垂直方向および水平方向の動きに類似性があることを表す。以上により、式（２１）は、式（１９）および（２０）を満たしていないものに対しての水平および垂直の両方向（以下、斜め方向、あるいは、垂直水平方向とも称する）に着目した条件（以下、水平垂直着目条件と称する）を表しており、これら全てを満たした画素は、水平および垂直方向の動きに類似性があると判定され、後段の勾配法に用いて有効であると判定される。
【０３２４】
なお、有効画素判定の論理演算は、各画素差分が用いられるものであれば、図２９の例に限らない。また、有効画素判定は、上述したすべての画素差分に基づいて判定されると限らず、例えば、フレームｔ上の演算ブロックＥｔの画素ｐ１とフレームｔ＋１上の演算ブロックＥｔ＋１間の同位置の画素ｐ２における時間方向の画素差分（フレーム差分）Δｔが所定の値よりも小さいか否かを判定し、小さいと判定された場合に、有効画素であると判定することもできる。
【０３２５】
図３０は、演算ブロックにおける画素の構成例を示している。図３０の例においては、４画素×４画素からなる検出対象ブロックＫを中心とする８画素×８画素（６４画素）からなる演算ブロックＥ内において、上述した式（２２）を満たし、有効画素として判定された画素（図中白丸）と、式（２２）を満たさず、勾配法の演算対象とされない画素（図中黒丸）が示されている。
【０３２６】
したがって、有効画素判定部４０４は、式（２２）を用いて、演算ブロックＥｔ内の各画素について、水平方向、垂直方向、または斜め方向のいずれかの動きに対して類似性があるか否かを判定する。そして、有効画素判定部４０４は、水平方向、垂直方向、または斜め方向のどの動きに対しても類似性があると判定した画素、すなわち、有効画素として判定された画素の数が、５０％であるか（全６４画素中３２画素より多いか）否かを判定し、有効画素として判定された画素が５０％以下の場合は、演算ブロックでの演算は不安定であるとし、例えば、演算を打ち切るための処理を行う。なお、有効画素数カウンタのしきい値を５０％としたが、この値は、もちろん他の値であってもよい。
【０３２７】
これにより、類似性があまりなく、異なる動きの画素の混在を少しでも防ぐことができるので、安定した勾配法演算を行うことができる。この結果、勾配法演算により求められる動きベクトルの確からしさが向上し、動きベクトル検出の精度が向上する。
【０３２８】
一方、有効画素として判定された画素が５０％より多い場合、勾配法演算部４０５は、さらに、式（２２）を用いて、演算ブロックＥｔ内の各画素について、水平方向、垂直方向、または斜め方向のいずれかの動きに対して類似性があるか否かを判定し、水平方向、垂直方向、または斜め方向のどの動きに対しても類似性がないと判定した画素を、勾配法演算の対象から外し、演算ブロックＥ内において、有効画素として判定された画素のみ（３４画素）を用いて、勾配法演算を行う。
【０３２９】
これにより、水平方向、垂直方向、または斜め方向のいずれかの動きに対して類似性がある画素のみで、勾配法演算が実行されるため、異なる動きが混入することが抑制され、より安定した勾配法演算が実行され、その結果、確からしい動きベクトルが検出される。
【０３３０】
なお、上述した有効画素判定方法においては、水平方向および垂直方向に勾配が存在する通常の領域（以下、通常勾配領域と称する）と、水平方向および垂直方向のどちらか片側にのみ勾配が存在する領域（以下、片側勾配領域）が区別されることなく、勾配法演算が行われている。したがって、実用上においては、特に、片側勾配領域における動きベクトルの検出精度が著しく低下してしまうことがある。
【０３３１】
次に、図３１を参照して、片側勾配領域について説明する。図３１の例においては、矢印Ｔは、図中、左手前の時刻ｔのフレームｔから、右奥の時刻ｔ＋１のフレームｔ＋１への時間の経過方向を示している。
【０３３２】
フレームｔおよびフレームｔ＋１上のラインＬは、輝度値ｅの画素からなる領域（白の領域）と、輝度値ｅとは異なる値の輝度値ｆの画素からなる領域（ハッチング領域）の境界を示している。
【０３３３】
フレームｔのラインＬ上には、動きベクトルの検出の対象となる４画素×４画素からなる演算ブロックＥｔが示されている。なお、図３１の例において、検出対象ブロックは省略する。一方、フレームｔ＋１上においては、演算ブロックＥｔに対応する４画素×４画素からなる演算ブロックＥｔ＋１が示されている。また、フレームｔ＋１上の点線のブロックは、演算ブロックＥｔと同位相のブロックを表しており、フレームｔ＋１上には、点線のブロックから、勾配法演算が繰り返され、最終的に、演算ブロックＥｔ＋１が勾配法の演算の対象として用いられて検出された動きベクトルＶ（Ｖｘ，Ｖｙ）が示されている。
【０３３４】
このフレームｔにおいては、右側に拡大されるように、演算ブロックＥｔの左２列の画素（画素ｐ００，画素ｐ１０，画素ｐ２０，および画素ｐ３０と、画素ｐ０１，画素ｐ１１，画素ｐ２１，および画素ｐ３１）は、すべて同じ輝度値ｅであり、演算ブロックＥｔの右２列の画素（画素ｐ０２，画素ｐ１２，画素ｐ２２，および画素ｐ３２と、画素ｐ０３，画素ｐ１３，画素ｐ２３，および画素ｐ３３）は、すべて同じ輝度値ｆである。
【０３３５】
すなわち、演算ブロックＥｔにおいては、例えば、画素ｐ０１と画素ｐ００との間、および画素ｐ０１と画素ｐ１１との間や、画素ｐ０２と画素ｐ０３との間、および画素ｐ０２と画素ｐ１２との間など、同じ領域内の画素同士の間には勾配がないが、画素ｐ０１と画素ｐ０２の間、画素ｐ１１と画素ｐ１２の間、画素ｐ２１と画素ｐ２２の間、および画素ｐ３１と画素ｐ３２の間に勾配がある。
【０３３６】
したがって、フレームｔ上の演算ブロックＥｔ内には、水平方向の勾配のみがあり、垂直方向の勾配はないので、勾配法の原理から、フレームｔ＋１上において、動きベクトルＶのうち、水平方向の動きは、検出することができるが、垂直方向の動きを検出することはできない。
【０３３７】
ここで、このように構成される片側勾配領域の演算ブロックＥｔにおいて、上述した有効画素判定方法のみを用いた場合、境界部分にある画素（画素ｐ０１，画素ｐ１１，画素ｐ２１，および画素ｐ３１、並びに画素ｐ０２，画素ｐ１２，画素ｐ２２，および画素ｐ３２）については、上述した水平方向に着目した条件である式（１９）を満たすことで、有効画素であると判定される。
【０３３８】
しかしながら、実際に、このような水平方向のみに勾配を有する画素を多く含む演算ブロックにおいて、式（１４）を用いた勾配法演算が行われてしまうと、その結果、本来検出されないはずの垂直方向の動きベクトル（すなわち、誤った動きベクトル）が検出されてしまう恐れがある。
【０３３９】
すなわち、実際には、フレームｔ＋１のラインＬ上において、演算ブロックＥｔ＋１よりも上または下の位置のブロックが演算対象として用いられて検出される動きベクトルが最適な動きベクトルである可能性もあるにも拘わらず、フレームｔ＋１上において、点線のブロックから、勾配法演算が繰り返され、最終的に、演算ブロックＥｔ＋１が勾配法の演算の対象として用いられて算出された動きベクトルＶ（Ｖｘ，Ｖｙ）が、最適な動きベクトルとして評価されて、検出されてしまう恐れがある。
【０３４０】
そこで、有効画素判定部４０４は、有効画素判定後に、さらに、各画素の水平および垂直方向毎の勾配状態に基づく、勾配法実行判定を行い、その判定結果に応じて、勾配法演算部４０５に、式（１４）を用いての統合型勾配法演算、および式（１４）を簡易的にした次の式（２３）を用いての独立型勾配法演算のどちらかに切り替えさせ、動きベクトルを算出させる。
【０３４１】
【数２２】
0004752407.tif 000023
・・・（２３）
【０３４２】
この式（２３）を用いての独立型勾配法演算は、動きベクトルの水平方向成分を求める場合には、演算対象の画素の垂直勾配を用いず、動きベクトルの垂直方向成分を求める場合には、演算対象の画素の水平勾配を用いていない。すなわち、各方向成分毎にそれぞれの勾配を使用して動きを検出することができるので、水平勾配または垂直勾配しかない片側勾配領域においても、確からしい動きベクトルをすることが可能になり、動きベクトルの検出精度の向上が可能になる。
【０３４３】
また、この独立型勾配法演算は、式（１４）の統合型勾配法演算に較べて演算負荷が小さく、ハードウェアへの実装が容易である。
【０３４４】
次に、有効画素判定後に実行される勾配法実行判定について説明する。
【０３４５】
有効画素判定部４０４は、演算ブロックのうち、上述した有効画素判定処理により有効画素であると判定された画素に対して、さらに、水平方向の勾配の有無と、垂直方向の勾配の有無をそれぞれ判定し、有効画素判定処理により得られる有効画素の数（cnt_t）、水平方向に勾配のない画素の数(ngcnt_x)、および垂直方向に勾配のない画素の数(ngcnt_y)を取得し、これらの値を用いた次の式（２４）乃至式（２６）を用いて、勾配法実行判定処理を行う。
【０３４６】
【数２３】
0004752407.tif 000024
・・・（２４）
【数２４】
0004752407.tif 000025
・・・（２５）
【数２５】
0004752407.tif 000026
・・・（２６）
【０３４７】
ここで、pxl_aは、演算ブロック内の全画素数を表しており、・は、乗算、ｔｈ３は、１未満の所定のしきい値を表している。
【０３４８】
まず、式（２４）を満たすと判定された場合、有効画素の中に、水平方向および垂直方向の勾配を持つ（通常の勾配がある）ものが適切に存在する状態だと考えられる。そこで、有効画素判定部４０４は、勾配フラグ（gladflg＝４）を設定し、勾配法演算部４０５に、式（１４）を用いての統合型勾配法演算を実行させる。
【０３４９】
これに対応して、勾配法演算部４０５は、勾配フラグ（gladflg＝４）の場合、有効画素を勾配法演算の対象として、式（１４）を用いての統合型勾配法演算を実行する。
【０３５０】
なお、勾配フラグ（gladflg＝４）の場合、ベクトル評価部１０４は、統合型勾配法演算の結果の動きベクトルとオフセットベクトルの評価値ｄｆｖを比較し、評価値ｄｆｖが小さいと判定された方を、信頼度が高いと評価し、評価結果に応じて、動きベクトルを修正（変更）する。また、ベクトル評価部１０４は、統合型勾配法演算の結果の動きベクトルの信頼度が高い場合、かつ、反復回数が最大回数を満たしていない場合のみ、反復勾配演算処理を繰り返すと判定する。
【０３５１】
式（２４）を満たさず、式（２５）および式（２６）を満たすと判定された場合、有効画素の中に、水平方向および垂直方向のどちらかに勾配がない画素が相当数含まれていることが考えられる。そこで、有効画素判定部４０４は、勾配フラグ（gladflg＝０）を設定し、勾配法演算部４０５に、水平および垂直方向毎に、式（２３）を用いての独立型勾配法演算を実行させ、水平および垂直方向毎の演算結果を合わせて、その演算結果とさせる。このときの方向成分毎の勾配法演算には、対応する方向に勾配が存在する有効画素のみが使用される。
【０３５２】
これに対応して、勾配法演算部４０５は、勾配フラグ（gladflg＝０）の場合、有効画素のうち水平勾配を有する画素を勾配法演算の対象として、式（２３）を用いての水平方向の独立型勾配法演算を実行するとともに、有効画素のうち垂直勾配を有する画素を勾配法演算の対象として、式（２３）を用いての垂直方向の独立型勾配法演算を実行する。
【０３５３】
式（２４）を満たさず、式（２５）のみを満たすと判定された場合、有効画素の中に、垂直方向に勾配がない画素が相当数含まれていることが考えられる。そこで、有効画素判定部４０４は、勾配フラグ（gladflg＝１）を設定し、勾配法演算部４０５に、垂直方向の動きに関しては演算を行わせず、動き無し（０ベクトル）とさせ、水平方向の動きのみに対して、式（２３）を用いての勾配法演算を実行させる。このときの勾配法演算には、水平方向に勾配が存在する有効画素のみが使用される。
【０３５４】
これに対応して、勾配法演算部４０５は、勾配フラグ（gladflg＝１）の場合、有効画素のうち水平勾配を有する画素を勾配法演算の対象として、式（２３）を用いての水平方向の独立型勾配法演算を実行する。
【０３５５】
式（２４）を満たさず、式（２６）のみを満たすと判定された場合、有効画素の中に、水平方向に勾配がない画素が多く含まれていることが考えられる。そこで、有効画素判定部４０４は、勾配フラグ（gladflg＝２）を設定し、勾配法演算部４０５に、水平方向の動きに関しては演算を行わせず、動き無し（０ベクトル）とさせ、垂直方向の動きのみに対して、式（２３）を用いての勾配法演算を実行させる。このときの勾配法演算には、垂直方向に勾配が存在する有効画素のみが使用される。
【０３５６】
これに対応して、勾配法演算部４０５は、勾配フラグ（gladflg＝２）の場合、有効画素のうち垂直勾配を有する画素を勾配法演算の対象として、式（２３）を用いての垂直方向の独立型勾配法演算を実行する。
【０３５７】
なお、勾配フラグ（gladflg＝０，１，２）の場合、ベクトル評価部１０４においては、独立型勾配法演算の結果の動きベクトルと０ベクトルの評価値ｄｆｖが比較され、評価値ｄｆｖが小さいと判定された方が、信頼度が高いと評価され、評価結果に応じて、動きベクトルが修正（変更）される。さらに、この場合、ベクトル評価部１０４においては、反復勾配演算処理は繰り返されない。
【０３５８】
式（２４）乃至式（２６）を満たさないと判定された場合、演算ブロック内に、有効と判定された画素が少なく、勾配法演算を行うことが困難な状態であると考えられる。そこで、有効画素判定部４０４は、勾配フラグ（gladflg＝３）を設定し、勾配法演算部４０５に、演算を行わせず、動き無し（０ベクトル）とさせる。
【０３５９】
これに対応して、勾配法演算部４０５は、勾配フラグ（gladflg＝０）の場合、勾配法演算処理を実行せず、ベクトル評価部１０４においては、評価値ｄｆｖの比較はなされず、反復勾配演算処理は繰り返されない。
【０３６０】
以上のように、式（２４）乃至式（２６）を用いて、勾配法実行判定処理を行い、判定結果に応じて、勾配法演算を切り替えるようにしたので、片側勾配領域においても、確からしい動きベクトルを検出することが可能になり、動きベクトルの検出精度の向上が可能になる。また、独立型勾配法演算において、対象方向に勾配がある有効画素のみを用いて、その方向成分の動きベクトルを求めたり、勾配がない画素が多い方向成分の動きベクトルを０ベクトルにするようにしたので、さらに、確からしい動きベクトルをすることが可能になる。
【０３６１】
さらに、勾配法実行判定処理の結果に応じて、勾配法演算の制御だけでなく、ベクトル評価と評価結果に応じた動きベクトルの変更、および、勾配法演算の反復判定も行うようにしたので、演算負荷の低減や、動きベクトルの検出精度のさらなる向上が可能になる。
【０３６２】
次に、図３２のフローチャートを参照して、反復勾配法演算処理の例を説明する。前段よりセレクタ４０１に初期ベクトルＶ０が入力される。
【０３６３】
セレクタ４０１は、ステップＳ３０１において、オフセットベクトルＶｎ−１を選択し、選択したオフセットベクトルＶｎ−１を、メモリ制御信号生成部４０２、勾配法演算部４０５、および評価値演算部６１Ｂに出力する。
【０３６４】
なお、セレクタ４０１は、初期ベクトル選択部１０１からの初期ベクトルＶ０が入力された場合、入力された初期ベクトルＶ０を、オフセットベクトルＶｎ−１として選択し、遅延部４０６から、勾配法演算部４０５により演算され、評価判定部４１２により評価された結果の動きベクトルＶが入力された場合、動きベクトルＶを、オフセットベクトルＶｎ−１として選択する。
【０３６５】
メモリ制御信号生成部４０２には、信号処理装置１の図示せぬ制御部から、処理の開始タイミングと位置情報を制御する制御信号と、セレクタ４０１からのオフセットベクトルを入力される。メモリ制御信号生成部４０２は、ステップＳ３０２において、制御信号およびセレクタ４０１からのオフセットベクトルＶｎ−１に応じて、メモリ４０３に記憶されている時刻ｔの画像のフレームｔと、時刻ｔ＋１の画像のフレームｔ＋１から、処理の対象となる演算ブロックの対象画素値を読み出させ、読み出した対象画素値を、有効画素判定部４０４および勾配法演算部４０５に供給させる。
【０３６６】
有効画素判定部４０４は、メモリ４０３から供給される対象画素値を入力すると、ステップＳ３０３において、有効画素判定処理を実行する。この有効画素判定処理は、図３３を参照して詳しく後述する。
【０３６７】
ステップＳ３０３の有効画素判定処理により、メモリ４０３から供給される対象画素値を用いて、フレームｔとフレームｔ＋１の演算ブロックの画素差分が演算されることで、演算ブロックに、勾配法の演算に有効な有効画素の数が、有効画素数カウンタ４４１にカウントされる。また、演算ブロックにおいて有効な画素と判定された有効画素について、水平方向および垂直方向それぞれの勾配状態が求められ、水平勾配が無い画素の数と垂直勾配が無い画素の数が、それぞれ、水平勾配無カウンタ４４２および垂直勾配無カウンタ４４３にカウントされる。
【０３６８】
勾配法継続判定部４２４は、ステップＳ３０４において、有効画素数カウンタ４４１に記憶されている値（有効画素の数）が所定のしきい値αより多いか否かを判定する。ステップＳ３０４において、有効画素の数が所定のしきい値αより多いと判定された場合、勾配法継続判定部４２４により、演算実行判定部４２５、勾配法演算部４０５およびベクトル評価部１０４に、勾配法演算を実行させるカウンタフラグ(countflg＝１)が出力され、処理は、ステップＳ３０５に進む。
【０３６９】
勾配法継続判定部４２４からカウンタフラグ(countflg＝１)が入力されると、演算実行判定部４２５は、ステップＳ３０５において、勾配法実行判定処理を実行する。この勾配法実行判定処理は、図３５を参照して詳しく後述する。
【０３７０】
ステップＳ３０５の勾配法実行判定処理により、有効画素数カウンタ４４１の有効画素の数、水平勾配無カウンタ４４２の水平勾配が無い画素の数、および垂直勾配無カウンタ４４３の垂直勾配が無い画素の数が参照されて、有効画素における片側勾配の画素の数が多いか否かが判定され、その判定結果に応じて、勾配法演算部４０５が行う勾配法演算処理を、統合型勾配法演算処理および独立型勾配法演算処理のどちらかに切り替えるための勾配フラグ(gladflg)が設定され、設定された勾配フラグが、勾配法演算部４０５および評価判定部４１２に出力され、処理は、ステップＳ３０６に進む。
【０３７１】
一方、勾配法継続判定部４２４からカウンタフラグ(countflg＝１)が入力され、演算実行判定部４２５から勾配フラグが入力されると、勾配法演算部４０５は、ステップＳ３０６において、勾配法演算処理を実行する。この勾配法演算処理は、図３６を参照して詳しく後述する。
【０３７２】
ステップＳ３０６の勾配法演算処理により、演算実行判定部４２５からの勾配フラグに応じて、有効画素を用いての統合型勾配法演算処理、または、有効画素のうち、水平方向に勾配がある画素を用いての水平方向の独立型勾配法演算処理および垂直方向に勾配がある画素を用いての垂直方向の独立型勾配法演算処理のうちの少なくともどちらか一方が実行され、動きベクトルＶｎが求められ、求められた動きベクトルＶｎがベクトル評価部１０４に出力され、処理は、ステップＳ３０７に進む。
【０３７３】
ベクトル評価部１０４は、ステップＳ３０７において、ベクトル評価処理を実行する。このベクトル評価処理は、図３９を参照して詳しく後述する。
【０３７４】
ステップＳ３０７のベクトル評価処理により、勾配フラグに応じて、勾配法演算部４０５から動きベクトルＶｎ、オフセットベクトルＶｎ−１、および０ベクトルの評価値ｄｆｖが求められ、演算実行判定部４２５から勾配フラグに基づいて、動きベクトルＶｎと、オフセットベクトルＶｎ−１または０ベクトルの評価値ｄｆｖが比較され、比較結果に応じて動きベクトルＶが求められる。例えば、動きベクトルＶｎとオフセットベクトルＶｎ−１の評価値ｄｆｖが比較され、動きベクトルＶｎの評価値の信頼度が高いとされた場合、動きベクトルＶｎは、動きベクトルＶとされて、勾配法演算の反復回数は１カウントされる。
【０３７５】
ベクトル評価部１０４は、また、ステップＳ３０８において、演算実行判定部４２５から勾配フラグおよび勾配法演算の反復回数に基づいて、勾配法演算を反復するか否かを判定する。
【０３７６】
すなわち、ベクトル評価部１０４は、勾配フラグが、統合型勾配法演算処理を実行させるフラグ（すなわち、勾配フラグ（gladflg＝４）であり、かつ、勾配法演算の反復回数が設定された最大反復回数（例えば、２回）になっていない場合、ステップＳ３０８において、勾配法演算を反復すると判定し、求められた動きベクトルＶを、遅延部４０６に出力する。
【０３７７】
遅延部４０６は、ベクトル評価部１０４から入力される動きベクトルＶを、有効画素判定部４０４および勾配法演算部４０５の次の処理のサイクルまで保持し、次の処理のサイクルで、動きベクトルＶをセレクタ４０１に出力する。これにより、処理は、ステップＳ３０１に戻り、それ以降の処理が繰り返される。
【０３７８】
また、ベクトル評価部１０４は、勾配フラグが、統合型勾配法演算処理を実行させるフラグ以外であった場合、または、勾配法演算の反復回数が設定された最大反復回数（例えば、２回）になった場合、ステップＳ３０８において、勾配法演算を反復しない、すなわち、勾配法演算を終了すると判定する。ベクトル評価部１０４は、ステップＳ３１０において、求められた動きベクトルＶを、検出対象ブロックに対応させて、検出ベクトルメモリ５３に記憶させ、反復勾配法処理を終了する。なお、このとき、動きベクトルＶおよびその評価値ｄｆｖは、シフト初期ベクトル割付部１０５にも出力される。
【０３７９】
一方、ステップＳ３０４において、有効画素数が所定のしきい値αより少ないと判定された場合、勾配法継続判定部４２４により、演算実行判定部４２５、勾配法演算部４０５および評価値判定部４１２に、勾配法演算を打ち切らせるカウンタフラグ(countflg＝０)が出力され、処理は、ステップＳ３０９に進む。
【０３８０】
演算実行判定部４２５および勾配法演算部４０５は、勾配法継続判定部４２４からのカウンタフラグの値が０の場合、勾配法演算を実行せず、評価値判定部４１２は、ステップＳ３０９において、０ベクトルを、動きベクトルＶとして、ステップＳ３１０において、動きベクトルＶを、検出対象ブロックに対応させて、検出ベクトルメモリ５３に記憶させる。なお、このときも、０ベクトルである動きベクトルＶおよびその評価値ｄｆｖは、シフト初期ベクトル割付部１０５にも出力される。
【０３８１】
以上により、反復勾配法演算処理が終了され、シフト初期ベクトル割付部１０５により、動きベクトルＶおよびその評価値ｄｆｖが用いられて、シフト初期ベクトル割付処理が実行され、検出ベクトルメモリ５３に記憶された動きベクトルＶは、後段のベクトル割付部５４により用いられる。
【０３８２】
以上のように、有効画素判定だけでなく、有効画素内の各方向の勾配の有無も判定し、有効画素内の片側勾配の画素の割合に応じて、勾配法演算方法の切り替え、ベクトル評価の評価（比較）対象、および、勾配法の反復判定などを行うようにしたので、通常勾配領域だけでなく、片側勾配領域であっても、確からしい動きベクトルが検出されるとともに、必要以上の演算負荷が軽減される。
【０３８３】
また、ベクトル評価部１０４において、有効画素内の片側勾配の画素の割合に応じて、動きベクトルＶｎ、オフセットベクトルＶｎ−１、および０ベクトルなどの評価値ｄｆｖを求め、評価値ｄｆｖが小さい、すなわち、信頼度が高いとされる動きベクトルを選択するようにしたので、光源の移動や影の通過などにより、動きを持つ物体の平均輝度レベルが大きく変化する場合であっても、後段のベクトル割付に最適な動きベクトルを与えることができ、その結果、後段のベクトル割付の精度も向上させることができる。
【０３８４】
次に、図３３のフローチャートを参照して、図３２のステップＳ３０３の有効画素判定処理の詳細を説明する。
【０３８５】
有効画素判定部４０４の画素差分算出部４２１は、メモリ４０３から供給される演算ブロックの対象画素値を入力すると、ステップＳ３２１において、画素判定部４２２の各部（有効画素判定部４３１、水平勾配判定部４３２、および垂直勾配判定部４３３）を制御し、各カウンタ（有効画素数カウンタ４４１、水平勾配無カウンタ４４２、および垂直勾配無カウンタ４４３）の値をリセットさせる。
【０３８６】
画素差分算出部４２１の各部（第１空間勾配画素差分算出部４２１−１、第２空間勾配画素差分算出部４２１−２、および時間方向画素差分算出部４２１−３）は、ステップＳ３２２において、演算ブロック内の画素を１つ選択し、ステップＳ３２３において、有効画素演算処理を実行する。この有効画素演算処理は、図３４のフローチャートを参照して説明する。
【０３８７】
時間方向画素差分算出部４２１−３は、ステップＳ３５１において、演算ブロック内における、選択した画素のフレームｔ＋１およびフレームｔ間の時間方向の画素差分Δｔを算出し、算出された画素のフレームｔ＋１およびフレームｔ間の時間方向の画素差分Δｔを、画素判定部４２２に出力する。
【０３８８】
第１空間勾配画素差分算出部４２１−１は、ステップＳ３５２において、演算ブロック内における、選択した画素のフレームｔ＋１上の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙを算出し、算出された画素のフレームｔ＋１上の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙを、画素判定部４２２に出力する。
【０３８９】
第２空間勾配画素差分算出部４２１−２は、ステップＳ３５３において、演算ブロック内における、選択した画素のフレームｔ上の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙを算出し、算出された画素のフレームｔ上の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙを、画素判定部４２２に出力する。
【０３９０】
画素判定部４２２の有効画素判定部４３１は、ステップＳ３５４において、第１空間勾配画素差分算出部４２１−１からの選択した画素のフレームｔ＋１上の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙ、第２空間勾配画素差分算出部４２１−２からの選択した画素のフレームｔ上の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙ、並びに、時間方向画素差分算出部４２１−３からの選択した画素のフレームｔ＋１およびフレームｔ間の時間方向の画素差分Δｔを用いて、水平方向の着目条件である式（１９）、垂直方向の着目条件である式（２０）、および、水平垂直方向の着目条件である式（２１）の論理演算を行う。その後、処理は、図３３のステップＳ３２３に戻り、ステップＳ３２４に進む。
【０３９１】
ステップＳ３２４において、有効画素判定部４３１は、上述した３つの式の論理和（すなわち、式（２２）を求め、式（２２）が真であるか否か）に基づいて、選択された画素が有効画素であるか否かを判定する。したがって、上述した式（１９）乃至式（２１）のうち、いずれか１つの式を満たす場合、有効画素判定部４３１は、ステップＳ３２４において、その画素は有効画素であると判定し、ステップＳ３２５において、有効画素数カウンタ４４１の有効画素の数を１加算する。
【０３９２】
水平勾配判定部４３２は、有効画素判定部４３１の制御のもと、ステップＳ３２６において、有効画素判定部４３１により有効画素であると判定された画素の水平方向の勾配の状態を求め、有効画素の水平方向の勾配があるか否かを判定し、有効画素の水平方向の勾配がないと判定した場合、ステップＳ３２７において、水平勾配無カウンタ４４２の水平勾配がない画素の数を１加算する。ステップＳ３２６において、有効画素の水平方向の勾配があると判定された場合、処理は、ステップＳ３２７をスキップし、ステップＳ３２８に進む。
【０３９３】
垂直勾配判定部４３３は、有効画素判定部４３１の制御のもと、ステップＳ３２８において、有効画素判定部４３１により有効画素であると判定された画素の垂直方向の勾配の状態を求め、有効画素の垂直方向の勾配があるか否かを判定し、有効画素の垂直方向の勾配がないと判定した場合、ステップＳ３２９において、垂直勾配無カウンタ４４３の垂直勾配がない画素の数を１加算する。ステップＳ３２８において、有効画素の垂直方向の勾配があると判定された場合、処理は、ステップＳ３２９をスキップし、ステップＳ３３０に進む。
【０３９４】
ステップＳ３３０において、画素差分算出部４２１は、演算ブロック内のすべての画素の処理が終了したか否かを判定する。ステップＳ３３０において、演算ブロック内のすべての画素の処理が終了したと判定された場合、有効画素数判定処理は終了され、処理は、図３２のステップＳ３０３に戻り、ステップＳ３０４に進む。
【０３９５】
ステップＳ３２４において、上述した式（１９）乃至式（２１）のいずれの式も満たさず、選択された画素は有効画素ではないと判定された場合、または、ステップＳ３３０において、演算ブロック内のすべての画素の処理がまだ終了していないと判定された場合、処理は、ステップＳ３２２に戻り、それ以降の処理が繰り返される。
【０３９６】
以上のようにして、有効画素数カウンタ４４１には、演算ブロック内において有効であると判定された有効画素の数、水平勾配無カウンタ４４２には、有効画素のうち、水平勾配がないと判定された画素の数、および垂直勾配無カウンタ４４３には、有効画素のうち、垂直勾配がないと判定された画素の数が記憶される。
【０３９７】
次に、図３５のフローチャートを参照して、図３２のステップＳ３０５の勾配法実行判定処理を詳しく説明する。図３５の勾配法実行判定処理は、図３４を参照して上述したように画素の数が記憶された各カウンタに基づいて、演算実行判定部４２５により実行される処理である。
【０３９８】
演算実行判定部４２５のカウンタ値演算部４５１は、有効画素数カウンタ４４１から、有効画素の数（cnt_t）、水平勾配無カウンタ４４２から、水平方向に勾配のない画素の数(ngcnt_x)、および垂直勾配無カウンタ４４３から、垂直方向に勾配のない画素の数(ngcnt_y)を取得し、ステップＳ３８１において、式（２４）を満たすか否かを判定する。
【０３９９】
ステップＳ３８１において、式（２４）を満たすと判定された場合、有効画素の中に、水平方向および垂直方向の勾配を持つ画素が適切に存在すると考えられる。したがって、フラグ設定部４５２は、ステップＳ３８２において、勾配フラグの値を、式（１４）を用いての統合型勾配法演算処理を行わせる「４」に設定し、勾配フラグ（gladflg＝４）を、勾配法演算部４０５および評価判定部４１２に出力し、勾配法実行判定処理を終了する。そして、処理は、図３２のステップＳ３０５に戻り、ステップＳ３０６に進み、勾配フラグ（gladflg＝４）に応じた勾配法演算処理が実行される。
【０４００】
ステップＳ３８１において、式（２４）を満たさないと判定された場合、カウンタ値演算部４５１は、ステップＳ３８３において、式（２５）かつ式（２６）を満たすか否かを判定する。ステップＳ３８３において、式（２５）かつ式（２６）を満たすと判定された場合、有効画素の中に、水平方向および垂直方向のどちらかに勾配がない画素が相当数含まれていると考えられる。したがって、フラグ設定部４５２は、ステップＳ３８４において、勾配フラグの値を、水平および垂直方向毎に、式（２３）を用いての独立型勾配法演算処理を行わせる「０」に設定し、勾配フラグ（gladflg＝０）を、勾配法演算部４０５および評価判定部４１２に出力し、勾配法実行判定処理を終了する。そして、処理は、図３２のステップＳ３０５に戻り、ステップＳ３０６に進み、勾配フラグ（gladflg＝０）に応じた勾配法演算処理が実行される。
【０４０１】
ステップＳ３８３において、式（２５）かつ式（２６）を満たさないと判定された場合、カウンタ値演算部４５１は、ステップＳ３８５において、式（２５）を満たすか否かを判定する。ステップＳ３８５において、式（２５）を満たすと判定された場合、有効画素の中に、垂直方向に勾配がない画素が多く含まれていると考えられる。したがって、フラグ設定部４５２は、ステップＳ３８６において、勾配フラグの値を、水平方向に対しての、式（２３）を用いての独立型勾配法演算処理を行わせる「１」に設定し、勾配フラグ（gladflg＝１）を、勾配法演算部４０５および評価判定部４１２に出力し、勾配法実行判定処理を終了する。そして、処理は、図３２のステップＳ３０５に戻り、ステップＳ３０６に進み、勾配フラグ（gladflg＝１）に応じた勾配法演算処理が実行される。
【０４０２】
ステップＳ３８５において、式（２５）を満たさないと判定された場合、カウンタ値演算部４５１は、ステップＳ３８７において、式（２６）を満たすか否かを判定する。ステップＳ３８７において、式（２６）を満たすと判定された場合、有効画素の中に、水平方向に勾配がない画素が多く含まれていると考えられる。したがって、フラグ設定部４５２は、ステップＳ３８８において、勾配フラグの値を、垂直方向に対しての、式（２３）を用いての独立型勾配法演算処理を行わせる「２」に設定し、勾配フラグ（gladflg＝２）を、勾配法演算部４０５および評価判定部４１２に出力し、勾配法実行判定処理を終了する。そして、処理は、図３２のステップＳ３０５に戻り、ステップＳ３０６に進み、勾配フラグ（gladflg＝２）に応じた勾配法演算処理が実行される。
【０４０３】
ステップＳ３８７において、式（２６）を満たさないと判定された場合、有効と判定された画素が少ないと考えられる。したがって、フラグ設定部４５２は、ステップＳ３８９において、勾配フラグの値を、勾配法演算処理を禁止させる「３」に設定し、勾配フラグ（gladflg＝３）を、勾配法演算部４０５および評価判定部４１２に出力し、勾配法実行判定処理を終了する。そして、処理は、図３２のステップＳ３０５に戻り、ステップＳ３０６に進み、勾配フラグ（gladflg＝３）に応じた勾配法演算処理が実行される。
【０４０４】
以上のようにして、演算ブロックの勾配状態（すなわち、有効画素の数、有効画素のうち、水平勾配がない画素の数、および有効画素のうち、垂直勾配がない画素の数）に応じた勾配フラグが、勾配法演算部４０５および評価判定部４１２に出力される。
【０４０５】
次に、図３６のフローチャートを参照して、勾配法演算部４０５により実行される、図３２のステップＳ３０６の勾配法演算処理を詳しく説明する。
【０４０６】
演算判定部４６２の有効画素判定部４７１には、勾配法継続判定部４２４からのカウンタフラグ（countflg＝１）と、フラグ設定部４５２からの勾配フラグが入力されている。有効画素判定部４７１は、カウンタフラグが１である場合、図３６の勾配法演算処理を開始する。
【０４０７】
有効画素判定部４７１は、ステップＳ４０１において、勾配フラグの値が３であるか否かを判定し、勾配フラグの値が３ではないと判定した場合、ステップＳ４０２において、勾配フラグの値が４であるか否かを判定する。
【０４０８】
有効画素判定部４７１は、ステップＳ４０２において、勾配フラグの値が４であると判定した場合、ステップＳ４０３において、勾配法演算部４０５の各部を制御し、統合型勾配法演算処理を実行させる。この統合型勾配法演算処理は、図３７のフローチャートを参照して後述する。
【０４０９】
ステップＳ４０３の統合型勾配法演算処理により、有効画素が勾配法演算の対象とされ、有効画素の水平方向の画素差分Δｘ、垂直方向の画素差分Δｙ、および時間方向の画素差分Δｔが積算されて、積算された勾配と式（１４）の最小自乗和を用いて、動きベクトルｖｎが求められて、ベクトル算出部４６４に出力される。
【０４１０】
ベクトル算出部４６４は、ステップＳ４０４において、セレクタ４０１からのオフセットベクトルＶｎ−１に、統合型勾配演算部４６３−１により求められた動きベクトルｖｎを加算し、オフセットベクトルＶｎ−１に動きベクトルｖｎが加算された動きベクトルＶｎをベクトル評価部１０４に出力する。
【０４１１】
ステップＳ４０４において、ベクトル算出部４６４により算出された動きベクトルＶｎは、ベクトル評価部１０４に出力され、勾配法演算処理は終了され、処理は、図３２のステップＳ３０６に戻り、ステップＳ３０７に進む。
【０４１２】
また、ステップＳ４０２において、勾配フラグの値が４ではないと判定された場合、有効画素判定部４７１は、ステップＳ４０５において、勾配フラグの値が２であるか否かを判定する。ステップＳ４０５において、勾配フラグの値が２であると判定された場合、有効画素の中に、水平方向に勾配がない画素が多く含まれていると考えられるので、処理は、ステップＳ４０６をスキップし、ステップＳ４０７に進む。
【０４１３】
すなわち、この場合、水平方向に勾配がない画素以外の有効画素を用いて、動きベクトルの水平方向成分を求めても確からしくないので、水平方向の独立型勾配法演算処理は実行されない。
【０４１４】
有効画素判定部４７１は、ステップＳ４０５において、勾配フラグの値が２ではない（すなわち、勾配フラグの値は、０か１である）と判定した場合、ステップＳ４０６において、水平勾配判定部４７２を制御し、水平方向の独立型勾配法演算処理を実行させる。この水平方向の独立型勾配法演算処理は、図３８を参照して後述する。
【０４１５】
ステップＳ４０６の水平方向の独立型勾配法演算処理により、有効画素のうち、水平方向に勾配がある画素が勾配法演算の対象とされ、有効画素のうち、水平方向に勾配がある画素の水平方向の画素差分Δｘ、および時間方向の画素差分Δｔが積算されて、積算された勾配と式（２３）を用いて、動きベクトルｖｎの水平方向成分が求められて、ベクトル算出部４６４に出力され、処理は、ステップＳ４０７に進む。
【０４１６】
ステップＳ４０７において、有効画素判定部４７１は、勾配フラグの値が１であるか否かを判定する。ステップＳ４０７において、勾配フラグの値が１であると判定された場合、有効画素の中に、垂直方向に勾配がない画素が多く含まれていると考えられるので、処理は、ステップＳ４０８をスキップし、ステップＳ４０９に進む。
【０４１７】
すなわち、この場合、垂直方向に勾配がない画素以外の有効画素を用いて、動きベクトルの垂直方向成分を求めても確からしくないので、垂直方向の独立型勾配法演算処理は実行されない。
【０４１８】
有効画素判定部４７１は、ステップＳ４０７において、勾配フラグの値が１ではない（すなわち、勾配フラグの値は、０か２である）と判定した場合、ステップＳ４０８において、垂直勾配判定部４７３を制御し、垂直方向の独立型勾配法演算処理を実行させる。なお、この垂直方向の独立型勾配法演算処理は、ステップＳ４０６の水平方向の独立型勾配法演算処理と、対象とする方向が異なるだけであり、基本的な処理は同じであるので、図３８を参照して、独立型勾配法演算処理としてまとめて後述する。
【０４１９】
ステップＳ４０８の垂直方向の独立型勾配法演算処理により、有効画素のうち、垂直方向に勾配がある画素が勾配法演算の対象とされ、有効画素のうち、垂直方向に勾配がある画素の垂直方向の画素差分Δｙ、および時間方向の画素差分Δｔが積算されて、積算された勾配と式（２３）を用いて、動きベクトルｖｎの垂直方向成分が求められて、ベクトル算出部４６４に出力され、処理は、ステップＳ４０９に進む。
【０４２０】
ベクトル算出部４６４には、独立型勾配演算部４６３−２より動きベクトルｖｎの水平方向成分および垂直方向成分の少なくとも一方が入力される。ベクトル算出部４６４は、ステップＳ４０９において、セレクタ４０１からのオフセットベクトルＶｎ−１の対象方向成分（水平方向成分および垂直方向成分の少なくとも一方）と、独立型勾配演算部４６３−２により求められた動きベクトルｖｎの対象方向成分を加算し、その結果である動きベクトルＶｎをベクトル評価部１０４に出力する。
【０４２１】
なお、このとき、動きベクトルｖｎの方向成分のうち、独立型勾配演算部４６３−２より入力されない方向成分は、０ベクトルとして算出される。すなわち、勾配フラグの値が２である場合には、独立型勾配演算部４６３−２より動きベクトルｖｎの垂直方向成分が求められないので、ベクトル算出部４６４は、動きベクトルｖｎの垂直方向成分を０ベクトルとし、勾配フラグの値が１である場合には、独立型勾配演算部４６３−２より動きベクトルｖｎの水平方向成分が求められないので、ベクトル算出部４６４は、動きベクトルｖｎの水平方向成分を０ベクトルとする。
【０４２２】
ステップＳ４０９において、ベクトル算出部４６４により算出された動きベクトルＶｎは、ベクトル評価部１０４に出力され、勾配法演算処理は終了され、処理は、図３２のステップＳ３０６に戻り、ステップＳ３０７に進む。
【０４２３】
一方、ステップＳ４０１において、勾配フラグの値が３であると判定された場合、ステップＳ４１０において、有効画素判定部４７１は、勾配法演算部４０５の演算を禁止させ、勾配法演算処理を終了する。
【０４２４】
以上のように、有効画素に片側勾配の画素が少ない場合には、有効画素が用いられての統合型勾配法演算により動きベクトルが求められ、有効画素に片側勾配の画素が多い場合には、有効画素のうち、勾配がある方向の画素のみが用いられての独立型勾配法演算により動きベクトルが求められる。
【０４２５】
これにより、演算ブロックに片側勾配の画素が多い場合であっても、少なくとも勾配がある方向成分の確からしい動きベクトルを得ることができる。したがって、片側勾配領域であっても、動きベクトルの検出精度が向上される。
【０４２６】
また、片側勾配の領域に対しては、簡易的な独立型勾配法演算が行われるので、演算の負荷を抑制することができる。
【０４２７】
次に、図３７のフローチャートを参照して、図３６のステップＳ４０３の統合型勾配法演算処理を詳しく説明する。
【０４２８】
勾配法演算部４０５の画素差分算出部４６１には、メモリ４０３から供給される演算ブロックの対象画素値を入力されている。画素差分算出部４６１の各部（第１空間勾配画素差分算出部４６１−１、第２空間勾配画素差分算出部４６１−２、および時間方向画素差分算出部４６１−３）は、有効画素判定部４７１の制御のもと、ステップＳ４２１において、演算ブロック内の画素を１つ選択し、ステップＳ４２２に進み、有効画素演算処理を実行する。この有効画素演算処理は、図３４を参照して上述した有効画素演算処理と基本的に同様な処理であるので、その説明を省略する。
【０４２９】
ステップＳ４２２の有効画素演算処理により、選択した画素のフレームｔ＋１上の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙ、フレームｔ上の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙ、並びに、フレームｔ＋１およびフレームｔ間の時間方向の画素差分Δｔが求められ、それらを用いて、式（１９）乃至式（２１）の論理演算が行われる。
【０４３０】
有効画素判定部４７１は、ステップＳ４２３において、上述した３つの式の論理和（すなわち、式（２２）を求め、式（２２）が真であるか否か）に基づいて、選択された画素が有効画素であるか否かを判定する。ステップＳ４２３において、選択された画素が有効画素ではないと判定された場合、処理は、ステップＳ４２１に戻り、それ以降の処理が繰り返される。
【０４３１】
有効画素判定部４７１は、ステップＳ４２３において、有効画素であると判定した場合、その画素を勾配法の演算対象とし、その画素の水平方向の画素差分Δｘ、垂直方向の画素差分Δｙ、および時間方向の画素差分Δｔを、統合型勾配演算部４６３−１に供給し、ステップＳ４２４において、統合型勾配演算部４６３−１を制御し、供給した勾配（画素差分）を積算させる。
【０４３２】
有効画素判定部４７１は、ステップＳ４２５において、演算ブロック内のすべての画素の処理が終了したか否かを判定する。ステップＳ４２５において、演算ブロック内のすべての画素の処理がまだ終了していないと判定された場合、処理は、ステップＳ４２１に戻り、それ以降の処理が繰り返される。
【０４３３】
有効画素判定部４７１は、ステップＳ４２５において、演算ブロック内のすべての画素の処理が終了したと判定した場合、ステップＳ４２６において、統合型勾配演算部４６３−１を制御し、積算された勾配を用いて、動きベクトルｖｎを算出させる。
【０４３４】
すなわち、統合型勾配演算部４６３−１は、ステップＳ４２４において、演算判定部５２４より供給された有効画素の時間方向の画素差分Δｔ、水平方向の画素差分Δｘ、および、垂直方向の画素差分Δｙを積算し、ステップＳ４２５において演算ブロック内のすべての画素の処理が終了したと判定された場合、ステップＳ４２６において、積算された勾配と式（１４）の最小自乗和を用いて、動きベクトルｖｎを求め、求めた動きベクトルｖｎを、ベクトル算出部４６４に出力する。この後、処理は、図３６のステップＳ４０３に戻り、ステップＳ４０４に進む。
【０４３５】
以上のように、演算ブロックのうち、有効画素の勾配のみが積算されて、統合型勾配法演算処理が実行される。これにより、演算ブロックに対して、誤った動きベクトルが検出されることが抑制される。
【０４３６】
次に、図３８のフローチャートを参照して、ステップＳ４０６およびＳ４０８の独立型勾配法演算処理を詳しく説明する。なお、図３８においては、水平方向の場合を説明するが、垂直方向の場合も、対象となる方向成分が異なるだけであり、水平方向の場合と基本的に同様の処理となる。
【０４３７】
勾配法演算部４０５の画素差分算出部４６１には、メモリ４０３から供給される演算ブロックの対象画素値を入力されている。画素差分算出部４６１の各部は、有効画素判定部４７１の制御のもと、ステップＳ４４１において、演算ブロック内の画素を１つ選択し、ステップＳ４４２に進み、有効画素演算処理を実行する。この有効画素演算処理も、図３４を参照して上述した有効画素演算処理と基本的に同様な処理であるので、その説明を省略する。
【０４３８】
ステップＳ４４２の有効画素演算処理により、選択した画素のフレームｔ＋１上の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙ、フレームｔ上の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙ、並びに、フレームｔ＋１およびフレームｔ間の時間方向の画素差分Δｔが求められ、それらを用いて、式（１９）乃至式（２１）の論理演算が行われる。
【０４３９】
有効画素判定部４７１は、ステップＳ４４３において、上述した３つの式の論理和（すなわち、式（２２）を求め、式（２２）が真であるか否か）に基づいて、選択された画素が有効画素であるか否かを判定する。ステップＳ４４３において、選択された画素が有効画素ではないと判定された場合、処理は、ステップＳ４４１に戻り、それ以降の処理が繰り返される。
【０４４０】
有効画素判定部４７１は、ステップＳ４４３において、有効画素であると判定した場合、ステップＳ４４４において、水平勾配判定部４７２を制御し、有効画素の対象方向（いまの場合、水平方向）に勾配があるか否かを判定させる。ステップＳ４４４において、有効画素の対象方向（いまの場合、水平方向）に勾配がないと判定された場合、処理は、ステップＳ４４１に戻り、それ以降の処理が繰り返される。
【０４４１】
すなわち、演算ブロック内の次の画素に対しての有効画素判定および片側勾配判定が繰り返される。
【０４４２】
水平勾配判定部４７２は、有効画素の水平方向に勾配があると判定した場合、その画素を、勾配法の演算対象とし、その画素の水平方向の画素差分Δｘ、および時間方向の画素差分Δｔを、独立型勾配演算部４６３−２に供給し、ステップＳ４４５において、独立型勾配演算部４６３−２を制御し、供給した勾配（画素差分）を積算させる。
【０４４３】
有効画素判定部４７１は、ステップＳ４４６において、演算ブロック内のすべての画素の処理が終了したか否かを判定する。ステップＳ４４６において、演算ブロック内のすべての画素の処理がまだ終了していないと判定された場合、処理は、ステップＳ４４１に戻り、それ以降の処理が繰り返される。
【０４４４】
有効画素判定部４７１は、ステップＳ４４６において、演算ブロック内のすべての画素の処理が終了したと判定した場合、ステップＳ４４７において、独立型勾配演算部４６３−２を制御し、積算された勾配を用いて、対象方向の動きベクトルｖｎを算出させる。
【０４４５】
すなわち、独立型勾配演算部４６３−２は、ステップＳ４４５において、水平勾配判定部４７２より供給された、水平方向に勾配がある有効画素の時間方向の画素差分Δｔ、および水平方向の画素差分Δｘを積算し、ステップＳ４４６において演算ブロック内のすべての画素の処理が終了したと判定された場合、ステップＳ４４７において、積算された勾配と式（２３）を用いて、動きベクトルｖｎの対象方向（水平方向）成分を求め、求めた動きベクトルｖｎの水平方向成分を、ベクトル算出部４６４に出力する。この後、処理は、図３６のステップＳ４０６に戻り、ステップＳ４０７に進む。
【０４４６】
以上のように、演算ブロックの有効画素のうち、対象方向に勾配がある画素の勾配のみが積算されて、対象方向の勾配法演算処理が実行される。これにより、演算ブロックが片側勾配領域に含まれていたとしても、演算ブロックに対して、誤った動きベクトルの対象方向成分が検出されることが抑制される。
【０４４７】
次に、図３９のフローチャートを参照して、図３２のステップＳ３０７のベクトル評価処理を説明する。
【０４４８】
評価値判定部４１２は、フラグ設定部４５２からの勾配フラグが入力されると、図３９のベクトル評価処理を開始する。評価値判定部４１２は、ステップＳ４６１において、勾配フラグの値が３であるか否かを判定し、勾配フラグの値が３ではないと判定した場合（すなわち、勾配法演算が実行されていると判定した場合）、ステップＳ４６２において、評価値演算部６１Ｂを制御し、オフセットベクトルＶｎ−１、動きベクトルＶｎ、および０ベクトルの評価値演算処理を実行させる。この評価値演算処理は、図１５を参照して上述した評価値演算処理と基本的に同様の処理を行うので、その説明を省略する。
【０４４９】
ステップＳ４６２の評価値演算処理により、セレクタ４０１からのオフセットベクトルＶｎ−１、統合型勾配演算部４６３−１または独立型勾配演算部４６３−２により演算され、ベクトル算出部４６４により算出された動きベクトルＶｎ、および０ベクトルの評価値ｄｆｖが演算される。
【０４５０】
評価値判定部４１２は、ステップＳ４６３において、勾配フラグの値が４であるか否かを判定し、勾配フラグの値が４であると判定した場合（すなわち、統合型勾配演算部４６３−１により演算された動きベクトルＶｎの場合）、ステップＳ４６４において、ベクトル算出部４６４により算出された動きベクトルＶｎの評価値ｄｆｖ（ｎ）が、オフセットベクトルＶｎ−１の評価値ｄｆｖ（ｎ−１）よりも小さいか否かを判定する。
【０４５１】
ステップＳ４６４において、評価値ｄｆｖ（ｎ−１）の方が、評価値ｄｆｖ（ｎ）よりも小さい（オフセットベクトルＶｎ−１の方が、信頼性が高い）と判定された場合、評価値判定部４１２は、ステップＳ４６５において、オフセットベクトルＶｎ−１を動きベクトルＶに決定する。すなわち、動きベクトルＶは、ベクトル算出部４６４により算出された動きベクトルＶｎではなく、オフセットベクトルＶｎ−１に変更（修正）される。そして、評価値判定部４１２は、ステップＳ４６６において、勾配法演算の反復回数を最大値にし、ベクトル評価処理を終了する。
【０４５２】
すなわち、ステップＳ４６６においては、オフセットベクトルＶｎ−１であった動きベクトルＶが用いられて勾配法演算が繰り返されても、結果は同じであるので、勾配法演算が繰り返されることがないように反復回数が最大値にされる。
【０４５３】
また、ステップＳ４６４において、評価値ｄｆｖ（ｎ）の方が、評価値ｄｆｖ（ｎ−１）よりも小さい（ベクトル算出部４６４により算出された動きベクトルＶｎの方が、信頼性が高い）と判定された場合、評価値判定部４１２は、ステップＳ４６７において、ベクトル算出部４６４により算出された動きベクトルＶｎを、そのまま、動きベクトルＶに決定し、ステップＳ４６８において、勾配法演算の反復回数を１加算し、ベクトル評価処理を終了する。
【０４５４】
一方、ステップＳ４６３において、勾配フラグの値が４ではないと判定された場合（すなわち、独立型勾配演算部４６３−２により演算された動きベクトルＶｎの場合）、ステップＳ４６９において、ベクトル算出部４６４により算出された動きベクトルＶｎの評価値ｄｆｖ（ｎ）が、０ベクトルの評価値ｄｆｖ（０）よりも小さいか否かを判定する。
【０４５５】
ステップＳ４６９において、評価値ｄｆｖ（ｎ）の方が、評価値ｄｆｖ（０）よりも小さい（ベクトル算出部４６４により算出された動きベクトルＶｎの方が、信頼性が高い）と判定された場合、評価値判定部４１２は、ステップＳ４７０において、ベクトル算出部４６４により算出された動きベクトルＶｎを、そのまま、動きベクトルＶに決定し、ベクトル評価処理を終了する。
【０４５６】
また、ステップＳ４６９において、評価値ｄｆｖ（０）の方が、評価値ｄｆｖ（ｎ）よりも小さい（０ベクトルの方が、信頼性が高い）と判定された場合、評価値判定部４１２は、ステップＳ４７１において、０ベクトルを、動きベクトルＶに決定し、ベクトル評価処理を終了する。すなわち、ステップＳ４７１において、動きベクトルＶは、ベクトル算出部４６４により算出された動きベクトルＶｎではなく、０ベクトルに変更（修正）される。
【０４５７】
一方、ステップＳ４６１において、勾配フラグの値が３であると判定された場合、演算ブロックにおいて、有効画素が少ないと判定された場合であるので、ステップＳ４７２において、０ベクトルを、動きベクトルＶに決定し、すなわち、動きベクトルＶは、ベクトル算出部４６４により算出された動きベクトルＶｎではなく、０ベクトルに変更（修正）され、ベクトル評価処理を終了する。
【０４５８】
以上のように、勾配フラグの値に基づいて、ベクトル評価における比較対象を切り替えて、動きベクトルを評価し、評価結果に応じて、動きベクトルを変更（修正）するようにしたので、演算ブロック内の勾配の状態に応じた精度のよい動きベクトルを検出することができる。
【０４５９】
なお、上記説明においては、有効画素を判定した後に、水平勾配および垂直勾配を判定して、有効画素内の勾配状態（すなわち、水平勾配、または垂直勾配のみ有する画素の割合）を求め、それに基づいて、勾配法実行判定を行う場合を説明したが、以下に説明するように、有効画素を判定する条件式である式（１９）乃至式（２１）を用いて水平勾配、または垂直勾配のみ有する画素の割合を求め、それに基づいて、勾配法実行判定を行うこともできる。
【０４６０】
図４０は、図２６の有効画素判定部の画素判定部、カウンタ、および演算実行判定部の他の構成例を示すブロック図である。
【０４６１】
図４０の例の画素判定部４２２は、有効画素判定部４３１を備える点が、図２６の画素判定部４２２と共通するが、水平勾配判定部４３２と垂直勾配判定部４３３が除かれた点が、図２６の画素判定部４２２と異なっている。なお、図４０の例において、有効画素判定部４３１は、さらに、水平垂直勾配判定部４３１−１、水平勾配判定部４３１−２、および垂直勾配判定部４３１−３により構成されている。
【０４６２】
水平垂直勾配判定部４３１−１は、式（２１）を用いて、演算ブロック内の画素が水平垂直着目条件を満たすか否かどうかを判定し、演算ブロック内の画素が水平垂直着目条件を満たすと判定した場合、すなわち、垂直方向および水平方向に勾配を有し、水平および垂直方向の動きに類似性があることから、水平勾配および垂直勾配（以下、水平垂直勾配とも称する）があると判定し、水平垂直勾配カウンタ４８１の値（水平勾配および垂直勾配がある画素の数）を１加算するとともに、有効画素数カウンタ４４１の値を１加算する。
【０４６３】
水平勾配判定部４３１−２は、式（１９）を用いて、演算ブロック内の画素が水平着目条件を満たすか否かどうかを判定し、演算ブロック内の画素が水平着目条件を満たすと判定した場合、すなわち、水平勾配が垂直勾配よりもある程度大きく、より支配的であり、かつ、水平方向の動きに類似性があることから、水平勾配があると判定し、水平勾配カウンタ４８２の値（水平勾配がある画素の数）を１加算するとともに、有効画素数カウンタ４４１の値を１加算する。
【０４６４】
垂直勾配判定部４３１−３は、式（２０）を用いて、演算ブロック内の画素が垂直着目条件を満たすか否かどうかを判定し、演算ブロック内の画素が垂直着目条件を満たすと判定した場合、すなわち、垂直勾配が水平勾配よりもある程度大きく、より支配的であり、かつ、垂直方向の動きに類似性があるとされ、垂直勾配があると判定し、垂直勾配カウンタ４８３の値（垂直勾配がある画素の数）を１加算するとともに、有効画素数カウンタ４４１の値を１加算する。
【０４６５】
図４０の例のカウンタ４２３は、有効画素カウンタ４４１を有する点が、図２６のカウンタ４２３と共通するが、水平勾配無カウンタ４４２および垂直勾配無カウンタ４４３が除かれた点、水平垂直勾配カウンタ４８１、水平勾配カウンタ４８２、および垂直勾配無カウンタ４８３が追加された点が、図２６のカウンタ４２３と異なっている。
【０４６６】
水平垂直勾配カウンタ４８１は、演算ブロック毎に、水平垂直勾配判定部４３１−１により、水平勾配および垂直勾配（以下、水平垂直勾配とも称する）があると判定された画素（有効画素）の数を記憶する。水平勾配カウンタ４８２は、演算ブロック毎に、水平勾配判定部４３１−２により、水平勾配があると判定された画素（有効画素）の数を記憶する。垂直勾配カウンタ４８３は、演算ブロック毎に、垂直勾配判定部４３１−３により、垂直勾配があると判定された画素（有効画素）の数を記憶する。
【０４６７】
図４０の例の演算実行判定部４２５は、フラグ設定部４５２を備える点が、図２９の演算実行判定部４２５と共通するが、カウンタ値演算部４５１の代わりに、カウンタ値演算部４９１が追加された点が、図２６の演算実行判定部４２５と異なっている。
【０４６８】
カウンタ値演算部４９１は、勾配法継続判定部４２４からのカウンタフラグの値が１であるとき、カウンタ４２３（有効画素数カウンタ４４１、水平垂直勾配カウンタ４８１、水平勾配カウンタ４８２、および垂直勾配無カウンタ４８３）から、有効画素の数（cnt_t）、水平方向および垂直方向に勾配のある画素の数（cnt_xy）、水平方向に勾配のある画素の数（cnt_x）、および垂直方向に勾配のある画素の数（cnt_y）を取得して、演算ブロックにおける有効画素と、有効画素のうちの片側勾配の画素の割合を演算し、割合の演算結果に応じて、フラグ設定部４５２が設定する勾配フラグの値を制御する。
【０４６９】
すなわち、カウンタ値演算部４９１は、有効画素の数（cnt_t）、水平垂直方向に勾配のある画素の数（cnt_xy）、水平方向に勾配のある画素の数（cnt_x）、および垂直方向に勾配のある画素の数（cnt_y）を用いた次の式（２７）乃至式（３０）を用いて、勾配法実行判定処理を行う。
【０４７０】
【数２６】
0004752407.tif 000027
・・・（２７）
【数２７】
0004752407.tif 000028
・・・（２８）
【数２８】
0004752407.tif 000029
・・・（２９）
【数２９】
0004752407.tif 000030
・・・（３０）
【０４７１】
ここで、pxl_aは、演算ブロック内の全画素数を表しており、・は、乗算、ｔｈ４乃至ｔｈ７は、それぞれ異なる１未満の所定のしきい値を表している。なお、ｔｈ４＞ｔｈ５，ｔｈ６，ｔｈ７である。
【０４７２】
まず、式（２７）を満たさないと判定された場合、または、式（２７）を満たすが、式（２８）乃至式（３０）を満たさないと判定された場合、演算ブロック内に、有効と判定された画素が少なく、勾配法演算を行うことが困難な状態であると考えられる。そこで、カウンタ値演算部４９１は、勾配フラグ（gladflg＝３）を付加し、勾配法演算部４０５に、演算を行わせず、動き無し（０ベクトル）とさせる。
【０４７３】
式（２７）を満たし、さらに、式（２８）を満たすと判定された場合、有効画素の中に、水平方向および垂直方向の勾配を持つ（通常の勾配がある）ものが適切に存在する状態だと考えられる。そこで、カウンタ値演算部４９１は、勾配フラグ（gladflg＝４）を設定し、勾配法演算部４０５に、式（１４）を用いての統合型勾配法演算を実行させる。
【０４７４】
式（２７）を満たし、式（２８）を満たさないが、式（２９）を満たすと判定された場合、有効画素の中に、垂直方向に勾配がない画素が多く含まれていることが考えられる。そこで、カウンタ値演算部４９１は、勾配フラグ（gladflg＝１）を付加し、勾配法演算部４０５に、垂直方向の動きに関しては演算を行わせず、動き無し（０ベクトル）とさせ、水平方向の動きのみに対して、式（２３）を用いての勾配法演算を実行させる。なお、このときの勾配法演算には、水平方向に勾配が存在する有効画素のみが使用される。
【０４７５】
式（２７）を満たし、式（２８）および式（２９）を満たさないが、式（３０）を満たすと判定された場合、有効画素の中に、水平方向に勾配がない画素が多く含まれていることが考えられる。そこで、カウンタ値演算部４９１は、勾配フラグ（gladflg＝２）を付加し、勾配法演算部４０５に、水平方向の動きに関しては演算を行わせず、動き無し（０ベクトル）とさせ、垂直方向の動きのみに対して、式（２３）を用いての勾配法演算を実行させる。なお、このときの勾配法演算には、垂直方向に勾配が存在する有効画素のみが使用される。
【０４７６】
図４１は、図４０の有効画素判定部に対応する勾配法演算部の演算判定部の構成例を示す図である。
【０４７７】
すなわち、図４１の例の演算判定部４６２は、有効画素判定部４７１を備える点が、図２７の演算判定部４６２と共通するが、水平勾配判定部４７２と垂直勾配判定部４７３が除かれた点が、図２７の演算判定部４６２と異なっている。なお、図４１の例において、有効画素判定部４７１は、さらに、水平垂直勾配判定部４７１−１、水平勾配判定部４７１−２、および垂直勾配判定部４７１−３により構成されている。
【０４７８】
水平垂直勾配判定部４７１−１、水平勾配判定部４７１−２、および垂直勾配判定部４７１−３は、それぞれ、勾配フラグの値に基づいて、勾配法演算処理の方法を判定する。
【０４７９】
すなわち、水平垂直勾配判定部４７１−１は、勾配フラグの値に基づいて、統合型勾配演算部４６３−１で勾配法演算処理を行うと判定した場合、式（２１）を用いて、演算ブロック内の画素が水平垂直着目条件を満たすか否かどうかを判定し、水平垂直着目条件を満たすと判定した画素の勾配（画素差分）を統合型勾配演算部４６３−１に供給する。
【０４８０】
水平垂直勾配判定部４７１−１は、勾配フラグの値に基づいて、独立型勾配演算部４６３−２で勾配法演算処理を行うと判定した場合、式（２１）を用いて、演算ブロック内の画素が水平垂直着目条件を満たすか否かどうかを判定し、水平垂直着目条件を満たすと判定した画素の勾配（画素差分）を独立型勾配演算部４６３−２に供給する。
【０４８１】
水平勾配判定部４７１−２は、勾配フラグの値に基づいて、統合型勾配演算部４６３−１で勾配法演算処理を行うと判定した場合、式（１９）を用いて、演算ブロック内の画素が水平着目条件を満たすか否かどうかを判定し、水平着目条件を満たすと判定した画素の勾配（画素差分）を統合型勾配演算部４６３−１に供給する。
【０４８２】
水平勾配判定部４７１−２は、勾配フラグの値に基づいて、独立型勾配演算部４６３−２で、水平方向に対しての勾配法演算処理を行うと判定した場合、式（１９）を用いて、演算ブロック内の画素が水平着目条件を満たすか否かどうかを判定し、水平着目条件を満たすと判定した画素の勾配（画素差分）を独立型勾配演算部４６３−２に供給する。すなわち、垂直方向に対しての勾配法演算処理を行うと判定した場合、水平勾配判定部４７１−２により水平着目条件を満たすと判定した画素の勾配（画素差分）は、独立型勾配演算部４６３−２に供給されない。
【０４８３】
垂直勾配判定部４７１−３は、勾配フラグの値に基づいて、統合型勾配演算部４６３−１で勾配法演算処理を行うと判定した場合、式（２０）を用いて、演算ブロック内の画素が垂直着目条件を満たすか否かどうかを判定し、垂直着目条件を満たすと判定した画素の勾配（画素差分）を統合型勾配演算部４６３−１に供給する。
【０４８４】
垂直勾配判定部４７１−３は、勾配フラグの値に基づいて、独立型勾配演算部４６３−２で、垂直方向に対しての勾配法演算処理を行うと判定した場合、式（２０）を用いて、演算ブロック内の画素が垂直着目条件を満たすか否かどうかを判定し、垂直着目条件を満たすと判定した画素の勾配（画素差分）を独立型勾配演算部４６３−２に供給する。すなわち、水平方向に対しての勾配法演算処理を行うと判定した場合、垂直勾配判定部４７１−３により垂直着目条件を満たすと判定した画素の勾配（画素差分）は、独立型勾配演算部４６３−２に供給されない。
【０４８５】
これらに対応して、統合型勾配演算部４６３−１は、水平垂直勾配判定部４７１−１、水平勾配判定部４７１−２、および垂直勾配判定部４７１−３がそれぞれ条件式を満たすと判定した画素（すなわち、有効画素）の勾配を用いて、統合型勾配法演算を行う。
【０４８６】
独立型勾配演算部４６３−２は、水平垂直勾配判定部４７１−１、および水平勾配判定部４７１−２がそれぞれ条件式を満たすと判定した画素（すなわち、有効画素のうちの水平勾配がある画素）の勾配を用いて、水平方向の独立型勾配法演算を行い、水平垂直勾配判定部４７１−１、および垂直勾配判定部４７１−３がそれぞれ条件式を満たすと判定した画素（すなわち、有効画素のうちの垂直勾配がある画素）の勾配を用いて、垂直方向の独立型勾配法演算を行う。
【０４８７】
次に、図４２のフローチャートを参照して、図４０の有効画素判定部４０４が行う有効画素判定処理を説明する。なお、図４２は、図３２のステップＳ３０３において行われる図３３を参照して上述した有効画素判定処理の他の例であり、図４２のステップＳ５０１乃至Ｓ５０３、およびＳ５１１の処理は、図３３のステップＳ３２１乃至Ｓ３２３、およびＳ３３０の処理と基本的に同じ処理を行うので、その詳細な説明は適宜省略する。
【０４８８】
画素差分算出部４２１は、メモリ４０３から供給される演算ブロックの対象画素値を入力すると、ステップＳ５０１において、有効画素判定部４３１を制御し、各カウンタ（有効画素数カウンタ４４１、水平垂直勾配カウンタ４８１、水平勾配カウンタ４８２、および垂直勾配カウンタ４８３）の値をリセットさせる。
【０４８９】
画素差分算出部４２１の各部（第１空間勾配画素差分算出部４２１−１、第２空間勾配画素差分算出部４２１−２、および時間方向画素差分算出部４２１−３）は、ステップＳ５０２において、演算ブロック内の画素を１つ選択し、ステップＳ５０３に進み、有効画素演算処理を実行する。この有効画素演算処理は、図３４を参照して上述したのでその説明は省略する。
【０４９０】
ステップＳ５０３の有効画素演算処理により、選択した画素のフレームｔ＋１上の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙ、フレームｔ上の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙ、並びに、フレームｔ＋１およびフレームｔ間の時間方向の画素差分Δｔが算出され、それらを用いて、水平勾配判定部４３１−２により、水平方向の着目条件である式（１９）、垂直勾配判定部４３１−３により、垂直方向の着目条件である式（２０）、および、水平垂直勾配判定部４３１−１により、水平垂直方向の着目条件である式（２１）の論理演算が行われる。その後、処理は、図４２のステップＳ５０３に戻り、ステップＳ５０４に進む。
【０４９１】
ステップＳ５０４において、水平垂直勾配判定部４３１−１は、選択された画素が水平垂直方向の着目条件（式（２１））を満たしているか否かを判定し、選択された画素が水平垂直方向の着目条件を満たしていると判定した場合、ステップＳ５０５において、水平垂直勾配カウンタ４８１の水平垂直勾配がある画素の数を１加算し、ステップＳ５１０において、有効画素数カウンタ４４１の有効画素の数を１加算する。
【０４９２】
ステップＳ５０４において、水平垂直方向の着目条件を満たしていないと判定された場合、水平勾配判定部４３１−２は、ステップＳ５０６において、選択された画素が水平着目条件（式（１９））を満たすか否かを判定し、選択された画素が水平方向の着目条件を満たしていると判定した場合、ステップＳ５０７において、水平勾配カウンタ４８２の水平勾配がある画素の数を１加算し、ステップＳ５１０において、有効画素数カウンタ４４１の有効画素の数を１加算する。
【０４９３】
ステップＳ５０６において、水平方向の着目条件を満たしていないと判定された場合、垂直勾配判定部４３１−３は、ステップＳ５０８において、選択された画素が垂直着目条件（式（２０））を満たすか否かを判定し、選択された画素が垂直方向の着目条件を満たしていると判定した場合、ステップＳ５０９において、垂直勾配カウンタ４８３の垂直勾配がある画素の数を１加算し、ステップＳ５１０において、有効画素数カウンタ４４１の有効画素の数を１加算する。
【０４９４】
ステップＳ５１０において有効画素の数が１加算された後、処理は、ステップＳ５１１に進み、画素差分算出部４２１は、演算ブロック内のすべての画素の処理が終了したか否かを判定する。ステップＳ５１０において、演算ブロック内のすべての画素の処理が終了したと判定された場合、有効画素数判定処理は終了され、処理は、図３２のステップＳ３０３に戻り、ステップＳ３０４に進む。
【０４９５】
ステップＳ５０８において、水平方向の着目条件を満たしていないと判定された場合（すなわち、上述した式（１９）乃至式（２１）のいずれの式も満たさず、選択された画素は有効画素ではないと判定された場合）、または、ステップＳ５１１において、演算ブロック内のすべての画素の処理がまだ終了していないと判定された場合、処理は、ステップＳ５０２に戻り、それ以降の処理が繰り返される。
【０４９６】
以上のようにして、有効画素数カウンタ４４１には、演算ブロック内において有効であると判定された有効画素の数、水平垂直勾配カウンタ４８１には、有効画素のうち、水平垂直勾配がある（より詳細には、垂直方向および水平方向に勾配を有し、水平および垂直方向の動きに類似性がある）と判定された画素の数、水平勾配カウンタ４８２には、有効画素のうち、水平勾配がある（より詳細には、水平勾配が垂直勾配よりもある程度大きく、より支配的であり、かつ、水平方向の動きに類似性がある）と判定された画素の数、および垂直勾配カウンタ４８３には、有効画素のうち、垂直勾配がある（より詳細には、垂直勾配が水平勾配よりもある程度大きく、より支配的であり、かつ、垂直方向の動きに類似性がある）と判定された画素の数が記憶される。
【０４９７】
次に、図４３のフローチャートを参照して、図３２のステップＳ３０５の勾配法実行判定処理を詳しく説明する。図４３の勾配法実行判定処理は、図３５を参照して上述した勾配法実行判定処理の他の例であり、上述したように画素の数が記憶された各カウンタに基づいて、図４０の演算実行判定部４２５により実行される処理である。
【０４９８】
図４０のカウンタ値演算部４９１は、有効画素数カウンタ４４１から、有効画素の数（cnt_t）、水平垂直勾配カウンタ４８１から、有効画素のうち、水平垂直勾配があると判定された画素の数（cnt_xy）、水平勾配カウンタ４８２から、有効画素のうち、水平勾配があると判定された画素の数（cnt_x）、および垂直勾配カウンタ４８３から、有効画素のうち、垂直勾配があると判定された画素(ngcnt_y)を取得し、ステップＳ５２１において、式（２７）を満たすか否かを判定する。
【０４９９】
ステップＳ５２１において、式（２７）を満たすと判定された場合、演算ブロック内に、有効画素が適切に存在すると考えられ、カウンタ値演算部４９１は、ステップＳ５２２において、式（２８）を満たすか否かを判定する。
【０５００】
ステップＳ５２２において、式（２８）を満たすと判定された場合、有効画素の中に、水平方向および垂直方向の勾配を持つ（通常の勾配がある）ものが適切に存在する状態だと考えられる。したがって、フラグ設定部４５２は、ステップＳ５２３において、水平および垂直方向に信用があるとして、勾配フラグの値を、式（１４）を用いての統合型勾配法演算処理を行わせる「４」に設定し、勾配フラグ（gladflg＝４）を、勾配法演算部４０５および評価判定部４１２に出力し、勾配法実行判定処理を終了する。そして、処理は、図３２のステップＳ３０５に戻り、ステップＳ３０６に進み、勾配フラグ（gladflg＝４）に応じた勾配法演算処理が実行される。
【０５０１】
ステップＳ５２２において、式（２８）を満たさないと判定された場合、カウンタ値演算部４９１は、ステップＳ５２４において、式（２９）を満たすか否かを判定する。ステップＳ５２４において、式（２９）を満たすと判定された場合、有効画素の中に、垂直方向に勾配がない画素が多く含まれていると考えられる。したがって、フラグ設定部４５２は、ステップＳ５２５において、水平方向に対しての信用があるとして、勾配フラグの値を、水平方向に対しての、式（２３）を用いての独立型勾配法演算処理を行わせる「１」に設定し、勾配フラグ（gladflg＝１）を、勾配法演算部４０５および評価判定部４１２に出力し、勾配法実行判定処理を終了する。そして、処理は、図３２のステップＳ３０５に戻り、ステップＳ３０６に進み、勾配フラグ（gladflg＝１）に応じた勾配法演算処理が実行される。
【０５０２】
ステップＳ５２４において、式（２９）を満たさないと判定された場合、カウンタ値演算部４５１は、ステップＳ５２６において、式（３０）を満たすか否かを判定する。ステップＳ５２４において、式（３０）を満たすと判定された場合、有効画素の中に、水平方向に勾配がない画素が多く含まれていると考えられる。したがって、フラグ設定部４５２は、ステップＳ５２７において、垂直方向に対しての信用があるとして、勾配フラグの値を、垂直方向に対しての、式（２３）を用いての独立型勾配法演算処理を行わせる「２」に設定し、勾配フラグ（gladflg＝２）を、勾配法演算部４０５および評価判定部４１２に出力し、勾配法実行判定処理を終了する。そして、処理は、図３２のステップＳ３０５に戻り、ステップＳ３０６に進み、勾配フラグ（gladflg＝２）に応じた勾配法演算処理が実行される。
【０５０３】
ステップＳ５２１において、式（２７）を満たさないと判定された場合、あるいは、ステップＳ５２６において、式（３０）を満たさないと判定された場合、演算ブロック内に、有効と判定された画素が少ないと考えられる。したがって、フラグ設定部４５２は、ステップＳ５２８において、勾配フラグの値を、勾配法演算処理を禁止させる「３」に設定し、勾配フラグ（gladflg＝３）を、勾配法演算部４０５および評価判定部４１２に出力し、勾配法実行判定処理を終了する。そして、処理は、図３２のステップＳ３０５に戻り、ステップＳ３０６に進み、勾配フラグ（gladflg＝３）に応じた勾配法演算処理が実行される。
【０５０４】
以上のようにして、演算ブロックの勾配状態（すなわち、有効画素の数、有効画素のうち、水平垂直勾配がある画素の数、水平勾配がある画素の数、および有効画素のうち、垂直勾配がある画素の数）に応じた勾配フラグが、勾配法演算部４０５および評価判定部４１２に出力される。
【０５０５】
以上のように、図４０の有効画素判定部４０４においては、有効画素を判定する条件式である式（１９）乃至式（２１）を用いて水平勾配、または垂直勾配のみ有する画素の割合を求め、それに基づいて、勾配法実行判定を行うようにしたので、水平勾配、垂直勾配を改めて求める必要がない。したがって、上述した図２６の有効画素判定部４０４の場合に較べて、演算の負荷を軽減することができる。
【０５０６】
次に、図４４のフローチャートを参照して、図４１の勾配法演算部４０５が行う処理のうち、独立型勾配法演算処理の詳細を説明する。なお、図４１の勾配法演算部４０５が行う勾配法演算処理は、ステップＳ４０６およびＳ４０８の独立型勾配法演算処理以外は、図３６を参照して上述した図２７の勾配法演算部４０５が行う勾配法演算処理と基本的に同様の処理であるので、その説明を省略する。
【０５０７】
すなわち、図４４は、図３６のステップＳ４０６またはＳ４０８において行われる図３８を参照して上述した独立型勾配法処理の他の例であり、図４４のステップＳ５３１、Ｓ５３２、Ｓ５３４乃至Ｓ５３６の処理は、図３８のステップＳ４４１、Ｓ４４２、Ｓ４４５乃至Ｓ４４７の処理と基本的に同じ処理を行うので、その詳細な説明は適宜省略する。また、図４４においても、水平方向の場合を説明するが、垂直方向の場合も、対象となる方向成分が異なるだけであり、水平方向の場合と基本的に同様の処理となる。
【０５０８】
図４１の画素差分算出部４６１の各部は、有効画素判定部４７１の制御のもと、ステップＳ５３１において、演算ブロック内の画素を１つ選択し、ステップＳ５３２に進み、有効画素演算処理を実行する。この有効画素演算処理は、図３４を参照して上述した有効画素演算処理と基本的に同様な処理であるので、その説明は省略する。
【０５０９】
ステップＳ５３２の有効画素演算処理により、選択した画素のフレームｔ＋１上の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙ、フレームｔ上の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙ、並びに、フレームｔ＋１およびフレームｔ間の時間方向の画素差分Δｔが求められ、それらを用いて、水平勾配判定部４７１−２により、水平方向の着目条件である式（１９）、垂直勾配判定部４７１−３により、垂直方向の着目条件である式（２０）、および、水平垂直勾配判定部４７１−１により、水平垂直方向の着目条件である式（２１）の論理演算が行われる。その後、処理は、図４４のステップＳ５３２に戻り、ステップＳ５３３に進む。
【０５１０】
ステップＳ５３３において、水平垂直勾配判定部４７１−１および水平勾配判定部４７１−２は、選択された画素が対象方向（いまの場合、水平方向）に勾配があるか否かを判定する。すなわち、水平垂直勾配判定部４７１−１が、選択された画素が水平垂直方向の着目条件（式（２１））を満たしているか否かを判定し、水平勾配判定部４７１−２が、選択された画素が水平着目条件（式（１９））を満たすか否かを判定し、水平垂直勾配判定部４７１−１により選択された画素が水平垂直方向の着目条件を満たしていると判定された場合、または、水平勾配判定部４７１−２により、選択された画素が水平着目条件を満たしていると判定された場合、選択された画素が水平方向に勾配があると判定され、処理は、ステップＳ５３４に進む。
【０５１１】
また、ステップＳ５３３において、水平垂直勾配判定部４７１−１により選択された画素が水平垂直方向の着目条件を満たしていないと判定され、かつ、水平勾配判定部４７１−２により、選択された画素が水平着目条件を満たしていないと判定された場合、選択された画素が水平方向に勾配がないと判定され、処理は、ステップＳ５３１に戻り、それ以降の処理が繰り返される。
【０５１２】
なお、垂直方向の場合には、水平垂直勾配判定部４３１−１により選択された画素が水平垂直方向の着目条件を満たしていると判定された場合、または、垂直勾配判定部４３１−３により、選択された画素が垂直着目条件を満たしていると判定された場合、選択された画素が垂直方向に勾配があると判定される。
【０５１３】
水平垂直勾配判定部４７１−１または水平勾配判定部４７１−２は、ステップＳ５３３において水平勾配があると判定した画素を、勾配法の演算対象とし、その画素の水平方向の画素差分Δｘ、および時間方向の画素差分Δｔを、独立型勾配演算部４６３−２に供給し、ステップＳ５３４において、独立型勾配演算部４６３−２を制御し、供給した勾配（画素差分）を積算させる。
【０５１４】
水平垂直勾配判定部４７１−１は、ステップＳ５３５において、演算ブロック内のすべての画素の処理が終了したか否かを判定する。ステップＳ５３５において、演算ブロック内のすべての画素の処理がまだ終了していないと判定された場合、処理は、ステップＳ４４１に戻り、それ以降の処理が繰り返される。
【０５１５】
水平垂直勾配判定部４７１−１は、ステップＳ５３５において、演算ブロック内のすべての画素の処理が終了したと判定した場合、ステップＳ５３６において、独立型勾配演算部４６３−２を制御し、積算された勾配を用いて、動きベクトルｖｎの水平方向成分を算出させる。
【０５１６】
独立型勾配演算部４６３−２は、ステップＳ５３６において、積算された勾配と式（２３）を用いて、動きベクトルｖｎの対象方向（水平方向）成分を求め、求めた動きベクトルｖｎの水平方向成分を、ベクトル算出部４６４に出力する。この後、処理は、図３６のステップＳ４０６に戻り、ステップＳ４０７に進む。
【０５１７】
以上により、図４１の勾配法演算部４０５においても、図３７の勾配法演算部４０５の場合と同様に、演算ブロックの有効画素のうち、対象方向に勾配がある画素の勾配のみが積算されて、対象方向の勾配法演算処理が実行される。これにより、演算ブロックが片側勾配領域であったとしても、演算ブロックに対して、誤った動きベクトルの対象方向成分が検出されることが抑制される。
【０５１８】
以上のように、演算ブロックにおいて、有効画素を判定するだけでなく、有効画素の中から、水平勾配または垂直勾配のどちらかのみが存在する片側勾配の画素を判定し、有効画素中の片側勾配の画素の割合に基づいて、勾配法演算を切り替えたり、評価対象のベクトルを切り替えたり、反復判定を行うようにしたので、有効画素を判定するのみの場合よりも、特に、片側勾配領域においての動きベクトルの検出精度が向上する。
【０５１９】
次に、図４５を参照して、図１７のベクトル検出部５２の他の構成例について説明する。
【０５２０】
上述したように、図１７のベクトル検出部５２において求められた動きベクトルＶは、検出ベクトルメモリ５３に、後段の割付処理で用いられる動きベクトル（以下、検出ベクトルとも称する）として記憶されるとともに、初期ベクトル選択部１０１により、初期候補ベクトル（初期ベクトルの候補ベクトル）としても用いられる。これに対して、図４５のベクトル検出部５２においては、後段のベクトル割付処理で用いられる検出ベクトルと、初期ベクトル選択処理で用いられる初期候補ベクトルを別々に保存するように構成されている。
【０５２１】
図４５のベクトル検出部５２は、プリフィルタ１０２−１および１０２−２、シフト初期ベクトル割付部１０５、評価値メモリ１０６、およびシフト初期ベクトルメモリ１０７を備える点が、図１７のベクトル検出部５２と共通するが、初期ベクトル選択部１０１が初期ベクトル選択部５２１に入れ替わった点、反復勾配法演算部１０３が反復勾配法演算部５２２に入れ替わった点、ベクトル評価部１０４がベクトル評価部５２３に入れ替わった点、および初期候補ベクトルメモリ５２４が追加された点が、図１７のベクトル検出部５２と異なっている。
【０５２２】
なお、初期ベクトル選択部５２１は、過去に求められた周辺のブロックの動きベクトルを、検出ベクトルメモリ５３ではなく、初期候補ベクトルメモリ５２４から取得する点が異なるだけであり、図１７のベクトル選択部１０１と基本的な構成が同様であるので、その詳細な説明は省略する。
【０５２３】
図４５の例において、反復勾配法演算部５２２は、図１７の反復勾配法演算部１０３と同様に、構成されており、初期ベクトル選択部１０１から入力された初期ベクトルＶ０と、プリフィルタ１０２−１および１０２−２を介して入力されるフレームｔおよびフレームｔ＋１を用いて、所定のブロック毎に、勾配法により、動きベクトルＶｎを算出する。このとき、反復勾配法演算部５２２は、勾配法の対象として用いる有効画素の数を、所定のしきい値αだけでなく、所定のしきい値β（β＜α）とも比較して、その比較結果に応じたカウンタフラグ（countflg）を、ベクトル評価部５２３に供給する。
【０５２４】
また、反復勾配法演算部５２２は、反復勾配法演算部１０３と同様に、初期ベクトルＶ０と、算出された動きベクトルＶｎをベクトル評価部５２３に出力し、ベクトル評価部１０４による動きベクトルの評価結果に基づいて、勾配法の演算を繰り返し行い、動きベクトルＶｎを算出する。なお、反復勾配法演算部５２２の詳細は、ベクトル評価部５２３の詳細とともに、図４６を参照して後述する。
【０５２５】
ベクトル評価部５２３は、図１７のベクトル評価部１０４と同様に、評価値演算部６１Ｂを有しており、評価値演算部６１Ｂに、反復勾配法演算部１０３からの動きベクトルＶｎ−１（または初期ベクトルＶ０）と、動きベクトルＶｎの評価値ｄｆｖを求めさせ、評価値演算部６１Ｂにより求められた評価値ｄｆｖに基づいて、反復勾配法演算部５２２を制御し、勾配法の演算を繰り返し実行させ、最終的に、評価値ｄｆｖに基づく、信頼性の高いものを選択する。
【０５２６】
このとき、ベクトル評価部５２３は、反復勾配法演算部５２２からの動きベクトルＶｎ−１（または初期ベクトルＶ０）、動きベクトルＶｎ、または０ベクトルの中から、反復勾配法演算部５２２からのカウンタフラグおよび各ベクトルの評価値ｄｆｖに応じて、後段において割付処理に用いられる検出ベクトルＶｅと、初期ベクトル選択部５２１において初期ベクトル選択の際に用いられる初期候補ベクトルＶｉｃをそれぞれ求める。そして、ベクトル評価部５２３は、求めた検出ベクトルＶｅを検出ベクトルメモリ５３に記憶させるとともに、求めた初期候補ベクトルＶｉｃを、初期候補ベクトルメモリ５２４に記憶させる。
【０５２７】
初期候補ベクトルメモリ５２４には、ベクトル評価部５２３により求められた初期候補ベクトルＶｉｃが、検出対象ブロックに対応して、記憶される。
【０５２８】
図４６は、反復勾配法演算部５２２およびベクトル評価部５２３の構成を示すブロック図である。
【０５２９】
図４６の反復勾配法演算部５２２は、セレクタ４０１、メモリ制御信号生成部４０２、メモリ４０３、勾配法演算部４０５、および遅延部４０６を備える点が、図２５の反復勾配法演算部１０３と共通するが、有効画素判定部４０４が、有効画素判定部５３１に入れ替わった点が、図２５の反復勾配法演算部１０３と異なっている。
【０５３０】
すなわち、有効画素判定部５３１は、有効画素判定部４０４と同様に、メモリ４０３から供給される対象画素値を用いて、例えば、フレームｔとフレームｔ＋１の演算ブロックの画素差分を演算することで、演算ブロックに、勾配法の演算に有効な画素の数が所定のしきい値より多いか否かを判定し、その判定結果に応じたカウンタフラグ（countflg）を、勾配法演算部４０５およびベクトル評価部５２３に供給する。
【０５３１】
このとき、有効画素判定部５３１による勾配法の演算に有効な画素の数の判定には、所定のしきい値αと所定のしきい値β（α＞β）の２種類のしきい値が用いられる。
【０５３２】
有効画素判定部５３１は、演算ブロックに、勾配法の演算に有効な画素の数が所定のしきい値αより多いと判定した場合、カウンタフラグ（countflg＝１）を勾配法演算部４０５およびベクトル評価部５２３に供給し、演算ブロックに、勾配法の演算に有効な画素の数が所定のしきい値αより少なく、所定のしきい値βよりも多いと判定した場合、カウンタフラグ（countflg＝１０）を勾配法演算部４０５およびベクトル評価部５２３に供給し、演算ブロックに、勾配法の演算に有効な画素の数が所定のしきい値βより少ないと判定した場合、カウンタフラグ（countflg＝０）を勾配法演算部４０５およびベクトル評価部５２３に供給する。
【０５３３】
また、有効画素判定部５３１は、有効画素判定部４０４と同様に、演算ブロックにおいて有効な画素と判定された画素について、水平方向および垂直方向それぞれの勾配状態を求め、水平方向または垂直方向のどちらか一方にのみ勾配がある画素の割合が多いか否かも判定し、その判定結果に応じた勾配フラグ(gladflg)を、勾配法演算部４０５およびベクトル評価部５２３に供給する。
【０５３４】
図４６のベクトル評価部５２３は、評価値演算部６１Ｂと備える点は、図２５のベクトル評価部１０４と共通するが、評価判定部４１２が評価判定部５４１に入れ替わった点が、図２５のベクトル評価部１０４と異なっている。
【０５３５】
評価値判定部５２３は、有効画素判定部５３１から供給されるカウンタフラグおよび勾配フラグに基づいて、勾配法演算処理を反復させるか否かを判定したり、検出ベクトルＶｅと初期候補ベクトルＶｉｃとをそれぞれ求める。
【０５３６】
すなわち、評価値判定部５２３は、必要に応じて、評価値演算部６１Ｂに演算させた評価値ｄｆｖを比較することにより、信頼性の高いものを選択して変更することで、動きベクトルＶを求め、有効画素判定部５３１からカウンタフラグ（countflg＝１）が供給された場合（すなわち、有効画素の数が、所定のしきい値αよりも多い場合）、勾配法演算処理を反復させるか否かを判定し、反復させると判定した場合、求めた動きベクトルＶを、遅延部４０６に出力する。
【０５３７】
また、評価値判定部５２３は、勾配法演算処理を反復させない場合、求めた動きベクトルＶまたは０ベクトルを、カウンタフラグの値に応じて、検出ベクトルＶｅとして、検出ベクトルメモリ５３に記憶させるとともに、初期候補ベクトルＶｉｃとして、初期候補ベクトルメモリ５２４に記憶させる。
【０５３８】
具体的には、評価値判定部５２３は、有効画素判定部５３１からカウンタフラグ（countflg＝１０）が供給された場合（すなわち、有効画素の数が、所定のしきい値αよりも少なく、所定のしきい値βよりも多い場合）、０ベクトルを、検出ベクトルＶｅとして、検出ベクトルメモリ５３に記憶させるとともに、求めた動きベクトルＶを、初期候補ベクトルＶｉｃとして、初期候補ベクトルメモリ５２４に記憶させる。
【０５３９】
評価値判定部５２３は、有効画素判定部５３１からカウンタフラグ（countflg＝０）が供給された場合（すなわち、有効画素の数が所定のしきい値βよりも少ない場合）、０ベクトルを、検出ベクトルＶｅとして、検出ベクトルメモリ５３に記憶させるとともに、初期候補ベクトルＶｉｃとして、初期候補ベクトルメモリ５２４に記憶させる。
【０５４０】
すなわち、有効画素判定部５３１においては、有効画素数の割合に対する所定のしきい値αにより、検出ベクトルＶｅを０ベクトルに落とすか否かの判定がなされる。したがって、所定のしきい値αが、図２５の有効画素判定部４０４におけるしきい値と同程度である場合、後段のベクトル割付部５４における検出ベクトルＶｅの精度は、図２５の場合と同程度となる。
【０５４１】
さらに、このとき、有効画素判定部５３１においては、所定のしきい値β（＜所定のしきい値α）により、初期候補ベクトルＶｉｃを０ベクトルに落とすか否かの判定がなされる。例えば、有効画素の数が所定のしきい値βよりも多い場合には、初期候補ベクトルＶｉｃは、検出ベクトルＶｅと比較して、検出処理結果としての精度は低いが０ベクトルではない、なんらかのベクトル値を持つことができる。
【０５４２】
これにより、他の周辺ブロックのベクトル検出処理において、このＶｉｃが、初期候補ベクトルとして用いられる場合、図２５の有効画素判定部４０４において有効画素の数が所定のしきい値αよりも少ない場合に０ベクトルに落としてしまう場合よりも、候補ベクトル群における０ベクトルの割合が少なくなり、候補ベクトル群のベクトル値のバリエーションが多くなる。その結果、図４６の有効画素判定部５３１においては、候補ベクトル内に真の動き量に近いベクトルが存在する可能性が、図２５の有効画素判定部４０４の場合よりも高くなり、図２５の有効画素判定部４０４の場合と比較して、初期ベクトルの精度を向上させることができる。
【０５４３】
図４７は、有効画素判定部５３１の詳細な構成例を示すブロック図である。
【０５４４】
図４７の有効画素判定部５３１は、画素差分算出部４２１、画素判定部４２２、カウンタ４２３、および演算実行判定部４２５を備える点は、図２６の有効画素判定部４０４と共通であり、勾配法継続判定部４２４が勾配法継続判定部５５１に入れ替わった点が、図２６の有効画素判定部４０４と異なる。
【０５４５】
すなわち、勾配法継続判定部５５１は、有効画素数カウンタ４４１を参照して、演算ブロックにおける勾配法の演算に有効な画素の数が所定のしきい値αより多いか否かを判定し、さらに、演算ブロックにおける勾配法の演算に有効な画素の数が所定のしきい値βより多いか否かを判定する。
【０５４６】
勾配法継続判定部５５１は、演算ブロックにおける勾配法の演算に有効な画素の数が所定のしきい値αより多いと判定した場合、勾配法演算を実行させ、検出ベクトルＶｅおよび初期候補ベクトルＶｉｃを、勾配法演算により求められた動きベクトルＶに決定させるカウンタフラグ（countflg＝１）を、演算実行判定部４２５、勾配法演算部４０５およびベクトル評価部５２３に供給する。
【０５４７】
また、勾配法継続判定部５５１は、演算ブロックに、勾配法の演算に有効な画素の数が所定のしきい値αより少なく、所定のしきい値βよりも多いと判定した場合、勾配法演算を実行させるが、検出ベクトルＶｅを０ベクトルに決定させ、初期候補ベクトルＶｉｃを、勾配法演算により求められた動きベクトルＶに決定させるカウンタフラグ（countflg＝１０）を、勾配法演算部４０５およびベクトル評価部５２３に供給する。
【０５４８】
さらに、勾配法継続判定部５５１は、演算ブロックに、勾配法の演算に有効な画素の数が所定のしきい値βより少ないと判定した場合、勾配法演算を打ち切らせ、検出ベクトルＶｅおよび初期候補ベクトルＶｉｃを０ベクトルに決定させるカウンタフラグ（countflg＝０）を勾配法演算部４０５およびベクトル評価部５２３に供給する。
【０５４９】
次に、図４８乃至図６２を参照して、検出ベクトルを初期候補ベクトルとして用いる図１７のベクトル検出部５２の場合と、必要に応じて別々の検出ベクトルと初期候補ベクトルを用いる図４５のベクトル検出部５２の場合とを比較して説明する。
【０５５０】
図４８乃至図６２の例においては、２つの２４Ｐ信号の時刻ｔのフレームｔおよび時刻ｔ＋１のフレームｔ＋１が示されており、矢印Ｔは、図中、上の時刻ｔのフレームｔから、下の時刻ｔ＋１のフレームｔ＋１への時間の経過方向を示している。また、フレームｔ上に示される仕切りは、各ブロックの境界を表しており、フレームｔ上には、図中左から、ブロックＡ０乃至Ａ２が示され、フレームｔ＋１上には、図中左から、フレームｔ上の図示せぬブロックが対応するブロックＢ−３乃至Ｂ−１、および、ブロックＡ０乃至Ａ２が対応するブロックＢ０乃至Ｂ２が示されている。すなわち、フレームｔおよびｔ＋１上において、番号が同じブロックは対応するブロックを表している。
【０５５１】
また、図４８乃至図５０、図５６、図５７、図６０、および図６２においては、フレームｔおよびフレームｔ＋１の間には、検出された動きベクトルに基づいて生成される例えば、時刻ｔ＋０．４の内挿フレームＦ１、および時刻ｔ＋０．８の内挿フレームＦ２が示されている。
【０５５２】
図４８の例においては、図１７のベクトル検出部５２により動きベクトルが正しく検出された場合に生成される内挿フレームの例が示されている。すなわち、フレームｔおよびフレームｔ＋１間において対応するブロック（ブロックＡ０とブロックＢ０）間の動きとして、正しく、真の動きベクトルＶ１が検出されており、これにより、内挿フレームＦ１および内挿フレームＦ２上の画像ブロックａ１およびａ２が正しく生成されている。
【０５５３】
しかしながら、動きベクトルＶ１は、図４９の例に示されるように、常に正しく求められるものとは限らない。例えば、図１７のベクトル検出部５２により実行される有効画素判定の結果、勾配法演算に用いられる有効画素の数が少ない場合、有効画素の数が少ない演算ブロックで演算された結果、求められる動きベクトルＶ２は、真の動きベクトルＶ１（すなわち、対応するブロックＡ０とブロックＢ０間で検出される確からしい動きベクトルＶ１）から大きく外れ、動きベクトルＶ２の両端のブロック（ブロックＡ０とブロックＢ−２）はそれぞれ対応するブロックではない。したがって、この動きベクトルＶ２を用いて生成される内挿フレームＦ１および内挿フレームＦ２上の画像ブロックｂ１およびｂ２には、破綻が目立つことが多い。
【０５５４】
これに対応して、図１７のベクトル検出部５２においては、図３２を参照して上述したように、有効画素の数が所定のしきい値以下の場合に、検出結果が０ベクトルＳ０とされる。すなわち、有効画素の数が少ないため、動きベクトルＶ２は、真の動きベクトルＶ１から大きく外れてしまうので、図５０の例に示されるように、検出結果である動きベクトルＶ２を０ベクトルＳ０とする。これにより、０ベクトルＳ０を用いて生成される内挿フレームＦ１および内挿フレームＦ２上の画像ブロックｃ１およびｃ２の破綻は、動き補償をなしとした場合の補間処理と同程度に抑えられ、比較的安定した画像ブロックｃ１およびｃ２が生成される。
【０５５５】
一方、反復勾配法において初期オフセットとなる初期ベクトルは、図２３を参照して上述したように、周辺ブロック（時空間含む）の検出結果から選択される。
【０５５６】
フレームｔおよびフレームｔ＋１間において対応するブロック（ブロックＡ０とブロックＢ０）間の動きとして、正しく、真の動きベクトルＶ１が検出されている場合（図４８の場合）、図５１の例に示されるように、検出対象のブロックＡ１においては、左隣のブロックであるブロックＡ０において正しく検出された真の動きベクトルＶ１が、初期ベクトルＶ０として選択されることがある。すなわち、周辺ブロックの検出結果を初期ベクトルとして用いるということは、検出対象ブロックと同一オブジェクトに含まれる可能性が高く、動き量の相関性が高いことから、動きベクトルが正しい場合には、ブロック間で動きの伝播効果が得られ、動き検出処理の収束が早くなるという利点がある。
【０５５７】
しかしながら、上述した図５０の場合のように、周囲のブロックに、検出結果である動きベクトルＶ２が確からしくなく、０ベクトルＳ０とされたものが多い場合、検出対象のブロックＡ１においては、図５２の例に示されるように、０ベクトルＳ０（左隣のブロックであるブロックＡ０において検出された動きベクトル）が、初期ベクトルＶ０として選択されやすくなってしまう。
【０５５８】
このとき、検出対象のブロックＡ１において、この初期ベクトルＶ０（０ベクトルＳ０）を用いて勾配法演算を行ったとしても、ブロックＡ１の演算ブロックにおいて、有効画素判定による有効画素の数が所定のしきい値αを下回りやすくなり、図５３の例に示されるように、検出結果である動きベクトルＶ２は、真の動きベクトルＶ１から大きく外れてしまい、結果的に、図５４の例に示されるように、検出対象のブロックＡ１においても、検出結果が０ベクトルになってしまうことが多い。
【０５５９】
このような場合に、さらに、検出対象が次のブロックＡ２になったとしても、図５４の例と同様のこと（すなわち、検出結果が０ベクトルＳ０になってしまうこと）が起こる可能性が多く、結果として、図５５の例に示されるように、あたかも０ベクトルＳ０が次々と伝播していくようになり、動き検出処理の収束（すなわち、真の動きベクトルＶ１に近づくこと）が遅くなってしまう。
【０５６０】
以上のように、後段で割り付けられる対象となる検出ベクトルと、初期ベクトル選択の候補となる初期候補ベクトルとして同じものを用いる図１７のベクトル検出部５２においては、検出対象の演算ブロックの有効画素の数が所定のしきい値以下の場合、検出ベクトルを０ベクトルにすることは、図５０を参照して上述したように、内挿フレーム上の画像ブロックの破綻を抑える効果はあるが、初期候補ベクトルも０ベクトルになってしまうため、動き検出処理の収束が遅くなってしまう。すなわち、有効画素の数が所定のしきい値以下の場合、図１７のベクトル検出部５２のように、検出ベクトルも初期候補ベクトルも、０ベクトルにしてしまうと、結果的に、品質の低下が生じてしまう。
【０５６１】
そこで、図４５のベクトル検出部５２においては、それを抑制するために、２つのしきい値を用いた有効画素判定を行い、有効画素判定の結果に応じて、検出された動きベクトルが、用いる用途（後段の割付処理において用いられるものか、ベクトル検出部５２内で用いられるものか）に応じて切り替えられる。
【０５６２】
すなわち、検出対象のブロックの演算ブロックにおける有効画素の数を所定のしきい値αと比較する際に、所定のしきい値αより若干低めのしきい値β（β＜α）を新たに設定し、有効画素の数が所定のしきい値αよりも少ないときに、すぐに、動きベクトルを０ベクトルに設定するのではなく、有効画素の数が、所定のしきい値αよりも少ないときには、有効画素の数が、所定のしきい値β以上であるかも判定する。そして、有効画素の数が、所定のしきい値αよりも少なく、かつ、所定のしきい値β以上である場合には、図５６の例に示されるように、後段の割付処理で用いられる検出ベクトルＶｅを、０ベクトルＳ０にするが、初期候補ベクトルＶｉｃは、勾配法演算で検出された検出結果である動きベクトルＶ２にする。
【０５６３】
具体的に説明すると、０ベクトルＳ０を後段の割付処理で用いられる検出ベクトルＶｅとすることにより、例えば、図５７の例に示されるように、図５０の例の場合と同様に、０ベクトルＳ０を用いて生成される内挿フレームＦ１および内挿フレームＦ２上の画像ブロックｃ１およびｃ２の破綻が、動き補償をなしとした場合の補間処理と同程度に抑えられ、その結果、比較的安定した画像ブロックｃ１およびｃ２を生成することができる。
【０５６４】
一方、勾配法演算で検出された検出結果である動きベクトルＶ２を、初期候補ベクトルＶｉｃとすることにより、図５８の例に示されるように、次の検出対象のブロックＡ１において、初期候補ベクトルＶｉｃ（Ｖ２）が初期ベクトルＶ０とされた場合、０ベクトルＳ０が初期ベクトルＶ０とされた場合（図５２の例の場合）よりも、初期ベクトルＶ０が真の動きベクトルＶ１に近づく。
【０５６５】
また、このとき、図５９の例に示されるように、検出対象のブロックＡ１において、初期ベクトルＶ０（動きベクトルＶ２）を用いて勾配法演算を行って求められる動きベクトルＶ３は、初期ベクトルＶ０よりもさらに真の動きベクトルＶ１に近づく可能性が高くなる。
【０５６６】
さらに、この検出対象のブロックＡ１における動き検出処理において、まだ有効画素の数が少なく、真の動きベクトルＶ１を得ることができなかった場合にも、後段の割付処理で用いられる検出ベクトルＶｅを０ベクトルＳ０に変更し、勾配法演算で検出された検出結果である動きベクトルＶ３を、初期候補ベクトルＶｉｃとする。
【０５６７】
後段の割付処理で用いられる検出ベクトルＶｅを０ベクトルＳ０に変更することにより、図６０の例に示されるように、内挿フレームＦ１および内挿フレームＦ２上の画像ブロックｄ１およびｄ２の破綻が、動き補償をなしとした場合の補間処理と同程度に抑えられ、その結果、比較的安定した画像ブロックｄ１およびｄ２が生成される。
【０５６８】
一方、勾配法演算で検出された検出結果である動きベクトルＶ３を、初期候補ベクトルＶｉｃとすることにより、図６１の例に示されるように、次の検出対象のブロックＡ２において、初期候補ベクトルＶｉｃ（Ｖ３）が初期ベクトルＶ０とされた場合、図５２の例の場合のように、０ベクトルＳ０が初期ベクトルＶ０とされた場合よりも、初期ベクトルＶ０（Ｖ３）がさらに真の動きベクトルＶ１に近づく。
【０５６９】
その結果、図６２の例に示されるように、検出対象のブロックＡ２における有効画素数の判定において、ブロックＡ２の演算ブロックの有効画素数が所定のしきい値αを上回り、勾配法演算結果の信頼度が向上し、検出対象のブロックＡ２において、初期ベクトルＶ０（動きベクトルＶ３）を用いて勾配法演算を行って真の動きベクトルＶ１を検出できる可能性が高くなる。
【０５７０】
これにより、フレームｔおよびフレームｔ＋１間において対応するブロック（ブロックＡ２とブロックＢ２）間の動きとして、正しく、真の動きベクトルＶ１が検出され、内挿フレームＦ１および内挿フレームＦ２上の画像ブロックｅ１およびｅ２が正しく生成される。
【０５７１】
以上のように、検出対象ブロックの演算ブロックにおける有効画素が、所定のしきい値αより少なく、所定のしきい値βよりも多い場合には、検出ベクトルのみ０ベクトルにして、初期候補ベクトルは、演算により求められる動きベクトルにするようにしたので、他の周辺ブロックのベクトル検出処理において、このＶｉｃが、初期候補ベクトルとして用いられるとき、候補ベクトル群における０ベクトルの割合が、図２５の有効画素判定部４０４において０ベクトルに落としてしまうときよりも、少なくなり、候補ベクトル群のベクトル値のバリエーションが多くなる。
【０５７２】
この結果、図４６の有効画素判定部５３１の場合、候補ベクトル内に真の動き量に近いベクトルが存在する可能性が、図２５の有効画素判定部４０４の場合よりも高くなり、図２５の有効画素判定部４０４の場合と比較して、初期ベクトルの精度を向上させることができる。
【０５７３】
これにより、後段の割付処理で用いる検出ベクトルの精度を従来と同程度に維持したまま、勾配法演算によるベクトル検出処理の収束速度を向上させることができる。
【０５７４】
次に、図６３のフローチャートを参照して、図４５のベクトル検出部５２の反復勾配法演算処理の例を説明する。なお、図６３のステップＳ５５１乃至Ｓ５５８は、図３２のステップＳ３０１乃至Ｓ３０８と同様の処理を行うので、その詳細な説明は適宜省略する。
【０５７５】
セレクタ４０１は、ステップＳ５５１において、オフセットベクトルＶｎ−１を選択し、選択したオフセットベクトルＶｎ−１を、メモリ制御信号生成部４０２、勾配法演算部４０５、および評価値演算部６１Ｂに出力する。
【０５７６】
メモリ制御信号生成部４０２は、ステップＳ５５２において、信号処理装置１の図示せぬ制御部からの制御信号およびセレクタ４０１からのオフセットベクトルＶｎ−１に応じて、メモリ４０３に記憶されている時刻ｔの画像のフレームｔと、時刻ｔ＋１の画像のフレームｔ＋１から、処理の対象となる演算ブロックの対象画素値を読み出させ、読み出した対象画素値を、有効画素判定部５３１および勾配法演算部４０５に供給させる。
【０５７７】
有効画素判定部５３１は、メモリ４０３から供給される対象画素値を入力すると、ステップＳ５５３において、有効画素判定処理を実行する。この有効画素判定処理は、図３３を参照して上述した有効画素判定処理と同様の処理であり、その説明は繰り返しになるので省略する。
【０５７８】
ステップＳ５５３の有効画素判定処理により、メモリ４０３から供給される対象画素値を用いて、フレームｔとフレームｔ＋１の演算ブロックの画素差分が演算されることで、演算ブロックに、勾配法の演算に有効な画素の数が有効画素数カウンタ４４１にカウントされる。また、演算ブロックにおいて有効な画素と判定された画素について、水平方向および垂直方向それぞれの勾配状態が求められ、水平勾配が無い画素の数と垂直勾配が無い画素の数が、それぞれ、水平勾配無カウンタ４４２および垂直勾配無カウンタ４４３にカウントされる。
【０５７９】
有効画素判定部５３１の勾配法継続判定部５５１は、ステップＳ５５４において、有効画素数カウンタ４４１に記憶されている値（有効画素の数）が所定のしきい値αより多いか否かを判定する。ステップＳ５５４において、有効画素の数が所定のしきい値αより多いと判定された場合、勾配法継続判定部５５１により、演算実行判定部４２５、勾配法演算部４０５および評価判定部５４１に、勾配法演算を実行させ、検出ベクトルＶｅおよび初期候補ベクトルＶｉｃを、勾配法演算により求められた動きベクトルＶに決定させるカウンタフラグ(countflg＝１)が出力され、処理は、ステップＳ５５５に進む。
【０５８０】
勾配法継続判定部５５１からカウンタフラグ(countflg＝１)が入力されると、演算実行判定部４２５は、ステップＳ５５５において、勾配法実行判定処理を実行する。この勾配法実行判定処理は、図３５を参照して上述した勾配法実行判定処理と同様の処理であり、その説明は繰り返しになるので省略する。
【０５８１】
ステップＳ５５５の勾配法実行判定処理により、有効画素数カウンタ４４１の有効画素の数、水平勾配無カウンタ４４２の水平勾配が無い画素の数、および垂直勾配無カウンタ４４３の垂直勾配が無い画素の数が参照されて、有効画素における片側勾配の画素の数が多いか否かが判定され、その判定結果に応じて、統合型勾配法演算処理および独立型勾配法演算処理の中から、勾配法演算部４０５が行う勾配法演算処理を切り替えるための勾配フラグ(gladflg)が設定され、設定された勾配フラグが、勾配法演算部４０５および評価判定部５４１に出力され、処理は、ステップＳ５５６に進む。
【０５８２】
勾配法継続判定部５５１からカウンタフラグ(countflg＝１)が入力され、演算実行判定部４２５から勾配フラグが入力されると、勾配法演算部４０５は、ステップＳ５５６において、勾配法演算処理を実行する。この勾配法演算処理は、図３６を参照して上述した勾配法演算処理と同様の処理であり、その説明は繰り返しになるので省略する。
【０５８３】
ステップＳ５５６の勾配法演算処理により、演算実行判定部４２５から勾配フラグに応じて、有効画素を用いての統合型勾配法演算処理、または、有効画素のうち、水平方向に勾配がある画素を用いての水平方向の独立型勾配法演算処理および垂直方向に勾配がある画素を用いての垂直方向の独立型勾配法演算処理のうちの少なくともどちらか一方が実行され、動きベクトルＶｎが求められ、求められた動きベクトルＶｎがベクトル評価部５２３に出力され、処理は、ステップＳ５５７に進む。
【０５８４】
ベクトル評価部５２３は、ステップＳ５５７において、ベクトル評価処理を実行する。このベクトル評価処理は、図３９を参照して上述したベクトル評価処理と同様の処理であり、その説明は繰り返しになるので省略する。
【０５８５】
ステップＳ５５７のベクトル評価処理により、勾配法演算部４０５から動きベクトルＶｎ、オフセットベクトルＶｎ−１、および０ベクトルの評価値ｄｆｖが求められ、演算実行判定部４２５から勾配フラグに基づいて、動きベクトルＶｎと、オフセットベクトルＶｎ−１または０ベクトルの評価値ｄｆｖが比較され、比較結果に応じて変更されて、動きベクトルＶが求められる。例えば、動きベクトルＶｎとオフセットベクトルＶｎ−１の評価値ｄｆｖが比較され、動きベクトルＶｎの評価値ｄｆｖの信頼度が高いとされた場合、動きベクトルＶｎは、動きベクトルＶとされて、勾配法演算の反復回数は１カウントされる。
【０５８６】
評価判定部５４１は、また、ステップＳ５５８において、演算実行判定部４２５からの勾配フラグおよび勾配法演算の反復回数に基づいて、勾配法演算を反復するか否かを判定する。すなわち、評価判定部５４１は、勾配フラグが、統合型勾配法演算処理を実行させるフラグ（gladflg＝４）であり、かつ、勾配法演算の反復回数が設定された最大反復回数（例えば、２回）になっていない場合、ステップＳ５５８において、勾配法演算を反復すると判定し、求められた動きベクトルＶを、遅延部４０６に出力する。
【０５８７】
遅延部４０６は、評価判定部５４１から入力される動きベクトルＶを、有効画素判定部５３１および勾配法演算部４０５の次の処理のサイクルまで保持し、次の処理のサイクルで、動きベクトルＶをセレクタ４０１に出力する。これにより、処理は、ステップＳ５５１に進み、それ以降の処理が繰り返される。
【０５８８】
また、評価判定部５４１は、勾配フラグが、統合型勾配法演算処理を実行させるフラグ以外であった場合、または、勾配法演算の反復回数が設定された最大反復回数（例えば、２回）になった場合、ステップＳ５５８において、勾配法演算を反復しない（すなわち、終了する）と判定し、ステップＳ５６５において、求められた動きベクトルＶを、検出対象ブロックに対応させて、検出ベクトルＶｅとして、検出ベクトルメモリ５３に記憶させ、初期候補ベクトルＶｉｃとして、初期候補ベクトルメモリ５２４に記憶させる。なお、このとき、検出ベクトルＶｅおよびその評価値ｄｆｖは、シフト初期ベクトル割付部１０５にも出力される。
【０５８９】
一方、ステップＳ５５４において、有効画素数が所定のしきい値αより少ないと判定された場合、勾配法継続判定部５５１は、有効画素数が所定のしきい値βより多いか否かを判定する。ステップＳ５５９において、勾配法継続判定部５５１により、有効画素数が所定のしきい値βより多いと判定された場合、勾配法演算を実行させるが、検出ベクトルＶｅを０ベクトルに決定させ、初期候補ベクトルＶｉｃを、勾配法演算により求められた動きベクトルＶに決定させるカウンタフラグ（countflg＝１０）が、勾配法演算部４０５および評価判定部５４１に出力され、処理は、ステップＳ５６０に進む。
【０５９０】
勾配法継続判定部５５１からカウンタフラグ(countflg＝１０)が入力されると、演算実行判定部４２５は、ステップＳ５６０において、勾配法実行判定処理を実行する。この勾配法実行判定処理は、上述したステップＳ５５５の勾配法実行判定処理と同様の処理であり、その説明は繰り返しになるので省略する。
【０５９１】
ステップＳ５６０の勾配法実行判定処理により、有効画素数カウンタ４４１の有効画素の数、水平勾配無カウンタ４４２の水平勾配が無い画素の数、および垂直勾配無カウンタ４４３の垂直勾配が無い画素の数が参照されて、有効画素における片側勾配の画素の数が多いか否かが判定され、その判定結果に応じて、統合型勾配法演算処理および独立型勾配法演算処理の中から、勾配法演算部４０５が行う勾配法演算処理を切り替えるための勾配フラグ(gladflg)が設定され、設定された勾配フラグが、勾配法演算部４０５および評価判定部５４１に出力され、処理は、ステップＳ５６１に進む。
【０５９２】
勾配法継続判定部５５１からカウンタフラグ(countflg＝１０)が入力され、演算実行判定部４２５から勾配フラグが入力されると、勾配法演算部４０５は、ステップＳ５６１において、勾配法演算処理を実行する。この勾配法演算処理は、上述したステップＳ５５６の勾配法演算処理と同様の処理であり、その説明は繰り返しになるので省略する。
【０５９３】
ステップＳ５６１の勾配法演算処理により、演算実行判定部４２５から勾配フラグに応じて、有効画素を用いての統合型勾配法演算処理、または、有効画素のうち、水平方向に勾配がある画素を用いての水平方向の独立型勾配法演算処理および垂直方向に勾配がある画素を用いての垂直方向の独立型勾配法演算処理のうちの少なくともどちらか一方が実行され、動きベクトルＶｎが求められ、求められた動きベクトルＶｎが評価値演算部６１Ｂに出力され、処理は、ステップＳ５６２に進む。
【０５９４】
ベクトル評価部５２３は、ステップＳ５６２において、ベクトル評価処理を実行する。このベクトル評価処理は、上述したステップＳ５５９のベクトル評価処理と同様の処理であり、その説明は繰り返しになるので省略する。
【０５９５】
ステップＳ５６２のベクトル評価処理により、勾配法演算部４０５から動きベクトルＶｎ、オフセットベクトルＶｎ−１、および０ベクトルの評価値ｄｆｖが求められ、演算実行判定部４２５から勾配フラグに基づいて、動きベクトルＶｎと、オフセットベクトルＶｎ−１または０ベクトルの評価値ｄｆｖが比較され、比較結果に応じて変更されて、動きベクトルＶが求められる。なお、この場合（所定のしきい値αよりも少ないとされた場合）、動きベクトルＶｎは、所定のしきい値αよりも少ない有効画素で演算された結果であり、所定のしきい値αよりも多い有効画素で演算された結果ほどの品質は望めないので、反復は実行されない。
【０５９６】
評価判定部５４１は、カウンタフラグ(countflg＝１０)に基づいて、ステップＳ５６３において、検出ベクトルＶｅのみを０ベクトルに決定し、ステップＳ５６５において、検出対象ブロックに対応させて、０ベクトルを、検出ベクトルＶｅとして、検出ベクトルメモリ５３に記憶させ、検出対象ブロックに対応させて、求められた動きベクトルＶを、初期候補ベクトルＶｉｃとして、初期候補ベクトルメモリ５２４に記憶させる。なお、このとき、検出ベクトルＶｅおよびその評価値ｄｆｖは、シフト初期ベクトル割付部１０５にも出力される。
【０５９７】
一方、ステップＳ５５４において、有効画素数が所定のしきい値βより少ないと判定された場合、勾配法継続判定部５５１により、勾配法演算を打ち切らせ、検出ベクトルＶｅおよび初期候補ベクトルＶｉｃを０ベクトルに決定させるカウンタフラグ（countflg＝０）が勾配法演算部４０５および評価判定部５４１に出力され、処理は、ステップＳ５６４に進む。
【０５９８】
これに対応して、演算実行判定部４２５および勾配法演算部４０５は、勾配法継続判定部５５１からのカウンタフラグの値が０の場合、勾配法演算を実行しない。
【０５９９】
評価値判定部５４１は、ステップＳ５６４において、カウンタフラグ(countflg＝０)に基づいて、検出ベクトルＶｅおよび初期候補ベクトルＶｉｃを０ベクトルに決定し、ステップＳ５６５において、検出対象ブロックに対応させて、０ベクトルを、検出ベクトルＶｅとして、検出ベクトルメモリ５３に記憶させ、初期候補ベクトルＶｉｃとして、初期候補ベクトルメモリ５２４に記憶させる。なお、このとき、検出ベクトルＶｅおよびその評価値ｄｆｖは、シフト初期ベクトル割付部１０５にも出力される。
【０６００】
以上のように、演算ブロック内の有効画素数の割合を、所定のしきい値αだけでなく、所定のしきい値αよりもさらに少ないしきい値βを用いて判定し、演算ブロック内の有効画素数が所定のしきい値αより少なく、所定のしきい値βよりも多かった場合には、勾配法演算を打ち切ることなく、勾配法演算結果を、初期候補ベクトルとし、０ベクトルを検出ベクトルするようにしたので、後段の割付処理で用いる検出ベクトルの精度を従来と同程度に維持したまま、勾配法演算によるベクトル検出処理の収束速度を向上させることができる。
【０６０１】
さらに、演算ブロック内の有効画素数が所定のしきい値αより少なく、所定のしきい値βよりも多かった場合には、勾配法演算を行ったとしても、反復はさせないようにしたので、演算の負荷も抑制される。
【０６０２】
なお、上記説明においては、所定のしきい値αを所定のしきい値βよりも先に判定する例を説明したが、所定のしきい値βを先に比較判定することもできる。
【０６０３】
次に、図６４および図６５のフローチャートを参照して、図４５のベクトル検出部５２の反復勾配法演算処理の他の例を説明する。
【０６０４】
図６４の例においては、所定のしきい値αよりも値が低めの所定のしきい値βよりも有効画素数が多いと判定された場合には、統合型勾配法演算および独立型勾配法演算の両方が行われ、評価値判定部５４１において、カウンタフラグおよび勾配フラグの値に基づいて、検出ベクトルＶｅおよび初期候補ベクトルＶｉｃが決定される処理が示されている。
【０６０５】
なお、以下、統合型勾配法演算により求められるベクトルを、統合型演算結果ベクトルｇｖとし、独立型勾配法演算により求められるベクトルを、独立型演算結果ベクトルｓｇｖとし、検出ベクトルＶｅとして仮設定されるベクトルを、仮設定検出ベクトルｔｖｅとし、初期候補ベクトルＶｉｃとして仮設定されるベクトルを、仮設定初期候補ベクトルｔｖｉとして説明する。
【０６０６】
セレクタ４０１は、ステップＳ６０１において、オフセットベクトルＶｎ−１を選択し、選択したオフセットベクトルを、メモリ制御信号生成部４０２、勾配法演算部４０５、および評価値演算部６１Ｂに出力する。
【０６０７】
メモリ制御信号生成部４０２は、信号処理装置１の図示せぬ制御部からの制御信号およびセレクタ４０１からのオフセットベクトルＶｎ−１に応じて、メモリ４０３に記憶されている時刻ｔの画像のフレームｔと、時刻ｔ＋１の画像のフレームｔ＋１から、処理の対象となる演算ブロックの対象画素値を読み出させる。このとき、メモリ制御信号生成部４０２は、ステップＳ６０２において、フレームｔ＋１における演算ブロックの対象画素が枠外であるか否かを判定する。
【０６０８】
フレームｔ＋１における演算ブロックの対象画素が枠外であると判定された場合、ステップＳ６０３において、勾配法継続判定部５５１は、カウンタフラグの値を３に設定し、カウンタフラグ（countflg＝３）を、演算実行判定部４２５、勾配法演算部４０５、および評価判定部５４１に出力する。
【０６０９】
これに対応して、演算実行判定部４２５および勾配法演算部４０５は、勾配法継続判定部４２４からのカウンタフラグの値が３の場合、各処理を行わない。
【０６１０】
評価値判定部５４１は、ステップＳ６０４において、カウンタフラグ(countflg＝３)に基づいて、オフセットベクトルＶｎ−１を、仮設定検出ベクトルｔｖｅとして仮設定し（すなわち、仮設定検出ベクトルの水平方向成分：tve.x=Vn-1.x、仮設定検出ベクトルの垂直方向成分：tve.y=Vn-1.y）、０ベクトルを、仮設定初期候補ベクトルｔｖｉとして仮設定する（すなわち、仮設定初期候補ベクトルの水平方向成分：tvi.x=0.0、仮設定初期候補ベクトルの垂直方向成分：tvi.y=0.0）。仮設定検出ベクトルｔｖｅおよび仮設定初期候補ベクトルｔｖｉの設定後、処理は、図６５のステップＳ６１５に進む。
【０６１１】
フレームｔ＋１における演算ブロックの対象画素が枠外ではないと判定された場合、ステップＳ６０６において、メモリ制御信号生成部４０２は、メモリ４０３から読み出した演算ブロックの対象画素値を、有効画素判定部５３１および勾配法演算部４０５に供給させる。
【０６１２】
有効画素判定部５３１は、メモリ４０３から供給される対象画素値を入力すると、ステップＳ６０６において、有効画素判定処理を実行する。この有効画素判定処理は、図３３を参照して上述した有効画素判定処理と同様の処理であり、その説明は繰り返しになるので省略する。
【０６１３】
ステップＳ５５３の有効画素判定処理により、メモリ４０３から供給される対象画素値を用いて、フレームｔとフレームｔ＋１の演算ブロックの画素差分が演算されることで、演算ブロックに、勾配法の演算に有効な画素の数が有効画素数カウンタ４４１にカウントされる。また、演算ブロックにおいて有効な画素と判定された画素について、水平方向および垂直方向それぞれの勾配状態が求められ、水平勾配が無い画素の数と垂直勾配が無い画素の数が、それぞれ、水平勾配無カウンタ４４２および垂直勾配無カウンタ４４３にカウントされる。
【０６１４】
勾配法継続判定部５５１は、ステップＳ６０７において、有効画素数カウンタ４４１に記憶されている値（有効画素の数）が所定のしきい値βより少ないか否かを判定する。ステップＳ６０７において、有効画素の数が所定のしきい値βより少ないと判定された場合、勾配法継続判定部５５１は、ステップＳ６０８において、カウンタフラグの値を０に設定し、勾配法演算を打ち切るカウンタフラグ（countflg＝０）を、演算実行判定部４２５、勾配法演算部４０５、および評価判定部５４１に出力する。
【０６１５】
これに対応して、演算実行判定部４２５および勾配法演算部４０５は、勾配法継続判定部４２４からのカウンタフラグの値が０の場合、各処理を行わない。
【０６１６】
評価値判定部５４１は、ステップＳ６０９において、カウンタフラグ(countflg＝０)に基づいて、０ベクトルを、仮設定検出ベクトルｔｖｅとして仮設定し（すなわち、仮設定検出ベクトルの水平方向成分：tve.x=0.0、仮設定検出ベクトルの垂直方向成分：tve.y=0.0）、０ベクトルを、仮設定初期候補ベクトルｔｖｉとして仮設定する（すなわち、仮設定初期候補ベクトルの水平方向成分：tvi.x=0.0、仮設定初期候補ベクトルの垂直方向成分：tvi.y=0.0）。仮設定検出ベクトルｔｖｅおよび仮設定初期候補ベクトルｔｖｉの設定後、処理は、図６５のステップＳ６１５に進む。
【０６１７】
ステップＳ６０７において、有効画素の数が所定のしきい値βより多いと判定された場合、ステップＳ６１０において、勾配法継続判定部５５１は、統合型勾配法演算に用いられる式（１４）の分母が０であるか否かを判定する。有効画素すべてが水平勾配を持っていない場合、または、有効画素すべてが水平勾配を持っていない場合、統合型勾配法演算に用いられる式（１４）の分母は０になる。したがって、この場合、勾配法継続判定部５５１は、有効画素数カウンタ４４１の他に、水平勾配無カウンタ４４２および垂直勾配無カウンタ４４３を参照して、有効画素数カウンタ４４１の値と水平勾配無カウンタ４４２の値が同じ数であるか否か、および、有効画素数カウンタ４４１の値と垂直勾配無カウンタ４４３の値が同じ数であるか否かを判定することで、統合型勾配法演算に用いられる式（１４）の分母が０であるか否かを判定する。
【０６１８】
ステップＳ６１０において、有効画素数カウンタ４４１の値と、水平勾配無カウンタ４４２の値、または垂直勾配無カウンタ４４３の値が同じ数であると判定された場合、統合型勾配法演算に用いられる式（１４）の分母が０であると判定され、勾配法継続判定部５５１は、ステップＳ６１１において、カウンタフラグの値を２に設定し、勾配法演算を打ち切るカウンタフラグ（countflg＝２）を、演算実行判定部４２５、勾配法演算部４０５、および評価判定部５４１に出力する。
【０６１９】
これに対応して、演算実行判定部４２５および勾配法演算部４０５は、勾配法継続判定部４２４からのカウンタフラグの値が２の場合、各処理を行わない。
【０６２０】
評価値判定部５４１は、ステップＳ６１２において、カウンタフラグ(countflg＝２)に基づいて、オフセットベクトルＶｎ−１を、仮設定検出ベクトルｔｖｅとして仮設定し（すなわち、仮設定検出ベクトルの水平方向成分：tve.x=Vn-1.x、仮設定検出ベクトルの垂直方向成分：tve.y=Vn-1.y）、オフセットベクトルＶｎ−１を、仮設定初期候補ベクトルｔｖｉとして仮設定する（すなわち、仮設定初期候補ベクトルの水平方向成分：tvi.x= Vn-1.x、仮設定初期候補ベクトルの垂直方向成分：tvi.y= Vn-1.y）。仮設定検出ベクトルｔｖｅおよび仮設定初期候補ベクトルｔｖｉの設定後、処理は、図６５のステップＳ６１５に進む。
【０６２１】
ステップＳ６１０において、有効画素数カウンタ４４１の値と、水平勾配無カウンタ４４２の値、および垂直勾配無カウンタ４４３の値が同じ数ではないと判定された場合、統合型勾配法演算に用いられる式（１４）の分母が０ではないと判定され、勾配法継続判定部５５１は、ステップＳ６１３において、カウンタフラグの値を１に設定し、勾配法演算を実行させるカウンタフラグ（countflg＝１）を、勾配法演算部４０５および評価判定部５４１に出力する。
【０６２２】
これに対応して、勾配法演算部４０５、および評価判定部５４１は、ステップＳ６１４において、勾配法演算および仮設定処理を実行する。この勾配法演算および仮設定処理を、図６６のフローチャートを参照して説明する。
【０６２３】
勾配法継続判定部５５１からカウンタフラグ(countflg＝１)が入力されると、有効画素判定部４７１は、ステップＳ６３１において、勾配法演算部４０５の各部を制御し、統合型勾配法演算処理を実行させる。この統合型勾配法演算処理は、図３７のフローチャートを参照して上述したので、その説明は省略する。
【０６２４】
ステップＳ６３１の統合型勾配法演算処理により、有効画素が勾配法演算の対象とされ、有効画素の水平方向の画素差分Δｘ、垂直方向の画素差分Δｙ、および時間方向の画素差分Δｔが積算されて、積算された勾配と式（１４）の最小自乗和を用いて、統合型演算結果ベクトルｇｖが求められて、ベクトル算出部４６４に出力される。
【０６２５】
ベクトル算出部４６４は、ステップＳ６３２において、セレクタ４０１からのオフセットベクトルＶｎ−１に、統合型勾配演算部４６３−１により求められた統合型演算結果ベクトルｇｖを加算し、ベクトル評価部１０４に出力する。
【０６２６】
また、有効画素判定部４７１は、ステップＳ６３３において、勾配法演算部４０５の各部を制御し、水平方向の独立型勾配法演算処理を実行させる。この独立型勾配法演算処理は、図３８のフローチャートを参照して上述したので、その説明は省略する。
【０６２７】
ステップＳ６３３の水平方向の独立型勾配法演算処理により、有効画素のうち、水平方向に勾配がある画素が勾配法演算の対象とされ、有効画素の水平方向の画素差分Δｘ、および時間方向の画素差分Δｔが積算されて、積算された勾配と式（２３）を用いて、独立型演算結果ベクトルｓｇｖの水平方向成分（sgv.x）が求められて、ベクトル算出部４６４に出力される。
【０６２８】
有効画素判定部４７１は、ステップＳ６３４において、勾配法演算部４０５の各部を制御し、垂直方向の独立型勾配法演算処理を実行させる。この独立型勾配法演算処理は、図３８のフローチャートを参照して上述したので、その説明は省略する。
【０６２９】
ステップＳ６３４の垂直方向の独立型勾配法演算処理により、有効画素のうち、垂直方向に勾配がある画素が勾配法演算の対象とされ、有効画素の垂直方向の画素差分Δｙ、および時間方向の画素差分Δｔが積算されて、積算された勾配と式（２３）を用いて、独立型演算結果ベクトルｓｇｖの垂直方向成分（sgv.y）が求められて、ベクトル算出部４６４に出力される。
【０６３０】
ベクトル算出部４６４には、独立型勾配演算部４６３−２より独立型演算結果ベクトルｓｇｖの水平方向成分および垂直方向成分の少なくとも一方が入力される。ベクトル算出部４６４は、ステップＳ６３５において、セレクタ４０１からのオフセットベクトルＶｎ−１の対象方向成分（水平方向成分および垂直方向成分の少なくとも一方）と、独立型勾配演算部４６３−２により求められた独立型演算結果ベクトルｓｇｖの対象方向成分を加算し、ベクトル評価部１０４に出力する。
【０６３１】
なお、このとき、独立型演算結果ベクトルｓｇｖの方向成分のうち、独立型勾配演算部４６３−２より入力されない方向成分は、０ベクトルとされる。
【０６３２】
ステップＳ６３６において、勾配法継続判定部５５１は、有効画素の数が所定のしきい値αより少ないか否かを判定する。ステップＳ６３６において、有効画素の数が所定のしきい値αより少ないと判定された場合、ステップＳ６３７において、カウンタフラグの値を１０に設定し、オフセットベクトルＶｎ−１に統合型演算結果ベクトルｇｖを加算した値を、初期候補ベクトルとする（すなわち、ｔｖｉ＝Ｖｎ−１＋ｇｖ）カウンタフラグ（countflg＝１０）を、評価判定部５４１に出力する。
【０６３３】
ステップＳ６３８において、評価判定部５４１は、カウンタフラグ(countflg＝１０)に基づいて、仮設定検出ベクトルｔｖｅを、０ベクトルに仮設定し（すなわち、仮設定検出ベクトルの水平方向成分：tve.x=0.0、仮設定検出ベクトルの垂直方向成分：tve.y=0.0）、仮設定初期候補ベクトルｔｖｉを、オフセットベクトルＶｎ−１に統合型演算結果ベクトルｇｖを加算した値に仮設定する（すなわち、仮設定初期候補ベクトルの水平方向成分：tvi.x= Vn-1.x + gv.x、仮設定初期候補ベクトルの垂直方向成分：tvi.y= Vn-1.y + gv.y）。仮設定検出ベクトルｔｖｅおよび仮設定初期候補ベクトルｔｖｉの設定後、処理は、図６５のステップＳ６１５に進む。
【０６３４】
ステップＳ６３６において、有効画素の数が所定のしきい値αより多いと判定された場合、値が１に設定されたカウンタフラグ（countflg＝１）が演算実行判定部４２５にも出力され、演算実行判定部４２５は、ステップＳ６３９において、勾配法実行判定処理を実行する。この勾配法実行判定処理は、図３５を参照して上述した勾配法実行判定処理と同様の処理であり、その説明は繰り返しになるので省略する。
【０６３５】
ステップＳ６３９の勾配法実行判定処理により、有効画素数カウンタ４４１の有効画素の数、水平勾配無カウンタ４４２の水平勾配が無い画素の数、および垂直勾配無カウンタ４４３の垂直勾配が無い画素の数が参照されて、有効画素における片側勾配の画素の数が多いか否かが判定され、その判定結果に応じて、統合型勾配法演算処理および独立型勾配法演算処理の中から、勾配法演算部４０５が行う勾配法演算処理を切り替えるための勾配フラグ(gladflg)が設定され、設定された勾配フラグが、勾配法演算部４０５および評価判定部５４１に出力され、処理は、ステップＳ６４０に進む。
【０６３６】
ステップＳ６４０において、評価判定部５４１は、カウンタフラグ(countflg＝１)と勾配フラグの値に基づいて、仮設定検出ベクトルｔｖｅと仮設定初期候補ベクトルｔｖｉを仮設定する。
【０６３７】
すなわち、勾配フラグの値が１の場合、水平方向に対しては信用があるとして、仮設定検出ベクトルの水平方向成分：tve.x= Vn-1.x + sgv.x、仮設定検出ベクトルの垂直方向成分：tve.y= 0.0が仮設定され、仮設定初期候補ベクトルの水平方向成分：tvi.x= Vn-1.x + sgv.x、仮設定初期候補ベクトルの垂直方向成分：tvi.y= 0.0が仮設定される。
【０６３８】
勾配フラグの値が２の場合、垂直方向に対しては信用があるとして、仮設定検出ベクトルの水平方向成分：tve.x=0.0、仮設定検出ベクトルの垂直方向成分：tve.y=Vn-1.y + sgv.yが仮設定され、仮設定初期候補ベクトルの水平方向成分：tvi.x= 0.0、仮設定初期候補ベクトルの垂直方向成分：tvi.y= Vn-1.y + sgv.yが仮設定される。
【０６３９】
勾配フラグの値が３の場合、水平および垂直方向のどちらにも信用がないとして、仮設定検出ベクトルの水平方向成分：tve.x= 0.0、仮設定検出ベクトルの垂直方向成分：tve.y= 0.0が仮設定され、仮設定初期候補ベクトルの水平方向成分：tvi.x= 0.0、仮設定初期候補ベクトルの垂直方向成分：tvi.y= 0.0が仮設定される。
【０６４０】
勾配フラグの値が４の場合、片側勾配の画素があまりなく、水平および垂直方向のどちらにも信用があるとして、仮設定検出ベクトルの水平方向成分：tve.x= Vn-1.x + sv.x、仮設定検出ベクトルの垂直方向成分：tve.y= Vn-1.y + sv.yが仮設定され、仮設定初期候補ベクトルの水平方向成分：tvi.x= Vn-1.x + sv.x、仮設定初期候補ベクトルの垂直方向成分：Vn-1.y + sv.yが仮設定される。なお、この場合のみ、反復回数は１加算される。
【０６４１】
勾配フラグの値が０の場合、片側勾配の画素が多少あるが、水平および垂直方向のどちらにも少しの信用があるとして、仮設定検出ベクトルの水平方向成分：tve.x= Vn-1.x + sgv.x、仮設定検出ベクトルの垂直方向成分：tve.y= Vn-1.y + sgv.yが仮設定され、仮設定初期候補ベクトルの水平方向成分：tvi.x= Vn-1.x + sgv.x、仮設定初期候補ベクトルの垂直方向成分：Vn-1.y + sgv.yが仮設定される。
【０６４２】
ステップＳ６４０における、仮設定検出ベクトルｔｖｅおよび仮設定初期候補ベクトルｔｖｉの設定後、処理は、図６５のステップＳ６１５に進む。
【０６４３】
ステップＳ６１５において、評価判定部５４１は、仮設定した各ベクトル（仮設定検出ベクトルｔｖｅおよび仮設定初期候補ベクトルｔｖｉ）のリミットを判定する。各ベクトルの値は、所定のベクトル値を超えていないと判定された場合には、仮設定されたベクトルのままとされるが、所定のベクトル値を超えていたと判定された場合には、０ベクトルとされる。
【０６４４】
ステップＳ６１６において、評価判定部５４１は、カウンタフラグの値と勾配フラグの値に基づいて、仮設定検出ベクトルｔｖｅおよび仮設定初期候補ベクトルｔｖｉのベクトル評価処理を行う。
【０６４５】
すなわち、評価判定部５４１は、カウンタフラグの値と勾配フラグの値に応じて、オフセットベクトルＶｎ−１、０ベクトル、仮設定検出ベクトルｔｖｅおよび仮設定初期候補ベクトルｔｖｉの評価値を演算させ、仮設定検出ベクトルｔｖｅの評価値ｄｆｖと、オフセットベクトルＶｎ−１の評価値ｄｆｖまたは０ベクトルの評価値ｄｆｖ、および仮設定初期候補ベクトルｔｖｉの評価値ｄｆｖと、オフセットベクトルＶｎ−１の評価値ｄｆｖまたは０ベクトルの評価値ｄｆｖをそれぞれ比較し、評価値ｄｆｖの値が小さい（すなわち、信頼性が高い）とされたベクトルで、仮設定検出ベクトルｔｖｅおよび仮設定初期候補ベクトルｔｖｉを更新（変更）する。
【０６４６】
ステップＳ６１７において、評価判定部５４１は、カウンタフラグの値と勾配フラグの値、反復回数に基づいて、勾配法演算の反復を終了するか否かを判定する。カウンタフラグの値が１で、勾配フラグの値が４であり、規定の反復回数を超えていない場合、ステップＳ６１７において、反復すると判定され、処理は、図６４のステップＳ６０１に戻り、それ以降の処理を繰り返す。
【０６４７】
すなわち、この際、評価判定部５４１は、ステップＳ６１６のベクトル評価結果により更新された仮設定検出ベクトルｔｖｅを、遅延部４０６に供給する。
【０６４８】
ステップＳ６１７において、反復を終了すると判定された場合、評価判定部５４１は、ステップＳ６１８において、検出ベクトルＶｅを、仮設定検出ベクトルｔｖｅに決定し、決定した検出ベクトルＶｅを、検出対象ブロックに対応させて、検出ベクトルメモリ５３に記憶させ、初期候補ベクトルＶｉｃを、仮設定初期候補ベクトルｔｖｉに決定し、決定した初期候補ベクトルＶｉｃを、検出対象ブロックに対応させて、初期候補ベクトルメモリ５２４に記憶させる。
【０６４９】
上述したステップＳ６１６およびＳ６１７の処理について、図６７を参照して説明する。
【０６５０】
図６７は、各フラグの値毎のベクトル評価の比較対象と反復判定結果を示している。なお、カウンタフラグの値が「１」の場合のみ、勾配フラグが設定されている。
【０６５１】
カウンタフラグの値が「０」のとき、勾配フラグは設定されておらず、ステップＳ６１６のベクトル評価における比較は「無」であり、ステップＳ６１７における反復判定は、「しない」と判定される。
【０６５２】
カウンタフラグの値が「１」で勾配フラグが「１」のとき、ステップＳ６１６のベクトル評価における比較対象は「０ベクトル」であり、ステップＳ６１７における反復判定は、「しない」と判定される。
【０６５３】
カウンタフラグの値が「１」で勾配フラグが「２」のとき、ステップＳ６１６のベクトル評価における比較対象は「０ベクトル」であり、ステップＳ６１７における反復判定は、「しない」と判定される。
【０６５４】
カウンタフラグの値が「１」で勾配フラグが「３」のとき、ステップＳ６１６のベクトル評価における比較対象は「０ベクトル」であり、ステップＳ６１７における反復判定は、「しない」と判定される。
【０６５５】
カウンタフラグの値が「１」で勾配フラグが「４」のとき、ステップＳ６１６のベクトル評価における比較対象は「オフセットベクトル（Ｖｎ−１）」であり、ステップＳ６１７における反復判定は、「比較結果依存」と判定される。すなわち、所定の反復回数が満たされてなければ、比較結果に応じたベクトルがオフセットベクトルとして反復される。
【０６５６】
カウンタフラグの値が「２」のとき、勾配フラグは設定されておらず、ステップＳ６１６のベクトル評価における比較対象は「オフセットベクトル（Ｖｎ−１）」であり、ステップＳ６１７における反復判定は、オフセットベクトルが仮設定検出ベクトルｔｖｅと同じであるので、「しない」と判定される。
【０６５７】
カウンタフラグの値が「３」のとき、勾配フラグは設定されておらず、ステップＳ６１６のベクトル評価における比較対象は「オフセットベクトル（Ｖｎ−１）」であり、ステップＳ６１７における反復判定は、オフセットベクトルが仮設定検出ベクトルｔｖｅと同じであるので、「しない」と判定される。
【０６５８】
カウンタフラグの値が「１０」のとき、勾配フラグは設定されておらず、ステップＳ６１６のベクトル評価における比較は「無」であり、ステップＳ６１７における反復判定は、「しない」と判定される。
【０６５９】
なお、図６７の例においては、カウンタフラグの値が「１」で勾配フラグが「０」のときについては図示されないが、勾配フラグが「１，２，３」の場合と同様に、ステップＳ６１６のベクトル評価における比較対象は「０ベクトル」であり、ステップＳ６１７における反復判定は、「しない」と判定される。
【０６６０】
以上のように、必要に応じて、統合型勾配法演算および独立型勾配法演算の両方を行い、カウンタフラグに基づき、検出ベクトル、および初期候補ベクトルをそれぞれ仮設定しておき、カウンタフラグおよび勾配フラグに基づいて、最終的に、検出ベクトル、初期候補ベクトルを決定するようにすることもできる。
【０６６１】
なお、上述した図４５のベクトル検出部５２においては、検出ベクトルと初期候補ベクトルを異なるベクトルとして保持するために、検出ベクトルメモリ５３とは別に、初期候補ベクトルメモリ５２４が追加して構成されている。このため、図１７のベクトル検出部５２と比較した場合、図４５のベクトル検出部５２におけるメモリ量が２倍になってしまう。そこで、図６８を参照して、初期候補ベクトルメモリ５２４を追加することなく、検出ベクトルと初期候補ベクトルを異なるベクトルとして保持するようにした構成例を説明する。
【０６６２】
図６８は、図４５のベクトル検出部５２の他の構成例を示すブロック図である。
【０６６３】
図６８のベクトル検出部５２は、プリフィルタ１０２−１および１０２−２、シフト初期ベクトル割付部１０５、評価値メモリ１０６、シフト初期ベクトルメモリ１０７、および反復勾配法演算部５２２を備える点が、図１７のベクトル検出部５２と共通するが、初期ベクトル選択部５２１が図１７の初期ベクトル選択部１０１に入れ替わった点、ベクトル評価部５２３がベクトル評価部５６１に入れ替わった点、および初期候補ベクトルメモリ５２４が除かれた点が、図４５のベクトル検出部５２と異なっている。
【０６６４】
また、図６８の検出ベクトルメモリ５３には、ベクトル評価部５６１により、検出対象ブロック１ブロックにつき1bitの０ベクトルフラグ(zflg)が書き込まれる、０ベクトルフラグ領域５７１が含まれている。
【０６６５】
ベクトル評価部５６１は、評価値演算部６１Ｂを有しており、評価値演算部６１Ｂに、反復勾配法演算部５２２からの動きベクトルＶｎ−１（または初期ベクトルＶ０）と、動きベクトルＶｎの評価値ｄｆｖを求めさせ、評価値演算部６１Ｂにより求められた評価値ｄｆｖに基づいて、反復勾配法演算部５２２を制御し、勾配法の演算を繰り返し実行させ、最終的に、評価値ｄｆｖに基づく、信頼性の高いものを選択する。
【０６６６】
このとき、ベクトル評価部５６１は、図４５のベクトル評価部５２３と同様に、反復勾配法演算部５２２からの動きベクトルＶｎ−１（または初期ベクトルＶ０）、動きベクトルＶｎ、または０ベクトルの中から、反復勾配法演算部５２２からのカウンタフラグおよび各ベクトルの評価値ｄｆｖに応じて、後段において割付処理に用いられる検出ベクトルＶｅと、初期ベクトル選択部１０１において初期ベクトル選択の際に用いられる初期候補ベクトルＶｉｃをそれぞれ求める。
【０６６７】
ベクトル評価部５６１は、反復勾配法演算部５２２からのカウンタフラグに応じて、検出ベクトルＶｅと初期候補ベクトルＶｉｃが同じ場合、０ベクトルフラグを０に設定し、検出ベクトルＶｅを検出ベクトルメモリ５３に記憶させるとともに、０ベクトルフラグ(zflg＝０)を０ベクトルフラグ領域５７１に書き込む。
【０６６８】
ベクトル評価部５６１は、反復勾配法演算部５２２からのカウンタフラグに応じて、検出ベクトルＶｅと初期候補ベクトルＶｉｃが異なる場合（すなわち、検出ベクトルＶｅが０ベクトルである場合）、０ベクトルフラグを１に設定し、初期候補ベクトルＶｉｃを検出ベクトルメモリ５３に記憶させるとともに、０ベクトルフラグ(zflg＝１)を０ベクトルフラグ領域５７１に書き込む。
【０６６９】
なお、これに対応して、後段のベクトル割付部５４は、０ベクトルフラグに基づいて、検出ベクトルメモリ５３から、検出ベクトルを読み出す。すなわち、ベクトル割付部５４は、０ベクトルフラグが０の場合、検出ベクトルメモリ５３の対応するブロックの位置から、検出ベクトルを読み出すが、０ベクトルフラグが１の場合、検出ベクトルメモリ５３の対応するブロックの位置から、検出ベクトルを読み出ださず、０ベクトルを検出ベクトルとする。
【０６７０】
一方、初期ベクトル選択部１０１は、図１７の検出ベクトル５３の場合と同様に、検出ベクトルメモリ５３の対応するブロックの位置から、初期候補ベクトルを読み出す。
【０６７１】
すなわち、０ベクトルフラグは、ベクトル割付部５４が検出ベクトルを読み出すために必要なフラグともいえる。
【０６７２】
図６９は、反復勾配法演算部５２２およびベクトル評価部５６１の構成を示すブロック図である。
【０６７３】
図６９の反復勾配法演算部５２２は、図４６の反復勾配法演算部５２２と同様の構成である。すなわち、反復勾配法演算部５２２の有効画素判定部５３１は、演算ブロックに、勾配法の演算に有効な画素の数が所定のしきい値αより多いと判定した場合、カウンタフラグ（countflg＝１）を勾配法演算部４０５およびベクトル評価部５６１に供給し、演算ブロックに、勾配法の演算に有効な画素の数が所定のしきい値αより少なく、所定のしきい値βよりも多いと判定した場合、カウンタフラグ（countflg＝１０）を勾配法演算部４０５およびベクトル評価部５６１に供給し、演算ブロックに、勾配法の演算に有効な画素の数が所定のしきい値βより少ないと判定した場合、カウンタフラグ（countflg＝０）を勾配法演算部４０５およびベクトル評価部５６１に供給する。
【０６７４】
図６９のベクトル評価部５６１は、評価値演算部６１Ｂを備える点は、図４６のベクトル評価部５２３と共通するが、評価判定部５４１が評価判定部５８１に入れ替わった点が、図４６のベクトル評価部５２３と異なっている。
【０６７５】
評価値判定部５８１は、有効画素判定部５３１から供給されるカウンタフラグおよび勾配フラグに基づいて、勾配法演算処理を反復させるか否かを判定したり、検出ベクトルＶｅと初期候補ベクトルＶｉｃとをそれぞれ求める。
【０６７６】
すなわち、評価値判定部５８１は、必要に応じて、評価値演算部６１Ｂに演算させた評価値ｄｆｖを比較することにより、信頼性の高いものを選択し、動きベクトルＶを求める。
【０６７７】
また、評価値判定部５８１は、有効画素判定部５３１からカウンタフラグ（countflg＝１）が供給された場合、勾配法演算処理を反復させるか否かを判定し、反復させると判定した場合、求めた動きベクトルＶを、遅延部４０６に出力する。評価値判定部５８１は、勾配法演算処理を反復させない場合、カウンタフラグの値に応じて、求めた動きベクトルＶを、検出ベクトルＶｅまたは初期候補ベクトルＶｉｃとして、検出ベクトルメモリ５３に記憶させるとともに、０ベクトルフラグを記憶させる。
【０６７８】
すなわち、有効画素判定部５３１からのカウンタフラグの値が１の場合（有効画素の数が所定のしきい値αよりも多い場合）は、検出ベクトルＶｅと初期候補ベクトルＶｉｃは、同じベクトルである。また、有効画素判定部５３１からのカウンタフラグの値が０の場合（有効画素の数が所定のしきい値βよりも少ない場合）、検出ベクトルＶｅと初期候補ベクトルＶｉｃは、同じベクトル（すなわち、０ベクトル）である。
【０６７９】
一方、有効画素判定部５３１からのカウンタフラグの値が１０の場合（有効画素の数が所定のしきい値αよりも少なく、所定のしきい値βよりも多い場合）は、検出ベクトルＶｅは、０ベクトルであり、初期候補ベクトルＶｉｃとは、異なるベクトルである。
【０６８０】
したがって、評価値判定部５８１は、有効画素判定部５３１からのカウンタフラグの値が１の場合、初期ベクトル選択部１０１とベクトル割付部５４の両方が、検出ベクトルメモリ５３に記憶されたベクトルを用いるように、０ベクトルフラグの値を０に設定して、検出ベクトルＶｅを記憶させるときに、０ベクトルフラグ(zflg＝０)も、０ベクトルフラグ領域５７１に書き込む。
【０６８１】
また、評価値判定部５８１は、有効画素判定部５３１からのカウンタフラグの値が０の場合も、初期ベクトル選択部１０１とベクトル割付部５４の両方が、検出ベクトルメモリ５３に記憶されたベクトルを用いるように、０ベクトルフラグの値を０に設定して、検出ベクトルＶｅ(＝０ベクトル)を記憶させるときに、０ベクトルフラグ(zflg＝０)も、０ベクトルフラグ領域５７１に書き込む。
【０６８２】
さらに、評価値判定部５８１は、有効画素判定部５３１からのカウンタフラグの値が１０の場合、初期ベクトル選択部１０１のみが、検出ベクトルメモリ５３に記憶されたベクトルを用い、ベクトル割付部５４が０ベクトルを用いるように、０ベクトルフラグの値を１に設定して、初期候補ベクトルＶｉｃ(＝０ベクトル)を記憶させるときに、０ベクトルフラグ(zflg＝１)も、０ベクトルフラグ領域５７１に書き込む。
【０６８３】
これにより、初期候補ベクトルＶｉｃ用のメモリ（図４５の初期候補ベクトルメモリ５２４）を持たなくても、検出ベクトルメモリ５３に０ベクトルフラグ用の領域を１ブロックにつき1bit拡張させるだけで、初期候補ベクトルＶｉｃ用のメモリを持った場合と同様の効果が期待できる。
【０６８４】
次に、図７０のフローチャートを参照して、図６９の評価判定部５８１のベクトル記憶制御処理を説明する。なお、図７０は、図６３のステップＳ５６５における検出ベクトルおよび初期候補ベクトルを記憶させる処理の他の例である。すなわち、図６８のベクトル検出部５２の勾配法演算処理は、ステップＳ５６５の評価値判定部５８１による検出ベクトルおよび初期候補ベクトルの記憶制御処理が異なるだけであり、その他の処理は、図６３を参照して上述した図４５のベクトル検出部５２の勾配法演算処理と基本的に同様の処理であるため、その説明は省略する。
【０６８５】
評価判定部５８１は、ステップＳ６６０において、有効画素判定部５３１からのカウンタフラグの値が１０であるか否かを判定する。
【０６８６】
ステップＳ６６０において、カウンタフラグの値が１０ではない（すなわち、０か１である）と判定された場合、評価判定部５８１は、ステップＳ６６１において、０ベクトルフラグの値を０に設定し、ステップＳ６６２において、図６３のステップＳ５５７において求められた動きベクトルＶを、検出ベクトルＶｅとして、０ベクトルフラグ(zflg＝０)とともに検出ベクトルメモリ６３に記憶させる。
【０６８７】
すなわち、検出ベクトルＶｅは、検出対象ブロックに対応させて、記憶され、０ベクトルフラグ(zflg＝０)は、検出対象ブロックに対応させて1bit分拡張された０ベクトルフラグ領域５７１に記憶される。
【０６８８】
これに対応して、初期ベクトル選択部１０１は、検出ベクトルメモリ５３の対応するブロックの位置から、初期候補ベクトルを読み出し、後段のベクトル割付部５４は、０ベクトルフラグ(zflg＝０)に応じて、検出ベクトルメモリ５３の対応するブロックの位置から、検出ベクトルを読み出す。
【０６８９】
一方、ステップＳ６６０において、カウンタフラグの値が１０であると判定された場合、評価判定部５８１は、ステップＳ６６３において、０ベクトルフラグの値を１に設定し、ステップＳ６６４において、図６３のステップＳ５５７において求められた動きベクトルＶを、初期候補ベクトルＶｉｃとして、０ベクトルフラグ(zflg＝１)とともに検出ベクトルメモリ６３に記憶させる。
【０６９０】
すなわち、初期候補ベクトルＶｉｃは、検出対象ブロックに対応させて、記憶され、０ベクトルフラグ(zflg＝１)は、検出対象ブロックに対応させて1bit分拡張された０ベクトルフラグ領域５７１に記憶される。
【０６９１】
これに対応して、初期ベクトル選択部１０１は、検出ベクトルメモリ５３の対応するブロックの位置から、初期候補ベクトルを読み出し、後段のベクトル割付部５４は、０ベクトルフラグ(zflg＝１)に応じて、検出ベクトルメモリ５３の対応するブロックの位置から、検出ベクトルを読み出ださず、０ベクトルを検出ベクトルとする。
【０６９２】
以上のように、初期候補ベクトルＶｉｃ用のメモリ（図４５の初期候補ベクトルメモリ５２４）を持たなくても、検出ベクトルメモリ５３に０ベクトルフラグ用の領域を１ブロックにつき1bit拡張させるだけで、初期候補ベクトルＶｉｃ用のメモリを持った場合と同様の効果が期待できる。
【０６９３】
すなわち、演算ブロック内の有効画素数の割合を、所定のしきい値αだけでなく、所定のしきい値αよりもさらに少ないしきい値βを用いて判定し、演算ブロック内の有効画素数が所定のしきい値αより少なく、所定のしきい値βよりも多かった場合には、勾配法演算を打ち切ることなく、勾配法演算結果を、初期候補ベクトルとし、０ベクトルを検出ベクトルするようにしたので、後段の割付処理で用いる検出ベクトルの精度を従来と同程度に維持したまま、勾配法演算によるベクトル検出処理の収束速度を向上させることができる。
【０６９４】
次に、ベクトル割付部５４の構成の詳細について説明する。
【０６９５】
図７１は、ベクトル割付部５４の構成を示すブロック図である。図７１に構成を示すベクトル割付部５４は、２４Ｐ信号の入力される時刻ｔの画像のフレームｔと、時刻ｔ＋１の画像のフレームｔ＋１を用いて、フレームｔ上において検出された動きベクトルを、割付ベクトルメモリ５５上の、補間する６０Ｐ信号の内挿フレーム上の画素に割り付ける処理を行う。
【０６９６】
図７１の例において、時刻ｔの画像のフレームｔと、時刻ｔ＋１の画像のフレームｔ＋１は、画素情報演算部７０１、図６を参照して上述した評価値演算部６１、および着目画素差分演算部７０３に入力される。
【０６９７】
画素情報演算部７０１は、検出ベクトルメモリ５３のフレームｔ上の画素に検出された動きベクトルを、左上の画素からラスタスキャン順に取得し、取得した動きベクトルを、次の時刻のフレームｔ＋１方向に延ばし、延ばした動きベクトルと、内挿フレームとの交点を算出する。そして、画素情報演算部７０１は、算出された動きベクトルと内挿フレームとの交点から、内挿フレーム上において、その動きベクトルの割付対象となる画素（以下、割付対象画素と称する）を設定し、動きベクトルおよび割付対象画素の位置の情報を、ベクトル選択部７０５に出力する。また、画像情報演算部７０１は、割付対象画素と、動きベクトルで対応付けられるフレームｔの位置Ｐおよびフレームｔ＋１上の位置Ｑを算出し、算出されたフレームｔおよびフレームｔ＋１上の位置情報を、評価値演算部６１、および着目画素差分演算部７０３に出力する。
【０６９８】
評価値演算部６１は、画素情報演算部７０１から、割付対象画素と、動きベクトルで対応付けられるフレームｔおよびフレームｔ＋１上の位置情報を入力すると、フレームｔの位置Ｐおよびフレームｔ＋１の位置Ｑの評価値ＤＦＤを演算するため、位置Ｐおよび位置Ｑを中心とした一定範囲のＤＦＤ演算範囲（ｍ×ｎ）をそれぞれ設定し、それらのＤＦＤ演算範囲が画枠内にあるか否かを判定する。評価値演算部６１は、ＤＦＤ演算範囲が画枠内にあると判定した場合、このＤＦＤ演算範囲を用いて演算することにより、動きベクトルに対する割付対象画素の評価値ＤＦＤを求め、求めた評価値ＤＦＤを、ベクトル評価部７０４に出力する。
【０６９９】
着目画素差分演算部７０３は、画素情報演算部７０１から、割付対象画素と、動きベクトルで対応付けられるフレームｔおよびフレームｔ＋１上の位置情報を入力すると、フレームｔの位置Ｐおよびフレームｔ＋１の位置Ｑを用いて、割付対象画素に対する輝度差分絶対値を求め、求めた輝度差分絶対値を、ベクトル評価部７０４に出力する。
【０７００】
ベクトル評価部７０４は、画素差分判定部７１１および評価値判定部７１２により構成される。画素差分判定部７１１は、着目画素差分演算部７０３から入力された割付対象画素に対する輝度差分絶対値が所定のしきい値よりも小さいか否かを判定する。評価値判定部７１２は、画素差分判定部７１１により着目画素差分演算部７０３から入力された割付対象画素に対する輝度差分絶対値が所定のしきい値よりも小さいと判定された場合に、評価値演算部６１から入力された割付対象画素の評価値ＤＦＤが、ベクトル選択部７０５が有するＤＦＤテーブルの最小評価値より小さいか否かを判定する。そして、評価値判定部７１２は、割付対象画素の評価値ＤＦＤが、ＤＦＤテーブルの最小評価値より小さいと判定した場合に、割付対象画素が対応する動きベクトルの信頼度が高いと判定し、ベクトル選択部７０５に、割付対象画素の評価値ＤＦＤを出力する。
【０７０１】
ベクトル選択部７０５は、内挿フレーム上の各画素における最小評価値を保持するＤＦＤテーブルを有しており、内挿フレーム上の各画素に対して、０ベクトルを割り付けた場合の評価値ＤＦＤ０を、内挿フレーム上の各画素における最小評価値としてＤＦＤテーブルに予め保持している。ベクトル選択部７０５は、ベクトル評価部７０４からの割付対象画素の評価値ＤＦＤを入力すると、画素情報演算部７０１からの割付対象画素の位置の情報に基づいて、割付フラグメモリ５６のフラグを１(true)に書き換え、割付対象画素のＤＦＤテーブルの最小評価値を、その割付対象画素の評価値ＤＦＤに書き換える。また、ベクトル選択部７０５は、画素情報演算部７０１からの割付対象画素の位置の情報に基づいて、割付ベクトルメモリ５５の割付対象画素に、画素情報演算部７０１からの動きベクトルを割り付ける。
【０７０２】
なお、図７１の例においては、図１７および図４５の検出ベクトルメモリ５３の場合が説明されているが、画素情報演算部７０１は、図６８の例の検出ベクトルメモリ５３から、動きベクトルを取得する際には、フレームｔ上の画素に対応して書き込まれている０ベクトルフラグの値に応じて、フレームｔ上の画素に検出された動きベクトル（検出ベクトル）、あるいは、０ベクトルを取得する。
【０７０３】
次に、動きベクトルの画素以下精度を説明する。
【０７０４】
上述した式（１）で表されるＤＦＤ評価の演算においては、フレームｔの画素位置ｐをベクトルｖ量分ずらした先のフレームｔ＋１上の位相ｐ＋ｖは、実際には、２４ｐ信号のフレームｔ＋１上の画素位置と一致しない場合が多く、その場合の輝度値は定義されていない。したがって、画素以下精度を有する動きベクトルｖに対する評価値ＤＦＤの演算を行うためには、画素以下の位相における輝度値を何らかの方法で生成しなければならない。
【０７０５】
これに対応して、フレームｔの画素位置ｐをベクトルｖ量分ずらした先のフレームｔ＋１上の位相ｐ＋ｖに最も近い画素の輝度値をそのまま用いる方法がある。しかしながら、この方法では、評価する動きベクトルの画素以下成分を丸めてしまうため、動きベクトルの画素以下成分を捨てていることになり、これにより求められた評価値ＤＦＤの信頼度は、低くなってしまう。
【０７０６】
そこで、本発明においては、周辺４画素の輝度値による４点補間処理を用いている。図７２は、本発明の４点補間処理の概念を示す図である。図７２においては、矢印Ｘが、フレームｔ＋１における水平方向を示しており、矢印Ｙが、フレームｔ＋１における垂直方向を示している。このフレームｔ＋１において、白丸は、フレームｔ＋１上の画素位置を表しており、黒点は、画素以下の（粒度の）位置を表している。また、フレームｔ＋１上における最左上の黒点ｐ＋ｖとその周辺４画素は、ウインドウＥに拡大して示されている。ウインドウＥにおいて、白丸内のアルファベットは、周辺４画素の輝度値を示している。
【０７０７】
このフレームｔ＋１における最左上の黒点ｐ＋ｖが、フレームｔの画素位置ｐをベクトルｖ量分ずらした先の位相ｐ＋ｖとすると、位相ｐ＋ｖの輝度値Ｆt+1（ｐ＋ｖ）は、位相ｐ＋ｖの水平方向の画素以下成分αおよび垂直方向の画素以下成分β、並びに、位相ｐ＋ｖの周辺４画素の輝度値Ｌ０乃至Ｌ４を用いて、周辺４画素の距離の逆比の和で求められる。すなわち、輝度値Ｆt+1（ｐ＋ｖ）は、次の式（３１）で表される。
【０７０８】
【数３０】
0004752407.tif 000031
・・・（３１）
【０７０９】
以上のように、４点補間処理により求められる輝度値Ｆt+1（ｐ＋ｖ）を用いて、ＤＦＤ評価の演算を行うことにより、ハードウェア実装上のコストを引き上げることなく、評価値ＤＦＤの信頼度の低下を抑制することができる。なお、以下においては、ベクトル割付の際の評価値ＤＦＤや輝度差分絶対値などの演算において、この４点補間を適用した例を説明するが、もちろん、上述した初期ベクトル選択処理やベクトル検出処理などのベクトルを評価する場合の評価値ｄｆｖ（評価値ｍＤＦＤ）の演算、後述する割付補償処理などのベクトルを評価する場合の評価値ＤＦＤの演算、または、後述する画像補間の処理においても、この４点補間は適用される。
【０７１０】
次に、図７３のフローチャートを参照して、ベクトル割付処理の詳細を説明する。２４Ｐ信号の元フレームである、時刻ｔの画像のフレームｔと、時刻ｔ＋１の画像のフレームｔ＋１は、画素情報演算部７０１、評価値演算部６１、および着目画素差分演算部７０３に入力される。
【０７１１】
画素情報演算部７０１は、新しい元フレームが入力されると、ベクトル選択部７０５を制御し、ステップＳ７０１において、割付フラグメモリ５６の割付フラグを０(False)で初期化させ、ステップＳ７０２において、割付ベクトルメモリ５５を０ベクトルで初期化させる。これにより、結果的に、動きベクトルが割り付けられない画素に、０ベクトルが割り付けられる。
【０７１２】
また、画素情報演算部７０１は、ステップＳ７０３において、評価値演算部６１を制御し、内挿フレーム上のすべての画素に対して、０ベクトルを用いて評価値ＤＦＤ０を算出させ、ベクトル選択部７０５を制御し、評価値演算部６１により算出された０ベクトルの評価値ＤＦＤ０を、内挿フレームの各画素に対する最小評価値としてＤＦＤテーブルに記憶させる。すなわち、ステップＳ７０３において、評価値演算部６１は、内挿フレームすべての画素に対して、０ベクトルを用いて評価値ＤＦＤ０を算出し、算出した評価値ＤＦＤ０を、ベクトル評価部７０４を介して、ベクトル選択部７０５に出力する。そして、ベクトル選択部７０５は、ベクトル評価部７０４を介して入力された評価値ＤＦＤ０を、ＤＦＤテーブルの対応する画素の最小評価値として記憶する。
【０７１３】
画素情報演算部７０１は、ステップＳ７０４において、検出ベクトルメモリ５３上の元フレームから画素を選択する。なお、この場合、フレームの左上からラスタスキャン順に画素が選択される。
【０７１４】
画素情報演算部７０１は、ステップＳ７０５において、画素位置演算処理を実行する。具体的には、画素情報演算部７０１は、取得された動きベクトルと内挿フレームの交点を算出し、動きベクトルと内挿フレームから算出された交点から、割付対象画素を設定する。このとき、画素情報演算部７０１は、交点が内挿フレーム上の画素位置に一致する場合には、交点を、割付対象画素に設定する。一方、画素情報演算部７０１は、交点が内挿フレーム上の画素位置に一致しない場合には、上述したように、内挿フレーム上の交点の近傍４画素を、割付対象画素に設定する。
【０７１５】
画素情報演算部７０１は、評価値演算部６１および着目画素差分演算部７０３が評価値ＤＦＤおよび輝度差分絶対値を求める上で必要である、各割付対象画素を基準に、取得された動きベクトルで対応付けた元フレーム上の位置を、取得された動きベクトルを、設定された割付対象画素にシフト（平行移動）し、シフトされた動きベクトルと、元フレーム上の交点の位置を求めることで、算出する。
【０７１６】
画素情報演算部７０１は、ステップＳ７０６において、算出された割付対象画素を選択し、選択した割付対象画素と、その動きベクトルを、ベクトル選択部７０５に出力する。このとき、同時に、画素情報演算部７０１は、選択した割付対象画素を基準に、その動きベクトルで対応付けられる元フレーム上の位置の情報を、評価値演算部６１および着目画素演算部７０３に出力する。なお、ステップＳ７０６において、画素情報演算部７０１は、割付対象画素が複数存在する場合には、左上の画素から選択する。
【０７１７】
ステップＳ７０７において、画素情報演算部７０１は、選択された割付対象画素に関して、割付ベクトル評価処理を実行する。この割付ベクトル評価処理の詳細は、図７４を参照して後述するが、この割付ベクトル評価処理により、割付対象画素における動きベクトルの評価値ＤＦＤおよび輝度差分絶対値が求められ、割付対象画素における動きベクトルの信頼度が判定され、これらの判定の結果、信頼度が高いとされた動きベクトルで、割付ベクトルメモリ５５の動きベクトルが書き換えられる。
【０７１８】
画素情報演算部７０１は、ステップＳ７０８において、すべての割付対象画素の処理が終了したか否かを判定する。ステップＳ７０８において、まだ、すべての割付対象画素の処理が終了していないと判定された場合には、処理は、ステップＳ７０６に戻り、次の割付対象画素が選択され、それ以降の処理が繰り返される。
【０７１９】
ステップＳ７０８において、すべての割付対象画素の処理が終了したと判定された場合、画素情報演算部７０１は、ステップＳ７０９において、検出ベクトルメモリ５３上の元フレームのすべての画素の処理を終了したか否かを判定する。ステップＳ７０９において、検出ベクトルメモリ５３上の元フレームのすべての画素の処理を終了していないと判定された場合、処理は、ステップＳ７０４に戻り、検出ベクトルメモリ５３上の元フレームの次の画素が選択され、それ以降の処理が繰り返される。また、ステップＳ７０９において、検出ベクトルメモリ５３のすべての画素についての処理を終了したと判定された場合、ベクトル割付処理は終了される。
【０７２０】
次に、図７４のフローチャートを参照して、割付ベクトル評価処理の詳細を説明する。なお、図７４は、図７３のステップＳ７０７の割付ベクトル評価処理の例を示している。
【０７２１】
図７３のステップＳ７０６において、画素情報演算部７０１により、選択した割付対象画素を基準に、その動きベクトルで対応付けられる元フレーム上の位置が求められ、求められた元フレーム上の位置の情報が、評価値演算部６１および着目画素差分演算部７０３に入力される。
【０７２２】
評価値演算部６１は、画素情報演算部７０１から、元フレーム上の位置の情報が入力されると、ステップＳ７４１において、割付対象画素における動きベクトルの評価値ＤＦＤを求めるために、フレームｔおよびフレームｔ＋１上の位置を中心としたＤＦＤ演算範囲（ｍ×ｎ）をそれぞれ求め、ステップＳ７４２において、求められたＤＦＤ演算範囲が画枠内にあるか否かを判定する。
【０７２３】
ステップＳ７４２において、ＤＦＤ演算範囲が画枠からはみ出していると判定された場合、その動きベクトルは、割付対象画素に割り付ける割付候補ベクトルにはならないと判定され、ステップＳ７４３乃至Ｓ７４９の処理は、スキップされ、割付ベクトル評価処理は終了され、処理は、図７３のステップＳ７０８に戻る。これにより、フレームｔ上の点Ｐ、およびフレームｔ＋１上の点Ｑを中心としたＤＦＤ演算範囲が画枠をはみ出てしまった場合の動きベクトルは、候補から除外される。
【０７２４】
ステップＳ７４２において、求められたＤＦＤ演算範囲が画枠内にあると判定された場合、評価値演算部６１は、ステップＳ７４３において、画枠内にあると判定されたＤＦＤ演算範囲を用いて、割付対象画素の評価値ＤＦＤを演算し、求められた評価値ＤＦＤを、評価値判定部７１２に出力する。なお、このとき、元フレーム上の位置が画素以下であった場合には、上述した４点補間を用いて、元フレーム上の交点の輝度値を求めることにより、割付対象画素の評価値ＤＦＤが演算される。
【０７２５】
一方、着目画素差分演算部７０３は、画素情報演算部７０１から、元フレーム上の位置の情報が入力されると、ステップＳ７４４において、割付対象画素における輝度差分絶対値ｄｐを求め、求められた輝度差分絶対値ｄｐを、画素差分判定部７１１に出力する。なお、このときも、元フレーム上の位置が画素以下であった場合には、着目画素差分演算部７０３は、上述した４点補間を用いて、元フレーム上の交点の輝度値を求めることにより、割付対象画素における輝度差分絶対値ｄｐを演算する。
【０７２６】
画素差分判定部７１１は、ステップＳ７４５において、着目画素差分演算部７０３からの割付対象画素の輝度差分絶対値ｄｐが、所定のしきい値以下であるか否かを判定する。ステップＳ７４５において、割付対象画素の輝度差分絶対値ｄｐが、所定のしきい値より大きいと判定された場合、フレームｔおよびフレームｔ＋１の交点がそれぞれ異なるオブジェクトに属する可能性が高いと判定され、すなわち、その動きベクトルは、割付対象画素における信頼度が低く、割付対象画素に割り付ける割付候補ベクトルにはならないと判定され、処理は、ステップＳ７４６乃至Ｓ７４９をスキップし、割付ベクトル評価処理を終了し、図７３のステップＳ７０８に戻る。
【０７２７】
これにより、フレームｔおよびフレームｔ＋１の交点がそれぞれ異なるオブジェクトに属する場合の動きベクトルは候補から外される。
【０７２８】
ステップＳ７４５において、割付対象画素の輝度差分絶対値ｄｐが、所定のしきい値以下であると判定された場合、処理は、ステップＳ７４６に進む。評価値判定部７１２は、ステップＳ７４６において、ベクトル選択部７０５のＤＦＤテーブルを参照し、評価値演算部６１からの割付対象画素の評価値ＤＦＤが、ＤＦＤテーブルに記憶されている割付対象画素の最小評価値（いまの場合、０ベクトルの評価値ＤＦＤ０）よりも小さいか否かを判定する。ステップＳ７４６において、評価値演算部６１からの割付対象画素の評価値ＤＦＤが、ＤＦＤテーブルに記憶されている割付対象画素の最小評価値以上であると判定された場合、その動きベクトルは、割付対象画素において、信頼度が高くないと判定され、ステップＳ７４７乃至Ｓ７４９の処理は、スキップされ、割付ベクトル評価処理は終了され、処理は、図７３のステップＳ７０８に戻る。
【０７２９】
一方、ステップＳ７４６において、評価値演算部６１からの割付対象画素の評価値ＤＦＤが、ＤＦＤテーブルに記憶されている割付対象画素の最小評価値よりも小さいと判定された場合、評価値判定部７１２は、その動きベクトルは、割付対象画素において、いままで比較した動きベクトルの中で最も、評価値ＤＦＤに基づく信頼度が高いと判定し、信頼度が高いと判定された割付対象画素の評価値ＤＦＤを、ベクトル選択部７０５に出力する。
【０７３０】
ベクトル選択部７０５は、評価値判定部７１２からの割付対象画素の評価値ＤＦＤを入力すると、ステップＳ７４７において、割付フラグメモリ５６の割付対象画素の割付フラグを１(True)に書き換え、ステップＳ７４８において、ＤＦＤテーブルの割付対象画素が対応する最小評価値を、評価値判定部７１２により信頼度が高いと判定された評価値ＤＦＤに書き換える。
【０７３１】
ベクトル選択部７０５には、ステップＳ７０６において、画素情報演算部７０１から選択した割付対象画素とその動きベクトルが入力されている。したがって、ベクトル選択部７０５は、ステップＳ７４９において、割付ベクトルメモリ５５の割付対象画素に割り付けられている動きベクトルを、信頼度が高いと判定された評価値ＤＦＤに対応する動きベクトルで書き換える。これにより、割付ベクトル評価処理は終了され、処理は、図７３のステップＳ７０８に戻る。
【０７３２】
以上のように、内挿フレームの割付対象画素に割り付けられる動きベクトルを選ぶときに、評価値ＤＦＤだけでなく、割付対象画素を基準に動きベクトルで対応付けた元フレーム上の位置に基づいて求められる、割付対象画素の輝度差分絶対値を別扱いにし、評価するようにしたので、従来の評価値ＤＦＤを用いるだけの場合よりも、割付候補ベクトルの中から、最も確からしい動きベクトルを選んで、割付対象画素に割り付けることができる。これにより、ベクトル割付の精度が向上し、後段の画像補間処理において生成される画像の不連続性などを抑制することができ、画像の品質を向上させることができる。
【０７３３】
さらに、評価値ＤＦＤや輝度差分絶対値を求める際などに、画素以下位置の画素値が必要な場合に、その画素以下位置の近傍４画素との距離を基にした線形補間で値を求めるようにしたので、画素以下位置精度の処理が可能になり、さらに、従来の画素以下成分を丸めてしまう方法よりも、輝度差分絶対値ｄｐや評価値ＤＦＤを精度よく求めることができ、これにより、割付候補ベクトルの中から、着目画素により確からしい動きベクトルを割り付けることができる。すなわち、ベクトル割付処理の精度が向上する。
【０７３４】
次に、割付補償部５７の構成の詳細について説明する。
【０７３５】
図７５は、割付補償部５７の構成を示すブロック図である。図７５に構成を示す割付補償部５７は、割付ベクトル判定部８０１およびベクトル補償部８０２により構成され、ベクトル割付部５４により動きベクトルが割り付けられなかった６０Ｐ信号の内挿フレーム上の画素に、その周辺画素の動きベクトルを補って割り付ける処理を行う。
【０７３６】
前段のベクトル割付部５４により、割付ベクトルメモリ５５上の内挿フレームの画素には動きベクトルが割り付けられている。また、ベクトル割付部５４により動きベクトルが割り付けられた画素の割付フラグメモリ５６の割付フラグには、１(True)が書き込まれており、動きベクトルが割り付けられなかった画素の割付フラグメモリ５６の割付フラグには、０(False)が書き込まれている。
【０７３７】
割付ベクトル判定部８０１は、割付フラグメモリ５６の割付フラグを参照し、着目画素に、ベクトル割付部５４により動きベクトルが割り付けられているか否かを判定する。そして、割付ベクトル判定部８０１は、ベクトル割付部５４により動きベクトルが割り付けられなかった着目画素を選択し、選択した着目画素に対して、ベクトル補償部８０２を制御し、その着目画素の周辺画素の動きベクトルを選択して、割付ベクトルメモリ５５の内挿フレーム上に割り付けさせる。
【０７３８】
ベクトル補償部８０２は、補償処理部８１１、および図６を参照して上述した評価値演算部６１により構成される。
【０７３９】
補償処理部８１１は、最小評価値ＤＦＤと、最小評価値ＤＦＤの動きベクトルを候補ベクトル（以下、補償候補ベクトルとも称する）として記憶するメモリ８２１を有しており、割付ベクトル判定部８０１により選択された着目画素の初期値として、０ベクトルの評価値ＤＦＤを最小評価値としてメモリ８２１に記憶し、０ベクトルを、補償候補ベクトルとしてメモリ８２１に記憶する。補償処理部８１１は、割付フラグメモリ５６を参照して、着目画素の周辺画素の動きベクトルの有無を判定し、割付ベクトルメモリ５５から、周辺画素に割り付けられている動きベクトルを取得し、評価値演算部６１を制御し、その動きベクトルの評価値ＤＦＤを演算させる。
【０７４０】
また、補償処理部８１１は、評価値演算部６１により演算された評価値ＤＦＤがメモリ８２１に記憶されている最小評価値よりも小さいか否かを判定し、演算された評価値ＤＦＤが最小評価値よりも小さいと判定した場合、メモリ８２１の補償候補ベクトルと最小評価値を、演算された評価値ＤＦＤとその動きベクトルに書き換え、最終的に、評価値ＤＦＤが最も小さいと判定された周辺画素の動きベクトル（補償候補ベクトル）を、着目画素の動きベクトルとして、割付ベクトルメモリ５５の着目画素に割り付ける。さらに、補償処理部８１１は、動きベクトルが割り付けられた着目画素の割付フラグメモリ５６の割付フラグを１(True)に書き換える。
【０７４１】
評価値演算部６１は、割付ベクトルメモリ５５から周辺画素の動きベクトルを取得すると、入力される時刻ｔの２４Ｐ信号の画像のフレームｔと、時刻ｔ＋１の画像のフレームｔ＋１を用いて、割付ベクトルメモリ５５からの動きベクトルの評価値ＤＦＤを演算し、演算した評価値ＤＦＤを補償処理部８１１に出力する。
【０７４２】
次に、図７６のフローチャートを参照して、割付補償処理の詳細を説明する。前段のベクトル割付部５４により、割付ベクトルメモリ５５上の内挿フレームの画素には動きベクトルが割り付けられている。また、ベクトル割付部５４により動きベクトルが割り付けられた画素の割付フラグメモリ５６の割付フラグには、１(True)が書き込まれており、動きベクトルが割り付けられなかった画素の割付フラグメモリ５６の割付フラグには、０(False)が書き込まれている。
【０７４３】
割付ベクトル判定部８０１は、ステップＳ８０１において、割付フラグメモリ５６の内挿フレームの画素を、着目画素として選択する。このとき、割付ベクトル判定部８０１は、フレームの左上の画素からラスタスキャン順に画素を選択する。
【０７４４】
割付ベクトル判定部８０１は、ステップＳ８０２において、割付フラグメモリ５６内の着目画素の割付フラグが、０(False)であるか否かを判定し、割付フラグメモリ５６内の着目画素の割付フラグが、０(False)であると判定した場合、動きベクトルが割り付けられていないと判定し、ステップＳ８０３において、補償処理部８１１を制御し、ベクトル補償処理を実行させる。このベクトル補償処理の詳細は、図７７を参照して後述するが、このベクトル補償処理により、周辺画素に割り付けられた動きベクトルの中から、評価値ＤＦＤの最小の動きベクトルが補償候補ベクトルとしてメモリ８２１に記憶される。
【０７４５】
補償処理部８１１は、ステップＳ８０４において、メモリ８２１の補償候補ベクトルを、着目画素の動きベクトルとして、割付ベクトルメモリ５５に割り付け、ステップＳ８０５において、割付フラグメモリ５６の着目画素の割り付けフラグを、１(True)に書き換える。
【０７４６】
一方、ステップＳ８０２において、割付フラグメモリ５６内の着目画素の割付フラグが、１(True)であると判定され場合、その着目画素にはすでに動きベクトルが割り付けられているとされ、処理は、ステップＳ８０３乃至Ｓ８０５のをスキップし、ステップＳ８０６に進む。
【０７４７】
割付ベクトル判定部８０１は、ステップＳ８０６において、割付フラグメモリ５６の内挿フレームのすべての画素の処理を終了したか否かを判定する。ステップＳ８０６において、すべての画素の処理を終了していないと判定された場合、処理は、ステップＳ８０１に戻り、割付フラグメモリ５６の内挿フレームの次の画素が、着目画素として選択され、それ以降の処理が実行される。ステップＳ８０６において、割付フラグメモリ５６の内挿フレームのすべての画素の処理を終了したと判定された場合、割付補償処理は終了される。
【０７４８】
次に、図７７のフローチャートを参照して、ベクトル補償処理の詳細を説明する。なお、図７７は、図７６のステップＳ８０３のベクトル補償処理の例を示している。
【０７４９】
補償処理部８１１は、ステップＳ８２１において、評価値演算部６１を制御し、０ベクトルを用いて評価値ＤＦＤ０を算出させる。具体的には、評価値演算部６１は、ステップＳ８２１において、入力される時刻ｔの画像のフレームｔと、時刻ｔ＋１の画像のフレームｔ＋１を用いて、例えば、図６２を参照して上述したように、着目画素について、０ベクトルでの評価値ＤＦＤ０を演算し、演算した評価値ＤＦＤ０を補償処理部８１１に出力する。
【０７５０】
ステップＳ８２２において、補償処理部８１１は、評価値ＤＦＤ０を最小評価値としてメモリ８２１に記憶し、ステップＳ８２３において、０ベクトルを補償候補ベクトルとして、メモリ８２１に記憶する。補償処理部８１１は、ステップＳ８２４において、割付ベクトル判定部８０１により選択された着目画素の周辺８画素のうち、１つの周辺画素を選択する。このとき、補償処理部８１１は、周辺８画素のうち、左上の画素からラスタスキャン順に周辺画素を選択する。
【０７５１】
補償処理部８１１は、ステップＳ８２５において、割付フラグメモリ５６を参照し、選択した周辺画素の動きベクトルが存在するか否かを判定する。割付フラグメモリ５６の周辺画素の割付フラグが１(True)であれば、ステップＳ８２５において、選択した周辺画素に割り付けられている動きベクトルが存在すると判定され、処理は、ステップＳ８２６に進み、補償処理部８１１は、割付ベクトルメモリ５５から、周辺画素の動きベクトルを取得する。このとき、割付ベクトルメモリ５５から評価値演算部６１にも周辺画素の動きベクトルが出力される。
【０７５２】
評価値演算部６１は、割付ベクトルメモリ５５から周辺画素の動きベクトルが入力されると、ステップＳ８２７において、入力される時刻ｔの画像のフレームｔと、時刻ｔ＋１の画像のフレームｔ＋１を用いて、着目画素について、割付ベクトルメモリ５５からの動きベクトルの評価値ＤＦＤを演算し、演算した評価値ＤＦＤを、補償処理部８１１に出力する。
【０７５３】
補償処理部８１１は、評価値演算部６１から評価値ＤＦＤが入力されると、ステップＳ８２８において、評価値ＤＦＤが、メモリ８２１に記憶されている着目画素の最小評価値よりも小さいか否かを判定する。ステップＳ８２８において、評価値ＤＦＤが、メモリ８２１に記憶されている着目画素の最小評価値よりも小さいと判定された場合、補償処理部８１１は、ステップＳ８２９において、メモリ８２１の最小評価値を、最小評価値よりも小さいと判定された評価値ＤＦＤに書き換え、ステップＳ８３０において、メモリ８２１の補償候補ベクトルを、その最小評価値の動きベクトルに書き換える。
【０７５４】
一方、ステップＳ８２５において、割付フラグメモリ５６の周辺画素の割付フラグが０(False)であると、選択した周辺画素に割り付けられている動きベクトルがないと判定され、ステップＳ８２６乃至Ｓ８３０の処理はスキップされ、処理は、ステップＳ８３１に進む。また、ステップＳ８２８において、評価値ＤＦＤが、メモリ８２１に記憶されている着目画素の最小評価値以上であると判定された場合、ステップＳ８２９およびＳ８３０の処理はスキップされ、処理は、ステップＳ８３１に進む。
【０７５５】
補償処理部８１１は、ステップＳ８３１において、着目画素の周辺８画素すべてに対して処理が終了したか否かを判定する。ステップＳ８３１において、着目画素の周辺８画素すべてに対して処理が終了していないと判定された場合、処理は、ステップＳ８２４に戻り、次の周辺画素が選択され、それ以降の処理が繰り返される。また、ステップＳ８３１において、着目画素の周辺８画素すべてに対して処理が終了したと判定された場合、ベクトル補償処理は終了され、処理は、図７６のステップＳ８０４に戻る。
【０７５６】
以上のように、ベクトル割付処理において、割り付けることができなかった画素に関しても、動き相関があることを利用して、その画素の周辺の動きベクトルの中から、評価値ＤＦＤに基づく、最も信頼度がある、確からしい動きベクトルを得ることができる。これにより、ベクトルが割り付けられず、０ベクトルなどを割り付けておく場合よりも、ベクトル割付の精度が向上し、後段の画像補間処理において生成される画像の不連続性を抑制することができる。
【０７５７】
また、上述した割付補償処理により動きベクトルが割り付けられた画素の割付フラグを１(True)に書き換えるようにし、割付補償処理により割り付けられた動きベクトルも、次の画素の補償候補ベクトルとして用いるようにしたので、オブジェクト内でほぼ同じ動きをする画素には、ほぼ同一の動きベクトルが選択されるようになり、誤りの少ない安定した動きベクトルを得ることができる。その結果、後段において生成される画像のブロックノイズや粉状ノイズなどを抑制し、品質を向上させることができる。
【０７５８】
なお、上記説明においては、ベクトル割付部５４において割り付けられなかった画素に対してベクトル補償処理を行っているが、ベクトル検出部５２において検出されなかった（０ベクトルが検出された）画素など、何らかの処理において動きベクトルが求められなかった画素に対してベクトル補償処理を行うようにしてもよい。また、さらに、検出された動きベクトル、または、割り付けられた動きベクトルが確からしくない（信頼度が低い）とされる画素に対してベクトル補償処理を行うようにしてもよい。
【０７５９】
また、上記説明においては、画素単位での割付補償処理を説明したが、所定のブロック単位でその周辺に位置する画素に割り付けられた動きベクトルのうちの確からしいものを、その所定のブロックの画素すべてに割り付けるようにしてもよい。なお、所定のブロックにすでに動きベクトルが割り付けられている画素がある場合は、それ以外の画素にだけ割り付けるようにしてもよい。
【０７６０】
次に、画像補間部５８の構成の詳細について説明する。
【０７６１】
図７８は、画像補間部５８の構成を示すブロック図である。図７８に構成を示す画像補間部５８は、割付ベクトルメモリ５５の内挿フレームに割り付けられた動きベクトルと、フレームｔおよびフレームｔ＋１の画素値を用いて、内挿フレームの画素値を補間生成し、６０Ｐ信号の画像を出力する処理を行う。
【０７６２】
図７８の例において、時刻ｔの画像のフレームｔは、空間フィルタ９２−１に入力され、時刻ｔ＋１の画像のフレームｔ＋１は、空間フィルタ９２−２およびバッファ９５に入力される。
【０７６３】
補間制御部９１は、割付ベクトルメモリ５５の内挿フレームの画素を選択し、選択した画素に割り付けられている動きベクトルに基づいて、内挿フレーム上の画素と、２枚のフレームｔおよびフレームｔ＋１の画素との位置関係（空間シフト量）をそれぞれ求める。すなわち、補間制御部９１は、内挿フレームの画素を基準に、その動きベクトルで対応付けられるフレームｔ上の位置と、内挿フレームの画素に対応するフレームｔ上の画素の位置から、それらの空間シフト量を求め、求めた空間シフト量を空間フィルタ９２−１に供給する。同様に、補間制御部９１は、内挿フレームの画素を基準に、その動きベクトルで対応付けられるフレームｔ＋１上の位置と、内挿フレームの画素に対応するフレームｔ＋１上の画素の位置から、それらの空間シフト量を求め、求めた空間シフト量を空間フィルタ９２−２に供給する。
【０７６４】
また、補間制御部９１は、予め設定されている内挿フレームの時間位相（時刻）に基づいて、フレームｔとフレームｔ＋１の間における補間重みを求め、求めた補間重みを、乗算器９３−１および９３−２に設定する。例えば、内挿フレームの時刻が、フレームｔ＋１の時刻ｔ＋１から「ｋ」離れた時刻で、かつ、フレームｔの時刻ｔから「１−ｋ」離れた時刻である場合（すなわち、内挿フレームが時刻ｔと時刻ｔ＋１を「１−ｋ」：「ｋ」に内分する時刻に生成される場合）、補間制御部９１は、乗算器９３−１に「１−ｋ」の補間重みを設定し、乗算器９３−２に「ｋ」の補間重みを設定する。
【０７６５】
空間フィルタ９２−１および９２−２は、例えば、キュービックフィルタなどにより構成される。空間フィルタ９２−１は、入力されるフレームｔ上の画素の画素値と、補間制御部９１から供給される空間シフト量に基づいて、内挿フレームの画素に対応する、フレームｔ上の画素値を求め、求めた画素値を乗算器９３−１に出力する。空間フィルタ９２−２は、入力されるフレームｔ＋１上の画素の画素値と、補間制御部９１から供給される空間シフト量に基づいて、内挿フレームの画素に対応する、フレームｔ＋１上の画素値を求め、求めた画素値を乗算器９３−２に出力する。
【０７６６】
なお、内挿フレームの画素の位置が、フレームｔまたはフレームｔ＋１上の画素の位置と一致しない場合（すなわち、内挿フレームの画素の位置が、フレームｔまたはフレームｔ＋１において画素以下成分である場合）、空間フィルタ９２−１および９２−２は、フレームｔまたはフレームｔ＋１における内挿フレームの画素の位置の周辺４画素の画素値を用いて、周辺４画素の距離の逆比の和を求めることにより、内挿フレームの画素に対応するフレーム上の画素値を求める。すなわち、画素以下位置の画素値は、図７２を参照して上述した周辺４画素との距離を基にした線形補間で値が求められる。
【０７６７】
乗算器９３−１は、空間フィルタ９２−１から入力されるフレームｔ上の画素値に、補間制御部９１により設定された補間重み「１−ｋ」を乗算し、重み付けされた画素値を、加算器９４に出力する。乗算器９３−２は、空間フィルタ９２−２から入力されるフレームｔ＋１上の画素値に、補間制御部９１により設定された補間重み「ｋ」を乗算し、重み付けされた画素値を、加算器９４に出力する。
【０７６８】
加算器９４は、乗算器９３−１から入力される画素値と、乗算器９３−２から入力される画素値を加算することにより、内挿フレームの画素の画素値を生成し、生成された内挿フレームの画素値を、バッファ９５に出力する。バッファ９５は、入力されたフレームｔ＋１をバッファしている。バッファ９５は、生成された内挿フレームを出力し、その次に、予め設定されている６０Ｐフレームの時間位相（時刻）に基づいて、必要に応じて、バッファしているフレームｔ＋１を出力することにより、６０Ｐ信号の画像を、図示せぬ後段に出力する。
【０７６９】
以上のように構成される画像補間部５８の画像補間処理の詳細を、図７９のフローチャートを参照して説明する。
【０７７０】
補間制御部９１は、ステップＳ９０１において、処理する内挿フレームの時間位相に基づいて、フレームｔとフレームｔ＋１の間における内挿フレームの補間重み（例えば、「ｋ」および「１−ｋ」）を求め、求められた補間重みを、乗算器９３−１および９３−２にそれぞれ設定する。補間制御部９１は、ステップＳ９０２において、割付ベクトルメモリ５５の内挿フレームの画素を選択する。なお、内挿フレーム上の画素は、フレームの左上の画素からラスタスキャン順に選択される。
【０７７１】
補間制御部９１は、ステップＳ９０３において、選択した画素に割り付けられている動きベクトルに基づいて、内挿フレーム上の画素と、２枚のフレームｔおよびフレームｔ＋１の画素との位置関係（空間シフト量）をそれぞれ求め、求められた空間シフト量を、それぞれ空間フィルタ９２−１および９２−２に供給する。具体的には、補間制御部９１は、ステップＳ９０３において、内挿フレームの画素を基準に、その動きベクトルで対応付けられるフレームｔ上の位置と、内挿フレームの画素に対応するフレームｔ上の画素の位置から、それらの空間シフト量を求め、求めた空間シフト量を空間フィルタ９２−１に供給する。同様に、補間制御部９１は、内挿フレームの画素を基準に、その動きベクトルで対応付けられるフレームｔ＋１上の位置と、内挿フレームの画素に対応するフレームｔ＋１上の画素の位置から、それらの空間シフト量を求め、求めた空間シフト量を空間フィルタ９２−２に供給する。
【０７７２】
時刻ｔの画像のフレームｔの画素値は、空間フィルタ９２−１に入力され、時刻ｔ＋１の画像のフレームｔ＋１の画素値は、空間フィルタ９２−２に入力されている。ステップＳ９０４において、空間フィルタ９２−１および９２−２は、入力されるフレームｔおよびｔ＋１上の画素の画素値と、補間制御部９１から供給される空間シフト量に基づいて、内挿フレームの画素に対応する、各フレーム上の画素値を求め、求めた画素値を乗算器９３−１および９３−２にそれぞれ出力する。
【０７７３】
乗算器９３−１および９３−２は、ステップＳ９０５において、空間フィルタ９２−１または９２−２から入力される各フレーム上の画素値に、補間制御部９１により設定された補間重みを重み付けし、重み付けされた画素値を、加算器９４に出力する。すなわち、乗算器９３−１は、空間フィルタ９２−１から入力されるフレームｔ上の画素値に、補間制御部９１により設定された補間重み「１−ｋ」を乗算し、重み付けされた画素値を、加算器９４に出力する。乗算器９３−２は、空間フィルタ９２−２から入力されるフレームｔ＋１上の画素値に、補間制御部９１により設定された補間重み「ｋ」を乗算し、重み付けされた画素値を、加算器９４に出力する。
【０７７４】
加算器９４は、ステップＳ９０６において、乗算器９３−１により重み付けされた画素値と、乗算器９３−２により重み付けされた画素値を加算することにより、内挿フレームの画素の画素値を生成し、生成された画素値を、バッファ９５に出力する。補間制御部９１は、ステップＳ９０７において、内挿フレーム上のすべての画素についての処理が終了したか否かを判定する。ステップＳ９０７において、内挿フレーム上のすべての画素についての処理が終了していないと判定された場合、処理は、ステップＳ９０２に戻り、それ以降の処理が繰り返される。ステップＳ９０７において、内挿フレーム上のすべての画素についての処理が終了したと判定された場合、画像補間処理は、終了される。
【０７７５】
以上のように、内挿フレームに割り付けられた動きベクトルに基づいて、内挿フレームの画素値が生成されると、処理は、上述した図１６のステップＳ８５に戻り、ステップＳ８６において、バッファ９５により、内挿フレームが出力され、その次に、必要に応じて、フレームｔ＋１が出力されることにより、６０Ｐ信号の画像が、後段に出力される。したがって、内挿フレームの画素に、最も確からしい動きベクトルが割り付くので、精度のよい内挿フレームを生成することができる。
【０７７６】
本実施の形態においては、動きベクトルを選択する際の評価値として、差分絶対値和である評価値ＤＦＤ、評価値ｍＤＦＤ、および評価値ｄｆｖを用いて説明したが、評価値ＤＦＤ、評価値ｍＤＦＤ、および評価値ｄｆｖに限定されず、動きベクトルの信頼度を評価するものであれば、他のものを用いるようにしてもよい。
【０７７７】
また、本実施の形態においては、各処理を行うブロックを、例えば、８画素×８画素や９画素×９画素などにより構成するようにして説明したが、これらは、一例であり、各処理を行うブロックを構成する画素は、上記画素数に限定されない。
【０７７８】
さらに、本実施の形態においては、２４Ｐ信号から６０Ｐ信号への信号変換を例に、説明を行ったが、本発明は、例えば、動画像のフレーム周波数変換として、インターレース信号や、他のフレームレート変換にも適用することができる。
【０７７９】
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム格納媒体からインストールされる。
【０７８０】
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム格納媒体は、図１に示されるように、磁気ディスク３１（フレキシブルディスクを含む）、光ディスク３２（CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む）、光磁気ディスク３３（MD(Mini-Disc)（商標）を含む）、もしくは半導体メモリ３４などよりなるリムーバブル記録媒体（パッケージメディア）、または、プログラムが一時的もしくは永続的に格納されるＲＯＭ１２などにより構成される。
【０７８１】
なお、本明細書において、フローチャートに示されるステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【図面の簡単な説明】
【０７８２】
【図１】本発明の信号処理装置の構成例を示すブロック図である。
【図２】信号処理装置の構成を示すブロック図である。
【図３】本発明の処理の原理を説明する図である。
【図４】本発明の処理を具体的に説明する図である。
【図５】信号処理装置において用いられる動きベクトルの評価値を説明する図である。
【図６】評価値ＤＦＤを演算する評価値演算部の構成例を示すブロック図である。
【図７】図６の評価値演算部の評価値演算処理を説明するフローチャートである。
【図８】平均輝度レベル変化時の評価値ＤＦＤについて説明する図である。
【図９】平均輝度レベル変化時の評価値ＤＦＤについて説明する図である。
【図１０】平均輝度レベル変化時の差分分散について説明する図である。
【図１１】評価値ｍＤＦＤを演算する評価値演算部の構成例を示すブロック図である。
【図１２】図１１の評価値演算部の評価値演算処理を説明するフローチャートである。
【図１３】図１１の評価値演算部の評価値演算処理を説明するフローチャートである。
【図１４】評価値ｄｆｖを演算する評価値演算部の構成例を示すブロック図である。
【図１５】図１４の評価値演算部の評価値演算処理を説明するフローチャートである。
【図１６】信号処理装置のフレーム周波数変換処理を説明するフローチャートである。
【図１７】図２のベクトル検出部の構成を示すブロック図である。
【図１８】ベクトル検出部で用いられる勾配法を説明する図である。
【図１９】初期ベクトルを用いた反復勾配法を説明する図である。
【図２０】図１６のステップＳ８２の動きベクトル検出処理を説明するフローチャートである。
【図２１】図１７のシフト初期ベクトル割付部の構成を示すブロック図である。
【図２２】図２０のステップＳ１０４のシフト初期ベクトル割付処理を説明するフローチャートである。
【図２３】図１７の初期ベクトル選択部の構成を示すブロック図である。
【図２４】図２０のステップＳ１０２の初期ベクトル選択処理を説明するフローチャートである。
【図２５】図１７の反復勾配法演算部およびベクトル評価部の構成を示すブロック図である。
【図２６】図２５の有効画素判定部の構成を示すブロック図である。
【図２７】図２５の勾配法演算部の構成を示すブロック図である。
【図２８】動きベクトルの検出対象ブロックと演算ブロックを説明する図である。
【図２９】有効画素判定方法を説明する図である。
【図３０】演算ブロックにおける有効画素の構成を説明する図である。
【図３１】片側勾配領域を説明する図である。
【図３２】図２０のステップＳ１０３の反復勾配法演算処理を説明するフローチャートである。
【図３３】図３２のステップＳ３０３の有効画素判定処理を説明するフローチャートである。
【図３４】図３３のステップＳ３２３の有効画素演算処理を説明するフローチャートである。
【図３５】図３２のステップＳ３０５の勾配法実行判定処理を説明するフローチャートである。
【図３６】図３２のステップＳ３０６の勾配法演算処理を説明するフローチャートである。
【図３７】図３６のステップＳ４０３の統合型勾配法演算処理を説明するフローチャートである。
【図３８】図３６のステップＳ４０６の独立型勾配法演算処理を説明するフローチャートである。
【図３９】図３２のステップＳ３０７のベクトル評価処理を説明するフローチャートである。
【図４０】図２６の画素判定部、カウンタ、演算実行判定部の他の構成を示すブロック図である。
【図４１】図２７の演算判定部の他の構成を示すブロック図である。
【図４２】図３２のステップＳ３０３の有効画素判定処理の他の例を説明するフローチャートである。
【図４３】図３２のステップＳ３０５の勾配法実行判定処理の他の例を説明するフローチャートである。
【図４４】図３６のステップＳ４０６の独立型勾配法演算処理の他の例を説明するフローチャートである。
【図４５】図２のベクトル検出部の他の構成を示すブロック図である。
【図４６】図４５の反復勾配法演算部およびベクトル評価部の構成を示すブロック図である。
【図４７】図４６の有効画素判定部の構成を示すブロック図である。
【図４８】図１７のベクトル検出部により検出された動きベクトルを用いて生成される内挿フレームを説明する図である。
【図４９】図１７のベクトル検出部により検出された動きベクトルを用いて生成される内挿フレームを説明する図である。
【図５０】図１７のベクトル検出部により検出された動きベクトルを用いて生成される内挿フレームを説明する図である。
【図５１】図１７のベクトル検出部による初期ベクトルの選択方法を説明する図である。
【図５２】図１７のベクトル検出部による初期ベクトルの選択方法を説明する図である。
【図５３】図１７のベクトル検出部による初期ベクトルの選択方法を説明する図である。
【図５４】図１７のベクトル検出部による初期ベクトルの選択方法を説明する図である。
【図５５】図１７のベクトル検出部による初期ベクトルの選択方法を説明する図である。
【図５６】図４５のベクトル検出部により検出された動きベクトルを用いて生成される内挿フレームを説明する図である。
【図５７】図４５のベクトル検出部により検出された動きベクトルを用いて生成される内挿フレームを説明する図である。
【図５８】図４５のベクトル検出部による初期ベクトルの選択方法を説明する図である。
【図５９】図４５のベクトル検出部による初期ベクトルの選択方法を説明する図である。
【図６０】図４５のベクトル検出部により検出された動きベクトルを用いて生成される内挿フレームを説明する図である。
【図６１】図４５のベクトル検出部による初期ベクトルの選択方法を説明する図である。
【図６２】図４５のベクトル検出部により検出された動きベクトルを用いて生成される内挿フレームを説明する図である。
【図６３】図２０のステップＳ１０３の反復勾配法演算処理の他の例を説明するフローチャートである。
【図６４】図２０のステップＳ１０３の反復勾配法演算処理のさらに他の例を説明するフローチャートである。
【図６５】図２０のステップＳ１０３の反復勾配法演算処理のさらに他の例を説明するフローチャートである。
【図６６】図６４のステップＳ６１４の勾配法演算および仮設定処理を説明するフローチャートである。
【図６７】各フラグの値毎のベクトル評価の比較対象と反復判定結果を説明する図である。
【図６８】図２のベクトル検出部のさらに他の構成を示すブロック図である。
【図６９】図６８の反復勾配法演算部およびベクトル評価部の構成を示す図である。
【図７０】図６３のステップＳ５６５のベクトル記憶制御の他の例を説明するフローチャートである。
【図７１】図２のベクトル割付部の構成を示すブロック図である。
【図７２】本発明の４点補間処理の概念を説明する図である。
【図７３】図１６のステップＳ８３のベクトル割付処理を説明するフローチャートである。
【図７４】図７３のステップＳ７０７の割付ベクトル評価処理を説明するフローチャートである。
【図７５】図２の割付補償部の構成を示すブロック図である。
【図７６】図１６のステップＳ８４の割付補償処理を説明するフローチャートである。
【図７７】図７６のステップＳ８０３のベクトル補償処理を説明するフローチャートである。
【図７８】図２の画像補間部の構成を示すブロック図である。
【図７９】図１６のステップＳ８５の画像補間処理を説明するフローチャートである。
【符号の説明】
【０７８３】
１  信号処理装置，５１  フレームメモリ，５２  ベクトル検出部，５３  検出ベクトルメモリ，５４  ベクトル割付部，５５  割付ベクトルメモリ，５６  割付フラグメモリ，５７  割付補償部，５８  画像補間部，６１，６１Ａ，６１Ｂ  評価値演算部，１０１  初期ベクトル選択部，１０３  反復勾配法演算部，１０４  ベクトル評価部，１０５  シフト初期ベクトル割付部，１０６  評価値メモリ，１０７  シフト初期ベクトルメモリ，４０４  有効画素判定部，４０５  勾配法演算部，４１２  評価判定部，４２１  画素差分算出部，４２２  画素判定部，４２３  カウンタ，４２４  勾配法継続判定部，４２５  演算実行判定部，４６１  画素差分算出部，４６２  演算判定部，４６３−１  統合型勾配演算部，４６３−２  独立型勾配演算部，４６４  ベクトル算出部，５２１  初期ベクトル選択部，５２２  反復勾配法演算部，５２３  ベクトル評価部，５２４  初期候補ベクトルメモリ，５３１  有効画素判定部，５４１  評価判定部，５５１  勾配法継続判定部，５６１  ベクトル評価部，５７１  ０ベクトルフラグ領域，５８１  評価判定部
【図１】
0004752407.tif 000032
【図２】
0004752407.tif 000033
【図３】
0004752407.tif 000034
【図４】
0004752407.tif 000035
【図５】
0004752407.tif 000036
【図６】
0004752407.tif 000037
【図７】
0004752407.tif 000038
【図８】
0004752407.tif 000039
【図９】
0004752407.tif 000040
【図１０】
0004752407.tif 000041
【図１１】
0004752407.tif 000042
【図１２】
0004752407.tif 000043
【図１３】
0004752407.tif 000044
【図１４】
0004752407.tif 000045
【図１５】
0004752407.tif 000046
【図１６】
0004752407.tif 000047
【図１７】
0004752407.tif 000048
【図１８】
0004752407.tif 000049
【図１９】
0004752407.tif 000050
【図２０】
0004752407.tif 000051
【図２１】
0004752407.tif 000052
【図２２】
0004752407.tif 000053
【図２３】
0004752407.tif 000054
【図２４】
0004752407.tif 000055
【図２５】
0004752407.tif 000056
【図２６】
0004752407.tif 000057
【図２７】
0004752407.tif 000058
【図２８】
0004752407.tif 000059
【図２９】
0004752407.tif 000060
【図３０】
0004752407.tif 000061
【図３１】
0004752407.tif 000062
【図３２】
0004752407.tif 000063
【図３３】
0004752407.tif 000064
【図３４】
0004752407.tif 000065
【図３５】
0004752407.tif 000066
【図３６】
0004752407.tif 000067
【図３７】
0004752407.tif 000068
【図３８】
0004752407.tif 000069
【図３９】
0004752407.tif 000070
【図４０】
0004752407.tif 000071
【図４１】
0004752407.tif 000072
【図４２】
0004752407.tif 000073
【図４３】
0004752407.tif 000074
【図４４】
0004752407.tif 000075
【図４５】
0004752407.tif 000076
【図４６】
0004752407.tif 000077
【図４７】
0004752407.tif 000078
【図４８】
0004752407.tif 000079
【図４９】
0004752407.tif 000080
【図５０】
0004752407.tif 000081
【図５１】
0004752407.tif 000082
【図５２】
0004752407.tif 000083
【図５３】
0004752407.tif 000084
【図５４】
0004752407.tif 000085
【図５５】
0004752407.tif 000086
【図５６】
0004752407.tif 000087
【図５７】
0004752407.tif 000088
【図５８】
0004752407.tif 000089
【図５９】
0004752407.tif 000090
【図６０】
0004752407.tif 000091
【図６１】
0004752407.tif 000092
【図６２】
0004752407.tif 000093
【図６３】
0004752407.tif 000094
【図６４】
0004752407.tif 000095
【図６５】
0004752407.tif 000096
【図６６】
0004752407.tif 000097
【図６７】
0004752407.tif 000098
【図６８】
0004752407.tif 000099
【図６９】
0004752407.tif 000100
【図７０】
0004752407.tif 000101
【図７１】
0004752407.tif 000102
【図７２】
0004752407.tif 000103
【図７３】
0004752407.tif 000104
【図７４】
0004752407.tif 000105
【図７５】
0004752407.tif 000106
【図７６】
0004752407.tif 000107
【図７７】
0004752407.tif 000108
【図７８】
0004752407.tif 000109
【図７９】
0004752407.tif 000110