以下、本発明に係る電子カメラ及び画像処理装置の実施形態について図面を用いて詳しく説明する。尚、以下の実施形態では、本発明に係る画像処理装置が搭載された電子カメラの例を挙げて説明するが、撮影済みの画像を入力して画像処理を行うパソコンのプログラムや単体の画像処理装置であっても構わない。
[電子カメラ101の構成例]
図1は電子カメラ101の構成例を示すブロック図である。図1において、電子カメラ101は、撮像部102と、画像バッファ103と、画像処理部104と、制御部105と、メモリカードIF(インターフェース)106と、表示部107と、操作部108と、不揮発性メモリ109とで構成される。
撮像部102は、光学レンズ、撮像素子、A/D変換器などを有する。撮像部102は、光学レンズにより撮像素子の受光面に結像される被写体像を光量に応じた電気信号に変換し、A/D変換器でデジタルの画像データに変換して画像バッファ103に取り込む。尚、撮像素子は、行列状に配置された複数の画素(例えば1600万画素)で構成され、各画素にはRGB3色のいずれか1色のカラーフィルタがベイヤー配列で配置されている。そして、撮影毎に各画素からRGBのいずれかの色成分のRAWデータ(撮像素子が出力する加工されていない生の画像データ)が読み出され、画像バッファ103に取り込まれる。
ここで、RAWデータは、各画素に1つの色成分の情報しか持たないので、一般的なカメラでは、RAWデータを各画素にRGB3色の情報を有するRGBデータやYCbCrデータなどの輝度/色差データに変換する色補間処理を行っている。尚、本実施形態に係る電子カメラ101では、色補間処理、ホワイトバランス処理、ガンマ補正処理、輪郭強調処理などを行う画像処理をデジタル現像処理と称する。また、デジタル現像処理が施された後、メモリカード106aに保存するためにJPEG規格などによる画像圧縮処理が行われる。ここで、以降の説明において、デジタル現像処理および画像圧縮処理を含めて現像処理と記載するが、画像圧縮処理を行わずにRGBデータやYCbCrデータの画像をメモリカード106aに保存するようにしてもよい。
画像バッファ103は、高速で読み書きが可能なSDRAM(Synchronous Dynamic Random Access Memory)などが用いられ、撮影画像を一時的に記憶する。また、画像バッファ103は、画像処理部104や制御部105により、現像処理を行う際に一時的に処理結果を記憶するためのバッファメモリとしても使用される。尚、画像バッファ103に記憶される情報については後で詳しく説明する。
画像処理部104は、撮像部102で撮像されたRAWデータの画像に現像処理を行う。ここで、本実施形態に係る電子カメラ101では、本撮影された高解像度(1600万画素程度)のフルサイズ画像と、表示部107などに表示するための低解像度(640×480画素程度)のサムネイル画像とに対して、それぞれ現像処理が行われる。尚、画像処理部104の詳細な構成については後で詳しく説明する。
制御部105は、CPU(Central Processing Unit)、インターフェース回路などで
構成され、不揮発性メモリ109に予め記憶されたプログラムコードに従って動作する。例えば制御部105は、撮像部102の露光時間の制御や撮影後の画像データを画像バッファ103に読み出す時のタイミングなどを制御する。また、制御部105は、操作部108から入力する操作情報に基づいて、電源のオンオフや動作モードの設定、或いは撮像部102への撮影指示、画像処理部104への画像処理の指示などを行う。さらに、制御部105は、表示部107への撮影画像の表示や操作メニューの表示などを行う。
メモリカードIF106は、メモリカード106aを接続するためのインターフェース回路である。制御部105は、メモリカードIF106を介してメモリカード106aへの画像ファイルの書き込みや読み出しを行う。
表示部107は、液晶モニタなどが用いられ、制御部105が出力する画像や操作メニューが表示される。尚、表示部107に表示される画像は、640×480画素程度のサムネイル画像である。
操作部108は、電源をON/OFFするための電源ボタン、撮影指示を行うためのレリーズボタン、撮影モードを選択するための選択ダイヤル、などの操作部材を有する。そして、操作部108は、これらの操作部材が操作された場合の操作情報を制御部105に出力する。本実施形態に係る電子カメラ101では、選択ダイヤルで連写モードを選択する場合の処理に特徴がある。連写モードは、複数枚の画像を時間的に連続して撮影する撮影モードで、例えば1600万画素の画像が1秒間に10枚撮影することができる。
不揮発性メモリ109は、電源OFF時でも記憶内容を保持可能な不揮発性のメモリが用いられる。不揮発性メモリ109は、制御部105のプログラムコードや動作に必要なパラメータ、操作メニューで設定された設定内容が記憶される。例えば、撮影する画像の画素数や感度、連写モードの撮影枚数などが設定される。尚、不揮発性メモリ109は、メモリカード106aと同様に、撮影された画像の画像ファイルも記憶することができる。
ここで、図1において、本実施形態に係る電子カメラ101では、画像処理部104と制御部105とは、画像処理モジュール151として一体化されている。
以上が電子カメラ101の構成および基本動作である。尚、電子カメラ101ではなく、本発明に係る単体の画像処理装置を構成する場合は、図1において、撮像部102を取り除いた装置とし、制御部105(画像処理装置の制御部に相当)が撮影済みの未現像の画像ファイルをメモリカード106aから画像バッファ103に読み出して、画像処理部104により現像処理が実行される。或いは、本実施形態で説明する画像処理モジュール151により行われる一連の画像処理をパソコン(パーソナルコンピュータ)上で動作可能なアプリケーションプログラムとして提供してもよい。
次に、画像処理部104と制御部105とを有する画像処理モジュール151の詳細な構成および動作について説明する。
ここで、先に説明したように、連写モードでは、例えば1600万画素のフルサイズ画像を1秒間に10枚撮影するので、次の画像が画像バッファ103に取り込まれる前に現像処理を終了するには、単純計算で1/10秒間に1枚のフルサイズ画像に対する現像処理を行う必要がある。但し、画像処理モジュール151の現像処理能力(現像処理枚数/秒)が連写能力(撮影枚数/秒)を上回るのは理想的な場合で、民生用のカメラでは現像処理能力は連写能力より低い場合が多い。このため、撮影終了後に現像処理を行うための時間が必要になる。また、連写モードでなくとも高解像度の画像を複数回連続して撮影する場合などにおいて、次の画像を撮影するレスポンスが遅くなるという問題が生じる。
そこで、本実施形態に係る電子カメラ101は、連写時に撮影される画像を評価して、評価結果に基づいて現像処理を行うか行わないかを判定し、現像処理を行わなかった画像については撮影後に現像する。これにより、高解像度の画像を連写した場合でもレスポンスが低下することなく、撮影することができる。
尚、サムネイル画像も同時に現像処理されるが、サムネイル画像は低解像度なので処理時間は小さく、ここではサムネイル画像の処理時間を省略して説明する。また、本実施形態に係る電子カメラ101では、撮影された全てのサムネイル画像について現像処理を行う。
[現像処理を行うか否かの判定処理]
図2は、図1の画像処理モジュール151で行われる処理の一部と、画像バッファ103に一時的に保持される情報の一部とを示した図である。画像処理モジュール151は、図2の処理により、連写時に、フルサイズ画像に対して現像処理を行うか否かを判定する。本実施形態に係る電子カメラ101は、時間的に連続する画像フレーム間の変化が少ない時、各画像フレームが失敗画像である時、これらのいずれかに該当する場合は、基本的に現像処理を行わない。例えば、変化が少ないか否かの判別は、動きベクトルの大きさや明るさの変化などにより行うことができる。また、失敗画像であるか否かの判別は、例えば、顔検出して目を閉じているか否か、ブレの大きさ、フォーカスずれ、露出の過不足、などにより行うことができる。
図2の例では、画像処理モジュール151は、時間的に連続する画像フレーム間の変化を動きベクトルの大きさや明るさの変化により判定し、失敗写真であるか否かは顔検出して目を閉じているか否かにより判定する。
図2において、画像処理部104は、センサ補正処理201と、評価用画像生成処理202と、動き検出処理203と、顔検出処理204とを有する。また、画像バッファ103には、動き検出用画像301と、動き検出結果302と、顔検出用画像303と、顔検出結果304と、明るさ検出用画像305とが一時的に保持される。さらに、制御部105は、評価判定処理205を有する。
センサ補正処理201は、撮像部102により画像バッファ103に取り込まれたRAWデータの画像を読み出して、補正処理を行う。補正処理は、例えば撮像素子の画素不良などによる欠陥画素の補間処理や、画素回路や読み出し回路などのばらつきなどによるシェーディング補正処理、光学系の特性による周辺減光補正処理、などである。尚、図2では、センサ補正処理201が処理した補正後のRAWデータの画像を直接、評価用画像生成処理202に出力しているが、画像バッファ103に一時的に保持するようにしてもよい。
ここで、撮像部102が出力するRAWデータの画像と、センサ補正処理201が処理した補正後のRAWデータの画像とは厳密には異なるが、本実施形態では、色補間処理などの現像処理が行われていないベイヤー配列の画像データをRAWデータと称する。また、RAWデータの画像は、適宜、省略してRAW画像とも称する。
評価用画像生成処理202は、現像処理を行うか否かの評価を行うための前処理を行う。先に説明したように、本実施形態に係る電子カメラ101では、現像処理を行うか否かの評価として、例えば動き検出、顔検出、明るさ検出を行う。そこで、評価用画像生成処理202は、動き検出に適した画像を生成して、画像バッファ103に一時的に記憶する(動き検出用画像301)。例えば、動き検出用画像301は、動き検出のためのブロックマッチング処理が行い易いようなブロックサイズに変換された画像である。また、評価用画像生成処理202は、顔検出に適した画像を生成して、画像バッファ103に一時的に記憶する(顔検出用画像303)。例えば、顔検出用画像303は、顔検出のためのテンプレートマッチング処理を行い易いようにエッジ強調された画像である。さらに、評価用画像生成処理202は、明るさの変化を検出するのに適した画像を生成して、画像バッファ103に一時的に記憶する(明るさ検出用画像305)。ここで、明るさ検出用画像305は、時間的に連続する2つの画像の明るさの変化を判別し易いように、例えば、画面を大きなブロックに分けて各ブロック毎に画素値を平均化した画像が用いられる。
動き検出処理203は、画像バッファ103に作成された動き検出用画像301から動きベクトルを求め、求めた動きベクトルの大きさを画像バッファ103に一時的に記憶する(動き検出結果302)。尚、動きベクトルは、時間的に連続する2つの画像を用いて、ブロックマッチングなどの一般的な手法により求めることができる。
顔検出処理204は、画像バッファ103に作成された顔検出用画像303から顔が写っているか否かを検出する。そして、顔が写っている場合は、目を閉じているか否かを検出し、顔の有無と目を閉じているか否かを画像バッファ103に一時的に記憶する(顔検出結果304)。尚、顔検出は、例えば顔の輪郭と目および鼻の位置をテンプレートマッチングで検出する一般的な手法により行うことができる。
評価判定処理205は、画像バッファ103に一時的に記憶されている動き検出結果302および顔検出結果304と、明るさ検出用画像305とを用いて、フルサイズ画像の現像処理を行うか否かの評価および判定を行う。ここで、評価判定処理205は、明るさ検出用画像305として一時的に記憶されている時間的に連続する2つの画像の差分を求めて明るさの変化を比較する処理を行う。また、図2では、制御部105で明るさの変化を比較する処理を行うようにしたが、画像処理部104で行うようにしてもよい。或いは、明るさの変化の比較結果を画像バッファ103に明るさ検出結果として一時的に記憶するようにしてもよい。ここでは、動き検出処理および顔検出処理に比べて明るさの変化の検出処理は軽いので、画像処理専用の画像処理部104ではなく制御部105で行っている。
そして、評価判定処理205は、動きベクトルの大きさが予め設定した閾値未満の場合、目を閉じている場合、明るさの変化が予め設定した閾値未満の場合、の3つの評価結果を総合的に判断して、フルサイズ画像の現像処理を行うか否かの判定を行う。
ここで、上記の3つの評価結果を総合的に判断する方法として、例えば3つの評価条件を全てを満たしている場合に、評価判定処理205は、現フレームの画像の現像処理を行わないように制御する。尚、現フレームの画像とは、最新のフレームの画像であり、動きベクトルの検出や明るさの変化を検出する場合は、1つ前のフレームの画像と組み合わせて処理する。
或いは、3つの評価条件の少なくとも1つを満たしている場合に、評価判定処理205は、現フレームの画像の現像処理を行わないように制御してもよい。または、目を閉じている場合は、他の条件に依らず必ず現像処理を行わないようにしてもよい。
さらに、画像処理モジュール151の現像処理能力が設計時にわかっているので、現像処理能力を予め不揮発性メモリ109に記憶しておき、評価判定処理205は、総合判定時に、現像処理能力を参照して現像処理が可能であれば、評価結果が悪い画像であっても現像処理を行うようにしてもよい。例えば、同じ現像処理能力であれば、撮影画像の解像度が1600万画素の場合と800万画素の場合とで1秒間に現像処理可能な枚数が異なるので、解像度設定に応じて評価結果の判定基準を変えるようにしてもよい。
尚、本実施形態に係る電子カメラ101は、動きベクトル、目を閉じている、明るさの変化、の3つを評価項目としたが、色の変化、笑顔の度合い、手ブレの大きさ、露出の過不足、などを評価項目にしてもよいし、これらの評価項目を組み合わせてもよい。
いずれの場合でも、評価判定処理205は、フルサイズ画像の現像処理を行うと判定した場合、画像処理部104に現フレームの画像に対してフルサイズ画像の現像処理を行うように指令する。また、評価判定処理205は、フルサイズ画像の現像処理を行わないと判定した場合、フルサイズのRAW画像を現像処理せずにそのままメモリカード106aに記録する処理を行う。尚、サムネイル画像については、全て現像処理を行ってメモリカード106aに記録する。
[フルサイズ画像の現像処理を行う場合]
次に、画像処理モジュール151がフルサイズ画像の現像処理を行う場合の処理について、図3を用いて説明する。図3において、画像処理部104は、フルサイズ画像とサムネイル画像の両方のRAW画像(センサ補正処理201が処理した補正後のRAWデータの画像)に対して、デジタル現像処理と画像圧縮処理とを行い、制御部105は画像圧縮処理されたフルサイズ画像とサムネイル画像とをメモリカード106aに記録する処理を行う。尚、図3において、図2と同符号のブロックは同様の機能を有する。
図3において、画像処理部104は、センサ補正処理201と、リサイズ処理206と、デジタル現像処理207と、画像圧縮処理208とを有する。また、画像バッファ103には、フルサイズRAW画像306と、サムネイルRAW画像307と、フルサイズ画像308と、サムネイル画像309と、フルサイズ圧縮画像310と、サムネイル圧縮画像311とが一時的に保持される。さらに、制御部105は、記録処理209を有する。
センサ補正処理201は、図2で説明した通り、撮像部102により画像バッファ103に取り込まれたRAW画像を読み出して、補正処理を行う。但し、図2で処理済なので、センサ補正処理201は、実際には図2で評価用画像生成処理202に補正後のフルサイズのRAW画像を出力する時に、図3のリサイズ処理206にも出力する。さらに、センサ補正処理201は、補正後のフルサイズのRAW画像を画像バッファ103に一時的に記憶する(フルサイズRAW画像306)。
リサイズ処理206は、センサ補正処理201が出力する補正後のフルサイズ画像からサムネイル画像を生成して、画像バッファ103に記憶する(サムネイルRAW画像307)。尚、フルサイズ画像からサムネイル画像を作成する方法は、例えば単純画素間引きでもよいし、フィルタ処理を行って縮小してもよい。このようにして、リサイズ処理206は、例えば1600万画素のフルサイズ画像から640×480画素のサムネイル画像を生成し、サムネイルRAW画像307として一時的に記憶する。
デジタル現像処理207は、画像バッファ103に一時的に記憶されているフルサイズRAW画像306およびサムネイルRAW画像307に対して、デジタル現像処理を行う。そして、デジタル現像処理207は、フルサイズRAW画像306をデジタル現像処理したフルサイズ画像を画像バッファ103にフルサイズ画像308として一時的に記憶する。同様に、デジタル現像処理207は、サムネイルRAW画像307をデジタル現像処理したサムネイル画像を画像バッファ103にサムネイル画像309として一時的に記憶する。
画像圧縮処理208は、画像バッファ103に一時的に記憶されているフルサイズ画像308およびサムネイル画像309に対して、JPEGなどの画像圧縮処理を行う。そして、画像圧縮処理208は、フルサイズ画像308を画像圧縮処理したフルサイズ圧縮画像310を画像バッファ103に一時的に記憶する。同様に、画像圧縮処理208は、サムネイル画像309を画像圧縮処理したサムネイル圧縮画像311を画像バッファ103に一時的に記憶する。
記録処理209は、画像バッファ103に一時的に記憶されているフルサイズ圧縮画像310およびサムネイル圧縮画像311を読み出して、ファイル名を付加してメモリカードIF106に接続されているメモリカード106aに保存する。
[フルサイズ画像の現像処理を行わない場合]
次に、画像処理モジュール151がフルサイズ画像の現像処理を行わない場合の処理について、図4を用いて説明する。尚、図4において、画像処理部104および制御部105の構成は図3と同じである。図4の場合は、サムネイル画像に対して、デジタル現像処理と画像圧縮処理とを行い、制御部105は画像圧縮処理されたサムネイル画像と、現像処理されていないフルサイズのRAW画像とをメモリカード106aに記録する処理を行う。尚、図4において、図3と同符号のブロックは同様の機能を有する。
図4において、センサ補正処理201およびリサイズ処理206は、図3と同様の処理を行い、画像バッファ103に、フルサイズRAW画像306およびサムネイルRAW画像307とが一時的に保持される。
デジタル現像処理207は、画像バッファ103に一時的に記憶されているサムネイルRAW画像307に対してデジタル現像処理を行い、フルサイズRAW画像306に対してはデジタル現像処理を行わない。そして、デジタル現像処理207は、サムネイルRAW画像307をデジタル現像処理したサムネイル画像を画像バッファ103にサムネイル画像309として一時的に記憶する。
画像圧縮処理208は、画像バッファ103に一時的に記憶されているサムネイル画像309に対して、JPEGなどの画像圧縮処理を行う。そして、画像圧縮処理208は、サムネイル画像309を画像圧縮処理したサムネイル圧縮画像311を画像バッファ103に一時的に記憶する。
記録処理209は、画像バッファ103に一時的に記憶されているフルサイズRAW画像306およびサムネイル圧縮画像311を読み出し、ファイル名を付加してメモリカードIF106に接続されているメモリカード106aに保存する。
ここで、記録処理209は、メモリカード106aに保存する画像データに現像処理を行ったか否かを示す情報を付加する。図5(a)は、画像データをメモリカード106aに保存する際のファイル構成を示す図である。図5(a)において、ファイル351は、画像データ352と、ヘッダ353とを有する。そして、ヘッダ353には、ファイル名、撮影日、現像処理の有無を示す情報、フルサイズ画像であるかサムネイル画像であるかを示す情報などが記憶される。ファイル名は、例えば画像データがJPEG画像の場合はabc.JPG、画像データがRAW画像の場合はabc.RAWのように自動的に付加される。撮影日は、例えば2012/5/21などのように記載される。特に、本実施形態に係る電子カメラ101では、現像処理を実行済みであるか否かを示す情報をヘッダ353に記憶する。これにより、その画像ファイルが未現像のRAW画像であるか否かを判別できる。尚、現像処理後にRAW画像のファイルを削除するルールを決めておく場合は、残っているRAW画像のファイルが全て未現像であることがわかるが、RAW画像として保存する場合もあるので、ファイル毎に未現像であるか否かの情報を付加しておくのが好ましい。この場合、例えばフルサイズのRAW画像のファイル(abc.RAW)と、フルサイズ画像の現像処理後のファイル(abc.JPG)と、サムネイル画像の現像処理後のファイル(abc−s.JPG)とが、1つの撮影画像に対して作成され、メモリカード106aに保存される。
また、フルサイズのRAW画像に対応するサムネイル画像のヘッダに、対応するフルサイズのRAW画像が未現像であるか否かを示す情報を付加してもよい。これにより、サムネイル画像を再生する時に、対応する未現像のフルサイズのRAW画像の現像処理が行われているか否かを容易に確認できる。尚、サムネイル画像のファイルとフルサイズのRAW画像のファイルとの対応は、互いのファイルのヘッダ353に対応するファイル名を記憶しておくようにしてもよいし、互いのファイルの対応を示すテーブルを画像ファイルの保存時に自動的に作成して管理するようにしてもよい。
このようにして、本実施形態に係る電子カメラ101では、フルサイズのRAW画像を現像処理しない場合は、フルサイズのRAW画像のファイルに現像処理無しを示す情報が記録されるので、撮影後に未現像であるか否かを容易に判別することができる。
[連写モード時の処理]
次に、本実施形態に係る電子カメラ101において、連写モードで撮影する場合の処理について図6のフローチャートを用いて説明する。尚、図6のフローチャートは、画像処理モジュール151の画像処理部104および制御部105を中心に実行される処理である。
(ステップS101)画像処理部104は、撮像部102により撮影され、画像バッファ103に取り込まれたRAW画像を入力する。
(ステップS102)画像処理部104および制御部105は、入力されたRAW画像に対する評価処理を行う。図2の例では、動きベクトル、目を閉じている、明るさの変化、の3つの評価項目で評価する。
(ステップS103)制御部105は、ステップS102の評価結果により、現像処理を行うか否かの判定を行う。そして、現像処理を行う場合はステップS104の処理に進み、現像処理を行わない場合はステップS106の処理に進む。
(ステップS104)画像処理部104は、フルサイズのRAW画像に対して、デジタル現像処理および画像圧縮処理を行う。尚、画像圧縮処理を行わずにデジタル現像処理後のRGBデータの画像やYCrCbデータの画像をメモリカード106aに保存する場合は、デジタル現像処理のみを実行する。
(ステップS105)制御部105は、現像処理後のフルサイズの画像(JPEG画像など)をメモリカード106aに保存する。
(ステップS106)制御部105は、未現像のフルサイズRAW画像にステップS102に基づいた優先順位を付加する。優先順位は、撮影後に現像処理を行う場合の順番を示し、例えば優先順位が低い未現像のフルサイズRAW画像は、優先順位が高い未現像のフルサイズRAW画像よりも後で現像処理される。
優先順位を決める方法として、例えば、動きベクトルの大きさを示す閾値を決めておき、閾値の大きい順番に閾値1から閾値4までの4段階を設ける。そして、閾値1以上の画像を優先順位1、閾値1未満で閾値2以上の画像を優先順位2のように分類する。同様に、閾値2未満で閾値3以上の画像は優先順位3、閾値3未満で閾値4以上の画像は優先順位4、閾値4未満の画像は優先順位5となる。尚、明るさの変化の場合も同様に、明るさの変化の大きさに応じて優先順位を分けることができる。また、動きベクトルや明るさの変化など複数の評価項目に重み付けを行って優先順位を決めてもよいし、目を閉じている場合は優先順位を5に固定するなどの分類を行ってもよい。
このようにして、分類された優先順位は、未現像のフルサイズRAW画像の画像ファイルに付加される。例えば図5(b)の場合、制御部105は、先に説明した図5(a)のファイル351のヘッダ353に優先順位を付加したヘッダ353aを有するファイル351aを作成する。
尚、優先順位を付加しない場合は、ステップS106を省略してもよい。
(ステップS107)制御部105は、未現像のフルサイズのRAW画像をメモリカード106aに記憶する。尚、制御部105は、ステップS106で優先順位を付加する場合は、図5(b)に示したように、ヘッダ353aに優先順位が付加されたファイル351aをメモリカード106aに記憶し、優先順位を付加しない場合は、図5(a)に示したように、ヘッダ353に現像処理の有無を示す情報が付加されたファイル351をメモリカード106aに記憶する。
(ステップS108)画像処理部104および制御部105は、サムネイル画像についてもデジタル現像処理および画像圧縮処理を行い、サムネイル圧縮画像としてメモリカード106aに保存する。
(ステップS109)制御部105は、連写が終了したか否かを判別する。例えば、連写枚数が決められている場合は、連写枚数に達したか否かを判別する。そして、制御部105は、連写を終了しない場合はステップS101に戻って同様の処理を繰り返す。
このようにして、本実施形態に係る電子カメラ101では、連写モードで時間的に連続して撮影される画像を評価して、評価結果に応じてフルサイズ画像の現像処理を行うか否かを判別し、現像処理を行わない場合はRAW画像をメモリカード106aに記憶する。この時、メモリカード106aに記憶されるRAW画像のファイルに現像処理の有無を示す情報を付加するので、撮影後に読み出した時に未現像であるか否かを容易に判別することができる。
さらに、本実施形態に係る電子カメラ101は、未現像である場合に、後で実行する現像処理の優先順位を評価結果に応じて決めておき、RAW画像のファイルに優先順位を付加してメモリカード106aに記憶する。これにより、撮影後に読み出した時に未現像であるか否かの情報と共に優先順位を確認して、優先順位が高いRAW画像から順番に現像処理を行うことができる。例えば目を閉じた顔が写っている画像や露出の過不足がある画像、手ブレの有る画像、などの失敗画像の優先順位を低くしておくことができる。これにより、撮影の合間のメニュー操作時などの短い時間にメモリカード106aに記憶された未現像のRAW画像を読み出して現像処理を行う場合、きれいに撮影された画像を優先的に現像処理することができる。尚、現像処理を行うタイミングについては後で詳しく説明する。
[連写モードの撮影例]
次に、図6のフローチャートで処理する場合の具体例について図7を用いて説明する。図7は、紙面上から下に向けて連写された7枚の画像例を示している。
図7において、先ず、フルサイズ画像251は、連写モードで撮影される最初の画像なので、現像処理を行う。
フルサイズ画像252は、例えば、前のフレームのフルサイズ画像251に対する変化(動きベクトルの大きさや明るさの変化)が少ないので(実際には動きベクトルの大きさの閾値および明るさの変化の閾値と比較して閾値未満と判定)、現像処理を行わない。
フルサイズ画像253は、例えば、前のフレームのフルサイズ画像252に対する変化が大きいので(実際には動きベクトルの大きさの閾値および明るさの変化の閾値と比較して閾値以上と判定)、現像処理を行う。例えば図7では、フルサイズ画像252に写っていなかった自動車が画面に入っている。
フルサイズ画像254は、例えば、前のフレームのフルサイズ画像253に対する変化が大きいが、前のフレームのフルサイズ画像253の現像処理を行っており、連続フレームなので現像処理を行わない。尚、先に説明したように、画像処理モジュール151の現像処理能力に余裕がある場合は、現像処理を行うようにしてもよい。或いは、例えば画像処理モジュール151の動作周波数を可変できる場合は、この時だけ、動作周波数を上げるようにしてもよい。これにより、消費電力を抑えながら評価結果が良好な画像の現像処理を行うことができる。または、評価結果が良好な画像であるが連続フレームのために現像できなかった画像については図6のステップS106で優先順位を最優先に設定するようにしてもよい。
フルサイズ画像255は、例えば、前のフレームのフルサイズ画像254に対する変化が大きいので、現像処理を行う。例えば図7では、フルサイズ画像252に写っていた自動車が画面から無くなっている。
フルサイズ画像256は、前のフレームとの比較ではなく、例えば、現フレームに手ブレが生じているので、失敗写真として現像処理を行わない。
フルサイズ画像257は、例えば、現フレームに写っている顔の目が閉じているので、失敗写真として現像処理を行わない。
尚、フルサイズ画像251からフルサイズ画像257の7枚の全画像のサムネイル画像251sからサムネイル画像257sについては全て現像処理を行う。
このようにして、本実施形態に係る電子カメラ101では、連写モードで時間的に連続して撮影される画像を評価して、評価結果に応じてフルサイズ画像の現像処理を行うか否かを判別し、フレーム間で変化が少ない場合や失敗画像の場合は現像処理を行わないようにすることができる。これにより、画像処理モジュール151の現像処理能力が低い場合でも、高解像度の画像を連写することができる。つまり、安価で回路規模が小さい画像処理モジュール151を使用することができ、電子カメラ101のコストを低減できる。
[画像処理モジュール151の現像処理能力に応じた現像処理]
次に、画像処理モジュール151の現像処理能力に応じた現像処理を行う例について図8のフローチャートを用いて説明する。尚、図8のフローチャートにおいて、図6のフローチャートと同符号の処理は、同様の処理内容であることを示すので重複する説明は省略する。
図6のフローチャートとの違いは、ステップS103とステップS104との間にステップS151の処理が挿入され、ステップS103とステップS106との間にステップS152の処理が挿入されていることである。
(ステップS151)制御部105は、現像処理を行う画像が連続フレームであるか否かを判別する。そして、連続フレームである場合はステップS152の処理に進み、連続フレームではない場合はステップS104の処理に進む。
(ステップS152)制御部105は、先に説明したように、画像処理モジュール151の現像処理能力を超えるか否かを判別する。例えば画像処理モジュール151の現像処理能力の限界値を連写能力の0.8倍としてメニュー画面などで設定しておく。この場合、連写時の解像度に応じて画像処理モジュール151の現像処理能力と連写能力との関係が変わるので、制御部105は、連写時に現像処理能力を計算する。そして、上記の例では、画像処理モジュール151の現像処理能力が連写能力の0.8倍以上の場合は、現像処理能力を超えないと判断し、0.8倍未満の場合に現像処理能力を超えると判断する。例えば現像処理能力が4枚/秒で、連写能力が5枚/秒の場合は少し処理が後れるが現像処理を実行し、現像処理能力が3枚/秒で、連写能力が5枚/秒の場合は現像処理を行わない。尚、上記の例では限界値を0.8倍としたので、連写速度よりも現像処理速度が少し遅くなるが、限界値を1.0倍とすれば、連写される画像の間隔時間内に現像処理を終了することができる。
そして、制御部105は、現像処理能力を超えると判断した場合はステップS106の処理に進み、現像処理能力を超えないと判断した場合はステップS104の処理に進む。以降、ステップS104およびステップS106の処理は、図6と同様なので、重複する説明は省略する。
このようにして、現像処理能力を超える場合は現像処理を行わずにメモリカード106aに保存し、現像処理能力を超えない場合は連続フレームであっても現像処理を行うことができる。これにより、画像処理モジュール151の処理能力を最大限に活かした現像処理を行うことが可能になる。
[未現像画像の現像処理を行うタイミング]
次に、撮影時に未現像画像としてメモリカード106aに保存されたRAW画像の現像処理を行うタイミングについて、いくつかの例を挙げて説明する。
ここで、本実施形態に係る電子カメラ101は、先に説明したように、撮影時に、連写モードで時間的に連続して撮影される画像を評価して、評価結果に応じてフルサイズ画像の現像処理を行うか否かを判別し、フレーム間で変化が少ない場合や失敗画像の場合は現像処理を行わずにメモリカード106aに保存する。図7の例では、図9に示すように、フルサイズ画像252、フルサイズ画像254、フルサイズ画像256およびフルサイズ画像257の4枚の画像が未現像のRAW画像としてメモリカード106aに保存されている。
そして、本実施形態に係る電子カメラ101は、未現像のRAW画像に対して、撮影後の様々なタイミングで現像処理を行う。
(再生時の現像処理)
先ず、未現像のRAW画像を再生時に現像処理する一例について説明する。図10は、メモリカード106aに保存されている撮影済のRAW画像を操作部108のモード選択ダイヤルなどで再生モードを選択した時の処理を示したフローチャートである。尚、図10の処理は、制御部105のプログラムに従って、制御部105および画像処理部104により実行される処理である。
(ステップS201)制御部105は、メモリカード106aに保存されているサムネイル画像を読み出す。尚、読み出されたサムネイル画像は、画像バッファ103に一時的に保持される。
ここで、本実施形態に係る電子カメラ101では、表示部107の画面に表示する画像は、サムネイル画像のファイルを用いる。先に説明したように、本実施形態では、サムネイルのRAW画像は全て現像処理されているので、未現像のフルサイズのRAW画像がある場合でも対応するサムネイル画像として表示することができる。
(ステップS202)制御部105は、画像バッファ103に読み出されたサムネイル画像を表示部107に表示する。
(ステップS203)制御部105は、表示部107に表示しているサムネイル画像に対応するフルサイズのRAW画像が未現像であるか否かを判別する。
ここで、サムネイル画像に対応するフルサイズのRAW画像またはフルサイズの現像済の画像の判別は、先に説明したように、ヘッダ353に書き込まれた互いに関連付ける情報(例えばファイル名など)により認識できる。また、サムネイル画像のファイルのヘッダ353に、サムネイル画像に対応するフルサイズのRAW画像が未現像であるか否かを書き込んでおいてもよい。
(ステップS204)制御部105は、表示部107に表示しているサムネイル画像に対応するフルサイズのRAW画像を画像バッファ103に読み出す。そして、ステップS104と同様に、画像処理部104は、フルサイズのRAW画像に対して、デジタル現像処理および画像圧縮処理を行う。尚、画像圧縮処理を行わずにデジタル現像処理後のRGBデータの画像やYCrCbデータの画像をメモリカード106aに保存する場合は、デジタル現像処理のみを実行する。
(ステップS205)制御部105は、ステップS105と同様に、現像処理後のフルサイズの画像(JPEG画像など)をメモリカード106aに保存する。
(ステップS206)制御部105は、画像の再生を終了するか否かを判別する。例えば、制御部105は、ユーザーが操作部108のモード選択ダイヤルなどで再生モードを終了したか否かの判別を行う。或いは、スライドショーなどで再生している場合、制御部105は、メモリカード106a全体または選択されたフォルダ内に記憶されている全画像の表示を終了した時に、再生終了と判断する。そして、制御部105は、再生モードを終了しない場合は、ステップS201の処理に戻って、同様の処理を繰り返し実行する。
このようにして、本実施形態に係る電子カメラ101は、再生時に未現像のフルサイズのRAW画像がある場合に、撮影時に実行できなかった現像処理を行ってメモリカード106aに保存することができる。この場合、ユーザーは、表示部107で閲覧している画像に対応するフルサイズのRAW画像の現像処理が行われていることを認識する必要がなく、電子カメラ101側で自動的に実行される。これにより、閲覧後の印刷時にフルサイズ画像が必要になった時には、現像処理されたフルサイズ画像がメモリカード106aに作成されており、使用上の支障になることはない。
また、画像を再生せずに印刷する場合でも、印刷するフルサイズ画像を読み出しながら当該画像が未現像であるか否かを確認し、未現像である場合は現像処理を行ってから印刷するようにしてもよい。この場合でも、一般的なインクジェットプリンタの印刷時間に比べると、現像処理時間は無視できるほど短いので、使用上の支障になることは少ない。
(優先順位を付けて現像処理)
次に、優先順位を付けて現像処理する例について説明する。上記の例では、再生時や印刷時など、ユーザーがメモリカード106aに保存されている撮影済みの画像を読み出す操作を行った場合に、表示部107に表示されるサムネイル画像に対応するフルサイズ画像や印刷しようとするフルサイズ画像が未現像のRAW画像である場合に、当該画像対して現像処理を行うようにしていた。ここでは、ユーザーがメモリカード106aに保存されている撮影済みの画像を読み出す操作を行っていない空き時間に未現像のRAW画像の現像処理を行う場合の一例を示す。例えば、電源は入っているが何も操作していない時やメニュー画面で設定を行っている時などの空き時間に未現像のRAW画像の現像処理が自動的に実行される。
特に、本実施形態に係る電子カメラ101は、メモリカード106aに複数の未現像のRAW画像が保存されている場合に、優先順位を付けて現像処理を行う。尚、優先順位は、先に説明した図6のフローチャートのステップS106において、未現像のRAW画像のファイルに付加されている。
図11は、先に説明した図9に対応する図で、メモリカード106aに記憶されている未現像のフルサイズ画像に優先順位が付加されている様子を示している。図11において、例えば、フルサイズ画像252の優先順位はランク1、フルサイズ画像254の優先順位はランク2、フルサイズ画像256の優先順位はランク5、フルサイズ画像257の優先順位はランク4、である。ここで、本実施形態に係る電子カメラ101では、優先順位を最高のランク1から最低のランク5までの5段階に分けている。また、優先順位は、予め設定されたルールに従って割り振られている。例えば手ブレや露出の過不足など撮影自体に問題がある画像のランクを低くし、次に目閉じなど被写体に問題がある画像をランク付けし、撮影自体や被写体に問題がないが処理能力の問題で未現像になっていた画像のランクを高く設定する。
このようにして、撮影自体に問題がある画像や被写体に問題がある画像など失敗画像の優先順位を低くすることで、印刷など使用される可能性が高い撮影自体や被写体に問題がない画像の現像処理を優先して行うことができる。
(電源OFF時に現像処理)
次に、電子カメラ101の電源をOFFする時に、メモリカード106aに保存されている未現像のRAW画像を現像処理する一例について説明する。図12は、ユーザが操作部108の電源ボタンを押下して電子カメラ101の電源をOFFする時に現像処理を行う処理例を示すフローチャートである。尚、図12の処理は、制御部105のプログラムに従って、制御部105および画像処理部104により実行される処理である。
一般的な電子カメラ101では、電子カメラ101の電源がONの状態で操作部108の電源ボタンが押下された場合、制御部105は、電子カメラ101の電源をOFFにする処理を開始する。これに対して、本実施形態に係る電子カメラ101の場合、制御部105は、電源をOFFにする処理を行う前に、以下の処理を実行する。
(ステップS301)制御部105は、メモリカード106aから優先順位の高い未現像のフルサイズ画像を検索する。具体的には、制御部105は、メモリカード106aに記憶されている全てのフルサイズRAW画像の画像ファイル351のヘッダ353を参照して、未現像のRAW画像の優先順位を抽出する。
例えば、図11の場合、メモリカード106aに保存されている未現像のRAW画像は、フルサイズ画像252、フルサイズ画像254、フルサイズ画像256およびフルサイズ画像257の4つの画像が参照される。そして、これらの画像の優先順位が抽出される。図11の例では、フルサイズ画像252の優先順位がランク1、フルサイズ画像254の優先順位がランク2、フルサイズ画像256の優先順位がランク5、フルサイズ画像257の優先順位がランク4である。
(ステップS302)制御部105は、未現像のRAW画像のうち優先順位が最も高い画像をメモリカード106aから画像バッファ103に読み出す。図11の例では、優先順位がランク1のフルサイズ画像252が読み出される。尚、同じランクの画像がある場合は、他の条件で読み出す順番を並び替えるようにしてもよい。例えば、撮影日時で並べ替えて撮影日時が新しい画像から読み出すようにする。
(ステップS303)画像処理部104は、ステップS104と同様に、画像バッファ103に読み出された未現像のフルサイズのRAW画像に対して、デジタル現像処理および画像圧縮処理を行う。図11の例では、フルサイズ画像252に対してデジタル現像処理および画像圧縮処理が行われる。尚、画像圧縮処理を行わずにデジタル現像処理後のRGBデータの画像やYCrCbデータの画像をメモリカード106aに保存する場合は、デジタル現像処理のみを実行する。
(ステップS304)制御部105は、ステップS105と同様に、現像処理後のフルサイズの画像(JPEG画像など)をメモリカード106aに保存する。図11の例では、現像処理後のフルサイズ画像252をメモリカード106aに保存する。尚、この時に、フルサイズ画像252のRAW画像のファイルを削除するようにしてもよいし、RAW画像の画像ファイル351のヘッダ353の現像処理無しを有りに変更してもよい。
(ステップS305)制御部105は、メモリカード106aに未現像のRAW画像があるか否かを判別する。未現像のRAW画像が残っている場合は処理をステップS301に戻し、未現像のRAW画像が残っていない場合は処理をステップS305に進める。図11の例では、フルサイズ画像252の現像処理が終了したので、フルサイズ画像254、フルサイズ画像256およびフルサイズ画像257の3つの画像が残っている。
(ステップS306)制御部105は、電子カメラ101の電源をOFFする。例えば、操作部108の電源ボタンの操作を検出して制御部105を起動する回路以外の回路の動作を停止する。
このようにして、本実施形態に係る電子カメラ101は、ユーザが操作部108の電源ボタンを押下して電子カメラ101の電源をOFFする時に自動的に未現像のRAW画像の現像処理を行うことができる。これにより、ユーザが意識することなく、撮影時に未現像であったRAW画像の現像処理を行うことができる。特に、本実施形態に係る電子カメラ101は、未現像のRAW画像に優先順位を付加しておき、使用される可能性が高いと思われるRAW画像から先に現像処理を行うので、使用時に未現像のまま残っていて直ぐに使用できなかったり、現像する時間だけ待たされるなどの問題を回避できる。
尚、上記の例では、電源OFF時にメモリカード106aに保存されている未現像の全ての画像を現像するようにしたが、優先順位の高いものから予め設定された枚数(例えば10枚)だけを現像するようにしてもよい。これにより、未現像の画像が極端に多い場合に電源がOFFするのが遅くなるという問題を回避できる。
また、上記の例では、制御部105は、電源OFF時に現像処理を行うようにしたが、撮影時以外の未操作時やメニュー画面を表示している期間に優先順位の高い画像から順番に現像処理を行うようにしてもよい。この場合、制御部105は、操作部108の何らかのボタンが押下された時点で現像処理を中断し、当該操作に応じた処理を優先させる。これにより、操作遅延などの問題が発生せず、ユーザは現像処理が行われていることを意識することがない。或いは、制御部105が画像処理部104の処理負荷をモニタして、処理負荷が予め設定された閾値未満の場合に未現像のRAW画像の現像処理を行い、閾値以上の場合に現像処理を停止するようにしてもよい。この場合、例えば画像処理部104の最大処理能力を100%として、閾値を60%に設定しておき、画像処理部104の処理が60%未満の場合に未現像のRAW画像の現像処理を実行する。もちろん、この場合でも優先順位に応じた現像を行うことで、利用される可能性が高い良好な画像から現像処理を行うことができる。
このように、本実施形態に係る電子カメラ101では、画像処理モジュール151は、連続して撮影される画像のうち最初の画像や大きな変化があった画像のみをリアルタイムで現像するので、画像処理モジュール151に要求される処理能力、回路規模およびコストなどを低く抑えることができる。また、画像処理モジュール151の動作頻度が低くなり、消費電力を低減することができる。さらに、画像処理モジュール151の処理能力に見合うだけの現像処理を行うことで、待たされることなく直ぐに次の画像の撮影を行うことができ、前に撮影された画像の現像処理が完了するまで撮影操作を行えないという問題を回避できる。また、本実施形態に係る電子カメラ101は、解像度が低く処理負荷が小さいサムネイル画像については、撮影される全画像について現像処理を行うので、再生時に表示部107に表示する際の問題はない。
また、撮影時に未現像のままメモリカード106aに保存したRAW画像に対して、撮影後の画像処理モジュール151の処理能力に余裕がある時に自動的に現像処理を行うので、ユーザが気づかないうちに現像処理を完了することができる。ここで、上記の実施例では、未現像のRAW画像をそのままメモリカード106aに保存するようにしたが、制御部105は、RAW画像に対してデジタル現像処理を行わずに圧縮処理だけを行ってメモリカード106aに保存するようにしてもよい。これにより、ファイル容量が大きいRAW画像を効率良くメモリカード106aに保存することができる。また、デジタル現像処理後のRGBデータの画像やYCrCbデータの画像に対して、JPEGなどの画像圧縮処理を行わずにメモリカード106aに保存するようにしてもよい。この場合、先の実施形態で説明したように、電子カメラ101の空き時間に応じて、画像圧縮処理を自動的に行うようにしてもよい。
以上、いくつかの例を挙げて説明してきたように、本実施形態に係る電子カメラ101は、連写や高解像度の画像を続けて撮影する場合に、撮影画像の評価結果に応じて撮影時に現像するか否かを判別し、撮影時に現像する画像の枚数を間引くことにより、処理能力が低い安価な画像処理モジュール151を搭載するカメラでも高解像度の画像を連続して撮影することができる。
また、電子カメラ101の例を挙げて説明してきたが、単独の画像処理装置(例えば画像処理デバイスなど)において、上記で説明した画像処理モジュール151で行う現像処理を実行するようにしてもよい。そして、このような画像処理デバイスをカメラ付携帯電話やスマートホン、ビデオカメラなどに搭載してもよい。
尚、本発明に係る電子カメラおよび画像処理装置について、各実施形態で例を挙げて説明してきたが、その精神またはその主要な特徴から逸脱することなく他の多様な形で実施することができる。そのため、上述した実施形態はあらゆる点で単なる例示に過ぎず、限定的に解釈してはならない。本発明は、特許請求の範囲によって示されるものであって、本発明は明細書本文にはなんら拘束されない。さらに、特許請求の範囲の均等範囲に属する変形や変更は、全て本発明の範囲内である。