(57)【要約】【課題】  イメージセンサの一部領域の読出しおよびスキップ動作を行っても読出し対象行の各行間の露光時間差を低減する。【解決手段】  撮像装置は、ローリングシャッター方式のイメージセンサの一部の領域の画素データを読出して出力することが可能な撮像装置であり、センサからのデータ読出し制御に関する読出し条件を設定する読出し条件設定手段と、イメージセンサの蓄積時間を設定する蓄積時間設定手段と、読出し条件に基づき蓄積時間に対応するカウント数を設定するカウント数設定手段と、読出し条件に基づき、イメージセンサの撮像領域内で読出し又は蓄積に関する処理をスキップ行を設定するスキップ設定手段と、カウント数とスキップ行とに基づき、読出し条件に関わらず一定の蓄積時間となるように、イメージセンサの蓄積及び読み出しを制御する制御手段と、読出された画素信号を出力するための画像信号出力手段と、を有することを特徴とする。【選択図】  図１
2015144386.tif 000002
【特許請求の範囲】
【請求項１】
ローリングシャッター方式のイメージセンサの一部の領域の画素データを読出して出力することが可能な撮像装置であって、
前記イメージセンサからの画素データ読出し制御に関する条件である読出し条件を設定するための読出し条件設定手段と、
前記イメージセンサの蓄積時間を設定するための蓄積時間設定手段と、
前記読出し条件に基づき、前記蓄積時間に対応するカウント数を設定するカウント数設定手段と、
前記読出し条件に基づき、前記イメージセンサの撮像領域内で読出し又は蓄積に関する処理をスキップする行であるスキップ行を設定するスキップ設定手段と、
前記カウント数と前記スキップ行とに基づき、前記読出し条件に関わらず一定の蓄積時間となるように、前記イメージセンサの蓄積及び読み出しを制御する制御手段と、
前記制御手段によって読出された画素信号を出力するための画像信号出力手段と、
を有することを特徴とする撮像装置。
【請求項２】
前記読出し条件設定手段が設定する前記読出し条件は、前記イメージセンサの読出し行及びスキップ行の単位パターンの行数であるスキップ単位であり、
前記カウント数設定手段は、前記蓄積時間と、前記読出し領域の単位行あたりの読出し時間と、前記読出し領域と、前記スキップ単位と、に基づいて前記蓄積時間に対応するカウント数を設定し、
前記スキップ設定手段は、前記スキップ単位に基づき、前記スキップ行を設定する、
ことを特徴とする請求項１に記載の撮像装置。
【請求項３】
前記読出し条件設定手段が設定する前記読出し条件は、前記イメージセンサの読出し対象となる１以上の読出し領域であり、
前記カウント数設定手段は、前記１以上の読出し領域の単位行あたりの読出し時間に基づいてカウント数を設定し、
前記スキップ設定手段は、前記１以上の読出し領域と前記カウント数とに基づきスキップ行を設定する、
ことを特徴とする請求項１又は２に記載の撮像装置。
【請求項４】
前記制御手段は、前記蓄積時間が全ての読出し対象の画素信号を読み出すための読出し時間以上の場合は、前記イメージセンサの読出し対象行からの読出しが終了した後に、該読出し対象行の蓄積を開始するとともに該読出し対象行の次の行の読出しを開始し、前記蓄積時間が全ての読出し対象の画素信号を読み出すための前記読出し時間より短い場合は、前記イメージセンサの読出し対象行の蓄積を開始させた後、該読出し対象行から前記カウント数後の行の蓄積を開始するときから前記読出し対象行の読出しを行う、ことを特徴とする請求項１乃至３のいずれか１項に記載の撮像装置。
【請求項５】
前記スキップ設定手段は、前記蓄積時間が全ての読出し対象の画素信号を読み出すための読出し時間以上の場合は、読出しに関するスキップ行を設定し、前記蓄積時間が前記読出し時間より短い場合は、蓄積開始と読出しに関するスキップ行を設定する、ことを特徴とする請求項１乃至４のいずれか１項に記載の撮像装置。
【請求項６】
前記スキップ設定手段は、前記蓄積時間が全ての読出し対象の画素信号を読み出すための読出し時間より短い場合は、
読出し対象領域開始行≦読出し行≦読出し対象領域開始行
読出し対象領域開始行≦蓄積開始行≦読出し対象領域開始行
但し、
読出し行＝蓄積開始行−カウント数
を満たす読出し行及び蓄積開始行はスキップ行には設定しない、ことを特徴とする請求項５に記載の撮像装置。
【請求項７】
前記カウント数設定手段は、前記蓄積時間が全ての読出し対象の画素信号を読み出すための読出し時間以上の場合は、前記蓄積時間と前記スキップ単位とに基づいてカウント数を設定し、前記蓄積時間が前記読出し時間より短い場合は、前記蓄積時間と前記読出し領域の読み出し対象の行数とに基づいて前記カウント数を設定する、ことを特徴とする請求項２に記載の撮像装置。
【請求項８】
レンズと請求項１乃至７のいずれか１項に記載の撮像装置とを有する撮影装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像装置に関するものであり、特に部分読出し機能やスキップ読出し機能を有する撮像装置およびそれを有する撮影装置に関するものである。
【背景技術】
【０００２】
工場の製造ラインで人間の検査者が行う目視検査の代わりに、画像入力用の撮像装置が用いられてきている。これらの撮像装置は、マシンビジョンカメラとも呼ばれ、各種部品や製品をコンピュータやデジタル入出力機器とともに検査するために用いられている。近年では、検査精度を向上させるために、1000万以上の画素を有する撮像装置が使用されるようになってきた。また、民生用のデジタルカメラにおいても同様で、撮影画質を向上させるためにますます多画素化が進んでいる。
【０００３】
多画素化、高画質化のニーズが高まってきたことを受け、近年ではカメラに用いられる撮像素子としてはローリングシャッター方式のCMOSセンサが多く用いられている。ローリングシャッター方式では、撮像素子の行ごとに順次露光させる方式である。このため、センサに露光させるための露光時間の設定も行単位で行われる。
【０００４】
このような撮像装置で動画を撮像し、画素配列の全画素から信号を読み出す場合、画素数が多いと読出し時間が長くなる。これにより、動画撮影の場合、1秒あたりの撮像枚数が減少する。また、撮像した映像を外部に出力するデータ量が多くなるため、フレームレートが低下する。例えば、マシンビジョンカメラでは、撮像する画素数に伴って、読出し時間の合計時間が変化するとともに、撮像装置外部に送出する画素数に伴って、フレームレートが変化することとなる。
【０００５】
マシンビジョンカメラが用いられる検査システムでは、検査時間の短縮化も同時に求められている。そこで、カメラで撮像される領域のうち、関心領域のみの画素信号を読み出すことによって読出し画素数を減らし、これによりフレームレートを高速化することが行われる。フレームレートが高速化することができれば、システム全体の検査時間を短縮することができる。
【０００６】
一方、ローリングシャッター方式では、光電変換のための蓄積処理と光電変換された信号の読出し処理とが密接に連携している。例えば、関心領域の選択によって読出し時間の合計時間が短縮化されると、センサの一部の領域における蓄積時間が変化する場合がある。このとき、センサ全域に一様な露光時間とならないため、輝度ムラが発生する可能性がある。
【０００７】
そこで、特許文献１では、1枚の撮影シーケンスにおいて、行ごとに蓄積時間が異なる場合、その蓄積時間の差による輝度差を補正値により補正している例が開示されている。特許文献１によれば、行をスキップすることにより発生する行間の輝度のギャップを低減させることができるとしている。
【０００８】
また、特許文献２では、スキップ読出し時に、イメージセンサのNULL領域およびOB領域をスキップした際に発生する画質の劣化を課題としている。OB領域の撮像信号に基づいて、撮影画像の黒レベルを決めるため、OB領域をスキップしてしまうと黒レベルの精度が悪化する可能性がある。そこで、特許文献２では撮像信号の読出し時、NULL領域はスキップし、OB領域は読み出すことで、画質の劣化を低減させている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特許４７５７０１３号公報
【特許文献２】特開２０１０−１３０３９８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、特定の撮影条件においては、特許文献１で示されているような補正値やオフセット手段による補正が有効であるといえるが、様々な撮影シーンに対応するためには膨大な補正値を保持する必要がある。また、このような補正処理を撮影後に後処理した場合は、画質が低下してしまう可能性がある。
【００１１】
特許文献２では、ローリングシャッターの長い露光における撮像では効果が見られるが、高速シャッターを用いた場合は、行間における露光時間の違いが生じ、輝度ムラが発生する可能性がある。
【００１２】
一方で、検査用途で用いられるカメラは、様々な露光時間が設定され、スキップ設定値もニーズに応じて様々である。これに加え、検査用途のカメラでは、高画質で高精細な撮影画像が求められる。画質を最適に保つためには、1枚の撮影シーケンスにおいて、あるいは動画撮影時のフレーム間において、イメージセンサの全領域が同じ蓄積時間で露光されることが望ましい。
【００１３】
本発明の目的は、ローリングシャッター方式のイメージセンサを備える撮像装置において、様々な露光時間およびスキップ読出しに対応し、かつ輝度ムラを低減させることができる撮像装置およびそれを有する撮影装置を提供することである。
【課題を解決するための手段】
【００１４】
本発明の撮像装置は、ローリングシャッター方式のイメージセンサの一部の領域の画素データを読出して出力することが可能な撮像装置であって、イメージセンサからの画素データ読出し制御に関する条件である読出し条件を設定するための読出し条件設定手段と、イメージセンサの蓄積時間を設定するための蓄積時間設定手段と、読出し条件に基づき蓄積時間に対応するカウント数を設定するカウント数設定手段と、読出し条件に基づき、イメージセンサの撮像領域内で読出し又は蓄積に関する処理をスキップする行であるスキップ行を設定するスキップ設定手段と、カウント数とスキップ行とに基づき、読出し条件に関わらず一定の蓄積時間となるように、イメージセンサの蓄積及び読み出しを制御する制御手段と、制御手段によって読出された画素信号を出力するための画像信号出力手段と、を有することを特徴とする。
【発明の効果】
【００１５】
本発明によれば、関心領域の設定変更があっても露出が維持され、かつ関心領域の設定変更に伴う画質の悪化を低減可能な撮像装置およびそれを有する撮影装置を提供することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施例１の撮像装置の構成図
【図２】実施例１の撮像装置のイメージセンサの構造図
【図３】実施例１の撮像装置の撮像制御の例
【図４】実施例１の撮像装置の撮像制御の例
【図５】実施例１の撮像素子における読出し対象行の設定例
【図６】実施例１の撮像装置の読出し処理のフローチャート
【図７】図６の読出し処理のステップS130のサブルーチン
【図８】図６の読出し処理のステップS140のサブルーチン
【図９】図６の読出し処理のステップS150のサブルーチン
【図１０】図６の読出し処理のステップS160のサブルーチン
【図１１】実施例１の撮像装置における蓄積・読出し方式Aのタイミングチャート
【図１２】実施例１の撮像装置における蓄積・読出し方式Bのタイミングチャート
【図１３】実施例２の撮像素子における読出し対象行の設定例
【図１４】実施例２の撮像装置の読出し処理のフローチャート
【図１５】図１４の読出し処理のステップS220のサブルーチン
【図１６】実施例２の撮像素子における読出し対象行の説明図
【図１７】図１４の読出し処理の実施例２におけるステップS300のサブルーチン
【図１８】実施例２の撮像装置における蓄積・読出し方式Aのタイミングチャート
【図１９】実施例２の撮像装置における蓄積・読出し方式Bのタイミングチャート
【発明を実施するための形態】
【００１７】
以下に、本発明の好ましい実施の形態を、添付の図面に基づいて詳細に説明する。図１は、本発明の実施形態にかかわる構成図である。
【実施例１】
【００１８】
図１に本発明の第１の実施例の撮像装置の構成図を示す。
【００１９】
撮像装置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へは、3つの制御線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まで順次第0フレームの読出しを行いつつ、p02以降は各行で第1フレームとして出力するための蓄積動作を順次開始させている。図３で示すように、第一行から最終行nまでの読出し時間をTread_Aとして図示している。上述の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行以降の蓄積が開始されていく。連続的に撮影を行う場合は、読出し対象とする行すべての読出しが終了した後に、次のフレームの蓄積や読出しを行う。
【００３３】
以上の撮像制御の例を踏まえ、本実施例では、撮像信号を4行単位で読出しおよびスキップを行う撮像例について説明する。図５にイメージセンサ101が2000行の撮像素子で構成されている例を示す。本実施例では、斜線部で示すように4k行（kは自然数）を読み出し、かつ4k-1行、4k-2行、4k-3行をスキップする場合において、各行の蓄積時間を同等とする例について説明する。本実施例において撮像装置100が行う処理のフローチャートを図６に示す。撮像装置100に電源が投入されると、図６に示すステップS110から順番に処理を実行していく。
【００３４】
まず、図６のフローチャートのステップS110ではスキップ設定の入力を行う。前述の図１の読出し条件設定手段300によって、読出し条件入力部107を通じて入力される。ここでは、スキップ設定値としてスキップ単位を入力する。本発明において、スキップ単位とは、読出し行とスキップ行の繰り返しの単位パターンの行数を表現するための単位と定義する。上述したように、本実施例では4行を単位として読出しおよびスキップを行うため、スキップ単位としては「4」となる。つまり前述のスキップ単位の定義によれば、1行の読出しと3行のスキップを行うことを意味する。読出設定値は図１の読出設定入力部107で保持され、蓄積制御部109に入力される。図６のステップS110が実行されると、次にステップS120へ進む。
【００３５】
ステップS120では、所謂シャッター速度（蓄積時間の入力を行う。ここでは、図１の蓄積時間設定手段400によって、蓄積時間入力部108を通じて入力される。蓄積時間は図１の蓄積時間入力部108で保持され、蓄積制御部109に入力される。蓄積時間は一般的には1/250、1/500などで示され、単位として「秒」が用いられることが多いが、「ミリ秒」として実施しても良い。本発明で説明する蓄積時間とは、あくまで実時間としての時間である。図６のステップS120が実行されると、次にステップS130へ進む。
【００３６】
ステップS130では、蓄積制御部（カウント数設定手段）109において蓄積行数の変換演算を行う。図６のステップS130のサブルーチンを図７に示す。まず、図７のステップS131では、イメージセンサ101の1行あたりの読出し時間を算出する。図３および図４での説明の通り、TReadlineは1行分の画素信号の読出しに要する時間である。TReadline は、制御線LineShiftへのワンショットパルスから制御線TransferHによる読出し対象行の画素データ転送までの時間と、制御線Hpulseによる読出し時間とを加算した時間である。このうち、制御線TransferHによる読出し対象行の画素データ転送までの時間は、あらかじめ固定値として保持して良い。また、Hpulseによる読出し時間については、1行あたりの読出し画素数に依存するため、読出しパルス周期時間に1行あたりの読出し画素数を乗じた時間に、所定のオーバーヘッド時間を加算した時間を算出する。なお、制御線Hpulse読出しパルス周期は、イメージセンサ101の仕様で定められる固定の時間として良い。これら上述の固定値は、不図示のメモリに保持しておいても良いし、センサ制御部102あるいは蓄積制御部109などで保持しておいても良く、実装手段は限定されない。図７のフローチャートの説明に戻る。ステップS131にて1行あたりの読出し時間が算出されると、ステップS132へと進む。
【００３７】
図７のステップS132では、蓄積行数の算出を行う。ここで、「蓄積行数」とは、ステップS120で入力された蓄積時間を、ステップS131で算出された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で算出された読出し行数にスキップ率を掛けた値が算出される。単位は「行」である。読出し行数は、図５で示した通り2000行である。また、スキップ率は、図６のステップS110で設定されたスキップ単位行数から求めることができる。スキップ率の算出式を以下の式(3)に示す。
スキップ率 ＝ 1 − 1 ／ スキップ単位行数  ・・・(3)
【００４４】
前述の通りスキップ単位行数は「4」である。スキップ率は「3/4」となる。よって、ステップS152で設定される補正量は、2000行×（3/4）より、1500行となる。ステップS152が実行された後は、ステップS154へと進む。ステップS154では、蓄積行数に補正量を加算し、蓄積行数を更新する。例えば、図７のステップS132で算出された蓄積行数を2000行とすると、前述の補正量1500行を加算し、得られる補正後の蓄積行数は3500行となる。
【００４５】
図９のステップS153では、ステップS132で算出された蓄積行数を読出し率で割った値が算出され、補正された蓄積行数として更新される。読出し率は、以下に示す式(4)または式(5)から求めることができる。本実施例の説明で用いてきたスキップ単位行数が「4」であるとき、読出し率は「1/4」となる。
読出し率 ＝ 1 ／ スキップ単位行数      ・・・(4)
読出し率 ＝ 1 − スキップ率            ・・・(5)
【００４６】
図９のステップS153で算出される蓄積行数の単位はステップS152と同様の「行」である。蓄積・読出し方式Bとなる条件は、蓄積行数が2000行未満の場合である。これを満たす例として、蓄積行数が300行である場合、読出し率「1/4」で除算すると、補正後の蓄積行数は1200行が得られる。図９のステップS153あるいはS154が実行されると、ステップS155へと進む。
【００４７】
図９のステップS155では、蓄積行数のマスク処理が行われる。撮影画面で一様な露光時間を得るためには、様々なスキップ設定値に対し、読出し対象行のすべての行において、蓄積時間を同一にする必要がある。すなわち、イメージセンサ101の各行において、蓄積行数が同じでかつ、実時間としての蓄積時間が同じである必要がある。これらを満たすためには、補正後の蓄積行数がスキップ単位行数の整数倍であることが必要となる。補正後の蓄積行数がスキップ単位行数の整数倍ではない場合、イメージセンサ101の特定の行で余計な時間分、蓄積が行われる場合がある。そこで、補正後の蓄積行数をスキップ単位行数の整数倍にマスクする。例えば、図９のステップS153で算出された補正後の蓄積行数1203行の場合、スキップ単位行数「4」の整数倍ではないため、ステップS155でマクス処理を適用すると、補正後の蓄積行数は1200行となる。本実施例ではステップS153で算出された補正後の蓄積行数1200行であるのでもともとスキップ単位行数「4」の整数倍であり、ステップS155の処理を適用した結果は1200行となり変わらない。タイミングチャートを用いた詳細な説明は、図６のステップS160で後述する。
【００４８】
なお、マスクする値は、スキップ単位行数の整数倍が望ましいが、イメージセンサ101を制御するためのオーバーヘッド処理時間を考慮する場合は、例えばマスク値を整数倍+1などとしても良い。本発明を適用する場合に、イメージセンサ101の仕様に合わせて、ステップS155でマスクされる値は任意の値で良い。図９のステップS155が実行されると、図９のサブルーチンを終了し、図６のステップS160へ進む。
【００４９】
図６のステップS160では蓄積・読出し処理が行われる。ステップS160のサブルーチンを図１０に示す。図１０では、ステップS161から順番に処理が実行される。図１０のステップS161では、図９のステップS151と同様に、ステップS143あるいはS144で設定された蓄積・読出し方式を評価する。蓄積・読出し方式Aが設定されている場合、ステップS162へと進む。一方、蓄積・読出し方式Bが設定されている場合、ステップS163へと進む。
【００５０】
図１０のステップS162について説明する。ステップS162では、蓄積・読出し方式Aの撮像処理が実行される。蓄積・読出し方式Aの撮像処理について、図１１を用いて説明する。
【００５１】
図１１では、図３と同様に、垂直回路1011に制御線ChargeResetとReadResetおよびLineShiftが接続され、上部にタイミングチャートを示している。図１０のステップS162すなわち図１１では2000行で構成された例のイメージセンサ101の撮像制御の例について説明する。ここでは、図６のステップS110で設定されたスキップ単位行数「4」と、図９のステップS155で算出された蓄積行数3500行という設定内容に基づいて説明する。
【００５２】
図１１では、まず時間p01で制御線ReadResetとLineShiftにワンショットパルスを入力することで、イメージセンサ101の第1行目の読出しを開始している。そして、時間p01における制御線LineShiftワンショットパルスの入力後ただちに、不図示の時間p02、p03、p04において、制御線LineShiftにワンショットパルスを連続的に入力している。時間p02においては、制御線ChargeResetに対してもワンショットパルスが入力されている。
【００５３】
図３の例では時間p01における制御線LineShiftパルスの入力後、第1行目の画素信号の読出しを行っていることの説明をした。図１１の時間p01からp04まででは、第1行目から第3行目の読出しをすることなく、第4行目への読出し選択へ移行していることとなる。すなわち、第1行目から第3行目までのスキップを行っている。p04における制御線LineShiftパルスの入力後、イメージセンサ101の第4行目の読出しを開始している。
【００５４】
ここでは、図３と同様に不図示の水平回路1012の制御線TransferH、Hpulseを用いて、第4行目の画素信号の読出しを行っている。図３での説明と同様に、画素信号の読出し時には、図１のADC103によって制御線Hpulse に同期したAD変換がなされる。第4行目の画素信号の読出しが終了すると、次に時間p05にて時間p01と同様に、制御線LineShiftへのワンショットパルスが入力される。その直後に時間p06からp08までにかけて、時間p02からp04と同様に、制御線LineShiftへのワンショットパルス入力が連続的に行われ、第8行目の読出しが行われる。このようにして、図１１では、イメージセンサ101の4行単位でのスキップおよび読出しを行っている。
【００５５】
図１１で示すTReadlineは、1行分の画素信号の読出しに要する時間である。図１１では、時間p01からp04までの時間は十分短く、上述の4行単位のスキップおよび読出し時間を合わせた時間が図３のTReadlineと等しい。これらを一般化し、n行の読出し行数に対し、時間p0n-3およびp0nまでは、スキップ単位行数-1行(=3行)分のスキップを行い、1行分を読み出している。本実施例の例では、2000行で構成されたイメージセンサ101を用いているため、n = 2000となる。n以降の時間では、図３と同様にTReadlineの間隔で制御線LineShiftにパルスを入力していく。n以降の時間で、一定のTReadlineの間隔で制御線LineShiftにパルスを出力し続けるのは、この間に蓄積を継続している行は制御線LineShiftのパルスのカウント数で時間を管理しているため、一定間隔のパルスを出力し続ける必要があるためである。そして、時間p0endまで制御線LineShiftにパルスを入力すると、時間p11以降で前述と同様に、4行単位でのスキップ処理および読出し処理が行われる。なお、時間p0endのendは蓄積行数であり、例えば、補正後の蓄積行数が3500行である場合、end = 3500 となる。制御線LineShiftへのワンショットパルスをカウントしていき、蓄積行数分カウントすると、イメージセンサ101にその時間分の蓄積がされることとなる。
【００５６】
図１１において、2000行分の画素信号の読出し時間Tread_A1は、前述の通り、4行単位のスキップおよび読出し処理が行われるため、図３で示したTread_Aの4分の1の時間、すなわち500行分の読出し時間となっている。読出し行数が4分の1となったことによって、各行への蓄積行数が1500行分短くなってしまう。具体的には、図３では、時間p0nにおいて、蓄積行数2000行分（入力された蓄積時間）が確保されていたが、図１１では、p0nの時間において、第1行目は500行分の蓄積行数となっている。言い換えると、時間p0nにおいて、制御線LineShiftパルスは全行数の2000回カウントされているが、実時間としてはスキップ読出ししているため、TReadline×500、が経過していることになる。従って、時間p0nから、実時間でTReadline×500の時間さらに蓄積する必要がある。そこで、図９のステップS154で補正されたように、時間p0endまでの残り蓄積行数1500行分の時間を追加で蓄積させる。すなわち、図３の蓄積時間Tcharge_Aと図１１の蓄積時間Tcharge_A1とが実時間で同等となるように撮像制御している。すなわち、読出し対象範囲内のスキップ読出しで読み出されるべき行を一定時間間隔で読出すために、スキップする1500行分に対しては無視できる程度の短時間でLineShiftパルスが入力される。従って、同じ制御線LineShiftパルスのカウントで管理する蓄積時間については、スキップされた1500行分に対応する時間（TReadline×1500）だけ蓄積行数（蓄積時間）を補正する必要があり、この補正された蓄積行数をステップS154で演算している。この補正により、スキップ読出しの条件によって、蓄積・読出し方式Aにおける実質的な蓄積時間が影響を受けて変更されることはなくなる。さらに、図９のステップS155で行われた蓄積行数のマスク処理により、イメージセンサ101の全行数の蓄積時間が同等となっている。これは、イメージセンサ101の蓄積開始タイミングと読出しタイミングがすべてスキップ単位による各開始タイミングで対称性を持たせているためである。
【００５７】
このように図１１では、図９で示したような蓄積行数に補正量を加え、さらにスキップ単位行数によるマスク処理を適用することで、イメージセンサ101の各行の蓄積時間を同等としている。そのため、イメージセンサ101の行間における蓄積時間の差異を少なくすることができ、露光ムラなどの発生を抑制することが可能となる。
【００５８】
図１０のフローチャートの説明に戻る。ステップS163では、ステップS163では、蓄積・読出し方式Bの撮像処理が実行される。蓄積・読出し方式Bの撮像処理について、図１２を用いて説明する。
【００５９】
図１２では図１１と同様に、垂直回路1011に制御線ChargeResetとReadResetおよびLineShiftが接続され、上部にタイミングチャートを示している。図６のステップS110で設定されたスキップ単位行数「4」と、図９のステップS155で算出された蓄積行数1200行という設定内容に基づいて、2000行で構成されたイメージセンサ101の撮像制御の例について説明する。また、図１１での蓄積・読出し方式Aでの説明と同様に、4k行（kは自然数）を読み出し、かつ4k-1行、4k-2行、4k-3行をスキップするものとして説明する。
【００６０】
図１２では、まず、時間p01で制御線ChargeResetおよびLineShiftにワンショットパルスを入力することで、イメージセンサ101の第1行目の蓄積を開始している。そして、時間p01における制御線LineShiftにワンショットパルスの入力後、ただちに、不図示の時間p02、p03、p04において、制御線LineShiftに連続的にワンショットパルスを入力している。ここでは、イメージセンサ101の第2行目から第4行目の蓄積を開始している。図１１の時間p01からp04までの間隔時間と同様に、Treadlineの時間よりも十分短い。時間p04からTreadlineの時間経過後、すなわち時間p05にて、制御線LineShiftへのワンショットパルス入力が行われる。時間p05の直後は、時間p02からp04と同様に、時間p06からp08までにかけて、制御線LineShiftへのワンショットパルスが連続的に入力される。時間p09以降も同様にして制御線LineShiftへワンショットパルスを入力していく。そして、時間p01+Tcで、制御線ReadResetおよびLineShiftへそれぞれワンショットパルスが入力されると、イメージセンサ101からの画像信号読出しが開始される。Tcは図９のステップS153で算出された蓄積行数を示しており1200行となる。すなわち、イメージセンサの所定の読出し対象行の蓄積を開始させた後、蓄積行数後（カウント数後）の行の蓄積を開始するときから該所定の読出し対象行の読出しを行う。
【００６１】
時間p01+Tcのタイミングでのワンショットパルスの入力後、ただちに不図示の時間p02+Tc、p03+Tc、p04+Tcのタイミングで制御線LineShiftへワンショットパルスが入力される。これにより、第1行目から第3行目の読出しをすることなく、第4行目への選択へ移行していることとなる。この動作は、図１１での説明と同様である。すなわち、第1行目から第3行目までのスキップを行い、時間p04+TcにおけるLineShiftパルスの入力後、イメージセンサ101の第4行目の読出しを開始している。ここでは、図３と同様に不図示の水平回路1012の制御線TransferH、Hpulseを用いて、第4行目の画素信号の読出しを行っている。図３での説明と同様に、画素信号の読出し時には、図１のADC103によってHpulse に同期したAD変換がなされる。以下同様にして、画像信号の読出しを行っていく。
【００６２】
図１２では、図１１と同様に、時間p01+Tcからp04+Tcまでの時間は十分短く、上述の4行単位のスキップおよび読出し時間を合わせた時間が図３のTReadlineと等しい。これらを一般化すると、n行の読出し行数に対し、時間p01からp0n-1+Tcおよびp0n+Tcまでは、3行をスキップし、1行を読み出すというサイクルを繰り返すこととなる。本実施例の例では、図１１と同様にイメージセンサ101の行数n=2000となる。
【００６３】
図１２において、蓄積時間Tcharge_B1は、蓄積行数に換算するとTcであり1200行である。4行単位のスキップおよび読出し処理により、実時間としての蓄積時間は1/4であるTreadline×300行分の時間となるが、実時間としては、図６のステップS110で入力された蓄積時間と同等となる。すなわち、ユーザが入力した所望の露光レベルと同等の撮影画像が得られることとなる。また、4行単位のスキップおよび読出し処理により、図１２のTread_B1は、図３および図４で示したTread_AおよびTread_Bの4分の1の時間、すなわち300行分の読出し時間となっている。蓄積・読出し方式Bにおいては、読出し対象範囲すべての行に対する読出しは蓄積時間内では終わらない。そのため、スキップ読出しが設定されている場合には、蓄積時間を制御するための基準となる制御線LineShiftへのパルスは読出し行を読み出すタイミングでのみTReadlineの間隔で出力され、読出しスキップ行をスキップするタイミングでは、無視できる程度の短い間隔で出力される。従って、スキップ読出しの有無に関わらず一定の蓄積時間を維持するために、読出し率で蓄積行数を補正する必要があり、これをステップS153で演算している。この補正により、スキップ読出しの条件によって、蓄積・読出し方式Bにおける実質的な蓄積時間が影響を受けて変更されることはなくなる。
【００６４】
なお、図１２に示す蓄積・読出しモードBにおける撮像制御では、時間p01+Tcにおいて、Tc+1行目の蓄積が開始されている。すなわち、ある行の読み出し処理を行う場合、同じ蓄積行数分加算した行の蓄積が開始されている。図１１で説明したように、イメージセンサ101の全行蓄積時間を同等とするためには、前述の4行単位の制御線LineShiftへのパルス処理を、第1行目の蓄積開始から最終行までにかけて、一貫して行う必要がある。本実施例のスキップ単位を「4」とした例では、図１１での説明と同様に、図９のステップS155で行われた蓄積行数のマスク処理により、蓄積行数が4の倍数となっている。このようにマスク処理をすることによって、イメージセンサ101の蓄積開始タイミングと読出しタイミングがすべてスキップ単位による各開始タイミングで対称性を持たせることができる。その結果、図１２においても図１１と同様に、イメージセンサ101の各行の蓄積時間が同等となっている。
【００６５】
このように、本実施例では、イメージセンサ101のおよび1行あたりの読出し時間に基づき、蓄積行数を算出した。そして、図６のステップS110で設定されたスキップ設定に基づき蓄積行数を図６のステップS150で補正した後に、イメージセンサ101 の撮像制御を行う。特に、図９のステップS155で示したマスク処理を加えることで、スキップ処理を行った場合でも、イメージセンサ101の全行において蓄積時間が同等とすることができる。これらは、前述の2種類の撮像制御方式で個別に蓄積行数を補正する必要があり、それぞれにおける撮像制御例について示した。
【００６６】
なお、本実施例で説明したスキップ単位数や蓄積時間、イメージセンサの画素数については限定されず、様々な設定値あるいは画素数に対して、本発明を適用することができる。また、本実施例では、スキップ単位行数に対し、読み出す行数を1行とした例について説明したが、読み出す行数は1行に限定されない。例えば、モノクロカメラあるいは3枚の撮像素子で構成されるカラーカメラの場合は、本実施例での説明を適用するのが望ましい。一方で、撮像素子が単板であるカラーカメラの場合は、ベイヤ配列について考慮する必要がある。すなわち、複数行にまたがって1色が作られるようなベイヤ配列で構成される撮像素子を用いる場合、スキップ単位に対し、読み出す行数を2行以上としても良い。
【００６７】
また、一般的なイメージセンサでは、第1行目から数十行分は、光電変換素子の無い領域や、遮光領域が構成されている。これら2種類の領域における画素信号に基づいて、有効画素領域の黒基準レベルを補正することは一般的に一般的行われる。蓄積・読出し方式Bでスキップ処理を行う場合、蓄積開始と読出し開始タイミングの対称性を保つため、第1行目から最終行までにかけて、スキップ単位行数でのスキップおよび読出し処理を行うことが望ましい。一方で、蓄積・読出し方式Aでスキップ処理を行う場合は、上記2領域の読出し時にはスキップせず、有効画素領域のみスキップ処理を行っても良い。
【００６８】
以上、本実施例によれば、スキップ処理が伴う撮影において、撮影画像の各行間の露光ムラを低減することが可能である。
【実施例２】
【００６９】
実施例１では、イメージセンサ101の全画面に対し、所定のスキップ率で撮像制御を行う例について説明してきた。本実施例では、イメージセンサ101のうち、一部の関心領域を読出しの対象領域として抽出し、それ以外の領域を読み飛ばすような撮像制御について説明する。実施例１の図１２で説明したように、蓄積・読出し方式Bでは蓄積時間が読出し時間よりも短い条件であり、読出し行に蓄積行数を加算した行が蓄積開始となる行である。関心領域が複数である場合、関心領域以外の領域をスキップすると、関心領域（読出し領域）の蓄積時間が削減される場合がある。そのため、関心領域の行間で蓄積時間が異なり、関心領域内で輝度ムラが発生する場合がある。本実施例ではこのような撮影条件において、関心領域すなわち読出領域が複数存在する場合でも、各行間の輝度ムラを低減する実施例について説明する。
【００７０】
本実施例における撮像装置の構成およびイメージセンサ101の構成は図１と図２に示されている。これらの構成は、実施例１と同様であるため、説明を省略する。
【００７１】
本実施例では、イメージセンサ101のうち、上下方向に2つの関心領域が設定されるような撮像例について説明する。図１３にイメージセンサ101が2000行の撮像素子で構成されている例を示す。本実施例では、図１３の斜線部の2つの関心領域AreaAおよびAreaBを選択して読み出す場合において、行間における露光時間を同等とする例について説明する。本実施例において撮像装置100が行う処理のフローチャートを図１４に示す。撮像装置100に電源が投入されると、図１４に示すステップS210から順番に処理を実行していく。
【００７２】
まず、図１４のフローチャートのステップS210では読出し領域設定の入力を行う。ここでは、図１の読出し条件設定手段300によって、読出し条件入力部107を通じて入力される。本実施例では、読出し領域として図１３の斜線部分の領域を読み出すため、各読出し領域の座標情報となる開始座標(X, Y)と終了座標（X,Y）を以下のように入力する。
・AreaA：開始座標 (501, 201)、終了座標 (2500 400)
・AreaB：開始座標 (501,1501)、終了座標 (2500, 1700)
【００７３】
読出し設定値は図１の読出し条件入力部107で保持され、蓄積制御部109に入力される。図１４のステップS210が実行されると、次にステップS120へ進む。
【００７４】
図１４のステップS120では、実施例１と同様にシャッター速度に対応する蓄積時間を入力する。ステップS120が実行されると、ステップS220へと進む。
【００７５】
図１４のステップS220では、蓄積時間から蓄積行数への変換演算が行われる。ステップS220のサブルーチンを図１５に示す。
【００７６】
図１５のサブルーチンでは、ステップS221から順番に処理が実行される。まず、ステップS221において、読出し領域の最小・最大座標が算出される。前述のAreaA、AreaBの各座標からXおよびYの最小、最大座標を求める。図１６に示すように、AreaA、AreaBを含むAreaCとして1つの領域と見立てると、以下の最小座標および最大座標を得る。本実施例では、AreaAからAreaBにかけて1500行を、スキップを含めた読出し対象領域とする。
・AreaC：最小座標(501,201)、最大座標(2500, 1700)
【００７７】
次に図１５のステップS222へと進み、1行あたりの読出し時間が算出される。まず、前述のAreaCの幅を求めると2000画素となる。この幅画素数を読み出すための時間を1行あたりの読出し時間とする。実施例１と同様に、1画素あたりの読出し時間と前述のAreaCの幅画素数に基づき、1行を読出しのためのオーバーヘッド時間などを考慮して算出する。次にステップS223へと進み、ステップS120で入力された蓄積時間を、ステップS222で算出した1行あたりの読出し時間で除算することにより、蓄積行数を算出する。
【００７８】
なお、実施例１で算出された1行あたりの読出し時間TReadlineは、1行の画素データすべてを読み出すことを前提としている。一方で、本実施例では、図１３および図１６に示す通り、対象としている領域の横画素数は2000画素としており、1行全体3000画素の2/3の画素数となる。前述の通り、制御線Hpulseによる画素信号の読出し時間は、1行あたりの読出し画素数に依存するため、実施例１と比較し、約2/3の読出し時間となる。そのため、図７のステップS132で算出される蓄積行数は、実施例１と比較し、約1.5倍の蓄積行数が算出されることとなる。このように、ステップS210で入力される読出し領域のサイズにより、1行あたりの画素信号の読出し時間が変化することとなる。
【００７９】
図１５のフローチャートの説明に戻る。ステップS223が実行されると、図１５のサブルーチンを終了し、図１４のステップS140へと進む。
【００８０】
図１４のステップS140では、実施例１と同様に蓄積方式が設定される。本実施例における読出し行数は、図１６に示す通り1500行である。そのため、ステップS140のサブルーチンである図８のステップS142で行われる判定式では、読出し行数1500行との大小比較結果に基づいて、蓄積・読出し方式AもしくはBが選択されることとなる。ステップS140が実行されると、ステップS300に進む。
【００８１】
図１４のステップS300では、イメージセンサ101の撮像制御が行われる。ステップS300では、図６のステップS160と同様に蓄積行数と読出し行数の大小比較結果に基づいて、蓄積・読出し方式AもしくはBが実行される。ステップS300のサブルーチンを図１７に示す。
【００８２】
図１７では、まずステップS310にて蓄積・読出し方式を判定する。図１０のステップS161と同様に、図１４のステップS140で設定された蓄積方式に従い、蓄積・読出し方式AであればステップS320へ、蓄積・読出し方式BであればステップS330へと進む。
【００８３】
図１７のステップS320では、蓄積・読出し方式Aが実行される。ステップS320で実行されるタイミングチャートを図１８に示す。
【００８４】
図１８では、p01において制御線LineShiftおよびReadResetへのワンショットパルスが入力され、イメージセンサ101 の第1行目の読出しを開始している。そして、p01の直後にp02において、制御線ChargeResetおよびLineShiftへのワンショットパルスを入力することによって、イメージセンサ101 の第2行目の読出しおよび第1行目の蓄積を開始している。ただし、p01からp0201まで連続的に制御線LineShiftにワンショットパルスを入力していくことで、イメージセンサ101の第1行目から第200行目までをスキップしている。p0201以降、p0400までは、Treadlineの間隔で制御線LineShiftへワンショットパルスを入力していくことでAreaAすなわち第201行目から第400行目までの画素信号が読み出される。ここで、本実施例におけるTreadlineは、図１４ステップS220にて説明したように、実施例１におけるTreadlineの間隔時間の2/3の時間となる。
【００８５】
図１８の時間p0401からp01501までは、時間p01からのスキップ処理と同様に、制御線LineShiftへ連続的にワンショットパルスを入力する。時間p01からp0201までのスキップ処理、および時間p401からp01501までのスキップ処理の時間は、Treadlineよりも十分短い。このように第401行目から第1500行目までの読出しをスキップしている。時間p01501以降、p01700までは、Treadlineの間隔で制御線LineShiftへワンショットパルスを入力していくことでAreaBすなわち第1501行目から第1700行目までの画素信号が読み出される。第1700行目までの画素信号が読み出された後は、図１４のステップS220で算出された蓄積行数分すなわち時間p0endまでのタイミング時間まで蓄積する。その後、時間p11で制御線ReadResetへのワンショットパルス入力が行われることで蓄積が終了し、時間p11以降、時間p01からの処理と同様の処理が行われることによって画素信号の読出しが行われていく。
【００８６】
図１８のFrameValidがHi状態である期間は、図１３および図１６のAreaAからAreaBにかけて、すなわちAreaCの画素信号読出し期間である。前述のAreaCの1500行分が読み出される時間を図１８のTread_A2で示している。ただし、1500行分の読出し時間がかかるわけではなく、AreaAおよびAreaB以外の領域がスキップされるため、AreaAとAreaBの合計行数400行分の読出し時間となる。
【００８７】
図１８で示した蓄積・読出し方式Aによるスキップ処理では、制御線ReadResetとChargeResetの差が1行分の差であるため、蓄積開始から読出し開始までの実時間差Tcharg_A2がイメージセンサ101の各行数で同等となっている。すなわち、AreaAやAreaBのように複数の読出し領域を設定し、対象領域以外の領域をスキップしたとしても、イメージセンサ101の各行の蓄積時間は同等とすることができる。これは、対象領域における行間の蓄積開始の時間差をTreadlineとすることで、同領域の読出し開始の行間時間差と同等としているためである。
【００８８】
図１７のフローチャートの説明に戻る。図１７のステップS330では、蓄積・読出し方式Bが実行される。蓄積・読出し方式Bによる方式では、制御線ChargeResetによる蓄積開始タイミングと制御線ReadResetによる読出し開始タイミングに蓄積行数分の差がある。また、ローリングシャッターでは、蓄積・読出し方式Bでは読出し中のラインに蓄積行数を加算したラインにおいて蓄積が開始される制約がある。これらを勘案し、蓄積・読出し方式Bでスキップを行う場合、イメージセンサ101の全行数で同等の蓄積時間を保証するために、対象領域に対する蓄積と読出しのスキップ有無を切り替えることが望ましい。
【００８９】
少なくともAreaAとAreaBで各行の蓄積時間を同等するためには、前述の通り、AreaAとAreaBの読出しと蓄積を行うタイミングでは、制御線LineShiftへのワンショットパルス入力間隔をTreadlineとする必要がある。読出し行と、その時に蓄積が開始される蓄積開始行との関係は、蓄積行数を用いて式(6)のように示すことができる。
・読出し行 = 蓄積開始行 − 蓄積行数                              ・・・(6)
【００９０】
また、読出し行と蓄積開始行は、以下の条件式(7)及び(8)を満たす場合はスキップ不可である。
・読出し対象領域開始行 ≦ 読出し行 ≦ 読出し対象領域終了行        ・・・(7)
・読出し対象領域開始行 ≦ 蓄積開始行 ≦ 読出し対象領域終了行      ・・・(8)
【００９１】
(6)、(7)、(8)式を同時に満たすように、スキップ有無を決定することにより、関心領域（読出し領域）内の各行の露出（蓄積時間）は一定に維持され、画質の低下を低減することができる。この具体的な例について、蓄積行数が100行である例について図１９のタイミングチャートを用いて説明する。この蓄積行数100行については、図１４のステップS220で設定された蓄積行数と仮定する。
【００９２】
図１９ではp01において制御線LineShiftおよびChargeResetへのワンショットパルスが入力され、イメージセンサ101の第1行目の蓄積を開始している。そして、時間p0201すなわち第201行目まで制御線LineShiftへワンショットパルスを連続的に入力することで、第1行目から第200行目までの蓄積を連続的に開始させている。第1行目から第200行目までは、式(8)の観点から蓄積開始のスキップ動作を行って良い。なお、p0101の時間では制御線ReadResetへのワンショットパルス入力が行われているため、第1行目から第100行目までの読出しがスキップされていることとなる。
【００９３】
図１９の時間p0201からp0501までの間にTreadlineの時間間隔で制御線LineShiftへワンショットパルスを入力する。このとき、第201行目から第501行目までは、各行は制御線LineShiftのパルスの時間差で蓄積が開始されている。また同時に、式(6)より、第101行目から第400行目までがスキップされることなく画素信号が読み出されている。この間AreaAの100行分前から画素信号が読み出されていることとなる。
【００９４】
図１９の時間p0501からp01501までの間は、制御線LineShiftへワンショットパルスを連続的に入力する。これにより、第501行目から第1500行目までの蓄積開始を連続的に行うとともに、第401行目から第1400行目までの読出しがスキップされている。この間、AreaA、AreaB以外の領域の読出しのため、スキップしても影響しない。
【００９５】
同様にして、図１９の時間p1501からp1801までの間にTreadlineの時間間隔で制御線LineShiftへワンショットパルスを入力する。このとき、第1501行目から第1801行目までは、各行は制御線LineShiftのパルスの時間差で蓄積が開始されている。また同時に、式(6)より、第1401行目から第1700行目までがスキップされることなく画素信号が読み出されている。この間AreaBの100行分前から画素信号が読み出されていることとなる。図１９の時間p01801では制御線ChargeResetが同時に入力され、次のフレームの蓄積開始としている。
【００９６】
このように、AreaA、AreaBの各行では、蓄積開始から蓄積終了すなわち読出し開始まで、100行分にTreadlineを乗じた長さの蓄積時間となっている。そのため、露光ムラが発生しづらくなっている。
【００９７】
なお、本実施例では、スキップ処理の処理時間は、1行の読出し時間Treadlineよりも十分短い。一方で、読み飛ばす行数が多い場合や、1行あたりの読出し時間Treadlineが短い場合、スキップするための処理時間が無視できない場合がある。その場合は、蓄積行数の算出時に、スキップする処理時間を考慮した上で蓄積行数を算出すると良い。また、本実施例における蓄積・読出し方式Bでは、蓄積行数を100行とする例について説明したが、100行の蓄積行数に限定されない。蓄積・読出し方式Bにおいて、様々な蓄積行数および蓄積時間に対し、式(6)から式(8)を満たす条件でスキップ有無を決定すれば良い。
【００９８】
以上、本発明の好ましい実施例について説明したが、本発明はこれらの実施形態に限定されないことはいうまでもなく、その要旨の範囲内で種々の変形及び変更が可能である。また、本稿で述べた実施例を組み合わせて実施しても良い。
【００９９】
なお、本発明では、スキップ単位の数として「2」および「4」が設定された例について述べたが、スキップ単位数については任意の数が設定可能である。
【０１００】
また、スキップ単位数に対し、読出し行数は「1」として説明したが、前述の通りカラー撮影を行う場合は、所謂ベイヤ配列を考慮した読出し行数を設定して適用しても良い。また、本発明では最大4つの関心領域が設定された例について述べたが、関心領域の数や座標および領域の大きさについては限定されず、様々な形状や大きさの１以上の関心領域に対して本発明を適用することができる。また、撮影画像に関しては、3000×2000の画素数を例に説明したが、画素数はこれに限定されない。
【符号の説明】
【０１０１】
100    撮像装置
101    イメージセンサ
102    センサ制御部（制御手段）
104    アドレスカウンタ（スキップ設定手段）
106    画像信号出力部（画像信号出力手段）
107    読出し条件入力部（読出し条件入力手段）
108    蓄積時間入力部（蓄積時間入力手段）
109    蓄積制御部（制御手段、カウント数設定手段）
300    読出し条件設定手段（読出し条件入力手段）
400    蓄積時間設定手段
【図１】
2015144386.tif 000003
【図２】
2015144386.tif 000004
【図３】
2015144386.tif 000005
【図４】
2015144386.tif 000006
【図５】
2015144386.tif 000007
【図６】
2015144386.tif 000008
【図７】
2015144386.tif 000009
【図８】
2015144386.tif 000010
【図９】
2015144386.tif 000011
【図１０】
2015144386.tif 000012
【図１１】
2015144386.tif 000013
【図１２】
2015144386.tif 000014
【図１３】
2015144386.tif 000015
【図１４】
2015144386.tif 000016
【図１５】
2015144386.tif 000017
【図１６】
2015144386.tif 000018
【図１７】
2015144386.tif 000019
【図１８】
2015144386.tif 000020
【図１９】
2015144386.tif 000021