以下に、本発明を実施するための形態について詳細に説明する。尚、以下に説明する実施の形態は、本発明を実現するための一例であり、本発明が適用される装置の構成や各種条件によって適宜修正又は変更されるべきものであり、本発明は以下の実施の形態に限定されるものではない。また、後述する各実施形態の一部を適宜組み合わせて構成しても良い。
以下では、本発明に係る撮像装置を、静止画撮影や動画記録が可能なデジタルカメラに適用した例を説明するが、本発明はデジタルカメラのような撮像を主目的とした機器に限定されないことは言うまでもない。すなわち、本発明は、例えば、携帯電話の一種であるスマートフォン、パーソナルコンピュータ(ラップトップ型、デスクトップ型、タブレット型など)、ゲーム機など、撮像装置を内蔵もしくは外部接続可能なあらゆる機器に適用可能である。従って、本明細書における「撮像装置」は、撮像機能を有するものの、撮像を主目的としていない任意の機器を包含するものとして意図されている。
<装置構成>まず、図1を参照して、本実施形態の撮像装置101の構成及び機能の概略について説明する。
図1において、レンズ102は、被写体の光像を集光し、撮像素子104の撮像面に結像させる。絞り103は、被写体の光像の入射光量を調整する。撮像素子104は複数の画素(蓄積型光電変換素子)が配列されたCCDやCMOSなどを用いたイメージセンサーであり、レンズ102により結像された被写体像を光電変換する。
画像処理部105は、撮像素子104で得られた画像データに対して、ノイズ除去、ガンマ処理、補間処理、マトリクス変換、合成処理等の各種画像処理を施し、動画を構成するフレームの画像を生成する。
絞り駆動部109は、絞り103を駆動する。露出制御部110は、撮像素子104に光を蓄積させる時間(電荷蓄積時間あるいは露光時間)を制御する。また、露出制御部110は、絞り量を設定し絞り駆動部109を制御する。
撮影制御部111は、撮像素子104、画像処理部105、フレーム記録部106、合成処理部107、動画記録部108、露出制御部110に動作指令を出すことにより、各部の動作タイミングを制御する。なお、HDR合成による動画記録時は、撮影制御部111は、所定のフレームレートで異なる露出(適露出、アンダー露出)での撮像を交互に繰り返すように各部を制御する。このようにして得られた画像には、少なくとも、適正露出で撮像された適画像のフレーム(適フレーム)と、アンダー露出で撮像されたアンダー画像のフレーム(アンダーフレーム)の組が含まれる。なお、以下の説明では、適フレーム及びアンダーフレームを単に「適」及び「アンダー」と略称することもある。
また、撮影制御部111は、画像処理部105により生成されるフレームの画像中から被写体である動体及びその移動量を検出する機能を備えている。動体検出方法は、各種存在するが、例えば2つのフレームの差分絶対値をとる方法が挙げられる。差分がある箇所は動体と推定することができ、差分の量が大きいほど動体の移動量が大きいと判定できる。
フレーム記録部106は、動画記録時に画像処理部105により生成されたHDR合成用のフレーム(記録フレーム)を記録するメモリである。
合成処理部107は、フレーム記録部106からHDR合成を行うための記録フレームを読み出してHDR合成を行う。
動画記録部108は、合成処理部107で生成された合成フレーム(HDRフレーム)を動画として記録する内蔵ハードディスクや半導体メモリ等の記憶装置である。
操作部112は、ユーザ操作を受け付けるスイッチ類であり、静止画撮影や動画記録の開始指示その他の指示、入力等を行う。
撮影制御部111は、画像処理部105により生成され、フレーム記録部106に記録されているフレームの画像中から被写体である動体及びその移動量を検出する機能を備えている。動体検出方法は、例えば2つのフレームの差分絶対値をとり、差分がある箇所は動体と推定でき、差分値が大きいほど動体の移動量が大きいと判定できる。
なお、本実施形態の撮像装置101は、LCDパネルや有機ELパネル等からなる表示部を備え、撮像素子104で撮像された画像の表示や動画記録部108から読み出した動画の再生に利用される。
<HDR合成による動画記録時の動作>まず、図1及び図2を参照して、HDR合成による動画記録時の撮像装置101のHDRフレーム生成動作について説明する。
操作部112からHDR合成による動画記録の開始指示が出されると、撮影制御部111は必要な初期化処理を行い撮影を開始する。撮影制御部111から適フレームの撮像指示が出されると、露出制御部110は適露出制御値を算出し、絞り駆動部109に絞り量の設定を行う、また、撮像素子104に対してシャッタースピードと感度の設定を行う。撮影制御部111から撮像指示が出されると、レンズ102で集光され、絞り103で光量と被写界深度の調整が行われ、撮像素子104に結像した像を撮像して、適画像データが取得される。撮像素子104から読み出された適画像は、画像処理部105で記録フレームにするために必要な画像処理が行われて適フレームになる。適フレームはフレーム記録部106に記録される。適フレームの記録が完了すると、撮影制御部111はアンダーフレームの撮像指示を出す。露出制御部110は、アンダー露出になるように露出制御値を算出し、絞り103と撮像素子104の設定を行う。撮影制御部111から撮像指示が出されると、レンズ102で集光され、絞り103で光量と被写界深度の調整が行われ、撮像素子104に結像した像を撮像して、アンダー画像データが取得される。撮像素子104から読み出されたアンダー画像は、画像処理部105で記録フレームに必要な画像処理が行われてアンダーフレームになる。アンダーフレームはフレーム記録部106に記録される。撮影制御部111は適フレームとアンダーフレームの撮影が完了すると、合成処理部107でフレーム記録部106から両フレームを読み出し、HDRフレームとして合成する。HDRフレームは動画記録部108で動画として保存される。
図2は、上述した動作を繰り返し行うことで、適フレームとアンダーフレームを交互に取得し、HDRフレームを生成する動作を概念的に示している。
<フレームストップ時の動作>次に、図1及び図3を参照して、フレームストップ時の撮像装置101のHDRフレーム生成動作について説明する。
図2の動画記録動作において、露出制御部110は絞り量の設定を行い、絞り駆動部109がその絞り量になるように絞り103を駆動する。ここで、レンズ交換式のデジタルカメラの場合には、その制約によっては絞り103の駆動が急速にしか行えないものがある。露出制御部110は撮像素子104で取得した画像データに基づいて次のフレームの露出制御値を決定するため、絞り値が急速に変化すると、フレーム間の絞りの偏りによって画像の明るさがチラついたように見えてしまう場合がある。この場合、撮影制御部111はフレーム間の輝度差が不自然でない状態で撮像された画像を利用不可フレームと判定し、その間の画像の更新を停止させ、直前の利用可能フレームを記録フレームとして置き換える処理を行う。
本実施形態では、このような種々の割り込み処理によって利用不可フレームが発生し、直前の利用可能フレームに置き換えることでフレームの更新が停止することをフレームストップと呼ぶ。フレームストップはレンズの制約と被写体の輝度変化によって、いつどの程度の区間で発生するかは分からない。
図3は、図2のHDR合成による動画記録時のフレームストップ動作を概念的に示し、適フレームとアンダーフレームの組のうち、アンダーフレームのみ、もしくは適フレームのみが利用不可フレームである場合もある。
[実施形態1]以下、図4及び図5を参照して、実施形態1のフレームストップ時のHDR合成処理について説明する。
図4において、フレームストップ時以外の定常時においては、適フレームT101とアンダーフレームU101を交互に取得し、1つのHDRフレームH101を生成する。しかし、適・アンダーの組(T102・U102)のうち、アンダーフレームU102だけが利用不可フレームである場合には、1つ前のアンダーフレームU101を利用してHDRフレームH102を生成する。また、適・アンダーの組(T103・U103)のうち、適フレームT103だけが利用不可フレームである場合は直後の適フレームT104を利用してHDRフレームH104を生成し、直前のHDRフレームH103と置き換える。
ここで、図5を参照して、実施形態1の動画記録時のHDRフレーム生成処理について、図4の例に基づいて説明を行う。なお、図5の処理は、操作部112からHDR合成による動画記録の開始指示に応じて開始され、撮影制御部111が所定の制御プログラムを実行し、各部を制御することで実現される。
ステップS101では、合成処理部107が適・アンダーの組(T101・U101)でHDRフレームH101の合成を行う。
ステップS102では、撮影制御部111は、適もしくはアンダーのいずれか、もしくはその両方に利用不可フレームを含むか判定する。判定の結果、利用不可フレームがない場合は、ステップS101に戻り、次の適・アンダーの組(T102・U102)の合成を行う。また、利用不可フレームがある場合は、ステップS103に進む。
ステップS103では、撮影制御部111は、利用不可フレームが適フレームT102から始まるか判定し、適フレームから始まる場合は、ステップS106に進み、利用不可フレームがアンダーフレームのみであった場合はステップS104に進む。
ステップS104では、撮影制御部111は、1つ前のアンダーフレームU101が利用不可フレームであるか判定し、利用不可フレームであった場合はステップS106に進み、利用可能フレームであった場合はステップS105に進む。
ステップS105では、合成処理部107は、1つ前のアンダーフレームU101を利用してHDRフレームH102を生成し、ステップS107に進む。
ステップS106では、撮影制御部111はフレームストップを行い、直前のHDRフレームH101を再利用する。
ステップS107では、撮影制御部111は、適・アンダー(T104・U104)もしくはアンダー・1つ後の適(U103・T104)の利用可能フレームで組が作れるか判定する。判定の結果、いずれかの組が作れる場合はステップS108に進み、組が作れない場合はフレームストップ(S106)を行い、フレームストップ直前のHDRフレームH102を再利用し続ける。
ステップS108では、撮影制御部111は、適・アンダー(T104・U104)もしくはアンダー・1つ後の適(U103・T104)のどちらの組であるか、また、利用可能フレームの1フレーム目が適フレームであるか判定する。判定の結果、適・アンダーの組(T104・U104)の場合は、ステップS101に戻り、定常時のHDRフレームの合成を行い、アンダー・1つ後の適(U103・T104)の組の場合は、ステップS109に進む。
ステップS109では、撮影制御部111は、アンダー・1つ後の適(U103・T104)の組でHDRフレームH104の合成を行い、ステップS110に進む。
ステップS110では、撮影制御部111は、フレームストップの最終フレームH103とステップS109で合成されたHDRフレームH104を置き換える。
その後、ステップS111では、撮影制御部111は、操作部112からの動画記録の終了指示があるまで、ステップS101からの処理を繰り返し行う。
上述した実施形態1によれば、利用不可フレームが不規則に発生する状況でHDR合成を用いた動画記録を行う際に、フレームストップ前後で利用可能な適もしくはアンダーのフレームがある場合には、その利用可能フレームを用いてHDRフレームを生成する。このようにして最大2フレームを補間することができる。これにより、HDR合成を用いた動画記録においてフレームストップが発生した場合でもフレームストップの期間を短くし、フレーム間の連続性をもった動画記録を行うことが可能になる。
[実施形態2]次に、図6ないし図12を参照して、実施形態2のフレームストップ時のHDR合成処理について説明する。
図6は適フレームとアンダーフレームを交互に取得してHDRフレームを生成している動画記録時において、フレーム間の被写体としての動体の変化を示している。図6でHDRフレームの動体P201はアンダー画像中の動体P202が用いられるものとする。この状況で、あるフレームでアンダーフレームU201と適フレームT201が利用不可となった場合にはフレームストップとなり、動体P201は動体P203の位置にジャンプしたようになる。
ここで、図7を参照して、実施形態2のフレームストップ時の合成比率の切り替えによるHDR合成処理について説明する。
図7において、フレームストップ時以外の定常時においては、適フレームT301とアンダーフレームU301を交互に取得し、1つのHDRフレームH301を生成する。また、適・アンダーの組(T302・U302)のうちアンダーフレームU302だけが利用不可フレームである場合は、1つ前のアンダーフレームU301を利用してHDRフレームH302を生成する。ここで、本実施形態では、適画像と1つ前のアンダー画像中の動体の合成比率を定常時に対して切り替えて動体P301を多重表示させたHDRフレームH302を生成する。合成比率の切り替えを行うかどうかは、適フレームとアンダーフレームそれぞれの輝度値を用いて動体が白飛びや黒潰れしているか判定し、多重表示時に適フレームの動体もしくはアンダーフレームの動体のいずれか一方だけが消失してしまうことを防止する。また、適・アンダーの組(T303・U303)のうち、適フレームT303だけが利用不可フレームである場合は直後の適フレームT304を利用してHDRフレームH304を生成し、直前のHDRフレームH403と置き換える。
以下、図8を参照して、実施形態2の動画記録時のHDRフレーム生成処理について、図7の例に基づいて説明を行う。なお、図8の処理は、操作部112からHDR合成による動画記録の開始指示に応じて開始され、撮影制御部111が所定の制御プログラムを実行し、各部を制御することで実現される。
ステップS201では、合成処理部107が適・アンダーの組(T301・U301)でHDRフレームH301の合成を行う。
ステップS202では、撮影制御部111は、適もしくはアンダーのいずれか、もしくはその両方に利用不可フレームを含むか判定する。判定の結果、利用不可フレームがない場合は、ステップS201に戻り、次の適・アンダーの組(T302・U302)の合成を行う。また、利用不可フレームがある場合は、ステップS203に進む。
ステップS203では、撮影制御部111は、利用不可フレームが適フレームT302から始まるか判定し、適フレームから始まる場合は、ステップS209に進み、利用不可フレームがアンダーフレームのみであった場合はステップS204に進む。
ステップS204では、撮影制御部111は、1つ前のアンダーフレームU301が利用可能フレームであるか判定する。判定の結果、利用可能フレームであった場合はステップS205に進み、利用不可フレームであった場合はステップS209に進む。
ステップS205では、撮影制御部111は、適フレームT302の輝度が閾値以下であるか判定を行い、動体が白飛びしていないか判定する。判定の結果、閾値以下の場合は白飛びしていないと判定してステップS206に進み、閾値を超えている場合は白飛びしていると判定してステップS209に進む。
ステップS206では、撮影制御部111は、1つ前のアンダーフレームU301の輝度が閾値以上であるか判定を行い、動体が黒潰れしていないか判定する。判定の結果、閾値以上の場合は黒潰れしていないと判定してステップS207に進み、閾値未満の場合は黒潰れしていると判定してステップS209に進む。
ステップS205、S206では、撮影制御部111は、適フレームT302の被写体の白飛びとアンダーフレームU301の被写体の黒潰れのいずれか一方でも検出された場合はフレームストップを行う(S209)。
ステップS207では、撮影制御部111は、動体P301の合成比率の設定(例えば、適50%、アンダー50%)を切り替える。
ステップS208では、合成処理部107は、1つ前のアンダーフレームU301を利用してHDRフレームH302を生成し、ステップS210に進む。
ステップS209では、撮影制御部111はフレームストップを行う。すなわち、1つ前のアンダーフレームU301が利用可能フレームであった場合(S204)、適フレームT302の輝度が閾値以下であるか判定を行い、動体が白飛びしていないか判定する(S205)。また、1つ前のアンダーフレームU301の輝度が閾値以上であるか判定を行い、動体が黒潰れしていないかを判定する(S206)。判定の結果、適・アンダーのいずれか一方でも所定の輝度範囲にないならば、フレームストップを行う(S209)。
ステップS209では、撮影制御部111はフレームストップを行い、直前のHDRフレームH301を再利用する。
ステップS210では、撮影制御部111は、適・アンダー(T304・U304)もしくはアンダー・1つ後の適(U303・T304)の利用可能フレームで組が作れるか判定する。いずれかの組が作れる場合はステップS211に進み、組が作れない場合はフレームストップ(S209)を行い、フレームストップ直前のHDRフレームH302を再利用し続ける。
ステップS211では、撮影制御部111は、適・アンダー(T304・U304)もしくはアンダー・1つ後の適(U303・T304)のどちらの組であるか、また、利用可能フレームの1フレーム目が適フレームであるか判定する。判定の結果、適・アンダーの組(T304・U304)の場合は、ステップS201に戻り、定常時のHDRフレームの合成を行い、アンダー・1つ後の適(U303・T304)の組の場合は、ステップS212に進む。
ステップS212では、撮影制御部111は、アンダー・1つ後の適(U303・T304)の組でHDRフレームH304の合成を行い、ステップS213に進む。
ステップS213では、撮影制御部111は、フレームストップの最終フレームH303とステップS213で合成されたHDRフレームH304を置き換える。なお、図7で、例えば、利用不可フレームが検出されなくなった時点が適フレーム、つまり、利用可能なフレームが適フレームから始まる場合には、ステップS213で最終フレームの置き換えは行わず、定常時と同様に適・アンダーの組から合成されたHDRフレームを利用する。
その後、ステップS214では、撮影制御部111は、操作部112からの動画記録の終了指示があるまで、ステップS201からの処理を繰り返し行う。
次に、図9を参照して、実施形態2のフレームストップ時の適フレームを利用したHDR合成処理について説明する。
図9において、定常時は適フレームT401とアンダーフレームU401を交互に取得し、1つのHDRフレームH401を生成する。また、適・アンダーの組(T402・U402)のうちアンダーフレームU402だけが利用不可フレームである場合は、1つ前のアンダーフレームU401を利用してHDRフレームH402を生成する。また、適・アンダーの組(T403・U403)のうち適フレームT403だけが利用不可フレームである場合は、直後の適フレームT404を利用してHDRフレームH404を生成し、直前のHDRフレームH403と置き換える。ここで、本実施形態では、適フレームT404の動体の合成比率を100%に切り替えて動体P401を多重表示させたHDRフレームH404を生成する。合成比率の切り替えを行うかどうかは、適フレームとアンダーフレームそれぞれの輝度値を用いて動体が白飛びや黒潰れしているか判定し、多重表示時に適フレームの動体もしくはアンダーフレームの動体のいずれか一方だけが消失してしまうことを防止する。
以下、図10を参照して、実施形態2の動画記録時のHDRフレーム生成処理について、図9の例に基づいて説明を行う。なお、図10の処理は、操作部112からHDR合成による動画記録の開始指示に応じて開始され、撮影制御部111が所定の制御プログラムを実行し、各部を制御することで実現される。
ステップS301では、合成処理部107が適・アンダーの組(T401・U401)でHDRフレームH401の合成を行う。
ステップS302では、撮影制御部111は、適もしくはアンダーのいずれか、もしくはその両方に利用不可フレームを含むか判定する。判定の結果、利用不可フレームがない場合は、ステップS301に戻り、次の適・アンダーの組(T402・U402)の合成を行う。また、利用不可フレームがある場合は、ステップS303に進む。
ステップS303では、撮影制御部111は、利用不可フレームが適フレームT402から始まるか判定し、適フレームから始まる場合は、ステップS306に進み、利用不可フレームがアンダーフレームのみであった場合はステップS304に進む。
ステップS304では、撮影制御部111は、1つ前のアンダーフレームU401が利用不可フレームであるか判定し、利用不可フレームであった場合はステップS306に進み、利用可能フレームであった場合はステップS305に進む。
ステップS305では、合成処理部107は、適フレームT402の動体の合成比率100%、1つ前のアンダーフレームU401(動体の合成比率0%)を利用してHDRフレームH402を生成し、ステップS307に進む。
ステップS306では、撮影制御部111はフレームストップを行い、直前のHDRフレームH401を再利用する。
ステップS307では、撮影制御部111は、適・アンダー(T404・U404)もしくはアンダー・1つ後の適(U403・T404)の利用可能フレームで組が作れるか判定する。判定の結果、いずれかの組が作れる場合はステップS308に進み、組が作れない場合はフレームストップ(S306)を行い、フレームストップ直前のHDRフレームH402を再利用し続ける。
ステップS308では、撮影制御部111は、適・アンダー(T404・U404)もしくはアンダー・1つ後の適(U403・T404)のどちらの組であるか、また、利用可能フレームの1フレーム目が適フレームであるか判定する。判定の結果、適・アンダーの組(T404・U404)の場合は、ステップS301に戻り、定常時のHDRフレームの合成を行い、アンダー・1つ後の適(U403・T404)の組の場合は、ステップS309に進む。
ステップS309では、撮影制御部111は、適フレームT404の輝度が閾値以下であるか判定を行い、被写体である動体が白飛びしていないか判定する。判定の結果、閾値以下の場合は白飛びしていないと判定してステップS310に進み、閾値を超えている場合は白飛びしていると判定してステップS301に戻る。
ステップS310では、撮影制御部111は、1つ前のアンダーフレームU403の輝度が閾値以上であるか判定を行い、被写体である動体が黒潰れしていないか判定する。判定の結果、閾値以上の場合は黒潰れしていないと判定してステップS311に進み、閾値未満の場合は黒潰れしていると判定してステップS301に戻る。
ステップS311では、撮影制御部111は、動体P401の合成比率の設定(例えば、適50%、アンダー50%)を切り替える。
ステップS312では、合成処理部107は、アンダー・1つ後の適(U403・T404)の組でHDRフレームH404の合成を行い、ステップS313に進む。
ステップS313では、撮影制御部111は、フレームストップの最終フレームH403とステップS312で合成されたHDRフレームH404を置き換える。なお、図9で、例えば、利用不可フレームが検出されなくなった時点が適フレーム、つまり、利用可能なフレームが適フレームから始まる場合には、ステップS313で最終フレームの置き換えは行わず、定常時と同様に適・アンダーの組から合成されたHDRフレームを利用する。
その後、ステップS314では、撮影制御部111は、操作部112からの動画記録の終了指示があるまで、ステップS301からの処理を繰り返し行う。
次に、図11を参照して、実施形態2のフレームストップ時の合成比率の入れ替えによるHDR合成処理について説明する。
図11において、定常時は適フレームT501とアンダーフレームU501を交互に取得し、1つのHDRフレームH501を生成する。HDRフレームH501の動体P501は適フレームT501とアンダーフレームU501の各動体が多重表示されている。また、適・アンダーの組(T502・U502)のうちアンダーフレームU502だけが利用不可フレームである場合は、1つ前のアンダーフレームU501を利用してHDRフレームH502を生成する。ここで、本実施形態では、定常時の適・アンダーの組の合成比率(適30%、アンダー70%)と、HDRフレームH502の適・1つ前のアンダーの組の合成比率(適70%、アンダー30%)とを入れ替える。例えば、定常時のHDRフレームH501の動体P501における適フレームT501の合成比率が30%、アンダーフレームU501が70%であったとする。この場合は、HDRフレームH502の動体P502における適フレームT502とアンダーフレームU501の合成比率をそれぞれ70%と30%に設定する。
また、適・アンダーの組(T503・U503)のうち適フレームT503だけが利用不可フレームである場合は、直後の適フレームT504を利用してHDRフレームH504を生成し、直前のHDRフレームH503を置き換える。この場合も、アンダー・適の組の合成比率を定常時に対して入れ替える。例えば、定常時のHDRフレームH505の動体P505における適フレームT504の合成比率が30%、アンダーフレームU504が70%であったとする。この場合は、HDRフレームH504の動体P504における適フレームT504とアンダーフレームU503の合成比率をそれぞれ70%と30%に設定する。
合成比率の切り替えを行うかどうかは、適フレームとアンダーフレームそれぞれの輝度値を用いて動体が白飛びや黒潰れしているか判定し、多重表示時に適フレームの動体もしくはアンダーフレームの動体のいずれか一方だけが消失してしまうことを防止する。
以下、図12を参照して、実施形態2の動画記録時のHDRフレーム生成処理について、図11の例に基づいて説明を行う。なお、図12の処理は、操作部112からHDR合成による動画記録の開始指示に応じて開始され、撮影制御部111が所定の制御プログラムを実行し、各部を制御することで実現される。
ステップS401では、合成処理部107が適・アンダーの組(T501・U501)でHDRフレームH501の合成を行う。
ステップS402では、撮影制御部111は、適もしくはアンダーのいずれか、もしくはその両方に利用不可フレームを含むか判定する。判定の結果、利用不可フレームがない場合は、ステップS401に戻り、次の適・アンダーの組(T502・U502)の合成を行う。また、利用不可フレームがある場合は、ステップS403に進む。
ステップS403では、撮影制御部111は、利用不可フレームが適フレームT502から始まるか判定し、適フレームから始まる場合は、ステップS409に進み、利用不可フレームがアンダーフレームのみであった場合はステップS404に進む。
ステップS404では、撮影制御部111は、1つ前のアンダーフレームU501が利用可能フレームであるか判定し、利用可能フレームであった場合はステップS405に進み、利用不可フレームであった場合はステップS409に進む。
ステップS405では、撮影制御部111は、適フレームT502の輝度が閾値以下であるか判定を行い、被写体である動体が白飛びしていないか判定する。判定の結果、閾値以下の場合は白飛びしていないと判定してステップS406に進み、閾値を超えている場合は白飛びしていると判定してステップS409に進む。
ステップS406では、撮影制御部111は、1つ前のアンダーフレームU501の輝度が閾値以上であるか判定を行い、被写体である動体が黒潰れしていないか判定する。判定の結果、閾値以上の場合は黒潰れしていないと判定してステップS407に進み、閾値未満の場合は黒潰れしていると判定してステップS409に進む。
ステップS407では、撮影制御部111は、動体P502の合成比率の設定(例えば、適70%、アンダー30%)を入れ替える。
ステップS408では、合成処理部107は、1つ前のアンダーフレームU501を利用してHDRフレームH502を生成し、ステップS410に進む。
ステップS409では、撮影制御部111はフレームストップを行い、直前のHDRフレームH502を再利用する。
ステップS410では、撮影制御部111は、適・アンダー(T504・U504)もしくはアンダー・1つ後の適(U503・T504)の利用可能フレームで組が作れるか判定する。判定の結果、いずれかの組が作れる場合はステップS411に進み、組が作れない場合はフレームストップ(S409)を行い、フレームストップ直前のHDRフレームH502を再利用し続ける。
ステップS411では、撮影制御部111は、適・アンダー(T504・U504)もしくはアンダー・1つ後の適(U503・T504)のどちらの組であるか、また、利用可能フレームの1フレーム目が適フレームであるか判定する。判定の結果、適・アンダーの組(T504・U504)の場合は、ステップS401に戻り、定常時のHDRフレームの合成を行い、アンダー・1つ後の適(U503・T504)の組の場合は、ステップS412に進む。
ステップS412では、撮影制御部111は、適フレームT504の輝度が閾値以下であるか判定を行い、被写体である動体が白飛びしていないか判定する。判定の結果、閾値以下の場合は白飛びしていないと判定してステップS413に進み、閾値を超えている場合は白飛びしていると判定してステップS401に戻る。
ステップS413では、撮影制御部111は、1つ前のアンダーフレームU503の輝度が閾値以上であるか判定を行い、被写体である動体が黒潰れしていないか判定する。判定の結果、閾値以上の場合は黒潰れしていないと判定してステップS414に進み、閾値未満の場合は黒潰れしていると判定してステップS401に戻る。
ステップS414では、撮影制御部111は、動体P503の合成比率の設定(例えば、適70%、アンダー30%)を入れ替える。
ステップS415では、合成処理部107は、アンダー・1つ後の適(U503・T504)の組でHDRフレームH504の合成を行い、ステップS416に進む。
ステップS416では、撮影制御部111は、フレームストップの最終フレームH503とステップS415で合成されたHDRフレームH504を置き換える。なお、図11で、例えば、利用不可フレームが検出されなくなった時点が適フレーム、つまり、利用可能なフレームが適フレームから始まる場合には、ステップS416で最終フレームの置き換えは行わず、定常時と同様に適・アンダーの組から合成されたHDRフレームを利用する。
その後、ステップS417では、撮影制御部111は、操作部112からの動画記録の終了指示があるまで、ステップS401からの処理を繰り返し行う。
上述した実施形態2によれば、実施形態1の効果に加えて、利用不可フレームが検出され、その利用不可フレームの前後の利用可能フレームで補間を行う場合に、動体を多重表示させてその合成比率を調節する。このようにしてフレームストップで動体がジャンプして見えないように滑らかに表示できる。これにより、HDR合成を用いた動画記録においてフレームストップが発生した場合でもフレームストップの期間を短くし、フレーム間の連続性をもった動画記録を行うことが可能になる。
[実施形態3]次に、図13ないし図15を参照して、実施形態3のフレームストップ時のHDR合成処理について説明する。
本実施形態では、図13に示すように、動画記録時に適フレームとアンダーフレームを交互に取得して動体を多重表示させたHDRフレームを生成する。そして、適・アンダーの組のうちいずれか一方が利用不可フレームである場合には、直前の利用可能フレームを利用してHDRフレームを生成する。すなわち、適・アンダーの組(T602・U602)のうちアンダーフレームU602が利用不可フレームの場合は直前の利用可能なアンダーフレームU601を利用してHDRフレームH602を生成する。また、適・アンダーの組(T602・U602)のうち適フレームT603が利用不可フレームの場合は直前の利用可能な適フレームT602を利用してHDRフレームH603を生成する。
ところが、時間的に前後のHDRフレームH601とHDRフレームH602の合成において同じアンダーフレームU601を用いると、動体P601と動体P602がフレーム間で停止した、不自然なフレームが生成されてしまう。また、HDRフレームH602とHDRフレームH604で同じ適フレームT602を用いると、動体の移動量によっては、それまでのHDRフレームH601、H602と比べて動体P603の多重感が大きく異なり、不自然なフレームが生成されてしまう。
そこで、本実施形態では、このような不自然なフレームの生成を抑制するように動体の移動量に応じたHDR合成処理を行う。
図14を参照して、実施形態4のフレームストップ時におけるHDR合成処理について説明する。
図14において、フレームストップ時以外の定常時においては、適フレームT701とアンダーフレームU701を交互に取得し、1つのHDRフレームH701を生成する。ここで、適・アンダーの組(T702・U702)のうちアンダーフレームU702だけが利用不可フレームである場合は、2つ前のアンダーフレームU700と1つ前のアンダーフレームU701を利用して動体の検出を行う。そして、動体の移動量が閾値以下の場合は、1つ以上前のアンダーフレームU701を利用してHDRフレームH702を生成し、閾値を超えている場合はフレームストップを行う。
また、適・アンダーの組(T703・U703)のうち適フレームT703だけが利用不可フレームである場合は、1つ後の適フレームT704と直前の利用可能な適フレームT702を利用して動体の検出を行う。そして、動体の移動量が閾値以下の場合は、直前の利用可能な適フレームT602を利用してHDRフレームH604を生成し、直前のHDRフレームH703と置き換え、閾値を超えている場合はフレームストップを行う。
以下、図15を参照して、実施形態3の動画記録時のHDRフレーム生成処理について、図14の例に基づいて説明を行う。なお、図15の処理は、操作部112からHDR合成による動画記録の開始指示に応じて開始され、撮影制御部111が所定の制御プログラムを実行し、各部を制御することで実現される。
ステップS501では、合成処理部107が適・アンダーの組(T701・U701)でHDRフレームH501の合成を行う。
ステップS502では、撮影制御部111は、適もしくはアンダーのいずれか、もしくはその両方に利用不可フレームを含むか判定する。判定の結果、利用不可フレームがない場合は、ステップS501に戻り、次の適・アンダーの組(T702・U702)の合成を行う。また、利用不可フレームがある場合は、ステップS503に進む。
ステップS503では、撮影制御部111は、利用不可フレームが適フレームT702から始まるか判定する。判定の結果、適フレームから始まる場合はフレームストップを行い(S508)、直前のHDRフレームH701を再利用し、利用不可フレームがアンダーフレームのみであった場合はステップS504に進む。
ステップS504では、撮影制御部111は、2つ前のアンダーフレームU700と1つ前のアンダーフレームU701が利用可能フレームであるか判定する。判定の結果、少なくともいずれか一方が利用不可フレームであった場合はステップS508に進み、いずれも利用可能フレームであった場合はステップS505に進む。
ステップS505では、撮影制御部111は、2つ前のアンダーフレームU700と1つ前のアンダーフレームU701の画像を用いて動体の検出を行う。動体検出方法は、例えば、2つのフレームの差分絶対値から求める。
ステップS506では、撮影制御部111は、ステップS505で検出された動体の移動量が閾値以下であるか判定し、閾値以下の場合はステップS507に進み、閾値を超えている場合はステップS508に進む。
ステップS507では、合成処理部107は、1つ前のアンダーフレームU701を利用してHDRフレームH702を生成し、ステップS508に進む。
ステップS508では、撮影制御部111はフレームストップを行い、直前のHDRフレームH702を再利用する。
ステップS509では、撮影制御部111は、適・アンダー(T704・U704)もしくはアンダー・1つ後の適(U703・T704)の利用可能フレームで組が作れるか判定する。判定の結果、いずれかの組が作れる場合はステップS510に進み、組が作れない場合はフレームストップ(S409)を行い、フレームストップ直前のHDRフレームH702を再利用し続ける。
ステップS510では、撮影制御部111は、適・アンダー(T704・U704)もしくはアンダー・1つ後の適(U703・T704)のどちらの組であるか、また、利用可能フレームの1フレーム目が適フレームであるか判定する。判定の結果、適・アンダーの組(T704・U704)の場合は、ステップS501に戻り、定常時のHDRフレームの合成を行い、アンダー・1つ後の適(U703・T704)の組の場合は、ステップS511に進む。
ステップS511では、撮影制御部111は、1つ前の利用可能フレームの適画像T702と1つ後の適画像T704を用いて動体検出を行う。
ステップS512では、撮影制御部111は、ステップS511で検出された移動の移動量が閾値以下であるか判定し、閾値以下の場合はステップS513に進み、閾値を超えている場合はステップS501に戻る。
ステップS513では、合成処理部107は、アンダー・1つ後の適(U703・T704)の組でHDRフレームH704の合成を行い、ステップS514に進む。
ステップS514では、撮影制御部111は、フレームストップの最終フレームH703とステップS513で合成されたHDRフレームH704を置き換える。なお、図14で、例えば、利用不可フレームが検出されなくなった時点が適フレーム、つまり、利用可能なフレームが適フレームから始まる場合には、ステップS514で最終フレームの置き換えは行わず、定常時と同様に適・アンダーの組から合成されたHDRフレームを利用する。
その後、ステップS515では、撮影制御部111は、操作部112からの動画記録の終了指示があるまで、ステップS501からの処理を繰り返し行う。
上述した実施形態3によれば、実施形態1の効果に加えて、利用不可フレームが発生した場合には、その利用不可フレームの前後のフレームで動体検出を行い、利用可能フレームで補間を行うかフレームストップを行うかを判定する。このようにしてHDRフレームが不自然な画像にならないように制御する。これにより、HDR合成を用いた動画記録においてフレームストップが発生した場合でもフレームストップの期間を短くし、フレーム間の連続性をもった動画記録を行うことが可能になる。
上述した実施形態では、動画記録時のHDR合成処理として、少なくとも適・アンダーの組から合成フレームを生成する例を説明しているが、露出差のある複数枚の画像を合成した合成画像を記録や表示など任意の用途に用いる場合でも本発明は適用可能である。また、上述した実施形態では、フレームストップの発生原因として絞り駆動による割り込みを例に挙げているが、これに限られず、発生原因によらず本発明は適用可能である。
また、本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。