図1は、本発明の実施形態による撮像装置1の構成例を示す図である。撮像装置1は、デジタルカメラ、ビデオカメラの他、スマートフォン、タブレット、工業用カメラ、医療用カメラ等に適用可能である。撮像装置1は、CPU100と、SSG101と、光学系102と、撮像素子103と、信号処理回路104と、画像処理回路105と、ROM106とを有する。さらに、撮像装置1は、符号化処理手段107と、記録処理手段108と、記録メディア109と、表示処理手段110と、表示デバイス111と、TG112と、デフォーカス量計算手段113とを有する。光学系102は、フォーカスレンズ及びズームレンズを有し、光学像を撮像素子103上に結像させる。撮像素子103は、光電変換により画像信号を生成し、画像信号をアナログからデジタルに変換し、デジタルの画像信号を出力する。
信号処理回路104は、撮像素子103から出力される画像信号の補正と、合焦制御用の評価値の取得を行う。信号処理回路104は、像データ分離部1040と、クランプ処理手段1041と、シェーディング補正手段1042と、傷補正手段1043と、レベル整合手段1044と、シェーディング補正手段1045と、相関演算手段1046とを有する。像データ分離部1040は、視差画像としての分割画素信号を撮像面位相差AF用の信号処理パスのレベ整合手段1044に出力し、全画素信号を記録系の信号処理パスのクランプ処理手段1041に出力する。記録系の信号処理パスは、黒レベルを再現するクランプ処理手段(クランプ処理回路)1041と、シェーディングを補正するシェーディング補正手段1042と、撮像素子103の画素欠陥を補正する傷補正手段1043を含む。AF用の信号処理パスは、左右(上下でも良いが、図3の撮像素子103の構成では左右を扱う)の視差画像を入力し、レベル整合手段1044と、シェーディング補正手段1045と、相関演算手段1046とを含む。レベル整合手段1044は、この視差画像対の黒レベルを整合する手段であり、左右(または上下)毎のクランプ処理を実施し、ペデスタルレベルの共通化を図る手段である。シェーディング補正手段1045は、視差画像対の夫々のシェーディング補正を行う。相関演算手段1046は、任意の測距枠中の視差画像の夫々の相関関係を評価する。相関演算手段1046は、視差画像の領域の夫々をずらしながら、測距枠中の相関演算を行う。また、相関演算手段1046は、1画素以下の分解能に対する相関値の推定(サブピクセル推定)の処理も行う。デフォーカス量計算手段113は、画素間の相関値を、レンズ繰り出し量の情報へ変換し、光学系102へフィードバックする。デフォーカス量計算手段113は、相関演算結果のレンズ繰り出し量への変換係数として、事前の工程で取得した調整値を保持しておく。光学系102は、レンズ繰り出し量に応じて、フォーカスレンズを駆動し、オートフォーカスを実現する。
画像処理回路105は、ノイズリダクション(NR)1050と、光学回復処理手段1051と、現像処理手段1052とを有する。ノイズリダクション(NR)1050は、傷補正手段1043により補正された画像信号に対して、ノイズ抑制処理を行う。本実施形態のノイズリダクション(NR)の位置は一例であり、信号処理の一環として事前に実施しても良いし、現像後の色データに対して実施しても良い。光学回復処理手段1051は、回折による画質低下を回復する。現像処理手段1052は、色データの処理(同時化、偽色処理、ガンマ補正等)を行う。
符号化処理手段107は、現像処理手段1052が出力する画像信号を記録用に圧縮する。記録処理手段108は、圧縮された画像信号を記録メディア109に記録する。記録メディア109は、メモリカード等である。表示処理手段110は、現像処理手段1052が出力する画像信号を基に表示用の画像を生成して表示デバイス111に転送する。表示デバイス111は、液晶ディスプレイ(LCD)等であり、画像を表示する。
ROM106は、プログラムを記憶する。CPU100は、ROM106に記憶されているプログラムを実行することにより、撮像装置1の全体の処理を制御する。SSG(Synchronous Signal Generator)101は、同期信号生成手段であり、撮像タイミングを制御する。また、SSG101は、信号処理回路104にフレーム制御タイミングを出力し、TG112にフレーム同期信号を出力する。TG(Timing Generator)112は、タイミングジェネレータであり、撮像素子103の駆動タイミングを制御する。該SSG101、TG112は、撮像素子103の転送データをオンフライで信号処理回路104が処理するための一例である。
図2は、図1の撮像素子103の構成例を示す図である。撮像素子103は、単位画素10、垂直走査回路12、水平走査回路14、列読み出し回路16、メモリ18、ランプ信号発生器20、カウンタ22を有する。複数の単位画素10は、行方向及び列方向に沿って2次元行列状に配列され、撮像領域である画素アレイを構成する。図2には図面の簡略化のために2行2列の単位画素10のみを示しているが、行方向及び列方向に配置される単位画素10の数は特に限定されるものではない。なお、本明細書では、行方向とは図面において横方向を示し、列方向とは図面において縦方向を示すものとする。また、本実施形態では、行方向が撮像装置1における水平方向に対応し、列方向が撮像装置1における垂直方向に対応する。
複数の単位画素10の各々は、各々が光を電荷に変換する複数の光電変換素子24A及び24Bを有する瞳分割型の焦点検出用画素である。複数の単位画素10の各々は、受光部24、転送MOSトランジスタ26A、26B、リセットMOSトランジスタ28、増幅MOSトランジスタ30、選択MOSトランジスタ32を有する。図2では、図面の簡略化のため、1つの単位画素10についてのみ具体的な回路構成の一例を示している。受光部24は、複数の光電変換素子24A及び24Bを有する。光電変換素子24A、24Bは、例えば、フォトダイオードであり、光を電荷に変換する光電変換ユニットである。光電変換素子24Aは、アノードが接地電圧線に接続され、カソードが転送MOSトランジスタ26Aのソースに接続されている。光電変換素子24Bは、アノードが接地電圧線に接続され、カソードが転送MOSトランジスタ26Bのソースに接続されている。転送MOSトランジスタ26A及び26Bのドレインは、リセットMOSトランジスタ28のソース及び増幅MOSトランジスタ30のゲートに接続されている。転送MOSトランジスタ26A及び26Bのドレイン、リセットMOSトランジスタ28のソース及び増幅MOSトランジスタ30のゲートの接続ノードは、フローティングディフュージョン領域(Floating Diffusion。以下、FD領域という)34を構成する。
リセットMOSトランジスタ28及び増幅MOSトランジスタ30のドレインは、電源電圧線に接続されている。増幅MOSトランジスタ30のソースは、選択MOSトランジスタ32のドレインに接続されている。転送MOSトランジスタ26A及び26B、リセットMOSトランジスタ28、増幅MOSトランジスタ30、選択MOSトランジスタ32は、光電変換素子24A及び24Bで生成された電荷に基づく画素信号を読み出すための画素内読み出し回路を構成する。なお、トランジスタのソースとドレインの呼称は、トランジスタの導電型や着目する機能等に応じて異なることがあり、上述のソースとドレインとは逆の名称で呼ばれることもある。
図3(a)及び(b)は、撮像素子103の画素アレイの構成例を示す平面図及び断面図である。図3(a)は画素アレイの上面図であり、図3(b)は図3(a)のA−A’線に沿った断面図である。図2に示す画素アレイは、特に限定されるものではないが、例えば図3(a)に示す平面レイアウトによって実現することができる。図3(a)において点線で囲まれた単位領域が単位画素10である。各単位画素10上には、1個のマイクロレンズ38がそれぞれ配置されている。光電変換素子24A、24Bとマイクロレンズ38との間には、図3(b)に示すように、カラーフィルタ36が配置されている。
本明細書において、1つの単位画素10が有する複数の光電変換素子24A、24Bを一括して示す際は、受光部24と表記するものとする。1つのマイクロレンズ38は、1つの受光部24上に配置され、光束を受光部24に集光する。つまり、1つのマイクロレンズ38は1つの受光部24に対応して設けられている。1つのマイクロレンズ38によって集光された入射光は、そのマイクロレンズ38に対応して設けられた単位画素10の受光部24を構成する光電変換素子24A、24Bに入射する。光電変換素子24A、24Bは、一対の瞳分割方式の焦点検出画素を構成する。
図2において、単位画素10の各行には、行方向に延在して、信号線TXA、信号線TXB、信号線RES、信号線SELが、それぞれ配置されている。信号線TXAは、行方向に並ぶ単位画素10の転送MOSトランジスタ26Aのゲートにそれぞれ接続され、これら単位画素10に共通の信号線をなしている。信号線TXBは、行方向に並ぶ単位画素10の転送MOSトランジスタ26Bのゲートにそれぞれ接続され、これら単位画素10に共通の信号線をなしている。信号線RESは、行方向に並ぶ単位画素10のリセットMOSトランジスタ28のゲートにそれぞれ接続され、これら単位画素10に共通の信号線をなしている。信号線SELは、行方向に並ぶ単位画素10の選択MOSトランジスタ32のゲートにそれぞれ接続され、これら単位画素10に共通の信号線をなしている。図2では、図面の簡略化のため、1つの単位画素10に接続される信号線TXA、TXB、RES、SELのみを示している。
垂直走査回路12は、TG110からの所定のタイミング信号に基づき、単位画素10を行ごとに選択して、単位画素10から画素信号を出力させるためのものである。信号線TXA、信号線TXB、信号線RES、信号線SELは、垂直走査回路12に接続されている。信号線TXAには、垂直走査回路12から、転送MOSトランジスタ26Aを駆動するための転送パルス信号PTXAが出力される。信号線TXBには、垂直走査回路12から、転送MOSトランジスタ26Bを駆動するための転送パルス信号PTXBが出力される。信号線RESには、垂直走査回路12から、リセットMOSトランジスタ28を駆動するためのリセットパルス信号PRESが出力される。信号線SELには、垂直走査回路12から、選択MOSトランジスタ32を駆動するための選択パルス信号PSELが出力される。ここでは、これら信号線にハイレベルの信号が印加されると、対応するトランジスタが導通状態(オン状態)になるものとする。また、ローレベルの信号が印加されると、対応するトランジスタが非導通状態(オフ状態)になるものとする。
単位画素10の各列には、列方向に延在して、列信号線40がそれぞれ配置されている。列信号線40は、列方向に並ぶ単位画素10のそれぞれの選択MOSトランジスタ32のソースに接続され、これら単位画素10に共通の信号線をなしている。各列の列信号線40には、列読み出し回路16と電流源42とが、それぞれ接続されている。列読み出し回路16は、単位画素10から読み出された信号を処理するためのものである。列読み出し回路16は、図2に示すように、増幅器44と、アナログデジタル変換部52とを有している。
増幅器44は、演算増幅器(差動増幅器)46と、スイッチ48と、入力容量C0と、負荷容量Cfとを有し、単位画素10の信号を増幅する。演算増幅器46の反転入力端子は、入力容量C0を介して列信号線40に接続されている。演算増幅器46の非反転入力端子には、基準電圧が与えられている。演算増幅器46の反転入力端子と出力端子との間には、負荷容量Cfとスイッチ48とが並列に接続されている。スイッチ48は、制御ノードに印加される信号PC0Rにより駆動される。ここでは、信号PC0Rがハイレベルのときにスイッチ48は導通状態(オン状態)となり、信号PC0Rがローレベルのときにスイッチ48は非導通状態(オフ状態)となる。
アナログデジタル変換部52は、バッファ回路を構成する演算増幅器54と、コンパレータを構成する演算増幅器56とを有している。演算増幅器54の非反転入力端子は、演算増幅器46の出力端子に接続されている。演算増幅器54の反転入力端子は、演算増幅器54の出力端子に接続されている。演算増幅器54の出力端子は、演算増幅器56の非反転入力端子に接続されている。演算増幅器56の反転入力端子は、ランプ信号発生器20に接続されている。演算増幅器56の出力端子には、メモリ18が接続されている。メモリ18には、水平走査回路14と、カウンタ22とが接続されている。
ランプ信号発生器20は、時間と共にレベルが上昇するランプ信号を生成する。演算増幅器56は、演算増幅器54が出力する画素信号とランプ信号発生器20が出力するランプ信号を比較し、画素信号とランプ信号の大小関係が逆転すると、出力信号を反転させる。カウンタ22は、ランプ信号のレベル変化が開始すると、カウンタ値のカウントを開始する。メモリ18は、演算増幅器56の出力信号が反転すると、カウンタ22のカウンタ値を記憶する。このカウンタ値は、デジタルの画素信号である。水平走査回路14は、メモリ18に記憶されている各列のデジタルの画素信号を順次外部に出力する。
図4は、撮像装置1の1フレームの読み出しを示すタイミングチャートである。撮像装置1の駆動方法では、図4に示すように、垂直同期信号VDを基準として、シャッター走査と読み出し走査とを、撮像素子103の行毎に順次行う。シャッター走査では、垂直走査回路12は、行毎に順次、該当する行に属する複数の単位画素10の光電変換素子24A、24Bの保持電荷のリセットを行う。読み出し走査では、垂直走査回路12は、行毎に順次、該当する行に属する複数の単位画素10から光電変換素子24A、24Bの蓄積電荷に基づく信号を読み出す。シャッター走査の開始から読み出し走査の開始までの時間が、光電変換素子24A、24Bへの信号電荷の蓄積期間となる。
図5は、撮像装置1の駆動方法を示すタイミングチャートであり、各行の読み出し動作をより具体的に示す。図5において、上述のシャッター走査の動作は、概ね時刻t1〜時刻t3の期間に該当する。また、上述の読み出し走査の動作は、概ね時刻t10〜時刻t15の期間に該当する。
まず、水平同期信号HDに同期して、時刻t1において、信号PRESがハイレベル、信号PTXA及び信号PTXBがハイレベルとなり、リセットMOSトランジスタ28及び転送MOSトランジスタ26A、26Bがオン状態となる。これにより、光電変換素子24A、24Bの蓄積電荷が転送MOSトランジスタ26A、26B及びリセットMOSトランジスタ28を介して排出される。すなわち、光電変換素子24A、24Bのリセット動作が行われる。このように、本実施形態の駆動方法では、電子シャッターパルスとして信号PRES、信号PTXA及び信号PTXBをハイレベルにすることで光電変換素子24A、24Bを同時にリセットする。電子シャッター駆動を行う場合、上述のように、読み出し走査に先行して単位画素10のリセットを行う。
次に、時刻t2において、信号PTXA及び信号PTXBがローレベルとなり、転送MOSトランジスタ26A、26Bがオフ状態となる。このタイミングで、光電変換素子24A、24Bのリセット動作が終了し、光電変換素子24A、24Bの電荷蓄積期間が開始する。転送MOSトランジスタ26A、26Bがオフ状態となった後、時刻t3において、信号PRESがハイレベルとなり、リセットMOSトランジスタ28がオフ状態となる。これにより、一連のシャッター走査の動作が完了する。
この状態で、光電変換素子24A、24Bへの所定期間の電荷蓄積を行った後、1行毎に若しくは複数行毎に、単位画素10から光電変換素子24A、24Bの蓄積電荷に基づく信号の読み出し、すなわち読み出し走査を行う。水平同期信号HDに同期して、時刻t4において、信号PRESがハイレベルとされ、リセットMOSトランジスタ28がオン状態となる。これにより、増幅MOSトランジスタ30の入力ノードでもあるFD領域34がリセットMOSトランジスタ28を介して電源電圧線に電気的に接続され、増幅MOSトランジスタ30の入力ノードがリセットレベルの電位にリセットされる。同じく時刻t4において、信号PC0Rがハイレベルとされ、スイッチ48が導通状態となる。これにより、演算増幅器46の出力端子と反転入力端子とを短絡して演算増幅器46をバッファ状態とする。
時刻t5において、信号PSELがハイレベルとされ、選択MOSトランジスタ32がオン状態となる。これにより、増幅MOSトランジスタ30は、ソースには列信号線40を介して電流源42からバイアス電流が供給された状態となり、ソースフォロワ回路を構成する。そして、これによって、列読み出し回路16には、増幅MOSトランジスタ30の入力ノードがリセットレベルの電位であるときの信号(リセット信号)が、選択MOSトランジスタ32及び列信号線40を介して出力される。列読み出し回路16に入力されたリセット信号は、入力容量C0を介して、基準電圧の出力をバッファする状態となっている演算増幅器46の反転入力端子に入力される。
時刻t6において、信号PRESがローレベルとなり、リセットMOSトランジスタ28がオフ状態となる。これにより、増幅MOSトランジスタ30の入力ノードのリセット動作を解除する。
時刻t7において、信号PC0Rがローレベルとなり、スイッチ48が非導通状態となる。これにより、演算増幅器46の帰還経路には負荷容量Cfが接続された状態となり、入力容量C0と負荷容量Cfとの比(C0/Cf)によって決定されるゲインに応じて増幅されたリセット信号が、演算増幅器46の出力端子から出力される。
次いで、時刻t10において、信号PTXAがハイレベルとなり、転送MOSトランジスタ26Aがオン状態となる。これにより、電荷蓄積期間に光電変換素子24Aにおいて光電変換によって生成された信号電荷がFD領域34に転送される。そして、列信号線40には、光電変換素子24Aから転送された信号電荷の量に応じた増幅MOSトランジスタ30の入力ノードの電位に基づく画素信号が、選択MOSトランジスタ32を介して出力される。
単位画素10から列信号線40を介して画素信号を列読み出し回路16に出力した後、時刻t11において、信号PTXAがローレベルとなる。演算増幅器46は、単位画素10から入力容量C0を介して入力された画素信号を、入力容量C0と負荷容量Cfとの比(C0/Cf)によって決定されるゲインに応じて増幅し、出力端子から出力する。この画素信号を、以下、「A信号」と表記する。
次いで、時刻t14において、信号PTXBがハイレベルとなり、転送MOSトランジスタ26Bがオン状態となる。これにより、FD領域34には、光電変換素子24Bにおいて光電変換によって生成された信号電荷がFD領域34に転送され、その結果、光電変換素子24A、24Bの信号電荷総量が前記FD領域34に蓄積される。列信号線40には、この光電変換素子24A、24Bの信号電荷の総量に応じた増幅MOSトランジスタ30の入力ノードの電位に基づく画素信号が、選択MOSトランジスタ32を介して出力される。
単位画素10から列信号線40を介して画素信号を列読み出し回路16に出力した後、時刻t15において、信号PTXBがローレベルとなる。演算増幅器46は、単位画素10から入力容量C0を介して入力された画素信号を、入力容量C0と負荷容量Cfとの比(C0/Cf)によって決定されるゲインに応じて増幅し、出力端子から出力する。この画素信号を、以下、「A+B信号」と表記する。A+B信号は、複数の光電変換素子24A及び24Bの電荷に基づくデータが合成されたデータである。
増幅器44から出力されたリセット信号、A信号及びA+B信号は、アナログデジタル変換部52によりデジタル信号に変換された後、メモリ18に蓄積される。メモリ18に蓄積された各列のこれらデジタル信号は、水平走査回路14からの制御信号に従って順次読み出される。列読み出し回路16がアナログデジタル変換部52を有していない場合は、出力アンプ若しくはバッファを通して、各列の信号が順次読み出される。
焦点検出用の信号には、このようにして読み出された光電変換素子24Aの信号電荷に基づくA信号と、光電変換素子24Bの信号電荷に基づくB信号とが用いられる。B信号は、光電変換素子24A及び光電変換素子24Bの信号電荷に基づく信号(A+B信号)からA信号を差し引くことにより算出される。
しかしながら、図5に示すように、A信号を取得する時刻(時刻t10〜時刻t11)と、A+B信号を取得する時刻(時刻t14〜時刻t15)とは、異なっている。また、光電変換素子24Aの信号電荷をFD領域34に転送してから光電変換素子24A、24Bの信号電荷をFD領域34に転送するまでの間に、増幅MOSトランジスタ30の入力ノードのリセットは行われない。このため、A信号を取得するまでの光電変換素子24A、24Bの露光時間と、A+B信号を取得するまでの光電変換素子24A、24Bの露光時間との間には、時間差dtが存在する(図5参照)。したがって、時刻t14〜時刻t15において読み出すA+B信号には、時間差dtの間に増加したFD領域34の暗電流成分が重畳されることになる。
以上は、焦点検出用信号(A信号)と画像形成用信号(A+B信号)とを取得する場合についての説明であるが、2つの焦点検出用信号(A信号及びB信号)を独立して読み出す場合がある。その場合、撮像素子103から取得したA信号とB信号を後程デジタル信号処理で画像形成用信号(A+B信号)に生成する場合と、前記FD領域34で電荷の状態で蓄積して得る場合と、その両方をライン単位で混成してフレーム画像を得る場合がある。その場合には、同様の信号レベル補正が必要である。2つの焦点検出用信号(A信号及びB信号)を独立して読み出す場合には、例えば図6に示すように、最初の1水平周期で光電変換素子24Aの信号電荷から前記A信号を取得し、つづく1水平周期で光電変換素子24Bの信号電荷からB信号を取得する。このようにすることで、A信号、B信号夫々の読み出しに対する増幅MOSトランジスタ30の入力ノードのリセット状態を等しくすることが出来る。図6中の1水平周期中の時刻t4〜t11と、つづく1水平周期中の時刻t4'〜t11’とは、起点となる夫々のHDに対しては同時刻である。A信号及びB信号を夫々読み出して、撮像素子103の後段でデジタル信号処理として画像形成用信号(A+B)を取得することができる。その場合、信号処理回路104内の像データ分離部1040等に、A信号とB信号を合成する手段が必要となり、処理実施時には暗電流成分は2倍に悪化する。
これら図5、図6に記載の読み出し制御によって得た際の暗電流成分の悪影響は、例えばオフセット成分のクランプ処理において横縞の発生原因となり、記録画像の画質を低下させる。本実施形態では、フレームデータ内の黒レベルの異なるラインを含む要因として、撮像面位相差AF向けの駆動・制御を例示しているが、他の要因によるものであっても適用できるものである。
図7は、光電変換素子24A、24Bの信号電荷を同時にFD領域34に取得した場合の、本実施形態の撮像装置1の画像形成用信号読み出し駆動方法を示すタイミングチャートである。時刻t1〜t7の動作は、図5の動作と同じである。そして、時刻t10において、信号PTXA、PTXBがハイレベルとなり、転送MOSトランジスタ26A、26Bがオン状態となる。そして、時刻t11において、信号PTXA、PTXBがローレベルとなり、転送MOSトランジスタ26A、26Bがオフ状態となる。これにより、画像形成用信号(A+B信号)を得ることができる。
ここで、記録用フレームデータを撮像中に、焦点検出用信号(A信号)を取得して、記録動作と合焦制御とを並行して行う場合を考える。このときに、図1の撮像素子103と信号処理回路104との転送帯域を抑えるために、焦点検出用信号(A信号)を全ライン転送しないで任意のラインでのみ転送する制御を考える。図8はそのような制御状態での撮像素子103のフレーム読み出しのデータ状態を示す。図8は、横方向のライン800,801,802等が図5(図6、図7等)の信号HDの1周期中に読み出される1ライン分のデータを表し、それを垂直方向に連続したフレームデータとして表現している。
図8のnライン目(図8の<line n>と記載)から、n+4ライン目(図8の<line n+4>と記載)のデータについて説明する。図8のライン800は、図7に記載の駆動方法で取得された画像形成用信号(A+B信号)の読み出しライン(以下、通常ラインと表記)であり、ライン800のデータは信号処理回路104内のAF用信号処理パスには使用されない。図8のライン801は、図5に記載の駆動方法で取得された焦点検出用信号(A信号)の読み出しライン(以下、第1の視差ラインと表記)であり、AF用信号処理パスを通る信号である。図8のライン802は、図5に記載の駆動方法で取得された画像形成用信号(A+B信号)の読み出しライン(以下、第2の視差ラインと表記)である。
垂直走査回路12は、読み出し手段であり、通常ライン800に対応する単位画素10と、第2の視差ライン802に対応する単位画素10とを異なる駆動方法で読み出す。垂直走査回路12は、図7の駆動方法により、通常ライン800に対応する単位画素10では、複数の光電変換素子24A及び24Bの電荷に基づくデータを合成したA+B信号のみを読み出す。これに対し、垂直走査回路12は、図5の駆動方法により、第2の視差ライン802に対応する単位画素10では、一部の光電変換素子24Aの電荷に基づくA信号と、複数の光電変換素子24A及び24Bの電荷に基づくデータを合成したA+B信号を読み出す。通常ライン800は第1のラインデータであり、第2の視差ライン802は第2のラインデータである。
像データ分離部1040は、第1の視差ライン801のA信号と、第2の視差ライン802のA+B信号とを差分処理し(実際には輝度飽和信号に対する対策等を含む)、B信号を生成して、A信号及びB信号を、AF用信号処理パスに向けて出力する。記録系画像信号としては、像データ分離部1040は、通常ライン800のA+B信号と第2の視差ライン802であるA+B信号とを図1のクランプ処理回路1041へと出力する。このとき、該クランプ処理回路1041が受信するフレームデータは、図9のようになる。
図9は、撮像素子103の画素アレイに対応し、図1のクランプ処理回路1041が受信する処理フレームの状態を示す。フレームデータ900は、クランプ処理回路1041が受信するフレームデータである。領域901は、受光部24を光学的に遮光したOB画素(基準画素)が配置されたOB画素領域(基準画素領域)中の黒レベル推定のための検出領域である。OB画素は、光学的黒画素である。領域902は、光学的に遮光されていない記録画像としての有効画素の領域である。複数の単位画素10は、領域901のOB画素と領域902の有効画素に分けられる。ライン800は、図8の通常ライン800として取得した画像形成用信号(A+B信号)データのラインである。OB画素データ(光学的黒画素データ)810は、通常ライン800の読み出し時の黒レベル推定のための検出領域901中のOB画素(A+B信号)データである。ライン802は、図8の第2の視差ライン802として取得した画像形成用信号(A+B信号)データのラインである。OB画素データ812は、第2の視差ライン802中の黒レベル推定のための検出領域901中のOB画素(A+B信号)データである。
図10は、図9のフレームデータ900の検出領域901において垂直方向に画素信号レベルの一次元写像として求めた抽出黒レベルの例を示す。目標黒レベルは、クランプ処理回路1041でクランプした補正結果がそれに近付くように期待する値である。図10では、フレームデータ900に対して垂直方向のシェーディングの存在を想定して、検出領域901のOB画素データ(黒レベル)として図中の曲線を例示する。また、第2の視差ライン802のOB画素データ(黒レベル)812は、通常ライン800のOB画素データ(黒レベル)810に対して、オフセット段差が存在する。このオフセット段差は、実際の記録画像においても図9のフレームデータ900のように横縞となって画質の低下を招く。
図11は、クランプ処理回路1041の構成例を示す図である。以下、クランプ処理回路1041の信号処理方法を説明する。クランプ処理回路1041は、黒レベル推定のための検出領域901を走査し、OB画素データ810及び812の夫々の黒レベルを推定し、有効領域902の有効画素を補正する。積算器201は、加算器とレジスタを有し、検出領域901の通常ライン800の複数のOB画素データ810の値を積算する。通常ライン800のOB画素データ810の画素の位置認識は、図11のSSG(Synchronous Signal Generator)210の指示による。SSG210は、入力フレームデータの有効状態を計数して、フレーム入力の水平・垂直方向の処理位置を把握する。SSG210は、フレーム状態を把握することで、ライン処理や領域処理の変更のためのイベントやステータス信号を生成・出力する。パラメータのマスク状態(図11中AND素子213、214)及び、出力切替セレクタ209の制御指示以外のSSG210出力信号線は、図が煩雑になるので不図示とする。
除算器202は、積算器201の積算結果値を通常ライン800の複数のOB画素データ810の数で除算することにより正規化する。ここでの除算は、除数が2のべき乗であれば、信号ビットの右シフトで実現できる。除算器202は、OB画素データ810の1ライン分の積算器201の積算結果を除算し、1ライン毎の黒レベル推定値の代表値を得る。本実施形態では、図10のような垂直方向にシェーディングを持つ黒レベル推定として例示する。この場合、垂直シェーディングを鑑み、ライン平均の履歴をある程度の範囲で抑えたいので、図11のクランプ処理回路1041の構成としては、シェーディングの影響を履歴として長引かせないような移動平均値として取得する回路構成を例示する。平均化手段203は、除算器202で得た1ラインの黒レベル代表値を、直前までの各ライン代表値との移動平均をとる。すなわち、平均化手段203は、フレームデータの中の複数の通常ライン800に対して、除算器202により除算されたデータを平均化し、推定の黒レベルsig_203を出力する。積算器201と除算器202と平均化手段203は、第1の黒レベル推定手段であり、通常ライン800の黒レベルsig_203を推定する。
図9の有効領域902における通常ライン800の有効画素データ処理では、以下の処理を行う。減算器204は、補正手段であり、通常ライン800の有効画素データsig_216から平均化手段203が出力する黒レベルsig_203を減算することにより、通常ライン800の補正された有効画素データを出力する。すなわち、減算器204は、平均化手段203が出力する黒レベルsig_203を基に、通常ライン800の有効画素データsig_216を補正する。遅延素子216は、入力データと補正パラメータ更新タイミングとを整合させるための遅延素子であり、シフトレジスタ等で構成される。論理素子213は、SSG210指示により有効領域902中の通常ライン800の時に平均化手段203の結果値を減算器204へと伝達し、それ以外のときには0値にマスクする動作を行うAND素子である。加算器208は、減算器204の出力値に対して、ペデスタルレベルとしてレジスタ212に設定したポストセットアップ値を加算し、通常ライン800の補正された有効画素データsig_208を出力する。
第2の視差ライン802のデータ入力時には、SSG210は、フィルタ回路206の処理を進捗するように指示信号を出力する。フィルタ回路206は、巡回型(IIR)のローパスフィルタ(LPF)を例示し、その時定数はCPU100経由のレジスタ設定で変更できるように構成しても良い。減算器205は、第2の視差ライン802の検出領域901上のOB画素データ812と、平均化手段203が出力するOB画素データ810の黒レベルsig_203との差分sig_205を演算する。そして、減算器205は、その差分(オフセット段差)sig_205をフィルタ回路206へ出力する。フィルタ回路206は、減算器205により演算された差分sig_205を入力し、第2の視差ライン802の黒レベルsig_206を出力する。フィルタ回路206の詳細は、後に図14を参照しながら説明する。遅延素子215、減算器205及びフィルタ回路206は、黒レベル推定手段であり、第2の視差ライン802の黒レベルsig_206を推定する。
有効領域902における第2の視差ライン802の有効画素データ処理では、以下の処理を行う。減算器207は、補正手段であり、第2の視差ライン802の有効画素データsig_217から、フィルタ回路206が出力する黒レベルsig_206を減算し、第2の視差ライン802の補正された有効画素データsig_207を出力する。減算器207は、フィルタ回路206が出力する黒レベルsig_206を基に、第2の視差ライン802の有効画素データsig_217を補正する。論理素子214は、第2の視差ライン802における有効領域902中の有効画素データ処理時に、フィルタ回路206の出力値を減算器207に伝達し、それ以外のときには0値にマスクする動作を行うAND素子である。遅延素子217は、入力データと補正パラメータ更新タイミングとを整合させるための遅延素子であり、シフトレジスタ等で構成される。また、遅延素子215は、入力データを遅延して減算器205に出力する。遅延素子217の遅延量は、遅延素子215の遅延量とフィルタ回路206の遅延量の総和に等しく設定される。また、遅延素子217の遅延量と遅延素子216の遅延量とを等価にすることで、通常ライン800と第2の視差ライン802との切り替え時に水平方向のデータの出現位置は同一となり、フレームデータ900として成立する。また、AND素子213,214は、有効領域902中の切り替えを制御したが、クランプ処理回路1041以降でOB画素データを用いる場合には、検出領域901中のOB画素データに対して直近の値で補正をかけるようなSSG210の構成を採用してもよい。
セレクタ209は、選択手段であり、通常ライン800の補正された有効画素データsig_208又は第2の視差ライン802の補正された有効画素データsig_207を選択する。SSG210は有効データを認識する手段とその認識サイクルを計数する手段を具備(不図示)する。そして、SSG210は、フレームデータ900の入力量を計数し、その計数の値に応じて、通常ライン800のタイミングでは指示値0をセレクタ209に出力し、第2の視差ライン802のタイミングでは指示値1をセレクタ209に出力する。セレクタ209は、指示値0では通常ライン800の補正された有効画素データsig_208を選択し、指示値1では第2の視差ライン802の補正された有効画素データsig_207を選択して、出力sig_209を得る。レジスタ211は、フィルタ回路206の結果値を一時記憶する記憶手段である。レジスタ211は、フィルタ回路206によるOB画素データ812の黒レベル推定値を1フレームの完了時に更新し、次期フレーム走査開始時にフィルタ回路206に初期値として書き戻すように用いる。また、レジスタ211は、CPU100から初期値を更新することも可能である。
図18は、図11のクランプ処理回路1041の処理を示すタイミングチャートである。信号sig_200は、クランプ処理回路1041への入力画像信号であり、図9のフレームデータ900の転送状態である。信号sig_200には、図9のフレーム構成の通常ライン800のOB画素データ810、通常ライン800の画像形成用データ、第2の視差ライン802のOB画素データ812、第2の視差ライン802の画像形成用データを含む。信号sig_201は、積算器201の出力信号であり、検出領域901の右端の処理後は次期ラインの検出開始までは値を保持する。信号sig_202は、除算器202の出力信号であり、信号sig_201を被除数として、事前に決定した除数で除算した結果値を示す。信号sig_201,sig_202は、第2の視差ライン802の走査時には参照しない(don't care扱い)。信号sig_203は、平均化手段203の出力信号であり、任意のラインの検出領域901の完了毎に除算器202の結果の垂直ライン平均値を演算し出力した結果値を示す。信号sig_203は、第2の視差ライン802の走査時には更新しない。
信号sig_206は、フィルタ回路206の出力信号である。信号sig_206は、第2の視差ライン802の走査時に更新する。信号sig_216,sig_217は、前述のような遅延関係を持った信号sig_200の遅延データである。両信号の出力タイミングは揃えられ、図18のように、同一の信号状態となる。信号sig_213,sig_214は、SSG210が発行する補正パラメータマスク用のステータス信号である。信号sig_213は、通常ライン800の画像形成用データにオフセット補正をするように状態を制御する。ここでは、信号sig_213が1値状態で補正パラメータ有効と定義し、信号sig_213が0値状態で補正パラメータは0値にマスクされオフセット補正は行わない。同様に、信号sig_214は、第2の視差ライン802の画像形成用データにオフセット補正をするように状態を制御し、信号sig_213と同様に、0値状態で補正パラメータは0値にマスクされオフセット補正は行わない。
信号sig_208は、通常ライン800の処理時の補正結果信号であり、信号sig_207は、第2の視差ライン802の処理時の補正結果信号である。信号sig_210は、SSG210により生成される補正ラインのスタータス信号である。信号sig_210が1値のときに第2の視差ライン802の走査としてセレクタ209は信号sig_207を信号sig_209として出力し、それ以外では信号sig_208を信号sig_209として出力する。この信号sig_209がクランプ処理回路1041の出力信号になる。
クランプ処理回路1041の黒レベル推定値は、図2の増幅器44のゲイン値の変更時にレベル変動する。図12(a)は、増幅器44のゲイン値1201とそのときの代表黒レベル1202との関係を示す。代表黒レベル1202は、任意に設定した温度環境下での事前に複数取得した工程値の平均値であり、ROM106に保持しておく。増幅器44のゲイン値が切り替わると、フレームを跨いで安定していたフィルタ回路206の黒レベル推定値は、新たな目標値に向かって、回路の時定数に係る時間経過を要して、レベル変動する。時定数分の不安定な期間を短縮するためには、レジスタ211に対して、増幅器44の次期設定ゲイン値に対応した代表黒レベルをCPU100経由で書き込むことで対応する。
ここで、代表黒レベル1202は、事前に設定した任意の温度(常温等)時の代表値である。暗電流起因の黒レベルの温度特性を加味しなければいけないときに、実動作時の撮像素子103の温度と乖離している代表黒レベル1202をそのまま適用するのでは、撮像素子103の温度特性追従を果たさない。そこで、本実施形態の特徴である温度特性追従をするための補償パラメータとして、図12(b)に示すように、増幅器44のゲイン値1203に対する温度補償係数1204〜1208を提供する。ここで、フィルタ回路206における黒レベル推定値の増幅器44のゲイン値変更に対する温度特性追従の継承について説明する。
前述のように、本実施形態では、クランプ処理回路1041の構成、通常ライン800の黒レベル推定は1フレーム完結するように、また、第2の視差ライン802の黒レベル推定は複数フレームで継承するように構成している。黒レベル検出領域901において、第2の視差ライン802は出現頻度が低く、フィルタ回路206はIIRフィルタ構成である。図10の黒レベルはオフセット性の暗電流成分を含み、温度特性(温度上昇で黒レベルも大きくなる)を持つ。
図13は、フィルタ回路206の連続フレーム処理において、CPU100が行う温度補償処理のフローチャートである。温度補償処理は、ROM106に格納されたプログラムの1処理として実施される。本実施形態では、CPU100は、フレーム処理終了時にレジスタ211にフィルタ回路206の黒レベル推定値を格納し、次期フレーム開始時に読み出してフィルタ回路206へ再設定する。このときのレジスタ211の更新及びフィルタ回路206への書き戻しは、SSG210が行えば良い。レジスタ211に対する温度補償用の初期値格納・更新は、SSG210によるレジスタ211値更新からフィルタ206への書き戻しの間に、CPU100がプログラムを実施する。
ステップS100では、CPU100は、次期フレーム撮像における増幅器44のゲイン値の変更があるか否かを判定し、変更があると判定した場合にはステップS101に処理を進め、変更がないと判定した場合には温度補償処理を終了する。ステップS101では、CPU100は、レジスタ211の格納値を読み出す。次に、ステップS102では、CPU100は、現フレーム処理に用いたゲイン値(変更前のゲイン値)1201に対する代表黒レベル1202を図12(a)のテーブルから読み出す。次に、ステップS103では、CPU100は、レジスタ211の値及び代表黒レベル1202の比率ratioを計算する。次に、ステップS104では、CPU100は、増幅器44に設定する次期ゲイン値(変更後のゲイン値)1201に対応した代表黒レベル1202を図12(a)のテーブルから読み出す。
次に、ステップS105〜S115では、CPU100は、温度補償係数の決定処理を実行する。図12(c)は、温度変化指標1209を示し、先程計算した比率ratioの大小関係から現在温度と基準温度との乖離を関係付けたものであり、次期ゲイン値によるフレーム処理時の代表黒レベルの初期値の温度補償係数を推定するのに用いる。本実施形態では、この温度変化指標1209は、センサー製造過程またはセンサー評価過程で取得する工程値である。プロセス上の傾向や、製造上の個体差を鑑みて、数値自体は固定されない。また、ここでは、温度変化指標1209は、div(A)〜div(E)の5領域に分割しているが、これも実情に合わせれば良い。
ステップS105では、CPU100は、比率ratioが温度変化指標div(A)よりも小さいか否かを判定し、小さいと判定した場合にはステップS106に処理を進め、小さくないと判定した場合にはステップS107に処理を進める。ステップS106では、CPU100は、基準黒レベルをそのまま適用するものとして、調整値を1に設定し、ステップS116に処理を進める。調整値は、図12(b)の温度補償係数テーブルからの選択値を差すが、ステップS106の時のみ特別に参照テーブルなしで、1に設定する。
ステップS107では、CPU100は、比率ratioが温度変化指標に対して、div(A)≦ratio<div(B)の条件を満たすか否かを判定する。そして、CPU100は、条件を満たすと判定した場合にはステップS108に処理を進め、条件を満たさないと判定した場合にはステップS109に処理を進める。ステップS108では、CPU100は、調整値として、図12(b)の温度補償係数1204のうちの次期ゲイン値1203に対応する値を設定し、ステップS116に処理を進める。
ステップS109では、CPU100は、比率ratioが温度変化指標に対して、div(B)≦ratio<div(C)の条件を満たすか否かを判定する。そして、CPU100は、条件を満たすと判定した場合にはステップS110に処理を進め、条件を満たさないと判定した場合にはステップS111に処理を進める。ステップS110では、CPU100は、調整値として、図12(b)の温度補償係数1205のうちの次期ゲイン値1203に対応する値を設定し、ステップS116に処理を進める。
ステップS111では、CPU100は、比率ratioが温度変化指標に対して、div(C)≦ratio<div(D)の条件を満たすか否かを判定する。そして、CPU100は、条件を満たすと判定した場合にはステップS112に処理を進め、条件を満たさないと判定した場合にはステップS113に処理を進める。ステップS112では、CPU100は、調整値として、図12(b)の温度補償係数1206のうちの次期ゲイン値1203に対応する値を設定し、ステップS116に処理を進める。
ステップS113では、CPU100は、比率ratioが温度変化指標に対して、div(D)≦ratio<div(E)の条件を満たすか否かを判定する。そして、CPU100は、条件を満たすと判定した場合にはステップS114に処理を進め、条件を満たさないと判定した場合にはステップS115に処理を進める。ステップS114では、CPU100は、調整値として、図12(b)の温度補償係数1207のうちの次期ゲイン値1203に対応する値を設定し、ステップS116に処理を進める。ステップS115では、CPU100は、div(E)≦ratioであるので、調整値として、図12(b)の温度補償係数1208のうちの次期ゲイン値1203に対応する値を設定し、ステップS116に処理を進める。
ステップS116では、CPU100は、次期フレーム処理のためのフィルタ回路206に設定する調整黒レベルとして、増幅器44の次期ゲイン値1201に対応する代表黒レベル1202と、ステップS105〜S115で求めた調整値との積を演算する。すなわち、CPU100は、制御手段であり、比率ratioに応じた調整値で、増幅器44の次期ゲイン値1201に対応する代表黒レベル1202を調整する。次に、ステップS117では、CPU100は、制御手段であり、ステップS116の演算結果の黒レベルをレジスタ211に書き込み、温度補償処理を終了する。本実施形態では、上記の処理を1フレーム撮像完了毎に実施する。本実施形態では、温度変化を代表黒レベル1202と、現レジスタ211の値との比率ratioで求めたが、温度変化が緩やかであり、ゲイン設定毎の変化が少ない場合には、両者の差で行っても良い。
図11の積算器201は、レジスタ構成であり、指定領域の有効データをレジスタ値に積算する。また、図11の除算器202は、その構成を限定しないが、例えば検出領域901の水平方向画素数(積算画素数)が2のべき乗であれば、信号に対するビットシフトだけで構成可能である。2のべき乗ではなく、厳密な除算をする場合には、特開2013−142570号公報の図3に記載のような除算器で対応できる。そのような場合、同期回路における除算処理には複数サイクルを要するので、例えば、図11に記載の遅延素子の遅延因子としてタイミング調整を考慮する対象となる。
図11のフィルタ回路206は、IIRフィルタとして一般的な構成で良いが、本実施形態では、レジスタ211の値による初期化を含むので、その説明をする。図14は、図11のフィルタ回路206の構成例を示す。IIRフィルタ206の一般式としては、入力X、出力Yに対して、任意のn番目の処理は、次式(1)で表され、式(1)を展開すると、次式(2)が得られる。入力Xは差分sig_205であり、出力Yは黒レベルsig_206である。
Yn=A・Xn+(1−A)・Yn−1 ・・・(1)
Yn=A・(Xn−Yn−1)+Yn−1 ・・・(2)
図14のフィルタ回路206は、式(2)に対応した回路である。図14の加算器303は、式(2)の加算ための加算器である。乗算器304は、係数Aをゲイン値とする乗算器である。減算器305は、式(2)の減算のための減算器である。レジスタ301は、フリップフロップ回路で構成される。レジスタ301は、クロックによる同期設計で例示する。論理素子302は、レジスタ301をリセットするためのANDゲートであり、信号sig_306が1値となったときに、クロックに同期してレジスタ301を0値に初期化する。組み合わせロジック307は、信号sig_304が1値となったときに信号sig_211の値でレジスタ301を更新する。すなわち、レジスタ301は、信号sig_304が1値となったときに、レジスタ211の黒レベルsig_211の値に更新される。組み合わせロジック306は、信号sig_306=sig_304=0値であり、かつ信号sig_303が1値の場合に、レジスタ301を入力sig_205に対して演算した値で更新する。信号sig_205,sig_206,sig_211は、図11の信号に等しい。信号sig_303,sig_304,sig_306は、図11に不図示である。以上のように、フィルタ回路206は、減算器205が出力する差分sig_205とレジスタ211に記憶されている黒レベルsig_211を基に、第2の視差ライン802の黒レベルsig_206を出力する。
図15は、上記の信号sig_205,sig_206,sig_211,sig_303,sig_304,sig_306のタイミングチャートである。前述のように、図14のフィルタ回路206は、クロックによる同期設計で例示する。図15のタイミングチャートでは、クロック表記を省略しているが、各信号はクロック同期した同相転送が成立しているものとする。
信号sig_206は、レジスタ301の出力信号である。信号sig_206は、信号sig_306が1値になったクロック周期で初期化(reset)される。また、フィルタ回路206の出力値を記憶するレジスタ301は、初期化時及びレジスタ211の更新(増幅器44のゲイン値の変更)時の信号sig_304が1値になったクロック周期で、レジスタ211の黒レベルsig_211の値に更新される。信号sig_211の値は、図11のレジスタ211の出力値である。レジスタ301は、信号sig_303が1値のときのクロック周期で、そのときの入力信号sig_205の値と、現在のレジスタ301の値との、式(2)の演算を実施した結果値で更新される。
以上のように、フレームデータ900は、通常ライン800の数が第2の視差ライン802の数より多い。積算器201と除算器202と平均化手段203は、フレームデータ900の中の複数の通常ライン800に基づき、通常ライン800の黒レベルsig_203を出力する。これに対し、遅延素子215と減算器205とフィルタ回路206は、複数のフレームデータ900の第2の視差ライン802に基づき、第2の視差ライン802の黒レベルsig_206を出力する。
図11の平均化手段203の構成は、一般的ではないので、図16を用いて説明する。図16は、平均化手段203のデジタル回路の構成例を示し、図17はそのタイミングチャートを示す。本実施形態では、平均化手段203もシステム(少なくともクランプ処理回路1041)共通のクロックによる同期設計とする。
レジスタ501〜508は、シフトレジスタ構成を有し、1ライン分の検出処理完了時の黒レベル推定代表値を1ライン検出処理完了時に更新していく。本実施形態では、平均化手段203は、8ラインの移動平均を演算するような回路構成として例示する。図16の信号sig_202は、図11の除算器202の出力値である。図16の信号sig_203は、平均化手段203の出力としての黒レベル推定値の垂直8ライン移動平均値である。
図16の信号sig_503は、検出領域901における1ライン処理完了後のイベント信号であり、除算器202の結果値が有効であることを示す。図16の信号sig_504は、8ライン平均計算時のシフトレジスタ501〜508の結果出力を選択するためのカウンタ値である。図16の信号sig_505は、シフトレジスタ501〜508の値を積算する期間を示すステータス信号である。図16の信号sig_506は、移動平均結果を更新するイベント信号である。信号sig_507は、回路全体のレジスタの初期化を行うリセット信号である。図16の信号sig_508〜sig_515は、シフトレジスタ501〜508のレジスタ値の夫々の保持値である。図16の信号sig_516は、シフトレジスタ値の信号sig_508〜sig_515の中の1つの選択結果信号である。図16の信号sig_517は、シフトレジスタ値の信号sig_508〜sig_515の積算結果値である。これら信号値は、図17に示すようなタイミング関係を持つ。
信号sig_503,sig_504,sig_505,sig_506,sig_507は、図11では不図示であり、図11のSSG210中でのフレームカウンタの状態からのイベント発生により生成される。また、リセット信号sig_507は、フレーム処理開始前に一度イベントを発生すれば良いので、CPU100からのレジスタ(不図示)設定値を投入しても良い。
信号sig_503は、前述のように、検出領域901の任意の1ライン完了イベントである。信号sig_505は、上記のsig_503のイベントを受けてからクロック8サイクル分の周期を得るステータス信号である。また、信号sig_505が1値状態の期間、信号sig_504のカウンタ値は1インクリメントされていき、セレクタ509の出力値選択切替を実施する。この信号sig_504を生成するカウンタ(不図示)及びsig_505の生成ロジックは、SSG210内にあっても良いし、クランプ処理回路1041中にあっても良い。
図16の加算器510は、レジスタ511に信号sig_508〜sig_515の値を積算していくために用いられる。このときの積算タイミングは、図16の信号sig_505によって与えられる(図17の信号sig_505参照)。レジスタ511は、回路全体のリセット信号sig_507による他、信号sig_503によっても初期化(0値)される(図17の信号sig_517参照)。レジスタ511に格納された信号sig_508〜sig_515の積算結果の信号sig_517は、本実施形態では、8ライン分の移動平均として例示する。そのため、信号sig_517は、1/8の演算として、信号を下位3ビット切り捨てして(図16の「R3」は右3ビットシフトを示す)、信号sig_506のタイミングで図16のレジスタ512に格納する(図17の信号sig_203参照)。
また、本実施形態では、フィルタ回路206をIIRフィルタで実施するように設定した。この場合、検出領域901中のOB画素データ812の右端値がライン平均と乖離したような場合(微小キズ画素に当たった等)に、そのラインの黒レベル推定値に影響を及ぼす。そのような場合を回避するためのクランプ処理回路1041を図19に示す。図19に示すように、クランプ処理回路1041は、フィルタ回路206の入力を通常ライン800の黒レベル推定値と、第2の視差ライン802のライン平均との差分で演算するようにする構成を有する。図19の積算器219は、図11の積算器201と同様の積算器である。図19の除算器220は、図11の除算器202と同様の除算器である。図19の遅延素子218の遅延量は、遅延素子218、積算器219、除算器220及びフィルタ回路206の夫々の遅延量の総和が、図19の遅延素子217の遅延量と等しくなるように設定される。
本実施形態によれば、通常ライン800と第2の視差ライン802との間のオフセット段差を含むようなフレームデータ処理においても、オフセット段差の温度特性に追従することができ、安定したオフセット補正を実現可能である。クランプ処理回路1041は、通常ライン800の黒レベルsig_203と第2の視差ライン802の黒レベルsig_206をそれぞれ推定し、通常ライン800及び第2の視差ライン802の有効画素データを補正する。これにより、横縞の発生を抑制することができる。また、クランプ処理回路1041は、第2の視差ライン802の黒レベル推定を多くのフレームから得た信号に基いて継続して実施することで、オフセット段差の温度特性に追従することができ、安定したオフセット補正を行うことができる。
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。