(57)【要約】【課題】  この発明は、一般逆フィルタを用いて画像復元を行う場合に、処理量に対する補正効果の向上化が図れる手ぶれ補正装置を提供することを目的とする。【解決手段】  手ぶれ関数から得られた一般逆フィルタを用いて画像復元を行う手ぶれ補正装置において、手ぶれ量に応じて一般逆フィルタのサイズを制御するフィルタサイズ制御手段を備えている。フィルタサイズ制御手段は、手ぶれ関数から手ぶれ量を算出する算出手段、および算出手段によって算出された手ぶれ量に予め定められた係数を乗算することにより、一般逆フィルタのサイズを決定する手段を備えている。【選択図】  図２
2006279808.tif 000002
【特許請求の範囲】
【請求項１】
手ぶれ関数から得られた一般逆フィルタを用いて画像復元を行う手ぶれ補正装置において、
手ぶれ量に応じて一般逆フィルタのサイズを制御するフィルタサイズ制御手段を備えていることを特徴とする手ぶれ補正装置。
【請求項２】
フィルタサイズ制御手段は、手ぶれ関数から手ぶれ量を算出する算出手段、および算出手段によって算出された手ぶれ量に予め定められた係数を乗算することにより、一般逆フィルタのサイズを決定する手段を備えていることを特徴とする請求項１に記載の手ぶれ補正装置。
【請求項３】
画像復元を行うための複数の代表的なサイズのフィルタ回路、および複数の代表的なサイズのフィルタ回路のうちから、手ぶれ量または手ぶれ量に応じた一般逆フィルタのサイズに応じて、画像復元のために用いられるフィルタ回路を選択して、一般逆フィルタのフィルタ係数を選択したフィルタ回路に設定する手段を備えていることを特徴とする請求項１および２のいずれかに記載の手ぶれ補正装置。
【請求項４】
複数の代表的なサイズのフィルタ回路が、最大手ぶれ量に適したサイズの最大フィルタ回路と、最大フィルタ回路よりサイズが小さい中間フィルタ回路との２種類のフィルタ回路であり、中間フィルタ回路のサイズは、手ぶれ量に応じた最適フィルタサイズが中間フィルタ回路のサイズ以下の場合には中間フィルタ回路を使用し、手ぶれ量に応じた最適フィルタサイズが中間フィルタ回路のサイズより大きい場合には最大フィルタ回路を使用すると仮定した場合に、手ぶれ量が０から最大手ぶれ量までの全範囲において手ぶれ補正効果に寄与しない積和演算回数が最小となるようなサイズに決定されていることを特徴とする請求項３に記載の手ぶれ補正装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、手ぶれ補正装置に関する。
【背景技術】
【０００２】
静止画手ぶれ補正技術は、静止画撮影における手ぶれを軽減する技術であり、手ぶれを検出して、その検出結果に基づいて画像を安定化することで実現される。
【０００３】
手ぶれを検出する方法には、手ぶれセンサ（角速度センサ）を用いる方法と、画像を解析して検出する電子式とがある。画像を安定化させる方法には、レンズや撮像素子を安定化させる光学式と、画像処理により手ぶれによるぼけを除去する電子式とがある。
【０００４】
一方、完全電子式の手ぶれ補正技術、すなわち、撮影された一枚の手ぶれ画像だけを解析・処理することで、手ぶれの除去された画像を生成する技術は、実用レベルに達していない。特に、手ぶれセンサで得られる精度の手ぶれ信号を、一枚の手ぶれ画像を解析することによって求めることは困難である。
【０００５】
したがって、手ぶれセンサを用いて手ぶれを検出し、その手ぶれデータを用いて画像処理により手ぶれぼけを除去することが現実的である。画像処理によるぼけの除去を画像復元と呼ぶ。また、手ぶれセンサと画像復元による手法を、ここでは電子式手ぶれ補正と呼ぶことにする。
【０００６】
電子式手ぶれ補正方法として、手ぶれデータから逆フィルタを生成して画像復元を行う方法がある。この方法では、逆フィルタのフィルタサイズは、画像幅×画像高さとなり、放題な処理時間を要する。そこで、フィルタサイズを小さくした擬似フィルタ（一般逆フィルタ）を用いる方法が提案されている。擬似フィルタのサイズは、例えば、６３×６３のように固定されている。
【０００７】
ところが、復元効果を評価したところ、擬似フィルタのフィルタ要素の貢献度が手ぶれ量により異なることが判明した。具体的には、手ぶれ量が小さい場合には、フィルタ要素のうち周辺部のフィルタ要素の貢献度は微小になることが判明した。したがって、従来手法では、手ぶれ量が小さい場合には、処理量に対する補正効果が低くなっている。
【特許文献１】特開平１１−２８４９４４号公報
【特許文献２】特開２００４−８８５６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
この発明は、一般逆フィルタを用いて画像復元を行う場合に、処理量に対する補正効果の向上化が図れる手ぶれ補正装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
請求項１に記載の発明は、手ぶれ関数から得られた一般逆フィルタを用いて画像復元を行う手ぶれ補正装置において、手ぶれ量に応じて一般逆フィルタのサイズを制御するフィルタサイズ制御手段を備えていることを特徴とする。
【００１０】
請求項２に記載の発明は、請求項１に記載の発明において、フィルタサイズ制御手段は、手ぶれ関数から手ぶれ量を算出する算出手段、および算出手段によって算出された手ぶれ量に予め定められた係数を乗算することにより、一般逆フィルタのサイズを決定する手段を備えていることを特徴とする。
【００１１】
請求項３に記載の発明は、請求項１乃至２に記載の発明において、画像復元を行うための複数の代表的なサイズのフィルタ回路、および複数の代表的なサイズのフィルタ回路のうちから、手ぶれ量または手ぶれ量に応じた一般逆フィルタのサイズに応じて、画像復元のために用いられるフィルタ回路を選択して、一般逆フィルタのフィルタ係数を選択したフィルタ回路に設定する手段を備えていることを特徴とする。
【００１２】
請求項４に記載の発明は、請求項３に記載の発明において、複数の代表的なサイズのフィルタ回路が、最大手ぶれ量に適したサイズの最大フィルタ回路と、最大フィルタ回路よりサイズが小さい中間フィルタ回路との２種類のフィルタ回路であり、中間フィルタ回路のサイズは、手ぶれ量に応じた最適フィルタサイズが中間フィルタ回路のサイズ以下の場合には中間フィルタ回路を使用し、手ぶれ量に応じた最適フィルタサイズが中間フィルタ回路のサイズより大きい場合には最大フィルタ回路を使用すると仮定した場合に、手ぶれ量が０から最大手ぶれ量までの全範囲において手ぶれ補正効果に寄与しない積和演算回数が最小となるようなサイズに決定されていることを特徴とする。
【発明の効果】
【００１３】
この発明によれば、一般逆フィルタを用いて画像復元を行う場合に、処理量に対する補正効果の向上化が図れるようになる。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照して、この発明をデジタルカメラに適用した場合の実施例について説明する。
【実施例１】
【００１５】
〔１〕デジタルカメラの構成
【００１６】
図１は、デジタルカメラの構成を示している。
【００１７】
ＣＣＤ２は、レンズ１を通して入射した光学像を光電変換し、電気信号として出力する。ＣＣＤ２の出力信号は、Ａ／Ｄ変換器３によってデジタル信号に変換される。Ａ／Ｄ変換器３の出力データは、画像処理回路４によって所定の画像処理が施された後、画像メモリ５に格納される。画像メモリ５に格納された画像データは、手ぶれ補正回路２３によって手ぶれ補正が行われた後、モニタ７に表示されたり、メモリカード８に記憶されたりする。なお、画像メモリ５は、メモリ制御回路２２によって制御される。
【００１８】
角速度センサ１１、１２は、カメラの角速度を検出するために設けられている。一方の角速度センサ１１はカメラのパン方向の角速度を、他方の角速度センサ１２はカメラのチルト方向の角速度をそれぞれ検出する。
【００１９】
各角速度センサ１１、１２の出力信号は、それぞれアンプ１３、１４によって増幅された後、Ａ／Ｄ変換器１５、１６によってデジタルデータに変換される。Ａ／Ｄ変換器１５、１６によって得られた角速度データは、センサデータメモリ１７を介してマイコン２０に入力される。
【００２０】
マイコン２０は、合焦制御回路（オートフォーカス制御回路）１８、メモリ制御回路２２、手ぶれ補正回路２３等を制御する。マイコン２０には、そのプログラムや必要なデータを記憶するプログラム＆データメモリ２１が接続されている。また、マイコン２０には、操作部１９から操作信号が入力される。
【００２１】
〔２〕手ぶれ補正処理回路の構成
【００２２】
図２は、手ぶれ補正処理回路２３の構成を示している。
【００２３】
手ぶれ補正処理回路２３は、画像復元フィルタ計算部３０、画像復元処理部４０、リンギング除去処理部５０およびアンシャープマスキング処理部６０を備えている。
【００２４】
画像復元フィルタ計算部３０は、パン方向の角速度データおよびチルト方向の角速度データに基づいて、画像復元フィルタ（一般逆フィルタ）の係数を算出する。画像復元処理部４０は、画像復元フィルタ計算部３０によって算出された係数に基づいて、撮像画像（手ぶれ画像）に対して画像復元処理を行う。リンギング除去処理部５０は、画像復元処理部４０によって得られた復元画像からリンギングを除去する。アンシャープマスキング処理部６０は、リンギング除去処理部５０によって得られた画像に対してエッジ強調処理を行う。
【００２５】
〔３〕画像復元フィルタ計算部３０の説明
【００２６】
画像復元フィルタ計算部３０は、角速度センサ１１、１２によって検出された角速度データ（手ぶれ信号）を動きベクトルに変換する手ぶれ信号／動きベクトル変換処理部３１、手ぶれ信号／動きベクトル変換処理部３１によって得られた動きベクトルを、画像のボケを表す手ぶれ関数（ＰＳＦ：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｝Ｙ／２４…（１０）
【００４９】
この変換式（９）、（１０）を用いることで、デジタル値として得られたカメラの各軸の角速度データから画像のぶれ量（動きベクトル）を求めることができる。
【００５０】
撮影中の動きベクトルは、センサから得られた角速度のデータの数だけ（サンプル点の数だけ）得ることができ、それらの始点と終点を順番に結んでいくと、画像上での手ぶれの軌跡になる。また、各ベクトルの大きさを見ることで、その時点での手ぶれの速度がわかる。
【００５１】
〔３−２〕動きベクトル／手ぶれ関数変換処理部３２について
手ぶれを空間フィルタを使って表すことができる。図６の左側の図で示される手ぶれの軌跡（カメラがぶれたときに画像上である一点が描いた軌跡、画像のぶれ量）に合わせて、オペレータの要素に重みを加え空間フィルタ処理を行うと、フィルタリング過程において画素の濃淡値が手ぶれの軌跡に応じた近傍画素の濃淡値のみを考慮するようになるので、手ぶれ画像を作成することができる。
【００５２】
この軌跡に合わせて重み付けしたオペーレータのことをPoint Spread Function(PSF)と呼び、手ぶれの数学モデルとして使用する。ＰＳＦの各要素の重みは、その要素を手ぶれ軌跡が通過する時間に比例した値であって、各要素の重みの総和が１になるように正規化された値となる。すなわち、動きベクトルの大きさの逆数に比例した重みとする。手ぶれが画像に与える影響を考えたとき、遅く動いたところの方が画像に大きな影響を与えているからである。
【００５３】
図６の中央の図は、手ぶれの動きが等速であると仮定した場合のＰＳＦを表し、図６の右側の図は、実際の手ぶれの動きの大きさを考慮した場合のＰＳＦを表している。図６の右側の図においては、ＰＳＦの重みの低い（動きベクトルの大きさが大きい）要素を黒く表示し、重みの高い（動きベクトルの大きさが小さい）要素を白く表示している。
【００５４】
上記〔３−１〕で得られた動きベクトル（画像のぶれ量）は手ぶれの軌跡と、軌跡の速度をデータとして持つ。
【００５５】
ＰＳＦを作成するには、まず、手ぶれの軌跡からＰＳＦの重みをかける要素を決定する。そして、手ぶれの速度からＰＳＦの要素にかける重みを決定する。
【００５６】
上記〔３−１〕で得られた一連の動きベクトルをつなぎ合わせることで折れ線近似された手ぶれの軌跡が得られる。この軌跡は小数点以下の精度を持つが、これを整数化することでＰＳＦにおいて重みをかける要素を決定する。そのために、この実施例では、Bresenham の直線描画アルゴリズムを用いてＰＳＦにおいて重みをかける要素を決定する。Bresenham の直線描画アルゴリズムとは、デジタル画面上で任意の2 点を通る直線を引きたい時に最適なドット位置を選択するアルゴリズムである。                                    
【００５７】
Bresenham の直線描画アルゴリズムを図７の例を用いて説明する。図７において矢印のついた直線は動きベクトルを示している。
【００５８】
（ａ）ドット位置の原点（０，０）から出発し、動きベクトルの水平方向の要素を１つ増やす。
（ｂ）動きベクトルの垂直方向の位置を確認し、この垂直方向位置が前のドットの垂直方向位置に比べて１より大きくなった場合にはドット位置の垂直方向を１つ増やす。
（ｃ）再び動きベクトルの水平方向の要素を１つ増やす。
【００５９】
このような処理を動きベクトルの終点まで繰り返すことにより、動きベクトルが通る直線をドット位置で表現することができる。                                                
【００６０】
ＰＳＦの要素にかける重みは、動きベトクル毎にベクトルの大きさ（速度成分）が異なることを利用して決定する。重みは動きベクトルの大きさの逆数をとり、各動きベクトルに対応する要素に重みを代入する。ただし、各要素の重みの総和が１になるように、各要素の重みを正規化する。図８に図７の動きベクトルにより得られるＰＳＦを示す。速度の速いところ（動きベクトルの長いところ）は重みが小さくなり、速度の遅いところ（動きベクトルの短いところ）は重みが大きくなる。
【００６１】
〔３−３〕手ぶれ関数／一般逆フィルタ変換処理部３３について
【００６２】
〔３−３−１〕  画像は水平方向にＮx 画素、垂直方向にＮy 画素の解像度でデジタル化されているものとする。水平方向にｉ番目、垂直方向にｊ番目の位置にある画素の値をｐ（ｉ，ｊ）で表す。空間フィルタによる画像の変換とは、注目画素の近傍画素の畳み込みによって変換をモデル化するものである。畳み込みの係数をｈ（ｌ，ｍ）とする。ここで、簡単のため、−ｎ＜ｌ，ｍ＜ｎとすると、注目画素の変換は次式（１１）によって表現することができる。また、ｈ（ｌ，ｍ）自身を空間フィルタと呼んだり、フィルタ係数と呼んだりする。変換の性質はｈ（ｌ，ｍ）の係数値によって決まる。
【００６３】
【数１】
2006279808.tif 000003
【００６４】
デジタルカメラなどの撮像装置で点光源を観察した場合、画像の形成過程に劣化がないと仮定すれば、画像上に観察される像は、ある一点だけが０以外の画素値を持ち、それ以外の画素値は０となる。実際の撮像装置は劣化過程を含むので、点光源を観察しても、その像は一点にならず、広がった像になる。手ぶれが発生した場合、点光源は手ぶれに応じた軌跡を画面上に生成する。
【００６５】
点光源に対する観察画像の画素値に比例した値を係数として持ち、係数値の総和が１になる空間フィルタをPoint Spread Function(PSF 、点広がり関数 )と呼ぶ。この実施例では、ＰＳＦとして動きベクトル／手ぶれ関数変換処理部３２によって得られたＰＳＦを用いる。
【００６６】
ＰＳＦを縦横（２ｎ＋１）×（２ｎ＋１）の空間フィルタｈ（ｌ，ｍ）、−ｎ＜ｌ，ｍ＜ｎでモデル化するとき、各画素について、ボケの無い画像の画素値ｐ（ｉ，ｊ）とボケのある画像の画素値ｐ’（ｉ，ｊ）とは、上記式（１１）の関係になる。ここで、実際に観察できるのは、ボケた画像の画素値ｐ’（ｉ，ｊ）であり、ボケの無い画像の画素値ｐ（ｉ，ｊ）は何らかの方法で計算する必要がある。
【００６７】
上記式（１１）を全ての画素について書き並べると、次式（１２）に示すようになる。      
【００６８】
【数２】
2006279808.tif 000004
【００６９】
これらの式をまとめて行列表現することが可能であり、次式（１３）となる。ここで、Ｐは元画像をラスター走査順に一元化したものである。
【００７０】
Ｐ’＝Ｈ×Ｐ    …（１３）
【００７１】
Ｈの逆行列Ｈ-1が存在すれば、Ｐ＝Ｈ-1×Ｐを計算することによって、劣化した画像Ｐ’から劣化の無い画像Ｐを求めることが可能であるが、一般にはＨの逆行列は存在しない。逆行列が存在しない行列に対して、一般逆行列ないしは擬似逆行列と呼ばれるものが存在する。次式（１４）に一般逆行列の例を示す。                                          
【００７２】
Ｈ* ＝（Ｈt ・Ｈ＋γ・Ｉ）-1・Ｈt   …（１４）
【００７３】
ここでＨ* はＨの一般逆行列、Ｈt はＨの転置行列、γはスカラー、ＩはＨt ・Ｈと同じサイズの単位行列である。Ｈ* を用いて次式（１５）を計算することで、観察された手ぶれ画像Ｐ’から手ぶれが補正された画像Ｐを得ることができる。γは補正の強さを調整するパラメータである。γが小さければ強い補正処理となり、γが大きければ弱い補正処理となる。
【００７４】
Ｐ’＝Ｈ* ×Ｐ    …（１５）
【００７５】
画像サイズを６４０×４８０とした場合、上記式（１５）のＰは３０７，２００×１の行列、Ｈ* は３０７，２００×３０７，２００の行列となる。このような非常に大きな行列となるため、上記式（１４）、（１５）を直接用いることは実用的ではない。そこで、次のような方法で計算に用いる行列のサイズを小さくすることが可能である。
【００７６】
まず、上記式（１５）において、Ｐの元になる画像のサイズを６３×６３など、比較小さなサイズにする。６３×６３の画像であれば、Ｐは３９６９×１の行列、Ｈ* は３９６９×３９６９の行列となる。Ｈ* はボケ画像全体を補正された画像全体に変換する行列であり、Ｈ* の各行とＰの積は各画素の補正を行う演算に相当する。Ｈ* の真ん中の行とＰの積は、６３×６３画素の元画像の、真ん中の画素に対する補正に該当する。Ｐは元画像をラスター走査順に一元化したものであったから、逆に、Ｈ* の真ん中の行を逆ラスター走査により２次元化することで、６３×６３のサイズの空間フィルタを構成することができる。このように構成した空間フィルタを一般逆フィルタと呼ぶ。このようにして作成した実用的なサイズの空間フィルタを、大きな画像全体の各画素に順次適用することで、ボケ画像を補正することが可能となる。
【００７７】
〔３−３−２〕  背景技術において説明したように、手ぶれ量が小さい場合には、一般逆フィルタのフィルタ要素のうち、周辺部のフィルタ要素の貢献度が微小であることが判明した。そこで、ＰＳＦから一般逆フィルタを生成する際に、手ぶれ量に応じて一般逆フィルタのサイズを変えることが好ましい。例えば、αを所定の係数として、手ぶれ量のα倍を一般逆フィルタのサイズとして決定することが好ましい。このようにすると、貢献度の小さい周辺部のフィルタ要素が削除されるため、一般逆フィルタを用いて画像復元を行う際の処理量に対する手ぶれ補正効果を向上させることが可能となる。
【００７８】
手ぶれ量のα倍を一般逆フィルタのサイズとして決定する場合の、αの決定方法について説明する。
【００７９】
まず、図９を参照して、手ぶれ量〔画素〕の求め方について説明する。まず、ＰＳＦ画像の有効画素（画素値が０でない画素）を全て含む外接長方形を求める。次に、その外接長方形の高さｈ〔画素〕と幅ｗ〔画素〕とに基づいて、対角線の長さＬ〔画素〕を求め、手ぶれ量とする。
【００８０】
図１０は、手ぶれ量がある値である場合の、一般逆フィルタのサイズ〔画素〕（正方形の空間フィルタの次数（ｎ×ｎのｎに相当する））と手ぶれ補正効果〔％〕との関係を示している。なお、画像サイズと同じサイズの逆フィルタを用いた場合の手ぶれ補正効果を１００％に設定している。
【００８１】
図１０から分かるように、一般逆フィルタのサイズを０から徐々に大きくしていくと、補正効果それにしたがって高くなるが、一般逆フィルタのサイズが所定値に達するとそれ以上サイズを大きくしても補正効果は一定となる。
【００８２】
そこで、手ぶれ補正効果が、最大補正効果の一定割合（この例では、９８％）となるフィルタサイズを、当該手ぶれ量に対する一般逆フィルタの最適サイズであるとする。
【００８３】
図１１は、手ぶれ量とそれに対応する一般逆フィルタの最適サイズとの関係を示している。図１１から分かるように、手ぶれ量が大きくなるにしたがって、一般逆フィルタの最適サイズも大きくなる。図１１の手ぶれ量とそれに対応する一般逆フィルタの最適サイズとの関係に基づいて、係数αを決定する。
【００８４】
〔３−３−３〕  ところで、手ぶれ量のα倍を一般逆フィルタのサイズとして決定し、そのサイズに応じたフィルタ回路を用意する場合には、サイズの異なる多くのフィルタ回路（積和演算回路）を搭載する必要があるため、回路規模が増大する。そこで、この実施例では、複数の代表的なサイズのフィルタ回路を搭載しておき、手ぶれ量から求められた最適フィルタサイズに応じて、使用するフィルタ回路を切り換えるようにしている。これにより最小限の回路規模を増加するだけで、処理量に対する補正効果を向上化させることが可能となる。ただし、ＰＳＦから一般逆フィルタのフィルタ係数を算出する場合には、手ぶれ量に応じた最適フィルタサイズが一般逆フィルタのサイズとして用いられる。
【００８５】
この実施例では、補正する最大手ぶれ量に対する最適フィルタサイズ（最大フィルタ）を有するフィルタ回路（最大フィルタ回路）と、無駄な演算回数が最も小さくなるフィルタサイズ（中間フィルタ）を有するフィルタ回路（中間フィルタ回路）とが、代表的なフィルタ回路として搭載されている。最大手ぶれ量は、本実施例の画像復元手法で効果が視認できる最大手ぶれ量、または通常の撮影で発生しうる最大手ぶれ量とする。
【００８６】
無駄な演算回数が最も小さくなるフィルタ回路（中間フィルタ回路）のサイズ（次数）は、次のようにして決定する。
【００８７】
（１）画像幅をＷ、画像の高さをＨ、フィルタ次数をｄとすると、空間フィルタの積和演算回数Ｎは、次式（１６）によって算出できる。
【００８８】
Ｎ＝Ｗ・Ｈ・｛ｄ2 ＋（ｄ2 −１）｝
＝Ｗ・Ｈ・（２ｄ2 −１）        …（１６）
【００８９】
（２）最大フィルタの次数をＤmax とし、中間フィルタ回路の次数をＤmid とする。今、任意の手ぶれが発生し、その最適フィルタ回路の次数をＤとすると、Ｄ≦Ｄmid の範囲において次数Ｄのフィルタ回路で演算する場合に比べて中間フィルタ回路で処理した場合の無駄な積和演算回数Ｎinvalid ＿mid と、Ｄmid ＜Ｄ≦Ｄmax の範囲において次数Ｄのフィルタ回路で演算する場合に比べて最大フィルタ回路で処理した場合の無駄な積和演算回数Ｎinvalid ＿max とは、次式（１７）、（１８）によって算出することができる。
【００９０】
（ａ）中間フィルタ回路で処理する場合（Ｄ≦Ｄmid ）
Ｎinvalid ＿mid ＝ＮDmid−ＮD ＝Ｗ・Ｈ・｛（２Ｄmid 2 −１）−（２Ｄ2 −１）｝                  ＝２・Ｗ・Ｈ・（Ｄmid 2 −Ｄ2 ）      …（１７）
（ｂ）最大フィルタ回路で処理する場合（Ｄmid ＜Ｄ≦Ｄmax ）
Ｎinvalid ＿max ＝ＮDmax−ＮD ＝Ｗ・Ｈ・｛（２Ｄmax 2 −１）−（２Ｄ2 −１）｝                  ＝２・Ｗ・Ｈ・（Ｄmax 2 −Ｄ2 ）      …（１８）
【００９１】
ただし、ＮDmidは中間フィルタ回路での積和演算回数を示し、ＮDmaxは最大フィルタでの積和演算回数を示し、ＮD は任意の手ぶれに対する最適フィルタ回路での積和演算回数を示している。
【００９２】
（３）中間フィルタ回路の次数をＤmid とした場合、手ぶれ量が０から最大値までの全範囲での上記無駄な積和演算の総和Ｓinvalid は、次式（１９）によって算出することができる。
【００９３】
【数３】
2006279808.tif 000005
【００９４】
ただし、ｄｘは、手ぶれ量に応じた最適フィルタサイズ（一般逆フィルタサイズ）である。
【００９５】
（４）最大フィルタ回路のＤmax を５１として、中間フィルタ回路の次数Ｄmid を０〜５１の範囲で変化させた場合、中間フィルタ回路の次数Ｄmid と、無駄な積和演算の総和Ｓinvalid との関係は、図１２に折れ線で示すようになる。
【００９６】
（５）図１２の折れ線を２次曲線で近似し、無駄な積和演算の総和Ｓinvalid が最小となるサイズを、最適な中間フィルタ回路のサイズ（次数）とする。
【００９７】
このようにしてサイズが決定された中間フィルタ回路４２（図２参照））と、最大フィルタ回路４３とが、画像復元処理部４０に設けられている。
【００９８】
〔３−３−４〕  図１３は、画像復元フィルタ計算部３０による処理手順を示している。  まず、２軸の角速度センサデータを読み込む（ステップＳ１）。読み込んだ２軸の角速度センサデータを動きベクトルに変換する（ステップＳ２）。得られた動きベクトルをＰＳＦ（手ぶれ関数）に変換する（ステップＳ３）。
【００９９】
得られたＰＳＦから手ぶれ量Ｌを算出する（ステップＳ４）。得られた手ぶれ量Ｌから、その手ぶれ量に応じた最適フィルタサイズＦを算出する（ステップＳ５）。そして、一般逆フィルタのサイズをＦに決定する（ステップＳ６）。一般逆フィルタのサイズをＦとして、ＰＳＦを一般逆フィルタに変換する（ステップＳ７）。これにより、一般逆フィルタのフィルタ係数が求められる。
【０１００】
次に、中間フィルタ回路のサイズが上記一般逆フィルタのサイズＦ以上であるか否かを判別する（ステップＳ８）。中間フィルタ回路のサイズが上記一般逆フィルタのサイズＦ以上である場合には、画像復元フィルタ回路として中間フィルタ回路を選択する（ステップＳ９）。そして、ステップＳ１３に進む。
【０１０１】
中間フィルタ回路のサイズが上記一般逆フィルタのサイズＦより小さい場合には、最大フィルタ回路のサイズが上記一般逆フィルタのサイズＦ以上であるか否かを判別する（ステップＳ１０）。最大フィルタ回路のサイズが上記一般逆フィルタのサイズＦ以上である場合には、画像復元フィルタ回路として最大フィルタ回路を選択する（ステップＳ１１）。そして、ステップＳ１３に進む。
【０１０２】
最大フィルタ回路のサイズが上記一般逆フィルタのサイズＦより小さい場合には、画像を復元することはできないため、画像復元フィルタ回路の選択は行わない（ステップＳ１２）。この場合には、画像復元フィルタ回路による復元処理は行われない。そして、ステップＳ１３に進む。
【０１０３】
ステップＳ１３では、画像復元フィルタ回路の選択が行われたか否かを判別する。画像復元フィルタ回路の選択が行われなかった場合には、今回の処理を終了する。画像復元フィルタ回路の選択が行われた場合には、選択された画像復元フィルタ回路（中間フィルタ回路または最大フィルタ回路）に、上記ステップＳ７によって算出されたフィルタ係数をセットする（ステップＳ１４）。なお、この場合、選択された画像復元フィルタ回路において、上記一般逆フィルタのサイズＦより大きな部分には、フィルタ係数として０がセットされる。そして、今回の処理を終了する。
【０１０４】
〔４〕画像復元処理部４０について
【０１０５】
画像復元処理部４０は、図２に示すように、ノイズ除去のためのフィルタ回路４１と、中間フィルタを用いて画像復元を行うための中間フィルタ回路部４２と、最大フィルタを用いて画像復元を行うための最大フィルタ回路４３とを備えている。フイルタ回路４１はメディアンフィルタを用いてフィルタ処理を行う。
【０１０６】
カメラによって撮影された手ぶれ画像は、フィルタ回路４１に送られ、メディアンフィルタを用いたフィルタ処理が行われ、ノイズが除去される。フィルタ回路４１によって得られた画像は、画像復元フィルタ計算部３０によってフィルタ係数がセットされたフィルタ回路４２または４３に送られる。フィルタ回路４２または４３では、画像復元フィルタである中間フィルタまたは最大フィルタを用いたフィルタ処理が行われ、手ぶれ画像から手ぶれのない画像が復元される。フィルタ回路４２または４３によって得られた画像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が小さいほど、復元画像のリンギングが目立つので、復元画像の度合いを弱くし、手ぶれ画像の度合いを強くする。
【図面の簡単な説明】
【０１２２】
【図１】デジタルカメラの構成を示すブロック図である。
【図２】手ぶれ補正処理回路の構成を示すブロック図である。
【図３】角速度センサ１１の出力を増幅するアンプ１３およびアンプ出力をデジタル値に変換するＡ／Ｄ変換器１５を示すブロック図である。
【図４】カメラの回転量θ[deg] と画面上の移動量ｄ[mm]との関係を示す模式図である。
【図５】３５[mm]フィルム換算の画像サイズと、デジタルカメラの画像サイズとを示す模式図である。
【図６】手ぶれを表現する空間フィルタ（ＰＳＦ）を示す模式図である。
【図７】Bresenham の直線描画アルゴリズムを説明するための模式図である。
【図８】図７の動きベクトルにより得られるＰＳＦを示す模式図である。
【図９】手ぶれ量〔画素〕の求め方を説明するための模式図である。
【図１０】手ぶれ量がある値である場合の、一般逆フィルタのサイズ〔画素〕と手ぶれ補正効果〔％〕との関係を示すグラフである。
【図１１】手ぶれ量とそれに対応する一般逆フィルタの最適サイズとの関係を示すグラフである。
【図１２】中間フィルタ回路の次数Ｄmid を０〜５１の範囲で変化させた場合、中間フィルタ回路の次数Ｄmid と、無駄な積和演算の総和Ｓinvalid との関係を示すグラフである。
【図１３】画像復元フィルタ計算部３０による処理手順を示すフローチャートである。
【図１４】注目画素ｖ２２を中心とする３×３の領域を示す模式図である。
【図１５】Prewitt のエッジ抽出オペレータを示す模式図である。
【図１６】エッジ強度v ＿edgeと加重平均係数ｋとの関係を示すグラフである。
【符号の説明】
【０１２３】
１１、１２  角速度センサ
３０  画像復元フィルタ計算部
４０  画像復元処理部
５０  リンギング除去処理部
３１  手ぶれ信号／動きベクトル変換処理部
３２  動きベクトル／手ぶれ関数変換処理部
３３  手ぶれ関数／一般逆フィルタ変換処理部
４２  中間フィルタ回路
４３  最大フィルタ回路
【図１】
2006279808.tif 000006
【図２】
2006279808.tif 000007
【図３】
2006279808.tif 000008
【図４】
2006279808.tif 000009
【図５】
2006279808.tif 000010
【図６】
2006279808.tif 000011
【図７】
2006279808.tif 000012
【図８】
2006279808.tif 000013
【図９】
2006279808.tif 000014
【図１０】
2006279808.tif 000015
【図１１】
2006279808.tif 000016
【図１２】
2006279808.tif 000017
【図１３】
2006279808.tif 000018
【図１４】
2006279808.tif 000019
【図１５】
2006279808.tif 000020
【図１６】
2006279808.tif 000021