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