以下、図面に基づいて、本発明の実施形態について詳細に説明する。
図1に、動画像撮影装置の一実施形態を示す。
図1に示した動画像撮影装置は、2つの撮像部101L,101Rと、生成部110と、検出部120とを含んでいる。2つの撮像部101L,101Rは、例えば、3次元動画像あるいは3次元静止画像の撮影を目的として、人間の左右の目に相当する視差を持つように配置されている。
生成部110は、2つの撮像部101L,101Rの一方に撮像動作を実行させるとともに、他方を待機状態とすることにより、2つの撮像部101L,101Rを交互に切り替えて動作させる。また、生成部110は、これらの撮像部101L,101Rで得られる画像に基づいて、2次元動画像mvを生成する。そして、生成部110は、生成した2次元動画像mvを、出力端子Voutを介して出力する。
検出部120は、2つの撮像部101L,101Rで得られる画像に基づいて、例えば、これらの撮像部101L,101Rが共通して捉えている被写体についての視差が所定の閾値以下となるタイミングを切り替えタイミングTcとして検出する。検出部120は、例えば、撮像部101Lが動作中である場合に、この撮像部101Lの連続動作時間が過熱の防止のために設定された制限時間に到達する前に、撮像部101Rへの切り替えタイミングTcを検出してもよい。
そして、検出部120によって検出された切り替えタイミングTcに基づいて、生成部110は、2つの撮像部101L,101Rの動作状態の切り替えを制御する。これにより、例えば、動作中の撮像部101Lと待機中の撮像部101Rとで得られる2つの画像に共通する被写体の視差が小さくなったときに、生成部110は、撮像部101Lを待機状態に切り替え、撮像部101Rを動作状態に切り替えることができる。
このように、本件開示の動画像撮影装置は、2つの撮像部101L,101Rの切り替えに先立って、好適な切り替えタイミングTcを探索し、この探索で検出した切り替えタイミングTcに基づいて、2つの撮像部101L,101Rの切り替えを実行する。これにより、本件開示の動画像撮影装置の生成部110は、切り替えによる不連続性の少ない2次元動画像mvを生成することができる。
このようにして、本件開示の動画像撮影装置は、視差を持って配置された2つの撮像部101L,101Rを切り替え動作させながら、切り替え前後での画像の変化が抑制された長時間の2次元動画像を撮影することができる。
次に、本件開示の動画像撮影装置に含まれる生成部110および検出部120について説明する。
生成部110は、切り替え部102と、第2取得部111と、補間部112と、出力制御部113とを含んでいる。
切り替え部102は、動画像撮影装置に搭載された2つの撮像部101L,101Rを交互に駆動する。以下の説明では、2つの撮像部101L,101Rのうち、切り替え部102によって撮像動作させられている方を動作中の撮像部101と称し、他方を待機中の撮像部101と称する。切り替え部102は、検出部120によって検出される切り替えタイミングTcに基づいて、2つの撮像部101L,101Rの動作状態の切り替えを制御する。
また、切り替え部102は、例えば、動作中の撮像部101を動画像撮影のための所定のフレームレートで駆動することにより、動作中の撮像部101から各フレームの画像を取得し、取得した画像を順次に出力する。例えば、撮像部101Lが動作中の撮像部101である場合に、切り替え部102は、上述したフレームレートに対応するフレーム間隔tfごとに、撮像部101Lによって得られる画像GLを順次に出力する。なお、切り替え部102が動作中の撮像部101に適用するフレームレートは、例えば、毎秒30フレームとしてよい。
切り替え部102によって出力される画像は、出力制御部113と補間部112とに入力される。
また、第2取得部111は、検出部120によって検出された切り替えタイミングTcの後に設定される所定の時間を有する移行期間にわたって、待機中の撮像部101を動作中の撮像部101の撮像動作に同期して駆動させる。これにより、第2取得部111は、上述した移行期間にわたって、動作中の撮像部101と同時に撮影された画像を、待機中の撮像部101から取得する。
補間部112は、第2取得部111によって取得された画像と、切り替え部102によって出力される動作中の撮像部101によって得られる画像とを合成することにより、補間画像Gintを生成する。以下の説明では、補間部112による合成処理の対象となる画像のうち、動作中の撮像部101で得られた画像を切り替え元の画像GBと称する。一方、第2取得部111によって取得される画像は、切り替え先となる待機中の撮像部101によって得られた画像であるので、切り替え先の画像GFと称する。
また、図1に示した出力制御部113は、検出部120によって検出される切り替えタイミングTcに応じて、切り替え部102によって出力される画像と補間部112によって生成される補間画像Gintとを切り替えて出力する。出力制御部113は、通常は、切り替え部102によって出力される各フレームの画像を順次に出力することによって2次元動画像mvを生成する。一方、上述した移行期間にわたって、出力制御部113は、切り替え部102の出力に代えて、補間部112によって得られる各フレームの補間画像Gintを2次元動画像mvの一部として順次に出力する。
図2に、動画像撮影動作を説明する図を示す。図2において、撮像部101Lによる撮像動作で得られる画像GLを白い矩形で示す。また、図2に示した網掛けを付した矩形は、撮像部101Rによる撮像動作で得られる画像GRを示す。
図2は、動作中の撮像部101を撮像部101Lから撮像部101Rに切り替える過程で、各撮像部101L,101Rで得られる画像GL,GRと、動画像撮影装置から出力される2次元動画像mvとの関係を示している。
また、図2に示した符号Tcは、検出部120によって検出される切り替えタイミングを示す。図2に示した例において、この切り替えタイミングTc以前の期間において、出力制御部113によって出力される2次元動画像mvは、動作中の撮像部101である撮像部101Lで得られた画像GLに基づいて生成される。
第2取得部111は、例えば、図2に示すように、切り替えタイミングTcから所定の時間tpが経過した後に、待機中の撮像部101を、動作中の撮像部101と同等のフレームレートで駆動する動作を開始してもよい。なお、図2の例において、移行期間は、切り替えタイミングTcから時間tpが経過した後の時間trの期間である。この移行期間の長さは、例えば、上述したフレーム間隔tfの自然数m倍としてもよい。この移行期間において、第2取得部111は、待機中の撮像部101によってフレーム間隔tfごとに得られる各フレームの画像を切り替え先の画像GFとして取得する。
そして、図1に示した補間部112は、図2に示すように、2つの撮像部101L,101Rからそれぞれフレーム間隔tfごとに得られる画像GL,GRを、それぞれ切り替え元の画像GB,切り替え先の画像GFとして合成する。この合成処理により、補間部112は、2つの撮像部101L,101Rの中間の視点を持つ仮想的な撮像部に対応する補間画像Gintをフレーム間隔tfごとに生成する。
上述した移行期間にわたって、出力制御部113は、この補間部112によって生成された補間画像Gintを、切り替え部102によって出力される画像に代えて、2次元動画像mvの一部として出力する。なお、図2の例において、二重線で表した矩形は、移行期間において補間部112によって生成される補間画像Gintを示す。
このようにして、移行期間が経過した後に、切り替え部102は、2つの撮像部101L,101Rの動作状態を切り替える。例えば、切り替え部102は、それまで動作させていた動作中の撮像部101に対する駆動動作を停止し、待機中の撮像部101に対する駆動動作を開始する。
例えば、図2に示した例において、符号Taを付した矢印は、撮像部101Lから撮像部101Rへの切り替えが実行されるタイミングを示す。このタイミングTaにおいて、切り替え部102は、撮像部101Lの撮像動作を停止させる一方、移行期間において動作を開始した撮像部101Rの撮像動作はそのまま継続させる。これにより、図2に示すように、上述したタイミングTa以降は、フレーム間隔tfごとに撮像部101Rによって得られる画像GRが、2次元動画像mvの一部として出力される。
一方、図1に例示した検出部120は、第1取得部121と、評価部122と、特定部123と、タイマ124とを含んでいる。
第1取得部121は、例えば、タイマ124からの制御信号STに応じて、待機中の撮像部101を周期的に駆動する動作を開始する。第1取得部121は、例えば、待機中の撮像部101を所定の時間間隔tdごとに駆動することにより、この待機中の撮像部101で得られる画像を周期的に取得する。なお、この時間間隔tdは、例えば、フレーム間隔tfの自然数n倍に設定してもよい。
図1に示したタイマ124は、動作中の撮像部101が撮像動作を継続することが可能な残り時間Tremを示す内部値を保持しており、この内部値を時間の経過に応じて減じる動作を行う。タイマ124は、例えば、上述した切り替え部102が撮像部101の切り替えを実行したタイミングを示す制御信号RSに応じて、内部値に、撮像部101の過熱を防ぐために設定された制限時間に相当する値を初期値としてセットしてもよい。また、タイマ124は、時間の経過に応じて減じられた内部値が、所定の時間Dsを示す値に到達したときに、制御信号STを出力することによって、第1取得部121に動作を開始させる。
例えば、図2に示した符号Tsは、動作中となっている撮像部101Lが撮像動作を継続している時間が、撮像部101の過熱を防ぐために設定された制限時間に到達するタイミングを示す。上述したタイマ124は、このタイミングTsから上述した時間Dsだけ遡った時点で制御信号STを出力することにより、第1取得部121の動作を開始させる。
このようにして、動作中の撮像部101による撮像動作が継続可能なうちに、第1取得部121による待機中の撮像部101の画像を取得する動作を開始させることができる。
また、図1に示した評価部122は、切り替え部102によって出力される画像と第1取得部121が取得した画像とを比較することにより、2つの撮像部101L,101Rが共通して捉えている被写体についての視差を評価する。特定部123は、評価部122による評価結果に基づいて、2つの撮像部101L,101Rが共通して捉えている被写体についての視差が所定の閾値よりも小さくなるタイミングを切り替えタイミングTcとして特定する。このようにして、検出部120は、2つの撮像部101L,101Rが共通して捉えている被写体についての視差が所定の閾値よりも小さくなる切り替えタイミングTcを検出することができる。
図2に示した符号T1,T2,T3は、上述した第1取得部121が、待機中となっている撮像部101Rから画像GRを取得するタイミングの例を示す。図2の例は、タイミングT3で、2つの撮像部101L,101Rからそれぞれ得られる画像GL,GRを比較した結果に基づいて、切り替えタイミングTcが検出された場合を示している。
このようにして検出された切り替えタイミングTcに基づいて、生成部110は、上述したようにして、補間部112によって生成した補間画像Gintを出力する移行期間を経て、2つの撮像部101L,101Rを切り替える。
動画像撮影装置に搭載された2つの撮像部101L,101Rの切り替えに先立って、このような移行期間を設けることにより、切り替えに伴う視点の変化が出力される2次元動画像mvに及ぼす影響を更に抑制することができる。これにより、本件開示の動画像撮影装置は、視点の異なる2つの撮像部101L,101Rを切り替えながら、自然な連続性を維持した2次元動画像を出力することができる。
図3に、本件開示の動画像撮影装置の状態遷移図の一例を示す。
図3に示した符号PLは、図1に示した撮像部101Lが単独で撮像動作している状態を示す。また、符号Ps(L→R)は、撮像部101Lから撮像部101Rへの切り替えタイミングを探索している状態を示す。そして、符号Pt(L→R)は、撮像部101Lから撮像部101Rへの切り替えに先立つ移行期間に対応する状態を示す。また、符号PRは、図1に示した撮像部101Rが単独で撮像動作している状態を示す。また、符号Ps(R→L)は、撮像部101Rから撮像部101Lへの切り替えタイミングを探索している状態を示す。そして、符号Pt(R→L)は、撮像部101Rから撮像部101Lへの切り替えに先立つ移行期間に対応する状態を示す。
図3に示したように、本件開示の動画像撮影装置の状態は、状態PL,状態Ps(L→R),状態Pt(L→R)、状態PR,状態Ps(R→L)、状態Pt(R→L)を循環的遷移する過程で、2つの撮像部101L,101Rを切り替え動作させる。これにより、個々の撮像部101L,101Rに設定された過熱防止のための連続動作時間に対する制限にかかわらず、本件開示の動画像撮影装置は、長時間の2次元動画像の撮影を実現することができる。なお、図2に示した符号PLは、動画像撮影装置の状態が状態PLである期間を示す。また、図2に示した符号Ps(L→R)は、動画像撮影装置の状態が状態Ps(L→R)である期間を示す。同様に、図2に示した符号Pt(L→R)は、動画像撮影装置の状態が状態Pt(L→R)である期間を示す。そして、図2に示した符号PRは、動画像撮影装置の状態が状態PRである期間を示す。
図4に、動画像撮影装置のハードウェア構成の一例を示す。
図4に例示した動画像撮影装置は、2つの撮像部101L,101Rと、画像処理用のプロセッサ21と、メモリ22と、記録処理部23と、メモリコントローラ24とを含んでいる。2つの撮像部101L,101Rと、プロセッサ21と、メモリ22と、記録処理部23との各部は、メモリコントローラ24を介して互いに接続されている。
図4に例示した動画像撮影装置は、例えば、3次元動画像撮影機能を有するデジタルビデオカメラあるいはデジタルカメラなどである。そして、2つの撮像部101L,101Rは、例えば、3次元動画像あるいは3次元静止画像の撮影を目的として、人間の左右の目に相当する視差を持つように配置されている。また、記録処理部23は、例えば、メモリカードなどの着脱可能な記録媒体との間で、画像データなどの記録処理および読出処理を実行する。
また、動画像撮影装置は、装置制御用のプロセッサ28と、外部インタフェース(外部I/F)29と、操作パネル30とを含んでもよい。プロセッサ28と、外部インタフェース29、操作パネル30およびメモリコントローラ24とは、互いにバスを介して接続されている。外部インタフェース29は、プロセッサ28の制御の下で、例えば、パーソナルコンピュータなどとメモリ22との間のデータのやり取りを媒介する。
メモリ22は、2つの撮像部101L,101Rを交互に動作させるための切り替え処理プログラムを格納している。プロセッサ21は、この切り替え処理プログラムに従って撮像部101L,101Rの動作を制御することにより、図1に示した生成部110および検出部120の機能を実現する。
なお、例えば、外部インタフェース29を利用して、パーソナルコンピュータなどを経由して切り替え処理プログラムを読み込み、読み込んだ切り替え処理プログラムをメモリ22に格納させてもよい。
また、図4に示した撮像部101Rは、撮像素子25Rと、駆動制御部26Rと、フォーマット変換部27Rとを含んでいる。同様に、撮像部101Lは、撮像素子25Lと、駆動制御部26Lと、フォーマット変換部27Lとを含んでいる。
駆動制御部26R,26Lは、それぞれ撮像素子25R,25Lによる撮像動作を駆動する。また、駆動制御部26R,26Lは、撮像素子25R,25Lによる撮像動作で得られた信号から画像GR,GLを生成する。フォーマット変換部27R,27Lは、駆動制御部26R,26Lで生成された画像GR,GLのデータ形式を、YCbCr形式などの出力用のデータ形式に変換する。
動画像撮影装置が3次元動画像の撮影を行う場合に、撮像部101R,101Lは動画像撮影のための所定のフレームレートで並行して動作する。そして、フォーマット変換部27R,27Lは、出力用のデータ形式に変換した画像GR,GLを、動画像撮影のためのフレームレートに対応するフレーム間隔tfごとに、メモリコントローラ24を介してメモリ22に格納する。また、記録処理部23は、メモリ22に格納された出力用のデータ形式の画像GR,GLを記録媒体に記録する処理を行う。なお、記録処理部23は、画像GR,GLの記録媒体に記録する過程で、例えば、MPEG方式などに基づいた圧縮処理を行ってもよい。
一方、動画像撮影装置が2次元動画像の撮影を行う際に、プロセッサ21は、撮像部101R,101Lを交互に切り替えて動作させる処理を行う。
なお、動画像撮影装置は、例えば、プロセッサ28の制御の下で、操作パネル30などを介して撮影者が入力したモード切り替え指示に応じて、3次元動画像を撮影するモードと2次元動画像を撮影するモードとを切り替えて動作してもよい。また、プロセッサ28は、動画像撮影装置の各部を制御することにより、3次元静止画像および2次元静止画像の撮影を行ってもよい。
例えば、モード切り替え指示により、2次元動画像を撮影するモードへの切り替えが指示されたときに、プロセッサ21は、2つの撮像部101L,101Rを交互に切り替えて2次元動画像を生成する処理を開始する。
そして、一方の撮像部101の連続動作時間が、過熱防止のために設定された制限時間に近づいたときに、プロセッサ21は、切り替え処理プログラムの実行を開始する。例えば、プロセッサ21は、図1に示したタイマ124について説明したように、制限時間から連続動作時間を差し引いて得られる残り時間Tremが時間Dsとなったときに、切り替え処理プログラムの実行を開始してもよい。なお、この時間Dsは、例えば、2つの撮像部101L,101Rの切り替えに好適なタイミングを探索するために要する時間と、上述した移行期間とを考慮して決定してもよい。
図5に、撮像部101R,101Lを切り替える処理のフローチャートを示す。
プロセッサ21は、まず、待機中の撮像部101から画像を取得するタイミングを制御するための変数tに初期値0を設定する(ステップS11)。次いで、プロセッサ21は、動作中の撮像部101で得られる画像を、2次元動画像mvの一部として出力する(ステップS12)。ステップS12において、プロセッサ21は、動作中の撮像部101に含まれるフォーマット変換部27に対して、変換済みの画像をメモリコントローラ24を介して出力させてもよい。
その後、プロセッサ21は、変数tが待機中の撮像部101から画像を取得する時間間隔td未満であるか否かを判定する(ステップS13)。なお、この時間間隔tdは、例えば、図2に示したように、フレーム間隔tfの整数n倍としてもよい。変数tの値が時間間隔td未満である場合に(ステップS13の肯定判定)、プロセッサ21は、ステップS14で変数tにフレーム間隔tfを加算した後に、ステップS12の処理に戻る。
図5に示したステップS11〜ステップS14を繰り返して、動作中の撮像部101で得られたnフレームの画像を出力したときに、上述した変数tの値は時間間隔tdに等しくなる。このとき、プロセッサ21は、ステップS13の肯定判定として、ステップS15の処理に進む。
ステップS15で、プロセッサ21は、待機中の撮像部101を駆動して1フレームの画像を取得する。例えば、プロセッサ21は、待機中の撮像部101に含まれる駆動制御部26を介して撮像素子25を一時的に駆動し、待機中の撮像部101に含まれるフォーマット変換部27と、メモリ22、メモリコントローラ24を介して、1フレームの画像を取得すればよい。このように、プロセッサ21が、ステップS15の処理を実行することにより、図1に示した第1取得部121の機能を実現してもよい。
次いで、プロセッサ21は、ステップS15で得られた画像とステップS12で得られた画像とに基づいて、これらの画像に共通して捉えられた被写体についての2つの撮像部101R,Lの視差を評価する(ステップS16)。このように、プロセッサ21が、ステップS16の処理を実行することにより、図1に示した評価部122の機能を実現してもよい。なお、ステップS16の処理の詳細については後述する。
そして、プロセッサ21は、ステップS16で得られた評価結果で示される視差の大きさと所定の閾値との比較結果に基づいて、動作中の撮像部101から待機中の撮像部101への切り替えが可能であるか否かを判定する(ステップS17)。なお、ステップS17において、プロセッサ21がステップS16で得られた評価結果と比較する閾値を決定する手法については後述する。
ステップS16で得られた評価結果で示される視差の大きさが上述した閾値よりも大きい場合に(ステップS17の否定判定)、プロセッサ21は、ステップS18に進む。このステップS18で、プロセッサ21は、動作中の撮像部101を連続動作させられる残り時間Tremが、上述した時間Deよりも大きいか否かを判定する。なお、ステップS18において、プロセッサ21が残り時間Tremと比較する時間Deは、例えば、図2に示した時間Dsよりも短い時間であって、移行期間に相当する時間trよりも長い時間に設定してもよい。
動作中の撮像部101に対応する残り時間Tremが上述した時間Deよりも大きい場合に(ステップS18の肯定判定)、プロセッサ21は、ステップS11の処理に戻る。そして、プロセッサ21は、待機中の撮像部101から新たな画像を取得する処理を開始する。
このようにしてステップS11〜ステップS18の処理を繰り返すことにより、プロセッサ21は、上述した時間間隔tdで、待機中の撮像部101である撮像部101Rによって得られる画像GRを取得する。
そして、例えば、図2にタイミングT3で取得した画像GRと画像GLとについて得られた評価結果が上述した閾値以下である場合に(ステップS17の肯定判定)、プロセッサ21は、撮像部101Lから撮像部101Rへの切り替えが可能になったと判断する。このように、プロセッサ21が、ステップS17の処理を実行することにより、図1に示した特定部123の機能を実現してもよい。
ステップS17の肯定判定の場合に、プロセッサ21は、図5に示したステップS19の処理に進む。ステップS19で、プロセッサ21は、動作中の撮像部101で得られる画像を切り替え元の画像GBとして取得するとともに、待機中の撮像部101で得られる画像を切り替え先の画像GFとして取得する。例えば、プロセッサ21は、待機中の撮像部101に含まれる駆動制御部26を介して、撮像素子25を動画像撮影のためのフレームレートで駆動してもよい。この駆動処理によって駆動制御部26Rで得られた画像GRを、プロセッサ21は、切り替え先の画像GFとして取得する。このように、プロセッサ21が、ステップS19の処理を実行することにより、図1に示した第2取得部111の機能を実現してもよい。
次いで、プロセッサ21は、ステップS19で取得した切り替え元の画像GBおよび切り替え先の画像GFに基づいて、補間画像Gintを生成する(ステップS20)。このように、プロセッサ21が、ステップS20の処理を実行することにより、図1に示した補間部112の機能を実現してもよい。なお、ステップS20の処理の詳細については後述する。
次に、プロセッサ21は、ステップS20で生成した補間画像Gintを、切り替え元の画像GBの代わりに、2次元動画像データの一部として出力する(ステップS21)。このようにして、プロセッサ21がステップS21の処理を実行することにより、図1に示した出力制御部113の機能を実現してもよい。
その後、プロセッサ21は、ステップS22において、図2に例示した時間trを有する移行期間が終了したと判定するまで、ステップS19〜ステップS22の処理を繰り返す。
例えば、図2に示した移行期間Pt(L→R)において、プロセッサ21は、ステップS19〜ステップS22の処理を繰り返す。この処理の過程で、プロセッサ21は、撮像部101Lおよび撮像部101Rから各フレームの画像GLおよび画像GRを取得するごとに、ステップS20の処理を実行することにより、各フレームの補間画像Gintを生成する。そして、このようにして生成した各フレームの補間画像Gintを、プロセッサ21は、2次元動画像mvの一部として出力する。
なお、プロセッサ21は、待機中の撮像部101を動画撮影用のフレームレートで駆動するのに先立って、図2の例のように、所定の予備時間tpを設けてもよい。この場合に、プロセッサ21は、上述したようにして切り替え可能なタイミングT3が検出されてから予備時間tpが経過した後に、ステップS19〜ステップS22の移行処理を開始する。一方、上述した予備時間tpが不要である場合に、プロセッサ21は、ステップS17で、切り替え可能なタイミングを検出したときに、ステップS19〜ステップS22の移行処理を開始してもよい。
ステップS19〜ステップS22の移行処理を開始してから時間trが経過したときに(ステップS22の肯定判定)、プロセッサ21は、2つの撮像部101R,101Lの動作状態を切り替える処理を行う(ステップS23)。例えば、プロセッサ21は、動作中の撮像部101L内の駆動制御部26Lを介して、撮像部101Lを休止状態にする。その一方、プロセッサ21は、撮像部101R内の駆動制御部26Rを介して、この撮像部101Rによる撮像動作を継続させる。このようにして、プロセッサ21によって、撮像部101Lと撮像部101Rとの役割を切り替えた後の動画像撮影装置の状態は、撮像部101Rの単独動作状態PRに遷移する。
図3に示した単独動作期間PRにおいて、撮像部101Rは、撮像部101Lに代わって、動画撮影用のフレームレートに対応するフレーム間隔tfで画像GRを生成する。そして、この画像GRは、そのまま2次元動画像mvの一部として、メモリコントローラ24を介してメモリ22に格納される。
このように、本件開示の動画像撮影装置は、撮像部101Lから撮像部101Rへの切り替えを実現することができる。そして、撮像部101Rを動作中の撮像部101とし、撮像部101Lを待機中の撮像部101として動作させた後、上述した切り替え処理を再び行うことにより、撮像部101Rから撮像部101Lへの切り替えを実現することができる。
このように、図4に例示したハードウェア構成を有する動画像撮影装置により、図3に示した6つの状態を循環的に遷移する過程で、2つの撮像部101L,101Rを交互に切り替えながら長時間の2次元動画像撮影を行う動画像撮影装置を実現することができる。
なお、図5に例示したフローチャートのように、ステップS17の否定判定の場合でも、残り時間Tremが時間De以下であると判定したときに(ステップS18の否定判定)、プロセッサ21は、ステップS19〜ステップS22の移行処理を実行してもよい。
例えば、時間Deに、上述した移行期間に相当する時間trに所定の猶予時間を加算した時間を設定してもよい。この場合に、プロセッサ21は、動作中の撮像部101の連続動作時間が過熱防止のために設定された制限時間に到達する前に、確実に、待機中の撮像部101への切り替えを完了させることができる。
また、ステップS16で得られた評価結果により、2つの撮像部101L,101Rの視差が極めて小さいことが示された場合などに、プロセッサ21は、ステップS19〜ステップS22の移行処理をスキップしてもよい。例えば、遠くの山並みなどの風景を撮影している場合などには、主要な被写体である風景に対する2つの撮像部101L,101Rの視差は非常に小さくなる。したがって、プロセッサ21は、ステップS16で得られた評価結果と、このような場合について2つの撮像部101L,101Rの視差を評価した結果に相当する閾値とを比較することにより、上述した移行処理をスキップするか否かを判定してもよい。
また、図4に例示したプロセッサ21に代えて、図5に示した撮像部を切り替える処理のためのプログラムを組み込んだデジタルシグナルプロセッサ(DSP:Digital Signal Processor)などのハードウェアを用いてもよい。
次に、2つの撮像部101L,101Rの視差を評価する処理について説明する。
図6に、視差を評価する処理を説明する図を示す。図6において、符号GL,GRは、それぞれ撮像部101L,101Rで得られた画像GL,GRを示す。また、図6に示した各画像GLにおいて、符号MBは、画像GLをN×N画素の小領域に分割して得られるブロックの一つである。なお、各ブロックの大きさは、例えば、16画素×16画素としてもよい。図6においては、図の見易さのために、個々のブロックの大きさを拡大して示している。
図6(A),(B)は、2つの撮像部101L,101Rにより、樹木を含む風景を背景として近距離にいる人物を同時に撮影して得られた画像GL,GRの例である。
図6(A),(B)に示した画像GL,GRに共通して含まれる人物についての視差は、例えば、画像GLの人物の部分に含まれるブロックMBについて、画像GRとブロックマッチングを行って得られる視差ベクトルVdに基づいて求めることができる。図6(B)において、符号MB’は、画像GLに含まれるブロックMBについてのブロックマッチングによって画像GRから検出された領域を示す。画像GLのブロックMBについての画像GRとの視差ベクトルVdは、例えば、画像GLのブロックMBの左上の画素の位置を基準として、画像GRの領域MB’の左上の画素の位置を示すベクトルとして求めることができる。
また、図6(C),(D)は、2つの撮像部101L,101Rにより、背景となる樹木に近い位置にある車両を同時に撮影して得られた画像GL,GRの例である。また、図6(D)に示した符号符号MB’は、画像GLに含まれるブロックMBについてのブロックマッチングによって画像GRから検出された領域を示す。そして、図6(C)に示した符号Vdは、画像GLに含まれる車両の像の一部を含むブロック部分MBについての視差ベクトルを示す。
図6(A)、(C)に示した視差ベクトルVdの比較から分かるように、図6(A),(B)に示した画像GL,GRに含まれる人物についての視差に比べて、図6(C),(D)に示した画像GL,GRに含まれる車両についての視差は小さい。このように、2つの撮像部101L,101Rによって同時に得られる画像GL,GRに共通して含まれる被写体の視差が小さいときに、撮像部101L,101Rの切り替えれば、切り替え前後での画像の急激な変化を抑制することができる。
ところで、図6(A),(B)に示した画像GL,GRに共通に含まれる樹木の部分を互いに比較すると、樹木の部分についての視差は、人物についての視差に比べて小さいことがわかる。また、図6(C),(D)に示した画像GL,GRにおいても、同様に、樹木の部分についての視差と、車両についての視差とは異なっている。
このように、2つの撮像部101L,101Rによって同時に得られる画像GL,GRに共通して含まれる各被写体の視差は、それぞれ異なっているので、この画像GL,GR間の視差は、各被写体についての視差ベクトルに基づいて評価することが望ましい。
画像GLと画像GRとの間の視差の大きさは、例えば、画像GLに含まれる各ブロックについて求めた視差ベクトルVdに基づいて評価することができる。例えば、各ブロックについて求めた視差ベクトルVdの平均値を、画像GLと画像GRとの間の視差の大きさを示す評価指標としてもよい。
このように、各ブロックについて求めた視差ベクトルVdの平均値を評価指標の一つとすることにより、人間の視覚による印象と同様に、近距離に被写体が存在する画像GL,GRについての視差が、被写体の位置が背景に近い場合よりも大きいと判定することができる。
図7に、2つの撮像部101L,101Rの視差を評価する処理のフローチャートを示す。図7に示したステップS31〜ステップS37の処理は、図5に示したステップS16の処理の一例である。
プロセッサ21は、まず、動作中の撮像部101で得られた切り替え元の画像GBをN×N画素のブロックに分割する(ステップS31)。例えば、プロセッサ21は、切り替え元の画像GBを16×16画素あるいは8×8画素のブロックに分割してもよい。
次いで、プロセッサ21は、切り替え元の画像GBを分割して得られた各ブロックについて、待機中の撮像部101で得られた切り替え先の画像GFとのブロックマッチング処理を行う(ステップS32)。S32の処理で、プロセッサ21は、まず、切り替え元の画像GBに含まれるブロックの一つを順に選択する。次いで、このブロックMBについて、プロセッサ21は、切り替え先の画像GFから最も類似している領域MB’を検出する。そして、切り替え元の画像GBに含まれるブロックMBの位置と切り替え先の画像GFに含まれる領域MB’の位置とに基づいて、ブロックMBに対応する視差ベクトルVdを算出する。また、このとき、プロセッサ21は、ブロックMBに含まれる各画素と領域MB’に含まれる各画素との差分の絶対値をブロックMBに含まれる全画素について積算することにより、差分絶対値和SAD(Sum of Absolute Difference)を算出する。
次に、プロセッサ21は、ステップS32の処理で算出した視差ベクトルVdを、例えば、当該ブロックMBを識別するブロック番号に対応して保持する(ステップS33)。プロセッサ21は、例えば、切り替え元の画像GBに含まれる全ブロックに対応して視差ベクトルVdを保持するための領域をメモリ22に確保し、この領域に、ステップS32で算出した視差ベクトルVdを格納してもよい。次いで、プロセッサ21は、ステップS32で算出した差分絶対値和SADを総和Sに加算する(ステップS34)。なお、プロセッサ21は、上述したステップS33とステップS34の処理を逆の順序で実行してもよい。
その後、プロセッサ21は、切り替え元の画像GBに含まれる全てのブロックについて、上述したステップS32からステップS34の処理が完了したか否かを判定する(ステップS35)。
未処理のブロックがある場合に(ステップS35の否定判定)、プロセッサ21は、ステップS32の処理に戻る。そして、新たに選択したブロックについて、ステップS32〜ステップS34の処理を実行する。
このようにして、プロセッサ21は、切り替え元の画像GBに含まれる各ブロックについて、ステップS32〜ステップS34の処理を繰り返して実行する。そして、全てのブロックについてステップS32〜ステップS34の処理が完了したときに(ステップS35の肯定判定)、プロセッサ21は、ステップS36処理に進む。
ステップS36で、プロセッサ21は、上述したステップS33で各ブロックについて保持した視差ベクトルVdに基づいて、平均視差ベクトルVdavを算出する。例えば、プロセッサ21は、各ブロックのブロック番号に対応してメモリ22に格納した視差ベクトルVdを読み出し、読み出した視差ベクトルVdの平均値を求めることにより、平均視差ベクトルVdavを求めてもよい。
その後、プロセッサ21は、ステップS36で求めた平均視差ベクトルVdavと、総和Sとを2つの画像GB,GFの視差の大きさを示す指標として出力する(ステップS37)。なお、総和Sは、プロセッサ21が、1フレームに含まれる全てのブロックについて上述したステップS32〜ステップS34の処理を実行する過程で、各ブロックについて得られた差分絶対値和SADを積算していくことによって得られる。
このようにして求めた平均視差ベクトルVdavは、図6を用いて説明したように、切り替え元の画像GBと切り替え先の画像GFとの視差の大きさを示している。また、1フレームに含まれる差分絶対値和SADを積算した値である総和Sは、各ブロックについて得られた視差ベクトルが確からしいときに小さい値となる。逆に、例えば、撮像部101L,101Rの一方に撮影者の指がかかっている場合のように、各ブロックについて得られる視差ベクトルの確からしさが低い場合には、差分絶対値和SADの総和Sは大きな値となる。
このようにして求めた平均視差ベクトルVdavと差分絶対値和SADの総和Sとを評価指標とすることにより、プロセッサ21は、図5に示したステップS17の処理で、2つの画像GB、GFの視差が小さいか否かを高い確度で判定することができる。
例えば、プロセッサ21は、ステップS17の処理で評価結果と比較する閾値として、平均視差ベクトルVdavについての閾値Thvと差分絶対値和SADの総和Sについての閾値Thsを用いてもよい。
なお、平均視差ベクトルVdavについての閾値Thvに好適な値および差分絶対値和の総和Sについての閾値Thsに好適な値は、例えば、2つの撮像素子に備えられたレンズの光軸の関係や撮像素子の解像度により異なる。このため、製品の開発段階などに、動画像撮影装置によって視差があるシーンを撮影した3D静止画像および視差が無いシーンを撮影した3D静止画像に基づいて、動画像撮影装置ごとに閾値Thv,Thsを決定しておくことが望ましい。例えば、視差があるシーンを撮影した3D静止画像について得られる平均視差ベクトルVdの範囲と、視差が無いシーンを撮影した3D静止画像について得られる平均視差ベクトルVdの分布との範囲とをそれぞれ求めておく。そして、これらの範囲を互いに比較した結果に基づいて、平均視差ベクトルVdavについての閾値Thvを決定してもよい。同様に、視差があるシーンを撮影した3D静止画像に対応する差分絶対値和SADの総和Sの範囲と、視差が無いシーンを撮影した3D静止画像に対応する差分絶対値和SADの総和Sの範囲とをそれぞれ求めておく。そして、これらの範囲を互いに比較した結果に基づいて、差分絶対値和SADの総和Sについての閾値Thsを決定してもよい。
本件開示の動画像撮影装置は、上述したようにして求めた評価指標に基づいて、2つの撮像部101L,101Rの切り替えタイミングを決定する。これにより、本件開示の動画像撮影装置によれば、出力される2次元動画像の連続性を維持しやすいタイミングで、2つの撮像部101L,101Rを切り替えることができる。したがって、本件開示の動画像撮影装置によれば、2つの撮像部101L,101Rの切り替えながら、違和感の少ない長時間の2次元動画像を撮影することができる。
次に、補間画像の生成処理について説明する。
図8に、補間画像を生成する処理を説明する図を示す。図8において、符号GBは動作中の撮像部101で得られた切り替え元の画像を示す。また、符号GFは、待機中の撮像部101で得られた切り替え先の画像を示す。また、符号Gintは、2つの画像GB,GFに基づいて生成される補間画像を示す。
図8に示した符号MBは、生成対象の補間画像Gintに含まれるブロックである。また、画像GBにおいて、このブロックMBに相当する位置のブロックを符号MBbで示し、画像GFにおいて、このブロックMBに相当する位置のブロックを符号MBfで示した。また、図8に示した符号Vdは、画像GBに含まれるブロックMBbについて、画像GFとのブロックマッチング処理を行って検出された視差ベクトルを示す。
生成対象の補間画像Gintの視点を、切り替え元の画像GBの視点と切り替え先の画像GFの視点との間を比α:1−αで内分する位置に対応させて、補間画像GintのブロックMBに含まれる各画素を生成する方法を説明する。
切り替え元の画像GBにおいて、上述したブロックMBbからブロックMB対応の参照画像Bbに向かうベクトルVbは、上述した視差ベクトルVdと係数αとを用いて式(1)で表される。また、切り替え先の画像GFにおいて、上述したブロックMBfからブロックMB対応の参照画像Bfへ向かうベクトルVfは、上述した視差ベクトルVdと係数αとを用いて式(2)で表される。
Vf=Vd×(1.0−α) ・・・(1)
Vb=−Vd×α ・・・(2)
つまり、上述した式(1)、(2)で示されるベクトルVb,Vfに基づいて、生成対象の補間画像GintのブロックMBを生成する際に参照する画像GBにおける参照画像Bbと画像Gfにおける参照画像Bfとをそれぞれ求めることができる。
そして、補間画像GintのブロックMBに含まれる各画素P(x,y)は、画像GBにおける参照画像Bbに含まれる各画素Pb(x,y)および画像Gfにおける参照画像Bfに含まれる各画素Pf(x,y)を用いて、式(3)のように表される。
P(x,y)=β×Pf(x,y)+(1.0−β)×Pb(x,y) ・・・(3)
なお、式(3)において係数βの値は、上述した係数αの増大に伴って0〜1までの範囲で単調に増大するように設定してもよい。このように係数α、βを調整することにより、移行期間の開始から終了に近づくに従って切り替え先画像GFに近づくように、切り替え元画像GBと切り替え先画像GFとの合成比率を調整しながら、補間画像Gintを生成することができる。
図9に、補間画像を生成する処理のフローチャートを示す。図9に示したステップS41〜ステップS48の処理は、図5に示したステップS20の処理の一例である。
ステップS41で、プロセッサ21は、まず、ステップS19で取得した切り替え元画像GBと生成対象の補間画像Gintを、それぞれN画素×N画素のブロックに分割する。
次に、プロセッサ21は、生成対象の補間画像Gintに適用する係数αおよび係数βの値を決定する(ステップS42)。プロセッサ21は、ステップS42の処理で、生成対象の補間画像Gintが移行期間内で占める位置に基づいて、移行期間の経過に伴って数値0に近い値から数値1に近づくように、係数αおよび係数βを決定してもよい。例えば、移行期間にMフレームの補間画像を生成する場合に、プロセッサ21は、k番目に生成される補間画像Gintに適用する係数α、βの値を、値k/(M+1)に基づいて決定してもよい。
次に、プロセッサ21は、切り替え元画像GBに含まれるブロックMBbについて、順次に、切り替え先画像GFとの間でブロックマッチングを行うことにより、それぞれの視差ベクトルVdを求める(ステップS43)。プロセッサ21は、例えば、切り替え元画像GBに含まれるブロックMBbの一つを走査順などに基づいて処理対象として選択する。選択したブロックMBbについてのブロックマッチングを行うことにより、プロセッサ21は、切り替え先画像GFにおいて最も類似している領域を検出する。そして、プロセッサ21は、検出した領域の位置を、切り替え先の画像GFにおいて、上述したブロックMBbに対応するブロックの位置を基準として示す視差ベクトルVdを求めてもよい。
次いで、プロセッサ21は、上述した式(1)、(2)を用いて、切り替え元の画像GBおよび切り替え先の画像GFにおいて、それぞれ生成対象のブロックMBに対応する参照画像Bb,Bfの位置を示すベクトルVb,Vfを求める(ステップS44)。なお、ステップS44の処理で、プロセッサ21は、ベクトルVb,Vfを小数精度で求めることが望ましい。
次に、プロセッサ21は、ステップS44で求めたベクトルVb,Vfに基づいて、参照画像Bb,Bfを生成する(ステップS45)。プロセッサ21は、例えば、小数精度で求められたベクトルVb,Vfで示される参照画像Bb,Bfに含まれる各画素Pb(x,y)、Pf(x,y)を、切り替え元画像GBおよび切り替え先画像GFに補間フィルタを適用することによって求めることが望ましい。
このようにして生成した参照画像Bb,Bfに含まれる各画素Pb(x,y)、Pf(x,y)に基づいて、プロセッサ21は、上述した式(3)を用いて、補間画像Gint内のブロックMBに含まれる各画素P(x,y)を生成する(ステップS46)。
次いで、プロセッサ21は、生成対象のブロックMBに含まれる全ての画素の生成が完了したか否かを判定する(ステップS47)。未生成の画素がある場合に(ステップS47の否定判定)、プロセッサ21は、ステップS46の処理に戻って、次の画素を生成する処理を実行する。
ステップS46,S47を繰り返すことにより、生成対象のブロックに含まれる全ての画素の生成が完了したときに(ステップS47の肯定判定)、プロセッサ21は、ステップS48の処理に進む。このステップS48で、プロセッサ21は、補間画像Gintに含まれる全てのブロックMBの生成が完了したか否かを判定する。
未だ生成されていないブロックMBがある場合に(ステップS48の否定判定)、プロセッサ21は、ステップS43の処理に戻って、次のブロックMBを生成する処理を開始する。
そして、補間画像Gintに含まれる全てのブロックMBについて、ステップS43〜ステップS47に示した生成処理を完了したときに(ステップS48の肯定判定)、プロセッサ21は、補間画像Gintの生成処理を終了する。
このようにして、本件開示の動画像撮影装置は、移行期間の経過に伴って、切り替え元画像GBから切り替え先画像GFに次第に近づくような補間画像Gintを生成することができる。これにより、本件開示の動画像撮影装置は、長時間の2次元動画像撮影において、2つの撮像部101L,101Rを切り替える際の視点の変化が、出力画像の変化となって現れることを抑制することができる。したがって、本件開示の動画像撮影装置によれば、2つの撮像部101L,101Rの切り替えながら、視聴者に違和感を覚えさせない長時間の2次元動画像を撮影することができる。