以下、本発明の実施形態を図面に基づいて説明する。
(第1の実施形態)
本発明の第1の実施形態について説明する。
図1は、本発明の実施形態による撮像装置の構成例を示すブロック図である。本実施形態による撮像装置100は、例えばデジタルカメラであり、静止画像撮影機能及び動画像撮影機能を有している。撮像装置100は、撮像装置100を統括的に制御するCPU(Central Processing Unit)102、及び撮影レンズ(図示せず)を通過した光学像が結像する撮像素子101を有する。撮像素子101は、これに結像された光学像を電気信号(アナログ画素信号)に変換後、所定の量子化ビット数に応じてデジタル画像データに変換して出力する。
RAM(Random Access Memory)105は、撮像素子101から出力される画像データ及び画像処理部107で処理された画像データを記憶するための画像メモリである。RAM105は、CPU102のワークメモリとしても用いられる。本例では、画像メモリ及びワークメモリとしてRAM105を用いるが、アクセス速度に問題ないものであれば、他のメモリを用いてもよい。ROM(Read Only Memory)106には、CPU102で動作するプログラムが格納される。本例では、ROM106としてフラッシュROMが用いられるが、アクセス速度に問題がないものであれば、他のメモリを用いてもよい。
画像処理部107は、本実施形態に係る静止画像及び動画像の補正処理や、画像の圧縮処理等を行う。操作部103は、ユーザーが撮像装置100に静止画や動画の撮影命令を行う撮影スイッチを含み、撮像条件等を設定する際に用いられる。表示部104は、CPU102の制御下で、画像データに応じた静止画像又は動画像の表示を行うとともに、メニュー等の表示を行う。インターフェース部(I/F)108は、外部記録部111とのインターフェースである。バス110は、CPU102等の撮像装置100内の機能部が接続されたバスである。
外部記録部111は、I/F112、記録媒体113及びコネクタ114を有する。記録媒体113は、例えば、不揮発性メモリ又はハードディスクであり、画像データ等が記録される。外部記録部111は、コネクタ114と撮像装置100に備えられたコネクタ109とを介してI/F108と接続される。本実施形態では、コネクタ109、114によって撮像装置100に対して着脱可能な外部記録部111に記録媒体113を設けているが、撮像装置100に不揮発性メモリ又はハードディスク等の記録媒体を内蔵するようにしてもよい。
図2A及び図2Bは、撮像素子101の回路構成の一例を示す図である。画素部210には、複数の画素200が画素R1_1〜Bm_n(m、nは任意の整数)のように行列状に配置されている。画素200に示すRは赤色、Gは緑色、Bは青色のカラーフィルタが画素上に配置されることを意味する。また、R(G,B)i_jは、画素部210における第i行第j列の画素であることを示す。
ここで、画素200の1画素毎の構成について図2Cを用いて説明する。フォトダイオード(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の出力端子voutとを接続する。これにより、増幅MOSトランジスタ204で電圧に変換された画素信号が画素200の出力端子voutに出力される。
図2A及び図2Bに戻り、垂直走査回路404は、駆動信号res_1、tx_1、sel_1等を各画素200に供給する。これらの駆動信号は、それぞれ各画素200の端子res、tx、selに供給される。各画素の出力端子voutは、列出力線(垂直出力線)300a〜300dに接続される。画素R1_1が配置される列(1列目)を例に説明すると、図2Bに示すように1行目の画素R1_1から12行目の画素G12_1までの画素と列出力線300a〜300dとの接続パターンが、13行目以降の画素において繰り返される。この接続パターンは、各列同様である。
列出力線300a〜300dは、それぞれAD変換器(AD変換部)301a〜301dの入力へ接続される。AD変換器301a〜301dは、画素部210から出力される光信号とノイズ信号の差分をアナログ−デジタル変換する。列出力線300a〜300dには、それぞれ電流源302a〜302dが接続されている。電流源302a〜302dと列出力線300a〜300dに接続された画素部200の増幅MOSトランジスタ204によってソースフォロア回路が構成される。
メモリ400a、400bは、AD変換器301a〜301dの出力データを、タイミングジェネレータ(TG)405a、405bから出力される書き込み信号memwrに従って保持する。メモリ400a、400bに保持されたデータは、水平走査回路401a、401bの走査により出力部402a、403a、402b、403bへ順次転送される。出力部402a、403a、402b、403bは、LVDS(Low Voltage Differential Signaling)等の伝送方式により、撮像素子101の外部へデータを出力する。
図3を参照して、メモリ400aの構成について説明する。メモリ400aは、撮像素子101の水平画素数であるn画素分の画素データをそれぞれ格納するラインメモリ410a〜410dを有する。ラインメモリ410a〜410dには、AD変換器301a、301cの出力が接続される。書き込み制御部413は、TG405aから入力される書き込み信号memwrが入力され、書き込み信号memwrを基に後述するタイミングでラインメモリ410a〜410dの各書き込み信号memwr_a〜memwr_dを出力する。ラインメモリ410a〜410dには書き込み信号memwr_a〜memwr_dに従ってAD変換器301a、301cから出力されるデータが格納される。
ラインメモリ410a〜410dは、水平走査回路401aからの水平走査信号に基づき、水平方向1〜n列の画素のデータが順次出力される。ラインメモリ410aの出力とラインメモリ410dの出力はセレクタ411に接続され、ラインメモリ410bの出力とラインメモリ410cの出力はセレクタ412に接続される。セレクタ411は、出力制御部414から出力される制御信号に従い、ラインメモリ410aの出力又はラインメモリ410dの出力を出力部402aに出力する。また、セレクタ412は、出力制御部414から出力される制御信号に従い、ラインメモリ410bの出力又はラインメモリ410cの出力を出力部403aに出力する。なお、メモリ400bの構成は、接続するAD変換器、水平走査回路、TG、出力部が異なるだけで、メモリ400aの構成と同様である。
次に、図4を用いて、本実施形態による画像処理部107が有する補正回路について説明する。図4は、画像処理部107が有する補正回路の構成例を示す図である。RAM500には、撮像素子101の列出力線300a〜300d、AD変換器301a〜301dを含む読み出し回路毎の補正値が格納される。
補正値a〜dは、それぞれ列方向の画素の画素信号を独立に読み出すとき(後述する静止画モードのとき)に、列出力線300a〜300dを含む読み出し回路毎の補正値である。補正値a〜dは、それぞれ水平画素数分、図4に示すアドレスに格納される。また、補正値A〜Dは、それぞれ列方向の画素の画素信号を混合して読み出すとき(後述する動画モードのとき)に、列出力線300a〜300dを含む読み出し回路毎の補正値である。補正値A〜Dは、それぞれ水平画素数分、図4に示すアドレスに格納される。
カウンタ501は、入力される画像データから水平方向(行方向)又は垂直方向(列方向)の画素数をカウントし、垂直カウンタ値を出力する。位相制御部502は、カウンタ501からの垂直カウンタ値とCPU102によって設定される設定値(P)とに基づき、行毎の位相コードを生成する。位相コードは、設定された値Pの周期で繰り返される。また、位相制御部502は、CPU102によって、アドレスオフセットA1〜A4が設定され、生成した位相コード毎に出力するアドレスオフセットを設定する。メモリコントローラ503には、位相コードに対応したアドレスオフセットが行毎に出力される。
図5に、位相制御部502の動作例を示す。設定値P=4が設定され、位相コードP1〜P4に対して、P1のときにA1、P2のときにA2、P3のときにA3、P4のときにA4がアドレスオフセットとして出力されるように設定されたとする。画像データが入力されると、垂直カウンタ値に同期して位相コードはP1から始まり、P2、P3、P4の順序で変化し、以降P1からP4までを順に繰り返す。位相制御部502は、生成した位相コードP1、P2、P3、P4に対応して、アドレスオフセットA1、A2、A3、A4を出力する。
メモリコントローラ503は、カウンタを有し、入力される画像データの行毎に0〜(n−1)(nは本実施形態での水平画素数)のインクリメントをする。メモリコントローラ503は、インクリメントされるカウンタ値と位相制御部502から入力されるアドレスオフセット値とを加算し、アドレスとしてRAM500へ出力する。RAM500は、メモリコントローラ503から入力されるアドレスに格納している補正値を補正部504に出力する。補正部504は、入力される画像データに対応する補正値で列毎のシェーディング補正を行う。本実施形態では、補正部504はオフセット補正を行うものとするが、この限りではなく、ゲイン補正等の別の補正も適用可能である。
次に、第1の実施形態による撮像装置の動作について説明する。図6は、第1の実施形態による撮像装置100の撮影動作を説明するためのフローチャートである。ユーザーが図1に示した操作部103の動画撮影スイッチを押下すると、動画撮影が開始される。動画撮影が開始されると、ステップS100にて、動画用の読み出し設定が行われ、CPU102は、撮像素子101に対して、動画モードで駆動するための設定を行う。
次に、ステップS101にて、CPU102は、画像処理部107に対して、動画モード時の補正設定を行う。本例では、位相制御部502に対して設定値P=4の設定を行い、アドレスオフセットA1〜A4として、A1=4n、A2=5n、A3=6n、A4=7nの設定を行う。また、位相コードP1〜P4に対して、P1のときにA1、P2のときにA2、P3のときにA3、P4のときにA4がアドレスオフセット値として出力されるように設定する。
その後、ステップS102にて、動画の画像信号読み出しが行われる。ステップS102での動画の画像信号読み出し時の撮像素子101の動作について、図7を用いて説明する。図7に示す時刻ta1にて、垂直走査回路404は、駆動信号sel_1〜sel_12をハイレベルとして、1行目〜12行目の画素200の画素選択スイッチ206をオンする。これにより、増幅MOSトランジスタ204と電流源302a〜302dによって構成されるソースフォロア回路が動作状態となる。このとき、駆動信号res_1〜res_12はハイレベルになっており、リセットスイッチ205がオンになりFD部203がリセットされる。
時刻ta2にて、垂直走査回路404は、駆動信号res_1〜res_12をローレベルにネゲートする。このとき、各画素200の出力端子voutにはノイズレベルが出力され、列出力線300aには1、3、5行目の画素のノイズレベルの混合信号が出力され、列出力線300bには2、4、6行目の画素のノイズレベルの混合信号が出力される。同様に、列出力線300cには7、9、11行目の画素のノイズレベルの混合信号が出力され、列出力線300dには8、10、12行目の画素のノイズレベルの混合信号が出力される。
次に、時刻ta3にて、TG405aはAD変換器301a、301cを駆動し、TG405bはAD変換器301b、301dを駆動して、AD変換を開始する。ここで各列直出力線に出力されるノイズレベルの混合信号がAD変換される。時刻ta4にて、AD変換が終了されると、AD変換器301a〜301dは、それぞれAD変換されたノイズレベルを保持する。
時刻ta5にて、垂直走査回路404は、駆動信号tx_1〜tx_12をハイレベルにし、1行目〜12行目の画素200の転送ゲート202をオンする。そして、各画素のPD201に蓄積されている信号電荷が増幅MOSトランジスタ204で構成されるソースフォロアのゲートに転送される。ソースフォロアは転送された信号電荷に見合う分だけリセットレベルから電位が変動して信号レベルが確定する。このとき、各画素200の出力端子voutには信号レベルが出力され、列出力線300aには1、3、5行目の画素の信号レベルの混合信号が出力され、列出力線300bには2、4、6行目の画素の信号レベルの混合信号が出力される。同様に、列出力線300cには7、9、11行目の画素の信号レベルの混合信号が出力され、列出力線300dには8、10、12行目の画素の信号レベルの混合信号が出力される。
次に、時刻ta6にて、TG405aはAD変換器301a、301cを駆動し、TG405bはAD変換器301b、301dを駆動して、AD変換を開始する。ここで各列出力線に出力される信号レベルの混合信号がAD変換される。時刻ta7にて、AD変換が終了されると、AD変換器301a〜301dは、それぞれAD変換された信号レベルを保持する。
時刻ta8にて、駆動信号tx_1〜tx_12がローレベルにネゲートされた後、時刻ta9にて、書き込み信号memwrがハイレベルになる。書き込み信号memwrがハイレベルになると、AD変換器301a〜301dに保持される信号レベルの混合信号からノイズレベルの混合信号を減算したデータが、メモリ400a又はメモリ400bに格納される。
時刻ta10にて、書き込み信号memwrがローレベルにネゲートされるとメモリ400a、400bへのデータの格納が終了し、時刻ta11にて、駆動信号res_1〜res_12がハイレベルになる。同時に、メモリからデータの転送(水平転送)が開始される。時刻ta12にて、駆動信号sel_1〜sel_12がローレベルにネゲートされると垂直転送が完了する。その後、すべての水平画素の出力が時刻ta14で終了する。
前述した時刻ta1〜時刻ta14の動作を次の12行分(13行目〜24行目)の画素についても行い、以降m行まで12行単位で同様に繰り返す。
このときの出力部402a、403a、402b、403bの出力について説明する。図8は、メモリ401a、401bの動作と出力部402a、403a、402b、403bの出力との関係を示す図である。前述したようにメモリ400a、400bは図3に示した構成である。ここでは、メモリ400aに含まれるラインメモリ410aをラインメモリ1、ラインメモリ410bをラインメモリ3、ラインメモリ410cをラインメモリ5、ラインメモリ410dをラインメモリ7とする。また、メモリ400bに含まれるラインメモリ410aをラインメモリ2、ラインメモリ410bをラインメモリ4、ラインメモリ410cをラインメモリ6、ラインメモリ410dをラインメモリ8とする。ラインメモリ1〜8は、図8に示すラインメモリ1〜8にそれぞれ対応する。また、図8に示す時刻ta1、ta10、ta11、ta14は、それぞれ図7に示した時刻に対応する。
時刻ta10において、ラインメモリ1には1、3、5行目の画素の混合データ(D(1+3+5))が書き込まれる。以降、k、(k+2)、(k+4)行目の画素の混合データをD(k+(k+2)+(k+4))とする。ラインメモリ2にはD(2+4+5)が、ラインメモリ3にはD(7+9+11)が、ラインメモリ4にはD(8+10+12)がそれぞれ書き込まれる。図8において、斜線部はデータがラインメモリに格納されていることを示す。
時刻ta11では、出力制御部414は、セレクタ411、412に対してラインメモリ410a、410bの出力を出力させるセレクト信号を出力する。時刻ta14までの水平転送(HSR)期間でラインメモリ1〜4のデータが水平画素分だけ出力部402a、403a、402b、403bから順次出力される。これまでの動作により、同じ色のカラーフィルタが配置される画素信号が列方向に3行ずつ混合された結果1行分の信号とされ、4行ずつ出力されることとなる。以降、これを繰り返すことにより、(m/3)行分のデータが出力される(動画モード)。撮像素子101から読み出されたデータは、RAM105に格納される。
図6に戻り、次に、ステップS103にて、画像の補正を行う。CPU102は、RAM105に格納されている画像データを画像処理部107に画素部210における上の行から順次送信する。図9に、入力される画像データ、位相コード、RAM500へ入力されるアドレス、及びRAM500から出力される補正値の関係を示す。位相制御部502には設定値P=4が設定されているので、位相コードはP1〜P4を繰り返す。それにより、アドレスオフセットはA1〜A4が繰り返され、その結果アドレスは図9に示すようになる。これにより、画像データの1、2、3、4行目のときに、それぞれ補正値A、B、C、Dが出力されることとなる。以降、4行毎に補正値A、B、C、Dが繰り返され、対応する補正値を使用して補正部504にて行毎の補正がなされる。その後、画像処理部107内で不図示の圧縮回路での圧縮等を行い、外部記録部111に動画として記録される。
その後、ステップS104にて、CPU102は、操作部103の静止画撮影スイッチが押下されたかを判断する。静止画撮影スイッチが押下されていない場合には(ステップS104のNO)、ステップS111へ進む。ステップS111では、CPU102は、動画撮影スイッチが押下されているかを判断し、動画撮影スイッチが押下されている場合には(ステップS111のYES)、撮影を終了する。動画撮影スイッチが押下されていなかった場合には(ステップS111のNO)、ステップS102へ戻り、ステップS102以降の処理を行う。
ステップS104において静止画撮影スイッチが押下されていた場合には(ステップS104のYES)、ステップS105へ進む。ステップS105では、静止画用の読み出し設定が行われ、CPU102は、撮像素子101に対して、静止画モードで駆動するための設定を行う。
次に、ステップS106にて、CPU102は、画像処理部107に対して、静止画モード時の補正設定を行う。本例では、位相制御部502に対して設定値P=12の設定を行い、アドレスオフセットA1〜A4として、A1=0、A2=n、A3=2n、A4=3nの設定を行う。また、位相コードP1〜P12に対して、P1、P3、P5のときにA1、P2、P4、P6のときにA2、P7、P9、P11のときにA3、P8、P10、P12のときにA4がアドレスオフセット値として出力されるように設定を行う。
その後、ステップS107にて、静止画の画像信号読み出しが行われる。ステップS107での静止画の画像信号読み出し時の撮像素子101の動作について、図10を用いて説明する。図10に示す時刻tb1にて、垂直走査回路404は、駆動信号sel_1、sel_2、sel_7、sel_8をハイレベルとして、1、2、7、8行目の画素200の画素選択スイッチ206をオンする。これにより、増幅MOSトランジスタ204と電流源302a〜302dによって構成されるソースフォロア回路が動作状態となる。このとき、駆動信号res_1、res_2、res_7、res_8はハイレベルになっており、リセットスイッチ205がオンになりFD部203がリセットされる。
時刻tb2にて、垂直走査回路404は、駆動信号res_1、res_2、res_7、res_8をローレベルにネゲートする。このとき、各画素200の出力端子voutにはノイズレベルが出力され、列出力線300aには1行目の画素のノイズレベルが出力され、列出力線300bには2行目の画素のノイズレベルが出力される。同様に、列出力線300cには7行目の画素のノイズレベルが出力され、列出力線300dには8行目の画素のノイズレベルが出力される。
次に、時刻tb3にて、TG405aはAD変換器301a、301cを駆動し、TG405bはAD変換器301b、301dを駆動して、AD変換を開始する。ここで各列出力線に出力されるノイズレベルがAD変換される。時刻tb4にて、AD変換が終了されると、AD変換器301a〜301dは、それぞれAD変換されたノイズレベルを保持する。
時刻tb5にて、垂直走査回路404は、駆動信号tx_1、tx_2、tx_7、tx_8をハイレベルにし、1、2、7、8行目の画素200の転送ゲート202をオンする。そして、各画素のPD201に蓄積されている信号電荷が増幅MOSトランジスタ204で構成されるソースフォロアのゲートに転送される。ソースフォロアは転送された信号電荷に見合う分だけリセットレベルから電位が変動して信号レベルが確定する。このとき、各画素200の出力端子voutには信号レベルが出力され、列出力線300aには1行目の画素の信号レベルが出力され、列出力線300bには2行目の画素の信号レベルが出力される。同様に、列出力線300cには7行目の画素の信号レベルが出力され、列出力線300dには8行目の画素の信号レベルが出力される。
次に、時刻tb6にて、TG405aはAD変換器301a、301cを駆動し、TG405bはAD変換器301b、301dを駆動して、AD変換を開始する。ここで各列出力線に出力される信号レベルがAD変換される。時刻tb7にて、AD変換が終了されると、AD変換器301a〜301dは、それぞれAD変換された信号レベルを保持する。
時刻tb8にて、駆動信号tx_1、tx_2、tx_7、tx_8がローレベルにネゲートされた後、時刻tb9にて、書き込み信号memwrがハイレベルになる。書き込み信号memwrがハイレベルになると、AD変換器301a〜301dに保持される信号レベルからノイズレベルを減算したデータが、メモリ400a又はメモリ400bに格納される。
時刻tb10にて、書き込み信号memwrがローレベルにネゲートされるとメモリ400a、400bへのデータの格納が終了し、時刻tb11にて、駆動信号res_1、res_2、res_7、res_8がハイレベルになる。同時に、メモリからデータの転送(水平転送)が開始される。時刻tb12にて、駆動信号sel_1、sel_2、sel_7、sel_8がローレベルにネゲートされると垂直転送が完了する。その後、すべての水平画素の出力が時刻tb14で終了する。
前述した時刻tb1〜時刻tb14までと同様の動作を3、4、9、10行目についても行い(時刻tb15〜tb18)、その後5、6、11、12行目について行う(時刻tb19〜tb22)。その後、この12行単位の動作をm行目まで繰り返す。
このときの出力部402a、403a、402b、403bの出力について説明する。図11は、メモリ401a、401bの動作と出力部402a、403a、402b、403bの出力との関係を示す図である。図11に示す時刻は、それぞれ図10に示した時刻に対応する。
時刻tb10において、ラインメモリ1には1行目の画素のデータ(D1)が書き込まれる。以降、k行目の画素のデータをDkとする。ラインメモリ2にはD2が、ラインメモリ5にはD7が、ラインメモリ6にはD8がそれぞれ書き込まれる。D1、D2は時刻tb17まで保持され、D7、D8は時刻tb21まで保持される。時刻tb16では、ラインメモリ3にはD3が、ラインメモリ4にはD4が、ラインメモリ7にはD9が、ラインメモリ8にはD10がそれぞれ書き込まれる。D9、D10は時刻tb25まで保持される。
時刻tb17では、出力制御部414は、セレクタ411、412に対してラインメモリ410a、410bの出力を出力させるセレクト信号を出力する。時刻tb18までの水平転送(HSR)期間でラインメモリ1〜4のデータが水平画素分だけ出力部402a、403a、402b、403bから順次出力される。この動作により、1〜4行目のデータ(D1〜D4)が出力される。
次に、時刻tb10において、ラインメモリ1にはD5が、ラインメモリ2にはD6が、ラインメモリ3にはD11が、ラインメモリ4にはD12がそれぞれ書き込まれる。D11、D12は時刻tb25まで保持される。時刻tb21では、出力制御部414は、セレクタ411、412に対してラインメモリ410a、410cの出力を出力させるセレクト信号を出力する。時刻tb22までの水平転送(HSR)期間でラインメモリ1、2、5、6のデータが水平画素分だけ出力部402a、403a、402b、403bから順次出力される。この動作により、5〜8行目のデータ(D5〜D8)が出力される。
時刻tb25では、出力制御部414は、セレクタ411、412に対してラインメモリ410d、410bの出力を出力させるセレクト信号を出力する。時刻tb26までの水平転送(HSR)期間でラインメモリ9、10、11、12のデータが水平画素分だけ出力部402a、403a、402b、403bから順次出力される。この動作により、9〜12行目のデータ(D9〜D12)が出力される。
以降、これを繰り返すことにより、m行のデータが出力される(静止画モード)。撮像素子101から読み出されたデータは、RAM105に格納される。
図6に戻り、次に、ステップS108にて、画像の補正を行う。CPU102は、RAM105に格納されている画像データを画像処理部107に画素部210における上の行から順次送信する。図12に、入力される画像データ、位相コード、RAM500へ入力されるアドレス、及びRAM500から出力される補正値の関係を示す。位相制御部502には設定値P=12が設定されているので、位相コードはP1〜P12を繰り返す。それにより位相コードに対応するアドレスオフセットA1〜A4が出力され、その結果アドレスは図12に示すようになる。これにより、画像データの1〜12行目のときに、それぞれ補正値a、b、a、b、a、b、c、d、c、d、c、dが出力されることとなる。以降、12行毎に1〜12行目と同様の動作が繰り返され、対応する補正値を使用して補正部504にて行毎の補正がなされる。その後、画像処理107内で不図示の圧縮回路での圧縮等を行い、外部記録部111に静止画として記録される。
その後、ステップS109にて、CPU102は、操作部103の静止画撮影スイッチが押下された状態かを判断する。静止画撮影スイッチが押下されていなかった場合には(ステップS109のNO)、ステップS110へ進む。ステップS110では、CPU102は、動画撮影スイッチが押下されているかを判断し、動画撮影スイッチが押下されている場合には(ステップS110のYES)、撮影を終了する。動画撮影スイッチが押下されていなかった場合には(ステップS110のNO)、ステップS100へ戻り、ステップS100以降の処理を行い、動画の撮影を行う。
ステップS109において、操作部103の静止画撮影スイッチが押下された状態である場合には(ステップS109のYES)、ステップS107以降の処理を行い、再び静止画の撮影を行う。
第1の実施形態によれば、使用した読み出し回路に対応した補正値を画像の行毎に切り換えてシェーディング補正を行うため、行毎に適切な補正を行うことができる。また、行毎の補正値の切り換えパターンを変更することにより、撮像素子の読み出しモードによって行毎の使用した読み出し回路のパターンが変わった場合でも対応することができる。
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。なお、第2の実施形態における撮像装置の構成は、図1に示した撮像装置100と同様であり、第2の実施形態における撮像装置の構成は、図2A及び図2Bに示した撮像素子101の構成と同様である。
第2の実施形態における画素200の1画素毎の構成について図13を用いて説明する。図13(A)において、フォトダイオード(PD)601、607は、入射した光信号を光電変換し、露光量に応じた電荷を蓄積する。図13(B)にPD601、607の配置を示す。図13(B)において、609はマイクロアレイを構成するマイクロレンズである。マイクロレンズ609は、PD601、607の2つのPDに対して一つが上部に配置される構成となっている。このPD601、607の信号を独立に使用することにより、後述する焦点検出に使用する。本実施形態では、PD601の信号を単独で読み出した画像データをA像データ、PD601、607の信号を加算して読み出した画像データをAB像データとする。
制御信号txaをハイレベルにすることで転送ゲート602がオンになり、PD601に蓄積されている電荷がフローティングディフュージョン部(FD部)603に転送される。また、制御信号txbをハイレベルにすることで転送ゲート608がオンになり、PD607に蓄積されている電荷がFD部603に転送される。なお、本実施形態では、垂直走査回路404は、制御信号txa、txbをそれぞれ出力する。FD部603は、増幅MOSトランジスタ604のゲートに接続されている。増幅MOSトランジスタ604は、PD601、607からFD部603に転送されてきた電荷量に応じた電圧信号を出力する。
リセットスイッチ605は、FD部603やPD601、607の電荷をリセットするためのスイッチである。制御信号resをハイレベルにすることでリセットスイッチ605がオンになり、FD部603がリセットされる。また、PD601、607の電荷をリセットする場合には、制御信号txa、txb及び制御信号resを同時にハイレベルにする。これにより、転送ゲート602、608及びリセットスイッチ605を両方オンし、FD部603経由でPD601、607をリセットする。画素選択スイッチ606は、制御信号selをハイレベルとすることでオンになり、増幅MOSトランジスタ604と画素200の出力端子voutとを接続する。これにより、増幅MOSトランジスタ604で電圧に変換された画素信号が画素部200の出力端子voutに出力される。
本実施形態による画像処理部107の構成例について、図14を用いて説明する。加算回路800は、画素データを加算する。加算回路800は、後述する動作により読み出されたA像データ又はAB像データにおいて、図19において破線に示すように隣接するR、G、G、Bの4つの画素に対応するA像データ又はAB像データを加算平均してデータを圧縮する。補正回路801は、加算平均されたA像データとAB像データに対してシェーディング補正を行う。圧縮回路802は、外部記録部111に記録するための圧縮処理を行う。B像生成回路803は、AB像データからA像データを減算し、B像データを生成する。セレクタ804は、CPU102によるセレクト命令により入力データをセレクトし、外部へデータを出力する。
次に、図15を用いて、本実施形態に係る補正回路について説明する。図4と同じ符号が付される回路については同様の機能であり、説明を省略する。RAM804には、列出力線300a〜300dを含む読み出し回路毎の補正値が、それぞれ水平画素数分、図15に示すアドレスに格納される。また、補正値E、Fは、それぞれ加算回路800にて加算平均されたA像データの補正値である。補正値Eは、列出力線300aを含む読み出し回路の補正値と列出力線300bを含む読み出し回路の補正値との平均値である。補正値Fは、列出力線300cを含む読み出し回路の補正値と列出力線300dを含む読み出し回路の補正値との平均値である。加算平均されたA像データの補正値であるので、(水平画素数/2)の個数のデータが図15に示すアドレスに格納される。
次に、第2の実施形態による撮像装置の動作について説明する。図16は、第2の実施形態による撮像装置100の撮影動作を説明するためのフローチャートである。ユーザーが図1に示した操作部103の動画撮影スイッチを押下すると、動画撮影が開始される。動画撮影が開始されると、ステップS200にて、動画用の読み出し設定が行われ、CPU102は、撮像素子101に対して、動画モードで駆動するための設定を行う。
次に、ステップS201にて、CPU102は、画像処理部107に対して、AB像の補正設定を行う。本例では、位相制御部502に対して設定値P=4の設定を行い、アドレスオフセットA1〜A4として、A1=0、A2=n、A3=2n、A4=3nの設定をする。また、位相コードP1〜P4に対して、P1のときにA1、P2のときにA2、P3のときにA3、P4のときにA4がアドレスオフセット値として出力されるように設定する。
その後、ステップS202にて、動画の画像信号読み出しが行われる。ステップS202での動画の画像信号読み出し時の撮像素子101の動作について、図17を用いて説明する。図17に示す時刻tc1にて、垂直走査回路404は、駆動信号sel_1〜sel_12をハイレベルとして、1行目〜12行目の画素200の画素選択スイッチ606をオンする。これにより、増幅MOSトランジスタ604と電流源302a〜302dによって構成されるソースフォロア回路が動作状態となる。このとき、駆動信号res_1〜res_12はハイレベルになっており、リセットスイッチ605がオンになりFD部603がリセットされる。
時刻tc2にて、垂直走査回路404は、駆動信号res_1〜res_12をローレベルにネゲートする。このとき、各画素200の出力端子voutにはノイズレベルが出力され、列出力線300aには1、3、5行目の画素のノイズレベルの混合信号が出力され、列出力線300bには2、4、6行目の画素のノイズレベルの混合信号が出力される。同様に、列出力線300cには7、9、11行目の画素のノイズレベルの混合信号が出力され、列出力線300dには8、10、12行目の画素のノイズレベルの混合信号が出力される。
次に、時刻tc3にて、TG405aはAD変換器301a、301cを駆動し、TG405bはAD変換器301b、301dを駆動して、AD変換を開始する。ここで各列出力線に出力されるノイズレベルの混合信号がAD変換される。時刻tc4にて、AD変換が終了されると、AD変換器301a〜301dは、それぞれAD変換されたノイズレベルを保持する。
時刻tc5にて、垂直走査回路404は、駆動信号txa_1〜txa_12をハイレベルにし、1行目〜12行目の画素200の転送ゲート602をオンする。そして、各画素のPD601に蓄積されている信号電荷が増幅MOSトランジスタ604で構成されるソースフォロアのゲートに転送される。ソースフォロアは転送された信号電荷に見合う分だけリセットレベルから電位が変動して信号レベルが確定する。このとき、各画素200の出力端子voutには信号レベルが出力され、列出力線300aには1、3、5行目のA像の信号レベルの混合信号が出力され、列出力線300bには2、4、6行目のA像の信号レベルの混合信号が出力される。同様に、列出力線300cには7、9、11行目のA像の信号レベルの混合信号が出力され、列出力線300dには8、10、12行目のA像の信号レベルの混合信号が出力される。
次に、時刻tc6にて、TG405aはAD変換器301a、301cを駆動し、TG405bはAD変換器301b、301dを駆動して、AD変換を開始する。ここで各列出力線に出力されるA像の信号レベルの混合信号がAD変換される。時刻tc7にて、AD変換が終了されると、AD変換器301a〜301dは、それぞれAD変換されたA像の信号レベルを保持する。
時刻tc8にて、駆動信号txa_1〜txa_12がローレベルにネゲートされた後、時刻tc9にて、書き込み信号memwrがハイレベルになる。書き込み信号memwrがハイレベルになると、AD変換器301a〜301dに保持されるA像の信号レベルの混合信号からノイズレベルの混合信号を減算したデータが、メモリ400a又はメモリ400bに格納される。
時刻tc10にて、書き込み信号memwrがローレベルにネゲートされるとメモリ400a、400bへのデータの格納が終了し、時刻tc11にて、メモリからA像データの転送(水平転送)が開始される。時刻tc12でA像データの水平転送が終了すると、時刻tc13で垂直走査回路404は、駆動信号txa_1〜txa_12と駆動信号txb_1〜txb_12をハイレベルにし、1行目〜12行目の画素200の転送ゲート602、608をオンする。そして、各画素のPD601、607に蓄積されている信号電荷が増幅MOSトランジスタ604で構成されるソースフォロアのゲートに転送される。ソースフォロアは転送された信号電荷に見合う分だけリセットレベルから電位が変動して信号レベルが確定する。このとき、各画素200の出力端子voutには信号レベルが出力され、列出力線300aには1、3、5行目のAB像の信号レベルの混合信号が出力され、列出力線300bには2、4、6行目のAB像の信号レベルの混合信号が出力される。同様に、列出力線300cには7、9、11行目のAB像の信号レベルの混合信号が出力され、列出力線300dには8、10、12行目のAB像の信号レベルの混合信号が出力される。
次に、時刻tc14にて、TG405aはAD変換器301a、301cを駆動し、TG405bはAD変換器301b、301dを駆動して、AD変換を開始する。ここで各列出力線に出力されるAB像の信号レベルの混合信号がAD変換される。時刻tc15にて、AD変換が終了されると、AD変換器301a〜301dは、それぞれAD変換されたAB像の信号レベルを保持する。
時刻tc16にて、駆動信号txa_1〜txa_12、txb_1〜txb_12がローレベルにネゲートされた後、時刻tc17にて、書き込み信号memwrがハイレベルになる。書き込み信号memwrがハイレベルになると、AD変換器301a〜301dに保持されるAB像の信号レベルの混合信号からノイズレベルの混合信号を減算したデータが、メモリ400a又はメモリ400bに格納される。
時刻tc18にて、書き込み信号memwrがローレベルにネゲートされるとメモリ400a、400bへのデータの格納が終了し、時刻tc19にて、メモリからAB像データの転送(水平転送)が開始される。時刻tc22にて、AB像データの水平転送が終了する。また、時刻tc20で駆動信号res_1〜res_12がハイレベルになり、時刻tc22で駆動信号sel_1〜sel_12がローレベルにネゲートされると、垂直転送が完了する。その後、すべての水平画素の出力が時刻tc22で終了する。
前述した時刻tc1〜時刻tc22の動作を次の12行分の画素についても行い、以降m行まで12行単位で同様に繰り返す。
このときの出力部402a、403a、402b、403bの出力について説明する。図18は、メモリ401a、401bの動作と出力部402a、403a、402b、403bの出力との関係を示す図である。図18に示す時刻は、それぞれ図17に示した時刻に対応する。
時刻tc10において、ラインメモリ1には1、3、5行目のA像の混合データ(A(1+3+5))が書き込まれる。以降、k、(k+2)、(k+4)行目のA像の混合データをA(k+(k+2)+(k+4))とする。ラインメモリ2にはA(2+4+6)が、ラインメモリ3にはA(7+9+11)が、ラインメモリ4にはA(8+10+12)がそれぞれ書き込まれる。図18において、斜線部はデータがラインメモリに格納されていることを示す。
時刻tc11では、出力制御部414は、セレクタ411、412に対してラインメモリ410a、410bの出力を出力させるセレクト信号を出力する。時刻tc14までの水平転送(HSR)期間でラインメモリ1〜4のデータが水平画素分だけ出力部402a、403a、402b、403bから順次出力される。これまでの動作により、同じ色のカラーフィルタが配置される画素のA像信号が列方向に3行ずつ混合された結果1行分の信号とされ、4行ずつ出力されることとなる。同様にして、時刻tc19からtc22まででは、AB像の水平転送を行い、同じ色のカラーフィルタが配置される画素のAB像信号が列方向に3行ずつ混合された結果1行分の信号とされ、4行ずつ出力される。以降、これを繰り返すことにより、(m/3)行のデータが出力される(動画モード)。撮像素子101から読み出されたデータは、RAM105に格納される。
図16に戻り、次に、ステップS203にて、AB像の補正を行う。CPU102は、RAM105に格納されているAB像データを補正回路801に送信する。ここでのAB像の補正は、図6に示した第1の実施形態のステップS103と同様の処理を行い、RAM804のアドレス0〜(4n−1)に格納される補正値で行毎のシェーディング補正を行う。
その後、ステップS204にて、CPU102は、画像処理部107に対して、A像の補正設定を行う。本例では、位相制御部502に対して設定値P=2の設定を行い、アドレスオフセットA1、A2として、A1=4n、A2=4n+(n/2)の設定を行う。また、位相コードP1、P2に対して、P1のときにA1、P2のときにA2がアドレスオフセット値として出力されるように設定する。補正設定が終了した後、ステップS205にて、CPU102は、RAM105に格納されているA像データを加算回路800に送信する。加算回路800では、A像データを図19に破線により示す組み合わせの4つのA像データを1単位として加算平均を行った後に、RAM105へ格納する。
ステップS206にて、CPU102は、RAM105に格納されているA像データを画像処理部107に上の行から順次送信する。図20に、入力される画像データ、位相コード、RAM804へ入力されるアドレス、及びRAM804から出力される補正値の関係を示す。位相制御部502には設定値P=2が設定されているので、位相コードはP1〜P2を繰り返す。それにより、アドレスオフセットはA1〜A2が繰り返され、その結果アドレスは図20に示すようになる。これにより、加算平均されたA像データの1、2行目のときに、それぞれ補正値E、Fが出力されることとなる。以降、2行毎に補正値E、Fが繰り返され、対応する補正値を使用して補正部504にて行毎の補正がなされ、RAM105へ格納される。
次に、ステップS207にて、B像が生成される。CPU102は、RAM105に格納されているAB像を加算回路800に送信する。加算回路800では、AB像を図19に破線により示す組み合わせの4つのA像データを1単位として加算平均を行った後に、RAM105へ格納する。その後、RAM105に格納されている加算平均されたA像データとAB像データをB像生成回路803へ送信し、B像生成回路803がAB像データからA像データを減算してB像データを生成する。生成されたB像データは、RAM105へ格納される。その後、ステップS208にて、CPU102は、A像データと生成されたB像データを用いて焦点検出を行い、不図示の光学レンズの位置を調整し焦点調整を行う。
その後、ステップS209にて、CPU102は、操作部103の動画撮影スイッチが押下されているかを判断し、押下されている場合には(ステップS209のYES)、撮影を終了する。動画撮影スイッチが押下されていなかった場合には(ステップS209のNO)、ステップS201へ戻り、ステップS201以降の処理を行う。
第2の実施形態によれば、焦点検出用データと画像データの補正時に行毎のシェーディング補正値の切り換えパターンを変更することができるので、焦点検出用データと画像データのそれぞれに対して適切な補正を行うことができる。なお、本実施形態では、1フレームのAB像データの補正後に、1フレームのA像データの補正を行う構成としたが、この限りではない。A像、AB像の行毎の転送中にA像データのみ加算平均し、補正を適用する場合などは、A像データ補正用とAB像データ補正用の両方の切り換えパターン設定を予め設定しておき、1行の中で設定を切り換えればよい。これによりA像データとAB像データを補正する構成も適用することができる。
(第3の実施形態)
次に、本発明の第3の実施形態について説明する。なお、第3の実施形態による撮像装置、撮像素子、及び画素の構成は、第1の実施形態による撮像装置、撮像素子、及び画素の構成と同様である。
図21を用いて、第3の実施形態による画像処理部107が有する補正回路について説明する。図21において、図4と同じ符号が付される回路については同様の機能であり、説明を省略する。位相制御部900の機能は、図4に示した位相制御部502と同様の機能であるが、アドレスオフセット値をメモリコントローラ902と補正値生成部901へ出力する。メモリコントローラ902は、カウンタを有し、入力される画像データの行毎に0〜(n−1)(nは本実施形態での水平画素数)のインクリメントをする。メモリコントローラ902は、インクリメントされるカウンタ値と位相制御部900から入力されるアドレスオフセット値とを加算し、リードアドレス又はライトアドレスとしてRAM903へ出力する。後述する補正値生成時には、ライトアドレスはリードアドレスに対して所定のレイテンシを持ち、動作する。補正時にはリードアドレスのみ動作する。
RAM903は、列出力線300a〜300dを含む読み出し回路毎の補正値を格納する。補正値生成部901は、後述する基準データ(OB巡回データ)を積分して補正値を生成する。本実施形態では、シェーディング補正はオフセット補正であり、補正値生成は積分を用いているが、この限りではない。
また、本実施形態における撮像装置は、全画面モードとクロップモードを持つ。全画面モードでは、0〜m行の画素信号を同色のカラーフィルタで列方向に3画素分混合して読み出す。クロップモードでは、h〜j行の画素信号を独立に読み出す。さらに、本実施形態における撮像素子101は、画素領域の上部に遮光されたp行分の遮光領域(オプティカルブラック領域、OB領域)を有する。ここで、p行は12行の倍数の行とする。
図22に、第3の実施形態による撮像装置100の動作を示す。ユーザーが図1に示した操作部103の動画撮影スイッチを押下すると、動画撮影が開始される。動画撮影が開始されると、ステップS300にて、CPU102は、全画面モードで撮像素子101に対して、基準データを読み出す設定を行う。OB領域のp行を繰り返し読み出すことで基準データとする。
その後、ステップS301にて、CPU102は、画像処理部107に対して、基準データから補正値を生成する設定を行う。本例では、位相制御部900に対して設定値P=4の設定を行い、アドレスオフセットA1〜A4として、A1=0、A2=n、A3=2n、A4=3nの設定を行う。また、位相コードP1〜P4に対して、P1のときにA1、P2のときにA2、P3のときにA3、P4のときにA4が出力されるように設定する。また、メモリコントローラ902にリードアドレスとライトアドレスが動作するように設定する。
その後、ステップS302にて、全画面モードでのOB領域を繰り返し読み出す。OB領域の12行の読み出しは、第1の実施形態での動画モードの読み出しと同様のため、説明を省略する。読み出したデータは、画像処理部107へ送信され、補正値生成が行われる。図23に、補正値生成時の入力データ、位相コード、RAM903へ入力されるリードアドレスとライトアドレスの関係を示す。なお、図23において、OB(1+3+5)はOB領域の1、3、5行目の画素信号の混合信号であることを示す。位相制御部900には設定値P=4が設定されているので、位相コードはP1〜P4を繰り返す。それにより、アドレスオフセットはA1〜A4が繰り返され、その結果リードアドレス又はライトアドレスは図23に示すようになる。補正値生成部901では、リードアドレスに従って出力された補正値に、入力された画像データを列毎に加算し、ライトアドレスに従って元のアドレスに補正値を書き込む動作を行う。これを所定行について行うことにより、図21(B)に示すようにRAM903に補正値A、B、C、Dを生成する。
その後、ステップS303にて、CPU102は、全画面モードでの画像データ読み出し設定を行った後、ステップS304にて、全画面モードの補正設定を画像処理部107に対して行う。ここではメモリコントローラ902にリードアドレスのみ動作するように設定する。次に、ステップS305にて、全画面モードでの画像データ読み出しを行う。その後、読み出された画像データは、画像処理部107にて補正処理がなされる。画像読み出しと補正処理については、第1の実施形態で説明した動画モードと同様である。
次に、ステップS306にて、CPU102は、ユーザーが操作部103を操作してモードをクロップモードにしたかを判断する。モード変更がされていない場合には(ステップS306のNO)、ステップS314に進む。ステップS314では、CPU102は、動画撮影スイッチが押下されているかを判断し、押されていなかった場合には(ステップS314のNO)、ステップS305へ進む。動画撮影スイッチが押下されていた場合には(ステップS314のYES)、撮影を終了する。
ここで、モード変更がされていた場合には、ステップS307へ進む。ステップS307にて、CPU102は、クロップモードで撮像素子101に対して基準データを読み出す設定を行う。OB領域のp行を繰り返し読み出すことで基準データとする。その後、ステップS308にて、CPU102は、画像処理部107に対して、基準データから補正値を生成する設定を行う。本例では、位相制御部900に対して設定値P=12の設定を行い、アドレスオフセットA1〜A4として、A1=0、A2=n、A3=2n、A4=3nの設定を行う。また、位相コードP1〜P12に対して、P1、P3、P5のときにA1が、P2、P4、P6のときにA2が、P7、P9、P11のときにA3が、P8、P10、P12のときにA4がアドレスオフセットとして出力されるように設定を行う。また、メモリコントローラ902にリードアドレスとライトアドレスが動作するように設定する。
その後、ステップS309にて、クロップモードでのOB領域を繰り返し読み出す。OB領域の12行の読み出しは、第1の実施形態での動画モードの読み出しと同様のため、説明を省略する。読み出したデータは、画像処理部107へ送信され、補正値生成が行われる。図24に、補正値生成時の入力データ、位相コード、RAM903へ入力されるリードアドレスとライトアドレスの関係を示す。なお、図24において、OB1はOB領域の1行目の画素信号であることを示す。位相制御部900には設定値P=12が設定されているので、位相コードはP1〜P12を繰り返す。それにより、アドレスオフセットA1〜A4が、図24のように出力され、その結果リードアドレス又はライトアドレスは図24に示すようになる。補正値生成部901では、リードアドレスに従って出力された補正値に、入力された画像データを列毎に加算し、ライトアドレスに従って元のアドレスに補正値を書き込む動作を行う。これを所定行について行うことにより、図21(C)に示すようにRAM903に補正値a、b、c、dを生成する。
その後、ステップS310にて、CPU102は、クロップモードでの画像データ読み出し設定を行った後、ステップS311にて、クロップモードの補正設定を画像処理部107に対して行う。ここではメモリコントローラ902にリードアドレスのみ動作するように設定する。次に、ステップS312にて、クロップモードでの画像データ読み出しを行う。その後、読み出された画像データは、画像処理部107にて補正処理がなされる。画像読み出しと補正処理については、第1の実施形態で説明した静止画モードと同様である。
その後、ステップS313にて、CPU102は、ユーザーが操作部103を操作してモードを全画面モードにしたかを判断する。モード変更がされていない場合には(ステップS313のNO)、ステップS315に進む。ステップS315では、CPU102は、動画撮影スイッチが押下されているかを判断し、押されていなかった場合には(ステップS315のNO)、ステップS312へ進む。動画撮影スイッチが押下されていた場合には(ステップS315のYES)、撮影を終了する。ここで、モード変更がされていた場合には、ステップS300へ進む。
以上の動作を続けると、読み出されたデータは図25に示すようになる。OB領域のフレームで補正値を生成した後に、画像データのフレームが続く。モード変更がされるとOBのフレームで補正値を再び生成した後に、モード変更後の画像データのフレームが続く。
第3の実施形態によれば、画像の撮影前に撮像素子から基準データを出力し、使用した読み出し回路に対応した補正値を生成して画像の補正に適用することで、予め撮像装置内に補正値を記憶する必要がなくなる。また、温度変化などで必要な補正量が変化した場合でも対応することができる。さらには、撮影モードが変更になった場合でも、行毎の補正値を再生成するので行毎の使用した読み出し回路のパターンが変わった場合でも対応することができる。
本実施形態では、1種類の画像データの補正値生成と補正について述べたが、その限りではない。第2の実施形態で述べたように2種類の画像データがある場合にも、それぞれに対応した補正値を生成し、補正を行うような構成にも適用することができる。
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。