図1は一実施の形態のデジタルカメラの構成を示す図、図2は画像処理回路の詳細な構成を示す図である。
一実施の形態のデジタルカメラは、カメラのほとんどの機能と動作を制御するDSCエンジン(システムLSI)6を中心に構成されている。DSCエンジン6にはCPU30、画像処理回路22、JPEGコーデック24、ディスプレイエンジン25、SDRAMコントローラ(SDRAMC)32、FlashメモリIF31、メモリカードIF28、USBコントローラ29、クロック発生器33、シリアルポート(SIO)26、パラレルポート(PIO)27などが設けられ、画像バス34およびCPUバス35を介して各種情報の授受を行う。なお、DSCエンジン6には図示しないタイマー、割り込みコントローラ、DMAコントローラ(DMAC)、汎用のAD変換器なども設けられている。
また、DSCエンジン6には様々な外付けコンポーネントが接続される。主要な外付けコンポーネントとしては、SDRAM12、フラッシュメモリ9、LCDパネル11、メモリカード7、水晶発振子(X’tal)10、固体撮像素子(CCDやCMOSなど)2、AFE(Analog Front End)3、TG(Timing Generator)5、撮影レンズ1、モータードライバーIC(MDIC)4などがある。撮影レンズ1は鏡筒ユニットとして構成されており、図示しないズーミングレンズ、フォーカシングレンズ、メカ絞り、メカシャッターなどと、それらを駆動するためのモーターなどが設けられている。
なお、この一実施の形態では固体撮像素子2にCCDを用いた例を示し、CCDの色フィルターは図3に示す代表的なRGB原色ベイヤー配列とする。DSCエンジン6にはこれらの他にも不図示のスピーカー、マイク、操作ボタンなどが接続されている。オーディオコーデック(不図示)を内蔵しないDSCエンジンの場合には、これも外付けとなる。これらの外付けコンポーネントもDSCエンジン6の制御下で動作する。
SDRAM12は画像メモリおよびCPU30のワークメモリとして利用され、アクセスの頻度が非常に高いことから高速なメモリデバイスが使われる。最近ではDDR-SDRAMを使うことが多い。フラッシュメモリ9にはCPU30のプログラム(ファームウェア)、カメラごとに異なる様々な調整値やユーザーによるカメラの設定情報、さらに撮影された画像データのファイルなどが記憶される。一方、メモリカード7は着脱式の記録媒体であり、記憶領域が空いている場合は撮影された画像がこちらの方に優先的に記録される。LCDパネル11はカメラに内蔵されるディスプレイ装置であり、スルー画や再生画などの画像を表示する他に、文字やアイコンなどの様々なカメラ情報を表示することにも使用される。
ここで、図1を参照しながら、固体撮像素子2として通常のCCDを用いたデジタルカメラの全般的な動作を説明する。被写体像は撮影レンズ1によって固体撮像素子2上に結像される。撮影時は、撮影レンズ1のズーミングレンズやフォーカシンレンズ、メカ絞り、メカシャッターなどがそれぞれのモーターによって駆動され、撮影が行われる。これらのモーターは図中のモータードライバーIC4によって駆動されるが、その制御はSIO26やPIO27を介してDSCエンジン6により行われる。
固体撮像素子2はTG5のパルスによって駆動され、被写体の露光(画像信号電荷の蓄積)や画像信号の様々な読み出し動作がこれにより制御される。固体撮像素子2から読み出された画像信号はAFE3によってサンプリングされ、画素ごとにデジタルデータへ変換される。TG5とAFE3はSIO26を介してDSCエンジン6により制御される。このデジタル画像データ(RAWデータ)はDSCエンジン6に入力され、画像処理回路22で処理されてYCbCrデータとなる。画像処理回路22から出力されたYCbCrデータは、画像バス34を経由してSDRAM12に記憶される。SDRAM12からYCbCrデータを読み出し、画像バス34からディスプレイエンジン25に入力すると、その画像がLCDパネル11に表示される。
同様に、SDRAM12からYCbCrデータを読み出し、画像バス34を経由してJPEGコーデック24に入力すると、YCbCrデータが圧縮される。JPEGコーデック24から出力された圧縮データは、画像バス34を経由してSDRAM12に記憶される。この圧縮データをSDRAM12から読み出し、CPUバス35からメモリカードIF28へ送ると、メモリカード7にその圧縮データが記録され、一連の撮影動作が終了する。一方、画像を再生するにはメモリカード7から圧縮データを読み出し、CPUバス35を経由してそれをいったんSDRAM12に記憶する。この圧縮データをSDRAM12から読み出し、画像バス34からJPEGコーデック24へ入力すれば、圧縮データが伸長される。
JPEGコーデック24から出力された伸長後の画像データは、再び画像バス34を経由してSDRAM12に記憶される。この画像データをSDRAM12から読み出し、画像バス34から画像処理回路22へ入力して適当なサイズに変換する。画像処理回路22から出力された解像度変換後の画像データは、画像バス34を経由してSDRAM12に記憶される。この画像データをSDRAM12から読み出し、画像バス34からディスプレイエンジン25へ入力すれば、再生画像がLCDパネル11に表示される。なお、解像度変換が不要な場合はJPEG伸長後の画像データをそのまま表示する。
メモリカード7に記録された画像データ(JPEGファイルなど)をホストPC8に保存するには、カメラとホストPC8をUSBケーブルで接続する。まず、メモリカード7から画像ファイルを読み出し、CPUバス35を経由してこれをいったんSDRAM12へ記憶する。この画像ファイルをSDRAM12から読み出してCPUバス35を経由してUSBコントローラ29へ送れば、ホストPC8に保存される。これと逆の流れでホストPC8のファイルをカメラのメモリカード7に記録することもできる。
次に、撮影時の固体撮像素子2からの信号読み出しと、画像処理回路22の動作について説明する。まず、カメラの撮影動作には2つの異なる動作があり、一方はEVF表示(スルー画表示)動作であり、他方はフル解像度の静止画撮影動作である。この2つの動作の違いは、固体撮像素子2からの信号読み出しモードの違いである。すなわち、EVF表示動作では固体撮像素子2から間引きモードで信号が読み出されるが、静止画撮影動作では固体撮像素子2から静止画撮影モードで全画素の信号が読み出される。
図4に間引きモードにおける信号読み出しの一例を示す。図において、「n」や「n+1」は間引きモードにおけるライン番号を表す。間引きモードでは、少数の画素ラインの信号だけが読み出されるので垂直解像度は低下するが、1フレームの信号読み出し時間が短くなるので約30フレーム/secなどの高速なフレーム・レートが実現される。これはリアルタイムで被写体像(スルー画)を観察したり、AF(Auto Focusing)の制御やAE(Auto Exposure)の測光を行ったりするのに適している。従来の撮像装置では、図中の撮像用画素RとGのライン、および撮像用画素GとBのラインだけ信号が読み出され、AFセンサーセル(焦点検出用画素)S1やS2を含むラインの信号は読み出されないが、この一実施の形態では間引きモードでAFセンサーセルS1やS2を含むラインの信号が読み出される。この一実施の形態の間引きモードにおける信号読み出しについては詳細を後述する。
図5に静止画撮影モードにおける信号読み出しの一例を示す。静止画撮影モードでは、すべての画素ラインの信号が読み出されるのでそれに掛かる時間が長く、しかも撮像素子2の画素ラインは飛び飛びに読み出されるので1フレームの画像信号は複数のフィールド信号に分かれている(インターレース読み出し)。これに対し上述した間引きモードでは、撮像素子2の画素ラインが上から下への順に読み出されるので最初からフレーム画像信号として出力される(プログレッシブ読み出し)。このように、静止画撮影モードと間引きモードでは画像信号の読み出し動作が異なるため、それに対応してそれぞれの画像処理の手順も大きく異る。
画像処理回路の詳細な構成を示す図2において、網掛けで示す制御ブロック、すなわちAF信号補間回路61とAWB補正値回路62は、従来のデジタルカメラにはなかった新しい制御ブロックである。これらの新しい制御ブロック61、62については詳細を後述することにし、まず従来のデジタルカメラの制御ブロックについて説明する。
画像処理回路22へ入力された画像データ(RAWデータ)には、先ず欠陥補正回路41により欠陥画素補正が施される。補正テーブル46には欠陥画素のアドレスが登録されており、このアドレスに一致した画素のデータは周囲の画素から計算された補正値に置き換えられる。続いてOBクランプ回路42により画像の黒レベルを決定するOBクランプ処理が施される。固体撮像素子2のCCDにはOB(Optical Black)領域が設けられており、このOB領域の信号の平均値を検出して各画素の値から差し引くことによって黒レベルを決めている。
次に、画像データは感度比調整回路43により色別に異なるゲイン調整(感度比調整)がなされる。撮像素子2の画素は色ごとに感度が異なるため、白い(グレー)被写体を撮影してもR,G,B各色の信号レベルが異なり、そのままでは白(グレー)とはならない。したがって、標準光源(例えばD65:昼光)の下でR,G,B各色の感度(信号レベル)を合わせる必要がある。通常はGのゲインを1に固定してRとBの感度をGに合わせるようにゲイン調整(乗算)を行う。
ここまでの画像処理が前処理部(Pre-Process)22aによる処理であり、静止画撮影モードの場合はここで画像データがいったんSDRAM12に移される。そのため、前処理の最終段には画像バスに向けて出力バッファ44(FIFO等)が設けられている。一方、間引きモードの場合は後続の後処理(Post-Process)部22bによる処理が続けて実行される。間引きモードはプログレッシブ読み出しの画像信号なので前処理と後処理を一体にして施すことができるのに対し、静止画撮影モードはインターレース読み出しのフィールド画像信号なのでそのまま後処理を施すことはできない。
そこで、以下では2つのモードの後処理動作を分け、先ず間引きモードにおける後処理について説明する。後処理ではまず水平間引き回路51により水平間引き処理が行われ、画像データの水平画素数が低減される。後処理では2次元のデジタルフィルター処理が何度か施されるので、ラインメモリが設けられている。間引きモードではライン数は減っているが水平画素数は依然多いので、そのままではラインメモリが溢れてしまう。スルー画のサイズは高々VGA(640×480)程度であるから、それを作成するのに必要な数(例えば700画素強)まで水平画素数を減らしても構わない。これによりラインメモリの容量が抑えられる。
次に、WB調整回路52により画像データにWB(White Balance)調整が施される。照明光の分光分布は撮影環境によって異なるため、白い(グレー)被写体を撮影してもそのままでは白(グレー)とはならない。R,G,Bの色ごとに異なるゲインを掛けて3色の信号レベルを合わせる。通常はGのゲインを1に固定してRとBの信号レベルをGに合わせる。RとBのゲインの決め方は後述する。WB調整後、γ補正回路53により画像データにγ補正が施される。γ補正ではディスプレイ装置などの出力デバイスに合った階調変換を行う。よく知られたsRGB色空間のディスプレイであれば「γ=2.2」となる。
ここまでは1画素当たり1色のBayer配列信号であったが、色補間回路54による色補間処理によって1画素当たり3色から成る通常のカラー画像信号に変換される。これ以降は3つの色信号が並列に画像処理回路22の中を流れる。続く色変換/色補正回路55では出力色空間の信号への変換と、好ましい色を実現するための補正が行われる。代表的な色空間は表示に適したsRGBと、印刷ワークフローに適したAdodeRGBなどである。色補正では肌色や空や海の色といった記憶色を好ましい色として表現する。色変換/色補正ではカラーマトリックス処理が主たるものとなるが、高度な色補正を行う場合はLUT(Look Up Table)なども用いられる。この色変換/色補正が行われた後の画像データは、通常YCbCr4:4:4である。
このYCbCrデータは、解像度変換回路56により解像度変換を受け、目的のサイズに変換される。スルー画であればQVGA(320×240)やVGAが一般的である。次いで空間フィルター回路57により画像データに空間フィルター処理が施される。ここではY信号のエッジ強調とCb/Cr信号のLPF処理が行われる。最後に、CbCr間引き回路58によりCb/Cr信号の間引き処理を行ってYCbCr4:2:2のデータに変換し、画像バス34を経由してSDRAM12に記憶すれば間引きモードの後処理が終了する。そのため、後処理の最後には画像バス34に向けて出力バッファ(FIFOなど)63が設けられている。このデータはディスプレイエンジン25に送られスルー画としてLCDパネル11に表示される。
次に、静止画撮影モードの後処理部22cによる処理を説明する。静止画撮影モードの場合は、図5に示すように飛び飛びのライン順(インターレース)に画像信号が読み出されるので、隣接するラインが存在しない。したがって、そのようなフィールド画像信号に色補間処理を直接施すことはできない。そのため、前処理の終わった各フィールド画像信号をいったん画像処理回路22から排出し、それらがSDRAM12上で隣り合ったライン順(プログレッシブ)に並ぶように配置する。この画像信号をSDRAM12から読み出し、画像バス34から画像処理回路22に入力すれば、後処理を施すことができる。そのため、画像バス34から後処理回路22に向けて入力バッファ(FIFOなど)59が設けられている。
ただし、静止画撮影モードの場合は高解像度の画像を作成するので、図中の水平間引きはスキップされる。このままでは水平画素数の大きな画像データがその後の処理に送られるので、ラインメモリを持った処理ブロックの場合はラインメモリが溢れて処理することができない。そこで、静止画像撮影モードの場合は、大きな静止画を図6に示すように横幅の短い短冊状のブロックに分割し、このブロックごとに後処理を施すようにしている。後処理ではデジタルフィルター処理(コンボルーション)が幾つか施されるが、その処理の後では周辺の画素が切り落とされて画像サイズが僅かに小さくなる。図6に示すブロックの境界では処理後の画像が滑らかに繋がらなければならないので、少なくとも切り落とされる画素分はブロックをオーバーラップさせて処理する。各ブロックの後処理は間引きモードと同じフローで行われるが、画像処理のパラメータは一般に異なる。
静止画撮影モードではこのような高解像度の主画像の他に、撮影確認のための表示用画像(フリーズ画ともいう)や検索用のサムネイルを併せて作成することが多い。後者の2つの画像は小さなサイズではあるが大きな原画像から作成されるため、主画像と同じフローで後処理を行うと図6に示すようにブロック分割が必要となって煩わしい。そこで、フリーズ画やサムネイルを作成する場合は、水平間引きを利用して予め目的のサイズ付近まで水平画素数を減らして処理する。大きなサイズの原画像データにそのまま後処理を施すので、小さな画像なら1パスで作成される。この場合の後処理は間引きモードと全く同じフローになる。
なお、後処理の中で色変換/色補正より後は撮影時ばかりでなく再生時にも利用されるので、図中の入力バッファ(FIFOなど)から色変換/色補正に向かうデータパスも用意されている。このパスは「YCbCr←→RGB」という色変換や画像再生時に色補正を行ったり、LCDパネル11に合ったサイズの画像を表示するため解像度変換を行う際に利用されたりする。静止画撮影モードの画像処理が前処理と後処理に分かれているのは、画像信号が複数のフィールドに分かれていることと、図6に示すように短冊状のブロックに分割して処理しなければならないという2つの理由による。
次に、検波回路47による制御について説明する。ここで、検波の対象はAE,AWB(Auto White Blannce)である。図2には検波回路47が設けられており、そこでは感度比調整後の画像データからAE,AWB評価値45が抽出される。AE,AWB評価値とはAE,AWBの各制御を行うために必要な情報である。
AF制御には瞳分割型位相差検出方式が用いられる。これは撮影レンズ1の射出瞳面上の異なる領域を通過した対の光束を撮像素子2の対のAFセンサーセルS1とS2により受光し、AFセンサーセルS1の配列から得られる信号と、AFセンサーセルS2の配列から得られる信号との位相差に基づいて撮影レンズ1の焦点調節状態、すなわちデフォーカス量が検出される。
AEとAWBの評価値はウインドウを設定して抽出するが、これらは同じウインドウ設定を利用して抽出することが多い。図7(b)にAE/AWB評価値のウインドウ設定例を示す。これらのウインドウに含まれる画素の値を色別に積算して各ウインドウのAE/AWB評価値とする。AEによる露光の場合は、AE評価値から露光量(絞り値やシャッター時間)を決めて露光を行う。一方、AWB評価値は正しい色からのズレを表している。あるウインドウの色が白(グレー)一色であるなら、そのウインドウ内のR,G,Bの値を色ごとに同数ずつ積算するとそれらはほぼ等しくなるはずであるが、実際は撮影環境によって照明光の分光分布が変わるので積算値は一致しない。
そこで、図2に示すWB調整回路52による3色のゲインの比が、3つの積算値の逆比に一致するよう調整すれば白い色(グレー)になるはずである。実際は、上述したようにGのゲインを1に固定して、RとBのゲインを3つの積算値の逆比に一致させるよう調整する。これがWB(White Balance)調整の原理である。AWBとはAWB評価値に基づいてカメラが自動的にWB調整を行うことである。図3に示すベイヤー配列色フィルターの場合はGの画素がRとBの2倍存在するので、各ウインドウのGの積算値を「1/2」倍したものをAWB評価値として利用する。そのため、各ウインドウのサイズを水平・垂直共「2」の倍数に設定しておくとよい。
一般に画像の中央が最も重要であるため、AE,AWB評価値のウインドウの数は図7に示すように水平・垂直共奇数に設定することが多い傾向にある。なお、後処理でWB調整が行われるので前処理の感度比調整は必須ではない。感度比調整が行われない場合はAE/AWB評価値がその誤差を含んでいるので、RとBの積算値に感度比調整に相当するゲインを掛けて補正する必要がある。したがって、感度比調整を行うことが望ましい。間引きモードではスルー画を表示しつつ適当なフレーム間隔でAE,AWB評価値を抽出してAE,AWBの制御を行う。メカシャッターは開いたままなのでAEの制御にはTGの電子シャッターが利用される。
AWBの制御は前述のようにRとBのゲイン調整により行われる。被写体の明るさや色温度(照明光の分光分布)が急激に変化することは少ないので、AE/AWBの制御周期は長くてもよい。AFの制御には瞳分割型位相差検出方式が用いられる。AFの制御は被写体を追尾するような場合を除くとスルー画表示が始まったときと、レリーズ釦が半押しされたときにそれぞれ1回ずつ行われることが多い。レリーズ釦が半押しされると静止画の撮影に備え、AFの制御の他にAE評価値を基に露光量(絞り値とシャッター時間)を計算する。
レリーズ釦が全押しされると静止画の露光動作に移行する。直前の半押しに伴うAF制御によって撮影レンズは被写体に合焦しており、同時に行われた露光量の計算によってメカ絞りの値とシャッター時間は決まっているので、それに基づいて静止画としての被写体の露光が行われる。露光動作はメカシャッターの閉鎖によって終了する。次いで静止画撮影モードで撮像素子2のCCDから画像信号が読み出され、上述した手順にしたがって静止画の画像処理が行われる。この場合は3A評価値の中でAWB評価値だけが抽出される。露光は終わっているのでAEとAFの評価値を抽出する必要はない。
静止画のAWB評価値はフィールドごとに抽出されるため、1つの画像全体(フレーム)のAWB評価値を得るためにはフィールドごとの評価値を積算する。AWB検波回路がこの積算機能を持っていない場合は、各フィールドの評価値をCPUのソフトウェアによって積算する。積算されたAWB評価値からRとBのゲインを決めて後処理の前にWB調整回路に設定する。このように、撮影された静止画のデータからAWB評価値を抽出してAWBの調整を行っているので精度が高い。WB調整が後処理に含まれるのはそのためである。
一方、間引きモード(スルー画表示)の場合は、抽出されたAWB評価値がそれ以降のフレームのAWB調整に利用されているという点が異なる。なお、動画撮影動作の場合もビューファインダー動作(スルー画表示)と同じ間引きモードが使われており、スルー画のデータをそのままJPEG圧縮してメモリカードに記録している。
ところで、一実施の形態の撮像素子2では、位相差AF方式のセンサーを組み込んだタイプの撮像素子としている。撮像素子2は、画像信号を形成する画素(光電変換セル)の一部を、図4に示すように位相差AF方式のためのセンサーセル(焦点検出用画素)に置き換えたものである。図8は、図4に示すセンサーセルS1を含むラインとセンサーセルS2を含むラインの拡大図である。このAFセンサーはセンサーセルS1とS2の1次元アレイから成り、2つの異なるセンサーアレイ一組で利用される。このセンサーアレイの各センサーセルは中心から一方に偏った開口部S1a、S2aを持ち、その偏りの方向に沿って1次元状に並べられている。2つのセンサーアレイの各センサーセルは開口部S1a、S2aの偏りが互いに逆方向であり、その偏りの距離は同一である。この2つのセンサーアレイはほぼ同一と見なされる位置に並べて置かれる。
図4および図8に示すように、撮像素子2では、互いに逆方向に偏心した開口部S1a、S2aを持つAFセンサーセルS1,S2が、RGB原色ベイヤー配列中のG画素の代わりに置かれている。なお、図4および図8に示すようにAFセンサーセルS1とS2を隣接するライン上に配置してもよいし、同一ライン上に交互に配置してもよい。これらのAFセンサーセルS1、S2によって瞳分割位相差AF方式を実現する。つまり、射出瞳を通る光束の中で撮影レンズ1の光軸に対して対称な位置にある2つの部分光束を、S1のセンサーアレイとS2のセンサーアレイでそれぞれ受光すれば、2つのセンサーアレイから出力された信号の位相差によりフォーカスずれの方向(フォーカシングレンズの移動方向)と、フォーカスずれの量(フォーカシングレンズの移動量)が分かる。これにより速やかなフォーカス合わせが可能になる。
被写体の位置は撮影画面内を常に移動するので、このAFセンサーアレイは撮影画面内の数ヶ所に設けることが望ましい。これらの各場所には、S1とS2のセンサーアレイが並んで配置される。なお、センサーセルS1とS2の開口部S1a、S2aの形状は図8に示すような長方形に限定されず、例えば半円形としてもよい。
ところで、AFセンサーセルS1とS2は撮像領域に埋め込まれているので、その部分の画像信号が欠落してしまうという問題がある。この一実施の形態ではその問題を解決しつつ撮像素子2を利用している。先ず、静止画撮影モードでは、すべての光電変換セルの信号が読み出されるので、画像信号とAF信号の両方を含んだ信号が出力される。このままではAFセンサー部の画像信号が欠落しているため、満足な画質の静止画は得られない。
そこで、周囲の画像信号から補間された信号でAF信号を置き換えるようにしている。この補間処理をリアルタイム(On the fly)で行うことは困難なので、すべての信号をいったんSDRAM12に記憶し、後で時間を掛けて補間を行っている。AFセンサーアレイは撮影画面内の数ヶ所に設けられるだけなので、このような補間を行って得られた静止画であっても画質は十分である。
一方、デジタルカメラではEVF動作(スルー画表示)も行われており、この場合は約30fpsの高速レートで連続して撮像素子2から信号が読み出されるため、後で時間を掛けて補間処理を行うようなことはできない。この場合は間引きモードが使われているので、AFセンサーが埋め込まれたラインが丁度間引かれるようにして補間処理をなくしている。AFセンサーアレイは撮影画面の数ヶ所に設けられており、それらを間引いてもスルー画を作成するのに十分な画像信号が確保される。
しかし、間引きモードではAF信号が得られないため今度はAFの制御ができないという問題が起こる。デジタルカメラではEVF動作(スルー画表示)中にAF制御が行われるので、これは問題である。従来の撮像装置では測距モードが設けられており、AF制御を行うときは間引きモードから測距モードへ移るようにしている。測距モードではAFセンサーアレイが埋め込まれた少数のラインだけが読み出されるので、測距モードに入っている期間は僅かである。レリーズ釦操作が半押しから全押しまで一気に行われた場合、半押しが検出された段階で測距モードに移行するが、続けて全押しが検出されるのでAFの制御が完了した後は間引きモード(スルー画表示)に戻らず、静止画の露光動作に入る。
AF制御を行う際は併せてAEのための測光も行われる。測光は、測距モードに移る直前の間引きモードのAE評価値を利用して、従来のカメラと同じように行われる。レリーズ釦が全押しされると静止画の露光動作に入り、半押し時の測光で得られた露光量(メカ絞りの値とシャッター時間)にしたがってAEによる露光が行われる。
露光が完了すると上述した静止画撮影モードに移って画像信号とAF信号が読み出され、次いで上述した補間処理によりAF信号が画像信号に置き換えられる。補間処理が完了すると上述した画像処理(後処理)が施されてYCbCrデータとなり、これをJPEG圧縮してメモリカード7に記録すると静止画の撮影が完了する。一方、静止画撮影モードの読み出しが終わった時点でカメラは間引きモードに移行し、次の静止画の撮影に備えてEVF動作(スルー画表示)が再開される。ただし、レリーズ釦操作が半押しだけで終わり全押しが行われなかった場合は、AFの制御が終わると測距モードから間引きモードに戻ってEVF動作(スルー画表示)を再開する。
次に、一実施の形態の構成の内、従来の撮像装置になかった新しい構成について説明する。一実施の形態のデジタルカメラは静止画撮影モードと間引きモードを有しており、従来の撮像装置で用いられている測距モードはない。静止画撮影モードの読み出し動作は、従来の撮像装置の読み出し動作と同様であり、ともに図5に示すような信号読み出しが行われる。ただし、AF用の光電変換セルが含まれているので、図5に示す画像信号の一部がAFセンサーセルS1とS2の信号に変わっている。図4の配列であれば、図5の上から4ライン目(第4フィールド)のGの信号がS1の信号、上から6ライン目(第2フィールド)のGの信号がS2の信号に変わっている。
一方、間引きモードの読み出し動作は従来の撮像装置と大きく異なり、この一実施の形態では図4に示すように間引かれて数の減った画像信号と、間引かれていないS1とS2のAF信号が混在して読み出される。静止画撮影モードの読み出し動作は従来の撮像装置の動作と同様であるから説明を省略し、以下では間引きモードの読み出し動作について詳しく説明する。間引きモードはEVF動作(スルー画表示)や動画撮影で利用されているが、それは1V期間(VSync信号の1周期)に信号がすべて読み出されるというプログレッシブ読み出しである。
図4に示すように、上のラインから下のラインに向かって順に信号が読み出される。すなわち、ライン番号nの画像信号として「R/G」が読み出され、続いてS1の信号を含むラインとS2の信号を含むラインが順次読み出され、その次にライン番号n+1の画像信号「G/B」が読み出される。S1の信号を含むラインとS2の信号を含むラインはスルー画(動画)の作成には利用されないので、これらのラインにはライン番号が付与されていない。また、図4において、左側の配列中に網掛けで示すラインは、間引かれるラインであり、画像信号は出力されない。なお、図5に示すように、静止画撮影モードの場合は、図4に示す網掛けラインを含むすべての信号(S1とS2を含む)が読み出される。
図9は、図4に示す間引きモードの信号読み出しタイミングを示す。図9(a)は一実施の形態の読み出しタイミングを示し、図9(b)は特許文献1に示す従来の撮像装置の読み出しタイミングを示す。間引きモードでは1V期間に信号が読み出されるので、図9(a)と(b)の上半分にはVSync信号の1周期分だけが示されている。図9(a)の上半分は、図4に示す1ライン前(ライン番号n-1)からの読み出し動作を表しており、前方と後方の垂直ブランキング期間を含むフレームの先頭と最後は省略されている。
図中のn-1,n,n+1はそれぞれ画像信号のライン番号を表している。ライン番号nの画像信号(R/G)の次はS1/Bのラインが読み出され、さらに続いてS2/Bのラインが読み出され、その後にライン番号n+1の画像信号(G/B)が続いており、図4に示す信号読み出し動作と一致している。図9(a)の下半分はS1/BまたはS2/Bのラインの読み出し動作を表しているが、ラインの中間ではS1またはS2の信号とBの信号が交互に読み出されており、図4に示す配列と一致している。
一方、従来の撮像装置では、図9(b)の上半分に示すように画像信号のラインだけが読み出される。図中のn-2,n-1,n,n+1,n+2はそれぞれライン番号を表す。図9(b)の下半分はその中の1ラインの読み出し動作を表しており、画像信号だけを含んでいる。図9(b)の上半分にはAFセンサー(S1とS2)のラインが含まれないので、有効画像ラインが同数であれば図9(a)の上半部によりも短い期間で画像信号の読み出しが終わる。フレーム周波数を落とさないために、図9(a)の上半分に示す読み出し動作では、垂直ブランキング期間の一部をS1/BとS2/Bのラインを読み出す期間に割り当てている。S1/BとS2/Bのライン数だけ垂直ブランキング期間は短くなるが、それがある程度長ければ問題はない。
AFセンサーアレイは撮像画面の数ヶ所に設けることが望ましいので、これを5ヶ所に設けた固体撮像装置の例を図10(a)に示す。図10(a)において、符号1,2,3,4,5はAFセンサーアレイの番号を表しており、それぞれがS1のセンサーアレイとS2のセンサーアレイの1組のセンサーアレイから成る。図4は1つのAFセンサーアレイ付近の信号読み出し動作を表しているが、AFセンサーアレイが複数ヶ所に設けられていると、他のAFセンサーアレイの信号を読み出すための期間が余分に必要となる。
図10(a)において、AFセンサーアレイ2と3、および4と5がそれぞれ同じライン上に配置されているとすれば、それぞれがS1のラインとS2のラインを含むのでAFセンサーアレイ1を合わせると合計6ラインの読み出しが必要である。図10(a)に示す撮像素子2から間引きモードで信号を読み出すと、垂直ブランキング期間は6ラインだけ短くなる。その点を考慮してVSync信号とHSync信号の周波数を決めなければならない。
図4や図5に示すような読み出しを行う代表的な固体撮像素子はCCDである。CCDではライン単位で信号が読み出されるので、図10(a)に示すようにS1とS2のAFセンサーアレイをそれぞれ水平方向に置くのに適している。S1やS2が置かれているライン上の画像信号(図4の場合はBの信号)は、スルー画や動画の作成には利用されないので、その信号を読み出す時間は無駄ということになる。CCDはその構造上、S1やS2の信号を読み出す際に同じライン上の画像信号を一緒に読み出すことになるため、S1やS2の信号が利用できるのまでに長い時間がかかるという欠点を持っている。
図1において、従来の撮像装置に対し画像/AF信号分離回路21が新しく追加された制御ブロックである。また、図2において、従来の撮像装置に対しAWB補正値回路62が新しく追加された制御ブロックである。これらの一実施の形態の新しい制御ブロックを中心に一実施の形態のデジタルカメラの撮影動作を説明する。
被写体の露光が終わると、撮像素子2のCCDは静止画像撮影モードに移行し、撮影された静止画の画像信号が図5に示す手順で読み出される。その画像信号はAFE3でデジタルデータとなって画像/AF信号分離回路21に送られるが、静止画撮影モードの場合はそれがバイパスされて画像データがそのまま画像処理回路22へ入力される。画像処理回路22では先ず前処理が施され、前処理後の画像データはいったんSDRAM12に記憶される。
前処理後の静止画データをSDRAM12に記憶する場合は、飛び飛びの順(インターレース)に読み出されたデータが図11に示すようにライン順(プログレッシブ)に並ぶように配置する。ただし、この静止画データにはAF信号(S1やS2の信号)が含まれているので、前処理を施す際は注意が必要である。例えばAFセンサー(S1とS2)の付近に欠陥画素が存在した場合は、その欠陥画素の信号を補正する際にS1やS2の信号を利用してはならない。欠陥画素の補正は周囲の画像信号で補間するのが普通であるから、AFセンサー付近の欠陥画素を単純にこの方法で補正するとS1やS2の信号が使われてしまうおそれがある。そこで、S1やS2の信号が参照された場合はその欠陥画素を補正せずにそのまま出力する。AFセンサーの位置は予め分かっているのでそのような対応は可能である。流れてくる画像信号の中からS1やS2の信号を検出するには、ライン番号(VSync信号を基準としたHSync信号のカウント値)と、ライン上の画素番号(HSync信号を基準としたピクセルクロックのカウント値)を利用する。
OBクランプ処理は各画素の値からOBレベル(OB領域の信号平均)を差し引くだけなので、S1やS2の信号が混在していても問題なく処理される。S1やS2の信号にOBクランプを施す必要はないのでバイパスする(処理しても構わない)。その点では次の感度比調整も同じである。感度比調整はRとBのゲイン合わせ(掛け算)であるから、S1やS2の信号が混在していても問題なく処理される。S1やS2の信号に感度比調整を施す必要はないのでバイパスする(処理しても構わない)。
しかし、AWB評価値の抽出には注意しなければならない。静止画撮影モードの場合は以前に説明した通りAWB評価値を抽出するだけでよい。ところが、静止画データの中にはS1やS2の信号が含まれているので、各色信号を積算する際はS1やS2の信号を除外しなければならない。図7(b)に示すAWB評価値のウインドウの何れかはS1やS2の信号を含むので、そのウインドウでは各色信号の総数が異なってしまい、正しいAWB評価値が得られない。S1やS2の信号が含まれたウインドウのAWB評価値は後で補正しなければならないので、上述したようにS1やS2の信号が積算されないようにする必要がある。
図2に示す画像処理回路22の前処理ではこのような例外に対応している。前処理の施された静止画データは図2に示す出力バッファ63と画像バス34を経由して図11に示すような配列でいったんSDRAM12に記憶される。次に、この静止画データには後処理を施すことになるが、図11に示すようにS1やS2の信号が含まれているので、先ずこの部分を周囲の画像信号で補間しなければならない。S1やS2の信号は複数ヶ所に部分的に存在するだけなので、周辺の画像信号を含めてその部分を切り出して補間を行えばよい。
図2に示す画像処理回路22には前処理や後処理とは独立に動くAF信号補間回路61が設けられており、これを用いてS1やS2の信号の部分を補間する。この一実施の形態ではハードウェア構成のAF信号補間回路61が設けられるので、マイクロプロセッサーでソフトウェア的に補間を行うのに比べ、非常に短時間で処理される。補間のアルゴリズムは例えばバイキュービック法などを利用する。S1やS2の信号近くに画像のエッジが存在する場合、エッジを横切る方向に補間を行うとそれが鈍ってしまうため、エッジ方向の周辺画像信号だけから補間を行うようにするのが望ましい。AF信号補間回路61はこのようなエッジ判定機能を備える必要がある。
図11に示す例では、S1やS2の信号をGの信号に置き換えているが、通常これは隣接したR/Gライン上に存在する±45°方向のG信号で補間することになる。エッジの方向によっては±45°方向のG信号で補間するのが不適切となり、その場合はさらに外側のG信号を用いて補間を行う。画像のエッジ方向を判定する場合も、周囲の画像信号をできるだけ多く参照するとよい。この補間処理を行う場合は、S1やS2の信号を含む領域を周辺の画像信号とともに切り出し、そのデータを画像バス34から図2に示す入力バッファ59へ入力する。不図示のDMACを利用するとこのデータ転送が高速に行われる。
このデータ転送は矩形の領域に対して行われるので、補間に必要のない画像信号も含まれているが、一般にその方がデータ転送は高速となるので不要な画像信号を無視すれば問題はない。入力バッファ59に入力されたデータはAF信号補間回路61により処理され、補間によって作られた画像信号が出力バッファ63に蓄積される。補間によって作られた画像信号で出力バッファ63が埋まると、上述したDMACを利用してそれをSDRAM12へ出力し、記憶する。入力バッファ59や出力バッファ63は後処理でも利用されるが、今の場合は後処理が行われていないので、AF信号補間回路61が占有しても構わない。
図11に示すように、S1やS2の信号は不連続なアドレスに存在するので、補間によって作られたG信号だけをそこに上書きするのは難しい。S1やS2の信号とともに切り出された周囲の原画像信号まで含めて元の矩形の領域全体に上書きする方が簡単である。
続いて補間によって作られた画像信号を利用してAWB評価値の補正を行う。図2に示す画像処理回路22では先ずAWB補正値が生成される。図11に示す画像データの場合は補間によってG信号が作られるので、AWB補正値はその積算値となる。このAWB補正値を、S1やS2の信号が含まれていたウインドウのAWB評価値(Gの積算値)に足し合わせる。S1やS2の信号が複数のウインドウに分散していた場合はウインドウごとにAWB補正値を計算し、それぞれのウインドウのAWB評価値にそれを足し合わせるようにする。図2に示す破線の矢印はウインドウごとにAWB評価値がAWB補正値で補正されることを表している。
このAWB評価値の補正が自動的に行われると最も使い易いのであるが、それが難しければ図1に示すCPU30によってソフトウェア的に補正を行ってもよい。以上の補間処理とAWB評価値の補正をAFセンサー(S1とS2)が置かれているすべての場所について行う。例えば図10(a)に示すようにAFセンサーが5ヶ所に配置されている場合は、その5ヶ所で上述した補間処理とAWB評価値の補正を行う。
AWB評価値の補正が終了したら続いてWB調整回路のRとBのゲインを求める。これはAWB評価値を基にAWBアルゴリズムにしたがって決定される。このRとBのゲインは図2に示すWB調整回路52に設定される。一実施の形態のデジタルカメラではこのようにAWB評価値の補正を行っているのでAWBの精度が高い。これで後処理の準備がすべて整ったので、補間後の静止画データに後処理を施す。SDRAM12から補間後の画像データを読み出し、画像バス34から図2に示す入力バッファ59へ入力する。このデータ転送は不図示のDMACを利用したDMA転送により行う。
入力バッファ59へ入力された画像データは先ず水平間引き回路51へ送られ、後処理が開始される。後処理で主画像のような大きな画像を作成する場合は、図6に示すように短冊状のブロック単位で処理する代わりに水平間引き回路51をバイパスする。サムネイルやフリーズ画のような小さな画像を作成する場合は、大きな画像データをそのまま入力する代わりに水平間引き回路51で先ず水平画素数を削減している。これ以降の処理は、上述した従来の撮像装置と同様である。
後処理によって作成されたYCbCrデータは、いったん図2に示す出力バッファ63に蓄積される。YCbCrデータで出力バッファ63が埋まると、それをDMA転送によってSDRAM12へ送り、記憶する。主画像の場合は短冊状のブロックごとにこれを繰り返し、各ブロックのYCbCrデータをSDRAM12上で結合すると1つの大きな主画像が完成する。以上が静止画撮影モードにおける一実施の形態のデジタルカメラの動作である。
次に、一実施の形態のデジタルカメラにおける間引きモードの動作について説明する。間引きモードでは、撮像素子2のCCDから図4や図9(a)に示すように信号が読み出される。間引かれてライン数の減った画像信号に混じってAF信号を含むラインが読み出されている。その信号は先ずAFE3でデジタルデータに変換され、次に図1の画像/AF信号分離回路21へ入力される。2種類の信号はここで分離されて別々に出力される。図9(a)において、・・・,n-1,n,n+1,・・・などの画像信号だけを含むラインと、ラインnとn+1に挟まれるAF信号を含むラインとが分離され、画像/AF信号分離回路21から別々に出力される。
AF信号が含まれているラインは予め分かっているので、その期間に入ったら分離が行われるよう画像/AF信号分離回路21に設定しておく。図9(a)の場合は、ラインnに続く2ラインが分離されるように設定する。画像/AF信号分離回路21から出力された画像信号だけを含むラインは、図1,図2に示す画像処理回路22へ出力され、画像処理が施される。間引きモードの場合は前処理と後処理が一体となって施され、スルー画や動画のデータが作成される。
ただし、AF信号が含まれていたラインの期間は画像信号が存在せず、画像処理回路22をこの期間動作させると不正なデータが混在してしまう。その期間は画像処理回路22を停止させなければならず、画像処理回路22はそのような機能を持つ必要がある。図9(a)の場合には、ラインnに続く2ラインの期間は画像処理回路22が停止するように設定する。AF信号を含むラインは画像/AF信号分離回路21により取り除かれており、画像処理回路22では画像信号だけに画像処理が施されるので、正常なスルー画や動画が作成される。
この画像処理と並行して3A評価値の抽出が行われる。ただし、AF信号は別途出力されるのでAE評価値とAWB評価値の抽出だけでよい。作成されたスルー画や動画のデータは画像処理回路22の出力バッファ63にいったん蓄積され、次いでDMA転送により画像バス34を経由してSDRAM12に記憶される。間引きモードの場合は、画像処理回路22のAF信号補間回路61やAWB補正値62は利用されない。この画像処理の動作は上述した従来の撮像装置と同様である。
一方、分離されたAF信号を含むラインは、画像/AF信号分離回路21の中で更に画像信号とAF信号とに分離される。図9(a)に示す画像/AF信号というラインは、詳細なタイミングがその下に示されており、その一部では図4の配列に対応して画像信号とAF信号がピクセルクロックに同期して交互に流れてくる。画像/AF信号分離回路21では、このラインからさらにAF信号だけが取り出され、残った画像信号の方は利用されずに廃棄される。AF信号の位置は予め分かっているので、HSync信号を基準にしたピクセルクロックのカウント値からAF信号だけを取り出す。
このAF信号は画像/AF信号分離回路21内に設けられた不図示の出力バッファ(FIFOなど)にいったん蓄積され、次いでDMA転送により図1に示す画像バス34を経由してSDRAM12に記憶される。図10(a)に示すように複数ヶ所にAFセンサーが配置されている場合は、すべての場所のAF信号をSDRAM12に記憶する。AFセンサーを構成しているS1とS2の光電変換セルは少数であり、さらにS1とS2の信号だけを取り出すようにしているので、図10(a)に示すように5ヶ所のAF信号をすべてSDRAM12に転送したとしても、データのトラフィックは大した量にならない。
このAF信号はSDRAM12から読み出されて図1に示す位相差演算回路23に入力される。この位相差演算回路23では、先ずS1の信号列とS2の信号列との間の位相差を計算する。続いて位相差演算回路23は、この位相差からフォーカシングレンズの移動方向と移動量を求める。この移動方向と移動量は位相差演算回路23内のレジスタ(不図示)に格納されCPU30に読み取られる。これらの値がレジスタに格納されたら割り込み要求が出されるようにすれば、CPU30は無駄な読み取り動作を行わずにすむので効率がよい。
図10(a)に示すような配置であれば、5ヶ所の中から主要被写体と重なるAFセンサーを選んでこれら演算を行うが、2つ以上が主要被写体と重なっていた場合は位相差が明確な方のAFセンサーを選んで演算を行うとよい。CPU30は読み取った上記情報にしたがってモータードライバーIC4に指令を送ると不図示のフォーカシングモーターが駆動され、フォーカシングレンズが目標の位置まで移動して被写体にフォーカスが合わせられる。
一実施の形態のデジタルカメラでは間引きモード中にスルー画の作成とAFの制御が行えるようになってので、従来の撮像装置のように間引きモードと測距モードを切り換えるという煩わしさがない。そのためスルー画や動画が途切れないという大きなメリットが生まれる。
ところで、AF信号は間引きモードのフレームごとに出力されるが、EVF動作(スルー画表示)や動画撮影時にフレームごとにAFの制御を行う必要性は少ない。静止画撮影であればレリーズ釦が半押しされる度に1回行えばよいし、動画撮影の場合でも適当なフレーム間隔ごとに1回AFの制御を行えばよい。したがって、利用されないAF信号をSDRAM12に記憶するのは電力消費が増えて無駄なことである。
そこで、画像/AF信号分離回路21にはAF信号の分離とその出力を行う、行わないの設定ができるようにする。これにより、必要な時だけAF信号の分離と出力が行われるので消費電力が減らせる。AFの制御が必要になる度この設定を切り換えるようにしてもよいが、さらに便利な機能を画像/AF信号分離回路21に持たせることもできる。すなわち、AF信号の分離と出力が行われる場合のモードを2つ設ける。第1は、設定が有効になった直後の1フレームだけAF信号の分離と出力を行った後、止まるという単一出力モードであり、第2は、指定されたフレーム間隔ごとに1フレームだけAF信号の分離と出力を行うという繰り返し出力モードである。
静止画撮影の場合は、ほとんどが単一出力モードで済むと思われるので、消費電力の削減に寄与できる。繰り返し出力モードは動画撮影の場合に便利である。AFの制御を行うときが来たらAF信号が出力されるようにフレーム間隔を設定しておけば、AF信号がSDRAM12に記憶されるとそれがCPU30に通知されるので、無駄な動作を行うことなくAFの制御が開始される。無駄な電力の消費もなくなる。さらに、AF信号がSDRAM12に記憶されたら位相差演算回路23が自動的に上述した演算を開始するようにしてもよい。なお、繰り返し出力モードのフレーム間隔を1に設定すれば毎フレームAF信号を出力することもできるので、柔軟性は十分高い。
ところで、図10(a)に示すAFセンサーアレイの配列だけでは、AFの制御が困難なことも予想される。図10(a)ではS1のアレイとS2のアレイが水平方向を向いているが、水平方向に沿って被写体の輝度が殆ど変化しない場合は、S1の信号列とS2の信号列との間の位相差を求めることが容易でないと思われる。その場合には、図10(b)に示すようなAFセンサーアレイの配列を採用すると位相差が求め易くなることがある。
しかし、図10(b)に示すような配列はCCDには適さない。図10(b)ではS1のアレイとS2のアレイが垂直方向を向いているため、図中の各AFセンサーアレイに含まれるS1とS2の光電変換セルが幾つものラインに跨って配置されることになる。CCDはライン単位で信号が読み出されるため、各AFセンサーアレイの信号を読み出すのに長い時間が必要となる。AF信号が速やかに読み出せないので、AF演算の開始も遅れてしまう。CCDの場合はライン上の特定の光電変換セルを選んで信号を読み出すことができないため、図10(a)に示すような配列であってもAF信号を読み出すのに比較的長い時間がかかる。図10(b)に示すような配列の場合は、この短所がより顕著に表れる。
このような問題を解決するために、固体撮像素子2をX-Yアドレス方式の読み出しができるタイプを採用する。具体的には、C-MOSセンサーのような固体撮像素子を利用する。C-MOSセンサーでは特定の光電変換セルを選んで信号を読み出すこともがきるので、AFセンサーの信号だけをまとめて読み出すことができる。このようなX-Yアドレス方式の読み出し機能を備えた固体撮像素子を上述した間引きモードで動作させる場合には、AFセンサーの信号だけをまとめて先に読み出し、その後で間引いて数を減らした画像信号を読み出すようにしている。
AFセンサーが水平方向のアレイの場合には、例えば図12(a)に実線で示す矢印の順にAF信号をまとめて読み出し、垂直方向のアレイの場合には、例えば図12(b)に実線で示す矢印の順にAF信号をまとめて読み出す。図12において、破線の矢印は各AFセンサーアレイ内のS1とS2の信号読み出し方向を表す。図11、図4に示すように、S1やS2の光電変換セルの間に画像信号用の画素が含まれていても、S1やS2だけを選んで信号を読み出すことができるので、AF信号を読み出すのにかかる時間は僅かなものである。
図12(a)、(b)に示すように5ヶ所にAFセンサーアレイが配置されたとしても、S1とS2の光電変換セルの総数は1000個に満たないと思われる。最近の高画素の固体撮像素子であれば水平画素数は3000を超えるので、間引きモードで水平間引きが行われていなければ1H期間(HSync信号の周期)にすべてのAF信号を読み出すことも可能である。この固体撮像装置の間引きモードにおいてAF信号を読み出すとしたら、VSync信号が出力された直後の垂直ブランキング期間にまとめて読み出すことが最良である。
すなわち、図9(a)、(b)において、VSync信号の直後にある不図示のラインの中にAF信号を埋め込んで読み出すのである。この部分は垂直ブランキング期間なので幾つかのラインは空いており、AF信号を読み出す期間として利用することができる。このような読み出しを行うことのメリットは、その後に読み出される画像信号のラインの間にAF信号の含まれるラインが挿入されないことと、垂直ブランキング期間の長さが変わらないことである。このため画像処理の動作も従来の撮像装置の場合とほとんど変わらないことになり、この点もメリットの1つである。
図12(c)に示すように、水平方向のアレイから成るAFセンサーと、垂直方向のアレイから成るAFセンサーとを、撮影画面内の複数の場所に混在して配置することもできる。図12(c)に示すようなAFセンサーの配列でも、図12(a)、(b)に示すものと同様、実線の矢印順にAF信号をまとめて読み出せばよい。図中の破線の矢印が各AFセンサー内のS1とS2のアレイの読み出し方向を表している。なお、S1とS2のアレイ、水平方向と垂直方向のアレイの何れを先に読み出しても構わない。
上述したように、固体撮像素子2の間引きモードでは、VSync信号が出力された直後の垂直ブランキング期間中にAF信号がまとめて読み出されるので、このAF信号を図1に示す画像/AF信号分離回路21によって取り出し、以前と同様にSDRAM12に記憶する。AF信号が読み出されるタイミングは分かっているので、それらが正確に取り出されるように画像/AF信号分離回路21を設定する。これが完了したらAF信号をSDRAM12から読み出して位相差演算回路23へ入力し、そこで2つの信号の位相差を求めてAFの制御を行う。AF信号の読み出しが早まったので、AFの制御も早く開始されるというメリットが生まれる。
一方、垂直ブランキング期間が終わると、画像信号のラインの読み出しが始まる。この画像信号のラインは、画像/AF分離回路21から出力されて画像処理回路22へ送られる。この画像信号に画像処理が施されてスルー画や動画のデータが作成される。AF信号のラインが画像信号のラインの間に挿入されて読み出されるようなことがなく、以前のように画像処理中に画像処理回路22を停止させるという期間を設ける必要がない。間引きモードの垂直ブランキング期間と有効画像期間が従来の固体撮像素子と殆ど変わらないので、画像処理のタイミングが厳しくなるというようなこともない。
ただし、図12(b)、(c)に示すようにAFセンサーが垂直方向のアレイを含む場合は、画像処理を行う際に新たな注意が必要となる。AFセンサーが垂直方向のアレイを含む場合は、画像信号だけを含むラインというものが大幅に減ってしまっている。このような固体撮像素子において、AFセンサーを含むラインの信号を完全に取り除くと、スルー画や動画のライン数が足りなくなってしまうおそれがある。仮にスルー画や動画を作成するのに必要な画像信号のラインが確保されたとしても、AFセンサーを含むラインがまとめて間引かれてしまうため、画像信号が不均一になってスルー画や動画の画質が劣化してしまう。
したがって、AFセンサーが垂直方向のアレイを含む場合は、AFセンサーを含むラインもスルー画や動画のデータを作成するのに利用しなければならない。図12(b)に示すように5ヶ所にAFセンサーが配置されたとしても、垂直方向のアレイだけに着目するなら1ラインに含まれるS1やS2の光電変換セルの合計は高々6個である。このように、1ラインに少数のS1やS2の光電変換セルが含まれるだけなら、スルー画や動画のような低解像度の画像を作成するのにそのラインを利用してもよい。ただし、図12(a)および(c)において、水平方向のアレイを含むラインは画像信号が少ないので画像処理には利用しない。間引きモードではこれらのラインが読み出されないようにする。
一方、垂直方向のアレイを含むラインは画像信号が多いので画像処理に利用することになっており、間引きモードではこれらのラインも必要なだけ読み出されるようにする。AF信号はまとめて先に読み出されてしまうため、画像信号が読み出される時点ではAFセンサーから読み出される信号はない。VSync信号直後の垂直ブランキング期間が終わると有効画像期間が始まるが、上述した通り、この期間は画像処理に利用されるラインだけが読み出されるようになっているため、図1に示す画像/AF信号分離回路21はこの期間のラインをすべて画像処理回路22へ送ってよい。その中で垂直方向のアレイを含むラインについては、S1やS2の部分に画像信号がないため画像処理を施す際別に扱わなければならない。
一般にスルー画や動画の解像度は低いので、水平方向の画素は間引かれている。C-MOSセンサーのようにX-Yアドレス方式の読み出し機能を持つ固体撮像素子であれば、間引きモードにおいて垂直間引きばかりでなく水平間引きを併用して読み出すこともできる。さらに同色の画素同士を加算して読み出すこともできる。この様な読み出し機能を利用すれば、垂直方向のアレイを含むラインであっても、S1やS2の光電変換セルを飛ばして画像信号だけを読み出すことができる。
このような水平間引きを併用して読み出された信号であれば、画像信号だけが画像処理回路22に送られるので、そのまま画像処理を施しても正常なスルー画や動画や動画が作成される。予め水平間引きの行われた画像信号が読み出されるので、画像処理回路22における水平間引きや水平解像度変換も簡略化される。なお、固体撮像素子で予め水平間引きを行わないのであれば画像処理回路で対応しなければならない。最も簡単な対応の仕方は、固体撮像素子の水平間引きと同様な水平間引きを画像処理回路で行うことである。この水平間引きの際にS1とS2の部分が廃棄されるようにすればよい。
この水平間引きを図2に示す水平間引き回路51で行うこともできるが、画像処理回路22の前処理部22aにS1やS2の部分を含んだ信号が流れてしまうので前処理の最初に行うことが望ましい。特に、AE評価値やAWB評価値を抽出する場合はS1やS2の部分を含まない信号が必要なので、前処理の最初に水平間引きを行うことが必須となる。前処理と後処理の両方で図2に示す水平間引き回路51が使えると、画像処理回路22のゲート数削減に寄与する。
次に、性能を落とさずにコストダウンを達成するための位相差演算回路23の具体的な構成について説明する。図1に示すデジタルカメラは専用の位相差演算回路23を備えているため位相差を求めるのが速く、その結果AFの制御も高速に行われるという長所を持つ。しかし、これを専用のハードウェアで構成すると、他の目的には使えないという不自由さが生じてしまう。回路規模は増えるが利用される機会が少ないため、効率が悪い。
図13はコストを重視した位相差演算回路23の一実施例を示す。なお、図1に示す機器と同様な機器に対しては同一の符号を付して相違点を中心に説明する。CPU30はカメラ全体を制御するためのメインCPUであり、SRAM71はそのメインCPU30から高速に読み書きができるメモリである。画像/AF信号分離回路21の1つ目の出力は画像処理回路22に接続されており、2つ目の出力はSRAM71に接続されている。
固体撮像素子2が間引きモードで動作している場合は、画像/AF信号分離回路21で分離された画像信号が1つ目の出力を通って画像処理回路22へ入力され、そこでスルー画や動画のデータが作成される。一方、画像/AF信号分離回路21により分離されたAF信号は2つ目の出力を通って直接SRAM71に記憶される。このAF信号はCPUバス35を経由してメインCPU30に読み取られ、メインCPU30のソフトウェア処理によって先ず2つの信号の間の位相差が計算される。次に、メインCPU30のソフトウェア処理によって、その位相差情報からフォーカシングレンズの移動方向と移動量が計算される。
メインCPU30がその情報にしたがって図1に示すモータードライバーIC4へ指令を送るとフォーカシングモーターが駆動され、フォーカシングレンズが目標の位置まで移動して被写体にフォーカスが合わせられる。上述した様々な演算はメインCPU30のソフトウェアによって行われるので、図1に示すような専用の位相差演算回路23に比べると演算速度が劣ることは否めない。そこで、AF信号を図13に示す高速SRAM71に記憶してから演算することによって、演算速度の低下を抑える。通常、このSRAM71はメインCPU30と同じくDSCエンジン6内のオンチップメモリとして実装される。
図13に示すSRAM71は、図1に示すSDRAM12に比べてメインCPU30から高速に読み書きが出来るので、その分演算速度が速い。AF信号が直接このSRAMに記憶されるというのはSDRAMなどを経由しないという意味である。これもAF演算の高速化に寄与する。メインCPU30のクロック周波数に応じて演算速度が変わるので、性能はこれにより引き出す。図1に示す位相差演算回路23は削除されたが、新たにSRAM71が設けられたので、回路規模は減らないと感じるかも知れない。しかし、CPU30と高速SRAM71という組み合わせは様々な目的に使えるため柔軟性が高く、専用の位相差演算回路23を設けるよりもはるかに有用である。
それに、システムオンチップ用のCPUコアはキャッシュメモリ(命令&データ)の他に汎用の高速SRAMを備えることが多くなり、AF信号を記憶する高速メモリとしてこの汎用SRAMを利用するならハードウェアの追加は必要ない。AF信号を記憶するのに必要な記憶容量は僅かである。例えば、図12(c)に示すような配列でAFセンサーの光電変換セルが合計1024個あり、1つの光電変換セル当たり16bitのAF信号を出力するとしても2KBを占有するだけである。CPUコアの汎用SRAMは4KB,8KB,16KBなどの記憶容量のものが用意されており、これらのSRAMであればAF信号を記憶するのに十分利用できる。ただし、オンチップの汎用SRAMを利用する場合は、画像/AF信号分離回路21との接続に若干の変更が必要になる場合もある。
図13の接続ではSRAM71が画像/AF信号分離回路21からの書き込み用と、メインCPU30からの読み書き用の2つのポートを持つように見える。しかし、上述の汎用SRAMは読み書き用のポートが一般に1つなので、画像/AF信号分離回路21とメインCPU30の両方からこれをアクセスするには画像/AF信号分離回路21の出力をCPUバス35に接続し、このCPUバス35を経由してAF信号をSRAM71に記憶する。このデータ転送には不図示のDMACによるDMA転送を利用すればよい。図13に示すように、メインCPU30と高速SRAM71という組み合わせによって、柔軟性の高い処理機能とコストの低減が同時に達成される。
図14は性能と柔軟性を重視した位相差演算回路23の他の実施例を示す。上述した図13に示す位相差演算回路と比較すると、新たにコプロセッサー72が設けられる。このコプロセッサー72は演算を専門に行い、メインCPU30の方はカメラ全体の制御を行う。図13に示す位相差演算回路と同様に高速のSRAM71を備えている。このSRAM71はコプロセッサー72から高速に読み書きができるようなっている。このコプロセッサー72はプログラムによって演算を実行する。コプロセッサー72としてはDSP(Digital Signal Processor)のようなものが適している。
図14に示す位相差演算回路23において、SRAM71をプログラム用とデータ用の統合メモリとして使うこともできるが、プログラムメモリとデータメモリを分けた方がプログラムの実行速度(演算速度)が上がるので本実施例もそれに倣う。コプロセッサー72には不図示のプログラムメモリが内蔵されているものとし、SRAM71はデータメモリ(ワークメモリ)専用として利用する。上述したAF信号はこのSRAM71の方に記憶される。コプロセッサー72はCPUバス35に接続されており、メインCPU30はこのCPUバス35を介してプログラムメモリにプログラムをダウンロードする。
メインCPU30がCPUバス35を介して不図示のコマンドレジスタにコマンドを書き込むと、コプロセッサー72はプログラムの実行を開始する。プログラムを実行する際はSRAM71がワークメモリ(データメモリ)とし使用される。コプロセッサー72はステータスレジスタ(不図示)を備え、プログラムの実行状態をこのレジスターに書き込むとメインCPU30がそれを読み取る。コプロセッサー72がステータスレジスタに書き込みを行ったときにメインCPU30に割り込み要求が発行されるようにすると、無駄な読み出し動作が減る。
この他にも様々なレジスタが用意されており、メインCPU30とコプロセッサー72はCPUバス35とそれらのレジスタを介して通信を行う。このような仕組みにより様々な演算をコプロセッサー72に行わせることができる。別の演算を実行させる場合は、メインCPU30が別のプログラムをダウンロードする。SRAM71はCPUバス35にも接続されており、演算に必要なデータをメインCPU30が用意する場合には、ここからSRAM71にデータをダウンロードする。演算結果のデータをアップロードする場合も、ここから読み取る。これらのダウンロードやアップロードに不図示のDMACを利用したDMA転送によって行ってもよい。
図14に示すような構成ではSRAM71とコプロセッサー72の接続の方が標準であり、メインCPU30とSRAM71の接続はデータのダウンロードやアップロードの場合に行われる。このようにSRAM71に対するコプロセッサー72とメインCPU30のアクセスは排他的であり、SRAM71はコプロセッサー72の専用メモリという色彩が濃い。メインCPU30の汎用SRAMとしてはCPUコア自身に内蔵されたものを利用する。このように、コプロセッサー72とSRAM71から成るサブシステムは極めて汎用性の高い演算器となる。
次に、図14に示す位相差演算回路23によるAF演算について説明する。画像/AF信号分離回路21の1つ目の出力は画像処理回路22に接続されており、2つ目の出力の方はSRAM71に接続されている。固体撮像素子2が間引きモードで動作している場合は、画像/AF信号分離回路21で分離された画像信号が1つ目の出力を通って画像処理回路22に入り、そこでスルー画や動画のデータが作成される。一方、画像/AF信号分離回路21で分離されたAF信号の方は2つ目の出力を通って直接SRAM71に記憶される。
図14に示す位相差演算回路23ではDual Port SRAMを利用することもできるが、画像/AF信号分離回路21の2つ目の出力をCPUバス35に接続し、そこからSRAM71にAF信号を書き込むこともできる。なお、その間はコプロセッサー72がSRAM71をアクセスしないようにする。AF信号がSRAM71に記憶されたらメインCPU30の指令でコプロセッサー72が演算を開始する。メインCPU30は予めコプロセッサー72にプログラムをダウンロードしておく。
コプロセッサー72は先ず2つの信号の間の位相差を計算し、次いでその位相差からフォーカシングレンズの移動方向と移動量を求める。これらの演算が終了するとコプロセッサー72はステータスレジスタに演算終了という情報を書き込む。この書き込みによってメインCPU30に向けて割り込み要求が発行され、メインCPU30がそれに応答してステータスレジスタを読むと演算終了のことが分かる。SRAM71に記憶された演算結果はCPUバス35から読み取られ、その情報にしたがってメインCPU30が図1に示すモータードライバーIC4に指令を送るとフォーカシングモーターが駆動され、フォーカシングレンズが目標の位置まで移動して被写体にフォーカスが合わせられる。
演算を専門に行うコプロセッサー72を用いてAF演算を行っているので、演算時間が短く、AF制御が高速に行われる。コプロセッサー72とSRAM71を備えているので回路規模は多少増大するが、専用の位相差演算回路に比べるとこのコプロセッサー・サブシステムは極めて汎用性が高い。すなわち、このコプロセッサー・サブシステムは利用される機会が多く、そのためコストパフォーマンスが高い。コプロセッサー・サブシステムを用いるとメインCPU30は並行して別の処理が行えるというメリットも生まれる。このように、一実施の形態のデジタルカメラでは高いコストパフォーマンスが達成される。
ところで、上述した一実施の形態の図1に示すデジタルカメラと図2に示す画像処理回路22では、位相差演算回路23とAF信号補間回路61という2つの専用ハードウェアが用いられている。それぞれの回路は決められた処理しか行わないので利用効率が悪いため、これらの処理を1つの回路で行うようにすればコストパフォーマンスが向上する。
そこで、図14に示すコプロセッサー・サブシステムを利用してAF信号補間を行う。2つの回路を1つに集約したので全体の回路規模は減少する。演算を専門に行うコプロセッサー・サブシステムを用いることによって、より高速な処理が可能になる。補間処理を行う場合は、図11に示すS1やS2の信号を周囲の画像信号とともにSDRAM12から読み出し、SRAM71に記憶する。図14に示す構成では、このデータをCPUバス35からダウンロードすることになる。このデータ転送は不図示のDMACを用いてDMA転送により行えばよい。コプロセッサー72はS1やS2の信号を周囲の画像信号を利用して補間する。コプロセッサー72にDSPを用いるとバイキュービック法の補間も高速に行うことができる。
補間処理が完了したら、続いてコプロセッサー72は補間された画像信号を基にAWB補正値を求め、前処理の際に抽出されていたAWB評価値をそのAWB補正値によって補正する。図2に示す画像処理回路22によれば、AWB評価値はCPUバス35から読み取るようになっているため、コプロセッサー72がこのAWB評価値を直接読み取ることはできない。メインCPU30は、この補正が始まる前に該当するウインドウのAWB評価値をSRAM71にダウンロードしておく。AWB評価値の補正が終わったら、補間済みの画像信号をSRAM71から読み出してSDRAM12に記憶する。このデータのアップロードもCPUバス35から行う。これにもDMA転送を利用することができる。
図12(a)、(b)、(c)に示すように、撮影画面内の複数ヶ所にAFセンサーアレイが配置されている場合には、それらのすべてについて上述した補間処理と補正処理を行う。これらの処理が完了したら、コプロセッサー72は補正されたAWB評価値を基にAWBアルゴリズムを実行し、WB調整用のRゲインとBゲインを決定する。AWBアルゴリズに必要なAWB評価値はメインCPU30がSRAM71にダウンロードする。このダウンロードをDMA転送によって行ってもよい。
RゲインとBゲインが決定されたら、メインCPU30はそれらをSRAM71から読み出して図2に示すWB調整回路52に設定する。最後に、補間済みの画像信号を図14に示す画像処理回路22へ入力して後処理を施すと、撮影された静止画のYCbCrデータが作成される。コプロセッサー・サブシステムが上記処理を行っている間、メインCPU30は並行して別の処理を行うことができる。SRAM71へデータをダウンロードしたり、逆にSRAM71からデータがアップロードされたりするので、CPUバス35には頻繁にデータが流れる。このためメインCPU30の動作が妨げられることになる。SRAM71をCPUバス35と画像バス34の両方に接続できるようにすると、CPUバス35が空くのでメインCPU30は動作し易くなる。画像データのフローとメインCPU30の処理は一般に非同期なので、このようにバスを分けておくとそれぞれの動作がスムーズに行われる。
このように、位相差演算回路23とAF信号補間回路61が1つに集約されたのでコストパフォーマンスがさらに向上する。
以上説明したように、一実施の形態によれば、間引き読み出しモードでは、撮像用画素の内の一部の画素の信号に加え、すべてのAFセンサーセルの信号を読み出すようにしたので、間引き読み出しモードにおいてAF制御を行う場合に、間引き読み出しモードから他のモードへモードを切り換える必要がなく、制御シーケンスを簡略化できる。
また、一実施の形態によれば、撮像用画素とAFセンサーセルはそれぞれX軸アドレスとY軸アドレスを有する二次元状に展開されており、X,Yアドレスを指定して画素ごとに信号を読み出す読み出し回路を備え、読み出し回路によって、間引き読み出しモードの実行時には、すべてのAFセンサーセルの信号を読み出した後に、撮像用画素の内の一部の画素を間引いて信号を読み出すようにしたので、AF信号が早く得られる上に、画像信号の読み出しタイミングも従来の撮像装置とほとんど変わらないようにすることができる。
一実施の形態によれば、AFセンサーセルを、光学系の瞳の異なる領域を通過した対の光束の一方または両方を受光する光電変換部を有する構成としたので、AFセンサーセルの配列から出力される信号を用いて瞳分割型位相差検出方式による素早い焦点検出を実行することができる。
一実施の形態によれば、間引き読み出しモードの実行時に、撮像用画素から出力された信号とAFセンサーセルから出力された信号とを分離し、分離された撮像用画素の信号により画像を生成するとともに、分離されたAFセンサーセルの信号により光学系の焦点調節状態を検出し、焦点調節状態に基づいて光学系の焦点調節を行うようにしたので、正常なスルー画や動画のデータを作成しつつ、並行してAF制御を行うことができる。
一実施の形態によれば、AFセンサーセルの周囲の撮像用画素の信号に基づいて、当該AFセンサーセルの位置における画像を生成するための信号を補間により求めるとともに、撮像用画素の信号に基づいてホワイトバランス調整に用いる評価値を算出し、全画素読み出しモードの実行時に、撮像用画素の信号と補間により求めたAFセンサーセル位置の信号とに基づいてホワイトバランス調整に用いる評価値を補正するようにしたので、ホワイトバランスの精度を向上させることができる。
一実施の形態によれば、AFセンサーセルの信号を分離するか否かを設定可能にするとともに、分離する設定がなされた場合に、間引き読み出しモードにおいて繰り返し行われる間引き読み出しの内の1回だけAFセンサーセルの信号を分離するモードと、所定の間引き読み出し回数ごとにAFセンサーセルの信号を分離するモードとのいずれかを選択可能にしたので、柔軟かつ容易にAF制御を行うことができる。
一実施の形態によれば、焦点調節手段がCPUと高速読み書き可能なメモリとを有し、間引き読み出しモードの実行時には、分離されたAFセンサーセルの信号をメモリに直接記憶するとともに、メモリに記憶された信号に基づいてCPUが焦点検出演算と焦点調節制御を実行するようにしたので、柔軟性の高い処理機能を実現できる上に、コストを低減することができる。
一実施の形態によれば、焦点調節手段が演算専用のコプロセッサーをさらに有し、間引き読み出しモードの実行時には、分離されたAFセンサーセルの信号をメモリに直接記憶するとともに、メモリに記憶された信号に基づいてコプロセッサーが焦点検出演算を実行し、この焦点検出演算結果に基づいてCPUが焦点調節制御を実行するようにしたので、演算速度の向上と柔軟性の高い処理機能を実現でき、高いコストパフォーマンスを達成することができる。
一実施の形態によれば、コプロセッサーと高速読み書き可能なメモリを用いて補間演算と評価値補正演算を実行するようにしたので、専用のハードウェアを削減することができ、コストを抑制できる。