以下、添付図面を参照して本発明を実施するための形態を詳細に説明する。ただし、本形態において例示される構成要素の寸法、材質、形状、それらの相対配置などは、本発明が適用される装置の構成や各種条件により適宜変更が可能であり、本発明がそれらの例示に限定されるものではない。発明を実施するための形態としては、まず、本発明の実施形態としての撮像装置全体の構成を図1を用いて説明する。なお、本実施形態に係る撮像装置は一例として、動画像を取得するためのデジタルビデオカメラであるが、静止画も取得可能なデジタルカメラ、監視カメラ、携帯電話、車載(移動体)カメラ等においても適用可能である。
まず、本発明の実施形態に係る撮像装置における各ブロックについて図1を用いて下記に説明する。図1は、本発明の実施形態の撮像装置のブロック図である。
101は被写体の光学像を形成するレンズ(撮像光学系)であり、変倍に際して光軸方向に移動する変倍レンズ(ズームレンズ)と、焦点調節(合焦)に際して光軸方向に移動するフォーカスレンズとを有する。また、レンズ101は入射光量を制御する絞りとNDを備えている。
102はレンズ101が形成した光学像を電気信号に光電変換する撮像素子である。撮像素子102はCMOS型イメージセンサであり、ローリングシャッター方式またはグローバルシャッタ方式で露光を行う。露光によって得られた光学像は各画素より画素信号として外部に出力される。なお、撮像素子102及びその動作に関しては後ほど詳述する。
103は撮像素子102が出力した画素信号に対してフレーム単位で所定の補正処理を実行する補正部と、補正部が補正したフレーム単位の画素信号に基づいて所定のフォーマットの映像信号を生成する生成部等を含む映像信号処理部である。画像処理部は、画像信号に対して任意の画像処理及び解析処理を行い各ブロックへ出力する。映像信号処理部103は、レンズ101の光学収差を補正する収差補正処理、撮像素子102から出力される画素信号に対して固定パターンノイズやランダムノイズを低減するためのノイズ低減処理部等が含まれる。また、画素信号に各種の補正を行った後に、映像信号に圧縮及び符号化を行うデジタル信号処理部を含む構成としてもよい。また、各信号に対して解析処理を行う解析処理部を含む構成としてもよい。この解析処理として、対象被写体(顔等)の有無を検出する被写体検出処理、被写体の動きを検出する動き検出処理、被写体の輝度を検出する輝度検出処理等が含まれる。
104は撮像装置全体を制御するための全体制御演算部である。全体制御演算部104は、各種演算と撮像装置全体を制御するCPUを含む。当該CPUは、撮像装置全体を制御するために各構成要素を統括的に制御及び各種設定パラメータ等の設定を行う。また、CPUは、データを電気的に書き込み・消去可能なキャッシュメモリ等を含み、これに記録されたプログラムを実行する。なお、メモリは、システム制御CPUが実行するプログラム格納領域、プログラム実行中のワーク領域、データの格納領域等として使用される。全体制御演算部104は、映像信号処理部103より出力される各信号の解析結果に基づいて、撮像素子102やレンズ101、不図示のストロボ等における各露出の設定値を算出する。具体的には、映像信号処理部103にて解析した結果に含まれる被写体の輝度に基づいて、保持されたプログラム線図を用いる。そして、撮像素子102に設定する露出時間、レンズ101に含まれる絞りのF値、不図示のストロボの発光量等の露出に関連したパラメータを決定する。なお、演算は映像信号処理部103で行うこととしたが、演算の一部または全部を全体制御演算部104にて行うようにしてもよい。ここでいう露出時間とは電子シャッターの実行タイミングのことであり、全体制御演算部104が撮像素子102に電荷の蓄積開始タイミングと電荷の読み出しタイミングを送ることによって制御する。また、全体制御演算部104は、不図示の操作部におけるメニュー設定やAF枠設定などに応じて撮像素子102の読み出し方法(駆動モード)を変更する。
105はRAMであり、全体制御演算部104の演算結果や映像信号処理部103の出力信号を一時的に記憶する。CPUに含まれるキャッシュメモリとは別に設けてもよし、同一としてもよい。
106はROMであり、欠陥情報や種々の調整値を記憶する。ROM106に記憶されている各種データは起動時等の所定のタイミングで前提際禦演算部104の制御によりRAM105に展開される。
107はDVD、ハードディスク、不揮発性メモリなどの記録媒体である。108は外部I/F部であり、撮像した映像を外部のモニタやレコーダに出力したり、他の撮像装置やプレーヤ等の外部機器から映像を入力したりできる。あるいは、外部I/F部108を介して撮像装置はコンピュータと接続し、コンピュータとインターネットを介して必要な情報を取得することができる。より詳細には外部I/F部108はUSBやイーサネット(登録商標)等の有線には限られず、無線LAN等の無線通信方式を採用してもよい。
109は欠陥画素検出部であり、撮像素子102から出力された画素信号または、RAM105に格納された映像信号を用いて、各信号に含まれる欠陥か否かを検出する。画素毎に検出した結果である欠陥画素データに基づいて生成される欠陥情報をRAM105、ROM106等に記憶する。なお、欠陥画素データには、欠陥量、欠陥画素のアドレス、欠陥の種類等が含まれる。ここで、欠陥量とは主に注目画素とその周囲画素との出力差であり、周辺画素より出力が高い場合は白欠陥、低い場合は黒欠陥となる。また、欠陥画素のアドレスとは、撮像素子102の画素配列内の位置を表すものであり、水平座標と垂直座標を組み合わせた絶対位置形式としてもよいし、信号走査方向において欠陥画素間の相対位置(距離)のみを記憶する相対位置形式としてもよい。また、欠陥の種類とは、欠陥の原因によって決定されるものである。各欠陥画素の欠陥量はその欠陥の原因によって依存する条件(撮像条件、環境条件等)が異なる。このため、工場出荷時に複数の撮像条件で画像信号を取得し、その結果を条件毎に欠陥の種類として記憶する。ここで、複数の撮像条件で欠陥を検出するために同一アドレスの画素に複数の欠陥が検出される場合がある。この場合は、一つの欠陥画素のアドレスに対応させて複数の欠陥の種類及び欠陥量を関連付けることが望ましい。また、欠陥画素データは欠陥検出部109にて検出された欠陥の情報であり、後述する補正に用いるために適宜修正することが望ましい。例えば、欠陥量に関しては複数の段階に分けてグループ化して、当グループをレベルとして記憶するようにしてもよい。このように修正された欠陥画素データは本実施形態においては欠陥補正データと称する。なお、欠陥補正データと欠陥画素データに含まれる情報は同様のものとなるが、データの修正の際に追加の情報を付加したり、不要な情報を削除するようにしてもよい。なお、RAM105等に記憶された欠陥情報は欠陥補正データの集合に相当する。
110は欠陥画素補正部であり、欠陥画素検出部109で検出された欠陥画素データに基づいて生成される欠陥情報を用いて、欠陥画素を補正する。より詳細には、欠陥画素補正部110で欠陥補正に使用するために、RAM105、ROM106等に記憶された欠陥情報の中から選択した欠陥補正データを使用して補正を行う。当選択は全体制御演算部104が撮像条件(ISO感度や露出時間)、不図示の温度計から取得した環境温度または撮像素子102の温度、撮像素子102の駆動モード等に基づいて行う。
図2は、欠陥画素補正部110の内部構成を表した図である。
201はアドレス算出部であり、撮像素子102の走査順に入力される画素信号の数をカウントして、補正対象となる注目画素信号に対応するアドレス情報を生成する。
202はデータ選択部であり、欠陥情報をRAM105から読み出す。そして、全体制御演算部104からの制御に基づいて選択した欠陥情報の一部を欠陥補正データとして後述する補正部204へ渡す。
203は閾値算出部であり、所定の閾値を元にカメラ設定に応じて適切な閾値を算出し、後述する補正部204へ渡す。
204は補正部であり、画像信号に対して、欠陥補正データに含まれる欠陥量と閾値を比較し、比較結果として閾値を超えた欠陥量を持つ画素信号に対して周辺画素を用いて補正を行い、出力する。より具体的には、以下のような判定を行う。まず、補正部204に注目画素の画像信号が入力された場合に、データ選択部202によって注目画素における欠陥情報が補正部204に入力される。一方で、アドレス算出部201より注目画素に対するアドレスも入力される。補正部204はアドレス算出部201より入力されたアドレスに基づいて欠陥情報に含まれる対象情報(欠陥補正データ)を抽出する。対象情報には欠陥量や欠陥の種類等が含まれる。そして、閾値算出部203からはカメラ設定に基づいて閾値が補正部204に入力される。補正部204は対象情報に含まれる欠陥量と入力された閾値とを比較する。比較した結果欠陥量が閾値を上回っていた場合には、注目画素はの欠陥量は補正すべき量であるとみなし周辺画素を用いて補正を行う。なお、本実施形態においては欠陥補正データに含まれる欠陥量と閾値を比較したが、欠陥量ではなく、入力された画素信号の値と閾値を比較してもよいし、両方の結果を組み合わせて判定を行ってもよい。ただし、入力画素の値と閾値を比較する場合には比較処理が発生するために、短時間で処理を終了する場合には好ましくいない。したがって、要求されるフレームレート等に基づいて処理を切り替えることが好ましい。
図3は、撮像素子102の画素構成の概要を示す図である。実線で示した矩形は各画素の領域を示しており、各画素はR、G、Bのいずれかのカラーフィルタを備えている。カラーフィルタの配列はいわゆるベイヤー配列の画素で構成される。さらに、各画素は点線で示した部分で左右の2つの領域(領域a、領域b)に分離されている。分離されている領域は光電変換を行う光電変換部であり、それぞれ独立に電荷を保持し、独立に画素信号を読み出すことが可能である。各画素には不図示のマイクロレンズが1つ備えられており、レンズ101により結像された被写体の光学像を分割して取得することとなる。言い換えればレンズ101の射出瞳の領域を分割することとなる。これにより、各領域から取得した画像信号同士の位相差を検出することで、被写体までの距離を算出することが可能となる。当該演算は全体制御演算部104が行う。また、全ての領域の電荷を換算して読み出すことで、通常の画素(分離の無い画素)と同様の画素信号を取得することも可能である。なお、画素の分離数は2に限られるものではなく、3以上でも同様であり、また分離方向も複数設けるようにしてもよい。図3は説明を簡略化するために4x4画素の例を示したが、実際の撮像素子は、例えば水平4096x垂直2160画素、または水平8192x垂直4320画素を有する。なお、本実施形態において、撮像素子102から取得される各領域から取得した画像信号は位相差を検出可能な位相差信号に相当する。さらに、当該位相差は、レンズ101に含まれるフォーカスレンズの焦点検出及び焦点調節にも用いられる。
図4は撮像素子102における画素の回路構成を示した図である。
400、401は光電変換部に相当するフォトダイオード(PD)であり、光電変換により入射光に比例した電荷を発生させる。図3で示したように本実施形態の撮像素子102は、1つの画素に2つのPDを含む。なお、400は画素の左部(図3の領域a)、401は画素の右部(図3の領域b)のPDに相当する。各PDはシリコン基板上に不純物を注入することで生成されることによって生成されるが、これに限られるものではなく有機物による光電変換膜を利用した構成としてもよい。この場合は、光電変換膜とは別に電荷を保持する電荷保持部を設ける構成となる。
402、403は転送スイッチ(TX1、TX2)である。転送スイッチ402(TX1)は、PD400で発生した電荷を転送する際に制御され、転送スイッチ403(TX2)は、PD401で発生した電荷を転送する際に制御される。
404はフローティングディフュージョン(FD)であり、TX1及びTX2を制御することにより転送される各PDで発生した電荷を一時的に保持する。また、FDは一定の容量を持っており、これにより保持した電荷量に基づいて電圧信号を生成することが可能である。
405はFD404のリセットスイッチ(RES)であり、RES405を制御することによって、各PD及びFD404にたまった電荷をリセットすることが可能となる。
406はソースフォロアアンプ(SF)であり、FD404に保持された電荷に基づいて発生した電圧信号を増幅し、後段の回路へ送る。
407は行選択スイッチ(SEL)であり、SF406からの出力信号を、後述の垂直線408に出力するかを制御する。
なお、画素に含まれる各スイッチ(TX1、TX2、RES、SEL)は、撮像素子102に含まれる不図示の垂直走査回路によって制御される。垂直走査回路は撮像素子102に含まれる各画素を行単位で制御することで、1フレーム分の画像信号を出力する。
なお、画素に含まれる各要素は半導体基板上に構成される。そのため、半導体の結晶欠陥や不純物の混入が発生した場合に画素欠陥を引き起こすこととなる。画素欠陥が発生した場合には、当該欠陥が発生した個所の特性に依存し、入射光に比例した電荷に基づいた信号とは異なる信号を出力する。
408は垂直線であり、SEL407で選択されたSF406の出力を後述の列回路に出力する。本実施形態において、列回路には信号を画素から出力されたアナログ信号を増幅するための列アンプ409と、列アンプ409が増幅した信号をAD変換するAD変換回路410を含む。列回路は垂直線408ごとに1つあり、同列の画素で共有して使用する。
なお、AD変換回路410は、撮像素子102に含まれる不図示の制御回路からの制御(SH)タイミングに基づいて列アンプ409の出力信号をサンプルホールドした後に、当該サンプルホールドした信号のAD変換を行う。さらに、入射光に基づく画素信号(S信号)とリセット時の画素信号(N信号)を別々のタイミングでAD変換を行う。それぞれの信号は別のメモリに一時的に格納されS信号よりN信号を減算することで、画素回路のばらつき成分を除去した画素信号を得ることが可能となる。なお、列回路は垂直線408毎に2つ以上設けるようにしてもよいし、2本以上の垂直線408に対して1つの列回路を設けてもよい。
図5は撮像素子102に対する第1の制御方法における制御タイミングを示した図である。図5は所定行における信号読み出しタイミングを示している。また、各信号は垂直走査回路から出力され、各タイミング(時刻)によってトグルするように制御される。それぞれの信号名は対応するスイッチ及び回路に対応している。
時刻T21では、SEL信号をLOWからHIGHに変更する。これにより、SEL407が制御され導通することで、SF406からの信号が垂直線408に出力される。本タイミングにおいてはRES信号がHIGHであるため、RES405はON状態であり、リセット電圧に基づく信号が出力される。
時刻T22では、RESをHIGHからLOWに変更する。これにより、RES405はOFFとなる。これによって、FD404のリセット時の電圧に基づく信号がSF406経由で垂直線408に出力される。
時刻T23では、SHをLOWからHIGHに、時刻T24ではSHをHIGHからLOWに変更する。SHを一時的にHIGHとした間に、垂直線408に出力されている信号をAD変換回路410内のサンプルホールド容量でサンプルホールドする。サンプルホールドされた信号はN信号に相当する。サンプルホールドされたN信号はその後AD変換回路410にてAD変換され、その結果はメモリに保持される。
時刻T25では、TX1及びTX2をLOWからHIGHに変更し、時刻T26では、TX1及びTX2をHIGHからLOWに変更する。これにより、PD400及びPD401で発生した電荷をFD404へ転送する。なお、本実施形態ではその説明を省略したが、図5に示す動作以前に所定のタイミングでPD400及びPD401の電荷をリセットすることによって、所定の期間(露光期間)の電荷蓄積が可能となる。
時刻T27では、SHをLOWからHIGHに変更し、時刻T28では、SHをHIGHからLOWに変更することで、時刻T23及び時刻T24と同様に信号(この場合にはS信号に相当する)をAD変換回路410にてサンプルホールドしてAD変換を行う。
図5に示した動作においては、N信号にはFD404以降の回路におけるノイズ成分がAD変換され、S信号にはPD400とPD401の信号成分及びFD404以降の回路におけるノイズ成分の合計値が含まれる。このため、正常な画素(欠陥画素ではない画素)においては、S信号からN信号を減算すれば、PD400とPD401の信号成分のみに基づいた信号を取得することが可能である。
しかし、S信号の取得タイミングとN信号の取得タイミングは厳密には異なるため、この時間差によって、意図していない信号成分が減算結果に含まれてしまう場合がある。例えば、FD404に欠陥があって、時間とともにFD404への電荷のリークが発生している場合が挙げられる。電荷のリークはFD404のリセットを解除してからの時間(時刻T22)、またはN信号とS信号を取得する時間差(時刻T24から時刻T28まで)に依存する。そのため、上述の減算を行っても、FD404への電荷のリーク分がノイズ成分として残ってしまう場合がある。
図6は撮像素子102に対する第2の制御方法における制御タイミングを示した図である。N信号を取得するタイミング(時刻T4)までは図5の制御方法と同様である。以下、図5に示した第1の制御方法との差であるS信号を取得するタイミング以降の動作に関して詳細に説明する。
時刻T5では、TX1をLOWからHIGHに変更し、時刻T6では、SHをHIGHからLOWに変更する。これにより、PD400で発生した電荷のみをFD404へ転送する。
時刻T7では、SHをLOWからHIGHに変更し、時刻T8では、SHをHIGHからLOWに変更することで、PD400で発生した電荷に基づくS信号(以下Sa信号)をAD変換回路410にてサンプルホールドしてAD変換を行う。
時刻T9では、TX1とTX2をLOWからHIGHに変更し、時刻T10では、TX1とTX2をHIGHからLOWに変更する。これにより、PD400とPD401で発生した電荷をFD404へ転送する。
時刻T11では、SHをLOWからHIGHに変更し、時刻T12では、SHをHIGHからLOWに変更することで、PD400とPD401で発生した電荷に基づくS信号(以下Sab信号)をAD変換回路410にてサンプルホールドしてAD変換を行う。
図6に示した動作においては、第1の制御方法と同様にN信号にはFD404以降の回路におけるノイズ成分がAD変換され、Sab信号にはPD400とPD401の信号成分及びFD404以降の回路におけるノイズ成分の合計値が含まれる。このため、正常な画素(欠陥画素ではない画素)においては、Sab信号からN信号を減算すれば、PD400とPD401の信号成分のみに基づいた信号を取得することが可能である。
しかし、FD404に欠陥があり、時間経過とともにFD404への電荷のリークが発生している場合は、上述の減算を行っても、FD404への電荷のリーク分がノイズ成分として残ってしまい、欠陥画素として読み出される場合がある。電荷のリーク量は、蓄積時間に比例することから、時刻T4から時刻T12までの時間の長さに比例することとなる。図5と図6より分かるように第1の制御方法におけるN信号とS信号の取得時間差は、第2の制御方法におけるN信号とSab信号の取得時間差よりも小さい。したがって、第2の制御方法においては第1の制御方法よりも電荷のリークの影響を受けやすいと言える。なお、ここでは電荷のリークの影響を取得時間差に関連して説明したが、電荷のリークは熱励起でも発生することは明らかであり、その影響は撮像素子102の温度等によって変化する。
図7は欠陥画素補正部110の閾値算出部203における閾値データの形式を示した図である。示した閾値データは欠陥画素の種類と閾値の2つの要素を有している。例えば、PD起因の欠陥画素K1に対しては閾値TH1、FD起因の欠陥画素K2に対しては閾値TH2を持つ。欠陥画素補正部110において、欠陥補正データの種類がK1であるものに対しては、欠陥補正データのレベル情報が閾値TH1を超えているもののみを補正対象とする。一方で、欠陥画素補正部110において、欠陥補正データの種類がK2であるものに対しては、欠陥補正データのレベル情報が閾値TH2を超えているもののみを補正対象とする。閾値TH1、閾値TH2はカメラ設定に応じて、値を変更して用いる。たとえば、シャッタースピード(露光時間)やゲインや温度に応じて、適切な閾値を算出し、補正に用いる。
(第1の実施形態)
第1の実施形態では、撮像素子の駆動モードに応じて、欠陥補正データと閾値を変更する例を示す。
図8は第1の実施形態における第1の駆動モードの制御方法を示した図である。第1の駆動モードでは、加算及び間引き動作は行わず、全行に対して図5で示した第1の制御方法で画素の読み出しを行う。このため、注目画素であるアドレス(X1、Y1)〜(X10、、Y10)の画素については、全て第1の制御方法を用いて読み出しが行われる。
図9は第1の実施形態における第2の駆動モードの制御方法を示した図である。第2の駆動モードでは、加算及び間引き動作は行わず、フレーム全体に含まれる全行に対して図6で示した第2の制御方法で画素の読み出しを行う。このため、注目画素であるアドレス(X1、Y1)〜(X10、、Y10)の画素については、全て第2の制御方法を用いて読み出しが行われる。
図10は第1の実施形態における第3の駆動モードの制御方法を示した図である。第3の駆動モードでは、第1の制御方法での読み出しと、第2の制御方法での読み出しを数行単位で交互に行う。このため、注目画素であるアドレス(X1、Y1)(X3、、Y3)(X5、、Y5)(X7、Y7)(X9、Y9)の画素は第2の制御方法で読み出さる。一方で、注目画素であるアドレス(X2、Y2)(X4、Y4)(X6、Y6)(X8、Y8)(X10、Y10)の画素は第1の制御方法で読みだされる。
図11は第1の実施形態における第4の駆動モードの制御方法を示した図である。第4の駆動モードでは、中央付近の領域(例えば複数行)を第2の制御方法で読み出し、その上部と下部の行を第1の制御方法で読み出す。このため、注目画素であるアドレス(X1、Y1)(X2、Y2)(X8、Y8)(X9、Y9)(X10、Y10)の画素は第1の制御方法で読み出される。一方で、このため、注目画素であるアドレス(X3、Y3)(X4、Y4)(X5、Y5)(X6、Y6)(X7、Y7)の画素は第2の制御方法で読みだされる。
第2の駆動モードは第1の駆動モードと比較して、各画素から読み出す信号量が多いために、第1の駆動モードに比べてフレームレートは低下してしまう。しかし、全ての画素において位相差を検出することが可能となる。また、第3の駆動モードと第4の駆動モードは第2の駆動モードと比較して、各画素から読み出す信号量が少ないために、第2の駆動モードに比べてフレームレートを向上させることが可能となる。なお、第3の駆動モード及び第4際には適宜垂直または水平方向に対して加算または間引きを行う動作を組み合わせてされにフレームレートを向上させるようにしてもよい。
図12は、第1の実施形態における欠陥画素検出処理のフローチャートである。本処理は全体制御演算部104が欠陥画素検出部109等を制御して行う。
ステップS100において、全体制御演算部104は、撮像素子102を第2の駆動モードに制御するように各種設定パラメータ変更する。そして、処理をステップS101に進める。なお、本制御は不図示の操作部材等によってユーザーからの入力や所定の動作指示に連動して行うようにしてもよいし、外部I/F部108経由で受け付ける外部からの指示に基づいて行うようにしてもよい。
ステップS101において、全体制御演算部104は、第2の駆動モードで動作する撮像素子102から出力される画素信号を、欠陥画素検出部109に入力する。そして、所定の閾値を用いて欠陥画素を検出し第1の欠陥情報を生成する。そして、処理をステップS102に進める。なお、欠陥画素の検出は暗あるいは明の一様面を撮像した結果を取得し、隣接画素との出力差によって検出する動作が一般的である。
ステップS103において、全体制御演算部104は、撮像素子102をステップS100にて第2の駆動モードに制御する前の駆動モードに戻すように各種設定パラメータ変更する。そして、処理を終了する。
なお、ステップS101での欠陥画素の検出においては、検出するための画素信号を取得する際にPDやFD起因の欠陥画素がそれぞれ検出しやすいように、露光時間、ゲイン、温度、撮像素子の制御方法などの検出条件を変更してもよい。例えば、PD起因の欠陥画素を検出する場合は、露光時間を長くしたり、FD起因の欠陥画素を検出する場合は、転送スイッチ402、転送スイッチ403をOFF(非導通状態)するなどして欠陥画素を検出しやすい状態にする。さらに、上記のように特定の検出条件で検出した欠陥画素に対しては特定の欠陥の種類を割り当てる。本実施形態において、露光時間を長めに設定した検出条件で検出された欠陥画素はPD起因の欠陥画素とみなし、欠陥の種類としてK1を付す。さらに、転送スイッチ403をOFFとした検出条件で検出された欠陥画素はFD起因の欠陥画素とみなし、欠陥の種類としてK2を付す。
図13は、第1の欠陥情報の一例を示した図である。第1の欠陥情報はアドレス、レベル、種類の3つの要素で構成されてる。アドレスは、画像における欠陥画素の座標情報であり、水平アドレスと垂直アドレスの2次元アドレスを用いてもよいし、画像の左上から数えた画素数の相対値である1次元アドレスを用いてもよい。レベルは、欠陥量に相当し、周囲画素のメディアン値もしくは平均値と、着目画素のレベル差の情報である。第1の欠陥情報では、第2の駆動モードで読み出しを行った場合のレベルを記憶する。種類は、欠陥画素の種類であり、どのような特性を持った欠陥であるかといった情報を記憶する。例えば、周囲画素に対してレベルが大きい場合を白キズとし、小さい場合は黒キズとする場合等が挙げられる。また、得られた第1の欠陥情報は所定の形式でRAM105、ROM106に記憶される。
図14は、第2の欠陥情報、第3の欠陥情報を生成するフローチャートである。本フローチャートの処理も全体制御演算部104が行う。
ステップS200において、全体制御演算部104は、第1の欠陥情報から第2の欠陥情報を生成する。そして、処理をステップS210に進める。図15に、第2の欠陥情報の一例を示す。第2の欠陥情報は、第1の欠陥情報同様、アドレス、レベル、種類から構成されている。そして、データ数も第1の欠陥情報と同じである。第2の欠陥情報のアドレスと種類には、第1の欠陥情報のアドレスと種類と同じ情報を格納する。そして、第2の欠陥情報のレベルのうち、種類がPD起因の欠陥画素を表すK1であるものについては、第1の欠陥情報と同じ値を格納する。一方で、第2の欠陥情報のレベルのうち、種類がFD起因の欠陥画素を表すK2であり、且つ第3の駆動モードにおいて第1の制御方法を用いたラインに該当するアドレスの画素に対しては、第1の欠陥情報のレベルに係数αを乗算した値を格納する。ここで、係数αは第2の制御方法を用いた際のFD404における欠陥画素のレベルに対する、第1の制御方法を用いた際のFD404における欠陥画素のレベルの比を示す。例えば(時刻T28−時刻T24)/(時刻T12−時刻T4)で求めることができる。図10においては、アドレス(X1、Y1)(X3、Y3)(X5、Y5)(X7、Y7)(X9、Y9)の画素が該当する。また、第2の欠陥情報のレベルのうち、種類がFD起因の欠陥画素を表すK2であり、且つアドレスが第3の駆動モードにおいて第2の制御方法を用いたラインに該当するアドレスの画素に対しては、第1の欠陥情報のレベルと同じ値を格納する。図10においては、アドレス(X2、Y2)(X4、Y4)(X6、Y6)(X8、Y8)(X10、Y10)の画素が該当する。
ステップS201において、全体制御演算部104は、第1の欠陥情報から第3の欠陥情報を生成する。そして、処理を終了する。図16に、第3の欠陥情報の一例を示す。第3の欠陥情報は、第1の欠陥情報同様、アドレス、レベル、種類から構成されている。そして、データ数も第1の欠陥情報と同じである。第3の欠陥情報のアドレスと種類には、第1の欠陥情報のアドレスと種類と同じ情報を格納する。そして、第3の欠陥情報のレベルのうち、種類がPD起因の欠陥画素を表すK1であるものについては、第1の欠陥情報と同じ値を格納する。一方で、第3の欠陥情報のレベルのうち、種類がFD起因の欠陥画素を表すK2であり、且つアドレスが第4の駆動モードにおいて第1の制御方法を用いたラインに該当するアドレスの画素に対しては、第1の欠陥情報のレベルに係数αを乗算した値を格納する。ここで、係数αは第2の欠陥情報を生成する際に用いた値と同じ値を用いるが、必ずしも同じ値でなくてもよい。図11においては、アドレス(X1、Y1)(X2、Y2)(X8、Y8)(X9、Y9)(X10、Y10)の画素が該当する。また、第3の欠陥情報のレベルのうち、種類がFD起因の欠陥画素を表すK2であり、且つアドレスが第4の駆動モードにおいて第2の制御方法を用いたラインに該当するアドレスの画素に対しては、第1の欠陥情報のレベルと同じ値を格納する。図11においては、アドレス(X3、Y3)(X4、Y4)(X5、Y5)(X6、Y6)(X7、Y7)の画素が該当する。
なお、第2の欠陥情報、第3の欠陥情報の生成は起動する度に毎回行ってもよいし、撮像装置の製造工程調整時に1回だけ行ってもよい。調整時に行う場合は、RAM105に生成されたデータをROM106に格納することで、次回以降は起動時にROM106のデータをRAM105に展開するだけで、生成した欠陥情報を欠陥画素補正部110に用いることができる。
図17は、第1の実施形態における1フレーム内における欠陥画素補正のフローチャートである。本処理は全体制御演算部104が欠陥画素補正部110等を制御して行う。
ステップS300において、全体制御演算部104は、現在設定されている駆動モードが第3の駆動モードかどうかを判定する。第3の駆動モードであると判定された場合は処理をステップS303へ進め、そうでないと判定された場合は処理をステップS301へ進める。
ステップS303において、全体制御演算部104は、第2の欠陥情報に基づく欠陥補正データを用いて補正を行う。より詳細には、第2の欠陥情報に基づく欠陥補正データと第1の補正閾値で欠陥画素補正を行う。そして処理を終了する。
ステップS301において、全体制御演算部104は、現在設定されている駆動モードが第4の駆動モードかどうかを判定する。第4の駆動モードであると判定された場合は処理をステップS304へ進め、そうでないと判定された場合は処理をステップS302へ進める。
ステップS304において、全体制御演算部104は、第3の欠陥情報に基づく欠陥補正データを用いて補正を行う。より詳細には第3の欠陥情報に基づく欠陥補正データと第1の補正閾値で欠陥画素補正を行う。そして処理を終了する。
ステップS302において、全体制御演算部104は、現在設定されている駆動モードが第2の駆動モードかどうかを判定する。第2の駆動モードであると判定された場合は処理をステップS305に進め、そうでないと判定された場合は処理をステップS306へ進める。
ステップS305において、全体制御演算部104は、第1の欠陥情報に基づく欠陥補正データを用いて補正を行う。より詳細には第1の欠陥情報に基づく欠陥補正データと第1の補正閾値で欠陥画素補正を行う。そして処理を終了する。
ステップS306において、全体制御演算部104は、第1の欠陥情報に基づく欠陥補正データを用いて補正を行う。より詳細には、第1の欠陥情報に基づく欠陥補正データと第2の補正閾値で欠陥画素補正を行う。ここで、第2の補正閾値は、第1の補正閾値に前述の係数αの逆数を乗算した値とする。
以上、説明したように、第1の実施形態においては、撮像素子の駆動モードに応じて補正に用いる欠陥情報と補正閾値を切り替える。これにより、ライン毎に画素の読み出し方法が変更された場合にも、適切な欠陥画素補正を行うことが可能となる。より詳細には、第1の実施形態では、各欠陥補正データに含まれる情報(アドレス、レベル、種類等)及びデータ量(欠陥画素の個数等)を含むデータ形式は同形式であり一致する。そのため、RAM105上のデータ配列をそろえておけば、駆動モードが変更されたときに、欠陥情報の先頭アドレス、もしくは補正閾値を変更するだけ切換え可能である。そのため、短時間で処理が可能である。したがって、位相差を取得する領域がフレーム単位で変更されたとしても、フレームレート等の低下を引き起こすことなく高画素の映像を出力することが可能となる。また、欠陥情報のみではなく、判定用の閾値を切り替えることで、撮像素子の駆動モードの数より少ない数でよいため、データ容量増大が抑制できる。
(第2の実施形態)
第2の実施形態では、3つの欠陥情報を用いて、複数の駆動モードに対応する例を示す。なお、第2の実施形態における欠陥画素の検出処理は、第1の実施形態における方法と同様であるため、その説明を省略する。
図18は、第2の実施形態における欠陥情報生成のフローチャートを示している。本処理は全体制御演算部104が行う。
ステップS400において、全体制御演算部104は、第1の欠陥情報から第5の欠陥情報を生成する。そして、処理をステップS401に進める。図19に、第5の欠陥情報の一例を示す。
第5の欠陥情報はアドレス、レベル、種類の3つの要素で構成されている。そして、データ数も第1の欠陥情報と同じである。第5の欠陥情報のアドレス、種類には、第1の欠陥情報のアドレス、種類と同じデータを格納する。そして、第5の欠陥情報のレベルのうち、種類がK1であるのものについては、第1の欠陥情報と同じ値を格納する。一方で、第5の欠陥情報のレベルのうち、種類がK2のものについては、初期値Linit(例えば4095)を格納する。第5の欠陥情報に含まれるアドレス(X1、Y1、Linit、K2)からアドレス(X10、Y10、L10、K1)に対応する欠陥補正データまで、RAM105上のアドレスD1_1からD1_10にそれぞれ処理を行い格納する。
ステップS401において、全体制御演算部104は、第1の欠陥情報から第6の欠陥情報を生成する。そして、処理をステップS402に進める。図20に、第6の欠陥情報の一例を示す。第6の欠陥情報は格納されるRAM105上のアドレスは異なるが、データとしては第5の欠陥情報と同じであり、生成方法も前述の方法と同様である。この第6の欠陥情報に含まれるアドレス(X1、Y1、Linit、K2)からアドレス(X10、Y10、L10、K1)に対応する欠陥補正データまで、RAM105上のアドレスD2_1からD2_10にそれぞれ格納する。
ステップS402において、全体制御演算部104は、第1の欠陥情報から第4の欠陥情報を生成する。そして、処理を終了する。図21に、第4の欠陥情報の一例を示す。第4の欠陥情報は垂直アドレス、第1のレベル、第2のレベル、第1のRAMアドレス、第2のRAMアドレス、の5つの要素で構成されておいる。そして、データ数は第1の欠陥情報のうち、種類がK2であるものの数と同じである。ここで、垂直アドレスには、第1の欠陥情報において、種類がK2であるデータのアドレスの情報から、垂直方向(Y方向)のアドレス情報のみを抽出して格納する。第1のレベルには、第1の欠陥情報において種類がK2であるデータにおけるレベルの情報をアドレス情報と対応させて格納する。第2のレベルには、格納した第1のレベルに対応して第1のレベルに係数α(例えば1/2)を乗算した値を格納する。第1のRAMアドレスには、第5の欠陥情報のうち、対応するデータのレベルが格納されているRAM105上のアドレスを格納する。例えば、D1_1、D1_2等が相当する。第2のRAMアドレスは、第6の欠陥情報のうち、対応するデータのレベルが格納されているRAM105上のアドレスを格納する。例えば、D2_1、D2_2等が相当する。
なお、本実施形態における図18に記載のフローチャートの処理は、任意のタイミングで実行してよい。例えば、は第4の欠陥情報、第5の欠陥情報、第6の欠陥情報の生成は起動する度に毎回行ってもよいし、工程調整時に1回だけ行ってもよい。工程調整時に行う場合は、RAM105に生成されたデータをROM106に格納することで、次回以降は起動時にROM106のデータをRAM105に展開するだけで、生成したデータを欠陥画素補正部110に用いることができる。また、ユーザー等の指示によって後発欠陥を検出するための処理と合わせて行うようにしてもよい。
図22は、第2の実施形態のフレーム毎の欠陥画素補正の処理に関するフローチャートである。本処理は全体制御演算部104及び、全体制御演算部104によって制御された欠陥画素補正部110等が行う。
ステップS500において、全体制御演算部104は、ユーザー等により撮像処理の開始が開指示されると、撮像素子102を駆動するための駆動モードを決定する。そして、処理をステップS501に進める。
ここで、駆動モードは第1の実施形態に示した駆動モードと同様のものの中からいずれか駆動モードを決定する。しかし、本実施形態においてそれ以外の駆動モードを用いるようにしてもよい。例えば、第3の駆動モードにおいて、第2の制御方法で制御される行を変更してもよいし、第4の駆動モードにおいて第2の制御方法で制御される領域を変更してもよい。ここで、本ステップで決定された駆動モードに対応するパラメータは全体制御演算部104から撮像素子102に設定される。撮像素子102は設定されたパラメータ等に基づいて所定の周期(30fpsや60fps等)で画素信号の出力を開始する。なお、本ステップにおいては記録媒体107への記録や不図示の表示装置への表示は行っていない。
ステップS501において、全体制御演算部104は、ステップS500にて決定された駆動モードに対応する欠陥情報をRAM105上に格納された欠陥情報の中から選択する。そして、処理をステップS502に進める。
ステップS502において、全体制御演算部104は、撮像を開始するように各ブロックの制御を行う。そして、処理をステップS503に進める。本実施形態において、撮像とは撮像素子102から出力される画素信号を何らかの形態でユーザーに提供する行為に相当する。例えば、記録媒体107に画素信号に基づく画像を記録する動作や不図示の表示装置に画像を表示する動作等が挙げられる。
ステップS503において、全体制御演算部104は、ステップS502で開始された撮像動作を継続する中で、適宜次のフレーム用の欠陥情報を修正する。本ステップにおける欠陥情報の修正方法の詳細は図23を用いて後述する。そして、処理をステップS504に進め、撮像が終了するまでステップS503の動作を繰り返す。全体制御演算部104は、ユーザー等の指示により撮像動作の終了し指示が有ったことを検出した場合に、本フローチャートの処理を終了する。
図23は図22におけるステップS503における欠陥情報を修正するための処理のフローチャートである。なお、本処理は全体制御演算部104が行う。ステップS503において、欠陥情報を修正する必要がる場合は、主に第2の制御方法を用いるラインが変更された場合である。例えば被写体を追尾する際には被写体の移動に合わせて位相差を取得するため、取得するフレーム毎にラインを変更することが好ましい。このような場合には第2の制御方法を用いるラインの変更は全体制御演算部104が行うため、当変更処理に合わせて欠陥情報の修正を行うこととなる。
ステップS700において、全体制御演算部104は、第4の欠陥画素データの一つ(例えば先頭のデータ)を選択する。そして処理をステップS701に進める。
ステップS701において、全体制御演算部104は、ステップS700等で選択した第4の欠陥画素データに格納されている垂直アドレスが、次のフレームで第2の制御方法を用いるラインであるかどうかを判定する。そして、垂直アドレスが次のフレームで第2の制御方法を用いるラインである場合はステップS702へ、用いるラインでない場合はステップS703へ処理を進める。
ステップS702において、全体制御演算部104は、第5の欠陥情報が欠陥画素補正部110に使うデータとして選択されているかどうかを判定する。第5の欠陥情報が欠陥画素補正部110に使うデータとして選択されている場合は、ステップS704へ、そうでない場合は、ステップS705へ処理を進める。
ステップS703において、全体制御演算部104は、第5の欠陥情報が欠陥画素補正部110に使うデータとして選択されているかどうかを判定する。第5の欠陥情報が欠陥画素補正部110に使うデータとして選択されている場合は、ステップS706へ、そうでない場合は、ステップS707へ処理を進める。
ステップS704において、全体制御演算部104は、第4の欠陥情報の第1のレベルを、選択されていない第6の欠陥情報に格納する。より詳細には、対応する第2のRAMアドレスに欠陥情報のレベルを書き込む。そして、ステップS708に進める。
ステップS705において、全体制御演算部104は、第4の欠陥情報の第1のレベルを、選択されていない第5の欠陥情報に格納する。より詳細には、対応する第1のRAMアドレスに欠陥情報のレベルを書き込む。そして、ステップS708に進める。
ステップS706において、全体制御演算部104は、第4の欠陥情報の第2のレベルを、選択されていない第6の欠陥情報に格納する。より詳細には、対応する第2のRAMアドレスに欠陥情報のレベルを書き込む。そして、ステップS708に進める。
ステップS707において、全体制御演算部104は、第4の欠陥情報の第2のレベルを、選択されていない第5の欠陥情報に格納する。より詳細には、対応する第1のRAMアドレスに欠陥情報のレベルを書き込む。そして、ステップS708に進める。
ステップS708において、全体制御演算部104は、第4の欠陥情報の全てを処理済みであるかどうかを判定する。第4の欠陥情報の全てを処理済みであった場合は、処理を終了し、そうでない場合は、ステップS709へ処理を進める。
ステップS709において、全体制御演算部104は、第4の欠陥情報のうち、処理していないデータを選択し、ステップS701へ処理を戻す。
以上、説明したように、第2の実施形態においては、二つの欠陥情報を用意し使用していない欠陥情報を適宜修正している。このことによって、第2の制御方法を適用したラインがフレーム毎に任意のラインに切り替わった場合でも、適切な欠陥画素補正を行うことが可能となる。特に、第2の実施形態では、欠陥情報を切り替える処理、と最小限のデータを書き換える処理だけで済むため、所定の時間内で処理が可能となる。特に各フレームの垂直画素数が4000画素以上のいわゆる8Kフォーマットの動画像、又はFullHDフォーマット動画において、フレームレートが120fps以上の動画像を取得する際に好適である。また、第1の制御方法と第2の制御方法をそれぞれどのラインに適用された場合においても、第4の欠陥情報、第5の欠陥情報、第6の欠陥情報のみを用いて、すべての組み合わせを補正することが可能であり、データ量の増大も抑制できる。
以上、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。上述の実施形態の一部を適宜組み合わせてもよい。
なお、本実施形態として、時間経過とともにFD404への電荷のリークが発生している場合において、例示したがこれに限られるものではない。例えば、欠陥の種類としては、撮像素子ないの読み出し動作の変更に複数の垂直線を切り替える場合や、一つの画素からの読み出しタイミングが異なる場合等が挙げられる。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記録媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。