(57)【要約】【課題】  特殊画像の場合、たとえ検出された動きベクトルが真の動きベクトルと大きく異なっていたとしても有効な動きベクトルと判断されてしまう可能性が高い。【解決手段】  本発明による動きベクトル検出装置によれば、まず、第１動きベクトル検出部１２１によって、順次取得した一定量の画像についての前画像から現画像への第１動きベクトルが検出され、第２動きベクトル検出部１２２によって、順次取得した一定量の画像についての現画像から前画像への第２動きベクトルが検出される。そして、有効性判定部１２３によって、前記第１動きベクトルと前記第２動きベクトルとに基づき、前記一定量の画像についての動きベクトルの有効性が判定され、前記判定された動きベクトルの有効性に基づき、前記一定量の画像についての動きベクトルが決定される。【選択図】      図２
2006279413.tif 000002
【特許請求の範囲】
【請求項１】
動画像または時系列に連続する静止画像から、時系列順に一定量の画像毎に、一定量の画像を順次取得し、該取得した一定量の画像についての動きベクトルを検出する動きベクトル検出装置であって、
順次取得した一定量の画像についての前画像から現画像への第１動きベクトルを検出する第１動きベクトル検出部と、
順次取得した一定量の画像についての現画像から前画像への第２動きベクトルを検出する第２動きベクトル検出部と、
前記第１動きベクトルと前記第２動きベクトルとに基づき、前記一定量の画像についての動きベクトルの有効性を判定する有効性判定部と、
を備え、
前記判定された動きベクトルの有効性に基づき、前記一定量の画像についての動きベクトルを決定する、動きベクトル検出装置。
【請求項２】
請求項１に記載の動きベクトル検出装置であって、
前記有効性判定部は、前記第１動きベクトルと前記第２動きベクトルとの和の絶対値が所定の閾値ε（εは０（ゼロ）以上の実数）以下の場合に、有効領域における動きベクトルであると判定し、前記一定量の画像についての動きベクトルを決定する際の基礎とする、動きベクトル検出装置。
【請求項３】
請求項２に記載の動きベクトル検出装置であって、
前記所定の閾値εが固定値である、動きベクトル検出装置。
【請求項４】
請求項２に記載の動きベクトル検出装置であって、
前記所定の閾値εが、第１動きベクトルまたは第２動きベクトルの大きさに基づき変化する値である、動きベクトル検出装置。
【請求項５】
請求項２乃至４のいずれか一項に記載の動きベクトル検出装置であって、
前記一定量の画像に複数の動き検出領域を設け、各動き検出領域毎に、前記第１動きベクトル検出部によって前記第１動きベクトルを検出するとともに、前記第２動きベクトル検出部によって第２動きベクトルを検出し、
各動き検出領域毎に、前記有効性判定部により動きベクトルの有効性を判定し、
有効領域における動きベクトルであると判定された動き検出領域における第１動きベクトルと、第２動きベクトルと大きさが同じで方向が逆の動きベクトルとの平均を、当該有効領域における動きベクトルとし、
有効領域における動きベクトルの平均を、前記一定量の画像についての動きベクトルとする、動きベクトル検出装置。
【請求項６】
請求項２乃至４のいずれか一項に記載の動きベクトル検出装置であって、
前記一定量の画像に複数の動き検出領域を設け、各動き検出領域毎に、前記第１動きベクトル検出部によって前記第１動きベクトルを検出するとともに、前記第２動きベクトル検出部によって第２動きベクトルを検出し、
各動き検出領域毎に、前記有効性判定部により動きベクトルの有効性を判定し、
有効領域における動きベクトルであると判定された動き検出領域の数が所定の閾値よりも小さい場合、前記一定量の画像よりも時系列的に一つ前の一定量の画像についての動きベクトルに所定の係数Ｋ（Ｋは０以上の実数）かけたものを、前記一定量の画像についての動きベクトルとする、動きベクトル検出装置。
【請求項７】
請求項１乃至４のいずれか一項に記載の動き検出装置であって、
前記有効性判定部が動きベクトルの有効性を判定できない場合、前記一定量の画像よりも時系列的に前の、幾つかの一定量の画像についての動きベクトルから予測される動きベクトルを、前記一定量の画像についての動きベクトルとする、動きベクトル検出装置。
【請求項８】
請求項１乃至４のいずれか一項に記載の動き検出装置であって、
前記有効性判定部が動きベクトルの有効性を判定できない場合、前記一定量の画像についての動きベクトルを０（ゼロ）とする、動きベクトル検出装置。
【請求項９】
請求項２乃至４のいずれか一項に記載の動きベクトル検出装置であって、
前記一定量の画像に複数の動き検出領域を設け、各動き検出領域毎に、前記第１動きベクトル検出部によって前記第１動きベクトルを検出するとともに、前記第２動きベクトル検出部によって第２動きベクトルを検出し、
各動き検出領域毎に、前記有効性判定部により動きベクトルの有効性を判定し、
有効領域における動きベクトルであると判定された動き検出領域における第１動きベクトルと、第２動きベクトルと大きさが同じで方向が逆の動きベクトルとの平均を、当該有効領域における動きベクトルとし、
さらに、有効領域における動きベクトルの平均値Ｖaveを求め、前記有効領域の動きベクトルとＶaveとの差分が所定の閾値以下である有効領域の動きベクトルを選別し、当該選別された有効領域の動きベクトルの平均値を、前記一定量の画像についての動きベクトルとする、動きベクトル検出装置。
【請求項１０】
請求項２乃至４のいずれか一項に記載の動きベクトル検出装置であって、
前記一定量の画像に複数の動き検出領域を設け、各動き検出領域毎に、前記第１動きベクトル検出部によって前記第１動きベクトルを検出するとともに、前記第２動きベクトル検出部によって第２動きベクトルを検出し、
各動き検出領域毎に、前記有効性判定部により動きベクトルの有効性を判定し、
有効領域における動きベクトルであると判定された動き検出領域における第１動きベクトルと、第２動きベクトルと大きさが同じで方向が逆の動きベクトルとの平均を、当該有効領域における動きベクトルとし、
さらに、有効領域の動きベクトルの発散度を求め、前記発散度が所定の閾値以上である場合、前記一定量の画像よりも時系列的に一つ前の一定量の画像についての動きベクトルに所定の係数Ｋ（Ｋは０以上の実数）かけたものを、前記一定量の画像についての動きベクトルとする、動きベクトル検出装置。
【請求項１１】
動画像または時系列に連続する静止画像から、時系列順に一定量の画像毎に、一定量の画像を順次取得し、該取得した一定量の画像についての動きベクトルを検出する画像表示装置であって、
順次取得した一定量の画像についての前画像から現画像への第１動きベクトルを検出する第１動きベクトル検出部と、
順次取得した一定量の画像についての現画像から前画像への第２動きベクトルを検出する第２動きベクトル検出部と、
前記第１動きベクトルと前記第２動きベクトルとに基づき、前記一定量の画像についての動きベクトルの有効性を判定する有効性判定部と、
を備え、
前記判定された動きベクトルの有効性に基づき、前記一定量の画像についての動きベクトルを決定する、画像表示装置。
【請求項１２】
動画像または時系列に連続する静止画像から、時系列順に一定量の画像毎に、一定量の画像を順次取得し、該取得した一定量の画像についての動きベクトルを検出する画像撮像装置であって、
順次取得した一定量の画像についての前画像から現画像への第１動きベクトルを検出する第１動きベクトル検出部と、
順次取得した一定量の画像についての現画像から前画像への第２動きベクトルを検出する第２動きベクトル検出部と、
前記第１動きベクトルと前記第２動きベクトルとに基づき、前記一定量の画像についての動きベクトルの有効性を判定する有効性判定部と、
を備え、
前記判定された動きベクトルの有効性に基づき、前記一定量の画像についての動きベクトルを決定する、画像撮像装置。
【請求項１３】
動画像または時系列に連続する静止画像から、時系列順に一定量の画像毎に、一定量の画像を順次取得し、該取得した一定量の画像についての動きベクトルを検出する動きベクトル検出方法であって、
順次取得した一定量の画像についての前画像から現画像への第１動きベクトルを検出する第１動きベクトル検出工程と、
順次取得した一定量の画像についての現画像から前画像への第２動きベクトルを検出する第２動きベクトル検出工程と、
前記第１動きベクトルと前記第２動きベクトルとに基づき、前記一定量の画像についての動きベクトルの有効性を判定する有効性判定工程と、
を備え、
前記判定された動きベクトルの有効性に基づき、前記一定量の画像についての動きベクトルを決定する、動きベクトル検出方法。
【請求項１４】
動画像または時系列に連続する静止画像から、時系列順に一定量の画像毎に、一定量の画像を順次取得し、該取得した一定量の画像についての動きベクトルを検出する動きベクトル検出処理をコンピュータに実行させるためのプログラムであって、
順次取得した一定量の画像についての前画像から現画像への第１動きベクトルを検出する第１動きベクトル検出処理と、
順次取得した一定量の画像についての現画像から前画像への第２動きベクトルを検出する第２動きベクトル検出処理と、
前記第１動きベクトルと前記第２動きベクトルとに基づき、前記一定量の画像についての動きベクトルの有効性を判定する有効性判定処理と、
を備え、
前記判定された動きベクトルの有効性に基づき、前記一定量の画像についての動きベクトルを決定する、プログラム。
【請求項１５】
動画像または時系列に連続する静止画像から、時系列順に一定量の画像毎に、一定量の画像を順次取得し、該取得した一定量の画像についての動きベクトルを検出する動きベクトル検出処理をコンピュータに実行させるためのプログラムを記録したコンピュータによって読取可能な記録媒体であって、
順次取得した一定量の画像についての前画像から現画像への第１動きベクトルを検出する第１動きベクトル検出処理と、
順次取得した一定量の画像についての現画像から前画像への第２動きベクトルを検出する第２動きベクトル検出処理と、
前記第１動きベクトルと前記第２動きベクトルとに基づき、前記一定量の画像についての動きベクトルの有効性を判定する有効性判定処理と、
を備え、
前記判定された動きベクトルの有効性に基づき、前記一定量の画像についての動きベクトルを決定する、プログラムを記録したコンピュータによって読取可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像または時系列に連続する静止画像からフレーム画像を取得し、取得したフレーム画像から動きベクトルを検出する動きベクトル検出技術に関する。
【背景技術】
【０００２】
近年ビデオカメラやデジタルカメラ、さらに画像撮影機能を有する携帯電話などの撮影機器を用いて、運動会など所望する画像を動画像として撮影することが行われている。その際、撮影装置を手持ちで撮影したとき、手ぶれによって撮影画像に画像ぶれが生じてしまう。このため、従来より、撮影時の画像ぶれを補正する手ぶれ補正技術が提案されている（例えば、特許文献１）。
【０００３】
特許文献１に開示されている手ぶれ補正装置では、前フレームの複数の代表点とそれら代表点に対応する現フレームの動き検出領域において前記代表点と前記動き検出領域内全ての画素との相関値を求め、各動き検出領域内の画素位置に対応する相関値の累積加算テーブルにおける累積値が最小となる動き検出領域内での画素位置から前記前フレームと前記現フレームとの間の動きベクトルを検出している。そして、各動き検出領域が有効か無効かを判断するために種々の閾値を設定し、各動き検出領域毎に相関値に基づく値が所定の閾値条件を満たすか否かによって、動き検出領域の有効・無効を判断している。
【０００４】
【特許文献１】特許第２９４４３６９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１に開示されている手ぶれ補正装置では、相関値に基づく値のみから動き検出領域の有効・無効を判断しているので、相関値に基づく値が所定の閾値条件を満たしていればその動き検出領域は有効領域と判定される。このため、高コントラストなストライプ画像等の特殊画像の場合、たとえ検出された動きベクトルが真の動きベクトルと大きく異なっていたとしても有効な動きベクトルと判断されてしまう可能性が高いという課題がある。
【０００６】
本発明は、このような課題を解決するためになされたもので、動きベクトルの検出精度をさらに向上させることのできる動きベクトル検出装置、画像表示装置、画像撮像装置、動きベクトル検出方法、プログラムおよび記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成する本発明の一態様による動きベクトル検出装置は、動画像または時系列に連続する静止画像から、時系列順に一定量の画像毎に、一定量の画像を順次取得し、該取得した一定量の画像についての動きベクトルを検出する動きベクトル検出装置であって、順次取得した一定量の画像についての前画像から現画像への第１動きベクトルを検出する第１動きベクトル検出部と、順次取得した一定量の画像についての現画像から前画像への第２動きベクトルを検出する第２動きベクトル検出部と、前記第１動きベクトルと前記第２動きベクトルとに基づき、前記一定量の画像についての動きベクトルの有効性を判定する有効性判定部と、を備え、前記判定された動きベクトルの有効性に基づき、前記一定量の画像についての動きベクトルを決定するように構成される。
【０００８】
上記のように構成された動きベクトル検出装置によれば、動画像または時系列に連続する静止画像から、時系列順に一定量の画像毎に、一定量の画像を順次取得し、該取得した一定量の画像についての動きベクトルを検出する。まず、第１動きベクトル検出部によって、順次取得した一定量の画像についての前画像から現画像への第１動きベクトルが検出され、第２動きベクトル検出部によって、順次取得した一定量の画像についての現画像から前画像への第２動きベクトルが検出される。そして、有効性判定部によって、前記第１動きベクトルと前記第２動きベクトルとに基づき、前記一定量の画像についての動きベクトルの有効性が判定され、前記判定された動きベクトルの有効性に基づき、前記一定量の画像についての動きベクトルが決定される。
【０００９】
ここで、「一定量の画像」は、実施形態における「フレーム画像」に対応しているが、フレーム画像には限定されない。
【００１０】
また、「前画像」が、実施形態における「前フレーム画像」に対応し、「現画像」が、実施形態における「現フレーム画像」に対応している。
【００１１】
そして、「第１動きベクトル」が、実施形態における「動きベクトルＶ０ｊ（ｎ）」に対応し、「第２動きベクトル」が、実施形態における「動きベクトルＶ０ｊ（ｎ）−１」に対応する。
【００１２】
さらに、「第１動きベクトル検出部」が、実施形態における「Ｐ→Ｎ検出部１２１」に対応し、「第２動きベクトル検出部」が、実施形態における「Ｎ→Ｐ検出部１２２」に対応する。
【００１３】
上記本発明による動きベクトル検出装置によれば、前記有効性判定部は、前記第１動きベクトルと前記第２動きベクトルとの和の絶対値が所定の閾値ε（εは０（ゼロ）以上の実数）以下の場合に、有効領域における動きベクトルであると判定し、前記一定量の画像についての動きベクトルを決定する際の基礎とする、ことが好ましい。
【００１４】
上記本発明による動きベクトル検出装置によれば、前記所定の閾値εが固定値である、ことが好ましい。
【００１５】
上記本発明による動きベクトル検出装置によれば、前記所定の閾値εが、第１動きベクトルまたは第２動きベクトルの大きさに基づき変化する値である、ことが好ましい。
【００１６】
上記本発明による動きベクトル検出装置によれば、前記一定量の画像に複数の動き検出領域を設け、各動き検出領域毎に、前記第１動きベクトル検出部によって前記第１動きベクトルを検出するとともに、前記第２動きベクトル検出部によって第２動きベクトルを検出し、各動き検出領域毎に、前記有効性判定部により動きベクトルの有効性を判定し、有効領域における動きベクトルであると判定された動き検出領域における第１動きベクトルと、第２動きベクトルと大きさが同じで方向が逆の動きベクトルとの平均を、当該有効領域における動きベクトルとし、有効領域における動きベクトルの平均を、前記一定量の画像についての動きベクトルとする、ことが好ましい。
【００１７】
上記本発明による動きベクトル検出装置によれば、前記一定量の画像に複数の動き検出領域を設け、各動き検出領域毎に、前記第１動きベクトル検出部によって前記第１動きベクトルを検出するとともに、前記第２動きベクトル検出部によって第２動きベクトルを検出し、各動き検出領域毎に、前記有効性判定部により動きベクトルの有効性を判定し、有効領域における動きベクトルであると判定された動き検出領域の数が所定の閾値よりも小さい場合、前記一定量の画像よりも時系列的に一つ前の一定量の画像についての動きベクトルに所定の係数Ｋ（Ｋは０以上の実数）かけたものを、前記一定量の画像についての動きベクトルとする、ことが好ましい。
【００１８】
上記本発明による動きベクトル検出装置によれば、前記有効性判定部が動きベクトルの有効性を判定できない場合、前記一定量の画像よりも時系列的に前の、幾つかの一定量の画像についての動きベクトルから予測される動きベクトルを、前記一定量の画像についての動きベクトルとする、ことが好ましい。
【００１９】
上記本発明による動きベクトル検出装置によれば、前記有効性判定部が動きベクトルの有効性を判定できない場合、前記一定量の画像についての動きベクトルを０（ゼロ）とする、ことが好ましい。
【００２０】
上記本発明による動きベクトル検出装置によれば、前記一定量の画像に複数の動き検出領域を設け、各動き検出領域毎に、前記第１動きベクトル検出部によって前記第１動きベクトルを検出するとともに、前記第２動きベクトル検出部によって第２動きベクトルを検出し、各動き検出領域毎に、前記有効性判定部により動きベクトルの有効性を判定し、有効領域における動きベクトルであると判定された動き検出領域における第１動きベクトルと、第２動きベクトルと大きさが同じで方向が逆の動きベクトルとの平均を、当該有効領域における動きベクトルとし、さらに、有効領域における動きベクトルの平均値Ｖaveを求め、前記有効領域の動きベクトルとＶaveとの差分が所定の閾値以下である有効領域の動きベクトルを選別し、当該選別された有効領域の動きベクトルの平均値を、前記一定量の画像についての動きベクトルとする、ことが好ましい。
【００２１】
上記本発明による動きベクトル検出装置によれば、前記一定量の画像に複数の動き検出領域を設け、各動き検出領域毎に、前記第１動きベクトル検出部によって前記第１動きベクトルを検出するとともに、前記第２動きベクトル検出部によって第２動きベクトルを検出し、各動き検出領域毎に、前記有効性判定部により動きベクトルの有効性を判定し、有効領域における動きベクトルであると判定された動き検出領域における第１動きベクトルと、第２動きベクトルと大きさが同じで方向が逆の動きベクトルとの平均を、当該有効領域における動きベクトルとし、さらに、有効領域の動きベクトルの発散度を求め、前記発散度が所定の閾値以上である場合、前記一定量の画像よりも時系列的に一つ前の一定量の画像についての動きベクトルに所定の係数Ｋ（Ｋは０以上の実数）かけたものを、前記一定量の画像についての動きベクトルとする、ことが好ましい。
【００２２】
本発明の他の態様による画像表示装置は、動画像または時系列に連続する静止画像から、時系列順に一定量の画像毎に、一定量の画像を順次取得し、該取得した一定量の画像についての動きベクトルを検出する画像表示装置であって、順次取得した一定量の画像についての前画像から現画像への第１動きベクトルを検出する第１動きベクトル検出部と、順次取得した一定量の画像についての現画像から前画像への第２動きベクトルを検出する第２動きベクトル検出部と、前記第１動きベクトルと前記第２動きベクトルとに基づき、前記一定量の画像についての動きベクトルの有効性を判定する有効性判定部と、を備え、前記判定された動きベクトルの有効性に基づき、前記一定量の画像についての動きベクトルを決定する、ように構成される。
【００２３】
本発明のさらに他の態様による画像撮像装置は、動画像または時系列に連続する静止画像から、時系列順に一定量の画像毎に、一定量の画像を順次取得し、該取得した一定量の画像についての動きベクトルを検出する画像撮像装置であって、順次取得した一定量の画像についての前画像から現画像への第１動きベクトルを検出する第１動きベクトル検出部と、順次取得した一定量の画像についての現画像から前画像への第２動きベクトルを検出する第２動きベクトル検出部と、前記第１動きベクトルと前記第２動きベクトルとに基づき、前記一定量の画像についての動きベクトルの有効性を判定する有効性判定部と、を備え、前記判定された動きベクトルの有効性に基づき、前記一定量の画像についての動きベクトルを決定する、ように構成される。
【００２４】
本発明のさらに他の態様による動きベクトル検出方法は、動画像または時系列に連続する静止画像から、時系列順に一定量の画像毎に、一定量の画像を順次取得し、該取得した一定量の画像についての動きベクトルを検出する動きベクトル検出方法であって、順次取得した一定量の画像についての前画像から現画像への第１動きベクトルを検出する第１動きベクトル検出工程と、順次取得した一定量の画像についての現画像から前画像への第２動きベクトルを検出する第２動きベクトル検出工程と、前記第１動きベクトルと前記第２動きベクトルとに基づき、前記一定量の画像についての動きベクトルの有効性を判定する有効性判定工程と、を備え、前記判定された動きベクトルの有効性に基づき、前記一定量の画像についての動きベクトルを決定する、ように構成される。
【００２５】
本発明のさらに他の態様によるプログラムは、動画像または時系列に連続する静止画像から、時系列順に一定量の画像毎に、一定量の画像を順次取得し、該取得した一定量の画像についての動きベクトルを検出する動きベクトル検出処理をコンピュータに実行させるためのプログラムであって、順次取得した一定量の画像についての前画像から現画像への第１動きベクトルを検出する第１動きベクトル検出処理と、順次取得した一定量の画像についての現画像から前画像への第２動きベクトルを検出する第２動きベクトル検出処理と、前記第１動きベクトルと前記第２動きベクトルとに基づき、前記一定量の画像についての動きベクトルの有効性を判定する有効性判定処理と、を備え、前記判定された動きベクトルの有効性に基づき、前記一定量の画像についての動きベクトルを決定する、プログラムである。
【００２６】
本発明のさらに他の態様による記録媒体は、動画像または時系列に連続する静止画像から、時系列順に一定量の画像毎に、一定量の画像を順次取得し、該取得した一定量の画像についての動きベクトルを検出する動きベクトル検出処理をコンピュータに実行させるためのプログラムを記録したコンピュータによって読取可能な記録媒体であって、順次取得した一定量の画像についての前画像から現画像への第１動きベクトルを検出する第１動きベクトル検出処理と、順次取得した一定量の画像についての現画像から前画像への第２動きベクトルを検出する第２動きベクトル検出処理と、前記第１動きベクトルと前記第２動きベクトルとに基づき、前記一定量の画像についての動きベクトルの有効性を判定する有効性判定処理と、を備え、前記判定された動きベクトルの有効性に基づき、前記一定量の画像についての動きベクトルを決定する、プログラムを記録したコンピュータによって読取可能な記録媒体である。
【発明を実施するための最良の形態】
【００２７】
次に、本発明の実施の形態を説明する。図１は本発明の一実施形態としての画像処理装置の概略構成を示す説明図である。この画像処理装置は汎用のコンピュータであり、入力インターフェイス（Ｉ／Ｆ）１０１、ＣＰＵ１０３、ＲＡＭ１０２、ＲＯＭ１０４、ハードディスク１０５および出力インターフェイス（Ｉ／Ｆ）１０６とを備え、これらはバス１０７を介して互いに接続されている。入力Ｉ／Ｆ１０１には、動画像を入力する装置としてのデジタルビデオカメラ２００（画像撮像装置）およびＤＶＤプレーヤ２１０が接続され、出力Ｉ／Ｆ１０６には動画像を出力する装置（画像表示装置）としてのビデオプロジェクタ３００およびディスプレイ３１０が接続されている。その他、必要に応じて、動画像を記憶した記憶媒体からデータを読み出すことが可能な駆動装置や、動画像を出力することが可能な画像表示装置をそれぞれ接続することもできる。なお、動画像には時系列に連続する静止画像も含まれる。
【００２８】
また、上記画像撮像装置および画像表示装置が、それぞれ本発明による画像処理装置を備えるように構成することもできる。
【００２９】
入力Ｉ／Ｆ１０１は、所定の画素数とＲＧＢ形式など所定の画素値を有する動画像からフレーム画像を取得し、コンピュータ１００で処理できるフレーム画像データに変換する。本実施形態では、フレーム画像を構成する所定枚数のフィールド画像から、フレーム画像データを取得するものとする。フレーム画像は、記録方式に応じて通常複数の所定枚数のフィールド画像によって構成されている。例えば、ＮＴＳＣ方式で記録された動画像の場合は、インターレース方式であり、毎秒６０枚のフィールド画像によって毎秒３０枚のフレーム画像が構成されている。従って、入力Ｉ／Ｆ１０１は、２つのフィールド画像の画素値を用いて１つのフレーム画像を取得する。もとより、１つのフィールド画像が１つのフレーム画像を構成しているプレグレッシブ方式（ノンインターレース方式）のような場合は、１つのフィールド画像を用いて１つのフレーム画像を取得することになる。
【００３０】
変換されたフレーム画像データは、ＲＡＭ１０２又はハードディスク１０５に格納される。ＣＰＵ１０３は格納されたフレーム画像データに対して所定の画像処理を実行し、補正フレーム画像データとして再びＲＡＭ１０２又はハードディスク１０５に格納する。補正フレーム画像データを生成するまでに行われる所定の画像処理に際し、必要に応じてＲＡＭ１０２やハードディスク１０５が画像処理データのワーキングメモリとして用いられる。そして、格納した補正フレーム画像データを、出力Ｉ／Ｆ１０６を介して所定の画像データに変換し、ビデオプロジェクタ３００などに送出する。
【００３１】
所定の画像処理を記録したアプリケーションプログラムは、予めハードディスク１０５やＲＯＭ１０４に格納されていることとしてもよいし、例えばＣＤ−ＲＯＭなどのコンピュータが読み取り可能な記録媒体によって外部から供給され、図示しないＤＶＤ−Ｒ／ＲＷドライブを介してハードディスク１０５に記憶することによって格納されるものとしてもよい。もとより、インターネットなどのネットワーク手段を介して、アプリケーションプログラムを供給するサーバー等にアクセスし、データをダウンロードすることによってハードディスク１０５に格納されるものとしてもよい。
【００３２】
ＣＰＵ１０３は、バス１０７を介してハードディスク１０５またはＲＯＭ１０４に格納されたアプリケーションプログラムを読み出し、この読み出したアプリケーションプログラムを所定のオペレーティングシステムのもとで実行することによって、画像処理装置として機能する。図２に、本発明の一実施形態としての画像処理装置の機能ブロック図を示す。図２に示すように、このアプリケーションプログラムが実行されることにより、ＣＰＵ１０３は、フレーム画像取得部１１０、動きベクトル検出部１２０、補正位置算出部１３０、補正フレーム画像生成部１４０および画像出力部１５０として機能する。
【００３３】
各部はそれぞれ以下の処理を司る。フレーム画像取得部１１０は、コンピュータ１００に入力した動画像から時系列順にフレーム画像を取得してフレームメモリ１１５に格納する。フレームメモリ１１５は、少なくとも１フレーム分の画像データを格納する。動きベクトル算出部１２０は、取得されたフレーム画像の動きベクトルを求めて、メモリ１２５に格納する。補正位置算出部１３０は、動きベクトルなどを用いて、フレーム画像から所定の画像を切り出すための画像位置を補正位置ベクトルとして算出する。補正フレーム画像生成部１４０は、算出された補正位置ベクトルなどに基づいて補正フレーム画像を生成する。画像出力部１５０は、生成された補正フレーム画像を所定の画像データに変換して出力する。
【００３４】
前記動きベクトル算出部１２０は、Ｐ→Ｎ検出部１２１と、Ｎ→Ｐ検出部１２２と、有効性判定部１２３と、サンプリングデータ生成部１２４と、メモリ１２５と、動きベクトル決定部１２６と、を備える。
【００３５】
Ｐ→Ｎ検出部１２１は、前フレーム画像から取得されたサンプリングポイントデータ(代表点データ)Rとこれらに対応する現フレーム画像のサーチエリアデータ(動き検出領域データ)とから、代表点マッチング法により各動きベクトル検出領域ｊにおける前フレーム画像Pから現フレーム画像Nへの動きベクトルＶ０ｊ（ｎ）を算出する。
【００３６】
Ｎ→Ｐ検出部１２２は、前フレーム画像から取得されたサーチエリアデータ(動き検出領域データ)Sとこれらに対応する現フレーム画像のサンプリングポイントデータ(代表点データ)から、代表点マッチング法により各動きベクトル検出領域ｊにおける現フレーム画像Nから前フレーム画像Pへの動きベクトルＶ０ｊ（ｎ）−１を算出する。
【００３７】
有効性判定部１２３は、各動きベクトル検出領域の有効性を判定する。
【００３８】
サンプリングデータ生成部１２４は、フレームメモリのデータからサンプリングポイントデータ(代表点データ)R、サーチエリアデータ(動き検出領域データ)Sを作成する。サンプリングポイントデータ(代表点データ)RはP→Nの動きベクトルＶ０ｊ（ｎ）を算出する際に使用するデータであり、サーチエリアデータ(動き検出領域データ)SはN→Pの動きベクトルＶ０ｊ（ｎ）−１を算出する際に使用するデータである。
【００３９】
メモリ１２５は、動きベクトル決定部によって求められた画面全体の動きベクトルを保存する。
【００４０】
動きベクトル決定部１２６は、有効性判定部の結果を元に画面全体の動きベクトルを決定する。
【００４１】
次に、本実施形態の画像処理装置について各部が行う処理を、図３の処理フローチャートにより説明する。図３に示した処理が開始されると、まずステップＳ１０において、フレーム画像取得部１１０は、入力される動画像から時系列順に、フレーム画像Ｆ（ｎ）をコンピュータ１００に取り込む処理を行う。なお、本実施形態における以下の画像処理装置の説明において、（ｎ）は時系列順でｎ番目であることを意味する。
【００４２】
本実施形態では、動画像の入力をトリガーにして、自動的にフレーム画像を時系列順で順次取り込むこととする。もとより、取り込むフレーム画像を指定することとしてもよい。フレーム画像の指定方法は、動画像からフレーム画像を取得してコンピュータ１００に取り込む際、通常付加されるフレーム画像の識別番号を指定するようにしてもよい。あるいは、ユーザーがビデオカメラに備えられたモニターなどのディスプレイ（図示せず）に表示されるフレーム画像を見ながら画像を直接指定することとしてもよい。
【００４３】
次に、ステップＳ２０では、コンピュータ１００に取り込むことによって取得したフレーム画像Ｆ（ｎ）が存在するか否かを判定する。動画像から取得したフレーム画像Ｆ（ｎ）が存在すれば（ＹＥＳ）次のステップに進み、存在しなければ（ＮＯ）画像処理装置における処理を終了する。
【００４４】
ステップＳ３０において、動きベクトル検出部１２０は、取得したフレーム画像Ｆ（ｎ）の動きベクトルＶ０（ｎ）の算出処理を行う。時系列順ｎ−１番目のフレーム画像Ｆ（ｎ−１）に対してフレーム画像Ｆ（ｎ）の相対位置を算出し、その相対位置にフレーム画像Ｆ（ｎ）を配置する。そして、フレーム画像Ｆ（ｎ−１）の画面位置に対するフレーム画像Ｆ（ｎ）の画面位置のずれ量を、Ｘ，Ｙ方向のそれぞれの画素数として算出する。このＸ方向の画素数をＸ成分、Ｙ方向の画素数をＹ成分とするベクトルによって表したものが、フレーム画像Ｆ（ｎ）の動きベクトルＶ０（ｎ）となる。算出した動きベクトルＶ０（ｎ）のデータＶ０（ｎ）は、ＣＰＵ１０３によってＲＡＭ１０２などに格納される。
【００４５】
ここで、図４を参照して、本発明によるフレーム画像Ｆ（ｎ）の動きベクトルＶ０（ｎ）の算出処理を説明する。
【００４６】
当該実施形態では、１つのフレーム画像内にｍ個（ｍは自然数）の動き検出領域を設けたときの動きベクトル検出処理について説明する。当該動きベクトル検出処理では、検出された動きベクトルの精度を高めるため、各動き検出領域ｊにおいて現在のフレーム画像（以下、単に「現フレーム画像」と称する）より時系列順で一つ前のフレーム画像（以下、単に「前フレーム画像」と称する）Ｆ（ｎ−１）から現在のフレーム画像Ｆ（ｎ）への動きベクトルＶ０ｊ（ｎ）と、現フレーム画像Ｆ（ｎ）から前フレーム画像Ｆ（ｎ−１）への動きベクトルＶ０ｊ（ｎ）-1とを検出する。そして、各動き検出領域ｊにおいて求められたＶ０ｊ（ｎ）とＶ０ｊ（ｎ）-1との和の絶対値が閾値以下であるか否かを求め、ｍ個の各動き検出領域における動きベクトルの信頼性を判断する。そして、当該信頼性の結果に基づきフレーム画像全体の動きベクトルを決定する。
【００４７】
図４に示すように、まず、動き検出領域ｊが1に初期設定される（Ｓ３０２）。ここで、ｊは、1≦ｊ≦ｍの自然数であり、ｍ個の動き検出領域の中から所定の動き検出領域を特定するための変数である。
【００４８】
次に、フレーム画像Ｆ（ｎ）について、動き検出領域ｊにおける動きベクトルＶ０ｊ（ｎ）、Ｖ０ｊ（ｎ）‐1を求める（Ｓ３０４）。なお、動きベクトルＶ０ｊ（ｎ）はＰ→Ｎ検出部１２１によって求められ、動きベクトルＶ０ｊ（ｎ）‐1はＮ→Ｐ検出部１２２によって求められる。また、動きベクトルは、いわゆる代表点マッチング法によって求めることができる（例えば、特開昭６１−２０１５８１参照）。
【００４９】
ここで、図５を参照して、動きベクトルの求め方を簡単に説明する。図５において、Ｎｋは、現フレーム画像におけるサンプリングポイントを示し、Ｐｋは、Ｎｋに対応する前フレーム画像におけるサンプリングポイントを示している。図５(ａ)に、前フレーム画像におけるサンプリングポイントＰｋと、現フレーム画像におけるサンプリングポイントＮｋとの位置関係を示す。動きベクトルＶ０ｊ（ｎ）はサンプリングポイントＰｋからサンプリングポイントＮｋへの移動量（ｄｘ，ｄｙ）によって求められる。また、動きベクトルＶ０ｊ（ｎ）-1はサンプリングポイントＮｋからサンプリングポイントＰｋへの移動量によって求められる。
【００５０】
また、図５(ｂ)に、ある動き検出領域ＳｋにおけるサンプリングポイントＰｋとサンプリングポイントＮｋとの位置関係を示す。当該実施形態においては、説明を簡単にするため一例として、サンリングポイントＮｋは動き検出領域Ｓｋの中心に位置するものとし、その位置を（０，０）とする。そして、フレーム画像に対して左右方向をｘ座標とし、上下方向をｙ座標として、所定画素の位置を（ｘ，ｙ）で表す。また、フレーム画像に対して右方向をｘ座標の正の方向として、上方向をｙ座標の正の方向と定義する。そして、Ｓｋに含まれる各画素（ｘ，ｙ）毎に、Ｖ（Ｐ→Ｎ）＝|ＹＮｋ（ｘ，ｙ）−ＹＰｋ|を求め、Ｖ（Ｐ→Ｎ）が最小となる画素（ｘ，ｙ）を求める。Ｖ（Ｐ→Ｎ）が最小となる（ｘ，ｙ）が、動きベクトルＶ０ｊ（ｎ）となる。ここで、ＹＮｋ（ｘ，ｙ）は、サンプリングポイントＮｋ（０，０）からみて（ｘ，ｙ）の位置にある現フレーム画像における画素の輝度値であり、ＹＰｋは、サンプリングポイントＰｋの輝度値である。
【００５１】
図１７を用いて、動きベクトルＶ０ｊ（ｎ）の求め方をさらに具体的に説明する。図１７（ａ）は、現フレーム画像のある動き検出領域における各画素（ｘ，ｙ）の輝度値を表し、中心の画素（座標（０，０））がサンプリングポイントＮｋである。また、図１７（ｃ）は、図１７（ａ）に対応する前フレーム画像の動き検出領域における各画素（ｘ，ｙ）の輝度値を表し、中心の画素（座標（０，０））がサンプリングポイントＰｋである。そして、現フレーム画像の動き検出領域に含まれる画素（ｘ，ｙ）毎に、Ｖ（Ｐ→Ｎ）＝|ＹＮｋ（ｘ，ｙ）−ＹＰｋ|を求めると、図１７（ｂ）のようになる。よって、Ｖ（Ｐ→Ｎ）が最小（Ｖ（Ｐ→Ｎ）＝１）となる画素（−２，０）が求められ、Ｖ（Ｐ→Ｎ）が最小となる（−２，０）が、動きベクトルＶ０ｊ（ｎ）となる。
【００５２】
動きベクトルＶ０ｊ（ｎ）-1についても，同様に求められる。すなわち、前フレーム画像の動き検出領域に含まれる画素（ｘ，ｙ）毎に、Ｖ（Ｎ→Ｐ）＝|ＹＰｋ（ｘ，ｙ）−ＹＮｋ|を求めると、図１７（ｄ）のようになる。ここで、ＹＰｋ（ｘ，ｙ）は、サンプリングポイントＰｋ（０，０）からみて（ｘ，ｙ）の位置にある前フレーム画像における画素の輝度値であり、ＹＮｋは、サンプリングポイントＮｋの輝度値である。図１７（ｄ）より、Ｖ（Ｎ→Ｐ）が最小（Ｖ（Ｎ→Ｐ）＝２）となる画素（２，０）が求められる。Ｖ（Ｎ→Ｐ）が最小となる（２，０）が、動きベクトルＶ０ｊ（ｎ）−１となる。
【００５３】
次に、図４のＳ３０６に戻り、有効性判定部１２３によって、|Ｖ０ｊ（ｎ）+Ｖ０ｊ（ｎ）‐1|≦ε（閾値）を満たすか否かが判定される。すなわち、|Ｖ０ｊ（ｎ）+Ｖ０ｊ（ｎ）‐1|が閾値（ε）以下か否かを判定して、各動きベクトル検出領域ｊの有効性を判定する。ここで、εの大きさは、0などの固定値としても、|Ｖ０ｊ（ｎ）|または|Ｖ０ｊ（ｎ）‐1|の10％の値など、Ｖ０ｊ（ｎ）またはＶ０ｊ（ｎ）‐1の大きさに基づき変化する値でも良い。ただし、εは|Ｖ０ｊ（ｎ）|または|Ｖ０ｊ（ｎ）‐1|の大きさに対してあまり大きな値を取らない方が望ましい。なお、最小値がいくつも存在する等して、Ｓ３０４において動きベクトルが検出できない場合、S３０６の条件を満たさないもとして扱う。
【００５４】
そして、|Ｖ０ｊ（ｎ）+Ｖ０ｊ（ｎ）‐1|≦εの場合（Ｓ３０６、Ｙｅｓ）には、有効性判定部１２３によって当該動きベクトル検出領域ｊが有効であると判定され（Ｓ３０８）、Ｓ３１２に進む。一方、|Ｖ０ｊ（ｎ）+Ｖ０ｊ（ｎ）‐1|≦εでない場合（Ｓ３０６、Ｎｏ）には、有効性判定部１２３によって当該動きベクトル検出領域ｊが無効であると判定され（Ｓ３１０）、Ｓ３１２に進む。
【００５５】
以下、図１７から図２０を参照して、ε＝０として具体的な場合について説明する。図１８から図２０の場合における動きベクトルＶ０ｊ（ｎ）およびＶ０ｊ（ｎ）‐1の求め方は、図１７の場合と同様であるので、その詳細な説明を省略する。
【００５６】
図１７の場合、上記のように、Ｖ０ｊ（ｎ）＝（−２，０）、Ｖ０ｊ（ｎ）−１＝（２，０）であるので、|Ｖ０ｊ（ｎ）+Ｖ０ｊ（ｎ）‐1|＝０となる。よって、この場合、S３０６の条件を満たし、当該動きベクトル検出領域ｊが有効であると判定される（Ｓ３０８）。
【００５７】
図１８は、取得されたフレーム画像がストライプ画像の場合である。図１８の場合、Ｖ０ｊ（ｎ）＝（−２，３）、Ｖ０ｊ（ｎ）−１＝（−２，−１）であるので、|Ｖ０ｊ（ｎ）+Ｖ０ｊ（ｎ）‐1|≠０となる。よって、この場合、S３０６の条件を満たさず、当該動きベクトル検出領域ｊが無効であると判定される（Ｓ３１０）。このようにして、ストライプ画像の場合に誤った動きベクトルを検出することを防止できる場合がある。
【００５８】
図１９は、取得されたフレーム画像が、外部からフラッシュがたかれた画像の場合である。図１９の場合、Ｖ０ｊ（ｎ）＝（３，−３）、Ｖ０ｊ（ｎ）−１＝（２，−１）であるので、|Ｖ０ｊ（ｎ）+Ｖ０ｊ（ｎ）‐1|≠０となる。よって、この場合も、S３０６の条件を満たさず、当該動きベクトル検出領域ｊが無効であると判定される（Ｓ３１０）。このようにして、外部からフラッシュがたかれた画像の場合にも誤った動きベクトルを検出することを防止できる場合がある。
【００５９】
図２０は、取得されたフレーム画像が、いわゆるベタ画像（ある色が一様に施された画像）の場合である。図２０の場合、最小値がいくつも存在して動きベクトルを検出できない。このような場合、S３０６の条件を満たさないもとして扱い、当該動きベクトル検出領域ｊが無効であると判定される（Ｓ３１０）。このようにして、ベタ画像の場合にも誤った動きベクトルを検出することを防止できる場合がある。
【００６０】
そして、図４のＳ３１２において、ｊの値が更新され（ｊ＝ｊ＋１とされ）、Ｓ３１４においてｊ＞ｍか否かが判定され、ｊ＞ｍでない場合、すなわちｊがｍ以下の場合（Ｓ３１４、Ｎｏ）には、Ｓ３０４〜Ｓ３１２のステップが繰り返される。
【００６１】
そして、Ｓ３１４においてｊ＞ｍとなる場合、すなわちｊがｍより大きい場合（Ｓ３１４、Ｙｅｓ）、Ｓ３０８において有効と判定された動きベクトル検出領域（以下、単に「有効領域」と称する）の数がｉよりも大きいか否かが動きベクトル決定部１２６によって判定される（Ｓ３１６）。ここで、ｉは動きベクトルを検出する際に必要な最小有効領域数を示し、０≦ｉ≦ｍであり、ｉ≧ｍ／２であることが好ましい。また、ｉの値は設計者により自由に決定される。
【００６２】
そして、有効領域の数がｉ以上の場合（Ｓ３１６、Ｙｅｓ）、各有効領域における動きベクトルを｛Ｖ０ｊ（ｎ）‐Ｖ０ｊ（ｎ）‐1｝／２(又は｛Ｖ０ｊ（ｎ）+（‐Ｖ０ｊ（ｎ）‐1）｝／２)として、その平均をフレーム画像全体の動きベクトルＶ０（ｎ）とする（Ｓ３１８）。一方、有効領域の数がｉ未満の場合（Ｓ３１６、Ｎｏ）、前フレーム画像の動きベクトルＶ０（ｎ−１）に係数Kを掛けたものをフレーム画像全体の動きベクトルＶ０（ｎ）とする（Ｓ３２０）。ここで、Kは０以上の実数であり、設計者により自由に決定される。
（動きベクトル検出の変形例１）
Ｓ３０４において所定の動き検出領域における動きベクトルを求めることができない場合、当該動き検出領域における過去数フレーム画像分の動きベクトルから予測される動きベクトルを、当該動き検出領域の動きベクトルとして採用してもよい。
（動きベクトル検出の変形例２）
Ｓ３０４において所定の動き検出領域における動きベクトルを求めることができない場合、当該動き検出領域の動きベクトルを０（ゼロ）として採用してもよい。
（動きベクトル検出の変形例３）
ｍ＞２であって、Ｓ３０２〜Ｓ３１４の工程後（Ｓ３１４、Ｙｅｓと判定された後）、有効領域の動きベクトルの平均値Ｖaveを求め、前記有効領域の動きベクトルとＶaveとの差分が所定の閾値以下である有効領域の動きベクトルを選別し、当該選別された有効領域の動きベクトルの平均値をフレーム画像全体の動きベクトルとして採用してもよい。
（動きベクトル検出の変形例４）
ｍ＞２であって、Ｓ３０２〜Ｓ３１４の工程後（Ｓ３１４、Ｙｅｓと判定された後）、有効領域の動きベクトルの発散度（散らばりの程度）を求め、前記発散度が所定の閾値以上である場合、フレーム画像全体の動きベクトルが得られないものと判断し、前フレーム画像全体の動きベクトルに所定係数Ｋを掛けたものを当該フレーム画像全体の動きベクトルとして採用してもよい。ここで、「発散度」は、ｈを前記手法により求められた有効領域数、Ｖｊを各有効領域の動きベクトル、Ｖaveを有効領域の動きベクトルの平均として、
（発散度）＝｛（Σｊ｜Ｖｊ‐Ｖave｜2）/ｈ｝1/2 
とする。
【００６３】
ここで、図６を参照して、一例として、ｍ＝3、i＝2、ε＝0の場合に、Ｓ３０６において画面全体の動きベクトルを決定する方法を簡単に説明する。図６(ａ)に、３つの動き検出領域１〜３を示し、図６(ｂ)に、各動き検出領域における動きベクトルＶ０1、Ｖ０1‐1、Ｖ０2、Ｖ０2‐1、Ｖ０3、Ｖ０3‐1を示す。図６(ｂ)において、
|Ｖ０1＋Ｖ０1‐1|＝０
|Ｖ０2＋Ｖ０2‐1|≠０
|Ｖ０3＋Ｖ０3‐1|＝０
であったとすると、有効領域は動き検出領域1および動き検出領域３の２個となり、有効領域の数（＝２）がｉ（＝２）よりも大きい。よって、Ｓ３１６の判定はＹｅｓとなり、Ｓ３１８よりフレーム画像全体の動きベクトルは{(Ｖ０1−Ｖ０1‐1)／２＋(Ｖ０3−Ｖ０3‐1)／２}／２となる。
【００６４】
当該実施形態によれば、各動き検出領域において前フレーム画像Ｆ（ｎ−１）から現フレーム画像Ｆ（ｎ）への動きベクトルＶ０ｊ（ｎ）と、現フレーム画像Ｆ（ｎ）から前フレーム画像Ｆ（ｎ−１）への動きベクトルＶ０ｊ（ｎ）-1とを検出し、その和に基づき各動き検出領域における動きベクトルの信頼性を判断する。すなわち、各動き検出領域において動画像のフレーム間またはフィールド間の動きベクトルを双方向（前フレーム画像から現フレーム画像および現フレーム画像から前フレーム画像）から検出して動きベクトルの信頼性を判断し、当該信頼性の判断の結果に基づきフレーム画像全体の動きベクトルを決定している。このため上記のような簡単なアルゴリズムで精度の高い動きベクトルを検出することができる。
【００６５】
次に図３に戻り、図３のステップＳ４０における補正位置ベクトルＳ（ｎ）の算出処理、及び図３のステップＳ６０における補正動きベクトルＶ１（ｎ）の算出処理について、処理内容の説明についての理解を容易にするため、フレーム画像Ｆ（ｎ）の動きベクトルＶ０（ｎ）と補正位置ベクトルＳ（ｎ）、及び補正動きベクトルＶ１（ｎ）の関係について、図７および図８を用いて前もって説明する。
【００６６】
図７は、最初に取得される時系列順１番目のフレーム画像Ｆ（１）と、２番目、３番目のフレーム画像Ｆ（２）、Ｆ（３）をそれぞれ示している。本発明は、補正量に基づいてフレーム画像から所定の画像を切り出す補正処理によって補正フレーム画像を生成する画像処理技術を提供するものであり、補正処理が行われない場合、または補正量が０の場合に切り出されるフレーム画像は、それぞれ図７破線で示したフレーム画像ＦＫ（１）、ＦＫ（２）、ＦＫ（３）となる。
【００６７】
ここで、フレーム画像ＦＫ（ｎ）は、図７に示したように、フレーム画像Ｆ（ｎ）に対して所定の補正限界値Ｓｍａｘ分小さい画面サイズとなる。詳しくは、Ｘ方向では左右それぞれ所定の補正限界値Ｓｘｍａｘだけ、Ｙ方向では上下それぞれ所定の補正限界値Ｓｙｍａｘだけ画面サイズが小さい画像である。つまり、切り出される画像は、Ｘ方向では２×Ｓｘｍａｘ分、Ｙ方向では２×Ｓｙｍａｘ分小さい画面サイズとなる。
【００６８】
所定の補正限界値Ｓｍａｘ（Ｘ成分はＳｘｍａｘ、Ｙ成分はＳｙｍａｘ）は、本実施形態では、予めアプリケーションプログラムにデフォルトで所定の値が設定され、ハードディスク１０５などに格納されているものとする。もとより、ユーザーが、コンピュータ１００に接続された入力手段（図示せず）を用いてデータ入力することによって設定し、格納するものとしてもよい。
【００６９】
同じく図７（下側）に、求められた相対位置に従って配置されたフレーム画像ＦＫ（１）、ＦＫ（２）、ＦＫ（３）を示した。図７より明らかなように、例えばフレーム画像Ｆ（２）の動きベクトルＶ０（２）は、フレーム画像ＦＫ（２）の動きベクトルと等しくなる。つまり、フレーム画像Ｆ（２）の動きベクトルＶ０（２）は、フレーム画像ＦＫ（１）に対するフレーム画像ＦＫ（２）の画面位置として求められる。フレーム画像ＦＫ（３）の動きベクトルＶ０（３）も同様にフレーム画像ＦＫ（２）に対するフレーム画像ＦＫ（３）の画面位置として求められる。動きベクトルＶ０（２）、Ｖ０（３）のＸ成分はＸ方向の画素数、Ｙ成分はＹ方向の画素数で表される。
【００７０】
図７において、フレーム画像Ｆ（１）は、時系列順で一つ前のフレーム画像が存在しないため、本実施形態ではフレーム画像Ｆ（１）は動いていないものとして扱い、フレーム画像ＦＫ（１）の動きベクトルＶ０（１）は０とする。
【００７１】
次に、図８を用いてフレーム画像Ｆ（ｎ）の補正位置ベクトルＳ（ｎ）と動きベクトルＶ０（ｎ）、及びステップＳ６０（図３）にて算出される補正動きベクトルＶ１（ｎ）の関係を説明する。図８は、図７（下部）に示したフレーム画像ＦＫ（１）〜ＦＫ（３）の左上隅部分を拡大して示した説明図である。ここで、補正フレーム画像ＨＦＧ（２）は、ステップＳ４０（図３）で算出されるフレーム画像Ｆ（２）の補正位置ベクトルＳ（２）によってフレーム画像ＦＫ（２）が補正された状態を示している。
【００７２】
図８から明らかなように、フレーム画像ＦＫ（２）は、動きベクトルＶ０（２）のＸ成分とＹ成分の画素数に従ってフレーム画像ＦＫ（１）の画面位置を移動したものであり、補正フレーム画像ＨＦＧ（２）は、補正位置ベクトルＳ（２）のＸ成分とＹ成分の画素数に従ってフレーム画像ＦＫ（２）の画面位置を移動したものである。また、同様に、フレーム画像ＦＫ（３）は、動きベクトルＶ０（３）のＸ成分とＹ成分の画素数に従ってフレーム画像ＦＫ（２）の画面位置を移動したものであり、補正フレーム画像ＨＦＧ（３）は、補正位置ベクトルＳ（３）のＸ成分とＹ成分の画素数に従って、フレーム画像ＦＫ（３）の画面位置を移動したものである。
【００７３】
また、図８に示したように、補正動きベクトルＶ１（２）は、フレーム画像ＦＫ（１）に対する補正フレーム画像ＨＦＧ（２）の相対的な画面位置を示すものであり、補正動きベクトルＶ１（３）は、補正フレーム画像ＨＦＧ（２）に対する補正フレーム画像ＨＦＧ（３）の相対的な画面位置を示すものである。なお、動きベクトルＶ０（１）は０であることより補正位置ベクトルＳ（１）も０となる（後述する）。従って、フレーム画像ＦＫ（１）は補正フレーム画像ＨＦＧ（１）と同じものになる。
【００７４】
ここで、動きベクトルＶ０（ｎ）および補正動きベクトルＶ１（ｎ）は、Ｘ成分は図面右方向をプラス、Ｙ成分は図面上方向をプラスとするが、補正位置ベクトルＳ（ｎ）は、移動量を補正する意味から動きベクトルと反対に、Ｘ成分は図面左方向をプラス、Ｙ成分は図面下方向をプラスとする。従って、フレーム画像ＦＫ（２）、ＦＫ（３）の補正位置ベクトルＳ（２）、Ｓ（３）は、図８に示したように動きベクトルＶ０（２）、Ｖ０（３）と反対方向がプラス方向になる。
【００７５】
本実施形態は、図８にて説明したように、補正位置ベクトルＳ（ｎ）を、補正位置ベクトルＳ（ｎ−１）と、動きベクトルＶ０（ｎ）と、補正動きベクトルＶ１（ｎ−１）との３つのベクトルから求める画像処理技術を提供することによって補正遅れを抑制するとともに、補正量を補正限界値Ｓｍａｘ以内に抑えることによって、不規則な画面移動を抑制できる補正フレーム画像の画面位置を算出する画像処理装置を提供するものである。
【００７６】
次に、ステップＳ４０（図３）において、補正位置算出部１３０は、補正位置ベクトルＳ（ｎ）の算出処理を行う。ここでの処理について、図９のフローチャートを用いて詳しく説明する。
【００７７】
ステップＳ４０の処理が開始されると、まずステップＳ４１０にて注目するフレーム画像Ｆ（ｎ）の動きベクトルＶ０（ｎ）を入力する処理を行う。ここでは、１つ前の処理ステップＳ３０にて求められ、ＲＡＭ１０２などのメモリーに格納された動きベクトルＶ（ｎ）を、ＣＰＵ１０３が読み出すことによって入力処理を行う。
【００７８】
次に、ステップＳ４２０にて、注目するフレーム画像Ｆ（ｎ）に対して時系列順で一つ前のフレーム画像の補正動きベクトルＶ１（ｎ−１）を入力する処理を行う。ステップＳ６０（図３）にて算出され、ＲＡＭ１０２などのメモリーに格納された補正動きベクトルＶ１（ｎ−１）を、ＣＰＵ１０３が読み出すことによって入力処理を行う。
【００７９】
また、ステップＳ４３０にて、注目するフレーム画像Ｆ（ｎ）に対して時系列順で一つ前のフレーム画像の補正位置ベクトルＳ（ｎ−１）を入力する処理を行う。具体的には、ステップＳ４０（図３）にて算出され、ＲＡＭ１０２などのメモリーに格納された補正位置ベクトルＳ（ｎ−１）を、ＣＰＵ１０３が読み出すことによって入力処理を行う。
【００８０】
ステップＳ４２０及びステップＳ４３０において、「ｎ＝１」つまり時系列順１番目のフレーム画像の場合、前フレーム画像が存在しない。この場合は、前述したように本実施形態ではフレーム画像Ｆ（ｎ）は動いていないものとし、その結果、補正動きベクトルＶ１（１）は０、また補正位置ベクトルＳ（１）も０となる。
【００８１】
次に、ステップＳ４４０にてＸ、Ｙ各成分別に減衰係数Ｋ、Ｄの値の決定処理を行う。減衰係数Ｋ、Ｄは、次の処理ステップＳ４９０で用いる所定の演算式において使用する係数であり、補正位置ベクトルの大きさ、つまり補正量を決める係数となる。減衰係数Ｋ、Ｄとも、それぞれ１以下の小数である。
【００８２】
本実施形態では、次の３つの実施例のうち少なくとも一つの方法を用いて減衰係数Ｋ、Ｄの値を決定する。
【００８３】
「減衰係数決定方法の第１実施例」：
前フレーム画像を補正した補正フレーム画像（以下、単に「前補正フレーム画像」と称する）について算出した画像の移動量と、注目するフレーム画像の移動量との大小によって、減衰係数Ｋ、Ｄの値を決定する。さらに、注目するフレーム画像の移動量が、前補正フレーム画像の移動量以上の場合、注目するフレーム画像の動きベクトルの方向と、前補正フレーム画像の補正動きベクトルの方向とに基づいて減衰係数Ｋ、Ｄの値を決定する方法。
【００８４】
「減衰係数決定方法の第２実施例」：
補正可能範囲を示す補正限界値に対する前フレーム画像の補正量の比率と、前フレーム画像の補正量が「増加」か「減少」かの判断とによって、減衰係数Ｋ、Ｄの値を決定する方法。
【００８５】
「減衰係数決定方法の第３実施例」：
補正可能範囲である補正限界値と、前フレーム画像の補正量との差分量に対して、注目するフレーム画像の動きベクトルと、前フレーム画像の補正動きベクトルとの差分量が、どれくらいの割合にあるかによって、減衰係数Ｋ、Ｄの値を決定する方法。
「減衰係数決定方法の第１実施例」
まず、ステップＳ４４０（図９）にて行われる処理について、第１の実施例における減衰係数Ｋ、Ｄの決定処理の詳細を、図１０に示した処理フローチャートを用いて説明する。第１の実施例での減衰係数Ｋ、Ｄの値の決定方法は、注目するフレーム画像の動きベクトルの大きさ及び向きと、時系列順一つ前の補正フレーム画像の大きさ及び向きとから補正量を算出し、動きベクトルの方向変化と大きさにあわせて注目するフレーム画像の補正量を算出しようとするものである。なお、ここでは、注目するフレーム画像のＸ成分についての処理を説明するが、処理ステップＳ４４０ではＹ成分についても図１０に示したＸ成分の処理と同様の処理を行い、Ｘ成分、Ｙ成分それぞれについて減衰係数Ｋ、Ｄの値を決定する。そして、後述する次の処理ステップＳ４９０（図９）において、補正位置ベクトルのＸ成分とＹ成分を所定の演算式にて算出する際、それぞれ決定した減衰係数Ｋ、Ｄの値を用いるのである。
【００８６】
ここでの処理が開始されると、まずステップＳ４４１にて注目するフレーム画像の動きベクトルＶ０（ｎ）のＸ成分Ｖ０ｘ（ｎ）の抽出処理を行う。Ｘ成分Ｖ０ｘ（ｎ）はＸ方向の画素数で示され、図８に示したようにベクトルの向きが図面右方向であればプラス、左方向であればマイナスとなる。なお注目するフレーム画像の動きベクトルＶ０（ｎ）のＹ成分Ｖ０ｙ（ｎ）については、図８に示したようにベクトルの向きが図面上方向であればプラス、下方向であればマイナスとなる。
【００８７】
次に、ステップＳ４４２にて、注目するフレーム画像に対して時系列順で一つ前のフレーム画像の補正動きベクトルＶ１（ｎ−１）のＸ成分Ｖ１ｘ（ｎ−１）の抽出処理を行う。もとより、前述したように、注目するフレーム画像が時系列順１番目のフレーム画像である場合は、Ｖ１ｘ（ｎ−１）は０である。
【００８８】
次に、ステップＳ４４３にて、Ｖ０ｘ（ｎ）の絶対値と、Ｖ１ｘ（ｎ−１）の絶対値とを算出する。そして、次の処理ステップＳ４４４にてＶ０ｘ（ｎ）の絶対値がＶ１ｘ（ｎ−１）の絶対値以上か否かを判定する。ステップＳ４４４でＮＯの場合、つまり注目するフレーム画像の移動量が、前補正フレーム画像の移動量より小さい場合、ステップＳ４４５に進み、減衰係数Ｋ、Ｄの値をＫ１、Ｄ１に決定し、ステップＳ４９０（図９）に進む。
【００８９】
一方、ステップＳ４４４でＹＥＳの場合、つまり注目するフレーム画像の移動量が、前補正フレーム画像の移動量以上の場合、ステップＳ４４６に進み、Ｖ０ｘ（ｎ）とＶ１ｘ（ｎ−１）の積ＢＳｘを算出する。そして、次の処理ステップＳ４４７にて、ＢＳｘが０以上か否かを判定する。つまり、ここではベクトルＶ０ｘ（ｎ）とベクトルＶ１ｘ（ｎ−１）とが同じ向き（０以上）なのか逆向き（０より小さい）なのかを調べるのである。
【００９０】
ステップＳ４４７にてＮＯの場合（つまり逆向きの場合）、ステップＳ４４８に進み、減衰係数Ｋ、Ｄの値をＫ２、Ｄ２に決定し、ステップＳ４９０（図９）に進む。ここで、Ｋ２の値はＫ１の値より大きく、Ｄ２の値はＤ１の値よりも大きい値である。
【００９１】
一方、ステップＳ４４７にてＹＥＳの場合（つまり同じ向きの場合）、ステップＳ４４９に進み、減衰係数Ｋ、Ｄの値をＫ３、Ｄ３に決定し、ステップＳ４９０（図９）に進む。ここで、Ｋ３の値はＫ２の値より大きく、Ｄ３の値はＤ２の値よりも大きい値である。
【００９２】
第1の実施例における減衰係数Ｋ、Ｄの値について、その一例を図１１の減衰係数テーブルＧＫＴ１に示した。ここで、減衰係数Ｋの値は０．９≦Ｋ≦１の範囲で、Ｋ１＜Ｋ２＜Ｋ３を満たす値であることが望ましい。また、減衰係数Ｄの値は０．５≦Ｄ≦１の範囲で、Ｄ１＜Ｄ２＜Ｄ３を満たす値であることが望ましい。補正しようとするフレーム画像の移動量が、前補正フレーム画像の移動量より小さい場合、補正しようとするフレーム画像の移動量が前フレーム画像の移動量に対して減少しているということになる。従って、仮に、補正しようとするフレーム画像の補正量が、前フレーム画像と同じ補正量であったとすると、補正量が補正限界値に達する確率は高くなる。そこで、小さい値の減衰係数を用いて補正量を少なくし、補正限界値に達しにくくするのである。
【００９３】
また、補正しようとするフレーム画像の移動量が、前補正フレーム画像の移動量以上である場合、これら２つのフレーム画像の移動量が違う方向のときは、補正しようとするフレーム画像の画面位置が前補正フレーム画像の画面位置に近づく方向に反転移動していることになる。そこで、同じ方向のときにくらべて減衰係数の値を小さくして、補正しようとするフレーム画像の補正量を少なくするのである。なお、減衰係数Ｋ１〜Ｋ３、Ｄ１〜Ｄ３の値は、本実施例に限らず、前述した条件を満たす値であれば何でもよい。
「減衰係数決定方法の第２実施例」
次に、第２の実施例における減衰係数Ｋ、Ｄの決定処理の詳細を、図１２に示した処理フローチャートを用いて説明する。第２の実施例での減衰係数Ｋ、Ｄの値の決定方法は、補正限界値に近いか否かを所定の比率ＲＳによって補正量を算出し、さらに、所定の演算式によって補正量が増加か減少かを判断して注目するフレーム画像の補正量を算出しようとするものである。なお、ここでも、注目するフレーム画像のＸ成分についての処理を説明するが、処理ステップＳ４４０ではＹ成分についても図１２に示したＸ成分の処理と同様の処理を行い、Ｘ成分、Ｙ成分それぞれについて減衰係数Ｋ、Ｄの値を決定する。そして、後述する次の処理ステップＳ４９０（図９）にて、補正位置ベクトルのＸ成分とＹ成分を所定の演算式にて算出する際に、それぞれ決定した減衰係数Ｋ、Ｄの値を用いるのである。
【００９４】
ここでの処理が開始されると、まずステップＳ４５１にて補正限界値Ｓｘｍａｘの入力処理を行う。具体的には、ＣＰＵ１０３がハードディスク１０５などに格納されたＳｍａｘのＸ成分についての値を読み出すことで行う。
【００９５】
次に、ステップＳ４５２にて、注目するフレーム画像Ｆ（ｎ）に対して時系列順で一つ前のフレーム画像の補正位置ベクトルＳ（ｎ−１）のＸ成分Ｓｘ（ｎ−１）の抽出処理を行う。ここで、前述したように、Ｘ成分Ｓｘ（ｎ−１）は、画面左方向を正方向とする画素数で表される。もとよりＹ成分Ｓｙ（ｎ−１）は、画面下方向を正とする画素数で表される。
【００９６】
次に、ステップＳ４５３にて、Ｓｘ（ｎ−１）の絶対値をＳｘｍａｘで除した比率ＲＳの値を算出する。ＲＳの値が大きいほど、補正量が補正限界値に近い状態であることを示すことになる。
【００９７】
次にステップＳ４５４にて、注目するフレーム画像Ｆ（ｎ）の動きベクトルＶ０（ｎ）のＸ成分Ｖ０ｘ（ｎ）の抽出処理を行う。Ｘ成分Ｖ０ｘ（ｎ）はＸ方向の画素数で示され、図８に示したようにベクトルの向きが図面右方向であればプラス、左方向であればマイナスとなる。なお注目するフレーム画像Ｆ（ｎ）の動きベクトルＶ０（ｎ）のＹ成分Ｖ０ｙ（ｎ）については、図８に示したようにベクトルの向きが図面上方向であればプラス、下方向であればマイナスとなる。
【００９８】
次に、ステップＳ４５５にて、注目するフレーム画像Ｆ（ｎ）に対して時系列順で一つ前のフレーム画像の補正動きベクトルＶ１（ｎ−１）のＸ成分Ｖ１ｘ（ｎ−１）の抽出処理を行う。なお、前述したように、注目するフレーム画像Ｆ（ｎ）が時系列順１番目のフレーム画像である場合は、Ｖ１ｘ（ｎ−１）は０である。
【００９９】
ステップＳ４５２、Ｓ４５４、Ｓ４５５にて抽出した各ベクトルを用いて、次のステップＳ４５６では、「式１」より傾向値ＫＨｘを算出する処理を行う。
【０１００】
ＫＨｘ＝Ｓｘ（ｎ−１）×（Ｖ０ｘ（ｎ）−Ｖ１ｘ（ｎ−１））…「式１」
次に、ステップＳ４５７にて、傾向値ＫＨｘが０以上か否かの判定処理を行う。そして、ＹＥＳの場合は、ステップＳ４５９にて補正は「増加」と判断し、ＮＯの場合はステップＳ４５８にて「減少」と判断する処理を行う。Ｓｘ（ｎ−１）つまり前フレーム画像の補正位置ベクトルに基づく補正方向と、Ｖ０ｘ（ｎ）−Ｖ１ｘ（ｎ−１）つまり注目するフレーム画像の動きベクトルと前フレーム画像の補正ベクトルとの差に基づく画像の移動方向とを比べて、それぞれの向きが逆方向の場合は増加、同じ方向の場合は減少と判断するのである。
【０１０１】
次に、算出された比率ＲＳと「増加」又は「減少」の判断情報から、ステップＳ４６０にて、減衰係数テーブルＧＫＴ２を用いて減衰係数Ｋ、Ｄの値を決定する処理を行う。減衰係数テーブルＧＫＴ２の一例を図１３に示す。減衰係数テーブルはハードディスク１０５などに格納され、比率ＲＳのデータと「増加」又は「減少」の情報とから、ＣＰＵ１０３は、減衰係数テーブルＧＫＴ２より該当するアドレスの値を読み出し、減衰係数Ｋ、Ｄの値を決定する。
【０１０２】
図１３に示したように、第２の実施例では、減衰係数テーブルＧＫＴ２において、比率ＲＳの値を、小数点第２位を四捨五入し０．１きざみの値とした。そして、減衰係数Ｋ、Ｄの値を、比率ＲＳが大きい値になるに従って、前の値以下の小さい値になるよう設定した。さらに「増加」情報に対応する値を、「減少」情報に対応する値よりも小さい値に設定した。比率ＲＳが同じ場合でも、増加と判断した場合は、補正方向と画像の移動方向とが逆方向であることから、減少と判断した場合よりも補正が補正限界値に達しやすいため、減衰係数Ｋ、Ｄを小さくして補正量を少なくするのである。もとより、比率ＲＳの値はさらに細かいきざみ幅としたり、逆にもっと粗いきざみ幅としたりしてもよい。さらに、きざみ幅も同一でなく変化させたりしても差し支えない。
【０１０３】
図１３に示した減衰係数テーブルＧＫＴ２は、減衰係数Ｋ、Ｄの具体的な数値設定の一例を示したものであり、減衰係数Ｋの値は０．９≦Ｋ≦１の範囲で、減衰係数Ｄの値は０．５≦Ｄ≦１の範囲で、ＲＳの値に合わせて変更してもよい。このとき、ＲＳの値が大きい値になるに従って、減衰係数Ｋ、Ｄの値は前の値以下の小さい値になるよう設定することが好ましい。ＲＳの値が大きい場合は、ＲＳの値が小さい場合よりも補正量が補正限界値に近いことになるため、減衰係数を小さくして補正量を少なくするのである。
「減衰係数決定方法の第３実施例」
次に、第３の実施例における減衰係数Ｋ、Ｄの決定処理の詳細を、図１４に示した処理フローチャートを用いて説明する。第３の実施例での減衰係数Ｋ、Ｄの値の決定方法は、注目するフレーム画像の補正量を算出する際、時系列順で一つ前の補正フレーム画像の補正量で補正したとき、補正限界値まで何回補正可能かを調べて注目するフレーム画像の補正量を算出しようとするものである。なお、ここでも、注目するフレーム画像のＸ成分についての処理を説明するが、処理ステップＳ４４０ではＹ成分についても図１４に示したＸ成分の処理と同様の処理を行い、Ｘ成分、Ｙ成分それぞれについて減衰係数Ｋ、Ｄの値を決定する。そして、後述する次の処理ステップＳ４９０（図９）にて、補正位置ベクトルのＸ成分とＹ成分を所定の演算式にて算出する際に、それぞれ決定した減衰係数Ｋ、Ｄの値を用いるのである。
【０１０４】
ここでの処理が開始されると、まずステップＳ４６１にて補正限界値Ｓｘｍａｘの入力処理を行う。具体的には、ＣＰＵ１０３がハードディスク１０５などに格納されたＳｍａｘのＸ成分についての値を読み出すことで行う。
【０１０５】
次にステップＳ４６２にて、注目するフレーム画像Ｆ（ｎ）の動きベクトルＶ０（ｎ）のＸ成分Ｖ０ｘ（ｎ）の抽出処理を行う。Ｘ成分Ｖ０ｘ（ｎ）はＸ方向の画素数で示され、図８に示したようにベクトルの向きが図面右方向であればプラス、左方向であればマイナスとなる。なお注目するフレーム画像Ｆ（ｎ）の動きベクトルＶ０（ｎ）のＹ成分Ｖ０ｙ（ｎ）については、図８に示したようにベクトルの向きが図面上方向であればプラス、下方向であればマイナスとなる。
【０１０６】
次に、ステップＳ４６３にて、注目するフレーム画像に対して時系列順で一つ前のフレーム画像の補正動きベクトルＶ１（ｎ−１）のＸ成分Ｖ１ｘ（ｎ−１）の抽出処理を行う。もとより、前述したように、注目するフレーム画像が時系列順１番目のフレーム画像である場合は、Ｖ１ｘ（ｎ−１）は０である。
【０１０７】
次に、ステップＳ４６４にて、注目するフレーム画像Ｆ（ｎ）に対して時系列順で一つ前のフレーム画像の補正位置ベクトルＳ（ｎ−１）のＸ成分Ｓｘ（ｎ−１）の抽出処理を行う。ここで、前述したように、Ｘ成分Ｓｘ（ｎ−１）は、画面左方向を正方向とする画素数で表される。もとよりＹ成分Ｓｙ（ｎ−１）は、画面下方向を正とする画素数で表される。
【０１０８】
次に、ステップＳ４６５にて、「式２」よりベクトル差分値ＢＳＴの算出処理を行う。
【０１０９】
ＢＳＴ＝｜Ｖ０ｘ（ｎ）−Ｖ１ｘ（ｎ−１）｜    …「式２」
次に、ステップＳ４６６にて、「式３」より補正残量値ＳＺＴの算出処理を行う。
【０１１０】
ＳＺＴ＝Ｓｘｍａｘ−｜Ｓｘ（ｎ−１）｜        …「式３」
次に、ステップＳ４６７にて、「式４」より補正限界フレーム数Ｔの算出処理を行う。
【０１１１】
Ｔ＝ＳＺＴ÷ＢＳＴ                            …「式４」
ステップＳ４６７にて算出された補正限界フレーム数Ｔの値から、ステップＳ４６８にて、減衰係数テーブルＧＫＴ３を用いて減衰係数Ｋ、Ｄの値を決定する。減衰係数テーブルＧＫＴ３の一例を図１５に示す。減衰係数テーブルＧＫＴ３はハードディスク１０５などに格納され、補正限界フレーム数Ｔのデータから、ＣＰＵ１０３は、減衰係数テーブルＧＫＴ３より該当するアドレスの値を読み出し、減衰係数Ｋ、Ｄの値を決定する。
【０１１２】
図１５に示した減衰係数テーブルＧＫＴ３において、補正限界フレーム数Ｔは、小数点第一位を四捨五入して整数値化した値とした。また減衰係数テーブルＧＫＴ３は、具体的な数値設定の一例を示したものであり、減衰係数Ｋの値は０．９≦Ｋ≦１の範囲で、減衰係数Ｄの値は０．５≦Ｄ≦１の範囲で、補正限界フレーム数Ｔの値に合わせて変更してもよい。このとき、Ｔの値が大きい値になるに従って、減衰係数Ｋ、Ｄの値は大きい値になるよう設定することが好ましい。Ｔの値が大きい場合は、Ｔの値が小さい場合よりも補正限界値に達するまでの補正量に余裕があることになるため、減衰係数を大きくしてフレーム画像の補正量を多くするのである。
【０１１３】
以上、第１から第３の実施例にて説明したＸ成分についての処理を、Ｙ成分についても同様に行い、Ｘ、Ｙ各成分別に減衰係数Ｋ、Ｄの値を決定して処理ステップＳ４９０に進む。
【０１１４】
第１ないし第３の実施例によって減衰係数Ｋ、Ｄの値がＸ成分、Ｙ成分について決定されると、ステップＳ４９０（図９）に戻り、所定の演算式を用いて注目するフレーム画像Ｆ（ｎ）の補正位置ベクトルＳ（ｎ）を算出する処理を行う。本実施形態では、所定の演算式として次の「式５」を用いる。
【０１１５】
Ｓ（ｎ）＝Ｋ×Ｓ（ｎ−１）＋Ｄ×（Ｖ０（ｎ）−Ｖ１（ｎ−１））    …「式５」
注目するフレーム画像Ｆ（ｎ）の補正位置ベクトルＳ（ｎ）は、具体的には「式５」を用いて、Ｘ成分およびＹ成分についての補正位置ベクトルＳｘ（ｎ）およびＳｙ（ｎ）をそれぞれ算出することによって求められる。
【０１１６】
「式５」から明らかなように、注目するフレーム画像Ｆ（ｎ）の動きベクトルＶ０（ｎ）と、フレーム画像Ｆ（ｎ−１）を補正した補正フレーム画像ＨＦＧ（ｎ−１）の補正動きベクトルＶ１（ｎ−１）との差分を求め、この差分に減衰係数Ｄを乗じた値を補正位置ベクトルＳ（ｎ）の算出に用いるため、補正後の注目するフレーム画像Ｆ（ｎ）と前補正フレーム画像ＨＦＧ（ｎ−１）間について、画像の移動が滑らかになる確率が高くなる。
【０１１７】
また、「式５」による補正位置ベクトルの算出方法によれば、補正しようとするフレーム画像が、パンやチルトなど一定の画面移動速度で撮影された画像の場合、Ｖ０（ｎ）が変数ではなく定数になることから、算出されるＳ（ｎ）は一定値になりやすい。つまり、パンやチルトなど一定方向に連続した動きを有するフレーム画像の補正については、撮影された元々の画像の動きに対する追随性がよいという効果も合わせて奏することになる。
【０１１８】
なお「式５」において、注目するフレーム画像が時系列順１番目（ｎ＝１）の場合、本実施形態では前述したようにフレーム画像Ｆ（１）は動いていないとしたことから、Ｓ（１）＝０である。ちなみに、
ｎ＝２の場合は、Ｓ（２）＝Ｋ×０＋Ｄ×（Ｖ０（２）−０）＝Ｄ×Ｖ０（２）
ｎ＝３の場合は、Ｓ（３）＝Ｋ×Ｓ（２）＋Ｄ×（Ｖ０（３）−Ｖ１（２））
によって、補正位置ベクトルが算出される。
【０１１９】
以上で、補正位置算出部１３０による補正位置ベクトルの算出処理ルーチン（図３、ステップＳ４０）を終了し、次にステップＳ５０（図３）に進む。ステップＳ５０では、補正フレーム画像生成部１４０が補正フレーム画像ＨＦＧ（ｎ）の生成処理を行う。
【０１２０】
図１６に、ｎ＝３のときフレーム画像Ｆ（３）から所定の画像を切り出して生成される補正フレーム画像ＨＦＧ（３）の例を示した。図１６の上側に、補正がされない場合つまり補正量が０である場合において所定の画像となるフレーム画像ＦＫ（３）を破線で示した。そして、図１６の下側に、ステップＳ４０にて算出された補正位置ベクトルＳ（３）に従って、Ｘ方向にＳｘ（３）、Ｙ方向にＳｙ（３）だけ画面位置を補正して切り出した補正フレーム画像ＨＦＧ（３）を示した。このように、画面位置を補正することによって、フレーム画像について画像の移動量が抑えられることになる。
【０１２１】
次にステップＳ６０にて、生成された補正フレーム画像ＨＦＧ（ｎ）について補正動きベクトルＶ１（ｎ）の算出処理を行う。前述したように、ここで算出した補正動きベクトルは時系列順で一つ後のフレーム画像の補正動きベクトルを算出するために用いられる。もとより、補正動きベクトルはＸ成分Ｖ１ｘ（ｎ）とＹ成分Ｖ１ｙ（ｎ）のベクトルとして算出する。
【０１２２】
次に、ステップＳ７０にて、画像出力部１５０が補正フレーム画像ＨＦＧ（ｎ）の出力処理を行う。本実施形態では、生成された補正フレーム画像ＨＦＧ（ｎ）を、出力Ｉ／Ｆ１０６（図１）によってビデオプロジェクタ３００などの画像表示装置が必要とする画像信号に変換し、補正フレーム画像を生成する毎に直ちに出力するものとする。こうすれば、補正対象となるフレーム画像の取得後から補正フレーム画像の出力までの時間が短くなり、補正をリアルタイムでおこなえる可能性がある。もとより、補正フレーム画像ＨＦＧ（ｎ）の出力先をＲＡＭ１０２やハードディスク１０５などに設けられた所定の画像ファイルとし、生成した一連の複数の補正フレーム画像を格納することとしてもよい。
【０１２３】
以上でフレーム画像Ｆ（ｎ）についての処理を終了し、ステップＳ８０にてｎを更新処理する。そして、ステップＳ１０に戻り、時系列順で一つ後のフレーム画像を新たにフレーム画像Ｆ（ｎ）として以降の処理を繰り返し、取得される全てのフレーム画像について補正フレーム画像を出力するのである。
【０１２４】
上述した処理内容から明らかなように、本実施形態による補正方法によれば、補正限界値内での補正ができるように減衰係数の値を決定するため、補正限界値を超える確率を抑えることが可能となる。また、注目するフレーム画像の補正量の算出に際して、算出する演算式に、注目するフレーム画像より時系列順一つ前のフレーム画像を補正した補正フレーム画像の動きベクトルつまり補正動きベクトルも用いることとしたため、補正フレーム画像について画像の移動が滑らかになり、不規則な画像の動きを抑制することが可能となる。
【０１２５】
本実施形態による補正結果を図１３に示した。なお、減衰係数Ｋ、Ｄの決定方法については第１から第３の実施例が存在するが、それぞれの方法が有する補正効果の差については、本発明の目的に直接関係しないので説明を省略し、図１３では、本実施形態における第１から第３の実施例による減衰係数Ｋ、Ｄの値の決定方法によって得られる共通効果に着目して説明する。
【０１２６】
図１３において、縦軸は各フレーム画像のＸ方向若しくはＹ方向の画面位置を示し、横軸は取得したフレーム画像の時系列順を表すフレーム画像数を示している。ちなみに横軸の左端はフレーム画像Ｆ（１）を示す。太い一点鎖線は補正前のフレーム画像の画面位置の軌跡を示し、太い実線は補正後の補正フレーム画像ＨＦＧ（ｎ）の画面位置の軌跡を示している。また、細い二点鎖線は補正できる範囲（補正限界値Ｓｍａｘ）を示す。比較のために、従来例による補正フレーム画像の画面位置の軌跡を太い破線で例示した。
【０１２７】
図１３から明らかなように、矢印Ａ（フレーム画像ＦＫ（ｎ）の画面位置が増加から減少に変わる位置）で、例えば第１の実施例によれば、動きベクトルＶ０（ｎ）の向きが反転することから、減衰係数が小さい値に決定され補正量が減少する。この結果、従来例より早くフレーム画像ＦＫ（ｎ）の位置に近づけるように補正されることが分かる。また、矢印Ｂ付近では、従来例では補正が遅くなるためそのまま補正限界値に達してしまうが、例えば第２の実施例によれば、補正量と補正限界値の比率が小さくなることから、減衰係数の値を小さくして補正量が減少するようにしているため、補正限界値内で補正できることが分かる。
【０１２８】
このように、本実施形態による画像処理装置によれば、補正限界に達する確率を低くでき、また補正フレーム画像の画面位置の移動量が、注目するフレーム画像の補正量の算出に際して、注目するフレーム画像より時系列順で一つ前の補正フレーム画像の画像位置を考慮して算出する。従って、補正フレーム画像について、画面位置の移動が滑らかになる確率が高くなり、不規則な画像移動を抑えることができる。この結果、補正フレーム画像による動画像の鑑賞時、鑑賞者に例えば映像酔いなどの不快感を与えない画像補正を実現することができる。
【０１２９】
以上、本発明の一実施形態を説明したが、本発明はこうした実施の形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内において様々な形態で実施し得ることは勿論である。
【０１３０】
（変形例１）例えば、前記実施形態では、動画像から取得したフレーム画像Ｆ（ｎ）の移動ベクトルを、フレーム画像Ｆ（ｎ）とフレーム画像Ｆ（ｎ−１）との相対的な位置関係から算出したが、動画像を撮影する際に、速度センサーや加速度センサーなど移動量を検出する手段によって、フレーム画像のメタデータとして画面位置データが存在する場合は、この画面位置データを用いて移動ベクトルを算出してもよい。こうすれば、画像のパターンマッチングや特徴点追跡といった画像処理を行う必要がなく、動きベクトルを算出に関する処理の負荷を軽減することができる。
【０１３１】
（変形例２）また前記実施形態では、生成される補正フレーム画像の画面サイズは、取得したフレーム画像の画面サイズに対して、横方向で２×Ｓｘｍａｘ、縦方向で２×Ｓｙｍａｘ分小さい画像であったが、本変形例では補正フレーム画像の生成処理に際して、取得したフレーム画像と同じ画面サイズに拡大処理した画像としてもよい。こうすれば、補正フレーム画像による動画像は、補正前の元の動画像と同じ画面サイズになり、鑑賞者は同じ画面サイズの動画像を楽しむことができる。
【０１３２】
画面の拡大は、補正フレーム画像の画素数をフレーム画像の画素数と同じにすることで行う。画像を構成する画素数の増加は、画素の補間処理によって実現することができる。補間処理は、バイ・リニア法のほか、バイ・キュービック法、ニアレストネイバ法など、周知の手法を用いればよい。
【０１３３】
（変形例３）あるいは、前記実施形態では、減衰係数Ｋ、Ｄの決定に際して第１から第３の実施例のうち少なくとも一つを用いることとしたが、これに限らず、第１から第３の実施例のうちの任意の２つの方法、または３つ全ての方法によって減衰係数を決定することとしてもよい。それぞれ決定された減衰係数を用いて補正量を求めたのち、その中から、例えば前フレーム画像の補正量に対してもっとも近い補正量を選択するなどによって補正対象のフレーム画像の補正量を算出すれば、画面位置の移動が滑らかに変化し、不規則な画像移動を抑える確率が更に高くなる。
【０１３４】
（変形例４）また、前記実施形態における画像処理装置は、汎用のコンピュータで構成するようにしたが、本発明はこれに限定されるものでなく、モバイルコンピュータやワークステーションなどで構成するようにしてもよい。あるいは、デジタルカメラやビデオカメラ、ＤＶＤ録画再生機、またはビデオプロジェクタやＴＶ、あるいは携帯電話など、動画像を記録又は再生できる機器や、時系列順で静止画像を記録又は再生できる種々の機器に、本発明の画像処理装置を組み込んで構成するようにしてもよい。
【０１３５】
（変形例５）また、前記実施形態における画像処理装置は、フレーム画像を構成する所定枚数のフィールド画像全てからフレーム画像を取得し、この取得したフレーム画像について所定の画像を切り出す位置を補正するものとしたが、これに限定せず、フレーム画像がＮ枚（Ｎは２以上の整数）のフィールド画像によって構成されている場合、これらＮ枚のフィールド画像のうち、１枚からＮ−１枚までのうち任意の枚数のフィールド画像から得られる画像をフレーム画像として、所定の画像を切り出す位置を補正するものとしても差し支えない。
【図面の簡単な説明】
【０１３６】
【図１】本発明の一実施形態としての画像処理装置の概略構成を示す説明図である。
【図２】本発明の一実施形態としての画像処理装置の機能ブロック図である。
【図３】画像処理装置の処理を説明するフローチャートである。
【図４】本発明による動きベクトル算出処理を説明するフローチャートである。
【図５】動きベクトルの求め方を説明するための図である。
【図６】図４のＳ３０６においてフレーム画像全体の動きベクトルを決定する方法を簡単に説明するための図である。
【図７】フレーム画像の動きベクトルを説明するための説明図である。
【図８】フレーム画像の動きベクトルと補正動きベクトル、及び補正位置ベクトルの関係を説明するための説明図である。
【図９】補正位置ベクトルの算出処理を説明するフローチャートである。
【図１０】第１の実施例における減衰係数の決定処理を説明するフローチャートである。
【図１１】第１の実施例における減衰係数の値を説明するための減衰係数テーブルである。
【図１２】第２の実施例における減衰係数の決定処理を説明するフローチャートである。
【図１３】第２の実施例における減衰係数の値を説明するための減衰係数テーブルである。
【図１４】第３の実施例における減衰係数の決定処理を説明するフローチャートである。
【図１５】第３の実施例における減衰係数の値を説明するための減衰係数テーブルである。
【図１６】フレーム画像から補正フレーム画像を生成する方法を説明する説明図である。
【図１７】動きベクトルの求め方を説明するための図である。
【図１８】ストライプ画像の場合の動きベクトルを説明するための図である。
【図１９】外部からフラッシュがたかれた画像についての動きベクトルを説明するための図である。
【図２０】ベタ画像の場合の動きベクトルを説明するための図である。
【符号の説明】
【０１３７】
１００…コンピュータ、１０１…入力Ｉ／Ｆ、１０２…ＲＡＭ、１０３…ＣＰＵ、１０４…ＲＯＭ、１０５…ハードディスク、１０６…出力Ｉ／Ｆ、１０７…バスライン、１１０…フレーム画像取得部、１２０…動きベクトル算出部、１２１…Ｐ→Ｎ検出部、１２２…Ｎ→Ｐ検出部、１２３…有効性判定部、１２４…サンプリングデータ生成部、１２５…メモリ、１２６…動きベクトル決定部、１３０…補正位置算出部、１４０…補正フレーム画像生成部、１５０…画像出力部、２００…ビデオカメラ、２１０…ＤＶＤプレーヤ、３００…プロジェクタ、３１０…ディスプレイ、Ｆ（ｎ）…フレーム画像、ＦＫ（ｎ）…フレーム画像、ＨＦＧ（１）…補正フレーム画像、Ｓｍａｘ…補正限界値、Ｓｘｍａｘ…補正限界値のＸ成分、Ｓｙｍａｘ…補正限界値のＹ成分、Ｖ０（ｎ）…動きベクトル、Ｖ１（ｎ）…補正動きベクトル、Ｓ（ｎ）…補正位置ベクトル、Ｓｘ（ｎ）…補正位置ベクトルのＸ成分、Ｓｙ（ｎ）…補正位置ベクトルのＹ成分、Ｋ…減衰係数、Ｄ…減衰係数、ＧＫＴ１〜３…減衰係数テーブル。
【図１】
2006279413.tif 000003
【図２】
2006279413.tif 000004
【図３】
2006279413.tif 000005
【図４】
2006279413.tif 000006
【図５】
2006279413.tif 000007
【図６】
2006279413.tif 000008
【図７】
2006279413.tif 000009
【図８】
2006279413.tif 000010
【図９】
2006279413.tif 000011
【図１０】
2006279413.tif 000012
【図１１】
2006279413.tif 000013
【図１２】
2006279413.tif 000014
【図１３】
2006279413.tif 000015
【図１４】
2006279413.tif 000016
【図１５】
2006279413.tif 000017
【図１６】
2006279413.tif 000018
【図１７】
2006279413.tif 000019
【図１８】
2006279413.tif 000020
【図１９】
2006279413.tif 000021
【図２０】
2006279413.tif 000022