図1を参照して、この実施例のディジタルカメラ(電子カメラ)10は、光学レンズ12を含む。被写界の光学像は、光学レンズ12を介してCCDイメージャ14の撮像面に照射される。撮像面は、R(Red),G(Green)またはB(Blue)のフィルタ要素がベイヤ態様で配列された色フィルタ14fによって覆われる。
このため、Rの色情報を有する電荷はRのフィルタ要素によって覆われた受光素子であるR画素で生成され、Gの色情報を有する電荷はGのフィルタ要素によって覆われた受光素子であるG画素で生成され、そしてBの色情報を有する電荷はBのフィルタ要素によって覆われた受光素子であるB画素で生成される。
キー入力装置32によって電源オン操作が行われると、TG(Timing Generator)18がCPU30によって起動される。スイッチSWは、端子T1側に初期設定される。CPU30は、間引き読み出しモードをTG18に設定する。TG18は、水平同期信号Hsyncおよび垂直同期信号Vsyncを含む複数のタイミング信号を発生する。ドライバ16aおよび16bの各々は、かかるタイミング信号に応答してCCDイメージャ14を駆動する。これによって、1フレームに相当する電荷つまり生画像信号が、垂直同期信号Vsyncが発生する毎に、CCDイメージャ14から間引き態様で出力される。
図2を参照して、CCDイメージャ14の撮像面は、左側撮像領域IMLおよび右側撮像領域IMRを有する。左側撮像領域IMLは、撮像面の中心から垂直方向に伸びる境界線BLの左側に形成され、右側撮像領域IMRは、同じ境界線BLの右側に形成される。つまり、左側撮像領域IMLおよび右側撮像領域IMRは、境界線BLで互いに接する。
左側撮像領域IMLおよび右側撮像領域IMRの各々には、図示しない複数の垂直転送レジスタが割り当てられる。また、左側撮像領域IMLには水平転送レジスタHLが割り当てられ、右側撮像領域IMRには水平転送レジスタHRが割り当てられる。さらに、水平転送レジスタHLの出力端にはアンプAPLが設けられ、水平転送レジスタHRの出力端にはアンプAPRが設けられる。
したがって、左側撮像領域IML上の複数の受光素子で生成された電荷は、図示しない垂直転送レジスタ,水平転送レジスタHLおよびアンプAPLを介して、チャネルCH1から出力される。右側撮像領域IMR上の複数の受光素子で生成された電荷も同様に、図示しない垂直転送レジスタ,水平転送レジスタHRおよびアンプAPRを介して、チャネルCH2から出力される。
つまり、ドライバ16aは、TG18からのタイミング信号に基づいて左側撮像領域IMLにラスタ走査を施し、左側1/2フレームの生画像信号をチャネルCH1から出力する。ドライバ16bも同様に、TG18からのタイミング信号に基づいて右側撮像領域IMRにラスタ走査を施し、右側1/2フレームの生画像信号をチャネルCH2から出力する。
ただし、水平転送レジスタHRの転送方向は、水平転送レジスタHLの転送方向と逆の方向である。このため、ラスタ走査方向もまた、左側撮像領域IMLおよび右側撮像領域IMRの間で互いに反転する。
CDS/AGC/AD回路20aは、チャネルCH1の生画像信号に相関2重サンプリング,自動ゲイン調整およびA/D変換の一連の処理を施す。同様に、CDS/AGC/AD回路20bは、チャネルCH2の生画像信号に相関2重サンプリング,自動ゲイン調整およびA/D変換の一連の処理を施す。なお、CDS/AGC/AD回路20aおよび20bも、TG18から出力されたタイミング信号に同期して、上述の処理を行う。
クランプ回路22aは、CDS/AGC/AD回路20aから出力された生画像データの基準レベルを、レベル調整回路24によって設定された黒レベルに合わせる。クランプ回路22bも同様に、CDS/AGC/AD回路20bから出力された生画像データの基準レベルを、レベル調整回路24によって設定された黒レベルに合わせる。
クランプ回路22aから出力された生画像データは、メモリ制御回路38によってSDRAM36に書き込まれる。また、クランプ回路22bから出力された生画像データは、LUT(Look Up Table)28rによるR成分のゲイン調整,LUT28gによるG成分
のゲイン調整およびLUT28bによるB成分のゲイン調整を経て、メモリ制御回路38によってSDRAM36に書き込まれる。
SDRAM36は、図3に示すように生画像領域36a,YUV画像領域36b,圧縮画像領域36cおよび表示画像領域36dを有する。メモリ制御回路38は、チャネルCH1の生画像データを生画像領域36aの左側に格納し、チャネルCH2の生画像データを生画像領域36aの右側に格納する。こうして生画像領域36aに格納された生画像データは、撮像された1フレームの被写界像を表す。また、LUT28r,28gおよび28bによるゲイン調整によってチャネルCH1およびCH2の間での生画像データのゲイン差が解消され、境界線の出現が防止される。
なお、クランプ回路22aおよび22bの各々から出力される生画像データは12ビットで表現される。このため、LUT28r,28gおよび28bの各々は、4096個の設定値を有する。
後処理回路40は、このような生画像データをメモリ制御回路38を通してSDRAM36から読み出し、読み出された生画像データに色分離,YUV変換などの処理を施し、そしてYUV形式の画像データをメモリ制御回路38を通して表示画像領域36dに書き込む。
ビデオエンコーダ50は、YUV形式の画像データをメモリ制御回路38を通してSDRAM36から読み出し、読み出されたYUV形式の画像データをNTSC方式に従うコンポジットビデオ信号に変換し、変換されたコンポジットビデオ信号をLCDモニタ52に与える。この結果、被写界のリアルタイム動画像(スルー画像)がモニタ画面に表示される。
キー入力装置32によって撮影操作が行われると、CPU30は、TG18に設定された間引き読み出しモードを解除する。これによって、CCDイメージャ14からの生画像信号の読み出し動作が、間引き読み出し態様から全画素読み出し態様に切り換わる。読み出し態様が切り換わった後も、CCDイメージャ14から後処理回路40までの処理系では、上記と同様の処理が行われる。
すなわち、チャネルCH1からは左側1/2フレームの生画像信号が出力され、チャネルCH2からは右側1/2フレームの生画像信号が出力される。CDS/AGC/AD回路20aでは、チャネルCH1の生画像信号に相関2重サンプリング,自動ゲイン調整およびA/D変換の一連の処理が施される。CDS/AGC/AD回路20bでも、チャネルCH2の生画像信号に同様の処理が施される。
クランプ回路22aは、CDS/AGC/AD回路20aから出力された生画像データの基準レベルを、レベル調整回路24によって設定された黒レベルに合わせる。クランプ回路22bも同様に、CDS/AGC/AD回路20bから出力された生画像データの基準レベルを、レベル調整回路24によって設定された黒レベルに合わせる。
クランプ回路22aから出力された生画像データは、メモリ制御回路38によってSDRAM36に書き込まれる。クランプ回路22bから出力された生画像データは、LUT28r,28gおよび28bによるゲイン調整を経て、メモリ制御回路38によってSDRAM36に書き込まれる。
後処理回路40は、このような生画像データをメモリ制御回路38を通してSDRAM36から読み出し、読み出された生画像データに色分離,YUV変換などの処理を施す。ただし、後処理回路40によるYUV形式の画像データの書き込み先は、表示画像領域36dでなくYUV画像領域36bとなる。
JPEGコーデック42は、こうしてYUV画像領域36bに格納された画像データをメモリ制御回路38を通して読み出し、読み出された画像データにJPEG圧縮を施し、そして圧縮画像データをメモリ制御回路38を通して圧縮画像領域36cに書き込む。このような圧縮動作は、垂直同期信号Vsyncが発生する毎に実行される。
CPU30は、圧縮画像領域36cに蓄積された圧縮画像データをメモリ制御回路38を通して読み出し、読み出された圧縮画像データをI/F44を通して記録媒体46に記録する。こうして、複数フレームの圧縮画像データを収めた動画像ファイルが記録媒体46に形成される。
ここで、LUT28r,28および28bによるゲイン調整について詳しく説明する。図4を参照して、クランプ回路22aに入力されるチャネルCH1の生画像データのR成分,G成分およびB成分がそれぞれ入射光量に対して曲線C1rin,C1ginおよびC1binを描く場合、クランプ回路22aから出力されるチャネルCH1の生画像データのR成分,G成分およびB成分はそれぞれ入射光量に対して曲線C1rout,C1goutおよびC1boutを描く。また、クランプ回路22bに入力されるチャネルCH2の生画像データのR成分,G成分およびB成分がそれぞれ入射光量に対して曲線C2rin,C2ginおよびC2binを描く場合、クランプ回路22bから出力されるチャネルCH2の生画像データのR成分,G成分およびB成分はそれぞれ入射光量に対して曲線C2rout,C2goutおよびC2boutを描く。
アンプAPLおよびAPRの増幅特性の相違から、生画像データの黒レベルおよびゲインもまたチャネルCH1およびCH2の間で相違する。このうち黒レベルのずれが、クランプ回路22a,22bおよびレベル調整回路24によって解消される。なお、図4によれば、複数のレベル域LV1〜LV4が生画像データのダイナミックレンジに割り当てられる。
チャネルCH1およびCH2の間のゲインのずれは、次の要領で解消される。クランプ回路22aから出力された生画像データはブロック演算回路26aに与えられ、クランプ回路22bから出力された生画像データはブロック演算回路26bに与えられる。図5を参照して、ブロック演算回路26aは、境界線BLに近接するように左側撮像領域IMLに割り当てられた境界ブロックB1L,B2L,…BnLの各々に属する小画像について、高周波成分の色毎の積算値と画像レベルの色毎の平均値を求める。ブロック演算回路26bは、境界線BLに近接するように右側撮像領域IMRに割り当てられた境界ブロックB1R,B2R,…BnRの各々に属する小画像について、高周波成分の色毎の積分値と画像レベルの色毎の平均値を求める。
ブロック演算回路26aおよび26bの各々は、詳しくは、図6に示すように構成される。クランプ回路22aまたは22bから出力された生画像データは、ブロック抽出回路60に与えられる。ブロック抽出回路60は、境界ブロックB1L〜BnLの各々あるいは境界ブロックB1R〜BnRの各々に属する生画像データを抽出する。
R差分値算出回路62は、抽出された生画像データのうち隣り合うR画素の差分値であるR差分値を算出する。G差分値算出回路64は、抽出された生画像データのうち隣り合うG画素の差分値であるG差分値を算出する。B差分値算出回路66は、抽出された生画像データのうち隣り合うB画素の差分値であるB差分値を算出する。
積算回路68は算出されたR差分値の絶対値を境界ブロック毎に積算し、積算回路70は算出されたG差分値の絶対値を境界ブロック毎に積算し、そして積算回路72は算出されたB差分値の絶対値を境界ブロック毎に積算する。これによって、同じ境界ブロックに
対応する積算値Rh,GhおよびBhが、積算回路68,70および72からそれぞれ出力される。
R平均値算出回路74は、ブロック抽出回路60からの生画像データのうちR画素のレベルを境界ブロック毎に平均し、G平均値算出回路76は、ブロック抽出回路60からの生画像データのうちG画素のレベルを境界ブロック毎に平均し、そしてB平均値算出回路78は、ブロック抽出回路60からの生画像データのうちB画素のレベルを境界ブロック毎に平均する。これによって、同じ境界ブロックに対応する平均値Rav,GavおよびBavが、R平均値算出回路74,G平均値算出回路76およびB平均値算出回路78からそれぞれ出力される。
図1に戻って、ブロック演算回路26aおよび26bの各々は、こうして算出された積算値Rh,Gh,Bhおよび平均値Rav,Gav,BavをCPU30に与える。CPU30はまず、互いに隣接する2つの境界ブロックBKLおよびBKR(K:1〜n)の小画像が平坦であるか否かを判別する。
注目する2つの境界ブロックの各々で求められた積算値Rhが閾値TH未満であれば、これらの境界ブロックに属する小画像のR成分は平坦であると判別される。注目する2つの境界ブロックの各々で求められた積算値Ghが閾値TH未満であれば、これらの境界ブロックに属する小画像のG成分は平坦であると判別される。注目する2つの境界ブロックの各々で求められた積算値Bhが閾値TH未満であれば、これらの境界ブロックに属する小画像のB成分は平坦であると判別される。
CPU30は、R成分が平坦であると判別された2つの境界ブロックからそれぞれ求められた2つの平均値Ravに基づいて差分値ΔRavを算出する。また、G成分が平坦であると判別された2つの境界ブロックからそれぞれ求められた2つの平均値Gavに基づいて差分値ΔGavを算出する。さらに、B成分が平坦であると判別された2つの境界ブロックからそれぞれ求められた2つの平均値Bavに基づいて差分値ΔBavを算出する。
差分値ΔRavは、境界ブロックBKLの平均値Ravから境界ブロックBKRの平均値Ravを引き算することによって求められ、差分値ΔGavは、境界ブロックBKLの平均値Gavから境界ブロックBKRの平均値Gavを引き算することによって求められ、差分値ΔBavは、境界ブロックBKLの平均値Bavから境界ブロックBKRの平均値Bavを引き算することによって求められる。
こうして求められた差分値ΔRav,ΔGav,ΔBavおよび境界ブックBKRで求められた平均値Rav,Gav,Bavは、図7に示すレジスタ34に書き込まれる。図7によれば、レベル域LV1〜LV4の各々に5つの欄が割り当てられる。平均値Rav,Gav,Bavの各々は、自分が属するレベル域の欄に、数値が小さい方から順に書き込まれる。差分値ΔRav,ΔGav,ΔBavはそれぞれ、関連する平均値Rav,Gav,Bavに割り当てられる。
たとえば、境界ブロックBKRの平均値Rav,GavおよびBavがそれぞれレベル域LV3,LV4およびLV1に属する場合、平均値Ravおよびこれに関連する差分値ΔRavはレジスタ34のレベル域LV3の欄に書き込まれ、平均値Gavおよびこれに関連する差分値ΔGavはレジスタ34のレベル域LV4の欄に書き込まれ、そして平均値Bavおよびこれに関連する差分値ΔBavはレジスタ34のレベル域LV1の欄に書き込まれる。
レジスタ34の全ての欄が数値によって埋められると、レジスタ34が完成する。CPU30は、レジスタ34に書き込まれた20個の差分値ΔRavに補間演算を施してR補正データを作成し、レジスタ34に書き込まれた20個の差分値ΔGavに補間演算を施してG補正データを作成し、そしてレジスタ34に書き込まれた20個の差分値ΔBavに補間演算を施してB補正データを作成する。
クランプ回路22aから出力されたチャネルCH1の生画像データのR成分,G成分およびB成分が図4に示す曲線C1rout,C1goutおよびC1boutを描き、クランプ回路22bから出力されたチャネルCH2の生画像データが図4に示す曲線C2rout,C2goutおよびC2boutを描く場合、R補正データ,G補正データおよびB補正データはそれぞれ図8に示す曲線Cr,CgおよびCbを描く。
曲線Cr,CbおよびCgの各々は、チャネルCH1の生画像データからチャネルCH2の生画像データを減算して得られた差分画像データがチャネルCH2の生画像データに対してどのように変化するかを示す特性曲線に等しい。
CPU30は、R補正データの値をLUT28rのデフォルト設定値に加算し、G補正データの値をLUT28gのデフォルト設定値に加算し、そしてB補正データの値をLUT28bのデフォルト設定値に加算する。
LUT28rのデフォルト設定値,LUT28gのデフォルト設定値およびLUT28bのデフォルト設定値がそれぞれクランプ回路22bの出力に対して図9に示す曲線TSr,TSgおよびTSbを描く場合、上述のR補正データ,G補正データおよびB補正データが加算されると、LUT28rの設定値,LUT28gの設定値およびLUT28bの設定値はそれぞれ、図9に示す曲線TMr,TMgおよびTMbを描く。この結果、生画像データのゲインは、チャネルCH1およびCH2の間でほぼ一致することとなる。
キー入力装置32によって境界表示モードオン操作が行われると、CPU30は、スイッチSWを端子T2側へと切り換える。これによって、前述のようなLUT28r,28gおよび28bによるゲイン調整処理の後に、Rゲイン付加回路54rによるRゲイン付加処理が実行される。Rゲイン付加処理では、チャネルCH2の生画像データに対し、R成分のゲインが付加される。これによって、チャネルCH2側の再生画像が赤みを帯び、モニタ画面を垂直に二等分する明確な境界線が現れる。かかる境界線を基準とすることで、傾斜の少ない的確なフレーミングが容易に行える。
続いて、撮影操作が行われると、CPU30は、スイッチSWを端子T1側へと切り換え、そして撮影処理および記録処理を実行する。これによって、記録媒体46には、境界線の目立たない画像が記録される。記録後、CPU30は、スイッチSWを端子T2側へと切り換える。これにより、LCDモニタ52には再び、明確な境界線を有するスルー画像が表示される。
キー入力装置32によって境界表示モードオフ操作が行われると、CPU30は、スイッチSWを端子T1側へと切り換える。この結果、スルー画像中の境界線は消滅する。
CPU30は、μITRONなどのマルチタスクOSの制御下で、図10に示すメインタスクと、図11および図12に示すテーブル更新タスクとを並列に実行する。なお、これらのフロー図に対応する制御プログラムは、フラッシュメモリ48に記憶される。
図10を参照して、キー入力装置32によって電源オン操作が行われると、まずステップS1で初期処理を実行する。初期処理には、TG18の起動,TG18への間引き読み出しモードの設定,スイッチSWの端子T1側への設定などの処理が含まれる。初期処理が完了すると、ステップS3に移って、テーブル更新タスクを起動する。続くステップS5では、スルー撮影開始命令を発行する。
スルー撮影開始命令が発行されると、TG18は複数のタイミング信号を発生する動作を開始する。ドライバ16aは、タイミング信号に基づいて左側撮像領域IML(図2参照)にラスタ走査を施し、左側1/2フレームの生画像信号をチャネルCH1から間引き態様で出力する。ドライバ16bも同様に、タイミング信号に基づいて右側撮像領域IMRにラスタ走査を施し、右側1/2フレームの生画像信号をチャネルCH2から間引き態様で出力する。
CDS/AGC/AD回路20aは、チャネルCH1の生画像信号に相関2重サンプリング,自動ゲイン調整およびA/D変換の一連の処理を施す。CDS/AGC/AD回路20bは、チャネルCH2の生画像信号に同様の一連の処理を施す。クランプ回路22aは、CDS/AGC/AD回路20aから出力された生画像データの基準レベルを、レベル調整回路24によって設定された黒レベルに合わせる。クランプ回路22bも同様に、CDS/AGC/AD回路20bから出力された生画像データの基準レベルを、レベル調整回路24によって設定された黒レベルに合わせる。
クランプ回路22aから出力された生画像データは、メモリ制御回路38によってSDRAM36に書き込まれる。クランプ回路22bから出力された生画像データは、LUT28r,28gおよび28bによるR成分,G成分およびB成分のゲイン調整を経て、メモリ制御回路38によってSDRAM36に書き込まれる。
チャネルCH1の生画像データは生画像領域36aの左側に格納され、チャネルCH2の生画像データは生画像領域36aの右側に格納される。チャネルCH1およびCH2の間での生画像データのゲイン差は、LUT28r,28gおよび28bによるゲイン調整によって解消される。
後処理回路40は、生画像データをメモリ制御回路38を通してSDRAM36から読み出し、読み出された生画像データに色分離,YUV変換などの処理を施し、そしてYUV形式の画像データをメモリ制御回路38を通して表示画像領域36dに書き込む。
ビデオエンコーダ50は、YUV形式の画像データをメモリ制御回路38を通してSDRAM36から読み出し、読み出されたYUV形式の画像データをNTSC方式に従うコンポジットビデオ信号に変換し、変換されたコンポジットビデオ信号をLCDモニタ52に与える。こうして、LCDモニタ52にスルー画像が表示される。
スルー撮影命令の発行後、CPU30の処理はステップS7およびS9のループに入る。ステップS7では撮影操作の有無が判別され、ステップS9では境界表示モードオン操作の有無が判別される。キー入力装置32によって撮影操作が行われると、ステップS7でYESと判別し、ステップS11に移って撮影命令を発行する。
撮影命令に応答して、TG18に全画素読み出しモードが設定される。ドライバ16aは、TG18からのタイミング信号に基づいて左側撮像領域IMLにラスタ走査を施し、左側1/2フレームの生画像信号をチャネルCH1から全画素読み出し態様で出力する。ドライバ16bも同様に、TG18からのタイミング信号に基づいて右側撮像領域IMRにラスタ走査を施し、右側1/2フレームの生画像信号をチャネルCH2から全画素読み出し態様で出力する。
CCDイメージャ14から後処理回路40に至る処理系では、間引き読み出しの場合と同様の処理が行われる。ただし後処理回路40は、YUV形式の画像データを表示画像領域36dでなくYUV画像領域36bに書き込む。JPEGコーデック42は、YUV画像領域36bに格納された画像データをメモリ制御回路38を通して読み出し、読み出された画像データにJPEG圧縮を施し、そして圧縮画像データをメモリ制御回路38を通して圧縮画像領域36cに書き込む。
圧縮画像データのSDRAM36への書き込みが完了すると、CPU30は、ステップS13で記録処理を実行する。詳しくは、圧縮画像領域36cに蓄積された圧縮画像データをメモリ制御回路38を通して読み出し、読み出された圧縮画像データをI/F44を通して記録媒体46に記録する。こうして、複数フレームの圧縮画像データを収めた動画像ファイルが記録媒体46に形成される。記録処理が完了すると、ステップS5に戻る。
キー入力装置32によって境界表示モードオン操作が行われると、ステップS9でYESと判別し、ステップS15に移ってスイッチSWを端子T2側に設定する。設定後、ステップS17およびS19のループに入る。ステップS17では撮影操作の有無が判別され、ステップS19では境界表示モードオフ操作の有無が判別される。
キー入力装置32によって撮影操作が行われると、ステップS17でYESと判別し、ステップS23に移ってスイッチSWを端子T1側に設定する。設定後、ステップS25で撮影命令を発行し、そしてステップS27で記録処理を実行する。記録処理が完了すると、ステップS29でスルー撮影開始命令を発行し、ステップS15に戻る。
キー入力装置32によって境界表示モードオフ操作が行われると、ステップS21でスイッチSWを端子T1側に設定し、ステップS5に戻る。
テーブル更新タスクは、図11のフロー図に従う。図11を参照して、まずステップS41でレジスタ34をクリアし、ステップS43で変数Kを“0”に設定する。ステップS45では垂直同期信号Vsyncが発生したか否かを判断し、YESであればステップS47で変数Kをインクリメントする。ステップS49では、変数Kが所定値nを上回ったかどうかを判別する。ここでNOであればステップS57に進み、YESであればステップS51に進む。
図12を参照してステップS57では境界ブロックBKLの積算値Rh,Gh,Bhをブロック演算回路26aから取り込み、ステップS59では境界ブロックBKRの積算値Rh,Gh,Bhをブロック演算回路26bから取り込む。
ステップS61では、取り込まれた2つの積算値Rhが平坦度条件を満足するか否かを判別する。具体的には、取り込まれた2つの積分値Rhのいずれもが閾値TH未満であるか否かを判別する。この平坦度条件が満たされなければ、境界ブロックBKLに属するR成分によって再現される小画像および境界ブロックBKRに属するR成分によって再現される小画像の少なくとも一方が平坦画像ではないとみなし、ステップS47に進む。一方、この条件が満たされると、境界ブロックBKLおよびBKRの各々に属するR成分によって再現される小画像はいずれも平坦画像であるとみなし、ステップS63に進む。
ステップS63では境界ブロックBKLの平均値Rav,Gav,Bavをブロック演算回路26aから取り込み、ステップS65では境界ブロックBKRの平均値Rav,Gav,Bavをブロック演算回路26bから取り込む。ステップS67では、境界ブロックBKLの平均値Ravから境界ブロックBKRの平均値Ravを減算して差分値ΔRavを算出し、境界ブロックBKLの平均値Gavから境界ブロックBKRの平均値Gavを減算して差分値ΔGavを算出し、そして境界ブロックBKLの平均値Bavから境界ブロックBKRの平均値Bavを減算して差分値ΔBavを算出する。
ステップS69では、境界ブロックBKRの平均値Ravが属する範囲を検出し、差分値ΔRav,ΔGav,ΔBavおよび境界ブロックBKRの平均値Rav,Gav,Bavを検出された範囲に関連付けてレジスタ34に書き込む。書き込みが完了すると、ステップS47に戻る。
図11に戻って、ステップS49でYESであれば、レジスタ34が完成したか否かをステップS51で判別する。レジスタ34は、全ての欄に数値が書き込まれたときに完成する。ここでNOと判断されるとステップS45に戻り、YESと判断されるとステップS53に進む。
ステップS53では、レジスタ34に設定された差分値ΔRavの補間演算によってR補正データを作成し、レジスタ34に設定された差分値ΔGavの補間演算によってG補正データを作成し、そしてレジスタ34に設定された差分値ΔBavの補間演算によってB補正データを作成する。
ステップS55では、作成されたR補正データをLUT28rのデフォルト設定値に加算し、作成されたG補正データをLUT28gのデフォルト設定値に加算し、そして作成されたB補正データをLUT28bのデフォルト設定値に加算する。ステップS55の処理が完了すると、ステップS41に戻る。
以上の説明から分かるように、この実施例では、イメージセンサ12は、2つの部分画像をそれぞれ生成する2つの部分撮像領域IMLおよびIMRが形成された撮像面と、2つの部分撮像領域IMLおよびIMRにそれぞれ対応する2つのチャネルCH1およびCH2とを有する。2つのチャネルCH1およびCH2からそれぞれ出力された2つの部分画像の間のゲイン差は、LUT28r,28gおよび28bによって抑圧される。抑圧されたゲイン差を有する2つの部分画像は、メモリ制御回路38によって互いに結合される。
CPU30は、抑圧処理を施される2つの部分画像が平坦度条件を満足するか否かを判別する(S61)。この判別結果が肯定的であれば、CPU30は、抑圧処理を施される複数の部分画像の間のゲイン差を検出し(S67)、検出されたゲイン差に基づいてLUT28r,28gおよび28bの動作特性を補正する(S55)。
LUT28r,28gおよび28bの動作特性を補正することで、経時的変化に起因する境界線の出現を防止できる。また、平坦度条件が満足されたときに検出されるゲイン差に注目することで、動作特性を正確に補正することができる。つまり、画像の境界線の出現を効果的に防止できる。
また、LUT28r,28gおよび28bをそれぞれ補正するためのR補正データ,G補正データおよびB補正データは、生画像データのダイナミックレンジ上に割り当てられる複数の範囲LV1〜LV4にそれぞれ対応する複数のゲイン差に基づいて作成される。これによって、LUT28r,28gおよび28bの正確な補正が可能となる。
また、この実施例では、LCDモニタ52に表示されるスルー画像に境界線を出現させる境界表示モードが準備される。前述のゲイン差抑圧は、境界表示モードがオン状態か否かに関わらず行われる。境界表示モードがオンされると、ゲイン差抑圧後のチャネルCH2画像に対し、R成分のゲインを付加する処理(Rゲイン付加処理)がRゲイン付加回路54rを通して施される(S15)。これによって、チャネルCH2画像は赤みを帯び、境界線の視認が容易となる。オペレータは、かかる境界線を利用することで、容易にフレーミングが行える。
この状態で撮影操作が行われると、Rゲイン付加処理は中断され(S21,S23)、記録媒体46には境界線の目立たない結合画像が記録される。記録が完了すると、Rゲイン付加処理が再開され、明瞭な境界線を有するスルー画像が表示される。
なお、この実施例では、境界表示モードオン状態で、チャネルCH2画像にR成分のゲインを付加したが、チャネルCH2画像にG成分のゲインを付加しても、チャネルCH2画像にB成分のゲインを付加してもよい。R成分のゲイン,G成分のゲインおよびB成分のゲインのいずれか2つを付加しても、3つ全てを付加してもよい。付加するゲインは、成分毎に異なってもよく、負値であってもよい。いずれの方法でも、チャネルCH2画像の色調ないしは輝度が変化し、境界線の視認が容易となる。
この場合、LUT28r,28gおよび28bの後段には、Rゲイン付加回路54rに加え、Gゲイン付加回路および/またはBゲイン付加回路(図示せず)が設けられる。各回路をオン/オフしたり、各回路で付加するゲインを増減したりすることで、チャネルCH2画像の色調を好みによって、あるいは被写界の色合いによって変化させてもよい。
また、この実施例では、LUT28r,28g,28gの後段でチャネルCH2画像にゲインを付加したが、ゲイン付加を前段で行うことも可能である。ただしこの場合、LUT28r,28g,28gがゲイン付加の影響を受け、記録画像の境界線の抑圧が一時的に不十分となる可能性がある。
なお、この実施例では、平坦度条件として、互いに隣接する2つの境界ブロックで求められた積算値Rh,GhおよびBhの各々が閾値未満であることを要求している。しかし、これに代えて、互いに隣接する2つの境界ブロックで求められた積算値の色毎の総和(Rh+Rh,Gh+Gh,Bh+Bh)の各々が閾値未満であることを平坦度条件として要求するようにしてもよい。
また、この実施例では、LUT28r,28gおよび28bによるゲイン調整処理に先立ってクランプ処理を行うようにしているが、クランプ処理がゲイン調整処理の後に実行するようにしてもよい。
さらに、この実施例では、図12に示すステップS63以降の処理は、積分値Rh,GhおよびBhの全てが閾値を下回らない限り、実行されない。しかし、ステップS63以降の処理は、色毎に実行するようにしてもよい。
以上では、部分撮像領域の領域数が2であるディジタルカメラ10を用いて説明したが、部分撮像領域の領域数が3以上のディジタルカメラに適用することもできる。すなわち一般に、撮像面に複数の部分撮像領域が形成されてよい。複数の部分撮像領域は、水平方向および垂直方向の少なくとも一方に延びる境界線によって互いに接する。境界表示モードがオンされると、モニタ画面には、かかる境界線が明確に現れた結合画像が表示される。こ録操作が行われると、記録媒体には、かかる境界線が目立たない結合画像が記録される。