以下に、本発明の好ましい実施の形態を、添付の図面に基づいて詳細に説明する。
<第1の実施形態>
図1は、本発明の画像処理装置、画像処理方法及びプログラムの一適用例としての第1の実施形態に係る撮像装置の概略構成を示すブロック図である。
本実施形態の撮像装置において、光学系100はフォーカスレンズ、ズームレンズ、絞り、シャッター等を有する撮像光学系である。光学系駆動部101は、CPU108から供給される光学系制御情報に基づいて光学系100のレンズ、絞り、シャッター等を駆動する。撮像素子102はCCDやCMOS等の撮像センサである。撮像素子駆動部103は、CPU108からの撮像素子制御情報に基づいて撮像素子102を駆動する。撮像素子102から出力された撮像信号は、信号分離部104に送られる。信号分離部104以降の各構成の説明は後述する。
撮像素子102は、図2(a)及び図2(b)に示す構成を有する。図2(a)は撮像素子102の概略構成を示し、図2(b)は撮像素子102内の画素アレイ200の概略構成を示している。なお、図2(b)は画素アレイ200の一部分のみを示している。
図2(a)に示すように、撮像素子102は、画素アレイ200、垂直走査部203、水平走査部202、読み出し部201、出力部204を有して構成されている。画素アレイ200は、複数の画素が二次元に配列されて構成されている。なお、図示は省略するが、画素アレイ200には、例えばいわゆるベイヤー配列と呼ばれる配列により赤(R),緑(G(G1,G2)),青(B)のカラーフィルタも併設されているとする。垂直走査部203は、画素アレイ200の各画素の二次元配列における行を選択する回路である。水平走査部202は、画素アレイ200の各画素の二次元配列における列を選択する回路である。読み出し部201は、画素アレイ200内の各画素のうち、垂直走査部203による行の選択及び水平走査部202による列の選択によって特定される画素の信号を読み出すための回路である。
垂直走査部203は、画素アレイ200の行を選択し、水平同期信号に基づいて撮像素子駆動部103から出力される読み出しパルスを、選択された行において有効にする。読み出し部201は、画素アレイ200の列毎に設けられたアンプやメモリを有し、走査した行の画素信号を、アンプを介してメモリに格納する。メモリに格納された1行分の各画素の信号は、水平走査部202によって列方向に順に選択され、出力部204を介して外部に出力される。撮像素子102は、このような動作を繰り返すことで、画素アレイ200内の全ての画素信号を外部に出力する。
撮像素子102の画素アレイ200は、図2(b)に示すように、画素毎に、それぞれ二つで一対となされたフォトダイオード(以下、PDと表記する。)206,207が配されている。これら一対のPD206,207は、それぞれ光電変換を行う光電変換素子であり、光学系100のレンズの射出瞳をA像用とB像用の二つに分割するように配されている。本実施形態では、PD206がA像用、PD207がB像用になされているとする。また、画素アレイ200は、各画素の位置及び配列に各々対応するように各マイクロレンズ205が二次元配列されたマイクロレンズアレイを有している。すなわち、画素アレイ200の各画素は、それぞれが、一対のPD206,207と、それら一対のPD206,207に対応した一つのマイクロレンズ205とにより構成されている。画素アレイ200には、このような画素が水平方向にh画素、垂直方向にv画素並べられて配置されている。
画素アレイ200の全ての有効画素は、画像信号を取得する画素として使用されると共に、その中の一部のライン方向の各画素は測距演算信号を取得する画素としても兼用されている。測距演算信号は、いわゆる位相差方式による焦点調節を行う際の焦点検出用信号である。具体的に説明すると、画素アレイ200の各画素では、一対のPD206,PD207に光が入射したことで蓄積された信号が、後述する画素転送動作により同時又はそれぞれ独立して電圧信号に変換される。そして、画素アレイ200の各画素の電圧信号は、前述した読み出し動作により画素信号として外部に出力される。ここで、一対のPD206,207は、光学系100のレンズの射出瞳を分割する構成となっているため、それらPD206,207には位相差(視差)を持った光像が入射される。このため、一対のPD206,207からそれぞれ読み出された信号に対し、既知の手法で相関演算処理を行うことで、その相関演算結果に基づくフォーカスレンズの駆動量計算が可能、つまり焦点調節が可能となる。なお、本実施形態では、図2(b)に示したように、一つのマイクロレンズに対して二つのPD(206,207)が配置される構成を例に挙げているが、一つのマイクロレンズに対して三つ以上のPDが配置されて瞳分割が行われる構成であってもよい。
また前述したように、撮像素子102は、画像信号の読み出しを行う第1の読み出し動作と、測距演算信号の読み出しを行う第2の読み出し動作の二つの読み出し動作が可能となされている。これら第1の読み出し動作と第2の読み出し動作は、撮像素子102における離散的な領域毎に変更可能となされている。本実施形態では、第1の読み出し動作又は第2の読み出し動作が行われる離散的な領域毎が、水平ラインの領域となされている。したがって、本実施形態の場合、これら第1の読み出し動作と第2の読み出し動作は、水平ライン(以下、単にラインと表記する。)毎に変更可能となされている。
また、本実施形態において、第1の読み出し動作は、一対のPD206,207の信号を加算して読み出す加算読み出し動作である。加算読み出し動作の場合、読み出し部201は、CPU108の制御に基づく撮像素子駆動部103からの駆動信号により、一対のPD206とPD207にそれぞれ蓄積された信号を読み出して加算し、出力部204へ転送する。この加算読み出し動作により得られる加算信号は、一対のPD206,207からなる一つの画素に対応した画素信号、すなわち画像信号に含まれる一つの画素信号として使用される。
一方、本実施形態において、第2の読み出し動作は、一対のPD206,207の信号をそれぞれ読み出す分割読み出し動作である。分割読み出し動作の場合、読み出し部201は、CPU108の制御に基づく撮像素子駆動部103からの駆動信号により、一対のPD206とPD207にそれぞれ蓄積された信号を独立に読み出して出力部204へ転送する。本実施形態の場合、PD206はA像用、PD207はB像用となされており、PD206から読み出された信号がA像信号、PD207から読み出された信号がB像信号として、出力部204へ転送される。これら分割信号(A像信号とB像信号)は、測距演算信号として使用されるとともに、後述する信号加算部105にて加算されることで画素信号(画像信号に含まれる一つの画素信号)としても使用される。
このように、第1の読み出し動作である加算読み出し動作により得られる信号は、一対のPD206とPD207による二つの信号の加算信号となっている。一方、第2の読み出し動作である分割読み出し動作による信号は、一対のPD206とPD207からそれぞれ読み出された分割信号となっている。したがって、第1の読み出し動作による加算信号と、第2の読み出し動作による分割信号とは、それぞれ特性が異なる信号である。
図3(a)は、前述した二つの読み出し動作がライン単位で切り替えられた場合に撮像素子102から出力される信号を、概念的に説明するための図である。なお、撮像素子102から出力される信号は、実際には例えばベイヤー配列のカラーフィルタのR,G,Bの各色成分に対応したR信号,G信号,B信号となるが、図3(a)の例ではR信号のみを例に挙げている。また、図3(a)は撮像素子102における全ラインのうちの一部のみを表している。
図3(a)のR1行,R2行,R3行,R4行,R5行,R6行は、それぞれライン(画素アレイ200の行)を表し、R1行,R3行,R5行は加算読み出し動作がなされるライン、R2行,R4行,R6行は分割読み出し動作がなされるラインを表している。加算読み出し動作がなされるR1行,R3行,R5行において略々正方形の四角で示されている信号300は、前述した一対のPD206,207に蓄積された信号を加算した加算信号を表しているとする。
一方、分割読み出し動作がなされるR2行,R4行,R6行において、縦長四角で示されている信号301は、一対のPD206,207のうちA像用のPD206から読み出されたA像信号を表しているとする。また、分割読み出し動作のR2行,R4行,R6行において、縦長四角で示されている信号302は、一対のPD206,207のうちB像用のPD207から読み出されたB像信号を表しているとする。図3(a)の例の場合、分割読み出し動作では、A像信号301の出力後にB像信号302が出力されているが、それらの出力順は逆であってもよいし、同時に出力されてもよい。なお、撮像素子102の読み出し動作は、例えば特開2012−155095号公報等に開示された公知の技術であるため、ここではその詳細な説明は省略する。
また、前述した分割読み出し動作により撮像素子102からライン単位で測距演算信号(A像信号とB像信号)を読み出す際には、例えば図3(d)に示すように離散的で不均等なライン間隔による読み出しが行われる場合がある。図3(d)の例において、各画素331は、図2(a)の画素アレイ200上に二次元配列された各画素に相当する。図3(d)の例では、図中太枠で示した各ライン332が、測距演算信号の読み出しがなされるラインであり、それ以外のラインは前述した加算読み出し動作がなされるラインであるとする。また、図3(e)は、図3(d)の図中太線で示した各ライン332から読み出された、測距演算信号の各ライン333を示している。これら図3(d)及び図3(e)に示すように、測距演算信号は、離散的なライン間隔により読み出される。また、図3(d)の画像領域330は、撮像素子102の画素アレイ200上に結像されている被写体像の一部の画像領域を表しているとする。なお、図3(b)と図3(c)の説明は後述する。
図1に説明を戻す。
信号分離部104は、前述した撮像素子102の出力信号が供給されると、その出力信号から、測距演算信号(つまり分離読み出し動作によるA像信号及びB像信号)を分離する。そして、信号分離部104は、分離した測距演算信号(A像信号及びB像信号)を第2のセンサ補正部1062に出力する。前述の図3(a)の例を挙げて説明すると、信号分離部104は、分離読み出し動作がなされたR2行,R4行,R6行の各ラインの測距演算信号(A像信号及びB像信号)を、第2のセンサ補正部1062に出力する。
また、信号分離部104は、撮像素子102の全画素の出力信号、つまり前述した加算読み出し動作による加算信号と、分離読み出し動作による測距演算信号(A像信号及びB像信号)とを、信号加算部105に出力する。図3(a)の例では、信号分離部104は、加算読み出し動作によるR1行,R3行,R5行の各ラインの加算信号、及び、分離読み出し動作によるR2行,R4行,R6行の各ラインの測距演算信号(A像信号及びB像信号)を、信号加算部105に出力する。なお、信号分離部104からのライン毎の出力順は、各ラインの番号順であるとする。
信号加算部105は、信号分離部104から供給された加算信号と測距演算信号(A像信号及びB像信号)のうち、測距演算信号のA像信号とB像信号とを加算する。すなわち、信号加算部105は、図3(a)に示したR2行,R4行,R6行の各ラインにおける測距演算信号のうち、一対のPD206とPD207に対応したA像信号301とB像信号302とを加算する。これにより、図3(a)のR2行,R4行,R6行の各ラインの測距演算信号からは、R2行,R4行,R6行の各ラインにおいてそれぞれA像信号301とB像信号302とを加算した加算信号が生成される。
そして、信号加算部105は、図3(b)に示すように、R1行,R3行,R5行の各ラインの加算信号300と、R2行,R4行,R6行の各ラインのA像信号とB像信号を加算した加算信号303とを、第1のセンサ補正部1061に出力する。これにより、信号加算部105からは、図3(b)に示すように、R1行,R3行,R5行の各ラインの加算信号300と、R2行,R4行,R6行の各ラインの加算信号303からなる全てのラインの加算信号が出力されることになる。すなわち、信号加算部105からは、図3(b)に示したようなR1行,R2行,R3行,R4行,R5行,R6行の全てのラインの加算信号が、画像信号として出力されて、第1のセンサ補正部1061に送られる。
図3(c)は、前述した信号分離部104により分離された測距演算信号の各ラインのA像信号301及びB像信号302を表した図である。すなわち、図3(c)は、図3(d)と図3(e)で述べたように、測距演算信号が離散的なライン間隔で読み出された場合の各ラインの測距演算信号(A像信号及びB像信号)を、画素アレイ200の画素配列に対応させるように配列した図である。また、図3(c)の例は、離散的なライン間隔による測距演算信号の読み出し動作により、R2行,R4行,R6行,R22行,R24行,R26行の各ラインから、A像信号301とB像信号302が読み出された場合を挙げている。これらR2行,R4行,R6行,R22行,R24行,R26行の各ラインは、図2(b)に示した画素アレイ200上では隣接しておらず、例えばR2行,R4行,R6行やR22行,R24行,R26行は、それぞれ1ラインおきのラインである。また、例えばR6行とR22行のラインは、画素アレイ200上では具体的には16ライン分だけ離れたラインである。
なお、前述したような信号分離部104における測距演算信号の分離や信号加算部105における測距演算信号の加算を行うためには、測距演算信号の読み出し動作がなされたのが何れのラインであるかを識別する必要がある。測距演算信号のラインを識別するための識別方法としては、例えば、撮像素子102から出力される信号に対し、画素毎に測距演算信号か、加算信号であるかを示すフラグを重畳しておき、そのフラグを基に識別する方法を用いることができる。また他の方法として、予め、測距演算信号のラインの座標を記憶しておき、信号分離部104や信号加算部105が読み出しラインの座標を基に識別する方法を用いることができる。更に他の方法として、予め、測距演算信号のライン番号を記憶しておき、信号分離部104や信号加算部105が読み出しライン番号をカウントして識別する方法を用いることもできる。
図1に説明を戻す。
第1のセンサ補正部1061は、信号加算部105から供給された画像信号に対して、既知の手法により、例えば、オプティカルブラック(OB)画素を用いたクランプ処理、ノイズ低減処理等の各種信号補正処理を行う。これらの信号補正処理は、既知の処理であるため、ここではその詳細な説明は省略する。第1のセンサ補正部1061による信号補正処理後の画像信号は、第1のキズ検出補正部1071に送られる。
第1のキズ検出補正部1071は、既知の手法により、画像信号のなかの不良画素(欠陥画素であり、以下、キズ画素と表記する。)を検出し、その検出したキズ画素の補正処理、例えば他の正常な画素の信号を用いた補間処理や置換処理等を行う。なお、キズ画素には、製造工程等で生じたキズ画素、製品出荷後に発生したキズ画素があり、本実施形態ではそれらを区別しないこととする。このようなキズ画素に対するキズ補正処理については、既知の様々な補正方法が知られており、本実施形態ではそれら何れのキズ補正処理を用いてもよい。それら様々なキズ補正処理は、既知の処理であるため、ここではその詳細な説明は省略する。第1のキズ検出補正部1071によるキズ補正処理後の画像信号は、本線映像信号として、図示しない後段の現像処理部等に送られる。後段の構成については省略する。
第2のセンサ補正部1062は、信号分離部104にて分離された測距演算信号のA像信号とB像信号のそれぞれに対して、既知の手法により、OB画素を用いたクランプ処理、ノイズ低減処理等の各種信号補正処理を行う。A像信号とB像信号のそれぞれに対する、クランプ処理、ノイズ低減処理等は、第1のセンサ補正部1061で行われる画像信号に対する処理と基本的に同じであるため、その説明は省略する。第2のセンサ補正部1062による信号補正処理後の測距演算信号(A像信号及びB像信号)は、第2のキズ検出補正部1072に送られる。
第2のキズ検出補正部1072は、後述するように、着目画素に対する参照範囲を設定する。また、第2のキズ検出補正部1072は、後述するように、第2のセンサ補正部1062による信号補正処理後の測距演算信号から不良画素(キズ画素)を検出し、その検出したキズ画素に対するキズ補正処理を行うような、所定の信号処理を行う。
図4は、第2のキズ検出補正部1072の概略構成を示すブロック図である。なお、図4はハードウェア構成の例を挙げているが、この図4に示す各部の処理は例えばCPUが本実施形態に係るプログラムを実行することにより実現されてもよい。本実施形態に係るプログラムは、例えば不図示のROM等に予め用意されていてもよく、また不図示の外部記憶媒体から読み出されたり、不図示のインターネット等のネットワークからダウンロードされたりして、不図示のRAM等にロードされてもよい。このことは後述する各実施形態においても同様である。
図1の第2のセンサ補正部1062から出力された測距演算信号(A像信号及びB像信号)は、図4に示す第2のキズ検出補正部1072のAB分離部400に送られる。AB分離部400は、測距演算信号のA像信号とB像信号とを分離し、A像信号をAキズ検出部4011とAキズ補正部4021とに送り、B像信号をBキズ検出部4012とBキズ補正部4022とに送る。なお、図4の例の場合、Aキズ検出部4011とAキズ補正部4021は共にA像信号を一つの画素信号として扱い、同様に、Bキズ検出部4012とBキズ補正部4022は共にB像信号を一つの画素信号として扱うとする。
Aキズ検出部4011は、画素毎にA像信号に対するキズ画素検出処理を行う。同様に、Bキズ検出部4012は、画素毎にB像信号に対するキズ画素検出処理を行う。Aキズ検出部4011とBキズ検出部4012におけるキズ画素検出処理は、基本的に同じ処理であるため、以下、Aキズ検出部4011のみを例に挙げて説明する。
図5は、Aキズ検出部4011がA像信号からキズ画素を検出する際の参照範囲の説明に用いる図である。なお、図5も前述の図3(c)等と同様に、測距演算信号のR画素の各ラインの各信号(この場合はR画素のA像信号)を、図2(a),図2(b)の画素アレイ200の画素配列に対応させて配列させて表した図である。また、図5に例示した各ラインの測距演算信号のA像信号の配列は、前述の図3(c)と同様に、画素アレイ200の画素配列上で測距演算信号が離散的なライン間隔で読み出された場合の例を表している。すなわち、前述の図3(c)の例と同様に、図5には、R2行,R4行,R6行,R22行,R24行,R26行の各ラインの測距演算信号のA像信号が表されている。そして、この図5の例では、キズ画素検出処理及びキズ補正処理の検出の対象となる画素(以下、着目画素と表記する。)が、R6行のライン上の着目画素501であるとする。
本実施形態において、Aキズ検出部4011は、キズ画素検出の着目画素501がキズ画素であるか否かを判定する際の参照範囲を、着目画素501が含まれるラインのなかで、その着目画素501の周辺画素を含む範囲502に設定する。図5の例の場合、着目画素501はR色のライン(R6行)の画素である。このため、Aキズ検出部4011は、着目画素501が含まれるライン(R6行)のなかで、その着目画素501の周辺画素(例えば左右の隣接画素510,511)を含む範囲を、参照範囲502として設定する。言い換えると、第1の実施形態における参照範囲502は、着目画素501を含むライン(R6行)に対して、ライン間隔方向(垂直方向側)に配置されている他のラインを含まない範囲として設定される。
ここで、Aキズ検出部4011には、AB分離部400により測距演算信号から分離された各ラインのA像信号のみが供給されているので、分割読み出し動作による測距演算信号とは信号の特性が異なる、加算読み出し動作によるラインの信号は含まれていない。したがって、参照範囲502にも、分割読み出し動作によるラインの信号とは特性が異なる加算読み出し動作によるラインの信号は含まれていない。一方、分割読み出し動作による各ラインの測距演算信号は、加算読み出し動作による各ラインの信号のように特性が異なる信号ではなく、それぞれ略々同じ特性の信号である。ただし、例えば着目画素501のラインに対して垂直方向(ライン間隔方向)で上側のライン(例えばR4行)や下側のライン(例えばR22行)の画素は、撮像素子102上で着目画素501からの距離が遠い画素である。このように着目画素501から距離が離れている画素の信号は、例えば着目画素501とは異なる被写体像等による信号である可能性がある。これに対し、着目画素501が含まれるラインのなかで、着目画素501の周辺画素は、着目画素501と同じ被写体像等による信号である可能性が高い。このようなことから、本実施形態では、参照範囲を、着目画素501が含まれるラインのなかで、その着目画素501の周辺画素(左右の隣接画素510,511)を含む範囲502に設定している。なお、図5の例では、着目画素501の左右の一つずつの隣接画素510,511を含む参照範囲502を設定したが、参照範囲は、着目画素501の左右それぞれ二つ以上の複数の画素を含む範囲であってもよい。
そして、Aキズ検出部4011は、参照範囲502内の、着目画素501の左右の隣接画素510,511の画素値の平均値と、着目画素501の画素値との差分値を求め、その差分値と所定の閾値とを比較する。なお、この例の具体的な処理としては、例えばハイパスフィルタやバンドパスフィルタ等の線形フィルタを用いる処理など様々な既知の処理の何れを用いてもよい。そして、Aキズ検出部4011は、差分値が所定の閾値よりも大きい場合、その着目画素501はキズ画素であると判定する。他の例として、Aキズ検出部4011は、例えば、着目画素501と左右の隣接画素510,511の各画素値の中央値と所定の閾値とを比較し、中央値が閾値より大きい場合に、着目画素501をキズ画素と判定してもよい。なお、この例の具体的な処理としては、例えばメディアンフィルタ等の非線形フィルタを用いる処理など様々な既知の処理の何れを用いてもよい。また、キズ画素判定の結果は、差分値や中央値と閾値との大小比較結果、具体的にはキズ画素であるか又はキズ画素でないかの2値で表される判定結果となされる。なお、キズ画素判定の結果は、差分値や中央値と閾値とのレベル差に応じた多値で表される結果であってもよい。
前述したように、本実施形態では、測距演算信号が離散的なライン間隔で読み出される場合において、キズ画素検出処理の際の参照範囲は、着目画素を含む同色のライン内で設定される。すなわち、キズ画素検出処理の際の参照範囲は、着目画素を含むラインに対して垂直方向側に配置されている他のラインの画素を含まない範囲となされる。そして、キズ画素の判定は、参照範囲内の同色で同ライン内の着目画素とその周辺画素の画素値に基づく差分や中央値と所定閾値との比較により行われる。このように、本実施形態の場合、キズ画素検出の際には、着目画素を含むライン上の画素を参照画素として用い、着目画素のラインとは別のラインの画素が参照画素として用いられることはない。したがって、本実施形態によれば、測距演算信号が離散的なライン間隔で読み出される場合において、最適な参照画素を用いたキズ画素検出処理が可能となり、キズ画素の誤判定が生じてしまう可能性が非常に少ない。
Aキズ検出部4011は、前述したキズ画素検出処理によるキズ判定結果と検出されたキズ画素の位置の情報を、Aキズ補正部4021に送る。同様に、Bキズ検出部4012は、B像信号に対するキズ画素検出処理によるキズ判定結果と検出したキズ画素の位置情報を、Bキズ補正部4022に送る。なお、キズ画素の位置とは、画素アレイ200に二次元配置されている画素の中のキズ画素の位置に相当し、キズ画素の位置情報は測距演算信号の中でキズ画素に相当する信号を特定可能な情報である。
Aキズ補正部4021は、Aキズ検出部4011にて検出されたキズ画素の位置情報を基に、A像信号のなかでキズ画素に相当する信号を特定すると共に、キズ画素の位置に基づく参照範囲内で正常な画素のA像信号を用いて、そのキズ画素の信号を補正する。同様に、Bキズ補正部4022は、Bキズ検出部4012にて検出されたキズ画素の位置情報を基に、B像信号のなかでキズ画素に相当する信号を特定すると共に、キズ画素の位置に基づく参照範囲内で正常な画素のB像信号を用いて、そのキズ画素の信号を補正する。Aキズ補正部4021とBキズ補正部4022におけるキズ補正処理は、基本的に同じ処理であるため、以下、Aキズ補正部4021のみを例に挙げて説明する。
Aキズ補正部4021は、前述した図5に示したのと同様の参照範囲502を用いてキズ画素に対するキズ補正処理を行う。Aキズ補正部4021でのキズ補正処理の場合の図5の例では、着目画素501がキズ画素であり、キズ補正処理の際の参照範囲502は、着目画素501が含まれるラインのなかで、その着目画素501の周辺画素を含む範囲502に設定される。この例では、Aキズ補正部4021は、着目画素501を含むライン(R6行)のなかで、その着目画素501の周辺画素(左右の隣接画素510,511)を含む範囲を、参照範囲502として設定している。すなわち、キズ補正処理でも前述したキズ検出処理の場合と同様に、参照範囲502は、着目画素501を含むライン(R6行)に対して、垂直方向側に配置されている他のライン(R4行やR22行等)を含まない範囲として設定される。
なお、この例においても、参照範囲は、着目画素501の左右の一つずつの隣接画素510,511を含む範囲(502)だけでなく、着目画素501の左右それぞれ二つ以上の複数の画素を含む範囲であってもよい。また、Aキズ補正部4021で用いられる参照範囲は、前述したキズ検出部4011で用いられる参照範囲とは異なっていてもよい。例えば、キズ検出部4011では着目画素501に対して左右一つずつの隣接画素510,511を含む参照範囲502を用い、キズ補正部4021では着目画素501に対して左右二つ以上の隣接画素を含む参照範囲を用いてもよい。
そして、Aキズ補正部4021は、参照範囲502内で、例えば着目画素の左右の隣接画素510,511の画素値の平均値を補間画素として、着目画素501の画素値を置換するようなキズ補正処理を行う。その他の処理として、Aキズ補正部4021は、例えば着目画素501と左右の隣接画素510,511の各画素値の中央値を補間画素として、着目画素501の画素値を置換するようなキズ補正処理を行ってもよい。
また、Aキズ検出部4011によるキズ画素判定の結果が2値で表されている場合には、そのキズ判定結果に応じて、着目画素501が補間画素により置換される。また例えば、キズ画素判定の結果が多値で表されている場合には、そのキズ判定結果の多値に応じて、着目画素501又は補間画素の何れか若しくは両方に重みを付けて、それら重み付けされた値を合成するようなキズ補正処理が行われてもよい。例えば、キズ画素判定の結果が多値で表されている場合、Aキズ補正部4021は、多値の値が大きいほど(レベル差が大きいほど)、小さくなるような重み付けを行い、その重み付け後の値を合成する処理を行う。
前述したように、本実施形態では、測距演算信号が離散的なライン間隔で読み出される場合において、キズ補正処理の際の参照範囲は、着目画素(キズ画素)を含む同色のライン内で設定される。すなわち、キズ補正処理の際の参照範囲は、着目画素(キズ画素)を含むラインに対して垂直方向側に配置されている他のラインの画素を含まない範囲となされる。そして、キズ画素の補正処理は、参照範囲内の同色で同ライン内のキズ画素とその周辺画素の画素値に基づく補間画素値を用いた置換処理により行われる。このように、本実施形態の場合、キズ補正処理の際には、着目画素を含むライン上の画素を参照画素として用い、着目画素のラインとは別のラインの画素が参照画素として用いられることはない。したがって、本実施形態によれば、測距演算信号が離散的なライン間隔で読み出される場合において、最適な参照画素を用いたキズ補正処理が可能となり、キズ画素の誤補正が行われてしまう可能性が非常に少ない。
Aキズ補正部4021によりキズ補正処理がなされた後のA像信号と、Bキズ補正部4022によりキズ補正処理がなされた後のB像信号とは、結合部403に送られる。結合部403は、それらA像信号とB像信号を結合する。具体的には、結合部403は、AB分離部400における測距演算信号からA像信号とB像信号を分離する処理に対する逆処理である結合処理を行って、A像信号とB像信号を結合した測距演算信号を生成して出力する。
結合部403から出力された測距演算信号は、図示しない後段の測距演算部に送られる。図示しない測距演算部では、測距演算信号を用い、既知の手法による相関演算処理等を行い、光学系100で焦点調整を行う際のフォーカスレンズの駆動量などを求める。なお、測距演算部は、図1のCPU108にて行われてもよい。そして、光学系駆動部101は、測距演算部で求められたフォーカスレンズの駆動量に基づいて、光学系100のフォーカスレンズを駆動する。これにより、測距演算信号に基づく正確な焦点調整が行われることになる。
以上説明したように、第1の実施形態では、測距演算信号が離散的なライン間隔で読み出される場合において、着目画素を含むライン上で且つ着目画素の周辺画素のみが参照画素として用いられている。すなわち、第1の実施形態では、測距演算信号とは信号特性が異なる加算読み出し動作によるラインの画素だけでなく、測距演算信号のラインであっても着目画素からは遠い、他のラインの画素を参照画素として用いないようにしている。
これにより、第1の実施形態によれば、測距演算信号が離散的なライン間隔で読み出される場合において、最適な参照画素を用いたキズ画素検出処理及びキズ補正処理が可能となる。したがって、第1の実施形態によれば、キズ画素の誤検出・誤判定やキズ画素の誤補正等が生ずる可能性が非常に少ない。このため、第1の実施形態によれば、測距演算信号が離散的なライン間隔で読み出される場合において、例えばキズ補正処理後の測距演算信号を用いた正確な焦点調整等が可能となる。
なお、前述した実施形態では、Aキズ検出部4011とAキズ補正部4021を別の構成としたが、着目画素とキズ画素は同じ画素であるため、それぞれ同じ参照範囲が設定される場合には、それら各部を一つの構成としてもよい。Bキズ検出部4012とBキズ補正部4022についても同様に一つの構成としてもよい。また前述の実施形態では、キズ画素検出処理を単純なハイパスフィルタやバンドパスフィルタ、メディアンフィルタ等により行う例を挙げたが、複数のフィルタを組み合わせてキズ画素検出処理を行って、キズ補間処理を実行する構成であってもよい。
また、前述の実施形態では、参照範囲は、着目画素が含まれる同色のライン内で設定したが、例えば着目画素が含まれる色成分のラインに対応した他の色成分のライン上の同位置の各画素を含む範囲となされてもよい。例えば図5に示した参照範囲502は、R色のライン(R6行)に設定される範囲だけでなく、他の色のライン(例えば不図示のG色のG6行やB色のB6行)上の同位置の各画素(501,510,511)を含んでいてもよい。この例の場合、例えばR色における着目画素501のキズ画素判定の際には、参照範囲502内のR,G,Bの各色における各画素値から前述同様にして求めた差分値や中央値と閾値とを比較するようなキズ画素判定処理を行うことができる。また例えば、例えばR色における着目画素501のキズ補正処理の際にも同様に、参照範囲502内のR,G,Bの各色における各画素値から前述同様にして求めた平均値や中央値に基づく補間画素で置換するようなキズ補正処理を行うことができる。
<第2の実施形態>
図6は、第2の実施形態の撮像装置の概略構成を示すブロック図である。
図6の撮像装置において、図1に示した撮像装置と基本的に同じ構成要素には、図1と同一の参照符号を付して、それらの詳細な説明は省略する。第2の実施形態の撮像装置と第1の実施形態の撮像装置とでは、概ね、第2の実施形態の撮像装置が、参照画素判定部609を有しており、また第2のキズ検出補正部6072の処理が第1の実施形態の第2のキズ検出補正部1072とは異なる点が相違する。以下、第1の実施形態とは異なる部分を中心に、第2の実施形態の撮像装置について説明する。
図6の信号分離部104と信号加算部105は、CPU108から出力される撮像素子制御情報に基づいて、撮像素子102の出力信号の各ラインのうち、何れのラインが測距演算信号のラインであるかを識別している。この例の場合、撮像素子制御情報には、例えば測距演算信号の読み出しラインの座標情報が含まれ、信号分離部104と信号加算部105は、その読み出しラインの座標を基に、撮像素子102の出力信号の各ラインが測距演算信号のラインかどうかを識別する。また、撮像素子制御情報には、測距演算信号のライン番号の情報が含まれていてもよい。この場合の信号分離部104と信号加算部105は、読み出しライン番号をカウントすることで、撮像素子102から出力される各ラインが測距演算信号のラインかどうかを識別する。
図6の第2のセンサ補正部1062による信号補正処理後の測距演算信号(A像信号及びB像信号)は、第2のキズ検出補正部6072に送られる。第2のキズ検出補正部6072は、第2のセンサ補正部1062による信号補正処理後の測距演算信号(A像信号及びB像信号)からキズ画素を検出し、その検出したキズ画素に対するキズ補正処理を行う。第2のキズ検出補正部6072におけるキズ画素検出処理、キズ補正処理の詳細は後述する。
参照画素判定部609は、CPU108から出力される撮像素子制御情報に基づいて、撮像素子102の出力信号の各ラインの座標を管理している。そして、参照画素判定部609は、各ラインの座標情報を基に、撮像素子102の出力信号の各ラインが測距演算信号のラインかどうかを識別する。例えば、撮像素子制御情報に測距演算信号の読み出しラインの座標情報が含まれている場合、参照画素判定部609は、それら読み出しラインの座標情報を基に、撮像素子102の出力信号の各ラインが測距演算信号のラインかどうかを識別する。また例えば、撮像素子制御情報に測距演算信号のライン番号情報が含まれていている場合、参照画素判定部609は、その読み出しライン番号をカウントすることで、撮像素子102の出力信号の各ラインが測距演算信号のラインかどうかを識別してもよい。
また、参照画素判定部609は、撮像素子制御情報に基づいて、測距演算信号の着目画素に対して、後述するようなベース参照範囲を設定する。さらに、本実施形態において、参照画素判定部609は、後述するように、着目画素を含むラインと、ベース参照範囲内の他のラインとの間の距離に基づいて、ベース参照範囲を調整するか否か判定する。そして、参照画素判定部609は、ベース参照範囲を調整すると判定した場合には、後述するようにしてベース参照範囲を調整する。
図7は、参照画素判定部609が設定するベース参照範囲例の説明に用いる図である。なお、図7の例は、前述した図5の例と同様に、測距演算信号のR画素の各ラインの各信号(R画素のA像信号)を、図2(a),図2(b)の画素アレイ200の画素配列に対応するように配列させて表した図である。また、図7に例示した各ラインの測距演算信号のA像信号の配列は、前述の図5の例と同様に、画素アレイ200の画素配列上で測距演算信号が離散的なライン間隔で読み出された場合の例を表している。なお、図7の例では、R6行のラインの画素701が着目画素になっているとする。
参照画素判定部609は、着目画素701を中心に、同色の測距演算信号の水平方向(ライン方向)に3画素分で、垂直方向(ライン間隔方向)に3画素分からなる、3×3画素の範囲を、ベース参照範囲702として設定する。図7の例では、着目画素701を中心として、その着目画素701の周囲の各画素710〜717を含む範囲が、ベース参照範囲702として設定される。具体的には、ベース参照範囲702内の画素710,711,712は、着目画素701を含むライン(R6行)に対して、同色の測距演算信号において垂直方向(ライン間隔方向)上側のライン(R4行)上で、着目画素701の上と斜め上の画素である。同様に、ベース参照範囲702内の画素715,716,717は、着目画素701を含むライン(R6行)に対して、同色の測距演算信号において垂直方向下側のライン(R22行)上で、着目画素701の下と斜め下の各画素である。また、ベース参照範囲702内の画素713,714は、着目画素701を含むライン(R6行)上で着目画素701の左右に隣接した画素である。
また、参照画素判定部609は、撮像素子制御情報からベース参照範囲702における測距演算信号の各ラインの座標情報を求める。さらに、参照画素判定部609は、それら各ラインの座標情報に基づいて、着目画素701を含むライン(R6行)と、ベース参照範囲702内の他のライン(R4行、R22行)との間の距離を算出する。そして、参照画素判定部609は、それらライン間の距離に基づいて、ベース参照範囲702を調整するか否かを判定する。参照画素判定部609は、ベース参照範囲702を調整すると判定した場合には、後述するようにしてベース参照範囲702を調整する。
ベース参照範囲702の調整判定処理は、着目画素701のライン(R6行)と垂直方向上側のライン(R4行)との間の距離Du、及び、着目画素701のライン(R6行)と垂直方向下側のライン(R22行)との間の距離Ddに基づいて行われる。具体的には、参照画素判定部609は、下記式(1)により、着目画素701のライン座標Yc(図7の例ではR6行の座標)と、垂直方向上側のライン座標Yu(図7の例ではR4行の座標)との差分絶対値(ABS)を、距離Duとして算出する。同様に、参照画素判定部609は、下記式(1)により、着目画素701のライン座標Ycと、垂直方向下側のライン座標Yd(図7の例ではR22行の座標)との差分絶対値(ABS)を、距離Ddとして算出する。
Du=ABS(Yc−Yu)
Dd=ABS(Yc−Yd) ・・・式(1)
なお、本実施形態では、距離Duは着目画素のラインと垂直方向上側のラインとの間のライン間距離として求められているが、着目画素と、その着目画素のラインに対して垂直方向上側のライン上の画素との間の画素間距離として求められてもよい。同様に、距離Ddは着目画素のラインと垂直方向下側のラインとの間のライン間距離として求められているが、着目画素と、その着目画素のラインに対して垂直方向下側のライン上の画素との間の画素間距離として求められてもよい。以下の説明では、距離Duと距離Ddがライン間距離である場合を例に挙げている。
そして、参照画素判定部609は、距離Du及び距離Ddが、それぞれ所定の閾値未満(TH1未満)である場合には、ベース参照範囲702をそのまま参照範囲として使用する。すなわちこの場合、着目画素701に対する参照画素は、ベース参照範囲702内の各画素710〜717となる。一方、参照画素判定部609は、例えば距離Duが所定の閾値以上(TH1以上)である場合には、下記式(2)のように、距離Duに対応した垂直方向上側のライン(図7の例ではR4行)を除外するように、ベース参照範囲702を調整する。すなわちこの場合、着目画素701に対する参照画素は、調整後の参照範囲内の各画素713,714,715,716,717となり、R4行の画素710,711,712は参照画素として使用されないことになる。また、参照画素判定部609は、例えば距離Ddが所定の閾値以上(TH1以上)である場合、下記式(2)のように、距離Ddに対応した垂直方向下側のライン(図7の例ではR22行)を除外するように、ベース参照範囲702を調整する。すなわちこの場合、着目画素701に対する参照画素は、調整後の参照範囲内の各画素710,711,712,713,714となり、R22行の画素715,716,717は参照画素として使用されないことになる。
Du≧TH1:垂直方向上側のラインの画素を参照しない
Dd≧TH1:垂直方向下側のラインの画素を参照しない ・・・式(2)
より具体的な例を挙げて説明すると、図7の例の場合、着目画素701のラインはR6行であり、ベース参照範囲702内でR6行に対して垂直方向上側のラインはR4行である。このため、それらR6行とR4行との間の距離Duは"2"、つまり画素アレイ200上では垂直方向で2ライン間隔分に相当する距離である。また、ベース参照範囲702内でR6行に対して垂直方向下側のラインはR22行であるため、それらR6行とR22行との間の距離Ddは"16"、つまり画素アレイ200上では垂直方向で16ライン間隔分に相当する距離である。ここで、ベース参照範囲702の調整判定処理で用いる閾値TH1が例えば"10"である場合、つまり画素アレイ200上で垂直方向の10ライン間隔分に相当する値である場合、距離Dd("16")の方が閾値TH1以上となる。したがってこの場合、垂直方向下側のライン(R22行)の画素715,716,717が参照画素から除外されて、着目画素701に対する参照画素は、各画素710,711,712,713,714となる。
そして、参照画素判定部609は、前述したようにして参照範囲701を設定すると、その参照範囲702内において着目画素701に対する参照画素を、第2のキズ検出補正部6072に指示する。第2のキズ検出補正部6072に対する指示の仕方としては、着目画素701に対する参照範囲702内の画素毎に、使用可否を示す参照画素情報を設定して、それら画素毎の参照画素情報を第2のキズ検出補正部6072に通知することにより行われる。具体的には、参照画素判定部609は、画素毎の使用可否を"0"又は"1"で表す参照画素情報を、第2のキズ検出補正部6072に送る。本実施形態では、参照画素情報が例えば"0"である場合、その画素の使用可否は"使用否"であるとする。
図8は、第2の実施形態における第2のキズ検出補正部6072の概略構成を示すブロック図である。なお、図8はハードウェア構成の例を挙げているが、この図8に示す各部の処理は例えばCPUが本実施形態に係るプログラムを実行することにより実現されてもよい。
図8の第2のキズ検出補正部6072において、前述の図4に示した第2のキズ検出補正部1072と基本的に同じ構成要素には、図4と同一の参照符号を付して、それらの詳細な説明は省略する。第2の実施形態と第1の実施形態とでは、概ね、第2のキズ検出補正部6072が参照調整部804を有し、キズ画素検出処理とキズ補正処理の際の参照範囲が異なる点が相違する。以下、第1の実施形態とは異なる部分を中心に、第2の実施形態における第2のキズ検出補正部6072について説明する。
図8のAB分離部400により測距演算信号から分離されたA像信号はAキズ検出部8011とAキズ補正部8021とに送られ、B像信号はBキズ検出部8012とBキズ補正部8022とに送られる。なお、図8の例においても、前述の図4の場合と同様に、Aキズ検出部8011とAキズ補正部8021は共にA像信号を一つの画素信号として扱い、同様に、Bキズ検出部8012とBキズ補正部8022は共にB像信号を一つの画素信号として扱うとする。また、図8の参照調整部804には、図6の参照画素判定部609から参照範囲の画素毎の使用可否を表す参照画素情報が供給される。
Aキズ検出部8011は、画素毎にA像信号に対するキズ画素検出処理を行う。同様に、Bキズ検出部8012は、画素毎にB像信号に対するキズ画素検出処理を行う。Aキズ検出部8011とBキズ検出部8012におけるキズ画素検出処理は、基本的に同じ処理であるため、以下、Aキズ検出部8011のみを例に挙げて説明する。
Aキズ検出部8011は、図7で説明した3×3画素のベース参照範囲702又は後述のベース参照範囲702が調整された参照範囲内の各画素を、参照画素として用いて、着目画素701がキズ画素かどうかを判定するようなキズ画素検出処理を行う。本実施形態では、例えばハイパスフィルタやバンドパスフィルタなどの線形フィルタを用いたキズ画素検出処理と、例えばメディアンフィルタのような非線形フィルタを用いたキズ画素検出処理とを例に挙げて説明する。
線形フィルタによるキズ画素検出処理としては、一例として、下記式(3)の行列式に示すようなフィルタ係数を用いたフィルタ演算処理が挙げられる。式(3)のフィルタ係数は、図7で説明した3×3画素のベース参照範囲702に対応し、中央のフィルタ係数が図7の着目画素701に対する係数、残りの八つのフィルタ係数が図7の参照画素である各画素710〜717に対する係数である。本実施形態では、Aキズ検出部8011は、式(3)に示すフィルタ係数を用いた演算を行って得られた値と所定の閾値との比較により画素を検出する。
ここで、前述したように、ベース参照範囲702は同色の測距演算信号の3×3画素の9画素を含む範囲となされているが、本実施形態の場合、参照画素情報が使用否を表す"0"になっている画素は参照画素としては使用されない。この場合、参照画素判定部609による参照画素情報が"0"の画素に対応したフィルタ係数を"0"に調整すればよい。例えば前述した調整判定処理で用いる閾値TH1が"10"で、ライン(R22行)の三つの画素715〜717に対する参照画素情報が"0"になされた例の場合、式(3)のフィルタ係数を下記式(4)のようなフィルタ係数に調整すればよい。すなわち、式(4)のフィルタ係数は、式(3)のフィルタ係数のうち、ライン(R22行)の三つの画素715,716,717にそれぞれ対応した各フィルタ係数が"0"に調整されたものとなる。
ただし、単にフィルタ係数を"0"にするだけだと、画素毎でフィルタ出力が揃わなくなる。このため、参照調整部804は、下記式(5)のように、参照画素情報の"0"に対応したフィルタ係数を"0"に調整すると共に、着目画素701に対応した中央のフィルタ係数を調整するような調整情報を生成する。具体的には、参照調整部804は、着目画素701に対応した中央のフィルタ係数については、参照画素情報が"0"になされていない画素数(つまり参照画素として使用される画素の数)に応じた係数値に調整するような情報を生成する。すなわち、式(5)の例の場合、参照画素情報が"0"になされていない画素数は"5"になるため、参照調整部804は、中央のフィルタ係数を"−5"に調整するような情報を生成する。このように、式(5)のフィルタ係数は、Aキズ検出部8011におけるフィルタ処理の出力が画素毎に揃うようにする正規化処理が行われたフィルタ係数となされる。したがって、Aキズ検出部8011では、前述した式(3)のフィルタ係数が、参照調整部804からの調整情報に応じて調整された式(5)のフィルタ係数を用いた演算により得られた値と所定の閾値との比較によるキズ画素検出処理が行われることになる。
メディアンフィルタのような非線形フィルタを用いた演算では、前述した3×3画素のベース参照範囲702の中央値を算出するが、例えば前述した参照画素情報が"0"の画素については、メディアンフィルタ処理の対象とならないように調整する。
具体的には、参照調整部804は、参照画素情報が"0"の画素については、その画素信号を"0"値や最大値になるように調整する調整情報を生成して、Aキズ検出部8011に送る。これにより、Aキズ検出部8011では、参照調整部804から供給される調整情報に基づき、参照画素情報が"0"の画素信号は、"0"値や最大値になされて中央値とはならない。したがって、Aキズ検出部8011では、参照画素情報が"0"の画素を参照画素として用いない非線形フィルタ演算が行われ、その演算により得られた値と所定の閾値との比較によるキズ画素検出処理が行われることになる。
なお、第2の実施形態においても前述した第1の実施形態と同様に、キズ画素判定の結果は、差分値や中央値と閾値との大小比較による、キズ画素であるか又はキズ画素でないかの2値で表される判定結果となされる。また、キズ画素判定の結果は、差分値や中央値と閾値とのレベル差に応じた多値で表される結果であってもよい。また、図8の例では、参照調整部804は、キズ検出部8011で使用されるフィルタ係数を調整するための調整情報を生成したが、参照調整部804が調整後のフィルタ係数を生成してキズ検出部8011に送るようにしてもよい。
Aキズ検出部8011は、前述したようなキズ画素検出処理によるキズ判定結果と検出されたキズ画素の位置の情報を、Aキズ補正部8021に送る。同様に、Bキズ検出部8012は、B像信号に対するキズ画素検出処理によるキズ判定結果と検出したキズ画素の位置情報を、Bキズ補正部8022に送る。
Aキズ補正部8021は、Aキズ検出部8011で検出されたキズ画素の位置情報を基に、A像信号のなかでキズ画素に相当する信号を特定し、キズ画素の位置に基づく参照範囲内で正常な画素のA像信号を用いて、そのキズ画素の信号を補正する。同様に、Bキズ補正部8022は、Bキズ検出部8012で検出されたキズ画素の位置情報を基に、B像信号のなかでキズ画素に相当する信号を特定し、キズ画素の位置に基づく参照範囲内で正常な画素のB像信号を用いて、そのキズ画素の信号を補正する。Aキズ補正部8021とBキズ補正部8022におけるキズ補正処理は、基本的に同じ処理であるため、以下、Aキズ補正部8021のみを例に挙げて説明する。
Aキズ補正部8021は、図7で説明した3×3画素のベース参照範囲702又は後述のベース参照範囲702が調整された参照範囲内の各画素を、参照画素として用いて、着目画素701に対するキズ補正処理を行う。本実施形態では、例えばハイパスフィルタやバンドパスフィルタなどの線形フィルタを用いたキズ補正処理と、例えばメディアンフィルタのような非線形フィルタを用いたキズ補正処理とを例に挙げて説明する。
線形フィルタによるキズ補正処理としては、一例として、下記式(6)の行列式に示すようなフィルタ係数を用いたフィルタ演算処理により補間画素を生成する処理が挙げられる。式(6)のフィルタ係数は、図7で説明した3×3画素のベース参照範囲702に対応している。式(6)の中央のフィルタ係数が図7の着目画素701(つまりキズ画素)に対する係数、残りの八つのフィルタ係数が図7の参照画素である各画素710〜717に対する係数である。本実施形態では、Aキズ補正部8021は、式(6)に示すフィルタ係数を用いた演算を行うことで、キズ画素である着目画素701に対する補間画素を生成する。
ここで、前述したように、本実施形態では、キズ補正処理の際にも、参照画素情報が使用否を表す"0"になっている画素は参照画素としては使用されない。すなわち、参照画素判定部609による参照画素情報が"0"の画素に対応したフィルタ係数を"0"に調整する。例えば調整判定処理の閾値TH1が"10"で、ライン(R22行)の三つの画素715〜717に対する参照画素情報が"0"になされた例の場合、式(6)のフィルタ係数を下記式(7)のようなフィルタ係数に調整すればよい。すなわち、式(7)のフィルタ係数は、式(6)のフィルタ係数のうち、ライン(R22行)の画素715,716,717にそれぞれ対応した各フィルタ係数が"0"に調整されたものとなる。
ただし、単にフィルタ係数を"0"にするだけだと、画素毎でフィルタ出力が揃わなくなる。このため、参照調整部804は、下記式(8)のように、参照画素情報の"0"に対応したフィルタ係数を"0"に調整すると共に、フィルタ処理の除数を調整するような調整情報を生成する。具体的には、参照調整部804は、フィルタ処理の除数を、参照画素情報が"0"になされていない画素数(つまり参照画素として使用される画素の数)に応じた値に調整するような情報を生成する。式(8)の例では、参照画素情報が"0"になされていない画素数は"5"になるため、参照調整部804は、フィルタ係数の除数を"5"に調整するような情報を生成する。このように、式(8)のフィルタ係数は、Aキズ補正部8021におけるフィルタ処理の出力が画素毎に揃うようにする正規化処理が行われたフィルタ係数となされる。したがって、Aキズ補正部8021では、前述した式(7)のフィルタ処理の除数が、参照調整部804からの調整情報に応じて調整された式(8)を用いて補間画素が生成されてキズ補正処理が行われることになる。
メディアンフィルタのような非線形フィルタを用いた演算では、前述した3×3画素のベース参照範囲702の中央値を算出するが、例えば前述した参照画素情報が"0"の画素については、メディアンフィルタ処理の対象とならないように調整する。
具体的には、参照調整部804は、参照画素情報が"0"の画素については、その画素信号を"0"値や最大値になるように調整する調整情報を生成して、Aキズ補正部8021に送る。これにより、Aキズ補正部8021では、参照調整部804から供給される調整情報に基づき、参照画素情報が"0"の画素信号は"0"値や最大値になされて中央値とはならない。したがって、Aキズ補正部8021では、参照画素情報が"0"の画素を参照画素として用いない非線形フィルタ演算が行われ、その演算により得られた値に基づくキズ補正処理が行われることになる。
なお、Aキズ検出部8011によるキズ画素判定の結果が2値で表されている場合、Aキズ補正部8021は、そのキズ判定結果に応じて、キズ画素を補間画素により置換する。また例えば、キズ画素判定の結果が多値で表されている場合、Aキズ補正部8021は、キズ判定結果の多値に応じて、キズ画素又は補間画素の何れか若しくは両方に重みを付けて、それら重み付けされた値を合成するようなキズ補正処理を行ってもよい。例えば、Aキズ補正部8021は、キズ判定結果を表す多値の値が大きいほど、小さくなるような重み付けを行って、その重み付け後の値を合成するキズ補正処理を行う。また、図8の例では、参照調整部804は、キズ補正部8021で使用されるフィルタ係数等を調整するための調整情報を生成したが、参照調整部804が調整後のフィルタ係数等を生成してキズ補正部8021に送るようにしてもよい。
Aキズ補正部8021によりキズ補正処理がなされた後のA像信号と、Bキズ補正部8022によりキズ補正処理がなされた後のB像信号とは、結合部403に送られる。結合部403では、前述したようにA像信号とB像信号を結合する。そして、結合部403から出力された測距演算信号は、図示しない後段の測距演算部に送られて、第1の実施形態と同様に、光学系100で焦点調整を行う際のフォーカスレンズの駆動量などが求められる。
以上説明したように、第2の実施形態によれば、測距演算信号が離散的なライン間隔で読み出される場合において、着目画素からの距離に基づいて参照範囲を調整することにより、最適な参照画素を用いたキズ画素検出処理及びキズ補正処理が可能となる。したがって、第2の実施形態によれば、キズ画素の誤検出・誤判定やキズ画素の誤補正等が生ずる可能性が非常に少ない。このため、第2の実施形態によれば、測距演算信号が離散的なライン間隔で読み出される場合において、例えばキズ補正処理後の測距演算信号を用いた正確な焦点調整等が可能となる。
なお、前述の例では、Aキズ検出部8011とAキズ補正部8021に対して参照範囲は共通に設定されているが、Aキズ検出部8011とAキズ補正部8021とでそれぞれ参照範囲が調整されてもよい。Aキズ検出部8011とAキズ補正部8021は別の構成となされているが、それらを一つの構成としてもよい。また、キズ画素検出処理とキズ補正処理は単純なフィルタにより行われる場合だけでなく、複数のフィルタが組み合わされた構成により行われてもよい。また、参照範囲は、例えば着目画素やキズ画素が含まれる色成分のラインに対応した他の色成分のライン上の同位置の各画素を含む範囲となされてもよい。これらのことはBキズ検出部8012とBキズ補正部8022についても同様である。
前述の例では、着目画素のライン(R6行)に対し、距離Ddが閾値TH1以上で、距離Duが閾値TH1未満の例を挙げているため、垂直方向上側のライン(R4行)が参照範囲に残り、垂直方向下側のライン(R22行)は参照範囲から除外されている。これに対し、例えば、距離Ddが閾値TH1未満で、距離Duが閾値TH1以上の場合には、着目画素のラインに対して、垂直方向下側のラインの画素が参照画素となされ、垂直方向上側のラインの画素は参照画素から除外されることになる。また例えば、距離Ddと距離Duの両方が閾値TH1以上になる場合には、着目画素のラインに対して、垂直方向上側のラインと垂直方向下側のラインの両方の画素が参照画素から除外されることになる。このように、着目画素のラインに対して、垂直方向上側のラインと垂直方向下側のラインの両方の画素が参照画素から除外された場合には、前述した第1の実施形態と同様に、着目画素のライン上で着目画素の左右の隣接画素のみが参照画素となる。
<第3の実施形態>
以下、第3の実施形態について説明する。第3の実施形態の撮像装置の構成は、図6に示した第2の実施形態の構成と基本的に同じであるため、その図示と説明は省略する。第3の実施形態の撮像装置と第2の実施形態の撮像装置とでは、概ね、第2のキズ検出補正部6072と参照画素判定部609における処理が異なる。以下、図6を参照しながら、第2の実施形態とは異なる部分を中心に、第3の実施形態の撮像装置について説明する。
第3の実施形態において、参照画素判定部609は、前述した距離Duと距離Ddを式(1)により算出することまでは第2の実施形態の場合と同様である。第3の実施形態の場合、参照画素判定部609は、前述した閾値TH1を用いた判定処理を行わず、距離Du及び距離Ddの情報を、第2のキズ検出補正部6072に送る。なお、距離Duと距離Ddの情報をそのまま出力するのではなく、例えば正規化処理やゲイン調整処理を行ってから出力してもよい。以下の説明では、距離Duと距離Ddの情報がそのまま第2のキズ検出補正部6072に出力される例を挙げる。すなわち、第3の実施形態の場合、参照画素判定部609から第2のキズ検出補正部6072に送られる参照画素情報は、前述した参照画素の使用可否を表す情報ではなく、距離Duと距離Ddの情報となされている。また、前述した図7を例に挙げた場合、距離Duの値は"2"であり、距離Ddの値は"16"であるため、以下、距離Duが"2"、距離Ddが"16"である例を用いて説明する。
第3の実施形態において、第2のキズ検出補正部6072の構成は、図8に示した第2の実施形態の構成と基本的に同じであるため、その図示と説明は省略する。なお、第3の実施形態における図8の各部の処理は、例えばCPUが本実施形態に係るプログラムを実行することにより実現されてもよい。以下、第3の実施形態における第2のキズ検出補正部6072について、図8を参照しながら説明する。
なお、第3の実施形態においても、Aキズ検出部8011とBキズ検出部8012におけるキズ画素検出処理は基本的に同じ処理であるため、以下、Aキズ検出部8011のみを例に挙げて説明する。同様に、Aキズ補正部8021とBキズ補正部8022におけるキズ補正処理についても基本的に同じ処理であるため、以下、Aキズ補正部8021のみを例に挙げて説明する。
Aキズ検出部8011は、図7の3×3画素のベース参照範囲702の各参照画素を用いて、着目画素701がキズ画素かどうかを判定するキズ画素検出処理を行う。第3の実施形態においては、以下に説明するようなフィルタ処理によるキズ画素検出処理を行う。
第3の実施形態のAキズ検出部8011によるキズ画素検出処理は、例えば前述の式(3)に示したようなフィルタ係数によるフィルタ演算処理が挙げられる。また、第3の実施形態の場合は、参照画素判定部609から供給される距離Duと距離Ddの参照画素情報に基づいて、式(3)のフィルタ係数が調整される。すなわち、第3の実施形態において、図8の参照調整部804は、参照画素情報である距離Duと距離Ddの情報を基に、式(3)のフィルタ係数を調整するための調整情報を生成する。具体的には、参照画素判定部609は、距離Duや距離Ddが大きくなる(着目画素から参照画素が遠くなる)ほど、式(3)のフィルタ係数を小さくするような調整情報が生成される。
ここで、式(3)のフィルタ係数を調整する際の調整情報として、例えば距離Du及び距離Ddの値の逆数を用い、それら逆数の値を式(3)のフィルタ係数に乗算するような調整処理を行った場合、式(9)のフィルタ係数が生成されることになる。なお、前述した図7の例の場合、距離Duは"2"で、距離Ddは"16"であるため、距離Duの逆数は"1/2"、距離Ddの逆数は"1/16"である。したがって、式(9)のフィルタ係数は、図7のライン(R4行)の各画素710〜712に対応した各フィルタ係数が"1/2"、図7のライン(R22行)の各画素715〜717に対応した各フィルタ係数が"1/16"となされる。なお、着目画素701のライン(R6行)内の参照画素(画素713,714)に対応したフィルタ係数は"1"のまま調整されない。
ただし、Aキズ検出部8011において、例えば式(9)の各フィルタ係数に応じたゲインを各参照画素の画素値に重畳するような処理を行ったとすると、画素毎でフィルタ出力が揃わなくなる。このため、第3の実施形態の参照調整部804は、下記式(10)のように、距離Du及び距離Ddの値の逆数によるフィルタ係数の調整と共に、着目画素701に対応した中央のフィルタ係数をも調整するような調整情報を生成する。具体的には、第3の実施形態の参照調整部804は、着目画素701に対応した中央のフィルタ係数を、各参照画素における距離Du及び距離Ddの値の逆数の加算値に基づく係数値である"−59/16"に調整するような調整情報を生成する。このように、式(10)のフィルタ係数は、Aキズ補正部8021におけるフィルタ処理の出力が画素毎に揃うようにする正規化処理が行われたフィルタ係数となされる。したがって、Aキズ検出部8011では、前述した式(3)のフィルタ係数が、参照調整部804からの調整情報に応じて調整された式(10)のフィルタ係数を用いたキズ画素検出処理が行われることになる。
第3の実施形態において、Aキズ検出部8011は、前述したようなキズ画素検出処理によるキズ判定結果と検出されたキズ画素の位置の情報を、Aキズ補正部8021に送る。第3の実施形態のAキズ補正部8021は、Aキズ検出部8011で検出されたキズ画素の位置情報を基にキズ画素に相当する信号を特定し、キズ画素の位置に基づく参照範囲内で正常な画素のA像信号を用いて、そのキズ画素の信号を補正する。例えば、Aキズ補正部8021は、例えば図7に示した3×3画素のベース参照範囲702の各画素を参照画素として用い、前述の式(6)に示したフィルタ係数を用いた処理により補間画素を生成してキズ画素を補正するようなキズ補正処理を行う。
また、第3の実施形態において、Aキズ補正部8021で用いられる式(6)のフィルタ係数は、参照画素判定部609から供給される距離Du及び距離Ddの参照画素情報に基づいて調整される。具体的には、参照画素判定部609は、距離Duや距離Ddが大きくなる(着目画素から参照画素が遠くなる)ほど、式(6)のフィルタ係数を小さくするような調整情報が生成される。
ここで、式(6)のフィルタ係数を調整する際の調整情報として、例えば距離Du及び距離Ddの値の逆数を用い、それら逆数の値を式(6)のフィルタ係数に乗算するような調整処理を行った場合、下記式(11)のフィルタ係数が生成されることになる。なお、前述した図7の例の場合、距離Duが"2"で、距離Ddが"16"であるため、距離Duの逆数は"1/2"、距離Ddの逆数は"1/16"である。したがって、式(11)のフィルタ係数は、図7のライン(R4行)の各画素710〜712に対応した各フィルタ係数が"1/2"、図7のライン(R22行)の各画素715〜717に対応した各フィルタ係数が"1/16"となされる。なお、着目画素701のライン(R6行)内の参照画素(画素713,714)に対応したフィルタ係数は"1"のまま調整されない。
ただし、Aキズ補正部8021において、例えば式(11)の各フィルタ係数に応じたゲインを各参照画素の画素値に重畳する処理を行ったとすると、画素毎でフィルタ出力が揃わなくなる。このため、第3の実施形態の参照調整部804は、下記式(12)のように、距離Du及び距離Ddの値の逆数によるフィルタ係数の調整と共に、着目画素701に対応した中央のフィルタ係数をも調整する調整情報を生成する。具体的には、第3の実施形態の参照調整部804は、フィルタ係数の除数を、各参照画素における距離Du及び距離Ddの値の逆数の加算値に基づく係数値である"59/16"に調整するような調整情報を生成する。これにより、式(12)のフィルタ係数は、Aキズ補正部8021におけるフィルタ処理の出力が画素毎に揃うようにする正規化処理が行われたフィルタ係数となされる。したがって、Aキズ検出部8021では、前述した式(6)のフィルタ係数が、参照調整部804からの調整情報に応じて調整された式(12)のフィルタ係数を用いたキズ画素検出処理が行われることになる。
なお、第3の実施形態においても第2の実施形態の場合と同様、Aキズ検出部8011によるキズ画素判定の結果が2値で表されている場合、Aキズ補正部8021は、そのキズ判定結果に応じて、キズ画素を補間画素により置換する。また例えば、キズ画素判定の結果が多値で表されている場合、Aキズ補正部8021は、キズ判定結果の多値に応じて、キズ画素又は補間画素の何れか又は両方に重みを付けて、それら重み付けされた値を合成するようなキズ補正処理を行ってもよい。例えば、Aキズ補正部8021は、キズ画素判定の結果を表す多値の値が大きいほど、小さくなるような重み付けを行って、その重み付け後の値を合成する処理を行う。また、第3の実施形態において、参照調整部804は、キズ補正部8021で使用されるフィルタ係数等を調整するための調整情報を生成したが、参照調整部804が調整後のフィルタ係数等を生成してキズ補正部8021に送るようにしてもよい。
Aキズ補正部8021によりキズ補正処理がなされた後のA像信号と、Bキズ補正部8022によりキズ補正処理がなされた後のB像信号とは、結合部403に送られ、結合部403は、前述同様にA像信号とB像信号を結合する。結合部403から出力された測距演算信号は、図示しない後段の測距演算部に送られて、第1の実施形態と同様に、光学系100で焦点調整を行う際のフォーカスレンズの駆動量などが求められる。
以上説明したように、第3の実施形態によれば、測距演算信号が離散的なライン間隔で読み出される場合において、着目画素からの距離に基づいてベース参照範囲に対応した各フィルタ係数を調整する。これにより第3の実施形態においても前述の各実施形態と同様に、最適な参照画素を用いたキズ画素検出処理及びキズ補正処理が可能となり、したがって、キズ画素の誤検出・誤判定やキズ画素の誤補正等が生ずる可能性は非常に少ない。このため、第3の実施形態においても前述の各実施形態と同様に、測距演算信号が離散的なライン間隔で読み出される場合において、例えばキズ補正処理後の測距演算信号を用いた正確な焦点調整等が可能となる。
なお、第3の実施形態においても前述した各実施形態と同様に、Aキズ検出部8011とAキズ補正部8021とで、それぞれ参照範囲が調整されてもよい。また、Aキズ検出部8011とAキズ補正部8021とは一つの構成であってもよい。また、キズ画素検出処理とキズ補正処理は、複数のフィルタが組み合わされた構成により行われてもよい。また、参照範囲は、着目画素が含まれる色成分のラインに対応した他の色成分のライン上の同位置の各画素を含む範囲となされてもよい。これらのことはBキズ検出部8012とBキズ補正部8022についても同様である。
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
上述の実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明は、その技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。