(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0010】
以下、図面等を参照して、本発明の実施形態について説明する。
図1は、本実施形態の測光装置の受光素子9を含む、カメラ100の概略図である。撮影レンズ1を通過した光束は、クイックリターンミラー2、拡散スクリーン3、コンデンサレンズ4、ペンタプリズム5、接眼レンズ6を通って、撮影者の目に到達する。一方、拡散スクリーン3によって拡散された光束の一部は、コンデンサレンズ4、ペンタプリズム5、測光用プリズム7、測光用レンズ8を通して受光素子9へ到達する。
【0011】
測光装置10は、上述の受光素子9及びその受光素子9から接続された制御部11とを備える。制御部11は、受光素子9からの出力信号をA/D変換によってデジタル信号に変換する。そして、制御部11は、このデジタル信号をもとに、受光素子9においてオーバーフロー(OF)が発生しているかを判定し、絞り13の絞り値及びシャッター14のシャッタースピードを設定する。
【0012】
受光素子9は、CCDセンサ等の蓄積型の素子である。
図2は、受光素子9の測光部の一例である。図示するように、受光素子9において被写界が横14個、縦10個の140領域に分割されている。なお、それぞれの領域は、それぞれG(グリーン)、R(レッド)、B(ブルー)の3つの画素を有している。
図2の上に示す数値は、縦方向の画素番号である。図中右側の縦のラインは、縦オプティカルブラックが並ぶライン(OPBVライン)である。
【0013】
[オーバーフロー判定と受光素子制御]
オーバーフロー(OF)とは、強光により受光素子9のそれぞれの画素が蓄えられる電荷容量を越え、さらに、水平転送レジスタ容量を超えた電荷が転送方向の次画素に加算される現象である。この現象が起こった場合、一般的なAGC制御で次回蓄積時間を算出すると、その制御に支障をきたすことがある。
【0014】
図3(a)及び(b)は、スポット測光(SP測光)を行っている場合の、それぞれの画素における輝度を数値(単位LSB)示したものであり、OF状態であることを示す図である。
図3では、「LT」で示す部分(縦方向のライン9からライン11)が、スポット測光(SP測光)を行っているスポット領域(SP領域)である。
図3は、そのSP領域よりも図中右側(縦方向のライン6及びライン7)に強い光が入射した例を示したものである。
【0015】
SP領域内の最大値Vomaxは、
図3(a)の場合、20LSBである(ライン9B)。SP領域の目標レベルを100LSBとすると、例えば
図3(a)において蓄積時間が例えば10μsの場合、その5倍の50μsにすれば目標の値となると考えられる。
しかし、蓄積時間を5倍にすると、実際には、隣接する画素から電荷が溢れ、Vomaxの出力値が急激に上昇し、その結果、
図3(b)に示すように、目標レベルである100LSBを超えてしまう(
図3(b)においては420LSBとなる)。
【0016】
特に、逆光時にSP測光を行うと、OF発生の可能性が高いため影響が大きい。そこで、本実施形態では、以下に説明するいくつかの特定条件によりAGC制御を専用モードに切り替え、不安定な制御にならないようにしている。
【0017】
なお、以下のOF判定と次回蓄積時間算出の説明において使用するパラメータを以下の通り定義する。
OF:OF判定フラグ
PreOF:OF判定フラグ
vOPBV_OF[i]:縦OPB判定領域、縦OPB出力
VOREFave:VREF出力の平均
OPBV_OF_REF:縦OPB判定領域、縦OPB閾値(半固定値 所定初期値)
OPBV_OF_CNT:縦OPB判定領域、闘値を超えたものをカウント
OFOPBV:縦OPB判定領域、縦OPBレベル判定フラグ
Vob_OF[i,j]:OF判定領域B出力 (縦OPB減算後信号成分)
Vog_OF[i,j]:OF判定領域G出力 (縦OPB減算後信号成分)
Vor_OF[i,j]:OF判定領域R出力 (縦OPB減算後信号成分)
Hout_REV:OF判定領域、R,G,B出力閾値 (半固定値 所定初期値)
Hout_CNT:OF判定領域、R,G,B出力閾値を超えたものをカウント
Hout_SR:OF判定領域、カウント閾値(半固定値 所定初期値)
OFRG:OF判定領域、レベルゲート判定フラグ
SP_OF:SPAGC係数(半固定値 所定初期値)
OFD(収束方向フラグ):収束方向フラグ
IOF(蓄積時間判定レベル):蓄積時間判定レベル(半固定値 所定初期値)
int:今回蓄積時間
int':次回蓄積時間
intOF1:PreOFモード判定で、PreOF=1を満たした時の蓄積時間 (OF蓄積時間限度値)
intOF2:OFモード判定でOF=1を満たした時の蓄積時間 (OF蓄積時間限度値)
PreInt(前回蓄積時間):前回蓄積時間(OFモード時)
CurrInt(今回蓄積時間):今回蓄積時間(OFモード時)
NextInt(次回蓄積時間):次回蓄積時間(OFモード時)
VagcSP(目標AGCレベル):目標AGCレベル
Vomax:SP領域内の最大値
VagcSP:SP領域内の最大値の目標レベル
【0018】
[1]OFモード移行判定
OF判定は、ある蓄積で以下の判定1(予備OF判定)を満たし、かつ、判定1の次の蓄積時間から、以下の判定2(本OF判定)を満たす場合、OF=1としてOFモードに移行する。
【0019】
[1−1]判定1(予備OF判定)
まず、蓄積において以下の処理を行い、以下の全ての条件を満たす場合、PreOF=1とする。
【0020】
[1−1−1]処理1
縦OPB(縦オプティカルブラック)判定領域(別途定義)のレベル判定
強い光が当たった場合、縦OPBが浮く(出力値が大きくなる)ので、それを判定材料の1つとする。
図4は、SP領域の例を示す図である。例えば
図4(a)で説明すると、選択されたSP領域(ライン12,13,14)の行方向の縦OPB判定領域(OPB5、OPB6)の出力値vOPBV_OF[i]をVOREFave(VREF出力の平均)で減算し、所定閾値(OPBV_OF_REF)を超えるものをカウント(OPBV_OF_CNT)し、2画素以上の場合、縦OPBレベル判定フラグ(OFOPBV)を1とする。
【0021】
すなわち、
VOREFave−vOPBV_OF[i]≧OPBV_OF_REF → OF_OPBV_CNTをインクリメント
OPBV_OF_CNT≧2の場合、OF OPBV=1とし、それ以外は、OF OPBV=0
【0022】
[1−1−2]処理2
OF判定領域(別途定義)のレベルゲート判定
(強い光が当たった場合、有効画素のレベルを判定基準の1つとする)
選択されたSP領域の右側のOF判定領域(
図4(a)においてLS_BM)において、B画素,G画素,R画素の出力値、Vob_OF[i,j]、Vog_OF[i,j]、Vor_OF[i,j]が所定閾値(Hout_REV)を超えるものをカウント(Hout_CNT)し、閾値(Hout_SR)以上の場合にレベルゲート判定フラグ(OFRG)を1とする。
ここで、Hout_REVは半固定値であり、所定初期値を有する。Hout_SRも半固定値であり、所定初期値を有する。
【0023】
すなわち、
Vob_OF[i,j]≧Hout_REV→Hout_CNT カウントインクリメント
Vog_OF[i,j]≧Hout_REV→Hout_CNT カウントインクリメント
Vor_OF[i,j]≧Hout_REV→Hout_CNT カウントインクリメント
Hout_CNT≧Hout_SRのとき、OFRG=1 それ以外 OFRG=0
【0024】
図5は予備OF判定を示すフローチャートである。また、
図6は、受光素子9における、SP領域を示す図である。
1)SP測光で
図6に示す領域LS、LT、LB、C、T、B、Lが選択されている場合(ステップS1)。
2)縦OPB判定領域のレベル判定フラグがOFOB=1の場合(処理1)(S2)
3)OF判定領域のレベルゲート判定フラグOFRG=1の場合(処理2)(S2)
4)変数IOF(蓄積時間判定レベル)が所定の蓄積時間以上の場合(S3)
以上1)から4)の全てを満たす場合、上記処理結果と、測光モード、蓄積時間から、以下の条件を満たす場合PreOF=1とする(S4)。
【0025】
[1−2]判定2(本OF判定)
図7、
図8は本OF判定及び、OF判定されたOFモード時に行う次回蓄積時間算出示すフローチャートである。
今回の蓄積時間の結果から、Vomax(SP領域内の最大値)とVagcSP(目標AGCレベル)、SPAGC係数SP_OFから算出した値を比較し、以下の条件を満たす場合OF判定OF=1とする(S107)としてOFモードに入る。
また、比較結果より、収束方向フラグ(OFD(収束方向フラグ))を設定する。SP_OFは半固定値で所定の初期値を有する。
【0026】
すなわち、
Vomax<VagcSP×(2-SP_OF)の時 → OF=1、OFD(収束方向フラグ)=1
(S121,YES)
VagcSP×SP_OF<Vomaxの時 → OF=1、OFD(収束方向フラグ)=0
(S121,NO)
上記式は、目標レベルに対し、輝度が大きく外れていることを意味する。すなわち、OFの影響で線形性が保たれていない場合である。
【0027】
上記範囲外、つまり、
VagcSP(2-SP_OF)≦Vomax≦VagcSP×SP_OFの時OF=0であってオーバーフローは発生していないと判定する。(S108,NO)
【0028】
なお、判定1が満たされた場合の次回蓄積時間int'の算出は、一般的な処理と同じで、VagcSP(目標AGCレベル)をVomax(SP領域内の最大値)で割った値に前回蓄積時間intを乗じて行う
すなわち、
int'=VagcSP/Vomax×int
より算出する。
なお、Vomax(SP領域内の最大値)は、PreOF判定からOFモード終了までの間、固定するものとする。
【0029】
[2]縦OPB判定領域とOF判定領域
OPBV_OF_CNT、Hout_CNTを求める為の領域を設定する。
選択されているSP領域の、行方向の縦OPB領域を「縦OPB判定領域」、有効画素領域を「OF判定領域」とし、それらは下記(a)〜(g)のように定める。
また、縦OPB判定領域の縦OPB出力をvOPBV_OF[i]とする。
OF判定領域のR,G,B出力をVob_OF[i,j]、Vog_OF[i,j]、Vor_OF[i,j](縦OPB減算後信号成分)とする。
なお、
図6における、SP領域のRT、RB、RS、R(受光素子9の右側部分)においては、縦OPB判定領域とOF判定領域を設けない。
【0030】
(a)SP領域が「LS」の場合(
図4(a))、
OPBV_OF_CNTを求める縦OPB判定領域は、LS_OPBV
Hout_CNTを求めるOF判定領域は、LS_BM
【0031】
(b)SP領域が「LT」の場合(
図4(b))、
OPBV_OF_CNTを求める縦OPB判定領域は、LT_OPBV
Hout_CNTを求めるOF判定領域は、LT_BM
【0032】
(c)SP領域が「LB」の場合(
図4(c))、
OPBV_OF_CNTを求める縦OPB判定領域は、LB_OPBV
Hout_CNTを求めるOF判定領域は、LB_BM
【0033】
(d)SP領域が「C」の場合(
図4(d))、
OPBV_OF_CNTを求める縦OPB判定領域は、C_OPBV
Hout_CNTを求めるOF判定領域は、C_BM
【0034】
(e)SP領域が「T」の場合(
図4(e))、
OPBV_OF_CNTを求める縦OPB判定領域は、T_OPBV
Hout_CNTを求めるOF判定領域は、T_BM
【0035】
(f)SP領域が「B」の場合(
図4(f))、
OPBV_OF_CNTを求める縦OPB判定領域は、B_OPBV
Hout_CNTを求めるOF判定領域は、B_BM
【0036】
(g)SP領域が「L」の場合(
図4(g))、
OPBV_OF_CNTを求める縦OPB判定領域は、L_OPBV
Hout_CNTを求めるOF判定領域は、L_BM
【0037】
[3]OFモード時の次回蓄積時間算出
予備OF判定、及び本OF判定においてOFと判定された場合、次回蓄積時間(NextInt)の算出は、下記(1)〜(3)より求める。
まず、PreOF判定で、PreOF=1を満たした時の蓄積時間をintOF1とする(S101)。
OF判定でOF=1を満たした時(S108,YES)の蓄積時間をintOF2とし(S109)する。
図9は次回蓄積時間の算出を示す図であり、次回蓄積時間(NextInt)算出は、図示するようにintOF1とintOF2の範囲内で制御する。
【0038】
(次回蓄積時間算出)
1)CurrInt(今回蓄積時間)、PrevInt(前回蓄積時間)の差が、1dr、
すなわち、abs|CurrInt-PrevInt|=1drの場合 (S110,Yes)
OFD(収束方向フラグ)=1の時 (S121,YES)
→NextInt(次回蓄積時間)=CurrInt(今回蓄積時間) (S122)
OFD(収束方向フラグ)=0の時 (S121,NO)
→NextInt(次回蓄積時間)=CurrInt(今回蓄積時間)-1dr (S123)
なお、1drは受光素子9(例えばCCDセンサー)を蓄積できる最短時間である。
【0039】
2)CurrInt(今回蓄積時間)、PrevInt(前回蓄積時間)の差が、1drでない、
すなわち、abs|CurrInt-PrevInt|≠1drの場合 (S110,NO)
OFD=1の時 →NextInt=CurrInt+abs|CurrInt-PrevInt|/2 (S112)
OFD=0の時 →NextInt=CurrInt-abs|CurrInt-PrevInt|/2 (S113)
【0040】
3)VagcSP(目標AGCレベル)(2-SP_OF)≦Vomax(SP領域内の最大値)≦VagcSP(目標AGCレベル)×SP_OFを満たす、
すなわち、VagcSP(2-SP_OF)≦Vomax≦VagcSP×SP_OFの場合 (S118)
または、abs|CurrInt(今回蓄積時間)-PrevInt(前回蓄積時間)|=1dr
すなわち、abs|CurrInt-PrevInt|=1dr (S110,YES)
となるまで、上記2を繰り返す。
上記次回蓄積時間の算出により、例えば、
図9の(a)→(b)→(c)→(d)→(e)のような収束をする。
【0041】
[4]OFモード収束判定
OFモード時、下記の条件を満たした場合、OF_OK=1(S119)とし、AGCが収束したものと判定する。
1)Vomax(SP領域内の最大値)がVagcSP(目標AGCレベル)(2−SP_OF)≦Vomax(SP領域内の最大値)≦VagcSP(目標AGCレベル)×SP_OF
すなわち、VagcSP(2-SP_OF)≦Vomax≦VagcSP×SP_OFを満たす場合 (S118,Yes)
2)abs|CurrInt(今回蓄積時間)-PrevInt(前回蓄積時間)|=1dr
すなわち、abs|CurrInt-PrevInt|=1drを満たす場合 (S110,Yes)
【0042】
[5]OFモード終了の条件
下記の1)〜4)いずれかになった場合、OFモードを終了(OF=0)とする。また、同時にPrevOF=0とする(S120)。
1)選択されている縦OPB判定領域、OF判定領域において、
OF_OPB_CNT<2の場合→OFOB=0
かつ、
Hout_CNT<Hout_SRの場合→OFRG=0
(構図が変わったことを想定している、S106,NO、S127,NO)
2)次回蓄積時間が、intOF1とintOF2の範囲を超えた場合。
3)SP領域「RT、RB、RS、R SP」へ切り替わった時
4)SP測光から別の測光モードに切り替わった時
5)OFモードAGCが収束した場合。→OF_OK=1 (S119)
【0043】
以上、本実施形態によると、以下の効果を有する。
(1)本発明によれば、受光素子9に強い光が入射してオーバーフローした場合であっても、目標の信号出力電圧(VAGC)に近づくことができ、発振する(収束しない状態)ことがなくなる。
(2)また、オーバーフローしていないときは通常の制御を行い、オーバーフローしているときのみ、次回蓄積時間の算出において収束させるための計算を行う。このためオーバーフローしていないときの計算時間が増大することがない。