以下、本発明の実施の形態による撮像装置について図面を参照して説明する。
(第1の実施形態)
図1は、本発明の第1の実施形態による撮像装置の構成を示すブロック図である。
図1を参照して、図示の撮像装置100は動画像を撮影する機能を有している。撮像装置100は、撮像素子101を備えており、この撮像素子101は光学像を電気信号(アナログ信号、つまり、画像信号)に変換する。撮像素子101から出力されたアナログ信号は、アナログフロントエンド(AFE)103でゲインの調整が行われるとともに、所定の量子化ビットに応じてデジタル信号(画像データ)に変換される。なお、撮像素子101およびAFE103はタイミングジェネレータ(TG)102によって駆動タイミングが制御される。
RAM108は、AFE103から出力される画像データおよび後述する画像処理部110で処理された画像データを記憶するためのメモリ(画像メモリ)であり、さらに、RAM108は後述するCPU104によってワークメモリとしても用いられる。なお、ここでは、画像メモリおよびワークメモリとしてRAM108を用いているが、アクセス速度が問題ないレベルのメモリであれば、他のメモリを用いるようにしてもよい。
ROM106には、CPU104上で動作するプログラムが格納される。図示の例では、ROM106としてフラッシュROMが用いられるが、アクセス速度が問題ないレベルのメモリであれば、フラッシュROM以外の他のメモリを用いるようにしてもよい。
CPU104は、撮像装置100を統括的に制御する。画像圧縮部109は静止画像および動画像の圧縮処理を行う。画像処理部110は撮影の結果得られた画像データの補正等の処理を行う。インターフェース部(I/F)111は、外部記録媒体114とのインターフェースである。
外部記録媒体114は、例えば、不揮発性メモリ又はハードディスクであり、コネクタ117、I/F115、及び記録部116を有している。そして、外部記録媒体114はコネクタ117によって、撮像装置110に備えられたコネクタ113を介してI/F111と接続される。外部記録媒体114には、例えば、静止画像データおよび動画像データが記録される。
図示の例では、外部記録媒体114がコネクタによって撮像装置100に対して着脱可能となっているが、撮像装置100が不揮発性メモリ又はハードディスク等の記録媒体を内蔵するようにしてもよい。
操作部105は撮影命令および撮像条件等の設定をCPU104に対して行う際に用いられる。表示部107はCPU104の制御下で撮影の結果得られた静止画像、動画像、およびメニュー等の表示を行う。
図2は、図1に示す撮像素子を説明するための図である。そして、図2(a)は撮像素子101の回路構成の一例を示す図であり、図2(b)は撮像素子101の画素構成の一例を示す図である。
まず、図2(a)を参照すると、撮像素子101は複数の単位画素201を有している(図示の例では、説明の便宜上1つの単位画素201のみが示されている)。これら複数の単位画素は2次元マトリックス状に配列されている。
単位画素201は、フォトダイオード(光電変換素子)202、転送スイッチ203、リセットスイッチ204、行選択スイッチ205、画素アンプ206、浮遊拡散層FD207を備えている。
フォトダイオード202は、光(光学像)を信号電荷に変換して蓄積する光電変換部である。転送スイッチ203は、フォトダイオード202の光電変換によって生成された信号電荷を転送パルスPTXに応じて浮遊拡散層FD207転送する。浮遊拡散層FD207は、転送スイッチ203によって転送された信号電荷を一旦蓄積する。
リセットスイッチ204は、画素アンプ206のゲートに接続された浮遊拡散層FD207をリセットパルスPRESに応じて基準電圧VDDの電圧レベルにリセットする。画素アンプ206は、ソースフォロアとして機能して、浮遊拡散層FD7に蓄積された信号電荷を増幅する。行選択スイッチ205は、垂直走査回路(図示せず)によって選択された行画素を選択パルスPSELに応じて選択する。行選択スイッチ205によって選択された行の画素信号は、画素アンプ206を介して、負荷電流源208に接続された垂直出力線209に出力される。
続いて、パルス生成回路(図示せず)で生成された転送パルスPTSによって転送ゲート211がオン(ON)となって、垂直出力線209に出力される光信号(S信号)とリセットノイズ(N信号)との混合信号がアンプ210(増幅手段)を介して蓄積容量CTS213に蓄積される。
同様に、パルス生成回路よって生成された転送パルスPTNによって転送ゲート212がONとなって、N信号はアンプ210を介して蓄積容量CTN214に蓄積される。その後、転送パルスPTSおよびPTNによって転送ゲート211および212はオフ(OFF)となる。
次に、水平走査回路(図示せず)から出力される制御信号PHSおよびPHNによって、それぞれ転送ゲート215および216を介して、S信号とN信号との混合信号が容量CHS217に蓄積されるとともに、N信号が容量CHN218に蓄積される。そして、差動増幅器219は容量CH217および容量CHN218に蓄積された電荷の差分に基づいて撮像画像を出力する。
レジスタ220および221(レジスタ手段)の設定(レジスタ値)は外部から設定され、レジスタ220および221は、アンプ選択パルスPAMPSELで制御されるセレクタ222(条件選択手段)によって選択される。そして、アンプ210の増幅率は、レジスタ220又は221の設定に応じて決定される。
続いて、図2(b)を参照すると、撮像素子101には、遮光された画素(OB画素という)の領域(第1の領域)と遮光されていない画素(有効画素という)の領域(第2の領域)とが規定されている。OB画素選択パルスがハイレベル(High)になると、垂直走査回路から出力される選択パルスPSELに応じて、所定の行範囲において最初の行から行選択スイッチ205が順次ONする。そして、当該所定の行範囲が終了すると再び所定の行範囲の最初の行から行選択スイッチが順次ONされる。
例えば、5行目から14行目がOB画素である場合、OB画素選択パルスPOBSELがHighになると、選択パルスPSELによって5、6、…、14行目が順次選択され、その後再び5、6、…、14行目が選択されるという動作が繰り返される。そして、このような動作(巡回)を10回繰り返せば、100行分のOB画素データが出力されることとなる。
図3は、図1に示す画像処理部110の構成の一例を示すブロック図である。
図3において、画像処理部110は複数のRAM110a〜110eを有している。これらRAM110a〜110eにはそれぞれ撮像条件別の補正データが格納される。補正データ生成回路110fはデータ入力(画像データ)と一時的にRAM110a〜110eに記憶されている計算過程のデータ(計算過程データ)を用いて補正データを生成する。そして、補正データの生成工程が繰り返されて、最終的な補正データがRAM110a〜110eのうち予め定められたRAMに書き込まれる。
補正データ更新の際には、補正データ更新回路110gにデータ入力が与えられるとともに、更新対象となる補正データが格納されたRAM(RAM110a〜110eのうちの1つ)から補正データが入力される。そして、補正データ更新回路110gは所定の処理に基づいて補正データの更新を実行する。更新処理が終了すると、補正データ更新回路110gは更新された補正データを、更新対象となる補正データが格納されていたRAMに再格納する。
画像データ補正の際には、撮像の際の撮影条件、つまり、画像データを得た際の撮像条件に従って、セレクタ110iはRAM110a〜110eのいずれかを選択して、選択したRAMから補正データを補正回路110hに与える。補正回路110hは補正データに応じて所定の処理を行って、画像データに補正をして、補正画像データ(データ出力)として出力する。
図4は、図1に示す撮像装置100の動作を説明するためのフローチャートである。また、図5は、図1に示す撮像素子101の動作を説明するためのタイミングチャートであり、図5(a)はその1を示す図、図5(b)はその2を示す図である。さらに、図6は、図1に示す撮像素子101おけるデータ出力を説明するための図であり、図6(a)はその1を示す図、図6(b)はその2を示す図である。そして、図7は、図1に示す撮像装置100におけるデータ出力を説明するための図である。なお、図4に示すフローチャートはCPU104によって実行される。
図1〜図7を参照して、まず、撮影を行うに当たって、ユーザーは操作部105を操作して、撮影感度を設定する。そして、ユーザーは撮像装置100によって動画像の撮影を開始する。ここでは、撮影感度としてISO400で設定されたものとする。CPU104は操作部105から与えられる撮影開始信号によって動画像の撮影を開始する。
なお、撮影感度の設定を行う際には、撮影環境に応じてCPU104が所定の処理を行って撮影感度を決定するようにしてもよい。また、撮影感度=ISO400は一例であり、撮像装置100に設定可能な全ての撮影感度について適用することができる。
動画撮影を開始すると、CPU104は、TG102に対してOB画像選択パルスPOBSELをデータ読み出し期間中において所定の期間Highに出力する設定を行う。これによって、図2(b)に示すOB画素の行を所定の行数巡回して読み出す設定が行われる。また、CPU104は、TG102に対してアンプ選択パルスPAMPSELをデータ読み出し期間中ロウレベル(Low)に出力する設定を行う(ステップS101)。
続いて、CPU104は、図5(a)の時刻t1において撮像素子101のレジスタ220に対してアンプ210の増幅率がISO100相当となる値(レジスタ値)設定をする(ステップS102:OB画素増幅率(第1の撮像条件)の設定)。
ここでは、アンプ選択パルスPAMPSELはLowとなっているので、セレクタ222はレジスタ220を選択して、レジスタ220のレジスタ値がアンプ210に与えられる。この結果、アンプ210の増幅率はISO100相当となる。
CPU104は撮像素子101の読み出しが開始されると(ステップS103)、図5(a)に示す時刻t2〜t3の期間、OB画像選択パルスPOBSELがHighとなって、ISO100相当に画素信号が増幅されたOB画素信号が設定された行数だけ撮像素子101から出力される(図6(a)参照)。
前述したように、撮像素子101から出力されたデータ(ここでは、OB画素信号)はAFE103においてデジタル変換された後、画像処理部110に入力される。そして、画像処理部110において補正データ生成回路110fはOB画像データ(第1の画素データ)を水平方向の列毎に平均して、列毎の補正データを生成する。そして、補正データ生成回路110fは当該補正データ(以下ISO100補正データともいう)をRAM110aに格納する。
続いて、CPU104は補正データの生成が終了したか否かについて判定する(ステップS104)。補正データの生成が終了していなければ(ステップS104において、NO)、CPU104はステップS102の処理に戻って(ここでは、補正データの生成は終了していない)、CPU104は撮像素子101のレジスタ220の設定(レジスタ値)をISO200の感度に相当する増幅率に設定する。そして、CPU104は、ステップS103において撮像素子101からの信号読み出しを開始する。
これによって、撮像素子101からISO200相当に増幅されたOB画素信号が設定された行数だけ出力される。撮像素子101から出力されたOB画素信号はAFE103においてデジタル変換された後、画像処理部110に入力される。画像処理部110において補正データ生成回路110fはOB画素データを列毎に平均して、列毎の補正データを生成する。そして、補正データ生成回路110fは当該補正データ(ISO200補正データともいう)をRAM110bに格納する。
同様にして、ISO400、ISO800、およびISO1600に相当する増幅率で出力されたOB画素信号に応じて、補正データ生成回路110fはそれぞれ補正データをする。そして、これら補正データは補正データ生成回路110fによってそれぞれRAM110c、110d、および110eに格納される。このようにして、増幅率毎の補正データの生成を終了する。
なお、以下の説明では、ISO400、ISO800、およびISO1600に対応する補正データをそれぞれISO400補正データ、ISO800補正データ、およびISO1600補正データと呼ぶことがある。
補正データの生成が終了とすると(ステップS104において、YES)、CPU104は動画記録される画像データ(フレーム)の出力を開始する。
CPU104はTG102に対して、読み出し期間中にOB選択パルスPOBSELがLowとなる設定を行う。さらに、CPU104はTG102に対して、アンプ選択パルスPAMPSELが読み出し期間の所定のタイミング(行単位)でHighとなる設定を行う(ステップS105)。
次に、CPU104は、図5(b)に示す時刻t4において、レジスタ221に対してアンプ210がISO400相当の増幅率になるレジスタ値の設定を行う(ステップS106:有効画素増幅率(第2の撮像条件)設定)。その後、CPU104はレジスタ220にアンプ210がISO100相当の増幅率になるレジスタ値の設定を行う(ステップS107:OB画素増幅率設定)。
CPU104が、図5(b)に示す時刻t5〜t6において読み出しを開始すると、存在するOB画素の行数だけOB画素信号が撮像素子101から出力される(ステップS108)。この際には、アンプ選択パルスPAMPSELはLowになっているので、セレクタ222はレジスタ220を選択する。この結果、アンプ210の増幅率はISO100相当の増幅率となる。
その後、OB画素信号の出力が終了した行において、TG102はCPU104の制御下で撮像素子101に対して出力されるアンプ選択パルスPAMPSELをHighとする。これによって、セレクタ222はレジスタ221を選択して、アンプ210の増幅率がISO400相当になった状態で有効画素信号が撮像素子101から出力される(図6(b)参照)。そして、有効画素信号の出力が最終行まで行われると、1フレーム分の画像出力が終了する。
前述したように、撮像素子101から出力された画素信号はAFE103においてデジタル変換された後、画像処理部110に入力される。画像処理部110では、入力された画素データがOB画素データ(第1の画素データ)である場合には、補正データ更新回路110gに当該OB画素データデータが入力される。
同時に、アンプ210がISO100相当の増幅率である際の補正データ(ISO100補正データ)がRAM110aから補正データ更新回路110gに入力される。補正データ更新回路110gは、これらISO100補正データおよびOB画素データに所定の重み付けをした後、これら2つのデータを比較する。そして、補正データ更新回路110gはISO100補正データがOB画素データと近い値になるように、ISO100補正データを更新する。その後、補正データ更新回路110gは、更新されたISO100補正データをRAM110aに再格納して、ISO100補正データを更新する。
画像処理部110に対する入力データが有効画素データ(第2の画素データ)である場合には、RAM110cに格納された補正データ(ISO400補正データ)がセレクタ110iによって選択されて、ISO400補正データは補正回路110hに与えられる。補正回路110hには有効画素データが与えられており、補正回路110hは水平方向の列毎に、有効画素データからISO補正データを減算して、有効画素データの補正を行う。CPU104は補正後の有効画素データ(つまり、画像データ)をRAM108に格納する。
続いて、CPU104動画撮影が終了したか否かについて判定する(ステップS109)。動画撮影が終了していないと(ステップS109において、NO)、CPU104は次のフレームの撮影を開始する。この際、CPU104は撮影感度が変更されたか否かについて判定する(ステップS110)。撮影感度が変更されていないと(ステップS107において、NO)、CPU104はステップS107の処理に戻って、レジスタ220にアンプ210がISO200相当の増幅率になるレジスタ値を設定をする。
その後、1フレーム目と同様にして、CPU104はステップS108において読み出しを開始して、ISO200相当で増幅されたOB画素データとISO400相当で増幅された有効画素データを撮像素子101から出力する。
前述のように、撮像素子101から出力された画素データはAFE103においてデジタル変換された後、画像処理部110に入力される。画像処理部110において、入力された画素データがOB画素データである場合には、補正データ更新回路110gにOB画素データが入力される。同時に、アンプ210がISO200相当の増幅率である際の補正データ(ISO200補正データ)が、RAM110bから補正データ更新回路110gに入力される。
補正データ更新回路110gは、OB画素データおよびISO200補正データに所定の重み付けをした後、これら2つのデータを比較する。そして、補正データ更新回路110gはISO200補正データがOB画素のデータと近い値になるように、ISO200補正データを更新する。その後、補正データ更新回路110gは更新されたISO補正データをRAM110bに再格納して、ISI200補正データを更新する。
画像処理部110に対する入力データが有効画素データである場合には、RAM110cの出力(ISO400補正データ)がセレクタ110iによって選択され、ISO補正データおよび有効画素データが補正回路110hに与えられる。補正回路110hは水平方向の列毎に、有効画素データからISO400補正データを減算して、有効画素データを補正する。そして、CPU104は補正後の有効画素データをRAM108に格納する。
このようにして、撮影する各フレームにおいて、CPU104はレジスタ220のレジスタ値がISO400相当、ISO800相当、そして、ISO1600相当の増幅率となるように設定を行って、1フレーム内にあるOB画素信号を各増幅率で増幅して撮像素子101から出力する。前述したようにして、OB画素データを用いてRAM110c〜110eに格納された補正データの更新が行われる。そして、各フレームの有効画素データはRAM110cに格納される補正データ(ISO400)で順次補正されてRAM108に格納される。
上述のようにして、RAM110eに格納されたISO1600補正データが更新されると、次のフレームでは再びISO100相当補正データの更新が行われる。そして、順次ISO200、ISO400、ISO800、およびISO1600の補正データが更新される。
上述の例では、ISO100、ISO200、ISO400、ISO800、ISO1600の順に補正データの更新を行っているが、更新順序はこの例に限られない。
ステップS110において、撮影感度が変更されたと判定されると(ステップS110において、YES)、CPU104はステップS106の処理に戻る。ここでは、次フレームの撮影の際に、CPU104はレジスタ221に、変更された撮影感度に相当する増幅率となるレジスタ値の設定を行う。
例えば、撮影感度がISO800に変更されたとすると、ステップS106では、CPU104はレジスタ221に、ISO800相当の増幅率となるレジスタ値の設定を行う。そして、有効画素データが増幅されて撮像素子101から出力される。次に、ステップS107では、CPU104は上述したレジスタ220に対する設定周期においてフレームが該当する増幅率になるようにレジスタ220にレジスタ値の設定を行う。
前述のように、撮像素子101から出力された画素データは、AFE103にてデジタル変換された後、画像処理部110に入力される。画像処理部110に入力される画素データがOB画素データである場合には、上述したようにして、補正データが更新される。
画像処理部110に入力される画素データが有効画素のデータである場合には、RAM110dの出力(ISO800補正データ)がセレクタ110iによって選択される。そして、ISO800補正データおよび有効画素データが補正回路110hに入力される。
補正回路110hは水平方向の列毎に、有効画素データからISO800補正データを減算して、有効画素データの補正を行う。CPU104は補正後の有効画素データをRAM108に格納する。
このようにして、RAM108格納された各フレーム(図7参照)の有効画素データは、順次画像圧縮部109に入力されて、ここで所定の圧縮処理等を行った後、外部記録媒体114に記録される。
ステップS109において、動画撮影が終了したと判定されると(ステップS109において、YES)、CPU104は撮影を終了する。
上述したように、第1の実施形態による撮像装置では、1フレームにおいて、OB画素データおよび有効画素データを生成して、OB画素データおよび有効画素データを、撮影感度に応じた増幅率でそれぞれ増幅する。そして、アンプの増幅率毎に補正データを保持して、補正データをOB画素データに基づいて周期的に更新する。そして、有効画素データは、当該有効画素データに対応する補正データで補正される。
この結果、動画等の連続した画像データを補正する際に、画像データの増幅率(つまり、撮影感度)が変更されても、撮影感度を変更する都度、補正データを新たに生成する必要がない。従って、動画像が途切れることがなく画像データの補正を行うことができる。
さらに、長時間連続して撮影を行って撮像素子の温度等の変化に起因してアンプの特性が変化しても、上述のようにして、補正データを更新するようにすれば、アンプの特性の変化に追従して適切な補正を行うことができる。
本実施例では動画撮影について述べたが、その限りではない。連続した静止画撮影等、連続した画像の撮影であれば適用することができる。
(第2の実施形態)
続いて、本発明の第2の実施形態による撮像装置について説明する。第2の実施形態による撮像装置の構成は図1に示す撮像装置100と同様である。また、第2の実施形態における撮像素子の構成は図2に示す撮像素子101と同様である。そして、第2の実施形態においては、画像処理部の構成が図3に示す画像処理部110と異なる。
図8は、本発明の第2の実施形態による撮像装置で用いられる画像処理部110の構成を示すブロック図である。
図8において、画像処理部110はRAM110a’〜110c’を有しており、これらRAM110a’〜110c’には撮像条件別の補正データが格納される。補正データ生成回路110f’はデータ入力(画像データ)と一時的にRAM110a’〜110c’に記憶された計算過程におけるデータとを用いて補正データを生成して、RAM110a’〜110c’のうちの1つのRAMに補正データを書き込む。
さらに、補正データを更新する際には、補正データ更新回路110g’にデータ入力および更新対象となる補正データが格納されたRAM110a’〜110c’のいずれかから補正データが入力される。補正データ更新回路110g’は所定の処理に基づいて補正データの更新を行う。そして、補正データ更新回路110g’は更新後の補正データを、更新対象となる補正データが格納されていたRAMに格納する。
画像データを補正する際には、画像処理部110に入力される画像データ(データ入力)を撮像した際の撮像条件に応じて、セレクタ110i’がRAM110a’〜110c’の出力のうちのいずれか1つを選択する。これによって、補正データが補正回路110h’に与えられる。補正回路110h’は補正データに応じて所定の処理によって画像データの補正を行い、補正後の画像データを出力する。
図9は、本発明の第2の実施形態による撮像装置の動作を説明するためのフローチャートである。また、図10は、本発明の第2の実施形態による撮像装置におけるデータ出力を説明するための図である。なお、図9に示すフローチャートは、図1に示すCPU104で実行される。
図1、図2、および図8〜図10を参照して、動画像の撮影を開始する際、まず、ユーザーは操作部105を操作して撮影感度を設定する。ここでは、撮影感度はISO400に設定されたものとする。CPU104は操作部105の操作(撮影開始操作)に応じて動画像の撮影を開始する。
撮影が開始されると、CPU104は補正データを生成するためのアンプ210の増幅率を決定する(ステップS201)。ここでは、増幅率の設定数はRAM(RAM110a’〜110c’)の個数と同一であり、設定数にはISO400相当の設定が含まれる。さらに、ここでは、ISO400よりも増幅率が1段低いISO200と、ISO400よりも増幅率が1段高いISO800が選択されるものとする。
続いて、CPU104はステップS202〜S207の処理を実行することになる。ステップS202〜S207の処理は、図4で説明したステップS101〜S106と同様である。なお、補正データの生成では、アンプ210の増幅率がISO200、ISO400、およびISO800相当の増幅率となる設定で補正データが生成される。そして、これら補正データはそれぞれRAM110a’〜110c’に格納される。
ステップS207の処理が終了すると、CPU104は、後述する撮影感度変更の際に新たに補正データを生成するための処理が完了しているか否かついて判定する(ステップS208)。
新たに補正データを生成するための処理が完了していると(ステップS208において、YES)、CPU104は、補正データの更新を行うため、アンプ210がISO200相当の増幅率となるレジスタ値をレジスタ220に設定をする(ステップS209:OB画素増幅率設定)。そして、CPU104は撮像素子101の読み出しを開始する(ステップS210)。これによって、OB画素の行数だけOB画素信号が撮像素子から出力される。この際、アンプ選択パルスPAMPSELはLowとなっているまで、セレクタ222はレジスタ220を選択する。その結果、アンプ210の増幅率はISO200相当の増幅率となる。
その後、OB画素信号の出力が終了した行において、TG102はCPU104の制御下で撮像素子101に与えるアンプ選択パルスPAMPSELをHighとする。これによって、セレクタ222はレジスタ221を選択する。その結果、アンプ210の増幅率がISO400相当になった状態で、撮像素子101から有効画素信号が出力される。そして、有効画素信号が最終行まで出力されると、1フレーム分の画像出力が終了する。
このようにして、撮像素子101から出力された画素信号はAFE103においてデジタル変換された後、画像処理部110に入力される。画像処理部110では、画素データがOB画素データである場合には、補正データ更新回路110g’にOB画素データが入力される。同時に、ISO200相当の増幅率である場合の補正データが、RAM110a’から補正データ更新回路110g’へ入力される。
補正データ更新回路110g’は、これら2つのデータに所定の重み付けを行った後比較を行って、補正データがOB画素データと近い値になるように補正データを更新する。そして、補正データ更新回路110g’は更新された補正データをRAM110a’に再格納される。
画素データが有効画素のデータである場合には、セレクタ110i’はRAM110b’の出力を選択する。これによって、ISO400補正データおよび有効画素データが補正回路110h’に入力されることになる。補正回路110h’は水平方向の列毎に、有効画素データからISO400補正データを減算して、有効画素データの補正を行う。そして、CPU104は補正後の有効画素データをRAM108に格納する。
続いて、CPU104は動画像の撮影が終了したか否かについて判定する(ステップS211)。動画像の撮影が終了していないと(ステップS211において、NO)、CPU104は次のフレームの撮影を開始する。この際、CPU104は、撮影感度が変更されたか否かについて判定する(ステップS212)。
撮影感度が変更されていないと判定すると(ステップS212において、NO)、CPU104はステップS208の処理に戻る。この場合には、補正データの生成が発生していないので、CPU104はステップS209の処理に進む。そして、ここでは、CPU104は補正データを更新するため、アンプ210がISO400相当の増幅率となるレジスタ値をレジスタ220に設定をする。
その後、1フレーム目と同様にして、CPU104はステップS210において撮像素子101の読み出しを開始する。これによって、ISO400相当の増幅率で増幅されたOB画素信号とISO400相当の増幅率で増幅された有効画素信号とが撮像素子101から出力される。
撮像素子101から出力された画素信号は、前述のように、AFE103においてデジタル変換された後画像処理部110に入力される。画像処理部110では、画素データがOB画素データである場合には、当該OB画素データが補正データ更新回路110g’に入力される。同時に、アンプ210がISO400相当の増幅率である場合の補正データが、RAM110b’から補正データ更新回路110g’に入力される。
補正データ更新回路110g’は、これら2つのデータに所定の重み付けをした後に比較を行って、ISO400補正データがOB画素のデータと近い値になるように、ISO400補正データを更新する。その後、補正データ更新回路110g’は更新したISO400補正データをRAM110b’に格納する。
画素データが有効画素データである場合には、セレクタ110i’はRAM110b’の出力を選択する。これによって、有効画素データおよびISO400補正データが補正回路110h’に入力される。補正回路110h’は水平方向の列毎に、有効画素データからISO400補正データを減算して、有効画素データの補正を行う。そして、CPU104は、補正後の有効画素データをRAM108に格納する。
同様にして、続いて撮影するフレームにおいて、ステップS209ではISO800相当の増幅率となるレジスタ値がレジスタ220に設定される。これによって、ISO800相当の増幅率でOB画素信号を増幅して撮像素子101から出力する。このOB画素信号を用いてRAM110c’の補正データが前述のようにして更新される。一方、有効画素データはRAM110b’に格納された補正データによって前述したようにして補正されて、RAM108に格納される。
RAM110c’に格納されたISO800補正データが更新されて、ステップS212において撮影感度が変更されない場合には、続くフレーム以降において順次ISO200、ISO400、およびISO800補正データを更新する処理が続けられる。
一方、撮影感度が変更されると(ステップS212において、YES)、CPU104は補正データを生成又は更新する新たな増幅率の設定を決定する(ステップS213)。なお、ここでは、ステップS212において撮影感度がISO400からISO800に変更されたものとする。新たな増幅率の設定数はRAM(RAM110a’〜110c’)の個数と同一であり、この設定数にはISO800相当の増幅率の設定が含まれる。さらに、設定数にはISO800よりも増幅率が1段低いISO400と、ISO800よりも増幅率が1段高いISO1600が含まれる。
続いて、CPU104は、ステップS207の処理に移行して、アンプ210がISO800相当の増幅率となるレジスタ値をレジスタ221に設定をする。新たにISO1600相当の増幅率で補正データを生成するため、CPU104はステップS208において補正データの生成が完了していないと判定する(ステップS208において、NO)。
次に、CPU104はISO1600相当の増幅率となるレジスタ値をレジスタ220に設定する(ステップS215)。そして、CPU104は、ステップS210に移行して撮像素子101の読み出しを開始する。これによって、ISO1600相当の増幅率で増幅されたOB画素信号とISO800相当の増幅率で増幅された有効画素信号が撮像素子101から出力される。
前述のように、撮像素子101から出力された画素信号はAFE103にてデジタル変換された後、画像処理部110に入力される。画像処理部110では、画素データがOB画素データである場合には、当該OBデータは補正データ生成回路110f’に入力される。
補正データ生成回路110f’は水平方向の列毎にOB画素データを平均して、列毎の補正データを生成する。この際、OB画素データの平均行数が所定の行数に達していないと、補正データ生成回路110f’は計算途中の補正データをRAM110a’に格納する。
画素データが有効画素データである場合には、セレクタ110i’はRAM110c’の出力を選択する。これによって、RAM110c’に格納された補正データと有効画素データとが補正回路110h’に入力される。補正回路110h’は水平方向の列毎に、有効画素データから補正データを減算して、補正後の有効画素データを生成する。CPU104は補正後の有効画素データをRAM108に格納する。
続いて、CPU104は、撮影終了が終了していないと判定すると(ステップS211において、NO)、ステップS212の処理に進むが、ここでは、撮影感度は変更されていないので、CPU104はステップS208の処理に進む。そして、ステップS208では、ISO1600相当の増幅率における補正データ生成が完了していないので(ステップS208において、NO)、CPU104はステップS215の処理に進む。そして、CPU104は、ステップS215において再びISO1600相当の増幅率となるレジスタ値をレジスタ220に設定する。
CPU104がステップS210において読み出しを開始すると、ISO1600相当の増幅率で増幅されたOB画素信号とISO800相当の増幅率で増幅された有効画素信号とが撮像素子101から出力される。
撮像素子101から出力された画素信号はAFE103においてデジタル変換された後、画像処理部110に入力される。画像処理部110では、画素データがOB画素データである場合には、当該OB画素データは補正データ生成回路110f’に入力される。
一方、RAM110a’から計算途中の補正データが補正データ生成回路110f’入力される。補正データ生成回路110f’はこれら2つのデータについて水平方向の列毎にデータ平均を行う。この際、OB画素データの平均行数が所定の行数に達していないと、補正データ生成回路110f’は、計算途中の補正データをRAM110a’に格納する。また、補正回路110h’は有効画素データをRAM110b’に格納された補正データで補正する。そして、CPU104は補正後の有効画素データをRAM108に格納する。
その後、CPU104はステップS211の処理に進み、撮影終了が終了していない場合には、ステップS212の処理に進む。ここでは、撮影感度は変更されていないので(ステップS212において、NO)、CPU104はステップS208の処理に進む。
このようにして、ステップS208からS212までの処理が、ISO1600相当の増幅率による補正データの生成が完了するまで繰り返される。そして、補正データの生成が完了すると(ステップS208において、YES)、CPU104はステップS209の処理に進む。
ステップS209以降の処理においては、ISO400、ISO800、およびISO1600相当の増幅率における補正データがフレーム毎に順次更新されて、それぞれRAM110b’、110c’、および110a’に格納される。
このようにして、RAM108格納された有効画素データ(図10参照)は、順次画像圧縮部109に入力されて、ここで所定の圧縮処理等を受けた後に外部記録媒体114に記録される。
なお、ステップS211において、動画撮影が終了したと判定されると(ステップS211において、YES)、CPU104は撮影を終了する。この際には、部記録媒体114に対する記録も終了する。
上述のように、第2の実施形態による撮像装置では、設定された撮影感度の増幅率における補正データを含む複数の補正データを生成して、1フレームにおいて各補正データを更新しつつ有効画素データを補正する。そして、連続する画像データの途中で増幅率が変更されると、1フレームに含まれるOB画素データで新たな増幅率の補正データが生成しつつ、有効画素データを補正する。補正データの生成が完了した後には、補正データを更新しつつ有効画素データを補正する。
このような処理によって、補正データを保持するためのRAM等のリソースが少ない場合でも、画像データが途切れることがなく、画像データを適切に補正することができる。さらに、撮影感度、つまり、増幅率の数が少ないので更新頻度が高くなって、温度変化等によるアンプ特性の変化に対して追従性の高い補正を行うことができる。
(第3の実施形態)
続いて、本発明の第3の実施形態による撮像装置について説明する。第3の実施形態による撮像装置の構成は図1に示す撮像装置100と同様である。また、第3の実施形態における撮像素子の構成は図2に示す撮像素子101と同様である。
図11は、本発明の第3の実施形態による撮像装置の動作を説明するためのフローチャートである。また、図12は、本発明の第3の実施形態による撮像装置におけるデータ出力を説明するための図である。なお、図11に示すフローチャートは、図1に示すCPU104で実行される。
図1〜図3、図11、および図12を参照して、図4で説明したように、撮影を行うに当たって、ユーザーは操作部105を操作して、撮影感度を設定する。そして、ユーザーは撮像装置100によって動画像の撮影を開始する。ここでは、撮影感度としてISO400が設定されたものとする。CPU104は操作部105から与えられる撮影開始信号によって動画像の撮影を開始する。
図11に示すステップS301からステップS305までの処理は、図4に示すステップS101からステップS105までの処理と同様であるので、ここでは説明を省略する。
ステップS305における処理が終了した後、CPU104は各増幅率における補正データの更新頻度を決定する(ステップS306)。図4で説明したように、ISO100、ISO200、ISO400、ISO800、およびISO1600相当の増幅率で補正データが生成されている。後述する補正データの更新動作においてフレーム毎に各補正データが1つずつ更新されるが、1つの補正データに関して更新される頻度(フレーム単位)は所定の処理に従って決定される。
図示の例では、撮影感度はISO800に設定されたものとする。そして、ISO800、ISO400、およびISO1600相当の増幅率における補正データについては8フレーム中2フレームで更新する更新頻度とし、それ以外の補正データについては8フレーム中1フレームで更新する更新頻度とする。
なお、更新頻度の設定は上述の限りではなく、例えば、連続撮影中に次に変更する設定(撮影感度)を予測して、使用頻度の高いISO感度の更新頻度を高く決定するようにしてもよい。
続いて、CPU104は有効画素増幅率の設定を行う(ステップS307)。ステップS307における処理は図4で説明したステップS106の動作と同様である。
次に、CPU104は、ステップS306において決定した更新頻度に基づいてレジスタ220にレジスタ値を設定する(ステップS308)。ここでは、CPU104はISO200相当の増幅率となるレジスタ値をレジスタ220に設定する。その後、CPU104はステップS309からステップS311までの処理を実行する。ステップS309からステップS311までの処理は、図4で説明したステップS108からステップS110までの動作と同様である。ここでは、ISO200相当の増幅率における補正データの更新と、ISO400相当の増幅率における有効画素データの補正が行われることになる。
ステップS311において、撮影感度が変更されないと(ステップS311において、NO)、CPU104はステップS308の処理に戻る。そして、CPU104はISO400相当の増幅率となるレジスタ値をレジスタ220に設定する。その後、CPU104はステップS309からS311の処理を行って、ISO400相当の増幅率における補正データの更新とISO400相当の増幅率における有効画素データの補正が行われる。
さらに、ステップS311において撮影感度が変更されないと、CPU104はステップS308からステップS311までの処理を繰り返す。この際には、ステップS308におけるレジスタ220に対する設定はISO800、ISO200、ISO400、ISO800、ISO100、ISO1600、ISO200、ISO400、ISO800、…の順で、ステップS306で設定した更新頻度となるように、CPU104はフレーム毎に増幅率を設定をする。
一方、ステップS311において、撮影感度が変更されると(ステップS311において、YES)、CPU104はステップS306に進んで、新たに各補正データの更新頻度を決定する。ここでは、撮影感度はISO800に設定されものとする。そして、ISO800、ISO400、およびISO1600相当の増幅率における補正データについては8フレーム中2フレームで更新する更新頻度とし、それ以外の補正データについては8フレーム中1フレームで更新する更新頻度とする。
CPU104はステップS307において有効画素増幅率の設定を行った後、ステップS306において新たに決定された更新頻度に基づいてレジスタ220にレジスタ値を設定する(ステップS308)。ここでは、CPU104はISO400相当の増幅率となるレジスタ値をレジスタ220に設定する。
その後、CPU104はステップS309からステップS311までの処理を行って、ISO400相当の増幅率における補正データの更新と、ISO800相当の増幅率における有効画素データの補正が行われる。
ステップS311において撮影感度が変更されないと、CPU104は、ステップS308においてISO800相当の増幅率となるレジスタ値をレジスタ220に設定する。その後、CPU104はステップS309からS311の処理を行って、ISO800相当の増幅率における補正データの更新と、ISO800相当の増幅率における有効画素データの補正が行われる。
このようにして、ステップS311において撮影感度が変更されないと、CPU104はステップS308からステップS311までの処理を繰り返す。この際には、ステップS308におけるレジスタ220の設定は、ISO1600、ISO400、ISO800、ISO1600、ISO100、ISO200、ISO400、ISO800、ISO1600、…の順で、ステップS306で設定した更新頻度となるように、フレーム毎に行われる。
このようにして、RAM108に格納された有効画素データ(図12参照)は、順次画像圧縮部109に入力されて、ここで所定の圧縮処理等を受けた後外部記録媒体114に記録される。
なお、ステップS310において撮影が終了したと判定されると、CPU104は撮影を終了するとともに外部記録媒体114に対する記録も終了する。
上述のように、第3の実施形態による撮像装置は、1フレーム中におけるOB画素データを用いて補正データを更新する。この際、各補正データを更新する更新頻度を独立に決定して、当該更新頻度に応じて補正データの更新を行う。
この結果、有効画素データの補正に用いる補正データ又は撮影感度が変更された際に、次に用いられる可能性が高い補正データについては更新頻度を高くすることができ、温度変化等に起因するアンプ特性の変化に対する追従性の高い補正を行うことができる。また、使用可能性が低い補正データについてもアンプ特性変化に対応することができる。
上述した第1〜第3の実施形態では、撮像素子101に備えられたアンプ(増幅器)の増幅率を撮影感度に応じて設定する例について説明したが、例えば、AFE103に備えられた増幅器の増幅率を撮影感度に応じて設定するようにしてもよい。さらに、読み出す画素の変更(画素加算設定・画素間引き設定)等の適切な補正を行うための設定に応じて補正データを変更する必要がある場合に適用することができる。
また、第1〜第3の実施形態では、OB画素データを用いて補正データを生成するようにしたが、他のデータを用いるようにしてもよい。例えば、フォトダイオード(光電変換素子)が存在しない画素(無効画素)に係るデータ、画素信号以外のデータ等の設定変更によるデータの変化の特性を反映して補正データが生成可能であれば、このようなデータを用いるようにしてもよい。
さらに、第1〜第3の実施形態では、1フレーム中にOB画素データおよび有効画素データの2種類のデータが存在するが、データの種類の数は2つに限定されない。2つ以上の種類のデータが存在すれば、同様にして適用することができる。加えて、増幅率の設定をOB画素と有効画素とによって変更するようにしたが、有効画素信号と同一の増幅率で増幅されたOB画素信号を他の補正処理等で用いるようにしてもよい。画像の所定の位置で増幅率の設定を変える等増幅率の設定領域は任意である。
さらに、第1〜第3の実施形態では、補正データの生成、更新、および画像データ(有効画素データ)の補正は画像水平方向の列毎について行う例について説明したが、この例に限定されない。
また、第1〜第3の実施形態では、撮像素子101が2つのレジスタを備えて、CPU104からの信号によってレジスタを選択するようにしたが、例えば、撮像素子101がレジスタを1つだけ有して、OB画素から有効画素に出力が変わるタイミングで、CPU104がレジスタにレジスタ値を設定するようにしてもよい。そして、撮像素子101が領域判定回路を備えて、レジスタの値を変更する構成でもよい。1フレーム中に複数の領域を有して、当該領域毎に増幅率を独立に設定する構成であれば適用することができる。
また、第2の実施形態では、補正データの数を3つとしたが、複数の補正データを保持するようにすればよい。加えて、撮影感度の変更の際には、フレーム間で新たな補正データ生成を先に行って、補正データの生成が完了した後に更新動作に移行する例について説明したが、補正データの生成および更新の順序は任意である。補正データを更新するフレーム間に、補正データを生成するフレームがあるようにしてもよい。
第3の実施形態において、補正データとして、撮影感度設定可能な全ての増幅率に係る補正データを保持するようにしたが、補正データの数は適宜変更することができる。補正データの更新頻度(設定頻度)を独立に設定できる構成であればよい。
以上、本発明について実施の形態に基づいて説明したが、本発明は、これらの実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。
例えば、上記の実施の形態の機能を制御方法として、この制御方法を、撮像に実行させるようにすればよい。また、上述の実施の形態の機能を有する制御プログラムを、撮像装置が備えるコンピュータに実行させるようにしてもよい。
なお、制御プログラムは、例えば、コンピュータに読み取り可能な記録媒体に記録される。
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムコードを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。