(57)【特許請求の範囲】
【請求項１】
動画像に生じた撮影時の手振れを補正する画像処理装置において、
前記動画像を構成する複数の画像のうち、所定の画像を手振れ補正処理の基準とする基準画像とし、撮像された順序で前記基準画像の後に続く画像を、それぞれ、前記手振れ補正処理の対象となる補正用画像として、前記基準画像に対する、前記補正用画像の位置ずれを補正する補正量を生成する生成手段と、
前記生成手段により生成された前記補正量を構成する、水平方向又は垂直方向の成分の少なくとも一方の成分において、所定の補正用画像における第１の補正量が、前記所定の補正用画像よりも１フレーム分だけ後の補正用画像における第２の補正量よりも大きい場合、前記第１の補正量に基づいて、前記基準画像に対する手振れが生じた範囲を表す手振れ範囲を推定する推定手段と、
前記第１の補正量に基づいて、前記所定の補正用画像の撮影時に、パンニング又はチルティングの少なくとも一方が行われていたか否かを検出する検出手段と、
前記手振れ範囲が、前記基準画像に対する、前記所定の補正用画像に生じた手振れを補正するための補正範囲を超えている場合であって、且つ、前記所定の補正用画像の撮影時のパンニング及びチルティングが検出されていない場合、前記第１の補正量における前記成分のうち、前記第２の補正量よりも大きな前記成分に対応する方向に拡大するように、前記補正範囲を更新する更新手段と
を備える画像処理装置。
【請求項２】
前記補正範囲に基づいて、前記第１の補正量を、前記基準画像に対する、前記所定の補正用画像に生じた手振れを補正する実補正量に制限する制限手段と、
前記実補正量に基づいて、前記所定の補正用画像から、前記基準画像に対する手振れを補正した補正画像を生成する補正手段と
をさらに備える請求項１に記載の画像処理装置。
【請求項３】
前記更新手段は、所定の期間に前記補正範囲を更新しない場合、前記補正範囲を縮小する
請求項１に記載の画像処理装置。
【請求項４】
前記更新手段は、前記所定の期間に前記補正範囲を更新しない場合、前記生成手段により生成された前記補正量の分布に基づいて、前記補正範囲を縮小する
請求項３に記載の画像処理装置。
【請求項５】
前記更新手段は、前記所定の期間に前記補正範囲を更新しない場合、所定の縮小率で前記補正範囲を縮小する
請求項３に記載の画像処理装置。
【請求項６】
前記補正手段は、前記実補正量に基づいて、前記所定の補正用画像から、前記所定の補正用画像内の所定の領域を抽出し、抽出した前記所定の領域を拡大して前記補正画像を生成する
請求項２に記載の画像処理装置。
【請求項７】
前記動画像を撮影する撮影手段をさらに備える
請求項１に記載の画像処理装置。
【請求項８】
動画像に生じた撮影時の手振れを補正する画像処理装置の画像処理方法において、
前記動画像を構成する複数の画像のうち、所定の画像を手振れ補正処理の基準とする基準画像とし、
撮像された順序で前記基準画像の後に続く画像を、それぞれ、前記手振れ補正処理の対象となる補正用画像として、前記基準画像に対する、前記補正用画像の位置ずれを補正する補正量を生成し、
生成された前記補正量を構成する、水平方向又は垂直方向の成分の少なくとも一方の成分において、所定の補正用画像における第１の補正量が、前記所定の補正用画像よりも１フレーム分だけ後の補正用画像における第２の補正量よりも大きい場合、前記第１の補正量に基づいて、前記基準画像に対する手振れが生じた範囲を表す手振れ範囲を推定し、
前記第１の補正量に基づいて、前記所定の補正用画像の撮影時に、パンニング又はチルティングの少なくとも一方が行われていたか否かを検出し、
前記手振れ範囲が、前記基準画像に対する、前記所定の補正用画像に生じた手振れを補正するための補正範囲を超えている場合であって、且つ、前記所定の補正用画像の撮影時のパンニング及びチルティングが検出されていない場合、前記第１の補正量における前記成分のうち、前記第２の補正量よりも大きな前記成分に対応する方向に拡大するように、前記補正範囲を更新する
ステップを含む画像処理方法。
【請求項９】
動画像に生じた撮影時の手振れを補正する画像処理装置として、コンピュータを機能させるプログラムにおいて、
前記動画像を構成する複数の画像のうち、所定の画像を手振れ補正処理の基準とする基準画像とし、撮像された順序で前記基準画像の後に続く画像を、それぞれ、前記手振れ補正処理の対象となる補正用画像として、前記基準画像に対する、前記補正用画像の位置ずれを補正する補正量を生成する生成手段と、
前記生成手段により生成された前記補正量を構成する、水平方向又は垂直方向の成分の少なくとも一方の成分において、所定の補正用画像における第１の補正量が、前記所定の補正用画像よりも１フレーム分だけ後の補正用画像における第２の補正量よりも大きい場合、前記第１の補正量に基づいて、前記基準画像に対する手振れが生じた範囲を表す手振れ範囲を推定する推定手段と、
前記第１の補正量に基づいて、前記所定の補正用画像の撮影時に、パンニング又はチルティングの少なくとも一方が行われていたか否かを検出する検出手段と、
前記手振れ範囲が、前記基準画像に対する、前記所定の補正用画像に生じた手振れを補正するための補正範囲を超えている場合であって、且つ、前記所定の補正用画像の撮影時のパンニング及びチルティングが検出されていない場合、前記第１の補正量における前記成分のうち、前記第２の補正量よりも大きな前記成分に対応する方向に拡大するように、前記補正範囲を更新する更新手段と
して、コンピュータを機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、及びプログラムに関し、特に、例えば、撮影時に生じた手振れを推定して補正する場合に用いて好適な画像処理装置、画像処理方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、ビデオカメラに備えられた角速度センサやジャイロセンサ等により検出されたビデオカメラの動きに基づいて手振れを補正する方法、ビデオカメラにより撮影（撮像）された撮影画像から検出した動きベクトルから、手振れを補正する補正量を算出し、その補正量に基づいて、手振れを補正する方法等の各種の手振れ補正方法が提案されている。
【０００３】
即ち、例えば、従来の手振れ補正方法においては、ビデオカメラの動きを表す所定の動き量が、閾値以上である場合、撮影者によるパンニングやチルティングといった意図的な構図移動操作が行われたと判定し、構図移動操作に起因して撮影画像に生じた画像振れを補正しないようにするか、その補正の程度を弱めることとしていた。
【０００４】
反対に、ビデオカメラの動き量が、所定の閾値未満である場合、撮影者の手振れによってビデオカメラが振動したと判定し、撮影者の手振れに起因した撮影画像の振れを補正していた。
【０００５】
なお、ビデオカメラの動きを表す所定の動き量として、角速度センサで得られた角速度を用い、これが一定時間連続してある閾値以上であればパンニング又はチルティングであると判定する方法は、例えば特許文献１に記載されている。
【０００６】
また、動きベクトルデータが３０フィールドの間、所定の閾値を越えなかったときには、パンニング若しくはチルティング動作時のように、補正量を極力小さくする収束モードにする方法が、例えば特許文献２に記載されている。
【０００７】
【特許文献１】特開平１１−１８３９５１号公報
【特許文献２】特開平０８−３３１４３０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１及び２に記載の方法では、撮影者による手振れは、撮影者毎に異なるため、ビデオカメラの動きが、撮影者によるパンニング又はチルティングによるものであるのか、撮影者の手振れによるものであるのかを判定するための最適な閾値を設定することが難しい。
【０００９】
従って、ビデオカメラの動きが、撮影者によるパンニング又はチルティングによるものであるのか、撮影者の手振れによるものであるのかを誤判定してしまうことがあり、手振れを適切に補正できないことがあった。
【００１０】
即ち、例えば、パンニング又はチルティングに早く対応しようとして、ビデオカメラの動き量の閾値を小さく設定した場合、単に手振れであるにも拘わらず、意図的なパンニング又はチルティングであると誤判定されてしまうことがあり、手振れが補正されないことがあった。
【００１１】
また、手振れを、パンニング又はチルティングと誤判定してしまうことを回避するために、ビデオカメラの動き量の閾値を大きく設定した場合、意図的なパンニング又はチルティングであるにも拘わらず、手振れであると誤判定されてしまうことがあり、ユーザが意図したパンニング又はチルティングが手振れとみなされて補正されてしまうことがあった。
【００１２】
本発明は、このような状況に鑑みてなされたものであり、撮影者毎に異なる手振れの手振れ範囲を推定して、手振れを適切に補正できるようにするものである。
【課題を解決するための手段】
【００１３】
本発明の一側面の画像処理装置、又はプログラムは、動画像に生じた撮影時の手振れを補正する画像処理装置、又は動画像に生じた撮影時の手振れを補正する画像処理装置として、コンピュータを機能させるプログラムであって、前記動画像を構成する複数の画像のうち、所定の画像を手振れ補正処理の基準とする基準画像とし、撮像された順序で前記基準画像の後に続く画像を、それぞれ、前記手振れ補正処理の対象となる補正用画像として、前記基準画像に対する、前記補正用画像の位置ずれを補正する補正量を生成する生成手段と、前記生成手段により生成された前記補正量を構成する、水平方向又は垂直方向の成分の少なくとも一方の成分において、所定の補正用画像における第１の補正量が、前記所定の補正用画像よりも１フレーム分だけ後の補正用画像における第２の補正量よりも大きい場合、前記第１の補正量に基づいて、前記基準画像に対する手振れが生じた範囲を表す手振れ範囲を推定する推定手段と、前記第１の補正量に基づいて、前記所定の補正用画像の撮影時に、パンニング又はチルティングの少なくとも一方が行われていたか否かを検出する検出手段と、前記手振れ範囲が、前記基準画像に対する、前記所定の補正用画像に生じた手振れを補正するための補正範囲を超えている場合であって、且つ、前記所定の補正用画像の撮影時のパンニング及びチルティングが検出されていない場合、前記第１の補正量における前記成分のうち、前記第２の補正量よりも大きな前記成分に対応する方向に拡大するように、前記補正範囲を更新する更新手段とを備える画像処理装置、又は画像処理装置として、コンピュータを機能させるプログラムである。
【００１５】
本発明の一側面の画像処理装置において、前記補正範囲に基づいて、前記第１の補正量を、前記基準画像に対する、前記所定の補正用画像に生じた手振れを補正する実補正量に制限する制限手段と、前記実補正量に基づいて、前記所定の補正用画像から、前記基準画像に対する手振れを補正した補正画像を生成する補正手段とをさらに設けることができる。
【００１６】
本発明の第１の側面の画像処理装置において、前記更新手段では、所定の期間に前記補正範囲を更新しない場合、前記補正範囲を縮小することができる。
【００１７】
本発明の第１の側面の画像処理装置において、前記更新手段では、前記所定の期間に前記補正範囲を更新しない場合、前記生成手段により生成された前記補正量の分布に基づいて、前記補正範囲を縮小することができる。
【００１８】
本発明の第１の側面の画像処理装置において、前記更新手段では、前記所定の期間に前記補正範囲を更新しない場合、所定の縮小率で前記補正範囲を縮小することができる。
【００２０】
本発明の一側面の画像処理装置において、前記補正手段では、前記実補正量に基づいて、前記所定の補正用画像から、前記所定の補正用画像内の所定の領域を抽出し、抽出した前記所定の領域を拡大して前記補正画像を生成することができる。
【００２１】
本発明の第１の側面の画像処理装置において、前記動画像を撮影する撮影手段をさらに設けることができる。
【００２２】
本発明の一側面の画像処理方法は、動画像に生じた撮影時の手振れを補正する画像処理装置の画像処理方法であって、前記動画像を構成する複数の画像のうち、所定の画像を手振れ補正処理の基準とする基準画像とし、撮像された順序で前記基準画像の後に続く画像を、それぞれ、前記手振れ補正処理の対象となる補正用画像として、前記基準画像に対する、前記補正用画像の位置ずれを補正する補正量を生成し、生成された前記補正量を構成する、水平方向又は垂直方向の成分の少なくとも一方の成分において、所定の補正用画像における第１の補正量が、前記所定の補正用画像よりも１フレーム分だけ後の補正用画像における第２の補正量よりも大きい場合、前記第１の補正量に基づいて、前記基準画像に対する手振れが生じた範囲を表す手振れ範囲を推定し、前記第１の補正量に基づいて、前記所定の補正用画像の撮影時に、パンニング又はチルティングの少なくとも一方が行われていたか否かを検出し、前記手振れ範囲が、前記基準画像に対する、前記所定の補正用画像に生じた手振れを補正するための補正範囲を超えている場合であって、且つ、前記所定の補正用画像の撮影時のパンニング及びチルティングが検出されていない場合、前記第１の補正量における前記成分のうち、前記第２の補正量よりも大きな前記成分に対応する方向に拡大するように、前記補正範囲を更新するステップを含む画像処理方法である。
【００２３】
本発明の一側面においては、前記動画像を構成する複数の画像のうち、所定の画像が手振れ補正処理の基準とする基準画像とされ、撮像された順序で前記基準画像の後に続く画像が、それぞれ、前記手振れ補正処理の対象となる補正用画像とされて、前記基準画像に対する、前記補正用画像の位置ずれを補正する補正量が生成され、生成された前記補正量を構成する、水平方向又は垂直方向の成分の少なくとも一方の成分において、所定の補正用画像における第１の補正量が、前記所定の補正用画像よりも１フレーム分だけ後の補正用画像における第２の補正量よりも大きい場合、前記第１の補正量に基づいて、前記基準画像に対する手振れが生じた範囲を表す手振れ範囲が推定され、前記第１の補正量に基づいて、前記所定の補正用画像の撮影時に、パンニング又はチルティングの少なくとも一方が行われていたか否かが検出され、前記手振れ範囲が、前記基準画像に対する、前記所定の補正用画像に生じた手振れを補正するための補正範囲を超えている場合であって、且つ、前記所定の補正用画像の撮影時のパンニング及びチルティングが検出されていない場合、前記第１の補正量における前記成分のうち、前記第２の補正量よりも大きな前記成分に対応する方向に拡大するように、前記補正範囲が更新される。
【発明の効果】
【００２７】
本発明によれば、撮影者毎に異なる手振れ範囲を推定して、手振れを適切に補正することが可能となる。
【発明を実施するための最良の形態】
【００２８】
以下、図面を参照して本実施の形態について説明する。
【００２９】
図１は、本発明の一実施の形態である画像処理装置の構成例を示している。
【００３０】
この画像処理装置１は、動きベクトル検出部３１、手振れ補正部３２、制御部３３、及び操作部３４により構成される。
【００３１】
動きベクトル検出部３１及び手振れ補正部３２には、図示せぬ記憶部から、撮影された順序で連続する複数のフレーム（又はフィールド）により構成される動画像が供給される。なお、記憶部には、CCD(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)等の撮像素子を備えたビデオカメラにより撮影された動画像が記憶されている。
【００３２】
動きベクトル検出部３１は、例えば、ブロックマッチング法により、供給された動画像のフレーム毎の動きベクトルを検出し、手振れ補正部３２に供給する。なお、ブロックマッチング法の詳細は、図２を参照して後述する。
【００３３】
手振れ補正部３２は、動きベクトル検出部３１から供給された動画像のフレーム毎の動きベクトルに基づいて、供給された動画像の各フレームに生じた撮影時の手振れを補正し、その結果得られた補正画像を、後段（図示せぬモニタ等）に出力する。
【００３４】
制御部３３は、操作部３４からの操作信号に応じて、動きベクトル検出部３１及び手振れ補正部３２を制御する。
【００３５】
操作部３４は、例えば、指定位置４１（図３）を指定するために用いるキー、及び抽出枠ｅの抽出中心が移動可能な補正表示可能範囲Ｌ（図４）を変更するために用いるキー等からなり、ユーザによるキー操作に対応して、ユーザのキー操作に応じた操作信号を、制御部３３に供給する。
【００３６】
図２は、動きベクトル検出部３１によるブロックマッチング法により動きベクトルを検出する検出方法を説明する図である。
【００３７】
動きベクトル検出部３１は、動画像の各フレームを順に注目フレームとし、図２に示されるように、注目フレームをｍ×ｎ個のブロックに分割し、それぞれのブロックに最も類似している、注目フレームの後に連続する他のフレーム上の領域（類似領域）を求めることで、注目フレームの各ブロックに対する、他のフレーム上の類似領域の動きを表す動きベクトルを検出する。
【００３８】
図３は、画像処理装置１が行う、撮影時に生じた手振れを補正する手振れ補正処理の概要を説明する図である。
【００３９】
図３Ａ左側に示すフレーム0は、動画像を構成する複数のフレームのうちの所定のフレームを示しており、図３Ａ右側に示すフレームは、フレーム0に対応する補正画像を示している。
【００４０】
図３Ｂ左側に示すフレームnは、フレーム0からnフレーム後のフレームを示しており、図３Ｂ右側に示すフレームは、フレームnに対応する補正画像を示している。
【００４１】
手振れ補正処理では、図３Ａ左側及び図３Ｂ左側に示されるように、ビデオカメラで撮影された撮影画像の全範囲に相当する撮影領域Ｅの内側に、抽出されて所定の大きさに拡大される領域の範囲を規定する枠である抽出枠ｅが設定され、抽出枠ｅが手振れを補正する実補正量４２に応じて撮影領域Ｅの範囲内で移動することによって手振れが補正される。
【００４２】
即ち、例えば、画像処理装置１（手振れ補正部３２）は、図３Ａ左側に示されるように、動画像を構成する複数のフレームのうち、所定のフレームを、撮影時に生じた手振れを補正する手振れ補正処理の基準とする基準フレーム（フレーム0）とする。
【００４３】
また、画像処理装置１は、ユーザのキー操作により指定された指定位置４１を中心とする抽出枠ｅで囲まれたフレーム0の領域４１aを、フレーム0から抽出し、撮影領域Ｅ等の所定の大きさに拡大して、その結果得られた補正画像（図３Ａ右側）を出力する。なお、図３Ａ左側において、指定位置４１は、フレーム0の中心を表している。
【００４４】
画像処理装置１は、フレームn（図３Ｂ左側）に生じた、フレーム0（図３Ａ左側）に対する手振れを補正する実補正量４２を生成する。
【００４５】
また、画像処理装置１は、図３Ｂ左側に示されるように、フレーム0に対する手振れを補正する実補正量４２に基づいて、抽出枠ｅの中心を表す抽出中心を、指定位置４１から位置４１'に移動させる。
【００４６】
さらに、画像処理装置１は、移動後の抽出中心４１'を中心とする抽出枠ｅで囲まれた領域４１’bをフレームnから抽出し、撮影領域Ｅ等の所定の大きさに拡大して、その結果得られたフレームnの手振れを補正した補正画像（図３Ｂ右側）を出力する。
【００４７】
次に、抽出枠ｅの抽出中心が移動可能な範囲を表す補正表示可能範囲Ｌについて、図４を参照して説明する。
【００４８】
なお、図４の撮影領域Ｅ及び抽出枠ｅは、すでに図３において説明しているため、その説明は省略する。以下、その他の図面についても同様である。
【００４９】
また、図４Ａ及び図４Ｂにおいて、撮影領域Ｅを横×縦が４×４個の１６個の同一形状の矩形領域に区分する破線は、抽出枠ｅの位置等を明確にするために便宜上、設けたものである。
【００５０】
さらに、図４Ａ及び図４Ｂでは、１６個の矩形領域のうち、中央に存在する横×縦が２×２個の４個の矩形領域が、補正表示可能範囲Ｌに設定されており、抽出枠ｅの大きさは、横×縦が２×２個の４個の矩形領域の大きさである。
【００５１】
図４Ａ左側に示されるように、抽出中心４１'が、補正表示可能範囲Ｌ内に存在する場合、抽出中心４１'を中心とする抽出枠ｅが撮影領域Ｅ内に存在するため、抽出枠ｅ内の領域すべてを撮影領域Ｅから抽出することができる。
【００５２】
従って、図４Ａ右側に示されるように、抽出枠ｅにより抽出された矩形領域の横と縦の長さをそれぞれ２倍に拡大して得られる、撮影領域Ｅと同一の大きさの補正画像は、補正画像内のすべての領域において、画像が欠けることはない。
【００５３】
一方、図４Ｂに示されるように、抽出中心４１'が、補正表示可能範囲Ｌ内に存在しない場合、抽出中心４１'を中心とする抽出枠ｅが、撮影領域Ｅからはみ出してしまうため、抽出枠ｅ内であっても、抽出すべき撮影画像がない領域が出現する。
【００５４】
従って、図４Ｂ右側に示されるように、抽出枠ｅにより抽出された矩形領域の横と縦の長さをそれぞれ２倍に拡大して得られる、撮影領域Ｅと同一の大きさの補正画像は、補正画像内の右側の領域（黒色で示す）において、画像の一部が欠けることになる。
【００５５】
このため、手振れ補正処理では、補正画像において、画像欠けが生じないように、抽出中心は、補正表示可能範囲Ｌ内に存在する必要がある。
【００５６】
なお、抽出枠ｅが大きくなればなる程、撮影領域Ｅにおいて、抽出枠ｅが移動できる範囲、即ち、抽出枠ｅの抽出中心が移動できる補正表示可能範囲Ｌは、小さくなることになる。
【００５７】
図５は、図１の手振れ補正部３２の詳細な構成例を示すブロック図である。
【００５８】
手振れ補正部３２は、補正量生成部６１、手振れ範囲推定部６２、パンチルト検出部６３、補正範囲決定部６４、補正量制御部６５、及び補正画像生成部６６により構成される。
【００５９】
補正量生成部６１には、図１の動きベクトル検出部３１から、動画像を構成するフレーム毎の動きベクトルが供給される。
【００６０】
補正量生成部６１は、複数のフレームのうちの所定のフレームを、手振れ補正処理の基準とする基準フレームとする。
【００６１】
補正量生成部６１は、動きベクトル検出部３１からのフレーム毎の動きベクトルに基づいて、基準フレーム（フレーム0）に対する、フレームnの動きを表す動きベクトルを、基準フレームに対する、フレームnの位置ずれ（画像振れや手振れ等）を補正する補正量（以下、フレームnの補正量と称する）として生成する。
【００６２】
即ち、例えば、補正量生成部６１は、動きベクトル検出部３１から、フレームn-1に対する、フレームnの動きベクトル（以下、フレームnの動きベクトルと称する）が供給されたとき、フレームnの動きベクトルと、内蔵するメモリに記憶されているフレームn-1の補正量とを加算し、その加算結果を、フレームnの補正量とする。
【００６３】
なお、補正量生成部６１は、情報を一時記憶するフラッシュメモリ等のメモリを内蔵しており、そのメモリに、前回、生成したフレームn-1の補正量を記憶している。
【００６４】
補正量生成部６１は、動きベクトル検出部３１からのフレーム毎の動きベクトルに基づいて生成したフレームnの補正量を、手振れ範囲推定部６２、パンチルト検出部６３、及び補正量制御部６５に供給する。
【００６５】
また、補正量生成部６１は、フレームnの動きベクトルを、補正量制御部６５に供給する。
【００６６】
さらに、補正量生成部６１は、補正量制御部６５から、フレームnの手振れを補正する実補正量（フレームnの実補正量）がフィードバックされたことに対応し、指定位置４１を始点とするフレームnの実補正量の終点を、新たな指定位置とするとともに、フレームnを新たな基準フレームとする。
【００６７】
手振れ範囲推定部６２は、内蔵するメモリ（図示せず）に記憶されているフレームn-1の補正量、及び補正量生成部６１からのフレームnの補正量に基づいて、基準フレームに対する手振れが生じた範囲を表す手振れ範囲を推定し、補正範囲決定部６４に供給する。
【００６８】
即ち、例えば、手振れ範囲推定部６２は、補正量の水平成分及び垂直成分の各成分毎に、補正量生成部６１から供給されたフレームnの補正量の成分（の絶対値）が、内蔵するメモリに記憶されたフレームn-1の補正量の成分よりも小さいか否かを判定する。手振れ範囲推定部６２は、補正量の水平成分又は垂直成分の少なくとも一方の成分において、フレームnの補正量が、フレームn-1の補正量よりも小さいと判定した場合のみ、フレームn-1の補正量に基づいて、手振れ範囲を推定し、補正範囲決定部６４に供給する。
【００６９】
なお、手振れ範囲推定部６２は、情報を一時記憶するフラッシュメモリ等のメモリを内蔵しており、そのメモリに、前回、補正量生成部６１から供給されたフレームn-1の補正量を記憶している。
【００７０】
また、手振れ範囲推定部６２は、補正量の水平成分又は垂直成分の少なくとも一方の成分において、フレームnの補正量が、フレームn-1の補正量よりも小さいと判定した場合のみ、フレームnの補正量よりも大きいフレームn-1の補正量の成分を表す成分情報を、補正範囲決定部６４に供給する。
【００７１】
パンチルト検出部６３は、補正量生成部６１からのフレームnの補正量に基づいて、フレームnの撮影時の意図的な構図移動操作（パンニング、チルティング等）の発生を検出し、その検出結果を、補正範囲決定部６４に供給する。
【００７２】
補正範囲決定部６４は、手振れ範囲推定部６２からの手振れ範囲及び成分情報、並びにパンチルト検出部６３からの検出結果に基づいて、基準フレームに対する、フレームnに生じた手振れを補正する範囲として、予め設定された補正範囲を更新し、補正量制御部６５に供給する。
【００７３】
なお、補正範囲としては、例えば、撮影時に生じる一般的なユーザの手振れを想定した手振れ範囲の大きさが、予め、初期値として設定されているものとする。
【００７４】
補正量制御部６５は、補正範囲決定部６４からのフレームnの補正範囲に基づいて、補正量生成部６１からのフレームnの補正量を、基準フレームに対する、フレームnに生じた手振れを補正する実補正量（以下、フレームnの実補正量と称する）に制限し、補正画像生成部６６に供給する。
【００７５】
即ち、例えば、補正量制御部６５は、内蔵するメモリに記憶している、前回得られたフレームn-1の実補正量と、補正量生成部６１からのフレームnの動きベクトルとを加算し、その加算結果であるフレームnの候補補正量を取得する。
【００７６】
なお、補正量制御部６５は、情報を一時記憶するフラッシュメモリ等のメモリを内蔵しており、前回得られたフレームn-1の実補正量を記憶している。
【００７７】
そして、補正量制御部６５は、フレームnの候補補正量、補正量生成部６１からのフレームnの補正量、及び補正範囲決定部６４からのフレームnの補正範囲に基づいて、フレームnの実補正量を決定し、補正画像生成部６６に供給する。
【００７８】
補正画像生成部６６は、補正量制御部６５からのフレームnの実補正量に基づいて、供給されたフレームnから、フレームnに生じた手振れを補正した補正画像を生成して出力する。
【００７９】
次に、図６は、図５の補正量生成部６１が行う、フレームnの補正量を生成する生成方法を説明する図である。
【００８０】
図６において、点４１は、ユーザにより指定される指定位置を示している。なお、例えば、指定位置は、予めフレームの中心を表す中心位置に設定されているものとする。
【００８１】
また、図６において、矢印９２1ないし９２6は、フレーム1ないしフレーム6の各動きベクトルを示している。また、矢印９３6は、フレーム6の補正量を示している。
【００８２】
例えば、補正量生成部６１は、動きベクトル検出部３１からフレーム１の動きベクトル９２1が供給されたとき、フレーム１の動きベクトル９２1を、フレーム１の補正量９３1とする。
【００８３】
また、補正量生成部６１は、動きベクトル検出部３１からのフレーム２の動きベクトル９２2が供給されたとき、フレーム２の動きベクトル９２2と、内蔵するメモリに記憶されたフレーム１の補正量９３1（フレーム１の動きベクトル９２1）とを加算し、その加算結果を、フレーム２の補正量９３2とする。
【００８４】
同様にして、補正量生成部６１は、動きベクトル検出部３１からのフレーム6の動きベクトル９２6が供給されたとき、フレーム6の動きベクトル９２6と、内蔵するメモリに記憶されているフレーム5の補正量９３5（動きベクトル９２1ないし９２5それぞれを加算したもの）とを加算し、その加算結果を、フレーム6の補正量９３6とする。
【００８５】
なお、以下において、フレームnの動きベクトル９２nとは、フレームnの動きベクトルを示しており、フレームnの補正量９３nとは、フレームnの補正量を示すものとする。
【００８６】
次に、図７は、図５の手振れ範囲推定部６２が行う、基準フレームに対する手振れが生じた手振れ範囲を推定する推定方法を説明する図である。
【００８７】
なお、図７のXY座標は、指定位置４１を原点として、互いに直交するX軸とY軸とで定義される直交座標を表している。また、X軸は、補正量の水平成分を表しており、Y軸は、補正量の垂直成分を表している。以下、その他の図面についても同様である。
【００８８】
手振れ範囲推定部６２は、補正量生成部６１からのフレームnの補正量９３nの水平成分（の絶対値）が、前回、補正量生成部６１から供給されたフレームn-1の補正量９３n-1の水平成分よりも小さいか否かを判定する。
【００８９】
また同様に、手振れ範囲推定部６２は、補正量生成部６１からのフレームnの補正量９３nの垂直成分（の絶対値）が、前回、補正量生成部６１から供給されたフレームn-1の補正量９３n-1の垂直成分よりも小さいか否かを判定する。
【００９０】
手振れ範囲推定部６２は、補正量の水平成分又は垂直成分の少なくとも一方の成分において、フレームnの補正量９３nが、フレームn-1の補正量９３n-1よりも小さいと判定した場合のみ、指定位置４１と、指定位置４１を始点とするフレームn-1の補正量９３n-1の終点とを結ぶ線分を対角線とする矩形領域を、手振れ範囲として推定し、補正範囲決定部６４に供給する。
【００９１】
また、手振れ範囲推定部６２は、補正量の水平成分又は垂直成分の少なくとも一方の成分において、フレームnの補正量９３nが、フレームn-1の補正量９３n-1よりも小さいと判定した場合のみ、フレームnの補正量９３nよりも大きいフレームn-1の補正量９３n-1の成分を表す成分情報を、補正範囲決定部６４に供給する。
【００９２】
即ち、例えば、図７に示されるように、フレーム７の補正量９３7の水平成分x7が、フレーム６の補正量９３6の水平成分x6よりも小さく、かつ、フレーム７の補正量９３7の垂直成分y7が、フレーム６の補正量９３6の垂直成分y6よりも小さい場合、手振れ範囲推定部６２は、指定位置４１と、指定位置４１を始点とするフレーム６の補正量９３6の終点とを結ぶ線分を対角線とする矩形領域９５6を、手振れ範囲９５6として、補正範囲決定部６４に供給するとともに、フレーム６の補正量９３6の水平成分x6及び垂直成分y6を、成分情報として、補正範囲決定部６４に供給する。
【００９３】
次に、図８は、図５のパンチルト検出部６３が行う、フレームnの撮影時の意図的な構図移動操作（パンニング、チルティング等）の発生を検出するパンチルト検出方法を説明する図である。
【００９４】
図８において、右側に示す垂直方向に延びた破線は、補正表示可能範囲Ｌの境界線を示しており、境界線を含む、その境界線よりも左側の領域は、補正表示可能範囲Ｌ内の領域を示しており、境界線よりも右側の領域は、補正表示可能範囲Ｌ外の領域を示している。
【００９５】
なお、以下の説明で参照する図面では、フレームnの動きベクトル９２nについては、図面が煩雑になるのを防ぐために、適宜、符号の付加は省略している。
【００９６】
パンチルト検出部６３は、補正量生成部６１からのフレームnの補正量９３nが供給されたことに対応し、指定位置４１を始点とするフレームnの補正量９３nの終点（以下、フレームnの補正量９３nの終点と称する）が、補正表示可能範囲Ｌ内に存在するか否かを判定し、その判定結果に基づいて、フレームnの撮影時の意図的な構図移動操作の発生を検出する。
【００９７】
具体的には、例えば、図８に示されるように、フレームnの補正量９３nの終点が、補正表示可能範囲Ｌ外に存在する場合、パンチルト検出部６３は、フレームnの撮影時に意図的な構図移動操作が行われていたと判断し、その判断結果を、検出結果として補正範囲決定部６４に供給する。
【００９８】
反対に、パンチルト検出部６３は、フレームnの補正量９３nの終点が、補正表示可能範囲Ｌ内に存在すると判定した場合、フレームnの撮影時に意図的な構図移動操作が行われていなかったと判断し、その判断結果を、検出結果として補正範囲決定部６４に供給する。
【００９９】
次に、図９ないし図１３を参照して、図５の補正範囲決定部６４が行う、フレームnの補正範囲を更新する更新方法を説明する。
【０１００】
補正範囲決定部６４は、例えば、図９に示されるように、手振れ範囲推定部６２からの手振れ範囲９５n-1が、フレームnの補正範囲９６nを超えずに、手振れ範囲９５n-1すべてが補正範囲９６nに含まれる場合、フレームnの補正範囲９６nを更新しない。
【０１０１】
また例えば、図１０及び図１１に示されるように、手振れ範囲推定部６２からの手振れ範囲９５n-1が、フレームnの補正範囲９６nを超えて、手振れ範囲９５n-1が補正範囲９６nにすべて含まれない場合、補正範囲決定部６４は、手振れ範囲推定部６２からの成分情報に基づいて、補正範囲を更新する。
【０１０２】
図１０において、フレームnの補正量９３nの垂直成分ynが、フレームn-1の補正量９３n-1の垂直成分yn-1よりも小さいため、手振れ範囲推定部６２から補正範囲決定部６４には、成分情報として、フレームn-1の補正量９３n-1の垂直成分yn-1が供給される。
【０１０３】
補正範囲決定部６４は、手振れ範囲推定部６２からの垂直成分yn-1に対応して、補正範囲を、垂直方向（y軸方向）に拡大するように更新する。即ち、例えば、補正範囲決定部６４は、補正範囲９６nの右上の頂点(a,b)のY座標bが、手振れ範囲９５n-1の右上の頂点(xn-1,yn-1)のY座標yn-1に一致するように、補正範囲９６nを新たな補正範囲９７n（フレームn+1の補正範囲９６n+1）に更新する。
【０１０４】
また、図１１において、フレームnの補正量９３nの水平成分xn及び垂直成分ynが、それぞれ、フレームn-1の補正量９３n-1の水平成分xn-1及び垂直成分yn-1よりも小さいため、手振れ範囲推定部６２から補正範囲決定部６４には、成分情報として、フレームn-1の補正量９３n-1の水平成分xn-1及び垂直成分yn-1が供給される。
【０１０５】
補正範囲決定部６４は、手振れ範囲推定部６２からの水平成分xn-1及び垂直成分yn-1に対応して、補正範囲を、水平方向（X軸方向）と垂直方向に拡大するように更新する。即ち、例えば、補正範囲決定部６４は、補正範囲９６nの右上の頂点(a,b)のX座標aとY座標bとが、それぞれ、手振れ範囲９５n-1の右上の頂点(x n-1,y n-1)のX座標x n-1とY座標y n-1とに一致するように、補正範囲９６nを新たな補正範囲９７n（フレームn+1の補正範囲９６n+1）に更新する。
【０１０６】
なお、図１０及び図１１において、フレームnの補正範囲は、更新前の補正範囲９６nであり、更新後の補正範囲９７nは、次のフレームn+1の補正範囲９６n+1とされる。
【０１０７】
さらに、例えば、図１２に示されるように、ユーザによるキー操作により、補正表示可能範囲Ｌが縮小されて、フレームnの補正範囲９６nが、範囲９６Anだけ補正表示可能範囲Ｌの境界を超えて、補正表示可能範囲Ｌからはみ出す場合、フレームnの補正範囲を、フレームnの補正範囲９６nのうち、補正表示可能範囲Ｌの境界を超えた範囲９６Anを除く、補正表示可能範囲Ｌ内の範囲９７nで更新する。
【０１０８】
ユーザによるキー操作による更新後の補正範囲９７nは、フレームnの新たな補正範囲９６nとされる。
【０１０９】
また、補正範囲決定部６４は、パンチルト検出部６３からの検出結果に基づいて、パンチルト検出部６３が、手振れ範囲９５n-1の推定に用いた補正量９３n-1に対応するフレームn-1の撮影時の意図的な構図移動操作の発生を検出したと判定した場合、即ち、例えば、図１３に示されるように、フレームn-1の補正量９３n-1の終点が補正表示可能範囲Ｌの境界を超えている場合、手振れ範囲推定部６２からの手振れ範囲９５n-1が、フレームnの補正範囲９６nを超えて、手振れ範囲９５n-1が補正範囲９６nにすべて含まれていなくても、フレームnの補正範囲９６nを更新しない。
【０１１０】
以上のように、図９ないし図１３を参照して説明したように、ユーザによるキー操作によって補正範囲が更新された場合を除いては、その更新後の補正範囲は、次のフレームの補正範囲から適用される。
【０１１１】
ところで、補正量制御部６５は、フレームn-1の実補正量９８n-1と、補正量生成部６１からのフレームnの動きベクトル９２nとを加算し、その加算結果であるフレームnの候補補正量を取得する。
【０１１２】
そして、補正量制御部６５は、フレームnの候補補正量、補正量生成部６１からのフレームnの補正量９３n、及び補正範囲決定部６４からのフレームnの補正範囲９６nに基づいて、フレームnの実補正量９８nを決定する。
【０１１３】
次に、図１４ないし図１６を参照して、図５の補正量制御部６５が行う、フレームnの実補正量を決定する決定方法を説明する。
【０１１４】
図１４は、フレームnの補正量９３nが、そのまま、フレームnの実補正量９８nに決定される場合の一例を説明する図である。
【０１１５】
補正量制御部６５は、図１４に示されるように、補正量生成部６１からのフレームnの補正量９３nの終点４１'が、指定位置４１を始点とするフレームnの候補補正量（フレームn-1の実補正量９８n-1と、フレームnの動きベクトル９２nとの加算結果）の終点（以下、フレームnの候補補正量の終点と称する）と同一であり、補正範囲決定部６４からのフレームnの補正範囲９６n内に存在する場合、フレームnの補正量９３nを、そのまま、フレームnの実補正量９８nとして、補正画像生成部６６に供給する。
【０１１６】
図１５は、フレームnの補正量９３nが、フレームnの補正範囲９６nにより制限され、制限後のフレームnの補正量９８nが、フレームnの実補正量９８nに決定される場合の一例を説明する図である。
【０１１７】
補正量制御部６５は、図１５に示されるように、フレームnの候補補正量（フレームn-1の実補正量９８n-1とフレームnの動きベクトル９２nとの加算結果）の終点、及びフレームnの補正量９３nの終点が、フレームnの補正範囲９６n内に存在しない場合、フレームnの補正量９３nの終点を、フレームnの補正範囲９６n内に制限し、制限後のフレームnの補正量９８nを、フレームnの実補正量９８nとして、補正画像生成部６６に供給する。
【０１１８】
即ち、例えば、補正量制御部６５は、指定位置４１を始点とし、フレームnの補正範囲９６nの４つの頂点のうち、フレームnの補正量９３nの終点との距離が最小となる１つの頂点を終点とするフレームnの実補正量９８nに、フレームnの補正量９３nを制限する。
【０１１９】
また、例えば、補正量制御部６５は、指定位置４１を始点とし、指定位置４１及びフレームnの補正量９３nの終点を結ぶ線分と、フレームnの補正範囲９６n内と補正範囲９６n外とを分ける境界線とが交わる点を終点とするフレームnの実補正量９８nに、フレームnの補正量９３nを制限することも可能である。
【０１２０】
なお、補正量制御部６５が、フレームnの補正範囲９６nの４つの頂点のうち、１つの頂点を終点とするフレームnの実補正量９８nに、フレームnの補正量９３nを制限する場合には、予め決定されている４つの頂点のうちの１つの頂点を終点として選択するだけでよいため、フレーム毎に、フレームnの実補正量９８nの終点を算出する場合と比較して、より迅速に、フレームnの実補正量９８nに、フレームnの補正量９３nを制限することができる。
【０１２１】
図１６は、フレームnの候補補正量が、そのまま、フレームnの実補正量９８nに決定される場合の一例を説明する図であり、フレームn+1の補正範囲９６n+1が、フレームnの補正範囲９６nよりも広くなる場合（フレームnにおいて補正範囲９６nが更新されて、更新後の補正範囲９７nが、フレームn+1の補正範囲９６n+1とされる場合）に、フレームnの候補補正量が、そのまま、フレームnの実補正量９８nに決定されることを示している。
【０１２２】
補正量制御部６５は、図１６に示されるように、フレームnの候補補正量（フレームn-1の実補正量９８n-1とフレームnの動きベクトル９２nとの加算結果）の終点４１'が、フレームnの補正範囲９６n内に存在する場合であって、フレームnの候補補正量の終点４１'が、フレームnの補正量９３nの終点とは異なる場合、フレームnの候補補正量を、そのまま、フレームnの実補正量９８nとして、補正量生成部６１、及び補正画像生成部６６に供給する。
【０１２３】
なお、補正量生成部６１では、補正量制御部６５から、フレームnの実補正量９８nが供給されたことに対応し、フレームnの実補正量９８nの終点４１'が新たな指定位置とされるとともに、フレームnが基準フレームとされて、新たな基準フレームにおける補正量が生成される。
【０１２４】
図１７は、図５の補正画像生成部６６が行う、手振れを補正した補正画像を生成する生成方法を説明する図である。
【０１２５】
例えば、補正画像生成部６６は、フレームnが供給されたとき、図１７Ａ左側に示されるように、補正量制御部６５からのフレームnの実補正量９８n（指定位置４１を始点とし、位置４１'を終点とするベクトル）に基づいて、抽出中心を、指定位置４１から位置４１'に移動し、移動後の抽出中心４１'を中心とする抽出枠ｅにより、抽出画像４１'aを抽出する。
【０１２６】
補正画像生成部６６は、撮影領域Ｅから抽出された抽出画像４１'aを所定の大きさに拡大することにより、図１７Ａ右側に示される補正画像を生成して出力する。
【０１２７】
また、補正画像生成部６６は、フレームn+1が供給されたとき、図１７Ｂ左側に示されるように、補正量制御部６５からのフレームn+1の実補正量９８n+1に基づいて、抽出中心を、指定位置４１から位置４１'に移動し、移動後の抽出中心４１'を中心とする抽出枠ｅにより、抽出画像４１'bを抽出する。
【０１２８】
補正画像生成部６６は、撮影領域Ｅから抽出された抽出画像４１'bを所定の大きさに拡大することにより、図１７Ｂ右側に示される補正画像を生成して出力する。
【０１２９】
さらに、補正画像生成部６６は、フレームn+2が供給されたとき、図１７Ｃ左側に示されるように、補正量制御部６５からのフレームn+2の実補正量９８n+2に基づいて、抽出中心を、指定位置４１から位置４１'に移動し、移動後の抽出中心４１'を中心とする抽出枠ｅにより、抽出画像４１'cを抽出する。
【０１３０】
補正画像生成部６６は、撮影領域Ｅから抽出された抽出画像４１'cを所定の大きさに拡大することにより、図１７Ｃ右側に示される補正画像を生成して出力する。
【０１３１】
次に、図１８は、撮影者による手振れにより、補正量の終点が補正範囲を超えたとしても、補正画像における被写体の位置が殆どずれないことを説明する図であり、図１８Ａないし図１８Ｃは、撮影者による手振れにより、フレームnからフレームn+1において、カメラが左方向に移動し、フレームn+1からフレームn+2において、カメラが右下方向に移動した場合の手振れ補正処理を示している。
【０１３２】
図１８Ａ左側に示すフレームnでは、指定位置４１を始点とするフレームnの補正量９３n（及びフレームnの候補補正量）の終点４１'は、補正範囲９６n内に存在する。従って、補正量制御部６５は、フレームnの補正量９３nを、そのまま、フレームnの実補正量９８nとして、補正画像生成部６６に供給する。
【０１３３】
フレームnにおいて、補正画像生成部６６は、補正量制御部６５からのフレームnの実補正量９８nに基づいて、抽出画像４１'aを抽出して拡大することにより、図１８Ａ右側に示される被写体１２１が表示された補正画像を生成して出力する。
【０１３４】
図１８Ｂ左側に示すフレームn+1では、フレームn+1の補正量９３n+1（及び、フレームn+1の候補補正量）の終点が、フレームn+1の補正範囲９６n+1内に存在しない。従って、補正量制御部６５は、フレームn+1の補正範囲９６n+1に基づいて、フレームn+1の補正量９３n+1を制限し、制限後のフレームn+1の補正量９８n+1を、フレームn+1の実補正量９８n+1として、補正画像生成部６６に供給する。
【０１３５】
フレームn+1において、補正画像生成部６６は、補正量制御部６５からのフレームn+1の実補正量９８n+1に基づいて、抽出画像４１'bを抽出して拡大することにより、図１８Ｂ右側に示される被写体１２１が表示された補正画像を生成して出力する。
【０１３６】
フレームn+1において生成される補正画像は、図１８Ｂ右側に示されるように、フレームn+1の補正量９３n+1が制限された分だけ、フレームnの補正画像内の被写体１２１の位置がずれたものとなる。
【０１３７】
図１８Ｃ左側に示すフレームn+2では、フレームn+2の候補補正量（フレームn+1の実補正量９８n+1とフレームn+2の動きベクトル９２n+2との加算結果）の終点４１'が、フレームn+2の補正範囲９６n+2内に存在するとともに、フレームn+2の候補補正量の終点４１'が、フレームn+2の補正量９３n+2（フレームn+1の補正量９３n+1と、フレームn+2の動きベクトル９２n+2との加算結果）の終点とは異なる。従って、補正量制御部６５は、フレームn+2の候補補正量を、そのまま、フレームn+2の実補正量９８n+2として、補正量生成部６１、及び補正画像生成部６６に供給する。
【０１３８】
フレームn+2において、補正画像生成部６６は、補正量制御部６５からのフレームn+2の実補正量９８n+2に基づいて、抽出画像４１'cを抽出して拡大することにより、図１８Ｃ右側に示される被写体１２１が表示された補正画像を生成して出力する。
【０１３９】
フレームn+2において生成される補正画像は、図１８Ｃ右側に示されるように、フレームn+1の補正画像内の被写体１２１の位置が維持されたものとなる。
【０１４０】
即ち、フレームn+2においては、フレームn+1の補正量９３n+1に、フレームn+2の動きベクトル９２n+2を加算した加算結果、つまり、フレームnと同一の画像である基準フレームに対する、フレームn+2の位置ずれを補正する補正量９３n+2に基づいて、フレームn+2の実補正量を決定した場合、フレームn+2の実補正量は、フレームnに対する、フレームn+2に生じた手振れを補正するものとなる。
【０１４１】
従って、この場合、フレームn+2の実補正量は、フレームn+1に対する、フレームn+2に生じた手振れを補正するものではないため、補正画像生成部６６において、フレームn+1の補正画像内の被写体１２１の位置がずれたフレームn+2の補正画像が生成されてしまう。
【０１４２】
そこで、フレームn+2では、フレームn+1の実補正量９８n+1と、フレームn+2の動きベクトル９２n+2との加算結果、即ち、フレームn+1に対する、フレームn+2の位置ずれを補正する補正量を、フレームn+2の補正量として、その補正量に基づいて、フレームn+2の実補正量９８n+2を決定している。
【０１４３】
従って、フレームn+2において、フレームn+1の実補正量９８n+1と、フレームn+2の動きベクトル９２n+2との加算結果を、フレームn+2の補正範囲９６n+2に基づいて、フレームn+2の実補正量９８n+2にすることで、補正画像生成部６６において、図１８Ｃ右側に示されるように、フレームn+1の補正画像内の被写体１２１の位置が維持されたフレームn+2の補正画像が生成される。
【０１４４】
なお、補正量生成部６１では、補正量制御部６５から、フレームn+2の実補正量９８n+2がフィードバック（供給）されたことに対応し、フレームn+2の実補正量９８n+2の終点４１'が、新たな指定位置とされるとともに、フレームn+2が基準フレームとされて、新たな基準フレームにおける補正量が生成される。
【０１４５】
図１９及び図２０は、パンニングした後のフレームに生じた手振れを補正することができることを説明する図であり、図１９Ａないし図２０Ｄは、フレームnにおいて被写体１２１を撮影している状態から、フレームn+1からフレームn+3において、撮影者から見たときに、被写体１２１の左側に位置する被写体１２２を撮影するようにパンニングしたときのフレームnないしフレームn+3の撮影領域Ｅ、及びフレームnないしフレームn+3の補正画像を示している。
【０１４６】
図１９Ａ左側に示すフレームnでは、指定位置４１を始点とするフレームnの補正量９３n（及びフレームnの候補補正量）の終点４１'は、フレームnの補正範囲９６n内に存在する。
【０１４７】
従って、補正量制御部６５は、フレームnの補正量９３nを、そのまま、フレームnの実補正量９８nとして、補正画像生成部６６に供給する。
【０１４８】
フレームnにおいて、補正画像生成部６６は、補正量制御部６５からのフレームnの実補正量９８nに基づいて、抽出画像４１'aを抽出して拡大することにより、図１９Ａ右側に示される被写体１２１が表示された補正画像を生成して出力する。
【０１４９】
図１９Ｂ左側に示すフレームn+1では、フレームn+1の補正量９３n+1（及びフレームn+1の候補補正量）の終点が、フレームn+1の補正範囲９６n+1内に存在しない。
【０１５０】
従って、補正量制御部６５は、フレームn+1の補正範囲９６n+1に基づいて、フレームn+1の補正量９３n+1を制限し、制限後のフレームn+1の補正量９８n+1を、フレームn+1の実補正量９８n+1として、補正画像生成部６６に供給する。
【０１５１】
フレームn+1において、補正画像生成部６６は、補正量制御部６５からのフレームn+1の実補正量９８n+1に基づいて、抽出画像４１'bを抽出して拡大することにより、図１９Ｂ右側に示される被写体１２１及び１２２が表示された補正画像を生成して出力する。
【０１５２】
このとき、フレームn+1において生成された補正画像は、ユーザによる意図的なパンニングにより、フレームnの補正画像内の被写体１２１の位置が、右側にずれたものとなる。
【０１５３】
図２０Ｃ左側に示すフレームn+2では、フレームn+2の候補補正量（フレームn+1の実補正量９８n+1と、フレームn+2の動きベクトル９２n+2との加算結果）の終点、及びフレームn+2の補正量９３n+2の終点が、フレームn+2の補正範囲９６n+2内に存在しない。
【０１５４】
従って、補正量制御部６５は、フレームn+2の補正範囲９６n+2に基づいて、フレームn+2の補正量９３n+2を制限し、制限後のフレームn+2の補正量９８n+2を、フレームn+2の実補正量９８n+2として、補正画像生成部６６に供給する。
【０１５５】
フレームn+2において、補正画像生成部６６は、補正量制御部６５からのフレームn+2の実補正量９８n+2に基づいて、抽出画像４１'cを抽出して拡大することにより、図２０Ｃ右側に示される被写体１２２が表示された補正画像を生成して出力する。
【０１５６】
このとき、フレームn+2において生成された補正画像は、ユーザによる意図的なパンニングにより、フレームn+1の補正画像内の被写体１２２の位置が、右側にずれたものとなる。
【０１５７】
図２０Ｄ左側に示すフレームn+3では、フレームn+3の候補補正量（フレームn+2の実補正量９８n+2とフレームnの動きベクトル９２n+3との加算結果）の終点４１'が、フレームn+3の補正範囲９６n+3内に存在するとともに、フレームn+3の候補補正量の終点４１'が、フレームn+3の補正量９３n+3（フレームn+2の補正量９３n+2と、フレームn+3の動きベクトル９２n+3との加算結果）の終点とは異なる。
【０１５８】
従って、補正量制御部６５は、フレームn+3の候補補正量を、そのまま、フレームn+3の実補正量９８n+3として、補正量生成部６１、及び補正画像生成部６６に供給する。
【０１５９】
フレームn+3において、補正画像生成部６６は、補正量制御部６５からのフレームn+3の実補正量９８n+3に基づいて、抽出画像４１'dを抽出して拡大することにより、図２０Ｄ右側に示される被写体１２２が表示された補正画像を生成して出力する。
【０１６０】
このとき、フレームn+3において生成された補正画像は、フレームn+2の補正画像内の被写体１２２の位置が維持されたものとなる。
【０１６１】
即ち、フレームn+3においては、フレームn+2に対する、フレームn+3の位置ずれを補正する補正量として、フレームn+3の候補補正量が生成される。
【０１６２】
そして、フレームn+3の補正範囲９６n+3に基づいて、フレームn+3の候補補正量から、フレームn+3の実補正量９８n+3が決定されるため、フレームn+3の実補正量９８n+3は、フレームn+2に対する、フレームn+3の手振れを補正するものとなる。
【０１６３】
従って、補正画像生成部６６では、フレームn+3において、フレームn+2に対する、フレームn+3の手振れが補正された補正画像が生成されるため、フレームn+3において生成された補正画像の被写体１２２の位置と、フレームn+2の補正画像内の被写体１２２の位置とが一致するものとなる。
【０１６４】
なお、補正量生成部６１では、補正量制御部６５から、フレームn+3の実補正量９８n+3が供給されたことに対応し、フレームn+3の実補正量９８n+3の終点４１'が新たな指定位置とされるとともに、フレームn+3が基準フレームとされて、新たな基準フレームに対する手振れを補正する手振れ補正処理が行われる。
【０１６５】
次に、図２１のフローチャートを参照して、図１の画像処理装置１が行う手振れ補正処理を説明する。
【０１６６】
ステップＳ３１において、動きベクトル検出部３１は、供給された動画像を構成するフレーム毎の動きベクトルを検出し、手振れ補正部３２に供給する。
【０１６７】
ステップＳ３２ないしステップＳ３７において、手振れ補正部３２は、動きベクトル検出部３１からのフレーム毎の動きベクトルに基づいて、供給された動画像に生じた撮影時の手振れを補正し、その結果としての補正画像を生成する補正画像生成処理を行う。
【０１６８】
即ち、ステップＳ３２において、手振れ補正部３２の補正量生成部６１は、動きベクトル検出部３１からのフレーム毎の動きベクトルに基づいて、フレームnの補正量９３nを生成する補正量生成処理を行い、その結果得られたフレームnの補正量９３nを、手振れ範囲推定部６２、パンチルト検出部６３、及び補正量制御部６５に供給する。
【０１６９】
また、ステップＳ３２では、補正量生成部６１は、動きベクトル検出部３１からのフレームnの動きベクトル９２nを、補正量制御部６５に供給する。
【０１７０】
ステップＳ３３において、手振れ範囲推定部６２は、補正量生成部６１からのフレームn-1の補正量９３n-1、及びフレームnの補正量９３nに基づいて、手振れ範囲を推定する手振れ範囲推定処理を行う。
【０１７１】
また、ステップＳ３３では、手振れ範囲推定部６２は、手振れ範囲推定処理により、フレームn-1の補正量９３n-1、及びフレームnの補正量９３nに基づいて推定された手振れ範囲９５n-1が得られた場合のみ、その手振れ範囲９５n-1とともに、フレームn-1の補正量９３n-1についての成分情報を補正範囲決定部６４に供給する。
【０１７２】
ステップＳ３４において、パンチルト検出部６３は、補正量生成部６１からのフレームnの補正量９３nに基づいて、フレームnの撮影時の意図的な構図移動操作の発生を検出するパンチルト検出処理を行い、その結果得られた検出結果を、補正範囲決定部６４に供給する。
【０１７３】
ステップＳ３５において、補正範囲決定部６４は、手振れ範囲推定部６２からの手振れ範囲及び成分情報、並びにパンチルト検出部６３からの検出結果に基づいて、フレームnの補正範囲９６nを決定する補正範囲決定処理を行い、その結果得られたフレームnの補正範囲９６nを、補正量制御部６５に供給する。
【０１７４】
ステップＳ３６において、補正量制御部６５は、補正量生成部６１からのフレームnの補正量９３n及びフレームnの動きベクトル９２n、並びに、補正範囲決定部６４からのフレームnの補正範囲９６nに基づいて、フレームnの手振れを補正する実補正量９８nを生成する補正量制御処理を行い、その結果得られたフレームnの実補正量９８nを、補正画像生成部６６に供給する。
【０１７５】
ステップＳ３７において、補正画像生成部６６は、補正量制御部６５からのフレームnの実補正量９８nに基づいて、供給されたフレームnから、フレームnに生じた手振れを補正した補正画像を生成する。
【０１７６】
即ち、例えば、ステップＳ３７では、補正画像生成部６６は、図１７に示されたように、フレームnの実補正量９８nの終点４１'を抽出中心とする抽出枠ｅにより、フレームnから抽出された抽出画像を拡大することにより、フレームnの補正画像を生成して出力する。
【０１７７】
以上のように、動画像を構成する各フレームについて、ステップＳ３２ないしステップＳ３７の補正画像生成処理を実行することにより、補正画像を生成して出力した後、この手振れ補正処理は終了される。
【０１７８】
次に、図２２のフローチャートを参照して、図５の補正量生成部６１が行う、図２１のステップＳ３２における補正量生成処理の詳細について説明する。
【０１７９】
ステップＳ６１において、補正量生成部６１は、フレームnに対し、ユーザによって、指定位置４１が新たに指定されたか否かを判定する。指定位置４１が新たに指定されたと判定された場合、処理は、ステップＳ６２に進められる。
【０１８０】
ステップＳ６２において、補正量生成部６１は、フレームn-1の補正量９３n-1を０にする初期化を行い、フレームn-1を新たな基準フレームとして、処理を、ステップＳ６３に進める。
【０１８１】
なお、ステップＳ６１において、指定位置４１が新たに指定されていないと判定された場合、ステップＳ６２はスキップされて、処理は、ステップＳ６３に進められる。
【０１８２】
ステップＳ６３において、補正量生成部６１は、補正量制御部６５から、フレームn-1の実補正量９８n-1がフィードバックされたか否かを判定する。フレームn-1の実補正量９８n-1がフィードバックされたと判定された場合、処理は、ステップＳ６４に進められ、補正量生成部６１は、補正量制御部６５からのフレームn-1の実補正量９８n-1の終点を、新たな指定位置とするとともに、フレームn-1を新たな基準フレームとする。そして、ステップＳ６５において、補正量生成部６１は、フレーム１の補正量９３1を生成する。
【０１８３】
一方、ステップＳ６３において、フレームn-1の実補正量９８n-1がフィードバックされないと判定された場合、ステップＳ６４はスキップされて、処理は、ステップＳ６５に進められ、補正量生成部６１は、図６に示されたように、内蔵のメモリに記憶されているフレームn-1の補正量と、動きベクトル検出部３１からのフレームnの動きベクトルとを加算し、その加算結果を、フレームnの補正量９３nとする。なお、フレーム１においては、フレーム１の動きベクトル９２1を、そのまま、フレーム１の補正量９３1とする。
【０１８４】
以上のようにして補正量生成処理が行われた後、補正量生成部６１は、補正量生成処理により得られたフレームnの補正量９３nを、手振れ範囲推定部６２、パンチルト検出部６３、及び補正量制御部６５に供給して、処理は、図２１のステップＳ３２にリターンされる。
【０１８５】
次に、図２３のフローチャートを参照して、図５の手振れ範囲推定部６２が行う、図２１のステップＳ３３における手振れ範囲推定処理の詳細について説明する。
【０１８６】
ステップＳ９１において、手振れ範囲推定部６２は、補正量の水平成分及び垂直成分の各成分毎に、補正量生成部６１から供給されたフレームnの補正量９３nの成分が、前回、補正量生成部６１から供給されたフレームn-1の補正量９３n-1の成分よりも小さいか否かを判定する。
【０１８７】
ステップＳ９１では、補正量の水平成分又は垂直成分の少なくとも一方の成分において、フレームnの補正量９３nが、前回、補正量生成部６１から供給されたフレームn-1の補正量９３n-1よりも小さいと判定された場合、処理は、ステップＳ９２に進められ、手振れ範囲推定部６２は、図７に示されたように、フレームn-1の補正量９３n-1に基づいて、手振れ範囲を推定する。
【０１８８】
また、ステップＳ９２では、手振れ範囲推定部６２は、フレームnの補正量９３nの成分よりも大きいフレームn-1の補正量の成分を、成分情報として検出し、手振れ範囲推定処理は終了される。
【０１８９】
なお、ステップＳ９１において、補正量の水平成分及び垂直成分のいずれの成分においても、補正量生成部６１からのフレームnの補正量９３nが、前回、補正量生成部６１から供給されたフレームn-1の補正量９３n-1よりも小さくないと判定した場合、ステップＳ９２はスキップされて、手振れ範囲推定処理は終了される。
【０１９０】
以上のようにして手振れ範囲推定処理が行われた後、手振れ範囲推定部６２は、手振れ範囲推定処理において手振れ範囲が推定されるとともに、成分情報が検出された場合のみ、その手振れ範囲及び成分情報を、補正範囲決定部６４に供給して、処理は、図２１のステップＳ３３にリターンされる。
【０１９１】
次に、図２４のフローチャートを参照して、図５のパンチルト検出部６３が行う、図２１のステップＳ３４におけるパンチルト検出処理の詳細について説明する。
【０１９２】
ステップＳ１２１において、パンチルト検出部６３は、補正量生成部６１から供給されたフレームnの補正量９３nの終点が、補正表示可能範囲Ｌを超えたか否かを判定する。
【０１９３】
ステップＳ１２１において、図８に示されたように、フレームnの補正量９３nの終点が、補正表示可能範囲Ｌを超えたと判定された場合、処理は、ステップＳ１２２に進められ、パンチルト検出部６３は、フレームnの撮影時に意図的な構図移動操作が行われたと判断し、パンチルト検出処理は終了される。
【０１９４】
一方、ステップＳ１２１において、フレームnの補正量９３nの終点が、補正表示可能範囲Ｌを超えていないと判定された場合、処理は、ステップＳ１２３に進められ、パンチルト検出部６３は、フレームnの撮影時に意図的な構図移動操作が行われていないと判断し、パンチルト検出処理は終了される。
【０１９５】
以上のようにしてパンチルト検出処理が行われた後、パンチルト検出部６３は、判断結果を、パンチルト検出処理による検出結果として、補正範囲決定部６４に供給し、処理は、図２１のステップＳ３４にリターンされる。
【０１９６】
次に、図２５のフローチャートを参照して、図５の補正範囲決定部６４が行う、図２１のステップＳ３５における補正範囲決定処理の詳細について説明する。
【０１９７】
ステップＳ１５１において、補正範囲決定部６４は、フレームnの補正範囲９６nを、フレームn-1の補正範囲９６n-1を決定する前回の補正範囲決定処理の処理結果に基づいて設定する。
【０１９８】
ステップＳ１５２において、補正範囲決定部６４は、フレームnの補正範囲９６nが、補正表示可能範囲Ｌを超えたか否かを判定する。
【０１９９】
例えば、ユーザによるキー操作に応じて補正表示可能範囲Ｌが縮小されたことにより、ステップＳ１５２において、フレームnの補正範囲９６nが補正表示可能範囲Ｌを超えたと判定された場合、処理は、ステップＳ１５３に進められる。そして、ステップＳ１５３において、補正範囲決定部６４は、図１２に示されたように、フレームnの補正範囲９６nが、補正表示可能範囲Ｌ内に収まるように、フレームnの補正範囲９６nを補正範囲９７nに縮小し、補正範囲９７nをフレームｎの新たな補正範囲９６nとして、処理は、ステップＳ１５４に進められる。
【０２００】
一方、ステップＳ１５２において、フレームnの補正範囲９６nが補正表示可能範囲Ｌを超えていないと判定された場合、ステップＳ１５３はスキップされて、処理は、ステップＳ１５４に進められる。
【０２０１】
ステップＳ１５４において、補正範囲決定部６４は、フレームn-1の補正量９３n-1とフレームnの補正量９３nに基づいて推定された手振れ範囲９５n-1、及び成分情報が、手振れ範囲推定部６２から供給されたか否か、即ち、図２１のステップＳ３３における手振れ範囲推定処理により推定された手振れ範囲９５n-1、及び成分情報が供給されたか否かを判定する。
【０２０２】
ステップＳ１５４において、手振れ範囲９５n-1、及び成分情報が供給されたと判定された場合、処理は、ステップＳ１５５に進められ、補正範囲決定部６４は、手振れ範囲推定部６２からの手振れ範囲９５n-1が、フレームnの補正範囲９６nを超えているか否かを判定する。
【０２０３】
ステップＳ１５５において、手振れ範囲９５n-1が、フレームnの補正範囲９６nを超えていると判定された場合、処理は、ステップＳ１５６に進められ、補正範囲決定部６４は、パンチルト検出部６３からの検出結果に基づいて、手振れ範囲９５n-1の推定に用いた補正量９３n-1に対応するフレームn-1の撮影時の意図的な構図移動操作の発生が検出されたか否かを判定する。
【０２０４】
ステップＳ１５６において、フレームn-1の撮影時の意図的な構図移動操作が検出されていないと判定された場合、処理は、ステップＳ１５７に進められ、補正範囲決定部６４は、図１０や図１１に示されたように、手振れ範囲推定部６２からの手振れ範囲９５n-1、及び成分情報に基づいて、フレームnの補正範囲９６nを補正範囲９７nに拡大し、補正範囲決定処理は終了される。この場合、フレームnの補正範囲は、更新前の補正範囲９６nであり、次のフレームn+1の補正範囲９６n+1を決定する補正範囲決定処理のステップＳ１５１において、更新後の範囲９７nが、フレームn+1の補正範囲９６n+1に設定される。
【０２０５】
なお、ステップＳ１５４において、手振れ範囲９５n-1、及び成分情報が供給されないと判定された場合、ステップＳ１５５において、手振れ範囲９５n-1が、フレームnの補正範囲９６nを超えていないと判定された場合、あるいは、ステップＳ１５６において、フレームn-1の撮影時の意図的な構図移動操作の発生が検出されたと判定された場合、その時点で、補正範囲決定処理は終了され、次のフレームn+1の補正範囲９６n+1を決定する補正範囲決定処理のステップＳ１５１において、フレームnの範囲９６nが、フレームn+1の補正範囲９６n+1に設定される。
【０２０６】
以上のように補正範囲決定処理が行われた後、補正範囲決定部６４は、補正範囲決定処理により得られたフレームnの補正範囲を、補正量制御部６５に供給して、処理は、図２１のステップＳ３５にリターンされる。
【０２０７】
次に、図２６のフローチャートを参照して、図５の補正量制御部６５が行う、図２１のステップＳ３６における補正量制御処理の詳細について説明する。
【０２０８】
ステップＳ１８１において、補正量制御部６５は、前回、決定したフレームn-1の実補正量９８n-1と、補正量生成部６１からのフレームnの動きベクトル９２nとを加算し、その加算結果であるフレームnの候補補正量を取得する。
【０２０９】
ステップＳ１８２において、補正量制御部６５は、指定位置４１を始点とするフレームnの候補補正量の終点が、補正範囲決定部６４からのフレームnの補正範囲９６n内に存在するか否かを判定する。
【０２１０】
ステップＳ１８２において、フレームnの候補補正量の終点が、フレームnの補正範囲９６n内に存在すると判定された場合、処理は、ステップＳ１８３に進められ、補正量制御部６５は、指定位置４１を始点とするフレームnの候補補正量が、指定位置４１を始点とするフレームnの補正量９３nと同一であるか否かを判定する。
【０２１１】
ステップＳ１８３において、フレームnの候補補正量が、フレームnの補正量９３nと同一であると判定された場合、処理は、ステップＳ１８４に進められ、補正量制御部６５は、図１４に示されたように、フレームnの補正量９３nを、そのまま、フレームnの実補正量９８nとして、補正量制御処理は終了される。
【０２１２】
また、ステップＳ１８３において、フレームnの候補補正量が、フレームnの補正量９３nと同一でないと判定された場合、処理は、ステップＳ１８５に進められ、補正量制御部６５は、図１６に示されたように、フレームnの候補補正量を、そのまま、フレームnの実補正量９８nとし、処理は、ステップＳ１８６に進められる。
【０２１３】
ステップＳ１８６において、補正量制御部６５は、フレームnの実補正量９８nを、補正量生成部６１にフィードバックする。これにより、図２２の補正量生成処理のステップＳ６４において、補正量生成部６１は、補正量制御部６５からのフレームnの実補正量９８nの終点を、新たな指定位置とするとともに、フレームnを新たな基準フレームとして、補正量を生成する。この後、補正量制御処理は終了される。
【０２１４】
一方、ステップＳ１８２において、フレームnの候補補正量の終点が、フレームnの補正範囲９６n内に存在しないと判定された場合、処理は、ステップＳ１８７に進められ、補正量制御部６５は、フレームnの補正量９３nの終点が、フレームnの補正範囲９６n内に存在するか否かを判定する。
【０２１５】
ステップＳ１８７において、フレームnの補正量９３nの終点が、フレームnの補正範囲９６n内に存在すると判定された場合、処理は、ステップＳ１８４に進められる。
【０２１６】
また、ステップＳ１８７において、フレームnの補正量９３nの終点が、フレームnの補正範囲９６n内に存在しないと判定された場合、処理は、ステップＳ１８８に進められ、補正量制御部６５は、図１５に示されたように、フレームnの補正範囲９６nに基づいて、フレームnの補正量９３nを制限し、制限後の補正量９８nをフレームnの実補正量９８nとして、補正量制御処理は終了される。
【０２１７】
以上のように補正制御処理が終了された後、補正量制御部６５は、補正制御処理により得られたフレームnの実補正量９８nを、補正画像生成部６６に供給して、処理は、図２１のステップＳ３６にリターンされる。
【０２１８】
図２１の手振れ補正処理のステップＳ３２ないしＳ３７（補正画像生成処理）によれば、フレームnの補正量９３nに基づいて、動画像を撮影した撮影者の手振れ範囲を推定し、その手振れ範囲に基づいて、補正範囲を決定することとしたので、撮影者毎に異なる手振れを補正する最適な補正範囲を決定することができる。
【０２１９】
また、図２１の手振れ補正処理では、フレームnの実補正量９８nに基づいて、フレームnから抽出した抽出画像を所定の大きさに拡大したものを補正画像とするため、補正画像内の被写体の方が、撮影画像（フレームn）内の被写体よりも大きくなる。
【０２２０】
従って、図２１の手振れ補正処理は、撮影画像内の被写体を拡大（ズーム）することも行っているため、拡大した画像を補正画像とせずに、単に手振れを補正する場合と比較して、撮影時のカメラのズーム量（拡大率）を少なくすることができる。このため、撮影時に被写体をズームしたときに含まれやすい大きな手振れを抑えることが可能である。
【０２２１】
ところで、図２５の補正範囲決定処理では、手振れ範囲９５n-1に基づいて、フレームnの補正範囲９６nを拡大することとしたが、図２３の手振れ範囲推定処理により推定される手振れ範囲９５n-1が補正範囲を超えず、例えば一定期間等の所定の期間、補正範囲が拡大されない場合、即ち、手振れを補正する補正範囲よりも小さい範囲で手振れが生じている場合、補正範囲を縮小することが望ましい。
【０２２２】
次に、所定の期間、補正範囲が拡大されない場合、補正範囲を所定の縮小率により縮小する第１の縮小方法について、図２７を参照して説明する。
【０２２３】
図２７に示されるように、所定の期間、補正範囲Ｇ1が拡大されない場合、補正範囲決定部６４は、４つの辺により囲まれて形成される補正範囲Ｇ1を、４つの各辺を一定の割合で縮小し、縮小後の補正範囲Ｇ2に更新する。
【０２２４】
さらに、所定の期間、補正範囲が拡大されない場合、過去の補正量の分布に基づいて、補正範囲を縮小する第２の縮小方法について、図２８を参照して説明する。
【０２２５】
図２８に示されるように、所定の期間、補正範囲Ｇ1が拡大されない場合、例えば、補正範囲Ｇ1における、指定位置４１を始点としたときの過去の補正量の終点の分布が、補正範囲Ｇ1内の、指定位置４１から右側の領域に偏在し、指定位置４１から左側の領域における補正量の終点の分布が少ない場合、補正範囲決定部６４は、指定位置４１から左側の領域を最も狭めるように、補正範囲Ｇ1を縮小し、縮小後の補正範囲Ｇ2に更新する。
【０２２６】
次に、図２９のフローチャートを参照して、所定の期間、補正範囲が拡大されない場合における、補正範囲を縮小する他の補正範囲決定処理を説明する。
【０２２７】
図２９の補正範囲決定処理は、図２５の補正範囲決定処理に対し、ステップＳ２１８及びステップＳ２１９を追加したものである。
【０２２８】
即ち、ステップＳ１５４において、手振れ範囲９５n-1、及び成分情報が供給されないと判定された場合、ステップＳ１５５において、手振れ範囲９５n-1が、フレームnの補正範囲９６nを超えていないと判定された場合、あるいは、ステップＳ１５６において、フレームn-1の撮影時の意図的な構図移動操作の発生が検出されたと判定された場合、処理は、ステップＳ２１８に進められる。
【０２２９】
ステップＳ２１８では、補正範囲決定部６４は、所定の期間、補正範囲は拡大されなかったか否かを判定する。
【０２３０】
ステップＳ２１８において、所定の期間内に、補正範囲は拡大されたと判定された場合、ステップＳ２１９はスキップされて、この補正範囲決定処理は終了され、次のフレームn+1の補正範囲９６n+1を決定する補正範囲決定処理のステップＳ１５１において、フレームnの補正範囲９６nが、フレームn+1の補正範囲９６n+1に設定される。
【０２３１】
また、ステップＳ２１８において、所定の期間、補正範囲は拡大されなかったと判定された場合、処理は、ステップＳ２１９に進められ、補正量制御部６５は、図２７又は図２８に示したように、フレームnの補正範囲Ｇ１を補正範囲Ｇ２に縮小する更新を行い、この補正範囲決定処理は終了される。この場合、フレームnの補正範囲９６nは、縮小前の補正範囲Ｇ１であり、次のフレームn+1の補正範囲９６n+1を決定する補正範囲決定処理のステップＳ１５１において、縮小後の補正範囲Ｇ２が、フレームn+1の補正範囲９６n+1に設定される。
【０２３２】
以上のように図２９の補正範囲決定処理が行われた後、補正範囲決定部６４は、図２９の補正範囲決定処理により得られたフレームnの補正範囲を、補正量制御部６５に供給して、処理は、図２１のステップＳ３５にリターンされる。
【０２３３】
図２９の補正範囲決定処理では、図２３の手振れ範囲推定処理により推定される手振れ範囲が補正範囲を超えないために、所定の期間、補正範囲が拡大されない場合、即ち、補正範囲よりも小さい範囲で手振れが生じている場合、手振れが生じている範囲に近づくように補正範囲を縮小することとしたので、より最適な補正範囲に決定することが可能である。
【０２３４】
なお、上記実施の形態では、図１の動きベクトル検出部３１における動きベクトルの検出方法として、ブロックマッチング法を用いることとしたが、勾配法を用いるようにしてもよいし、その他、加速度センサ又は角速度センサ等を用いて動きベクトルを検出することが可能である。
【０２３５】
また、上記実施の形態では、抽出枠ｅにより抽出された抽出画像を拡大したものを補正画像としたが、抽出画像を、そのまま補正画像とすることが可能である。この場合、抽出画像を拡大する場合と比較して、抽出画像を拡大する処理を省略することができるため、手振れを補正した補正画像を迅速に生成することが可能である。
【０２３６】
さらに、上記実施の形態では、フレーム0を基準として、撮影された順序で連続するフレームnを、手振れ補正処理の対象としたが、例えば、フレーム0を基準として、撮影された順序と逆順に連続するn番目のフレームを、フレームnとして、手振れ補正処理の対象とすることが可能である。
【０２３７】
なお、本発明を適用した画像処理装置としては、例えば、動画像を記憶する記憶部を有し、記憶部に記憶されている動画像に対して手振れ補正処理を行うパーソナルコンピュータや、動画像を撮影し、撮影した動画像に対して手振れ補正処理を行うビデオカメラ等を採用することが可能である。
【０２３８】
また、本発明を適用した画像処理装置として、ビデオカメラ等を採用した場合には、動画像を構成する各フレームが撮影される毎に、撮影された各フレームに対して手振れ補正処理を行うこととすれば、動画像に生じた手振れをリアルタイムに補正することが可能である。
【０２３９】
ところで、上述した図１の画像処理装置１が行う一連の処理は、専用のハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、いわゆる組み込み型のコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム格納媒体からインストールされる。
【０２４０】
図３０は、上述した一連の処理をプログラムにより実行するコンピュータの構成例を示すブロック図である。
【０２４１】
CPU（Central Processing Unit）２０１は、ROM（Read Only Memory）２０２、または記憶部２０８に記憶されているプログラムに従って各種の処理を実行する。RAM（Random Access Memory）２０３には、CPU２０１が実行するプログラムやデータなどが適宜記憶される。これらのCPU２０１、ROM２０２、およびRAM２０３は、バス２０４により相互に接続されている。
【０２４２】
CPU２０１にはまた、バス２０４を介して入出力インタフェース２０５が接続されている。入出力インタフェース２０５には、キーボード、マウス、マイクロホンなどよりなる入力部２０６、ディスプレイ、スピーカなどよりなる出力部２０７が接続されている。CPU２０１は、入力部２０６から入力される指令に対応して各種の処理を実行する。そして、CPU２０１は、処理の結果を出力部２０７に出力する。
【０２４３】
入出力インタフェース２０５に接続されている記憶部２０８は、例えばハードディスクからなり、CPU２０１が実行するプログラムや各種のデータを記憶する。通信部２０９は、インターネットやローカルエリアネットワークなどのネットワークを介して外部の装置と通信する。
【０２４４】
また、通信部２０９を介してプログラムを取得し、記憶部２０８に記憶してもよい。
【０２４５】
入出力インタフェース２０５に接続されているドライブ２１０は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア２１１が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記憶部２０８に転送され、記憶される。
【０２４６】
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム格納媒体は、図３０に示されるように、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む）、光磁気ディスク（ＭＤ（Mini-Disc）を含む）、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア２１１、または、プログラムが一時的もしくは永続的に格納されるROM２０２や、記憶部２０８を構成するハードディスクなどにより構成される。プログラム格納媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインタフェースである通信部２０９を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
【０２４７】
なお、本明細書において、プログラム格納媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０２４８】
また、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０２４９】
【図１】本実施の形態である画像処理装置の構成例を示すブロック図である。
【図２】動きベクトルを検出する検出方法を説明する図である。
【図３】手振れ補正処理の概要を説明する図である。
【図４】補正表示可能範囲を説明する図である。
【図５】図１の手振れ補正部の詳細な構成例を示すブロック図である。
【図６】補正量を生成する生成方法を説明する図である。
【図７】手振れ範囲を推定する推定方法を説明する図である。
【図８】意図的な構図移動操作の検出方法を説明する図である。
【図９】補正範囲を決定する決定方法を説明する第１の図である。
【図１０】補正範囲を決定する決定方法を説明する第２の図である。
【図１１】補正範囲を決定する決定方法を説明する第３の図である。
【図１２】補正範囲を決定する決定方法を説明する第４の図である。
【図１３】補正範囲を決定する決定方法を説明する第５の図である。
【図１４】実補正量を決定する決定方法を説明する第１の図である。
【図１５】実補正量を決定する決定方法を説明する第２の図である。
【図１６】実補正量を決定する決定方法を説明する第３の図である。
【図１７】補正画像を生成する生成方法を説明する図である。
【図１８】撮影者による手振れにより、補正量の終点が補正範囲を超えたとしても、補正画像における被写体の位置が殆どずれないことを説明する図である。
【図１９】パンニングした後の手振れ補正を説明する第１の図である。
【図２０】パンニングした後の手振れ補正を説明する第２の図である。
【図２１】手振れ補正処理を説明するフローチャートである。
【図２２】補正量生成処理を説明するフローチャートである
【図２３】手振れ範囲推定処理を説明するフローチャートである。
【図２４】パンチルト検出処理を説明するフローチャートである。
【図２５】補正範囲決定処理を説明するフローチャートである。
【図２６】補正量制御処理を説明するフローチャートである。
【図２７】補正範囲の第１の縮小方法を説明する図である。
【図２８】補正範囲の第２の縮小方法を説明する図である。
【図２９】他の補正範囲決定処理を説明するフローチャートである。
【図３０】コンピュータの構成例を示すブロック図である。
【符号の説明】
【０２５０】
１  画像処理装置，  ３１  動きベクトル検出部，  ３２  手振れ補正部，  ３３  制御部，  ３４  操作部，  ６１  補正量生成部，  ６２  手振れ範囲推定部，  ６３  パンチルト検出部，  ６４  補正範囲決定部，  ６５  補正量制御部，  ６６  補正画像生成部
【図１】
0004534172.tif 000002
【図２】
0004534172.tif 000003
【図３】
0004534172.tif 000004
【図４】
0004534172.tif 000005
【図５】
0004534172.tif 000006
【図６】
0004534172.tif 000007
【図７】
0004534172.tif 000008
【図８】
0004534172.tif 000009
【図９】
0004534172.tif 000010
【図１０】
0004534172.tif 000011
【図１１】
0004534172.tif 000012
【図１２】
0004534172.tif 000013
【図１３】
0004534172.tif 000014
【図１４】
0004534172.tif 000015
【図１５】
0004534172.tif 000016
【図１６】
0004534172.tif 000017
【図１７】
0004534172.tif 000018
【図１８】
0004534172.tif 000019
【図１９】
0004534172.tif 000020
【図２０】
0004534172.tif 000021
【図２１】
0004534172.tif 000022
【図２２】
0004534172.tif 000023
【図２３】
0004534172.tif 000024
【図２４】
0004534172.tif 000025
【図２５】
0004534172.tif 000026
【図２６】
0004534172.tif 000027
【図２７】
0004534172.tif 000028
【図２８】
0004534172.tif 000029
【図２９】
0004534172.tif 000030
【図３０】
0004534172.tif 000031