以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
(第1の実施形態)
図1は、本発明の第1の実施形態に係わる撮像装置の構成を示すブロック図である。本実施形態の撮像装置1000は、例えばデジタルカメラであり、静止画像撮影機能及び動画像撮影機能を有している。撮像装置1000は、撮像装置1000を統括的に制御するCPU(Central Processing Unit)102、及び撮影レンズ109を通過した光学像が結像される撮像素子100を有する。
撮像素子100は、結像された光学像を電気信号(アナログ画素信号)に変換した後、所定の量子化ビット数に応じてデジタル画像データに変換して出力する。DSP(Digital Signal Processor)101は、撮像素子100からデータを受信し、静止画像データ及び動画像データの補正処理や、画像データの圧縮処理等を行う。
RAM(Random Access Memory)105は、撮像素子100から出力される画像データ及びDSP101で処理された画像データを記憶するための画像メモリである。RAM105は、CPU102のワークメモリとしても用いられる。本実施形態では、画像メモリ及びワークメモリとしてRAM105を用いるが、アクセス速度に問題ないものであれば、他のメモリを用いてもよい。
ROM(Read Only Memory)106には、CPU102で動作するプログラムが格納される。本実施形態では、ROM106としてフラッシュROMが用いられるが、アクセス速度に問題がないものであれば、他のメモリを用いてもよい。
操作部103は、撮像装置1000を起動するメインスイッチや、ユーザーが撮像装置1000に静止画や動画の撮影命令を行う撮影スイッチを含み、撮像条件等を設定する際にも用いられる。表示部104は、CPU102の制御下で、画像データに応じた静止画像又は動画像の表示を行うとともに、メニュー等の表示を行う。
記録部107は、例えば不揮発性メモリ又はハードディスクであり、画像データ等が記録される。本実施形態において記録部108は、装置に内蔵される形で記載されているが、コネクタ等を介した着脱可能なメモリーカードなどの外部記録媒体でもよい。なお、上記した各ブロックとCPU102は、バス108により接続されている。
図2A~図2Dは、撮像素子100の回路構成の一例を示す図である。図2Aに示すように、光電変換素子を有する画素200が画素R0_0~Bm-1_n-1(m、nは任意の整数)のように行列状に複数配置されている。画素200に示すRは赤色、Gは緑色、Bは青色のカラーフィルタが各画素に配置されていることを意味する。また、R(G,B)p_qは、画素部210における第p行第q列の画素であることを示す。
ここで、画素200の1画素毎の構成について図2Bを用いて説明する。フォトダイオード(PD)201は、入射した光信号を光電変換し、露光量に応じた電荷を蓄積する。制御信号txをハイレベルにすることにより転送ゲート202がオン(導通状態)になり、PD201に蓄積されている電荷がフローティングディフュージョン部(FD部)203に転送される。FD部203は、増幅MOSトランジスタ204のゲートに接続されている。増幅MOSトランジスタ204は、PD201からFD部203に転送されてきた電荷量に応じた電圧信号を出力する。
リセットスイッチ205は、FD部203やPD201の電荷をリセットするためのスイッチである。制御信号resをハイレベルにすることによりリセットスイッチ205がオン(導通状態)になり、FD部203がリセットされる。また、PD201の電荷をリセットする場合には、制御信号tx及び制御信号resを同時にハイレベルにすることにより、転送ゲート202及びリセットスイッチ205を両方オンし、FD部203経由でPD201をリセットする。
画素選択スイッチ206は、制御信号selをハイレベルとすることによりオン(導通状態)になり、増幅MOSトランジスタ204と画素200の出力端子vout207とを接続する。これにより、増幅MOSトランジスタ204で電圧に変換された画素信号が画素200の出力端子vout207に出力される。
図2Aに戻り、垂直走査回路303は、制御信号res,tx,sel等を各画素200に供給する。これらの制御信号は、それぞれ各画素200の端子res,tx,selに供給される。各画素の出力端子vout207は、列出力線300に接続される。画素R0_0が配置される列(0列目)を例に説明すると、図2Aに示すように、0行目の画素R0_0からm-1行目の画素Gm-1_0までの画素と列出力線300が接続される。この接続パターンは、各列同様である。
列出力線300は、AD変換器(ADC)301の入力へ接続される。AD変換器301は、画素200から出力される光信号とノイズ信号をアナログ-デジタル変換する。列出力線300には、それぞれ電流源302が接続されている。電流源302と列出力線300に接続された画素部200の増幅MOSトランジスタ204によってソースフォロア回路が構成される。
AD変換器301の構成を図2Cに示す。AD変換器301は、比較器324、Latch_N325、Latch_S326、スイッチ327,328を有する。列出力線300により出力される信号は比較器324に入力される。ランプ信号発生器306からは、信号線321を介してランプ信号が出力され、比較器324に入力される。
Latch_N325はノイズレベル(N信号)を保持するための記憶素子であり、Latch_S326は信号レベル(S信号)を保持するための記憶素子である。カウンタ305から信号線320を介して出力されるカウンタ値がLatch_N325とLatch_S326に入力される。そして、Latch_N325は比較器324から反転出力が入力された時点のカウンタ値をN信号のデジタル信号値として保持し、Latch_S326は比較器324から反転出力が入力された時点のカウンタ値をS信号のデジタル信号値として保持する。
Latch_N325に保持されたN信号と、Latch_S326に保持されたS信号は、スイッチ327,328と、共通出力線322,323をそれぞれ介して図2Aに示すS-N演算部308に出力される。
本実施形態のランプ信号発生器306は、複数種類の傾きを持ったランプ信号を出力する機能を有する。撮像装置1000の撮影ISO感度の設定により、ランプ信号の傾きがCPU102によって設定される。これにより、撮像ISO感度が高くなるにつれて高いゲインが適用される構成とする。なお、本実施形態では、ゲインを適用する構成は上述の構成としたが、この構成に限定されるものではない。
スイッチ327,328は水平走査回路304からの制御信号で制御される。このS-N演算部308へのデジタル信号の出力はAD変換器毎に順次行われ、水平転送と呼ぶ。 S-N演算部308は、入力されたS信号からN信号を減算する。この動作により読み出し回路に起因するノイズ成分をキャンセルした画像信号または後述する補正値生成用信号が生成される。
S-N演算部308から出力されたデータは、補正回路309に入力される。補正回路309では、後述する列毎のオフセット補正または補正値生成が行われる。補正回路309から出力されたデータは、データ出力部310に入力され、データ出力部310から撮像素子100の外部へ出力される。
ここで、図2Dを用いて、撮像素子100における画素領域(画素配列)の構成について説明する。図2Dに示すように、撮像素子100は、遮光された画素が複数配置された遮光画素領域であるVOB領域(垂直オプティカルブラック部)、HOB領域(水平オプティカルブラック部)と、被写体を撮影する有効画素が複数配置された有効画素領域(画素部)とを有する。水平方向(画素行方向)にn列、垂直方向(画素列方向)にm行の画素が配置されている。また、垂直方向(画素列方向)には遮光画素領域VOBh(hは0より大きい整数)行、有効画素領域は12i(iは0より大きい整数)行の画素がそれぞれ配置されている。
また、VOB領域は画像データ読み出し時または後述する補正値生成用データの読み出し時に使用され、HOB領域、有効画像領域は画像データの読み出し時に使用される。VOB領域、HOB、有効画像領域の各々から信号を読み出すための垂直走査動作や画素と列出力線の電気的な接続を決定する制御信号selが独立に垂直走査回路303によって制御される。
次に、図3を用いて垂直走査回路303の構成について説明する。撮像素子100へはCPU102から不図示の垂直同期信号VDと水平同期信号HDが入力される。水平同期信号HDは1行の読み出し毎にアサートされ、垂直同期信号VDは画像の1フレーム毎にアサートされる。水平カウンタ330は水平同期信号HDがアサートされるとカウント値を0にリセットし、撮像素子100へ入力される不図示のクロック毎にインクリメントする。垂直カウンタ331は垂直同期信号VDがアサートされるとカウント値を0にリセットし、水平同期信号HDがアサートされる毎にインクリメントする。
行選択回路332は、垂直カウンタ331から入力される垂直カウンタ値を参照し、読み出し選択行とシャッター選択行を算出して出力する。行選択回路332には、CPU102が設定する画像データ読み出し開始タイミング設定334、画像データ読み出し領域設定335が入力される。行選択回路332は、垂直カウンタ値が画像データ読み出し開始タイミング設定334と一致すると、画像データ読み出し領域設定335に設定された領域の上端から読み出し行の選択をする(画像データの読み出しを開始する)。垂直カウンタ値がインクリメントする毎に領域の下方に向かって順次選択する読み出し行を変更していく。
本実施形態の撮像素子100は、スリットローリングシャッターで露光を制御する。行選択回路332にはCPU102が設定するシャッター開始タイミング設定339が入力される。行選択回路332は垂直カウンタ値がシャッター開始タイミング設定339と一致すると、画像データ読み出し領域設定335に設定された領域の上端からシャッター行の選択をする(シャッターを開始する)。垂直カウンタ値がインクリメントする毎に領域の下方に向かって順次選択するシャッター行を変更していく。
また、本実施形態の撮像素子100は、画像データ読み出し期間外に補正値生成用データ(補正データ)を読み出す機能を有する。行選択回路332にはCPU102が設定する補正データ読み出し開始タイミング設定336、補正データ読み出し領域設定337、補正データ読み出し期間設定338が入力される。行選択回路332は垂直カウンタ値が補正データ読み出し開始タイミング設定336と一致すると、補正データ読み出し領域設定337に設定された領域の上端から読み出し行の選択をする(補正データ読み出しを開始する)。垂直カウンタ値がインクリメントする毎に領域の下方に向かって順次選択する読み出し行を変更していく。また、補正データ読み出し期間設定328で設定された垂直カウンタ値の期間内で、補正データ読み出し領域設定337に設定された領域の補正データ読み出しを繰り返す。
本実施形態では、CPU102によって画像データ読み出し領域としてVOB領域、HOB領域、有効画素領域が設定され、補正データ読み出し領域としてVOB領域が設定される。なお、補正データ読み出し領域の設定に関してはこれに限定されるものではなく、VOB領域、HOB領域、有効画素領域の一部が設定される構成などにも適用することができる。上記のように読み出し選択行、シャッター選択行が決定され、デコーダー333へ入力される。
res生成回路345には、CPU102が設定するres設定A350が入力される。res生成回路345は水平カウンタ値を参照し、res設定A350に基づいて制御信号resの元となる出力信号をHigh(H)またはLow(L)に遷移させる。
sel生成回路344には、CPU102が設定するsel設定A349が入力される。sel生成回路344は水平カウンタ値を参照し、sel設定A349に基づいて制御信号selの元となる出力信号をHighまたはLowに遷移させる。
tx_sh生成回路343には、CPU102が設定するtx_sh設定A348が入力される。tx_sh生成回路343は水平カウンタ値を参照し、tx_sh設定A348に基づいて制御信号tx_shの元となる出力信号をHighまたはLowに遷移させる。
セレクタ346には、CPU102が設定するtx設定A347aとtx設定B347bが入力される。行選択回路から出力されるセレクト信号に基づき、tx設定A347aまたはtx設定B347bをセレクトする。行選択回路332は画像データ読み出し期間中にtx設定A347aを選択し、補正データ読み出し期間中にtx設定B347bを選択するセレクト信号を出力する。tx生成回路342には、セレクタ346から出力されるtx設定が入力される。tx生成回路342は水平カウンタ値を参照し、tx設定に基づいて制御信号txの元となる出力信号をHighまたはLowに遷移させる。
デコーダー333は行選択回路332から出力される読み出し選択行に基づき、0行目の読み出し行選択信号0、1行目の読み出し行選択信号1、…を順次アサートする。また、行選択回路332から出力されるシャッター選択行に基づき、0行目のシャッター行選択信号0、1行目のシャッター行選択信号1、…を順次アサートする。
図3に示すように、各生成回路の出力とデコーダー333の出力の論理積340または論理和341が構成され、0行目の制御信号res、sel、txであるres_0、sel_0、tx_0が生成される。1行目以降も同様である。
ここで、図4(a)、4(b)を用いて画像データ読み出しまたは補正データ読み出し動作について説明する。
図4(a)は、画像データ読み出し時の撮像素子100の動作を示している。時刻ta0において、制御信号txがHになり、転送スイッチ202がオンになる。このとき、リセットスイッチ205の制御信号resはHになっている。そして、フォトダイオード201に蓄積された電荷は、転送スイッチ202、リセットスイッチ205を介して電源208に転送され、フォトダイオード201はリセットされる(スリットローリングシャッターによるリセット動作)。
時刻ta1において、制御信号txをLとし、フォトダイオード201における電荷の蓄積が開始される。
所定の時間だけ電荷の蓄積を行った後の時刻ta2において、選択スイッチ206の制御信号selがHになり、増幅MOSトランジスタ204のソースが列出力線に接続される。
時刻ta3において、リセットスイッチ205の制御信号resをLとすることでFD部203のリセットを解除する。このとき、FD部203の電位に応じたリセット信号レベルの電位が増幅MOSトランジスタ204を介して列出力線300に出力され、AD変換器301に入力される。
各画素200の出力端子voutにはノイズレベルが出力され、列出力線300には画素のノイズレベルの信号が出力される。
次に、時刻ta4において、TG307はAD変換器301を駆動し、AD変換を開始させる。ここで列出力線に出力されるノイズレベルの信号がAD変換される。AD変換開始とともにカウンタ305がカウント値のインクリメント動作を開始する。列出力線300の信号レベルとランプ信号発生器306から出力されるランプ信号レベルを比較器324で比較し、一致した時点のカウンタ値をLatch_N325に格納することでAD変換が行われる。
時刻ta5において、AD変換が終了すると、AD変換器301はそれぞれAD変換されたノイズレベル(N信号)を保持する。
時刻ta6において、垂直走査回路303は駆動信号txをHにし、画素200の転送ゲート202をオンする。そして、各画素のPD201に蓄積されている信号電荷が増幅MOSトランジスタ204で構成されるソースフォロアのゲートに転送される。ソースフォロアは転送された信号電荷に見合う分だけリセットレベルから電位が変動して信号レベルが確定する。このとき、各画素200の出力端子voutには信号レベルが出力され、列出力線300には画素の信号レベルが出力される。
その後、時刻ta7において、駆動信号txをLにし、PD201からの信号の転送を完了する。
次に、時刻ta8において、TG307はAD変換器301を駆動し、AD変換を開始させる。ここで各列出力線に出力される信号レベルがAD変換される。時刻ta9において、AD変換が終了されると、AD変換器301はAD変換された信号レベル(S信号)を保持する。
その後時刻ta10において、resをHとし、再びFD部203をリセット状態とする。また、撮像素子100の外部へのデータ出力を開始する。水平走査回路304は水平走査を開始し、各列のAD変換器301のN信号とS信号をS-N演算部308へ順次転送する。S-N演算部で列毎にS信号からN信号が減算され、補正回路309を経由してデータ出力部310からデータを出力する。時刻ta11において、selがLになり、その後時刻ta12において全列のデータ出力が終了すると、データ出力の1転送単位が終了する。
図4(b)は、補正データ読み出し時の撮像素子100の動作を示している。
時刻tb0において、選択スイッチ206の制御信号selがHになり、増幅MOSトランジスタ204のソースが列出力線に接続される。
時刻tb1において、リセットスイッチ205の制御信号resをLとすることでFD部203のリセットを解除する。このとき、FD部203の電位に応じたリセット信号レベルの電位が増幅MOSトランジスタ204を介して列出力線300に出力され、AD変換器301に入力される。
各画素200の出力端子voutにはノイズレベルが出力され、列出力線300には画素のノイズレベルの信号が出力される。
次に、時刻tb2において、TG307はAD変換器301を駆動し、AD変換を開始させる。ここで列出力線に出力されるノイズレベルの信号がAD変換される。AD変換開始とともにカウンタ305がカウント値のインクリメント動作を開始する。列出力線300の信号レベルとランプ信号発生器306から出力されるランプ信号レベルを比較器324で比較し、一致した時点のカウンタ値をLatch_N325に格納することでAD変換が行われる。
時刻tb3において、AD変換が終了すると、AD変換器301はAD変換されたノイズレベル(N信号)を保持する。
次に、時刻tb4において、TG307は再びAD変換器301を駆動し、AD変換を開始する。すなわち各列出力線に出力されるノイズレベルがAD変換される。時刻tb5において、AD変換が終了すると、AD変換器301は、AD変換されたノイズレベル(N’信号)を保持する。ここで保持されるノイズレベルと最初のノイズレベルとは、resをLにしてリセットを解除した状態からの時間(タイミング)が異なっている。本実施形態では、この時間に関連する2回取得されたノイズレベルの違いを列回路(列出力線、AD変換器等)毎の固有の列オフセットノイズとして、補正対象とする。
その後時刻tb6においてresをHとし、再びFD部203をリセット状態とする。同時に、撮像素子100の外部へのデータ出力を開始する。水平走査回路304は水平走査を開始し、各列のAD変換器301のN信号とN’信号をS-N演算部308へ順次転送する。S-N演算部で列毎にN’信号からN信号が減算され、補正回路309に入力される。時刻tb7においてselがLになり、その後時刻tb8において全列のデータ出力が終了すると、データ出力の1転送単位が終了する。
このように、補正データ読み出し時は、フォトダイオード201からの電荷転送をしないことで、画像データ読み出し時に読み出されたVOB領域は有効画素領域と同じ蓄積時間に応じた暗電流成分を含み、有効画素領域の黒レベルを決定するためのOBクランプ処理等に使用することができる。
次に、図5を用いて補正回路309の構成について説明する。図5にS-N演算部308との接続を含めた補正回路309の構成を示す。データ出力部310から出力されるデータは補正部361または補正値生成回路360へ入力される。
SSG362は入力されたデータ数をカウントし、補正部361または補正値生成回路360に対し動作タイミングを制御する。これにより列毎の補正値生成や補正が制御される。
補正値生成回路360は、S-N演算部308から出力される補正データから列回路(列出力線、AD変換器等)毎の補正値を生成し、RAM363へ格納する。RAM363は、RAM_A363aとRAM_B363bを有する。いずれか一方のRAMに読み出しを行う画像データの補正値を格納し、補正に使用する。補正に使用していない側のRAMでは補正値生成や保持が行われ、またはパワーダウンされる。
補正部361は、列回路毎にRAM363から出力される補正値を画像データから減算し、オフセット補正を行う。その後データ出力部310へデータを出力する。
ここで、補正回路309の動作について説明する。
図2Aに示すように、補正回路309は上下に分かれ2つあるため、ひとつの補正回路309へは偶数列または奇数列のみの補正データが入力される。図6は偶数列の補正データが入力される補正回路309の補正値生成の動作を示している。列毎の補正データが補正値生成回路360へ所定の行数分入力される。補正値生成回路360では列毎に補正データが加算され、RAM363内のRAM_A363aまたはRAM_B363bへ格納される。
図7に示すように画像データの読み出しが開始されると、補正部361へ1行ずつの画像データが入力される。補正部361は入力された画像データの列に対応した補正値を順次RAM363から読み出す。読み出された補正値は、加算された補正データ数で平均され、列毎に画像データが減算される。これにより列毎のオフセット補正が適用される。なお、本実施形態では補正値生成や補正については上記の構成としたが、この構成に限定されるものではない。
次に、第1の実施形態における撮像装置の動作について説明する。図8は、第1の実施形態における撮像装置1000の撮影動作を説明するためのフローチャートである。また、図9A~9Dは撮像装置1000の各構成要素の状態や動作を示すための概念図である。
ユーザーが図1に示した操作部103の動画撮影スイッチを押下すると、動画撮影が開始される。本実施形態の撮像装置1000は動画モードとしてフルHD(FHD)モードと4Kモードを具備し、ここではFHDで撮影が開始される。動画撮影が開始されるとステップS100において、CPU102は補正値を生成するために必要な補正データ読み出し行数を算出する。上述したように補正値生成回路360では列毎の補正データの加算を行うが、この行数を決めることにより加算数を決定する。本実施形態では、AD変換器301で適用されるゲインにより、必要な加算数が決定される。ゲインが高い場合ノイズが多いため、ノイズの影響を小さくするために加算数を多くする構成とする。しかし、行数の決定方法はこれに限定されるものではない。
次にステップS101において、画素における画像撮影のスリットローリングシャッターのPDリセットタイミングと補正データ読み出しタイミングが重複するか否かを算出する。補正データは上述したように制御信号resとtxをネゲートした状態で読み出すことによりオフセット成分を読み出す。しかし、画像撮影のスリットローリングシャッターによるフォトダイオード201のリセットタイミングと補正データ読み出しタイミングが重複すると、制御信号resとtxがアサートされた状態で読み出すこととなり、適切なオフセットレベルを読み出すことができなくなってしまう。よってここではステップS100において算出した補正データ読み出し行数と、シャッター行が重複するか否かを判断する。
ステップS100において決定された行数と、補正データを読み出すVOB領域の行数により、VOB領域の補正データ読み出しの繰り返し回数を算出する。それにより、VOB領域の上端の読み出しを行う、複数ある垂直カウント値を算出する。算出された複数のVOB領域上端読み出し垂直カウント値と、設定された蓄積時間に基づくVOB領域上端のシャッター(PDリセット)を行う垂直カウント値が一致するか否かを確認する。一致しない場合はステップS103へ進む。
ステップS103では、補正データ読み出し開始設定を所定の値からずらす、ずらし量を0に設定する。最初のフレームでは補正データの読み出しと、次フレームの画像に対応するシャッターが走査される。補正データの読み出しとシャッター(PDリセット)が重複しないので、補正データの読み出しを開始する垂直カウント値を0に設定する(ずらし量=0)。その後ステップS104へ進む。
ステップS104では、CPU102は撮像素子100に対し、動画像データの読み出しをOFFにし、補正データ読み出しをONにする設定を行う。その後ステップS105へ進む。
ステップS105では、CPU102は補正回路309に対し、補正をOFF、補正値生成をONにする設定を行う。その後ステップS106へ進む。
ステップS106では、補正データの読み出しが行われる。この時の動作を図9AのフレームFHD_0に示す。VOB領域で補正データが読み出される。この時、PDリセットと補正データ読み出しは同一行で重複していない。読み出された補正データは補正回路309へ入力され、補正値が生成される。ここでは、RAM_A363aに補正値が格納されることとする。
一方、ステップS101において、補正データの読み出しタイミングとPDリセットタイミングが重複すると判断された場合には、ステップS102へ進む。
ステップS102では、補正データ読み出し開始設定を所定の値からずらす、ずらし量をpに設定する(読み出しタイミングの調整)。フレームFHD_0では補正データの読み出しと、フレームFHD_1の画像に対応するシャッターが走査される。補正データの読み出しとシャッター(PDリセット)が重複するので、補正データの読み出しを開始する垂直カウント値をpに設定する(ずらし量=p)。その後ステップS104へ進む。ここでずらし量pは、同一行がPDリセットされてから補正データ読み出しが行われるまでと、補正データ読み出しが行われてからPDリセットされるまでに必要な間隔を満たすように設定される。この必要な間隔は、モードなどの垂直走査回路303などの動作によって決められる。
その後ステップS104、S105の動作が上述した通りに行われ、ステップS106へ進む。ステップS106では、補正データの読み出しが行われる。この時の動作を図9BのフレームFHD_0に示す。VOB領域で補正データが読み出される。この時、ステップS102においてずらし量をpに設定されたため、補正データ読み出しタイミングがずれている。このことにより、PDリセットと補正データ読み出しは同一行で重複していない。読み出された補正データは補正回路309へ入力され、補正値が生成される。ここでは、RAM_A363aに補正値が格納されることとするが、空いていればRAM_B363bに格納することも可能である。
ステップS106の後は、ステップS102、S103のどちらを通過した場合も同様に、ステップS107において、CPU102は動画像データ読み出しの設定を撮像素子100に対して行う。動画像データの読み出しをONにし、補正データ読み出しをOFFにする設定を行う。その後ステップS108へ進む。
ステップS108では、CPU102は補正回路309に対し、補正をON、補正値生成をOFFにする設定を行う。その後ステップS109へ進む。
ステップS109では動画像データの読み出しが行われる。図9Aまたは図9BのフレームFHD_1に示すように、動画像データが読み出される。この時RAM_A363aに格納されている補正値で補正され、撮像素子100の外部へ出力される。撮像素子100から読み出された動画像データは、DSP101において所定の補正や圧縮等が行われ、記録部107へ記録される。その後ステップS110へ進む。
ステップS110では、CPU102は操作部103に含まれる撮像装置1000のメインスイッチが押下されたか否かを判断する。押下されていた場合には動画撮影を終了する。押下されていない場合にはステップS111へ進む。
ステップS111では、ユーザーによって操作部103が操作され、動画モードが変更されたか否かを判断する。変更されていた場合にはステップS100へ戻り、補正値生成から実行される。動画モードが変更されていない場合にはステップS112へ進む。
ステップS112では、CPU102はISO感度が変更されているか否かを判断する。ISO感度が変更されていない場合にはステップS107へ進み、動画像データの読み出しと記録が繰り返される。ISO感度が変更された場合はステップS113へ進む。
ステップS113では、CPU102は補正値を生成するために必要な補正データ読み出し行数を算出する。設定されたISO感度に応じて、必要な補正データ読み出し行数を算出する。その後ステップS114に進む。
ステップS114では、画素における画像撮影のスリットローリングシャッターのPDリセットタイミングと補正データ読み出しタイミングが重複するか否かを算出する。ステップS113において決定された補正データ読み出し行数と、補正データを読み出すVOB領域の行数、1フレーム内(1フレーム期間中)で画像データを読み出さない期間(Vブランキング期間)、タイミングが重複した場合に必要なずらし量に基づき、VOB領域の補正データ読み出しの繰り返し回数を算出する。例えば、
補正データ読み出し行数=80
VOB領域=20
Vブランキング期間に補正データを読み出せる行数=60
必要なずらし量=4
の場合、1フレームでVOB領域を読み出す繰り返し回数は(60-4)/20を切り捨てて2回となる。ずらした場合でもVOB領域を読み出し切れるように、必要なずらし量を減算する必要がある。この例の場合、補正データの読み出しは80/40=2フレームに渡って行われる。
本実施形態ではVOB領域は下端まで読み出す構成としているが、それに限定されるものではない。途中の行で読み出しを止める構成でもよい。
上述した演算と補正データ読み出し開始タイミング設定(A)により、VOB領域の上端の読み出しを行う、複数ある垂直カウント値を算出する。算出された複数のVOB領域上端読み出し垂直カウント値と、設定された蓄積時間に基づくVOB領域上端のシャッター(PDリセット)を行う垂直カウント値が一致するか否かを確認する。一致しない場合はステップS116へ進む。
ステップS116では、補正データ読み出し開始設定を所定の値からずらす、ずらし量を0に設定する。1フレームの中では、画像データ読み出し、補正データの読み出し、次フレームの画像に対応するシャッターが走査される。補正データの読み出しとシャッター(PDリセット)が重複しないので、補正データの読み出しを開始する垂直カウント値を画像データ読み出し終了直後であるAに設定する(ずらし量=0)。その後ステップS117へ進む。
ステップS117では、CPU102は撮像素子100に対し、動画像データの読み出しをONにし、補正データ読み出しをONにする設定を行う。その後ステップS118へ進む。
ステップS118では、CPU102は補正回路309に対し、補正をON、補正値生成をONにする設定を行う。その後ステップS119へ進む。
ステップS119では、動画像データと補正データの読み出しが行われる。この時の動作を図9CのフレームFHD_4に示す。まず、ISO感度切替前の動画像データが読み出される。この時、動画像データはRAM_A363aに格納される補正値で補正され、撮像素子100の外部へ出力される。撮像素子100から読み出された動画像データはDSP101において所定の補正や圧縮等が行われ、記録部107へ記録される。
その後、画像データ読み出しの終了直後である垂直カウント=AのタイミングでVOB領域の補正データの読み出しが開始される。この時、PDリセットと補正データの読み出しは同一行で重複していない。読み出された補正データは補正回路309へ入力され、補正値が生成される。ここでは、RAM_B363bに補正値が格納されることとする。その後ステップS120へ進む。
ステップS120では、CPU102は操作部103に含まれる撮像装置1000のメインスイッチが押下されたか否かを判断する。押下されていた場合には動画撮影を終了する。押下されていない場合にはステップS121へ進む。
ステップS121では、CPU102は変更後のISO感度に対応する補正値の生成が終了しているか否かを判断する。ISO感度毎に決まる必要な行数だけ補正データが読み出されていない場合には、次のフレームに移行し、追加で補正データの読み出しが行われる。補正値生成が終了している場合にはステップS107に進む。ここでは、補正値生成が終了したとし、ステップS107に進む。
ステップS107では、CPU102は動画像データ読み出しの設定を撮像素子100に対して行う。動画像データの読み出しをONにし、補正データ読み出しをOFFにする設定を行う。その後ステップS108へ進む。
ステップS108では、CPU102は補正回路309に対し、補正をON、補正値生成をOFFにする設定を行う。その後ステップS109へ進む。
ステップS109では、動画像データの読み出しが行われる。ここでのステップS109の動作では、図9CのフレームFHD_5に示すように、動画像データが読み出される。この時、動画像データはRAM_B363bに格納される補正値で補正され、撮像素子100の外部へ出力される。撮像素子100から読み出された動画像データはDSP101において所定の補正や圧縮等が行われ、記録部107へ記録される。その後ステップS110へ進む。
一方、ステップS114において、補正データ読み出しとPDリセットが重複すると判断された場合には、ステップS115へ進む。
ステップS115では、補正データ読み出し開始設定を所定の値からずらす、ずらし量をpに設定する。1フレームの中では、画像データの読み出し、補正データの読み出し、次フレームの画像に対応するシャッターの走査が行われる。補正データの読み出しとシャッター(PDリセット)が重複するので、補正データの読み出しを開始する垂直カウント値をA+pに設定する(ずらし量=p)。その後ステップS104へ進む。ここでずらし量pは、同一行がPDリセットされてから補正データ読み出しが行われるまでと、補正データ読み出しが行われてからPDリセットされるまでに必要な間隔を満たすように設定される。この必要な間隔は、モードなどの垂直走査回路303などの動作によって決められる。
ステップS117では、CPU102は撮像素子100に対し、動画像データの読み出しをONにし、補正データ読み出しをONにする設定を行う。その後ステップS118へ進む。
ステップS118では、CPU102は補正回路309に対し、補正をON、補正値生成をONにする設定を行う。その後ステップS119へ進む。
ステップS119では、動画像データと補正データの読み出しが行われる。図9Cは30fpsの場合を例として挙げているが、図9Dは60fpsの場合を例として挙げている。また、ステップS121において補正値生成が終了しなかった場合を示している。この時の動作を図9DのフレームFHD_7に示す。まず、ISO感度切替前の動画像データが読み出される。この時、動画像データはRAM_A363aに格納される補正値で補正され、撮像素子100の外部へ出力される。撮像素子100から読み出された動画像データはDSP101において所定の補正や圧縮等が行われ、記録部107へ記録される。
その後、画像データ読み出しの終了直後である垂直カウント=A+pのタイミングでVOB領域の補正データの読み出しが開始される。この時、ステップS115においてずらし量をpに設定したため、補正データ読み出しタイミングがずれている。このことにより、PDリセットと補正データ読み出しは同一行で重複していない。読み出された補正データは補正回路309へ入力され、補正値が生成される。ここでは、RAM_B363bに補正値が格納されることとする。その後ステップS120へ進む。
上記の動作により、動画撮影においてISO感度などの撮影条件が変わった場合でも、動画(LV画像)フレームが消失することなく、撮影条件に対応した補正を画像に適用することができる。また、撮影直前に補正値を生成するため、必要な撮影条件毎の補正値を記憶する必要がない。
また、同一行で画像のリセットと補正データ読み出しタイミングが重複しないように補正データ読み出しタイミングをずらすので、画像の蓄積時間設定に制約を設けることなく、補正値を生成することができる。撮影条件毎によって重複タイミングを検出するので、フレームレートやモード、ISO感度などの撮影条件の変更に対応することができる。
本実施形態では、補正データ読み出し開始タイミングを変更することによって補正データ読み出しタイミングをずらしたが、この方法に限定されるものではない。補正データ読み出しを行う開始行を変更することにより、各行の補正データ読み出しタイミングをずらす方法なども適用することができる。
なお、本実施形態では、ISO感度に関連してAD変換器のゲインを変更した場合に、補正値を取得する構成としたが、これに限定されるものではない。例えば、内蔵アンプのゲインなどが変更された場合にも適用可能である。また、AD変換のbit数、垂直方向/水平方向の画素混合数などの撮影モードが切り替わった場合などにも適用することができる。
また、本実施形態ではオフセット補正を行う構成としたが、ゲイン補正など読み出し回路に起因する補正であれば適用可能である。
(第2の実施形態)
以下、本発明の第2の実施形態について説明する。本実施形態における撮像装置の構成は、図1に示す第1の実施形態の撮像装置1000と同じであるため、説明を省略する。
図10は、本実施形態の撮像素子100の回路構成の一例を示す図である。図2Aに示す第1の実施形態の撮像素子100と同じ機能部分については同じ符号を付し、説明を省略する。本実施形態の撮像素子100は、以下の点で第1の実施形態の撮像素子100と異なる。S-N演算部308の出力はデータ出力部310に接続される。また、垂直走査回路400の機能は、図2Aに示す垂直走査回路303と異なる。
次に、図11を用いて垂直走査回路303の構成について説明する。撮像素子100へはCPU102から不図示の垂直同期信号VDと水平同期信号HDが入力される。本実施形態の撮像装置1000は撮影モードとしてライブビューモードと静止画撮影モードを具備する。水平同期信号HDはライブビューモードの1行の読み出し毎にアサートされ、水平同期信号HD2は静止画撮影モードの1行の読み出し毎にアサートさる。垂直同期信号VDは画像の1フレーム毎にアサートされる。水平カウンタ330は水平同期信号HDがアサートされるとカウント値を0にリセットし、撮像素子100へ入力される不図示のクロック毎にインクリメントする。垂直カウンタ331は垂直同期信号VDがアサートされるとカウント値を0にリセットし、水平同期信号HDがアサートされる毎にインクリメントする。
水平カウンタB401は水平同期信号HD2がアサートされるとカウント値を0にリセットし、撮像素子100へ入力される不図示のクロック毎にインクリメントする。垂直カウンタB402は垂直同期信号VDがアサートされるとカウント値を0にリセットし、水平同期信号HDがアサートされる毎にインクリメントする。
行選択回路403は垂直カウンタ331から入力される垂直カウンタ値、または垂直カウンタB402から入力される垂直カウンタ値Bを参照し、読み出し選択行とシャッター選択行を算出して出力する。
行選択回路403にはCPU102が設定する画像データ読み出し開始タイミング設定334、画像データ読み出し領域設定335が入力される。行選択回路332は垂直カウンタ値が画像データ読み出し開始タイミング設定334と一致すると、画像データ読み出し領域設定335に設定された領域の上端から読み出し行の選択をする(画像データの読み出しを開始する)。垂直カウンタ値がインクリメントする毎に領域の下方に向かって順次選択する読み出し行を変更していく。
本実施形態の撮像素子100はスリットローリングシャッターで露光を制御する。行選択回路332にはCPU102が設定するシャッター開始タイミング設定339が入力される。行選択回路332は垂直カウンタ値がシャッター開始タイミング設定339と一致すると、画像データ読み出し領域設定335に設定された領域の上端からシャッター行の選択をする(シャッターを開始する)。垂直カウンタ値がインクリメントする毎に領域の下方に向かって順次選択するシャッター行を変更していく。
また、本実施形態の撮像素子100は画像データ読み出し期間外に補正値生成用データ(補正データ)を読み出す機能を有する。行選択回路332にはCPU102が設定する補正データ読み出し開始タイミング設定336、補正データ読み出し領域設定337、補正データ読み出し期間設定338が入力される。行選択回路403は垂直カウンタ値が補正データ読み出し開始タイミング設定336と一致すると、補正データ読み出し領域設定337に設定された領域の上端から読み出し行の選択をする(補正データ読み出しを開始する)。垂直カウンタ値がインクリメントする毎に領域の下方に向かって順次選択する読み出し行を変更していく。また、補正データ読み出し期間設定328で設定された垂直カウンタ値の期間内で、補正データ読み出し領域設定337に設定された領域の補正データ読み出しを繰り返す。さらに、垂直カウンタ値が補正データ読み出し停止期間設定407と一致する期間は、補正データ読み出しを一時的に停止する。
本実施形態では、CPU102によって画像データ読み出し領域としてVOB領域、HOB領域、有効画素領域が設定され、補正データ読み出し領域としてVOB領域が設定される。領域設定に関してはこれに限定されるものではなく、VOB領域、HOB領域、有効画素領域の一部が設定される構成なども適用することができる。上記のように読み出し選択行、シャッター選択行が決定され、デコーダー333へ入力される。
セレクタ406には、水平カウンタ330から出力されるカウンタ値、または水平カウンタB401から出力されるカウンタ値Bが入力され、行選択回路403から出力されるセレクト信号によってセレクトされる。行選択回路403は画像データ読み出し期間中にsel設定A350を選択し、補正データ読み出し期間中にsel設定B406を選択するセレクト信号を出力する。
セレクタ405にはCPU102が設定するres設定A350とres設定B407が入力される。行選択回路403から出力されるセレクト信号に基づき、res設定A350またはres設定B407をセレクトする。行選択回路403は画像データ読み出し期間中にres設定A350を選択し、補正データ読み出し期間中にres設定B407を選択するセレクト信号を出力する。res生成回路345にはセレクタ405から出力されるres設定が入力される。res生成回路345はセレクタ406から出力されるカウンタ値を参照し、res設定に基づいて制御信号resの元となる出力信号をHighまたはLowに遷移させる。
セレクタ404には、CPU102が設定するsel設定A349とsel設定B406が入力される。行選択回路403から出力されるセレクト信号に基づき、sel設定A349またはsel設定B406をセレクトする。行選択回路403は画像データ読み出し期間中にsel設定A349を選択し、補正データ読み出し期間中にsel設定B406を選択するセレクト信号を出力する。sel生成回路344にはセレクタ404から出力されるsel設定が入力される。sel生成回路344はセレクタ406から出力されるカウンタ値を参照し、sel設定に基づいて制御信号selの元となる出力信号をHighまたはLowに遷移させる。
tx_sh生成回路343にはCPU102が設定するtx_sh設定A348が入力される。tx_sh生成回路343は水平カウンタ値を参照し、tx_sh設定A348に基づいて制御信号tx_shの元となる出力信号をHighまたはLowに遷移させる。
セレクタ346にはCPU102が設定するtx設定A347aとtx設定B347bが入力される。行選択回路403から出力されるセレクト信号に基づき、tx設定A347aまたはtx設定B347bをセレクトする。行選択回路403は画像データ読み出し期間中にtx設定A347aを選択し、補正データ読み出し期間中にtx設定B347bを選択するセレクト信号を出力する。tx生成回路342にはセレクタ346から出力されるtx設定が入力される。tx生成回路342は、水平カウンタ値を参照し、tx設定に基づいて制御信号txの元となる出力信号をHighまたはLowに遷移させる。
デコーダー333は、行選択回路332から出力される読み出し選択行に基づき、0行目の読み出し行選択信号0、1行目の読み出し行選択信号1、…を順次アサートする。また、行選択回路403から出力されるシャッター選択行に基づき、0行目のシャッター行選択信号0、1行目のシャッター行選択信号1、…を順次アサートする。
図11に示すように、各生成回路の出力とデコーダー333の出力の論理積340または論理和341が構成され、0行目の制御信号res、sel、txであるres_0、sel_0、tx_0が生成される。1行目以降も同様である。
ここで、図12を用いて、画像データ読み出しまたは補正データ読み出し動作について説明する。図12は画像データ読み出し時の撮像素子100の動作を示している。1行の動作については、第1の実施形態に示す図4の動作と同様のため、説明を省略する。
画像データ読み出し(tc0~tc5)では、res設定A350、sel設定A349、tx設定A347aがセレクトされて、1行がHDの周期(T1)で読み出される。ここでは、読み出しは0行目からm-1行目まで順次選択され、読み出される。また、シャッター選択行では、シャッター開始タイミング設定339に設定されたタイミングで0行目からシャッターが開始される。tx_sh設定A348がセレクトされて1行のPDが水平同期信号HDの周期(T1)でリセットされる。
補正データ読み出し(tc5~tc14)では、res設定B405、sel設定B404、tx設定B347bがセレクトされて、1行が水平同期信号HD2の周期(T2)で読み出される。ここでは読み出しは繰り返し0行目からh-1行目まで順次選択され、読み出される。
シャッター選択行では、シャッター開始タイミング設定339に設定されたタイミングで0行目からシャッターが開始される。tx_sh設定A348がセレクトされて1行のPDがHDの周期(T1)でリセットされる。
図12で読み出される画像データは、ライブビュー画像データまたは静止画像データである。また、補正データは静止画補正値生成用の補正データ、またはライブビュー画像補正値生成用の補正データである。水平同期信号HDの周期は、静止画像データまたはライブビュー画像データを読み出すための1行の周期が設定される。水平同期信号HD2の周期は静止画補正値生成用またはライビュー補正値生成用の補正データを読み出すための1行の周期が設定される。静止画像データの読み出しと静止画補正値生成用補正データの読み出しの1行の周期は一致する。また、ライブビュー画像データの読み出しとライブビュー補正値生成用補正データの読み出しの1行の周期は一致する。
この構成により、1フレームの中の画像データと補正データは異なる1行の読み出し周期で読み出すことができる。また、シャッターは画像データの読み出し周期で走査することができる。
例えば、画像データ読み出しがライブビューであり、補正データ読み出しが静止画補正値生成用の補正データ読み出しである場合を示す。res設定A350、sel設定A349、tx設定A347a、tx_sh設定A348にはライブビューの読み出し周期に合わせたタイミング設定がなされる。また、res設定B405、sel設定B404、tx設定B347bには静止画像データの読み出し周期に合わせたタイミング設定がなされる。
本実施形態のDSP101は、補正回路410を具備する。図13に撮像装置100との接続を含めた補正回路410の構成を示す。図13を用いて補正回路410の構成について説明する。
撮像素子100から出力されるデータは、セレクタ412または補正値生成回路360へ入力される。セレクタ412は、静止画補正時はバス108から入力される画像データを選択し、補正部361へ入力する。ライブビュー補正時は撮像素子100から入力される画像データを選択し、補正部361へ入力する。また、セレクタ411は静止画撮影時には撮像素子100から入力される画像データを選択し、ライブビュー撮影時には補正部361から入力される画像データを選択し、バス108へ画像データを出力する。この構成により、ライブビュー撮影時は読み出された画像データを順次補正する。また、静止画撮影時は補正をせずにRAM105に一旦格納し、撮影時とは別のタイミングで補正を適用する構成とする。
SSG362は入力されたデータ数をカウントし、補正部361または補正値生成回路360に対し動作タイミングを制御する。これにより列毎の補正値生成や補正が制御される。
補正値生成回路360は、撮像素子100から出力される補正データから列回路(列出力線、AD変換器等)毎の補正値を生成し、RAM363へ格納する。RAM363は、RAM_A363aとRAM_B363bを有する。いずれか一方のRAMに読み出しを行う画像データの補正値を格納し、補正に使用する。補正に使用していない側のRAMでは補正値生成や保持が行われ、またはパワーダウンされる。
補正部361は、列回路毎にRAM363から出力される補正値を画像データから減算し、オフセット補正を行う。その後セレクタ411へデータを出力する。
補正回路410の補正値生成、補正に関する動作は第1の実施形態と同様であるため、説明を省略する。
次に、第2の実施形態における撮像装置の動作について説明する。図14A、図14Bは、第2の実施形態における撮像装置100の撮影動作を説明するためのフローチャートである。また、図15は撮像装置100の各構成要素の状態や動作を示すための概念図である。
ユーザーが図1に示した操作部103のメインスイッチを押下すると、ライブビュー(LV)撮影が開始される。LV撮影が開始されると、ステップS200において、CPU102は補正値を生成するために必要な補正データ読み出し行数を算出する。第1の実施形態で説明したように、補正値生成回路360では、列毎の補正データの加算を行うが、この行数を決めることにより加算数を決定する。本実施形態では、AD変換器301で適用されるゲインに基づいて、必要な加算数が決定される。ゲインが高い場合はノイズが多いため、ノイズの影響を小さくするように加算数を多くする構成とする。ただし、行数の決定方法はこれに限定されるものではない。
次にステップS201において、画素における画像撮影のスリットローリングシャッターのPDリセットタイミングと補正データ読み出しタイミングが重複するか否かを算出する。補正データは上述したように制御信号resとtxをネゲートした状態で読み出すことによりオフセット成分を読み出す。しかし、画像撮影のスリットローリングシャッターによるフォトダイオード201のリセットタイミングと補正データ読み出しタイミングが重複すると、制御信号resとtxがアサートした状態で読み出すこととなり、適切なオフセットレベルを読み出すことができなくなってしまう。よって、ここではステップS200において算出した補正データ読み出し行数と、シャッター行が重複するかを判断する。
ステップS200において決定された行数と、補正データを読み出すVOB領域の行数に基づいて、VOB領域の補正データ読み出しの繰り返し回数を算出する。それにより、VOB領域の上端の読み出しを行う、複数ある垂直カウント値を算出する。算出された複数のVOB領域上端の読み出し垂直カウント値と、設定された蓄積時間に基づくVOB領域上端のシャッター(PDリセット)を行う垂直カウント値が一致するか否かを確認する。一致しない場合はステップS203へ進む。
ステップS203では、補正データの読み出しを停止する停止期間を0に設定する。最初のフレームでは補正データの読み出しと、次フレームの画像に対応するシャッター走査が行われる。補正データの読み出しとシャッター(PDリセット)が重複しないので、補正データの読み出しを開始する垂直カウント値を0に設定する(停止期間=0)。その後ステップS204へ進む。
ステップS204では、CPU102は、撮像素子100に対し、LV画像データの読み出しをOFFにし、LV補正値生成用の補正データの読み出しをONにする設定を行う。また、水平同期信号HD2の周期、res設定B407、sel設定B406、tx設定B347bには、LV補正値生成用の補正データ読み出し周期に合わせたタイミング設定がなされる。その後ステップS205へ進む。
ステップS205では、CPU102は補正回路410に対し、補正をOFF、補正値生成をONにする設定を行う。その後ステップS206へ進む。
ステップS206では、補正データの読み出しが行われる。VOB領域で補正データが読み出される。この時、PDリセットと補正データ読み出しは同一行で重複していない。読み出された補正データは補正回路410へ入力され、補正値が生成される。ここでは、RAM_A363aに補正値が格納されることとする。その後ステップS207へ進む。 ステップS207では、CPU102は動画像データ読み出しの設定を撮像素子100に対して行う。LV画像データの読み出しをONにし、補正データの読み出しをOFFにする設定を行う。その後ステップS208へ進む。
ステップS208では、CPU102は補正回路410に対し、補正をON、補正値生成をOFFにする設定を行う。その後ステップS209へ進む。
ステップS209ではLV画像データの読み出しが行われる。この時RAM_A363aに格納された補正値でLV画像データが補正され、補正回路410の外部へ出力される。LV画像データはDSP101において所定の補正や圧縮等が行われ、表示部104へ表示される。その後ステップS210へ進む。
ステップS210では、CPU102は、操作部103に含まれる撮像装置1000のメインスイッチが押下されたか否かを判断する。押下されていた場合にはLV撮影を終了する。押下されていない場合にはステップS211へ進む。
ステップS211では、ユーザーによって操作部103が操作され、静止画撮影スイッチ(SW)が押下されたか否かを判断する。押下されていた場合はステップS222へ進み、静止画撮影が行われる。押下されていない場合にはステップS212へ進む。
ここで、ステップS222における撮像装置1000の静止画撮影動作について、図14Bのフローチャートを用いて説明する。
静止画撮影が開始されると、ステップS300において、CPU102は静止画像データ読み出しの設定を撮像素子100に対して行う。静止画像データの読み出しをONにし、補正データ読み出しをOFFにする設定を行う。また、水平同期信号HDの周期、res設定A350、sel設定A349、tx設定A347a、tx_sh設定A348には、静止画像データの読み出し周期に合わせたタイミング設定がなされる。その後ステップS301へ進む。
ステップS301では、CPU102は補正回路410に対し、補正をOFF、補正値生成をOFFにする設定を行う。その後ステップS302へ進む。
ステップS302では、静止画像データの読み出しが行われる。ここでのステップS302の動作は、図15のフレーム静止画_0に示すように、静止画像データが読み出される。この時RAM_A363aに格納されるLVの補正値は保持される。撮像素子100から読み出された静止画像データは補正回路410では補正されずに、RAM105に格納される。その後ステップS303へ進む。
ステップS303において、CPU102は静止画像データの補正値を生成するために必要な補正データ読み出し行数を算出する。設定されたISO感度に応じて、必要な補正データ読み出し行数を算出する。その後ステップS304に進む。
ステップS304では、画素における画像撮影のスリットローリングシャッターのPDリセットタイミングと補正データ読み出しタイミングが重複するか否かを算出する。ステップS303において決定された補正データ読み出し行数と、補正データを読み出すVOB領域の行数、1フレーム内で画像を読み出さない期間(Vブランキング期間)、タイミングが重複した場合に必要な停止期間に基づき、VOB領域の補正データ読み出しの繰り返し回数を算出する。例えば、
補正データ読み出し行数=45
VOB領域=15
Vブランキング期間に補正データを読み出せる行数=70
必要な停止期間=20
の場合、1フレームでVOB領域を読み出す繰り返し回数は(70-20)/15を切り捨てて3回となる。補正データ読み出しを停止した場合でもVOB領域を読み出し切れるように、必要な停止期間を減算する必要がある。この例の場合、補正データの読み出しは1フレームで終了する。1フレームで終了しない場合は、複数フレームに渡って補正データが読み出される。
本実施形態では、VOB領域は下端まで読み出す構成としているが、これに限定されるものではない。途中の行で読み出しを止める構成も適用可能である。
上述した演算と補正データの読み出し開始タイミング設定により、VOB領域の読み出しを行う期間の垂直カウント値の範囲を算出する。算出された複数のVOB領域の読み出し垂直カウント値の範囲と、設定された蓄積時間に基づくVOB領域のシャッター(PDリセット)を行う垂直カウント値の範囲が一致するか否かを確認する。一致する場合はステップS305へ進む。
ステップS305では、補正データ読み出しを停止する、停止期間Tstopを設定する。1フレームの中では、画像データの読み出し、補正データの読み出し、次フレームの画像に対応するシャッターの走査が行われる。補正データの読み出しとシャッター(PDリセット)が重複するので、補正データ読み出し停止期間設定407への停止期間をTstopに設定する。その後ステップS307へ進む。
ステップS307では、CPU102は、撮像素子100に対し、LV画像データの読み出しをONにし、静止画補正値生成用の補正データ読み出しをONにする設定を行う。水平同期信号HDの周期、res設定A350、sel設定A349、tx設定A347a、tx_sh設定A348には、LV画像データの読み出し周期に合わせたタイミング設定がなされる。また、水平同期信号HD2の周期、res設定B407、sel設定B406、tx設定B347bには、静止画補正値生成用の補正データ読み出し周期に合わせたタイミング設定がなされる。その後ステップS308へ進む。
ステップS308では、CPU102は、補正回路410に対し、補正をON、補正値生成をONにする設定を行う。その後ステップS309へ進む。
ステップS309では、LV画像データと補正データの読み出しが行われる。この時の動作を図15のフレームLV_1に示す。まず、LV画像データが撮像素子100から読み出される。この時RAM_A363aに格納される補正値でLV画像データが補正され、補正回路410の外部へ出力される。LV画像データはDSP101において所定の補正や圧縮等が行われ、表示部104へ表示される。
その後、画像データ読み出しの終了直後である垂直カウント=Aのタイミングで、VOB領域の補正データの読み出しが開始される。このとき、補正データ読み出し期間Tstopを設定しているので、PDのリセットと補正データの読み出しは同一行で重複していない。読み出された補正データは補正回路410へ入力され、補正値が生成される。ここでは、RAM_B363bに補正値が格納されることとする。その後ステップS310へ進む。
ステップS310では、補正値の生成が終了しているか否かを判断する。ISO感度毎に決まる必要な行数だけ補正データが読み出されていない場合には、次のフレームに移行し、追加で補正データの読み出しが行われる。補正値生成が終了している場合には、ステップS311に進む。また、補正値の生成が終了していない場合には、ステップS303へ戻る。ここでは、補正値の生成が終了したとし、ステップS311に進む。
ステップS311では、CPU102は撮像素子100に対し、LV画像データの読み出しをONにし、補正データの読み出しをOFFにする設定を行う。水平同期信号HDの周期、res設定A350、sel設定A349、tx設定A347a、tx_sh設定A348には、LV画像データの読み出し周期に合わせたタイミング設定がなされる。その後ステップS312へ進む。
ステップS312では、CPU102は、補正回路410に対し、補正をON、補正値生成をOFFにする設定を行う。その後ステップS313へ進む。この時、補正回路410はLVの補正終了後、静止画像データの補正をする設定がなされる。
ステップS313では、LV画像データの読み出しが行われる。この時の動作を図15のフレームLV_2に示す。まず、LV画像データが撮像素子100から読み出される。この時RAM_A363aに格納される補正値でLV画像データが補正され、補正回路410の外部へ出力される。LV画像データはDSP101において所定の補正や圧縮等が行われ、表示部104へ表示される。
その後、CPU102は、RAM105へ格納されていた静止画像データを補正回路410へ転送する。補正回路410へ入力された静止画像データはRAM_B363bに格納された補正値で補正され、補正回路410の外部へ出力される。その後DSP101において所定の補正や圧縮等が行われ、記録部107へ記録される。ここまでの動作で静止画撮影が終了する。
なお、ステップS304において、画素における画像撮影のスリットローリングシャッターのPDリセットタイミングと補正データの読み出しタイミングが重複しないと判断された場合には、ステップS306において、補正データ読み出し停止期間は0に設定される。これにより、静止画補正値生成用の補正データの読み出しは、途中で停止しないで行われる。
図14Aに戻り、静止画撮影が終了すると、ステップS207へ戻る。
ステップS212からS221の動作については、ステップS216以外は、第1の実施形態で説明したステップS112からS121と同様であるため説明を省略する。ステップS216では、補正データ読み出し停止期間は0に設定される。これにより、LV補正値生成用の補正データの読み出しは、途中で停止しないで行われる。
また、ステップS203では、補正データの読み出し停止期間は0に設定される。これにより、LV補正値生成用の補正データの読み出しは、途中で停止しないで行われる。
上記の動作により、ライブビュー撮影において静止画撮影がされた場合でも、ライブビューフレームが消失することなく、静止画の撮影条件、動作条件に対応した補正値の生成と補正をすることが可能となる。また、静止画撮影直後に補正値を生成するため、必要な撮影条件毎の補正値を記憶する必要がない。
また、同一行で画像のリセットと補正データの読み出しタイミングが重複しないように補正データ読み出しを一時的に停止するので、画像の蓄積時間の設定に制約を設けることなく、補正値を生成することができる。撮影条件毎に重複タイミングを検出するので、フレームレートやモード、ISO感度などの撮影条件の変更に対応することができる。
さらには、1フレームの中での画像データの読み出しと補正データの読み出しを異なる読み出しタイミングで行うことができる。これにより、1行の読み出しタイミングが異なるモード(静止画)の補正値を、ライブビューのフレームの中で取得することができる。
さらには、静止画撮影後に補正値を生成する構成により、レリーズタイムラグを短縮することができる。
また、本実施形態では、静止画のフレームではLV画像データの補正値生成を実施しない構成としたが、これに限定されるものではない。静止画撮影前後のLVのISO感度が変更された場合、静止画のフレームでLV画像データの補正値生成を実施することにより、LVのISO感度切り替わりに対応することができる。
(他の実施形態)
また本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現できる。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現できる。
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。