JP2020502893A - 球面画像コンテンツのための方向付けられた画像スティッチング - Google Patents

球面画像コンテンツのための方向付けられた画像スティッチング Download PDF

Info

Publication number
JP2020502893A
JP2020502893A JP2019526583A JP2019526583A JP2020502893A JP 2020502893 A JP2020502893 A JP 2020502893A JP 2019526583 A JP2019526583 A JP 2019526583A JP 2019526583 A JP2019526583 A JP 2019526583A JP 2020502893 A JP2020502893 A JP 2020502893A
Authority
JP
Japan
Prior art keywords
images
orientation
display
image
camera device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2019526583A
Other languages
English (en)
Inventor
フォルタンプール、ビジャン
グェン、フィ・フン・レ
ビ、ニン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2020502893A publication Critical patent/JP2020502893A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • G06T3/047
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/012Head tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/013Eye tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/698Control of cameras or camera modules for achieving an enlarged field of view, e.g. panoramic image capture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose

Abstract

画像コンテンツを生成することに関する技法が説明される。グラフィックス処理ユニット(GPU)が、第1のロケーションにおける第1のカメラデバイスから生成された第1のセットの画像を受信することと、第1のカメラデバイスは、第1の方向付けを有し、方向付け基準に方向付けられた第1のセットの画像を表示のためにレンダリングすることと、第2の異なるロケーションにおける第2の異なるカメラデバイスから生成された第2の異なるセットの画像を受信することと、第2のカメラデバイスは、第2の方向付けを有し、第2の方向付けは、第1の方向付けとは異なっており、方向付け基準に方向付けられた第2のセットの画像を表示のためにレンダリングすることとを行うように構成される。

Description

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

