(57)【要約】画像コンテンツを生成することに関する技法が説明される。グラフィックス処理ユニット（ＧＰＵ）が、第１のロケーションにおける第１のカメラデバイスから生成された第１のセットの画像を受信することと、第１のカメラデバイスは、第１の方向付けを有し、方向付け基準に方向付けられた第１のセットの画像を表示のためにレンダリングすることと、第２の異なるロケーションにおける第２の異なるカメラデバイスから生成された第２の異なるセットの画像を受信することと、第２のカメラデバイスは、第２の方向付けを有し、第２の方向付けは、第１の方向付けとは異なっており、方向付け基準に方向付けられた第２のセットの画像を表示のためにレンダリングすることとを行うように構成される。
2020502893.tif 000002
【特許請求の範囲】
【請求項１】
画像コンテンツを生成するための方法であって、前記方法は、
第１のロケーションにおける第１のカメラデバイスから生成された第１のセットの画像を受信することと、前記第１のカメラデバイスは、第１の方向付けを有し、
方向付け基準に方向付けられた前記第１のセットの画像を表示のためにレンダリングすることと、
第２の異なるロケーションにおける第２の異なるカメラデバイスから生成された第２の異なるセットの画像を受信することと、前記第２のカメラデバイスは、第２の方向付けを有し、前記第２の方向付けは、前記第１の方向付けとは異なっており、
前記方向付け基準に方向付けられた前記第２のセットの画像を表示のためにレンダリングすることと
を備える、方法。
【請求項２】
前記第１のセットの画像が表示のためにレンダリングされるとき、観視者の視線または頭部の位置を決定すること
をさらに備え、
ここにおいて、前記方向付け基準は、前記観視者の前記決定された視線または頭部の位置に基づいて選択される、
請求項１に記載の方法。
【請求項３】
前記方向付け基準は、地理的な方向を備える、請求項１に記載の方法。
【請求項４】
前記第１のセットの画像を表示のためにレンダリングすることは、前記第１のカメラデバイスに対して第１の地理的な方向に位置する画像コンテンツが、前記第１のセットの画像のレンダリングされた画像内の第１の座標に位置するように、前記第１のセットの画像を表示のためにレンダリングすることを備え、前記第２のセットの画像を表示のためにレンダリングすることは、前記第２のカメラデバイスに対して第２の地理的な方向に位置する画像コンテンツが、前記第２のセットの画像のレンダリングされた画像内の第２の座標に位置するように、前記第２のセットの画像を表示のためにレンダリングすることを備え、前記第１の地理的な方向および前記第２の地理的な方向は、同じ地理的な方向であり、前記第１の座標および前記第２の座標は、同じ座標である、請求項１に記載の方法。
【請求項５】
前記第２のセットの画像を表示のためにレンダリングすることは、前記レンダリングされた第１のセットの画像の表示から、前記第２のセットの画像を表示のためにレンダリングすることに切り替わることを備える、請求項１に記載の方法。
【請求項６】
前記第１のセットの画像に対する前記方向付け基準を示す情報を受信することと、
前記第２のセットの画像に対する前記方向付け基準を示す情報を受信することと、
前記第１のセットの画像に対する前記方向付け基準を示す前記情報に基づいて、前記第１のセットの画像の方向付けを調整することと、
前記第２のセットの画像に対する前記方向付け基準を示す前記情報に基づいて、前記第２のセットの画像の方向付けを調整することと、
をさらに備え、
ここにおいて、前記第１のセットの画像を表示のためにレンダリングすることは、前記調整された方向付けを有する前記第１のセットの画像を表示のためにレンダリングすることを備え、
ここにおいて、前記第２のセットの画像を表示のためにレンダリングすることは、前記調整された方向付けを有する前記第２のセットの画像を表示のためにレンダリングすることを備える、
請求項１に記載の方法。
【請求項７】
前記第１のセットの画像を受信することは、前記方向付け基準に方向付けられた前記第１のセットの画像を受信することを備え、前記第２のセットの画像を受信することは、前記方向付け基準に方向付けられた前記第２のセットの画像を受信することを備える、請求項１に記載の方法。
【請求項８】
前記方向付け基準は、第１の方向付け基準を備え、前記第１のセットの画像を表示のためにレンダリングすることは、前記第１の方向付け基準および第２の方向付け基準に方向付けられた前記第１のセットの画像を表示のためにレンダリングすることを備え、前記第２のセットの画像を表示のためのレンダリングすることは、前記第１の方向付けおよび前記第２の方向付け基準に方向付けられた前記第２のセットの画像を表示のためにレンダリングすることを備える、請求項１に記載の方法。
【請求項９】
前記第１のセットの画像を表示のためにレンダリングすることは、前記第１の方向付け基準、前記第２の方向付け基準、および第３の方向付け基準に方向付けられた前記第１のセットの画像を表示のためにレンダリングすることを備え、前記第２のセットの画像を表示のためにレンダリングすることは、前記第１の方向付け基準、前記第２の方向付け基準、および前記第３の方向付け基準に方向付けられた前記第２のセットの画像を表示のためにレンダリングすることを備える、請求項８に記載の方法。
【請求項１０】
前記第１のカメラデバイスは、複数のレンズを備え、前記第２のカメラデバイスは、複数のレンズを備え、前記第１のセットの画像を受信することは、前記第１のカメラデバイスの前記複数のレンズのうちの少なくとも２つのレンズによってキャプチャされた画像コンテンツから生成された前記第１のセットの画像を受信することを備え、前記第２のセットの画像を受信することは、前記第２のカメラデバイスの前記複数のレンズのうちの少なくとも２つのレンズによってキャプチャされた画像コンテンツから生成された前記第２のセットの画像を受信することを備える、請求項１に記載の方法。
【請求項１１】
前記第１のセットの画像を受信することは、前記第１のカメラデバイスの魚眼レンズによってキャプチャされた複数の正距円筒画像を受信することを備え、前記第２のセットの画像を受信することは、前記第２のカメラデバイスの魚眼レンズによってキャプチャされた複数の正距円筒画像を受信することを備える、請求項１に記載の方法。
【請求項１２】
前記第１のセットの画像および前記第２のセットの画像は、同時に生成される、請求項１に記載の方法。
【請求項１３】
前記第２のセットの画像を表示のためにレンダリングすることは、共通のシーンコンテンツが、前記レンダリングされた第１のセットの画像における前記共通のシーンコンテンツのロケーションと同じロケーションにおいて、前記レンダリングされた第２のセット画像において表示されるように、前記第１のセットの画像と前記第２のセットの画像との両方に共通のシーンコンテンツをレンダリングすることを備える、請求項１に記載の方法。
【請求項１４】
画像コンテンツを生成するためのデバイスであって、前記デバイスは、
第１のロケーションにおける第１のカメラデバイスから生成された第１のセットの画像を記憶することと、前記第１のカメラデバイスは、第１の方向付けを有し、
第２の異なるロケーションにおける第２の異なるカメラデバイスから生成された第２の異なるセットの画像を記憶することと、前記第２のカメラデバイスは、第２の方向付けを有し、前記第２の方向付けは、前記第１の方向付けとは異なっている、
を行うように構成されたメモリデバイスと、
固定機能回路またはプログラマブル回路のうちの少なくとも１つを備えるグラフィックス処理ユニット（ＧＰＵ）と、前記ＧＰＵは、
前記メモリデバイスから前記第１のセットの画像を受信することと、
方向付け基準に方向付けられた前記第１のセットの画像を表示のためにレンダリングすることと、
前記メモリデバイスから前記第２のセットの画像を受信することと、
前記方向付け基準に方向付けられた前記第２のセットの画像を表示のためにレンダリングすることと
を行うように構成される、
を備える、デバイス。
【請求項１５】
前記第１のセットの画像が表示のためにレンダリングされるとき、観視者の視線または頭部の位置を決定するように構成された追跡回路
をさらに備え、
ここにおいて、前記方向付け基準は、前記観視者の前記決定された視線または頭部の位置に基づいて選択される、
請求項１４に記載のデバイス。
【請求項１６】
前記第１のセットの画像を表示のためにレンダリングするために、前記ＧＰＵは、前記第１のカメラデバイスに対して第１の地理的な方向に位置する画像コンテンツが、前記第１のセットの画像のレンダリングされた画像内の第１の座標に位置するように、前記第１のセットの画像を表示のためにレンダリングするように構成され、前記第２のセットの画像を表示のためにレンダリングするために、前記ＧＰＵは、前記第２のカメラデバイスに対して第２の地理的な方向に位置する画像コンテンツが、前記第２のセットの画像のレンダリングされた画像内の第２の座標に位置するように、前記第２のセットの画像を表示のためにレンダリングするように構成され、前記第１の地理的な方向および前記第２の地理的な方向は、同じ地理的な方向であり、前記第１の座標および前記第２の座標は、同じ座標である、請求項１４に記載のデバイス。
【請求項１７】
前記第２のセットの画像を表示のためにレンダリングするために、前記ＧＰＵは、前記第１のセットの画像の表示のためにレンダリングすることから、前記第２のセットの画像を表示のためにレンダリングすることに切り替わるように構成される、請求項１４に記載のデバイス。
【請求項１８】
前記ＧＰＵは、
前記第１のセットの画像に対する前記方向付け基準を示す情報を受信することと、
前記第２のセットの画像に対する前記方向付け基準を示す情報を受信することと、
前記第１のセットの画像に対する前記方向付け基準を示す前記情報に基づいて、前記第１のセットの画像の方向付けを調整することと、
前記第２のセットの画像に対する前記方向付け基準を示す前記情報に基づいて、前記第２のセットの画像の方向付けを調整することと
を行うように構成され、
ここにおいて、前記第１のセットの画像を表示のためにレンダリングするために、前記ＧＰＵは、前記調整された方向付けを有する前記第１のセットの画像を表示のためにレンダリングするように構成され、
ここにおいて、前記第２のセットの画像を表示のためにレンダリングするために、前記ＧＰＵは、前記調整された方向付けを有する前記第２のセットの画像を表示のためにレンダリングするように構成される、
請求項１４に記載のデバイス。
【請求項１９】
前記ＧＰＵは、前記方向付け基準に方向付けられた前記第１のセットの画像を受信し、前記方向付け基準に方向付けられた前記第２のセットの画像を受信するように構成される、請求項１４に記載のデバイス。
【請求項２０】
前記方向付け基準は、第１の方向付け基準を備え、前記第１のセットの画像を表示のためにレンダリングするために、前記ＧＰＵは、前記第１の方向付け基準および第２の方向付け基準に方向付けられた前記第１のセットの画像を表示のためにレンダリングするように構成され、前記第２のセットの画像を表示のためのレンダリングするために、前記ＧＰＵは、前記第１の方向付けおよび前記第２の方向付け基準に方向付けられた前記第２のセットの画像を表示のためにレンダリングするように構成される、請求項１４に記載のデバイス。
【請求項２１】
前記第１のセットの画像を表示のためにレンダリングするために、前記ＧＰＵは、前記第１の方向付け基準、前記第２の方向付け基準、および第３の方向付け基準に方向付けられた前記第１のセットの画像を表示のためにレンダリングするように構成され、前記第２のセットの画像を表示のためにレンダリングするために、前記ＧＰＵは、前記第１の方向付け基準、前記第２の方向付け基準、および前記第３の方向付け基準に方向付けられた前記第２のセットの画像を表示のためにレンダリングするように構成される、請求項２０に記載のデバイス。
【請求項２２】
前記第１のカメラデバイスは、複数のレンズを備え、前記第２のカメラデバイスは、複数のレンズを備え、前記第１のセットの画像を受信するために、前記ＧＰＵは、前記第１のカメラデバイスの前記複数のレンズのうちの少なくとも２つのレンズによってキャプチャされた画像コンテンツから生成された前記第１のセットの画像を受信するように構成され、前記第２のセットの画像を受信するために、前記ＧＰＵは、前記第２のカメラデバイスの前記複数のレンズのうちの少なくとも２つのレンズによってキャプチャされた画像コンテンツから生成された前記第２のセットの画像を受信するように構成される、請求項１４に記載のデバイス。
【請求項２３】
前記第１のセットの画像を受信するために、前記ＧＰＵは、前記第１のカメラデバイスの魚眼レンズによってキャプチャされた複数の正距円筒画像を受信するように構成され、前記第２のセットの画像を受信するために、前記ＧＰＵは、前記第２のカメラデバイスの魚眼レンズによってキャプチャされた複数の正距円筒画像を受信するように構成される、請求項１４に記載のデバイス。
【請求項２４】
前記第１のセットの画像および前記第２のセットの画像は、同時に生成される、請求項１４に記載のデバイス。
【請求項２５】
前記第２のセットの画像を表示のためにレンダリングするために、前記ＧＰＵは、共通のシーンコンテンツが、前記レンダリングされた第１のセットの画像における前記共通のシーンコンテンツのロケーションと同じロケーションにおいて、前記レンダリングされた第２のセット画像において表示されるように、前記第１のセットの画像と前記第２のセットの画像との両方に共通のシーンコンテンツをレンダリングするように構成される、請求項１４に記載のデバイス。
【請求項２６】
前記デバイスは、マイクロプロセッサ、集積回路、ワイヤレス通信デバイス、またはハンドヘルドデバイスのうちの１つを備える、請求項１４に記載のデバイス。
【請求項２７】
実行されると、１つまたは複数のプロセッサに、
第１のロケーションにおける第１のカメラデバイスから生成された第１のセットの画像を受信することと、前記第１のカメラデバイスは、第１の方向付けを有し、
方向付け基準に方向付けられた前記第１のセットの画像を表示のためにレンダリングすることと、
第２の異なるロケーションにおける第２の異なるカメラデバイスから生成された第２の異なるセットの画像を受信することと、前記第２のカメラデバイスは、第２の方向付けを有し、前記第２の方向付けは、前記第１の方向付けとは異なっており、
前記方向付け基準に方向付けられた前記第２のセットの画像を表示のためにレンダリングすることと
を行わせる命令を記憶したコンピュータ可読記憶媒体。
【請求項２８】
画像コンテンツを生成するためのデバイスであって、前記デバイスは、
第１のロケーションにおける第１のカメラデバイスから生成された第１のセットの画像を受信するための手段と、前記第１のカメラデバイスは、第１の方向付けを有し、
方向付け基準に方向付けられた前記第１のセットの画像を表示のためにレンダリングするための手段と、
第２の異なるロケーションにおける第２の異なるカメラデバイスから生成された第２の異なるセットの画像を受信するための手段と、前記第２のカメラデバイスは、第２の方向付けを有し、前記第２の方向付けは、前記第１の方向付けとは異なっており、
前記方向付け基準に方向付けられた前記第２のセットの画像を表示のためにレンダリングするための手段と
を備える、デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本開示は、球面画像（spherical image）レンダリングに関する。
【背景技術】
【０００２】
[0002]３６０度ビデオのために画像をレンダリングすることなどの、ある特定のタイプの画像レンダリングでは、観視者（viewer）が、画像コンテンツの複数の異なるビューを知覚し得る。例えば、観視者がディスプレイ上で画像コンテンツを見ている間、観視者は、コンテンツを見るための異なるビューを選択し得る。
【発明の概要】
【０００３】
[0003]一般に、本開示は、共通の方向付け基準において、２つの異なるカメラデバイスからの画像コンテンツを提示するための技法を説明する。２つのカメラデバイスは、それぞれの魚眼カメラをそれぞれ含み得、各カメラデバイスは、それぞれの３６０度画像コンテンツをキャプチャする。観視者は、これらカメラデバイスのうちの１つによってキャプチャされた画像コンテンツを見ることができ、その後、（例えば、観視者または画像コンテンツを出力するサーバによって選択されたとおりに）別のカメラデバイスによってキャプチャされた画像コンテンツに切り替え得る。異なるカメラデバイスからの提示された画像コンテンツが共通の方向付け基準に方向付けられていない場合、１つのカメラデバイスからの画像コンテンツから、別のカメラの画像コンテンツへの遷移は、観視者による再方向付け（例えば、観視者が見ている場所のシフト）を必要とし得る。共通の方向付け基準に方向付けられた、異なるカメラデバイスからの画像コンテンツを提示することによって、異なるカメラデバイスからの画像コンテンツからの遷移は、観視者による再方向付けの必要がなくなり得る。したがって、１つのカメラからキャプチャされた画像コンテンツを提示することから、別のカメラによってキャプチャされた画像コンテンツを提示することへの遷移は、比較的スムーズであり得、観視者が再方向付けする例と比較して、より没入感のある改善された体験を提供する。
【０００４】
[0004]一例では、本開示は、画像コンテンツを生成するための方法を説明し、方法は、第１のロケーションにおける第１のカメラデバイスから生成された第１のセットの画像を受信することと、第１のカメラデバイスは、第１の方向付けを有し、方向付け基準に方向付けられた第１のセットの画像を表示のためにレンダリングすることと、第２の異なるロケーションにおける第２の異なるカメラデバイスから生成された第２の異なるセットの画像を受信することと、第２のカメラデバイスは、第２の方向付けを有し、第２の方向付けは、第１の方向付けとは異なっており、方向付け基準に方向付けられた第２のセットの画像を表示のためにレンダリングすることとを備える。
【０００５】
[0005]別の例では、本開示は、画像コンテンツを生成するためのデバイスを説明し、デバイスは、第１のロケーションにおける第１のカメラデバイスから生成された第１のセットの画像を記憶することと、第１のカメラデバイスは、第１の方向付けを有し、第２の異なるロケーションにおける第２の異なるカメラデバイスから生成された第２の異なるセットの画像を記憶することと、第２のカメラデバイスは、第２の方向付けを有し、第２の方向付けは、第１の方向付けとは異なっている、を行うように構成されたメモリデバイスと、固定機能回路またはプログラマブル回路のうちの少なくとも１つを備えるグラフィックス処理ユニット（ＧＰＵ）と、ＧＰＵは、メモリデバイスから第１のセットの画像を受信することと、方向付け基準に方向付けられた第１のセットの画像を表示のためにレンダリングすることと、メモリデバイスから第２のセットの画像を受信することと、方向付け基準に方向付けられた第２のセットの画像を表示のためにレンダリングすることとを行うように構成される、を備える。
【０００６】
[0006]別の例では、本開示は、実行されると、１つまたは複数のプロセッサに、第１のロケーションにおける第１のカメラデバイスから生成された第１のセットの画像を受信することと、第１のカメラデバイスは、第１の方向付けを有し、方向付け基準に方向付けられた第１のセットの画像を表示のためにレンダリングすることと、第２の異なるロケーションにおける第２の異なるカメラデバイスから生成された第２の異なるセットの画像を受信することと、第２のカメラデバイスは、第２の方向付けを有し、第２の方向付けは、第１の方向付けとは異なっており、方向付け基準に方向付けられた第２のセットの画像を表示のためにレンダリングすることとを行わせる命令を記憶したコンピュータ可読記憶媒体を説明する。
【０００７】
[0007]別の例では、本開示は、画像コンテンツを生成するためのデバイスを説明し、デバイスは、第１のロケーションにおける第１のカメラデバイスから生成された第１のセットの画像を受信するための手段と、第１のカメラデバイスは、第１の方向付けを有し、方向付け基準に方向付けられた第１のセットの画像を表示のためにレンダリングするための手段と、第２の異なるロケーションにおける第２の異なるカメラデバイスから生成された第２の異なるセットの画像を受信するための手段と、第２のカメラデバイスは、第２の方向付けを有し、第２の方向付けは、第１の方向付けとは異なっており、方向付け基準に方向付けられた第２のセットの画像を表示のためにレンダリングするための手段とを備える。
【０００８】
[0008]１つまたは複数の例の詳細は、添付の図面および以下の説明において示される。他の特徴、目的、および利点が、説明、図面、および請求項から明らかになるであろう。
【図面の簡単な説明】
【０００９】
【図１】[0009]図１は、本開示で説明される１つまたは複数の例となる技法による、マルチカメラ画像キャプチャシステムを例示するブロック図である。
【図２Ａ】[0010]図２Ａは、図１のマルチカメラ画像キャプチャシステムを例示する概念図である。
【図２Ｂ】[0010]図２Ｂは、図１のマルチカメラ画像キャプチャシステムを例示する概念図である。
【図３】[0011]図３は、本開示で説明される１つまたは複数の例となる技法による、３６０度ビデオまたは画像をキャプチャするための例となるカメラデバイスを例示するブロック図である。
【図４Ａ】[0012]図４Ａは、図３のデバイスからキャプチャされた画像を例示する絵図である。
【図４Ｂ】[0012]図４Ｂは、図３のデバイスからキャプチャされた画像を例示する絵図である。
【図５Ａ】[0013]図５Ａは、方向付け基準への方向付けなしに生成された画像を例示する絵図である。
【図５Ｂ】[0014]図５Ｂは、方向付け基準への方向付けを用いて生成された画像を例示する絵図である。
【図６Ａ】[0015]図６Ａは、図１のデバイスからキャプチャされた画像を例示する絵図である。
【図６Ｂ】[0015]図６Ｂは、図１のデバイスからキャプチャされた画像を例示する絵図である。
【図６Ｃ】[0016]図６Ｃは、方向付け基準への方向付けを用いて方向付けられた図６Ａおよび図６Ｂの画像から生成された画像を例示する絵図である。
【図７】[0017]図７は、本開示で説明される例となる技法のうちの１つまたは複数を実行するように構成されたデバイスのブロック図である。
【図８】[0018]図８は、さらなる詳細において、図７のデバイスのＣＰＵ、ＧＰＵ、およびメモリを例示するブロック図である。
【図９】[0019]図９は、本開示で説明される１つまたは複数の例となる技法による、例となる動作の方法を例示するフローチャートである。
【詳細な説明】
【００１０】
[0020]本開示で説明される例となる技法は、３６０度ビデオまたは画像を提示することに関する。３６０度ビデオまたは画像では、ビデオ／画像コンテンツは、観視者の周囲に概念球（conceptual sphere）を形成する。観視者は、（例えば、前方、後方、上方、および全周における）複数の視野（perspectives）から画像コンテンツを見ることができ、そのような画像コンテンツは、３６０度画像と呼ばれる。
【００１１】
[0021]本開示では、３６０度の画像コンテンツまたは可視コンテンツを含む画像は、画像が全ての視野についてのコンテンツ（例えば、上方、下方、後方、前方、および各側方にあるコンテンツ）を含むことを意味する。例えば、従来の画像は、１８０度よりもわずかに少ない画像コンテンツをキャプチャし、カメラの側方にあるコンテンツをキャプチャしない。
【００１２】
[0022]一般に、３６０度ビデオは、３６０度画像のシーケンスから形成される。したがって、本開示で説明される例となる技法は、３６０度画像を生成することに関して説明される。その後、３６０度ビデオコンテンツのために、これらの３６０度画像は、シーケンシャル順に表示され得る。いくつかの例では、ユーザは、（例えば、ユーザの３６０度全周囲のスナップショットとして）３６０度画像のみを撮ることを望み得、本開示で説明される技法は、このような例となるケースにも同様に適用可能である。
【００１３】
[0023]本技法は、キャプチャされたビデオコンテンツ、仮想現実、および概してビデオおよび画像を表示することに適用可能であり得る。本技法は、モバイルデバイスにおいて使用され得るが、本技法は、モバイルアプリケーションに限定されると見なされるべきではない。一般に、本技法は、仮想現実アプリケーション、ビデオゲームアプリケーション、または３６０度球面ビデオ／画像環境が望ましい他のアプリケーションのためのものであり得る。
【００１４】
[0024]３６０度画像コンテンツは、（例えば、画像コンテンツの球面（sphere of image content）の一部分をキャプチャするように配置された）複数の魚眼レンズを含むカメラデバイスを用いてキャプチャされ得る魚眼レンズは、３６０度ビデオの全球面のそれぞれの部分をキャプチャする。キャプチャされた部分によって生成される画像は、円形画像であり得る（例えば、１つの画像フレームが、それぞれの魚眼レンズからの複数の円形画像を含む）。画像をキャプチャしたカメラデバイス、画像が表示されることになる処理デバイス、または何らかの他のデバイスが、円形画像をグラフィックス処理および／または送信により好適な画像タイプに変換する。グラフィックス処理および／または送信により好適な画像タイプは、投影画像と呼ばれ、その例は、正距円筒投影（equirectangular projection）、立方体投影、円筒投影、球面投影、パース・クインカンシャル投影（pierce-quincunical projection)、等を含む。
【００１５】
[0025]上記で説明されたように、カメラデバイスは、複数の魚眼レンズを含む。いくつかの例となるカメラデバイスは、２つの魚眼レンズを含むが、例となる技法は、２つの魚眼レンズに限定されない。一例となるカメラデバイスは、１６個のレンズ（例えば、３Ｄ  ＶＲコンテンツを撮影するための１６−カメラアレイ）を含み得る。別の例となるカメラデバイスは、１９５度の画角をそれぞれ有する８つのレンズを含み得る（例えば、各レンズが、３６０度の画像コンテンツのうちの１９５度をキャプチャする）。他の例となるカメラデバイスは、３つまたは４つのレンズを含む。いくつかの例は、３６０度の画像コンテンツをキャプチャする３６０度レンズを含み得る。
【００１６】
[0026]本開示で説明される例となる技法は、概して、３６０度画像／ビデオをキャプチャする２つの魚眼レンズに関して説明される。しかしながら、例となる技法は、そのように限定されるものではない。例となる技法は、単一の３６０度レンズ、たとえレンズが魚眼レンズでなかったとしても、複数のレンズ（例えば、２つ以上）、および複数の魚眼レンズを含む、例となるカメラデバイスに適用可能であり得る。
【００１７】
[0027]例えば、より詳細に説明されるように、例となる技法は、１つのカメラデバイスによってキャプチャされたコンテンツを見ることから、別のカメラデバイスによってキャプチャされたコンテンツを見ることへのシームレスな遷移を生じさせる方法を説明する。このような技法は、上記で説明されたものなどの、多種多様な異なるカメラタイプに適用可能であり得る。例となる技法が２つの魚眼レンズに関して説明される一方で、例となる技法は、そのように限定されるものではなく、３６０度画像／ビデオをキャプチャするために使用される様々なカメラタイプに適用可能である。
【００１８】
[0028]マルチカメラ環境では、それぞれの画像コンテンツをそれぞれキャプチャする、異なるロケーションに位置する複数のこれらの例となるカメラデバイスが存在し得る。観視者は、カメラデバイスのうちの１つによってキャプチャされた画像コンテンツを見ており、その後、カメラデバイスのうちの別の１つからの画像コンテンツを見ることに切り替え得る。いくつかのケースでは、１つのカメラデバイスから別のカメラデバイスへの画像コンテンツにおける切り替えは、観視者にとって不快であり得る。
【００１９】
[0029]投影画像を生成する際に、投影画像を生成するデバイス（例えば、カメラデバイス、サーバ、または処理デバイス）は、投影画像を任意の方向付けに方向付け得、これは、カメラデバイスの各々について異なり得る。例えば、いくつかのケースでは、第１のカメラデバイスからの第１のセットの画像の方向付けと、第２のカメラデバイスからの第２のセットの画像の方向付けとが異なり得る（例えば、第１のセットの画像における画像を生成するために使用されるカメラデバイスのレンズは、第１の方向または方向付けにあり得、第２のセットの画像における画像を生成するために使用されるカメラデバイスのレンズは、第２の方向または方向付けにあり得る）。したがって、１つのカメラデバイスからキャプチャされた画像から、別のカメラデバイスに切り替わるとき、観視者は、方向付けがわからなくなり得る可能性がある（例えば、関心領域がもはや観視者の真正面になく、何らかの他の角度にずれている）。観視者が再方向付けした（例えば、頭部または体を物理的に移動したか、ディスプレイを再方向付けしたか、または表示される画像を再方向付けるためにインターフェースを制御した）後には、画像は正しく見えるであろうが、そのような再方向付けを必要とすることは、観視者にとって望ましくない場合がある。
【００２０】
[0030]本開示で説明される例となる技法では、異なるカメラデバイスからの画像を表示するデバイスは、異なるカメラデバイスからの画像が、異なる基準に沿って同じ方向付けを有するように画像を提示し得る。例として、各カメラデバイスは、地理的な方向（例えば、北、南、東、または西）の方向を示すセンサ（例えば、磁力計センサまたはコンパス）を含み得る。この例では、地理的な方向は、方向付け基準である。投影画像を生成する際に、投影画像を生成するデバイスは、地理的な方向が設定点にあるように、投影画像を方向付けるために、地理的な方向情報を利用し得る。例えば、投影画像を生成するデバイスは、カメラデバイスに対する北方向が画像の上部中央になるように、画像を方向付け得る。投影画像を生成するデバイスが、それぞれのカメラデバイスに対する北方向が画像の上部中央になるように、画像が常に方向付けられることを確実にする場合には、１つのカメラから別のカメラに画像を切り替えることは、不快ではなく、または観視者が再方向付けすることを必要としなくなり得る。
【００２１】
[0031]カメラデバイスの各々が投影画像を生成する場合には、カメラデバイスの各々は、それら自体の投影画像を共通の方向付け基準に方向付けるように構成され得る。可能ではあるが、これらカメラデバイスは、画像を共通の方向付け基準に方向付けるために、必ずしも互いに通信し合う必要はないが、投影画像を各カメラデバイスに共通である特定の方向付け基準に方向付けるようにそれぞれ構成され得る。
【００２２】
[0032]３６０度画像を提示するサーバまたは処理デバイスが投影画像を生成する場合には、サーバまたは処理デバイスは、それぞれの画像のセットについて、それぞれのカメラデバイスから方向付け基準を示す情報を受信し得る。例えば、サーバまたは処理デバイスは、第１のカメラデバイスからの第１のセットの画像に対して北の方向を示す情報を第１のカメラデバイスから受信し、第２のカメラデバイスからの第２のセットの画像に対して北の方向を示す情報を第２のカメラデバイスから受信し、以下同様である。その後、サーバまたは処理デバイスは、画像が同じ方向付け基準に方向付けられる（例えば、北が、各セットのピクチャにおける同じロケーションにある）ように、方向付け基準を示す情報に基づいて、第１および第２のセットの画像を調整する（例えば、シフトする、回転する、せん断する（shear）、または歪ませる）ことができる。
【００２３】
[0033]上記の例となる技法では、サーバまたは処理デバイスは、異なるカメラデバイスからの画像を１つの平面に対して共通に（common to one plane）方向付け得る（例えば、北の方向）。例えば、サーバまたは処理デバイスは、異なるカメラデバイスからの画像を共通の方位角に方向付ける。いくつかの例では、サーバまたは処理デバイスは、異なるカメラデバイスからの画像を他の共通の平面に方向付け得る。例えば、サーバまたは処理デバイスは、異なるカメラデバイスからの画像を共通の傾き（tilt）（例えば、共通の高度基準）に方向付け得る。
【００２４】
[0034]画像を共通の傾きに方向付けることは、異なるカメラデバイスに遷移するとき、観視者が彼／彼女の目の向きを上下に調節しなくてもよくすることが可能であり得る。例えば、北が上方向になるように、２つの投影画像を自然に形成することが可能であり得る。しかしながら、画像の傾きは、異なり得る。例として、１つのカメラデバイスからの画像においては、別のカメラデバイスからの画像と比較して、画像の上部がより近くに見え、画像の下部がより遠くに見え、あるいは逆もまた同様である。共通の傾き（例えば、高度）に方向付けることによって、観視者は、１つのカメラデバイスから別のカメラデバイスへの遷移中に、傾きを再方向付ける必要がなくなり得る。
【００２５】
[0035]いくつかの例では、サーバまたは処理デバイスは、異なるカメラデバイスからの画像を、光軸に沿って共通の回転角に方向付け得る。例えば、各カメラデバイスにおけるレンズごとに光軸が存在し、ここで、光軸は、レンズの中心から外側に延びる仮想軸である。カメラデバイスの異なる方向付けのため、光学レンズの各々の光軸は、共通の基準に方向付けられていない場合がある。
【００２６】
[0036]光軸に沿って異なる回転角を有することは、１つのカメラデバイスからの画像において、別のカメラデバイスからの画像と比較して、画像の右端がより近くに見え、画像の左端がより遠くに見えることをもたらし得、あるいは逆もまた同様である。共通の回転角に方向付けることによって、観視者は、１つのカメラデバイスからのレンダリングされた画像から、別のカメラデバイスからのレンダリングされた画像への遷移の際に、そのような変化を体験しないことになり得る。
【００２７】
[0037]このようにして、サーバまたは処理デバイスは、方位角（例えば、方向）、高度（例えば、傾き）、および回転に基づいて、画像を共通の基準に方向付け得る。サーバまたは処理デバイスは、方向、傾き、および回転のうちの１つまたは複数に基づいて、画像を方向付け得ることが理解されるべきである。例えば、サーバまたは処理デバイスは、第１の方向付け基準（例えば、方向、傾き、または回転のうちの１つ）、第１の方向付け基準および第２の方向付け基準（例えば、方向、傾き、または回転のうちの別の１つ）、または第１の方向付け基準、第２の方向付け基準、および第３の方向付け基準と（例えば、方向、傾き、および回転）に基づいて、画像を方向付け得る。
【００２８】
[0038]上記の例では、例となる方向付け基準は、カメラデバイスの方向付けのグローバル位置に基づいている。いくつかの例では、上記の方向付け基準に加えて、またはその代わりに、サーバまたは処理デバイスは、シーンコンテンツおよび／または観視者の視線（gaze）に基づいて、異なるカメラからの画像を方向付ける。例えば、方向付け基準は、観視者の頭部の位置、視線（例えば、目の位置）、またはシーンに基づいて選択され得る。例として、共通の基準は、１つのカメラデバイスによってキャプチャされた画像と、観視者がそれへと遷移している別のカメラデバイスによってキャプチャされた画像とにおける画像コンテンツ中の共通の部分であり得る。別の例として、共通の基準は、（例えば、観視者の視線または頭部の位置に基づく）観視者が見ている領域であり得る。このような例では、サーバまたは処理デバイスは、観視者が同じ視線または頭部の位置を保ち得るように、異なるカメラからの画像を方向付け得る。例えば、サーバまたは処理デバイスは、観視者の視線または頭部の位置に基づいて、方向付け基準を選択し得る。
【００２９】
[0039]図１は、本開示で説明される１つまたは複数の例となる技法による、マルチカメラ画像キャプチャシステムを例示するブロック図である。例えば、図１は、複数のカメラデバイス１２Ａ〜１２Ｎ（「カメラデバイス１２」と総称される）を含むマルチカメラ画像キャプチャシステム１０を例示する。図１に例示される例は、協調記録のための複数のカメラリグが有用であるケースに適用可能であり得る。
【００３０】
[0040]カメラデバイス１２は、ある設定において異なるロケーションに設置された独立型のカメラデバイスであり得る。例えば、結婚式の間、カメラデバイス１２は、結婚式の至る所に（throughout the wedding）三脚上で様々なロケーションに設置され得る。別の例として、家の中を見せて回る（house tour）ための異なる画像をキャプチャするために、カメラデバイス１２は、家中の異なるロケーションに設置され得る。カメラデバイス１２は、必ずしも設定において静止したままである必要はなく、可動でもあり得る。
【００３１】
[0041]カメラデバイス１２は、観視者の体験を向上させるために、３６０度の球状環境（spherical environment）を記録するように構成され得る。カメラレンズの前方にあるものだけの画像をキャプチャする標準的なカメラとは異なり、カメラデバイス１２は、全方向における画像コンテンツを含む、はるかに広い領域をキャプチャするように構成され得る。例示されるように、カメラデバイス１２の各々は、画像コンテンツ１４Ａ〜１４Ｎ（総称して、画像コンテンツ１４）をそれぞれキャプチャする。例示されていないが、画像コンテンツ１４間には、オーバーラップが存在し得る。
【００３２】
[0042]カメラデバイス１２の各々は、それらのそれぞれのキャプチャされた画像コンテンツ１４を、サーバ１６に送信し得る。サーバ１６は、カメラデバイス１２によってキャプチャされた画像コンテンツ１４を記憶し得るファイルサーバまたは別の中間記憶デバイスに対応し得る。処理デバイス１８は、ストリーミングまたはダウンロードを介して、サーバ１６からの記憶されたキャプチャされた画像コンテンツ１４にアクセスし得る。サーバ１６は、画像コンテンツ１４を記憶することと、処理デバイス１８に画像コンテンツ１４を送信することとが可能な任意のタイプのサーバであり得る。例となるファイルサーバは、（例えば、ウェブサイト用の）ウェブサーバ、ＦＴＰサーバ、ネットワーク接続記憶（ＮＡＳ）デバイス、またはローカルディスクドライブを含む。
【００３３】
[0043]カメラデバイス１２および処理デバイス１８は、様々な方法で、サーバ１６にデータを送信し、また、サーバ１６からデータを受信し得る。一例として、カメラデバイス１２は、それぞれの画像コンテンツ１４をそれぞれキャプチャし、画像コンテンツ１４をローカルに記憶し得る。イベントの終了時に、技術者（例えば、結婚式の写真撮影会社からの技術者または住宅販売代理店からの技術者）が、ローカルコンピュータデバイス（図示せず）に、ワイヤード接続を介して画像コンテンツ１４をダウンロードし、ワイヤレスチャネル（例えば、Ｗｉ−Ｆｉ接続）またはワイヤード接続（例えば、ＤＳＬ、ケーブルモデム、等）、または両方の組合せを介して、画像コンテンツ１４をアップロードし得る。別の例として、カメラデバイス１２は、それぞれワイヤレスにまたはワイヤード接続を介して、サーバ１６に画像コンテンツ１４を送信し得る。処理デバイス１８は、ワイヤレスまたはワイヤード接続を介して、サーバ１６から画像コンテンツ１４をダウンロードし得る。処理デバイス１８およびカメラデバイス１２は、インターネット接続を含む任意のデータ接続を介して、サーバ１６と通信し得る。
【００３４】
[0044]いくつかの例では、サーバ１６は、キャプチャされた画像コンテンツ１４をリアルタイムで受信し得、処理デバイス１８は、スポーツイベントまたはコンサートなどについて、キャプチャされた画像コンテンツ１４をリアルタイムでダウンロードし得る。他の置換および組合せが可能であり、本開示で説明される技法は、これらの特定の例のいずれにも限定されると見なされるべきではない。
【００３５】
[0045]サーバ１６は、様々なフォーマットにおいて、キャプチャされた画像コンテンツ１４を受信し得る。一例として、サーバ１６は、キャプチャされた画像コンテンツ１４を、それらのキャプチャされた画像フォーマットにおいて受信し得る。以下でより詳細に説明されるように、カメラデバイス１２は、３６０度画像コンテンツ１４をキャプチャするレンズを含み、３６０度画像コンテンツ１４をキャプチャするために使用されるレンズの一例が、魚眼レンズであるが、他のレンズタイプも可能である。説明を簡単にするために、例は、魚眼レンズに関して説明される。
【００３６】
[0046]キャプチャされた画像フォーマットは、魚眼レンズによってキャプチャされる画像コンテンツ１４から生じる円形画像であり得、魚眼レンズが使用されない他の例では、画像フォーマットは、円形画像とは異なり得る。いくつかの例では、サーバ１６は、キャプチャされた画像がさらに処理されるフォーマットにおいて、キャプチャされた画像コンテンツ１４を受信し得る。例えば、カメラデバイス１２は、投影画像を生成するために画像を処理するグラフィックス処理ユニット（ＧＰＵ）を含み得、ここで、投影画像は、複数の画像を単一の画像へとブレンディング（blending）した何らかの形態であり、その後、それは、２次元または３次元構造上にマッピングされる。ブレンディングとは、一般に、オーバーラップする画像の色値を混合すること（mixing）を指す。カメラデバイス１２は、サーバ１６にそれぞれの投影画像を送信し得、ここで、カメラデバイス１２のそれぞれのものからの各投影画像は、それぞれの画像コンテンツ１４を含む。
【００３７】
[0047]処理デバイス１８は、サーバ１６がカメラデバイス１２から受信された画像を記憶する例では、サーバ１６から画像を受信し、および／またはサーバ１６が投影画像を記憶する例では、サーバ１６から投影画像を受信する。処理デバイス１８は、受信された画像（例えば、円形画像および／または投影画像）に対して追加の処理を実行し、結果として得られた画像を観視者に表示するために提示し得る。
【００３８】
[0048]いくつかの例では、処理デバイス１８は、カメラデバイス１２のうちの１つ（例えば、カメラデバイス１２Ａ）からの画像のセットを提示し得る。例えば、カメラデバイス１２Ａが、家の廊下に設置されていると仮定する。この例では、観視者は、画像コンテンツ１４Ａの全てを見ることが可能である。例えば、観視者は、観視者が視野角を変更し、任意の視野角から画像コンテンツ１４Ａを見ることができるように、処理デバイス１８と対話し得る。
【００３９】
[0049]その後、観視者は、観視者が画像コンテンツ１４Ａを通って画像コンテンツ１４Ｂ〜１４Ｎのうちの１つに向かって移動していることを知覚するように、処理デバイス１８と対話し得る。例えば、カメラデバイス１２Ａが廊下にある場合、カメラデバイス１２Ｂは、寝室の出入り口にあり得る。この例では、観視者は、観視者が廊下を通って出入り口に向かって歩いていると知覚するように、処理デバイス１８と対話し得る。観視者がカメラデバイス１２Ｂに近づくにつれて、処理デバイス１８は、画像コンテンツ１４Ａを提示することから、画像コンテンツ１４Ｂを提示することに切り替わり得る。
【００４０】
[0050]例えば、サーバ１６は、カメラデバイス１２によってキャプチャされた設定内の観視者の知覚されたロケーションに基づいて、画像コンテンツ１４Ａについての画像または投影画像を処理デバイス１８にアップロードし得る。例えば、処理デバイス１８は、観視者の相対ロケーションを示す情報をサーバ１６に出力し得る。相対ロケーションに基づいて、サーバ１６は、処理デバイス１８に画像コンテンツ１４のうちの１つについての画像を出力し得る。別の例として、サーバ１６は、（場合によっては、全ての画像コンテンツ１４を含む）複数の画像コンテンツ１４をブロードキャストし、それぞれの画像コンテンツ１４によってカバーされる領域の情報を含み得る。このような例では、処理デバイス１８は、画像コンテンツ１４のうちのどれを観視者に提示するかを決定し得る。サーバ１６および／または処理デバイス１８が画像コンテンツ１４のうちのどれを送信／提示すべきかを決定するための他の方法もまた、可能であり得る。
【００４１】
[0051]いくつかのケースでは、カメラデバイス１２の各々は、カメラデバイス１２にわたって共通の方向付け基準が存在することなしに、それぞれの投影画像を生成し得る。例えば、カメラデバイス１２の各々は、そのレンズの角度に基づいて、その投影画像を生成し得る。カメラデバイス１２の各々のレンズが異なる角度にあり得るので、投影画像における共通の方向付け基準は存在しない。例えば、カメラデバイス１２の複数のレンズは、異なる方向を向いているか、または異なる方向付けを有し得、したがって、カメラデバイス１２の各々のレンズは、異なる角度にあり得る。
【００４２】
[0052]カメラデバイス１２が画像を送信し、サーバ１６が投影画像を生成する例では、サーバ１６は、レンズの角度に基づいて、投影画像を同様に生成し得、したがって、投影画像における共通の方向付け基準は存在しない。同様に、処理デバイス１８が、投影画像にまだ変換されていない画像（例えば、魚眼レンズについての円形画像）を受信する例では、処理デバイス１８は、（例えば、固定された基準に対する）レンズの角度に基づいて投影画像を生成し得、したがって、投影画像における共通の方向付け基準は存在しない。
【００４３】
[0053]異なる投影画像における共通の方向付け基準の欠如に関する１つの可能性のある問題は、カメラデバイス１２のうちの１つからの画像コンテンツ１４のうちの１つから、カメラデバイス１２のうちの別の１つからの画像コンテンツ１４のうちの別の１つに切り替えることが、ユーザにとって不快な体験になり得ることである。例えば、どのデバイスが投影画像を生成したかにかかわらず、処理デバイス１８は、表示のために画像コンテンツ１４のうちの１つ（例えば、画像コンテンツ１４Ａ）から投影画像をレンダリングする。画像コンテンツ１４Ａを提示している間、観視者は、（例えば、関心領域にフォーカスして、そのコンテンツを通常知覚するであろうやり方で）コンテンツが正しく提示されるように、処理デバイス１８上で画像コンテンツ１４Ａを最初に方向付け得る。その後、処理デバイス１８が画像コンテンツ１４Ａから画像コンテンツ１４Ｂに切り替わるとき、画像コンテンツ１４Ｂは、正しく見えなくなり得、でなければ、方向付けがわからなくなる（may not appear correct, but disoriented）。これは、画像コンテンツ１４Ａおよび画像コンテンツ１４Ｂについての投影画像において共通の方向付けが存在せず、処理デバイス１８が、画像コンテンツ１４のうちの１つから、画像コンテンツ１４のうちの別の１つに切り替わるときに、方向付けにおけるシフトが生じるからである。
【００４４】
[0054]例えば、カメラデバイス１２は、水平方向に（およびいくつかのケースでは、垂直方向に）３６０度の視野をキャプチャおよび記録し、「記録方向（recording direction）」という概念は存在しない。これは、観視者が、３６０度の視覚球（viewing sphere）において、彼自身または彼女自身を方向付けることをもたらす。
【００４５】
[0055]本開示は、同じ方向付け基準に方向付けられた異なるロケーションに位置する異なるカメラデバイス１２からの画像を提示するための例となる技法を説明する。この共通の方向付けにより、処理デバイス１８が、画像コンテンツ１４のうちの１つを提示することから、画像コンテンツ１４のうちの別の１つを提示することに切り替わるとき、観視者は、再方向付けする必要がなくなり得る。
【００４６】
[0056]投影画像を方向付けるための１つの例となる方法は、カメラデバイス１２が、全てのカメラデバイス１２に対して同じである方向付け基準に基づいて、それらの投影画像をそれぞれ方向付けることである。例えば、地理的な方向（例えば、北、南、東、西）は、全てのカメラデバイス１２に対して、それらの特定のレンズ角度にかかわらず（例えば、どのようにレンズが向いているかにかかわらず）同じになる。いくつかの例では、カメラデバイス１２は、地理的な方向が投影画像の各々における同じ座標点に位置するように、それらのそれぞれの投影画像を方向付けるように構成され得る。例えば、カメラデバイス１２の各々は、真北（例えば、北極点（North Pole））が同じ座標点に位置する（例えば、真北に位置するコンテンツが、投影画像の上部中央に位置する）ように、それらのそれぞれの投影画像を生成し得る。
【００４７】
[0057]カメラデバイス１２の各々が３６０度の画像コンテンツ１４をキャプチャしていることを繰り返し述べたい。したがって、円形画像の各々において、カメラデバイス１２に対して真北に位置するコンテンツが存在する。別の言い方をすれば、カメラデバイス１２Ａを持っている個人が、スナップショットを撮り得る。スナップショットが、３６０度の可視領域全体についてのものであるので、真北からのコンテンツがキャプチャされているという保証がある。したがって、円形画像のうちの少なくとも１つにおいて、真北からのコンテンツが存在する。円形画像に基づいて投影画像を生成する際に、カメラデバイス１２の各々は、投影画像において、真北のためのコンテンツが投影画像の上部中央に位置するように、投影画像を生成し得る。この例では、カメラデバイス１２からの投影画像は、方向付け基準にそれぞれ方向付けられており、これは、投影画像を真北にセンタリングする。真北などの方向に投影画像をセンタリングすることは、一例であり、本技法は、そのように限定されるものではない。
【００４８】
[0058]カメラデバイス１２の各々がそのような共通の方向付け基準を用いて投影画像を生成することを可能にするために、カメラデバイス１２は、方向付け基準の情報を生成するためのセンサを含み得る。例えば、カメラデバイス１２は、地理的な方向を示し得る磁力計センサ（コンパスとも呼ばれる）を含み得る。カメラデバイス１２は、特定の地理的な方向が投影画像の各々における同じ座標点に位置合わせされるように、投影画像を調整するために特定の地理的な方向の方向を利用し得る。その後、処理デバイス１８が、投影画像を表示のためにレンダリングするとき、観視者が画像コンテンツ１４を切り替えるときに再方向付けする必要がなくなり得る。
【００４９】
[0059]コンパスおよび特定の地理的な方向を使用することは、一例であり、限定的であると見なされるべきではない。いくつかの例では、カメラデバイス１２は、共通の方向付け基準を提供する方法として、慣性測定ユニット（ＩＭＵ：inertial-measurement unit）および／またはジャイロスコープを含み得る。いくつかの例では、カメラデバイス１２は、コンパス、ＩＭＵ、および／またはジャイロスコープを使用し得る。例えば、カメラデバイス１２は、特定の地理的な方向に方向付けるために、コンパスを使用し得、別の次元における方向付けを制御する（例えば、傾きを共通の方向付け基準に方向付ける、等）ために、ＩＭＵおよび／またはジャイロスコープを使用し得る。
【００５０】
[0060]投影画像を特定の方向に方向付けること（例えば、ここで、北は、各画像における上部中央に位置する）は、異なるカメラデバイス１２からの画像を、共通の方位角基準に方向付けることの例である。投影画像を特定の傾きに方向付けることは、異なるカメラデバイス１２からの画像を、共通の高度基準に方向付けることの例である。画像を方向付けることの他の例が存在し得る。
【００５１】
[0061]一例として、カメラデバイス１２の各々は、光軸に関連付けられ、これは、カメラデバイス１２のレンズの中心から外側に延びる仮想軸である。カメラデバイス１２の位置決めのため、カメラデバイス１２からの画像は、光軸に沿って共通の回転角に方向付けられていない場合がある。いくつかの例では、カメラデバイス１２は、１つまたは複数のＩＭＵおよび／またはジャイロスコープを含み得る。ＩＭＵおよび／またはジャイロスコープのうちの１つは、傾きを決定するために使用され得る。ＩＭＵおよび／またはジャイロスコープのうちの別の１つは、回転角（例えば、それぞれのカメラデバイス１２が光軸に対してシフトされる量）を決定するために使用され得る。
【００５２】
[0062]方向基準、傾き基準、または回転角基準に沿って投影画像を方向付けることは、方向付け基準の様々な例である。本開示で説明される技法は、これらの例となる方向付け基準のうちの１つまたは複数（例えば、方向付け基準のうちの１つ、方向付け基準のうちのいくつか、または全ての方向付け基準）を基準にして（with respect to）投影画像を方向付け得る。
【００５３】
[0063]カメラデバイス１２のうちの異なるものからの投影画像を、カメラデバイス１２の方向または方向付けに基づく共通の方向付け基準に方向付けることは、カメラデバイス１２のうちの異なるものからの投影画像を、共通の方向付けに方向付けることの一例である。しかしながら、本開示で説明される例は、観視者の視線および／または頭部の位置およびシーンコンテンツなどのコンピュータビジョンベースのアプローチに基づく方向付け基準などの、他のタイプの方向付け基準のために適用可能であり得る。
【００５４】
[0064]例として、観視者は、カメラデバイス１２のうちの第１のもの（例えば、カメラデバイス１２Ａ）からの画像からの特定のシーンコンテンツ（例えば、関心領域）を見ていることがあり得る。カメラデバイス１２のうちの別の１つ（例えば、カメラデバイス１２Ｂ）からの画像におけるシーンコンテンツにおいていくらかのオーバーラップが存在し得る。このような例では、処理デバイス１８は、カメラデバイス１２Ａからの画像とカメラデバイス１２Ｂからの画像との両方に共通のシーンコンテンツが、実質的に同じロケーションに表示されるように、カメラデバイス１２Ｂからの画像をレンダリングし得る。例えば、処理デバイス１８は、共通のシーンコンテンツが、カメラデバイス１２Ａからのレンダリングされた画像における共通のシーンコンテンツのロケーションと同じロケーションにおいて、カメラデバイス１２Ｂからのレンダリングされた画像において表示されるように、カメラデバイス１２Ａからの画像とカメラデバイス１２Ｂからの画像との両方に共通のシーンコンテンツをレンダリングし得る。
【００５５】
[0065]例示として、カメラデバイス１２が、家の中を見せて回る（home tour）ために家の中に設置される例では、カメラデバイス１２Ａは、廊下に設置され得、カメラデバイス１２Ｂは、寝室に設置され得る。観視者が廊下を通って歩いており、寝室への出入り口に面しているように、観視者が処理デバイス１８と対話するとき、処理デバイス１８は、カメラデバイス１２Ａによってキャプチャされた画像コンテンツを表示し得る。その後、観視者が寝室に入るために対話するとき、処理デバイス１８は、カメラデバイス１２Ｂによってキャプチャされた画像コンテンツを表示し得る。この例では、出入り口に面しているときに観視者が最初に見る、カメラデバイス１２Ａによってキャプチャされた画像コンテンツは、カメラデバイス１２Ｂによってキャプチャされた画像コンテンツとオーバーラップし得る（例えば、カメラデバイス１２Ｂもまた、寝室の出入口における画像コンテンツをキャプチャし得る）。処理デバイス１８は、カメラデバイス１２Ａによってキャプチャされた画像コンテンツからカメラデバイス１２Ｂによってキャプチャされた画像コンテンツへの遷移の要求に応じて（at the instance of）、カメラデバイス１２Ｂによってキャプチャされた画像コンテンツを、カメラデバイス１２Ａによってキャプチャされた画像コンテンツのレンダリングされた画像のそれと共通の方向付けにレンダリングし得、この例では、それは共通のシーンコンテンツである。共通のシーンコンテンツに方向付けることによって、観視者は、よりスムーズな遷移を知覚し得る。
【００５６】
[0066]別の例として、観視者は、カメラデバイス１２のうちの第１のもの（例えば、カメラデバイス１２Ａ）によってキャプチャされた画像コンテンツを見ているとき、特定の角度において彼／彼女の視線または頭部をフォーカスすることによって、特定のシーンコンテンツ（例えば、関心領域）を見ていることがあり得る。カメラデバイス１２Ａによってキャプチャされた画像コンテンツを、カメラデバイス１２のうちの第２のもの（例えば、カメラデバイス１２Ｂ）によってキャプチャされた画像コンテンツに遷移させるとき、処理デバイス１８は、観視者がカメラデバイス１２Ａによってキャプチャされた画像を見ていたときの観視者の視線または頭部の位置に基づいて、カメラデバイス１２Ｂによってキャプチャされた画像コンテンツをレンダリングし得る。例えば、処理デバイス１８は、観視者が彼／彼女の視線または頭部の位置を変更する必要がないように、カメラデバイス１２Ｂによってキャプチャされた画像コンテンツをレンダリングし得る。例えば、観視者の視線または頭部の位置に基づく、観視者にとっての関心領域である画像コンテンツは、カメラデバイス１２の第１のものによってキャプチャされた画像コンテンツから、カメラデバイス１２のうちの第２のものによってキャプチャされた画像コンテンツに遷移するとき、同じロケーションに保たれる。この例では、処理デバイス１８は、観視者の決定された視線または頭部の位置に基づいて、方向付け基準を選択し得る。
【００５７】
[0067]上記の例では、カメラデバイス１２が、投影画像を生成した。しかしながら、本技法は、そのように限定されるものではない。サーバ１６、処理デバイス１８、または何らかの他のデバイスが投影画像を生成する例では、カメラデバイス１２は、円形画像と共に、サーバ１６、処理デバイス１８またはこの他のデバイスに、（ＩＭＵまたはジャイロスコープの例では）特定の次元（dimension）および／または傾きおよび／または回転角の位置合わせを示す情報を送信し得る。サーバ１６、処理デバイス１８、または場合によっては、この他のデバイスは、投影画像を共通の方向付け基準に方向付けるために、上記で説明された例となる技法を実行し得る。
【００５８】
[0068]図２Ａおよび図２Ｂは、図１のマルチカメラ画像キャプチャシステムを例示する概念図である。図１と同様に、図２Ａおよび図２Ｂは、カメラデバイス１２の各々がそれぞれの画像コンテンツ１４をキャプチャする例を例示する。図１とは異なり、画像コンテンツ１４は、オーバーラップして例示される。例として、画像コンテンツ１４Ａ、１４Ｃ、および１４Ｅがオーバーラップする。
【００５９】
[0069]図２Ａでは、カメラデバイス１２Ａは、異なる方向付けにおいて例示される。したがって、カメラデバイス１２のうちの１つから生成された画像を見ることから、カメラデバイス１２のうちの別の１つから生成された画像を見ることに切り替える観視者は、観視者がそれに切り替えるカメラデバイス１２のうちの１つにおける方向付けに再方向付けする必要があり得る。
【００６０】
[0070]図２Ｂは、本開示で説明される技法の有効な結果の概念的な例示を提供する。図２Ｂは、同じ方向付けをそれぞれ有するカメラデバイス１２を例示するが、カメラデバイス１２は、全て同じ方向に方向付けられる必要がないことが理解されるべきである。むしろ、図２Ｂは、本開示で説明される技法がインプリメントされた場合、その結果は、異なるカメラデバイス１２からキャプチャされた画像が全て共通の基準に方向付けられるということになり得ることを例示する。
【００６１】
[0071]例えば、マルチカメラ環境では、カメラデバイス１２によって生成される画像は、カメラデバイス１２のそれらの物理的な方向付けに依存し得る。それぞれのカメラデバイス１２からの画像コンテンツ１４を遷移させるとき、観視者は、方向付けがわからなくなる影響を体験し得る。本開示で説明される技法は、カメラデバイス１２を切り替えるときに快適な遷移が存在するように、３６０度画像を生成することをもたらし得る。例えば、図２Ｂに概念的に例示されるように、カメラデバイス１２が全て共通の基準に方向付けられている場合、結果は同様であり得る。
【００６２】
[0072]図３は、本開示で説明される１つまたは複数の例となる技法による、３６０度ビデオをキャプチャするための例となるカメラデバイスを例示するブロック図である。例示されるように、カメラデバイス１２Ａは、３６０度ビデオ／画像を完全にキャプチャするために、カメラデバイス１２Ａの両側に位置する魚眼レンズ２０Ａおよび魚眼レンズ２０Ｂを含むビデオキャプチャデバイスである。魚眼レンズ２０Ａおよび２０Ｂの他の方向付けもまた、可能であり得る。例えば、カメラデバイス１２Ａは、２つより多くの魚眼レンズ、または単一の３６０度レンズを含み得る。また、魚眼レンズは、単に一例として提供されており、他のレンズタイプも可能である。
【００６３】
[0073]カメラデバイス１２Ａの一例は、１６個のレンズ（例えば、３Ｄ  ＶＲコンテンツを撮影するための１６−カメラアレイ）を含み得る。カメラデバイス１２Ａの別の例は、１９５度の画角をそれぞれ有する８つのレンズを含み得る（例えば、各レンズが、３６０度の画像コンテンツのうちの１９５度をキャプチャする）。カメラデバイス１２Ａの他の例は、４つまたは３つのレンズを含む。いくつかの例は、３６０度の画像コンテンツをキャプチャする３６０度レンズを含み得る。
【００６４】
[0074]本開示で説明される例となる技法は、概して、３６０度画像／ビデオをキャプチャする２つの魚眼レンズを含むカメラデバイス１２Ａに関して説明される。しかしながら、例となる技法は、そのように限定されるものではない。例となる技法は、単一の３６０度レンズ、たとえレンズが魚眼レンズでなかったとしても、複数のレンズ（例えば、２つ以上）、および複数の魚眼レンズを含む、カメラデバイス１２Ａの例に適用可能であり得る。
【００６５】
[0075]上記で説明されたように、３６０度ビデオコンテンツは、（例えば、ビデオのフレームなどの）３６０度画像のシーケンスであると見なされ得る。本開示で説明される例となる技法は、画像に関する技法を説明し、これは、静止画像（例えば、３６０度スナップショット）の目的のために、またはビデオ（例えば、３６０度ビデオ）を形成する画像のために使用され得る。
【００６６】
[0076]ユーザは、３６０度ビデオ／画像をキャプチャするために、カメラデバイス１２Ａと対話し得、ここで、魚眼レンズ２０Ａおよび２０Ｂの各々は、３６０度ビデオ／画像の一部分をキャプチャし、魚眼レンズ２０Ａおよび２０Ｂからの２つのビデオ／画像ストリームは、３６０度ビデオ／画像を作成するために共にブレンドされる。
【００６７】
[0077]ユーザがカメラデバイス１２Ａと対話する様々な方法が存在し得る。一例として、ユーザは、カメラデバイス１２Ａ上に位置する押しボタンを用いて、カメラデバイス１２Ａと対話し得る。別の例として、ユーザは、表示されたインターフェース（例えば、グラフィカルユーザインターフェース（ＧＵＩ））を介して、カメラデバイス１２Ａと対話し得る。
【００６８】
[0078]いくつかの例では、カメラデバイス１２Ａは、表示を提供しない場合がある。むしろ、カメラデバイス１２Ａは、別のデバイス（例えば、処理デバイス１８）に、その後それによって表示されるキャプチャされた画像を出力する。
【００６９】
[0079]例示されるように、カメラデバイス１２Ａは、カメラプロセッサ２２、グラフィックス処理ユニット（ＧＰＵ）２４、１つまたは複数のセンサ２６、および送信機２８を含む。様々な構成要素が別個の構成要素として例示されているが、いくつかの例では、構成要素は、システムオンチップ（ＳｏＣ）を形成するために組み合わされ得る。例として、カメラプロセッサ２２およびＧＰＵ２４は、共通の集積回路（ＩＣ）チップ上に、または別個のＩＣチップにおいて形成され得る。様々な他の置換および組合せが可能であり、本技法は、図３に例示される例に限定されると見なされるべきではない。カメラプロセッサ２２およびＧＰＵ２４は、１つまたは複数のマイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、デジタルシグナルプロセッサ（ＤＳＰ）、または他の同等の集積されたまたはディスクリートな論理回路などにおいて、固定機能および／またはプログラマブル回路として形成され得る。
【００７０】
[0080]カメラデバイス１２Ａが図３に例示されているが、カメラデバイス１２Ｂ〜１２Ｎも、同様の構成要素を含み得る。また、カメラデバイス１２Ａは、全ての例において、必ずしもＧＰＵ２４を含む必要はない。例えば、カメラデバイス１２Ａが、魚眼レンズ２０Ａおよび２０Ｂによってキャプチャされた円形画像を送信する例では、カメラデバイス１２Ａは、ＧＰＵ２４を含まない場合がある。しかしながら、カメラデバイス１２Ａが円形画像を送信する例においても、カメラデバイス１２ＡがＧＰＵ２４を含むことは可能であり得る。
【００７１】
[0081]送信機２８は、カメラデバイス１２Ａによってキャプチャされた画像データを送信するように構成され得る。例えば、送信機２８は、サーバ１６、別のコンピューティングデバイス、または処理デバイス１８に、ワイヤレスにまたはワイヤード接続を介して、円形画像および／または投影画像を送信するための回路を含み得る。
【００７２】
[0082]カメラプロセッサ２２は、レンズ２０Ａおよび２０Ｂのそれぞれのピクセルからセンサ信号として電流を受信し、それぞれの魚眼画像（例えば、図４Ａおよび図４Ｂに例示されるもののような円形画像）のピクセルデータ、例えば、Ｒ、Ｇ、Ｂデータ、ルーマおよびクロマデータ、または同様のもの、を生成するために、電流を処理するように構成される。１つのカメラプロセッサ２２が説明されているが、いくつかの例では、複数のカメラプロセッサ（例えば、１つはレンズ２０Ａ用、および１つはレンズ２０Ｂ用）が存在し得る。
【００７３】
[0083]いくつかの例では、カメラプロセッサ２２は、単入力多データ（ＳＩＭＤ）アーキテクチャとして構成され得る。カメラプロセッサ２２は、レンズ２０Ａおよび２０Ｂの各々上のピクセルの各々から受信される電流に対して同じ動作を実行し得る。ＳＩＭＤアーキテクチャの各レーンは、画像パイプラインを含み得る。画像パイプラインは、ピクセルの出力を処理するためのハードワイヤ回路および／またはプログラマブル回路を含む。
【００７４】
[0084]例えば、カメラプロセッサ２２の各画像パイプラインは、電流を電圧に変換するためのそれぞれのトランスインピーダンス増幅器（ＴＩＡ）と、アナログ電圧出力をデジタル値に変換するそれぞれのアナログデジタル変換器（ＡＤＣ）とを含み得る。各ピクセルによって出力される電流は、赤、緑、または青の成分のインテンシティ（intensity）を示す。
【００７５】
[0085]アナログ電流出力をデジタル値に変換することに加えて、カメラプロセッサ２２は、最終画像の品質を増大させるために、何らかの追加の後処理を実行し得る。例えば、カメラプロセッサ２２は、隣接する画像ピクセルの色および輝度データを評価し、デモザイキング（demosaicing）を実行して、画像ピクセルの色および輝度を更新し得る。カメラプロセッサ２２はまた、追加の例として、ノイズ低減および画像の鮮明化を実行し得る。
【００７６】
[0086]カメラプロセッサ２２は、ＧＰＵ２４が処理するために、結果として得られた画像（例えば、画像ピクセルの各々についてのピクセル値）を出力する。例えば、ＧＰＵ２４は、投影画像を生成するために、ピクセル値をブレンドし得る。説明を簡単にするために、これら例は、動作を実行するＧＰＵ２４に関して説明される。しかしながら、カメラプロセッサ２２、または処理デバイス１８、サーバ１６、もしくは何らかの他のデバイス上のＧＰＵが、キャプチャされた画像をブレンドするように構成され得る。
【００７７】
[0087]図４Ａおよび図４Ｂは、図３のデバイスからキャプチャされた画像を例示する絵図である。例示されるように、レンズ２０Ａおよび２０Ｂによってキャプチャされた２つの画像の出力は、円形画像（例えば、丸い画像）である。例えば、図４Ａは、レンズ２０Ａによってキャプチャされた画像を表し、図４Ｂは、レンズ２０Ｂによってキャプチャされた画像を表す。カメラプロセッサ２２は、レンズ２０Ａおよび２０Ｂによってキャプチャされた画像コンテンツを受信し、図４Ａおよび図４Ｂを生成するために、画像コンテンツを処理する。いくつかの例では、図４Ａおよび図４Ｂは、共通の画像フレームの一部であり得る。
【００７８】
[0088]例示されるように、図４Ａおよび図４Ｂは、泡状に見える画像コンテンツを例示する円形画像である。２つの円形画像が共にスティッチングされる場合、結果として得られる画像コンテンツは、画像コンテンツの全球面に対するものとなるであろう（例えば、３６０度の可視コンテンツ）。
【００７９】
[0089]図３に戻って参照すると、ＧＰＵ２４は、カメラプロセッサ２２によって生成された円形画像から投影画像を生成するように構成され得る。投影画像の例は、正距円筒、立方体、円筒、球面、パース・クインカンシャル、等を含む。投影画像を生成するために、ＧＰＵ２４は、各円形画像（例えば、図４Ａおよび図４Ｂに例示される画像の各々）を、投影（例えば、正距円筒投影、立方体投影、円筒投影、球面投影、またはパース・クインカンシャル投影）上にテクスチャマッピングし得る。
【００８０】
[0090]例えば、正距円筒投影の場合、２次元矩形構造が存在する。ＧＰＵ２４は、円形画像から１つのピクセルを取得し（takes）、そのピクセルについてのピクセル値を矩形構造上のロケーションにマッピングする。ＧＰＵ２４は、円形画像における各ピクセルについてこれらのステップを繰り返し、テクスチャマッピングと呼ばれるプロセスにおいて、そのピクセルを矩形構造にマッピングする。円形画像は、色テクスチャであると見なされ、円形画像のピクセルは、テクスチャマッピングにおいてテクセルと呼ばれる。
【００８１】
[0091]第１の円形画像を第１の矩形構造にテクスチャマッピングすることの結果は、第１の中間画像である。ＧＰＵ２４は、第２の円形画像に関しては、第２の中間画像を生成するためであるが、このプロセスを繰り返し得る（例えば、第２の円形画像を矩形構造にテクスチャマッピングする）。その後、ＧＰＵ２４は、投影画像を生成するために、２つの中間画像を共にスティッチングし得る。例として、ＧＰＵ２４のブレンダー回路は、第１の中間画像の下部境界上のピクセルのピクセル値を、第２の中間画像の上部境界上のピクセルとブレンドし得、結果として正距円筒画像が得られる。
【００８２】
[0092]ＧＰＵ２４は、画像のセット（例えば、正距円筒画像のセット）を生成するために、レンズ２０Ａおよび２０Ｂによってキャプチャされた複数の円形画像についてこれらの動作を繰り返し得る。この例では、正距円筒画像のセットは、画像コンテンツ１４Ａのコンテンツを含む。
【００８３】
[0093]パース・クインカンシャルの場合、ＧＰＵ２４は、同様の動作を実行し得る。例えば、パース・クインカンシャルの場合、ＧＰＵ２４が円形画像をテクスチャマッピングする２次元矩形構造がまた存在し得る。しかしながら、ＧＰＵ２４がパース・クインカンシャル画像のために円形画像のピクセルをマッピングすることになる２次元構造上のロケーションは、ＧＰＵ２４が正距円筒画像のために円形画像のピクセルをマッピングすることになる２次元構造のロケーションとは異なる。立方体、円筒、および球面投影の場合、ＧＰＵ２４は、同様の動作を実行し得るが、３次元構造（例えば立方体、円筒、または球面）にテクスチャマッピングする。
【００８４】
[0094]上記で説明されたように、１つの可能性のある問題は、カメラデバイス１２のうちの異なるものからの投影画像（例えば、正距円筒画像またはパース・クインカンシャル画像）の各々が、同じ方向付け基準（例えば、方位角、出没方位角（amplitude）、または回転角に対する位置、あるいはシーンまたは観視者の視線／頭部の位置）に方向付けられていない場合があることであり得る。その後、処理デバイス１８が、（例えば、画像コンテンツ１４Ａから１４Ｂに）画像コンテンツ１４間を切り替えるとき、観視者は、画像コンテンツ１４Ｂが、画像コンテンツ１４Ａが方向付けられていたのと同じに方向付けられるように、再方向付けする必要があり得る。
【００８５】
[0095]本開示で説明される例では、カメラデバイス１２Ａは、投影画像を共通の方向付け基準に方向付けるために、１つまたは複数のセンサ２６（例えば、磁力計センサ、慣性測定ユニット（ＩＭＵ）、またはジャイロスコープ）を含む。他のカメラデバイス１２は、同様の１つまたは複数のセンサ２６を含み得る。
【００８６】
[0096]例として、ＧＰＵ２４が投影画像を生成した後、ＧＰＵ２４は、特定の地理的な方向の位置合わせを示す情報を受信し得る。その後、ＧＰＵ２４は、地理的な方向の位置合わせが、投影画像上の特定の座標点へのものとなるように、投影画像を調整し得る。
【００８７】
[0097]一般に、ＧＰＵ２４は、投影画像を特定の地理的な方向に位置合わせするように調整するために、投影画像をシフトする、回転する、せん断する、または歪ませ得る。例えば、投影画像を９０度回転させるために、ＧＰＵ２４は、投影画像上のピクセルのｘ座標値を、調整された投影画像上のｙ座標に設定し、投影画像上のピクセルのｙ座標値を、調整された投影画像上のｘ座標に設定し得る。
【００８８】
[0098]別の例として、ＧＰＵ２４は、別のテクスチャマッピングパス（texture mapping pass）を実行し得る。このテクスチャマッピングパスでは、投影画像は、テクスチャを形成し、ＧＰＵ２４は、投影画像からのピクセルを、投影画像と同様の形状を有する構造上にではあるが、この構造上に異なるロケーションにおいてテクスチャマッピングする（例えば、４５度回転させた調整された投影画像を生成するために、この構造上に投影画像の各ピクセルを４５度だけシフトする）。
【００８９】
[0099]投影画像を調整する他の方法が可能であり、上記の技法は、限定的であると見なされるべきではない。例えば、投影画像を生成して、その後投影画像を調整するのではなく、ＧＰＵ２４は、投影画像が共通の方向付け基準に方向付けられるように、円形画像のピクセルをそれらの最終的な正しいロケーションにテクスチャマッピングし得る（例えば、テクスチャマッピングの一部として、地理的な方向に基づいて位置合わせされる）。
【００９０】
[0100]正距円筒投影および円筒投影の場合、ＧＰＵ２４は、共通の方向付け基準に位置合わせするために、ラップアラウンド（wrap-around）を用いてピクセルの水平方向のシフトを実行し得る。球面変換および回転がまた、ＧＰＵ２４によって実行され得る。立方体投影の場合、ＧＰＵ２４は、立方体の６個の面をレンダリングするために、１つまたは複数のセンサ２６からの情報を使用し得る。パース・クインカンシャルの場合、ＧＰＵ２４は、１つまたは複数のセンサ２６からの情報を、Ｐｕｅｎｔｅｓ他による「Elucidating Peirce Quincuncial Projection」に記載されているＰｅｉｒｃｅ／Ｐｉｅｒｐｏｎｔ式に統合し得、その内容は、その全体が参照により組み込まれている。
【００９１】
[0101]図５Ａは、方向付け基準への方向付けなしに生成された画像を例示する絵図である。例えば、図５Ａは、ＧＰＵ２４がレンズ２０Ａおよび２０Ｂの角度に基づいて正距円筒画像を生成した例を例示する。カメラデバイス１２の各々が同様の正距円筒画像を生成した場合には、画像コンテンツ１４のうちの１つから、画像コンテンツ１４のうちの別の１つに切り替えることは、表示された３６０度ビューボリューム内で観視者の再方向付けを必要とすることをもたらし得る。
【００９２】
[0102]図５Ｂは、方向付け基準への方向付けを用いて生成された画像を例示する絵図である。図５Ｂでは、ＧＰＵ２４は、調整された投影画像における上部中央の座標が北に位置合わせされるように、図５Ａに例示される投影画像を調整した。１つまたは複数のセンサ２６からの測定値に基づいて、ＧＰＵ２４は、北が、図５Ａに例示される投影画像中のどこに位置するかを決定し得る。その後、ＧＰＵ２４は、図５Ｂに例示されるように、北が上部中央の座標に位置合わせされるように、図５Ａの投影画像を調整し得る。
【００９３】
[0103]いくつかの例では、地理的な方向に位置合わせすることは、（例えば、第１の次元における）第１のレベルの調整を提供し得る。ＧＰＵ２４は、別の調整された投影画像を生成するために、調整された投影画像に対して第２のレベルの調整を実行し得る。１つまたは複数のセンサ２６は、ジャイロスコープまたはＩＭＵを含み得る。ＧＰＵ２４は、傾きを共通の方向付け基準に合わせてさらに調整するために、ジャイロスコープまたはＩＭＵから生成された情報を使用し得る。また、１つまたは複数のセンサ２６は、回転角を共通の方向付け基準に合わせてさらに調整するために使用され得る。
【００９４】
[0104]図６Ａおよび図６Ｂは、図１のデバイスからキャプチャされた画像を例示する絵図である。例えば、図６Ａおよび図６Ｂは、図４Ａおよび図４Ｂのものと同様であるが、異なるコンテンツを有する。図６Ｃは、方向付け基準への方向付けを用いて方向付けられた図６Ａおよび図６Ｂの画像から生成された画像を例示する絵図である。例えば、図６Ｃは、パース・クインカンシャル投影画像の例を例示する。この例では、北を投影画像の上部中央に位置合わせするのではなく、ＧＰＵ２４は、北を投影画像の右上隅に位置合わせし得る。
【００９５】
[0105]上記の例は、例となる技法を実行するカメラデバイス１２ＡのＧＰＵ２４に関して説明されたが、本開示の態様は、そのように限定されるものではない。例えば、送信機２８は、サーバ１６、何らかの他のコンピューティングデバイス、または処理デバイス１８に、円形画像（例えば、図４Ａ、図４Ｂ、図６Ａ、および図６Ｂのものなどの画像）についての画像データを送信し得る。加えて、送信機２８は、これらの他のデバイスに、方向情報、傾き情報、および／または回転角情報を出力し得る。これらの他のデバイス上のＧＰＵは、その後、図５Ｂおよび図６Ｃに例示されるものなどの、方向付け基準に方向付けられた投影画像を生成し、その後、例として、何らかの他のデバイスにそれを返送し得る。
【００９６】
[0106]図７は、本開示で説明される例となる技法のうちの１つまたは複数を実行するように構成された図１の処理デバイスのブロック図である。図７の処理デバイス１８の例は、パーソナルコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、コンピュータワークステーション、ビデオゲームプラットフォームまたはコンソール、（例えば、モバイル電話、セルラ電話、衛星電話、および／またはモバイル電話ハンドセットなどの）ワイヤレス通信デバイス、固定電話、インターネット電話、ポータブルビデオゲームデバイスまたは携帯情報端末（ＰＤＡ）などのハンドヘルドデバイス、パーソナルミュージックプレーヤ、ビデオプレーヤ、ディスプレイデバイス、カメラ、テレビジョン、テレビジョンセットトップボックス、サーバ、中間ネットワークデバイス（intermediate network device）、メインフレームコンピュータ、またはグラフィカルデータを処理および／または表示するその他任意のタイプのデバイスを含む。
【００９７】
[0107]図７の例に例示されるように、処理デバイス１８は、トランシーバ３０、位置追跡装置３１、中央処理ユニット（ＣＰＵ）３２、グラフィカル処理ユニット（ＧＰＵ）３４およびＧＰＵ３４のローカルメモリ３６、ユーザインターフェース３８、システムメモリへのアクセスを提供するメモリコントローラ４０、およびグラフィカルデータをディスプレイ４４上に表示させる信号を出力するディスプレイプロセッサ４２を含む。
【００９８】
[0108]また、様々な構成要素が別個の構成要素として例示されているが、いくつかの例では、構成要素は、システムオンチップ（ＳｏＣ）を形成するために組み合わされ得る。例として、ＣＰＵ３２、ＧＰＵ３４、およびディスプレイプロセッサ４２は、共通の集積回路（ＩＣ）チップ上に形成され得る。いくつかの例では、ＣＰＵ３２、ＧＰＵ３４、およびディスプレイプロセッサ４２のうちの１つまたは複数は、別個のＩＣチップ中にあり得る。様々な他の置換および組合せが可能であり、本技法は、図７に例示される例に限定されると見なされるべきではない。
【００９９】
[0109]図７に例示される様々な構成要素は、（１つのデバイス上に形成されるか、あるいは異なる複数のデバイス上に形成されるかにかかわらず）１つまたは複数のマイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、デジタルシグナルプロセッサ（ＤＳＰ）、または他の同等の集積されたまたはディスクリートな論理回路などにおいて、固定機能および／またはプログラマブル回路、またはそのような回路の組合せとして形成され得る。ローカルメモリ３６の例は、例えば、ランダムアクセスメモリ（ＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、消去可能なプログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的に消去可能なプログラマブルＲＯＭ（ＥＥＰＲＯＭ（登録商標））、フラッシュメモリ、磁気データ媒体または光記憶媒体などの、１つまたは複数の揮発性または不揮発性メモリまたは記憶デバイスを含む。
【０１００】
[0110]図７に例示される様々なユニットは、バス４７を使用して互いに通信する。バス４７は、第３世代バス（例えば、ＨｙｐｅｒＴｒａｎｓｐｏｒｔバスまたはＩｎｆｉｎｉＢａｎｄバス）、第２世代バス（例えば、Ａｄｖａｎｃｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔバス、ＰＣＩ（Peripheral Component Interconnect）エクスプレスバス、またはＡＸＩ（Advanced eXensible Interface）バス）、あるいは別のタイプのバスまたはデバイス相互接続などの、様々なバス構造のうちの任意のものであり得る。図７に示される異なる構成要素間のバスおよび通信インターフェースの特定の構成は、単に例示的であり、同じまたは異なる構成要素を有する他の画像処理システムおよび／またはコンピューティングデバイスの他の構成が、本開示の技法をインプリメントするために使用され得ることに留意されたい。
【０１０１】
[0111]ＣＰＵ３２は、処理デバイス１８の動作を制御する汎用プロセッサまたは専用プロセッサを備え得る。ユーザは、ＣＰＵ３２に、１つまたは複数のソフトウェアアプリケーションを実行させるために、処理デバイス１８に入力を提供し得る。ＣＰＵ３２上で実行されるソフトウェアアプリケーションは、例えば、ワードプロセッサアプリケーション、ウェブブラウザアプリケーション、電子メールアプリケーション、写真ビューイングアプリケーション（photo viewing application）、写真編集アプリケーション、グラフィックス編集アプリケーション、表計算アプリケーション、メディアプレーヤアプリケーション、ビデオゲームアプリケーション、グラフィカルユーザインターフェースアプリケーション、または別のプログラムを含み得る。ユーザは、キーボード、マウス、マイクロフォン、タッチパッド、またはユーザ入力インターフェース３８を介して処理デバイス１８に結合された別の入力デバイスなどの、１つまたは複数の入力デバイス（図示せず）を介して処理デバイス１８への入力を提供し得る。
【０１０２】
[0112]ソフトウェアアプリケーションの一例が、ビューイングアプリケーションである。ＣＰＵ３２は、カメラデバイス１２によってキャプチャされた画像コンテンツ１４を見るために、ビューイングアプリケーションを実行する。例えば、ビューイングアプリケーションを実行することに応答して、ＣＰＵ３２は、サーバ１６またはカメラデバイス１２から、円形画像、投影画像、または両方を取り出すために、トランシーバ３０にコマンドを出力し得る。トランシーバ３０は、それに応答してサーバ１６とワイヤレスまたはワイヤード接続を形成し、サーバ１６から画像コンテンツ１４についての円形画像および／または投影画像をダウンロードし得る。
【０１０３】
[0113]いくつかの例では、ＣＰＵ３２は、トランシーバ３０に、画像コンテンツ１４のうちの特定の１つについて円形画像および／または投影画像をダウンロードさせ得る。いくつかの例では、ＣＰＵ３２は、トランシーバ３０に、複数のまたは全ての画像コンテンツ１４についての円形画像および／または投影画像をダウンロードさせ得る。それに応答して、トランシーバ３０は、画像コンテンツ１４のうちの指示されたものからの円形画像および／または投影画像をダウンロードし、メモリコントローラ４０を介してシステムメモリ４６に、カメラデバイス１２のそれぞれのものからの画像のセットとして円形画像および／または投影画像を記憶し得る。
【０１０４】
[0114]ＣＰＵ３２上で実行されるビューイングアプリケーションは、ＣＰＵ  ３２にディスプレイ４４へのグラフィックスデータのレンダリングを引き起こすように指示する、１つまたは複数のグラフィックスレンダリング命令を含み得る。いくつかの例では、ビューイングアプリケーションの命令は、例えば、ＯｐｅｎＧＬ（登録商標）（Open Graphics Library）グラフィックスアプリケーションプログラミングインターフェース（ＡＰＩ）、ＯｐｅｎＧＬ  ＥＳ（Open Graphics Library Embedded Systems）ＡＰＩ、ＯｐｅｎＣＬ  ＡＰＩ、Ｄｉｒｅｃｔ３Ｄ  ＡＰＩ、Ｘ３Ｄ  ＡＰＩ、ＲｅｎｄｅｒＭａｎ  ＡＰＩ、ＷｅｂＧＬ  ＡＰＩ、またはその他任意の公開のまたはプロプライエタリな標準グラフィックスＡＰＩなどの、グラフィックスＡＰＩに準拠し得る。本技法は、特定のＡＰＩを必要とするように限定されると見なされるべきではない。
【０１０５】
[0115]一例として、ユーザは、システムメモリ４６に記憶するための円形画像および／または投影画像をトランシーバにダウンロードさせるために、ビューイングアプリケーションを実行し得る。記憶後、ビューイングアプリケーションは、ＣＰＵ３２に、ＧＰＵ３４に円形画像および／または投影画像を表示のためにレンダリングするように指示させ得る。ビューイングアプリケーションは、ＧＰＵ３４に画像（例えば、円形画像および／または投影画像）を表示のためにレンダリングするように指示するために、ＯｐｅｎＧＬ  ＡＰＩなどの、例となるＡＰＩに準拠するソフトウェア命令を使用し得る。
【０１０６】
[0116]受信された命令に応答して、ＧＰＵ３４は、円形画像および／または投影画像の画像コンテンツを受信し、３６０度ビデオを生成するために、画像をレンダリングし得る。ディスプレイ４４は、３６０度ビデオを表示する。ユーザは、観視者が３６０度ビデオ全体を見る（例えば、３６０球面の上方、後方、前方、および全ての角度を見る）ことができるように、ビューイング視点を修正するために、ユーザインターフェース３８と対話し得る。
【０１０７】
[0117]観視者はまた、３６０度ビデオのビューイングボリューム中を移動するために、ユーザインターフェース３８と対話し得る。例えば、観視者は、３６０度ビデオのビューイングボリューム中で、前方、後方、左方向、右方向、上方向、または下方向に移動するために、ユーザインターフェース３８と対話し得る。例として、家の設定では、観視者は、まるで彼または彼女が家の中の廊下を通って移動しているかのように知覚し得る。結婚式の設定では、観視者は、まるで彼または彼女が披露宴において１つのテーブルから別のテーブルに移動しているかのように知覚し得る。
【０１０８】
[0118]メモリコントローラ４０は、システムメモリ４６から出入りするデータの転送を容易にする。例えば、メモリコントローラ４０は、処理デバイス１８における構成要素にメモリサービスを提供するために、メモリ読出しおよび書込みコマンドを受信し、メモリ４６に関するそのようなコマンドをサービスし得る。メモリコントローラ４０は、システムメモリ４６に通信可能に結合される。メモリコントローラ４０は、ＣＰＵ３２およびシステムメモリ４６の両方とは別個の処理回路であるとして、図７の処理デバイス１８の例に例示されているが、他の例では、メモリコントローラ４０の機能の一部または全ては、ＣＰＵ３２およびシステムメモリ４６の一方または両方でインプリメントされ得る。
【０１０９】
[0119]システムメモリ４６は、ＣＰＵ３２およびＧＰＵ３４によってアクセス可能であるプログラムモジュールおよび／または命令および／またはデータを記憶し得る。例えば、システムメモリ４６は、ユーザアプリケーション（例えば、ビューイングアプリケーションのための命令）、カメラデバイス１２からの結果として得られた画像、等を記憶し得る。システムメモリ４６は、追加として、処理デバイス１８の他の構成要素によって使用するための、および／またはそれらによって生成される情報を記憶し得る。システムメモリ４６は、例えば、ランダムアクセスメモリ（ＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、読取専用メモリ（ＲＯＭ）、消去可能なプログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的に消去可能なプログラマブルＲＯＭ（ＥＥＰＲＯＭ）、フラッシュメモリ、磁気データ媒体、または光記憶媒体などの、１つまたは複数の揮発性または不揮発性メモリまたは記憶デバイスを含み得る。
【０１１０】
[0120]いくつかの態様では、システムメモリ４６は、ＣＰＵ３２およびＧＰＵ３４、ならびにディスプレイプロセッサ４２に、本開示におけるこれらの構成要素に属する機能を実行させる命令を含み得る。したがって、システムメモリ４６は、実行されると、１つまたは複数のプロセッサ（例えば、ＣＰＵ３２、ＧＰＵ３４、およびディスプレイプロセッサ４２）に様々な機能を実行させる命令を記憶したコンピュータ可読記憶媒体であり得る。
【０１１１】
[0121]いくつかの例では、システムメモリ４６は、非一時的な記憶媒体である。「非一時的」という用語は、記憶媒体が、搬送波または伝播信号で具現化されないことを示す。しかしながら、「非一時的」という用語は、システムメモリ４６が移動不可能であること、またはそのコンテンツが静的であることを意味するように解析されるべきではない。一例として、システムメモリ４６は、デバイス１８から取り除かれ、別のデバイスへ移動され得る。別の例として、システムメモリ４６と実質的に同様のメモリが、デバイス１８に挿入され得る。ある特定の例では、非一時的な記憶媒体は、（例えば、ＲＡＭにおいて）経時的に変化し得るデータを記憶し得る。
【０１１２】
[0122]ＣＰＵ３２およびＧＰＵ３４は、画像データおよび同様のものを、システムメモリ４６内に割り振られたそれぞれのバッファに記憶し得る。ディスプレイプロセッサ４２は、システムメモリ４６からデータを取り出し、生成された画像データによって表される画像を表示するようにディスプレイ４４を設定し得る。いくつかの例では、ディスプレイプロセッサ４２は、システムメモリ４６から取り出されたデジタル値を、ディスプレイ４４によって消費可能なアナログ信号へと変換するように構成されたデジタルアナログ変換器（ＤＡＣ）を含み得る。他の例では、ディスプレイプロセッサ４２は、処理のために、ディスプレイ４４にデジタル値を直接渡し得る。
【０１１３】
[0123]ディスプレイ４４は、モニタ、テレビジョン、投影デバイス、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイパネル、有機発光ダイオード（ＯＬＥＤ）ディスプレイのような発光ダイオード（ＬＥＤ）アレイ、ブラウン管（ＣＲＴ）ディスプレイ、電子ペーパ、表面伝導型電子放出素子ディスプレイ（ＳＥＤ）、レーザテレビジョンディスプレイ、ナノ結晶ディスプレイ、または別のタイプのディスプレイユニットを含み得る。ディスプレイ４４は、処理デバイス１８内に一体化され得る。例えば、ディスプレイ４４は、モバイル電話ハンドセットまたはタブレットコンピュータのスクリーンであり得る。代替として、ディスプレイ４４は、ワイヤードまたはワイヤレス通信リンクを介して処理デバイス１８に結合された独立型のデバイスであり得る。例えば、ディスプレイ４４は、ケーブルまたはワイヤレスリンクを介してパーソナルコンピュータに接続されたコンピュータモニタまたはフラットパネルディスプレイであり得る。
【０１１４】
[0124]処理デバイス１８が円形画像を受信する例では、ＧＰＵ３４は、ＧＰＵ２４に関して上記で説明されたもののような同様の動作に基づいて、投影画像を生成するように構成され得る。例えば、ＧＰＵ３４は、正距円筒投影画像またはパース・クインカンシャル投影画像を生成するために、円形画像をテクスチャマッピングし得、立方体、円筒、または球面投影画像については、同様の動作である。
【０１１５】
[0125]例えば、ＧＰＵ３４は、第１のロケーションにあるカメラデバイス１２Ａから生成された第１のセットの画像を（例えば、システムメモリ４６から）受信し得る。これらの第１のセットの画像は、円形画像および／または投影画像であり得る。第１のセットの画像が円形画像である例では、ＧＰＵ３４は、投影画像を生成するために、ＧＰＵ２４に関して上記で説明されたものと同様の動作を実行し得、システムメモリ４６に投影画像を記憶し得る。加えて、ＧＰＵ３４は、１つまたは複数のセンサ２６から収集された情報を受信し得る。カメラデバイス１２は、トランシーバ３０がシステムメモリ４６に記憶するために、収集された情報をそこから受信するサーバ１６に、それぞれ１つまたは複数のセンサ２６から収集された情報を送信し得、ＧＰＵ３４は、収集された情報をシステムメモリ４６から受信する。ＧＰＵ３４は、投影画像の方向付けを調整するために、１つまたは複数のセンサ２６から収集された情報を使用し得る。
【０１１６】
[0126]いくつかの例では、位置追跡装置３１は、観視者の目（例えば、視線）または頭部の位置を追跡し、ＣＰＵ３２に観視者の目または頭部の位置を示す情報を出力するように構成され得る。順に、ＣＰＵ３２は、画像コンテンツ１４をレンダリングするようにＧＰＵ３４に命令を提供する際に、観視者の目または頭部の位置を示す情報を提供し得る。画像コンテンツ１４Ｂをレンダリングする際に、ＧＰＵ３４は、観視者が彼または彼女の目の位置または頭部の位置を変えないように、画像コンテンツ１４Ｂを位置決めし得る。例えば、カメラデバイス１２Ａによってキャプチャされた画像コンテンツ１４Ａからのレンダリングされた第１のセットの画像から、カメラデバイス１２Ｂによってキャプチャされた画像コンテンツ１４Ｂからの第２のセットの画像に遷移するとき、ＧＰＵ３４は、レンダリングされた第１のセットの画像と共通の基準（例えば、観視者の目または頭部の位置）に、第２のセットの画像をレンダリングし得る。
【０１１７】
[0127]いくつかの例では、ＣＰＵ３２は、画像コンテンツ１４Ａと画像コンテンツ１４Ｂの間の共通性（commonality）を決定し得る。ＣＰＵ３２は、ＧＰＵ３４に、共通のコンテンツがディスプレイ４４上の同じロケーションに表示されるように、画像コンテンツ１４Ｂをレンダリングするように指示し得る。例えば、画像コンテンツ１４Ｂをレンダリングするために、ＣＰＵ３２は、ＧＰＵ３４に、共通のシーンコンテンツが、画像コンテンツ１４Ａについてのレンダリングされた第１のセットの画像における共通のシーンコンテンツのロケーションと同じロケーションにおいて、画像コンテンツ１４Ｂについてのレンダリングされた第２のセット画像において表示されるように、第１のセットの画像における画像コンテンツ１４Ａと、第２のセットの画像における画像コンテンツ１４Ｂとの両方に共通のシーンコンテンツをレンダリングするように指示し得る。このようにして、カメラデバイス１２Ａによってキャプチャされた画像コンテンツ１４Ａからのレンダリングされた第１のセットの画像から、カメラデバイス１２Ｂによってキャプチャされた画像コンテンツ１４Ｂからの第２のセットの画像に遷移する際に、ＧＰＵ３４は、レンダリングされた第１のセットの画像と共通の基準（例えば、共通のシーン）に、第２のセットの画像をレンダリングし得る。
【０１１８】
[0128]第１のセットの画像が投影画像である例では、投影画像は、既に方向付け基準に方向付けられていることがあり得る。このようなケースでは、ＧＰＵ３４は、さらに調整を行う必要がなくなり得る。しかしながら、いくつかの例では、第１のセットの画像は、投影画像であり得るが、投影画像は、方向付け基準に方向付けられていない場合がある。このような例では、ＧＰＵ３４は、投影画像の方向付けを、共通の方向付け基準に合わせて調整し得る。
【０１１９】
[0129]同様に、ＧＰＵ３４は、第２の異なるロケーションにあるカメラデバイス１２Ｂから生成された第２の異なるセットの画像を（例えば、システムメモリ４６から）受信し得る。これらの第２のセットの画像は、円形画像および／または投影画像であり得る。ＧＰＵ３４は、方向付け基準（例えば、レンダリングされた第１のセットの画像についての方向付け基準と同じ方向付け）を有する投影画像を生成するために、第１のセットの画像に関して上記で説明されたのと同様の動作を実行し得る。
【０１２０】
[0130]ＧＰＵ３４は、第１のセットの画像と第２のセットの画像との両方についての方向付けを同時に調整していないことがあり得るが、方向付けのそのような並行した調整は可能である。ＣＰＵ３２は、画像コンテンツ１４のうちのどれが表示のためにレンダリングされるべきかをＧＰＵ３４に指示し得る。例として、ＣＰＵ３２は、カメラデバイス１２Ａによってキャプチャされた画像コンテンツ１４Ａからの円形画像および／または投影画像が表示のためにレンダリングされるべきであることをＧＰＵ３４に指示し得る。この例では、ＧＰＵ３４は、（必要に応じて）第１のセットの画像についての方向付けを、方向付け基準に合わせて調整し得る。
【０１２１】
[0131]その後、ＣＰＵ３２が、カメラデバイス１２Ｂによってキャプチャされた画像コンテンツ１４Ｂからの円形画像および／または投影画像が表示のためにレンダリングされるべきであることをＧＰＵ３４に指示するとき、ＧＰＵ３４は、（必要に応じて）第２のセットの画像についての方向付けを、方向付け基準（例えば、レンダリングされた第１のセットの画像と同じ方向付け基準）に合わせて調整し得る。例えば、ＧＰＵ３４は、レンダリングされた第１のセットの画像が方向付け基準を有するように、第１のセットの画像の方向付けを調整し、レンダリングされた第２のセットの画像が方向付け基準（例えば、レンダリングされた第１のセットの画像と同じ方向付け基準）を有するように、第２のセットの画像の方向付けを調整し得る。上記で説明されたように、ＧＰＵ３４は、画像コンテンツ１４Ａおよび１４Ｂについての受信された投影画像が、（例えば、カメラデバイス１２Ａおよび１２Ｂ、サーバ１６、または何らかの他のデバイスによって）既に共通の方向付け基準に方向付けられているケースでのように、第１および第２のセットの画像の方向付けを調整する必要がなくなり得る。
【０１２２】
[0132]いずれにしても、いったんシステムメモリ４６が第１のセットの画像についての投影画像を記憶すると、ＧＰＵ３４は、方向付け基準に方向付けられた第１のセットの画像を表示のためにレンダリングし得る。その後、ＧＰＵ３４が、（例えば、観視者が、画像コンテンツ１４Ｂによってカバーされる領域に入るために、ユーザインターフェース３８と対話したので）第２のセットの画像に切り替わるとき、ＧＰＵ３４は、方向付け基準（例えば、レンダリングされた第１のセットの画像についての方向付け基準と同じ方向付け基準）に方向付けられた第２のセットの画像を表示のためにレンダリングし得る。このようにして、観視者は、画像コンテンツ１４Ａから画像コンテンツ１４Ｂに切り替える際に、不快な体験を知覚しなくなり得る。例えば、第２のセットの画像を表示のためにレンダリングすることは、レンダリングされた第１のセットの画像の表示について、第２のセットの画像を表示のためにレンダリングすることに切り替わることを含む。
【０１２３】
[0133]本開示で説明される例となる技法では、ＧＰＵ３４は、カメラデバイス１２のうちの異なるものからの異なるセットの画像を表示のためにレンダリングするための処理回路（例えば、プログラマブル回路および／または固定機能回路）を含むグラフィックス処理パイプラインを含む。例えば、ＧＰＵ３４は、例となる技法の動作を実行するために使用されるテクスチャハードウェア回路を含み得る。ＧＰＵ３４はまた、例となる技法の動作を実行するための、ブレンディングのための処理回路を含み得る。
【０１２４】
[0134]例えば、ＧＰＵ３４は、投影画像を球面メッシュモデル上にマッピングするために、テクスチャマッピングを使用し得る。球面メッシュモデルは、複数のプリミティブ（例えば、点、線、三角形、四角形、または他の多角形）を含み得、各プリミティブが１つまたは複数の頂点を有する。プリミティブの相互接続は、球面のメッシュモデルを形成する。ＧＰＵ３４は、第１の画像についての投影画像を球面メッシュモデル上にマッピングするために、テクスチャマッピングを使用し、可視の３６０度画像コンテンツを生成するために、球面メッシュモデルをレンダリングし得る。
【０１２５】
[0135]テクスチャマッピングを実行するために、ＧＰＵ３４は、投影画像からのピクセルを、球面メッシュモデルの３次元頂点（例えば、各頂点がｘ、ｙ、およびｚ座標を有する）上にマッピングし得る。結果は、投影画像のコンテンツを有する球面であり得る。例示として、地球儀を形成するために、球面上へとマッピングされている２次元の世界地図を想像されたい。その後、ＧＰＵ３４は、可視の３６０度画像を生成するために、この球面をレンダリングし得る。
【０１２６】
[0136]ＧＰＵ３４は、システムメモリ４６にレンダリングの結果を出力し得る。ディスプレイプロセッサ４２は、システムメモリ４６から画像コンテンツを取り出し、結果として得られた３６０度画像をディスプレイ４４上に表示し得る。いくつかの例では、ディスプレイ４４は、全球面の一部分を表示し得、観視者は、球面のどの部分を見るかを選択するために、（例えば、ディスプレイ４４またはユーザインターフェース３８を介して）デバイス１８とインターフェースし得る。
【０１２７】
[0137]このようにして、ＧＰＵ３４は、方向付け基準に方向付けられた第１のセットの画像を表示のためにレンダリングし、レンダリングされた第１のセットの画像についての方向付け基準と同じ方向づけ基準に方向づけられた第２のセットの画像を表示のためにレンダリングし得る。上記で説明されたように、ＧＰＵ３４は、第１のセットの画像と第２のセットの画像を同時に表示のためにレンダリングする必要はないが、レンダリングされた第１のセットの画像の表示から、第２のセットの画像を表示のためにレンダリングすることに切り替わり得る。しかしながら、第１のセットの画像および第２のセットの画像は、カメラデバイス１２のうちの異なるものから同時に生成され得る。
【０１２８】
[0138]いくつかの例では、方向付け基準は、地理的な方向であり、ここで、地理的な方向は、（例えば、１つまたは複数のセンサ２６からの）コンパス測定に基づく。例えば、ＧＰＵ３４は、カメラデバイス１２Ａに対して第１の地理的な方向に位置する画像コンテンツが、第１のセットの画像のレンダリングされた画像内の第１の座標に位置する（例えば、北が上部中央の座標に位置合わせされる）ように、第１のセットの画像を表示のためにレンダリングし得る。ＧＰＵ３４は、カメラデバイス１２Ｂに対して第２の地理的な方向に位置する画像コンテンツが、第２のセットの画像のレンダリングされた画像内の第２の座標に位置するように、第２のセットの画像を表示のためにレンダリングし得る。この例では、第１の地理的な方向および第２の地理的な方向は、（例えば、北に位置合わせされた）同じ地理的な方向であり、第１の座標および第２の座標は、同じ座標である（例えば、図５Ｂに例示されるような上部中央の座標、または図６Ｃに例示されるような上部右の座標である）。
【０１２９】
[0139]ＧＰＵ３４は、同じ方向付け基準に既に方向付けられている第１のセットの画像と第２のセットの画像とを受信し得る。いくつかの例では、ＧＰＵ３４は、第１のセットの画像に対する方向付け基準を示す情報を受信し、第２のセットの画像に対する方向付け基準を示す情報を受信し得る。ＧＰＵ３４は、第１および第２のセットの画像に対する方向付け基準を示す情報に基づいて、第１および第２のセットの画像の方向付けを調整し得る。このような例では、ＧＰＵ３４は、調整された方向付けを有する第１および第２のセットの画像を表示のためにレンダリングし得る。
【０１３０】
[0140]さらに、いくつかの例では、ＧＰＵ３４は、２つの異なる方向付け基準（例えば、地理的な方向位置合わせおよび傾き位置合わせ）または３つの異なる方向付け基準（例えば、地理的な方向位置合わせ（方位角）、傾き位置合わせ（高度）、および回転角）に対して、第１および第２のセットの画像を表示のためにレンダリングし得る。例えば、ＧＰＵ３４は、第１の方向付け基準（例えば、地理的な方向位置合わせ）および第２の方向付け基準（例えば、傾き位置合わせ）、および／または第３の方向付け（例えば、回転角）に方向付けられた第１のセットの画像を表示のためにレンダリングし得る。ＧＰＵ３４はまた、第１の方向付けおよび第１のセットの画像についての第２の方向付け基準と同じ第２の方向付け基準、および第１のセットの画像についての第３の方向付け基準と同じ第３の方向付け基準に方向付けられた第２のセットの画像を表示のためにレンダリングし得る。
【０１３１】
[0141]いくつかの例では、ＧＰＵ３４は、実質的に同じロケーションにおいて表示されている第１のセットの画像と第２のセットの画像との両方に共通のシーンコンテンツについて、第２のセットの画像を表示のためにレンダリングし得る。例えば、ＧＰＵ３４は、共通のシーンコンテンツが、レンダリングされた第１のセットの画像における共通のシーンコンテンツのロケーションと同じロケーションにおいて、レンダリングされた第２のセット画像において表示されるように、第１のセットの画像と第２のセットの画像との両方に共通のシーンコンテンツをレンダリングし得る。いくつかの例では、ＧＰＵ３４は、観視者が第１のセットの画像を見ていたときの、観視者の視線または頭部の位置に基づいて、第２のセットの画像を表示のためにレンダリングし得る（例えば、観視者の視線または頭部の位置に基づいて方向付け基準を選択する）。
【０１３２】
[0142]図８は、さらなる詳細において、図６の処理デバイス１８のＣＰＵ３２、ＧＰＵ３４、およびシステムメモリ４６を例示するブロック図である。図８に示されるように、ＣＰＵ３２は、ＧＰＵ３４およびメモリ４６に通信可能に結合され、ＧＰＵ３４は、ＣＰＵ３２およびメモリ４６に通信可能に結合される。ＧＰＵ３４は、いくつかの例では、ＣＰＵ３２と共にマザーボード上へと一体化され得る。追加の例では、ＧＰＵ３４は、ＣＰＵ３２を含むマザーボードのポートに取り付けられたグラフィックスカード上にインプリメントされ得る。さらなる例では、ＧＰＵ３４は、ＣＰＵ３２と相互運用するように構成された周辺デバイス内に組み込まれ得る。追加の例では、ＧＰＵ３４は、システムオンチップ（ＳｏＣ）を形成するＣＰＵ３２と同じ処理回路上に位置し得る。
【０１３３】
[0143]ＣＰＵ３２は、アプリケーション４８、グラフィックスＡＰＩ５０、ＧＰＵドライバ５２、およびオペレーティングシステム５４を実行するように構成される。ＧＰＵ３４は、コントローラ５６、シェーダコア５８、および１つまたは複数の固定機能ユニット６０を含む。
【０１３４】
[0144]ビューイングアプリケーション４８は、グラフィックコンテンツを表示させる１つまたは複数の命令、または非グラフィックスタスク（例えば、汎用コンピューティングタスク）をＧＰＵ３４上で実行させる１つまたは複数の命令のうちの少なくともいくつかを含み得る。例として、ビューイングアプリケーション４８は、ＣＰＵ３２に、ＧＰＵ３４に３６０度ビデオまたは画像を表示のためにレンダリングさせることを行わせ得る。ビューイングアプリケーション４８は、グラフィックスＡＰＩ５０に対して命令を発行し得る。グラフィックスＡＰＩ５０は、ソフトウェアアプリケーション４８から受信される命令を、ＧＰＵドライバ５２によって消費可能なフォーマットに変換するランタイムサービスであり得る。いくつかの例では、グラフィックスＡＰＩ５０およびＧＰＵドライバ５２は、同じソフトウェアサービスの一部であり得る。
【０１３５】
[0145]ＧＰＵドライバ５２は、グラフィックスＡＰＩ５０を介して、ビューイングアプリケーション４８から命令を受信し、命令をサービスするためにＧＰＵ３４の動作を制御する。例えば、ＧＰＵドライバ５２は、１つまたは複数のコマンドストリームを作成し（formulate）、コマンドストリームをメモリ４６に入れ、ＧＰＵ３４にコマンドストリームを実行するように指示し得る。ＧＰＵドライバ５２は、コマンドストリームをメモリ４６に入れ、オペレーティングシステム５４を介して（例えば、１つまたは複数のシステムコールを介して）ＧＰＵ３４と通信し得る。
【０１３６】
[0146]ＧＰＵ３４のコントローラ５６は、コマンドストリームに格納されたコマンドを取り出し、シェーダコア５８および１つまたは複数の固定機能ユニット６０上での実行のために、コマンドをディスパッチするように構成される。コントローラ５６は、１つまたは複数の固定機能ユニット６０、または１つまたは複数の固定機能ユニット６０およびシェーダコア５８のサブセット上での実行のために、コマンドストリームからのコマンドをディスパッチし得る。コントローラ５６は、ＧＰＵ３４のハードウェアの固定機能回路であり得、ソフトウェアまたはファームウェアを実行するためのＧＰＵ３４のプログラマブル回路であり得、または両方の組合せである。
【０１３７】
[0147]シェーダコア５８は、プログラマブル回路（例えば、ソフトウェアが実行される処理コア）を含む。１つまたは複数の固定機能ユニット６０は、最小限の機能的柔軟性と共に、限定された動作を実行するように構成された固定機能回路を含む。シェーダコア５８および１つまたは複数の固定機能ユニット６０は共に、グラフィックス処理を実行するように構成されたグラフィックスパイプラインを形成する。
【０１３８】
[0148]シェーダコア５８は、ＣＰＵ３２からＧＰＵ３４上へとダウンロードされる１つまたは複数のシェーダプログラムを実行するように構成され得る。いくつかの例では、シェーダプログラムは、高レベルシェーディング言語（例えば、ＯｐｅｎＧＬシェーディング言語（ＧＬＳＬ）、高レベルシェーディング言語（ＨＬＳＬ）、グラフィックスのためのＣ言語（Ｃｇ）シェーディング言語、等）で書かれたプログラムのコンパイルされたバージョンであり得る。いくつかの例では、シェーダコア５８は、並行して動作するように構成された複数の処理ユニット（例えば、ＳＩＭＤパイプライン）を含み得る。シェーダコア５８は、シェーダプログラム命令を記憶するプログラムメモリと、プログラムメモリにおける実行されている現在の命令またはフェッチされるべき次の命令を示す実行状態レジスタ（例えば、プログラムカウンタレジスタ）とを有し得る。シェーダコア５８上で実行されるシェーダプログラムの例は、例えば、頂点シェーダ、ピクセルシェーダ（フラグメントシェーダとも呼ばれる）、ジオメトリシェーダ、ハルシェーダ、ドメインシェーダ、コンピュートシェーダ、および／または統合型シェーダを含む。
【０１３９】
[0149]固定機能ユニット６０は、ある特定の機能を実行するためにハードワイヤードであるハードウェアを含み得る。固定機能ハードウェアは、異なる機能を実行するために、例えば、１つまたは複数の制御信号を介して、設定可能であり得るが、固定機能ハードウェアは、典型的に、ユーザによりコンパイルされたプログラムを受信することが可能であるプログラムメモリを含まない。いくつかの例では、１つまたは複数の固定機能ユニット６０は、例えば、ラスタ演算（例えば、奥行きテスト、シザーズテスト（scissors testing）、アルファブレンディング、等）を実行する処理ユニットを含み得る。
【０１４０】
[0150]ＣＰＵ３２のＧＰＵドライバ５２は、メモリ４６にコマンドストリームを書き込むように構成され得、ＧＰＵ３４のコントローラ５６は、メモリ４６からコマンドストリームの１つまたは複数のコマンドを読み出すように構成され得る。いくつかの例では、コマンドストリームの１つまたは両方が、メモリ４６においてリングバッファとして記憶され得る。リングバッファは、循環アドレッシング方式を用いたバッファであり得、ここで、ＣＰＵ３２およびＧＰＵ３４は、リングバッファへのデータの書き込みおよびリングバッファからのデータの読み出しに関連付けられた同期状態変数（synchronized state variables）を維持する。例えば、第１のコマンドストリームがリングバッファである場合、ＣＰＵ３２およびＧＰＵ３４の各々は、リングバッファにおいて書き込まれるべき次のアドレスを示す書き込みポインタと、リングバッファにおいて読み出されるべき次のアドレスを示す読み出しポインタとを記憶し得る。
【０１４１】
[0151]ＣＰＵ３２が新しいコマンドをリングバッファに書き込むとき、ＣＰＵ３２は、ＣＰＵ３２における書き込みポインタを更新し、ＧＰＵ３４に、ＧＰＵ３４における書き込みポインタを更新するように指示し得る。同様に、ＧＰＵ３４がリングバッファから新しいコマンドを読み出すとき、ＧＰＵ３４は、ＧＰＵ３４における読み出しポインタを更新し、ＣＰＵ３２に、ＣＰＵ３２における読み出しポインタを更新するように指示し得る。他の同期メカニズムも可能である。読み出しおよび／または書き込みポインタが、リングバッファのために割り振られたアドレスの範囲内の最上位アドレスに達したとき、読み出しおよび／または書き込みポインタは、循環アドレッシング方式をインプリメントするために、最下位アドレスにラップアラウンドし得る。
【０１４２】
[0152]例となるＧＰＵコントローラ５６および例となるＧＰＵドライバ５２の例となる動作が、ここで図８に関して説明される。ＧＰＵドライバ５２は、ＧＰＵ３４によって実行されるべきグラフィックス動作および／または汎用コンピューティング動作を指定する１つまたは複数の命令を、ビューイングアプリケーション４８から受信する。ＧＰＵドライバ５２は、出力コマンドストリームをメモリ４６に入れ、これは、ＧＰＵコントローラ５６によってアクセス可能である。ＧＰＵドライバ５２は、ビューイングアプリケーション４８に対応するコマンドストリームが、処理のために利用可能であることをＧＰＵコントローラ５６に通知する。例えば、ＧＰＵドライバ５２は、コマンドストリームが実行できる状態にあることを示す１つまたは複数の値をＧＰＵレジスタ（例えば、ＧＰＵ３４によってポーリングされるＧＰＵハードウェアレジスタおよび／またはＧＰＵ３４によってポーリングされるＧＰＵメモリマップドレジスタ（memory-mapped register））に書き込み得る。
【０１４３】
[0153]コマンドストリームが実行できる状態にあるという通知があると、ＧＰＵ３４のコントローラ５６は、コマンドストリームを実行することを開始するために、リソースがＧＰＵ３４上で現在利用可能であるかどうかを決定し得る。リソースが利用可能である場合、コントローラ５６は、コマンドストリームにおけるコマンドをディスパッチすることを開始する。
【０１４４】
[0154]グラフィックス処理の一部として、ＣＰＵ３２は、ある特定のグラフィックス処理タスクをＧＰＵ３４にオフロードし得る。例えば、アプリケーション４８は、球面メッシュモデルのプリミティブについての頂点座標を生成し、それらの座標を球面メッシュモデル座標６４としてメモリ４６に記憶し得る。加えて、アプリケーション４８は、処理デバイス１８がサーバ１６から受信した画像のセットを記憶し得る。例えば、アプリケーション４８は、カメラデバイス１２のそれぞれのものから生成される画像コンテンツ１４についてそれぞれ、画像のセット６２Ａ〜６２Ｎを記憶し得る。いくつかの例では、アプリケーション４８は、画像のセット６２Ａ〜６２Ｎの全てを同時に記憶する必要はないが、そのような記憶は可能である。アプリケーション４８は、ＧＰＵ３４が表示のためにレンダリングすべき、画像コンテンツ１４についての画像のセットを記憶し得る。
【０１４５】
[0155]ＧＰＵドライバ５２は、コントローラ５６に、表示のためにレンダリングするための、画像のセット６２Ａ〜６２Ｎのうちの１つを取り出すように指示し得る。ＧＰＵ３４が投影画像を生成するか、または投影画像の方向付けを調整することになる例では、ＧＰＵドライバ５２は、コントローラ５６に、投影画像の生成および／または投影画像の方向付けを共通の方向付け基準に合わせる調整のために、画像のセット６２Ａ〜６２Ｎのうちの１つを取り出すよう指示し得る。
【０１４６】
[0156]必要に応じて、ＧＰＵドライバ５２は、コントローラ５６に、固定機能ユニット６０の例であるテクスチャマッピングハードウェアに上記で説明された動作に基づいて円形画像から投影画像を生成するためにテクスチャマッピングを実行させるように指示し得る。また、必要に応じて、ＧＰＵドライバ５２は、コントローラ５６に、シェーダコア５８に投影画像を共通の方向付け基準に合わせて調整するために開発された頂点シェーダおよび／またはピクセルシェーダを実行させるように指示し得る。
【０１４７】
[0157]例えば、ビューイングアプリケーション４８は、投影画像を複数のプリミティブに分割し得る。シェーダコア５８上で実行される頂点シェーダは、投影画像の方向付けを共通の方向付け基準に合わせて調整するために、プリミティブの頂点座標を調整し得る。例えば、頂点シェーダは、ビューイングアプリケーション４８によって定義された乗算マトリクスを受信し得、投影画像の各頂点がそれによって乗算されるべきその値は、投影画像を共通の方向付け基準に位置合わせする新しい頂点を生成するためのものである。投影画像が共通の方向付け基準に既に適正に方向付けられている例では、頂点シェーダによるこの動作は、必要とされないことがあり得る。
【０１４８】
[0158]ＧＰＵドライバ５２は、投影画像を球面メッシュモデルにマッピングするためのテクスチャマッピングを実行するために、固定機能ユニット６０のテクスチャマッピングハードウェアにコマンドをディスパッチするようにコントローラに指示し得る。テクスチャマッピングを実行するために、ＧＰＵドライバ５２は、投影画像のどの座標が球面メッシュモデル座標６４のうちのどのものに対応するかをＧＰＵ３４に示し得る。このような対応関係を示すための１つの例となる方法が、シェーダコア５８の回路上で実行されることになる頂点シェーダを通じてである。頂点シェーダの機能は、球面メッシュモデルの頂点に対して処理を実行することである。そのような処理を実行するために、アプリケーション４８は、グラフィックスＡＰＩ５０およびＧＰＵドライバ５２を介して、コントローラ５６に、メモリ４６から頂点座標（例えば、球面メッシュモデル座標６４として記憶された球面メッシュモデルのプリミティブについての頂点座標）のバッチを取り出すように指示する。加えて、アプリケーション４８は、グラフィックスＡＰＩ５０およびＧＰＵドライバ５２を介して、コントローラ５６に、投影画像（例えば、画像のセット６２Ａ〜６２Ｎのうちの１つ）についての座標を取り出すように指示し得る。
【０１４９】
[0159]コントローラ５６は、球面メッシュモデルのプリミティブについての頂点座標のｘ、ｙ、ｚ座標と、対応するプリミティブについての投影画像の座標のｓ、ｔ座標とを、処理のための入力として頂点シェーダに提供し得る。加えて、アプリケーション４８は、グラフィックスＡＰＩ５０およびＧＰＵドライバ５２を介して、固定機能ユニット６０の例であるテクスチャハードウェア回路に、投影画像のプリミティブを取り出し、ローカルメモリ３６（ローカルメモリ３６は、図７に例示されている）にプリミティブを記憶するように指示する。
【０１５０】
[0160]アプリケーション４８は、グラフィックスＡＰＩ５０およびＧＰＵドライバ５２を介して、テクスチャハードウェア回路に、球面メッシュモデルプリミティブ上へ投影画像のプリミティブをオーバレイするように指示するコマンドを、テクスチャハードウェア回路に対して発行し得る。テクスチャハードウェア回路は、投影画像のプリミティブが（例えば、補間、フィルタリング、およびテクスチャプリミティブをスケーリングするための他の数学的演算を介して）球面メッシュモデルのプリミティブ内に収まるように、投影画像のプリミティブを、アプリケーション４８によって指示されるように引き伸ばす（stretch）または他の方法でサイズ変更し得る。テクスチャハードウェア回路は、投影画像のプリミティブの頂点属性に基づいて、頂点属性（例えば、色および不透明度の値）を球面メッシュモデルの頂点に割り当て得る。
【０１５１】
[0161]ＧＰＵ３４の固定機能ユニット６０は、頂点シェーダからの出力をラスタライズし、ラスタライズされたプリミティブをピクセルシェーダに出力し得る。アプリケーション４８は、グラフィックスＡＰＩ５０およびＧＰＵドライバ５２を介して、ＧＰＵ３４のコントローラ５６に、シェーダコア５８の回路上でピクセルシェーダ（フラグメントシェーダとも呼ばれる）を実行させ得る。ピクセルシェーダは、投影画像のプリミティブからのピクセル値を、ラスタライズされたプリミティブにおける対応するピクセルに割り当てて、３６０度画像コンテンツを表示のためにレンダリングし得る。ＣＰＵ３２およびＧＰＵ３４は、投影画像のプリミティブおよび球面メッシュモデルのプリミティブの全てについて、これらのステップを繰り返し得る。
【０１５２】
[0162]投影画像を表示のためにレンダリングすることからの結果は、ＧＰＵ３４がメモリ４６に記憶する画像のストリーム６６である。ディスプレイプロセッサ４２は、画像のストリーム６６を取り出し、ディスプレイ４４が消費するために画像のストリームを処理する。観視者が、３６０度画像コンテンツにおいて移動するために、ユーザインターフェース３８と対話するとき、ＣＰＵ３２は、ＧＰＵ３４に、画像のセット６２Ａ〜６２Ｎのうちの１つをレンダリングすることを停止させ、画像のセット６２Ａ〜６２Ｎのうちの別の１つをレンダリングすることを開始させ得る。ＣＰＵ３２およびＧＰＵ３４は、新しい画像のセット６２Ａ〜６２Ｎに対して上記の例となる動作を繰り返し得る。その後、ＧＰＵ３４は、画像コンテンツ１４のうちの１つから画像コンテンツ１４のうちの別の１つへのシームレスな遷移のために、新しい画像のセット６２Ａ〜６２Ｎからの結果として得られた３６０度画像コンテンツを、画像のストリーム６６に追加し得る。
【０１５３】
[0163]図９は、本開示で説明される１つまたは複数の例となる技法による、例となる動作の方法を例示するフローチャートである。ＧＰＵ３４は、カメラデバイス１２のうちの第１のロケーションに位置する第１のものからの第１のセットの画像を受信する（６８）。第１のセットの画像は、既に共通の方向付け基準に方向付けられている第１のセットの投影画像であり得るか、まだ共通の方向付け基準に方向付けられていない第１のセットの投影画像であり得るか、またはレンズ２０Ａおよび２０Ｂによってキャプチャされた第１のセットの円形画像であり得る。投影画像が共通の方向付け基準に方向付けられていない場合、ＧＰＵ３４は、画像を共通の方向付け基準に方向付け得る。円形画像の場合、ＧＰＵ３４は、投影画像を生成するために、円形画像をテクスチャマッピングし、その後、投影画像を共通の方向付け基準に方向付け得る。
【０１５４】
[0164]ＧＰＵ３４は、方向付け基準に方向付けられた第１の画像を表示のためにレンダリングし得る（７０）。例えば、ＧＰＵ３４は、投影画像を球面メッシュモデルにテクスチャマッピングし、表示のための画像コンテンツの球面に球面メッシュモデルをレンダリングし得る。ＧＰＵ３４は、画像のストリーム６６として、画像コンテンツの球面の画像コンテンツを記憶し得る。
【０１５５】
[0165]ＣＰＵ３２が、ＧＰＵ３４は、カメラデバイス１２のうちの第２の異なるものによってキャプチャされた表示画像コンテンツをレンダリングする（例えば、異なる画像コンテンツを表示のためにレンダリングすることに切り替わる）べきであると決定したとき、ＧＰＵ３４は、カメラデバイス１２のうちの第２の異なるロケーションにある第２の異なるものからの第２のセットの画像を受信する（７２）。第１のセットの画像と同様に、ＧＰＵ３４は、投影画像を生成し、レンダリングされた第１のセットの画像と同じ方向付け基準である共通の方向付け基準に投影画像を方向付け得る。
【０１５６】
[0166]ＧＰＵ３４は、レンダリングされた第１のセットの画像と同じ方向付けの基準に方向付けられた第２の画像を表示のためにレンダリングし得る（７４）。例えば、ＧＰＵ３４は、第２のセットの画像の投影画像を球面メッシュモデルにテクスチャマッピングし、表示のために画像コンテンツの球面に球面メッシュモデルをレンダリングし得る。ＧＰＵ３４は、画像のストリーム６６として、画像コンテンツの球面の画像コンテンツを記憶し得る。
【０１５７】
[0167]１つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの任意の組合せでインプリメントされ得る。ソフトウェアでインプリメントされる場合、これら機能は、コンピュータ可読媒体上で１つまたは複数の命令またはコードとして記憶または送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、コンピュータ可読記憶媒体を含み得、これは、データ記憶媒体のような有形媒体に対応する。このようにして、コンピュータ可読媒体は、一般に、非一時的である有形のコンピュータ可読記憶媒体に対応し得る。データ記憶媒体は、本開示で説明された技法のインプリメンテーションのための命令、コードおよび／またはデータ構造を取り出すために、１つまたは複数のコンピュータまたは１つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【０１５８】
[0168]限定ではなく例として、このようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスク記憶装置、磁気ディスク記憶装置、または他の磁気記憶デバイス、フラッシュメモリ、あるいは、データ構造または命令の形式で所望のプログラムコードを記憶するために使用され得、かつコンピュータによってアクセスされ得るその他任意の媒体を備え得る。コンピュータ可読記憶媒体およびデータ記憶媒体は、搬送波、信号、または他の一時的な媒体を含まないが、代わりに非一時的な有形の記憶媒体を対象にすることが理解されるべきである。ここで使用される場合、ディスク（disk）およびディスク（disc）は、コンパクトディスク（ＣＤ）、レーザーディスク（登録商標）、光ディスク、デジタル多目的ディスク（ＤＶＤ）、フロッピー（登録商標）ディスク、およびブルーレイ（登録商標）ディスクを含み、ここでディスク（disks）は、通常磁気的にデータを再生し、一方ディスク（discs）は、レーザーを用いて光学的にデータを再生する。上記の組合せもまた、コンピュータ可読媒体の範囲内に含まれるべきである。
【０１５９】
[0169]命令は、１つまたは複数のデジタルシグナルプロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、または他の同等の集積されたまたはディスクリートな論理回路などの、１つまたは複数のプロセッサによって実行され得る。したがって、ここで使用される場合、「プロセッサ」という用語は、任意の前述の構造またはここで説明された技法のインプリメンテーションに好適なその他任意の構造を指し得る。加えて、いくつかの態様では、ここで説明された機能は、符号化および復号のために構成された専用のハードウェアおよび／またはソフトウェアモジュール内に提供され得、または、複合コーデックに組み込まれ得る。また、これら技法は、１つまたは複数の回路または論理要素において完全にインプリメントされ得る。
【０１６０】
[0170]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（例えば、チップセット）を含む、幅広い様々なデバイスまたは装置でインプリメントされ得る。様々な構成要素、モジュール、またはユニットが、開示された技法を実行するように構成されたデバイスの機能的な態様を強調するために、本開示において説明されているが、必ずしも異なるハードウェアユニットによる実現を必要とするわけではない。むしろ、上記で説明されたように、様々なユニットは、コーデックハードウェアユニットにおいて組み合わせられるか、または、好適なソフトウェアおよび／またはファームウェアと併せて、上記で説明されたような１つまたは複数のプロセッサを含む、相互運用ハードウェアユニットの集合によって提供され得る。
【０１６１】
[0171]様々な例が説明された。これらおよび他の例は、以下の特許請求の範囲の範囲内にある。
【図１】
2020502893.tif 000003
【図２Ａ】
2020502893.tif 000004
2020502893.tif 000005
【図２Ｂ】
2020502893.tif 000006
2020502893.tif 000007
【図３】
2020502893.tif 000008
【図４Ａ−４Ｂ】
2020502893.tif 000009
【図５Ａ】
2020502893.tif 000010
【図５Ｂ】
2020502893.tif 000011
【図６Ａ−６Ｂ】
2020502893.tif 000012
【図６Ｃ】
2020502893.tif 000013
【図７】
2020502893.tif 000014
【図８】
2020502893.tif 000015
【図９】
2020502893.tif 000016
【国際調査報告】
2020502893.tif 000017
2020502893.tif 000018
2020502893.tif 000019