以下、発明を実施するための最良の形態(以下実施の形態とする)について説明する。尚、説明は以下の順序で行う。
1.第1の実施の形態(撮像装置のみ)
2.第2の実施の形態(撮像装置と情報処理装置)
<1.第1の実施の形態>
[撮像装置の構成例]
図1は、本発明を適用した一実施の形態の構成例を示す撮像装置である。
図1の撮像装置1は、予め暗時相当の画像を撮像し、その際に撮像される画像から特異な信号であるランダムノイズを検出し、ノイズデータベースとして登録しておく。そして、撮像装置1は、通常の画像を撮像する際、ランダムノイズが検出されると、ノイズデータベースに登録されたランダムノイズの情報を用いてランダムノイズを補正する。結果として、撮像装置1により撮像された画像は、特異な信号であるランダムノイズが低減された画像となる。
撮像装置1は、レンズ11、シャッタ12、撮像素子13、CDS(Correlated Double Sampling:相関2重サンプリング)部14、AD(Analog Digital)変換部15、ノイズデータ取得部16、ノイズデータベース17およびノイズ補正部18より構成されている。レンズ11は、図示せぬ被写体からの光を光学的に処理してシャッタ12に入射させる。シャッタ12は、開放、または閉塞の速度を変化させることにより撮像素子13に入射させる光量を制御する。撮像素子13は、CMOS(Complementary Metal Oxide Semiconductor)からなる撮像素子であり、シャッタ12を介して入射される光を光電変換により発生する微弱電流を増幅し、電圧信号として出力する。CDS部14は、撮像素子13より入力される電圧信号に相関2重サンプリング処理を施し、ノイズを除去してAD変換部15に出力する。AD変換部15は、CDS部14より入力される電圧信号をアナログ信号からデジタル信号に変換し、ノイズデータ取得部16、およびノイズ補正部18に出力する。
ノイズデータ取得部16は、ノイズデータベース17にランダムノイズの情報を登録する。より詳細には、ノイズデータ取得部16は、暗時相当の画像(暗時、または、擬似的に暗時の状態の画像)からランダムノイズを検出し、検出した画素のアドレスに対応付けて、ノイズの振幅、および時定数を登録する。ノイズ補正部18は、通常の状態で撮像された画像を構成する画素のうち、ノイズデータベース17により登録されたアドレスの画素、またはカラムのみを監視し、ランダムノイズを検出する。そして、ノイズ補正部18は、ランダムノイズを検出した場合、ノイズデータベース17に登録されているノイズの振幅および時定数に基づいた処理、またはその他の処理により、画素値を補正し、表示部2に出力して表示させる。
次に、撮像素子13の詳細な構成について説明する。
撮像素子13は、複数のフォトセンサ31−1乃至31−n、転送ゲート32−1乃至32−n、増幅トランジスタ33−1乃至33−n、および列選択スイッチ34−1乃至34−nを備える。さらに、撮像素子13は、負荷MOS電流源41、比較器42、およびカウンタ43を備える。尚、以降において、フォトセンサ31−1乃至31−nのそれぞれについて特に区別する必要がない場合、単にフォトセンサ31と称するものとし、その他の構成についても同様に称するものとする。
フォトセンサ31−1乃至31−nは、n個のフォトセンサ31から構成された1列分のフォトセンサ31を示すものであり、実際には、さらに多くの列のフォトセンサ31により構成される。ただし、図1においては、1列分の構成のみが示されている。すなわち、フォトセンサ31は、列単位で信号が転送される。そして、負荷MOS電流源41、比較器42、およびカウンタ43は、各列に設けられる。したがって、負荷MOS電流源41、比較器42、およびカウンタ43についても、列数分だけ存在する。
フォトセンサ31は、シャッタ12より入射されてくる光を光電変換し、微弱な電流を発生する。フォトセンサ31には、それぞれ冷却部31a−1乃至31a−nが設けられており、低温撮像のときにフォトセンサ31を冷却する。尚、冷却部31aについては、図1においては、フォトセンサ31にそれぞれ設けられている構成となっているが、実際には、フォトセンサ31を全体として冷却するものである。また、この冷却部31aは、出荷時に低温撮像される際に使用されるのみであるので、実際には、工場等での試験にのみ使用されるものであり、通常装備されるものではない。しかしながら、ここでは、説明の便宜上フォトセンサ31上に設けた構成としてある。
転送ゲート32は、通常、転送時にのみオンの状態で使用され、フォトセンサ31により生じる微弱な電流を増幅トランジスタ33に転送し、暗時相当の画像を取得する際にのみ、ノイズデータ取得部16によりオフの状態に固定制御される。増幅トランジスタ33は、ゲイン調整部33a−1乃至33a−nにより増幅率が制御されており、転送ゲート32より転送されてきた微弱電流を増幅して出力電圧を生成する。列選択スイッチ34は、通常、列転送時にのみオンの状態で使用され、増幅トランジスタ33により発生される電圧を比較部42に出力し、暗時相当の画像を取得する際にのみ、ノイズデータ取得部16によりオフの状態に固定制御される。
負荷MOS電流源41は、各列の電流値を一定とする定電流源として機能する。比較器42は、ランプ波と各画素の出力電圧とを比較し、カウンタ43に出力する。カウンタ43は、比較器42より供給されてくる比較結果に基づいて信号をカウントし、カウントしたカウント値をアナログの画素値として出力する。
次に、ノイズデータ取得部16の詳細な構成について説明する。
ノイズデータ取得部16は、画像取得部61、画像記憶部62、時系列画素値情報生成部63、画像取得条件選択部64、および画素単位処理部65、およびカラム単位処理部66を備えている。画像取得部61は、AD変換部15より供給されてくるデジタル信号からなる画像信号を取得し、画像記憶部62に記憶させる。時系列画素値情報生成部63は、画素単位で時系列に画素値をプロットさせた情報を生成する。
画像取得条件選択部64は、転送ゲート制御部71、列選択スイッチ制御部72、低温制御部73、およびゲイン制御部74を備えており、予めノイズデータベース17にランダムノイズの情報を登録するとき撮像する暗時相当の画像を撮像する条件を選択する。転送ゲート制御部71は、撮像素子13の転送ゲート32をオフにすることで、フォトセンサ31からの信号の転送を遮断し、暗時相当の画像を撮像できるようにして、増幅トランジスタ33以降で発生するランダムノイズだけが後段に転送されるようにする。列選択スイッチ制御部72は、撮像素子13の列選択スイッチ34をオフにすることで、増幅トランジスタ33からの信号の転送を遮断し、暗時相当の画像を撮像できるようにすることで、比較器42以降で発生するランダムノイズだけが後段に転送されるようにする。低温制御部73は、シャッタ12を閉塞状態にし、フォトセンサ31を冷却する冷却部31aをオンの状態に制御し、フォトセンサ温度特性を抑制した状態におけるフォトセンサ31そのもののランダムノイズを含む暗時の画像を撮像できるようにする。ゲイン制御部74は、シャッタ12を閉塞状態に制御し、増幅トランジスタ33のゲインを調整するゲイン調整部33aを制御し、異なる複数のゲインにより発生するランダムノイズを含む暗時画像を撮像できるようにする。
画素単位処理部65は、画素単位データ処理部81、画素単位統計処理部82、画素単位統計値生成部83、および画素値ランダムノイズ検出部84を備えており、画素単位でランダムノイズを検出し、ノイズデータベース17に登録する。画素単位データ処理部81は、画素単位の画素値の頻度に基づいた標準偏差を求める。画素単位統計処理部82は、画素単位の画素値ごとの標準偏差のヒストグラムを生成する。画素単位統計値生成部83は、画素単位の画素値に対する標準偏差の累積ヒストグラムを生成する。画素値ランダムノイズ検出部84は、標準偏差のヒストグラム、および標準偏差の累積ヒストグラムに基づいて、画素単位でランダムノイズを検出する。そして、画素値ランダムノイズ検出部84は、ランダムノイズが検出された画素については、ランダムノイズの情報をノイズデータベース17に登録する。
より詳細には、画素値ランダムノイズ検出部84は、アドレス検出部91、振幅検出部92、および時定数検出部93を備えている。アドレス検出部91は、ランダムノイズが発生している画素位置に対応するアドレスを検出する。振幅検出部92は、ランダムノイズが発生している画素の時系列の画素値の振幅を検出する。時定数検出部93は、ランダムノイズが発生している画素の時系列の画素値の時定数を検出する。そして、画素値ランダムノイズ検出部84は、ランダムノイズが発生している画素のアドレスに対応付けて、検出した振幅と時定数の情報をノイズデータベース17に登録する。
カラム単位処理部66は、カラム単位データ処理部101、カラム単位統計処理部102、カラム単位統計値生成部103、およびカラムランダムノイズ検出部104を備えている。カラム単位処理部66は、カラム単位(縦方向の列単位)で画素のランダムノイズを検出し、ノイズデータベース17に登録する。カラム単位データ処理部101は、カラム単位の画素の画素値の頻度に基づいた標準偏差を求める。カラム単位統計処理部102は、カラム単位の画素の画素値ごとの標準偏差のヒストグラムを生成する。カラム単位統計値生成部103は、カラム単位の画素の画素値に対する標準偏差の累積ヒストグラムを生成する。カラムランダムノイズ検出部104は、カラム単位での標準偏差のヒストグラム、および標準偏差の累積頻度のヒストグラムに基づいて、カラム単位でランダムノイズを検出する。そして、カラムランダムノイズ検出部104は、ランダムノイズを検出した画素を含むカラムについては、ランダムノイズの情報をノイズデータベース17に登録する。
より詳細には、カラムランダムノイズ検出部104は、アドレス検出部111、振幅検出部112、および時定数検出部113を備えている。アドレス検出部111は、ランダムノイズが発生しているカラム位置に対応するアドレスを検出する。振幅検出部112は、ランダムノイズが発生しているカラムの画素の時系列の画素値の振幅を検出する。時定数検出部113は、ランダムノイズが発生しているカラムの画素の時系列の画素値の時定数を検出する。そして、カラムランダムノイズ検出部104は、ランダムノイズを検出したカラムのアドレスに対応付けて、振幅と時定数の情報をノイズデータベース17に登録する。
次に、ノイズ補正部18の詳細な構成について説明する。
ノイズ補正部18は、画像取得部151、画像記憶部152、画像単位処理部153、およびカラム単位処理部154を備えており、AD変換部15より供給されてくる画像におけるランダムノイズを補正して、表示部2に表示させる。
画像取得部151は、AD変換部15より供給されてくるデジタル信号からなる画像信号を取得し、画像記憶部152に記憶させる。
画素単位処理部153は、予めノイズデータベース17に登録されているランダムノイズを検出した画素を監視し、ランダムノイズが発生した場合、ノイズデータベース17に登録されている画素単位のランダムノイズの情報を適宜使用して画素値を補正する。
画素単位処理部153は、隣接画素比較ノイズ検出部171、エリア画素比較ノイズ検出部172、画素パターン比較ノイズ検出部173、フレーム間比較ノイズ検出部174、時定数比較ノイズ検出部175、および振幅比較ノイズ検出部176を備えている。さらに、画素単位処理部153は、画素ノイズ振幅加減算補正部177、画素入替補正部178、画素加減算補正部179、画素空間平均化補正部180、画素時間平均化補正部181、および画素クリップ補正部182を備えている。
隣接画素比較ノイズ検出部171は、ノイズデータベース17に登録されたランダムノイズが検出された画素が、隣接する周辺の画素との画素値の差分が所定の閾値よりも大きい場合、ランダムノイズを検出する。エリア画素比較ノイズ検出部172は、ノイズデータベース17に登録されたランダムノイズが検出された画素と、その画素と対応して設定される所定のエリア内の画素との画素値の差分が所定の閾値よりも大きい場合、ランダムノイズを検出する。画素パターン比較ノイズ検出部173は、ノイズデータベース17に登録されたランダムノイズが検出された画素と増幅トランジスタ33を共有している画素との画素値の差分のパターンが所定の閾値より大きいか否かによりランダムノイズを検出する。
フレーム間比較ノイズ検出部174は、連写時や動画像などにおいて、ノイズデータベース17に登録されたランダムノイズが検出された画素の、直前のフレームにおける画素値との差分を比較し、所定の閾値よりも大きいか否かによりランダムノイズを検出する。尚、この例においては、直前のフレームを用いているが、数フレーム前のものでもよいし、さらに、前後のフレームを用いるようにしてもよい。さらに、フレームの代わりに、フィールドを使用するようにしてもよい。時定数比較ノイズ検出部175は、ノイズデータベース17に登録されたランダムノイズが検出された画素において、上述した検出結果によりランダムノイズが検出された場合、ノイズデータベース17に登録されている時定数と一致するか否かによりノイズを検出する。振幅比較ノイズ検出部176は、ノイズデータベース17に登録されたランダムノイズが検出された画素において、上述した検出結果によりランダムノイズが検出された場合、ノイズデータベース17に登録された振幅が一致するか否かによりノイズを検出する。
画素ノイズ振幅加減算補正部177は、ノイズが検出された画素の画素値に対して、ノイズデータベース17に登録されているノイズの振幅を加減算することにより画素値を補正する。画素入替補正部178は、ノイズが検出された画素の画素値を、周辺のいずれかの画素の画素値、平均値、または中央値に入れ替えて画素値を補正する。画素加減算補正部179は、ノイズが検出された画素の画素値に対して、周辺のいずれかの画素の画素値、平均値、または中央値と加減算することにより画素値を補正する。画素空間平均化補正部180は、ノイズが検出された画素の画素値に対して、周辺の画素を含めた平均値とすることにより画素値を補正する。画素時間平均化補正部181は、ノイズが検出された画素の画素値に対して、直前の数フレーム分の画素を含めた平均値とすることにより画素値を補正する。画素クリップ補正部182は、ノイズが検出された画素の画素値に対して、周辺の画素より求められた画素値にクリップすることにより画素値を補正する。
カラム単位処理部154は、予めノイズデータベース17に登録されているランダムノイズを検出したカラムを監視し、ランダムノイズが発生した場合、ノイズデータベース17に登録されているカラム単位のランダムノイズの情報を適宜使用して補正する。
カラム単位処理部154は、隣接カラム比較ノイズ検出部201、エリアカラム比較ノイズ検出部202、フレーム間比較ノイズ検出部203、時定数比較ノイズ検出部204、および振幅比較ノイズ検出部205を備えている。さらに、カラム単位処理部154は、カラムノイズ振幅加減算補正部206、カラム入替補正部207、カラム加減算補正部208、カラム空間平均化補正部209、カラム時間平均化補正部210、およびカラムクリップ補正部211を備えている。
隣接カラム比較ノイズ検出部201は、ノイズデータベース17に登録されたランダムノイズが検出されたカラムが、隣接する周辺のカラムの画素との画素値の差分が所定の閾値よりも大きい場合、ランダムノイズを検出する。エリアカラム比較ノイズ検出部202は、ノイズデータベース17に登録されたランダムノイズが検出された画素と、そのカラムと対応して設定される所定のエリア内のカラムの画素との画素値の差分が所定の閾値よりも大きい場合、ランダムノイズを検出する。
フレーム間比較ノイズ検出部203は、連写時、または、動画像などにおいて、ノイズデータベース17に登録されたランダムノイズが検出されたカラムの、直前のフレームにおけるカラムの画素値との差分を比較し、所定の閾値よりも大きいか否かによりランダムノイズを検出する。時定数比較ノイズ検出部204は、ノイズデータベース17に登録されたランダムノイズが検出されたカラムにおいて、上述した検出結果によりランダムノイズが検出された場合、ノイズデータベース17に登録されている時定数と一致するか否かによりノイズを検出する。振幅比較ノイズ検出部205は、ノイズデータベース17に登録されたランダムノイズが検出されたカラムにおいて、上述した検出結果によりランダムノイズが検出された場合、ノイズデータベース17に登録された振幅が一致するか否かによりノイズを検出する。
カラムノイズ振幅加減算補正部206は、ノイズが検出されたカラムの画素の画素値に対して、ノイズデータベース17に登録されているノイズの振幅を加減算することによりカラム単位で画素値を補正する。カラム入替補正部207は、ノイズが検出されたカラムの画素の画素値を、周辺のいずれかのカラムの画素の画素値、平均値、または中央値に入れ替えて画素値を補正する。カラム加減算補正部208は、ノイズが検出されたカラムの画素の画素値に対して、周辺のいずれかのカラムの画素の画素値、平均値、または中央値と加減算することにより画素値を補正する。カラム空間平均化補正部209は、ノイズが検出されたカラムの画素の画素値に対して、周辺のカラムの画素を含めた平均値とすることにより画素値を補正する。カラム時間平均化補正部210は、ノイズが検出されたカラムの画素の画素値に対して、直前の数フレーム分のカラムの画素を含めた平均値とすることにより画素値を補正する。カラムクリップ補正部211は、ノイズが検出されたカラムの画素の画素値に対して、周辺のカラムの画素より求められた画素値にクリップすることにより画素値を補正する。
[ノイズデータベース登録処理について]
次に、図2のフローチャートを参照して、暗時相当の画像、または暗時の画像を撮像し、撮像した画像からランダムノイズを検出し、ノイズデータベース17に登録する処理について説明する。
ステップS11において、ノイズデータ取得部16は、画像取得処理を実行し、条件を変化させて暗時相当の画像、または、暗時の画像を撮像し、撮像した画像を取得する。
[画像取得処理について]
ここで、図3のフローチャートを参照して、画像取得処理について説明する。
ステップS21において、画像取得条件選択部64は、転送ゲート32をオフにして暗時相当の画像を撮像するように設定されていたか否かを判定する。例えば、図示せぬ設定操作により転送ゲート32をオフにして暗時相当の画像を撮像するように設定されていた場合、処理は、ステップS22に進む。
ステップS22において、画像取得条件選択部64は、転送ゲート制御部71を制御して、転送ゲート32をオフにするように制御する。この処理により、撮像素子13の転送ゲート32は、オフに制御される。結果として、撮像素子13の各フォトセンサ31からの信号がカットされ、増幅トランジスタ33以降のノイズを含む、暗時相当の画像信号のみがAD変換部15からノイズデータ取得部16に供給される。
ステップS23において、画像取得部61は、撮像素子13の各フォトセンサ31からの信号がカットされ、増幅トランジスタ33以降のノイズを含む、暗時相当の画像信号を画像記憶部62に記憶する。
ステップS24において、画像取得部61は、所定枚数の画像が取得されたか否かを判定し、所定枚数の画像が取得されていない場合、処理は、ステップS23に戻る。すなわち、所定枚数の画像が取得されるまで、ステップS23乃至S24の処理が繰り返される。そして、ステップS24において、所定枚数の画像が取得された場合、処理は、ステップS25に進む。
ステップS25において、転送ゲート制御部71は、転送ゲート32をオンの状態、すなわち、オフに固定された状態ではなく、通常の制御状態に制御し、転送ゲート32をオフにした状態における暗時相当画像の取得処理を終了する。
すなわち、ステップS22乃至S25の処理により、転送ゲート32がオフにされ、フォトセンサ31からの信号がカットされた状態における暗時相当の画像が画像記憶部62に蓄積されることになる。
一方、ステップS21において、転送ゲート32をオフにする設定がなされていない場合、ステップS22乃至S25の処理がスキップされて、処理は、ステップS26に進む。
ステップS26において、画像取得条件選択部64は、列選択スイッチ34をオフにして暗時相当の画像を撮像するように設定されていたか否かを判定する。例えば、図示せぬ設定操作により列選択スイッチ34をオフにして暗時相当の画像を撮像するように設定されていた場合、処理は、ステップS27に進む。
ステップS27において、画像取得条件選択部64は、列選択スイッチ制御部72を制御して、列選択スイッチ34をオフにするように制御する。この処理により、撮像素子13の列選択スイッチ34は、オフに制御される。結果として、増幅トランジスタ33からの信号がカットされ、比較器42以降のノイズを含む、暗時相当の画像信号のみがAD変換部15からノイズデータ取得部16に供給される。
ステップS28において、画像取得部61は、撮像素子13の各増幅トランジスタ33からの信号がカットされ、比較器42以降のノイズを含む、暗時相当の画像信号を画像記憶部62に記憶する。
ステップS29において、画像取得部61は、所定枚数の画像が取得されたか否かを判定し、所定枚数の画像が取得されていない場合、処理は、ステップS28に戻る。すなわち、所定枚数の画像が取得されるまで、ステップS28乃至S29の処理が繰り返される。そして、ステップS29において、所定枚数の画像が取得された場合、処理は、ステップS30に進む。
ステップS30において、列選択スイッチ制御部72は、列選択スイッチ34をオンの状態、すなわち、オフに固定された状態ではなく、通常の制御状態に制御し、列選択スイッチ34をオフにした状態における暗時相当画像の取得処理を終了する。
すなわち、ステップS27乃至S30の処理により、列選択スイッチ34がオフにされ、増幅トランジスタ33からの信号がカットされた状態における暗時相当の画像が画像記憶部62に蓄積されることになる。
一方、ステップS26において、列選択スイッチ34をオフにする設定がなされていない場合、ステップS27乃至S30の処理がスキップされて、処理は、ステップS31に進む。
ステップS31において、画像取得条件選択部64は、シャッタ12を閉塞し、冷却部31aをオンにして暗時の画像を撮像するように設定されていたか否かを判定する。例えば、図示せぬ設定操作によりシャッタ12を閉塞し、冷却部31aをオンにして暗時の画像を撮像するように設定されていた場合、処理は、ステップS32に進む。
ステップS32において、画像取得条件選択部64は、低温制御部73を制御して、シャッタ12を閉塞し、冷却部31aをオンにするように制御する。この処理により、シャッタ12が閉塞され、撮像素子13のフォトセンサ31の冷却部31aがオンにされる。結果として、フォトセンサ31が冷却されることにより、温度上昇に伴う熱ノイズが低減された画像、すなわち、暗時の低温撮像された画像信号のみがAD変換部15からノイズデータ取得部16に供給される。
ステップS33において、画像取得部61は、暗時の低温撮像された画像信号を画像記憶部62に記憶する。
ステップS34において、画像取得部61は、所定枚数の画像が取得されたか否かを判定し、所定枚数の画像が取得されていない場合、処理は、ステップS33に戻る。すなわち、所定枚数の画像が取得されるまで、ステップS33乃至S34の処理が繰り返される。そして、ステップS34において、所定枚数の画像が取得された場合、処理は、ステップS35に進む。
ステップS35において、低温制御部73は、シャッタ12の開放可能な状態にすると共に、冷却部31aをオフの状態とし、通常の制御状態に制御し、低温撮像による暗時画像の取得処理を終了する。
すなわち、ステップS32乃至S35の処理により、シャッタ12が閉塞された状態で、冷却部31aがオンにされ、低温撮像による暗時の画像が画像記憶部62に蓄積されることになる。
一方、ステップS31において、シャッタ12を閉塞し、冷却部31aをオンにするように設定がなされていない場合、ステップS32乃至S35の処理はスキップされて、処理は、ステップS36に進む。
ステップS36において、画像取得条件選択部64は、シャッタ12を閉塞し、増幅トランジスタ33のゲイン調整部33aを制御して、複数のゲインの暗時の画像を撮像するように設定されていたか否かを判定する。例えば、図示せぬ設定操作によりシャッタ12を閉塞し、増幅トランジスタ33のゲイン調整部33aを制御して、複数のゲインの暗時の画像を撮像するように設定されていた場合、処理は、ステップS37に進む。
ステップS37において、画像取得条件選択部64は、ゲイン制御部74を制御して、シャッタ12を閉塞し、増幅トランジスタ33のゲイン調整部33aを制御して、ゲインを切り替えるように制御する。この処理により、シャッタ12が閉塞され、増幅トランジスタ33のゲイン調整部33aが制御されて、ゲインが切り替えられる。結果として、様々なゲインにより、暗時撮像された画像信号のみがAD変換部15からノイズデータ取得部16に供給される。
ステップS38において、画像取得部61は、暗時のゲインが調整された状態で撮像された画像信号を画像記憶部62に記憶する。
ステップS39において、画像取得部61は、所定枚数の画像が取得されたか否かを判定し、所定枚数の画像が取得されていない場合、処理は、ステップS37に戻る。すなわち、所定枚数の画像が取得されるまで、ステップS37乃至S39の処理が繰り返される。そして、ステップS39において、所定枚数の画像が取得された場合、処理は、ステップS40に進む。
ステップS40において、ゲイン制御部74は、シャッタ12の開放可能な状態にすると共に、ゲイン調整部33aによりゲインを元の状態とし、通常の制御状態に制御し、複数のゲインでの撮像による暗時画像の取得処理を終了する。
すなわち、ステップS37乃至S39の処理により、シャッタ12が閉塞され、ゲイン調整部33aにより様々に調整された状態で、暗時の画像が画像記憶部62に蓄積されることになる。
一方、ステップS36において、シャッタ12を閉塞し、ゲイン調整部33aにより様々なゲインに調整するように設定がなされていない場合、ステップS37乃至S40の処理はスキップされて、処理は、終了する。
以上の処理により、転送ゲート32がオフにされた状態における暗時相当の画像、列選択スイッチ34がオフにされた状態における暗時相当の画像、フォトセンサ31を冷却した状態におけるシャッタ12が閉塞状態にされたときの暗時画像、およびゲイン調整部33aにより増幅トランジスタ33のゲインが複数に調整された状態における暗時画像のいずれか、または、それら全てを画像記憶部62に記憶させることが可能となる。尚、図3のフローチャートにおいては、いずれの暗時相当画像、および暗時画像をも撮像しない状態があり得るが、ここでは、少なくともいずれか1種類の暗時相当画像、または暗時画像が撮像されるものとする。
ここで、図2のフローチャートの説明に戻る。
ステップS11において、画像取得処理が終了すると、ステップS12において、ノイズデータ取得部16が、ランダムノイズ取得処理を実行し、取得された暗時相当、または暗時の画像よりランダムノイズを取得し、ノイズデータベース17に登録する。
[ランダムノイズ検出処理について]
ここで、図4のフローチャートを参照して、ランダムノイズ検出処理について説明する。
ステップS71において、時系列画素値情報生成部63は、各画素について時系列に画素値を取得しプロットする。
ステップS72において、画素単位処理部65は、画素単位データ処理部81を制御し、画素単位で画素値による標準偏差を求めさせる。尚、ここでいう標準偏差とは、全時系列の画素の画素値の平均値に対して、各画素の画素値の差分の2乗和を総数で除した値の平方根である。
ステップS73において、画素単位統計処理部82は、画素単位で、求められた標準偏差によるヒストグラムを生成する。
ステップS74において、画素単位統計値生成部83は、画素単位で、求められたヒストグラムによる累積ヒストグラムを生成する。
ステップS75において、画素値ランダムノイズ検出部84は、撮像素子13のうち処理対象となる画素のうち、未処理の画素を処理対象の画素に設定する。
ステップS76において、画素値ランダムノイズ検出部84は、標準偏差のヒストグラム、または累積ヒストグラムに基づいて、所定の閾値よりも大きな画素値であるか否かによりランダムノイズを含む画素であるか否かを判定する。より詳細には、暗時画像のノイズは、画素値の小さな値にについては、正規分布に含まれるサーマルノイズや1/fノイズによるものが多く、画素値の大きさに応じて、ランダムノイズは指数関数的に変化する傾向がある。このため、画素値ランダムノイズ検出部84は、指数関数的に変化する(正規分布から外れる)画素値の画素についてはランダムノイズが含まれるものとみなす。指数関数的に変化する正規分布から外れる画素としては、例えば、正規分布のピーク付近の所定数以外の画素、累積相対度数が極小さい画素(例えば、0.1%以下の画素など)、および、3値以上の離散値となる画素値をとる画素である。ここで、画素値が、3値の離散値を取る画素とは、例えば、図5で示されるような波形である。すなわち、暗時相当画像、または暗時画像であるから、理想的には画素値は一定の値となるはずであるが、3値以上の離散値を取るということは、ランダムノイズの影響があると考えられる。図5においては、時系列に画素値がプロットされた波形であり、波形が、画素値L1,L2,L3の3値のみから構成されていることが示されている。
ステップS76において、ランダムノイズを含む画素であると判定された場合、処理は、ステップS77に進む。ステップS77において、振幅検出部92は、時系列に画素値がプロットされた結果より、ランダムノイズの振幅を検出する。すなわち、ランダムノイズの振幅とは、例えば、図5で示されるように、波形が3値以上の離散値を取るので、各離散値の差分となる値がノイズの振幅となる。図5においては、画素値L1とL2との差分よりも大きい、画素値L2とL3の差分が振幅とされているが、いずれか小さい方としてもよいし、平均値とするようにしてもよい。
ステップS78において、時定数検出部93は、時系列に画素値がプロットされた結果より、ランダムノイズの時定数τを検出する。すなわち、ランダムノイズの時定数τとは、例えば、図5における画素値L3を維持した状態を継続する時刻t1乃至t2の時間τである。尚、この時定数についても、同一の画素値をとる時間の長さは様々であるので、最大値、最小値、平均値、または中央値などを使用するようにしてもよいものである。
ステップS79において、アドレス検出部91は、処理対象となっている画素のアドレスを取得すると共に、ノイズデータベース17にアクセスして、アドレスに対応付けて、振幅、および時定数をノイズデータとして登録する。
一方、ステップS76において、ランダムノイズが含まれていないと判定された場合、ステップS77乃至S79の処理はスキップされて、処理は、ステップS80に進む。
ステップS80において、画素値ランダムノイズ検出部84は、撮像素子13のうち処理対象となる画素のうち、未処理の画素が存在するか否かを判定し、未処理の画素がある場合、処理は、ステップS75に戻る。すなわち、未処理の画素がなくなるまで、ステップS75乃至S80の処理が繰り返される。そして、ステップS80において未処理の画素がないと判定された場合、処理は、ステップS81に進む。
以上のように、ステップS71乃至S80の処理により、画素単位でランダムノイズの有無が判定されて、含まれている場合、画素を特定するアドレスに対応付けて、ランダムノイズの振幅、および時定数がノイズデータベース17に登録される。
ステップS81において、時系列画素値情報生成部63は、各カラムについて時系列に画素値の平均値を取得しプロットする。尚、ここでは、カラムに含まれる画素の画素値の平均値を用いるものとするが、カラムの画素の画素値の傾向が掴めるものであればよいので、平均値に限らず、例えば、最大値、最小値、または中央値などであってもよいものである。
ステップS82において、カラム単位処理部66は、カラム単位データ処理部101を制御し、カラム単位で画素値による標準偏差を求めさせる。尚、ここでいう標準偏差とは、カラムを構成する画素の平均値をカラム単位の画素値とし、全時系列のカラム単位の画素値の平均値に対して、各カラムの画素値の差分の2乗和を総数で除した値の平方根である。
ステップS83において、カラム単位統計処理部102は、カラム単位で、求められた標準偏差によるヒストグラムを生成する。
ステップS84において、カラム単位統計値生成部103は、カラム単位で、求められたヒストグラムによる累積ヒストグラムを生成する。
ステップS85において、カラムランダムノイズ検出部104は、撮像素子13のうち処理対象となるカラムのうち、未処理のカラムを処理対象のカラムに設定する。
ステップS86において、カラムランダムノイズ検出部104は、標準偏差のヒストグラム、または累積ヒストグラムに基づいて、所定の閾値よりも大きな画素値であるか否かによりランダムノイズを含むカラムであるか否かを、画素単位の処理と同様に判定する。
ステップS86において、ランダムノイズを含むカラムであると判定された場合、処理は、ステップS87に進む。ステップS87において、振幅検出部112は、時系列にカラム単位で画素値がプロットされた結果より、カラム単位のランダムノイズの振幅を画素単位の処理と同様に検出する。
ステップS88において、時定数検出部113は、カラム単位で時系列に画素値がプロットされた結果より、ランダムノイズの時定数τを画素単位の処理と同様に検出する。
ステップS89において、アドレス検出部111は、処理対象となっているカラムのアドレスを取得すると共に、ノイズデータベース17にアクセスして、カラム単位でアドレスに対応付けて、振幅、および時定数をノイズデータとして登録する。
一方、ステップS86において、ランダムノイズが含まれていないと判定された場合、ステップS87乃至S89の処理はスキップされて、処理は、ステップS90に進む。
ステップS90において、カラムランダムノイズ検出部104は、撮像素子13のうち処理対象となるカラムのうち、未処理のカラムが存在するか否かを判定し、未処理のカラムがある場合、処理は、ステップS85に戻る。すなわち、未処理のカラムがなくなるまで、ステップS85乃至S90の処理が繰り返される。そして、ステップS90において未処理のカラムがないと判定された場合、処理は、終了する。
以上のように、ステップS81乃至S90の処理により、カラム単位でランダムノイズの有無が判定されて、含まれている場合、カラムを特定するアドレスに対応付けて、ランダムノイズの振幅、および時定数がノイズデータベース17に登録される。
ここで、図2のフローチャートの説明に戻る。
ステップS12における、ランダムノイズ検出処理が終了することにより、ノイズデータベース17には、ランダムノイズが検出された画素単位、およびカラム単位でノイズの振幅、および時定数が登録される。
結果として、暗時相当の画像、または暗時画像により撮像素子13が様々な状態において検出され得るランダムノイズの情報をデータベースとして登録しておくことが可能となる。
尚、以上においては、転送ゲート32がオフにされた状態における暗時相当の画像、列選択スイッチ34がオフにされた状態における暗時相当の画像、フォトセンサ31を冷却した状態におけるシャッタ12が閉塞状態にされたときの暗時画像、およびゲイン調整部33aにより増幅トランジスタ33のゲインが複数に調整された状態における暗時画像のいずれか、または、それら全てを画像記憶部62に記憶させ、それらの画像について、画素単位、およびカラム単位でランダムノイズを検出し、検出された場合、画素単位、およびカラム単位のアドレスに対応付けて振幅および時定数をノイズデータベース17に登録させる例について説明してきた。しかしながら、これら全ての撮像条件の暗時相当の画像および暗時画像を必ずしも撮像する必要はなく、少なくとも1の条件で撮像できればよいものである。また、ノイズデータベース17へのノイズデータの登録についても、画素単位、またはカラム単位のいずれかのみであってもよいものである。
[撮像処理について]
次に、図6のフローチャートを参照して、上述した処理により生成されたノイズデータベース17を利用して、撮像した画像を補正するようにした撮像処理について説明する。
ステップS101において、図示せぬ撮像操作により、シャッタ12が開放され、レンズ11を介して入射した光に基づいて撮像素子13により画像信号が発生されることにより画像が撮像される。そして、撮像素子13により撮像された画像信号が、CDS部14およびAD変換部15を介してノイズ補正部18に供給される。画像取得部151は、AD変換部15より供給されてくる画像を取得し、画像記憶部152に一旦記憶させる。
ステップS102において、ノイズ補正部18は、画像記憶部152に記憶されている画像情報を用いて、ノイズ判定処理を実行し、撮像された画像の各画素、または各カラム単位でランダムノイズの発生を判定する。
[ノイズ判定処理について]
ここで、図7を参照して、ノイズ判定処理について説明する。
ステップS111において、ノイズ補正部18は、図示せぬ設定操作により、ノイズ補正が画素単位であるか、またはカラム単位であるのかを判定する。ステップS111において、図示せぬ設定操作により、例えば、画素単位で補正がなされるように設定されていた場合、処理は、ステップS112に進む。
ステップS112において、画素単位処理部153は、ノイズデータベース17にアクセスし、ランダムノイズが発生した画素として登録されているアドレスに対応する画素のうち、未処理のアドレスに対応する画素を処理対象の画素に設定する。
ステップS113において、隣接画素比較ノイズ検出部171は、処理対象となる画素の画素値と、隣接する複数の画素の画素値との差分を求め、その差分の平均値が所定の閾値よりも大きいか否かを判定する。例えば、隣接する複数の画素との画素値の差分の平均値が所定の閾値よりも大きい場合、隣接画素比較ノイズ検出部171は、画素値の信号値のみではなく、ランダムノイズを含むものと見なし、処理は、ステップS119に進む。
ステップS119において、振幅比較ノイズ検出部176は、処理対象となっている画素の周辺画素の画素値との比較から、ランダムノイズとして付加されている振幅が、ノイズデータベース17に登録されている振幅と略一致する(または類似する)か否かを判定する。ステップS119において、略一致すると判定された場合、処理は、ステップS120に進む。
ステップS120において、画素単位処理部153は、隣接画素比較ノイズ検出部171の判定結果に基づいて、処理対象となっている画素にはランダムノイズが発生しているものとして認識する。
また、ステップS119において、処理対象となっている画素の周辺画素の画素値との比較から、ランダムノイズとして付加されている振幅が、ノイズデータベース17に登録されている振幅と一致しないと判定された場合、処理は、ステップS118に進む。
ステップS118において、画素単位処理部153は、隣接画素比較ノイズ検出部171の判定結果に基づいて、処理対象となっている画素にはランダムノイズが発生していないものとして認識する。
一方、ステップS113において、隣接する複数の画素との画素値の差分の平均値が所定の閾値よりも大きくなく、隣接画素間の画素値の差分においてはランダムノイズの発生が検出されないと判定された場合、処理は、ステップS114に進む。
ステップS114において、エリア画素比較ノイズ検出部172は、処理対象画素の画素値と、処理対象画素に対して特定の位置関係となる周辺のエリアにおける画素の画素値との差分を求め、それらの平均値が所定の閾値よりも大きいか否かを判定する。例えば、処理対象画素と特定の位置関係となるエリアの複数の画素との画素値の差分の平均値が所定の閾値よりも大きい場合、画素値の信号値のみではなく、ランダムノイズを含むものと見なし、処理は、ステップS119に進む。
一方、ステップS114において、処理対象画素の画素値と、処理対象画素に対して特定の位置関係となる周辺のエリアにおける画素の画素値との差分の平均値が所定の閾値よりも大きくない場合、処理は、ステップS115に進む。
ステップS115において、画素パターン比較ノイズ検出部173は、処理対象となる画素と増幅トランジスタ33を共有する複数の画素間の差分を求め、その差分のパターンが所定のパターンと一致するか否かを判定する。例えば、処理対象となる画素と増幅トランジスタ33を共有する複数の画素間の差分を求め、その差分のパターンが所定のパターンと一致する場合、処理は、ステップS119に進む。
一方、ステップS115において、処理対象となる画素と増幅トランジスタ33を共有する複数の画素間の差分を求め、その差分のパターンが所定のパターンと一致しない場合、処理は、ステップS116に進む。
ステップS116において、フレーム間比較ノイズ検出部174は、処理対象となっている画素の画像が、連写画像であるか、または、動画像であるか否かを判定する。ステップS116において、連写画像であるか、または、動画像であった場合、処理は、ステップS117に進む。ステップS117において、フレーム間比較ノイズ検出部174は、処理対象となっている画素の画素値と、直前のフレームにおける同位置の画素の画素値との差分を計算し、所定の閾値よりも大きいか否かを判定する。例えば、ステップS117において、所定の閾値よりも大きいと判定された場合、ランダムノイズが発生してしているものとみなされて、処理は、ステップS122に進む。
ステップS122において、時定数比較ノイズ検出部175は、処理対象となっている画素の前後のフレームの情報からランダムノイズが発生している時間が、ノイズデータベース17に登録されている時定数τと略一致するか否かを判定する。ステップS122において、処理対象となっている画素の前後のフレームの情報からランダムノイズが発生している時間が時定数と一致する場合、処理は、ステップS119に進む。
一方、ステップS117において、処理対象となっている画素の画素値と、直前のフレームにおける同位置の画素の画素値との差分が所定の閾値よりも大きくない場合、処理は、ステップS118に進む。また、ステップS122において、処理対象となっている画素の前後のフレームの情報からランダムノイズが発生している時間が時定数と一致しない場合、処理は、ステップS118に進む。
すなわち、処理対象画素は、隣接画素間との差分が小さく、特定エリアの周辺画素との画素値の差分が小さく、共有の増幅トランジスタ33を用いる画素間の差分が所定のパターンであり、振幅が一致しない場合にランダムノイズなしと判定される。ただし、連写画像、または、動画像の場合、さらに、フレーム間差分が閾値よりも小さく、時定数τも一致しない場合、ランダムノイズなしと判定される。また、処理対象画素は、隣接画素間との差分が大きいか、特定エリアの周辺画素との画素値の差分が大きいか、または、共有の増幅トランジスタ33を用いる画素間の差分が所定のパターンでないかのいずれかのいずれかであり、かつ、振幅が一致する場合にランダムノイズありと判定される。ただし、連写画像、または、動画像の場合、さらに、フレーム間差分が閾値よりも大きく、時定数τも一致する場合、ランダムノイズありと判定される。
ステップS121において、画素単位処理部153は、未処理の画素が存在するか否かを判定し、存在する場合、処理は、ステップS112に戻り、それ以降の処理が繰り返される。また、ステップS121において、未処理の画素が存在しない場合、処理は、終了する。
一方、ステップS111において、画素単位処理ではなく、すなわち、カラム単位の処理である場合、処理は、ステップS123に進む。
ステップS123において、カラム単位処理部154は、ノイズデータベース17にアクセスし、ランダムノイズが発生したカラムとして登録されているアドレスに対応するカラムのうち、未処理のアドレスに対応するカラムを処理対象のカラムに設定する。
ステップS124において、隣接カラム比較ノイズ検出部201は、処理対象となるカラムの複数の画素の画素値と、隣接するカラムの複数の画素の画素値との差分を求め、その差分の平均値が所定の閾値よりも大きいか否かを判定する。例えば、隣接するカラムの複数の画素との画素値の差分の平均値が所定の閾値よりも大きい場合、画素値の信号値ではなく、ランダムノイズであるものと見なし、処理は、ステップS129に進む。
ステップS129において、振幅比較ノイズ検出部205は、処理対象のカラムの周辺のカラムの画素間の比較から、ランダムノイズとして付加されている振幅が、ノイズデータベース17に登録されている振幅と略一致する(または類似する)か否かを判定する。ステップS129において、略一致すると判定された場合、処理は、ステップS130に進む。
ステップS130において、カラム単位処理部154は、隣接カラム比較ノイズ検出部201の判定結果に基づいて、処理対象となっているカラムにはランダムノイズが発生しているものとして認識する。
また、ステップS129において、処理対象となっているカラムの周辺のカラムの画素間の比較から、ランダムノイズとして付加されている振幅が、ノイズデータベース17に登録されている振幅と一致しないと判定された場合、処理は、ステップS128に進む。
ステップS128において、カラム単位処理部154は、隣接カラム比較ノイズ検出部201の判定結果に基づいて、処理対象となっているカラムにはランダムノイズが発生していないものとして認識する。
一方、ステップS124において、隣接するカラム間の複数の画素間との画素値の差分の平均値が所定の閾値よりも大きくなく、隣接カラム間の画素値の差分においてはランダムノイズの発生が検出されないと判定された場合、処理は、ステップS125に進む。
ステップS125において、エリアカラム比較ノイズ検出部202は、処理対象カラムの画素の画素値と、処理対象カラムに対して特定の位置関係となる周辺のエリアのカラムの画素の画素値との差分を求め、それらの平均値が所定の閾値よりも大きいか否かを判定する。例えば、処理対象カラムと特定の位置関係となるエリアの複数のカラムとの画素値の差分の平均値が所定の閾値よりも大きい場合、画素値の信号値のみではなく、ランダムノイズを含むものと見なし、処理は、ステップS129に進む。
一方、ステップS125において、処理対象カラムの画素値と、処理対象カラムに対して特定の位置関係となる周辺のエリアにおけるカラムの画素値との差分の平均値が所定の閾値よりも大きくない場合、処理は、ステップS126に進む。
ステップS126において、フレーム間比較ノイズ検出部203は、処理対象となっているカラムの画像が、連写画像であるか、または、動画像であるか否かを判定する。ステップS126において、連写画像であるか、または、動画像であった場合、処理は、ステップS127に進む。
ステップS127において、フレーム間比較ノイズ検出部203は、処理対象となっているカラムの画素値と、直前のフレームにおける同位置のカラムの画素値との差分の平均値を計算し、所定の閾値よりも大きいか否かを判定する。例えば、ステップS127において、所定の閾値よりも大きいと判定された場合、ランダムノイズが発生してしているものとみなされて、処理は、ステップS132に進む。
ステップS132において、時定数比較ノイズ検出部204は、処理対象となっているカラムの前後のフレームの情報からランダムノイズが発生している時間が、ノイズデータベース17に登録されている時定数τと略一致するか否かを判定する。ステップS132において、処理対象となっている画素の前後のフレームの情報からランダムノイズが発生している時間が時定数と略一致する場合、処理は、ステップS129に進む。
さらに、ステップS132において、処理対象となっているカラムの前後のフレームの情報からランダムノイズが発生している時間が、ノイズデータベース17に登録されている時定数τと一致しないと判定された場合、やはり、処理は、ステップS128に進む。
一方、ステップS127において、処理対象となっているカラムの画素値と、直前のフレームにおける同位置のカラムの画素値との差分の平均値が所定の閾値よりも大きくない場合、処理は、ステップS128に進む。
すなわち、処理対象カラムは、隣接カラム間との差分が小さく、特定エリアの周辺カラムとの画素値の差分が小さく、振幅が一致しない場合にランダムノイズなしと判定される。ただし、連続画像、または動画像の場合、さらに、フレーム間差分が閾値よりも小さく、時定数も一致しないとき、ランダムノイズなしと判定される。また、処理対象カラムは、隣接カラム間との画素間差分が大きいか、または、特定エリアの周辺カラムとの画素値の差分が大きいかのいずれかであり、かつ、振幅が一致する場合にランダムノイズありと判定される。ただし、連写画像、または動画像の場合、さらに、フレーム間のカラム間の画素間差分が閾値よりも大きく、時定数が一致するとき、ランダムノイズありと判定される。
ステップS131において、カラム単位処理部154は、未処理のカラムが存在するか否かを判定し、存在する場合、処理は、ステップS123に戻り、それ以降の処理が繰り返される。また、ステップS131において、未処理のカラムが存在しない場合、処理は、終了する。
以上の処理により、ノイズデータベース17のノイズ情報に基づいて、予め登録されたアドレスに対応する画素単位、またはカラム単位を監視し、ランダムノイズを含むか否かが判定されることになる。
ここで、図6のフローチャートの説明に戻る。
ステップS102において、画素単位、または、カラム単位でノイズ判定処理が実行されてると、処理は、ステップS103に進む。
ステップS103において、ノイズ補正部18は、ノイズ補正処理を実行し、ノイズデータベース17に登録されたアドレスの画素単位、またはカラム単位でランダムノイズが検出された画素を補正する。
[ノイズ補正処理について]
ここで、図8のフローチャートを参照して、ノイズ補正処理について説明する。
ステップS141において、ノイズ補正部18は、図示せぬ設定操作により、ノイズ補正が画素単位であるか、またはカラム単位であるのかを判定する。ステップS141において、図示せぬ設定操作により、例えば、画素単位で補正がなされるように設定されていた場合、処理は、ステップS142に進む。
ステップS142において、画素単位処理部153は、ノイズデータベース17にアクセスし、ランダムノイズが発生した画素として登録されているアドレスに対応する画素のうち、未処理のアドレスに対応する画素を処理対象の画素に設定する。
ステップS143において、画素入替補正部178は、画素入替補正が指示されているか否かを判定する。ステップS143において、例えば、図示せぬ設定操作により、画素入替補正が指示されている場合、画素入替補正部178は、例えば、処理対象画素の上下左右、および右上右下左上左下にそれぞれ隣接する合計8画素の任意の1画素と、処理対象画素の画素値を入替える。または、画素入替補正部178は、例えば、隣接する合計8画素の平均画素値と、処理対象画素の画素値を入替える。さらに、または、画素入替補正部178は、例えば、隣接する合計8画素の画素値の中央値と、処理対象画素の画素値を入替える。この場合、画素入替補正部178は、実質的にメディアンフィルタとして機能する。画素値が補正されると、処理は、ステップS155に進む。
ステップS143において、画素入替補正が指示されていない場合、ステップS145において、画素加減算補正部179は、画素加減算補正が指示されているか否かを判定する。ステップS145において、例えば、図示せぬ設定操作により、画素加減算補正が指示されている場合、処理は、ステップS146に進む。
ステップS146において、画素加減算補正部179は、例えば、処理対象画素の上下左右、および右上右下左上左下にそれぞれ隣接する合計8画素の任意の1画素と、処理対象画素の画素値を加算または減算する。尚、ここでいう加算、または減算とは、振幅に応じたものであり、振幅が正であれば減算され、負であれば加算される。または、画素加減算補正部179は、例えば、隣接する合計8画素の平均画素値と、処理対象画素の画素値を加減算する。さらに、または、画素加減算補正部179は、例えば、隣接する合計8画素の画素値の中央値と、処理対象画素の画素値を加減算する。画素値が補正されると、処理は、ステップS155に進む。
ステップS145において、画素加減算補正が指示されていない場合、ステップS147において、画素空間平均化補正部180は、空間平均化補正が指示されているか否かを判定する。ステップS147において、例えば、図示せぬ設定操作により、画素空間平均化補正が指示されている場合、処理は、ステップS148に進む。
ステップS148において、画素空間平均化補正部180は、例えば、処理対象画素の上下左右、および右上右下左上左下にそれぞれ隣接する合計8画素と、処理対象画素の画素値の空間的な平均値を処理対象画素の画素値に補正する。すなわち、この場合、画素空間平均化補正部180は、実質的にLPF(Low Pass Filter)として機能する。または、画素空間平均化補正部180は、例えば、ノイズの振幅に応じて、隣接する合計8画素の平均画素値と、さらに、隣接する16画素と処理対象画素の空間的平均値に補正する。すなわち、ノイズの振幅に応じて、空間的平均値が求められる処理対象画素を含む範囲を変化させる。このように、画素値が補正されると、処理は、ステップS155に進む。
また、ステップS147において、画素空間平均化補正が指示されていない場合、ステップS149において、画素時間平均化補正部181は、時間平均化補正が指示されているか否かを判定する。ステップS149において、例えば、図示せぬ設定操作により、画素時間平均化補正が指示されている場合、処理は、ステップS150に進む。
ステップS150において、画素時間平均化補正部181は、例えば、処理対象画素の前後に隣接するフレームの同位置の画素と、処理対象画素の画素値の時間的な平均値で処理対象画素の画素値を補正する。または、画素空間平均化補正部180は、例えば、ノイズの振幅に応じて、隣接する2以上のフレームの同位置の画素の平均画素値で処理対象画素を補正する。画素値が補正されると、処理は、ステップS155に進む。
さらに、ステップS149において、画素時間平均化補正が指示されていない場合、ステップS151において、画素クリップ補正部182は、画素クリップ補正が指示されているか否かを判定する。ステップS151において、例えば、図示せぬ設定操作により、画素クリップ補正が指示されている場合、処理は、ステップS152に進む。
ステップS152において、画素クリップ補正部182は、例えば、画像が暗時画像であるような場合、処理対象画素の画素値を黒レベルの最大値などに補正する。または、画素クリップ補正部182は、例えば、隣接する8画素の平均値、または画像内の全画素の画素値の標準偏差の中央値近傍の画素値などに処理対象となる画素の画素値をクリップする。画素値が補正されると、処理は、ステップS155に進む。
また、ステップS151において、画素クリップ補正が指示されていない場合、ステップS153において、画素ノイズ振幅加減算補正部177は、振幅加減算補正が指示されているか否かを判定する。ステップS153において、例えば、図示せぬ設定操作により、振幅加減算補正が指示されている場合、処理は、ステップS154に進む。
ステップS154において、画素ノイズ振幅加減算補正部177は、例えば、処理対象画素について、ノイズデータベース17に登録されている振幅を加減算して補正する。または、画素ノイズ振幅加減算補正部177は、例えば、処理対象画素の画素値と、周辺画素の画素値との差分が所定値よりも大きいとき、ノイズデータベース17に登録されているノイズの振幅を加減算して補正する。画素値が補正されると、処理は、ステップS155に進む。
さらに、ステップS153において、振幅加減算補正が指示されていない場合、処理は、ステップS155に進む。
ステップS155において、画素単位処理部153は、ノイズデータベース17にランダムノイズが発生した画素として登録されているアドレスに対応する画素のうち、未処理のアドレスに対応する画素が存在するか否かを判定する。ステップS155において、例えば、未処理の画素が存在すると判定された場合、処理は、ステップS142に戻る。すなわち、ランダムノイズが発生した画素として登録されているアドレスに対応する画素のうち、未処理のアドレスに対応する画素がなくなるまで、ステップS142乃至S155の処理が繰り返される。そして、ステップS155において、未処理の画素が存在しないと判定された場合、処理は終了する。
一方、ステップS141において、図示せぬ設定操作により、例えば、画素単位で補正がなされるように設定されておらず、カラム単位で補正がなされるように設定されていた場合、処理は、ステップS156に進む。
ステップS156において、カラム単位処理部154は、ノイズデータベース17にアクセスし、ランダムノイズが発生したカラムとして登録されているアドレスに対応するカラムのうち、未処理のアドレスに対応するカラムを処理対象のカラムに設定する。
ステップS157において、カラム入替補正部207は、カラム入替補正が指示されているか否かを判定する。ステップS157において、例えば、図示せぬ設定操作により、カラム入替補正が指示されている場合、処理は、ステップS158に進む。
カラム入替補正部207は、例えば、処理対象カラムの左右のいずれかに隣接する画素と、処理対象カラムの画素の画素値を入替える。または、カラム入替補正部207は、例えば、隣接する合計3カラムの各画素の平均画素値と、処理対象カラムの画素値を入替える。さらに、または、カラム入替補正部207は、例えば、隣接する複数のカラムの画素の画素値の中央値と、処理対象カラムの画素の画素値とを入替える。この場合、カラム入替補正部207は、実質的にメディアンフィルタとして機能する。画素値が補正されると、処理は、ステップS169に進む。
ステップS157において、カラム入替補正が指示されていない場合、ステップS159において、カラム加減算補正部208は、カラム加減算補正が指示されているか否かを判定する。ステップS159において、例えば、図示せぬ設定操作により、カラム加減算補正が指示されている場合、処理は、ステップS160に進む。
ステップS160において、カラム加減算補正部208は、例えば、処理対象カラムの左右と、隣接するカラムを含む合計3カラムの任意の1カラムと、処理対象カラムの画素値を加算または減算する。または、カラム加減算補正部208は、例えば、隣接するカラムを含む合計3カラムの平均画素値と、処理対象カラムの画素値を加減算する。さらに、または、カラム加減算補正部208は、例えば、隣接する合計3カラムの画素値の中央値と、処理対象カラムの画素値を加減算する。画素値が補正されると、処理は、ステップS169に進む。
ステップS159において、カラム加減算補正が指示されていない場合、ステップS161において、カラム空間平均化補正部209は、カラム空間平均化補正が指示されているか否かを判定する。ステップS161において、例えば、図示せぬ設定操作により、カラム空間平均化補正が指示されている場合、処理は、ステップS162に進む。
ステップS162において、カラム空間平均化補正部209は、例えば、処理対象カラムと、それぞれ隣接するカラムの合計3カラムと、処理対象カラムの画素値の空間的な平均値を処理対象カラムの画素値に補正する。この場合、カラム空間平均化補正部209は、実質的にLPFとして機能する。または、カラム空間平均化補正部209は、例えば、ノイズの振幅に応じて、隣接するカラム数を変えて求められる平均画素値によりカラム空間的平均値に補正する。画素値が補正されると、処理は、ステップS169に進む。
また、ステップS161において、カラム空間平均化補正が指示されていない場合、ステップS163において、カラム時間平均化補正部210は、カラム時間平均化補正が指示されているか否かを判定する。ステップS163において、例えば、図示せぬ設定操作により、カラム時間平均化補正が指示されている場合、処理は、ステップS164に進む。
ステップS164において、カラム時間平均化補正部210は、例えば、処理対象カラムの前後に隣接するフレームの同位置のカラムと、処理対象カラムの画素値の時間的な平均値で処理対象カラムの画素値を補正する。または、カラム空間平均化補正部209は、例えば、ノイズの振幅に応じて、隣接する2以上のフレームの同位置のカラムの平均画素値で処理対象カラムを補正する。画素値が補正されると、処理は、ステップS169に進む。
さらに、ステップS163において、カラム時間平均化補正が指示されていない場合、ステップS165において、カラムクリップ補正部211は、カラムクリップ補正が指示されているか否かを判定する。ステップS165において、例えば、図示せぬ設定操作により、カラムクリップ補正が指示されている場合、処理は、ステップS166に進む。
ステップS166において、カラムクリップ補正部211は、例えば、画像が暗時画像であるような場合、処理対象カラムの画素値を黒レベルの最大値などに補正する。または、カラムクリップ補正部211は、例えば、隣接するカラムを含む合計3カラムの平均値、または画像内の全カラムの画素値の標準偏差の中央値近傍の画素値などに処理対象となるカラムの画素値をクリップする。画素値が補正されると、処理は、ステップS169に進む。
また、ステップS165において、カラムクリップ補正が指示されていない場合、ステップS167において、カラムノイズ振幅加減算補正部206は、カラム振幅加減算補正が指示されているか否かを判定する。ステップS167において、例えば、図示せぬ設定操作により、カラム振幅加減算補正が指示されている場合、処理は、ステップS168に進む。
ステップS168において、カラムノイズ振幅加減算補正部206は、例えば、処理対象カラムについて、ノイズデータベース17に登録されている振幅を加減算して補正する。または、カラムノイズ振幅加減算補正部206は、例えば、処理対象カラムの画素値と、周辺カラムの画素値との差分の平均値が所定値よりも大きいとき、ノイズデータベース17に登録されているノイズの振幅を加減算して補正する。画素値が補正されると、処理は、ステップS169に進む。
さらに、ステップS167において、カラム振幅加減算補正が指示されていない場合、処理は、ステップS169に進む。
ステップS169において、カラム単位処理部154は、ノイズデータベース17にランダムノイズが発生したカラムとして登録されているアドレスに対応する画素のうち、未処理のアドレスに対応するカラムが存在するか否かを判定する。ステップS169において、例えば、未処理のカラムが存在すると判定された場合、処理は、ステップS156に戻る。すなわち、ランダムノイズが発生した画素として登録されているアドレスに対応する画素のうち、未処理のアドレスに対応する画素がなくなるまで、ステップS156乃至S169の処理が繰り返される。そして、ステップS169において、未処理のカラムが存在しないと判定された場合、処理は終了する。
以上の処理により、ノイズデータベース17に登録されているランダムノイズが検出された画素、またはカラムのみが監視され、ランダムノイズが検出された場合、画素単位、またはカラム単位で、画素入替補正、加減算補正、空間平均化補正、時間平均化補正、クリップ補正、振幅加減算補正、または補正なしの状態で出力することが可能となる。また、図8のフローチャートにおいては、補正なしでも出力される場合も含まれるものであるが、いずれかの状態に必ず補正されるようにしてもよい。
ここで、図6のフローチャートの説明に戻る。
ステップS104において、ノイズ補正部18は、ノイズ補正処理を実行することによりノイズを除去した画像を表示部2に出力し表示し、処理は、終了する。
以上の処理により、予め暗時相当、または暗時の画像を撮像して、ノイズデータベース17を画素単位、またはカラム単位で登録するようにし、撮像する際、ランダムノイズが発生しても、ノイズデータベース17の情報に基づいて適切に画素、またはカラムを補正することができるので、ランダムノイズを低減することが可能となる。
<2.第2の実施の形態>
また、以上においては、撮像装置1は、ノイズデータベース17を生成し、自らが撮像した画像を自らで補正する例について説明してきたが、図9で示されるように、ノイズデータベース17を撮像装置1以外の、例えば、パーソナルコンピュータ302に記憶させ、パーソナルコンピュータ302上で補正させるようにしてもよい。すなわち、図9の撮像装置301は、図1における撮像装置1よりノイズデータ取得部16、ノイズデータベース17、およびノイズ補正部18を除いた構成である。また、パーソナルコンピュータ302は、ノイズデータベース17と同様に生成されたノイズデータベース311とノイズ補正部18が設けられている。このため、撮像装置301は、撮像した画像をパーソナルコンピュータ302に出力する。そして、パーソナルコンピュータ302のノイズ補正部18は、撮像装置301より供給されてきた画像をノイズデータベース311を利用して補正し、表示部2に表示する。
尚、図9の撮像装置301およびパーソナルコンピュータ302においては、図1の撮像装置1と同様の機能を備える構成については、同一の符号を付している。また、具体的な撮像処理については、上述した撮像装置1のみの場合と同様であるので、その説明は省略する。
以上によれば、半導体により形成したCMOSの固体撮像素子において、使用される個々のトランジスタの特性により、特異なレベルの信号をランダムに出力する欠陥画素に起因するノイズ、すなわち、ランダムノイズを予め測定し、ノイズデータベースを生成する。そして、撮像された画像をノイズデータベースの情報に基づいて補正するようにしたので、ランダムノイズを低減させることが可能となる。
ところで、上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
図10は、汎用のパーソナルコンピュータの構成例を示している。このパーソナルコンピュータは、CPU(Central Processing Unit)1001を内蔵している。CPU1001にはバス1004を介して、入出力インタフェース1005が接続されている。バス1004には、ROM(Read Only Memory)1002およびRAM(Random Access Memory)1003が接続されている。
入出力インタフェース1005には、ユーザが操作コマンドを入力するキーボード、マウスなどの入力デバイスよりなる入力部1006、処理操作画面や処理結果の画像を表示デバイスに出力する出力部1007、プログラムや各種データを格納するハードディスクドライブなどよりなる記憶部1008、LAN(Local Area Network)アダプタなどよりなり、インターネットに代表されるネットワークを介した通信処理を実行する通信部1009が接続されている。また、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc)を含む)、もしくは半導体メモリなどのリムーバブルメディア1011に対してデータを読み書きするドライブ1010が接続されている。
CPU1001は、ROM1002に記憶されているプログラム、または磁気ディスク、光ディスク、光磁気ディスク、もしくは半導体メモリ等のリムーバブルメディア1011から読み出されて記憶部1008にインストールされ、記憶部1008からRAM1003にロードされたプログラムに従って各種の処理を実行する。RAM1003にはまた、CPU1001が各種の処理を実行する上において必要なデータなども適宜記憶される。
尚、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理は、もちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理を含むものである。