(57)【要約】【課題】  手ぶれ補正をかけるには、１フレーム分以上保持するためのフレームメモリが必要である。【解決手段】  フレーム画像受取手段によって、時系列順にフレーム画像が順次受け取られ、動きベクトル検出手段によって、ｎ番目のフレーム画像の動きベクトルが検出される。そして、動きベクトル予測手段によって、（ｎ＋１）番目のフレーム画像の動きベクトルが予測され、切出位置算出手段によって、予測された（ｎ＋１）番目のフレーム画像の動きベクトルを用いて、（ｎ＋１）番目のフレーム画像について、所定の画像を切り出す位置を示す切出位置が算出される。ｎ番目のフレーム画像の動きベクトルの検出と、（ｎ＋１）番目のフレーム画像の動きベクトルの予測と、（ｎ＋１）番目のフレーム画像の切出位置の算出とが、フレーム画像受取手段がｎ番目のフレーム画像を取得している間に行われる。【選択図】      図２
2007028251.tif 000002
【特許請求の範囲】
【請求項１】
時系列に連続する、表示すべき（Ｍ＋１）個（Ｍは２以上の整数）のフレーム画像Ｆ（１）〜Ｆ（Ｍ＋１）（括弧内は時系列順を示す整数）であって、画像揺れを発生させる可能性のある前記フレーム画像Ｆ（１）〜Ｆ（Ｍ＋１）を順次受け取るフレーム画像受取手段と、
フレーム画像Ｆ（ｐ−１）（１＜ｐ≦（Ｍ＋１））を基準とするフレーム画像Ｆ（ｐ）の動きを示す動きベクトルＶ０（ｐ）を検出することにより、前記（Ｍ＋１）個のフレーム画像Ｆ（１）〜Ｆ（Ｍ＋１）のうち、Ｍ個のフレーム画像Ｆ（２）〜Ｆ（Ｍ＋１）の動きを示すＭ個の動きベクトルＶ０（２）〜Ｖ０（Ｍ＋１）を得る動きベクトル検出手段と、
前記Ｍ個の動きベクトルＶ０（２）〜Ｖ０（Ｍ＋１）のうちの（Ｍ−１）個の動きベクトルＶ０（２）〜Ｖ０（Ｍ）で示される、Ｍ個のフレーム画像Ｆ（１）〜Ｆ（Ｍ）の全体的な動きを前記画像揺れにより特定されるＸ個（Ｘは整数）の基底の周波数に分解し、当該周波数より規定されるＸ個の正弦波を、時間軸上で、（Ｍ＋１）番目のフレーム画像Ｆ（Ｍ＋１）を表示するべき時刻まで延長することにより、フレーム画像Ｆ（Ｍ）を基準とする前記フレーム画像Ｆ（Ｍ＋１）の動きを示す、前記フレーム画像Ｆ（Ｍ＋１）の動きベクトルである予測動きベクトルＹＶ０（Ｍ＋１）を予測する動きベクトル予測手段と、
フレーム画像Ｆ（ｋ）（ｋは時系列順を示す整数）から当該フレーム画像Ｆ（ｋ）の一部である部分画像ＨＦＧ（ｋ）を切り出すときの切出位置Ｓ（ｋ）を算出する切出位置算出手段であって、前記予測動きベクトルＹＶ０（Ｍ＋１）を用いて、前記フレーム画像Ｆ（Ｍ＋１）の画像揺れを減衰させる切出位置Ｓ（Ｍ＋１）を算出する切出位置算出手段と、
前記切出位置Ｓ（Ｍ＋１）を用いて、前記フレーム画像Ｆ（Ｍ＋１）から前記部分画像ＨＦＧ（Ｍ＋１）を切り出す部分画像切出手段とを有し、
前記部分画像切出手段による前記部分画像ＨＦＧ（Ｍ＋１）の切り出しを行うことに先立ち、前記画像受取手段による時系列順でＭ番目のフレームの前記フレーム画像Ｆ（Ｍ）の受け取り、前記動きベクトル検出手段による動きベクトルＶ０（Ｍ）の検出、前記動きベクトル予測手段による前記予測動きベクトルＹＶ０（Ｍ＋１）の予測、及び前記切出位置算出手段による前記切出位置Ｓ（Ｍ＋１）の算出を行い、
前記部分画像切出手段による前記部分画像ＨＦＧ（Ｍ＋１）の切り出しの一部と前記動きベクトル検出手段による動きベクトルＶ０（Ｍ＋１）の検出の一部とを並行して行うことを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、
前記（Ｍ−１）個の動きベクトルＶ０（２）〜Ｖ０（Ｍ）を用いて、任意のフレーム画像を基準位置とする前記Ｍ個のフレーム画像Ｆ（１）〜Ｆ（Ｍ）の全体的な動きを示す軌跡であるＭ個の動き軌跡Ｘ０（１）〜Ｘ０（Ｍ）を算出する動き軌跡算出手段をさらに有し、
前記動きベクトル予測手段は、前記Ｍ個の動き軌跡Ｘ０（１）〜Ｘ０（Ｍ）を前記Ｘ個の基底の周波数に分解し、当該周波数より規定される前記Ｘ個の正弦波を、時間軸上で、前記フレーム画像Ｆ（Ｍ＋１）を表示するべき時刻まで延長することにより、前記予測動きベクトルＹＶ０（Ｍ＋１）を予測することを特徴とする画像処理装置。
【請求項３】
請求項２に記載の画像処理装置であって、
前記基底の周波数の数Ｘは、前記Ｍ個とは異なる数であることを特徴とする画像処理装置。
【請求項４】
請求項３に記載の画像処理装置であって、
前記基底の周波数の数Ｘは、前記Ｍ個よりも少ない数であることを特徴とする画像処理装置。
【請求項５】
請求項２に記載の画像処理装置であって、
前記Ｘ個の基底の周波数のうち、直流成分を除く基底の周波数の周期は、フレーム画像Ｆ（１）を表示すべき時刻から前記フレーム画像Ｆ（Ｍ）を表示すべき時刻までの時間よりも短いことを特徴とする画像処理装置。
【請求項６】
請求項２〜５のいずれか一項に記載の画像処理装置であって、
前記動き軌跡算出手段が算出した前記動き軌跡Ｘ０（１）〜Ｘ０（Ｍ）から、前記Ｘ個の基底の周波数のうちの直流成分を除く基底の周波数より低い周波数成分であるベースラインを取り除いた軌跡を前記動き軌跡Ｘ０（１）〜Ｘ０（Ｍ）として修正するベースライン算出手段をさらに有し、
前記動きベクトル予測手段は、前記ベースライン算出手段により修正された前記Ｍ個の動き軌跡Ｘ０（１）〜Ｘ０（Ｍ）を前記Ｘ個の基底の周波数に分解し、当該周波数より規定される前記Ｘ個の正弦波を、時間軸上で、（Ｍ＋１）番目の前記フレーム画像Ｆ（Ｍ＋１）を表示するべき時刻まで延長して得られる座標位置と、前記ベースラインを、時間軸上で、（Ｍ＋１）番目の前記フレーム画像Ｆ（Ｍ＋１）を表示するべき時刻まで延長して得られる座標位置とを加算することにより、動き軌跡Ｘ０（Ｍ＋１）を予測し、動き軌跡Ｘ０（Ｍ）及び前記動き軌跡Ｘ０（Ｍ＋１）から前記フレーム画像Ｆ（Ｍ＋１）の前記予測動きベクトルＹＶ０（Ｍ＋１）を予測することを特徴とする画像処理装置。
【請求項７】
請求項６に記載の画像処理装置であって、
前記ベースラインは、前記動き軌跡Ｘ０（１）〜Ｘ０（Ｍ）の各フレーム間の傾きを平均した傾きをもつ直線であることを特徴とする画像処理装置。
【請求項８】
請求項２〜７のいずれか一項に記載の画像処理装置であって、
前記動きベクトル予測手段が前記動き軌跡Ｘ０（１）〜Ｘ０（Ｍ）を使用する前に、時系列順で（Ｍ）番目のフレームに近いほど大きな重みを施すことにより、前記動き軌跡Ｘ０（１）〜Ｘ０（Ｍ）を修正する動き軌跡重み付け手段をさらに有することを特徴とする画像処理装置。
【請求項９】
請求項２〜８のいずれか一項に記載の画像処理装置であって、
前記動き軌跡重み付け手段は、時系列順で１番目のフレームに対応する値が０に最も近く、時系列順でＭ番目のフレームに対応する値が１に最も近くなる関数Ｗ（ｎ）を用いて、フレームごとに動き軌跡Ｘ０（ｎ）の座標とＷ（ｎ）の値をかけて前記動き軌跡Ｘ０（１）〜Ｘ０（Ｍ）を修正することを特徴とする画像処理装置。
【請求項１０】
請求項１〜９のいずれか一項に記載の画像処理装置であって、
前記部分画像ＨＦＧ（Ｍ＋１）を時系列順に順次を表示する画像表示手段を有することを特徴とする画像処理装置。
【請求項１１】
時系列に連続する、表示すべき（Ｍ＋１）個（Ｍは２以上の整数）のフレーム画像Ｆ（１）〜Ｆ（Ｍ＋１）（括弧内は時系列順を示す整数）であって、画像揺れを発生させる可能性のある前記フレーム画像Ｆ（１）〜Ｆ（Ｍ＋１）を順次受け取るフレーム画像受取工程と、
フレーム画像Ｆ（ｐ−１）（１＜ｐ≦（Ｍ＋１））を基準とするフレーム画像Ｆ（ｐ）の動きを示す動きベクトルＶ０（ｐ）を検出することにより、前記（Ｍ＋１）個のフレーム画像Ｆ（１）〜Ｆ（Ｍ＋１）のうち、Ｍ個のフレーム画像Ｆ（２）〜Ｆ（Ｍ＋１）の動きを示すＭ個の動きベクトルＶ０（２）〜Ｖ０（Ｍ＋１）を得る動きベクトル検出工程と、
前記Ｍ個の動きベクトルＶ０（２）〜Ｖ０（Ｍ＋１）のうちの（Ｍ−１）個の動きベクトルＶ０（２）〜Ｖ０（Ｍ）で示される、Ｍ個のフレーム画像Ｆ（１）〜Ｆ（Ｍ）の全体的な動きを前記画像揺れにより特定されるＸ個（Ｘは整数）の基底の周波数に分解し、当該周波数より規定されるＸ個の正弦波を、時間軸上で、（Ｍ＋１）番目のフレーム画像Ｆ（Ｍ＋１）を表示するべき時刻まで延長することにより、フレーム画像Ｆ（Ｍ）を基準とする前記フレーム画像Ｆ（Ｍ＋１）の動きを示す、前記フレーム画像Ｆ（Ｍ＋１）の動きベクトルである予測動きベクトルＹＶ０（Ｍ＋１）を予測する動きベクトル予測工程と、
フレーム画像Ｆ（ｋ）（ｋは時系列順を示す整数）からフレーム画像Ｆ（ｋ）の一部である部分画像ＨＦＧ（ｋ）を切り出すときの切出位置Ｓ（ｋ）を算出する切出位置算出工程であって、前記予測動きベクトルＹＶ０（Ｍ＋１）を用いて、前記画像揺れを減衰させる切出位置Ｓ（Ｍ＋１）を算出する切出位置算出工程と、
前記切出位置Ｓ（Ｍ＋１）を用いて、前記フレーム画像Ｆ（Ｍ＋１）から前記部分画像ＨＦＧ（Ｍ＋１）を切り出す部分画像切出工程とを有し、
前記部分画像切出工程による前記部分画像ＨＦＧ（Ｍ＋１）の切り出しを行うことに先立ち、前記画像受取工程による時系列順でＭ番目のフレームの前記フレーム画像Ｆ（Ｍ）の受け取り、前記動きベクトル検出工程による動きベクトルＶ０（Ｍ）の検出、前記動きベクトル予測工程による前記予測動きベクトルＹＶ０（Ｍ＋１）の予測、及び前記切出位置算出工程による前記切出位置Ｓ（Ｍ＋１）の算出を行い、
前記部分画像切出工程による前記部分画像ＨＦＧ（Ｍ＋１）の切り出しの一部と前記動きベクトル検出工程による動きベクトルＶ０（Ｍ＋１）の検出の一部とを並行して行うことを特徴とする画像処理方法。
【請求項１２】
コンピュータを、
時系列に連続する、表示すべき（Ｍ＋１）個（Ｍは２以上の整数）のフレーム画像Ｆ（１）〜Ｆ（Ｍ＋１）（括弧内は時系列順を示す整数）であって、画像揺れを発生させる可能性のある前記フレーム画像Ｆ（１）〜Ｆ（Ｍ＋１）を順次受け取るフレーム画像受取手段と、
フレーム画像Ｆ（ｐ−１）（１＜ｐ≦（Ｍ＋１））を基準とするフレーム画像Ｆ（ｐ）の動きを示す動きベクトルＶ０（ｐ）を検出することにより、前記（Ｍ＋１）個のフレーム画像Ｆ（１）〜Ｆ（Ｍ＋１）のうち、Ｍ個のフレーム画像Ｆ（２）〜Ｆ（Ｍ＋１）の動きを示すＭ個の動きベクトルＶ０（２）〜Ｖ０（Ｍ＋１）を得る動きベクトル検出手段と、
前記Ｍ個の動きベクトルＶ０（２）〜Ｖ０（Ｍ＋１）のうちの（Ｍ−１）個の動きベクトルＶ０（２）〜Ｖ０（Ｍ）で示される、Ｍ個のフレーム画像Ｆ（１）〜Ｆ（Ｍ）の全体的な動きを前記画像揺れにより特定されるＸ個（Ｘは整数）の基底の周波数に分解し、当該周波数より規定されるＸ個の正弦波を、時間軸上で、（Ｍ＋１）番目のフレーム画像Ｆ（Ｍ＋１）を表示するべき時刻まで延長することにより、フレーム画像Ｆ（Ｍ）を基準とする前記フレーム画像Ｆ（Ｍ＋１）の動きを示す、前記フレーム画像Ｆ（Ｍ＋１）の動きベクトルである予測動きベクトルＹＶ０（Ｍ＋１）を予測する動きベクトル予測手段と、
フレーム画像Ｆ（ｋ）（ｋは時系列順を示す整数）からフレーム画像Ｆ（ｋ）の一部である部分画像ＨＦＧ（ｋ）を切り出すときの切出位置Ｓ（ｋ）を算出する切出位置算出手段であって、前記予測動きベクトルＹＶ０（Ｍ＋１）を用いて、前記画像揺れを減衰させる切出位置Ｓ（Ｍ＋１）を算出する切出位置算出手段と、
前記切出位置Ｓ（Ｍ＋１）を用いて、前記フレーム画像Ｆ（Ｍ＋１）から前記部分画像ＨＦＧ（Ｍ＋１）を切り出す部分画像切出手段として機能させるためのプログラムであって、
前記部分画像切出手段による前記部分画像ＨＦＧ（Ｍ＋１）の切り出しを行うことに先立ち、前記画像受取手段による時系列順でＭ番目のフレームの前記フレーム画像Ｆ（Ｍ）の受け取り、前記動きベクトル検出手段による動きベクトルＶ０（Ｍ）の検出、前記動きベクトル予測手段による前記予測動きベクトルＹＶ０（Ｍ＋１）の予測、及び前記切出位置算出手段による前記切出位置Ｓ（Ｍ＋１）の算出を行い、
前記部分画像切出手段による前記部分画像ＨＦＧ（Ｍ＋１）の切り出しの一部と前記動きベクトル検出手段による動きベクトルＶ０（Ｍ＋１）の検出の一部とを並行して行うことを特徴とする画像処理プログラム。
【請求項１３】
請求項１２に記載の画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、手ぶれなどの画像揺れを含んでいる、動画像または時系列に連続する静止画像からフレーム画像を取得し、取得したフレーム画像から所定の画像を切り出したフレーム画像（補正フレーム画像）を生成することで、画像揺れを補正する画像処理装置、画像処理方法、プログラム、プログラムを記録した記録媒体に関する。
【背景技術】
【０００２】
ビデオカメラやデジタルカメラ、画像撮影機能を有する携帯電話などの画像撮像装置を用いて、所望する画像を動画像として撮影する際、手ぶれによって撮影画像に生じる画像揺れ補正する画像処理技術が提案されている（例えば、特許文献１）。
【０００３】
特許文献１には、撮像管で撮影した数フレーム分の画像をフレームメモリに保存すると共に、動き検出回路でフレーム間の画像の動きを示す動きベクトルを求め、フレーム画像から補正フレーム画像を切り出す位置を動きベクトルに応じて変えることで、画像揺れを補正するテレビジョン信号処理装置が開示されている。
【０００４】
画像揺れの補正は、フレーム画像からフレーム画像より小さい部分画像（補正フレーム画像）を切り出し、補正フレーム画像を出力して行われる。補正フレーム画像を切り出すとき、画像揺れが解消するように補正フレームを切り出すことにより、出力した補正フレーム画像から画像揺れがなくなる。
【０００５】
図８は、フレーム画像の動きベクトルを説明するための説明図である。図８（上部）には、動画像におけるフレーム画像Ｆ（１），Ｆ（２），Ｆ（３）をそれぞれ示している（括弧内の数字は時系列順を示している）。また、フレーム画像Ｆ（１），Ｆ（２），Ｆ（３）の内部に破線で示されたフレーム画像ＦＫ（１），ＦＫ（２），ＦＫ（３）は、補正フレーム画像と同じ大きさの画像である。図８（下側）は、補正フレーム画像ＦＫ（１），ＦＫ（２），ＦＫ（３）に写っている物体が同じ位置になるように配置した図である。このとき、フレーム画像ＦＫ（１）を基準とするフレーム画像ＦＫ（２）の動きを示す動きベクトルはＶ０（２）となり、フレーム画像ＦＫ（２）を基準とするフレーム画像ＦＫ（３）の動きを示す動きベクトルはＶ０（３）となる。この動きベクトルＶ０（２），Ｖ０（３）が、手ぶれなどにより生じた前記撮像装置の動きを示していることになる。
【０００６】
したがって、図８（上部）において、フレーム画像ＦＫ（２），ＦＫ（３）の位置を、動きベクトルＶ０（２），Ｖ０（３）をキャンセルする方向に移動させれば、フレーム画像ＦＫ（１），ＦＫ（２），ＦＫ（３）に写っている物体が動かないことになる。すなわち画像ぶれが解消されたフレーム画像が得られることになる。このように、動きベクトルＶ０（２），Ｖ０（３）をキャンセルする方向に移動させたフレーム画像が、補正フレーム画像である。
【０００７】
次に、図１９を用いて、画像ぶれの補正について説明する。最初に、動画像から時系列順に得られるフレーム画像Ｆ（２）をフレーム画像受取手段１１０が受け取る。次に、受け取ったフレーム画像Ｆ（２）を使って、動きベクトル検出手段１２０が、時系列順で一つ前のフレーム画像Ｆ（１）を基準とするフレーム画像の動きを示す動きベクトルＶ０（２）を検出する。そして、切出位置算出手段１３０が動きベクトルＶ０（２）をキャンセルして画像ぶれを解消する補正フレーム画像の切出位置を算出する。次に部分画像切出手段１４０が、フレーム画像Ｆ（２）から補正フレーム画像を切出して、画像表示手段１５０により補正フレーム画像を出力するのである。
【０００８】
【特許文献１】特公平８−１７４５４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかし、図１９の処理において、フレーム画像Ｆ（２）は、動きベクトル検出手段１２０と部分画像切出手段１４０の２箇所で使用される。そのため、動きベクトル検出手段１２０でフレーム画像Ｆ（２）を使用した後に、部分画像切出手段１４０が再び使うまでフレーム画像Ｆ（２）を記憶しておくフレームメモリ１１３が必要である。
【００１０】
本発明は、このような課題を解決するためになされたもので、手ぶれ補正処理を行う際に必要な、フレーム画像を保持するためのメモリ量を抑えることのできる画像処理装置、画像表示装置、画像撮像装置、画像処理方法、プログラムおよび記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、本発明に係る画像処理装置では、時系列に連続する、表示すべき（Ｍ＋１）個（Ｍは２以上の整数）のフレーム画像Ｆ（１）〜Ｆ（Ｍ＋１）（括弧内は時系列順を示す整数）であって、画像揺れを発生させる可能性のある前記フレーム画像Ｆ（１）〜Ｆ（Ｍ＋１）を順次受け取るフレーム画像受取手段と、フレーム画像Ｆ（ｐ−１）（１＜ｐ≦（Ｍ＋１））を基準とするフレーム画像Ｆ（ｐ）の動きを示す動きベクトルＶ０（ｐ）を検出することにより、前記（Ｍ＋１）個のフレーム画像Ｆ（１）〜Ｆ（Ｍ＋１）のうち、Ｍ個のフレーム画像Ｆ（２）〜Ｆ（Ｍ＋１）の動きを示すＭ個の動きベクトルＶ０（２）〜Ｖ０（Ｍ＋１）を得る動きベクトル検出手段と、前記Ｍ個の動きベクトルＶ０（２）〜Ｖ０（Ｍ＋１）のうちの（Ｍ−１）個の動きベクトルＶ０（２）〜Ｖ０（Ｍ）で示される、Ｍ個のフレーム画像Ｆ（１）〜Ｆ（Ｍ）の全体的な動きを前記画像揺れにより特定されるＸ個（Ｘは整数）の基底の周波数に分解し、当該周波数より規定されるＸ個の正弦波を、時間軸上で、（Ｍ＋１）番目のフレーム画像Ｆ（Ｍ＋１）を表示するべき時刻まで延長することにより、フレーム画像Ｆ（Ｍ）を基準とする前記フレーム画像Ｆ（Ｍ＋１）の動きを示す、前記フレーム画像Ｆ（Ｍ＋１）の動きベクトルである予測動きベクトルＹＶ０（Ｍ＋１）を予測する動きベクトル予測手段と、フレーム画像Ｆ（ｋ）（ｋは時系列順を示す整数）からフレーム画像Ｆ（ｋ）の一部である部分画像ＨＦＧ（ｋ）を切り出すときの切出位置Ｓ（ｋ）を算出する切出位置算出手段であって、前記予測動きベクトルＹＶ０（Ｍ＋１）を用いて、前記画像揺れを減衰させる切出位置Ｓ（Ｍ＋１）を算出する切出位置算出手段と、前記切出位置Ｓ（Ｍ＋１）を用いて、前記フレーム画像Ｆ（Ｍ＋１）から前記部分画像ＨＦＧ（Ｍ＋１）を切り出す部分画像切出手段とを有し、前記部分画像切出手段による前記部分画像ＨＦＧ（Ｍ＋１）の切り出しを行うことに先立ち、前記画像受取手段による時系列順でＭ番目のフレームの前記フレーム画像Ｆ（Ｍ）の受け取り、前記動きベクトル検出手段による動きベクトルＶ０（Ｍ）の検出、前記動きベクトル予測手段による前記予測動きベクトルＹＶ０（Ｍ＋１）の予測、及び前記切出位置算出手段による前記切出位置Ｓ（Ｍ＋１）の算出を行い、前記部分画像切出手段による前記部分画像ＨＦＧ（Ｍ＋１）の切り出しの一部と前記動きベクトル検出手段による動きベクトルＶ０（Ｍ＋１）の検出の一部とを並行して行うことを要旨とする。
【００１２】
これによれば、部分画像切出手段による、時系列順で（Ｍ＋１）番目のフレーム画像Ｆ（Ｍ＋１）から部分画像ＨＦＧ（Ｍ＋１）の切り出しが始まるときには、画像受取手段による時系列順でＭ番目のフレームのフレーム画像Ｆ（Ｍ）の受け取り、動きベクトル検出手段による動きベクトルＶ０（Ｍ）の検出、動きベクトル予測手段による予測動きベクトルＹＶ０（Ｍ＋１）の予測、及び切出位置算出手段による切出位置Ｓ（Ｍ＋１）の算出が終了しているので、部分画像切出手段が必要とする切出位置Ｓ（Ｍ＋１）は算出済みである。
【００１３】
そのため、部分画像切出手段は、フレーム画像受取手段が受け取ったフレーム画像Ｆ（Ｍ＋１）のデータをすぐに使うことができる。また、動きベクトル検出手段による動きベクトルＶ０（Ｍ＋１）の検出は、部分画像切出手段と並行して動作するので、フレーム画像受取手段が受け取ったフレーム画像Ｆ（Ｍ＋１）のデータは、動きベクトル検出手段でもすぐに使うことが出来る。したがって、フレーム画像Ｆ（Ｍ＋１）をフレームメモリなどに記憶しておく必要がなくなり、メモリ使用量を削減することが出来る。
【００１４】
また、動きベクトル予測部は、動きベクトル検出手段が検出した動きベクトルを用いて、Ｍ個のフレーム画像Ｆ（１）〜Ｆ（Ｍ）の動きを前記画像揺れにより特定されるＸ個の基底の周波数に分解する。Ｘ個の基底の周波数により規定されるＸ個の正弦波を時間軸上で（Ｍ＋１）番目のフレームを表示するべき時間まで延長することから、フレーム画像Ｆ（Ｍ）を基準とするフレーム画像Ｆ（Ｍ＋１）の動きを示す動きベクトルを精度良く予測する。
【００１５】
また、上記した本発明に係る画像処理装置では、前記（Ｍ−１）個の動きベクトルＶ０（２）〜Ｖ０（Ｍ）を用いて、任意のフレーム画像を基準位置とする前記Ｍ個のフレーム画像Ｆ（１）〜Ｆ（Ｍ）の全体的な動きを示す軌跡であるＭ個の動き軌跡Ｘ０（１）〜Ｘ０（Ｍ）を算出する動き軌跡算出手段をさらに有し、前記動きベクトル予測手段は、前記Ｍ個の動き軌跡Ｘ０（１）〜Ｘ０（Ｍ）を前記Ｘ個の基底の周波数に分解し、当該周波数より規定される前記Ｘ個の正弦波を、時間軸上で、前記フレーム画像Ｆ（Ｍ＋１）を表示するべき時刻まで延長することにより、前記予測動きベクトルＹＶ０（Ｍ＋１）を予測する。
【００１６】
これによれば、（Ｍ−１）個の動きベクトルＶ０（２）〜Ｖ０（Ｍ）から時間軸上の動きを示す軌跡であるＭ個の動き軌跡Ｘ０（１）〜Ｘ０（Ｍ）が算出される。軌跡、すなわち座標列としてフレーム画像の動きを表すことで、周波数への分解と正弦波の合成のための計算が簡単になり、処理時間を短縮することができる。
【００１７】
また、上記した本発明に係る画像処理装置では、前記基底の周波数の数Ｘは、前記Ｍ個とは異なる数であることが好ましい。
【００１８】
基底の周波数の数Ｘと前記Ｍ個が同じ数である場合、予測動きベクトルＹＶ０（Ｍ＋１）の算出において、時系列順で（Ｍ＋１）番目以降のフレーム画像の動きは、Ｍ個のフレーム画像Ｆ（１）〜Ｆ（Ｍ）の動きを周期的な繰り返しであるという周期性の性質が出てきてしまい、誤差が発生する。基底の周波数の数Ｘと前記Ｍ個が異なる数である場合、周期性の問題は発生しないので、フレーム画像Ｆ（Ｍ＋１）の動きの予測精度がさらに向上する。
【００１９】
また、前記基底の周波数の数Ｘは、前記Ｍ個よりも少ない数であることが好ましい。
【００２０】
こうすれば、Ｍ個のフレーム画像Ｆ（１）〜Ｆ（Ｍ）を表示すべき時間は、基底の周波数の周期よりも長くなり、Ｍ個のフレーム画像Ｆ（１）〜Ｆ（Ｍ）の中に、基底の周波数と同じか高い周波数成分の情報が正確に含まれるようになる。そのため、フレーム画像Ｆ（Ｍ＋１）の動きの予測精度がさらに向上する。
【００２１】
また、前記Ｘ個の基底の周波数のうち、直流成分を除く基底の周波数の周期は、フレーム画像Ｆ（１）を表示すべき時刻から前記フレーム画像Ｆ（Ｍ）を表示すべき時刻までの時間よりも短いことが好ましい。
【００２２】
これによれば、周期性の問題は発生しない上に、Ｍ個のフレーム画像Ｆ（１）〜Ｆ（Ｍ）の中に、基底の周波数と同じか高い周波数成分の情報が正確に含まれるようになる。そのため、フレーム画像Ｆ（Ｍ＋１）の動きの予測精度がさらに向上する。
【００２３】
また、前記動き軌跡算出手段が算出した前記動き軌跡Ｘ０（１）〜Ｘ０（Ｍ）から、前記Ｘ個の基底の周波数のうちの直流成分を除く基底の周波数より低い周波数成分であるベースラインを取り除いた軌跡を前記動き軌跡Ｘ０（１）〜Ｘ０（Ｍ）として修正するベースライン算出手段をさらに有し、前記動きベクトル予測手段は、前記ベースライン算出手段により修正された前記Ｍ個の動き軌跡Ｘ０（１）〜Ｘ０（Ｍ）を前記Ｘ個の基底の周波数に分解し、当該周波数より規定される前記Ｘ個の正弦波を、時間軸上で、（Ｍ＋１）番目の前記フレーム画像Ｆ（Ｍ＋１）を表示するべき時刻まで延長して得られる座標位置と、前記ベースラインを、時間軸上で、（Ｍ＋１）番目の前記フレーム画像Ｆ（Ｍ＋１）を表示するべき時刻まで延長して得られる座標位置とを加算することにより、動き軌跡Ｘ０（Ｍ＋１）を予測し、動き軌跡Ｘ０（Ｍ）及び前記動き軌跡Ｘ０（Ｍ＋１）から前記フレーム画像Ｆ（Ｍ＋１）の前記予測動きベクトルＹＶ０（Ｍ＋１）を予測する。
【００２４】
これによれば、予測動き軌跡算出手段での周波数への分解と正弦波を時間軸上で延長する処理の対象となる軌跡から、直流成分を除く基底の周波数より低周波成分を取り除く。そのため、修正された動き軌跡Ｘ０（１）〜Ｘ０（Ｍ）には、Ｘ個の基底の周波数より低い周波数が少なくなるので、予測精度が向上する。
【００２５】
また、前記ベースラインは、前記動き軌跡Ｘ０（１）〜Ｘ０（Ｍ）の各フレーム間の傾きを平均した傾きをもつ直線であることが好ましい。
【００２６】
これによれば、ベースラインは、動き軌跡Ｘ０（１）〜Ｘ０（Ｍ）の各フレーム間の傾き、すなわち、動きベクトルＶ０（２）〜Ｖ０（Ｍ）を平均した傾きを持つ直線となる。そのため、ベースラインの算出が簡略化できる。
【００２７】
また、前記動きベクトル予測手段が前記動き軌跡Ｘ０（１）〜Ｘ０（Ｍ）を使用する前に、時系列順で（Ｍ）番目のフレームに近いほど大きな重みを施すことにより、前記動き軌跡Ｘ０（１）〜Ｘ０（Ｍ）を修正する動き軌跡重み付け手段をさらに有することが好ましい。
【００２８】
これによれば、動き軌跡重み付け手段は、動き軌跡Ｘ０（１）〜Ｘ０（Ｍ）に、時系列順でＭ番目のフレームに近いほど大きな重みを施す。そして、予測フレーム画像動き算出手段により、動き軌跡Ｘ０（１）〜Ｘ０（Ｍ）をＸ個の基底の周波数に分解して得られるＸ個の正弦波は、時系列順でＭ番目のフレーム画像に近いフレーム画像の動きが強調される。そのため、動きベクトル予測手段手段により、予測動きベクトルＹＶ０（Ｍ＋１）は、時系列順で遠いフレーム画像の動きよりも、時系列順で近いフレーム画像の動きを反映させらるので、より正確な予測が可能になる。
【００２９】
また、前記動き軌跡重み付け手段は、時系列順で１番目のフレームに対応する値が０に最も近く、時系列順でＭ番目のフレームに対応する値が１に最も近くなる関数Ｗ（ｎ）を用いて、フレームごとに動き軌跡Ｘ０（ｎ）の座標とＷ（ｎ）の値をかけて前記動き軌跡Ｘ０（１）〜Ｘ０（Ｍ）を修正することが好ましい。
【００３０】
これによれば、動き軌跡重み付け手段は、関数Ｗ（ｎ）と動き軌跡Ｘ０（ｎ）とをかけて動き軌跡Ｘ０（１）〜Ｘ０（Ｍ）を修正する。そのため、動き軌跡の修正を簡単にかつ早く行うことが出来る。
【００３１】
また、前記部分画像ＨＦＧ（Ｍ＋１）を時系列順に順次を表示する画像表示手段を有する。
【００３２】
この構成によれば、本発明の画像処理装置と同等の効果を持つ画像表示装置が得られる。
【００３３】
また、本発明に係る画像処理方法は、時系列に連続する、表示すべき（Ｍ＋１）個（Ｍは２以上の整数）のフレーム画像Ｆ（１）〜Ｆ（Ｍ＋１）（括弧内は時系列順を示す整数）であって、画像揺れを発生させる可能性のある前記フレーム画像Ｆ（１）〜Ｆ（Ｍ＋１）を順次受け取るフレーム画像受取工程と、フレーム画像Ｆ（ｐ−１）（１＜ｐ≦（Ｍ＋１））を基準とするフレーム画像Ｆ（ｐ）の動きを示す動きベクトルＶ０（ｐ）を検出することにより、前記（Ｍ＋１）個のフレーム画像Ｆ（１）〜Ｆ（Ｍ＋１）のうち、Ｍ個のフレーム画像Ｆ（２）〜Ｆ（Ｍ＋１）の動きを示すＭ個の動きベクトルＶ０（２）〜Ｖ０（Ｍ＋１）を得る動きベクトル検出工程と、前記Ｍ個の動きベクトルＶ０（２）〜Ｖ０（Ｍ＋１）のうちの（Ｍ−１）個の動きベクトルＶ０（２）〜Ｖ０（Ｍ）で示される、Ｍ個のフレーム画像Ｆ（１）〜Ｆ（Ｍ）の全体的な動きを前記画像揺れにより特定されるＸ個（Ｘは整数）の基底の周波数に分解し、当該周波数より規定されるＸ個の正弦波を、時間軸上で、（Ｍ＋１）番目のフレーム画像Ｆ（Ｍ＋１）を表示するべき時刻まで延長することにより、フレーム画像Ｆ（Ｍ）を基準とする前記フレーム画像Ｆ（Ｍ＋１）の動きを示す、前記フレーム画像Ｆ（Ｍ＋１）の動きベクトルである予測動きベクトルＹＶ０（Ｍ＋１）を予測する動きベクトル予測工程と、フレーム画像Ｆ（ｋ）（ｋは時系列順を示す整数）からフレーム画像Ｆ（ｋ）の一部である部分画像ＨＦＧ（ｋ）を切り出すときの切出位置Ｓ（ｋ）を算出する切出位置算出工程であって、前記予測動きベクトルＹＶ０（Ｍ＋１）を用いて、前記画像揺れを減衰させる切出位置Ｓ（Ｍ＋１）を算出する切出位置算出工程と、前記切出位置Ｓ（Ｍ＋１）を用いて、前記フレーム画像Ｆ（Ｍ＋１）から前記部分画像ＨＦＧ（Ｍ＋１）を切り出す部分画像切出工程とを有し、前記部分画像切出工程による前記部分画像ＨＦＧ（Ｍ＋１）の切り出しを行うことに先立ち、前記画像受取工程による時系列順でＭ番目のフレームの前記フレーム画像Ｆ（Ｍ）の受け取り、前記動きベクトル検出工程による動きベクトルＶ０（Ｍ）の検出、前記動きベクトル予測工程による前記予測動きベクトルＹＶ０（Ｍ＋１）の予測、及び前記切出位置算出工程による前記切出位置Ｓ（Ｍ＋１）の算出を行い、前記部分画像切出工程による前記部分画像ＨＦＧ（Ｍ＋１）の切り出しの一部と前記動きベクトル検出工程による動きベクトルＶ０（Ｍ＋１）の検出の一部とを並行して行うことを要旨とする。
【００３４】
この構成によれば、本発明の画像処理装置と同等の効果が得られる。
【００３５】
また、本発明に係る画像処理プログラムは、コンピュータを、時系列に連続する、表示すべき（Ｍ＋１）個（Ｍは２以上の整数）のフレーム画像Ｆ（１）〜Ｆ（Ｍ＋１）（括弧内は時系列順を示す整数）であって、画像揺れを発生させる可能性のある前記フレーム画像Ｆ（１）〜Ｆ（Ｍ＋１）を順次受け取るフレーム画像受取手段と、フレーム画像Ｆ（ｐ−１）（１＜ｐ≦（Ｍ＋１））を基準とするフレーム画像Ｆ（ｐ）の動きを示す動きベクトルＶ０（ｐ）を検出することにより、前記（Ｍ＋１）個のフレーム画像Ｆ（１）〜Ｆ（Ｍ＋１）のうち、Ｍ個のフレーム画像Ｆ（２）〜Ｆ（Ｍ＋１）の動きを示すＭ個の動きベクトルＶ０（２）〜Ｖ０（Ｍ＋１）を得る動きベクトル検出手段と、前記Ｍ個の動きベクトルＶ０（２）〜Ｖ０（Ｍ＋１）のうちの（Ｍ−１）個の動きベクトルＶ０（２）〜Ｖ０（Ｍ）で示される、Ｍ個のフレーム画像Ｆ（１）〜Ｆ（Ｍ）の全体的な動きを前記画像揺れにより特定されるＸ個（Ｘは整数）の基底の周波数に分解し、当該周波数より規定されるＸ個の正弦波を、時間軸上で、（Ｍ＋１）番目のフレーム画像Ｆ（Ｍ＋１）を表示するべき時刻まで延長することにより、フレーム画像Ｆ（Ｍ）を基準とする前記フレーム画像Ｆ（Ｍ＋１）の動きを示す、前記フレーム画像Ｆ（Ｍ＋１）の動きベクトルである予測動きベクトルＹＶ０（Ｍ＋１）を予測する動きベクトル予測手段と、フレーム画像Ｆ（ｋ）（ｋは時系列順を示す整数）からフレーム画像Ｆ（ｋ）の一部である部分画像ＨＦＧ（ｋ）を切り出すときの切出位置Ｓ（ｋ）を算出する切出位置算出手段であって、前記予測動きベクトルＹＶ０（Ｍ＋１）を用いて、前記画像揺れを減衰させる切出位置Ｓ（Ｍ＋１）を算出する切出位置算出手段と、前記切出位置Ｓ（Ｍ＋１）を用いて、前記フレーム画像Ｆ（Ｍ＋１）から前記部分画像ＨＦＧ（Ｍ＋１）を切り出す部分画像切出手段として機能させるためのプログラムであって、前記部分画像切出手段による前記部分画像ＨＦＧ（Ｍ＋１）の切り出しを行うことに先立ち、前記画像受取手段による時系列順でＭ番目のフレームの前記フレーム画像Ｆ（Ｍ）の受け取り、前記動きベクトル検出手段による動きベクトルＶ０（Ｍ）の検出、前記動きベクトル予測手段による前記予測動きベクトルＹＶ０（Ｍ＋１）の予測、及び前記切出位置算出手段による前記切出位置Ｓ（Ｍ＋１）の算出を行い、前記部分画像切出手段による前記部分画像ＨＦＧ（Ｍ＋１）の切り出しの一部と前記動きベクトル検出手段による動きベクトルＶ０（Ｍ＋１）の検出の一部とを並行して行うことを要旨とする。
【００３６】
この構成によれば、本発明の画像処理装置と同等の効果が得られる。
【００３７】
また、本発明を画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体としても捉えることができる。この構成によれば、本発明の画像処理装置と同等の効果が得られる。
【発明を実施するための最良の形態】
【００３８】
次に、本発明の実施の形態を説明する。図１は本発明の一実施形態としての画像処理装置の概略構成を示す説明図である。この画像処理装置は汎用のコンピュータ１００であり、入力インターフェイス（Ｉ／Ｆ）１０１、ＣＰＵ１０３、ＲＡＭ１０２、ＲＯＭ１０４、ハードディスク１０５および出力インターフェイス（Ｉ／Ｆ）１０６とを備え、これらはバス１０７を介して互いに接続されている。入力Ｉ／Ｆ１０１には、動画像を入力する装置としてのデジタルビデオカメラ２００（画像撮像装置）およびＤＶＤプレーヤ２１０が接続され、出力Ｉ／Ｆ１０６には動画像を出力する装置（画像表示装置）としてのビデオプロジェクタ３００およびディスプレイ３１０が接続されている。その他、必要に応じて、動画像を記憶した記憶媒体からデータを読み出すことが可能な駆動装置や、動画像を出力することが可能な画像表示装置をそれぞれ接続することもできる。なお、動画像には時系列に連続する静止画像も含まれる。
【００３９】
また、上記画像撮像装置および画像表示装置が、それぞれ本発明による画像処理装置を備えるように構成することもできる。
【００４０】
入力Ｉ／Ｆ１０１は、所定の画素数とＲＧＢ形式など所定の画素値を有する動画像からフレーム画像を取得し、コンピュータ１００で処理できるフレーム画像データに変換する。本実施形態では、フレーム画像を構成する所定枚数のフィールド画像から、フレーム画像データを取得するものとする。フレーム画像は、記録方式に応じて通常複数の所定枚数のフィールド画像によって構成されている。例えば、ＮＴＳＣ方式で記録された動画像の場合は、インターレース方式であり、毎秒６０枚のフィールド画像によって毎秒３０枚のフレーム画像が構成されている。従って、入力Ｉ／Ｆ１０１は、２つのフィールド画像の画素値を用いて１つのフレーム画像を取得する。もとより、１つのフィールド画像が１つのフレーム画像を構成しているプレグレッシブ方式（ノンインターレース方式）のような場合は、１つのフィールド画像を用いて１つのフレーム画像を取得することになる。
【００４１】
変換されたフレーム画像データは、ＲＡＭ１０２又はハードディスク１０５に格納される。ＣＰＵ１０３は格納されたフレーム画像データに対して所定の画像処理を実行し、補正フレーム画像データとして再びＲＡＭ１０２又はハードディスク１０５に格納する。補正フレーム画像データを生成するまでに行われる所定の画像処理に際し、必要に応じてＲＡＭ１０２やハードディスク１０５が画像処理データのワーキングメモリとして用いられる。そして、格納した補正フレーム画像データを、出力Ｉ／Ｆ１０６を介して所定の画像データに変換し、ビデオプロジェクタ３００などに送出する。
【００４２】
所定の画像処理を記録したアプリケーションプログラムは、予めハードディスク１０５やＲＯＭ１０４に格納されていることとしてもよい。例えばＣＤ−ＲＯＭなどのコンピュータが読み取り可能な記録媒体によって外部から供給され、図示しないＤＶＤ−Ｒ／ＲＷドライブを介してハードディスク１０５に記憶することによって格納されるものとしてもよい。もとより、インターネットなどのネットワーク手段を介して、アプリケーションプログラムを供給するサーバー等にアクセスし、データをダウンロードすることによってハードディスク１０５に格納されるものとしてもよい。
【００４３】
ＣＰＵ１０３は、バス１０７を介してハードディスク１０５またはＲＯＭ１０４に格納されたアプリケーションプログラムを読み出し、この読み出したアプリケーションプログラムを所定のオペレーティングシステムのもとで実行することによって、画像処理装置として機能する。図２に、本発明の一実施形態としての画像処理装置の機能ブロック図を示す。図２に示すように、このアプリケーションプログラムが実行されることにより、ＣＰＵ１０３は、フレーム画像受取手段１１０、動きベクトル検出手段１２０、動き軌跡算出手段１２１、ベースライン算出手段１２２、動き軌跡重み付け手段１２３、動きベクトル予測手段１２４、メモリ１２６、切出位置算出手段１３０、部分画像切出手段１４０および画像表示手段１５０として機能する。
【００４４】
各部はそれぞれ以下の処理を司る。フレーム画像受取手段１１０は、コンピュータ１００に入力した動画像から時系列順にフレーム画像を取得する。動きベクトル検出手段１２０は、取得されたフレーム画像の動きベクトルを算出して、メモリ１２６に格納するとともに、動き軌跡算出手段１２１に供給する。動き軌跡算出手段１２１は、現フレームから過去Ｍフレーム分の動き軌跡を用いて、現フレームから過去Ｍフレーム分のフレーム画像の動きを示す動き軌跡を算出する。そして、ベースライン算出手段１２２は、動き軌跡の低周波成分であるベースラインを算出して、動き軌跡算出手段１２１が算出した動き軌跡からベースラインの成分を取り除いたものを動き軌跡として修正する。次に動き軌跡重み付け手段１２３は、ベースライン算出手段１２２が修正した動き軌跡に対して、現フレームに近いフレームが１であり、現フレームから離れるに従って０に近づいていく窓関数Ｗ（ｎ）を用いて、動き軌跡に重み付けを施して動き軌跡を修正する。この処理により、動き軌跡は、現フレームに近いほど、修正前の軌跡に近く、現フレームから離れるに従って、振幅がほとんどない軌跡になる。次に動きベクトル予測手段１２４は、動き軌跡をＸ個の基底の周波数に分解する。そして、基底の周波数により規定される正弦波の重ね合わせで動き軌跡を表せるようにする。次にこの正弦波を現フレームの次のフレームの時刻まで延長することで、次フレームのフレーム画像の動き軌跡を予測する。そして、この動き軌跡にベースライン成分を加算し、現フレームの動き軌跡と予測した次フレームの動き軌跡から次フレームの動きベクトルを予測するのである。
切出位置算出手段１３０は、動きベクトルなどを用いて、フレーム画像から所定の画像を切り出すための画像位置を補正位置ベクトルとして算出する。部分画像切出手段１４０は、算出された補正位置ベクトルなどに基づいて補正フレーム画像を生成する。画像表示手段１５０は、生成された補正フレーム画像を所定の画像データに変換して出力する。
【００４５】
次に、本実施形態の画像処理装置について各部が行う処理を、図３の処理フローチャートにより説明する。図３に示した処理が開始されると、まずステップＳ１０にて、フレーム画像受取手段１１０は、入力される動画像から時系列順に、フレーム画像Ｆ（ｎ）をコンピュータ１００に取り込む処理を行う。なお、本実施形態における以下の画像処理装置の説明において、（ｎ）は時系列順でｎ番目（ｎは１以上の整数）であることを意味する。また、図３において、ｍは整数であり、ｎおよびｍの初期値はそれぞれｎ＝１、ｍ＝０とする。
【００４６】
本実施形態では、動画像の入力をトリガーにして、自動的にフレーム画像を時系列順で順次取り込むこととする。もとより、取り込むフレーム画像を指定することとしてもよい。フレーム画像の指定方法は、動画像からフレーム画像を取得してコンピュータ１００に取り込む際、通常付加されるフレーム画像の識別番号を指定するようにしてもよい。あるいは、ユーザーがビデオカメラに備えられたモニターなどのディスプレイ（図示せず）に表示されるフレーム画像を見ながら画像を直接指定することとしてもよい。
【００４７】
次に、ステップＳ２０において、フレーム画像受取手段１１０は、コンピュータ１００に取り込むことによって取得したフレーム画像Ｆ（ｎ）が存在するか否かを判定する。動画像から取得したフレーム画像Ｆ（ｎ）が存在すれば（ＹＥＳ）ステップＳ２４に進む。一方、動画像から取得したフレーム画像Ｆ（ｎ）が存在しなければ（ＮＯ）、ステップＳ２２に進みｍを更新して（ｍ＝ｍ＋１として）ステップＳ２４に進む。
【００４８】
そして、ステップＳ２４において、ｍ＝２か否かが判定され、ｍ＝２の場合（Ｓ２４、ＹＥＳ）には画像処理装置における処理を終了する。
【００４９】
一方、ｍ＝２でない場合（Ｓ２４、ＮＯ）、（Ａ）Ｓ２６、Ｓ３０、Ｓ３５およびＳ４０における処理と、（Ｂ）Ｓ２８およびＳ５０における処理と、（Ｃ）Ｓ６５およびＳ７０における処理とが、Ｓ１０において１フレーム分の情報を読み込む間に並行して行われる。
【００５０】
まず、Ｓ２６、Ｓ３０、Ｓ３５、Ｓ４０における処理について説明する。
（Ａ）Ｓ２６、Ｓ３０、Ｓ３５、Ｓ４０における処理
ステップＳ２６において、ｍ＝１か否かが判定され、ｍ＝１の場合（Ｓ２６、ＹＥＳ）には、ステップＳ８０に進む。
【００５１】
一方、ｍ＝１でない場合（Ｓ２６、ＮＯ）、ステップＳ３０において、動きベクトル検出手段１２０は、取得したフレーム画像Ｆ（ｎ）の動きベクトルＶ０（ｎ）の検出処理を行う。時系列順ｎ−１番目のフレーム画像Ｆ（ｎ−１）に対するフレーム画像Ｆ（ｎ）の相対位置を検出し、その相対位置にフレーム画像Ｆ（ｎ）を配置する。そして、フレーム画像Ｆ（ｎ−１）の画面位置に対するフレーム画像Ｆ（ｎ）の画面位置のずれ量を、Ｘ，Ｙ方向のそれぞれの画素数として検出する。このＸ方向の画素数をＸ成分、Ｙ方向の画素数をＹ成分とするベクトルによって表したものが、フレーム画像Ｆ（ｎ）の動きベクトルＶ０（ｎ）となる。算出した動きベクトルＶ０（ｎ）のデータＶ０（ｎ）は、メモリ１２６（ＲＡＭ１０２など）に格納される。
【００５２】
次に、図４及び図５を参照して、動きベクトル検出手段１２０による、図３のＳ３０におけるｎ番目のフレーム画像の動きベクトル検出処理を詳細に説明する。ここで、図４は、図３のＳ３０におけるｎ番目のフレーム画像の動きベクトルの検出処理を詳細に説明するためのフローチャートである。また、図５は、図３のＳ３０におけるｎ番目のフレーム画像の動きベクトルの検出処理を詳細に説明するための説明図である。
【００５３】
まず、動きベクトル検出手段１２０は、以下で図５を参照して説明する差分値行列をリセットする（ステップＳ３００）。すなわち、差分値行列の成分の値をすべて０にする。
【００５４】
次に、動きベクトル検出手段１２０は、図５に示す差分算出領域の座標データを読み込む（ステップＳ３０２）。すなわち、動きベクトル検出手段１２０は、各サンプリングポイント毎に設定されている、フレーム画像内における差分算出領域の範囲を示す座標データをメモリ１２６から読み込む。なお、当該実施形態において、「差分算出領域」とは、図５において点線で示される正方形状の領域で、以下で説明するステップＳ３１０〜Ｓ３１６における処理を行う領域である。各処理については後述する。
【００５５】
次に、動きベクトル検出手段１２０は、（ｎ−１）番目のフレーム画像のサンプリングポイントにおけるデータを読み込む（ステップＳ３０４）。すなわち、動きベクトル検出手段１２０は、メモリ１２６から、（ｎ−１）番目のフレーム画像におけるサンプリングポイント（図５に示す）の座標データおよび画素データを読み込む。当該実施形態において、読み込まれる画素データは、ＲＧＢいずれかのチャンネルの値または輝度値とする。
【００５６】
次に、動きベクトル検出手段１２０は、ｎ番目のフレーム画像における各画素データ（入力信号）およびその座標データを読み込む（ステップＳ３０６）。ここで、読み込まれる画素データは、ＲＧＢいずれかのチャンネルの値または輝度値であり、座標データは、フレーム画像内における各画素の位置を示す。読み込む順番は、図５に示すように、フレーム画像の左上から右横方向に読み込み、順次下方に１ライン毎読み込む。最終的にはフレーム画像の右下のポイントＥＰ２まで到達し、当該読み込み処理を終了する。
【００５７】
次に、動きベクトル検出手段１２０は、ステップＳ３０６において読み込まれた各画素が差分算出領域内に存在するか否かを判定する（ステップＳ３０８）。具体的には、ステップＳ３０６で読み込んだ画素の座標データと、ステップＳ３０２で読み込んだ差分算出領域の座標データを比較し、ステップＳ３０６で読み込んだ画素が差分算出領域内に存在するか否かを判定する。
【００５８】
判定の結果、ステップＳ３０６で読み込んだ画素が差分算出領域外ならば（ステップＳ３０８、Ｎｏ）、ステップＳ３０６に戻り、次の画素を読み込む。
【００５９】
判定の結果、ステップＳ３０６で読み込んだ画素が差分算出領域内に存在する場合（ステップＳ３０８、Ｙｅｓ）、動きベクトル検出手段１２０は、ステップＳ３０６で読み込んだ画素の座標データと、ステップＳ３０４で読み込んだ（ｎ−１）番目のフレーム画像におけるサンプリングポイントの座標データとが一致するか否かを判定する（ステップＳ３１０）。判定の結果、ステップＳ３０６で読み込んだ画素の座標データと、ステップＳ３０４で読み込んだ（ｎ−１）番目のフレーム画像におけるサンプリングポイントの座標データとが一致すれば（ステップＳ３１０、Ｙｅｓ）、動きベクトル検出手段１２０は、ステップＳ３０６で読み込んだｎ番目のフレーム画像における画素の画素データをサンプリングデータとしてメモリ１２６に保存する（ステップＳ３１２）。
【００６０】
そして、ステップＳ３１２の処理の後、またはステップＳ３１０における判定の結果、ステップＳ３０６で読み込んだ画素の座標データと、ステップＳ３０４で読み込んだ（ｎ−１）番目のフレーム画像におけるサンプリングポイントの座標データとが一致しない場合（ステップＳ３１０、Ｎｏ）、動きベクトル検出手段１２０は、（ｎ−１）番目のフレーム画像におけるサンプリングポイントのデータと、ｎ番目のフレーム画像における画素データとの差分の絶対値を算出して（ステップＳ３１４）、当該算出された絶対値を差分値行列の対応成分に加算する（ステップＳ３１６）。
【００６１】
当該実施形態において、図５に示すように、差分値行列は差分算出領域内の全画素数と同数のデータを格納できるように構成され、差分値行列の中央の座標がサンプリングポイントの座標に相当する。差分値の絶対値を加算する成分は、差分値行列内のサンプリングポイントに対する位置関係において、ステップＳ３０６で読み込んだ画素座標と同じ位置にある成分である。
【００６２】
動きベクトル検出手段１２０は、差分算出領域内の全画素の読み込みが終了したか否かの判定を行い（ステップＳ３１８）、ステップＳ３０６で読み込んだ画素の座標が図５の「差分値計算が終了するポイントＥＰ１」か否かを判定する。差分算出領域内の全画素の読み込みが終了していない場合（ステップＳ３１８、Ｎｏ）、動きベクトル検出手段１２０は、ステップＳ３０６〜Ｓ３１６の処理を繰り返す。
【００６３】
差分算出領域内の全画素の読み込みが終了し、ステップＳ３０６で読み込んだ画素の座標が図５の「差分値計算が終了するポイントＥＰ１」に到達した場合（ステップＳ３１８、Ｙｅｓ）、フレーム画像受取手段１１０がｎ番目のフレーム画像における残りの画素の読み込みを継続するとともに、動きベクトル検出手段１２０は、ｎ番目のフレーム画像の動きベクトルを検出する（ステップＳ３２０）。すなわち、動きベクトル検出手段１２０は、差分値行列内における最小値の成分のサンプリングポイントからの位置（ベクトル）を求め、当該位置（ベクトル）をｎ番目のフレーム画像の動きベクトルとして検出して、メモリ１２６に保存する。
【００６４】
以上により図３のステップＳ３０におけるｎ番目のフレーム画像の動きベクトル検出処理が終了して、図３のステップＳ３５における（ｎ＋１）番目のフレーム画像の動きベクトルの予測処理が行われる。図６の（ｎ＋１）番目のフレーム画像の動きベクトルの予測処理を説明するためのフローチャートと、図７の動き軌跡による動きベクトルの予測処理を説明するための説明図を用いて、（ｎ＋１）番目のフレーム画像の動きベクトルの予測処理を説明する。
【００６５】
最初に、動き軌跡算出手段１２１は、（ｎ−Ｍ＋１）番目からｎ番目までのＭ個のフレーム画像の動きベクトルＶ０（ｎ−Ｍ＋１）〜Ｖ０（ｎ）をメモリ１２６から読み取る（ステップＳ３４０）。また、フレーム画像は時系列順で１番目から始まるため、時系列順で２番目より前フレーム画像の動きベクトルは算出されていない。そのため、（ｎ−Ｍ＋１）≦１である場合は、Ｖ０（ｑ）＝０（ｑ≦１）として、動き軌跡算出手段１２１がＭ個の動きベクトル（ｎ−Ｍ＋１）〜Ｖ０（ｎ）を読み取れるようにする。Ｍは、手ぶれなどの画像揺れの周波数などにより予め決められる数であり、本実施形態では８とする。次に、動き軌跡算出手段１２１は、式（１）を用いて（ｎ−Ｍ＋１）番目からｎ番目までのＭ個のフレーム画像の座標を示す動き軌跡Ｘ（−Ｍ＋１）〜Ｘ（０）を算出する（ステップＳ３４２）。動き軌跡Ｘ（ｉ）と後で説明する修正された動き軌跡Ｘ１（ｉ），Ｘ２（ｉ），Ｘ３（ｉ），Ｘ４（ｉ）と、窓関数Ｗ（ｉ）、及びベースラインＢ（ｉ）における括弧内の整数ｉは、フレーム画像の時系列順を示す整数である。ｉは、フレーム画像Ｆ（ｎ）で使用している時系列順とは原点が異なり、ｎ番目のフレーム画像Ｆ（ｎ）を原点０とする時系列順を示す整数である。すなわち、動き軌跡Ｘ（０）で示される座標は、フレーム画像Ｆ（ｎ）の座標を指す。以下の説明では、ｎ番目のフレーム画像Ｆ（ｎ）を原点０とする時系列順を時系列順ｉと呼び、この時系列順を変数ｉを使って示して，ｎのような時系列順と区別する。
【００６６】
【数１】
2007028251.tif 000003
【００６７】
式（１）は、Ｍ個の動きベクトルからＭ個のフレーム画像の座標を算出して動き軌跡を求めており、各フレーム画像の座標の原点は、フレーム画像Ｆ（ｎ−Ｍ）となる。また、式（２）を使い、フレーム画像Ｆ（ｎ−Ｍ＋１）を原点として、（−Ｍ＋２）≦ｉ≦０の範囲のｉについて動き軌跡Ｘ（ｉ）を算出しても良い。
【００６８】
当該実施形態では、Ｍ個のフレーム画像の動きから、まだ取得していない次フレームのフレーム画像Ｆ（ｎ＋１）の動きを予測し、予測した動きを元にして手ぶれなどの画像揺れを補正する。そのため、手ぶれなどの画像揺れを十分に取り除くためには、フレーム画像Ｆ（ｎ＋１）の予測精度を高くする必要がある。フレーム画像Ｆ（ｎ＋１）の予測精度は、Ｍ個のフレーム画像の動きから手ぶれなどの画像揺れの情報を正確に抽出できるかどうかに依存する。一般に、手ぶれなど不快な画像の揺れの周波数は、２〜４Ｈｚより高い周波数の動きであるといわれている。したがって、Ｍ個のフレーム画像を表示する時間（以下、参照時間と呼ぶ）は、取り除きたい画像の揺れの周期（１／２〜１／４）を元にして決めると良い。フレームレートが３０フレーム／秒である動画の場合では、Ｍ＝８〜１６（参照時間＝０．２７秒〜０．５３秒）ぐらいにするのがよく、この中でもＭ＝８ぐらいが最適である。このように、Ｍの値は、取り除きたい画像の揺れの周波数と、フレームレートから決めると良い。
【００６９】
次に、ベースライン算出手段１２２は、動き軌跡Ｘ（−Ｍ＋１）〜Ｘ（０）のベースラインＢ（ｉ）を算出し、動き軌跡Ｘ（−Ｍ＋１）〜Ｘ（０）からベースラインＢ（ｉ）の成分を取り除いた動き軌跡Ｘ１（−Ｍ＋１）〜Ｘ１（０）を算出する（ステップＳ３４４）。ベースラインは、式（４）に示すようにＭ個の動きベクトルＶ０（ｎ−Ｍ＋１）〜Ｖ０（ｎ）の平均ベクトルＶＢを算出することで、式（３）のように示される。また、平均ベクトルＶＢは、（Ｍ−１）個の動きベクトルＶ０（ｎ−Ｍ＋２）〜Ｖ０（ｎ）の平均から算出しても良い。
【００７０】
Ｂ（ｉ）＝Ｘ（０）＋ｉ×ＶＢ                              …  （３）
【００７１】
【数２】
2007028251.tif 000004
【００７２】
図７（Ａ）は、動き軌跡Ｘ（−Ｍ＋１）〜Ｘ（０）とベースラインＢ（ｉ）をグラフに表したものである。図７（Ａ）より、ベースラインＢ（ｉ）は、動き軌跡Ｘ（ｉ）の大きな動き、すなわち低周波の動き軌跡であることがわかる。また、ベースラインＢ（ｉ）は、式（３）とは別の、動き軌跡Ｘ（ｉ）の低周波成分を表すことが出来る式を用いても良い。次にベースライン算出手段１２２は、式（５）を用いて、動き軌跡Ｘ（−Ｍ＋１）〜Ｘ（０）からベースラインＢ（ｉ）の成分を取り除いて、修正された動き軌跡Ｘ１（ｉ）を算出する。
【００７３】
Ｘ１（ｉ）＝Ｘ（ｉ）−Ｂ（ｉ）                              …  （５）
【００７４】
修正された動き軌跡Ｘ１（ｉ）は、ベースラインＢ（ｉ）で表される大きな動きが取り除かれているため、手ぶれなどに由来する周波数の高い画像の揺れの成分が強調されていることになる。そのため、この修正された動き軌跡Ｘ１（ｉ）を使うことで、手ぶれなどに由来する周波数の高い画像の揺れに関連する動きを精度良く計算をすることができる。
【００７５】
次に、動き軌跡重み付け手段１２３は、動き軌跡Ｘ１（ｉ）に式（６）で示される窓関数を用いて、式（７）のように重み付けを施して、重み付けされた動き軌跡Ｘ２（ｉ）を算出する（ステップＳ３４６）。
Ｗ（ｉ）＝ｅｘｐ｛−（２ｉ／Ｍ）2｝                              …  （６）
Ｘ２（ｉ）＝Ｘ１（ｉ）×Ｗ（ｉ）                                  …  （７）
【００７６】
図７（Ｂ）は窓関数の形状を示したグラフである。窓関数は、一番新しいフレーム画像Ｆ（ｎ）に対応する窓関数Ｗ（０）の値が１であり、そこから時系列順で古いフレームに行くに従って０に近づく形状をしている。図７（Ｃ）は、式（７）を用いて、修正された動き軌跡Ｘ１（ｉ）に窓関数をかけて重み付けを施した動き軌跡Ｘ２（ｉ）である。図７（Ｃ）から明らかなように、重み付けされた動き軌跡Ｘ２（ｉ）は、古いフレームほど振幅が小さく、新しいフレームになればなるほど、振幅が大きくなる。
【００７７】
次に、動きベクトル予測手段１２４は、式（８）、式（９）、式（１０）を用いて、重み付けされた動き軌跡Ｘ２（ｉ）をＸ個の基底の周波数に分解して、Ｘ個の正弦波の重ね合わせで表現する（ステップＳ３４８）。式（８）のＸ３（ｉ）が、正弦波の重ね合わせで表現された動き軌跡である。
【００７８】
重み付けされた動き軌跡Ｘ２（ｉ）は、時系列順でｎ番目のフレームに近いフレームほど振幅が大きくなるように重み付けを施されているので、Ｘ個の正弦波にも時系列順でｎ番目のフレームに近いフレームの大きな振幅の動きが強く反映されることになる。そのため、Ｘ個の正弦波には、時系列順で（ｎ＋１）に近いフレーム画像の動き、すなわち（ｎ＋１）に近い時間帯の手ぶれによる画像揺れが多く含まれていることになる。そのため、Ｘ個の正弦波から予測される次フレームの位置の予測精度が向上する。
【００７９】
【数３】
2007028251.tif 000005
【００８０】
Ｘ個の基底の周波数は、フレームレートをｆ（フレーム／秒）とすると、０（Ｈｚ），ｆ／Ｘ（Ｈｚ），２ｆ／Ｘ（Ｈｚ），・・・，（Ｘ−１）ｆ／Ｘ（Ｈｚ）である。ｕ＝１の時の基底の周期になるＸ／ｆが、参照時間Ｍ／ｆと等しくなると、式（８）では周期性が出てしまい、（ｎ＋１）番目のフレーム画像の位置の予測精度が悪くなる。そのため、ＸとＭは違う値であるほうが良い。また、ｕ＝１の時の基底の周期になるＸ／ｆを、参照時間Ｍ／ｆよりも短くすれば、参照時間Ｍ／ｆの中に基底の周波数が１周期分以上入ることになり、予測精度が向上する。以上のことから、式（８）において、（ｎ＋１）番目のフレーム画像の位置の予測精度を向上させるためには，Ｘ≠Ｍであるほうが良く、参照時間よりもｕ＝１の時の基底の周期が長い、すなわち  Ｘ＜Ｍであればさらに良い。当該実施形態では、Ｍ＝８であるので、基底の周波数の数Ｘは７以下が良い。
【００８１】
次に、動きベクトル予測手段１２４は、式（１１）を用いて、各正弦波を時間方向に次フレーム（時系列順で（ｎ＋１）番目のフレーム）まで延長し、各周波数の正弦波を加算する（ステップＳ３５０）。式（１１）のＸ３（１）が、時系列順で（ｎ＋１）番目のフレームにまで延長された座標である。このとき、時系列順ｉの原点０をｎ番目のフレームにしているので、三角関数の計算を省略することができ、式（１１）のように計算が簡単になる。図７（Ｄ）は、分解されたＸ個の正弦波と、各正弦波を次フレームまで延長した様子をグラフにしたものである。
【００８２】
【数４】
2007028251.tif 000006
【００８３】
次に、動きベクトル予測手段１２４は、式（１２）を用いて、延長された動き軌跡Ｘ３（１）とベースラインＢ（ｉ）から、（ｎ＋１）番目のフレームの動き軌跡Ｘ４（１）を予測する（ステップＳ３５２）。図７（Ｅ）は、合成した正弦波とベースラインと（ｎ＋１）番目のフレームの動き軌跡Ｘ４（１）とを示した図である。
【００８４】
【数５】
2007028251.tif 000007
【００８５】
最後に、式（１３）を用いて、ｎ番目のフレーム画像を基準とする（ｎ＋１）番目のフレーム画像の動きを示す動きベクトルＶ０（ｎ＋１）を算出する（ステップＳ３５４）。
【００８６】
【数６】
2007028251.tif 000008
【００８７】
以上により図３のステップＳ３５における（ｎ＋１）番目のフレーム画像の動きベクトルの予測処理が終了して、図３のステップＳ４０における（ｎ＋１）番目のフレーム画像の補正位置ベクトルＳ（ｎ＋１）の算出処理が行われる。
【００８８】
ここで、次のステップＳ４０における補正位置ベクトルＳ（ｎ＋１）の算出処理、及び以下のステップＳ４２０（図１０）における補正動きベクトルＶ１（ｎ）の算出処理について、処理内容の説明についての理解を容易にするため、フレーム画像Ｆ（ｎ）の動きベクトルＶ０（ｎ）と補正位置ベクトルＳ（ｎ）、及び補正動きベクトルＶ１（ｎ）の関係について、図８および図９を用いて前もって説明する。
【００８９】
図８は、最初に取得される時系列順１番目のフレーム画像Ｆ（１）と、２番目、３番目のフレーム画像Ｆ（２）、Ｆ（３）をそれぞれ示している。本発明は、補正量に基づいてフレーム画像から所定の画像を切り出す補正処理によって補正フレーム画像を生成する画像処理技術を提供するものであり、補正処理が行われない場合、または補正量が０の場合に切り出されるフレーム画像は、それぞれ図８破線で示したフレーム画像ＦＫ（１）、ＦＫ（２）、ＦＫ（３）となる。
【００９０】
ここで、フレーム画像ＦＫ（ｎ）は、図８に示したように、フレーム画像Ｆ（ｎ）に対して所定の補正限界値Ｓｍａｘ分小さい画面サイズとなる。詳しくは、Ｘ方向では左右それぞれ所定の補正限界値Ｓｘｍａｘだけ、Ｙ方向では上下それぞれ所定の補正限界値Ｓｙｍａｘだけ画面サイズが小さい画像である。つまり、切り出される画像は、Ｘ方向では２×Ｓｘｍａｘ分、Ｙ方向では２×Ｓｙｍａｘ分小さい画面サイズとなる。
【００９１】
所定の補正限界値Ｓｍａｘ（Ｘ成分はＳｘｍａｘ、Ｙ成分はＳｙｍａｘ）は、本実施形態では、予めアプリケーションプログラムにデフォルトで所定の値が設定され、ハードディスク１０５などに格納されているものとする。もとより、ユーザーが、コンピュータ１００に接続された入力手段（図示せず）を用いてデータ入力することによって設定し、格納するものとしてもよい。
【００９２】
同じく図８（下側）に、求められた相対位置に従って配置されたフレーム画像ＦＫ（１）、ＦＫ（２）、ＦＫ（３）を示した。図８より明らかなように、例えばフレーム画像Ｆ（２）の動きベクトルＶ０（２）は、フレーム画像ＦＫ（２）の動きベクトルと等しくなる。つまり、フレーム画像Ｆ（２）の動きベクトルＶ０（２）は、フレーム画像ＦＫ（１）に対するフレーム画像ＦＫ（２）の画面位置として求められる。フレーム画像ＦＫ（３）の動きベクトルＶ０（３）も同様にフレーム画像ＦＫ（２）に対するフレーム画像ＦＫ（３）の画面位置として求められる。動きベクトルＶ０（２）、Ｖ０（３）のＸ成分はＸ方向の画素数、Ｙ成分はＹ方向の画素数で表される。
【００９３】
図８において、フレーム画像Ｆ（１）は、時系列順で一つ前のフレーム画像が存在しないため、本実施形態ではフレーム画像Ｆ（１）は動いていないものとして扱い、フレーム画像ＦＫ（１）の動きベクトルＶ０（１）は０とする。
【００９４】
次に、図９を用いてフレーム画像Ｆ（ｎ）の補正位置ベクトルＳ（ｎ）と動きベクトルＶ０（ｎ）、及びステップＳ４２０（図１０）にて算出される補正動きベクトルＶ１（ｎ）の関係を説明する。図９は、図８（下部）に示したフレーム画像ＦＫ（１）〜ＦＫ（３）の左上隅部分を拡大して示した説明図である。ここで、補正フレーム画像ＨＦＧ（２）は、ステップＳ４０（図３）で算出されるフレーム画像Ｆ（２）の補正位置ベクトルＳ（２）によってフレーム画像ＦＫ（２）が補正された状態を示している。
【００９５】
図９から明らかなように、フレーム画像ＦＫ（２）は、動きベクトルＶ０（２）のＸ成分とＹ成分の画素数に従ってフレーム画像ＦＫ（１）の画面位置を移動したものであり、補正フレーム画像ＨＦＧ（２）は、補正位置ベクトルＳ（２）のＸ成分とＹ成分の画素数に従ってフレーム画像ＦＫ（２）の画面位置を移動したものである。また、同様に、フレーム画像ＦＫ（３）は、動きベクトルＶ０（３）のＸ成分とＹ成分の画素数に従ってフレーム画像ＦＫ（２）の画面位置を移動したものであり、補正フレーム画像ＨＦＧ（３）は、補正位置ベクトルＳ（３）のＸ成分とＹ成分の画素数に従って、フレーム画像ＦＫ（３）の画面位置を移動したものである。
【００９６】
また、図９に示したように、補正動きベクトルＶ１（２）は、フレーム画像ＦＫ（１）に対する補正フレーム画像ＨＦＧ（２）の相対的な画面位置を示すものであり、補正動きベクトルＶ１（３）は、補正フレーム画像ＨＦＧ（２）に対する補正フレーム画像ＨＦＧ（３）の相対的な画面位置を示すものである。なお、動きベクトルＶ０（１）は０であることより補正位置ベクトルＳ（１）も０となる（後述する）。従って、フレーム画像ＦＫ（１）は補正フレーム画像ＨＦＧ（１）と同じものになる。
【００９７】
ここで、動きベクトルＶ０（ｎ）および補正動きベクトルＶ１（ｎ）は、Ｘ成分は図面右方向をプラス、Ｙ成分は図面上方向をプラスとするが、補正位置ベクトルＳ（ｎ）は、移動量を補正する意味から動きベクトルと反対に、Ｘ成分は図面左方向をプラス、Ｙ成分は図面下方向をプラスとする。従って、フレーム画像ＦＫ（２）、ＦＫ（３）の補正位置ベクトルＳ（２）、Ｓ（３）は、図９に示したように動きベクトルＶ０（２）、Ｖ０（３）と反対方向がプラス方向になる。
【００９８】
なお、当該実施形態では、動きベクトルＶ０（ｎ＋１）の代わりに、Ｓ３５で求められた（ｎ＋１）番目のフレーム画像の動き予測ベクトルを用いる。
【００９９】
次に、図３に戻り、切出位置算出手段１３０は、ステップＳ４０において、補正位置ベクトルＳ（ｎ＋１）の算出処理を行う。ステップＳ４０での処理については、図１０のフローチャートを用いて詳しく説明する。
【０１００】
ステップＳ４０の処理が開始されると、まずステップＳ４１０において、Ｓ３５で求められた注目するフレーム画像Ｆ（ｎ＋１）の予測動きベクトルＶ（ｎ＋１）を入力する処理を行う。ここでは、ステップＳ３５にて求められ、ＲＡＭ１０２などのメモリ１２６に格納された予測動きベクトルＶ（ｎ＋１）を、ＣＰＵ１０３が読み出すことによって入力処理を行う。
【０１０１】
次に、ステップＳ４２０にて、注目するフレーム画像Ｆ（ｎ＋１）に対して時系列順で一つ前のフレーム画像（以下、単に「前フレーム画像」と称する）の補正動きベクトルＶ１（ｎ）を算出する処理を行う。補正動きベクトルＶ１（ｎ）は、Ｘ成分Ｖ１ｘ（ｎ）とＹ成分Ｖ１ｙ（ｎ）のベクトルとして以下の式を用いて算出する。
【０１０２】
Ｖ１ｘ（ｎ）＝Ｖ０ｘ（ｎ）−Ｓｘ（ｎ）
Ｖ１ｙ（ｎ）＝Ｖ０ｙ（ｎ）−Ｓｙ（ｎ）
図８及び図９を参照して説明したように算出され、ＲＡＭ１０２などのメモリ１２６に格納される。
【０１０３】
また、ステップＳ４３０にて、フレーム画像Ｆ（ｎ）の補正位置ベクトルＳ（ｎ）を入力する処理を行う。具体的には、一つ前のフレーム画像Ｆ（ｎ−１）が入力されている間のステップＳ４０（図３）において算出され、ＲＡＭ１０２などのメモリ１２６に格納された補正位置ベクトルＳ（ｎ）を、ＣＰＵ１０３が読み出すことによって入力処理を行う。
【０１０４】
ステップＳ４２０及びステップＳ４３０において、「ｎ＝１」つまり時系列順１番目のフレーム画像の場合、前フレーム画像が存在しない。この場合は、前述したように本実施形態ではフレーム画像Ｆ（ｎ）は動いていないものとし、その結果、補正動きベクトルＶ１（１）は０、また補正位置ベクトルＳ（１）も０となる。
【０１０５】
次に、ステップＳ４４０にてＸ、Ｙ各成分別に減衰係数Ｋ、Ｄの値の決定処理を行う。減衰係数Ｋ、Ｄは、次の処理ステップＳ４９０で用いる所定の演算式において使用する係数であり、補正位置ベクトルの大きさ、つまり補正量を決める係数となる。減衰係数Ｋ、Ｄとも、それぞれ１以下の小数である。
【０１０６】
本実施形態では、次の３つの実施例のうち少なくとも一つの方法を用いて減衰係数Ｋ、Ｄの値を決定する。
「減衰係数決定方法の第１実施例」
前フレーム画像を補正した補正フレーム画像（以下、単に「前補正フレーム画像」と称する）について算出した画像の移動量と、注目するフレーム画像の移動量との大小によって、減衰係数Ｋ、Ｄの値を決定する。さらに、注目するフレーム画像の移動量が、前補正フレーム画像の移動量以上の場合、注目するフレーム画像の予測動きベクトルの方向と、前補正フレーム画像の補正動きベクトルの方向とに基づいて減衰係数Ｋ、Ｄの値を決定する方法。
「減衰係数決定方法の第２実施例」
補正可能範囲を示す補正限界値に対する前フレーム画像の補正量の比率と、前フレーム画像の補正量が「増加」か「減少」かの判断とによって、減衰係数Ｋ、Ｄの値を決定する方法。
「減衰係数決定方法の第３実施例」
補正可能範囲である補正限界値と、前フレーム画像の補正量との差分量に対して、注目するフレーム画像の予測動きベクトルと、前フレーム画像の補正動きベクトルとの差分量が、どれくらいの割合にあるかによって、減衰係数Ｋ、Ｄの値を決定する方法。
【０１０７】
「第１の実施例」
まず、ステップＳ４４０（図１０）にて行われる処理について、第１の実施例における減衰係数Ｋ、Ｄの決定処理の詳細を、図１１に示した処理フローチャートを用いて説明する。第１の実施例での減衰係数Ｋ、Ｄの値の決定方法は、注目するフレーム画像の予測動きベクトルの大きさ及び向きと、時系列順一つ前の補正フレーム画像の大きさ及び向きとから補正量を算出し、予測動きベクトルの方向変化と大きさにあわせて注目するフレーム画像の補正量を算出しようとするものである。なお、ここでは、注目するフレーム画像のＸ成分についての処理を説明するが、処理ステップＳ４４０ではＹ成分についても図１１に示したＸ成分の処理と同様の処理を行い、Ｘ成分、Ｙ成分それぞれについて減衰係数Ｋ、Ｄの値を決定する。そして、後述する次の処理ステップＳ４９０（図１０）において、補正位置ベクトルのＸ成分とＹ成分を所定の演算式にて算出する際、それぞれ決定した減衰係数Ｋ、Ｄの値を用いるのである。
【０１０８】
ここでの処理が開始されると、まずステップＳ４４１において、Ｓ３５で求められた注目するフレーム画像の予測動きベクトルＶ（ｎ＋１）のＸ成分Ｖｘ（ｎ＋１）の抽出処理を行う。Ｘ成分Ｖｘ（ｎ＋１）はＸ方向の画素数で示され、図９に示したようにベクトルの向きが図面右方向であればプラス、左方向であればマイナスとなる。なお注目するフレーム画像の予測動きベクトルＶ（ｎ＋１）のＹ成分Ｖｙ（ｎ＋１）については、図９に示したようにベクトルの向きが図面上方向であればプラス、下方向であればマイナスとなる。
【０１０９】
次に、ステップＳ４４２にて、注目するフレーム画像に対して時系列順で一つ前のフレーム画像の補正動きベクトルＶ１（ｎ）のＸ成分Ｖ１ｘ（ｎ）の抽出処理を行う。もとより、前述したように、Ｖ１ｘ（０）＝０である。
【０１１０】
次に、ステップＳ４４３にて、Ｖｘ（ｎ＋１）の絶対値と、Ｖ１ｘ（ｎ）の絶対値とを算出する。そして、次の処理ステップＳ４４４にてＶｘ（ｎ＋１）の絶対値がＶ１ｘ（ｎ）の絶対値以上か否かを判定する。ステップＳ４４４でＮＯの場合、つまり注目するフレーム画像の移動量が、前補正フレーム画像の移動量より小さい場合、ステップＳ４４５に進み、減衰係数Ｋ、Ｄの値をＫ１、Ｄ１に決定し、ステップＳ４９０（図１０）に進む。
【０１１１】
一方、ステップＳ４４４でＹＥＳの場合、つまり注目するフレーム画像の移動量が、前補正フレーム画像の移動量以上の場合、ステップＳ４４６に進み、Ｖｘ（ｎ＋１）とＶ１ｘ（ｎ）の積ＢＳｘを算出する。そして、次の処理ステップＳ４４７にて、ＢＳｘが０以上か否かを判定する。つまり、ここではベクトルＶｘ（ｎ＋１）とベクトルＶ１ｘ（ｎ）とが同じ向き（０以上）なのか逆向き（０より小さい）なのかを調べるのである。
【０１１２】
ステップＳ４４７にてＮＯの場合（つまり逆向きの場合）、ステップＳ４４８に進み、減衰係数Ｋ、Ｄの値をＫ２、Ｄ２に決定し、ステップＳ４９０（図１０）に進む。ここで、Ｋ２の値はＫ１の値より大きく、Ｄ２の値はＤ１の値よりも大きい値である。
【０１１３】
一方、ステップＳ４４７にてＹＥＳの場合（つまり同じ向きの場合）、ステップＳ４４９に進み、減衰係数Ｋ、Ｄの値をＫ３、Ｄ３に決定し、ステップＳ４９０（図１０）に進む。ここで、Ｋ３の値はＫ２の値より大きく、Ｄ３の値はＤ２の値よりも大きい値である。
【０１１４】
第１の実施例における減衰係数Ｋ、Ｄの値について、その一例を図１２の減衰係数テーブルＧＫＴ１に示した。ここで、減衰係数Ｋの値は０．９≦Ｋ≦１の範囲で、Ｋ１＜Ｋ２＜Ｋ３を満たす値であることが望ましい。また、減衰係数Ｄの値は０．５≦Ｄ≦１の範囲で、Ｄ１＜Ｄ２＜Ｄ３を満たす値であることが望ましい。補正しようとするフレーム画像の移動量Ｖｘ（ｎ＋１）が、前補正フレーム画像の移動量Ｖ１ｘ（ｎ）より小さい場合、補正しようとするフレーム画像の移動量Ｖｘ（ｎ＋１）が前フレーム画像の移動量Ｖ１ｘ（ｎ）に対して減少しているということになる。従って、仮に、補正しようとするフレーム画像の補正フレーム画像の移動量Ｖ１ｘ（ｎ＋１）が、前フレーム画像の移動量Ｖ１ｘ（ｎ）と同じであるように補正しようとするフレームの補正量Ｓｘ（ｎ＋１）を指定した（つまりＫ＝Ｄ＝１）とすると、補正量Ｓｘ（ｎ＋１）が補正限界値に達する確率は高くなる。そこで、小さい値の減衰係数を用いて補正量を少なくし、補正限界値に達しにくくするのである。
【０１１５】
また、補正しようとするフレーム画像の移動量が、前補正フレーム画像の移動量以上である場合あっても、これら２つのフレーム画像の移動量が違う方向のときは、補正しようとするフレーム画像の補正フレーム画像の移動量Ｖ１ｘ（ｎ＋１）が、前フレーム画像の移動量Ｖ１ｘ（ｎ）と同じであるように補正しようとするフレームの補正量Ｓｘ（ｎ＋１）を指定した（つまりＫ＝Ｄ＝１）とすると、補正量Ｓｘ（ｎ＋１）が補正限界値に達する確率は高くなる。そこで、同じ方向のときにくらべて減衰係数の値を小さくして、補正しようとするフレーム画像の補正量を少なくするのである。なお、減衰係数Ｋ１〜Ｋ３、Ｄ１〜Ｄ３の値は、本実施例に限らず、前述した条件を満たす値であれば何でもよい。
【０１１６】
「第２の実施例」
次に、第２の実施例における減衰係数Ｋ、Ｄの決定処理の詳細を、図１３に示した処理フローチャートを用いて説明する。第２の実施例での減衰係数Ｋ、Ｄの値の決定方法は、補正限界値に近いか否かを所定の比率ＲＳによって補正量を算出し、さらに、所定の演算式によって補正量が増加か減少かを判断して注目するフレーム画像の補正量を算出しようとするものである。なお、ここでも、注目するフレーム画像のＸ成分についての処理を説明するが、処理ステップＳ４４０ではＹ成分についても図１３に示したＸ成分の処理と同様の処理を行い、Ｘ成分、Ｙ成分それぞれについて減衰係数Ｋ、Ｄの値を決定する。そして、後述する次の処理ステップＳ４９０（図１０）にて、補正位置ベクトルのＸ成分とＹ成分を所定の演算式にて算出する際に、それぞれ決定した減衰係数Ｋ、Ｄの値を用いるのである。
【０１１７】
ここでの処理が開始されると、まずステップＳ４５１にて補正限界値Ｓｘｍａｘの入力処理を行う。具体的には、ＣＰＵ１０３がハードディスク１０５などに格納されたＳｍａｘのＸ成分についての値を読み出すことで行う。
【０１１８】
次に、ステップＳ４５２にて、フレーム画像Ｆ（ｎ）の補正位置ベクトルＳ（ｎ）のＸ成分Ｓｘ（ｎ）の抽出処理を行う。具体的には、Ｓ１０において一つ前のフレーム画像Ｆ（ｎ−１）が入力されている間のステップＳ４０（図３）において算出され、ＲＡＭ１０２などのメモリ１２６に格納された補正位置ベクトルＳ（ｎ）を、ＣＰＵ１０３が読み出すことによって入力処理を行う。ここで、前述したように、Ｘ成分Ｓｘ（ｎ）は、画面左方向を正方向とする画素数で表される。もとよりＹ成分Ｓｙ（ｎ）は、画面下方向を正とする画素数で表される。
【０１１９】
次に、ステップＳ４５３にて、Ｓｘ（ｎ）の絶対値をＳｘｍａｘで除した比率ＲＳの値を算出する。ＲＳの値が大きいほど、補正量が補正限界値に近い状態であることを示すことになる。
【０１２０】
次にステップＳ４５４において、Ｓ３５で求められた予測動きベクトルＶ（ｎ＋１）のＸ成分Ｖｘ（ｎ＋１）の抽出処理を行う。Ｘ成分Ｖｘ（ｎ＋１）はＸ方向の画素数で示され、図９に示したようにベクトルの向きが図面右方向であればプラス、左方向であればマイナスとなる。なお予測動きベクトルＶ（ｎ＋１）のＹ成分Ｖｙ（ｎ＋１）については、図９に示したようにベクトルの向きが図面上方向であればプラス、下方向であればマイナスとなる。
【０１２１】
次に、ステップＳ４５５にて、フレーム画像Ｆ（ｎ）の補正動きベクトルＶ１（ｎ）のＸ成分Ｖ１ｘ（ｎ）の抽出処理を行う。なお、前述したように、ｎ＝１のときはＶ１ｘ（１）＝０である。
【０１２２】
ステップＳ４５２、Ｓ４５４、Ｓ４５５にて抽出した各ベクトルを用いて、次のステップＳ４５６では、式（１４）より傾向値ＫＨｘを算出する処理を行う。
【０１２３】
ＫＨｘ＝Ｓｘ（ｎ）×（Ｖｘ（ｎ＋１）−Ｖ１ｘ（ｎ））…（１４）
次に、ステップＳ４５７にて、傾向値ＫＨｘが０以上か否かの判定処理を行う。そして、ＹＥＳの場合は、ステップＳ４５９にて補正は「増加」と判断し、ＮＯの場合はステップＳ４５８にて補正は「減少」と判断する処理を行う。Ｓｘ（ｎ）つまり前フレーム画像の補正位置ベクトルに基づく補正方向と、Ｖｘ（ｎ＋１）−Ｖ１ｘ（ｎ）つまり注目するフレーム画像の予測動きベクトルと前フレーム画像の補正ベクトルとの差に基づく画像の移動方向とを比べて、それぞれの向きが逆方向の場合は増加、同じ方向の場合は減少と判断するのである。
【０１２４】
次に、算出された比率ＲＳと「増加」又は「減少」の判断情報から、ステップＳ４６０にて、減衰係数テーブルＧＫＴ２を用いて減衰係数Ｋ、Ｄの値を決定する処理を行う。減衰係数テーブルＧＫＴ２の一例を図１４に示す。減衰係数テーブルはハードディスク１０５などに格納され、比率ＲＳのデータと「増加」又は「減少」の情報とから、ＣＰＵ１０３は、減衰係数テーブルＧＫＴ２より該当するアドレスの値を読み出し、減衰係数Ｋ、Ｄの値を決定する。
【０１２５】
図１４に示したように、第２の実施例では、減衰係数テーブルＧＫＴ２において、比率ＲＳの値を、小数点第２位を四捨五入し０．１きざみの値とした。そして、減衰係数Ｋ、Ｄの値を、比率ＲＳが大きい値になるに従って、前の値以下の小さい値になるよう設定した。さらに「増加」情報に対応する値を、「減少」情報に対応する値よりも小さい値に設定した。比率ＲＳが同じ場合でも、増加と判断した場合は、補正方向と画像の移動方向とが逆方向であることから、減少と判断した場合よりも補正が補正限界値に達しやすいため、減衰係数Ｋ、Ｄを小さくして補正量を少なくするのである。もとより、比率ＲＳの値はさらに細かいきざみ幅としたり、逆にもっと粗いきざみ幅としたりしてもよい。さらに、きざみ幅も同一でなく変化させたりしても差し支えない。
【０１２６】
図１４に示した減衰係数テーブルＧＫＴ２は、減衰係数Ｋ、Ｄの具体的な数値設定の一例を示したものであり、減衰係数Ｋの値は０．９≦Ｋ≦１の範囲で、減衰係数Ｄの値は０．５≦Ｄ≦１の範囲で、ＲＳの値に合わせて変更してもよい。このとき、ＲＳの値が大きい値になるに従って、減衰係数Ｋ、Ｄの値は前の値以下の小さい値になるよう設定することが好ましい。ＲＳの値が大きい場合は、ＲＳの値が小さい場合よりも補正量が補正限界値に近いことになるため、減衰係数を小さくして補正量を少なくするのである。
【０１２７】
「第３の実施例」
次に、第３の実施例における減衰係数Ｋ、Ｄの決定処理の詳細を、図１５に示した処理フローチャートを用いて説明する。第３の実施例での減衰係数Ｋ、Ｄの値の決定方法は、注目するフレーム画像の補正量を算出する際、時系列順で一つ前の補正フレーム画像の補正量で補正したとき、補正限界値まで何回補正可能かを調べて注目するフレーム画像の補正量を算出しようとするものである。なお、ここでも、注目するフレーム画像のＸ成分についての処理を説明するが、処理ステップＳ４４０ではＹ成分についても図１５に示したＸ成分の処理と同様の処理を行い、Ｘ成分、Ｙ成分それぞれについて減衰係数Ｋ、Ｄの値を決定する。そして、後述する次の処理ステップＳ４９０（図１０）にて、補正位置ベクトルのＸ成分とＹ成分を所定の演算式にて算出する際に、それぞれ決定した減衰係数Ｋ、Ｄの値を用いるのである。
【０１２８】
ここでの処理が開始されると、まずステップＳ４６１にて補正限界値Ｓｘｍａｘの入力処理を行う。具体的には、ＣＰＵ１０３がハードディスク１０５などに格納されたＳｍａｘのＸ成分についての値を読み出すことで行う。
【０１２９】
次にステップＳ４６２において、Ｓ３５で求められた予測動きベクトルＶ（ｎ＋１）のＸ成分Ｖｘ（ｎ＋１）の抽出処理を行う。Ｘ成分Ｖｘ（ｎ＋１）はＸ方向の画素数で示され、図９に示したようにベクトルの向きが図面右方向であればプラス、左方向であればマイナスとなる。なお予測動きベクトルＶ（ｎ＋１）のＹ成分Ｖｙ（ｎ＋１）については、図９に示したようにベクトルの向きが図面上方向であればプラス、下方向であればマイナスとなる。
【０１３０】
次に、ステップＳ４６３にて、補正動きベクトルＶ１（ｎ）のＸ成分Ｖ１ｘ（ｎ）の抽出処理を行う。もとより、前述したように、ｎ＝１のときはＶ１ｘ（１）＝０である。
【０１３１】
次に、ステップＳ４６４にて、補正位置ベクトルＳ（ｎ）のＸ成分Ｓｘ（ｎ）の抽出処理を行う。ここで、前述したように、Ｘ成分Ｓｘ（ｎ）は、画面左方向を正方向とする画素数で表される。もとよりＹ成分Ｓｙ（ｎ）は、画面下方向を正とする画素数で表される。
【０１３２】
次に、ステップＳ４６５にて、式（１５）よりベクトル差分値ＢＳＴの算出処理を行う。
【０１３３】
ＢＳＴ＝｜Ｖｘ（ｎ＋１）−Ｖ１ｘ（ｎ）｜    …（１５）
次に、ステップＳ４６６にて、式（１６）より補正残量値ＳＺＴの算出処理を行う。
【０１３４】
ＳＺＴ＝Ｓｘｍａｘ−｜Ｓｘ（ｎ）｜        …（１６）
次に、ステップＳ４６７にて、式（１７）より補正限界フレーム数Ｔの算出処理を行う。
【０１３５】
Ｔ＝ＳＺＴ÷ＢＳＴ                            …（１７）
ステップＳ４６７にて算出された補正限界フレーム数Ｔの値から、ステップＳ４６８にて、減衰係数テーブルＧＫＴ３を用いて減衰係数Ｋ、Ｄの値を決定する。減衰係数テーブルＧＫＴ３の一例を図１６に示す。減衰係数テーブルＧＫＴ３はハードディスク１０５などに格納され、補正限界フレーム数Ｔのデータから、ＣＰＵ１０３は、減衰係数テーブルＧＫＴ３より該当するアドレスの値を読み出し、減衰係数Ｋ、Ｄの値を決定する。
【０１３６】
図１６に示した減衰係数テーブルＧＫＴ３において、補正限界フレーム数Ｔは、小数点第一位を四捨五入して整数値化した値とした。また減衰係数テーブルＧＫＴ３は、具体的な数値設定の一例を示したものであり、減衰係数Ｋの値は０．９≦Ｋ≦１の範囲で、減衰係数Ｄの値は０．５≦Ｄ≦１の範囲で、補正限界フレーム数Ｔの値に合わせて変更してもよい。このとき、Ｔの値が大きい値になるに従って、減衰係数Ｋ、Ｄの値は大きい値になるよう設定することが好ましい。Ｔの値が大きい場合は、Ｔの値が小さい場合よりも補正限界値に達するまでの補正量に余裕があることになるため、減衰係数を大きくしてフレーム画像の補正量を多くするのである。
【０１３７】
以上、第１から第３の実施例にて説明したＸ成分についての処理を、Ｙ成分についても同様に行い、Ｘ、Ｙ各成分別に減衰係数Ｋ、Ｄの値を決定して処理ステップＳ４９０に進む。
【０１３８】
第１ないし第３の実施例によって減衰係数Ｋ、Ｄの値がＸ成分、Ｙ成分について決定されると、ステップＳ４９０（図１０）に戻り、所定の演算式を用いて補正位置ベクトルＳ（ｎ＋１）を算出する処理を行う。本実施形態では、所定の演算式として次の式（１８）を用いる。
【０１３９】
Ｓ（ｎ＋１）＝Ｋ×Ｓ（ｎ）＋Ｄ×（Ｖ（ｎ＋１）−Ｖ１（ｎ））    …（１８）
補正位置ベクトルＳ（ｎ＋１）は、具体的には式（１８）を用いて、Ｘ成分およびＹ成分についての補正位置ベクトルＳｘ（ｎ＋１）およびＳｙ（ｎ＋１）をそれぞれ算出することによって求められる。
【０１４０】
式（１８）から明らかなように、予測動きベクトルＶ（ｎ＋１）と、フレーム画像Ｆ（ｎ）を補正した補正フレーム画像ＨＦＧ（ｎ）の補正動きベクトルＶ１（ｎ）との差分を求め、この差分に減衰係数Ｄを乗じた値を補正位置ベクトルＳ（ｎ＋１）の算出に用いるため、フレーム画像Ｆ（ｎ＋１）を補正した補正フレーム画像ＨＦＧ（ｎ＋１）と前補正フレーム画像ＨＦＧ（ｎ）間について、画像の移動が滑らかになる確率が高くなる。
【０１４１】
なお式（１８）において、注目するフレーム画像が時系列順１番目（ｎ＝１）の場合、本実施形態では前述したようにフレーム画像Ｆ（１）は動いていないとしたことから、Ｓ（１）＝０である。ちなみに、
ｎ＝２の場合は、Ｓ（２）＝Ｋ×０＋Ｄ×（Ｖ（２）−０）＝Ｄ×Ｖ（２）
ｎ＝３の場合は、Ｓ（３）＝Ｋ×Ｓ（２）＋Ｄ×（Ｖ（３）−Ｖ１（２））
によって、補正位置ベクトルが算出される。
【０１４２】
（Ｂ）Ｓ２８およびＳ５０における処理
次に、図３に戻り、前記（Ａ）Ｓ２６、Ｓ３０、Ｓ３５およびＳ４０における処理および（Ｃ）Ｓ６５およびＳ７０における処理と並行して行われるＳ２８およびＳ５０における処理について説明する。
【０１４３】
まず、ステップＳ２８において、ｍ＝１か否かが判定され、ｍ＝１の場合（Ｓ２８、ＹＥＳ）には、ステップＳ８０に進む。
【０１４４】
一方、ｍ＝１でない場合（Ｓ２８、ＮＯ）、ステップＳ５０において、部分画像切出手段１４０が、補正フレーム画像ＨＦＧ（ｎ）の生成処理を行う。
【０１４５】
図１７に、ｎ＝３のときフレーム画像Ｆ（３）から所定の画像を切り出して生成される補正フレーム画像ＨＦＧ（３）の例を示した。図１７の上側に、補正がされない場合つまり補正量が０である場合において所定の画像となるフレーム画像ＦＫ（３）を破線で示した。そして、図１７の下側に、ステップＳ４０にて算出された補正位置ベクトルＳ（３）に従って、Ｘ方向にＳｘ（３）、Ｙ方向にＳｙ（３）だけ画面位置を補正して切り出した補正フレーム画像ＨＦＧ（３）を示した。
【０１４６】
同様に、一般的に、Ｓ１０において（ｎ−１）番目のフレーム画像Ｆ（ｎ−１）が入力されている間にステップＳ４０において算出される補正位置ベクトルＳ（ｎ）に従って、フレーム画像Ｆ（ｎ）の画面位置をＸ方向にＳｘ（ｎ）、Ｙ方向にＳｙ（ｎ）だけを補正して切り出して補正フレーム画像ＨＦＧ（ｎ）を生成する。
【０１４７】
このように、画面位置を補正することによって、フレーム画像について画像の移動量が抑えられることになる。
【０１４８】
（Ｃ）Ｓ６５およびＳ７０における処理
次に、図３に戻り、前記（Ａ）Ｓ２６、Ｓ３０、Ｓ３５およびＳ４０における処理および（Ｂ）Ｓ２８およびＳ５０における処理と並行して行われるＳ６５およびＳ７０における処理について説明する。
【０１４９】
まず、Ｓ６５では、画像表示手段１５０が、Ｓ１０で（ｎ−１）番目のフレーム画像Ｆ（ｎ−１）が入力されている間にＳ５０において生成された補正フレーム画像ＨＦＧ（ｎ−１）の拡大処理を、Ｓ１０でｎ番目のフレーム画像Ｆ（ｎ）が入力されている間に行う。
【０１５０】
Ｓ５０において生成される補正フレーム画像の画面サイズは、取得したフレーム画像の画面サイズに対して、横方向で２×Ｓｘｍａｘ、縦方向で２×Ｓｙｍａｘ分小さい画像であるが、当該実施形態においては、Ｓ５０において生成される補正フレーム画像の画面サイズを、取得したフレーム画像と同じ画面サイズに拡大する。
【０１５１】
画面の拡大は、補正フレーム画像の画素数をフレーム画像の画素数と同じにすることで行う。画像を構成する画素数の増加は、画素の補間処理によって実現することができる。補間処理は、バイ・リニア法のほか、バイ・キュービック法、ニアレストネイバ法など、周知の手法を用いる。
【０１５２】
次に、ステップＳ７０にて、画像表示手段１５０が、Ｓ６５において拡大された補正フレーム画像ＨＦＧ（ｎ−１）の出力処理を行う。本実施形態では、拡大された補正フレーム画像ＨＦＧ（ｎ−１）を、出力Ｉ／Ｆ１０６（図１）によってビデオプロジェクタ３００などの画像表示装置が必要とする画像信号に変換し、補正フレーム画像を生成する毎に直ちに出力するものとする。こうすれば、補正対象となるフレーム画像の取得後から補正フレーム画像の出力までの時間が短くなり、補正をリアルタイムでおこなえる。もとより、拡大された補正フレーム画像ＨＦＧ（ｎ−１）の出力先をＲＡＭ１０２やハードディスク１０５などに設けられた所定の画像ファイルとし、生成した一連の複数の補正フレーム画像を格納することとしてもよい。
【０１５３】
以上でＳ２６〜Ｓ７０についての処理を終了し、ステップＳ８０にてｎを更新する（ｎ＝ｎ＋１とする）。そして、ステップＳ１０に戻り、時系列順で一つ後のフレーム画像について同様の処理を繰り返し、取得される全てのフレーム画像について補正フレーム画像を出力する。
【０１５４】
図１８に、本発明の一実施形態による画像処理装置の動作タイミング図を示す。横軸は時間であり、「（１）入力画像信号」におけるｎ、ｎ＋１は、それぞれＳ１０においてｎ番目および（ｎ＋１）番目のフレーム画像が入力されている間を示す。Δｔは、図５に示すように、Ｓ３０６で読み込まれている画素が、ＥＰ１（差分値計算が終了するポイント）からＥＰ２（当該フレームにおけるデータの読み込みが終了するポイント）に至るまでの時間であり、その間に次フレームの動きベクトルの予測処理および補正位置算出処理を行う。もし、現フレームの読み込みが終了してから（ＥＰ２）、次のフレームの読み込みが開始されるまでの間に、垂直ブランキング期間などの時間が存在する場合には、次フレームの動きベクトルの予測処理および補正位置算出処理は、次フレームの読み込みが開始されるまでの間に行えば良い。「（２）差分算出領域」における各矢印は、各差分算出領域において図４のＳ３１０〜Ｓ３１８の処理が行われている間を示す。「（３）動きベクトル検出」における矢印｛ｎ−（ｎ−１）｝および｛（ｎ＋１）−ｎ｝は、それぞれｎ番目および（ｎ＋１）番目のフレーム画像の動きベクトル検出処理（Ｓ３０）が行われている間を示す。「（４）次フレーム動きベクトル予測」における矢印｛（ｎ＋１）−ｎ｝および｛（ｎ＋２）−（ｎ＋１）｝は、それぞれ（ｎ＋１）番目および（ｎ＋２）番目のフレーム画像の動きベクトル予測処理（Ｓ３５）が行われている間を示す。「（５）補正位置算出処理」における矢印｛（ｎ＋１）−ｎ｝および｛（ｎ＋２）−（ｎ＋１）｝は、それぞれ（ｎ＋１）番目および（ｎ＋２）番目のフレーム画像の補正位置算出処理（Ｓ４０）が行われている間を示す。「（６）フレーム画像切り出し」におけるｎ、ｎ＋１は、それぞれＳ１０においてｎ番目および（ｎ＋１）番目のフレーム画像の切り出し処理（Ｓ５０の補正フレーム画像の生成処理）が行われている間を示す。「（７）フレーム画像拡大」におけるｎ−１、ｎは、それぞれＳ１０において（ｎ−１）番目およびｎ番目のフレーム画像の拡大および出力処理（Ｓ６５およびＳ７０）が行われている間を示す。
【０１５５】
図１８から明らかなように、Ｓ１０においてｎ番目のフレーム画像を読み込んでいる間に、ｎ番目のフレーム画像以前の複数のフレーム画像に基づき求めた動きベクトルから、（ｎ＋１）番目のフレーム画像の予想動きベクトルを求めることができる。求めた（ｎ＋１）番目のフレーム画像の予想動きベクトルを用いて補正位置算出処理を行う。これによって、入力映像に対し手ぶれによる画像ぶれの補正を行う。
【０１５６】
また、Ｓ１０においてｎ番目のフレーム画像を読み込んでいる間に、ｎ番目のフレーム画像の動きベクトル算出、（ｎ＋１）番目のフレーム画像の予想動きベクトルの算出、（ｎ＋１）番目のフレーム画像の読み出し位置の計算を行う。もし、ｎ番目のフレーム画像と（ｎ＋１）番目のフレーム画像の間に垂直ブランキング期間などの時間が存在する場合には、（ｎ＋１）番目のフレーム画像の予測動きベクトルの算出と（ｎ＋１）番目のフレームの読み出し位置の計算は、（ｎ＋１）番目のフレーム画像の読み込みが開始されるまでの間に行えば良い。Ｓ１０においてｎ番目のフレーム画像を読み込んでいる間に求めた（ｎ＋１）番目のフレーム画像の読み出し位置を用いて、（ｎ＋１）番目のフレーム画像を読み込むのと平行して、（ｎ＋１）番目のフレーム画像の切り抜き画像を出力することができる。
【０１５７】
このようにして、ｎ番目のフレーム画像以前の複数のフレーム画像に基づいて求めた動きベクトルから、次のフレーム画像での動きベクトルを予測することができる。よって、動きベクトルの検出から次フレーム画像の動きベクトルの予測、次フレーム画像に対する補正量の計算までを、１フレーム画像分の情報を読み込む間に平行して行うことにより、手ぶれ補正処理などをリアルタイムで行う際に必要な、フレーム画像を保持するためのメモリの量を抑えつつリアルタイムの処理が可能になる。
【０１５８】
以上、本発明の一実施形態を説明したが、本発明はこうした実施の形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内において様々な形態で実施し得ることは勿論である。
【０１５９】
（変形例１）例えば、前記実施形態では、動画像から取得したフレーム画像Ｆ（ｎ）の動きベクトルを、フレーム画像Ｆ（ｎ）とフレーム画像Ｆ（ｎ−１）との相対的な位置関係から算出したが、動画像を撮影する際に、速度センサーや加速度センサーなど移動量を検出する手段によって、フレーム画像のメタデータとして画面位置データが存在する場合は、この画面位置データを用いて動きベクトルを算出してもよい。こうすれば、画像のパターンマッチングや特徴点追跡といった画像処理を行う必要がなく、動きベクトルを算出に関する処理の負荷を軽減することができる。
【０１６０】
（変形例２）また、前記実施形態における画像処理装置は、汎用のコンピュータで構成するようにしたが、本発明はこれに限定されるものでなく、モバイルコンピュータやワークステーションなどで構成するようにしてもよい。あるいは、デジタルカメラやビデオカメラ、ＤＶＤ録画再生機、またはビデオプロジェクタやＴＶ、あるいは携帯電話など、動画像を記録又は再生できる機器や、時系列順で静止画像を記録又は再生できる種々の機器に、本発明の画像処理装置を組み込んで構成するようにしてもよい。
【０１６１】
（変形例３）また、前記実施形態における画像処理装置は、フレーム画像を構成する所定枚数のフィールド画像全てからフレーム画像を取得し、この取得したフレーム画像について所定の画像を切り出す位置を補正するものとしたが、これに限定せず、フレーム画像がＮ枚（Ｎは２以上の整数）のフィールド画像によって構成されている場合、これらＮ枚のフィールド画像のうち、１枚からＮ−１枚までのうち任意の枚数のフィールド画像から得られる画像をフレーム画像として、所定の画像を切り出す位置を補正するものとしても差し支えない。
【図面の簡単な説明】
【０１６２】
【図１】本発明の一実施形態としての画像処理装置の概略構成を示す説明図である。
【図２】本発明の一実施形態としての画像処理装置の機能ブロック図である。
【図３】本発明の一実施形態としての画像処理装置における処理を説明するフローチャートである。
【図４】図３のＳ３０におけるｎ番目のフレーム画像の動きベクトルの検出処理を詳細に説明するためのフローチャートである。
【図５】図３のＳ３０におけるｎ番目のフレーム画像の動きベクトルの検出処理を詳細に説明するための説明図である。
【図６】（ｎ＋１）番目のフレーム画像の動きベクトルの予測処理を説明するためのフローチャートである。
【図７】動き軌跡により動きベクトルの予測処理を説明するための説明図である。
【図８】フレーム画像の動きベクトルを説明するための説明図である。
【図９】フレーム画像の動きベクトルと補正動きベクトル、及び補正位置ベクトルの関係を説明するための説明図である。
【図１０】補正位置ベクトルの算出処理を説明するフローチャートである。
【図１１】第１の実施例における減衰係数の決定処理を説明するフローチャートである。
【図１２】第１の実施例における減衰係数の値を説明するための減衰係数テーブルである。
【図１３】第２の実施例における減衰係数の決定処理を説明するフローチャートである。
【図１４】第２の実施例における減衰係数の値を説明するための減衰係数テーブルである。
【図１５】第３の実施例における減衰係数の決定処理を説明するフローチャートである。
【図１６】第３の実施例における減衰係数の値を説明するための減衰係数テーブルである。
【図１７】フレーム画像から補正フレーム画像を生成する方法を説明する説明図である。
【図１８】本発明の一実施形態による画像処理装置の動作タイミング図である。
【図１９】従来の画像ぶれ補正処理時のデータの流れを説明する説明図である。
【符号の説明】
【０１６３】
１００…コンピュータ、１０１…入力Ｉ／Ｆ、１０２…ＲＡＭ、１０３…ＣＰＵ、１０４…ＲＯＭ、１０５…ハードディスク、１０６…出力Ｉ／Ｆ、１０７…バスライン、１１０…フレーム画像受取手段、１２０…動きベクトル検出手段、１２１…動き軌跡算出手段、１２２…ベースライン算出手段、１２３…動き軌跡重み付け手段、１２４…動きベクトル予測手段、１２６…メモリ、１３０…切出位置算出手段、１４０…部分画像切出手段、１５０…画像表示手段、２００…ビデオカメラ、２１０…ＤＶＤプレーヤ、３００…プロジェクタ、３１０…ディスプレイ、Ｆ（ｎ）…フレーム画像、ＦＫ（ｎ）…フレーム画像、ＨＦＧ（１）…補正フレーム画像、Ｓｍａｘ…補正限界値、Ｓｘｍａｘ…補正限界値のＸ成分、Ｓｙｍａｘ…補正限界値のＹ成分、Ｖ０（ｎ）…動きベクトル、Ｖ１（ｎ）…補正動きベクトル、Ｓ（ｎ）…補正位置ベクトル、Ｓｘ（ｎ）…補正位置ベクトルのＸ成分、Ｓｙ（ｎ）…補正位置ベクトルのＹ成分、Ｋ…減衰係数、Ｄ…減衰係数、ＧＫＴ１〜３…減衰係数テーブル。
【図１】
2007028251.tif 000009
【図２】
2007028251.tif 000010
【図３】
2007028251.tif 000011
【図４】
2007028251.tif 000012
【図５】
2007028251.tif 000013
【図６】
2007028251.tif 000014
【図７】
2007028251.tif 000015
【図８】
2007028251.tif 000016
【図９】
2007028251.tif 000017
【図１０】
2007028251.tif 000018
【図１１】
2007028251.tif 000019
【図１２】
2007028251.tif 000020
【図１３】
2007028251.tif 000021
【図１４】
2007028251.tif 000022
【図１５】
2007028251.tif 000023
【図１６】
2007028251.tif 000024
【図１７】
2007028251.tif 000025
【図１８】
2007028251.tif 000026
【図１９】
2007028251.tif 000027