以下、本発明の実施形態について、添付図面を参照して詳細に説明する。
<第1実施形態>
第1実施形態では、本発明に係る画像処理システムとして、撮像装置と画像処理装置とかなるシステムを取り上げることとする。具体的には、撮像装置は、デジタルカメラやデジタルビデオカメラ等であり、画像処理装置は、パーソナルコンピュータ(PC)等の情報処理装置であるとする。但し、本発明に係る画像処理システムは、このような構成に限定されるものではなく、例えば、撮像装置は、ライブビュー画像(ライブビュー映像)を画像処理装置に伝送する機能を有していればよい。
図1は、本発明の第1実施形態に係る画像処理システムの概略構成を示すブロック図である。画像処理システムは、撮像装置100と画像処理装置150とによって構成されている。
撮像装置100は、不図示の撮像光学系を備える。また、撮像装置100は、撮像素子101、A/D変換部102、制御部103、記憶部104、通信インタフェース105、画像処理部106、RAM107及びROM108を備え、これらはシステムバス109を通して相互に通信可能となっている。
撮像素子101は、CMOSやCCD等の光電変換素子であり、撮像光学系を通して得られる被写体光学像をアナログ電気信号に変換する。A/D変換部102は、撮像素子101から出力されるアナログ電気信号をデジタル画像データ(RAWデータ)に変換する。制御部103は、中央演算処理装置(CPU)を含み、ROM108に格納された制御プログラムをRAM107のワークエリアに展開、実行することにより、撮像装置100の各部を制御して、撮像装置100全体の動作を制御する。なお、ROM108は、制御プログラムの他に、制御プログラムの実行に必要な各種パラメータ等を格納する。
記憶部104は、フラッシュメモリやハードディスク等に代表される記憶媒体であり、撮像装置100に内蔵されているか着脱式であるかを問わない。記憶部104には、画像処理装置150と連係動作するための各種プログラムが記憶され、また、撮像した静止画や動画等の画像データが保存される。制御部103は、記憶部104に格納された所定のプログラムをRAM107に展開、実行することで、画像処理装置150と連係動作を実現させる。
通信インタフェース105は、画像処理装置150との間でデータを送受信するためのインタフェースである。制御部103は、通信インタフェース105を介して、画像処理装置150から画像データの送信要求を受信し、これに応じて、ライブビュー画像データとRAWデータを画像処理装置150へ送信する。また、制御部103は、通信インタフェース105を介して、画像処理装置150から色調整データや撮像条件の変更データを受信する。
画像処理部106は、制御部103が通信インタフェース105を介して画像処理装置150から受信した色調整データに従ってRAWデータに対する現像処理を行い、ライブビュー画像(ライブビュー画像データ)を作成する。また、画像処理部106は、制御部103が画像処理装置150にRAWデータを送信する際に、RAWデータに対して間引き処理又は切り取り処理を行う。RAWデータは、RAM107に保持される。RAM107は、その他のデータの一時記憶領域としても用いられる。
画像処理装置150は、操作部151、表示部152、制御部153、記憶部154、通信インタフェース155、RAM156及びROM157と、これらを相互に通信可能に接続するシステムバス158を備える。
操作部151は、キーボードやポインティングデバイスを含み、ユーザからの操作を受け付ける。なお、ポインティングデバイスとしては、マウス、トラックボール、タブレット等が挙げられる。表示部152は、例えば、液晶ディスプレイ(LCD)であり、GUI(Graphical User Interface)画面や画像データを表示する。
表示部152には、撮像装置100から送られてくるライブビュー画像の画像全体を表示する第1の表示領域である全体表示画面と、ライブビュー画像の一部を拡大表示する第2の表示領域である部分拡大表示画面とが表示される。ユーザは、操作部151を操作して、全体表示画面(第1の表示領域)と部分拡大表示画面(第2の表示領域)のいずれかを、選択画面(選択領域)として選択することができる。
制御部153は、中央演算処理装置(CPU)を含み、ROM157に格納されたOSプログラムをRAM156のワークエリアに展開、実行することにより、画像処理装置150の各部を制御して、画像処理装置150全体の動作を制御する。また、制御部153は、記憶部154に格納されたアプリケーションソフトを実行することにより、撮像装置100へ画像データの送信要求を送信し、これに応じたライブビュー画像データ又はRAWデータを受信し、受信したRAWデータに対する画像処理等を行う。なお、制御部153は、画像データの送信要求を行う際には、画像データの種類、画像サイズ、画像領域等を指定する情報を同時に送信する。更に、制御部153は、ユーザが操作部151を通して指定する色調整データや撮影条件の変更データを撮像装置100に送信する。
RAM156は、OSプログラムの他に、OSプログラムの実行に必要な各種パラメータ等を格納する。RAM156は、制御部153による各種処理に必要な作業領域として用いられると共に、各種データの一時記憶領域として用いられる。
記憶部154は、フラッシュメモリやハードディスク等に代表される記憶媒体であり、各種アプリケーションソフトやデータを格納する。記憶部154に格納されているプログラムは、一旦、RAM156に読み出された後、制御部153によって実行される。通信インタフェース155は、撮像装置100の通信インタフェース105と通信ケーブルで接続されている。なお、通信インタフェースとしては、USB(Universal Serial Bus)を用いることができるが、これに限定されず、LANケーブルを用いた有線接続の形態や無線通信接続の形態を用いてもよい。
図2は、撮像装置100の撮像動作(ライブビュー撮像)を示すフローチャートである。図2に示す各処理は、制御部103がROM108(又は記憶部104)に格納された所定のプログラムをRAM107のワークエリアに展開、実行して、撮像装置100の各部の動作を制御することにより実現される。
ステップS201では、制御部103は、ライブビューモードでの撮像の終了指示がなされたか否かを判定する。制御部103は、終了指示がなされた場合(S201でYES)、処理を終了させ、終了指示がなされていない場合(S201でNO)、処理をステップS202に進める。
ステップS202では、制御部103は、撮像素子101から出力されたアナログ電気信号を取得する。制御部103は、続くステップS203では、制御部103は、RAWデータ作成処理を行う。即ち、制御部103は、ステップS202で取得したアナログ電気信号をA/D変換部102にてRAWデータに変換する。続いて、ステップS204では、制御部103は、ステップS203で作成したRAWデータをRAM107に保持する。このとき、RAM107に既にRAWデータが保持されている場合には、新しいRAWデータが上書き保存され、古いRAWデータは破棄される。これにより、画像処理装置150からの画像データの送信要求に対して速く応答することが可能になる。
図3は、撮像装置100の動作を示すフローチャートであり、画像処理装置150との連係動作に係る処理の内容を示している。図3に示す各処理は、制御部103が記憶部104に記憶された所定のプログラムをRAM107に展開、実行して、撮像装置100の各部の動作を制御することにより実現される。
ステップS301では、制御部103は、ライブビューモーのド終了指示がなされたかを判定する。制御部103は、終了指示がなされた場合(S301でYES)、処理を終了させ、終了指示がなされていない場合(S301でNO)、処理をステップS302へ進める。ステップS302では、制御部103は、画像処理装置150からの指示に従って処理を分岐させる。
ステップS303,S304の処理は、画像処理装置150からライブビュー画像の送信要求を制御部103が受信した場合の処理である。ライブビュー画像の送信要求には、画像サイズと画像領域を指定するデータが含まれている。
ステップS303では、制御部103は、ライブビュー画像生成処理を行う。具体的には、RAM107からRAWデータを読み出し、指定された画像領域を画像処理部106にて現像し、指定された画像サイズのライブビュー画像を作成する。このステップS303の現像処理では、画像処理装置150から受信した色調整データを反映した処理を行う。これにより、画像処理装置150は、色調整データを反映したライブビュー画像を取得することができる。続くステップS304では、制御部103は、通信インタフェース105を介して、ステップS303で生成されたライブビュー画像(ライブビュー画像データ)を画像処理装置150に送信する。ステップS304の後、制御部103は、処理をステップS301へ戻す。
ステップS305,S306の処理は、画像処理装置150からRAWデータの送信要求を制御部103が受信した場合の処理である。RAWデータの送信要求には、画像サイズと画像領域を指定するデータが含まれている。
ステップS305では、制御部103は、RAM107からRAWデータを読み出し、画像処理部106で指定された画像領域、指定された画像サイズに従い、クロップ及びリサイズを行ったRAWデータを生成する。これにより、画像処理装置150との通信における通信量が低減され、通信負荷を軽くすることができる。なお、生成されたRAWデータは、現像処理のために必要な指定画像領域外のデータも持つため、指定された画像領域よりも大きめの画像領域を持つデータとなる。ステップS306では、制御部103は、ステップS305で生成したRAWデータを画像処理装置150に送信する。ステップS306の後、制御部103は、処理をステップS301へ戻す。
ステップS307は、画像処理装置150から撮像条件又は色調整データの変更データを制御部103が受信した場合の処理である。ステップ307では、制御部103は、受信した撮像条件又は色調整データをRAM107に格納する。格納された撮像条件又は色調整データは、撮像処理や現像処理の際に利用される。なお、撮像条件は、ISO感度や絞り値、シャッタースピード、撮影モード、ホワイトバランス等の撮像に関する様々な情報を含む。また、色調整データは、各色のマッピングデータ、変換関数等の情報を含む。ステップS307の後、制御部103は、処理をステップS301へ戻す。
図4は、画像処理装置150の動作を示すフローチャートであり、撮像装置100との連係動作に係る処理の内容を示している。図4に示す各処理は、制御部153が記憶部154に記憶された所定のプログラムをRAM156に展開、実行して、画像処理装置150の各部の動作を制御することにより実現される。
ステップS401では、制御部153は、ユーザ操作により操作部151を通じてライブビューモードの終了指示がなされたか否かを判定する。制御部153は、終了指示がなされた場合(S401でYES)、処理を終了させ、終了指示がなされていない場合(S401でNO)、処理をステップS402へ進める。
ステップS402では、制御部153は、操作部151を通してユーザから色調整が指示されたか否かを判定する。なお、色調整を指示するための色調整データは、ユーザによる操作部151の操作により作成され、RAM156に格納される。制御部153は、色調整が指示された場合(S402でYES)、処理をステップS403に進め、色調整が指示されていない場合(S402でNO)、処理をステップS404へ進める。
制御部153は、ステップS403において、色調整データ送信処理を実行する。即ち、制御部153は、ユーザにより指示された色調整データを撮像装置100に送信し、その後、処理をステップS404へ進める。ステップS404では、制御部153は、ユーザ操作により操作部151を通じて選択表示画面又は撮像条件の設定の変更が指示されたか否かを判定する。なお、選択表示画面の変更とは、表示部152に表示される全体表示画面と部分拡大表示画面のいずれを選択画面とするかを変更することを指す。撮像条件設定変更は、ユーザ操作により操作部151を通じて行うことができる。制御部153は、選択表示画面又は撮像条件の設定が変更された場合(S404でYES)、処理をステップS405へ進め、設定が変更されていない場合(S404でNO)、処理をステップS406へ進める。
制御部153は、ステップS405において、RAWデータ取得処理を行う。即ち、制御部153は、ステップS404での変更後の非選択表示画面に対応する画像領域と画像サイズのRAWデータを撮像装置100に要求し、撮像装置100から出力されるRAWデータを受信し、その後、処理をステップS406へ進める。なお、ステップS405で取得したRAWデータは、RAM156に保存される。また、既にRAWデータがRAM156に保存されていた場合、古いRAWデータは破棄される。
ステップS406では、制御部153は、ユーザ操作により、現像パラメータ又はRAWデータの変更が指示されたか否かを判定する。なお、現像パラメータとは、現像処理時に利用するパラメータ群であり、撮像条件や色調整を含み、RAM156に格納されている。制御部153は、現像パラメータ又はRAWデータの変更が指示された場合(S406でYES)、処理をステップS407へ進め、変更が指示されていない場合(S406でNO)、処理をステップS410へ進める。
ステップS407では、制御部153は、現像処理において優先する事項に従って処理を分岐させ、ここでは、処理速度を優先するか処理精度を優先するかを判定するものとし、いずれを優先するかは、ユーザ操作により操作部151を通じて設定される。制御部153は、処理精度を優先する場合(S407でNO)、処理をステップS408へ進め、処理速度を優先する場合(S407でYES)、処理をステップS409へ進める。
ステップS408,S409では共にRAWデータ現像処理を行うが、ステップS408とステップS409とでは、その内容が異なる。具体的には、制御部153は、ステップS408において、RAM156に格納されているRAWデータを読み出し、現像パラメータを用いて現像処理を行い、生成された画像データをRAM156に保存し、その後、処理をステップS410へ進める。一方、制御部153は、ステップS409において、RAM156に格納されているRAWデータを読み出し、現像パラメータを用いて簡易的な現像処理を行い、生成された画像データをRAM156に保存し、その後、処理をステップS410へ進める。なお、簡易的な現像処理とは、レンズ補正等の生成画像の色に影響を及ぼさない処理を省く現像処理等の、処理速度を向上させた現像処理をいう。
ステップS410では、制御部153は、ライブビュー画像取得処理を行う。具体的には、制御部153は、選択表示画面に対応する画像領域、画像サイズのライブビュー画像を撮像装置100に要求し、撮像装置100から出力されるライブビュー画像データを受信し、RAM156に保存する。ここで取得したライブビュー画像には、ステップS403で送信した色調整データを利用した処理が行われており、ユーザによる色調整結果を反映させた画像となっている。続くステップS411では、制御部153は、ステップS408又はステップS409で生成した画像データを表示部152の非選択表示画面に表示し、ステップS410で取得したライブビュー画像を表示部152の選択表示画面に表示する。その後、制御部153は、処理をステップS401へ戻す。
図5は、表示部152に表示される画面の例を示す図である。表示部152の上段には画像全体を表示する全体表示画面が表示され、表示部152の下段には画像の一部を拡大表示する部分拡大表示画面が表示される。
図5では、全体表示画面が非選択画面に、部分拡大表示画面が選択画面となっており、図5(a)は色調整を行う前の画像であり、図5(b)は拡大部分に対して色調整を行った結果を示している。このように、本実施形態によれば、ユーザは、全体表示画面と部分拡大表示画面の両方を同時に視認しながら、色調整を行ったときに得られる画像を確認することができるため、色調整を効率よく行うことができる。
<第2実施形態>
第2実施形態に係る画像処理システムは、現在の画像に対して色調整を行ったときの時刻変化に伴う色変化を予測した画像を比較可能に表示することにより、ユーザが色調整の効果をリアルタイムに確認することができるように動作する。第2実施形態に係る画像処理システムのブロック構成は、第1実施形態に係る画像処理システムのブロック構成と同じであるため、第2実施形態に係る画像処理システムのブロック構成についての説明は省略する。
図6は、第2実施形態に係る画像処理システムが備える画像処理装置150の表示部152に表示される色調整パラメータ編集画面の例を示す図である。
表示部152に表示される色調整パラメータ編集画面600には、色調整に用いられる複数の画像表示画面601が表示される。表示部152には、複数の画像表示画面601を表示することができるようになっており、図6には、2つの画像表示画面601が表示された状態が示されている。画像表示画面601は、撮像装置100から受信したライブビュー画像をリアルタイムに表示し、或いは、画像処理装置150の記憶部154又はRAM156に保存された画像を表示する。例えば、1つの画像表示画面601にはライブビュー画像を表示し、これと同時に、他の画像表示画面601には撮影画像を表示するという用い方も可能である。画像表示画面601には、画像表示画面601上を自由に移動させることができるカーソル602が表示され、カーソル602で指し示した部分の色を編集の対象色として取得することができるようになっている。
色調整パラメータ編集画面600には、HSL空間で表されたカラーサークル603が表示され、カラーサークル603は、カーソル602により取得した対象色の色と影響範囲を表示する。また、色調整パラメータ編集画面600には、色調整パラメータである色相を調整する色相操作部材604と、彩度を調整する彩度操作部材605と、明度を調整する明度操作部材606が表示される。これらの操作部材はそれぞれ、図6の右側に動かすと正方向に、左側に動かすと負方向に対応する値を調整する。本実施形態では、これらの操作部材が動かされた時点で、撮像装置100に対して色調整パラメータが送信されるようになっているものとする。
図7は、撮像装置100の動作を示すフローチャートであり、画像処理装置150との連係動作に係る処理の内容を示している。具体的には、図7のフローチャートは、撮像装置100が画像処理装置150から色調整パラメータを受信して、ライブビュー画像を画像処理装置150へ送信する動作を示している。なお、図7に示す各処理は、制御部103が記憶部104に記憶された所定のプログラムをRAM107に展開、実行して、撮像装置100の各部の動作を制御することにより実現される。
制御部103は、ステップS701において、画像処理装置150からのライブビュー中の編集開始指示を受信し、続くステップS702において、編集の基準となる基準色調整パラメータを設定する。基準色調整パラメータは、例えば、図6に示した色相操作部材604、彩度操作部材605及び明度操作部材606のそれぞれの中間値で設定してもよいし、予め定められた所定値で設定してもよい。
次に、ステップS703では、制御部103は、画像処理装置150から色調整パラメータを受信したか否かを判定する。制御部103は、色調整パラメータを受信した場合(S703でYES)、処理をステップS704へ進め、色調整パラメータを受信していない場合(S703でNO)、処理をステップS705へ進める。
ステップS704では、制御部103は、ステップS703で受信した色調整パラメータをRAM107に保持する。ステップS705では、制御部103は、ステップS702又はステップS704で保持した色調整パラメータを適用した画像である色調整パラメータ適用画像を画像処理部106により生成し、RAM107に保持する。このとき、古い色調整パラメータ適用画像はRAM107から削除される。
続くステップS706では、制御部103は、色調整パラメータを適用しない画像である色調整パラメータ未適用画像を生成し、RAM107に保持する。色調整パラメータ未適用画像は、基準色調整パラメータのみを適用して現像処理した画像でもよいし、現像処理を行っていないRAWデータの画像でもよい。このとき、古い色調整パラメータ未適用画像はRAM107から削除される。ステップS707では、制御部103は、色調整パラメータ適用画像の送信要求を受信したか否かを判定する。制御部103は、送信要求を受信した場合(S707でYES)、処理をステップS708へ進め、送信要求を受信していない場合(S707でNO)、処理をステップS709へ進める。
制御部103は、ステップS708において、画像処理装置150に色調整パラメータ適用画像を送信し、その後、処理をステップS709へ進める。ステップS709では、制御部103は、色調整パラメータ未適用画像の送信要求を受信したか否かを判定する。制御部103は、送信要求を受信した場合(S709でYES)、処理をステップS710へ進め、送信要求を受信していない場合(S709でNO)、処理をステップS711へ進める。
制御部103は、ステップS710において、画像処理装置150に色調整パラメータ未適用画像を送信し、その後、処理をステップS711へ進める。ステップS711では、制御部103は、ライブビュー中の編集終了通知を受信したか否かを判定する。制御部103は、編集終了通知を受信した場合(S711でYES)、処理をステップS712へ進め、編集終了通知を受信していない場合(S711でNO)、処理をステップS703へ戻す。ステップS712では、制御部103は、色調整パラメータを記憶部104に記憶して、処理を終了させる。
図8は、画像処理装置150の動作を示すフローチャートであり、撮像装置100との連係動作に係る処理の内容を示している。具体的には、図8のフローチャートは、画像処理装置150が、撮像装置100からリアルタイムにライブビュー画像を受信しながら、ユーザから色調整パラメータの編集を受け付けたときの動作を示している。なお、図8に示す各処理は、制御部153が記憶部154に記憶された所定のプログラムをRAM156に展開、実行して、画像処理装置150の各部の動作を制御することにより実現される。
ステップS801では、制御部153は、ユーザからの操作部151によるライブビュー中の編集開始の指示を受けて、撮像装置100に対してライブビュー中の編集開始の指示を送信し、色調整パラメータ編集画面600を表示する。続くステップS802では、制御部153は、前回に色調整パラメータを撮像装置100に送信してから、色調整パラメータがユーザによる操作部151の操作により編集(変更)されたか否かを判定する。制御部153は、色調整パラメータが編集された場合(S802でYES)、処理をステップS803へ進め、編集されていない場合(S802でNO)、処理をステップS804へ進める。
制御部153は、ステップS803において、撮像装置100に変更後の色調整パラメータを送信し、その後、処理をステップS804へ進める。ステップS804では、制御部153は、色調整パラメータを適用したライブビュー画像を撮像装置100から取得し、画像表示画面601にライブビュー画像を表示する。続くステップS805では、制御部153は、色調整パラメータ未適用画像を取得してからの間隔(時間)が5秒を超えたか否かを判定する。制御部153は、色調整パラメータ未適用画像を取得してからの間隔が5秒を超えている場合(S805でYES)、処理をステップS806へ進め、5秒を超えていない場合(S805でNO)、処理をステップS807へ進める。
制御部153は、ステップS806において、色調整パラメータ未適用画像を取得し、その後、処理をステップS807へ進める。ステップS807では、色調整パラメータ未適用画像が有効であるか否かを判定する。ステップS807の判定では、本実施形態では、カーソル602で指定した色と色相の差の絶対値が5度以上、彩度の差の絶対値が5以上、又は、明度の差の絶対値が5以上となる場合には、無効と判定する。但し、このような判定基準に限定されない。例えば、現時刻より前の複数の色調整パラメータ適用画像から得られる動きベクトルと、色調整パラメータ未適用画像と同じ時刻の色調整パラメータ適用画像とその1つ前に受信した色調整パラメータ適用画像との動きベクトルとの差異が大きい場合、無効と判定するようにしてもよい。これにより、無効な色調整に応じた色変化を求めないようにすることができる。
制御部153は、色調整パラメータ未適用画像が有効である場合(S807でYES)、処理をステップS809へ進め、有効でない場合(S807でNO)、処理をステップS808へ進める。制御部153は、ステップS808において、受信した色調整パラメータ未適用画像を破棄し、その後、処理をステップS809へ進める。ステップS809では、制御部153は、色調整パラメータ未適用画像が2枚以上となったか否かを判定する。制御部153は、色調整パラメータ未適用画像が2枚以上ある場合(S809でYES)、処理をステップS810へ進め、2枚以上ない場合(S809でNO)、処理をステップS813へ進める。
ステップS810では、制御部153は、2枚の色調整パラメータ未適用画像についてカーソル602で指定した部分の色の差分から線形的な色変化パラメータを算出する。但し、このような方法に限定されず、例えば、最も古い色調整パラメータ未適用画像に対してカーソル602で指定した色が存在する点の差分を用いてもよい。また、線形的な変化情報に限られず、2次以上の曲線等の曲線を用いてもよい。
続くステップS811では、制御部153は、ステップS810で求めた色変化パラメータと予測する時刻情報から、予測色調整パラメータを求める。そして、ステップS812では、制御部153は、ステップS811で求めた予測色調整パラメータを最新の色調整パラメータ未適用画像に適用すると共に、新たに画像表示画面601を生成し、この新たな画像表示画面601に予測色調整パラメータを適用した画像を表示する。これにより、色調整パラメータ編集画面600には、現在の色調整パラメータ適用画像と予測色調整パラメータを適用した画像とが並べて表示されることとなり、ユーザは色調整の適用結果を容易に確認することができる。
続いて、ステップS813では、制御部153は、ユーザからの操作部151によるライブビュー中の編集終了の指示を受けたか否かを判定する。制御部153は、編集終了指示を受けた場合(S813でYES)、処理を終了させ、編集終了指示を受けていない場合(S813でNO)、処理をステップS802へ戻す。
以上の説明の通り、本実施形態によれば、ライブビュー中に色調整パラメータが編集された場合に、時刻変化に伴う色変化を考慮した画像を得ることができる。このとき、編集した色調整パラメータの効果を確認するために、色調整に使用している画像以外の画像に予測色調整パラメータを適用した画像が表示されるので、ユーザは適用結果を容易に確認することができる。
<第3実施形態>
第3実施形態に係る画像処理システムは、画像編集の容易性を保ちつつ、画像における黒潰れや白飛びを補正する。第3実施形態に係る画像処理システムのブロック構成は、第1実施形態に係る画像処理システムのブロック構成と同じである。ここでは、第1実施形態に係る画像処理システムと比較したときの、第3実施形態に係る画像処理システムを構成する撮像装置100と画像処理装置150の特徴的な機能(構成)についてのみ説明する。
第3実施形態に係る画像処理システムを構成する撮像装置100は、RAW画像(RAWデータ)と、RAW画像を縮小したプロキシ画像(プロキシ画像データ)の2系統の画像(画像データ)を画像処理装置150に送信することができる。画像処理装置150において、撮像装置100から受信した画像は、記憶部154又はRAM156に保持される。
ユーザは、画像処理装置150の操作部151を操作することにより、撮像装置100から送られてきて表示部152に表示された画像のどの範囲を編集したいかを指定することができる。画像処理装置150の制御部153は、ユーザにより指定された編集範囲の画像に対して、トーン調整を適用した画像処理を実行する。なお、トーン調整とは、ゲインダウン、ゲインアップ、任意のトーンカーブのコントロール等の調整を指し、トーン調整の結果は、フレーム毎にRAM156に記憶される。
また、制御部153は、ユーザにより指定された編集範囲のプロキシ画像に対して画像解析を実行し、フレーム毎に黒潰れ或いは白飛びの発生の有無を判定し、その判定結果をRAM156に保持する。更に、制御部153は、記憶部154に保持されているRAW画像のうち、プロキシ画像に対する画像解析の結果、黒潰れ或いは白飛びが発生していると判定されたフレームについて縮小RAW画像を作成し、作成した縮小RAW画像を記憶部154に保持する。
更に、制御部153は、記憶部154に保持された縮小RAW画像について、トーン調整された結果、黒潰れ或いは白飛びが補正されるか否かを判定し、判定結果をRAM156に保持する。制御部153による制御に従い、表示部203には、トーン調整中のフレームで黒潰れ或いは白飛びの補正が可能と判定されたフレームについては、縮小RAW画像を現像して、トーン調整を施した結果が表示される。一方、トーン調整中のフレームで黒潰れ或いは白飛びの補正が可能でないと判定されたフレームについては、プロキシ画像にトーン調整を施した結果が表示部203に表示される。
図9は、画像処理装置150の画像編集動作を示すフローチャートである。なお、図9に示す各処理は、制御部153が記憶部154に記憶された所定のプログラムをRAM156に展開、実行して、画像処理装置150の各部の動作を制御することにより実現される。
ステップS901では、制御部153は、ユーザが操作部151を操作して指定した、撮像装置100から受信する画像に対する編集範囲の指定を受け付ける。続くステップS902では、制御部153は、指定された編集範囲にあるプロキシ画像を走査し、黒潰れ又は白飛びが発生していないかを判定する。そして、ステップS903では、制御部153は、黒潰れ又は白飛びが発生しているプロキシ画像に対応するRAW画像から縮小RAW画像を生成し、作成した縮小LAW画像を記憶部154に保持する。
続くステップS904では、制御部153は、ユーザの操作部151からの操作指示に従ってトーン調整を開始する。ステップS905において、表示部152に表示中のフレームの画像に黒潰れ又は白飛びが発生しているか否かを判定する。制御部153は、黒潰れも白飛びも発生していない場合(S905でNO)、処理をステップS907へ進め、黒潰れ又は白飛びが発生している場合(S905でYES)、処理をステップS906へ進める。ステップS906では、制御部153は、表示中フレームの画像がトーン調整によって黒潰れ又は白飛びが補正可能か否かを判定する。制御部153は、補正可能でない場合(S906でNO)、処理をステップS907へ進め、補正可能である場合(S906でYES)、処理をステップS908へ進める。
ステップS907では、制御部153は、表示中フレームのプロキシ画像にトーン調整を適用した結果を表示部203に表示する。ステップS908では、制御部153は、表示中フレームの縮小RAW画像を現像処理し、トーン調整を施した結果を表示部203に表示する。制御部153は、表示中フレームの処理であるステップS907,S908の終了後に、処理をステップS909へ進める。
ステップS909では、制御部153は、表示中フレーム以外の編集範囲にある全てのフレームについて、ステップS905〜S908の処理を実行し、補正可否の判断結果をRAM156に保持する。その後、ステップS910では、制御部153は、ユーザから操作部151を介してトーン調整の終了指示があったか否かを判定し、終了指示がない場合(S910でNO)、処理をステップS904へ戻し、終了指示があった場合(S910でYES)、本処理を終了させる。
図10は、画像処理装置150の画像再生動作を示すフローチャートである。なお、図10に示す各処理は、制御部153が記憶部154に記憶された所定のプログラムをRAM156に展開、実行して、画像処理装置150の各部の動作を制御することにより実現される。
制御部153は、画像再生開始と同時に、現像に必要な現像スレッドを起動する。再生メインスレッドでは、時間軸に沿って再生対象のフレームが決まっていくので、ステップS1001では、制御部153は、RAM156に保持されているステップS906での判定結果を確認していく。制御部153は、ステップS906での判定結果がYES(補正可)である場合(S1001でYES)、処理をステップS1002へ進め、ステップS906での判定結果がNO(補正不可)である場合(S1001でNO)、処理をステップS1005へ進める。
制御部153は、ステップS1002において、再生対象フレームに対応する縮小RAW画像を現像スレッドに渡して現像処理を要求し、その後、現像結果ができ上がるまで待機状態に入る(ステップS1003)。一方、現像スレッドは、現像処理要求の待機状態にある(ステップS1011)。現像スレッドは、ステップS1002による現像処理要求を受けたタイミングで再起動(Resume)し、縮小RAW画像の現像処理を行い、現像結果を再生メインスレッドに受け渡し(ステップS1012)、その後、再び待機状態(Suspend)に入る。
制御部153は、ステップS1003の待機状態においてステップS1012による現像結果を受信すると、処理をステップS1004へ進め、現像スレッドから受け渡された現像結果にトーン調整を施して表示部152に再生表示する。一方、ステップS1005では、制御部153は、再生対象フレームのプロキシ画像にトーン調整を施した結果を表示部152に再生表示する。
制御部153は、ステップS1004,S1005の終了後に処理をステップS1006へ進め、再生の終端フレームに達したか否かを判定する。制御部153は、終端フレームに達していない場合(S1006でNO)、処理をステップS1003へ戻し、終端フレームに達した場合(S1006でYES)、現像スレッドに終了指示を出して、本処理を終了させる。
図11は、画像処理装置150において、8bit画像の1フレームの黒潰れ又は白飛びを判定する動作を示すフローチャートである。なお、図11に示す各処理は、制御部153が記憶部154に記憶された所定のプログラムをRAM156に展開、実行して、画像処理装置150の各部の動作を制御することにより実現される。
ステップS1101では、制御部153は、判定対象となる1フレームのヒストグラムを生成する。続くステップS1102では、制御部153は、ヒストグラムの0位置に画素が存在するか否かを判定する。制御部153は、0位置に画素が存在する場合(S1102でYES)、ステップS1103において黒潰れが発生していると判定し、その後、処理をステップS1104へ進める。一方、制御部153は、0位置に画素が存在しない場合(S1102でNO)、黒潰れは発生していないと判定して、処理をステップS1104へ進める。
ステップS1104では、制御部153は、ヒストグラムの255位置に画素が存在するか否かを判定する。制御部153は、255位置に画素が存在する場合(S1104でYES)、ステップS1105において白飛びが発生していると判定し、その後、処理をステップS1106へ進める。一方、制御部153は、255位置に画素が存在しない場合(S1104でNO)、白飛びは発生していないと判定して、処理をステップS1106へ進める。ステップS1106では、制御部153は、ステップS1102〜1105により得られた、黒潰れと白飛びの有無の判定結果をRAM156に保持する。その後、制御部153は、本処理を終了させる。
図12は、画像処理装置150において、1フレームの補正可否を判定する動作を示すフローチャートである。なお、図11に示す各処理は、制御部153が記憶部154に記憶された所定のプログラムをRAM156に展開、実行して、画像処理装置150の各部の動作を制御することにより実現される。
ステップS1201では、制御部153は、判定対象となる1フレームが白飛びしており、且つ、トーン調整でゲインがダウンされたか否かを判定する。制御部153は、白飛びし、且つ、ゲインダウンされている場合(S1201でYES)、ステップS1203において補正が可能と判断し、その後、処理をステップS1205へ進める。一方、制御部153は、白飛びしておらず又はゲインダウンされていない場合(S1201でNO)、ステップS1202において、判断対象の1フレームが黒潰れしており、且つ、トーン調整でゲインがアップされたか否かを判定する。制御部153は、黒潰れし、且つ、ゲインアップされている場合(S1202でYES)、ステップS1203において補正が可能と判断し、その後、処理をステップS1205へ進める。一方、制御部153は、黒潰れしておらず又はゲインアップされていない場合(S1202でNO)、ステップS1204において補正不可と判断し、その後、処理をステップS1205へ進める。
ステップS1205では、制御部153は、ステップS1201〜1204により得られた、補正可否の判定結果をRAM156に保持する。その後、制御部153は、本処理を終了させる。
図13は、プロキシ画像において黒潰れと白飛びが発生しているフレームについて、対応する縮小RAW画像を補正処理した結果の例を示すヒストグラムである。図13(a)では、プロキシ画像の白飛びが発生しているフレームについて、トーン調整でゲインダウンされた場合に、縮小RAW画像を用いて現像処理した結果を示している。図13(a)の右図のハッチング部分は、図13(a)の左図のプロキシ画像では白飛びしていた部分に対応し、この部分の白飛びが補正されていることがわかる。
図13(b)では、プロキシ画像の黒潰れが発生しているフレームについて、トーン調整でゲインアップされた場合に、縮小RAW画像を用いて現像処理した結果を示している。図13(b)の右図のハッチング部分は、図13(b)の左図のプロキシ画像では黒潰れしていた部分に対応し、この部分の黒潰れが補正されていることがわかる。
図14は、フレーム画像を部分的に補正する形態を模式的に示す図である。図14の例では、フレーム画像を一定の単位で分割し、分割した単位毎にヒストグラムを生成している。画像処理装置150の制御部153は、生成したヒストグラム毎に、図11及び図12に示したフローチャートに従う処理を実行し、補正可と判定された場合に、分割した単位で現像処理を行い、その結果を表示部152に表示する。図14において、太線で囲まれた部分は白飛びしている。そのため、トーン調整でゲインダウンが行われた場合、対応する縮小RAW画像の対応する部分のみが現像処理されて、表示部152に表示されることとなる。
以上の説明の通り、本実施形態によれば、編集の容易性を保ちつつ、黒潰れと白飛びを補正することができる。
<第4実施形態>
第4実施形態に係る画像処理システムでは、撮像装置100から画像処理装置150へライブビュー画像を送信する際のデータ転送量と画像処理装置150での処理量を抑えつつ、画像処理装置150でのライブビュー中に色調整データ編集用の色情報を取得できるようにする。第4実施形態に係る画像処理システムのブロック構成は、第1実施形態に係る画像処理システムのブロック構成と同じであり、実行される処理の内容のみが異なるため、ここでは、画像処理システムのブロック構成についての説明は省略する。
図15は、画像処理装置150の動作手順を示すフローチャートである。なお、図15に示す各処理は、制御部153が記憶部154に記憶された所定のプログラムをRAM156に展開、実行して、画像処理装置150の各部の動作を制御することにより実現される。
ステップS1501において、制御部153は、表示部152の表示モードを「表示のみモード」に設定し、撮像装置にライブビュー画像の送信開始指示を送信する。なお、「表示のみモード」とは、撮像装置100から送信されるライブビュー画像のみを表示部152に表示するモードである。続くステップS1502では、制御部153は、イベント待ちに入る。ここで、イベントには、撮像装置100からのデータ受信と、操作部151を通じたユーザによるUI操作(以下「ユーザ操作」という)とがある。制御部153は、撮像装置100からのデータ受信イベントが発生した場合には処理をステップS1503へ進め、一方、ユーザによるユーザ操作イベントが発生した場合には処理をステップS1506へ進める。
ステップS1503では、制御部153は、撮像装置100から受信したデータの種類に応じて処理を分岐させる。制御部153は、撮像装置100から受信したデータが表示用画像データである場合には処理をステップS1504へ進め、撮像装置100から受信したデータが色情報取得用データである場合には処理をステップS1505へ進める。制御部153は、ステップS1504において、撮像装置100から受信した表示用画像データを表示部152に表示し、その後、処理をステップS1502へ戻す。一方、制御部153は、ステップS1505において、撮像装置100から受信した色情報取得用画像データをRAM156に保存し、その後、処理をステップS1502へ戻す。
ステップS1506では、制御部153は、ユーザ操作に応じて処理を分岐させ、ユーザ操作がモード切替である場合には処理をステップS1507へ進め、ユーザ操作が表示画像上の座標指定である場合には処理をステップS1511へ進める。
ステップS1507では、制御部153は、ユーザが選択したモードに応じて処理を分岐させる。制御部153は、ユーザがライブビューの終了を選択した場合には処理をステップS1508へ進め、ユーザが座標指定モードの開始を選択した場合には処理をステップS1509へ進める。また、制御部153は、ユーザが座標指定モードの終了を選択した場合には処理をステップS1510へ進める。なお、座標指定モードでは、ユーザが操作部151のポインティングデバイスを操作して、表示部152に表示されている画像の所定位置(座標)を指定することができる。
制御部153は、ステップS1508において、撮像装置100にライブビュー画像の送信終了指示を送信し、その後、ライブビューを終了させる。制御部153は、ステップS1509において、表示部152の表示モードを座標指定モードに設定し、撮像装置100に色情報取得用データ要求を送信した後、処理をステップS1502へ戻す。制御部153は、ステップS1510において、表示部152の表示モードを表示のみモードに設定し、撮像装置100にライブビューの再開指示を送信し、その後、処理をステップS1502へ戻す。
ステップS1511では、制御部153は、表示部152の表示モードが座標指定モードか否かを判定する。制御部153は、座標指定モードでない場合(S1511でNO)、ユーザ操作を無視して処理をステップS1502へ戻し、座標指定モードである場合(S1511でYES)、処理をステップS1512へ進める。ステップS1512では、制御部153は、ステップS1505でRAM156に保持した色情報取得用画像データから、画像上で指定された座標に対応する色情報を取得する。制御部153は、続くステップS1513において、ステップS1512で取得した色情報を編集対象色としてRAM156に保持し、その後、処理をステップS1502へ戻す。
図16は、撮像装置100の動作手順を示すフローチャートである。図16に示す各処理は、制御部103が記憶部104に記憶された所定のプログラムをRAM107に展開、実行して、撮像装置100の各部の動作を制御することにより実現される。
ステップS1601では、制御部103は、ライブビュー一時停止フラグをオフにすると共に、色情報取得用画像データ作成フラグをオフにする。続くステップS1602では、制御部103は、画像処理装置150からデータを受信したか否かを判定する。制御部103は、データを受信していない場合(S1602でNO)、処理をステップS1603へ進め、データを受信した場合(S1602でYES)、処理をステップS1611へ進める。
ステップS1603では、制御部103は、ライブビュー一時停止フラグがオンになっているかを判定する。これは、後述する処理の終了後にステップS1602への戻りがあるためである。制御部103は、ライブビュー一時停止フラグがオンの場合(S1603でYES)、処理をステップS1602へ戻し、リモートライブビュー一時停止フラグがオフの場合(S1603でNO)、処理をステップS1604へ進める。制御部103は、ステップS1604において、撮像素子101から出力されるアナログ電気信号をA/D変換部102でデジタル信号に変換し、RAWデータを作成する。続くステップS1605では、制御部103は、ステップS1604で作成したRAWデータを、画像処理部106で現像し、縮小処理して、表示用画像データを作成する。なお、制御部103は、画像処理部106において、表示用画像データにJPEG圧縮を適用することもできる。
次に、ステップS1606では、制御部103は、ステップS1605で作成した表示用画像データを、通信インタフェース105を通じて、画像処理装置150に送信する。その後、ステップS1607では、制御部103は、色情報取得用画像データ作成フラグがオンになっているかを判定する。制御部103は、色情報取得用画像データ作成フラグがオフの場合(S1607でNO)、処理をステップS1602へ戻し、色情報取得用画像データ作成フラグがオンの場合(S1607でYES)、処理をステップS1608へ進める。
ステップS1608では、制御部103は、画像処理部106にて、ステップS1604で作成したRAWデータから色情報取得用画像データを作成する。ここで、色情報取得用画像データは、RAWデータを一定領域で分割し、その領域内の平均値を求め、求めた平均値をその領域の値とする。これにより、色情報取得用画像サイズを表示用画像サイズと同じ大きさに縮小してデータ量を減らすことができ、RAWデータにおけるノイズ等の局所的に突出した値を低減させることができる。
ステップS1609では、制御部103は、ステップS1608で作成した色情報取得用画像データを、通信インタフェース105を通じて、画像処理装置150に送信する。続いて、制御部103は、ステップS1610において、色情報取得用画像データ作成フラグをオフにし、その後、処理をステップS1602へ戻す。
ステップS1611では、制御部103は、画像処理装置150から送信されたデータに応じて処理を分岐させる。制御部103は、画像処理装置150からライブビューの再開指示を受信した場合には処理をステップS1612へ進め、画像処理装置150から色情報取得用画像データ要求を受信した場合には処理をステップS1613へ進める。また、制御部103は、画像処理装置150からライブビュー終了指示を受信した場合には、ライブビュー動作を終了させる。
制御部103は、ステップS1612において、ライブビュー一時停止フラグをオフにし、その後、処理をステップS1604へ進める。また、制御部103は、ステップS1613において、ライブビュー一時停止フラグをオンにした後、ステップS1614において色情報取得用画像データ作成フラグをオンにし、その後、処理をステップS1604へ進める。
以上の説明の通り、本実施形態によれば、撮像装置100から画像処理装置150へのデータ転送量や画像処理装置150での処理量を抑えつつ、画像処理装置150はライブビュー中に色調整データ編集用の色情報を取得することができる。
<第5実施形態>
第5実施形態では、撮像装置100のハードウエア資源を効率的に使用すると共に、ライブビュー画像を提供中に、撮像画像の画素値を画像処理装置150が取得することができるようにする。第5実施形態に係る画像処理システムのブロック構成は、第1実施形態に係る画像処理システムのブロック構成と同じであり、実行される処理の内容のみが異なるため、ここでは、画像処理システムのブロック構成についての説明は省略する。
なお、画像処理装置150の表示部152には、不図示であるが、撮像装置100から受信したライブビュー画像を表示する画像表示領域と、ライブビュー画像において選択した部分の画素値を表示する領域とが表示される。また、表示部152には、適宜、取得する画像の色調整を行うための色調整ツールが表示される。
また、撮像装置100のRAM107は、未送信表示用画像データを保持する。未送信表示用画像データは、画像処理部106が作成した表示用画像データであって、画像処理装置150へ送信するまで保持するデータである。また、RAM107は、未送信問い合わせ用画像データを保持する。未送信問い合わせ用画像データは、画像処理部106が作成した画素値問い合わせ用画像データであって、対応する表示用画像データを画像処理装置150に送信するまで保持するデータである。更に、RAM107は、送信済み問い合わせ用画像データを保持する。送信済み問い合わせ用画像データは、保持している表示用画像データを画像処理装置150に送信した後に保持する画素値問い合わせ用画像データである。また、RAM107は、表示中問い合わせ用画像データを保持する。表示中問い合わせ用画像データは、画像処理装置150から画像表示完了通知を受信した後に保持する画素値問い合わせ用画像データである。
図17は、撮像装置100の動作(撮像から画像データの生成)を示すフローチャートである。図17に示す各処理は、制御部103が記憶部104に記憶された所定のプログラムをRAM107に展開、実行して、撮像装置100の各部の動作を制御することにより実現される。
ステップS1701において、制御部103は、ライブビューモードの終了指示を受信したか否かを判定する。制御部103は、終了指示を受信した場合(S1701でYES)、ライブビューモードを終了させ、終了指示を受信していない場合(S1701でNO)、処理をステップS1702へ進める。ステップS1702では、制御部103は、撮像素子101から出力されたアナログ電気信号をA/D変換部102でデジタル信号であるRAWデータに変換する。
続くステップS1703では、制御部103は、画像処理部106によりRAWデータに現像処理を施し、表示用画像データの大きさにリサイズ処理を行い、表示用画像データを作成する。なお、リサイズ処理は、例えば、撮像画像データサイズが縦2000画素×横1000画素のとき、表示用画像データサイズは縦1000画素×横500画素であるとする。この場合、撮像画像データの縦2画素×横2画素(=4画素)が、表示用画像データの1画素に対応する。ここで、バイリニア法等の補間方法を用いて、撮像画像データの縦2画素×横2画素の4画素の平均値を表示用画像データに使用する。ステップS1703では、更に、制御部103は、作成した表示用画像データをRAM107に未送信表示用画像データとして保持する。
次に、ステップS1704では、制御部103は、画像処理部106によりRAWデータに現像処理を施し、表示用画像データの大きさに間引き処理を行い、画素値問い合わせ用画像データを作成する。なお、間引き処理は、例えば、前述の画像データサイズの条件で、撮像画像データの縦2画素×横2画素の4画素のブロックのうち、左上1画素の値をそのブロックの代表画素とし、画素値問い合わせ用画像データに使用する。これにより、撮像画像の画素値を変更することなく、画像処理装置150からの画素値問い合わせに応答することが可能なデータを保持することができる。
ステップS1704では更に、制御部103は、作成した画素値問い合わせ用画像データを未送信問い合わせ用画像データとしてRAM107に保持する。その後、制御部103は、ステップS1705において、ステップS1702で作成したRAWデータを破棄し、その後、処理をステップS1701へ戻す。
図18は、撮像装置100の動作手順を示すフローチャートであり、画像処理装置150との連係動作に係る処理の内容を示している。図18に示す各処理は、制御部103が記憶部104に記憶された所定のプログラムをRAM107に展開、実行して、撮像装置100の各部の動作を制御することにより実現される。
ステップS1801では、制御部103は、画像処理装置150からライブビューモードの終了指示を受信したか否かを判定する。制御部103は、終了指示を受信した場合(S1801でYES)、ライブビューモードを終了させ、終了指示を受信していない場合(S1801でNO)、処理をステップS1802へ進める。ステップS1802では、制御部103は、画像処理装置150からの指示に従って処理を分岐させる。
ステップS1803〜S1807は、撮像装置100が画像処理装置150から表示用画像要求を受信した場合の処理である。ステップS1803では、制御部103は、RAM107に未送信表示用画像データが存在するか否かを判定する。制御部103は、未送信表示用画像データが存在しない場合(S1807でNO)、処理をステップS1801へ戻し、未送信表示用画像データが存在する場合(S1807でYES)、処理をステップS1804へ進める。
制御部103は、ステップS1804において、RAM107に保持されている未送信表示用画像データを画像処理装置150に送信し、続くステップS1805において、ステップS1804で画像処理装置150に送信した未送信表示用画像データを破棄する。その後のステップS1806では、制御部103は、RAM107に保持している未送信問い合わせ用画像データを送信済み問い合わせ用画像データとして保持し直す。そして、制御部103は、ステップS1807において、RAM107の未送信問い合わせ用画像データをクリアした後、処理をステップS1801へ戻す。
ステップS1808〜S1810は、撮像装置100が画像処理装置150から表示用画像の表示完了通知を受信した場合の処理である。ステップS1808では、制御部103は、RAM107に保持されている表示中問い合わせ画像データを破棄する。続くステップS1809では、制御部103は、RAM107に保持されている送信済み問い合わせ用画像データを表示中問い合わせ画像データとして保持し直す。そして、制御部103は、ステップS1810において、RAM107の送信済み問い合わせ用画像データをクリアした後、処理をステップS1801へ戻す。
ステップS1811は、撮像装置が画像処理装置150から画素値要求を受信した場合の処理である。制御部103は、ステップS1811において、表示中問い合わせ画像データの指定座標の画素値を画像処理装置150に送信し、その後、処理をステップS1801へ戻す。
図19は、画像処理装置150の動作手順を示すフローチャートである。なお、図19に示す各処理は、制御部153が記憶部154に記憶された所定のプログラムをRAM156に展開、実行して、画像処理装置150の各部の動作を制御することにより実現される。
ステップS1901では、制御部153は、撮像装置100からの受信イベント、操作部151からの入力イベント、タイマイベントに応じて処理を分岐させる。
ステップS1902〜S1903は、ユーザにより操作部151から操作入力があったときの処理であり、ここでは、マウス操作が行われたものとする。ステップS1902では、制御部153は、マウスカーソルが表示部152に表示された画像表示領域内にあるか否かを判定する。制御部153は、マウスカーソルが画像表示領域内に存在しない場合(S1902でN0)、何ら処理を行わずに処理をステップS1901へ戻し、マウスカーソルが画像表示領域内に存在する場合(S1902でYES)、処理をステップS1903へ進める。制御部153は、ステップS1903において、マウスカーソルの位置を表示画像の座標で取得し、その座標値を伴って撮像装置100に画素値要求を送信し、その後、処理をステップS1901へ戻す。
ステップS1904は、タイマイベント時の処理である。制御部153は、ステップS1904において、タイマにより指定された時刻に撮像装置100に表示用画像要求を送信し、その後、処理をステップS1901へ戻す。なお、タイマの機能は制御部153が備えている。
ステップS1905〜S1908は、撮像装置100からデータを受信した場合の処理である。ステップS1905では、制御部153は、表示用画像データを受信したか否かを判定する。制御部153は、表示用画像データを受信した場合(S1905でYES)、処理をステップS1906へ進め、表示用画像データを受信していない場合(S1905でN0)、処理をステップS1908へ進める。
制御部153は、ステップS1906において、受信した表示用画像を表示部152の画像表示領域に表示した後、ステップS1907において、撮像装置100に表示用画像の表示完了通知を送信し、その後、処理をステップS1901へ戻す。ステップS1908は、撮像装置100から画素値を受信した場合の処理であり、制御部153は、受信した画素値を表示部152の画素値表示領域に表示し、その後、処理をステップS1901へ戻す。
以上の説明の通り、本実施形態によれば、撮像装置100のRAM107に効率的にデータが保持される。こうして、撮像装置100のハードウエア資源を有効に使用することができる。また、画像処理装置150はライブビュー画像の提供中に撮像画像の画素値を取得することができるため、色調整等の作業を適切に行うことができるようになる。
<第6実施形態>
第6実施形態では、画像処理装置150において、撮影時パラメータを保持していないフレームを含むRAW動画のフレームを並び替え編集したときに、適切な現像結果が得られるようにする。なお、画像処理装置150は、撮像装置100からRAW動画データを取得し、記憶部154に保存する。画像処理装置150の制御部153は、RAW動画データをRAM156に読み出して現像し、表示部152に表示する。第6実施形態に係る画像処理システムのブロック構成は、第1実施形態に係る画像処理システムのブロック構成と同じであり、実行される処理の内容のみが異なるため、ここでは、画像処理システムのブロック構成についての説明は省略する。
図20は、画像処理装置150がRAW動画データの現像再生手順を示すフローチャートである。なお、図20に示す各処理は、制御部153が記憶部154に記憶された所定のプログラムをRAM156に展開、実行して、画像処理装置150の各部の動作を制御することにより実現される。
ステップS2001では、制御部153は、RAW動画の再生終了フレーム(再生範囲の最後のフレーム)まで再生したか否かを判定する。制御部153は、再生終了フレームまで再生した場合(S2001でYES)、処理を終了させ、再生終了フレームまで再生していない場合(S2001でNO)、処理をステップS2002へ進める。ステップS2002では、制御部153は、記憶部154からRAW動画のフレームデータをRAM156に読み込む。
続くステップS2003では、制御部153は、ステップS2002でRAM156に読み込んだフレームデータに所定の撮影時パラメータが存在するか否かを判定する。なお、撮影時パラメータは、RAW動画のフレームデータ内に存在していてもよく、RAW動画のフレームデータとは別に存在していてもよい。撮影時パラメータとは、露出調整処理のためのパラメータ、ホワイトバランス処理のためのパラメータ、NR処理のためのパラメータ、彩度調整のためのパラメータ、色調調整のためのパラメータ等である。ステップS2002での判定対象となる撮影時パラメータは、これらの現像パラメータの全てであってもよく、一部であってもよい。
制御部153は、撮影時パラメータが存在する場合(S2003でYES)、処理をステップS2004に進め、撮影時パラメータが存在しない場合(S2003でNO)、処理をステップS2005へ進める。ステップS2004では、制御部153は、該当フレーム(S2002でRAM156に読み込まれたフレーム)の撮影時パラメータをRAM156に読み込む。一方、ステップS2005では、制御部153は、該当フレームの撮影時刻の前及び後に撮影されたフレームで撮影時パラメータを持つフレームの撮影時パラメータを用いて、該当フレームの撮影時パラメータを補間して作成し、RAM156に保持する。補間方法は、例えば、直近の2値の線形補間による内挿があるが、これに限定されるものではない。
ステップS2004,S2005の終了後のステップS2006では、制御部153は、ステップS2004又はステップS2005により得られた撮影時パラメータを用いて、該当フレームデータを現像処理する。そして、制御部153は、続くステップS2007において、ステップS2006で得られた現像済み画像を表示部152に表示し、その後、処理をステップS2001へ戻す。
図21は、画像処理装置150によるフレームの並び替え編集の手順を示すフローチャートである。なお、図21に示す各処理は、制御部153が記憶部154に記憶された所定のプログラムをRAM156に展開、実行して、画像処理装置150の各部の動作を制御することにより実現される。
ステップS2101において、制御部153は、ユーザの操作部151の操作によるフレームの並び替え編集の指示を受け付ける。フレームの並び替え編集の指示では、並び替え対象である1フレーム以上の連続したフレーム(以下「ソースフレーム」という)と、並び替え編集操作と、並び替え先(以下「デスティネーション」という)とが特定される必要がある。但し、図23を参照して後述するように、特定のフレームを削除する並び替え編集では、デスティネーションは存在しない。
並び替え編集操作としては、挿入/削除/移動/置換が挙げられる。「挿入」では、1フレーム以上の連続したフレーム(ソースフレーム)を、別のフレーム間(デスティネーション)に複製する。図22は、フレームの並び替え編集操作としての「挿入」を模式的に示す図である。図22では、フレームiからフレームjがソースフレームであり、フレームkとフレームk+1の間がデスティネーションであり、フレームkとフレームk+1の間にソースフレームが、フレームi´からフレームj´として複製される。
「削除」では、1フレーム以上の連続したフレーム(ソースフレーム)を取り除く。図23は、フレームの並び替え編集操作としての「削除」を模式的に示す図である。図23では、フレームi−1とフレームj+1の間のフレームiからフレームjがソースフレームであり、ソースフレームが削除されることによって、フレームi−1にフレームj+1が続く構成へと変わる。
「置換」では、1フレーム以上の連続したフレーム(ソースフレーム)を、別の1フレーム以上の連続したフレーム(デスティネーション)と置き換える。これは、デスティネーションを削除し、削除した位置にソースフレームを挿入することに等しい。図24は、フレームの並び替え編集操作としての「置換」を模式的に示す図である。図24では、フレームiからフレームjがソースフレームであり、フレームmからフレームnがデスティネーションである。よって、「置換」によって、フレームmからフレームnがフレームiからフレームjに置き換わり、フレームi´からフレームj´となる。これは、フレームmからフレームnが削除され、その後、フレームiからフレームjをフレームm−1とフレームn+1との間に挿入することと同じとなる。
「移動」では、1フレーム以上の連続したフレーム(ソースフレーム)を、別の場所(デスティネーション)に挿入(以下「移動挿入」という)又は置換(以下「移動置換」という)するが、その際、ソースフレームを元の位置から削除する。したがって、「移動」は、「削除」と「挿入」の組み合わせと考えることができる。図25は、フレームの並び替え編集操作としての「移動挿入」を模式的に示す図である。図25では、フレームiからフレームjがソースフレームであり、フレームkとフレームk+1の間がデスティネーションである。この場合、フレームiからフレームjがフレームkとフレームk+1の間に挿入されてフレームi´からフレームj´となると同時に、元の位置のフレームiからフレームjが削除されることとなる。
図26は、フレームの並び替え編集操作としての「移動置換」を模式的に示す図である。図26では、フレームiからフレームjがソースフレームであり、フレームmからフレームnがデスティネーションである。この場合、フレームmからフレームnが削除されて、フレームm−1とフレームn+1の間にフレームiからフレームjが挿入されると同時に、元の位置のフレームiからフレームjが削除されることとなる。
図21の説明に戻る。ステップS2102では、制御部153は、撮影時パラメータを持たないフレームのうち、フレームの並び替えによって再生時に前後フレームから撮影時パラメータを補間できなくなるフレームについて、フレーム並び替え前に前後フレームから撮影時パラメータを補間し、付加する。このステップS2102の詳細については、図27及び図28を参照して後述する。制御部153は、続くステップS2103において、フレーム並び替えを行い、その後、本処理を終了させる。
図27は、ステップS2102の処理例であって、フレームの並び替え編集のうちの「挿入」を実行する際のパラメータ補間手順を示すフローチャートである。図27のフローチャートについての説明では、適宜、「挿入」の例を示した図22を参照する。
ステップS2701では、制御部153は、ソースフレームの先頭フレームに撮影時パラメータが存在するか否かを判定する。ソースフレームの先頭フレームは、図22の例では、フレームiである。なお、ステップS2701の処理は、図20のステップS2003と同等の処理である。制御部153は、ソースフレームの先頭フレームに撮影時パラメータが存在しない場合(S2701でNO)、処理をステップS2702へ進め、この先頭フレームに撮影時パラメータが存在する場合(S2701でYES)、処理をステップS2703へ進める。
ステップS2702では、制御部153は、ソースフレームの先頭フレームの撮影時刻の前後に撮影されたフレームで撮影時パラメータを持つフレームの撮影時パラメータを用いて、この先頭フレームの撮影時パラメータを補間して作成し、先頭フレームに付加する。なお、ステップS2702の処理は、図20のステップS2005と同等の処理である。その後、制御部153は、処理をステップS2703へ進める。
ステップS2703では、制御部153は、ソースフレームの最後のフレームに撮影時パラメータが存在するかどうか調べる。ソースフレームの最後のフレームは、図22の例では、フレームjである。なお、ステップS2703の処理は、図20のステップS2003と同等の処理である。制御部153は、ソースフレームの最後のフレームに撮影時パラメータが存在しない場合(S2703でNO)、処理をステップS2704へ進め、この最後のフレームに撮影時パラメータが存在する場合(S2703でYES)、処理をステップS2705へ進める。
ステップS2704では、制御部153は、ソースフレームの最後のフレームの撮影時刻の前後に撮影されたフレームで撮影時パラメータを持つフレームの撮影時パラメータを用いて、最後のフレームの撮影時パラメータを補間して作成し、最後のフレームに付加する。なお、ステップS2704の処理は、図20のステップS2005と同等の処理である。その後、制御部153は、処理をステップS2705へ進める。
ステップS2705では、制御部153は、デスティネーションの直前のフレームに撮影時パラメータが存在するか否かを判定する。デスティネーションの直前のフレームは、図22の例では、フレームkである。なお、ステップS2705の処理は、図20のステップS2003と同等の処理である。制御部153は、デスティネーションの直前のフレームに撮影時パラメータが存在しない場合(S2705でNO)、処理をステップS2706へ進める。一方、制御部153は、デスティネーションの直前のフレームに撮影時パラメータが存在する場合(S2705でYES)、処理をステップS2707へ進める。
ステップS2706では、制御部153は、デスティネーションの直前のフレームの撮影時刻の前後に撮影されたフレームで撮影時パラメータを持つフレームの撮影時パラメータを用いて、この直前のフレームの撮影時パラメータを補間して作成し、付加する。なお、ステップS2706の処理は、図20のステップS2005と同等の処理である。その後、制御部153は、処理をステップS2707へ進める。
ステップS2707では、制御部153は、デスティネーションの直後のフレームに撮影時パラメータが存在するか否かを判定する。デスティネーションの直後のフレームは、図22の例では、フレームk+1である。なお、ステップS2707の処理は、図20のステップS2003と同等の処理である。制御部153は、デスティネーションの直後のフレームに撮影時パラメータが存在しない場合(S2707でNO)、処理をステップS2708へ進める。一方、制御部153は、デスティネーションの直後のフレームに撮影時パラメータが存在する場合(S2707でYES)、処理をステップS2709へ進める。
ステップS2708では、制御部153は、デスティネーションの直後のフレームの撮影時刻の前後に撮影されたフレームで撮影時パラメータを持つフレームの撮影時パラメータを用いて、この直後のフレームの撮影時パラメータを補間して作成し、付加する。なお、ステップS2708の処理は、図20のステップS2005と同等の処理である。その後、制御部153は、処理をステップS2709へ進める。
ステップS2709では、制御部153は、ソースフレームをデスティネーションに挿入する。これは、図22の例の通り、フレームiからフレームjを、フレームkとフレームk+1の間に、フレームi´からフレームj´として挿入する処理である。図22の例では、この挿入操作により、フレームkとフレームi´の間及びフレームj´とフレームk+1の間が撮影時刻の不連続点となる。しかし、フレームk、フレームi´、フレームj´、フレームk+1の全てが撮影時パラメータを保持している。そのため、この時点で撮影時パラメータを保持していないフレームについて、その前後の撮影時パラメータを保持しているフレームの撮影時パラメータから撮影時パラメータの補間を行っても、撮影時刻の不連続点を跨ぐことはない。
図28は、ステップS2102の処理例であって、フレームの並び替え編集のうちの「削除」を実行する際のパラメータ補間手順を示すフローチャートである。図28のフローチャートについての説明では、適宜、「削除」の例を示した図23を参照する。
ステップS2801では、ソースフレームの直前のフレームに撮影時パラメータが存在するか否かを判定する。ソースフレームの直前のフレームは、図23の例では、フレームi−1である。なお、ステップS2801の処理は、図20のステップS2003と同等の処理である。制御部153は、ソースフレームの直前のフレームに撮影時パラメータが存在しない場合(S2801でNO)、処理をステップS2802へ進める。一方、制御部153は、ソースフレームの直前のフレームに撮影時パラメータが存在する場合(S2801でYES)、処理をステップS2803へ進める。
ステップS2802では、制御部153は、ソースフレームの直前のフレームの撮影時刻の前後に撮影されたフレームで撮影時パラメータを持つフレームの撮影時パラメータを用いて、この直前のフレームの撮影時パラメータを補間して作成し、付加する。なお、ステップS2802の処理は、図2のステップS2005と同等の処理である。その後、制御部153は、処理をステップS2803へ進める。
ステップS2803では、制御部153は、ソースフレームの直後のフレームに撮影時パラメータが存在するかどうか否かを判定する。ソースフレームの直後のフレームは、図23の例では、フレームj+1である。なお、ステップS2803の処理は、図20のステップS2003と同等の処理である。制御部153は、ソースフレームの直後のフレームに撮影時パラメータが存在しない場合(S2803でNO)、処理をステップS2804へ進める。一方、制御部153は、ソースフレームの直後のフレームに撮影時パラメータが存在する場合(S2803でYES)、処理をステップS2805へ進める。
ステップS2804では、制御部153は、ソースフレームの直後のフレームの撮影時刻の前後に撮影されたフレームで撮影時パラメータを持つフレームの撮影時パラメータを用いて、この直後のフレームの撮影時パラメータを補間して作成し、付加する。なお、ステップS2804の処理は、図20のステップS2005と同等の処理である。その後、制御部153は、処理をステップS2805へ進める。
ステップS2805では、制御部153は、ソースフレームを削除する。これは、図23の例の通り、フレームiからフレームjを削除する処理であり、これにより、フレームi−1とフレームj+1との間が撮影時刻の不連続点となる。しかし、フレームi−1とフレームj+1は撮影時パラメータを保持している。そのため、この時点で撮影時パラメータを保持していないフレームついて、その前後の撮影時パラメータを保持しているフレームの撮影時パラメータから撮影時パラメータの補間を行っても、撮影時刻の不連続点を跨ぐことはない。
以上の説明の通り、本実施形態によれば、撮影時パラメータを保持していないフレームがあるRAW動画のフレームを並び替え編集したときに、適切なパラメータ値で補間することが可能になり、よって、適切な現像結果を得ることができる。
<その他の実施形態>
以上、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。さらに、上述した各実施形態は本発明の一実施形態を示すものにすぎず、各実施形態を適宜組み合わせることも可能である。
本発明は以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムコードを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。