Claims (28)

  1. 画像コンテンツを生成するための方法であって、前記方法は、
    第1のロケーションにおける第1のカメラデバイスから生成された第1のセットの画像を受信することと、前記第1のカメラデバイスは、第1の方向付けを有し、
    方向付け基準に方向付けられた前記第1のセットの画像を表示のためにレンダリングすることと、
    第2の異なるロケーションにおける第2の異なるカメラデバイスから生成された第2の異なるセットの画像を受信することと、前記第2のカメラデバイスは、第2の方向付けを有し、前記第2の方向付けは、前記第1の方向付けとは異なっており、
    前記方向付け基準に方向付けられた前記第2のセットの画像を表示のためにレンダリングすることと
    を備える、方法。
  2. 前記第1のセットの画像が表示のためにレンダリングされるとき、観視者の視線または頭部の位置を決定すること
    をさらに備え、
    ここにおいて、前記方向付け基準は、前記観視者の前記決定された視線または頭部の位置に基づいて選択される、
    請求項1に記載の方法。
  3. 前記方向付け基準は、地理的な方向を備える、請求項1に記載の方法。
  4. 前記第1のセットの画像を表示のためにレンダリングすることは、前記第1のカメラデバイスに対して第1の地理的な方向に位置する画像コンテンツが、前記第1のセットの画像のレンダリングされた画像内の第1の座標に位置するように、前記第1のセットの画像を表示のためにレンダリングすることを備え、前記第2のセットの画像を表示のためにレンダリングすることは、前記第2のカメラデバイスに対して第2の地理的な方向に位置する画像コンテンツが、前記第2のセットの画像のレンダリングされた画像内の第2の座標に位置するように、前記第2のセットの画像を表示のためにレンダリングすることを備え、前記第1の地理的な方向および前記第2の地理的な方向は、同じ地理的な方向であり、前記第1の座標および前記第2の座標は、同じ座標である、請求項1に記載の方法。
  5. 前記第2のセットの画像を表示のためにレンダリングすることは、前記レンダリングされた第1のセットの画像の表示から、前記第2のセットの画像を表示のためにレンダリングすることに切り替わることを備える、請求項1に記載の方法。
  6. 前記第1のセットの画像に対する前記方向付け基準を示す情報を受信することと、
    前記第2のセットの画像に対する前記方向付け基準を示す情報を受信することと、
    前記第1のセットの画像に対する前記方向付け基準を示す前記情報に基づいて、前記第1のセットの画像の方向付けを調整することと、
    前記第2のセットの画像に対する前記方向付け基準を示す前記情報に基づいて、前記第2のセットの画像の方向付けを調整することと、
    をさらに備え、
    ここにおいて、前記第1のセットの画像を表示のためにレンダリングすることは、前記調整された方向付けを有する前記第1のセットの画像を表示のためにレンダリングすることを備え、
    ここにおいて、前記第2のセットの画像を表示のためにレンダリングすることは、前記調整された方向付けを有する前記第2のセットの画像を表示のためにレンダリングすることを備える、
    請求項1に記載の方法。
  7. 前記第1のセットの画像を受信することは、前記方向付け基準に方向付けられた前記第1のセットの画像を受信することを備え、前記第2のセットの画像を受信することは、前記方向付け基準に方向付けられた前記第2のセットの画像を受信することを備える、請求項1に記載の方法。
  8. 前記方向付け基準は、第1の方向付け基準を備え、前記第1のセットの画像を表示のためにレンダリングすることは、前記第1の方向付け基準および第2の方向付け基準に方向付けられた前記第1のセットの画像を表示のためにレンダリングすることを備え、前記第2のセットの画像を表示のためのレンダリングすることは、前記第1の方向付けおよび前記第2の方向付け基準に方向付けられた前記第2のセットの画像を表示のためにレンダリングすることを備える、請求項1に記載の方法。
  9. 前記第1のセットの画像を表示のためにレンダリングすることは、前記第1の方向付け基準、前記第2の方向付け基準、および第3の方向付け基準に方向付けられた前記第1のセットの画像を表示のためにレンダリングすることを備え、前記第2のセットの画像を表示のためにレンダリングすることは、前記第1の方向付け基準、前記第2の方向付け基準、および前記第3の方向付け基準に方向付けられた前記第2のセットの画像を表示のためにレンダリングすることを備える、請求項8に記載の方法。
  10. 前記第1のカメラデバイスは、複数のレンズを備え、前記第2のカメラデバイスは、複数のレンズを備え、前記第1のセットの画像を受信することは、前記第1のカメラデバイスの前記複数のレンズのうちの少なくとも2つのレンズによってキャプチャされた画像コンテンツから生成された前記第1のセットの画像を受信することを備え、前記第2のセットの画像を受信することは、前記第2のカメラデバイスの前記複数のレンズのうちの少なくとも2つのレンズによってキャプチャされた画像コンテンツから生成された前記第2のセットの画像を受信することを備える、請求項1に記載の方法。
  11. 前記第1のセットの画像を受信することは、前記第1のカメラデバイスの魚眼レンズによってキャプチャされた複数の正距円筒画像を受信することを備え、前記第2のセットの画像を受信することは、前記第2のカメラデバイスの魚眼レンズによってキャプチャされた複数の正距円筒画像を受信することを備える、請求項1に記載の方法。
  12. 前記第1のセットの画像および前記第2のセットの画像は、同時に生成される、請求項1に記載の方法。
  13. 前記第2のセットの画像を表示のためにレンダリングすることは、共通のシーンコンテンツが、前記レンダリングされた第1のセットの画像における前記共通のシーンコンテンツのロケーションと同じロケーションにおいて、前記レンダリングされた第2のセット画像において表示されるように、前記第1のセットの画像と前記第2のセットの画像との両方に共通のシーンコンテンツをレンダリングすることを備える、請求項1に記載の方法。
  14. 画像コンテンツを生成するためのデバイスであって、前記デバイスは、
    第1のロケーションにおける第1のカメラデバイスから生成された第1のセットの画像を記憶することと、前記第1のカメラデバイスは、第1の方向付けを有し、
    第2の異なるロケーションにおける第2の異なるカメラデバイスから生成された第2の異なるセットの画像を記憶することと、前記第2のカメラデバイスは、第2の方向付けを有し、前記第2の方向付けは、前記第1の方向付けとは異なっている、
    を行うように構成されたメモリデバイスと、
    固定機能回路またはプログラマブル回路のうちの少なくとも1つを備えるグラフィックス処理ユニット(GPU)と、前記GPUは、
    前記メモリデバイスから前記第1のセットの画像を受信することと、
    方向付け基準に方向付けられた前記第1のセットの画像を表示のためにレンダリングすることと、
    前記メモリデバイスから前記第2のセットの画像を受信することと、
    前記方向付け基準に方向付けられた前記第2のセットの画像を表示のためにレンダリングすることと
    を行うように構成される、
    を備える、デバイス。
  15. 前記第1のセットの画像が表示のためにレンダリングされるとき、観視者の視線または頭部の位置を決定するように構成された追跡回路
    をさらに備え、
    ここにおいて、前記方向付け基準は、前記観視者の前記決定された視線または頭部の位置に基づいて選択される、
    請求項14に記載のデバイス。
  16. 前記第1のセットの画像を表示のためにレンダリングするために、前記GPUは、前記第1のカメラデバイスに対して第1の地理的な方向に位置する画像コンテンツが、前記第1のセットの画像のレンダリングされた画像内の第1の座標に位置するように、前記第1のセットの画像を表示のためにレンダリングするように構成され、前記第2のセットの画像を表示のためにレンダリングするために、前記GPUは、前記第2のカメラデバイスに対して第2の地理的な方向に位置する画像コンテンツが、前記第2のセットの画像のレンダリングされた画像内の第2の座標に位置するように、前記第2のセットの画像を表示のためにレンダリングするように構成され、前記第1の地理的な方向および前記第2の地理的な方向は、同じ地理的な方向であり、前記第1の座標および前記第2の座標は、同じ座標である、請求項14に記載のデバイス。
  17. 前記第2のセットの画像を表示のためにレンダリングするために、前記GPUは、前記第1のセットの画像の表示のためにレンダリングすることから、前記第2のセットの画像を表示のためにレンダリングすることに切り替わるように構成される、請求項14に記載のデバイス。
  18. 前記GPUは、
    前記第1のセットの画像に対する前記方向付け基準を示す情報を受信することと、
    前記第2のセットの画像に対する前記方向付け基準を示す情報を受信することと、
    前記第1のセットの画像に対する前記方向付け基準を示す前記情報に基づいて、前記第1のセットの画像の方向付けを調整することと、
    前記第2のセットの画像に対する前記方向付け基準を示す前記情報に基づいて、前記第2のセットの画像の方向付けを調整することと
    を行うように構成され、
    ここにおいて、前記第1のセットの画像を表示のためにレンダリングするために、前記GPUは、前記調整された方向付けを有する前記第1のセットの画像を表示のためにレンダリングするように構成され、
    ここにおいて、前記第2のセットの画像を表示のためにレンダリングするために、前記GPUは、前記調整された方向付けを有する前記第2のセットの画像を表示のためにレンダリングするように構成される、
    請求項14に記載のデバイス。
  19. 前記GPUは、前記方向付け基準に方向付けられた前記第1のセットの画像を受信し、前記方向付け基準に方向付けられた前記第2のセットの画像を受信するように構成される、請求項14に記載のデバイス。
  20. 前記方向付け基準は、第1の方向付け基準を備え、前記第1のセットの画像を表示のためにレンダリングするために、前記GPUは、前記第1の方向付け基準および第2の方向付け基準に方向付けられた前記第1のセットの画像を表示のためにレンダリングするように構成され、前記第2のセットの画像を表示のためのレンダリングするために、前記GPUは、前記第1の方向付けおよび前記第2の方向付け基準に方向付けられた前記第2のセットの画像を表示のためにレンダリングするように構成される、請求項14に記載のデバイス。
  21. 前記第1のセットの画像を表示のためにレンダリングするために、前記GPUは、前記第1の方向付け基準、前記第2の方向付け基準、および第3の方向付け基準に方向付けられた前記第1のセットの画像を表示のためにレンダリングするように構成され、前記第2のセットの画像を表示のためにレンダリングするために、前記GPUは、前記第1の方向付け基準、前記第2の方向付け基準、および前記第3の方向付け基準に方向付けられた前記第2のセットの画像を表示のためにレンダリングするように構成される、請求項20に記載のデバイス。
  22. 前記第1のカメラデバイスは、複数のレンズを備え、前記第2のカメラデバイスは、複数のレンズを備え、前記第1のセットの画像を受信するために、前記GPUは、前記第1のカメラデバイスの前記複数のレンズのうちの少なくとも2つのレンズによってキャプチャされた画像コンテンツから生成された前記第1のセットの画像を受信するように構成され、前記第2のセットの画像を受信するために、前記GPUは、前記第2のカメラデバイスの前記複数のレンズのうちの少なくとも2つのレンズによってキャプチャされた画像コンテンツから生成された前記第2のセットの画像を受信するように構成される、請求項14に記載のデバイス。
  23. 前記第1のセットの画像を受信するために、前記GPUは、前記第1のカメラデバイスの魚眼レンズによってキャプチャされた複数の正距円筒画像を受信するように構成され、前記第2のセットの画像を受信するために、前記GPUは、前記第2のカメラデバイスの魚眼レンズによってキャプチャされた複数の正距円筒画像を受信するように構成される、請求項14に記載のデバイス。
  24. 前記第1のセットの画像および前記第2のセットの画像は、同時に生成される、請求項14に記載のデバイス。
  25. 前記第2のセットの画像を表示のためにレンダリングするために、前記GPUは、共通のシーンコンテンツが、前記レンダリングされた第1のセットの画像における前記共通のシーンコンテンツのロケーションと同じロケーションにおいて、前記レンダリングされた第2のセット画像において表示されるように、前記第1のセットの画像と前記第2のセットの画像との両方に共通のシーンコンテンツをレンダリングするように構成される、請求項14に記載のデバイス。
  26. 前記デバイスは、マイクロプロセッサ、集積回路、ワイヤレス通信デバイス、またはハンドヘルドデバイスのうちの1つを備える、請求項14に記載のデバイス。
  27. 実行されると、1つまたは複数のプロセッサに、
    第1のロケーションにおける第1のカメラデバイスから生成された第1のセットの画像を受信することと、前記第1のカメラデバイスは、第1の方向付けを有し、
    方向付け基準に方向付けられた前記第1のセットの画像を表示のためにレンダリングすることと、
    第2の異なるロケーションにおける第2の異なるカメラデバイスから生成された第2の異なるセットの画像を受信することと、前記第2のカメラデバイスは、第2の方向付けを有し、前記第2の方向付けは、前記第1の方向付けとは異なっており、
    前記方向付け基準に方向付けられた前記第2のセットの画像を表示のためにレンダリングすることと
    を行わせる命令を記憶したコンピュータ可読記憶媒体。
  28. 画像コンテンツを生成するためのデバイスであって、前記デバイスは、
    第1のロケーションにおける第1のカメラデバイスから生成された第1のセットの画像を受信するための手段と、前記第1のカメラデバイスは、第1の方向付けを有し、
    方向付け基準に方向付けられた前記第1のセットの画像を表示のためにレンダリングするための手段と、
    第2の異なるロケーションにおける第2の異なるカメラデバイスから生成された第2の異なるセットの画像を受信するための手段と、前記第2のカメラデバイスは、第2の方向付けを有し、前記第2の方向付けは、前記第1の方向付けとは異なっており、
    前記方向付け基準に方向付けられた前記第2のセットの画像を表示のためにレンダリングするための手段と
    を備える、デバイス。
