(57)【要約】【課題】  イメージセンサの一部領域の読出しおよびスキップ読出しの設定を変更しても露出および画質の変化が小さい撮影装置を提供する。【解決手段】  撮像装置は、ローリングシャッター方式のイメージセンサの一部の領域の画素データを読出して出力することが可能な撮像装置であって、イメージセンサからの読出し条件を設定するための読出し条件設定手段と、イメージセンサの蓄積時間を設定するための蓄積時間設定手段と、読出し条件に基づき、蓄積時間に対応するカウント数を設定するカウント数設定手段と、カウント数に基づき、読出し条件に関わらず一定の蓄積時間となるように、イメージセンサの蓄積及び読出しを制御する制御手段と、制御手段によって読み出された画素信号を出力するための画像信号出力手段とを有することを特徴とする。【選択図】  図１
2015144385.tif 000002
【特許請求の範囲】
【請求項１】
ローリングシャッター方式のイメージセンサの一部の領域の画素データを読出して出力することが可能な撮像装置であって、
前記イメージセンサからの読出し条件を設定するための読出し条件設定手段と、
前記イメージセンサの蓄積時間を設定するための蓄積時間設定手段と、
前記読出し条件に基づき、前記蓄積時間に対応するカウント数を設定するカウント数設定手段と、
前記カウント数に基づき、前記読出し条件に関わらず一定の蓄積時間となるように、前記イメージセンサの蓄積及び読出しを制御する制御手段と、
前記制御手段によって読み出された画素信号を出力するための画像信号出力手段と、
を有する、ことを特徴とする撮像装置。
【請求項２】
前記制御手段は、前記蓄積時間が全ての読出し対象の画素信号を読み出すための読出し時間以上の場合は、前記イメージセンサの読出し対象行からの読出しが終了した後に、該読出し対象行の蓄積を開始するとともに該読出し対象行の次の行の読出しを開始し、前記蓄積時間が全ての読出し対象の画素信号を読み出すための前記読出し時間より短い場合は、前記イメージセンサの読出し対象行の蓄積を開始させた後、該読出し対象行から前記カウント数後の行の蓄積を開始するときから前記読出し対象行の読出しを行う、ことを特徴とする請求項１に記載の撮像装置。
【請求項３】
前記イメージセンサからの読出し条件は、前記イメージセンサ内の１以上の読出し領域である、ことを特徴とする請求項１又は２に記載の撮像装置。
【請求項４】
前記カウント数設定手段は、前記蓄積時間と、前記読出し領域の単位行あたりの読出し時間と、前記読出し領域とに基づいて、前記カウント数を設定する、ことを特徴とする請求項３に記載の撮像装置。
【請求項５】
前記イメージセンサからの読出し条件は、前記イメージセンサの読出し行及びスキップ行の単位パターンの行数であるスキップ単位である、ことを特徴とする請求項３に記載の撮像装置。
【請求項６】
前記カウント数設定手段は、前記蓄積時間と、前記読出し領域の単位行あたりの読出し時間と、前記読出し領域と、前記スキップ単位と、に基づいて前記カウント数を設定する、ことを特徴とする請求項５に記載の撮像装置。
【請求項７】
前記カウント数設定手段は、前記蓄積時間が全ての読出し対象の画素信号を読み出すための読出し時間以上の場合は前記蓄積時間と前記スキップ単位とに基づいてカウント数を設定し、前記蓄積時間が前記読出し時間より短い場合は、前記蓄積時間と前記読出し領域の読み出し対象の行数とに基づいて前記カウント数を設定する、ことを特徴とする請求項６に記載の撮像装置。
【請求項８】
レンズと請求項１乃至７のいずれか１項に記載の撮像装置とを有する撮影装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像装置に関するものであり、特に部分読出し機能やスキップ読出し機能を有する撮像装置およびそれを有する撮影装置に関するものである。
【背景技術】
【０００２】
工場の製造ラインで人間の検査者が行う目視検査の代わりに、画像入力用の撮像装置が用いられてきている。これらの撮像装置は、マシンビジョンカメラとも呼ばれ、各種部品や製品をコンピュータやデジタル入出力機器とともに検査するために用いられている。近年では、検査精度を向上させるために、1000万以上の画素を有する撮像装置が使用されるようになってきた。また、民生用のデジタルカメラにおいても同様で、撮影画質を向上させるためにますます多画素化が進んでいる。
【０００３】
多画素化、高画質化のニーズが高まってきたことを受け、近年ではカメラに用いられる撮像素子としてはローリングシャッター方式のCMOSセンサが多く用いられている。ローリングシャッター方式では、撮像素子の行ごとに順次露光させる方式である。このため、センサに露光させるための露光時間はユーザによって時間で設定されるが、カメラ内部の制御においては設定された時間に対応する行単位で行われる。
【０００４】
このような撮像装置で動画を撮像し、画素配列の全画素から信号を読み出す場合、画素数が多いと読出し時間が長くなる。これにより、動画撮影の場合、1秒あたりの撮像枚数が減少する。また、撮像した映像を外部に出力するデータ量が多くなるため、フレームレートが低下する。例えば、マシンビジョンカメラでは、撮像する画素数に伴って、読出し時間の合計時間が変化するとともに、撮像装置外部に送出する画素数に伴って、フレームレートが変化することとなる。
【０００５】
マシンビジョンカメラが用いられる検査システムでは、検査時間の短縮化も同時に求められている。そこで、カメラで撮像される領域のうち、関心領域のみの画素信号を読み出すことによって読出し画素数を減らし、これによりフレームレートを高速化することが行われる。フレームレートが高速化することができれば、システム全体の検査時間を短縮することができる。
【０００６】
一方、ローリングシャッター方式では、光電変換のための蓄積処理と光電変換された信号の読出し処理とが密接に連携している。例えば、関心領域の選択によって読出し時間の合計時間が短縮化されると、センサへの蓄積時間も同時に短縮化される場合がある。
【０００７】
特許文献1では、画素配列の一部を関心領域として指定して該関心領域のみを読出し、残りの不要な領域の読出しについてはスキップ、すなわち読み飛ばした場合、露光時間が短くなることを課題としている。そこで、特許文献1では最適な露出となるように絞りや画像信号へのゲインにより、最適な露出になるようしている。
【０００８】
また、特許文献2では、動画撮影の際には、読出しをスキップして全体の読出し時間を短縮化することで、動画レスポンスを改善する例が開示されている。こちらも撮影者にとって視認性を向上させるためにエッジ強調処理が適用されており、露出面に関して改善がなされている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００１−０７８０８１号公報
【特許文献２】特開２０１０−１８１７５１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、上述の従来技術では、最適な露出とするためにゲインがかけられている。これらの従来技術では露出は確保されているが、いずれも撮影後の後処理のため画質が低下してしまうという問題があった。また、上述のように検査用途では、様々な露光時間が設定され、かつ関心領域が頻繁に変更されることから、従来技術では、関心領域の設定変更のたびに画質が変化してしまうという問題がある。検査用途のカメラでは、高画質で高精細な撮影画像が求められる。
【００１１】
そこで、本発明の目的は、部分読出し可能な撮像装置において、関心領域の設定が変更されたとしても、画質劣化の低減と露出の維持を両立させることができる撮像装置およびそれを有する撮影装置を提供することである。
【課題を解決するための手段】
【００１２】
本発明の撮像装置は、ローリングシャッター方式のイメージセンサの一部の領域の画素データを読出して出力することが可能な撮像装置であって、イメージセンサからの読出し条件を設定するための読出し条件設定手段と、イメージセンサの蓄積時間を設定するための蓄積時間設定手段と、読出し条件に基づき、蓄積時間に対応するカウント数を設定するカウント数設定手段と、カウント数に基づき、読出し条件に関わらず一定の蓄積時間となるように、イメージセンサの蓄積及び読出しを制御する制御手段と、制御手段によって読み出された画素信号を出力するための画像信号出力手段と、を有することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、関心領域の設定変更があっても露出が維持され、かつ関心領域の設定変更に伴う画質の低下を低減することができる撮像装置およびそれを有する撮影装置を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施例１の撮像装置の構成図
【図２】実施例１の撮像装置のイメージセンサの構造図
【図３】実施例１の撮像装置における撮像制御
【図４】実施例１の撮像装置における撮像制御
【図５】実施例１の撮像素子における読出し対象行の設定例
【図６】実施例１の撮像装置の読出し処理のフローチャート
【図７】図６の読出し処理のステップS130のサブルーチン
【図８】図６の読出し処理のステップS140のサブルーチン
【図９】図６の読出し処理のステップS150のサブルーチン
【図１０】図６の読出し処理のステップS160のサブルーチン
【図１１】実施例１の撮像装置における蓄積・読出し方式Aのタイミングチャート
【図１２】実施例１の撮像装置における蓄積・読出し方式Bのタイミングチャート
【図１３】実施例２の撮像素子における読出し対象行の設定例
【図１４】実施例２の撮像装置の読出し処理のフローチャート
【図１５】図１４の読出し処理のステップS210のサブルーチン
【図１６】図１４の読出し処理のステップS230のサブルーチン
【図１７】実施例２の撮像装置における蓄積・読出し方式Aのタイミングチャート
【図１８】実施例２の撮像装置における蓄積・読出し方式Bのタイミングチャート
【図１９】実施例３の撮像装置の撮像素子の読出し対象領域の設定例
【図２０】実施例３の撮像装置の読出し処理のフローチャート
【図２１】実施例３の撮像装置における蓄積・読出し方式Aのタイミングチャート
【図２２】実施例３の撮像装置における蓄積・読出し方式Bのタイミングチャート
【図２３】実施例３の撮像素子におけるスキップ領域の説明図
【図２４】実施例４の撮像素子における読出し対象領域の設定例
【図２５】実施例４の撮像装置の読出し処理のフローチャート
【図２６】図２５の読出し処理のステップS410のサブルーチン
【図２７】実施例４の撮像素子における読出し対象領域の説明図
【図２８】実施例４の撮像素子におけるスキップ領域の説明図
【発明を実施するための形態】
【００１５】
以下に、本発明の好ましい実施の形態を、添付の図面に基づいて詳細に説明する。図１は、本発明の実施形態にかかわる構成図である。
【実施例１】
【００１６】
図１に本発明の第1の実施例の撮像装置の構成図を示す。
【００１７】
撮像装置100は、イメージセンサ101を含む撮像系を有し、センサ制御部102およびADC（AD変換器）103、アドレスカウンタ104によって撮像処理を行う。レンズ200は、撮像装置100の外部に構成され、撮像装置100とレンズ200で撮影装置を構成する。レンズ200を通った光束は、撮像装置100のイメージセンサ101上に結像する。レンズ200は、不図示の絞り群、変倍レンズ群、フォーカスレンズ群などの要素から構成される。また、レンズ200に構成される変倍レンズ群は、焦点距離が可変でも固定でも良い。センサ制御部102は、イメージセンサ101の蓄積動作や読出し動作の制御を行う。センサ制御部102によってイメージセンサ101の撮像処理を行うと、イメージセンサ101からは撮像信号が出力され、ADC103にてAD変換される。アドレスカウンタ104は、センサ制御部102が蓄積制御と読出し制御を行うイメージセンサ101の対象行あるいは対象画素となるアドレスを算出する。イメージセンサ101からのスキップ読出しを行う場合は、イメージセンサ101の全画素のうち、読出しを行う画素を対象画素としてアドレス出力し、読出し対象とならないアドレスはスキップする。タイミング信号合成部105は、ADC103からの撮像信号データとアドレスカウンタ104からの信号とを、センサ制御部102を介して入力し、撮像信号データに対し、フレーム同期信号や垂直同期信号、水平同期信号などを合成する。
【００１８】
読出し条件設定手段300は、撮像装置100の外部から関心領域（読出し領域）となる領域の座標データやスキップ単位行数を設定する。スキップ単位行数についての説明は後述する。たとえば、読出し条件設定手段300としてPCを使用する。読出し条件入力部107は、読出し条件定手段300で入力された設定データを入力し保持する。
【００１９】
蓄積時間設定手段400は、撮像装置100の外部から撮像装置100のシャッター速度としての蓄積時間を設定する。読出し条件設定手段400として、たとえばPCを使用する。蓄積時間入力部108は、イメージセンサ101の全画素を蓄積及び読出しをするための範囲設定値を保持している。なお、前述の読出し条件設定手段300と蓄積時間設定手段400とを同一のPC内に構成しても良い。
【００２０】
蓄積制御部109は、読出し条件入力部107と蓄積時間入力部108からの設定データを入力する。また、蓄積制御部109は、読出し条件入力部107で保持された読出し設定データを、センサ制御部102を介してアドレスカウンタ104へ出力する。
【００２１】
画像信号出力部（画像信号出力手段）106は、タイミング信号合成部105から出力される撮像信号データにおいて、読出し条件入力部107で入力された読出し領域と、撮像信号の各関心領域の座標の対応が取れるように、必要なタイミング信号を加え、出力画像信号を生成する。画像信号出力部106は、タイミング信号合成部105で生成された出力画像信号を撮像装置100の外部へ出力する。
【００２２】
図２にイメージセンサ101の構造図を示す。図２のImgは撮像素子を示している。図２中の11から33までは、撮像素子Imgに構成される画素配列の一部を示している。撮像素子Img中の各画素には、V1、V2、V3、・・・およびH1、H2、H3を通じて、垂直回路1011および水平回路1012に接続されている。
【００２３】
図２の垂直回路1011へは、３つの制御線、ChargeReset、ReadReset、LineShift、が接続されている。これらの制御線は、図１のセンサ制御部102と接続されている。垂直回路1011内部には、不図示の蓄積対象行選択レジスタと読出し対象行選択レジスタが構成されている。各行選択レジスタは、撮像素子Img中の各ラインの蓄積対象行と読出し対象行をそれぞれ選択することができる。制御線ChargeResetは、各行選択レジスタによって選択されている蓄積対象行を先頭行にリセットし、先頭行の蓄積を開始する。制御線ReadResetは、行選択レジスタによって選択されている読出し対象行を先頭行にリセットする。制御線LineShiftは、行選択レジスタが選択している蓄積対象行と読出し対象行をインクリメントするための制御線である。制御線LineShiftにHi信号を1回入力すると、各行選択レジスタが選択している対象の次の行が参照される。本実施例では、制御線LineShiftが1本の場合の例について説明するが、蓄積対象行選択レジスタと読出し対象行選択レジスタが参照する行を個別にインクリメントするために別々に構成しても良い。
【００２４】
図２の水平回路1012へは、2つの制御線、TransferH、Hpulse、が接続されている。これらの制御線は、上述の垂直回路1011と同様に、図１のセンサ制御部102に接続されている。上述の制御線LineShiftへのワンショットパルス入力後、制御線TransferHは、垂直回路1011の行選択レジスタによって選択されている読出し対象行の画素データを水平回路1012に転送する。例えば、行選択レジスタによって選択されている読出し対象行がV2のとき、制御線TransferHによって、21、22，23の撮像信号が水平回路1012に転送される。制御線Hpulseは、水平回路1012に転送された撮像信号を読み出すための制御線である。制御線Hpulseに読出し制御のためのパルスが入力されると、図２のアンプ1013を通じて、outから撮像信号がアナログ出力される。この撮像信号は、図１のADC103に接続されている。ADC103は制御線Hpulseに同期して、ADC103に入力された撮像信号をAD変換する。制御線Hpulseは、読出しを行う画素数分のクロックを発生している。
【００２５】
ここで、イメージセンサ101の撮像制御の例について図３および図４を用いて説明する。イメージセンサ101はローリングシャッター方式のイメージセンサである。ここでは、イメージセンサ101の読出し対象行数をn行として説明する。後述するが、読出し対象となるn行分の読出し時間と1行あたりの蓄積時間を比較し、その大小関係で2種類の撮像制御を切り替える。1行あたりの蓄積時間がn行分の読出し時間以上である場合における撮像制御の例を図３に示す。
【００２６】
図３では、前述の垂直回路1011に制御線ChargeReset、ReadReset、LineShiftが接続された図と、上部にタイミングチャートを示している。図３では横軸が時間方向を示している。また、図３下部の縦軸はイメージセンサ101の行方向の蓄積・読出しイメージを示している。まず、時間p01で制御線ReadReset、LineShiftにパルスを入力することで、イメージセンサ101の第1行目の読出しを開始している。時間p01での制御線LineShiftパルスの入力後、図３では不図示の水平回路1012の制御線TransferH、Hpulseを用いて、第1行目の画素信号の読出しを行っている。画素信号の読出し時には、図１のADC103によって制御線Hpulse に同期したAD変換がなされる。図３で示すTReadlineは、1行分の画素信号の読出しに要する時間である。1行分の読出しが完了した後、時間p02で制御線LineShiftおよびChargeResetにワンショットパルスを入力している。なお、Treadlineは、時間p01とp02の間隔時間と同等である。また、TReadlineは、時間p01、p02などで入力される制御線LineShiftへのワンショットパルスのHi時間よりも十分長い。ここでは、垂直回路1011の行選択レジスタによって、読出し対象行は第2行が選択され、蓄積対象行として第1行が選択されている。時間p01からp02にかけて第1行の画素信号が読みだされた後、時間p02において第1行の蓄積を開始することとなる。また、時間p02からp03にかけて前述と同様にしてTReadlineの時間で第2行の画素信号が読みだされることとなる。また、図３の「読出し中の領域」「蓄積中の領域」で示されるように、各行間はTReadlineの時間分の時間差で、蓄積および読出しが行われることとなる。以下同様にして、時間p01からp0nまでの時間においてイメージセンサの最終行nまでの蓄積と読出しが行われると、再び時間p11で第一行目からの読出しが行われる。時間p11では、上述の時間p01で行われた水平回路1012への処理と同様の処理が行われる。また、時間p11で読みだされる第一行目の撮像信号は、時間p02からp11までに蓄積されたものである。また、例えば、時間p12で読みだされる第二行目の撮像信号は、時間p03からp12までに蓄積されたものである。時間p01からp0nまでで読みだされる撮像信号は、カメラ起動後の第0フレームであり、ダミーの読出しとしている。図３に示すFrameValid信号は、上記第0フレームにおいて蓄積された撮像信号を読み出す時間p11以降、すなわち第1フレーム以降の毎フレームで有効とし、時間p01からp0nまでに読みだされる第0フレームの撮像信号を無効としている。
【００２７】
このように、図３では、p01からp0nまで順次第０フレームの読出しを行いつつ、p02以降は各行で第０フレームにおける蓄積を順次開始させている。図３で示すように、Tread_Aとは、第一行から最終行nまでの読出し時間を示している。上述のTreadlineに行数nを掛けた時間がTread_Aとなる。Tcharge_Aは、第一行の蓄積時間を示している。図３では第一行から最終行nまでの各行の蓄積時間Tcharge_AはTcharge_A0と等しく、一様である。また、図３に示すTread_AをTread、Tcharge_AをTchargeとすると、図３におけるTchargeとTreadの関係は以下の式(1)の通りである。
Tcharge≧Tread      ・・・(1)
【００２８】
上述の式(1)の関係とは異なり、以下の式(2)で示す関係の場合、図４に示すような撮像制御を行う。
Tcharge＜Tread      ・・・(2)
【００２９】
図４では図３と同様に、垂直回路1011に制御線ChargeReset、ReadReset、LineShiftが接続され、上部にタイミングチャートを示している。まず、時間p01で制御線ChargeResetおよびLineShiftにワンショットパルスを入力することで、イメージセンサ101の第1行目の蓄積を開始する。次に、時間p02で制御線LineShiftにワンショットパルスを入力することで、第2行目の蓄積を開始する。時間p01とp02の間隔時間は、図３と同様にTreadlineである。同様にして、Treadline分の時間間隔で、すなわち時間p01, p02, ・・・ p0k, ・・・ で制御線LineShiftにワンショットパルスを入力していく。このように制御線LineShiftにワンショットパルスを入力していくことによって、イメージセンサ101の第1行、第2行、・・・ 第k行、・・・というようにTreadlineの時間ずれを伴って順次蓄積を開始していく。そして、時間p01+Tcで制御線ReadResetおよびLineShiftにワンショットパルスを入力すると、イメージセンサ101の第1行の蓄積を終了させる。時間p01+Tcでのワンショットパルス入力後、前述の図３と同様に、不図示の水平回路1012の制御線TransferH、Hpulseを用いて、第1行目の画素信号の読出しを行う。ここでは、時間p01からp01+Tcまでの時間すなわち、Tcharge_Bの蓄積時間で蓄積された撮像信号を読み出す。ここで、Tcとは一行あたりの蓄積時間Tcharge_BをTreadlineで割った値である。また、時間p01+Tcでは、第1行の読出しと同時に第Tc行の蓄積を開始している。以降、図３と同様の読出し方法により、時間p01+Tc以降、Treadlineの時間差を伴って、最終行である第n行目まで順次1行ずつ読出しが行われる。このようにイメージセンサ101の全行を読み出す時間はTread_Bで与えられる。読出しライン数が等しければ、Tread_Bは図３で示したTread_Aと等しい。
【００３０】
このように、式(2)の条件における図４の撮像制御では、読出し時間よりも蓄積時間の方が短い場合に行われる撮像制御の一例であり、第一行の読出しが開始した時刻以降に、第Tc行以降の蓄積が開始されていく。連続的に撮影を行う場合は、読出し対象とする行すべての読出しが終了した後に、次のフレームの蓄積や読出しを行う。
【００３１】
以上の撮像制御の例を踏まえ、本実施例では、1行おきに撮像信号を読み出すような撮像例について説明する。図５にイメージセンサ101が2000行の撮像素子で構成されている例について示す。本実施例では、図５に示す2000行分を読み出す場合と、斜線部で示すように2k行（kは自然数）の偶数行目のラインのみを選択して読み出す場合とで、露光レベルを同等とする方法について説明する。本実施例において撮像装置100が行う処理のフローチャートを図６に示す。撮像装置100に電源が投入されると、図６に示すステップS110から順番に処理を実行していく。
【００３２】
まず、図６のフローチャートのステップS110ではスキップ単位行数の入力を行う。本発明において、スキップ単位とは、読出し行とスキップ行の繰り返しの単位パターンの行数として定義する。ここでは、前述の図１の読出し条件設定手段300によって、読出し条件入力部107を通じて入力される。上述したように、本実施例では偶数行のみを読み出す設定を行うため、スキップ単位行数としては「2」となる。つまり前述のスキップ単位の定義によれば、1行の読出しと1行のスキップを行うことを意味する。読出し設定値は図１の読出し条件入力部107で保持され、蓄積制御部109に入力される。図６のステップS110が実行されると、次にステップS120へ進む。
【００３３】
ステップS120では、所謂シャッター速度としての蓄積時間の入力を行う。ここでは、図１の蓄積時間設定手段400によって、蓄積時間入力部108を通じて入力される。蓄積時間は図１の蓄積時間入力部108で保持され、蓄積制御部109に入力される。蓄積時間の単位は、一般的に「秒」である。例えば、1/250秒、1/500秒などの時間である。または、単位を「ミリ秒」として設定しても良い。本発明で示す蓄積時間とは、あくまで実時間としての時間である。図６のステップS120が実行されると、次にステップS130へ進む。
【００３４】
ステップS130では、蓄積制御部（カウント数設定手段）109において蓄積行数の変換演算を行う。図６のステップS130のサブルーチンを図７に示す。まず、図７のステップS131では、1行あたりの読出し時間を算出する。図２および図３での説明の通り、TReadlineは1行分の画素信号の読出しに要する時間である。TReadline は、制御線LineShiftへのワンショットパルスから制御線TransferHによる読出し対象行の画素データ転送までの時間と、制御線Hpulseによる読出し時間とを加算した時間である。このうち、制御線TransferHによる読出し対象行の画素データ転送までの時間は、あらかじめ固定値として保持して良い。また、制御線Hpulseによる読出し時間については、1行あたりの読出し画素数に依存するため、読出しパルス周期時間に1行あたりの読出し画素数を乗じた時間に、所定のオーバーヘッド時間を加算した時間を算出する。なお、読出しパルス周期は、イメージセンサ101の仕様で定められる固定の時間として良い。これら上述の固定値は、不図示のメモリに保持しておいても良いし、センサ制御部102あるいは蓄積制御部109などで保持しておいても良い。図７のフローチャートの説明に戻る。ステップS131にて1行あたりの読出し時間が算出されると、ステップS132へと進む。
【００３５】
図７のステップS132では、蓄積行数の算出を行う。ここで、「蓄積行数」とは、ステップS120で入力された蓄積時間を、ステップS131で算出された1行あたりの読出し時間で割ることによって算出される値である。蓄積時間と1行あたりの読出し時間が与えられると、蓄積時間を蓄積行数という単位に変換することができる。蓄積行数という単位を用いることによって、1行あたりの読出し画素数および読出し時間に依存せずに蓄積時間（シャッター速度、露光時間）を扱う（制御する）ことが可能となる。すなわち、読出し開始或いは蓄積開始（蓄積リセット）を指令するとともに、対象行を次の行に移すために使用される制御パルスをカウントすることにより、読出し開始及び蓄積開始と蓄積時間とをシンクロさせて制御することが可能となる。蓄積行数を制御に使用するため、蓄積行数は整数である必要があり、小数点以下の値については切り捨てても良いし、四捨五入するなどしても良い。本発明においては、このようにして丸められた整数の蓄積行数（カウント数）を蓄積時間設定手段400より入力された蓄積時間に対応する値として用いて制御を行う。しかし、蓄積時間（シャッター速度）及び蓄積時間として通常設定可能な間隔に対し、1行あたりの読出し時間が非常に短いことを考慮すると、上記の丸め処理で得られる蓄積行数と設定された蓄積時間は、制御に対して十分に対応している値であると言える。ステップS132が実行されると、図７のサブルーチンを終了し、図６のステップS140に進む。
【００３６】
図６のステップS140では蓄積・読出し方式の設定を行う。ステップS140の蓄積・読出し方式の設定のサブルーチンを図８に示す。図８ではまずステップS141にて、関心領域（読出し対象）の範囲に含まれる行数である読出し行数の算出を行う。本実施例では図５に示した通り、読出し対象は2000行である。そのため、ステップS141において、読出し行数は2000行となる。
【００３７】
図８のステップS141が実行されると、ステップS142へと進む。ステップS142では、ステップS132で算出された蓄積行数と、ステップS141で算出された読出し行数の大小比較を行う。なお、ステップS142の評価式は、前述で説明した式(1)の両辺を1行あたりの読出し時間Treadlineで割った条件式(1a)と等価である。
蓄積行数（=Tcharge／Treadline）≧読出し行数（Tread／Treadline）  ・・・(1a)
【００３８】
ステップS141において、蓄積行数が読出し行数以上である場合、すなわち前述の式(1)において、蓄積時間が読出し時間よりも長い場合、ステップS142の判定は真となり、ステップS143へと進む。一方、ステップS142にて、蓄積行数が読出し行数未満である場合は、ステップS144へと進む。ステップS142が偽である条件式は、前述の式(2)の両辺をTreadlineで割った条件式(2a)と等価である。
蓄積行数（=Tcharge／Treadline）＜読出し行数（Tread／Treadline）  ・・・(2a)
【００３９】
図８のステップS143では、蓄積・読出し方式Aを設定する。蓄積・読出し方式Aとは、図３で説明したような蓄積読出し方式であり、イメージセンサの読出し対象行からの読出しが終了した後に、該読出し対象行の蓄積を開始するとともに該読出し対象行の次の行の読出しを開始する蓄積読出し方式である。また、ステップS144では、蓄積・読出し方式Bを設定する。蓄積・読出し方式Bとは、図４で説明したような蓄積読出し方式であり、イメージセンサの読出し対象行の蓄積を開始させた後、該読出し対象行から蓄積行数後の行の蓄積を開始するときから該読出し対象行の読出しを行う蓄積読出し方式である。図８のステップS143あるいはステップS144が実行されると、図８のサブルーチンを終了し、図６のステップS150へと進む。
【００４０】
図６のステップS150では、蓄積行数補正の処理が行われる。ステップS150のサブルーチンを図９に示す。図９では、まずステップS151では、蓄積・読出し方式Aが設定されている場合、ステップS152へと進み、蓄積・読出し方式Bが設定されている場合、ステップS153へと進む。
【００４１】
図９のステップS152では、蓄積行数の補正量として、ステップS141で算出された読出し行数にスキップ率を掛けた値が算出される。単位は「行」である。読出し行数は、図5で示した通り2000行である。また、スキップ率は、図６のステップS110で設定されたスキップ単位行数から求めることができる。スキップ率の算出式を以下の式(3)に示す。
スキップ率＝1−1／スキップ単位行数  ・・・(3)
【００４２】
前述の通り、スキップ単位行数は「2」であるため、スキップ率は「1/2」となる。よって、ステップS152で設定される補正量は、2000行×（1/2）より、1000行となる。ステップS152が実行された後は、ステップS154へと進む。ステップS154では、蓄積行数に補正量を加算し、蓄積行数を更新する。例えば、上述の例に従うと、補正量は1000行であったため、蓄積行数2000行に補正量1000行を加算し、得られる補正後の蓄積行数は3000行となる。
【００４３】
図９のステップS153では、ステップS132で算出された蓄積行数を読出し率で割った値が算出され、補正された蓄積行数として更新される。読出し率は、以下に示す式(4)または式(5)から求めることができる。本実施例の説明で用いてきたスキップ単位行数が「2」であるとき、読出し率は「1/2」となる。
読出し率＝1／スキップ単位行数  ・・・(4)
読出し率＝1−スキップ率  ・・・(5)
【００４４】
図９のステップS153で算出される蓄積行数の単位はステップS152と同様の「行」である。蓄積・読出し方式Bとなる条件は、蓄積行数が2000行未満の場合である。これを満たす例として、蓄積行数が500行である場合、読出し率「1/2」で除算すると、補正後の蓄積行数は1000行が得られる。
【００４５】
図９のステップS153あるいはS154が実行されると、図９のサブルーチンを終了し、図６のステップS160へと進む。
【００４６】
図６のステップS160では蓄積・読出し処理が行われる。ステップS160のサブルーチンを図１０に示す。図１０では、ステップS161から順番に処理が実行される。図１０のステップS161では、図９のステップS151と同様に、ステップS143あるいはS144で設定された蓄積・読出し方式を評価する。蓄積・読出し方式Aが設定されている場合、ステップS162へと進む。一方、蓄積・読出し方式Bが設定されている場合、ステップS163へと進む。
【００４７】
図１０のステップS162について説明する。ステップS162では、蓄積・読出し方式Aの撮像処理が実行される。蓄積・読出し方式Aの撮像処理について、図１１を用いて説明する。
【００４８】
図１１では、図３と同様に、垂直回路1011に制御線ChargeReset、ReadReset、LineShiftが接続され、上部にタイミングチャートを示している。図１０のステップS162すなわち図１１では2000行で構成された例のイメージセンサ101の撮像制御の例について説明する。ここでは、図６のステップS110で設定されたスキップ単位行数「2」と、図９のステップS154で算出された蓄積行数3000行という設定内容に基づいて説明する。
【００４９】
図１１では、まず時間p01で制御線ReadReset及びLineShiftにワンショットパルスを入力することで、イメージセンサ101の第1行目の読出しを開始している。そして、時間p01における制御線LineShiftワンショットパルスの入力後ただちに、すなわち時間p02において、制御線LineShift及びChargeResetにワンショットパルスを入力している。
【００５０】
図３の例では時間p01における制御線LineShiftパルスの入力後、第1行目の画素信号の読出しを行っていることの説明をしたが、図１１の時間p01およびp02では、第1行目の読出しをすることなく、第2行目への選択へ移行していることとなる。すなわち、第1行目のスキップを行っている。時間p02における制御線LineShiftパルスの入力後、イメージセンサ101の第2行目の読出しを開始している。
【００５１】
ここでは、図３と同様に不図示の水平回路1012の制御線TransferH、Hpulseを用いて、第2行目の画素信号の読出しを行っている。図３での説明と同様に、画素信号の読出し時には、図１のADC103によって制御線Hpulseに同期したAD変換がなされる。第2行目の画素信号の読出しが終了すると、次に時間p03にて時間p01と同様に、制御線LineShiftへのワンショットパルスが入力される。その直後に時間p04にて、時間p02と同様に、制御線LineShiftへのワンショットパルス入力および第4行目の読出しが行われる。このようにして、図１１では、イメージセンサ101の奇数行のスキップを行い、偶数行の読出しを行っている。
【００５２】
図１１で示すTReadlineは、1行分の画素信号の読出しに要する時間である。図１１では、時間p01からp02までの時間は十分短く、上述の2行単位のスキップおよび読出し時間を合わせた時間が図３のTReadlineと等しい。これらを一般化し、n行の読出し行数に対し、時間p0n-1およびp0nまでは、奇数行をスキップし、偶数行を読出す。本実施例の例では、2000行で構成されたイメージセンサ101を用いているため、n=2000となる。時間n以降では、図３と同様にTReadlineの間隔で制御線LineShiftパルスを入力していく。n以降の時間で、一定のTReadlineの間隔で制御線LineShiftにパルスを出力し続けるのは、この間に蓄積を継続している行は制御線LineShiftのパルスのカウント数で時間を管理しているため、一定間隔のパルスを出力し続ける必要があるためである。そして、時間p0endまで制御線LineShiftパルスを入力すると、時間p11以降で前述と同様に、奇数行のスキップ処理と偶数行の読出し処理が行われる。なお、時間p0endのendは蓄積行数であり、例えば、図９のステップS154で設定された例では、補正後の蓄積行数が3000行であるため、end = 3000 となる。制御線LineShiftへのワンショットパルスをカウントしていき、蓄積行数分カウントすると、イメージセンサ101にその時間分の蓄積がされることとなる。
【００５３】
図１１において、2000行分の画素信号の読出し時間Tread_A1は、前述の通り、2行単位のスキップおよび読出し処理が行われるため、図３で示したTread_Aの2分の1の時間、すなわち1000行分の読出し時間となっている。読出し時間が2分の1となったことによって、各行への蓄積行数が1000行分短くなってしまう。具体的には、図３では、時間p0nにおいて、蓄積行数2000行分（入力された蓄積時間）が確保されていたが、図１１では、時間p0nにおいて、第1行目は1000行分の蓄積行数となっている。言い換えると、時間p0nにおいて、制御線LineShiftパルスは全行数の2000回カウントされているが、実時間としてはスキップ読出ししているため、TReadline×1000、が経過していることになる。従って、時間p0nから、実時間でTReadline×1000の時間さらに蓄積する必要がある。そこで、図９のステップS154で補正されたように、p0endまでの残り蓄積行数1000行分の時間を追加で蓄積させる。こうすることによって、図３の蓄積時間Tcharge_Aと図１１の蓄積時間Tcharge_A1とが実時間で同等となるように撮像制御している。すなわち、読出し対象範囲内のスキップ読出しで読み出されるべき行を一定時間間隔で読出すために、スキップする1000行分に対しては無視できる程度の短時間で制御線LineShiftパルスが入力される。従って、同じ制御線LineShiftパルスのカウントで管理する蓄積時間については、スキップされた1000行分に対応する時間（TReadline×1000）だけ蓄積行数（蓄積時間）を補正する必要があり、この補正された蓄積行数をステップS154で演算している。この補正により、スキップ読出しの条件によって、蓄積・読出し方式Aにおける実質的な蓄積時間が影響を受けて変更されることはなくなる。
【００５４】
このように図１１では、上述のようにスキップした行数分、実時間としての蓄積時間が削減されてしまうため、図９で示したような蓄積行数に補正量を加えることで、スキップ設定がある場合と無い場合で、実時間としての蓄積時間を同等としている。
【００５５】
図１０のフローチャートの説明に戻る。ステップS163では、ステップS163では、蓄積・読出し方式Bの撮像処理が実行される。蓄積・読出し方式Bの撮像処理について、図１２を用いて説明する。
【００５６】
図１２では図１１と同様に、垂直回路1011に制御線ChargeReset、ReadReset、LineShiftが接続され、上部にタイミングチャートを示している。図６のステップS110で設定されたスキップ単位行数「2」と、図９のステップS153で算出された蓄積行数1000行という設定内容に基づいて、2000行で構成されたイメージセンサ101の撮像制御の例について説明する。
【００５７】
図１２では、まず、時間p01で制御線ChargeResetおよびLineShiftにワンショットパルスを入力することで、イメージセンサ101の第1行目の蓄積を開始している。そして、時間p01における制御線LineShiftワンショットパルスの入力後（第1行目の蓄積開始後）ただちに、すなわち時間p02において、制御線LineShiftにワンショットパルスを入力している。ここでは、イメージセンサ101の第2行目の蓄積を開始している。図１１の時間p01とp02の間隔時間と同様に、図１２の時間p01とp02との間隔も間隔時間Treadlineよりも十分短い。時間p02における制御線LineShiftパルスの入力後、時間p03およびp04で制御線LineShiftにワンショットパルスを入力する。時間p01からp03までの間隔時間はTreadlineである。同様にして制御線Lineshiftへワンショットパルスを入力していく。時間p01+Tcで、制御線ReadResetおよびLineShiftへそれぞれワンショットパルスが入力されると、イメージセンサ101の第1行目からの画像信号読出しが開始される。ここで、Tcは図９のステップS153で算出された蓄積行数を示しており1000行となる。すなわち、イメージセンサの所定の読出し対象行の蓄積を開始させた後、蓄積行数（カウント数）後の蓄積を開始するときから該所定の読出し対象行の読出しを行う。
【００５８】
時間p01+Tcでのワンショットパルスの入力後、ただちに時間p02+Tcで制御線LineShiftへワンショットパルスが入力されることで、第1行目の読出しをすることなく、第2行目への選択へ移行していることとなる。すなわち、第1行目のスキップを行い、時間p02におけるLineShiftパルスの入力後、イメージセンサ101の第2行目の読出しを開始している。ここでは、図３と同様に不図示の水平回路1012の制御線TransferH、Hpulseを用いて、第2行目の画素信号の読出しを行っている。図３での説明と同様に、画素信号の読出し時には、図１のADC103によって制御線Hpulseに同期したAD変換がなされる。以下同様にして、画像信号の読出しを行っていく。
【００５９】
図１２では、図１１と同様に、時間p01+Tcからp02+Tcまでの時間は十分短く、上述の2行単位のスキップおよび読出し時間を合わせた時間が図３のTReadlineと等しい。これらを一般化すると、n行の読出し行数に対し、時間p01からp0n-1+Tcおよびp0n+Tcまでは、奇数行をスキップ、偶数行を読み飛ばすこととなる。本実施例の例では、図１１と同様にイメージセンサ101の行数n=2000となる。
【００６０】
図１２において、蓄積時間Tcharge_B1は、蓄積行数に換算するとTcであり1000行である。2行単位のスキップおよび読出し処理により、実時間としての蓄積時間は半分の500行となるが、結果的に図６のステップS110で入力された蓄積時間と同等となる。すなわち、ユーザが入力した所望の露光レベルと同等の撮影画像が得られることとなる。また、2行単位のスキップおよび読出し処理により、図１２のTread_B1は、図３および図４で示したTread_AおよびTread_Bの2分の1の時間、すなわち1000行分の読出し時間となっている。蓄積・読出し方式Bにおいては、蓄積時間は、読出し対象範囲すべての行に対する読出し時間より短い。
そのため、スキップ読出しが設定されている場合には、蓄積時間を決定するための基準となる制御線LineShiftパルスは、読出し行を読み出すタイミングでのみTReadlineの間隔で出力され、行をスキップするタイミングでは無視できる程度の短い間隔で出力される。従って、スキップ読出しの有無に関わらず一定の蓄積時間を維持するために、読出し率で蓄積行数を補正する必要があり、これをステップS153で演算している。この補正により、スキップ読出しの条件によって、蓄積・読出し方式Bにおける実質的な蓄積時間が影響を受けて変更されることはなくなる。
【００６１】
このように、本実施例では、イメージセンサ101のおよび1行あたりの読出し時間に基づき、蓄積行数を算出した。そして、図６のステップS110で設定されたスキップ設定に基づき蓄積行数を補正し、補正後の蓄積行数にしたがって、イメージセンサ101 の撮像制御を行う。こうすることで、図６のステップS120で設定されたユーザの所望の蓄積時間と同等となるように撮像制御している。また、図６のステップS120で設定された蓄積時間とイメージセンサ101の読出し行数との関係に基づいて、2種類の撮像制御方式を切り替えて撮像制御する例について示した。以上より、スキップ設定を変更したとしても、設定の前後で撮影画像の露出は同等とすることができる。
【実施例２】
【００６２】
実施例１では、設定された蓄積時間とイメージセンサ101の読出し行数との関係に基づいて、2種類の撮像方式を切り替えて撮像制御する例について示した。この2種類のうち、式(2)の条件で与えられる撮像制御では、図９のステップS153で示した補正式に基づいて蓄積行数が補正された。そして、補正後の蓄積行数に基づき、同じく式(2)の条件で与えられる条件で、図１２に示した撮像制御を行った。ここで、図９のステップS153で算出される蓄積行数は、前述の通りスキップ率あるいは読出し率に基づき決定されるが、スキップ率が高い（読出し率が低い）場合、補正後の蓄積行数が多くなってしまうことがある。すなわち、スキップ率を考慮した補正によって、
蓄積行数（=Tcharge／Treadline） ≧ 読出し行数（Tread／Treadline）  ・・・(1a)
となってしまう場合があり得る。そこで、本実施例では、このような条件の場合でも最適に撮像されるような撮像制御方法について説明する。
【００６３】
本実施例における撮像装置の構成およびイメージセンサ101の構成は図１と図２に示されている。これらの構成は、実施例１と同様であるため、説明を省略する。
【００６４】
本実施例では、実施例１よりもスキップ率が高い条件下における撮像例について説明する。図１３にイメージセンサ101が2000行の撮像素子で構成されている例について示している。本実施例では、図１３の2000行分を読み出す場合と、斜線部の第（4k-3）行目（kは自然数）のみを選択して読み出す場合とで、露光レベル（蓄積時間）を同等とする例について説明する。さらに、補正後の蓄積行数が多くなった場合に、撮像方式を切り替えることによって、最適な撮像制御を行う例について併せて説明する。本実施例において撮像装置100が行う処理のフローチャートを図１４に示す。撮像装置100に電源が投入されると、図１４に示すステップS110から順番に処理を実行していく。
【００６５】
図１４のフローチャートのステップS110からステップS150までは、実施例１と同様の処理を行うため、詳細な説明を省略する。なお、本実施例では図１４のステップS110の設定値として「4」が入力された例を説明する。また、図１４のステップS130において、蓄積行数が800行として算出された場合を例として説明する。このとき、ステップS140では、蓄積・読出し方式Bが選択されるため、ステップS150では、図９のステップS153へと進む。図１４のステップS110で設定されるスキップ設定値が「4」であるため、図９のステップS153における読出し率は前述の式(4)から「1/4」となる。そのため、蓄積行数は4倍されて3200行に設定される。
【００６６】
図１４の説明に戻る。ステップS150が実行されると、ステップS210へと進む。ステップS210では、蓄積方式の再設定が行われる。ステップS210のサブルーチンを図１５に示す。
【００６７】
図１５ではまずステップS211が実行される。ステップS211では、読出し対象の領域に含まれる行数である読出し行数が取得される。ここでは、図８のステップS141と同様に、イメージセンサ101の読出し行数2000行が取得される。図１５のステップS211が実行されると、ステップS212へと進む。ステップS212では、図１４のステップS150で補正された蓄積行数と前述の読出し行数の大小関係が比較される。蓄積行数が読出し行数以上である場合は、ステップS213へと進む。ステップS213では、蓄積・読出し方式Aが設定される。図１５のステップS212において、蓄積行数が読出し行数未満である場合は、ステップS214へと進む。ステップS214では、蓄積・読出し方式Bが設定される。
【００６８】
図１５において、本実施例での設定例では、図１４のステップS150で補正された蓄積行数が3200行であり、読出し行数が2000行である。この場合、ステップS212は真となるため、ステップS213へと進み、蓄積・読出し方式Aが設定される。なお、前述のスキップ設定が「2」の例の場合は図１４のステップS150で補正された蓄積行数は1600行となる。この場合、読出し行数が2000行よりも小さいため、ステップS214へと進み、蓄積・読出し方式Bが設定される。ステップS213あるいはステップS214を実行すると、図１５のサブルーチンを終了し、再び図１４のステップS220へと進む。
【００６９】
図１４のステップS220では、ステップS210で再設定された蓄積・読出し方式がAであるかを判定する。真である場合は、ステップS230へと進み、偽である場合は、ステップS160へと進む。本実施例での設定例の場合、前述の通り蓄積・読出し方式Aが設定されているため、ステップS230へと進むこととなる。
【００７０】
図１４のステップS230では、蓄積行数の再補正を行う。ステップS230が実行されるまでの蓄積行数は、ステップS140で設定された蓄積方式に基づき、ステップS150にて算出されたものである。ステップS210で蓄積方式が再設定されることにより、蓄積・読出し方式が変更された場合、最終的に撮像制御される際の蓄積・読出し方式に合わせて、蓄積行数の再設定が必要となる。本実施例の方法では、もともと蓄積・読出し方式Bであった方式が、スキップ設定により蓄積行数を補正した結果、蓄積・読出し方式Aで撮像制御可能な条件となる場合に特に効果が得られる。図１４のステップS230のサブルーチンを図１６に示す。
【００７１】
図１６では、まずステップS231にて蓄積行数の初期化が行われる。ここでは、図１４のステップS130で算出された蓄積行数が設定される。ステップS231が実行された後は、ステップS232へと進み、補正量が算出される。ステップS232は、実施例１の図９ステップS152で行われる処理と同じである。ここでは、読出し行数にスキップ率を乗算することによって蓄積行数の補正量を得る。本実施例の設定例では、前述の通り、読出し行数は2000行であり、スキップ率「3/4」であるため、蓄積行数の補正量は1500行となる。図１６のステップS232が実行されると、ステップS233へと進み、設定されている蓄積行数に補正量を加算することで補正後の蓄積行数を得ることができる。本実施例の設定例の場合、図１４のステップS130で算出された蓄積行数800行に、補正量1500行が加算されるため、補正後の蓄積行数として2300行を得る。ステップS233が実行された後は、図１６のサブルーチンを終了し、図１４のステップS160へと進む。
【００７２】
ステップS214での比較は、スキップを考慮した上での読出し行数を読み出すために必要な時間と、設定された蓄積時間とを比較することと等価である。スキップを考慮すると読出し行数を読み出すために必要な時間は短くなる。従って、もともと、蓄積・読出し方式Ａの状態であった場合はその状態は変わらないが、蓄積・読出し方式Ｂの状態であった場合は、それから蓄積・読出し方式Ａの状態に変えた方が良い場合がある。そこで、スキップを考慮した後の状態が蓄積・読出し方式Ｂの条件であれば、蓄積行数を演算する方法は変更する必要はないので、蓄積行数の補正に関する見直しの必要はない。しかし、スキップを考慮した後の状態が蓄積・読出し方式Ａの条件であれば、スキップを考慮したことによる、蓄積・読出し方式ＢからＡへ変更した場合を含むので、蓄積行数を正しく評価するために、蓄積行数の補正を見直す必要がある。そのために、ステップS230が実行される。
【００７３】
図１４のステップS160にて実行される処理は、実施例１の図１０で説明した通りである。本実施例の設定例では、ステップS210で再設定された蓄積・読出し方式Aによる撮像制御が行われる。このときの蓄積・読出し方式Aの撮像処理について、図１７を用いて説明する。
【００７４】
図１７では、スキップ率が「1/4」である撮像制御を示している。時間p01において制御線LineShift、ReadResetへのワンショットパルスが入力され、イメージセンサ101 の第1行目の読出しを開始している。そして、時間p01の直後のp02において、制御線ChargeResetおよびLineShiftへのワンショットパルスを入力することによって、イメージセンサ101 の第2行目の読出しおよび第1行目の蓄積を開始している。同様にして時間p02の直後に不図示の時間p03、p04と連続的にLineShiftにワンショットパルスを入力することで、4行単位での撮像制御を行っている。図１０での説明と同様に、n = 2000であり、p0n-3から不図示の時間p0nまでの読出しが終了すると、時間p0n+1からp0endまではTreadlineの時間間隔でLineShiftへワンショットパルスを入力していく。時間p01からp0nまでは、4行単位の撮像制御となるため、4k-3行から4k-1（kは自然数）行までの3行はスキップを行い、4k行の読出しを行っている。前述の例の場合、時間p0endのend = 2300となる。
【００７５】
図１７において、2000行分の画素信号の読出し時間Tread_A2は、前述の通り、4行単位のスキップおよび読出し処理が行われるため、図３で示したTread_Aの4分の1の時間、すなわち実時間としては500行分の読出し時間となっている。読出し時間が4分の1となったことによって、各行の蓄積行数が1500行分短くなってしまう。具体的には、図１７では、時間p0n（n=2000）において、第1行目の実時間としての蓄積時間は、蓄積行数500行分となっている。そこで、図９のステップS154で補正されたように、時間p0endすなわちend = 2300行までの残り蓄積行数300行分の時間を追加で蓄積させる。こうすることによって、図３の蓄積時間Tcharge_Aと図１１の蓄積時間Tcharge_A1とが実時間で同等となるように撮像制御している。
【００７６】
このように図１７では、図１１と同様に、スキップした行数分、実時間としての蓄積時間が削減されてしまうため、図１６で示したように蓄積行数を補正することで、スキップ設定がある場合と無い場合で、実時間としての蓄積時間を同等としている。
【００７７】
図１４のフローチャートのステップS160の説明に戻る。図１４のステップS220の判定が偽である場合、ステップS160では、図１８に示すような、蓄積・読出し方式Bによる撮像制御が行われる。図１８における撮像制御では、図12で示した2行単位での制御を4行単位制御としている点以外は同様である。
【００７８】
このように、本実施例では、スキップ設定による補正後の蓄積行数が、読出し行数以上となるとき、蓄積・読出し方式Aに切り替えることで、蓄積行数を再補正している。このように蓄積・読出し方式を最適に切り替えることで、スキップ設定に寄らず露出を同等とすることができ、撮像の更新周期を最適にすることができる。
【００７９】
なお、本実施例では、スキップ単位に対し、読み出す行数を1行とした例について説明したが、読み出す行数は1行に限定されない。例えば、モノクロカメラあるいは3枚の撮像素子で構成されるカラーカメラの場合は、本実施例での説明を適用するのが望ましい。一方で、撮像素子が単板であるカラーカメラの場合は、ベイヤ配列について考慮する必要がある。すなわち、複数行にまたがって1色が作られるようなベイヤ配列で構成される撮像素子を用いる場合、スキップ単位に対し、読み出す行数を2行以上としても良い。
なお、上記では、蓄積時間(S120)を一行の読出し時間で除した整数（又は、四捨五入、切り捨てした整数）を蓄積行数とし(S130)、蓄積行数と読出し行数との大小関係により蓄積・読出し方式を設定(S140)する。さらに、設定された蓄積・読出し方式に応じて蓄積行数を補正(S150)し、補正蓄積行数と読出し行数との大小関係により蓄積・読出し方式を再設定(S210)し、蓄積行数を補正(S220,230)していた。これは、所定のベース値に対して、再設定されるスキップの条件を補正として反映させていくハードウエア、或いはソフトウエアを有する場合に好適な処理フローである。しかし、本発明はこれに限定されることはない。たとえば、蓄積行数演算時(S130)で、入力された蓄積時間(S120)を、読出し対象範囲の一行あたりの読出し時間で除した整数、或いは、四捨五入、切り捨て等で整数に丸めた値を求め、これにスキップ単位行数を乗算したものを蓄積行数とする(S130に対応)。また、この場合には、図１１中に示した時間p0n+1からp0endまでにおいても、時間p01からp0nまでと同様に、スキップ単位行数のパルスが1行あたりの読出し時間内で出力されるように制御する。このように制御することで、図１４のステップS210〜S230までの（蓄積・読出し方式BからAへの変更の場合をカバーするための）補正の処理をしなくても、図６の制御と同様の本発明の効果を得ることができる。
【実施例３】
【００８０】
実施例１および２では、イメージセンサ101の全画面に対し、所定のスキップ率で撮像制御を行う例について説明してきた。本実施例では、イメージセンサ101のうち、一部の関心領域を読出しの対象領域として抽出し、それ以外の領域を読み飛ばすような撮像制御について説明する。イメージセンサ101の全画面を読み出す場合と、一部の関心領域を読み出す場合（関心領域が一行全体に渡っていない場合）とでは、一行あたりの読出し時間が変わるため、読出し領域の設定変更に伴い、一行あたりの読出し時間が一定であることを前提とした制御では、撮影画像の露出が変化してしまう場合がある。本実施例ではこのような撮影条件において、一行あたりの読出し時間の変化を伴うような読出し領域の設定変更があった場合でも、露出（蓄積時間、又は、シャッター速度）を同等とすることができる撮像装置について説明する。
【００８１】
本実施例における撮像装置の構成およびイメージセンサ101の構成は図１と図２に示されている。これらの構成は、実施例１と同様であるため、説明を省略する。
【００８２】
本実施例では、イメージセンサ101のうち、1つの関心領域が設定されるような撮像例について説明する。図１９にイメージセンサ101が2000行の撮像素子で構成されている例を示す。本実施例では、図１９の全画素信号を読み出す場合と、斜線部の関心領域のみを選択して読み出す場合とで、露光レベルを同等とする例について説明する。本実施例において撮像装置100が行う処理のフローチャートを図２０に示す。撮像装置100に電源が投入されると、図２０に示すステップS310から順番に処理を実行していく。
【００８３】
まず、図１９のフローチャートのステップS310では読出し領域設定の入力を行う。ここでは、図１の読出し条件設定手段300によって、読出し条件入力部107を通じて入力される。本実施例では、読出し領域として図１９の斜線部分の領域を読み出すため、読出し領域の座標情報となる開始座標(X, Y)と終了座標（X,Y）を以下のように入力する。このとき、読出し領域の横画素数は1500画素である。また、読出し領域の縦画素数すなわち行数は500行である。
開始座標 (501, 1001)、終了座標 (2000, 1500)
【００８４】
読出し設定値は図１の読出し条件入力部107で保持され、蓄積制御部109に入力される。図２０のステップS310が実行されると、次にステップS120へ進む。
【００８５】
図２０のステップS120では、実施例１および実施例２と同様にシャッター速度に対応する蓄積時間を入力する。ステップS120が実行されると、ステップS130へと進む。
【００８６】
図２０のステップS130では、実施例１および実施例２と同様に、ステップS120で設定された蓄積時間から上述の定義による蓄積行数への変換演算が行われる。なお、実施例１及び２の図７のステップS131で算出された1行あたりの読出し時間TReadlineは、1行の画素データすべてを読み出すことを前提としている。一方で、本実施例では、図１９に示す通り、読出し対象としている領域の横画素数は1000画素としており、1行全体3000画素の1/3の画素数となる。前述の通り、制御線Hpulseによる画素信号の読出し時間は、1行あたりの読出し画素数に依存するため、実施例１や実施例２と比較し、約1/3の読出し時間となる。図７のステップS132では、蓄積時間をTreadlineで除算することによって、蓄積行数が算出されることを示した。そのため、ステップS132で算出される蓄積行数は、実施例１や実施例２と比較し、約3倍の蓄積行数が算出されることとなる。このように、ステップS310で入力される読出し領域のサイズにより、1行あたりの画素信号の読出し時間が変化する場合があることとなる。また、1行あたりの読出し時間と読出し領域のサイズにより、蓄積行数が変化することとなる。これは、イメージセンサ内で蓄積時間は制御線LineShiftパルスのカウント数に基づいて制御されているため、ステップS120で入力された蓄積時間を実現するため行われる処理である。図２０のステップS130が実行されると、ステップS140に進む。
【００８７】
図２０のステップS140では、図６と同様に蓄積方式が設定される。本実施例における読出し行数は、図１９に示す通り1000行である。そのため、ステップS140のサブルーチンである図８のステップS142で行われる判定式では、読出し行数1000行との大小比較結果に基づいて、蓄積・読出し方式AもしくはBが選択されることとなる。ステップS140が実行されると、ステップS160に進む。
【００８８】
図２０のステップS160では、イメージセンサ101の撮像制御が行われる。ステップS160では、前述の通り、蓄積行数と読出し行数の大小比較結果に基づいて、蓄積・読出し方式AもしくはBが実行される。蓄積・読出し方式Aが実行された場合のタイミングチャートを図２１に示す。なお、本実施例における蓄積時間の具体的な設定例の説明は、実施例１と実施例２と同様であるため割愛する。
【００８９】
図２１では、まず時間p01において制御線LineShiftおよびReadResetへのワンショットパルスが入力され、イメージセンサ101 の第1行目の読出しを開始している。そして、p01の直後に不図示の時間p02において、制御線ChargeResetおよびLineShiftへのワンショットパルスを入力することによって、イメージセンサ101 の第2行目の読出しおよび第1行目の蓄積を開始している。同様にして、時間p0501まで連続的にLineShiftにワンショットパルスを入力していくことで、図中のSkip領域すなわちイメージセンサ101の第501行目までスキップを行っている。p0501以降は、Treadlineの間隔で制御線LineShiftへワンショットパルスを入力していく。ここで、本実施例におけるTreadlineは、図２０のステップS130にて説明したように、実施例１および実施例２におけるTreadlineの間隔時間の1/3の時間となる。Treadlineは、ステップS310で読出し領域が設定された後、蓄積制御部109内で演算され保存される。また、図２１中のFrameValidがHi状態である期間は、図１９の斜線部分の領域、つまり図２０のステップS310で設定した領域を読出しているタイミングを示している。本実施例の前述の設定例では、イメージセンサ101の第501行目から第1500行目までが読出し対象の領域である。読出し対象の1000行分が読み出される時間を図２１のTread_A3で示している。Tread_A3は本実施例における前述の設定例によれば、読出し行数1000行にTreadlineを乗算することによって読出し時間を得ることができる。時間p01500以降すなわちイメージセンサ101の第1500行目までの読出し処理の後は、Treadlineの時間間隔で制御線LineShiftへワンショットパルスを入力する。そして、時間p0endまでLineShiftへのワンショットパルスを入力後、時間p01以降の読出し処理と同様の処理を行う。なお、時間p0endのend は蓄積行数である。また、図２１に示すTcharge_A3は、図２０のステップS120で設定された蓄積時間と同等となる。ここでのTcharge_A3は、第501行目の読出し後から、次の第501行目の読出し開始までの時間を示している。
【００９０】
図２２に蓄積・読出し方式Bが実行された場合のタイミングチャートを示す。図２２では、まず時間p01において制御線LineShiftおよびChargeResetへのワンショットパルスが入力され、イメージセンサ101の第1行目の蓄積を開始している。そして、図２２と同様に、時間p0501すなわち第501行目まで制御線LineShiftへワンショットパルスを連続的に入力することで、第1行目から第501行目までの蓄積を連続的に開始させている。第501行目以降はTreadlineの時間間隔で制御線LineShiftへワンショットパルスを入力している。そして、時間p01+Tcすなわち蓄積行数Tc分のワンショットパルスを入力後、制御線ReadResetへのワンショットパルス入力とともに、イメージセンサ101の第1行目からの読出しを開始する。前述と同様にして、イメージセンサ101の第1行目から第500行目までの読出しをスキップさせることができる。図２１と同様に図２２で示しているTcharge_B3は、図２０のステップS120で設定された蓄積時間と同等となる。
【００９１】
このように、本実施例では、読出し領域の設定サイズにより、1行あたりの画素信号の読出し時間が画面全体を読み出すよりも短い時間となる。そこで、1行あたりの読出し時間に基づいて蓄積行数を設定することで、設定された蓄積時間を同等とすることが可能となる。そのため、読出し領域の設定前後で、画像の露出の変化を低減させることが可能となる。
【００９２】
なお、本実施例の図２１および図２２では、読出し領域以外の領域をスキップする例を示した（図２３）。スキップ処理の処理時間は、1行の読出し時間よりも十分短い場合は無視しても良い。一方で、読み飛ばす行数が多い場合や、1行あたりの読出し時間Treadlineが短い場合、スキップするための処理時間が無視できない場合がある。その場合は、蓄積行数の算出時に、スキップする処理時間を考慮した上で蓄積行数を算出すると良い。
【実施例４】
【００９３】
実施例３では、イメージセンサ101のうち、一部の関心領域から読出し、それ以外の領域を読み飛ばすような撮像制御について説明した。一方で、複数の関心領域を抽出し、関心領域間においてはスキップを行う場合、撮像制御の特性上、他の関心領域の露出を変化させてしまう可能性がある。そこで、本実施例では複数の関心領域が設定されるような撮影条件において、読出し領域の設定変更があった場合でも、設定変更の前後において露出（蓄積時間、又は、シャッター速度）を同等とすることができる撮像装置について説明する。
【００９４】
本実施例における撮像装置の構成およびイメージセンサ101の構成は図１と図２に示されている。これらの構成は、実施例１と同様であるため、説明を省略する。
【００９５】
本実施例では、イメージセンサ101のうち、4つの関心領域が設定されるような撮像例について説明する。図２４にイメージセンサ101が幅3000画素、縦2000行の撮像素子で構成されている例について示している。図２４では、AreaA, AreaB, AreaC, AreaDの4つ関心領域が斜線で示されている。本実施例では、図２４の全画素信号を読出す場合と、斜線部で示された4つの関心領域を抽出して読出す場合とで、露光レベルを同等とする例について説明する。
【００９６】
本実施例において撮像装置100が行う処理のフローチャートを図２５に示す。撮像装置100に電源が投入されると、図２５に示すステップS310から順番に処理を実行していく。
【００９７】
まず、図２５のフローチャートのステップS310では読出し領域設定の入力を行う。ステップS310は実施例３の図２０と同様のため、説明を省略する。本実施例では図２４の斜線部分の領域を読み出す。実施例３と同様に、図１の読出し条件設定手段300によって、各読出し領域の開始座標(X, Y)と終了座標(X, Y)を入力する。図２４の各読出し領域の座標は、以下のように示される。
・AreaA：開始座標 (201, 201)、終了座標 (950, 400)
・AreaB：開始座標 (2001, 201)、終了座標 (2750, 400)
・AreaC：開始座標 (201, 1501)、終了座標 (950, 1700)
・AreaD：開始座標 (2001,1501)、終了座標 (2750, 1700)
【００９８】
読出し設定値は前述の通り、図１の読出し条件入力部107で保持され、蓄積制御部109に入力される。図２５のステップS310が実行されると、次にステップS120へ進む。ステップS120では実施例１と同様にシャッター速度に対応する蓄積時間が入力される。ステップS120が実行されると、ステップS410へと進む。
【００９９】
図２５のステップS410では、蓄積時間から上述の定義による蓄積行数への変換演算が行われる。ステップS410のサブルーチンを図２６に示す。
【０１００】
図２６のサブルーチンでは、ステップS411から順番に処理が実行される。まず、ステップS411において、読出し領域の最小・最大座標が算出される。前述のAreaA〜AreaDの各座標からXおよびYの最小、最大座標を求める。図２７に示すように、AreaA〜AreaDをAreaEとして1つの領域と見立てると、以下の最小座標および最大座標を得る。
・AreaE：最小座標(201,201)、最大座標(2750, 1700)
【０１０１】
次に図２６のステップS412へと進み、1行あたりの読出し時間が算出される。まず、前述のAreaEの幅を求めると2550画素となる。この幅画素数を読み出すための時間を1行あたりの読出し時間とする。実施例１と同様に、1画素あたりの読出し時間と前述のAreaEの幅画素数に基づき、1行を読出しのためのオーバーヘッド時間などを考慮して算出する。次にステップS413へと進み、ステップS120で入力された蓄積時間を、ステップS412で算出した1行あたりの読出し時間で除算することにより、蓄積行数を算出する。ステップS413が実行されると、図２６のサブルーチンを終了し、図２５のステップS140へと進む。
【０１０２】
図２５のステップS140では、蓄積方式が設定される。ステップS140で行われる処理は実施例１から３と同様であるため、説明を省略する。ステップS140が実行されると、ステップS160へと進む。
【０１０３】
図２５のステップS160では蓄積・読出し処理が行われる。ステップS160では実施例３と同様が行われる。ここでは、図２８を用いて、読出し領域と読み飛ばす領域について説明する。まずイメージセンサ101の第1行目から第200行目までは、実施例３の図１７および図１８と同様の方法でスキップを行う。次に、第201行目以降は読出しを行う。
【０１０４】
図２８で示したSkipH1およびSkipH2で示した領域では、画素のスキップを行うことが望ましいが、用いるイメージセンサの構造上、読出しを行う必要がある場合は読出し処理を行っても良い。また、第401行目から第1500行目までの領域は読出し領域として指定されていない領域となる。ここでは、図２８ではSkipV2として示している。SkipV2の領域では、前述の通り、イメージセンサ101へのLineShiftパルスを連続的に入力することで、スキップを行う。そして、第1500行目までのスキップを行った後は、再び第 1501行目から読出しを行う。第1501行目から第1700行目までの読出し処理は、第201行目から第400行目までの読出し処理を同様である。以上、ステップS160で行われる蓄積・読出し処理により、AreaA、AreaB、AreaC、AreaDを読み出すことが可能となる。
【０１０５】
このように、本実施例では、複数の読出し領域を設定された場合に、設定された蓄積時間と、読出し対象領域の1行あたりの読出し時間とから蓄積行数を算出した。このように蓄積行数を算出することにより、読出し領域の設定変更があった場合でも、設定変更の前後において露出を同等とすることができる。
【０１０６】
なお、図２６のステップS412では、前述のAreaEの幅画素数すなわち2550画素という画素数に基づいて、1行あたりの読出し時間を算出したが、前述の通り、AreaAとAreaBの間の領域を読み出すことを前提とした。AreaAとAreaBの間の領域を真の意味でスキップした場合の待ち時間が無視できる場合は、AreaAおよびAreaBの幅画素数を加算し、すなわち幅を1500画素として1行あたりの読出し時間を算出すれば良い。そして、1行あたりの読出し時間に基づいて、関心領域の設定前後で蓄積時間が一定となるような蓄積行数を算出すれば良い。図２５のステップS160で行われる蓄積・読出し処理では、図２８に示したように、AreaA とAreaBとの間、およびAreaCとAreaDとの間の画素を読み出す際、SkipH2で示すようにスキップを行えば良い。
【０１０７】
以上、本発明の好ましい実施例について説明したが、本発明はこれらの実施形態に限定されないことはいうまでもなく、その要旨の範囲内で種々の変形及び変更が可能である。また、本稿で述べた実施例を組み合わせて実施しても良い。
【０１０８】
なお、本発明では、スキップ単位の数として「2」および「4」が設定された例について述べたが、スキップ単位数については任意の数が設定可能である。
【０１０９】
また、スキップ単位数に対し、読出し行数は「1」として説明したが、前述の通りカラー撮影を行う場合は、所謂ベイヤ配列を考慮した読出し行数を設定して適用しても良い。また、本発明では最大4つの関心領域が設定された例について述べたが、関心領域の数や座標および領域の大きさについては限定されず、１以上の関心領域（読出し領域）について本発明を適用することができる。また、撮影画像に関しては、3000×2000の画素数を例に説明したが、画素数はこれに限定されない。
【符号の説明】
【０１１０】
100    撮像装置
101    イメージセンサ
102    センサ制御部（制御手段）
106    画像信号出力部（画像信号出力手段）
109    蓄積制御部（カウント数設定手段）
300    読出し条件設定手段
400    蓄積時間設定手段
【図１】
2015144385.tif 000003
【図２】
2015144385.tif 000004
【図３】
2015144385.tif 000005
【図４】
2015144385.tif 000006
【図５】
2015144385.tif 000007
【図６】
2015144385.tif 000008
【図７】
2015144385.tif 000009
【図８】
2015144385.tif 000010
【図９】
2015144385.tif 000011
【図１０】
2015144385.tif 000012
【図１１】
2015144385.tif 000013
【図１２】
2015144385.tif 000014
【図１３】
2015144385.tif 000015
【図１４】
2015144385.tif 000016
【図１５】
2015144385.tif 000017
【図１６】
2015144385.tif 000018
【図１７】
2015144385.tif 000019
【図１８】
2015144385.tif 000020
【図１９】
2015144385.tif 000021
【図２０】
2015144385.tif 000022
【図２１】
2015144385.tif 000023
【図２２】
2015144385.tif 000024
【図２３】
2015144385.tif 000025
【図２４】
2015144385.tif 000026
【図２５】
2015144385.tif 000027
【図２６】
2015144385.tif 000028
【図２７】
2015144385.tif 000029
【図２８】
2015144385.tif 000030