(57)【要約】【課題】精度の良い２画面間の手振れベクトルを高解像度，高速に求める。【解決手段】撮像画面を複数領域♯１〜♯１６に分割し、各分割画面毎に移動ベクトルｋ１〜ｋ１６を算出し、各移動ベクトルから画面全体の手振れベクトルを算出する場合に、各分割画面の画像データを元画像データに対して画素ずらしした画像データで前記移動ベクトルを算出し、得られた複数の移動ベクトルのうちペアとなる移動ベクトルの組み合わせ（例えばｋ２とｋ１１）を求めると共に、各ペア毎に、ペアを構成する２つの移動ベクトルに所定演算を施したベクトル値を算出し、各ペアの２つの移動ベクトルを求めた２つの分割画面の間の距離Ｌ（ｎ）を重みとして各ペア毎の前記ベクトル値を重み付け演算器で加算平均演算して手振れベクトルを算出する。【選択図】図７
2008160275.tif 000002
【特許請求の範囲】
【請求項１】
第１画面の全体画像（以下、第１画像という。）から基準画像切出ブロックにより基準画像を切り出し、前記基準画像切出ブロックと同一大きさの比較画像切出ブロックを所定複数画素（以下、画素数ｎとする。）づつずらしながら第２画面の全体画像（以下、第２画像という。）から比較画像を切り出し、前記所定画素数ｎづつずらしながら切り出された各比較画像と前記基準画像との相関性を夫々演算し該相関性が最も高い比較画像を切り出した比較画像切出ブロックの位置と前記基準画像切出ブロックの位置とから前記第２画像の前記第１画像に対する手振れベクトルを求める２画面間の手振れベクトル算出方法において、前記第１画像，第２画像を夫々同一複数領域の部分画像（以下、第１ａ画像，第１ｂ画像，…、第２ａ画像，第２ｂ画像，…という。）に分割すると共に、前記第２画像をメモリに格納するとき第２ａ画像，第２ｂ画像，…を夫々前記所定画素数ｎより少ない異なる画素数づつ画素ずらしを行ってメモリに格納し、前記第２ａ画像から前記所定画素数ｎづつずらしながら切り出された比較画像と前記第１ａ画像から切り出された基準画像との相関性から該部分画像の移動ベクトルを求め、前記第２ｂ画像から前記所定画素数ｎづつずらしながら切り出された比較画像と前記第１ｂ画像から切り出された基準画像との相関性から該部分画像の移動ベクトルを求め、以下同様にして前記複数領域数と同数の部分画像の移動ベクトルを求め、前記複数の移動ベクトルのうちペアとなる移動ベクトルの組み合わせを求めると共に、各ペア毎に、ペアを構成する２つの移動ベクトルに所定演算を施したベクトル値を算出し、各ペアの２つの移動ベクトルを求めた２つの部分画像間の距離を重みとして各ペア毎の前記ベクトル値を加算平均演算して手振れベクトルを算出することを特徴とする２画面間の手振れベクトル算出方法。
【請求項２】
前記画素ずらしは、前記部分画像間の距離が離れているほど画素ずらし量の差を小さくしたことを特徴とする請求項１に記載の２画面間の手振れベクトル算出方法。
【請求項３】
前記重み付けして行う前記加算平均演算の演算式の分母の値が或る閾値以下になった場合には該加算平均演算により求められる手振れベクトルの信頼性が無いと判断して手振れベクトルの算出を停止することを特徴とする請求項１または請求項２に記載の手振れベクトル算出方法。
【請求項４】
前記ペアとなる２つの移動ベクトルの差が所定閾値以上異なる場合には該ペアの前記手振れベクトルへの算出寄与率を“０”とすることを特徴とする請求項１乃至請求項３のいずれかに記載の手振れベクトル算出方法。
【請求項５】
前記距離が所定閾値以下となる前記ペアは前記手振れベクトルの加算平均演算から除外することを特徴とする請求項１乃至請求項４のいずれかに記載の手振れベクトル検出方法。
【請求項６】
前記第１画像の部分画像である第１ａ画像，第１ｂ画像，…も夫々前記所定画素数ｎより少ない異なる画素数づつずらしてメモリに格納し、各部分画像から基準画像を切り出すことを特徴とする請求項１乃至請求項５のいずれかに記載の画面間の手振れベクトル算出方法。
【請求項７】
前記メモリには元画像を縦および／または横に縮小した画像として格納し、該縮小画像上で１画素づつずらして前記比較画像を切り出し、同一縮小倍率で縮小した第１画像から切り出された基準画像と該比較画像とを比較し相関性を求めることを特徴とする請求項１乃至請求項６のいずれかに記載の２画面間の手振れベクトル算出方法。
【請求項８】
第１画面の全体画像（以下、第１画像という。）から基準画像切出ブロックにより基準画像を切り出し、前記基準画像切出ブロックと同一大きさの比較画像切出ブロックを所定複数画素（以下、画素数ｎとする。）づつずらしながら第２画面の全体画像（以下、第２画像という。）から比較画像を切り出し、前記所定画素数ｎづつずらしながら切り出された各比較画像と前記基準画像との相関性を夫々演算し該相関性が最も高い比較画像を切り出した比較画像切出ブロックの位置と前記基準画像切出ブロックの位置とから前記第２画像の前記第１画像に対する手振れベクトルを求める２画面間の手振れベクトル算出装置において、前記第１画像，第２画像を夫々同一複数領域の部分画像（以下、第１ａ画像，第１ｂ画像，…、第２ａ画像，第２ｂ画像，…という。）に分割すると共に、前記第２画像をメモリに格納するとき第２ａ画像，第２ｂ画像，…を夫々前記所定画素数ｎより少ない異なる画素数づつ画素ずらしを行ってメモリに格納する画素ずらし手段と、前記第２ａ画像から前記所定画素数ｎづつずらしながら切り出された比較画像と前記第１ａ画像から切り出された基準画像との相関性から該部分画像の移動ベクトルを求め前記第２ｂ画像から前記所定画素数ｎづつずらしながら切り出された比較画像と前記第１ｂ画像から切り出された基準画像との相関性から該部分画像の移動ベクトルを求め以下同様にして前記複数領域数と同数の部分画像の移動ベクトルを求める比較演算手段と、前記複数の移動ベクトルのうちペアとなる移動ベクトルの組み合わせを求めると共に各ペア毎にペアを構成する２つの移動ベクトルに所定演算を施したベクトル値を算出し各ペアの２つの移動ベクトルを求めた２つの部分画像間の距離を重みとして各ペア毎の前記ベクトル値を加算平均演算して手振れベクトルを算出する重み付け演算手段とを備えることを特徴とする２画面間の手振れベクトル算出装置。
【請求項９】
前記画素ずらし手段は、前記部分画像間の距離が離れているほど画素ずらし量の差を小さくすることを特徴とする請求項８に記載の２画面間の手振れベクトル算出装置。
【請求項１０】
前記重み付け演算手段は、前記重み付けして行う前記加算平均演算の演算式の分母の値が或る閾値以下になった場合には該加算平均演算により求められる手振れベクトルの信頼性が無いと判断して手振れベクトルの算出を停止することを特徴とする請求項８または請求項９に記載の手振れベクトル算出装置。
【請求項１１】
前記重み付け演算手段は、前記ペアとなる２つの移動ベクトルの差が所定閾値以上異なる場合には該ペアの前記手振れベクトルへの算出寄与率を“０”とすることを特徴とする請求項７乃至請求項９のいずれかに記載の２画面間の手振れベクトル算出装置。
【請求項１２】
前記重み付け演算手段は、前記距離が所定閾値以下となる前記ペアは前記手振れベクトルの加算平均演算から除外することを特徴とする請求項８乃至請求項１１のいずれかに記載の２画面間の手振れベクトル算出装置。
【請求項１３】
前記画素ずらし手段は、前記第１画像の部分画像である第１ａ画像，第１ｂ画像，…も夫々前記所定画素数ｎより少ない異なる画素数づつずらしてメモリに格納し、各部分画像から基準画像を切り出させることを特徴とする請求項８乃至請求項１２のいずれかに記載の画面間の２画面間の手振れベクトル算出装置。
【請求項１４】
前記メモリには第２画像を縦および／または横に縮小した画像として格納する画素間引き手段を備え、該縮小画像上で１画素づつずらして前記比較画像を切り出し、同一縮小倍率で縮小した第１画像から切り出された基準画像と該比較画像とを比較し相関性を求めることを特徴とする請求項８乃至請求項１３のいずれかに記載の２画面間の手振れベクトル算出装置。
【請求項１５】
第１画面の全体画像（以下、第１画像という。）から基準画像切出ブロックにより基準画像を切り出し、前記基準画像切出ブロックと同一大きさの比較画像切出ブロックを所定複数画素（以下、画素数ｎとする。）づつずらしながら第２画面の全体画像（以下、第２画像という。）から比較画像を切り出し、前記所定画素数ｎづつずらしながら切り出された各比較画像と前記基準画像との相関性を夫々演算し該相関性が最も高い比較画像を切り出した比較画像切出ブロックの位置と前記基準画像切出ブロックの位置とから前記第２画像の前記第１画像に対する手振れベクトルを求める２画面間の手振れベクトル算出プログラムにおいて、
前記第１画像，第２画像を夫々同一複数領域の部分画像（以下、第１ａ画像，第１ｂ画像，…、第２ａ画像，第２ｂ画像，…という。）に分割するステップと、前記第２画像をメモリに格納するとき第２ａ画像，第２ｂ画像，…を夫々前記所定画素数ｎより少ない異なる画素数づつ画素ずらしを行ってメモリに格納するステップと、
前記第２ａ画像から前記所定画素数ｎづつずらしながら切り出された比較画像と前記第１ａ画像から切り出された基準画像との相関性から該部分画像の移動ベクトルを求め、前記第２ｂ画像から前記所定画素数ｎづつずらしながら切り出された比較画像と前記第１ｂ画像から切り出された基準画像との相関性から該部分画像の移動ベクトルを求め、以下同様にして前記複数領域数と同数の部分画像の移動ベクトルを求めるステップと、
前記複数の移動ベクトルのうちペアとなる移動ベクトルの組み合わせを求めると共に、各ペア毎に、ペアを構成する２つの移動ベクトルに所定演算を施したベクトル値を算出し、各ペアの２つの移動ベクトルを求めた２つの部分画像間の距離を重みとして各ペア毎の前記ベクトル値を加算平均演算して手振れベクトルを算出するステップと
を備えることを特徴とする２画面間の手振れベクトル算出プログラム。
【請求項１６】
前記画素ずらしは、前記部分画像間の距離が離れているほど画素ずらし量の差を小さくしたことを特徴とする請求項１５に記載の２画面間の手振れベクトル算出プログラム。
【請求項１７】
前記重み付けして行う前記加算平均演算の演算式の分母の値が或る閾値以下になった場合には該加算平均演算により求められる手振れベクトルの信頼性が無いと判断して手振れベクトルの検出を停止することを特徴とする請求項１５または請求項１６に記載の手振れベクトル算出プログラム。
【請求項１８】
前記ペアとなる２つの移動ベクトルの差が所定閾値以上異なる場合には該ペアの前記手振れベクトルへの算出寄与率を“０”とすることを特徴とする請求項１５乃至請求項１７のいずれかに記載の２画面間の手振れベクトル算出プログラム。
【請求項１９】
前記距離が所定閾値以下となる前記ペアは前記手振れベクトルの加算平均演算から除外することを特徴とする請求項１５乃至請求項１８のいずれかに記載の２画面間の手振れベクトル算出プログラム。
【請求項２０】
前記第１画像の部分画像である第１ａ画像，第１ｂ画像，…も夫々前記所定画素数ｎより少ない異なる画素数づつずらしてメモリに格納し、各部分画像から基準画像を切り出すことを特徴とする請求項１５乃至請求項１９のいずれかに記載の２画面間の手振れベクトル算出プログラム。
【請求項２１】
前記メモリには元画像を縦および／または横に縮小した画像として格納し、該縮小画像上で１画素づつずらして前記比較画像を切り出し、同一縮小倍率で縮小した第１画像から切り出された基準画像と該比較画像とを比較し相関性を求めることを特徴とする請求項１５乃至請求項２０のいずれかに記載の２画面間の手振れベクトル算出プログラム。
【請求項２２】
請求項１乃至請求項７のいずれかに記載の２画面間の手振れベクトル算出方法により算出された手振れベクトルを用い、前記第１画像の出力後に前記第２画像を出力するとき該第２画像を手振れ補正することを特徴とする電子式手振れ補正方法。
【請求項２３】
請求項８乃至請求項１４のいずれかに記載の２画面間の手振れベクトル算出装置により算出された手振れベクトルを用い、前記第１画像の出力後に前記第２画像を出力するとき該第２画像を手振れ補正して出力させる手段を備えることを特徴とする電子式手振れ補正装置。
【請求項２４】
請求項１５乃至請求項２１のいずれかに記載の２画面間の手振れベクトル算出プログラムに、該手振れベクトル算出プログラムで算出した手振れベクトルを用い前記第１画像の出力後に前記第２画像を出力するとき該第２画像を手振れ補正して出力させるステップを加えたことを特徴とする電子式手振れ補正プログラム。
【請求項２５】
固体撮像素子と、該固体撮像素子による撮像画像データを画像処理して出力する画像処理出力手段と、前記撮像画像データを取り込み前記画像処理出力手段の出力データを補正する請求項２４に記載の電子式手振れ補正装置とを備えることを特徴とする撮像装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２画面間の移動ベクトル（以下、手振れベクトルという。）を検出する手振れベクトル検出方法及びその装置並びに手振れベクトル検出プログラムと、検出した手振れベクトルに基づき電子的に手振れ補正を行う電子式手振れ補正方法及びその装置並びに電子式手振れ補正プログラムと、この電子式手振れ補正装置を搭載した撮像装置に関する。
【背景技術】
【０００２】
例えば、動画撮影機能を有するデジタルスチルカメラやビデオカメラ等を手に持ち動画を撮影する場合、カメラを持つ手が振れると、あるフレームの画像中に映っている静止物画像の位置が次フレームの画面では移動してしまい、見づらい動画になってしまう。そこで、あるフレームの画像に対して次フレームの画像の手振れベクトルを検出し、画像が揺れない様に手ぶれ補正を行うことが行われている。
【０００３】
図９は、手振れ補正を行うときの手振れベクトルを検出する原理を示す説明図である。図９（ａ）に示すＮフレーム目の画像１中の所定アドレスで示されるブロック２内の画像を基準画像とすると、図９（ｂ）に示す（Ｎ＋１）フレーム目の画像３中の同一所定アドレスで示されるブロック４によって切り出された画像が基準画像と同一であれば、画像１に対して画像３は振れていないことになる。
【０００４】
しかし、手振れが発生していれば、ブロック２内の基準画像とブロック４で切り出された画像は一致しない。そこで、画像３中のブロック４を、４ａ，４ｂ，４ｃ，…と、Ｘ方向（水平方向），Ｙ方向（垂直方向）に１画素づつずらしながら、各ブロック４ａ，４ｂ，４ｃ，…内の夫々の画像を基準画像と比較し、基準画像と最も相関性が高い比較画像を切り出したブロック位置を求める。
【０００５】
図９（ｂ）に示す例で、ブロック２の基準画像に対し最も相関性の高い比較画像がブロック４ｃで切り出されたとすると、画像１に対する画像３の差は「ｋ」となる。このｋが２画面間の手振れベクトルであり、画像１を表示した次に、画像３を移動ベクトルｋだけ逆方向に移動させて表示すれば、手振れの無い画像を表示することができる。
【０００６】
しかし、図９で説明した方法は検出原理であり、検出できるのは、切出ブロック２で切り出された画像の移動ベクトルに過ぎない。つまり、切出ブロックで切り出された画像が移動物体（例えば動き回る小動物）の画像の場合には、検出された移動ベクトルはこの移動物体の移動ベクトルであり、２画面間の移動ベクトルつまり手振れベクトルではない。
【０００７】
そこで、実際には、図１０（ａ）に示す様に、１画面を複数画面（図示する例では４行４列の計１６個の画面♯１〜♯１６）に分割し、各分割画面毎に、図９で説明した原理で夫々図１０（ｂ）に示す移動ベクトルｋ１〜ｋ１６を検出する。そして、この中から異常値を示すベクトル（図示する例ではｋ１１，ｋ１４）を除外し、残りの移動ベクトルの平均値を求め、この平均値を手振れベクトルとすることが行われる。
【０００８】
この様に、複数の分割画面毎に基準画像と比較画像の相関性を求める演算を行うのであるが、この演算は、基準画像と比較画像の１画素１画素を比較し各差分のブロック内総画素の総和の最小値を求めることで行うため、演算負荷が高く、演算に要する時間も長くなり、次フレームの表示までに移動ベクトル算出が間に合わなくなってしまう。そこで、ブロック４ａ，４ｂ，４ｃ，…を１画素づつずらすのではなく、例えば８画素づつずらし、演算処理の負荷軽減を図ると共に、演算時間の短縮を図るようにしている。
【０００９】
尚、手振れ補正に関連する従来技術として、下記特許文献１，２等がある。
【００１０】
【特許文献１】特開２００３―３３１２９２号公報
【特許文献２】特開２００４―１４６９９５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
２画面間の手振れベクトルを検出するために、基準画像と比較する比較画像の切り出しブロックを画面内で複数画素（例えば８画素）単位でずらせば、演算負荷の軽減と演算時間の短縮を図ることができる。
【００１２】
しかし、上記例の様に、切出ブロックの移動量を８画素単位にするということは、図１１に示すように、移動量の検出最小単位（解像度すなわち分解能）が、Ｘ方向，Ｙ方向ともに８画素単位に量子化されるということを意味し、量子化誤差が発生してしまう。つまり、移動量の解像度を８画素以下にできないため、２画面間の揺れを８画素以下に抑制することができず、高精度の手振れ補正ができないという問題が生じる。
【００１３】
本発明の目的は、比較画像の切出ブロックのずらし単位を複数画素単位としたとき手振れベクトルの解像度を切出ブロックのずらし単位以下にすることができ、高精度に２画面間の手振れベクトルを検出することができる手振れベクトル検出方法及びその装置並びに手振れベクトル検出プログラムと、検出した手振れベクトルに基づき電子的に手振れ補正を行う電子式手振れ補正方法及びその装置並びに電子式手振れ補正プログラムと、この電子式手振れ補正装置を搭載した撮像装置を提供することにある。
【課題を解決するための手段】
【００１４】
本発明の手振れベクトル算出方法及びその装置並びに手振れベクトル算出プログラムは、第１画面の全体画像（以下、第１画像という。）から基準画像切出ブロックにより基準画像を切り出し、前記基準画像切出ブロックと同一大きさの比較画像切出ブロックを所定複数画素（以下、画素数ｎとする。）づつずらしながら第２画面の全体画像（以下、第２画像という。）から比較画像を切り出し、前記所定画素数ｎづつずらしながら切り出された各比較画像と前記基準画像との相関性を夫々演算し該相関性が最も高い比較画像を切り出した比較画像切出ブロックの位置と前記基準画像切出ブロックの位置とから前記第２画像の前記第１画像に対する手振れベクトルを求める２画面間の手振れベクトル算出するとき、前記第１画像，第２画像を夫々同一複数領域の部分画像（以下、第１ａ画像，第１ｂ画像，…、第２ａ画像，第２ｂ画像，…という。）に分割すると共に、前記第２画像をメモリに格納するとき第２ａ画像，第２ｂ画像，…を夫々前記所定画素数ｎより少ない異なる画素数づつ画素ずらしを行ってメモリに格納し、前記第２ａ画像から前記所定画素数ｎづつずらしながら切り出された比較画像と前記第１ａ画像から切り出された基準画像との相関性から該部分画像の移動ベクトルを求め、前記第２ｂ画像から前記所定画素数ｎづつずらしながら切り出された比較画像と前記第１ｂ画像から切り出された基準画像との相関性から該部分画像の移動ベクトルを求め、以下同様にして前記複数領域数と同数の部分画像の移動ベクトルを求め、前記複数の移動ベクトルのうちペアとなる移動ベクトルの組み合わせを求めると共に、各ペア毎に、ペアを構成する２つの移動ベクトルに所定演算を施したベクトル値を算出し、各ペアの２つの移動ベクトルを求めた２つの部分画像間の距離を重みとして各ペア毎の前記ベクトル値を加算平均演算して手振れベクトルを算出することを特徴とする。
【００１５】
好適には、前記画素ずらしは、前記部分画像間の距離が離れているほど画素ずらし量の差を小さくしたことを特徴とする。
【００１６】
好適には、前記重み付けして行う前記加算平均演算の演算式の分母の値が或る閾値以下になった場合には該加算平均演算により求められる手振れベクトルの信頼性が無いと判断して手振れベクトルの検出を停止することを特徴とする。
【００１７】
更に好適には、前記ペアとなる２つの移動ベクトルの差が所定閾値以上異なる場合には該ペアの前記手振れベクトルへの算出寄与率を“０”とすることを特徴とする。
【００１８】
更に好適には、前記距離が所定閾値以下となる前記ペアは前記手振れベクトルの加算平均演算から除外することを特徴とする。
【００１９】
更に好適には、前記第１画像の部分画像である第１ａ画像，第１ｂ画像，…も夫々前記所定画素数ｎより少ない異なる画素数づつずらしてメモリに格納し、各部分画像から基準画像を切り出すことを特徴とする。
【００２０】
更に好適には、前記メモリには元画像を縦および／または横に縮小した画像として格納し、該縮小画像上で１画素づつずらして前記比較画像を切り出し、同一縮小倍率で縮小した第１画像から切り出された基準画像と該比較画像とを比較し相関性を求めることを特徴とする。
【００２１】
本発明の電子式手振れ補正方法及びその装置並び電子式手振れ補正プログラムは、上述した２画面間の手振れベクトル算出処理により算出された手振れベクトルを用い、前記第１画像の出力後に前記第２画像を出力するとき該第２画像を手振れ補正することを特徴とする。
【００２２】
本発明の撮像装置は、固体撮像素子と、該固体撮像素子による撮像画像データを画像処理して出力する画像処理出力手段と、前記撮像画像データを取り込み前記画像処理出力手段の出力データを補正する上記の電子式手振れ補正装置とを備えることを特徴とする。
【発明の効果】
【００２３】
本発明によれば、２画面間の手振れベクトルの算出精度や解像度が向上するため、適切な電子式手振れ補正が可能になり、撮像装置の性能が向上する。
【発明を実施するための最良の形態】
【００２４】
以下、本発明の一実施形態について、図面を参照して説明する。
【００２５】
先ず、本発明の実施形態で用いる画素ずらしの原理を説明する。図１は、画素ずらしによる手振れベクトル検出装置の機能ブロック図である。この手振れベクトル検出装置は、第１画面の画像を取り込み格納するメモリ１０と、該メモリ１０の格納データから所定アドレス位置の基準画像を切り出す基準画像切出回路１１と、第１画面と比較する第２画面の画像を取り込み−２画素ずらして格納するメモリ１２と、前記第２画面の画像を取り込み＋２画素ずらして格納するメモリ１３とを備える。
【００２６】
この装置は更に、メモリ１２の格納データから指定ブロック位置の比較画像Ａを切り出す切出回路１４と、メモリ１３の格納データから指定ブロック位置の比較画像Ｂを切り出す切出回路１５と、比較画像Ａと基準画像とを比較演算して両者の相関量を算出する比較演算回路１６と、比較画像Ｂと基準画像とを比較演算して両者の相関量を算出する比較演算回路１７と、比較演算回路１６，１７から出力される相関量を取り込み第１画面に対する第２画面の手振れベクトルを求める移動量演算回路１８とを備える。
【００２７】
斯かる手振れベクトル検出装置に第１画面の画像が入力されると、この画像データはメモリ１０に取り込まれ格納される。切出回路１１は、このメモリ１０内の画像データから、所定アドレスのブロックにより基準画像を切り出し、基準画像を比較演算回路１６，１７に出力する。
【００２８】
次に、第１画面と比較する第２画面の画像が入力されると、この画像データは２つのメモリ１２，１３に並列に格納される。メモリ１２には、入力画像を水平方向に−２画素ずらしながら格納され、メモリ１３には、入力画像を水平方向に＋２画素ずらしながら格納される。
【００２９】
切出回路１４は、メモリ１２の格納データを切り出して比較演算回路１６に出力し、切出回路１５は、メモリ１３の格納データを切り出して比較演算回路１７に出力する。両切出回路１５は、同一の指定切出位置（ブロック）から比較画像を切り出す。
【００３０】
切出回路１４は、図２に示す様に、切出ブロック２０によってメモリ１３の画像データを切り出すが、この画像データ自体が予め−２画素分だけＸ方向にずらされているため、実際に切り出される比較画像Ａは、元画像上では、指定ブロック２０の位置から＋２画素だけずれた画像となっている。同様に、切出回路１５によって切り出される比較画像Ｂは、元画像上では、指定ブロック２０の位置から−２画素だけずれた画像となっている。
【００３１】
比較演算回路１６は基準画像と比較画像Ａとの相関量を求め、比較演算回路１７は基準画像と比較画像Ｂとの相関量を求める。この両者の演算は、並列処理で行われる。切出回路１４，１５は、８画素単位に次々とずらされる指定ブロック位置の比較画像Ａ，Ｂを切り出し、比較演算回路１６，１７は夫々のブロック位置における相関量を算出し、移動量演算回路１８は、比較演算回路１６，１７から出力される多数の相関量算出結果を取り込み、第２画面の第１画面に対する手振れベクトルを求め出力する。
【００３２】
この例では、８画素単位で比較画像切出ブロック位置を移動させるが、実際には、４画素単位でずれた比較画像Ａ，Ｂを基準画像と比較するため、移動量の量子化は、図３に示す様に、４画素単位となる。つまり、４画素ずれた比較画像Ａと比較画像Ｂとが、８画素単位で移動される結果、求まる移動量の解像度は４画素になる。
【００３３】
尚、上述した説明では、説明を簡単にするため水平方向のみ−２画素，＋２画素ずらしたが、Ｙ方向の解像度も４画素に上げるには、垂直方向にも−２画素，＋２画素ずらせばよいことになる。
【００３４】
図４は、本発明の第１実施形態に係る手振れ補正処理装置を搭載したデジタルカメラの構成図である。このデジタルカメラでは、上述した画素ずらしを、図５に示す様に、水平方向に−１画素，＋１画素，−３画素，＋３画素づつずらすことで、水平方向の解像度を２画素単位にしている。また、同様に図示は省略するが、垂直方向にも−１画素，＋１画素，−３画素，＋３画素づつずらし、垂直方向の解像度も２画素単位にしている。
【００３５】
また、１画面を、図１０（ａ）に示す様に、♯１〜♯１６の１６個の分割画面（部分領域）に分け、各分割画面毎に、移動ベクトルを算出し、この１６個の移動ベクトルから手振れベクトルを算出する構成になっている。
【００３６】
解像度を２画素単位にするには、水平方向，垂直方向ともに−１画素，＋１画素，−３画素，＋３画素づつずらした画像をメモリに格納する必要があり、基準画像に対して、夫々画素ずらしした比較画像を比較演算することで２画素単位の移動ベクトルの算出が可能となる。しかし、斯かる方法を、１６個の分割画面♯１〜♯１６に夫々適用しても良いが、演算時間が長くなるため、次の様に図６（ａ），図６（ｂ）に示す方法を採用する。
【００３７】
図６（ａ）はＮフレーム目の画像を示し、図６（ｂ）は、Ｎ＋１フレーム目の画像を示す。両方とも、図１０と同様に４×４＝１６の分割画面♯１〜♯１６に分けられている。
【００３８】
画像データは、水平走査されながら入力されてくるため、先ず、第１行（図１０参照）の４つの分割画面♯１〜♯４の画像データがメモリ内に格納される。このとき、Ｎフレーム目の画像の場合、図６（ａ）に示す様に、第１行の分割画面♯１〜♯４の入力画像データをＸ方向に−１画素ずらしながらメモリに格納する。次の第２行の分割画面♯５〜♯８の入力画像データは、Ｘ方向に＋３画素ずらしながらメモリに格納し、第３行の分割画面♯９〜♯１２の入力画像データは、Ｘ方向に−３画素ずらしながらメモリに格納し、第４行の分割画面♯１３〜♯１６の入力画像データは、Ｘ方向に＋１画素ずらしながらメモリに格納する。
【００３９】
次に入力されるＮ＋１フレーム目の画像データをメモリに格納する場合は、図６（ｂ）に示す様にする。即ち、第１行第１列の分割画面♯１の入力画像データは、Ｙ方向に−１画素ずらしながらメモリに格納し、第１行第２列の分割画面♯２の入力画像データは、Ｙ方向に＋３画素ずらしながらメモリに格納し、第１行第３列の分割画面♯３の入力画像データは、Ｙ方向に−３画素ずらしながらメモリに格納し、第１行第４列の分割画面♯４の入力画像データは、Ｙ方向に＋１画素ずらしながらメモリに格納する。以下、同様に、第２行，第３行，第４行の各部分領域の画像データをメモリに格納する。これにより、第１列，第２列，第３列，第４列の各部分領域の画像データは、Ｙ方向に−１，＋３，−３，＋１画素づつずれた画像となる。
【００４０】
そして、図６（ａ）に示す画像を基準画像とする場合には、例えば図６（ａ）の♯１分割画面の中央ブロック（点線で示したブロック）から基準画像を切り出し、これと比較する図６（ｂ）の♯１分割画面の中央に示した切出ブロック（点線で示したブロック）から比較画像を切り出し、比較演算を行う。この比較演算の次に、比較画像切出用の切出ブロックを水平方向または垂直方向に８画素ずらし、同様に基準画像との比較演算を行い、更に切出ブロックを８画素ずらして比較演算を行うという処理を繰り返し、基準画像と相関性の最も高い切出ブロック位置を求め、♯１分割画面における移動ベクトルを求める。
【００４１】
♯２分割画面においても上記と同様にして比較演算を行いながら、♯２分割画面における移動ベクトルを求め、以下同様にして、１６個の分割画面毎の移動ベクトルを求める。そして、１６個の移動ベクトルを求めた後に、画面全体の手振れベクトルを算出する。
【００４２】
この様にして算出される分割画面毎の移動ベクトルは、８画素単位の分解能（解像度）しかないが、分割画面毎に比較する画像が少しずつずれているため、１６個の分割画面毎に求まる移動ベクトルを平均して画面間の手振れベクトルを求めると、この画面間の手振れベクトルは２画素単位となる。この平均を求める演算は、本実施形態では、詳細は後述するように、重み付け平均で行い、手振れベクトルの検出精度を向上させている。
【００４３】
Ｎフレーム目の画像に対してＮ＋１フレーム目の画像の手振れベクトルが算出された後は、次に、Ｎ＋１フレーム目の画像に対するＮ＋２フレーム目の画像の手振れベクトルを同様に算出する。この場合には、図６（ｂ）に示す画像が基準画像切出用の画像となり、図６（ａ）に示す画像が比較画像切出用の画像となる。
【００４４】
上述した原理に基づき構成された本実施形態に係る２画面間の手振れベクトル検出装置は、図４に示す動画撮影機能を搭載したデジタルスチルカメラの電子式手振れ補正処理装置５０内に設けられる。この電子式手振れ補正処理装置５０は、デジタルカメラに通常搭載されているシステム制御部（ＣＰＵ）が、電子式手振れ補正プログラムを実行することで、配下のデジタル信号処理装置（ＤＳＰ）やフレームメモリ等により構成される。
【００４５】
図４に示すデジタルスチルカメラは、固体撮像素子３０と、固体撮像素子３０により撮像された画像データのうち偶数フレーム画像と奇数フレーム画像を交互に書き換えながら格納する２面のフレームメモリ３１，３２と、フレームメモリ３１，３２内の格納画像データを画像処理し例えばＪＰＥＧ画像等にして出力する画像処理出力部３３と、画像処理出力部３３から出力される画像データを表示する表示部３４やこの画像データを蓄積する図示しない記録メディアを備える。
【００４６】
このデジタルスチルカメラに搭載される電子式手振れ補正処理装置５０は、フレームメモリ３１，３２に格納される入力画像データを並行して取り込み、Ｎフレーム画像に対する（Ｎ＋１）フレーム画像の画面間の手振れベクトルを算出し、算出した画面間の手振れベクトルを画像処理出力部３３に出力する様になっている。
【００４７】
この手振れ補正処理装置５０は、奇数フレームの画像データを取り込みＸ方向の画素ズラシ（上述した−１，＋３，−３，＋１の画素ズラシ）を行う画素ずらし回路３５と、画素ずらし回路３５の出力画像データをＸ方向，Ｙ方向共に１／８に縮小（８×８＝６４画素を１画素に縮小）する画素間引回路３６と、画素間引きされた奇数フレームの画像データを格納するメモリ３７とを備える。
【００４８】
また、この手振れ補正処理装置５０は、偶数フレームの画像データを取り込みＹ方向の画素ズラシ（上述した−１，＋３，−３，＋１の画素ズラシ）を行う画素ずらし回路３８と、画素ずらし回路３８の出力画像データをＸ方向，Ｙ方向共に１／８に縮小（８×８＝６４画素を１画素に縮小）する画素間引回路３９と、画素間引きされた偶数フレームの画像データを格納するメモリ４０とを備える。
【００４９】
本実施形態では、画素間引回路３６，３９を設け、Ｘ方向，Ｙ方向を夫々１／８に間引きしている。切出ブロックを元画像で８画素単位に移動させることは、縮小画像で１画素づつ移動させることに相当する。また、比較画像，基準画像共に縮小された画像を用いるため、１画素毎に行う比較演算処理の負荷が軽減されると共に処理時間の短縮が図れ、また、メモリ３７，３９の容量削減を図ることができる。尚、縦横共に同一倍率で縮小する必要はなく、また、縦だけまたは横だけ縮小するだけでも良い。
【００５０】
更にこの手振れ補正処理装置５０は、所定アドレスのブロックによって基準画像を切り出す基準画像切出回路４１と、切出ブロックによって比較画像を切り出す比較画像切出回路４２と、メモリ３７，４０と切出回路４１，４２との接続をフレーム切替信号によって切り替えるスイッチ回路４３と、切出回路４１，４２の出力画像データを取り込み基準画像と比較画像との比較演算処理を行い分割画面毎の移動ベクトルを算出する比較演算器４４と、各分割画面毎の移動ベクトルから画面間の手振れベクトルを算出し画像出力部３３に出力する重み付け演算器４５とを備える。比較演算器４４は、比較画像切出回路４２に対して切出ブロックの切出位置移動指令を出力すると共に、各切出回路４１，４２に対して対象とする分割画面のアドレスを指示する。
【００５１】
斯かる構成の電子式手振れ補正処理装置５０では、Ｎフレーム目の画像が入力してくると、図６（ａ）に示す様に、第１行の４つの分割画面♯１〜♯４の画像データに対しては画素ずらし回路３５がＸ方向に−１画素分だけ画素ズラシを行い、画素間引回路３６が画像縮小を行い、メモリ３７に縮小画像が格納される。同様に、第２行の４つの分割画面♯５〜♯８の画像データに対しては、画素ずらし回路３５がＸ方向に＋３画素分だけ画素ずらしを行い、画素間引回路３６が画像縮小を行い、メモリ３７に縮小画像が格納される。以下、同様にして、Ｎフレーム目の、画素ズラシ及び画素間引きされた縮小画像データがメモリ３７に格納される。
【００５２】
Ｎ＋１フレーム目の画像が入力してくると、図６（ｂ）で説明した様に、今度はＹ方向に画素ズラシされ更に画素間引きされた縮小画像データがメモリ４０に格納される。図６（ｂ）の第１行の４つの分割画面♯１〜♯４の縮小画像がメモリ４０に格納されると、この４つの分割画面♯１〜♯４における移動ベクトル算出の比較演算処理が実行可能となるため、第２行以下の分割画面の縮小画像のメモリ４０への格納と並行して、４つの分割画面の移動ベクトル算出処理が同時並列的に実行される。
【００５３】
即ち、基準画像切出回路４１がメモリ３７内の４つの分割画面から夫々の基準画像を切り出して比較演算器４４に出力すると共に、比較画像切出回路４２がメモリ４０内の４つの分割画面から比較画像を切り出して比較演算器４４に出力し、比較演算器４４は、４つの分割画面毎に、基準画像と比較画像との相関量を算出する。１つの比較画像との比較演算が終了すると、縮小画像で１画素ずれた比較画像を比較画像切出回路４２に切出要求する。
【００５４】
各分割画面毎に、相関量の最も高い切出ブロック位置が求まると、夫々の分割画面における基準画像切出ブロックとの位置の差がその分割画面における移動ベクトルとなり、これが重み付け演算器４５に出力される。
【００５５】
第１行の４つ分割画面♯１〜♯４の各移動ベクトルが求まると、次に第２行の４つ分割画面♯５〜♯８の各移動ベクトルを並列処理で求め、更に第３行，第４行と同様に進めると、重み付け演算器４５には、１６個の分割画面移動ベクトルが入力される。
【００５６】
重み付け演算器４５は、この１６個の移動ベクトルを後述するように処理して画面間の手振れベクトルを算出し、この画面間の手振れベクトルを画像処理出力部３３に出力する。
【００５７】
画像処理出力部３３は、例えば奇数フレームの画像をフレームメモリ３２から読み出して表示部３４に表示した後、偶数フレームの画像をフレームメモリ３１から読み出して表示部３４に表示するとき、画面間の手振れベクトルを用いて偶数フレームの画像をずらした後、表示部３４に表示する。
【００５８】
偶数フレームの画像をずらして表示部３４に表示するとき、次の奇数フレームの画像データが入力され、奇数フレームメモリ３１が書き換えられる。これと同時に奇数フレームの画像がＸ方向画素ずらし回路３５，画素間引回路３６と通って新たな縮小画像がメモリ３７に書き込まれる。また、このとき、スイッチ回路４３にフレーム切替信号が入力するため、メモリ４０が基準画像切出回路４１に接続替えされ、メモリ３７が比較画像切出回路４２に接続替えされる。
【００５９】
以後、メモリ４０内の画像が基準画像となり、メモリ３７内の画像が比較画像として切り出され、次フレーム画像の画面間の手振れベクトルが算出され、画像処理出力部３３は、次フレームの画像をこの手振れベクトルによってずらし、表示部３４に表示する。この様な制御を行うことで、表示部３４の画面に表示される動画は、手振れが抑制された画像となる。
【００６０】
次に、重み付け演算器４５が行う演算処理について説明する。本実施形態では、１画面を１６個に分割したため、図７（ａ）に示す様に、計１６個の移動ベクトルｋ１〜ｋ１６が検出される。重み付け演算器４５は、この１６個の移動ベクトルｋ１〜ｋ１６を次式に基づき演算処理し、画面全体の手振れベクトルｋを算出する。
【００６１】
【数１】
2008160275.tif 000003
【００６２】
ここで、分母の「ｆ」とはペア成立で“１”、ペア不成立で“０”となる値である。ペアとは、移動ベクトルｋ１〜ｋ１６の中の任意の２つの組を指す。
【００６３】
例えば、図７（ａ）に示す１６個の移動ベクトルｋ１〜ｋ１６の中の例えば（ｋ２，ｋ１１）の組を指す。そして、ベクトルｋ２とベクトルｋ１１との差が所定閾値Ａ以下のとき、ペア成立となり、所定閾値Ａを越えて違いが大きい場合にはペア不成立となる。
【００６４】
「Ｐair値」とは、ペア不成立の場合には“０”となり、ペア成立時にはベクトルｋ２とベクトルｋ１１に所定演算を施したベクトル値、例えば加算平均ベクトル値となる。
【００６５】
「Ｌ（ｎ）」とは、図７（ｂ）に示す様に、ペアがｋ２，ｋ１１の場合には両ベクトル間（分割画面♯２，♯１１間）の距離となる。
【００６６】
即ち、数１では、全てのペアの総計の重み付き平均値を手振れベクトルとして算出している。ｋ１とペアになる組は計１５組存在し、ｋ２とペアになる組も計１５組存在し、…、ｋ１６とペアになる組も計１５組存在する。各ペアについて距離を重みとして加算平均することで、精度の高い手振れベクトルを算出することが可能となる。
【００６７】
この様に、本実施形態では、画面中の場所に関係なく、距離が離れた位置で同じ様な方向，長さの移動ベクトルが検出された場合には、その移動ベクトルは「手振れベクトル」の成分が高いとしてその寄与率を高くし、同じ様な方向，長さの移動ベクトルであっても距離が近い場合には移動物体による移動ベクトルである成分が高いため寄与率を小さくしている。このため、移動物体が画面のどの場所に存在していても、手振れベクトルの算出精度を向上させることができる。
【００６８】
このとき、本実施形態では、距離が離れた分割画面間における画素ずらしの差が少なくなるようにしている。図６（ａ），（ｂ）に示す実施形態では、最も距離が離れた♯１分割画面と♯１６分割画面との差はｘ方向２画素，ｙ方向２画素であるが、距離の近い♯１分割画面と♯６分割画面との差はｘ方向４画素，ｙ方向４画素となっている。つまり、画素ずらし−１，＋１，−３，＋３の配置を、距離が遠いほど差が小さくなるように配置している。これは、次の理由による。
【００６９】
数１によれば、距離の離れた分割画面間の移動ベクトルのペアが手振れベクトルの算出時に重みが大きくなり、手振れベクトルへの寄与率が高くなる。例えば、♯１分割画面の移動ベクトルｋ１と、♯１６分割画面間の移動ベクトルｋ１６のペアを考えた場合、両ベクトルｋ１，ｋ１６の分割画面間での画素ずれが大きいと、量子化誤差も大きくなってしまう。この量子化誤差は、小さい方が、計算結果として得られる手振れベクトルの精度が向上する。
【００７０】
図８は、本発明の別実施形態に係る画素ずらし量を示す図である。本実施形態でも１画面を♯１〜♯１６の４行４列に分割している。本実施形態では、元画像を１／４に画素間引きし、縮小画像間で相関性の演算を行っている。この場合には、画素ずらしは、−１画素，＋１画素となる。
【００７１】
そこで、上記理由により、離れた分割画面間の画素ずらし量が同じになるようにしている。即ち、図示する例では、第１行の分割画面♯１〜♯４と、第４行の分割画面♯１３〜♯１６の画素ずらし量を同じとし（図８（ａ））、第１列の分割画面♯１，♯５，♯９，♯１３と第４列の分割画面♯４，♯８，♯１２，♯１６の画素ずらし量を同じにしている。
【００７２】
この様に、距離の離れた分割画面間における画素ずらし量の差を小さくし、且つ、距離の離れた分割画面の移動ベクトルのペアの重みを大きくして手振れベクトルを算出すると、少ない計算量で、細かい分解能で且つ精度の高い手振れベクトルを算出することが可能となる。
【００７３】
尚、上述した実施形態では、画面を１６分割して１６個の移動ベクトルを求めているが、画面を更に細分化して各分割画面の移動ベクトルを求め、手振れベクトルを算出することも可能である。しかし、この場合には、ペア数が増大して計算負荷が高くなってしまうという問題が新たに生じる。そこでこの様な場合には、数１において、距離Ｌ（ｎ）が閾値以下の短距離の場合（距離Ｌ（ｎ）は既知である。）には計算から除外し、実際に計算するペア数を減らすことが効果的である。
【００７４】
また、数１では分母が存在するため、分母が“０”となることが起こり得る。即ち、全て分割画面における移動ベクトルがバラバラとなり、全ペアがペア不成立になってしまう場合がある。例えば、暗い夜空を撮影した場合とか、同一色の壁を撮影した場合には、各分割画面における移動ベクトルはバラバラとなる。この様な場合には、手振れ補正処理を一時停止する。
【００７５】
または、数１の分母を計算したとき、算出値が所定閾値より小さいか否かを判定し、小さい場合には、数１で求める手振れベクトルの信頼性が無いと判断できるため、手振れベクトルの算出を停止して手振れ補正を一時停止し、あるいは別の方法で手振れベクトルを算出する。
【００７６】
上述した実施形態では、デジタルカメラ内部での処理として説明したが、固体撮像素子３０から出力される画像データを全て記録しておき、これを外部のパーソナルコンピュータ等に取り込み、パーソナルコンピュータが手振れベクトル検出プログラムや電子式手振れ補正プログラムを実行することでも同様に処理が可能であることはいうまでもない。
【００７７】
更にまた、上述した実施形態では、８画素単位に切出ブロックを移動させたが、これに限る訳ではない。例えば、切出ブロックを３２画素単位で移動させる場合、−８画素と＋８画素づつずらした画像を用いれば解像度を１６画素にすることができる。また、−１２画素，−４画素，＋４画素，＋１２画素づつずらした画像を用いることで、解像度を８画素にすることができ、−１４画素，−１０画素，−６画素，−２画素，＋２画素，＋６画素，＋１０画素，＋１４画素づつづらした画像を用いることで、解像度を４画素にすることができる。更に同様に画像のずらし単位を２画素とすることで、解像度を２画素にすることもできる。これらの場合でも、離れた分割画面間の画素ずらし量の差を小さくすることで、精度の高い手振れベクトルを算出することができる。
【００７８】
上述した実施形態では、動画を例に説明したが、あるフレームの画像と、次フレームの画像とを合成して静止画像を生成する場合にも、上記実施形態を適用可能である。例えば、低感度撮影と高感度撮影を連続して行い、両フレームの画像を合成することでダイナミックレンジの広い静止画像を撮像することがあるが、この場合にも上述した実施形態を適用して両フレームの画像がずれないように合成することができる。
【産業上の利用可能性】
【００７９】
本発明に係る手振れベクトル算出方法等は精度の高い手振れベクトルを短時間に算出できるため、動画撮影機能をもったデジタルカメラや、２枚の画像を合成して１枚の画像を生成するデジタルカメラ等に適用したり、デジタルカメラ等で撮影した画像をコンピュータで高速処理するのに有用である。
【図面の簡単な説明】
【００８０】
【図１】本発明の検出原理の一例を説明する画素ずらしによる手振れベクトル検出装置の構成図である。
【図２】画素ずらしの説明図である。
【図３】画素ずらしを行うことになる解像度アップの説明図である。
【図４】本発明の第１実施形態に係る手振れベクトル算出方法を用いて電子式手振れ補正を行うデジタルカメラのブロック構成図である。
【図５】図４に示すデジタルカメラで行う画素ずらしの説明図である。
【図６】本発明の第１実施形態で１画面を４行４列の１６個の画面に分割したときの画素ずらしの説明図である。
【図７】本発明の第１実施形態で得られた１６個の移動ベクトルとベクトル間距離とを説明する図である。
【図８】本発明の第２実施形態に係る画素ずらしの説明図である。
【図９】手振れベクトルの検出原理説明図である。
【図１０】手振れベクトルの検出原理説明図である。
【図１１】比較画像切出ブロックの移動量を複数画素単位で行ったときの量子化誤差の説明図である。
【符号の説明】
【００８１】
３０  固体撮像素子
３１，３２  フレームメモリ
３３  画像処理出力部
３４  表示部
３５，３８  画素ずらし回路
３６，３９  間引き回路
４３  切替スイッチ
４１  基準画像切出回路
４２  比較画像切出回路
４４  比較演算器
４５  重み付け演算器
５０  電子式手振れ補正処理装置
【図１】
2008160275.tif 000004
【図２】
2008160275.tif 000005
【図３】
2008160275.tif 000006
【図４】
2008160275.tif 000007
【図５】
2008160275.tif 000008
【図６】
2008160275.tif 000009
【図７】
2008160275.tif 000010
【図８】
2008160275.tif 000011
【図９】
2008160275.tif 000012
【図１０】
2008160275.tif 000013
【図１１】
2008160275.tif 000014