(57)【要約】      （修正有）【課題】回路規模の増大を抑制しつつ、画像間の位置合わせに必要な情報の取得の効率や精度を向上させる技術を提供する。【解決手段】基準画像分割手段により得られた基準ブロック画像の各々について自己相関パラメータを算出する、前記自己相関パラメータ算出手段と、前記基準ブロック画像の所定領域と当該基準ブロック画像に対応する合成対象ブロック画像の所定領域との複数のペアの各々について、相関値算出回路を用いて２つの前記所定領域の画像間の相関値を算出し、当該算出された相関値に基づいて前記基準ブロック画像と前記合成対象ブロック画像との間の動きを示す動きベクトルを算出する動きベクトル算出手段であって、前記基準画像分割手段により得られた前記基準ブロック画像の各々について前記動きベクトルを算出する、前記動きベクトル算出手段と、を備える。【選択図】図２
2012175289.tif 000002
【特許請求の範囲】
【請求項１】
２つの画像間の相関を示す相関値を算出する相関値算出回路を備え、撮像装置により連続的に撮像された基準画像及び合成対象画像を処理する画像処理装置であって、
前記基準画像を複数の基準ブロック画像に分割する基準画像分割手段と、
前記合成対象画像を複数の合成対象ブロック画像に分割する合成対象画像分割手段と、
前記基準ブロック画像内の２つの領域の複数のペアの各々について、前記相関値算出回路を用いて前記２つの領域の画像間の相関値を算出し、当該算出された相関値に基づいて前記基準ブロック画像の自己相関の程度を示す自己相関パラメータを算出する自己相関パラメータ算出手段であって、前記基準画像分割手段により得られた前記基準ブロック画像の各々について前記自己相関パラメータを算出する、前記自己相関パラメータ算出手段と、
前記基準ブロック画像の所定領域と当該基準ブロック画像に対応する前記合成対象ブロック画像の所定領域との複数のペアの各々について、前記相関値算出回路を用いて２つの前記所定領域の画像間の相関値を算出し、当該算出された相関値に基づいて前記基準ブロック画像と前記合成対象ブロック画像との間の動きを示す動きベクトルを算出する動きベクトル算出手段であって、前記基準画像分割手段により得られた前記基準ブロック画像の各々について前記動きベクトルを算出する、前記動きベクトル算出手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記動きベクトル算出手段は、前記自己相関パラメータが示す自己相関の程度が閾値より大きい前記基準ブロック画像については、前記動きベクトルの算出を省略する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記自己相関パラメータ及び前記動きベクトルに基づいて、前記基準画像と前記合成対象画像との間の動きを補正するように前記合成対象画像を変換するための変換パラメータを算出する変換パラメータ算出手段を更に備え、
前記変換パラメータ算出手段は、前記基準ブロック画像の前記自己相関パラメータが示す自己相関が小さいほど、対応する前記合成対象ブロック画像に大きい重みを付けて、前記変換パラメータを用いた前記合成対象画像の変換に伴う前記合成対象ブロック画像の各々の動きと前記動きベクトルの各々が示す動きとの差を小さくするように前記変換パラメータを算出する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記相関値算出回路は、
第１画像と前記第１画像より小さい第２画像とを受け付け、
前記第１画像内の前記第２画像のサイズの領域の画像と前記第２画像との相関を示す相関値を、前記第１画像内の異なる複数の位置の前記第２画像のサイズの領域について算出することにより得られる、複数の相関値を出力する
ように構成され、
前記自己相関パラメータ算出手段は、
前記基準ブロック画像及び前記基準ブロック画像の部分領域の画像をそれぞれ前記第１画像及び前記第２画像として前記相関値算出回路に入力することにより、前記相関値算出回路から複数の相関値を取得し、
当該複数の相関値に基づいて前記基準ブロック画像の前記自己相関パラメータを算出する
ように構成され、
前記動きベクトル算出手段は、
前記基準ブロック画像に対応する前記合成対象ブロック画像の第１領域の画像及び前記基準ブロック画像の第２領域の画像をそれぞれ前記第１画像及び前記第２画像として前記相関値算出回路に入力することにより、前記相関値算出回路から複数の相関値を取得し、
前記合成対象ブロック画像内の異なる複数の位置の前記第２領域のサイズの領域について当該領域の画像と前記第２領域の画像との間の相関値が取得されるように前記第１領域を繰り返し移動させて移動後の前記第１領域の画像及び前記第２領域の画像をそれぞれ前記第１画像及び前記第２画像として前記相関値算出回路に入力し、
前記合成対象ブロック画像内の前記異なる複数の位置について取得された相関値に基づいて前記基準ブロック画像と前記合成対象ブロック画像との間の前記動きベクトルを算出する
ように構成される
ことを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
２つの画像間の相関を示す相関値を算出する相関値算出回路を備え、撮像装置により連続的に撮像された基準画像及び合成対象画像を処理する画像処理装置の制御方法であって、
前記画像処理装置の基準画像分割手段が、前記基準画像を複数の基準ブロック画像に分割する基準画像分割工程と、
前記画像処理装置の合成対象画像分割手段が、前記合成対象画像を複数の合成対象ブロック画像に分割する合成対象画像分割工程と、
前記画像処理装置の自己相関パラメータ算出手段が、前記基準ブロック画像内の２つの領域の複数のペアの各々について、前記相関値算出回路を用いて前記２つの領域の画像間の相関値を算出し、当該算出された相関値に基づいて前記基準ブロック画像の自己相関の程度を示す自己相関パラメータを算出する自己相関パラメータ算出工程であって、前記基準画像分割工程により得られた前記基準ブロック画像の各々について前記自己相関パラメータを算出する、前記自己相関パラメータ算出工程と、
前記画像処理装置の動きベクトル算出手段が、前記基準ブロック画像の所定領域と当該基準ブロック画像に対応する前記合成対象ブロック画像の所定領域との複数のペアの各々について、前記相関値算出回路を用いて２つの前記所定領域の画像間の相関値を算出し、当該算出された相関値に基づいて前記基準ブロック画像と前記合成対象ブロック画像との間の動きを示す動きベクトルを算出する動きベクトル算出工程であって、前記基準画像分割工程により得られた前記基準ブロック画像の各々について前記動きベクトルを算出する、前記動きベクトル算出工程と、
を備えることを特徴とする制御方法。
【請求項６】
コンピュータに請求項５に記載の制御方法の各工程を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、及びその制御方法に関する。
【背景技術】
【０００２】
従来、デジタルカメラやビデオカメラ等の技術分野において、ブレを補正する技術やブレ情報を検出して所定の記録媒体に記録する技術が多く提案されている。中でも、画像処理によるブレ補正は電子ブレ補正と呼ばれる。電子ブレ補正は、画像間のブレ情報を用いて位置合わせを行うことで実現される。画像間のブレ情報は、パターンマッチング処理等により検出可能である。この際、テクスチャのある領域のみでパターンマッチング処理を行うことで、計算量を削減することができる。更に、コーナー状のテクスチャを含む領域のみでパターンマッチング処理を行うことで、ブレ情報の検出精度向上が見込まれる。
【０００３】
テクスチャの有無を判定する方法として、差分型フィルタによるエッジ抽出処理を利用する方法が提案されている（例えば、特許文献１）。また、複数の差分型フィルタを併用することで、コーナー上のテクスチャを判定する方法が提案されている（例えば、特許文献２）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−２８４９４４号公報
【特許文献２】特開２００７−０４３２８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１及び特許文献２に記載の方法では、エッジ抽出結果を基にテクスチャの有無を判定している。このため、位置合わせ処理部とは別に、エッジを抽出するための処理部が必要となり、回路規模が大きくなるという問題があった。また、特許文献２に記載の方法では、繰り返しパターンを判定するために複数回エッジ抽出処理を行う必要がある。このため、計算時間が膨大になるという問題があった。
【０００６】
本発明はこのような状況に鑑みてなされたものであり、回路規模の増大を抑制しつつ、画像間の位置合わせに必要な情報の取得の効率や精度を向上させる技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、第１の本発明は、２つの画像間の相関を示す相関値を算出する相関値算出回路を備え、撮像装置により連続的に撮像された基準画像及び合成対象画像を処理する画像処理装置であって、前記基準画像を複数の基準ブロック画像に分割する基準画像分割手段と、前記合成対象画像を複数の合成対象ブロック画像に分割する合成対象画像分割手段と、前記基準ブロック画像内の２つの領域の複数のペアの各々について、前記相関値算出回路を用いて前記２つの領域の画像間の相関値を算出し、当該算出された相関値に基づいて前記基準ブロック画像の自己相関の程度を示す自己相関パラメータを算出する自己相関パラメータ算出手段であって、前記基準画像分割手段により得られた前記基準ブロック画像の各々について前記自己相関パラメータを算出する、前記自己相関パラメータ算出手段と、前記基準ブロック画像の所定領域と当該基準ブロック画像に対応する前記合成対象ブロック画像の所定領域との複数のペアの各々について、前記相関値算出回路を用いて２つの前記所定領域の画像間の相関値を算出し、当該算出された相関値に基づいて前記基準ブロック画像と前記合成対象ブロック画像との間の動きを示す動きベクトルを算出する動きベクトル算出手段であって、前記基準画像分割手段により得られた前記基準ブロック画像の各々について前記動きベクトルを算出する、前記動きベクトル算出手段と、を備えることを特徴とする画像処理装置を提供する。
【０００８】
なお、その他の本発明の特徴は、添付図面及び以下の発明を実施するための形態における記載によって更に明らかになるものである。
【発明の効果】
【０００９】
以上の構成により、本発明によれば、回路規模の増大を抑制しつつ、画像間の位置合わせに必要な情報の取得の効率や精度を向上させることが可能となる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態に係るデジタルカメラ１００の全体構成を示すブロック図
【図２】移動量算出部１０８の詳細な構成を示すブロック図
【図３】基準画像又は合成対象画像の分割方法を例示する図
【図４】テクスチャ判定部２０４によるテクスチャ判定処理（重み算出処理）の流れを示すフローチャート
【図５】テクスチャ判定部２０４の詳細な構成を示すブロック図
【図６】領域設定部５０２による領域の設定例を示す図
【図７】相関値取得制御部５０３による９つのＳＡＤの取得の概念図
【図８】（ａ）第１の実施形態の変形例に係るデジタルカメラ８００の構成を示すブロック図、（ｂ）デジタルカメラ８００の移動量算出部８０２の詳細な構成を示すブロック図
【図９】動きベクトル算出部２０６による動きベクトル算出処理の流れを示すフローチャート
【図１０】図９のＳ９０４における処理の他の例を示すフローチャート
【図１１】図１０のＳ１００１における初期探索範囲の設定の概念図
【図１２】図１０のＳ１００４における探索範囲の更新の概念図
【図１３】動きベクトルの概念図
【図１４】画像合成部１０９の詳細な構成を示すブロック図
【図１５】第３の実施形態に係る移動量算出部１５０１の構成を示すブロック図
【図１６】第３の実施形態に係る動きベクトル算出処理の概念図
【図１７】動きベクトル算出部１５０５による動きベクトル算出処理の流れを示すフローチャート
【図１８】第２の実施形態に係る移動量算出部１８０１の構成を示すブロック図
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して、本発明の実施形態を説明する。なお、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。また、実施形態の中で説明されている特徴の組み合わせすべてが、本発明に必須とは限らない。
【００１２】
以下の各実施形態では、本発明の画像処理装置の一例として、撮像装置（デジタルカメラ）を使用する。しかしながら、本発明の画像処理装置はデジタルカメラに限定されず、例えばパーソナルコンピュータ（ＰＣ）でも構わない。
【００１３】
［第１の実施形態］
●デジタルカメラ１００の全体構成
図１は、第１の実施形態に係るデジタルカメラ１００の全体構成を示すブロック図である。図１において、撮像部１０１は、撮像レンズ群と、Ｃ−ＭＯＳやＣＣＤ等の半導体撮像素子とを含む。撮像部１０１から出力される映像信号は、Ａ／Ｄ変換部１０２によりデジタル画像に変換され、画像処理部１０３に入力される。画像処理部１０３は、入力された画像データに対してブレ補正処理を適用し、ブレ補正画像を生成する。生成されたブレ補正画像は、画像表示部１０４で表示されたり、画像記録部１０５で記録媒体に記録されたりする。
【００１４】
次に、画像処理部１０３の構成について説明する。入力端子１０６は、画像処理部１０３の入力端子であり、Ａ／Ｄ変換部１０２によりデジタル変換された画像を入力する。入力された画像は、メモリ部１０７に格納される。移動量算出部１０８は、メモリ部１０７から複数枚の画像を読み出し、複数枚の画像中の１枚の画像に対する、その他の画像の相対移動量（動き）を算出する。
【００１５】
電子ブレ補正を行う場合、撮像部１０１により連続的に撮像された複数枚の画像が入力端子１０６に入力される。移動量算出部１０８は、複数枚の画像中の１枚を基準画像とし、その他の画像を合成対象画像とし、基準画像に対する合成対象画像の相対移動量（動き）を算出する。
【００１６】
画像合成部１０９は、移動量算出部１０８から得られる相対移動量を用いて、メモリ部１０７から読み出した複数枚の画像を位置合わせして合成することにより、ブレ補正画像を生成する。画像合成部１０９は、生成されたブレ補正画像を出力端子１１０より出力する。移動量算出部１０８及び画像合成部１０９については後で更に詳述する。
【００１７】
●移動量算出部１０８の構成
移動量算出部１０８は、複数枚の画像の位置合わせに必要な情報（後述する変換パラメータ）を算出するために、基準画像のテクスチャ判定、及び、基準画像と合成対象画像との間の動きベクトル算出を行う。以下、移動量算出部１０８の詳細を説明する。
【００１８】
図２は、移動量算出部１０８の詳細な構成を示すブロック図である。移動量算出部１０８において、テクスチャ判定部２０４及び動きベクトル算出部２０６は、それぞれテクスチャ判定処理及び動きベクトル算出処理を行うために、相関値算出回路２０９を共用する。移動量算出部１０８において、相関値算出回路２０９による相関値の算出（詳細は後述）は主としてハードウェアにより実行されるが、その他の処理は、ハードウェア、ソフトウェア、又はこれらの組み合わせのいずれによって実行されてもよい。また、本実施形態は、相関値算出回路２０９が部分的にソフトウェアによって構成されることを排除するものではない。
【００１９】
図２において、入力端子２０１は、移動量算出部１０８の入力端子であり、メモリ部１０７から読み出した複数枚の画像を入力する。基準画像選択部２０２は、入力端子２０１より入力した複数枚の画像の中から、移動量算出の基準となる画像（基準画像）を選択する。ここで、基準画像以外の画像を合成対象画像と呼ぶ。基準画像選択部２０２は、例えば、複数枚の画像のうち最初に撮影された画像を基準画像として選択する。
【００２０】
基準画像分割部２０３は、基準画像選択部２０２で選択された基準画像を複数のブロック（基準ブロック画像）に分割する。例えば、基準画像分割部２０３は、図３に示すように、基準画像を等間隔に分割することで複数の基準ブロック画像を生成する。この処理より、各々が幅Ｂｘ［画素］、高さＢｙ［画素］のＭ＊Ｎ個の基準ブロック画像が得られる。
【００２１】
テクスチャ判定部２０４は、基準画像分割部２０３から得られる各基準ブロック画像のテクスチャを判定し、各基準ブロック画像に対してテクスチャ量に応じた重み付けを行う。この際、テクスチャ判定部２０４は、テクスチャが多い基準ブロック画像ほど大きな重みをつける。テクスチャ判定部２０４は、テクスチャ判定処理のために、相関値算出回路２０９を利用する。テクスチャ判定部２０４については、後で更に詳述する。
【００２２】
合成対象画像分割部２０５は、基準画像選択部２０２で基準画像として選択されなかった画像（合成対象画像）を複数のブロック（合成対象ブロック画像）に分割する。例えば、合成対象画像分割部２０５は、図３に示すように、合成対象画像を基準画像と等しいサイズで等間隔に分割して合成対象ブロック画像を生成する。この処理より、幅Ｂｘ［画素］、高さＢｙ［画素］のＭ＊Ｎ個の合成対象ブロック画像が得られる。
【００２３】
動きベクトル算出部２０６は、基準画像分割部２０３から得られる基準ブロック画像と合成対象画像分割部２０５から得られる合成対象ブロック画像との間の相関値を算出する。そして、動きベクトル算出部２０６は、算出した相関値に基づき、基準ブロック画像と合成対象ブロック画像との間の動きを示す動きベクトルを算出する。この際、動きベクトル算出部２０６は、テクスチャ判定部２０４から得られる各基準ブロック画像の重みを基に、動きベクトルを算出する基準ブロック画像を選択する。動きベクトル算出部２０６は、動きベクトル算出処理のために、相関値算出回路２０９を利用する。動きベクトル算出部２０６については、後で更に詳述する。
【００２４】
変換パラメータ算出部２０７は、動きベクトル算出部２０６から得られる各基準ブロック画像の動きベクトルに基づき、基準画像と合成対象画像との間の動きを表す変換パラメータを算出する。変換パラメータは、基準画像と合成対象画像との位置合わせに利用可能である。変換パラメータ算出部２０７については、後で更に詳述する。
【００２５】
出力端子２０８は、変換パラメータ算出部２０７から得られる変換パラメータを出力する。
【００２６】
相関値算出回路２０９は、入力された２つの画像間の相関を示す相関値を算出する。例えば、相関値算出回路２０９は、相関値として、２つの画像の各画素の差分絶対値和（ＳＡＤ）を算出する。幅Ｘ［画素］、高さＹ［画素］の２つの画像Ａ，Ｂを想定すると、相関値（ＳＡＤ）は、
2012175289.tif 000003
により算出される。式（１）において、Ａ（ｘ，ｙ），Ｂ（ｘ，ｙ）は、画像Ａ，Ｂの座標（ｘ，ｙ）の画素の輝度値を示す。
【００２７】
なお、式（１）により算出されるＳＡＤは２画像間のＳＡＤであるため、その値が小さいほど２画像間の相関が高いことを示す。逆に、ＳＡＤが大きい場合は２画像間の相関が低いことを示す。
【００２８】
●●テクスチャ判定部２０４の詳細
次に、図５を参照して、テクスチャ判定部２０４の詳細な構成について説明する。図５において、入力端子５０１は、テクスチャ判定部２０４の入力端子であり、基準画像分割部２０３から得られる基準ブロック画像を入力する。
【００２９】
領域設定部５０２は、入力された基準ブロック画像から相関値を求める際に利用する２つの画像領域を設定する。例えば、領域設定部５０２は、図６に示すように、基準ブロック画像の全体領域、及び、基準ブロック画像の周囲１画素を除いた部分領域の、２つの領域を設定する。大きい方の領域（即ち、全体領域）の画像を大画像（第１画像）と呼び、小さい方の領域（即ち、部分領域）の画像を小画像（第２画像）と呼ぶ。領域設定部５０２は、大画像及び小画像を相関値取得制御部５０３に入力する。
【００３０】
相関値取得制御部５０３は、領域設定部５０２から入力された２つの画像（大画像及び小画像）に基づき、大画像の９つの部分領域（第１画像内の第２画像のサイズの領域）の画像それぞれと小画像との相関を示す９つの相関値を取得する。各部分領域の画像のサイズは、小画像のサイズに等しい。相関値取得制御部５０３は、部分領域の画像と小画像とのペアを相関値算出回路２０９に入力することにより、このペアの相関値を取得する。図７に示すように大画像の左上の座標を（０，０）とすると、９つの部分領域は、部分領域の左上の座標が（０，０）から（２，２）の範囲の部分領域として得られる。大画像Ｌの各部分領域の画像と小画像Ｓとの間のＳＡＤをＳＡＤ（ｐ，ｑ）（０≦ｐ≦２，０≦ｑ≦２）と表すと、ＳＡＤ（ｐ，ｑ）は、
2012175289.tif 000004
により算出される。相関値取得制御部５０３は、算出された９つのＳＡＤを重み算出部５０４に入力する。
【００３１】
ところで、前述の通り相関値算出回路２０９による相関値の算出はハードウェアにより実行されるが、これに加えて、相関値取得制御部５０３の処理もハードウェアにより実行されても構わない。換言すると、相関値算出回路２０９が、ハードウェアにより実装される相関値取得制御部５０３を含んでもよい。この場合、領域設定部５０２は、大画像及び小画像を相関値算出回路２０９に入力することにより９つのＳＡＤを取得して重み算出部５０４に入力してもよい。
【００３２】
重み算出部５０４は、相関値取得制御部５０３から得られた９つのＳＡＤを基に、基準ブロック画像に対して重み付けを行う。この際、重み算出部５０４は、基準ブロック画像内のテクスチャが多いほど大きな重みを与える。例えば、重み算出部５０４は重みｗを、
2012175289.tif 000005
により算出する。ここで、ｋは定数である。
【００３３】
式（３）から理解できるように、重みｗは、ＳＡＤ（１，１）を除く８つのＳＡＤの最小値である。ＳＡＤ（１，１）は必ず０になるため、重み算出には使用しない。残る８つのＳＡＤは、大画像の中で部分領域を中心からそれぞれ上下左右斜め方向に１画素だけずらした際の、小画像との相関を表す。テクスチャの多い基準ブロック画像は自己相関の程度が小さいため、このようにして得られるＳＡＤは比較的大きい。このように重みｗを８つのＳＡＤの最小値と定義することで、コーナーを含むテクスチャを持つ基準ブロック画像に対して大きな重みを付与することができる。また、このように定義された重みｗは、基準ブロック画像の自己相関の程度を示すパラメータ（自己相関パラメータ）と見なすことができ、重み算出部５０４では自己相関パラメータ算出が行われる。重み算出部５０４は、算出した重みｗを出力端子５０５から出力する。
【００３４】
図４は、テクスチャ判定部２０４によるテクスチャ判定処理（重み算出処理）の流れを示すフローチャートである。Ｓ４００で、領域設定部５０２は、基準画像分割部２０３から複数の基準ブロック画像を取得する。Ｓ４０１で、領域設定部５０２は、複数の基準ブロック画像から最初の基準ブロック画像を選択する。Ｓ４０２で、領域設定部５０２は、選択した基準ブロック画像から相関値算出に用いる２つの領域を設定し、各領域の画像（大画像及び小画像）を相関値取得制御部５０３に出力する。Ｓ４０３で、相関値取得制御部５０３は、相関値算出回路２０９を用いて、大画像及び小画像に関する９つのＳＡＤを算出する（式（２）参照。但し、ＳＡＤ（１，１）の算出は省略可能）。Ｓ４０４で、重み算出部５０４は、式（３）に従って重みを算出する。Ｓ４０５で、テクスチャ判定部２０４は、全ての基準ブロック画像が選択されたか否かを判定する。まだ選択されていない基準ブロック画像が残っている場合、Ｓ４０６で、領域設定部５０２は次の基準ブロック画像を選択し、この基準ブロック画像についてＳ４０２乃至Ｓ４０４の処理が繰り返される。全ての基準ブロック画像が選択されると、Ｓ４０７で、重み算出部５０４は各基準ブロック画像の重みを出力する。以上の処理により、基準画像の各基準ブロック画像それぞれについて、重みが得られる。
【００３５】
●●動きベクトル算出部２０６の詳細
次に、図９を参照して、動きベクトル算出部２０６による動きベクトル算出処理の詳細について説明する。本実施形態では、動きベクトル算出部２０６は、重みが閾値未満の基準ブロック画像については重みベクトルの算出を省略する。基準ブロック画像の重みが閾値未満であるということは、換言すると、その基準ブロック画像の自己相関の程度が閾値より大きいということである。
【００３６】
Ｓ９００で、動きベクトル算出部２０６は、基準画像分割部２０３から複数の基準ブロック画像を、合成対象画像分割部２０５から複数の合成対象ブロック画像を、テクスチャ判定部２０４から各基準ブロック画像の重みを、それぞれ取得する。Ｓ９０１で、動きベクトル算出部２０６は、最初のブロック（基準ブロック画像及び対応する合成対象ブロック画像）を選択する。Ｓ９０２で、動きベクトル算出部２０６は、選択した基準ブロック画像の重みが閾値以上であるか否か（即ち、テクスチャを多く含むか否か）を判定する。重みが閾値未満の場合、テクスチャが少ないと考えられるので、この基準ブロック画像に対する動きベクトルの算出は省略される。即ち、処理はＳ９０３に進み、動きベクトル算出部２０６は次のブロックを選択し、Ｓ９０２の判定を繰り返す。
【００３７】
一方、重みが閾値以上の場合は、テクスチャが多いと考えられるので、動きベクトル算出部２０６はＳ９０４で、動きベクトルを算出する。具体的には、動きベクトル算出部２０６は、基準ブロック画像の所定領域と対応する合成対象ブロック画像の所定領域との複数のペアの各々について、各ペアの画像を相関値算出回路２０９に入力することにより、ＳＡＤを算出する。そして、動きベクトル算出部２０６は、算出されたＳＡＤに基づいて動きベクトルを算出する。例えば、動きベクトル算出部２０６は、最小のＳＡＤを持つペア（即ち、相関が最大のペア）の２つの所定領域間のベクトルを、基準ブロック画像とこれに対応する合成対象ブロック画像との間の動きを示す動きベクトルとして決定する。即ち、ｉ番目のブロックについて、ＳＡＤが最小のペアの基準ブロック画像の所定領域の中心座標を（ｘ’ｉ，ｙ’ｉ）とし、合成対象ブロック画像の所定領域の中心座標を（ｘｉ，ｙｉ）とすると、動きベクトルｖｉは、
2012175289.tif 000006
となる（図１３参照）。
【００３８】
基準ブロック画像のサイズが幅Ｂｘ［画素］、高さＢｙ［画素］であるとすると、所定領域のサイズは、例えば、幅Ｂｘ／２［画素］、高さＢｙ／２［画素］とすることができる。いくつのペアについて相関値を算出するかについては特に限定されないが、ペアの数が多いほど動きベクトルの精度も向上する。また、図５を参照して説明した通り、相関値算出回路２０９は、入力された大画像及び小画像に基づいて９つのＳＡＤを算出するように構成されていてもよい。この場合については、図１０を参照して後述する。
【００３９】
Ｓ９０５で、動きベクトル算出部２０６は、全てのブロックが選択されたか否かを判定する。まだ選択されていないブロックが残っている場合、Ｓ９０３で、動きベクトル算出部２０６は次のブロックを選択し、このブロックについてＳ９０２乃至Ｓ９０４の処理が繰り返される。全てのブロックが選択されると、Ｓ９０６で、動きベクトル算出部２０６は各基準ブロック画像の動きベクトルを出力する。以上の処理により、閾値以上の重みを持つ基準ブロック画像についてのみ、対応する合成対象ブロック画像との間の動きベクトルが得られる。
【００４０】
次に、図１０を参照して、図９のＳ９０４における処理の他の例について説明する。図９を参照した説明とは異なり、図１０の例では、相関値算出回路２０９は、入力された大画像及び小画像に基づいて９つのＳＡＤを算出するように構成されているものとする。
【００４１】
Ｓ１００１で、動きベクトル算出部２０６は、初期探索範囲を設定する。具体的には、動きベクトル算出部２０６は、相関値算出回路２０９に入力する小画像を基準ブロック画像から、大画像を合成対象ブロックからそれぞれ設定する（図１１参照）。ここで、小画像は、基準ブロック画像内の幅Ｓ［画素］、高さＴ［画素］の領域（第２領域）の画像とする。また、大画像は、合成対象ブロック画像内の幅Ｓ＋２［画素］、高さＴ＋２［画素］の領域（第１領域）の画像とする。Ｓ１００２で、動きベクトル算出部２０６は、大画像及び小画像を相関値算出回路２０９に入力することにより、９つのＳＡＤを算出する。ここで算出した相関値は、動きベクトルを算出するまで保存しておく。Ｓ１００３で、動きベクトル算出部２０６は、現在の探索範囲が最後の探索範囲であるか否かを判定する。最後の探索範囲でなければ、Ｓ１００４で、動きベクトル算出部２０６は探索範囲を更新し、更新後（移動後）の探索範囲について、Ｓ１００２乃至Ｓ１００３の処理を繰り返す。探索範囲の更新は、大画像として入力する領域の位置を、縦・横に３画素刻みでずらしてゆくことにより行われる（図１２参照）。計算を簡略化するため、小画像の位置は固定される。Ｓ１００３において最後の探索範囲であると判定された場合、Ｓ１００４で、動きベクトル算出部２０６は、全探索範囲のＳＡＤを基に動きベクトルの算出を行う（図１３参照）。
【００４２】
●●変換パラメータ算出部２０７の詳細
変換パラメータ算出部２０７は、動きベクトル算出部２０６から得られる動きベクトルを入力とし、基準画像と合成対象画像との間の動きを表す変換パラメータを算出する。ここでは、アフィンパラメータを算出する場合について説明する。
【００４３】
アフィン変換では、合成対象画像と基準画像との間の動きを下記の式で表す。
2012175289.tif 000007
ここで、（ｘ，ｙ）は合成対象画像の画素位置、（ｘ’，ｙ’）は基準画像の画素位置、（ａ，ｂ，ｃ，ｄ，ｅ，ｆ）はアフィンパラメータを表す。このアフィンパラメータの値によって、平行移動、回転、拡大縮小、せん断などの変形を表すことができる。例えば、（ａ，ｂ，ｃ，ｄ，ｅ，ｆ）＝（１，０，ｃ，０，１，ｆ）とした場合は、ｘ軸方向にｃ画素、ｙ軸方向にｆ画素平行移動する動きを表す。また、（ａ，ｂ，ｃ，ｄ，ｅ，ｆ）＝（ｃｏｓθ，−ｓｉｎθ，０，ｓｉｎθ，ｃｏｓθ，０）とした場合は、θだけ回転する動きを表す。
【００４４】
続いて、動きベクトルｖｉ＝（ｘ’ｉ−ｘｉ，ｙ’ｉ−ｙｉ）からアフィンパラメータを求める方法について説明する。ここでは最小二乗法を利用してアフィンパラメータを求める。求めるアフィンパラメータを（ａ，ｂ，ｃ，ｄ，ｅ，ｆ）とし、下記の式のように誤差Ｅｘ，Ｅｙを定義する。
2012175289.tif 000008
上記の誤差Ｅｘが最小となるアフィンパラメータ（ａ，ｂ，ｃ）、誤差Ｅｙが最小となるアフィンパラメータ（ｄ，ｅ，ｆ）をそれぞれ求める。具体的には下記の式によりアフィンパラメータを得られる。
2012175289.tif 000009
以上の方法により、動きベクトルｖｉ＝（ｘ’ｉ−ｘｉ，ｙ’ｉ−ｙｉ）からアフィンパラメータ（ａ，ｂ，ｃ，ｄ，ｅ，ｆ）を求めることができる。
【００４５】
●●画像合成部１０９
図１４は、画像合成部１０９の詳細な構成を示すブロック図である。入力端子１４０１及び入力端子１４０２は画像合成部１０９の入力端子である。入力端子１４０１には、メモリ部１０７から基準画像及び合成対象画像が入力される。入力端子１４０２には、移動量算出部１０８から出力される変換パラメータが入力される。画像変換部１４０３は、変換パラメータに基づき、各合成対象画像（合成対象画像は２枚以上でもよい）にアフィン変換処理を行い、変換画像を出力する。次に、加算合成部１４０４は、各変換画像に重み付けを行い基準画像と加算合成することで、合成画像（ブレ補正画像）を出力する。最後に、加算合成部１４０４は、生成された合成画像を出力端子１４０５を介して出力する。
【００４６】
ところで、本実施形態では、重みｗをＳＡＤの定数倍として定義していたが（式（３）参照）、重みの与え方はこれに限るものではない。例えば、
2012175289.tif 000010
のような指数関数を用いても良い。また、コーナーの有無を考慮しないのであれば、ＳＡＤの最大値や中間値等を基に重みを決定してもよい。
【００４７】
また、本実施形態では輝度値の差分絶対値を基にＳＡＤを算出していたが、色差信号の差分値絶対値を基にＳＡＤを算出してもよい。また、それらの加重和をＳＡＤとしてもよい。
【００４８】
更に、本実施形態では重みの決定に際して９つのＳＡＤを算出したが（図７参照）、相関値算出回路２０９に入力する画像のサイズを小さくすることにより、より多くのＳＡＤを算出してもよい。
【００４９】
以上説明したように、本実施形態によれば、デジタルカメラ１００は、画像間のブレ情報（例えば、アフィンパラメータ）を算出する際に、基準ブロック画像のテクスチャの量に応じた動きベクトル算出処理を行う。また、デジタルカメラ１００は、テクスチャ判定処理及び動きベクトル算出処理のために、相関値算出回路２０９を共用する。
【００５０】
これにより、回路規模の増大を抑制しつつ、画像間の位置合わせに必要な情報の取得の効率や精度を向上させることが可能となる。
【００５１】
（変形例）
第１の実施形態では、デジタルカメラ１００は、重みに基づいて動きベクトルを算出し、動きベクトルに基づいて変換パラメータを算出した。本変形例では、変換パラメータを算出せずに、重み及び動きベクトルを個別に記録する構成について説明する。この場合、記録された重み及び動きベクトルを利用して他の装置が所望の処理を行うことができる。例えば、他の装置は、重みが閾値以上の基準ブロック画像の動きベクトルのみを用いて変換パラメータを算出することができる。この場合、重みが閾値未満の基準ブロック画像に対する動きベクトルの算出処理は省略されないが、得られる変換パラメータは、上述の第１の実施形態と同じになる。或いは、他の装置は、後述する第２の実施形態のように変換パラメータを算出することもできる。
【００５２】
図８（ａ）は、第１の実施形態の変形例に係るデジタルカメラ８００の構成を示すブロック図であり、図８（ｂ）は、デジタルカメラ８００の移動量算出部８０２の詳細な構成を示すブロック図である。図８（ａ）及び図８（ｂ）において、図１及び図２と同一又は同様の要素には同一の符号を付し、その説明を省略する。
【００５３】
デジタルカメラ１００と比較すると、デジタルカメラ８００は、移動量算出部１０８の代わりに移動量算出部８０２を備える。また、デジタルカメラ８００は、画像合成部１０９を備えない。
【００５４】
移動量算出部８０２は、メモリ部１０７から複数枚の画像を読み出し、その中の１枚（基準画像）に対する重みと、基準画像に対するその他の画像（合成対象画像）の動きベクトルとを算出する（詳細は図８（ｂ）を参照して後述する）。第１の実施形態と異なり、動きベクトルは、全ての基準ブロック画像について算出される。動きベクトル及び重みは、出力端子１１０より出力され、記録部８０３で記録媒体に記録される。
【００５５】
次に図８（ｂ）を参照すると、テクスチャ判定部２０４は、算出した重みを動きベクトル算出部８０４へ出力せずに、出力端子８０５を介して記録部８０３へ出力する。また、動きベクトル算出部８０４は、算出した動きベクトルを出力端子８０６を介して記録部８０３へ出力する。このようにして、重み及び動きベクトルを個別に記録することができる。
【００５６】
［第２の実施形態］
第１の実施形態では、テクスチャの多さを表す重みは、動きベクトルを算出するブロックを選択するために使用された。第２の実施形態では、変換パラメータを算出する際に、各ブロックの動きベクトルに重み付けするために重みを使用する。
【００５７】
図１８は、第２の実施形態に係る移動量算出部１８０１の構成を示すブロック図である。図１８において、図２と同一又は同様の要素には同一の符号を付し、その説明を省略する。第１の実施形態に係る移動量算出部１０８と比較すると、移動量算出部１８０１は、動きベクトル算出部２０６及び変換パラメータ算出部２０７の代わりに、動きベクトル算出部１８０２及び変換パラメータ算出部１８０３を備える。また、移動量算出部１８０１においては、テクスチャ判定部２０４から出力される重みは、動きベクトル算出部１８０２ではなく変換パラメータ算出部１８０３に入力される。
【００５８】
動きベクトル算出部１８０２は、動きベクトル算出部２０６と異なり、全ての基準ブロック画像について動きベクトルを算出する。換言すれば、動きベクトル算出部１８０２は、図９のフローチャートからＳ９０２を除いた処理を実行する。
【００５９】
変換パラメータ算出部１８０３は、動きベクトル算出部１８０２から得られる動きベクトル、及びテクスチャ判定部２０４から得られる重みに基づき、基準画像と合成対象画像との間の動きを表す変換パラメータを算出する。
【００６０】
変換パラメータ算出部２０７と比較して異なるのは、誤差関数に各ブロックの重みが含まれている点である。具体的には、第１の実施形態で使用したＥｘ，Ｅｙ（式（６）参照）の代わりに下記の誤差関数Ｅ’ｘ，Ｅ’ｙを用いる。
2012175289.tif 000011
変換パラメータ算出部２０７は、上記の誤差Ｅ’ｘが最小となるアフィンパラメータ（ａ，ｂ，ｃ）、及び誤差Ｅ’ｙが最小となるアフィンパラメータ（ｄ，ｅ，ｆ）をそれぞれ求める。
【００６１】
以上、説明したように、本実施形態によれば、デジタルカメラ８００は、算出した重みを変換パラメータ算出処理に用いる。これにより、重み付けした全ブロックの動きベクトルを利用して変換パラメータを算出するため、より頑健な変換パラメータ算出処理が可能となる。
【００６２】
［第３の実施形態］
第３の実施形態では、動きベクトルの算出に際して画像を縮小することでより高速に動きベクトルを算出する構成について説明する。図１５は、第３の実施形態に係る移動量算出部１５０１の構成を示すブロック図である。図１５において、図２と同一又は同様の要素には同一の符号を付し、その説明を省略する。
【００６３】
移動量算出部１０８とすると、移動量算出部１５０１は、画像縮小部１５０２及び１５０３を更に備える。また、移動量算出部１５０１は、テクスチャ判定部２０４及び動きベクトル算出部２０６の代わりに、テクスチャ判定部１５０３及び動きベクトル算出部１５０５を備える。
【００６４】
画像縮小部１５０２は、基準画像分割部２０３で得られた各基準ブロック画像を複数の倍率で縮小し、縮小倍率の異なる複数の縮小ブロック画像を生成する。ここでは、縮小倍率を１／２，１／４，１／８，１／１６，１／３２とする。続いて、縮小処理について説明する。まず、画像縮小部１５０２は、入力される基準ブロック画像に対して、ナイキスト周波数の１／２以上の周波数をカットするローパスフィルタでフィルタリングを行った後、１画素毎に間引いて１／２縮小ブロック画像を生成する。続いて、画像縮小部１５０２は、１／２縮小ブロック画像に対して同様の処理を行い、１／４縮小ブロック画像を生成する。以下、同様に１／３２縮小ブロック画像まで生成する。以上の処理を入力される全基準ブロック画像に対して行う。最後に、入力された全基準ブロック画像、及び生成した全縮小ブロック画像を出力する。
【００６５】
画像縮小部１５０４も、画像縮小部１５０２と同様の処理を行い、合成対象画像分割部２０５より得られる合成対象ブロック画像を複数の縮小倍率で縮小し、縮小ブロック画像を生成する。
【００６６】
テクスチャ判定部１５０３は、画像縮小部１５０２から得られる縮小ブロック画像を基に、各ブロックに対してテクスチャ量に応じた重み付けを行う。この際、テクスチャが多いほど大きな重みをつける。テクスチャ判定部２０４の場合と異なり、テクスチャ判定部１５０３は、最も小さい１／３２縮小ブロック画像内の２つの領域の複数のペアの各々について、相関値算出回路２０９を用いてＳＡＤを算出する。それ以外の処理は、テクスチャ判定部２０４と同様である。
【００６７】
動きベクトル算出部１５０５は、画像縮小部１５０２から得られる基準画像の縮小ブロック画像と画像縮小部１５０４から得られる合成対象画像の縮小ブロック画像との間のＳＡＤを算出することで、ブロックに対応する動きベクトルを算出する。この際、テクスチャ判定部１５０３から得られる各ブロックの重みを基に動きベクトルを算出するブロックを選択する。動きベクトル算出部２０６と比較して異なるのは、縮小ブロック画像を利用して動きベクトルを算出する点である。
【００６８】
図１６は、第３の実施形態に係る動きベクトル算出処理の概念図である。まず、最も小さな１／３２縮小ブロック画像を用いて、相関値算出回路２０９によりＳＡＤを算出する。ここで算出したＳＡＤが最小となる方向が、１／３２縮小ブロック画像における移動方向となる。この移動方向は、次に行う１／１６縮小ブロック画像を用いたＳＡＤ算出処理の探索範囲を決定するために使用される。１／１６縮小ブロック画像を用いた処理では、小画像を基準画像の１／１６縮小ブロック画像の周囲２画素を除いた領域の画像とする。また、大画像を、合成対象画像の１／１６縮小ブロック画像の中央より１／３２縮小ブロック画像で得られた移動方向にずらした、小画像よりも縦横２画素だけ大きな領域の画像とする。これらの領域の画像を入力とし、相関値算出回路２０９により１／１６縮小ブロック画像におけるＳＡＤを算出する。１／３２の場合と同様、最小となるＳＡＤから１／１６縮小ブロック画像における移動ベクトルを算出する。以下、同様の処理を等倍ブロックまで繰り返すことで、ブロックの移動ベクトルを算出する。
【００６９】
上記の処理フローを図１７に示す。Ｓ１７０１で、動きベクトル算出部１５０５は、初期縮小ブロックとその探索範囲を設定する。Ｓ１７０２で、動きベクトル算出部１５０５は、設定した探索範囲でＳＡＤを算出する。Ｓ１７０３で、現在の処理対象ブロックが等倍のブロックであるか否かを判定する。等倍でない場合、Ｓ１７０４で、動きベクトル算出部１５０５は、処理ブロックを２倍だけ大きなブロックに変更し、算出したＳＡＤから得られる移動方向を基に探索範囲を更新し、処理をＳ１７０２に進める。一方、Ｓ１７０３において等倍であると判定された場合、Ｓ１７０５で、動きベクトル算出部１５０５は、算出したＳＡＤを基にブロックの動きベクトルを算出する。
【００７０】
以上説明したように、本実施形態によれば、動きベクトル算出部１５０５は、動きベクトル算出時に縮小画像を利用することで、探索範囲を絞り込む。これにより、小さな計算量で動きベクトルを算出可能である。
【００７１】
［その他の実施形態］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2012175289.tif 000012
【図２】
2012175289.tif 000013
【図３】
2012175289.tif 000014
【図４】
2012175289.tif 000015
【図５】
2012175289.tif 000016
【図６】
2012175289.tif 000017
【図７】
2012175289.tif 000018
【図８】
2012175289.tif 000019
【図９】
2012175289.tif 000020
【図１０】
2012175289.tif 000021
【図１１】
2012175289.tif 000022
【図１２】
2012175289.tif 000023
【図１３】
2012175289.tif 000024
【図１４】
2012175289.tif 000025
【図１５】
2012175289.tif 000026
【図１６】
2012175289.tif 000027
【図１７】
2012175289.tif 000028
【図１８】
2012175289.tif 000029