(実施例1)
図1は本発明を適用した、動画像を記録および再生できる動画像処理装置としての動画像再生装置としてのビデオカメラ100の構成例を示したものである。
レンズユニット101は、集光のための固定レンズ群、変倍レンズ群、絞り、そして変倍レンズ群の動きで移動した結像位置を補正する機能と焦点調節を行うフォーカスレンズ群により構成される。
レンズユニット101は、ユーザが操作部106からズーム動作を指示すると、変倍レンズ群が光軸に平行な方向に移動して光学的に撮影倍率を変更する。
撮像センサ102は、レンズユニット101により結像された光学像を所定時間ごとに電気信号に変換する。AFE(Analog Front End)103は撮像センサ102からの画像信号を読み出し、画像信号のサンプル・ホールドと画像信号の増幅、デジタル信号への変換を行う。
カメラ信号処理部104はAFE103から入力された画像信号に対して色分離処理、アパーチャー処理、ガンマ処理等を施し、それらの処理の後に輝度信号、色差信号を生成する。そしてカメラ信号処理部104は、本実施例においてはYCbCr(4:2:2)画像データを出力する。
システム制御部105は、バス114を介してROM110、RAM111およびその他のブロックに接続され、各ブロックの制御を行う。
本実施例において、システム制御部105は主に以下の3つの処理を行う。
(1)システム制御部105は動画撮影時に、振れ情報や構図変化情報(たとえば光学ズーム操作やパンニング、チルティング、撮影者の前進、後退などの構図変化に関する情報)の取得を行う。ここで取得した振れ情報や構図変化情報といったデータは、像振れ補正情報として以降の処理で使用される。
(2)システム制御部105は像振れ補正情報の解析を行い、動画再生時の像振れ補正の切り出し範囲の位置と大きさを決定する。
ここでシステム制御部105は動画撮影時の構図変化のタイミングを取得し、構図変化タイミングに応じて区間を決定し、この区間をもとに動画再生時の像振れ補正の切り出し範囲の大きさを決定する。
(3)システム制御部105は(2)にて決定された動画再生時の像振れ補正の切り出し範囲の大きさを用いて切り出し位置を変更することで動画再生時の像振れ処理を行う。なお、この3つのステップの詳細な説明は後述する。なお、ここで切り出し範囲とは表示画像として出力される範囲である。
操作部106はズームレバーやボタンなどに対するユーザ操作の入力内容をシステム制御部105伝え、システム制御部105はユーザ操作に応じた処理を行う。
映像情報出力部107はフレームメモリ109にある画像データを表示部115に表示したり、HDMI(登録商標)端子などの外部出力端子(図示しない)から出力したりする。本実施例においては、表示部115は映像情報出力部107の出力した画像データを表示する液晶パネルであるが、たとえば表示部115にタッチパネルとしての操作部106が配置されていても良い。
像振れ補正部108は、画像データから所定の切り出し範囲から画像データの切り出しを行い、切り出し位置を変更することで、動画再生時に動画ストリームでの振れを補正する。動画再生時において、システム制御部105は、記録媒体制御部112を通じて記録媒体113に記録された動画ストリームを読み込み、フレームメモリ109に展開する。
動画再生時に像振れ補正をおこなうときには、像振れ補正部108はフレームメモリ109に展開された動画像データ(動画ストリーム)を補正する。なお、本実施例においては、動画再生時に像振れ補正をおこなう場合について述べる。
しかし、像振れ補正部108は動画撮影時に画像データの所定の出力範囲から画像データの切り出しを行い、切り出し位置を変更することで像振れ補正を行っても良い。
フレームメモリ109は、複数のフレームを格納可能なメモリである。各々のフレームはシステム制御部105によりフレームメモリ109上の所望の領域に格納され、それぞれ1フレーム分の画像データを記録する。
ROM110は、システム制御部105が図1中の各ブロックを制御するための制御プログラムを記録する。RAM111は、システム制御部105が動作する際のデータの一時的な格納場所として用いられる。
記録媒体制御部112は記録媒体113に対して記録再生を制御する。記録媒体113はNANDなどのフラッシュメモリであり、フレームメモリ109に記録されたYCbCr画像データが動画ストリームとして記録される。また記録媒体113には動画ストリームとともに撮影時の振れ情報なども記録される。
次に、図2を用いて像振れ補正部108の構成について説明する。
画像切り出し部201は、画像切り出し制御部202の指示により、フレームメモリ109に記録されている画像データから所定の切り出し範囲の画像データを切り出す。画像切り出し制御部202は、振れ情報取得部206が取得した動画像の振れ情報に応じて、画像切り出し部201が切り出し範囲の位置と大きさを決定する。
なお本実施例において、画像切り出し制御部202は1つのフレームから動画再生時の像振れ補正にて用いる切り出し範囲を決定し、この切り出し領域の大きさと画像データの大きさから拡大率を決定する。
本実施例での拡大率とは、切り出し範囲からの画像データを所望の画面サイズ(たとえば表示部115の画面サイズ)に応じて拡大する時の比率である。
しかし、以下の制御においては、拡大率を用いて切り出し範囲を演算して像振れ補正制御しても、切り出し範囲の大きさや画像データ上での座標を直接用いて像振れ補正制御しても良い。
拡大処理部203は、拡大率制御部204の指示により、所定のタイミングで画像データの解像度変換を行う。拡大率制御部204は、振れ情報取得部206の振れ情報および構図変化情報取得部208の構図変化情報に応じて、拡大処理部203に対して拡大縮小倍率の設定や拡大縮小を行うタイミングの指示を出す。
振れ量取得手段としての振れ検出部205は、振れ情報を検出する手段として機能し、動画撮影中もしくは動画再生中の機器の振れの検出を行う。この振れ検出は様々な方法が考えられる。たとえば振れ検出部205は振れ検出センサとしての角速度センサや加速度センサで構成され、ビデオカメラ100の水平および垂直方向の変位量(角速度など)を検出するセンサの出力から振れを検出する。
振れ検出部205が角速度センサや加速度センサで構成される場合、センサから検出した振れは振れ信号として出力され、LPFなどのフィルタ処理を経て撮像素子面上での光学像の振れ量に演算される。
このとき、ビデオカメラ100の動き(振れ)は同じであっても光学ズーム倍率により撮像素子上の光学像の振れ量は異なる。
このため、振れ検出部205が角速度センサや加速度センサで構成される場合は、光学ズーム倍率を考慮してセンサ出力(振れ信号)から光学像の像面上での振れ量を演算する。そして、その演算結果を画像データの切り出し範囲の移動量として振れ検出部205から出力する。
また振れ検出部205は、水平および垂直方向の振れによる動画ストリーム中のフレーム間のずれ量を動きベクトルとして検出しても良い。この場合、この動きベクトルの大きさが振れ量となる。
なお、デジタル一眼レフカメラなどのレンズ交換式カメラの場合、振れ検出部205がレンズ装置側に、像振れ補正部108がカメラ本体側に配置され、レンズ装置とカメラ本体との間で振れ情報や構図変化情報を通信する場合がある。
この場合、振れ検出部205はカメラ本体側にあり、振れ情報をレンズ装置から通信にて取得する手段であっても良い。
システム制御部105は、検出した振れの方向と撮像素子上での振れ量(映像信号の揺れ量、動きベクトルの大きさ)を振れ情報として水平方向と垂直方向の成分ごとに記録媒体113へ記録する。この際に、システム制御部105は、振れを検出したタイミングと映像を撮像したタイミングが一致するように、振れ情報と動画ストリームとを時間的に関連付けて記録媒体113へ記録する。
なお、記録媒体113に振れ情報を記録する構成としたが、RAM111に撮影全体を通した振れ情報を記録しておく構成でも良い。本実施例においては、所定の期間(後述する構図固定区間)での最大の振れ量はRAM111に記録する。
振れ情報取得部206は、再生する動画ストリームに関連付けられた振れ情報を記録媒体113から読み取る。
構図変化検出部207は、撮影中の構図変化、たとえば光学ズーム操作やパンニングやチルティング、撮影者の前進、後退などの構図変化を検出する。ここで、構図変化検出部207が光学ズーム操作が行われたかをどのように判断するかを説明する。ユーザが操作部106により光学ズーム操作を行ったとき、システム制御部105は構図が変化したことを構図変化検出部207へ通知する。
なお、この構図変化は振れ検出部205がセンサの出力ないし、動きベクトルより画面の変化を捉えることで、構図変化を検出することもできる。つまり、期間取得手段としての構図変化検出部207は、動画ストリーム内の構図変化のタイミングを取得し、構図変化タイミングに応じて区間を区切り、この区切った区間ごと動画再生時における像振れ補正のための切り出し範囲を決定する。
システム制御部105は、構図変化を検出したタイミングと映像を撮像したタイミングが一致するように、上述した方法により検出された構図変化情報と動画ストリームとを時間的に関連付けて記録媒体113へ記録する。
構図変化情報取得部208は動画ストリーム内の構図変化情報を取得する。ここでは再生している動画ストリームに関連付けられた構図変化情報を記録媒体113から読み取る。
図3を用いて像振れ補正部108における補正動作について説明する。
図3(a)を用いて切り出し動作について説明する。フレームメモリ109に展開された画像データ301(動画ストリーム)に対して、まず切り出し制御部202により切り出し枠302が設定される。次に画像切り出し部201が切り出し枠302内の画像データを読み込む。拡大処理部203は、拡大率制御部204が指示した倍率(画像の大きさに対する切り出し範囲の大きさ)で拡大処理および解像度変換を行う。
そして、切り出し枠302内の画像データを映像情報出力部が出力する画像サイズの画像である出力画像303に変換し、フレームメモリ109へ再び記録される。フレームメモリ109に記録された出力画像303は映像情報出力部107により表示部115に表示したり、HDMI(登録商標)端子などの外部出力端子(図示しない)に出力する。
次に、図3(b)を用いて像振れ補正部108における補正動作について説明する。図3(b)に示す領域302aおよび304は現在のフレームの画像データの一部の領域、図3(a)に示す領域302は1フレーム前の画像データの一部の領域であるとする。このとき、図3(a)および(b)に示す領域302と領域302aが撮像面上では同じ領域であるとする。
しかしながら1フレーム前と現在のフレームとの間に加わる撮影者の手振れなどに起因して、1フレーム前の画像データでの領域302から切り出される画像データと現在のフレームの領域302aから切り出される画像データとは互いに異なる。この1フレーム前の領域302から切り出される画像データと現在のフレーム領域302aから切り出される画像データとの類似度が最大になるような領域304を検出する。
この領域304は、たとえば特徴点を抽出したりブロックマッチング方式を利用して検出できる。そして、この1フレーム前の領域302と現在のフレームの領域304から実際の像面上での振れ量または動きベクトル305を検出することができる。そして、振れ量または動きベクトル305に基づいて設定された領域304に基づいた出力画像303を取得する。
<像振れ補正情報の取得>
次に、図4のフローチャートと図5を用いて、システム制御部105が実行する像振れ補正情報の取得について詳細な説明を行う。ここでいう像振れ補正情報とは、図5で説明する構図固定区間の開始終了時刻と構図変化区間の開始終了時刻、およびそれらの区間における最大振れ量、そして各時刻のフレームにおける振れの水平および垂直方向の振れ量を指す。
本発明による再生時の像振れ補正を実行する際は、撮影開始と構図変化を起点とした複数の区間に動画ストリームを分割する。まず、図5を用いて具体的にどのように区間を作成していくかを簡単に説明する。
図5の横方向は時間軸を表しており、右に進むほど時刻が進む。図5において、動画の撮影を開始した撮影開始時刻t0から撮影中のズーム操作やパンニング等による構図変化の開始した構図変化開始時刻t1までの区間を撮影構図固定区間501とする。構図変化開始時刻t1からズーム操作の終了やパンニングなどによる構図変化が終了した構図変化終了時刻t2までの区間を撮影構図変化区間511とする。
以降、撮影中のズーム操作やパンニング等による構図変化がある時とない時が交互にあらわれるものとする。この場合、構図変化終了時刻t2から構図変化開始時刻t3までの区間を撮影構図固定区間502、構図変化開始時刻t3から構図変化終了時刻t4までの区間を撮影構図変化区間512とする。このように、撮影が終了するまでの間に撮影構図固定区間、撮影構図変化区間を交互に追加する。
次に図4のフローチャートを用いて像振れ補正情報の取得方法について説明する。
ステップS401において、システム制御部105は、ユーザが操作部106を操作することによってユーザから撮影開始の指示があると、動画の撮影を開始する。システム制御部105は、撮影を開始すると、撮影構図固定区間1(n=1)を作成する。そしてシステム制御部105は、撮影構図固定区間1を処理する区間として設定する。
ステップS402において、像振れ補正部108内の振れ検出部205は、撮影中のすべてのフレームに対して振れ情報の取得を行う。
そして、システム制御部105は、振れの方向と振れ量(動きベクトルの大きさ)を振れの発生した時刻とともに、記録媒体制御部112を通して記録媒体113に記録する。なお、本実施例においては、同じ構図固定区間で最大の振れ量はRAM111に記録する。
ステップS403において、システム制御部105は、ユーザが操作部106を操作することによって撮影終了要求があったかどうかの判断を行う。終了要求があったときにはステップS411に進み、終了処理を行う。ステップS411においては、システム制御部105は、撮影終了要求があった時刻までの区間を構図固定区間nとし、構図固定区間nにおける最大の振れ量をRAM111に記録する。ステップS403でNoの場合はステップS404に進む。
ステップS404において、システム制御部105は、ズーム操作が開始されたりパンニングされたりして構図変化が発生していないかを、像振れ補正部108内の構図変化検出部207から取得する。システム制御部105は、構図変化がないときにはステップS402にもどり、振れ情報の取得を行う。
構図変化があると判定されたときには、ステップS405に進み、システム制御部105は構図固定区間nの最大振れ量をRAM111に記録する。すなわち、構図固定区間が終了して構図変化期間が開始した時点で、システム制御部105は構図固定区間nおける最大の振れ量をRAM111に記録する。ステップS406においては、ステップS402と同様に、振れ検出部205は構図変化期間の振れ情報を取得する。
ステップS407において、システム制御部105は、ユーザが操作部106を操作することによって撮影終了要求があったかどうかの判断を行う。終了要求があったときにはステップS412に進み、終了処理を行う。ステップS412においてシステム制御部105は、撮影終了要求があった時刻までの区間を構図変化区間nとし、構図変化区間nにおける最大の振れ量をRAM111に記録し、その後撮影を終了する。
ステップS408において、システム制御部105は、ズーム操作が終了したりユーザによるパンニングが終了するなど構図変化が終了したか否かの判定結果を構図変化検出部207より取得する。構図変化が継続しているときにはS406にもどり振れ情報の取得を行い、構図変化が終了したと判定した場合は、ステップ409へ進む。
ステップS409において、システム制御部105は構図変化区間における最大の振れ量をRAM111に記録する。そして、ステップS410においてシステム制御部105は、処理する区間を次の区間へ変更するために、構図固定区間nに1を加えて構図固定区間n+1とする。そしてS402にもどりシステム制御部105は構図固定区間n+1の振れ情報の取得を行う。
<像振れ補正情報の解析と切り出し範囲の決定>
次に、システム制御部105が行う、像振れ補正情報の解析と動画再生時における像振れ補正のための切り出し範囲の決定について図6のフローチャートと図5および図7を用いて説明を行う。
一方、本発明による再生時の像振れ補正を実行する際は、再生構図固定区間と再生構図変化区間を合わせて設定する。再生構図固定区間とは再生時の像振れ補正での切り出し範囲が固定されている区間、すなわち再生中の像振れ補正用の拡大率が一定の区間である。また再生構図変化区間とは再生時の像振れ補正での切り出し範囲が変化している区間、すなわち再生中の像振れ補正用の拡大率が変更している区間である。
本実施例においては、最大の像振れ補正量に基づいて各撮影構図固定区間および各撮影構図変化区間の再生中の像振れ補正用の拡大率が決定される。そして、各撮影構図固定区間および各撮影構図変化区間に対応した再生構図固定区間を設定する。
しかしながら、各撮影構図固定区間および各撮影構図変化区間の最大像振れ補正量は異なるため、各再生構図固定区間での拡大率もそれぞれ異なる。ここで再生構図固定区間をまたぐ際に急に拡大率を変更してしまうと、出力画像の拡大率が急変してしまい、ユーザに違和感を与える恐れがある。
ここで、図5にあるように、撮影中のズーム操作やパンニング等による構図変化がある時とない時が交互にあらわれるものとする。この場合、各再生構図固定区間の間に再生構図変化区間を設ける。この再生構図変化区間において再生中の像振れ補正用の拡大率を徐々に変更することで、ユーザーに与える違和感を和らげている。
なお、図5においては各再生構図固定区間の間に再生構図変化区間を設けているが、区間の長さの決定方法については後述する。具体的には、図5においては、再生構図変化区間531は構図変化開始時刻t1を挟んでいるが、再生構図変化区間531の開始または終了時刻が構図変化開始時刻t1と一致しても良い。
また、撮影構図変化区間の最大像振れ補正量が同じ時は、再生時の像振れ補正での拡大率も同じであるため、必ずしも再生構図変化区間を設ける必要はない。
本実施例による再生時の像振れ補正においては、システム制御部105が動画ストリームの区間ごとに切り出す範囲大きさの変更を行う。ここでは動画撮影終了後に、RAM111に記録された最大の振れ量に基づいて像振れ補正情報の解析を行うものとして説明を行う。しかし動画撮影中に像振れ補正情報の解析を行っても良い。
ステップS601において、システム制御部105は撮影構図固定区間nと再生構図固定区間mをそれぞれ初期化し、n=1およびm=1とする。次にステップS602において、システム制御部105は撮影構図固定区間の始点の決定を行う。具体的には、システム制御部105は撮影構図固定区間nの始点の時刻(図5の時刻t0)を再生構図固定区間mの始点の時刻に設定する。
ステップS603において、システム制御部105は、現在再生している動画ストリームに構図の変化が発生するかどうかの判断を行う。本発明による動画再生時における像振れ補正においては、現在再生している動画ストリームに対して将来再生する動画ストリームに構図の変化が発生するかどうか、すなわち次の撮影構図変化区間があるかどうかを判断する。
たとえば図5においては、撮影構図固定区間501の次に撮影構図変化区間511があるかどうかを判断する。そして次の撮影構図変化区間があるか無いかに基づいて動画再生時における像振れ補正のための切り出し範囲を決定する。
ここで次の撮影構図変化区間(撮影構図変化区間n)があると判断されたときはステップS604に進み、次の撮影構図変化区間がないと判断されたときにはステップS620に進む。なお、ステップS620においては、撮影構図変化区間nがないため、システム制御部105は撮影構図固定区間nの終点の時刻を再生構図固定区間mの終点の時刻に設定する。そしてステップS622に進む。
ステップS604において、システム制御部105は次の撮影構図固定区間と次の撮影構図変化区間の関係が所定の条件を満たすかどうかを判定する。所定の条件とは例えば以下の条件である。
・撮影構図変化区間における撮影構図の変化が拡大方向であるか縮小方向であるか。つまり、撮影構図変化区間におけるズームがワイド側からテレ側に移行しているか、テレ側からワイド側に移行しているか。
・撮影構図固定区間における最大振れ量と次の撮影構図固定区間における最大振れ量はどちらが大きいか。
ここで、ステップS604において、「所定の条件が成立する」とは以下のことを示す。
(A)撮影構図変化区間(撮影構図変化区間511)における撮影構図の変化が拡大方向ある、つまり撮影構図変化区間におけるズームがワイド側からテレ側に移行している。かつ、次の撮影構図変化区間(撮影構図変化区間511)における最大振れ量の方が撮影構図固定区間(撮影構図固定区間501)における最大振れ量よりも大きい。
(B)撮影構図変化区間(撮影構図変化区間511)における撮影構図の変化が縮小方向ある、つまり撮影構図変化区間におけるズームがテレ側からワイド側に移行している。かつ、次の撮影構図変化区間(撮影構図変化区間511)における最大振れ量の方が撮影構図固定区間(撮影構図固定区間501)における最大振れ量よりも小さい。
ステップS604の判定と、ステップS505〜S508の処理について図7、8を用いて詳細に説明する。
図7,8はともに撮影中の構図変化のタイミング、出力画像の構図変化のタイミング、動画再生時の像振れ補正時の出力画角が撮影時のワイド端での画角に対してどのような倍率かを示している。なお、(511)などのカッコ付きの数字は、図7〜10の例において対応する符番である。
図7,8においては、撮像変化として撮影構図固定区間n(図5における撮影構図固定区間501)から撮影構図変化区間n(511)に移り、そして撮影構図固定区間n+1(502)に移行するとする。
図7(A)は撮影構図変化区間511にてズームがワイド側からテレ側に移動している。また、「撮影構図固定区間501の画像再生中の像振れ振れ量」<「撮影構図変化区間511の最大振れ量」が成立している。つまり前述の条件(A)を満たしている。一方で図7(B)は、撮影構図変化区間511にてズームをテレ側からワイド側に移動している。また、「撮影構図変化区間511の最大振れ量」<「撮影構図固定区間501の最大振れ量」が成立している。つまり前述の条件(B)を満たしている。
図8(A)は撮影構図変化区間511にてズームがワイド側からテレ側に移動している。また、「撮影構図変化区間511の最大振れ量」<「撮影構図固定区間501の最大振れ量」が成立している。
つまり、前述の条件(A)および(B)を満たしていていない。一方で図8(B)は、撮影構図変化区間511にてズームをテレ側からワイド側に移動している。また、「撮影構図固定区間501の画像再生中の像振れ振れ量」<「撮影構図変化区間511の最大振れ量」が成立している。つまり前述の条件(A)および(B)を満たしていていない。
ステップS604においては、先述の(A)または(B)の条件が成立した場合、S605に処理を進める。
ステップS605、S606の処理を、前述の条件(B)を満たす図7を用いて説明する。まず、システム制御部105は撮影構図変化区間n(511)の単位時間あたりの構図の変化率を算出する。次に、システム制御部105は撮影構図固定区間n(501)と撮影構図変化区間n(511)の最大振れ量を取得する。そしてシステム制御部105は撮影構図固定区間n(501)に対応する再生構図固定区間m(521)および撮影構図変化区間n(511)に対応する再生構図固定区間m+1(522)において像振れを補正するため必要な拡大率を求める。
そして、再生構図固定区間m(521)から再生構図固定区間m+1(522)まで拡大率を変化させた時にかかる時間を求める。この時間に基づき再生構図固定区間m(521)の終点および再生構図変化区間m(531)の始点を設定する。この際に、システム制御部105はこの算出された時間と再生時に像振れを補正するため必要な拡大率の変更率をRAM111に保存する。
こうすることによって、再生構図変化区間での出力画像の拡大率の変更率と撮影構図変化区間におけるズーム倍率の変更による出力画像の拡大率の変更率が同じになるように制御されている。たとえば図7における再生構図変化区間531と撮影構図変化区間511における出力画像の拡大率の変更率が同じになる。
ステップS605においては、再生構図固定区間mの終点、および再生構図変化区間mの始点を算出する。ステップS606において、システム制御部105は再生構図変化区間531の終点を撮影構図変化区間n(511)の始点の時刻である構図変化開始時刻t1に設定する。
一方で、ステップS604においては、先述の(A)または(B)の条件が成立しなかった場合、ステップS607に処理を進める。
ステップS607およびS608での処理を図8を用いて説明する。ここで、ステップS604において、「所定の条件が成立しない」とは以下のことを示す。
(C)撮影構図変化区間(撮影構図変化区間511)における撮影構図の変化が拡大方向ある、つまり撮影構図変化区間におけるズームがワイド側からテレ側に移行している。かつ、撮影構図固定区間n(撮影構図固定区間501)における最大振れ量の方が次の撮影構図変化区間n(撮影構図変化区間511)における最大振れ量よりも大きい。
(D)撮影構図変化区間(撮影構図変化区間511)における撮影構図の変化が縮小方向ある、つまり撮影構図変化区間におけるズームがテレ側からワイド側に移行している。かつ、次の撮影構図変化区間(撮影構図変化区間511)における最大振れ量の方が撮影構図固定区間(撮影構図固定区間501)における最大振れ量よりも大きい。
ステップS607においては、再生構図変化区間mの終点、および再生構図固定区間m+1の始点を算出する。ステップS607において、システム制御部105は再生構図変化区間531の始点を撮影構図変化区間n(511)の始点の時刻である構図変化開始時刻t1に設定する。
次に、システム制御部105は撮影構図変化区間n(511)の単位時間あたりの構図の変化率を算出する。そして、システム制御部105は撮影構図固定区間n(501)と撮影構図変化区間n(511)の最大振れ量を取得する。そしてシステム制御部105は撮影構図固定区間n(501)に対応する再生構図固定区間m(521)および撮影構図変化区間n(511)に対応する再生構図固定区間m+1(522)のそれぞれにおいて像振れを補正するために必要な拡大率を求める。
そして、再生構図固定区間m(521)から再生構図固定区間m+1(522)まで拡大率を変化させた時にかかる時間を求める。この時間が再生構図変化区間m(531)の終点および再生構図固定区間m+1(522)の始点となる。この際に、システム制御部105はこの算出された時間と再生時に像振れを補正するため必要な拡大率の変更率をRAM111に保存する。
こうすることによって、このとき、再生構図変化区間での像振れ補正用の拡大率の変更率と撮影構図変化区間でのズーム倍率の変更率が相殺され、再生構図変化区間では出力画像の拡大率の変更率がゼロになるように制御されている。たとえば図8における再生構図変化区間531では、撮影構図変化区間511においてズーム倍率が変更しているにもかかわらず出力画像の拡大率の変更率はゼロになる。
ステップS609において、システム制御部105は再生構図固定区間m(521)の出力画像範囲の決定を行う。動画再生中に像振れ補正を行う場合、所定の範囲で画像を出力する(切り出す)必要がある。
この所定の範囲の画像を拡大(電子ズーム処理)して出力画像として表示部に表示したり、記憶媒体に記録画像として記録する。このとき、先述の「所定の範囲」は撮影構図固定区間nにおける最大振れ量に応じて決定される。たとえば振れ量が大きい時は大きく画像を動かす必要があるので、「所定の範囲」は撮像範囲に比べて狭くなる。また、システム制御部105は算出した構図情報をRAM111に保存する。
ステップS610において、システム制御部105は次の再生構図固定区間と再生構図変化区間に処理を進める。
ステップS611において、システム制御部105は、次の撮影構図固定区間(撮影構図固定区間n+1)が存在するかどうかの判断を行う。ここで次の撮影構図固定区間(撮影構図固定区間n+1)が存在しない場合は、次の撮影構図変化区間(撮影構図変化区間n)で動画ストリームが終了している。ここで次の撮影構図固定区間(撮影構図固定区間n+1)が存在すると判断されたときはステップS612に進み、次の撮影構図固定区間がないと判断されたときにはステップS621に進む。
ステップS621において、次の撮影構図固定区間(撮影構図固定区間n+1)がないため、システム制御部105は撮影構図変化区間nの終点の時刻を再生構図固定区間mの終点の時刻に設定する。
そしてステップS622において、システム制御部105は再生構図固定区間mの出力画像範囲の決定を行う。動画再生中に像振れ補正を行う場合、所定の範囲で画像を出力する(切り出す)必要がある。この所定の範囲の画像を拡大(電子ズーム処理)して出力画像として表示部に表示したり、記憶媒体に記録画像として記録する。
ステップS612においては、システム制御部105はS604と同様に次の撮影構図固定区間と次の撮影構図変化区間の関係が所定の条件を満たすかどうかを判定する。
・撮影構図変化区間における撮影構図の変化が拡大方向であるか縮小方向であるか。つまり、撮影構図変化区間におけるズームがワイド側からテレ側に移行しているか、テレ側からワイド側に移行しているか。
・撮影構図変化区間における最大振れ量と次の撮影構図固定区間における最大振れ量はどちらが大きいか。
ここで、ステップS612において、「所定の条件が成立する」とは以下のことを示す。
(E)撮影構図変化区間(撮影構図変化区間511)における撮影構図の変化が拡大方向ある、つまり撮影構図変化区間におけるズームがワイド側からテレ側に移行している。かつ、撮影構図変化区間(撮影構図変化区間511)の方が次の撮影構図固定区間(撮影構図固定区間502)における最大振れ量における最大振れ量よりも大きい。
(F)撮影構図変化区間(撮影構図変化区間511)における撮影構図の変化が縮小方向ある、つまり撮影構図変化区間におけるズームがテレ側からワイド側に移行している。かつ、次の撮影構図固定区間(撮影構図固定区間502)における最大振れ量の方が撮影構図変化区間(撮影構図変化区間511)における最大振れ量よりも大きい。
ステップS612の判定と、ステップS613〜S616の処理について図9、10を用いて詳細に説明する。図9,10はともに撮影中の構図変化のタイミング、出力画像の構図変化のタイミング、動画再生時の像振れ補正時の出力画角が撮影時のワイド端での画角に対してどのような倍率かを示している。
図9,10においては、撮像変化として撮影構図固定区間n(図5における撮影構図固定区間501)から撮影構図変化区間n(511)に移り、そして撮影構図固定区間n+1(502)に移行するとする。
図9(A)は撮影構図変化区間511にてズームがワイド側からテレ側に移動している。また、「撮影構図固定区間502の画像再生中の像振れ振れ量」<「撮影構図変化区間511の最大振れ量」が成立している。つまり条件(E)を満たす。一方で図9(B)は、撮影構図変化区間511にてズームをテレ側からワイド側に移動している。また、「撮影構図変化区間511の最大振れ量」<「撮影構図固定区間502の最大振れ量」が成立している。つまり条件(F)を満たす。
図10(A)は撮影構図変化区間511にてズームをワイド側からテレ側に移動している。また、「撮影構図変化区間511の最大振れ量」<「撮影構図固定区間502の最大振れ量」が成立している。つまり条件(E)および(F)を満たさない。一方で図10(B)は、撮影構図変化区間511にてズームをテレ側からワイド側に移動している。
また、「撮影構図固定区間502の像振れ振れ量」<「撮影構図変化区間511の最大振れ量」が成立している。つまり条件(E)および(F)を満たさない。
ステップS612においては、先述の(E)または(F)の条件が成立した場合、S613に処理を進める。ステップS613において、システム制御部105は再生構図固定区間m(522)の終点、すなわち再生構図変化区間m(532)の始点を算出する。
ステップS613、S614の処理を図9を用いて説明する。まず、システム制御部105は撮影構図変化区間n(511)の単位時間あたりの構図の変化率を算出する。次に、システム制御部105は撮影構図変化区間n(511)と撮影構図固定区間n+1(502)の最大振れ量を取得する。そしてシステム制御部105は撮影構図変化区間n(511)に対応する再生構図固定区間m+1(522)および撮影構図固定区間n+2(502)に対応する再生構図固定区間m+2(523)において像振れを補正するため必要な拡大率を求める。
そして、再生構図固定区間m(522)から再生構図固定区間m+1(523)まで拡大率を変化させた時にかかる時間を求める。この時間が再生構図固定区間m(522)の終点および再生構図変化区間m(532)の始点となる。この際に、システム制御部105はこの算出された時間と再生時に像振れを補正するため必要な拡大率の変更率をRAM111に保存する。
こうすることによって、このとき、再生構図変化区間での像振れ補正用の拡大率の変更率と撮影構図変化区間でのズーム倍率の変更率が相殺され、再生構図変化区間では出力画像の拡大率の変更率がゼロになるように制御されている。たとえば図9における再生構図変化区間532では、撮影構図変化区間511においてズーム倍率が変更しているにもかかわらず出力画像の拡大率の変更率はゼロになる。
ステップS614において、システム制御部105は再生構図変化区間n+1(532)の終点を撮影構図変化区間n(511)の終点の時刻である構図変化開始時刻t2に設定する。
次に、ステップS615およびS616での処理を図10を用いて説明する。ここで、ステップS612において、「所定の条件が成立しない」とは以下のことを示す。
(G)撮影構図変化区間(撮影構図変化区間511)における撮影構図の変化が拡大方向ある、つまり撮影構図変化区間におけるズームがワイド側からテレ側に移行している。かつ、撮影構図変化区間n(撮影構図変化区間511)における最大振れ量の方が次の撮影構図固定区間n(撮影構図固定区間502)における最大振れ量よりも大きい。
(H)撮影構図変化区間(撮影構図変化区間511)における撮影構図の変化が縮小方向ある、つまり撮影構図変化区間におけるズームがテレ側からワイド側に移行している。かつ、撮影構図固定区間(撮影構図固定区間502)における最大振れ量の方が次の撮影構図変化区間(撮影構図変化区間511)における最大振れ量よりも大きい。
ステップS615においては、再生構図変化区間mの始点、および再生構図固定区間m+1の終点を算出する。ステップS615において、システム制御部105は再生構図変化区間532の始点を撮影構図変化区間n(511)の終点の時刻である構図変化開始時刻t2に設定する。
次に、システム制御部105は撮影構図変化区間n(511)の単位時間あたりの構図の変化率を算出する。そして、システム制御部105は撮影構図変化区間n(511)と撮影構図固定区間n+1(502)の最大振れ量を取得する。そしてシステム制御部105は撮影構図変化区間n(511)に対応する再生構図固定区間m+1(522)および撮影構図固定区間n+1(502)に対応する再生構図固定区間m+2(523)のそれぞれにおいて像振れを補正するため必要な拡大率を求める。
そして、再生構図固定区間m+1(522)から再生構図固定区間m+2(523)まで拡大率を変化させた時にかかる時間を求める。この時間が再生構図変化区間m(532)の終点および再生構図固定区間m+2(523)の始点となる。この際に、システム制御部105はこの算出された時間と再生時に像振れを補正するため必要な拡大率の変更率をRAM111に保存する。
こうすることによって、再生構図変化区間での出力画像の拡大率の変更率と撮影構図変化区間におけるズーム倍率の変更による出力画像の拡大率の変更率が同じになるように制御されている。たとえば図10における再生構図変化区間532と撮影構図変化区間511における出力画像の拡大率の変更率が同じになる。
ステップS617において、システム制御部105は再生構図固定区間m(521)の出力画像範囲の決定を行う。動画再生中に像振れ補正を行う場合、所定の範囲で画像を出力する(切り出す)必要がある。この所定の範囲の画像を拡大(電子ズーム処理)して出力画像として表示部に表示したり、記憶媒体に記録画像として記録する。
このとき、先述の「所定の範囲」は撮影構図固定区間nにおける最大振れ量に応じて決定される。たとえば振れ量が大きい時は大きく画像を動かす必要があるので、「所定の範囲」は撮像範囲に比べて狭くなる。また、システム制御部105は算出した構図情報をRAM111に保存する。
ステップS618において、システム制御部105は次の再生構図固定区間と再生構図変化区間に処理を進める。そしてステップS619において、システム制御部105は次の撮影構図固定区間と撮影構図変化区間に処理を進める。そしてステップS603の処理に戻る。
以上のように再生構図固定区間nの構図を決定することによって、振れの大小に応じて適切な構図で動画の再生をすることができる。さらに、再生構図固定区間nの前後の区間の振れ量との大小関係を見ることにより、再生中の像振れ補正の構図変化を撮影中の構図変化(ズーム動作)に連続させて行わせることができる。
これによりユーザに違和感を生じさせないとともに、再生構図固定区間ごとに最適な構図で再生防振(動画再生時の像振れ補正)を行うことが可能となる。
図11は再生時の像振れ補正のフローチャートである。図6の像振れ補正の解析の結果を用いて図11に示した再生時の像振れ補正をおこなう。
ステップS2101において、システム制御部105は操作部106を介したユーザの指示により動画再生を開始する。システム制御部105は記録媒体113に格納されている動画を、記録媒体制御部112を介してフレームメモリ109に展開する。
像振れ補正部108内の画像切り出し制御部202は、画像切り出し部201を介してフレームメモリに展開された動画ストリームを所定の構図で出力する。拡大率制御部204は、指示した拡大率で拡大処理部203を介して動画ストリームの解像度変換を行う。そして、拡大率制御部204は拡大した動画ストリームをフレームメモリ109に展開する。映像再生手段としての映像情報出力部107はフレームメモリに展開された画像データを表示部115に表示する。
ステップS2102においては、システム制御部105は再生時の像振れ補正を行う。振れ情報取得部206は再生する動画に関連付けられた振れ情報を記録媒体113より取得する。画像切り出し部201は取得した振れ情報に応じてフレームメモリ109に展開された動画ストリームの所定の位置から画像データを読み出す。
拡大処理部203は読み出された動画ストリームに対して拡大率制御部204の指示した拡大率で解像度変換処理をおこない、フレームメモリ109に展開する。
このとき、再生構図変化区間での出力画像の拡大率の変更率と撮影中のズーム倍率の変更(撮影構図変化区間)による出力画像の拡大率の変更率が同じになるように制御されている。たとえば図7における再生構図変化区間531と撮影構図変化区間511における出力画像の拡大率の変更率が同じになる。また、図10における再生構図変化区間532と撮影構図変化区間511における出力画像の拡大率の変更率が同じになる。
または、再生構図変化区間での像振れ補正用の拡大率の変更率と撮影構図変化区間でのズーム倍率の変更率が相殺され、再生構図変化区間では出力画像の拡大率の変更率がゼロになるように制御される。たとえば図8における再生構図変化区間531では、撮影構図変化区間511においてズーム倍率が変更しているにもかかわらず出力画像の拡大率の変更率はゼロになる。
または、図9における再生構図変化区間532では、撮影構図変化区間511においてズーム倍率が変更しているにもかかわらず出力画像の拡大率の変更率はゼロになる。
ステップS2103においては、システム制御部105は動画が終了したかどうかの判断を行う。終了してなければ次のフレームの読み込みを行う。
ステップS2104においては、システム制御部105は再生しているフレームが構図変化情報取得部208により取得した再生構図変化区間のものかの判定を行う。再生構図変化区間であるときはステップS2105に処理を進め、再生構図変化区間ではなかったときにはステップS2102に戻って像振れ補正処理を行う。
ステップS2105においては、システム制御部105は図6のフローチャートで取得した再生構図変化区間の時刻と再生時の構図変化(再生中の像振れ補正用の拡大率の変化)から、現在再生しているフレームの再生中の像振れ補正用の拡大率を求める。
以上のように動画ストリームを解析し、再生時の像振れ補正中の構図変化を撮影中の構図変化に連続させて行わせる再生構図変化区間を定める。そして再生構図変化区間で適切な構図変化率でズーム値を変化させて再生中の構図を変更する。これによりユーザに違和感をなるべく持たせないようにしつつ、再生構図固定区間ごとに最適な構図で再生時の像振れ補正を行うことが可能となる。
本実施例においては、動画撮影中の振れ情報を用いるのみに限られない。たとえば、レンズシフトなどによる光学的な像振れ補正処理を行い、光学的な像振れ補正処理で補正し切れなかった像振れ(像振れ残り)を本発明によって画像再生時に補正するような構成であってもかまわない。
(実施例2)
上述した実施例1においては、動画撮影機能を持った機器で撮影中に像振れ補正に使用する情報を取得して、それを用いて再生中の像振れ補正を行う構成について説明した。本実施例においては、動画撮影機能を持たない動画再生機能のみを持った機器での動作について図12を用いて説明する。一部を除いてほぼ同じ構成であるため、差分のみの説明を行う。
図12の動画再生機1000の構成について説明する。動画再生機1000はシステム制御部1005、操作部1006、映像情報出力部1007、振れ補正部1008を備える。
また、動画再生機1000はフレームメモリ1009、ROM1010、RAM1011、記録媒体制御部1012、記録媒体1013、バス1014、表示部1015を備える。
本実施例における動画再生機1000は、動画の撮影機能が無い他は実施例1にて説明したビデオカメラ100と同様の動作をする。また振れ補正部1008も実施例1にて説明したビデオカメラ100の像振れ補正部108と同様の動作をする。振れ補正部1008内の振れ検出部205は、実施例1にて説明したビデオカメラ100においては加速度センサなどビデオカメラの振れによる変位を測定するセンサを備えていたが、本実施例では、動画ストリームの動きベクトル検出部(不図示)を備える。
本実施例における動画再生時の像振れ補正処理の全体の流れも実施例1にて説明したビデオカメラ100と同様である。実施例1にて説明したビデオカメラ100において像振れ補正情報の取得は撮影中に行われた。
しかし、本実施例においては動画ストリームを一度再生し、再生中の動画ストリームから動きベクトルを検出し、検出した動きベクトルから最大振れ量、各フレームの振れ情報の取得を行う。取得した情報を用いて像振れ補正情報の解析、再生時の像振れ補正処理を行う。
以上のように再生時に振れ検出部205の動きベクトルより各区間の最大振れ量および、各フレームの振れ情報を取得することにより同様の処理を行うことができる。
以上の実施例においては、動画撮影中に振れ情報の検出をおこなった。しかし、レンズシフトなどによる光学的な像振れ補正処理を行い、光学的な像振れ補正で補正しきれなかった像振れに対して振れ情報の検出を行い、本発明の再生時の像振れ補正を行う構成であっても良い。
(実施例3)
上述した実施例は動画再生時に像振れ補正を行う構成について説明した。
本実施例においては動画撮影時の記録画像に対して本発明による像振れ補正情報の解析と切り出し範囲の決定、像振れ補正処理を適用した場合の動作について説明する。
本実施例で用いる機器は実施例1で説明した図1のハードウェア構成と同じであるがカメラ撮影時の動作が異なる。
システム制御部105は、カメラ信号処理部104が出力した映像信号をフレームメモリ109に複数のフレームからなる動画ストリームとして映像信号を格納と、格納した映像信号の解析を行う撮影動作を含む。
また、システム制御部105は、格納された映像信号を振れ補正部108に入力し、像振れ補正された動画ストリームが記録媒体制御部112を通して記録媒体113に記録する記録動作を含む。
つまり、システム制御部105は、二つに動作に分かれる。撮影動作は所定周期で行われるが記録動作は像振れ補正処理に必要な情報がそろってから行われる。
次に図12と、図13のフローチャートと、図14のフローチャートを用いて本実施例における像振れ補正について説明する。本実施例における撮影動作と記録動作を行うにあたって、動画ストリームを撮影開始、撮影終了、及びに構図変化を起点とした複数の区間に分割する。まずは図12を用いて具体的にどのように区間を作成していくかを簡単に説明する。次に図13を用いて撮影動作のフロー、最後に図14を用いて記録動作のフローの詳細に説明をする。
図12の横方向は図5と同様に時間軸を表しており、右に進むほど時刻が進む。撮影開始時刻t1200〜t1204の撮影開始時刻、構図変化開始時刻、構図変化終了時刻は図5のそれと同等である。記録構図固定区間、記録構図変化区間は図5の再生構図固定区間、再生構図変化区間に相当する。記録構図固定区間、記録構図変化区間の開始、終了時刻は撮影構図固定区間と撮影構図変化区間の最大振れ量の大小関係や撮影中のズームの方向に応じて決定する。
決定するためのアルゴリズムは実施例1の再生構図固定区間、再生構図変化区間のそれと同様である。映像記録区間はフレームメモリ109に格納された映像信号に対し、像振れ補正処理を行い、像振れ補正を行った映像信号を記録媒体113に記録する区間である。映像記録区間は記録構図固定区間から記録構図変化区間に切り替わるごとに作成される。
次に図13を用いて像振れ補正情報取得、像振れ補正情報の解析と切り出し範囲の決定を行う、撮影動作のフローチャートの説明をする。
ステップS1301においてシステム制御部105はユーザが操作部106を操作することによってユーザから撮影開始指示があると、動画の撮影を開始する。動画撮影が開始すると撮像センサ102が出力した映像信号はカメラ信号処理部104を介してフレームメモリ109に格納される。映像信号はフレームメモリ109にフレーム画として連続した領域に順次格納される。
システム制御部105は、撮影を開始すると、撮影構図固定区間1、撮影構図変化区間1(n=1)及び記録構図固定区間1、記録構図変化区間1(m=1)を作成する。そしてシステム制御部105は撮影構図固定区間1を処理する区間として設定する。
ステップS1302において、振れ補正部108内の振れ検出部205は、撮影中すべてのフレームに対して振れ情報の取得を行う。そして、システム制御部105は、振れの方向と振れ量を振れの発生した時刻とともに、RAM111に格納する。
ステップS1303において、システム制御部105は、ユーザが操作部106を操作することによって撮影終了要求があったかどうかの判断を行う。終了要求があったときにはステップS1314に進み、終了処理を行う。ステップS1314においてシステム制御部105は、撮影終了要求があった時刻までの区間を撮影構図固定区間nとし、同区間における最大の振れ量をRAM111に格納し、撮影動作を終了する。
ステップS1304において、システム制御部105は、ズーム操作が開始されたりパンニングされたりして構図変化が発生していないかを、振れ補正部108内の構図変化検出部207から取得する。システム制御部105は、構図変化がないときにはステップS1302にもどり、振れ情報の取得を行う。構図変化があると判定されたときには、ステップS1305に進む。
ステップS1305において、システム制御部105は撮影構図固定区間nの最大の振れ量をRAM111に格納する。
ステップS1306において、システム制御部105は現在処理している撮影構図固定区間nが2以上であるかの判断を行う。システム制御部105が2以上と判断した時にはステップS1307に進み、記録構図区間の決定を行う。ここで2以上であるかを判断する理由は。記録構図区間の決定には2つの撮影構図固定区間と、1つの撮影構図変化区間が必要であるからである。システム制御部105が2未満と判断した時にはS1309に進む。
ステップS1307において、システム制御部105は記録構図固定区間m、記録構図変化区間mの開始、終了時刻を算出する。記録構図固定区間mは撮影構図固定区間、撮影構図変化区間にまたがって作成される。記録構図変化区間は撮影構図変化区間の前もしくは後に作成される。算出の具体的なアルゴリズムは実施例1における、再生構図固定区間、再生構図変化区間と同じであるため詳細は記載しない。
ステップS1308において、システム制御部105は、処理をする区間を変更する。
ステップS1309においてはステップS1302と同様に、システム制御部105は振れ検出部205により、撮影構図変化区間の振れ情報を取得する。
ステップS1310において、システム制御部105は、ユーザが操作部106を操作することによって撮影終了要求があったかどうかの判断を行う。終了要求があったときにはステップS1315に進み、終了処理を行う。ステップS1315においてシステム制御部105は、撮影終了要求があった時刻までの区間を撮影構図変化区間nとし、同区間における最大の振れ量をRAM111に格納し、撮影動作を終了する。
ステップS1311おいて、システム制御部105は、ズーム操作が終了したりユーザによるパンニングが終了するなど構図変化が終了したか否かの判定結果を構図変化検出部207より取得する。構図変化が継続しているときにはステップS1310に戻り、振れ情報の取得を行い、構図変化が終了したと判定した場合は、ステップS1312へ進む。
ステップS1312において、システム制御部105は撮影構図変化区間における最大の振れ量をRAM111に格納する。
ステップS1313において、S1305と同様に、システム制御部105は、処理をする区間を変更する。
ステップS1316において、ステップS1307と同様に記録構図固定区間m,記録構図変化区間mの決定を行い、映像信号の解析を終了する。
次に図14を用いて像振れ補正処理と記録媒体への記録を行う、記録動作のフローチャートの説明をする。図13で説明した撮影動作と図14で説明する記録動作は同時に処理を開始する。図13における処理で記録構図変化区間が作成されるまで待機状態に有り、記録構図変化区間が作成されると、記録動作を開始する。
ステップS1401において、システム制御部105はユーザが操作部106を操作することによってユーザから撮影開始指示があると、動画の撮影を開始する。動画撮影が開始するとシステム制御部105は処理する記録構図変化区間1(n=1)、映像記録区間1(m=1)を最初の区間を設定し、記録構図変化区間が作成されるのを待つ。記録構図変化区間は図13のフローチャートのステップS1307とステップS1316にて決定する。
ステップS1402において、システム制御部105は図13の処理で、記録構図変化区間nが作成されたかを判断する。システム制御部105が記録構図変化区間nが作成されたと判断した時はステップS1403において処理する区間nを次の区間n+1に設定する。判断されなかった時にはステップS1404に進む。
ステップS1404において、システム制御部105はユーザが操作部106を操作することによって撮影終了要求があったかどうかの判断を行う。システム制御部105は撮影終了要求があると判断した時にはステップS1405において、映像記録区間nを映像記録区間の最終区間とする情報をRAM111に格納する。システム制御部105が撮影終了要求がないと判断した時にはステップS1402に戻り、記録構図変化区間nが作成されたかの判断を行う。
ステップS1406において、システム制御部105は映像記録区間mを作成する。映像記録区間mは記録構図固定区間n−1と記録構図変化区間n−1における映像信号を記録する区間である。映像記録区間mは、RAM111に格納される。
システム制御部105は、映像記録区間mで記録される映像データの振れ情報、及びに記録構図固定区間n−1における最大振れ量、記録構図変化区間n−1における時刻と撮影時の構図変化から、映像記録区間mの各映像信号の像振れ補正用の拡大率を求める。
ステップS1407において、システム制御部105はステップ1406もしくはステップS1416にて求めた振れ情報、像振れ補正用の拡大率を用いて映像記録区間mの像振れ補正処理と映像信号の記録を開始する。
ステップS1408において、ステップS1402と同様にシステム制御部105は図13の処理で、記録構図変化区間nが作成されたかを判断する。システム制御部105は構図変化区間が作成されたと判断されたら、ステップS1409に進み、映像記録区間を新たに作成する。ステップS1409において、システム制御部105現在記録が予定されている映像記録区間の記録が終わった後に続けて映像の記録ができるように新たな映像記録区間nを作成する。判断されなかった時はステップS1411に進む。
ステップS1410において、ステップS1403と同様にシステム制御部105は処理する区間nを次の区間n+1に設定する。
ステップS1411において、ステップS1404と同様にシステム制御部105は、ユーザが操作部106を操作することによって撮影終了要求があったかどうかの判断を行う。撮影終了要求があると判断した時にシステム制御部105はステップS1412に進む。判断されなかった時はステップS1413に進む。
ステップS1412において、システム制御部105は現在作成されている最後の映像記録区間n−1を映像記録区間の最終区間とする情報をRAM111に格納する。
ステップS1413において、システム制御部105は現在記録している映像記録区間mの映像信号をすべて記録しているかの判断を行う。記録していると判断した時はシステム制御部105はステップS1414に進む。判断されなかった時はステップS1408に戻る。
ステップS1414において、システム制御部105はRAM111から最終区間情報を読み出し、ステップS1413において終了した映像記録区間mが映像記録区間の最終区間であるかの判断を行う。最終区間と判断した時は記録動作は終了となる。最終区間ではないと判断された時はステップS1415に進む。
ステップS1415において、システム制御部105はは処理する区間mを次の区間m+1に設定する。
ステップS1416において、システム制御部は映像記録区間mがすでに作成されているかの判断を行う。作成されている時は、ステップS1407に戻り、映像記録区間mの記録を開始する。作成されていない時は、ステップS1402に戻り、記録構図変化区間の作成や撮影終了要求などを待ち、新たな映像記録区間が作成されるのを待つ。
以上のように撮影した映像信号を映像信号の解析結果とともにメモリに格納し、記録構図変化区間が決まってから像振れ補正処理を行うことによって動画撮影中にも本発明を適用することが可能である。
本発明はデジタルカメラ、ビデオカメラ、レコーダーなどの動画再生機、携帯電話やスマートフォン、パーソナルコンピュータなどの動画像の再生可能な機器にも適用できる。また、前述した実施例の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、コンピュータあるいは装置に供給する。
そのコンピュータあるいは装置の制御部が記憶媒体に記録されたプログラムコードを読み出し実行することによっても達成され得る。なお、そのコンピュータあるいは装置の制御部とは、例えばシステム制御部やCPU、MPUなどが該当する。
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、DVD−ROM、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
(実施例4)
図1は本発明を適用した、動画像を記録および再生できる動画像再生装置としてのビデオカメラ100の構成例を示したものである。
図1〜図4は、実施例1と同様なので説明を省略する。
<像振れ補正情報の取得>
次に、図4のフローチャートと図16を用いて、システム制御部105が実行する像振れ補正情報の取得について詳細な説明を行う。ここでいう像振れ補正情報とは、図16で説明する構図固定区間の開始終了時刻と構図変化区間の開始終了時刻、およびそれらの区間における最大振れ量、そして各時刻のフレームにおける振れの水平および垂直方向の振れ量を指すものとする。
本発明による再生時の像振れ補正を実行する際は、撮影開始と構図変化を起点とした複数の区間に動画ストリームを分割する。まず、図16を用いて具体的にどのように区間を作成していくかを簡単に説明する。
図16の横方向は時間軸を表しており、右に進むほど時刻が進む。図16において、動画の撮影を開始した撮影開始時刻t0から撮影中のズーム操作やパンニング等による構図変化の開始した構図変化開始時刻t1までの区間を構図固定区間1501とする。
構図変化開始時刻t1からズーム操作の終了やパンニングなどによる構図変化が終了した構図変化終了時刻t2までの区間を構図変化区間1511とする。
以降、構図変化終了時刻t2から構図変化開始時刻t3までの区間を構図固定区間1502とする。
構図変化開始時刻t3から構図変化終了時刻t4までの区間を構図変化区間1512とするように、撮影が終了するまでの間に構図固定区間、構図変化区間を交互に追加する。
次に図4のフローチャートを用いて像振れ補正情報の取得方法について説明する。
ステップS401において、システム制御部105は、ユーザが操作部106を操作することによってユーザから撮影開始の指示があると、動画の撮影を開始する。システム制御部105は、撮影を開始すると、構図固定区間1(n=1)を作成する。そしてシステム制御部105は、構図固定区間1を処理する区間として設定する。
ステップS402において、振れ補正部108内の振れ検出部205は、撮影中のすべてのフレームに対して振れ情報の取得を行う。そしてシステム制御部105は、振れの方向と振れ量(動きベクトルの大きさ)を振れの発生した時刻とともに、記録媒体制御部112を通して記録媒体113に記録する。なお、本実施例においては、同じ構図固定区間で最大の振れ量はRAM111に記録するものとする。
ステップS403において、システム制御部105は、ユーザが操作部106を操作することによって撮影終了要求があったかどうかの判断を行う。終了要求があったときにはステップS411に進み、終了処理を行う。ステップS411においては、システム制御部105は、撮影終了要求があった時刻までの区間を構図固定区間nとし、構図固定区間nにおける最大の振れ量をRAM111に記録する。
ステップS404において、システム制御部105は、ズーム操作が開始されたりパンニングされたりして構図変化が発生していないかを、振れ補正部108内の構図変化検出部207から取得する。システム制御部105は、構図変化がないときにはステップS402にもどり、振れ情報の取得を行う。
構図変化があると判定されたときには、ステップS405に進み、システム制御部105は構図固定区間nの最大振れ量をRAM111に記録する。すなわち、構図固定区間が終了して構図変化期間が開始した時点で、システム制御部105は構図固定区間nおける最大の振れ量をRAM111に記録する。ステップS406においては、ステップS402と同様に、振れ検出部205は構図変化期間の振れ情報を取得する。
ステップS407において、システム制御部105は、ユーザが操作部106を操作することによって撮影終了要求があったかどうかの判断を行う。終了要求があったときにはステップS412に進み、終了処理を行う。ステップS412においてシステム制御部105は、撮影終了要求があった時刻までの区間を構図変化区間nとし、構図変化区間nにおける最大の振れ量をRAM111に記録し、その後撮影を終了する。
ステップS408において、システム制御部105は、ズーム操作が終了したりユーザによるパンニングが終了するなど構図変化が終了したか否かの判定結果を構図変化検出部207より取得する。構図変化が継続しているときにはS406にもどり振れ情報の取得を行い、構図変化が終了したと判定した場合は、ステップ409へ進む。ステップS409において、システム制御部105は構図変化区間における最大の振れ量をRAM111に記録する。
そして、ステップS410においてシステム制御部105は、処理する区間を次の区間へ変更するために、構図固定区間nに1を加えて構図固定区間n+1とする。そしてS402にもどりシステム制御部105は構図固定区間n+1の振れ情報の取得を行う。
<像振れ補正情報の解析と切り出し範囲の決定>
次に、システム制御部105が行う、像振れ補正情報の解析と動画再生時における像振れ補正のための切り出し範囲の決定について図17のフローチャートと図19のタイミングチャートを用いて説明を行う。
本実施例による再生時の像振れ補正においては、システム制御部105が動画ストリームの区間ごとに切り出す範囲大きさの変更を行う。ここでは動画撮影終了後に、RAM111に記録された最大の振れ量に基づいて像振れ補正情報の解析を行うものとして説明を行う。しかし動画撮影中に像振れ補正情報の解析を行っても良い。
ステップS1601において、システム制御部105は処理する像振れ補正区間の初期化を行う。これによって動画再生時における像振れ補正のための切り出し範囲の大きさを決定する像振れ補正区間を設定する。次にステップS1602において、システム制御部105は像振れ補正区間の始点の決定を行う。具体的には、システム制御部105は構図固定区間nの始点を像振れ補正区間の始点に設定する。たとえば図19において、システム制御部105は構図固定区間1801の始点を像振れ補正区間821の始点に設定する。
ステップS1603において、システム制御部105は、現在再生している動画ストリームに構図の変化が発生するかどうかの判断を行う。本発明による動画再生時における像振れ補正においては、現在再生している動画ストリームに対して将来再生する動画ストリームに構図の変化が発生するかどうか、すなわち次の構図変化区間があるかどうかを判断する。そしてこの構図変化区間があるか無いかに基づいて動画再生時における像振れ補正のための切り出し範囲を決定する。
ここで、次の構図変化区間(構図変化区間n)があると判断されたときはステップS1604に進み、次の構図変化区間がないと判断されたときにはステップS1612に進む。
ステップS1604において、システム制御部105は、次の構図固定区間(構図固定区間n+1)が存在するかどうかの判断を行う。ここで次の構図固定区間(構図固定区間n+1)が存在しない場合は、次の構図変化区間(構図変化区間n)で動画ストリームが終了している。ここで次の構図固定区間(構図固定区間n+1)が存在すると判断されたときはステップS1605に進み、次の構図固定区間がないと判断されたときにはステップS1613に進む。
たとえば、図19においては、システム制御部105は構図固定区間1811が存在すると判定するので、ステップSS1605に進むことになる。
ステップS1605において、システム制御部105は、次の構図固定区間と次の構図変化区間における最大振れ量の大きさの比較し、次の構図変化区間における最大振れ量よりも次の構図固定区間における最大振れ量の方が大きいか判定する。
すなわち、「構図変化区間nの最大振れ量」<「構図固定区間n+1の最大振れ量」が成立するかを判定する。
ステップS1605の比較において、構図固定区間n+1の最大振れ量の方が大きい場合(ステップS1605にてYes)は、ステップS1601に進む。
一方で、構図変化区間nの最大振れ量の方が大きい場合(ステップS1605にてNo)は、ステップS1607に進む。
ステップS1601において、システム制御部105は、像振れ補正区間nの終点を構図変化区間nの終点に設定する。たとえば図19において、構図固定区間1801の最大振れ量は構図変化区間1811の最大振れ量より大きいので、システム制御部105は、像振れ補正区間821の終点を構図変化区間1811の終点に設定する。すなわち、像振れ補正区間821は構図固定区間1801の始点から構図変化区間1811の終点までとなる。
一方で、ステップS1607においては、システム制御部105は、像振れ補正区間nの終点を構図固定区間nの終点に設定する。たとえば図19において、構図固定区間1803の最大振れ量より構図変化区間1812の最大振れ量が小さいので、像振れ補正区間822の終点を構図固定区間1802の終点に設定する。すなわち、像振れ補正区間822は構図固定区間1802の始点から構図固定区間1802の終点までとなる。そして像振れ補正区間823は構図変化区間813の始点からと設定される(ステップS1611にて後述)。
ステップS1608において、システム制御部105は、ステップS1606、ステップS1607で決定した像振れ補正区間n内の最大振れ量を求める。たとえば図19において、システム制御部105は、像振れ補正区間821での最大振れ量を構図固定区間1801の最大振れ量とする。
また、像振れ補正区間822での最大振れ量を構図固定区間1802の最大振れ量とし、像振れ補正区間823での最大振れ量を構図変化区間1812での最大振れ量する。
ステップS1609において、システム制御部105は、ステップS1608で求めた最大振れ量をもとに構図固定区間nの像振れ補正の範囲を決定する。動画再生時における像振れ補正を行うときには、動画ストリームから所定の切り出し範囲で画像データを切り出し、切り出した画像データを振れ補正部108の拡大処理部203により拡大処理を行い、映像情報出力部107より出力する。
そして、検出した振れ情報に基づいて切り出し位置を変更することで像振れ補正を行う。このため、ステップS1608で求めた最大振れ量に対して像振れ補正を行ったとしても、元の画像データから切り出す範囲が元の画像データの範囲からはみ出さないように、切り出し範囲の大きさと位置の決定を行う。
たとえば図19において、像振れ補正区間821での最大振れ量は構図固定区間1801の最大振れ量である。このため、構図固定区間1801の最大振れ量に対して像振れ補正を行ったとしても、元の画像データから切り出す範囲が元の画像データの範囲からはみ出さないように、切り出し範囲の大きさと位置の決定を行う。そして決定された切り出し範囲から切り出した画像データを、振れ補正部108の拡大処理部203により拡大率(図19のM1)に基づいて拡大処理を行い、映像情報出力部107より出力する。
ステップS1610において、システム制御部105は、現在の像振れ補正区間nの処理を終了し、次の像振れ補正区間の決定処理を行う。具体的には、システム制御部105は、処理する区間を次の区間へ変更するために、構図固定区間nに1を加えて構図固定区間n+1とする。
ステップS1611において、システム制御部105は、像振れ補正区間nの始点を設定する。像振れ補正区間nの始点は像振れ補正区間n−1の終点となる。たとえば図19において、像振れ補正区間822の終点が構図固定区間1802の終点と設定されるため、システム制御部105は、像振れ補正区間823の始点を構図変化区間813の始点と設定する。
像振れ補正区間nは構図固定区間nを含み、ステップS1605の判断により構図変化区間n−1、構図変化区間nを加えるかどうか判断する。たとえば図19において、像振れ補正区間821は構図固定区間1801と構図変化区間1811を含む。一方で像振れ補正区間822は構図固定区間1802のみからなり、構図変化区間は含まない。
ステップS1612の処理はステップS1607の処理と同じであり、ステップS1613の処理はステップS1606の処理と同じである。また、ステップS1614の処理はステップS1608の処理と同じであり、ステップS1615の処理はステップS1609の処理と同じである。このため、詳細な説明は省略する。
以上のように、複数の区間に分け、区間ごとに切り出し範囲を決定することにより、その区間ごとに振れの大小に応じて適切な切り出し範囲の画像データで動画の再生をすることができる。また、前後の区間の振れ量との大小関係を比較することにより、より適切な切り出し範囲の画像データで動画の再生をすることができる。図17のフローチャートの像振れ補正区間nを常に構図固定区間nと構図変化区間nにしても撮影時の範囲に近い構図で再生を行うことが可能である。
<動画再生時の像振れ処理>
次に、動画再生時の像振れ補正処理についての説明を図18のフローチャートと図19を用いて説明する。
図19は動画ストリームの一例を説明するタイミングチャートである。図19はビデオカメラ100で動画を撮影したときの振れ情報と構図変化情報の時間的な変化をグラフにしたものである。なお、図19においては構図変化の例として撮影中のズームによって構図変化が起こるものとする。
図19のタイミングチャートは、上から動画ストリームに記憶された動画撮影時の振れ量(各フレームの振れ量)、各区間の最大振れ量、撮影中の光学ズーム倍率、動画再生時の像振れ補正用の拡大率を表している。図19において、横軸は時間軸を表しており、t0は撮影開始時刻、t1、t3は撮影中の光学ズームによる構図変化開始時刻、t2、t4は撮影中の光学ズーム操作が終了した構図変化終了時刻、t5は撮影修了時刻を表している。各区間の最大振れ量はそれぞれの構図固定区間、構図変化区間における最大振れ量を表している。
図19における撮影中の光学ズーム倍率は、撮影中にユーザが操作部106により行われた光学ズームを開始、終了したタイミングと各時刻の光学ズーム倍率を表している。図19における動画再生時の像振れ補正用の拡大率は、各区間の最大振れ量から求めた切り出し範囲の画像データを映像情報出力部107が出力する画像データの範囲(大きさ)に解像度変換するときの画像データの拡大率である。ここでは、各構図固定区間における画像データの拡大率をM1,M2,M3とする。
図19のような動画ストリームを再生する場合の像振れ補正処理を図18のフローチャートで説明する。
ステップS1701において、システム制御部105は、ユーザが操作部106を操作することによって動画再生を開始する。システム制御部105は、記録媒体制御部112に制御することにより、記録媒体113に記録されている動画ストリームをフレームメモリ109に格納する。画像切り出し制御部202が画像切り出し部201を制御することにより、フレームメモリ109に格納された画像データから所定の切り出し範囲で画像データを切り出す。
そして、拡大処理部203は、拡大率制御部204が指示した倍率(拡大率M1)で拡大処理および解像度変換を行い、解像度変換された画像データをフレームメモリ109に格納する。映像情報出力部107は、フレームメモリに展開された画像データ(拡大処理部203にて解像度変換された画像データ)を表示部115に表示する。
ステップS1702において、システム制御部105は、振れ補正部108内の振れ情報取得部206を制御することで、再生する動画ストリームに関連付けられた振れ情報を記録媒体113より取得する。そしてシステム制御部105は、画像切り出し制御部202を制御することで、取得した振れ情報に応じて決定される切り出し範囲の画像データを読み出す。拡大処理部203は、読み出された画像データを拡大率制御部204の指示した拡大率(切り出し範囲に対応した拡大率)で解像度変換処理をおこない、フレームメモリ109に格納する。
ステップS1703において、システム制御部105は、動画ストリームが終了したかどうかの判断を行う。動画ストリームが終了してなければステップS1704に進み、次のフレームの読み込みを行う。動画ストリームが終了していれば処理を終了する。ステップS1704において、システム制御部105は、再生しているフレームが構図変化情報取得部208により取得された構図変化開始タイミングであるか判定を行う。この構図変化開始タイミングは、図19中のt1、t3のタイミングである。
構図変化開始タイミングでなかったときにはステップS1702にもどり像振れ補正処理を行う。
ステップS1705において、システム制御部105は、構図固定区間では画像データの切り出し範囲の大きさが同じであるため、最初に設定した拡大率を用いて像振れ補正を行うが、構図変化区間中ではフレーム毎に拡大率を設定する。構図変化区間で設定される拡大率は、現在の構図変化区間(構図変化区間1811)の1つ前の構図固定区間1801と次の構図固定区間1802における拡大率(M1とM2)と現在の構図変化区間1811における光学ズーム倍率の変化率によって決定する。
なお、ここでの拡大率M1は、構図固定区間1801での読み出し領域(第1の切り出し範囲)からの画像データを表示部115に拡大表示する際の映像の拡大率である。また、拡大率M2は、構図固定区間1802での読み出し領域(第2の切り出し範囲)からの画像データを表示部115に拡大表示する際の映像の拡大率である。
以下、現在のタイミングが図19の構図変化区間1811の開始タイミングt1であるとして以下説明する。
システム制御部105は、構図変化区間1811に入ると、構図変化情報取得部208よりt1,t2の時刻、そして構図固定区間1801、構図固定区間1802で切り出す画像データの範囲から、それぞれの区間における拡大率M1,M2を取得する。次にシステム制御部105は、t1、t2、M1,M2を用いて構図変化区間1811における拡大変化率αを下記式によって求める。
α=(M2−M1)/(t2−t1) ・・・式(1)
システム制御部105は、この拡大変化率αと構図変化区間が始まってからの時間とを用いることによって、構図変化区間1811において画像データを一定の比率で変化させる。
ステップS1706においては、ステップS1702と同様の像振れ補正処理を行う。ただし、ここで拡大率制御部204が指示する拡大率はステップS1705で算出したものである。ステップS1707において、システム制御部105は、動画ストリームが終了したかどうかの判断を行う。動画ストリームが終了してなければ次のフレームの読み込みを行う。
ステップS1708において、システム制御部105は、再生しているフレームが構図変化情報取得部208により取得された構図変化終了タイミングのものかの判定を行う。図19中のt2、t4のタイミングである。一方で、再生しているフレームが構図変化開始タイミングでなかったときには、ステップS1702に戻り、像振れ補正処理を行う。
以上のように、撮影時の構図が固定のとき(構図固定区間)は切り出し範囲の大きさの変更を行わず、光学ズーム等によって撮影時の構図が変更している時(構図変化区間)に切り出し範囲の大きさを変更することになる。構図変化区間に像振れ補正ために一定の拡大変化率αで画像データを変化させ、再生中の構図を変更することによってユーザに違和感をなるべく持たせないようにしている。これによって構図固定区間ごとに最適な切り出し範囲の大きさで像振れ補正を行うことが可能となる。
(実施例5)
本実施例においては、構図変化区間nの前後の構図固定区間n,n+1において、最大振れ量が同じ程度であれば、構図固定区間n,n+1の拡大率も同じ程度である。
よって、構図固定区間n,n+1間で切り出し範囲(拡大率)を変更せず、大きな構図変化が起こらないようにする。なお、本実施例においても図1のハードウェア構成にて実現し、図4の制御を通じて取得した像振れ補正情報を使用する。
図20は、本実施例における制御の概念図である。構図固定区間1902と1903における拡大率を、それぞれM2,M3とする。実施例7においては、構図固定区間1902と1903の間の構図変化区間1912において、光学ズーム操作によって構図変更を行い、それに合わせて拡大率を変更していた(図20の拡大率932)。
それに対して、本実施例においては、構図固定区間1902と1903において、それぞれの最大振れ量921と922の差が所定値以下であった。
その場合は、システム制御部105は、構図固定区間1902と1903の間の構図変化区間1912において拡大率を変更しない(図20の拡大率931)。即ち、構図固定区間1903においても、拡大率M2のままで再生時における像振れ補正を行う。
なお、この所定値は任意に設定できるが、切り出し範囲(拡大率)を変更しなくても像振れ補正に影響が出ない程度の大きさに設定する。
構図変化区間nの前後の構図固定区間n,n+1において、最大振れ量が同じ程度(前述の所定値以下)であれば、構図固定区間n,n+1の拡大率も同じ程度であるため、構図変化区間nは光学ズーム倍率の変更のみ構図変更に現れるようにしている。これによって、不要な拡大縮小の構図変更を防ぐことができる。
なお、拡大率の変更方向に応じて拡大率の変更方法を変えることもできる。たとえば、拡大率がM3からM2に大きくなるような場合には拡大後の画像データの画質が劣化するため、システム制御部105は画像の切り出し範囲(拡大率)を変更しない。しかし拡大率がM2からM3に小さくなるような場合は、システム制御部105は画像データの画質が良くなる方向に画像切り出し範囲(拡大率)を変更するといった制御も可能である。
ここで構図変化区間nの前後の構図固定区間n,n+1において、最大振れ量の差が所定値以下であった場合は、拡大率が小さくなるため、構図変化区間nにおいて拡大率を変更する。一方、構図変化区間nの前後の構図固定区間n,n+1において、最大振れ量の差が所定値以下であった場合には、拡大率が大きくなるため、構図変化区間nにおいて拡大率を変更しない。
こうすることで、構図変更による切り出し範囲変更において画質が劣化する場合は、構図変更を行わないともに、構図変更による切り出し範囲変更において画質が良くなる構図変更は、画質を改善して適切な像振れ補正を行うことができる。
(実施例6)
上述した実施例4,5においては、動画撮影機能を持った機器で撮影中に像振れ補正に使用する情報を取得して、それを用いて再生中の像振れ補正を行う構成について説明した。本実施例においては、動画撮影機能を持たない動画再生機能のみを持った機器での動作について図10を用いて説明する。一部を除いてほぼ同じ構成であるため、差分のみの説明を行う。
図10の動画再生機1000の構成について説明する。動画再生機1000はシステム制御部1005、操作部1006、映像情報出力部1007、振れ補正部1008、フレームメモリ1009を備える。
動画再生機1000は、ROM1010、RAM1011、記録媒体制御部1012、記録媒体1013、バス1014、表示部1015を備える。
本実施例における動画再生機1000は、動画の撮影機能が無い他は実施例7にて説明したビデオカメラ100と同様の動作をする。
また振れ補正部1008も実施例7にて説明したビデオカメラ100の振れ補正部108と同様の動作をする。振れ補正部1008内の振れ検出部205は、実施例7にて説明したビデオカメラ100においては加速度センサなどビデオカメラの振れによる変位を測定するセンサを備えていたが、本実施例では、動画ストリームの動きベクトル検出部1016を備える。
本実施例における動画再生時の像振れ補正処理の全体の流れも実施例4にて説明したビデオカメラ100と同様である。
実施例4にて説明したビデオカメラ100において像振れ補正情報の取得は撮影中に行われたが、本実施例においては動画ストリームを一度再生し、再生中の動画ストリームから動きベクトルを検出する。
検出した動きベクトルから最大振れ量、各フレームの振れ情報の取得を行う。取得した情報をもちいて像振れ補正情報の解析、再生時の像振れ補正処理を行う。
以上のように再生時に振れ検出部205の動きベクトルより各区間の最大振れ量および、各フレームの振れ情報を取得することにより同様の処理を行うことができる。
以上の実施例においては、動画撮影中に振れ情報の検出をおこなった。しかし、レンズシフトなどによる光学的な像振れ補正処理を行い、光学的な像振れ補正で補正しきれなかった像振れに対して振れ情報の検出を行い、本発明の再生時の像振れ補正を行う構成であっても良い。
(実施例7)
上述した実施例は動画再生時に像振れ補正を行う構成について説明した。
本実施例においては動画撮影時の記録画像に対して本発明による像振れ補正情報の解析と切り出し範囲の決定、像振れ補正処理を適用した場合の動作について説明する。
本実施例で用いる機器は実施例4で説明した図1のハードウェア構成と同じであるがカメラ撮影時の動作が異なる。
システム制御部105はカメラ信号処理部104が出力した映像信号をフレームメモリ109に複数のフレームからなる動画ストリームとして映像信号を格納する撮影動作を含む。
システム制御部105は格納された映像信号を振れ補正部108に入力し、像振れ補正された動画ストリームが記録媒体制御部112を通して記録媒体113に記録する記録動作を含む。
その二つに動作に分かれる。撮影動作は所定周期で行われるが記録動作は像振れ補正処理に必要な情報がそろってから行われる。
次に図21のフローチャートと、図22を用いて本実施例における像振れ補正について詳細に説明する。
図22の横方向は図16と同様に時間軸を表しており、右に進むほど時刻が進む。撮影開始時刻t1200〜t1205の撮影開始時刻、構図変化開始時刻、構図変化終了時刻は図16のそれと同等である。まず撮影開始時刻t1200になると撮影区間1220が作成される。この区間にカメラ信号処理部104が出力した映像信号はフレームメモリに順次格納される。構図変化開始時刻t1201になると撮影区間1221および、記録区間1230が作成される。
記録区間1230では撮影区間1220でフレームメモリに格納された映像信号が振れ補正部108に入力され、像振れ補正された動画ストリームが記録媒体制御部112を通して記録媒体113に記録される。以後、構図変化がある度に撮影区間、記録区間が作成され、一つ前の撮影区間の映像信号が、新たに作成された記録区間において記録される。
次に図21のフローチャートを用いて像振れ補正情報取得、像振れ補正情報の解析と切り出し範囲の決定、像振れ補正処理について説明する。
ステップS2101においてシステム制御部105はユーザが操作部106を操作することによってユーザから撮影開始指示があると、動画の撮影を開始する。動画撮影が開始すると撮像センサ102が出力した映像信号はカメラ信号処理部104を介してフレームメモリ109に格納される。映像信号はフレームメモリ109にフレーム画として連続した領域に順次格納される。
システム制御部105は、撮影を開始すると、構図固定区間1(n=1)及び撮影区間1(m=1)を作成する。そしてシステム制御部105は構図固定区間1及び、撮影区間1を処理する区間として設定する。
ステップS2102において、振れ補正部108内の振れ検出部205は、撮影中すべてのフレームに対して振れ情報の取得を行う。そして、システム制御部105は、振れの方向と振れ量を振れの発生した時刻とともに、RAM111に格納する。
ステップS2103において、システム制御部105は、ユーザが操作部106を操作することによって撮影終了要求があったかどうかの判断を行う。終了要求があったときにはステップS1115に進み、終了処理を行う。ステップS1115においては、システム制御部105は、撮影終了要求があった時刻までの区間を構図固定区間nとし、構図固定区間nにおける最大の振れ量をRAM111に格納しステップ117に進む。
ステップS2104において、システム制御部105は、ズーム操作が開始されたりパンニングされたりして構図変化が発生していないかを、振れ補正部108内の構図変化検出部207から取得する。システム制御部105は、構図変化がないときにはステップS2102にもどり、振れ情報の取得を行う。構図変化があると判定されたときには、ステップS2105に進む。
ステップS2105において、システム制御部105は、新たな撮影区間及びに記録区間を作成し、処理をする区間を変更する。
ステップS1106において、システム制御部105は構図固定区間nの最大振れ量をRAM111に格納する。
ここでシステム制御部105は撮影区間m−1にふくまれる構図固定区間、構図変化区間の切り出し範囲を実施例7の図17のフローチャートと同様の方法で決定する。すなわち、撮影区間m−1までに含まれる、構図固定区間、構図変化区間の大小関係を確認し、両者の切り出し範囲を決定する。
ステップS1107において、システム制御部105は記録区間m−1までの映像信号のすべてが記録媒体113に記録されているかの判定を行う。映像信号がすべて記録されていると判断された時はステップS1108に進み、記録されていないと判断された時にはS1109に進む。ここで記録区間0は存在しないので最初にこのステップS1107に入った時にはステップS1108に進む。
ステップS1108において、システム制御部105は撮影区間m−1でフレームメモリ109に格納した映像信号を振れ補正部108に入力し、像振れ補正を行い、記録媒体113への記録を開始する。ここでシステム制御部105がステップS1106で決定した切り出し範囲を画像切り出し部201に対して設定する。さらに振れ補正部108は振れ情報取得部206によりRAM111より振れ情報を取得し、取得した情報に応じて像振れ補正処理を行う。システム制御部105により撮影区間m−1で撮影された先頭フレームと終了フレームが指示されると振れ補正部108は順次フレームを読み込む。振れ補正部108は撮影区間m−1で取得した振れ情報をRAM113より読み込み、読み込んだフレームに対応した振れ情報を用いて像振れ補正を行い、終了フレームを記録媒体113に記録したら記録動作を終了する。
ステップS1109は撮像区間m−2以前のフレームの記録が完了していなかった時の処理である。システム制御部105は振れ補正部108に設定されている終了フレームを撮像区間m−1で撮影した終了フレームで更新する。振れ補正部108はシステム制御部105により設定された終了フレームを記録媒体に記録したら記録動作を終了する。
ステップS1110においてはステップS2102と同様に、振れ検出部205は構図変化期間の振れ情報を取得する。
ステップS1111において、システム制御部105は、ユーザが操作部106を操作することによって撮影終了要求があったかどうかの判断を行う。終了要求があったときにはステップS1116に進み、終了処理を行う。ステップS1116においてシステム制御部105は、撮影終了要求があった時刻までの区間を構図変化区間nとし、構図変化区間nにおける最大の振れ量をRAM111に格納し、撮影動作を終了する。
ステップS1112おいて、システム制御部105は、ズーム操作が終了したりユーザによるパンニングが終了するなど構図変化が終了したか否かの判定結果を構図変化検出部207より取得する。構図変化が継続しているときにはステップS1110に戻り、振れ情報の取得を行い、構図変化が終了したと判定した場合は、ステップS1113へ進む
ステップS1113において、システム制御部105は構図変化区間における最大の振れ量をRAM111に格納する。そして、ステップS1114においてシステム制御部105は、処理する区間を次の区間へ変更するために、構図固定区間nに1を加えて構図固定区間n+1とする。そしてS2102にもどりシステム制御部105は構図固定区間n+1の振れ情報の取得を行う。
ステップS1117において、S2105と同様に、システム制御部105は、新たな構図区間を作成し、処理をする区間を変更する。
ステップS1118のおいてはS1107と同様にシステム制御部105は記録区間m−1までの映像信号のすべてが記録媒体113に記録されているかの判定を行う。映像信号がすべて記録されていると判断された時はステップS1119に進み、記録されていないと判断された時にはS1109に進む。ここで記録区間0は存在しないので最初にこのステップS1120に入った時にはステップS1119に進む。
ステップS1119においてはS1108と同様に、システム制御部105は撮影区間m−1でフレームメモリ109に格納した映像信号を振れ補正部108に入力し、像振れ補正を行い、記録媒体113への記録を開始する。
ステップS1120においてはS1109と同様に、システム制御部105は振れ補正部108に設定されている終了フレームを撮像区間m−1で撮影した終了フレームで更新する。
ステップS1121において、システム制御部105は映像信号が記録媒体113にすべて記録されているかの判断を行う。もし記録が終了していないときにはこのステップS1121に戻り記録が終了するまで待つ。記録が終了しているときには動画撮影の終了となる。
以上のように撮影した映像信号をフレームメモリに一度格納し、構図固定区間の画角が決まってから像振れ補正処理を行うことによって動画撮影中にも本発明を適用することが可能である。