特許第6110007号(P6110007)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ オキュラス ブイアール,エルエルシーの特許一覧

特許6110007ヘッドマウントディスプレイのための知覚に基づく予測追跡
<>
  • 特許6110007-ヘッドマウントディスプレイのための知覚に基づく予測追跡 図000002
  • 特許6110007-ヘッドマウントディスプレイのための知覚に基づく予測追跡 図000003
  • 特許6110007-ヘッドマウントディスプレイのための知覚に基づく予測追跡 図000004
  • 特許6110007-ヘッドマウントディスプレイのための知覚に基づく予測追跡 図000005
  • 特許6110007-ヘッドマウントディスプレイのための知覚に基づく予測追跡 図000006
  • 特許6110007-ヘッドマウントディスプレイのための知覚に基づく予測追跡 図000007
  • 特許6110007-ヘッドマウントディスプレイのための知覚に基づく予測追跡 図000008
  • 特許6110007-ヘッドマウントディスプレイのための知覚に基づく予測追跡 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6110007
(24)【登録日】2017年3月17日
(45)【発行日】2017年4月5日
(54)【発明の名称】ヘッドマウントディスプレイのための知覚に基づく予測追跡
(51)【国際特許分類】
   G09G 5/00 20060101AFI20170327BHJP
   G06F 3/01 20060101ALI20170327BHJP
   G06F 3/0484 20130101ALI20170327BHJP
【FI】
   G09G5/00 510A
   G09G5/00 550C
   G09G5/00 550B
   G06F3/01 510
   G06F3/0484 150
