(57)【要約】【課題】  フレームレートが異なる画像ストリームから、合成するフレームの撮像タイミングを最小にした合成画像ストリームを生成するための技術を提供すること。【解決手段】  第１のフレームレートで撮影された第１の画像ストリームのうち、出力フレームレートに基づいて決まるフレームの画像を取得する（第１の取得）。第１のフレームレートとは異なる第２のフレームレートで撮影された第２の画像ストリームのうち、出力フレームレートに基づいて決まるフレームの画像を取得する（第２の取得）。第１の取得で取得したそれぞれのフレームの画像と第２の取得で取得したそれぞれのフレームの画像とを合成して、出力フレームレートの画像ストリームを生成する。【選択図】  図１
2017017448.tif 000002
【特許請求の範囲】
【請求項１】
第１のフレームレートで撮影された第１の画像ストリームのうち、出力フレームレートに基づいて決まるフレームの画像を取得する第１の取得手段と、
前記第１のフレームレートとは異なる第２のフレームレートで撮影された第２の画像ストリームのうち、前記出力フレームレートに基づいて決まるフレームの画像を取得する第２の取得手段と、
前記第１の取得手段が取得したそれぞれのフレームの画像と前記第２の取得手段が取得したそれぞれのフレームの画像とを合成して、前記出力フレームレートの画像ストリームを生成する生成手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記第１の取得手段は、前記第１の画像ストリームにおける各フレームのうち、前記出力フレームレートで規定される出力タイミングに最も近い入力タイミングで入力されたフレームを取得することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第２の取得手段は、前記第２の画像ストリームにおける各フレームのうち、前記出力フレームレートで規定される出力タイミングに最も近い入力タイミングで入力されたフレームを取得することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記第１の取得手段は、前記第１の画像ストリームのうち、前記第１のフレームレートと前記出力フレームレートとの比に応じて決まる間隔のフレームの画像を取得し、
前記第２の取得手段は、前記第２の画像ストリームにおける各フレームのうち、該第１の取得手段が取得したフレームの入力タイミングに最も近い入力タイミングで入力されたフレームを取得することを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記第１の取得手段は、前記第１の画像ストリームにおける各フレームのうち、前記出力フレームレートで規定される出力タイミングに最も近い入力タイミングで中央領域が入力されたフレームを取得し、
前記第２の取得手段は、前記第２の画像ストリームにおける各フレームのうち、該第１の取得手段が取得したフレームの入力タイミングに最も近い入力タイミングで入力されたフレームを取得することを特徴とする請求項１に記載の画像処理装置。
【請求項６】
前記第１の画像ストリームは、ローリングシャッタ方式の撮像装置によって撮像された画像ストリームであることを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記第１の画像ストリームは、前記第２の画像ストリームにおける各フレームの画像に含まれている指標に基づいて生成される画像情報を重畳する対象となる画像のストリームであることを特徴とする請求項１乃至６の何れか１項に記載の画像処理装置。
【請求項８】
更に、
前記生成手段が生成した画像ストリームを、該画像ストリームを再生する装置に対して出力する手段を備えることを特徴とする請求項１乃至７の何れか１項に記載の画像処理装置。
【請求項９】
画像処理装置が行う画像処理方法であって、
前記画像処理装置の第１の取得手段が、第１のフレームレートで撮影された第１の画像ストリームのうち、出力フレームレートに基づいて決まるフレームの画像を取得する第１の取得工程と、
前記画像処理装置の第２の取得手段が、前記第１のフレームレートとは異なる第２のフレームレートで撮影された第２の画像ストリームのうち、前記出力フレームレートに基づいて決まるフレームの画像を取得する第２の取得工程と、
前記画像処理装置の生成手段が、前記第１の取得工程で取得したそれぞれのフレームの画像と前記第２の取得工程で取得したそれぞれのフレームの画像とを合成して、前記出力フレームレートの画像ストリームを生成する生成工程と
を備えることを特徴とする画像処理方法。
【請求項１０】
コンピュータを、請求項１乃至８の何れか１項に記載の画像処理装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像ストリームを合成する技術に関するものである。
【背景技術】
【０００２】
複数の撮像装置で撮像した画像ストリームデータを、所定のフレームレートに変換した後、一つの合成画像ストリームに合成する技術が、例えば特許文献１にて提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５２３０８９２号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＡＲ技術のように、撮像装置を用いて取得した画像からマーカ等の特定の画像を検出し、追加の画像情報を重畳するような用途においては、マーカ検出用の撮像装置には、フレーム内の撮像タイミングが同じになるグローバルシャッタ方式の撮像装置が適する。なお、ＡＲとはＡｕｇｍｅｎｔｅｄ  Ｒｅａｌｉｔｙの略である。しかし、この種の撮像装置はフレームレートを上げるのが難しい。また、表示装置で確認する画像の撮像装置には、安価で高画質、高フレームレートを得られるローリングシャッタ方式の撮像装置が適する。
【０００５】
異なるフレームレートの撮像装置で撮像した画像を、所定のフレームレートに変換した後に一つのフレームに合成すると、合成したフレームの撮像タイミングがそれぞれ異なってしまうことから種々の不都合を発生させる。
【０００６】
例えばグローバルシャッタ方式の撮像装置で撮像したマーカ画像を元に、ローリングシャッタ方式の撮像装置で撮像した画像に追加の画像情報を重畳すると、各撮像装置の撮像タイミングが大きく異なる場合、画像の重畳位置がずれるといった不具合が発生する。
【０００７】
本発明はこのような問題に鑑みてなされたものであり、フレームレートが異なる画像ストリームから、合成するフレームの撮像タイミングを最小にした合成画像ストリームを生成するための技術を提供する。
【課題を解決するための手段】
【０００８】
本発明の一様態は、第１のフレームレートで撮影された第１の画像ストリームのうち、出力フレームレートに基づいて決まるフレームの画像を取得する第１の取得手段と、前記第１のフレームレートとは異なる第２のフレームレートで撮影された第２の画像ストリームのうち、前記出力フレームレートに基づいて決まるフレームの画像を取得する第２の取得手段と、前記第１の取得手段が取得したそれぞれのフレームの画像と前記第２の取得手段が取得したそれぞれのフレームの画像とを合成して、前記出力フレームレートの画像ストリームを生成する生成手段とを備えることを特徴とする。
【発明の効果】
【０００９】
本発明の構成によれば、フレームレートが異なる画像ストリームから、合成するフレームの撮像タイミングを最小にした合成画像ストリームを生成することができる。
【図面の簡単な説明】
【００１０】
【図１】（ａ）はシステムの機能構成例を示すブロック図、（ｂ）はタイミングチャート。
【図２】合成部１０５の構成例を示すブロック図。
【図３】合成部１０５が行う処理のフローチャート。
【図４】第三の画像ストリーム１０６を説明する図。
【図５】合成部１０５の構成例を示すブロック図。
【図６】合成部１０５が行う処理のフローチャート。
【図７】第一の撮像部１０１の撮像タイミングを説明する図。
【図８】画像入力部５０１が行う処理のフローチャート。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施例の１つである。
【００１２】
［第１の実施形態］
本実施形態では、次のような構成を有する画像処理装置の一例について説明する。即ち、この画像処理装置は、第１のフレームレートで撮影された第１の画像ストリームのうち、出力フレームレートに基づいて決まるフレームの画像を取得する（第１の取得）。更にこの画像処理装置は、該第１のフレームレートとは異なる第２のフレームレートで撮影された第２の画像ストリームのうち、上記の出力フレームレートに基づいて決まるフレームの画像を取得する（第２の取得）。そして、この画像処理装置は、第１の取得で取得したそれぞれのフレームの画像と第２の取得で取得したそれぞれのフレームの画像とを合成して、上記の出力フレームレートの画像ストリームを生成する。
【００１３】
先ず、本実施形態に係るシステムの機能構成例について、図１（ａ）のブロック図を用いて説明する。なお、図１（ａ）に示した構成はあくまでも一例に過ぎず、適宜変更／変形が可能である。
【００１４】
第一の撮像部１０１は、ローリングシャッタ方式のＣＭＯＳセンサ等の撮像デバイスであり、第一のフレームレートＦ１（フレーム／秒＝ｆｐｓ）で撮像した第一の画像ストリーム１０３を出力する。以下では、第一の画像ストリーム１０３中の各フレームの画像データをフレームデータＭと呼称する。
【００１５】
第二の撮像部１０２は、グローバルシャッタ方式のＣＭＯＳセンサ等の撮像デバイスであり、第二のフレームレートＦ２（フレーム／秒＝ｆｐｓ）で撮像した第二の画像ストリーム１０４を出力する。以下では、第二の画像ストリーム１０４中の各フレームの画像データをフレームデータＳと呼称する。なお、Ｆ２≠Ｆ１である。
【００１６】
合成部１０５は、後述する合成処理により、第一の画像ストリーム１０３と第二の画像ストリーム１０４とに基づく第三の画像ストリーム１０６を生成する。なお、第三の画像ストリーム１０６のフレームレートはＦ３である。
【００１７】
送信機１０７は、例えば無線や有線で通信を行なう通信機であり、合成部１０５が生成した第三の画像ストリーム１０６を出力する。本実施形態では、送信機１０７の送信先は、後述する受信機１０８であるものとする。もちろん、システムの構成によっては、送信機１０７の送信先は、受信機１０８に限るものではなく、例えば、他の機器であっても構わない。
【００１８】
このように、第一の画像ストリーム１０３と第二の画像ストリーム１０４とを個別に送信するのではなく、それぞれを合成した１つの第三の画像ストリーム１０６を送信することで、送信機及び受信機を１つとすることができる。
【００１９】
受信機１０８は、送信機１０７によって送信された第三の画像ストリーム１０６を受信し、該受信した第三の画像ストリーム１０６を後段の分離部１０９に対して送出する。
【００２０】
分離部１０９は、第三の画像ストリーム１０６から、第一の撮像部１０１によって撮像されたフレームデータＭの集合である第一の画像ストリーム１１０を取り出し、該取り出した第一の画像ストリーム１１０を、後段の画像重畳部１１３に対して送出する。また分離部１０９は、第三の画像ストリーム１０６から、第二の撮像部１０２によって撮像されたフレームデータＳの集合である第二の画像ストリーム１１１を取り出し、該取り出した第二の画像ストリーム１１１を後段の重畳画像生成部１１２に対して送出する。
【００２１】
重畳画像生成部１１２は、第一の画像ストリーム１１０に重畳する画像情報（重畳画像）１１６を、第二の画像ストリーム１１１を用いて生成する。例えば、第二の画像ストリーム１１１が、現実空間中の自然特徴やマーカ等の指標を含む画像を撮像した画像ストリームである場合、重畳画像生成部１１２は、該第二の画像ストリーム１１１から指標を検出する。そして重畳画像生成部１１２は、該検出した指標を用いて第一の撮像部１０１や第二の撮像部１０２といった視点の位置姿勢を算出し、該視点から見た仮想物体の画像を、重畳画像１１６として生成する。もちろん、重畳画像１１６は、文字列等の非画像であっても構わない。
【００２２】
画像重畳部１１３は、第一の画像ストリーム１１０上に、重畳画像１１６を重畳した画像ストリームを生成し、該生成した画像ストリームを、表示部１１４に対して送出する。表示部１１４は、複数人で共有して画像や文字を閲覧するための据え置き型のモニタ装置であっても構わないし、ＨＭＤ（ヘッドマウントディスプレイ）等の頭部装着型表示装置であっても構わないし、ハンドヘルド型の表示装置であっても構わない。また、表示部１１４は、スマートフォンなどの携帯端末装置であっても構わない。
【００２３】
第一の画像ストリーム１０３中の各フレームの撮像タイミング、第二の画像ストリーム１０４中の各フレームの撮像タイミング、について、図１（ｂ）のタイミングチャートを用いて説明する。図１（ｂ）には、時刻Ｔｉｍｅ＝０〜Ｔの間に、第一の画像ストリーム１０３は１０フレーム（Ｍ１〜Ｍ１０）、第二の画像ストリーム１０４は９フレーム（Ｓ１〜Ｓ９）撮像されている例が示されている。第一の画像ストリーム１０３及び第二の画像ストリーム１０４の各フレームの撮像タイミングは矢印１２０で示されている。図１（ｂ）から、第一の画像ストリーム１０３のフレームレートと第二の画像ストリーム１０４のフレームレートとは異なるために、第一の画像ストリーム１０３と第二の画像ストリーム１０４との間で各フレームの撮像タイミングにはずれが生じることが分かる。本実施形態では、第一の画像ストリーム１０３及び第二の画像ストリーム１０４のそれぞれからフレームレートＦ３に基づいて選択したフレームデータＭとフレームデータＳとを含む第三の画像ストリーム１０６を生成して出力する。なお、以降の説明において「時刻」とは、適当なタイミング（例えばシステムの起動開始時、合成部１０５による処理開始時など）を基準（時刻＝０）とするもので、この基準以降の経過時間であるものとする。
【００２４】
次に、合成部１０５の構成例について、図２のブロック図を用いて説明する。
【００２５】
画像入力部２０１Ｍは、第一の画像ストリーム１０３の各フレームデータＭを受信するたびに、該受信の時刻Ｔｉｎ１を合成フレーム決定部２０５に対して出力すると共に、該受信したフレームデータＭをフレームバッファ２０４に対して送出する。画像入力部２０１Ｍが行う処理について、同処理のフローチャートを示す図３（ａ）を用いて説明する。なお、図３（ａ）のフローチャートは、１フレーム分のフレームデータＭについて画像入力部２０１Ｍが行う処理のフローチャートである。然るに、実際には、画像入力部２０１Ｍは、図３（ａ）のフローチャートに従った処理を、第一の画像ストリーム１０３の各フレームデータＭについて行うことになる。
【００２６】
ステップＳ３００２では、画像入力部２０１Ｍは、フレームデータＭを受信したか否かを判断する。この判断の結果、受信した場合には、処理はステップＳ３００３に進み、受信していない場合には、処理はステップＳ３００２で待機することになる。
【００２７】
ステップＳ３００３では、画像入力部２０１Ｍは、フレームデータＭを受信したタイミング（入力タイミング）として、該フレームデータＭの受信時刻Ｔｉｎ１を、後段の合成フレーム決定部２０５に対して出力する。例えば、画像入力部２０１Ｍは、自身が管理するタイマを用いて現在時刻を計時し、フレームデータＭを受信した時点で計時していた現在時刻Ｔｃを、受信時刻Ｔｉｎ１として出力する。以降では、この受信時刻Ｔｉｎ１をもって、フレームデータＭの撮像タイミングとするが、第一の撮像部１０１内でフレームデータＭを撮像した時刻を計時し、該計時した時刻をＴｉｎ１として取得しても構わない。
【００２８】
ステップＳ３００５では、画像入力部２０１Ｍは、受信したフレームデータＭを、フレームバッファ２０４に転送する。
【００２９】
ステップＳ３００６では、画像入力部２０１Ｍは、受信したフレームデータＭのフレームバッファ２０４への転送が完了したか否か（受信したフレームデータＭの全てのデータをフレームバッファ２０４に転送したか否か）を判断する。この判断の結果、完了した場合には、図３（ａ）のフローチャートに従った処理は完了し、未だ完了していない場合には、処理はステップＳ３００５に戻る。
【００３０】
画像入力部２０１Ｓは、第二の画像ストリーム１０４の各フレームデータＳを受信するたびに、該受信の時刻Ｔｉｎ２を合成フレーム決定部２０５に対して出力すると共に、該受信したフレームデータＳをフレームバッファ２０４に対して送出する。画像入力部２０１Ｓの動作については、上記の図３（ａ）のフローチャートに従った処理の説明において、フレームデータＭをフレームデータＳ、受信時刻Ｔｉｎ１を受信時刻Ｔｉｎ２と読み替えれば良く、実質的な処理の内容は同様である。
【００３１】
フレームバッファ２０４が有するメモリコントローラ２０２は、画像入力部２０１ＭからフレームデータＭを受けると、該受けたフレームデータＭをメモリ２０３に格納する。同様に、メモリコントローラ２０２は、画像入力部２０１ＳからフレームデータＳを受けると、該受けたフレームデータＳをメモリ２０３に格納する。また、メモリコントローラ２０２は、画像出力部２０８から要求されたフレームデータＭ／フレームデータＳをメモリ２０３から読み出して、画像出力部２０８に対して送出する。
【００３２】
画像出力部２０８は、合成フレーム決定部２０５にフレームレートＦ３に基づく情報（Ｔｏｕｔ１，２）を与えることで該合成フレーム決定部２０５から得た情報（Ｆｏｕｔ１，２）に対応するフレームデータＭ、Ｓをフレームバッファ２０４から取得する。そして画像出力部２０８は、該取得したフレームデータＭ、Ｓを１つの合成フレームデータに合成し、それぞれの合成フレームデータを第三の画像ストリーム１０６として、フレームレートＦ３で送出する。
【００３３】
画像出力部２０８が行う処理について、同処理のフローチャートを示す図３（ｂ）を用いて説明する。なお、図３（ｂ）のフローチャートは、１フレーム分の合成フレームデータについて画像出力部２０８が行う処理のフローチャートである。然るに、実際には、画像出力部２０８は、図３（ｂ）のフローチャートに従った処理を、第三の画像ストリーム１０６の各フレームについて行うことになる。
【００３４】
ステップＳ３１０２において画像出力部２０８は、合成フレームデータを出力する出力時刻Ｔｏｕｔ１（出力タイミング）を決定する。第三の画像ストリーム１０６のフレームレートはＦ３であるから、最初のフレームにおける合成フレームデータの出力時刻Ｔｏｕｔ１＝１／Ｆ３となる。以降、合成フレームデータの出力時刻Ｔｏｕｔ１＝２／Ｆ３、３／Ｆ３、…となり、Ｎ番目のフレームにおける合成フレームデータの出力時刻Ｔｏｕｔ１＝Ｎ／Ｆ３となる。このように、出力時刻Ｔｏｕｔ１は、フレームレートＦ３によって規定される。
【００３５】
ステップＳ３１０３において画像出力部２０８は、合成フレーム決定部２０５に対して、ステップＳ３１０２において決定した出力時刻Ｔｏｕｔ１を出力する。合成フレーム決定部２０５は、受信時刻Ｔｉｎ１及び出力時刻Ｔｏｕｔ１に応じて、合成フレームデータに含めるべきフレームデータＭを特定するための情報Ｆｏｕｔ１を決定して出力する。然るに、ステップＳ３１０４において画像出力部２０８は、Ｆｏｕｔ１を合成フレーム決定部２０５から取得する。Ｆｏｕｔ１は、例えば、メモリ２０３におけるフレームデータＭのアドレスである。
【００３６】
ステップＳ３１０５において画像出力部２０８は、フレームバッファ２０４に対して、Ｆｏｕｔ１を送出する。メモリコントローラ２０２は、メモリ２０３からＦｏｕｔ１で特定されるフレームデータＭを読み出して画像出力部２０８に対して送出するので、画像出力部２０８は、メモリコントローラ２０２から送出されたフレームデータＭを取得する。
【００３７】
ステップＳ３１０８において画像出力部２０８は、合成フレームデータを出力する出力時刻Ｔｏｕｔ２を決定する。ここではＴｏｕｔ１＝Ｔｏｕｔ２とする。
【００３８】
ステップＳ３１０９において画像出力部２０８は、合成フレーム決定部２０５に対して、ステップＳ３１０８において決定した出力時刻Ｔｏｕｔ２を出力する。合成フレーム決定部２０５は、受信時刻Ｔｉｎ２及び出力時刻Ｔｏｕｔ２に応じて、合成フレームデータに含めるべきフレームデータＳを特定するための情報Ｆｏｕｔ２を決定して出力する。然るに、ステップＳ３１１０において画像出力部２０８は、Ｆｏｕｔ２を合成フレーム決定部２０５から取得する。Ｆｏｕｔ２は、例えば、メモリ２０３におけるフレームデータＳのアドレスである。
【００３９】
ステップＳ３１１１において画像出力部２０８は、フレームバッファ２０４に対して、Ｆｏｕｔ２を送出する。メモリコントローラ２０２は、メモリ２０３からＦｏｕｔ２で特定されるフレームデータＳを読み出して画像出力部２０８に対して送出するので、画像出力部２０８は、メモリコントローラ２０２から送出されたフレームデータＳを取得する。
【００４０】
そしてステップＳ３１１２において画像出力部２０８は、ステップＳ３１０５において取得したフレームデータＭとステップＳ３１１１において取得したフレームデータＳとを１つの合成フレームデータとして出力する。上記の通り図３（ｂ）のフローチャートに従った処理は、それぞれの合成フレームデータについて行うものであり、第三の画像ストリーム１０６のフレームレートはＦ３であるから、ステップＳ３１１２における処理は、１／Ｆ３の時間間隔で行われることになる。
【００４１】
次に、合成フレーム決定部２０５が行う処理について、図３（ｃ）のフローチャートを用いて説明する。なお、図３（ｃ）のフローチャートは、受信時刻Ｔｉｎ１、受信時刻Ｔｉｎ２、出力時刻Ｔｏｕｔ１、出力時刻Ｔｏｕｔ２、の何れかの入力を検知した場合に行われる１回分の処理のフローチャートである。然るに、実際には、合成フレーム決定部２０５は、図３（ｃ）のフローチャートに従った処理を、受信時刻Ｔｉｎ１、受信時刻Ｔｉｎ２、出力時刻Ｔｏｕｔ１、出力時刻Ｔｏｕｔ２、の何れかの入力を検知するたびに行うことになる。
【００４２】
ステップＳ３２０２では、合成フレーム決定部２０５は、画像入力部２０１Ｍから受信時刻Ｔｉｎ１が入力されたか否かを判断する。この判断の結果、画像入力部２０１Ｍから受信時刻Ｔｉｎ１が入力された場合には、処理はステップＳ３２０３に進み、入力されていない場合には、処理はステップＳ３２０４に進む。
【００４３】
ステップＳ３２０３では、合成フレーム決定部２０５は、次のような動作を行う。即ち、画像入力部２０１Ｍから入力された受信時刻Ｔｉｎ１と、画像入力部２０１Ｍが該受信時刻Ｔｉｎ１にて受信したフレームデータＭのメモリ２０３における格納アドレスと、をメモリ２９０に格納する。
【００４４】
ステップＳ３２０４では、合成フレーム決定部２０５は、画像入力部２０１Ｓから受信時刻Ｔｉｎ２が入力されたか否かを判断する。この判断の結果、画像入力部２０１Ｓから受信時刻Ｔｉｎ２が入力された場合には、処理はステップＳ３２０５に進み、入力されていない場合には、処理はステップＳ３２０６に進む。
【００４５】
ステップＳ３２０５では、合成フレーム決定部２０５は、次のような動作を行う。即ち、画像入力部２０１Ｓから入力された受信時刻Ｔｉｎ２と、画像入力部２０１Ｓが該受信時刻Ｔｉｎ２にて受信したフレームデータＳのメモリ２０３における格納アドレスと、をメモリ２９０に格納する。
【００４６】
ステップＳ３２０６では、合成フレーム決定部２０５は、画像出力部２０８から出力時刻Ｔｏｕｔ１を受信したか否かを判断する。この判断の結果、画像出力部２０８から出力時刻Ｔｏｕｔ１を受信した場合には、処理はステップＳ３２０７に進み、受信していない場合には、処理はステップＳ３２０９に進む。
【００４７】
ステップＳ３２０７では、合成フレーム決定部２０５は、メモリ２９０に格納されているそれぞれの受信時刻Ｔｉｎ１のうち、出力時刻Ｔｏｕｔ１に最も近い受信時刻Ｔｎｅａｒ１を特定する。この特定処理により、該特定した受信時刻Ｔｎｅａｒ１と共にステップＳ３２０３でメモリ２９０に格納した格納アドレスを特定することができる。
【００４８】
そしてステップＳ３２０８では、合成フレーム決定部２０５は、ステップＳ３２０７において特定した受信時刻Ｔｎｅａｒ１と共にステップＳ３２０３でメモリ２９０に格納した格納アドレスをＦｏｕｔ１として、画像出力部２０８に対して送出する。
【００４９】
ステップＳ３２０９では、合成フレーム決定部２０５は、画像出力部２０８から出力時刻Ｔｏｕｔ２を受信したか否かを判断する。この判断の結果、画像出力部２０８から出力時刻Ｔｏｕｔ２を受信した場合には、処理はステップＳ３２１０に進み、受信していない場合には、図３（ｃ）のフローチャートに従った処理は完了する。
【００５０】
ステップＳ３２１０では、合成フレーム決定部２０５は、メモリ２９０に格納されているそれぞれの受信時刻Ｔｉｎ２のうち、出力時刻Ｔｏｕｔ２に最も近い受信時刻Ｔｎｅａｒ２を特定する。この特定処理により、該特定した受信時刻Ｔｎｅａｒ２と共にステップＳ３２０５でメモリ２９０に格納した格納アドレスを特定することができる。
【００５１】
そしてステップＳ３２１１では、合成フレーム決定部２０５は、ステップＳ３２１０において特定した受信時刻Ｔｎｅａｒ２と共にステップＳ３２０５でメモリ２９０に格納した格納アドレスをＦｏｕｔ２として、画像出力部２０８に対して送出する。
【００５２】
第三の画像ストリーム１０６の各フレームの出力時刻Ｔｏｕｔ１（Ｔｏｕｔ２）と、第一の画像ストリーム１０３及び第二の画像ストリーム１０４と、の関係を図１（ｂ）を用いて説明する。
【００５３】
第三の画像ストリーム１０６におけるそれぞれのフレームの出力時刻Ｔｏｕｔ１は矢印１２９で示しており、第三の画像ストリーム１０６のフレームレートはＦ３であるから、矢印１２９の間の時間間隔は１／Ｆ３である。例えば、左端の矢印１２９に対応する出力時刻Ｔｏｕｔ１（＝ｔ０とする）に対応するフレームデータＭは、時刻ｔ０に最も近い受信時刻Ｔｉｎ１であるフレームデータＭ２（２フレーム目のフレームデータＭ）となる。また、時刻ｔ０に対応するフレームデータＳは、時刻ｔ０に最も近い受信時刻Ｔｉｎ２であるフレームデータＳ２（２フレーム目のフレームデータＳ）となる。然るに、この場合、合成フレーム決定部２０５は、Ｔｏｕｔ１としてｔ０を受けると、Ｆｏｕｔ１としてフレームデータＭ２の格納アドレスを返し、Ｔｏｕｔ２としてｔ０を受けると、Ｆｏｕｔ２としてフレームデータＳ２の格納アドレスを返す。以下、同様にすれば、それぞれの矢印１２９で示す出力時刻Ｔｏｕｔ１に対応するフレームデータＭ及びフレームデータＳは、斜線で示したものとなる。その結果、第三の画像ストリーム１０６は、図４に示す如く、図１（ｂ）において斜線で示したフレームデータＭ２，Ｍ４，Ｍ６，Ｍ８，Ｍ１０と、フレームデータＳ２，Ｓ４，Ｓ５，Ｓ７，Ｓ９と、を合成したものとなる。
【００５４】
このように、本実施形態によれば、各々の撮像装置が異なるフレームレートで撮像を行っても、それぞれの撮像装置による画像ストリームを合成する場合に、合成するフレームの撮像タイミングを最小にすることができる。
【００５５】
［第２の実施形態］
本実施形態では、フレームレートＦ３が、第一のフレームレートＦ１の１／ｎ倍（ｎは自然数）である場合について説明する。このｎはいうまでもなく、第１のフレームレートＦ１とフレームレートＦ３との比を表している。このような場合、合成部１０５の構成は第１の実施形態よりも簡単となる。以下では第１の実施形態との差分について重点的に説明し、以下で特に触れない限りは、第１の実施形態と同様であるものとする。
【００５６】
先ず、本実施形態に係る合成部１０５の構成について、図５のブロック図を用いて説明する。図５において図２に示した機能部と同じ機能部には同じ参照番号を付しており、該機能部に係る説明は省略する。
【００５７】
画像入力部５０１は、第一の画像ストリーム１０３の各フレームデータＭを受信するたびに、該受信の時刻Ｔｉｎ１と、該受信したフレームデータＭと、を画像出力部５０３に対して出力する。画像入力部５０１が行う処理について、同処理のフローチャートを示す図６（ａ）を用いて説明する。なお、図６（ａ）のフローチャートは、１フレーム分のフレームデータＭについて画像入力部５０１が行う処理のフローチャートである。然るに、実際には、画像入力部５０１は、図６（ａ）のフローチャートに従った処理を、第一の画像ストリーム１０３の各フレームデータＭについて行うことになる。
【００５８】
ステップＳ６００２では、画像入力部５０１は、フレームデータＭを受信したか否かを判断する。この判断の結果、受信した場合には、処理はステップＳ６００３に進み、受信していない場合には、処理はステップＳ６００２で待機することになる。
【００５９】
ステップＳ６００３では、画像入力部５０１は、フレームデータＭを受信したタイミングとして、該フレームデータＭの受信時刻Ｔｉｎ１を、後段の画像出力部５０３に対して出力する。画像入力部５０１が受信時刻Ｔｉｎ１を取得する方法については、第１の実施形態で説明した画像入力部２０１Ｍによる受信時刻Ｔｉｎ１の取得方法と同様である。
【００６０】
ステップＳ６００４では、画像入力部５０１は、受信したフレームデータＭを、後段の画像出力部５０３に転送する。
【００６１】
ステップＳ６００５では、画像入力部５０１は、受信したフレームデータＭの画像出力部５０３への転送が完了したか否か（受信したフレームデータＭの全てのデータを画像出力部５０３に転送したか否か）を判断する。この判断の結果、完了した場合には、図６（ａ）のフローチャートに従った処理は完了し、未だ完了していない場合には、処理はステップＳ６００４に戻る。
【００６２】
画像出力部５０３は、合成フレーム決定部５０２にフレームレートＦ３に基づく情報（Ｔｏｕｔ２）を与えることで該合成フレーム決定部２０５から得た情報（Ｆｏｕｔ２）に対応するフレームデータＳをフレームバッファ２０４から取得する。そして画像出力部５０３は、該取得したフレームデータＳと、画像入力部５０１から受けたフレームデータＭのうちフレームレートＦ３に応じたフレームデータＭと、を１つの合成フレームデータに合成する。そして画像出力部５０３は、それぞれの合成フレームデータを第三の画像ストリーム１０６として、フレームレートＦ３で送出する。
【００６３】
画像出力部５０３が行う処理について、同処理のフローチャートを示す図６（ｂ）を用いて説明する。なお、図６（ｂ）のフローチャートは、１フレーム分の合成フレームデータについて画像出力部５０３が行う処理のフローチャートである。然るに、実際には、画像出力部５０３は、図６（ｂ）のフローチャートに従った処理を、第三の画像ストリーム１０６の各フレームについて行うことになる。
【００６４】
ステップＳ６１０２では、画像出力部５０３は、画像入力部５０１からフレームデータＭを受信したか否かを判断する。この判断の結果、受信した場合には、処理はステップＳ６１０３に進み、受信していない場合には、処理はステップＳ６１０２で待機することになる。
【００６５】
ステップＳ６１０３では、画像出力部５０３は、ステップＳ６１０２で受信したフレームデータＭは合成フレームデータに含めるべきフレームデータであるのか（出力対象であるのか）否かを判断する。上記の通り、Ｆ３＝Ｆ１／ｎであるから、画像入力部５０１から第一のフレームレートＦ１で受信したフレームデータＭをフレームレートＦ３で出力するためには、画像入力部５０１から受信したフレームデータＭをｎフレームおきに出力すればよいことになる。然るに本ステップで画像出力部５０３は、画像入力部５０１からｋｎフレーム目（ｋは１以上の整数）のフレームデータＭを受信した場合には、該ｋｎフレーム目のフレームデータＭは出力対象であるから、出力対象となるフレームデータＭを受信したと判断する。一方、画像出力部５０３は、画像入力部５０１からｋｎフレーム目のフレームデータＭ以外のフレームデータＭを受信した場合には、出力対象となるフレームデータＭは受信していないと判断する。
【００６６】
ステップＳ６１０２で受信したフレームデータＭは合成フレームデータに含めるべきフレームデータである（出力対象である）と判断された場合は、処理はステップＳ６１０４に進み、出力対象ではないと判断された場合は、処理はステップＳ６１０２に戻る。
【００６７】
ステップＳ６１０４では、画像出力部５０３は、出力対象となるフレームデータＭと共に画像入力部５０１から出力された受信時刻Ｔｉｎ１を取得する。
【００６８】
ステップＳ６１０８では、画像出力部５０３は、合成フレームデータを出力する出力時刻Ｔｏｕｔ２（Ｔｏｕｔ２＝Ｔｉｎ１）を、合成フレーム決定部５０２に対して出力する。合成フレーム決定部２０５は、受信時刻Ｔｉｎ２及び出力時刻Ｔｏｕｔ２に応じて、合成フレームデータに含めるべきフレームデータＳを特定するための情報Ｆｏｕｔ２を決定して出力する。然るに、ステップＳ６１０９において画像出力部５０３は、Ｆｏｕｔ２を合成フレーム決定部５０２から取得する。
【００６９】
ステップＳ６１１０において画像出力部５０３は、フレームバッファ２０４に対して、Ｆｏｕｔ２を送出する。メモリコントローラ２０２は、メモリ２０３からＦｏｕｔ２で特定されるフレームデータＳを読み出して画像出力部５０３に対して送出するので、画像出力部５０３は、メモリコントローラ２０２から送出されたフレームデータＳを取得する。
【００７０】
ステップＳ６１１１では画像出力部５０３は、ステップＳ６１０４で取得したフレームデータＭ（ｋｎフレーム目のフレームデータＭ）と、ステップＳ６１１１で取得したフレームデータＳと、を１つの合成フレームデータとして出力する。上記の通り図６（ｂ）のフローチャートに従った処理は、それぞれの合成フレームデータについて行うものであり、第三の画像ストリーム１０６のフレームレートはＦ３であるから、ステップＳ６１１１における処理は、１／Ｆ３の時間間隔で行われることになる。
【００７１】
次に、合成フレーム決定部５０２が行う処理について、図６（ｃ）のフローチャートを用いて説明する。なお、図６（ｃ）のフローチャートは、受信時刻Ｔｉｎ２、出力時刻Ｔｏｕｔ２、の何れかの入力を検知した場合に行われる１回分の処理のフローチャートである。然るに、実際には、合成フレーム決定部５０２は、図６（ｃ）のフローチャートに従った処理を、受信時刻Ｔｉｎ２、出力時刻Ｔｏｕｔ２の何れかの入力を検知するたびに行うことになる。
【００７２】
ステップＳ６２０２では、合成フレーム決定部５０２は、画像入力部２０１Ｓから受信時刻Ｔｉｎ２が入力されたか否かを判断する。この判断の結果、画像入力部２０１Ｓから受信時刻Ｔｉｎ２が入力された場合には、処理はステップＳ６２０３に進み、入力されていない場合には、処理はステップＳ６２０４に進む。
【００７３】
ステップＳ６２０３で合成フレーム決定部５０２は、次のような動作を行う。即ち、画像入力部２０１Ｓから入力された受信時刻Ｔｉｎ２と、画像入力部２０１Ｓが該受信時刻Ｔｉｎ２にて受信したフレームデータＳのメモリ２０３における格納アドレスと、を自身が管理する不図示のメモリに格納する。
【００７４】
ステップＳ６２０４では、合成フレーム決定部５０２は、画像出力部５０３から出力時刻Ｔｏｕｔ２を受信したか否かを判断する。この判断の結果、画像出力部５０３から出力時刻Ｔｏｕｔ２を受信した場合には、処理はステップＳ６２０５に進み、受信していない場合には、図６（ｃ）のフローチャートに従った処理は完了する。
【００７５】
ステップＳ６２０５では、合成フレーム決定部５０２は、ステップＳ６２０３においてメモリに格納されたそれぞれの受信時刻Ｔｉｎ２のうち、出力時刻Ｔｏｕｔ２に最も近い受信時刻Ｔｎｅａｒ２を特定する。この特定処理により、該特定した受信時刻Ｔｎｅａｒ２と共にステップＳ６２０３でメモリに格納した格納アドレスを特定することができる。
【００７６】
そしてステップＳ６２０６では、合成フレーム決定部５０２は、ステップＳ６２０５において特定した受信時刻Ｔｎｅａｒ２と共にステップＳ６２０３でメモリに格納した格納アドレスをＦｏｕｔ２として、画像出力部５０３に対して送出する。
【００７７】
［第３の実施形態］
第１，２の実施形態では、第一の撮像部１０１は、１つのフレームのフレームデータＭを１回の撮像でもって取得する例を説明したが、実際は、ローリングシャッタ方式の撮像では、１つのフレームのフレームデータＭを複数回の撮像でもって取得する。本実施形態では、第一の撮像部１０１が、１つのフレームのフレームデータＭを複数回の撮像でもって取得するケースについて説明する。以下では、第２の実施形態との差分について重点的に説明し、以下で特に触れない限りは、第２の実施形態と同様であるものとする。
【００７８】
本実施形態に係る第一の撮像部１０１が１つのフレームのフレームデータＭを撮像するための撮像タイミングについて、図７（ａ）を用いて説明する。
【００７９】
Ｍ１は、１つのフレームのフレームデータＭの全体領域を表しており、Ｍ１１，Ｍ１２，Ｍ１３，Ｍ１４はそれぞれ、全体領域Ｍ１を４つの領域に分割した場合のそれぞれの分割領域を表している。以下では説明を簡単にするために、全体領域Ｍ１を縦方向に４分割したうちの左端の分割領域をＭ１１、分割領域Ｍ１１の右側に隣接する分割領域をＭ１２、右端の分割領域をＭ１４、分割領域Ｍ１４の左側に隣接する分割領域をＭ１３とする。
【００８０】
図７（ａ）では、撮像タイミングＴｉｍｅ＝０において分割領域Ｍ１１の撮像を開始し、撮像タイミングＴｉｍｅ＝ｔ１までに分割領域Ｍ１１の撮像を完了させている。また、撮像タイミングＴｉｍｅ＝ｔ１において分割領域Ｍ１２の撮像を開始し、撮像タイミングＴｉｍｅ＝ｔ２までに分割領域Ｍ１２の撮像を完了させている。また、撮像タイミングＴｉｍｅ＝ｔ２において分割領域Ｍ１３の撮像を開始し、撮像タイミングＴｉｍｅ＝ｔ３までに分割領域Ｍ１３の撮像を完了させている。また、撮像タイミングＴｉｍｅ＝ｔ３において分割領域Ｍ１４の撮像を開始し、撮像タイミングＴｉｍｅ＝ｔ４までに分割領域Ｍ１４の撮像を完了させている。なお、全体領域Ｍ１において中央部分は、分割領域Ｍ１２の右側の領域と分割領域Ｍ１３の左側の領域との合計領域であり、その撮像期間の中央はおおよそｔ２である。撮像したフレームデータを、表示部１１４にて観察する場合、一般にフレームの中央部を観察する割合が多い。そこで、本実施形態では、フレームデータＭを分割領域毎に受信する場合には、中央領域を受信した時刻（図７（ａ）の場合はｔ２）を、該フレームデータＭの受信時刻Ｔｉｎ１として取得する。
【００８１】
画像入力部５０１は、第一の画像ストリーム１０３の各フレームデータＭを受信する場合、該フレームデータＭを分割領域毎に受信して画像出力部５０３に送出すると共に、中央領域を受信した時刻を受信時刻Ｔｉｎ１として画像出力部５０３に対して送出する。画像入力部５０１が行う処理について、同処理のフローチャートを示す図８を用いて説明する。なお、図８のフローチャートは、１フレーム分のフレームデータＭについて画像入力部５０１が行う処理のフローチャートである。然るに、実際には、画像入力部５０１は、図８のフローチャートに従った処理を、第一の画像ストリーム１０３の各フレームデータＭについて行うことになる。
【００８２】
ステップＳ８０００では、画像入力部５０１は、フレームデータＭにおける最初の分割領域を受信したか否かを判断する。この判断の結果、受信した場合には、処理はステップＳ８００１に進み、受信していない場合には、処理はステップＳ８０００で待機することになる。
【００８３】
ステップＳ８００１では、画像入力部５０１は、受信した分割領域が中央領域であるか否かを判断する。この判断の結果、受信した分割領域が中央領域である場合には、処理はステップＳ８００２に進み、受信した分割領域が中央領域ではない場合には、処理はステップＳ８００３に進む。受信した分割領域が中央領域であるか否かを判断する方法には様々な方法が考え得る。例えば、受信した分割領域に、フレームデータＭにおける該分割領域の位置情報が含まれている場合には、該位置情報がフレームデータＭの中央であるか否かを判断すればよい。また、受信した分割領域に、それぞれの分割領域に付けられた通し番号が含まれている場合には、該番号が最大通し番号の中央値であるのか否かを判断すればよい。
【００８４】
ステップＳ８００２では、画像入力部５０１は、中央領域を受信した時刻Ｔｃを、フレームデータＭの受信時刻Ｔｉｎ１として、後段の画像出力部５０３に対して出力する。
【００８５】
ステップＳ８００３では、画像入力部５０１は、受信した分割領域を、後段の画像出力部５０３に転送する。
【００８６】
ステップＳ８００４では、画像入力部５０１は、フレームデータＭの全ての分割領域の画像出力部５０３への転送が完了したか否かを判断する。この判断の結果、完了した場合には、図８のフローチャートに従った処理は完了し、未だ完了していない場合には、処理はステップＳ８００１に戻る。
【００８７】
このように、本実施形態によれば、例えば、図７（ｂ）に示す如く、第一の画像ストリーム１０３の各フレームについて複数回の撮像（図中細線の矢印）を行う場合には、各フレームの受信時刻をその中央領域の受信時刻（図中太線の矢印）とする。そして、第三の画像ストリーム１０６のフレームレートＦ３がＦ１の半分の値であるとすると、第一の画像ストリーム１０３からは１フレームおきにフレームデータＭ（Ｍ２，Ｍ４，Ｍ６，Ｍ８，Ｍ１０）が出力される。また、第二の画像ストリーム１０４からは、Ｍ２，Ｍ４，Ｍ６，Ｍ８，Ｍ１０のそれぞれの中央領域の受信時刻に最も近いフレームデータＳ（Ｓ２，Ｓ４，Ｓ６，Ｓ８，Ｓ１０）が出力される。
【００８８】
［第４の実施形態］
図１，２，５に示した各機能部の全てをハードウェアで構成しても構わないが、その一部をコンピュータプログラムで構成しても構わない。例えば、画像入力部２０１Ｍ、２０１Ｓ、５０１、合成フレーム決定部２０５、５０２、画像出力部２０８、５０３、分離部１０９、重畳画像生成部１１２、画像重畳部１１３をコンピュータプログラムで実装しても構わない。この場合、これらのコンピュータプログラムは、メモリに格納され、ＣＰＵ等のプロセッサによって実行され、これにより、対応する機能部の機能が実現されることになる。
【００８９】
また、図１では、第一の撮像部１０１、第二の撮像部１０２、合成部１０５、送信機１０７、受信機１０８、分離部１０９、重畳画像生成部１１２、画像重畳部１１３、表示部１１４を有するシステムを示したが、このシステムを２以上の装置で構成しても良い。例えば、合成部１０５及び送信機１０７を有する第１の装置に第一の撮像部１０１及び第二の撮像部１０２を接続し、該第１の装置に、受信機１０８、分離部１０９、重畳画像生成部１１２、画像重畳部１１３、表示部１１４を有する第２の装置を接続する。これにより、第一の撮像部１０１及び第二の撮像部１０２による画像ストリームを合成して出力する第１の装置と、該第１の装置から受信した画像ストリームに基づいて画像再生を行う第２の装置と、で上記のシステムを形成することができる。
【００９０】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００９１】
２０１Ｍ：画像入力部  ２０１Ｓ：画像入力部  ２０５：合成フレーム決定部  ２０８：画像出力部
【図１】
2017017448.tif 000003
【図２】
2017017448.tif 000004
【図３】
2017017448.tif 000005
【図４】
2017017448.tif 000006
【図５】
2017017448.tif 000007
【図６】
2017017448.tif 000008
【図７】
2017017448.tif 000009
【図８】
2017017448.tif 000010