(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-22
(45)【発行日】2024-04-01
(54)【発明の名称】撮像装置、制御方法、プログラム及び記憶媒体
(51)【国際特許分類】
H04N 25/583 20230101AFI20240325BHJP
H04N 25/57 20230101ALI20240325BHJP
H04N 25/53 20230101ALI20240325BHJP
H04N 25/50 20230101ALI20240325BHJP
H04N 23/71 20230101ALI20240325BHJP
H04N 23/73 20230101ALI20240325BHJP
G03B 15/00 20210101ALI20240325BHJP
G03B 7/091 20210101ALI20240325BHJP
【FI】
H04N25/583
H04N25/57
H04N25/53
H04N25/50
H04N23/71
H04N23/73
G03B15/00 Q
G03B7/091
(21)【出願番号】P 2020028593
(22)【出願日】2020-02-21
【審査請求日】2023-02-13
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100126240
【氏名又は名称】阿部 琢磨
(74)【代理人】
【識別番号】100223941
【氏名又は名称】高橋 佳子
(74)【代理人】
【識別番号】100159695
【氏名又は名称】中辻 七朗
(74)【代理人】
【識別番号】100172476
【氏名又は名称】冨田 一史
(74)【代理人】
【識別番号】100126974
【氏名又は名称】大朋 靖尚
(72)【発明者】
【氏名】斉藤 孝男
【審査官】三沢 岳志
(56)【参考文献】
【文献】特開2012-235332(JP,A)
【文献】特開2016-171455(JP,A)
【文献】特開2006-197192(JP,A)
【文献】米国特許出願公開第2019/0052788(US,A1)
【文献】特開2006-254364(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 25/583
H04N 25/57
H04N 25/53
H04N 25/50
H04N 23/71
H04N 23/73
G03B 15/00
G03B 7/091
(57)【特許請求の範囲】
【請求項1】
画素または複数の前記画素を含む領域ごとに
算出された露光時間で画像を撮像可能な撮像手段と、
前記撮像手段により撮像
された画像から動体領域を検出する検出手段と、
前記検出手段により検出
された前記動体領域に含まれる複数の前記画素又は前記領域の輝度を算出する算出手段と、
前記算出手段により算出
された輝度に基づいて、前記動体領域に含まれる複数の前記画素又は前記領域に対して、
前記算出された露光時間と異なる露光時間を決定する決定手段と、を有
し、
前記決定手段は、前記輝度が閾値以上の画素又は領域における露光時間が、前記算出された露光時間よりも小さい所定の範囲内で異なるように、前記露光時間を決定することを特徴とする撮像装置。
【請求項2】
請求項
1に記載の撮像装置において、
前記輝度が閾値よりも小さい前記画素又は前記領域に対して
、前記算出された露光時間よりも小さい同一の露光時間を
設定することを特徴とする撮像装置。
【請求項3】
請求項
1又は
2に記載の撮像装置において、
前記動体領域の移動速度を検出する速度検出手段をさらに有し、
前記決定手段は、前記速度検出手段により検出した前記動体領域の移動速度に応じて
、前記
所定の範囲の上限値を決定することを特徴とする撮像装置。
【請求項4】
画素または複数の前記画素を含む領域ごとに
算出された露光時間で画像を撮像可能な撮像部を有する撮像装置の制御方法であって、
前記撮像部により撮像
された画像から動体領域を検出する検出ステップと、
前記検出ステップにより検出
された前記動体領域に含まれる複数の前記画素又は前記領域の輝度を算出する算出ステップと、
前記算出ステップにより算出
された輝度に基づいて、前記動体領域に含まれる複数の前記画素又は前記領域に対して、
前記算出された露光時間と異なる露光時間を決定する決定ステップと、
を有し、
前記決定ステップでは、前記輝度が閾値よりも小さい画素又は領域における露光時間が、前記算出された露光時間よりも小さい所定の範囲内となるように前記露光時間を決定することを特徴とする制御方法。
【請求項5】
コンピュータに、画素または複数の前記画素を含む領域ごとに
算出された露光時間で画像を撮像可能な撮像部を有する撮像装置の制御方法を実行させるためのプログラムであって、前記方法は、
前記撮像部により撮像
された画像から動体領域を検出する検出ステップと、
前記検出ステップにより検出
された前記動体領域に含まれる複数の前記画素又は前記領域の輝度を算出する算出ステップと、
前記算出ステップにより算出
された輝度に基づいて、前記動体領域に含まれる複数の前記画素又は前記領域に対して、
前記算出された露光時間と異なる露光時間を決定する決定ステップと、を有
し、
前記決定ステップでは、前記輝度が閾値よりも小さい画素又は領域における露光時間が、前記算出された露光時間よりも小さい所定の範囲内となるように前記露光時間を決定することを特徴とするプログラム。
【請求項6】
請求項
5に記載のプログラムを記憶したコンピュータで読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、撮像装置、制御方法、プログラム及び記憶媒体に関する。
【背景技術】
【0002】
従来より、露光時間画素それぞれの露光時間を制御することで、被写体の輝度レンジが大きい場合でも適切に撮影を行う手法が知られている(たとえば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明が解決しようとする課題は、ブレ量のばらつきを抑えつつダイナミックレンジの広い画像の撮像を可能とすることである。
【課題を解決するための手段】
【0005】
本発明は、以下の解決手段によって上記課題を解決する。
【0006】
本発明に係る撮像装置は、画素または複数の前記画素を含む領域ごとに算出された露光時間で画像を撮像可能な撮像手段と、前記撮像手段により撮像された画像から動体領域を検出する検出手段と、前記検出手段により検出された前記動体領域に含まれる複数の前記画素又は前記領域の輝度を算出する算出手段と、前記算出手段により算出された輝度に基づいて、前記動体領域に含まれる複数の前記画素又は前記領域に対して、前記算出された露光時間と異なる露光時間を決定する決定手段と、を有し、前記決定手段は、前記輝度が閾値よりも小さい画素又は領域における露光時間が、前記算出された露光時間よりも小さい所定の範囲内となるように前記露光時間を決定することを特徴とする。
【図面の簡単な説明】
【0007】
【
図1】本実施形態に係る撮像装置の機能構成を示す図である。
【
図3】第1の実施形態に係る撮像装置の露出制御動作を示すフローチャートである。
【
図4】第1の実施形態に係る撮像素子の露出制御の処理を示すフローチャートである。
【
図5】第1の実施形態に係る露光時間補正値の変換テーブルの例を示す図である。
【
図6】第1の実施形態に係る露光時間の補正前後の値の一例を示す図である。
【
図7】第2の実施形態に係る撮像素子の露出制御の処理を示すフローチャートである。
【
図8】第2の実施形態に係る露光時間補正値の変換テーブルの例を示す図である。
【
図9】第3の実施形態に係る撮像装置の機能構成を示す図である。
【
図10】第3の実施形態に係る撮像装置の露出制御を示すフローチャートである。
【
図11】第3の実施形態に係る撮像素子の露出制御の処理を示すフローチャートである。
【
図12】第3の実施形態に係る適正な露光時間と動体の速度との対応テーブルである。
【
図13】本実施形態に係る撮像装置のハードウェア構成を示す図である。
【発明を実施するための形態】
【0008】
(第1の実施形態)
図1は、本発明の実施形態に係る撮像装置の機能構成図である。レンズユニット100を通して得られた被写体像は撮像素子110によって電気信号(画素信号)に変換される。レンズユニット100は例えばズームレンズ、フォーカスレンズ、絞り、などによって構成されている。撮像素子110は画素または領域(ブロック)ごとに露光時間やゲインといった露出条件を制御して画像を撮像可能である。このため、撮像素子110は、ダイナミックレンジの広い画像を取得するのに適している。本実施形態では、撮像領域全体を複数のブロックに分割し、ブロックごとに露光時間を制御する例を説明する。得られた画素信号はデータ変換部200により画像処理に適した形式に変換される。データ変換の一例として、A/D変換、デモザイク処理などが含まれる。次に画像処理部201によって、補正処理、現像処理を経て画像信号に変換される。またJPEG方式などのデータ圧縮処理を含んでも良い。得られた画像信号は通信部202によって外部インターフェース経由で画像データとして出力される。上記の構成要素の処理は全て制御部210によって制御され、必要に応じて記憶部211に保存される。また、記憶部211に保存されたプログラムやデータを用いて、各構成要素を制御することが可能である。
【0009】
また、本実施形態に係る撮像装置は、動体マップ取得部220、明るさマップ取得部221、および輝度レンジマップ取得部222を有している。
【0010】
動体マップ取得部220は、撮像素子110で撮影される被写体が動いている場合、それを動体として検出し、動体マップを取得する。動体マップ取得部220は、例えば、時系列に沿って取得した画素信号の輝度情報を取得し、その輝度変化の絶対値を複数画素で平均して求めることで動き情報を生成する。この輝度変化の平均値が閾値より大きい場合は、平均値を求めるために使用した複数画素全体を、動きのある領域(ブロック)として動き情報を生成する。逆に、輝度変化の平均値が閾値より小さい場合は、動きのない領域(ブロック)として動き情報を生成する。このように生成された動き情報を画素信号の各画素に対応させることで、動体マップとして保存する。この動体マップを参照することで動体領域を認識することが可能である。動体マップの取得方法は、上述の方法に限定されず、他の方法で取得しても構わない。また、動き情報は、画素ごとに算出するようにしてもよい。
【0011】
明るさマップ取得部221は、画素信号から得られた輝度情報と、撮像素子110に設定された露出条件から、被写体の明るさ情報(明るさマップ)を取得する。明るさマップ取得部221は、例えば、複数画素で平均化した輝度情報および露出条件から、画像の明るさマップを生成して保持する。
【0012】
輝度レンジマップ取得部222は、動体マップ取得部220により得られた動体マップと、明るさマップ取得部221によって得られた明るさマップをもとに、動体の明るさ(輝度)の範囲(輝度レンジ)を算出する。輝度レンジマップ取得部222は例えば、動体マップによって動体領域と認識された画素が持つ明るさ情報を、明るさマップを用いて求め、動体領域内の明るさマップの上限値と各画素の明るさマップの値の差分を、各画素と対応したマップとして保存する。輝度レンジは上記方法だけでなく、他の方法を用いても良い。また、輝度レンジマップは動体マップや明るさマップに付加情報として加えても良い。
【0013】
動体マップ取得部220、明るさマップ取得部221、輝度レンジマップ取得部222もまた、制御部210によって制御され、得られたそれぞれの結果は記憶部211に保存される。
【0014】
次に、
図2を参照しながら本実施形態における動体マップ、明るさマップ、および輝度レンジマップについて説明する。
【0015】
図2(a)は撮影画像の例であり、動体の片側(左側)だけが明るく照らされている状況を示している。ここでは簡易的に被写体だけを示しているが、動体マップおよび明るさマップは背景を含めて生成される。
【0016】
図2(b)は動体マップの例である。図上では値が高いほど白く表現されており、その領域に動体が含まれる可能性が高いことを示している。また、撮影画像に比べて動体マップは解像度、階調ともに粗い情報で構成される。
【0017】
図2(c)は明るさマップの例である。こちらも値が高いほど白く表現されており、被写体および背景が明るいことを示している。明るさマップも動体マップと同様に、解像度、階調ともに撮影画像に比べて粗い情報で構成される。
【0018】
図2(d)は輝度レンジマップを表す例である。輝度レンジマップは、動体マップ内の動体領域と明るさマップを対応させ、動体領域内の最も明るい領域(ブロック)に対する明るさを、底を2とした対数で表している。つまり、最も明るい領域に対する明るさが半分になると、輝度レンジマップの値は-1となる。すなわち、輝度レンジマップは、最も明るいブロックを基準とした各ブロックの明るさを露出の段数で表している。
図2(d)において、0と書かれている部分は、動体領域の中で最も明るい部分を示しており、-2と書かれている部分は、動体領域の中の最も明るい部分(ブロック)に対して明るさが2段分暗いことを示している。具体的には、輝度レンジマップの各領域(ブロック)の値は、以下の数式1により算出される。
【0019】
【0020】
ここで、Cは輝度レンジマップの各領域(ブロック)の値、Aは動体領域の中で最も明るいブロックの輝度値、Bは対象のブロックの輝度値である。例えば、動体領域の中で最も明るいブロックの輝度値Aが100であり、対象のブロックの輝度値Bが25であった場合には、輝度レンジマップの値Cは-2となる。
【0021】
このように最も明るい部分を基準として輝度レンジを表しても良いし、最も暗い部分を基準として表しても良い。その他の明るさを基準として輝度レンジを表しても良い。またここでは輝度レンジが表示されていない領域は動体領域でないことを表しているが、動体領域でないことを表す固定値(例えば+1など)が入力されていても良い。
【0022】
なお、本実施形態では、輝度レンジマップの各ブロックの値を明るさの段数として算出する例を説明しているが、これに限定されない。輝度レンジマップは、動体領域における輝度のレンジ(分布)を示すことができさえすればよいので、段数以外の方法であってもよい。
【0023】
以下、
図3を参照しながら本実施形態の撮像装置の動作フローについて説明する。
図3は本実施形態における撮像装置が行う露出制御動作のフローチャートである。
図3の各ステップは、主に制御部210により実行される。
【0024】
まず、ステップS301において、制御部210は明るさマップ取得部221を用いて、被写体の明るさマップを取得する。
【0025】
続いて、ステップS302において、制御部210は動体マップ取得部220を用いて、被写体の動体マップを取得する。
【0026】
続いて、ステップS303において、制御部210は動体マップから動き量(輝度値の変化量)が所定の値以上となる領域を抽出し、動体領域として設定する。得られた動体領域は次のステップS304へ渡されるが、動体領域マップとして記憶部211に保存しても良い。
【0027】
続いて、ステップS304において、制御部210は輝度レンジマップ取得部222を用いて、S303にて設定された動体領域の輝度レンジを算出し、輝度レンジマップを取得する。
【0028】
続いて、ステップS305において、制御部210はS301で求めた明るさマップを用いて、レンズユニット100および撮像素子110の基本露出条件を求める。この基本露出条件は、例えば明るさマップの全画面平均をもとに露光時間、ゲイン、絞り値などの設定値として決定される。また、基本露出条件は他の方法で決定しても良い。
【0029】
続いて、ステップS306において、制御部210は、S301からS304で得られた明るさマップ、動体マップ、輝度レンジマップをもとに、各画素の個別露出条件を決定する。この個別露出条件は、例えば撮像素子110の各画素に設定される露光時間、ゲインなどの設定値である。本ステップの詳細については後述する。
【0030】
続いて、ステップS307において、制御部210はS305で決定した基本露出条件、S306で決定した個別露出条件に基づいて制御を行い、被写体の画像データを取得する。
【0031】
以上のように本実施形態の撮像装置における露出制御動作が実行される。
【0032】
次に
図4を参照しながら、
図3のステップS306における各画素の個別露出条件の設定方法について詳細に述べる。
【0033】
図4は、本実施形態における撮像装置の撮像素子110の個別の画素に対して露出設定する際の流れを示すフローチャートである。本フローは制御部210によって実行され、全ての画素に対して順次実行される。
【0034】
まず、ステップS401において、制御部210は明るさマップの値をもとに、対象画素の露出制御値であるゲインおよび露光時間を算出する。これにより、明るさマップの値に対して適正な露出量となるゲイン、および露光時間が求められる。
【0035】
続いて、ステップS402において、制御部210は対象画素が動体領域であるかどうかを判定する。判定を行う際に、制御部210は動体領域マップを記憶部211から読み出しても良いし、輝度レンジマップを読みだして、その値から動体領域かどうかを判定しても良い。動体領域である場合は、ステップS403へ移動する。動体領域でない場合、ステップS409へ移動する。
【0036】
ステップS403において、制御部210は輝度レンジマップの値を読み出し、その値(段数、明るさ)が閾値よりも小さいかどうかを判定する。閾値としては例えば-1(1段)などを設定し、記憶部210に保存されているものとする。輝度レンジマップの値が閾値よりも小さい場合、ステップS404に進む。一方、輝度レンジマップの値(段数、明るさ)が閾値以上の場合は、ステップS406に進む。
【0037】
ステップS404において、制御部210は輝度レンジマップの値を読み出し、輝度レンジマップの値(段数)を露光時間の補正値として、値分だけ露光時間が短くなるように再度算出する。結果として、輝度レンジの値が閾値よりも小さい動体領域に対しては同一の露光時間が設定される。これにより、露光時間が長くなり過ぎてブレが目立った画像となることを抑制することができる。
【0038】
続いて、ステップS405において、制御部210はゲインの値を、輝度レンジマップの値分だけ、つまり露光時間が短くなった分だけ大きくなるように再度算出する。これにより、ステップS404にて露光時間が変更された分だけ暗くなった動体領域を適正な露出量にすることが可能になる。その後、ステップS409へ進む。
【0039】
一方、ステップS406において、制御部210は輝度レンジマップの値を読み出し、読み出した値をもとにして露光時間の補正値を決定する。ステップS404では、輝度レンジマップの値をそのまま露光時間の補正値としたのに対し、ステップS406では、輝度レンジマップの値に基づいて露光時間の補正値が決定される点が異なる。ステップS406で決定される露光時間の補正値は、例えば輝度レンジマップの値が-2である場合は露光時間の補正値は-1.25、といったように、絶対値が輝度レンジマップの値よりも小さい。
【0040】
図5は、輝度レンジマップの値と露光時間の補正値との関係を示したものである。
【0041】
輝度レンジマップの値と露光時間の補正値とは、
図5(a)のようなテーブルとして記憶部211に保存されていても良い。輝度レンジマップの値が大きくなるほど、露光時間の補正値を大きくするとしても良く、あるいは輝度レンジマップの値がいくつでも、露光時間の補正値を固定値にする、としても良い。また組み合わせても良い。
【0042】
ここで、本実施形態ではブレ量のばらつきの低減と、広ダイナミックレンジの確保の両方を満たすことを目指しているが、ユーザーによってどちらかを優先させる場合も想定される。その際は、上記のステップS403における閾値、またステップS406における
図5(a)のテーブルを、ユーザーの選択によって切り替えることで実現可能である。
【0043】
具体的には、ブレ量のばらつき低減を優先させる場合には、閾値を例えば+3など、より大きな値とするとよい。また、テーブルを
図5(b)のように補正値をより大きな値にすることで動体領域のブレ量のばらつきを低減させることができる。
【0044】
反対に広ダイナミックレンジの確保を優先する場合には、閾値を例えば+1など、より小さな値とするとよい。また、テーブルを
図5(c)のように補正値をより小さな値にすることで動体領域のダイナミックレンジを広げることができる。
【0045】
図4に戻って、ステップS407において、制御部210はステップS406にて求めた露光時間の補正値を用いて、露光時間を再度算出する。これにより、輝度レンジの値が閾値以上の動体領域に設定された露光時間が、S401で設定された値よりもより狭い範囲に設定される。これにより、動体領域について、広いダイナミックレンジを確保しつつブレ量を抑えることができる。
【0046】
ステップS408において、制御部210はゲインの値を、ステップS406にて求めた露光時間の補正値分だけ大きくなるように再度算出する。露光時間の補正により露光時間が短くなり画像が暗くなるので、その分を信号のゲインアップでカバーするためである。これにより、ステップS407にて変更された露光時間の分だけ露出量が変更された動体領域を適正な露出量にすることが可能になる。その後、ステップS409へ移動する。
【0047】
ステップS409において、制御部210は算出された画素の露出制御値を、個別露出条件として決定する。
【0048】
以上の動作を各ブロックに対して実行することで、全てのブロックに対して個別露出制御条件が決定される。なお、本実施形態では、ブロックごとに露光条件を決定する例を説明したが、画素単位あるいは領域単位で露光条件を決定するようにしてもよい。
【0049】
図6は、
図4に示す露出設定の処理の前後における露光時間を示す図である。
図6(a)は、
図4のステップS401において算出された露光時間(段数)を示している。太線で囲んだ部分は、動体領域を示している。また、
図6(b)は、
図4のステップS404又はS406において決定した露光時間(段数)の補正値を示している。また、
図6(c)は、ステップS404又はS407において補正した動体領域の露光時間(段数)である。
図6(a)に示す各ブロックの露光時間(段数)と
図6(b)に示す各ブロックの補正値との和が
図6(c)に示す補正後の露光時間(段数)となる。なお、
図6(c)において、動体領域以外のブロックの露光時間(段数)については記載を省略しているが、実際には、動体領域以外のブロックも含めて露光時間(段数)が決定される。
【0050】
また、動体領域において、輝度レンジマップが閾値(-1
.5)より小さいブロックについては、最も明るい部分と同じ露光時間(段数)に設定されている。また、閾値以上の部分については、同じ露光時間になっていないが、動体領域内の露光時間はステップS401での露光時間(
図6(a))に比べて狭い範囲に設定されているのが分かる。露光時間の分布が狭くなった分、ダイナミックレンジが多少犠牲にはなるが、露光時間が短くなるのでブレ量を低減することができる。ダイナミックレンジが犠牲になるといっても、露光時間を一律で固定する場合に比べれば、十分に広いダイナミックレンジを確保できる。
【0051】
以上、説明したような露出制御動作を行うことで、輝度差が大きな動体に対して、動体領域内のブレ量のばらつきを抑えつつダイナミックレンジの広い画像を撮影することが可能となる。
【0052】
(第2の実施形態)
以下、
図7を参照して、本発明の第2の実施形態における、撮像装置の動作フローについて説明する。本実施形態においては、各画素の個別露出条件の決定方法が第1の実施例と異なり、輝度レンジマップの値が閾値より小さい画素(又はブロック)に対して、必ずしも同じ露光時間を設定せず、露光時間の範囲を狭めるに留める点が異なる。ここでは相違点を主に説明する。
【0053】
図7は本実施形態における撮像装置の撮像素子110の個別の画素(又はブロック)に対して露出条件を設定する際の流れを示すフローチャートである。本フローは制御部210によって実行され、全ての画素(又はブロック)に対して順次実行される。
【0054】
まず、ステップS701からS703については、第1の実施形態におけるステップS401からS403と同様の制御が行われる。
【0055】
ステップS704において、制御部210は輝度レンジマップの値を読み出し、読み出した値に基づいて露光時間の補正値を決定する。ここで露光時間の補正値は、例えば輝度レンジマップの値が0.5段(絶対値)である場合は露光時間の補正値は0.25段(絶対値)、といったように、0以上かつ輝度レンジマップの値(絶対値)よりも小さい。
【0056】
輝度レンジマップの値(絶対値)と露光時間の補正値(絶対値)とは、
図8のようなテーブルとして記憶部211に保存されていても良い。輝度レンジマップの値が大きくなるほど、露光時間の補正値を大きくするとしても良く、あるいは輝度レンジマップの値がいくつでも、露光時間の補正値を固定値にする、としても良い。また組み合わせても良い。
【0057】
続いて、ステップS705において、制御部210はステップS704にて求めた露光時間の補正値を用いて、露光時間を補正値分だけ短くなるように再度算出する。これにより、輝度レンジの値が閾値以下の動体領域に設定された露光時間が、S701で設定された値よりもより狭い範囲に設定される。
【0058】
続いて、ステップS706において、制御部210はゲインの値を、ステップS704にて求めた露光時間の補正値分だけ大きくなるように再度算出する。これにより、ステップS705にて変更された露光時間の分だけ露出量が変更された動体領域を適正な露出量にすることが可能になる。その後、ステップS710へ移動する。
【0059】
ステップS707からS710においては、第1の実施例におけるステップS406からS409と同様の制御が行われる。
【0060】
以上、説明したような露出制御動作を行うことで、輝度差が大きな動体に対して、ブレ量のばらつきを抑えつつダイナミックレンジの広い画像を撮影することが可能となる。
【0061】
(第3の実施形態)
以下、
図9を参照して、本発明の第3の実施形態における、撮像装置の動作フローについて説明する。本実施形態においては、さらに動体の速度を求めることが可能な構成となっている点が上記実施形態とは異なる。
【0062】
本実施形態では、動きベクトル抽出部223をさらに有する。具体的には、制御部210により明るさマップの時間的な変化を動きベクトルとして抽出させることで、動きベクトルの大きさから画面上の動体の速度を求めることが出来る。なお、動体の速度検出は、別の方法で行っても良い。動体の速度が速いほどブレ量が大きくなるため、露光時間を速度に応じて変更することで、被写体のブレ自体を抑えることが可能である。
【0063】
図10は本実施形態における撮像装置が行う露出制御動作のフローチャートである。
図10の各ステップは、主に制御部210により実行される。第1および第2の実施形態と異なる点を主に説明する。
【0064】
まずステップS1001からS1004において、第1の実施例におけるステップS301からS304と同様の動作を行う。
【0065】
続いて、ステップS1005において、制御部210は、S1003にて設定された動体領域に対して、明るさマップの値から動きベクトルを抽出し、その動きベクトルの大きさの平均値を求めることで、動体の速度を算出する(速度検出)。得られた動体速度は記憶部211に保存される。
【0066】
続いて、ステップS1006において、第1の実施例におけるステップS305と同様の動作を行う。
【0067】
続いて、ステップS1007において、制御部210はS1001からS1005で得られた明るさマップ、動体マップ、輝度レンジマップおよび動体速度をもとに、各画素の個別露出条件を決定する。この個別露出条件は、例えば撮像素子110の各画素に設定される露光時間、ゲインなどの設定値である。本ステップの詳細については後述する。
【0068】
続いて、ステップS1008において、制御部210は第1の実施形態におけるステップS307と同様の動作を行う。
【0069】
以上のように本実施形態の撮像装置における露出制御動作が実行される。
【0070】
次に
図11を参照しながら、
図10のステップS1007における各画素の個別露出条件の設定方法について詳細に述べる。
【0071】
図11は本実施形態における撮像装置の撮像素子110の個別の画素に対して露出条件を設定する際の流れを示すフローチャートである。本フローは制御部210によって実行され、全ての画素に対して順次実行される。
【0072】
まずステップS1101からS1104において、第1の実施例におけるステップS401からS404と同様の動作を行う。
【0073】
ステップS1105において、制御部210は動体の速度を読み出し、速度をもとにして適切な露光時間を上限露光時間として算出する。この上限露光時間は、被写体のブレ量が画像の違和感に繋がらないような露光時間の上限値として設定される。動体の速度と上限露光時間の関係は、
図12のようなテーブルとして記憶部211に保存されていても良い。すなわち、動体の移動速度が大きいほどブレ易いので、動体の移動速度が大きくなるにつれて露光時間の上限値が小さくなるようにする。
【0074】
続いて、ステップS1106において、制御部210はステップS1104において得られた露光時間と、ステップS1105において得られた上限露光時間とを比較し、露光時間が上限露光時間よりも長い場合、ステップS1107へ移動する。露光時間が上限露光時間よりも短い場合、ステップS1109へ移動する。
【0075】
ステップS1107において、制御部210は下限露光時間を露光時間として再度設定する。また両者の差分を記憶する。これにより、動体の移動速度に応じて、画像の違和感に繋がらないような露光時間に設定可能となる。
【0076】
続いて、ステップS1108において、制御部210はゲインの値を、ステップS1107で記憶した差分だけ大きくなるように再度算出する。これにより、ステップS1107にて変更された露光時間の分だけ露出量が変更された動体領域を適正な露出量にすることが可能になる。その後、ステップS1112へ移動する。
【0077】
ステップS1109において、第一の実施例におけるステップS405と同様の動作を行う。その後、ステップS1113へ移動する。
【0078】
ステップS1110からS1112において、第1の実施例におけるステップS406からS408と同様の動作を行う。
【0079】
ステップS1113において、制御部210は算出された画素の露出制御値を、個別露出条件として決定する。
【0080】
以上、説明したような露出制御動作を行うことで、輝度差が大きな動体(例えば、ヘッドランプが点灯した走行中の自動車など)に対して、移動速度に応じてブレ量の大きさを抑えるような適切な露光時間を設定できる。また、動体領域の各部分でのブレ量のばらつきを抑え、ダイナミックレンジの広い画像を撮影することが可能となる。
【0081】
なお、上記の実施形態では、画素単位あるいはブロック単位で露光条件を決定する例を説明したが、領域単位で露光条件を決定するようにしてもよい。
【0082】
(その他の実施形態)
本発明における制御の一部または全部を上述した実施形態の機能を実現するプログラム(ソフトウェア)をネットワーク又は各種記憶媒体を介して撮像装置や情報処理装置に供給するようにしてもよい。そしてその撮像装置や情報処理装置におけるコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行するようにしてもよい。その場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することとなる。
【0083】
図13は、上記各実施形態に係る処理をプログラムとして実行する撮像装置のハードウェアの構成例を示すブロック図である。
【0084】
CPU1301は、RAM1302やROM1303に格納されているコンピュータプログラムやデータを用いて撮像装置全体の制御を行うと共に、上記各実施形態に係る処理を実行する。CPU1301は、撮像部1305を制御する。
【0085】
RAM1302は、外部記憶装置1304からロードされたコンピュータプログラムやデータ、I/F(インターフェース)1306を介して外部から取得したデータなどを一時的に記憶するためのエリアを有する。更に、RAM1302は、CPU1301が各種の処理を実行する際に用いるワークエリアを有する。即ち、RAM1302は、例えば、フレームメモリとして割当てたり、その他の各種のエリアを適宜提供したりすることができる。
【0086】
ROM1303には、撮像装置の設定データや、ブートプログラムなどが格納されている。
【0087】
撮像部1305は、CCDやCMOS等の撮像素子から構成することができる。不図示の撮像光学系による被写体像を光電変換して画像信号を生成する。
【0088】
外部記憶装置1304は、USBメモリ、SDカード等の外部記憶装置である。外部記憶装置1304には、上記各実施形態に係る処理をCPU1301に実現させるためのコンピュータプログラムが保存されている。更には、外部記憶装置1304には、処理対象としての各画像が保存されていても良い。
【0089】
外部記憶装置1304に保存されているコンピュータプログラムやデータは、CPU1301による制御に従って適宜RAM1302にロードされ、CPU1301による処理対象となる。I/F1306には、LANやインターネット等のネットワーク、投影装置や表示装置などの他の機器を接続することができる。また、本コンピュータはこのI/F1306を介して様々な情報を取得したり、送出したりすることができる。1307は上述の各部を繋ぐバスである。
【0090】
以上、本発明の実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
【符号の説明】
【0091】
100 レンズユニット
110 撮像素子
200 データ変換部
201 画像処理部
202 通信部
210 制御部
211 記憶部
220 動体マップ取得部
221 明るさマップ取得部
222 輝度レンジマップ取得部