JP2019526583A 2016-11-21 2017-10-10 球面画像コンテンツのための方向付けられた画像スティッチング Pending JP2020502893A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/357,486 2016-11-21
US15/357,486 US10325391B2 (en) 2016-11-21 2016-11-21 Oriented image stitching for spherical image content
PCT/US2017/055932 WO2018093483A1 (en) 2016-11-21 2017-10-10 Oriented image stitching for spherical image content

Publications (1)

Publication Number Publication Date
JP2020502893A true JP2020502893A (ja) 2020-01-23

Family

ID=60245191

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019526583A Pending JP2020502893A (ja) 2016-11-21 2017-10-10 球面画像コンテンツのための方向付けられた画像スティッチング

Country Status (10)

Country Link
US (1) US10325391B2 (ja)
EP (1) EP3542345A1 (ja)
JP (1) JP2020502893A (ja)
KR (1) KR20190084987A (ja)
CN (1) CN109997167B (ja)
AU (1) AU2017360364A1 (ja)
BR (1) BR112019010099A2 (ja)
CA (1) CA3040874A1 (ja)
TW (1) TW201820862A (ja)
WO (1) WO2018093483A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10861359B2 (en) * 2017-05-16 2020-12-08 Texas Instruments Incorporated Surround-view with seamless transition to 3D view system and method
US10687119B2 (en) * 2017-06-27 2020-06-16 Samsung Electronics Co., Ltd System for providing multiple virtual reality views
US10725536B2 (en) * 2018-08-21 2020-07-28 Disney Enterprises, Inc. Virtual indicium display system for gaze direction in an image capture environment
US11323754B2 (en) * 2018-11-20 2022-05-03 At&T Intellectual Property I, L.P. Methods, devices, and systems for updating streaming panoramic video content due to a change in user viewpoint
US10917565B1 (en) * 2019-03-08 2021-02-09 Gopro, Inc. Image capture device with a spherical capture mode and a non-spherical capture mode
US10999527B1 (en) * 2020-02-14 2021-05-04 Gopro, Inc. Generation of enhanced panoramic visual content
US10845943B1 (en) 2020-02-14 2020-11-24 Carmax Business Services, Llc Systems and methods for generating a 360-degree viewing experience
US11429112B2 (en) * 2020-12-31 2022-08-30 Ubtech North America Research And Development Center Corp Mobile robot control method, computer-implemented storage medium and mobile robot
US11671551B2 (en) * 2021-05-24 2023-06-06 Sony Group Corporation Synchronization of multi-device image data using multimodal sensor data

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5856844A (en) 1995-09-21 1999-01-05 Omniplanar, Inc. Method and apparatus for determining position and orientation
US7085409B2 (en) * 2000-10-18 2006-08-01 Sarnoff Corporation Method and apparatus for synthesizing new video and/or still imagery from a collection of real video and/or still imagery
JP3965560B2 (ja) 2002-03-26 2007-08-29 ソニー株式会社 画像処理装置および方法、撮像装置および方法、並びにプログラム
US20120092348A1 (en) 2010-10-14 2012-04-19 Immersive Media Company Semi-automatic navigation with an immersive image
DE102010051206A1 (de) * 2010-11-12 2012-05-16 Valeo Schalter Und Sensoren Gmbh Verfahren zum Erzeugen eines Bilds einer Fahrzeugumgebung und Abbildungsvorrichtung
KR101732076B1 (ko) * 2010-12-22 2017-05-02 엘지전자 주식회사 전자 기기 및 전자 기기의 제어 방법
WO2013162735A1 (en) * 2012-04-25 2013-10-31 University Of Southern California 3d body modeling from one or more depth cameras in the presence of articulated motion
WO2013186804A1 (ja) * 2012-06-11 2013-12-19 株式会社ソニー・コンピュータエンタテインメント 画像生成装置および画像生成方法
KR102089432B1 (ko) 2013-06-20 2020-04-14 엘지전자 주식회사 이동 단말기 및 이의 제어방법
US20150036016A1 (en) * 2013-07-30 2015-02-05 Qualcomm Incorporated Methods and apparatus for determining the orientation of a mobile phone in an indoor environment
GB2525232A (en) 2014-04-17 2015-10-21 Nokia Technologies Oy A device orientation correction method for panorama images
US20150312468A1 (en) 2014-04-23 2015-10-29 Narvaro Inc. Multi-camera system controlled by head rotation
US9934122B2 (en) * 2014-07-09 2018-04-03 Microsoft Technology Licensing, Llc Extracting rich performance analysis from simple time measurements
US20160119551A1 (en) * 2014-10-22 2016-04-28 Sentry360 Optimized 360 Degree De-Warping with Virtual Cameras
WO2016077057A2 (en) 2014-10-24 2016-05-19 Bounce Imaging, Inc. Imaging systems and methods
US10033995B2 (en) * 2015-03-01 2018-07-24 Nextvr Inc. Methods and apparatus for supporting content generation, transmission and/or playback
JP5920507B1 (ja) 2015-03-10 2016-05-18 株式会社リコー 画像処理システム、画像処理方法およびプログラム
TWM523004U (zh) * 2015-07-16 2016-06-01 鋐寶科技股份有限公司 風扇承載裝置
US9445081B1 (en) * 2015-09-25 2016-09-13 Intel Corporation Method and system of 3D image capture with dynamic cameras
US9573062B1 (en) * 2015-12-06 2017-02-21 Silver VR Technologies, Inc. Methods and systems for virtual reality streaming and replay of computer video games
US20170200315A1 (en) * 2016-01-07 2017-07-13 Brendan Lockhart Live stereoscopic panoramic virtual reality streaming system
US10657701B2 (en) * 2016-06-30 2020-05-19 Sony Interactive Entertainment Inc. Dynamic entering and leaving of virtual-reality environments navigated by different HMD users
US20180000542A1 (en) * 2016-07-02 2018-01-04 St. Jude Medical, Cardiology Division, Inc. Flexible electrode
GB2556910A (en) * 2016-11-25 2018-06-13 Nokia Technologies Oy Virtual reality display
US10212406B2 (en) * 2016-12-15 2019-02-19 Nvidia Corporation Image generation of a three-dimensional scene using multiple focal lengths

