(実施の形態1)
図1は、本発明の実施の形態1の固体撮像装置の全体構成を示したブロック図である。固体撮像装置は、撮像レンズ101、撮像素子102、撮像素子制御部103、画像信号処理部104、及び全体制御部105を備えている。
撮像レンズ101は、被写体からの反射光を入射光として撮像素子102に導く。撮像素子102は、入射光を露光し、入射光に応じた画像信号を生成し、画像信号処理部104に出力する。画像信号処理部104は、画像信号に種々の画像処理を施し、出力画像106として出力する。撮像素子制御部103は、撮像素子102に、クロック信号や画素制御信号を生成するための波形データを入力し、撮像素子102を制御する。全体制御部105は、画像信号処理部104や撮像素子制御部103と種々の情報を送受し、固体撮像装置の全体を制御する。
図2は、図1に示す撮像素子102の構成図である。撮像素子102は、画素アレイ201、タイミングジェネレータ(以下、「TG」と記述する。)202、Vスキャナ203(垂直走査回路の一例)、カラムADCアレイ204(読出アレイの一例)、Hスキャナ205、センスアンプ206、及びLVDSシリアライザ211を備える。
画素アレイ201は、複数行×複数列でアレイ状に配列された複数の画素を備える。また、画素アレイ201は、各行が1以上の画素からなる画素ブロックに分けられている。具体的には、1つの画素ブロックは、画素アレイ201を列方向に所定画素数ずつ区切ることで得られる列ブロックを構成する1行の画素により構成される。
例えば、画素アレイ201が8行×8列の画素で構成されているとすると、画素アレイ201を列方向(水平方向)に2画素ずつ区切った場合、8行×2列の画素からなる4つの列ブロックが得られる。この場合、1つの列ブロックの各行は、2個の画素により構成される。したがって、画素アレイ201は、2個の画素からなる1の画素ブロックが8行4列で配列された画素ブロックから構成される。
なお、各列ブロック同士において、列方向の画素数は等しくなくてもよい。例えば、8行×8列の画素アレイ201を、列方向に、1画素、2画素、3画素、2画素ずつで区切ることで1つの列ブロックは構成されてもよい。
TG202は、クロック信号に基づいて同期信号を生成し、Vスキャナ203、カラムADCアレイ204、Hスキャナ205、及びリセットパルス制御部210のそれぞれに同期信号を出力し、これらのブロックの動作を同期させる。
Vスキャナ203は、画素アレイ201を駆動するための画素制御信号を、一定期間ずつずらして画素アレイ201の各行にサイクリックに出力し、画素アレイ201を垂直走査する。ここで、Vスキャナ203は、1行目から最終行目に向けて順次に画素アレイ201を垂直走査してもよいし、最終行目から1行目に向けて順次に画素アレイ201を垂直走査してもよい。
画素制御信号としては、PDリセット信号、FDリセット信号、及び行選択信号等が含まれる。PDリセット信号は、画素を構成する光電変換素子(以下、「PD」と記述する。)に蓄積された電荷をリセットするリセットパルスを1垂直期間にN(Nは2以上の整数)個含む信号である。ここで、1垂直期間は、ある1の画素が1フレームの画素信号を得るのに要する時間であり、露光時間及び読出期間に大きく区切られる。
FDリセット信号は、画素を構成するフローティングディフュージョン(以下、「FD」と記述する。)をリセットするための信号である。行選択信号は、画素からカラムADCアレイ204に画素信号を出力させるための信号である。
カラムADCアレイ204は、画素アレイ201の各列に設けられた垂直信号線L1を介して画素アレイ201と接続され、画素アレイ201から画素信号を読み出す。カラムADCアレイ204は、画素アレイ201の各列に対応して設けられた複数のアナログデジタルコンバーター(以下、「ADC204a」と記述する。)により構成されている。
ADC204aは、画素アレイ201から出力された画素信号を所定ビット(例えば、8ビット)のデジタル信号にAD変換する。
具体的には、ADC204aは、相関二重サンプリング回路、AD変換回路、及びサンプルホールド回路を備える。相関二重サンプリング回路は、1フレームの読出期間において、画素から出力されるノイズレベルの画素信号とノイズ+シグナルレベルの画素信号とを相関二重サンプリングしてノイズレベルを相殺してシグナルレベルの画素信号を取り出す。サンプルホールド回路は、ノイズレベルの画素信号をサンプルホールドする。AD変換回路は、シグナルレベルの画素信号を所定ビット(例えば、8ビット)のデジタルの画素信号にAD変換する。ここで、AD変換回路としては、例えば、アナログの画素信号をランプ波形と比較してAD変換するシングルスロープ型のADCが採用される。但し、これは一例であり、AD変換回路としては、シングルスロープ型以外のADC(例えばダブルスロープ型のADC)を採用してもよい。
Hスキャナ205は、カラムADCアレイ204を水平走査し、各列のADC204aが保持するデジタルの画素信号を順次に出力させる。
センスアンプ206は、カラムADCアレイ204から出力されるデジタルの画素信号の波形を成形し、露光時間設定部207及び補正部208に出力する。LVDSシリアライザ211は、補正部208により補正され、パラレルで出力された画素信号をシリアルの画素信号に変換して画像信号処理部104(図1参照)に出力する。
また、本実施の形態では、上記の構成に加えて、撮像素子102は、露光時間設定部207、補正部208、露光時間管理部209、及びリセットパルス制御部210を更に備えている。これにより、画素ブロック毎に最適な露光時間が制御され、HDR画像が得られる。
露光時間設定部207は、センスアンプ206からある1の行のある1の画素ブロック(以下、「画素ブロックB(X、Y)」と記述する。)の画素信号が出力されると、その画素信号からその画素ブロックB(X、Y)の次フレームの最適な露光時間を設定し、設定した露光時間を示す露光時間情報SS(X、Y)を露光時間管理部209に出力する。以下、画素アレイ201のうち、画素ブロックB(X、Y)を取り上げて説明するが、他の画素ブロックも画素ブロックB(X、Y)と同様の処理が行われる。
露光時間管理部209は、露光時間設定部207から出力された露光時間情報SS(X、Y)を記憶する。そして、露光時間管理部209は、画素ブロックB(X、Y)の次フレームの露光が開始される際に、露光時間情報SS(X、Y)に基づいてパルス選択情報SPを生成し、リセットパルス制御部210に出力する。
本実施の形態では、1垂直期間のPDリセット信号に含まれるN(2以上の整数)個のリセットパルスから1又は複数のリセットパルスを選択することで、露光時間が設定される。そこで、露光時間管理部209は、N個のリセットパルスの中から画素ブロックB(X、Y)が選択するべきリセットパルスを決定し、決定したリセットパルスを示すパルス選択情報SPを生成して、リセットパルス制御部210に出力する。
リセットパルス制御部210は、露光時間管理部209から出力されたパルス選択情報SPを基に、選択信号を生成する。リセットパルス制御部210は、画素アレイ201の各列ブロックに対応して設けられた制御線L2を介して画素アレイ201と接続されている。選択信号は、この制御線L2を介して画素アレイ201に供給される。
画素ブロックB(X、Y)は、リセットパルス制御部210から供給される選択信号とVスキャナ203から供給されるPDリセット信号とを用いて、画素ブロックB(X、Y)のPDをリセットする。
補正部208は、センスアンプ206から画素ブロックB(X、Y)の画素信号が出力されると、露光時間情報SS(X、Y)を露光時間管理部209から読み出し、露光時間情報SS(X、Y)が示す露光時間に応じた補正処理を当該画素信号に実行し、画像信号処理部104に出力する。
以上の構成により、撮像素子102は以下のように動作する。Vスキャナ203によりX行目の画素信号を読み出すために画素アレイ201のX行目が選択されると、X行目の全列の画素は、まず、ノイズレベルの画素信号を一斉にカラムADCアレイ204に出力し、次に、シグナルレベルの画素信号を一斉にカラムADCアレイ204に出力する。
次に、カラムADCアレイ204は、X行目のノイズレベルの画素信号とノイズ+シグナルレベルの画素信号とからノイズレベルを相殺してシグナルレベルの画素信号を取り出す。次に、カラムADCアレイ204は、シグナルレベルの画素信号をAD変換し、サンプルホールドする。次に、Hスキャナ205は、カラムADCアレイ204を水平走査して、X行目の各列の画素信号を順次に出力する。
カラムADCアレイ204から順次に出力された画素信号は、センスアンプ206を介して露光時間設定部207及び補正部208に入力される。補正部208は、画素信号が入力されると、その画素信号に対応する露光時間情報SSを露光時間管理部209から読み出し、露光時間情報SSが示す露光時間に応じた係数を乗じ、LVDSシリアライザ211を介して画像信号処理部104に出力する。
一方、露光時間設定部207は、順次に入力されるX行目の画素信号からX行目の画素ブロック毎に次フレームの最適な露光時間を設定し、露光時間情報SSを露光時間管理部209に記憶させる。
図3は、図2に示した撮像素子102の変形例を示した図である。図2では、撮像素子102を構成する各ブロックが同じチップ上に配置していた。図3では、各ブロックが第1チップ301及び第2チップ302に分散して配置されている。第1チップ301には、画素アレイ201、TG202、Vスキャナ203、カラムADCアレイ204、Hスキャナ205、及びセンスアンプ206が配置されている。また、第1チップ301には、更にLVDSシリアライザ311が配置されている。
第2チップ302には、露光時間設定部207、補正部208、及び露光時間管理部209が配置されている。また、第2チップ302には、LVDSデシリアライザ312及び画像信号処理部104が更に配置されている。
図3の撮像素子102を採用した場合、第1チップ301は図1に示す撮像素子102により構成され、第2チップ302は図1に示す画像信号処理部104を含むチップにより構成される。
第1チップ301では、カラムADCアレイ204でAD変換された画素信号は、センスアンプ206及びLVDSシリアライザ311を介して第2チップ302に出力される。
第2チップ302に入力された画素信号は、LVDSデシリアライザ312でパラレルの信号に変換されて露光時間設定部207に出力される。その後、図2と同様、露光時間設定部207で最適な露光時間が設定され、その露光時間を示す露光時間情報SSが露光時間管理部209に記憶される。
また、LVDSデシリアライザ312から出力された画素信号は、補正部208にも入力され、補正処理が実行され、画像信号処理部104に出力される。
また、第2チップ302に配置された露光時間管理部209は、リセットパルス制御部210に適切なタイミングでパルス選択情報を出力する。このように、図3の構成においても図2と同様の機能が達成される。
図4は、画素アレイ201を構成するある1の画素の回路図である。画素は、PD、5つのトランジスタQ1〜Q5を備える。トランジスタQ1〜Q5は、例えばnチャネル型MOSトランジスタにより構成されている。トランジスタQ1(電荷転送ゲートの一例)は、PDに蓄積された電荷をFDに転送する転送トランジスタである。トランジスタQ2は、FDをリセットするリセットトランジスタである。トランジスタQ2は、RST配線を介してFDリセット信号RSTがゲート端子に入力され、FDリセット信号RSTにしたがって、FDをリセットする。トランジスタQ3は、FDの電位に応じた画素信号を増幅する増幅トランジスタである。トランジスタQ4は、トランジスタQ3により増幅された画素信号VDを垂直信号線L1に出力する行選択トランジスタである。トランジスタQ4は、VSEL配線を介して行選択信号VSELがゲート端子に入力され、行選択信号VSELにしたがって、画素信号VDを出力する。電源VPIXは、トランジスタQ2、Q3と接続され、画素に電力を供給する電源回路である。
PD及びトランジスタQ1〜Q4は、埋め込み型のPDを用いたCMOSセンサの通常の画素構成である。本実施の形態では、この通常の画素構成にトランジスタQ5及び制御線L2が更に追加されている。
通常の画素構成では、TX配線はトランジスタQ1のゲート端子に接続されているが、本実施の形態では、TX配線はトランジスタQ5のゲート端子(第2端子の一例)に接続されている。また、トランジスタQ5のドレイン端子(第1端子の一例)には、制御線L2が接続され、ソース端子(第3端子の一例)にはトランジスタQ1のゲート端子が接続されている。
トランジスタQ5は、TX配線を介して供給されるPDリセット信号TXと、制御線L2を介して供給される選択信号HSELとの両方がHiになった時にONになり、トランジスタQ1をONする。これにより、トランジスタQ1はPDに蓄積された電荷をFDに転送し、PDをリセットする。
従来の画素構成では、TX配線が直接、トランジスタQ1に接続されていたため、同一行において、画素ブロック毎にPDのリセットタイミングを変更することができなかった。本実施の形態では、従来の画素構成に対してトランジスタQ5を更に接続することで、同一行において、画素ブロック毎にPDのリセットタイミングを変更できるようにした。
なお、1本の制御線L2は、画素アレイ201を構成する1列の画素で共用されている。つまり、図4の画素構成では、1の画素ブロックを1画素で構成し、画素単位で露光時間の調整が可能である。また、図4の画素構成では、1の画素ブロックを同一行の隣接する2画素、3画素、・・・というように任意の画素数で構成することもできる。
図5は、図4に示した画素構成の変形例を示す回路図である。図5では、同一行において左右に隣接する2つの画素で1つの画素ブロックが構成されている。そのため、図5では、これら2つの画素に対して1本の制御線L2と、1個のトランジスタQ5とが追加されている。具体的には、トランジスタQ5はドレイン端子が制御線L2に接続され、ソース端子が左右のトランジスタQ1、Q1のゲート端子に接続されている。
図5の画素構成では、PDのリセットタイミングを左右の2画素で変更することはできないが、1画素に占めるトランジスタ数及び配線数を図4の画素構成よりも少なくできる。そのため、図5の画素構成を採用すると、1画素におけるPDの面積を、図4の場合よりも大きくでき、高感度な画素特性が得られる。
図5の画素構成では、左右の2画素で制御線L2及びトランジスタQ5が共用されているため、画素ブロックを最低2画素で構成する必要があり、画素単位での露光時間の調整はできない。但し、同一行の隣接する4画素、6画素、・・というように、同一行の隣接する偶数個の画素で1の画素ブロックを構成することはできる。
また、図5の構成では、1つの行において隣接する左右の2画素で制御線L2及びトランジスタQ5を共用させたが、本実施の形態はこれに限定されない。例えば、1つの行において隣接する2つ以外のk個(k=3、4、5、・・・)の画素で制御線L2及びトランジスタQ5は共用されてもよい。この場合、1つの行において1つの画素ブロックは少なくともk個の画素で構成される必要がある。
図6は、画素アレイ201、Vスキャナ203、カラムADCアレイ204、及びリセットパルス制御部210の接続関係を示した図である。Vスキャナ203は、行毎にTX配線、RST配線、及びVSEL配線が設けられ、行単位で各画素と接続されている。例えば、1行目のTX配線であるTX(1)配線、RST(1)配線、及びVSEL(1)配線は、1行目の全列の画素P11〜P1mと接続され、2行目のTX(2)配線、RST(2)、及びVSEL(2)配線は、2行目の全列の画素P21〜P2mと接続されている。
垂直信号線L1は、同一列の画素で共有され、カラムADCアレイ204と接続されている。例えば、1列目の垂直信号線L1(1)は、1列目の全行の画素P11〜Pn1と接続され、2列目の垂直信号線L1(2)は、2列目の全行の画素P12〜Pn2と接続されている。
また、各画素には、垂直信号線L1とは別に垂直方向に制御線L2が接続されている。制御線L2も、垂直信号線L1と同様、同一列の画素で共有化され、リセットパルス制御部210に接続されている。例えば、例えば、1列目の制御線L2(1)は1列目の全行の画素P11〜Pn1と接続され、2列目の制御線L2(2)は2列目の全行の画素P12〜Pn2と接続されている。
図7は、図6に示す接続関係を持つ固体撮像装置のタイミングチャートである。図7では、図6に示す画素アレイ201の1行目の1列目〜4列目の画素P11〜P14の露光時間を、それぞれ、T1〜T4に設定した場合が示されている。露光時間T1は、設定しうる最大の露光時間である。露光時間T2、T3、T4は、それぞれ、T1/2、T1/4、T1/8である。
図7において、タイミングM3からM10までが1フレームの最大の露光時間T1である。また、以下、PDリセット信号TXをTX、FDリセット信号RSTをRST、行選択信号VSELをVSEL、選択信号HSELをHSELと略して記述する。また、TX、RST、VSELの括弧内の数値は何行目であるかを示すインデックスである。また、HSELの括弧内の数値は何列目であるかを示すインデックスである。また、RST(1)が前フレームの画素信号を読み出すためにOFFしてから、次フレームの画素信号を読み出すためにOFFするまでの期間が1垂直期間(1V期間)である。
TX(1)は1V期間の間に4回(M3、M6、M7、M8)アクティブとなっている。つまり、TX(1)は1V期間に4つのリセットパルスPR1〜PR4が設けられている。以下、図7AのタイミングM1からM12までの順で固体撮像装置の動作を説明する。
M1:画素アレイ201の1行目の(N−1)フレーム目の露光期間の終了間際のタイミングを示す。
M2:(N−1)フレーム目の画素信号の読み出しが開始されている。RST(1)がLoになり、VSEL(1)がHiになり、FDの電位がノイズレベルの画素信号として垂直信号線L1を介して、カラムADCアレイ204に読み出される。読み出されたノイズレベルの画素信号は、カラムADCアレイ204のサンプルホールド回路によって、サンプルホールドされる。
M3:VSEL(1)がLo、TX(1)がHi、HSEL(1)〜HSEL(4)の全てがHiとされ、画素P11〜P14のトランジスタQ1がONし、PDの電荷がFDに転送される。
M4:TX(1)がLo、VSEL(1)がHiになり、FDの電位がノイズ+シグナルレベルの画素信号として垂直信号線L1を介して、カラムADCアレイ204に読み出される。読み出されたノイズ+シグナルレベルの画素信号は、M2で読み出されたノイズレベルの画素信号と相関二重サンプリング処理されて、ノイズ成分がキャンセルされ、シグナルレベルの画素信号が得られる。
M5:Nフレーム目の露光中のあるタイミングを示す。露光中では、RST(1)がHiにされFDが常時リセットされる。
M6:TX(1)がHi、HSEL(2)がHiになり、TX(1)配線と制御線L2(2)とが接続されている画素P12のPDのみがリセットされる。画素P12の露光時間はタイミングM6〜M10となる。
M7:TX(1)がHi、HSEL(3)がHiになり、TX(1)配線と制御線L2(3)とが接続されている画素P13のPDのみがリセットされる。P13画素の露光時間は、タイミングM7〜M10となる。
M8:TX(1)がHi、HSEL(4)がHiになり、TX(1)配線と制御線L2(4)が接続されている画素P14画素のPDのみがリセットされる。画素P14の露光時間は、タイミングM8〜M10となる。
M9:Nフレーム目のノイズレベルの画素信号が読み出される。詳細はタイミングM2と同じである。
M10:画素P11〜14のPDに蓄積された電荷が一斉にFDに転送される。詳細はタイミングM3と同じである。但し、画素毎に露光時間が異なっている。画素P11は、タイミングM3以降PDがリセットされていないので、露光時間は最大の露光時間であるT1となる。画素P12から画素P14はそれぞれ異なるタイミングでPDがリセットされているので、それぞれ露光時間が異なっている。
画素P12はタイミングM6でPDがリセットされて以降、タイミングM10までPDがリセットされていないため、露光期間がT2となる。画素P13はタイミングM7でPDがリセットされて以降、タイミングM10までPDがリセットされていないため、露光時間がT3となる。画素P14はタイミングM8でPDがリセットされて以降、タイミングM10までPDがリセットされていないため、露光時間がT4となる。
以上のように、本実施の形態では、1V期間にVスキャナ203から出力される4個のリセットパルスPR1〜PR4が、リセットパルス制御部210から出力される選択信号HSELによって画素ブロック毎に選択されるため、画素ブロック毎に露光時間を変更することができる。
また、画素信号の読み出しは通常のCMOSセンサと全く同じ行順次読み出しであるので、一般的に用いられているカラムADC等の読み出し回路をそのまま使用することができる。
図7では、画素アレイ201の1行目のみを説明したが、本実施の形態では固体撮像装置を行順次読み出しでローリングシャッター駆動させる。そこで、本実施の形態の固体撮像装置は、図9に示すシーケンスで動作する。
図9は、画素アレイ201の1行目から3行目と1列目から3列目までの3行×3列の画素(画素P11〜画素P33)を、それぞれ、図8に示す露光時間で駆動させる場合のタイミングチャートである。以下では、画素ブロックは1つの画素で構成されている。図8は、図6に示す画素アレイ201の1行目から3行目と1列目から3列目までの3行×3列の画素のそれぞれに設定された露光時間を示す図である。
図8の例では、画素P11、P31の露光時間がT1に設定され、画素P12、P23、P32の露光時間がT2に設定され、画素P13、P22、P33の露光時間がT3に設定され、画素P21の露光時間がT4に設定されている。
RST(1)、TX(1)、VSEL(1)は、1行目の画素アレイ201にVスキャナ203から供給されている信号である。ローリングシャッター駆動するために、2行目のRST(2)、TX(2)、及びVSEL(2)は、それぞれ、1行目のRST(1)、TX(1)、及びVSEL(1)よりも1水平期間(1H期間)遅れている。また、3行目のRST(3)、TX(3)、及びVSEL(3)も、それぞれ、2行目のRST(2)、TX(2)、及びVSEL(2)よりも1H期間遅れている。ここで、1H期間は、RSTがLoとなる期間である。RSTがLoの期間は画素信号が読み出される読出期間である。また、1の行に出力されるTXは、1のリセットパルスがいずれかの行の読出期間に位置するような波形を持っている。
ローリングシャッター駆動では、ある行の読出期間において、他の行は露光中となる。つまり、図7で示す画素信号の読み出しが行順次で行なわれているため、1列に1本しかない制御線L2を、同じ列の画素はタイムシェアして使用する必要がある。
そこで、本実施の形態では、各行の読出期間において、リセット期間RTを設けた。そして、リセット期間RTをリセットパルスPR1〜PR4に対応する4つのスロットに区切った。そして、リセットパルスPR1〜PR4がリセット期間RTにおいて対応するスロットに位置するようにTXが生成されている。
図9において、1行目の読出期間に設けられたリセット期間RTはRT(1)、2行目の読出期間に設けられたリセット期間RTはRT(2)、・・・というようにリセット期間RTが表されている。なお、図9の例では、1〜3行目までの例示であるため、4行目以降の駆動については、図示が省略されている。但し、説明の便宜上、4行目以降の読出期間があると仮定して、リセット期間RT(4)〜RT(6)を記載している。
TX(1)に注目すると、リセット期間RT(1)では、1スロット目にリセットパルスPR1が立てられ、リセット期間RT(4)では、2スロット目にリセットパルスPR2が立てられ、リセット期間RT(5)では、3スロット目にリセットパルスPR3が立てられ、リセット期間RT(6)では、4スロット目にリセットパルスPR4が立てられている。
一方、リセット期間RT(1)を縦方向に見ると、TX(2)は、4スロット目にリセットパルスPR4が立てられ、TX(3)は、3スロット目にリセットパルスPR3が立てられている。このように、リセット期間RT(1)において、TX(1)、TX(2)、TX(3)のいずれの信号においても、リセットパルスPR1〜PR4は時間的に重なっていない。この関係は、他のリセット期間RT(2)、RT(3)、・・・においても維持されている。
これらTX(1)、TX(2)、TX(3)と、HSEL(1)、HSEL(2)、HSEL(3)とは、各画素内で論理積がとられ、PDをリセットするか否かが選択される。
例えば、リセット期間RT(1)の1スロット目に着目すると、HSEL(1)〜HSEL(3)は、全てパルスが立てられ、TX(1)もリセットパルスPR1が立てられている。そのため、1行目の画素P11〜P13は、PDをリセットする。これにより、画素P11〜P13において、PDに蓄積された電荷が一斉にFDに転送され、同時に画素P11の露光時間T1が開始される。そして、リセット期間RT(1)の終了直後のVSEL(1)のHiにより、画素P11〜P13の画素信号が一斉にカラムADC204に読み出される。
リセット期間RT(2)の1スロット目に着目すると、HSEL(1)〜HSEL(3)は全てパルスが立てられ、TX(2)もリセットパルスPR1が立てられている。そのため、2行目の画素P21〜P23は、PDをリセットする。これにより、画素P21〜P23において、PDに蓄積された電荷が一斉にFDに転送される。そして、VSEL(2)のHiにより、画素P21〜P23の画素信号が一斉にカラムADC204に読み出される。
リセット期間RT(3)の1スロット目に着目すると、HSEL(1)〜HSEL(3)は全てパルスが立てられ、TX(3)もリセットパルスPR1が立てられている。そのため、3行目の画素P31〜P33は、PDをリセットする。これにより、画素P31〜P33において、PDに蓄積された電荷が一斉にFDに転送され、同時に画素P31の露光時間T1が開始される。そして、VSEL(3)のHiにより、画素P31〜P33の画素信号が一斉にカラムADC204に読み出される。
このように、画素P11の露光期間をT1に設定する場合、リセットパルス制御部210は、TX(1)のリセットパルスPR1の出力タイミングに合わせてHSEL(1)のパルスを立てることで、画素P11にリセットパルスPR1を選択させる。一方、リセットパルス制御部210は、次に到来するリセット期間RT(1)において、TX(1)のリセットパルスPR1の出力タイミングに合わせてHSEL(1)のパルスを立てている。そのため、画素P11の露光期間は、T1に設定される。
リセット期間RT(1)の4スロット目に着目すると、HSEL(1)はパルスが立てられ、TX(2)もリセットパルスPR4が立てられている。そのため、2行1列目の画素P21は、PDをリセットする。これにより、画素P21の露光時間T4が開始される。
このように、画素P21の露光期間をT4に設定する場合、リセットパルス制御部210は、TX(2)のリセットパルスPR4の出力タイミングに合わせてHSEL(1)のパルスを立てることで、画素P21にリセットパルスPR4を選択させる。一方、リセットパルス制御部210は、次に到来するリセット期間RT(2)において、TX(2)のリセットパルスPR1の出力タイミングに合わせてHSEL(1)のパルスを立てている。そのため、画素P21の露光期間は、T4に設定される。
リセット期間RT(5)の3スロット目に着目すると、HSEL(3)はパルスが立てられ、TX(1)もリセットパルスPR3が立てられている。そのため、1行3列目の画素P13は、PDをリセットする。これにより、画素P13の露光時間T3が開始される。
このように、画素P13の露光期間をT3に設定する場合、リセットパルス制御部210は、TX(1)のリセットパルスPR3の出力タイミングに合わせてHSEL(3)のパルスを立てることで、画素P13にリセットパルスPR3を選択させる。一方、リセットパルス制御部210は、次に到来するリセット期間RT(1)において、TX(1)のリセットパルスPR1の出力タイミングに合わせてHSEL(3)のパルスを立てている。そのため、画素P13の露光期間は、T3に設定される。
リセット期間RT(4)の2スロット目に着目すると、HSEL(2)はパルスが立てられ、TX(1)もリセットパルスPR2が立てられている。そのため、1行2列目の画素P12の露光時間T2が開始される。
このように、画素P12の露光期間をT2に設定する場合、リセットパルス制御部210は、TX(1)のリセットパルスPR2の出力タイミングに合わせてHSEL(2)のパルスを立てることで、画素P12にリセットパルスPR2を選択させる。一方、リセットパルス制御部210は、次に到来するリセット期間RT(1)において、TX(1)のリセットパルスPR1の出力タイミングに合わせてHSEL(2)のパルスを立てている。そのため、画素P12の露光期間は、T2に設定される。
このように、制御線L2をタイムシェアして使用しているため、ローリングシャッター駆動でありながら、画素毎に複数種類の露光時間を設定することができる。また、HSEL(1)〜HSEL(3)は、リセット期間RT(1)〜RT(3)の1スロット目でパルスが立てられ、TX(1)〜TX(3)もリセット期間RT(1)〜RT(3)の1スロット目でそれぞれリセットパルスPR1が立てられている。そのため、画素毎に異なる露光時間を設定しても、画素信号を行単位で一斉に読み出すことができる。
図10は、リセットパルス制御部210の内部構造を示した図である。図10の例では、4種類の露光時間T1〜T4をブロック毎に選択する場合を示している。
リセットパルス制御部210は、画素アレイ201の各列(又は各列ブロック)に対応して設けられた列ユニット1001を備えている。図10の例では、画素アレイ201がm列であるため、m個の列ユニット1001が設けられている。なお、画素アレイ201が列ブロックに区切られている場合は、列ブロック毎に列ユニット1001が存在する。列ユニット1001は、1つのORゲートと、リセットパルスPR1〜PR4に対応する4つのパルス選択回路1002を備える。以下、リセットパルスPR1〜PR4を区別しない場合は、リセットパルスPRと表す。
パルス選択回路1002は、ANDゲート及びメモリMを備える。メモリMは例えば1ビットのデータラッチするラッチ回路である。ANDゲートは、メモリMにラッチされた1ビットのデータとリセットパルスPRとの論理積をとってORゲートに出力する。ORゲートは、4つのANDゲートからの出力の論理和をとってHSELを生成する。
リセットパルス制御部210は、画素アレイ201の上部に配置されており、TG202から出力されたリセットパルスPR1、PR2、PR3、PR4が左側に設けられた4つの入力端子を介して入力される。図9で説明したように、リセットパルスPR1、PR2、PR3、PR4はパルス位置が重ならないように位相がずらされている。
また、リセットパルス制御部210は、露光時間管理部209から4ビットのパルス選択情報SPが右側に設けられた4つの入力端子を介して入力される。パルス選択情報SPは、1H期間が開始される際に露光時間管理部209から転送され、メモリMにラッチされる。
図9の例では、リセット期間RT(1)において、HSEL(1)はリセットパルスPR1、PR4の出力タイミングにパルスが立てられ、HSEL(2)はリセットパルスPR1の出力タイミングにパルスが立てられ、HSEL(3)はリセットパルスPR1、PR3の出力タイミングにパルスが立てられている。そのため、リセット期間RT(1)の開始タイミングにおいて、1列目の列ユニット1001では、1行目〜4行目のメモリMにそれぞれ、「1」、「0」、「0」、「1」がラッチされ、2列目の列ユニット1001では、1行目〜4行目のメモリMにそれぞれ、「1」、「0」、「0」、「0」がラッチされ、3列目の列ユニット1001では、1行目〜4行目のメモリMにそれぞれ、「1」、「0」、「1」、「0」がラッチされる。
また、リセット期間RT(2)において、HSEL(1)〜HSEL(3)はリセットパルスPR1の出力タイミングにのみパルスが立てられている。そのため、リセット期間RT(2)の開始タイミングにおいて、1列目の列ユニット1001では、1行目〜4行目のメモリMにそれぞれ、「1」、「0」、「0」、「0」がラッチされ、2列目の列ユニット1001では、1行目〜4行目のメモリMにそれぞれ、「1」、「0」、「0」、「0」がラッチされ、3列目の列ユニット1001では、1行目〜4行目のメモリMにはそれぞれ、「1」、「0」、「0」、「0」がラッチされる。なお、パルス選択情報SPは露光時間管理部209により露光時間情報SSに基づいて生成されるが、この生成の詳細については後述する。
このように、リセット期間RTが到来する毎に、メモリMの内容が書き換えられ、各列に応じたHSELが生成される。なお、リセットパルスPR1の出力タイミングにおいてHSEL(1)〜HSEL(3)はパルスが常に立っているため、1行目のメモリMに常に1のデータをラッチさせてもよい。
また、リセットパルスPR1〜PR4はVスキャナ203にも入力されている。Vスキャナ203は、1V期間に4つのリセットパルスPR1〜PR4を含むTXを生成し、内蔵する垂直走査回路と同期させて、1H期間ずつずらして画素アレイ201の各行に出力する。ここで、垂直走査回路は、1行目、2行目、3行目、・・・の順で1H期間ずつずらして各行の水平同期信号を出力する。
Vスキャナ203は、垂直走査回路によりi行目の水平同期信号が出力されると、その水平同期信号と同期させて、リセットパルスPR1を立て、T1/2期間経過後にリセットパルスPR2を立て、T1/4期間経過後にリセットパルスPR3を立て、T1/8期間経過後にリセットパルスPR4を立てるというようにして、TX(X)を出力する。そして、X行目の水平同期信号が出力されてから1H期間経過後に、垂直走査回路によりX+1行目の水平同期信号が出力されると、Vスキャナ203は、その水平同期信号と同期させてT(X+1)のリセットパルスPR1を立てる。これにより、TXが1H期間ずつずれて画素アレイ201の各行に出力される。
また、Vスキャナ203には、RSTの基となる信号PRST及びVSELの基となる信号PVSELも入力されている。Vスキャナ203は、垂直走査回路からX行目の水平同期信号が出力されると、その水平同期信号と同期するRST(X)を信号PRSTから生成し、X行目の画素に出力する。また、Vスキャナ203は、垂直走査回路からX行目の水平同期信号が出力されると、その水平同期信号に同期するVSEL(X)を信号PVSELから生成し、X行目の画素に出力する。これにより、RST、VSELが1H期間ずつずれて画素アレイ201の各行に出力される。
以上のような回路構成、駆動タイミングで画素ブロック毎に異なる露光時間で撮影した画素信号に適切な係数を乗じることによって、HDR画像を得ることができる。なお、上記説明では、垂直走査回路は1行目、2行目、3行目、・・・の順で各行の水平走査信号を出力するとしたが、本実施の形態はこれに限定されず、画素アレイ201の各行を任意の順番で順次に選択し、水平同期信号を出力してもよい。
図11は、4種類の露光時間T1〜T4で撮像された出力画像106の光電変換特性を示したグラフである。縦軸は出力画像の画素値を示し、横軸は画素アレイ201への入射光の照度を示している。
グラフ1101〜1104は、補正部208により補正される前の出力画像の光電変換特性を示し、それぞれ、露光時間をT1〜T4に設定した場合の光電変換特性を示す。露光時間が短くなるにつれて感度は低下する。そのため、グラフ1101→1102→1103→1104に向けて、傾きが1、1/2、1/4、1/8倍となり、感度が低下している。但し、画素アレイ201の飽和レベルは一定であり、感度が高いほど飽和レベルに直ぐに到達するため、グラフ1101→1102→1103→1104に向けて、飽和レベルに到達する照度は1、2、4、8倍に増大している。
そこで、本実施の形態では、各画素の露光時間を示す露光時間情報SSを露光時間管理部209に記憶させ、露光時間に応じた係数を画素信号に乗じる補正処理を補正部208に実行させる。これにより、グラフ1105に示すような、あたかも画素アレイ201の飽和レベルが拡大したかのような光電変換特性が得られる。
グラフ1105は、出力画像106の光電変換特性を示している。補正部208は、露光時間がT1の画素信号には係数「1」を乗じ、露光時間がT2の画素信号には係数「2」を乗じ、露光時間がT3の画素信号には係数「4」を乗じ、露光時間がT4の画素信号には係数「8」を乗じて出力画像106を得る。
これにより、グラフ1101〜1104の飽和レベルがそれぞれ1、2、4、8倍に拡大されてグラフ1105に示す1本の直線にグラフ1101〜1104の光電変換特性が合成される。その結果、出力画像106のダイナミックレンジは、露光時間がT1のダイナミックレンジの8倍になる。
次に、本実施の形態における露光時間を設定するための基本的なアルゴリズムについて説明する。図12は、露光時間T1、T2(=T1/2)、T3(=T1/4)、T4(=T1/8)の4種類の露光時間における光電変換特性を示すグラフである。図12の例では、画素からは8ビットの画素信号が出力されるものとする。横軸は光量を示し、縦軸は画素値を示し、両軸は共に対数軸である。また、閾値として、閾値TH1=256、TH2=128、TH3=64、TH4=32が設定されている。
画素にとっての適切な露光時間とは、飽和せずにできるだけ大きな画素値を出力できる露光時間である。そのため、画素値が閾値TH2以上、且つ、閾値TH1以下の範囲内に入るように露光時間は設定されることが望ましい。例えば、下記の通りである。
(例1)現在の露光時間がT1/8に設定された画素が光量L0の光を受光した場合、次の露光時間はT1に設定。
(例2)現在の露光時間がT1/2に設定された画素が光量L1の光を受光した場合、次の露光時間はT1に設定。
(例3)現在の露光時間がT1/8に設定された画素が光量L2の光を受光した場合、次の露光時間T1/2に設定。
(例4)現在の露光時間がT1に設定された画素が光量L3の光を受光した場合、次の露光時間はT1/8に設定。
例4では、画素値が飽和している。この場合、適切な露光時間を決定できないため、飽和を防ぐために露光時間は最短の露光時間に設定されている。露光時間の設定アルゴリズムは下記のようにまとめられる。
・閾値TH1≦画素値の場合、露光時間はT1/8に設定。
・閾値TH2≦画素値<閾値TH1の場合、露光時間は維持。
・閾値TH3≦画素値<閾値TH2の場合、露光時間は現在よりもひとつ長い値に設定。
・閾値TH4≦画素値<閾値TH3の場合、露光時間は現在よりも2つ長い値に設定。
・画素値<閾値TH4の場合、露光時間はT1に設定。
以上のような露光時間の設定ができれば、露光時間は最適とされるが、本実施の形態では設定できる露光時間に制約があるため、もう少し工夫が必要となる。これについては後述する。
図13は、露光時間設定部207、露光時間管理部209、リセットパルス制御部210、及び補正部208の構成図である。カラムADCアレイ204から出力された画素信号VD(X、Y)は、センスアンプ206を介して露光時間設定部207に入力される。露光時間設定部207は、主に比較器で構成されている。露光時間管理部209は、露光時間記憶部2091及びパルス選択情報生成部2092を備える。
図13では、露光時間設定部207に対して、X行Y列の画素P(X、Y)のN−1フレームの画素信号VD(X、Y)が入力されている読出期間が示されている。この読出期間をHXとする。露光時間設定部207には、この他にも4種類の閾値TH1〜TH4が入力されている。
また、露光時間設定部207には、露光時間記憶部2091から、画素P(X、Y)のN−1フレームの露光時間情報SS(X、Y)と、X行目とは異なる行で、Y列の画素P(X+j1、Y)、P(X+j2、Y)、P(X+j3、Y)の露光時間情報SS(X+j1、Y)、SS(X+j2、Y)、SS(X+j3、Y)も入力されている。
これら、画素P(X+j1、Y)、P(X+j2、Y)、P(X+j3、Y)は、後続画素ブロックの一例に該当する。これらの3つの画素は、読出期間HXの次の読出期間HX+1にて、リセットパルスPR2〜PR4のいずれかのリセットパルスが位置する。ここでは、画素P(X、Y)に対して画素P(X+j1、Y)が最も離れて位置し、次に画素P(X+j2、Y)、次に画素P(X+j3、Y)が離れて位置しているものとする。
露光時間設定部207は、画素信号VD(X、Y)とN−1フレームの露光時間情報SS(X、Y)とから画素P(X、Y)の最適露光時間を算出し、それを示す露光時間情報SS(X、Y)を生成する。そして、露光時間設定部207は、算出した露光時間情報SS(X、Y)と、露光時間記憶部2091から読み出した露光時間情報SS(X+j1、Y)、SS(X+j2、Y)、SS(X+j3、Y)とに基づいて、画素P(X+j1、Y)、P(X+j2、Y)、P(X+j3、Y)の露光時間を設定し、露光時間情報SS(X+j1、Y)、SS(X+j2、Y)、SS(X+j3、Y)を露光時間記憶部2091に書き込む。
フレームの開始時には、ssReset信号により、露光時間記憶部2091が記憶する全画素の露光時間情報SSはゼロに設定される。これにより、各画素の露光時間の初期状態は最長の露光時間T1に設定される。
また、センスアンプ206から出力された画素信号VD(X、Y)は、補正部208にも入力される。補正部208は乗算器で構成されている。露光時間として、上記のT1〜T4を採用する場合、ビットシフト演算で乗算処理を行うことができる。この場合、補正部208は、シフトレジスタで構成できる。
補正部208には露光時間記憶部2091から画素P(X、Y)のN−1フレームの露光時間情報SS(X、Y)が入力される。補正部208では、入力された露光時間情報SS(X、Y)に応じた係数を画素信号VD(X、Y)に乗じ、HDR画像を生成する。
パルス選択情報生成部2092は、露光時間記憶部2091に露光時間情報SS(X+j1、Y)、SS(X+j2、Y)、SS(X+j3、Y)が書き込まれると、露光時間情報SS(X+j1−1、Y)、SS(X+j2−1、Y)、SS(X+j3−1、Y)を読み出し、パルス選択情報SP(Y)を生成し、リセットパルス制御部210のY列の列ユニット1001にセットする。
具体的には、パルス選択情報生成部2092は、読み出したいずれかの露光時間情報SSがT1/2を示せば、リセットパルスPR2に対応するHSEL(Y)のパルスをHiにし、いずれかの露光時間情報SSがT1/4を示せば、リセットパルスPR3に対応するHSEL(Y)のパルスをHiにし、いずれかの露光時間情報SSがT1/8を示せば、リセットパルスPR4に対応するHSEL(Y)のパルスをHiにするパルス選択情報SP(Y)を生成すればよい。
ここで、露光時間情報SS(X+j1、Y)、SS(X+j2、Y)、SS(X+j3、Y)ではなく、露光時間情報SS(X+j1−1、Y)、SS(X+j2−1、Y)、SS(X+j3−1、Y)が読み出されているのは、読出期間HXでは、画素P(X+j1、Y)、P(X+j2、Y)、P(X+j3、Y)ではなく、画素P(X+j1−1、Y)、P(X+j2−1、Y)、P(X+j3−1、Y)のPDのリセットが制御されるからである。
リセットパルス制御部210は、パルス選択情報SP(Y)に基づいてHSEL(Y)を生成し、画素P(X+j1−1、Y)、P(X+j2−1、Y)、P(X+j3−1、Y)にリセットパルスを選択させる。
図14は、図13で説明した処理のタイミングチャートである。以下、画素アレイ201は、8行Y列で構成されているものとして説明する。RST(0)、VSEL(0)、TX(0)は上から0行目のRST、VSEL、TXを示している。TX(1)〜TX(7)は上から1〜7行目のTXを示している。VD(Y)はY列目の画素信号を示している。HSEL(Y)はY列目のHSELを示している。H0〜H7は1フレームの0行目から7行目の読出期間である。
各TXには、4種類の露光時間が設定できるように1V期間に4つのリセットパルスPR1〜PR4が含まれている。ここでは、露光時間は、T1、T1/2、T1/4、T1/8のいずれかに設定される。
読出期間H0において、RST(0)がLo、VSEL(0)がHiになるタイミングでY列の垂直信号線L1(Y)に画素信号VD(0、Y)が出力される。VSEL(0)の最初のパルスではFDの電位がノイズレベルの画素信号VD(0、Y)として出力される。また、VSEL(0)の2番目のパルスではFDの電位がノイズ+シグナルレベルの画素信号VD(0、Y)として出力される。これらの画素信号は、ADC204aにより相関二重サンプリングされ、シグナルレベルの画素信号VD(0、Y)とされる。
画素信号VD(0、Y)は、露光時間設定部207に入力される。そして、露光時間設定部207は、画素信号VD(0、Y)から画素P(0、Y)の最適露光時間を算出する。最適露光時間は、画素信号VD(0、Y)の読出期間H0の次の読出期間H1に制御線L2(Y)に出力されるHSEL(Y)に反映される。
読出期間H1において、パルス選択情報生成部2091は、露光時間記憶部2091から露光時間情報SS(j1、Y)、SS(j2、Y)、SS(j3、Y)を読み出し、パルス選択情報SP(Y)を生成し、リセットパルス制御部210に出力する。
そして、読出期間H1において、リセットパルス制御部210は、制御線L2(Y)に、HSEL1、HSEL2、HSEL3のパルスが立てられたHSEL(Y)を出力する。なお、HSEL1〜HSEL3は、それぞれ、リセット期間RTの2〜4スロット目に立てられたパルスである。
読出期間H1において、TXがHiになる行は、画素アレイ201の行数(1フレームに走査する行数)と、設定可能な露光時間に応じて定められるリセットパルスPR1〜PR4の間隔とにより異なる。図14の例では、T1、T1/2、T1/4、T1/8のいずれかの露光時間が設定可能であり、行数が8行であるため、j1=5、j2=3、j3=2となる。
露光時間は、以下のように変化する。例えば、読出期間H1において、HSEL(Y)のHSEL1がHiにされている場合、TX(5)のリセットパルスPR2との論理積により、画素P(5、Y)のPDがリセットされ、画素P(5、Y)の露光時間がT1/2に変化する。一方、HSEL(Y)のHSEL1がLoの場合、画素P(5、Y)のPDはリセットされないため、画素P(5、Y)の露光時間は変化しない。
同様に、読出期間H1において、HSEL(Y)のHSEL2がHiにされている場合、TX(3)のリセットパルスPR3との論理積により、画素P(3、Y)の露光時間はT1/4に変化する。また、読出期間H1において、HSEL(Y)のHSEL3がHiにされている場合、TX(2)のリセットパルスPR4との論理積により画素P(2、Y)の露光時間はT1/8に変化する。
この動作は0、1、・・・8行目の順に行われるため、例えば、読出期間H1において画素P(5、Y)がHSEL1のHiにより露光時間がT1/2に設定された場合、その後の読出期間H3、H4において、T1/2より短い露光時間(T1/4、T1/8)に画素P(5、Y)の露光時間を変更できる。一方、ある読出期間において画素P(5、Y)の露光時間がT1/8に設定された場合、その後の読出期間において、T1/8より長い露光時間(T1、T1/2、T/4)に画素P(5、Y)の露光時間を変更できない。つまり、同一フレーム内において、長い露光時間から短い露光時間への変更はできるが、短い露光時間から長い露光時間への変更はできない。そこで、露光時間の設定アルゴリズムを以下のように変更することが望ましい。
更新対象となる画素P(X+j、Y)に現在設定されている露光時間をSSO、画素P(X、Y)の画素信号及び露光時間から決定される最適露光時間をSSS、画素P(X+j、Y)に対して設定可能な露光時間をSSJ、画素P(X+j、Y)の更新後の露光時間をSSNとする。
・SSO≦SSSの場合 SSN=SSO
つまり、現在設定されている露光時間SSOが最適露光時間SSS以下の場合、画素P(X+j、Y)の露光時間SSNは現在設定されている露光時間SSOで維持され、画素P(X+j、Y)のPDはリセットされない。
・SSO>SSSの場合 SSN=SSJ
つまり、現在設定されている露光時間SSOが最適露光時間SSSより大きい場合、画素P(X+j、Y)の露光時間SSNは設定可能な露光時間SSJに設定される。
図17は、露光時間の設定アルゴリズムのフローチャートである。まず、画素P(X、Y)の画素信号VD(X、Y)が露光時間設定部207に入力される(S1701)。次に、露光時間設定部207は、更新対象となる画素P(X+2、Y)の露光時間情報SS(X+2、Y)を露光時間記憶部2091から読み出す(S1702)。
次に、露光時間設定部207は、現在設定されている露光時間SSOに露光時間情報SS(X+2、Y)を代入し、設定可能な露光時間SSJにT1/8を代入する(S1703)。
次に、露光時間設定部207は、更新後の露光時間SSNを算出するSSN算出ルーチンを実行する(S1704)。次に、露光時間情報SS(X+2、Y)に更新後の露光時間SSNを代入する(S1705)。
次に、露光時間設定部207は、更新対象となる別の行の画素P(X+3、Y)の露光時間情報SS(X+3、Y)を露光時間記憶部2091から読み出す(S1706)。
次に、露光時間設定部207は、現在設定されている露光時間SSOに露光時間情報SS(X+3、Y)を代入し、設定可能な露光時間SSJにT1/4を代入する(S1707)。
次に、露光時間設定部207は、SSN算出ルーチンを実行する(S1708)。次に、露光時間情報SS(X+3、Y)に更新後の露光時間SSNを代入する(S1709)。
次に、露光時間設定部207は、更新対象となる更に別の行の画素P(X+5、Y)の露光時間情報SS(X+5、Y)を露光時間記憶部2091から読み出す(S1710)。
次に、露光時間設定部207は、現在設定されている露光時間SSOに露光時間情報SS(X+5、Y)を代入し、設定可能な露光時間SSJにT1/2を代入する(S1711)。
次に、露光時間設定部207は、SSN算出ルーチンを実行する(S1712)。次に、露光時間情報SS(X+5、Y)に更新後の露光時間SSNを代入する(S1713)。
図18は、図17に示すSSN算出ルーチンのフローチャートである。まず、露光時間設定部207は、画素信号VD(X、Y)が閾値TH1以上であるか否かを判定する(S1801)。画素信号VD(X、Y)が閾値TH1以上であれば(S1801でY)、最適露光時間SSSをT1/8に設定する(S1802)。この場合、画素信号VD(X、Y)が飽和しているため、最適露光時間SSSが最短の露光時間T1/8に設定される。
一方、画素信号VD(X、Y)が閾値TH1未満であれば(S1801でN)、露光時間設定部207は、画素信号VD(X、Y)が閾値TH2以上且つ閾値TH1未満であるか否かを判定する(S1803)。
S1803でYの場合、露光時間設定部207は、最適露光時間SSSを現在設定されている露光時間SSOに設定する(S1804)。一方、S1803でNの場合、露光時間設定部207は、画素信号VD(X、Y)が閾値TH3以上且つ閾値TH2未満かを判定する(S1805)。
S1805でYの場合、露光時間設定部207は、最適露光時間SSSを現在設定されている露光時間SSOの2倍に設定する(S1806)。これにより、画素信号VD(X、Y)が閾値TH2以上且つ閾値TH1未満に入るように露光時間が1ステップ増大される。
一方、S1805でNの場合、露光時間設定部207は、画素信号VD(X、Y)が閾値TH4以上且つ閾値TH3未満かを判定する(S1807)。
S1807でYの場合、露光時間設定部207は、最適露光時間SSSを現在設定されている露光時間SSOの4倍に設定する(S1808)。これにより、画素信号VD(X、Y)が閾値TH2以上且つ閾値TH1未満に入るように露光時間が2ステップ増大される。
一方、S1807でNの場合、露光時間設定部207は、画素信号VD(X、Y)が閾値TH4未満であるため、最適露光時間SSSを露光時間T1に設定する(S1809)。
次に、最適露光時間SSSが露光時間T1より大きい場合(S1810でY)、露光時間設定部207は、最適露光時間SSSをT1に設定する(S1811)。一方、S1810でNの場合、露光時間設定部207は処理をS1812に進める。
次に、現在設定されている露光時間SSOが最適露光時間SSS以下である場合(S1812でY)、露光時間設定部207は、更新後の露光時間SSNを現在設定されている露光時間SSOに設定する(S1813)。一方、S1812でNの場合、露光時間設定部207は、更新後の露光時間SSNを設定可能な露光時間SSJに設定する(S1814)。
以上のような動作を実現するには、露光時間記憶部2091は、画素P(X、Y)の露光時間情報SS(X、Y)を、画素P(X+j1、Y)〜画素P(X+j3、Y)のうち、最も離れた行の画素P(X+j1、Y)が読み出されるまで記憶できる容量があればよい。すなわち、露光時間記憶部2091に、1画面分の画素信号を記憶する容量を持たせなくてもよい。また、4種類の露光時間を設定する場合、露光時間情報SS(X、Y)は2ビットで表されるため、画素信号P(X、Y)のビット数(例えば8ビット)を記憶する場合に比べて、露光時間記憶部2091の記憶容量を削減できる。
(具体例1)
図19は、図14の具体例1を示すタイミングチャートである。図19の例では、全画素が光量L2の光を露光しているものとする。この場合、図12に示す光電変換特性から最適露光時間は全ての画素でT1/2となる。
1フレームの開始時において、ssReset信号により、全画素の露光時間はT1に仮設定さている。但し、0行目の画素と1行目の画素とは、それ以降の露光時間の算出のために、露光時間が最短のT1/8に設定されている。これは、長い露光時間を設定すると飽和する可能性が高まり、一度、飽和してしまうと、それ以降、正確な露光時間を算出することが困難となるからである。
(読出期間H0)
読出期間H0では、画素P(0、Y)の画素信号VD(0、Y)を用いて、画素P(0、Y)の最適露光時間が算出され、この最適露光時間を用いて、P(2、Y)、P(3、Y)、P(5、Y)の露光時間が設定される。
<画素P(0、Y)>
画素P(0、Y)は、現在、露光時間がT1/8に設定されている。そのため、図12に示す光電変換特性から、画素信号VD(0、Y)は、HT4<VD(0、Y)<TH3となる。この場合、露光時間設定部207は、画素P(0、Y)の最適露光時間をT1/2と算出する。
<画素P(2、Y)>
画素P(2、Y)は、ssReset信号により露光時間がT1に設定されている。露光時間T1は、最適露光時間であるT1/2より大きいが、画素P(2、Y)の設定可能な露光時間がT1/8である。そのため、露光時間設定部207は、画素P(2、Y)の露光時間をT1/8に設定し、露光時間記憶部2091に書き込む。これにより、リセットパルス制御部210は、読出期間H1において、HSEL(Y)のHSEL3をHiにし、画素P(2、Y)のPDをリセットする。
<画素P(3、Y)>
画素P(3、Y)は、ssReset信号により露光時間がT1に設定されている。露光時間T1は、最適露光時間であるT1/2より大きいが、画素P(3、Y)の設定可能な露光時間がT1/4である。そのため、露光時間設定部207は、画素P(3、Y)の露光時間をT1/4に設定し、露光時間記憶部2091に書き込む。これにより、リセットパルス制御部210は、読出期間H1において、HSEL(Y)のHSEL2をHiにし、画素P(3、Y)のPDをリセットする。
<画素P(5、Y)>
画素P(5、Y)は、ssReset信号により露光時間がT1に設定されている。露光時間T1は、最適露光時間であるT1/2より大きく、画素P(5、Y)の設定可能な露光時間はT1/2である。そのため、露光時間設定部207は、画素P(5、Y)の露光時間をT1/2に設定し、露光時間記憶部2091に書き込む。これにより、リセットパルス制御部210は、読出期間H1において、HSEL(Y)のHSEL1をHiにし、画素P(5、Y)のPDをリセットする。
(読出期間H1)
読出期間H1では、画素P(1、Y)の画素信号VD(1、Y)を用いて、画素P(1、Y)のの最適露光時間が算出され、この最適露光時間を用いて、画素P(3、Y)、P(4、Y)、P(6、Y)の露光時間が設定される。
<画素P(1、Y)>
画素P(1、Y)は画素P(0、Y)と同じく現在設定されている露光時間はT1/8である。そのため、露光時間設定部207は、画素P(1、Y)の最適露光時間をT1/2と算出する。
<画素P(3、Y)>
画素P(3、Y)は、現在、露光時間がT1/4に設定されている。露光時間T1/4は、最適露光時間T1/2より小さいため、露光時間設定部207は、画素P(3、Y)の露光時間をT1/4に維持する。そのため、リセットパルス制御部210は、読出期間H2において、HSEL(Y)のHSEL3をHiにせず、画素P(3、Y)のPDをリセットしない。
<画素P(4、Y)>
画素P(4、Y)は、ssReset信号により露光時間がT1に設定されている。露光時間T1は、最適露光時間であるT1/2よりも大きいが、画素P(4、Y)の設定可能な露光時間はT1/4である。そのため、露光時間設定部207は、画素P(4、Y)の露光時間をT1/4に設定し、露光時間記憶部2091に書き込む。これにより、リセットパルス制御部210は、読出期間H2において、HSEL(Y)のHSEL2をHiにし、画素P(4、Y)のPDをリセットする。
<画素P(6、Y)>
画素P(6、Y)は、ssReset信号により露光時間がT1に設定されている。露光時間T1は、最適露光時間であるT1/2よりも大きく、画素P(6、Y)の設定可能な露光時間はT1/2である。そのため、露光時間設定部207は、画素P(6、Y)の露光時間をT1/2に設定し、露光時間記憶部2091に書き込む。これにより、リセットパルス制御部210は、読出期間H2において、HSEL(Y)のHSEL1をHiにし、画素P(6、Y)のPDをリセットする。
(読出期間H2)
読出期間H2では、画素P(2、Y)の画素信号VD(2、Y)を用いて、画素P(2、Y)の最適露光時間が算出され、この最適露光時間を用いて、画素P(4、Y)、P(5、Y)、P(7、Y)の露光時間が設定される。
<画素P(2、Y)>
画素P(2、Y)は、現在、露光時間がT1/8に設定されている。そのため、図12に示す光電変換特性から、画素信号VD(2、Y)は、TH4<VD(2、Y)<TH3となる。この場合、露光時間設定部207は、画素P(2、Y)の最適露光時間をT1/2と算出する。
<画素P(4、Y)>
画素P(4、Y)は、現在、露光時間がT1/4に設定されている。露光時間T1/4は最適露光時間であるT1/2より小さいため、露光時間設定部207は、画素P(4、Y)の露光時間をT1/4に維持する。そのため、リセットパルス制御部210は、読出期間H3において、HSEL(Y)のHSEL2をHiにせず、画素P(4、Y)のPDをリセットしない。
<画素P(5、Y)>
画素P(5、Y)は、現在、露光時間がT1/2に設定されている。露光時間T1/2は、最適露光時間であるT1/2と同じであるため、露光時間設定部207は、画素P(5、Y)の露光時間をT1/2に維持する。そのため、リセットパルス制御部210は、読出期間H3において、HSEL(Y)のHSEL1をHiにせず、画素P(5、Y)のPDをリセットしない。
<画素P(7、Y)>
画素P(7、Y)は、現在、露光時間がT1に設定されている。露光時間T1は、最適露光時間であるT1/2よりも大きく、画素P(7、Y)の設定可能な露光時間は、T1/2であるため、露光時間設定部207は、画素P(7、Y)の露光時間をT1/2に設定し、露光時間記憶部2091に書き込む。これにより、リセットパルス制御部210は、読出期間H3において、HSEL(Y)のHSEL1をHiにし、画素P(7、Y)のPDをリセットする。
(読出期間H3)
読出期間H3では、画素P(3、Y)の画素信号VD(3、Y)を用いて、画素P(3、Y)の最適露光時間が算出され、この最適露光時間を用いて、画素P(5、Y)、画素P(6、Y)の露光時間が設定される。
<画素P(3、Y)>
画素P(3、Y)は、現在、露光時間がT1/4に設定されている。そのため、図12に示す光電変換特性から、画素信号VD(3、Y)は、TH3<VD(3、Y)<TH2となる。この場合、露光時間設定部207は、画素P(3、Y)の最適露光時間をT1/2と算出する。
<画素P(5、Y)>
画素P(5、Y)は、現在、露光時間がT1/2に設定されている。露光時間T1/2は最適露光時間であるT1/2と同じであるため、露光時間設定部207は、画素P(5、Y)の露光時間をT1/2に維持する。そのため、リセットパルス制御部210は、読出期間H4において、HSEL(Y)のHSEL3をHiにせず、画素P(5、Y)のPDをリセットしない。
<画素P(6、Y)>
画素P(6、Y)は、現在、露光時間がT1/2に設定されている。露光時間T1/2は最適露光時間であるT1/2と同じであるため、露光時間設定部207は、画素P(6、Y)の露光時間をT1/2に維持する。そのため、リセットパルス制御部210は、読出期間T4において、HSEL(Y)のHSEL2をHiにせず、画素P(6、Y)のPDをリセットしない。
(読出期間H4)
読出期間H4では、画素P(4、Y)の画素信号VD(4、Y)を用いて、画素P(4、Y)の最適露光時間が算出され、この最適露光時間を用いて、画素P(6、Y)、画素P(7、Y)の露光時間が設定される。
<画素P(4、Y)>
画素P(4、Y)は、現在、露光時間がT1/4に設定されている。そのため、図12に示す光電変換特性から、画素P(4、Y)は、TH3<P(4、Y)<TH2となる。この場合、露光時間設定部207は、画素P(4、Y)の最適露光時間をT1/2に設定する。
<画素P(6、Y)>
画素P(6、Y)は、現在、露光時間がT1/2に設定されている。露光時間T1/2は最適露光時間であるT1/2と同じであるため、露光時間設定部207は、画素P(6、Y)の露光時間をT1/2に維持する。そのため、リセットパルス制御部210は、読出期間H5において、HSEL(Y)のHSEL3をHiにせず、画素P(6、Y)のPDをリセットしない。
<画素P(7、Y)>
画素P(7、Y)は、現在、露光時間がT1/2に設定されている。露光時間T1/2は、最適露光時間であるT1/2と同じであるため、露光時間設定部207は、画素P(7、Y)の露光時間をT1/2に維持する。そのため、リセットパルス制御部210は、読出期間H5において、HSEL(Y)のHSEL2をHiにせず、画素P(7、Y)のPDをリセットしない。
(読出期間H5)
読出期間H5では、画素P(5、Y)の画素信号VD(5、Y)を用いて、画素P(5、Y)の最適露光時間が算出され、この最適露光時間を用いて画素P(7、Y)の露光時間が設定される。
画素P(5、Y)は、現在、露光時間がT1/2が設定されている。そのため、図12に示す光電変換特性から、画素信号VD(5、Y)は、TH2<VD(5、Y)<TH1となる。この場合、露光時間設定部207は、画素P(5、Y)の最適露光時間をT1/2と算出する。
<画素P(7、Y)>
画素P(7、Y)は、現在、露光時間がT1/2に設定されている。露光時間T1/2は最適露光時間であるT1/2と同じであるため、露光時間設定部207は、画素P(7、Y)の露光時間をT1/2に維持する。そのため、リセットパルス制御部210は、読出期間H6において、HSEL(Y)のHSEL3をHiにせず、画素P(7、Y)のPDをリセットしない。
(読出期間H6)
読出期間H6では、画素P(6、Y)の画素信号VD(6、Y)を用いて、画素P(6、Y)の最適露光時間が算出される。
<画素P(6、Y)>
画素P(6、Y)は、現在、露光時間がT1/2に設定されている。そのため、図12に示す光電変換特性から、画素信号VD(6、Y)は、TH2<VD(6、Y)<TH1となる。この場合、露光時間設定部207は、画素P(6、Y)の最適露光時間をT1/2に設定する。
(読出期間H7)
読出期間H7では、画素P(7、Y)の画素信号VD(7、Y)を用いて、画素P(7、Y)の最適露光時間が算出される。
<画素P(7、Y)>
画素P(7、Y)は、現在、露光時間がT1/2に設定されている。そのため、図12に示す光電変換特性から、TH2<VD(7、Y)<TH1となる。この場合、露光時間設定部207は、画素P(7、Y)の最適露光時間をT1/2に設定する。
これ以降は、次フレームのシーケンスが開始され、上記の処理が繰り返される。以上この動作により、画素P(0、Y)〜P(7、Y)の露光時間は、それぞれ、T1/8、T1/8、T1/8、T1/4、T1/4、T1/2、T1/2、T1/2となり、最初の5行以外は、最適露光時間T1/2に設定される。
(具体例2)
図20は、図14の別の具体例2を示すタイミングチャートである。図20の例では、全画素が光量L1の光を露光しているものとする。この場合、図12に示す光電変換特性から最適露光時間は全ての画素でT1/4となる。
(読出期間H0)
<画素P(0、Y)>
画素P(0、Y)は、現在、露光時間がT1/8に設定されている。そのため、画素信号VD(0、Y)はTH3<VD(0、Y)<TH2となる。この場合、露光時間設定部207は、画素P(0、Y)の最適露光時間をT1/4と算出する。
<画素P(2、Y)>
画素P(2、Y)は、現在、露光時間がT1に設定されている。露光時間T1は、最適露光時間であるT1/4よりも大きいが、画素P(2、Y)の設定可能な露光時間がT1/8である。そのため、露光時間設定部207は、画素P(2、Y)の露光時間をT1/8に設定し、露光時間記憶部2091に書き込む。これにより、リセットパルス制御部210は、読出期間H1において、HSEL(Y)のHSEL3にHiにし、画素P(2、Y)のPDをリセットする。
<画素P(3、Y)>
画素P(3、Y)は、現在、露光時間がT1に設定されている。露光時間T1は、最適露光時間であるT1/4より大きいが、画素P(3、Y)の設定可能な露光時間がT1/4である。そのため、露光時間設定部207は、画素P(3、Y)の露光時間をT1/4に設定し、露光時間記憶部2091に書き込む。これにより、これにより、リセットパルス制御部210は、読出期間H1において、HSEL(Y)のHSEL2をHiにし、画素P(3、Y)のPDをリセットする。
<画素P(5、Y)>
画素P(5、Y)は、現在、露光時間がT1に設定されている。露光時間T1は、最適露光時間であるT1/4より大きいが、画素P(5、Y)の設定可能な露光時間はT1/2である。そのため、露光時間設定部207は、画素P(5、Y)の露光時間をT1/2に設定し、露光時間記憶部2091に書き込む。これにより、リセットパルス制御部210は、読出期間H1において、HSEL(Y)のHSEL1をHiにし、画素P(5、Y)のPDをリセットする。
(読出期間H1)
<画素P(1、Y)>
画素P(1、Y)は画素P(0、Y)と同じく現在設定されている露光時間はT1/8である。そのため、露光時間設定部207は、画素P(1、Y)の最適露光時間をT1/4と算出する。
<画素P(3、Y)>
画素P(3、Y)は、現在、露光時間がT1/4に設定されている。露光時間T1/4は、最適露光時間T1/4と同じであるため、露光時間設定部207は、画素P(3、Y)の露光時間をT1/4に維持する。そのため、リセットパルス制御部210は、読出期間H2において、HSEL(Y)のHSEL3をHiにせず、画素P(3、Y)のPDをリセットしない。
<画素P(4、Y)>
画素P(4、Y)は、現在、露光時間がT1に設定されている。露光時間T1は、最適露光時間であるT1/4よりも大きく、画素P(4、Y)の設定可能な露光時間はT1/4である。そのため、露光時間設定部207は、画素P(4、Y)の露光時間をT1/4に設定し、露光時間記憶部2091に書き込む。これにより、リセットパルス制御部210は、読出期間H2において、HSEL(Y)のHSEL2をHiにし、画素P(4、Y)のPDをリセットする。
<画素P(6、Y)>
画素P(6、Y)は、現在、露光時間がT1に設定されている。露光時間T1は、最適露光時間であるT1/4よりも大きいが、画素P(6、Y)の設定可能な露光時間はT1/2である。そのため、露光時間設定部207は、画素P(6、Y)の露光時間をT1/2に設定し、露光時間記憶部2091に書き込む。これにより、リセットパルス制御部210は、読出期間H2において、HSEL(Y)のHSEL1をHiにし、画素P(6、Y)のPDをリセットする。
(読出期間H2)
<画素P(2、Y)>
画素P(2、Y)は、現在、露光時間がT1/8に設定されている。そのため、画素信号VD(2、Y)は、TH4<VD(2、Y)<TH3となる。この場合、露光時間設定部207は、画素P(2、Y)の最適露光時間をT1/4と算出する。
<画素P(4、Y)>
画素P(4、Y)は、現在、露光時間がT1/4に設定されている。露光時間T1/4は最適露光時間であるT1/4と同じであるため、露光時間設定部207は、画素P(4、Y)の露光時間をT1/4に維持する。そのため、リセットパルス制御部210は、読出期間H3において、HSEL(Y)のHSEL3をHiにせず、画素P(4、Y)のPDをリセットしない。
<画素P(5、Y)>
画素P(5、Y)は、現在、露光時間がT1/2に設定されている。露光時間T1/2は、最適露光時間であるT1/4より大きく、画素P(5、Y)の設定可能な露光時間はT1/4であるため、露光時間設定部207は、画素P(5、Y)の露光時間をT1/4に設定し、露光時間記憶部2091に書き込む。そのため、リセットパルス制御部210は、読出期間H3において、HSEL(Y)のHSEL2をHiにし、画素P(5、Y)のPDをリセットする。
<画素P(7、Y)>
画素P(7、Y)は、現在、露光時間がT1に設定されている。露光時間T1は、最適露光時間であるT1/4よりも大きく、画素P(7、Y)の設定可能な露光時間は、T1/2であるため、露光時間設定部207は、画素P(7、Y)の露光時間をT1/4に設定し、露光時間記憶部2091に書き込む。これにより、リセットパルス制御部210は、読出期間H3において、HSEL(Y)のHSEL2をHiにし、画素P(7、Y)のPDをリセットする。
以下、図19と同様のアルゴリズムで露光時間が設定されていく。図20の例では、画素P(0、Y)〜P(7、Y)の露光時間は、T1/8、T1/8、T1/8、T1/4、T1/4、T1/4、T1/4、T1/4となり、最初の3行以外は、最適露光時間T1/4に設定される。図19と図20とから分かるように、明るくなるほど最適露光時間が小さくなるため、最適な露光時間を設定できる画素数が増大する。
(実施の形態2)
実施の形態1では、同一フレーム内において、画素信号の読み出しが終了した画素ブロックの画素信号の最適露光時間に基づいて、後続行の同一列の画素ブロックの露光時間が設定された。本実施の形態では、より最適な露光時間を設定するために、前フレームの画素信号から求めた露光時間情報を更に利用して後続行の露光時間が設定される。
図15は、実施の形態2における、露光時間設定部207、露光時間管理部209、リセットパルス制御部210、及び補正部208の構成図である。図15は、実施の形態1の図13に対応している。
図13との相違点は、露光時間設定部207から露光時間記憶部2091に対して、更に、Nフレームの露光時間情報SS(X、Y)が出力され、書き込まれている点にある。Nフレームの露光時間情報SS(X、Y)は、N+1フレームまで露光時間記憶部2091に記憶され、利用される。そのため、図15の構成では、各フレームの最初に露光時間情報SSを初期化するためのssReset信号は入力されていない。
この構成をとることにより、N−1フレームの別の行に属する画素信号VD(X、Y)に加え、前フレームの画素信号VD(X、Y)を用いて、各画素の露光時間を設定できる。
具体的には、静止した物体を撮像した場合、現フレームと前フレームとの相関が高いため、前フレームの露光時間情報が有効となる。一方、動体を撮像した場合、前フレームと現フレームとの相関よりも同一フレーム内の別の行の画素信号同士の相関が高い。
そこで、露光時間設定部207は、静止した物体を撮像する場合、画素信号VD(X、Y)を用いて後続行の同一列の画素の露光時間を設定せず、前フレームの露光時間情報SSを用いて各画素の露光時間を設定する。
一方、露光時間設定部207は、動体を撮像する場合、前フレームの露光時間情報SSを用いて各画素の露光時間を設定せず、画素信号VD(X、Y)を用いて後続行の同一列の露光時間を設定すればよい。
また、別の例としては以下の態様が挙げられる。露光時間設定部207は、現フレームの各画素の露光時間を設定するに際し、基本的には、前フレームの画素信号により算出した露光時間を採用する。そして、露光時間設定部207は、最短の露光時間を設定する場合のみ、同一フレームの先行する行の画素信号を利用する。
図14に示すように、最短の露光時間であるT1/8の設定対象となる画素P(X+j3、Y)は、空間的に近くに位置する2行上の画素P(X、Y)の画素信号を用いて露光時間が設定されている。よって、露光時間設定部207は、画素P(X+j3)については、実施の形態1で説明した手法を用いて、露光時間を設定する。具体的には、露光時間設定部207は、画素P(X、Y)の画素信号VD(X、Y)と画素P(X、Y)に現在設定されている露光時間とから最適露光時間を算出する。次に、露光時間設定部207は、次フレームの露光時間を前フレームの露光時間で設定するために、画素P(X、Y)の最適露光時間を露光時間記憶部2091に書き込む。
次に、露光時間設定部207は、画素P(X+j3、Y)の現在設定されている露光時間情報SS(X+j3、Y)が最適露光時間よりも長ければ、画素P(X+j3、Y)のPDをリセットさせて露光時間を最適露光時間に設定する。
一方、露光時間設定部207は、画素P(X+j3、Y)の現在設定されている露光時間情報SS(X+j3、Y)が最適露光時間よりも短ければ、画素P(X+j3、Y)のPDをリセットさせず、現在設定されている露光時間で維持する。
画素P(X、Y)に対して、画素P(X+j3、Y)は空間的に近くに位置しているため、画素P(X、Y)の画素信号と、画素P(X+j3、Y)の画素信号とは高い相関を持つ可能性が高い。
一方、画素P(X、Y)に対して、画素P(X+j1、Y)、P(X+j2、Y)は空間的に離れて位置しているため、画素P(X、Y)の画素信号と、これらの画素の画素信号とは相関が低いケースもあり得る。そこで、これらの画素については前フレームの露光時間を設定する。これにより、被写体の光量に応じた適切な露光時間を設定できる。
本実施の形態において、露光時間記憶部2091の画素数は画素アレイ201の全画素数分必要であるが、露光時間情報SSは画素信号のビット数よりも少なく構成できる。そのため、画素アレイ201の全画素の画素信号を記憶するフレームメモリに比べ、露光時間記憶部2091を小さな容量で構成することができる。
(実施の形態3)
実施の形態1、2では、露光時間の設定の自由度の高い画素は、露光時間の設定に用いられる画素信号を出力する画素に対して空間的により遠い行に位置していた。本実施の形態では、露光時間の設定の自由度の高い画素が、露光時間の設定に用いられる画素信号を出力する画素に対して空間的に近くに位置するように走査順を入れ替える。
図16は、実施の形態3における固体撮像装置のタイミングチャートである。図14との相違点は、偶数行のTX(1)、TX(3)、TX(5)、TX(7)の位相が、それぞれ、図14のTX(1)、TX(3)、TX(5)、TX(7)に対して4H期間遅れている点にある。
そのため、TX(1)〜TX(7)のリセットパルスPR2は、それぞれ、1つ上の行のTXのリセットパルスPR1が位置する読出期間の次の読出期間に位置することになる。
例えば、TX(1)のリセットパルスPR2は、TX(0)のリセットパルスPR1が位置する読出期間H0の次の読出期間H1に位置している。そのため、読出期間H1では、画素P(0、Y)の画素信号VD(0、Y)を用いて画素P(1、Y)の露光時間をT1/2、T1/4、T1/8のいずれかに設定できる。そして、画素P(1、Y)は画素P(0、Y)から1行しか離れていない。これにより、露光時間の設定の自由度の高い画素P(1、Y)の露光時間を、空間的に近くに位置する画素P(0、Y)の画素信号(0、Y)を用いて設定でき、高精度な露光時間の設定が可能となる。
また、TX(3)のリセットパルスPR2は、TX(2)のリセットパルスPR1が位置する読出期間H2の次の読出期間H3に位置している。そのため、読出期間H3では、画素P(2、Y)の画素信号VD(2、Y)を用いて画素P(3、Y)の露光時間をT1/2、T1/4、T1/8のいずれかに設定できる。そして、画素P(3、Y)は画素P(2、Y)から1行しか離れていない。これにより、露光時間の設定の自由度の高い画素P(2、Y)の露光時間を、空間的に近くに位置する画素P(2、Y)の画素信号VD(2、Y)を用いて設定でき、高精度な露光時間の設定が可能なる。この関係は、他の全ての行の画素についても当てはまる。
このように、本実施の形態では、露光時間の設定の自由度の高い画素が、露光時間の設定に用いられる画素信号を出力する画素に対して空間的に近くに位置するため、高精度な露光時間が設定可能である。
なお、本実施の形態では飛び越し走査が行われているため、画素信号の読出順序が通常の読出順序から入れ替わっている。そのため、後段にて各行の画素信号の出力順序を通常の出力順序に戻すためのバッファが必要となる。
そこで、本実施の形態では、図21の構成を採用する。図21は、実施の形態3における、露光時間設定部207、露光時間管理部209、リセットパルス制御部210、及び補正部208の構成図である。
実施の形態3では、走査順序の入れ替えにより、時間と共に読み出し対象となる行が複雑に変化していく。そのため、ここでは、説明を分かりやすくするために、画素P(0、Y)の画素信号VD(0、Y)が出力されているタイミングである読出期間H0を例に挙げて説明する。また、現フレームをN−1フレーム、次フレームをNフレームで表す。
露光時間設定部207には、閾値TH1〜TH4が入力されている。露光時間設定部207は、N−1フレームの画素信号VD(0、Y)が入力されると、露光時間記憶部2091から画素P(0、Y)のN−1フレームの露光時間情報SS(0、Y)と、露光時間の設定対象となる画素P(1、Y)に現在設定されている露光時間情報SS(1、Y)とが入力される。そして、露光時間設定部207は、前述の露光時間の設定アルゴリズムを用いて、N−1フレームでの画素P(1、Y)の露光時間を設定し、露光時間情報SS(1、Y)を露光時間記憶部2091に書き込む。同時に、露光時間設定部207は、画素P(0、Y)のNフレームの露光時間情報SS(0、Y)を露光時間記憶部2091に書き込む。
露光時間記憶部2091は、露光時間情報SS(0、Y)、SS(1、Y)が入力されると、読出期間H0でのHSEL(Y)をリセットパルス制御部210に生成させるために、露光時間情報SS(2、Y)、SS(4、Y)、SS(5、Y)をパルス選択情報生成部2092に出力する。ここで、露光時間情報SS(2、Y)、SS(4、Y)、SS(5、Y)が出力されているのは、読出期間H0では、TX(2)、TX(4)、TX(5)のリセットパルスが立てられているからである。
パルス選択情報生成部2092は、露光時間情報SS(2、Y)、SS(4、Y)、SS(5、Y)から読出期間H0でのHSEL(Y)を生成するためのパルス選択情報SP(Y)を生成し、リセットパルス制御部210に出力する。リセットパルス制御部210は、パルス選択情報SP(Y)をY列の列ユニット1001にセットする。そして、リセットパルス制御部210は、セットしたパルス選択情報SP(Y)にしたがって、HSEL(Y)を生成し、画素P(2、Y)、P(4、Y)、P(5、Y)のPDのリセットを制御する。
(具体例3)
図22は、図16の具体例3を示すタイミングチャートである。図22の例では、全画素が光量L2の光を露光しているものとする。この場合、図12に示す光電変換特性から最適露光時間は全ての画素でT1/2となる。また、前フレームでは、露光時間がT1/8と設定されていたとする。
(読出期間H0)
読出期間H0では、画素P(0、Y)の画素信号VD(0、Y)が読み出される。画素P(0、Y)は、現在、露光時間がT1/8が設定されている。そのため、画素信号VD(0、Y)はTH4<VD(0、Y)<TH3となる。この場合、露光時間設定部207は、画素P(0、Y)の最適露光時間をT1/2と算出する。
画素P(1、Y)は、設定可能な露光時間がT1/2であり、最適露光時間もT1/2である。そのため、露光時間設定部207は、画素P(1、Y)の露光時間をT1/2を設定し、露光時間記憶部2091に書き込む。これにより、リセットパルス制御部210は、読出期間H1において、HSEL1AをHiにして、PDをリセットする。
(読出期間H1)
読出期間H1では、TX(2)、TX(7)のリセットパルスPR4、PR3が立てられているため、パルス選択情報生成部2092は、これらのリセットパルスに対応するHSEL3A、HSEL2Aを立てるか否かを判定する必要がある。そのため、パルス選択情報生成部2092は、画素P(2、Y)、P(7、Y)に設定されている露光時間情報SS(2、Y)、SS(7、Y)を露光時間記憶部2091から読み出し、HSEL3A、HSEL2Aを立てるか否かを判定し、判定結果に基づいてパルス選択情報SP(Y)を生成し、リセットパルス制御部210に出力する。これにより、リセットパルス制御部210は、パルス選択情報SP(Y)からHSEL(Y)を生成し、画素P(2、Y)、P(7、Y)のPDのリセットを制御する。
また、読出期間H1では、画素P(5、Y)の画素信号VD(5、Y)が読み出されている。画素P(5、Y)は、露光時間がT1/8に設定されている。そのため、画素信号VD(5、Y)はTH4<VD(5、Y)<TH3となる。この場合、露光時間設定部207は、画素P(5、Y)の最適露光時間をT1/2と算出する。
また、読出期間H1では、画素信号VD(5、Y)を用いて画素P(6、Y)の露光時間が設定される。画素P(6、Y)は、設定可能な露光時間がT1/2であり、最適露光時間もT1/2である。そのため、露光時間設定部207は、画素P(6、Y)の露光時間をT1/2に設定し、露光時間記憶部2091に書き込む。これにより、リセットパルス制御部210は、読出期間H2において、HSEL1AをHiにして、画素P(6、Y)のPDをリセットする。
(読出期間H2)
読出期間H2では、TX(4)、TX(7)のリセットパルスPR3、PR4が立てられているため、パルス選択情報生成部2092はこれらのリセットパルスに対応するHSEL2A、HSEL3Aを立てるか否かを判定する必要がある。そのため、パルス選択情報生成部2092は、露光時間記憶部2091から画素P(4、Y)、画素P(7、Y)に設定されている露光時間情報SS(4、Y)、SS(7、Y)を読み出し、HSEL2A、HSEL3Aを立てるか否かを判定し、判定結果に基づいてパルス選択情報SP(Y)を生成し、リセットパルス制御部210に出力する。これにより、リセットパルス制御部210は、パルス選択情報SP(Y)からHSEL(Y)を生成し、画素P(4、Y)、P(7、Y)のPDのリセットを制御する。
また、読出期間H2では、画素P(2、Y)の画素信号VD(2、Y)が読み出されている。画素P(2、Y)は、露光時間がT1/8に設定されている。そのため、画素信号VD(2、Y)はTH4<VD(2、Y)<TH3となる。よって、露光時間設定部207は、最適露光時間をT1/2と算出する。
また、読出期間H2では、画素信号VD(2、Y)を用いて画素P(3、Y)の露光時間が設定される。画素P(3、Y)は、設定可能な露光時間がT1/2であり、最適露光時間もT1/2である。そのため、露光時間設定部207は、画素P(3、Y)の露光時間をT1/2に設定し、露光時間記憶部2091に書き込む。これにより、リセットパルス制御部210は、読出期間H3において、HSEL1AをHiにして、画素P(3、Y)のPDをリセットする。
(読出期間H3)
読出期間H3では、TX(1)、TX(4)のリセットパルスPR3、PR4が立てられているため、パルス選択情報生成部2092は、これらのリセットパルスに対応するHSEL2A、HSEL3Aのパルスを立てるか否かを判定する必要がある。そのため、パルス選択情報生成部2092は、露光時間記憶部2091から画素P(1、Y)、P(4、Y)の露光時間情報SS(1、Y)、SS(4、Y)を読み出し、HSEL2A、HSEL3Aのパルスを立てるか否かを判定し、判定結果に基づいてパルス選択情報SP(Y)を生成し、リセットパルス制御部210に出力する。これにより、リセットパルス制御部210は、パルス選択情報SP(Y)からHSEL(Y)を生成し、P(1、Y)、P(4、Y)のPDのリセットを制御する。ここでは、露光時間情報SS(1、Y)には、露光時間T1/2が設定されている。そのため、リセットパルス制御部210は、読出期間H3では、HSEL2AをHiにせず、画素P(1、Y)のPDをリセットしない。
そのため、読出期間H5において、画素信号が読み出される画素P(1、Y)は露光時間が最適露光時間であるT1/2に設定されている。読出時間H6以降で読み出される画素も、同様に最適露光時間T1/2で露光できている。