次に、本発明の実施の形態を実施例に基づいて以下の順序で説明する。
A.第1実施例:
B.第2実施例:
C.第3実施例:
D.第4実施例:
E.第5実施例:
F.第6実施例:
G.変形例:
A.第1実施例:
図1は、本発明の一実施例を適用する画像処理システム10の構成を概略的に示す概略構成図である。画像処理システム10は、デジタルスチルカメラ100と、パーソナルコンピュータ200と、プリンタPRTと、を備えている。デジタルスチルカメラ100は、一点鎖線で示すメモリカードMCを格納するメモリカードスロットを備えている。
デジタルスチルカメラ100は、撮影された画像から所定の形式の画像ファイルを生成する。生成された画像ファイルは、メモリカードMCに格納される。メモリカードMCに格納された画像ファイルは、パーソナルコンピュータ200にメモリカードMCを挿入することにより、パーソナルコンピュータ200により読み取られる。読み取られた画像ファイルに格納された画像データは、パーソナルコンピュータ200により画像処理が施され、パーソナルコンピュータ200にケーブルCVで接続されたプリンタPRTにより印刷される。また、プリンタPRTにメモリカードMCを挿入して、プリンタPRTが画像ファイルに基づいて印刷を実行するものとしてもよい。なお、パーソナルコンピュータ200とデジタルスチルカメラ100とをケーブルCVで接続することにより、デジタルスチルカメラ100からパーソナルコンピュータ200に画像ファイルを転送することも可能である。
図2は、デジタルスチルカメラ100により生成されるRAW画像ファイルのデータ形式を示す説明図である。ここで、RAW画像ファイルとは、デジタルスチルカメラ100により生成される画像ファイルの一種であり、デジタルスチルカメラ100が有する撮像素子(CCD,CMOS等)の出力値を表すRAW画像データが格納されたファイルをいう。このRAW画像ファイルは、Exif(Exchangeable Image File Format)形式と類似のデータ形式で作成されており、図示するように、ヘッダ部とデータ部とを含んでいる。
ヘッダ部には、RAW画像ファイルを作成したカメラのメーカ名および型番、撮影条件、撮影日時、機器特性などの付加情報が記述されている。なお、撮影条件には、シャッタスピード、絞り値、ホワイトバランス設定値、シーン設定等の撮影時の設定条件が含まれている。また、機器特性には、階調値に対するオフセット値(後述する)等のデジタルスチルカメラ100の機器の特性を表す種々のパラメータが含まれる。
データ部には、撮影時に生成されたRAW画像データと表示用画像データとが含まれている。表示用画像データとは、RAW画像データに現像処理(画像生成処理)が施された画像データ(現像済画像データ)である。なお、RAW画像データと表示用画像データとには、同じ被写体(撮影画像)が表現されており、RAW画像データと表示用画像データとは、撮影と同時に記録される。表示用画像データは、例えば、カメラに設けられた表示パネルに撮影済み画像を簡易的に表示する際に利用され、カメラにおいて現像処理が施されたJPEG形式の画像データであり、RAW画像と同じ縦横の画素を有する画像であったり、表示用に縦横縮小した画素であったりする。また、表示用画像データは、VGA(640×480画素)程度の大きさまで縮小されている場合もある。この表示用画像データは、スクリーンネイル画像データとも呼ばれている。このスクリーンネイル画像データは、RAW画像データに付随した画像データであるので、「付随画像データ」とも呼ぶことができる。なお、RAW画像ファイルのデータ形式は、デジタルスチルカメラ100(図1)のメーカや機種により異なっている。
図3は、パーソナルコンピュータ200の構成を概略的に示す概略構成図である。パーソナルコンピュータ200は、中央処理装置(CPU)210と、画像を表示するためのディスプレイ220と、周辺機器インタフェース230と、メモリカードインタフェース240と、内部記憶装置250と、を備えている。CPU210と、ディスプレイ220と、周辺機器インタフェース230と、内部記憶装置250とは、互いにバス202により接続されており、これらの各部210〜230,250の間のデータの授受は、バス202を介して行われる。メモリカードインタフェース240は、周辺機器インタフェース230に接続されており、メモリカードインタフェース240に挿入されたメモリカードMCと、パーソナルコンピュータ200との間のデータの授受は、周辺機器インタフェース230を介して行われる。
内部記憶装置250には、現像処理部300が格納されている。現像処理部300は、RAW画像取得部310と、スクリーンネイル縮小部320と、縮小画像解析部330と、表示用現像処理部340と、本現像処理部350と、を有している。これらの各部310〜350は、プログラムモジュールとして内部記憶装置250に格納されている。現像処理部300としての機能は、CPU210が現像処理部300内の各プログラムモジュール310〜350を実行することにより実現される。現像処理部300は、複数のRAW画像ファイルのそれぞれに格納された複数のRAW画像データに対して現像処理を施す一括現像処理と、1つのRAW画像ファイルに格納されたRAW画像データに対して現像処理を施す個別現像処理と、の2つの現像処理機能を備えている。内部記憶装置250には、また、現像処理の実行中に生成されるデータを一時的に格納する中間データ格納部410と、現像処理が施された画像データを格納する現像済画像格納部420と、が設けられている。
周辺機器インタフェース230には、図示しないキーボードやマウス等の入力装置や、デジタルスチルカメラ100(図1)やプリンタPRT(図1)等が接続される。ユーザは、周辺機器インタフェース230に接続された入力装置を操作することにより、パーソナルコンピュータ200に指示を与えることができる。
図4は、複数のRAW画像ファイルに対して一括して設定された現像条件で現像処理を行う一括現像処理の流れを示すフローチャートである。この一括現像処理は、現像処理部300により実行される。この一括現像処理および後述する個別現像処理は、ユーザがRAW画像ファイルに現像処理を施す現像用アプリケーションを起動した際、あるいは、画像処理用アプリケーションにおいて現像処理を指示した際に実行される。
ステップS110において、現像処理部300(図3)は、現像内容を指定する指示(現像指定)を取得する。現像内容としては、現像対象のRAW画像データが格納されたRAW画像ファイルと、現像条件と、が指定される。具体的には、現像処理部300は、現像対象を指定する指示をユーザに促すメニュー画面(以下、「現像内容指定画面」と呼ぶ)をディスプレイ220(図3)に表示する。ユーザは、ディスプレイ220に表示されたメニュー画面を見ながら、マウスなどのポインティングデバイスを操作することにより、パーソナルコンピュータ200に現像内容を指示する。
図5は、ステップS110において表示される現像内容指定画面SDCの一例を示す説明図である。現像内容指定画面SDCには、RAW画像ファイルが格納されているフォルダを選択するためのフォルダ選択領域RFSと、選択されたフォルダ内のRAW画像ファイルを選択するための画像選択領域RISと、が設けられている。図5の例において、フォルダ選択領域RFSでは「2006年11月27日」と名付けられたフォルダが選択されており、画像選択領域RISでは、2つのRAW画像ファイルが選択されている。ユーザがこのように現像対象を選択した後、「現像開始」ボタンBDSを操作すると、選択されたRAW現像ファイルのそれぞれに格納されたRAW画像データに現像処理が施され、現像済画像データが生成される。ユーザが「戻る」ボタンBRTを操作した場合には、一括現像処理は中断される。
現像内容指定画面SDCには、これらの選択領域RFS,RISのほかに、現像条件を指定するための処理指定領域RMI,RBI,REIが設けられている。ユーザは、これらの処理指定領域RMI,RBI,REI内でポインティングデバイスを操作することにより、現像条件を指定することができる。図5の例では、現像処理の動作モード(現像モード)を指定するモード指定領域RMIでは、「一括現像」が指定されている。ユーザが「個別現像」のマークを操作すると、後述する個別現像処理が実行される。
基本設定領域RBIでは、現像処理において通常使用される現像条件(基本設定)が指定される。図5の例では、基本設定のうち、現像処理を行う際の露出補正パラメータを自動的に設定する「自動露出補正」は、ONとなっている。また、現像処理の露出補正以外の標準的なパラメータを設定するためのスタイルは、「風景」に設定されている。拡張設定領域REIでは、基本設定に加えて、より詳細な現像条件(拡張設定)が指定される。拡張設定としては、「露出」、「色温度」、「色合い」、「コントラスト」および「シャープネス」の5つの項目が設定可能となっている。これらの設定内容については、後述する。なお、図5の例では、基本設定のスタイルが「風景」に設定されているため、拡張設定の設定項目のうち、「シャープネス」が2段階低く設定されている。
図6は、ステップS110において表示される現像内容指定画面SDCの図5とは別の一例を示す説明図である。図6の現像内容指定画面SDCは、基本設定の項目のうち「自動露出補正」がOFFに設定されている点と、拡張設定の設定項目のうち、「露出」が1段階高く設定されている点で、図5に示す現像内容指定画面SDCと異なっている。ユーザが図6の現像内容指定画面SDCにおいて、「現像開始」ボタンBDSを操作すると、拡張設定の各項目により指定される現像条件により、選択されたRAW現像ファイルのそれぞれに格納されたRAW画像データに現像処理が施され、現像済画像データが生成される。
図4のステップS120において、RAW画像取得部310は、ステップS110で指定されたRAW画像ファイルの1つからRAW画像データを取得する。図7は、ステップS120において実行されるRAW画像取得処理の流れを示すフローチャートの一例である。(図7の処理フローは、RAW画像ファイル形式などにより変化する。)
ステップS210において、RAW画像取得部310は、RAW画像ファイル(図2)のデータ形式を解析する。上述のようにRAW画像ファイルのデータ形式は、デジタルスチルカメラ100(図1)のメーカや機種により異なっている。そのため、RAW画像取得部310は、ヘッダ部に格納されたメーカや型番などの情報からRAW画像ファイルのデータ形式を特定し、RAW画像データの格納位置や格納形式を取得する。なお、本実施例では、RAW画像ファイルのヘッダ部に格納された情報に基づいてRAW画像ファイルのデータ形式を特定しているが、RAW画像ファイルによってはRAW画像ファイルに付された拡張子によってRAW画像ファイルのデータ形式を特定することも可能である。例えば、EPSN0012.ERFとあれば、拡張子によってE社製のデータ形式であるとか、ADSC0125.ARFとあれば、拡張子によってA社製のデータ形式と特定すると言う方法である。
ステップS220において、RAW画像取得部310は、RAW画像ファイルに格納されているRAW画像データを取り出し、中間データ格納部410(図3)に格納する。次いで、ステップS230において、中間データ格納部410に格納されたRAW画像データには、データ展開処理が施される。通常、RAW画像データには、データサイズを縮小するために、可逆的な圧縮処理(例えば、ハフマン符号化)が施されている。ステップS230では、圧縮処理されたデータを圧縮する前のデータに変換する処理(「展開」と呼ばれる)が施される。先例のハフマン符号化圧縮されている場合には、該当するハフマン符号データを元にハフマン伸張(展開)処理を行う。
ステップS240において、RAW画像取得部310は、RAW画像データの生成時に施される差分パルス符号変調(DPCM)の逆変換(DPCM復調)を行う。次いで、ステップS250において、圧縮されたダイナミックレンジを伸張する。
ステップS260において、RAW画像取得部310は、オプティカルブラック補正処理を実行する。この処理は、カメラの撮像素子の特性、すなわち、入射光の強度がゼロのときに検出値がゼロとならない特性を補正するためにRAWデータに加算されたオフセット値をRAWデータから減ずる処理である。この処理では、RAW画像データに含まれる各画素の階調値から、オフセット値が減算される。なお、減算されるオフセット値は、例えば、RAW画像ファイル(図2)のヘッダ部に格納されている値を用いることができる。撮像素子の出力は通常ノイズ成分を含んでおり、この信号をA/D変換する場合にノイズ成分も含んでA/D変換されるのが普通である。もし入射光の強度がゼロのときのRAWデータに対応する値をゼロとしてしまった場合、プラス方向のノイズはプラスの値としてRAWデータに記録され、マイナスの値の場合はゼロにクランプされてしまい、ノイズ分が正確に記録されないことになり、結果ノイズ成分を平滑化した場合ノイズ分に相当するプラス側の値を持ってしまうことを防ぐための工夫である。つまり、入射光の強度がゼロのときのRAWデータに対応する値を例えば64とした場合、プラスのノイズが+1ある場合は、65として記録され、マイナスのノイズが−1である場合、63と記録される。そしてオフセット値64を減算することで、それぞれ、+1、−1となることになる。この結果、ノイズを含めて正しくRAWデータを処理することが可能となる。もし、このマイナスのノイズのために、RAWデータに符号を付けるとなるとビット記録幅が追加になり、データ量が多くなるという課題を解決する事が可能となる。この様にオプティカルブラック補正後のデータは負の値を持った符号付の値で計算される。
このようにして、RAW画像ファイルからは、デジタルスチルカメラ100の撮像素子の各画素に入射した光量を表すRAW画像データが取得される。なお、以下では、「RAW画像データ」とは、このように撮像素子の各画素への入射光量を表すRAW画像データのことを言う。また、このRAW画像データは撮像素子上に形成された被写体の画像を表しているので、以下では、このRAW画像データを単に「RAW画像」とも呼ぶ。なおRAW画像データは、通常、各画素の階調値が12ビット以上のデータで表される。従って、現像処理における演算処理は、RAW画像データに含まれる情報の欠落が生じないように、通常符号を含めて16ビットで行われる。そのため、以下では特に明示しない限り演算処理は16ビットで行われるものとする。もちろん、演算処理のビット長は、16ビットに限られず、他のビット数であっても構わない。
図4のステップS130では、現像処理部300(図3)は、自動露出補正が設定されているか否かを判断する。具体的には、ステップS110において取得された現像指定を参照することにより、自動露出補正が設定されているか否かを判断する。自動露出補正が設定されていると判断された場合には、ステップS140に制御が移される。一方、自動露出補正が設定されていないと判断された場合には、ステップS160に制御が移される。図5の例では、「自動露出補正」の項目がONとなっているので、ステップS130では自動露出補正が設定されていると判断され、ステップS140が実行される。一方、図6の例では、「自動露出補正」の項目がOFFとなっているので、ステップS130では自動露出補正が設定されていないと判断され、ステップS160が実行される。
ステップS140では、スクリーンネイル縮小部320が、スクリーンネイル画像データ(図2)によって表されるスクリーンネイル画像を変倍して所定の大きさ(解像度)の変倍画像を生成する。生成される変倍画像は、後述の画像解析において使用される。本実施例では、変倍画像として320×240画素であるQVGAサイズの画像が生成される。スクリーンネイル画像の解像度の高低にかかわらず、変倍画像を所定の解像度とすることにより、画像解析が容易となる。なお、変倍画像の解像度は、320×240画素以外の解像度とすることも可能である。変倍画像の解像度は、画像解析に適した大きさであればよい。また、変倍画像の解像度は、画像解析に要する演算処理量を低減するため、画像解析に適した大きさである限りより小さい画像とするのが好ましい。また、処理速度に余裕があれば、あえて変倍処理をしないままスクリーンネイルのサイズのままで処理をしても良い。この場合、ステップS140の処理をせずに直接ステップS150の処理が実行される。
図8は、スクリーンネイル画像から変倍画像が生成される様子を示す説明図である。図8の例では、スクリーンネイル画像は、3008×2000画素の画像となっている。本実施例では、320×240画素の変倍画像が生成される。通常はこのようにスクリーンネイル画像の方が変倍画像よりも大きい(解像度が高い)ため、縮小処理を行う事になる。そのため、以下では、変倍画像を縮小画像とも呼ぶ。図8(a)に示すスクリーンネイル画像からは、縮小画像の4:3のアスペクト比に応じて、左右両端の各172画素分の領域と上下両端の各1画素分の領域を切り落とされ、図8(b)に示す2664×1998画素の画像が生成される。次いで、2664×1998画素の画像は、1/8.325に縮小され、図8(c)に示す320×240画素の縮小画像が生成される。画像の縮小は、例えば、バイリニア法を用いて行われる。但し、画素を間引くことにより画像の縮小を行う単純間引き法を用いることも可能である。なお、画像の縮小に際しては、折り返し雑音の発生を抑制するため、ローパスフィルタをかけて空間周波数の高周波成分を低減するのがより好ましい。
スクリーンネイル画像データがJPEG形式のデータである場合、JPEG形式のデータの伸張で8×8画素の画素ブロックを生成する代わりに、より画素数の少ないブロック(例えば、5×5画素、4×4画素、3×3画素のブロック)を生成することによりスクリーンネイル画像を縮小することも可能である。
なお、スクリーンネイル画像の画素数が異なる場合には、切り落とされる領域と縮小率は、適宜変更され、320×240画素の縮小画像が生成される。例えば、スクリーンネイル画像が1504×1000画素の場合、左右各86画素分の領域と、下1画素分の領域が切り落とされ、1/4.1625に縮小される。また、スクリーンネイル画像が640×424画素の場合、左右各38画素分の領域と、下1画素分の領域が切り落とされ、1/1.7625に縮小される。この際、縮小画像の生成が画像の解析を目的としているので、あくまでも画像全体に対して縮小することが望ましい。そのため、切り落とした結果、元の画像の中央が残るように上下左右を均等に切り落とし、なおかつ大きな範囲が残るようにするのが好ましい。3:2のアスペクト画像について4:3の比率で切り出す場合、画像の切り落としは左右均等に行われる。
図4のステップS150において、縮小画像解析部330は、ステップS140で生成された縮小画像を解析する。そして、縮小画像の解析結果に基づいて現像条件を設定する。具体的には、縮小画像のヒストグラム解析を行ない、ヒストグラム解析の結果にもとづいて、RAW画像のRGBの各階調値(RGB値)に乗ずる露出補正係数を算出する。
図9は、ステップS140におけるヒストグラム解析の様子を示す説明図である。図9(a)および(c)は、それぞれ、露出が不足している(露出アンダー)画像と、露出が適正な画像と、を示している。図9(b)は、図9(a)に示す露出アンダーの画像のヒストグラム解析結果を示すグラフである。図9(d)は、図9(c)に示す適正露出の画像のヒストグラム解析結果を示すグラフである。なお、図9(b)および図9(d)の横軸は、明度(階調値)を表し、縦軸は画素数を表している。
図9(b)に示すように、露出アンダーの画像では、明度の高い領域の画素数が少なくなる。図9(b)の例では、明度の全範囲(0〜255)のうち、画素の大部分は低明度領域(0〜136)に分布しており、高明度領域(137〜255)の画素数はほぼゼロとなっている。一方、図9(d)に示すように、適正露出の画像では、画素は明度の全範囲(0〜255)にわたって分布する。従って、図9(a)に示す露出アンダーの画像を図9(c)に示す適正露出の画像とするためには、図9(d)に示すようにヒストグラムの形状を明度の全範囲にわたるように、明度136を明度255に変換する露出補正を行えばよいと判断することができる。なお、このように目標とするヒストグラムの形状は、画素の分布範囲として定めることができる。
通常、スクリーンネイル画像は、RAW画像にガンマ補正を施したものとなっている。具体的には、スクリーンネイル画像の明度Yは、RAW画像の明度Xを用いて次の式(1)によって表される。
Y=X1/γ …(1)
従って、図9(a)に示す露出アンダーの画像を図9(c)に示す適正露出の画像とするためには、RAW画像の明度にかける補正係数Aとして、次の式(2)で表される値が設定される。
A=(255/136)γ …(2)
通常のガンマ補正において、γは、2.2に設定されている。そのため、図9(a)に示すRAW画像の明度にかける補正係数Aは、約4.0と算出される。
なお、本実施例では、露出補正係数をヒストグラム解析の結果から算出しているが、露出補正係数は、他の方法により求めることも可能である。例えば、縮小画像解析部330が顔の検出を行う機能を有している場合、縮小画像から検出された顔の明度に基づいて露出補正係数を算出することもできる。具体的には、検出された顔の、鼻、口、及び目の周辺の肌色に相当する色相と彩度とをもつ領域の明度を評価する。露出補正係数は、評価された領域の明度が肌色の明度として好ましい180〜200の範囲に収まるように、上述のように算出される。なお、明度を180〜200の範囲に収まるようにすることは、理想的な肌色の色相範囲で、かつ、明度が180〜200の色の範囲になるように肌色を調整することに相当する。もちろん、色相や彩度についても調整を行っても良い。
図4のステップS160において、本現像処理部350は、ステップS110で設定された現像条件と、ステップS150で設定された現像条件とに基づいて、現像処理が実行される。図10は、ステップS160において実行される本現像処理の流れを示すフローチャートである。
ステップS302において、本現像処理部350は、ゲイン調整(プリゲイン)を行う。具体的には、本現像処理部350は、デジタルスチルカメラ100の撮像素子の特性に応じて設定された係数(プリゲイン設定値)をRAW画像を構成する各画素の画素値(RGB値)に乗算する。なお、プリゲイン設定値は、RAW画像ファイル(図2)のヘッダ部に格納されている値が使用される。多くの場合、RとGの画素についてのみプリケイン設定値が乗算される。
ステップS304において、本現像処理部350は、印刷用の画素補間処理(デモザイク処理)を行う。この画素補間処理は、デジタルスチルカメラ100(図1)の撮像素子に設けられた複数のセンサ素子の配列に起因して欠落している色成分情報を補間して生成するための処理である。通常、RGBの原色フィルタを取り付けた撮像素子においては、センサ素子上のカラーフィルタは市松模様状(「Bayer配列」と呼ばれる)に配置されている。そのため、撮像素子の各センサ素子に対応するRAW画像の画素は、RGBのいずれか1色のみの色情報を持つ画素となる。例えば、ある画素がRの画素の場合には、同位置のG及びBの色情報が不足している。画素補間処理では、この不足している色情報を周囲の画素の色情報から予測補間して求める処理である。予測補間では、画像のエッジの方向を検出して、その画像のエッジに沿うように画素補間をすることにより、補間時の誤りや色付等による画質の低下が抑制される。
ステップS306において、本現像処理部350は、ホワイトバランス調整を行う。ホワイトバランスの調整は、RAW画像を構成する各画素のRGBの階調値(以下、それぞれの階調値をR値、G値、B値とも呼ぶ)に、目標とするホワイトバランスごとに設定された係数を乗じることにより行われる。具体的には、RAW画像の各画素のR値とB値とのそれぞれに対して係数Ar,Abが乗じられる。これらの係数Ar,Abは、RAW画像ファイル内のヘッダ部に記述されたホワイトバランスの設定内容、あるいは、現像内容指定画面SDC(図5、図6)で設定される「色温度」の項目の設定内容に基づいて決定される。また、これらの係数Ar,Abを画像解析の結果から算出することも可能である。
ステップS308において、本現像処理部350は、露出補正を行う。露出補正は、RAW画像の各画素のR値、G値、およびB値のそれぞれに同一の露出補正係数Gaを乗じることに行われる。このように、R値、G値、B値のそれぞれに同一の係数を乗じることは、デジタルスチルカメラ100の撮像素子への入射光量を増減することに相当する。そのため、露出補正を行うことにより、デジタルスチルカメラ100の撮影段階において露光量を変更することと同様の効果を得ることができる。露出補正係数Gaは、現像内容指定画面SDC(図5、図6)で「自動露出補正」がONに設定されている場合には、上述のように縮小画像のヒストグラム解析を行うことにより決定される。一方、現像内容指定画面SDCで「自動露出補正」がOFFに設定されている場合には、露出補正係数Gaは、拡張設定の「露出」の項目の設定内容に従って決定される。
ステップS310において、本現像処理部350は、色再現処理を行う。通常、撮像素子の分光感度特性は、人間の目の分光感度特性とは異なっている。そのため、RAW画像のRGB値で表される色は、人間が観察する色と異なったものとなる。そこで、色再現処理では、RAW画像のRGB値を人間の視感度特性に合わせて調整することにより、正しい色を再現する。なお、色再現処理は、R値、G値、B値のそれぞれを成分とする3次元ベクトルに、補正係数を要素とする3×3の行列を乗ずる(3×3の行列演算)ことにより行われる。この補正係数はカメラの機種毎に異なるため、RAW画像ファイル形式の解析によりカメラの機種を特定し、その機種毎に予め準備しておいた補正係数を使用する。
ステップS312において、本現像処理部350は、色相補正処理を行う。色相補正は、色再現処理と同様に、3×3の行列演算によって行われる。色相補正に使用される3×3の行列の各要素は、目標とする色相の回転角度に基づいて設定される。色相の回転角度は、現像内容指定画面SDC(図5、図6)で設定される「色合い」の項目の設定内容に基づいて決定される。
ステップS314において、本現像処理部350は、トーン補正処理を行う。トーン補正処理では、入力階調値と出力階調値との関係を表すトーンカーブを用いて、RAW画像の階調値が補正される。トーンカーブは、現像内容指定画面SDC(図5、図6)における「スタイル」の設定内容に基づいて決定される。また、拡張設定の「コントラスト」が変更されている場合には、「コントラスト」の設定状態に基づいて決定される。
ステップS316において、本現像処理部350は、階調特性を補正するための階調補正(ガンマ補正)を行う。ガンマ補正を行うためのガンマ値(γ)は、現像後の画像データの種類に対応した値が用いられる。そのため、ガンマ補正により、RAW画像の階調特性は、現像後の画像データの種類に対応した階調特性に補正される。
ステップS318において、本現像処理部350は、色変換処理を行う。この色変換処理は、RGB空間の色情報であるRAW画像のRGB値を、現像済画像で使用される色空間(例えば、YCbCr空間)の色成分値に変換する処理である。色変換処理も、色再現処理(ステップS310)や色相補正処理(ステップS312)と同様に、3×3の行列演算によって行われる。
ステップS320において、本現像処理部350は、ノイズ除去処理を行う。ノイズ除去処理は、画像内に存在するノイズ成分を除去してクリアな画像を生成する処理である。ノイズ除去処理は、例えば、ガウシアンフィルタを用いて行うことができる。
ステップS322において、本現像処理部350は、シャープネス調整処理を行う。シャープネス調整(すなわち、エッジの強調処理)は、撮像素子に設けられている光学的ローパスフィルタの影響により画像内の輪郭がぼけた部分を補正してくっきりはっきりさせる処理である。なお、ステップS320のノイズ除去処理とステップS322のシャープネス調整処理は、ステップS314のトーン補正よりも前に行うものとしても良い。
このように、RAW画像を本現像処理することにより生成された画像(現像済画像)から、本現像処理部350は、JPEG形式の現像済画像データ(印刷用画像データ)を生成する。現像済画像データとしてJPEG形式の画像データが生成される場合、本現像処理の演算処理で使用されている16ビットのデータは、現像済画像データの生成時に8ビットに変換される。なお、現像済画像データの形式は、必ずしもJPEG形式でなくともよい。一般に、現像済画像データの形式は、TIFF形式やBMP形式等の標準的な画像データ形式であれば任意の形式とすることができる。現像済画像データの生成の後、図10の本現像処理は終了し、制御は図4の一括現像処理に戻される。ステップS170では、本現像処理により生成された現像済画像データが、現像済画像格納部420(図3)に格納される。
ステップS180において、現像処理部300(図3)は、現像対象として指定された全てのRAW画像ファイル(対象ファイル)が現像されたか否かを判断する、全ての対象ファイルが現像されたと判断された場合には、一括現像処理は終了する。一方、全ての対象ファイルが現像されていない、すなわち、未現像のRAW画像ファイルが存在すると判断された場合には、制御はステップS110に戻される。そして、現像対象として指定された全てのRAW画像ファイルの現像が完了するまで、ステップS110〜S180が繰り返し実行される。
図11は、個々のRAW画像ファイルに対して設定された現像条件で現像処理を行う個別現像処理の流れを示すフローチャートである。図11に示す個別現像処理では、ステップS110がステップS110aに置き換えられている点と、ステップS120とステップS130との間にステップS122が設けられている点と、ステップS150とステップS160との間に3つのステップS152〜156が設けられている点と、ステップS160とステップS170との間にステップS162が設けられている点と、ステップS180が省略されている点とにおいて、図4に示す一括現像処理と異なっている。他の点は、一括現像処理と同様である。
ステップS110aにおいて、現像処理部300(図3)は、図4のステップS110と同様に現像指定を取得する。図12は、ステップS110aにおいて表示される現像内容指定画面SDCaの一例を示す説明図である。図12に示す個別現像処理の現像内容指定画面SDCaは、拡張設定領域REIが省略されている点と、「現像開始」ボタンBDSが「画像選択」ボタンBISに置き換えられている点と、で一括現像処理の現像内容指定画面SDC(図5、図6)と異なっている。図12に示すように、個別現像処理の現像内容指定画面SDCaでは、画像選択領域において個別現像処理の対象となる1つのRAW画像ファイルが選択される。ユーザがRAW画像ファイルを選択した後「画像選択」ボタンBISを操作することにより、選択されたRAW画像ファイルが現像対象として指定され、現像内容指定画面SDCaで設定された条件が現像条件として指定される。図12の例では、「自動露出補正」がONに設定されており、スタイルは、標準的な現像条件が適用される「忠実」に設定されている。
ステップS122において、表示用現像処理部340(図3)は、ステップS120で取得したRAW画像データから、ディスプレイ220上に現像結果を表示するため表示用RAW画像を生成する。表示用RAW画像は、RAW画像にプリゲイン処理と画素補間処理と施すことにより生成される画像である。生成された表示用RAW画像は、中間データ格納部410(図3)に格納される。このステップS122における表示用画像生成は、ステップS160における本現像処理と同一である必要はない。通常表示用の画像は表示用に限定して使用される一時的な画像であるため、本現像済画像よりも低画質のVGAサイズ(640×480画素)〜XGAサイズ(1024×768画素)程度の画像でよい。これに対し、現像対象とするRAW画像は600万画素や1000万画素であるので、表示用画像を生成する際には高縮小率で縮小が行われる。このため、ステップS160における本現像で使用されるような高度で高画質な画素補間(ステップS304)ではなく、水平垂直方向に隣接するR,G1,B,G2の値を利用し、Gについては相加平均を行った上で、R,B,(G1+G2)/2の値をもって1つの画素のRGB値とすることで、縦横1/2の縮小画像データを生成するという簡便で高速な画素補間を行って、表示用画像を生成すれば良い。
ステップS152では、表示用RAW画像に現像処理(表示用現像処理)が施され、現像済画像である表示用画像が生成される。図13は、ステップS152で実行される表示用現像処理の流れを示すフローチャートである。図13に示す表示用現像処理は、表示用RAW画像の生成(図11のステップS122)の際に行われるプリゲイン処理(ステップS302)および画素補間処理(ステップS304)が省略されている点と、ホワイトバランス調整(ステップS306)の前に、画像サイズの調整処理(ステップS305)が設けられている点で、図10に示す本現像処理と異なっている。他の点は、本現像処理と同じである。
ステップS305において、表示用現像処理部340は、中間データ格納部410に格納された表示用RAW画像の大きさの調整(画像サイズ調整)を行う。具体的には、縮小や切り出しを行うことにより、表示用RAW画像をディスプレイ220での表示に適した大きさ(例えば、640×480画素)に変更する。なお、本実施例では、図13に示す表示用現像処理において画像サイズ調整を行っているが、図11のステップS122における表示用RAW画像の生成時に画像サイズを調整するものとしてもよい。
次いで、ステップS306〜S322において、縮小された表示用RAW画像には、本現像処理(図10)と同様に、ホワイトバランス調整処理、露出補正処理、色再現処理、色相補正処理、トーン補正処理、ガンマ補正処理、色変換処理、ノイズ除去処理、およびシャープネス調整処理が順に施される。これらの処理を表示用RAW画像に施すことにより、表示用の現像済画像(プレビュー画像)が生成される。なお、プレビュー画像の生成には、ステップS110aにおいて取得された現像条件が使用される。プレビュー画像の生成の後、制御は図11の個別現像処理に戻され、ステップS154において、プレビュー画像はディスプレイ220上に表示される。このように、表示用RAW画像は、ステップS122およびステップS305において表示用サイズに縮小されているので、表示用画像に対するステップS306〜S322に関わる処理量は画素数に比例して少なくなる。すなわち、極めて高速に処理を行えることになり、現像処理を行うユーザの待ち時間を短縮するという大きな効果がある。
図14は、ステップS154において表示される現像結果プレビュー画面SPVを示す説明図である。現像結果プレビュー画面SPVには、図12で設定された内容に従って現像処理を行った結果を表すプレビュー画像IPVが大きく表示される。現像結果プレビュー画面SPVには、図12の現像内容指定画面SDCaに設けられ現像条件を設定するための設定領域RBIに加えて、表示用現像処理において用いられた現像条件が表示される現像条件表示領域RDCが設けられている。現像条件表示領域RDCには、現像条件として、「露出」、「色温度」、「色合い」、「コントラスト」および「シャープネス」の項目の設定状態が示されている。現像条件表示領域RDCには、また、自動補正を行ったか否かを示すチェックボックスが表示される。図12に示す現像内容指定画面SDCaでは、「自動露出補正」がONに設定されている。そして、自動補正のための解析によって得られた結果をデフォルトで現像条件表示領域RDCに表示する。露出を2段階明るくし、色温度を1段階下げることが望ましいと判断された場合、図14に示すように2段階画像を明るくする露出補正が行わる位置に三角のカーソルが設定され、自動補正のチェックボックスにチェックが付されている。また、色温度は、1段階低温度側にカーソルが設定されている。
ユーザが現像結果プレビュー画面SPV上で操作を行うと、その操作の内容は現像処理部300(図3)により取得される。そして、図11のステップS156において、現像処理部300は、現像結果プレビュー画面SPV上での操作が、現像条件の変更を指示するものであるか否かを判断する。ユーザの操作が現像条件を変更する指示するものであった場合、制御はステップS130に戻され、ステップS130〜156が繰り返し実行される。一方、ユーザの操作が現像条件を変更する指示するものでなかった場合、すなわち、ユーザが「現像開始」ボタンBDSを操作した場合、制御はステップS160に移される。
図15は、ユーザが図14の現像結果プレビュー画面SPV上で現像条件を変更した一例を示す説明図である。図15の例では、ユーザが現像条件表示領域RDCを操作することにより、図14に示す状態からコントラストが2段階高く設定され、シャープネスが2段階低く設定された状態を示している。図15に示すように、ユーザにより現像条件の設定が変更されると、ステップS152において再度表示用現像処理が変更された条件で実施され、プレビュー画像IPVは、図14に示す状態からコントラストが高くシャープネスが低い状態で再度現像された画像に変化する。また、現像条件表示領域RDCの自動補正のチェックボックスに付されていたチェックマークは、消去される。ユーザが図15の現像結果プレビュー画面SPVにおいて「現像開始」ボタンBDSを操作すると、RAW画像に対して本現像処理(ステップS160)が行われる。
図11のステップS162において、現像処理部300は、現像済画像を必要に応じてサイズを変更して表示する。図16は、ステップS162においてディスプレイ220(図3)上に表示される現像済画像表示画面SDIの一例を示している。現像済画像表示画面SDIには、本現像処理(ステップS160)において生成された現像済画像IDVが大きく表示される。ユーザが、現像済画像表示画面SDI上に設けられた「保存」ボタンBSVを操作すると、現像済画像から生成されたJPEG形式の現像済画像データは、図11のステップS170において現像済画像格納部420(図3)に格納され、図11の個別現像処理が終了する。
図17は、ステップS110aにおいて表示される現像内容指定画面SDCaの図12とは別の一例を示す説明図である。図17の現像内容指定画面SDCaは、「自動露出補正」がOFFに設定されている点と、スタイルが「自動スタイル」に設定されている点で、図12の現像内容指定画面SDCaと異なっている。なお、スタイルを「自動スタイル」とすることにより、デジタルスチルカメラ100での撮影時のシーン設定に基づいて現像条件が設定される。撮影時のシーン設定は、RAW画像ファイル(図2)のヘッダ部格納された撮影条件から取得される(後述する)。なお、図17の例では、デジタルスチルカメラ100での撮影時には、シーンの設定がされていないものとしている。その場合、露出補正以外の現像条件には標準的な条件が使用される。
ここで、図17の現像内容指定画面SDCaでスタイルが「自動スタイル」に設定されている場合についてその処理方法を説明する。スタイルを「自動スタイル」とすることにより、デジタルスチルカメラ100での撮影時のシーン設定に基づいて現像条件が設定される。撮影時のシーン設定は、RAW画像ファイル(図2)のヘッダ部に格納された撮影条件から取得される。
例えば、デジタルスチルカメラ用の画像ファイルフォーマット規格のExif2.21に準拠したRAW画像ファイルの場合、Exif IFDやOth IFD Exif Private Tag内に記録されている撮影シーンタイプ(SceneCaptureType)に撮影シーンが記録されている。撮影シーンタイプの値は、種々の撮影シーンに対応づけられている。具体的には、1の場合は風景、2の場合は人物、3の場合は夜景、0の場合は標準という撮影シーンがそれぞれ対応づけられている。この撮影シーンタイプの値を利用して画像を最適に現像するための条件を自動的に決定するのが自動スタイルである。風景が設定されていた場合は、標準の処理に比較してコントラストや彩度を高くし、シャープネスの補正を行う。また、空や緑部の記憶色補正処理を行う等の処理を行う。人物が設定されていた場合は、肌色の記憶色の補正を行い、人物に相応しいソフトなシャープネスの処理とコントラスト再現を行う。夜景の場合は、過度な露出補正を行わず、画面全体に対してノイズ除去を行い、コントラストは抑え目に再現する処理を行う。
また、撮影シーンタイプ(SceneCaptureType)の他にも、撮影コントラスト(Contrast)、撮影彩度(Saturation)、撮影シャープネス(Sharpnes)等、Exifのタグ内には各種の撮影時の設定が記録されている。これらの、撮影コントラストの値(0=標準,1=軟調,2=硬調)や、撮影サイドの値(0=標準,1=低彩度,2=高彩度)や、撮影シャープネスの値(0=標準,1=弱い,2=強い)等に基づいて、図10に示す本現像処理時や、図13に示す表示用現像処理時の現像条件を変更することも可能である。
さらに、これ以外の設定を撮影時設定情報としてタグに記録することで、このタグ情報を読み込み、更に高度な現像スタイル(現像仕上げ)の設定を行うことも可能である。例えば、より忠実な色再現を行う「忠実」や、ソフトな画像再現を行う「ソフト」、忠実よりも絵作りを積極的にしながらも自然な印象に仕上げる「自然な」、夜明け前の色温度の高いキリットした風景の印象の「クールな風景」、黄昏時の柔らかで暖かな風景の印象の「ウォームな風景」、朝焼けや夕焼けの赤を鮮やかに再現する「夕焼け」、また、白のウェディングドレスの階調や女性の肌を柔らかに再現する「ウェディングポートレート」、鮮やかな色彩でやんちゃな子供が遊んでいる感じを再現する「キッズ」、室内な暖かな光を表現する「ウォームな室内」等、現像条件に連動可能なタグ情報を規定し、このタグ情報により現像時の現像条件を変更しても良い。
また、これ以外の設定を撮影時設定情報に記録することで、このタグ情報を読み込み、モノクロ現像や、赤色や橙色や黄色や緑色のフィルターをかけたようなコントラストを演出するモノクロ現像条件を行っても良い。モノクロの場合は、RGBの比率に応じて輝度信号を調整し、なおかつ出力画像のRGB値を同一にすることで現像処理が行える。赤色や橙色や黄色や緑色のフィルターをかけたような処理は、この際のR,G,Bの値に対して輝度値を生成する際の割合を変えることで実現可能である。
図17の現像内容指定画面SDCaで、ユーザが「画像選択」ボタンBISを操作すると、図11のステップS130において、自動露出補正が設定されていないと判断され、露出補正なしで表示用現像処理(ステップS152)が行われる。そして、ステップS154において、露出補正なしで現像されたプレビュー画像が表示される。
図18は、図17に示す現像内容指定画面SDCaでの設定内容で現像処理されたプレビュー画像IPVが表示されている現像結果プレビュー画面SPVを示している。図18の例では、露出アンダーのRAW画像ファイルが、ステップS110a(図11)で選択されている。そのため、プレビュー画像IPVとして、露出アンダー状態の画像が現像結果プレビュー画面SPV上に表示されている。
図19は、図18に示す状態において、ユーザが「露出」の設定を3段階高める操作を行った様子を示す説明図である。このとき、図11のステップS156では、現像条件が変更されたと判断され、表示用現像処理(ステップS152)では、露出を3段階高める露出補正が行われる。そのため、図19に示すように、プレビュー画像IPVとして、露出がややオーバーの画像が現像結果プレビュー画面SPV上に表示される。
図20は、図19に示す状態において、ユーザが「自動露出補正」の設定をONに変更する操作を行った様子を示す説明図である。このとき、図11のステップS156では、現像条件が変更されたと判断される。そして、ステップS130において、自動露出補正が設定されていると判断され、露出補正量が縮小画像の解析結果に基づいて設定される。その後、縮小画像の解析結果に基づいて設定された露出補正量を用いて表示用現像処理(ステップS152)がされる。そのため、図20に示すように、プレビュー画像IPVとして、適正露出の画像が現像結果プレビュー画面SPV上に表示される。
図21は、図20に示す状態において、ユーザが、コントラストを2段階高く設定し、シャープネスを2段階低く設定する操作を行った状態を示している。ユーザの操作により、プレビュー画像IPVは、図15の例と同様に、図20に示す状態からコントラストが高くシャープネスが低い状態に変化する。また、現像条件表示領域RDCの自動補正のチェックボックスに付されていたチェックマークは、消去される。ユーザが図21の現像結果プレビュー画面SPVにおいて「現像開始」ボタンBDSを操作すると、図22に示す現像済画像表示画面SDIに現像済画像IDVが表示される。そして、現像済画像表示画面SDIの「保存」ボタンBSVが操作されると、現像済画像から生成されたJPEG形式の現像済画像データが現像済画像格納部420(図3)に格納される。
図23は、ステップS110aにおいて表示される現像内容指定画面SDCaのさらに別の一例を示す説明図である。図23の現像内容指定画面SDCaは、「自動露出補正」がONに設定されている点で、図17の現像内容指定画面SDCaと異なっている。図24は、図23の現像内容指定画面SDCaにおいてユーザが「画像選択」ボタンBISを操作することにより表示される現像結果プレビュー画面SPVを示す説明図である。図24に示す現像結果プレビュー画面SPVでは、2段階画像を明るくする露出補正が行われ、色温度は1段階低温度側に調整されたことが示されている。
図25は、図24に示す状態において、ユーザが「露出」の設定をさらに1段階高める操作を行った様子を示す説明図である。図25の例では、ユーザが「露出」の設定を変更しているため、「自動露出補正」は図24のONからOFFに変更されている。また、現像条件表示領域RDCの自動補正のチェックボックスに付されていたチェックマークは、消去される。
図26は、図25に示す状態において、ユーザが「スタイル」を「モノクロ」に変更した様子を示す説明図である。図26の例では、「スタイル」が「モノクロ」に変更されている。そのため、現像結果プレビュー画面SPVには、プレビュー画像IPVとして、白黒の画像が表示される。また、白黒の画像では設定することができない「色温度」と「色合い」の項目の値を示す指標の色は灰色に変更され、これらの設定は変更することができなくなる。
図27は、図26に示す状態において、ユーザが露出補正量を1段階下げ、コントラストを2段階高め、シャープネスを2段階低減する操作を行った様子を示している。この現像条件の変更により、プレビュー画像IPVとして、図26の現像結果プレビュー画面SPVのプレビュー画像IPVよりも全体に明度が低減され、コントラストが高められた画像が表示される。ユーザが図27の現像結果プレビュー画面SPVにおいて「現像開始」ボタンBDSを操作すると、図28に示す現像済画像表示画面SDIに白黒の現像済画像IDVが表示される。そして、現像済画像表示画面SDIの「保存」ボタンBSVが操作されると、現像済画像から生成されたJPEG形式の現像済画像データが現像済画像格納部420(図3)に格納される。
このように、第1実施例では、スクリーンネイル画像から画像の解析に適した所定の解像度の縮小画像が生成され、生成された縮小画像を解析して現像処理時の露出補正係数が算出される。そして、算出された露出補正係数を用いて現像処理を行うことにより、現像済画像の明るさが補正される。そのため、非線形処理が施された現像済画像の明るさの調整で発生しうる色のずれを抑制するとともに、現像済画像の明るさをより好ましいものすることができる。また、現像済画像データの形式によっては、階調値が8ビットで表される。このような場合には、現像済画像に対して明るさの補正を行うと階調値が離散的となり(「階調ジャンプ」と呼ばれる)、明るさ補正後の画像が不自然なものとなる可能性がある。第1実施例では、明るさの補正は、16ビットのデータを用いて演算処理が行われる現像処理により補正される。そのため、明るさの補正による階調ジャンプの発生を抑制して、明るさの補正が行われた画像をより好ましいものとすることができる。
また、第1実施例では、表示用現像処理は、予め解像度が低減された表示用RAW画像に対して行われる。そのため、表示用現像処理に要する時間が短縮され、ユーザによる現像条件が変更されてからプレビュー画像が再表示されるまでの時間が短縮される。そのため、ユーザは現像条件の変更結果を速やかに確認することができるので、現像条件の変更がより容易となる。
なお、第1実施例では、縮小画像の解析結果から露出補正係数を算出しているが、縮小画像の解析結果から、他の現像条件を設定することも可能である。たとえば、縮小画像に含まれる白色領域を検出し、白色領域の色からホワイトバランス調整処理(図10のステップS306)に使用されるパラメータを決定することも可能である。また、縮小画像に含まれる特定種類の被写体(例えば、空や顔)を検出し、色再現処理(図10のステップS310)に使用されるパラメータを決定することもできる。この場合、特定種類の被写体の色が、目標となる色の範囲に収まるように色再現処理のパラメータが設定される。
さらに、縮小画像により表される被写体を特定し、被写体に応じて現像条件を設定することも可能である。例えば、被写体が風景である場合、トーン補正処理(図10のステップS310)において画像のコントラストを高めるトーンカーブを使用するように現像条件を決定することも可能である。一方、被写体が人物である場合には、トーン補正処理においてコントラクトを低減するトーンカーブを使用するように現像条件を決定することも可能である。また、被写体が夜景である場合、明るさの補正を抑制するように現像条件を決定することもできる。さらに、色再現処理(図10のステップS310)に使用されるパラメータをこれらの被写体の種類(シーン)に応じてより適した色再現が行われるようにしてもよい。
B.第2実施例:
図29は、第2実施例における表示用現像処理の流れを示すフローチャートである。第2実施例の表示用現像処理では、図13に示す第1実施例の表示用現像処理のステップS306〜S312(ホワイトバランス調整、露出補正、色再現、および色相補正の各処理)が、補正処理行列生成処理(ステップS330)と、補正処理行列乗算処理(ステップ)に置き換えられている。他の点は、第1実施例の表示用現像処理と同じである。
上述のように、ホワイトバランス調整処理と露出補正処理では、RGB値に対して所定の補正係数が乗算される。また、色再現処理と色相補正処理とにおいては、3×3の行列演算が行われる。これらの処理はいずれも線形演算であるため、図13の表示用現像処理のステップS306〜S312で行われる演算処理は、次の式(3)で表される。
ここで、ベクトル(r,g,b)は、ステップS306〜S312で行われる演算処理前(すなわち、表示用RAW画像)のRGB値を表しており、ベクトル(r’,g’,b’)は、ステップS306〜S312で行われる演算処理後のRGB値を表している。式(3)の行列は、右から順に、ホワイトバランス調整、露出補正、色再現、および色相補正に使用される行列を表している。本実施例では、ベクトル(r,g,b)の各値は12ビットの数値(もしくは12ビットに符号を追加した数値)であり、式(3)の各行列の要素は符号付の16ビットの数値である。
ステップS330では、これらの行列の乗算を行うことにより、単一の行列(補正処理行列)を生成する。そして、ステップS332では、補正処理行列を用いて次の式(4)の演算処理を行うことにより、ホワイトバランス調整、露出補正、色再現、および色相補正の各処理を一括して行う。
ここで、式(4)の行列は、式(3)の行列を乗算して得られた補正処理行列である。式(4)の行列の各要素は、やはり16ビットの符号付の精度であり、式(3)からの計算過程で飽和したり精度が落ちないように要素の計算は32ビット精度で行い、最終的に16ビット精度にまとめられる。式(4)の処理も飽和等が発生しない様に計算が行われる。
このように、予め補正処理行列を生成し、補正処理行列を用いて複数の処理を一括して行うことにより、表示用RAW画像に対する演算処理量を低減することができる。
なお、第2実施例では、補正処理行列の生成と、補正処理行列による一括処理を表示用現像処理に適用しているが、予め処理に使用される複数の行列から単一の行列を生成可能であれば、生成した単一の行列を用いて一括して複数の処理を行うことが可能である。具体的には、本現像処理(図10)においても、ステップS306〜S312に換えて補正処理行列を生成し(図29のステップS330)、生成した補正処理行列によりホワイトバランス調整、露出補正、色再現、および色相補正の各処理を一括して行う(ステップS332)ものとしてもよい。
C.第3実施例:
図30は、第3実施例における本現像処理の流れを示すフローチャートである。第3実施例の本現像処理では、図10に示す第1実施例の本現像処理の印刷用画素補間処理(ステップS304)が、露出補正処理(ステップS308)の後に移されている。他の点は、第1実施例の本現像処理と同じである。
上述のように、ホワイトバランス調整処理と露出補正処理では、RGB値のそれぞれに対して所定の補正係数が乗算される。そのため、画素の色情報が不足している状態であっても、各画素の有している色情報の階調値に補正係数を乗ずることにより処理を行うことができる。
このように、画素補間処理(ステップS304)に先立ってホワイトバランス調整処理(ステップS306)と露出補正処理(ステップS308)を行うことにより、これらの処理に要する演算処理量を低減することができる。
なお、第3実施例において、表示用現像処理(図13)においては、画素補間処理は、ホワイトバランス調整処理(S306)の前に行われる。これにより、表示用現像処理において使用される表示用RAW画像を生成することが可能となる。なお、表示用現像処理では、予め生成される表示用RAW画像はその大きさが小さいため、RAW画像に対してホワイトバランス調整処理等を行う場合よりも、表示用現像処理に要する演算処理量は低減される。また、ユーザから現像条件の変更指示を受けた場合に、補間処理済の画像を用いて現像処理の残りを行うだけで済む。
このように、第3実施例では、本現像処理と表示用現像処理とのそれぞれの現像処理において、画素補間処理の実行時期が異なるように設定される。そのため、本現像処理(図30)と表示用現像処理(図13)とのいずれにおいても演算処理量を低減することができる。
D.第4実施例:
図31は、第4実施例におけるパーソナルコンピュータ200aの構成を構成を概略的に示す概略構成図である。第4実施例のパーソナルコンピュータ200aは、現像処理部300のスクリーンネイル縮小部320が解析用現像処理部320aに置き換えられている点で、図3に示す第1実施例のパーソナルコンピュータ200と異なっている。他の点は、第1実施例と同様である。
図32は、第4実施例における一括現像処理の流れを示すフローチャートである。第4実施例の一括現像処理は、ステップS140がステップS142に置き換えられている点で、図4に示す第1実施例の一括現像処理と異なっている。他の点は、第1実施例と同じである。なお、以下では、一括現像処理についてのみ説明しているが、個別現像処理についても同様に処理が行われる。
図33は、図32のステップS142において、解析用現像処理部320aにより実行される解析用現像処理の流れを示すフローチャートである。解析用現像処理は、図10に示す本現像処理から、ホワイトバランス調整処理(ステップS306)、露出補正処理(ステップS308)、色相補正処理(ステップS312)、トーン補正処理(ステップS314)、色変換処理(ステップS318)、ノイズ除去処理(ステップS320)、およびシャープネス調整処理(ステップS322)が省略されている点と、印刷用画素補間処理(ステップS304)が縮小RAW画像生成処理(ステップS305)に置き換えられている点で、本現像処理と異なっている。
ステップS305では、解析用現像処理部320aが、RAW画像から簡易的な画素補間処理(簡易画素補間)を行う。そして、簡易画素補間により生成された画像を縮小することにより、縮小されたRAW画像(縮小RAW画像)を生成する。
図34は、簡易画素補間が行われる様子を示す説明図である。上述のように、デジタルスチルカメラ100(図1)の撮像素子には、図34(a)に示すようにBayer配列のカラーフィルタが配置されている。そのため、緑色の入射光を検出する素子(G画素)と、赤色の入射光を検出する素子(R画素)は、図34(b)および図34(c)に示すように、まばらな状態となっている。簡易画素補間においては、緑色の色情報が欠落している画素については、図34(b)に示すように、その画素の4近傍の画素のG値からバイリニア法による補間処理を行うことによりG値が算出される。また、赤色の色情報が欠落している画素については、上下2つの画素がR画素である場合には、上下2つのR画素のR値からその画素のR値が線形補間される。一方、斜め方向の画素がR画素である場合には、斜めの4つのR画素からバイリニア法によりR値が算出される。また、青色の色情報が欠落している画素についても、赤色の色情報が欠落している画素と同様に補間処理が行われる。なお、第4実施例では、バイリニア法を用いて補間処理を行っているが、他の方法により保管処理を行ってもよい。たとえば、ある画素に欠落している色情報を、その画素に隣接するいずれか1画素の色情報にすることも可能である。また、ある画素に欠落している色情報を、その画素に隣接する画素の色情報の平均値とすることも可能である。
図35は、図34とは別の方法により簡易画素補間が行われる様子を示す説明図である。図35(a)は、図34(a)と同様に、カラーフィルタがBayer配列に従って配置されている様子を示している。図35の簡易画素補間では、4×4の画素の領域からRGBの全ての色情報を有する1つの画素(RGB画素)が生成される。具体的には、4×4の画素の領域から、R画素、G画素、及びB画素がそれぞれ1つずつ選択される。そして、選択された画素のRGB値が、RGB画素のRGB値に設定される。このように、4×4の画素の領域から1つのRGB画素を生成することにより、簡易画素補間において1/4の縮小処理を行うことができる。なお、1つのRGB画素が生成に使用される画素の領域の大きさは、必ずしも4×4でなくてもよい。また、RGB画素の生成に使用される4×4の画素領域中のR画素、G画素、およびB画素(使用画素)は、4×4の画素の領域の中の画素であれば、任意の画素とすることができる。例えば、ステップS122で説明したように2×2の領域で縮小を行っても良い。
このように、RAW画像から簡易画素補間により生成された画像は、画像解析に使用される320×240画素にまで縮小され、縮小RAW画像が生成される。
生成された縮小RAW画像には、色再現処理(ステップS310)と、ガンマ補正処理(S316)と、が施され、解析用の縮小画像が生成される。そして、図32のステップS150において、生成された縮小画像を解析することにより、現像条件の設定が行われる。
このように、第4実施例では、解析用現像処理により縮小画像が生成され、生成された縮小画像を解析することにより現像条件が設定される。そのため、RAW画像ファイル(図2)にスクリーンネイル画像データが含まれていない場合や、スクリーンネイル画像が解析に適していない場合(たとえば、スクリーンネイル画像の解像度が低すぎる場合やスクリーンネイル画像が白黒画像の場合)においても、解析用現像処理により生成された縮小画像を用いて現像条件を決定することができる。
E.第5実施例:
図36は、第5実施例におけるパーソナルコンピュータ200bの構成を構成を概略的に示す概略構成図である。第5実施例のパーソナルコンピュータ200bは、現像処理部300bに、縮小画像生成処理選択部360と、解析用現像処理部320aと、が付加されている点で、図3に示す第1実施例のパーソナルコンピュータ200と異なっている。他の点は、第1実施例と同様である。
図37は、第5実施例における一括現像処理の流れを示すフローチャートである。第5実施例の一括現像処理は、ステップS132がステップS130の後に付加されている点と、ステップS132からの分岐先にステップS142が付加されている点で、図4に示す第1実施例の一括現像処理と異なっている。他の点は、第1実施例と同じである。なお、以下では、一括現像処理についてのみ説明しているが、個別現像処理についても同様に処理が行われる。
ステップS132において、縮小画像生成処理選択部360は、スクリーンネイル画像が解析に適したものであるか否かを判断する。スクリーンネイル画像が解析に適していると判断された場合には、制御はステップS140に移され第1実施例と同様にスクリーンネイル画像を縮小して縮小画像が生成される。一方、スクリーンネイル画像が解析に適していないと判断された場合には、制御はステップS142に移され第4実施例と同様に解析用現像処理により縮小画像が生成される。
スクリーンネイル画像が解析に適しているか否かは、RAW画像ファイル(図2)のデータ形式に基づいて判断される。なお、RAW画像ファイルのデータ形式は、上述のように、ヘッダ部に格納されたメーカや型番などの情報、あるいは、RAW画像ファイルに付された拡張子によって特定される。そして、特定されたRAW画像ファイルのデータ形式に基づいて、スクリーンネイル画像が解析に適しているか否かが判断される。たとえば、スクリーンネイル画像の解像度が低すぎる場合、スクリーンネイル画像が白黒画像である場合、あるいは、スクリーンネイル画像データがRAW画像ファイルに含まれていない場合には、スクリーンネイル画像は解析に適していないと判断される。なお、スクリーンネイル画像データの形式は、スクリーンネイル画像データそのものを解析することによって特定することもできる。
このように第5実施例では、スクリーンネイル画像が解析に適している場合には、スクリーンネイル画像を縮小することにより縮小画像が生成される。一方、スクリーンネイル画像が解析に適していない場合には、RAW画像に解析用現像処理を施すことにより縮小画像が生成される。通常、解析用現像処理は、スクリーンネイル画像の縮小処理よりも演算処理量が多くなる。そのため、スクリーンネイル画像が解析に適している場合には、スクリーンネイル画像を縮小して縮小画像が生成されるので、現像条件を設定するための演算処理量を低減することができる。一方、スクリーンネイル画像が解析に適してない場合には、解析用現像処理により縮小画像が生成される。そのため、縮小画像を解析することによる現像条件の設定をより確実に行うことができる。
なお、第5実施例では、スクリーンネイル画像の形式、あるいは、メーカや型番などのデジタルスチルカメラ100(図1)に関する情報に基づいて、解析用現像処理により生成された画像と、スクリーンネイル画像を縮小した画像とから、解析に使用される縮小画像を選択しているが、縮小画像の選択は、ユーザによる指定に従って行うものとしてもよい。
F.第6実施例:
図38は、第6実施例におけるパーソナルコンピュータ200cの構成を構成を概略的に示す概略構成図である。第6実施例のパーソナルコンピュータ200cは、現像処理部300cに共通現像条件設定部370が設けられている点と、内部記憶装置250に共通現像条件格納部430が設けられている点で、図31に示す第4実施例のパーソナルコンピュータ200aと異なっている。他の点は、第4実施例と同様である。
図39は、現像処理の際に共通して設定される現像条件(共通現像条件)を設定するための共通現像条件設定画面SCCを示す説明図である。この共通現像条件設定画面SCCは、ユーザが設定用アプリケーションを起動した際、あるいは、画像処理用アプリケーションにおいて共通現像条件の設定を指示した際、共通現像条件設定部370によりディスプレイ220(図38)上に表示される。
共通現像条件設定画面SCCには、露出補正量の設定領域RCEと、ガンマ値の設定領域RCGと、が含まれている。ユーザが露出補正量の設定領域RCEにおいてポインティングデバイスを操作することにより三角形の指標を移動させると、露出補正量の共通設定値が変更される。また、ユーザがガンマ値の設定領域RCGにおいてポインティングデバイスを操作することにより三角形の指標を移動させると、ガンマ値の共通設定値が変更される。ユーザが「設定」ボタンBCCを操作すると、変更された露出補正量とガンマ値の共通設定値は、共通現像条件設定部370により共通現像条件格納部430に格納される。ユーザが「キャンセル」ボタンBCNを操作すると、変更された共通設定値は破棄され、共通現像条件格納部430に格納された共通現像条件は変更されない。
図40は、第6実施例における解析用現像処理の流れを示すフローチャートである。第6実施例の解析用現像処理は、ステップS305とステップS310との間に露出の逆補正を行うステップS340が付加されている点と、ガンマ補正を行うステップS316がステップS317に置き換えられている点で、第4実施例の解析用現像処理と異なっている。なお、以下では、解析用現像処理についてのみ説明しているが、本現像処理(図10)および表示用現像処理(図13)についても、ガンマ補正を行うステップS316は、ステップS317に置き換えられる。
ステップS340では、解析用現像処理部320a(図38)が、共通現像条件格納部430に格納された露出補正量の共通設定値に基づいて露出の逆補正を行う。具体的には、露出補正量の共通設定値に相当する露出補正係数の逆数を縮小RAW画像のRGB値に乗算する。このように、露出の逆補正を行うことにより、生成された縮小画像を解析することにより得られる露出補正係数は、露出補正量の共通設定値に相当する露出補正係数が標準的な露出補正係数に乗算された値となる。そのため、解析によって得られた露出補正係数を用いて、本現像処理あるいは表示用現像処理を行うことにより、現像処理結果はユーザにより設定された露出補正量の共通設定値が反映された値となる。
図39の例では、露出補正量の共通設定値は、「−1/3EV」に設定されている。そのため、縮小RAW画像のRGB値には、「−1/3EV」に相当する露出補正係数「0.79」の逆数「1.26」が乗じられる。そのため、縮小画像の解析によって得られる露出補正係数は、露出補正量が設定されていない時の露出補正係数に、「−1/3EV」に相当する露出補正係数「0.79」が乗算されたものとなる。なお、「EV」とは、露出量(Exposure Value)であり、「+1EV」の補正は、絞りを1段開けること、あるいは、シャッタスピードを1段遅くすることに相当する。また、「−1EV」の補正は、絞りを1段絞ること、あるいは、シャッタスピードを1段速くすることに相当する。
ステップS317では、解析用現像処理部320aが、共通現像条件格納部430に格納されたガンマ値(γ)の共通設定値を用いてガンマ補正を行う。なお、上述したように、本現像処理(図10)および表示用現像処理(図13)についても、ガンマ補正を行うステップS316は、ステップS317に置き換えられる。そのため、種々の現像処理の際に行われるガンマ補正では、ガンマ値(γ)として現像済画像データの種類に対応した値に換えて、ユーザにより設定された共通設定値が用いられる。なお、ガンマ値は、縮小画像の解析によって変更されない。そのため、解析用現像処理におけるガンマ補正結果と、本現像処理および表示用現像処理におけるガンマ補正結果と、が同様となるように、解析用現像処理、本現像処理、および表示用現像処理のガンマ値にはユーザにより設定された共通設定値が用いられる。
このように、第6実施例では、ガンマ値のように縮小画像の解析により設定が変更されない現像条件については、ユーザが好みに応じて共通現像条件を設定することにより、本現像処理や表示用現像処理の現像結果はユーザの好みに応じたものとなる。また、縮小画像の解析により補正値が算出される露出補正量については、解析用現像時に逆補正を行っている。そのため、縮小画像の解析で算出される露出補正係数は、ユーザにより設定された露出補正量に従って変更される。そこで、解析により求められた露出補正係数を本現像処理および表示用現像処理に用いることにより、現像処理結果はユーザが好みに応じて設定した露出補正量の共通設定値が反映されたものとなる。
なお、第6実施例では、共通現像条件として、露出補正量とガンマ値とを予め設定するものとしているが、共通現像条件には、他の現像条件(例えば、色温度やシャープネス)を設定することも可能である。但し、縮小画像の解析により設定が変更される現像条件については、縮小画像を生成する解析用現像処理において逆補正が行われる。また、縮小画像の解析により設定が変更されない現像条件については、解析用現像処理、本現像処理、および表示用現像処理のいずれの現像処理においても同一の条件が使用される。また、第6実施例では、共通現像条件として、露出補正量とガンマ値とを予め設定するものとしているが、いずれか一方のみを共通現像条件として設定するものとしてもよい。
G.変形例:
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
G1.変形例1:
上記各実施例では、本発明をパーソナルコンピュータにおける現像処理に適用しているが、本発明は現像処理が行われる任意の装置に適用することができる。本発明は、現像処理機能を備えている装置であれば、例えば、画像を保存し保存された画像を表示するフォトビューアなどの装置や、画像を印刷する印刷装置にも適用することが可能である。