Also Published As

Publication number Publication date
US10325391B2 (en) 2019-06-18
CA3040874A1 (en) 2018-05-24
AU2017360364A1 (en) 2019-05-02
KR20190084987A (ko) 2019-07-17
CN109997167A (zh) 2019-07-09
BR112019010099A2 (pt) 2019-10-01
WO2018093483A1 (en) 2018-05-24
US20180144520A1 (en) 2018-05-24
CN109997167B (zh) 2023-08-22
TW201820862A (zh) 2018-06-01
EP3542345A1 (en) 2019-09-25

Similar Documents

Publication Publication Date Title
US10325391B2 (en) Oriented image stitching for spherical image content
US10572000B2 (en) Mixed reality viewer system and method
US10217189B2 (en) General spherical capture methods
US20240112430A1 (en) Techniques for capturing and displaying partial motion in virtual or augmented reality scenes
US10332237B2 (en) Equatorial stitching of hemispherical images in a spherical image capture system
TWI637355B (zh) 紋理貼圖之壓縮方法及其相關圖像資料處理系統與產生360度全景視頻之方法
US10321109B1 (en) Large volume video data transfer over limited capacity bus
WO2019037365A1 (zh) 虚拟现实全景视频流投影方法和设备
CN103905761A (zh) 图像处理系统和图像处理方法
US20170178396A1 (en) Generating virtual shadows for displayable elements
US10397481B2 (en) Stabilization and rolling shutter correction for omnidirectional image content
CN112912823A (zh) 生成和修改增强现实或虚拟现实场景中对象的表示
US11317072B2 (en) Display apparatus and server, and control methods thereof
WO2019076348A1 (zh) 一种虚拟现实vr界面生成的方法和装置
Bradley et al. Image-based navigation in real environments using panoramas
US11922568B2 (en) Finite aperture omni-directional stereo light transport
Selvam et al. Augmented reality for information retrieval aimed at museum exhibitions using smartphones
JP2023525945A (ja) モバイル機器における大規模建築物の拡張現実具現のためのデータ最適化及びインターフェース向上方法
Santos et al. Supporting outdoor mixed reality applications for architecture and cultural heritage
GB2566006A (en) Three-dimensional video processing
WO2018086960A1 (en) Method and device for transmitting data representative of an image
Liao et al. Gpu parallel computing of spherical panorama video stitching
CN111970504A (zh) 利用虚拟投影反向模拟三维球体的展示方法、装置和系统
US20190129602A1 (en) Systems and methods for imaging grounding
KR20230164035A (ko) 아티팩트들을 최소화하기 위한 카메라 포지셔닝