(57)【特許請求の範囲】
【請求項１】
時系列上連続して撮像された複数の画像データを取得する取得手段と、
前記複数の画像データに含まれる少なくとも３つの画像データを時系列順に第１の画像データ、第２の画像データ、第３の画像データとし、
前記第１の画像データと前記第２の画像データとの間の第１の位置ずれを示す第１の位置ずれ情報と、前記第２の画像データと前記第３の画像データにおける第１の位置ずれを示す第１の位置ずれ情報を算出する算出手段と、
前記第１の画像データと前記第２の画像データとの前記位置ずれ情報と前記第２の画像データと前記第３の画像データとの前記位置ずれ情報とに基づいて、前記第１の画像データと前記第３の画像データとの第２の位置ずれを示す第２の位置ずれ情報を得る合成手段と、
前記第２の位置ずれ情報と前記撮像における時間の情報とから算出された被写体の動きに基づいて、前記第１の画像データ中の前記被写体の動きとは異なる揺らぎを補正する補正手段と、
を有すことを特徴とする画像処理装置。
【請求項２】
前記合成手段は、前記第１の画像データと前記第２の画像データとの前記第１の位置ずれ情報と前記第２の画像データと前記第３の画像データとの前記第１の位置ずれ情報とを合成することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記算出手段は、前記第１の画像データと前記第２の画像データとの前記第１の位置ずれ情報および前記第２の画像データと前記第３の画像データとの前記第１の位置ずれ情報それぞれを、画素毎に算出することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記合成手段は、前記第１の画像データにおける着目画素について、前記着目画素の第１の位置ずれ情報に基づいて前記第２の画像データにおける参照位置を決定し、前記第２の画像データにおける参照位置の第１の位置ずれ情報を前記着目画素の第１の位置ずれ情報と合成することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記第１の位置ずれ及び前記第２の位置ずれは、前記複数の画像データ中の画素の移動量として算出される、
ことを特徴とする請求項１乃至４の何れか一項に記載の画像処理装置。
【請求項６】
前記合成手段は、前記第１の位置ずれを、後続する画像データについて算出された第１の位置ずれ情報に基づき、１回以上リサンプリングすることにより、前記第２の位置ずれを算出する、
ことを特徴とする請求項１に記載の画像処理装置。
【請求項７】
前記補正手段は、前記第２の位置ずれ情報に基づいて、前記第１の画像データにおける前記着目画素に対する補正量を算出し、前記補正量を用いて前記第１の画像データにおける前記着目画素の画素値を補正することを特徴とする請求項４に記載の画像処理装置。
【請求項８】
前記補正手段は、前記第２の位置ずれを、所定の多項式関数にフィッティングを行うことにより、前記補正量を算出する、
ことを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記多項式関数は、一次関数であることを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
前記多項式関数は、二次関数であることを特徴とする請求項９に記載の画像処理装置。
【請求項１１】
前記補正手段は、最小二乗法を用いて前記フィッティングを行う、ことを特徴とする請求項８乃至１０の何れか一項に記載の画像処理装置。
【請求項１２】
前記補正手段は、前記第２の位置ずれに、時系列上の平均値フィルタを適用することにより、前記補正量を算出する、
ことを特徴とする請求項７に記載の画像処理装置。
【請求項１３】
前記補正手段は、ロバスト推定を用いて、外れ値を除外して前記補正量を算出する、ことを特徴とする請求項７に記載の画像処理装置。
【請求項１４】
被写体の像を撮像素子上に結像させる光学系と、結像した像を画像データに変換する前記撮像素子と、を備え、前記画像データを撮像する撮像手段と、
撮像された前記画像データを処理する請求項１乃至１３の何れか一項に記載の画像処理装置と、
を備えることを特徴とする撮像装置。
【請求項１５】
時系列上連続して撮像された複数の画像データを取得するステップと、
前記複数の画像データに含まれる少なくとも３つの画像データを時系列順に第１の画像データ、第２の画像データ、第３の画像データとするステップと、
前記第１の画像データと前記第２の画像データとの間の第１の位置ずれを示す第１の位置ずれ情報と、前記第２の画像データと前記第３の画像データにおける第１の位置ずれを示す第１の位置ずれ情報を算出するステップと、
前記第１の画像データと前記第２の画像データとの前記位置ずれ情報と前記第２の画像データと前記第３の画像データとの前記位置ずれ情報とに基づいて、前記第１の画像データと前記第３の画像データとの第２の位置ずれを示す第２の位置ずれ情報を得るステップと、
前記第２の位置ずれ情報と前記撮像における時間の情報とから算出された被写体の動きに基づいて、前記第１の画像データ中の前記被写体の動きとは異なる揺らぎを補正するステップと、
を有すことを特徴とする画像処理方法。
【請求項１６】
コンピュータを、請求項１乃至１４の何れか一項に記載の画像処理装置として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、撮像装置、画像処理方法およびコンピュータプログラムに関し、特に大気の揺らぎなどによる画像の変形を補正する技術に関する。
【背景技術】
【０００２】
ビデオカメラや監視カメラなどで動画像を撮影する際に、大気の揺らぎの影響により撮影された映像が揺らぐことがある。この映像の揺らぎは、不均一な大気の温度や密度の分布とその変動により、光線が不規則に屈折することにより生じる現象である。この映像の揺らぎにより、本来あるべき被写体の形状に対して、撮影された映像中の被写体の形状が空間的にも時間的にも不規則に変形してしまう。このような揺らぎの現象は、映像の視認性を低下の原因になり、また、所定の被写体の自動検知を行う監視カメラシステムにおける誤検出の原因となるので、補正されることが望ましい。
【０００３】
例えば、特許文献１は、映像の揺らぎを補正する技術として、映像中の各画素の画素値に対して時系列上複数フレームについての平均値フィルタやメディアンフィルタを適用する方法を開示する。上述した映像の揺らぎによる被写体の変形により被写体上の各点は映像中を不規則に移動するが、被写体の各点の移動先は本来その点が映るべき位置を中心に分布すると考えられる。そのため、着目している点が本来映るべき位置にある画素は、着目している点の画素値を持つ可能性が高いので、特許文献１に開示されている技術では、時系列のフィルタ処理によって、揺らぎの無い状態の画像を得ようとしている。
また例えば、特許文献２は、映像の揺らぎを、画像間の動ベクトルとして抽出し、その動ベクトルを追跡して揺らぎの中心を求めて、その中心位置に揺らぎの起点となる画素を再配置する手法を開示する。このような手法で、その点が映るべき本来の位置を推定する。特許文献２は、こうして得られた各点の本来の位置に向かって、映像中の各点を移動させるよう変形を施すことで揺らぎを補正する技術を開示する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−１８２６２５号公報
【特許文献２】特開平０３−０９５６８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１及び特許文献２で開示されているような揺らぎ補正技術は、映像（時系列上連続して撮影された複数の画像データ）中に移動被写体が存在する場合、移動被写体が存在する領域（「動体領域」とも呼ぶ。）において画質の劣化を生じてしまう。
本発明は、かかる課題に鑑みなされたものであり、その目的は、映像が移動被写体を含む場合であっても、画質の劣化を抑制しつつ、揺らぎの除去を行うことが可能な画像処理装置を提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明に係る画像処理装置の一態様は、時系列上連続して撮像された複数の画像データを取得する取得手段と、前記複数の画像データに含まれる少なくとも３つの画像データを時系列順に第１の画像データ、第２の画像データ、第３の画像データとし、前記第１の画像データと前記第２の画像データとの間の第１の位置ずれを示す第１の位置ずれ情報と、前記第２の画像データと前記第３の画像データにおける第１の位置ずれを示す第１の位置ずれ情報を算出する算出手段と、前記第１の画像データと前記第２の画像データとの前記位置ずれ情報と前記第２の画像データと前記第３の画像データとの前記位置ずれ情報とに基づいて、前記第１の画像データと前記第３の画像データとの第２の位置ずれを示す第２の位置ずれ情報を得る合成手段と、前記第２の位置ずれ情報と前記撮像における時間の情報とから算出された被写体の動きに基づいて、前記第１の画像データ中の前記被写体の動きとは異なる揺らぎを補正する補正手段と、を有する。
【発明の効果】
【０００７】
本発明によれば、移動被写体を含む映像に対しても、画質の劣化を抑制しつつ、揺らぎの除去を行うことができる。
【図面の簡単な説明】
【０００８】
【図１】実施形態の撮像装置の構成例を表すブロック図である。
【図２】撮像部１１３の構成例を表すブロック図である。
【図３】揺らぎによる像の位置ずれを説明するための模式図である。
【図４】位置ずれのフィルタリングによる揺らぎ補正の原理を表す図である。
【図５】近傍フレームの位置ずれの算出原理を表す模式図である。
【図６】実施形態における画像処理部１１４の構成例を表すブロック図である。
【図７】実施形態における画像処理のフローを表す図である。
【図８】位置ずれ算出部６０４の構成例を表すブロック図である。
【図９】位置ずれ算出処理のフローを表す図である。
【図１０】位置ずれ合成部６０５の構成例を表すブロック図である。
【図１１】位置ずれ合成処理のフローを表す図である。
【図１２】変形例１における位置ずれのフィルタリング方法を表す図である。
【図１３】変形例２、３における位置ずれのフィルタリング方法を表す他の図である。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照して、本発明を実施するための形態について詳細に説明する。
なお、以下に説明する実施の形態は、本発明の実現手段としての一例であり、本発明が適用される装置の構成や各種条件によって適宜修正又は変更されるべきものであり、本発明は以下の実施の形態に限定されるものではない。
（撮像装置の全体構成）
図１は、本発明の実施形態に係る撮像装置１００の構成の一例を示すブロック図である。以下、図１に基づき、撮像装置１００の各構成を説明する。
撮像部１１３は、光学系によって結像された像を撮像素子により画像データへと変換するプロセスを繰り返すことで、時系列上連続して撮像を行って複数の画像データを取得する。ここで、画像データとは、静止画であり、単に画像とも呼ばれる。時系列上連続する複数の画像データを集合させて、動画像（映像）が構成される。
画像処理部１１４は、撮像部１１３により取得された複数の画像データに対して、後述する揺らぎ補正処理を行う。ＣＰＵ１０１は、各構成の処理全てに関わり、ＲＯＭ１０２やＲＡＭ１０３に格納された命令を順に読み込み、解釈し、その結果に従って処理を実行する。ＲＯＭ１０２とＲＡＭ１０３は、撮像装置１００における各処理に必要なプログラムやデータを格納する。また、ＲＡＭ１０３は、ＣＰＵ１０１の作業領域として動作することができる。
【００１０】
バス１１０は、図１に示す各構成要素間で、データや処理の指示を送受信するための経路である。操作部１０４は、ユーザーが撮像装置１００の操作を行うための手段であり、ユーザーが操作するボタンやモードダイヤル等を含む。また、操作部１０４は、ユーザーがタッチするタッチスクリーンやタッチパネル、ユーザーが押下するキー操作部、等を備えていてもよい。操作部１０４は、これらボタン等を介してユーザーが入力したユーザー指示を取得する。
キャラクタジェネレータ１０９は、文字やグラフィックなどを生成する手段である。
表示部１０６は、例えば液晶ディスプレイで実現してよく、表示制御部１０５から受け取った撮像画像データや文字の表示を行う。また、表示部１０６は、キャラクタジェネレータ１０９が生成した文字やグラフィックを表示する。また、表示部１０６は、タッチスクリーン機能を有していてもよく、その場合は、ユーザーが表示部１０６に対して行ったタッチスクリーン指示を、操作部１０４の入力として扱うこともできる。
【００１１】
デジタル信号処理部１１２は、撮像部１１３が取得した画像データの輝度値の調整や欠陥画素の補間などを行う。デジタル信号処理部１１２が実行するこれらの処理は画像処理部１１４による処理の前に行うことができる。
エンコーダ部１１１は、画像処理部１１４が実行する揺らぎ補正の処理の結果、生成された補正後の画像データのエンコード処理を実行する。メディアインターフェース１０７は、ＰＣ・その他メディア１０８と接続するためのインターフェースである。ＰＣ・その他メディア１０８は、例えば、ハードディスク、メモリーカード、ＣＦカード、ＳＤカード、ＵＳＢメモリ等を利用することができるが、データを記憶できる手段であればどのような手段でも利用することができる。エンコーダ部１１１がエンコードした画像データは、メディアインターフェース１０７を介して、ＰＣ・その他メディア１０８に対して出力することができる。
なお、撮像装置１００の構成要素は上記以外にも存在してよいが、本実施形態とは直接関係しないので、説明を省略する。
【００１２】
（撮像部１１３の構成）
図２は、撮像部１１３の詳細な構成ブロック図であり、以下同図に基づき、撮像部１１３の構成例を説明する。
レンズ２０１及びレンズ２０２は、結像光学系を構成する。被写体から発せられた光線は該結像光学系により、絞り２０３、ＩＲカットフィルタ２０４、ローパスフィルタ２０５、カラーフィルタ２０６を通過した後に、撮像素子２０７上に結像される。なお、ここで示した光学系の構成は、説明のために単純化した例であり、撮像素子２０７上に被写体の像を結像させる機能を有すればどのような構成でもかまわない。また、本実施形態では、カラー画像を取得する構成について説明するが、取得する画像は、白黒画像や４色以上の色彩を検出する画素を持つ画像、画素毎に露出の異なる画像等、さまざまな画像を利用することができる。また、図２に示す光学系に加えて、オートフォーカスやズームなどの機構を持たせてもよい。
【００１３】
撮像素子２０７及びＡ／Ｄ変換部２０８は、ＣＭＯＳイメージセンサなどのイメージセンサで実現することができる。撮像素子２０７は、基板上に２次元の格子状に画素を配列した構成とすることができ、撮像素子２０７上に結像された像をアナログ電気信号に変換する。Ａ／Ｄ変換部２０８はアナログ電気信号に変換された像の情報を、デジタル信号に変換する。撮像素子制御部２１０は、バス１１０を介してＣＰＵ１０１から撮像に関連する指示を受ける。撮像素子制御部２１０は、その指示に従って撮像素子２０７を制御して撮像を実行する。デジタル信号に変換された像の情報は、画像データ（画像フレーム）としてバッファ２０９内に格納される。
撮像は連続的に行われ、各画像データはバス１１０を介して順次、画像処理部１１４に供給される。
【００１４】
（揺らぎ補正の原理）
本実施形態に係る撮像装置１００は、画像間の位置ずれに基づいて、揺らぎの補正を行う。以下、この補正の原理を説明する。
図３は、動画像に発生した揺らぎによって、動画像を構成する画像間の位置ずれが発生する様子を表した模式図である。撮像装置１００が実行する揺らぎ補正処理の対象となる入力は、動画像または連続した静止画によって構成される時系列に並んだ画像データである。本説明では、このような画像データを、「フレーム」と呼び、時系列順に、フレームｎ、フレームｎ＋１、フレームｎ＋２、フレームｎ＋３、フレームｎ＋４・・・のように表記する。ここで、ｎは任意の自然数である。
図３（ａ）は、静止領域における位置ずれを説明する図である。まず、図３（ａ）の各フレームにおいて、揺らぎが無かった場合に、被写体上の着目点が映る本来の位置３０１が破線の○で示されている。また、図３（ａ）において、この着目点が実際に映る位置３０２、３０３、３０４、３０５、３０６が、フレームｎ、ｎ＋１、ｎ＋２、ｎ＋３、ｎ＋４においてそれぞれ実線○で示されている。このように、着目点は、本来の位置３０１に映るべきであるが、揺らぎによって位置が変動することによって、フレーム毎に３０２〜３０６の位置にばらついて映る。このように、「位置ずれ」とは、画像データ上の画素毎の移動量（動き）であり、この移動量を表す情報を位置ずれ情報、または、単に位置ずれと呼ぶ。
【００１５】
図３（ｂ）は動体領域における位置ずれを説明する図である。
まず、図３（ｂ）の各フレームにおいて、揺らぎが無かった場合に、被写体上の着目点が映る本来の位置３０７、３０８、３０９、３１０、３１１が、破線の○で、各フレームｎ、ｎ＋１、ｎ＋２、ｎ＋３、ｎ＋４において示されている。この本来の位置３０７、３０８、３０９、３１０、３１１は、フレームが進むごとに（時間の進行とともに）右に移動している。また、図３（ｂ）において、この着目点が実際に映る位置３１２、３１３、３１４、３１５、３１６が、フレームｎ、ｎ＋１、ｎ＋２、ｎ＋３、ｎ＋４において、それぞれ実線の○で示されている。
このように、着目点は、本来の位置３０７、３０８、３０９、３１０、３１１に映るべきであるが、揺らぎによって位置が変動することによって、フレーム毎に３１２、３１３、３１４、３１５、３１６の位置にばらついて映る。
【００１６】
本実施形態では、この揺らぎによる位置の変動をランダムな動きであると見なして、所定の関数によるフィッティング（Ｆｉｔｔｉｎｇ）を行うことで、揺らぎの無い場合の本来の位置を推定する。
図４は、本実施形態におけるフィッティングによる、本来の位置の推定処理の一例を表す図である。図４（ａ）では、静止領域の場合に、被写体上の着目点がフレームｎ−６〜ｎにおいて映っている位置を、フレームｎにおける位置を基準（０）とした位置ずれで表している。
本実施形態では、本来の位置の推定を、時間と位置ずれの関係の１次関数へのフィッティングに基づいて行う。
図４（ａ）のグラフ中の水平の実線４０１がフィッティングの結果であり、この水平の実線４０１の縦軸値（フレームｎを基準とした位置ずれ）の値が、着目点の推定された本来の位置である。
図４（ａ）では、着目点が静止領域に位置することを前提としているので、フレーム間で本来の位置の移動は無く、フィッティングの結果はほぼ水平の実線４０１となる。図４（ａ）において、フレームｎにおいて着目している点の揺らぎを補正するためには、ｄｎだけ画素の位置を移動させればよい。このフィッティングによる本来の位置の推定と補正とを、補正対象となるフレーム画像の各画素に対してそれぞれ行うことで、映像中の全画像に対する揺らぎ補正を行うことができる。
【００１７】
図４（ｂ）では、動体領域の場合に、被写体上の着目点がフレームｎ−６〜ｎにおいて映っている位置を、フレームｎにおける位置を基準（０）とした位置ずれでプロットしている。
図４（ｂ）のグラフ中の斜めの実線４０２がフィッティングの結果であり、この斜めの実線４０２の縦軸値（フレームｎを基準とした位置ずれ）の値が、着目点の推定された本来の位置である。図４（ｂ）に示された例では、着目点が動体領域に位置することを前提としているので、フィッティングにより得られる本来の位置は、着目点の移動を反映して斜めの実線４０２になっている。この場合においても、フレームｎにおいて着目している点の揺らぎを補正するには、ｄｎだけ画素の位置を移動させればよい。
【００１８】
本実施形態において、以上のようにして、フィッティングに基づいて揺らぎの無い場合に相当する本来の位置を推定している。この本来の位置の推定を実行するには、上述したように補正対象のフレームｎの近傍におけるフレーム間の位置ずれ情報が必要となる。本実施形態では、補正対象のフレームと、補正対象のフレームに対して隣り合うフレームとの間の位置合わせに基づき、近傍フレームのフレーム間の位置ずれ情報を算出する。
なお、本文で、「近傍のフレーム」とは、着目しているフレームの時間的に前後の複数フレームを表すが、過去の複数フレームのみでもよいし、また、未来の複数フレームのみでもよい。また、着目しているフレームを中心にして過去と未来の複数フレームであってもよい。
【００１９】
（位置ずれ情報の算出）
図５は、位置ずれ情報の算出の概念を表す図である。本実施形態では、まず始めに隣接しているフレーム間の位置ずれを、位置合わせにより算出（推定）する。次に、フレーム間の位置ずれを順次合成していくことによって、着目しているフレームと、その近傍に位置するフレームとの間の位置ずれを算出することができる。
図５において、最上段は各フレーム画像であり、上から２段目は、最上段の隣接するフレーム画像間の位置ずれを表す。図５の上から２段目において、フレームｎからフレームｎ−１への位置ずれ、フレームｎ−１からフレームｎ−２への位置ずれ、フレームｎ−２からフレームｎ−３への位置ずれが、まず位置合わせにより算出されることが示されている。
【００２０】
次に、上から３段目には、さらに、位置ずれ同士が合成されて、２個ずれたフレーム間のずれ量が求められている。例えば、図５の３段目においては、フレームｎからフレームｎ−１への位置ずれと、フレームｎ−１からフレームｎ−２への位置ずれと、を合成することによって、フレームｎからフレームｎ−２への位置ずれを算出することができる。この合成の結果、ずれ量がより大きくなる場合が示されている。
同様に、フレームｎ−１からフレームｎ−２への位置ずれと、フレームｎ−２からフレームｎ−３への位置ずれと、を合成する（繋ぎ合わせる）ことによって、フレームｎ−１からフレームｎ−３への位置ずれを算出することができる。  さらに、フレームｎからフレームｎ−２への位置ずれと、フレームｎ−２からフレームｎ−３への位置ずれと、を合成する（繋ぎ合わせる）ことによって、フレームｎからフレームｎ−３への位置ずれを算出することができる。上から４段目において、この合成したずれ量が示されている。
本実施形態においては、以上のように、隣接フレーム間の位置合わせを行うことで隣接フレーム間の位置ずれを算出（推定）し、得られた位置ずれを合成する（繋ぎ合わせる）。これによって、移動被写体のあるシーンでも、より高い精度で、着目フレームと、その着目フレームの近傍のフレームと、の位置ずれを求めることができる。
そして、本実施形態においては、近傍フレームの位置ずれに対してフィッティングを行うことによって、移動被写体のあるシーンでも移動被写体の動きを残して揺らぎのみを補正することができる。
【００２１】
（画像処理部１１４の構成と処理）
図６は、画像処理部の構成ブロック図の一例であり、このブロック図に基づき画像処理部１１４の構成の例を説明する。
画像取得部６０１（取得手段）は、撮像部１１３が時系列上連続して撮像した複数の入力画像データを、バス１１０を介して１フレームずつ取得し、基準画像バッファ６０２に順次格納する。この複数の入力画像データは、時間的に連続して（異なるタイミングで）撮影された入力画像データであり、複数の入力画像データが集合して、映像を構成している。
基準画像バッファ６０２は、画像取得部６０１が取得した１フレーム分の画像データを保持する。基準画像バッファ６０２は、新しい画像データが格納されると、それまで保持していた画像データを位置ずれ算出部６０４と画像変形部６０７とに送るとともに対象画像バッファ６０３にも格納する。基準画像バッファ６０２が保持する画像データを、「基準画像データ」と呼ぶものとする。
【００２２】
対象画像バッファ６０３は、基準画像バッファ６０２から供給される１フレーム分の画像データを保持する。対象画像バッファ６０３は、新しい画像データが格納されると、それまで保持していた画像データを位置ずれ算出部６０４に送る。対象画像バッファ６０３が保持する画像データを、「対象画像データ」と呼ぶものとする。
位置ずれ算出部６０４（第１の算出手段）は、基準画像バッファ６０２より取得した画像データ（基準画像データ）から、対象画像バッファ６０３より取得した画像データ（対象画像データ）への位置ずれ（第１の位置ずれ）を算出する。すなわち、位置ずれ算出部６０４は、画像データと、その画像データと時系列的に隣接する画像データとの位置ずれを算出する。
ここで、基準画像データは、位置ずれ算出の基準となる画像データであり、対象画像データは位置ずれ算出の対象となる画像データである。すなわち、位置ずれ算出部６０４（第１の算出手段）は、基準画像データ上の各画素が、対象画像データ上のどの位置に対応するかを隣接する画像データの位置合わせにより求め、その画素位置のずれ（第１の位置ずれ）を位置ずれ情報として算出する。
【００２３】
位置ずれ合成部６０５（合成手段）は、最新の基準画像データに対する近傍フレームの位置ずれ（第２の位置ずれ）を、所定のフレーム数の分だけ算出し保持する。位置ずれ合成部６０５（合成手段）が保持するフレーム数は、揺らぎ補正量算出部６０６（第２の算出手段）における処理で用いるフレーム数によって規定される。
本実施形態においては、揺らぎ補正量算出部６０６は、最新の基準画像データに対して、例えば過去４フレーム分の近傍フレームの位置ずれ情報を用いるものとして説明する。近傍フレームとは、基準画像データに対して時系列的に近い順に選んだＮフレームでよい。ここでＮは、整数であり、本実施形態ではＮ＝４の例を示しているが、Ｎは他の数でもよい。また、本実施形態では過去方向に近い順に４フレームの例を示しているが、未来方向の近い順のＮフレームを含めてもよい。
【００２４】
位置ずれ合成部６０５は、位置ずれ算出部６０４から新たな位置ずれ情報を供給されると、位置ずれ合成部６０５が保持している位置ずれ情報と新たな位置ずれ情報との合成を行い、保持していた位置ずれ情報を、最新の基準画像データを基準としたものに変換する。位置ずれ合成部６０５は、このようにして変換した位置ずれ情報を、揺らぎ補正量算出部６０６に送出する。
揺らぎ補正量算出部６０６（第２の算出手段）は、位置ずれ合成部６０５から入力された位置ずれ情報に基づき、時間と位置ずれ量の関係を所定の関数でフィッティングする。これによって、最新の基準画像データ上の各画素に対して本来の位置を得るための揺らぎ補正量を算出する。換言すれば、揺らぎ補正量算出部６０６（第２の算出手段）は、位置ずれ合成部６０５が求めた位置ずれ（第２の位置ずれ）に基づいて、基準画像データ（一の画像データ）に対する補正量を算出する。
【００２５】
画像変形部６０７（補正手段）は、揺らぎ補正量算出部６０６が算出した揺らぎ補正量に基づき、最新の入力画像データ（基準画像バッファ６０２から供給される基準画像データ）をリサンプリング（Ｒｅｓａｍｐｌｉｎｇ）する。このリサンプリング処理によって、画像変形部６０７は、入力画像データを変形し、揺らぎを揺らぎ補正量で補正した画像データを生成する。すなわち、画像変形部６０７（補正手段）は、算出された揺らぎ補正量に基づき、基準画像データ（一の画像データ）を補正する。
このリサンプリング処理は、例えば、最近傍画素へ、元の画素値を割り当てて補間をすることによって実行することができる。あるいは、補正位置の近傍画素に元の画素値を重み付けして分配した後に、重み和で除算することなどの手法を用いて実行することができる。リサンプリング処理は、その他種々の手法を用いて実行することができる。なお、画像変形部６０７（補正手段）が実行する画像の変形は、揺らぎ補正量算出部６０６が算出した揺らぎ補正量に基づいた変形であれば、さまざまな方法で実行してよい。
画像出力部６０８は、画像変形部６０７が生成した補正画像データを、バス１１０を介して出力する。
【００２６】
（画像処理部１１４の処理）
図７は、画像処理部１１４の処理の流れの一例を示すフローチャートであり、このフローチャートを用いて画像処理部１１４の処理の流れの一例を説明する。画像処理部１１４のこのような処理は、画像処理部１１４内のＣＰＵが所定のプログラムを実行することによって実現してもよいし、ＡＳＩＣ等で構成した画像処理プロセッサが処理を実行してもよい。
Ｓ１において、画像取得部６０１（取得手段）は、入力画像データ中の最初のフレームの画像データを取得し、位置合わせの基準画像データとして基準画像バッファ６０２に格納する。
Ｓ２において、対象画像バッファ６０３は、基準画像バッファ６０２が格納している画像データ（基準画像データ）を受け取り、対象画像データとして対象画像バッファ６０３内に格納する。
【００２７】
Ｓ３において、画像取得部６０１は、新たなフレームの画像データを取得し、基準画像データとして基準画像バッファ６０２に格納する。
Ｓ４において、位置ずれ算出部６０４は、Ｓ３において基準画像バッファ６０２に格納した基準画像データに対する、Ｓ２において格納した対象画像データの位置ずれ情報を、両者の位置合わせにより算出する。
Ｓ５において、位置ずれ合成部６０５は、Ｓ４において算出した複数の位置ずれ情報を合成して、Ｓ３において格納した基準画像データに対する近傍フレームの画像データの位置ずれ情報を算出する。具体的には、位置ずれ合成部６０５は、過去Ｎフレーム分の画像データの位置ずれ情報を算出する。ここで、Ｎは、例えば正の整数であるが、例えば２以上の正の整数を選ぶことができる。
Ｓ６において、揺らぎ補正量算出部６０６は、まず、Ｓ５において算出した位置ずれ情報に基づき、時間（各フレーム）と位置ずれ量の関係を関数でフィッティングする。次に、揺らぎ補正量算出部６０６は、フィッティングの結果に基づき、基準画像データ上の各画素を揺らぎの無い場合の本来の位置に補正するための揺らぎ補正量を算出する。
Ｓ７において、画像変形部６０７は、Ｓ６で算出した補正量に基づき、基準画像バッファ６０２に格納されている基準画像データを変形する。
Ｓ８において、画像出力部６０８は、Ｓ７で画像変形部６０７が変形した補正画像データを、バス１１０を介して出力する。
【００２８】
（位置ずれ算出部６０４の構成と処理）
次に、位置ずれ算出部６０４の構成と、位置ずれ算出部６０４が実行する処理について説明する。位置ずれ算出部６０４は、上述したように、位置合わせの基準となる画像データ（基準画像データ）から対象になる画像データ（対象画像データ）への位置ずれを算出する。
本実施形態では、位置ずれ算出部６０４は、例えばＨｏｒｎ−Ｓｃｈｕｎｃｋの方法を用いて、対象画像データと基準画像データの位置ずれを算出する。Ｈｏｒｎ−Ｓｃｈｕｎｃｋの方法は、例えば、“Horn, B. K. P. and Schunck, B. G. (1981). Determining Optical Flow. Artificial Intelligence,17:185-203.”に記載されている。このＨｏｒｎ−Ｓｃｈｕｎｃｋの方法では、下記式（１）で表されるエネルギー関数Ｅを最小化する位置ずれｕ，ｖを繰り返しの演算で求める。下記式（１）において、Ｉｘ、Ｉｙは基準画像データの画素値のｘ方向、ｙ方向の微分であり、Ｉｔは位置ずれを算出する２つの画像間の輝度の変動である。
【００２９】
【数１】
0006671975.tif 000002
【００３０】
式（１）の積分内の第１項は、位置ずれを算出する画像間の画素値が一定であるという条件を１次まで展開して得られる項であり、第２項は位置ずれの変動が連続的であるという条件を表す正則化項である。αは正則化の強さを調整するパラメータであり、大きいほど位置ずれの変動が滑らかになる。
式（１）をＥｕｌｅｒ−Ｌａｇｒａｎｇｅ方程式を用いて解くと、下記式（２）が得られる。
Ｉx （Ｉxｕ＋Ｉyｖ＋Ｉt ）-ａ2Δｕ＝０
Ｉy （Ｉxｕ＋Ｉyｖ＋Ｉt ）-ａ2Δｖ＝０          （２）
ここで、位置ずれｕ，ｖのラプラシアン（Ｌａｐｌａｃｉａｎ）を式（３）のように表し、式（２）に代入すると、次に示す式（４）が得られる。ここでｕやｖの上部の−はこれらｕやｖの近傍領域での重み付き平均を表す。
【００３１】
【数２】
0006671975.tif 000003
【００３２】
【数３】
0006671975.tif 000004
【００３３】
式（４）は近傍領域での位置ずれの重み付き平均を含むため、全ての画素位置でのｕ，ｖが関連性を持っており、解析的に解くには問題がある。そのため、本実施形態では、下記式（５）の計算を繰り返すことで、式（４）の解を近似的に求める。ここでｋは繰り返しの回数を表し、ｕｋ，ｖｋはｋ回目の繰り返しにおける位置ずれの値である。
【００３４】
【数４】
0006671975.tif 000005
【００３５】
図８は、位置ずれ算出部６０４のブロック図であり、この図に基づき位置ずれ算出部６０４の構成の例を説明する。
差分画像生成部８０１は、基準画像データと対象画像データの差分画像データを生成する。基準画像データ上の（ｉ，ｊ）の位置の画素値をＩｉ，ｊ，０とし、対象画像データ上の（ｉ，ｊ）の位置の画素値をＩｉ，ｊ，１とすれば、差分画像データ上の（ｉ，ｊ）の位置の値Ｉｔｉ，ｊは、下記式（６）のように表し、算出することができる。
【００３６】
【数５】
0006671975.tif 000006
【００３７】
微分画像生成部８０２は、基準画像データのｘ方向、ｙ方向の微分画像データを生成する。基準画像データ上の（ｉ，ｊ）の位置のｘ微分Ｉｘｉ，ｊとｙ微分Ｉｙｉ，ｊはそれぞれ式（７）、式（８）のように算出する。本実施形態における微分画像とは、例えば各画素の値が、算出したｘ微分Ｉｘｉ，ｊとｙ微分Ｉｙｉ，ｊである画像である。
【００３８】
【数６】
0006671975.tif 000007
【００３９】
位置ずれ初期化部８０３は、繰り返し処理で算出する位置ずれ情報の初期値を生成し、バッファ８０４に格納する。本実施形態においては、位置ずれ情報の初期値としては、例えばｕ＝０，ｖ＝０となるような位置ずれ無しのデータを用いる。バッファ８０４は、式（５）に基づく繰り返し処理の間、計算途中の位置ずれ情報を格納しておくバッファである。位置ずれ更新部８０５は、式（５）に基づいて、微分画像生成部８０２が生成した微分画像データと、差分画像生成部８０１が生成した差分画像データとに基づき、バッファ８０４に格納された計算途中の位置ずれ情報を更新する。
位置ずれ出力部８０６は、位置ずれ更新部８０５による所定の回数の繰り返し処理が完了した際、バッファ８０４に格納された位置ずれ情報を出力する。
図９は、位置ずれ算出部６０４の処理動作（位置ずれ算出処理）を表すフローチャートを示しており、このフローチャートに基づき位置ずれ算出処理の流れの一例を説明する。
位置ずれ算出部６０４のこのような処理動作は、画像処理部１１４内のＣＰＵが所定のプログラムを実行することによって実現してもよいし、ＡＳＩＣ等で構成した画像処理プロセッサで実現してもよい。
【００４０】
Ｓ４１において、位置ずれ算出部６０４は、基準画像データと、対象画像データとを取得する。具体的には、位置ずれ算出部６０４内の差分画像生成部８０１が、基準画像データと対象画像データとを取得する。また、微分画像生成部８０２が、対象画像データを取得する。
Ｓ４２において、差分画像生成部８０１は、対象画像データと基準画像データの差分画像データを生成する。各画素の値の計算は、式（６）によって行われる。
Ｓ４３において、微分画像生成部８０２は、基準画像データのｘ微分とｙ微分とから構成される微分画像データを生成する。各画素の値の計算は、式（７）（８）によって行われる。
Ｓ４４において、位置ずれ初期化部８０３は、位置ずれ情報を初期化してバッファ８０４に格納する。すなわち、バッファ８０４に、初期値として例えばｕ＝０，ｖ＝０となるような位置ずれ無しのデータを格納する。
Ｓ４５において、位置ずれ算出部６０４の位置ずれ更新部８０５は、位置ずれ情報を更新する処理を所定の回数処理を繰り返したか判定する。繰り返していない場合はＳ４６に進み、繰り返していた場合はＳ４７に進む。本実施形態では、繰り返し回数は、上述したように例えばｋ回である。
【００４１】
Ｓ４６において、位置ずれ更新部８０５が、Ｓ４１で生成した差分画像データと、Ｓ４２で生成した微分画像データに基づき、バッファ８０４に格納された位置ずれ情報を更新する。ここで、位置ずれ更新部６０５は、上記式（５）に基づく更新処理を実行する。
Ｓ４７において、位置ずれ出力部８０６は、位置ずれ情報をバッファ８０４から取り出し、バス１１０を介して出力する。
なお、本実施形態において説明した位置ずれ情報の算出の方法は一例であり、他の手法によって位置ずれ情報を算出してもよい。例えば、対象画像データをブロック領域に分割し、ブロック領域毎にブロックマッチングを行うことによって位置ずれ情報を算出することができる。また、対象画像データ中の特徴点の対応を補間して画素位置の対応を求める方法を利用して、位置ずれ情報を算出することもできる。また、位置ずれ情報としては、対象画像データと基準画像データとの画素間の対応を規定する情報ならば、どのような形態の情報を算出して利用してもよい。
【００４２】
（位置ずれ合成部６０５の構成と処理）
位置ずれ合成部６０５は、位置ずれ算出部６０４が算出した位置ずれ情報を合成して、基準画像データを基準とした近傍のフレームの位置ずれ情報を算出する。
本実施形態では一例として、過去４フレームまでの対象画像データに対する位置ずれ情報を算出する。すなわち、対象画像データより、時系列上複数（例えば４）フレーム前の画像データを用いて、近傍フレームの位置ずれを算出しようとするものである。
図１０は、位置ずれ合成部６０５のブロック図であり、このブロック図に基づき位置ずれ合成部６０５の構成例を説明する。
位置ずれ合成部６０５で処理する位置ずれ情報は、位置ずれ元のフレームの（基準画像データの）各画素位置に対して、位置ずれ先のフレーム上での（対象画像データ上の）位置を表す形態で取り扱うものとする。すなわち、位置ずれ元のフレーム上での整数画素位置（ｈ，ｋ）に対応する、位置ずれ先のフレーム（上での小数画素位置（Ｘ（ｈ，ｋ），Ｙ（ｈ，ｋ））を規定するものが、本実施形態における位置ずれ情報であるものとする。
ここで、整数画素位置とは、画素の座標が整数で表現されている位置である。また、小数画素位置とは、画素の座標を小数で表した位置である。これは、位置ずれ情報の値が整数とは限らないためである。
【００４３】
なお、以降の説明では、位置ずれ元のフレームが基準画像データのｎフレーム前の画像データであり、位置ずれ先のフレームが基準画像データのｍフレーム前の画像データであるときの位置ずれ情報を、便宜上、Ｘｍｎ，Ｙｍｎと記述するものとする。この時、同一フレーム間では、同じ画素位置が対応するので、下記式（９）のような関係が成立する。つまり、ｎフレーム前の画像データと、同じくｎフレーム前の画像データは同一なので、下記のような関係が成立する。
（ｈ，ｋ）＝（Ｘnn(h,k)，Ｙnn(h,k)）            （９）
【００４４】
また、位置ずれ算出部６０４は、基準画像データに対する１フレーム前の画像データの位置ずれ情報を算出するので、位置ずれ合成部６０５に入力される位置ずれ情報は、例えばＸ１０，Ｙ１０と記述することができる。
すなわち、位置ずれ元のフレームが基準画像データの０（ｎ＝０）フレーム前の画像データであり、位置ずれ先のフレームが基準画像データの１（ｍ＝１）フレーム前の画像データである場合を表している。
図１０における第１バッファ９０２から、第２バッファ９０３、第３バッファ９０４、第４バッファ９０５には、基準画像データからそれぞれ１フレーム前から４フレーム前の位置ずれ情報が格納されている。すなわち、Ｘ１０，Ｙ１０，Ｘ２０，Ｙ２０，Ｘ３０，Ｙ３０，Ｘ４０，Ｙ４０を規定する情報が保持されている。
リサンプリング部９０１は、位置ずれ算出部６０４から取得した新たな位置ずれ情報に基づいて、位置ずれ情報のリサンプリングを行い、最新の基準画像データを基準とした１フレーム前から４フレーム前までの各フレームへの位置ずれ情報を算出する。なお、リサンプリングのアルゴリズムはさまざまな手法を採用してよい。例えば、バイリニア（Ｂｉｌｉｎｅａｒ）やバイキュービック（Ｂｉｃｕｂｉｃ）などのアルゴリズムを採用してよい。
【００４５】
なお、新たなフレームを基準としてリサンプリングすることで、１フレーム前のフレームへの位置ずれは、２フレーム前のフレームへの位置ずれとなる。従って、第１バッファ９０２に格納された位置ずれ情報をリサンプリングして得られた位置ずれ情報は第２バッファ９０３に格納される。第２バッファ９０３、第３バッファ９０４に格納されている位置ずれ情報についても同様であり、順に、第３バッファ９０４、第４バッファ９０５にそれぞれ格納される。すなわち、新たな位置ずれ情報が入力された時点で、第１バッファ９０２から第３バッファ９０４に格納されている位置ずれ情報は、Ｘ２１，Ｙ２１，Ｘ３１，Ｙ３１，Ｘ４１，Ｙ４１となる。
リサンプリング部９０１は、第１〜第４バッファ群（９０２〜９０５）に格納されている情報を、新たな位置ずれ情報Ｘ１０，Ｙ１０を用いてリサンプリングすることで、Ｘ２０，Ｙ２０，Ｘ３０，Ｙ３０，Ｘ４０，Ｙ４０へと変換する。ここで、説明をわかりやすくするために、行列状のデータＭをリサンプリングして（ｘ，ｙ）の位置での値ｍを算出する操作Ｃを、式（１０）のように表現する。
ｍ＝Ｃ（ｘ，ｙ；Ｍ）                        （１０）
また、ｘ，ｙが行列Ｘ，Ｙの要素であるとき、この結果を同じ形の行列状に並べる操作を式（１１）のように表現する。
【００４６】
【数７】
0006671975.tif 000008
【００４７】
このように表現したとき、位置ずれ合成部６０５が実行する処理は、下記式（１２）、式（１３）、式（１４）のように表される。
Ｘ20＝Ｃ（Ｘ10，Ｙ10；Ｘ21）
Ｙ20＝Ｃ（Ｘ10，Ｙ10；Ｙ21）                （１２）
Ｘ30＝Ｃ（Ｘ10，Ｙ10；Ｘ31）
Ｙ30＝Ｃ（Ｘ10，Ｙ10；Ｙ31）                （１３）
Ｘ40＝Ｃ（Ｘ10，Ｙ10；Ｘ41）
Ｙ40＝Ｃ（Ｘ10，Ｙ10；Ｙ41）                （１４）
リサンプリング部９０１によるリサンプリングが完了した後、第１バッファ９０２には、位置ずれ算出部６０４から取得した最新のフレームを基準とした位置ずれ情報が格納される。また、第１バッファ９０２から第４バッファ９０５に格納された位置ずれ情報は揺らぎ補正量算出部６０５に出力される。
これらの情報を、合成位置ずれ情報、または単に合成位置ずれと呼ぶ。なお、合成位置ずれは、位置ずれと同様に、画像データ上の画素毎の移動量である。
【００４８】
位置ずれ合成部６０５は、以上のような処理を、第１バッファ９０２からバッファ９０４の情報を保持したまま繰り返し行うことで、隣接フレーム間の位置ずれを合成して近傍フレーム間の位置ずれを算出する。Ｘ２０，Ｙ２０，Ｘ３０，Ｙ３０，Ｘ４０，Ｙ４０を隣接フレーム間での位置ずれ情報に基づいて記述すれば、式（１５）、式（１６）、式（１７）のようになる。
Ｘ20＝Ｃ（Ｘ10，Ｙ10；Ｘ21）
Ｙ20＝Ｃ（Ｘ10，Ｙ10；Ｙ21）                                  （１５）
Ｘ30＝Ｃ（Ｘ10，Ｙ10；Ｃ（Ｘ21，Ｙ21；Ｘ32））
Ｙ30＝Ｃ（Ｘ10，Ｙ10；Ｃ（Ｘ21，Ｙ21；Ｙ32））                 （１６）
Ｘ40＝Ｃ（Ｘ10，Ｙ10；Ｃ（Ｘ21，Ｙ21；Ｃ（Ｘ32，Ｙ32；Ｘ43）））
Ｙ40＝Ｃ（Ｘ10，Ｙ10；Ｃ（Ｘ21，Ｙ21；Ｃ（Ｘ32，Ｙ32；Ｙ43）））（１７）
図１１は、位置ずれ合成部６０５の処理を示すフローチャートであり、このフローチャートに基づいて、位置ずれ合成部６０５の処理の流れの一例を説明する。このフローチャートに示す処理は、画像処理部１１４内のＣＰＵが所定のプログラムを実行することによって実現してもよいし、ＡＳＩＣ等で構成される画像処理プロセッサ等が処理を実行してもよい。
【００４９】
Ｓ５１において、リサンプリング部９０１は、位置ずれ算出部６０４が算出した位置ずれ情報を取得する。Ｓ５２において、リサンプリング部９０１は、第３バッファ９０４に位置ずれ情報が格納されているか判定し、格納されていればＳ５３に進み、格納されていなければＳ５４に進む。
Ｓ５３において、リサンプリング部９０１は、Ｓ５１において取得した位置ずれ情報に基づき、第３バッファ９０４に格納された位置ずれ情報をリサンプリングし、第４バッファ９０５にその結果を格納する。Ｓ５４において、リサンプリング部９０１は、第２バッファ９０３に位置ずれ情報が格納されているか判定し、格納されていればＳ５５に進み、格納されていなければＳ５６に進む。
【００５０】
Ｓ５５において、リサンプリング部９０１は、Ｓ５１において取得した位置ずれ情報に基づき、第２バッファ９０３に格納された位置ずれ情報をリサンプリングし、第３バッファ９０４にその結果を格納する。Ｓ５６においてリサンプリング部９０１は、第１バッファ９０２に位置ずれ情報が格納されているか判定し、格納されていればＳ５７に進み、格納されていなければＳ５８に進む。
Ｓ５７において、リサンプリング部９０１は、Ｓ５１において取得した位置ずれ情報に基づき、第１バッファ９０２に格納された位置ずれ情報をリサンプリングし、第２バッファ９０３にその結果を格納する。
Ｓ５８において、位置ずれ算出部６０４は、第１バッファ９０２に、算出された位置ずれ情報を格納する。Ｓ５９において、位置ずれ合成部６０５は、第１バッファ９０２、第２バッファ９０３、第３バッファ９０４、第４バッファ９０５中に格納されている位置ずれ情報を、揺らぎ補正量算出部６０６に対して出力する。
【００５１】
（揺らぎ補正量算出処理）
次に、揺らぎ補正量の算出処理の詳細について説明する。本実施形態では、基準画像データ上の各点に対する近傍画像データ上での位置ずれに関して、位置ずれ量と時間の関係を例えば１次関数（多項式関数）にフィッティングすることによって、揺らぎ補正量を算出する。ここで、着目した点のｎフレーム前の画像データ上での位置ずれを（ｘｎ，ｙｎ）で表す。また、１次関数の傾きをｘ方向、ｙ方向をそれぞれａｘ，ａｙで表し、切片をｘ方向、ｙ方向それぞれをｂｘ，ｂｙで表す。このとき、最小二乗法でフィッティングを行う場合は、最小化すべき関数Ｅｘ、Ｅｙは下記式（１８）、式（１９）のようになる。
【００５２】
【数８】
0006671975.tif 000009
【００５３】
ここで、Ｎ（Ｎは例えば正の整数）は補正量の算出に用いるフレーム数を表す。本実施形態では、例えばＮ＝４の例を説明するが、その他の値であっても、同様の算出方法を用いることができる。また、本実施形態では、上記式（１８）、式（１９）において、ｎ＞＝０であるが、ｎ＜０すなわち基準画像データより未来のフレームの位置ずれを用いても同様の算出方法を用いることができる。
求めるべき補正量は式（１８）、式（１９）を最小化する切片ｂｘ，ｂｙである。式（１８）のａｘ、ｂｘによる偏微分が０になるとき、式（１８）は最小値をとるので、式（２０）、式（２１）に基づき式（２２）のような計算を行うことで補正量を求めることができる。また、ｙ方向の成分についても同様に補正量を求めることができる。
【００５４】
【数９】
0006671975.tif 000010
【００５５】
なお、ここで示した算出式は一例であり、等価な計算ならどのように計算を行ってもよい。また、最小二乗法を用いてフィッティングを行ったが、その他の方法によりフィッティングを行い、補正量を推定してもよい。
以上、本実施形態によれば、隣接するフレーム間での位置合わせにより移動被写体の動きによる位置ずれ量を算出する。この算出された位置ずれ量を、近傍フレームにつき合成（積算）し、この合成位置ずれ量に対してフィッティングを行う。これにより、移動被写体の動きを知ることができ、それに基づき補正量を算出する。したがって、移動被写体のあるシーンでも、シーンの破綻を生じさせずに、移動被写体の動きをより正確に残しつつ、揺らぎを補正することが可能となる。
【００５６】
変形例１
（未来のフレームの利用）
上記実施形態では、補正量を算出するにあたって、補正対象のフレームより過去のフレームの位置ずれのみを用いたが、図１２（ａ）に示すようにｎ番目のフレームの補正に未来のフレームの位置ずれを用いてもよい。すなわち、補正対象のフレーム（一の画像データ）より時系列上複数フレーム後の画像データを用いて、位置ずれを算出しようとする物である。図１２（ａ）は、図４（ａ）で説明したフィッティングの時間軸を未来まで拡張した時間軸を示す。この場合、位置ずれ合成処理において実施形態で行ったような過去から未来への処理に加えて、未来から過去への処理を合わせて行うことによって、過去と未来の近傍フレームの位置ずれを算出することができる。
この場合、補正対象のフレームより未来のフレームを用いることで、補正量の算出に用いるフレーム数が増えるため、補正精度が向上する。
【００５７】
変形例２
（フィッティングに用いる関数）
また、上記実施形態では、図４（ｂ）で説明したように、各画素の位置ずれを１次関数でフィッティングしたが、図１２（ｂ）のように０次関数、すなわち平均化によるフィッティングを行ってもよい。言い換えれば、位置ずれに対して、時系列上の平均値フィルタを適用して、フィッティングを行ってもよい。この場合、計算が簡素化されるため、少ない計算コストで処理することが可能となる。
あるいは、図１３（ａ）に示すように、２次以上の高次の関数（多項式関数）でフィッティングしてもよい。例えば、２次関数でフィッティングを行うには、上記式（１８）、式（１９）の代わりに式（２３）、式（２４）を最小化するｃｘを算出する。
【００５８】
【数１０】
0006671975.tif 000011
【００５９】
この場合、複雑な動きに追従できるようになるため、フィッティングによって動被写体の動きが鈍ってしまうことを抑制することができ、動被写体の動きをより正確に再現することができる。
変形例３
（外れ値の除外）
また、実施形態においては、予め決められた近傍フレーム（例えば４フレーム）を全て用いてフィッティングしたが、図１３（ｂ）に示すように、ロバスト推定を用いて、外れ値を除去してもよい。この場合、位置合わせの失敗による補正精度の低下を抑制することが可能となる。
【００６０】
（その他の実施形態）
本発明は、以下の処理を実行することによっても実現される。
即ち、上述した実施形態の１以上の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給することができる。そして、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵまたは１つ以上のプロセッサ等）がプログラムを読み出して実行する処理で上述した各処理を実現することもできる。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００６１】
１００・・・撮像装置、１０１・・・ＣＰＵ、１０２・・・ＲＯＭ、１０３・・・ＲＡＭ、１０４・・・操作部、１０５・・・表示制御部、１０６・・・表示部、１０７・・・メディアインターフェース、１０８・・・ＰＣ・その他メディア、１０９・・・キャラクタジェネレータ、１１１・・・エンコーダ部、１１２・・・デジタル信号処理部、１１３・・撮像部、１１４・・・画像処理部
【図１】
0006671975.tif 000012
【図２】
0006671975.tif 000013
【図３】
0006671975.tif 000014
【図４】
0006671975.tif 000015
【図５】
0006671975.tif 000016
【図６】
0006671975.tif 000017
【図７】
0006671975.tif 000018
【図８】
0006671975.tif 000019
【図９】
0006671975.tif 000020
【図１０】
0006671975.tif 000021
【図１１】
0006671975.tif 000022
【図１２】
0006671975.tif 000023
【図１３】
0006671975.tif 000024