以下、図面を参照して本発明の実施の形態を説明する。
[実施形態1]
図1から図16は本発明の実施形態1を示したものであり、図1は撮像装置の構成を示すブロック図である。
本実施形態の撮像装置1は、例えばデジタルカメラとして構成されたものとなっていて、撮影レンズ2と、メカニカル後幕シャッタ3と、撮像素子4と、画像処理部5と、内部メモリ6と、外部メモリ7と、表示部8と、指示部9と、システム制御部10と、手振れ検出部11と、手振れ補正部12と、位置検出部13と、を備えている。
撮影レンズ2は、被写体像を撮像素子4の撮像面22(図2等参照)上に結像するための撮影光学系であり、絞りやフォーカスレンズ等を含んで構成されている。
メカニカル後幕シャッタ3は、撮影レンズ2と撮像素子4との間に配置されていて、撮影レンズ2から撮像素子4へ至る光束の通過終了時間を規定することにより、露出を制御するためのものである。具体的には、メカニカル後幕シャッタ3は、露光用の開口部31(図3〜図7等参照)を閉じた状態で光束の通過を遮断し、該露光用の開口部31を開いた状態で光束の通過を許容する。そして、メカニカル後幕シャッタ3は、撮像素子4の撮像面22に沿った垂直方向に走行し、撮影レンズ2からの光が撮像面22へ到達する状態から遮光される状態へ移行させる。ここに、メカニカル後幕シャッタ3は、閉動作を行う際にチャージしたばねの弾性力により速度0から徐々に加速しながら撮像面22に沿って走行する構造となっているために、走行特性(メカニカル後幕シャッタ3の走行開始から、撮像面22上の任意の位置の画素21(図2等参照)がメカニカル後幕シャッタ3によって遮光されるまでの時間特性)を有し、閉動作にはある程度の時間を要する。この走行特性については後でより詳しく説明する。一方、メカニカル後幕シャッタ3の開動作は、モータ等を用いてばねをチャージすることにより行われる。
撮像素子4は、撮影レンズ2を介して結像された光学像を光電変換して電気的な画像信号を生成するものである。ただし、本実施形態の撮像素子4は、ライン単位もしくは複数ライン単位(ここに、ラインの方向はメカニカル後幕シャッタ3の走行方向に直交する方向となっている)での画素リセットを順次行うことができるような撮像素子となっている。ここに、撮像素子4の具体例としては、CMOS撮像素子等のXYアドレス型撮像素子を例に挙げることができるが、これに限定されるものではない。
画像処理部5は、撮像素子4により撮像されて読み出された画像信号に、各種の画像処理を施すものである。ここに、画像処理部5により行われる画像処理には、各画素毎(各ライン毎)の実露光時間に基づいて撮像素子4から読み出された画像信号の信号レベルを補正する画像処理を行うことにより、撮像素子4の全ての画素21の露光時間が等しいときに得られる画像信号に近付くようにする処理も含まれており、すなわち、画像処理部5は等価露光量制御部としても機能する。この画像処理部5からの画像データはシステム制御部10へ送出される。
内部メモリ6は、この撮像装置1の動作に必要な各種の処理プログラムや設定値などを不揮発に記憶するものであり、具体的には、フラッシュメモリなどの不揮発性メモリにより構成されている。
外部メモリ7は、撮影され画像処理部5により記録用に処理された画像データを不揮発に記憶するものであり、いわゆるメモリカードなどの撮像装置1の外部に搬出し得るリムーバブルメモリとして構成されている。
表示部8は、撮影され画像処理部5により表示用に処理された画像や、この撮像装置1の操作に係るメニューの表示などを行うものであり、例えばTFT液晶や有機EL基板などの表示デバイスとして構成されている。
指示部9は、この撮像装置1に対する操作入力を行うためのユーザーインタフェースであり、電源のオン/オフを指示するための電源ボタンや撮影開始を指示するための撮影ボタン、手振れ補正をオン/オフするボタン、その他各種の設定ボタンなどが含まれている。
手振れ検出部11は、加速度センサなどを含んで構成されていて、加速度センサの出力値に基づき手振れ(撮像装置1の振れであり、大きさを示す手振れ量と、方向を示す手振れ方向と、の両方を含むベクトルである)を検出して、システム制御部10へ送信するようになっている。
手振れ補正部12は、超音波モータなどの機械的駆動源を含んで構成されていて、撮像素子4を撮像面22と平行な面内の方向に駆動するものである。すなわち、システム制御部10は、撮影を行う際に、手振れ検出部11から受信した手振れ情報に基づきこの手振れ補正部12を制御して、撮像素子4を撮像面22と平行な方向にシフトさせることにより、撮像面22に結像した被写体像のぶれを軽減するものである。具体的には、撮像装置1が振れている方向(手振れ方向)と逆の方向に、撮像装置1が振れている量(手振れ量)だけ撮像素子4を駆動することにより、手振れ補正が行われる。
位置検出部13は、撮像素子4の基準位置からのシフト(このシフトもベクトルである)の、メカニカル後幕シャッタ3の走行方向成分を少なくとも検出するもの(すなわち、撮像素子4のシフトが、メカニカル後幕シャッタ3の走行方向と同一方向または反対方向(シフト方向)に、基準位置からのどれだけの量(シフト量)生じているかを少なくとも検出するもの)である。ただし、シフト方向はシフト量に符号を付して表すことができるために、以下では適宜、撮像素子4のシフトのシャッタ方向成分を、単に「シフト量」などということにする。システム制御部10は、この位置検出部13の検出結果を受信して、撮影完了後の撮像素子4の位置が基準位置からシフトした位置になっている場合には、手振れ補正部12を駆動して撮像素子4を基準位置に戻すように制御する。
システム制御部10は、この撮像装置1全体の制御を行うものである。例えば、システム制御部10は、指示部9を介したユーザーからの指示(例えば、静止画像撮影の指示)を受けて、撮影レンズ2の絞りやオートフォーカスの制御などを行い、さらに、手振れ補正の制御、撮像素子4のタイミング制御、メカニカル後幕シャッタ3の開閉タイミング制御、画像処理部5の制御などを行う。ここに、システム制御部10は、手振れ補正の制御において、手振れ検出部11により検出された手振れ情報に基づいて手振れ補正部12を制御し、撮像面22に結像した被写体像のぶれを軽減するように手振れ補正を行わせる。また、システム制御部10は、撮像素子4のタイミング制御においてリセット部として機能し、後で図面を参照して説明するように、メカニカル後幕シャッタ3の走行に先行して、走行方向に沿って撮像素子4の撮像面22に配置された画素21の電荷をリセットすることを、メカニカル後幕シャッタ3の走行特性に応じたタイミングで順次行う。さらに、システム制御部10は、後述するように等価露光量制御部として機能して、メカニカル後幕シャッタ3の走行特性と、位置検出部13により検出された露光時の撮像素子4のシャッタ走行方向におけるシフト方向およびシフト量と、に基づいて各画素21の実露光時間を算出し、算出した実露光時間に基づいて撮像素子4から読み出された画像信号の信号レベルを補正する画像処理を画像処理部5に行わせることにより、撮像素子4の全ての画素21の露光時間が等しいときに得られる画像信号に近付くように制御するものである。そして、システム制御部10は、画像処理部5により処理された画像データを受け取って、表示部8に画像を表示させる制御や、外部メモリ7に画像を保存させる制御を行う。
次に、図2は撮像素子4の構成を示す図である。
撮像素子4は、複数の画素21が二次元状に配置された撮像面22と、垂直走査回路23と、列回路24と、を備えている。この図2においては、画素21がn行×m列(ここに、n,mは正の整数)に配列された撮像面22を図示している。
ここに、画素21は、撮影レンズ2を介して受光した光をその光量に応じた量の電荷に変換して蓄積するフォトダイオードと、このフォトダイオードに蓄積された電荷を電圧に変換して増幅し、スイッチングして列回路24へ電気信号として受け渡す画素回路部と、を含んで構成されたものである。
垂直走査回路23は、撮像面22に配置された画素21の水平方向並びであるラインを制御するためのものであり、各ライン毎に画素回路部へ制御信号を送信して、電子リセットのタイミングや電気信号の読み出しタイミングを制御する。なお、この図2に示す例においては、垂直走査回路23が制御するラインは、ライン1〜ラインnのn本のラインである。
列回路24は、撮像面22に配置された画素21の垂直方向並びであるカラムを制御するためのものであり、電気信号へのゲイン印加などを主に行う。なお、この図2に示す例においては、列回路24が制御するカラムは、カラム1〜カラムmのm本のカラムである。また、列回路24は、さらにA/D変換処理を行うことができるタイプのものであっても構わない(A/D変換処理は、従来は別個のICで行っていたが、近年では列回路で行うものも開発されている)。
次に、図3〜図7を参照して、静止画像を撮影する際の撮像素子4およびメカニカル後幕シャッタ3の動作について説明する。ここに、図3は撮影前の撮像素子4およびメカニカル後幕シャッタ3の様子を示す図、図4は電子リセットを行っているときの撮像素子4およびメカニカル後幕シャッタ3の様子を示す図、図5は電子リセットを完了し後幕走行が開始される前の撮像素子4およびメカニカル後幕シャッタ3の様子を示す図、図6は後幕走行を行っているときの撮像素子4およびメカニカル後幕シャッタ3の様子を示す図、図7は後幕走行が完了したときの撮像素子4およびメカニカル後幕シャッタ3の様子を示す図である。
図3に示す撮影前の状態では、メカニカル後幕シャッタ3は露光用の開口部31から退避して開いており、撮像素子4は撮影レンズ2からの光が照射されて露光されている状態となっている。
この図3に示す状態において、指示部9の撮影ボタンが押下され、撮影開始の指示信号が指示部9からシステム制御部10へ送信されると、静止画像の撮影動作が開始される。するとまず、図4に示すように、撮像素子4の垂直走査回路23により、各画素21のフォトダイオードに蓄積された電荷をリセットする電子リセットが開始される。この電子リセットは、撮像素子4の上端のライン(ライン1)から開始されて下方向へ向かって順次行われ、下端のライン(ラインn)に達したところで終了する(図5は電子リセットが終了した状態を示している)。電子リセット後のフォトダイオードには電荷が再び蓄積されるために、任意の画素21の露光開始タイミングは、その画素21の電子リセットが終了したタイミングとなる。
なお、図5には、シャッタ速度がシンクロ速度以下である場合を図示しているために、電子リセットが下端のライン(ラインn)に達すると、撮像素子4の全面に渡って露光が行われている状態となる(これに対して、シャッタ速度がシンクロ速度よりも速い場合には、電子リセットが下端のライン(ラインn)に達する前にメカニカル後幕シャッタ3の走行が開始されるために、露光がスリット状で行われることは背景技術において述べた通常のフォーカルプレーンシャッタの場合と同様である)。
システム制御部10は、指示部9から手動で設定された露光時間がある場合にはその露光時間、手動で設定された露光時間がない場合には被写体の輝度に応じて自動で設定した露光時間を保持しており、上述した電子リセットを開始してからこの設定露光時間(シャッタ速度)が経過した時点でメカニカル後幕シャッタ3の走行が開始されるように、該メカニカル後幕シャッタ3を制御する。
これにより、図6に示すように、メカニカル後幕シャッタ3の走行が開始されて、撮像素子4の上端のライン(ライン1)から下方向へ向かって順次遮光が行われる。
その後、図7に示すように、メカニカル後幕シャッタ3が露光用の開口部31を全て閉じて走行を完了すると、撮像素子4が全面に渡って遮光された状態となる。
そして、この図7に示すような撮像素子4の全面が遮光された状態において、垂直走査回路23により、ライン毎に順次、電気信号の読み出しが行われる。
続いて、図8はメカニカル後幕シャッタ3の走行特性msを示す線図である。この図8においては、縦軸がメカニカル後幕シャッタ3の走行方向である撮像素子4の上下方向を示し、横軸が経過時間を示している。
メカニカル後幕シャッタ3は、上述したように、ばねの弾性力によって走行方向に引張されることで走行する構造となっている。このために、走行を開始した直後は速度が遅く、下方向へ走行して行くにつれて徐々に加速する。メカニカル後幕シャッタ3の遮光先端となる幕下端が、時間の経過と共に撮像素子4の上端側から下端側へ向けて移動して行く様子を、走行特性msとして図8に示している。なお、露光用の開口部31は、撮影光束をけることがないように撮像素子4の撮像面22よりも大きく構成されているために、メカニカル後幕シャッタ3の移動範囲は撮像素子4の上下方向の幅よりも大きく、露光用の開口部31の上下方向の幅をカバーし得る範囲となる。従って、メカニカル後幕シャッタ3が撮像素子4の上端に達したときには既にある程度の走行速度が得られており、これにより撮像素子4上においては比較的線形に近い走行特性msを得ることができるようになっている。
次に、図9はメカニカル後幕シャッタ3の走行特性msに合わせて電子リセットの走行特性esを設定したときの様子を示す線図である。この図9に示した縦軸および横軸は、図8に示したものと同様である。
この図9に示す電子リセットは、基本的に、背景技術において述べた特開平11−41523号公報に記載された電子リセットと同様である。
すなわち、電子リセットのタイミング(走行特性es)は、撮像素子4が上述した基準位置にあることを前提として、メカニカル後幕シャッタ3の非線形な走行特性msに合わせて(より詳しくは、メカニカル後幕シャッタ3の走行特性msを露光時間(露出時間)分だけ時間を遡る方向にシフトした走行特性に合わせて)制御される。なお、この図9には、電子リセットをライン毎のタイミングで順次行う例を示しているが、複数ライン毎のタイミングで順次行うタイプのものであっても構わない(このような構成は、駆動回路を簡単にしたり高い駆動クロックを不要とする利点がある)。
続いて、図10〜図12を参照して、手振れ補正時に撮像素子4が基準位置からシャッタ走行方向(本実施形態においては、例えば上下方向)にシフトすると、露光ムラ(輝度ムラ)が発生してしまうことについて説明する。
まず図10は、撮像素子4が基準位置にあるときの電子先幕シャッタ(電子リセット)の走行特性esとメカニカル後幕シャッタ3の走行特性msとを示す図である。このときには、走行特性esを設定する際の前提であった基準位置に撮像素子4があるために、全てのラインについて基本的に同一の露光時間となる。
次に図11は、撮像素子4が基準位置から上下方向にシフトしたときの電子先幕シャッタ(電子リセット)の走行特性esとメカニカル後幕シャッタ3の走行特性msとを示す図である。
手振れ補正を行うと、撮像素子4はメカニカル後幕シャッタ3に対して相対的に移動し、撮像素子4が上方向にシフトすればその走行特性esもメカニカル後幕シャッタ3の走行特性msに対して上方向にシフトし、撮像素子4が下方向にシフトすればその走行特性esもメカニカル後幕シャッタ3の走行特性msに対して下方向にシフトする。
図12は、撮像素子4の上下方向シフトにより発生する露光ムラの様子を示す線図である。
撮像素子4が基準位置にあるときには、実線で示すように、基本的に全てのラインが設定露光時間と同一の露光時間となる。
一方、撮像素子4が基準位置から上方向にシフトすると、図11を参照すれば分かるように、1点鎖線で示す走行特性esが実効的に走行特性msに近づき、図12に1点鎖線で示すように、設定露光時間よりも露出時間が短くなる(つまり、撮像面22の全面において露出アンダーとなる)。このとき、メカニカル後幕シャッタ3の走行特性msは、メカニカル後幕シャッタ3の走行速度が撮像素子4の上端から下方向へ向けて加速して行く特性となっているために、撮像素子4の上端側ほど上方向シフトによる露出時間の減少が顕著になり、設定露光時間からのずれ量は撮像素子4の上端側において下端側よりも大きくなる。従って、撮像素子4の上端側ほど露出アンダーとなる。
また、撮像素子4が基準位置から下方向にシフトすると、図11を参照すれば分かるように、2点鎖線で示す走行特性esが実効的に走行特性msから遠ざかり、図12に2点鎖線で示すように、設定露光時間よりも露出時間が長くなる(つまり、撮像面22の全面において露出オーバーとなる)。このとき、設定露光時間からのずれ量は、上方向シフトの場合と同様に、撮像素子位置の上端側において下端側よりも大きくなる。従って、撮像素子4の上端側ほど露出オーバーとなる。
このような画質劣化に対応するために、本実施形態においては、撮像素子4の基準位置からのシフト量を検出して、このシフト量によって発生する露光ムラを打ち消すことができるように画像処理を行っている。
この技術について、図13〜図15を参照して説明する。
まず、図13は、撮像素子4が基準位置にあることを前提として設定される電子リセットのタイミングを説明するための線図である。
撮像素子4の電子リセットのタイミングは、撮像素子4が基準位置にあるときに露光ムラが発生しないように設定される。従って、設定露光時間Tshが0であるときのメカニカル後幕シャッタ3の走行特性ms0に沿ったタイミングとなるために、走行特性ms0の測定を行う必要がある。
ただし、メカニカル後幕シャッタ3の走行特性ms0は、撮像素子4が上下にシフトした場合における露光ムラの補正にも用いられる。そこで、走行特性ms0の測定は、基準位置にあるときの撮像面22のライン範囲(i=1〜n)だけでなく、撮像素子4がシャッタ走行方向(上下方向)にシフトし得る範囲の全てについて行われる。そこでまず、走行特性ms0を測定する範囲の決定を行う。
この測定範囲を決定するための準備として、撮像素子4が上下方向に移動したときにも撮像面22上の任意のラインに対応するメカニカル後幕シャッタ3のシャッタ走行位置を表すことができる座標(ライン単位で表す座標)として、ラインiを用いることにする。すなわち、撮像素子4が基準位置にあるときのライン位置を表すラインiを、i=1〜nを超えた範囲まで拡張することにより、メカニカル後幕シャッタ3のシャッタ走行位置を表す座標(撮像素子4が上下にシフトしたときにも対応し得る拡張座標)としても用いることにする。
そして、手振れ補正による撮像素子4の最大可動距離が、上方向へLu[μm]、下方向へLd[μm]であるものとし、撮像素子4における隣接するライン同士の間隔がDline[μm]であるものとする。すると、最大可動距離を撮像素子4のライン数に換算した最大可動範囲、すなわち、上方向への最大可動範囲h[ライン]と下方向への最大可動範囲k[ライン]とは、次の数式1,2
[数1]
h=round(Ld/Dline)
[数2]
k=round(Lu/Dline)
によりそれぞれ算出することができる。ただし、round(x)は、xの小数点以下を四捨五入して整数値を算出する関数である。
従って、撮像面22上のラインが取り得る範囲は、上述した拡張座標におけるライン(−h+1)(ここに、基準位置における上端のライン1よりも1つ上のラインをライン0とし、それよりも上のラインには負記号「−」を付している)からライン(n+k)までである。
そこで、走行特性ms0に対応する時間Tmec_i、すなわち、システム制御部10から撮影開始命令が発生した時点から、設定露光時間Tshが0であるときにメカニカル後幕シャッタ3がi番目のラインを走行する時点までの時間Tmec_iを、拡張座標におけるライン(−h+1)〜ライン(n+k)まで予め測定しておく。こうして、各ラインについて測定されたこれらの時間Tmec_iによって決定されるのが、図13において点線で示した、設定露光時間Tshが0であるときのメカニカル後幕シャッタ3の走行特性ms0である。
また、電子リセットのタイミングを表す時間Tesht_iは、撮像素子4が基準位置にあるときのメカニカル後幕シャッタ3の走行特性ms0に一致するように、すなわち、Tesht_i=Tmec_iとなるように、i=1〜nの範囲で設定しておく。
このようにして設定されたメカニカル後幕シャッタ3の走行特性ms0に対応するタイミングを示す時間Tmec_i(ただし、i=(−h+1)〜(n+k))と、電子リセットのタイミングを表す時間をTesht_i(ただし、i=1〜n)とを、内部メモリ6に予め格納しておく。ただし、Tesht_iについては、上述したようにTesht_i=Tmec_iの対応関係さえ内部メモリ6に格納しておけば、データの格納を省略することも可能である。
そして、撮像素子4の露光を行うときには、撮像面22上のライン1〜ラインn(このラインは、撮像素子4がシフトしたか否かに関わらず、撮像面22上に実際に設けられたライン番号を示している)のそれぞれについて、撮影開始命令からライン毎に設定された時間Tesht_iが経過したところで、電子リセットを行うことにより、電子先幕シャッタを走行させる。
続いて、走行特性ms0を実現するためのリリースタイミングに、設定露光時間Tshを加算した時間だけ撮影開始命令から経過した時点で、メカニカル後幕シャッタ3をリリースして後幕走行を開始させる。
そして、メカニカル後幕シャッタ3の走行が終了したところで、システム制御部10は、撮像素子4から画像データを読み出させて、例えば画像処理部5内の画像データ記憶部などに記憶させる。
その後、システム制御部10によりライン毎の補正係数Giが後述するように算出されて、この補正係数Giを用いて画像処理部5により露光ムラの補正が画像処理として行われる。これらの処理について図14および図15を参照して説明する。まず、図14は、露光時に撮像素子4が下方向へ−jライン(つまり、上方向へjライン)分シフトしたときの様子を示すタイミングチャートである。
システム制御部10は、位置検出部13から露光時の撮像素子4の位置を取得する。ここで、位置検出部13から取得した位置が、基準位置から下方向へLy[μm]だけシフトした位置であるものとする。このときシステム制御部10は、さらに、次の数式3
[数3]
Y=round(Ly/Dline)
の演算を行うことにより、露光時のシフト量Lyをライン数を単位とするシフト量Yに換算する。
ここでは、図14に示すように例えばY=−j、すなわち、露光時に撮像素子4が下方向へ−jライン(つまり、上方向へjライン)分シフトしていたものとする。すると、電子リセットの走行特性が、基準位置の走行特性es(0)から下方向へ−jライン分シフトした走行特性es(−j)(この走行特性es(−j)は、図15にも示すように、設定露光時間Tshが0であるときのメカニカル後幕シャッタ3の走行特性ms0を、下方向へ−jライン分シフトした走行特性ms0(−j)に沿った走行特性である)となる。その一方で、メカニカル後幕シャッタ3の走行特性msに変化はない。従って、上述したように、電子リセットからメカニカル後幕シャッタ3が走行するまでの時間間隔が実効的に短くなる。
図15は、露光時に撮像素子4が下方向へ−jライン(つまり、上方向へjライン)分シフトしたときの、撮像面22におけるラインi付近の電子リセットタイミングとメカニカル後幕シャッタ3の走行タイミングとを拡大して示すタイミングチャートである。なお、この図15に示したのは、撮像面22上に実際にi番目に設けられているラインの付近である。
撮像素子4が上方向へjライン分シフトしたことにより、撮像面22上のラインiに対応するメカニカル後幕シャッタ3の走行位置は上述した拡張座標におけるライン(i−j)となる。従って、撮像面22上のラインiにおける電子リセットタイミングを示す時間Tesht_iは上述したように変更がないのに対して、撮像面22上のラインiをメカニカル後幕シャッタ3が走行するタイミングは、基準位置にあるときのタイミングを示す時間Tmec_i+Tshから時間Tmec_(i-j)+Tshとなる(なお、図15中において、撮像素子4が上方向へjライン分シフトした場合であっても、撮像面22上のラインiの露光時間が設定露光時間Tshとなるような理想的なメカニカル後幕シャッタ3の走行特性ms(−j)を2点鎖線により示している。しかし、実際のメカニカル後幕シャッタ3の走行特性は変化しないために、実線で示す走行特性msのままである。)。従って、撮像面22上のラインiを設定露光時間Tshが0であるときのメカニカル後幕シャッタ3が走行するタイミングは、時間Tmec_iから時間Tmec_(i-j)となる。
システム制御部10は、内部メモリ6からTmec_iおよびTmec_(i-j)を読み出して、この露出時間の実効的な変化量ΔTijを、次の数式4、
[数4]
ΔTij=(Tmec_(i-j)−Tmec_i)
により算出する。なお、この数式4は、撮像素子4が下方向へシフトした場合にもそのまま適用することができる。
そして、システム制御部10は、この変化量ΔTijを用いることより、実露光時間Treal_iを、次の数式5、
[数5]
Treal_i=Tsh+ΔTij=Tsh+(Tmec_(i-j)−Tmec_i)
により算出する。
露光ムラは設定されたシャッタ速度(設定露光時間)Tshと実露光時間Treal_iとの誤差に起因して発生する。そこで、システム制御部10は、撮像面22上のラインiにおける露光ムラを補正するためのゲイン値となる補正係数Giを、次の数式6、
[数6]
Gi=Tsh/Treal_i=Tsh/{Tsh+(Tmec_(i-j)−Tmec_i)}
により算出する。
そして、システム制御部10は、算出した補正係数Giを画像処理部5へ出力する。このようにして、システム制御部10は、補正係数算出部として機能するようになっている。
撮像素子4により撮影して出力された画像データにおける、ラインiの信号レベルをSIGraw_iとすると、システム制御部10は、画像処理部5に次の数式7
[数7]
SIGcorrect_i=Gi×SIGraw_i
の画像処理を全ライン(i=1〜n)について行わせることにより、各画素21の露光時間が等しいときに得られる画像信号に近付くように補正された(つまり露光ムラのない)信号レベルSIGcorrect_iを算出させる。ここに、補正係数Giを補正ゲイン値としたために、乗算を行うだけで補正を行うことができ、リアルタイム処理にも対応し得る高速処理が可能であり、あるいは他の画像処理と同時に行うようにすることも可能となる。
次に、図16は撮影ボタンが押下されたときの撮影シーケンスの例を示すフローチャートである。
指示部9の撮影ボタンが押下されると、システム制御部10は、手動設定または自動設定に基づいて露光時間(シャッタ速度)Tshを設定する(ステップS1)。
続いて、システム制御部10は、手振れ補正がオンになっているかオフになっているかを判定する(ステップS2)。
ここで、手振れ補正がオフになっていると判定された場合には、撮像素子4のシフトは行われないために、撮像素子4のシフトに起因する露光ムラは発生せず、通常と同様の撮影シーケンスによる処理を行う。
すなわち、システム制御部10は、内部メモリ6から電子リセットのタイミングを示す時間Tesht_iを読み出して、このタイミングで電子リセットを行うように撮像素子4を制御し、電子先幕シャッタを走行させる(ステップS3)。この電子先幕シャッタが走行し終えたラインから、露光が行われ、画素21のフォトダイオードに電荷が蓄積される(ステップS4)。
電子先幕シャッタの走行を開始してから設定露光時間Tshが経過した時点でメカニカル後幕シャッタ3が撮像面22の上端を遮光し始めるようなタイミングで、システム制御部10は、メカニカル後幕シャッタ3の走行を開始させる(ステップS5)。
メカニカル後幕シャッタ3の走行が終了したところで、システム制御部10は、撮像素子4から画像データを読み出させて、例えば画像処理部5内の画像データ記憶部などに記憶させる(ステップS6)。
一方、ステップS2において手振れ補正がオンになっていると判定された場合には、撮像素子4のシフトが行われるために、撮像素子4のシフトに起因する露光ムラを低減するための処理を行うことになる。
すなわち、システム制御部10は、手振れ検出部11からの手振れ情報に基づき、手振れ補正部12を制御して手振れ補正を行う(ステップS7)。
そして、上述したステップS3と同様に電子先幕シャッタを走行させ(ステップS8)、上述したステップS4と同様に露光を開始させる(ステップS9)。
この露光開始と共に、位置検出部13による撮像素子4のシフト量の検出も開始する(ステップS10)。
その後、上述したステップS5と同様にメカニカル後幕シャッタ3の走行を行い(ステップS11)、走行が終了したところで、ステップS7において開始した手振れ補正動作を終了するとともにステップS10において開始したシフト量の検出を終了する(ステップS12)。なお、システム制御部10は、位置検出部13により検出されたシフト量を、上述した数式3によりライン数(例えば上述した−j)に換算した後に、例えば内部メモリ6に格納しておくようになっている。
さらに、システム制御部10は、位置検出部13から得られた手振れ補正動作終了時のシフト量に基づいて、手振れ補正部12を制御することにより、撮像素子4の位置を基準位置に復帰させる(ステップS13)。
そして、上述したステップS6と同様に、システム制御部10は、撮像素子4から画像データを読み出させて、例えば画像処理部5内の画像データ記憶部などに記憶させる(ステップS14)。
システム制御部10は、内部メモリ6に格納したシフト量(例えば上述した−j)に基づいて、内部メモリ6からTmec_iおよびTmec_(i-j)を読み出し、さらに設定露光時間Tshを用いて上述した数式4〜数式6の演算を行うことによりラインiに対する補正係数Giを算出することを、撮像面22上の全ライン(i=1〜n)について行う(ステップS15)。
さらに、システム制御部10は、算出した補正係数Giを画像処理部5へ送信して、上述した数式7の処理を画像処理部5に行わせることにより、露光ムラが補正された画像を算出させる(ステップS16)。なお、この露光ムラが補正された画像は、上述した画像処理部5内の画像データ記憶部などに、例えば撮像素子4から読み出された画像データに上書して記憶される。
このステップS16または上述したステップS6の処理が行われたところで、この処理を終了する。
なお、手振れの周波数は一般に数Hz〜十数Hz程度であるのに対して、メカニカル後幕シャッタの走行時間は1/200秒(周波数換算で200Hz)程度である。従って、上述では撮像素子4のシフト量Yが撮像面22の露光期間中において一定である(Y=−jの一定値である)ものとして扱っているが、より厳密に見れば、撮像面上のライン1を露光しているときのシフト量Y1と、ラインnを露光しているときのシフト量Ynとは異なることもあると考えられる(より詳しくは、シフト量Yiはラインi毎に異なることもあると考えられる)。従って、位置検出部13からシフト量の情報を取得して数式3の演算を行うことを各ライン毎に行って(あるいは、幾つかのラインについて行うとともに、その他のラインについては補間処理を行って)、その結果を後段の計算に対してライン毎に反映させるようにしても良い。
一方、1つのラインについての露光を開始してから露光を終了するまでの時間(1つのラインの露光時間)における撮像素子4のシフト量は、一定であると見なしてもほぼ差し支えないものと考えられる。なぜならば、露光ムラの補正が必要となるのは以下に説明するように高速シャッタの場合であって、例えば数千分の1秒(周波数換算で数千Hz)程度となるからである。
また、撮像素子4のシフトに起因して発生する露出時間の実効的な変化量ΔTijは、高速シャッタであるときには露光時間に占める割合が大きくなるが、低速シャッタであるときには露光時間に占める割合は小さくなる。つまり、撮像素子4のシフトは、高速シャッタであるときには露光ムラとして画質への影響が大きくなるが、低速シャッタであるときには無視することが可能となる。従って、設定露光時間(シャッタ速度)Tshが所定の閾値Tth(ここに、所定の閾値Tthは、シャッタ速度Tshがこの閾値Tth以上である(つまり露光時間が長い)ときには露光ムラを事実上無視することが可能であり、この閾値Tth未満である(つまり露光時間が短い)ときには露光ムラを補正することが望ましくなる区分を示す閾値である。)未満であるか否かを制御部であるシステム制御部10により判定して、シャッタ速度Tshが閾値Tth未満であると判定したときには露光ムラを補正する処理を行い、シャッタ速度Tshが閾値Tth以上であると判定したときには露光ムラ補正の処理をスキップする(中止する)ようにしても良い。
加えて、撮像素子4のシフトに起因して発生する露出時間の実効的な変化量ΔTijは、撮像素子4の基準位置からのシフト量が小さい場合には無視し得る程度となる。そこで、基準位置からのシフト量が所定のシフト量閾値以上であるか未満であるかを判定して、所定のシフト量閾値以上であると判定したときには露光ムラを補正する処理を行い、所定のシフト量閾値未満であると判定したときには露光ムラ補正の処理をスキップする(中止する)ようにすることも可能である。
さらに、上述では、補正係数Giを、実露光時間Treal_iと設定露光時間Tshとの比により算出しているが、撮像面22の全面が幾らか露出オーバーまたは露出アンダーになることは許容範囲内であって、ライン毎の露光時間が異なる露光ムラの方がより重要であるような場合には、補正係数Giを、例えば実露光時間Treal_iと全ラインの実露光時間Treal_iの平均値との比により算出する等も可能である。このように補正係数Giを算出する際に、設定露光時間Tshを必ず用いるに限るものではない。
そして、上述では、撮像素子4のシフト量を位置検出部13により検出しているが、手振れ補正部12による駆動量に基づいて撮像素子4のシフト量を検出可能であれば、位置検出部13を省略しても構わない。
また、上述した技術は、シャッタ走行方向への撮像素子4のシフトが発生する場合に広く適用することができるために、シフトの発生原因は必ずしも手振れ補正に限定されるものではない。
このような実施形態1によれば、先幕シャッタとしてメカニカル先幕シャッタよりも制御精度の高い電子先幕シャッタを用いるようにしたために、先幕の走行特性をメカニカル後幕シャッタ3の走行特性に高精度に合わせることが可能となり、高速シャッタにおいても正確な露光制御を行うことができる。
加えて、メカニカル後幕シャッタ3に対して撮像素子4がシャッタ走行方向へシフトしたときに生じる露光ムラを画像処理により補正するようにしたために、手振れ補正等を行ったときにも輝度ムラが目立つことのない高画質な画像を得ることができる。
また、手振れ補正がオフになっているときには露光ムラ補正の処理を中止するようにしたために、不要な処理を行うことがなく、消費電力の軽減を図ることができる。
さらに、シャッタ速度が遅いときや基準位置からのシフト量が小さいときに露光ムラ補正の処理を中止した場合には、消費電力を軽減し、画像処理の負荷を軽減することが可能となる。
[実施形態2]
図17から図21は本発明の実施形態2を示したものであり、図17は撮影ボタンが押下されたときの撮影シーケンスの例を示すフローチャートである。この実施形態2において、上述の実施形態1と同様である部分については同一の符号を付して説明を省略し、主として異なる点についてのみ説明する。
上述した実施形態1においては、撮像素子4が基準位置にあるときのタイミングで電子リセットを行い、撮像後に画像処理を行うことにより、各画素21の露光時間が等しいときに得られる画像信号に近付くように信号レベルを補正していた。これに対して、本実施形態においては、露光時のシフトを予測して、予測したシフトに基づき電子リセットのタイミングを制御し露光ムラの低減を図るとともに、さらに画像データ読出後に実際の露光時のシフト量に基づき画像処理による信号レベルの補正を行うようになっている。
すなわち、システム制御部10は、等価露光量制御部として機能し、手振れ検出部11により露光前に検出した手振れに基づき、露光時の撮像素子4のシャッタ走行方向におけるシフト方向およびシフト量を露光前に予測する。そして、システム制御部10は、リセット部として機能して、予測したシフト方向およびシフト量の撮像面22に対応するメカニカル後幕シャッタ3の走行特性に応じたタイミングで撮像面22の画素21の電荷を順次リセットするように撮像素子4を駆動制御する。こうして、システム制御部10は、予測したシフトにおいて露光ムラが発生しないタイミングとなるように電子リセットのタイミングを決定して露光を行わせ、撮像素子4から読み出された画像信号が、撮像素子4の全ての画素21の露光時間が等しいときに得られる画像信号に近付くように制御するようになっている。
さらに、システム制御部10は、等価露光量制御部として機能し、メカニカル後幕シャッタ3の走行特性と、実際の露光時の撮像素子4のシャッタ走行方向におけるシフト方向およびシフト量と、に基づいて各画素21の実露光時間を算出する。そしてシステム制御部10は、算出した実露光時間に基づいて、撮像素子4から読み出された画像信号の信号レベルを補正する画像処理を画像処理部5に行わせることにより、撮像素子4の全ての画素21の露光時間が等しいときに得られる画像信号にさらに近付くように制御するようになっている。
このような本実施形態の処理の流れについて、図17を参照して説明する。
まず、図16に示した処理と同様にステップS1およびステップS2の処理を行い、手振れ補正がオフである場合にはステップS3〜S6の処理を行う。
一方、ステップS2において手振れ補正がオンになっていると判定された場合には、ステップS7により手振れ補正を開始した後に、手振れの時間的変化や、周期性がある場合にはその周期性などに基づいて、露光を行う時点での撮像素子4のシャッタ走行方向へのシフト量を予測する(ステップS21)。なお、システム制御部10は、ここで予測したシフト量を、上述した数式3によりライン数(例えば、図18に示すように−A(図18の例では、Aは1以上h以下の整数であるものとする))に換算した後に、例えば内部メモリ6に格納しておく。
図18は、予測した露光時の撮像素子4のシフト量が下方向へ−Aライン(つまり、上方向へAライン)であるときの例を示すタイミングチャートである。もし仮に撮像素子4がシフトしても電子リセットのタイミングを変化させない場合には、この図18に示したように、基準位置(シフト量が0)の走行特性es(0)が、下方向へ−Aライン分シフトした走行特性es(−A)に移動することになる。そして、このままでは露光時間がラインによって異なり、露光ムラが発生すると予測される。
そこで、予測したシフト量において露光ムラが発生しないタイミングとなるように、電子リセットのタイミングを決定する(ステップS22)。
図19は、予測した露光時の撮像素子4のシフト量が下方向へ−Aライン(つまり、上方向へAライン)であるときの、露光ムラが発生しない電子リセットの例を示すタイミングチャートである。
撮影開始命令が発生した時点から撮像面22上のラインiの電子リセットが行われる時点までの時間Tesht_i(ここに、時間Tesht_iに関しては、撮像素子4のシフト位置によらず、撮像面22における上端のラインから数えてi番目のラインのリセットタイミングを表しているものとする。)は、撮像素子4のシフト量が0である場合には走行特性ms0のラインiに対応したタイミングを示す時間Tmec_iに等しい(Tesht_i=Tmec_i)。
これに対して、撮像素子4のシフト量が下方向へ−Aラインである場合には、ラインiを通過するメカニカル後幕シャッタ3の走行特性は、シフト量が0である場合のライン(i−A)を通過するメカニカル後幕シャッタ3の走行特性ms0(−A)に一致する。
従って、撮像素子4の予測シフト量が下方向へ−Aラインである場合には、撮影開始命令から走行特性ms0(−A)に対応するタイミングを示す時間Tmec_(i-A)だけ経過した時点でラインiのリセットを行えば(すなわち、Tesht_i=Tmec_(i-A)とすれば)、予測される露光ムラの発生を抑制することができる。そこで、システム制御部10は、内部メモリ6に格納した走行特性ms0(−A)に対応する時間Tmec_(1-A)〜Tmec_(n-A)を読み出して、撮像面22上のライン1〜nの電子リセットタイミングを示す時間Tesht_1〜Tesht_nにそれぞれ等しいと設定し、ステップS8における電子シャッタのタイミング制御に用いる。
その後、ステップS9において露光を行い、ステップS10において実際の露光時のシフト量の検出を開始し、ステップS11においてメカニカル後幕シャッタ3の走行を行ってから、ステップS12において実際の露光時のシフト量の検出を終了する。なお、システム制御部10は、位置検出部13により検出された実際の露光時のシフト量を、上述した数式3によりライン数(例えば、図20に示すように−B(ここに、実際のシフト量は予測値と異なって可能なシフト量の何れの値を取る可能性もあるために、Bは−k以上h以下(すなわち、下方向へのシフト量が−h以上k以下)の整数であるものとする))に換算した後に、例えば内部メモリ6に格納しておくようになっている。
ここに図20は、実際の露光時の撮像素子4のシフト量が下方向へ−Bライン(つまり、上方向へBライン)であるときの例を示すタイミングチャートである。もし仮に撮像素子4がシフトしても電子リセットのタイミングを基準位置のタイミングから変化させない場合には、実際の露光時点で、この図20に示したように、基準位置(シフト量が0)の走行特性es(0)が、下方向へ−Bライン分シフトした走行特性es(−B)に移動することになる。ただし、本実施形態においては、シフト量が下方向へ−Aラインであると予測したときのタイミングを示す時間Tesht_i=Tmec_(i-A)に基づき電子リセットを行っている。従って、シフト量が実際と予測値とで完全一致に至らないとしても、少なくともシフト方向が同一となれば、露光して得られた画像の露光ムラは改善されているということができる。
続いて、システム制御部10は、ステップS13において撮像素子4を基準位置に復帰させた後に、ステップS14において、撮像素子4から読み出した画像データを画像処理部5内の画像データ記憶部などに記憶させる。
その後、システム制御部10は、内部メモリ6に格納したシフト量(例えば上述した−Aおよび−B)に基づいて、露光して得られた画像の露光ムラを画像処理によりさらに低減するための補正係数の算出を、以下のように行う(ステップS15)
ここに図21は、撮像素子4の露光時の予測シフト量が下方向へ−Aライン、実際のシフト量が下方向へ−Bラインであるときの、撮像面22におけるラインi付近の電子リセットタイミングとメカニカル後幕シャッタ3の走行タイミングとを拡大して示すタイミングチャートである。なお、この図21に示したのは、撮像面22上に実際にi番目に設けられているラインの付近である。
撮像面22上のラインiの電子リセットタイミングを示す時間Tesht_iは、予測シフト量が下方向へ−Aラインであったために、走行特性ms0(−A)に対応した時間Tmec_(i-A)である。これに対して、実際の露光時の撮像素子4のシフト量が下方向へ−Bラインである場合には、ラインiを通過するメカニカル後幕シャッタ3の走行特性は、シフト量が0である場合のライン(i−B)を通過するメカニカル後幕シャッタ3の走行特性ms0(−B)(この走行特性ms0(−B)は、設定露光時間がTshであるときの走行特性ms(−B)を、設定露光時間Tshだけ時間を遡る方向へ移動させたときの走行特性となる)に一致する。
従って、撮像素子4の実際のシフト量が下方向へ−Bラインである場合には、撮影開始命令から走行特性ms0(−B)に対応するタイミングを示す時間Tmec_(i-B)だけ経過した時点でラインiのリセットを行っていれば(すなわち、Tesht_i=Tmec_(i-B)としておけば)、露光ムラの発生を抑制することができたはずであるが、実際のタイミングを示す時間はTesht_i=Tmec_(i-A)となってしまっており、ずれが生じている。
そこで、システム制御部10は、内部メモリ6からTmec_(i-A)およびTmec_(i-B)を読み出して、この露出時間の実効的な変化量ΔT_iABを、次の数式8、
[数8]
ΔT_iAB=(Tmec_(i-B)−Tmec_(i-A))
により算出する。なお、この数式8は、予測した撮像素子4のシフト方向と実際の撮像素子4のシフト方向とが反対方向である場合にもそのまま適用することができる。
そして、システム制御部10は、この変化量ΔT_iABを用いることより、実露光時間Treal_iABを、次の数式9、
[数9]
Treal_iAB=Tsh+ΔT_iAB=Tsh+(Tmec_(i-B)−Tmec_(i-A))
により算出する。
露光ムラは設定されたシャッタ速度(設定露光時間)Tshと実露光時間Treal_iABとの誤差に起因して発生する。そこで、システム制御部10は、撮像面22上のラインiにおける露光ムラを補正するためのゲイン値となる補正係数Giを、次の数式10、
[数10]
Gi=Tsh/Treal_iAB=Tsh/{Tsh+(Tmec_(i-B)−Tmec_(i-A))}
により算出する。
そして、システム制御部10は、撮像面22上の全ライン(i=1〜n)について補正係数Giの算出を行い、算出した補正係数Giを画像処理部5へ出力する。
その後、システム制御部10は、ステップS16において、算出した補正係数Giを画像処理部5へ送信して、上述した数式7の処理を画像処理部5に行わせ、露光ムラが補正された画像を算出させ、画像処理部5内の画像データ記憶部などに記憶させる。
このステップS16または上述したステップS6の処理が行われたところで一連の処理を終了するのは、実施形態1と同様である。
なお、シフト量の予測精度が低いと、予測シフト方向が実際のシフト方向と逆になってしまうこともあり得る。そこで、手振れの大きさや周波数、周期性などに基づいてシフト量の予測精度が所定値よりも高いか否かを判定し、シフト量の予測精度が低い場合には、予測シフト量に基づく電子リセットのタイミング変更を省略することも可能である。この場合には、上述した実施形態1と同様に、画像処理による露光ムラの補正のみを行うことになる。
一方、シフト量の予測精度が高い場合には、予測シフト量に基づく電子リセットのタイミング変更を行うことになる。このときさらに、予測シフト量と実際の露光時のシフト量とを露光後に比較して、予測精度が実際に高かったかどうかを判定し、予測精度が高かった場合には画像処理による露光ムラの補正を省略するようにしても構わない。
また、上述では、撮像素子4の予測シフト量が下方向へ−Aラインである場合に、Tesht_i=Tmec_(i-A)のタイミングで電子リセットを制御することにより、予測される露光ムラの発生を抑制していた。これに対して、より簡便な方法としては、基準位置における電子リセットの特性を示す曲線形状を変えることなく(つまり、Tesht_i=Tmec_iを変更することなく)、撮像素子4のシャッタ走行方向における中央のラインの予測露光時間が設定露光時間Tshに一致するように、撮像素子4の予測シフト量(−A)に応じて設定露光時間Tshを補正する方法が変形例として考えられる。すなわち、撮像素子4のシャッタ走行方向における中央のラインのライン番号がimidであるとすると、この中央のラインの露出時間の実効的な変化量ΔT_imidAは、ΔT_imidA=Tmec_(imid-A)−Tmec_imidになると予測される。従って、全てのラインに適用される設定露光時間Tshを補正して、(Tsh−ΔT_imidA)に変更すれば良い。上述した実施形態1の露光法では、撮像素子4が基準位置から上方向にシフトすると撮像面22の全面において露出アンダーとなり、基準位置から下方向にシフトすると撮像面22の全面において露出オーバーとなっていたが、この変形例の方法では、適正露光となる中央のラインを挟んで撮像面22の一方の側が露出オーバー、他方の側が露出アンダーとなる。従って、より適正露光に近付けることができると考えられる。そして、露光後に、露光時の実際のシフト方向およびシフト量に基づいてさらに画像処理を行って、撮像面22の全ての画素21の露光時間が等しいときに得られる画像信号に近付くように、撮像素子4から読み出された画像信号の信号レベルを補正するのは上述と同様である。
さらに、実施形態1において述べたのと同様に、設定されたシャッタ速度Tshが所定の閾値Tth未満であるか否かを判定して、この閾値Tth以上であると判定したときには予測シフト量に基づく電子リセットのタイミングの変更と、撮像後の画像処理による露光ムラ補正と、の少なくとも一方をスキップする(中止する)ようにしても構わない。
このような実施形態2によれば、上述した実施形態1とほぼ同様の効果を奏するとともに、露光中の撮像素子4のシフト量を予測して、その予測シフト量において露光ムラが発生しないように電子リセットを行っているために、後で画像処理を行う際の補正量を小さく抑制することができ、画像処理による画質劣化を低減することができる。
また、精度が低い予測シフト量に基づく電子リセットのタイミング変更を省略する場合には、基準位置における電子リセットをそのまま適用する場合よりも露光ムラが増大してしまうのを未然に防止することが可能となる。
さらに、シフト量の予測精度が高かった場合に画像処理による露光ムラの補正を省略すれば、画像処理の負荷を軽減することが可能となる。
なお、本発明は上述した実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除しても良い。さらに、異なる実施形態にわたる構成要素を適宜組み合わせても良い。このように、発明の主旨を逸脱しない範囲内において種々の変形や応用が可能であることは勿論である。