(57)【特許請求の範囲】
【請求項１】
ヘッドマウントディスプレイのための予測追跡の方法であって、
前記ヘッドマウントディスプレイを監視するセンサーから１つ又は複数の三次元角速度測定値を入手するステップと、
前記１つ又は複数の三次元角速度測定値により前記ヘッドマウントディスプレイが実質的に静止していることが示される場合に予測間隔が実質的にゼロであり、かつ、前記１つ又は複数の三次元角速度測定値により前記ヘッドマウントディスプレイが所定の閾値以上の角速度で移動していることが示される場合に前記予測間隔が所定の遅延間隔まで増大するように、前記１つ又は複数の三次元角速度測定値に基づいて前記予測間隔を設定するステップと、ここで、前記予測間隔は、前記所定の遅延間隔と等しいか、または前記所定の遅延間隔よりも小さく、
前記予測間隔にわたり外挿された前記１つ又は複数の三次元角速度測定値を使用して前記ヘッドマウントディスプレイの三次元方位を予測し、前記予測間隔に対応する時点における予測方位を生成するステップと、
前記ヘッドマウントディスプレイ上の表示のために、前記予測方位に対応する作成映像を生成するステップと
を含む方法。
【請求項２】
前記１つ又は複数の角速度測定値により前記ヘッドマウントディスプレイの角速度が上昇していることが示される場合、予測間隔を設定するステップは、前記予測間隔が実質的なゼロから前記所定遅延間隔までの角速度の増加の進行にわたり直線的に増大されるようにする完全に動的な調整を含む、請求項１に記載の方法。
【請求項３】
前記１つ又は複数の角速度測定値により前記ヘッドマウントディスプレイが実質的に静止していることが示される間、前記角速度測定値について標本期間にわたり回帰を行い、及び前記回帰の結果を前記１つ又は複数の角速度測定値の代わりに適用することにより、前記１つ又は複数の角速度測定値を平滑化するステップをさらに含む、請求項１に記載の方法。
【請求項４】
前記１つ又は複数の角速度測定値により前記ヘッドマウントディスプレイが実質的なゼロより高い角速度で移動していることが示される間、前記１つ又は複数の角速度測定値の平滑化を停止するステップをさらに含む、請求項３に記載の方法。
【請求項５】
前記所定遅延間隔が１５ミリ秒〜６０ミリ秒である、請求項１に記載の方法。
【請求項６】
前記所定閾値が毎秒０．３ラジアンである、請求項１に記載の方法。
【請求項７】
前記１つ又は複数の角速度測定値が１０００Ｈｚ以上の標本化率で得られる、請求項１に記載の方法。
【請求項８】
命令を有するプログラムを格納する記憶媒体を備える装置であって、
前記命令は、プロセッサによる実行時に前記プロセッサに、
ヘッドマウントディスプレイを監視するセンサーから１つ又は複数の三次元角速度測定値を得ることと、
前記１つ又は複数の三次元角速度測定値により前記ヘッドマウントディスプレイが実質的に静止していることが示される場合に予測間隔が実質的にゼロであり、かつ、前記１つ又は複数の三次元角速度測定値により前記ヘッドマウントディスプレイが所定の閾値以上の角速度で移動していることが示される場合に前記予測間隔が所定の遅延間隔まで増大するように、前記１つ又は複数の三次元角速度測定値に基づいて前記予測間隔を設定することと、ここで、前記予測間隔は、前記所定の遅延間隔と等しいか、または前記所定の遅延間隔よりも小さく、
前記予測間隔にわたり外挿された前記１つ又は複数の三次元角速度測定値を使用して前記ヘッドマウントディスプレイの三次元方位を予測し、前記予測間隔に対応する時点における予測方位を生成することと、
前記ヘッドマウントディスプレイ上の表示のために、前記予測方位に対応する作成映像を生成することと
を行わせる、装置。
【請求項９】
前記１つ又は複数の角速度測定値により前記ヘッドマウントディスプレイの角速度が上昇していることが示される場合、前記予測間隔を設定することは、前記予測間隔が実質的なゼロから前記所定遅延間隔までの角速度の増加の進行にわたり直線的に増大されるようにする完全に動的な調整を含む、請求項８に記載の装置。
【請求項１０】
前記命令は、プロセッサにより実行されるときに、前記１つ又は複数の三次元角速度測定値により前記ヘッドマウントディスプレイが実質的に静止していることが示される間、さらに前記プロセッサに、前記１つ又は複数の角速度測定値について標本期間にわたり回帰を行い、及び前記回帰の結果を前記１つ又は複数の角速度測定値の代わりに適用することにより、前記１つ又は複数の角速度測定値を平滑化させる、請求項８に記載の装置。
【請求項１１】
前記命令は、プロセッサにより実行されるときに、前記１つ又は複数の三次元角速度測定値により前記ヘッドマウントディスプレイが実質的なゼロより高い角速度で移動していることが示される間、さらに前記プロセッサに、前記１つ又は複数の角速度測定値の平滑化を停止させる、請求項１０に記載の装置。
【請求項１２】
前記所定遅延間隔が１５ミリ秒〜６０ミリ秒である、請求項８に記載の装置。
【請求項１３】
前記所定閾値が毎秒０．３ラジアンである、請求項８に記載の装置。
【請求項１４】
前記１つ又は複数の角速度測定値が１０００Ｈｚ以上の標本化率で得られる、請求項８に記載の装置。
【請求項１５】
前記１つ又は複数の角速度測定値を与えるための前記センサーと、
予測された映像を表示するための前記ヘッドマウントディスプレイと、
前記プロセッサと、
メモリと
をさらに含み、前記プロセッサ及び前記メモリが前記記憶媒体上の前記命令を実行するための回路及びソフトウェアを含む、請求項８に記載の装置。
【請求項１６】
頭の移動の予測追跡の方法であって、
ヘッドマウントディスプレイを監視するセンサーから１つ又は複数の三次元角速度測定値を得るステップと、
前記１つ又は複数の三次元角速度測定値により前記ヘッドマウントディスプレイが実質的に静止していることが示される場合に予測間隔が実質的にゼロであり、かつ、前記１つ又は複数の三次元角速度測定値により前記ヘッドマウントディスプレイが所定の閾値以上の角速度で移動していることが示される場合に前記予測間隔が前記ヘッドマウントディスプレイの平均遅延に対応する遅延間隔まで増大するように、前記１つ又は複数の三次元角速度測定値に基づいて前記予測間隔を設定するステップと、ここで、前記予測間隔は、所定の遅延間隔と等しいか、または前記所定の遅延間隔よりも小さく、
前記予測間隔にわたり外挿された前記１つ又は複数の三次元角速度測定値を使用して前記ヘッドマウントディスプレイの三次元方位を予測し、前記予測間隔に対応する時点における予測方位を生成するステップと、
前記ヘッドマウントディスプレイのために次に利用できるフレーム更新において、前記ヘッドマウントディスプレイ上の表示のために、前記予測方位に対応する作成映像を生成するステップと
を含む方法。
【請求項１７】
方法であって、
ヘッドマウントディスプレイを監視するセンサーから角速度測定値を得るステップと、
前記角速度測定値に基づいて予測間隔の時間を設定するステップであって、前記角速度測定値が所定の閾値を超える場合、決定される予測間隔の時間は、閾値間隔の時間よりも大きく、前記予測間隔の時間は、所定の遅延間隔の時間と等しいか、または前記所定の遅延間隔の時間よりも小さい、前記設定するステップと、
前記予測間隔の時間にわたり外挿された前記角速度測定値を使用して前記ヘッドマウントディスプレイの三次元方位を予測し、前記予測間隔の時間に等しい時間の経過後に前記ヘッドマウントディスプレイの予測方位を生成するステップと、
前記ヘッドマウントディスプレイ上の表示のために、前記ヘッドマウントディスプレイの前記予測方位に対応する作成映像を生成するステップと
を含む方法。
【請求項１８】
命令を有するプログラムを格納する記憶媒体を備えた装置であって、
前記命令は、プロセッサによる実行時に前記プロセッサに、
ヘッドマウントディスプレイを監視するセンサーから角速度測定値を得ることと、
前記角速度測定値に基づいて予測間隔の時間を設定することであって、前記角速度測定値が所定の閾値を超える場合、決定される予測間隔の時間は、閾値間隔の時間よりも大きく、前記予測間隔の時間は、所定の遅延間隔の時間と等しいか、または前記所定の遅延間隔の時間よりも小さい、前記設定することと、
前記予測間隔の時間にわたり外挿された前記角速度測定値を使用して前記ヘッドマウントディスプレイの三次元方位を予測し、前記予測間隔の時間に等しい時間の経過後に前記ヘッドマウントディスプレイの予測方位を生成することと、
前記ヘッドマウントディスプレイ上の表示のために、前記ヘッドマウントディスプレイの前記予測方位に対応する作成映像を生成することと
を行わせる、装置。
【請求項１９】
方法であって、
ヘッドマウントディスプレイを監視するセンサーから角速度測定値を得るステップと、
前記角速度測定値に基づいて予測間隔の時間を設定するステップであって、前記角速度測定値が所定の閾値を超える場合、決定される予測間隔の時間は、閾値間隔の時間よりも大きく、前記予測間隔の時間は、前記ヘッドマウントディスプレイの平均遅延に対応する遅延間隔の時間と等しいか、または前記遅延間隔の時間よりも小さい、前記設定するステップと、
前記予測間隔の時間にわたり外挿された前記角速度測定値を使用して前記ヘッドマウントディスプレイの三次元方位を予測し、前記予測間隔の時間に等しい時間の経過後に前記ヘッドマウントディスプレイの予測方位を生成するステップと、
前記ヘッドマウントディスプレイ上の表示のために、前記ヘッドマウントディスプレイの前記予測方位に対応する作成映像を生成するステップと
を含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ヘッドマウントディスプレイのための予測運動追跡に関する。
［著作権及びトレードドレスに関する通知］
本特許文献の開示の一部は、著作権保護の対象となる資料を含んでいる。本特許文献は、所有者のトレードドレスであるか又はそうなる可能性を有する事物を示し、及び／又は記述し得る。本件著作権及びトレードドレスの所有者は、特許商標庁の特許ファイル又は記録に表示される場合における何人による本開示の複写複製にも反対しないが、その他においては一切の著作権及びトレードドレス権をすべて留保する。
【背景技術】
【０００２】
ヘッドマウントディスプレイは、バーチャルリアリティ及び拡張現実システムにおいて使用されて久しい。バーチャルリアリティシステムは、一般的に着用者の眼を完全に覆い、かつ、「バーチャル」リアリティをもって現実に代える。これらのバーチャルリアリティ環境は、意図的に又はバーチャルリアリティシステムの能力の欠如のために粗雑であり得る。しかし、バーチャルリアリティ環境は、同時に、詳細であり、相互作用的であり、かつ、非常に複雑であって、仮想の人々、会話及び経験を含み得る。バーチャル環境の最も顕著な例は、ゲームの世界と相互作用するプレーヤーキャラクターを含むビデオゲームであり得る。しかし、バーチャル環境は、必ずしもゲームである必要はなく、その代わりに教育経験、グループ活動（史跡旅行など）、又は友人を表すアバターとともに仮想ルームに座り、会話を交わすのみでもよい。
【０００３】
拡張現実システムは、対照的に、一般的に着用者の眼の前に１つ又は複数の半透明又は透明のオーバーレイ画面を設け、追加情報、グラフィカル表現又は捕捉データにより現実を「拡張する」。拡張現実は、たとえば、「仮想」の人々、物、乗用車、部屋、空間、標識及びその他のデータを視聴者の現実に重ね合わせることができる。単純な拡張現実システムは、単に目撃シーン又は空間に関する情報（たとえば、温度、着用者の将来の約束、移動の速度、ＧＰＳ位置など）を提供するのみでもよい。より複雑な拡張現実システムは、壁、アートワーク、人物及び同様の要素などの「仮想」有形物体をシーンに重ね合わせることができる。これらはリアルタイムで更新され得、拡張現実ディスプレイに現れた映像が視聴者にとって場所内に存在するように見えることになる。
【０００４】
いずれのシステムにおいても、かかるヘッドセットの着用者の運動は、ユーザの運動に反応するため、及び表示される映像を更新するために追跡され得る。この追跡は、ジャイロスコープ、加速度計、磁気計、及び場合によっては、ヘッドセットの位置、運動及び方位に関するデータを生成するカメラ又はカラーセンサーなどのセンサーを利用する。この追跡データを使用して角速度、直線加速度、重力データなどの情報を生成することができ、次にこれらのデータを使用することにより着用者の運動に応答してヘッドセットのディスプレイを調整することができる。
【０００５】
予測運動は、過去において、バーチャルリアリティ及び拡張現実ヘッドセットに組み込まれてきた。しかし、上記に示したセンサーの標本化率は、人間の視覚の鋭敏さに比して一般的に極めて緩やかである（約数十ミリ秒）。サンプル間の時間が長いため、これらの予測は、予測が実際の頭の位置及び方位から行き過ぎるいわゆる「オーバーシュート」を頻繁にもたらす。あるいは、これらの予測は、他の問題を回避するためにあまりにも強度に平滑化しなければならないため、その結果、単に動きを予測しない方がよりよい結果をもたらすほど不正確となる。
【図面の簡単な説明】
【０００６】
【図１】バーチャルリアリティシステムの概要である。
【図２】コンピュータ装置のブロック図である。
【図３】バーチャルリアリティヘッドセットのブロック図である。
【図４】バーチャルリアリティシステムの機能図である。
【図５】バーチャルリアリティヘッドセットを着用しているユーザである。
【図６】ＡおよびＢは、予測運動追跡により生成されるジッターの例である。
【図７】Ａ、Ｂ及びＣは、実際の動きと比較した予測運動追跡の例である。
【図８】予測運動追跡プロセスに適用される知覚的調整フィルタリングを示すフローチャートである。
【発明を実施するための形態】
【０００７】
この記述全体を通じて、図に示した要素には３桁の参照識別子が割り当てられている。最高位の桁は図の番号であり、次の２桁は要素特有である。図とともに記述されない要素は、同一の下２桁の参照識別子を有する前に記述された要素と同じ特徴及び機能を有するものと推測される必要があり得る。
【０００８】
バーチャルリアリティシステムのジッター、遅延時間及び総合的反応性を含む種々の要因を考慮する運動予測の動的適用は、予測運動追跡に関する問題を大幅に低減することができる。たとえば、運動するヘッドセットにのみ予測運動を適用すること、かつ、その運動の大きさに適する程度にのみ予測運動を適用することのみにより、単にすべての運動について予測的追跡を同じ程度まで可能にすることより優れた全体的予測精度が得られる（同一予測間隔について）。
【０００９】
同様に、平滑化、たとえば、最も新しく検知された運動の回帰に基づく平均化は、運動のデータによりヘッドセットが実質的に静止していることが示された場合には積極的に適用できるが、運動のデータによりヘッドセットが比較的高い角速度で移動していること又は角加速度が増加していることが示される場合にはあまり積極的に適用できない。この理由は、人間の頭が回っているときより頭が実質的に静止しているときに、人間の眼がいわゆる「ジッター」に対して非常に敏感であるためである。ジッターは、センサー測定値の一連のほんのわずかな変動のために、結果として作成されたビデオが「はずんだ」ときに生じる。頭が静止しているとき、このジッターは非常に目立つ。動いているとき、ジッターは人間の感覚により殆ど全く知覚されない。
【００１０】
平滑化と運動予測との両方のこれらの種類の動的スケーリングは、知覚的調整フィルタリングと呼ぶことができよう。それらは、バーチャルリアリティシステムにおいて利用することができるハードウェアの技術的限界の理解とともに、人間の知覚に関する発見データに依存するからである。
【００１１】
装置の説明
ここで図１を参照すると、バーチャルリアリティシステム１００の概要が示されている。このシステムは、ネットワーク１５０により接続されるユーザシステム１１０及び環境サーバ１２０、及びＶＲヘッドセット１３０を含んでいる。ユーザ１３５も示されているが、ユーザ１３５は、システム１００とは別の要素として考えることができる。
【００１２】
ユーザシステム１１０は、ＶＲヘッドセットに表示されるバーチャルリアリティ環境を生成するためにＶＲヘッドセット１３０に接続され、ＶＲヘッドセット１３０と相互作用するコンピュータ装置である。ユーザシステム１１０は、たとえば、マイクロソフト（Ｍｉｃｒｏｓｏｆｔ（登録商標））エックスボックス（Ｘｂｏｘ（登録商標））、ニンテンドー（Ｎｉｎｔｅｎｄｏ（登録商標））ウィー（Ｗｉｉ（登録商標））及びウィーユー（Ｗｉｉ  Ｕ（登録商標））、並びにソニー（Ｓｏｎｙ（登録商標））プレイステーション（ＰｌａｙＳｔａｔｉｏｎ（登録商標））などのコンソールなどの標準的なデスクトップコンピュータ、ビデオゲームコンソールでよい。ユーザシステム１１０は、場合によっては、携帯電話機、タブレットコンピュータ、又はその他のハンドヘルド又は小型コンピュータ装置などの携帯機器でよい。ユーザシステム１１０は、三次元環境を作成するコンピュータ装置により一般的に使用される映像プロセッサなどのタスク特有ハードウェアを含むことができる。映像プロセッサは、スタンドアロンビデオカードに収容するか、又はより大きなプロセッサ又はシステムオンチップに組み込むことができる。
【００１３】
一般的に、ユーザシステム１１０は、オペレーティングシステムソフトウェア及び場合によってはＶＲヘッドセット１３０で表示されるバーチャル環境の映像を生成するバーチャル環境ソフトウェアを含むソフトウェアを実行する。バーチャル環境ソフトウェアは、たとえば、ＶＲヘッドセット１３０の着用者にゲームの世界のバーチャル環境に「実在している」ように思わせる三次元世界の映像を生成するビデオゲームソフトウェアであってもよい。
【００１４】
環境サーバ１２０は、コンピュータ装置である。環境サーバ１２０は、バーチャルリアリティシステム１００の実現に応じて任意選択とすることができる。バーチャル環境１００がマルチユーザ又はマルチパーティである場合、環境サーバ１２０は、バーチャル環境を作成するためにユーザシステム１１０により使用されるデータの一部を与えることができる。
【００１５】
たとえば、環境サーバ１２０は、ユーザシステム１１０により作成されているバーチャル環境に同時に接続されている他のユーザに関するデータをネットワーク１５０経由で維持し、かつ、伝達することができる。この方法により、ＶＲヘッドセット１３０などのＶＲヘッドセットのユーザ群のユーザアバターが共にバーチャル環境内に出現することができる。１人のユーザがその環境内で「動く」につれて、環境サーバ１２０はそのデータを受けとり、そのデータを他のユーザに関係付けられているユーザシステム１１０などのユーザシステムに渡すことができる。したがって、環境サーバ１２０は、ユーザ群が共にバーチャル環境をリアルタイムで経験することを可能にし得る。
【００１６】
幾つかの実施形態、特にマルチユーザ又はマルチパーティ体験を包含しない実施形態では、環境サーバ１２０は不要であり得る。かかる状況では、ユーザシステム１１０は、バーチャル環境を作成するすべての役割を引き受け得る。
【００１７】
ＶＲヘッドセット１３０は、ユーザシステム１１０と同様にコンピュータ装置であるが、幾つか特殊な特徴を有している。ＶＲヘッドセット１３０は、少なくとも１つの内蔵ディスプレイを含み、かつ、ＶＲヘッドセット１３０の運動、位置及び／又は方位のデータを生成するために使用され得る１つ又は複数のセンサーを含んでいる。ＶＲヘッドセット１３０の着用者が動くのにつれて、これらのセンサーは、運動、位置、及び／又は方位のデータを生成し、それをユーザシステム１１０に送り出す。ユーザシステム１１０は、ＶＲヘッドセット１３０に内蔵されているディスプレイに表示されるべき１つ又は複数の映像を返す。
【００１８】
ＶＲヘッドセット１３０は、ＵＳＢ（登録商標）、ＨＤＭＩ（登録商標）、ＤＶＩ、ＶＧＡ、光ファイバ、ディスプレイポート（ＤｉｓｐｌａｙＰｏｒｔ（登録商標））、ライトニング（Ｌｉｇｈｔｎｉｎｇ（登録商標））コネクタ、イーサネット（Ｅｔｈｅｒｎｅｔ（登録商標））などの標準コンピュータ入出力インターフェースにより、又はＶＲヘッドセット１３０をユーザシステム１１０に接続するために特に設計された特注インターフェースによりユーザシステム１１０に接続することができる。一般的に、これらの接続の少なくとも一部は、作成されたビデオデータ映像ができるだけ短い遅延で内蔵ディスプレイに表示されるようにするために、比較的ハイスループットである。場合によっては、ユーザシステム１１０とＶＲヘッドセット１３０との間のデータの一部を送出するために８０２．１１プロトコル、ブルートゥース（Ｂｌｕｅｔｏｏｔｈ（登録商標））、又は無線周波数を使用する無線接続を使用することができる。
【００１９】
ＶＲヘッドセット１３０は、ユーザシステム１１０の機能の一部又は全部を内蔵することができる。しかし、現在の技術を使用する場合、これらのシステムは、お互いに異なったままである。それは、主として、確かなバーチャル環境を現出するため、及び本明細書において記述する運動外挿を行うために必要な処理能力及び記憶装置はより強力であることが望ましく、および高性能プロセッサは、現在、ユーザシステム１１０のようなより大きい、すなわちより高価なコンピュータ装置でのみ、利用可能であるからである。
【００２０】
ユーザシステム１１０がタブレット又は携帯電話機などの携帯機器であるような一部の例では、携帯機器のセンサー及び携帯機器のディスプレイがＶＲヘッドセット１３０機能のすべて又は一部の代わりをする。たとえば、携帯機器のディスプレイがＶＲヘッドセット１３０のディスプレイとなる。
【００２１】
ユーザ１３５は、ＶＲヘッドセット１３０の着用者である。ユーザ１３５は、ＶＲヘッドセット１３０に組み込まれているディスプレイを見ることができるようにヘッドセットを着用する。ユーザシステム１１０がＶＲヘッドセット１３０上のディスプレイのバーチャル環境を作成するときに、ユーザ１３５は、ユーザシステム１１０をさらに制御するために、マウス、キーボード、ヘッドフォン、スピーカ、マイクロフォン、ハンドヘルドコントローラ又はその他の同様の相互作用構成部品（図示せず）などのその他の周辺機器と相互作用する。
【００２２】
ネットワーク１５０は、ユーザシステム１１０を環境サーバ１２０に接続する有線又は無線ネットワークである。ネットワーク１５０は、インターネット又はローカルエリアネットワーク（ＬＡＮ：ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）又は広域ネットワーク（ＷＡＮ：ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）とするか、又はそれを含むことができる。ネットワーク１５０は、ユーザシステム１１０又は１２０間の通信を容易にするためにＴＣＰ／ＩＰ、イーサネット（Ｅｔｈｅｒｎｅｔ（登録商標））又はその他の大規模ネットワークプロトコルなどの一般的プロトコルを使用することができる。特注プロトコルも使用することができる。環境サーバ１２０からユーザシステム１１０（及びその他のユーザシステム）への通信は、配信確保プロトコルよりむしろ放送プロトコルを使用することができる。これは、複数のユーザシステムによる最新データの受信の確認を待つことなく、環境サーバがユーザシステム１１０上のデータを連続的に更新することを可能にし得る。
【００２３】
ここで図２に進むと、サーバコンピュータ、クライアント装置、携帯機器及び本明細書において検討されるその他のコンピュータ装置を表すコンピュータ装置２００のブロック図が示されている。ユーザシステム１１０及び環境サーバ１２０は、コンピュータ装置の例である。
【００２４】
コンピュータ装置２００は、本明細書において記述される機能及び特徴を与えるためのソフトウェア及び／又はハードウェアを含むことができる。したがってコンピュータ装置２００は、１つ又は複数の記憶装置、アナログ回路、デジタル回路、ソフトウェア、ファームウェア及びプロセッサを含むことができる。コンピュータ装置２００のハードウェア構成要素及びファームウェア構成要素は、本明細書において記述される機能及び特徴を与えるための種々の特殊化装置、回路、ソフトウェア及びインターフェースを含むことができる。
【００２５】
コンピュータ装置２００は、メモリ２１２、記憶装置２１４、ネットワークインターフェース２１６及びＩ／Ｏインターフェース２１８と結合されるプロセッサ２１０を備えている。プロセッサは、１つ又は複数のマイクロプロセッサ、組込特殊機能プロセッサ（映像プロセッサなど）、特定用途向け集積回路（ＡＳＩＣ：ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔｓ）、又はシステムオンチップ（ＳＯＡＣ：ｓｙｓｔｅｍｓ  ｏｎ  ａ  ｃｈｉｐ）とするか又はそれを含むことができる。
【００２６】
メモリ２１２は、ＲＡＭ、ＲＯＭ、ＤＲＡＭ、ＳＲＡＭ及びＭＲＡＭとするか又はそれらを含むことができ、かつ、静的データ又は固定命令、ＢＩＯＳ、システム機能、設定データ、及びコンピュータ装置２００及びプロセッサ２１０の動作中に使用されるその他のルーチンなどのファームウェアを含むことができる。メモリ２１２は、プロセッサ２１０により取り扱われるアプリケーション及びデータに関するデータ及び命令のための記憶領域も与える。
【００２７】
記憶装置２１４は、コンピュータ装置２００におけるデータ又は命令の非揮発性、大容量又は長期格納を可能にする。記憶装置２１４は、ディスク、テープ、ＣＤ、ＤＶＤ、ＳＳＤ（半導体ドライブ）又はその他の適度の大容量アドレス可能又は直列記憶媒体の形態をとることができる。コンピュータ装置２００に複数の記憶装置を設けること又はそれから利用可能とすることができる。これらの記憶装置の一部は、ネットワーク記憶装置又はクラウド応用記憶装置などコンピュータ装置２００にとって外付けとすることができる。
【００２８】
ネットワークインターフェース２１６は、ネットワーク１５０（図１）などのネットワークへのインターフェースを含んでいる。
Ｉ／Ｏインターフェース２１８は、プロセッサ２１０をＶＲヘッドセット１３０、ディスプレイ、キーボード、マウス、コントローラ、ＵＳＢ装置及びその他の周辺機器などの周辺機器（図示せず）に接続する。
【００２９】
図３は、図２について上述したものとほぼ同じコンピュータ装置を有するバーチャルリアリティヘッドセット３００のブロック図を示す。図２に関して上記において検討された要素については、ここでは繰り返さない。バーチャルリアリティヘッドセット３００のこのコンピュータ装置は、部分的又は全面的にシステムオンチップとして実現することができる。
【００３０】
プロセッサ３１２の処理能力は、普通規模のコンピュータ装置において利用可能な能力より低くてよい。メモリ３１４、ネットワークインターフェース３１６、記憶装置３１８、及び入力／出力インターフェース３２０は、単一パッケージに組み込むことができ、かつ、素早い応答時間を得るために小さな命令セットとして設計することができる。
【００３１】
センサー３２２は、運動、位置、及び方位のデータを生成するために使用されるセンサーである。これらのセンサーは、ジャイロスコープ、加速度計、磁気計、ビデオカメラ、カラーセンサー、又はその他の運動、位置、及び方位のセンサーとするか、又はそれらを含むことができる。センサー３２２は、運動、位置及び方位のデータを生成するためにカメラ又はカラーセンサーにより外部的に観察される一連の能動的又は受動的マーカなどのセンサーの下位構成部分も含むことができる。たとえば、バーチャルリアリティヘッドセットは、その外部に、外部カメラにより観察されたとき又はライト（たとえば赤外線又は可視光線のライト）により照らされたときに運動、位置、及び方位のデータを生成するソフトウェアによる解釈のための１つ又は複数の基準点を与える反射器又はライト（たとえば赤外線又は可視光線のライト）などの一連のマーカを含むことができる。この意味において、これらのマーカは「センサー」ではないが、運動、位置、及び方位のデータを生成するために使用されるセンサーシステムの下位部分を構成する。
【００３２】
センサー３２２は、センサーデータを高速で与えるために比較的高い周波数で動作することができる。たとえば、センサーデータは、１０００Ｈｚの割合で生成することができる（すなわち１ミリ秒毎にセンサーの１つの測定値）。この方法により、毎秒１０００個の測定値が採取される。センサーがこの割合（又はそれ以上の割合）でこの大量データを生成する場合、運動を予測するために使用されるデータの集まりは、約数十ミリ秒という比較的短い時間内でもかなり大量である。
【００３３】
バーチャルリアリティヘッドセットは、表示される映像データがディスプレイ上に示される直前にそれを格納するディスプレイバッファ３２４を含んでいる。このバッファは、プロセッサ３１２にとって利用可能なメモリ３１４とするか、又はそれを含むことができる。この方法により、ディスプレイは、プロセッサ３１２からの入力に応答して迅速に機能することができる。
【００３４】
バーチャルリアリティヘッドセット３００のディスプレイ（図示せず）は、１つ又は複数のディスプレイとすることができる。このディスプレイは、ＶＲヘッドセット１３０の着用者の両眼の直前に位置を占めてもよい。したがって、このディスプレイは、依然として着用者の広い視覚野を満たしている間、比較的低い解像度でよい。このディスプレイは、ユーザシステム１１０により作成されたバーチャル環境を着用者に表示する。
【００３５】
図４に進むと、バーチャルリアリティシステム４００の機能図が示されている。バーチャルリアリティシステム４００は、ユーザシステム４１０、環境サーバ４２０及びＶＲヘッドセット４３０を含んでいる。これらは、図１のユーザシステム１１０、環境サーバ１２０及びＶＲヘッドセット１３０に対応していてもよい。このシステムの一部ではないユーザ４３５も示されている。
【００３６】
ユーザシステム４１０は、オペレーティングシステム４１１、ネットワーク入力／出力インターフェース４１２、環境ソフトウェア４１３、バーチャルリアリティドライバ４１４、及び運動予測及び平滑化装置４１５を含んでいる。
【００３７】
オペレーティングシステム４１１は、ユーザシステム４１０のオペレーティングシステムである。これは、ユーザシステム４１０がパーソナルコンピュータ又は同様の装置である場合、たとえばウィンドウズ（Ｗｉｎｄｏｗｓ（登録商標））、オーエステン（ＯＳＸ（登録商標））、リナックス（Ｌｉｎｕｘ（登録商標））又はその他のオペレーティングシステムでよい。オペレーティングシステム４１１は、典型的なビデオゲームコンソールにおいて使用されているオペレーティングシステムなどの専有システムとすることができる。さらに、オペレーティングシステム４１１は、ユーザシステム４１０が携帯機器である場合、アイオーエス（ｉＯＳ（登録商標））、アンドロイド（Ａｎｄｒｏｉｄ（登録商標））又は同様の携帯機器オペレーティングシステムとすることができる。オペレーティングシステム４１１は、他のソフトウェア、ドライバ及び周辺機器が機能するための環境を与える。
【００３８】
ネットワーク入力／出力インターフェース４１２は、ユーザシステム４１０が環境サーバ４２０（存在する場合）と通信することを可能にする。ネットワーク入力／出力インターフェース４１２は、ネットワーク通信を可能にする環境ソフトウェア４１３に特有の典型的なネットワークドライバ及びソフトウェアを含むことができる。
【００３９】
環境ソフトウェア４１３は、バーチャルリアリティとして提示される環境を生成するために他の構成要素とともに動作するソフトウェアである。たとえば、環境ソフトウェアは、ＶＲヘッドセット４３０のディスプレイ上に提示される三次元世界を生成するビデオゲームソフトウェアとすることができる。環境ソフトウェア４１３は、特殊ソフトウェアを含むことができる。それは、環境ソフトウェアがＶＲヘッドセットにおいてよく行われるように種々の角度からの複数の表示を同時に作成することを可能にし、単一のディスプレイ上の２つの表示すなわち２つの別々の映像が、それぞれの眼に１つずつ、示される。環境ソフトウェア４１３は、ＶＲヘッドセット４３０に適するコンテンツを出力することを可能にするために特に設計されたソフトウェアに組み込むこともできる。
【００４０】
環境ソフトウェア４１３は、ビデオゲームソフトウェアである必要はないが、なんらかの種類のバーチャルリアリティソフトウェア又は拡張現実環境ソフトウェアであり得る。このソフトウェアは、架空の場所、歴史的場所、教育的場所、又は現実を模倣する殆どすべての没入環境を含むバーチャルリアリティ場所を生成することができる。
【００４１】
バーチャルリアリティドライバ４１４は、オペレーティングシステム４１１と環境ソフトウェア４１３とＶＲヘッドセット４３０間のソフトウェアオーバーレイとすることができる。バーチャルリアリティドライバ４１４は、特に、環境ソフトウェア４１３から入力を受け、かつ、データをＶＲヘッドセット４３０にＶＲヘッドセット４３０による表示に適する形態で出力する。バーチャルリアリティドライバ４１４は、環境データの伝送及び使用を加速してＶＲヘッドセット４３０が迅速に反応することを可能にするためにソフトウェアレベルの下の１つ又は複数の抽象化レベルにおいてＶＲヘッドセット４３０と相互作用することができる。これは、ユーザシステム４１０がＶＲヘッドセット４３０より強力なシステム（たとえばより強力なプロセッサを備えている）である場合に、特に当てはまり得る。この方法によりＶＲヘッドセット４３０は、ＶＲヘッドセット４３０にとって必要な相当な追加処理なしに、ＶＲヘッドセット４３０上に直接表示され得る大量の生データを受け入れることができる。
【００４２】
運動予測及び平滑化装置４１５は、ＶＲヘッドセット４３０の運動、方位、及び位置の予測を受け持つソフトウェアである。運動予測装置は、バーチャルリアリティドライバ４１４の一部とすることができる。
【００４３】
運動予測及び平滑化装置４１５は、ＶＲヘッドセット４３０中のセンサーからデータを受け取り、そのデータを操作してＶＲヘッドセット４３０の運動、方位、及び位置の予測を行うことができる。運動予測及び平滑化装置４１５は、たとえば、短い時間枠内の角速度測定値（たとえば最新１０ミリ秒内における１０個の測定値）を平均して将来の運動、方位、及び位置に関する予測を導き出すことができる。その代わりに、運動予測及び平滑化装置４１５は、一連の角速度測定値を微分して角加速度を導き出し、かつ、将来において所定の時間を外挿して将来の運動、方位、及び位置を予測することができる。予測プロセスについては、後段において図８を参照してさらに詳しく説明する。
【００４４】
また、運動予測及び平滑化装置４１５は、センサーデータについて「平滑化」動作を行うことができる。最も加工度の低い形態でＶＲヘッドセット４３０の一連のセンサーから受け取った運動、方位、及び位置のデータは、やや不正確であり得る。たとえば、１ミリ秒あたり１回の範囲の標本化率では、ＶＲヘッドセット４３０の方位、運動、位置のわずかな変化は、運動、方位又は位置の実際の変化を表さない増分的なセンサー測定値を場合によりもたらし得る。
【００４５】
たとえばＶＲヘッドセット４３０を着用しているユーザが実質的に静止しているときにも、センサーは依然としてわずかな変動を報告し得る。このデータを使用した場合、ＶＲヘッドセット上の表示のために生成された映像は、ＶＲヘッドセット４３０の実際の変化を表さないわずかな変動を含み得る。その結果、ＶＲヘッドセット４３０の表示にいわゆる「ジッター」が取り込まれ得る。これは、ＶＲヘッドセット４３０のユーザにとって、ＶＲヘッドセット４３０のセンサーから受け取られるデータ中のわずかな変動に応答してわずかな増分の範囲で「飛び跳ねる」映像として現れる。
【００４６】
このジッター及びその他の同様の誤差に応じて、運動予測及び平滑化装置４１５は、受け取ったデータに対して平滑化を適用することもできる。この平滑化は、たとえば、センサーの一連の最新の測定値を取り上げてそれらを平均することにより、ＶＲヘッドセット４３０上に次に表示される映像を作成するために使用される運動、方位、及び位置のデータを実際に生成するために使用されるデータを導くことである。異常値と思われるデータを除外しつつセンサーデータを一定の時間間隔にわたり外挿する直線的又は非直線的フィルタリングなどのその他の平滑化方法も使用することができる。
【００４７】
環境サーバ４２０は、オペレーティングシステム４２１、ネットワーク入力／出力インターフェース４２２、環境ソフトウェア４２３、及び環境データベース４２４を含んでいる。オペレーティングシステム４２１及びネットワーク入力／出力インターフェース４２２は、環境サーバ４２０関連を除き、上述したユーザシステム４１０について記述された機能と実質的に同じ機能を果たす。オペレーティングシステム４２１は、複数のユーザ接続をたとえばネットワーク経由でサポートするオペレーティングシステムである場合が多い。同様に、ネットワーク入力／出力インターフェース４２２は、複数の接続のサポートにも優れたものとするか、又はネットワークへのより高速な接続を備えることができる。
【００４８】
環境ソフトウェア４２３は、ユーザシステム４１０上の環境ソフトウェア４１３とは異なる目的を果たす。この環境ソフトウェアは、ユーザに表示する三次元世界を作成する実際の役割は負わない。その代わり、それは、環境サーバ４２０に接続されている複数のユーザの状態を維持することができる。たとえば、数百人のユーザが環境サーバ４２０に同時に接続されている場合、環境ソフトウェア４２３は、これらのユーザのそれぞれの場所、動作、運動及びその他のデータを示す環境データベース４２４を維持することができる。環境データベース４２４は、ユーザシステム４１０と同様に、これらのデータをユーザシステムに送出するためにこれらの位置を動的に更新し、かつ、格納することができる。これにより、ユーザシステム４１０の環境ソフトウェア４１３は、そのデータを組み込んでその画像表示を更新することができる。これは、たとえば、環境ソフトウェアにより作成された三次元環境内において他のユーザを表すアバターの場所である。
【００４９】
ＶＲヘッドセット４３０は、図１におけるＶＲヘッドセット１３０とほぼ同じとし、かつ、図３のコンピュータ装置３００を含むことができる。ＶＲヘッドセット４３０は、ユーザ４３５によりバーチャルリアリティ環境又は拡張現実バーチャル環境を経験するために着用され得る。
【００５０】
ここで図５に進むと、バーチャルリアリティヘッドセット５３０を着用したユーザ５３５が示されている。ＶＲヘッドセット５３０は、ユーザ５３５の両眼の前に着用されている。ユーザ５３５の頭は、ピッチ軸５４０、ロール軸５５０及びヨー軸５６０の三次元軸の中心に位置していると見なすことができる。三次元デカルト座標において、ピッチ５４０はｘ軸、ロール５５０はｚ軸、およびヨー５６０はｙ軸である。
【００５１】
ＶＲヘッドセット５３０の運動（ユーザの運動）は、ピッチ５４０、ロール５５０及びヨー５６０により表すことができる。三次元方位を表す１つの方法は、四元数を使用する。これは、任意の三次元方位がｑ（ｖ，θ）＝（ｃｏｓ（θ／２），ｖｘｓｉｎ（θ／２），ｖｙｓｉｎ（θ／２），ｖｚｓｉｎ（θ／２））の形態で表現される四元数により表し得るからである。ここでｑ（ｖ，θ）は、同じ回転を表す。四元数は、三次元空間における予測を行うために非常に有益な代数的演算に基づく形状（たとえば、ハール測度）を保存しつつ比較的少ないパラメータによる回転の操作を可能にするという利点を有している。
【００５２】
ハール測度は、三次元空間における物体の複数の回転が相互に関連したままとなるようにすることに役立つ。たとえば、２つの先行回転に第３回転を適用すると、好ましくは、それら２つの先行回転が依然として同じ距離だけ離隔し続けるという結果となるであろう。ハール測度に関する一貫性を維持することは、このことの確保に役立ち、かつ、四元数とともに十分に役割を果たす。
【００５３】
図６Ａ及び図６Ｂからなる図６は、予測運動追跡により生成されるジッターの例を示す。図６Ａは、ＶＲヘッドセット上に示される２つの映像６２０及び６２２として１つのシーンを示している。２つの映像６２０及び６２２は、わずかに異なる視点からの映像であり、各眼に一方が示されて、シーンにおける奥行き知覚を生み出す。たとえば、このシーンにおける人物６３０は、各映像６２０、６２２においてわずかに異なる角度から観察されている。その結果、心理は、被写界深度を有する人物６３０を知覚する。これが没入を増大する。
【００５４】
図６Ｂは、映像６４０及び６４２を含むわずかに異なるシーンを示している。ここでは、人物６５０は、シーン中で上方に「移動した」。この種類の移動は、予測追跡が適用され、センサーの検出に軽微なセンサーの誤差及びドリフトが存在する状況で生じ得る。たとえば、着用者の頭が「上がっている」ことを示唆するセンサーにおけるわずかな変動により、予測運動追跡システムはこの運動データを実存していない大幅な運動に過大に外挿し得る。
【００５５】
図６Ｂにおいて、わずかな変動が外挿されて実在しない運動の運動データが生成されている。着用者の頭は、実質的に静止している。これが数秒の間に数回発生した場合、その効果は劇的である。図６Ｂではそれがより容易に認識できるように映像は誇張されているが、静止しているＶＲヘッドセットの着用者は、わずかなジッターでも極めて非没入的なものとして経験する。なぜならば、着用者の頭脳はそれが静止しているものと考えているからである。視覚的に知覚された運動データは、小さいジッターでも、実際の頭の運動（又は運動なし）に対応しないものは、着用者の残存知覚に合致しない。
【００５６】
図７Ａ、図７Ｂ、及び図７Ｃからなる図７は、実際の運動と比較された予想運動追跡の例を示す。図７Ａは、図６Ａと同じシーンを映像７２０、７２２及び人物７３０により示している。
【００５７】
図７Ｂは、予測運動追跡を使用して一定の時間枠にわたる着用者の運動を将来において外挿することにより作成されたシーンである。映像７４０、７４２は更新され、人物７５０は左に動いたように見える。視覚において、このようになるのは、着用者が自分の頭を右に向けるプロセスを開始し、それにより人物７５０が視野から動き始めたからである可能性がある。
【００５８】
予測運動追跡は、関連ＶＲヘッドセットのセンサーにより生成されたセンサーデータから外挿された運動、方位、及び位置のデータに基づいて人物７５０の場所（及びシーン全体の方位）を予測した。たとえば、運動、方位、及び位置のデータは、ＶＲヘッドセットが特定の経路及び特定の角速度（又は場合によっては直線速度又は角加速度又は直線加速度）で移動していることを示し得る。７Ｂのシーンは、所定の時間枠にわたり外挿（すなわち予測）されたシーンであってもよい。
【００５９】
図７Ｃは、ＶＲヘッドセットの実際の運動、方位及び位置に対応する人物７７０を含む２つの映像７６０及び７６２を含むシーンを示している。図７Ｂ及び７Ｃを注意深く吟味すると、予測された運動がわずかに不正確であることが分かる。具体的には、人物７５０は、映像７６０及び７６２に示された実際の運動、方位、及び位置に比較すると視野において左方に十分に遠くまで移動していない。その結果、人物７７０は、シーンにおいて左方にわずかに遠くにある。これらの誤差は、予測された距離７４４及び７４６を実際の距離７６４及び７６６と比較することにより示される。
【００６０】
本明細書において記述されたプロセスを使用した場合に、これらのわずかな誤差が実質的に存在しないことが実験により示された。しかしながら、予測運動追跡は、本質的に多少の誤差を包含する。それは、発生する前の着用者の運動の予測である。しかし、誤差が小さいに場合、特にバーチャルリアリティシステムにおいては、また、これらの誤差が観察される時間枠が非常に短いことから、着用者の心理は、一般的にこれらの差異を細かく知覚しない。
【００６１】
プロセスの説明
ここで図８を参照すると、視覚的調整フィルタリングであり、予測運動追跡プロセスに適用されるフィルタリングを示すフローチャートである。このフローチャートは、開始８０５及び終了８９５の両方を含んでいるが、このプロセスの性質は循環的である。事実、このプロセスは、ＶＲヘッドセットが着用者の頭の上で動作している間、殆ど常に繰り返す。作成されたビデオの各フレームの間、このプロセスは、少なくとも１回、場合によっては数回繰り返すことがある。
【００６２】
最初に、８１０において、ＶＲヘッドセット中にあり得るセンサーを含むセンサーからセンサー測定値を入手する。上述したように、これらのセンサーは、加速度計、ジャイロスコープ、磁気計、能動的又は受動的なマーカ及びカメラを含むことができる。カメラは、周囲環境中にマーカを取り付けた上で、ヘッドセットに搭載することができる。又はヘッドセットにマーカを搭載し、１つ又は複数の外部カメラによりマーカを追跡することもできる。これらのセンサーの機能は、運動、方位及び位置の予測を導き得る元となる正確なデータを与えることである。センサーの場所及び種類の如何に関わらず、センサーは、たとえば、ユーザシステムに知覚に基づく予測プロセスを始めるためのデータを与える。
【００６３】
次に、８２０においてセンサーフュージョンが行われる。このプロセスは、複雑又は単純のいずれにもなり得る。単純なシステムでは、生のデータ測定値（たとえば、加速度計からの加速度及び速度）を単に組み合わせ、かつ、三次元環境を作成する環境ソフトウェアによる使用に適する形態に標準化し得る。より複雑なシステムでは、データを上述したように「平滑化」し、かつ、ヘッドセットの運動の将来予測を外挿するデータをセンサーフュージョンステージにおいて生成し、次のステージに渡す。
【００６４】
８２５において、たとえばバーチャルリアリティドライバ４１４を使用することにより、ヘッドセットが回転しているか否か決定する。この決定は、比較的簡単である。センサーにより短い時間間隔（たとえば１０ミリ秒）にわたる一連の角速度測定値が発生される。角速度が所定の閾値（たとえば、毎秒１〜５度）を超えたか否か決定するために、これらの測定値を平均する。この方法により、比較的小さい動き（又は少数のセンサー誤差）は、ヘッドセットの「運動」として知覚されない。
【００６５】
ＶＲヘッドセットを着用している人間の頭は完全に静止状態を保つことはできないが、ヘッドセットが回転しているか否かの決定を８２５で下すことができるように運動の閾値を設定することができる。回転していない頭は、実質的に静止している。本明細書において使用される場合、「実質的に静止している」は、ヘッドセットが、バーチャルリアリティシステムがその運動を反映する関連シーンを再作成するべき十分な程度の角度の頭の回転のプロセスにないことを意味する。具体的には、「実質的に静止している」は、ＶＲヘッドセットの絶対的ゼロ運動を意味しないが、人間が、動かすことを試みずに自分の頭を「静止」させ得る程度に「静止している」ことを意味する。
【００６６】
ヘッドセットが回転している場合、８３０において平滑化は停止される。上記のいずれかの箇所で述べたように、平滑化は、主としてセンサーの不自然な作用、わずかな運動、及びセンサーのドリフト（センサーの正確度の線形又は指数関数的ドリフト）に対処することを目的としており、これらが、ジッター又は作成されたシーンのランダムな運動を生成することにより着用者の体験に悪影響を与えないようにしている。人間の知覚に関する若干の調査の結果、バーチャルリアリティ環境を知覚する人間は、頭を回転しているときにはジッターを全く体験しないことが見出された。特に、その心理は、頭を回転しているときジッターを無視するか又は情景における多少の不整を体験することに慣れており、かつ、自動的に補償する。
【００６７】
その結果、ヘッドセットが回転しているとき、平滑化は、少なくとも一時的に停止することができる。これにより、多少のプロセッササイクルを解放して他のより重要な課題に取り組ませることになり、それは、予測運動追跡がデータの事前又は事後計算平滑化により妨げられないようにする。激しい平滑化により、たとえば小さい（又はゼロの）運動を示す先行データの過大な重み付けにより、作成されたフレームが実際の運動より遅れて現れるようになること、又はオーバーシュートがもたらされることがある。したがって、頭が回転しているときには、平滑化を停止することにより着用者にとって有害な効果は認識されず、かつ、利益は、ヘッドセットが回転しているときに、より敏感なシーン作成が行われることにある。
【００６８】
次に（又は実質的に同時に）、８４０においてヘッドセットの角速度が決定される。この決定は、単一の測定値又は８２０におけるセンサーフュージョンにより生成された単一のデータの集まりとすることができる。好ましくは、角速度は、角速度測定値の所定の優先群（たとえば最新の１０個の測定値）の平均から角速度測定値の同様の組の加重平均までの多数の選択肢の１つを使用して決定される。ただし、ある間隔にわたるその加速度（又は場合に応じて減速度）の微分及び外挿による直線加速度の決定については、最も新しい組の測定値（たとえば最新の１〜３個の測定値）に対して追加加重を適用する。
【００６９】
次のステップは、８５０において、運動予測が行われる予測間隔を設定することである。本明細書において使用される場合、「予測間隔」は、運動の予測が行われる時間である。たとえば、予測間隔が４０ミリ秒である場合、予測運動追跡は、その予測間隔の終了時、すなわち現在から４０ミリ秒後におけるヘッドセットの運動、方位、及び位置を予測する。予測間隔がゼロである場合、予測運動追跡は、現在時点におけるヘッドセットの運動、方位、及び位置を予測する（事実上、予測運動追跡を行わない）。予測間隔を含めることは、予測運動追跡システムがヘッドセットの運動の大きさ及び範囲に動的に応答することを可能にする。
【００７０】
この予測間隔は極めて短くすることができ、また、小さい運動については極めて短い。たとえば、約１０度／秒の運動は、予測間隔の設定を非常に短く、たとえば、５ミリ秒に設定させる。かかる状況では、どのような方法で決定されるにせよ、角速度測定値はその時間期間にわたって適用され、その時間期間の実際のデータの代わりとして関連ビデオフレームを作成するためにユーザシステムに与えられる。作成されるビデオの次のフレームは、その結果の予測に基づいて渡される。
【００７１】
相対的に言って、角速度測定値が極めて大きい（たとえば、約５００度／秒）状況では、システムが運動を予測する予測間隔は非常に長くなる。たとえば、高速移動の場合、システムは、予測間隔を３０〜６０ミリ秒に設定する。この状況では、ビデオ作成側に渡される運動予測データは、予測間隔の終了時における着用者の運動、方位、及び位置を予測し、かつ、その予測に基づいて作成されたビデオの次フレームを渡す。
【００７２】
よく研究されたシステムでは、遅延間隔はよく分かっている。用語「遅延間隔」は、運動データがセンサーにより作成されてから、その運動データを含む作成されたビデオフレームが渡されるまでの時間である。現在のシステムでは、遅延間隔は、約３０〜６０ミリ秒であり、一般的に約４０ミリ秒と思われる。
【００７３】
この遅延間隔は、予測間隔の上限として使用することができる。したがって、予測間隔は、遅延間隔を超えてはならない。これは、ヘッドセットを着用しているユーザが自分の頭を動かしたとき、そのデータを含んで次に作成されるビデオのフレームが次の遅延間隔に現れるからである。
【００７４】
したがって、その時間枠を超えて予測することは不要であり、かつ、オーバーシュート（過大な運動を作成するか又は運動が始まった直後に止まる）及び着用者の実際の運動からの断絶をもたらす可能性が高い。同様に、記述しているシステムでは、追加データ、すなわち、次のフレームのビデオを作成するために利用できる数十の追加の運動、方位、及び位置に関する追加データが得られる。遅延間隔までの運動予測には、ユーザが作成されたビデオのフレームを見る次の瞬間にユーザの実際の運動の予測を試みるという利点がある。
【００７５】
このプロセスは、たとえば、所与の着用者の運動の角速度に関する決定がなされるように機能することができる。閾値、たとえば毎秒０．３ラジアンを超える角速度の場合、予測の時間は、遅延間隔まで直線的に増大される。この予測間隔の増大は、たとえば、＋２ミリ秒／ラジアン／秒となる。この方法により、毎秒１ラジアンのヘッドセットの回転は、将来において２ミリ秒の予測間隔を利用する。毎秒１０ラジアンのヘッドセットの回転は、将来において２０ミリ秒の予測間隔を利用する。その他の直線増加勾配も遅延間隔（たとえば将来的に４０ミリ秒）に等しい最大予測間隔まで使用することができる。
【００７６】
したがって、角速度が実質的にゼロ（たとえば毎秒０〜０．０３ラジアン）である場合、三次元における方位は、平滑化を使用し、現在の位置及び方位に依存して（予測なしに）導くことができる。角速度が実質的ゼロより大きい場合、予測アルゴリズムを使用するとともに平滑化を停止する。最後に、いずれにしても、最後に測定した位置の他に選択した可能な予測間隔にわたる直線速度を使用して位置（三次元空間における場所）を導く。
【００７７】
要約するとヘッドセットの運動を測定してヘッドセットの運動（角速度）が実質的にゼロ（毎秒０〜０．３ラジアン）であるか否か決定する。実質的にゼロである場合、データの平滑化を起動し、予測間隔を実質的なゼロ（又はゼロ）に設定する。実質的にゼロより高い速度（毎秒０．３ラジアンを超える）でヘッドセットが動いている場合（角速度）、平滑化を停止し、予測間隔を設定する。運動の角速度が増大している場合、予測間隔を示度あたり予測間隔分散（たとえば、２ミリ秒／ラジアン／秒）だけ最大遅延間隔（たとえば４０ミリ秒）まで拡張する。
【００７８】
予測間隔の増大（最大遅延間隔まで）は、ヘッドセットの直線運動に対応して直線状でよい。その結果、速い運動は、前述のように予測間隔における直線的増加により補償される。別の方法として、いわゆる平滑ステップアルゴリズムも使用できる。平滑ステップアルゴリズムは、ｓｍｏｏｔｈｓｔｅｐ（ｔ）＝３ｔ２−２ｔ３という一般化形式をとる。ここでｔは平滑化される変数であり、また、一般化形式の結果は０と１の中間に位置する。平滑ステップは、高低両端においてゼロに向けて傾斜を付けることができるという利点を有している。この方法による予測は、両端において「丸みを付ける」ことにより直線内挿から異なる。予測がいずれの端部においても急激又は急峻な停止又は開始を伴うことなくより緩やかに最大又は最小に近づくため、予測間隔に依存するかかるヘッドセットの装着者にとって、このように見える。その結果、予測間隔は、「なめらかに」ゼロに近づくか、又は最大遅延間隔に近づくことができる。
【００７９】
８２５においてヘッドセットが回転していない場合（それは、ユーザの頭が実質的に静止していることを示す）、８６０において平滑化が可能にされる。上述したように、平滑化は、ヘッドセットが移動していないとき、又は非常にわずかな運動をしている場合に最も役に立つ。特に、それは、ヘッドセットが実質的に静止しているときに、ジッターなどのシーンの不要又は過度に誇張された動きを避けるのに役立つ。このように、ヘッドセットが実質的に静止しているときに平滑化を起動することは、これらの問題の低減を助ける。
【００８０】
同様に８７０において予測間隔は、実質的にゼロに設定される。頭が実質的に動いていないとき、いかなる間隔にわたるにせよ大幅な予測は不要である。多少の予測運動追跡は適用できるが、それは、予測が適用される間隔を５ミリ秒以下などの非常に短い時間枠に設定する範囲内とする。場合によっては、予測間隔をゼロにしてよい。これは、さらに、特に予測間隔が遅延間隔又はその近傍に設定される場合に、小さい動きを誇張する予測運動追跡を回避するのに役立ち得る。
【００８１】
次に、８２５においてヘッドセットを回転しているか否かに関わらず、及び８５０及び８７０における予測間隔の設定後に、８８０において三次元方位及び角速度の予測が行われる。事実、これは、予測間隔の終了時におけるヘッドセットの運動、方位及び位置を予測する。これは、上述したように、四元数として表し得るが、任意の数の方法により表すことができる。
【００８２】
最後に８９０において、次に作成されるビデオフレームにおいて、予測に基づく予測された運動、方位、及び位置ならびに予測間隔に対応して表示が更新される。その結果、予測間隔が４０ミリ秒であった場合、次に作成されてＶＲヘッドセットに送り出されるビデオフレームは、着用者の頭が現在から４０ミリ秒後の予測位置にあるものとして作成される。予測間隔がゼロであった場合、次に作成されてＶＲヘッドセットに送り出されるビデオフレームは、着用者の頭が現在時点における予測位置にあるものとして作成される（予測は不要であり、実際のデータが利用できる）。したがって、予測は行われないか又は非常に限られた予測が行われる。
【００８３】
これらの選択肢と極端な例の両方とも、８２５において頭が回転しているか又は回転していないことを反映している。表示が更新されると、このプロセスは終了する。しかし、上述したように、このプロセスは、センサーの毎回の更新すなわち毎回のセンサー更新間隔（たとえば１０又は２０回の更新毎）で繰り返される。この方法により、平滑化を伴い又は伴わずに、かつ、遅延間隔又はその近傍における予測間隔を伴い又は伴わずに、次に作成されるビデオフレームが与えられ得る。
【００８４】
結語
この記述全体を通じて、示された実施形態及び例は、開示又は請求される装置及び方法に関する限定ではなく、例示として解釈されるべきである。本明細書において提示された多数の例は方法の行為又はシステムの要素の特定の組み合わせを含んでいるが、当然のことながらこれらの行為及び要素は他の方法により組み合わせて同じ目的を果たすことができる。フローチャートについては、追加ステップ及びより少ないステップも採用でき、また、示されたステップの組み合わせにより、又はそのさらなる精緻化により、本明細書において記述された方法を達成することができる。１つの実施形態にのみ関連して説明された行為、要素及び特徴は、他の実施形態における同様の役割から除外されることを意図していない。
【００８５】
本明細書における用法においては、「複数」は２つ以上を意味する。本明細書における用法においては、物品の「組」は、１つ又は複数のかかる物品を含む。本明細書における用法においては、本明細書中であるか請求項中であるかを問わず、「備える（ｃｏｍｐｒｉｓｉｎｇ）」、「含む（ｉｎｃｌｕｄｉｎｇ）」、「担持する（ｃａｒｒｙｉｎｇ）」、「有する（ｈａｖｉｎｇ）」、「含有する（ｃｏｎｔａｉｎｉｎｇ）」、「含む（ｉｎｖｏｌｖｉｎｇ）」などの用語は、すべて、オープンエンドである、すなわち、含むがそれらに限られないことを意味すると理解されるべきである。移行句、「〜からなる（ｃｏｎｓｉｓｔｉｎｇ  ｏｆ）」及び「〜から本質的になる（ｃｏｎｓｉｓｔｉｎｇ  ｅｓｓｅｎｔｉａｌｌｙ  ｏｆ）」のみ、それぞれ、請求項に関して、閉じた又は半ば閉じた移行句である。請求項において請求要素を修飾する「第１」、「第２」、「第３」などの通常の表現の使用は、それ自体では、１つの請求項の他の請求項に対する先行性、優先性、又は順序若しくは方法の行為が遂行される時間的順序を含意せず、単に、請求要素を明示するために一定の名称を有する１つの請求要素を同一の名称（通常の用語としての使用を別にして）を有する他の要素から区別する標識として使用されている。本明細書における用法では、「及び／又は」は、表示された項目が代替可能であるが、代替が表示された項目の任意の組み合わせも含むことを意味する。
【図６Ａ−６Ｂ】
0006038401.tif 000002
【図７Ａ−７Ｃ】
0006038401.tif 000003
【図１】
0006038401.tif 000004
【図２】
0006038401.tif 000005
【図３】
0006038401.tif 000006
【図４】
0006038401.tif 000007
【図５】
0006038401.tif 000008
【図８】
0006038401.tif 000009