以下に添付図面を参照して、この発明に係る撮像装置の実施の形態を詳細に説明する。以下で示す実施形態は、本発明をデジタルカメラに適用した例である。
まず、本実施形態に係るデジタルカメラの構成について説明する。図1は、本実施形態に係るデジタルカメラの外観を示す図であり、図1−1は同デジタルカメラの上面図、図1−2は同デジタルカメラの正面図、図1−3は同デジタルカメラの裏面図である。
本実施形態に係るデジタルカメラは、図1−1に示すように、その上面に、サブLCD1と、レリーズボタン2と、モードダイヤル3とを有する。サブLCD1は、例えば撮影可能枚数などを表示するための表示部である。レリーズボタン2は、2段階に押し込むことができるボタンであり、1段階目の押し込みでAF(オートフォーカス)動作、2段階目まで押し込むと撮影というような動作をさせることができる。モードダイヤル3は、画像を撮影(記録)する撮影モードや記録された画像を再生する再生モード、カメラ設定のためのSETUPモードなどの各種モードの切替えの際に操作される。
また、本実施形態に係るデジタルカメラは、図1−2に示すように、その正面に、ストロボ発光部4と、図示しないリモコン端末からの赤外線信号を受信するリモコン受光部6と、鏡胴ユニット7と、光学ファインダ(正面)8とを有する。また、本実施の形態に係るデジタルカメラの側面には、後述するメモリカード80を挿入するメモリカードスロットや電池を収容する電池収容部が設けられており、これらメモリカードスロットや電池収容部は蓋体9により閉塞されている。
また、本実施形態に係るデジタルカメラは、図1−3に示すように、その裏面に、オートフォーカスLED(AFLED)10と、ストロボLED11と、LCDモニタ12と、光学ファインダ(裏面)13とを有する。AFLED10は、オートフォーカス作動時に点灯するLEDである。ストロボLED11は、ストロボ発光時に点灯するLEDである。LCDモニタ12は、各種設定画面の表示や再生画像の表示および撮影時の電子ファインダとして用いられる表示部である。
さらに、本実施形態に係るデジタルカメラの裏面には、広角側ズーム時に操作されるZOOM(WIDE)スイッチ14および望遠側ズーム時に操作されるZOOM(TELE)スイッチ15と、電源スイッチ16と、再生スイッチ17と、セルフタイマの作動時および画像を削除する際に操作されるセルフタイマ/削除スイッチ18と、メニュー選択や選択した事項を確定させる際に操作されるMENU/OKスイッチ19と、LCDモニタ12上のカーソルを左移動させる場合や撮影した画像をLCDモニタ12で確認する際に操作される左/画像確認スイッチ20と、LCDモニタ12上のカーソルを右移動させる場合等に操作される右スイッチ21と、LCDモニタ12上のカーソルを下移動させる場合やマクロ撮影を行う際に操作される下/マクロスイッチ22と、LCDモニタ12上のカーソルを上移動させる場合やストロボのモードを切り替える際に操作される上/ストロボスイッチ23と、LCDモニタ12の表示の切替え時に操作されるDISPLAYスイッチ24とが設けられている。
図2は、本実施形態に係るデジタルカメラの制御系の構成を示すブロック図である。本実施形態に係るデジタルカメラは、上述した鏡胴ユニット7を介して入射した光を光電変換して電気信号として出力するCCD101と、CCD101から出力されるアナログの電気信号を前処理してデジタル信号として出力するF/E(フロントエンド)−IC102と、F/E−IC102からのデジタル信号を処理してデジタルカメラの各種動作を実行制御するデジタルカメラプロセッサ(以下、単に「プロセッサ」という。)104とを備える。
鏡胴ユニット7は、被写体の光学画像を取り込むためのズームレンズ71aおよびズームモータ71bからなるズーム光学系71、フォーカスレンズ72aおよびフォーカスモータ72bからなるフォーカス光学系72、絞り73aおよび絞りモータ73bからなる絞りユニット73、メカシャッタ74aおよびメカシャッタモータ74bからなるメカシャッタユニット74、各モータを駆動するモータドライバ75を有する。モータドライバ75は、プロセッサ104内の後述するCPUブロック1043からの駆動指令によって駆動制御される。
CCD101は、鏡胴ユニット7を介して入射した光を受光し、その光学画像を光電変換して光学画像に対応した画像データを出力する撮像センサである。なお、本実施形態に係るデジタルカメラでは、撮像センサとしてCCD101を用いているが、CCD101の代わりにCMOSイメージセンサなどの他の撮像センサを用いるようにしてもよい。撮像センサとしてCMOSイメージセンサを用いる場合は制御系の構成が多少変わることになるが、ここではその説明は省略する。
F/E−IC102は、画像ノイズ除去用相関二重サンプリングを行うCDS1021、利得調整を行うAGC1022、アナログ信号をデジタル信号に変換するA/D1023、プロセッサ104内の後述する第1のCCD信号処理ブロック1041から供給される垂直同期信号(VD信号)および水平同期信号(HD信号)に基づいてCCD101やCDS1021、AGC1022、A/D1023の駆動タイミング信号を発生するTG(Timing Generator)1024を有する。このF/E−IC102における各部の動作は、プロセッサ104内の後述するCPUブロック1043によって制御される。
プロセッサ104は、第1のCCD信号処理ブロック1041、第2のCCD信号処理ブロック1042、CPUブロック1043、ローカルSRAM1044、USBブロック1045、シリアルブロック1046、JPEG・CODECブロック1047、RESIZEブロック1048、TV信号表示ブロック1049、メモリカードコントローラブロック10410を有している。プロセッサ104における上記各部は、相互にバスラインで接続されている。
第1のCCD信号処理ブロック1041は、CCD101からF/E−IC102を介して入力された画像データに対してホワイトバランス補正やガンマ補正を行い、また、画像データのタイミングを制御する上述したVD信号およびHD信号をTG1024に供給する。第2のCCD信号処理ブロック1042は、入力された画像データに対するフィルタリング処理によって輝度データ・色差データへの変換を行う。
CPUブロック1043は、本実施形態に係るデジタルカメラの各部の動作制御を司るものである。具体的には、CPUブロック1043は、音声記録回路1151による音声記録動作を制御する。音声記録回路1151は、マイク1153で変換されてマイクアンプ1152により増幅された音声信号を、CPUブロック1043からの指令に応じて記録する。また、CPUブロック1043は、音声再生回路1161による音声再生動作も制御する。音声再生回路1161は、CPUブロック1043からの指令により、適宜のメモリに記録されている音声信号を再生してオーディオアンプ1162に入力し、スピーカ1163から音声を出力させる。また、CPUブロック1043は、ストロボ回路114の動作を制御することによって、ストロボ発光部4から照明光を発光させる。そのほか、CPUブロック1043は、本実施形態において特徴的な機能として、インターバル撮影処理を行いながら比較明合成処理を行う機能(以下、インターバル合成撮影という。)を実現するための各種処理を実行するが、これについては詳細を後述する。
CPUブロック1043は、プロセッサ104の外部に配置されたサブCPU109と接続されている。サブCPU109は、LCDドライバ111を介してサブLCD1による表示を制御する。また、サブCPU109は、AFLED10、ストロボLED11、リモコン受光部6、ブザー113、操作キーユニット90に接続されている。操作キーユニット90は、上述したレリーズボタン2、モードダイヤル3、ZOOM(WIDE)スイッチ14、ZOOM(TELE)スイッチ15、電源スイッチ16、再生スイッチ17、セルフタイマ/削除スイッチ18、MENU/OKスイッチ19、左/画像確認スイッチ20、右スイッチ21、下/マクロスイッチ22、上/ストロボスイッチ23、ディスプレイスイッチ24の各種スイッチを含む。サブCPU109は、この操作キーユニット90やリモコン受光部6からの出力信号をユーザの操作情報として、ユーザ操作情報に応じてAFLED10、ストロボLED11、ブザー113の動作を制御し、また、ユーザ操作情報をプロセッサ104内のCPUブロック1043に伝達する。
ローカルSRAM1044は、制御に必要なデータ等を一時的に保存するメモリである。USBブロック1045は、USBコネクタ122に接続されたコンピュータ端末などの外部機器との間でUSB通信を行う。また、シリアルブロック1046は、RS−232Cコネクタ1232に接続されたコンピュータ端末などの外部機器との間で、シリアルドライバ回路1231を介してシリアル通信を行う。
JPEG・CODECブロック1047は、撮影された画像データをJPEG形式で圧縮し、またJPEG形式で圧縮された記録画像のデータを伸長する処理を行う。また、RESIZEブロック1048は、画像データのサイズを補間処理によって拡大・縮小する処理を行う。
TV信号表示ブロック1049は、画像データをLCDモニタ12やTVなどの外部表示機器に表示させるためのビデオ信号に変換する。TV信号表示ブロック1049にはLCDドライバ117が接続されており、LCDドライバ117により駆動されるLCDモニタ12に画像を表示させる。また、TV信号表示ブロック1049にはビデオAMP118が接続されており、ビデオジャック119がTVなどの外部表示機器に接続されている場合に、この外部表示機器に画像を表示させる。
メモリカードコントローラブロック10410は、メモリカードスロットル121に接続され、このメモリカードスロットル121に挿入されたメモリカード80や汎用のPCMCIAなどの制御を行う。
また、プロセッサ104の外部には、SDRAM103、RAM107、ROM108、内蔵メモリ120が配置されており、これらはプロセッサ104とバスラインによって接続されている。
SDRAM103は、プロセッサ104で画像処理を施す際に画像データを一時的に保存するメモリである。保存される画像データは、例えば、CCD101からF/E−IC102を介してプロセッサ104に入力され、第1のCCD信号処理ブロック1041でホワイトバランス補正、ガンマ補正が行われた状態の「RAW−RGB画像データ」や、第2のCCD信号処理ブロック1042で輝度データ・色差データ変換が行われた状態の「YUV画像データ」、JPEG・CODECブロック1047でJPEG形式に圧縮された「JPEG画像データ」などである。また、SDRAM103は、後述のインターバル合成撮影において利用される第1メモリ領域および第2メモリ領域も含む。
ROM108には、CPUブロック1043にて解読可能なコードで記述された制御プログラムや制御のためのパラメータが格納されている。なお、これらのパラメータは内蔵メモリ120に格納されていてもよい。デジタルカメラの電源がオン状態になると、プログラムは不図示のメインメモリにロードされ、CPUブロック1043はそのプログラムに従って各部の動作を制御するとともに、制御に必要なデータ等を一時的にRAM107およびプロセッサ104内のローカルSRAM1044に保存する。また、本実施形態では、後述のインターバル合成撮影を行うためのプログラムもROM108に格納されている。なお、本実施形態においては、インターバル合成撮影をプログラムにより実現するものとして説明するが、処理を高速化するために、例えば比較明合成処理などの一部の処理を、ASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)などの専用のハードウェアを用いて実施するようにしてもよい。
内蔵メモリ120は、メモリカードスロットル121にメモリカード80が挿入されていない場合に、撮影した画像データを記録しておくためのメモリである。また、RAM107は、CPUブロック1043が各種プログラムを実行する際のワークエリアとして利用されるメモリである。
次に、本実施形態に係るデジタルカメラにおいて特徴的なインターバル合成撮影について説明する。インターバル合成撮影は、上述したように、インターバル撮影処理を行いながら比較明合成処理を行う機能である。
インターバル撮影処理とは、撮像センサであるCCD101の露光および読み出し(画素データの読み出し)を所定の周期で繰り返し行って複数枚の画像を順次取得する処理である。
比較明合成処理とは、複数の画像を用いて同じ位置の画素ごとに輝度を比較し、輝度の高い方を選択して合成画像を生成する処理である。比較明合成処理は、上述したように、最初は1枚目の画像と2枚目の画像とを用いて処理が行われ、その処理結果が合成画像として記憶される。その後、3枚目以降の画像については、当該画像と前回の処理結果である合成画像とを用いて処理が行われ、その処理結果が新たな合成画像データとして記憶される。以上の処理が、処理すべきすべての画像に対して繰り返し行われ、最終的な合成画像が得られる。
本実施形態に係るデジタルカメラでは、比較明合成処理を行うために、SDRAM103内の2つのメモリ領域を利用する。2つのメモリ領域はそれぞれ画像1枚分のデータを保持するフレームメモリである。以下、2つのメモリ領域の一方を第1メモリ領域といい、他方を第2メモリ領域という。第1メモリ領域は、比較明合成処理の合成バッファとして用いられるメモリであり、比較明合成処理の結果である合成画像を格納する。第2メモリ領域は、合成前の静止画のバッファとして用いられるメモリであり、インターバル撮影処理によって取得される画像が順次格納される。
図3は、比較明合成処理により得られる合成画像の一例を示す図である。図の左側が処理の対象となる画像群を示し、図の右側がこれら画像群を対象に比較明合成処理を行うことで得られた合成画像を示している。比較明合成処理によって得られた合成画像は、各画素それぞれ、画像群の最大輝度を持つ画素となる。図3の例のように、風景と星空を収めた画像であっても、地球の日周運動に起因する星の光跡が延びつつ、星の無い夜空の部分や、明るさのある風景が真っ白にならずに共存し、あたかも長時間露出を行ったような合成画像が得られる。なお、図3の左側に示す画像群は、図示を簡略化するために画像の枚数を限定しているが、実際には300枚強の画像を用いて図の右側に示す合成画像が生成される。
インターバル合成撮影では、比較明合成処理の対象となる画像群がインターバル撮影処理によって順次取得される画像であり、インターバル撮影処理によって画像が得られるたびにその画像を用いた比較明合成処理が行われる。つまり、インターバル撮影処理と比較明合成処理とが同時進行で行われる。これにより、後述するようなユーザにとって使い勝手のよい様々な機能を実現することができる。
本実施形態に係るデジタルカメラは、撮影モードの1つとして、インターバル合成撮影を行う動作モード(以下、インターバル合成撮影モードという。)を備える。インターバル合成撮影モードは、例えば、モードダイヤル3の操作などによって選択することができる。まず、インターバル合成撮影の初期設定について、図4を参照して説明する。図4は、インターバル合成撮影の初期設定画面とボタン操作による画面遷移を説明する図である。
ユーザが、電源スイッチ16の操作によりデジタルカメラの電源をオンして、モードダイヤル3の操作などによりインターバル合成撮影モードを選択し、各種撮影に関する設定を好みの状態とした後に、MENU/OKスイッチ19を押すと、LCDモニタ12に、図4に示すインターバル合成撮影の初期設定画面が表示される。ユーザは、この初期設定画面上で、左/画像確認スイッチ20や右スイッチ21を操作して項目を選択し、下/マクロスイッチ22や上/ストロボスイッチ23を操作して各項目の設定内容を選択することで、インターバル合成撮影に関する各種の設定を行うことができる。なお、以下では便宜上、左/画像確認スイッチ20、右スイッチ21、下/マクロスイッチ22、上/ストロボスイッチ23をそれぞれ左ボタン、右ボタン、下ボタン、上ボタンと表記する。
図4(a)は、インターバル撮影処理による個々の画像の撮影間隔(つまり、露光開始から次の撮影の露光開始をデジタルカメラに指示する時間。以下、この時間をインターバル時間という)の「時間の桁」を設定できる状態の画面例を示している。この図4(a)の状態で上ボタンや下ボタンを操作することにより数値を変更することができる。また、右ボタンを操作すると、図4(a)の画面が図4(b)の画面に遷移し、左ボタンを操作すると、図4(a)の画面が図4(e)の画面に遷移する。
図4(b)は、インターバル時間の「分の桁」を設定できる状態の画面例を示している。この図4(b)の状態で上ボタンや下ボタンを操作することにより数値を変更することができる。また、右ボタンを操作すると、図4(b)の画面が図4(c)の画面に遷移し、左ボタンを操作すると、図4(b)の画面が図4(a)の画面に遷移する。
図4(c)は、インターバル時間の「秒の桁」を設定できる状態の画面例を示している。この図4(c)の状態で上ボタンや下ボタンを操作することにより数値を変更することができる。また、右ボタンを操作すると、図4(c)の画面が図4(d)の画面に遷移し、左ボタンを操作すると、図4(c)の画面が図4(b)の画面に遷移する。
図4(d)は、インターバル合成撮影の途中で比較明合成処理のリセットを行って比較明合成処理の合成バッファとして用いる第1メモリ領域を初期化する際に、第1メモリ領域に保持されているデータ、つまり、それまでの処理で生成された合成画像を保存するか否かを設定できる状態の画面例を示している。この図4(d)の状態で上ボタンや下ボタンを操作することにより、「合成リセット時ファイル出力設定」の項目を「リセット前合成画像を残す」または「何も残さない」のいずれかに選択することができる。また、右ボタンを操作すると、図4(d)の画面が図4(e)の画面に遷移し、左ボタンを操作すると、図4(d)の画面が図4(c)の画面に遷移する。「リセット前合成画像を残す」は、比較明合成処理をリセットする直前までの合成画像を画像ファイルとして出力してメモリカード80などに保存する設定であり、「何も残さない」は、比較明合成処理をリセットする直前までの合成画像を保存しない設定である。
図4(e)は、インターバル合成撮影に用いる各画像を保存するか否かを設定できる状態の画面例を示している。この図4(e)の状態で上ボタンや下ボタンを操作することにより、「インターバル画像ファイル出力設定」の項目を、「通常静止画を残す」、「合成静止画を残す」、「通常動画を残す」、「合成動画を残す」、「何も残さない」のいずれかに選択することができる。また、右ボタンを操作すると、図4(e)の画面が図4(a)の画面に遷移し、左ボタンを操作すると、図4(e)の画面が図4(d)の画面に遷移する。「通常静止画を残す」は、インターバル撮影処理によって画像が取得されるたびに、合成前の画像(静止画)を画像ファイルとして出力してメモリカード80などに保存する設定である。「合成静止画を残す」は、インターバル撮影処理によって画像が取得されるたびに、その時点までの合成画像(静止画)を画像ファイルとして出力してメモリカード80などに保存する設定である。「通常動画を残す」は、インターバル撮影処理によって画像が取得されるたびに、合成前の画像(静止画)を動画の1コマとして動画ファイルを生成し、メモリカード80などに保存する設定である。「合成動画を残す」は、インターバル撮影処理によって画像が取得されるたびに、その時点までの合成画像(静止画)を動画の1コマとして動画ファイルを生成し、メモリカード80などに保存する設定である。「何も残さない」は、インターバル合成撮影に用いる各画像を保存しない(ただし、「合成リセット時ファイル出力設定」の項目が「リセット前合成画像を残す」に設定されていれば、リセット直前の合成画像は保存される。)設定である。
LCDモニタ12に表示されている初期設定画面が図4(a)〜(e)のどの画面であっても、MENU/OKスイッチ19を押すことによって、各項目の設定内容を確定することができる。その後、レリーズボタン2が2段階目まで押し込まれる(全押し操作)ことにより、インターバル合成撮影が開始される。
図5は、インターバル合成撮影に関わるCPUブロック1043の機能構成を示す機能ブロック図である。インターバル合成撮影における各処理は、上述したように、一例としてプログラムにより実現される。CPUブロック1043は、これらインターバル合成撮影における各処理を実行する機能構成として、インターバル撮影手段51と、撮影設定確定手段52と、インターバル画像ファイル出力手段53と、比較明合成手段54と、合成途中画像表示手段55と、合成バッファ初期化手段56と、を備える。
インターバル撮影手段51は、「インターバル撮影処理」を実行する。インターバル撮影手段51により実行される「インターバル撮影処理」の具体的な処理手順については、図6を用いて後述する。
撮影設定確定手段52は、「撮影設定確定処理」を実行する。撮影設定確定手段52により実行される「撮影設定確定処理」の具体的な処理手順については、図8を用いて後述する。
インターバル画像ファイル出力手段53は、「インターバル画像ファイル出力処理」を実行する。インターバル画像ファイル出力手段53により実行される「インターバル画像ファイル出力処理」の具体的な処理手順については、図9を用いて後述する。
比較明合成手段54は、「比較明合成処理」を実行する。比較明合成手段54により実行される「比較明合成処理」の具体的な処理手順については、図7を用いて後述する。
合成途中画像表示手段55は、「合成途中画像表示処理」を実行する。合成途中画像表示手段55により実行される「合成途中画像表示処理」の具体的な処理手順については、図10を用いて後述する。
合成バッファ初期化手段56は、「合成バッファ初期化処理」を実行する。合成バッファ初期化手段56により実行される「合成バッファ初期化処理」の具体的な処理手順については、図11を用いて後述する。
本実施形態に係るデジタルカメラにおいて、インターバル合成撮影モード時にCPUブロック1043が実行する上記の各処理のうち、「撮影設定確定処理」と「インターバル画像ファイル出力処理」については、「インターバル撮影処理」から関数呼び出しのような形式でシーケンシャルに実行される。また、その他の「比較明合成処理」、「合成途中画像表示処理」、「合成バッファ初期化処理」については、マルチタスクにより並行して実行される。
以下、図6〜図11のフローチャートを用いて、インターバル合成撮影の動作について説明する。
図6は、CPUブロック1043のインターバル撮影手段51により実行される「インターバル撮影処理」の処理手順を示すフローチャートである。この図6のフローはインターバル合成撮影のメインルーチンとなり、「インターバル撮影処理」を行いつつ「比較明合成処理」を開始するタイミングなどを司る。
まず、ステップS101において、合成処理中フラグをクリアする処理が行われ、ステップS102において、合成枚数カウンタを0に初期化する処理が行われる。合成処理中フラグは、「比較明合成処理」が実行中であるか否かを示すフラグである。合成枚数カウンタは、「比較明合成処理」が何枚目の画像の合成を行っているかを示すカウンタである。これらステップS101およびステップS102の処理は、プログラム内の変数を初期化する処理である。
次に、ステップS103において、「撮影設定確定処理」が行われる。「撮影設定確定処理」は、一連のインターバル撮影を行う前に、AF(自動焦点合わせ)処理やAE(自動露出制御)処理を行い、フォーカス位置、露出を決定する処理である。「撮影設定確定処理」は上述したように「インターバル撮影処理」から関数呼び出しのような形式で呼び出され、サブルーチンとして実行される。「撮影設定確定処理」の処理手順は後述する。
次に、ステップS104において、インターバル時間の計測を開始する処理が行われる。この処理は、インターバル時間の計測を行うために内部タイマを作動させる処理である。
次に、ステップS105において、露光処理が行われる。露光処理は、撮像センサであるCCD101の露光を行う処理である。この処理では、露光が終わってもCCD101からのデータ読み出しは行われない。
次に、ステップS106において、合成処理中フラグがセットされているか否かの判定が行われる。この処理は、一連のインターバル撮影処理で前回撮影された画像の合成処理が終わっているか否かを、プログラム内の変数を参照して判定する処理である。前回撮影された画像の合成処理が終わっておらず、合成処理中フラグがセットされた状態であれば(ステップS106:Yes)、合成処理が終わるまで待機する。そして、前回撮影された画像の合成処理が終わり、合成処理中フラグがクリアされた状態であれば(ステップS106:No)、次の処理に進む。
次に、ステップS107において、撮像センサであるCCD101からデータを読み出す処理が行われる。この処理は、CCD101の露光により得られる画像をCCD101から読み出して第2メモリ領域へ格納する処理である。
次に、ステップS108において、上述した初期設定によりインターバル合成撮影に用いる画像の保存が設定されているか否かの判定が行われる。インターバル合成撮影に用いる画像の保存が設定されている場合は(ステップS108:Yes)、「インターバル画像ファイル出力処理」が行われ、インターバル合成撮影に用いる画像の保存が設定されていない場合は(ステップS108:No)、「インターバル画像ファイル出力処理」がスキップされる。
次に、ステップS109において、「インターバル画像ファイル出力処理」が行われる。「インターバル画像ファイル出力処理」は、ユーザによる初期設定に基づいて、インターバル合成撮影に用いる画像を保存する処理である。「インターバル画像ファイル出力処理」は上述したように「インターバル撮影処理」から関数呼び出しのような形式で呼び出され、サブルーチンとして実行される。「インターバル画像ファイル出力処理」の処理手順は後述する。
次に、ステップS110において、合成処理中フラグをセットする処理が行われる。この処理は、プログラム内の変数をセットする処理である。
次に、ステップS111において、「比較明合成処理」の開始を指示する処理が行われる。この処理は、マルチタスクにより「インターバル撮影処理」と並行して実行される「比較明合成処理」を開始させる処理である。「比較明合成処理」の処理手順は後述する。
次に、ステップS112において、インターバル撮影処理を終了させる操作が行われたか否かの判定が行われる。インターバル撮影処理を終了させる操作は、例えば、レリーズボタン2を2段階目まで押し込む操作(全押し操作)などである。インターバル撮影処理を終了させる操作が行われていた場合(ステップS112:Yes)、インターバル撮影処理を終了する。インターバル撮影処理を終了させる操作が行われていなかった場合は(ステップS112:No)、次の処理に進む。
次に、ステップS113において、インターバル時間が経過したか否かの判定が行われる。この処理は、上述した初期設定によりユーザが指定したインターバル時間に基づき、次の画像の撮影タイミングが訪れたか否かの判定を行う処理である。インターバル時間が経過しておらず、次の撮影タイミングが訪れていない場合は(ステップS113:No)、インターバル時間が経過するまで待機する。そして、インターバル時間が経過して次の撮影タイミングが訪れたら(ステップS113:Yes)、ステップS104に戻ってインターバル時間の計測を開始し、次の画像の撮影を行う。
図7は、CPUブロック1043の比較明合成手段54により実行される「比較明合成処理」の処理手順を示すフローチャートである。この図7のフローは、マルチタスクによって図6のフローと並行して動作する。なお、比較明合成処理の詳細は既に説明したため、ここでは説明を省略する。
まず、ステップS201において、合成枚数カウンタが0であるか否かの判定が行われる。この処理は、合成用バッファとして用いる第1メモリ領域の初期化を行うか否かを判断する処理である。合成枚数カウンタは、「インターバル撮影処理」を開始した後の最初の撮影時、または、後述する「合成バッファ初期化処理」の後の最初の撮影時に0となる。合成枚数カウンタが0、つまり「インターバル撮影処理」を開始した後の最初の撮影時または「合成バッファ初期化処理」の後の最初の撮影時であれば(ステップS201:Yes)、ステップS202に進む。一方、合成枚数カウンタが0でない、つまり「インターバル撮影処理」を開始した後の最初の撮影時でも「合成バッファ初期化処理」の後の最初の撮影時でもない場合は(ステップS201:No)、ステップS203に進む。
ステップS202では、第2メモリ領域に格納されている画像、つまり「インターバル撮影処理」によって取得された画像を第1メモリ領域にコピーする処理が行われる。
ステップS203では、第2メモリ領域に格納されている画像、つまり「インターバル撮影処理」によって取得された画像と、第1メモリ領域に格納されている合成画像、つまり前回の比較明合成処理によって生成された合成画像とを用いて、比較明合成処理が実施され、処理結果である新たな合成画像が第2メモリ領域に格納される。
次に、ステップS204において、合成枚数カウンタを1加算する処理が行われる。
次に、ステップS205において、合成処理中フラグをクリアする処理が行われる。
図8は、CPUブロック1043の撮影設定確定手段52により実行される「撮影設定確定処理」の処理手順を示すフローチャートである。この図8のフローは、図6のフローから呼び出されるサブルーチンである。
まず、ステップS301において、AFモードがオンになっているか否かの判定が行われる。AFモードは、撮影時にAF(自動焦点合わせ)処理を行うか否かを指定するモードであり、AFモードがオンであればAF処理を行うことを示し、AFモードがオフであればマニュアル(手動)で焦点合わせを行うことを示している。AFモードがオンとなっていれば(ステップS301:Yes)ステップS302に進み、ステップS302においてAF処理が行われる。一方、AFモードがオフであれば(ステップS301:No)、ステップS302のAF処理をスキップしてステップS303に進む。
次に、ステップS303において、AEモードがオンになっているか否かの判定が行われる。AEモードは、撮影時にAE(自動露出制御)処理を行うか否かを指定するモードであり、AEモードがオンであればAE処理を行うことを示し、AEモードがオフであればマニュアル(手動)で露出制御を行うことを示している。AEモードがオンとなっていれば(ステップS303:Yes)ステップS304に進み、ステップS304においてAE処理が行われる。一方、AEモードがオフであれば(ステップS303:No)、そのまま処理を終了する。
図8のフローで示す「撮影設定確定処理」は、「インターバル撮影処理」による最初の画像の取得時に行われる。AFモードがオンの場合、最初の画像の取得時にAF処理が行われてその処理結果が保持される。そして、2枚目以降の画像の取得時には、最初の画像の取得時のAF処理の結果がそのまま用いられる。また、AEモードがオンの場合、最初の画像の取得時にAE処理が行われてその処理結果が保持される。そして、2枚目以降の画像の取得時には、最初の画像の取得時のAE処理の結果がそのまま用いられる。
図9は、CPUブロック1043のインターバル画像ファイル出力手段53により実行される「インターバル画像ファイル出力処理」の処理手順を示すフローチャートである。この図9のフローは、図6のフローから呼び出されるサブルーチンである。
まず、ステップS401において、上述した初期設定において設定された「インターバル画像ファイル出力設定」の項目(図4参照)の設定内容を確認する処理が行われる。「インターバル画像ファイル出力設定」の項目の設定内容が「通常静止画を残す」である場合はステップS402に進み、「合成静止画を残す」である場合はステップS403に進み、「通常動画を残す」である場合はステップS404に進み、「合成動画を残す」である場合はステップS405に進み、「何も残さない」である場合はそのまま処理を終了する。
ステップS402では、第2メモリ領域に格納されているデータ、つまり「インターバル撮影処理」により取得された合成前の画像を静止画ファイルとして出力して、メモリカード80などに保存する処理が行われる。
ステップS403では、第1メモリ領域に格納されているデータ、つまり「比較明合成処理」によりその時点までに生成された合成画像を静止画ファイルとして出力して、メモリカード80などに保存する処理が行われる。
ステップS404では、第2メモリ領域に格納されているデータ、つまり「インターバル撮影処理」により取得された合成前の画像を動画の1コマとする動画ファイルを生成し、メモリカード80などに保存する処理が行われる。この動画ファイルは、「インターバル撮影処理」により新たな画像が取得されるたびに、その画像が動画の1コマとして追加されていく。
ステップS405では、第1メモリ領域に格納されているデータ、つまり「比較明合成処理」によりその時点までに生成された合成画像を動画の1コマとする動画ファイルを生成し、メモリカード80などに保存する処理が行われる。この動画ファイルは、「インターバル撮影処理」により新たな画像が取得されるたびに、その時点までの合成画像が動画の1コマとして追加されていく。
図10は、CPUブロック1043の合成途中画像表示手段55により実行される「合成途中画像表示処理」の処理手順を示すフローチャートである。この図10のフローは、インターバル合成撮影の動作中に、予め定めた第1の操作、例えばレリーズボタン2を1段階目まで押し込む操作(半押し操作)が行われることで開始され、マルチタスクによって図6のフローや図7のフローと並行して動作する。
まず、ステップS501において、合成処理中フラグがセット中であるか否かの判定が行われる。この処理は、合成処理中フラグがクリアされるまで次の処理を待つための処理である。合成処理中フラグがセットされている期間は(ステップS501:Yes)、ポーリング処理が行われる。合成処理中フラグがクリアされると(ステップS501:No)ステップS502に進む。
次に、ステップS502において、合成枚数カウンタが0か否かの判定が行われる。この処理は、合成枚数カウンタが0以外の値になるまで(表示すべき画像が発生するまで)次の処理を待つための処理である。合成枚数カウンタが0の期間は(ステップS502:Yes)、ポーリング処理が行われる。合成枚数カウンタが0以外の値になると(ステップS502:No)ステップS503に進む。
次に、ステップS503において、第1メモリ領域に格納されているデータ、つまり「比較明合成処理」によりその時点までに生成された合成画像を、合成枚数カウンタの値、つまりその合成画像を生成するのに用いた静止画の枚数とともにLCDモニタ12に表示する処理が行われる。
次に、ステップS504において、表示時間が経過したか否かの判定が行われる。表示時間は予め定めた固定の値であってもよいし、ユーザが設定するようにしてもよい。表示時間の経過は、例えば、ステップS503での表示開始時に内部タイマを作動させて、その内部タイマの値を見ればよい。表示時間が経過していない期間は(ステップS504:No)、LCDモニタ12の表示が維持された状態(無処理)とする。表示時間が経過すると(ステップS504:Yes)ステップS505に進む。
ステップS505では、LCDモニタ12の表示を終了させる処理が行われる。
図11は、CPUブロック1043の合成バッファ初期化手段56により実行される「合成バッファ初期化処理」の処理手順を示すフローチャートである。この図11のフローは、インターバル合成撮影の動作中に、予め定めた第2の操作、例えばセルフタイマ/削除スイッチ18を押す操作が行われることで開始され、マルチタスクによって図6のフローや図7のフローと並行して動作する。
まず、ステップS601において、合成処理中フラグがセット中であるか否かの判定が行われる。この処理は、合成処理中フラグがクリアされるまで次の処理を待つための処理である。合成処理中フラグがセットされている期間は(ステップS601:Yes)、ポーリング処理が行われる。合成処理中フラグがクリアされると(ステップS601:No)ステップS602に進む。
ステップS602では、合成枚数カウンタを0に初期化する処理が行われる。この処理によって図7に示したフローのステップS201の分岐がYesとなり、「比較明合成処理」がリセットされることになる。
次に、ステップS603において、上述した初期設定において設定された「合成リセット時ファイル出力設定」の項目(図4参照)の設定内容を確認する処理が行われる。「合成リセット時ファイル出力設定」の項目の設定内容が「リセット前合成画像を残す」である場合はステップS604に進み、「何も残さない」である場合はそのまま処理を終了する。
ステップS604では、第1メモリ領域に格納されているデータ、つまり「比較明合成処理」をリセットする直前までの合成画像を画像ファイルとして出力して、メモリカード80などに保存する処理が行われる。
図12−1〜図12−4は、インターバル合成撮影を実施している間の処理状態を示すタイミングチャートである。本実施形態では、「比較明合成処理」をソフトウェア(プログラム)により実施するため約1秒程度の処理時間がかかるものとしたが、専用のハードウェアを用いて「比較明合成処理」を行うようにすれば、処理時間の短縮を図ることができる。図12−1〜図12−4のタイミングチャートは、上記の「比較明合成処理」の処理時間がほぼ安定な時間であるとして、インターバル時間の設定や、露光時間の設定により、インターバル合成撮影を実施している間の処理状態がどのようになるかを示している。
第2メモリ領域は、上述したように、インターバル撮影処理によって取得される画像が順次格納されるメモリ領域である。図中の「書き込み」と示された期間は、撮像センサであるCCD101から第2メモリ領域への書き込みが行われている。また、図中の「出力可能」と示されている期間は、メモリリード中に値が変化するようなことはないため、メモリリードやファイル出力が可能な期間である。
第1メモリ領域は、上述したように、「比較明合成処理」の結果である合成画像を格納するメモリ領域である。図中の「コピー処理」または「合成処理中」と示された期間は、「比較明合成処理」によりメモリの内容が変更されている可能性がある期間である。また、図中の「出力可能」と示されている期間は、メモリリード中に値が変化するようなことはないため、メモリリードやファイル出力が可能な期間である。
図12−1は、露光時間が比較的長めであり、インターバル時間の設定は、それよりさらに長いような場合におけるタイミングチャートを示している。夜間であり、撮影と撮影の間は空いても構わない、蛍の光を重ねるような表現に向いた設定におけるタイミングチャートである。
図12−2は、露光時間が比較的長めであり、インターバル時間の設定は、撮影可能な最短サイクルよりも短い場合におけるタイミングチャートを示している。夜間であり、撮影と撮影の間を極力短く撮影する、星の光跡を残すような表現に向いた設定におけるタイミングチャートである。
図12−3は、露光時間が比較的短めであり、インターバル時間の設定は、図12−1の例のように長めである場合におけるタイミングチャートを示している。昼間であり、時間的な繋がりを必要としない表現に向いている。
図12−4は、露光時間が比較的短めであり、インターバル時間の設定は、撮影可能な最短サイクルよりも短い場合におけるタイミングチャートを示している。昼間であり、時間的な繋がりを必要としない表現でありながら、図12−3の例よりは速く変化するような事象を1枚の画像として記録することに向いている。
図13−1〜図13−3は、インターバル合成撮影を実施している間に上述した第1の操作(例えばレリーズボタン2の半押し操作)や第2の操作(例えばセルフタイマ/削除スイッチ18の押圧操作)が行われた場合の処理状態を示すタイミングチャートである。
図13−1は、インターバル合成撮影を実施している間に第1の操作(例えばレリーズボタン2の半押し操作)が行われ、「インターバル撮影処理」を停止させることなく図10に示した「合成途中画像表示処理」を行う場合のタイミングチャートである。第1メモリ領域の状態が「出力可能」の状態であるとき、第1の操作を行えば、直ちに第1メモリ領域に格納されているデータ、つまり「比較明合成処理」によりその時点までに生成された合成画像がLCDモニタ12に表示されることを示している。また、第1メモリ領域の状態が「合成処理中」の状態であるとき、第1の操作を行った場合は、合成処理が終わるまで表示が待たされることを示している。
図13−2は、第1メモリ領域の状態が「出力可能」の状態であるとき、第2の操作(例えばセルフタイマ/削除スイッチ18の押圧操作)が行われ、「インターバル撮影処理」を停止させることなく図11に示した「合成バッファ初期化処理」を行う場合のタイミングチャートである。この場合、第2の操作を行うと、直ちに合成枚数カウンタの初期化が行われる。しかし、合成枚数カウンタの初期化後、初めてのコピー処理が完了するまでの間に第1の操作を行っても、表示動作は待たされることを示している。
図13−3は、第1メモリ領域の状態が「合成処理中」の状態であるとき、第2の操作(例えばセルフタイマ/削除スイッチ18の押圧操作)が行われ、「インターバル撮影処理」を停止させることなく図11に示した「合成バッファ初期化処理」を行う場合のタイミングチャートである。この場合、第2の操作を行うと、「比較明合成処理」が終わるまで合成枚数カウンタの初期化処理が待たされる。さらに、合成枚数カウンタの初期化後、初めてのコピー処理が完了するまでの間に第1の操作をおこなっても、表示動作は待たされることを示している。
以上、具体的な例を挙げながら詳細に説明したように、本実施形態に係るデジタルカメラによれば、インターバル撮影処理を行いながら比較明合成処理を行うインターバル合成撮影の機能を備えることで、以下のようなことが行えるようになる。
まず、インターバル撮影処理を継続しながら途中の合成画像をLCDモニタ12に表示できるので、撮影者は、撮影中に仕上がりのイメージを持つことができる。
また、インターバル撮影処理を継続しながら比較明合成処理をリセットでき、また、それまでの比較明合成処理により得られる各画像を保存できるので、撮影中に不要な光(意図せず入り込んだ車のライトや飛行機の光跡)が入り込んだとしても、後に動画像を作成するデータにはそのような光も生かして時間的繋がりを保持しつつ、光跡を残す静止画像としては合成処理を仕切りなおすということが、現場で撮影をしながらにして行うことができる。
また、後に動画像を作成するデータをできるだけ長時間のものとしつつ、同じ撮影データから、ユーザが目視で確認した所望の長さの光跡をもった静止画像を複数枚作成することができる。
また、デジタルカメラの内蔵メモリ120やメモリカード80などの記録媒体の空き容量が少ない場合には合成結果のみを記録し、空き容量に余裕がある場合には全てのインターバル撮影データを残すといった使い分けができる。
また、星の光跡を残すような撮影の場合であれば、星の光跡が徐々に延びていくような動画像を容易に作成するための元データを得ることができる。ヘビーユーザの場合、動画データを作成する前に静止画の微調整を行う傾向が強いが、そのような要望にも耐えられる。
また、PCでの後処理を苦手とするようなユーザでも、長時間にわたる映像を短時間に間引きしたような動画(いわゆる微速度動画)を、デジタルカメラのみで撮影することができる。
また、PCでの後処理を苦手とするユーザでも、星の光跡を残すような撮影の場合であれば、星の光跡が徐々に延びていくような動画像を、デジタルカメラのみで撮影することができる。
また、撮影者は、第1メモリ領域に保持されている合成画像だけでなく、その合成画像が何枚の画像を合成したものであるかを、撮影をしながらに容易に把握できる。
また、一連のインターバル合成撮影を行っている中で、AF機能、AE機能が、意図せず一時的に撮影視野へ入り込んだ被写体に反応し、一連の撮影画像の一部分だけ制御値を変えてしまい、比較明合成処理により得られる静止画や動画に違和感が生じてしまう問題を回避することができる。
なお、本実施形態に係るデジタルカメラにおいて特徴的なインターバル合成撮影の機能は、上述したように、一例としてCPUブロック1043が実行するプログラムにより実現される。インターバル合成撮影の機能を実現するためのプログラムは、例えば、デジタルカメラのROM108などに予め組み込まれて提供される。また、インターバル合成撮影の機能を実現するためのプログラムを、インストール可能な形式または実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disc)などのコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。さらに、インターバル合成撮影の機能を実現するためのプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、インターバル合成撮影の機能を実現するためのプログラムを、インターネット等のネットワーク経由で提供または配布するように構成してもよい。
本実施形態に係るデジタルカメラにおいてインターバル合成撮影の機能を実現するためのプログラムは、上述したインターバル撮影手段51、撮影設定確定手段52、インターバル画像ファイル出力手段53、比較明合成手段54、合成途中画像表示手段55および合成バッファ初期化手段56の各処理機能を含むモジュール構成となっており、実際のハードウェアとしては、CPUブロック1043が上記ROM108からプログラムを読み出して実行することにより、上記各処理機能がメインメモリ(例えばSDRAM103)上にロードされ、上記各処理機能がメインメモリ上に生成されるようになっている。
以上、本発明の具体的な実施の形態について説明したが、本発明は、上述した実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で様々な変形を加えて具体化することができる。つまり、上述したデジタルカメラの構成や動作はあくまで具体的な一例を例示したものであり、用途や目的に応じて様々な変形が可能である。