以下、図を参照して本発明の実施の形態を説明する。
1.撮影装置
図1は、本発明の実施の形態の撮影装置100を示す。
撮影装置100は、所定の露光期間に静止像を撮影する。撮影装置100は、撮影装置100の外部から光を入射するためのレンズ部2と、光3を自動焦点調整する自動焦点部4と、レンズ部2のズーム比を設定するズーム部6と、撮像部5とを含む。撮像部5には、光学像が結像される。撮像部5は、結像された光学像を示す出力データを出力する。撮像部5は、例えば、CCDもしくはMOS型撮像装置である。レンズ部2から入射した光3は、自動焦点部4により焦点調整される。ズーム部6により、レンズ部2のズーム比が設定され、撮像部5上に光学像7が結像される。
撮影装置100は、表示切替部10と、表示回路11と、表示部12と、記録部13と、記録媒体14とをさらに含む。静止像を表す静止画の揺動を補正することなく静止像を撮影する場合は、撮像部5から出力された出力データは表示切替部10に直接送られる。静止画像を表示する場合は、撮像部5から出力された出力データは、表示回路11によって表示部12に表示される。静止画像を記録する場合は、撮像部5から出力された出力デ
ータは、記録部13によって記録媒体14に記録される。
撮影装置100は、シャッターボタン25と、データを記憶する副画像メモリ8と、撮影された静止像を表す複数の画像(フレーム)間の揺動量を検出する揺動検出手段15と、検出された揺動量に応じて、複数の画像(フレーム)を示す複数の画像情報を補正する揺動補正部9と、揺動補正制御部21と、タテ方向の揺動を除去するように制御されるトリミング部22と、画面データによって示される画像の解像度を変更する解像度変更部24と、間引き制御部25aと、画素転送部23と、揺動量に応じてフレームレートを変更するフレームレート変更部40とをさらに含む。揺動検出手段15は、揺動検出手段15に入力されたデータを演算する演算部18と、第1メモリ16と、第2メモリ17とを含む。揺動補正制御部21は、検出された揺動量に応じて撮像部5から出力された出力データを補正するために、各構成要素を制御する。
静止像を表す静止画の揺動を補正して静止像を撮影する場合(揺動補正設定がONである場合)には、シャッタボタン25を押す前に、撮像部5から出力された出力データが一旦副画像メモリ8に蓄積される。撮像部5から出力された出力データは、揺動検出手段15に入力される。演算部18は、入力された複数の出力データ(例えば、n−1番目の画面データ(即ち、前の画面のデータ)とn番目の画像データ(即ち、現在の画面のデータ))を演算し、揺動情報を求める。揺動情報は、動きベクトル19である。なお、撮影装置100がタテ用振動ジャイロとヨコ用振動ジャイロとを備える場合にも、タテの揺動量とヨコの揺動量とを検出することができる。この場合には、揺動情報は、タテの揺動量およびヨコの揺動量である。
揺動補正制御部21が、トリミング部22と画素転送部23とを制御することによって、タテ方向の揺動が除去される。揺動補正制御部21が揺動補正部9を制御することによって、ヨコ方向の揺動が除去される。したがって、画像データのタテの揺動および画像データのヨコの揺動を補正することができ、揺動補正された画像データを得ることができる。
揺動補正された画像データは、順次、表示切替部10を介して表示部12に出力される。ユーザは、表示部12から、揺動補正された連続画像を所定のフレームレートで視認できる。
なお、表示部12に、揺動補正された画像データによって示された全画像のうち、一部の領域の画像を表示することができる。したがって、被写体のフレーミングを正確にできる。この場合、解像度は解像度変更部24および間引き制御部25aによって、静止画撮影時より低い解像度に設定される。したがって、フレームレートを高くすることが可能になり、1秒間の表示枚数を多くすることができる。その結果、ユーザは、よりスムーズに被写体の画像を視認できる。
記録部13は、フレームレートの高い複数の画像を動画として記録媒体14に記録してもよい。
解像度変更部24は、例えば、明るさ、揺動量、ズーム比のうちの少なくとも1つに応じて、複数のフレームの解像度を変更する。
撮影装置100は、クロック制御手段27と、転送クロック供給部32と、処理クロック供給部28と、CPU26とをさらに含む。ユーザがシャッターボタン25を半押しにすると、処理クロック供給部28が演算部29等のクロックの動作開始又はクロック速度の向上を実行するように、CPU26はクロック制御手段27に指令を与える。
撮影装置100は、揺動補正された複数の画像情報を記憶する主画像メモリ30と、記憶手段に記憶された複数の画像情報に基づいて、静止像を示す静止画像情報を生成する演算部29と、副演算部29aとをさらに含む。なお、演算部29の機能、主画像メモリ30の機能、および副演算部29aの機能の詳細は、後述される。
撮影装置100は、マスキング部20と、明部抽出部39とをさらに含む。マスキング部20の機能および明部抽出部39の機能の詳細は、後述される。
撮影装置100は、バイブレータ36と、スピーカ37とをさらに含む。バイブレータ36の機能およびスピーカ37の機能の詳細は、後述される。
図2は、揺動検出手段15の構成を示す。揺動検出手段15は、演算部18と第1メモリ16と第2メモリ17とを含む。
第1メモリ16には、時刻t=tn−1に撮影された画像Dn−1を示す画像データが格納されている。第2メモリ17には、時刻t=tnに撮影された画像Dnを示す画像データが格納されている。2枚の画像を示すデータ(画像Dn−1を示す画像データおよび画像Dnを示す画像データ)に基づいて、画像Dn−1と画像Dnとの間の揺動量(例えば、動きベクトル(x1、y1))が検出され、揺動量を示すデータが出力される。
2.手振れ補正の動作
図3は、本発明の実施の形態の手振れ補正の動作を示す。
画像Dn=1は、時刻n=1に撮影された画像を示し、画像Dn=2は、時刻n=2に撮影された画像を示し、画像Dn=3は、時刻n=3に撮影された画像を示し、画像Dn=4は、時刻n=4に撮影された画像を示す。
画像Dn=1を示す画像データが主画像メモリ部30に蓄積される。
画像Dn=2を示す画像データは、揺動量M2(M2=(x0+x1、y0+y1))に応じて補正される。演算部29によって、補正された画像データは、主画像メモリ部30に蓄積されている画像Dn=1を示す画像データに加算される。加算結果を示すデータは主画像メモリー部30に蓄積される。補正された画像データを画像Dn=1を示す画像データに加算するため、被写体の静止部は正確に重なり、画像のSN比は向上する。
画像Dn=3を示す画像データは、揺動量M3(M3=(x0+x1+x2、y0+y1+y2))に応じて補正される。演算部29によって、この補正された画像データは、主画像メモリ部30に蓄積されている加算結果を示すデータに加算される。加算結果を示すデータは主画像メモリー部30に蓄積される。
画像Dn=4を示す画像データは、揺動量M4(M4=(x0+x1+x2+x3、y0+y1+y2+y3))に応じて補正される。演算部29によって、この補正された画像データは、主画像メモリ部30に蓄積されている加算結果を示すデータに加算される。加算結果を示すデータは主画像メモリー部30に蓄積される。
このように、データの加算を繰り返すことによって、主画像メモリ部30には、加算された4枚のほぼ同じ画像を示す画像データが格納され、1枚の静止画を示すデータが生成される。したがって、露光期間中にシャッターを100%開けていた場合には、時刻n=1から時刻n=4の期間中にシャッターを継続して開けていた場合とほぼ同じ明るさの画
像が得られるとともに、各画面毎に手振れが補正される。
なお、手振れの程度(揺動量)やズーム比に応じて、例えばシャッタ開時間(露光時間)、フレームレートを適切に設定することによって、SNを劣化させることなく電子的に手振れを補正することができる。なお、各画像を撮影する時のシャッタ開時間を短くすると手振れ補正に起因する画像劣化は減少するが光量が減る。この場合には、撮影するフレームの枚数を増やす。
本発明の実施の形態では、転送クロックを上げることによってフレームレートを上げたり、解像度を下げることによってフレームレートを上げたりして最適なフレームレートを得ることができる。したがって、適用範囲が広いという効果がある。
なお、演算部29によって為される演算は、加算に限らない。複数の画像データ(フレーム情報)に基づいて1枚の静止画を示すデータを生成することができる限り、演算は、例えば積分でもよい。
3.マスキングの動作
図4は、本発明の実施の形態のマスキングの動作を示す。
画像Dn=1は、時刻n=1に撮影された画像を示し、画像Dn=2は、時刻n=2に撮影された画像を示し、画像Dn=3は、時刻n=3に撮影された画像を示し、画像Dn=4は、時刻n=4に撮影された画像を示す。
時刻n=1で、ストロボが発光する。したがって、例えば、画像35eに表された人物は背景(例えば、夜景)に比べて明るくなる。ここで画像35eに表された人物を明部38aと定義する。明部抽出部39は、画像35eを示すデータから明部38aを示すデータを抽出し、抽出された明部aを示すデータに基づいて、マスキングデータ31を生成する。
時刻n=2で、画像Dn=2を示す画像データからマスキングデータ31を切り出す。明部38bの画像がとり去られ、かつ手振れが補正された補正画像33aを示すデータが生成される。補正画像33aを示すデータが画像35eを示すデータに加算され、積分画像35aを示すデータが生成される。
時刻n=3で、画像Dn=3を示す画像データからマスキングデータ31を切り出す。明部38cの画像がとり去られ、かつ手振れが補正された補正画像33bを示すデータが生成される。補正画像33bを示すデータが積分画像35aを示すデータに加算され、積分画像35bを示すデータが生成される。
時刻n=4で、画像Dn=4を示す画像データからマスキングデータ31を切り出す。明部38dの画像がとり去られ、かつ手振れが補正された補正画像33cを示すデータが生成される。補正画像33cを示すデータが積分画像35bを示すデータに加算され、積分画像35cを示すデータが生成される。
積分画像35cを示すデータがリサイズされ、積分画像35dを示すデータが生成される。
上述したように、時刻n=1で、ストロボの発光により明るくなった人物等の明部をとり込み、時刻n=2、3、4で、撮影された画像のうち、明部以外の領域の画像をとり込む。夜景撮影等で人物を対象にスローシャッタでストロボ撮影を行う場合には、例えば、
ストロボ発光時の人物の顔の画像にスローシャッタ期間中に露光された人物の顔の画像が重なり(二重露光)、画像がぼける。しかし本発明の実施の形態のマスキングの動作によれば、手振れ補正によって、明部である人物の顔等が二重露光されない。その結果、明部を明瞭に撮影できる。
4.フレームレートの変更
図5は、画素数とフレーム周波数との関係を示す。
解像度変更部24(図1参照)によって、撮像部5(図1参照)での解像度を下げると、フレームレート(fps)を上げることができる。また、クロック制御手段27、処理クロック供給部28および転送クロック供給部32によって、転送クロック速度を上げた場合にも、フレームレート(fps)を上げることができる。
本発明の実施の形態では、手振れ補正を目的として画像をとり出す時に転送クロックを上げたり、解像度を下げることにより、実質的にフレームレートを上げて、電子的手振れ補正に特有の残像(画像劣化)をなくすことができる。この場合、通常の撮像部は200万画素であり、フレームレートは7.5fps程度であるため、残像の影響が残ってしまう。フレームレートは20fps以上でないと電子的手振れ補正に特有の残像をなくすことは困難である。
図6は、4分割された画素領域を含む撮像部5の構成を示す。
撮像部5は、画素領域40を含む。画素領域40は、4つの画素領域(画素領域40a、画素領域40b、画素領域40cおよび画素領域40d)に分割されている。撮像部5は、4分割された水平方向転送部(水平方向転送部41a、水平方向転送部41b、水平方向転送部41cおよび水平方向転送部41d)と、4分割された垂直方向転送部(垂直方向転送部42a、垂直方向転送部42b、垂直方向転送部42cおよび垂直方向転送部42d)とをさらに含む。したがって、全画素の掃き出し時間は1/4に、フレームレートは4倍になり、210万画素のCCD型の撮像素子およびクロック速度=18MHzの条件で、フレームレートは30fpsになる。その結果、手振れ補正に起因する画像劣化を目立たなくできる。撮像部5は左右に2分割してもよい。
図7は、本発明の実施の形態におけるフレームレートを速くした場合の動作図である。
露出時間=1/4秒の場合、1/8秒毎にフレームを得る。このとき、x方向の手振れ量=∫0(xi+xi+1)dt≒((x1+x2)+(x3+x4))/2である。
露出時間=1/2秒の場合、フレームレートを高くすることにより、1/16秒毎にフレームを得る。このとき、x方向の手振れ量≒(x1+x2+x3+x4+x5+x6+x7+x8)/8≒((x1+x2+x3+x4)/2+(x5+x6+x7+x8)/2)/4である。
露出時間が長い場合は、フレームレートを速くし、多くのフレームを得るようにする。その結果、手振れ量を詳細に検出することが可能になり、手振れ補正に起因した画像劣化を減少することが出来る。
このように、本発明の撮影装置によれば、複数のフレームを示す情報を揺動補正し、静止画を示す情報を生成することができるため、手ぶれ補正された1枚の静止画像を得ることができる。
以上、(1.撮影装置)〜(4.フレームレートの変更)において、図1〜図7を参照して本発明の実施の形態の一例を説明した。
例えば、図1〜図7に示される実施の形態では、揺動量検出手段15が「撮影された静止像を表す複数のフレーム間の揺動量を検出する揺動量検出手段」に対応し、揺動補正部9が「検出された揺動量に応じて、複数のフレームを示す複数のフレーム情報を補正する揺動補正手段」に対応し、主画像メモリ30が「揺動補正された複数のフレーム情報を記憶する記憶手段」に対応し、演算部29が「記憶手段に記憶された複数のフレーム情報に基づいて、静止像を示す静止画像情報を生成する情報生成手段」に対応する。
しかし、本発明の撮影装置が図1〜図7に示される実施の形態に限定されるわけではない。撮影装置が備える各構成要素が、上述した「撮影された静止像を表す複数のフレーム間の揺動量を検出する揺動量検出手段」、「検出された揺動量に応じて、複数のフレームを示す複数のフレーム情報を補正する揺動補正手段」、「揺動補正された複数のフレーム情報を記憶する記憶手段」および「記憶手段に記憶された複数のフレーム情報に基づいて、静止像を示す静止画像情報を生成する情報生成手段」の各々の機能を有する限りは、任意の構成を有し得る。
5.撮影方法1
図8は、本発明の実施の形態の撮影処理の手順(ステップ50a〜ステップ50f)を示す。
図9は、本発明の実施の形態の撮影処理の手順(ステップ51a〜ステップ51y)を示す。
図10は、本発明の実施の形態の撮影処理の手順(ステップ52a〜ステップ52t)を示す。
以下、図1および図8〜図10を参照して、本発明の実施の形態の撮影処理の手順をステップごとに説明する。
図8を参照して、ステップ50a〜ステップ50fを説明する。
ステップ50a:操作者が、静止画の撮影を準備する。
ステップ50b:操作者が、シャッターボタン25を半押しにすると、処理クロック供給部28が演算部29等のクロックの動作開始又はクロック速度を向上するように、CPU26がクロック制御手段27に指令を与える。処理クロック供給部28が演算部29等のクロックの動作開始又はクロック速度を向上すると、処理はステップ50cに進む。
ステップ50c:撮像部5は、設定解像度より小さい画像、または間引きした画像を取り出す。n−1番目の画像を示すデータとn番目の画像を示すデータとに基づいて、n−1番目の画像とn番目の画像との特定点または特定領域の位置の差情報を生成し、揺動情報(揺動量)を得る。
ステップ50d:撮影場所の明るさが暗く設定解像度が一定値以上の条件下で、揺動情報(揺動量)が所定の値より大きいか否かを判定する。所定の値より大きい場合(Yes)には、処理はステップ50eに進む。所定の値と同じまたは所定の値より小さい場合(No)には、処理はステップ50fに進む。
ステップ50e:揺動情報の値に応じて表示部12に“手振れ注意”の警告を表示する。
ステップ50f:操作者はシャッターボタン25を押すか否かを判断する。押す(Yes)場合には、処理はステップ51a(図7参照)に進む。押さない(No)場合には、ステップ50fの処理が繰り返される。
以下、図9を参照して、ステップ51a〜ステップ51yを説明する。
ステップ51a:シャッター速度(露光時間)がt1より長いか否かが判定される。例えば、CPU26が、シャッター速度(露光時間)がt1より長いか否かを判定する。
ズーム部6のズーム比が一定値以下で、シャッター速度(露光時間)がt1と同じまたはt1より短い場合(No)には、処理はステップ51bに進む。シャッター速度(露光時間)がt1より長い場合(Yes)には、処理はステップ51dに進む。
ステップ51b:揺動補正なし(手振れ補正なし)で撮影する。
ステップ51c:撮影が完了し、処理が終了する。
ステップ51d:手段振れ補正優先スイッチをONにする。
ステップ51e:シャッター速度(露光時間)がt2より長いか否かが判定される。
シャッター速度(露光時間)がt2と同じまたはt2より短い場合(No)には、処理はステップ51fに進む。シャッター速度(露光時間)がt2より長い場合(Yes)には、処理はステップ51hに進む。
ステップ51f:手振れが激しいか否か、ズーム比が一定値より大きいか否かが判定される。
手振れが激しくなく、ズーム比が一定値より大きい場合(No)には、処理はステップ51gに進む。手振れが激しく、ズーム比が一定値以下である場合(Yes)には、処理はステップ51iに進む。
ステップ51g:解像度を予め設定されている解像度N0に設定したままで手振れ補正ルーチン(ステップ51r)に進む。
ステップ51h:設定解像度N0が所定解像度N1より高いか否かが判定される。
設定解像度N0が所定解像度N1であるか所定解像度N1より低い場合(No)には、処理はステップ51rに進む。設定解像度N0が所定解像度N1より高い場合(Yes)には、処理はステップ51iに進む。
ステップ51i:クロック制御手段27によって画素転送部23の転送クロックを速くする。こうしてフレームレートを上げる。
ステップ51j:手振れが激しいか否かを判定する。
手振れが激しくなく、ズーム比が所定値以下、つまり手振れが非常に少ない場合(No
)には、処理はステップ51kに進む。手振れが激しい時や、ズーム比等の値が所定値より大きい場合、つまり手振れがある程度ある場合(Yes)には、処理はステップ51mへ進む。
ステップ51k:所定解像度N1のまま、処理はステップ51rに進む。
ステップ51m:設定解像度が所定解像度N2より高いか否か、またはフレームレートが所定値fnより低いか否かが判定される。
設定解像度が所定解像度N2と同じ、または所定解像度N2より低い場合、あるいは、フレームレートが所定値fnと同じ、または所定値fnより高い場合(No)には、処理はステップ51rに進む。
設定解像度が所定解像度N2より高い場合、またはフレームレートが所定値fnより低い場合(Yes)には、処理はステップ51nに進む。
ステップ51n:解像度を所定解像度N1より低い解像度N2に設定するために、処理はステップ51pに進む。
ステップ51p:解像度変更部24および間引き制御部25aによって、撮像部5からの画素出力を間引くか、面内方向の複数の画素を示す情報を加算して一つの画素を示す情報を生成し、画素数(即ち、解像度)を下げる(解像度N2に設定)。
ステップ51q:解像度を所定解像度N1より低い解像度N2に設定した結果、フレームレートの最高速度の値が上がる。フレームレートを上げる。
ステップ51r:複数のフレーム(画像)を撮影装置100にとり込むために、手振れ補正ルーチンのための撮影画像の入力を開始するか否かを判定する。撮影画像の入力を開始する場合(Yes)には、処理はステップ51yに進む。
ステップ51y:露出時間(即ち、シャッター時間)、絞り値およびフレームレートに基づいて、分割露光するために必要な総枚数nlastを演算する。手振れの激しい時は各静止画のシャッター時間を短くする。
ステップ51s:n=0に設定する。
ステップ51t:nを1つインクリメントする(n=n+1)。
ステップ51u:n枚目の画像を撮影し、撮像部5からn枚目の静止画像を副メモリ8にとり込む(n枚目の静止画像データを得る)。
ステップ51v:静止画像データが1枚目の静止画像データであるか否かを判定する。
静止画像データが1枚目の静止画像データである場合(Yes)には、処理はステップ51wに進む。静止画像データが1枚目の静止画像データでない場合(No)には、処理はステップ52a(図10参照)に進む。
ステップ51w:撮像部5の画像の一部を切り出し、画像データI1を得る。
ステップ51x:画像データI1を主画像メモリ30に保存する。
以下、図8を参照して、ステップ52a〜ステップ52tを説明する。
ステップ52a:揺動検出手段15によって、1枚目の画像データと2枚目の画像データとの特定点の動きを演算し、揺動量Mnを算出する(図2参照)。
揺動検出手段15に含まれる第1メモリ16に、時刻t=t1に撮影された1枚目の画像D1を示す画像データが格納されており、かつ揺動検出手段15に含まれる第2メモリ17に、時刻t=t2に撮影された2枚目の画像D2を示す画像データが格納されている場合には、揺動検出手段15は、2枚の画像を示すデータ(画像D1を示す画像データおよび画像D2を示す画像データ)に基づいて、画像D1と画像D2との間の揺動量M1(例えば、動きベクトル(x1、y1))を検出し、揺動量を示すデータを出力する。
ステップ52b:揺動量Mnの積分値が一定値以上か否かを判定する。
揺動量Mnの積分値が一定値以上である場合(Yes)には、撮影画像が特定領域をはみ出したと判定され、処理はステップ52cに進む。揺動量Mnの積分値が一定値より小さい場合(No)には、処理はステップ52sに進む。
ステップ52c:エラーレジスタに1が追加される。n番目の画像を主画像メモリ30に保存しないで、処理はステップ52hに進む。
ステップ52s:揺動量Mnの積分値が別の一定値以上か否かが判定され、揺動量Mnの積分値が別の一定値以上である場合には、第2エラーレジスタに1が追加される。
ステップ52d:撮像部5から出力された画像データのうち、揺動量Mnに応じてタテ方向に切り出された画像データInを副画像メモリ8に保存する。
ステップ52e:ストロボをONにするか否かを判定する。ストロボをONにする場合(Yes)には、処理はステップ52fに進む。ストロボをONにしない場合(No)には、処理はステップ52gに進む。
ステップ52f:マスキング部20によって、画像データInを予めマスキングする(図4および(3.マスキングの動作)参照)。
ステップ52g:揺動補正部9からヨコ方向の揺動とタテ方向の揺動とが補正された画像データInを得る。
例えば、画像データInを演算部29に送り、主画像メモリ30の画像データと画像データInとを演算(例えば、加算、積分)し、再び、演算結果を主画像メモリ30に保存する。
ステップ52h:揺動補正制御部21は、n=nlast(即ち、最後の値)であるか否かを判定する。
n=nlastである場合(Yes)には、処理はステップ52iに進む。n=nlastでない場合(No)には、もう1枚画像データを取り込むために、処理はステップ51t(図9参照)に進む。
ステップ52i:クロック制御手段27によって撮像部5の転送クロックを下げる。ま
たは、省電力のために、撮像部5の転送クロックを停止させる。
ステップ52j:第2エラーレジスタの値が一定値以上であるか否かを判定する。
第2エラーレジスタの値が一定値より小さい場合(No)には、処理はステップ52nに進む。第2エラーレジスタの値が一定値以上である場合(Yes)には、処理はステップ52kに進む。
ステップ52k:積分画像をリサイズすることによって、欠除部を排除可能か否か(欠除部の範囲が排除可能な範囲内であるか否か)を判定する。
例えば、補正画像33cには欠除部34aが生じている(図4参照)。この場合には、積分画像35cにも欠除部34bが生じてしまう。したがって、欠除部34bを排除するために、積分画像35cをリサイズする必要がある。この場合に、積分画像35cをリサイズすることによって欠除部34bを排除可能か否か(欠除部34bの範囲が排除可能な範囲内であるか否か)を判定する。
排除可能な場合(Yes)には、処理はステップ52mに進む。排除可能でない場合(No)には、処理はステップ52pに進む。
ステップ52m:積分画像35cをリサイズすることによって欠除部34bを排除し、欠除部のない積分画像35dを得る(図4参照)。
ステップ52n:積分画像35dを示すデータを記録媒体14に記録する。
ステップ52p:手振れ補正しても欠除部を排除不可能であるため、操作者に手振れ補正の失敗を伝える。例えば、表示部12に“手振れ補正エラー(範囲外である)”との意味の表示をする(図1参照)。また、スピーカー37からエラー警告音を出力する。また、バイブレーター36を振動させる。
ステップ52q:主表示設定がONか否か判定する。
主表示設定がONである場合(Yes)には、処理はステップ52rに進む。主表示設定がONでない場合(No)には、処理はステップ52tに進む。
ステップ52r:主画像メモリ30に格納されている手振れ補正された積分画像、またはリサイズされた画像を表示部12に表示する。
ステップ52t:手振れ補正された画像を記録媒体14に記録する。一定時間経過後、別の手振れ補正された画像を撮影する場合には、再び最初のステップ50aに戻る(図8参照)。
このように、本発明の撮影方法によれば、複数のフレームを示す情報を揺動補正し、静止画を示す情報を生成することができるため、手振れ補正された1枚の静止画像を得ることができる。
以上、(5.撮影方法1)において、図1および図8〜図10を参照して、本発明の実施の形態の一例を説明した。
例えば、図8〜図10に示される実施の形態では、ステップ52aが「撮影された静止
像を表す複数のフレーム間の揺動量を検出するステップ」に対応し、ステップ52b〜ステップ52gが「検出された揺動量に応じて、複数のフレームを示す複数のフレーム情報を補正するステップ」に対応し、ステップ52gが「揺動補正された複数のフレーム情報を記憶するステップ」に対応し、ステップ52gまたはステップ52mが「記憶手段に記憶された複数のフレーム情報に基づいて、静止像を示す静止画像情報を生成するステップ」に対応する。
しかし、本発明の撮影方法が図8〜図10に示される実施の形態に限定されるわけではない。撮影方法に包含される各ステップが、上述した「撮影された静止像を表す複数のフレーム間の揺動量を検出するステップ」、「検出された揺動量に応じて、複数のフレームを示す複数のフレーム情報を補正するステップ」、「揺動補正された複数のフレーム情報を記憶するステップ」および「記憶手段に記憶された複数のフレーム情報に基づいて、静止像を示す静止画像情報を生成するステップ」の各々が有する機能を有する限りは、任意の手順を有し得る。
例えば、図8〜図10を参照して説明したように、演算部29は、主画像メモリ30に記憶された複数の画像データ(フレーム情報)の各々を順次演算することによって、静止画像情報を生成する。また、演算部29は、主画像メモリ30に記憶された複数の画像データ(フレーム情報)を一括して演算することによって、静止画像情報を生成してもよい。
6.撮影方法1(順次演算)
図11は、本発明の実施の形態の順次演算処理手順を示す。順次演算処理手順は、複数の画像データ(フレーム情報)の各々を順次演算することによって、静止画像情報を生成する手順である。
以下、図1と図11とを参照して、撮影準備終了後(図9のステップ51s以降)の順次演算処理手順をステップごとに説明する。
ステップ10a:n=0に設定する。
ステップ10b:nを1つインクリメントする(n=n+1)。
ステップ10c:n枚目の画像を撮影し、副メモリ8にとり込む。
ステップ10d:n枚目の画像を手振れ補正し、手振れ補正された画像Pnを得る。
ステップ10e:演算部29は、手振れ補正された画像Pnを示すデータをm倍する(Pn×m)。
ステップ10f:演算部29は、m倍された画像Pnを示すデータを主画像メモリ30の画像データに加算する(Σn-1 i=1(Pi×m)+(Pn×m))。
ステップ10g:加算結果を主画像メモリ30に蓄積する。
ステップ10h:n=nlast(即ち、最後の値)であるか否かを判定する。
n=nlastである場合(Yes)には、処理はステップ10iに進む。n=nlastでない場合(No)には、もう1枚の画像データを取り込むために、処理はステップ10bに進む。
ステップ10i:副演算部29aは、m倍され、順次加算された画像データを1/s倍し、静止画を示す画像データPxを生成する(Px=(Σn i=1(Pi×m))/s)。
ステップ10j:生成された画像データPxを記録部13に出力する。
記録部13に出力した後、処理は終了する。
このように、順次演算処理手順によれば、複数の画像データ(フレーム情報)の各々を順次演算することによって、静止画像情報を生成するため、静止画像情報の生成時間を短縮することができる。
また、演算部29が、m倍された画像Pnを示すデータを主画像メモリ30の画像データに加算し、副演算部29aが、m倍され、順次加算された画像データを1/s倍し、静止画を示す画像データPxを生成するため、mの値とsの値とを任意に設定することによって、所望の明るさを有する1枚の静止画を得ることができる。
7.撮影方法1(一括演算)
図12は、本発明の実施の形態の一括演算処理手順を示す。一括演算処理手順は、複数の画像データ(フレーム情報)を一括して演算することによって、静止画像情報を生成する手順である。
以下、図1と図12とを参照して、撮影準備終了後(図9のステップ51s以降)の一括演算処理手順をステップごとに説明する。
ステップ20a:n=0に設定する。
ステップ20b:nを1つインクリメントする(n=n+1)。
ステップ20c:n枚目の画像を撮影する。
ステップ20d:n枚目の画像を示すデータを主画像メモリ30に蓄積する。
ステップ20e:演算部29は、n=nlast(即ち、最後の値)であるか否かを判定する。
n=nlastである場合(Yes)には、処理はステップ20fに進む。n=nlastでない場合(No)には、もう1枚の画像データを取り込むために、処理はステップ20bに進む。
ステップ20f:n枚の画像を手振れ補正する。手振れ補正されたn枚の画像の各々を画素積分し、1枚の静止画を示す画像データPxを生成する。
ステップ20g:生成された画像データPxを記録部13に出力する。
記録部13に出力した後、処理は終了する。
このように、一括演算処理手順によれば、複数の画像データ(フレーム情報)を一括演算することによって、静止画像情報を生成するため、演算部29の負荷を低減することが
できる。
なお、上述の(6.撮影方法1(順次演算))で説明したように、副演算部29aによって、画像データを適宜m倍、1/s倍することができるため、所望の明るさを有する1枚の静止画を得ることができる。
8.撮影方法2
図13は、撮影場所の明るさや、シャッター速度(露光時間)に応じて、複数の画像(分割画像)を積分することによって、手振れ補正を行うための処理手順を示す。
以下、この処理手順をステップごとに説明する。
ステップ99a:解像度、画素数および分割画像数を設定する。
ステップ99b:手段振れ補正優先スイッチがONであるか否かを判定する。
ONでない場合(No:解像度優先モード)には、例えば、処理はステップ80c(後述される図19参照)に進む。ONである場合(Yes:手段振れ補正優先モード)には、処理はステップ99cに進む。
ステップ99c:撮影場所の明るさが、解像度に応じて定められた所定値より小さいか否かが判定される。
所定値より小さい場合(Yes)には、処理はステップ99fに進む。所定値と同じか所定値より大きい場合(No)には、処理はステップ99dに進む。
ステップ99d:シャッタ開口時間(露光時間)Sが、解像度に応じて定められた所定値より大きいか否かが判定される。
所定値より大きい場合(Yes)には、処理はステップ99fに進む。所定値と同じか所定値より小さい場合(No)には、処理はステップ99eに進む。
ステップ99e:手振れ量が所定値より大きいか否かが判定される。
所定値より大きい場合(Yes)には、処理はステップ99fに進む。所定値と同じか所定値より小さい場合(No)には、通常撮影(時間方向の画素加算をしない撮影)を行う(ステップ99m)。
ステップ99f:撮影場所の明るさ、シャッタ開口時間(露光時間)およびフレームレートのうちの少なくとも1つに応じて、手振れが目立たない解像度(限界解像度)N1を設定する。
設定後、処理はステップ99gに進む。
ステップ99g:解像度N1が初期解像度N0より大きいか否かを判定する。
大きい場合(Yes)には、通常撮影(時間方向の画素加算をしない撮影)を行う(ステップ99m)。同じか小さい場合(No)には、処理はステップ99hに進む。
ステップ99h:解像度N1を初期解像度N0より小さい解像度N2に変更する。
ステップ99i:水平方向の画素加算(水平加算処理)および垂直方向の画素加算(垂直加算処理)のうちの少なくとも一方を実施し、解像度をN2に設定する。水平加算処理および垂直加算処理の詳細は、後述される。
ステップ99j:フレームレートを上げる。
ステップ99k:多重撮影を行う(時間方向、画素加算モード)。次に、処理は、例えば、ステップ51y(図9参照)に進む。
9.解像度の変更
図14は、面内画素加算と時間軸内画素加算とによって解像度を変更する手順を示す。
以下、図14を参照して面内画素加算と時間軸内画素加算とによって解像度を変更する手順をステップごとに説明する。
ステップ70a:撮像素子内の9個の画素(画素60a〜画素60i)を示すデータを面内方向に加算して、1つの画素62を示すデータを生成する。
ステップ70b:実際のアドレスより多い仮想アドレスを設定する(実際のアドレスの量を拡大することによって、仮想アドレスを設定する)。手振れ補正情報(揺動情報)に応じて仮想的な切り出し部65を設定する。
ステップ70c:手振れ補正情報に応じて、仮想アドレス上で、画像61を示すデータをシフトする。この場合、元の画素62を示すデータと周囲の画素を示すデータとに基づいて、新たな画素66を示すデータを生成する。
図15は、本発明の実施の形態による実際の画素数より多い画素数を設定して手振れを補正する原理を示す。手振れ補正量は画素の1/10の分解能をもつため、精密に補正するために、画素62を10分割した仮想画素67を生成し、仮想画素67をシフトする。
仮想画素67を仮想空間上でシフトした後、処理はステップ70dに進む。
ステップ70d:画像を切り出す。
ステップ70e:切り出し画像64を示すデータを得る。はみ出した部分68を示すデータは捨てる。
ステップ70f:主画像メモリ30に切り出し画像64を示すデータを記録する。この時の手振れ補正量は、主画像メモリ30に記録される。
ステップ70g:新たな画像61aを示すデータが入力されると、ステップ70a〜ステップ70dと同様の処理を行う。
ステップ70h:手振れ補正量に基づいて、切り出し画像64aを示すデータを得る。
ステップ70i:切り出し画像64の画素を示すデータと切り出し画像64aの画素を示すデータとを時間軸方向に加算(または積分)することによって、合成画像71を示すデータを得る。
ステップ70j:合成画像71を示すデータを主画像メモリ30に記録する。
ステップ70k:新たな画像61bを示すデータが入力されると、ステップ70a〜ステップ70eと同様の処理を行う。切り出し画像64bを示すデータを得る。
ステップ70m:合成画像71の画素を示すデータと切り出し画像64bの画素を示すデータを時間軸方向に加算することにより、合成画像71aを示すデータを得る。
ステップ70n:1回目の手振れ補正量69、2回目の手振れ補正量69aおよび3回目の手振れ補正量69bを演算することにより、手振れ補正量72を生成する。手振れ補正量72に基づいて、3枚の画像が重複して加算された重複領域73を合成画像71aから特定する。
ステップ70p:重複領域73を示すデータに対してズーミング演算を行うことにより、拡大補間し、拡大画像74を示すデータを得る。拡大補間および縮小補間の詳細は後述される。
手振れ補正された静止画74を示すデータを得て、処理は終了する。
図14を参照して説明された実施の形態では、3枚の画像を積分する例を説明したが、積分される画像の枚数は3枚に限らない。例えば、露光時間が長くなると、より多くの画像を積分する。より多くの画像を積分することによって、暗い場所の撮影が可能となる。
図16は、面内方向の加算方法を示す。面内方向の加算は、垂直方向の加算と水平方向の加算とを含む。
図16(a)は、垂直方向の加算方法を示す。垂直方向の読み出し時にR(赤)(m、n+1)とR(m、n)とを垂直加算処理し、R(m、n+1)+R(m、n)を生成する。
図16(b)は、水平方向の加算方法を示す。同じ色同志の画素を水平方向に加算する。例えば、G(m、n+1)+G(m、n)とG(m+1、n+1)+G(m+1、n)とを水平加算処理し、G(m、n+1)+G(m、n)+G(m+1、n+1)+G(m+1、n)を生成する。
図16を参照して説明したように、面内方向の加算によって、4画素を示すデータから1画素を示すデータを生成することができる。
なお、以下に説明するように、面内方向の加算処理において、画像の切り出し位置をシフトすることによって、さらに正確に画像を切り出すことができる。
図17は、画像の切り出し位置のシフトを説明するための図である。
加算切り換え手段102aと加算切り換え手段102bとは、揺動検出手段15(図1参照)から出力された補正信号または検出信号(揺動情報)に応じて、加算モードをAモード103とBモード104との間で切り替える。このように、面内方向の加算処理(図16参照)において、画像の切り出し位置を1画素分シフトすることによって、さらに正確に画像を切り出すことができる。
図18は、縮小補間の原理、拡大補間の原理、および高分解能の手振れ補正の原理を示
す。図18(a)は、縮小補間の原理を示す。元の画素(8個)から縮小補間された画素(6個)を得ることができる。図18(b)は、拡大補間の原理を示す。元の画素(6個)から拡大補間された画素(8個)を得ることができる。図18(c)は、高分解能の手振れ補正の原理を示す。
10.手振れ検出に失敗した画像の除去
図19は、手振れ検出に失敗した画像を除去する手順を示す。
以下、図19を参照して手振れ検出に失敗した画像を除去する手順をステップごとに説明する。
ステップ80a:シャッター速度(露光時間)がt’より長いか否かが判定される。
シャッター速度(露光時間)がt’より長い場合(Yes)には、処理はステップ80bに進む。
ステップ80b:手振れが激しいか否かが判定される。
手振れが激しくない場合(No)には、処理はステップ80cに進む。手振れが激しい場合(Yes)には、処理はステップ80dに進む。
ステップ80c:解像度を予め設定されている解像度に設定したままで、撮影を行う。
ステップ80d:手振れ補正を優先的に行うか否かを判定する。手振れ補正を優先的に行うための設定がONである場合(Yes)には、処理はステップ80eに進む。手振れ補正を優先的に行うための設定がONでない場合(No)には、処理はステップ80cに進む。
ステップ80e:手振れ補正モードが表示される。
ステップ80f:露光時間tがt1<t<t2であるか否かを判定する。
露光時間tがt1<t<t2である場合(Yes)には、処理はステップ81dに進み、面内画素が加算され(ステップ81d)、露光時間tをt<t1に設定し(ステップ81e)、撮影が開始される(ステップ81f)。
露光時間tがt1<t<t2でない場合(No)には、処理はステップ80gに進み、t2<t<t3であるか否かを判定し、t2<t<t3でない場合(No)には、処理を停止する(ステップ81g)。t2<t<t3である場合(Yes)には、処理はステップ80hに進む。
ステップ80h:面内の画素加算の設定を行う。
ステップ80i:露光時間tをt<t2にし、手振れ補正用に撮影する画像数Pを求める。
ステップ80j:撮影を開始する。R=0に設定する。
ステップ80k:n=0に設定する。
ステップ80m:n=n+1に設定する。
ステップ80n:第n番目の画像の面内方向の画素加算を行う。
ステップ80p:手振れの検出を行う。
ステップ80q:手振れの検出に成功したか否かを判定する。
手振れの検出に失敗した場合(No)には、R=R+1とし(ステップ80r)、R<R0であるか否か(Rが設定値R0より小さいか否か)を判定し、R<R0でない場合(No)には、処理が停止される(ステップ80t)。R<R0である場合(Yes)には、動きベクトルの検出点および動きベクトルの検出数のうちの少なくとも一方を変更し(ステップ80v)、最初から補正作業をやり直すために、処理はステップ80kに進む。
手振れの検出に成功した場合(Yes)には、処理はステップ80uに進む。
ステップ80u:主画像メモリ30に補正後の画像を蓄積する。
ステップ80w:n=Pであるか否かを判定する。
n=Pでない場合(No)には、処理はステップ80mに進む。n=Pである場合(Yes)には、手振れ補正用に撮影する全ての画像(全分割画像)の処理が終ったと判断され、処理はステップ80xに進む。
ステップ80x:主画像メモリ30の中の複数の補正画像を時間軸方向に加算もしくは積分する。
ステップ80y:1枚の画像を示すデータを生成する。
ステップ80z:生成された1枚の画像を示すデータに対して間引き処理等を行い、表示部12に表示する。
ステップ81a:操作者が画像保存スイッチをONにするか否かを判断する。
ステップ81b:画像を示すデータに対して圧縮処理(JPEG等)を行い、画像データの容量を小さくする。
ステップ81c:記録媒体14(例えば、ICカード)に記録する。
図19を参照して説明したように、本発明の実施の形態によれば、手振れの検出に失敗した補正画像データの加算(積分)を防止できる。例えば、時間軸方向に加算(積分)した検出に失敗するような検出困難な画像の場合でも、手振れ補正された画像を得ることができる。また手振れの検出に失敗した画像の次の画像から時間軸方向の積分を開始することができるため、時間利用効率が良い。
11.手振れ量の表示
図20は、本発明の実施の形態の撮影装置200の構成を示す。
撮影装置200は、撮影装置100と同様に、手振れ量の表示を行うことができる。撮影装置200は、手振れ量演算部92と、軌跡演算部91と、表示部95と、スピーカ9
7と、バイブレータ98と、CPU99と、振動ジャイロ101aと、振動ジャイロ101bとを含む。
手振れ量演算部92(揺動検出手段15:図1参照)は、手振れ量(揺動量)を演算し、表示回路を介して表示部95に出力する。軌跡演算部91は、手振れ補正しても補正しきれなかった手振れの軌跡を演算し、表示回路を介して表示部95に出力する。
CPU99は、手振れ量が所定の値より大きいか否かを判定し、所定の値より大きい場合には、表示部95、スピーカ97およびバイブレータ98のうちの少なくとも1つに、判定結果を出力するよう指示する。
表示部95は、CPU99の指示に従って、判定結果を表示する。スピーカ97は、CPU99の指示に従って、警告音を発生する。バイブレータ98は、CPU99の指示に従って、振動する。
図21は、撮影装置200に含まれる表示部95の一例を示す。
表示部95では、手振れ量が、インジケーター93、93a、93b、93cによって、表示される。撮影者がこの表示を目視することによって、撮影者は手振れ量と手振れ方向とを確認することができる。手振れ量と手振れ方向とを確認することによって、撮影者はカメラの固定方法を変更する。その結果、人間の操作により通常より手振れの少ない静止画を得ることができる。
図22は、撮影装置200に含まれる表示部95の別の例を示す。
表示部95では、手振れ補正しても補正しきれなかった手振れの軌跡が、軌跡94bおよび軌跡94dのように表示される。撮影者がこの表示を目視することによって、撮影後に、その静止画がどの程度手振れしているかを確認することができる。手振れの失敗をカメラの小さな表示部で確認できるので、撮影者は、手振れ補正の失敗をチェックできる。流し撮りモード(例えばパンニング、パノラマ撮影)の場合には、タテ方向の手振れのみをチェックしてもよい。
なお、表示部95では、手段振れ量(x、y)が所定の値(x0、y0)より大きい場合((x>x0、またはy>y0)あるいは(x>x0、かつy>y0))には、警告表示を行ってもよい。また、スピーカは警告音を発生してもよい。所定の値(x0、y0)は、例えば、ズーム比に応じて設定される。
さらに、表示部95では、手段振れ量(x、y)が所定の値(x0、y0)より小さい場合((x<x0、またはy<y0)あるいは(x<x0、かつy<y0))には、表示(例えば「OK」)を行ってもよい。また、スピーカは音を発生してもよい。所定の値(x0、y0)は、例えば、ズーム比に応じて設定される。
図23は、パンニングまたはパノラマ撮影時の境界インジケーター97の表示を示す。
図23(a)は、3つのフレームに分けて撮影するための風景を示す。
図23(b)は、フレーム98aを示す。図23(c)は、フレーム98bを示す。図23(d)は、フレーム98cを示す。図23(e)は、フレーム98dを示す。
図23(a)に示された風景を右方向へパノラマ撮影する場合、手振れ補正用の動きベ
クトルの検出用の代表点である検出点96a、96b、96c(図23(b)参照)のうちの検出点96aは、フレーム上を移動し、フレーム98bの左端にくる(図23(c)参照)。この時、L1だけ画面が右にシフトしたことを動き検出のための揺動検出手段15が検出し、図23(b)のフレームの右端の境界を示す境界インジケーター97aをフレーム右端からL1に位置に表示する(図23(c)参照)。
同様にして、揺動検出手段15が、L2だけ画面が右にシフトしたことを検出し、境界インジケーター97bをフレーム右端からL2に位置に表示する(図23(d)参照)。
同様にして、図23(e)では境界インジケーター97cは画面左端にくる。この段階で撮影者は次の撮影位置にきたことを知ることができる。必要ならスピーカー37(図1参照)により通知音を発生させ撮影者に知らせることができる。この時、撮影者がシャッターボタンを押すことにより、ほぼ完全なパノラマ撮影をすることができる。
以上、検出点を画面上に複数個設定し、その検出点の動きベクトルから撮影者の移動をフレームの動きと見なして判別する方法を述べた。
この方法では、手振れ補正のための手振れ検出手段によってパンニング検出を行う。しかし、図20に示すように、振動ジャイロ101aおよび振動ジャイロ101bを用いて手振れ検出を行う撮影装置では、振動ジャイロにより撮影者のパンニング回転角を検出し、1フレーム分の左右方向のパンニングに必要な回転角θ0をズーム検出部のズーム比に応じて求めることもできる。
まず、図23(b)の状態では、右端に境界インジケータ97を表示させる。この状態で撮影者は、パノラマ撮影の最初の1枚目を撮影する。次に、撮影者がカメラを右方向に回転角θ0パンニング(つまり回転)した場合、撮影者はカメラが2枚目のフレームの撮影位置にきたことがわかる。
回転角θ0に達した時点で、左端に境界インジケータ97cを表示する(図23(e)参照)。この時点で、回転角θ0に達したことをスピーカーもしくは表示によって撮影者に通知する。撮影者に次のシャッターを切らせることにより左右方向に正確なパノラマ撮影ができる。
左右方向だけでなく、上下方向の境界インジケータ99a、99bを表示部12に表示することにより、撮影者が容易に、上下と左右とが一致したパノラマ撮影をすることができる(図23(b)参照)。この場合、パンニング方向を表示画面上に矢印で示し、正しいパンニング方向を表示することによって、撮影者は矢印通りにカメラを向けるだけで容易にパノラマ撮影ができる。一般に、撮影者はカメラを手持ちして撮影するため、正確に撮影方向を定めることができない。しかし、カメラの手振れ補正機能を用いて画面の左右上下を自動的に調整することによって、極めて正確なパノラマ撮影が可能となる。
なお、カメラの手振れ補正機能を用いて画面の左右上下を自動的に調整する場合でも、撮影したパノラマ画面と理想的なパノラマ画面との誤差が発生する。撮影状態の属性を示す属性データ(Exif等)に、この誤差を追加記録することによって、複数の画像を合成して1枚のパノラマ画像に変換する時に左右上下の位置合わせをより正確に行うことが可能になる。この誤差情報に基づて、誤差を修正できるからである。
以上述べたことは、手振れ検出方式が電子検出方式である場合でも、同様に実現できる。
図24は、フレーム内の手振れ検出のための検出点を示す。手振れ検出の失敗が多い場合、またはフレームレートが遅い場合に、フレーム98内での、検出点96の位置の変更、または、検出点96の数の増加によって、手振れ検出の成功率を上げることができる。
このように、本発明の撮影装置によれば、撮影者は手振れの程度を確認することができる。手振れの程度を確認することによって、撮影者はカメラの固定方法を変更することができ、その結果、人間の操作により通常より手振れの少ない静止画を得ることができる。
以上、(11.手振れ量の表示)において、図1および図20〜図23を参照して本発明の実施の形態の一例を説明した。
例えば、図1および図20〜図23に示される実施の形態では、揺動検出手段15(手振れ量演算部92)が「撮影された静止像を表す複数のフレーム間の揺動量を検出する揺動量検出手段」に対応し、CPU99が「揺動量が所定の値より大きいか否かを判定する判定手段」に対応し、表示部95、スピーカ97およびバイブレータ98が「判定結果を出力する出力手段」に対応する。
しかし、本発明の撮影装置が図1および図20〜図23に示される実施の形態に限定されるわけではない。撮影装置が備える各構成要素が、上述した「撮影された静止像を表す複数のフレーム間の揺動量を検出する揺動量検出手段」、「揺動量が所定の値より大きいか否かを判定する判定手段」および「判定結果を出力する出力手段」の各々の機能を有する限りは、任意の構成を有し得る。
以上のように、本発明の好ましい実施形態を用いて本発明を例示してきたが、本発明は、この実施形態に限定して解釈されるべきものではない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。当業者は、本発明の具体的な好ましい実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。本明細書において引用した特許、特許出願および文献は、その内容自体が具体的に本明細書に記載されているのと同様にその内容が本明細書に対する参考として援用されるべきであることが理解される。