【請求項の数】20
【全頁数】20
(21)【出願番号】特願2016-214175(P2016-214175)
(22)【出願日】2016年11月1日
(62)【分割の表示】特願2016-517019(P2016-517019)の分割
【原出願日】2014年5月29日
(65)【公開番号】特開2017-33022(P2017-33022A)
(43)【公開日】2017年2月9日
【審査請求日】2016年11月1日
(31)【優先権主張番号】61/829,008
(32)【優先日】2013年5月30日
(33)【優先権主張国】US
(31)【優先権主張番号】14/285,470
(32)【優先日】2014年5月22日
(33)【優先権主張国】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】515046968
【氏名又は名称】オキュラス ブイアール,エルエルシー
(74)【代理人】
【識別番号】100107249
【弁理士】
【氏名又は名称】中嶋 恭久
(72)【発明者】
【氏名】ラバル、スティーブ
(72)【発明者】
【氏名】ジョカリス、ピーター
【審査官】 中村 直行
(56)【参考文献】
【文献】 特開2008−233765(JP,A)
【文献】 特開2010−256554(JP,A)
【文献】 国際公開第2012/177657(WO,A1)
【文献】 国際公開第2013/162977(WO,A1)
【文献】 米国特許出願公開第2004/0080467(US,A1)
【文献】 米国特許出願公開第2004/0051680(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G09G 3/00 − 5/42
G06F 3/01
G06F 3/0484
(57)【特許請求の範囲】
【請求項1】
方法であって、
ヘッドマウントディスプレイを監視するセンサーから角速度測定値を入手するステップと、
前記角速度測定値及びsmoothstep関数に基づいて予測間隔の時間を決定するステップであって、決定された予測間隔の時間がゼロ又は最大遅延間隔に近づくにつれて、決定された予測間隔の時間の増加率がゼロに近づく、前記決定するステップと、
前記予測間隔の時間にわたり外挿された平滑な角速度測定値を用いて前記ヘッドマウントディスプレイの三次元方位を予測し、前記予測間隔の時間に等しい時間の経過後の前記ヘッドマウントディスプレイの予測方位を生成するステップと、
前記ヘッドマウントディスプレイ上の表示のために、前記ヘッドマウントディスプレイの前記予測方位に対応する作成映像を生成するステップと
を含む方法。
【請求項2】
前記smoothstep関数は、smoothstep(t)=3t−2tによって表され、ここで、tは、t=1が遅延間隔に対応するようにスケーリングされた未平滑な予測間隔であり、smoothstep(t)が決定された予測間隔である、請求項1に記載の方法。
【請求項3】
前記角速度測定値が前記ヘッドマウントディスプレイが実質的に静止していることを示している場合、前記角速度測定値について標本期間にわたり回帰を行い、及び前記回帰の結果を前記角速度測定値の代わりに適用することにより、前記角速度測定値を平滑化するステップをさらに含む、請求項1に記載の方法。
【請求項4】
前記角速度測定値により前記ヘッドマウントディスプレイが実質的なゼロより高い角速度で移動していることが示される間、前記角速度測定値の平滑化を停止するステップをさらに含む、請求項3に記載の方法。
【請求項5】
所定の遅延間隔が15ミリ秒〜60ミリ秒である、請求項1に記載の方法。
【請求項6】
所定の閾値が毎秒0.3ラジアンである、請求項1に記載の方法。
【請求項7】
前記角速度測定値が1000Hz以上の標本化率で得られる、請求項1に記載の方法。
【請求項8】
実行可能なコンピュータ命令を格納する非一時的にコンピュータ読み取り可能な記憶媒体と、ハードウェア・プロセッサとを備える装置であって、
前記ハードウェア・プロセッサは、前記コンピュータ命令を実行してプロセッサに、
ヘッドマウントディスプレイを監視するセンサーから角速度測定値を入手すること、
前記角速度測定値及びsmoothstep関数に基づいて予測間隔の時間を決定することであって、決定された予測間隔の時間がゼロ又は最大遅延間隔に近づくにつれて、決定された予測間隔の時間の増加率がゼロに近づく、前記決定すること、
前記予測間隔の時間にわたり外挿された平滑な角速度測定値を用いて前記ヘッドマウントディスプレイの三次元方位を予測し、前記予測間隔の時間に等しい時間の経過後の前記ヘッドマウントディスプレイの予測方位を生成すること、
前記ヘッドマウントディスプレイ上の表示のために、前記ヘッドマウントディスプレイの前記予測方位に対応する作成映像を生成すること
を行わせる、装置。
【請求項9】
前記smoothstep関数は、smoothstep(t)=3t−2tによって表され、ここで、tは、t=1が遅延間隔に対応するようにスケーリングされた未平滑な予測間隔であり、smoothstep(t)が決定された予測間隔である、請求項8に記載の装置。
【請求項10】
前記コンピュータ命令は、プロセッサにより実行されるときに、前記角速度測定値が前記ヘッドマウントディスプレイが実質的に静止していることを示している場合、前記角速度測定値について標本期間にわたり回帰を行い、及び前記回帰の結果を前記角速度測定値の代わりに適用することにより、前記角速度測定値を平滑化することを前記プロセッサに行わせる、請求項8に記載の装置。
【請求項11】
前記コンピュータ命令は、プロセッサにより実行されるときに、前記角速度測定値により前記ヘッドマウントディスプレイが実質的なゼロより高い角速度で移動していることが示される間、前記角速度測定値の平滑化を停止することを前記プロセッサに行わせる、請求項10に記載の装置。
【請求項12】
所定の遅延間隔が15ミリ秒〜60ミリ秒である、請求項8に記載の装置。
【請求項13】
所定の閾値が毎秒0.3ラジアンである、請求項8に記載の装置。
【請求項14】
前記角速度測定値が1000Hz以上の標本化率で得られる、請求項8に記載の装置。
【請求項15】
前記角速度測定値を与えるための前記センサーと、
予測された映像を表示するための前記ヘッドマウントディスプレイと、
前記プロセッサと、
メモリと
をさらに含み、前記プロセッサ及び前記メモリが前記記憶媒体上の前記コンピュータ命令を実行するための回路及びソフトウェアを含む、請求項8に記載の装置。
【請求項16】
実行可能なコンピュータ命令を格納する非一時的にコンピュータ読み取り可能な記憶媒体であって、前記コンピュータ命令は、プロセッサにより実行されるときに、
ヘッドマウントディスプレイを監視するセンサーから角速度測定値を入手するステップと、
前記角速度測定値及びsmoothstep関数に基づいて予測間隔の時間を決定するステップであって、決定された予測間隔の時間がゼロ又は最大遅延間隔に近づくにつれて、決定された予測間隔の時間の増加率がゼロに近づく、前記決定するステップと、
前記予測間隔の時間にわたり外挿された平滑な角速度測定値を用いて前記ヘッドマウントディスプレイの三次元方位を予測し、前記予測間隔の時間に等しい時間の経過後の前記ヘッドマウントディスプレイの予測方位を生成するステップと、
前記ヘッドマウントディスプレイ上の表示のために、前記ヘッドマウントディスプレイの前記予測方位に対応する作成映像を生成するステップと
を行うように構成されている、非一時的にコンピュータ読み取り可能な記憶媒体。
【請求項17】
前記smoothstep関数は、smoothstep(t)=3t−2tによって表され、ここで、tは、t=1が遅延間隔に対応するようにスケーリングされた未平滑な予測間隔であり、smoothstep(t)が決定された予測間隔である、請求項16に記載の非一時的にコンピュータ読み取り可能な記憶媒体。
【請求項18】
前記コンピュータ命令は、プロセッサにより実行されるときに、前記角速度測定値が前記ヘッドマウントディスプレイが実質的に静止していることを示している場合、前記角速度測定値について標本期間にわたり回帰を行い、及び前記回帰の結果を前記角速度測定値の代わりに適用することにより、前記角速度測定値を平滑化するステップを行うように構成されている、請求項16に記載の非一時的にコンピュータ読み取り可能な記憶媒体。
【請求項19】
前記コンピュータ命令は、プロセッサにより実行されるときに、前記角速度測定値により前記ヘッドマウントディスプレイが実質的なゼロより高い角速度で移動していることが示される間、前記角速度測定値の平滑化を停止するステップを行うように構成されている、請求項18に記載の非一時的にコンピュータ読み取り可能な記憶媒体。
【請求項20】
所定の遅延間隔が15ミリ秒〜60ミリ秒である、請求項16に記載の非一時的にコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ヘッドマウントディスプレイのための予測運動追跡に関する。
[著作権及びトレードドレスに関する通知]
本特許文献の開示の一部は、著作権保護の対象となる資料を含んでいる。本特許文献は、所有者のトレードドレスであるか又はそうなる可能性を有する事物を示し、及び/又は記述し得る。本件著作権及びトレードドレスの所有者は、特許商標庁の特許ファイル又は記録に表示される場合における何人による本開示の複写複製にも反対しないが、その他においては一切の著作権及びトレードドレス権をすべて留保する。
【背景技術】
【0002】
ヘッドマウントディスプレイは、バーチャルリアリティ及び拡張現実システムにおいて使用されて久しい。バーチャルリアリティシステムは、一般的に着用者の眼を完全に覆い、かつ、「バーチャル」リアリティをもって現実に代える。これらのバーチャルリアリティ環境は、意図的に又はバーチャルリアリティシステムの能力の欠如のために粗雑であり得る。しかし、バーチャルリアリティ環境は、同時に、詳細であり、相互作用的であり、かつ、非常に複雑であって、仮想の人々、会話及び経験を含み得る。バーチャル環境の最も顕著な例は、ゲームの世界と相互作用するプレーヤーキャラクターを含むビデオゲームであり得る。しかし、バーチャル環境は、必ずしもゲームである必要はなく、その代わりに教育経験、グループ活動(史跡旅行など)、又は友人を表すアバターとともに仮想ルームに座り、会話を交わすのみでもよい。
【0003】
拡張現実システムは、対照的に、一般的に着用者の眼の前に1つ又は複数の半透明又は透明のオーバーレイ画面を設け、追加情報、グラフィカル表現又は捕捉データにより現実を「拡張する」。拡張現実は、たとえば、「仮想」の人々、物、乗用車、部屋、空間、標識及びその他のデータを視聴者の現実に重ね合わせることができる。単純な拡張現実システムは、単に目撃シーン又は空間に関する情報(たとえば、温度、着用者の将来の約束、移動の速度、GPS位置など)を提供するのみでもよい。より複雑な拡張現実システムは、壁、アートワーク、人物及び同様の要素などの「仮想」有形物体をシーンに重ね合わせることができる。これらはリアルタイムで更新され得、拡張現実ディスプレイに現れた映像が視聴者にとって場所内に存在するように見えることになる。
【0004】
いずれのシステムにおいても、かかるヘッドセットの着用者の運動は、ユーザの運動に反応するため、及び表示される映像を更新するために追跡され得る。この追跡は、ジャイロスコープ、加速度計、磁気計、及び場合によっては、ヘッドセットの位置、運動及び方位に関するデータを生成するカメラ又はカラーセンサーなどのセンサーを利用する。この追跡データを使用して角速度、直線加速度、重力データなどの情報を生成することができ、次にこれらのデータを使用することにより着用者の運動に応答してヘッドセットのディスプレイを調整することができる。
【0005】
予測運動は、過去において、バーチャルリアリティ及び拡張現実ヘッドセットに組み込まれてきた。しかし、上記に示したセンサーの標本化率は、人間の視覚の鋭敏さに比して一般的に極めて緩やかである(約数十ミリ秒)。サンプル間の時間が長いため、これらの予測は、予測が実際の頭の位置及び方位から行き過ぎるいわゆる「オーバーシュート」を頻繁にもたらす。あるいは、これらの予測は、他の問題を回避するためにあまりにも強度に平滑化しなければならないため、その結果、単に動きを予測しない方がよりよい結果をもたらすほど不正確となる。
【図面の簡単な説明】
【0006】
図1】バーチャルリアリティシステムの概要である。
図2】コンピュータ装置のブロック図である。
図3】バーチャルリアリティヘッドセットのブロック図である。
図4】バーチャルリアリティシステムの機能図である。
図5】バーチャルリアリティヘッドセットを着用しているユーザである。
図6】AおよびBは、予測運動追跡により生成されるジッターの例である。
図7】A、B及びCは、実際の動きと比較した予測運動追跡の例である。
図8】予測運動追跡プロセスに適用される知覚的調整フィルタリングを示すフローチャートである。
【発明を実施するための形態】
【0007】
この記述全体を通じて、図に示した要素には3桁の参照識別子が割り当てられている。最高位の桁は図の番号であり、次の2桁は要素特有である。図とともに記述されない要素は、同一の下2桁の参照識別子を有する前に記述された要素と同じ特徴及び機能を有するものと推測される必要があり得る。
【0008】
バーチャルリアリティシステムのジッター、遅延時間及び総合的反応性を含む種々の要因を考慮する運動予測の動的適用は、予測運動追跡に関する問題を大幅に低減することができる。たとえば、運動するヘッドセットにのみ予測運動を適用すること、かつ、その運動の大きさに適する程度にのみ予測運動を適用することのみにより、単にすべての運動について予測的追跡を同じ程度まで可能にすることより優れた全体的予測精度が得られる(同一予測間隔について)。
【0009】
同様に、平滑化、たとえば、最も新しく検知された運動の回帰に基づく平均化は、運動のデータによりヘッドセットが実質的に静止していることが示された場合には積極的に適用できるが、運動のデータによりヘッドセットが比較的高い角速度で移動していること又は角加速度が増加していることが示される場合にはあまり積極的に適用できない。この理由は、人間の頭が回っているときより頭が実質的に静止しているときに、人間の眼がいわゆる「ジッター」に対して非常に敏感であるためである。ジッターは、センサー測定値の一連のほんのわずかな変動のために、結果として作成されたビデオが「はずんだ」ときに生じる。頭が静止しているとき、このジッターは非常に目立つ。動いているとき、ジッターは人間の感覚により殆ど全く知覚されない。
【0010】
平滑化と運動予測との両方のこれらの種類の動的スケーリングは、知覚的調整フィルタリングと呼ぶことができよう。それらは、バーチャルリアリティシステムにおいて利用することができるハードウェアの技術的限界の理解とともに、人間の知覚に関する発見データに依存するからである。
【0011】
装置の説明
ここで図1を参照すると、バーチャルリアリティシステム100の概要が示されている。このシステムは、ネットワーク150により接続されるユーザシステム110及び環境サーバ120、及びVRヘッドセット130を含んでいる。ユーザ135も示されているが、ユーザ135は、システム100とは別の要素として考えることができる。
【0012】
ユーザシステム110は、VRヘッドセットに表示されるバーチャルリアリティ環境を生成するためにVRヘッドセット130に接続され、VRヘッドセット130と相互作用するコンピュータ装置である。ユーザシステム110は、たとえば、マイクロソフト(Microsoft(登録商標))エックスボックス(Xbox(登録商標))、ニンテンドー(Nintendo(登録商標))ウィー(Wii(登録商標))及びウィーユー(Wii U(登録商標))、並びにソニー(Sony(登録商標))プレイステーション(PlayStation(登録商標))などのコンソールなどの標準的なデスクトップコンピュータ、ビデオゲームコンソールでよい。ユーザシステム110は、場合によっては、携帯電話機、タブレットコンピュータ、又はその他のハンドヘルド又は小型コンピュータ装置などの携帯機器でよい。ユーザシステム110は、三次元環境を作成するコンピュータ装置により一般的に使用される映像プロセッサなどのタスク特有ハードウェアを含むことができる。映像プロセッサは、スタンドアロンビデオカードに収容するか、又はより大きなプロセッサ又はシステムオンチップに組み込むことができる。
【0013】
一般的に、ユーザシステム110は、オペレーティングシステムソフトウェア及び場合によってはVRヘッドセット130で表示されるバーチャル環境の映像を生成するバーチャル環境ソフトウェアを含むソフトウェアを実行する。バーチャル環境ソフトウェアは、たとえば、VRヘッドセット130の着用者にゲームの世界のバーチャル環境に「実在している」ように思わせる三次元世界の映像を生成するビデオゲームソフトウェアであってもよい。
【0014】
環境サーバ120は、コンピュータ装置である。環境サーバ120は、バーチャルリアリティシステム100の実現に応じて任意選択とすることができる。バーチャル環境100がマルチユーザ又はマルチパーティである場合、環境サーバ120は、バーチャル環境を作成するためにユーザシステム110により使用されるデータの一部を与えることができる。
【0015】
たとえば、環境サーバ120は、ユーザシステム110により作成されているバーチャル環境に同時に接続されている他のユーザに関するデータをネットワーク150経由で維持し、かつ、伝達することができる。この方法により、VRヘッドセット130などのVRヘッドセットのユーザ群のユーザアバターが共にバーチャル環境内に出現することができる。1人のユーザがその環境内で「動く」につれて、環境サーバ120はそのデータを受けとり、そのデータを他のユーザに関係付けられているユーザシステム110などのユーザシステムに渡すことができる。したがって、環境サーバ120は、ユーザ群が共にバーチャル環境をリアルタイムで経験することを可能にし得る。
【0016】
幾つかの実施形態、特にマルチユーザ又はマルチパーティ体験を包含しない実施形態では、環境サーバ120は不要であり得る。かかる状況では、ユーザシステム110は、バーチャル環境を作成するすべての役割を引き受け得る。
【0017】
VRヘッドセット130は、ユーザシステム110と同様にコンピュータ装置であるが、幾つか特殊な特徴を有している。VRヘッドセット130は、少なくとも1つの内蔵ディスプレイを含み、かつ、VRヘッドセット130の運動、位置及び/又は方位のデータを生成するために使用され得る1つ又は複数のセンサーを含んでいる。VRヘッドセット130の着用者が動くのにつれて、これらのセンサーは、運動、位置、及び/又は方位のデータを生成し、それをユーザシステム110に送り出す。ユーザシステム110は、VRヘッドセット130に内蔵されているディスプレイに表示されるべき1つ又は複数の映像を返す。
【0018】
VRヘッドセット130は、USB(登録商標)、HDMI(登録商標)、DVI、VGA、光ファイバ、ディスプレイポート(DisplayPort(登録商標))、ライトニング(Lightning(登録商標))コネクタ、イーサネット(Ethernet(登録商標))などの標準コンピュータ入出力インターフェースにより、又はVRヘッドセット130をユーザシステム110に接続するために特に設計された特注インターフェースによりユーザシステム110に接続することができる。一般的に、これらの接続の少なくとも一部は、作成されたビデオデータ映像ができるだけ短い遅延で内蔵ディスプレイに表示されるようにするために、比較的ハイスループットである。場合によっては、ユーザシステム110とVRヘッドセット130との間のデータの一部を送出するために802.11プロトコル、ブルートゥース(Bluetooth(登録商標))、又は無線周波数を使用する無線接続を使用することができる。
【0019】
VRヘッドセット130は、ユーザシステム110の機能の一部又は全部を内蔵することができる。しかし、現在の技術を使用する場合、これらのシステムは、お互いに異なったままである。それは、主として、確かなバーチャル環境を現出するため、及び本明細書において記述する運動外挿を行うために必要な処理能力及び記憶装置はより強力であることが望ましく、および高性能プロセッサは、現在、ユーザシステム110のようなより大きい、すなわちより高価なコンピュータ装置でのみ、利用可能であるからである。
【0020】
ユーザシステム110がタブレット又は携帯電話機などの携帯機器であるような一部の例では、携帯機器のセンサー及び携帯機器のディスプレイがVRヘッドセット130機能のすべて又は一部の代わりをする。たとえば、携帯機器のディスプレイがVRヘッドセット130のディスプレイとなる。
【0021】
ユーザ135は、VRヘッドセット130の着用者である。ユーザ135は、VRヘッドセット130に組み込まれているディスプレイを見ることができるようにヘッドセットを着用する。ユーザシステム110がVRヘッドセット130上のディスプレイのバーチャル環境を作成するときに、ユーザ135は、ユーザシステム110をさらに制御するために、マウス、キーボード、ヘッドフォン、スピーカ、マイクロフォン、ハンドヘルドコントローラ又はその他の同様の相互作用構成部品(図示せず)などのその他の周辺機器と相互作用する。
【0022】
ネットワーク150は、ユーザシステム110を環境サーバ120に接続する有線又は無線ネットワークである。ネットワーク150は、インターネット又はローカルエリアネットワーク(LAN:local area network)又は広域ネットワーク(WAN:wide area network)とするか、又はそれを含むことができる。ネットワーク150は、ユーザシステム110又は120間の通信を容易にするためにTCP/IP、イーサネット(Ethernet(登録商標))又はその他の大規模ネットワークプロトコルなどの一般的プロトコルを使用することができる。特注プロトコルも使用することができる。環境サーバ120からユーザシステム110(及びその他のユーザシステム)への通信は、配信確保プロトコルよりむしろ放送プロトコルを使用することができる。これは、複数のユーザシステムによる最新データの受信の確認を待つことなく、環境サーバがユーザシステム110上のデータを連続的に更新することを可能にし得る。
【0023】
ここで図2に進むと、サーバコンピュータ、クライアント装置、携帯機器及び本明細書において検討されるその他のコンピュータ装置を表すコンピュータ装置200のブロック図が示されている。ユーザシステム110及び環境サーバ120は、コンピュータ装置の例である。
【0024】
コンピュータ装置200は、本明細書において記述される機能及び特徴を与えるためのソフトウェア及び/又はハードウェアを含むことができる。したがってコンピュータ装置200は、1つ又は複数の記憶装置、アナログ回路、デジタル回路、ソフトウェア、ファームウェア及びプロセッサを含むことができる。コンピュータ装置200のハードウェア構成要素及びファームウェア構成要素は、本明細書において記述される機能及び特徴を与えるための種々の特殊化装置、回路、ソフトウェア及びインターフェースを含むことができる。
【0025】
コンピュータ装置200は、メモリ212、記憶装置214、ネットワークインターフェース216及びI/Oインターフェース218と結合されるプロセッサ210を備えている。プロセッサは、1つ又は複数のマイクロプロセッサ、組込特殊機能プロセッサ(映像プロセッサなど)、特定用途向け集積回路(ASIC:application specific integrated circuits)、又はシステムオンチップ(SOAC:systems on a chip)とするか又はそれを含むことができる。
【0026】
メモリ212は、RAM、ROM、DRAM、SRAM及びMRAMとするか又はそれらを含むことができ、かつ、静的データ又は固定命令、BIOS、システム機能、設定データ、及びコンピュータ装置200及びプロセッサ210の動作中に使用されるその他のルーチンなどのファームウェアを含むことができる。メモリ212は、プロセッサ210により取り扱われるアプリケーション及びデータに関するデータ及び命令のための記憶領域も与える。
【0027】
記憶装置214は、コンピュータ装置200におけるデータ又は命令の非揮発性、大容量又は長期格納を可能にする。記憶装置214は、ディスク、テープ、CD、DVD、SSD(半導体ドライブ)又はその他の適度の大容量アドレス可能又は直列記憶媒体の形態をとることができる。コンピュータ装置200に複数の記憶装置を設けること又はそれから利用可能とすることができる。これらの記憶装置の一部は、ネットワーク記憶装置又はクラウド応用記憶装置などコンピュータ装置200にとって外付けとすることができる。
【0028】
ネットワークインターフェース216は、ネットワーク150(図1)などのネットワークへのインターフェースを含んでいる。
I/Oインターフェース218は、プロセッサ210をVRヘッドセット130、ディスプレイ、キーボード、マウス、コントローラ、USB装置及びその他の周辺機器などの周辺機器(図示せず)に接続する。
【0029】
図3は、図2について上述したものとほぼ同じコンピュータ装置を有するバーチャルリアリティヘッドセット300のブロック図を示す。図2に関して上記において検討された要素については、ここでは繰り返さない。バーチャルリアリティヘッドセット300のこのコンピュータ装置は、部分的又は全面的にシステムオンチップとして実現することができる。
【0030】
プロセッサ312の処理能力は、普通規模のコンピュータ装置において利用可能な能力より低くてよい。メモリ314、ネットワークインターフェース316、記憶装置318、及び入力/出力インターフェース320は、単一パッケージに組み込むことができ、かつ、素早い応答時間を得るために小さな命令セットとして設計することができる。
【0031】
センサー322は、運動、位置、及び方位のデータを生成するために使用されるセンサーである。これらのセンサーは、ジャイロスコープ、加速度計、磁気計、ビデオカメラ、カラーセンサー、又はその他の運動、位置、及び方位のセンサーとするか、又はそれらを含むことができる。センサー322は、運動、位置及び方位のデータを生成するためにカメラ又はカラーセンサーにより外部的に観察される一連の能動的又は受動的マーカなどのセンサーの下位構成部分も含むことができる。たとえば、バーチャルリアリティヘッドセットは、その外部に、外部カメラにより観察されたとき又はライト(たとえば赤外線又は可視光線のライト)により照らされたときに運動、位置、及び方位のデータを生成するソフトウェアによる解釈のための1つ又は複数の基準点を与える反射器又はライト(たとえば赤外線又は可視光線のライト)などの一連のマーカを含むことができる。この意味において、これらのマーカは「センサー」ではないが、運動、位置、及び方位のデータを生成するために使用されるセンサーシステムの下位部分を構成する。
【0032】
センサー322は、センサーデータを高速で与えるために比較的高い周波数で動作することができる。たとえば、センサーデータは、1000Hzの割合で生成することができる(すなわち1ミリ秒毎にセンサーの1つの測定値)。この方法により、毎秒1000個の測定値が採取される。センサーがこの割合(又はそれ以上の割合)でこの大量データを生成する場合、運動を予測するために使用されるデータの集まりは、約数十ミリ秒という比較的短い時間内でもかなり大量である。
【0033】
バーチャルリアリティヘッドセットは、表示される映像データがディスプレイ上に示される直前にそれを格納するディスプレイバッファ324を含んでいる。このバッファは、プロセッサ312にとって利用可能なメモリ314とするか、又はそれを含むことができる。この方法により、ディスプレイは、プロセッサ312からの入力に応答して迅速に機能することができる。
【0034】
バーチャルリアリティヘッドセット300のディスプレイ(図示せず)は、1つ又は複数のディスプレイとすることができる。このディスプレイは、VRヘッドセット130の着用者の両眼の直前に位置を占めてもよい。したがって、このディスプレイは、依然として着用者の広い視覚野を満たしている間、比較的低い解像度でよい。このディスプレイは、ユーザシステム110により作成されたバーチャル環境を着用者に表示する。
【0035】
図4に進むと、バーチャルリアリティシステム400の機能図が示されている。バーチャルリアリティシステム400は、ユーザシステム410、環境サーバ420及びVRヘッドセット430を含んでいる。これらは、図1のユーザシステム110、環境サーバ120及びVRヘッドセット130に対応していてもよい。このシステムの一部ではないユーザ435も示されている。
【0036】
ユーザシステム410は、オペレーティングシステム411、ネットワーク入力/出力インターフェース412、環境ソフトウェア413、バーチャルリアリティドライバ414、及び運動予測及び平滑化装置415を含んでいる。
【0037】
オペレーティングシステム411は、ユーザシステム410のオペレーティングシステムである。これは、ユーザシステム410がパーソナルコンピュータ又は同様の装置である場合、たとえばウィンドウズ(Windows(登録商標))、オーエステン(OSX(登録商標))、リナックス(Linux(登録商標))又はその他のオペレーティングシステムでよい。オペレーティングシステム411は、典型的なビデオゲームコンソールにおいて使用されているオペレーティングシステムなどの専有システムとすることができる。さらに、オペレーティングシステム411は、ユーザシステム410が携帯機器である場合、アイオーエス(iOS(登録商標))、アンドロイド(Android(登録商標))又は同様の携帯機器オペレーティングシステムとすることができる。オペレーティングシステム411は、他のソフトウェア、ドライバ及び周辺機器が機能するための環境を与える。
【0038】
ネットワーク入力/出力インターフェース412は、ユーザシステム410が環境サーバ420(存在する場合)と通信することを可能にする。ネットワーク入力/出力インターフェース412は、ネットワーク通信を可能にする環境ソフトウェア413に特有の典型的なネットワークドライバ及びソフトウェアを含むことができる。
【0039】
環境ソフトウェア413は、バーチャルリアリティとして提示される環境を生成するために他の構成要素とともに動作するソフトウェアである。たとえば、環境ソフトウェアは、VRヘッドセット430のディスプレイ上に提示される三次元世界を生成するビデオゲームソフトウェアとすることができる。環境ソフトウェア413は、特殊ソフトウェアを含むことができる。それは、環境ソフトウェアがVRヘッドセットにおいてよく行われるように種々の角度からの複数の表示を同時に作成することを可能にし、単一のディスプレイ上の2つの表示すなわち2つの別々の映像が、それぞれの眼に1つずつ、示される。環境ソフトウェア413は、VRヘッドセット430に適するコンテンツを出力することを可能にするために特に設計されたソフトウェアに組み込むこともできる。
【0040】
環境ソフトウェア413は、ビデオゲームソフトウェアである必要はないが、なんらかの種類のバーチャルリアリティソフトウェア又は拡張現実環境ソフトウェアであり得る。このソフトウェアは、架空の場所、歴史的場所、教育的場所、又は現実を模倣する殆どすべての没入環境を含むバーチャルリアリティ場所を生成することができる。
【0041】
バーチャルリアリティドライバ414は、オペレーティングシステム411と環境ソフトウェア413とVRヘッドセット430間のソフトウェアオーバーレイとすることができる。バーチャルリアリティドライバ414は、特に、環境ソフトウェア413から入力を受け、かつ、データをVRヘッドセット430にVRヘッドセット430による表示に適する形態で出力する。バーチャルリアリティドライバ414は、環境データの伝送及び使用を加速してVRヘッドセット430が迅速に反応することを可能にするためにソフトウェアレベルの下の1つ又は複数の抽象化レベルにおいてVRヘッドセット430と相互作用することができる。これは、ユーザシステム410がVRヘッドセット430より強力なシステム(たとえばより強力なプロセッサを備えている)である場合に、特に当てはまり得る。この方法によりVRヘッドセット430は、VRヘッドセット430にとって必要な相当な追加処理なしに、VRヘッドセット430上に直接表示され得る大量の生データを受け入れることができる。
【0042】
運動予測及び平滑化装置415は、VRヘッドセット430の運動、方位、及び位置の予測を受け持つソフトウェアである。運動予測装置は、バーチャルリアリティドライバ414の一部とすることができる。
【0043】
運動予測及び平滑化装置415は、VRヘッドセット430中のセンサーからデータを受け取り、そのデータを操作してVRヘッドセット430の運動、方位、及び位置の予測を行うことができる。運動予測及び平滑化装置415は、たとえば、短い時間枠内の角速度測定値(たとえば最新10ミリ秒内における10個の測定値)を平均して将来の運動、方位、及び位置に関する予測を導き出すことができる。その代わりに、運動予測及び平滑化装置415は、一連の角速度測定値を微分して角加速度を導き出し、かつ、将来において所定の時間を外挿して将来の運動、方位、及び位置を予測することができる。予測プロセスについては、後段において図8を参照してさらに詳しく説明する。
【0044】
また、運動予測及び平滑化装置415は、センサーデータについて「平滑化」動作を行うことができる。最も加工度の低い形態でVRヘッドセット430の一連のセンサーから受け取った運動、方位、及び位置のデータは、やや不正確であり得る。たとえば、1ミリ秒あたり1回の範囲の標本化率では、VRヘッドセット430の方位、運動、位置のわずかな変化は、運動、方位又は位置の実際の変化を表さない増分的なセンサー測定値を場合によりもたらし得る。
【0045】
たとえばVRヘッドセット430を着用しているユーザが実質的に静止しているときにも、センサーは依然としてわずかな変動を報告し得る。このデータを使用した場合、VRヘッドセット上の表示のために生成された映像は、VRヘッドセット430の実際の変化を表さないわずかな変動を含み得る。その結果、VRヘッドセット430の表示にいわゆる「ジッター」が取り込まれ得る。これは、VRヘッドセット430のユーザにとって、VRヘッドセット430のセンサーから受け取られるデータ中のわずかな変動に応答してわずかな増分の範囲で「飛び跳ねる」映像として現れる。
【0046】
このジッター及びその他の同様の誤差に応じて、運動予測及び平滑化装置415は、受け取ったデータに対して平滑化を適用することもできる。この平滑化は、たとえば、センサーの一連の最新の測定値を取り上げてそれらを平均することにより、VRヘッドセット430上に次に表示される映像を作成するために使用される運動、方位、及び位置のデータを実際に生成するために使用されるデータを導くことである。異常値と思われるデータを除外しつつセンサーデータを一定の時間間隔にわたり外挿する直線的又は非直線的フィルタリングなどのその他の平滑化方法も使用することができる。
【0047】
環境サーバ420は、オペレーティングシステム421、ネットワーク入力/出力インターフェース422、環境ソフトウェア423、及び環境データベース424を含んでいる。オペレーティングシステム421及びネットワーク入力/出力インターフェース422は、環境サーバ420関連を除き、上述したユーザシステム410について記述された機能と実質的に同じ機能を果たす。オペレーティングシステム421は、複数のユーザ接続をたとえばネットワーク経由でサポートするオペレーティングシステムである場合が多い。同様に、ネットワーク入力/出力インターフェース422は、複数の接続のサポートにも優れたものとするか、又はネットワークへのより高速な接続を備えることができる。
【0048】
環境ソフトウェア423は、ユーザシステム410上の環境ソフトウェア413とは異なる目的を果たす。この環境ソフトウェアは、ユーザに表示する三次元世界を作成する実際の役割は負わない。その代わり、それは、環境サーバ420に接続されている複数のユーザの状態を維持することができる。たとえば、数百人のユーザが環境サーバ420に同時に接続されている場合、環境ソフトウェア423は、これらのユーザのそれぞれの場所、動作、運動及びその他のデータを示す環境データベース424を維持することができる。環境データベース424は、ユーザシステム410と同様に、これらのデータをユーザシステムに送出するためにこれらの位置を動的に更新し、かつ、格納することができる。これにより、ユーザシステム410の環境ソフトウェア413は、そのデータを組み込んでその画像表示を更新することができる。これは、たとえば、環境ソフトウェアにより作成された三次元環境内において他のユーザを表すアバターの場所である。
【0049】
VRヘッドセット430は、図1におけるVRヘッドセット130とほぼ同じとし、かつ、図3のコンピュータ装置300を含むことができる。VRヘッドセット430は、ユーザ435によりバーチャルリアリティ環境又は拡張現実バーチャル環境を経験するために着用され得る。
【0050】
ここで図5に進むと、バーチャルリアリティヘッドセット530を着用したユーザ535が示されている。VRヘッドセット530は、ユーザ535の両眼の前に着用されている。ユーザ535の頭は、ピッチ軸540、ロール軸550及びヨー軸560の三次元軸の中心に位置していると見なすことができる。三次元デカルト座標において、ピッチ540はx軸、ロール550はz軸、およびヨー560はy軸である。
【0051】
VRヘッドセット530の運動(ユーザの運動)は、ピッチ540、ロール550及びヨー560により表すことができる。三次元方位を表す1つの方法は、四元数を使用する。これは、任意の三次元方位がq(v,θ)=(cos(θ/2),vsin(θ/2),vsin(θ/2),vsin(θ/2))の形態で表現される四元数により表し得るからである。ここでq(v,θ)は、同じ回転を表す。四元数は、三次元空間における予測を行うために非常に有益な代数的演算に基づく形状(たとえば、ハール測度)を保存しつつ比較的少ないパラメータによる回転の操作を可能にするという利点を有している。
【0052】
ハール測度は、三次元空間における物体の複数の回転が相互に関連したままとなるようにすることに役立つ。たとえば、2つの先行回転に第3回転を適用すると、好ましくは、それら2つの先行回転が依然として同じ距離だけ離隔し続けるという結果となるであろう。ハール測度に関する一貫性を維持することは、このことの確保に役立ち、かつ、四元数とともに十分に役割を果たす。
【0053】
図6A及び図6Bからなる図6は、予測運動追跡により生成されるジッターの例を示す。図6Aは、VRヘッドセット上に示される2つの映像620及び622として1つのシーンを示している。2つの映像620及び622は、わずかに異なる視点からの映像であり、各眼に一方が示されて、シーンにおける奥行き知覚を生み出す。たとえば、このシーンにおける人物630は、各映像620、622においてわずかに異なる角度から観察されている。その結果、心理は、被写界深度を有する人物630を知覚する。これが没入を増大する。
【0054】
図6Bは、映像640及び642を含むわずかに異なるシーンを示している。ここでは、人物650は、シーン中で上方に「移動した」。この種類の移動は、予測追跡が適用され、センサーの検出に軽微なセンサーの誤差及びドリフトが存在する状況で生じ得る。たとえば、着用者の頭が「上がっている」ことを示唆するセンサーにおけるわずかな変動により、予測運動追跡システムはこの運動データを実存していない大幅な運動に過大に外挿し得る。
【0055】
図6Bにおいて、わずかな変動が外挿されて実在しない運動の運動データが生成されている。着用者の頭は、実質的に静止している。これが数秒の間に数回発生した場合、その効果は劇的である。図6Bではそれがより容易に認識できるように映像は誇張されているが、静止しているVRヘッドセットの着用者は、わずかなジッターでも極めて非没入的なものとして経験する。なぜならば、着用者の頭脳はそれが静止しているものと考えているからである。視覚的に知覚された運動データは、小さいジッターでも、実際の頭の運動(又は運動なし)に対応しないものは、着用者の残存知覚に合致しない。
【0056】
図7A図7B、及び図7Cからなる図7は、実際の運動と比較された予想運動追跡の例を示す。図7Aは、図6Aと同じシーンを映像720、722及び人物730により示している。
【0057】
図7Bは、予測運動追跡を使用して一定の時間枠にわたる着用者の運動を将来において外挿することにより作成されたシーンである。映像740、742は更新され、人物750は左に動いたように見える。視覚において、このようになるのは、着用者が自分の頭を右に向けるプロセスを開始し、それにより人物750が視野から動き始めたからである可能性がある。
【0058】
予測運動追跡は、関連VRヘッドセットのセンサーにより生成されたセンサーデータから外挿された運動、方位、及び位置のデータに基づいて人物750の場所(及びシーン全体の方位)を予測した。たとえば、運動、方位、及び位置のデータは、VRヘッドセットが特定の経路及び特定の角速度(又は場合によっては直線速度又は角加速度又は直線加速度)で移動していることを示し得る。7Bのシーンは、所定の時間枠にわたり外挿(すなわち予測)されたシーンであってもよい。
【0059】
図7Cは、VRヘッドセットの実際の運動、方位及び位置に対応する人物770を含む2つの映像760及び762を含むシーンを示している。図7B及び7Cを注意深く吟味すると、予測された運動がわずかに不正確であることが分かる。具体的には、人物750は、映像760及び762に示された実際の運動、方位、及び位置に比較すると視野において左方に十分に遠くまで移動していない。その結果、人物770は、シーンにおいて左方にわずかに遠くにある。これらの誤差は、予測された距離744及び746を実際の距離764及び766と比較することにより示される。
【0060】
本明細書において記述されたプロセスを使用した場合に、これらのわずかな誤差が実質的に存在しないことが実験により示された。しかしながら、予測運動追跡は、本質的に多少の誤差を包含する。それは、発生する前の着用者の運動の予測である。しかし、誤差が小さいに場合、特にバーチャルリアリティシステムにおいては、また、これらの誤差が観察される時間枠が非常に短いことから、着用者の心理は、一般的にこれらの差異を細かく知覚しない。
【0061】
プロセスの説明
ここで図8を参照すると、視覚的調整フィルタリングであり、予測運動追跡プロセスに適用されるフィルタリングを示すフローチャートである。このフローチャートは、開始805及び終了895の両方を含んでいるが、このプロセスの性質は循環的である。事実、このプロセスは、VRヘッドセットが着用者の頭の上で動作している間、殆ど常に繰り返す。作成されたビデオの各フレームの間、このプロセスは、少なくとも1回、場合によっては数回繰り返すことがある。
【0062】
最初に、810において、VRヘッドセット中にあり得るセンサーを含むセンサーからセンサー測定値を入手する。上述したように、これらのセンサーは、加速度計、ジャイロスコープ、磁気計、能動的又は受動的なマーカ及びカメラを含むことができる。カメラは、周囲環境中にマーカを取り付けた上で、ヘッドセットに搭載することができる。又はヘッドセットにマーカを搭載し、1つ又は複数の外部カメラによりマーカを追跡することもできる。これらのセンサーの機能は、運動、方位及び位置の予測を導き得る元となる正確なデータを与えることである。センサーの場所及び種類の如何に関わらず、センサーは、たとえば、ユーザシステムに知覚に基づく予測プロセスを始めるためのデータを与える。
【0063】
次に、820においてセンサーフュージョンが行われる。このプロセスは、複雑又は単純のいずれにもなり得る。単純なシステムでは、生のデータ測定値(たとえば、加速度計からの加速度及び速度)を単に組み合わせ、かつ、三次元環境を作成する環境ソフトウェアによる使用に適する形態に標準化し得る。より複雑なシステムでは、データを上述したように「平滑化」し、かつ、ヘッドセットの運動の将来予測を外挿するデータをセンサーフュージョンステージにおいて生成し、次のステージに渡す。
【0064】
825において、たとえばバーチャルリアリティドライバ414を使用することにより、ヘッドセットが回転しているか否か決定する。この決定は、比較的簡単である。センサーにより短い時間間隔(たとえば10ミリ秒)にわたる一連の角速度測定値が発生される。角速度が所定の閾値(たとえば、毎秒1〜5度)を超えたか否か決定するために、これらの測定値を平均する。この方法により、比較的小さい動き(又は少数のセンサー誤差)は、ヘッドセットの「運動」として知覚されない。
【0065】
VRヘッドセットを着用している人間の頭は完全に静止状態を保つことはできないが、ヘッドセットが回転しているか否かの決定を825で下すことができるように運動の閾値を設定することができる。回転していない頭は、実質的に静止している。本明細書において使用される場合、「実質的に静止している」は、ヘッドセットが、バーチャルリアリティシステムがその運動を反映する関連シーンを再作成するべき十分な程度の角度の頭の回転のプロセスにないことを意味する。具体的には、「実質的に静止している」は、VRヘッドセットの絶対的ゼロ運動を意味しないが、人間が、動かすことを試みずに自分の頭を「静止」させ得る程度に「静止している」ことを意味する。
【0066】
ヘッドセットが回転している場合、830において平滑化は停止される。上記のいずれかの箇所で述べたように、平滑化は、主としてセンサーの不自然な作用、わずかな運動、及びセンサーのドリフト(センサーの正確度の線形又は指数関数的ドリフト)に対処することを目的としており、これらが、ジッター又は作成されたシーンのランダムな運動を生成することにより着用者の体験に悪影響を与えないようにしている。人間の知覚に関する若干の調査の結果、バーチャルリアリティ環境を知覚する人間は、頭を回転しているときにはジッターを全く体験しないことが見出された。特に、その心理は、頭を回転しているときジッターを無視するか又は情景における多少の不整を体験することに慣れており、かつ、自動的に補償する。
【0067】
その結果、ヘッドセットが回転しているとき、平滑化は、少なくとも一時的に停止することができる。これにより、多少のプロセッササイクルを解放して他のより重要な課題に取り組ませることになり、それは、予測運動追跡がデータの事前又は事後計算平滑化により妨げられないようにする。激しい平滑化により、たとえば小さい(又はゼロの)運動を示す先行データの過大な重み付けにより、作成されたフレームが実際の運動より遅れて現れるようになること、又はオーバーシュートがもたらされることがある。したがって、頭が回転しているときには、平滑化を停止することにより着用者にとって有害な効果は認識されず、かつ、利益は、ヘッドセットが回転しているときに、より敏感なシーン作成が行われることにある。
【0068】
次に(又は実質的に同時に)、840においてヘッドセットの角速度が決定される。この決定は、単一の測定値又は820におけるセンサーフュージョンにより生成された単一のデータの集まりとすることができる。好ましくは、角速度は、角速度測定値の所定の優先群(たとえば最新の10個の測定値)の平均から角速度測定値の同様の組の加重平均までの多数の選択肢の1つを使用して決定される。ただし、ある間隔にわたるその加速度(又は場合に応じて減速度)の微分及び外挿による直線加速度の決定については、最も新しい組の測定値(たとえば最新の1〜3個の測定値)に対して追加加重を適用する。
【0069】
次のステップは、850において、運動予測が行われる予測間隔を設定することである。本明細書において使用される場合、「予測間隔」は、運動の予測が行われる時間である。たとえば、予測間隔が40ミリ秒である場合、予測運動追跡は、その予測間隔の終了時、すなわち現在から40ミリ秒後におけるヘッドセットの運動、方位、及び位置を予測する。予測間隔がゼロである場合、予測運動追跡は、現在時点におけるヘッドセットの運動、方位、及び位置を予測する(事実上、予測運動追跡を行わない)。予測間隔を含めることは、予測運動追跡システムがヘッドセットの運動の大きさ及び範囲に動的に応答することを可能にする。
【0070】
この予測間隔は極めて短くすることができ、また、小さい運動については極めて短い。たとえば、約10度/秒の運動は、予測間隔の設定を非常に短く、たとえば、5ミリ秒に設定させる。かかる状況では、どのような方法で決定されるにせよ、角速度測定値はその時間期間にわたって適用され、その時間期間の実際のデータの代わりとして関連ビデオフレームを作成するためにユーザシステムに与えられる。作成されるビデオの次のフレームは、その結果の予測に基づいて渡される。
【0071】
相対的に言って、角速度測定値が極めて大きい(たとえば、約500度/秒)状況では、システムが運動を予測する予測間隔は非常に長くなる。たとえば、高速移動の場合、システムは、予測間隔を30〜60ミリ秒に設定する。この状況では、ビデオ作成側に渡される運動予測データは、予測間隔の終了時における着用者の運動、方位、及び位置を予測し、かつ、その予測に基づいて作成されたビデオの次フレームを渡す。
【0072】
よく研究されたシステムでは、遅延間隔はよく分かっている。用語「遅延間隔」は、運動データがセンサーにより作成されてから、その運動データを含む作成されたビデオフレームが渡されるまでの時間である。現在のシステムでは、遅延間隔は、約30〜60ミリ秒であり、一般的に約40ミリ秒と思われる。
【0073】
この遅延間隔は、予測間隔の上限として使用することができる。したがって、予測間隔は、遅延間隔を超えてはならない。これは、ヘッドセットを着用しているユーザが自分の頭を動かしたとき、そのデータを含んで次に作成されるビデオのフレームが次の遅延間隔に現れるからである。
【0074】
したがって、その時間枠を超えて予測することは不要であり、かつ、オーバーシュート(過大な運動を作成するか又は運動が始まった直後に止まる)及び着用者の実際の運動からの断絶をもたらす可能性が高い。同様に、記述しているシステムでは、追加データ、すなわち、次のフレームのビデオを作成するために利用できる数十の追加の運動、方位、及び位置に関する追加データが得られる。遅延間隔までの運動予測には、ユーザが作成されたビデオのフレームを見る次の瞬間にユーザの実際の運動の予測を試みるという利点がある。
【0075】
このプロセスは、たとえば、所与の着用者の運動の角速度に関する決定がなされるように機能することができる。閾値、たとえば毎秒0.3ラジアンを超える角速度の場合、予測の時間は、遅延間隔まで直線的に増大される。この予測間隔の増大は、たとえば、+2ミリ秒/ラジアン/秒となる。この方法により、毎秒1ラジアンのヘッドセットの回転は、将来において2ミリ秒の予測間隔を利用する。毎秒10ラジアンのヘッドセットの回転は、将来において20ミリ秒の予測間隔を利用する。その他の直線増加勾配も遅延間隔(たとえば将来的に40ミリ秒)に等しい最大予測間隔まで使用することができる。
【0076】
したがって、角速度が実質的にゼロ(たとえば毎秒0〜0.03ラジアン)である場合、三次元における方位は、平滑化を使用し、現在の位置及び方位に依存して(予測なしに)導くことができる。角速度が実質的ゼロより大きい場合、予測アルゴリズムを使用するとともに平滑化を停止する。最後に、いずれにしても、最後に測定した位置の他に選択した可能な予測間隔にわたる直線速度を使用して位置(三次元空間における場所)を導く。
【0077】
要約するとヘッドセットの運動を測定してヘッドセットの運動(角速度)が実質的にゼロ(毎秒0〜0.3ラジアン)であるか否か決定する。実質的にゼロである場合、データの平滑化を起動し、予測間隔を実質的なゼロ(又はゼロ)に設定する。実質的にゼロより高い速度(毎秒0.3ラジアンを超える)でヘッドセットが動いている場合(角速度)、平滑化を停止し、予測間隔を設定する。運動の角速度が増大している場合、予測間隔を示度あたり予測間隔分散(たとえば、2ミリ秒/ラジアン/秒)だけ最大遅延間隔(たとえば40ミリ秒)まで拡張する。
【0078】
予測間隔の増大(最大遅延間隔まで)は、ヘッドセットの直線運動に対応して直線状でよい。その結果、速い運動は、前述のように予測間隔における直線的増加により補償される。別の方法として、いわゆる平滑ステップアルゴリズムも使用できる。平滑ステップアルゴリズムは、smoothstep(t)=3t−2tという一般化形式をとる。ここでtは平滑化される変数であり、また、一般化形式の結果は0と1の中間に位置する。平滑ステップは、高低両端においてゼロに向けて傾斜を付けることができるという利点を有している。この方法による予測は、両端において「丸みを付ける」ことにより直線内挿から異なる。予測がいずれの端部においても急激又は急峻な停止又は開始を伴うことなくより緩やかに最大又は最小に近づくため、予測間隔に依存するかかるヘッドセットの装着者にとって、このように見える。その結果、予測間隔は、「なめらかに」ゼロに近づくか、又は最大遅延間隔に近づくことができる。
【0079】
825においてヘッドセットが回転していない場合(それは、ユーザの頭が実質的に静止していることを示す)、860において平滑化が可能にされる。上述したように、平滑化は、ヘッドセットが移動していないとき、又は非常にわずかな運動をしている場合に最も役に立つ。特に、それは、ヘッドセットが実質的に静止しているときに、ジッターなどのシーンの不要又は過度に誇張された動きを避けるのに役立つ。このように、ヘッドセットが実質的に静止しているときに平滑化を起動することは、これらの問題の低減を助ける。
【0080】
同様に870において予測間隔は、実質的にゼロに設定される。頭が実質的に動いていないとき、いかなる間隔にわたるにせよ大幅な予測は不要である。多少の予測運動追跡は適用できるが、それは、予測が適用される間隔を5ミリ秒以下などの非常に短い時間枠に設定する範囲内とする。場合によっては、予測間隔をゼロにしてよい。これは、さらに、特に予測間隔が遅延間隔又はその近傍に設定される場合に、小さい動きを誇張する予測運動追跡を回避するのに役立ち得る。
【0081】
次に、825においてヘッドセットを回転しているか否かに関わらず、及び850及び870における予測間隔の設定後に、880において三次元方位及び角速度の予測が行われる。事実、これは、予測間隔の終了時におけるヘッドセットの運動、方位及び位置を予測する。これは、上述したように、四元数として表し得るが、任意の数の方法により表すことができる。
【0082】
最後に890において、次に作成されるビデオフレームにおいて、予測に基づく予測された運動、方位、及び位置ならびに予測間隔に対応して表示が更新される。その結果、予測間隔が40ミリ秒であった場合、次に作成されてVRヘッドセットに送り出されるビデオフレームは、着用者の頭が現在から40ミリ秒後の予測位置にあるものとして作成される。予測間隔がゼロであった場合、次に作成されてVRヘッドセットに送り出されるビデオフレームは、着用者の頭が現在時点における予測位置にあるものとして作成される(予測は不要であり、実際のデータが利用できる)。したがって、予測は行われないか又は非常に限られた予測が行われる。
【0083】
これらの選択肢と極端な例の両方とも、825において頭が回転しているか又は回転していないことを反映している。表示が更新されると、このプロセスは終了する。しかし、上述したように、このプロセスは、センサーの毎回の更新すなわち毎回のセンサー更新間隔(たとえば10又は20回の更新毎)で繰り返される。この方法により、平滑化を伴い又は伴わずに、かつ、遅延間隔又はその近傍における予測間隔を伴い又は伴わずに、次に作成されるビデオフレームが与えられ得る。
【0084】
結語
この記述全体を通じて、示された実施形態及び例は、開示又は請求される装置及び方法に関する限定ではなく、例示として解釈されるべきである。本明細書において提示された多数の例は方法の行為又はシステムの要素の特定の組み合わせを含んでいるが、当然のことながらこれらの行為及び要素は他の方法により組み合わせて同じ目的を果たすことができる。フローチャートについては、追加ステップ及びより少ないステップも採用でき、また、示されたステップの組み合わせにより、又はそのさらなる精緻化により、本明細書において記述された方法を達成することができる。1つの実施形態にのみ関連して説明された行為、要素及び特徴は、他の実施形態における同様の役割から除外されることを意図していない。
【0085】
本明細書における用法においては、「複数」は2つ以上を意味する。本明細書における用法においては、物品の「組」は、1つ又は複数のかかる物品を含む。本明細書における用法においては、本明細書中であるか請求項中であるかを問わず、「備える(comprising)」、「含む(including)」、「担持する(carrying)」、「有する(having)」、「含有する(containing)」、「含む(involving)」などの用語は、すべて、オープンエンドである、すなわち、含むがそれらに限られないことを意味すると理解されるべきである。移行句、「〜からなる(consisting of)」及び「〜から本質的になる(consisting essentially of)」のみ、それぞれ、請求項に関して、閉じた又は半ば閉じた移行句である。請求項において請求要素を修飾する「第1」、「第2」、「第3」などの通常の表現の使用は、それ自体では、1つの請求項の他の請求項に対する先行性、優先性、又は順序若しくは方法の行為が遂行される時間的順序を含意せず、単に、請求要素を明示するために一定の名称を有する1つの請求要素を同一の名称(通常の用語としての使用を別にして)を有する他の要素から区別する標識として使用されている。本明細書における用法では、「及び/又は」は、表示された項目が代替可能であるが、代替が表示された項目の任意の組み合わせも含むことを意味する。
図1
図2
図3
図4
図5
図6
図7
図8