(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0021】
本明細書で開示する実施形態は、複数の撮像センサーを含む機器を用いて立体視画像を生成するためのシステム、方法及び装置を提供する。詳細には、本実施形態は、2つの画像間の垂直方向視差を決定することと、少なくとも1つの補正画像を生成することによって垂直方向視差を補正することと、補正画像に基づいて立体視画像ペアを生成し、表示することとを企図する。これらの実施形態が、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実施され得ることを当業者は認識されよう。
【0022】
以下の説明では、例の十分な理解が得られるように具体的な詳細を与える。但し、例はこれらの具体的な詳細なしに実施され得ることを当業者は理解されよう。例えば、例を不必要な詳細において不明瞭にしないために、電気的構成要素/機器をブロック図で示すことがある。他の事例では、例を更に説明するために、そのような構成要素、他の構造及び技法を詳細に図示することがある。
【0023】
また、例は、フローチャート、流れ図、有限状態図、構造図、又はブロック図として示されるプロセスとして説明されることがあることに留意されたい。フローチャートは動作を逐次プロセスとして説明することがあるが、動作の多くは並行して又は同時に実行され得、プロセスは繰り返され得る。更に、動作の順序は並べ替えられ得る。プロセスは、それの動作が完了したときに終了する。プロセスは、方法、関数、プロシージャ、サブルーチン、サブプログラムなどに対応し得る。プロセスがソフトウェア関数に対応するとき、それの終了は呼出し関数又はメイン関数への関数の復帰に対応する。
【0024】
情報及び信号は、多種多様な技術及び技法のいずれかを使用して表され得ることを当業者は理解されよう。例えば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、及びチップは、電圧、電流、電磁波、磁界又は磁性粒子、光場又は光学粒子、又はそれらの任意の組合せによって表され得る。
【0025】
立体視撮像装置の複数のカメラの相対位置は、角運動の3つの軸とシフトの3つの軸とによって記述され得る。この説明では、x、y、及びz軸上の位置は相対シフトを記述する。角回転は、「ピッチ(pitch)」とも呼ばれる水平(x)軸に関する回転と、「ヨー(yaw)」として知られる垂直y軸に関する回転と、「z」軸に関する回転又は「ロール(roll)」とによって記述され得る。
【0026】
幾つかの軸にわたる複数のセンサーの相対位置の変化は、他のものよりも著しく立体視画像品質に影響を及ぼす。例えば、心理物理学試験は、y軸に沿ったシフト又はピッチ角の変化が知覚画質に最も大きい影響を及ぼすことを確認する。y軸又はピッチ角に沿ったこれらのシフトは垂直方向視差として知られている。垂直方向視差は、例えば、立体視ビデオ又はムービーアプリケーションの場合のように、長期間にわたって閲覧されたとき、吐き気及び頭痛を引き起こし得る。
【0027】
垂直方向視差に対する立体視画像ペア品質の感度と、マルチ撮像センサー機器を正確に較正された状態に維持することの相対的困難とを仮定すれば、垂直方向視差をもつ撮影された画像ペアに対するある程度の許容差を撮像装置に与えることが有利になる。一実施形態は、画像間の垂直方向視差を低減するか又はなくすように立体視画像ペアを動的に調整する画像処理方法である。垂直方向視差を除去又は低減するように画像を動的に調整することによって、立体視画像ペアの品質は正確な機器較正にあまり依存しなくなる。機器の実世界適用においてそのような較正を達成することはしばしば困難であるので、これは特に有利である。
【0028】
図1Aに、撮像センサー115及び116にリンクされたプロセッサ120を含む構成要素のセットを有する機器100のハイレベルブロック図を示す。作業メモリ105、記憶装置110、電子表示器125、及びメモリ130もプロセッサ120と通信している。
【0029】
機器100は、セルフォン、デジタルカメラ、携帯情報端末、タブレットコンピュータなどであり得る。機器100はまた、デスクトップパーソナルコンピュータ、ビデオ会議局など、より固定の機器であり得る。機器100上で、複数のアプリケーションがユーザにとって利用可能であり得る。これらのアプリケーションは、従来の写真アプリケーション、ハイダイナミックレンジ撮像、パノラマビデオ、あるいは3D画像又は3Dビデオを生成する立体視撮像を含み得る。
【0030】
プロセッサ120は、汎用処理ユニット、又は撮像アプリケーションのために特別に設計されたプロセッサであり得る。図示のように、プロセッサ120は、メモリ130と作業メモリ105とに接続される。図示の実施形態では、メモリ130は、撮像センサー制御モジュール135と、視差決定モジュール140と、シフト及びトリミングモジュール155と、符号化モジュール160と、撮影制御モジュール170と、オペレーティングシステム175とを記憶する。これらのモジュールは、様々な画像処理タスクと機器管理タスクとを実行するようにプロセッサを構成する命令を含む。作業メモリ105は、メモリ130のモジュール中に含まれているプロセッサ命令の作業セットを記憶するためにプロセッサ120によって使用され得る。代替的に、作業メモリ105はまた、機器100の動作中に作成された動的データを記憶するためにプロセッサ120によって使用され得る。
【0031】
上述のように、プロセッサは、メモリに記憶された幾つかのモジュールによって構成される。撮像センサー制御モジュール135は、撮像センサー115及び116の焦点位置を調整するようにプロセッサ120を構成する命令を含む。撮像センサー制御モジュール135はまた、撮像センサー115及び116を用いて画像を撮影するようにプロセッサ120を構成する命令を含む。従って、画像撮影制御モジュール135、撮像センサー115又は116、及び作業メモリ105とともに、プロセッサ120は、撮像センサーを使用して画像を撮影するための1つの手段を表す。撮像センサーは入力機器と見なされ得るので、画像撮影制御モジュール135、撮像センサー115又は116、及び作業メモリ105とともに、プロセッサ120はまた、入力機器を用いて画像を撮影するための1つの手段を表す。
【0032】
視差決定モジュール140は、撮像センサー115及び116によって撮影された2つの画像間の垂直方向視差を決定し、場合によってはなくすようにプロセッサ120を構成する命令を与える。従って、プロセッサ120及び作業メモリ105とともに、視差決定モジュール内の命令は、第1の画像と第2の画像との間の垂直方向視差を決定するための1つの手段を表す。
【0033】
シフト及びトリミングモジュール155は、2つの画像間の垂直方向視差を補正するために第1の画像と第2の画像とを互いに関してシフトするようにプロセッサ120を構成し得る命令を含む。シフト及びトリミングモジュール155はまた、2つの画像間の一貫した位置合わせを達成するために画像1及び/又は画像2をトリミングするための命令を含み得る。従って、プロセッサ120及びメモリ105とともに、シフト及びトリミングモジュール155中に含まれる命令は、2つの画像間の垂直方向視差を補正するための1つの手段を表す。
【0034】
符号化モジュール160は、撮像センサー115及び116によって撮影された画像を立体視画像に符号化するようにプロセッサを構成する命令を含む。従って、符号化モジュール160内に含まれている命令は、第1の画像と第2の画像とに基づいて立体視画像を生成するための1つの手段を表す。
【0035】
撮影制御モジュール170は、機器100の全体的な画像処理機能を制御する命令を含み得る。例えば、撮影制御モジュール170は、撮像センサー115又は116を使用して第1及び第2の画像を撮影するようにプロセッサ120を構成するために撮像制御モジュール135中のサブルーチンを呼び出す命令を含み得る。撮影制御モジュール170は、次いで、2つの画像間の垂直方向視差を決定するために視差決定モジュール140を呼び出し得る。撮影制御モジュールは、次いで、撮像センサー115又は撮像センサー116によって撮影された画像を垂直方向に位置合わせするために、それらの画像をシフト及びトリミングするためにシフト及びトリミングモジュール155を呼び出し得る。撮影制御モジュール170は、次いで、撮像センサー115及び撮像センサー116によって撮影され、シフト及びトリミングモジュール160によって調整された2つの画像を立体視画像ペアに符号化するために符号化モジュール160を呼び出し得る。幾つかの実施形態では、符号化モジュール160又は撮影制御モジュール170は、立体視画像ペアをデータ記憶装置110に記憶するようにプロセッサ120を構成する命令を含み得る。
【0036】
幾つかの他の実施形態では、撮影制御モジュール170は、表示器125上にデータを表示するようにプロセッサを構成する命令を含み得る。従って、撮影制御モジュール内の命令、プロセッサ120などのプロセッサ、及び作業メモリ105などのメモリは、電子表示器上にデータを表示するための1つの手段を表す。
【0037】
オペレーティングシステムモジュール175は、機器100のメモリと処理リ発信源とを管理するようにプロセッサを構成する。例えば、オペレーティングシステムモジュール175は、電子表示器125、記憶装置110、又は撮像センサー115などのハードウェアリ発信源を管理するための機器ドライバを含み得る。従って、幾つかの実施形態では、上記で説明した画像処理モジュール中に含まれている命令は、これらのハードウェアリ発信源と直接対話せず、代わりに、オペレーティングシステム構成要素175中にある標準サブルーチン又はAPIを通して対話し得る。オペレーティングシステム175内の命令は、次いで、これらのハードウェア構成要素と直接対話し得る。
【0038】
例えば、オペレーティングシステム175は、表示装置ドライバを形成する命令のセットを含み得る。これらの命令は、表示器125上にデータを表示させるようにプロセッサ120を構成し得る。オペレーティングシステム表示装置ドライバ中に含まれている命令は、メモリ130などのメモリに記憶された他のモジュールが電子表示器上にデータをより容易に表示することを可能にするように電子表示器を制御し得る。従って、電子表示器125及びプロセッサ120とともに、電子表示器上にデータを表示するようにプロセッサを構成するオペレーティングシステム175中に含まれている命令は、電子表示器上にデータを表示するための1つの手段を表す。
【0039】
プロセッサ120は記憶装置モジュール110にデータを書き込み得る。記憶装置モジュール110は従来のディスク機器として図式的に表されているが、複数の実施形態は、メモリディスク、USBドライブ、フラッシュドライブ、リモート接続された記憶媒体、仮想ディスクドライバなどを含むように、ディスクベースの記憶装置、又は幾つかの他のタイプ記憶媒体のうちの1つのいずれかを含むことができることを当業者は理解されよう。
【0040】
図1Aは、プロセッサと撮像センサーとメモリとを含む別々の構成要素を有する機器を示しているが、これらの別々の構成要素は、特定の設計目標を達成するために様々な方法で組み合わせられ得ることを当業者は認識されよう。例えば、代替実施形態では、メモリ構成要素は、コストを節約するために及び性能を改善するためにプロセッサ構成要素と組み合わせられ得る。
【0041】
更に、
図1Aは、幾つかのモジュールを有するメモリ構成要素130と、作業メモリを有する別個のメモリ105とを含むように2つのメモリ構成要素を示しているが、当業者は、異なるメモリアーキテクチャを利用する幾つかの実施形態を認識されよう。例えば、メモリ130中に含まれているモジュールを実施するプロセッサ命令の記憶装置のための設計はROM又はスタティックRAMメモリを利用し得る。代替的に、プロセッサ命令は、機器100に組み込まれるか又は外部機器ポートを介して接続されたディスク記憶装置からシステム開始時に読み取られ得る。プロセッサ命令は、次いで、プロセッサによる実行を可能にするためにRAMにロードされ得る。例えば、作業メモリ105はRAMメモリであり得、命令は、プロセッサ120による実行の前に作業メモリ105にロードされる。
【0042】
図1Bに、プロセッサ192と、プロセッサ192と通信している作業メモリ196、記憶装置198、電子表示器194、及びメモリ182とを含む構成要素のセットを有する機器180のブロック図を示す。
【0043】
機器180は、セルフォン、デジタルカメラ、携帯情報端末、タブレットコンピュータなどであり得る。機器180はまた、デスクトップパーソナルコンピュータ、ビデオ会議局など、より固定の機器であり得る。機器180上で、複数のアプリケーションがユーザにとって利用可能であり得る。これらのアプリケーションは、従来の写真アプリケーション、ハイダイナミックレンジ撮像、パノラマビデオ、又は3D画像又は3Dビデオを生成する立体視撮像を含み得る。
【0044】
プロセッサ192は、汎用処理ユニット、又は撮像アプリケーションのために特別に設計されたプロセッサであり得る。図示のように、プロセッサ192は、入力191とメモリ182と作業メモリ196とに接続される。入力191はプロセッサ192にデータを与える。特定の実施形態に応じて、入力191から与えられるデータは様々な発信源から来ることがある。例えば、一実施形態では、入力191はネットワークアダプタを表し得る。入力191は、ネットワークを介してデータ発信源とのネットワーク接続性を確立し、それらのデータ発信源から受信したデータをプロセッサ192に与え得る。代替的に、他の実施形態では、入力191は、USBフラッシュドライブ、CD−ROMドライブ、フロッピー(登録商標)ディスクドライブなどのポータブルメディア読取り装置を表し得る。入力191は、ポータブルメディアからデータを読み取り、それをプロセッサ192に与え得る。入力191はまた、テープドライブ、ハードディスク、RAMドライブなどの従来の固定記憶装置を表し得る。
【0045】
マスタ制御モジュール188内の命令は、入力191からデータを受信するようにプロセッサ912を構成する命令を含み得る。例えば、幾つかの実施形態は、入力191から第1又は第2の画像を受信するようにプロセッサ192を構成する命令を含み得る。幾つかの実施形態は、入力190から垂直方向視差メタ情報をも受信するようにプロセッサを構成する命令を含むマスタ制御モジュールを含み得る。従って、プロセッサ192、入力191、及び作業メモリ196とともに、入力191からデータを読み取るようにプロセッサを構成するマスタ制御モジュール内の命令は、第1の画像と第2の画像との間の垂直方向視差を決定するための1つの手段を表し得る。プロセッサ192、入力191、及び作業メモリ196とともに、入力191から画像データを読み取るようにプロセッサを構成するマスタ制御モジュールの一実施形態内の命令は、入力機器から画像を受信するための1つの手段を表し得る。
【0046】
図示の実施形態では、メモリ182は、シフト及びトリミングモジュール184と、符号化モジュール186と、表示制御モジュール187と、マスタ制御モジュール188と、オペレーティングシステム190とを含む。これらのモジュールは、様々な画像処理タスクと機器管理タスクとを実行するようにプロセッサを構成する命令を含む。作業メモリ196は、メモリ182のモジュール中に含まれているプロセッサ命令の作業セットを記憶するためにプロセッサ192によって使用され得る。代替的に、作業メモリ196はまた、機器180の動作中に作成された動的データを記憶するためにプロセッサ192によって使用され得る。
【0047】
上述のように、プロセッサは、メモリに記憶された幾つかのモジュールによって構成される。シフト及びトリミングモジュール184は、2つの画像間の垂直方向視差を補正するために第1の画像と第2の画像とを互いに関してシフトするようにプロセッサ192を構成し得る命令を含む。シフト及びトリミングモジュール184はまた、2つの画像間の一貫した位置合わせを達成するために第1の画像及び/又は第2の画像をトリミングするための命令を含み得る。従って、プロセッサ192及び作業メモリ196とともに、シフト及びトリミングモジュール184内の命令は、少なくとも1つの補正画像を生成することによって2つの画像間の垂直方向視差を補正するための1つの手段を表し得る。
【0048】
符号化モジュール186は、第1及び第2の画像を立体視画像に符号化するようにプロセッサを構成する命令を含み得る。マスタ制御モジュール188は、シフト及びトリミングモジュール184から符号化モジュール186に補正画像を与え得る。符号化モジュール186は、次いで、補正画像に基づいて立体視画像ペアを作成し得る。従って、符号化モジュール186内に含まれている命令は、補正画像を含む画像に基づいて立体視画像を生成するための1つの手段を表す。
【0049】
表示制御モジュール187は、電子表示器上にデータを表示するようにプロセッサを構成する命令を含み得る。従って、プロセッサ192及びメモリ182とともに、表示制御モジュール187内に含まれている命令は、電子表示器上にデータを表示するための1つの手段を表す。符号化モジュール186は立体視画像ペアを符号化し得、マスタ制御モジュール188は、符号化された立体視画像ペアを表示制御モジュール187に受け渡し得、その後、表示制御モジュール187中の命令は、表示器194などの表示器上に立体視画像を表示させ得るので、プロセッサ192及びメモリ182とともに、表示制御モジュール187内の命令は、電子表示器上に立体視画像ペアを表示するための1つの手段を表す。
【0050】
マスタ制御モジュール188は、機器180の全体的な画像処理機能を制御する命令を含み得る。例えば、マスタ制御モジュール188は、入力191から2つの画像フレームを受信するようにプロセッサ192を構成する命令を含み得る。マスタ制御モジュールはまた、入力191から、2つの画像フレーム間の垂直方向視差を示すメタデータを受信するようにプロセッサ192を構成する命令を含み得る。マスタ制御モジュール188は、次いで、入力191から受信した画像を垂直方向に位置合わせするために、それらの画像をシフト及びトリミングするためにシフト及びトリミングモジュール184を呼び出し得る。マスタ制御モジュール188は、次いで、2つの画像がシフト及びトリミングモジュール184によって処理された後、それらの画像を立体視画像ペアに符号化するために符号化モジュール186を呼び出し得る。幾つかの実施形態では、符号化モジュール186又はマスタ制御モジュール188は、立体視画像ペアをデータ記憶装置198に記憶するようにプロセッサ192を構成する命令を含み得る。マスタ制御モジュール188はまた、表示器194などの電子表示器上にデータを表示するために表示制御モジュール187を呼び出し得る。
【0051】
オペレーティングシステムモジュール190は、機器180のメモリと処理リ発信源とを管理するようにプロセッサ192を構成する。例えば、オペレーティングシステムモジュール190は、入力191、電子表示器194、又は記憶装置198などのハードウェアリ発信源を管理するための機器ドライバを含み得る。従って、幾つかの実施形態では、上記で説明した画像処理モジュール中に含まれている命令は、これらのハードウェアリ発信源と直接対話せず、代わりに、オペレーティングシステム構成要素190中にある標準サブルーチン又はAPIを通して対話し得る。オペレーティングシステム190内の命令は、次いで、これらのハードウェア構成要素と直接対話し得る。
【0052】
プロセッサ192は記憶装置モジュール198にデータを書き込み得る。記憶装置モジュール198は従来のディスク機器として図式的に表されているが、複数の実施形態は、メモリディスク、USBドライブ、フラッシュドライブ、リモート接続された記憶媒体、仮想ディスクドライバなどを含むように、ディスクベースの記憶装置、又は幾つかの他のタイプ記憶媒体のうちの1つのいずれかを含むことができることを当業者は理解されよう。
【0053】
図1Bは、プロセッサとメモリとを含む別々の構成要素を有する機器を示しているが、これらの別々の構成要素は、特定の設計目標を達成するために様々な方法で組み合わせられ得ることを当業者は認識されよう。例えば、代替実施形態では、メモリ構成要素は、コストを節約するために及び性能を改善するためにプロセッサ構成要素と組み合わせられ得る。
【0054】
更に、
図1Bは、幾つかのモジュールを有するメモリ構成要素182と、作業メモリを有する別個のメモリ196とを含むように2つのメモリ構成要素を示しているが、当業者は、異なるメモリアーキテクチャを利用する幾つかの実施形態を認識されよう。例えば、メモリ182中に含まれているモジュールを実施するプロセッサ命令の記憶装置のための設計はROM又はスタティックRAMメモリを利用し得る。代替的に、プロセッサ命令は、機器180に組み込まれるか又は外部機器ポートを介して接続されたディスク記憶装置からシステム開始時に読み取られ得る。プロセッサ命令は、次いで、プロセッサによる実行を可能にするためにRAMにロードされ得る。例えば、作業メモリ196はRAMメモリであり得、命令は、プロセッサ192による実行の前に作業メモリ105にロードされる。
【0055】
図1Bは、入力機器190を含むように示されており、
図1の機器100は入力機器を含まないが、撮像装置の他の実施形態は、
図1Aと
図1Bの両方に示された様々な構成要素を含み得ることを理解されたい。例えば、一実施形態は、撮像センサー115及び116と入力機器190の両方を含み得る。この実施形態では、画像は画像センサーから受信され得、画像間の視差を示すメタ情報は入力191を介して受信され得る。代替的に、幾つかの画像ペアは画像センサーを介して受信され得、他の画像ペアは入力機器を介して受信される。機器の一実施形態は、画像の発信源に応じて異なる方法を使用して2つの画像間の視差を決定し得る。例えば、一実施形態は、行合計又は行エッジ合計方法(row summing or row edge summing methods)を使用して、埋込み型画像センサーを用いて撮影された画像の垂直方向視差を決定し得るが、入力機器191など、別個の入力機器を介して受信された画像の垂直方向視差は、入力機器191を介して受信されたメタ情報によって決定され得る。
【0056】
図2Aは、電子表示器上にデータを表示するためのプロセスのフローチャートである。
図2Aのプロセス200の一部又は全部は、一実施形態では、
図1Aの撮影制御モジュール170中に含まれる命令によって実施され得る。プロセス200は、開始ブロック205において開始し、次いでブロック210に遷移し、第1の画像を撮影する。第1の画像は、撮影制御モジュール170中の命令が撮像センサー制御モジュール135内のサブルーチンを呼び出すことによって撮影され得る。撮像センサー制御モジュール135は、次いで、画像を撮影するために、場合によってはオペレーティングシステムモジュール175を介して、撮像センサー115又は116を制御するようにプロセッサを構成し得る。プロセス200は、次いでブロック215に移動し、第2の画像を撮影する。プロセス200は、次いでブロック220に移動し、命令が、撮影された第1の画像と第2の画像との間の垂直方向視差を決定する。これらの命令は、
図1Aの視差決定モジュール140中にあり得る。代替的に、ブロック220は、
図1Bの入力機器191などの入力機器からデータを読み取るように、プロセッサ192などのプロセッサを構成するための命令を含むマスタ制御モジュール188中の命令によって実施され得る。
【0057】
図示の実施形態では、プロセス200のブロック220は、最初に各画像の行を合計することによって第1の画像と第2の画像との間の垂直方向視差を決定する命令を含み得る。この合計プロセスは、2つのベクトル、即ち、画像ごとに1つのベクトルを作成する。ベクトルの各要素は画像についての1つの行和を表す。例示的なベクトルを
図3A、項目310に示す。
図3A中の画像305の行が集計され、グラフ310によって表されるベクトルが生成された。各行の和は不連続グラフを作成するが、グラフは説明のために実線として示されていることに留意されたい。2つの画像についての行和を
図3Aに示す。画像320はあるセンサーから取られ、画像330は別のセンサーから取られる。2つのグラフの差は2つの画像間の変化を表す。
【0058】
これらのベクトルはかなりの類似性を有する。例えば、2つのグラフの山と谷との間に全般的な対応がある。これらの類似性により、2つのベクトルに対して最良適合動作を実行することが可能になる。幾つかの実施形態では、最良適合は、2つのベクトルの位置間の絶対差分和を最小限に抑える2つのベクトル間のオフセットを識別することによって決定され得る。
【0059】
従って、プロセッサ及びメモリとともに、行和ベクトルの最良適合を実行する垂直方向視差決定モジュール140内の命令は、2つの画像間の垂直方向視差を決定するための1つの手段を表す。
【0060】
行合計は視差認識及び調整に1つの解決策を与えるが、それは幾つかの欠点を有する。例えば、それの有効性はシーン依存であり、それは、場合によってはまったく機能しないことがある。更に、2つの画像間に位置合わせ不良(misalignment)があるとき、それの精度は影響を及ぼされ得、例えば、ピッチの位置合わせ不良は行合計に基づく解決策の精度に影響を及ぼし得る。スケーリングによる画像位置合わせ不良(あるセンサーが別のセンサーよりもシーンに近いこと)も、行合計に基づく垂直方向視差決定の精度に影響を及ぼし得る。
【0061】
行合計技法に伴うこれらの欠点のために、他の実施形態は、水平方向エッジ検出プロセスの結果に基づいてベクトルを形成し得る。画像の各画素は、エッジ検出プロセスに基づいてエッジ値を割り当てられ得る。画像の行中の各画素のエッジ値が合計され、結果は、水平方向エッジベクトルの対応するエントリに記憶され得る。このプロセスは、画像のあらゆる行について繰り返され、各行合計の結果は、水平方向エッジベクトル中の対応するエントリに記憶される。2つの画像の場合、2つの水平方向エッジベクトルが使用される。
【0062】
次いで、上記で説明したのと同様の方法で水平方向エッジベクトルに対して最良適合が実行され得る。例えば、2つのベクトルの最良適合は、2つのベクトル中の対応するエントリ間の絶対差分和を最小限に抑える2つのベクトル間のオフセットを識別することによって決定され得る。1つの画像を、オフセットによって示されるサイズ及び方向だけシフトすることによって、画像は垂直方向に位置合わせされ得る。代替的に、オフセットは、画像を位置合わせするために必要とされる垂直方向シフトの総量を示すので、両方の画像が、オフセットによって示される量の半分だけシフトされ得る。従って、プロセッサ及びメモリとともに、水平方向エッジベクトルの最良適合を実行する垂直方向視差決定モジュール140内の命令は、2つの画像間の垂直方向視差を決定するための別の手段を表す。
【0063】
図2Aに戻ると、ブロック220の他の実施形態は、代替方法を使用して垂直方向視差を決定し得る。例えば、幾つかの実施形態は、2つの画像の局所近傍内の最良マッチ(best match)を識別し得る。例えば、一実施形態は、一方の画像内の主要な特徴点の位置を特定し、他方の画像において最良マッチを探索し得る。従って、プロセッサ及びメモリとともに、主要な特徴点についての局所近傍内の最良マッチを実行する垂直方向視差決定モジュール140内の命令は、2つの画像間の垂直方向視差を決定するための別の手段を表す。
【0064】
他の実施形態は、入力機器、例えば、
図1Bに示した入力機器190から受信したメタ情報に基づいて垂直方向視差を決定し得る。例えば、
図1Bに示した機器180などの機器は、入力機器190を介して立体視画像ペアを形成する2つの画像を受信し得る。これらの画像は外部発信源によって与えられ得る。例えば、外部発信源は、画像処理コンピュータなど、別の機器であり得る。この画像処理コンピュータはまた、2つの画像間の垂直方向視差を決定し得る。垂直方向視差情報は、次いで、入力機器191を介して受信されるメタ情報として機器180に送られ得る。従って、入力機器からメタ情報を受信するようにプロセッサを構成するマスタ制御モジュール中の命令は、2つの画像間の垂直方向視差を決定するための別の手段を表す。
【0065】
垂直方向視差が決定された後、プロセス200はブロック240に移動し、画像の一方又は両方に補正を適用する。ブロック240は、
図1Aに示した機器100の視差決定モジュール140、シフト及びトリミングモジュール155、又は撮影制御モジュール170のいずれか1つ又は組合せ中に含まれている命令によって実行され得る。プロセッサ及びメモリとともに、これらのモジュール中の命令は、補正画像を作成するために補正を適用するための1つの手段を表す。
【0066】
垂直方向視差を補正するために、ブロック240は、一方又は両方の画像をシフト及び/又は切り取り(crop)得る。例えば、第1の画像が、第2の画像に関する視差を除去するために切り取られ(トリミングされ)得る。しかしながら、現在、第1の画像は、岐路とられた寸法がより小さいので、第2の画像も、第1の画像に等しい寸法を維持するために切り取られる必要があり得る。この切り取り(トリミング)により、立体視画像ペアの垂直方向視野は元の画像の垂直方向視野よりも小さくなる。しかしながら、垂直方向視差をなくすことは、垂直方向に位置合わせされた立体視画像ペアを生成するために、画像の下部及び上部に関して画像高さのわずか5パーセントの削除を必要とし得る。これは、垂直方向視野を合計10パーセントだけ低減し得る。上記で説明したように一方又は両方の画像のクロッピングを実行するシフト及びトリミングモジュール155中に含まれている命令は、補正画像を作成するために補正を適用するための別の手段を表す。
【0067】
適切な補正が適用された後、プロセス200はブロック245に移動し、補正画像に基づいて立体視画像ペアを生成する。一実施形態では、ブロック245は符号化モジュール160中の命令によって実行され得る。従って、符号化モジュール160中の命令は、立体視画像ペアを生成するための1つの手段を表す。元の第1及び第2の画像も使用され得る。
【0068】
プロセス200は、次いで決定ブロック246に遷移し、決定ブロック246は、ブロック245において作成された立体視画像ペアが、許容できる品質レベルであるかどうかを決定する。ブロック246は、
図1Aの撮影制御モジュール170又は
図1Bのマスタ制御モジュール188中の命令によって実施され得る。立体視画像ペアの品質レベルは、幾つかの実施形態では、立体視画像ペア中に含まれる2つの画像間に残っている垂直方向視差の量によって決定され得る。立体視画像ペアの品質が許容できる場合、プロセス200はブロック248に遷移し、立体視画像ペアを表示する。立体視画像ペアの品質レベルが許容できない場合、プロセス200は決定ブロック246から処理ブロック247に移動し、立体視画像ペアの2次元バージョンを表示する。例えば、ブロック247は、立体視画像ペア中に含まれる2つの画像のうちの1つのみを表示し得る。プロセス200は、次いで終了状態250に遷移する。
【0069】
図2Bは、電子表示器上にデータを表示するためのプロセスのフローチャートである。
図2Bのプロセス252の一部又は全部は、一実施形態では、
図1Aの撮影制御モジュール170又は
図1Bのマスタ制御モジュール188中に含まれる命令によって実施され得る。プロセス252は、開始ブロック255において開始し、次いでブロック260に移動し、第1の画像を受信する。第1の画像は、幾つかの実施形態では、
図1Aの画像センサー115又は116から受信され得る。代替的に、画像は
図1Bの入力191から受信され得る。ブロック260において第1の画像が受信された後、プロセス252はブロック265に移動し、第2の画像を受信する。第1の画像と同様に、第2の画像は、
図1Aの画像センサー115又は116あるいは
図1Bの入力191から受信され得る。プロセス252は、次いでブロック270に移動し、ブロック260及びブロック265において受信された2つの画像間の垂直方向視差を決定する。ブロック270は、
図2Aに関して上記で説明したブロック220と同様に機能し得る。プロセス252は、次いでブロック272に移動し、ブロック270において決定された垂直方向視差を使用して、少なくとも1つの補正画像を作成するために補正を適用する。第1又は第2の画像を補正することは、画像の一方又は両方をシフト又はトリミングすることを含み得る。ブロック272は、
図1Aに示した機器100のシフト及びトリミングモジュール160、又は
図1Bに示した機器180のシフト及びトリミングモジュール184において実行され得る。プロセス252は、次いでブロック274に移動し、立体視画像ペアを作成する。ブロック274において作成される立体視画像ペアは、ブロック272からの1つ又は複数の補正画像に基づき得る。
【0070】
立体視画像ペアが作成された後、プロセス252は、次いで決定ブロック276に移動し、ブロック274において作成された立体視画像ペアの品質を品質閾値と比較する。立体視画像ペアの品質が品質閾値を上回る場合、ブロック276は、立体視画像ペアの品質は許容できると決定する。
【0071】
ブロック276は、立体視画像ペアの品質が品質閾値を上回るかどうかを決定する前に立体視画像ペアの1つ又は複数の属性を評価し得る。例えば、ブロック276は、立体視画像ペアの画像間に残っている垂直方向視差を評価し得る。垂直方向視差が閾値を上回る場合、ブロック276は、立体視画像ペアの品質は品質閾値よりも低いと決定し得る。ブロック276はまた、立体視画像ペアの視野を評価し得る。視野が視野閾値以下に低減された場合、ブロック276は、立体視画像ペアの品質レベルは品質閾値を下回ると決定し得る。ブロック276はまた、立体視画像ペアの品質レベルを決定するために、垂直方向視差決定と視野決定の両方の結果を評価し得る。
【0072】
ブロック276が、立体視画像ペアの品質は許容できると決定した場合、プロセス252はブロック277に遷移し、立体視画像ペアを表示する。例えば、画像ペアは、
図1Aに示した機器100の表示器125、又は
図1Bに示した機器180の表示器194上に表示され得る。しかしながら、立体視画像ペアの品質レベルが、許容できる品質と見なされる閾値レベルを下回る場合、プロセス252はブロック278に移動し、2次元画像を表示する。ブロック278において表示される2次元画像も、幾つかの実施形態では、機器100の表示器125又は機器180の表示器194上に表示され得る。ブロック277又はブロック278のいずれかにおいて画像が表示された後、プロセス252は終了ブロック280に移動する。
【0073】
図2Cは、電子表示器上にデータを表示するためのプロセス286のフローチャートである。
図2Cのプロセス286の一部又は全部は、一実施形態では、
図1Aの撮影制御モジュール170又は
図1Bのマスタ制御モジュール188中に含まれる命令によって実施され得る。プロセス286は、開始ブロック287において開始し、次いでブロック288に移動し、第1の画像を受信する。画像は、例えば、
図1Aに示した機器100の画像センサー115又は116から、又は
図1Bに示した機器180の入力191から受信され得る。プロセス286は、次いでブロック289に移動し、第2の画像を受信する。同様に、第2の画像も画像センサー又は入力機器から受信され得る。プロセス286は、次いでブロック290に移動し、垂直方向視差情報を決定する。第1の画像と第2の画像との間の垂直方向視差は幾つかの方法で決定され得る。例えば、
図2Aに示したプロセス200に関して説明した方法のいずれかが使用され得る。代替的に、2つの画像間の視差は、メタ情報としても知られるデータを受信することによって決定され得る。メタ情報は、
図1Bに示した機器180の入力191などの入力機器を介して受信され得る。
【0074】
プロセス286は、次いで決定ブロック291に移動し、垂直方向視差を閾値と比較する。2つの画像間の垂直方向視差が閾値を下回る場合、プロセス286はブロック292に遷移し、受信した第1又は第2の画像に補正を適用する。補正は、ブロック290において視差メタ情報が受信された場合、それに基づき得る。代替的に、補正は、行和ベクトル又は行エッジ和ベクトルの最良適合など、前に説明した視差決定方法の結果に基づき得る。プロセス286は、次いでブロック294に移動し、ブロック292からの補正された第1の画像と第2の画像とに基づいて立体視画像ペアを作成する。プロセス286は、次いでブロック295に遷移し、立体視画像ペアを表示する。
【0075】
しかしながら、第1の画像と第2の画像との間の垂直方向視差が閾値を上回る場合、プロセス286は決定ブロック291から処理ブロック296に移動し、2次元画像を表示する。例えば、立体視画像ペア中に含まれる2つの画像のうちの1つのみが表示され得る。ブロック296又はブロック295において表示される画像は、
図1Aに示した機器100の表示器125、又は
図1Bに示した機器180の表示器194上に表示され得る。ブロック295において立体視画像ペアが表示されるか、又はブロック296において2次元画像が表示された後、プロセス286は終了ブロック298に移動する。
【0076】
図2Aのブロック240、
図2Bのブロック275、又は
図2Cのブロック292に示したプロセスの一実施形態に従ってトリミングされ得る画像ペアの一例を
図4によって示す。湖450上の建築物470の2つの画像が示されている。画像410は、画像420よりもわずかに低い視点(perspective)から撮影された。従って、画像410は、それの視野中に湖のより大きい部分を含むが、画像420は、それの視野中に空460のより大きい部分を含む。他方の画像中に含まれない各画像の部分は、415及び425として識別された各画像の影つき部分によって表される。図示のように、2つの画像は、立体視画像ペアを形成する前になくされ得る有意な垂直方向視差を含む。垂直方向視差をなくすために、各画像415及び425の影つき部分はトリミングされ、括弧内のエリア440によって識別される2つの画像の共通部分によって表される最終視野が生じる。
【0077】
幾つかの撮像環境は、上記の技法が、垂直方向視差を低減するか又はなくし、高品質の立体視画像ペアを生成するために、撮像センサー115と撮像センサー116とから撮影された画像を正常に処理することを可能にするが、幾つかの撮像環境は、適切に補償されるには大きすぎる視差を提示し得る。そのような撮像状態の下では、撮像装置は、十分な画質を保証することが可能でないことがあるので、撮像装置は、立体視画像を生成することを回避することが適切であり得る。一実施形態は、例えば、撮像装置を2次元撮像モードに遷移させ得る。そのようなモードでは、ただ1つの撮像センサーの画像が、従来の2次元画像を生成するために使用され得る。例えば、機器が立体視ビデオ又はムービーを前に生成していた場合、垂直方向視差が特定の閾値を超えると、機器は従来の2次元フォーマットを生成し始め得、画像フレームは単一の撮像センサーのみから生成される。代替的に、機器は、立体視ビデオ又はムービーをより低い品質で生成し続けるとともに、また、ムービーの品質レベルが閾値を下回るというインジケータを与え得る。更に他の実施形態では、機器は立体視ビデオを生成し続け得るが、ユーザが低減品質レベルでの表示を続けることを望むかどうかを決定するために、ユーザプロンプト又は他の入力受信技法が使用され得る。更に他の実施形態は、垂直方向視差の量にかかわらず立体視画像を生成し続け得る。
【0078】
幾つかの撮像環境では、比較的大きい垂直方向視差にもかかわらず、撮像装置は、十分な品質の立体視画像を生成することが可能であり得るが、得られた立体視画像ペアの視野は閾値以下に低減され得る。幾つかの実施形態では、撮像装置は、ユーザが、低減された視野をもつ立体視撮像アプリケーションの表示を続けることを望むかどうかに関して、ユーザからの入力をプロンプトするか又は場合によっては要請し得る。
【0079】
図5は、立体視画像ペアを表示するために撮影制御モジュール又はマスタ制御モジュールによって使用されるプロセスの一実施形態を示すフローチャートである。プロセス500は、開始ブロック505において開始し、次いでブロック510に移動し、第1の画像を受信する。幾つかの実施形態では、画像は、
図1の画像センサー115又は116若しくは
図1Bの入力機器190から受信され得る。プロセス500は、次いでブロック515に移動し、第2の画像を受信する。第1の画像と同様に、幾つかの実施形態では、第2の画像も画像センサー又は入力機器から受信され得る。プロセス500は、次いでブロック520に移動し、第1の画像と第2の画像との間の垂直方向視差を決定する。ブロック520は、2つの画像間の垂直方向視差を決定するために、行合計、行エッジ合計、又は当該ポイントマッチングを含むように、上記で説明した視差決定実施形態のいずれかを実施し得る。画像を位置合わせするための他の技法が当技術分野で知られており、同じく実施され得る。例えば、デジタル写真において知られている画像登録技法も利用され得る。
【0080】
プロセス500の代替実施形態は、他の方法を使用してブロック520において垂直方向視差を決定することに留意されたい。例えば、幾つかの実施形態は、第1の画像と第2の画像との間に存在する垂直方向視差を示すメタ情報を受信することによって垂直方向視差を決定し得る。メタ情報は、例えば、
図1Bに示した入力機器190を介して受信され得る。情報は、ネットワーク、記憶装置、更には、表示装置自体内で実行している別のプロセッサから受信され得る。
【0081】
プロセス500は、次いで決定ブロック525に移動し、視差に対する補正が機器100の撮像処理命令によって実行されるべきかどうかを決定するために、垂直方向視差を閾値と比較する。例えば、幾つかの実施形態では、機器100のシフト及びトリミングモジュール165は、画像を補正するための手段を与え得るが、幾つかの垂直方向視差は、シフト及びトリミングモジュールの補償機能の能力を超えることがある。更に、極めて大きい垂直方向視差がある場合、得られた立体視画像の視野は非実際的に小さくなり得る。
【0082】
決定ブロック525において、2つの画像間の垂直方向視差が閾値を下回るという決定が行われた場合、プロセス500はブロック570に移動し、表示され得た低品質インジケータをクリアする。プロセス500は、次いでブロック575に移動し、垂直方向視差に対する補正を第1の画像、第2の画像、又は両方の画像に適用する。この補正は、
図1Aのシフト及びトリミングモジュール155又は
図1Bのシフト及びトリミングモジュール184中に含まれる命令によって適用され得る。プロセス500は、次いでブロック580に移動し、2つの画像を立体視画像ペアに符号化する。この符号化は、
図1Aの符号化モジュール160、又は
図1Bに示した機器180の符号化モジュール186中にある命令によって実行され得る。プロセス500は、次いでブロック585に移動し、立体視画像ペアを表示する。立体視画像は、
図1Aの表示器125又は
図1Bの表示器194上に表示され得る。プロセス500は、次いでブロック510に戻り、プロセス500は繰り返す。
【0083】
決定ブロック525において、2つの画像間の垂直方向視差が閾値を上回るという決定が行われた場合、例外情報が表示され得る。例外情報は、品質インジケータ又は視野インジケータなど、インジケータを含み得る。例外情報はまた、立体視画像ペアの表示など、幾つかの表示機能を続けるべきかどうかをユーザに尋ねるユーザプロンプトを含み得る。図示の実施形態では、プロセス500はブロック530に移動して、低品質インジケータを生成する。幾つかの実施形態では、インジケータは立体視画像ペア自体に埋め込まれ得、従って、表示されたとき、インジケータはユーザに明らかに可視である。
【0084】
代替的に、プロセス500を実行する機器は、他のインジケータ、例えば、ランプ、又は品質インジケータを表示するように構成された補助表示器スクリーンを含み得る。インジケータは、そのような機器の埋込み型表示器上に表示され得る。また、可聴インジケータも与えられ得る。例えば、垂直方向視差が閾値を超えるとき、トーン(tone)、ビープ(beep)、又は音声アラート(spoken alert)がユーザに提示され得る。
【0085】
プロセス500は、次いで決定ブロック535に移動し、命令が、立体視撮像が続けられるべきかどうかに関して機器がユーザに指示すべきかどうかを決定する。図示の実施形態では、設定可能な指示(configurable prompting)が機器挙動にフレキシビリティを与える。例えば、初心者のユーザは、指示されることを回避することを選好し、代わりに、ユーザのために決定を行うビルトイン機器論理を利用し得る。より高度なユーザは、ユーザの機器内の立体視撮像プロセスに対して追加の制御権を有することを選好し得る。指示(prompting)が可能である場合、プロセス500はブロック555に移動し、ユーザが指示される。ユーザの指示は、幾つかの実施形態では、
図1Bのマスタ制御モジュール188又は表示制御モジュール187中に含まれる命令によって達成され得る。
【0086】
次に、プロセス500はブロック560に移動し、ユーザからの入力を受信するための命令を実行する。プロセス500は、次いで決定ブロック565に移動し、命令が、ユーザが立体視撮像を続けることを望むことをユーザの応答が示したかどうかを決定する。ユーザが続けることを選択した場合、プロセス500は、ページ上参照「A」を通ってブロック545に移動し、命令が2次元画像を生成させる。2次元撮像モードは、ブロック510及びブロック515において前に受信された2つの画像のうちの1つのみを利用し得る。幾つかの実施形態では、ブロック545によって生成される画像は、画像センサー1からの画像又は画像センサー2からの画像のいずれかであり得る。代替的に、その画像は、入力、例えば、
図1Bに示した入力機器190から受信した画像であり得る。プロセス500は、次いでブロック590に移動し、2次元画像を表示する。幾つかの実施形態では、2次元画像は、
図1の表示器125又は
図1Bの表示器194上に表示され得る。プロセス500は次いで繰り返す。
【0087】
図5は、閾値を上回る垂直方向視差とともに撮影されたあらゆる立体視画像ペアについてユーザ指示(user prompt)を作成する論理フローを示しているが、ユーザを過剰に指示することを回避するために追加の論理が実施され得ることを当業者は認識するであろうことに留意されたい。例えば、分/時/日当たりの指示の最大数が実施され得る。代替的に、プロンプトは、撮像環境において大幅な垂直方向視差変化がある場合にのみ生成され得る。例えば、垂直方向視差の量の「小」、「中」、及び「大」を定義する閾値が確立され得る。垂直方向視差の量がある閾値を超えて別の閾値に入ったとき、幾つかの実施形態では、これはプロンプトを生成し得る。例えば、第1の指示は、何らかの比較的小さい閾値が到達された後に表示され得る。ユーザが続けることを選択した場合、視差がはるかに深刻なレベルに到達すると、追加の指示が生成され得る。これらの変形形態は当技術分野で知られているが、簡潔のためにここでは図示しない。
【0088】
また、
図5に示した実施形態は、「ユーザ」と対話するように設計されているが、他の実施形態が制御の代替手段を提供し得ることに留意されたい。例えば、幾つかの実施形態は、プロンプティングの代わりに、立体視撮像のステータスを通信するために電子メッセージの形態の制御信号を生成し得る。例えば、立体視撮像装置は、入力ポート及び出力ポートとともに構成され得、立体視撮像環境における幾つかの閾値が超えられたとき、信号が出力ポートに送られる。これらの出力ポートは、例えば、ワイヤレス接続又はUSBを介したハードワイヤード接続を含み得る。更に、立体視撮像装置は入力ポートから入力を受け取り得る。例えば、垂直方向視差が特定の閾値を超えることを示す出力信号を生成した後、幾つかの実施形態は、立体視撮像が続けられるべきかどうか、機器が2次元撮像モードにシフトすべきかどうか、又は場合によっては、撮像が完全に停止されるべきかどうかを示す入力を入力ポート上で受け取り得る。
【0089】
決定ブロック535が、ユーザプロンプティングは使用可能でないと決定した場合、プロセス500は決定ブロック540に移動し、視野が低減された場合、垂直方向視差を補償することが可能であるかどうかの決定を行う。垂直方向視差が補償され得る場合、プロセス500はブロック550に移動し、視野例外情報を表示する。例えば、図示の実施形態では、低減視野インジケータを生成する。プロセス500は、次いでブロック575に移動し、画像に補正を適用し、プロセス500は、次いで、前に説明したように続く。
【0090】
決定状態540において、視野が低減された場合でも十分な画像が生成され得ないほど垂直方向視差が大きいという決定が行われた場合、プロセス500はブロック545に移動し、2次元画像を生成する。プロセス500は、次いで、ブロック590において2次元画像を表示し、プロセス500を繰り返すためにブロック510に戻る。
【0091】
図5の図示の実施形態について幾つかの変形形態が利用可能であることを了解されたい。例えば、ユーザの指示(prompting)は、幾つかの実施形態では構成可能でないことがあり、無条件に使用可能であるか又は実行されないことがある。他の実施形態は、著しく低減された視野をもつ立体視画像ペアを生成する前にユーザを指示し得る。他の実施形態は、ユーザ指示、視野決定、又は様々なインジケータの生成の複雑さを実施することなしに、垂直方向視差が閾値に到達したとき、2次元撮像に無条件に遷移し得る。
図5は、立体視画像ペアを生成するこれらの様々な方法のうちの1つの組合せを表すものにすぎない。
【0092】
また、
図5に示した実施形態は、説明を容易にするために若干の簡略化を含むことを諒解されよう。例えば、幾つかの実施形態は、例えば、垂直方向視差を、容易に補正され得る値からユーザによる指示を必要とする値に頻繁に遷移させるエッジケース撮像環境(edge case imaging environments)において、ユーザの過剰な指示を回避するための処理論理を含む必要がある。更に、
図5は、プロセス500が終了するための方法を示していない。しかしながら、幾つかの実施形態は、終了状態への遷移を可能にする追加の条件付き論理を採用する。例えば、機器100の幾つかの実施形態は、撮像装置が立体視撮像モードにあるのか従来の2次元モードにあるのかを決定するユーザ作動型制御装置を含み得る。この制御装置の作動はプロセス500を終了させ得る。代替的に、他の実施形態は、撮影制御ボタンとして働くユーザ作動型制御装置を有し得る。作動されたとき、幾つかの実施形態は、撮像が現在進行中でない場合には撮像を開始し、制御装置が作動されたとき、撮像が進行中の場合には撮像を終了する。幾つかの実施形態では、そのような制御装置の作動はプロセス500を終了し得る。
【0093】
図6は、立体視画像ペアを表示する方法のデータフロー図である。データフローは図の左側から開始し、入力605から右フレーム610及び左フレーム615が受信される。次に、行投影620及び625が作成され、ブロック630に送られ、2つのフレーム610とフレーム615との間の垂直方向視差が計算される。この計算の結果は、フレーム610及び615を変更して、左フレーム640と右フレーム635とを作成するために使用される。フレーム610及び615の垂直方向視差を調整するために、各画像はトリミング又はシフトされ得る。シフト又はトリミング動作の後、画像635及び640は、画像610及び615と比較して、より少ない垂直方向視差をもつ改善された品質を有し得る。2つのフレームは、次いで、ブロック645において立体視画像ペアに符号化される。画像635及び640を含む立体視画像ペアは、決定ブロック650に送られ、立体視画像品質が許容できるかどうかが決定される。立体視画像品質が許容できる場合、プロセス600はブロック655に移動し、2つの画像は立体視画像として表示される。立体視画像ペアの品質が許容できない場合、2次元画像がブロック660において表示のために与えられる。
【0094】
図7は、立体視画像ペアを表示するための代替方法のデータフロー図である。
図6と同様に、入力705から右フレーム710及び左フレーム715が受信される。但し、
図6のデータフロー600とは異なり、入力705はまた、2つのフレーム710とフレーム715との間の垂直方向視差を示すメタデータを与える。このメタデータはクロッピング制御パラメータ730に変換され、新しいフレーム735及び740が、元のフレーム710及び715とトリミングデータ730とに基づいて作成される。これらの補正されたフレームの垂直方向視差が、次いでブロック750において評価され得、許容できる場合、立体視画像755が表示される。そうでない場合、2次元画像760が表示される。
【0095】
更に、本明細書で開示する実施形態に関連して説明した様々な例示的な論理ブロック、モジュール、回路、及びプロセスステップは、電子ハードウェア、コンピュータソフトウェア、又はその両方の組合せとして実施され得ることを当業者は諒解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、及びステップについて、上記では概してそれらの機能に関して説明した。そのような機能をハードウェアとして実施するか、ソフトウェアとして実施するかは、特定の適用例及び全体的なシステムに課された設計制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実施し得るが、そのような実施の決定は、本発明の範囲からの逸脱を生じるものと解釈すべきではない。当業者は、ある部分又は一部が、全体よりも少ないか又はそれに等しいものを備え得ることを認識されよう。例えば、画素の集合の一部分は、それらの画素の部分集合を指すことがある。
【0096】
本明細書で開示した実施形態に関して説明した様々な例示的な論理ブロック、モジュール、及び回路は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)又は他のプログラマブル論理機器、個別ゲート又はトランジスタ論理、個別ハードウェア構成要素、あるいは本明細書で説明した機能を実行するように設計されたそれらの任意の組合せを用いて実施又は実行され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、又は状態機械であり得る。プロセッサはまた、コンピュータ機器の組合せ、例えば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つ又は複数のマイクロプロセッサ、又は任意の他のそのような構成として実施され得る。
【0097】
本明細書で開示した実施形態に関して説明した方法又はプロセスのステップは、直接ハードウェアで実施されるか、プロセッサによって実行されるソフトウェアモジュールで実施されるか、又はその2つの組合せで実施され得る。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROM(登録商標)メモリ、レジスタ、ハードディスク、リムーバブルディスク、CD−ROM、又は当技術分野で知られている任意の他の形態の非一時的記憶媒体中に常駐し得る。例示的なコンピュータ可読記憶媒体は、プロセッサがコンピュータ可読記憶媒体から情報を読み取り、コンピュータ可読記憶媒体に情報を書き込むことができるようにプロセッサに結合される。代替として、記憶媒体はプロセッサに一体化され得る。プロセッサ及び記憶媒体はASIC中に常駐し得る。ASICは、ユーザ端末、カメラ、又は他の機器中に常駐し得る。代替として、プロセッサ及び記憶媒体は、ユーザ端末、カメラ、又は他の機器中に個別構成要素として常駐し得る。
【0098】
本明細書には、参照のための、及び様々なセクションを見つけるのを助けるための見出しが含まれる。これらの見出しは、見出しに関連して説明した概念の範囲を限定するものではない。そのような概念は、本明細書全体にわたって適用性を有し得る。
【0099】
開示した実施形態の以上の説明は、当業者が本発明を製作又は使用することができるように与えたものである。これらの実施形態への様々な修正は当業者には容易に明らかであり、本明細書で定義した一般原理は、本発明の趣旨又は範囲から逸脱することなく他の実施形態に適用され得る。従って、本発明は、本明細書で示した実施形態に限定されるものではなく、本明細書で開示した原理及び新規の特徴に一致する最も広い範囲を与られるべきである。
以下に本件出願当初の特許請求の範囲に記載された発明を付記する。
[1] 電子表示器上にデータを表示する方法であって、入力装置から第1の画像を受信することと、入力装置から第2の画像を受信することと、前記第1の画像と前記第2の画像との間の垂直方向視差を決定することと、垂直方向視差が閾値を下回る場合、立体視画像ペアを表示することと、を備える、方法。
[2] 少なくとも1つの補正画像を生成することによって前記第1の画像と前記第2の画像との間の前記垂直方向視差を補正することと、前記補正画像に基づいて前記立体視画像ペアを生成することと、を更に備える、[1]に記載の方法。
[3] 前記垂直方向視差が、入力装置からメタ情報を受信することによって決定される、[1]に記載の方法。
[4] 前記垂直方向視差が閾値を上回るとき、例外情報を表示することを更に備える、[1]に記載の方法。
[5] 前記例外情報が低品質インジケータを含む、[4]に記載の方法。
[6] 前記例外情報が、立体視撮像を続けるべきかどうかを尋ねる指示を含む、[4]に記載の方法。
[7] 前記例外情報が2次元画像である、[4]に記載の方法。
[8] 前記立体視画像の視野が第2の閾値を下回るとき、視野例外情報を表示することを更に備える、[1]に記載の方法。
[9] 前記視野例外情報が低減視野インジケータである、[8]に記載の方法。
[10] 前記垂直方向視差を決定することが、前記第1の画像についての第1の行和ベクトルを生成することと、前記第2の画像についての第2の行和ベクトルを生成することと、前記第1の行和ベクトルと前記第2の行和ベクトルとについての最良適合を決定することと、を備える、[1]に記載の方法。
[11] 前記垂直方向視差を決定することが、前記第1の画像についての第1の行エッジ和ベクトルを生成することと、前記第2の画像についての第2の行エッジ和ベクトルを生成することと、前記第1の行エッジ和ベクトルと前記第2の行エッジ和ベクトルとについての最良適合を決定することと、を備える、[1]に記載の方法。
[12] 前記立体視画像ペアをデータ記憶装置に記憶することを更に備える、[1]に記載の方法。
[13] 前記最良適合が最小差分値和によって決定される、[11]に記載の方法。
[14] 前記垂直方向視差を補正することが、前記第1の画像又は前記第2の画像をシフト又はトリミングすることを含む、[2]に記載の方法。
[15] プロセッサと、入力装置と、前記入力装置から第1の画像を受信し、前記入力装置から第2の画像を受信するように構成されたマスタ制御モジュールと、前記第1の画像と前記第2の画像との間の垂直方向視差を決定するように構成された視差決定モジュールと、垂直方向視差が閾値を下回るとき、電子表示器上に立体視画像ペアを表示するように構成された表示制御モジュールと
を備える、画像処理装置。
[16] 少なくとも1つの補正画像を生成することによって前記第1の画像と前記第2の画像との間の前記垂直方向視差を補正するように構成されたシフト及びトリミングモジュールと、前記補正画像に基づいて前記立体視画像ペアを生成するように構成された符号化モジュールと、を更に備える、[15]に記載の装置。
[17] 前記表示制御モジュールは、前記垂直方向視差が前記閾値を上回るとき、例外情報を表示するように更に構成された、[15]に記載の装置。
[18] 前記垂直方向視差が、入力装置からメタ情報を受信することによって決定される、[15]に記載の装置。
[19] 前記例外情報は、前記垂直方向視差が閾値を上回るとき、立体視撮像を続けるべきかどうかを尋ねる指示である、[17]に記載の装置。
[20] 前記垂直方向視差が閾値を上回るとき、前記例外情報が2次元画像である、[17]に記載の装置。
[21] 前記表示制御モジュールは、前記立体視画像の視野が前記第2の閾値を下回るとき、視野例外情報を表示するように更に構成された、[15]に記載の装置。
[22] 前記視野例外情報が低減視野インジケータである、[21]に記載の装置。
[23] データ記憶装置を更に備え、前記マスタ制御モジュールが、前記立体視画像ペアを前記データ記憶装置に記憶するように更に構成された、[15]に記載の装置。
[24] 電子表示器を更に備え、前記表示制御モジュールが、前記電子表示器上に前記立体視画像ペアを表示するように構成された、[15]に記載の装置。
[25] 前記視差決定モジュールが、前記第1の画像についての第1の行和ベクトルを生成することと、前記第2の画像についての第2の行和ベクトルを生成することと、前記第1の行和ベクトルと前記第2の行和ベクトルとについての最良適合を決定することと、によって前記垂直方向視差を決定する、[15]に記載の装置。
[26] 前記視差決定モジュールが、前記第1の画像についての第1の行エッジ和ベクトルを生成することと、前記第2の画像についての第2の行エッジ和ベクトルを生成することと、前記第1の行エッジ和ベクトルと前記第2の行エッジ和ベクトルとについての最良適合を決定することと、によって前記垂直方向視差を決定する、[15]に記載の装置。
[27] 前記最良適合が、2つのベクトル間の絶対差分値和を最小限に抑えることによって決定される、[26]に記載の装置。
[28] 前記視差決定モジュールが、前記入力装置からメタ情報を受信することによって前記垂直方向視差を決定する、[15]に記載の装置。
[29] 前記画像処理装置がワイヤレス電話ハンドセットである、[15]に記載の装置。
[30] 実行されたとき、入力装置から第1の画像を受信することと、入力装置から第2の画像を受信することと、前記第1の画像と前記第2の画像との間の垂直方向視差を決定することと、前記垂直方向視差が閾値を下回るとき、電子表示器上に立体視画像ペアを表示することと、を行う方法を実行するプロセッサ実行可能命令を含む非一時的コンピュータ可読媒体。
[31] 実行されたとき、前記垂直方向視差が前記閾値を上回るとき、例外情報を表示する方法を実行するプロセッサ実行可能命令を更に含む、[30]に記載のコンピュータ可読媒体。
[32] 前記垂直方向視差が、入力装置からメタ情報を受信することによって決定される、[30]に記載のコンピュータ可読媒体。
[33] 前記例外情報は、前記垂直方向視差が閾値を上回るとき、立体視撮像を続けるべきかどうかを尋ねるプロンプトである、[31]に記載のコンピュータ可読媒体。
[34] 前記例外情報が2次元画像である、[31]に記載のコンピュータ可読媒体。
[35] 入力装置から第1の画像を受信するための手段と、入力装置から第2の画像を受信するための手段と、前記第1の画像と前記第2の画像との間の垂直方向視差を決定するための手段と、前記垂直方向視差が閾値を下回るとき、電子表示器上に立体視画像ペアを表示するための手段と、を備える撮像装置。
[36] 少なくとも1つの補正画像を生成することによって前記第1の画像と前記第2の画像との間の前記垂直方向視差を補正するための手段と、前記補正画像に基づいて前記立体視画像ペアを生成するための手段と、を更に備える、[35]に記載の撮像装置。
[37] ワイヤレス電話ハンドセットを更に備える、[35]に記載の装置。
[38] 垂直方向視差を決定するための前記手段が、行和ベクトルの最良適合を実行するようにプロセッサを構成する命令を含む、[35]に記載の装置。
[39] 垂直方向視差を決定するための前記手段が、行エッジ和ベクトルの最良適合を実行するようにプロセッサを構成する命令を含む、[35]に記載の装置。