しかし、背景技術では、第1の指示に応答して取得された画像データの記録が完了しない限り、第2の指示が受け付けられることはなく、レリーズタイムラグの短縮化ひいては撮像性能の向上に限界がある。
それゆえに、この発明の主たる目的は、撮像性能を高めることができる、電子カメラを提供することである。
この発明に従う電子カメラ(10:実施例で相当する参照符号。以下同じ)は、第1ユーザ操作に応答して撮像条件を調整する調整手段(S7, S17)、第1ユーザ操作の後の第2ユーザ操作に応答して撮像手段(16)から電子画像を取得する取得手段(S19, S23)、取得手段によって取得された電子画像を複数の処理を経て記録媒体(44)に記録する記録手段(S61~S63, S67, S71, S75, S93)、複数の処理の合間で第1ユーザ操作が検知されたとき複数の処理の続行を制限する制限手段(S81)、および取得手段の処理に起因する負荷変動の解消が検知されたとき制限手段の制限を解除する解除手段(S13, S27, S85)を備える。
好ましくは、解除手段は取得手段の処理の完了を負荷変動の解消として検知する。
好ましくは、第1ユーザ操作および第2ユーザ操作は共通のボタン(28sh)に対する操作であり、解除手段はボタンに対する操作の解除を負荷変動の解消として検知する。
好ましくは、第1ユーザ操作が検知された時点のバッファメモリ(32c)の空き容量に応じて取得手段の処理を許可/制限する制御手段(S11)がさらに備えられ、解除手段は制御手段による取得手段の処理の制限を負荷変動の解消として検知する。
さらに好ましくは、バッファメモリの空き容量を表す空き容量情報を出力する出力手段(S5, S25, S43)がさらに備えられる。
好ましくは、第1ユーザ操作はシャッタボタン(28sh)の半押し操作に相当し、第2ユーザ操作はシャッタボタンの全押し操作に相当する。
好ましくは、記録手段は、電子画像に符号化処理を施す符号化処理手段(S63, S67, S71, S75)、および符号化処理手段によって作成された符号化画像に記録処理を施す記録処理手段(S93)を含む。
この発明に従う撮像制御プログラムは、電子カメラ(10)のプロセッサ(26)に、第1ユーザ操作に応答して撮像条件を調整する調整ステップ(S7, S17)、第1ユーザ操作の後の第2ユーザ操作に応答して撮像手段(16)から電子画像を取得する取得ステップ(S19, S23)、取得ステップによって取得された電子画像を複数の処理を経て記録媒体に記録する記録ステップ(S61~S63, S67, S71, S75, S93)、複数の処理の合間で第1ユーザ操作が検知されたとき複数の処理の続行を制限する制限ステップ(S81)、および取得ステップの処理に起因する負荷変動の解消が検知されたとき制限ステップの制限を解除する解除ステップ(S13, S27, S85)を実行させるための、撮像制御プログラムである。
この発明に従う撮像制御方法は、電子カメラ(10)によって実行される撮像制御方法であって、第1ユーザ操作に応答して撮像条件を調整する調整ステップ(S7, S17)、第1ユーザ操作の後の第2ユーザ操作に応答して撮像手段(16)から電子画像を取得する取得ステップ(S19, S23)、取得ステップによって取得された電子画像を複数の処理を経て記録媒体に記録する記録ステップ(S61~S63, S67, S71, S75, S93)、複数の処理の合間で第1ユーザ操作が検知されたとき複数の処理の続行を制限する制限ステップ(S81)、および取得ステップの処理に起因する負荷変動の解消が検知されたとき制限ステップの制限を解除する解除ステップ(S13, S27, S85)を備える。
この発明に従う外部制御プログラムは、メモリ(46)に保存された内部制御プログラムに従う処理を実行するプロセッサ(26)を備える電子カメラ(10)に供給される外部制御プログラムであって、第1ユーザ操作に応答して撮像条件を調整する調整ステップ(S7, S17)、第1ユーザ操作の後の第2ユーザ操作に応答して撮像手段(16)から電子画像を取得する取得ステップ(S19, S23)、取得ステップによって取得された電子画像を複数の処理を経て記録媒体に記録する記録ステップ(S61~S63, S67, S71, S75, S93)、複数の処理の合間で第1ユーザ操作が検知されたとき複数の処理の続行を制限する制限ステップ(S81)、および取得ステップの処理に起因する負荷変動の解消が検知されたとき制限ステップの制限を解除する解除ステップ(S13, S27, S85)を内部制御プログラムと協働してプロセッサに実行させるための、外部制御プログラムである。
この発明に従う電子カメラ(10)は、外部制御プログラムを取り込む取り込み手段(48)、および取り込み手段によって取り込まれた外部制御プログラムとメモリ(46)に保存された内部制御プログラムとに従う処理を実行するプロセッサ(26)を備える電子カメラであって、外部制御プログラムは、第1ユーザ操作に応答して撮像条件を調整する調整ステップ(S7, S17)、第1ユーザ操作の後の第2ユーザ操作に応答して撮像手段(16)から電子画像を取得する取得ステップ(S19, S23)、取得ステップによって取得された電子画像を複数の処理を経て記録媒体に記録する記録ステップ(S61~S63, S67, S71, S75, S93)、複数の処理の合間で第1ユーザ操作が検知されたとき複数の処理の続行を制限する制限ステップ(S81)、および取得ステップの処理に起因する負荷変動の解消が検知されたとき制限ステップの制限を解除する解除ステップ(S13, S27, S85)を内部制御プログラムと協働して実行するプログラムに相当する。
撮像条件は、第1ユーザ操作に応答して調整される。また、電子画像は、第2ユーザ操作に応答して撮像手段から取得され、複数の処理を経て記録媒体に記録される。これを踏まえて、複数の処理の合間で第1ユーザ操作が検知されると、複数の処理の続行が制限される。これによって、第2ユーザ操作に対する応答特性が向上する。また、制限は、取得手段の処理に起因する負荷変動の解消が検知されたときに解除される。これによって、電子画像が未記録の状態が継続する事態が回避される。こうして、撮像性能が向上する。
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
以下、この発明の実施の形態を図面を参照しながら説明する。
[基本的構成]
図1を参照して、この実施例の電子カメラは、基本的に次のように構成される。調整手段1は、第1ユーザ操作に応答して撮像条件を調整する。取得手段2は、第1ユーザ操作の後の第2ユーザ操作に応答して撮像手段6から電子画像を取得する。記録手段3は、取得手段2によって取得された電子画像を複数の処理を経て記録媒体7に記録する。制限手段4は、複数の処理の合間で第1ユーザ操作が検知されたとき複数の処理の続行を制限する。解除手段5は、取得手段2の処理に起因する負荷変動の解消が検知されたとき制限手段4の制限を解除する。
撮像条件は、第1ユーザ操作に応答して調整される。また、電子画像は、第2ユーザ操作に応答して撮像手段6から取得され、複数の処理を経て記録媒体7に記録される。これを踏まえて、複数の処理の合間で第1ユーザ操作が検知されると、複数の処理の続行が制限される。これによって、第2ユーザ操作に対する応答特性が向上する。また、制限は、取得手段の処理に起因する負荷変動の解消が検知されたときに解除される。これによって、電子画像が未記録の状態が継続する事態が回避される。こうして、撮像性能が向上する。
[実施例]
図2を参照して、この実施例のディジタルカメラ10は、ドライバ18aおよび18bによってそれぞれ駆動されるフォーカスレンズ12および絞りユニット14を含む。これらの部材を経た光学像は、イメージャ16の撮像面に照射され、光電変換を施される。これによって、光学像に対応する電荷が生成される。
CPU26は、マルチタスクOSの制御の下で、メインタスク,JPEGファイル生成タスクおよびJPEGファイル書き込みタスクを含む複数のタスクを並列的に実行する。なお、これらのタスクに対応する制御プログラムは、フラッシュメモリ46に記憶される。
電源が投入されると、メインタスクはまず、動画取り込みの開始をドライバ18c,前処理回路20および後処理回路34に命令し、動画表示の開始をLCDドライバ36に命令する。ドライバ18cは、図示しないSG(Signal Generator)から周期的に発生する垂直同期信号Vsyncに応答して、撮像面を露光し、かつ撮像面で生成された電荷をラスタ走査態様で読み出す。イメージャ16からは、読み出された電荷に基づく生画像データが周期的に出力される。
前処理回路20は、イメージャ16から出力された生画像データにディジタルクランプ,画素欠陥補正,ゲイン制御などの処理を施す。これらの処理を施された生画像データは、メモリ制御回路30を通してSDRAM32の表示用生画像エリア32a(図3参照)に書き込まれる。
後処理回路34は、表示用生画像エリア32aに格納された生画像データをメモリ制御回路30を通して読み出し、読み出された生画像データに色分離処理,白バランス調整処理およびYUV変換処理を施す。これによって生成されたYUV形式の画像データは、メモリ制御回路30によってSDRAM32の表示用YUV画像エリア32b(図3参照)に書き込まれる。
LCDドライバ36は、表示用YUV画像エリア32bに格納された画像データをメモリ制御回路30を通して繰り返し読み出し、読み出された画像データに基づいてLCDモニタ38を駆動する。この結果、撮像面で捉えられたシーンを表すリアルタイム動画像(スルー画像)がモニタ画面に表示される。
図3に示す記録用生画像エリア32cは、キー入力装置28に設けられたシャッタボタン28shが全押しされた時点のシーンを表す生画像データを格納するためのエリアに相当する。メインタスクは、記録用生画像エリア32cの空き容量に基づいて撮影可能枚数を算出し、算出された撮影可能枚数をLCDドライバ36に設定する。撮影可能枚数は、LCDドライバ36によってLCDモニタ38に多重表示される。
図4を参照して、撮像面の中央には評価エリアEVAが割り当てられる。評価エリアEVAは水平方向および垂直方向の各々において16分割され、256個の分割エリアが評価エリアEVAを形成する。また、図2に示す前処理回路20は、上述した処理に加えて、生画像データを簡易的にYデータに変換する簡易Y変換処理を実行する。
AE評価回路22は、前処理回路20によって生成されたYデータのうち評価エリアEVAに属するYデータを、垂直同期信号Vsyncが発生する毎に積分する。これによって、256個の積分値つまり256個のAE評価値が、垂直同期信号Vsyncに応答してAE評価回路22から出力される。AF評価回路24は、前処理回路20によって生成されたYデータのうち評価エリアEVAに属するYデータの高周波成分を、垂直同期信号Vsyncが発生する毎に積分する。これによって、256個の積分値つまり256個のAF評価値が、垂直同期信号Vsyncに応答してAF評価回路24から出力される。
シャッタボタン28shが非操作状態にあるとき、メインタスクは、AE評価回路22から出力された256個のAE評価値に基づいて簡易AE処理を実行し、適正EV値を算出する。算出された適正EV値を定義する絞り量および露光時間は、ドライバ18bおよび18cに設定される。これによって、スルー画像の明るさが適正値を示すように露光量が調整される。
記録用生画像エリア32cの空き容量が基準値を上回る状態でシャッタボタン28shが半押しされると、メインタスクは、AE評価回路22から出力された256個のAE評価値に基づいて厳格AE処理を実行する。これによって最適EV値が算出され、算出された最適EV値を定義する絞り量および露光時間もまたドライバ18bおよび18cに設定される。この結果、スルー画像の明るさが最適値を示すように露光量が調整される。
メインタスクはまた、AF評価回路24から出力された256個のAF評価値に基づいて、AF処理を実行する。フォーカスレンズ12は合焦点の探索のためにドライバ18aによって光軸方向に移動し、これによって発見された合焦点に配置される。この結果、スルー画像の鮮鋭度が最適値を示すようにフォーカスが調整される。
シャッタボタン28shが全押しされると、メインタスクは、RAW取り込み処理の実行をメモリ制御回路30に命令し、LCDドライバ36に設定された撮影可能枚数をディクリメントする。表示用生画像エリア32aに格納された最新1フレームの生画像データは、メモリ制御回路30によって記録用生画像エリア32cに退避される。また、モニタ38に表示された撮影可能枚数は、LCDドライバ36の設定の更新によってディクリメントされる。
メインタスクはその後、JPEGファイル生成タスクおよびJPEGファイル書き込みタスクに向けて同期信号SY_Pを発行し、バッファ解放処理を実行する。なお、同期信号SY_Pの発行およびバッファ解放処理は、記録用生画像エリア32cの空き容量が基準値以下の状態でシャッタボタン28shが半押しされたときにも実行され、さらにシャッタボタン28shが全押しされることなく解除されたときにも実行される。
バッファ解放処理では、まず記録用生画像エリア32cの状態が判別される。記録用生画像エリア32cが完全に空き状態であれば、メインタスクは速やかにバッファ解放処理を終了する。これに対して、記録用生画像エリア32cに未処理の生画像データが残っていれば、メインタスクは、未処理の生画像データの格納状況が記述された撮影情報メールをJPEGファイル生成タスクに向けて送信し、JPEGファイル生成タスクを起動する。なお、JPEGファイル生成タスクが起動済みであれば、これらの処理は省略される。
起動されたJPEGファイル生成タスクはまず、記録用生画像エリア32cに格納された未処理の生画像データのうち最古のフレームの生画像データを、メインタスクから送信された撮影情報メールを参照して特定する。JPEGファイル生成タスクは続いて、特定された生画像データにRAW−YUV変換処理を実行するべく、対応する命令を後処理回路34に与える。
後処理回路34は、指定フレームの生画像データをメモリ制御回路30を通して追加的に読み出し、読み出された生画像データに色分離処理,白バランス調整処理,YUV変換処理およびズーム処理を施してYUV形式の主画像データおよびサムネイル画像データを作成し、そして作成された主画像データおよびサムネイル画像データをメモリ制御回路30を通して主画像エリア32dおよびサムネイル画像エリア32e(図3参照)に書き込む。
JPEGファイル生成タスクはその後、主画像データのJPEG圧縮をJPEGエンコーダ40に命令し、さらにサムネイル画像データのJPEG圧縮をJPEGエンコーダ40に命令する。JPEGエンコーダ40は、主画像エリア32dに格納された主画像データをメモリ制御回路32dを通して読み出し、読み出された主画像データにJPEG圧縮を施して圧縮主画像データを作成し、そして作成された圧縮主画像データをメモリ制御回路30を通して主画像エリア32dに戻す。
JPEGエンコーダ40はまた、サムネイル画像エリア32eに格納されたサムネイル画像データをメモリ制御回路32dを通して読み出し、読み出されたサムネイル画像データにJPEG圧縮を施して圧縮サムネイル画像データを作成し、そして作成された圧縮サムネイル画像データをメモリ制御回路30を通してサムネイル画像エリア32eに戻す。
JPEGファイル生成タスクはさらに、JPEGファイルの生成をメモリ制御回路30に命令する。メモリ制御回路30は、主画像エリア32dおよびサムネイル画像エリア32eに格納された圧縮主画像データおよび圧縮サムネイル画像データを含むJPEGファイルを生成し、生成されたJPEGファイルをJPEGファイルエリア32f(図3参照)に書き込む。JPEGファイルが完成すると、JPEGファイル生成タスクは、同期信号SY_Cをメインタスクに向けて発行する。JPEGファイル生成タスクは、同期信号SY_Cの発行の後に終了される。
JPEGファイル生成タスクはまた、上述の一連の処理の合間で撮影割り込み受信処理を実行する。この処理ではまず、シャッタボタン28shの操作状態が判別される。シャッタボタン28shが半押し状態でなければ、JPEGファイル生成タスクは、撮影割り込み受信処理を速やかに終了する。これに対して、シャッタボタン28shが半押し状態であれば、JPEGファイル生成タスクは、中断信号をメインタスクに向けて発行し、メインタスクによる同期信号SY_Pの発行を待つ。撮影割り込み受信処理は、メインタスクから発行された同期信号SY_Pに応答して終了される。
JPEGファイル生成タスクから中断信号が発行されると、メインタスクはこの時点でバッファ解放処理を終了する。これに対して、JPEGファイル生成タスクから同期信号SY_Cが発行されると、メインタスクは、LCDドライバ36に設定された撮影可能枚数をディクリメントする。この結果、LCDモニタ38に表示された撮影可能枚数もまたディクリメントされる。
メインタスクは続いて、JPEGファイルエリア32cにおけるJPEGファイルの格納状況が記述されたファイル情報メールをJPEGファイル書き込みタスクに向けて送信し、JPEGファイル書き込みタスクを起動する。なお、JPEGファイル書き込みタスクが起動済みであれば、これらの処理は省略される。
起動したJPEGファイル書き込みタスクはまず、JPEGファイルエリア32fに格納された未処理のJPEGファイルのうち最古のJPEGファイルを、メインタスクから送信されたファイル情報メールを参照して特定する。JPEGファイル書き込みタスクは続いて、特定されたJPEGファイルの一部を形成するファイルデータの転送をメモリ制御回路30およびメモリI/F42に命令する。メモリ制御回路30は所望のファイルデータをJPEGファイルエリア32fから読み出し、メモリI/F42は読み出されたファイルデータを記録媒体44に書き込む。
ファイルデータの転送の繰り返しによって所望のJPEGファイルの記録媒体44への書き込みが完了すると、JPEGファイル書き込みタスクは、同期信号SY_Wをメインタスクに向けて発行する。JPEGファイル書き込みタスクは、同期信号SY_Wの発行に終了される。
JPEGファイル書き込みタスクはまた、ファイルデータの転送の合間で撮影割り込み受信処理を実行する。上述と同様、まずシャッタボタン28shの操作状態が判別される。シャッタボタン28shが半押し状態でなければ、JPEGファイル書き込みタスクは、撮影割り込み受信処理を速やかに終了する。これに対して、シャッタボタン28shが半押し状態であれば、JPEGファイル書き込みタスクは、中断信号をメインタスクに向けて発行し、メインタスクによる同期信号SY_Pの発行を待つ。撮影割り込み受信処理は、同期信号SY_Pの発行に応答して終了される。
JPEGファイル書き込みタスクから中断信号が発行されれば、メインタスクはこの時点でバッファ解放処理を終了する。これに対して、JPEGファイル書き込みタスクから同期信号SY_Wが発行されれば、メインタスクは、記録用生画像エリア32cの状態に応じて異なる処理を実行する。つまり、メインタスクは、記録用生画像エリア32cが完全に空き状態であるときにバッファ解放処理を終了する一方、記録用生画像エリア32cに未処理の生画像データが残っているときに上述の処理を再度実行する。
シャッタボタン28shの全押しが1回だけ実行されたとき、同期信号SY_P,SY_CおよびSY_W,撮影情報メールおよびファイル情報メールは、図5に示す要領でやり取りされる。
まず、シャッタボタン28shの全押しに応答して、同期信号SY_PがメインタスクからJPEGファイル生成タスクおよびJPEGファイル書き込みタスクに向けて発行される。また、同期信号SY_Pの発行後に、撮影情報メールがメインタスクからJPEGファイル生成タスクに送信される。
JPEGファイル生成タスクは、撮影情報メールに基づいてJPEGファイルを生成し、その後に同期信号SY_Cをメインタスクに向けて発行する。ファイル情報メールは、同期信号SY_Cに応答してメインタスクからJPEG書き込みタスクに送信される。JPEGファイル書き込みタスクは、ファイル情報メールに基づいてJPEGファイルを記録媒体44に書き込み、その後に同期信号SY_Wをメインタスクに向けて発行する。
シャッタボタン28shの全押しの後にシャッタボタン28shが半押しされたとき、同期信号SY_P,SY_CおよびSY_W,撮影情報メールおよびファイル情報メールは、図6または図7に示す要領でやり取りされる。図6に示すやり取りは、撮影情報メールの送信直後にシャッタボタン28shが半押しされた場合に実行される。また、図7に示すやり取りは、ファイル情報メールの送信直後にシャッタボタン28shが半押しされた場合に実行される。
図6によれば、シャッタボタン28shの半押しに応答して、JPEGファイル生成タスクからメインタスクに中断信号が与えられる。メインタスクによるバッファ解放処理はこの中断信号に応答して終了される。メインタスクは、シャッタボタン28shの全押しに応答したRAW取り込み処理の完了したとき、或いは全押しを経ることなくシャッタボタン28shの操作が解除されたときに、同期信号SY_Pを発行する。JPEGファイルを生成する処理は、同期信号SY_Pに応答して再開される。
図7によれば、シャッタボタン28shの半押しに応答して、JPEGファイル書き込みタスクからメインタスクに中断信号が与えられる。メインタスクによるバッファ解放処理はこの中断信号に応答して終了される。メインタスクは、シャッタボタン28shの全押しに応答したRAW取り込み処理の完了したとき、或いは全押しを経ることなくシャッタボタン28shの操作が解除されたときに、同期信号SY_Pを発行する。JPEGファイルを書き込む処理は、同期信号SY_Pに応答して再開される。
メインタスクは図8〜図9に示すように構成され、JPEGファイル生成タスクは図12に示すように構成され、そしてJPEGファイル書き込みタスクは図14に示すように構成される。なお、図10〜図11に示すサブルーチンは、メインタスクによって実行される。また、図13に示すサブルーチンは、JPEGファイル生成タスクおよびJPEGファイル書き込みタスクの各々によって実行される。
図8を参照して、ステップS1では動画取り込みを開始し、ステップS3では動画表示を開始する。ステップS1の処理の結果、撮像面で捉えられたシーンを表す生画像データがイメージャ16から出力され、これに対応するYUV形式の画像データが後処理回路34から出力される。また、ステップS3の処理の結果、後処理回路34から出力された画像データに基づくスルー画像がLCDモニタ38に表示される。
ステップS5では、記録用生画像エリア32cの空き容量に基づいて撮影可能枚数を算出し、算出された撮影可能枚数をLCDドライバ36に与える。この結果、撮影可能枚数がLCDドライバ36によってLCDモニタ38に多重表示される。
ステップS7ではシャッタボタン28shが半押しされたか否かを判別し、判別結果がNOである限り、ステップS9で簡易AE処理を繰り返す。この結果、スルー画像の明るさが適正値を示すように、露光量が調整される。
ステップS7の判別結果がNOからYESに更新されると、記録用生画像エリア32cが満杯であるか否か(=記録用生画像エリア32cの空き容量が基準値以下であるか否か)をステップS11で判別する。判別結果がYESであればステップS13に進み、JPEGファイル生成タスクおよびJPEGファイル書き込みタスクに向けて同期信号SY_Pを発行する。ステップS15ではバッファ解放処理を実行し、その後にステップS7に戻る。
ステップS11の判別結果がNOであれば、ステップS17で厳格AE処理およびAF処理を実行する。この結果、スルー画像の明るさおよび鮮鋭度が最適値を示すように、露光量およびフォーカスが調整される。
ステップS19ではシャッタボタン28shが全押しされたか否かを判別し、ステップS21ではシャッタボタン28shの操作が解除されたか否かを判別する。ステップS21の判別結果がYESであれば、そのままステップS27に進む。これに対して、ステップS19の判別結果がYESであれば、ステップS23でRAW取り込み処理を実行し、ステップS25で撮影可能枚数を更新してから、ステップS27に進む。
ステップS23の処理の結果、最新1フレームの生画像データが表示用生画像エリア32aから記録用生画像エリア32cに退避される。また、ステップS25の処理の結果、LCDモニタ38に表示された撮影可能枚数がディクリメントされる。
ステップS27ではJPEGファイル生成タスクおよびJPEGファイル書き込みタスクに向けて同期信号SY_Pを発行し、ステップS29ではバッファ解放処理を実行する。バッファ解放処理が完了すると、ステップS7に戻る。
ステップS15またはS29のバッファ解放処理は、図10〜図11に示すサブルーチンに従って実行される。まず、記録用生画像エリア32cが解放されているか否か(=記録用生画像エリア32cが完全に空き状態であるか否か)をステップS31で判別する。判別結果がYESであれば上階層のルーチンに復帰し、判別結果がNOであればJPEGファイル作成タスクが起動中であるか否かをステップS33で判別する。判別結果がYESであればステップS39に進み、判別結果がNOであればステップS35に進む。
ステップS35では、記録用生画像エリア32cに残存する未処理の生画像データの格納状況が記述されたメールを撮影情報メールとして作成し、作成された撮影情報メールをJPEGファイル生成タスクに向けて送信する。送信が完了すると、ステップS37でJPEGファイル生成タスクを起動し、その後にステップS39に進む。
ステップS39ではJPEGファイル生成タスクから同期信号SY_Cが発行されたか否かを判別し、ステップS41ではJPEGファイル生成タスクから中断信号が発行されたか否かを判別する。ステップS41の判別結果がYESであれば、上階層のルーチンに復帰する。一方、ステップS39の判別結果がYESであれば、ステップS43で撮影可能枚数を更新する。LCDモニタ38に表示された撮影可能枚数は、ステップS41の処理によってディクリメントされる。
ステップS43の処理が完了すると、JPEGファイル書き込みタスクが起動中であるか否かをステップS45で判別する。判別結果がYESであればステップS51に進み、判別結果がNOであればステップS47に進む。ステップS47では、JPEGファイルエリア32cにおけるJPEGファイルの格納状況が記述されたメールをファイル情報メールとして作成し、作成されたファイル情報メールをJPEGファイル書き込みタスクに向けて送信する。送信が完了すると、ステップS49でJPEGファイル書き込みタスクを起動し、その後にステップS51に進む。
ステップS51ではJPEGファイル書き込みタスクから同期信号SY_Wが発行されたか否かを判別し、ステップS53ではJPEGファイル書き込みタスクから中断信号が発行されたか否かを判別する。ステップS53の判別結果がYESであれば上階層のルーチンに復帰し、ステップS51の判別結果がYESであればステップS31に戻る。
図12を参照して、ステップS61では、記録用生画像エリア32cに格納された未処理の生画像データのうち最古のフレームの生画像データを、上述のステップS35で送信された撮影情報メールを参照して特定する。ステップS63では、特定された生画像データにRAW−YUV変換処理を実行するべく、対応する命令を後処理回路34に与える。後処理回路34は、指定フレームの生画像データをメモリ制御回路30を通して追加的に読み出し、読み出された生画像データをYUV形式の主画像データおよびサムネイル画像データに変換し、そして変換された主画像データおよびサムネイル画像データをメモリ制御回路30を通して主画像エリア32dおよびサムネイル画像エリア32eに書き込む。
ステップS65では撮影割り込み受信処理を実行し、ステップS67では主画像データのJPEG圧縮をJPEGエンコーダ40に命令する。JPEGエンコーダ40は、主画像エリア32dに格納された主画像データをメモリ制御回路32dを通して読み出し、読み出された主画像データにJPEG圧縮を施して圧縮主画像データを作成し、そして作成された圧縮主画像データをメモリ制御回路30を通して主画像エリア32dに戻す。
ステップS69では撮影割り込み受信処理を実行し、ステップS71ではサムネイル画像データのJPEG圧縮をJPEGエンコーダ40に命令する。JPEGエンコーダ40は、サムネイル画像エリア32eに格納されたサムネイル画像データをメモリ制御回路32dを通して読み出し、読み出されたサムネイル画像データにJPEG圧縮を施して圧縮サムネイル画像データを作成し、そして作成された圧縮サムネイル画像データをメモリ制御回路30を通してサムネイル画像エリア32eに戻す。
ステップS73では撮影割り込み受信処理を実行し、ステップS75ではJPEGファイルの生成をメモリ制御回路30に命令する。メモリ制御回路30は、主画像エリア32dおよびサムネイル画像エリア32eに格納された圧縮主画像データおよび圧縮サムネイル画像データを含むJPEGファイルを生成し、生成されたJPEGファイルをJPEGファイルエリア32fに書き込む。ステップS77では、同期信号SY_Cをメインタスクに向けて発行する。JPEGファイル生成タスクは、ステップS77の処理の後に終了される。
ステップS65,S69およびS73の各々の撮影割り込み受信処理は、図13に示すサブルーチンに従って実行される。まずシャッタボタン28shが半押しされたか否かをステップS81で判別する。判別結果がNOであれば上階層のルーチンに復帰し、判別結果がYESであればステップS83で中断信号をメインタスクに向けて発行する。ステップS85では、同期信号SY_Pがメインタスクから発行されたか否かを繰り返し判別する。判別結果がNOからYESに更新されると、上階層のルーチンに復帰する。
図14を参照して、ステップS91では、JPEGファイルエリア32fに格納された未処理のJPEGファイルのうち最古のJPEGファイルを、上述のステップS47で送信されたファイル情報メールを参照して特定する。ステップS93では、特定されたJPEGファイルの一部を形成するファイルデータの転送をメモリ制御回路30およびメモリI/F42に命令する。メモリ制御回路30は所望のファイルデータをJPEGファイルエリア32fから読み出し、メモリI/F42は読み出されたファイルデータを記録媒体44に書き込む。
ステップS95では、図13に示すサブルーチンに従う撮影割り込み受信処理を実行する。ステップS97では、ステップS91で特定されたJPEGファイルの書き込みが完了したか否かを判別する。判別結果がNOであればステップS93に戻り、判別結果がYESであればステップS99で同期信号SY_Wをメインタスクに向けて発行する。JPEGファイル書き込みタスクは、ステップS99の処理の後に終了される。
以上の説明から分かるように、CPU26は、マルチタスクOSの制御の下で、メインタスク,JPEGファイル生成タスクおよびJPEGファイル書き込みタスクを並列的に実行する。メインタスクは、シャッタボタン28shの半押しに応答して厳格AE処理およびAF処理を実行し(S7, S17)、シャッタボタン28shの全押しに応答してイメージャ16から生画像データを取得する(S19, S23)。JPEGファイル生成タスクおよびJPEGファイル書き込みタスクは、取得された生画像データに基づいてYUV形式の主画像データおよびサムネイル画像データを作成し、作成された主画像データおよびサムネイル画像データを収めた画像ファイルを記録媒体44に記録する(S61~S63, S67, S71, S75, S93)。JPEGファイル生成タスクおよびJPEGファイル書き込みタスクはまた、このような処理の合間でシャッタボタン28shの半押しを検知したときに処理の続行を制限し(S81)、生画像データを取得する処理に起因する負荷変動の解消が検知されたときに制限を解除する(S13, S27, S85)。
露光量,フォーカスなどの撮像条件は、シャッタボタン28shの半押しに応答して調整される。また、生画像データは、シャッタボタン28shの全押しに応答してイメージャ16から取得され、複数の処理を経て画像ファイルとして記録媒体44に記録される。これを踏まえて、複数の処理の合間でシャッタボタン28shの半押しが検知されると、複数の処理の続行が制限される。これによって、シャッタボタン28shの半押しに対する応答特性が向上する。また、制限は、生画像データの取得に起因する負荷変動の解消が検知されたときに解除される。これによって、取得された生画像データの未記録状態が継続する事態が回避される。こうして、撮像性能が向上する。
なお、この実施例では、マルチタスクOSおよびこれによって実行される複数のタスクに相当する制御プログラムは、フラッシュメモリ46に予め記憶される。しかし、図15に示すように通信I/F48をディジタルカメラ10に設け、一部の制御プログラムを内部制御プログラムとしてフラッシュメモリ46に当初から準備する一方、他の一部の制御プログラムを外部制御プログラムとして外部サーバから取得するようにしてもよい。この場合、上述の動作は、内部制御プログラムおよび外部制御プログラムの協働によって実現される。
また、この実施例では、CPU26によって実行される処理を上述の要領で複数のタスクに区分するようにしている。しかし、各々のタスクをさらに複数の小タスクに区分してもよく、さらには区分された複数の小タスクの一部を他のタスクに統合するようにしてもよい。また、各々のタスクを複数の小タスクに区分する場合、その全部または一部を外部サーバから取得するようにしてもよい。