以下、図面を参照して本発明の実施形態を説明する。
[第1の実施形態]
図1は、本発明の第1の実施形態に係る電子カメラ(以下、単にカメラと称する)の外観斜視図である。ここで、図1(a)はカメラの前面斜視図を示し、図1(b)は背面斜視図を示している。
図1(a)に示すように当該カメラの本体であるカメラボディ1の前面には撮影レンズ2及びフラッシュ発光部3が設けられている。撮影レンズ2は、カメラ内部の撮像素子に被写体像を形成するための光学系である。また、フラッシュ発光部3は、被写体が低輝度の場合や逆光の場合等に発光して、被写体を照明する。
また、カメラボディ1の上面にはレリーズボタン4及びズームスイッチ5が設けられている。レリーズボタン4は、半押しによってオンする1stレリーズスイッチと全押しによってオンする2ndレリーズスイッチの2段式のスイッチで構成されている操作部材である。撮影者によって1stレリーズスイッチがオンされることにより、自動焦点制御(AF)や自動露光制御(AE)といった露光準備動作が開始される。また、撮影者によって2ndレリーズスイッチがオンされることにより、露光動作が開始され、画像の記録が行われる。ズームスイッチ5は、T(Tele)スイッチ5aとW(Wide)スイッチ5bとから構成され、撮影レンズ2の変倍動作を開始させるための操作部材である。つまり、撮影者によってTスイッチ5aが押されると望遠側への変倍動作が行われ、Wスイッチ5bを押すと広角側への変倍動作が行われる。
また、図1(b)に示すようにカメラボディ1の背面には、手ぶれ防止モード設定スイッチ6、動作モード切替スイッチ7、十字キー8、及びLCDモニタ9が設けられている。また、図1(b)に示すようにカメラボディ1の側面には、記録媒体(メモリカード)用の蓋10が取り付けられている。
手ぶれ防止モード設定スイッチ6は、当該カメラにおける手ぶれ防止モードのオン/オフを切り替え設定するための操作部材である。撮影者によって、この手ぶれ防止モード設定スイッチ6がスライド操作されることにより手ぶれ防止モードのオン/オフの切り替えが行われる。動作モード切替スイッチ7は、当該カメラの動作モードを設定するための操作部材である。この動作モード切替スイッチ7がスライド操作されることにより、当該カメラの動作モードが、電源オフ、画像再生モード、静止画撮影モード、動画撮影モードに順次切り替わる。十字キー8は、LCDモニタ9に表示されたメニュー画面等で各種設定を行うための操作部材である。この十字キー8は中央の決定(OK)ボタンの周囲に4個のボタンが配置されて構成されている。この十字キー8によって、例えばマクロ撮影、セルフタイマー、フラッシュなどのオン/オフを選択したり、その他各種の詳細な仕様の設定を行うことが可能である。LCDモニタ9は、撮影者によって撮影された画像や、スルー画、メニュー画面などの各種画像を表示するための表示部である。
図2は、図1で示すカメラの内部の詳細な構成について示すブロック図である。なお、図2において、図1で説明した構成については図1と同様の参照符号を付している。
図2において、撮影レンズ2は、前玉レンズ2aと、ズームレンズ2bと、絞り2cと、フォーカスレンズ2dとから構成されている。前玉レンズ2aは、図示しない被写体からの光束を後方のレンズ群に入射させる固定のレンズ群である。ズームレンズ2bは、変倍駆動されることにより撮影レンズ2の焦点距離を変化させるレンズ群である。絞り2cは、開閉駆動されることにより被写体からの光束の入射量を制限する。フォーカスレンズ2dは、合焦駆動されることにより撮影レンズ2の焦点状態を調整するレンズ群である。
ズーム駆動系103は、ズームレンズ2bを変倍駆動させるための駆動機構である。ズームモータ104は、ズーム駆動系103を駆動させるためのモータである。また、絞り駆動系105は、絞り2cを開閉駆動させるための駆動機構である。絞りモータ106は、絞り駆動系105を駆動させるためのモータである。また、フォーカス駆動系107は、フォーカスレンズ2dを合焦駆動させるための駆動機構である。フォーカスモータ108は、フォーカス駆動系107を駆動させるためのモータである。モータドライバ109は、ズームモータ104、絞りモータ106、フォーカスモータ108の駆動制御を行う。
撮像素子110は例えばCCD方式の撮像素子であり、複数の画素と、これら画素で得られた電荷を転送するCCD転送路などから構成されている。この撮像素子110は、撮影レンズ2によって形成された被写体像を各画素で受光してその受光量に応じた電荷を生成する。CCD駆動回路111は撮像素子110の駆動制御及び撮像素子110において生成された電荷を読み出す際のタイミング制御を行う。CCD出力処理回路112は撮像素子110から読み出された電荷に基づく電気信号に対して所定のアナログ処理を施した後、このアナログ処理後の信号をデジタル信号(デジタル画像データ)に変換して画像処理回路113に出力する。なお、CCD駆動回路111及びCCD出力処理回路112については後で詳しく説明する。
画像処理回路113は、CCD出力処理回路112から入力された画像データに対してホワイトバランス(WB)補正処理、YC分離処理、γ補正処理等の種々の画像処理を行う。ここで、WB補正処理とは、CCD出力処理回路112から入力された画像データにおける白色が所定の基準となる白色となるように画像データのR、G、Bゲインを補正して画像データの色バランスを補正する処理である。また、YC分離処理はR信号、G信号、B信号の3成分から構成される画像データを輝度信号Yと色信号Cとに分離する処理である。また、γ補正処理は画像データのγ特性を印刷や表示に適するような特性に補正する処理である。
圧縮/伸長回路114は、画像処理回路113で処理された画像データをJPEG方式等の所定の圧縮方式で圧縮したり、圧縮された画像データを伸長したりする。モニタインターフェース115は圧縮/伸長回路114で伸長された画像データを表示に適する信号に変換し、LCDモニタ9に画像表示を行う。また、モニタインターフェース115は、撮像素子110で時系列で得られ、画像処理回路113で処理された時系列の画像データをLCDモニタ9に表示する、所謂スルー画表示も行う。
また、画像記録回路116は、圧縮/伸長回路114から圧縮画像データを読み出して記録媒体117に記録したり、記録媒体117に記録された画像データを読み出して圧縮/伸長回路114に出力したりする。記録媒体117は、画像データを記録するための不揮発性の記録媒体であり、例えば当該カメラに対して着脱自在に構成されたメモリカードなどが用いられる。
シーケンスコントローラ118は、撮影時におけるモータドライバ109の動作制御、CCD駆動回路111の動作制御、CCD出力処理回路112の動作制御等の当該カメラの動作を統括的に制御する。このシーケンスコントローラ118には、上記したレリーズボタン4、ズームスイッチT5a、W5b、手ぶれ防止モード設定スイッチ6、動作モード切替スイッチ7、十字キー8等の操作部材が接続されており、これら操作部材の操作状態に応じて撮影制御等のカメラの各種制御を行う。
角速度センサX119は、当該カメラのX方向(図1(a)参照)の手ぶれを検出する。また、角速度センサY120は当該カメラのY方向の手ぶれを検出する。これら角速度センサは、それぞれ角速度センサアナログ処理回路121に接続されている。
角速度センサアナログ処理回路121は、角速度センサX119、角速度センサY120のそれぞれの出力におけるオフセットをキャンセルしたり、それぞれの出力を増幅したりするアナログ処理を行った後、これらの出力をデジタル化してシーケンスコントローラ118に出力する。このような構成によって手ぶれ検出部が構成されている。
シーケンスコントローラ118は、角速度センサアナログ処理回路121からの入力を時間で積分して時間毎の変位角度を算出する。そして、算出した変位角度と撮影レンズ2の焦点距離情報とから、撮像素子110において取得される画像のX方向の軌跡とY方向の軌跡(ぶれ軌跡)を演算し、この演算したぶれ軌跡に基づいて手ぶれの低減処理を行う。
ここで、手ぶれ検出のためのセンサは、角速度センサに限定されるものではない。例えば、演算処理を変更すれば、角加速度センサや2個ワンペアの加速度センサによっても手ぶれの検出を行うことができる。
次に、CCD駆動回路111によって制御される撮像素子110からの電荷の読み出しについて説明する。第1の実施形態においては、撮像素子110の各画素の出力を1画素ずつ読み出す各画素読み出しモードと、同色の画素の出力をN2画素(Nは2以上の整数)ずつアナログ的に加算してから読み出すN2画素加算読み出しモードと、同色の画素の出力をM2画素(Mは2以上の整数であってN>Mの関係を有する)ずつアナログ的に加算してから読み出すM2画素加算読み出しモードの3つの読み出しモードの何れかを選択して撮像素子110からの電荷を読み出すことが可能になっている。このために、撮像素子110には、同色の画素出力をN2画素毎に加算するN2電荷加算回路及び同色の画素出力をM2画素毎に加算するM2電荷加算回路が設けられている。
図3を参照してこれら3つの読み出しモードについて更に説明する。ここで、図3は、撮像素子110の画素配列を示している。この図3は、撮像素子110の画素配列がベイヤ配列の場合である。つまり、撮像素子110の各画素の前面には、図3に示す配列に対応する色フィルタが設けられている。なお、以下の説明では上記Nが4、Mが2であるとし、以後N2画素加算読み出しモードは16画素加算読み出しモード、M2画素加算読み出しモードは4画素加算読み出しモードと称する。
まず、各画素読み出しモードの場合には、図3に示す各画素からの電荷を1画素ずつ読み出す。例えば、R画素を例にとると、図3の正方形エリア200内においてR1〜R16の16画素分から発生した電荷をそれぞれ独立して読み出すようにする。
また、16画素加算読み出しモードの場合には、図3に示す16個の同色画素から発生した電荷をアナログ的に加算してから読み出す。例えば、R画素を例にとると、図3の正方形エリア200内のR1〜R16の16画素から発生した電荷を全て加算してから読み出すようにする。B画素、G画素についても同様である。ただし、ベイヤ配列においてはG画素が正方形エリア200内に32画素存在するので、G画素については正方形エリア200内の奇数行同士(図3のG2同士)、偶数行同士(図3のG1同士)で加算を行う。
また、4画素加算読み出しモードの場合には、図3に示す4個の同色画素から発生した電荷をアナログ的に加算してから読み出す。例えば、R画素を例にとると、図3の正方形エリア200内のR1〜R4の4画素、R5〜R8の4画素、R9〜R12の4画素、R13〜R16の4画素から発生した電荷をそれぞれ加算してから読み出すようにする。B画素、G画素についても同様である。ただし、G画素については16画素加算読み出しモードの場合と同様に正方形エリア200内の奇数行同士、偶数行同士で加算を行う。
図4は、各画素読み出しモードにおける撮像素子110の画素出力の読み出しタイミングについて示すタイミングチャートである。また、図5は、各画素読み出しを行うための撮像素子110の構成について説明するための図である。ここで、図5(a)は垂直CCDの構成について説明するための図であり、図5(b)は水平CCDの構成について説明するための図である。図5(a)に示すように撮像素子110の各画素は転送ゲートA〜Hを介して垂直CCD110aに接続されている。また、図5(b)に示すように各垂直CCD110aは転送ゲートa〜hを介して水平CCD110bに接続されている。
図4に示すように、各画素読み出しモードの場合には全ての画素の読み出しタイミングが同じになるように、垂直転送時及び水平転送時でそれぞれ全ての画素の転送ゲートを同時に開閉するように制御する。これにより、撮像素子110の各画素からの電荷がそれぞれ独立に垂直転送及び水平転送される。
図6は、16画素加算読み出しモードにおける撮像素子110の読み出しタイミングについて示すタイミングチャートである。また、図7は、16画素加算読み出しを行うための撮像素子110の構成について説明するための図である。ここで、図7(a)は垂直CCDの構成について説明するための図であり、図7(b)は水平CCDの構成について説明するための図である。
まず、垂直転送時の制御について説明する。図6に示すように、16画素加算読み出しモードにおいては、最初の読み出しタイミングT1で転送ゲートAと転送ゲートBのみを開閉して電荷の読み出しを行う。その後、この読み出された電荷が4回転送されるタイミングT2で転送ゲートCと転送ゲートDのみを開閉して電荷の読み出しを行う。これにより転送ゲートAを介して読み出されたR画素の電荷と転送ゲートCを介して読み出されたR画素の電荷が加算され、転送ゲートBを介して読み出されたG1(図3参照)画素の電荷と転送ゲートDを介して読み出されたG1画素の電荷が加算されることになる。次に、これら加算された電荷が4回転送されるタイミングT3で転送ゲートEと転送ゲートFのみを開閉して電荷の読み出しを行う。これにより2画素加算後のR画素の電荷に転送ゲートEを介して読み出されたR画素の電荷が加算され、2画素加算後のG1画素の電荷に転送ゲートFを介して読み出されたG1画素の電荷が加算されることになる。更に、これら加算された電荷が4回転送されるタイミングT4で転送ゲートGと転送ゲートHのみを開閉して電荷の読み出しを行う。これによりR画素及びG1画素は、それぞれ4画素分の電荷が加算されることになる。なお、B画素及びG2画素も同様にして転送ゲートの制御を行うことにより垂直転送時に4画素分の電荷が加算される。
一方、水平転送の場合も垂直転送の場合と同様にして転送ゲートの開閉を行う。これにより、転送ゲートの開閉が行われるたびに、垂直転送の際に4画素分加算された電荷が加算されていくので、最終的に16画素分加算された電荷が出力されることになる。
このようにして画素出力を加算してから読み出すことによって露光時間を短縮し、手ぶれの影響を低減することができる。ただし、16画素分の出力を加算してから読み出すので、各画素読み出しモードに比べて画像の解像度が低下する。
図8は、4画素加算読み出しモードにおける撮像素子110の読み出しタイミングについて示すタイミングチャートである。また、図9は、4画素加算読み出しを行うための撮像素子110の構成について説明するための図である。ここで、図9(a)は垂直CCDの構成について説明するための図であり、図9(b)は水平CCDの構成について説明するための図である。
まず、垂直転送について説明する。図8に示すように、最初の読み出しタイミングT1では転送ゲートA及び転送ゲートEと、転送ゲートB及び転送ゲートFのみを開閉して電荷の読み出しを行う。次に、これら読み出された電荷が4回転送されるタイミングT2で転送ゲートC及び転送ゲートGと、転送ゲートD及び転送ゲートHのみを開閉して電荷の読み出しを行う。これにより転送ゲートAを介して読み出されたR画素の電荷と転送ゲートCを介して読み出されたR画素の電荷が加算され、転送ゲートBを介して読み出されたG1画素の電荷と転送ゲートDを介して読み出されたG1画素の電荷が加算され、転送ゲートEを介して読み出されたR画素の電荷と転送ゲートGを介して読み出されたR画素の電荷が加算され、転送ゲートFを介して読み出されたG1画素の電荷と転送ゲートHを介して読み出されたG1画素の電荷が加算されることになる。
一方、水平転送の場合も垂直転送の場合と同様にして転送ゲートの開閉を行う。これにより、最終的に4画素毎加算された電荷が出力されることになる。
ここで、上記したような3つの読み出しモードに従って読み出された電荷は、図示しない電荷電圧変換アンプにおいてアナログの電圧信号に変換され、CCD出力処理回路112に出力される。
次に、CCD出力処理回路112について説明する。図10は、CCD出力処理回路112の内部の構成について示す図である。CCD出力処理回路112は、ゲイン可変アンプ112aと、ゲインコントローラ112bと、A/D変換器112cとから構成されている。増幅回路としてのゲイン可変アンプ112aは、撮像素子110から入力されたアナログの電圧信号を所定の増幅率(アンプゲイン)で増幅する。ゲインコントローラ112bはシーケンスコントローラ118からのゲインコントロール信号に基づいてゲイン可変アンプ112aのアンプゲインを設定する。A/D変換器112cは、ゲイン可変アンプ112aで増幅された信号をデジタル信号(デジタル画像データ)に変換する。
ここで、ゲイン可変アンプ112aのアンプゲインはゲイン可変アンプ112aに予め設定されたゲイン値Aとゲインコントローラ112bにおいて設定される倍率とによって決定されるものである。なお、ゲイン値Aは、例えば撮像素子110の蓄積電荷量がほぼ飽和状態となるか又は飽和している場合の出力信号を増幅したときに、その出力がA/D変換器112cにおいてA/D変換可能な最大変換レベルとなるような値に設定されている。
次に、上記したような構成を有するカメラにおける静止画撮影モードの際の処理について図11のフローチャートを参照して説明する。
静止画撮影モードにおいて、シーケンスコントローラ118は、撮影者によって1stレリーズスイッチがオンされたか否かを判定する(ステップS1)。
ステップS1の判定において、1stレリーズスイッチがオンされていない場合には、処理がステップS1からステップS2に分岐して、シーケンスコントローラ118は、所定周期毎に撮像素子110から得られた画像をLCDモニタ9に表示させるスルー画表示の制御を行う(ステップS2)。その後に、シーケンスコントローラ118は、手ぶれ防止モード設定スイッチ6がオンに設定されているか否かを判定する(ステップS3)。
ステップS3の判定において、手ぶれ防止モード設定スイッチ6がオンに設定されている場合には、処理がステップS3からステップS4に分岐して、シーケンスコントローラ118は、手ぶれ量を検出するために角速度センサX119、角速度センサY120を動作オンする(ステップS4)。一方、ステップS3の判定において、手ぶれ防止モード設定スイッチ6がオフに設定されている場合には、処理がステップS3からステップS5に分岐する。この場合、シーケンスコントローラ118は、角速度センサX119、角速度センサY120を動作オフする(ステップS5)。
ステップS4又はステップS5の処理の終了後、シーケンスコントローラ118は、レリーズボタン4、手ぶれ防止モード設定スイッチ6以外の各種操作部材がオンされたか否かを判定する(ステップS6)。ステップS6の判定において、各種操作部材がオンされた場合には、処理がステップS6からステップS7に分岐して、シーケンスコントローラ118は、オンされた操作部材に対応する処理を実行する(ステップS7)。その後に、処理がステップS1に戻る。一方、ステップS6の判定において、各種スイッチがオンされていない場合には、処理がステップS6からステップS1に戻る。
また、ステップS1の判定において、1stレリーズスイッチがオンされている場合には、処理がステップS1からステップS8に分岐して、シーケンスコントローラ118は、自動焦点調整(AF)処理を行う(ステップS8)。このAF処理の手法としては、撮像素子110から出力される画像のコントラストが最も高くなるように撮影レンズ2を駆動させる手法等の周知の手法を用いれば良い。また、専用のAFセンサを用いて撮影レンズ2の焦点状態を検出できるようにしても良い。ステップS8のAFの終了後、シーケンスコントローラ118は画像の明るさを検出する測光処理を行う(ステップS9)。その後、シーケンスコントローラ118は、撮像素子110の適正露光時間tEXPを演算する露光量演算を行う(ステップS10)。例えば、撮像素子110の画素を構成するフォトダイオードセルの飽和露光量(蓄積電荷の最大値)と垂直CCD及び水平CCDを構成する転送セルの最大蓄積電荷量とがほぼ等しい場合には、適正露光時間tEXPは、測光の結果、最も明るいと判定された画素の蓄積電荷量がほぼ飽和状態となるか又は飽和状態に近い状態となるまでの露光時間となる。
ステップS10の露光量演算の後、シーケンスコントローラ118は、撮影者によって2ndレリーズスイッチがオンされたか否かを判定し(ステップS11)、2ndレリーズスイッチがオンされるまで待機する。ステップS11の判定において、2ndレリーズスイッチがオンされた場合には、処理がステップS11からステップS12に分岐してシーケンスコントローラ118は、スルー画表示を停止させ(ステップS12)、モータドライバ109を介して絞り2cの駆動制御を行う(ステップS13)。
次に、シーケンスコントローラ118は、手ぶれ防止モード設定スイッチ6がオンに設定されているか否かを判定する(ステップS14)。ステップS14の判定において、手ぶれ防止モード設定スイッチ6がオンに設定されている場合には、処理がステップS14からステップS15に分岐して、シーケンスコントローラ118は露光制御1の処理を行う(ステップS15)。また、ステップS14の判定において、手ぶれ防止モード設定スイッチ6がオンに設定されていない場合には、処理がステップS14からステップS16に分岐して、シーケンスコントローラ118は露光制御2の処理を行う(ステップS16)。これら露光制御1及び露光制御2の処理については後で詳しく説明する。
ステップS15又はステップS16の露光制御の後、画像処理回路113は、シーケンスコントローラ118の制御のもと、CCD出力処理回路112から入力された画像データを画像処理して、圧縮/伸長回路114に出力する(ステップS17)。圧縮/伸長回路114は、画像処理回路113で処理された画像データを圧縮し(ステップS18)、この圧縮画像データを記録媒体117に記録する(ステップS19)。
ステップS19の画像記録が終了した後、シーケンスコントローラ118は絞り2cを開放させるようにモータドライバ109を制御する(ステップS20)。その後、処理がステップS1に戻る。
次に、図11のステップS15の露光制御1の処理について説明する。図12は、第1の実施形態における露光制御1の処理について示すフローチャートである。
ここで、露光制御1の処理について説明する前に、ボケ円径という量を定義する。このボケ円径は、手ぶれ量の積算値の評価レベルを示すものであり、角速度センサX119、角速度センサY120の出力に基づいて求められたぶれ軌跡を含む最小の円(以下、ボケ円と称する)の直径として定義される。例えば、露光開始からのぶれ軌跡が図13(a)の参照符号301aで表される場合、そのときのボケ円径はぶれ軌跡301aを含むような最小の円であるボケ円302aの直径303aとして求めることができる。また、露光開始からのぶれ軌跡が図13(b)の参照符号301bで表される場合にはボケ円径はボケ円302bの直径303bとなり、ぶれ軌跡が図13(c)の参照符号301cで表される場合にはボケ円径はボケ円302cの直径303cとなる。このように、ボケ円径はぶれ軌跡を求める際の基準となる所定の点像の移動範囲を表す量となる。このようなボケ円径を定義することにより、手ぶれによる画像のボケ量を評価することが可能となる。
以下、図12のフローチャートについて説明する。まず、露光の準備として、シーケンスコントローラ118はCCD駆動回路111を介して撮像素子110の各画素に蓄積されている電荷をリセットする(ステップS21)。次に、シーケンスコントローラ118は、撮像素子110の積分時間を計時するための図示しないタイマのカウント値tを0にリセットした後(ステップS22)、CCD駆動回路111を介して撮像素子110の積分動作を開始させる(ステップS23)。また、これと同時に、シーケンスコントローラ118は、角速度センサX119、角速度センサY120からの出力を積算することにより露光中のぶれ軌跡を算出する。同時にシーケンスコントローラ118は、算出したぶれ軌跡からボケ円径を算出する(ステップS24)。
次に、シーケンスコントローラ118は、ボケ円径が16画素加算読み出しモードにおける画素加算の範囲を超えていないか否かを判定する(ステップS25)。図14(a)に16画素加算読み出しモードの画素加算範囲とボケ円との関係について示す。図14(a)に示すように、16画素加算読み出しモードにおける画素加算の範囲は8画素×8画素で表すことができる。ここで、図14(a)のPは撮像素子110の画素ピッチを示しており、これから、ステップS25の判定は、ボケ円径が第1の閾値レベルである8P未満であるか否かを判定すれば良いことになる。
ステップS25の判定において、ボケ円径が8P以上である場合には、処理がステップS25からステップS26に分岐する。この場合は、ボケ円が16画素加算読み出しモードの画素加算の範囲よりも大きいので、手ぶれによる画像のボケの影響のほうが16画素加算を行うことによる画像の解像度の低下の影響よりも大きくなる。このような場合には16画素加算読み出しモードを利用して手ぶれの低減を行うようにする。このために、シーケンスコントローラ118は、シャッタを閉じて撮像素子110の露光を打ち切る(ステップS26)。ここで、シャッタは、例えば撮像素子110の素子シャッタ(電子シャッタ)を利用しても良いし、撮像素子110の前面に機械式のシャッタを設けるようにしても良い。
ステップS26において露光を打ち切った後、シーケンスコントローラ118は、ゲイン可変アンプ112aのアンプゲインを、
アンプゲイン=A×(1/16tEXP÷tEXPA1) (式1)
に設定する(ステップS27)。ここで、(式1)のtEXPは図11のステップS10で求めた適正露光時間であり、tEXPA1は露光開始から露光を打ち切った時点までの時間である。
ステップS27においてアンプゲインを設定した後、シーケンスコントローラ118は、16画素加算読み出しモードで撮像素子110からの電荷を読み出すようにCCD駆動回路111に指示を送る(ステップS28)。その後、処理が図11のステップS17に移行する。
また、ステップS25の判定において、ボケ円径が8P未満である場合には、処理がステップS25からステップS29に分岐する。この場合、シーケンスコントローラ118は、タイマのカウント値tが第1の時点である1/16tEXPとなったか否かを判定する(ステップS29)。ステップS29の判定において、tが1/16tEXPとなっていない場合には、処理がステップS29からステップS25に戻る。また、ステップS29の判定において、tが1/16tEXPとなった場合には、16画素加算読み出しモードを利用した手ぶれの低減を行わずに、処理がステップS29からステップS30に分岐する。
ここで、16画素加算読み出しモードを利用した手ぶれの低減を露光開始から1/16tEXPまでの期間でしか行わない理由について説明する。図15は、露光時間とゲイン可変アンプ112aの出力との関係について示した図である。一般に、撮像素子110の出力は露光時間に比例するので、図15に示すようにゲイン可変アンプ112aの出力も露光時間に比例する。また、図15に示すように、適正露光時間tEXPだけ露光を行うことにより、ゲイン可変アンプ112aの出力が、A/D変換器112cにおいてA/D変換可能な最大レベル(A/D変換MAXレベル)となるようにゲイン値Aが設定されている。ただし、この適正露光時間tEXPは画素加算を行わないことを前提としており、16画素加算読み出しモードの場合には1/16tEXPよりも長い時間露光してしまうと、CCD転送路を構成する転送セルの電荷量が飽和してしまい、正しい画素出力が得られない可能性がある。
そこで、第1の実施形態では、16画素加算読み出しモードを利用した手ぶれの低減を、図15に示す16画素加算領域(0≦t<1/16tEXP)の期間内でのみ行うようにしている。
また、図16に示すように、1/16tEXPよりも短い時間で露光を打ち切った場合には撮像素子110のからの出力信号をゲイン値A倍してもその出力は、A/D変換MAXレベルにはならない。そこで、1/16tEXPよりも短いtEXPA1で露光を打ち切った場合には、(式1)に示すようなアンプゲインを設定する。このようなアンプゲインを設定することにより、ゲイン可変アンプ112aの出力をA/D変換MAXレベルとすることが可能である。
次に、図12のステップS29の判定において、tが1/16tEXPとなった場合には、シーケンスコントローラ118は、ステップS24で算出したボケ円径が第2の閾値レベルである4P未満であるか否かを判定する(ステップS30)。即ち、4画素加算読み出しモードにおける画素加算の範囲は、図14(b)に示すように4画素×4画素であるためステップS30のような判定を行う。
ステップS30の判定において、ボケ円径が4P以上である場合には、処理がステップS30からステップS31に分岐して、シーケンスコントローラ118は、シャッタを閉じて撮像素子110の露光を打ち切った後(ステップS31)、ゲイン可変アンプ112aのアンプゲインを、
アンプゲイン=A×(1/4tEXP÷tEXPA2) (式2)
に設定する(ステップS32)。ここで、tEXPA2は露光開始から露光を打ち切った時点までの時間である。
ステップS32においてアンプゲインを設定した後、シーケンスコントローラ118は、4画素加算読み出しモードで撮像素子110からの電荷を読み出すようにCCD駆動回路111に指示を送る(ステップS33)。その後、処理が図11のステップS17に移行する。
また、ステップS30の判定において、ボケ円径が4P未満である場合には、処理がステップS30からステップS34に分岐する。この場合、シーケンスコントローラ118は、タイマのカウント値tが第2の時点である1/4tEXPとなったか否かを判定する(ステップS34)。ステップS34の判定において、tが1/4tEXPとなっていない場合には、処理がステップS34からステップS30に戻る。また、ステップS34の判定において、tが1/4tEXPとなった場合には、4画素加算読み出しモードを利用した手ぶれの低減を行わず、処理がステップS34からステップS35に分岐する。ここで、4画素加算読み出しモードを利用した手ぶれの低減を図15に示す4画素加算領域(1/16tEXP≦t<1/4tEXP)の範囲でしか行わない理由は、16画素加算読み出しモードのときと同様の理由である。
ステップS34の判定において、tが1/4tEXPとなった場合には、シーケンスコントローラ118は、ステップS24で算出したボケ円径が2P未満であるか否かを判定する(ステップS35)。この2Pは、図14(c)に示すベイヤ配列の画素単位であるR、G1、G2、Bの範囲に相当する範囲である。
ステップS35の判定において、ボケ円径が2P以上である場合には、処理がステップS35からステップS36に分岐して、シーケンスコントローラ118は、シャッタを閉じて撮像素子110の露光を打ち切った後(ステップS36)、ゲイン可変アンプ112aのアンプゲインを、
アンプゲイン=A×(tEXP÷tEXPA3) (式3)
に設定する(ステップS37)。ここで、tEXPA3は露光開始から露光を打ち切った時点までの時間ある。
ステップS37においてアンプゲインを設定した後、シーケンスコントローラ118は、各画素読み出しモードで撮像素子110からの電荷を読み出すようにCCD駆動回路111に指示を送る(ステップS38)。その後、処理が図11のステップS17に移行する。
即ち、ステップS36〜ステップS38の処理は画素加算を行わずにゲイン可変アンプ112aにおける信号の増幅のみによって露光時間を短縮し、手ぶれの低減を行う処理である。
また、ステップS35の判定において、ボケ円径が2P未満である場合には手ぶれが殆どないので、手ぶれの低減処理を行う必要がない。この場合は、処理がステップS35からステップS39に分岐して、シーケンスコントローラ118は、タイマのカウント値tがtEXPとなったか否かを判定し(ステップS39)、tがtEXPとなっていない場合にはステップS35に戻る。一方、ステップS39の判定において、tがtEXPとなった場合には、処理がステップS39からステップS40に分岐する。この場合には、適正露光時間tEXPが経過したので、シーケンスコントローラ118は、シャッタを閉じて露光を終了させ(ステップS40)、アンプゲインをAに設定する(ステップS41)。その後、処理がステップS38に移行して、シーケンスコントローラ118は、各画素読み出しモードで撮像素子110からの電荷を読み出すようにCCD駆動回路111に指示を送る。その後、処理が図11のステップS17に移行する。
次に、図11のステップS16の露光制御2について説明する。図17は、露光制御2の処理について示すフローチャートである。
まず、露光の準備として、シーケンスコントローラ118はCCD駆動回路111を介して撮像素子110の各画素に蓄積されている電荷をリセットする(ステップS51)。次に、シーケンスコントローラ118は、撮像素子110の積分時間を計時するための図示しないタイマのカウント値tを0にリセットした後(ステップS52)、CCD駆動回路111を介して撮像素子110の積分動作を開始させる(ステップS53)。
次に、シーケンスコントローラ118は、適正露光時間tEXPが手ぶれ秒時1/f以上であるか否かを判定する(ステップS54)。ここで、手ぶれ秒時は、撮影レンズ2の焦点距離fの逆数として定義される。一般に、露光時間が手ぶれ秒時内であれば手ぶれが発生しにくいとされている。
ステップS54の判定において、tEXPが1/f以上である場合には、処理がステップS54からステップS55に分岐して、シーケンスコントローラ118は、手ぶれ発生の可能性が高いため、露光補助のために、フラッシュ発光部3を発光させるように指示を送る(ステップS55)。その後、ステップS56に移行する。一方、ステップS54の判定において、tEXPが1/f未満である場合には、フラッシュ発光部3を発光させずに、処理がステップS54からステップS56に分岐する。
ステップS54又はステップS55の後、シーケンスコントローラ118は、タイマのカウント値tが適正露光時間tEXPとなったか否かを判定し(ステップS56)、tがtEXPとなるまで待機する。一方、ステップS56の判定において、tがtEXPとなった場合には、処理がステップS56からステップS57に分岐する。この場合には、適正露光時間tEXPが経過したので、シーケンスコントローラ118は、シャッタを閉じて露光を終了させ(ステップS57)、アンプゲインをAに設定する(ステップS58)。その後、シーケンスコントローラ118は、各画素読み出しモードで撮像素子110からの電荷を読み出すようにCCD駆動回路111に指示を送る(ステップS59)。そして、処理が図11のステップS17に移行する。
以上説明したように第1の実施形態によれば、露光中の手ぶれの大きさをボケ円径によって評価し、このボケ円径が所定の閾値を超えた場合に、その時点で露光を打ち切った後、その時点で最も近い加算範囲の画素加算読み出しモードで撮像素子110から電荷を読み出すようにしている。これにより、手ぶれの大きさに応じた最適な読み出しモードで電荷を読み出して画像の劣化の少ない画像を得ることができる。
つまり、16画素加算読み出しモードは、手ぶれ低減の効果が高い反面、16画素分の電荷を加算するので画像の解像度が各画素読み出しモードに比べて低下する。このため、第1の実施形態では、手ぶれが大きい場合にのみ16画素加算読み出しモードを選択して手ぶれによる画像の劣化を押さえ、手ぶれが中程度の場合には16画素加算読み出しモードよりも手ぶれ補正の効果が低くなる分、解像度の低下も少ない4画素加算読み出しモードを選択し、手ぶれが殆どない場合には、画像の解像度を優先して各画素読み出しモードを選択することにより、画像の劣化を最小限とすることができる。
また、ボケ円径の判定の際にボケ円径が閾値を越えた時点で露光を打ち切るようにしているので、その時点の手ぶれよりも更に手ぶれが大きくなって画像の劣化がより進むことがない。また、撮像素子の露光開始時点から撮像素子の露光を打ち切る時点までの時間に応じてゲイン可変アンプ112aのアンプゲインを設定するので、露光を途中で打ち切ることによる露光量のレベル低下を補うことができる。
[第2の実施形態]
次に、本発明の第2の実施形態について説明する。第2の実施形態は、第1の実施形態における露光制御1の処理を簡略化した例である。この第2の実施形態においては、画素の読み出しモードを9画素加算読み出しモードと各画素読み出しモードの2つとしている。
図18は、第2の実施形態における露光制御1の処理について示すフローチャートである。なお、これ以外の静止画撮影モードの際の処理及び露光制御2の処理については第1の実施形態と同様である。
まず、露光の準備として、シーケンスコントローラ118はCCD駆動回路111を介して撮像素子110の各画素に蓄積されている電荷をリセットする(ステップS61)。次に、シーケンスコントローラ118は、撮像素子110の積分時間を計時するための図示しないタイマのカウント値tを0にリセットした後(ステップS62)、CCD駆動回路111を介して撮像素子110の積分動作を開始させる(ステップS63)。また、これと同時に、シーケンスコントローラ118は、角速度センサX119、角速度センサY120からの出力を積算することにより露光中のぶれ軌跡を算出する。同時にシーケンスコントローラ118は、算出したぶれ軌跡からボケ円径を算出する(ステップS64)。
次に、シーケンスコントローラ118は、ボケ円径が図19に示す9画素加算の加算範囲を超えていないか否かを判定する(ステップS65)。図19に示すように、9画素加算の加算範囲は6画素×6画素となるので、ステップS65の判定は、ボケ円径が6P未満であるか否かを判定すれば良い。
ステップS65の判定において、ボケ円径が6P以上である場合には、処理がステップS65からステップS66に分岐する。この場合には、9画素加算読み出しモードを利用した手ぶれの低減を行う。このためにシーケンスコントローラ118は、シャッタを閉じて撮像素子110の露光を打ち切った後(ステップS66)、ゲイン可変アンプ112aのアンプゲインを、
アンプゲイン=A×(1/9tEXP÷tEXPA) (式4)
に設定する(ステップS67)。ここで、tEXPAは露光開始から露光を打ち切った時点までの時間である。
ステップS67においてアンプゲインを設定した後、シーケンスコントローラ118は、9画素加算読み出しモードで撮像素子110からの電荷を読み出すようにCCD駆動回路111に指示を送る(ステップ68)。その後、処理が図11のステップS17に戻る。
また、ステップS65の判定において、ボケ円径が6P未満である場合には、処理がステップS65からステップS69に分岐して、シーケンスコントローラ118は、タイマのカウント値tが1/9tEXPとなったか否かを判定する(ステップS69)。ステップS69の判定において、tが1/9tEXPとなっていない場合には、処理がステップS69からステップS65に戻る。また、ステップS69の判定において、tが1/9tEXPとなった場合には、9画素加算読み出しモードを利用した手ぶれの低減を行わず、処理がステップS69からステップS70に分岐する。ここで、9画素加算読み出しモードを利用した手ぶれの低減を露光開始からから1/9tEXPまでしか行わない理由は、第1の実施形態で説明した16画素加算読み出しモードの場合と同様の理由である。
ステップS69の判定において、tが1/9tEXPとなった場合には、シーケンスコントローラ118は、ボケ円径が2P未満であるか否かを判定する(ステップS70)。ステップS70の判定において、ボケ円径が2P以上である場合には、処理がステップS70からステップS71に分岐して、シーケンスコントローラ118は、シャッタを閉じて撮像素子110の露光を打ち切った後(ステップS71)、ゲイン可変アンプ112aのアンプゲインを、
アンプゲイン=A×(tEXP÷tEXPA) (式5)
に設定する(ステップS72)。
ステップS72においてアンプゲインを設定した後、シーケンスコントローラ118は、各画素読み出しモードで撮像素子110からの電荷を読み出すようにCCD駆動回路111に指示を送る(ステップS73)。その後、処理が図11のステップS17に戻る。
また、ステップS70の判定において、ボケ円径が2P未満である場合には、処理がステップS70からステップS74に分岐して、シーケンスコントローラ118は、タイマのカウント値tがtEXPとなったか否かを判定し(ステップS74)、tがtEXPとなっていない場合にはステップS74の判定を継続する。一方、ステップS74の判定においてtがtEXPとなった場合には、処理がステップS74からステップS75に分岐する。この場合には、適正露光時間が経過したので、シーケンスコントローラ118は、シャッタを閉じて露光を終了させ(ステップS75)、アンプゲインをAに設定する(ステップS76)。その後、処理がステップS73に移行して、シーケンスコントローラ118は、各画素読み出しモードで撮像素子110からの電荷を読み出すようにCCD駆動回路111に指示を送る。その後、処理が図11のステップS17に戻る。
以上説明したように第2の実施形態によれば、16画素加算読み出しモードと4画素加算読み出しモードの中間的な画素加算読み出しモードである9画素加算読み出しモードを用いて露光制御1の処理を簡略化することができる。
なお、第2の実施形態における露光制御1を図20のようにすれば、更に処理を簡略化することができる。図20において、まず、露光の準備として、シーケンスコントローラ118はCCD駆動回路111を介して撮像素子110の各画素に蓄積されている電荷をリセットする(ステップS81)。次に、シーケンスコントローラ118は、撮像素子110の積分時間を計時するための図示しないタイマのカウント値tを0にリセットした後(ステップS82)、CCD駆動回路111を介して撮像素子110の積分動作を開始させる(ステップS83)。また、これと同時に、シーケンスコントローラ118は、角速度センサX119、角速度センサY120からの出力を積算することにより露光中のぶれ軌跡を算出する。同時にシーケンスコントローラ118は、算出したぶれ軌跡からボケ円径を算出する(ステップS84)。
次に、シーケンスコントローラ118は、ボケ円径が2P未満であるか否かを判定する(ステップS85)。ステップS85の判定において、ボケ円径が2P以上である場合には、処理がステップS85からステップS86に分岐する。この場合には、9画素加算読み出しモードを利用した手ぶれの低減を行う。即ち、シーケンスコントローラ118は、シャッタを閉じて撮像素子110の露光を打ち切った後(ステップS86)、ゲイン可変アンプ112aのアンプゲインを(式4)のアンプゲインに設定する(ステップS87)。
ステップS87においてアンプゲインを設定した後、シーケンスコントローラ118は、9画素加算読み出しモードで撮像素子110からの電荷を読み出すようにCCD駆動回路111に指示を送る(ステップ88)。その後、処理が図11のステップS17に戻る。
また、ステップS85の判定において、ボケ円径が2P未満である場合には、処理がステップS85からステップS89に分岐して、シーケンスコントローラ118は、タイマのカウント値tが1/9tEXPとなったか否かを判定する(ステップS89)。ステップS89の判定において、tが1/9tEXPとなっていない場合には、処理がステップS89からステップS85に戻る。また、ステップS89の判定において、tが1/9tEXPとなった場合には、9画素加算読み出しモードを利用した手ぶれの低減を行わず、処理がステップS89からステップS90に分岐して、シーケンスコントローラ118は、タイマのカウント値tがtEXPとなったか否かを判定し(ステップS90)、tがtEXPとなるまで待機する。
一方、ステップS90の判定においてtがtEXPとなった場合には、処理がステップS90からステップS91に分岐する。この場合には、適正露光時間が経過したので、シーケンスコントローラ118は、シャッタを閉じて露光を終了させ(ステップS91)、アンプゲインをAに設定する(ステップS92)。その後、シーケンスコントローラ118は、各画素読み出しモードで撮像素子110からの電荷を読み出すようにCCD駆動回路111に指示を送る(ステップS93)。その後、処理が図11のステップS17に戻る。
即ち、図20の変形例では、9画素加算読み出しモードを利用した手ぶれの低減を行うか否かを判定するための閾値を2Pとし、更に各画素読み出しモードで電荷を読み出す場合には露光を途中で打ち切らないようにしている。これにより9画素加算読み出しモードを利用した手ぶれの低減が行われ易くなり、かつ図18に比べて処理が更に簡略化される。
[第3の実施形態]
次に、本発明の第3の実施形態について説明する。第3の実施形態は、画素加算を行わず、ゲイン可変アンプ112aにおけるアンプゲインを調整することにより、露光時間を短縮して、手ぶれの影響を低減する例である。
図21は、第3の実施形態における露光制御1の処理について示すフローチャートである。なお、これ以外の静止画撮影モードの際の処理及び露光制御2の処理については第1の実施形態と同様である。
まず、露光の準備として、シーケンスコントローラ118はCCD駆動回路111を介して撮像素子110の各画素に蓄積されている電荷をリセットする(ステップS101)。次に、シーケンスコントローラ118は、撮像素子110の積分時間を計時するための図示しないタイマのカウント値tを0にリセットした後(ステップS102)、CCD駆動回路111を介して撮像素子110の積分動作を開始させる(ステップS103)。また、これと同時に、シーケンスコントローラ118は、角速度センサX119、角速度センサY120からの出力を積算することにより露光中のぶれ軌跡を算出する。同時にシーケンスコントローラ118は、算出したぶれ軌跡からボケ円径を算出する(ステップS104)。
次に、シーケンスコントローラ118は、ボケ円径が4Pを超えていないか否かを判定する(ステップS105)。なお、ここでの4Pは一例であり、変更可能な閾値レベルである。ステップS105の判定において、ボケ円径が4P以上である場合には、処理がステップS105からステップS106に分岐する。この場合、シーケンスコントローラ118は、シャッタを閉じて撮像素子110の露光を打ち切った後(ステップS106)、ゲイン可変アンプ112aのアンプゲインを、(式5)のように設定する(ステップS107)。その後、処理がステップS111に移行して、シーケンスコントローラ118は、各画素読み出しモードで撮像素子110からの電荷を読み出すようにCCD駆動回路111に指示を送る(ステップS111)。その後、処理が図11のステップS17に戻る。
一方、ステップS105の判定において、ボケ円径が4P未満である場合には、処理がステップS105からステップS108に分岐して、シーケンスコントローラ118は、タイマのカウント値tがtEXPとなったか否かを判定し(ステップS108)、tがtEXPとなっていない場合には、ステップS108の判定を継続する。
一方、ステップS108の判定においてtがtEXPとなった場合には、処理がステップS108からステップS109に分岐する。この場合には、適正露光時間が経過したので、シーケンスコントローラ118は、シャッタを閉じて露光を終了させ(ステップS109)、アンプゲインをAに設定する(ステップS110)。次に、処理がステップS111に移行して、シーケンスコントローラ118は、各画素読み出しモードで撮像素子110からの電荷を読み出すようにCCD駆動回路111に指示を送る。その後、処理が図11のステップS17に戻る。
以上説明したように第3の実施形態によっても、手ぶれを軽減するための機構系を一切用いることなしに、手ぶれの軽減を行うことができる。
以上実施形態に基づいて本発明を説明したが、本発明は上記した実施形態に限定されるものではなく、本発明の要旨の範囲内で種々の変形や応用が可能なことは勿論である。
さらに、上記した実施形態には種々の段階の発明が含まれており、開示される複数の構成要件の適当な組合せにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成も発明として抽出され得る。
1…カメラボディ、2…撮影レンズ、3…フラッシュ発光部、4…レリーズボタン、5…ズームスイッチ、6…手ぶれ防止モード設定スイッチ、103…ズーム駆動系、104…ズームモータ、105…絞り駆動系、106…絞りモータ、107…フォーカス駆動系、108…フォーカスモータ、109…モータドライバ、110…撮像素子、111…CCD駆動回路、112…CCD出力処理回路、113…画像処理回路、114…圧縮/伸長回路、115…モニタインターフェース、116…画像記録回路、117…記録媒体、118…シーケンスコントローラ、119…角速度センサX、120…角速度センサY、121…角速度センサアナログ処理回路