(57)【特許請求の範囲】
【請求項１】
静止画撮影の露光期間中において、カメラに設けられた角速度センサのセンサ出力に基づいて手ぶれ情報を算出する手ぶれ情報算出手段、
上記露光期間の前後の動画フレームをそれぞれ１つずつ取得する画像取得手段、
画像取得手段によって取得された２つの動画フレームに基づいて、両動画フレーム間の動きベクトルを算出する動きベクトル算出手段、ならびに
手ぶれ情報算出手段によって算出された手ぶれ情報と、動きベクトル算出手段によって算出された動きベクトルとに基づいて、手ぶれ情報を補正する手ぶれ情報補正手段、
を備えていることを特徴とする手ぶれ検出装置。
【請求項２】
手ぶれ情報算出手段は、静止画撮影の露光期間中において、角速度センサのセンサ出力を順次サンプリングし、サンプリング毎にセンサ出力に基づいて手ぶれ情報を算出する手段を備えており、
手ぶれ情報補正手段は、
手ぶれ情報算出手段によって算出されたサンプリング毎の手ぶれ情報を合成して、上記露光期間に対する手ぶれ情報を求める手ぶれ情報合成手段、
手ぶれ情報合成手段によって得られた手ぶれ情報と、動きベクトル算出手段によって算出された動きベクトルとに基づいて、サンプリング毎の補正値を算出する補正値算出手段、ならびに
補正値算出手段によって算出されたサンプリング毎の補正値に基づいて、手ぶれ情報算出手段によって算出されたサンプリング毎の手ぶれ情報を補正する補正手段、
を備えていることを特徴とする請求項１に記載の手ぶれ検出装置。
【請求項３】
動きベクトル算出手段は、画像取得手段によって取得された２つの動画フレームに基づいて、両動画フレーム間の動きベクトルを算出する第１手段、および
上記２つの動画フレームの撮像時間間隔と上記露光期間とに基づいて、第１手段によって算出された２つの動画フレーム間の動きベクトルを上記露光期間に応じた動きベクトルに補正する手段、
を備えていることを特徴とする請求項１または２に記載の手ぶれ検出装置。
【請求項４】
静止画撮影の露光期間中においてカメラに設けられた角速度センサのセンサ出力に基づいて第１の手ぶれ情報を算出する第１の手ぶれ情報算出手段、
上記露光期間の開始前の２つの動画フレームと、上記露光期間の終了後の２つの動画フレームとを取得する画像取得手段、
画像取得手段によって取得された上記露光期間の開始前の２つの動画フレームに基づいて、両動画フレーム間の動きベクトルを算出する第１の動きベクトル算出手段、
画像取得手段によって取得された上記露光期間の終了後の２つの動画フレームに基づいて、両動画フレーム間の動きベクトルを算出する第２の動きベクトル算出手段、
上記露光期間の開始前の２つの動画フレームの一方が撮像されてから他方が撮像されるまでの期間において角速度センサのセンサ出力をサンプリングし、得られたセンサ出力に基づいて第２の手ぶれ情報を算出する第２の手ぶれ情報算出手段、
上記露光期間の終了後の２つの動画フレームの一方が撮像されてから他方が撮像されるまでの期間において角速度センサのセンサ出力をサンプリングし、得られたセンサ出力に基づいて第３の手ぶれ情報を算出する第３の手ぶれ情報算出手段、ならびに
第２の手ぶれ情報算出手段によって算出された第２の手ぶれ情報と、第３の手ぶれ情報算出手段によって算出された第３の手ぶれ情報と、第１の動きベクトル算出手段によって算出された動きベクトルと、第２の動きベクトル算出手段によって算出された動きベクトルとに基づいて、第１の手ぶれ情報算出手段によって算出された第１の手ぶれ情報を補正する手ぶれ情報補正手段、
を備えていることを特徴とする手ぶれ検出装置。
【請求項５】
第１の手ぶれ情報算出手段は、静止画撮影の露光期間中において、角速度センサのセンサ出力を順次サンプリングし、サンプリング毎にセンサ出力に基づいて第１の手ぶれ情報を算出する手段を備えており、
第２の手ぶれ情報算出手段は、上記露光期間の開始前の２つの動画フレームの一方が撮像されてから他方が撮像されるまでの期間において、角速度センサのセンサ出力を順次サンプリングし、サンプリング毎にセンサ出力に基づいて第２の手ぶれ情報を算出する手段を備えており、
第３の手ぶれ情報算出手段は、上記露光期間の終了後の２つの動画フレームの一方が撮像されてから他方が撮像されるまでの期間において、角速度センサのセンサ出力を順次サンプリングし、サンプリング毎にセンサ出力に基づいて第２の手ぶれ情報を算出する手段を備えており、
手ぶれ情報補正手段は、
第２の手ぶれ情報算出手段によって算出されたサンプリング毎の第２の手ぶれ情報を合成して、上記露光期間の開始前の２つの動画フレームの一方が撮像されてから他方が撮像されるまでの期間に対する手ぶれ情報を求める第１の手ぶれ情報合成手段、
第３の手ぶれ情報算出手段によって算出されたサンプリング毎の第３の手ぶれ情報を合成して、上記露光期間の終了後の２つの動画フレームの一方が撮像されてから他方が撮像されるまでの期間に対する手ぶれ情報を求める第２の手ぶれ情報合成手段、
第１の手ぶれ情報合成手段によって得られた手ぶれ情報と、第１の動きベクトル算出手段によって算出された動きベクトルと、第２の手ぶれ情報合成手段によって得られた手ぶれ情報と、第２の動きベクトル算出手段によって算出された動きベクトルとに基づいて、サンプリング毎の補正値を算出する補正値算出手段、ならびに
補正値算出手段によって算出されたサンプリング毎の補正値に基づいて、第１の手ぶれ情報算出手段によって算出されたサンプリング毎の第１の手ぶれ情報を補正する補正手段、
を備えていることを特徴とする請求項４に記載の手ぶれ検出装置。
【請求項６】
静止画撮影の露光期間中において、カメラに設けられた角速度センサのセンサ出力に基づいて第１手ぶれ情報を算出する第１手ぶれ情報算出手段、
上記露光期間の前後の動画フレームをそれぞれ１つずつ取得する、又は上記露光期間の終了後の２つの動画フレームを取得する画像取得手段、
画像取得手段によって取得された２つの動画フレームに基づいて、第２手ぶれ情報を算出する第２手ぶれ情報算出手段、ならびに
第１手ぶれ情報算出手段によって算出された第１手ぶれ情報と、第２手ぶれ情報算出手段によって算出された第２手ぶれ情報とに基づいて、第１手ぶれ情報を補正する手ぶれ情報補正手段、
を備えていることを特徴とする手ぶれ検出装置。
【請求項７】
手ぶれ検出装置によって算出された手ぶれ情報に基づいて手ぶれ補正を行なう機能を備えたデジタルカメラにおいて、手ぶれ検出装置が請求項１乃至６に記載の手ぶれ検出装置であることを特徴とするデジタルカメラ。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、手ぶれ検出装置およびデジタルカメラに関する。
【背景技術】
【０００２】
静止画手ぶれ補正技術は、静止画撮影における手ぶれを軽減する技術であり、手ぶれを検出して、その検出結果に基づいて画像を安定化することで実現される。
【０００３】
手ぶれを検出する方法には、手ぶれセンサ（角速度センサ）を用いる方法と、画像を解析して検出する電子式とがある。画像を安定化させる方法には、レンズや撮像素子を安定化させる光学式と、画像処理により手ぶれによるぼけを除去する電子式とがある。
【０００４】
一方、完全電子式の手ぶれ補正技術、すなわち、撮影された一枚の手ぶれ画像だけを解析・処理することで、手ぶれの除去された画像を生成する技術は、実用レベルに達していない。特に、手ぶれセンサで得られる精度の手ぶれ信号を、一枚の手ぶれ画像を解析することによって求めることは困難である。
【０００５】
したがって、手ぶれセンサを用いて手ぶれを検出し、その手ぶれデータを用いて画像処理により手ぶれぼけを除去することが現実的である。画像処理によるぼけの除去を画像復元と呼ぶ。また、手ぶれセンサと画像復元による手法を、ここでは電子式手ぶれ補正と呼ぶことにする。
【０００６】
電子式手ぶれ補正としては、角速度センサで検出した手ぶれ情報から手ぶれ関数（画像劣化関数）を生成した後、手ぶれ関数から一般逆フィルタを生成し、得られた一般逆フィルタを用いて画像復元を行うことにより、手ぶれによる画像劣化を補正するものが知られている。
【０００７】
このように、角速度センサによって手ぶれ情報を検出する場合、センサのドリフト成分による検出誤差が発生するという問題がある。また、角速度センサを用いた場合、センサでは検出できないぶれ（例えば、平行移動）が含まれると、実際の画像上のぶれ量を正確に検出できないという問題がある。
【０００８】
【特許文献１】特開平１０−２１５４０５号公報
【特許文献２】特開平１１−２７５７４号公報
【特許文献３】特開２０００−２９８３００号公報
【特許文献４】特開平４−２６２８２号公報
【特許文献５】特開平１１−２４１２２号公報
【特許文献６】特開昭６０−１４３３３０号公報
【特許文献７】特開昭６３−５０７２９号公報
【特許文献８】特開平７−３０１８３６号公報
【特許文献９】特開平７−２０５２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
この発明は、角速度センサを用いて手ぶれ情報を検出する手ぶれ検出装置において、精度の高い手ぶれ情報を得ることができる手ぶれ検出装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
請求項１に記載の発明は、静止画撮影の露光期間中において、カメラに設けられた角速度センサのセンサ出力に基づいて手ぶれ情報を算出する手ぶれ情報算出手段、上記露光期間の前後の動画フレームをそれぞれ１つずつ取得する画像取得手段、画像取得手段によって取得された２つの動画フレームに基づいて、両動画フレーム間の動きベクトルを算出する動きベクトル算出手段、ならびに手ぶれ情報算出手段によって算出された手ぶれ情報と、動きベクトル算出手段によって算出された動きベクトルとに基づいて、手ぶれ情報を補正する手ぶれ情報補正手段を備えていることを特徴とする。
【００１１】
請求項２に記載の発明は、請求項１に記載の発明において、手ぶれ情報算出手段は、静止画撮影の露光期間中において、角速度センサのセンサ出力を順次サンプリングし、サンプリング毎にセンサ出力に基づいて手ぶれ情報を算出する手段を備えており、手ぶれ情報補正手段は、手ぶれ情報算出手段によって算出されたサンプリング毎の手ぶれ情報を合成して、上記露光期間に対する手ぶれ情報を求める手ぶれ情報合成手段、手ぶれ情報合成手段によって得られた手ぶれ情報と、動きベクトル算出手段によって算出された動きベクトルとに基づいて、サンプリング毎の補正値を算出する補正値算出手段、ならびに補正値算出手段によって算出されたサンプリング毎の補正値に基づいて、手ぶれ情報算出手段によって算出されたサンプリング毎の手ぶれ情報を補正する補正手段を備えていることを特徴とする。
【００１２】
請求項３に記載の発明は、請求項１または２に記載の発明において、動きベクトル算出手段は、画像取得手段によって取得された２つの動画フレームに基づいて、両動画フレーム間の動きベクトルを算出する第１手段、および上記２つの動画フレームの撮像時間間隔と上記露光期間とに基づいて、第１手段によって算出された２つの動画フレーム間の動きベクトルを上記露光期間に応じた動きベクトルに補正する手段を備えていることを特徴とする。
【００１５】
請求項４に記載の発明は、静止画撮影の露光期間中においてカメラに設けられた角速度センサのセンサ出力に基づいて第１の手ぶれ情報を算出する第１の手ぶれ情報算出手段、上記露光期間の開始前の２つの動画フレームと、上記露光期間の終了後の２つの動画フレームとを取得する画像取得手段、画像取得手段によって取得された上記露光期間の開始前の２つの動画フレームに基づいて、両動画フレーム間の動きベクトルを算出する第１の動きベクトル算出手段、画像取得手段によって取得された上記露光期間の終了後の２つの動画フレームに基づいて、両動画フレーム間の動きベクトルを算出する第２の動きベクトル算出手段、上記露光期間の開始前の２つの動画フレームの一方が撮像されてから他方が撮像されるまでの期間において角速度センサのセンサ出力をサンプリングし、得られたセンサ出力に基づいて第２の手ぶれ情報を算出する第２の手ぶれ情報算出手段、上記露光期間の終了後の２つの動画フレームの一方が撮像されてから他方が撮像されるまでの期間において角速度センサのセンサ出力をサンプリングし、得られたセンサ出力に基づいて第３の手ぶれ情報を算出する第３の手ぶれ情報算出手段、ならびに第２の手ぶれ情報算出手段によって算出された第２の手ぶれ情報と、第３の手ぶれ情報算出手段によって算出された第３の手ぶれ情報と、第１の動きベクトル算出手段によって算出された動きベクトルと、第２の動きベクトル算出手段によって算出された動きベクトルとに基づいて、第１の手ぶれ情報算出手段によって算出された第１の手ぶれ情報を補正する手ぶれ情報補正手段を備えていることを特徴とする。
【００１６】
請求項５に記載の発明は、請求項４に記載の発明において、第１の手ぶれ情報算出手段は、静止画撮影の露光期間中において、角速度センサのセンサ出力を順次サンプリングし、サンプリング毎にセンサ出力に基づいて第１の手ぶれ情報を算出する手段を備えており、第２の手ぶれ情報算出手段は、上記露光期間の開始前の２つの動画フレームの一方が撮像されてから他方が撮像されるまでの期間において、角速度センサのセンサ出力を順次サンプリングし、サンプリング毎にセンサ出力に基づいて第２の手ぶれ情報を算出する手段を備えており、第３の手ぶれ情報算出手段は、上記露光期間の終了後の２つの動画フレームの一方が撮像されてから他方が撮像されるまでの期間において、角速度センサのセンサ出力を順次サンプリングし、サンプリング毎にセンサ出力に基づいて第２の手ぶれ情報を算出する手段を備えており、手ぶれ情報補正手段は、第２の手ぶれ情報算出手段によって算出されたサンプリング毎の第２の手ぶれ情報を合成して、上記露光期間の開始前の２つの動画フレームの一方が撮像されてから他方が撮像されるまでの期間に対する手ぶれ情報を求める第１の手ぶれ情報合成手段、第３の手ぶれ情報算出手段によって算出されたサンプリング毎の第３の手ぶれ情報を合成して、上記露光期間の終了後の２つの動画フレームの一方が撮像されてから他方が撮像されるまでの期間に対する手ぶれ情報を求める第２の手ぶれ情報合成手段、第１の手ぶれ情報合成手段によって得られた手ぶれ情報と、第１の動きベクトル算出手段によって算出された動きベクトルと、第２の手ぶれ情報合成手段によって得られた手ぶれ情報と、第２の動きベクトル算出手段によって算出された動きベクトルとに基づいて、サンプリング毎の補正値を算出する補正値算出手段、ならびに補正値算出手段によって算出されたサンプリング毎の補正値に基づいて、第１の手ぶれ情報算出手段によって算出されたサンプリング毎の第１の手ぶれ情報を補正する補正手段を備えていることを特徴とする。
また、請求項６に記載の発明は、静止画撮影の露光期間中において、カメラに設けられた角速度センサのセンサ出力に基づいて第１手ぶれ情報を算出する第１手ぶれ情報算出手段、上記露光期間の前後の動画フレームをそれぞれ１つずつ取得する、又は上記露光期間の終了後の２つの動画フレームを取得する画像取得手段、画像取得手段によって取得された２つの動画フレームに基づいて、第２手ぶれ情報を算出する第２手ぶれ情報算出手段、ならびに第１手ぶれ情報算出手段によって算出された第１手ぶれ情報と、第２手ぶれ情報算出手段によって算出された第２手ぶれ情報とに基づいて、第１手ぶれ情報を補正する手ぶれ情報補正手段を備えていることを特徴とする。
【００１７】
請求項７に記載の発明は、手ぶれ検出装置によって算出された手ぶれ情報に基づいて手ぶれ補正を行なう機能を備えたデジタルカメラにおいて、手ぶれ検出装置が請求項１乃至６に記載の手ぶれ検出装置であることを特徴とする。
【発明の効果】
【００１８】
この発明によれば、精度の高い手ぶれ情報を得ることができるようになる。
【発明を実施するための最良の形態】
【００１９】
以下、図面を参照して、この発明をデジタルカメラに適用した場合の実施例について説明する。
【実施例１】
【００２０】
〔１〕デジタルカメラの構成
【００２１】
図１は、デジタルカメラの構成を示している。
ＣＣＤ２は、レンズ１を通して入射した光学像を光電変換し、電気信号として出力する。ＣＣＤ２の出力信号は、Ａ／Ｄ変換器３によってデジタル信号に変換される。Ａ／Ｄ変換器３の出力データは、画像処理回路４によって所定の画像処理が施された後、画像メモリ５に格納される。画像メモリ５に格納された画像データは、撮影モード時においては、画面表示用スルー画像（動画像）としてモニタ７に表示される。また、シャッタ操作によって撮影された静止画データは、手ぶれ補正処理回路２３によって手ぶれ補正が行われた後、メモリカード８に記憶される。なお、画像メモリ５は、メモリ制御回路２２によって制御される。
【００２２】
角速度センサ１１、１２は、カメラの角速度を検出するために設けられている。一方の角速度センサ１１はカメラのパン方向の角速度を、他方の角速度センサ１２はカメラのチルト方向の角速度をそれぞれ検出する。
【００２３】
各角速度センサ１１、１２の出力信号は、それぞれアンプ１３、１４によって増幅された後、Ａ／Ｄ変換器１５、１６によってデジタルデータに変換される。Ａ／Ｄ変換器１５、１６によって得られた角速度データは、センサデータメモリ１７を介してマイコン２０に入力される。動きベクトル検出回路９は、マイコン２０によって指定された２枚の画面表示用スルー画像（動画フレーム）に基づいて、２つの動画フレーム間の動きベクトルを検出する。動きベクトル検出回路９によって検出された動きベクトルは、マイコン２０に入力される。
【００２４】
マイコン２０は、動きベクトル検出回路９、メモリ制御回路２２、手ぶれ補正処理回路２３等を制御する。マイコン２０には、そのプログラムや必要なデータを記憶するプログラム＆データメモリ２１が接続されている。また、マイコン２０には、操作部１９から操作信号が入力される。
【００２５】
〔２〕手ぶれ補正処理回路の構成
図２は、手ぶれ補正処理回路２３の構成を示している。
【００２６】
手ぶれ補正処理回路２３は、画像復元フィルタ計算部３０、画像復元処理部４０およびリンギング除去処理部５０を備えている。
【００２７】
画像復元フィルタ計算部３０は、パン方向の角速度データおよびチルト方向の角速度データと、動きベクトル検出回路９によって検出された動きベクトルとに基づいて、画像復元フィルタ（一般逆フィルタ）の係数を算出する。画像復元処理部４０は、画像復元フィルタ計算部３０によって算出されたフィルタ係数に基づいて、撮像画像（手ぶれ画像）に対して画像復元処理を行う。リンギング除去処理部５０は、画像復元処理部４０によって得られた復元画像からリンギングを除去する。
【００２８】
〔３〕画像復元フィルタ計算部３０の説明
画像復元フィルタ計算部３０は、角速度センサ１１、１２によって検出された角速度データ（手ぶれ信号）を動きベクトルに変換する手ぶれ信号／動きベクトル変換処理部３１、手ぶれ信号／動きベクトル変換処理部３１によって得られた動きベクトルを、動きベクトル検出回路９によって検出された動きベクトルに基づいて補正する動きベクトル補正部３２、動きベクトル補正部３２によって補正された動きベクトルを、画像のボケを表す手ぶれ関数（ＰＳＦ：Point Spread Function)に変換する動きベクトル／手ぶれ関数変換処理部３３、ならびに動きベクトル／手ぶれ関数変換処理部３３よって得られた手ぶれ関数（ＰＳＦ）を一般逆フィルタ（画像復元フィルタ）に変換する手ぶれ関数／一般逆フィルタ変換処理部３４を備えている。
【００２９】
〔３−１〕手ぶれ信号／動きベクトル変換処理部３１についての説明
手ぶれの元データは、静止画の撮影開始から撮影終了までの間の角速度センサ１１、１２の出力データである。角速度センサ１１、１２を用いてカメラの露光時期と同期させることで、撮影開始と共に所定のサンプリング間隔ｄｔ[sec] でパン方向およびチルト方向の角速度を計測し、撮影終了までのデータを得る。サンプリング間隔ｄｔ[sec] は、たとえば、１ｍｓｅｃである。  
【００３０】
図３に示すように、例えば、カメラのパン方向の角速度θ’[deg/sec] は、角速度センサ１１によって電圧Ｖg [mV]に変換された後、アンプ１３によって増幅される。アンプ１３から出力される電圧Ｖa [mV] はＡ／Ｄ変換器１５によってデジタル値ＤL [step]に変換される。デジタル値として得られたデータを角速度に変換するには、センサ感度Ｒ[mV/deg/sec]、アンプ倍率Ｋ[ 倍] 、Ａ／Ｄ変換係数Ｌ[mV/step] を用いて計算する。
【００３１】
角速度センサ１１によって得られる電圧値Ｖg [mV]は、角速度θ’[deg/sec] の値と比例する。このときの比例定数はセンサ感度であるので、Ｖg [mV]は、次式（１）で表される。
【００３２】
Ｖg ＝Ｒθ’…（１）
【００３３】
また、アンプ１３は電圧値を増幅するだけなので、増幅された電圧Ｖa [mV] は、次式（２）で表される。
【００３４】
Ｖa ＝ＫＶg …（２）
【００３５】
アンプ１３で増幅された電圧値Ｖa [mV] はＡ／Ｄ変換され、ｊ[step]（例えば、−５１２〜５１２）のデジタル値ＤL [step]を使って表現される。Ａ／Ｄ変換係数をＬ[mV/step] とすると、デジタル値ＤL [step]は、次式（３）で表される。
【００３６】
ＤL ＝Ｖa ／Ｌ…（３）
【００３７】
上記式（１）〜（３）を用いることで、次式（４）に示すように、センサデータから角速度を求めることができる。
【００３８】
θ’＝（Ｌ／ＫＲ）ＤL …（４）
【００３９】
撮影中の角速度データから、撮影された画像上でどれだけのぶれが生じたかを計算することができる。この画像上でのみかけの動きを動きベクトル（手ぶれ情報）と呼ぶ。
【００４０】
角速度データの１つのサンプル値から次のサンプル値までにカメラに生じた回転量をθ[deg] とする。この間、角速度一定でカメラが回転すると仮定し、サンプリング周波数をf ＝１／ｄｔ[Hz]とすると、θ[deg] は次式（５）で表される。
【００４１】
θ＝θ’／ｆ＝（Ｌ／ＫＲｆ）ＤL …（５）
【００４２】
図４に示すように、ｒ[mm]を焦点距離（３５[mm]フィルム換算）とすると、カメラの回転量θ[deg] から画面上の移動量ｄ[mm]が次式（６）により求められる。
【００４３】
ｄ＝ｒｔａｎθ…（６）
【００４４】
ここで求められた移動量ｄ[mm]は、３５[mm]フィルム換算時の手ぶれの大きさで、単位は[mm]である。実際に計算処理するときには、画像の大きさをデジタルカメラの画像の大きさの単位[pixel] で考えなければならない。
【００４５】
３５[mm]フィルム換算の画像と、デジタルカメラで撮影した[pixel] 単位の画像は縦横比も異なるので、次のように計算を行う。図５に示すように、３５[mm]フィルム換算時は画像サイズの横×縦が３６[mm]×２４[mm]と決まっている。デジタルカメラで撮影した画像の大きさをＸ[pixel] ×Ｙ[pixel] とし、水平方向（パン方向）のぶれをＳｘ[pixel] 、垂直方向（チルト方向）のぶれをＳｙ[pixel] とすると、変換式は次式（７）、（８）となる。
【００４６】
Ｓｘ＝ｄx （Ｘ／３６）＝ｒｔａｎθx （Ｘ／３６）…（７）
Ｓｙ＝ｄy （Ｙ／２４）＝ｒｔａｎθy （Ｙ／２４）…（８）
【００４７】
上記式（７）、（８）には、ｄとθに添字のｘとｙが使用されているが、添字ｘは水平方向の値であることを、添字ｙは垂直方向の値であることを示している。
【００４８】
上記式（１）〜（８）をまとめると、水平方向（パン方向）のぶれＳｘ[pixel] 、垂直方向（チルト方向）のぶれＳｙ[pixel] は、次式（９）、（１０）で表される。
【００４９】
Ｓｘ＝ｒｔａｎ｛（Ｌ／ＫＲｆ）ＤLx｝Ｘ／３６…（９）
Ｓｙ＝ｒｔａｎ｛（Ｌ／ＫＲｆ）ＤLy｝Ｙ／２４…（１０）
【００５０】
この変換式（９）、（１０）を用いることで、デジタル値として得られたカメラの各軸の角速度データから画像のぶれ量（手ぶれ量）を表す動きベクトル（Ｓn （Ｓｘn ，Ｓｙn ））（ただし、ｎ＝１，２，…Ｎ）を求めることができる。撮影中の動きベクトルは、センサから得られた角速度のデータの数だけ（サンプル点の数Ｎだけ）得ることができ、それらの始点と終点を順番に結んでいくと、画像上での手ぶれの軌跡になる。また、各ベクトルの大きさを見ることで、その時点での手ぶれの速度がわかる。
【００５１】
〔３−２〕動きベクトル補正部３２について
角速度センサ１１、１２のセンサ出力に基づいて、静止画撮影中の動きベクトルＳn を算出した場合、センサのドリフト成分による検出誤差が発生するという問題がある。また、角速度センサを用いた場合、センサでは検出できないぶれ（例えば、平行移動）が含まれると、実際の画像上のぶれ量を正確に検出できないという問題がある。
【００５２】
そこで、動きベクトル補正部３２は、手ぶれ信号／動きベクトル変換処理部３１によって得られた動きベクトルＳn （Ｓｘn ，Ｓｙn ）を補正する。補正方法としては、第１方法と第２方法とがある。
【００５３】
〔３−２−１〕第１方法についての説明
上述したように、手ぶれ信号／動きベクトル変換処理部３１は、図６に示すように、静止画撮影の露光期間Ｔ１中での角速度センサ１１、１２のセンサ出力に基づいて、静止画撮影中（静止画撮影の露光期間中）の動きベクトルＳn （Ｓｘn ，Ｓｙn ）を単位時間ｄｔ（サンプリング間隔）毎に算出している。静止画撮影中の動きベクトルＳn （Ｓｘn ，Ｓｙn ）は、センサから得られた角速度のデータの数だけ（サンプル点の数Ｎだけ）得ることができる。
【００５４】
一方、マイコン２０は、図６に示すように、静止画撮影の露光期間の直前の動画フレームＦ１と静止画撮影の露光期間の直後の動画フレームＦ２とを動きベクトル検出回路９に与えて、それらの動画フレーム間の動きベクトルＩ（Ｉｘ，Ｉｙ）を算出させる。これらの動画フレームＦ１，Ｆ２としては、画面表示用スルー画像が用いられる。動きベクトル検出回路９によって算出された動画フレーム間の動きベクトルＩ（Ｉｘ，Ｉｙ）は、動きベクトル補正部３２に与えられる。なお、静止画撮影の露光期間の直前の動画フレームＦ１が撮像されてから、静止画撮影の露光期間の直後の動画フレームＦ２が撮像されるまでの期間をＴ２とする。
【００５５】
動きベクトル補正部３２は、手ぶれ信号／動きベクトル変換処理部３１によって算出された静止画撮影中の動きベクトルＳn （Ｓｘn ，Ｓｙn ）と、動きベクトル検出回路９によって算出された動画フレーム間の動きベクトルＩ（Ｉｘ，Ｉｙ）とに基づいて、手ぶれ信号／動きベクトル変換処理部３１によって算出された静止画撮影中の動きベクトルＳn （Ｓｘn ，Ｓｙn ）を補正する。
【００５６】
図７は、動きベクトル補正部３２による動きベクトル補正処理の手順を示している。
まず、静止画撮影中の動きベクトルＳn （Ｓｘn ，Ｓｙn ）を合成することにより、静止画撮影の露光期間に対する手ぶれ情報Ｑ（Ｑｘ，Ｑｙ）を求める（ステップＳ１）。動きベクトルＱ（Ｑｘ，Ｑｙ）は、次式（１１）で表される。
【００５７】
【数１】
0004740008.tif 000002
【００５８】
次に、静止画撮影の露光時間Ｔ１と、静止画撮影の露光期間の直前の動画フレームＦ１が入力されてから、静止画撮影の露光期間の直後の動画フレームＦ２が入力されるまでの期間Ｔ２とに基づいて、動きベクトル検出回路９によって算出された動画フレーム間の動きベクトルＩ（Ｉｘ，Ｉｙ）を露光期間Ｔ１に対応する動きベクトルＩ’（Ｉ’ｘ，Ｉ’ｙ）に補正する（ステップＳ２）。
【００５９】
具体的には、次式（１２）に基づいて、動画フレーム間の動きベクトルＩ（Ｉｘ，Ｉｙ）を補正する。
【００６０】
Ｉ’ｘ＝Ｉｘ×（Ｔ１／Ｔ２）
Ｉ’ｙ＝Ｉｙ×（Ｔ１／Ｔ２）      …（１２）
【００６１】
次に、ステップＳ１で算出された手ぶれ情報Ｑ（Ｑｘ，Ｑｙ）と、ステップＳ２によって補正された動画フレーム間の動きベクトルＩ’（Ｉ’ｘ，Ｉ’ｙ）とに基づいて、補正値Ｃ（Ｃｘ，Ｃｙ）を算出する（ステップＳ３）。具体的には、次式（１３）により、補正値Ｃ（Ｃｘ，Ｃｙ）を算出する。
【００６２】
Ｃｘ＝Ｑｘ−Ｉ’ｘ
Ｃｙ＝Ｑｙ−Ｉ’ｙ      …（１３）
【００６３】
補正値Ｃ（Ｃｘ，Ｃｙ）を静止画撮影中に得られた動きベクトルＳn （Ｓｘn ，Ｓｙn ）の数（サンプル数）Ｎで除算した値が、単位時間当たりの補正値（サンプリング毎の補正値）となる。
【００６４】
次に、補正値Ｃ（Ｃｘ，Ｃｙ）と、静止画撮影中に得られた動きベクトルＳn （Ｓｘn ，Ｓｙn ）の数（サンプル数）Ｎとに基づいて、各動きベクトルＳn （Ｓｘn ，Ｓｙn ）を補正する（ステップＳ４）。各動きベクトルＳn （Ｓｘn ，Ｓｙn ）に対する補正後の動きベクトルをＳ’n （Ｓ’ｘn ，Ｓ’ｙn ）とすると、具体的には、次式（１４）により、補正後の動きベクトルをＳ’n （Ｓ’ｘn ，Ｓ’ｙn ）を算出する。
【００６５】
Ｓ’ｘn ＝Ｓｘn −Ｃｘ／Ｎ
Ｓ’ｙn ＝Ｓｙn −Ｃｙ／Ｎ      …（１４）
【００６６】
つまり、第１方法では、センサ出力から算出された露光期間に対する手ぶれ情報Ｑ（Ｑｘ，Ｑｙ）と、ステップＳ２によって補正された動画フレーム間の動きベクトルＩ’（Ｉ’ｘ，Ｉ’ｙ）とが等しくなるように、センサ出力から算出された動きベクトルＳn （Ｓｘn ，Ｓｙn ）が補正されている。
【００６７】
なお、上記ステップＳ２を省略してもよい。この場合には、上記式（１３）中のＩ’（Ｉ’ｘ，Ｉ’ｙ）として、動きベクトル検出回路９によって算出された動画フレーム間の動きベクトルＩ（Ｉｘ，Ｉｙ）がそのまま用いられる。
【００６８】
また、上記ステップＳ３において、次式（１５）に基づいて補正値Ｃ（Ｃｘ，Ｃｙ）を算出し、上記ステップＳ４において、次式（１６）に基づいて補正後の動きベクトルをＳ’n （Ｓ’ｘn ，Ｓ’ｙn ）を算出してもよい。
【００６９】
Ｃｘ＝Ｉ’ｘ／Ｑｘ
Ｃｙ＝Ｉ’ｙ／Ｑｙ        …（１５）
【００７０】
Ｓ’ｘn ＝Ｓｘn ×Ｃｘ
Ｓ’ｙn ＝Ｓｙn ×Ｃｙ      …（１６）
【００７１】
〔３−２−２〕第２方法についての説明
手ぶれ信号／動きベクトル変換処理部３１は、図８に示すように、静止画撮影の露光期間Ｔ１中での角速度センサ１１、１２のセンサ出力に基づいて、静止画撮影中（静止画撮影の露光期間中）の動きベクトルＳn （Ｓｘn ，Ｓｙn ）を単位時間ｄｔ（サンプリング間隔）毎に算出している。静止画撮影中の動きベクトルＳn （Ｓｘn ，Ｓｙn ）は、センサから得られた角速度のデータの数だけ（サンプル点の数Ｎだけ）得ることができる。
【００７２】
一方、マイコン２０は、図８に示すように、静止画撮影の露光期間の直前の２枚の動画フレームＦ１，Ｆ２を動きベクトル検出回路９に与えて、それらの動画フレーム間の動きベクトルＩprev（Ｉprev＿ｘ，Ｉprev＿ｙ）を算出させる。これらの動画フレームとしては、画面表示用スルー画像が用いられる。動きベクトル検出回路９によって算出された動画像間の動きベクトルＩprev（Ｉprev＿ｘ，Ｉprev＿ｙ）は、動きベクトル補正部３２に与えられる。
【００７３】
さらに、第２方法では、手ぶれ信号／動きベクトル変換処理部３１は、動画フレームＦ１が撮像されてから動画フレームＦ２が撮像されるまでの間においても、角速度センサ１１、１２のセンサ出力をサンプリング間隔ｄｔでサンプリングし、センサ出力に基づいて動きベクトルＳprevm （Ｓprev＿ｘm ，Ｓprev＿ｙm ）（ただし、ｍ＝１，２，…Ｍ）を算出する。
【００７４】
動きベクトル補正部３２は、手ぶれ信号／動きベクトル変換処理部３１によって算出された静止画撮影中の動きベクトルＳn （Ｓｘn ，Ｓｙn ）と、手ぶれ信号／動きベクトル変換処理部３１によって算出された動画フレーム間における動きベクトルＳprevm （Ｓprev＿ｘm ，Ｓprev＿ｙm ）と、動きベクトル検出回路９によって算出された動画フレーム間の動きベクトルＩprev（Ｉprev＿ｘ，Ｉprev＿ｙ）とに基づいて、手ぶれ信号／動きベクトル変換処理部３１によって算出された静止画撮影中の動きベクトルＳn （Ｓｘn ，Ｓｙn ）を補正する。
【００７５】
図９は、動きベクトル補正部３２による動きベクトル補正処理の手順を示している。
【００７６】
まず、角速度センサ１１、１２のセンサ出力に基づいて算出された動画フレーム間における動きベクトルＳprevm （Ｓprev＿ｘm ，Ｓprev＿ｙm ）を合成することにより、動画フレーム間全体に対する手ぶれ情報Ｑprev（Ｑprev＿ｘ  ，Ｑprev＿ｙ）を算出する（ステップＳ１１）。Ｑprev（Ｑprev＿ｘ  ，Ｑprev＿ｙ）は、次式（１７）で表される。
【００７７】
【数２】
0004740008.tif 000003
【００７８】
次に、ステップＳ１１で算出された手ぶれ情報Ｑprev（Ｑprev＿ｘ  ，Ｑprev＿ｙ）と、動きベクトル検出回路９によって算出された動画フレーム間の動きベクトルＩprev（Ｉprev＿ｘ，Ｉprev＿ｙ）とに基づいて、補正値Ｃ（Ｃｘ，Ｃｙ）を算出する（ステップＳ１２）。具体的には、次式（１８）により、補正値Ｃ（Ｃｘ，Ｃｙ）を算出する。
【００７９】
Ｃｘ＝Ｑprev＿ｘ−Ｉprev＿ｘ
Ｃｙ＝Ｑprev＿ｙ−Ｉprev＿ｙ      …（１８）
【００８０】
補正値Ｃ（Ｃｘ，Ｃｙ）を動画フレーム間に得られたＳprevm （Ｓprev＿ｘm ，Ｓprev＿ｙm ）の数（サンプル数）Ｍで除算した値が、単位時間当たりの補正値となる。
【００８１】
次に、補正値Ｃ（Ｃｘ，Ｃｙ）と、動画フレーム間に得られた動きベクトルＳprevm （Ｓprev＿ｘm ，Ｓprev＿ｙm ）の数（サンプル数）Ｍとに基づいて、各動きベクトルＳn （Ｓｘn ，Ｓｙn ）を補正する（ステップＳ１３）。各動きベクトルＳn （Ｓｘn ，Ｓｙn ）に対する補正後の動きベクトルをＳ’n （Ｓ’ｘn ，Ｓ’ｙn ）とすると、具体的には、次式（１９）により、補正後の動きベクトルをＳ’n （Ｓ’ｘn ，Ｓ’ｙn ）を算出する。
【００８２】
Ｓ’ｘn ＝Ｓｘn −Ｃｘ／Ｍ
Ｓ’ｙn ＝Ｓｙn −Ｃｙ／Ｍ      …（１９）
【００８３】
つまり、第２方法では、センサ出力から算出された動画フレーム間の手ぶれ情報Ｑprev（Ｑprev＿ｘ  ，Ｑprev＿ｙ）と、動きベクトル検出回路９によって算出された動画フレーム間の動きベクトルＩprev（Ｉprev＿ｘ，Ｉprev＿ｙ）とが等しくなるように、センサ出力から算出された動きベクトルＳn （Ｓｘn ，Ｓｙn ）が補正されている。
【００８４】
なお、動画フレームＦ１，Ｆ２としては、静止画撮影の露光期間の直前の２つの動画フレームが用いられてるが、静止画撮影の露光期間の直後の２つの動画フレームを用いてもよい。
【００８５】
また、静止画撮影の露光期間の直前の２つの動画フレームを用いて第１の単位時間当たりの補正値を算出するとともに、静止画撮影の露光期間の直後の２つの動画フレームを用いて第２の単位時間当たりの補正値を算出し、第１の単位時間当たりの補正値と第２の単位時間当たりの平均を単位時間当たりの補正値（上記式（１９）におけるＣｘ／Ｍ，Ｃｙ／Ｍ）として用いてもよい。
【００８６】
また、上記ステップＳ１２において、次式（２０）に基づいて補正値Ｃ（Ｃｘ，Ｃｙ）を算出し、上記ステップＳ１３において、次式（２１）に基づいて補正後の動きベクトルをＳ’n （Ｓ’ｘn ，Ｓ’ｙn ）を算出してもよい。
【００８７】
Ｃｘ＝Ｉprev＿ｘ／Ｑprev＿ｘ
Ｃｙ＝Ｉprev＿ｙ／Ｑprev＿ｙ        …（２０）
【００８８】
Ｓ’ｘn ＝Ｓｘn ×Ｃｘ
Ｓ’ｙn ＝Ｓｙn ×Ｃｙ                …（２１）
【００８９】
上記第１方法および第２方法では、動画フレーム（Ｆ１，Ｆ２等）として、画面表示用スルー画像が用いられているが、これらの動画フレームとして、本補正専用に新たに追加した撮像フレームを用いてもよい。
【００９０】
〔３−３〕動きベクトル／手ぶれ関数変換処理部３３について
手ぶれを空間フィルタを使って表すことができる。図１０の左側の図で示される手ぶれの軌跡（カメラがぶれたときに画像上である一点が描いた軌跡、画像のぶれ量）に合わせて、オペレータの要素に重みを加え空間フィルタ処理を行うと、フィルタリング過程において画素の濃淡値が手ぶれの軌跡に応じた近傍画素の濃淡値のみを考慮するようになるので、手ぶれ画像を作成することができる。
【００９１】
この軌跡に合わせて重み付けしたオペーレータのことをPoint Spread Function(PSF)と呼び、手ぶれの数学モデルとして使用する。ＰＳＦの各要素の重みは、その要素を手ぶれ軌跡が通過する時間に比例した値であって、各要素の重みの総和が１になるように正規化された値となる。すなわち、動きベクトルの大きさの逆数に比例した重みとする。手ぶれが画像に与える影響を考えたとき、遅く動いたところの方が画像に大きな影響を与えているからである。
【００９２】
図１０の中央の図は、手ぶれの動きが等速であると仮定した場合のＰＳＦを表し、図１０の右側の図は、実際の手ぶれの動きの大きさを考慮した場合のＰＳＦを表している。図１０の右側の図においては、ＰＳＦの重みの低い（動きベクトルの大きさが大きい）要素を黒く表示し、重みの高い（動きベクトルの大きさが小さい）要素を白く表示している。      
【００９３】
上記〔３−２〕で得られた動きベクトル（画像のぶれ量）は手ぶれの軌跡と、軌跡の速度をデータとして持つ。
【００９４】
ＰＳＦを作成するには、まず、手ぶれの軌跡からＰＳＦの重みをかける要素を決定する。そして、手ぶれの速度からＰＳＦの要素にかける重みを決定する。
【００９５】
上記〔３−２〕で得られた一連の動きベクトルＳ’n をつなぎ合わせることで折れ線近似された手ぶれの軌跡が得られる。この軌跡は小数点以下の精度を持つが、これを整数化することでＰＳＦにおいて重みをかける要素を決定する。そのために、この実施例では、Bresenham の直線描画アルゴリズムを用いてＰＳＦにおいて重みをかける要素を決定する。Bresenham の直線描画アルゴリズムとは、デジタル画面上で任意の2 点を通る直線を引きたい時に最適なドット位置を選択するアルゴリズムである。
【００９６】
Bresenham の直線描画アルゴリズムを図１１の例を用いて説明する。図１１において矢印のついた直線は動きベクトルを示している。
【００９７】
（ａ）ドット位置の原点（０，０）から出発し、動きベクトルの水平方向の要素を１つ増やす。
（ｂ）動きベクトルの垂直方向の位置を確認し、この垂直方向位置が前のドットの垂直方向位置に比べて１より大きくなった場合にはドット位置の垂直方向を１つ増やす。
（ｃ）再び動きベクトルの水平方向の要素を１つ増やす。
【００９８】
このような処理を動きベクトルの終点まで繰り返すことにより、動きベクトルが通る直線をドット位置で表現することができる。                                                
【００９９】
ＰＳＦの要素にかける重みは、動きベトクル毎にベクトルの大きさ（速度成分）が異なることを利用して決定する。重みは動きベクトルの大きさの逆数をとり、各動きベクトルに対応する要素に重みを代入する。ただし、各要素の重みの総和が１になるように、各要素の重みを正規化する。図１２に図１１の動きベクトルにより得られるＰＳＦを示す。速度の速いところ（動きベクトルの長いところ）は重みが小さくなり、速度の遅いところ（動きベクトルの短いところ）は重みが大きくなる。
【０１００】
〔３−４〕手ぶれ関数／一般逆フィルタ変換処理部３４について
【０１０１】
画像は水平方向にＮx 画素、垂直方向にＮy 画素の解像度でデジタル化されているものとする。水平方向にｉ番目、垂直方向にｊ番目の位置にある画素の値をｐ（ｉ，ｊ）で表す。空間フィルタによる画像の変換とは、注目画素の近傍画素の畳み込みによって変換をモデル化するものである。畳み込みの係数をｈ（ｌ，ｍ）とする。ここで、簡単のため、−ｎ＜ｌ，ｍ＜ｎとすると、注目画素の変換は次式（２２）によって表現することができる。また、ｈ（ｌ，ｍ）自身を空間フィルタと呼んだり、フィルタ係数と呼んだりする。変換の性質はｈ（ｌ，ｍ）の係数値によって決まる。
【０１０２】
【数３】
0004740008.tif 000004
【０１０３】
デジタルカメラなどの撮像装置で点光源を観察した場合、画像の形成過程に劣化がないと仮定すれば、画像上に観察される像は、ある一点だけが０以外の画素値を持ち、それ以外の画素値は０となる。実際の撮像装置は劣化過程を含むので、点光源を観察しても、その像は一点にならず、広がった像になる。手ぶれが発生した場合、点光源は手ぶれに応じた軌跡を画面上に生成する。
【０１０４】
点光源に対する観察画像の画素値に比例した値を係数として持ち、係数値の総和が１になる空間フィルタをPoint Spread Function(PSF 、点広がり関数 )と呼ぶ。この実施例では、ＰＳＦとして動きベクトル／手ぶれ関数変換処理部３３によって得られたＰＳＦを用いる。
【０１０５】
ＰＳＦを縦横（２ｎ＋１）×（２ｎ＋１）の空間フィルタｈ（ｌ，ｍ）、−ｎ＜ｌ，ｍ＜ｎでモデル化するとき、各画素について、ボケの無い画像の画素値ｐ（ｉ，ｊ）とボケのある画像の画素値ｐ’（ｉ，ｊ）とは、上記式（２２）の関係になる。ここで、実際に観察できるのは、ボケた画像の画素値ｐ’（ｉ，ｊ）であり、ボケの無い画像の画素値ｐ（ｉ，ｊ）は何らかの方法で計算する必要がある。
【０１０６】
上記式（２２）を全ての画素について書き並べると、次式（２３）に示すようになる。      
【０１０７】
【数４】
0004740008.tif 000005
【０１０８】
これらの式をまとめて行列表現することが可能であり、次式（２４）となる。ここで、Ｐは元画像をラスター走査順に一元化したものである。
【０１０９】
Ｐ’＝Ｈ×Ｐ    …（２４）
【０１１０】
Ｈの逆行列Ｈ-1が存在すれば、Ｐ＝Ｈ-1×Ｐを計算することによって、劣化した画像Ｐ’から劣化の無い画像Ｐを求めることが可能であるが、一般にはＨの逆行列は存在しない。逆行列が存在しない行列に対して、一般逆行列ないしは擬似逆行列と呼ばれるものが存在する。次式（２５）に一般逆行列の例を示す。                                          
【０１１１】
Ｈ* ＝（Ｈt ・Ｈ＋γ・Ｉ）-1・Ｈt   …（２５）
【０１１２】
ここでＨ* はＨの一般逆行列、Ｈt はＨの転置行列、γはスカラー、ＩはＨt ・Ｈと同じサイズの単位行列である。Ｈ* を用いて次式（２６）を計算することで、観察された手ぶれ画像Ｐ’から手ぶれが補正された画像Ｐを得ることができる。γは補正の強さを調整するパラメータである。γが小さければ強い補正処理となり、γが大きければ弱い補正処理となる。
【０１１３】
Ｐ’＝Ｈ* ×Ｐ    …（２６）
【０１１４】
画像サイズを６４０×４８０とした場合、上記式（２６）のＰは３０７，２００×１の行列、Ｈ* は３０７，２００×３０７，２００の行列となる。このような非常に大きな行列となるため、上記式（２５）、（２６）を直接用いることは実用的ではない。そこで、次のような方法で計算に用いる行列のサイズを小さくする。
【０１１５】
まず、上記式（２６）において、Ｐの元になる画像のサイズを６３×６３など、比較小さなサイズにする。６３×６３の画像であれば、Ｐは３９６９×１の行列、Ｈ* は３９６９×３９６９の行列となる。Ｈ* はボケ画像全体を補正された画像全体に変換する行列であり、Ｈ* の各行とＰの積は各画素の補正を行う演算に相当する。Ｈ* の真ん中の行とＰの積は、６３×６３画素の元画像の、真ん中の画素に対する補正に該当する。Ｐは元画像をラスター走査順に一元化したものであったから、逆に、Ｈ* の真ん中の行を逆ラスター走査により２次元化することで、６３×６３のサイズの空間フィルタを構成することができる。このように構成した空間フィルタを一般逆フィルタと呼ぶ。このようにして作成した実用的なサイズの空間フィルタを、大きな画像全体の各画素に順次適用することで、ボケ画像を補正することが可能となる。
【０１１６】
〔４〕画像復元処理部４０について
【０１１７】
画像復元処理部４０は、図２に示すように、ノイズ除去のためのフィルタ回路４１と、一般逆フィルタを用いて画像復元を行うためのフィルタ回路部４２とを備えている。フィルタ回路４１はメディアンフィルタを用いてフィルタ処理を行う。
【０１１８】
カメラによって撮影された手ぶれ画像は、フィルタ回路４１に送られ、メディアンフィルタを用いたフィルタ処理が行われ、ノイズが除去される。フィルタ回路４１によって得られた画像は、画像復元フィルタ計算部３０によって生成された一般逆フィルタを用いたフィルタ処理が行われ、手ぶれ画像から手ぶれおよびピンボケのない画像が復元される。フィルタ回路４２によって得られた画像v ＿fukugen は、リンギング除去処理部５０内の加重平均処理部５３に送られる。
【０１１９】
〔５〕リンギング除去処理部５０についての説明
【０１２０】
リンギング除去処理部５０は、図２に示すように、エッジ強度算出部５１、加重平均係数算出部５２および加重平均処理部５３を備えている。
【０１２１】
カメラによって撮影された手ぶれ画像v ＿tebre は、エッジ強度算出部５１に送られ、各画素毎にエッジ強度が算出される。エッジ強度の求め方について説明する。
【０１２２】
図１３に示すように、注目画素ｖ２２を中心とする３×３の領域を想定する。注目画素ｖ２２に対して、水平エッジ成分dhと垂直エッジ成分dvを算出する。エッジ成分の算出には、例えば、図１４に示すPrewitt のエッジ抽出オペレータを用いる。図１４（ａ）は水平エッジ抽出オペレータを示し、図１４（ｂ）は垂直エッジ抽出オペレータを示している。
【０１２３】
水平エッジ成分dhおよび垂直エッジ成分dvは、次式（２７）、（２８）によって求められる。
【０１２４】
dh＝v11 ＋v12 ＋v13 −v31 −v32 −v33 …（２７）
dv＝v11 ＋v21 ＋v31 −v13 −v23 −v33 …（２８）
【０１２５】
次に、水平エッジ成分dhおよび垂直エッジ成分dvから、注目画素ｖ２２のエッジ強度v ＿edgeを次式（２９）に基づいて算出する。
【０１２６】
v ＿edge＝sqrt(dh ×dh＋dv×dv）  …（２９）
【０１２７】
なお、注目画素ｖ２２のエッジ強度v ＿edgeとして、abs(dh) ＋abs(dv) を用いてもよい。また、このようにして得られたエッジ強度画像に対してさらに３×３のノイズ除去フィルタをかけてもよい。
【０１２８】
エッジ強度算出部５１によって算出された各画素のエッジ強度v ＿edgeは、加重平均係数算出部５２に与えられる。加重平均係数算出部５２は、次式（３０）に基づいて、各画素の加重平均係数ｋを算出する。
【０１２９】
If  v ＿edge＞ th  then  k＝1 
If  v ＿edge≦ th  then  k＝v ＿edge/th     …（３０）
【０１３０】
th は十分に強いエッジであることを判定するための閾値である。つまり、v ＿edgeと加重平均係数ｋとの関係は、図１５に示すような関係となる。
【０１３１】
加重平均係数算出部５２によって算出された各画素の加重平均係数ｋは、加重平均処理部５３に与えられる。画像復元処理部４０によって得られた復元画像の画素値をv ＿fukugen とし、カメラによって撮像された手ぶれ画像の画素値をv ＿tebre とすると、加重平均処理部５３は、次式（３１）で表される計算を行うことにより、復元画像の画素値v ＿fukugen と手ぶれ画像の画素値v ＿tebre とを加重平均する。
【０１３２】
v ＝k ×v ＿fukugen ＋（１−ｋ）×v ＿tebre     …（３１）
【０１３３】
つまり、エッジ強度v ＿edgeが閾値ｔｈより大きな画素については、その位置に対応する復元画像のリンギングが目立たないので、画像復元処理部４０によって得られた復元画像の画素値v ＿fukugen がそのまま出力される。エッジ強度v ＿edgeが閾値ｔｈ以下の画素については、エッジ強度v ＿edgeが小さいほど、復元画像のリンギングが目立つので、復元画像の度合いを弱くし、手ぶれ画像の度合いを強くする。
【０１３４】
上記実施例では、露光後に手ぶれ補正を行なう方式（フィルタ復元方式）の手ぶれ補正装置について説明したが、露光前の２つの動画フレームを用いて動きベクトルＳn を補正する方法（〔３−２−２〕の第２方法）を採用する場合には、露光前に予め補正値を求めることができるので、露光中にレンズや撮像素子をシフトして補正を行なうような光学式の手ぶれ補正装置にもこの発明を適用することができる。
【図面の簡単な説明】
【０１３５】
【図１】デジタルカメラの構成を示すブロック図である。
【図２】手ぶれ補正処理回路の構成を示すブロック図である。
【図３】角速度センサ１１の出力を増幅するアンプ１３およびアンプ出力をデジタル値に変換するＡ／Ｄ変換器１５を示すブロック図である。
【図４】カメラの回転量θ[deg] と画面上の移動量ｄ[mm]との関係を示す模式図である。
【図５】３５[mm]フィルム換算の画像サイズと、デジタルカメラの画像サイズとを示す模式図である。
【図６】動きベクトル補正部３２による動きベクトル補正方法（第１方法）を説明するための模式図である。
【図７】動きベクトル補正部３２による動きベクトル補正処理手順を示すフローチャートである。
【図８】動きベクトル補正部３２による動きベクトル補正方法（第２方法）を説明するための模式図である。
【図９】動きベクトル補正部３２による動きベクトル補正処理手順を示すフローチャートである。
【図１０】手ぶれを表現する空間フィルタ（ＰＳＦ）を示す模式図である。
【図１１】Bresenham の直線描画アルゴリズムを説明するための模式図である。
【図１２】図１１の動きベクトルにより得られるＰＳＦを示す模式図である。
【図１３】注目画素ｖ２２を中心とする３×３の領域を示す模式図である。
【図１４】Prewitt のエッジ抽出オペレータを示す模式図である。
【図１５】エッジ強度v ＿edgeと加重平均係数ｋとの関係を示すグラフである。
【符号の説明】
【０１３６】
１１、１２  角速度センサ
３０  画像復元フィルタ計算部
４０  画像復元処理部
５０  リンギング除去処理部
３１  手ぶれ信号／動きベクトル変換処理部
３２  動きベクトル補正部
３３  動きベクトル／手ぶれ関数変換処理部
３４  手ぶれ関数／一般逆フィルタ変換処理部
【図１】
0004740008.tif 000006
【図２】
0004740008.tif 000007
【図３】
0004740008.tif 000008
【図４】
0004740008.tif 000009
【図５】
0004740008.tif 000010
【図６】
0004740008.tif 000011
【図７】
0004740008.tif 000012
【図８】
0004740008.tif 000013
【図９】
0004740008.tif 000014
【図１０】
0004740008.tif 000015
【図１１】
0004740008.tif 000016
【図１２】
0004740008.tif 000017
【図１３】
0004740008.tif 000018
【図１４】
0004740008.tif 000019
【図１５】
0004740008.tif 000020