(57)【特許請求の範囲】
【請求項１】
ターゲット画面中において前記ターゲット画面を水平方向および垂直方向に複数個に分割した、複数の画素からなるターゲットブロックと同じ大きさの参照ブロックを、前記ターゲット画面とは異なる参照画面において設定したサーチ範囲において複数個設定し、前記ターゲットブロックと前記複数個の参照ブロックとの相関値を求める相関値算出手段と、
前記相関値算出手段で算出された相関値の最大値と、前記最大値を除く相関値のうちの極大値とを求め、前記相関値の最大値が算出された前記参照ブロックの前記ターゲットブロックに対するずれとして前記ターゲットブロックの動きベクトルであるローカル動きベクトルを検出するローカル動きベクトル検出手段と、
前記相関値の最大値と、前記最大値を除く相関値のうちの極大値との差または比を、前記ローカル動きベクトル検出手段で検出した前記動きベクトルの信頼性の指標として算出する信頼性指標値算出手段と、
前記複数個のターゲットブロックのそれぞれの動きベクトルの信頼性を、前記信頼性の指標を用いて判定し、信頼性の高いベクトル前記ローカル動きベクトルのみを用いて、前記ターゲット画面全体に対する動きベクトルであるグローバル動きベクトルを算出するグローバル動きベクトル算出部と、
を有し、
前記グローバル動きベクトル算出部は、
前記信頼性の指標が予め決定された第１のしきい値よりも大きいローカル動きベクトルのターゲットブロックを、信頼性が高いローカル動きベクトルのターゲットブロックとして選定し、
前記選定したターゲットブロックのローカル動きベクトルのみを用いてグローバル動きベクトルを導出し、
前記導出したグローバル動きベクトルを基に、アフィン変換行列により理論上のローカル動きベクトルを算出し、
前記選定したターゲットブロックにおいて、前記ローカル動きベクトル検出手段が検出したローカル動きベクトルと、前記理論上のローカル動きベクトルとの誤差値を算出し、
全ての前記選定したターゲットブロックにおける前記誤差値の平均値と、最大値を算出し、前記誤差値の平均値が予め決定された第２のしきい値より小さく、かつ、前記誤差値の最大値が予め決定された第３のしきい値より小さいという条件を満たすか否かを判定し、当該条件を満たさないと判定した場合には、前記誤差値の最大値を有するローカル動きベクトルのターゲットブロックを排除して前記条件を満たすまで上記処理を繰り返し、
前記条件を満たした場合のグローバル動きベクトルを出力する
画像処理装置。
【請求項２】
前記グローバル動きベクトル算出部は、前記誤差値の平均値が予め決定された第２のしきい値より小さく、かつ、前記誤差値の最大値が予め決定された第３のしきい値より小さいという条件を満たすか否かを判定し、当該条件を満たさないと判定した場合に、誤差値が前記第３のしきい値より大きい動きベクトルのターゲットブロックを排除して前記条件を満たすまで上記処理を繰り返す
請求項１に記載の画像処理装置。
【請求項３】
前記動きベクトルの信頼性の指標としての前記差の値に、前記ターゲット画面の画像のコントラスト分を加味する
請求項１に記載の画像処理装置。
【請求項４】
前記ローカル動きベクトル検出手段は、
元の画像である基底面を予め決定された第１の倍率で縮小した画像である中間面、及び、当該中間面を予め決定された第２の倍率で縮小した画像である縮小面を前記ターゲット画面とし、
縮小面におけるターゲット画面において縮小面ターゲットブロックを設定すると共に縮小面における参照画面において縮小面参照ブロックを設定し、前記縮小面ターゲットブロックと前記縮小面参照ブロックとを基に縮小面動きベクトルを検出した後、
中間面におけるターゲット画面における、前記縮小面ターゲットブロックに対応する領域に中間面ターゲットブロックを設定すると共に、中間面における参照画面において、前記縮小面動きベクトルを中心とした中間面サーチ範囲を設定し、当該中間面サーチ範囲内に中間面参照ブロックを設定して、前記中間面ターゲットブロックと前記中間面参照ブロックとを基に中間面動きベクトルを検出し、
さらに、基底面におけるターゲット画面における、前記中間面ターゲットブロックに対応する領域に基底面ターゲットブロックを設定すると共に、基底面における参照画面において、前記中間面動きベクトルを中心とした基底面サーチ範囲を設定し、当該基底面サーチ範囲内に基底面参照ブロックを設定して、前記基底面ターゲットブロックと前記基底面参照ブロックとを基に基底面動きベクトルを検出し、
前記縮小面動きベクトルと、前記中間面動きベクトルと、前機器底面動きベクトルとの合成ベクトルを、前記基底面におけるローカルベクトルとして検出する
請求項１に記載の画像処理装置。
【請求項５】
前記動きベクトル検出手段においては、前記相関値の最大値と、前記相関値の最大値のブロックの近傍の参照ブロックについて求められた相関値とを用いて補間処理を行い、その補間処理結果に基づいて前記動きベクトルを検出する
請求項４に記載の画像処理装置。
【請求項６】
前記相関値算出手段では、１枚の処理対象画面を、前記ターゲット画面および前記参照画面として、前記ターゲットブロックと前記複数個の参照ブロックとの相関値を求める処理を行う
請求項１に記載の画像処理装置。
【請求項７】
相関値算出手段と、ローカル動きベクトル検出手段と、信頼性指標値算出手段と、グローバル動きベクトル検出手段と、を有する画像処理装置の画像処理方法であって、
前記相関値算出手段が、ターゲット画面中において前記ターゲット画面を水平方向および垂直方向に複数個に分割した、複数の画素からなるターゲットブロックと同じ大きさの参照ブロックを、前記ターゲット画面とは異なる参照画面において設定したサーチ範囲において複数個設定し、前記ターゲットブロックと前記複数個の参照ブロックとの相関値を求める第１の工程と、
ローカル動きベクトル検出手段が、前記第１の工程で算出された相関値の最大値と、前記最大値を除く相関値のうちの極大値とを求め、前記相関値の最大値が算出された前記参照ブロックの前記ターゲットブロックに対するずれとして前記ターゲットブロックの動きベクトルであるローカル動きベクトルを検出する第２の工程と、
前記信頼性指標値算出手段が、前記相関値の最大値と、前記最大値を除く相関値のうちの極大値との差または比を、前記動きベクトル検出手段で検出した前記動きベクトルの信頼性の指標として算出する第３の工程と、
前記グローバル動きベクトル検出手段が、前記複数個のターゲットブロックのそれぞれの動きベクトルの信頼性を、前記信頼性の指標を用いて判定し、信頼性の高いベクトル前記ローカル動きベクトルのみを用いて、前記ターゲット画面全体に対する動きベクトルであるグローバル動きベクトルを算出する第４の工程と、
を有し、
前記第４の工程は、
前記グローバル動きベクトル検出手段が、前記信頼性の指標が予め決定された第１のしきい値よりも大きいローカル動きベクトルのターゲットブロックを、信頼性が高いローカル動きベクトルのターゲットブロックとして選定する第５の工程と、
前記グローバル動きベクトル検出手段が、前記第５の工程において選定したターゲットブロックのローカル動きベクトルのみを用いてグローバル動きベクトルを導出する第６の工程と、
前記グローバル動きベクトル検出手段が、前記第６の工程において導出したグローバル動きベクトルを基に、アフィン変換行列により理論上のローカル動きベクトルを算出する第７の工程と、
前記グローバル動きベクトル検出手段が、前記第５の工程において選定したターゲットブロックにおける、前記第２の工程において検出されたローカル動きベクトルと、前記理論上のローカル動きベクトルとの誤差値を算出する第８の工程と、
前記グローバル動きベクトル検出手段が、全ての前記選定したターゲットブロックにおける前記誤差値の平均値と、最大値を算出し、前記誤差値の平均値が予め決定された第２のしきい値より小さく、かつ、前記誤差値の最大値が予め決定された第３のしきい値より小さいという条件を満たすか否かを判定し、当該条件を満たさないと判定した場合には、前記誤差値の最大値を有するローカル動きベクトルのターゲットブロックを排除して前記条件を満たすまで上記処理を繰り返す第９の工程と、
前記グローバル動きベクトル検出手段が、前記条件を満たした場合のグローバル動きベクトルを出力する第１０の工程と、
を有する画像処理方法。
【請求項８】
ターゲット画面中において前記ターゲット画面を水平方向および垂直方向に複数個に分割した、複数の画素からなるターゲットブロックと同じ大きさの参照ブロックを、前記ターゲット画面とは異なる参照画面において設定したサーチ範囲において複数個設定し、前記ターゲットブロックと前記複数個の参照ブロックとの相関値を求める第１の手順と、
前記第１の手順で算出された相関値の最大値と、前記最大値を除く相関値のうちの極大値とを求め、前記相関値の最大値が算出された前記参照ブロックの前記ターゲットブロックに対するずれとして前記ターゲットブロックの動きベクトルであるローカル動きベクトルを検出する第２の手順と、
前記相関値の最大値と、前記最大値を除く相関値のうちの極大値との差または比を、前記動きベクトル検出手段で検出した前記動きベクトルの信頼性の指標として算出する第３の手順と、
前記複数個のターゲットブロックのそれぞれの動きベクトルの信頼性を、前記信頼性の指標を用いて判定し、信頼性の高いベクトル前記ローカル動きベクトルのみを用いて、前記ターゲット画面全体に対する動きベクトルであるグローバル動きベクトルを算出する第４の手順と、
を有し、
前記第４の手順は、
前記信頼性の指標が予め決定された第１のしきい値よりも大きいローカル動きベクトルのターゲットブロックを、信頼性が高いローカル動きベクトルのターゲットブロックとして選定する第５の手順と、
前記第５の手順において選定したターゲットブロックのローカル動きベクトルのみを用いてグローバル動きベクトルを導出する第６の手順と、
前記第６の手順において導出したグローバル動きベクトルを基に、アフィン変換行列により理論上のローカル動きベクトルを算出する第７の手順と、
前記第５の手順において選定したターゲットブロックにおける、前記第２の手順において検出されたローカル動きベクトルと、前記理論上のローカル動きベクトルとの誤差値を算出する第８の手順と、
全ての前記選定したターゲットブロックにおける前記誤差値の平均値と、最大値を算出し、前記誤差値の平均値が予め決定された第２のしきい値より小さく、かつ、前記誤差値の最大値が予め決定された第３のしきい値より小さいという条件を満たすか否かを判定し、当該条件を満たさないと判定した場合には、前記誤差値の最大値を有するローカル動きベクトルのターゲットブロックを排除して前記条件を満たすまで上記処理を繰り返す第９の手順と、
前記条件を満たした場合のグローバル動きベクトルを出力する第１０の手順と、
を画像処理装置が有するコンピュータに実行させるプログラム。
【請求項９】
ターゲット画面中において前記ターゲット画面を水平方向および垂直方向に複数個に分割した、複数の画素からなるターゲットブロックと同じ大きさの参照ブロックを、前記ターゲット画面とは異なる参照画面において設定したサーチ範囲において複数個設定し、前記ターゲットブロックと前記複数個の参照ブロックとの相関値を求める相関値算出手段と、
前記相関値算出手段で算出された相関値の最大値と、前記最大値を除く相関値のうちの極大値とを求め、前記相関値の最大値が算出された前記参照ブロックの前記ターゲットブロックに対するずれとして前記ターゲットブロックの動きベクトルであるローカル動きベクトルを検出するローカル動きベクトル検出手段と、
前記相関値の最大値と、前記最大値を除く相関値のうちの極大値との差または比を、前記ローカル動きベクトル検出手段で検出した前記動きベクトルの信頼性の指標として算出する信頼性指標値算出手段と、
前記複数個のターゲットブロックのそれぞれの動きベクトルの信頼性を、前記信頼性の指標を用いて判定し、信頼性の高いベクトル前記ローカル動きベクトルのみを用いて、前記ターゲット画面全体に対する動きベクトルであるグローバル動きベクトルを算出するグローバル動きベクトル算出部と、
を有し、
前記グローバル動きベクトル算出部は、
前記信頼性の指標が予め決定された第１のしきい値よりも大きいローカル動きベクトルのターゲットブロックを、信頼性が高いローカル動きベクトルのターゲットブロックとして選定し、
前記選定したターゲットブロックのローカル動きベクトルのみを用いてグローバル動きベクトルを導出し、
前記導出したグローバル動きベクトルを基に、アフィン変換行列により理論上のローカル動きベクトルを算出し、
前記選定したターゲットブロックにおいて、前記ローカル動きベクトル検出手段が検出したローカル動きベクトルと、前記理論上のローカル動きベクトルとの誤差値を算出し、
全ての前記選定したターゲットブロックにおける前記誤差値の平均値と、最大値を算出し、前記誤差値の平均値が予め決定された第２のしきい値より小さく、かつ、前記誤差値の最大値が予め決定された第３のしきい値より小さいという条件を満たすか否かを判定し、当該条件を満たさないと判定した場合には、前記誤差値が前記第３のしきい値より大きい全てのローカル動きベクトルのターゲットブロックを排除して前記条件を満たすまで上記処理を繰り返し、
前記条件を満たした場合のグローバル動きベクトルを出力する
画像処理装置。
【請求項１０】
相関値算出手段と、ローカル動きベクトル検出手段と、信頼性指標値算出手段と、グローバル動きベクトル検出手段と、を有する画像処理装置の画像処理方法であって、
前記相関値算出手段が、ターゲット画面中において前記ターゲット画面を水平方向および垂直方向に複数個に分割した、複数の画素からなるターゲットブロックと同じ大きさの参照ブロックを、前記ターゲット画面とは異なる参照画面において設定したサーチ範囲において複数個設定し、前記ターゲットブロックと前記複数個の参照ブロックとの相関値を求める第１の工程と、
ローカル動きベクトル検出手段が、前記第１の工程で算出された相関値の最大値と、前記最大値を除く相関値のうちの極大値とを求め、前記相関値の最大値が算出された前記参照ブロックの前記ターゲットブロックに対するずれとして前記ターゲットブロックの動きベクトルであるローカル動きベクトルを検出する第２の工程と、
前記信頼性指標値算出手段が、前記相関値の最大値と、前記最大値を除く相関値のうちの極大値との差または比を、前記動きベクトル検出手段で検出した前記動きベクトルの信頼性の指標として算出する第３の工程と、
前記グローバル動きベクトル検出手段が、前記複数個のターゲットブロックのそれぞれの動きベクトルの信頼性を、前記信頼性の指標を用いて判定し、信頼性の高いベクトル前記ローカル動きベクトルのみを用いて、前記ターゲット画面全体に対する動きベクトルであるグローバル動きベクトルを算出する第４の工程と、
を有し、
前記第４の工程は、
前記グローバル動きベクトル検出手段が、前記信頼性の指標が予め決定された第１のしきい値よりも大きいローカル動きベクトルのターゲットブロックを、信頼性が高いローカル動きベクトルのターゲットブロックとして選定する第５の工程と、
前記グローバル動きベクトル検出手段が、前記第５の工程において選定したターゲットブロックのローカル動きベクトルのみを用いてグローバル動きベクトルを導出する第６の工程と、
前記グローバル動きベクトル検出手段が、前記第６の工程において導出したグローバル動きベクトルを基に、アフィン変換行列により理論上のローカル動きベクトルを算出する第７の工程と、
前記グローバル動きベクトル検出手段が、前記第５の工程において選定したターゲットブロックにおける、前記第２の工程において検出されたローカル動きベクトルと、前記理論上のローカル動きベクトルとの誤差値を算出する第８の工程と、
前記グローバル動きベクトル検出手段が、全ての前記選定したターゲットブロックにおける前記誤差値の平均値と、最大値を算出し、前記誤差値の平均値が予め決定された第２のしきい値より小さく、かつ、前記誤差値の最大値が予め決定された第３のしきい値より小さいという条件を満たすか否かを判定し、当該条件を満たさないと判定した場合には、前記誤差値が前記第３のしきい値より大きい全てのローカル動きベクトルのターゲットブロックを排除して前記条件を満たすまで上記処理を繰り返す第９の工程と、
前記グローバル動きベクトル検出手段が、前記条件を満たした場合のグローバル動きベクトルを出力する第１０の工程と、
を有する画像処理方法。
【請求項１１】
ターゲット画面中において前記ターゲット画面を水平方向および垂直方向に複数個に分割した、複数の画素からなるターゲットブロックと同じ大きさの参照ブロックを、前記ターゲット画面とは異なる参照画面において設定したサーチ範囲において複数個設定し、前記ターゲットブロックと前記複数個の参照ブロックとの相関値を求める第１の手順と、
前記第１の手順で算出された相関値の最大値と、前記最大値を除く相関値のうちの極大値とを求め、前記相関値の最大値が算出された前記参照ブロックの前記ターゲットブロックに対するずれとして前記ターゲットブロックの動きベクトルであるローカル動きベクトルを検出する第２の手順と、
前記相関値の最大値と、前記最大値を除く相関値のうちの極大値との差または比を、前記動きベクトル検出手段で検出した前記動きベクトルの信頼性の指標として算出する第３の手順と、
前記複数個のターゲットブロックのそれぞれの動きベクトルの信頼性を、前記信頼性の指標を用いて判定し、信頼性の高いベクトル前記ローカル動きベクトルのみを用いて、前記ターゲット画面全体に対する動きベクトルであるグローバル動きベクトルを算出する第４の手順と、
を有し、
前記第４の手順は、
前記信頼性の指標が予め決定された第１のしきい値よりも大きいローカル動きベクトルのターゲットブロックを、信頼性が高いローカル動きベクトルのターゲットブロックとして選定する第５の手順と、
前記第５の手順において選定したターゲットブロックのローカル動きベクトルのみを用いてグローバル動きベクトルを導出する第６の手順と、
前記第６の手順において導出したグローバル動きベクトルを基に、アフィン変換行列により理論上のローカル動きベクトルを算出する第７の手順と、
前記第５の手順において選定したターゲットブロックにおける、前記第２の手順において検出されたローカル動きベクトルと、前記理論上のローカル動きベクトルとの誤差値を算出する第８の手順と、
全ての前記選定したターゲットブロックにおける前記誤差値の平均値と、最大値を算出し、前記誤差値の平均値が予め決定された第２のしきい値より小さく、かつ、前記誤差値の最大値が予め決定された第３のしきい値より小さいという条件を満たすか否かを判定し、当該条件を満たさないと判定した場合には、前記誤差値が前記第３のしきい値より大きい全てのローカル動きベクトルのターゲットブロックを排除して前記条件を満たすまで上記処理を繰り返す第９の手順と、
前記条件を満たした場合のグローバル動きベクトルを出力する第１０の手順と、
を画像処理装置が有するコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、２画面間の動きベクトルを検出すると共に、検出した動きベクトルの信頼性を算出する画像処理装置および方法に関する。
【背景技術】
【０００２】
２つの画面間の動きベクトルを、画像情報自身から求めるブロックマッチング手法は、歴史の古い技術である。
【０００３】
このブロックマッチング手法は、注目画面である参照画面と、当該参照画面の動きの元となる元画面（ターゲット画面と称する）との間の２画面間の動きベクトルを、所定の大きさの矩形領域のブロック（ターゲットブロックと参照ブロック）について、参照画面とターゲット画面との間での相関を算出することにより算出する方法である。ターゲット画面が時間的に参照画面よりも前の画面とされる場合（例えば、ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）における動き検出の場合）と、参照画面が時間的にターゲット画面よりも前の画面とされる場合（例えば、後述する画像フレームの重ね合わせによるノイズ低減の場合）の両方がある。
【０００４】
なお、この明細書で、画面とは、１フレームまたは１フィールドの画像データからなる画像を意味しているが、この明細書における以下の説明の便宜上、画面は１フレームからなるものとして、画面をフレームと称することとする。したがって、参照画面は参照フレーム、ターゲット画面はターゲットフレームと称することとする。
【０００５】
このブロックマッチングによる動きベクトル検出手法は、テレビジョンカメラのパン・チルト検出や被写体追尾、ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）方式の動画符号化などを中心に開発が進み、９０年代に入ってからは、画像の重ね合わせによるセンサレス手ブレ補正や低照度撮影時のノイズ除去（Ｎｏｉｓｅ  Ｒｅｄｕｃｔｉｏｎ：以降、ＮＲと表記する）など多岐に渡って応用が進められている。
【０００６】
また、ブロックマッチングによる動きベクトル検出手法は、画像認識や手ぶれ補正用途に留まらず、撮像装置のシャッター速度の自動調整や、液晶テレビの倍速フレームレート変換のように、新たな広がりを呈している。
【０００７】
そして、いずれの場合においても、検出された動きベクトルの信頼性は重要である。すなわち、検出された動きベクトルが正確であれば、複数枚の画像の精度の高い位置合わせが可能となり、被写体追尾や高精度の手ぶれ補正などが期待できるが、信頼性の低い動きベクトルを用いて処理を実行した場合、かえって、誤った方向に補正などがなされてしまうため、アプリケーション依存の後処理工程の精度も低くなってしまう事態を生じる。
【０００８】
そこで、信頼性の高い動きベクトルを抽出するために、ＭＰＥＧ方式の符号化におけるＤＣＴ（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ；離散コサイン変換）結果のＡＣ成分およびＤＣ成分の比較を行ったり、画像のエッジとの比較を行うなどを行ったりして、特徴的な画像部分からの動きベクトルを、より信頼性の高い動きベクトルとして検出するようにすることが行われている（例えば特許文献１（特開２００６−３１８３４５号公報）参照）。
【０００９】
また、ベクトル算出の前に、エッジ検出やコーナーディテクタによって、画像内の特徴点（特異点）を予め抽出しておき、それらに対して動きベクトルを求める方法などもある。
【００１０】
さらに、特許文献２（特開２００５−３０１９８４号公報）には、画像の特徴量を表わすアクティビティから、動きベクトルの信頼性の指標を得るようにすることが記載されている。
【００１１】
上記の特許文献は、次の通りである。
【特許文献１】特開２００６−３１８３４５号公報
【特許文献２】特開２００５−３０１９８４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかしながら、上述した従来の動きベクトルの信頼性に関する技術は、いずれも、画像の特徴点や特徴量を抽出する処理を必要としており、動きベクトルの検出処理のほかに、当該特徴点や特徴量を抽出する手段を設けなければならず、構成が複雑になると共に、コストアップの原因となるという問題があった。
【００１３】
また、上述の特徴点や特徴量を用いる技術は、いずれも基本的に低ノイズ画像を対象としたものであり、高ノイズの画像については、正常に機能しないという問題がある。さらに、特徴点抽出の方法は、ノイズのみではなく、繰り返しパターンにも弱いという問題がある。
【００１４】
この発明は、以上の点にかんがみ、簡単な構成により、また、高ノイズや繰り返しパターンの画像であっても、動きベクトルの信頼性を評価することができるようにした画像処理装置および方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
上記の課題を解決するために、第１の発明の画像処理装置は、ターゲット画面中において前記ターゲット画面を水平方向および垂直方向に複数個に分割した、複数の画素からなるターゲットブロックと同じ大きさの参照ブロックを、前記ターゲット画面とは異なる参照画面において設定したサーチ範囲において複数個設定し、前記ターゲットブロックと前記複数個の参照ブロックとの相関値を求める相関値算出手段と、前記相関値算出手段で算出された相関値の最大値と、前記最大値を除く相関値のうちの極大値とを求め、前記相関値の最大値が算出された前記参照ブロックの前記ターゲットブロックに対するずれとして前記ターゲットブロックの動きベクトルであるローカル動きベクトルを検出するローカル動きベクトル検出手段と、前記相関値の最大値と、前記最大値を除く相関値のうちの極大値との差または比を、前記ローカル動きベクトル検出手段で検出した前記動きベクトルの信頼性の指標として算出する信頼性指標値算出手段と、前記複数個のターゲットブロックのそれぞれの動きベクトルの信頼性を、前記信頼性の指標を用いて判定し、信頼性の高いベクトル前記ローカル動きベクトルのみを用いて、前記ターゲット画面全体に対する動きベクトルであるグローバル動きベクトルを算出するグローバル動きベクトル算出部と、を有し、前記グローバル動きベクトル算出部は、前記信頼性の指標が予め決定された第１のしきい値よりも大きいローカル動きベクトルのターゲットブロックを、信頼性が高いローカル動きベクトルのターゲットブロックとして選定し、前記選定したターゲットブロックのローカル動きベクトルのみを用いてグローバル動きベクトルを導出し、前記導出したグローバル動きベクトルを基に、アフィン変換行列により理論上のローカル動きベクトルを算出し、前記選定したターゲットブロックにおいて、前記ローカル動きベクトル検出手段が検出したローカル動きベクトルと、前記理論上のローカル動きベクトルとの誤差値を算出し、全ての前記選定したターゲットブロックにおける前記誤差値の平均値と、最大値を算出し、前記誤差値の平均値が予め決定された第２のしきい値より小さく、かつ、前記誤差値の最大値が予め決定された第３のしきい値より小さいという条件を満たすか否かを判定し、当該条件を満たさないと判定した場合には、前記誤差値の最大値を有するローカル動きベクトルのターゲットブロックを排除して前記条件を満たすまで上記処理を繰り返し、前記条件を満たした場合のグローバル動きベクトルを出力する。
【００１６】
第２の発明の画像処理方法は、相関値算出手段と、ローカル動きベクトル検出手段と、信頼性指標値算出手段と、グローバル動きベクトル検出手段と、を有する画像処理装置の画像処理方法であって、前記相関値算出手段が、ターゲット画面中において前記ターゲット画面を水平方向および垂直方向に複数個に分割した、複数の画素からなるターゲットブロックと同じ大きさの参照ブロックを、前記ターゲット画面とは異なる参照画面において設定したサーチ範囲において複数個設定し、前記ターゲットブロックと前記複数個の参照ブロックとの相関値を求める第１の工程と、ローカル動きベクトル検出手段が、前記第１の工程で算出された相関値の最大値と、前記最大値を除く相関値のうちの極大値とを求め、前記相関値の最大値が算出された前記参照ブロックの前記ターゲットブロックに対するずれとして前記ターゲットブロックの動きベクトルであるローカル動きベクトルを検出する第２の工程と、前記信頼性指標値算出手段が、前記相関値の最大値と、前記最大値を除く相関値のうちの極大値との差または比を、前記動きベクトル検出手段で検出した前記動きベクトルの信頼性の指標として算出する第３の工程と、前記グローバル動きベクトル検出手段が、前記複数個のターゲットブロックのそれぞれの動きベクトルの信頼性を、前記信頼性の指標を用いて判定し、信頼性の高いベクトル前記ローカル動きベクトルのみを用いて、前記ターゲット画面全体に対する動きベクトルであるグローバル動きベクトルを算出する第４の工程と、を有し、前記第４の工程は、前記グローバル動きベクトル検出手段が、前記信頼性の指標が予め決定された第１のしきい値よりも大きいローカル動きベクトルのターゲットブロックを、信頼性が高いローカル動きベクトルのターゲットブロックとして選定する第５の工程と、前記グローバル動きベクトル検出手段が、前記第５の工程において選定したターゲットブロックのローカル動きベクトルのみを用いてグローバル動きベクトルを導出する第６の工程と、前記グローバル動きベクトル検出手段が、前記第６の工程において導出したグローバル動きベクトルを基に、アフィン変換行列により理論上のローカル動きベクトルを算出する第７の工程と、前記グローバル動きベクトル検出手段が、前記第５の工程において選定したターゲットブロックにおける、前記第２の工程において検出されたローカル動きベクトルと、前記理論上のローカル動きベクトルとの誤差値を算出する第８の工程と、前記グローバル動きベクトル検出手段が、全ての前記選定したターゲットブロックにおける前記誤差値の平均値と、最大値を算出し、前記誤差値の平均値が予め決定された第２のしきい値より小さく、かつ、前記誤差値の最大値が予め決定された第３のしきい値より小さいという条件を満たすか否かを判定し、当該条件を満たさないと判定した場合には、前記誤差値の最大値を有するローカル動きベクトルのターゲットブロックを排除して前記条件を満たすまで上記処理を繰り返す第９の工程と、前記グローバル動きベクトル検出手段が、前記条件を満たした場合のグローバル動きベクトルを出力する第１０の工程と、を有する。
【００１７】
第３の発明のプログラムは、ターゲット画面中において前記ターゲット画面を水平方向および垂直方向に複数個に分割した、複数の画素からなるターゲットブロックと同じ大きさの参照ブロックを、前記ターゲット画面とは異なる参照画面において設定したサーチ範囲において複数個設定し、前記ターゲットブロックと前記複数個の参照ブロックとの相関値を求める第１の手順と、前記第１の手順で算出された相関値の最大値と、前記最大値を除く相関値のうちの極大値とを求め、前記相関値の最大値が算出された前記参照ブロックの前記ターゲットブロックに対するずれとして前記ターゲットブロックの動きベクトルであるローカル動きベクトルを検出する第２の手順と、前記相関値の最大値と、前記最大値を除く相関値のうちの極大値との差または比を、前記動きベクトル検出手段で検出した前記動きベクトルの信頼性の指標として算出する第３の手順と、前記複数個のターゲットブロックのそれぞれの動きベクトルの信頼性を、前記信頼性の指標を用いて判定し、信頼性の高いベクトル前記ローカル動きベクトルのみを用いて、前記ターゲット画面全体に対する動きベクトルであるグローバル動きベクトルを算出する第４の手順と、を有し、前記第４の手順は、前記信頼性の指標が予め決定された第１のしきい値よりも大きいローカル動きベクトルのターゲットブロックを、信頼性が高いローカル動きベクトルのターゲットブロックとして選定する第５の手順と、前記第５の手順において選定したターゲットブロックのローカル動きベクトルのみを用いてグローバル動きベクトルを導出する第６の手順と、前記第６の手順において導出したグローバル動きベクトルを基に、アフィン変換行列により理論上のローカル動きベクトルを算出する第７の手順と、前記第５の手順において選定したターゲットブロックにおける、前記第２の手順において検出されたローカル動きベクトルと、前記理論上のローカル動きベクトルとの誤差値を算出する第８の手順と、全ての前記選定したターゲットブロックにおける前記誤差値の平均値と、最大値を算出し、前記誤差値の平均値が予め決定された第２のしきい値より小さく、かつ、前記誤差値の最大値が予め決定された第３のしきい値より小さいという条件を満たすか否かを判定し、当該条件を満たさないと判定した場合には、前記誤差値の最大値を有するローカル動きベクトルのターゲットブロックを排除して前記条件を満たすまで上記処理を繰り返す第９の手順と、前記条件を満たした場合のグローバル動きベクトルを出力する第１０の手順と、を画像処理装置が有するコンピュータに実行させる。
【００１８】
第４の発明の画像処理装置は、ターゲット画面中において前記ターゲット画面を水平方向および垂直方向に複数個に分割した、複数の画素からなるターゲットブロックと同じ大きさの参照ブロックを、前記ターゲット画面とは異なる参照画面において設定したサーチ範囲において複数個設定し、前記ターゲットブロックと前記複数個の参照ブロックとの相関値を求める相関値算出手段と、前記相関値算出手段で算出された相関値の最大値と、前記最大値を除く相関値のうちの極大値とを求め、前記相関値の最大値が算出された前記参照ブロックの前記ターゲットブロックに対するずれとして前記ターゲットブロックの動きベクトルであるローカル動きベクトルを検出するローカル動きベクトル検出手段と、前記相関値の最大値と、前記最大値を除く相関値のうちの極大値との差または比を、前記ローカル動きベクトル検出手段で検出した前記動きベクトルの信頼性の指標として算出する信頼性指標値算出手段と、前記複数個のターゲットブロックのそれぞれの動きベクトルの信頼性を、前記信頼性の指標を用いて判定し、信頼性の高いベクトル前記ローカル動きベクトルのみを用いて、前記ターゲット画面全体に対する動きベクトルであるグローバル動きベクトルを算出するグローバル動きベクトル算出部と、を有し、前記グローバル動きベクトル算出部は、前記信頼性の指標が予め決定された第１のしきい値よりも大きいローカル動きベクトルのターゲットブロックを、信頼性が高いローカル動きベクトルのターゲットブロックとして選定し、前記選定したターゲットブロックのローカル動きベクトルのみを用いてグローバル動きベクトルを導出し、前記導出したグローバル動きベクトルを基に、アフィン変換行列により理論上のローカル動きベクトルを算出し、前記選定したターゲットブロックにおいて、前記ローカル動きベクトル検出手段が検出したローカル動きベクトルと、前記理論上のローカル動きベクトルとの誤差値を算出し、全ての前記選定したターゲットブロックにおける前記誤差値の平均値と、最大値を算出し、前記誤差値の平均値が予め決定された第２のしきい値より小さく、かつ、前記誤差値の最大値が予め決定された第３のしきい値より小さいという条件を満たすか否かを判定し、当該条件を満たさないと判定した場合には、前記誤差値が前記第３のしきい値より大きい全てのローカル動きベクトルのターゲットブロックを排除して前記条件を満たすまで上記処理を繰り返し、前記条件を満たした場合のグローバル動きベクトルを出力する。
【００１９】
第５の発明の画像処理方法は、相関値算出手段と、ローカル動きベクトル検出手段と、信頼性指標値算出手段と、グローバル動きベクトル検出手段と、を有する画像処理装置の画像処理方法であって、前記相関値算出手段が、ターゲット画面中において前記ターゲット画面を水平方向および垂直方向に複数個に分割した、複数の画素からなるターゲットブロックと同じ大きさの参照ブロックを、前記ターゲット画面とは異なる参照画面において設定したサーチ範囲において複数個設定し、前記ターゲットブロックと前記複数個の参照ブロックとの相関値を求める第１の工程と、ローカル動きベクトル検出手段が、前記第１の工程で算出された相関値の最大値と、前記最大値を除く相関値のうちの極大値とを求め、前記相関値の最大値が算出された前記参照ブロックの前記ターゲットブロックに対するずれとして前記ターゲットブロックの動きベクトルであるローカル動きベクトルを検出する第２の工程と、前記信頼性指標値算出手段が、前記相関値の最大値と、前記最大値を除く相関値のうちの極大値との差または比を、前記動きベクトル検出手段で検出した前記動きベクトルの信頼性の指標として算出する第３の工程と、前記グローバル動きベクトル検出手段が、前記複数個のターゲットブロックのそれぞれの動きベクトルの信頼性を、前記信頼性の指標を用いて判定し、信頼性の高いベクトル前記ローカル動きベクトルのみを用いて、前記ターゲット画面全体に対する動きベクトルであるグローバル動きベクトルを算出する第４の工程と、を有し、前記第４の工程は、前記グローバル動きベクトル検出手段が、前記信頼性の指標が予め決定された第１のしきい値よりも大きいローカル動きベクトルのターゲットブロックを、信頼性が高いローカル動きベクトルのターゲットブロックとして選定する第５の工程と、前記グローバル動きベクトル検出手段が、前記第５の工程において選定したターゲットブロックのローカル動きベクトルのみを用いてグローバル動きベクトルを導出する第６の工程と、前記グローバル動きベクトル検出手段が、前記第６の工程において導出したグローバル動きベクトルを基に、アフィン変換行列により理論上のローカル動きベクトルを算出する第７の工程と、前記グローバル動きベクトル検出手段が、前記第５の工程において選定したターゲットブロックにおける、前記第２の工程において検出されたローカル動きベクトルと、前記理論上のローカル動きベクトルとの誤差値を算出する第８の工程と、前記グローバル動きベクトル検出手段が、全ての前記選定したターゲットブロックにおける前記誤差値の平均値と、最大値を算出し、前記誤差値の平均値が予め決定された第２のしきい値より小さく、かつ、前記誤差値の最大値が予め決定された第３のしきい値より小さいという条件を満たすか否かを判定し、当該条件を満たさないと判定した場合には、前記誤差値が前記第３のしきい値より大きい全てのローカル動きベクトルのターゲットブロックを排除して前記条件を満たすまで上記処理を繰り返す第９の工程と、前記グローバル動きベクトル検出手段が、前記条件を満たした場合のグローバル動きベクトルを出力する第１０の工程と、を有する。
【００２０】
第６の発明のプログラムは、ターゲット画面中において前記ターゲット画面を水平方向および垂直方向に複数個に分割した、複数の画素からなるターゲットブロックと同じ大きさの参照ブロックを、前記ターゲット画面とは異なる参照画面において設定したサーチ範囲において複数個設定し、前記ターゲットブロックと前記複数個の参照ブロックとの相関値を求める第１の手順と、前記第１の手順で算出された相関値の最大値と、前記最大値を除く相関値のうちの極大値とを求め、前記相関値の最大値が算出された前記参照ブロックの前記ターゲットブロックに対するずれとして前記ターゲットブロックの動きベクトルであるローカル動きベクトルを検出する第２の手順と、前記相関値の最大値と、前記最大値を除く相関値のうちの極大値との差または比を、前記動きベクトル検出手段で検出した前記動きベクトルの信頼性の指標として算出する第３の手順と、前記複数個のターゲットブロックのそれぞれの動きベクトルの信頼性を、前記信頼性の指標を用いて判定し、信頼性の高いベクトル前記ローカル動きベクトルのみを用いて、前記ターゲット画面全体に対する動きベクトルであるグローバル動きベクトルを算出する第４の手順と、を有し、前記第４の手順は、前記信頼性の指標が予め決定された第１のしきい値よりも大きいローカル動きベクトルのターゲットブロックを、信頼性が高いローカル動きベクトルのターゲットブロックとして選定する第５の手順と、前記第５の手順において選定したターゲットブロックのローカル動きベクトルのみを用いてグローバル動きベクトルを導出する第６の手順と、前記第６の手順において導出したグローバル動きベクトルを基に、アフィン変換行列により理論上のローカル動きベクトルを算出する第７の手順と、前記第５の手順において選定したターゲットブロックにおける、前記第２の手順において検出されたローカル動きベクトルと、前記理論上のローカル動きベクトルとの誤差値を算出する第８の手順と、全ての前記選定したターゲットブロックにおける前記誤差値の平均値と、最大値を算出し、前記誤差値の平均値が予め決定された第２のしきい値より小さく、かつ、前記誤差値の最大値が予め決定された第３のしきい値より小さいという条件を満たすか否かを判定し、当該条件を満たさないと判定した場合には、前記誤差値が前記第３のしきい値より大きい全てのローカル動きベクトルのターゲットブロックを排除して前記条件を満たすまで上記処理を繰り返す第９の手順と、前記条件を満たした場合のグローバル動きベクトルを出力する第１０の手順と、を画像処理装置が有するコンピュータに実行させる。
【発明の効果】
【００２５】
この発明によれば、画像の特徴点や特徴量を用いることなく、ターゲットブロックと参照ブロックとの相関値のみを用いて、動きベクトルの信頼性を表わす指標を得ることができる。このため、この発明によれば、高ノイズの画像や繰り返しパターンについても、確度の高い動きベクトルの信頼性の指標を得ることができる。
【発明を実施するための最良の形態】
【００２６】
以下、この発明による画像処理装置および画像処理方法の実施形態を、撮像装置に適用した場合について、図を参照しながら説明する。
【００２７】
［第１の実施形態］
この第１の実施形態の撮像装置は、撮像素子（イメージャ）によって撮像された複数枚の静止画像を、位置合わせしながら重ね合わせて、画像のノイズ低減を行うようにするものである。
【００２８】
撮像装置を手で保持して撮影する環境は、手ぶれが生じ易い環境である。このような撮像装置の手持ち撮影時において、静止画を連写撮影した場合の、例えば１枚目をターゲットフレーム、２枚目以降を参照フレームとする。参照フレーム全体に、平行移動、回転、拡大縮小を伴う変形処理を施すことにより、ターゲットフレームの位置に、参照フレームを位置合わせすることができる場合、この参照フレーム全体に加わっている変形処理をグローバルモーションと称する。手ぶれは、参照フレームが、ターゲットフレームに対して、前記平行移動、回転、拡大縮小を伴う変形処理を施すことにより、当該ターゲットフレームと位置合わせすることができる分だけ、ターゲットフレームに対して、グローバルモーションが生じたことを意味する。
【００２９】
この実施形態では、説明の簡単のため、撮影した静止画の１枚目を基準（ターゲットフレーム）とするが、これは本質ではない。任意のｎ枚目をターゲットフレームとし、任意のｍ（ｎ≠ｍ）枚目を参照フレームとして、グローバルモーションを定義し直しても良い。また、動画中の時間的に異なる２枚のフレーム画像間を対象にして、グローバルモーションを定義してもよい。また、撮像画像の１フレームのうちの有効画枠全てを対象とせず、１フレームの画像の一部分のみに関して、グローバルモーションの処理を適用しても良い。
【００３０】
グローバルモーションは、ターゲットフレームと参照フレームとの間の画面単位の動きベクトル（これを以下グローバル動きベクトルという）に対応したものとなる。したがって、グローバル動きベクトルを正確に求めることができれば、グローバルモーションを正しく導出することができ、手ぶれを良好に補正することができる。
【００３１】
以下の説明において、動きベクトル検出および動き補償（動きベクトルにより、２フレームの画像を位置合わせすること）を用いて複数枚の画像を重ね合わせて、ノイズを低減することをＮＲ（Ｎｏｉｓｅ Ｒｅｄｕｃｔｉｏｎ）と呼び、ＮＲによりノイズ低減された画像をＮＲ画像と称することとする。
【００３２】
この実施形態では、動きベクトルは、上述したブロックマッチング手法により検出する。そして、この実施形態では、１画面を多数個のブロックに分割して、そのブロック単位の動きベクトル（ローカル動きベクトルという）を、ブロックマッチング手法により検出すると共に、当該ローカル動きベクトルの信頼性の指標を、ブロックマッチング手法における相関値を用いて、後述するようにして検出する。そして、検出したローカル動きベクトルのうちの、信頼性の高いもののみから、１画面単位の動きベクトルとしてのグローバル動きベクトルを検出するようにする。
【００３３】
［ブロックマッチングの概要］
図２〜図７は、ブロックマッチング手法の概要を説明するための図である。ここで説明するブロックマッチング手法においては、例えば、図２（Ａ）に示すように、ターゲットフレーム１００に、それぞれ水平方向の複数画素および垂直方向の複数ライン分からなる所定の大きさの矩形領域のブロック（ターゲットブロック）１０２を想定する。
【００３４】
ブロックマッチングにおいては、ターゲットブロック１０２と相関性の高いブロックを、参照フレーム１０１の中から検索する。この検索の結果、相関性が最も高いとして参照フレーム１０１内に検出された参照ブロック１０３（図５１（Ｂ）参照）を、動き補償ブロックと呼ぶ。また、ターゲットブロック１０２と動き補償ブロック１０３（相関性が最も高い参照ブロック）との間の位置ずれ量を、動きベクトル（図２（Ｂ）の符号１０４参照）と称する。
【００３５】
ターゲットブロック１０２と動き補償ブロック１０３との間の位置ずれ（位置ずれ量と位置ずれ方向を含む）に対応する動きベクトル１０４は、参照フレーム１０１において、ターゲットフレーム１００の各ターゲットブロック１０２の位置と同じ位置に、ターゲットブロック１０２の射影イメージブロック１０９を想定したとき、このターゲットブロックの射影イメージブロック１０９の位置（例えば中心位置）と、動き補償ブロック１０３の位置（例えば中心位置）との間の位置ずれに相当し、位置ずれ量と位置ずれの方向成分も有するものである。
【００３６】
ブロックマッチング処理の概要を説明する。図３において点線で示すように、参照フレーム１０１において、ターゲットフレーム１００のターゲットブロック１０２の位置と同じ位置にターゲットブロックの射影イメージブロック１０９を想定し、このターゲットブロックの射影イメージブロック１０９の中心の座標を、動き検出の原点１０５とする。そして、動きベクトル１０４が、動き検出の原点１０５から或る範囲内に存在すると仮定し、この動き検出の原点１０５を中心した所定の範囲をサーチ範囲１０６（図３の一点鎖線参照）と設定する。
【００３７】
次に、ターゲットブロック１０２と同じ大きさのブロック（参照ブロックという）１０８を参照画面において設定する。そして、この参照ブロック１０８の位置を、サーチ範囲１０６内において、例えば水平方向および垂直方向に、１画素または複数画素単位で移動させるようにする。したがって、サーチ範囲１０６においては、複数個の参照ブロック１０８が設定されることになる。
【００３８】
ここで、参照ブロック１０８を、サーチ範囲１０６内を移動させるというのは、この例では、動き検出原点１０５がターゲットブロックの中心位置であるので、参照ブロック１０８の中心位置を、サーチ範囲１０６内を移動させることを意味し、参照ブロック１０８を構成する画素は、サーチ範囲１０６よりもはみ出すことがある。
【００３９】
そして、サーチ範囲において、設定される各参照ブロック１０８に対して、当該各参照ブロック１０８とターゲットブロック１０２との位置ずれ量および位置ずれ方向を表すベクトル（参照ベクトルという）１０７（図３参照）を設定し、それぞれの参照ベクトル１０７が指し示す位置にある参照ブロック１０８の画像内容と、ターゲットブロック１０２の画像内容との相関性を評価する。
【００４０】
参照ベクトル１０７は、図４に示すように、参照ブロック１０８の水平方向（Ｘ方向）の位置ずれ量Ｖｘとし、垂直方向（Ｙ方向）の位置ずれ量をＶｙとしたとき、ベクトル（Ｖｘ，Ｖｙ）と表すことができ、参照ブロック１０８の位置座標（例えば中心位置座標）とターゲットブロック１０２の位置座標（例えば中心位置座標）とが同じときには、参照ベクトル１０７は、ベクトル（０，０）と表す。
【００４１】
例えば、参照ブロック１０８が、ターゲットブロック１０２の位置から、Ｘ方向に１画素ずれた位置にある場合、参照ベクトル１０７はベクトル（１，０）となる。また、図５に示すように、参照ブロック１０８が、ターゲットブロック１０２の位置から、Ｘ方向に３画素、Y方向に２画素ずれた位置にある場合には、参照ベクトル１０７はベクトル（３，２）となる。
【００４２】
つまり、参照ベクトル１０７は、図５の例に示すように、ターゲットブロック１０２および参照ブロック１０８の位置を、それぞれのブロックの中心位置とした場合、各参照ベクトル１０８は、対応する各参照ブロック１０８の中心位置とターゲットブロック１０２の中心位置との位置ずれ（位置ずれ量と位置ずれの方向を含むベクトルとなる）を意味する。
【００４３】
参照ブロック１０８は、サーチ範囲１０６において移動するものとなるが、その場合に、参照ブロック１０８の中心位置がサーチ範囲１０６内を移動する。前述もしたように、参照ブロック１０８は、水平方向および垂直方向の複数画素からなるので、ターゲットブロック１０２とブロックマッチング処理される対象となる参照ブロック１０８が移動する最大範囲は、図５に示すように、サーチ範囲１０６よりも広いマッチング処理範囲１１０となる。
【００４４】
そして、ターゲットブロック１０２の画像内容との相関が最も強いとして検出された参照ブロック１０８の位置を、ターゲットフレーム１００のターゲットブロック１０２の、参照フレーム１０１における位置（動いた後の位置）として検出し、検出した参照ブロックを、前述した動き補償ブロック１０３とする。そして、その検出した動き補償ブロック１０３の位置と、ターゲットブロック１０２の位置との間の位置ずれ量を、方向成分を含む量としての動きベクトル１０４として検出するようにする（図２（Ｂ）参照）。
【００４５】
ここで、ターゲットブロック１０２と、サーチ範囲１０６において移動する参照ブロック１０８との相関の強さを表す相関値は、基本的にはターゲットブロック１０２と参照ブロック１０８との対応する画素値を用いて算出されるが、その算出方法は、自乗平均を用いる方法やその他種々の方法が提案されている。
【００４６】
そのうち、動きベクトルを算出する際に一般的に用いられる相関値としては、例えば、ターゲットブロック１０２内の各画素の輝度値と、参照ブロック１０６内の対応する各画素の輝度値との差分の絶対値の、ブロック内の全画素についての総和（この差分の絶対値の総和を差分絶対値和と呼ぶ。以下、この差分絶対値和をＳＡＤ（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ）と記載することとする）が用いられる（図６参照）。
【００４７】
相関値としてＳＡＤ値が用いられる場合には、ＳＡＤ値が小さいほど相関が強いものとされる。したがって、サーチ範囲１０６において移動する参照ブロック１０８のうち、ＳＡＤ値が最小となる位置の参照ブロック１０８が最も相関が強い最強相関参照ブロックとなり、この最強相関参照ブロックが、動き補償ブロック１０３として検出され、その検出された動き補償ブロック１０３のターゲットブロック１０２の位置に対する位置ずれ量が動きベクトルとして検出される。
【００４８】
前述したように、ブロックマッチングでは、サーチ範囲１０６において設定される複数個の参照ブロック１０８のそれぞれの、ターゲットブロック１０２の位置に対する位置ずれ量は、方向成分を含む量としての参照ベクトル１０７で表現される。各参照ブロック１０８の参照ベクトル１０７は、参照ブロック１０８の参照フレーム１０２上の位置に応じた値となる。前述したように、ブロックマッチングでは、相関値であるＳＡＤ値が最小値となる参照ブロック１０８の参照ベクトルを、動きベクトル１０４として検出する。
【００４９】
そこで、ブロックマッチングでは、一般に、図７に示すように、サーチ範囲１０６において設定される複数個の参照ブロック１０８のそれぞれとターゲットブロック１０２との間におけるＳＡＤ値（以下、説明の簡単のため参照ブロック１０８についてのＳＡＤ値という）を、それぞれの参照ブロック１０８の位置に応じた参照ベクトル１０７（以下、説明の簡単のため、参照ブロック１０６の位置に応じた参照ベクトル１０７を参照ブロック１０８の参照ベクトル１０７という）のそれぞれに対応させて、メモリに記憶しておき、そのメモリに記憶された全ての参照ブロック１０８についてのＳＡＤ値の中から、最小のＳＡＤ値の参照ブロック１０８を検出することで、動きベクトル１０４を検出するようにしている。
【００５０】
サーチ範囲１０６において設定された複数個の参照ブロック１０８の位置に応じた参照ベクトル１０７のそれぞれに対応させて、それぞれの参照ブロック１０８についての相関値（この例では、ＳＡＤ値）を記憶したものを相関値テーブルと呼ぶ。この例では、相関値として差分絶対値和であるＳＡＤ値を用いるので、この相関値テーブルを、差分絶対値和テーブル（以下ＳＡＤテーブルという）と呼ぶことにする。
【００５１】
図７のＳＡＤテーブルＴＢＬが、これを示しており、このＳＡＤテーブルＴＢＬにおいて、それぞれの参照ブロック１０８についての相関値（この例ではＳＡＤ値）を相関値テーブル要素という。図７の例では、符号１１１で指し示すＳＡＤ値は、参照ベクトルがベクトル（０，０）のときのＳＡＤ値である。そして、図７の例では、ＳＡＤ値の最小値は、参照ベクトルがベクトル（３，２）のときの「７」であるので、求める動きベクトル１０４は、当該（３，２）となる。
【００５２】
なお、上述の説明において、ターゲットブロック１０２および参照ブロック１０８の位置とは、それらのブロックの任意の特定の位置、例えば中心位置を意味するものであり、参照ベクトル１０７は、参照フレーム１０２におけるターゲットブロック１０２の射影イメージブロック１０９の位置と、参照ブロック１０８の位置との間のずれ量（方向を含む）を示すものである。
【００５３】
そして、各参照ブロック１０８に対応する参照ベクトル１０７は、参照フレーム１０１上において、ターゲットブロック１０２に対応する射影イメージブロック１０９の位置からの、各参照ブロック１０８の位置ずれとなっているので、参照ブロック１０８の位置が特定されると、その位置に対応して参照ベクトルの値も特定される。したがって、ＳＡＤテーブル１１０のメモリにおける参照ブロックの相関値テーブル要素のアドレスが特定されると、対応する参照ベクトルは特定されることになる。
【００５４】
なお、ＳＡＤ値は、同時に、２つ以上のターゲットブロックについて並列に計算するようにしてもよい。同時に処理するターゲットブロックが増加すると、処理は高速化する。しかし、ＳＡＤ値を計算するハードウエアの規模が増大するので、処理の高速化と、回路規模の増大のトレードオフになる。
【００５５】
［実施形態のブロックマッチング］
以上のブロックマッチングの説明は、１つのターゲットブロックについての動きベクトルの算出についての説明である。このターゲットブロックのターゲットフレームの全体に占める割合は、通常、小さいので、これをそのままグローバル動きベクトルとすることは一般的には困難である。
【００５６】
この実施形態では、図８に示すように、ターゲットフレーム１００を、例えば６４画素×６４ラインのような大きさのターゲットブロック１０２の複数個に分割し、この複数個のターゲットブロックのそれぞれについての動きベクトル（ローカル動きベクトル）１０４Ｂを先ず求める。このとき、この実施形態では、求めたそれぞれのローカル動きベクトルの信頼性を示す指標を、併せて算出するようにする。
【００５７】
そして、ローカル動きベクトルの信頼性の指標から、ターゲットフレームについて求めた複数個のローカル動きベクトルの中から、信頼性の高いローカル動きベクトルのみを抽出する。抽出した信頼性の高いローカル動きベクトルのみから、グローバル動きベクトルを算出する。そして、算出したグローバル動きベクトルを用いて、ターゲットフレームに対して、参照フレームを位置合わせを行い、位置合わせした両フレームを重ね合わせてＮＲ画像を生成するようにする。
【００５８】
そして、この実施の形態の撮像装置において、静止画撮影においては、図９に示すように、高速で複数枚の静止画像の撮影を行い、１枚目の静止画撮影画像をターゲットフレーム１００とし、２枚目以降、所定枚数の静止画撮影画像を参照フレーム１０１として、重ね合わせを行い、その重ね合わせたものを静止画撮影画像として記録するようにする。すなわち、撮影者が撮像装置のシャッターボタンを押下操作すると、高速で前記所定枚数の静止画像が撮影され、その１枚目に撮影した静止画像（フレーム）に対して、時間的に後で撮影された複数枚の静止画像（フレーム）が、重ね合わされて、記録されることになる。
【００５９】
なお、この実施形態では対象としないが、動画撮影時は、図１０のように、撮像素子から出力されている現フレームの画像をターゲットフレーム１００の画像とし、その前フレームの過去の画像を参照フレーム１０１の画像とする。つまり、動画撮影時には、現フレームの画像のノイズ低減を行うために、現フレームの前フレームの画像を現フレームに重ね合わせるということになる。
【００６０】
［撮像装置のハードウエア構成例］
図１は、この発明の画像処理装置の実施形態としての撮像装置の一例のブロック図を示すものである。
【００６１】
この図１に示すように、この実施形態の撮像装置は、システムバス２にＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１が接続されると共に、システムバス２に、撮像信号処理系１０や、ユーザ操作入力部３、画像メモリ部４、記録再生装置部５などが接続されて構成されている。なお、この明細書においては、ＣＰＵ１は、図示は省略するが、種々のソフトウエア処理を行なうプログラムを記憶するＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やワークエリア用ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などを含むものとしている。
【００６２】
ユーザ操作入力部３を通じた撮像記録開始操作を受けて、図１の撮像装置の撮像信号処理系は、後述するような撮像画像データの記録処理を行なう。また、ユーザ操作入力部３を通じた撮像記録画像の再生開始操作を受けて、図１の撮像装置の撮像信号処理系１０は、記録再生装置部５の記録媒体に記録された撮像画像データの再生処理を行なう。
【００６３】
図１に示すように、撮像信号処理系１０においては、撮像レンズ１０Ｌを備えるカメラ光学系（図示は省略）を通じた被写体からの入射光は、撮像素子１１に照射されて撮像される。この例では、撮像素子１１は、ＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）イメージャで構成されている。なお、撮像素子１１は、ＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）イメージャで構成してもよい。
【００６４】
この例の撮像装置においては、撮像記録開始操作がなされると、レンズ１０Ｌを通じて入力された映像が、撮像素子１１により撮像画像信号に変換され、タイミング信号発生部１２からのタイミング信号に同期した信号として、赤（Ｒ）、緑（Ｇ）、青（Ｂ）の３原色から構成されるベイヤー配列のＲＡＷ信号（生の信号）であるアナログ撮像信号が出力される。出力されたアナログ撮像信号は、前処理部１３に供給され、欠陥補正やγ補正等の前処理が施され、データ変換部１４に供給される。
【００６５】
データ変換部１４は、これに入力されたＲＡＷ信号であるアナログ撮像信号を、輝度信号成分Ｙと、色差信号成分Ｃｂ／Ｃｒとにより構成されるデジタル撮像信号（ＹＣデータ）に変換する。データ変換部１４からのデジタル撮像信号は、ユーザ操作入力部３を通じた撮影指示に基づいて、画像メモリ部４に、書き込まれる。
【００６６】
すなわち、ユーザ操作入力部３を通じた撮影指示として、シャッターボタンの押下による静止画撮影指示であると、データ変換部１４からのデジタル撮像信号は、重ね合わせるべき前述した複数フレーム分が画像メモリ部４の第１〜第Ｎ（Ｎは、重ね合わせる静止画の枚数）のフレームメモリ４１〜４Ｎに書き込まれる。
【００６７】
この例においては、シャッターボタンの押下の１枚目のフレームの画像データは、ターゲットフレームの画像データとして第１のフレームメモリ４１に書き込まれ。そして、２枚目以降のフレーム画像のデータは、参照フレームの画像データとして、それぞれ第２〜第Ｎのフレームメモリ４２〜４Ｎに順次に書き込まれる。
【００６８】
そして、複数フレーム分の画像が画像メモリ部４に書き込まれた後、ターゲットフレームの画像データと参照フレームの画像データが、グローバル動きベクトル算出部１５によって読み込まれ、後述するようなこの実施形態におけるブロックマッチング処理がなされて、ローカル動きベクトルＬＭＶの検出、ローカル動きベクトルＬＭＶの信頼性の算出およびグローバル動きベクトルＧＭＶの算出処理がなされる。
【００６９】
この実施形態では、グローバル動きベクトル算出部１５からは、グローバル動きベクトルＧＶＭの情報と、ターゲットフレームの画像データＴＧｖと、参照フレームの画像データＲＥＦｖとが出力される。
【００７０】
そして、グローバル動きベクトル算出部１５からのグローバル動きベクトルＧＶＭの情報と、参照フレームの画像データＲＥＦｖとは動き補償画生成部１６に供給される。動き補償画生成部１６では、参照フレームの画像データＲＥＦｖに対して、グローバル動きベクトルＧＶＭによりグローバルモーションに対応する処理、つまり、平行移動、回転、拡大縮小を伴う変形処理を施して、動き補償画像を生成する。
【００７１】
そして、グローバル動きベクトル算出部１５からのターゲットフレームの画像データＴＧｖが加算部１７に供給されると共に、動き補償画生成部１６からの動き補償画像の画像データＭＣｖが加算部１７に供給される。加算部１７では、両画像データＴＧｖおよびＭＣｖの対応する位置の画素が加算されることにより、画像の重ね合わせ処理がなされ、その加算画像（ＮＲ画像である）の画像データＭＩＸｖが出力される。
【００７２】
加算部１７からの加算画像の画像データＭＩＸｖは、画像メモリ部４の第１のフレームメモリ４１に、ターゲットフレームの画像データとして、その前のターゲットフレームの画像データに重ね書き（上書き）される。
【００７３】
すなわち、第１のフレームメモリ４１のターゲットフレームの画像データは、最初は、シャッターボタンが押下された直後の１枚目のフレームの画像データとなるが、２枚目の参照フレームの動き補償画の画像データＭＣｖとターゲットフレームとが加算されると、その加算結果の加算画像の画像データＭＩＸｖに書き換えられる。そして、その加算画像の画像データＭＩＸｖが、３枚目の参照フレームの画像データに対するターゲットフレームの画像データとなり、上述と同様にして、グローバル動きベクトル算出部１５でグローバル動きベクトルＧＶＭが算出され、加算部１７で画像の重ね合わせ処理がなされる。そして、その加算結果の加算画像の画像データＭＩＸｖが画像メモリ部４の第１のフレームメモリ４１に、ターゲットフレームの画像データとして、その前のターゲットフレームの画像データに重ね書き（上書き）される。以下、４枚目以降の参照フレームに対しても同様の処理動作がなされる。
【００７４】
したがって、Ｎ枚目の参照フレームまでについての画像の重ね合わせ処理がなされた後には、画像メモリ部４の第１のフレームメモリ４１には、重ね合わせるべきＮ枚の全てのフレームが重ね合わされたＮＲ画像が書き込まれていることになる。
【００７５】
そして、この画像メモリ部４の第１フレームメモリ４１に格納された重ね合わせ結果のＮＲ画像である加算画像の画像データＭＩＸｖは、システムバス２を通じて静止画コーデック部１８に供給されてコーデック変換され、記録再生装置部５の例えばＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）やハードディスクなどの記録媒体に記録される。この実施形態では、静止画コーデック部１８では、ＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）方式の静止画についての画像圧縮符号化処理が行われる。
【００７６】
また、この静止画撮影モード時、シャッターボタンが押下操作される前においては、データ変換部１４からの画像データは、画像メモリ部４の第１のフレームメモリ４１を通じて、解像度変換部１９に供給されて、所定の解像度に変換された後、ＮＴＳＣ（Ｎａｔｉｏｎａｌ  Ｔｅｌｅｖｉｓｉｏｎ  Ｓｙｓｔｅｍ  Ｃｏｍｍｉｔｔｅｅ）エンコーダ２０に供給され、このＮＴＳＣエンコーダ２０によりＮＴＳＣ方式の標準カラー映像信号に変換され、例えばＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ；液晶ディスプレイ）からなるモニターディスプレイ６に供給され、静止画撮影モード時のモニター画像がその表示画面にモニター表示される。
【００７７】
この記録再生装置部５の記録媒体に記録された静止画の画像データは、ユーザ操作入力部３を通じた再生開始操作に応じて読み出され、静止画コーデック部１８に供給されて、再生デコードされる。そして、再生デコードされた静止画の画像データは、画像メモリ部４のバッファメモリ（図示は省略）を通じてＮＴＳＣエンコーダ２０に供給されて、ＮＴＳＣ方式の標準カラー映像信号に変換され、モニターディスプレイ６に供給され、再生画像がその表示画面に表示される。
【００７８】
なお、図１では、図示を省略したが、ＮＴＳＣエンコーダ２０からの出力映像信号は、映像出力端子を通じて外部に導出することが可能とされている。
【００７９】
なお、この実施形態では、静止画コーデック部１８により画像データを圧縮して記録するようにしたが、静止画コーデック部１８を省略して、画像データを圧縮せずに記録するようにしても良い。
【００８０】
また、上述したグローバル動きベクトル算出部１５および動き補償画生成部１６は、ハードウエアにより構成することできるし、また、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）を用いて構成することもできる。さらには、ＣＰＵ１によりソフトウエア処理とすることもできる。
【００８１】
同様に、加算部１７も、ハードウエアにより構成することできるし、また、ＤＳＰを用いて構成することもできる。さらには、ＣＰＵ１によりソフトウエア処理とすることもできる。また、静止画コーデック部１８も、同様である。
【００８２】
［グローバル動きベクトル算出部１５の説明］
グローバル動きベクトル算出部１５では、この実施の形態では、基本的には、図２〜図７を用いて説明した、ＳＡＤ値を用いてブロックマッチング処理を行うことで、ローカル動きベクトル検出を行うようにする。ただし、この実施の形態では、グローバル動きベクトル算出部１５は、後述するようなハードウエアで構成され、ローカル動きベクトルは、階層化ブロックマッチング処理および補間処理により、算出するようにする。また、前述したように、この実施形態のグローバル動きベクトル算出部１５では、ローカル動きベクトルのそれぞれの信頼性の指標も算出するようにする。
【００８３】
＜階層化ブロックマッチング処理＞
一般的な従来のブロックマッチングにおける動きベクトル検出処理は、サーチ範囲内を、ピクセル単位（１ピクセル単位または複数ピクセル単位）で参照ブロックを移動させて、各移動位置における参照ブロックについてのＳＡＤ値を算出し、その算出したＳＡＤ値の中から最小値を示すＳＡＤ値を検出し、当該最小ＳＡＤ値を呈する参照ブロック位置に基づいて動きベクトルを検出するようにする。
【００８４】
そして、この実施形態では、１フレームが多数のブロックに分割されるので、以上のブロックマッチング処理をターゲットブロックおよび参照ブロックを順次切り替えながら、全画面において処理を行って、ターゲットフレーム内の全てのターゲットブロックについてのローカル動きベクトルＬＭＶの算出を行う。
【００８５】
しかし、このような従来の動きベクトル検出処理では、サーチ範囲内をピクセル単位で参照ブロックを移動させるようにするので、検索するサーチ範囲に比例して、ＳＡＤ値を算出するマッチング処理回数が多くなって、マッチング処理時間が大きくなると共に、ＳＡＤテーブルの容量も大きくなるという問題があった。特に、静止画像の高画素化、並びに動画像のＨＤ（Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ）化が進み、１枚の画像サイズが非常に大きくなってきていることを考慮すると、この問題は大きい。また、システムバス２を介して画像メモリをアクセスする回数も多くなり、バス帯域を大きくしなければならなくなるという問題もある。
【００８６】
以上のことを考慮して、この実施の形態では、先ず、ターゲット画像（ターゲットフレーム）および参照画像（参照フレーム）を縮小した縮小画像と中間画像を用意し、縮小画像、中間画像、原画画像の順に、ブロックマッチングによる動きベクトルサーチを、前段階でのブロックマッチングの結果を次段階におけるサーチに反映させて行うという階層化ブロックマッチングを行う。この階層化ブロックマッチングを行うことで、演算量や処理時間を少なく、効率の良いローカル動きベクトルの算出を行うようにする。ここで、縮小画像のことを縮小面、中間画像のことを中間面、縮小化をしていない元の画像のことを基底面と呼ぶことにする。
【００８７】
図１１は、この階層化ブロックマッチングを説明するための図である。すなわち、図１１の例においては、基底面ターゲットフレーム２０１および基底面参照フレーム３０１を、１／ａ・１／ｂ（１／ａ、１／ｂは、縮小倍率であって、ａ＞１、ｂ＞１である）に縮小して、縮小面ターゲットフレーム２１１および縮小面参照フレーム３１１を生成すると共に、基底面ターゲットフレーム２０１および基底面参照フレーム３０１を、１／ｂに縮小して、中間面ターゲットフレーム２２１および中間面参照フレーム３２１を生成しておく。
【００８８】
縮小面や中間面の基底面に対する倍率は任意であるが、１／２〜１／８倍（画素数換算で１／４〜１／６４倍）の範囲が適当である。なお、図１１の例では、中間面に対する縮小面の縮小倍率は１／４（すなわち、ａ＝４）、また、基底面に対する中間面の縮小倍率は１／４（すなわち、ｂ＝４）の場合として示している。
【００８９】
縮小面や中間面の作成にあたっても、その方法は任意である。しかし、単に、原画像の画素を、縮小倍率に応じて間引くだけで縮小面や中間面を作成する方法では、折り返し成分が発生し、１階層目（縮小面）で検出される動きベクトルが、正しいものから外れやすくなるため、通常、縮小倍率に応じたカットオフ周波数帯域を持つローパスフィルタを原画に対して施したのち、縮小倍率に応じたサブサンプリングを行う。
【００９０】
この実施形態では、倍率に応じたサブサンプリングにより消失する画素を含んだ、輝度平均値を生成し、それを縮小面画素や中間面画素としている。つまり、１／ａ縮小なら、ａ×ａ画素の正方領域の輝度平均値を算出し、これを縮小面画素や中間面画素の輝度値とする。この手法の場合、まず中間面を生成しておいてから、中間面から縮小面を生成しても、原画から直接縮小面を生成する場合と同じ結果が得られるため、より効率的である。
【００９１】
なお、縮小画像を得るに当たっては、水平方向の縮小率と垂直方向の縮小率は、上記のように同じであってよいし、また、異ならせても良い。
【００９２】
以上のようにして、縮小面および中間面を作成したら、先ず、縮小面ターゲットフレーム２１１に縮小面ターゲットブロック２１２を設定すると共に、縮小面参照フレーム３１１に縮小面サーチ範囲３１３を設定し、当該縮小面サーチ範囲３１３内の複数個の縮小面参照ブロック３１２について、縮小面の動きベクトル検出装置４０１で、上述したブロックマッチング処理を行い、最小ＳＡＤ値を呈する縮小面参照ブロック位置を検出することにより、縮小面動きベクトルＭＶｓを検出する。
【００９３】
この例では、動きベクトル検出装置４０１は、縮小面ターゲットブロック２１２の大きさ（水平方向の画素数×垂直方向のライン数）のブロックをブロックマッチング処理単位として処理を実行するものである。
【００９４】
縮小面動きベクトルＭＶｓの算出が終了したら、次に、縮小面ターゲットフレーム２１１をａ倍したものに等しい中間面ターゲットフレーム２２１において、中間面ターゲットブロック２２２を設定する。
【００９５】
図１１の例では、中間面の動きベクトル検出装置４０２は、縮小面の動きベクトル検出装置４０１におけるブロックマッチング処理単位と同じ大きさのブロック（同じピクセル数＝同じ水平方向の画素数×同じ垂直方向のライン数）を中間面ターゲットブロックとしてブロックマッチング処理を行うようにしている。
【００９６】
この例の場合、縮小面は中間面の１／ａであるので、縮小面ターゲットブロック２１２に対応する中間面ターゲットフレームにおける領域には、中間面ターゲットブロック２２２が、ａ個含まれることなり、その全てが中間面の動きベクトル検出装置４０２におけるブロックマッチング処理対象として設定される。
【００９７】
そして、縮小面参照フレーム３１１をａ倍したものに等しい中間面参照フレーム３２１において、縮小面動きベクトルＭＶｓを中心とした中間面サーチ範囲３２３を設定し、当該中間面サーチ範囲３２３内の複数個の中間面参照ブロック３２２について、動きベクトル検出装置４０２で、上述したブロックマッチング処理を行い、最小ＳＡＤ値を呈する中間面参照ブロック位置を検出することにより、中間面動きベクトルＭＶｍを検出する。
【００９８】
中間面の動きベクトル検出装置４０２では、ａ個の中間面ターゲットブロックのそれぞれについて、中間面サーチ範囲３２３内に設定したそれぞれの当該中間面ターゲットブロック用のサーチ範囲において、ブロックマッチング処理を実行して、それぞれの中間面ターゲットブロックについての動きベクトルの検出を行う。そして、それら複数個の動きベクトルのうち、最小のＳＡＤ値を呈する動きベクトルを、中間面における動きベクトル（中間面動きベクトル）ＭＶｍとして検出する。
【００９９】
縮小面動きベクトルＭＶｓの算出が終了したら、次に、中間面ターゲットフレーム２２１をｂ倍したものに等しい基底面ターゲットフレーム２０１において、基底面ターゲットブロック２０２を設定する。
【０１００】
図１１の例では、基底面の動きベクトル検出装置４０３も、動きベクトル検出装置４０１および４０２と同じ大きさ（同じピクセル数＝同じ水平方向の画素数×同じ垂直方向のライン数）のブロックを処理単位ブロックとしてブロックマッチング処理を行うようにしている。
【０１０１】
そして、前述したように、中間面動きベクトルＭＶｍは、処理単位ブロックの単位で得られるので、動きベクトル検出装置４０３で対象となる基底面ターゲットフレーム２０１における基底面ターゲットブロック２０２は、図１１において、斜線を付して示すように、縮小面ターゲットブロックと同じ大きさのブロック（処理単位ブロック）のｂ倍の個数からなるものとして設定される。
【０１０２】
一方、中間面参照フレーム３２１をｂ倍したものに等しい基底面参照フレーム３０１において、縮小面動きベクトルＭＶｓと中間面動きベクトルＭＶｍとの合成ベクトルを中心とした基底面サーチ範囲３０３を設定する。当該基底面サーチ範囲３０３内の複数個の基底面参照ブロック３０２について、動きベクトル検出装置４０３で、上述したブロックマッチング処理を行い、最小ＳＡＤ値を呈する基底面参照ブロック位置を検出することにより、基底面動きベクトルＭＶｂを検出する。
【０１０３】
縮小面動きベクトルＭＶｓおよび中間面動きベクトルＭＶｍは、同じ大きさの処理単位ブロックの単位で得られるので、縮小面動きベクトルＭＶｓと中間面動きベクトルＭＶｍとの合成ベクトルを中心とした設定された基底面サーチ範囲３０３は、ｂ個の基底面ターゲットブロック２０２を含む領域よりも若干広い領域とされる。
【０１０４】
動きベクトル検出装置４０３では、ｂ個の基底面ターゲットブロック２０２について、基底面サーチ範囲３０３内に設定したそれぞれの基底面ターゲットブロックについてのサーチ範囲において、ブロックマッチング処理を実行して、それぞれの基底面ターゲットブロックについての動きベクトルの検出を行う。そして、それら複数個の動きベクトルのうち、最小のＳＡＤ値を呈する動きベクトルを、基底面における動きベクトル（基底面動きベクトル）ＭＶｂとして検出する。
【０１０５】
そして、以上のようにして求められた縮小面動きベクトルＭＶｓと、中間面動きベクトルＶＭｍと、基底面動きベクトルＶＭｂとの合成ベクトルとして、基底面ターゲットフレーム２０１と基底面参照フレーム３０１との間における基底面ターゲットブロックについてのローカル動きベクトルＬＭＶが検出される。
【０１０６】
以上のような階層化ブロックマッチング処理を、ターゲットブロックおよび参照ブロックを順次切り替えながら、ターゲットフレームおよび参照フレームの全領域において、実行することで、ターゲットフレーム内に設定した複数個のターゲットブロック単位の複数個のローカル動きベクトルＬＭＶの全てが算出される。
【０１０７】
図１１の例で、動きベクトル検出装置４０１，４０２および４０３は、実際的には、１つの装置であって、画像メモリ部４から読み出されて入力されるターゲットブロックと、サーチ範囲から読み出される参照ブロックとが異なるのみである。
【０１０８】
なお、ターゲットブロックの切り替えは、基底面ターゲットフレーム２０１において、全ての基底面ターゲットブロック２０２についてのローカル動きベクトルＬＭＶを得るようにする場合には、縮小面において、縮小面ターゲットブロックを、水平方向には、縮小倍率１／ａおよび１／ｂに応じた水平方向の画素数分ずつ、ずらして設定し、また、垂直方向には、縮小倍率１／ａおよび１／ｂに応じた垂直方向のライン数分ずつ、ずらして設定するようにすれば良い。
【０１０９】
しかし、グローバル動きベクトルＧＶＭを複数個のローカル動きベクトルＬＭＶから求めるという目的からすると、基底面ターゲットフレーム２０１における飛び飛びの位置の基底面ターゲットブロックについてのローカル動きベクトルＬＭＶを得るように、縮小面ターゲットブロックを、水平方向および垂直方向に、順次にずらして設定するようにしてもよい。
【０１１０】
なお、上述した階層化ブロックマッチングは、中間面を省略し、縮小面と基底面のみの２階層で行っても良いし、逆に、中間面の階層が複数存在しても構わない。ただし、縮小倍率が大き過ぎて、動被写体と背景が同じ単位ブロックに含まれてしまう場合、本来は異なる動きベクトルとして検出されるべきものが、１つの動きベクトルとして扱われてしまい、以降の階層ではリカバリが効かないため、縮小倍率の選定は慎重に行われる必要がある。
【０１１１】
［ローカル動きベクトルＬＭＶの信頼性の算出］
比較的ノイズの多い画像がターゲット画像の場合、ＳＡＤ値がノイズの影響を受け、正しいベクトルが得られないケースが多い。図１２は、夜景を撮影したもので、比較的ノイズの多い画像である。この図１２の画像に対して、僅かに回転を伴いながら左方向に手ぶれして撮影された画像を参照画像として、両画像間の動きベクトルを図示すると、図１３に示すような結果が得られる。この図１３は、原画を１／８に縮小した縮小画像における縮小面動きベクトルを描画したものである。
【０１１２】
この図１３を見て分かるように、特にテクスチャのはっきりしない、夜空の動きベクトルが、全くバラバラの動きとして得られている。階層化ブロックマッチングにおいては、前述の通り、縮小画像の生成の際にはローパスフィルタが施されるため、比較的ノイズ耐性が高いが、この図１３に示すように、ノイズの影響を受ける。基底面のローカル動きベクトルＬＭＶは、縮小面動きベクトルの周辺をサーチして得られるため、縮小面動きベクトルが、正しいものから外れている場合には、リカバリが効かず、ノイズの影響をまともに受け、さらに乱れることになる。
【０１１３】
仮に、ノイズが全く無い撮像画像が対象であった場合でも、テクスチャがはっきりしない画像の場合は、連写撮影時の僅かな外光の変化や露光時間の差違によるグラデーョンの変化の方が大きく、検出された動きベクトルが、正しいものから外れるケースが多い。また、多数の木やビル等の人口建築物には、テクスチャの繰り返しパターンが多いが、そのようなテクスチャの繰り返しパターンの場合でも、検出された動きベクトルが、正しいものから外れ易くなる。
【０１１４】
こうしたケースを想定して、前述したように、従来から、信頼性の高い動きベクトルのみを用いて、グローバルモーションを算出する試みが行われて来た。例えば、ターゲット画像において、エッジ検出を行い、エッジのはっきりしたブロックの動きベクトルは、信頼性が高いものとしたり、ターゲット画像のＩＤＣＴ（Inverse Discreet Cosine Transform）結果のＤＣ成分、ＡＣ成分を使って信頼性を算出する提案がなされている。
【０１１５】
また、予め、フィルタの一種であるコーナーディテクタを用いて、ターゲット画像上の特徴点を検出し、それらの動きベクトルは信頼性が高いものとしたり、複数の特徴点の位置関係が、参照画像上でも維持されるという前提から、複数点の動きベクトルの組み合わせから信頼性の高い動きベクトルを抽出する手法も、提案されている。
【０１１６】
しかしながら、これらの従来の手法は、いずれも高ノイズの画像を前提としておらず、ノイズが非常に大きいレベルの画像においては、どの手法も破綻してしまうことが明らかである。
【０１１７】
この実施形態では、上記の実情に鑑み、高ノイズ環境の画像においても有効に、動きベクトルの信頼性を評価できる信頼性指標値を得るようにしている。
【０１１８】
この実施形態では、ターゲットブロックと参照ブロックとの間の相関値の第１極大値と、第２極大値との差または比を、動きベクトルの信頼性の指標値とする。この実施形態では、ターゲットブロックと参照ブロックとの間の相関値は、ＳＡＤ値として検出するので、相関値の第１極大値および第２極大値は、ＳＡＤ値の第１極小値および第２極小値となる。
【０１１９】
図１４は、１つのターゲットブロックについてのＳＡＤテーブルにおける各ＳＡＤ値を、模式的に示した図である。この図１４では、サーチ範囲を、画像の水平方向（ｘ方向）と垂直方向（ｙ方向）との２次元で表わし、高さ方向（ｘ方向およびｙ方向に直交する方向）にＳＡＤ値を取って、ＳＡＤテーブルを３次曲面で表わしている。
【０１２０】
通常のブロックマッチング処理の場合、動きベクトルを検出するためにはＳＡＤテーブルにおけるＳＡＤ値の最小値のみが検出対象とされるが、このＳＡＤ値の最小値は、ＳＡＤテーブルにおけるＳＡＤ値の第１極小値であり、図１４においては、点５０１で示す位置となっている。図１４では、動き原点（ｘ＝０、ｙ＝０）から、この点５０１で示すＳＡＤ値の最小値位置との間のベクトルとして、動きベクトルＭＶが検出される。
【０１２１】
ノイズが存在しない理想的な状態を考えれば、サーチ範囲内の複数の参照ブロックとターゲットブロックとの相関値を求めたとき、３次曲面で表わされるＳＡＤテーブルは、一様に下に凸となり、ＳＡＤ値の極小値は、１つのみ存在する状態となる。しかし、実際の撮影状況においては、光量変化や、動き物体の動きなどの影響のほか、種々のノイズのため、３次曲面で表わされるＳＡＤテーブルは、一様に下に凸となることは殆どなく、複数個のＳＡＤ値の極小値が存在するのが一般的である。
【０１２２】
そこで、この実施形態では、ＳＡＤ値の最小値に等しい第１極小値を呈する参照ブロックの位置に基づいて動きベクトルＭＶを検出するが、このＳＡＤ値の第１極小値を除くＳＡＤ値のうちの極小値、すなわち、ＳＡＤ値の第２極小値を、信頼性の指標を生成するために検出するようにする。図１４においては、点５０１で示す位置が第１極小値を示し、点５０２で示す位置が第２極小値を示している。
【０１２３】
ノイズ等の影響が少なければ、ＳＡＤ値の第１極小値と、ＳＡＤ値の第２極小値との差は大きく、ＳＡＤ値の第１極小値、すなわち、ＳＡＤ値の最小値から検出される動きベクトルＭＶの信頼性は高くなる。一方、ノイズ等が多い環境においては、ＳＡＤ値の第１極小値と、ＳＡＤ値の第２極小値との差が小さく、いずれが動きベクトルＭＶに正しく対応しているか分からない状況になるので、信頼性が低いことになる。
【０１２４】
以上のことから、この実施形態では、ＳＡＤ値の第１極小値（ＳＡＤ値の最小値）と、ＳＡＤ値の第２極小値との差を、検出した動きベクトルの信頼性の指標とする。図１４のサーチ範囲を１次元軸上で表わし直したＳＡＤテーブルを、図１５に示す。この実施形態では、この図１５において、第２極小値と第１極小値（ＳＡＤ値の最小値）との差の値を、動きベクトルＭＶの指標値Ｆｔとする。
【０１２５】
なお、ＳＡＤ値の第１極小値しか得られず、第２極小値が得られない場合には、この実施形態では、ＳＡＤ値の理論上の最大値またはＳＡＤテーブル内のＳＡＤ値の最大値を、その動きベクトルＭＶの信頼性指標値とするようにする。したがって、そのようなブロックの動きベクトルは信頼性の高いものとされるが、このようなブロックは殆ど存在しないので、ＳＡＤ値の第１極小値しか得られず、第２極小値が得られないようなブロックの動きベクトルは、信頼性の評価から外すようにしても良い。
【０１２６】
なお、ＳＡＤ値の第１極小値（ＳＡＤ値の最小値）と、ＳＡＤ値の第２極小値との差の代わりに、ＳＡＤ値の第１極小値（ＳＡＤ値の最小値）と、ＳＡＤ値の第２極小値との比を、動きベクトルＭＶの信頼性の指標値Ｆｔとすることもできる。しかし、以下の説明においては、動きベクトルの信頼性の指標値Ｉｔとしては、ＳＡＤ値の第１極小値（ＳＡＤ値の最小値）と、ＳＡＤ値の第２極小値との差を用いるものとする。
【０１２７】
この実施形態の動きベクトルの信頼性指標によれば、従来のような画像のエッジや特徴などの画像成分を用いるものではなく、ターゲットフレームと参照フレームとの間の相関値のみを用いているので、ノイズに対してロバスト性が高い。すなわち、画像のノイズに影響されること無く、精度の高い動きベクトルの信頼性指標が得られる。
【０１２８】
また、この実施形態では、相関値の第１極大値（ＳＡＤ値の第１極小値）と、相関値の第２極大値（ＳＡＤ値の第２極小値）との差、または、比を用いていることも、この実施形態の動きベクトルの信頼性指標が、ノイズに対してロバスト性が高い理由となっている。
【０１２９】
すなわち、一般に、ノイズレベルが高くなって来ると、正しい動きベクトルであったとしても、そのＳＡＤ値は値が上昇してしまう。このため、信頼性の高い動きベクトルを抽出する目的で、動きベクトルの信頼性指標値Ｆｔに対して閾値を設定し、当該閾値との比較処理を行う場合には、その閾値自体もノイズレベルに応じて変化させる必要がある。
【０１３０】
これに対して、この実施形態による動きベクトルの信頼性指標値Ｆｔの場合、ノイズレベルが高くなると、相関値の第１極大値（ＳＡＤ値の第１極小値）と、相関値の第２極大値（ＳＡＤ値の第２極小値）の両方が、ノイズレベルに応じて、値が上昇するため、両者の差に関しては、ノイズの影響が相殺されることになる。つまり、ノイズレベルに依らない一定値の閾値処理が可能となる。相関値の第１極大値（ＳＡＤ値の第１極小値）と、相関値の第２極大値（ＳＡＤ値の第２極小値）との比を、動きベクトルの信頼性指標値Ｆｔとして用いる場合も同様のことが言える。
【０１３１】
ところで、ブロックマッチングを行う対象ブロックの画像のコントラストが低い場合、ＳＡＤ値の第２極小値と、ＳＡＤ値の最小値の差は縮まる傾向にある。このため、同一フレーム内にコントラストの高い領域と低い領域があるとき、同一の閾値でベクトル信頼性の評価値Ｉｘを評価すると、コントラストの高い領域が優先的に抽出され易い。
【０１３２】
これは、動きベクトルの信頼性という観点では正しい結果ではあるが、コントラストの低い領域をある程度救済する目的で、この実施形態では、動きベクトルの信頼性の指標値を求める演算式に、コントラストの影響を軽減する項を追加する。すなわち、ターゲットフレームの画像の最大輝度の値と最小輝度の値との差を求め、当該輝度の差を動きベクトルの信頼性の指標値に反映させるようにする。なお、ノイズによる悪影響を避けるため、ターゲットフレームの画像データに対してローパスフィルタを施してから、最大輝度と最小輝度の抽出を行う。
【０１３３】
以上のことを踏まえたこの実施形態における動きベクトルの信頼性指標値Ｆｔの算出式は、
Ｆｔ＝（Ｂｔｍ２ＳＡＤ−ＭｉｎＳＡＤ）−（ＭａｘＴＡＲ−ＭｉｎＴＡＲ）×Ｃｏ
・・・（式１）
ただし、
Ｆｔ；動きベクトルの信頼性指標値
Ｂｔｍ２ＳＡＤ；ＳＡＤ値の第２極小値
ＭｉｎＳＡＤ；ＳＡＤ値の最小値（第１極小値）
ＭａｘＴＡＲ；ターゲットブロックの最大輝度値
ＭｉｎＴＡＲ；ターゲットブロックの最小輝度値
Ｃｏ；重み係数（≦１）
となる。
【０１３４】
なお、動きベクトル信頼性指標値として、相関値の第１極大値と相関値の第２極大値との比を用いる場合にも、信頼性指標値算出式において、上述の（式１）と全く同様に、コントラストの影響を軽減する項を追加するようにすれば良い。もっとも、動きベクトルの信頼性指標値Ｆｔの算出に当たって、コントラストの影響を軽減する項を追加することは必須ではなく、この項を省略してもよい。
【０１３５】
上述の説明では、基底面動きベクトルＭＶｂについての動きベクトル信頼性指標値のみを求めるようにしたが、縮小面動きベクトルＭＶｓや中間面動きベクトルＭＶｍについても、同様にして、動きベクトル信頼性指標値を求めることができることは、言うまでもない。
【０１３６】
［グローバル動きベクトルＧＶＭの算出］
従来は、上述のような動きベクトルの信頼性指標値はなかったので、ターゲットフレームについて求められた複数個のローカル動きベクトルＬＭＶのすべてを、同じ重みで用いてグローバル動きベクトルＧＶＭを算出するようにしている。
【０１３７】
これに対して、この実施形態では、以上のようにして、ターゲットフレームについての複数個のローカル動きベクトルＬＭＶのそれぞれの信頼性指標値Ｆｔを得ることができる。
【０１３８】
そこで、求められた複数個のローカル動きベクトルＬＭＶの信頼性指標値を正規化して、例えば０以上、１以下の重み係数を、それぞれのローカル動きベクトルＬＭＶに対して設定することができる。そして、グローバル動きベクトルＧＶＭの算出演算において、各ローカル動きベクトルＬＭＶは同じ重みではなく、それぞれの重み係数に応じた重みで、グローバル動きベクトルＧＶＭを算出するようにすることができる。
【０１３９】
しかし、グローバル動きベクトルＧＶＭの演算処理を簡単にして、演算負荷を軽くするため、この実施形態では、ローカル動きベクトルＬＭＶについての重み係数Ｗを、０と、１に２値化するようにする。
【０１４０】
このため、この実施形態では、動きベクトルの信頼性指標値Ｆｔに対する閾値ｔｈを設定し、
Ｆｔ＞ｔｈであるときには、Ｗ＝１
Ｆｔ≦ｔｈであるときには、Ｗ＝０
・・・（式２）
なる演算式により、各グローバル動きベクトルＧＶＭについての重み係数Ｗを、それぞれの動きベクトルの信頼性指標値Ｆｔを用いて算出するようにする。
【０１４１】
これは、動きベクトル信頼性指標値Ｆｔを用いて、複数個のローカル動きベクトルＬＭＶのそれぞれの信頼性を判定し、複数個のローカル動きベクトルＬＭＶから、信頼性の高いローカル動きベクトルＬＭＶのみを抽出し、当該抽出した信頼性の高いローカル動きベクトルＬＭＶのみを用いてグローバル動きベクトルＧＶＭを算出することに等しい。この実施形態では、ターゲットフレームにおけるターゲットブロック数が比較的多いことから、この例のように、信頼性の高いローカル動きベクトルＬＭＶのみを抽出する方法であっても精度のよいグローバル動きベクトルＧＶＭの算出が可能である。
【０１４２】
なお、複数個のローカル動きベクトルＬＭＶから、グローバル動きベクトルＧＶＭを算出する具体的な処理例は、後述する。
【０１４３】
前述の図１２のノイズの多い画像については、図１３に示したようなローカル動きベクトルが得られるが、この図１３の画像上に示したローカル動きベクトルに対して、この実施形態による動きベクトルの信頼性指標値を用いて信頼性の判定をした上で、閾値以上の信頼性が得られたもののみを抽出し、そのブロックと動きベクトルを描画すると、図１６のようになる。この図１６に示した、これらのブロックについては、ノイズの影響を受けず、ほぼ正しいローカル動きベクトルが得られていると言える。
【０１４４】
［グローバル動きベクトル検出部１５のハードウエア構成例］
グローバル動きベクトル検出部１５は、以上説明したように、ターゲットブロック毎のローカル動きベクトルＬＭＶの検出、検出したローカル動きベクトルＬＭＶの信頼性指標値の算出、およびグローバル動きベクトルＧＶＭの算出などの処理を行う。
【０１４５】
このグローバル動きベクトル検出部１５のハードウエア構成例を図１７に示す。この例では、グローバル動きベクトル検出部１５は、ターゲットブロック１０２の画素データを保持するターゲットブロックバッファ部１５１と、参照ブロック１０８の画素データを保持する参照ブロックバッファ部１５２と、ターゲットブロック１０２と参照ブロック１０８とで対応する画素についてのＳＡＤ値を計算するマッチング処理部１５３と、マッチング処理部１５３から出力されるＳＡＤ値情報からローカル動きベクトルを算出するローカル動きベクトル算出部１５４と、コントロール部１５５と、動きベクトル信頼性指標値算出部１５６と、グローバル動きベクトル演算部１５７と、コントラスト算出部１５８と、を備える。
【０１４６】
コントラスト算出部１５８は、ローパスフィルタ１５８１と、最大輝度値検出部１５８２と、最小輝度値検出部１５８３とからなる。
【０１４７】
そして、この例では、図示は省略するが、画像メモリ部４には、原画のターゲットフレームや参照フレームの画像データから生成された、ターゲットフレームおよび参照フレームについての縮小面の画像データおよび中間面の画像データが、記憶保持されている。
【０１４８】
コントロール部１５５は、このグローバル動きベクトル算出部１５における処理シーケンスを制御するもので、図示のように各部に制御信号を供給するようにする。
【０１４９】
ターゲットブロックバッファ部１５１は、このコントロール部１５５の制御を受けて、画像メモリ部４の縮小面、中間面あるいは基底面のターゲットフレームの画像データから、指示されたターゲットブロックの画像データを読み込んで、マッチング処理部１５３に供給する。
【０１５０】
参照ブロックバッファ部１５２は、コントロール部１５５の制御を受けて、画像メモリ部４の縮小面、中間面あるいは基底面の参照フレームの画像データから、指示されたマッチング処理範囲の画像データを読み込み、そのマッチング処理範囲の画像データの中から、参照ブロックの画像データを順次にマッチング処理部１５３に供給するようにする。
【０１５１】
マッチング処理部１５３は、ターゲットブロックバッファ部１５１からのターゲットブロックの画像データと、参照ブロックバッファ部１５２からの参照ブロックの画像データを受けて、縮小面、中間面および基底面におけるブロックマッチング処理を、コントロール部１５５の制御にしたがって行う。そして、マッチング処理部１５３は、参照ベクトル（参照ブロックの位置情報）と、ブロックマッチング処理結果のＳＡＤ値とを、ローカル動きベクトル算出部１５４に供給する。
【０１５２】
ローカル動きベクトル算出部１５４は、ＳＡＤ値の第１極小値保持部１５４１と、ＳＡＤ値の第２極小値保持部１５４２とを備え、マッチング処理部１５３からのＳＡＤ値から、ＳＡＤ値の第１極小値と、ＳＡＤ値の第２極小値とを検出する処理を行う。
【０１５３】
そして、ローカル動きベクトル算出部１５４は、ＳＡＤ値の第１極小値保持部１５４１のＳＡＤ値の第１極小値およびその位置情報（参照ベクトル）と、ＳＡＤ値の第２極小値保持部１５４２のＳＡＤ値の第２極小値およびその位置情報（参照ベクトル）とを更新してゆき、マッチング処理範囲の全ての参照ブロックについてのブロックマッチング処理が終了したときには、そのときのターゲットブロックについてのＳＡＤ値の第１極小値およびその位置情報（参照ベクトル）と、ＳＡＤ値の第２極小値およびその位置情報（参照ベクトル）とが、ＳＡＤ値の第１極小値保持部１５４１と、ＳＡＤ値の第２極小値保持部１５４２とに保持されるように処理動作を実行する。
【０１５４】
そして、ローカル動きベクトル算出部１５４は、マッチング処理範囲の全ての参照ブロックについてのブロックマッチング処理が終了したときにＳＡＤ値の第１極小値保持部１５４１に保持されている参照ベクトルの情報（位置情報）を、縮小面、中間面および基底面のそれぞれにおける動きベクトルとして検出する。このローカル動きベクトル算出部１５４の処理動作については、後で詳述する。
【０１５５】
このローカル動きベクトル算出部１５４からは、この実施形態では、縮小面マッチング処理時には、縮小面動きベクトルＭＶｓが、ローカル動きベクトルＬＭＶとしてコントロール部１５５に供給される。
【０１５６】
コントロール部１５５は、この縮小面動きベクトルＭＶｓの情報から、中間面におけるサーチ範囲を決定し、ターゲットブロックバッファ部１５１、参照ブロックバッファ部１５２およびマッチング処理部１５３に制御信号を供給して、中間面におけるブロックマッチングを行なうように制御する。
【０１５７】
次に、中間面のマッチング処理が終了したときには、ローカル動きベクトル算出部１５４からは、この実施形態では、縮小面動きベクトルＭＶｓと中間面動きベクトルＭＶｍとの合成ベクトルの情報が、ローカル動きベクトルＬＭＶとしてコントロール部１５５に供給される。
【０１５８】
コントロール部１５５は、この縮小面動きベクトルＭＶｓと中間面動きベクトルＭＶｍとの合成ベクトルの情報から、基底面におけるサーチ範囲を決定し、基底面におけるブロックマッチングを行なうように、ターゲットブロックバッファ部１５１、参照ブロックバッファ部１５２およびマッチング処理部１５３に制御信号を供給する。
【０１５９】
基底面のマッチング処理が終了したときには、ローカル動きベクトル算出部１５４からは、縮小面動きベクトルＭＶｓと中間面動きベクトルＭＶｍと基底面動きベクトルＭＶｂとの合成ベクトルの情報が、ローカル動きベクトルＬＭＶとしてグローバル動きベクトル演算部１５７に供給され、一時保持される。
【０１６０】
また、基底面のマッチング処理が終了したときには、動きベクトル信頼性指標値算出部１５６がコントロール部１５５によりイネーブルとされ、ローカル動きベクトル算出部１５４からは、第１極小値保持部１５４１のＳＡＤ値の最小値ＭｉｎＳＡＤと、第２極小値保持部１５４２のＳＡＤ値の第２極小値Ｂｔｍ２ＳＡＤとが、動きベクトル信頼性指標値算出部１５６に供給される。
【０１６１】
また、このとき、ターゲットブロックバッファ部１５１からのターゲットブロックの画像データがローパスフィルタ１５８１を通じて最大輝度値検出部１５８２および最小輝度値検出部１５８３に供給される。そして、最大輝度値検出部１５８２および最小輝度値検出部１５８３のそれぞれで検出された最大輝度値ＭａｘＴＡＲおよび最小輝度値ＭｉｎＴＡＲが、動きベクトル信頼性指標値算出部１５６に供給される。
【０１６２】
動きベクトル信頼性指標値算出部１５６では、これに供給される情報を用いて、前述した（式１）にしたがって、動きベクトルの信頼性指標値Ｆｔを算出する。そして、動きベクトル信頼性指標値算出部１５６は、算出した動きベクトルの信頼性指標値Ｆｔを、グローバル動きベクトル演算部１５７に供給する。グローバル動きベクトル演算部１５７では、そのときに供給されているローカル動きベクトルＬＭＶに対応付けて、入力されてきた動きベクトルの信頼性指標値Ｆｔを、一時保持する。
【０１６３】
以上の処理が、ターゲットフレームの全てのターゲットブロックについて終了すると、コントロール部１５５は、グローバル動きベクトル演算部１５７に、グローバル動きベクトルＧＶＭの演算処理を開始するようにする制御指示信号を供給する。
【０１６４】
この実施形態では、グローバル動きベクトル演算部１５７は、この制御指示信号を受けて、先ず、保持している複数個のローカル動きベクトルＬＭＶについて、対応して保持されている動きベクトル信頼性指標値Ｆｔを用いて、前述した（式２）により、信頼性の判定を行い、信頼性の高いローカル動きベクトルＬＭＶのみを抽出する。
【０１６５】
そして、抽出した信頼性の高いローカル動きベクトルＬＭＶのみを用いてグローバル動きベクトルＧＶＭを算出する演算処理を実行し、得られたグローバル動きベクトルＧＶＭを、動き補償画生成部１６に供給する。
【０１６６】
前述したように、動き補償画生成部１６では、グローバル動きベクトル算出部１５を通じて送られてくる参照フレームの画像データＲＥＦｖに対して、グローバル動きベクトルＧＶＭによりグローバルモーションに対応する変形処理が施されて、動き補償画像が生成される。そして、生成された動き補償画像が加算部１７でターゲットフレームの画像データと重ね合わされる。
【０１６７】
この実施形態におけるグローバル動きベクトルＧＶＭは、信頼性の高いローカル動きベクトルＬＭＶから生成されたものであるので、確度の高い動きベクトルであり、画像重ね合わせにより得られたＮＲ画像は、良好なものとなる。
【０１６８】
［ローカル動きベクトル算出部１５４での処理動作］
この実施形態のローカル動きベクトル算出部１５４では、ＳＡＤ値についての極小値を検出するため、図１８において、点線で囲んで示すように、位置Ｐｏを判定対象点として、当該判定対象点位置ＰｏのＳＡＤ値と、当該判定対象点位置Ｐｏの周囲近傍の８個のＳＡＤ値とを比較する。そして、判定対象点のＳＡＤ値が、点線で囲んで示す領域の９個のＳＡＤ値の中で最小値（ローカルミニマムという）であるか否か判断する。
【０１６９】
そして、ローカルミニマムであると判断されたときには、それまで保持されていたＳＡＤ値の極小値と比較して、保持されていたＳＡＤ値の極小値よりも小さいと判断されると、保持するＳＡＤ値の極小値を、新たに検出されたローカルミニマムのＳＡＤ値に更新してゆく。
【０１７０】
上述したようなローカルミニマムのＳＡＤ値を検出するために、ローカル動きベクトル算出部１５４は、参照ブロックを、１ピクセル単位でサーチする場合には、ＳＡＤ値を保持しておくＳＡＤテーブルのバッファメモリとして、その規模を小さくするために、図１８に示すように、ターゲットブロックの水平方向のサイズの２ライン分＋３個分のＳＡＤ値の保持が可能なものを用意する。
【０１７１】
図１８から分かるように、ターゲットブロックの水平方向のサイズの２ライン分＋３個分のＳＡＤ値が、バッファメモリに書き込まれると、判定対象点位置Ｐｏでのローカルミニマムの判定が可能となる。
【０１７２】
バッファメモリのサイズを最小にするために、ここでは、図１８に示すように、極小値評価（ローカルミニマム検出）で使われなくなったＳＡＤ値が記憶されていたメモリ位置Ｐａには、新規に入力されるＳＡＤ値が上書きされる。すなわち、新規に入力されるＳＡＤ値は、順番として図１８のメモリ位置Ｐｂに書き込まれるのであるが、このメモリ位置Ｐｂではなく、使われなくなったメモリ位置Ｐａを再利用することで、メモリのハードウエア規模の増大を抑えるようにしている。
【０１７３】
なお、ローカル動きベクトル算出部１５４は、ローカルミニマムを検出するためのバッファの他に、前述した第１極小値保持部１５４１と、第２極小値保持部１５４２とを備えるものである。
【０１７４】
以上の処理が基本的な処理であり、この基本的な処理を、第１極小値と第２極小値とに適用することにより、ＳＡＤ値の最小値およびＳＡＤ値の第２極小値を検出するようにする。
【０１７５】
この実施形態では、ローカル動きベクトル算出部１５４では、縮小面と、中間面と、基底面とで、同じ動作をするものであるが、この実施形態では、基底面で、ローカル動きベクトルＬＭＶを検出するようにすると共に、その信頼性指標値を算出するようにしている。したがって、ＳＡＤ値の第２極小値が必要になるのは、この例では、基底面のみでよく、縮小面および中間面では、ＳＡＤ値の第２極小値の算出保持は、省略するようにしてもよい。
【０１７６】
図１９は、このローカル動きベクトル算出部１５４における第１極小値および第２極小値の検出処理動作の流れを示すフローチャートである。
【０１７７】
先ず、マッチング処理部１５３からのＳＡＤ値を取り込む（ステップＳ１０１）。そして、判定対象点位置ＰｏのＳＡＤ値と、その周囲８個のＳＡＤ値との比較をする（ステップＳ１０２）。その比較の結果、判定対象点位置ＰｏのＳＡＤ値は、ローカルミニマムであるか否か判別する（ステップＳ１０３）。
【０１７８】
ステップＳ１０３で、判定対象点位置ＰｏのＳＡＤ値は、ローカルミニマムではないと判別したときには、ステップＳ１０１に戻り、次のＳＡＤ値の取り込みを行う。
【０１７９】
ステップＳ１０３で、判定対象点位置ＰｏのＳＡＤ値は、ローカルミニマムであると判別したときには、保持しているＳＡＤ値の第１極小値および第２極小値と、判定対象点位置ＰｏのＳＡＤ値とを比較する（ステップＳ１０４）。
【０１８０】
そして、判定対象点位置ＰｏのＳＡＤ値が、保持しているＳＡＤ値の第１極小値よりも小さいか否か判別し、小さいと判別したときには、第１極小値保持部１５４１に保持しているＳＡＤ値を、第２極小値保持部１５４２に保持するように更新すると共に、判定対象点位置ＰｏのＳＡＤ値を第１極小値保持部１５４１に保持するようにする（ステップＳ１０６）。
【０１８１】
そして、ターゲットブロックに対して、全ての参照ブロックとの間のＳＡＤ値についての算出処理が完了したか否か判別し（ステップＳ１０９）、完了してはいないと判別したときには、ステップＳ１０１に戻って、次のＳＡＤ値を取り込む。また、ステップＳ１０９で、ターゲットブロックに対して、全ての参照ブロックとの間のＳＡＤ値についての算出処理が完了したと判別したときには、この処理ルーチンを終了する。
【０１８２】
また、ステップＳ１０５で、判定対象点位置ＰｏのＳＡＤ値が、保持しているＳＡＤ値の第１極小値より大きいと判別したときには、判定対象点位置ＰｏのＳＡＤ値が、保持しているＳＡＤ値の第２極小値より小さいか否か判別し（ステップＳ１０７）、小さいと判別したときには、第２極小値保持部１５４２に保持するＳＡＤ値を、判定対象点位置ＰｏのＳＡＤ値に更新するようにする（ステップＳ１０８）。
【０１８３】
そして、ステップＳ１０８の次には、ステップＳ１０９に進み、ターゲットブロックに対して、全ての参照ブロックとの間のＳＡＤ値についての算出処理が完了したか否か判別し、完了してはいないと判別したときには、ステップＳ１０１に戻って、次のＳＡＤ値を取り込む。また、ステップＳ１０９で、ターゲットブロックに対して、全ての参照ブロックとの間のＳＡＤ値についての算出処理が完了したと判別したときには、この処理ルーチンを終了する。
【０１８４】
また、ステップＳ１０７で、判定対象点位置ＰｏのＳＡＤ値が、保持しているＳＡＤ値の第２極小値より小さくはないと判別したときにもステップＳ１０９に進み、ターゲットブロックに対して、全ての参照ブロックとの間のＳＡＤ値についての算出処理が完了したか否か判別し、完了してはいないと判別したときには、ステップＳ１０１に戻って、次のＳＡＤ値を取り込む。また、ステップＳ１０９で、ターゲットブロックに対して、全ての参照ブロックとの間のＳＡＤ値についての算出処理が完了したと判別したときには、この処理ルーチンを終了する。
【０１８５】
この図１９の処理フローチャートは、縮小面、中間面および基底面で同様とすることができ、縮小面および中間面では、第１極小値保持部１５４１に最終的に保持されたＳＡＤ値を、ＳＡＤ値の最小値ＭｉｎＳＡＤとして検出し、それに対応する参照ベクトルを、縮小面動きベクトルＭＶｓおよび中間面動きベクトルＭＶｍとして検出して、出力することができる。
【０１８６】
また、基底面では、第１極小値保持部１５４１に最終的に保持されたＳＡＤ値を、ＳＡＤ値の最小値ＭｉｎＳＡＤとして検出し、それに対応する参照ベクトルを、基底面動きベクトルＭＶｂとして検出して出力することができる。また、基底面では、第１極小値保持部１５４１に最終的に保持されたＳＡＤ値（最小値ＭｉｎＳＡＤ）と、第２極小値保持部１５４２に最終的に保持されたＳＡＤ値（ＳＡＤ値の第２極小値）とを、動きベクトル信頼性指標値算出部１５６に供給するようにする。
【０１８７】
［グローバル動きベクトル算出部１５７での処理動作］
この実施形態では、多数個のローカル動きベクトルＬＭＶから、グローバル動きベクトルＧＶＭを算出（グローバルモーションを推定）する場合において、グローバルモーションをアフィン変換で表現する方法を用いる。
【０１８８】
図２０に、アフィン変換の一般式を、（式３）として示す。この（式３）において、ｖは、ターゲットブロックの動きベクトルの水平成分、ｗはターゲットブロックの動きベクトルの垂直成分を示し、ａ，ｂ，ｃ，ｄ，ｅ，ｆは、アフィンパラメータを示している。そして、ｘ，ｙは、ターゲットブロックの中心座標の水平成分、垂直成分を示している。
【０１８９】
アフィン変換を、この実施形態に適用した場合、各ターゲットブロックの中心の座標、及び各ターゲットブロックで観測された動きベクトルから、アフィン変換から求められる理想的なベクトルと、観測された動きベクトルのエラーの総和εは、図２１の（式４）のように表される。
【０１９０】
グローバルモーションを導出するという命題は、上記のエラーの総和εを最小化するアフィンパラメータａ〜ｆの推定であり、これは、最小自乗法によって解くことが可能である。図２２〜図２４の（式５）〜（式７）には、アフィンパラメータａ〜ｆの導出過程と、その結果を示す。
【０１９１】
このように、アフィン変換のパラメータは比較的容易に算出されるが、その効果は大きい。アフィン変換は、平行移動、回転、拡大縮小の他、ある程度の変形にも対応できるため、大抵の手ブレ即ちカメラワークの微少な補正をカバーする。
【０１９２】
不特定多数のベクトルから、最も好適なグローバルモーションを導出する手法として、この実施形態では、図２５および図２６のフローチャートに示す方法を用いる。この方法は、信頼性の高いブロックの中から、動被写体等の、グローバルモーションに適合しにくいブロックを徐々に排除しながら、グローバルモーションのパラメータの収束を図る方法である。
【０１９３】
先ず、グローバル動きベクトル算出部１５７は、保持している複数個のローカル動きベクトルＬＭＶについて、それぞれの動きベクトル信頼性指標値Ｆｔと、予め定めた閾値とを比較して、信頼性の高いローカル動きベクトルＬＭＶのターゲットブロック（以下、説明の簡単のためブロックと記載）のみを選定する（ステップＳ２０１）。この処理は、前述の（式２）を用いて説明したように、重み係数Ｗとして、１と０との２値を用いる場合に相当する。
【０１９４】
次に、選定した複数のブロックのローカル動きベクトルＬＭＶのみを用いてグローバル動きベクトルＧＶＭを導出（推定）する（ステップＳ２０２）。つまり、グローバル動きベクトルＧＶＭのアフィンパラメータａ〜ｆを算出する。
【０１９５】
次に、導出したグローバル動きベクトルＧＶＭに基づいて、ステップＳ２０１で選定したブロックのそれぞれの理論上のローカル動きベクトルＬＭＶｓを計算する（ステップＳ２０３）。
【０１９６】
次に、選定した複数のブロックのそれぞれにおいて、ブロックマッチング処理により求めたローカル動きベクトルＬＭＶと、ステップＳ２０３で求めた理論上のローカル動きベクトルＬＭＶｓとの誤差Ｅｎを計算する（ステップＳ２０４）。
【０１９７】
このブロックマッチングで求めた動きベクトルと理論上の動きベクトルとの誤差計算は、演算の精度を重視するなら、三平方の定理から正しく距離計算を行えば良いが、演算の精度よりも軽さを重要視するなら、水平及び垂直の両者の距離をそれぞれ求め、それらの和を、近似的な距離として用いても良い。
【０１９８】
次に、選定した複数のブロックのそれぞれについて求めた誤差Ｅｎの全てを用いて、それら全ての誤差の平均値Ｅaveと、最大値Ｅmaxとを算出する（ステップＳ２０５）。そして、平均値Ｅaveが、それに対して予め定められた閾値θａよりも小さく、且つ、最大値Ｅmaxが、それに対して予め定められた閾値θｂよりも小さいか否か判別する（ステップＳ２０６）。
【０１９９】
ステップＳ２０６での判別の結果、条件を満足してはいないと判別したときには、ステップＳ２０４で求めた各ブロックの誤差Ｅｎの中から、誤差Ｅｎ＝Ｅmaxとなるブロックを、グローバル動きベクトルＧＶＭを導出する複数のブロックから排除する、または、誤差Ｅｎ≧θｂとなるブロックを検出し、検出したブロックの全てを、グローバル動きベクトルＧＶＭを導出する複数のブロックから排除する（ステップＳ２０８）。
【０２００】
次に、ステップＳ２０８でのブロック排除の結果、残存するブロックの数が予め定めた数の閾値θｃよりも少ないか否か判別し（ステップＳ２０９）、残存するブロックの数が閾値θｃよりも少なくはないと判別したときには、ステップＳ２０２に戻り、残存するブロックを選定したブロックとして、上述したステップＳ２０２以降の処理を繰り返す。また、ステップＳ２０９で、残存するブロックの数が閾値θｃよりも少ないと判別したときには、適切なグローバル動きベクトルＧＶＭが得られないので、対象となっている参照フレームの画像は使用しないとして、当該参照フレームについてのその後を全て行わないようにスキップする（ステップＳ２１０）。
【０２０１】
そして、図２５のステップＳ２０６で、平均値Ｅaveが閾値θａよりも小さく、且つ、最大値Ｅmaxが閾値θｂよりも小さいと判別したときには、演算は収束したとして、グローバル動きベクトルＧＶＭをそのときのもので確定し（ステップＳ２０７）、この処理ルーチンを終了する。
【０２０２】
なお、ステップＳ２０８で、誤差Ｅｎが最大エラーＥmaxのブロックのみを排除するか、誤差Ｅｎが閾値θｂ以上のブロックをまとめて排除するかは、グローバル動きベクトルＧＶＭを求める際の収束の早さと精度のバランスで決めれば良い。精度を優先するなら前者の方式を採用し、エラーブロックを1つずつ排除して行けば良く、収束の早さを優先するなら後者を選択しても構わない。
【０２０３】
なお、動き補償画生成部１６には、上述のようにして求められたグローバルモーションについてのアフィン変換のパラメータａ，ｂ，ｃ，ｄ，ｅ，ｆが用いられて、図２０の（式３）により算出される各ターゲットブロック毎の動きベクトル（理論上のローカル動きベクトルＬＭＶｓに相当）が、グローバル動きベクトル算出部１５から、グローバル動きベクトルＧＶＭとして供給される。
【０２０４】
そして、動き補償画生成部１６では、その各ターゲットブロック毎の動きベクトルを用いて、ターゲットブロック毎の動き補償画を生成し、生成したブロック毎の動き補償画を加算部１７に供給する。
【０２０５】
この実施形態において、前述の図１２のノイズの多い画像について求めた各ターゲットブロック毎のグローバル動きベクトルを、図２７に示す。
【０２０６】
［第２の実施形態］
上述の実施形態では、ローカル動きベクトル算出部１５４では、階層化ブロックマッチングを行って、基底面におけるローカル動きベクトルＬＭＶを算出した。そして、動きベクトル信頼性指標値算出部１５６では、当該基底面のローカル動きベクトルＬＭＶの信頼性指標Ｆｔを算出し、グローバル動きベクトル算出部１５７では、この基底面のローカル動きベクトルＬＭＶについて、その信頼性指標値Ｆｔを用いて信頼性の高いローカル動きベクトルＬＭＶを抽出し、当該信頼性の高いローカル動きベクトルＬＭＶを用いてグローバル動きベクトルＧＶＭを算出するようにした。
【０２０７】
ところで、縮小面動きベクトルＭＶｓや中間面動きベクトルＭＶｍを、基底面に対する画像縮小倍率の逆数倍することで、基底面基底面動きベクトルＭＶｂを得ることができる。そこで、グローバル動きベクトルＧＶＭを算出するためには、基底面動きベクトルＭＶｂを求めなくても、縮小面動きベクトルＭＶｓや中間面動きベクトルＭＶｍから、グローバル動きベクトルＧＶＭを求めるようにすることもできる。
【０２０８】
例えば、縮小面動きベクトルＭＶｓからグローバル動きベクトルＧＶＭを求める場合には、ローカル動きベクトル算出部１５４で算出した縮小面におけるローカル動きベクトルＬＭＶ（縮小面動きベクトルＭＶｓ）について、動きベクトル信頼性指標値算出部１５６で、当該縮小面のローカル動きベクトルＬＭＶ（縮小面動きベクトルＭＶｓ）の信頼性指標Ｆｔを算出し、グローバル動きベクトル算出部１５７で、この縮小面のローカル動きベクトルＬＭＶについて、その信頼性指標値Ｆｔを用いて信頼性の高いローカル動きベクトルＬＭＶを抽出し、当該信頼性の高いローカル動きベクトルＬＭＶを用いてグローバル動きベクトルＧＶＭを算出するようにするようにする。
【０２０９】
このように縮小面や中間面のローカル動きベクトルを用いてグローバル動きベクトルＧＶＭを求めるメリットは、次の通りある。
【０２１０】
１つは、先に述べたように縮小面や中間面は、その生成にあたってローパスフィルタが施されるため、ノイズが除去され、結果として、得られたローカル動きベクトルがノイズの影響を受けにくい点である。
【０２１１】
他の１つは、縮小面や中間面では、ターゲットブロックの数が少なくなるので、ローカル動きベクトルの数は少なくなり、演算コストが小さくなると共に、処理に要する時間や小さいので、処理の高速化が可能であることである。上述の例のように、通常、ハードウェアの制約から、縮小面、中間面、基底面のマッチング処理ブロック単位は同じサイズとなるため、画サイズの小さい縮小面のターゲットブロックの数（＝ローカルベクトルの数）は、基底面のみでブロックマッチングを行う場合に較べて相対的に少なくなるからである。
【０２１２】
そして、縮小面動きベクトルからグローバル動きベクトルＧＶＭを求める場合には、中間面および基底面での動きベクトル検出処理は省略することができ、この点でも処理の高速化が図れる。
【０２１３】
したがって、特に、縮小面動きベクトルを用いてグローバル動きベクトルＧＶＭを求めるようにした場合には、そのメリットは、大きい。
【０２１４】
しかし、この縮小面動きベクトルや中間面動きベクトルの精度は、基底面の画像が縮小されているから生成されたものであるので、低精度となっている点を考慮する必要がある。
【０２１５】
そこで、この実施形態では、縮小面動きベクトルあるいは中間面動きベクトルを用いる場合には、縮小面あるいは中間面でブロックマッチングをした後、算出された縮小面動きベクトルあるいは中間面動きベクトルで指し示される縮小面参照ブロック位置あるいは中間面参照ブロック位置の近傍の縮小面参照ブロックあるいは中間面参照ブロックのＳＡＤ値およびその位置情報を用いて、補間処理を行い、ピクセル精度の縮小面動きベクトルあるいは中間面動きベクトルの検出を行うようにする。縮小面について、以下にこの補間処理を説明する。
【０２１６】
例えば、縦および横、ともに１／４に縮小された縮小面でブロックマッチングを行った場合、縮小面動きベクトルは、４ピクセル精度の動きベクトルである。しかし、基底面参照フレームにおいては、縮小面動きベクトルＭＶｓをｎ倍した動きベクトルの近傍に、１ピクセル精度の基底面動きベクトルＭＶｂが存在することは明らかである。
【０２１７】
したがって、図２８に示すように、縮小面での最小ＳＡＤ値６０１が求まった場合、その近傍の複数個、例えば上下左右に隣接する４個のＳＡＤ値６０２，６０３，６０４，６０５を用いて補間処理を行い、ピクセル精度の動きベクトルの検出をすることを考えることができる。この場合、補間倍率は４倍必要ということになる。
【０２１８】
例えば、二次曲線を用いて、ＳＡＤテーブルを補間することで、例えばｎピクセル単位でマッチング処理を行った縮小面ＳＡＤテーブルから、ピクセル精度の動きベクトルを算出することを考える。この場合において、二次曲線近似補間ではなく、線形補間や、３次以上の高次の近似曲線補間を用いても良いが、精度とハードウエア化との兼ね合いから、この例では、二次曲線近似補間を用いている。
【０２１９】
この二次曲線近似補間においては、図２８に示すように、ｎピクセル精度の縮小面動きベクトルが指し示す縮小面ＳＡＤテーブルのＳＡＤ値の最小値Ｓminと、当該最小値Ｓminの位置の近傍位置の複数個のＳＡＤ値（近傍縮小面ＳＡＤ値という）、この例では、縮小面において、最小値Ｓminの位置のＸ方向（水平方向）およびＹ方向（垂直方向）に隣接する４個の近傍ＳＡＤ値Ｓx1、Ｓx2およびＳy1、Ｓy2を使用する。
【０２２０】
図２９に示すように、縮小面ＳＡＤ値の最小値Ｓminと、Ｘ方向（水平方向）の近傍２点の近傍縮小面ＳＡＤ値Ｓx1、Ｓx2を使って、二次の近似曲線７００を当てはめ、この二次曲線７００の極小を取る座標が、ピクセル精度のＳＡＤ値の最小値ＳＸminとなる縮小面動きベクトル（高精度縮小面動きベクトル）のＸ座標Ｖｘとなる。このときの二次曲線近似補間の式を、次式の（式８）に示す。
【０２２１】
ＳＸmin＝１／２×（Ｓx2−Ｓx1）／（Ｓx2−２Ｓmin＋Ｓx1）…（式８）
この計算式（式８）で求めたピクセル精度のＳＡＤ値の最小値ＳＸminがＳＡＤテーブル上で取るＸ座標が、ピクセル精度の縮小面ＳＡＤ値の最小値となるＸ座標Ｖｘとなる。
【０２２２】
この計算式（式８）の割り算は、複数回の引き算で実現可能である。求めたいピクセル精度が、例えば、縮小面における画素ピッチの１／４の画素ピッチの精度であれば、僅か２回の引き算でも求められるため、回路規模、演算時間、共に小さく、二次の近似曲線補間よりもかなり複雑な三次曲線補間と殆ど変わらない性能が実現できる。
【０２２３】
同様に、縮小面ＳＡＤ値の最小値Ｓminと、Ｙ方向（垂直方向）の近傍２点の近傍縮小面ＳＡＤ値Ｓy1、Ｓy2を使って、二次の近似曲線を当て嵌め、この二次曲線の極小値ＳＹminを取るＹ座標が、ピクセル精度のＳＡＤ値の最小値となるＹ座標Ｖｙとなる。このときの二次曲線近似補間の式を、次式の（式９）に示す。
【０２２４】
ＳＹmin＝１／２×（Ｓy2−Ｓy1）／（Ｓy2−２Ｓmin＋Ｓy1）…（式９）
以上のようにして、二次曲線の近似を、Ｘ方向およびＹ方向の２回、行うことで、ピクセル精度の高精度の縮小面動きベクトル（Ｖｘ、Ｖｙ）が求まる。
【０２２５】
以上の説明では、縮小面ＳＡＤ値の最小値と、そのＸ方向（水平方向）およびＹ方向（垂直方向）の近傍２点の縮小面ＳＡＤ値を使用したが、各方向の近傍の縮小面ＳＡＤ値は２点以上であってもよい。また、二次曲線をＸ方向、Ｙ方向に代えて、例えば、斜め方向に近似曲線を当て嵌めてもかまわない。さらに、Ｘ方向、Ｙ方向に、斜め方向を加えて近似曲線を当て嵌めてもかまわない。
【０２２６】
以上のような手段、手順を用いることにより、ｎピクセル単位の精度のＳＡＤテーブルの値から、ピクセル精度のベクトル検出結果が得られることを図３０に示す。図３０の横軸は、補間倍率であり、１次元方向に分解能を何倍にするかを表している。ＳＡＤテーブルは２次元のため、テーブル面積は、この２乗の割合で削減されるのに対し、補間による誤差は、線形程度にしか増加しないことから、上述の補間手法の有用性が分かる。
【０２２７】
［他の実施形態および変形例］
上述の実施形態においては、この発明を、静止画撮影時において検出される動きベクトルの信頼性を判定する場合に適用したが、この発明は、動画撮影時において検出される動きベクトルの信頼性を判定する場合にも、勿論適用できる。
【０２２８】
また、上述の実施形態では、相関値としては、ＳＡＤ値を検出するようにしたが、相関値はＳＡＤ値に限定されるものではないことは言うまでもない。
【０２２９】
また、上述の実施形態では、静止画像についての動き検出処理および画像の重ね合わせ処理は、画像メモリ部４に、複数枚の撮像画像を取り込み、当該取り込んだ複数枚の撮像画像について、上述のような動き検出および画像重ね合わせ処理を行うようにしたが、処理対象の複数枚の画像を、動画撮影時と同様に、リアルタイムで処理するようにすることもできる。
【０２３０】
なお、動きベクトルの検出対象となる画像情報は、撮像画像情報に限られるものではないことは言うまでもない。
【０２３１】
また、上述の実施形態では、動きベクトルの信頼性の判定を、動きベクトル信頼性指標値に基づいて行うようにしたが、相関値の第１極大値と相関値の第２極大値の差や比のみではなく、当該相関値の第１極大値を取る参照ベクトルと、相関値の第２極大値を取る参照ベクトルとの位置的な異なりをさらに用いて信頼性の判定をしたり、相関値の第３極大値、さらには、それよりもより順位の高位の極大値の値や当該極大値を取る参照ベクトルの位置分布をさらに参照して、信頼性の判定をしたりするようにしてもよい。
【０２３２】
また、動きベクトルの信頼性指標値を用いて処理を行う対象としては、ローカル動きベクトルから、グローバル動きベクトルを算出する場合について説明したが、これに限定されるものではない。
【０２３３】
例えば、この実施形態で算出された動きベクトルの信頼性指標値が、信頼性が高いことを示しているときには、動きベクトルが精度良く検出できる絵柄、すなわち、特徴的な絵柄となっていることを意味すると考えることができる。したがって、この実施形態で算出された動きベクトルの信頼性指標値を、画像内容として特徴部分を抽出する用途に適用することができる。
【０２３４】
もしも、画像内容として特徴部分を抽出する処理対象の画像情報が、上述した例の撮像画像のように、連写により取り込まれた複数枚の画像情報である場合には、異なるフレームの画像の１つをターゲット画像（ターゲットフレーム）、他の一つを参照画像（参照フレーム）とすればよい。
【０２３５】
また、１枚の静止画像を処理対象とする場合には、図３１に示すようにすれば良い。すなわち、処理対象の画像８０１を、ターゲット画像８０２とすると共に、参照画像８０３とする。そして、前述と同様にして、それらターゲット画像８０２と参照画像８０３について、ターゲットブロック単位のマッチング処理を、マッチング処理部８０４で実行する。ここで、ターゲットブロックの大きさは、特徴部分として抽出したい画像部分の大きさに設定する。
【０２３６】
そして、マッチング処理部８０４からの評価値出力、例えばＳＡＤ値を、前述の実施形態と同様にローカル動きベクトル検出部８０５に供給する。ローカル動きベクトル検出部８０５では、前述と同様にして、ローカル動きベクトルＬＭＶを検出し、それを特徴ブロック算出部８０７に供給する。また、ローカル動きベクトル検出部８０５は、ＳＡＤ値の最小値ＭｉｎＳＡＤおよび第２極小値Ｂｔｍ２ＳＡＤを、動きベクトル信頼性指標値算出部８０６に供給する。
【０２３７】
動きベクトル信頼性指標値算出部８０６は、前述と同様にして、ターゲットブロック単位のローカル動きベクトルＬＭＶの信頼性の指標値Ｆｔを算出し、特徴ブロック算出部８０７に供給する。
【０２３８】
特徴ブロック算出部８０７は、各ターゲットブロック毎のローカル動きベクトルＬＭＶについて、その信頼性の指標値Ｆｔに基づいて、信頼性を評価する。そして、ローカル動きベクトルＬＭＶの信頼性の高いターゲットブロックを、特徴ブロックであるとする特徴ブロック算出結果を出力する。
【０２３９】
なお、マッチング処理部８０４、ローカル動きベクトル算出部８０５および動きベクトル信頼性指標値算出部８０６は、前述の実施形態のマッチング処理部１５３、ローカル動きベクトル算出部１５４および動きベクトル信頼性指標値算出部１５６と、全く同様に構成することができるものである。
【０２４０】
したがって、この例の場合においても、ローカル動きベクトルＬＭＶを算出するためのマッチング処理は、縮小面でのみ行っても良いし、中間面あるいは基底面まで処理を行っても良い。
【図面の簡単な説明】
【０２４１】
【図１】この発明による画像処理装置の実施形態が適用される撮像装置の構成例を示すブロック図である。
【図２】この発明による画像処理装置の実施形態におけるブロックマッチング処理を説明するために用いる図である。
【図３】この発明による画像処理装置の実施形態におけるブロックマッチング処理を説明するために用いる図である。
【図４】この発明による画像処理装置の実施形態におけるブロックマッチング処理を説明するために用いる図である。
【図５】この発明による画像処理装置の実施形態におけるブロックマッチング処理を説明するために用いる図である。
【図６】この発明による画像処理装置の実施形態におけるブロックマッチング処理を説明するために用いる図である。
【図７】この発明による画像処理装置の実施形態におけるブロックマッチング処理を説明するために用いる図である。
【図８】この発明による画像処理装置の実施形態におけるブロックマッチング処理を説明するために用いる図である。
【図９】この発明による画像処理装置の実施形態におけるブロックマッチング処理を説明するために用いる図である。
【図１０】この発明による画像処理装置の実施形態におけるブロックマッチング処理を説明するために用いる図である。
【図１１】この発明による画像処理装置の実施形態におけるブロックマッチング処理を説明するためのブロック図である。
【図１２】この発明による画像処理装置の実施形態が適用される撮像画像の例を示す図である。
【図１３】この発明による画像処理装置の実施形態において検出されたローカル動きベクトルを、画像上に対応付けて示した図である。
【図１４】この発明による画像処理装置の実施形態の要部を説明するために用いる図である。
【図１５】この発明による画像処理装置の実施形態の要部を説明するために用いる図である。
【図１６】この発明による画像処理装置の実施形態において、信頼性が高いとされたローカル動きベクトルを、画像上に対応付けて示した図である。
【図１７】この発明による画像処理装置の実施形態の要部の構成例を説明するためのブロック図である。
【図１８】図１７の構成例を説明するために用いる図である。
【図１９】この発明による画像処理装置の実施形態の要部の構成例による処理例を説明するためのフローチャートである。
【図２０】この発明による画像処理装置の実施形態において、ローカル動きベクトルからグローバル動きベクトルを求める処理例を説明するために用いる式を説明するための図である。
【図２１】この発明による画像処理装置の実施形態において、ローカル動きベクトルからグローバル動きベクトルを求める処理例を説明するために用いる式を説明するための図である。
【図２２】この発明による画像処理装置の実施形態において、ローカル動きベクトルからグローバル動きベクトルを求める処理例を説明するために用いる式を説明するための図である。
【図２３】この発明による画像処理装置の実施形態において、ローカル動きベクトルからグローバル動きベクトルを求める処理例を説明するために用いる式を説明するための図である。
【図２４】この発明による画像処理装置の実施形態において、ローカル動きベクトルからグローバル動きベクトルを求める処理例を説明するために用いる式を説明するための図である。
【図２５】この発明による画像処理装置の実施形態において、ローカル動きベクトルからグローバル動きベクトルを求める処理例を説明するためのフローチャートの一部を示す図である。
【図２６】この発明による画像処理装置の実施形態において、ローカル動きベクトルからグローバル動きベクトルを求める処理例を説明するためのフローチャートの一部を示す図である。
【図２７】この発明による画像処理装置の実施形態において、算出されたグローバルモーションから求められたブロック単位の動きベクトルを、画像上に対応付けて示した図である。
【図２８】この発明による画像処理装置の実施形態において、ローカル動きベクトルを求める処理の他の例を説明するための図である。
【図２９】この発明による画像処理装置の実施形態において、ローカル動きベクトルを求める処理の他の例を説明するための図である。
【図３０】この発明による画像処理装置の実施形態において、ローカル動きベクトルを求める処理の他の例を説明するための図である。
【図３１】この発明による画像処理装置の他の実施形態の要部を説明するためのブロック図である。
【符号の説明】
【０２４２】
１５…グローバル動きベクトル検出部、１５３…マッチング処理部、１５４…ローカル動きベクトル算出部、１５６…動きベクトル信頼性指標値算出部、１５７…グローバル動きベクトル演算部
【図１】
0004623111.tif 000002
【図２】
0004623111.tif 000003
【図３】
0004623111.tif 000004
【図４】
0004623111.tif 000005
【図５】
0004623111.tif 000006
【図６】
0004623111.tif 000007
【図７】
0004623111.tif 000008
【図８】
0004623111.tif 000009
【図９】
0004623111.tif 000010
【図１０】
0004623111.tif 000011
【図１１】
0004623111.tif 000012
【図１５】
0004623111.tif 000013
【図１７】
0004623111.tif 000014
【図１８】
0004623111.tif 000015
【図１９】
0004623111.tif 000016
【図２０】
0004623111.tif 000017
【図２１】
0004623111.tif 000018
【図２２】
0004623111.tif 000019
【図２３】
0004623111.tif 000020
【図２４】
0004623111.tif 000021
【図２５】
0004623111.tif 000022
【図２６】
0004623111.tif 000023
【図２８】
0004623111.tif 000024
【図２９】
0004623111.tif 000025
【図３０】
0004623111.tif 000026
【図３１】
0004623111.tif 000027
【図１２】
0004623111.tif 000028
【図１３】
0004623111.tif 000029
【図１４】
0004623111.tif 000030
【図１６】
0004623111.tif 000031
【図２７】
0004623111.tif 000032