(57)【要約】  この開示は、バーチャルリアリティコンテンツを生成するために画像フレームおよび音声データを集約するためのシステムおよび方法を含む。システムはプロセッサと命令を格納するメモリとを含み、命令は、実行されると、システムが、カメラアレイから画像フレームを記述する映像データを受信し、マイクロホンアレイから音声データを受信し、左パノラマ画像のストリームおよび右パノラマ画像のストリームを含む３次元（３Ｄ）映像データのストリームを生成するために画像フレームを集約し、音声データから３Ｄ音声データのストリームを生成し、３Ｄ映像データのストリームおよび３Ｄ音声データのストリームを含むバーチャルリアリティコンテンツを生成するようにする。
2016537903.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータにより実現される方法であって、
カメラモジュールから画像フレームを記述する映像データを受信するステップと、
マイクロホンアレイから音声データを受信するステップと、
集約を行なうようにプログラミングされたプロセッサベースのコンピューティング装置によって、３次元（３Ｄ）映像データのストリームを生成するために前記画像フレームを集約するステップとを含み、前記３Ｄ映像データのストリームは、左パノラマ画像のストリームおよび右パノラマ画像のストリームを含み、前記方法はさらに、
前記音声データから３Ｄ音声データのストリームを生成するステップと、
前記３Ｄ映像データのストリームおよび前記３Ｄ音声データのストリームを含むバーチャルリアリティコンテンツを生成するステップとを含む、方法。
【請求項２】
前記３Ｄ映像データのストリームを生成するために前記画像フレームを集約するステップは、
左カメラマップに基づいて、左パノラマ画像のための第１の整合カメラモジュールを識別するステップと、
右カメラマップに基づいて、右パノラマ画像のための第２の整合カメラモジュールを識別するステップと、
前記左パノラマ画像のストリームにおける対応する左パノラマ画像を形成するために、特定の時間に前記第１の整合カメラモジュールによって取り込まれた第１の画像フレームをつなぎ合わせるステップと、
前記右パノラマ画像のストリームにおける対応する右パノラマ画像を形成するために、特定の時間に前記第２の整合カメラモジュールによって取り込まれた第２の画像フレームをつなぎ合わせるステップとを含む、請求項１に記載の方法。
【請求項３】
パノラマにおける、ヨー値およびピッチ値を有する画素のために、
前記左カメラマップは、前記パノラマにおける前記画素のための第１の整合カメラモジュールを識別して、前記パノラマにおける前記画素を前記第１の整合カメラモジュールの画像平面における画素に整合させ、
前記右カメラマップは、前記パノラマにおける前記画素のための第２の整合カメラモジュールを識別して、前記パノラマにおける前記画素を前記第２の整合カメラモジュールの画像平面における画素に整合させる、請求項２に記載の方法。
【請求項４】
前記左カメラマップは、左パノラマ画像における画素位置を対応する第１の整合カメラモジュールに関連付け、前記画素位置は、左視方向におけるパノラマの点に対応しており、
前記対応する第１の整合カメラモジュールは、前記パノラマの前記点への視方向を含む視野を有し、
前記対応する第１の整合カメラモジュールの前記視方向は、他のカメラモジュールに関連付けられた他の視方向よりも、前記左視方向に近い、請求項２に記載の方法。
【請求項５】
前記３Ｄ映像データのストリームを生成するために前記画像フレームを集約するステップは、
ユーザに関連付けられた現在の視方向を判断するステップと、
前記現在の視方向に基づいて、前記左パノラマ画像のストリームおよび前記右パノラマ画像のストリームを生成するステップとを含む、請求項１に記載の方法。
【請求項６】
前記左パノラマ画像は、前記ユーザの前記現在の視方向において、前記現在の視方向とは反対の第２の視方向よりも高い解像度を有し、
前記右パノラマ画像は、前記ユーザの前記現在の視方向において、前記現在の視方向とは反対の前記第２の視方向よりも高い解像度を有する、請求項５に記載の方法。
【請求項７】
前記左パノラマ画像および前記右パノラマ画像における色欠陥を補正するステップと、
前記左パノラマ画像および前記右パノラマ画像におけるつなぎ合わせエラーを補正するステップとをさらに含む、請求項１に記載の方法。
【請求項８】
１つ以上のプロセッサと、
１つ以上の有形の非一時的なコンピュータ読取可能媒体とを含む、システムであって、前記コンピュータ読取可能媒体は、前記１つ以上のプロセッサに通信可能に結合され、以下の動作を行なうために前記１つ以上のプロセッサによって実行可能な実行可能命令を格納しており、前記以下の動作は、
カメラモジュールから画像フレームを記述する映像データを受信することと、
マイクロホンアレイから音声データを受信することと、
左パノラマ画像のストリームおよび右パノラマ画像のストリームを含む３Ｄ映像データのストリームを集約することと、
前記音声データから３Ｄ音声データのストリームを生成することと、
前記３Ｄ映像データのストリームおよび前記３Ｄ音声データのストリームを含むバーチャルリアリティコンテンツを生成することとを含む、システム。
【請求項９】
前記１つ以上のプロセッサによって実行可能な前記命令は、
左カメラマップに基づいて、左パノラマ画像のための第１の整合カメラモジュールを識別し、
右カメラマップに基づいて、右パノラマ画像のための第２の整合カメラモジュールを識別し、
前記左パノラマ画像のストリームにおける対応する左パノラマ画像を形成するために、特定の時間に前記第１の整合カメラモジュールによって取り込まれた第１の画像フレームをつなぎ合わせ、
前記右パノラマ画像のストリームにおける対応する右パノラマ画像を形成するために、特定の時間に前記第２の整合カメラモジュールによって取り込まれた第２の画像フレームをつなぎ合わせることにより、
前記３Ｄ映像データのストリームを生成するために前記画像フレームを集約する、請求項８に記載のシステム。
【請求項１０】
パノラマにおける、ヨー値およびピッチ値を有する画素のために、
前記左カメラマップは、前記パノラマにおける前記画素のための第１の整合カメラモジュールを識別して、前記パノラマにおける前記画素を前記第１の整合カメラモジュールの画像平面における画素に整合させ、
前記右カメラマップは、前記パノラマにおける前記画素のための第２の整合カメラモジュールを識別して、前記パノラマにおける前記画素を前記第２の整合カメラモジュールの画像平面における画素に整合させる、請求項９に記載のシステム。
【請求項１１】
前記左カメラマップは、左パノラマ画像における画素位置を対応する第１の整合カメラモジュールに関連付け、前記画素位置は、左視方向におけるパノラマの点に対応しており、
前記対応する第１の整合カメラモジュールは、前記パノラマの前記点への視方向を含む視野を有し、
前記対応する第１の整合カメラモジュールの前記視方向は、他のカメラモジュールに関連付けられた他の視方向よりも、前記左視方向に近い、請求項９に記載のシステム。
【請求項１２】
前記１つ以上のプロセッサによって実行可能な前記命令は、
ユーザに関連付けられた現在の視方向を判断し、
前記現在の視方向に基づいて、前記左パノラマ画像のストリームおよび前記右パノラマ画像のストリームを生成することにより、
前記３Ｄ映像データのストリームを生成するために前記画像フレームを集約する、請求項８に記載のシステム。
【請求項１３】
前記左パノラマ画像は、前記ユーザの前記現在の視方向において、前記現在の視方向とは反対の第２の視方向よりも高い解像度を有し、
前記右パノラマ画像は、前記ユーザの前記現在の視方向において、前記現在の視方向とは反対の前記第２の視方向よりも高い解像度を有する、請求項１２に記載のシステム。
【請求項１４】
前記１つ以上のプロセッサによって実行可能な前記命令は、
前記左パノラマ画像および前記右パノラマ画像における色欠陥を補正することと、
前記左パノラマ画像および前記右パノラマ画像におけるつなぎ合わせエラーを補正することとをさらに含む動作を行なう、請求項８に記載のシステム。
【請求項１５】
コンピュータ読取可能プログラムを含む非一時的なコンピュータ使用可能媒体を含む、コンピュータプログラム製品であって、前記コンピュータ読取可能プログラムは、コンピュータ上で実行されると、前記コンピュータに以下のステップを行なわせ、前記以下のステップは、
カメラモジュールから画像フレームを記述する映像データを受信するステップと、
マイクロホンアレイから音声データを受信するステップと、
３次元（３Ｄ）映像データのストリームを生成するために前記画像フレームを集約するステップとを含み、前記３Ｄ映像データのストリームは、左パノラマ画像のストリームおよび右パノラマ画像のストリームを含み、前記以下のステップはさらに、
前記音声データから３Ｄ音声データのストリームを生成するステップと、
前記３Ｄ映像データのストリームおよび前記３Ｄ音声データのストリームを含むバーチャルリアリティコンテンツを生成するステップとを含む、コンピュータプログラム製品。
【請求項１６】
前記３Ｄ映像データのストリームを生成するために前記画像フレームを集約するステップは、
左カメラマップに基づいて、左パノラマ画像のための第１の整合カメラモジュールを識別するステップと、
右カメラマップに基づいて、右パノラマ画像のための第２の整合カメラモジュールを識別するステップと、
前記左パノラマ画像のストリームにおける対応する左パノラマ画像を形成するために、特定の時間に前記第１の整合カメラモジュールによって取り込まれた第１の画像フレームをつなぎ合わせるステップと、
前記右パノラマ画像のストリームにおける対応する右パノラマ画像を形成するために、特定の時間に前記第２の整合カメラモジュールによって取り込まれた第２の画像フレームをつなぎ合わせるステップとを含む、請求項１５に記載のコンピュータプログラム製品。。
【請求項１７】
パノラマにおける、ヨー値およびピッチ値を有する画素のために、
前記左カメラマップは、前記パノラマにおける前記画素のための第１の整合カメラモジュールを識別して、前記パノラマにおける前記画素を前記第１の整合カメラモジュールの画像平面における画素に整合させ、
前記右カメラマップは、前記パノラマにおける前記画素のための第２の整合カメラモジュールを識別して、前記パノラマにおける前記画素を前記第２の整合カメラモジュールの画像平面における画素に整合させる、請求項１６に記載のコンピュータプログラム製品。
【請求項１８】
前記左カメラマップは、左パノラマ画像における画素位置を対応する第１の整合カメラモジュールに関連付け、前記画素位置は、左視方向におけるパノラマの点に対応しており、
前記対応する第１の整合カメラモジュールは、前記パノラマの前記点への視方向を含む視野を有し、
前記対応する第１の整合カメラモジュールの前記視方向は、他のカメラモジュールに関連付けられた他の視方向よりも、前記左視方向に近い、請求項１６に記載のコンピュータプログラム製品。
【請求項１９】
前記３Ｄ映像データのストリームを生成するために前記画像フレームを集約するステップは、
ユーザに関連付けられた現在の視方向を判断するステップと、
前記現在の視方向に基づいて、前記左パノラマ画像のストリームおよび前記右パノラマ画像のストリームを生成するステップとを含む、請求項１５に記載のコンピュータプログラム製品。
【請求項２０】
前記左パノラマ画像は、前記ユーザの前記現在の視方向において、前記現在の視方向とは反対の第２の視方向よりも高い解像度を有し、
前記右パノラマ画像は、前記ユーザの前記現在の視方向において、前記現在の視方向とは反対の前記第２の視方向よりも高い解像度を有する、請求項１９に記載のコンピュータプログラム製品。
【請求項２１】
方法であって、
特定の時間にカメラアレイの２つ以上のカメラモジュールによって取り込まれた画像フレームを受信するステップと、
前記２つ以上のカメラモジュールからの第１の組のカメラモジュール間に第１のバーチャルカメラを補間するステップと、
前記第１の組のカメラモジュール間の第１の組の視差マップを定めるステップと、
生成を行なうようにプログラミングされたプロセッサベースのコンピューティング装置によって、前記特定の時間に前記第１の組のカメラモジュールによって取り込まれた第１の組の画像フレームから、前記第１のバーチャルカメラのために、前記特定の時間に関連付けられた第１のバーチャルカメラ画像を生成するステップとを含み、前記第１のバーチャルカメラ画像は、前記第１の組の視差マップに基づいて生成され、前記方法はさらに、
前記２つ以上のカメラモジュールによって取り込まれた前記画像フレームおよび前記第１のバーチャルカメラの前記第１のバーチャルカメラ画像から、前記特定の時間に関連付けられた左パノラマ画像および右パノラマ画像を構築するステップを含む、方法。
【請求項２２】
前記第１の組のカメラモジュールは、重複する視野を有する第１のカメラモジュールおよび第２のカメラモジュールを含み、
前記第１の組のカメラモジュールによって取り込まれた前記第１の組の画像フレームは、前記第１のカメラモジュールによって取り込まれた第１の画像と、前記第２のカメラモジュールによって取り込まれた第２の画像とを含み、
前記第１の画像は、前記重複する視野上で前記第２の画像の第２のサブ画像と重複する第１のサブ画像を含み、
前記第１の組のカメラモジュール間の前記第１の組の視差マップを定めるステップは、
前記第１のサブ画像から前記第２のサブ画像に画素の視差をマッピングする第１の視差マップを定めるステップと、
前記第２のサブ画像から前記第１のサブ画像に画素の視差をマッピングする第２の視差マップを定めるステップとを含む、請求項２１に記載の方法。
【請求項２３】
前記第１のバーチャルカメラのために前記第１のバーチャルカメラ画像を生成するステップは、
前記第１および第２のカメラモジュールに対する前記第１のバーチャルカメラの位置を判断するステップと、
前記第１の視差マップおよび前記第１のバーチャルカメラの位置に基づいて、前記第１のサブ画像から第１のシフトされたサブ画像を生成するステップと、
前記第２の視差マップおよび前記第１のバーチャルカメラの位置に基づいて、前記第２のサブ画像から第２のシフトされたサブ画像を生成するステップと、
前記第１のバーチャルカメラのために前記第１のバーチャルカメラ画像を生成するために、前記第１のシフトされたサブ画像と前記第２のシフトされたサブ画像とを組合わせるステップとを含む、請求項２２に記載の方法。
【請求項２４】
前記第１のサブ画像から前記第２のサブ画像に画素の視差をマッピングする前記第１の視差マップを定めるステップは、
前記重複する視野における対応する画素位置ごとに、
前記画素位置での前記第１のサブ画像の第１の画素と第２の画素位置での前記第２のサブ画像の第２の画素との間の類似性スコアを求めるステップを含み、前記画素位置と前記第２の画素位置の各々との間の対応する距離は、異なる視差値と等しく、前記第１の視差マップを定めるステップはさらに、
前記類似性スコアから最高類似性スコアを求めるステップと、
前記最高類似性スコアに関連付けられた視差値を求めるステップと、
前記最高類似性スコアに関連付けられた前記視差値を、前記第１の視差マップにおける前記画素位置に割り当てるステップとを含む、請求項２２に記載の方法。
【請求項２５】
前記第２のサブ画像から前記第１のサブ画像に画素の視差をマッピングする前記第２の視差マップを定めるステップは、
前記重複する視野における対応する画素位置ごとに、
前記画素位置での前記第２のサブ画像の第１の画素と第２の画素位置での前記第１のサブ画像の第２の画素との間の類似性スコアを求めるステップを含み、前記画素位置と前記第２の画素位置の各々との間の対応する距離は、異なる視差値と等しく、前記第２の視差マップを定めるステップはさらに、
前記類似性スコアから最高類似性スコアを求めるステップと、
前記最高類似性スコアに関連付けられた視差値を求めるステップと、
前記最高類似性スコアに関連付けられた前記視差値を、前記第２の視差マップにおける前記画素位置に割り当てるステップとを含む、請求項２２に記載の方法。
【請求項２６】
前記第１のバーチャルカメラと前記第１の組のカメラモジュールからの第１のカメラモジュールとの間に第２のバーチャルカメラを補間するステップと、
前記第１のバーチャルカメラおよび前記第１のカメラモジュールに関連付けられた第２の組の視差マップを定めるステップと、
前記第２の組の視差マップに基づいて、前記第１のカメラモジュールの画像フレームおよび前記第１のバーチャルカメラモジュールの前記第１のバーチャルカメラ画像から、前記第２のバーチャルカメラのために、前記特定の時間に関連付けられた第２のバーチャルカメラ画像を生成するステップとをさらに含み、
前記特定の時間に関連付けられた前記左パノラマ画像および前記右パノラマ画像は、前記２つ以上のカメラモジュールによって取り込まれた前記画像フレーム、前記第１のバーチャルカメラの前記第１のバーチャルカメラ画像、および前記第２のバーチャルカメラの前記第２のバーチャルカメラ画像から構築される、請求項２１に記載の方法。
【請求項２７】
前記２つ以上のカメラモジュールからの第２の組のカメラモジュール間に第３のバーチャルカメラを補間するステップと、
前記第２の組のカメラモジュールに関連付けられた第３の組の視差マップを定めるステップと、
前記第３の組の視差マップに基づいて、前記特定の時間に前記第２の組のカメラモジュールによって取り込まれた第２の組の画像フレームから、前記第３のバーチャルカメラのために、前記特定の時間に関連付けられた第３のバーチャルカメラ画像を生成するステップとをさらに含み、
前記特定の時間に関連付けられた前記左パノラマ画像および前記右パノラマ画像は、前記２つ以上のカメラモジュールによって取り込まれた前記画像フレーム、前記第１のバーチャルカメラの前記第１のバーチャルカメラ画像、および前記第３のバーチャルカメラの前記第３のバーチャルカメラ画像から構築される、請求項２１に記載の方法。
【請求項２８】
前記２つ以上のカメラモジュールおよび前記第１のバーチャルカメラの構成に基づいて、左カメラマップおよび右カメラマップを構築するステップをさらに含み、
前記左パノラマ画像は、前記左カメラマップに基づいて、前記画像フレームおよび前記第１のバーチャルカメラ画像から構築され、
前記右パノラマ画像は、前記右カメラマップに基づいて、前記画像フレームおよび前記第１のバーチャルカメラ画像から構築される、請求項２１に記載の方法。
【請求項２９】
１つ以上のプロセッサと、
１つ以上の有形の非一時的なコンピュータ読取可能媒体とを含む、システムであって、前記コンピュータ読取可能媒体は、前記１つ以上のプロセッサに通信可能に結合され、以下の動作を行なうために前記１つ以上のプロセッサによって実行可能な実行可能命令を格納しており、前記以下の動作は、
特定の時間にカメラアレイの２つ以上のカメラモジュールによって取り込まれた画像フレームを受信することと、
前記２つ以上のカメラモジュールからの第１の組のカメラモジュール間に第１のバーチャルカメラを補間することと、
前記第１の組のカメラモジュール間の第１の組の視差マップを定めることと、
前記特定の時間に前記第１の組のカメラモジュールによって取り込まれた第１の組の画像フレームから、前記第１のバーチャルカメラのために、前記特定の時間に関連付けられた第１のバーチャルカメラ画像を、前記第１の組の視差マップに基づいて生成することと、
前記２つ以上のカメラモジュールによって取り込まれた前記画像フレームおよび前記第１のバーチャルカメラの前記第１のバーチャルカメラ画像から、前記特定の時間に関連付けられた左パノラマ画像および右パノラマ画像を構築することとを含む、システム。
【請求項３０】
前記第１の組のカメラモジュールは、重複する視野を有する第１のカメラモジュールおよび第２のカメラモジュールを含み、
前記第１の組のカメラモジュールによって取り込まれた前記第１の組の画像フレームは、前記第１のカメラモジュールによって取り込まれた第１の画像と、前記第２のカメラモジュールによって取り込まれた第２の画像とを含み、
前記第１の画像は、前記重複する視野上で前記第２の画像の第２のサブ画像と重複する第１のサブ画像を含み、
前記１つ以上のプロセッサによって実行可能な前記命令は、
前記第１のサブ画像から前記第２のサブ画像に画素の視差をマッピングする第１の視差マップを定め、
前記第２のサブ画像から前記第１のサブ画像に画素の視差をマッピングする第２の視差マップを定めることにより、
前記第１の組のカメラモジュール間の前記第１の組の視差マップを定める、請求項２９に記載のシステム。
【請求項３１】
前記１つ以上のプロセッサによって実行可能な前記命令は、
前記第１および第２のカメラモジュールに対する前記第１のバーチャルカメラの位置を判断し、
前記第１の視差マップおよび前記第１のバーチャルカメラの位置に基づいて、前記第１のサブ画像から第１のシフトされたサブ画像を生成し、
前記第２の視差マップおよび前記第１のバーチャルカメラの位置に基づいて、前記第２のサブ画像から第２のシフトされたサブ画像を生成し、
前記第１のバーチャルカメラのために前記第１のバーチャルカメラ画像を生成するために、前記第１のシフトされたサブ画像と前記第２のシフトされたサブ画像とを組合わせることにより、
前記第１のバーチャルカメラのために前記第１のバーチャルカメラ画像を生成する、請求項３０に記載のシステム。
【請求項３２】
前記１つ以上のプロセッサによって実行可能な前記命令は、
前記重複する視野における対応する画素位置ごとに、
前記画素位置での前記第１のサブ画像の第１の画素と第２の画素位置での前記第２のサブ画像の第２の画素との間の類似性スコアを求め（前記画素位置と前記第２の画素位置の各々との間の対応する距離は、異なる視差値と等しい）、
前記類似性スコアから最高類似性スコアを求め、
前記最高類似性スコアに関連付けられた視差値を求め、
前記最高類似性スコアに関連付けられた前記視差値を、前記第１の視差マップにおける前記画素位置に割り当てることにより、
前記第１のサブ画像から前記第２のサブ画像に画素の視差をマッピングする前記第１の視差マップを定める、請求項３０に記載のシステム。
【請求項３３】
前記１つ以上のプロセッサによって実行可能な前記命令は、
前記重複する視野における対応する画素位置ごとに、
前記画素位置での前記第２のサブ画像の第１の画素と第２の画素位置での前記第１のサブ画像の第２の画素との間の類似性スコアを求め（前記画素位置と前記第２の画素位置の各々との間の対応する距離は、異なる視差値と等しい）、
前記類似性スコアから最高類似性スコアを求め、
前記最高類似性スコアに関連付けられた視差値を求め、
前記最高類似性スコアに関連付けられた前記視差値を、前記第２の視差マップにおける前記画素位置に割り当てることにより、
前記第２のサブ画像から前記第１のサブ画像に画素の視差をマッピングする前記第２の視差マップを定める、請求項３０に記載のシステム。
【請求項３４】
前記１つ以上のプロセッサによって実行可能な前記命令は、
前記第１のバーチャルカメラと前記第１の組のカメラモジュールからの第１のカメラモジュールとの間に第２のバーチャルカメラを補間することと、
前記第１のバーチャルカメラおよび前記第１のカメラモジュールに関連付けられた第２の組の視差マップを定めることと、
前記第２の組の視差マップに基づいて、前記第１のカメラモジュールの画像フレームおよび前記第１のバーチャルカメラモジュールの前記第１のバーチャルカメラ画像から、前記第２のバーチャルカメラのために、前記特定の時間に関連付けられた第２のバーチャルカメラ画像を生成することとをさらに含む動作を行ない、
前記特定の時間に関連付けられた前記左パノラマ画像および前記右パノラマ画像は、前記２つ以上のカメラモジュールによって取り込まれた前記画像フレーム、前記第１のバーチャルカメラの前記第１のバーチャルカメラ画像、および前記第２のバーチャルカメラの前記第２のバーチャルカメラ画像から構築される、請求項２９に記載のシステム。
【請求項３５】
前記１つ以上のプロセッサによって実行可能な前記命令は、
前記２つ以上のカメラモジュールからの第２の組のカメラモジュール間に第３のバーチャルカメラを補間することと、
前記第２の組のカメラモジュールに関連付けられた第３の組の視差マップを定めることと、
前記第３の組の視差マップに基づいて、前記特定の時間に前記第２の組のカメラモジュールによって取り込まれた第２の組の画像フレームから、前記第３のバーチャルカメラのために、前記特定の時間に関連付けられた第３のバーチャルカメラ画像を生成することとをさらに含む動作を行ない、
前記特定の時間に関連付けられた前記左パノラマ画像および前記右パノラマ画像は、前記２つ以上のカメラモジュールによって取り込まれた前記画像フレーム、前記第１のバーチャルカメラの前記第１のバーチャルカメラ画像、および前記第３のバーチャルカメラの前記第３のバーチャルカメラ画像から構築される、請求項２９に記載のシステム。
【請求項３６】
コンピュータ読取可能プログラムを含む非一時的なコンピュータ使用可能媒体を含む、コンピュータプログラム製品であって、前記コンピュータ読取可能プログラムは、コンピュータ上で実行されると、
特定の時間にカメラアレイの２つ以上のカメラモジュールによって取り込まれた画像フレームを受信するステップと、
前記２つ以上のカメラモジュールからの第１の組のカメラモジュール間に第１のバーチャルカメラを補間するステップと、
前記第１の組のカメラモジュール間の第１の組の視差マップを定めるステップと、
前記特定の時間に前記第１の組のカメラモジュールによって取り込まれた第１の組の画像フレームから、前記第１のバーチャルカメラのために、前記特定の時間に関連付けられた第１のバーチャルカメラ画像を、前記第１の組の視差マップに基づいて生成するステップと、
前記２つ以上のカメラモジュールによって取り込まれた前記画像フレームおよび前記第１のバーチャルカメラの前記第１のバーチャルカメラ画像から、前記特定の時間に関連付けられた左パノラマ画像および右パノラマ画像を構築するステップとを、前記コンピュータに行なわせる、コンピュータプログラム製品。
【請求項３７】
前記第１の組のカメラモジュールは、重複する視野を有する第１のカメラモジュールおよび第２のカメラモジュールを含み、
前記第１の組のカメラモジュールによって取り込まれた前記第１の組の画像フレームは、前記第１のカメラモジュールによって取り込まれた第１の画像と、前記第２のカメラモジュールによって取り込まれた第２の画像とを含み、
前記第１の画像は、前記重複する視野上で前記第２の画像の第２のサブ画像と重複する第１のサブ画像を含み、
前記第１の組のカメラモジュール間の前記第１の組の視差マップを定めるステップは、
前記第１のサブ画像から前記第２のサブ画像に画素の視差をマッピングする第１の視差マップを定めるステップと、
前記第２のサブ画像から前記第１のサブ画像に画素の視差をマッピングする第２の視差マップを定めるステップとを含む、請求項３６に記載のコンピュータプログラム製品。
【請求項３８】
前記第１のバーチャルカメラのために前記第１のバーチャルカメラ画像を生成するステップは、
前記第１および第２のカメラモジュールに対する前記第１のバーチャルカメラの位置を判断するステップと、
前記第１の視差マップおよび前記第１のバーチャルカメラの位置に基づいて、前記第１のサブ画像から第１のシフトされたサブ画像を生成するステップと、
前記第２の視差マップおよび前記第１のバーチャルカメラの位置に基づいて、前記第２のサブ画像から第２のシフトされたサブ画像を生成するステップと、
前記第１のバーチャルカメラのために前記第１のバーチャルカメラ画像を生成するために、前記第１のシフトされたサブ画像と前記第２のシフトされたサブ画像とを組合わせるステップとを含む、請求項３７に記載のコンピュータプログラム製品。
【請求項３９】
前記第１のサブ画像から前記第２のサブ画像に画素の視差をマッピングする前記第１の視差マップを定めるステップは、
前記重複する視野における対応する画素位置ごとに、
前記画素位置での前記第１のサブ画像の第１の画素と第２の画素位置での前記第２のサブ画像の第２の画素との間の類似性スコアを求めるステップを含み、前記画素位置と前記第２の画素位置の各々との間の対応する距離は、異なる視差値と等しく、前記第１の視差マップを定めるステップはさらに、
前記類似性スコアから最高類似性スコアを求めるステップと、
前記最高類似性スコアに関連付けられた視差値を求めるステップと、
前記最高類似性スコアに関連付けられた前記視差値を、前記第１の視差マップにおける前記画素位置に割り当てるステップとを含む、請求項３７に記載のコンピュータプログラム製品。
【請求項４０】
前記第２のサブ画像から前記第１のサブ画像に画素の視差をマッピングする前記第２の視差マップを定めるステップは、
前記重複する視野における対応する画素位置ごとに、
前記画素位置での前記第２のサブ画像の第１の画素と第２の画素位置での前記第１のサブ画像の第２の画素との間の類似性スコアを求めるステップを含み、前記画素位置と前記第２の画素位置の各々との間の対応する距離は、異なる視差値と等しく、前記第２の視差マップを定めるステップはさらに、
前記類似性スコアから最高類似性スコアを求めるステップと、
前記最高類似性スコアに関連付けられた視差値を求めるステップと、
前記最高類似性スコアに関連付けられた前記視差値を、前記第２の視差マップにおける前記画素位置に割り当てるステップとを含む、請求項３７に記載のコンピュータプログラム製品。
【請求項４１】
前記コンピュータ読取可能プログラムは、前記コンピュータ上で実行されると、
前記第１のバーチャルカメラと前記第１の組のカメラモジュールからの第１のカメラモジュールとの間に第２のバーチャルカメラを補間するステップと、
前記第１のバーチャルカメラおよび前記第１のカメラモジュールに関連付けられた第２の組の視差マップを定めるステップと、
前記第２の組の視差マップに基づいて、前記第１のカメラモジュールの画像フレームおよび前記第１のバーチャルカメラモジュールの前記第１のバーチャルカメラ画像から、前記第２のバーチャルカメラのために、前記特定の時間に関連付けられた第２のバーチャルカメラ画像を生成するステップとを、前記コンピュータにさらに行なわせ、
前記特定の時間に関連付けられた前記左パノラマ画像および前記右パノラマ画像は、前記２つ以上のカメラモジュールによって取り込まれた前記画像フレーム、前記第１のバーチャルカメラの前記第１のバーチャルカメラ画像、および前記第２のバーチャルカメラの前記第２のバーチャルカメラ画像から構築される、請求項３６に記載のコンピュータプログラム製品。
【請求項４２】
前記コンピュータ読取可能プログラムは、前記コンピュータ上で実行されると、
前記２つ以上のカメラモジュールからの第２の組のカメラモジュール間に第３のバーチャルカメラを補間するステップと、
前記第２の組のカメラモジュールに関連付けられた第３の組の視差マップを定めるステップと、
前記第３の組の視差マップに基づいて、前記特定の時間に前記第２の組のカメラモジュールによって取り込まれた第２の組の画像フレームから、前記第３のバーチャルカメラのために、前記特定の時間に関連付けられた第３のバーチャルカメラ画像を生成するステップとを、前記コンピュータにさらに行なわせ、
前記特定の時間に関連付けられた前記左パノラマ画像および前記右パノラマ画像は、前記２つ以上のカメラモジュールによって取り込まれた前記画像フレーム、前記第１のバーチャルカメラの前記第１のバーチャルカメラ画像、および前記第３のバーチャルカメラの前記第３のバーチャルカメラ画像から構築される、請求項３６に記載のコンピュータプログラム製品。
【請求項４３】
生成を行なうようにプログラミングされたプロセッサベースのコンピューティング装置を用いて、３次元映像データの圧縮されたストリームおよび３次元音声データのストリームを含むバーチャルリアリティコンテンツを生成するステップと、
前記バーチャルリアリティコンテンツをユーザに提供するステップと、
前記バーチャルリアリティコンテンツでの前記ユーザの凝視の位置を検出するステップと、
前記ユーザの凝視の位置に基づいて第１の広告を示唆するステップとを含む、方法。
【請求項４４】
前記ユーザの凝視の位置に基づいて、広告を表示するための費用を決定するステップをさらに含む、請求項４３に記載の方法。
【請求項４５】
前記広告を表示するための費用を決定するステップはさらに、前記ユーザが前記位置を凝視する時間の長さに基づいている、請求項４４に記載の方法。
【請求項４６】
第２の広告にリンクされる前記バーチャルリアリティコンテンツの一部としてグラフィカルオブジェクトを提供するステップをさらに含む、請求項４３に記載の方法。
【請求項４７】
前記バーチャルリアリティコンテンツの少なくとも一部を含む底部および上部を表示するためのグラフィックスを生成するステップと、
少なくとも前記底部または前記上部の一部である広告を提供するステップとをさらに含む、請求項４３に記載の方法。
【請求項４８】
受信を行なうようにプログラミングされたプロセッサベースのコンピューティング装置を用いて、第１のユーザへの３次元映像データのストリームおよび３次元音声データのストリームを含むバーチャルリアリティコンテンツを受信するステップと、
前記第１のユーザのためにソーシャルネットワークを生成するステップと、
前記バーチャルリアリティコンテンツとのユーザのやりとりを含むソーシャルグラフを生成するステップとを含む、方法。
【請求項４９】
前記バーチャルリアリティコンテンツに基づいて、前記第１のユーザと第２のユーザとのつながりを示唆するステップをさらに含む、請求項４８に記載の方法。
【請求項５０】
前記バーチャルリアリティコンテンツに基づいて、前記ソーシャルネットワークに関連付けられたグループを示唆するステップをさらに含む、請求項４８に記載の方法。
【請求項５１】
前記第１のユーザが前記バーチャルリアリティコンテンツとやりとりすることに基づいて、ソーシャルネットワーク更新を自動的に生成するステップをさらに含む、請求項４８に記載の方法。
【請求項５２】
前記バーチャルリアリティコンテンツに関連付けられた主題を判断するステップと、
前記主題に興味を持っている他のユーザを判断するステップとをさらに含み、
前記他のユーザは、前記第１のユーザが前記バーチャルリアリティコンテンツとやりとりすることに基づいて、前記ソーシャルネットワーク更新を受信する、請求項５１に記載の方法。
【請求項５３】
前記主題に興味を持っている他のユーザを判断するステップは、前記他のユーザが、自分が前記主題に興味を持っていることを明らかに示すことに基づいている、請求項５２に記載の方法。
【請求項５４】
活動のタイプに基づいてソーシャルネットワーク更新を発行すべきかどうかを判断するために、前記第１のユーザのためのプライバシー設定を生成するステップをさらに含む、請求項４８に記載の方法。
【請求項５５】
前記バーチャルリアリティコンテンツの一部として表示された広告を前記第１のユーザが凝視することに関する情報をソーシャルグラフに格納するステップをさらに含む、請求項４８に記載の方法。
【請求項５６】
物理的な刺激を提供するために振動するよう、物理的ハードウェアに命令を送信するステップをさらに含む、請求項４８に記載の方法。
【請求項５７】
提供を行なうようにプログラミングされたプロセッサベースのコンピューティング装置を用いて、３次元映像データの圧縮されたストリームおよび３次元音声データのストリームを含むバーチャルリアリティコンテンツを提供するステップと、
前記バーチャルリアリティコンテンツのユーザ凝視の位置を判断するステップと、
位置ごとのユーザ凝視の数に基づいて、別々の色を含むヒートマップを生成するステップとを含む、方法。
【請求項５８】
バーチャルリアリティ体験のプレイリストを生成するステップをさらに含む、請求項５７に記載の方法。
【請求項５９】
前記プレイリストは、バーチャルリアリティコンテンツの多くのユーザビューに基づいている、請求項５８に記載の方法。
【請求項６０】
前記プレイリストは、地理的位置に基づいている、請求項５８に記載の方法。
【請求項６１】
前記プレイリストは、主題の専門家であるユーザによって生成され、前記プレイリストは前記主題に基づいている、請求項５８に記載の方法。
【請求項６２】
前記プレイリストは、ソーシャルグラフの２つ以上のユーザプロファイルでの傾向に基づいて自動的に生成される、請求項５８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
分野
ここに述べる実現化例は、バーチャルプレゼンスシステムおよび方法に関する。より特定的には、ここに述べる実現化例は、バーチャルリアリティ（virtual reality：ＶＲ）コンテンツを生成するために、カメラアレイからの画像フレームおよびマイクロホンアレイからの音声データを集約することに関する。
【背景技術】
【０００２】
背景
技術が向上するにつれて、人々は、人間同士の交流からますます遠ざかっている。現実の世界で人々と交流する代わりに、人々は、自分たちの電話や他のモバイル装置で生じる変化により興味を持つようになっている。これは、孤独および疎外感をもたらし得る。
【０００３】
孤立感を減少させるためのある方法は、バーチャルリアリティシステムの使用から生じる。バーチャルリアリティシステムでは、ユーザは、ソフトウェアによって生成された視覚的表示とやりとりして、新しい場所、活動などを体験する。たとえば、ユーザはゲームをし、ゲームの他の登場人物とやりとりする場合がある。別の例では、政府は現在、パイロットを訓練するためにバーチャルリアリティシステムを使用している。しかしながら、ＶＲシステムはリアリティが不十分であるため、現在のシステムは孤立感を完全には改善していない。
【０００４】
いくつかのＶＲゴーグルが市場に投入されている。これらのゴーグルは、スクリーンとジャイロスコープセンサと加速度計とを組合わせて、広範な視野と応答性の頭部追跡とを有するＶＲ鑑賞システムを作り出し得る。これらのＶＲゴーグルの多くは当初、ゲーム市場を狙ったものであり、初期反応は、それらが人気を博するであろうということを示している。
【０００５】
ここに請求される主題は、いかなる欠点も解決する実現化例、または上述のような環境でのみ動作する実現化例に限定されない。むしろ、この背景は、ここに説明されるいくつかの実現化例が実践され得る技術領域の一例を例示するためにのみ提供されている。
【発明の概要】
【課題を解決するための手段】
【０００６】
概要
この開示で説明される主題の革新的な一局面によれば、バーチャルリアリティコンテンツを生成するために画像フレームおよび音声データを集約するためのシステムは、１つ以上のプロセッサと、１つ以上の有形の非一時的なコンピュータ読取可能媒体とを含み、コンピュータ読取可能媒体は、１つ以上のプロセッサに通信可能に結合され、以下の動作を行なうために１つ以上のプロセッサによって実行可能な実行可能命令を格納しており、以下の動作は、カメラモジュールから画像フレームを記述する映像データを受信することと、マイクロホンアレイから音声データを受信することと、左パノラマ画像のストリームおよび右パノラマ画像のストリームを含む３Ｄ映像データのストリームを集約することと、音声データから３Ｄ音声データのストリームを生成することと、３Ｄ映像データのストリームおよび３Ｄ音声データのストリームを含むバーチャルリアリティコンテンツを生成することとを含む。
【０００７】
この開示で説明される主題の別の革新的な局面によれば、左パノラマ画像および右パノラマ画像を生成するために画像フレームをつなぎ合わせるためのシステムは、１つ以上のプロセッサと、１つ以上の有形の非一時的なコンピュータ読取可能媒体とを含み、コンピュータ読取可能媒体は、１つ以上のプロセッサに通信可能に結合され、以下の動作を行なうために１つ以上のプロセッサによって実行可能な実行可能命令を格納しており、以下の動作は、特定の時間にカメラアレイの２つ以上のカメラモジュールによって取り込まれた画像フレームを受信することと、２つ以上のカメラモジュールからの第１の組のカメラモジュール間に第１のバーチャルカメラを補間することと、第１の組のカメラモジュール間の第１の組の視差（disparity）マップを定めることと、特定の時間に第１の組のカメラモジュールによって取り込まれた第１の組の画像フレームから、第１のバーチャルカメラのために、特定の時間に関連付けられた第１のバーチャルカメラ画像を、第１の組の視差マップに基づいて生成することと、２つ以上のカメラモジュールによって取り込まれた画像フレームおよび第１のバーチャルカメラの第１のバーチャルカメラ画像から、特定の時間に関連付けられた左パノラマ画像および右パノラマ画像を構築することとを含む。
【０００８】
この開示で説明される主題のさらに別の革新的な局面によれば、システムは、１つ以上のプロセッサと、１つ以上の有形の非一時的なコンピュータ読取可能媒体とを含み、コンピュータ読取可能媒体は、１つ以上のプロセッサに通信可能に結合され、以下の動作を行なうために１つ以上のプロセッサによって実行可能な実行可能命令を格納しており、以下の動作は、生成を行なうようにプログラミングされたプロセッサベースのコンピューティング装置を用いて、３次元映像データの圧縮されたストリームおよび３次元音声データのストリームを含むバーチャルリアリティコンテンツを生成することと、バーチャルリアリティコンテンツをユーザに提供することと、バーチャルリアリティコンテンツでのユーザの凝視の位置を検出することと、ユーザの凝視の位置に基づいて第１の広告を示唆することとを含む。
【０００９】
この開示で説明される主題のさらに別の革新的な局面によれば、システムは、１つ以上のプロセッサと、１つ以上の有形の非一時的なコンピュータ読取可能媒体とを含み、コンピュータ読取可能媒体は、１つ以上のプロセッサに通信可能に結合され、以下の動作を行なうために１つ以上のプロセッサによって実行可能な実行可能命令を格納しており、以下の動作は、受信を行なうようにプログラミングされたプロセッサベースのコンピューティング装置を用いて、第１のユーザへの３次元映像データのストリームおよび３次元音声データのストリームを含むバーチャルリアリティコンテンツを受信することと、第１のユーザのためにソーシャルネットワークを生成することと、バーチャルリアリティコンテンツとのユーザのやりとりを含むソーシャルグラフを生成することとを含む。
【００１０】
この開示で説明される主題のさらに別の革新的な局面によれば、システムは、１つ以上のプロセッサと、１つ以上の有形の非一時的なコンピュータ読取可能媒体とを含み、コンピュータ読取可能媒体は、１つ以上のプロセッサに通信可能に結合され、以下の動作を行なうために１つ以上のプロセッサによって実行可能な実行可能命令を格納しており、以下の動作は、提供を行なうようにプログラミングされたプロセッサベースのコンピューティング装置を用いて、３次元映像データの圧縮されたストリームおよび３次元音声データのストリームを含むバーチャルリアリティコンテンツを提供することと、バーチャルリアリティコンテンツのユーザ凝視の位置を判断することと、位置ごとのユーザ凝視の数に基づいて、別々の色を含むヒートマップを生成することとを含む。
【００１１】
他の局面は、これらのおよび他の革新的な局面のための対応する方法、システム、機器、およびコンピュータプログラム製品を含む。
【００１２】
これらのおよび他の実現化例は各々、以下の動作および特徴のうちの１つ以上をオプションで含んでいてもよい。たとえば、特徴は、左カメラマップに基づいて、左パノラマ画像のための第１の整合カメラモジュールを識別すること；右カメラマップに基づいて、右パノラマ画像のための第２の整合カメラモジュールを識別すること；左パノラマ画像のストリームにおける対応する左パノラマ画像を形成するために、特定の時間に第１の整合カメラモジュールによって取り込まれた第１の画像フレームをつなぎ合わせること；右パノラマ画像のストリームにおける対応する右パノラマ画像を形成するために、特定の時間に第２の整合カメラモジュールによって取り込まれた第２の画像フレームをつなぎ合わせること；パノラマにおける、ヨー値およびピッチ値を有する画素のために、左カメラマップは、パノラマにおける画素のための第１の整合カメラモジュールを識別して、パノラマにおける画素を第１の整合カメラモジュールの画像平面における画素に整合させ、右カメラマップは、パノラマにおける画素のための第２の整合カメラモジュールを識別して、パノラマにおける画素を第２の整合カメラモジュールの画像平面における画素に整合させること；左カメラマップは、左パノラマ画像における画素位置を対応する第１の整合カメラモジュールに関連付け、画素位置は、左視方向におけるパノラマの点に対応していること；対応する第１の整合カメラモジュールは、パノラマの点への視方向を含む視野を有すること；対応する第１の整合カメラモジュールの視方向は、他のカメラモジュールに関連付けられた他の視方向よりも、左視方向に近いこと；ユーザに関連付けられた現在の視方向を判断すること；現在の視方向に基づいて、左パノラマ画像のストリームおよび右パノラマ画像のストリームを生成すること；左パノラマ画像は、ユーザの現在の視方向において、現在の視方向とは反対の第２の視方向よりも高い解像度を有すること；右パノラマ画像は、ユーザの現在の視方向において、現在の視方向とは反対の第２の視方向よりも高い解像度を有することを含む。
【００１３】
たとえば、動作は、左パノラマ画像および右パノラマ画像における色欠陥を補正することと、左パノラマ画像および右パノラマ画像におけるつなぎ合わせエラーを補正することとを含む。
【００１４】
たとえば、動作は、ユーザの凝視の位置に基づいて、広告を表示するための費用を決定し、費用はユーザが位置を凝視する時間の長さに基づいていること；第２の広告にリンクされるバーチャルリアリティコンテンツの一部としてグラフィカルオブジェクトを提供すること；バーチャルリアリティコンテンツの少なくとも一部を含む底部および上部を表示するためのグラフィックスを生成して、少なくとも底部または上部の一部である広告を提供することを含む。
【００１５】
たとえば、動作は、バーチャルリアリティコンテンツに基づいて、第１のユーザと第２のユーザとのつながりを示唆すること；バーチャルリアリティコンテンツに基づいて、ソーシャルネットワークに関連付けられたグループを示唆すること；第１のユーザがバーチャルリアリティコンテンツとやりとりすることに基づいて、ソーシャルネットワーク更新を自動的に生成することを含むこと；バーチャルリアリティコンテンツに関連付けられた主題を判断し、主題に興味を持っている他のユーザを判断すること、他のユーザは、第１のユーザがバーチャルリアリティコンテンツとやりとりすることに基づいて、ソーシャルネットワーク更新を受信すること；活動のタイプに基づいてソーシャルネットワーク更新を発行すべきかどうかを判断するために、第１のユーザのためのプライバシー設定を生成すること；および、バーチャルリアリティコンテンツの一部として表示された広告を第１のユーザが凝視することに関する情報をソーシャルグラフに格納することを含む。
【００１６】
特徴は、主題に興味を持っている他のユーザを判断することは、他のユーザが、自分が主題に興味を持っていることを明らかに示すことに基づいている、ということをオプションで含んでいてもよい。
【００１７】
たとえば、動作は、バーチャルリアリティ体験のプレイリストを生成することを含む。特徴は、プレイリストが、バーチャルリアリティコンテンツの多くのユーザビュー、地理的位置に基づいていること、または、プレイリストが、主題の専門家であるユーザによって生成され、プレイリストは主題に基づいていることを含んでいてもよい。
【００１８】
実現化例の目的および利点は、少なくとも、請求項で特に指摘された要素、特徴、および組合せによって実現され、達成されるであろう。
【００１９】
前述の概説および以下の詳細な説明はともに例示および説明のためのものであり、請求されているようなこの開示を限定するためのものではない、ということが理解されるべきである。
【００２０】
図面の簡単な説明
添付図面を用いて、例示的な実現化例を、追加の特定性および詳細とともに記載し、説明する。
【図面の簡単な説明】
【００２１】
【図１Ａ】ＶＲコンテンツを生成するために画像フレームおよび音声データを収集し、集約する例示的なシステムのいくつかの実現化例のブロック図である。
【図１Ｂ】バーチャルリアリティシステム用のコンテンツを生成するための例示的なシステムのいくつかの実現化例のブロック図である。
【図２】例示的な集約システムを含むコンピューティング装置のいくつかの実現化例のブロック図である。
【図３】いくつかの実現化例に従った、ＶＲコンテンツを生成するために画像フレームおよび音声データを集約するための例示的な方法を示す図である。
【図４Ａ】いくつかの実現化例に従った、ＶＲコンテンツを生成するために画像フレームおよび音声データを集約するための別の例示的な方法の一部を示す図である。
【図４Ｂ】いくつかの実現化例に従った、ＶＲコンテンツを生成するために画像フレームおよび音声データを集約するための別の例示的な方法の一部を示す図である。
【図４Ｃ】いくつかの実現化例に従った、ＶＲコンテンツを生成するために画像フレームおよび音声データを集約するための別の例示的な方法の一部を示す図である。
【図５】特定の時間に複数のカメラモジュールによって取り込まれた複数の画像フレームから左パノラマ画像および右パノラマ画像を生成する例示的なプロセスを示す図である。
【図６Ａ】例示的なパノラマ画像を示す図解である。
【図６Ｂ】例示的なカメラマップを示す図解である。
【図７Ａ】左カメラマップを構築するために左パノラマ画像における画素のための第１のカメラモジュールを選択し、右カメラマップを構築するために右パノラマ画像における画素のための第２のカメラモジュールを選択する例示的なプロセスを示す図解である。
【図７Ｂ】左カメラマップを構築するために左パノラマ画像における画素のための第１のカメラモジュールを選択し、右カメラマップを構築するために右パノラマ画像における画素のための第２のカメラモジュールを選択する例示的なプロセスを示す図解である。
【図８】２つのカメラ区分の境界上の画素を混合する例示的なプロセスを示す図解である。
【図９Ａ】表現が向上した例示的なパノラマ画像を示す図解である。
【図９Ｂ】表現が向上した例示的なパノラマ画像を示す図解である。
【図１０Ａ】いくつかの実現化例に従った、カメラの増加密度とつなぎ合わせエラーの減少との関係を示す図解である。
【図１０Ｂ】いくつかの実現化例に従った、カメラの増加密度とつなぎ合わせエラーの減少との関係を示す図解である。
【図１０Ｃ】いくつかの実現化例に従った、カメラの増加密度とつなぎ合わせエラーの減少との関係を示す図解である。
【図１１】例示的な集約システムを含むコンピューティング装置のいくつかの実現化例のブロック図である。
【図１２Ａ】いくつかの実現化例に従った、左および右パノラマ画像を生成するために特定の時間に取り込まれた画像フレームをつなぎ合わせるための例示的な方法の一部を示す図である。
【図１２Ｂ】いくつかの実現化例に従った、左および右パノラマ画像を生成するために特定の時間に取り込まれた画像フレームをつなぎ合わせるための例示的な方法の一部を示す図である。
【図１３Ａ】いくつかの実現化例に従った、２つの隣接するカメラモジュール間に位置するバーチャルカメラのためにバーチャルカメラ画像を生成するための例示的な方法の一部を示す図である。
【図１３Ｂ】いくつかの実現化例に従った、２つの隣接するカメラモジュール間に位置するバーチャルカメラのためにバーチャルカメラ画像を生成するための例示的な方法の一部を示す図である。
【図１４Ａ】いくつかの実現化例に従った、第１の隣接するカメラモジュールの第１のサブ画像から第２の隣接するカメラモジュールの第２のサブ画像に画素の視差をマッピングする視差マップを推定するための例示的な方法の一部を示す図である。
【図１４Ｂ】いくつかの実現化例に従った、第１の隣接するカメラモジュールの第１のサブ画像から第２の隣接するカメラモジュールの第２のサブ画像に画素の視差をマッピングする視差マップを推定するための例示的な方法の一部を示す図である。
【図１５Ａ】いくつかの実現化例に従った、２つの隣接するカメラモジュールの投影中心を接続するエピポーラ線に沿った画素のための類似性スコアを求めるための例示的な方法の一部を示す図である。
【図１５Ｂ】いくつかの実現化例に従った、２つの隣接するカメラモジュールの投影中心を接続するエピポーラ線に沿った画素のための類似性スコアを求めるための例示的な方法の一部を示す図である。
【図１６Ａ】いくつかの実現化例に従った、特定の時間に関連付けられた左パノラマ画像および右パノラマ画像を生成する例示的なプロセスを示す図である。
【図１６Ｂ】いくつかの実現化例に従った、例示的なパノラマ画像を示す図解である。
【図１６Ｃ】いくつかの実現化例に従った、例示的なカメラマップを示す図解である。
【図１７Ａ】いくつかの実現化例に従った、左および右カメラマップの構築のためにパノラマにおける点のための整合カメラを選択することを示す図解である。
【図１７Ｂ】いくつかの実現化例に従った、左および右カメラマップの構築のためにパノラマにおける点のための整合カメラを選択することを示す図解である。
【図１７Ｃ】いくつかの実現化例に従った、左および右カメラマップの構築のためにパノラマにおける点のための整合カメラを選択することを示す図解である。
【図１８】いくつかの実現化例に従った、エピポーラ線に沿った例示的な視差を示す図解である。
【図１９】いくつかの実現化例に従った、実在するカメラとバーチャルカメラとの間へのバーチャルカメラの補間を示す図解である。
【図２０】例示的なコンテンツシステムを含むコンピューティング装置のいくつかの実現化例のブロック図である。
【図２１Ａ】バーチャルリアリティコンテンツが表示され得る異なるパネルを示す図である。
【図２１Ｂ】バーチャルリアリティコンテンツの一部として表示される例示的な広告を示す図である。
【図２１Ｃ】例示的なソーシャルネットワークコンテンツを示す図である。
【図２１Ｄ】追加のバーチャルリアリティコンテンツへのリンクを含む例示的なバーチャルリアリティコンテンツを示す図である。
【図２２Ａ】いくつかの実現化例に従った、ＶＲコンテンツを生成するために画像フレームおよび音声データを集約するための例示的な方法の一部を示す図である。
【図２２Ｂ】いくつかの実現化例に従った、ＶＲコンテンツを生成するために画像フレームおよび音声データを集約するための例示的な方法の一部を示す図である。
【図２２Ｃ】いくつかの実現化例に従った、ＶＲコンテンツを生成するために画像フレームおよび音声データを集約するための例示的な方法の一部を示す図である。
【図２３】バーチャルリアリティシステムにおいて広告を生成するための例示的な方法を示す図である。
【図２４】バーチャルリアリティコンテンツに基づいてソーシャルネットワークを生成するための例示的な方法を示す図である。
【図２５】バーチャルリアリティコンテンツを分析するための例示的な方法を示す図である。
【発明を実施するための形態】
【００２２】
いくつかの例示的な実現化例の詳細な説明
ＶＲ体験は、別の場所にいるというリアルな感覚を生み出すものを含む場合がある。そのような体験を生み出すことは、あるシーンについて３次元（「３−Ｄ」）映像およびオプションで３−Ｄ音声を再生することを伴う場合がある。たとえば、ユーザが、頭上に木の枝の樹冠がある森の中に立っていると想像されたい。ユーザは、さまざまな方向において木々、岩、および他の物体を見るであろう。ユーザが自分の頭を左右におよび／または上下に回転させるにつれて、物体の視差（たとえば、位置のシフト）が、奥行き知覚、たとえば、視野における物体までの距離、および／または視野における物体間の距離を概して知覚する能力をユーザに提供する。ユーザは、流れる水を聞いて、自分の背後に小川または川があると感知するであろう。ユーザが自分の頭を側方に傾けるにつれて、ユーザの小川または川の見え方が変化し、水の音が変化する。小川または川はより見やすくなり、および／または、水の音はよりはっきりと、より明瞭になるであろう。ユーザは、水が自分からどれくらい離れているか、および水がどれくらいの速さで流れているかについてよりよく感知する。ユーザの上方の木の枝の樹冠では、鳥が鳴いている。ユーザが自分の頭を上方に傾けると、ユーザの感覚は周囲の環境の変化を検出する。ユーザは樹冠を見るであろう。ユーザは青い鳥が鳴いているのを見るであろう。ユーザは、視差に基づいて、鳥がどれくらい離れているかという感覚を有するであろう。そしてユーザは現在、鳥に面しているため、鳥が鳴いているのをよりはっきりと、大きい声で聞くであろう。ユーザは自分の頭を元の前向きの位置へと傾け、そこでユーザは、自分からほんの１０フィート離れたところに立っている鹿に面するであろう。鹿はユーザに向かって走り出し、ユーザの奥行き知覚は、鹿が自分に近づいていることを示す。ユーザの奥行き知覚と鹿の周囲の物体の相対位置とに基づいて、ユーザは、鹿が速いペースで自分に向かって走ってきていることがわかるであろう。
【００２３】
現在のＶＲソリューションは、前の段落に述べられたシーンを、空間的に分離された複数のカメラによって生成される映像からリアルに再現できない場合がある。たとえば、３Ｄ映像は、鹿がユーザに向かって走ってきていること、およびあるペースで走ってきていることを示す奥行き知覚を有することが必要とされる。３Ｄ音声は、３Ｄ映像を強化し得る。たとえば、３Ｄ音声により、ユーザは、自分の頭を左右に傾けるにつれて水の変化を聞くこと、または、自分の頭を上方に傾けるにつれて鳥のさえずりを違ったふうに聞くことができるようになり得る。既存のソリューションは、ここに説明されるように３Ｄ映像を作り出さず、および／または３Ｄ映像を３Ｄ音声と組合わせないため、それらは、前の段落に述べられたシーンをリアルに再現することができない。
【００２４】
この開示は、オプションで没入型の３Ｄ音声聴取体験と組合わされ得る没入型の３Ｄ鑑賞体験を提供することにより、別の場所にいるというリアルな感覚を生み出すことに関する。
【００２５】
いくつかの実現化例では、ここに説明されるシステムは、カメラアレイ、マイクロホンアレイ、集約システム、鑑賞システム、および他の装置、システム、またはサーバを含み得る。このシステムは、カメラアレイおよびマイクロホンアレイによって記録され得る、コンサート、スポーツの試合、結婚式、記者会見、映画、プロモーションイベント、テレビ会議、もしくは他のイベントまたはシーンを含むもののそれらに限定されない、あらゆるイベントの記録および提示に適用可能である。イベントまたはシーンの記録は、イベントが起こっている間、またはその後で、ＶＲディスプレイ（たとえば、１対のＶＲゴーグル）を通して鑑賞され得る。
【００２６】
カメラアレイに含まれるカメラモジュールは、球状ハウジングの周りに搭載され、十分な直径および視野を有して異なる方向に配向されたレンズを有していてもよく、そのため、立体画像をレンダリングするために十分な視差がカメラモジュールによって取り込まれる。カメラアレイは、異なる視方向を有する画像フレームを記述する未加工映像データを集約システムに出力してもよい。
【００２７】
マイクロホンアレイは、さまざまな方向から音を取り込むことができる。マイクロホンアレイは、取り込まれた音および関連する指向性を集約システムに出力してもよく、それは、集約システムが任意の方向からの音を再現することを可能にする。
【００２８】
集約システムは、カメラアレイから出力された未加工映像データおよびマイクロホンアレイから出力された未加工音声データを、処理および格納のために集約してもよい。いくつかの実現化例では、集約システムは、未加工映像データを収集するための１組のギガビット・イーサネット（登録商標）スイッチと、未加工音声データを収集するための音声インターフェイスとを含んでいてもよい。未加工映像データおよび音声データはともに、未加工映像データおよび音声データを格納するための記憶装置を有するクライアント装置またはサーバに供給されてもよい。
【００２９】
集約システムは、複数の記録装置にわたって受信された未加工映像データおよび音声データを処理するために、および、未加工映像データおよび音声データを３Ｄ映像および音声データの単一の圧縮されたストリームに変換するために、非一時的メモリに格納されたコードおよびルーチンを含んでいてもよい。たとえば、集約システムは、プロセッサによって実行されると、複数のカメラモジュールからの画像フレームを、左目視のための左パノラマ画像のストリーム（パノラマ画像の左ストリームとも呼ばれる）および右目視のための右パノラマ画像のストリーム（パノラマ画像の右ストリームとも呼ばれる）といった左目視および右目視のための２つのパノラマ３Ｄ映像ストリームになるようにつなぎ合わせるコードおよびルーチンを含んでいてもよい。
【００３０】
いくつかの実現化例では、集約システムは、各々異なる方向の複数のビューからの画像フレームを使用して立体パノラマを構築してもよい。たとえば、カメラアレイは、球の全３６０度の周りに配置された複数のカメラモジュールを含む。カメラモジュールは各々、異なる方向を指すレンズを有する。カメラモジュールは球の３６０度の周りに配置され、シーンの画像を複数の視点から撮っているため、特定の時間にカメラモジュールによって取込まれた画像は、異なる方向からのシーンの複数のビューを含む。結果として生じる、特定の時間についての左または右パノラマ画像は、その特定の時間におけるシーンの球状表現を含む。左または右パノラマ画像における各画素は、隣接する画素とはわずかに異なる方向のシーンのビューを表わしていてもよい。
【００３１】
いくつかの実現化例では、集約システムは、左カメラマップに基づいて、カメラアレイによって取り込まれた画像フレームから左目視のための左パノラマ画像のストリームを生成する。左カメラマップは、左パノラマ画像における画素ごとに、対応する整合カメラモジュールを識別する。パノラマ画像における画素は、パノラマシーンにおける点に対応していてもよく、パノラマ画像における画素のための整合カメラモジュールは、他のカメラモジュールよりも、その点についてのより良好なビューを有するレンズを有するカメラモジュールであってもよい。左カメラマップは、左パノラマ画像における画素を、対応する整合カメラモジュールにマッピングしてもよい。同様に、集約システムは、右カメラマップに基づいて、カメラアレイによって取り込まれた画像フレームから右目視のための右パノラマ画像のストリームを生成する。右カメラマップは、右パノラマ画像における画素ごとに、対応する整合カメラモジュールを識別する。右カメラマップは、右パノラマ画像における画素を、対応する整合カメラモジュールにマッピングしてもよい。
【００３２】
集約システムはまた、プロセッサによって実行されると、左および右パノラマ画像上のカメラ較正エラー、露光または色欠陥、つなぎ合わせアーチファクト、およびの他のエラーを補正するコードおよびルーチンを含んでいてもよい。
【００３３】
集約システムはまた、４チャンネルアンビソニック音声トラックを３Ｄ映像ストリームに追加してもよく、標準ムービング・ピクチャー・エキスパーツ・グループ（moving picture experts group：ＭＰＥＧ）フォーマットまたは他の好適なコード化／圧縮フォーマットを使用して３Ｄ映像および音声ストリームをコード化し圧縮してもよい。
【００３４】
いくつかの実現化例では、集約システムは、３Ｄ映像データをフィルタリングしてその品質を向上させるように構成されたコードおよびルーチンを含む。集約システムはまた、映像の見た目を映像効果を用いて意図的に変更するためのコードおよびルーチンを含んでいてもよい。いくつかの実現化例では、集約システムは、映像においてユーザにとって興味のある区域を判断し、その映像における興味のある区域に対応する音声を増強するように構成されたコードおよびルーチンを含む。
【００３５】
鑑賞システムは、ＶＲ表示装置（たとえば、オキュラス・リフト（Oculus Rift）ＶＲディスプレイまたは他の好適なＶＲディスプレイ）、および音声再生装置（たとえば、ヘッドホンまたは他の好適なスピーカ）上で、集約システムから受信された３Ｄ映像および音声ストリームを復号してレンダリングする。ＶＲ表示装置は、没入型の３Ｄ鑑賞体験を提供するために、ユーザのために左および右パノラマ画像を表示してもよい。鑑賞システムは、ユーザの頭の動きを追跡するＶＲ表示装置を含んでいてもよい。鑑賞システムはまた、没入型の３Ｄ鑑賞体験をユーザに提示するために、ユーザの頭の動きに基づいて３Ｄ映像データおよび音声データを処理して調節するためのコードおよびルーチンを含んでいてもよく、それにより、ユーザは、イベントまたはシーンを任意の方向で見ることができる。オプションで、３Ｄ音声も、３Ｄ鑑賞体験を強化するために提供されてもよい。
【００３６】
いくつかの実現化例では、ここに説明されるシステムは、コンテンツシステムを含む。コンテンツシステムは、集約システムの機能性と同様の機能性を提供してもよい。コンテンツシステムはまた、以下により詳細に説明されるような他の機能性を提供してもよい。
【００３７】
バーチャルリアリティコンテンツが一旦生成されれば、バーチャルリアリティコンテンツのための用途はたくさんある。一実施形態では、コンテンツシステムは、バーチャルリアリティ内に広告を生成する。たとえば、広告は、ユーザの上方またはユーザの下方といった目立たない区域に表示される。バーチャルリアリティシステムは、ユーザの凝視の位置に基づいて、広告についてどのように請求するかを判断できてもよい。別の実施形態では、コンテンツシステムはソーシャルネットワークアプリケーションと通信して、バーチャルリアリティコンテンツをともに使用するために、ソーシャルネットワーク上のユーザの友達についてバーチャルリアリティ更新を生成するために、あるバーチャルリアリティ主題に対するユーザの興味に基づいてユーザにコンテンツを示唆するなどのために、ユーザを識別する。さらに別の実施形態では、バーチャルリアリティシステムは、ユーザ凝視のヒートマップ、およびバーチャルリアリティ体験のプレイリストといった全体的使用情報を判断する。
【００３８】
この開示はまた、パノラマ画像を形成するために画像をつなぎ合わせることに関する。
画像つなぎ合わせエラーは、カメラの物理的特性の測定におけるエラー（たとえば、カメラの空間位置、回転、焦点、および焦点距離におけるエラー）を含む第１の原因、カメラの画像測定特性間の不整合（たとえば、輝度、コントラスト、および色における不整合）を含む第２の原因、および、異なるカメラからの近くの物体の視角の差異を含む第３の原因を含むもののそれらに限定されない１つ以上の原因から生じ得る。
【００３９】
第１および第２の原因によって生じるつなぎ合わせエラーは、カメラ較正を通して除去され得る。たとえば、公知の色、輝度、コントラスト、空間的配向、および位置を有する物体を使用して、各カメラを特徴付け、画像フレームを取り込むためにカメラを使用する前にカメラパラメータ（たとえば、焦点、センサゲイン、ホワイトバランス）を調節してもよい。それに代えて、またはそれに加えて、カメラ間の重複する画像を分析してもよく、画像後処理手法を使用して、重複する画像間の差を減少させるようにカメラモデルパラメータを調節してもよい。
【００４０】
第３の原因によって生じるつなぎ合わせエラーは、単一の連続的な、球状の画像センサの理想に近づくように、カメラアレイにおける（実在するカメラとも呼ばれる）カメラモジュールの数を増加させることによって減少または排除され得る。このメカニズムは、隣接するカメラ間の視角の差異を減少させ、ひいては、つなぎ合わせアーチファクトを減少させ得る。いくつかの実現化例では、より多くの実在するカメラをカメラアレイに追加するのではなく、カメラアレイにおける実在するカメラ間にバーチャルカメラを補間することによって、増加するカメラ密度が達成されてもよい。このアプローチは、バーチャルカメラのためのバーチャルカメラ画像を生成するために、各画像画素の空間的近接または奥行き（たとえば、奥行きマップ）の推定に少なくとも部分的に基づいて、実在のカメラからの画像を補間することによって達成されてもよい。たとえば、カメラビューの左へのシフトを近似するために、画像における画素は、カメラへの画素の推定された近接に基づいて右にシフトされてもよい。パララックスをシミュレートするために、第２の画素よりもカメラに近い第１の画素は、第２の画素よりも長い距離右にシフトしてもよい。画素シフトから生成されるバーチャルカメラ画像は、すべての近くのカメラからのシフトされたビューを組合わせることによって改良されてもよい。
【００４１】
いくつかの実現化例では、奥行きセンサが、標準立体アルゴリズムを使用して計算され、またはプライムセンス（PrimeSense）の奥行きセンサなどの奥行きセンサを用いて得られてもよい。奥行きセンサは、補間されたビューにおいて目に見える差をエラーがもたらさない限り、完全に正確でなくてもよい。たとえば、特徴がない背景が、背景への鑑賞位置または視角にかかわらず、同一画像として存在してもよい。特徴がない背景は画素シフトに対して変化しないため、背景の奥行き推定におけるエラーは、画像補間に影響を与えない場合がある。
【００４２】
いくつかの実現化例では、ここに説明される集約システムは、増加するカメラ密度をシミュレートするために、カメラアレイにおけるカメラモジュール間にバーチャルカメラを補間してもよい。バーチャルカメラは、そのビューが直接観察されないカメラであってもよい。たとえば、バーチャルカメラは、そのビューが実在するカメラセンサから収集された画像データまたは他のバーチャルカメラのバーチャルカメラ画像データから推定され得るカメラであってもよい。バーチャルカメラは、２つ以上の隣接するカメラモジュール間に位置する、シミュレートされたカメラを表わしていてもよい。バーチャルカメラの位置、配向、視野、被写界深度、焦点距離、露光、およびホワイトバランスなどは、バーチャルカメラが基づいている２つ以上の隣接するカメラモジュールとは異なっていてもよい。
【００４３】
バーチャルカメラは、２つ以上の隣接するカメラモジュールによって取り込まれた２つ以上の画像フレームから推定されたバーチャルカメラ画像を有していてもよい。いくつかの実現化例では、バーチャルカメラは、２つ以上の隣接するカメラモジュール間の特定の位置に位置していてもよく、バーチャルカメラのバーチャルカメラ画像は、隣接するカメラモジュール間に位置する特定の位置からの推定されたカメラビューを表わしていてもよい。たとえば、複数のカメラモジュールを有するカメラアレイは、球状のケースの周りに収容されてもよい。バーチャルカメラは、球状のケースの周りの任意の角度位置について定められてもよく、そのバーチャルカメラ画像もその任意の角度位置について推定されてもよい。それは、カメラアレイが単に別々のカメラモジュールによって別々の視点を取り込む場合でも、球の周りでの視点の連続回転をシミュレートする。いくつかの実現化例では、バーチャルカメラはまた、実在する２つのカメラ間に補間することによって推定されてもよい。実在するカメラは、カメラアレイにおけるカメラモジュールを指していてもよい。それに代えて、バーチャルカメラはまた、実在するカメラと別のバーチャルカメラとの間に補間されてもよい。それに代えて、バーチャルカメラは、２つの他のバーチャルカメラ間に補間されてもよい。
【００４４】
いくつかの実現化例では、集約システムは、第１および第２のカメラ間の視差マップを推定すること、第１および第２のカメラの画像フレームを判断すること、ならびに、視差マップに基づいて第１および第２のカメラの画像フレームをシフトし、組合わせてバーチャルカメラ画像を生成することによって、第１のカメラと第２のカメラとの間に位置するバーチャルカメラのためのバーチャルカメラ画像を推定してもよい。第１のカメラは、実在するカメラであってもよく、またはバーチャルカメラであってもよい。第２のカメラも、実在するカメラであってもよく、またはバーチャルカメラであってもよい。
【００４５】
いくつかの実現化例では、集約システムは、カメラアレイにおけるカメラモジュールによって取り込まれた画像フレームを記述する映像データを受信してもよく、３Ｄ映像データのストリームを生成するためにその映像データを処理してもよい。たとえば、集約システムは、カメラアレイにおいて補間されるバーチャルカメラを定め、バーチャルカメラのためのバーチャルカメラ画像を推定し、画像フレームおよびバーチャルカメラ画像を、左目視のための左パノラマ画像のストリームおよび右目視のための右パノラマ画像のストリームといった左目視および右目視のための２つのパノラマ３Ｄ映像ストリームになるようにつなぎ合わせてもよい。３Ｄ映像データのストリームは、左および右パノラマ画像のストリームを含む。
【００４６】
この開示の実現化例を、添付図面を参照して説明する。
図１Ａは、ここに説明される少なくともいくつかの実現化例に従って配置された、ＶＲコンテンツを生成するために画像フレームおよび音声データを収集し、集約する例示的なシステム１００のいくつかの実現化例のブロック図を示す。図示されたシステム１００は、カメラアレイ１０１と、接続ハブ１２３と、マイクロホンアレイ１０７と、クライアント装置１２７と、鑑賞システム１３３とを含む。いくつかの実現化例では、システム１００は加えて、サーバ１２９と、第２のサーバ１９８とを含む。クライアント装置１２７、鑑賞システム１３３、サーバ１２９、および第２のサーバ１９８は、ネットワーク１０５を介して通信可能に結合されてもよい。
【００４７】
ここに説明される実現化例におけるさまざまな構成要素およびサーバの分離は、すべての実現化例においてそのような分離を必要とする、と理解されるべきではなく、説明される構成要素およびサーバは概して、単一の構成要素またはサーバにともに組込まれ得る、ということが理解されるべきである。この開示に鑑みて理解されるように、追加、修正、または省略が、この開示の範囲から逸脱することなく、図示された実現化例に行なわれてもよい。
【００４８】
図１Ａは、１つのカメラアレイ１０１と、１つの接続ハブ１２３と、１つのマイクロホンアレイ１０７と、１つのクライアント装置１２７と、１つのサーバ１２９と、１つの第２のサーバ１９８とを示しているが、この開示は、１つ以上のカメラアレイ１０１と、１つ以上の接続ハブ１２３と、１つ以上のマイクロホンアレイ１０７と、１つ以上のクライアント装置１２７と、１つ以上のサーバ１２９と、１つ以上の第２のサーバ１９８と、１つ以上の鑑賞システム１３３とを有するシステムアーキテクチャに当てはまる。さらに、図１Ａはシステム１００のエンティティに結合された１つのネットワーク１０５を示しているが、実際には、１つ以上のネットワーク１０５がこれらのエンティティに接続されてもよく、その１つ以上のネットワーク１０５はさまざまな異なるタイプのものであってもよい。
【００４９】
カメラアレイ１０１は、画像フレームを含む未加工映像データを取り込むように構成されたモジュール式カメラシステムであってもよい。図１Ａに示す図示された実現化例では、カメラアレイ１０１は、（ここに個別におよびまとめてカメラモジュール１０３とも呼ばれる）カメラモジュール１０３ａ、１０３ｂ…１０３ｎを含む。図１Ａには３つのカメラモジュール１０３ａ、１０３ｂ、１０３ｎが図示されているが、カメラアレイ１０１は、任意の数のカメラモジュール１０３を含んでいてもよい。カメラアレイ１０１は、１つの個別のカメラを含む、各カメラモジュール１０３を有する個別のカメラを使用して構築されてもよい。いくつかの実現化例では、カメラアレイ１０１はまた、奥行きセンサ、運動センサ（たとえば、全地球測位システム（global positioning system：ＧＰＳ）、加速度計、ジャイロスコープなど）、カメラアレイ１０１の位置を感知するためのセンサ、および他のタイプのセンサを含むもののそれらに限定されないさまざまなセンサを含んでいてもよい。
【００５０】
カメラアレイ１０１は、さまざまな構成を使用して構築されてもよい。たとえば、カメラアレイ１０１におけるカメラモジュール１０３ａ、１０３ｂ…１０３ｎは、カメラモジュール１０３ａ、１０３ｂ…１０３ｎにおける対応するレンズが異なる方向に向かって面した状態で、さまざまな形状（たとえば、球、線、円柱、円錐、および立方体など）に構成されてもよい。カメラアレイ１０１は、カメラアレイ１０１からある特定のカメラモジュール１０３が取り外されたり、カメラアレイ１０１に新しいカメラモジュール１０３が追加されたりするように、柔軟な構造を有する。たとえば、カメラモジュール１０３はカメラアレイ１０１内に、カメラモジュール１０３が挿入され得る開口を区画の各々が形成するハニカムパターンで位置付けられる。別の例では、カメラアレイ１０１は、水平軸に沿った複数のレンズと、垂直軸上のより少ない数のレンズとを含む。
【００５１】
いくつかの実現化例では、カメラアレイ１０１におけるカメラモジュール１０３ａ、１０３ｂ…１０３ｎは、立体画像をレンダリングするのに十分な視差を取り込むために十分な直径および視野を有して、球の周りで異なる方向に配向されていてもよい。たとえば、カメラアレイ１０１は、直径２０センチメートルの球の周りに分布された３２個のポイント・グレー（Point Grey）のブラックフライ（Blackfly）ギガビット・イーサネット（登録商標）カメラを含んでいてもよい。別の例では、カメラアレイ１０１は、球の周りに分布されたＨＥＲＯ３＋ＧｏＰｒｏ（登録商標）カメラを含んでいてもよい。ポイント・グレーのブラックフライカメラモデルとは異なるカメラモデルが、カメラアレイ１０１に含まれていてもよい。たとえば、いくつかの実現化例では、カメラアレイ１０１は、３Ｄ画像または映像をレンダリングするように構成された１つ以上の光学センサで外面が覆われた球を含んでいてもよい。光学センサは、コントローラに通信可能に結合されてもよい。球の外面全体が、３Ｄ画像または映像をレンダリングするように構成された光学センサで覆われていてもよい。
【００５２】
いくつかの実現化例では、カメラアレイ１０１におけるカメラモジュール１０３は、２つ以上の視点からすべての物体が見えるように、十分な視野重複を有するように構成されている。たとえば、カメラアレイ１０１に含まれる各カメラモジュール１０３についての水平視野は、７０度である。いくつかの実現化例では、２つ以上のカメラモジュール１０３によって物体を見るように構成されたカメラアレイ１０１を有することは、カメラアレイ１０１によって取り込まれた画像における露光または色欠陥を補正するために有益である。
【００５３】
カメラアレイ１０１におけるカメラモジュール１０３は、内蔵バッテリを含んでいても含んでいなくてもよい。カメラモジュール１０３は、接続ハブ１２３に結合されたバッテリから電力を得てもよい。いくつかの実現化例では、カメラモジュール１０３の外側ケースは、カメラモジュール１０３における熱が、他の材料を使用する場合よりも迅速に放散されるように、金属などの熱伝導材料で作られてもよい。いくつかの実現化例では、各カメラモジュール１０３は、熱放散要素を含んでいてもよい。熱放散要素の例は、ヒートシンク、ファン、および熱放散パテを含むものの、それらに限定されない。
【００５４】
カメラモジュール１０３の各々は、１つ以上のプロセッサ、１つ以上のメモリ装置（たとえば、セキュアデジタル（secure digital：ＳＤ）メモリカード、セキュアデジタル大容量（secure digital high capacity：ＳＤＨＣ）メモリカード、セキュアデジタル拡張容量（secure digital extra capacity：ＳＤＸＣ）メモリカード、およびコンパクトフラッシュ（compact flash：ＣＦ）（登録商標）メモリカードなど）、光学センサ（たとえば、半導体電荷結合素子（charge-coupled device：ＣＣＤ）、相補型金属酸化膜半導体（complementary metal oxide semiconductor：ＣＭＯＳ）およびＮ型金属酸化膜半導体（ＮＭＯＳ、ライブＭＯＳ）におけるアクティブ画素センサなど）、奥行きセンサ（たとえば、プライムセンスの奥行きセンサ）、レンズ（たとえば、カメラレンズ）、および他の好適な構成要素を含んでいてもよい。
【００５５】
いくつかの実現化例では、カメラアレイ１０１におけるカメラモジュール１０３ａ、１０３ｂ…１０３ｎは、カメラモジュール１０３ａ、１０３ｂ…１０３ｎが順に接続されているデイジーチェーンを形成してもよい。カメラアレイ１０１におけるカメラモジュール１０３ａ、１０３ｂ…１０３ｎは、デイジーチェーンを通して同期されてもよい。デイジーチェーンにおける１つのカメラモジュール（たとえば、第１のカメラモジュール１０３ａ）は、カメラアレイ１０１における他のカメラモジュールのためのクロック信号を制御するマスターカメラモジュールとして構成されてもよい。クロック信号は、カメラアレイ１０１におけるカメラモジュール１０３の動作（たとえば、開始動作、停止動作）を同期させるために使用されてもよい。カメラモジュール１０３の同期された開始および停止動作を通して、それぞれのカメラモジュール１０３ａ、１０３ｂ…１０３ｎによって取り込まれたそれぞれの映像データにおける画像フレームも同期される。
【００５６】
カメラアレイ１０１およびカメラモジュール１０３の例示的な実現化例は、「カメラモジュールを含むカメラアレイ」（Camera Array Including Camera Modules）と題され、２０１４年７月２８日に出願された米国出願第１４／４４４，９３８号に記載されており、当該出願はその全体がここに引用により援用される。
【００５７】
カメラモジュール１０３は接続ハブ１２３に結合されてもよい。たとえば、カメラモジュール１０３ａは、信号線１０２ａを介して接続ハブ１２３に通信可能に結合され、カメラモジュール１０３ｂは、信号線１０２ｂを介して接続ハブ１２３に通信可能に結合され、カメラモジュール１０３ｎは、信号線１０２ｎを介して接続ハブ１２３に通信可能に結合される。いくつかの実現化例では、この開示における信号線は、映像データおよび音声データを送信するのに好適な、イーサネット（登録商標）ケーブル、高解像度マルチメディアインターフェイス（high-definition multimedia interface：ＨＤＭＩ（登録商標））ケーブル、ユニバーサル・シリアル・バス（universal serial bus：ＵＳＢ）ケーブル、ＲＣＡケーブル、ファイヤーワイヤ（Firewire）、カメラリンク（CameraLink）、または任意の他の信号線を使用する接続などの有線接続あるいは有線接続の任意の組合せを表わしていてもよい。それに代えて、この開示における信号線は、ワイヤレス・フィデリティ（Ｗｉ−Ｆｉ）接続またはBluetooth（登録商標）接続などの無線接続を表わしていてもよい。
【００５８】
マイクロホンアレイ１０７は、環境において異なる方向から音を取り込むように構成された１つ以上のマイクロホンを含んでいてもよい。いくつかの実現化例では、マイクロホンアレイ１０７は、１つ以上のプロセッサと、１つ以上のメモリとを含んでいてもよい。マイクロホンアレイ１０７は、熱放散要素を含んでいてもよい。図示された実現化例では、マイクロホンアレイ１０７は、信号線１０４を介して接続ハブ１２３に結合される。それに代えて、またはそれに加えて、マイクロホンアレイ１０７は、クライアント装置１２７などのシステム１００の他のエンティティに直接結合されてもよい。
【００５９】
マイクロホンアレイ１０７は、さまざまな方向から音を取り込んでもよい。音は、マイクロホンアレイ１０７に通信可能に結合された非一時的メモリに、未加工音声データとして格納されてもよい。マイクロホンアレイ１０７は、音の指向性を検出してもよい。音の指向性は、未加工音声データの一部としてコード化され格納されてもよい。
【００６０】
いくつかの実現化例では、マイクロホンアレイ１０７は、任意の方向からの音の再現を可能にする、アンビソニックス（ambisonics）の原理に従ったコア・サウンド（Core Sound）のテトラミック（Tetramic）音場４面体マイクロホンアレイを含んでいてもよい。たとえば、マイクロホンアレイ１０７は、カメラアレイ１０１の上部に搭載され、音および音響指向性を記録するために使用されるアンビソニックス・マイクロホンを含んでいてもよい。いくつかの実現化例では、マイクロホンアレい１０７は、ジョゼフ・グラド（Joseph Grado）ＨＭＰ−１記録システム、もしくは、同じまたは同様の音響原理に従って構成された任意の他のマイクロホンシステムを含む。いくつかの実現化例では、マイクロホンアレイ１０７はアイゲンマイク（Eigenmike）を含み、それは有利にはより多くのマイクロホンを含み、その結果、より高次の（すなわち、空間的により正確な）アンビソニックスを行なうことができる。マイクロホンは、カメラアレイ１０１の上部に搭載されてもよく、カメラモジュール１０３間に位置付けられてもよく、またはカメラアレイ１０１の本体内に位置付けられてもよい。
【００６１】
いくつかの実現化例では、カメラモジュール１０３は、カメラハウジング（たとえば、球状のハウジング、または別の好適な形状を有するハウジング）の周りに搭載されてもよい。マイクロホンアレイ１０７は、同じカメラハウジングの周りに搭載された複数のマイクロホンを含んでいてもよく、各マイクロホンは異なる位置に位置している。カメラハウジングは、人間の頭部の頭影遮音特性のためのプロキシとして作用してもよい。図２を参照して以下に説明されるように、記録された音声データの再生中、音声モジュール２１２は、ユーザの耳に最も近い配向を有するマイクロホンから、ユーザの耳のための音声トラックを選択してもよい。それに代えて、ユーザの耳のための音声トラックは、ユーザの耳に最も近いマイクロホンによって記録された音声トラックから補間されてもよい。
【００６２】
接続ハブ１２３は、マイクロホンアレイ１０７によって記録された未加工音声データを受信し、処理および格納のために未加工音声データをクライアント装置１２７に転送してもよい。接続ハブ１２３はまた、それぞれのカメラモジュール１０３によって取り込まれた画像フレームを記述する未加工映像データのストリームを受信し、集約してもよい。接続ハブ１２３は次に、処理および格納のために未加工映像データをクライアント装置１２７に転送してもよい。接続ハブ１２３は、信号線１０６を介してクライアント装置１２７に通信可能に結合される。いくつかの例では、接続ハブ１２３はＵＳＢハブであってもよい。いくつかの実現化例では、接続ハブ１２３は、カメラアレイ１０１におけるカメラモジュール１０３に電力を供給するための１つ以上のバッテリ１２５を含む。それに代えて、またはそれに加えて、カメラモジュール１０３に電力を供給するために、１つ以上のバッテリ１２５が接続ハブ１２３に結合されてもよい。
【００６３】
クライアント装置１２７は、プロセッサベースのコンピューティング装置であってもよい。たとえば、クライアント装置１２７は、パーソナルコンピュータ、ラップトップ、タブレットコンピューティング装置、スマートフォン、セットトップボックス、ネットワーク対応テレビ、または任意の他のプロセッサベースのコンピューティング装置であってもよい。いくつかの実現化例では、クライアント装置１２７はネットワーク機能性を含み、信号線１０８を介してネットワーク１０５に通信可能に結合される。クライアント装置１２７は、ネットワーク１０５を介してデータをサーバ１２９に送信するように、またはデータをサーバ１２９から受信するように構成されてもよい。
【００６４】
クライアント装置１２７は、接続ハブ１２３から未加工映像データおよび未加工音声データを受信してもよい。いくつかの実現化例では、クライアント装置１２７は、クライアント装置１２７に関連付けられた記憶装置に未加工映像データおよび未加工音声データをローカルに格納してもよい。それに代えて、クライアント装置１２７は、未加工映像データおよび未加工音声データをネットワーク１０５を介してサーバ１２９に送信してもよく、サーバ１２９に関連付けられた記憶装置に未加工映像データおよび音声データを格納してもよい。いくつかの実現化例では、クライアント装置１２７は、３Ｄ映像データを形成するためにカメラモジュール１０３によって取り込まれた未加工映像データを集約し、３Ｄ音声データを形成するためにマイクロホンアレイ１０７によって取り込まれた未加工音声データを集約するための集約システム１３１を含む。それに代えて、またはそれに加えて、集約システム１３１は、サーバ１２９上で動作可能であってもよい。
【００６５】
集約システム１３１は、３Ｄ映像データのストリームおよび３Ｄ音声データのストリームをそれぞれ生成するために未加工映像データおよび未加工音声データを集約するように構成されたシステムを含んでいてもよい。集約システム１３１は、図１Ａの単一の装置または装置の組合せに格納されてもよい。いくつかの実現化例では、集約システム１３１は、フィールドプログラマブルゲートアレイ（field-programmable gate array：ＦＰＧＡ）または特定用途向け集積回路（application-specific integrated circuit：ＡＳＩＣ）を含む、ハードウェアを使用して実現され得る。いくつかの他の実現化例では、集約システム１３１は、ハードウェアとソフトウェアとの組合せを使用して実現されてもよい。集約システム１３１については、図２〜５および図１１〜１５Ｂを参照して以下により詳細に説明する。
【００６６】
鑑賞システム１３３は、リアリティが強化された眼鏡；３Ｄディスプレイおよび／または位置追跡センサを有するテレビ、スマートフォン、タブレット、または他の装置；鑑賞位置制御を有する表示装置などを含むもののそれらに限定されない、ＶＲ表示装置（たとえば、オキュラス・リフトＶＲディスプレイ）または他の好適なＶＲディスプレイ上で、３Ｄ映像データのストリームを復号してレンダリングするために、コンピューティング装置を含むかまたは使用してもよい。鑑賞システム１３３はまた、音声再生装置（たとえば、ヘッドホン、または他の好適なスピーカ装置）上で、３Ｄ音声データのストリームを復号してレンダリングしてもよい。鑑賞システム１３３は、３Ｄ映像データをレンダリングするように構成されたＶＲディスプレイと、３Ｄ音声データをレンダリングするように構成された音声再生装置とを含んでいてもよい。鑑賞システム１３３は、信号線１１０を介してクライアント装置１２７に結合され、信号線１１２を介してネットワーク１０５に結合されてもよい。ユーザ１３４は、鑑賞システム１３３とやりとりしてもよい。
【００６７】
いくつかの実現化例では、鑑賞システム１３３は、クライアント装置１２７からＶＲコンテンツを受信してもよい。それに代えて、またはそれに加えて、鑑賞システム１３３は、サーバ１２９からＶＲコンテンツを受信してもよい。鑑賞システム１３３はまた、集約システム１３１に結合されてもよく、集約システム１３１からＶＲコンテンツを受信してもよい。ＶＲコンテンツは、３Ｄ映像データのストリーム、３Ｄ音声データのストリーム、３Ｄ映像データの圧縮されたストリーム、３Ｄ音声データの圧縮されたストリーム、および他の好適なコンテンツのうちの１つ以上を含んでいてもよい。
【００６８】
鑑賞システム１３３は、ユーザの頭部配向を追跡してもよい。たとえば、鑑賞システム１３３は、ユーザの頭部配向の変化を検出するために使用される１つ以上の加速度計またはジャイロスコープを含んでいてもよい。鑑賞システム１３３は、ユーザの頭部配向に基づいて、３Ｄ映像データのストリームをＶＲ表示装置上で、および３Ｄ音声データのストリームをスピーカーシステム上で復号してレンダリングしてもよい。ユーザが自分の頭部配向を変えるにつれて、鑑賞システム１３３は、ユーザの頭部配向の変化に基づいて３Ｄ映像データおよび３Ｄ音声データのレンダリングを調節してもよい。
【００６９】
鑑賞システム１３３は、没入型の鑑賞体験をユーザ１３４に提供してもよい。たとえば、鑑賞システム１３３は、ＶＲコンテンツを見ているユーザ１３４が、実際の環境に似た態様で自分がＶＲコンテンツに包囲されているように感じるように、広範な視野を有するＶＲ表示装置を含んでいてもよい。シーンの全３６０度のビューがユーザ１３４に提供され、ユーザ１３４はあらゆる方向でシーンを見てもよい。ユーザ１３４が自分の頭を動かすにつれて、ビューは、ユーザがまるで実際の世界で自分の頭を動かしているかのように、ユーザ１３４が見るであろうビューと整合するように修正される。実際の世界で左目および右目が見るであろうビューをシミュレートするように、目の各々に異なるビュー（たとえば、左目視のための左パノラマ画像のストリーム、および右目視のための右パノラマ画像のストリーム）を提供することにより、鑑賞システム１３３は、シーンの３Ｄビューをユーザ１３４を与えてもよい。加えて、没入型の３Ｄ鑑賞体験を強化するために、ユーザの頭部配向に基づいて、３Ｄ周囲音がユーザ１３４に提供されてもよい。たとえば、没入型の映画における登場人物が現在、ユーザ１３４の背後にいる場合、登場人物の声は、ユーザ１３４の背後から発するようであってもよい。
【００７０】
いくつかの実現化例では、鑑賞システム１３３は、ユーザ１３４が、ユーザの瞳孔間距離に適合するように左パノラマ画像および右パノラマ画像を調節できるようにしてもよい。左パノラマ画像および右パノラマ画像は、より大きい瞳孔間距離を有するユーザについてはより離れるように動き、より小さい瞳孔間距離を有するユーザについてはより近づくように動いてもよい。
【００７１】
いくつかの実現化例では、鑑賞システム１３３は、ユーザ１３４がシステム１００の１つ以上の構成要素に入力を提供できるように構成された、マイクロホン、カメラ、マウス、またはキーボードなどの周辺装置を含む。たとえば、ユーザ１３４は、ソーシャルネットワークサーバ１３５によって提供されるソーシャルネットワークサービスにステータス更新を提供するために、周辺装置とやりとりしてもよい。いくつかの実現化例では、周辺装置は、マイクロソフト（登録商標）キネクト（Kinect）または別の同様の装置などの運動センサを含み、それは、ユーザ１３４が鑑賞システム１３３またはシステム１００の他のエンティティにジェスチャー入力を提供できるようにする。
【００７２】
いくつかの実現化例では、鑑賞システム１３３は、バーチャルリアリティ体験をよりリアルにするためにユーザと物理的に接触するための周辺装置を含む。鑑賞システム１３３は、バーチャルリアリティコンテンツに対応する触感をユーザ１３４に提供するためのグローブを含んでいてもよい。たとえば、バーチャルリアリティコンテンツは別のユーザの画像を含んでいてもよく、ユーザ１３４が手を伸ばしてその別のユーザに触れると、鑑賞システム１３３は、ユーザ１３４がその別のユーザと物理的に接触しているように感じさせる圧力および振動を提供する。いくつかの実現化例では、鑑賞システム１３３は、身体の他の部位用の周辺装置を含んでいてもよい。
【００７３】
いくつかの実現化例では、複数の鑑賞システム１３３が、集約システム１３１によってストリーミングされたＶＲコンテンツを受信し、消費してもよい。言い換えれば、２つ以上の鑑賞システム１３３が、集約システム１３１に通信可能に結合されて、集約システム１３１によって生成されたＶＲコンテンツを同時にまたは同時期に受信し、消費するように構成されてもよい。
【００７４】
ネットワーク１０５は、有線または無線の従来のタイプのものであってもよく、星型構成、トークンリング構成、または他の構成を含む多くの異なる構成を有していてもよい。さらに、ネットワーク１０５は、複数の装置が通信し得る、ローカルエリアネットワーク（local area network：ＬＡＮ）、ワイドエリアネットワーク（wide area network：ＷＡＮ）（たとえばインターネット）、または他の相互接続されたデータ経路を含んでいてもよい。いくつかの実現化例では、ネットワーク１０５はピアツーピアネットワークであってもよい。ネットワーク１０５はまた、さまざまな異なる通信プロトコルでデータを送信するための電気通信ネットワークの一部に結合されるか、または電気通信ネットワークの一部を含んでいてもよい。いくつかの実現化例では、ネットワーク１０５は、ショートメッセージングサービス（short messaging service：ＳＭＳ）、マルチメディアメッセージングサービス（multimedia messaging service：ＭＭＳ）、ハイパーテキスト転送プロトコル（hypertext transfer protocol：ＨＴＴＰ）、直接データ接続、ＷＡＰ、電子メールなどを介することを含む、データを送受信するためのBLUETOOTH（登録商標）通信ネットワークまたはセルラー通信ネットワークを含んでいてもよい。
【００７５】
サーバ１２９は、プロセッサと、メモリと、ネットワーク通信能力とを含むハードウェアサーバであってもよい。図示された実現化例では、サーバ１２９は、信号線１２０を介してネットワーク１０５に結合される。サーバ１２９は、ネットワーク１０５を介して、システム１００の他のエンティティのうちの１つ以上との間でデータを送受信する。たとえば、サーバ１２９は、クライアント装置１２７から、３Ｄ映像データ（または圧縮された３Ｄ映像データ）のストリームおよび３Ｄ音声データ（または圧縮された３Ｄ音声データ）のストリームを含むＶＲコンテンツを受信し、そのＶＲコンテンツを、サーバ１２９に関連付けられた記憶装置に格納する。それに代えて、サーバ１２９は、クライアント装置１２７から未加工映像データおよび未加工音声データを受信し、ＶＲコンテンツを作成するためにその未加工映像データおよび未加工音声データを集約するための集約システム１３１を含む。鑑賞システム１３３は、サーバ１２９またはクライアント装置１２７からＶＲコンテンツにアクセスしてもよい。
【００７６】
第２のサーバ１９８は、プロセッサと、メモリと、ネットワーク通信能力とを含むハードウェアサーバであってもよい。図示された実現化例では、第２のサーバ１９８は、信号線１９７を介してネットワーク１０５に結合される。第２のサーバ１９８は、ネットワーク１０５を介して、システム１００の他のエンティティのうちの１つ以上との間でデータを送受信する。第２のサーバ１９８は、ライブ画像とコンピュータ生成画像とが組合わされるように、コンピュータ生成画像をストリームへの挿入のために集約システム１３１に提供してもよい。他の実現化例では、第２のサーバ１９８は、ライブコンテンツが音声トラックを含むように、ストリームへの挿入のために集約システム１３１に提供され得る音声トラックを提供する。たとえば、音声トラックはサウンドトラックである。
【００７７】
いくつかの実現化例では、第２のサーバ１９８は、集約システム１３１に提供される映像または音声を修正するための機能性を含む。たとえば、第２のサーバ１９８は、プロセッサによって実行され、音声のノイズキャンセル、音声のための反響効果、映像効果の挿入などを提供するように構成されたコードおよびルーチンを含む。したがって、第２のサーバ１９８は、集約システム１３１に関連付けられた映像および音声を増強または変換するように構成されてもよい。
【００７８】
いくつかの実現化例では、システム１００は、２つ以上のカメラアレイ１０１と２つ以上のマイクロホンアレイ１０７とを含んでおり、ユーザは、２つ以上のカメラアレイ１０１の２点以上の視点を切替えてもよい。たとえば、システム１００は、野球の試合などのライブイベントを記録するために使用されてもよい。ユーザは、第１のカメラアレイ１０１に関連付けられた第１の視点から野球の試合を見るために鑑賞システム１３３を使用してもよい。プレーが競技場で展開し、ユーザは、プレーのよりよい見晴らしを有するように視点を切替えたくなるかもしれない。ユーザは鑑賞システム１３３を介して集約システム１３１に入力を提供し、集約システム１３１は、プレーのよりよい見晴らしを提供する第２のカメラアレイ１０１に切替えてもよい。第２のカメラアレイ１０１は、ユーザの新しい見晴らし点に固有の異なる音をユーザに提供する異なるマイクロホンアレイ１０７に関連付けられてもよい。
【００７９】
図１Ｂは、ここに説明される少なくともいくつかの実現化例に従って配置された、バーチャルリアリティコンテンツを生成するために画像フレームおよび音声データを収集し、集約する例示的なシステム１９９のいくつかの実現化例のブロック図を示す。図示されたシステム１９９は、カメラアレイ１０１と、接続ハブ１２３と、マイクロホンアレイ１０７と、クライアント装置１２７と、鑑賞システム１３３とを含む。いくつかの実現化例では、システム１９９は加えて、サーバ１２９と、ソーシャルネットワークサーバ１３５と、コンテンツサーバ１３９と、広告サーバ１４１と、第２のサーバ１９８とを含む。クライアント装置１２７、鑑賞システム１３３、サーバ１２９、ソーシャルネットワークサーバ１３５、コンテンツサーバ１３９、第２のサーバ１９８、および広告サーバ１４１は、ネットワーク１０５を介して通信可能に結合されてもよい。
【００８０】
図１Ｂは、１つのカメラアレイ１０１と、１つの接続ハブ１２３と、１つのマイクロホンアレイ１０７と、１つのクライアント装置１２７と、１つのサーバ１２９と、１つのソーシャルネットワークサーバ１３５と、１つのコンテンツサーバ１３９と、１つの広告サーバ１４１と、１つの第２のサーバ１９８と、１つの鑑賞システム１３３とを示しているが、この開示は、１つ以上のカメラアレイ１０１と、１つ以上の接続ハブ１２３と、１つ以上のマイクロホンアレイ１０７と、１つ以上のクライアント装置１２７と、１つ以上のサーバ１２９と、１つ以上のソーシャルネットワークサーバ１３５と、１つ以上のコンテンツサーバ１３９と、１つ以上の広告サーバ１４１と、１つ以上の第２のサーバ１９８と、１つ以上の鑑賞システム１３３とを有するシステムアーキテクチャに当てはまる。さらに、図１Ｂはシステム１９９のエンティティに結合された１つのネットワーク１０５を示しているが、実際には、１つ以上のネットワーク１０５がこれらのエンティティに接続されてもよく、その１つ以上のネットワーク１０５はさまざまな異なるタイプのものであってもよい。
【００８１】
コンテンツシステム１７１は、クライアント装置１２７、サーバ１２９、またはシステム１９９の別のエンティティ上で動作可能であってもよい。鑑賞システム１３３はまた、コンテンツシステム１７１に結合されてもよく、コンテンツシステム１７１からバーチャルリアリティコンテンツを受信してもよい。第２のサーバ１９８は、コンテンツシステム１７１に関連付けられた映像および音声を増強または変換するように構成されてもよい。
【００８２】
広告サーバ１４１は、プロセッサと、メモリと、ネットワーク通信能力とを含むハードウェアサーバであってもよい。図示された実施形態では、広告サーバ１４１は、信号線１１４を介してネットワーク１０５に結合される。広告サーバ１４１は、ネットワーク１０５を介して、システム１９９の他のエンティティのうちの１つ以上との間でデータを送受信する。いくつかの実現化例では、広告サーバ１４１は、バーチャルリアリティコンテンツの一部としての表示のためにコンテンツシステム１７１によって要求された広告のための広告リポジトリである。
【００８３】
いくつかの実現化例では、広告サーバ１４１は、特定のユーザへの広告、さまざまなタイプのコンテンツ（たとえば、コンテンツサーバ１３９が供給するコンテンツ、クライアント装置１２７またはサーバ１２９が供給するバーチャルリアリティコンテンツ）とともに表示される広告、クライアント装置１２７、鑑賞システム１３３、またはユーザ１３４に関連付けられた特定の位置またはインターネット・プロトコル（Internet Protocol：ＩＰ）アドレスへの広告を標的にするための規則を含む。広告サーバ１４１は、広告を選択し、および／または標的にするための他の規則を含んでいてもよい。
【００８４】
いくつかの実現化例では、広告サーバ１４１は、鑑賞システム１３３によって表示されたバーチャルリアリティコンテンツに関連付けられたメタデータを受信し、そのメタデータに基づいて、バーチャルリアリティコンテンツとともに提示するための広告を選択する。たとえば、広告サーバ１４１は、バーチャルリアリティコンテンツに関連付けられたキーワードに基づいて、格納された広告を選択する。標的とされた広告をユーザに提供するために他の方法が可能であり、それらは、ここに説明される実現化例で代替的にまたは付加的に実現されてもよい。
【００８５】
コンテンツサーバ１３９は、プロセッサと、メモリと、ネットワーク通信能力とを含むハードウェアサーバであってもよい。図示された実施形態では、コンテンツサーバ１３９は、信号線１１６を介してネットワーク１０５に結合される。コンテンツサーバ１３９は、ネットワーク１０５を介して、システム１９９の他のエンティティのうちの１つ以上との間でデータを送受信する。コンテンツサーバ１３９によって提供されるコンテンツは、３Ｄ映像データおよび／または３Ｄ音声データとしてレンダリングされるように構成されたあらゆるコンテンツを含んでいてもよい。いくつかの実現化例では、コンテンツサーバ１３９によって提供されるコンテンツは、スポーツイベント、結婚式、記者会見または他のイベントなどのイベントの映像、映画、テレビ番組、ミュージックビデオ、グーグル（Google）（登録商標）ストリートビューマップなどのインタラクティブマップ、および任意の他のバーチャルリアリティコンテンツであってもよい。いくつかの実現化例では、コンテンツはビデオゲームを含む。他の実現化例では、コンテンツは、バーチャルリアリティコンテンツとして体験されるように構成された家族写真などの写真を含む。
【００８６】
いくつかの実現化例では、コンテンツサーバ１３９は、コンテンツシステム１７１、クライアント装置１２７、または鑑賞システム１３３からの要求に応答してコンテンツを提供する。たとえば、コンテンツサーバ１３９は、キーワードを使用して検索可能である。クライアント装置１２７、鑑賞システム１３３、またはコンテンツシステム１７１は、コンテンツサーバ１３９にキーワード検索を提供して、鑑賞システム１３３上で見られるべきコンテンツを選択する。いくつかの実現化例では、コンテンツサーバ１３９は、ユーザがコンテンツサーバ１３９に関連付けられたコンテンツを閲覧できるようにする。たとえば、コンテンツは購入用アイテムを含むバーチャル店舗を含んでおり、ユーザは店舗を３Ｄで見てまわってもよい。いくつかの実現化例では、コンテンツサーバ１３９はユーザにコンテンツ推薦を提供してもよい。たとえば、コンテンツサーバ１３９は、３Ｄ店舗内の購入用アイテムを推薦する。
【００８７】
ソーシャルネットワークサーバ１３５は、プロセッサと、メモリと、ネットワーク通信能力とを含むハードウェアサーバであってもよい。図示された実施形態では、ソーシャルネットワークサーバ１３５は、信号線１１８を介してネットワーク１０５に結合される。ソーシャルネットワークサーバ１３５は、ネットワーク１０５を介して、システム１９９の他のエンティティのうちの１つ以上との間でデータを送受信する。ソーシャルネットワークサーバ１３５は、ソーシャルネットワークアプリケーション１３７を含む。ソーシャルネットワークは、ユーザが共通の特徴によってつなげられ得る一種の社会的構造であってもよい。共通の特徴は、たとえば友情、家族、仕事、興味などの関係／つながりを含む。共通の特徴は、明示的でなくてもよい。たとえば、共通の特徴は、同じライブイベント（たとえば、サッカーの試合、コンサートなど）を見たり、同じビデオゲームをしたりするユーザを含んでいてもよい。いくつかの実現化例では、ユーザは、コンテンツシステム１７１および鑑賞システム１３３によって提供される機能性を使用して、イベントを見ている。共通の特徴は、明示的に定義された関係、および他のオンラインユーザとの社会的つながりによって暗示された関係を含む１つ以上のソーシャルネットワーキングシステムによって提供されてもよく、これらの関係はソーシャルグラフを形成する。いくつかの例では、ソーシャルグラフは、これらのユーザのマッピング、および、ユーザがどのようにつながっているかを反映していてもよい。
【００８８】
１つのソーシャルネットワークアプリケーション１３７を有するたった１つのソーシャルネットワークサーバ１３５が図示されているが、ネットワーク１０５に結合されたソーシャルネットワークが複数あってもよく、各々がそれ自体のサーバ、アプリケーション、およびソーシャルグラフを有する。たとえば、第１のソーシャルネットワークは、よりビジネスネットワーキングに向けられてもよく、第２のソーシャルネットワークは、より学問に向けられ、またはより学問中心であってもよく、第３のソーシャルネットワークは、より地元のビジネスに向けられてもよく、第４のソーシャルネットワークは出会いに向けられてもよく、他のソーシャルネットワークは一般的に興味のあることまたは特定の対象に向けられてもよい。別の実施形態では、ソーシャルネットワークアプリケーション１３７は、コンテンツシステム１７１の一部であってもよい。
【００８９】
いくつかの実現化例では、ソーシャルネットワークは、ユーザの１つ以上の社会的活動を記述するソーシャルフィードを提供するサービスを含む。たとえば、ソーシャルフィードは、ユーザの行動、表現された考え、表現された意見などを記述する、ユーザについての１つ以上のステータス更新を含む。いくつかの実現化例では、ソーシャルネットワークアプリケーション１３７によって提供されるサービスは、「ソーシャルネットワークサービス」と呼ばれる。他の実現化例が可能であり得る。
【００９０】
いくつかの実現化例では、ソーシャルネットワークサーバ１３５は、ユーザのソーシャルグラフからのデータを、そのユーザのためのバーチャルリアリティ体験に組込むために、カメラアレイ１０１、マイクロホンアレイ１０７、コンテンツシステム１７１、サーバ１２９、鑑賞システム１３３、およびクライアント装置１２７のうちの１つ以上と通信する。
【００９１】
ここで図２を参照して、ここに説明される少なくともいくつかの実現化例に従った集約システム１３１の一例を図示する。図２は、集約システム１３１と、メモリ２３７と、プロセッサ２３５と、記憶装置２４１と、通信部２４５とを含むコンピューティング装置２００のブロック図である。図示された実現化例では、コンピューティング装置２００の構成要素は、バス２２０によって通信可能に結合される。いくつかの実現化例では、コンピューティング装置２００は、パーソナルコンピュータ、スマートフォン、タブレットコンピュータ、セットトップボックス、または任意の他のプロセッサベースのコンピューティング装置であってもよい。コンピューティング装置２００は、図１Ａのクライアント装置１２７、サーバ１２９、およびシステム１００における別の装置のうちの１つであってもよい。
【００９２】
プロセッサ２３５は、計算を行ない、電子表示信号を表示装置に提供するための、算術論理演算ユニット、マイクロプロセッサ、汎用コントローラ、または何らかの他のプロセッサアレイを含んでいてもよい。プロセッサ２３５は、他の構成要素との通信のために信号線２３８を介してバス２２０に結合される。プロセッサ２３５はデータ信号を処理してもよく、複雑命令セットコンピュータ（complex instruction set computer：ＣＩＳＣ）アーキテクチャ、縮小命令セットコンピュータ（reduced instruction set computer：ＲＩＳＣ）アーキテクチャ、または命令セットの組合せを実現するアーキテクチャを含むさまざまなコンピューティングアーキテクチャを含んでいてもよい。図２は単一のプロセッサ２３５を含むが、複数のプロセッサが含まれていてもよい。他のプロセッサ、オペレーティングシステム、センサ、ディスプレイ、および物理的構成が可能であってもよい。
【００９３】
メモリ２３７は、ここに説明される機能性を提供するためにデータを格納する非一時的メモリを含む。メモリ２３７は、ダイナミックランダムアクセスメモリ（dynamic random access memory：ＤＲＡＭ）装置、スタティックランダムアクセスメモリ（static random access memory：ＳＲＡＭ）装置、フラッシュメモリ、または何らかの他のメモリ装置であってもよい。いくつかの実現化例では、メモリ２３７はまた、より永続的に情報を格納するための、ハードディスクドライブ、フロッピー（登録商標）ディスクドライブ、ＣＤ−ＲＯＭ装置、ＤＶＤ−ＲＯＭ装置、ＤＶＤ−ＲＡＭ装置、ＤＶＤ−ＲＷ装置、フラッシュメモリ装置、または何らかの他の大容量記憶装置を含む、不揮発性メモリまたは同様の永続的記憶装置および媒体を含む。メモリ２３７は、集約システム１３１がその機能性を提供するためのコード、ルーチンおよびデータを格納してもよい。メモリ２３７は、信号線２４４を介してバス２２０に結合される。
【００９４】
通信部２４５は、図１Ａに示すシステム１００のエンティティのうちのいずれかにデータを送信してもよい。同様に、通信部２４５は、図１Ａに示すシステム１００のエンティティのうちのいずれかからデータを受信してもよい。通信部２４５は、接続ハブ１２３から未加工映像データおよび未加工音声データを受信するための１つ以上のイーサネット（登録商標）スイッチを含んでいてもよい。通信部２４５は、信号線２４６を介してバス２２０に結合される。いくつかの実現化例では、通信部２４５は、図１Ａのネットワーク１０５などのネットワークへの、または別の通信チャネルへの直接的な物理的接続のためのポートを含む。たとえば、通信部２４５は、別のコンピューティング装置との有線通信のためのＵＳＢ、ＳＤ、ＲＪ４５、または同様のポートなどのポートを含んでいてもよい。いくつかの実現化例では、通信部２４５は、ＩＥＥＥ８０２．１１、ＩＥＥＥ８０２．１６、BLUETOOTH（登録商標）、または別の好適な無線通信方法を含む１つ以上の無線通信方法を使用して別のコンピューティング装置または他の通信チャネルとデータを交換するための無線トランシーバを含む。
【００９５】
いくつかの実現化例では、通信部２４５は、ショートメッセージングサービス（ＳＭＳ）、マルチメディアメッセージングサービス（ＭＭＳ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、直接データ接続、ＷＡＰ、電子メール、または別の好適なタイプの電子通信を介することを含むセルラー通信ネットワーク上でデータを送受信するためのセルラー通信トランシーバを含む。いくつかの実現化例では、通信部２４５は、有線ポートと無線トランシーバとを含む。通信部２４５はまた、ＴＣＰ／ＩＰ、ＨＴＴＰ、ＨＴＴＰＳおよびＳＭＴＰなどを含む標準ネットワークプロトコルを使用したデータの配信のための、ネットワークへの他の従来の接続を提供する。
【００９６】
記憶装置２４１は、ここに説明される機能性を提供するためにデータを格納する非一時的記憶媒体であってもよい。記憶装置２４１は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）装置、スタティックランダムアクセスメモリ（ＳＲＡＭ）装置、フラッシュメモリ、または何らかの他のメモリ装置であってもよい。いくつかの実現化例では、記憶装置２４１はまた、より永続的に情報を格納するための、ハードディスクドライブ、フロッピー（登録商標）ディスクドライブ、ＣＤ−ＲＯＭ装置、ＤＶＤ−ＲＯＭ装置、ＤＶＤ−ＲＡＭ装置、ＤＶＤ−ＲＷ装置、フラッシュメモリ装置、または何らかの他の大容量記憶装置を含む、不揮発性メモリまたは同様の永続的記憶装置および媒体を含む。記憶装置２４１は、信号線２４２を介してバス２２０に通信可能に結合される。
【００９７】
図２に示す実現化例では、集約システム１３１は、通信モジュール２０２と、較正モジュール２０４と、カメラマッピングモジュール２０６と、映像モジュール２０８と、補正モジュール２１０と、音声モジュール２１２と、ストリーム組合せモジュール２１４とを含む。集約システム１３１のこれらのモジュールは、バス２２０を介して互いに通信可能に結合される。
【００９８】
いくつかの実現化例では、集約システム１３１の各モジュール（たとえば、モジュール２０２、２０４、２０６、２０８、２１０、２１２、または２１４）は、以下に説明されるそのそれぞれの機能性を提供するためにプロセッサ２３５によって実行可能であるそれぞれの１組の命令を含んでいてもよい。いくつかの実現化例では、集約システム１３１の各モジュールは、コンピューティング装置２００のメモリ２３７に格納されてもよく、プロセッサ２３５によってアクセス可能および実行可能であってもよい。集約システム１３１の各モジュールは、プロセッサ２３５およびコンピューティング装置２００の他の構成要素と協働および通信するために適合されてもよい。
【００９９】
通信モジュール２０２は、集約システム１３１とコンピューティング装置２００の他の構成要素との間の通信を扱うためのルーチンを含むソフトウェアであってもよい。通信モジュール２０２は、信号線２２２を介してバス２２０に通信可能に結合されてもよい。通信モジュール２０２は、図１Ａに示すシステム１００のエンティティのうちの１つ以上との間で通信部２４５を介してデータを送受信する。たとえば、通信モジュール２０２は、通信部２４５を介して接続ハブ１２３から未加工映像データを受信してもよく、その未加工映像データを映像モジュール２０８に転送してもよい。別の例では、通信モジュール２０２は、通信部２４５を介して、ストリーム組合せモジュール２１４からＶＲコンテンツを受信してもよく、そのＶＲコンテンツを鑑賞システム１３３に送信してもよい。
【０１００】
いくつかの実現化例では、通信モジュール２０２は、集約システム１３１の構成要素からデータを受信し、そのデータをメモリ２３７または記憶装置２４１に格納する。たとえば、通信モジュール２０２は、ストリーム組合せモジュール２１４からＶＲコンテンツを受信し、そのＶＲコンテンツをメモリ２３７または記憶装置２４１に格納する。いくつかの実現化例では、通信モジュール２０２は、メモリ２３７または記憶装置２４１からデータを検索し、そのデータを集約システム１３１の１つ以上の適切な構成要素に送信する。それに代えて、またはそれに加えて、通信モジュール２０２はまた、集約システム１３１の構成要素間の通信を扱ってもよい。
【０１０１】
較正モジュール２０４は、カメラアレイ１０１におけるカメラモジュール１０３を較正するためのルーチンを含むソフトウェアであってもよい。較正モジュール２０４は、信号線２２４を介してプロセッサ２３５およびコンピューティング装置２００の他の構成要素と協働および通信するために適合されてもよい。
【０１０２】
いくつかの実現化例では、カメラモジュール１０３に含まれるレンズが、ある量の球状歪みを有する場合がある。カメラモジュール１０３で取り込まれた画像は、歪んだ画像からのパノラマ画像の生成中に補正される必要がある樽形歪みまたは糸巻形歪みを有する場合がある。樽形歪みは、「魚眼効果」と呼ばれる場合がある。カメラモジュール１０３ごとに、較正モジュール２０４は、対応するカメラモジュール１０３におけるレンズによって生じた関連付けられた歪みを判断するために、そのレンズを較正する。たとえば、公知の位置に配置された公知の形状（たとえば、公知の位置における市松模様）を有するテストパターンのスナップショットが、カメラモジュール１０３によって取り込まれてもよい。較正モジュール２０４は、テストパターンのスナップショットから、カメラモジュール１０３に含まれるレンズの特性を判断してもよい。レンズの特性は、レンズに関連付けられた歪みパラメータ、光心、および他の光学特性を含み得るものの、それらに限定されない。
【０１０３】
較正モジュール２０４は、各レンズの特性を記述するデータを構成ファイルに格納する。構成ファイルは、カメラアレイ１０１におけるすべてのカメラモジュール１０３のすべてのレンズの特性を記述するデータを含んでいてもよい。たとえば、構成ファイルは、カメラアレイ１０１における各レンズについての歪みパラメータ、光心、および他の光学特性を記述するデータを含む。
【０１０４】
それに代えて、またはそれに加えて、較正モジュール２０４は、カメラアレイ１０１の物理的特性の変動を判断するために、マルチカメラ幾何学的較正をカメラアレイ１０１に対して行なってもよい。たとえば、較正モジュール２０４は、カメラアレイ１０１における各レンズについてカメラ配向のわずかな変動を判断してもよく、カメラ配向のわずかな変動は、カメラアレイ１０１の設置または製造プロセス中に生じる人為ミスによって引き起こされ得る。別の例では、較正モジュール２０４は、各カメラモジュール１０３における対応するレンズの予測されるロール、ピッチおよびヨーにおけるエラーを推定してもよい。較正モジュール２０４は、各カメラモジュール１０３における対応するレンズについての位置および回転オフセットを判断してもよく、対応するレンズについての位置および回転オフセットを較正ファイルに格納してもよい。その結果、カメラアレイ１０１における各々２つのレンズの相対位置が、２つの対応するレンズの位置および回転オフセットに基づいて判断されてもよい。たとえば、各々２つのレンズ間の空間変換が、２つの対応するレンズの位置および回転オフセットに基づいて判断されてもよい。
【０１０５】
カメラマッピングモジュール２０６は、左カメラマップおよび右カメラマップを構築するためのルーチンを含むソフトウェアであってもよい。カメラマッピングモジュール２０６は、信号線２２６を介してプロセッサ２３５およびコンピューティング装置２００の他の構成要素と協働および通信するために適合されてもよい。
【０１０６】
シーン全体のパノラマを表わすために、２次元（２Ｄ）球状パノラマ画像が使用されてもよい。映像モジュール２０８に関して以下に説明されるように、シーン全体の立体視を提供するために、両目のための２つの立体パノラマ画像が生成されてもよい。たとえば、左目視のために左パノラマ画像が生成されてもよく、右目視のために右パノラマ画像が生成されてもよい。例示的なパノラマ画像を図６Ａに示す。
【０１０７】
パノラマ画像における画素は、ヨー値およびピッチ値によって提示されてもよい。ヨーは中心の周りの回転を表わし、水平のｘ軸上に、
ヨー＝３６００×ｘ／幅…（１）
として表わされてもよい。ヨーは００〜３６００の値を有する。ピッチは上下回転を表わし、垂直のｙ軸上に、
ピッチ＝９００×（高さ／２−ｙ）／（高さ／２）…（２）
として表わされてもよい。ピッチは−９００〜９００の値を有する。
【０１０８】
パノラマ画像は、視差（たとえば、画素位置のシフト）を奥行きに変換する人間の脳の能力を活用することによって、実際の奥行き感を与え得る。たとえば、近くの物体は遠くの物体よりも大きい視差を有し得る。視差は、２つの画像間での位置の画素シフトを表わしていてもよい。視差は、両目の間の距離を表わす両眼間拒離によって生じ得る。各々の目は、わずかに異なる画像を受信するかもしれず、それが奥行き感を生み出す。
【０１０９】
典型的な立体視システム（たとえば、３Ｄ映画）は、奥行き感を生み出すために、２つの異なる平面画像を両目にそれぞれ示してもよい。各平面画像では、画像におけるすべての画素が、片目で見た位置を表わす。たとえば、平面画像におけるすべての画素が、同じ視方向のビューを表わし得る。しかしながら、ここに説明されるパノラマ画像（左または右パノラマ画像）では、パノラマ画像における各画素は、わずかに異なる方向のビューを表わし得る。たとえば、左パノラマ画像における、ヨー∈［０°，３６０°］およびピッチ＝００の位置にある画素は、頭がそのヨー値およびピッチ値によって示された位置へと回転される際の左目の目視位置を表わし得る。同様に、右パノラマ画像における、ヨー∈［０°，３６０°］およびピッチ＝００の位置にある画素は、頭がそのヨー値およびピッチ値によって示された位置へと回転される際の右目の目視位置を表わし得る。ピッチ＝００（たとえば、上下回転なし）については、頭がヨー＝０°からヨー＝３６０°まで回転される際、水平軸における全３６０度の頭部回転で、目視位置のための混合されたパノラマが生成され得る。
【０１１０】
いくつかの実現化例では、混合されたパノラマは、水平軸に沿った頭部回転（たとえばヨー）については効果的であるものの、垂直軸（たとえばピッチ）については効果的ではない。ユーザが自分の頭を上方または下方に傾けるにつれて（たとえば、ピッチ≠０°）、球上の点に対するユーザの目の主要配向は、ピッチ＝０°と比べてそれほど良好に規定されなくなり得る。たとえば、ユーザがピッチ＝９０°でまっすぐ上を見ると、球の北極点に対するユーザの目の配向はまったく不明瞭かもしれない。なぜなら、ユーザの目は、どのヨーからも球の北極点を見るかもしれないためである。立体視は、水平配向において支持される左／右眼球を使用して、上下方向において支持されないかもしれない。その結果、両眼視は、調節関数ｆ（pitch）を用いて両眼間拒離を減少させることによって、徐々になくなるかもしれない。ピッチが０°から９０°まで増加し、または０°から−９０°まで減少するにつれて、調節関数ｆ（pitch）の出力は１から０へと低下するかもしれない。たとえば、調節関数ｆ（pitch）は、cos（pitch）を含んでいてもよい。両眼間拒離は、調節関数ｆ（pitch）に基づいて調節されてもよい。たとえば、ピッチに関連付けられた両眼間拒離は、
両眼間拒離＝ｍａｘ（両眼間拒離）×ｆ（pitch）…（３）
として調節されてもよい。式中、ｍａｘ（両眼間拒離）は、両眼間拒離の最大値を表わす（たとえば、ピッチ＝００の場合、両眼間拒離はその最高値にある）。ｆ（pitch）＝cos（pitch）の場合、両眼間拒離は、
両眼間拒離＝ｍａｘ（両眼間拒離）×cos（pitch）…（４）
として表わされてもよい。
【０１１１】
いくつかの例では、両眼間拒離の最大値は約６０ミリメートルであってもよい。他の例では、両眼間拒離の最大値は、６０ミリメートルよりも大きい、または６０ミリメートルよりも小さい値を有していてもよい。
【０１１２】
カメラマッピングモジュール２０６は、左パノラマ画像における画素ごとに対応する整合カメラモジュール１０３を識別する左カメラマップを構築してもよい。たとえば、パノラマにおける点を表わす左パノラマ画像における画素のために、左カメラマップは、他のカメラモジュール１０３と比較してパノラマにおける点について最良のビューを有する整合カメラモジュール１０３を識別してもよい。このため、左カメラマップは、左パノラマ画像における画素を、対応する画素について最良のビューを有する整合カメラモジュール１０３にマッピングしてもよい。画素のための整合カメラモジュール１０３の決定を、以下により詳細に説明する。
【０１１３】
例示的なカメラマップを、図６Ｂを参照して示す。カメラマップは、左カメラマップまたは右カメラマップを含んでいてもよい。カメラマップは、（ヨー，ピッチ）を入力として使用してもよく、（整合カメラモジュールの識別子，ｘ，ｙ）という出力を生成してもよく、パノラマ画像における画素（ヨー，ピッチ）が、識別された整合カメラモジュールの画像平面における画素（ｘ，ｙ）として得られ得ることを示す。カメラマップは、出力（整合カメラモジュールの識別子，ｘ，ｙ）を、入力（ヨー，ピッチ）に関するマップエントリに格納してもよい。３Ｄ空間における点をカメラモジュールの画像平面における画素上にマッピングするために、カメラモジュールの画像平面における画素が、カメラモデル（たとえば、ピンホールカメラモデル、またはより複雑なレンズモデル）を使用することによって判断されてもよく、ここで、３Ｄ空間における点は、カメラモジュールから特定の距離にあると仮定される。たとえば、図７Ａを参照して、点７１６についての距離は、点７１６からカメラアレイ１０１の中心までの距離を指してもよい。距離は、一定の半径で設定されてもよく、または、ピッチおよびヨーの関数として変化してもよい。距離は、（１）シーンを測定すること、（２）人間のオペレータによる手動調節、（３）  奥行きセンサを使用して、３Ｄ空間における点の奥行きを測定すること、または（４）ステレオ視差アルゴリズムを使用して奥行きを判断することによって判断されてもよい。
【０１１４】
パノラマにおける点を表わす左パノラマ画像における画素ごとに、カメラマッピングモジュール２０６は、上述の数式（１）、（２）、および（３）をそれぞれ使用して、ヨー、ピッチ、および両眼間拒離を求めてもよい。カメラマッピングモジュール２０６は、そのヨーおよびピッチを使用して、パノラマにおける対応する点への左目の視方向（たとえば、左視方向）を表わすベクトルを構築してもよい。
【０１１５】
いくつかの実現化例では、左パノラマ画像における画素のための、その画素のより良好なビューを有する整合カメラモジュール１０３は、左パノラマ画像における画素に対応するパノラマにおける点への視方向を有していてもよい。整合カメラモジュール１０３の視方向は、パノラマにおける同じ点への他のカメラモジュール１０３の他の視方向よりも、左視方向に近い。たとえば、図７Ａを参照して、整合カメラモジュール１０３ａの視方向７１４は、他のカメラモジュール１０３の他の視方向よりも、左視方向７０４により平行である。言い換えれば、左パノラマ画像における画素ごとに、左カメラマップは、他のカメラモジュール１０３の他の視方向よりも左視方向に最も平行である視方向を有する、対応する整合カメラモジュール１０３を識別してもよい。左視方向により平行である視方向を有する整合カメラモジュール１０３の図を、図７Ａおよび図７Ｂを参照して示す。
【０１１６】
同様に、カメラマッピングモジュール２０６は、右パノラマ画像における画素ごとに対応する整合カメラモジュール１０３を識別する右カメラマップを構築してもよい。たとえば、パノラマにおける点を表わす右パノラマ画像における画素のために、右カメラマップは、他のカメラモジュール１０３よりもパノラマにおける点についてより良好なビューを有する整合カメラモジュール１０３を識別してもよい。このため、右カメラマップは、右パノラマ画像における画素を、対応する画素についてより良好なビューを有する整合カメラモジュール１０３にマッピングしてもよい。
【０１１７】
パノラマにおける点を表わす右パノラマ画像における画素ごとに、カメラマッピングモジュール２０６は、上述の数式（１）、（２）、および（３）をそれぞれ使用して、ヨー、ピッチ、および両眼間拒離を求めてもよい。カメラマッピングモジュール２０６は、そのヨーおよびピッチを使用して、パノラマにおける対応する点への右目の視方向（たとえば、右視方向）を表わすベクトルを構築してもよい。
【０１１８】
いくつかの実現化例では、右パノラマ画像における画素のための、その画素のより良好なビューを有する整合カメラモジュール１０３は、右パノラマ画像における画素に対応するパノラマにおける点への視方向を有していてもよい。整合カメラモジュール１０３の視方向は、パノラマにおける同じ点への他のカメラモジュール１０３の他の視方向よりも、右視方向に近い。たとえば、整合カメラモジュール１０３の視方向は、他のカメラモジュール１０３の他の視方向よりも、右視方向により平行である。言い換えれば、右パノラマ画像における画素ごとに、右カメラマップは、他のカメラモジュール１０３の他の視方向よりも右視方向に最も平行である視方向を有する、対応する整合カメラモジュール１０３を識別してもよい。
【０１１９】
カメラアレイ１０１の物理的構成は一定であるため、左および右カメラマップはそれぞれ異なる左および右パノラマ画像について同じである。左および右カメラマップは、オンザフライ計算と比較してより迅速な処理速度を達成するために、予め計算され、格納されてもよい。
【０１２０】
映像モジュール２０８は、ＶＲ表示装置上で再生されると３Ｄ映像をレンダリングするように構成された３Ｄ映像データのストリームを生成するためのルーチンを含むソフトウェアであってもよい。映像モジュール２０８は、信号線２８０を介してプロセッサ２３５およびコンピューティング装置２００の他の構成要素と協働および通信するために適合されてもよい。３Ｄ映像データのストリームは、経時変化し得るシーンの立体パノラマを記述してもよい。３Ｄ映像データのストリームは、左目視のための左パノラマ画像のストリームおよび右目視のための右パノラマ画像のストリームを含んでいてもよい。
【０１２１】
いくつかの実現化例では、映像モジュール２０８は、カメラアレイ１０１におけるさまざまなカメラモジュール１０３から、画像フレームを記述する未加工映像データを受信する。映像モジュール２０８は、カメラモジュール１０３の各々に関連付けられた位置およびタイミングを識別し、カメラモジュール１０３の位置およびタイミングに基づいて画像フレームを同期させる。映像モジュール２０８は、異なるカメラモジュール１０３によって同時に取り込まれた対応する画像フレームを同期させる。
【０１２２】
たとえば、映像モジュール２０８は、第１のカメラモジュール１０３から画像フレームの第１のストリームを受信し、第２のカメラモジュール１０３から画像フレームの第２のストリームを受信する。映像モジュール２０８は、第１のカメラモジュール１０３がヨー＝００およびピッチ＝００の位置に位置し、第２のカメラモジュール１０３がヨー＝３００およびピッチ＝００の位置に位置すると識別する。映像モジュール２０８は、第１の特定の時間Ｔ＝Ｔ０に取り込まれた第１のストリームからの第１の画像フレームを、同じ特定の時間Ｔ＝Ｔ０に取り込まれた第２のストリームからの第２の画像フレームと関連付け、第２の特定の時間Ｔ＝Ｔ１に取り込まれた第１のストリームからの第３の画像フレームを、同じ特定の時間Ｔ＝Ｔ１に取り込まれた第２のストリームからの第４の画像フレームと関連付けることなどにより、画像フレームの第１のストリームを画像フレームの第２のストリームと同期させる。
【０１２３】
いくつかの実現化例では、映像モジュール２０８は、同期された画像フレームにおける較正エラーを補正モジュール２１０が補正するように、同期された画像フレームを補正モジュール２１０に送信する。たとえば、補正モジュール２１０は、画像フレームにおけるレンズ歪み、配向エラー、および回転エラーなどを補正してもよい。補正モジュール２１０は、較正エラーを補正した後で、画像フレームを映像モジュール２０８に送り返してもよい。
【０１２４】
映像モジュール２０８は、カメラマッピングモジュール２０６から左カメラマップおよび右カメラマップを受信してもよい。それに代えて、映像モジュール２０８は、記憶装置２４１またはメモリ２３７から左および右カメラマップを検索してもよい。映像モジュール２０８は、左カメラマップに基づいて、画像フレームから左パノラマ画像のストリームを構築してもよい。たとえば、映像モジュール２０８は、左カメラマップにリストされた整合カメラモジュール１０３を識別する。映像モジュール２０８は、第１の特定の時間Ｔ＝Ｔ０に整合カメラモジュール１０３によって取り込まれた画像フレームをつなぎ合わせることにより、第１の左パノラマ画像ＰＩＬ，０を構築する。映像モジュール２０８は、第２の特定の時間Ｔ＝Ｔ１に整合カメラモジュール１０３によって取り込まれた画像フレームをつなぎ合わせることにより、第２の左パノラマ画像ＰＩＬ，１を構築し、以降同様である。映像モジュール２０８は、第１の左パノラマ画像ＰＩＬ，０、第２の左パノラマ画像ＰＩＬ，１、および他の構築された左パノラマ画像を含むように、左パノラマ画像のストリームを構築する。
【０１２５】
具体的には、特定の時間Ｔ＝Ｔｉ（ｉ＝０、１、２、…）での左パノラマ画像ＰＩＬ，ｉにおける画素について、映像モジュール２０８は、（１）左カメラマップから整合カメラモジュール１０３を識別し、（２）左パノラマ画像ＰＩＬ，ｉにおける画素を、特定の時間Ｔ＝Ｔｉに整合カメラモジュール１０３によって取り込まれた画像フレームからの対応する画素となるように構成する。左パノラマ画像ＰＩＬ，ｉにおける画素と、整合カメラモジュール１０３の画像フレームにおける対応する画素とは、パノラマにおける同じ点に対応していてもよい。たとえば、パノラマにおける点に対応する左パノラマ画像ＰＩＬ，ｉにおける画素位置について、映像モジュール２０８は、（１）特定の時間Ｔ＝Ｔｉに整合カメラモジュール１０３によって取り込まれた画像フレームから、パノラマにおける同じ点に同じく対応する画素を検索し、（２）整合カメラモジュール１０３の画像フレームからの画素を、左パノラマ画像ＰＩＬ，ｉの画素位置に配置する。
【０１２６】
同様に、映像モジュール２０８は、左パノラマ画像のストリームの構築に関して上述されたものと同様の動作を行なうことにより、右カメラマップに基づいて、画像フレームから右パノラマ画像のストリームを構築する。たとえば、映像モジュール２０８は、右カメラマップにリストされた整合カメラモジュール１０３を識別する。映像モジュール２０８は、第１の特定の時間Ｔ＝Ｔ０に整合カメラモジュール１０３によって取り込まれた画像フレームをつなぎ合わせることにより、第１の右パノラマ画像ＰＩＲ，０を構築する。映像モジュール２０８は、第２の特定の時間Ｔ＝Ｔ１に整合カメラモジュール１０３によって取り込まれた画像フレームをつなぎ合わせることにより、第２の右パノラマ画像ＰＩＲ，１を構築し、以降同様である。映像モジュール２０８は、第１の右パノラマ画像ＰＩＲ，０、第２の右パノラマ画像ＰＩＲ，１、および他の構築された右パノラマ画像を含むように、右パノラマ画像のストリームを構築する。
【０１２７】
具体的には、特定の時間Ｔ＝Ｔｉ（ｉ＝０、１、２、…）での右パノラマ画像ＰＩＲ，ｉにおける画素について、映像モジュール２０８は、（１）右カメラマップから整合カメラモジュール１０３を識別し、（２）右パノラマ画像ＰＩＲ，ｉにおける画素を、特定の時間Ｔ＝Ｔｉに整合カメラモジュール１０３によって取り込まれた画像フレームからの対応する画素となるように構成する。右パノラマ画像ＰＩＲ，ｉにおける画素と、整合カメラモジュール１０３の画像フレームにおける対応する画素とは、パノラマにおける同じ点に対応していてもよい。
【０１２８】
いくつかの実現化例では、映像モジュール２０８は、複数のカメラモジュール１０３に関連付けられた重みに従って複数のカメラモジュール１０３の画像フレームからの画素を混合することにより、左または右パノラマ画像における画素を構築してもよい。例示的な画素混合プロセスを、図８を参照して以下により詳細に説明する。
【０１２９】
いくつかの実現化例では、左および右パノラマ画像は、水平面における立体視（たとえば、ヨー∈［００，３６００］およびピッチ＝００）のために最適化されてもよい。それに代えて、またはそれに加えて、左および右パノラマ画像は、ユーザの視方向に基づいて最適化されてもよい。たとえば、映像モジュール２０８は、ユーザの現在の視方向に基づいて、左パノラマ画像および右パノラマ画像のストリームを適応的に構築してもよい。左および右パノラマ画像のストリームによって提供されるパノラマは、ユーザの現在の視方向において高解像度を有し、逆の視方向において低解像度を有していてもよい。このパノラマは、指向性パノラマと呼ばれてもよい。ユーザが新しい視方向においてパノラマを見るために自分の頭を回転させるにつれて、指向性パノラマは、新しい視方向において高解像度を有し、新しい視方向とは反対の視方向において低解像度を有するように調節されてもよい。指向性パノラマのみが構築されるため、全体的に高解像度のパノラマを構築する場合と比較して、帯域幅および他のリソースが節約され得る。しかしながら、ユーザが視方向を急に変えなければ、３Ｄ鑑賞体験の品質は影響を受けない。
【０１３０】
いくつかの実現化例では、構築された左または右パノラマ画像は、色欠陥を有する場合がある。たとえば、カメラモジュール１０３におけるレンズは異なる方向を指す場合があるため、異なるレンズについては、光および色の状態が違う場合がある。いくつかのカメラモジュール１０３によって撮られたいくつかの画像フレームは露光過多であるかもしれず、一方、他のカメラモジュール１０３によって撮られたいくつかの他の画像フレームは露光不足であるかもしれない。異なるカメラモジュール１０３からの画像フレーム間の露光または色欠陥は、左または右パノラマ画像の構築プロセス中に補正モジュール２１０によって補正されてもよい。
【０１３１】
それに加えて、またはそれに代えて、隣接するカメラモジュール１０３間の視差により、構築された左または右パノラマ画像はつなぎ合わせアーチファクト（すなわち、つなぎ合わせエラー）を有するかもしれず、その場合、視点は、カメラモジュール１０３から隣接するカメラモジュール１０３に切替わる。カメラモジュール１０３から遠く離れた物体は取るに足りない視差を有するかもしれず、遠くの物体についてはつなぎ合わせエラーはないかもしれない。しかしながら、カメラモジュール１０３に近い物体は顕著な視差を有するかもしれず、近くの物体についてはつなぎ合わせエラーがあるかもしれない。つなぎ合わせエラーの補正については、補正モジュール２１０に関して以下により詳細に説明する。
【０１３２】
補正モジュール２１０は、画像フレームまたはパノラマ画像における収差を補正するためのルーチンを含むソフトウェアであってもよい。補正モジュール２１０は、信号線２２８を介してバス２２０に通信可能に結合される。収差は、較正エラー、露光または色欠陥、つなぎ合わせアーチファクト、および他のタイプの収差を含み得る。つなぎ合わせアーチファクトは、左または右パノラマ画像を形成するためにさまざまなカメラモジュール１０３からの画像フレームをつなぎ合わせる際に映像モジュール２０８が犯すエラーを含み得る。補正モジュール２１０は、収差を識別するために、画像フレームまたはパノラマ画像を分析してもよい。補正モジュール２１０は、収差をマスクするかまたは補正するために、画像フレームまたはパノラマ画像を処理してもよい。補正モジュール２１０は、収差を自動的に補正してもよく、または、収差を手動で補正するために集約システム１３１のアドミニストレータにツールまたはリソースを提供してもよい。
【０１３３】
いくつかの実現化例では、補正モジュール２１０は、カメラモジュール１０３によって取り込まれた画像フレームを受信し、それらの画像フレーム上の較正エラーを補正する。たとえば、補正モジュール２１０は、カメラモジュール１０３に関連付けられたレンズ歪みパラメータ、位置、および回転オフセットに基づいて、画像フレームにおけるレンズ歪み（たとえば、樽形歪みまたは糸巻形歪み）およびカメラ配向エラーを補正してもよい。
【０１３４】
別の例では、補正モジュール２１０は、カメラモジュール１０３によって取り込まれた画像フレームを分析し、画像フレームに存在する較正エラーを判断し、カメラモジュール１０３を較正するために使用される較正因子を求めてもよい。較正因子は、カメラモジュール１０３によって取り込まれた画像フレームを、画像フレームがより少ないエラーを含むように自動的に修正するために使用されるデータを含んでいてもよい。いくつかの実現化例では、較正因子は、ユーザがＶＲコンテンツを消費する間に検出可能なエラーを画像フレームが含まないように、補正モジュール２１０によって画像フレームに適用される。たとえば、補正モジュール２１０は、較正エラーによって生じた画像フレームにおける欠陥を検出してもよい。補正モジュール２１０は、欠陥に関連付けられた１つ以上の画素を判断してもよい。補正モジュール２１０は、これらの画素に関連付けられた画素値を判断し、次に、欠陥が補正されるように較正因子を使用して画素値を修正してもよい。いくつかの実現化例では、較正因子はまた、カメラアレイ１０１の較正欠陥を手動で補正するために較正因子を使用するカメラアレイ１０１のアドミニストレータに提供されてもよい。
【０１３５】
いくつかの実現化例では、補正モジュール２１０は、カメラアレイ１０１によって取り込まれた画像フレームにおける露光または色欠陥を検出し、補正してもよい。たとえば、補正モジュール２１０は、露光または色欠陥に関連付けられた１つ以上の画素を判断してもよい。補正モジュール２１０は、これらの画素に関連付けられた画素値を判断し、次に、鑑賞システム１３３を使用したＶＲコンテンツの消費中に露光または色欠陥がユーザ１３４によって検出できないように、画素値を修正してもよい。いくつかの実現化例では、カメラアレイ１０１のカメラモジュール１０３は重複する視野を有し、カメラアレイ１０１によって取り込まれた画像フレームにおける露光または色欠陥は、この重複を使用して補正または自動補正されてもよい。他の実現化例では、カメラアレイ１０１によって取り込まれた画像フレームにおける露光または色欠陥は、公知の値のカラーチャートに基づいた較正を使用して補正されてもよい。
【０１３６】
いくつかの実現化例では、補正モジュール２１０は、近くの物体によって生じたつなぎ合わせエラーを補正してもよい。たとえば、物体がカメラアレイ１０１に近いほど、各カメラモジュール１０３から物体までの視角の差が大きくなる。つなぎ合わせ境界を横断する近くの物体は、不意に視角間を移行する場合があり、ひいては明らかな視覚的不連続性をもたらす場合がある。これはここに「近くの物体の問題」と呼ばれる場合がある。つなぎ合わせアーチファクトは、近くの物体について生じる場合がある。つなぎ合わせエラーを減少させるための１つの例示的なメカニズムは、単一の連続的な、球状の画像センサの理想に近づくように、カメラアレイ１０１の球状ハウジングケース全体にわたって分布されるカメラモジュール１０３の数を増加させることを含んでいてもよい。このメカニズムは、隣接するカメラ間の視角の差異を減少させ、ひいては、つなぎ合わせアーチファクトを減少させ得る。それに代えて、つなぎ合わせアーチファクトが減少するように、増加するカメラ密度をシミュレートするために、実在するカメラ間にバーチャルカメラを補間してもよい。バーチャルカメラを使用した画像つなぎ合わせは、「画像つなぎ合わせ」（Image Stitching）と題され、２０１４年８月２１日に出願された米国出願第１４／４６５，５８１号により詳細に記載されており、当該出願はその全体がここに引用により援用される。
【０１３７】
音声モジュール２１２は、音声再生装置上で再生されると３Ｄ音声をレンダリングするように構成された３Ｄ音声データのストリームを生成するためのルーチンを含むソフトウェアであってもよい。音声モジュール２１２は、信号線２３０を介してバス２２０に通信可能に結合される。音声モジュール２１２は、マイクロホンアレイ１０７から受信された未加工音声データに基づいて、３Ｄ音声データを生成してもよい。いくつかの実現化例では、音声モジュール２１２は、映像モジュール２０８によって生成された３Ｄ映像データに対応する４チャンネルアンビソニック音声トラックを生成するために、未加工音声データを処理してもよい。４チャンネルアンビソニック音声トラックは、迫力ある３６０度の３Ｄ音声体験をユーザ１３４に提供し得る。
【０１３８】
いくつかの実現化例では、４チャンネル音声トラックは、テトラミックマイクロホンなどのマイクロホンアレイ１０７によって、「Ａ」フォーマットで記録されてもよい。音声モジュール２１２は、「Ａ」フォーマットの４チャンネル音声トラックを、Ｗ、Ｘ、Ｙ、およびＺという４つの信号を含む「Ｂ」フォーマットに変換してもよい。Ｗ信号は、全指向性マイクロホンに対応する圧力信号を表わしていてもよく、Ｘ信号、Ｙ信号、Ｚ信号は、前後方向、左右方向、上下方向の指向性の音にそれぞれ対応していてもよい。いくつかの実現化例では、「Ｂ」フォーマットの信号は、モノモード、ステレオモード、バイノーラルモード、４つ以上のスピーカを含むサラウンドサウンドモード、および任意の他のモードを含むもののそれらに限定されない多くのモードで再生されてもよい。いくつかの例では、音声再生装置は１対のヘッドホンを含んでいてもよく、１対のヘッドホンでの音声再生のためにバイノーラル再生モードが使用されてもよい。音声モジュール２１２は、ユーザ１３４のために迫力ある３Ｄ聴取体験を有するバイノーラル音声を生成するために、頭部伝達関数（Head Related Transfer Function：ＨＲＴＦ）を用いて「Ｂ」フォーマットのチャンネルを畳み込んでもよい。
【０１３９】
いくつかの実現化例では、音声モジュール２１２は、ユーザの頭部回転と一致するように音定位を提供するように構成された３Ｄ音声データを生成する。たとえば、音がユーザの右手側から出ていて、ユーザがその音に面するよう回転した場合、ＶＲコンテンツの消費中に再生される音声は、それがまるでユーザの前から来るかのように聞こえる。
【０１４０】
いくつかの実現化例では、未加工音声データは、記録された音の指向性を記述する指向性データを用いてコード化される。音声モジュール２１２は、ユーザの頭部配向の回転に基づいて再生中に再現される音を変更する３Ｄ音声データを生成するために、指向性データを分析してもよい。たとえば、音の指向性は、ユーザの頭部位置の角度と整合するように回転されてもよい。ＶＲコンテンツが、頭上に木の枝の樹冠がある森を描くと仮定する。ＶＲコンテンツ用の音声は、川の音を含む。指向性データは、川がユーザ１３４の背後にあることを示し、そのため、音声モジュール２１２によって生成される３Ｄ音声データは、再生中、川がまるでユーザ１３４の背後に位置するかのように聞こえるようにする音声を再現するように構成される。これは、３Ｄ音声データが指向性を再現するように構成されている一例である。川の音声を聞くと、ユーザ１３４は、川が自分の背後にあると感知するであろう。３Ｄ音声データは、ユーザ１３４が自分の頭を側方に傾けるにつれて水の音が変化するように構成される。傾斜角度が始点を基準として１８０度に近づくにつれて、川は、それがまるでユーザ１３４の前にあるかのように聞こえる。これは、３Ｄ音声データが、ユーザ１３４の頭部位置の角度に基づいて指向性を再現するように構成されている一例である。３Ｄ音声データは、川の音がよりはっきりと、より明瞭になり、ユーザ１３４が、水が自分からどれくらい離れているか、および水がどれくらいの速さで流れているかについてよりよく感知するように構成されてもよい。
【０１４１】
ストリーム組合せモジュール２１４は、ＶＲコンテンツを生成するために３Ｄ映像データのストリームと３Ｄ音声データのストリームとを組合わせるためのルーチンを含むソフトウェアであってもよい。ストリーム組合せモジュール２１４は、信号線２２９を介してバス２２０に通信可能に結合される。３Ｄ映像データのストリームは、左目視のための左パノラマ画像のストリームおよび右目視のための右パノラマ画像のストリームを含む。左パノラマ画像のストリームと右パノラマ画像のストリームとの間には、冗長性が存在する。
【０１４２】
ストリーム組合せモジュール２１４は、圧縮された３Ｄ映像データのストリームを生成するために、映像圧縮手法を使用して左パノラマ画像のストリームおよび右パノラマ画像のストリームを圧縮してもよい。いくつかの実現化例では、左または右パノラマ画像の各ストリーム内で、ストリーム組合せモジュール２１４は、対応するストリームのサイズを減少させるために、１つのフレームから次のフレームに冗長情報を使用してもよい。たとえば、第１の画像フレーム（たとえば参照フレーム）を参照して、次の画像フレームにおける冗長情報が、次の画像フレームのサイズを減少させるために除去されてもよい。この圧縮は、左または右パノラマ画像の同じストリーム内での時間的圧縮またはフレーム間圧縮と呼ばれる場合がある。
【０１４３】
それに代えて、またはそれに加えて、ストリーム組合せモジュール２１４は、一方のストリーム（左パノラマ画像のストリームまたは右パノラマ画像のストリームのいずれか）を参照ストリームとして使用し、その参照ストリームに基づいて他方のストリームを圧縮してもよい。この圧縮は、ストリーム間圧縮と呼ばれる場合がある。たとえば、ストリーム組合せモジュール２１４は、各左パノラマ画像を、対応する右パノラマ画像のための参照フレームとして使用してもよく、参照された左パノラマ画像に基づいて対応する右パノラマ画像を圧縮してもよい。
【０１４４】
いくつかの実現化例では、ストリーム組合せモジュール２１４は、ＶＲコンテンツのストリームを形成するために、３Ｄ映像データ（または圧縮された３Ｄ映像データ）３Ｄ音声データのストリームをコード化してもよい。たとえば、ストリーム組合せモジュール２１４は、Ｈ．２６４を使用して３Ｄ映像データのストリームを圧縮し、アドバンスト・オーディオ・コーディング（advanced audio coding：ＡＡＣ）を使用して３Ｄ音声データのストリームを圧縮してもよい。別の例では、ストリーム組合せモジュール２１４は、標準ＭＰＥＧフォーマットを使用して、３Ｄ映像データのストリームおよび３Ｄ音声データのストリームを圧縮してもよい。ＶＲコンテンツは、３Ｄ映像データのストリーム（または圧縮された３Ｄ映像データのストリーム）、３Ｄ音声データのストリーム（または圧縮された３Ｄ音声データのストリーム）、コンテンツサーバ１３９からのコンテンツデータ、広告サーバ１４１からの広告データ、ソーシャルネットワークサーバ１３５からのソーシャルデータ、および任意の他の好適なＶＲコンテンツの任意の組合せを使用して、ストリーム組合せモジュール２１４によって構築されてもよい。
【０１４５】
いくつかの実現化例では、ＶＲコンテンツは、ＭＰ４、ＷｅｂＭ、ＶＰ８、および任意の他の好適なフォーマットなどのコンテナフォーマットでパッケージ化されてもよい。ＶＲコンテンツは、クライアント装置１２７またはサーバ１２９にファイルとして格納されてもよく、ユーザ１３４のためにクライアント装置１２７またはサーバ１２９から鑑賞システム１３３へストリーミングされてもよい。それに代えて、ＶＲコンテンツは、デジタル多用途ディスク（digital versatile disc：ＤＶＤ）、フラッシュメモリ、または別のタイプの記憶装置に格納されてもよい。
【０１４６】
ここで図３を参照して、ここに説明される少なくともいくつかの実現化例に従った、ＶＲコンテンツを生成するために画像フレームおよび音声データを集約するための例示的な方法３００を説明する。方法３００は、図１および図２に関して説明される。別々のブロックとして図示されているが、さまざまなブロックは、所望の実現化例に依存して、追加のブロックになるよう分割されてもよく、より少ないブロックになるよう組合わされてもよく、または削除されてもよい。
【０１４７】
図３の図示された実現化例では、方法３００は、通信モジュール２０２が未加工映像データを受信するステップ（３０２）を含んでいてもよい。未加工映像データは、カメラモジュール１０３からの画像フレームを記述してもよい。通信モジュール２０２は、マイクロホンアレイ１０７から未加工音声データを受信する（３０４）。映像モジュール２０８は、３Ｄ映像データのストリームを生成するために画像フレームを集約する（３０６）。３Ｄ映像データのストリームは、左パノラマ画像のストリームおよび右パノラマ画像のストリームを含む。音声モジュール２１２は、未加工音声データから３Ｄ音声データのストリームを生成する（３１０）。ストリーム組合せモジュール２１４は、３Ｄ映像データのストリームおよび３Ｄ音声データのストリームを含むＶＲコンテンツを生成する（３１２）。
【０１４８】
ここに開示されたこのおよび他のプロセスおよび方法のために、これらのプロセスおよび方法で行なわれる機能は異なる順序で実現されてもよい、ということを、当業者であれば理解するであろう。さらに、概説されたステップおよび動作は単に例として提供されており、これらのステップおよび動作のうちのいくつかは、開示された実現化例の本質を損なうことなく、オプションであってもよく、より少ないステップおよび動作になるよう組合わされてもよく、または追加のステップおよび動作になるよう拡張されてもよい。
【０１４９】
図４Ａ〜図４Ｃは、いくつかの実現化例に従った、ＶＲコンテンツを生成するために画像フレームおよび音声データを集約するための別の例示的な方法４００を示す。方法４００は、図１および図２に関して説明される。別々のブロックとして図示されているが、さまざまなブロックは、所望の実現化例に依存して、追加のブロックになるよう分割されてもよく、より少ないブロックになるよう組合わされてもよく、または削除されてもよい。
【０１５０】
図４Ａを参照して、較正モジュール２０４は、カメラアレイ１０１におけるカメラモジュール１０３を較正する（４０２）。通信モジュール２０２は、カメラモジュール１０３から画像フレームを記述する未加工映像データを受信する（４０４）。通信モジュール２０２は、マイクロホンアレイ１０７から未加工音声データを受信する（４０６）。映像モジュール２０８は、カメラモジュール１０３の各々に関連付けられた位置およびタイミングを識別する（４０８）。映像モジュール２０８は、カメラモジュール１０３に関連付けられた位置およびタイミングに基づいて、画像フレームを同期させる（４１０）。カメラマッピングモジュール２０６は、左カメラマップおよび右カメラマップを構築する（４１２）。左カメラマップは、左パノラマ画像における画素のための整合カメラモジュール１０３を識別する。たとえば、パノラマにおける点を表わす左パノラマ画像における画素のために、左カメラマップは、他のカメラモジュール１０３よりもその点へのより良好なビューを有する整合カメラモジュール１０３を識別する。同様に、右カメラマップは、右パノラマ画像における画素のための整合カメラモジュール１０３を識別する。
【０１５１】
図４Ｂを参照して、映像モジュール２０８は、左カメラマップに基づいて、画像フレームから左パノラマ画像のストリームを生成する（４１４）。たとえば、映像モジュール２０８は、左カメラマップに基づいて、左パノラマ画像における画素のための整合カメラモジュール１０３を識別する。映像モジュール２０８は、対応する左パノラマ画像を形成するために、特定の時間に対応する整合カメラモジュール１０３によって取り込まれた画像フレームをつなぎ合わせる。補正モジュール２１０は、左パノラマ画像における色欠陥を補正する（４１６）。補正モジュール２１０は、左パノラマ画像におけるつなぎ合わせエラーを補正する（４１８）。
【０１５２】
映像モジュール２０８は、右カメラマップに基づいて、画像フレームから右パノラマ画像のストリームを生成する（４２０）。たとえば、映像モジュール２０８は、右カメラマップに基づいて、右パノラマ画像における画素のための整合カメラモジュール１０３を識別する。映像モジュール１０８は、対応する右パノラマ画像を形成するために、特定の時間に対応する整合カメラモジュール１０３によって取り込まれた画像フレームをつなぎ合わせる。補正モジュール２１０は、右パノラマ画像における色欠陥を補正する（４２２）。補正モジュール２１０は、右パノラマ画像におけるつなぎ合わせエラーを補正する（４２４）。
【０１５３】
図４Ｃを参照して、ストリーム組合せモジュール２１４は、３Ｄ映像データの圧縮されたストリームを生成するために、左パノラマ画像のストリームおよび右パノラマ画像のストリームを圧縮する（４２６）。音声モジュール２１２は、未加工音声データから３Ｄ音声データのストリームを生成する（４２８）。ストリーム組合せモジュール２１４は、３Ｄ映像データの圧縮されたストリームおよび３Ｄ音声データのストリームを含むＶＲコンテンツを生成する（４３０）。いくつかの実現化例では、ストリーム組合せモジュール２１４はまた、３Ｄ音声データの圧縮されたストリームを形成するために３Ｄ音声データのストリームを圧縮してもよく、ＶＲコンテンツは、３Ｄ映像データの圧縮されたストリームおよび３Ｄ音声データの圧縮されたストリームを含んでいてもよい。
【０１５４】
図５は、ここに説明される少なくともいくつかの実現化例に従って配置された、特定の時間に複数のカメラモジュール１０３ａ、１０３ｂ…１０３ｎによって取り込まれた複数の画像フレームから左パノラマ画像および右パノラマ画像を生成する例示的なプロセス５００を示す。特定の時間Ｔ＝Ｔｉ（ｉ＝０、１、２、…）に、カメラモジュール１０３ａは画像フレーム５０２ａを取り込み、カメラモジュール１０３ｂは画像フレーム５０２ｂを取り込み、カメラモジュール１０３ｎは画像フレーム５０２ｎを取り込む。映像モジュール２０８は、画像フレーム５０２ａ、５０２ｂ、および５０２ｎを受信する。映像モジュール２０８は、左カメラマップ５０４に基づいて左パノラマ画像５０８を生成し、右カメラマップ５０６に基づいて右パノラマ画像５１０を生成するために、画像フレーム５０２ａ、５０２ｂ、および５０２ｎを集約する。左パノラマ画像５０８および右パノラマ画像５１０は、特定の時間Ｔ＝Ｔｉに関連付けられる。
【０１５５】
図６Ａは、ここに説明される少なくともいくつかの実現化例に従って配置された、例示的なパノラマ画像を示す図解６００である。パノラマ画像は、水平面における回転を表わす第１の軸「ヨー」と、垂直方向での上下回転を表わす第２の軸「ピッチ」とを有する。パノラマ画像は、シーンパノラマの３６０度の球全体をカバーする。パノラマ画像における位置［ヨー，ピッチ］での画素は、「ヨー」値と「ピッチ」値とを有する頭部回転で見られるパノラマにおける点を表わす。このため、パノラマ画像は、単一の頭部位置からのシーンの単一のビューではなく、さまざまな頭部回転からの混合されたビューを含む。
【０１５６】
図６Ｂは、ここに説明される少なくともいくつかの実現化例に従って配置された、例示的なカメラマップを示す図解６５０である。例示的なカメラマップは、パノラマ画像のカメラ区分６５２ａおよび６５２ｂにおける第１の画素を第１の整合カメラモジュール１０３に整合させ、カメラ区分６５４における第２の画素を第２の整合カメラモジュール１０３に整合させ、カメラ区分６５６ａおよび６５６ｂにおける第３の画素を第３の整合カメラモジュール１０３に整合させる。カメラ区分６５２ａおよび６５２ｂ内のパノラマ画像の第１の画素については、第１の画素のための値は、第１の整合カメラモジュール１０３によって取り込まれた第１の画像フレームにおける対応する画素値であるように構成されてもよい。同様に、カメラ区分６５４内のパノラマ画像の第２の画素については、第２の画素のための値は、第２の整合カメラモジュール１０３によって取り込まれた第２の画像フレームにおける対応する画素値であるように構成されてもよい。カメラ区分６５６ａおよび６５６ｂ内のパノラマ画像の第３の画素については、第３の画素のための値は、第３の整合カメラモジュール１０３によって取り込まれた第３の画像フレームにおける対応する画素値であるように構成されてもよい。この例では、パノラマ画像は、第１の整合カメラモジュール１０３からの第１の画像フレームの一部、第２の整合カメラモジュール１０３からの第２の画像フレームの一部、第３の整合カメラモジュール１０３からの第３の画像フレームの一部、および他の整合カメラモジュール１０３からの他の画像フレームの一部を使用してつなぎ合わされる。
【０１５７】
図７Ａおよび図７Ｂは、ここに説明される少なくともいくつかの実現化例に従って配置された、左および右パノラマ画像における画素のための整合カメラモジュール１０３を選択する例示的なプロセスを示す図解７００および７３０である。図７Ａを参照して、カメラアレイ１０１は、球状ハウジング上に搭載されたカメラモジュール１０３ａ、１０３ｂ、１０３ｃ、１０３ｄおよび他のカメラモジュールを含む。点７１６は、ヨー＝９００およびピッチ＝００を有する頭部回転位置に対応すると仮定する。左目の位置７１８と右目の位置７２０との間には、両眼間拒離７１２が示されている。ピッチ＝００であるため、両眼間拒離７１２はその最大値にある。左目の位置７１８および右目の位置７２０は、（１）点７１６からカメラアレイ１０１の中心まで第１の線を引き、（２）現在のピッチ値に基づいて両眼間拒離を求め、（３）第１の線に垂直であり、かつヨー＝［００，３６００］およびピッチ＝００を有する平面と平行である第２の線（ここで、第２の線は、求められた両眼間拒離と等しい長さを有し、カメラアレイ１０１の中心を中心とする）を引き、（４）第２の線の左端点を左目の位置７１８として構成し、第２の線の右端点を右目の位置７２０として構成することによって、定められてもよい。
【０１５８】
左目の位置７１８から点７１６への左視方向７０４と、右目の位置７２０から点７１６への右視方向７０８とが、図７Ａに示されている。カメラモジュール１０３ａ、１０３ｂ、および１０３ｃは、点７１６への視方向７１４、７２２、７１０をそれぞれ有する。
【０１５９】
カメラモジュール１０３ａの視方向７１４は、他の視方向７２２および７１０と比較して、左視方向７０４により平行である（たとえば、視方向７１４と左視方向７０４との間の角度は、左視方向７０４と他の視方向７２２および７１０との間の角度よりも小さい）ため、カメラモジュール１０３ａが、左カメラマップにおいて、他のカメラモジュールよりも点７１６についてより良好なビューを有する整合カメラモジュールとして選択される。カメラモジュール１０３ｃの視方向７１０は、他の視方向７２２および７１４と比較して、右視方向７０８により平行であるため、カメラモジュール１０３ｃが、右カメラマップにおいて、他のカメラモジュールよりも点７１６についてより良好なビューを有する整合カメラモジュールとして選択される。
【０１６０】
図７Ｂを参照して、パノラマにおける点７３６は、ヨー＝８００およびピッチ＝００を有する頭部回転位置に対応すると仮定する。左目の位置７４８と右目の位置７４９との間には、両眼間拒離７４２が図示されている。左目の位置７４８から点７３６への左視方向７３４と、右目の位置７４９から点７３６への右視方向７４０とが、図７Ｂに示されている。カメラモジュール１０３ａ、１０３ｂ、１０３ｃ、および１０３ｄは、点７３６への視方向７３２、７３８、７４４、７３１をそれぞれ有する。カメラモジュール１０３ａの視方向７３２は、他の視方向７３８、７４４、７３１と比較して、左視方向７３４により平行であるため、カメラモジュール１０３ａが、左カメラマップにおいて、点７３６についてより良好なビューを有する整合カメラモジュールとして選択される。カメラモジュール１０３ｂの視方向７３８は、他の視方向７３１、７３４、７４４と比較して、右視方向７４０により平行であるため、カメラモジュール１０３ｂが、右カメラマップにおいて、点７３６についてより良好なビューを有する整合カメラモジュールとして選択される。
【０１６１】
いくつかの実現化例では、左目視のための左パノラマ画像における点７３６のための整合カメラモジュールを判断する動作は、（１）それぞれの視野に点７３６を有する１組のカメラモジュールを判断する、（２）左目の位置７４８から点７３６への左視方向７３４を判断する、（３）１組のカメラモジュールについて、点７３６への１組の視方向を判断する、（４）１組の視方向から視方向７３２を選択する（ここで、視方向７３２は、左視方向７３４と１組のうちの他の視方向との間に形成される角度と比較して、左視方向７３４と最小角度を形成する（言い換えれば、視方向７３２は、他の視方向よりも、左視方向７３４により平行である））、および（５）点７３６のための整合カメラモジュールを、視方向７３２を有するカメラモジュール１０３ａとして構成する、と要約され得る。左パノラマ画像における点７３６のための整合カメラモジュールを判断するための他のいくつかの費用関数は、それらの費用関数が左目の位置７４８からのビューへの最良の近似の何らかの概念を定義し得る限り、可能である。
【０１６２】
同様に、右目視のための右パノラマ画像における点７３６のための整合カメラモジュールを判断する動作は、（１）それぞれの視野に点７３６を有する１組のカメラモジュールを判断する、（２）右目の位置７４９から点７３６への右視方向７４０を判断する、（３）１組のカメラモジュールについて、点７３６への１組の視方向を判断する、（４）１組の視方向から視方向７３８を選択する（ここで、視方向７３８は、右視方向７４０と１組のうちの他の視方向との間に形成される角度と比較して、右視方向７４０と最小角度を形成する）、および（５）点７３６のための整合カメラモジュールを、視方向７３８を有するカメラモジュール１０３ｂとして構成する、と要約され得る。右パノラマ画像における点７３６のための整合カメラモジュールを判断するための他のいくつかの費用関数は、それらの費用関数が右目の位置７４９からのビューへの最良の近似の何らかの概念を定義し得る限り、可能である。
【０１６３】
図８は、ここに説明される少なくともいくつかの実現化例に従って配置された、２つのカメラ区分の境界上の画素を混合する例示的なプロセスを示す図解８００である。一例として、以下の説明は、２つのカメラ区分８０４および８０６の境界８０２上の画素を混合することを指す。より一般的には、その説明は、他のカメラ区分の境界上の画素を混合することにも当てはまる。
【０１６４】
図８を参照して、例示的なカメラマップ８１０は、カメラ区分８０４および８０６における画素を、第１の整合カメラモジュール１０３および第２の整合カメラモジュール１０３にそれぞれマッピングする。言い換えれば、第１の整合カメラモジュール１０３は、他のカメラモジュールよりも、カメラ区分８０４における第１の画素についてより良好なビューを有し、第２の整合カメラモジュール１０３は、他のカメラモジュールよりも、カメラ区分８０６における第２の画素についてより良好なビューを有する。
【０１６５】
カメラ区分８０４内に位置するパノラマ画像の画素については、それらの画素のための値は、第１の整合カメラモジュール１０３によって取り込まれた対応する画素値であるように構成されてもよい。同様に、カメラ区分８０６内に位置するパノラマ画像の画素については、それらの画素のための値は、第２の整合カメラモジュール１０３によって取り込まれた対応する画素値であるように構成されてもよい。しかしながら、境界８０２上のパノラマ画像の画素については、カメラモジュール間のわずかな色または照明の不整合によって生じる、目に見えるつなぎ目が、境界８０２上で低減または排除されるように、境界８０２上のパノラマ画像の画素値を形成するために、第１の整合カメラモジュール１０３によって取り込まれた第１の画素値は、第２の整合カメラモジュール１０３によって取り込まれた第２の画素値と混合されてもよい。
【０１６６】
たとえば、第１のカメラモジュール１０３によって取り込まれた第１の画素値は、第１の高周波数部分と第１の低周波数部分とに分離されてもよく、第１のカメラモジュール１０３によって取り込まれた第２の画素値は、第２の高周波数部分と第２の低周波数部分とに分離されてもよい。第１の低周波数部分と第２の低周波数部分とは、混合された低周波数部分を形成するために、対応するカメラモジュールに関連付られた重みを使用して組合わされてもよい。第１の高周波数部分および第２の高周波数部分のうちの一方が選択され、混合された低周波数部分と組合わされて、境界８０２上で混合された画素のための画素値を形成してもよい。たとえば、混合された画素は、以下のように得られてもよい。
【０１６７】
【数１】
2016537903.tif 000003
【０１６８】
式中、Ｍは、境界８０２上の画素を取り込むカメラモジュール（または整合カメラモジュール）の総数を表わし、Ｗｉは、対応するカメラモジュールｉについての重みを表わす。
【０１６９】
カメラモジュールｉの低周波数部分についての重みＷｉは、ユーザの視点がカメラモジュールｉの視野境界に向かって動くにつれて低下し得る。たとえば、ユーザが自分の頭を回転させ、ユーザの視点がカメラモジュールｉの視野からカメラモジュールｉ＋１の視野に動くにつれて、カメラモジュールｉの低周波数部分についての重みＷｉはゼロまで低下し、カメラモジュールｉ＋１の低周波数部分についての重みＷｉ＋１はゼロから非ゼロ値に増加し得る。
【０１７０】
いくつかの実現化例では、カメラモジュールの低周波数部分についての重みは、カメラマップに格納されてもよい。上述のように、カメラマップは、「（整合カメラモジュールの識別子，ｘ，ｙ）」というエントリを、入力（ヨー，ピッチ）に関するマップエントリに格納してもよく、ここで、入力（ヨー，ピッチ）は、パノラマ画像における画素（ヨー，ピッチ）を表わしていてもよく、（ｘ，ｙ）は、識別された整合カメラモジュールの画像平面における位置（ｘ，ｙ）での画素を表わしていてもよい。カメラマップはまた、識別された各整合カメラモジュールの低周波数部分についてのそれぞれの重みを格納してもよい。たとえば、カメラマップは、「（整合カメラモジュールの識別子，ｘ，ｙ，整合カメラモジュールの低周波数部分についての重み）」というエントリを、入力（ヨー，ピッチ）に関するマップエントリに格納してもよい。
【０１７１】
図９Ａおよび図９Ｂは、ここに説明される少なくともいくつかの実現化例に従って配置された、表現が向上した例示的なパノラマ画像（たとえば、左または右パノラマ画像）を示す図解９００および９２０である。図９Ａを参照して、例示的なパノラマ画像９０１は、赤道領域９０２（３６００×９００）と、北極領域９０４（たとえば、３６００×４５０の天井領域）と、南極領域９０６（たとえば、３６００×４５０の床領域）とを含んでいてもよい。赤道領域９０２は、北極領域９０４および南極領域９０６よりも歪みが少ない区域を含んでいてもよい。
【０１７２】
領域９０２、９０４、および９０６を含むパノラマ画像９０１を使用してパノラマを構築するのではなく、赤道領域９０２と、正方形の北極部分９２４（９００×９００、北極は北極部分９２４の中心にある）と、正方形の南極部分９２６（９００×９００、南極は南極部分９２６の中心にある）とを使用して、パノラマを構築してもよい。言い換えれば、パノラマを構築するために、北極部分９２４および南極部分９２６はそれぞれ北極領域９０４および南極領域９０６にとって代わってもよい。たとえば、赤道領域９０２を球の中央区分に貼り、正方形の北極部分９２４を球の上部区分に貼り、正方形の南極部分９２６を球の底部区分に貼ることによって、パノラマを構築してもよい。北極部分９２４の周囲長は９００×４＝３６００であり、それは赤道領域９０２の上縁と整合する。同様に、南極部分９２６の周囲長は９００×４＝３６００であり、それは赤道領域９０２の底縁と整合する。
【０１７３】
図９Ａの領域９０２、９０４、および９０６を使用して構築されたパノラマと比較すると、赤道領域９０２、北極部分９２４、および南極部分９２６を使用して構築されたパノラマは、極領域において画素がより少なく（たとえば、２５％少ない）、また、歪みがより少ない。部分９２４および９２６についての解像度は、赤道領域９０２についての解像度より低くてもよく、それは、パノラマを表わす効率をさらに向上させる。赤道領域９０２、北極部分９２４、および南極部分９２６は、図９Ｂに示すように矩形の画像として配置され、鑑賞システム１３３に送信されてもよい。
【０１７４】
図１０Ａ〜１０Ｃは、いくつかの実現化例に従った、カメラモジュール１０３の増加密度とパノラマ画像におけるつなぎ合わせエラーの減少との関係を示す図解１０００、１０４０、および１０６０である。図１０Ａを参照して、４つのカメラモジュール（たとえば、カメラ１、２、３、および４）が２つの同心壁の内部に位置しており、円形の内壁１００２は、円形の外壁１００４よりも、カメラ１、２、３、および４に近く、かつ短い。パノラマビューを取り込むカメラが４つあるため、内壁１００２および外壁１００４のパノラマビューは、実線１００６ａ、１００６ｂ、１００６ｃ、および１００６ｄを使用して示すように、等しい４象限へと分割され得る。各カメラは、内壁１００２のパノラマビューの対応する部分を取り込むために、広範な視野を必要とし得る。たとえば、カメラ２の広範な視野が、破線１００８ａおよび１００８ｂを使用して示されている。
【０１７５】
カメラ１、２、３、および４の中心は、内壁１００２および外壁１００４の中心と同じ場所に配置されていないため、各カメラは、外壁１００４のビューよりもカメラ象限間の重複が少ない内壁１００２のビューを有し得る。たとえば、カメラ２からの内壁１００２および外壁１００４のビューを、図１０Ｂの左の図に示す。陰をつけた区域は重複を示す。異なるカメラからの画像をつなぎ合わせるために、各象限画像の境界は直線である必要があり得る。しかしながら、内壁１００２および外壁１００４双方についての重複をなくすことができる直線はないかもしれない。たとえば、外壁１００４についての重複をなくす直線１０４２Ａおよび１０４２Ｂは、内壁１００２の一部を切り離す。このため、パノラマにおいて内壁１００２の一部が消えるかもしれない。内壁１００２についての重複をなくす直線１０４４Ａおよび１０４４Ｂは、パノラマにおいて外壁１００４の重複を残す。このため、パノラマにおいて外壁１００４の一部が複製されるかもしれない。
【０１７６】
カメラ象限間の重複を除去した後の内壁１００２および外壁１００４のビューを、図１０Ｂの中央の図に示す。しかしながら、内壁１００２は外壁１００４よりもカメラ２に近いため、内壁１００２のビューは、図１０Ｂの中央の図に示すように外壁１００４のビューよりもサイズが大きい。異なるカメラからの内壁１００２および外壁１００４のビューが、内壁１００２のビューを調節せずにつなぎ合わされる場合、つなぎ合わせエラーが生じ得る。言い換えれば、視覚的に検出可能なつなぎ合わせエラーを回避するために、内壁１００２のビューは、図１０Ｂの右の図に示すように外壁１００４のビューと一致するように調節されてもよい。
【０１７７】
シーンにおけるさまざまな位置にさまざまな物体が位置するシナリオでは、遠くの物体のビューに適合するようにより近くの物体のビューを調節することは、難題であり得る。しかしながら、シーンを取り込むためにより多くのカメラが追加される場合（たとえば、カメラの密度が増加する場合）、各カメラはシーンを取り込むためにより狭い視野を使用し、内壁１００２および外壁１００４についての各カメラの視角は集束するであろう。その結果、異なるカメラからの画像の集約から生じるつなぎ合わせエラーは、低減または排除され得る。例として、カメラ２およびカメラ２の視角を、図１０Ｃに示す。カメラ２のより狭い視野が使用される場合、カメラ２からの内壁１００２および外壁１００４の視角は集束するであろう。カメラアレイ１０１におけるカメラ密度を増加させるための例示的なメカニズムは、カメラアレイ１０１にバーチャルカメラを追加することを含んでいてもよく、それについて、図１１〜１５Ｂを参照して以下により詳細に説明する。
【０１７８】
ここで図１１を参照して、ここに説明される少なくともいくつかの実現化例に従った集約システム１３１の別の例を図示する。図１１は、集約システム１３１と、メモリ１１３７と、プロセッサ１１３５と、記憶装置１１４１と、通信部１１４５とを含むコンピューティング装置１１００のブロック図である。図示された実現化例では、コンピューティング装置１１００の構成要素は、バス１１２０によって通信可能に結合される。いくつかの実現化例では、コンピューティング装置１１００は、パーソナルコンピュータ、スマートフォン、タブレットコンピュータ、セットトップボックス、または任意の他のプロセッサベースのコンピューティング装置であってもよい。コンピューティング装置１１００は、図１Ａのクライアント装置１２７、サーバ１２９、およびシステム１００における別の装置のうちの１つであってもよい。
【０１７９】
プロセッサ１１３５は、計算を行ない、電子表示信号を表示装置に提供するための、算術論理演算ユニット、マイクロプロセッサ、汎用コントローラ、または何らかの他のプロセッサアレイを含んでいてもよい。プロセッサ１１３５は、他の構成要素との通信のために信号線１１３８を介してバス１１２０に結合される。プロセッサ１１３５はデータ信号を処理してもよく、複雑命令セットコンピュータ（ＣＩＳＣ）アーキテクチャ、縮小命令セットコンピュータ（ＲＩＳＣ）アーキテクチャ、または命令セットの組合せを実現するアーキテクチャを含むさまざまなコンピューティングアーキテクチャを含んでいてもよい。図１１は単一のプロセッサ１１３５を含むが、複数のプロセッサが含まれていてもよい。他のプロセッサ、オペレーティングシステム、センサ、ディスプレイ、および物理的構成が可能であってもよい。
【０１８０】
メモリ１１３７は、ここに説明される機能性を提供するためにデータを格納する非一時的メモリを含む。メモリ１１３７は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）装置、スタティックランダムアクセスメモリ（ＳＲＡＭ）装置、フラッシュメモリ、または何らかの他のメモリ装置であってもよい。いくつかの実現化例では、メモリ１１３７はまた、より永続的に情報を格納するための、ハードディスクドライブ、フロッピー（登録商標）ディスクドライブ、ＣＤ−ＲＯＭ装置、ＤＶＤ−ＲＯＭ装置、ＤＶＤ−ＲＡＭ装置、ＤＶＤ−ＲＷ装置、フラッシュメモリ装置、または何らかの他の大容量記憶装置を含む、不揮発性メモリまたは同様の永続的記憶装置および媒体を含む。メモリ１１３７は、集約システム１３１がその機能性を提供するためのコード、ルーチンおよびデータを格納してもよい。メモリ１１３７は、信号線１１４４を介してバス１１２０に結合される。
【０１８１】
通信部１１４５は、図１Ａに示すシステム１００のエンティティのうちのいずれかにデータを送信してもよい。同様に、通信部１１４５は、図１Ａに示すシステム１００のエンティティのうちのいずれかからデータを受信してもよい。通信部１１４５は、接続ハブ１２３から未加工映像データおよび未加工音声データを受信するための１つ以上のイーサネット（登録商標）スイッチを含んでいてもよい。通信部１１４５は、信号線１１４６を介してバス１１２０に結合される。いくつかの実現化例では、通信部１１４５は、図１Ａのネットワーク１０５などのネットワークへの、または別の通信チャネルへの直接的な物理的接続のためのポートを含む。たとえば、通信部１１４５は、別のコンピューティング装置との有線通信のためのＵＳＢ、ＳＤ、ＲＪ４５、または同様のポートなどのポートを含んでいてもよい。いくつかの実現化例では、通信部１１４５は、ＩＥＥＥ８０２．１１、ＩＥＥＥ８０２．１６、BLUETOOTH（登録商標）、または別の好適な無線通信方法を含む１つ以上の無線通信方法を使用して別のコンピューティング装置または他の通信チャネルとデータを交換するための無線トランシーバを含む。
【０１８２】
いくつかの実現化例では、通信部１１４５は、ショートメッセージングサービス（ＳＭＳ）、マルチメディアメッセージングサービス（ＭＭＳ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、直接データ接続、ＷＡＰ、電子メール、または別の好適なタイプの電子通信を介することを含むセルラー通信ネットワーク上でデータを送受信するためのセルラー通信トランシーバを含む。いくつかの実現化例では、通信部１１４５は、有線ポートと無線トランシーバとを含む。通信部１１４５はまた、ＴＣＰ／ＩＰ、ＨＴＴＰ、ＨＴＴＰＳおよびＳＭＴＰなどを含む標準ネットワークプロトコルを使用したデータの配信のための、ネットワークへの他の従来の接続を提供する。
【０１８３】
記憶装置１１４１は、ここに説明される機能性を提供するためにデータを格納する非一時的記憶媒体であってもよい。記憶装置１１４１は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）装置、スタティックランダムアクセスメモリ（ＳＲＡＭ）装置、フラッシュメモリ、または何らかの他のメモリ装置であってもよい。いくつかの実現化例では、記憶装置１１４１はまた、より永続的に情報を格納するための、ハードディスクドライブ、フロッピー（登録商標）ディスクドライブ、ＣＤ−ＲＯＭ装置、ＤＶＤ−ＲＯＭ装置、ＤＶＤ−ＲＡＭ装置、ＤＶＤ−ＲＷ装置、フラッシュメモリ装置、または何らかの他の大容量記憶装置を含む、不揮発性メモリまたは同様の永続的記憶装置および媒体を含む。記憶装置１１４１は、信号線１１４２を介してバス１１２０に通信可能に結合される。
【０１８４】
図１１に示す実現化例では、集約システム１３１は、通信モジュール１１０２と、視差モジュール１１０４と、バーチャルカメラモジュール１１０６と、類似性スコアモジュール１１０８と、カメラマッピングモジュール１１１０と、映像モジュール１１１２と、音声モジュール１１１４と、ストリーム組合せモジュール１１１６とを含む。集約システム１３１のこれらのモジュールは、バス１１２０を介して互いに通信可能に結合される。
【０１８５】
いくつかの実現化例では、集約システム１３１の各モジュール（たとえば、モジュール１１０２、１１０４、１１０６、１１０８、１１１０、１１１２、１１１４、または１１１６）は、以下に説明されるそのそれぞれの機能性を提供するためにプロセッサ１１３５によって実行可能であるそれぞれの１組の命令を含んでいてもよい。いくつかの実現化例では、集約システム１３１の各モジュールは、コンピューティング装置１１００のメモリ１１３７に格納されてもよく、プロセッサ１１３５によってアクセス可能および実行可能であってもよい。集約システム１３１の各モジュールは、プロセッサ１１３５およびコンピューティング装置１１００の他の構成要素と協働および通信するために適合されてもよい。
【０１８６】
通信モジュール１１０２は、集約システム１３１とコンピューティング装置１１００の他の構成要素との間の通信を扱うためのルーチンを含むソフトウェアであってもよい。通信モジュール１１０２は、信号線１１２２を介してバス１１２０に通信可能に結合されてもよい。通信モジュール１１０２は、図１Ａに示すシステム１００のエンティティのうちの１つ以上との間で通信部１１４５を介してデータを送受信する。たとえば、通信モジュール１１０２は、通信部１１４５を介して接続ハブ１２３から未加工映像データを受信してもよく、その未加工映像データを映像モジュール１１１２に転送してもよい。別の例では、通信モジュール１１０２は、通信部１１４５を介して、ストリーム組合せモジュール１１１６からＶＲコンテンツを受信してもよく、そのＶＲコンテンツを鑑賞システム１３３に送信してもよい。
【０１８７】
いくつかの実現化例では、通信モジュール１１０２は、集約システム１３１の構成要素からデータを受信し、そのデータをメモリ１１３７または記憶装置１１４１に格納する。たとえば、通信モジュール１１０２は、ストリーム組合せモジュール１１１６からＶＲコンテンツを受信し、そのＶＲコンテンツをメモリ１１３７または記憶装置１１４１に格納する。いくつかの実現化例では、通信モジュール１１０２は、メモリ１１３７または記憶装置１１４１からデータを検索し、そのデータを集約システム１３１の１つ以上の適切な構成要素に送信する。それに代えて、またはそれに加えて、通信モジュール１１０２はまた、集約システム１３１の構成要素間の通信を扱ってもよい。
【０１８８】
視差モジュール１１０４は、２つ以上のカメラモジュール１０３間の視差マップを推定するためのルーチンを含むソフトウェアであってもよい。視差モジュール１１０４は、信号線１１２４を介してバス１１２０に通信可能に結合されてもよい。いくつかの実現化例では、２つ以上のカメラモジュール１０３は、２つ以上の隣接するカメラモジュール１０３であってもよい。２つ以上の隣接するカメラモジュール１０３は、互いの近傍に位置し、重複する視野を有する、カメラアレイ１０１における２つ以上のカメラモジュール１０３を指していてもよい。それに代えて、２つ以上のカメラモジュール１０３は、隣接するカメラモジュールでなくてもよい。２つ以上のカメラモジュール１０３は、重複する視野を有していてもよい。説明の便宜上、およびその簡潔性のために、第１の隣接するカメラモジュール１０３（「カメラＡ」とも呼ばれる）および第２の隣接するカメラモジュール１０３（「カメラＢ」とも呼ばれる）に関して、視差マップの推定を以下に説明する。この説明は、３つ以上の隣接するカメラモジュール１０３間の視差マップの推定にも当てはまる。
【０１８９】
カメラＡおよびカメラＢは、重複する視野を有していてもよい。この重複する視野内の物体は双方のカメラから見ることができ、これらのカメラによって取り込まれた画像フレームにおけるこれらの物体の見た目は、対応するカメラの視点に基づいて定められるであろう。たとえば、特定の時間に、カメラＡは、あるシーンについての第１の画像を取り込み、カメラＢは、そのシーンについての第２の画像を取り込んでもよい。第１の画像は、重複する視野において第２の画像からの第２のサブ画像と重複する第１のサブ画像を有していてもよい。第１のサブ画像は、重複する視野のある区域においてカメラＢの視野と重複する、第１の画像の一部を表わしていてもよい。第２のサブ画像は、重複する視野のその区域においてカメラＡの視野と重複する、第２の画像の一部を表わしていてもよい。説明の便宜上、第１のサブ画像は「画像ＡＢ」と呼ばれる場合があり、第２のサブ画像は「画像ＢＡ」と呼ばれる場合がある。画像ＡＢおよび画像ＢＡは、カメラＡおよびカメラＢの重複する視野において互いに重複する。
【０１９０】
カメラＡおよびカメラＢの画像平面が同一平面でない場合、同一平面の画像を作り出すために、画像回転などの変換が適用されてもよい。カメラＡおよびカメラＢの画像平面が同一平面であり、２つのカメラの投影中心が、シーンにおける物体と比較して互いにより接近している場合、第１および第２の画像における物体の見た目は、主として、２つのカメラの投影中心を接続するエピポーラ線に沿ったそれらの変位が異なる場合がある。第１および第２の画像における物体の異なる見た目は、パララックスと呼ばれる場合があり、第１および第２の画像における物体位置の差は、視差と呼ばれる場合がある。視差の図を図１８に示す。
【０１９１】
視差マップは、個別の画素のレベルでの、２つのカメラ間の重複する視野内の視差を特定する２次元（２Ｄ）マップを表わしていてもよい。たとえば、カメラＡからカメラＢへの第１の視差マップは、画像ＡＢから画像ＢＡに画素の視差をマッピングしてもよく、視差（ＡＢ→ＢＡ）と呼ばれてもよい。カメラＢからカメラＡへの第２の視差マップは、画像ＢＡから画像ＡＢに画素の視差をマッピングしてもよく、視差（ＢＡ→ＡＢ）と呼ばれてもよい。第１の視差マップ「視差（ＡＢ→ＢＡ）」および第２の視差マップ「視差（ＢＡ→ＡＢ）」）は、略対称形であってもよく、閉塞点で異なってもよい。閉塞点とは、あるカメラには見えるものの、別のカメラには、その別のカメラからのビューが他の物体によって遮られるために見えない画素を指す場合がある。
【０１９２】
たとえば、すべてのエピポーラ線が水平になるように、またはＸ軸に沿うように、カメラＡをカメラＢの左に水平に変位させると仮定する。画像ＡＢおよび画像ＢＡは双方とも、１００画素×１００画素というサイズをそれぞれ有する。第１の視差マップ「視差（ＡＢ→ＢＡ）」および第２の視差マップ「視差（ＢＡ→ＡＢ）」は各々、１００×１００というサイズを有し得る。なぜなら、第１および第２の視差マップは各々、重複する視野全体をカバーするためである。第１の視差マップ「視差（ＡＢ→ＢＡ）」における位置（８，４）でのマップエントリが「−５」という視差値を有する、すなわち、位置（８，４）での画像ＡＢの画素が、位置（３，４）での画像ＢＡの画素に対応する（たとえば、ｘ座標値３＝８−５）と仮定する。「−５」という視差値は、カメラＡの投影中心をカメラＢの投影中心に接続するエピポーラ線に沿ったエピポーラ方向とは反対の方向における「５」という視差を表わし得る。対称的に、第２の視差マップ「視差（ＢＡ→ＡＢ）」の位置（３，４）でのマップエントリは、「５」という視差値を有していてもよい。すなわち、位置（３，４）での画像ＢＡの画素は、位置（８，４）での画像Ａの画素に対応する（たとえば、ｘ座標値８＝３＋５）。「５」という視差値は、エピポーラ線に沿ったエピポーラ方向における「５」という視差を表わし得る。
【０１９３】
その結果、画像ＡＢと第１の視差マップ「視差（ＡＢ→ＢＡ）」とを考慮すると、カメラＢには見えるもののカメラＡには見えない点以外で、画像ＢＡの推定値が求められ得る。同様に、その結果、画像ＢＡと第２の視差マップ「視差（ＢＡ→ＡＢ）」とを考慮すると、カメラＡには見えるもののカメラＢには見えない点以外で、画像ＡＢの推定値が求められ得る。
【０１９４】
視差モジュール１１０４は、画像ＡＢの画素と画像ＢＡの画素とを比較することによって、第１の視差マップ「視差（ＡＢ→ＢＡ）」を推定してもよい。カメラＡおよびカメラＢの露光、ゲイン、ホワイトバランス、焦点、および他の特性が同一ではない場合、画像ＡＢおよび画像ＢＡは、２つの画像間の輝度、色、および鮮明さを整合させるために調節されてもよい。画像ＡＢにおける画素（ｘ，ｙ）について、１組の視差値が選択され、画素（ｘ，ｙ）についての１組の視差値に対応する１組の類似性スコアが、以下により詳細に説明されるような類似性スコアモジュール１１０８によって求められる。第１の視差マップ「視差（ＡＢ→ＢＡ）」の位置（ｘ、ｙ）でのマップエントリは、１組の類似性スコアからの最高類似性スコアを有する視差値と等しい値を有していてもよい。視差マップを推定する例示的な方法は、図１４Ａおよび図１４Ｂを参照して説明される。
【０１９５】
たとえば、画像ＡＢおよび画像ＢＡが水平視差を有すると仮定する。画像ＡＢの画素（３，５）について、第１の視差値「０」が選択される。このため、第１の類似性スコアを求めるために、画像ＢＡの画素（３，５）が画像ＡＢの画素（３，５）と比較される。なぜなら、画像ＢＡの画素（３，５）は、画像ＡＢの画素（３，５）に対して視差「０」を有するためである。次に、第２の視差値「−１」が選択され、第２の類似性スコアを求めるために、画像ＢＡの画素（２，５）が画像ＡＢの画素（３，５）と比較される。なぜなら、画像ＡＢの画素（３，５）は、画像ＢＡの画素（２，５）に対して視差「−１」を有するためである。同様に、画像ＡＢの画素（３，５）について、他の視差値が選択され、対応する類似性スコアが求められてもよい。第１の視差マップ「視差（ＡＢ→ＢＡ）」の位置（３，５）でのマップエントリは、求められた類似性スコアからの最高類似性スコアに対応する視差値を有するように構成されてもよい。
【０１９６】
視差値は、整数値（たとえば、０、−１、１、−２、２、…）または非整数値を含んでいてもよい。非整数視差値は、画素補間を使用して類似性スコアを求めるために使用されてもよい。視差値についての最大絶対値は、シーンにおける物体がどれくらいカメラに近づくと予想されるかに基づいて求められてもよい。
【０１９７】
同様に、視差モジュール１１０４は、上述のものと同様の動作を行なうことによって、第２の視差マップ「視差（ＢＡ→ＡＢ）」を推定してもよい。それに代えて、視差モジュール１１０４は、第１の視差マップ「視差（ＡＢ→ＢＡ）」から第２の視差マップ「視差（ＢＡ→ＡＢ）」を推定してもよい。たとえば、第１の視差マップの位置（ｘ，ｙ）でのマップエントリが「ｄ」という視差値を有する場合、第２の視差マップの位置（ｘ＋ｄ，ｙ）でのマップエントリは「−ｄ」という視差値を有する。
【０１９８】
いくつかの実現化例では、画像ＡＢにおける１つ以上の画素は、画像ＢＡにおいて対応する画素を有さないかもしれず、逆もまた同様である。なぜなら、シーンにおいて前景物体が背景物体を閉塞するかもしれないためである。視差モジュール１１０４は、類似性スコアしきい値を設定することによって画素閉塞を検出してもよい。たとえば、ある画素のための最高類似性スコアが類似性スコアしきい値未満である場合、視差マップにおけるその画素に対応するマップエントリは、画素閉塞を示すようにブランクになるように構成されてもよい。
【０１９９】
いくつかの実現化例では、視差モジュール１１０４は、視差衝突を検出してもよい。各画素の視差は独立して求められ得るため、視差マップにおいて衝突が起こり得る。衝突とは、第１の画像における２つ以上の画素が第２の画像における共通の画素にマッピングし得ることを示す場合があり、これら２つ以上の画素は、衝突画素と呼ばれる場合がある。視差モジュール１１０４は、衝突画素から、より高い類似性スコアを有する衝突画素を選択してもよく、より高い類似性スコアを有する衝突画素を第２の画像における共通の画素にマッピングする視差マップにおける対応するマップエントリを構成してもよい。より低い類似性スコアを有する他の衝突画素については、視差モジュール１１０４は、画素閉塞を示すために、視差マップにおいて、関連付けられたマップエントリをブランクのままにしてもよい。
【０２００】
たとえば、第１の視差マップ「視差（ＡＢ→ＢＡ）」の計算中、画像ＡＢにおける画素（１０，１３）および（７，１３）はともに、視差値「−４」および「−１」、類似性スコア「１０」および「８」をそれぞれ有して、画像ＢＡにおける共通の画素（６，１３）に対応するかもしれない。この例では、画像ＡＢにおける画素（１０，１３）および（７，１３）について、視差衝突が生じる。画素（１０，１３）は画素（７，１３）よりも高い類似性スコアを有するため、視差モジュール１１０４は、位置（１０，１３）で視差値「−４」を有するマップエントリを構成し、位置（７，１３）で画素閉塞を示すためにマップエントリをブランクになるように構成してもよい。
【０２０１】
いくつかの実現化例では、視差モジュール１１０４は、閉塞画素のための視差値を推定してもよい。たとえば、視差モジュール１１０４は、閉塞画素に最も近い、エピポーラ線に沿った２つの非閉塞画素を判断してもよく、２つの非閉塞画素は各々、閉塞画素の一方側にある。２つの非閉塞画素は２つの視差値をそれぞれ有していてもよい。視差モジュール１１０４は、２つの視差値から小さい方の視差値を、閉塞画素のための視差値として選択してもよい。たとえば、エピポーラ線に沿った視差マップが、視差値「２」、「３」、「４」、「閉塞」、「閉塞」、「７」、「７」、「８」をそれぞれ有するマップエントリを含むと仮定する。視差モジュール１１０４は、マップエントリのための視差値がそれぞれ「２」、「３」、「４」、「４」、「４」、「７」、「７」、「８」となるように推定してもよく、ここで、閉塞されたマップエントリは視差値「４」および「４」を有すると推定されてもよい。
【０２０２】
それに代えて、視差モジュール１１０４は、カメラに向かって傾斜する壁などの傾向特徴を取り込むために、視差の傾向をモデル化してもよい。たとえば、エピポーラ線に沿った視差マップが、視差値「１」、「２」、「３」、「閉塞」、「閉塞」、「９」、「９」、「１０」をそれぞれ有するマップエントリを含むと仮定する。視差モジュール１１０４は、マップエントリのための視差値がそれぞれ「１」、「２」、「３」、「４」、「５」、「９」、「９」、「１０」となるように推定してもよい。この例では、視差値「１」、「２」、および「３」は、増加する傾向を示していてもよく、閉塞されたマップエントリは、増加する傾向に続いて視差値「４」および「５」を有すると推定されてもよい。
【０２０３】
いくつかの実現化例では、同じ重複する視野において３つ以上のカメラが重複するかもしれず、視差推定を向上させるために、異なるカメラからの視差情報を組合わせてもよい。たとえば、第１のカメラ、第２のカメラ、および第３のカメラの投影中心が、水平エピポーラ線に沿って位置すると仮定する。第１のカメラおよび第２のカメラは、シーンにおける物体を観察するための第１の対の左目視および右目視を形成してもよい。第２のカメラおよび第３のカメラは、シーンにおける物体を観察するための第２の対の左目視および右目視を形成してもよい。３つのカメラの投影中心が水平エピポーラ線に沿って等距離で間隔をあけている場合、理想的には、第１の対および第２の対はともに、シーンにおける同じ物体について同じ視差測定値を有するであろう。しかしながら、視差測定値はノイズを有し得るため、第１の対の第１の視差測定値は、第２の対の第２の視差測定値とは異なるかもしれない。第１の視差測定値および第２の視差測定値は、一致についてチェックするために使用されてもよく、測定精度を向上させるための視差測定値を生成するために組合わされてもよい。いくつかの実現化例では、視差マップはノイズがあるかもしれず、視差モジュール１１０４は、視差マップを平滑化するために、メジアンフィルタなどのエッジ保存フィルタを適用してもよい。
【０２０４】
バーチャルカメラモジュール１１０６は、バーチャルカメラおよびバーチャルカメラのためのバーチャルカメラ画像を判断するためのルーチンを含むソフトウェアであってもよい。バーチャルカメラモジュール１１０６は、信号線１１２６を介してバス１１２０に結合されてもよい。いくつかの実現化例では、バーチャルカメラモジュール１１０６は、カメラアレイ１０１における隣接するカメラモジュール１０３間に１つ以上のバーチャルカメラを補間してもよい。たとえば、バーチャルカメラモジュール１１０６は、カメラＡとカメラＢとの間に１つ以上のバーチャルカメラを補間してもよく、カメラＡおよびカメラＢの位置に対する１つ以上のバーチャルカメラのための１つ以上の位置を判断してもよい。バーチャルカメラモジュール１１０６はまた、カメラアレイ１０１における他の隣接するカメラモジュール１０３間に他のバーチャルカメラを補間してもよい。
【０２０５】
カメラＡとカメラＢとの間のバーチャルカメラごとに、バーチャルカメラモジュール１１０６は、第１の視差マップ「視差（ＡＢ→ＢＡ）」、第２の視差マップ「視差（ＢＡ→ＡＢ）」、ならびに、カメラＡおよびカメラＢの位置に対するバーチャルカメラの位置に基づいて、バーチャルカメラ画像を推定してもよい。カメラＡおよびカメラＢの位置に対するバーチャルカメラの位置は、０〜１の値を有するスカラαによって判断されてもよく、ここで、α＝０は、バーチャルカメラがカメラＡと同じ場所に配置されていることを示し、α＝１は、バーチャルカメラがカメラＢと同じ場所に配置されていることを示す。バーチャルカメラのためのバーチャルカメラ画像は、カメラＡの画像ＡＢおよびカメラＢの画像ＢＡから推定されてもよい。
【０２０６】
たとえば、バーチャルカメラモジュール１１０６は、第１の視差マップ「視差（ＡＢ→ＢＡ）」のマップエントリに格納された視差値をスカラαで変倍してもよく、画像ＡＢにおけるそれぞれの画素をそれぞれの変倍された視差値だけシフトして、画像ＡＢから第１のシフトされた画像を生成してもよい。バーチャルカメラモジュール１１０６は、第２の視差マップ「視差（ＢＡ→ＡＢ）」のマップエントリに格納された視差値をスカラ１−αで変倍してもよく、画像ＢＡにおけるそれぞれの画素をそれぞれの変倍された視差値だけシフトして、画像ＢＡから第２のシフトされた画像を生成してもよい。バーチャルカメラモジュール１１０６は、第１のシフトされた画像と第２のシフトされた画像とを組合わせて、バーチャルカメラのためのバーチャルカメラ画像を生成してもよい。たとえば、第１のシフトされた画像および第２のシフトされた画像の双方において規定された画素ごとに、バーチャルカメラモジュール１１０６は、２つのシフトされた画像の対応する画素値から平均値を出すかまたは最大値をとってもよい。バーチャルカメラモジュール１１０６は、線形または非線形フィルタと、以前のまたは将来の画像フレームからの時間的情報とを使用して、バーチャルカメラ画像における抜けた画素を埋めてもよい。例示的な非線形フィルタは、メジアンフィルタを含む。バーチャルカメラのためのバーチャルカメラ画像を推定する例示的な方法は、図１３Ａおよび図１３Ｂを参照して以下に説明される。
【０２０７】
類似性スコアモジュール１１０８は、第の１画像（たとえば画像ＡＢ）における第１の画素と第２の画像（たとえば画像ＢＡ）における第２の画素との間の類似性スコアを求めるためのルーチンを含むソフトウェアであってもよい。第２の画像における第２の画素は、第１の画像における第１の画素に対して異なる視差を有する場合がある。類似性スコアモジュール１１０８は、信号線１１８０を介してバス１１２０に結合されてもよい。
【０２０８】
特定の視差値について、類似性スコアモジュール１１０８は、エピポーラ線に沿った画像ＡＢの画素のためのメトリック値を生成する。メトリック値は、差の絶対値和（sum of absolute difference：ＳＡＤ）、差の二乗和（sum of squared difference：ＳＳＤ）、相関ベースの値、または他の好適なメトリクスのうちの１つを含んでいてもよい。メトリック値は、赤、緑、青（ＲＧＢ）カラーチャンネルのすべてにわたって、またはＹＵＶ、輝度などの何らかの他の色空間において求められてもよい。たとえば、画像ＡＢの２つの画素（１，５）および（２，５）は、エピポーラ線に沿っている。視差値「３」について、類似性スコアモジュール１１０８は、（１）画像ＡＢの画素（１，５）を画像ＢＡの画素（４，５）と比較することによって、画像ＡＢの画素（１，５）のための第１のメトリック値を求め、（２）画像ＡＢの画素（２，５）を画像ＢＡの画素（５，５）と比較することによって、画像ＡＢの画素（２、５）のための第２のメトリック値を求める。視差値「４」について、類似性スコアモジュール１１０８は、（１）画像ＡＢの画素（１，５）を画像ＢＡの画素（５，５）と比較することによって、画像ＡＢの画素（１，５）のための第１のメトリック値を求め、（２）画像ＡＢの画素（２，５）を画像ＢＡの画素（６，５）と比較することによって、画像ＡＢの画素（２，５）のための第２のメトリック値を求める。
【０２０９】
メトリック値はまた、距離メトリックスコアと呼ばれてもよい。メトリック値は、２つの画素間の距離を計算することによって、２つの画素がどれくらい類似しているかを測ってもよい。ゼロ値のメトリック値は、２つの画素が距離ゼロで同一であることを示し得る。より大きいメトリック値は、より小さいメトリック値よりも、２つの画素間のより多くの相違を表わし得る。
【０２１０】
いくつかの実現化例では、類似性スコアモジュール１１０８は、画素整合測定に影響を与え得るノイズを減少させるために、最初に画像ＡＢおよび画像ＢＡをフィルタリングまたは処理してもよい。類似性スコアモジュール１１０８は、エピポーラ線に垂直な方向におけるわずかな不整合を打ち消すために、エピポーラ線に垂直な方向に沿って、より良好な整合を有する画素について検索を行なってもよい。
【０２１１】
類似性スコアモジュール１１０８は、エピポーラ線に沿った隣接画素のランを規定するために使用され得るメトリックしきい値を求めてもよい。ランは、求められたメトリックしきい値未満のメトリック値を有する画素の隣接するグループを含んでいてもよい。類似性スコアモジュール１１０８は、画素とメトリックしきい値とに関連付けられたメトリック値に基づいて、エピポーラ線に沿った画素のためのランを求めてもよい。たとえば、ラン計算に関与するエピポーラ線に沿った特定の画素は、計算されたランと等しいラン値を有していてもよい。類似性スコアモジュール１１０８は、画素のランとメトリックしきい値とに基づいて、エピポーラ線に沿った画素のための予備スコアを求めてもよい。たとえば、エピポーラ線に沿った各画素のための予備スコアは、対応する画素のランをメトリックしきい値で割ったものと等しくてもよい。次に、類似性スコアモジュール１１０８は、メトリックしきい値を変更して、異なるメトリックしきい値についてエピポーラ線に沿った画素のための異なる予備スコアを求めてもよい。メトリックしきい値は、ゼロ〜最大しきい値間の範囲で変更されてもよい。最大しきい値は、２つの画像が異なる物体を有する画像であると判断する前に、ユーザが視覚的にどれだけの差を許容し得るかに基づいて求められてもよい。メトリック値が最大しきい値を上回る場合、メトリック値を計算するために使用された２つの画像は、同じ物体を取り込む画像として扱われない場合がある。類似性スコアモジュール１１０８は、エピポーラ線に沿った画素のための類似性スコアを、その画素の最高予備スコアとして求めてもよい。類似性スコアは、２つの画素間の類似度を示し得る。２つの画素のためのより高い類似性スコアは、より小さい類似性スコアよりも、２つの画素間のより多くの類似性を示し得る。類似性スコアを求める方法は、図１５Ａおよび図１５Ｂを参照して以下に説明される。
【０２１２】
たとえば、ある特定の視差値のためのエピポーラ線に沿った画素のためのＳＡＤメトリック値は、３、４、２、３、１、６、８、３、１を含んでいてもよい。メトリックしきい値が５であると類似性スコアモジュール１１０８が判断した場合、そのメトリックしきい値を上回らない隣接画素のランは、５、０、２を含んでいてもよい。ここで、最初の５つのメトリック値「３、４、２、３、１」はメトリックしきい値未満であるため、「５」のランが生成され、次の２つのメトリック値「６、８」はメトリックしきい値を上回るため、「０」のランが生成され、最後の２つのメトリック値「３、１」はメトリックしきい値未満であるため、「２」のランが生成される。このため、メトリック値「３、４、２、３、１」を有する最初の５つの画素は各々、「５」のランを有していてもよく、メトリック値「６、８」を有する次の２つの画素は各々、「０」のランを有していてもよく、「３、１」のメトリック値を有する最後の２つの画素は各々、「２」のランを有していてもよい。その結果、エピポーラ線に沿った画素のためのランは、５、５、５、５、５、０、０、２、２を含む。エピポーラ線に沿った画素のための予備スコアは、対応するランをメトリックしきい値「５」で割ったものと等しくてもよく、１、１、１、１、１、０、０、２／５、２／５を含んでいてもよい。次に、メトリックしきい値は、６となるように修正されてもよい。画素のためのランは、６、６、６、６、６、６、０、０、２、２を含んでいてもよい。メトリックしきい値「６」についてのエピポーラ線に沿った画素のための別の１組の予備スコアは、１、１、１、１、１、１、０、２／６、２／６を含んでいてもよい。類似性スコアモジュール１１０８は、異なるメトリックしきい値を選択して、画素のための異なるメトリックしきい値に関連付けられた異なる予備スコアを求めてもよい。類似性スコアモジュール１１０８は、エピポーラ線に沿った特定の画素のための類似性スコアを、その特定の画素の最高予備スコアとして求めてもよい。
【０２１３】
より一般的には、視差マップを推定し、類似性スコアを求めるためのここに説明されたメカニズムは、例として提供されている。視差マップおよび類似性スコアを推定するやり方は、他にも多数あり得る。
【０２１４】
カメラマッピングモジュール１１１０は、左カメラマップおよび右カメラマップを構築するためのルーチンを含むソフトウェアであってもよい。カメラマッピングモジュール１１１０は、信号線１１２８を介してプロセッサ１１３５およびコンピューティング装置１１００の他の構成要素と協働および通信するために適合されてもよい。
【０２１５】
カメラマップは、左カメラマップまたは右カメラマップを含んでいてもよい。カメラマップは、（ヨー，ピッチ）を入力として使用してもよく、（整合カメラの識別子，ｘ，ｙ）という出力を生成してもよく、パノラマ画像における画素（ヨー，ピッチ）が、識別された整合カメラの画像平面における画素（ｘ，ｙ）として得られ得ることを示す。カメラマップは、出力（整合カメラの識別子，ｘ，ｙ）を、入力（ヨー，ピッチ）に関するマップエントリに格納してもよい。３Ｄ空間における点をカメラモジュールの画像平面における画素上にマッピングするために、カメラモジュールの画像平面における画素が、カメラモデル（たとえば、ピンホールカメラモデル、またはより複雑なレンズモデル）を使用することによって判断されてもよく、ここで、３Ｄ空間における点は、カメラモジュールから特定の距離にあると仮定される。
【０２１６】
シーンのパノラマを表わすために、２次元（２Ｄ）球状パノラマ画像が使用されてもよい。映像モジュール１１１２に関して以下に説明されるように、シーン全体の立体視を提供するために、両目のための２つの立体パノラマ画像が生成されてもよい。たとえば、左目視のために左パノラマ画像が生成されてもよく、右目視のために右パノラマ画像が生成されてもよい。例示的なパノラマ画像を図１６Ｂに示す。
【０２１７】
カメラマッピングモジュール１１１０は、左パノラマ画像における画素ごとにそれぞれの整合カメラを識別する左カメラマップを構築してもよい。たとえば、パノラマにおける点を表わす左パノラマ画像における画素のために、左カメラマップは、他のカメラモジュール１０３および他のバーチャルカメラよりもパノラマにおける点についてより良好なビューを有する整合カメラモジュール１０３または整合バーチャルカメラを識別してもよい。整合カメラは、整合カメラモジュール１０３（たとえば、実在するカメラ）または整合バーチャルカメラを含んでいてもよい。このため、左カメラマップは、左パノラマ画像における画素を、対応する画素についてより良好なビューを有する整合カメラにマッピングしてもよい。画素のための整合カメラの決定を、以下により詳細に説明する。例示的なカメラマップを、図１６Ｃを参照して示す。
【０２１８】
パノラマにおける点を表わす左パノラマ画像における画素について、カメラマッピングモジュール１１１０は、上述の数式（１）、（２）、および（３）をそれぞれ使用して、ヨー、ピッチ、および両眼間拒離を求めてもよい。カメラマッピングモジュール１１１０は、そのヨーおよびピッチを使用して、パノラマにおける点への左目の視方向（たとえば、左視方向）を表わすベクトルを構築してもよい。
【０２１９】
いくつかの実現化例では、左パノラマ画像における画素のための整合カメラは、その画素に対応する点への視方向を有する。整合カメラの視方向は、パノラマにおける同じ点への他のカメラモジュール１０３およびバーチャルカメラの他の視方向よりも、左視方向に近い。たとえば、整合カメラの視方向は、他のカメラモジュール１０３およびバーチャルカメラの他の視方向よりも、左視方向により平行である。整合カメラの図を、図１７Ａ〜図１７Ｃを参照して示す。
【０２２０】
同様に、カメラマッピングモジュール１１１０は、右パノラマ画像における画素ごとに対応する整合カメラを識別する右カメラマップを構築してもよい。たとえば、パノラマにおける点を表わす右パノラマ画像における画素のために、右カメラマップは、他のカメラモジュール１０３およびバーチャルカメラよりもパノラマにおける点についてより良好なビューを有する整合カメラを識別してもよい。このため、右カメラマップは、右パノラマ画像における画素を、対応する画素についてより良好なビューを有する整合カメラにマッピングしてもよい。
【０２２１】
いくつかの実現化例では、左および右カメラマップは、オンザフライ計算と比較してより迅速な処理速度を達成するために、予め計算され、格納されてもよい。
【０２２２】
映像モジュール１１１２は、ＶＲ表示装置上で再生されると３Ｄ映像をレンダリングするように構成された３Ｄ映像データのストリームを生成するためのルーチンを含むソフトウェアであってもよい。映像モジュール１１１２は、信号線１１３０を介してプロセッサ１１３５およびコンピューティング装置１１００の他の構成要素と協働および通信するために適合されてもよい。３Ｄ映像データのストリームは、経時変化し得るシーンの立体パノラマを記述してもよい。３Ｄ映像データのストリームは、左目視のための左パノラマ画像のストリームおよび右目視のための右パノラマ画像のストリームを含んでいてもよい。
【０２２３】
いくつかの実現化例では、映像モジュール１１１２は、カメラアレイ１０１におけるさまざまなカメラモジュール１０３から、画像フレームを記述する未加工映像データを受信する。映像モジュール１１１２は、カメラモジュール１０３の各々に関連付けられた位置およびタイミングを識別し、カメラモジュール１０３の位置およびタイミングに基づいて画像フレームを同期させる。映像モジュール１１１２は、異なるカメラモジュール１０３によって同時に取り込まれた対応する画像フレームを同期させる。いくつかの実現化例では、映像モジュール１１１２または集約システム１３１における別のモジュールは、同期された画像フレームにおける較正エラーを補正してもよい。
【０２２４】
映像モジュール１１１２は、カメラマッピングモジュール１１１０から左カメラマップおよび右カメラマップを受信してもよい。それに代えて、映像モジュール１１１２は、記憶装置１１４１またはメモリ１１３７から左および右カメラマップを検索してもよい。映像モジュール１１１２は、左カメラマップに基づいて、カメラモジュール１０３によって取り込まれた画像フレームおよびバーチャルカメラのバーチャルカメラ画像から左パノラマ画像のストリームを構築してもよい。たとえば、映像モジュール１１１２は、左カメラマップから整合カメラを識別する。整合カメラは、整合カメラモジュール１０３と、整合バーチャルカメラとを含んでいてもよい。映像モジュール１１１２は、（１）第１の特定の時間Ｔ＝Ｔ０に整合カメラモジュール１０３によって取り込まれた画像フレームと、（２）第１の特定の時間Ｔ＝Ｔ０に関連付けられた整合バーチャルカメラのバーチャルカメラ画像とをつなぎ合わせることにより、第１の特定の時間Ｔ＝Ｔ０に関連付けられた第１の左パノラマ画像ＰＩＬ，０を構築する。映像モジュール１１１２は、（１）第２の特定の時間Ｔ＝Ｔ１に整合カメラモジュール１０３によって取り込まれた画像フレームと、（２）第２の特定の時間Ｔ＝Ｔ１に関連付けられた整合バーチャルカメラのバーチャルカメラ画像とをつなぎ合わせることにより、第２の特定の時間Ｔ＝Ｔ１に関連付けられた第２の左パノラマ画像ＰＩＬ，１を構築し、以降同様である。映像モジュール１１１２は、第１の特定の時間Ｔ＝Ｔ０に関連付けられた第１の左パノラマ画像ＰＩＬ，０、第２の特定の時間Ｔ＝Ｔ１に関連付けられた第２の左パノラマ画像ＰＩＬ，１、および他の構築された左パノラマ画像を含むように、左パノラマ画像のストリームを構築する。
【０２２５】
具体的には、特定の時間Ｔ＝Ｔｉ（ｉ＝０、１、２、…）に関連付けられた左パノラマ画像ＰＩＬ，ｉにおける画素について、映像モジュール１１１２は、（１）左カメラマップから整合カメラを識別し（整合カメラは、整合カメラモジュール１０３または整合バーチャルカメラを含む）、（２）左パノラマ画像ＰＩＬ，ｉにおける画素を、特定の時間Ｔ＝Ｔｉに関連付けられた整合カメラの画像からの対応する画素となるように構成する（画像は、特定の時間Ｔ＝Ｔｉに整合カメラモジュール１０３によって取り込まれた画像フレーム、または特定の時間Ｔ＝Ｔｉに関連付けられた整合バーチャルカメラのバーチャルカメラ画像である）。左パノラマ画像ＰＩＬ，ｉにおける画素と、整合カメラの画像における対応する画素とは、パノラマにおける同じ点に対応していてもよい。たとえば、パノラマにおける点に対応する左パノラマ画像ＰＩＬ，ｉにおける画素位置について、映像モジュール１１１２は、（１）特定の時間Ｔ＝Ｔｉに関連付けられた整合カメラの画像から、パノラマにおける同じ点に同じく対応する画素を検索し、（２）整合カメラの画像からの画素を、左パノラマ画像ＰＩＬ，ｉの画素位置に配置する。
【０２２６】
同様に、映像モジュール１１１２は、左パノラマ画像のストリームの構築に関して上述されたものと同様の動作を行なうことにより、右カメラマップに基づいて、カメラモジュール１０３によって取り込まれた画像フレームおよびバーチャルカメラのバーチャルカメラ画像から右パノラマ画像のストリームを構築する。説明はここでは繰り返さない。
【０２２７】
音声モジュール１１１４は、音声再生装置上で再生されると３Ｄ音声をレンダリングするように構成された３Ｄ音声データのストリームを生成するためのルーチンを含むソフトウェアであってもよい。音声モジュール１１１４は、信号線１１１３を介してバス１１２０に通信可能に結合される。音声モジュール１１１４は、マイクロホンアレイ１０７から受信された未加工音声データに基づいて、３Ｄ音声データを生成してもよい。いくつかの実現化例では、音声モジュール１１１４は、映像モジュール１１１２によって生成された３Ｄ映像データに対応する４チャンネルアンビソニック音声トラックを生成するために、未加工音声データを処理してもよい。４チャンネルアンビソニック音声トラックは、迫力ある３６０度の３Ｄ音声体験をユーザ１３４に提供し得る。
【０２２８】
いくつかの実現化例では、４チャンネル音声トラックは、テトラミックマイクロホンなどのマイクロホンアレイ１０７によって、「Ａ」フォーマットで記録されてもよい。音声モジュール１１１４は、「Ａ」フォーマットの４チャンネル音声トラックを、Ｗ、Ｘ、Ｙ、およびＺという４つの信号を含む「Ｂ」フォーマットに変換してもよい。Ｗ信号は、全指向性マイクロホンに対応する圧力信号を表わしていてもよく、Ｘ信号、Ｙ信号、Ｚ信号は、前後方向、左右方向、上下方向の指向性の音にそれぞれ対応していてもよい。いくつかの実現化例では、「Ｂ」フォーマットの信号は、モノモード、ステレオモード、バイノーラルモード、４つ以上のスピーカを含むサラウンドサウンドモード、および任意の他のモードを含むもののそれらに限定されない多くのモードで再生されてもよい。いくつかの例では、音声再生装置は１対のヘッドホンを含んでいてもよく、１対のヘッドホンでの音声再生のためにバイノーラル再生モードが使用されてもよい。音声モジュール１１１４は、ユーザ１３４のために迫力ある３Ｄ聴取体験を有するバイノーラル音声を生成するために、頭部伝達関数（ＨＲＴＦ）を用いて「Ｂ」フォーマットのチャンネルを畳み込んでもよい。
【０２２９】
いくつかの実現化例では、音声モジュール１１１４は、ユーザの頭部回転と一致するように音定位を提供するように構成された３Ｄ音声データを生成する。たとえば、未加工音声データは、記録された音の指向性を記述する指向性データを用いてコード化される。音声モジュール１１１４は、ユーザの頭部配向の回転に基づいて再生中に再現される音を変更する３Ｄ音声データを生成するために、指向性データを分析してもよい。
【０２３０】
ストリーム組合せモジュール１１１６は、ＶＲコンテンツを生成するために３Ｄ映像データのストリームと３Ｄ音声データのストリームとを組合わせるためのルーチンを含むソフトウェアであってもよい。ストリーム組合せモジュール１１１６は、信号線１１３１を介してバス１１２０に通信可能に結合される。３Ｄ映像データのストリームは、左目視のための左パノラマ画像のストリームおよび右目視のための右パノラマ画像のストリームを含む。
【０２３１】
ストリーム組合せモジュール１１１６は、圧縮された３Ｄ映像データのストリームを生成するために、映像圧縮手法を使用して左パノラマ画像のストリームおよび右パノラマ画像のストリームを圧縮してもよい。いくつかの実現化例では、左または右パノラマ画像の各ストリーム内で、ストリーム組合せモジュール１１１６は、対応するストリームのサイズを減少させるために、１つのフレームから次のフレームに冗長情報を使用してもよい。たとえば、第１の画像フレーム（たとえば参照フレーム）を参照して、次の画像フレームにおける冗長情報が、次の画像フレームのサイズを減少させるために除去されてもよい。この圧縮は、左または右パノラマ画像の同じストリーム内での時間的圧縮またはフレーム間圧縮と呼ばれる場合がある。
【０２３２】
それに代えて、またはそれに加えて、ストリーム組合せモジュール１１１６は、一方のストリーム（左パノラマ画像のストリームまたは右パノラマ画像のストリームのいずれか）を参照ストリームとして使用し、参照ストリームに基づいて他方のストリームを圧縮してもよい。この圧縮は、ストリーム間圧縮と呼ばれる場合がある。たとえば、ストリーム組合せモジュール１１１６は、各左パノラマ画像を、対応する右パノラマ画像のための参照フレームとして使用してもよく、参照された左パノラマ画像に基づいて対応する右パノラマ画像を圧縮してもよい。
【０２３３】
いくつかの実現化例では、ストリーム組合せモジュール１１１６は、ＶＲコンテンツのストリームを形成するために、３Ｄ映像データ（または圧縮された３Ｄ映像データ）および３Ｄ音声データのストリームをコード化してもよい。たとえば、ストリーム組合せモジュール１１１６は、ＶＲコンテンツのストリームを形成するために、ｈ．２６４を使用して３Ｄ映像データのストリームを圧縮し、アドバンスト・オーディオ・コーディング（ＡＡＣ）を使用して３Ｄ音声データのストリームを圧縮してもよい。別の例では、ストリーム組合せモジュール１１１６は、ＶＲコンテンツのストリームを形成するために、標準ＭＰＥＧフォーマットを使用して、３Ｄ映像データのストリームおよび３Ｄ音声データのストリームを圧縮してもよい。
【０２３４】
いくつかの実現化例では、ＶＲコンテンツは、ＭＰ４、ＷｅｂＭ、ＶＰ８、および任意の他の好適なフォーマットなどのコンテナフォーマットでパッケージ化されてもよい。ＶＲコンテンツは、クライアント装置１２７またはサーバ１２９にファイルとして格納されてもよく、ユーザ１３４のためにクライアント装置１２７またはサーバ１２９から鑑賞システム１３３へストリーミングされてもよい。それに代えて、ＶＲコンテンツは、デジタル多用途ディスク（ＤＶＤ）、フラッシュメモリ、または別のタイプの記憶装置に格納されてもよい。
【０２３５】
図１２Ａおよび図１２Ｂは、いくつかの実現化例に従った、左パノラマ画像および右パノラマ画像を生成するために特定の時間に取り込まれた画像フレームをつなぎ合わせるための例示的な方法１２００を示す。方法１２００は、図１Ａおよび図１１に関して説明される。別々のブロックとして図示されているが、さまざまなブロックは、所望の実現化例に依存して、追加のブロックになるよう分割されてもよく、より少ないブロックになるよう組合わされてもよく、または削除されてもよい。
【０２３６】
図１２Ａを参照して、方法１２００は、通信モジュール１１０２が、特定の時間にカメラアレイ１０１のカメラモジュール１０３によって取り込まれた画像フレームを受信するステップ（１２０２）を含んでいてもよい。通信モジュール１１０２は、カメラアレイ１０１におけるカメラモジュール１０３の構成を記述するデータを受信する（１２０４）。たとえば、通信モジュール１１０２は、カメラモジュール１０３の位置および配向を記述するデータを受信する。バーチャルカメラモジュール１１０６は、カメラアレイ１０１における異なる組の隣接するカメラモジュール１０３を判断する。各組の隣接するカメラモジュール１０３は、カメラアレイ１０１において互いの近傍に位置し、重複する視野を有する、２つ以上のカメラモジュール１０３を含んでいてもよい。
【０２３７】
各組の隣接するカメラモジュールごとに、視差モジュール１１０４は、対応する１組の隣接するカメラモジュールに関する１組の視差マップを定める（１２０６）。視差モジュール１１０４は、異なる組の隣接するカメラモジュールのために、異なる組の視差マップを生成する。各組の隣接するカメラモジュールごとに、バーチャルカメラモジュール１１０６は、対応する１組からの隣接するカメラモジュール間に補間される１つ以上のバーチャルカメラを定める（１２０８）。バーチャルカメラモジュール１１０６は、異なる組の隣接するカメラモジュールのために、異なるバーチャルカメラを定める。１組の隣接するカメラモジュール間に補間されたバーチャルカメラのために、バーチャルカメラモジュール１１０６は、（１）１組の隣接するカメラモジュールに関連付けられた１組の視差マップと、（２）バーチャルカメラの位置とに基づいて、特定の時間に隣接するカメラモジュールによって取り込まれた画像フレームを補間することにより、特定の時間に関連付けられたバーチャルカメラのためのバーチャルカメラ画像を生成する（１２１０）。同様に、バーチャルカメラモジュール１１０６は、すべてのバーチャルカメラのために、特定の時間に関連付けられたバーチャルカメラ画像を生成する。バーチャルカメラのために特定の時間に関連付けられたバーチャルカメラ画像を生成するための例示的な方法は、図１３Ａおよび図１３Ｂを参照して以下に説明される。
【０２３８】
図１２Ｂを参照して、カメラマッピングモジュール１１１０は、カメラアレイ１０１におけるカメラモジュール１０３の構成とバーチャルカメラの位置とに基づいて、左カメラマップおよび右カメラマップを構築する（１２１２）。映像モジュール１１１２は、（１）特定の時間にカメラモジュール１０３によって取り込まれた画像フレームと、（２）特定の時間に関連付けられたバーチャルカメラのバーチャルカメラ画像とから、左カメラマップに基づいて、特定の時間に関連付けられた左パノラマ画像を構築する（１２１４）。映像モジュール１１１２は、（１）特定の時間にカメラモジュール１０３によって取り込まれた画像フレームと、（２）特定の時間に関連付けられたバーチャルカメラのバーチャルカメラ画像とから、右カメラマップに基づいて、特定の時間に関連付けられた右パノラマ画像を構築する（１２１６）。
【０２３９】
ここに開示されたこのおよび他のプロセスおよび方法のために、これらのプロセスおよび方法で行なわれる機能は異なる順序で実現されてもよい、ということを、当業者であれば理解するであろう。さらに、概説されたステップおよび動作は単に例として提供されており、これらのステップおよび動作のうちのいくつかは、開示された実現化例の本質を損なうことなく、オプションであってもよく、より少ないステップおよび動作になるよう組合わされてもよく、または追加のステップおよび動作になるよう拡張されてもよい。
【０２４０】
図１３Ａおよび図１３Ｂは、いくつかの実現化例に従った、２つの隣接するカメラモジュール間に位置するバーチャルカメラのために特定の時間に関連付けられたバーチャルカメラ画像を生成するための例示的な方法１３００を示す。方法１３００は、図１Ａおよび図１１に関して説明される。別々のブロックとして図示されているが、さまざまなブロックは、所望の実現化例に依存して、追加のブロックになるよう分割されてもよく、より少ないブロックになるよう組合わされてもよく、または削除されてもよい。
【０２４１】
図１３Ａを参照して、視差モジュール１１０４は、第１の隣接するカメラモジュールと第２の隣接するカメラモジュールとの間の重複する視野を判断する（１３０２）。視差モジュール１１０４は、特定の時間に第１の隣接するカメラモジュールによって取り込まれた第１の画像フレームと第２の隣接するカメラモジュールによって取り込まれた第２の画像フレームとを判断する（１３０４）。視差モジュール１１０４は、第１の画像からの第１のサブ画像（たとえば画像ＡＢ）と第２の画像からの第２のサブ画像（たとえば画像ＢＡ）とを判断し、第１のサブ画像および第２のサブ画像は、重複する視野において互いに重複している（１３０６）。視差モジュール１１０４は、第１のサブ画像から第２のサブ画像に画素の視差をマッピングする第１の視差マップを生成する（１３０８）。視差モジュール１１０４は、第２のサブ画像から第１のサブ画像に画素の視差をマッピングする第２の視差マップを生成する（１３１０）。視差マップを生成するための例示的な方法は、図１４Ａおよび図１４Ｂを参照して以下に説明される。
【０２４２】
図１３Ｂを参照して、バーチャルカメラモジュール１１０６は、第１の隣接するカメラモジュールと第２の隣接するカメラモジュールとの間に位置するバーチャルカメラの位置を判断する（１３１２）。バーチャルカメラモジュール１１０６は、第１の視差マップとバーチャルカメラの位置とに基づいて、第１のサブ画像から第１のシフトされたサブ画像を生成する（１３１４）。バーチャルカメラモジュール１１０６は、第２の視差マップとバーチャルカメラの位置とに基づいて、第２のサブ画像から第２のシフトされたサブ画像を生成する（１３１６）。バーチャルカメラモジュール１１０６は、バーチャルカメラのために特定の時間に関連付けられたバーチャルカメラ画像を生成するために、第１のシフトされたサブ画像と第２のシフトされたサブ画像とを組合わせる（１３１８）。
【０２４３】
図１４Ａおよび図１４Ｂは、いくつかの実現化例に従った、第１の隣接するカメラモジュールの第１のサブ画像から第２の隣接するカメラモジュールの第２のサブ画像に画素の視差をマッピングする視差マップを推定するための例示的な方法１４００を示す。方法１４００は、図１Ａおよび図１１に関して説明される。別々のブロックとして図示されているが、さまざまなブロックは、所望の実現化例に依存して、追加のブロックになるよう分割されてもよく、より少ないブロックになるよう組合わされてもよく、または削除されてもよい。
【０２４４】
図１４Ａを参照して、視差モジュール１１０４は、第１の隣接するカメラモジュールと第２の隣接するカメラモジュールとの間の重複する視野における画素位置を選択する（１４０２）。視差モジュール１１０４は、視差値を選択する（１４０３）。類似性スコアモジュール１１０８は、（１）選択された画素位置での第１のサブ画像の画素と（２）第２の画素位置での第２のサブ画像の第２の画素との間の類似性スコアを求め、第２の画素位置は、選択された視差値だけ、選択された画素位置と離れている（１４０４）。求められた類似性スコアは、選択された視差値に関連付けられる。類似性スコアを求めるための例示的な方法は、図１５Ａおよび図１５Ｂを参照して以下に説明される。
【０２４５】
視差モジュール１１０４は、少なくとも選択すべき追加の視差値があるかどうかを判断する（１４０６）。少なくとも選択すべき追加の視差値がある場合、方法１４００はブロック１４０３に進む。その他の場合、方法１４００はブロック１４０８に進む。その結果、異なる視差値に関連付けられた異なる類似性スコアが、選択された画素位置のために生成される。視差モジュール１１０４は、異なる視差値に対応する類似性スコアから最高類似性スコアを求める（１４０８）。視差モジュール１１０４は、最高類似性スコアに関連付けられた視差値を求める（１４１０）。
【０２４６】
図１４Ｂを参照して、視差モジュール１１０４は、選択された画素位置に、最高類似性スコアに関連付けられた視差値を割り当てる（１４１２）。視差モジュール１１０４は、少なくとも処理すべき追加の画素位置が重複する視野にあるかどうかを判断する（１４１６）。少なくとも処理すべき追加の画素位置がある場合、方法１４００はブロック１４０２に進む。その他の場合、方法１４００はブロック１４１８に進む。ブロック１４１８で、視差モジュール１１０４は、視差マップにおける画素位置のための対応する最高類似性スコアに関連付けられた視差値を含む視差マップを生成する。
【０２４７】
図１５Ａおよび図１５Ｂは、いくつかの実現化例に従った、２つの隣接するカメラモジュールの投影中心を接続するエピポーラ線に沿った画素のための視差値に関連付けられた類似性スコアを求めるための例示的な方法１５００を示す。方法１５００は、図１Ａおよび図１１に関して説明される。別々のブロックとして図示されているが、さまざまなブロックは、所望の実現化例に依存して、追加のブロックになるよう分割されてもよく、より少ないブロックになるよう組合わされてもよく、または削除されてもよい。
【０２４８】
図１５Ａを参照して、類似性スコアモジュール１１０８は、（１）第１のサブ画像からのエピポーラ線に沿った第１の画素位置での第１の画素を、（２）第２のサブ画像からのエピポーラ線に沿った第２の画素位置での対応する第２の画素とそれぞれ比較することにより、第１の画素位置のためのメトリック値を生成する（１５０２）。対応する第２の画素位置は、視差値の分だけ、対応する第１の画素位置と離れており、１対の対応する第１の画素位置および対応する第２の画素位置のために、対応するメトリック値が生成される。第１のサブ画像は第１の隣接するカメラモジュールによって取り込まれ、第２のサブ画像は第２の隣接するカメラモジュールによって取り込まれ、第１および第２の隣接するカメラモジュールの重複する視野において、第１のサブ画像は第２のサブ画像と重複する。
【０２４９】
最初に、類似性スコアモジュール１１０８は、第１の画素位置のための類似性スコアを、ゼロになるように設定する（１５０４）。類似性スコアモジュール１１０８は、メトリック値のランを求めるために使用されるメトリックしきい値を選択する（１５０６）。類似性スコアモジュール１１０８は、メトリックしきい値とメトリック値とに基づいて、第１の画素位置のためのランを求める（１５０８）。類似性スコアモジュール１１０８は、第１の画素位置の対応するランとメトリックしきい値とに基づいて、第１の画素位置のための予備スコアを求める（１５１０）。たとえば、対応する第１の画素位置のための予備スコアは、対応する第１の画素位置の対応するランをメトリックしきい値で割ったものと等しくてもよい。
【０２５０】
図１５Ｂを参照して、類似性スコアモジュール１１０８は、１つ以上の対応する予備スコアよりも低い１つ以上の類似性スコアを有する、第１の画素位置からの１つ以上の第３の画素位置があるかどうかを判断する（１５１２）。１つ以上の第３の画素位置が、対応する予備スコアよりも低い１つ以上の類似性スコアを有する場合、類似性スコアモジュール１１０８は、１つ以上の第３の画素位置のための１つ以上の類似性スコアを、１つ以上の対応する予備スコアとなるように構成する（１５１４）。その他の場合、方法１５００はブロック１５１６に進む。
【０２５１】
ブロック１５１６で、類似性スコアモジュール１１０８は、少なくとも選択すべき追加のメトリックしきい値があるかどうかを判断する。少なくとも選択すべき追加のメトリックしきい値がある場合、方法はブロック１５０６に進む。その他の場合、方法１５００はブロック１５１８に進む。ブロック１５１８で、類似性スコアモジュール１１０８は、エピポーラ線に沿った第１の画素位置での第１の画素のための類似性スコアを出力する。
【０２５２】
図１６Ａは、いくつかの実現化例に従った、（１）特定の時間に複数のカメラモジュールによって取り込まれた複数の画像フレームと、（２）特定の時間に関連付けられたバーチャルカメラのバーチャルカメラ画像とから、左パノラマ画像および右パノラマ画像を生成する例示的なプロセス１６００を示す。特定の時間Ｔ＝Ｔｉ（ｉ＝０、１、２、…）に、カメラモジュール１０３ａは画像フレーム１６０２ａを取り込み、カメラモジュール１０３ｂは画像フレーム１６０２ｂを取り込み、カメラモジュール１０３ｎは画像フレーム１６０２ｎを取り込む。カメラモジュール１０３ａとカメラモジュール１０３ｂとの間に位置するバーチャルカメラのバーチャルカメラ画像１６０３が生成される。バーチャルカメラ画像１６０３は、特定の時間Ｔ＝Ｔｉに関連付けられる。特定の時間Ｔ＝Ｔｉに関連付けられた他のバーチャルカメラの他のバーチャルカメラ画像も生成されてもよい。映像モジュール１１１２は、画像フレーム１６０２ａ、１６０２ｂ…１６０２ｎを受信する。映像モジュール１１１２は、（１）左カメラマップ１６０４に基づいて特定の時間Ｔ＝Ｔｉに関連付けられた左パノラマ画像１６０８を生成し、（２）右カメラマップ１６０６に基づいて特定の時間Ｔ＝Ｔｉに関連付けられた右パノラマ画像１６１０を生成するために、画像フレーム１６０２ａ、１６０２ｂ…１６０２ｎ、バーチャルカメラ画像１６０３、および他のバーチャルカメラ画像をつなぎ合わせる。
【０２５３】
図１６Ｂは、いくつかの実現化例に従った例示的なパノラマ画像を示す図解１６３０である。パノラマ画像は、水平面における回転を表わす第１の軸「ヨー」と、垂直方向での上下回転を表わす第２の軸「ピッチ」とを有する。パノラマ画像は、シーンパノラマの３６０度の球全体をカバーする。パノラマ画像における位置［ヨー，ピッチ］での画素は、「ヨー」値と「ピッチ」値とを有する頭部回転で見られるパノラマにおける点を表わす。このため、パノラマ画像は、単一の頭部位置からのシーンの単一のビューではなく、さまざまな頭部回転からの混合されたビューを含む。
【０２５４】
図１６Ｃは、いくつかの実現化例に従った例示的なカメラマップを示す図解１６５０である。例示的なカメラマップは、パノラマ画像のカメラ区分１６５２ａおよび１６５２ｂにおける第１の画素を第１のカメラモジュール１０３にマッピングし、カメラ区分１６５４における第２の画素をバーチャルカメラにマッピングし、カメラ区分１６５５における第３の画素を第２のカメラモジュール１０３にマッピングする。第１および第２のカメラモジュール１０３は、カメラアレイ１０１において隣接しており、バーチャルカメラは、第１のカメラモジュール１０３と第２のカメラモジュール１０３との間に補間される。
【０２５５】
カメラ区分１６５２ａおよび１６５２ｂ内のパノラマ画像の第１の画素については、第１の画素のための値は、第１のカメラモジュール１０３によって取り込まれた第１の画像フレームにおける対応する画素値であるように構成されてもよい。同様に、カメラ区分１６５４内のパノラマ画像の第２の画素については、第２の画素のための値は、バーチャルカメラのバーチャルカメラ画像における対応する画素値であるように構成されてもよい。バーチャルカメラ画像は、第１のカメラモジュール１０３の第１の画像フレームと第２のカメラモジュール１０３の第２の画像フレームとに基づいて生成されてもよい。カメラ区分１６５５内のパノラマ画像の第３の画素については、第３の画素のための値は、第２のカメラモジュール１０３によって取り込まれた第２の画像フレームにおける対応する画素値であるように構成されてもよい。この例では、パノラマ画像は、第１のカメラモジュール１０３からの第１の画像フレームの一部、バーチャルカメラのバーチャルカメラ画像の一部、第２のカメラモジュール１０３からの第２の画像フレームの一部、および他のカメラモジュール１０３またはバーチャルカメラからの他の画像の一部を使用してつなぎ合わされる。
【０２５６】
図１７Ａ〜図１７Ｃは、いくつかの実現化例に従った、左および右カメラマップの構築のためにパノラマにおける点のための整合カメラを選択することを示す図解１７００、１７３０、および１７６０である。図１７Ａを参照して、カメラアレイ１０１は、球状ハウジング上に搭載されたカメラモジュール１０３ａ、１０３ｂ、１０３ｃおよび他のカメラモジュールを含む。カメラモジュール間には、バーチャルカメラは補間されていない。点１７０３は、ヨー＝６５０およびピッチ＝００を有する頭の回転位置に対応すると仮定する。左目の位置１７０４と右目の位置１７０６との間には、両眼間拒離１７０２が示されている。ピッチ＝００であるため、両眼間拒離１７０２はその最大値にある。
【０２５７】
左目の位置１７０４から点１７０３への左視方向１７１２と、右目の位置１７０６から点１７０３への右視方向１７１４とが、図１７Ａに示されている。カメラモジュール１０３ａおよび１０３ｂは、点１７０３への視方向１７１０および１７１６をそれぞれ有する。
【０２５８】
カメラモジュール１０３ａの視方向１７１０は、視方向１７１６および他の視方向と比較して、左視方向１７１２により平行である（たとえば、視方向１７１０と左視方向１７１２との間の角度は、左視方向１７１２と他の視方向との間の角度よりも小さい）ため、カメラモジュール１０３ａが、左カメラマップを構築するために、他のカメラモジュールよりも点１７０３についてより良好なビューを有する整合カメラとして選択されてもよい。このため、点１７０３に対応する左パノラマ画像の画素は、カメラモジュール１０３ａによって取り込まれた画像フレームにおける対応する画素の画素値と等しい画素値を有していてもよい。
【０２５９】
カメラモジュール１０３ｂの視方向１７１６は、視方向１７１０および他の視方向と比較して、右視方向１７１４により平行であるため、カメラモジュール１０３ｂが、右カメラマップを構築するために、他のカメラモジュールよりも点１７０３についてより良好なビューを有する整合カメラとして選択されてもよい。このため、点１７０３に対応する右パノラマ画像の画素は、カメラモジュール１０３ｂによって取り込まれた画像フレームにおける対応する画素の画素値と等しい画素値を有していてもよい。
【０２６０】
図１７Ｂを参照して、カメラモジュール１０３ａと１０３ｂとの間にバーチャルカメラ１７４２および１７４４が補間される。バーチャルカメラ１７４２は点１７０３への視方向１７４９を有し、バーチャルカメラ１７４４は点１７０３への視方向１７４６を有する。
【０２６１】
バーチャルカメラ１７４２の視方向１７４９は、視方向１７１０、１７４６、１７１６および他の視方向と比較して、左視方向１７１２により平行であるため、バーチャルカメラ１７４２が、左カメラマップを構築するために、他のカメラモジュールまたはバーチャルカメラよりも点１７０３についてより良好なビューを有する整合カメラとして選択されてもよい。このため、点１７０３に対応する左パノラマ画像の画素は、バーチャルカメラ１７４２のバーチャルカメラ画像における対応する画素の画素値と等しい画素値を有していてもよい。
【０２６２】
バーチャルカメラ１７４４の視方向１７４６は、視方向１７１０、１７４９、１７１６および他の視方向と比較して、右視方向１７１４により平行であるため、バーチャルカメラ１７４４が、右カメラマップを構築するために、他のカメラモジュールまたはバーチャルカメラよりも点１７０３についてより良好なビューを有する整合カメラとして選択されてもよい。このため、点１７０３に対応する右パノラマ画像の画素は、バーチャルカメラ１７４４のバーチャルカメラ画像における対応する画素の画素値と等しい画素値を有していてもよい。
【０２６３】
図１７Ｃを参照して、隣接するカメラモジュール間に補間されるバーチャルカメラが多数あり、それが連続的な視点でパノラマを取り込むことをシミュレートすると仮定する。左視方向１７１２と同じ視方向を有するバーチャルカメラ１７６２が、左カメラマップを構築するために、点１７０３のための整合カメラとして選択されてもよい。このため、点１７０３に対応する左パノラマ画像の画素は、バーチャルカメラ１７６２のバーチャルカメラ画像における対応する画素の画素値と等しい画素値を有していてもよい。右視方向１７１４と同じ視方向を有するバーチャルカメラ１７６４が、右カメラマップを構築するために、点１７０３のための整合カメラとして選択されてもよい。このため、点１７０３に対応する右パノラマ画像の画素は、バーチャルカメラ１７６４のバーチャルカメラ画像における対応する画素の画素値と等しい画素値を有していてもよい。
【０２６４】
図１８は、いくつかの実現化例に従った、エピポーラ線のエピポーラ方向に沿った例示的な視差を示す図解１８００である。カメラＡは第１の画像平面を有し、カメラＢは第２の画像平面を有する。第１の画像平面および第２の画像平面は、同一平面の画像平面である。第１および第２の画像平面が同一平面でない場合、カメラＡおよびカメラＢの画像は、同一平面となるように変換されてもよい。カメラＡのためのピンホール位置１８０２と、カメラＢのためのピンホール位置１８０６とが、図１８に示されている。パノラマにおける点１８０４は、カメラＡにより、ピンホール位置１８０２に対する、その画像平面における点１８０８として取り込まれる。点１８０４はまた、カメラＢにより、ピンホール位置１８０６に対する、その画像平面における点１８１４として取り込まれる。点１８１４は、ピンホール位置１８０６に対して右にシフトされている。カメラＡとカメラＢとの間の中心点に、バーチャルカメラが追加される。バーチャルカメラは、バーチャルカメラの画像平面の中心の真上にあるピンホール位置１８０３に関連付けられる。ピンホール位置１８０２も、カメラＡの画像平面の中心の真上にあり、ピンホール位置１８０６は、カメラＢの画像平面の中心の真上にある。点１８０４は、バーチャルカメラにより、その画像平面における点１８０９として取り込まれてもよい。（１）バーチャルカメラのピンホール位置１８０３はカメラＡのピンホール位置１８０２とカメラＢのピンホール位置１８０６との中間にあり、（２）バーチャルカメラの画像平面も、カメラＡの画像平面とカメラＢの画像平面との中間にあるため、点１８０９の位置は、点１８０８の位置と点１８１４の位置との中間にある。
【０２６５】
図１９は、いくつかの実現化例に従った、実在するカメラとバーチャルカメラとの間へのバーチャルカメラの補間を示す図解１９００である。３つの実在するカメラ（カメラ１、カメラ２、カメラ３）を、図１９の左の図に示す。線１９０２、１９０４、および１９０６に沿ったシーンのビューはそれぞれ、実在するカメラのうちの２つによって補間されてもよい。線１９０２、１９０４、および１９０６は各々、３つの実在するカメラのうちの２つを接続する。バーチャルカメラは、線１９０２、１９０４、および１９０６に沿って補間されてもよい。たとえば、図１９の右の図に示すように、線１９０２に沿ってバーチャルカメラ４が補間されてもよい。さらに、バーチャルカメラ４はまた、３つの実在するカメラによって形成される三角形の内部で他のバーチャルカメラを定めるために使用されてもよい。たとえば、図１９の右の図を参照して、バーチャルカメラ４とカメラ３との間の線１９０８に沿って、バーチャルカメラ５が補間されてもよい。同様に、他のバーチャルカメラが、２つの実在するカメラ間、実在するカメラとバーチャルカメラとの間、または２つのバーチャルカメラ間に補間されてもよい。
【０２６６】
ここで図２０を参照して、ここに説明される少なくともいくつかの実現化例に従ったコンテンツシステム１７１の一例を図示する。図２０は、コンテンツシステム１７１と、メモリ２０３７と、プロセッサ２０３５と、記憶装置２０４１と、通信部２０４５とを含むコンピューティング装置２０００のブロック図である。図示された実施形態では、コンピューティング装置２０００の構成要素は、バス２０２０によって通信可能に結合される。いくつかの実現化例では、コンピューティング装置２０００は、パーソナルコンピュータ、スマートフォン、タブレットコンピュータ、セットトップボックス、または任意の他のプロセッサベースのコンピューティング装置であってもよい。コンピューティング装置２０００は、図１Ｂのクライアント装置１２７、サーバ１２９、およびシステム１９９における別の装置のうちの１つであってもよい。
【０２６７】
プロセッサ２０３５は、計算を行ない、電子表示信号を表示装置に提供するための、算術論理演算ユニット、マイクロプロセッサ、汎用コントローラ、または何らかの他のプロセッサアレイを含んでいてもよい。プロセッサ２０３５は、他の構成要素との通信のために信号線２０３８を介してバス２０２０に結合される。プロセッサ２０３５はデータ信号を処理してもよく、複雑命令セットコンピュータ（ＣＩＳＣ）アーキテクチャ、縮小命令セットコンピュータ（ＲＩＳＣ）アーキテクチャ、または命令セットの組合せを実現するアーキテクチャを含むさまざまなコンピューティングアーキテクチャを含んでいてもよい。図２０は単一のプロセッサ２０３５を含むが、複数のプロセッサが含まれていてもよい。他のプロセッサ、オペレーティングシステム、センサ、ディスプレイ、および物理的構成が可能であってもよい。
【０２６８】
メモリ２０３７は、ここに説明される機能性を提供するためにデータを格納する非一時的メモリを含む。メモリ２０３７は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）装置、スタティックランダムアクセスメモリ（ＳＲＡＭ）装置、フラッシュメモリ、または何らかの他のメモリ装置であってもよい。いくつかの実現化例では、メモリ２０３７はまた、より永続的に情報を格納するための、ハードディスクドライブ、フロッピー（登録商標）ディスクドライブ、ＣＤ−ＲＯＭ装置、ＤＶＤ−ＲＯＭ装置、ＤＶＤ−ＲＡＭ装置、ＤＶＤ−ＲＷ装置、フラッシュメモリ装置、または何らかの他の大容量記憶装置を含む、不揮発性メモリまたは同様の永続的記憶装置および媒体を含む。メモリ２０３７は、コンテンツシステム１７１がその機能性を提供するためのコード、ルーチンおよびデータを格納してもよい。メモリ２０３７は、信号線２０４４を介してバス２０２０に結合される。
【０２６９】
通信部２０４５は、図１Ｂに示すシステム１９９のエンティティのうちのいずれかにデータを送信してもよい。同様に、通信部２０４５は、図１Ｂに示すシステム１９９のエンティティのうちのいずれかからデータを受信してもよい。通信部２０４５は、接続ハブ１２３から未加工映像データおよび未加工音声データを受信するための１つ以上のイーサネット（登録商標）スイッチを含んでいてもよい。通信部２０４５は、信号線２０４６を介してバス２０２０に結合される。いくつかの実現化例では、通信部２０４５は、図１Ｂのネットワーク１０５などのネットワークへの、または別の通信チャネルへの直接的な物理的接続のためのポートを含む。たとえば、通信部２０４５は、別のコンピューティング装置との有線通信のためのＵＳＢ、ＳＤ、ＲＪ４５、または同様のポートなどのポートを含んでいてもよい。いくつかの実現化例では、通信部２０４５は、ＩＥＥＥ８０２．１１、ＩＥＥＥ８０２．１６、BLUETOOTH（登録商標）、または別の好適な無線通信方法を含む１つ以上の無線通信方法を使用して別のコンピューティング装置または他の通信チャネルとデータを交換するための無線トランシーバを含む。
【０２７０】
いくつかの実現化例では、通信部２０４５は、ショートメッセージングサービス（ＳＭＳ）、マルチメディアメッセージングサービス（ＭＭＳ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、直接データ接続、ＷＡＰ、電子メール、または別の好適なタイプの電子通信を介することを含むセルラー通信ネットワーク上でデータを送受信するためのセルラー通信トランシーバを含む。いくつかの実現化例では、通信部２０４５は、有線ポートと無線トランシーバとを含む。通信部２０４５はまた、ＴＣＰ／ＩＰ、ＨＴＴＰ、ＨＴＴＰＳおよびＳＭＴＰなどを含む標準ネットワークプロトコルを使用したデータの配信のための、ネットワークへの他の従来の接続を提供する。
【０２７１】
記憶装置２０４１は、ここに説明される機能性を提供するためにデータを格納する非一時的記憶媒体であってもよい。記憶装置２０４１は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）装置、スタティックランダムアクセスメモリ（ＳＲＡＭ）装置、フラッシュメモリ、または何らかの他のメモリ装置であってもよい。いくつかの実現化例では、記憶装置２０４１はまた、より永続的に情報を格納するための、ハードディスクドライブ、フロッピー（登録商標）ディスクドライブ、ＣＤ−ＲＯＭ装置、ＤＶＤ−ＲＯＭ装置、ＤＶＤ−ＲＡＭ装置、ＤＶＤ−ＲＷ装置、フラッシュメモリ装置、または何らかの他の大容量記憶装置を含む、不揮発性メモリまたは同様の永続的記憶装置および媒体を含む。記憶装置２０４１は、信号線２０４２を介してバス２０２０に通信可能に結合される。
【０２７２】
図２０に示す実現化例では、コンテンツシステム１７１は、通信モジュール２００２と、較正モジュール２００４と、カメラマッピングモジュール２００６と、映像モジュール２００８と、補正モジュール２０１０と、音声モジュール２０１２と、ストリーム組合せモジュール２０１４と、広告モジュール２０１６と、ソーシャルモジュール２０１８と、コンテンツモジュール２０５６とを含む。コンテンツシステム１７１のこれらのモジュールは、バス２０２０を介して互いに通信可能に結合される。
【０２７３】
いくつかの実現化例では、コンテンツシステム１７１の各モジュール（たとえば、モジュール２００２、２００４、２００６、２００８、２０１０、２０１２、２０１４、２０１６、２０１８、または２０５６）は、以下に説明されるそのそれぞれの機能性を提供するためにプロセッサ２０３５によって実行可能であるそれぞれの１組の命令を含んでいてもよい。いくつかの実現化例では、コンテンツシステム１７１の各モジュールは、コンピューティング装置２０００のメモリ２０３７に格納されてもよく、プロセッサ２０３５によってアクセス可能および実行可能であってもよい。コンテンツシステム１７１の各モジュールは、プロセッサ２０３５およびコンピューティング装置２０００の他の構成要素と協働および通信するために適合されてもよい。
【０２７４】
通信モジュール２００２は、コンテンツシステム１７１とコンピューティング装置２０００の他の構成要素との間の通信を扱うためのルーチンを含むソフトウェアであってもよい。通信モジュール２００２は、信号線２０２２を介してバス２０２０に通信可能に結合されてもよい。通信モジュール２００２は、図１Ｂに示すシステム１９９のエンティティのうちの１つ以上との間で通信部２０４５を介してデータを送受信する。たとえば、通信モジュール２００２は、通信部２０４５を介して接続ハブ１２３から未加工映像データを受信してもよく、その未加工映像データを映像モジュール２００８に転送してもよい。別の例では、通信モジュール２００２は、通信部２０４５を介して、ストリーム組合せモジュール２０１４からバーチャルリアリティコンテンツを受信してもよく、そのバーチャルリアリティコンテンツを鑑賞システム１３３に送信してもよい。
【０２７５】
いくつかの実現化例では、通信モジュール２００２は、コンテンツシステム１７１の構成要素からデータを受信し、そのデータをメモリ２０３７または記憶装置２０４１に格納する。たとえば、通信モジュール２００２は、ストリーム組合せモジュール２０１４からバーチャルリアリティコンテンツを受信し、そのバーチャルリアリティコンテンツをメモリ２０３７または記憶装置２０４１に格納する。いくつかの実現化例では、通信モジュール２００２は、メモリ２０３７または記憶装置２０４１からデータを検索し、そのデータをコンテンツシステム１７１の１つ以上の適切な構成要素に送信する。それに代えて、またはそれに加えて、通信モジュール２００２はまた、コンテンツシステム１７１の構成要素間の通信を扱ってもよい。
【０２７６】
較正モジュール２００４は、カメラアレイ１０１におけるカメラモジュール１０３を較正するためのルーチンを含むソフトウェアであってもよい。較正モジュール２００４は、信号線２０２４を介してプロセッサ２０３５およびコンピューティング装置２０００の他の構成要素と協働および通信するために適合されてもよい。較正モジュール２００４は、図２の較正モジュール２０４と同様の動作を行ない、機能性を提供してもよく、その説明はここでは繰り返さない。
【０２７７】
カメラマッピングモジュール２００６は、左カメラマップおよび右カメラマップを構築するためのルーチンを含むソフトウェアであってもよい。カメラマッピングモジュール２００６は、信号線２０２６を介してプロセッサ２０３５およびコンピューティング装置２０００の他の構成要素と協働および通信するために適合されてもよい。カメラマッピングモジュール２００６は、図２のカメラマッピングモジュール２０６または図１１のカメラマッピングモジュール１１１０と同様の動作を行ない、機能性を提供してもよく、その説明はここでは繰り返さない。
【０２７８】
映像モジュール２００８は、バーチャルリアリティ表示装置上で再生されると３Ｄ映像をレンダリングするように構成された３Ｄ映像データのストリームを生成するためのルーチンを含むソフトウェアであってもよい。映像モジュール２００８は、信号線２０８０を介してプロセッサ２０３５およびコンピューティング装置２０００の他の構成要素と協働および通信するために適合されてもよい。３Ｄ映像データのストリームは、経時変化し得るシーンの立体パノラマを記述してもよい。３Ｄ映像データのストリームは、左目視のための左パノラマ画像のストリームおよび右目視のための右パノラマ画像のストリームを含んでいてもよい。映像モジュール２００８は、図２の映像モジュール２０８または図１１の映像モジュール１１１２と同様の動作を行ない、機能性を提供してもよく、その説明はここでは繰り返さない。
【０２７９】
補正モジュール２０１０は、画像フレームまたはパノラマ画像における収差を補正するためのルーチンを含むソフトウェアであってもよい。補正モジュール２０１０は、信号線２０２８を介してバス２０２０に通信可能に結合される。補正モジュール２０１０は、図２の補正モジュール２１０と同様の動作を行ない、機能性を提供してもよく、その説明はここでは繰り返さない。
【０２８０】
音声モジュール２０１２は、音声再生装置上で再生されると３Ｄ音声をレンダリングするように構成された３Ｄ音声データのストリームを生成するためのルーチンを含むソフトウェアであってもよい。音声モジュール２０１２は、信号線２０３０を介してバス２０２０に通信可能に結合される。音声モジュール２０１２は、図２の音声モジュール２１２と同様の動作を行ない、機能性を提供してもよく、その説明はここでは繰り返さない。
【０２８１】
ストリーム組合せモジュール２０１４は、バーチャルリアリティコンテンツを生成するために３Ｄ映像データのストリームと３Ｄ音声データのストリームとを組合わせるためのルーチンを含むソフトウェアであってもよい。ストリーム組合せモジュール２０１４は、信号線２０２９を介してバス２０２０に通信可能に結合される。ストリーム組合せモジュール２０１４は、図２のストリーム組合せモジュール２１４と同様の動作を行ない、機能性を提供してもよく、その説明はここでは繰り返さない。
【０２８２】
バーチャルリアリティコンテンツは、３Ｄ映像データのストリーム（または圧縮された３Ｄ映像データのストリーム）、３Ｄ音声データのストリーム（または圧縮された３Ｄ音声データのストリーム）、コンテンツサーバ１３９からのコンテンツデータ、広告サーバ１４１からの広告データ、ソーシャルネットワークサーバ１３５からのソーシャルデータ、および任意の他の好適なバーチャルリアリティコンテンツの任意の組合せを使用して、ストリーム組合せモジュール２０１４によって構築されてもよい。
【０２８３】
いくつかの実現化例では、バーチャルリアリティコンテンツは、ＭＰ４、ＷｅｂＭ、ＶＰ８、および任意の他の好適なフォーマットなどのコンテナフォーマットでパッケージ化されてもよい。バーチャルリアリティコンテンツは、クライアント装置１２７またはサーバ１２９にファイルとして格納されてもよく、ユーザ１３４のためにクライアント装置１２７またはサーバ１２９から鑑賞システム１３３へストリーミングされてもよい。それに代えて、バーチャルリアリティコンテンツは、デジタル多用途ディスク（ＤＶＤ）、フラッシュメモリ、または別のタイプの記憶装置に格納されてもよい。
【０２８４】
広告モジュール２０１６は、コンテンツシステム１７１によって生成されたバーチャルリアリティコンテンツに広告を追加するためのルーチンを含むソフトウェアであってもよい。たとえば、広告サーバ１４１は、１つ以上の広告を記述する広告データを格納し、送信する。広告モジュール２０１６は、広告をバーチャルリアリティコンテンツに組込む。たとえば、広告は、画像、音声トラック、または映像を含み、広告モジュール２０１６は、広告をバーチャルリアリティコンテンツに組込む。広告は、バーチャルリアリティコンテンツにおいてつなぎ合わされた映像であってよい。いくつかの実現化例では、広告は、広告モジュール２０１６がバーチャルリアリティコンテンツに組込むオーバーレイを含む。たとえば、オーバーレイは透かしを含む。透かしは、製品またはサービスについての広告であってもよい。いくつかの実現化例では、広告サーバ１４１からの広告は、広告を表示するための位置を記述する広告データを含む。この場合、広告モジュール２０１６は、広告データに従って広告を表示してもよい。広告モジュール２０１６は、信号線２０１７を介してバス２０２０に通信可能に結合されてもよい。
【０２８５】
いくつかの実現化例では、広告データは、広告をどのようにバーチャルリアリティコンテンツに組込むかを記述するデータを含む。たとえば、広告データは、広告がバーチャルリアリティコンテンツのどこに含まれるかを記述する。広告モジュール２０１６は、広告データを分析し、広告データに従って広告をバーチャルリアリティコンテンツに組込んでもよい。他の実現化例では、ユーザ１３４は広告モジュール２０１６にユーザ入力を提供し、そのユーザ入力は、広告をどのようにバーチャルリアリティコンテンツに組込むかを記述するユーザ嗜好を特定する。広告モジュール２０１６は、ユーザ入力を分析し、そのユーザ入力に少なくとも部分的に基づいて広告を組込んでもよい。
【０２８６】
広告は、多くの形をとり得る。たとえば、広告は、ユーザがやりとりできる、会社のロゴまたはグラフィカルオブジェクトの製品配置であってもよい。いくつかの実現化例では、広告モジュール２０１６は、ユーザがよく見る区域に広告を挿入する。他の実現化例では、広告モジュール２０１６は、あまりよく使用されない区域に広告を挿入する。たとえば、図２１Ａは、バーチャルリアリティコンテンツが上部パネル２１０２および底部パネル２１０３に表示された状態のユーザ２１０１の図２１００である。ユーザ２１０１は、自分の頭を上向きに動かすことにより、上部パネル２１０２におけるバーチャルリアリティコンテンツを見ることができる。ユーザ２１０１は、自分の頭を下向きに動かすことにより、底部パネル２１０３におけるバーチャルリアリティコンテンツを見ることができる。
【０２８７】
図２１Ｂは、広告モジュール２０１６がどのように広告を図２１Ａのパネルのうちの１つに組込むかを示す図２１０５である。たとえば、図２１Ｂは上部パネル２１０２を示す。バーチャルリアリティコンテンツは、森林についてのものである。ユーザは、上部パネル２１０２において木２１０６の縁を見ることができる。上部パネル２１０２の中央に、広告モジュール２０１６は、サンフランシスコ旅行についての広告２１０８を挿入する。ユーザにとって見ることが重要であり得るバーチャルリアリティコンテンツと広告が重複しないため、上部パネル２１０２は、広告にとってよい場所であり得る。
【０２８８】
いくつかの実現化例では、バーチャルリアリティコンテンツは、バーチャルリアリティコンテンツの生成時のエラーによって生じるつなぎ合わせ収差を含む。補正モジュール２０１０などのコンテンツシステム１７１の要素が、つなぎ合わせ収差を識別するためにバーチャルリアリティコンテンツを分析する。補正モジュール２０１０は、バーチャルリアリティコンテンツにおけるつなぎ合わせ収差の位置を記述するデータを、広告モジュール２０１６に送信する。広告モジュール２０１６は、バーチャルリアリティコンテンツの再生時につなぎ合わせ収差がユーザ１３４に見えないように、バーチャルリアリティコンテンツにおけるつなぎ合わせ収差の位置に広告を組込む。
【０２８９】
広告モジュール２０１６は、広告主に課金するために、広告に関連付けられた費用を決定してもよい。たとえば、広告モジュール２０１６は、広告サーバ１４１からの広告を表示することに対して広告主に課金する。いくつかの実現化例では、広告モジュール２０１６は、広告の位置に基づいて、広告を表示するための費用を決定する。費用は、ユーザごとに個人化された、ユーザがバーチャルリアリティコンテンツの特定の部分内で見る場所、ユーザが概してバーチャルリアリティコンテンツを見る場所などに基づいていてもよい。いくつかの実現化例では、広告モジュール２０１６は、広告とのやりとりに関連付けられた費用を決定する。たとえば、ユーザが広告をクリックすると（クリックスルー）より多くの金額を課金するオンラインマガジンと同様に、広告モジュール２０１６は、広告モジュール２０１６がユーザ凝視に基づいてユーザが特定の広告を見たと判断すると、より多くの金額を課金してもよい。いくつかの実現化例では、広告モジュール２０１６は、たとえば広告主のウェブページのバーチャルリアリティレンダリングなどのように、ユーザが広告を選択してその広告に関するバーチャルリアリティコンテンツを見ることができるように、広告のためのリンクを生成する。この行動もクリックスルーと同様であるため、広告モジュール２０１６は、この行動についてより多く課金してもよい。
【０２９０】
広告モジュール２０１６は、ユーザが異なる広告を凝視することに基づいて、ユーザのためのプロファイルを生成してもよい。広告モジュール２０１６は、広告についてのカテゴリを識別し、ユーザがそのカテゴリまたはそのカテゴリに関連付けられた広告主に興味を持っていると判断してもよい。いくつかの実現化例では、広告モジュール２０１６は、ユーザプロファイルに基づいて、広告を表示するための費用を決定する。たとえば、広告モジュール２０１６は、あるユーザがポテトチップスまたはポテトチップスの特定の製造業者に興味を持っていると判断する。その結果、広告モジュール２０１６は、ポテトチップスに対する興味を示していない他のユーザよりも、そのユーザにポテトチップスについての広告を表示するためにより多く課金する。
【０２９１】
ソーシャルモジュール２０１８は、鑑賞システム１３３またはコンテンツシステム１７１がソーシャルネットワークアプリケーション１３７とやりとりできるようにするためのルーチンを含むソフトウェアであってもよい。たとえば、ソーシャルモジュール２０１８は、ユーザ１３４と鑑賞システム１３３またはコンテンツシステム１７１とのやりとりを記述するソーシャルデータを生成してもよい。やりとりは、ユーザ１３４についてのステータス更新であってもよい。ユーザ１３４は、ユーザ１３４を記述するソーシャルデータがユーザ１３４の承認なく発行されないように、ソーシャルデータを承認してもよい。一実施形態では、ソーシャルモジュール２０１８はソーシャルデータを通信部２０４５に送信し、通信部２０４５はソーシャルデータをソーシャルネットワークアプリケーション１３７に送信する。別の実施形態では、ソーシャルモジュール２０１８とソーシャルネットワークアプリケーション１３７とは同じである。ソーシャルモジュール２０１８は、信号線２０１９を介してバス２０２０に通信可能に結合されてもよい。
【０２９２】
いくつかの実現化例では、ソーシャルネットワークアプリケーション１３７は、共通の特徴に基づいてユーザを接続するソーシャルグラフを生成する。たとえば、ユーザは、友人関係、共通の対象に対する興味、あるユーザが別のユーザによって発行された投稿をフォローすることなどに基づいて接続される。一実施形態では、ソーシャルモジュール２０１８は、ユーザ１３４およびソーシャルグラフを介したユーザの人脈がバーチャルリアリティコンテンツを同時期に消費することできるようにするためのルーチンを含む。たとえば、コンテンツシステム１７１は、２つ以上の鑑賞システム１３３に通信可能に結合される。ソーシャルグラフにおいて、第１のユーザ１３４が第２のユーザ１３４に接続される。第１のユーザ１３４は第１の鑑賞システム１３３とやりとりし、第２のユーザ１３４は第２の鑑賞システム１３３とやりとりする。第１のユーザ１３４および第２のユーザ１３４は、それぞれの鑑賞システム１３３を同時に使用して、コンテンツシステム１７１によって提供されるバーチャルリアリティコンテンツを消費してもよい。いくつかの実現化例では、バーチャルリアリティコンテンツの消費は、ソーシャルネットワークと一体化されてもよい。
【０２９３】
いくつかの実現化例では、ソーシャルモジュール２０１８は、バーチャルリアリティコンテンツとのユーザとのやりとりに関する情報を、ソーシャルネットワークアプリケーション１３７に送信する。たとえば、ソーシャルモジュール２０１８は、映像全体またはその映像内のフレームについての主題を判断してもよい。ソーシャルモジュール２０１８は、主題およびユーザに関する情報をソーシャルネットワークアプリケーション１３７に送信してもよく、それは、共有される主題に基づいてソーシャルグラフを生成する。いくつかの実現化例では、ソーシャルモジュール２０１８は、ユーザがどのように広告に反応するかに関する情報を鑑賞システム１３３から受信し、ソーシャルグラフへの組込みのためにその情報をソーシャルネットワークアプリケーション１３７に送信する。たとえば、鑑賞システム１３３は、ユーザが家の飾りつけに関する広告に興味を持っていることをユーザの凝視がどのように示すかに関する情報を送信する。ソーシャルモジュール２０１８は、家の飾りつけに対するユーザの興味をソーシャルネットワークアプリケーション１３７に送信し、それは、その興味を用いてユーザのプロファイルを更新し、ユーザがつながり得る、同様に家の飾りつけに興味を持っている他のユーザを識別する。別の実施形態では、ソーシャルネットワークアプリケーション１３７は、広告に関する情報を使用して、ソーシャルネットワーク内の広告をユーザに提供する。
【０２９４】
いくつかの実現化例では、ソーシャルネットワークアプリケーション１３７は、バーチャルリアリティコンテンツとのユーザのやりとりに基づいて、ユーザ間のつながりを示唆する。たとえば、第１のユーザおよび第２のユーザの双方が同じバーチャルリアリティコンテンツにアクセスした場合、ソーシャルネットワークアプリケーション１３７は、彼らが友達になることを示唆してもよい。別の例では、２人のユーザが同じ主題を有するバーチャルリアリティコンテンツにアクセスした場合、ソーシャルネットワークアプリケーション１３７は、彼らがつながることを示唆する。ソーシャルネットワーク上の第１のユーザがあるタイプの主題の専門家であり、第２のユーザが同じ主題を有するバーチャルリアリティコンテンツをしきい値の数だけ見るさらに別の例では、ソーシャルネットワークアプリケーション１３７は、第２のユーザがソーシャルネットワークで第１のユーザをフォローすることを示唆する。
【０２９５】
ソーシャルネットワークアプリケーション１３７は、ユーザのバーチャルリアリティコンテンツの消費に基づいて、ユーザがソーシャルネットワークにおけるグループに参加することを示唆してもよい。たとえば、他のユーザとのサイエンスフィクションアドベンチャーを伴うバーチャルリアリティコンテンツを見るユーザのために、ソーシャルネットワークアプリケーション１３７は、ソーシャルネットワークにおけるサイエンスフィクション・ロールプレーイングに関するグループを示唆する。
【０２９６】
いくつかの実現化例では、ソーシャルモジュール２０１８は、ソーシャルネットワークアプリケーション１３７がユーザに関する更新を投稿するために使用する、ユーザのやりとりに関する情報を、ソーシャルネットワークアプリケーション１３７に送信する。更新は、生じているユーザのやりとりのタイプに関する情報、バーチャルリアリティコンテンツに関する情報、およびバーチャルリアリティコンテンツへのアクセス方法を含んでいてもよい。ソーシャルネットワークアプリケーション１３７は、第１のユーザに関する更新を、ソーシャルグラフを介して第１のユーザにつながっている、ソーシャルネットワークにおける他のユーザに投稿してもよい。たとえば、更新は、第１のユーザの友達、第１のユーザの友達の友達、または親しい友達のみを含む第１のユーザの人脈の部分集合によって見られる。ソーシャルネットワークアプリケーション１３７はまた、同じバーチャルリアリティコンテンツを見た、またはバーチャルリアリティコンテンツの一部である主題に対する興味を示した他のユーザに、更新を投稿してもよい。
【０２９７】
いくつかの実現化例では、ソーシャルネットワークアプリケーション１３７は、バーチャルリアリティコンテンツに関連付けられた主題を判断し、その主題に興味を持っている他のユーザを判断する。たとえば、ソーシャルネットワークアプリケーション１３７は、ユーザが登録時に作成したユーザプロファイルの一部として主題がリストされているため、ユーザがその主題に明らかに興味を持っていると判断する。別の例では、ソーシャルネットワークアプリケーション１３７は、主題に対する興味を判断するために、ユーザがその主題を有する映像を予め定められた数だけ見る、またはその主題に関する記事を予め定められた数だけ投稿する、といった暗示的な活動を使用する。ソーシャルネットワークアプリケーション１３７は、バーチャルリアリティコンテンツとのユーザのやりとりに関するソーシャルネットワーク更新を、同じ主題に興味を持っている他のユーザに限定してもよい。
【０２９８】
いくつかの実現化例では、ソーシャルネットワークアプリケーション１３７は、バーチャルリアリティコンテンツが慎重を期するものでない限り、更新を投稿する。たとえば、バーチャルリアリティコンテンツがポルノグラフィーである場合、ソーシャルネットワークアプリケーション１３７は更新を投稿しない。いくつかの実現化例では、ソーシャルネットワークアプリケーション１３７は、更新の一部になり得ないタイプの主題に関するユーザ嗜好をユーザに提供する。たとえば、ソーシャルネットワークがビジネス関係向けである場合、ソーシャルネットワークアプリケーション１３７は、ユーザが有名人に関するバーチャルリアリティコンテンツを消費することに関する更新を投稿しない。
【０２９９】
図２１Ｃは、ユーザについてのソーシャルネットワーク更新のプロファイルページの例示的な図２１１０である。この例では、ジェーン・ドゥ（Jane Doe）というユーザが、バーチャルワールドＩと宝の宮殿（Virtual World I and Treasure Palace）についてのバーチャルリアリティコンテンツとのやりとりを有する。バーチャルリアリティコンテンツの第１の更新２１１１は、ユーザの識別と、参加ボタン２１１２と、更新に対して承認、否認、またはコメントするためのリンクとを含む。ユーザが参加ボタン２１１２をクリックした場合、一実施形態では、ソーシャルネットワークアプリケーション１３７はコンテンツシステム１７１に開始するよう命令する。承認リンクは、「いいね」、＋１、親指を立てるなどの多くの形をとり得る。否認リンクは、−１、「よくないね」、親指を下げるなどの多くの形をとり得る。
【０３００】
バーチャルリアリティコンテンツの第２の更新２１１３は、バーチャルリアリティゲームにおけるユーザの進渉状況に関するステータス更新を含む。この例では、別のユーザが、「ジェーンに報酬」ボタン２１１４を選択することにより、ゲーム内報酬をユーザに提供できてもよい。たとえば、そのボタンを選択すると、ソーシャルネットワークアプリケーション１３７は、追加の寿命、それにおいてオブジェクトを購入するためのクレジット、時間などをユーザに提供するよう、コンテンツシステム１７１に命令できるようになってもよい。
【０３０１】
コンテンツモジュール２０５６は、コンテンツシステム１７１がコンテンツサーバ１３９からコンテンツを受信すること、および、いくつかの実現化例では、バーチャルリアリティコンテンツの分析を提供することを可能にするためのルーチンを含むソフトウェアであってもよい。たとえば、コンテンツサーバ１３９は、鑑賞システム１３３による再生にとって好適である、映像、画像、音楽、ビデオゲーム、または任意の他のＶＲコンテンツなどのコンテンツを格納する。コンテンツモジュール２０５６は、信号線２０５７を介してバス２０２０に通信可能に結合されてもよい。
【０３０２】
いくつかの実現化例では、コンテンツサーバ１３９は、コンテンツデータを格納するメモリに通信可能に結合される。コンテンツデータは、映像データまたは音声データを含む。たとえば、映像は対応する音声トラックと同期した一連の画像を含み得るため、コンテンツサーバ１３９に格納された映像は、映像要素と音声要素とを有する。映像要素は映像データによって記述され、音声要素は音声データによって記述される。この例では、映像データおよび音声データは、コンテンツサーバ１３９によって送信されるコンテンツデータに含まれる。コンテンツシステム１７１はコンテンツデータを受信し、次に、コンテンツデータに含まれる映像データおよび音声データに少なくとも部分的に基づいて、鑑賞システム１３３のためのバーチャルリアリティコンテンツを生成する。コンテンツサーバ１３９によってホストされる画像、音楽、ビデオゲーム、または任意の他のコンテンツについても、同様の例が可能である。
【０３０３】
いくつかの実現化例では、コンテンツモジュール２０５６は、バーチャルリアリティコンテンツの分析を提供する。たとえば、コンテンツモジュール２０５６は、すべてのユーザの凝視の位置に関する情報を受信して、それらの情報を集約してもよい。コンテンツモジュール２０５６は、画像における特定の位置を見たユーザの数に別々の色が対応しているヒートマップを生成してもよい。たとえば、画像がキッチンにおける場所である場合、ヒートマップは、大抵のユーザがキッチンテーブルおよび器具を見たこと、および、壁を見たユーザはほんの少しだったことを示す。
【０３０４】
コンテンツモジュール２０５６は、分析データを使用してバーチャルリアリティコンテンツのプレイリストを生成してもよい。たとえば、コンテンツモジュール２０５６は、さまざまなバーチャルリアリティ体験の人気を判断してもよい。人気は、バーチャルリアリティコンテンツにアクセスするユーザの数、ユーザがバーチャルリアリティコンテンツとやりとりした後のユーザ格付けなどに基づいていてもよい。プレイリストは、フランスのパリのベスト１０の描写など、トピックに基づいていてもよく、または、利用可能なべスト５０のバーチャルリアリティコンテンツなど、全体的な人気に基づいていてもよい。いくつかの実現化例では、コンテンツモジュール２０５６は、主題の専門家である人々からプレイリストを生成する。たとえば、コンテンツモジュール２０５６は、有名なシェフによって格付けされた（または作成された）ような最良の料理映像のプレイリストを生成する。別の例では、コンテンツモジュール２０５６は、１０億ドルの技術企業のオーナーによって提示された技術に関する最良のバーチャルリアリティコンテンツなど、専門家によって作成されたプレイリストを受け付ける。
【０３０５】
いくつかの実現化例では、コンテンツモジュール２０５６は、バーチャルリアリティコンテンツのゲーム化を管理する。コンテンツモジュール２０５６は、バーチャルリアリティコンテンツとのユーザのやりとりを追跡してもよく、ユーザのやりとりのしきい値量を達成したことに対する報酬を提供する。たとえば、コンテンツモジュール２０５６は、ユーザがゲームで５つのオブジェクトを識別すると、報酬として新しいバーチャルリアリティコンテンツをユーザに与える。コンテンツモジュール２０５６はまた、オブジェクトの見つけ方の手がかりを提供してもよい。
【０３０６】
いくつかの実現化例では、コンテンツモジュール２０５６は、ユーザがあるバーチャルリアリティ体験から別のバーチャルリアリティ体験へと動くために、バーチャルリアリティコンテンツ内にリンクを生成する。図２１Ｄは、ユーザが歩き回って車２１２２が路上にある道路に接近していることを体験しているバーチャルリアリティコンテンツ２１２１の一例を示す（２１２０）。右上の隅には、ユーザが家のバーチャルリアリティコンテンツにアクセスするために選択できる、リンクされた画像２１２３がある。ユーザは、グローブなどの周辺装置を使用して、手を伸ばしてリンクされた画像２１２３に触れてもよい。いくつかの実現化例では、コンテンツシステム１７１は、マウスを使用してオブジェクトをクリックするのと同様に人差し指でタップするなど、リンクされた画像２１２３にアクセスするための特定の動きを認識する。ユーザはまた、マウスなどの周辺装置にアクセスし、スクリーン上にカーソルを位置付けて、リンクされた画像２１２３を選択してもよい。
【０３０７】
図２２Ａ〜図２２Ｃは、いくつかの実現化例に従った、バーチャルリアリティコンテンツを生成するために画像フレームおよび音声データを集約するための例示的な方法２２００を示す。方法２２００は、図１Ｂおよび図２０に関して説明される。別々のブロックとして図示されているが、さまざまなブロックは、所望の実施形態に依存して、追加のブロックになるよう分割されてもよく、より少ないブロックになるよう組合わされてもよく、または削除されてもよい。
【０３０８】
図２２Ａを参照して、較正モジュール２００４は、カメラアレイ１０１におけるカメラモジュール１０３を較正する（２２０２）。通信モジュール２００２は、カメラモジュール１０３から画像フレームを記述する未加工映像データを受信する（２２０４）。通信モジュール２００２は、マイクロホンアレイ１０７から未加工音声データを受信する（２２０６）。映像モジュール２００８は、カメラモジュール１０３の各々に関連付けられた位置およびタイミングを識別する（２２０８）。映像モジュール２００８は、カメラモジュール１０３に関連付けられた位置およびタイミングに基づいて、画像フレームを同期させる（２２１０）。カメラマッピングモジュール２００６は、左カメラマップおよび右カメラマップを構築する（２２１２）。左カメラマップは、左パノラマ画像における画素のための整合カメラモジュール１０３を識別する。たとえば、パノラマにおける点を表わす左パノラマ画像における画素のために、左カメラマップは、他のカメラモジュール１０３よりもその点へのより良好なビューを有する整合カメラモジュール１０３を識別する。同様に、右カメラマップは、右パノラマ画像における画素のための整合カメラモジュール１０３を識別する。
【０３０９】
図２２Ｂを参照して、映像モジュール２００８は、左カメラマップに基づいて、画像フレームから左パノラマ画像のストリームを生成する（２２１４）。たとえば、映像モジュール２００８は、左カメラマップに基づいて、左パノラマ画像における画素のための整合カメラモジュール１０３を識別する。特定の時間について、映像モジュール２００８は、特定の時間フレームのための左パノラマ画像を形成するために、対応する整合カメラモジュール１０３からその特定の時間に同期された画像フレームをつなぎ合わせる。補正モジュール２０１０は、左パノラマ画像における色欠陥を補正する（２２１６）。補正モジュール２０１０は、左パノラマ画像におけるつなぎ合わせエラーを補正する（２２１８）。
【０３１０】
映像モジュール２００８は、右カメラマップに基づいて、画像フレームから右パノラマ画像のストリームを生成する（２２２０）。たとえば、映像モジュール２００８は、右カメラマップに基づいて、右パノラマ画像における画素のための整合カメラモジュール１０３を識別する。特定の時間について、映像モジュール１０８は、その特定の時間のための右パノラマ画像を形成するために、対応する整合カメラモジュール１０３からその特定の時間に同期された画像フレームをつなぎ合わせる。補正モジュール２０１０は、右パノラマ画像における色欠陥を補正する（２２２２）。補正モジュール２０１０は、右パノラマ画像におけるつなぎ合わせエラーを補正する（２２２４）。
【０３１１】
図２２Ｃを参照して、ストリーム組合せモジュール２０１４は、３Ｄ映像データの圧縮されたストリームを生成するために、左パノラマ画像のストリームおよび右パノラマ画像のストリームを圧縮する（２２２６）。音声モジュール２０１２は、未加工音声データから３Ｄ音声データのストリームを生成する（２２２８）。ストリーム組合せモジュール２０１４は、３Ｄ映像データの圧縮されたストリームおよび３Ｄ音声データのストリームを含むＶＲコンテンツを生成する（２２３０）。いくつかの実現化例では、ストリーム組合せモジュール２０１４はまた、３Ｄ音声データの圧縮されたストリームを形成するために３Ｄ音声データのストリームを圧縮してもよく、ＶＲコンテンツは、３Ｄ映像データの圧縮されたストリームおよび３Ｄ音声データの圧縮されたストリームを含んでいてもよい。
【０３１２】
図２３は、バーチャルリアリティシステムにおいて広告を生成するための例示的な方法２３００を示す。方法２３００は、図１Ｂおよび図２０に関して説明される。別々のブロックとして図示されているが、さまざまなブロックは、所望の実施形態に依存して、追加のブロックになるよう分割されてもよく、より少ないブロックになるよう組合わされてもよく、または削除されてもよい。
【０３１３】
ストリーム組合せモジュール２０１４は、３次元映像データのストリームおよび３次元音声データのストリームを含むバーチャルリアリティコンテンツを生成する（２３０２）。ストリーム組合せモジュール２０１４は、バーチャルリアリティコンテンツをユーザに提供する（２３０４）。広告モジュール２０１６は、バーチャルリアリティコンテンツでのユーザの凝視の位置を検出する（２３０６）。たとえば、広告モジュール２０１６は、鑑賞システム１３３からユーザ凝視情報を受信し、または、広告モジュール２０１６は、ユーザが通常、バーチャルリアリティコンテンツのどこに見るかに関する統計情報を使用する。広告モジュール２０１６は、ユーザの凝視の位置に基づいて、第１の広告を示唆する（２３０８）。たとえば、広告モジュール２０１６は、ユーザが最もよく見るところに広告を配置すべきであると判断する。別の例では、広告モジュール２０１６は、広告がバーチャルリアリティコンテンツを妨げないように、ユーザがそれほど頻繁に見ない位置に広告を配置すべきであると判断する。
【０３１４】
いくつかの実現化例では、広告モジュール２０１６は、ユーザの凝視の位置に基づいて、広告を表示するための費用を決定する（２３１０）。たとえば、ユーザがよりよく見る領域については、費用はより高くなるであろう。いくつかの実現化例では、広告モジュール２０１６は、第２の広告にリンクされるバーチャルリアリティコンテンツの一部として、グラフィカルオブジェクトを提供する（２３１２）。たとえば、グラフィカルオブジェクトは、第２の広告にアクセスするためにユーザが触れることのできるソーダ缶を含む。第２の広告は、オブジェクト上に現われるポップアップウィンドウなど、バーチャルリアリティコンテンツの一部として表示されてもよく、または、第２の広告は、ユーザがグラフィカルオブジェクトに触れることに応答して広告サーバ１４１によって起動される別のアプリケーションの一部であってもよい。
【０３１５】
図２４は、バーチャルリアリティコンテンツに基づいてソーシャルネットワークを生成するための例示的な方法２４００を示す。方法２４００は、図１Ｂおよび図２０に関して説明される。別々のブロックとして図示されているが、さまざまなブロックは、所望の実施形態に依存して、追加のブロックになるよう分割されてもよく、より少ないブロックになるよう組合わされてもよく、または削除されてもよい。方法２４００は、ソーシャルネットワークアプリケーション１３７が、コンテンツシステム１７１とは別個のソーシャルネットワークサーバ１３５に対してステップを行なうものとして説明されるが、方法ステップはまた、コンテンツシステム１７１の一部であるソーシャルモジュール２０１８によって行なわれてもよい。
【０３１６】
ソーシャルネットワークアプリケーション１３７は、第１のユーザのための３次元映像データのストリームおよび３次元音声データのストリームを含むバーチャルリアリティコンテンツを、コンテンツシステム１７１から受信する（２４０２）。ソーシャルネットワークアプリケーション１３７は、第１のユーザのためにソーシャルネットワークを生成する（２４０４）。たとえば、ソーシャルネットワークは、共有の属性に基づいてユーザをつなげる。ソーシャルネットワークアプリケーション１３７は、バーチャルリアリティコンテンツとのユーザのやりとりを含むソーシャルグラフを生成する（２４０６）。たとえば、ユーザは、ユーザがバーチャルリアリティの世界内で互いに連絡をとることに基づいて、ソーシャルネットワークにおいてつなげられる。いくつかの実現化例では、ソーシャルネットワークアプリケーション１３７は、つながったユーザが同じバーチャルリアリティコンテンツを見るためのリンクを生成する。たとえば、ユーザは、コンテンツシステム１７１を開始するために、ソーシャルネットワークにおけるボタンをクリックしてもよい。
【０３１７】
一実施形態では、ソーシャルネットワークアプリケーション１３７は、バーチャルリアリティコンテンツに基づいて、第１のユーザと第２のユーザとのつながりを示唆する（２４０８）。たとえば、第１および第２のユーザが同じバーチャルリアリティコンテンツを見る場合、ソーシャルネットワークアプリケーション１３７は示唆をする。別の実施形態では、ソーシャルネットワークアプリケーション１３７は、バーチャルリアリティコンテンツに基づいて、ソーシャルネットワークに関連付けられたグループを示唆する（２４１０）。たとえば、ソーシャルネットワークアプリケーション１３７は、ユーザが見るバーチャルリアリティコンテンツの一部でもある主題に関するグループを示唆する。ソーシャルネットワークアプリケーション１３７は、第１のユーザがバーチャルリアリティコンテンツとやりとりすることに基づいて、ソーシャルネットワーク更新を自動的に生成してもよい（２４１２）。たとえば、ソーシャルネットワークアプリケーション１３７は、ユーザがストリームを開始した場合、目標を達成した場合などに更新を生成する。ソーシャルネットワークアプリケーション１３７は、バーチャルリアリティコンテンツの一部として表示された広告を第１のユーザが凝視することに関する情報をソーシャルグラフに格納してもよい（２４１４）。いくつかの実現化例では、ソーシャルネットワークアプリケーション１３７は、その情報を使用してソーシャルネットワーク内に広告を表示する。
【０３１８】
図２５は、バーチャルリアリティコンテンツを分析するための例示的な方法２５００を示す。方法２５００は、図１Ｂおよび図２０に関して説明される。別々のブロックとして図示されているが、さまざまなブロックは、所望の実施形態に依存して、追加のブロックになるよう分割されてもよく、より少ないブロックになるよう組合わされてもよく、または削除されてもよい。
【０３１９】
ストリーム組合せモジュール２０１４は、３次元映像データのストリームおよび３次元音声データのストリームを含むバーチャルリアリティコンテンツをユーザに提供する（２５０２）。ストリームが表示された後、コンテンツモジュール２０５６は、たとえば鑑賞システム１３３からユーザ凝視に関する情報を受信する。コンテンツモジュール２０５６は、バーチャルリアリティコンテンツのユーザ凝視の位置を判断し（２５０４）、位置ごとのユーザ凝視の数に基づいて、別々の色を含むヒートマップを生成する（２５０６）。たとえば、ヒートマップは、最もよく見られる区域を示すために赤を使用し、それほどよく見られない区域を示すためにオレンジを使用し、最もよく見られない区域を示すために黄色を使用する。一実施形態では、コンテンツモジュール２０５６は、バーチャルリアリティ体験のプレイリストを生成する（２５０８）。たとえば、プレイリストは、最も見られたバーチャルリアリティコンテンツ、最も高く格付けされたバーチャルリアリティコンテンツ、特定の領域についてのプレイリスト、またはある主題の専門家からのプレイリストを含む。
【０３２０】
ここに説明された実現化例は、以下により詳細に述べられるようなさまざまなコンピュータハードウェアまたはソフトウェアモジュールを含む専用または汎用コンピュータの使用を含んでいてもよい。
【０３２１】
ここに説明された実現化例は、格納されたコンピュータ実行可能命令またはデータ構造を担持しまたは有するためのコンピュータ読取可能媒体を使用して実現されてもよい。そのようなコンピュータ読取可能媒体は、汎用または専用コンピュータによってアクセスされ得る任意の利用可能な媒体であってもよい。限定のためではなく例として、そのようなコンピュータ読取可能媒体は、コンピュータ実行可能命令またはデータ構造の形をした所望のプログラムコードを担持するかまたは格納するために使用され、汎用または専用コンピュータによってアクセスされ得る、ランダムアクセスメモリ（ＲＡＭ）、読出専用メモリ（Read-Only Memory：ＲＯＭ）、電気的消去可能プログラム可能読出専用メモリ（Electrically Erasable Programmable Read-Only Memory：ＥＥＰＲＯＭ）、コンパクトディスク読出専用メモリ（Compact Disc Read-Only Memory：ＣＤ−ＲＯＭ）または他の光学ディスクストレージ、磁気ディスクストレージまたは他の磁気記憶装置、フラッシュメモリ装置（たとえば、固体メモリ装置）、もしくは任意の他の記憶媒体を含む有形のコンピュータ読取可能記憶媒体を含んでいてもよい。上述のものの組合せも、コンピュータ読取可能媒体の範囲内に含まれていてもよい。
【０３２２】
コンピュータ実行可能命令は、たとえば、汎用コンピュータ、専用コンピュータ、または専用処理装置（たとえば、１つ以上のプロセッサ）にある機能または機能群を行なわせる命令およびデータを含む。構造的特徴および／または方法論的行為に特有の文言で主題を説明してきたが、添付された請求項で定義される主題は上述の特定の特徴または行為に必ずしも限定されないということが理解されるべきである。むしろ、上述の特定の特徴および行為は、請求項を実現する例示的な形として開示されている。
【０３２３】
ここに使用されるように、「モジュール」または「構成要素」という用語は、コンピューティングシステムのモジュールまたは構成要素、および／または、汎用ハードウェア（たとえば、コンピュータ読取可能媒体、処理装置など）に格納され、および／または汎用ハードウェアによって実行され得るソフトウェアオブジェクトまたはソフトウェアルーチンの動作を行なうように構成された特定のハードウェア実現化例を指していてもよい。いくつかの実現化例では、ここに説明された異なる構成要素、モジュール、エンジン、およびサービスは、（たとえば別々のスレッドとして）コンピューティングシステム上で実行されるオブジェクトまたはプロセスとして実現されてもよい。ここに説明されたシステムおよび方法の一部は概して、（汎用ハードウェアに格納され、および／または汎用ハードウェアによって実行される）ソフトウェアで実現されると説明されているが、特定のハードウェア実現化例、またはソフトウェアと特定のハードウェア実現化例との組合せも可能であり、考えられる。この説明では、「コンピューティングエンティティ」とは、ここにこれまで定義されたような任意のコンピューティングシステム、もしくは、コンピューティングシステム上で実行される任意のモジュールまたはモジュールの組合せであってもよい。
【０３２４】
ここに記載されたすべての例および条件付き文言は、技術の促進のために発明者によって寄与された開示および概念を読者が理解するのを助けるという教育上の目的のために意図されており、そのような具体的に記載された例および条件に限定されないと解釈されるべきである。この開示の実現化例を詳細に説明してきたが、開示の精神および範囲から逸脱することなく、さまざまな変更、置換え、および変形をここに行なうことができる、ということが理解され得る。
【図１Ａ】
2016537903.tif 000004
【図１Ｂ】
2016537903.tif 000005
【図２】
2016537903.tif 000006
【図３】
2016537903.tif 000007
【図４Ａ】
2016537903.tif 000008
【図４Ｂ】
2016537903.tif 000009
【図４Ｃ】
2016537903.tif 000010
【図５】
2016537903.tif 000011
【図６Ａ】
2016537903.tif 000012
【図６Ｂ】
2016537903.tif 000013
【図７Ａ】
2016537903.tif 000014
【図７Ｂ】
2016537903.tif 000015
【図８】
2016537903.tif 000016
【図９Ａ】
2016537903.tif 000017
【図９Ｂ】
2016537903.tif 000018
【図１０Ａ】
2016537903.tif 000019
【図１０Ｂ】
2016537903.tif 000020
【図１０Ｃ】
2016537903.tif 000021
【図１１】
2016537903.tif 000022
【図１２Ａ】
2016537903.tif 000023
【図１２Ｂ】
2016537903.tif 000024
【図１３Ａ】
2016537903.tif 000025
【図１３Ｂ】
2016537903.tif 000026
【図１４Ａ】
2016537903.tif 000027
【図１４Ｂ】
2016537903.tif 000028
【図１５Ａ】
2016537903.tif 000029
【図１５Ｂ】
2016537903.tif 000030
【図１６Ａ】
2016537903.tif 000031
【図１６Ｂ】
2016537903.tif 000032
【図１６Ｃ】
2016537903.tif 000033
【図１７Ａ】
2016537903.tif 000034
【図１７Ｂ】
2016537903.tif 000035
【図１７Ｃ】
2016537903.tif 000036
【図１８】
2016537903.tif 000037
【図１９】
2016537903.tif 000038
【図２０】
2016537903.tif 000039
【図２１Ａ】
2016537903.tif 000040
【図２１Ｂ】
2016537903.tif 000041
【図２１Ｃ】
2016537903.tif 000042
【図２１Ｄ】
2016537903.tif 000043
【図２２Ａ】
2016537903.tif 000044
【図２２Ｂ】
2016537903.tif 000045
【図２２Ｃ】
2016537903.tif 000046
【図２３】
2016537903.tif 000047
【図２４】
2016537903.tif 000048
【図２５】
2016537903.tif 000049
【手続補正書】
【提出日】平成28年4月20日(2016.4.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータにより実現される方法であって、
カメラモジュールから画像フレームを記述する映像データを受信するステップと、
マイクロホンアレイから音声データを受信するステップと、
集約を行なうようにプログラミングされたプロセッサベースのコンピューティング装置によって、３次元（３Ｄ）映像データのストリームを生成するために前記画像フレームを集約するステップとを含み、前記３Ｄ映像データのストリームは、左パノラマ画像のストリームおよび右パノラマ画像のストリームを含み、前記方法はさらに、
前記音声データから３Ｄ音声データのストリームを生成するステップと、
前記３Ｄ映像データのストリームおよび前記３Ｄ音声データのストリームを含むバーチャルリアリティコンテンツを生成するステップとを含む、方法。
【請求項２】
前記３Ｄ映像データのストリームを生成するために前記画像フレームを集約するステップは、
左カメラマップに基づいて、左パノラマ画像のための第１の整合カメラモジュールを識別するステップと、
右カメラマップに基づいて、右パノラマ画像のための第２の整合カメラモジュールを識別するステップと、
前記左パノラマ画像のストリームにおける対応する左パノラマ画像を形成するために、特定の時間に前記第１の整合カメラモジュールによって取り込まれた第１の画像フレームをつなぎ合わせるステップと、
前記右パノラマ画像のストリームにおける対応する右パノラマ画像を形成するために、特定の時間に前記第２の整合カメラモジュールによって取り込まれた第２の画像フレームをつなぎ合わせるステップとを含む、請求項１に記載の方法。
【請求項３】
パノラマにおける、ヨー値およびピッチ値を有する画素のために、
前記左カメラマップは、前記パノラマにおける前記画素のための第１の整合カメラモジュールを識別して、前記パノラマにおける前記画素を前記第１の整合カメラモジュールの画像平面における画素に整合させ、
前記右カメラマップは、前記パノラマにおける前記画素のための第２の整合カメラモジュールを識別して、前記パノラマにおける前記画素を前記第２の整合カメラモジュールの画像平面における画素に整合させる、請求項２に記載の方法。
【請求項４】
前記左カメラマップは、左パノラマ画像における画素位置を対応する第１の整合カメラモジュールに関連付け、前記画素位置は、左視方向におけるパノラマの点に対応しており、
前記対応する第１の整合カメラモジュールは、前記パノラマの前記点への視方向を含む視野を有し、
前記対応する第１の整合カメラモジュールの前記視方向は、他のカメラモジュールに関連付けられた他の視方向よりも、前記左視方向に近い、請求項２に記載の方法。
【請求項５】
前記３Ｄ映像データのストリームを生成するために前記画像フレームを集約するステップは、
ユーザに関連付けられた現在の視方向を判断するステップと、
前記現在の視方向に基づいて、前記左パノラマ画像のストリームおよび前記右パノラマ画像のストリームを生成するステップとを含む、請求項１に記載の方法。
【請求項６】
前記左パノラマ画像は、前記ユーザの前記現在の視方向において、前記現在の視方向とは反対の第２の視方向よりも高い解像度を有し、
前記右パノラマ画像は、前記ユーザの前記現在の視方向において、前記現在の視方向とは反対の前記第２の視方向よりも高い解像度を有する、請求項５に記載の方法。
【請求項７】
前記左パノラマ画像および前記右パノラマ画像における色欠陥を補正するステップと、
前記左パノラマ画像および前記右パノラマ画像におけるつなぎ合わせエラーを補正するステップとをさらに含む、請求項１に記載の方法。
【請求項８】
１つ以上のプロセッサと、
１つ以上の有形の非一時的なコンピュータ読取可能媒体とを含む、システムであって、前記コンピュータ読取可能媒体は、前記１つ以上のプロセッサに通信可能に結合され、以下の動作を行なうために前記１つ以上のプロセッサによって実行可能な実行可能命令を格納しており、前記以下の動作は、
カメラモジュールから画像フレームを記述する映像データを受信することと、
マイクロホンアレイから音声データを受信することと、
左パノラマ画像のストリームおよび右パノラマ画像のストリームを含む３Ｄ映像データのストリームを集約することと、
前記音声データから３Ｄ音声データのストリームを生成することと、
前記３Ｄ映像データのストリームおよび前記３Ｄ音声データのストリームを含むバーチャルリアリティコンテンツを生成することとを含む、システム。
【請求項９】
前記１つ以上のプロセッサによって実行可能な前記命令は、
左カメラマップに基づいて、左パノラマ画像のための第１の整合カメラモジュールを識別し、
右カメラマップに基づいて、右パノラマ画像のための第２の整合カメラモジュールを識別し、
前記左パノラマ画像のストリームにおける対応する左パノラマ画像を形成するために、特定の時間に前記第１の整合カメラモジュールによって取り込まれた第１の画像フレームをつなぎ合わせ、
前記右パノラマ画像のストリームにおける対応する右パノラマ画像を形成するために、特定の時間に前記第２の整合カメラモジュールによって取り込まれた第２の画像フレームをつなぎ合わせることにより、
前記３Ｄ映像データのストリームを生成するために前記画像フレームを集約する、請求項８に記載のシステム。
【請求項１０】
パノラマにおける、ヨー値およびピッチ値を有する画素のために、
前記左カメラマップは、前記パノラマにおける前記画素のための第１の整合カメラモジュールを識別して、前記パノラマにおける前記画素を前記第１の整合カメラモジュールの画像平面における画素に整合させ、
前記右カメラマップは、前記パノラマにおける前記画素のための第２の整合カメラモジュールを識別して、前記パノラマにおける前記画素を前記第２の整合カメラモジュールの画像平面における画素に整合させる、請求項９に記載のシステム。
【請求項１１】
前記左カメラマップは、左パノラマ画像における画素位置を対応する第１の整合カメラモジュールに関連付け、前記画素位置は、左視方向におけるパノラマの点に対応しており、
前記対応する第１の整合カメラモジュールは、前記パノラマの前記点への視方向を含む視野を有し、
前記対応する第１の整合カメラモジュールの前記視方向は、他のカメラモジュールに関連付けられた他の視方向よりも、前記左視方向に近い、請求項９に記載のシステム。
【請求項１２】
前記１つ以上のプロセッサによって実行可能な前記命令は、
ユーザに関連付けられた現在の視方向を判断し、
前記現在の視方向に基づいて、前記左パノラマ画像のストリームおよび前記右パノラマ画像のストリームを生成することにより、
前記３Ｄ映像データのストリームを生成するために前記画像フレームを集約する、請求項８に記載のシステム。
【請求項１３】
前記左パノラマ画像は、前記ユーザの前記現在の視方向において、前記現在の視方向とは反対の第２の視方向よりも高い解像度を有し、
前記右パノラマ画像は、前記ユーザの前記現在の視方向において、前記現在の視方向とは反対の前記第２の視方向よりも高い解像度を有する、請求項１２に記載のシステム。
【請求項１４】
前記１つ以上のプロセッサによって実行可能な前記命令は、
前記左パノラマ画像および前記右パノラマ画像における色欠陥を補正することと、
前記左パノラマ画像および前記右パノラマ画像におけるつなぎ合わせエラーを補正することとをさらに含む動作を行なう、請求項８に記載のシステム。
【請求項１５】
コンピュータ読取可能プログラムを含む非一時的なコンピュータ使用可能媒体を含む、コンピュータプログラム製品であって、前記コンピュータ読取可能プログラムは、コンピュータ上で実行されると、前記コンピュータに以下のステップを行なわせ、前記以下のステップは、
カメラモジュールから画像フレームを記述する映像データを受信するステップと、
マイクロホンアレイから音声データを受信するステップと、
３次元（３Ｄ）映像データのストリームを生成するために前記画像フレームを集約するステップとを含み、前記３Ｄ映像データのストリームは、左パノラマ画像のストリームおよび右パノラマ画像のストリームを含み、前記以下のステップはさらに、
前記音声データから３Ｄ音声データのストリームを生成するステップと、
前記３Ｄ映像データのストリームおよび前記３Ｄ音声データのストリームを含むバーチャルリアリティコンテンツを生成するステップとを含む、コンピュータプログラム製品。
【請求項１６】
前記３Ｄ映像データのストリームを生成するために前記画像フレームを集約するステップは、
左カメラマップに基づいて、左パノラマ画像のための第１の整合カメラモジュールを識別するステップと、
右カメラマップに基づいて、右パノラマ画像のための第２の整合カメラモジュールを識別するステップと、
前記左パノラマ画像のストリームにおける対応する左パノラマ画像を形成するために、特定の時間に前記第１の整合カメラモジュールによって取り込まれた第１の画像フレームをつなぎ合わせるステップと、
前記右パノラマ画像のストリームにおける対応する右パノラマ画像を形成するために、特定の時間に前記第２の整合カメラモジュールによって取り込まれた第２の画像フレームをつなぎ合わせるステップとを含む、請求項１５に記載のコンピュータプログラム製品。。
【請求項１７】
パノラマにおける、ヨー値およびピッチ値を有する画素のために、
前記左カメラマップは、前記パノラマにおける前記画素のための第１の整合カメラモジュールを識別して、前記パノラマにおける前記画素を前記第１の整合カメラモジュールの画像平面における画素に整合させ、
前記右カメラマップは、前記パノラマにおける前記画素のための第２の整合カメラモジュールを識別して、前記パノラマにおける前記画素を前記第２の整合カメラモジュールの画像平面における画素に整合させる、請求項１６に記載のコンピュータプログラム製品。
【請求項１８】
前記左カメラマップは、左パノラマ画像における画素位置を対応する第１の整合カメラモジュールに関連付け、前記画素位置は、左視方向におけるパノラマの点に対応しており、
前記対応する第１の整合カメラモジュールは、前記パノラマの前記点への視方向を含む視野を有し、
前記対応する第１の整合カメラモジュールの前記視方向は、他のカメラモジュールに関連付けられた他の視方向よりも、前記左視方向に近い、請求項１６に記載のコンピュータプログラム製品。
【請求項１９】
前記３Ｄ映像データのストリームを生成するために前記画像フレームを集約するステップは、
ユーザに関連付けられた現在の視方向を判断するステップと、
前記現在の視方向に基づいて、前記左パノラマ画像のストリームおよび前記右パノラマ画像のストリームを生成するステップとを含む、請求項１５に記載のコンピュータプログラム製品。
【請求項２０】
前記左パノラマ画像は、前記ユーザの前記現在の視方向において、前記現在の視方向とは反対の第２の視方向よりも高い解像度を有し、
前記右パノラマ画像は、前記ユーザの前記現在の視方向において、前記現在の視方向とは反対の前記第２の視方向よりも高い解像度を有する、請求項１９に記載のコンピュータプログラム製品。
【国際調査報告】
2016537903.tif 000050
2016537903.tif 000051