以下に、本発明の好ましい実施の形態を、添付の図面に基づいて詳細に説明する。
<第1の実施形態>
本発明の撮像装置は、ライブビューモードや動画記録時などの連続撮影時において1フレーム期間中に露光量の異なる複数枚の画像を取得しHDR合成を行うことが可能である。以下では、このような撮像装置において、該撮像装置の回路規模を縮小するため、あるいは、消費電力を削減するために、補正回路を最小にし、かつ補正精度を維持することが可能な撮像装置の構成について詳細に説明する。
なお、以下の本実施形態においては、露光量の異なる複数枚の画像としてHigh画像とLow画像の2種類の画像に対してHDR合成を行う構成について説明する。しかし、本発明のHDR合成は、これに限定されず、例えばMiddle画像を含む3種類の画像に対してHDR合成を行うなど、2以上の種類の画像に対してHDR合成を行うようにしてもよい。
本実施形態では、補正回路の1例として、固定パターンの一つである縦線を補正する補正回路について説明を行う。
図1は、本実施形態の撮像装置100の構成例を示す図である。図1に示す撮像装置は、レンズ101、イメージセンサ102、映像信号処理部103、表示部104、レンズ駆動制御部105、フレームメモリ106、システム制御部107、外部入出力端子部108、操作部109、記憶部110、電源部111を備える。なお、図1では、撮像装置本体(カメラ本体)とレンズ装置(撮像光学系)とが一体となった一体型の撮像装置を示しているが、本発明はこれに限定されず、レンズ装置が撮像装置本体に対して交換可能(着脱可能)な撮像システムにも適用可能である。
レンズ101は撮像光学系を構成するレンズ群である。レンズ101内には、図示していない、フォーカスレンズや、絞り、シャッターなどが含まれている。
レンズ駆動制御部105は、システム制御部107から算出された値を基に、レンズ101に含まれるフォーカスレンズや、絞り、シャッターを駆動制御する機能を有する。
レンズ101を通ってきた光は、CMOSイメージセンサ等で構成されたイメージセンサ102の結像面上に被写体の光学像として結像される。
イメージセンサ102(撮像素子)は、結像された光をアナログの電気信号に変換する画素部と、アナログ信号をデジタル信号に変換するA/D変換回路等を含んでいる。
映像信号処理部103は、イメージセンサ102より入力されるHDR処理前のHigh画像信号とLow画像信号に対して、後述する補正用のパラメータ生成や、縦線補正処理およびHDR処理などの画像信号補正処理を行う。このように、本発明における映像信号処理部103は、画像合成装置(画像処理装置)としての機能を有する。映像信号処理部103についての詳細な動作の説明は後述する。
フレームメモリ106は、映像信号処理部103に入力された画像データを記録する記録部である。
フレームメモリ106に記録された画像データに対して、映像信号処理部103は所定の処理を施してHDR画像を生成し、表示部104に表示可能な画像信号として出力する。
映像信号処理部103で処理された画像信号(映像信号)は、イメージセンサ102から出力された動画のフレーム毎或いは所定数のフレーム毎の映像信号である。
システム制御部107は撮像装置100のシステム全体を制御する。具体的には、システム制御部107は、撮像光学系の各々が備えるレンズ駆動制御部105、イメージセンサ102、映像信号処理部103の処理を制御する。また、システム制御部107は、表示部104、外部入出力端子部108、操作部109、記憶部110、電源部111を制御する。
システム制御部107は、システム制御部107の内部に有って不図示のCPU(Central Processing Unit)等により解釈及び実行されるプログラムに従って処理を実行する。
図2は、本発明の一実施形態に係るイメージセンサ102において、例えばCMOSイメージセンサの構成例を示す図である。イメージセンサ102は、光電変換素子(光電変換部)を含む単位画素(以下、単に「画素」と記す場合もある)200が行列状(マトリクス状)に2次元配置されてなる画素アレイ部201を有する。
また、イメージセンサ102は、画素アレイ部201の周辺回路として、例えば、垂直走査部202、列信号処理回路203、列選択回路204、水平走査部205等を有する構成となっている。
画素アレイ部201には、単位画素200が行列状に2次元配置されている。
単位画素200は、列ごとに垂直信号線206が配線され、ラインごとに駆動制御線、例えばリセット制御線RST207と転送制御線TRS208および選択制御線SEL209が配線されている。
図3に、単位画素200の回路構成例を示す。
単位画素200は、光電変換素子(例えば、フォトダイオード)300に加えて、四つのトランジスタ(例えば転送トランジスタ301、リセットトランジスタ302、増幅トランジスタ303及び選択トランジスタ304)を有する画素構成となっている。
転送トランジスタ301は、フォトダイオード300のカソード電極と電荷電圧変換部であるフローティングディフュージョン305との間に接続されている。
また、転送トランジスタ301のゲート電極は、転送制御線TRS208に接続されている。
転送トランジスタ301は、フォトダイオード300で光電変換が行われたことにより蓄積された信号電荷を、ゲート電極(制御電極)に転送パルスが与えられることによってフローティングディフュージョン305に転送する。
リセットトランジスタ302は、画素電源VDDにドレイン電極が、フローティングディフュージョン305にソース電極がそれぞれ接続されている。また、リセットトランジスタ302のゲート電極は、リセット制御線RST207に接続されている。
リセットトランジスタ302は、フォトダイオード300からフローティングディフュージョン305への信号電荷の転送に先立って、ゲート電極にリセットパルスが与えられることによってフローティングディフュージョン305の電位を所定電位にリセットする。
増幅トランジスタ303は、フローティングディフュージョン305にゲート電極が、画素電源VDDにドレイン電極がそれぞれ接続されている。増幅トランジスタ303は、リセットトランジスタ302によってリセットされた後のフローティングディフュージョン305の電位をリセットレベルとして出力する。
さらに、増幅トランジスタ303は、転送トランジスタ301によって信号電荷が転送されたあとのフローティングディフュージョン305の電位を信号レベルとして出力する。
選択トランジスタ304は、例えば、ドレイン電極が増幅トランジスタ303のソース電極に、ソース電極が垂直信号線206にそれぞれ接続されている。
また、選択トランジスタ304のゲート電極は、選択制御線SEL209に接続されている。選択トランジスタ304は、ゲート電極に選択パルスが与えられることによってオン状態となり、単位画素200を選択状態として増幅トランジスタ303から出力される電気信号を垂直信号線206に出力する。
なお、選択トランジスタ304については、画素電源VDDと増幅トランジスタ303のドレイン電極との間に接続した構成とすることも可能である。
また、画素回路としては、上述した4トランジスタの構成に限られるものではなく、選択トランジスタ304を省略し、増幅トランジスタ303を選択トランジスタ304として兼用する3トランジスタの構成であってもよい。
さらに、増幅トランジスタ303を複数の単位画素間で共有する構成などであってもよい。
図2に示す垂直走査部202は、ライン選択回路とドライバ回路(不図示)を備えている。
ライン選択回路は、シフトレジスタあるいはアドレスデコーダ等によって構成されている。
ライン選択回路は、システム制御部107によって制御されるドライバ回路の制御により、画素アレイ部201の各単位画素200をライン単位で垂直走査するための転送パルス、リセットパルスおよび選択パルス等の画素駆動パルスを発生する。
ドライバ回路は、ライン選択回路による垂直走査に同期して、単位画素200の各トランジスタ301,302,304をON/OFFするための所定電圧とされた転送パルス、リセットパルスおよび選択パルスを単位画素200に供給する。
また、ドライバ回路は、垂直走査に同期して、単位画素200の各トランジスタ301,302,304をON/OFFするための電圧の中間的な電圧の転送パルスを単位画素200に供給する処理も可能とされている。
列信号処理回路203は、画素アレイ部201の各列に対して単一に配されている。
列信号処理回路203は、垂直走査によって選択された読み出しラインの各単位画素200から垂直信号線206を通して出力される電気信号に対して所定の信号処理を行い、読み出された信号電荷に応じた画素信号を生成して一時的に保持する。
例えば、列信号処理回路203は、信号処理としてCDS(Correlated Double Sampling:相関二重サンプリング)処理を行う。CDS処理を行うことによって、リセットノイズや増幅トランジスタ303のキズ閾値ばらつき等の画素固有の固定パターンノイズを低減させる。
また、列信号処理回路203は、アナログ信号をデジタル信号に変換するAD変換処理等も行う。
列選択回路204は、シフトレジスタあるいはアドレスデコーダ等によって構成されている。
列選択回路204は、画素アレイ部201の画素列ごとの水平走査を行い、列信号処理回路203に一時的に保持されている画素信号を、水平走査順に水平走査部205で読み出させる。
水平走査部205は、水平選択スイッチ等によって構成されており、列信号処理回路203に一時的に保持されている画素信号を、列選択回路204による水平走査によって画素列ごとに順次読み出して、ライン単位で画像信号の出力を行う。
システム制御部107の走査制御部は、垂直走査部202や列選択回路204の動作を制御して、画素アレイ部201の単位画素200をライン単位で垂直方向に走査する。また垂直走査によって読み出された各画素の信号を水平走査によって出力させる。
以上のように、イメージセンサ102は様々な回路ブロックで構成されているため、製造上のばらつきが多く、さまざまな固定パターンが発生する。
固定パターンノイズの一つである縦線に関して、列信号処理回路203で行うCDS処理においてある程度の除去は可能であるが、温度やランダムノイズの影響を受け、完全には除去できない場合があるため、後段の信号処理回路103にて別途補正が必要となる。
本実施形態では、図2に示すように、ライン毎に、高感度露光用のEvenラインと低感度露光用のOddラインを設定し、画素アレイ部201を走査する。
一般に、イメージセンサでは、ベイヤー方式と呼ばれるR,G,Bのカラーフィルタ配列が用いられており、本実施形態においても1例としてこのベイヤー配列を採用している。
また、一部の周辺画素は、遮光された画素であり、オプティカルブラック画素(以下OB)とする。
ベイヤー配列されたイメージセンサ102では、R,Gからなるライン1本とG,Bからなるライン1本を合わせた2本のラインで1組とすることができる。よって、本実施形態では、図2に示すようにベイヤー配列の2本のラインごとに、低感度露光用のライン(Ln,Ln+1)を1組、高感度露光用のライン(Hn,Hn+1)を1組というように対応させる。
本実施形態では、図2に示すように、低感度露光用のライン(Ln,Ln+1)と高感度露光用のライン(Hn,Hn+1)は、隣り合う。
次に、本実施形態において、ライブビューモードや、動画モードなど連続して撮影を行うモードにおいて、1フレーム期間内に2枚の露光量の異なる画像を取得し、HDR合成を行うことについて、図4を用いて詳細に説明する。
図4は、本発明の第1の実施形態における、撮像装置を用いてHDR画像を取得する際のタイミングチャートである。
本撮像装置のライブビューモードや、動画モード時のフレームレートは説明のため60fpsとして説明する。
システム制御部107が生成する1/60s毎の垂直同期信号によって、1フレーム期間(1垂直同期期間)毎に撮影動作が行われる。
本実施形態においては、システム制御部107によって設定された条件で、1フレーム期間内に、Low画像401とHigh画像402の撮影の露光動作を同時に行っていく。
例えば、Low画像は、適正露出Ev(0)から−1段暗くした低露出Ev(L)画像とし、High画像は適正露出Ev(0)から+1段明るくした高露出Ev(H)画像とする。
1フレーム期間内で取得されたLow画像401とHigh画像402は、フレームメモリ106に一時的に記憶され、Low画像とHigh画像がそろったところで、映像信号処理部103が両画像を合成し、画像合成HDR画像403を作成する。
また、Low画像用縦線検出信号がONとなる期間404では、Low画像から縦線を検出し、High画像用縦線検出信号がONとなる期間405では、High画像から縦線を検出する。
さらに、Low、High画像縦線補正信号がONとなる期間406では、Low画像用縦線検出期間404で検出されたLow画像の縦線検出結果を基にLow画像を補正する。また、1フレーム前のHigh画像用縦線検出期間405で検出されたHigh画像の縦線検出結果を基にHigh画像を補正する。
また、Low、High画像縦線補正信号がONとなる期間407では、high画像用縦線検出期間405で検出されたHigh画像の縦線検出結果を基にHigh画像を補正する。また、1フレーム前のLow画像用縦線検出期間404で検出されたLow画像の縦線検出結果を基にLow画像を補正する。
図5は本実施形態におけるHDR画像を生成するための各画像を取得する際の垂直走査部202から生成される信号を示したタイミングチャートである。
低感度露光に対応するOddラインLnのリセット制御線をRST_Lnとし、転送制御線をTRS_Lnとする。高感度露光に対応するEvenラインHnのリセット制御線をRST_Hnとし、転送制御線をTRS_Hnとする。
転送制御線TRS信号およびリセット制御RST信号が同時に立ち上がることによって、フォトダイオード300の電荷がリセットされ露光が開始される。
この動作はシステム制御部107によって設定された条件で、各行に対して所定の順番で順次行われる。
露光開始後、Low画像用のOddラインにおいて、Low画像取得用の露光時間(第1の露光期間)経過後に、oddライン用のTRS_Ln信号が順次立ち上がる。TRS_Ln信号が立ち上がることによって、フォトダイオード300の電荷を選択トランジスタ304に読みだし、列選択回路204を通して出力させて、Low画像(第1の画像)を取得する。
また、露光開始後、High画像用のEvenラインにおいて、High画像取得用の露光時間(第1の露光期間より長い第2の露光期間)経過後に、TRS_Hn信号が順次立ち上がる。TRS_Hn信号が立ち上がることによって、フォトダイオード300の電荷を選択トランジスタ304に読みだし、列走査回路204を通して出力させて、High画像(第2の画像)を取得する。
次に縦線検出に関して、図6を用いて説明する。
図6は、第1の実施形態における動画中HDRの動作を行いながら、縦線補正を行う際の動作を表す模式図である。図6において、601は縦線補正前のLow画像であり、602はLow画像の縦線検出用画像であり、603は縦線補正前のHigh画像であり、604はHigh画像の縦線検出用画像であり、605はHDR合成画像である。なお、以下では、Low画像601およびLow画像の縦線検出用画像602をまとめてLow画像(第1の画像)と記す場合もある。また、High画像603およびHigh画像の縦線検出用画像604をまとめてHigh画像(第2の画像)と記す場合もある。
また、ここで、縦線検出用画像とは、上述の遮光された画素(OB画素)から取得される遮光画像、もしくはフォトダイオードの電荷を読みださず、垂直信号線206を空転送させた際に取得でき、縦線検出に使用する画像のことである。
606は、Low画像の縦線検出用画像602で検出される縦線検出結果を更新せずに同じ結果(すなわち、前回取得したLow画像の縦線検出用画像から得られた縦線検出結果)を用いて補正することを示している。
607は、High画像の縦線検出用画像604で検出される縦線検出結果を更新せずに同じ結果(すなわち、前回取得したHigh画像の縦線検出用画像から得られた縦線検出結果)を用いて補正することを示している。
同フレーム内のLow画像601およびLow画像の縦線検出用画像602は同じレベルの縦線が発生しており、同フレーム内のHigh画像603およびHigh画像の縦線検出用画像604は同じレベルの縦線が発生している。
ここで、Nフレーム目の動作では、High画像の縦線検出用画像604(第2の画像)からHigh画像に発生する縦線成分(第2のパターン)を検出する。ここで縦線成分は、各列を垂直方向に積分することで検出する。
そして、この縦線検出結果を用いて、High画像603から縦線成分を減算する。
Low画像の縦線検出結果は、N−1フレーム目にて取得(前回取得)したLow画像の縦線検出用画像602を用いて前回検出された縦線検出結果606を用いて、Nフレーム目のLow画像601から縦線成分を減算する。
そして縦線成分を減算された、補正後のLow画像と、補正後のHigh画像を合成してHDR合成画像605を生成する。
N+1フレーム目の動作では、Low画像の縦線検出用画像608(第1の画像)からLow画像に発生する縦線成分(第1のパターン)を検出する。
そして、この縦線検出結果を用いて、Low画像601から縦線成分を減算する。
High画像の縦線検出結果は、Nフレーム目にて取得(前回取得)したHigh画像の縦線検出用画像604を用いて前回検出された縦線検出結果607を用いて、N+1フレーム目のHigh画像603から縦線成分を減算する。
縦線成分を減算された、補正後のLow画像と、補正後のHigh画像を合成してN+1フレーム目のHDR合成画像605を生成する。
次に本実施形態にかかわる撮像装置の動作を、図7のフローチャートを用いて詳細に説明する。
ユーザーにより、電源がON(S701)され、各種初期設定(S702)を行った後、ライブビューモードや動画記録などの動作モードに移行し、撮影が開始される(S703)。
まず、システム制御部107にてHDR合成を行う際に必要な露出条件、すなわちHigh画像用露出(以下、EvH)及びLow画像用露出(以下、EvL)を算出する(S704)。
S705ではS704で算出された露出条件EvH,EvLを基にイメージセンサ102において、odd/evenラインで異なる露出条件で撮影を行い、1フレーム期間中にHigh画像とLow画像を取得する。
S706では、S705で取得されたHigh画像とLow画像のそれぞれに対して縦線補正処理を行う、補正した画像はフレームメモリ106へ保存する。
S707では、映像信号処理部103(合成手段)において、S706で縦線補正処理をされた、High画像とLow画像に対してHDR合成を行い、HDR画像を生成する。
S708では、映像信号処理部103によって、S707で生成されたHDR画像の現像処理を行い、記憶部110への動画記録や、表示部104のライブビュー表示などを行う。
S709において、引き続き撮影動作が続いている場合はS704へ進み、撮影を続ける。一方、S709において、撮影が終了した場合は、S710へ進み、本フローを終了する。
次にS706における縦線補正処理について、図8のフローチャートを用いて詳細に説明する。
図9には、映像信号処理部103の一部である、縦線補正回路の構成を示している。
イメージセンサ102からは、Low画像出力信号線901(第1の画像取得手段)、High画像出力信号線902(第2の画像取得手段)がそれぞれスイッチ903と、減算部908、909に接続されている。
スイッチ903(第1の切替手段)は、Low画像出力信号線901またはHigh画像出力信号線902と、縦線補正値検出部904と、を接続する(接続を切り替える)スイッチである。
縦線補正値検出部904(検出手段)は、スイッチ903がLow画像出力信号線901と縦線補正値検出部904とを接続しているときは、Low画像の縦線検出用画像からLow画像に発生する縦線成分を検出する。また、スイッチ903がHigh画像出力信号線902と縦線補正値検出部904とを接続しているときは、High画像の縦線検出用画像からHigh画像に発生する縦線成分を検出する。そして、Low画像またはHigh画像に応じた縦線検出信号から、列ごとにライン積分を行い各列単位で補正値を算出する。
ここで、縦線検出信号とは、遮光画像信号、もしくはフォトダイオードの電荷を読みださず、垂直信号線206を空転送させた空転送信号のことである。
スイッチ905(第2の切替手段)は、縦線補正値検出部904から、メモリ_L906または、メモリ_H907へ接続する(接続を切り替える)スイッチである。スイッチ905は、スイッチ903と連動して動作する。
メモリ_L906(第1の記憶手段)は、Low画像用の縦線補正値(第1のパターンに応じたデータ)を保存する領域を設けており、縦線補正値検出部904によって算出された補正値を保存(更新)する。
メモリ_H907(第2の記憶手段)は、High画像用の縦線補正値(第2のパターンに応じたデータ)を保存する領域を設けており、縦線補正値検出部904によって算出された補正値を保存(更新)する。
このとき、フレームごとに、スイッチ903にて選択され縦線補正値検出部904で縦線補正値が検出される画像に対する補正値をスイッチ905で選択されたメモリに更新していく。
減算部908(補正手段)は、イメージセンサ102から出力されるLow画像信号とメモリ_L906に保存(更新)されたLow画像用の補正値とを減算する。
減算部909(補正手段)は、イメージセンサ102から出力されるHigh画像信号とメモリ_H907に保存(更新)されたHigh画像用の補正値とを減算する。
減算部908,909において縦線成分を減算されたLow画像とHigh画像はフレームメモリ106に保存される。
引き続き図8に記載のフローチャートについて説明する。
図7のS706にて縦線補正処理が開始されると(S801)、システム制御部107において縦線を検出する画像が選択される。すなわち、システム制御部107は、現在のフレームにおいて、Low画像の縦線を検出するのかHigh画像の縦線を検出するのかを選択する。
縦線検出画像がLow(S802においてYes)の場合、Low画像用縦線検出信号が立ち上がり、スイッチ903は、Low画像出力信号線901側に、スイッチ905はメモリ_L906側に接続される。そして、S803へと進む。
S803では、縦線補正値検出部904において、Low画像の縦線検出信号から縦線補正値を算出する。そして、S804では、メモリ_L906内のLow画像縦線補正値の更新を行う。
次に、縦線検出画像がHigh(S802においてNo)の場合、High画像用縦線検出信号が立ち上がり、スイッチ903は、High画像出力信号線902側に、スイッチ905はメモリ_H907側に接続される。そして、S805へと進む。ここで、スイッチ903の位置がS802のYesの位置であった場合は、上記のようにスイッチ903は、High画像出力信号線902側に切り替える。換言すれば、スイッチ903は、縦線補正値検出部904への接続先を、Low画像出力信号線901およびHigh画像出力信号線902のうち一方から他方に切り替えることができる。スイッチ905についても同様である。
S805では、縦線補正値検出部904において、High画像の縦線検出信号から縦線補正値を算出する。具体的には、スイッチ903により縦線補正値検出部904と接続されたHigh画像出力信号線902(他方の画像取得手段)により取得されたHigh画像から縦線成分を検出する。また、検出した縦線検出信号から縦線補正値を算出する。そして、S806では、メモリ_H907のHigh画像縦線補正値の更新を行う。
S807では、Low、High画像用縦線補正信号が立ち上がり、メモリ_L906に保存されたLow画像縦線補正値およびメモリ_H907に保存されたHigh画像縦線補正値に基づいて縦線補正処理が行われる。具体的には、減算部908,909にて、メモリ_L906に保存されたLow画像縦線補正値およびメモリ_H907に保存されたHigh画像縦線補正値を基に、Low画像、High画像それぞれに対して補正(減算)処理される。更に詳細に説明すると、現在スイッチ903の位置がS802のNoの位置である場合、リアルタイムでS805により検出された縦線成分(縦線補正値)はS806でメモリ_H907に保存されている。S705で取得された現在のHigh画像(第1の取得画像)はこのメモリ_H907に保存された縦線補正値を基に補正処理される。一方、S802のNoにより接続先が切り替えられる前にLow画像出力信号線901(一方の画像取得手段)により取得されたLow画像(第2の取得画像)は、S803で縦線成分(縦線補正値)が検出されている。この縦線補正値は、以前(前回)のS804でメモリ_L906に保存されている。S705で取得された現在のLow画像(第3の取得画像)はこのメモリ_L906に保存された縦線補正値を基に補正処理される。
縦線補正処理後のLow画像およびHigh画像はフレームメモリ106に保存され補正動作を終了する(S808)。
このように、連続撮影時に1フレーム期間中に異なる露出の複数枚画像を取得しHDR合成を行う撮像装置において、リアルタイムに縦線補正を行う場合、フレーム間で検出回路を共有することによって、回路規模の削減や、消費電力の削減が可能となる。換言すれば、縦線を検出する検出回路を複数の異なる露出の画像の間で共有することで、検出回路の数を複数の異なる露出の画像の数よりも少なくすることができ、回路規模の削減や、消費電力の削減が可能となる。
また、第1の実施形態では、縦線検出を1フレームごとに交互に切り替える説明を行ったが、これに限定されず、数フレーム毎に切り替えてもよい。また、High画像と、Low画像で切り替えるフレーム数に重みをつけてもよい。例えば、High画像の方が蓄積時間や、感度(ゲイン)の設定が高くなるためノイズの影響を受けやすい。そのため、High画像の検出は2フレーム後に切り替え、Low画像は1フレーム後に切り替え等設定しても構わない。
第1の実施形態では、縦線検出用の画像信号をLow画像または、High画像を読みだした後に、読みだす構成で説明したが、これに限定されず、Low画像、High画像を読みだす前に縦線検出用の画像信号を読み出しても構わない。
<第2の実施形態>
第1の実施形態では、固定パターンノイズの一つである縦線の補正について説明を行ったが、CMOSイメージセンサには、その他の固定パターンノイズとして白点キズがある。
通常、白点キズは製品の出荷時の調整時などで予め検出しておき、通常ユーザーが使用する際は、補正されており、白点キズとして見えないようになっている。
しかしながら、集荷後の様々な外的要因(例えば静電気など)によって、画素部が破壊され白点キズが発生する場合がある。これを後キズと呼ぶ。
第2の実施形態では、連続撮影時(ライブビューモードや動画記録時)に1フレーム期間中に異なる露出の複数枚画像を取得しHDR合成を行う撮像装置において、後キズをリアルタイムに検出し補正する構成について説明を行う。
図10には、図1の映像信号処理部103の一部である、後キズ補正回路の構成を示している。
イメージセンサ102からは、Low画像出力信号線901(第1の画像取得手段)、High画像出力信号線902(第2の画像取得手段)がそれぞれスイッチ1001と、画素補間処理部_L1006、画素補間処理部_H1007に接続されている。
スイッチ1001(第1の切替手段)は、Low画像出力信号線901またはHigh画像出力信号線902と、後キズ検出部1002と、を接続する(接続を切り替える)スイッチである。
後キズ検出部1002(検出手段)は、スイッチ1001がLow画像出力信号線901と後キズ検出部1002とを接続しているときは、Low画像から有効画素領域内に対してキズ(第1のパターン)を検出する。また、スイッチ1001がHigh画像出力信号線902と後キズ検出部1002とを接続しているときは、High画像から有効画素領域内に対してキズ(第2のパターン)を検出する。そして、Low画像またはHigh画像からキズアドレスを抽出する。
ここで、後キズ検出について、図11を用いて説明する。
Low画像、High画像は第1の実施形態にて説明したとおり、ベイヤー配列された画素信号で出力される。
後キズ検出部1002はベイヤー出力された画素信号に対して、色別に後キズを検出する。
例えば、図11(a)は、R画素に対する後キズ検出を説明する図であり、中心のR画素が検出画素とすると、周囲同色4つのR画素のメディアン値との差分が、R画素キズ閾値のRxより大きい場合は後キズと判定する。
図11(b)は、Gr画素に対する後キズ検出を説明する図であり、中心のGr画素が検出画素とすると、周囲同色4つのGr画素のメディアン値との差分が、Gr画素キズ閾値のGrxより大きい場合は後キズと判定する。
図11(c)は、B画素に対する後キズ検出を説明する図であり、中心のB画素が検出画素とすると、周囲同色4つのB画素のメディアン値との差分が、B画素キズ閾値のBxより大きい場合は後キズと判定する。
図11(d)は、Gb画素に対する後キズ検出を説明する図であり、中心のGb画素が検出画素とすると、周囲同色4つのGb画素のメディアン値との差分が、Gb画素キズ閾値のGbxより大きい場合は後キズと判定する。
ここで各色画素キズ閾値Rx,Grx,Bx,Gbxは、あらかじめ撮像装置の設計の際又は撮像装置の調整の際にシステム制御部107に記録されるキズと判定するためのパラメータである。
スイッチ1003(第2の切替手段)は、後キズ検出部1002から、メモリ_L1004または、メモリ_H1005へ接続する(接続を切り替える)スイッチである。スイッチ1003は、スイッチ1001と連動して動作する。
メモリ_L1004(第1の記憶手段)は、Low画像用のキズ検出アドレス(第1のパターンに応じたデータ)を保存する領域を設けており、後キズ検出部1002によって検出されたキズアドレスを保存(更新)する。
メモリ_H1005(第2の記憶手段)は、High画像用のキズ検出アドレス(第2のパターンに応じたデータ)を保存する領域を設けており、後キズ検出部1002によって検出されたキズアドレスを保存(更新)する。
画素補間処理部_L1006(補正手段)は、メモリ_L1004に保存されているLow画像用のキズ検出アドレスに対して画素補間処理を行い、処理後の画像をフレームメモリ106に保存する。画素補間処理部_H1007(補正手段)は、High画像用のキズ検出アドレスに対して画素補間処理を行い、処理後の画像をフレームメモリ106に保存する。
画素補間処理は、キズアドレスに対して、図11に示すような周辺同色4画素のメディアン値や、平均値などで置き換える。
第2の実施形態における撮像装置の詳細な動作を図12(a)のフローチャートを用いて説明する。
第1の実施形態(図7)と同等な動作の箇所に関しては同じステップ番号を付し、説明を省略する。
S705にてLow画像とHigh画像が取得されると、S1200にて後キズ処理が開始される。
ここで、S1200の後キズ処理について図12(b)を用いて詳細に説明する。
後キズ処理がスタート(S1201)すると、システム制御部107において後キズを検出する画像が選択される。すなわち、システム制御部107は、現在のフレームにおいて、Low画像の後キズを検出するのかHigh画像の後キズを検出するのかを選択する。
後キズ検出画像がLow(S1202においてYes)の場合、スイッチ1001は、Low画像出力信号線901側に、スイッチ1003はメモリ_L1004側に接続される。そして、S1203へと進む。
S1203では、後キズ検出部1002において、Low画像の各画素から後キズを検出する。そして、S1204では、メモリ_L1004内のLow画像用後キズアドレスの更新を行う。
次に、後キズ検出画像がHigh(S1202においてNo)の場合、スイッチ1001は、High画像出力信号線902側に、スイッチ1003はメモリ_H1005側に接続される。そして、S1205へと進む。ここで、スイッチ1001の位置がS1202のYesの位置であった場合は、上記のようにスイッチ1001は、High画像出力信号線902側に切り替える。換言すれば、スイッチ1001は、後キズ検出部1002への接続先を、Low画像出力信号線901およびHigh画像出力信号線902のうち一方から他方に切り替えることができる。スイッチ1003についても同様である。
S1205では、後キズ検出部1002において、High画像の各画素から後キズを検出する。具体的には、スイッチ1001により後キズ検出部1002と接続されたHigh画像出力信号線902(他方の画像取得手段)により取得されたHigh画像から後キズを検出する。そして、S1206では、メモリ_H1005内のHigh画像用後キズアドレスの更新を行う。
S1207では、メモリ_L1004に保存されたLow画像用後キズアドレスおよびメモリ_H1005に保存されたHigh画像用後キズアドレスに基づいて画素補間処理が行われる。具体的には、画素補間処理部_L1006にてメモリ_L1004に保存されたLow画像用後キズアドレスを基に、Low画像に対して画素補間処理が行われる。また、画素補間処理部_H1007にてメモリ_H1005に保存されたHigh画像用後キズアドレスを基に、High画像に対して画素補間処理が行われる。更に詳細に説明すると、現在スイッチ1001の位置がS1202のNoの位置である場合、リアルタイムでS1205により検出された後キズ(後キズアドレス)はS1206でメモリ_H1005に保存されている。S705で取得された現在のHigh画像(第1の取得画像)はこのメモリ_H1005に保存された後キズアドレスを基に補間処理される。一方、S1202のNoにより接続先が切り替えられる前にLow画像出力信号線901(一方の画像取得手段)により取得されたLow画像(第2の取得画像)は、S1203で後キズ(後キズアドレス)が検出されている。この後キズアドレスは、以前(前回)のS1204でメモリ_L1004に保存されている。S705で取得された現在のLow画像(第3の取得画像)はこのメモリ_L1004に保存された縦線補正値を基に補間処理される。
画素補間処理後のLow画像およびHigh画像はフレームメモリ106に保存され補正動作を終了する(S1208)。
このように、連続撮影時に1フレーム期間中に異なる露出の複数枚画像を取得しHDR合成を行う撮像装置において、リアルタイムに後キズ補正を行う場合、フレーム間で検出回路を共有することによって、回路規模の削減や、消費電力の削減が可能となる。換言すれば、後キズを検出する検出回路を複数の異なる露出の画像の間で共有することで、検出回路の数を複数の異なる露出の画像の数よりも少なくすることができ、回路規模の削減や、消費電力の削減が可能となる。
第2の実施形態では、後キズ検出を1フレームごとに交互に切り替える説明を行ったが、数フレーム毎に切り替えてもよい。また、High画像と、Low画像で切り替えるフレーム数に重みをつけてもよい。例えば、High画像の方が蓄積時間や、感度(ゲイン)の設定が高くなるためキズのレベル高くなる。そのため、High画像の検出は2フレーム後に切り替え、Low画像は1フレーム後に切り替え等設定しても構わない。
第2の実施形態では、キズ検出用の閾値を色別に設定したがこれに限られない。例えば全色同じ閾値を設定することも可能である。
本発明における第1、第2の実施形態では、縦線や後キズに関する補正動作の説明を行ったが、リアルタイムに検出と補正を行う項目はこれらに限定されず、さまざまな分野で対応可能である。
<第3の実施形態>
第1の実施形態および、第2の実施形態で説明したように縦線や後キズなどの現象は、リアルタイムに検出と補正が必要である。
縦線や、キズなどのリアルタイムに補正しなければならない現象は、露出条件に応じて現象の大小が変化する。
そのため、フレーム間で露出条件が同じであれば、補正値を更新することなく、同じ補正値を用いて縦線や、キズの補正を行うことが可能である。
第3の実施形態では、リアルタイムに補正が必要な現象を補正する際、フレーム間での撮影条件(例えば、露出条件)が同じ場合、検出動作を行わず、つまり、検出値を更新せずに同じ値を用いて補正することで、さらなる消費電力の削減を行うことが可能となる。換言すれば、第3の実施形態では、連続撮影時においてフレーム間での撮影条件に変更がない場合は検出回路の検出動作を停止させることで、さらなる消費電力の削減を行っている。
なお、露出条件とは、感度(ゲイン)設定値、蓄積時間(露光時間)、絞り値のうち少なくとも1つのことを表し、システム制御部107にて撮影時に制御される。
第3の実施形態では、リアルタイムに補正が必要な現象の1例として縦線の検出補正の動作に関して説明を行う。
図13は、第3の実施形態における連続撮影中にHDRの動作を行いながら、縦線補正を行う際の動作を表す模式図である。
図13は、1例としてNフレームからN+3フレームまでの4フレーム期間中にHDRの動作を行いながら、縦線補正を行う際の動作を表す模式図であり、N+3フレーム目から露出条件が異なる例を示している。第1の実施例の図6と同等な個所に関しては同符号を付している。
図13におけるLow画像601に関して、Nフレーム目では、Low画像の縦線検出用画像602から縦線成分を検出し、該検出結果を基にLow画像を補正することを示している。また、N+1フレーム目、N+2フレーム目では、Nフレーム目で検出された検出結果(補正値)を更新せずにNフレーム目で検出された結果と同じ結果(606,1301)を用いて補正することを示している。
また、High画像603に関して、N+1フレーム目では、High画像の縦線検出用画像604から縦線成分を検出し、該検出結果を基にHigh画像を補正することを示している。また、N+2フレーム目では、N+1フレーム目で検出された検出結果(補正値)を更新せずにN+1フレーム目で検出された結果と同じ結果(607)を用いて補正することを示している。
さらに、N+3フレーム目では、露出条件が変更されていることから、再度検出が始まることを示している。
次に本発明の第3の実施形態における縦線の補正動作を図14のフローチャートを用いて詳細に説明する。
第1の実施形態(図8)と同等な動作の箇所に関しては同じステップ番号を付し、説明を省略する。
S1401において、システム制御部107は縦線検出連続回数をカウントするための変数mが下記の式(1)を満たすかどうかを判定する。
m > 1 ・・・(1)
式(1)を満たさない場合(つまりS1401でNo)はS802へ進み縦線補正処理が開始される。変数mが式(1)を満たさない場合とは、Low画像の縦線検出とHigh画像の縦線検出の一方、または、両方の検出が同露出条件で検出されていないことを示している。
式(1)を満たす場合(つまりS1401でYes)は、S1402へ進み、システム制御部107は、撮影時(現在)の露出条件Ev(n)が1フレーム前の露出条件Ev(n−1)と同じかどうかの比較を行う。
S1402にて露出条件が変わったと判断(つまりS1402でYes)された場合は、S1403へ進み縦線検出連続回数カウント変数mを0にリセットし、S802へ進む。
S1402にて、露出条件が変わっていない(つまりS1402でNo)と判断された場合は、S1304へ進み縦線検出を行わず、メモリ_L906、メモリ_H907の更新は行わず、S807にて補正処理を行う。
S1405では、S807にて縦線補正処理が行われたのち、システム制御部107にて縦線検出連続回数カウント変数mを1インクリメントし、補正処理を終了する。
第3の実施形態では、フレーム間での露出条件差と検出連続回数から、検出を行うかどうかの判断をすることにより、撮像システムとして消費電力のさらなる削減が可能となる。
第3の実施形態では、縦線検出時の動作について説明を行ったが、第2の実施形態で説明した後キズ検出においても同様な構成を用いることが可能である。
また、縦線や後キズなどの現象は、露出条件の一部に依存する性質をもっており、例えば縦線は、感度設定値に依存し、後キズは、感度設定値や蓄積時間に依存する性質をもっている。そのため、第3の実施形態では、メモリの更新を行わない条件は、フレーム間での露出条件差としたが、それぞれの現象に応じて、メモリの更新を行わない条件を感度(ゲイン)設定値や、蓄積時間、絞りのいずれか1つもしくは、複数の組み合わせとしてもよい。
また、リアルタイムに補正が必要な現象の中には、露出条件だけではなく、温度条件などで現象の大小が変わる性質のものも存在する。そのため、温度条件など、露出条件とは異なる条件を加えることで第3の実施形態と同様な効果を得ることが可能である。
さらに、縦線や、後キズなどの現象によって、上記条件の組み合わせを変えることも容易に応用可能である。
(他の実施形態)
本発明の目的は以下のようにしても達成できる。すなわち、前述した実施形態の機能を実現するための手順が記述されたソフトウェアのプログラムコードを記録した記憶媒体を、画像合成装置(撮像装置)に供給する。そしてその装置のコンピュータ(またはCPU、MPU等)が記憶媒体に格納されたプログラムコードを読み出して実行するのである。
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体およびプログラムは本発明を構成することになる。
また、プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスクなどが挙げられる。また、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、DVD−R、磁気テープ、不揮発性のメモリカード、ROM等も用いることができる。
また、コンピュータが読み出したプログラムコードを実行可能とすることにより、前述した実施形態の機能が実現される。さらに、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
更に、以下の場合も含まれる。まず記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行う。