以下に、本発明の実施形態について、添付図面を参照して詳細に説明する。
(第1の実施形態)
図1は、本発明の信号処理装置の第1の実施形態である撮像装置の構成を示すブロック図である。本実施形態の撮像装置100は、複数画素を有するCMOS型撮像素子101、AFE(Analog Front End)102、DSP(Digital Signal Processor)103、タイミング発生回路104、およびCPU105を有している。
CMOS型撮像素子101は、ISO感度に応じてゲインを切替える不図示のアンプ回路を内蔵している。AFE102は、撮像素子101からのアナログ信号をデジタル信号に変換するA/D変換器を内蔵し、また、目標ダークレベルからのオフセットレベルをクランプする機能を有している。
DSP103は、AFE102から出力されたデジタル信号に対して各種の補正処理、現像処理、圧縮処理を行う。また、DSP103は、ROM106、RAM107等の各種メモリに対するアクセス処理、記録媒体108への画像データの書き込み処理、液晶表示部(LCD)114に対する各種データの表示処理等を行う。さらに、RAM107上の画像データに対して各種の補正処理を行うことも可能である。また、DSP103は、CMOS型撮像素子101で発生する横スミアや、横縞ノイズ等をHOB部の出力等を参照して補正する行方向補正回路1033(図5参照)を有している。
タイミング発生回路104は、CPU105の制御の下に、撮像素子101、AFE102及びDSP103にクロック信号や制御信号を供給し、DSP103と協働して、撮像素子101の各種読出しモードに対応したタイミング信号を生成する。
CPU105は、DSP103及びタイミング発生回路104の制御並びに測光・測距等の不図示の各部を使ったカメラ機能の制御を行う。CPU105には、例えば電源スイッチ109、第1段目のシャッタスイッチ110(SW1)、第2段目のシャッタスイッチ111(SW2)、モードダイアル112、及びISO感度設定スイッチ113が接続されている。CPU105は、これらのスイッチ及びダイアルの設定状態に応じた処理を実行する。
ROM106は、撮像装置の制御プログラム、すなわち、CPU105が実行するプログラム、及び各種の補正用データ等を記憶している。このROM106は、一般的にはフラッシュメモリにより構成されている。RAM107は、ROM106よりも高速にアクセスできるように構成されている。このRAM107は、ワークエリアとして利用され、DSP103により処理される画像データ等を一時的に記憶する。
記録媒体108としては、例えば撮影された画像データを保存するメモリカード等が用いられる。記録媒体108は、例えば不図示のコネクタを介してDSP103に接続される。
電源スイッチ109は、撮像装置を起動させる際にユーザにより操作される。第1段目のシャッタスイッチSW1がオンされた場合は、測光処理、測距処理等の撮影前処理が実行される。第2段目のシャッタスイッチSW2がオンされた場合は、不図示のミラー及びシャッタを駆動し、撮像素子101により撮像した画像データをAFE102及びDSP103を介して記録媒体108に書込む一連の撮像動作が開始される。
モードダイアル112は、撮像装置の各種の動作モードを設定するために利用される。ISO感度設定スイッチ113は、撮像装置の撮影ISO感度を設定するために利用される。LCD114は、カメラの情報を表示し、撮影した画像を再生表示し、或いは動画像データを表示するためのものである。
次に、図1に示した撮像装置の撮影動作の概要を図2のフローチャートに基づいて説明する。
CPU105は、電源スイッチ109がオンされると(ステップS201)、撮影に必要な電気エネルギーがバッテリに残存しているか否かを判別する(ステップS202)。その結果、撮影に必要な電気エネルギーがバッテリに残存していなければ、CPU105は、その旨の警告メッセージをLCD114に表示して(ステップS211)、ステップS201に戻り、電源スイッチ109が再度オンされるのを待つ。
撮影に必要な電気エネルギーがバッテリに残存していれば、CPU105は、記録媒体108をチェックする(ステップS203)。このチェックは、所定容量以上のデータを記録可能な記録媒体108が撮像装置に装着されているか否かを判断することにより行う。所定容量以上のデータを記録可能な記録媒体108が撮像装置に装着されていない場合は、CPU105は、その旨の警告メッセージをLCD114に表示して(ステップS211)、ステップS201に戻る。
所定容量以上のデータを記録可能な記録媒体108が撮像装置に装着されている場合は、CPU105は、モードダイアル112により設定された撮影モードが静止画撮影モード、動画撮影モードの何れであるかを判別する(ステップS204)。そして、CPU105は、静止画撮影モードが設定されていれば、静止画撮影処理を行い(ステップS205)、動画撮影モードが設定されていれば、動画撮影処理を行う(ステップS206)。
次に、図2のステップS205における静止画撮影動作の詳細を、図3のフローチャートに基づいて説明する。
静止画撮影処理では、CPU105は、まず、シャッタスイッチSW1がオンされるのを待つ(ステップS301)。そして、CPU105は、シャッタスイッチSW1がオンされると、不図示の測光制御部及び測距制御部を用いて、絞り値及びシャッタ速度を決定する測光処理、撮影レンズの焦点を被写体に合わせる測距処理を行う(ステップS302)。
次に、CPU105は、シャッタスイッチSW2がオンされたか否かを判別する(ステップS303)。その結果、シャッタスイッチSW2がオンされていなければ、CPU105は、シャッタスイッチSW1のオン状態が継続しているか否かを判別する(ステップS304)。CPU105は、シャッタスイッチSW1のオン状態が継続していれば、ステップS303に戻って、シャッタスイッチSW2がオンされたか否かを判別する。一方、シャッタスイッチSW1のオン状態が継続していなければ、CPU105は、ステップS301に戻って、シャッタスイッチSW1が再度オンされるのを待つ。
ステップS303にてシャッタスイッチSW2がオンされたと判別された場合は、CPU105は、撮影処理を実行する(ステップS305)。この撮影処理の詳細については、後述する。
次に、CPU105は、DSP103により、撮影した画像データの現像処理を実行させる(ステップS306)。そして、CPU105は、DSP103により、現像処理が施された画像データに対する圧縮処理を実行させて、その圧縮処理が施された画像データをRAM107の空き領域に格納させる(ステップS307)。
次に、CPU105は、DSP103により、RAM107に格納されている画像データの読出しと、記録媒体108への記録処理を実行させる(ステップS308)。そして、CPU105は、電源スイッチ109のオン/オフ状態をチェックする(ステップS309)。
電源スイッチ109がオンのままであれば、CPU105は、ステップS301へ戻り、次の撮影に備える。一方、電源スイッチ109がオフされていれば、図2のステップS201に戻り、電源スイッチが再度オンされるのを待つ。
次に、図3のステップS305の撮影処理の詳細を、図4のフローチャートに基づいて説明する。
撮影処理では、CPU105は、撮像装置の撮影ISO感度がISO感度設定スイッチ113にて設定されたISO感度となるように、撮像素子101内のアンプゲイン、AFE102内部のゲイン等を設定する(ステップS400)。
次に、CPU105は、ミラーをミラーアップ位置に移動させる(ステップS402)。次に、CPU105は、図3のステップS302の測光処理にて取得した測光データに基づいて、所定の絞り値まで絞りを駆動する(ステップS403)。
次いで、CPU105は、撮像素子101の電荷を消去(クリア)する(ステップS404)。その後、CPU105は、撮像素子101に対する電荷蓄積を開始する(ステップS405)。
続いて、CPU105は、シャッタを開き(ステップS406)、撮像素子101の露光を開始する(ステップS407)。そして、CPU105は、測光データにより規定される露光終了時間が経過するまで待機し(ステップS408)、露光終了時間が経過すると、シャッタを閉じる(ステップS409)。
次に、CPU105は、開放の絞り値まで絞りを駆動する(ステップS410)。次いで、CPU105は、ミラーダウン位置までミラーを駆動する(ステップS411)。その後、CPU105は、設定した電荷蓄積時間が経過するまで待機し(ステップS412)、電荷蓄積時間が経過すると、撮像素子101に対する電荷蓄積を終了する(ステップS413)。
続いて、CPU105は、撮像素子101の信号を読み出す(ステップS414)。この場合、ダークオフセットレベルをクランプする機能を具えたAFE102は、撮像素子101の不図示の遮光されたオプティカルブラック部(OB部)からの出力を用いてクランプ動作を行う。AFE102でのクランプ動作は比較的遅い時定数で行われるように設定し、周波数の低いダークシェーディング等に応答し、横縞や横スミアといった現象により現れる一時的な水平OB部の変動に応答しないようにする。
次に、CPU105は、行方向補正処理を行う(ステップS415)。行方向補正処理は、図5に示す行方向補正回路1033を用いて行われる。なお、行方向補正回路1033は、図1のDSP103に内蔵される。
以下、行方向補正処理を詳細に説明する。まず、横スミアが発生している画像のイメージを図6を用いて説明する。図6は、先に説明した図17を詳細に記述した図である。
図6に示すように、高輝度被写体が撮像素子101上に入射した場合、どんなに高輝度の被写体であっても、そのデジタルデータの最大値はA/D変換のbit数で決まる。例えば12bitであれば4095LSBが最大値となり、14bitでは16383LSBが最大値となる。既定の光信号が入射したときにどのようなデジタルデータを得るようにシステムゲインを設定するかはシステムの設計次第であるが、このデジタル出力の最大レベルを超えるような光信号入力が有ったとしても、その出力は一律最大値でクリップされることとなる。
一方、CMOS型撮像素子で発生する横スミア現象は、このデジタル出力の最大値に到達したからといって直ちに生じるものではない。条件によってはデジタル最大値となる以前の出力レベルから横スミアを発生する場合もあれば、デジタル最大値をはるかに超える光信号入力が入射することで初めて横スミアが発生する場合もある。これはCMOS型撮像素子の種類に依存する部分もあり、同一撮像素子であってもその撮像素子内部のアナログ回路のゲイン設定等により変化する部分もある。
図6では、高輝度被写体入射領域602の内部のA/D変換結果が最大値になっている。その内部の領域601は、領域602の中でさらに高輝度の被写体が入射している領域(入射位置)であり、領域601の影響により、横スミア現象がオフセット誤差を持つ領域603として現れていることを示している。
一方で撮像素子101の出力には、図6に示すような横縞成分604も現れる。横縞成分604は、外乱ノイズやCMOS型撮像素子の電源やGND配線に発生するノイズの影響により、一時的に生じるものである。
次に、図5の行補正回路1033の動作を説明する。図5において、入力端子501には、デジタルデータストリームが入力される。HOB部誤差検出部502は、入力端子501に入力されたデータストリーム中の遮光画素部である水平OB(HOB)部の出力信号である画素データを選択し、該当行におけるHOB部の出力信号と、目標とするレベルとの間の誤差量を算出する。
HOB部誤差検出部502による各行ごとの誤差の算出方法としては多くの方法が考えられるが、ここでは各行ごとのHOB部の出力について単純平均を算出する方法を用いる。この場合、HOB部で平均値算出に利用可能な画素数には限りがあるため、特に、高ISO感度時などのHOB部の出力そのものが非常にランダムノイズが大きい場合などには、十分な精度の平均値を算出することが困難な場合が想定される。このような場合には、算出した誤差量にも大きめのランダムノイズ成分が含まれるため、そのまま入力画像から減算処理すると、行毎にランダムなノイズ成分を重畳してしまい、結果として行毎にランダムな横縞成分を増加させてしまうこととなる。
これを低減させるために、算出した誤差量に対して一定のゲイン(<1.0)を乗じて減算することにより(減算結果)、このようなランダムノイズの影響を低減しつつ、横縞に対しては補正効果が得られる。HOB部の画素数や各画素のランダムノイズの大きさにも依存するが、この横縞補正に好適なゲインとしては0.4〜0.7程度が選択される。ここでは、補正係数1(503)に横縞補正に好適なゲインを設定し、後述する横スミア検出信号がHにならない限りにおいては、セレクタ507にて補正係数1が選択される。
そして、HOB部の誤差量にセレクタ507により選択された補正係数1を乗算器505で乗算し、行毎に算出されるその乗算結果をF/F506でラッチして、該当行の出力から減算器515で減算処理する。この補正処理動作により、図6のような横縞成分604に対し、HOB部出力を用いて、過補正となることなく補正処理を行うことができる。
一方で有効部選択部508では、データストリーム中に含まれる撮像素子の有効画素部の出力信号である画素データを検出し、検出対象行の有効画素出力のみを後段の検出部へ転送する。まず比較器510において、有効画素出力が判定値1(509)として設定された第1の判定値と比較する(第1の比較)。判定値1には、AFE102の変化bit数に応じたA/D変換の最大値あるいは最大値に近い値が第1の判定値として設定される。比較器510は、第1の判定値よりも画素出力が大きい場合に、比較信号(比較結果)がHになる。さらに、計数部511は、比較器510から出力される比較信号を受信し、受信した比較信号に基づいて、第1の判定値よりも大きい信号値を出力する画素数を各行ごとに計数する。
デジタルデータでその出力を判別可能なのはA/D変換結果の最大値までであり、その最大値を超える入射光量が入射しているか否かはデジタルデータそのものからは判別できない。しかしながらA/D変換結果が判定値1に設定された第1の判定値よりも大きい信号値を出力する有効画素が有ったとしても、それが非常に少数であれば、横スミアを発生させるほどの光信号は入射してないものと予想できる。それに対し、A/D変換結果が判定値1に設定された第1の判定値よりも大きい信号値を出力する有効画素が非常に多い場合には、横スミアを発生させるだけの光信号が入射している可能性が高いと判断する。
比較器513において、計数部511による計数結果を判定値2(512)に設定された第2の判定値と比較する(第2の比較)。例えば、判定値2(512)に第2の判定値としてN画素(ここで、Nは自然数)が設定される。比較器513は、第2の判定値よりも計数結果が大きい場合に、比較信号がHになる。図6の横スミア発生領域では、第1の判定値よりも大きい信号値を出力する有効画素数が第2の判定値(すなわち、N画素)を超えているので横スミアが発生している可能性が高いと判断し、比較器513が反転する。F/F514はその結果をラッチし、これが横スミア検出信号となり、Hの場合にはセレクタ507にて補正係数2(504)が選択される。
横スミア検出信号がHとなった場合には、HOB部で生じている誤差量はほとんどが横スミアによるものであり、補正係数2に設定するゲインは1.0に近い値とする。そして、HOB部の誤差量にセレクタ507により選択された補正係数2を乗算器505で乗算し、行毎に算出される乗算結果をF/F506でラッチして、該当行の出力から減算器515で減算処理する。
この補正処理により、図6のような横スミア成分603に対し、HOB部出力を用いて適切に補正処理を行うことができる。補正係数が1.0に近づくと、先に説明したようにランダムノイズの影響が想定される。しかし、ランダムノイズによりばらつく平均値のばらつき量よりも、発生している横スミア量のほうが大きい場合に多少横縞を増やす結果になったとしても、画像全体の画質に関してははるかに改善効果が大きくなる。また、計数部511、F/F506、514は各行ごとにリセットし、次行の判定を行う。
例えば、判定値1には、A/D変換最大値の31/32程度(A/D変換が14bit時であれば15872LSB程度)が第1の判定値として設定され、判定値2には、水平方向画素数の1/8程度の数値が第2の判定値として設定される。これらの数値は、使用するCMOS型撮像素子の横スミア発生状況を入射光源の輝度や、入射光の面積等を変化させて事前に確認することで取得することが可能である。少なくとも撮像素子内のゲインが異なる撮影感度への切り替え時には、切り替えが必要である。
また、撮像素子の駆動タイミングが切り替わるような場合、例えば、静止画モード時と動画モード時とでCMOS型撮像素子の駆動タイミングが切り替わる場合には、撮像素子内部の電源GND変動の影響量に差が生じる可能性があるため、各判定値の切り替えが必要である。このように、各種撮影条件に応じて切り替え可能とすることが望ましい。
また、本実施形態では、有効部選択部508は一つしか用意していない。しかし、撮像素子に入射する高輝度部分が、画面内のどの部分に入射するかによって横スミアの発生量が異なるような場所依存性を有する撮像素子においては、画面内の異なる領域を選択するように、有効部選択部508以降の検出部を画面内の場所ごとに配置してもよい。そして、画面内の場所ごとに適切な第1の判定値、第2の判定値を設定し、いずれかの領域において、横スミア検出信号がHとなった場合に、セレクタ507を切り替えるような構成にしてもよい。さらに、補正係数2も判定する領域に応じて切り替えるような構成にしてもよい。
また、本実施形態においては、撮像素子の画素出力に対しすべて同一に取り扱っている。しかし、撮像素子の異なる色毎(色別)の画素出力に応じて判定値1(509)、比較器510、計数部511、判定値2(512)、比較器513を用意し、いずれかの色出力に対応した比較器513が一つでも変化した場合に、セレクタ507を切り替えるように構成してもよい。また、すべての比較器513のうち一つでも変化したらセレクタ506を切り替えるように構成してもよい。その場合、第1の判定値、第2の判定値は、色毎に独立で設定できるようにする。
また、本実施形態では、対象行を明確にしていないが、データストリーム中の有効画素領域の信号を判定した後に該当行に対して補正処理を行うためには、データストリームを一時的に保存するバッファメモリが必要である。バッファメモリを設けることで、該当行のHOB部での誤差検出、有効画素領域での計数処理まで終えて算出した誤差補正量を、該当行の先頭画素の出力から減算処理することが可能となる。本実施形態のブロック図では、バッファメモリを設けていないため、回路規模としては非常に小さくなるが、計数して算出した誤差量を検出行の次の行に対する補正に適用することになる。
実際には、横スミア現象も特定の行から突然発生するのではなく、複数行にわたって徐々に誤差が大きくなるように発生する場合が多いため、検出行に検出結果をそのまま反映した補正を行わなくても構わない。
以上のように、本実施形態では、比較的回路規模の小さな回路構成で横スミア、さらには横縞等の行方向に生じるノイズに対して、それぞれ適切な補正処理を実現することが可能となる。
(第2の実施形態)
図7は、第2の実施形態における行方向補正回路1033のブロック図である。基本的な考え方は第1の実施形態と同じであるが、有効画素部の画素出力のうち判定値1(509)に設定された第1の判定値よりも大きい信号値を出力する有効画素を計数する計数部511の出力を判定する手段が判定回路518となっている。
判定回路518は、計数部511の計数結果を第1の実施形態と同じ判定値2(512)に設定された第2の判定値と、新たに設けられた判定値3(517)に設定された第3の判定値との比較を行う(第3の比較)。判定値2(512)に設定された第2の判定値は第1の実施形態と同じ数値であるが、判定値3(517)には、判定値2(512)に設定された値よりも小さな第3の判定値が設定されるものとする。
判定回路518は、計数部511の出力が
(1)判定値3(517)に設定された第3の判定値未満の場合には“0”を出力する。
(2)判定値3(517)に設定された第3の判定値以上、判定値2(512)に設定された未満の場合には“2”を出力する。
(3)判定値2(512)に設定された第2の判定値以上の場合には“1”を出力する。
これによりセレクタ507では
(1)判定値3(517)に設定された第3の判定値未満の場合には補正係数1を選択する。
(2)判定値3(517)に設定された第3の判定値以上、判定値2(512)に設定された第2の判定値未満の場合には補正係数3を選択する。
(3)判定値2(512)に設定された第2の判定値以上の場合には補正係数2を選択する。
計数結果が判定値3(517)に設定された第3の判定値以上、判定値2(512)に設定された第2の判定値未満の場合という中間の場合に補正係数としても中間の値を用いる。これにより、横縞に好適な補正係数1(503)と横スミアに好適な補正係数2(504)が大きく異なった場合においても、中間の補正係数3を設けることにより、補正処理が急激に変化することで画質に影響を与える可能性を低減させる。
補正係数3の値としては補正係数1と補正係数2の間の数値が入る。この場合、単純にこれらの係数の平均値を入れるようにしてもよいし、補正係数3としては補正係数1と補正係数2を設定すれば自動的にこれらの係数の平均値となるような回路構成であっても構わない。
特に第1の実施形態に記載したようにデータストリームをバッファリングするメモリを有しない場合に、該当行の検出結果を次行に対する補正処理で用いるような場合においてもこの影響を吸収する効果がある。そのため、回路規模の大きなメモリを持たなくてもわずかな回路規模の追加で画質に悪影響を与えずに適切な補正が可能となる。
(第3の実施形態)
本実施形態にて想定する画像を図8に示す。図8に示すように高輝度被写体として先に図6で説明したような領域601,602の他に、縦長のスリット状の被写体801が複数入射している場合を想定する。さらに各スリット光の幅は各々およそN/8画素で、各行ごとの総和は領域602の幅とほぼ同じN画素であるものとする。
この場合に各行ごとの高輝度被写体の総和は確かにN画素であるが、横スミアは発生しにくい。このような場合の被写体領域801と被写体領域601の判別を行うことが可能な行方向補正回路について説明する。
図9は、本実施形態における行方向補正回路1033の構成を示す図である。図9に示す行方向補正回路は図5の第1の実施形態の行方向補正回路と計数部511を除いて同一の構成である。第1の実施形態の計数部511に代わって連続計数部520が用意される。
以下、連続計数部520の動作について説明する。入力される有効部のデータが判定値1に設定された第1の判定値以上であり比較器510が反転した場合には、連続計数部520は内部のカウンタをインクリメントする。連続して有効部のデータが判定値1に設定された第1の判定値以上であると、その間、連続計数部520は内部のカウンタをインクリメントし続けるが、再度有効部のデータが判定値1に設定された第1の判定値未満となって比較器510が反転した場合には、それまでの計数結果を保存し、カウンタをリセットする。すでに先に保存された計数結果がある場合には、先の計数結果よりも今回の計数結果のほうが大きい場合に限り保存していく。これにより該当行内で高輝度被写体が最も連続した区間の画素数を検出すること、すなわち高輝度被写体の連続性を考慮することが可能となる。
こうして最終的に得られた最大の連続画素数が判定値2(512)と比較され、判定値2に設定された第2の判定値以上である場合には、横スミアが発生している可能性が高いと判断し、比較器513が反転する。F/F514はその結果をラッチし、これが横スミア検出信号となり、Hの場合にはセレクタ507にて補正係数2(504)を選択する。なお、各行ごとに、連続計数部520は、内部のカウンタおよび保存している最大カウント値はリセットする。
このような動作を行うことで、図8に示すような高輝度被写体が入射した場合、被写体801に対しては、高輝度被写体の水平方向の最大連続画素数は大きな数にはならないため、判定値2を超えることがなく、結果横スミアと判断されない。
しかしながら、被写体601,602のような高輝度被写体に対しては、水平方向の最大連続画素数が判定値2を超えるため、結果横スミアと判断し、適切な補正を行うことが可能となる。
(第4の実施形態)
これまでAFE102でのクランプ動作については、比較的遅い時定数で動作するように設定し、比較的周波数の低いダークシェーディング等に応答し、一方で横縞や横スミアといった現象により現れる一時的な水平OB部の変動に応答しないように設定していた。しかしながら、高輝度被写体の面積が広くなり、垂直方向のより多くの行数にわたって横スミアが発生するとAFEでのクランプ動作の時定数を遅く設定しても徐々に横スミアにより生じる誤差を引き込んでしまう。この様子を図10に示す。
図10(a)に示すように、高輝度被写体の面積、とくに垂直方向の面積が小さい場合にはAFEでの水平OBのクランプ動作は特に影響を受けないため、図左側に示すHOB部の出力を示す図のように、横スミア発生領域でのみその影響が見えている。
しかしながら図10(b)に示すように、高輝度被写体の面積、とくに垂直方向の面積が大きくなると、AFEでの水平OBのクランプ動作により、横スミアが発生している領域はその誤差量をクランプしはじめ、徐々に引き込んでいく。横スミア発生領域を過ぎると、今度はすでに引き込んだ横スミア誤差量から復帰するためにまたゆっくりとした時定数で引き込み動作を行っていく。このため高輝度被写体の面積が大きい場合には、横スミア発生領域の下部でAFEのOBクランプの誤動作により従来なかったパターンノイズが生じることとなる。以下、このような現象に対応する行方向補正回路について説明する。
図11は、本実施形態における行方向補正回路1033の構成を示す図である。図11における行方向補正回路は、図7の第2の実施形態で説明した構成と判定回路518の動作が異なること、および判定値3の意味する内容が異なること以外、同一の構成である。
判定回路521は、有効領域内で判定値1に設定された第1の判定値以上の値を有する画素数を計数部511で計数した結果と、判定値2(512)に設定された第2の判定値を比較する。ここで計数結果が判定値2に設定された第2の判定値未満である場合には、その出力を“0”としてセレクタ507にて補正係数1を選択する。一方、ここで計数結果が判定値2に設定された第2の判定値以上である場合には、その出力を“1”として、セレクタ507にて補正係数2を選択するとともに、内部の行数カウンタをインクリメントする。さらに次行においても計数結果が判定値2に設定された第2の判定値以上である場合には、その出力を“1”として、セレクタ507にて補正係数2を選択するとともに、内部の行数カウンタをインクリメントする。このように各行の計数結果が判定値2に設定された第2の判定値以上である場合にはその連続する行数を計数していく。
次に、計数結果が判定値2に設定された第2の判定値未満であると判断したときに、そこまでの連続行数が判定値3に設定された第3の判定値を超えていた場合には、その出力を“2”としてセレクタ507にて補正係数3を選択する。また内部では行数カウンタをデクリメントする。
このあと、引き続き計数結果が判定値2に設定された第2の判定値未満である場合には、デクリメントした結果が0になるまでその出力を“2”とする。内部カウンタが0に達して時点でその出力を“0”として補正係数1を選択する。
仮に計数結果が判定値2に設定された第2の判定値以上であっても、次に計数結果が判定値2に設定された第2の判定値未満となったところまでの連続行数の係数結果が、判定値3に設定された第3の判定値を超えていない場合には、判定回路の出力は通常通り“0”となり、補正係数1が選択される。また計数結果が判定値2に設定された第2の判定値未満となり、デクリメントしている途中で再度計数結果が判定値2に設定された第2の判定値以上となった場合も、内部カウンタはリセットする。
このような処理を行うことで、横スミアが発生している領域では横スミアを補正するのに好適な補正係数を選択し、横スミアが発生しなくなりAFEによるクランプエラーが発生している可能性が高い領域では、その誤差を吸収することが可能な補正量を選択可能である。また、それ以外の領域ではランダムに発生する可能性の高い横縞に好適な補正係数を選択することが可能となるため、広い面積で横スミアが発生するような場合であっても画質を低下させることなく補正が可能である。
本実施形態では回路規模低減のために、横スミアが連続して生じている行数と同じ行数だけクランプ誤差を補正する期間を設けている。しかし、この方法に限定されるものではなく、横スミアが連続した行数に比例係数を乗じることでクランプ誤差を補正する行数を設定できるようにしてもかまわない。
(第5の実施形態)
先の実施形態では、AFEでのクランプ誤差を補正する方法を説明したが、横スミアが発生していると判断した場合には、AFEでのクランプ動作そのものを一時的に停止することでクランプの誤動作は防ぐことができる。仮にこの期間AFEでのクランプ動作が行えなかったとして、横スミアが生じている期間のクランプ誤差量よりも、横スミア量のほうが大きい場合には、クランプ動作を停止しても横スミアを補正したほうが望ましい結果となる。
本実施形態における撮像装置のブロック図を図12に示す。図12におけるブロック構成は、これまで説明した実施形態と同一であり、唯一DSP103からAFE102への制御信号が増えている。この制御信号は、図13に示す行方向補正回路1033から出力される。次に、この行方向補正回路1033について説明する。
図13に示す行方向補正回路1033は、第1の実施形態における行方向補正回路と同一であるが、F/F514の出力を端子522から外部に出力可能としている。この出力信号をAFE102に供給し、AFE102ではこの制御信号がHとなる期間は水平OBクランプ動作を停止するものとする。この様子を図14で説明する
図14に示すように、高輝度被写体が入射した領域で横スミアが発生している可能性が高いと判断して比較器513が反転すると、F/F514はその結果をラッチし、これが横スミア検出信号となり、Hの場合にはセレクタ507にて補正係数502を選択する。同時にこの信号はOBクランプ停止信号としてAFE102に接続され、AFEでのHOBクランプ動作を停止させる。
これにより、横スミアが発生している面積が大きくてもAFEでのクランプ動作が停止しているため、横スミアで生じる誤差を引きこむことがなく、その結果、横スミアが発生した領域の下部で再度クランプ動作による変動が生じることもない。よって、AFE102のクランプ動作そのものを停止することが可能であれば、第4の実施形態に示した回路構成を用いることなく、より簡易に横スミアを高品質に補正することが可能となる。
なお、本実施形態では、AFE102でのクランプ動作を制御する構成としているが、このような制御性を向上させるために、AFEではHOBクランプそのもの実施させず、DSP内部で全面的にデジタル処理でHOBクランプを行うような構成にしても構わない。この場合には、行方向補正回路1033からクランプ回路への制御信号の伝達がDSP内部で閉じることになるため、撮像装置全体としての回路構成や配線等に影響を与えることなく同等の結果を得ることが可能となる。
(第6の実施形態)
本実施形態では、横スミアが発生しているか否かを予想するためにさらに精度を向上させる方法について説明する。
図15は、本実施形態における行方向補正回路の構成を示す図である。図15において、有効部で判定値1に設定された第1の判定値以上の画素出力は、これまでの行方向補正回路での構成と異なり、その出力データそのものを演算部523に転送する。演算部523では、判定値1に設定された第1の判定値以上の画素出力のみを入力し、その像データからCMOS型撮像素子出力のA/D変換結果の最大値以上の挙動を予測することで横スミアの発生領域を精度良く予測するものである。
この演算方法について図16を用いて説明する。図16に示すような高輝度被写体が入射した場合を想定する。領域1601は、その出力レベルが判定値1と等しい領域を示している。領域1602は、A/D変換結果の最大値をとる領域を示している。領域1603は、デジタルデータとしては領域1602と区別不可能であるが、CMOS型撮像素子の内部で実際に横スミアを発生させる信号レベルに達している領域を示す。したがって、演算部523は、領域1602の画素数を正確に算出することを目的とする。
図16に示す第n行における水平方向の各画素の出力を下部に示す。演算部523に入力される各画素の出力は実線で示す値である。演算部523では、判定値1とA/D変換の最大値の間の出力の勾配から横スミア発生レベルに到達すると思われる画素数を予測演算する。
たとえば、判定値1の水平方向の座標と、A/D最大値のエッジ部の水平方向の座標を元に直線近似を行うことで、既知の横スミア発生レベルを横切る水平方向の座標を求めることができる。これを高輝度被写体の左右両方向で行うことで、横スミア発生レベルを超える水平方向の画素数(図16の両矢印の範囲)を算出することが可能である。
想定している横スミア発生レベルを超える画素数が判定値2を超えた場合に、比較器513が反転し横スミア発生信号を生成する。これをF/F514でラッチして、セレクタ507で補正係数2を選択する。
一方、第m行においては演算回路に入力される画素データの勾配から演算しても、横スミア発生レベルを超える画素は無いと判断できる。この場合には、想定している横スミア発生レベルを超える画素数が判定値2を超えないため、比較器513が反転せず横スミア発生信号は生成されない。
この画像データから既知の横スミア発生レベルを超えると思われる画素数を算出する方法は多種考えられ、いずれの方法であっても構わないが、より高精度に横スミアが発生する行を算出することが可能となる。
また、横スミア発生レベルは、使用するCMOS型撮像素子の横スミア発生状況を入射光源の輝度や、入射光の面積等を変化させて事前に確認することで取得することが可能である。例えば、一例として横スミア発生レベルとしてはA/D変換最大値の2倍相当の値、判定値2の画素数としては水平方向画素数の1/8程度といった値が選択できる。もちろんこれらの値は撮影時のISO感度等によって変化する(切替可能)。
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。