(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-05-16
(45)【発行日】2025-05-26
(54)【発明の名称】仮想現実および拡張現実ディスプレイシステムのための連続時間ワーピングおよび両眼時間ワーピングおよび方法
(51)【国際特許分類】
G06T 19/00 20110101AFI20250519BHJP
【FI】
G06T19/00 A
(21)【出願番号】P 2024023581
(22)【出願日】2024-02-20
(62)【分割の表示】P 2022196975の分割
【原出願日】2017-08-25
【審査請求日】2024-02-20
(32)【優先日】2016-08-26
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】514108838
【氏名又は名称】マジック リープ, インコーポレイテッド
【氏名又は名称原語表記】Magic Leap,Inc.
【住所又は居所原語表記】7500 W SUNRISE BLVD,PLANTATION,FL 33322 USA
(74)【代理人】
【識別番号】100104824
【氏名又は名称】穐場 仁
(74)【代理人】
【識別番号】100121463
【氏名又は名称】矢口 哲也
(74)【代理人】
【識別番号】100137969
【氏名又は名称】岡部 憲昭
(72)【発明者】
【氏名】イヴァン ヨー
(72)【発明者】
【氏名】ライオネル エドウィン
(72)【発明者】
【氏名】サミュエル エー. ミラー
【審査官】益戸 宏
(56)【参考文献】
【文献】特開2015-095045(JP,A)
【文献】特開2013-062731(JP,A)
【文献】米国特許出願公開第2016/0035140(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 19/00
H04N 13/00
H04N 5/66
G09G 5/00
(57)【特許請求の範囲】
【請求項1】
視認者の更新された位置に基づいて、レンダリングされた画像データを時間ワーピングさせるための方法であって、前記方法は、
コンピューティングデバイスが、グラフィック処理ユニットから、前記視認者の第1の位置に基づいて推定された第1の姿勢と関連付けられた第1の視点に対応するレンダリングされた画像データを取得することと、
前記コンピューティングデバイスが、前記視認者の第2の位置と関連付けられたデータを受信することと、
前記コンピューティングデバイスが、前記視認者の前記第2の位置に基づいて、第2の姿勢を推定することと、
前記コンピューティングデバイスが、第1の漸進において、前記レンダリングされた画像データの第1のセットを時間ワーピングされたレンダリングされた画像データの第1のセットへ時間ワーピングさせることであって、前記時間ワーピングされたレンダリングされた画像データは、前記視認者の前記第2の位置に基づいて推定された前記第2の姿勢と関連付けられた第2の視点に対応する、ことと、
前記コンピューティングデバイスが、第2の漸進において、前記レンダリングされた画像データの第2のセットを前記時間ワーピングされたレンダリングされた画像データの第2のセットへ時間ワーピングさせることであって、
前記時間ワーピングされたレンダリングされた画像データの前記第1のセットは、
前記時間ワーピングされたレンダリングされた画像データの前記第2のセットと異なる、ことと、
前記コンピューティングデバイスが、第1の時間に、前記時間ワーピングされたレンダリングされた画像データの前記第1のセットを接眼ディスプレイデバイスのディスプレイモジュールに伝送することと、
前記コンピューティングデバイスが、第2の時間に、前記時間ワーピングされたレンダリングされた画像データの前記第2のセットを前記接眼ディスプレイデバイスの前記ディスプレイモジュールに伝送することと
を含み、
前記レンダリングされた画像データの前記第2のセットを前記時間ワーピングされたレンダリングされた画像データの前記第2のセットへ時間ワーピングさせることは、前記第1の時間に漸進中であり、前記第2の時間までに完了する、方法。
【請求項2】
前記第2の位置は、前記第1の位置からの前記接眼ディスプレイデバイスの光学中心のまわりの回転に対応する、請求項1に記載の方法。
【請求項3】
前記第2の位置は、前記第1の位置からの水平平行移動に対応する、請求項1に記載の方法。
【請求項4】
前記レンダリングされた画像データは、前記時間ワーピングされたレンダリングされた画像データが光子に変換されるまで、前記時間ワーピングされたレンダリングされた画像データへ漸進的に時間ワーピングされる、請求項1に記載の方法。
【請求項5】
前記レンダリングされた画像データは、前記グラフィック処理ユニットからストリーミングされる画像のサブセクションである、請求項1に記載の方法。
【請求項6】
前記コンピューティングデバイスは、前記レンダリングされた画像データを前記グラフィック処理ユニットから受信するためのフレームバッファを含み、前記方法は、
前記コンピューティングデバイスが、前記接眼ディスプレイデバイスのディスプレイデバイスピクセルを前記フレームバッファ内のデフォルト画像ピクセルから前記フレームバッファ内の異なる画像ピクセルにリダイレクトすること
をさらに含む、請求項1に記載の方法。
【請求項7】
前記コンピューティングデバイスは、前記レンダリングされた画像データを前記グラフィック処理ユニットから受信するためのフレームバッファを含み、前記方法は、
前記コンピューティングデバイスが、前記フレームバッファ内の画像ピクセルを、前記画像ピクセルに割り当てられるデフォルトディスプレイデバイスピクセルと異なる前記接眼ディスプレイデバイスのディスプレイデバイスピクセルに送信すること
をさらに含む、請求項1に記載の方法。
【請求項8】
前記コンピューティングデバイスは、前記レンダリングされた画像データを前記グラフィック処理ユニットから受信するためのフレームバッファを含み、前記方法は、
前記レンダリングされた画像データの第1のセットを前記時間ワーピングされたレンダリングされた画像データの前記第1のセットへ時間ワーピングさせながら、前記レンダリングされた画像データを前記グラフィック処理ユニットのフレームバッファから受信すること
をさらに含み、
前記時間ワーピングさせることは、
前記コンピューティングデバイスが、前記グラフィック処理ユニットから、前記グラフィック処理ユニットのフレームバッファ内の第1の画像ピクセルを前記コンピューティングデバイスのフレームバッファ内の第1の画像ピクセルにおいて受信することであって、前記グラフィック処理ユニットのフレームバッファ内の第1の画像ピクセルは、最初に、前記コンピューティングデバイスのフレームバッファ内の第2の画像ピクセルに割り当てられる、こと
を含む、請求項1に記載の方法。
【請求項9】
前記視認者の前記第2の位置と関連付けられたデータは、光学データと、慣性測定ユニットからのデータとを含み、前記コンピューティングデバイスは、前記光学データと、前記慣性測定ユニットからのデータとを受信し、前記視認者の前記第2の位置に基づいて前記第2の姿勢を推定するための姿勢推定器モジュールと、前記レンダリングされた画像データを前記グラフィック処理ユニットから受信するためのフレームバッファとを含む、請求項1に記載の方法。
【請求項10】
前記コンピューティングデバイスは、前記レンダリングされた画像データを前記グラフィック処理ユニットから受信するためのフレームバッファと、前記時間ワーピングされたレンダリングされた画像データを前記接眼ディスプレイデバイスに伝送することに先立って、前記フレームバッファに記憶されるバッファされた画像ピクセルを偏移させることによって、前記レンダリングされた画像データの少なくとも前記第1のセットを前記時間ワーピングされたレンダリングされた画像データの前記第1のセットへ時間ワーピングさせるための外部バッファプロセッサとを含む、請求項1に記載の方法。
【請求項11】
前記フレームバッファ内の第1の画像ピクセルは、第1の量だけ偏移され、前記フレームバッファ内の第2の画像ピクセルは、前記第1の量と異なる第2の量だけ偏移される、請求項10に記載の方法。
【請求項12】
システムであって、
グラフィック処理ユニットであって、前記グラフィック処理ユニットは、視認者の第1の位置に基づいて推定された第1の姿勢と関連付けられた第1の視点に対応するレンダリングされた画像データを生成するように構成される、グラフィック処理ユニットと、
コントローラであって、前記コントローラは、
前記視認者の第2の位置と関連付けられたデータを受信することと、
前記視認者の前記第2の位置に基づいて、第2の姿勢を推定することと、
第1の漸進において、前記レンダリングされた画像データの第1のセットを時間ワーピングされたレンダリングされた画像データの第1のセットへ時間ワーピングさせることであって、前記時間ワーピングされたレンダリングされた画像データは、前記視認者の前記第2の位置に基づいて推定された前記第2の姿勢と関連付けられた第2の視点に対応する、ことと、
第2の漸進において、前記レンダリングされた画像データの第2のセットを前記時間ワーピングされたレンダリングされた画像データの第2のセットへ時間ワーピングさせることであって、
前記時間ワーピングされたレンダリングされた画像データの前記第1のセットは、
前記時間ワーピングされたレンダリングされた画像データの前記第2のセットと異なる、ことと、
第1の時間に、前記時間ワーピングされたレンダリングされた画像データの前記第1のセットを接眼ディスプレイデバイスのディスプレイモジュールに伝送することと、
第2の時間に、前記時間ワーピングされたレンダリングされた画像データの前記第2のセットを前記接眼ディスプレイデバイスの前記ディスプレイモジュールに伝送することと
を行うように構成され、前記レンダリングされた画像データの前記第2のセットを前記時間ワーピングされたレンダリングされた画像データの前記第2のセットへ時間ワーピングさせることは、前記第1の時間に漸進中であり、前記第2の時間までに完了する、コントローラと、
接眼ディスプレイデバイスであって、前記接眼ディスプレイデバイスは、
前記コントローラによって伝送された前記時間ワーピングされたレンダリングされた画像データの前記第1のセットおよび前記時間ワーピングされたレンダリングされた画像データの前記第2のセットを受信することと、
前記時間ワーピングされたレンダリングされた画像データを光子に変換することと、
前記光子を前記視認者に向かって放出し、前記時間ワーピングされたレンダリングされた画像データを前記接眼ディスプレイデバイス上に表示することと
を行うように構成される、接眼ディスプレイデバイスと
を備える、システム。
【請求項13】
前記接眼ディスプレイデバイスは、シーケンシャル走査ディスプレイデバイスである、請求項12に記載のシステム。
【請求項14】
前記コントローラは、前記接眼ディスプレイデバイス内に組み込まれる、請求項12に記載のシステム。
【請求項15】
前記コントローラは、前記グラフィック処理ユニットおよび前記接眼ディスプレイデバイスに結合され、前記グラフィック処理ユニットと前記接眼ディスプレイデバイスとの間に提供される、請求項12に記載のシステム。
【請求項16】
前記コントローラは、
前記レンダリングされた画像データを前記グラフィック処理ユニットから受信するためのフレームバッファと、
前記時間ワーピングされたレンダリングされた画像データを前記接眼ディスプレイデバイスに伝送することに先立って、前記フレームバッファに記憶されるバッファされた画像ピクセルを偏移させることによって、前記レンダリングされた画像データの少なくとも前記第1のセットを前記時間ワーピングされたレンダリングされた画像データの前記第1のセットへ時間ワーピングさせるための外部バッファプロセッサと
をさらに備える、請求項12に記載のシステム。
【請求項17】
前記コントローラは、
前記接眼ディスプレイデバイスのディスプレイデバイスピクセルを前記フレームバッファ内のデフォルト画像ピクセルから前記フレームバッファ内の異なる画像ピクセルにリダイレクトするようにさらに構成される、請求項16に記載のシステム。
【請求項18】
前記コントローラは、
前記フレームバッファ内の画像ピクセルを前記画像ピクセルに割り当てられるデフォルトディスプレイデバイスピクセルと異なる前記接眼ディスプレイデバイスのディスプレイデバイスピクセルに送信するようにさらに構成される、請求項16に記載のシステム。
【請求項19】
前記第2の位置は、前記第1の位置からの前記接眼ディスプレイデバイスの光学中心のまわりの回転、または前記第1の位置からの水平平行移動に対応する、請求項12に記載のシステム。
【請求項20】
前記システムは、
光学ユニットと、
慣性測定ユニットと
をさらに備え、
前記コントローラは、
姿勢推定器モジュールをさらに備え、
前記姿勢推定器モジュールは、
前記光学ユニットからの光学データと前記慣性測定ユニットからのデータとを受信することと、
前記視認者の前記第2の位置に基づいて前記第2の姿勢を推定することと
を行うように構成される、請求項12に記載のシステム。
【請求項21】
前記コンピューティングデバイスが、第1の時間ワーピングフレームモジュールと第2の時間ワーピングフレームモジュールと、を有し、
前記方法は、
前記第1の時間ワーピングフレームモジュールが、前記第1の時間に、前記時間ワーピングされたレンダリングされた画像データの前記第1のセットを前記接眼ディスプレイデバイスの前記ディスプレイモジュールに伝送することと、
前記第2の時間ワーピングフレームモジュールが、前記第2の時間に、前記時間ワーピングされたレンダリングされた画像データの前記第2のセットを前記接眼ディスプレイデバイスの前記ディスプレイモジュールに伝送すること
を含む、請求項1に記載の方法。
【請求項22】
前記コントローラが、第1の時間ワーピングフレームモジュールと第2の時間ワーピングフレームモジュールと、を有し、
前記第1の時間ワーピングフレームモジュールが、前記第1の時間に、前記時間ワーピングされたレンダリングされた画像データの前記第1のセットを前記接眼ディスプレイデバイスの前記ディスプレイモジュールに伝送することと、
前記第2の時間ワーピングフレームモジュールが、前記第2の時間に、前記時間ワーピングされたレンダリングされた画像データの前記第2のセットを前記接眼ディスプレイデバイスの前記ディスプレイモジュールに伝送すること
を行うように構成される、請求項12に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本願は、米国特許出願第62/380,302号、発明の名称“Time Warp for Virtual and Augmented Reality Display Systems and Methods”,出願日2016年8月26日の通常出願であり、その利益を主張するものであり、該出願は、あらゆる目的のためにその全体が参照により本明細書中に援用される。本願は、以下の米国特許出願の各々の全体を参照により本明細書中に援用するものである:米国仮出願第62/313698号、出願日2016年3月25日(代理人管理番号MLEAP.058PR1),米国特許出願第14/331218号、出願日2014年7月14日;米国特許出願第14/555585号、出願日2014年11月27日;米国特許出願第14/690401号、出願日2015年4月18日;米国特許出願第14/726424号、出願日2015年5月29日;米国特許出願第14/726429号、出願日2015年5月29日;米国特許出願第15/146296号、出願日2016年5月4日;米国特許出願第15/182511号、出願日2016年6月14日;米国特許出願第15/182528号、出願日2016年6月14日;米国特許出願第62/206765号、出願日2015年8月18日(代理人管理番号MLEAP.002PR);米国特許出願第15/239710号、出願日2016年8月18日(代理人管理番号MLEAP.002A);米国仮出願第62/377831号、出願日2016年8月22日(代理人管理番号101782-1021207(000100US))、および米国仮出願第62/380302号、出願日2016年8月26日(代理人管理番号101782-1022084(000200US))。
【0002】
本開示は、仮想現実および拡張現実可視化システムに関する。より具体的には、本開示は、仮想現実および拡張現実可視化システムのための連続時間ワーピングおよび両眼時間ワーピングの方法に関する。
【背景技術】
【0003】
現代のコンピューティングおよびディスプレイ技術は、デジタル的に再現された画像またはその一部が、現実であるように見える、もしくはそのように知覚され得る様式でユーザに提示される、いわゆる「仮想現実」(VR)または「拡張現実」(AR)体験のためのシステムの開発を促進している。VRシナリオは、典型的には、他の実際の実世界の視覚的入力に対する透過性を伴わずに、デジタルまたは仮想画像情報の提示を伴う。ARシナリオは、典型的には、ユーザの周囲の実際の世界の可視化に対する拡張としてのデジタルまたは仮想画像情報の提示を伴う。
【0004】
例えば、図(FIG)1を参照すると、AR場面4が、描写され、AR技術のユーザには、人々、木々、背景における建物、およびコンクリートプラットフォーム8を特徴とする、実世界公園設定6が見える。これらのアイテムに加え、AR技術のユーザはまた、実世界コンクリートプラットフォーム8上に立っているロボット像10と、マルハナバチの擬人化のように見える、飛んでいる漫画のようなアバタキャラクタ2とが「見える」と知覚するが、これらの要素(例えば、アバタキャラクタ2、およびロボット像10)は、実世界には存在しない。ヒト視知覚および神経系の極端な複雑性に起因して、他の仮想または実世界画像要素の中での仮想画像要素の快適かつ自然のような感覚で豊かな提示を促進する、VRまたはAR技術の生産は、困難である。
【0005】
1つの主要な問題は、ユーザ移動に基づいて、ユーザに表示される仮想画像を修正することを対象とする。例えば、ユーザが、その頭部を移動させると、視覚のそのエリア(例えば、視野)および視覚のエリア内のオブジェクトの視点は、変化し得る。ユーザに表示されるであろうコンテンツのオーバーレイは、リアルタイムまたは近リアルタイムで修正され、ユーザ移動を考慮し、より現実的なVR体験またはAR体験を提供する必要がある。
【0006】
システムのリフレッシュレートは、システムがコンテンツを生成し、生成されたコンテンツをユーザに表示する(または表示のために送信する)、レートを左右する。例えば、システムのリフレッシュレートが、60ヘルツである場合、システムは、16ミリ秒毎にコンテンツを生成(例えば、レンダリング、修正、および同等物)し、生成されたコンテンツをユーザに表示する。VRおよびARシステムは、ユーザの姿勢に基づいて、コンテンツを生成してもよい。例えば、システムは、全て16ミリ秒の時間ウィンドウ以内に、ユーザの姿勢を決定し、決定された姿勢に基づいて、コンテンツを生成し、生成されたコンテンツをユーザに表示してもよい。システムが、ユーザの姿勢を決定するときと、システムが生成されたコンテンツをユーザに表示するときとの間の時間は、「運動から光子までの待ち時間(motion-to-photon latency)」として知られる。ユーザは、システムがユーザの姿勢を決定するときと、システムが生成されたコンテンツを表示するときとの間の時間に、その姿勢を変化させ得る。本変化が、考慮されない場合、望ましくないユーザ体験をもたらし得る。例えば、システムは、ユーザの第1の姿勢を決定し、第1の姿勢に基づいて、コンテンツの生成を開始してもよい。ユーザは、次いで、システムが、第1の姿勢を決定し、続いて、第1の姿勢に基づいてコンテンツを生成するときと、システムが生成されたコンテンツをユーザに表示するときとの間の時間に、その姿勢を第2の姿勢に変化させ得る。コンテンツが、第1の姿勢に基づいて生成され、ユーザが、現時点では、第2の姿勢を有するため、ユーザに表示される生成されたコンテンツは、姿勢不整合のため、ユーザに対して誤設置されて現れるであろう。姿勢不整合は、望ましくないユーザ体験につながり得る。
【0007】
システムは、バッファされた画像に作用する後処理ステップとして、例えば、レンダリングされた画像フレーム全体にわたって、補正を適用し、ユーザがユーザ姿勢を変化させたことを考慮してもよい。本技法は、全てのピクセルがレンダリングされるとき、全てのピクセルをフラッシング/照明する(例えば、2ms以内に)ことによって画像フレームを表示する、パネルディスプレイのためには機能し得るが、本技法は、シーケンシャル様式において画像フレームをピクセル毎に表示する(例えば、16ms以内に)、走査ディスプレイでは良好に機能し得ない。シーケンシャル様式において画像フレームをピクセル毎に表示する、走査ディスプレイでは、最初のピクセルと最後のピクセルとの間の時間は、完全フレーム持続時間(例えば、60Hzディスプレイに関して16ms)まで及び得、その間、ユーザ姿勢は、有意に変化され得る。
【0008】
実施形態は、従来の時間ワーピングを実装するVRまたはARシステムと関連付けられたこれらおよび他の問題に対処する。
【発明の概要】
【課題を解決するための手段】
【0009】
本開示は、3次元(3D)可視化システムを可能にする技術に関する。より具体的には、本開示は、観察される実世界内で生じているかのように、仮想現実(「VR」)またはARコンテンツの知覚を可能にする、ディスプレイシステムを通して、拡張現実(「AR」)コンテンツをユーザに生産するためのコンポーネント、サブコンポーネント、アーキテクチャ、およびシステムに対処する。そのような没入型の感覚入力はまた、複合現実(「MR」)と称され得る。
【0010】
いくつかの実施形態では、光パターンが、コンテンツをディスプレイシステムを装着しているユーザに提示するように構成される、ディスプレイシステムの導波管の中に投入される。光パターンは、光プロジェクタによって投入されてもよく、導波管は、導波管内の全内部反射を通して、特定の波長の光を伝搬するように構成されてもよい。光プロジェクタは、発光ダイオード(LED)およびシリコン上液晶(LCOS)システムを含んでもよい。いくつかの実施形態では、光プロジェクタは、走査ファイバを含んでもよい。光パターンは、時間シーケンス様式において、画像データを含んでもよい。
【0011】
種々の実施形態は、連続および/または両眼時間ワーピング方法を提供し、ユーザの頭部移動を考慮し、ユーザの頭部移動から生じる運動から光子までの待ち時間を最小限にする。連続時間ワーピングは、第2の視点から画像を再レンダリングする必要なく、第1の視点(例えば、ユーザの頭部の第1の位置に基づく)から第2の視点(例えば、ユーザの頭部の第2の位置に基づく)への画像の変換を可能にする。いくつかの実施形態では、連続時間ワーピングは、外部ハードウェア(例えば、ディスプレイの外部のコントローラ)上で実施され、他の実施形態では、連続時間ワーピングは、内部ハードウェア(例えば、ディスプレイの内部のコントローラ)上で実施される。連続時間ワーピングは、最終画像がディスプレイデバイス(例えば、シーケンシャルディスプレイデバイス)に表示される前に実施される。
【0012】
いくつかの実施形態は、視認者の更新された位置に基づいて、画像フレームを変換するための方法を提供する。本方法は、コンピューティングデバイスによって、グラフィック処理ユニットから、第1の画像フレームを取得するステップを含んでもよい。第1の画像フレームは、視認者の第1の位置と関連付けられた第1の視点に対応する。本方法はまた、視認者の第2の位置と関連付けられたデータを受信するステップを含んでもよい。コンピューティングデバイスは、第1の画像フレームの少なくとも一部をピクセル毎に継続的に変換し、第2の画像フレームを生成してもよい。第2の画像フレームは、視認者の第2の位置と関連付けられた第2の視点に対応する。コンピューティングデバイスは、接眼ディスプレイデバイス上に表示されるように、第2の画像フレームを接眼ディスプレイデバイスのディスプレイモジュールに伝送してもよい。
【0013】
種々の実施形態は、視認者の更新された位置に基づいて、画像フレームを変換するための方法を提供する。本方法は、グラフィック処理ユニットによって、第1の時間に、両眼接眼ディスプレイデバイスの左ディスプレイのための左画像フレームをレンダリングするステップを含んでもよい。左画像フレームは、視認者の第1の位置と関連付けられた第1の視点に対応する。本方法はまた、コンピューティングデバイスによって、グラフィック処理ユニットから、両眼接眼ディスプレイデバイスの右ディスプレイのための右画像フレームをレンダリングするステップを含んでもよい。右画像フレームは、視認者の第1の位置と関連付けられた第1の視点に対応する。グラフィック処理ユニットは、第1の時間より後の第2の時間に、視認者の第2の位置と関連付けられたデータを受信してもよい。データは、視認者の第2の位置に基づく第1の姿勢推定を含む。グラフィック処理ユニットは、視認者の第2の位置に基づく第1の姿勢推定を使用して、左画像フレームの少なくとも一部を変換し、両眼接眼ディスプレイデバイスの左ディスプレイのための更新された左画像フレームを生成してもよい。更新された左画像フレームは、視認者の第2の位置と関連付けられた第2の視点に対応する。グラフィック処理ユニットは、第2の時間より後の第3の時間に、左ディスプレイ上に表示されるように、更新された左画像フレームを両眼接眼ディスプレイデバイスの左ディスプレイに伝送してもよい。グラフィック処理ユニットは、第2の時間より後の第4の時間に、視認者の第3の位置と関連付けられたデータを受信してもよい。データは、視認者の第3の位置に基づく第2の姿勢推定を含む。グラフィック処理ユニットは、視認者の第3の位置に基づく第2の姿勢推定を使用して、右画像フレームの少なくとも一部を変換し、両眼接眼ディスプレイデバイスの右ディスプレイのための更新された右画像フレームを生成してもよい。更新された右画像フレームは、視認者の第3の位置と関連付けられた第3の視点に対応する。グラフィック処理ユニットは、第4の時間より後の第5の時間に、右ディスプレイ上に表示されるように、更新された右画像フレームを両眼接眼ディスプレイデバイスの右ディスプレイに伝送してもよい。
【0014】
実施形態は、上記に説明される方法ステップを実施するために、少なくともグラフィック処理ユニットと、コントローラと、接眼ディスプレイデバイスとを含む、コンピューティングシステムを含んでもよい。
【0015】
付加的特徴、利点、および実施形態が、以下の発明を実施するための形態、図、および請求項に説明される。
本発明は、例えば、以下を提供する。
(項目1)
視認者の更新された位置に基づいて、画像フレームを変換するための方法であって、前記方法は、
コンピューティングデバイスによって、グラフィック処理ユニットから、前記視認者の第1の位置と関連付けられた第1の視点に対応する第1の画像フレームを取得するステップと、
前記視認者の第2の位置と関連付けられたデータを受信するステップと、
前記コンピューティングデバイスによって、前記第1の画像フレームの少なくとも一部をピクセル毎に継続的に変換し、前記視認者の第2の位置と関連付けられた第2の視点に対応する第2の画像フレームを生成するステップと、
前記コンピューティングデバイスによって、接眼ディスプレイデバイス上に表示されるように、前記第2の画像フレームを前記接眼ディスプレイデバイスのディスプレイモジュールに伝送するステップと
を含む、方法。
(項目2)
前記第2の位置は、前記第1の位置からの前記接眼ディスプレイデバイスの光学中心のまわりの回転に対応する、項目1に記載の方法。
(項目3)
前記第2の位置は、前記第1の位置からの水平平行移動に対応する、項目1に記載の方法。
(項目4)
前記第1の画像フレームは、前記変換された第1の画像フレームが光子に変換されるまで、継続的に変換される、項目1に記載の方法。
(項目5)
前記第1の画像フレームは、前記グラフィック処理ユニットからストリーミングされる画像のサブセクションである、項目1に記載の方法。
(項目6)
前記コンピューティングデバイスは、前記第1の画像フレームを前記グラフィック処理ユニットから受信するためのフレームバッファを含み、前記第1の画像フレームの少なくとも一部をピクセル毎に継続的に変換するステップはさらに、
前記コンピューティングデバイスによって、前記接眼ディスプレイデバイスのディスプレイデバイスピクセルを前記フレームバッファ内のデフォルト画像ピクセルから前記フレームバッファ内の異なる画像ピクセルにリダイレクトするステップ
を含む、項目1に記載の方法。
(項目7)
前記コンピューティングデバイスは、前記第1の画像フレームを前記グラフィック処理ユニットから受信するためのフレームバッファを含み、前記第1の画像フレームの少なくとも一部をピクセル毎に継続的に変換するステップはさらに、
前記コンピューティングデバイスによって、前記フレームバッファ内の画像ピクセルを前記画像ピクセルに割り当てられるデフォルトディスプレイデバイスピクセルと異なる前記接眼ディスプレイデバイスのディスプレイデバイスピクセルに送信するステップ
を含む、項目1に記載の方法。
(項目8)
前記コンピューティングデバイスは、前記第1の画像フレームを前記グラフィック処理ユニットから受信するためのフレームバッファを含み、継続的に変換するステップはさらに、
前記第1の画像フレームの少なくとも一部を変換しながら、前記第1の画像フレームを前記グラフィック処理ユニットのフレームバッファから受信するステップ
を含み、前記変換するステップは、
前記コンピューティングデバイスによって、前記グラフィック処理ユニットから、前記グラフィック処理ユニットのフレームバッファ内の第1の画像ピクセルを前記コンピューティングデバイスのフレームバッファ内の第1の画像ピクセルにおいて受信するステップであって、前記グラフィック処理ユニットのフレームバッファ内の第1の画像ピクセルは、最初に、前記コンピューティングデバイスのフレームバッファ内の第2の画像ピクセルに割り当てられる、ステップ
を含む、項目1に記載の方法。
(項目9)
前記視認者の第2の位置と関連付けられたデータは、光学データと、慣性測定ユニットからのデータとを含み、前記コンピューティングデバイスは、前記光学データと、前記慣性測定ユニットからのデータとを受信するための姿勢推定器モジュールと、前記第1の画像フレームを前記グラフィック処理ユニットから受信するためのフレームバッファとを含む、項目1に記載の方法。
(項目10)
前記コンピューティングデバイスは、前記第1の画像フレームを前記グラフィック処理ユニットから受信するためのフレームバッファと、前記第2の画像フレームを前記接眼ディスプレイデバイスに伝送することに先立って、前記フレームバッファに記憶されるバッファされた画像ピクセルを偏移させることによって、前記第1の画像フレームの少なくとも一部を前記第2の画像フレームに変換するための外部バッファプロセッサとを含む、項目1に記載の方法。
(項目11)
前記フレームバッファ内の第1の画像ピクセルは、第1の量だけ偏移され、前記フレームバッファ内の第2の画像ピクセルは、前記第1の量と異なる第2の量だけ偏移される、項目10に記載の方法。
(項目12)
視認者の更新された位置に基づいて、画像フレームを変換するための方法であって、前記方法は、
グラフィック処理ユニットによって、第1の時間に、両眼接眼ディスプレイデバイスの左ディスプレイのための左画像フレームをレンダリングするステップであって、前記左画像フレームは、前記視認者の第1の位置と関連付けられた第1の視点に対応する、ステップと、
コンピューティングデバイスによって、前記グラフィック処理ユニットから、前記両眼接眼ディスプレイデバイスの右ディスプレイのための右画像フレームをレンダリングするステップであって、前記右画像フレームは、前記視認者の第1の位置と関連付けられた第1の視点に対応する、ステップと、
前記グラフィック処理ユニットによって、前記第1の時間より後の第2の時間に、前記視認者の第2の位置と関連付けられたデータを受信するステップであって、前記データは、前記視認者の第2の位置に基づく第1の姿勢推定を含む、ステップと、
前記グラフィック処理ユニットによって、前記視認者の第2の位置に基づく第1の姿勢推定を使用して、前記左画像フレームの少なくとも一部を変換し、前記両眼接眼ディスプレイデバイスの左ディスプレイのための更新された左画像フレームを生成するステップであって、前記更新された左画像フレームは、前記視認者の第2の位置と関連付けられた第2の視点に対応する、ステップと、
前記グラフィック処理ユニットによって、前記第2の時間より後の第3の時間に、前記左ディスプレイ上に表示されるように、前記更新された左画像フレームを前記両眼接眼ディスプレイデバイスの左ディスプレイに伝送するステップと、
前記グラフィック処理ユニットによって、前記第2の時間より後の第4の時間に、前記視認者の第3の位置と関連付けられたデータを受信するステップであって、前記データは、前記視認者の第3の位置に基づく第2の姿勢推定を含む、ステップと、
前記グラフィック処理ユニットによって、前記視認者の第3の位置に基づく第2の姿勢推定を使用して、前記右画像フレームの少なくとも一部を変換し、前記両眼接眼ディスプレイデバイスの右ディスプレイのための更新された右画像フレームを生成するステップであって、前記更新された右画像フレームは、前記視認者の第3の位置と関連付けられた第3の視点に対応する、ステップと、
前記グラフィック処理ユニットによって、前記第4の時間より後の第5の時間に、前記右ディスプレイ上に表示されるように、前記更新された右画像フレームを前記両眼接眼ディスプレイデバイスの右ディスプレイに伝送するステップと
を含む、方法。
(項目13)
前記右画像フレームは、前記グラフィック処理ユニットによって、前記第1の時間にレンダリングされる、項目12に記載の方法。
(項目14)
前記右画像フレームは、前記グラフィック処理ユニットによって、前記第1の時間より後であって、かつ前記第4の時間より早い第6の時間にレンダリングされる、項目12に記載の方法。
(項目15)
前記レンダリングされた右画像フレームは、前記第1の時間にレンダリングされた左画像フレームと同一である、項目12に記載の方法。
(項目16)
システムであって、
グラフィック処理ユニットであって、前記グラフィック処理ユニットは、視認者の第1の位置と関連付けられた第1の視点に対応する第1の画像フレームを生成するように構成される、グラフィック処理ユニットと、
コントローラであって、前記コントローラは、
前記視認者の第2の位置と関連付けられたデータを受信することと、
前記第1の画像フレームの少なくとも一部をピクセル毎に継続的に変換し、前記視認者の第2の位置と関連付けられた第2の視点に対応する第2の画像フレームを生成することと、
前記第2の画像フレームをストリーミングすることと
を行うように構成される、コントローラと、
接眼ディスプレイデバイスであって、前記接眼ディスプレイデバイスは、
ストリーミングされるにつれて、前記コントローラによって、前記第2の画像フレームを受信することと、
前記第2の画像フレームを光子に変換することと、
前記光子を前記視認者に向かって放出することと
を行うように構成される、接眼ディスプレイデバイスと
を備える、システム。
(項目17)
前記接眼ディスプレイデバイスは、シーケンシャル走査ディスプレイデバイスである、項目16に記載のシステム。
(項目18)
前記コントローラは、前記接眼ディスプレイデバイス内に組み込まれる、項目16に記載のシステム。
(項目19)
前記コントローラは、前記グラフィック処理ユニットおよび前記接眼ディスプレイデバイスに結合され、それらの間に提供される、項目16に記載のシステム。
(項目20)
前記コントローラはさらに、
前記第1の画像フレームを前記グラフィック処理ユニットから受信するためのフレームバッファと、
前記第2の画像フレームを前記接眼ディスプレイデバイスにストリーミングすることに先立って、前記フレームバッファに記憶されるバッファされた画像ピクセルを偏移させることによって、前記第1の画像フレームの少なくとも一部を前記第2の画像フレームに変換するための外部バッファプロセッサと
を備える、項目16に記載のシステム。
【図面の簡単な説明】
【0016】
【
図1】図(FIG)1は、いくつかの実施形態による、ウェアラブルARデバイスを通して視認されるような拡張現実(「AR」)場面を図示する。
【
図2】
図2は、いくつかの実施形態による、ウェアラブルARディスプレイシステムを図示する。
【
図3A】
図3Aは、いくつかの実施形態による、実世界環境と相互作用するARディスプレイシステムのユーザの相互作用を図示する。
【
図3B】
図3Bは、いくつかの実施形態による、視認光学アセンブリのコンポーネントを図示する。
【
図4】
図4は、一実施形態による、時間ワーピングを図示する。
【
図5】
図5は、一実施形態による、初期位置からの視認者の視認エリアを図示する。
【
図6】
図6は、一実施形態による、視認者の平行移動に起因する、第2の位置からの視認者の視認エリアを図示する。
【
図7】
図7は、一実施形態による、視認者の回転に起因する、第3の位置からの視認者の視認エリアを図示する。
【
図8】
図8は、圧縮された画像データをディスプレイデバイスに送信する、グラフィック処理ユニット(GPU)を図示する。
【
図9】
図9は、一実施形態による、読取カーソルリダイレクト連続時間ワーピングを図示する。
【
図10】
図10は、一実施形態による、GPUとディスプレイデバイスとの間の外部コントローラユニットを図示する。
【
図11】
図11は、一実施形態による、読取カーソルリダイレクト連続時間ワーピングを実施するためのアーキテクチャ内の外部ハードウェアユニットとしての外部コントローラユニットを図示する。
【
図12】
図12は、一実施形態による、ラスタモードにおける読取カーソル前進を図示する。
【
図13】
図13は、一実施形態による、ラスタモードにおける読取カーソルリダイレクトを伴う、読取カーソル前進を図示する。
【
図14】
図14は、一実施形態による、読取カーソルによる領域交差を図示する。
【
図15】
図15は、一実施形態による、領域交差を防止するためのバッファリード距離を図示する
【
図16】
図16は、一実施形態による、バッファ再スミア連続時間ワーピングを図示する。
【
図17】
図17は、例示的実施形態による、バッファ再スミア連続時間ワーピングを実施するためのシステムアーキテクチャを図示する。
【
図18】
図18は、一実施形態による、ピクセルリダイレクト連続時間ワーピングを図示する。
【
図19】
図19は、一実施形態による、ピクセルリダイレクト連続時間ワーピングを実施するためのシステムアーキテクチャを図示する。
【
図20】
図20は、一実施形態による、書込カーソルリダイレクト連続時間ワーピングを図示する。
【
図21】
図21は、一実施形態による、書込-カーソルリダイレクト連続時間ワーピングを実施するためのシステムアーキテクチャを図示する。
【
図22】
図22は、一実施形態による、軌跡を有する書込カーソルを図示する。
【
図23】
図23は、一実施形態による、軌跡を有する書込カーソルおよび読取カーソルのそれぞれ1つを図示する。
【
図24】
図24は、一実施形態による、書込/読取カーソルリダイレクト連続時間ワーピングを実施するためのシステムアーキテクチャを図示する。
【
図25】
図25は、一実施形態による、両眼時間ワーピングを図示する。
【
図26】
図26は、さらに別の実施形態による、交互両眼時間ワーピングを図示する。
【
図27】
図27は、別の実施形態による、交互両眼時間ワーピングを図示する。
【
図28】
図28は、一実施形態による、交互両眼時間ワーピングを図示する。
【
図29】
図29は、別の実施形態による、両眼時間ワーピングを図示する。
【発明を実施するための形態】
【0017】
仮想現実(「VR」)体験は、ウェアラブルディスプレイシステムを通して、ユーザに提供されてもよい。
図2は、ウェアラブルディスプレイシステム80(以降、「システム80」と称される)の実施例を図示する。システム80は、頭部搭載型ディスプレイデバイス62(以降、「ディスプレイデバイス62」と称される)と、ディスプレイデバイス62の機能をサポートするための種々の機械的および電子的モジュールおよびシステムとを含む。ディスプレイデバイス62は、フレーム64に結合されてもよく、これは、ディスプレイシステムのユーザまたは視認者60(以降、「ユーザ60」と称される)によって装着可能であって、ディスプレイデバイス62をユーザ60の眼の正面に位置付けるように構成される。種々の実施形態によると、ディスプレイデバイス62は、シーケンシャルディスプレイであってもよい。ディスプレイデバイス62は、片眼または両眼用であってもよい。いくつかの実施形態では、スピーカ66が、フレーム64に結合され、ユーザ60の外耳道に近接して位置付けられる。いくつかの実施形態では、示されない別のスピーカが、ユーザ60の別の外耳道に隣接して位置付けられ、ステレオ/成形可能音制御を提供する。ディスプレイデバイス62は、有線導線または無線コネクティビティ等によって、ローカルデータ処理モジュール70に動作可能に結合68され、これは、フレーム64に固定して取り付けられる、ユーザ60によって装着されるヘルメットまたは帽子に固定して取り付けられる、ヘッドホンに内蔵される、または別様に、ユーザ60に除去可能に取り付けられる(例えば、リュック式構成、ベルト結合式構成において)等、種々の構成において搭載されてもよい。
【0018】
ローカルデータ処理モジュール70は、プロセッサと、不揮発性メモリ(例えば、フラッシュメモリ)等のデジタルメモリとを含んでもよく、その両方とも、データの処理、キャッシュ、および記憶を補助するために利用され得る。データは、a)画像捕捉デバイス(カメラ等)、マイクロホン、慣性測定ユニット、加速度計、コンパス、GPSユニット、無線デバイス、および/またはジャイロスコープ等のセンサ(例えば、フレーム64に動作可能に結合または別様にユーザ60に取り付けられてもよい)から捕捉されたデータ、および/または、b)可能性として、処理または読出後、ディスプレイデバイス62への通過のために、遠隔処理モジュール72および/または遠隔データリポジトリ74を使用して入手および/または処理されるデータを含む。ローカルデータ処理モジュール70は、これらの遠隔モジュール72、74が、相互に動作可能に結合され、ローカル処理およびデータモジュール70へのリソースとして利用可能であるように、通信リンク76、78によって、有線または無線通信リンク等を介して、それぞれ、遠隔処理モジュール72および遠隔データリポジトリ74に動作可能に結合されてもよい。
【0019】
いくつかの実施形態では、ローカルデータ処理モジュール70は、データおよび/または画像情報を分析および処理するように構成される、1つ以上のプロセッサ(例えば、グラフィック処理ユニット(GPU))を含んでもよい。いくつかの実施形態では、遠隔データリポジトリ74は、デジタルデータ記憶設備を含んでもよく、これは、インターネットまたは「クラウド」リソース構成における他のネットワーキング構成を通して利用可能であってもよい。いくつかの実施形態では、全てのデータが、記憶され、全ての算出が、ローカルデータ処理モジュール70において実施され、遠隔モジュールからの完全に自律的な使用を可能にする。
【0020】
いくつかの実施形態では、ローカルデータ処理モジュール70は、バッテリ82に動作可能に結合される。いくつかの実施形態では、バッテリ82は、市販のバッテリ等にわたる可撤性電源である。他の実施形態では、バッテリ82は、リチウムイオンバッテリである。いくつかの実施形態では、バッテリ82は、ユーザ60が、電源に繋がれ、リチウムイオンバッテリを充電する必要なく、またはシステム80を遮断し、バッテリを交換する必要なく、システム80をより長い時間周期にわたって動作させ得るように、システム80の非動作時間の間にユーザ60によって充電可能な内部リチウムイオンバッテリと、可撤性バッテリの両方を含む。
【0021】
図3Aは、ユーザ30が実世界環境32(以降、「環境32」と称される)を通して移動するにつれてARコンテンツをレンダリングする、拡張現実(「AR」)ディスプレイシステムを装着しているユーザ30を図示する。ユーザ30は、ARディスプレイシステムを位置34に位置付け、ARディスプレイシステムは、マッピングされた特徴または指向性オーディオ入力と関連する姿勢等、位置34に対するパス可能世界の周囲情報(例えば実世界内のオブジェクトに対する変化に伴って記憶および更新され得る、実世界内のオブジェクトのデジタル表現)を記録する。位置34は、少なくとも
図2の遠隔処理モジュール72等のパス可能世界モジュール38によって、データ入力36に集約され、処理される。パス可能世界モジュール38は、固定要素42(例えば、テーブル)上、または視野44内にまだない構造内、または実世界のマッピングされたメッシュモデル46に対して等、データ入力36から決定されるように、ARコンテンツ40が実世界内に設置され得る場所および方法を決定する。描写されるように、固定要素42は、実世界内の任意の固定要素のための代用品としての役割を果たし、これは、ユーザ30が、ユーザ30にそれが見える度に、固定要素42をマッピングする必要なく、固定要素42上のコンテンツを知覚し得るように、パス可能世界モジュール38内に記憶されてもよい。固定要素42は、したがって、以前のモデル化セッションからのマッピングされたメッシュモデルである、または別個のユーザから決定されるが、それにもかかわらず、複数のユーザによる将来的参照のために、パス可能世界モジュール38上に記憶されてもよい。したがって、パス可能世界モジュール38は、ユーザ30のデバイスが環境32を最初にマッピングすることなく、以前にマッピングされた環境からの環境32を認識し、ARコンテンツを表示し、算出プロセスおよびサイクルを節約し、任意のレンダリングされるARコンテンツの待ち時間を回避し得る。
【0022】
同様に、実世界のマッピングされたメッシュモデル46が、ARディスプレイシステムによって作成されることができ、ARコンテンツ40と相互作用し、それを表示するための適切な表面およびメトリックが、再マッピングまたはモデル化する必要なく、ユーザ30または他のユーザによる将来的読出のために、マッピングされ、パス可能世界モジュール38内に記憶されることができる。いくつかの実施形態では、地理的場所、ユーザ識別、および現在のアクティビティ等のデータ入力36が、パス可能世界モジュール38に、利用可能な1つ以上の固定要素のうちの固定要素42、固定要素42上に最後に設置されたARコンテンツ40、およびその同一コンテンツを表示すべきかどうか(そのようなARコンテンツは、ユーザが特定のパス可能世界モデルを視認するかどうかにかかわらず、「持続的」コンテンツである)示すために入力される。
【0023】
図3Bは、視認光学アセンブリ48および付帯コンポーネントの概略を図示する。いくつかの実施形態では、ユーザの眼49に配向される、2つの眼追跡カメラ50が、眼形状、眼瞼閉塞、瞳孔方向、およびユーザの眼49上の閃光等のユーザの眼49のメトリックを検出する。いくつかの実施形態では、飛行時間センサ等の深度センサ51が、中継信号を世界に放出し、所与のオブジェクトまでの距離を決定する。いくつかの実施形態では、世界カメラ52が、広域周辺視野を記録し、環境32をマッピングし、ARコンテンツに影響を及ぼし得る入力を検出する。カメラ53がさらに、ユーザの視野内の実世界画像の具体的タイムスタンプを捕捉し得る。世界カメラ52、カメラ53、および深度センサ51はそれぞれ、54、55、および56の個別の視野を有し、
図3Aに描写される実世界環境32等の実世界場面からデータを収集および記録する。
【0024】
慣性測定ユニット57が、視認光学アセンブリ48の移動および配向を決定してもよい。いくつかの実施形態では、各コンポーネントは、少なくとも1つの他のコンポーネントに動作可能に結合される。例えば、深度センサ51が、ユーザの眼49が見ている実際の距離に対して測定された遠近調節の確認として、眼追跡カメラ50に動作可能に結合される。
【0025】
ARシステムでは、ユーザ30の位置が変化すると、レンダリングされた画像は、調節され、ユーザ30のビューの新しいエリアを考慮する必要がある。例えば、
図2を参照すると、ユーザ60が、その頭部を移動させると、ディスプレイデバイス62上に表示される画像は、更新される必要がある。しかしながら、ユーザ60の頭部が運動中であって、システム80が、新しい頭部姿勢に基づいて、レンダリングされた画像に対する新しい視点のビューを決定する必要がある場合、画像をディスプレイデバイス62上にレンダリングする際、遅延が存在し得る。
【0026】
種々の実施形態によると、表示されるための画像は、時間を節約するために、再レンダリングされる必要がない場合がある。むしろ、画像は、ユーザ60の新しい視点(例えば、ビューの新しいエリア)と一致するように変換されてもよい。本高速画像再調節/ビュー補正は、時間ワーピングと称され得る。時間ワーピングは、システム80が、頭部位置、故に、ユーザ60の視点が変化するにつれてさえ、より応答性かつ没入性に現れることを可能にし得る。
【0027】
時間ワーピングは、表示される画像上の割れ等の望ましくない影響を防止するために使用されてもよい。画像割れは、ディスプレイデバイス62内の視覚的アーチファクトであって、ディスプレイデバイス62は、単一画面描写において、複数のフレームからの情報を示す。割れは、ディスプレイデバイス62へのフレーム伝送レートがディスプレイデバイス62のリフレッシュレートと同期されないときに生じ得る。
【0028】
図4は、いったん3Dコンテンツがレンダリングされると、時間ワーピングが実施され得る方法を図示する。
図4に図示されるシステム100は、画像データ112と、1つ以上のIMUからの慣性測定ユニット(IMU)データ114とを受信する、姿勢推定器101を含む。姿勢推定器101は、次いで、受信された画像データ112およびIMUデータ114に基づいて、姿勢122を生成し、姿勢122を3Dコンテンツ生成器102に提供してもよい。3Dコンテンツ生成器102は、3Dコンテンツ(例えば、3D画像データ)を生成し、レンダリングのために、3Dコンテンツをグラフィック処理ユニット(GPU)104に提供してもよい。GPU104は、時間t1 116に、受信された3Dコンテンツをレンダリングし、レンダリングされた画像125を時間ワーピングモジュール106に提供してもよい。時間ワーピングモジュール106は、時間t2 117に、GPU104からのレンダリングされた画像125と、姿勢推定器101からの最新姿勢124を受信してもよい。時間ワーピングモジュール106は、次いで、t3 118時間に、最新姿勢124を使用して、時間ワーピングをレンダリングされた画像125に実施してもよい。変換された画像126(すなわち、時間ワーピングが実施される画像)は、ディスプレイデバイス108(例えば、
図1のディスプレイデバイス62)に送信される。光子が、時間t4 120に、ディスプレイデバイス108において生成され、ユーザの眼110に向かって放出され、それによって、画像をディスプレイデバイス108上に表示する。
図4に図示される時間ワーピングは、最新姿勢更新情報(例えば、最新姿勢124)をディスプレイデバイス108上に表示される画像上に提示することを可能にする。古いフレーム(すなわち、以前に表示されたフレームまたはGPUから受信されたフレーム)は、時間ワーピングを補間するために使用されてもよい。時間ワーピングを用いることで、最新姿勢124は、表示される画像データ内に組み込まれることができる。
【0029】
いくつかの実施形態では、時間ワーピングは、パラメータワーピング、非パラメータワーピング、または非同期ワーピングであってもよい。パラメータワーピングは、画像の平行移動、回転、およびスケーリングのようなアフィン操作を伴う。パラメータワーピングでは、画像のピクセルは、均一様式において再位置付けされる。故に、パラメータワーピングが、ユーザの頭部の回転のために場面を正しく更新するために使用されてもよいが、パラメータワーピングは、ユーザの頭部の平行移動を考慮しなくてもよく、画像のいくつかの領域は、その他と異なるように影響されてもよい。
【0030】
非パラメータワーピングは、画像のセクションの非パラメータ歪曲(例えば、画像の一部の伸展)を伴う。非パラメータワーピングは、画像の異なる領域において異なるように画像のピクセルを更新し得る場合でも、非パラメータワーピングは、「ディスオクルージョン」と称される概念に起因して、ユーザの頭部の平行移動を部分的にのみ考慮し得る。ディスオクルージョンは、例えば、ユーザの姿勢の変化、視線内の障害物の除去、および同等物の結果としてのビューへのオブジェクトの暴露またはビューからの以前に隠蔽されたオブジェクトの再出現を指し得る。
【0031】
同期時間ワーピングは、場面レンダリングおよび時間ワーピングを2つの別個の非同期動作に分離する、ワーピングを指し得る。非同期時間ワーピングは、GPUまたは外部ハードウェア上で実行されてもよい。非同期時間ワーピングは、表示される画像のフレームレートをレンダリングレートを上回って増加させ得る。
【0032】
種々の実施形態による、時間ワーピングは、ユーザの新しい頭部位置(すなわち、帰属される頭部姿勢)に応答して実施されてもよい。例えば、
図4に図示されるように、ユーザは、時間t0 115に、その頭部を移動させ得る(例えば、ユーザが、回転する、平行移動する、または両方)。その結果、ユーザの視点は、変化し得る。これは、ユーザに見えるものの変化をもたらすであろう。故に、レンダリングされた画像は、現実的VRまたはAR体験のために、更新され、ユーザの頭部移動を考慮する必要がある。すなわち、レンダリングされた画像125は、ユーザが、ディスプレイデバイス108に表示される画像内のユーザの視点に対して正しい空間位置付けおよび配向を伴って、仮想コンテンツを知覚するように、ワーピングされ、新しい頭部位置に整合する(例えば、対応する)。本目的のために、実施形態は、ユーザがその頭部を移動する時間と、本運動を組み込む画像(光子)がユーザの網膜上に着信する時間との間の時間である、運動から光子までの待ち時間を低減させることを目指す。時間ワーピングを伴わない場合、運動から光子までの待ち時間は、ユーザが姿勢122において捕捉された運動を生じさせる時間と、光子が眼110に向かって放出される時間との間の時間となる。時間ワーピングを伴う場合、運動から光子までの待ち時間は、ユーザが最新姿勢124において捕捉された運動を生じさせる時間と、光子が眼110に向かって放出される時間との間の時間となる。運動から光子までの待ち時間に起因する誤差を低減させる試みでは、姿勢推定器が、ユーザの姿勢を予測してもよい。姿勢推定器が、予測範囲としても知られる、ユーザの姿勢を時間的にさらに予測するにつれて、予測は、より不確かとなる。時間ワーピングを本明細書に開示される様式で実装しない、従来のシステムは、従来、少なくとも1つのフレーム持続時間以上の(例えば、60Hzに関して少なくとも16ミリ秒以上の)運動から光子までの待ち時間を有する。実施形態は、約1~2ミリ秒の運動から光子までの待ち時間を達成する。
【0033】
本明細書に開示される実施形態は、2つの非相互排他的タイプの時間ワーピング、すなわち、連続時間ワーピング(CTW)および交互両眼時間ワーピング(SBTW)を対象とする。実施形態は、走査ファイバまたは任意の他の走査画像ソース(例えば、微小電気機械システム(MEMS)ミラー)を画像ソースとして使用して、ディスプレイデバイス(例えば、
図1のディスプレイデバイス62)と併用されてもよい。走査ファイバは、遠隔ソースからの光を走査ファイバに単一モード光ファイバを介して中継する。ディスプレイデバイスは、作動式光ファイバケーブルを使用して、ファイバ自体の開口よりはるかに大きい画像を走査出力する。走査ファイバアプローチは、走査入力開始時間および走査出力開始時間によって境界されず、走査入力開始時間と走査出力開始時間との間に変換が存在することができる(例えば、画像がディスプレイデバイスにアップロードされ得る前に)。代わりに、連続時間ワーピングが、実施されることができ、変換は、ピクセル毎に行われ、ピクセルのx-y場所またはさらにx-y-z場所は、画像が眼によってスライドされるにつれて調節される。
【0034】
本明細書で議論される種々の実施形態は、
図2に図示されるシステム80を使用して実施されてもよい。しかしながら、実施形態は、システム80に限定されず、本明細書で議論される時間ワーピング方法を実施することが可能な任意のシステムと併用されてもよい。
(視点調節およびワーピング)
【0035】
種々の実施形態によると、ARシステム(例えば、システム80)は、2次元(2D)シースルーディスプレイ(例えば、ディスプレイデバイス62)を使用してもよい。3次元(3D)オブジェクトをディスプレイ上に表すために、3Dオブジェクトは、1つ以上の平面上に投影される必要があり得る。ディスプレイに結果として生じる画像は、ディスプレイデバイス62を介して3Dオブジェクトを見ているシステム80のユーザ(例えば、ユーザ60)の視点に依存し得る。図(FIG)5-7は、3Dオブジェクトに対するユーザ60の移動と、ユーザ60に各位置において見える内容とを示すことによって、ビュー投影を図示する。
【0036】
図5は、第1の位置からのユーザの視認エリアを図示する。ユーザが第1の位置314に位置付けられるとき、ユーザには、「ユーザに見える内容316」に図示されるように、第1の3Dオブジェクト304と、第2の3Dオブジェクト306とが見える。第1の位置314から、ユーザには、第1の3Dオブジェクト304が全体として見え、第2の3Dオブジェクト306の一部は、第2の3Dオブジェクト306の正面に設置された第1の3Dオブジェクト304によって隠される。
【0037】
図6は、第2の位置からのユーザの視認エリアを図示する。ユーザが、
図5の第1の位置314に対して平行移動する(例えば、側方に移動する)と、ユーザの視点は、変化する。故に、第2の位置320から可視の第1の3Dオブジェクト304および第2の3Dオブジェクト306の特徴は、第1の位置314から可視の第1の3Dオブジェクト304および第2の3Dオブジェクト306の特徴と異なり得る。
図6に図示される実施例では、ユーザが、第2の3Dオブジェクト306から第1の3Dオブジェクト304に向かって側方に平行移動すると、ユーザには、第1の3Dオブジェクト304が第1の位置314からのビューと比較して第2の3Dオブジェクト304のより大きい部分を隠すように見える。ユーザが第2の位置320に位置付けられると、ユーザには、「ユーザに見える内容318」に図示されるように、第1の3Dオブジェクト304と、第2の3Dオブジェクト306とが見える。種々の実施形態によると、ユーザが、
図6に図示される様式において側方に平行移動すると、「ユーザに見える内容318」は、非均一に更新される(すなわち、ユーザにより近いオブジェクト(例えば、第1の3Dオブジェクト304)は、離れたオブジェクト(例えば、第2の3Dオブジェクト306)より多く移動するように現れる)。
【0038】
図7は、第3の位置からのユーザの視認エリアを図示する。ユーザが、
図5の第1の位置314に対して回転すると、ユーザの視点は、変化する。故に、第3の位置324から可視の第1の3Dオブジェクト304および第2の3Dオブジェクト306の特徴は、第1の位置314から可視の第1の3Dオブジェクト304および第2の3Dオブジェクト306の特徴と異なり得る。
図7に図示される実施例では、ユーザが、時計回りに回転すると、第1の3Dオブジェクト304および第2の3Dオブジェクト306は、第1の位置314からの「ユーザに見える内容316」と比較して、左に偏移する。ユーザが第3の位置324に位置付けられると、ユーザには、「ユーザに見える内容322」に図示されるように、第1の3Dオブジェクト304と、第2の3Dオブジェクト306とが見える。種々の実施形態によると、ユーザが、光学中心のまわりで(例えば、視点の中心のまわりで)回転すると、投影された画像「ユーザに見える内容322」は、単に、平行移動する。ピクセルの相対的配列は、変化しない。例えば、
図5における「ユーザに見える内容316」のピクセルの相対的配列は、
図7の「ユーザに見える内容322」と同一である。
【0039】
図5-7は、視認されるオブジェクトのレンダリングがユーザの位置に依存する様子を図示する。ユーザの移動に基づいてユーザに見える内容(すなわち、レンダリングされたビュー)を修正することは、AR体験の品質に影響を及ぼす。シームレスなAR体験では、仮想オブジェクトを表すピクセルは、常時、物理的世界に空間的に位置合わせされて現れるべきである(「世界忠実ピクセル」(PStW)と称される)。例えば、仮想コーヒーマグカップが、AR体験において、実テーブル上に設置され得る場合、仮想マグカップは、ユーザが周囲を見渡す(すなわち、視点を変化させる)と、テーブル上に固定されて現れるべきである。PStWが、達成されない場合、仮想マグカップは、ユーザが周囲を見渡すとき、空間内でドリフトし、それによって、テーブル上にある仮想マグカップの知覚を破壊するであろう。本実施例では、実テーブルは、実世界配向に対して静的である一方、ユーザの視点は、ユーザの頭部姿勢の変化を通して変化する。したがって、システム80は、頭部姿勢(世界座標に対して)を推定し、仮想オブジェクトを実世界に位置合わせし、次いで、仮想オブジェクトの光子を正しい視点から引き出す/提示する必要があり得る。
【0040】
提示される画像内への正しい視認姿勢の組み込みは、PStW概念に重要である。本組み込みは、レンダリングパイプラインに沿った異なる点において生じてもよい。典型的には、PStW概念は、提示される画像が可能な限り最新である結果をもたらすであろうため、姿勢推定と提示される画像との間の時間が短いとき、または所与の予測範囲にわたる姿勢予測がより正確であるとき、より良好に達成され得る。すなわち、姿勢推定が、姿勢推定に基づいて生成された画像が表示されるまでに古くなってしまう場合、ピクセルは、世界に忠実ではなくなり、PStWは、達成され得ない。
【0041】
図5の第1の位置314に対応する「ユーザに見える内容316」のピクセル位置と、
図6の第2の位置320(すなわち、平行移動された位置)に対応する「ユーザに見える内容318」または
図7の第3の位置(すなわち、回転された位置)に対応する「ユーザに見える内容324」のピクセル位置との間の関係は、画像変換またはワーピングと称され得る。
(時間ワーピング)
【0042】
時間ワーピングは、異なる視点(例えば、ユーザの頭部の位置)に対応する2D画像間の数学的変換を指し得る。ユーザの頭部の位置が変化すると、時間ワーピングが、新しい画像を再レンダリングする必要なく、新しい視点に一致するように表示される画像を変換するために適用されてもよい。故に、ユーザの頭部の位置の変化は、迅速に考慮され得る。時間ワーピングは、ARシステムが、ユーザがその頭部を移動させ、それによって、その視点を修正するにつれて、より応答性かつ没入性に現れることを可能にし得る。
【0043】
ARシステムでは、姿勢(例えば、第1の姿勢)が、ユーザの初期位置に基づいて推定された後、ユーザは、位置を移動および/または変化させ、それによって、ユーザに見える内容を変化させ得、新しい姿勢(例えば、第2の姿勢)が、ユーザの変化された位置に基づいて推定されてもよい。第1の姿勢に基づいてレンダリングされた画像は、現実的VRまたはAR体験のために、第2の姿勢に基づいて更新され、ユーザの移動および/または位置の変化を考慮する必要がある。本変化を迅速に考慮するために、ARシステムは、新しい姿勢を生成してもよい。時間ワーピングが、第2の姿勢を使用して実施され、ユーザの移動および/または位置の変化を考慮する、変換された画像を生成してもよい。変換された画像は、ディスプレイデバイスに送信され、ユーザに表示される。前述のように、時間ワーピングは、レンダリングされた画像を変換し、したがって、時間ワーピングは、既存の画像データと協働する。故に、時間ワーピングは、完全に新しいオブジェクトをレンダリングするために使用され得ない。例えば、レンダリングされた画像が、缶を示し、ユーザが、ユーザに缶の背後に隠蔽されたペニー貨が見え得るようにその頭部を十分に遠くに移動させる場合、ペニー貨がレンダリングされた画像内のビュー内になかったため、ペニー貨は、時間ワーピングを使用してレンダリングされ得ない。しかしながら、時間ワーピングは、新しい姿勢に基づいて(例えば、新しいユーザの視点に従って)、缶の位置を適切にレンダリングするために使用されてもよい。
【0044】
時間ワーピングの有効性は、(1)ワーピングが画像が表示される直前に生じる場合、新しい頭部姿勢(そこから時間ワーピングが計算される)の正確度、すなわち、姿勢推定器/センサ融合の品質に依存し得、(2)画像が表示される少し前(予測範囲)にワーピングが生じる場合、予測範囲時間にわたる姿勢予測の正確度、すなわち、姿勢予測器の品質に依存し得、(3)予測範囲時間の長さ(例えば、より短いほど、より良好である)に依存し得る。
(I.時間ワーピング操作)
【0045】
時間ワーピング操作は、遅れフレーム時間ワーピングおよび/または非同期時間ワーピングを含んでもよい。遅れフレーム時間ワーピングは、レンダリングされた画像(またはその時間ワーピングされたバージョン)を含むフレームが、ディスプレイ(例えば、ディスプレイデバイス62)に提示される前に、フレーム生成周期内で可能な限り遅れてレンダリングされた画像のワーピングを指し得る。本目的は、ユーザの姿勢が推定されるときと、ユーザの姿勢に対応するレンダリングされた画像がユーザによって視認されるときとの間の時間(例えば、運動/光子/姿勢推定から光子までの待ち時間(motion/photon/pose estimate-to-photon latency))を最小限にすることによって、投影誤差(例えば、ユーザの視点に基づいて仮想世界と実世界を整合させる際の誤差)を最小限にすることである。遅れフレーム時間ワーピングを用いることで、運動から光子までの待ち時間(すなわち、ユーザの姿勢が推定されるときと、ユーザの姿勢に対応するレンダリングされた画像がユーザによって視認されるときとの間の時間)は、フレーム持続時間未満となり得る。すなわち、遅れフレーム時間ワーピングは、迅速に実施され、それによって、シームレスなAR体験を提供し得る。遅れフレーム時間ワーピングは、グラフィック処理ユニット(GPU)上で実行されてもよい。遅れフレーム時間ワーピングは、フレームのピクセル全体を同時に表示する、同時/フラッシュパネルディスプレイと良好に協働し得る。しかしながら、遅れフレーム時間ワーピングは、ピクセルがレンダリングされるにつれて、ピクセル毎にフレームを表示する、シーケンシャル/走査ディスプレイとは、同様に協働し得ない。遅れフレーム時間ワーピングは、パラメータワーピング、非パラメータワーピング、または非同期ワーピングであってもよい。
【0046】
図8は、一実施形態による、遅れフレーム時間ワーピングを実施するためのシステムを図示する。
図8に図示されるように、アプリケーションプロセッサ/GPU334(以降、GPU334と称される)は、ワーピングされた画像データ(例えば、赤色-緑色-青色(RGB)データ)336をディスプレイデバイス350に送信する前に、時間ワーピングを画像データに実施してもよい。いくつかの実施形態では、画像データ336は、圧縮された画像データであってもよい。ディスプレイデバイスは、両眼ディスプレイデバイスを含んでもよい。本実施形態では、ディスプレイデバイス350は、左ディスプレイ338と、右ディスプレイ340とを含んでもよい。GPU334は、画像データ336をディスプレイデバイス350の左ディスプレイ338および右ディスプレイ340に伝送してもよい。GPU334は、深度あたりシーケンシャルデータを送信する能力を有し得、データを2D画像に縮小させなくてもよい。GPU334は、ディスプレイデバイス350(例えば、LCOS等の接眼ディスプレイ)への伝送の前に画像データ336をワーピングするために、時間ワーピングモジュール335を含む。
【0047】
遅れフレーム時間ワーピングおよび非同期時間ワーピングは両方とも、GPU334上で実行されてもよく、変換ドメイン(例えば、変換されるであろう画像の部分)は、画像全体を含んでもよい(例えば、画像全体が同時にワーピングされる)。GPU334が、画像をワーピング後、GPU334は、さらなる修正を伴わずに、画像をディスプレイデバイス350に送信する。故に、遅れフレームまたは非同期時間ワーピングは、同時/フラッシュディスプレイ(すなわち、全てのピクセルを一度に照明するディスプレイ)を含む、ディスプレイデバイス上の用途に好適であり得る。そのようなディスプレイデバイスに関して、フレーム全体が、ディスプレイデバイス350の左ディスプレイ338および右ディスプレイ340がオンにされる前に、GPU334によってワーピングされなければならない(すなわち、ワーピングは、完了されなければならない)。
(II.連続時間ワーピング)
【0048】
いくつかの実施形態によると、GPUが、画像データをレンダリングし、レンダリングされた画像データを外部コンポーネント(例えば、フィールドプログラマブルゲートアレイ(FPGA)等の集積回路)に出力してもよい。外部コンポーネントが、時間ワーピングをレンダリングされた画像に実施し、ワーピングされた画像をディスプレイデバイスに出力してもよい。いくつかの実施形態では、時間ワーピングは、連続時間ワーピング(「CTW」)であってもよい。CTWは、ワーピングされた画像データが外部ハードウェアからディスプレイデバイスに伝送され、そこでワーピングされた画像が光子に変換される直前まで、画像データを外部ハードウェアにおいて徐々にワーピングすることを含んでもよい。CTWの重要な特徴は、連続ワーピングが、画像データが外部ハードウェアからディスプレイデバイスにストリーミングされるにつれて、画像データのサブセクションに実施されてもよいことである。
【0049】
CTWの連続/ストリーミング動作は、シーケンシャル/走査ディスプレイ(すなわち、ラインまたはピクセルを経時的に出力する、ディスプレイ)を含む、ディスプレイデバイス上の用途に好適であり得る。そのようなディスプレイデバイスに関して、ディスプレイデバイスのストリーミング性質は、CTWのストリーミング性質と連動し、時間効率をもたらす。
【0050】
実施形態は、4つの例示的連続時間ワーピング方法、すなわち、読取カーソルリダイレクト、ピクセルリダイレクト、バッファ再スミア、および書込カーソルリダイレクトを提供する。
(1.読取カーソルリダイレクト(RCRD)方法)
【0051】
本明細書で使用されるように、ディスプレイデバイスピクセルは、物理的ディスプレイデバイスのディスプレイ要素/単位(例えば、CRT画面上の蛍光体の桝目)を指し得る。本明細書で使用されるように、画像ピクセルは、コンピュータ生成された画像のデジタル表現の単位(例えば、4バイト整数)を指し得る。本明細書で使用されるように、画像バッファは、画像データが1つの場所(例えば、GPUの外部のメモリまたはハードウェアモジュール)から別の場所(例えば、ディスプレイデバイス)に移動される間、画像データを一時的に記憶するために使用される物理的メモリ記憶装置の領域を指す。
【0052】
種々の実施形態によると、GPUは、画像バッファ内で経時的に前進することによって画像バッファを走査する、書込カーソルを使用して、レンダリングされた画像データ(例えば、画像ピクセル)を画像バッファの中に入力してもよい。画像バッファは、画像バッファ内で経時的に前進することによって画像バッファを走査し得る、読取カーソルを使用して、画像ピクセルをディスプレイデバイスに出力してもよい。
【0053】
シーケンシャル/走査ディスプレイを含む、ディスプレイデバイスに関して、ディスプレイデバイスピクセルは、事前に規定された順序(例えば、左から右、上から下)でオンにされ得る。しかしながら、ディスプレイデバイスピクセル上に表示される画像ピクセルは、変動してもよい。各ディスプレイデバイスピクセルが、連続して、オンにされる準備ができるにつれて、読取カーソルは、画像バッファを通して前進し、次に投影されるであろう画像ピクセルを選別してもよい。CTWを伴わない場合、各ディスプレイデバイスピクセルは、常時、同一画像ピクセルに対応するであろう(例えば、画像は、修正を伴わずに視認される)。
【0054】
読取カーソルリダイレクト(「RCRD」)を実装する実施形態では、読取カーソルは、継続的にリダイレクトされ、デフォルト画像ピクセルと異なる画像ピクセルを選択し得る。これは、出力画像のワーピングをもたらす。シーケンシャル/走査ディスプレイを使用するとき、出力画像は、ライン毎に出力されてもよく、各ラインは、ユーザが知覚する最終出力画像が所望の様式でワーピングされるように、個々にワーピングされてもよい。読取カーソルおよび画像バッファの変位は、相互に相対的であってもよい。すなわち、RCRDを用いることで、読取カーソルがリダイレクトされると、画像バッファ内の画像データは、偏移し得る。読取カーソルのリダイレクトは、出力画像の平行移動の均等物であり得る。
【0055】
図9は、一実施形態による、RCRD CTW方法を図示する。同一リダイレクトベクトルが、全てのディスプレイデバイスピクセルに関して使用されてもよい。読取カーソルは、画像バッファ332から選択画像ピクセル800にダイレクトされ、ディスプレイデバイス350の対応するディスプレイデバイスピクセル804に表示し得る。これは、読取カーソルのデフォルト位置または単にデフォルトカーソルと称され得る。RCRDを用いることで、読取カーソルは、画像バッファ332の選択画像ピクセル802にリダイレクトされ、ディスプレイデバイス350の対応するディスプレイデバイスピクセル804に表示し得る。これは、読取カーソルのリダイレクト位置または単にリダイレクトカーソルと称され得る。RCRDの結果、読取カーソルは、画像バッファ332の画像ピクセル802を選択し(
図11に関連してさらに以下に説明されるように)、表示のために、選択された画像ピクセル802をディスプレイデバイス350のディスプレイデバイスピクセル804に送信する。同一リダイレクトベクトルが、ディスプレイデバイス350の全てのディスプレイデバイスピクセルに適用されるとき、画像バッファ332内の画像データは、2列だけ左に平行移動される。画像バッファ332の画像ピクセルは、ワーピングされ、結果として生じる表示される画像330は、画像バッファ332内の画像データの平行移動されたバージョンである。
【0056】
図10は、一実施形態による、RCRDを実施するためのシステムを図示する。外部(すなわち、GPUおよびディスプレイデバイスの外部の)コントローラ342が、GPU334とディスプレイデバイス350との間に提供される。GPU334は、画像データ336を生成し、さらなる処理のために、外部コントローラ342に送信してもよい。外部コントローラ342はまた、慣性測定ユニット(IMU)データ344を1つ以上のIMUから受信してもよい。いくつかの実施形態では、IMUデータ344は、視認者位置データを含んでもよい。外部コントローラ342は、GPU334から受信された画像データ336を解凍し、IMUデータ344に基づいて、連続時間ワーピングを解凍された画像データに適用し、ピクセル変換およびデータ分割を実施し、ディスプレイデバイス350に送信するために、結果として生じるデータを再圧縮してもよい。外部コントローラ342は、画像データ346を左ディスプレイ338に送信し、画像データ348を右ディスプレイ340に送信してもよい。いくつかの実施形態では、画像データ346および画像データ348は、圧縮され、ワーピングされた画像データであってもよい。
【0057】
いくつかの実施形態では、左レンダリングされた画像データおよび右レンダリングされた画像データは両方とも、左ディスプレイ338および右ディスプレイ340のそれぞれに送信されてもよい。故に、左ディスプレイ338および右ディスプレイ340は、付加的画像データを使用して、ディスオクルージョン等の付加的な正確な画像レンダリング操作を実施してもよい。例えば、右ディスプレイ340は、画像を右ディスプレイ340上にレンダリングすることに先立って、右にレンダリングされる画像データに加え、左にレンダリングされる画像データを使用して、ディスオクルージョンを実施してもよい。同様に、左ディスプレイ338は、画像を左ディスプレイ340上にレンダリングすることに先立って、左のレンダリングされる画像データに加え、右のレンダリングされる画像データを使用して、ディスオクルージョンを実施してもよい。
【0058】
図11は、RCRD CTWを実施するシステムアーキテクチャ内のGPU334とディスプレイデバイス350との間の外部ハードウェアユニット(例えば、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)等)としての外部コントローラ342を図示する。外部コントローラ342の姿勢推定器/予測器モジュール354は、光学データ352と、1つ以上のIMU345からのIMUデータ344とを受信する。外部コントローラ342は、画像データ336をGPU334から受信し、画像データ336を解凍してもよい。解凍された画像データは、外部コントローラ342の(サブ)フレームバッファ356に提供されてもよい。読取カーソルリダイレクトモジュール396は、RCRD連続時間ワーピングを実施し、姿勢推定器/予測器354の出力387に基づいて、GPU334の圧縮された画像データ336を変換する。生成されたデータ346、348は、時間ワーピングされた画像データであって、これは、次いで、ディスプレイデバイス350に送信され、視認者の眼に向かって放出される光子358に変換される。
(i.(サブ)フレームバッファサイズ)
【0059】
ここで
図12および13を参照すると、RCRDは、(サブ)フレームバッファ(例えば、(サブ)フレームバッファ356)のサイズに関して議論される。いくつかの実施形態によると、GPU334は、ラスタ画像(例えば、ドット行列データ構造としての画像)を生産してもよく、ディスプレイデバイス350は、ラスタ画像を出力してもよい(例えば、ディスプレイデバイス350は、「ラスタ出力」してもよい)。
図12に図示されるように、読取カーソル360(画像バッファを通して前進し、次に投影されるであろう画像ピクセルを選別する、カーソル)は、RCRDを伴わずに、(サブ)フレームバッファ356を通してラスタパターンで前進してもよい。
【0060】
図13に図示されるようなRCRDを用いることで、画像ピクセルを表示する直前の視認者の姿勢の再推定は、デフォルト位置からの画像ピクセルを取る代わりに、バッファされた画像内の異なる位置からユーザに示されることになる画像ピクセルを取ることを組み込み得る。境界される頭部/眼移動を前提として、リダイレクトされた読取位置(すなわち、異なる位置)の軌跡は、読取カーソル360の周囲の境界されるエリア(例えば、円形B)362内の閉集合である。本軌跡は、ディスプレイデバイス350が、依然として、画像をラスタ出力しているため、ラスタ前進モーメンタムと重畳される。
図13は、連続ワーピング/姿勢再推定を用いることで、読取カーソル軌道が、軌跡とラスタ前進の重畳であることを示す。(サブ)フレームバッファ356のバッファ高さ364は、境界されるエリア362の直径に等しいまたはそれを上回り、読取カーソル360が(サブ)フレームバッファ356の境界を越えて延在することを防止する必要がある。より大きい(サブ)フレームバッファは、付加的処理時間および算出力を要求し得る。
【0061】
境界されるエリア362の直径は、ディスプレイデバイス350のレンダリングレート、レンダリング時間における姿勢予測正確度、およびユーザの頭部移動の最大速度の関数である。故に、より高速のレンダリングレートに関して、より高速のレンダリングレートが、頭部姿勢がレンダリング時間における姿勢仮定から逸脱するための経過時間がより短い結果をもたらすため、境界されるエリア362の直径は、減少する。したがって、読取カーソルのために要求され得る、リダイレクトは、わずかであり得る(例えば、リダイレクトされる読取位置は、オリジナル読取カーソル位置により近いであろう)。加えて、レンダリング時間における(例えば、画像がレンダリングされるとき)より正確な姿勢予測に関して、要求される時間ワーピング補正がより小さくなるであろうため、境界されるエリア362の直径は、減少する。したがって、読取カーソルのために要求され得る、リダイレクトは、わずかとなり得る(例えば、リダイレクトされる読取位置は、オリジナル読取カーソル位置により近いであろう)。さらに、より高い頭部移動速度に関して、頭部姿勢が、高速頭部移動を伴う所与の時間インターバルにわたってより多く逸脱し得るため、境界されるエリア362の直径は、増加する。したがって、読取カーソルのために要求され得る、リダイレクトは、実質的となり得る(例えば、リダイレクトされる読取位置は、オリジナル読取カーソル位置から離れるであろう)。
(ii.読取カーソル対書込カーソル位置)
【0062】
いくつかの実施形態によると、(サブ)フレームバッファ356はまた、書込カーソルを含んでもよい。読取カーソルリダイレクトを伴わない場合、読取カーソル360は、書込カーソルの直後に追従し、例えば、両方とも、(サブ)フレームバッファ356を通してラスタ前進方向に移動し得る。(サブ)フレームバッファ356は、あるタイムスタンプにおいてレンダリングされたコンテンツのための第1の領域(例えば、新しいデータ領域)と、前のタイムスタンプにおいてレンダリングされたコンテンツのための第2の領域(例えば、古いデータ領域)とを含んでもよい。
図14は、新しいデータ領域368と、古いデータ領域370とを含む、(サブ)フレームバッファ356を図示する。RCRDを用いることで、(サブ)フレームバッファ356から読み取る、読取カーソル360が、(サブ)フレームバッファ356に書き込む、書込カーソル366の直後に追従する場合、リダイレクトされる読取位置(例えば、
図13の境界されるエリア362によって描写されるように)の軌跡は、
図14に図示されるように、読取カーソル360が古いデータ領域370の中に交差する、「領域交差」をもたらし得る。すなわち、読取カーソル360は、古いデータ領域370内の古いデータを読み取り得、書込カーソル366によって(サブ)フレームバッファ356に書き込まれている新しいデータを読み出すことが不可能であり得る。
【0063】
領域交差は、画像割れをもたらし得る。例えば、(サブ)フレームバッファ356内の画像ピクセルが、右に移動する直線垂直ラインの描写を含み、読取カーソル360が、RCRDに起因して、2つのコンテンツレンダリング(例えば、新しいデータ領域368内の第1のものと、古いデータ370内の第2のもの)間で行き来する場合、表示されるラインは、直線ではなく、領域交差が生じる場合、割れを有するであろう。画像割れは、読取カーソル360のリダイレクトされる位置の境界されるエリア362が、
図15に図示されるように、新しいデータ領域368内にあるように、読取カーソル360を書込カーソル366の背後にセンタリングすることによって防止され得る。これは、バッファリード距離372を境界されるエリア362の中心と新しいデータ領域368を古いデータ領域370から分離する境界639との間に設定することによって遂行され得る。バッファリード距離372は、境界されるエリア362を新しいデータ領域368内に完全に留まらせ得る。
【0064】
読取カーソル360の再位置付けは、所望の出力画像ピクセル配向を達成する(すなわち、コンテンツ定時性にかかわらず、画像ピクセルの配向が正確である)。故に、境界されるエリア362を書込カーソル366の背後に位置付けることは、PStWまたは姿勢推定/予測から光子までの待ち時間(pose estimate/prediction-to-photon latency)に悪影響を及ぼさない。
【0065】
他方では、バッファリード距離372は、バッファリード距離372に比例して、レンダリング/光子待ち時間(render-to-photon latency)を増加させ得る。レンダリング/光子待ち時間は、場面レンダリング時間と光子出力時間との間の時間である。光子は、完璧な時間ワーピングによって、ゼロ姿勢推定/予測から光子までの待ち時間を有し得るが、レンダリング/光子待ち時間は、場面レンダリングと光子出力時間との間の時間を減少させることによってのみ低減され得る。例えば、60フレーム/秒(fps)レンダリングレートに関して、デフォルトレンダリング/光子待ち時間は、約16ミリ秒(ms)であり得る。1,000ライン画像内の10ラインのバッファリード(例えば、バッファリード距離372)は、0.16msのレンダリング/光子待ち時間のみ追加し得る。いくつかの実施形態によると、レンダリング/光子待ち時間増加は、バッファ伝送時間が要求されない場合(例えば、書込カーソルが存在しない場合)、例えば、外部制御342(例えば、FPGA)が、直接、GPU334にアクセスするとき、除去され、それによって、GPU334と外部制御342との間の伝送時間に起因するレンダリング/光子待ち時間増加を排除し得る。
(iii.外部アンチエイリアシング)
【0066】
アンチエイリアシングは、時間ワーピング後に実施され、ぼけアーチファクトを回避する、ビュー依存操作である。CTWを用いることで、アンチエイリアシングは、光子生成直前に、外部ハードウェアによって実施され得る。GPU334(または2つの協調するGPU)への直接アクセスを伴う、外部制御342(例えば、FPGA)が、連続時間ワーピング後および表示されるための光子生成前に、外部アンチエイリアシングを実施するために使用されてもよい。
(2.バッファ再スミア方法)
【0067】
RCRD CTWは、ピクセル深度(または視認者までの距離)に応じて、画像ピクセルを非均一に偏移させることを要求する、ユーザの頭部の平行移動を考慮しなくてもよい。異なるCTW方法、すなわち、バッファ再スミア方法が、視認者が平行移動するときでも、画像をレンダリングするために使用されてもよい。バッファ再スミアは、読取カーソルが表示されるための画像ピクセルを抽出する前に、バッファされた画像ピクセルを更新することによって、最新姿勢推定/予測を組み込む概念である。異なる画像ピクセルは、異なる量だけ偏移され得るため、バッファ再スミアは、ユーザの頭部の平行移動を考慮することができる。
図16は、一実施形態による、バッファ再スミアCTW方法を図示する。画像バッファ374上で実施される最新姿勢を用いたバッファ再スミアは、修正された画像バッファ376をもたらす。修正された画像バッファ376からの画像ピクセルは、ディスプレイデバイス350の対応するディスプレイデバイスピクセルに表示される。
【0068】
図17は、一実施形態による、バッファ再スミアCTWのためのシステムアーキテクチャを図示する。外部コントローラ342が、GPU334とディスプレイデバイス350との間に提供される。外部コントローラ342の姿勢推定器/予測器モジュール354は、光学データ352と、IMUデータ344(1つ以上のIMU345から)とを受信する。外部コントローラ342は、圧縮された画像データ336をGPU334から受信し、画像データ336を解凍する。解凍された画像データは、外部コントローラ342の(サブ)フレームバッファ356に提供されてもよい。外部バッファプロセッサ378は、ピクセルがディスプレイデバイス350に送信され、視認者の眼に向かって放出される光子358に変換される前に、姿勢推定器/予測器354の出力387に基づいて、バッファ再スミアをGPU334から受信された圧縮された画像データ336に遂行する。
【0069】
種々の実施形態によると、バッファ再スミアは、新しい姿勢が表示される画像内に組み込まれることになる度に生じ得、これは、シーケンシャルディスプレイに関しては、ピクセル毎であり得る。(サブ)フレームバッファ356の一部のみが、再スミアされる場合でも、これは、算出上コストがかかる操作である。
(3.ピクセルリダイレクト方法)
【0070】
別のCTW方法は、ピクセルリダイレクト方法であり得、これは、読取カーソルリダイレクト方法の逆の操作である。ピクセルリダイレクト方法に従って、ディスプレイデバイス350がフェッチするための適切な画像ピクセルを決定する代わりに、外部コントローラが、所与の画像ピクセルのためにアクティブ化される、ディスプレイデバイスピクセルを決定する。言い換えると、外部コントローラは、画像ピクセルが表示される必要があるディスプレイデバイスピクセルを決定する。故に、ピクセルリダイレクトでは、各画像ピクセルは、独立して、再位置特定されてもよい。
図18は、ピクセルリダイレクトが、ユーザの頭部の回転および/または(部分的に)平行移動も同様に考慮し得るワーピングをもたらすことを図示する。
【0071】
図18に図示されるように、画像バッファ380内の第1の画像ピクセル391は、元々は、ディスプレイデバイス350の第1のディスプレイデバイスピクセル393に表示されるように定められ得る。すなわち、第1のディスプレイデバイスピクセル393は、第1の画像ピクセル391に割り当てられ得る。しかしながら、ピクセルリダイレクト方法は、第1の画像ピクセル391が第2のディスプレイデバイスピクセル395に表示されるべきであることを決定し得、外部コントローラは、第1の画像ピクセル391を第2のディスプレイデバイスピクセル395に送信し得る。同様に、画像バッファ380内の第2の画像ピクセル394は、元々は、ディスプレイデバイス350の第3のディスプレイデバイスピクセル397に表示されるように定められ得る。すなわち、第2の画像ピクセル394は、第3のディスプレイデバイスピクセル397に割り当てられ得る。しかしながら、ピクセルリダイレクト方法は、第2の画像ピクセル394が第4のディスプレイデバイスピクセル399に表示されるべきであることを決定し得、外部コントローラは、第2の画像ピクセル394を第4のディスプレイデバイスピクセル399に送信し得る。画像バッファ380上で実施されるピクセルリダイレクトは、結果として生じる表示される画像382がディスプレイデバイス350上に表示される結果をもたらす。ピクセルリダイレクトは、恣意的ピクセルを恣意的順序で選択的にオンにし得る、特殊種類のディスプレイデバイス350を要求し得る。特殊タイプのOLEDまたは類似ディスプレイデバイスが、ディスプレイデバイス350として使用されてもよい。ピクセルは、最初に、第2の画像バッファにリダイレクトされてもよく、次いで、第2のバッファは、ディスプレイデバイス350に送信されてもよい。
【0072】
図19は、一実施形態による、外部ハードウェアピクセルリダイレクト方法のためのシステムアーキテクチャを図示する。外部コントローラ342が、GPU334とディスプレイデバイス350との間に提供される。外部コントローラ342の姿勢推定器/予測器モジュール354が、光学データ352と、IMUデータ344(1つ以上のIMU345から)とを受信する。外部コントローラ342は、画像データ336をGPU334から受信し、画像データ336を解凍してもよい。解凍された画像データは、外部コントローラ342の(サブ)フレームバッファ356に提供されてもよい。姿勢推定器/予測器354の出力387および(サブ)フレームバッファ356の出力389は、ディスプレイデバイス350に提供され、視認者の眼に向かって放出される光子358に変換される。
(4.書込カーソルリダイレクト方法)
【0073】
別のCTW方法、すなわち、書込カーソルリダイレクト(WCRD)方法は、画像データが(サブ)フレームバッファに書き込まれる方法を変化させる。
図20は、ユーザの頭部の回転および(部分的に)平行移動も同様に考慮し得る、WCRD方法を図示する。各ピクセルは、独立して、再位置特定されることができる(例えば、順方向マッピング/散乱操作を用いて)。例えば、GPU334の画像バッファ333内の第1の画像ピクセル401は、元々は、外部コントローラ342(例えば、FPGA)の(サブ)フレームバッファ356内の第1の画像ピクセル403に定められ得る。しかしながら、順方向マッピングを用いることで、第1の画像ピクセル401は、(サブ)フレームバッファ356内の第2の画像ピクセル404にダイレクトされ得る。同様に、画像バッファ333内の第2の画像ピクセル402も、元々は、(サブ)フレームバッファ356内の第3の画像ピクセル405に定められ得る。しかしながら、順方向マッピングを用いることで、第2の画像ピクセル402は、(サブ)フレームバッファ356の第4の画像ピクセル406にダイレクトされ得る。故に、画像は、GPU334のフレームバッファ333から外部コントローラ342(例えば、FPGA)の(サブ)フレームバッファ356へのデータ伝送の間、ワーピングされ得る。すなわち、CTWは、画像が(サブ)フレームバッファ356に到達する前に、画像に実施される。
【0074】
図21は、一実施形態による、外部ハードウェアWCRD CTWのためのシステムアーキテクチャを図示する。外部コントローラ342が、GPU334とディスプレイデバイス350との間に提供される。外部コントローラ342の姿勢推定器/予測器モジュール354が、光学データ352と、IMUデータ344(1つ以上のIMU345から)とを受信する。画像データ336は、GPU334(すなわち、GPU334のフレームバッファ333)によって伝送され、姿勢推定器/予測器354の出力387は、外部コントローラ342の書込カーソルリダイレクトモジュール386において受信される。着信画像データピクセル毎に、画像ピクセルは、現在の姿勢推定/予測およびその画像ピクセルの深度に基づいて、(サブ)フレームバッファ356内の姿勢一致場所にリダイレクトされ、書き込まれる。(サブ)フレームバッファ356の出力346、348は、時間ワーピングされた画像データであって、これは、次いで、ディスプレイデバイス350に送信され、視認者の眼に向かって放出される光子358に変換される。
【0075】
種々の実施形態によると、書込カーソルリダイレクトモジュール386は、外部コントローラ342が画像ピクセルが書き込まれるべき場所を処理する必要があるため、1-ピクセルバッファであってもよい。
【0076】
図22は、WCRD方法を図示し、書込カーソル366は、(サブ)フレームバッファ356を通して前進する境界されるエリア(例えば、円形B)388内の閉集合である、書込位置の軌跡を有する。(サブ)フレームバッファ356のバッファ高さ392は、境界されるエリア388の直径以上である必要がある。WCRD方法は、境界されるエリア388の中心と読取カーソル360との間のバッファリード距離390を要求し得る。種々の実施形態によると、バッファリード距離390は、ディスプレイデバイスのフレームレート、画像の分解能、および頭部運動の予期される速度のうちの少なくとも1つ以上のものの関数であり得る。
【0077】
いくつかの実施形態によると、WCRD方法は、姿勢推定/予測が、光子が生成される前に、ある時間量(バッファリード距離に比例する)が組み込まれ得るため、いくらかの姿勢推定/予測から光子までの待ち時間を導入し得る。例えば、60fpsのディスプレイクロック出力レートに関して、1,000ライン画像の10ラインバッファは、0.16msの姿勢推定/予測から光子までの待ち時間を導入し得る。
(5.書込/読取カーソルリダイレクト方法)
【0078】
本明細書で議論されるCTW方法は、相互に排他的ではなくてもよい。WCRD方法をRCRD方法で補完することによって、視認者の回転および平行移動が、考慮され得る。
図23は、書込-読取カーソルリダイレクト(WRCRD)方法を用いることで、書込および読取カーソル位置の両方が、それぞれ、境界されるエリア388および362内にあるが、読取カーソル360の境界されるエリア362は、書込カーソル366の境界されるエリア388と比較してはるかに小さいことを図示する。最小バッファ高さ392は、新しいデータ領域368から古いデータ領域370への交差を生じさせることなく、境界されるエリア362および境界されるエリア388の両方に適応するように決定され得る。いくつかの実施形態では、WRCRD方法のための最小バッファ高さ392は、RCRD方法のためのバッファ高さ364の2倍であってもよい。加えて、バッファリード距離410も、新しいデータ領域368から古いデータ領域370への交差を生じさせずに、境界されるエリア362および境界されるエリア388の両方に適応するように決定され得る。いくつかの実施形態では、WRCRD方法のためのバッファリード距離410は、WCRDのためのバッファリード距離390(例えば、10ライン)またはRCRDのためのバッファリード距離372(例えば、10ライン)の2倍(例えば、20ライン)であり得る。
【0079】
いくつかの実施形態によると、境界されるエリア388のサイズは、レンダリング時の最後の姿勢組み込み以降に要求される姿勢調節の量に比例する。境界されるエリア362のサイズもまた、(サブ)フレームバッファへのピクセルデータ書込時の最後の姿勢組み込み以降に要求される姿勢調節の量に比例する。書込カーソルまでの読取カーソルのバッファ距離が、1,000ライン画像内の10ラインである場合、画像データが書込カーソル366によってピクセル内に書き込まれる時間と、画像データが読取カーソル360によってピクセルから読み取られる時間との間の経過時間は、書込カーソル366の姿勢推定とレンダリング時間時の姿勢推定との間の経過時間の約1%である。言い換えると、読取カーソル360が、書込カーソル366により近いとき、読取カーソル360は、より直近のデータ(例えば、書込カーソル366によってより直近に書き込まれたデータ)を読み取り、それによって、画像データが書き込まれるときと、画像データが読み取られるときとの間の時間を短縮させるであろう。故に、バッファサイズおよびリード距離は、2倍にされる必要がなく、数パーセントのみ増加され得る。
【0080】
WRCRD方法におけるRCRDは、ユーザの頭部の平行移動を考慮し得ない。しかしながら、若干早く生じるWRCRD方法におけるWCRDは、ユーザの頭部の平行移動を考慮する。故に、WRCRDは、非常に短い(例えば、事実上、ゼロ)待ち時間のパラメータワーピングおよび非常に短い待ち時間の非パラメータワーピング(例えば、60fpsにおけるディスプレイクロック出力および1,000ライン画像の10ラインバッファに関して約0.16ms)を達成し得る。
【0081】
一実施形態による、外部ハードウェアWRCRD CTWのためのシステムアーキテクチが、
図24に図示される。外部コントローラ342が、GPU334とディスプレイデバイス350との間に提供される。外部コントローラ342の姿勢推定器/予測器モジュール354が、光学データ352と、IMUデータ344(1つ以上のIMU345から)とを受信する。GPU334(すなわち、GPU334のフレームバッファ333)によって伝送される画像データ336および姿勢推定器/予測器354の出力387は、書込カーソルリダイレクトモジュール386において受信される。着信画像データに関して、各画像ピクセルは、現在の姿勢推定/予測およびその画像ピクセルの深度に基づいて、(サブ)フレームバッファ356内の姿勢一致場所にリダイレクトされ、書き込まれる。加えて、読取カーソルリダイレクトモジュール396は、姿勢推定器/予測器354の出力387に基づいて、RCRD CTWを実施し、書込カーソルリダイレクトモジュール386から受信された画像データを変換する。生成されたデータ346、348は、時間ワーピングされた画像データであって、これは、次いで、ディスプレイデバイス350に送信され、視認者の眼に向かって放出される光子358に変換される。種々の実施形態によると、WRCRD方法は、同一外部コントローラ342上に実装され、単一(サブ)フレームバッファ356に作用し、また、ストリーミングされるデータに作用することができる。書込カーソルリダイレクトモジュール386および/または読取カーソルリダイレクトモジュール396は、独立して、異なるディスプレイオプションのためにオフにされてもよい。故に、WRCRDアーキテクチャは、オンデマンドでWCRDまたはRCRDアーキテクチャとして機能し得る。
(III.両眼時間ワーピング)
【0082】
本明細書で使用されるように、両眼時間ワーピングは、左眼のための左ディスプレイユニットと、右眼のための右ディスプレイユニットとを含む、ディスプレイデバイスと併用される、遅れフレーム時間ワーピングを指し、遅れフレーム時間ワーピングは、左ディスプレイユニットおよび右ディスプレイユニットのために別個に実施される。
図25は、両眼時間ワーピングを図示し、いったん3Dコンテンツが、時間t1 3003に、GPU3002においてレンダリングされ、最新姿勢入力3004が、時間t2 3007前に、姿勢推定器3006から受信されると、時間ワーピングが、時間t2 3007に、同時またはほぼ同時に、左フレーム3008および右フレーム3010の両方のために実施される。例えば、両時間ワーピングが同一外部コントローラによって実施される、実施形態では、左フレームのための時間ワーピングおよび右フレームのための時間ワーピングが、連続して(例えば、ほぼ同時に)実施されてもよい。
【0083】
変換された画像3014および3016(すなわち、時間ワーピングが実施される画像)は、それぞれ、ディスプレイデバイス350の左ディスプレイユニット3018および右ディスプレイユニット3020に送信される。光子が、左ディスプレイユニット3018および右ディスプレイユニット3020において生成され、視認者の個別の眼に向かって放出され、それによって、画像を左ディスプレイユニット3018および右ディスプレイユニット3020上に同時(例えば、時間t3 3015)に表示する。すなわち、両眼時間ワーピングの一実施形態では、同一最新姿勢3004が、左ディスプレイユニット3018および右ディスプレイユニット3020の両方のために、時間ワーピングを同一のレンダリングされたフレームに実施するために使用される。
【0084】
別の実施形態では、交互両眼時間ワーピングが、異なる最新姿勢が左ディスプレイユニット3018および右ディスプレイユニット3020のための時間ワーピングを実施するために使用されてもよい。交互時間ワーピングは、
図26から
図29に図示されるように、種々の様式で実施されてもよい。
図26から
図29に図示される交互両眼時間ワーピングは、ディスプレイデバイス350上に表示される画像に関する最新姿勢更新情報を提示することを可能にする。古いフレーム(すなわち、以前に表示されたフレームまたはGPUから受信されたフレーム)が、時間ワーピングを補間するために使用されてもよい。交互両眼時間ワーピングを用いることで、最新姿勢が、表示される画像内に組み込まれ、運動から光子までの待ち時間を短縮させることができる。すなわち、両方が「より古い」最新姿勢を使用して同時に更新されるのではなく、眼の一方は、他方より後にワーピングの中に組み込まれる姿勢を用いて画像を視認し得る。
【0085】
図26は、一実施形態による、別の交互両眼時間ワーピングを図示する。同一GPU3070が、時間t1 3071に、それぞれ、左ディスプレイユニット3018および右ディスプレイユニット3020によって使用される、左および右レンダリングされた視点の両方を生成するために使用される。第1の時間ワーピングは、時間ワーピング左フレームモジュール3072によって、時間t2 3073に、姿勢推定器3006から受信された第1の最新姿勢3074を使用して、レンダリングされた左フレームに実施される。時間ワーピング左フレームモジュール3072の出力は、左ディスプレイユニット3018に伝送される。左ディスプレイユニット3018は、時間t4 3077に、受信されたデータを光子に変換し、光子を視認者の左眼に向かって放出し、それによって、画像を左ディスプレイユニット3018上に表示する。
【0086】
第2の時間ワーピングは、時間ワーピング右フレームモジュール3078によって、時間t3 3079(例えば、第1の時間ワーピングが実施されるt2 3073より後の時間)に、姿勢推定器3006から受信された第2の最新姿勢3080を使用して、レンダリングされた右フレームに実施される。時間ワーピング右フレームモジュール3078の出力は、右ディスプレイユニット3020に伝送される。右ディスプレイユニット3020は、時間t5 3081に、受信されたデータを光子に変換し、光子を視認者の右眼に向かって放出し、それによって、画像を右ディスプレイユニット3020上に表示する。右ディスプレイユニット3020は、左ディスプレイユニット3018が画像を表示する時間より後に画像を表示する。
【0087】
図27は、一実施形態による、別のタイプの交互両眼時間ワーピングを図示する。同一GPU3050が、左ディスプレイユニット3018および右ディスプレイユニット3020の両方のために、レンダリングされたフレームを生成するために使用される。左フレームおよび右フレームは、異なる時間にレンダリングされる(すなわち、左フレームおよび右フレームは、時間的に交互にレンダリングされる)。図示されるように、左フレームは、時間t1 3051にレンダリングされてもよく、右フレームは、時間t1 3051より後の時間t2 3052にレンダリングされてもよい。第1の時間ワーピングは、時間ワーピング左フレームモジュール3058によって、時間t3 3053に、時間t3 3053前に姿勢推定器3006から受信された第1の最新姿勢3054を使用して、レンダリングされた左フレームに実施される。時間ワーピング左フレームモジュール3058の出力は、左ディスプレイユニット3018に伝送される。左ディスプレイユニット3018は、時間t5 3061に、受信されたデータを光子に変換し、光子を視認者の左眼に向かって放出し、それによって、画像を左ディスプレイユニット3018上に表示する。
【0088】
第2の時間ワーピングは、時間ワーピング右フレームモジュール3060によって、時間t4 3059(例えば、第1の時間ワーピングが実施される時間t3 3053より後)に、時間t4 3059前に姿勢推定器3006から受信された第2の最新姿勢3062を使用して、レンダリングされた右フレームに実施される。時間ワーピング右フレームモジュール3060の出力は、右ディスプレイユニット3020に伝送される。右ディスプレイユニット3020は、時間t6 3063に、受信されたデータを光子に変換し、光子を視認者の右眼に向かって放出し、それによって、画像を右ディスプレイユニット3020上に表示する。右ディスプレイユニット3020は、左ディスプレイユニット3018が画像を表示するより後の時間に画像を表示する。
【0089】
図28は、一実施形態による、交互両眼時間ワーピングを図示する。
図28に図示される実施形態によると、2つの別個のGPU3022および3024が、左ディスプレイユニット3018および右ディスプレイユニット3020のためのレンダリングされたビューを生成するために使用されてもよい。第1のGPU3022は、時間t1 3025に、左ビューをレンダリングしてもよい。第2のGPU3024は、時間t1 3025より後の時間t2 3026に、右ビューをレンダリングしてもよい。第1の時間ワーピングは、時間ワーピング左フレームモジュール3030によって、時間t3 3027に、時間t3 3027前に姿勢推定器3006から受信された第1の最新姿勢3004を使用して、レンダリングされた左ビューに実施される。時間ワーピング左フレームモジュール3030の出力は、左ディスプレイユニット3018に伝送される。左ディスプレイユニット3018は、受信されたデータを光子に変換し、光子を視認者の左眼に向かって放出する。左ディスプレイユニット3018は、時間t5 3033に、画像を表示する。
【0090】
第2の時間ワーピングは、時間ワーピング右フレームモジュール3032によって、時間t4 3031(例えば、第1の時間ワーピングが実施されるときより後の時間)に、時間t4 3031(例えば、第1の最新姿勢3004が時間ワーピング左フレームモジュール3030によって取得されるときより後の時間)前に姿勢推定器3006から受信された第2の最新姿勢3034を使用して、レンダリングされた右ビューに実施される。時間ワーピング右フレームモジュール3032の出力は、右ディスプレイユニット3020に伝送される。右ディスプレイユニット3020は、受信されたデータを光子に変換し、光子を視認者の右眼に向かって放出する。右ディスプレイユニット3020は、時間t6 3035(すなわち、左ディスプレイユニット3018が時間t5 3033に画像を表示するときより後の時間)に、画像を表示する。右ディスプレイユニット3020上に表示される画像は、より直近の姿勢(すなわち、第2の最新姿勢3034)を考慮して生成されたため、より最新であり得る。
【0091】
図29は、一実施形態による、別のタイプの両眼時間ワーピングを図示する。同一GPU3036が、左ディスプレイユニット3018および右ディスプレイユニット3020の両方のために、レンダリングされたビューを生成するために使用されてもよい。
図29に図示されるように、GPU3036は、時間t1 3037に、左フレームのレンダリングされたビューを生成してもよい。左フレームの時間ワーピングされた画像は、時間t3 3041に、生成されてもよい。左ディスプレイユニット3018のディスプレイ更新レートは、第2のレンダリング(すなわち、右ディスプレイユニット3020のためのレンダリング)は、左フレームの時間ワーピングされた画像が生成された(例えば、左フレームの時間ワーピングされた画像が左ディスプレイユニット3018上に表示された)後に、GPU3036によって実施され得るように十分に低速であってもよい。
【0092】
第1の時間ワーピングは、時間ワーピング左フレームモジュール3040によって、時間t2 3038に、IMUから受信された第1の最新姿勢3039を使用して、レンダリングされた左フレームに実施される。時間ワーピング左フレームモジュール3040の出力は、左ディスプレイユニット3018に伝送される。左ディスプレイユニット3018は、時間t3 3041に、受信されたデータを光子に変換し、光子を視認者の左眼に向かって放出し、それによって、画像を左ディスプレイユニット3018上に表示する。画像が、左ディスプレイユニット3018上に表示された後、GPU3036は、時間t4 3042に、入手されたデータ(例えば、右眼に関する姿勢推定を生成するために画像およびIMUから受信されたデータならびに姿勢推定から生成された3Dコンテン)を用いて、右フレームをレンダリングしてもよい。第2の時間ワーピングは、時間ワーピング右モジュール3055によって、時間t5 3043(例えば、時間t3 3041に、時間ワーピングされた画像が左ディスプレイユニット3018上に表示された後)に、IMUから受信された第2の最新姿勢3044を使用して、レンダリングされた右フレームに実施される。時間ワーピング右フレームモジュール3046の出力は、右ディスプレイユニット3020に伝送される。右ディスプレイユニット3020は、時間t6 3047に、受信されたデータを光子に変換し、光子を視認者の右眼に向かって放出し、それによって、画像を右ディスプレイユニット3020上に表示する。右ディスプレイユニット3020は、データが画像およびIMUから受信された「x」秒後に、画像を表示し、xは、平滑視認のために要求されるリフレッシュレート未満の数学的関係である。故に、2つのディスプレイユニット(すなわち、左ディスプレイユニット3018および右ディスプレイユニット3020)は、相互から完全にオフセットされて更新し、各更新は、他方に対してシーケンシャルである(例えば、2x<平滑視認のために要求されるリフレッシュレート)。
【0093】
当業者は、左ディスプレイユニットおよび右ディスプレイユニットが画像を表示する順序が、
図26から
図29に関して前述のものと異なってもよいことを理解されるであろう。本システムは、左ディスプレイユニット3018が右ディスプレイユニット3020が画像を表示する時間より後に画像を表示するように修正されてもよい。
【0094】
また、本明細書に説明される実施例および実施形態は、例証的目的のためだけのものであって、それに照らして、種々の修正または変更が、当業者に示唆され、本願の精神および権限ならびに添付の請求項の範囲内に含まれるべきであることを理解されたい。
【0095】
また、本明細書に説明される実施例および実施形態は、例証的目的のためだけのものであって、それに照らして、種々の修正または変更が、当業者に示唆され、本願の精神および権限ならびに添付の請求項の範囲内に含まれるべきであることを理解されたい。