(57)【要約】  方法は、第１の時点で、第１の慣性センサのサンプルストリームを用いてヘッドマウントディスプレイ（ＨＭＤ）（１０２）の第１の頭部回転の表現を求めるステップと、アプリケーションプロセッサ（２０４）において、第１の頭部回転に基づいてテクスチャ（１３２）をレンダリングするステップとを含む。この方法はさらに、第１の時点の後の第２の時点で、第１の慣性センサのサンプルストリームよりも高いサンプリングレートを有する第２の慣性センサのサンプルストリームを用いてＨＭＤの第２の頭部回転の表現を求めるステップと、コンポジタ（２２４）において、第１の頭部回転と第２の頭部回転との差に基づいて、テクスチャ（１３４）の回転された表現を生成するステップとを含む。
2018525693.tif 000002
【特許請求の範囲】
【請求項１】
ヘッドマウントディスプレイ（ＨＭＤ）（１０２）を備えるシステム（１００）において、方法は、
第１の時点で、第１の慣性センサのサンプルストリームを用いて前記ＨＭＤの第１の頭部回転の表現を求めるステップと、
前記システムのアプリケーションプロセッサ（２０４）において、前記第１の頭部回転に基づいてテクスチャ（１３２）をレンダリングするステップと、
前記第１の時点の後の第２の時点で、前記第１の慣性センサのサンプルストリームとは異なる第２の慣性センサのサンプルストリームを用いて前記ＨＭＤの第２の頭部回転の表現を求めるステップと、
前記システムのコンポジタ（２２４）において、前記第１の頭部回転と前記第２の頭部回転との差に基づいて前記テクスチャの回転された表現（１３４）を生成するステップとを含む、方法。
【請求項２】
前記第１の頭部回転の表現を求めるステップは、前記第１の慣性センサのサンプルストリームに基づいて前記第１の時点とその後の時点との間における予測される回転の変化を表わす第１の四元数を求めるステップを含み、
前記第２の頭部回転の表現を求めるステップは、前記第２の慣性センサのサンプルストリームに基づいて前記第１の時点と前記第２の時点との間における測定された回転の変化を表わす第２の四元数を求めるステップを含み、
前記テクスチャの回転された表現を生成するステップは、前記予測される回転の変化と前記測定された回転の変化との差に基づいて前記回転された表現を生成するステップを含む、請求項１に記載の方法。
【請求項３】
前記テクスチャの回転された表現を生成するステップは、
前記予測される回転の変化と前記測定された回転の変化との差に基づいてホモグラフィ回転変換（３１６，３１８）を求めるステップと、
前記ホモグラフィ回転変換を前記テクスチャに適用することにより、ワープされたテクスチャ（１３４）を生成するステップとを含む、請求項２に記載の方法。
【請求項４】
前記テクスチャの回転された表現を生成するステップは、
前記予測される回転の変化と前記測定された回転の変化との差に基づいてホモグラフィ回転変換（３１６，３１８）を求めるステップと、
前記ホモグラフィ回転変換を非線形歪み変換を表わすルックアップテーブル（ＬＵＴ）（３３０，３３２）に適用することにより、ワープされたＬＵＴを生成するステップと、
前記ワープされたＬＵＴを前記テクスチャに適用することにより、ワープされたテクスチャを生成するステップとを含む、請求項２に記載の方法。
【請求項５】
前記第２の慣性センサによって測定された前記第１の時点と前記第２の時点との間における測定された回転の変化を表わす第２の四元数を求めるステップは、
前記コンポジタにおいて、前記第２の慣性センサのサンプルストリームからのセンササンプル（３２８）をスライディングウィンドウバッファ（３２６）にバッファするステップを含み、バッファされた各センササンプルは対応するタイムスタンプを有し、
前記コンポジタにおいて、前記第１の時点に対応するタイムスタンプを受けるステップと、
前記受けたタイムスタンプに等しいまたは前記受けたタイムスタンプの後のタイムスタンプを有する１つ以上のバッファされたセンササンプルを識別するステップと、
前記識別された１つ以上のバッファされたセンササンプルをフォワード積分することにより、前記第１の時点と前記第２の時点との間における前記測定された回転の変化を求めるステップとを含む、請求項２に記載の方法。
【請求項６】
前記第１の慣性センサのサンプルストリームは、第１のサンプリング周波数でジャイロスコープ（２１８）をサンプリングすることにより生成されたサンプルストリームを含み、
前記第２の慣性センサのサンプルストリームは、前記第１のサンプリング周波数よりも高い第２のサンプリング周波数で前記ジャイロスコープをサンプリングすることにより生成されたサンプルストリームを含む、請求項１に記載の方法。
【請求項７】
システムであって、
ヘッドマウントディスプレイ（ＨＭＤ）（１０２）と、
少なくとも１つの慣性センサ（２１８，２２０，２２２，２３２）と、
前記少なくとも１つの慣性センサに結合されたアプリケーションプロセッサ（２０４）とを備え、前記アプリケーションプロセッサは、テクスチャ（１３２，３２４，３２６）を第１のレートでレンダリングし、テクスチャごとに、前記アプリケーションプロセッサは、前記少なくとも１つの慣性センサからの第１のサンプルストリームから前記ＨＭＤの対応する頭部回転を求め、前記対応する頭部回転に基づいて前記テクスチャをサンプリングし、
前記少なくとも１つの慣性センサおよび前記アプリケーションプロセッサに結合されたコンポジタ（２２４）を備え、前記コンポジタは、前記第１のレートに少なくとも等しい第２のレートでディスプレイフレーム（１３４）を生成し、ディスプレイフレームごとに、前記コンポジタは、前記少なくとも１つの慣性センサからの第２のサンプルストリームから、更新された頭部回転を求め、前記テクスチャの前記対応する頭部回転と前記更新された頭部回転との差に基づいて、前記ディスプレイフレームを、対応するテクスチャの回転された表現として生成する、システム。
【請求項８】
前記アプリケーションプロセッサは、前記第１のサンプルストリームに基づいて第１の時点とその後の時点との間における回転の予測される変化を表わす第１の四元数として、前記対応する頭部回転を求め、
前記コンポジタは、前記第２のサンプルストリームに基づいて前記第１の時点と前記ディスプレイフレームに対応するその後の時点との間における測定された回転の変化を表わす第２の四元数として、前記更新された頭部回転を求め、
前記コンポジタは、前記予測される回転の変化と前記測定された回転の変化との差に基づいて前記テクスチャの回転された表現を生成する、請求項７に記載のシステム。
【請求項９】
前記コンポジタは、
前記予測される回転の変化と前記測定された回転の変化との差に基づいてホモグラフィ回転変換（３１６，３１８）を求めるホモグラフィ回転要素（３１４）と、
前記ホモグラフィ回転変換を前記テクスチャに適用することにより、ワープされたテクスチャを生成するテクスチャワープ要素（３１０）とを備える、請求項８に記載のシステム。
【請求項１０】
前記コンポジタは、
非線形歪み変換を表わすルックアップテーブル（ＬＵＴ）（３２０，３２２）を格納する構成ストア（３０２）と、
前記予測される回転の変化と前記測定された回転の変化との差に基づいてホモグラフィ回転変換を求め、前記ホモグラフィ回転変換を前記ＬＵＴに適用することにより、ワープされたＬＵＴ（３３０，３３２）を生成するホモグラフィ回転要素（３１４）と、
前記ワープされたＬＵＴを前記テクスチャに適用することにより、ワープされたテクスチャを生成するテクスチャワープ要素（３１０）とを備える、請求項８に記載のシステム。
【請求項１１】
前記コンポジタは、
積分器要素（３０４）を備え、前記積分器要素は、前記第２のサンプルストリームを受け、前記第２のサンプルストリームからのセンササンプルを、対応するタイムスタンプとともにバッファするスライディングウィンドウバッファ（３２６）を有し、前記積分器要素は、前記第１の時点に対応する前記第１のサンプルストリームのセンササンプルに対応するタイムスタンプに等しいまたはその後のタイムスタンプを有する１つ以上のバッファされたセンササンプル（３２８）を識別し、前記識別された１つ以上のバッファされたセンササンプルをフォワード積分することにより、前記第１の時点と前記ディスプレイフレームに対応するその後の時点との間における測定された回転の変化を求める、請求項８に記載のシステム。
【請求項１２】
前記第１のサンプルストリームは、第１のサンプリング周波数を有する第１のジャイロスコープ（２１８）によって生成されたサンプルストリームを含み、
前記第２のサンプルストリームは、前記第１のサンプリング周波数よりも高い第２のサンプリング周波数を有する第２のジャイロスコープ（２３２）によって生成されたサンプルストリームを含む、請求項７に記載のシステム。
【請求項１３】
ヘッドマウントディスプレイ（ＨＭＤ）（１０２）を備えるシステム（１００）において、方法は、
アプリケーションプロセッサ（２０４）において、慣性センサ（２１８）から求められた前記ＨＭＤの初期頭部回転に基づいてテクスチャ（１３２，３２４，３２６）をレンダリングするステップと、
ディスプレイフレームを表わす一連のスライスのうちのスライスごとに、
コンポジタ（２２４）において、慣性センサ（２１８，２３２）から、対応する更新された頭部回転を求めるステップと、
前記コンポジタにおいて、前記初期頭部回転と、前記対応する更新された頭部回転との差に基づいて、前記スライスのホモグラフィ回転変換（３１６，３１８）を求めるステップと、
前記コンポジタにおいて、前記ホモグラフィ回転変換を前記スライスに対応する前記テクスチャの部分に適用することにより、ワープされたスライスを生成するステップと、
前記ＨＭＤで表示するために前記ワープされたスライスをスキャンアウトするステップとを含む、方法。
【請求項１４】
前記初期頭部回転を求めるステップは、第１の時点とその後の時点との間における予測される回転の変化を表わす第１の四元数を求めるステップを含み、
前記更新された頭部回転を求めるステップは、前記第１の時点と前記スライスに対応する第２の時点との間における測定された回転の変化を表わす第２の四元数を求めるステップを含み、
前記ホモグラフィ回転変換を生成するステップは、前記第１の四元数と前記第２の四元数との差に基づいて前記ホモグラフィ回転変換を生成するステップを含む、請求項１３に記載の方法。
【請求項１５】
前記第２の四元数を求めるステップは、
前記コンポジタにおいて、慣性センサ（２３２）からのセンササンプル（３２８）をスライディングウィンドウバッファ（３２６）にバッファするステップを含み、各バッファされたセンササンプルは対応するタイムスタンプを有し、
前記コンポジタにおいて、前記初期頭部回転に対応するタイムスタンプを受けるステップと、
前記受けたタイムスタンプに等しいまたはその後のタイムスタンプを有する１つ以上のバッファされたセンササンプルを識別するステップと、
前記識別された１つ以上のバッファされたセンササンプルをフォワード積分することにより、前記第２の四元数を求めるステップとを含む、請求項１４に記載の方法。
【請求項１６】
前記ホモグラフィ回転変換を前記スライスに対応する前記テクスチャの部分に適用することにより、ワープされたスライスを生成するステップは、
非線形歪み変換を表わすルックアップテーブル（ＬＵＴ）（３１６，３１８）にアクセスするステップと、
前記ホモグラフィ回転変換を前記スライスに対応する前記ＬＵＴの部分に適用することにより、ワープされたＬＵＴの部分（３３０，３３２）を生成するステップと、
前記ワープされたＬＵＴの部分を前記テクスチャの部分に適用することにより、前記ワープされたスライスを生成するステップとを含む、請求項１３に記載の方法。
【請求項１７】
システム（１００）であって、
ヘッドマウントディスプレイ（ＨＭＤ）（１０２）と、
少なくとも１つの慣性センサ（２１８，２３２）と、
前記少なくとも１つの慣性センサに結合されたアプリケーションプロセッサ（２０４）とを備え、前記アプリケーションプロセッサは、前記少なくとも１つの慣性センサから求められた前記ＨＭＤの初期頭部回転に基づいてテクスチャ（１３２，３２４，３２６）をレンダリングし、
前記少なくとも１つの慣性センサと前記アプリケーションプロセッサと前記ＨＭＤのディスプレイ（１１２，１１４）とに結合されたコンポジタ（２２４）を備え、前記コンポジタは、ディスプレイフレームを表わす一連のスライスのうちのスライスごとに、前記少なくとも１つの慣性センサから、対応する更新された頭部回転を求め、前記初期頭部回転と前記対応する更新された頭部回転との差に基づいて前記スライスのホモグラフィ回転変換（３１６，３１８）を求め、前記ホモグラフィ回転変換を前記スライスに対応する前記テクスチャの部分に適用することにより、ワープされたスライスを生成し、前記ＨＭＤで表示するために前記ワープされたスライスをスキャンアウトする、システム。
【請求項１８】
前記アプリケーションプロセッサは、第１の時点とその後の時点との間における予測される回転の変化を表わす第１の四元数として、前記初期頭部回転を求め、
前記コンポジタは、前記第１の時点と前記スライスに対応する第２の時点との間における測定された回転の変化を表わす第２の四元数として、前記更新された頭部回転を求め、
前記コンポジタは、前記第１の四元数と前記第２の四元数との差に基づいて前記ホモグラフィ回転変換を生成する、請求項１７に記載のシステム。
【請求項１９】
前記コンポジタは、
積分器要素（３０４）を備え、前記積分器要素は、前記少なくとも１つの慣性センサに結合され、前記少なくとも１つの慣性センサからのセンササンプルを、対応するタイムスタンプとともにバッファするスライディングウィンドウバッファ（３２６）を有し、前記積分器要素は、前記アプリケーションプロセッサによって使用される最後のセンササンプルに対応するタイムスタンプに等しいまたはその後のタイムスタンプを有する１つ以上のバッファされたセンササンプルを識別することにより前記初期頭部回転を求め、前記識別された１つ以上のバッファされたセンササンプルをフォワード積分することにより、前記第２の四元数を求める、請求項１８に記載のシステム。
【請求項２０】
前記コンポジタは、
非線形歪み変換を表わすルックアップテーブル（ＬＵＴ）（３１６，３１８）を格納する構成ストア（３０２）と、
前記構成ストアに結合されたホモグラフィ回転要素（３１４）とを備え、前記ホモグラフィ回転要素は、前記スライスに対応する前記ＬＵＴの部分に前記ホモグラフィ回転変換を適用することにより、ワープされたＬＵＴの部分を生成し、
前記ワープされたＬＵＴの部分を前記テクスチャの部分に適用することにより、前記ワープされたスライスを生成するテクスチャワープ要素を備える、請求項１７に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示の分野
本開示は、概してヘッドマウントディスプレイシステムに関し、より具体的にはヘッドマウントディスプレイシステムにおけるレイテンシ低減動き補償および安定化に関する。
【背景技術】
【０００２】
背景
仮想現実（virtual reality）（ＶＲ）システムが再現する環境は、物理的存在を、現実世界または想像上の世界の場所において、すべてコンピュータで生成された、この世界の中の「シーン」の３次元（３Ｄ）イメージを用いてシミュレートしている。同様に、拡張現実（augmented reality）（ＡＲ）システムは、物理的存在を、現実世界において、コンピュータで生成した３Ｄイメージを、同時に取得した現実世界のイメージに重畳することにより、「拡張する」。このように、ＶＲシステムおよびＡＲシステムはいずれも、現実世界、拡張された世界、または想像上の世界における「存在」の正確な知覚を提供しようとしている。一般的に、この存在の知覚は、左目用ディスプレイと右目用ディスプレイが分離されているヘッドマウントディスプレイ（head mounted display）（ＨＭＤ）を用いることで、容易になる。これらのディスプレイを組合わせることにより、描かれたた世界においてシーンの立体または３Ｄ表現を提示する。このシーンは、現在のユーザの姿勢（すなわち描かれたシーンの基準座標フレームに対するユーザの頭部の相対的な位置および向き）に基づいてこのシーンがユーザから相対的にどのように見えるかを反映する。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ＨＭＤに基づくＶＲおよびＡＲシステムは、３Ｄイメージを一連のディスプレイフレームとして表示する。各ディスプレイフレームは、対応する検出された頭部姿勢に基づいてレンダリングされ、特定期間持続する。しかしながら、一般的にＨＭＤの場合ユーザは自由に移動できるので、ユーザの頭部は、フレームのレンダリングの開始の時点から、レンダリングされたフレームの表示の時点までに、相当回転している場合がある。このため、特定の時点でＨＭＤに表示されたイメージは、ユーザの頭部の移動から遅れている場合がある。このように、あるシーンの中でユーザが知覚する向きと、ＨＭＤにおいて見えている提示されたシーンの向きとが一致しない場合、ユーザが方向感覚を失う可能性がある。これはすなわち、「仮想現実酔い」としばしば呼ばれているものである。したがって、ユーザの方向感覚喪失を軽減または解消し、そうすることにより改善された存在を提供するために、ＨＭＤに基づくＶＲおよびＡＲシステムは、動きから表示までのレイテンシ（motion-to-photon latency）を最小にすることを意図する、すなわち、ユーザの頭部／目が動いた時点と、シーンを表わす光子が新たな姿勢のユーザの目に入る時点との間のレイテンシを最小にすることを意図する。
【０００４】
添付の図面を参照することにより、当業者は本開示をより深く理解しその数多くの特徴および利点を認識するであろう。異なる図面において使用されている同一の参照符号は、同様または同一のアイテムを示す。
【図面の簡単な説明】
【０００５】
【図１】本開示の少なくとも１つの実施形態に従う、電子ディスプレイ安定化（ＥＤＳ）を実現するヘッドマウントディスプレイ（ＨＭＤ）システムを示す図である。
【図２】本開示の少なくとも１つの実施形態に従う、図１のＨＭＤシステムのハードウェア構成を示すブロック図である。
【図３】本開示の少なくとも１つの実施形態に従う、図２のＨＭＤシステムのコンポジタをより詳細に示すブロック図である。
【図４】本開示の少なくとも１つの実施形態に従う、ＥＤＳプロセスの一例を示すフロー図である。
【図５】本開示の少なくとも１つの実施形態に従う、ＥＤＳプロセスの別の例を示すフロー図である。
【発明を実施するための形態】
【０００６】
詳細な説明
以下の説明は、ＨＭＤに基づくＡＲおよびＶＲディスプレイシステムに関連する多数の具体的な実施形態および詳細を提供することにより、本開示の十分な理解を得ることを意図している。しかしながら、本開示は例示にすぎないこれらの具体的な実施形態および詳細に限定される訳ではなく、したがって本開示の範囲は以下の請求項およびその均等物によってのみ限定されることを意図している点が、理解される。さらに、当業者は周知のシステムおよび方法に照らして本開示がその意図する目的と利点のために特定の設計およびその他の必要に応じて代替の多数の実施形態で使用されることを認識するであろうことが、理解される。
【０００７】
図１は、本開示の少なくとも１つの実施形態に従う、現実世界または想像上の世界においてＶＲまたはＡＲ存在を提供するためのＨＭＤに基づくディスプレイシステム１００を示す。ディスプレイシステム１００は、ユーザの頭部１０４の動きに結合されるＨＭＤ１０２を含む。一般的には、「ヘッドマウントディスプレイ」の「マウント（mounted：装着される）」という用語が示唆するように、ＨＭＤ１０２は、ユーザの頭部１０４にストラップで取付けられるかまたはユーザの頭部１０４に装着される装置を含み、それにより、ＨＭＤ１０２は、ユーザの顔の近傍に固定的に配置されるので、ユーザの動きに伴って動く。しかしながら、状況によっては、ユーザが、タブレットコンピュータまたはその他のハンドヘルド装置を自身の顔の近くで保持し、ユーザの頭部に対するハンドヘルド装置の向きがユーザの頭部１０４が動いても相対的に固定されるようにハンドヘルド装置の動きを制限してもよい。このような場合、このやり方で操作されるハンドヘルド装置は、ユーザの頭部１０４に物理的な装着具で「装着されて」いる訳ではないが、ＨＭＤ１０２の実装例とみなすことができる。
【０００８】
ＨＭＤ１０２は、表面１０８およびその反対側のもう１つの表面１１０を有する筐体１０６と、フェースガスケット１０９と、一組のストラップまたはハーネス（明確にするために図１には示されていない）とを備える。一組のストラップまたはハーネスは、ユーザの顔が筐体１０６の表面１０８に面するように筐体１０６をユーザの頭部１０４に装着するためのものである。示されている実施形態において、ＨＭＤ１０２は、両眼ＨＭＤであり、したがって表面１０８に配置された左目用ディスプレイ１１２と右目用ディスプレイ１１４とを有する。ディスプレイ１１２、１１４は、別々のディスプレイ装置（別々のディスプレイドライバハードウエア要素によって駆動される独立したディスプレイアレイ）であってもよく、または、ディスプレイ１１２、１１４は、１つのディスプレイ装置を論理的に分離して得られた領域として実現されてもよい（たとえば左目用「半分」と右目用「半分」に論理的に分割された単体のディスプレイアレイ）。筐体１０６はさらに、左目用ディスプレイ１１２と位置合わせされた接眼レンズ１１６と、右目用ディスプレイ１１４と位置合わせされた接眼レンズ１１８とを含む。いくつかの実施形態では、その代わりに、ＨＭＤ１０２が単眼ＨＭＤとして実現されてもよい。すなわち、１つの画像が、左および右の接眼レンズ１１６、１１８を通して、またはレンズを介さずに直接、ユーザの両目に対して提示されてもよい。
【０００９】
以下でより詳細に説明するように、ディスプレイシステム１００はさらに、ＨＭＤ１０２で表示するためのイメージを生成するイメージレンダリングシステムを含む。いくつかの実施形態において、イメージレンダリングシステムの構成要素は主としてＨＭＤ１０２自身の内部で実装される。たとえば、ＨＭＤ１０２は、ＶＲ／ＡＲアプリケーションを実行し得られたイメージをレンダリングするコンピューティングシステムを含み得る。ＨＭＤ１０２は、無線または有線接続によりローカルまたはリモートコンピューティングデバイスに接続されてもよい。このコンピューティングデバイスは、ＶＲ／ＡＲアプリケーションに関連するさまざまなデータを提供する。このようなデータは、シーンにおいてレンダリングすべきオブジェクト、同じ世界空間で動作しているその他のユーザのパラメータ（たとえば位置）等を記述したデータである。その他の実施形態において、画像レンダリングシステムの構成要素の一部またはすべては、ＨＭＤ１０２の外部において実装され、表示用のイメージを表わすデータは有線または無線接続を介してＨＭＤ１０２に提供されてもよい。
【００１０】
動作時に、ディスプレイシステム１００はＶＲまたはＡＲアプリケーションを実行し、これは、基準座標フレームに対するＨＭＤ１０２（およびユーザの頭部１０４）の現在の姿勢（すなわち位置と回転の向き）を求め、次に、この姿勢に対応する視点から見たシーンのイメージを生成する。表示されたイメージは、完全にコンピュータによって生成されたものであってもよく（すなわちＶＲイメージ）、または、ローカル環境の取得イメージ（たとえばＨＭＤ１０２に搭載された１つ以上の画像センサを介して取得したイメージ）と、現在のユーザの姿勢を反映するようにレンダリングされたＡＲオーバレイとの組合わせであってもよい。図１に示されるように、左側ディスプレイと右側ディスプレイ双方を備えた実装例において、左目固有のイメージのレンダリングおよび左目用ディスプレイ１１２における表示と、右目固有のイメージのレンダリングおよび右目用ディスプレイ１１４における表示とを、同時に行なうことにより、表示されたイメージが表わすシーンの立体３Ｄ表示を可能にしてもよい。
【００１１】
ＨＭＤ１０２は、ユーザの頭部１０４に装着されるか、そうでなければユーザの頭部と連携して動くように制限されているので、動作中、１つ以上の軸（たとえば図示されているｘ、ｙおよびｚ軸）を中心とする相当な回転の影響を受ける。先に述べたように、この回転が、ディスプレイシステム１００のレンダリングおよび表示レイテンシと組合わさると、緩和されない限り事実上ユーザの方向感覚喪失が生じる可能性がある。このため、ディスプレイシステム１００は、電子ディスプレイ安定化（electronic display stabilization）（ＥＤＳ）プロセスを利用して、画像を表示前にワープさせる（warp）ことにより、画像が最初にレンダリングされてから発生したユーザの頭部回転を補償し、そうすることで、ＨＭＤ１０２のレンズを通して見られるときの画像を安定化させる。少なくとも１つの実施形態において、ＥＤＳプロセスは、元のテクスチャのレンダリングに使用されるアプリケーションプロセッサおよびその他のハードウェア（本明細書では「アプリケーションハードウェア１２２」と呼ぶ）と、このテクスチャをワープさせそうして得られたワープされたディスプレイフレームを表示するのに使用されるハードウェア（本明細書では「ＥＤＳディスプレイハードウェア１２４」と呼ぶ）とを分離することに基づく。加えて、この分離はさらに、アプリケーションハードウェア１２２が使用するジャイロスコープまたはその他の慣性センサとは別のジャイロスコープまたはその他の慣性センサをＥＤＳディスプレイハードウェア１２４が使用することによって、または、ＥＤＳディスプレイハードウェア１２４およびアプリケーションハードウェア１２２各々に対して同じジャイロスコープを異なるレートでサンプリングすることによって、実現されてもよい。
【００１２】
図１におけるダイヤグラム１３０は、少なくとも１つの実施形態に従い、ＥＤＳディスプレイハードウェア１２４が使用するＥＤＳプロセスを要約している。ブロック１３１によって示されるように、アプリケーションハードウェア１２２は、その慣性センサをサンプリングすることにより初期頭部姿勢および初期頭部回転を求めるとともに、ディスプレイ１１２、１１４ごとにそれぞれのテクスチャ１３２（一般的には「フレーム」または「画像」とも呼ばれる）を、求めた初期頭部姿勢および回転に基づいてレンダリングする。そうすることによって得た一対のテクスチャ１３２が組合されて、対応する時点における３Ｄシーンの眺めを表わす。アプリケーションハードウェア１２２は、ＥＤＳディスプレイハードウェア１２４に、レンダリングした一対のテクスチャ１３２、求めた初期頭部回転を表わしたもの、および頭部回転を求めた時点を表わすタイムスタンプを（たとえば初期頭部回転を求めるために使用した最後のセンササンプルを受けたときに）提供する。このレンダリングプロセスは、本明細書において「レンダリングレートＸ」と呼ばれるテクスチャレンダリングレートで実行される。
【００１３】
独立して、ＥＤＳディスプレイハードウェア１２４は、対応するレンダリングされたテクスチャ１３２に基づき、本明細書において「ディスプレイフレームレートＹ」と呼ばれるディスプレイレートで、ディスプレイ１１２、１１４各々における表示のために１つ以上のディスプレイフレームを生成しスキャンアウトするように動作する。しかしながら、テクスチャ１３２のレンダリングにおけるレイテンシおよびテクスチャ１３２を表示のために準備する際のテクスチャ１３２のその他の処理におけるレイテンシが原因で、ユーザの頭部１０４は、アプリケーションハードウェア１２２がテクスチャ１３２をレンダリングするために使用した姿勢から、知覚できる程度回転していることが多い。すなわち、テクスチャ１３２は、レンダリングされて使用可能な状態になる前に、テクスチャが表わす頭部の向きが最早ユーザの頭部１０４の現在の向きではないという意味において、「新鮮ではない」可能性がある。よって、ブロック１３３が示すように、次のディスプレイフレームのスキャンアウトの準備（たとえばｖｓｙｎｃ信号のアサート）において、ＥＤＳディスプレイハードウェア１２４は、ＥＤＳ慣性センサにアクセスすることにより、最新の頭部回転を表わす更新された頭部回転を求め、この更新された頭部回転から暫定頭部位置を求める。すなわち、アプリケーションハードウェア１２２によるテクスチャ１３２のレンダリング開始以降に生じた頭部回転を求める。ＥＤＳディスプレイハードウェア１２４は次に、この暫定頭部回転に基づいて各テクスチャ１３２をワープさせることにより、暫定回転補償ワープテクスチャ１３４を生成する。このテクスチャを、表示画像またはフレームとして、対応するディスプレイ１１２、１１４にスキャンアウトすることができる。
【００１４】
少なくとも１つの実施形態において、ＥＤＳディスプレイハードウェア１２４が用いるワーププロセスは、暫定頭部回転に基づいて、アプリケーションハードウェア１２２が求めた元の頭部回転とＥＤＳディスプレイハードウェア１２４が求めた更新後の頭部回転からホモグラフィ回転を求め、このホモグラフィ回転（線形変換の形態）をテクスチャ１３２に適用することにより、ワープされたまたは修正されたテクスチャ１３４を得ることを含む。さらに、接眼レンズ１１６、１１８は、接眼レンズを通して屈折するときに分かれる光の波長が異なることを原因とする、光学的歪みだけでなく色収差または色分解をもたらす場合がある。よって、ＥＤＳディスプレイハードウェア１２４が用いるワーププロセスは、光学的歪み、色収差、レンズのエッジの方向に向かって暗くなること、その他のソースからの複合テクスチャ等のうちの、１つ以上を補償し得る。以下でより詳細に説明するように、ホモグラフィ回転によって与えられる暫定ワープは次のようにして実現してもよい。すなわち、ホモグラフィ回転を、歪み／色収差補正プロセスが用いるルックアップテーブル（ＬＵＴ）値に適用することによって補償歪み（または「予歪み」）を導入し、次に、得られた修正後のＬＵＴ値をテクスチャ１３２に適用することにより、ホモグラフィ回転とその他の補正／補償プロセスとを同時に実現する。
【００１５】
別々のジャイロスコープまたはその他の慣性センサをアプリケーションハードウェア１２２およびＥＤＳディスプレイハードウェア１２４が用いることにより、または、アプリケーションハードウェア１２２およびＥＤＳディスプレイハードウェア１２４に対して同じ慣性センサの異なるサンプリングレートを用いることにより、アプリケーションハードウェア１２２およびＥＤＳディスプレイハードウェア１２４は、実質的に独立して動作することができ、その一方で、実質的な頭部回転に鑑みて動きから表示までのレイテンシを低減することができる。この独立性により、アプリケーションハードウェア１２２は、テクスチャ１３２を、ＥＤＳディスプレイハードウェア１２４のディスプレイフレームレートＹよりも低いレートＸ（すなわちＸ＜Ｙ）でレンダリングすることができる。このため、アプリケーションハードウェア１２２は、より低い性能状態で動作する可能性があり、ディスプレイシステム１００による消費電力および熱の発生を減じることができる。または、ＥＤＳディスプレイハードウェア１２４は、アプリケーションハードウェア１２２がテクスチャをレンダリングできるレートよりも高いレートでフレームを表示できる。説明のために、アプリケーションハードウェア１２２がある性能状態で動作することによりテクスチャが６０フレーム／秒（または６０ヘルツ）でレンダリングされる（すなわちレンダリングレートＸ＝６０Ｈｚ）と仮定する。このとき、テクスチャは、１６．６７ミリ秒（ｍｓ）ごとにレンダリングされる。しかしながら、頭部回転レートがたとえば１００度／秒の場合、ユーザの頭部は１６ｍｓの間に１．６度回転している可能性あり、したがって、レンダリングされたテクスチャが表わすシーンにおける腕の長さの場所にあるオブジェクトは、約２．８センチメートルまたはおよそ親指の幅だけ、目に見えて「オフセット」しているかもしれず、ユーザはこれをユーザの現在の頭部姿勢に基づいていると知覚したかもしれない。しかしながら、ＥＤＳディスプレイシステム１２４がフレームを１２０フレーム／秒で表示するよう動作している（すなわちディスプレイフレームレートＹ＝１２０Ｈｚ）と仮定すると、同じテクスチャから２つのディスプレイフレームが生成されるかもしれず、そのうち一方のディスプレイフレームは、テクスチャがレンダリングされた時点から８ｍｓの時点で検出された暫定頭部回転に基づいてワープされており、他方のディスプレイフレームは、その後８ｍｓの時点で検出された次の暫定頭部回転に基づいている。再び頭部回転レートが１００度／秒であると仮定すると、「補償されていない」頭部回転は、最大でわずか０．８度であり、したがって、表示されたフレームにおいて表わされた腕の長さの場所にあるオブジェクトの位置と、ユーザの頭部１０４の現在の姿勢に基づいてユーザが知覚するであろう位置との間の、潜在的なオフセットは、最大でわずか１．４ｃｍにすぎない。
【００１６】
アプリケーションハードウェア１２２とＥＤＳディスプレイハードウェア１２４とが異なるレートで動作できるようにすることに加えて、アプリケーションハードウェアとＥＤＳディスプレイハードウェアとを分離することによっても、ディスプレイシステム１００は、アプリケーションハードウェア１２２によるフレームのドロップからより簡単に回復することができる。なぜなら、ＥＤＳディスプレイハードウェア１２４は、ドロップされたテクスチャ１３２を、ＥＤＳ慣性センサから求めた頭部回転更新に基づいて新たなディスプレイフレーム用に前のテクスチャ１３２を引続きワープさせることによって、補償できるからである。
【００１７】
数多くの実装例において、ディスプレイ１１２、１１４は、ラスタースキャンに基づいて動作するディスプレイ装置を含む。すなわち、画素データのラインが、スキャンインされ、一般的に「ラスタースキャン順序」と呼ばれている順序で表示される。ほとんどのラスタースキャンディスプレイにおいて、スキャンアウトは一般的に画素の最上行から始まり下方に向かい画素の最下行で終わる。テクスチャのレンダリングおよびその後の表示のためのテクスチャの処理と同様、このラスタースキャンプロセスは、動きから表示までのレイテンシに悪影響を与えるレイテンシをもたらす。説明のために、たとえば６０Ｈｚのディスプレイレートの場合、最悪のケースのシナリオでは、ディスプレイシステムはディスプレイフレームのスキャンアウトを終えるのに１６ｍｓを要する場合があり、最後の行は最上行から約１６ｍｓ後にスキャンアウトされることになる。よって、このスキャンアウトレイテンシによって、特にフレームの最下部に向かう行において表わされているオブジェクトの位置の不一致が、ユーザに生じる。この効果が特に顕著であるのは、ＨＭＤ１０２に組込まれ通常は縦長の向きで動作する装置の向きを横長の向きに変えてＨＭＤ１０２に組込む場合である（たとえばGoogle（登録商標） Cardboard VRヘッドセットで見られるようにコンピュータによって実現される携帯電話の向きを横向きにして別の目的のために使用する場合）。このような場合、ラスタースキャンの順序は水平方向になり、水平方向は、ほとんどの頭部回転が生じやすい方向なので、動きから表示までのレイテンシ効果が悪化することになる。
【００１８】
このように、ラスタースキャンディスプレイを用いるＨＭＤ１０２の実装例におけるスキャンアウト遅延を補償するために、少なくともいくつかの実施形態では、上記ＥＤＳプロセスを、スライスごとに実行してもよい。この場合、各スライスは、ディスプレイフレームの走査線のうちの１つ以上からなるサブセットを表わす。すなわち、各スライスが表示のために順番に処理されるときに、ＥＤＳディスプレイハードウェア１２４は、このスライスに関して更新された頭部回転を求め、このスライスについて更新後の頭部回転に基づいて新たなホモグラフィ回転を求め、この新たなホモグラフィ回転をスライスに適用することにより、このスライスによって表わされるディスプレイフレームの部分をワープさせる。このようにして、頭部の回転を原因とする影響およびラスタースキャンラインの順序の変更を原因とする遅延を、スライスがユーザに対して表示される実際の時点とより整合した暫定頭部回転によって各スライスをワープさせることによって緩和し得る。
【００１９】
ＥＤＳディスプレイハードウェア１２４が更新された頭部回転を求める頻度の方が、アプリケーションハードウェア１２２が頭部回転を求める頻度よりも高いので、少なくとも１つの実施形態において、ＥＤＳディスプレイハードウェア１２４は、アプリケーションハードウェア１２２が使用するジャイロスコープ（またはその他の慣性センサ）のサンプリング周波数（たとえば１００〜４００Ｈｚ）よりも大幅に高いサンプリング周波数（たとえば１ｋＨｚ以上）を有するジャイロスコープ（またはその他の慣性センサ）を実装する。そうすることで、表示のためにレンダリングされたテクスチャを回転ワープさせるように動作するときにＨＭＤ１０２の最新頭部回転をより精度高く求めるのに必要な改善された回転分解能を、ＥＤＳディスプレイハードウェア１２４に与える。これに代えて、単一のジャイロスコープを実装することにより、このジャイロスコープのセンサ状態をレートＸでサンプリングしてアプリケーションハードウェア１２２の第１のサンプルストリームを生成し、さらにレートＹ（Ｙ＞Ｘ）でサンプリングしてＥＤＳディスプレイハードウェア１２４用の第２のサンプルストリームを生成してもよい。このように、２つの別々のジャイロスコープまたはその他の慣性センサを参照することは、異なるサンプルレートを有するが同一であるジャイロスコープまたはその他の慣性センサを参照することであってもよい。
【００２０】
図２は、本開示の少なくとも１つの実施形態に従う、図１のディスプレイシステム１００の画像レンダリングおよびディスプレイシステムの、一例としてのハードウェア構成２００を示す。先に述べたように、ハードウェア構成２００はアプリケーションハードウェア１２２を含み、アプリケーションハードウェア１２２は、ＶＲまたはＡＲアプリケーション（本明細書において「ＶＲ／ＡＲアプリケーション２０２」と呼ばれる）を実行することにより、ユーザの頭部１０４またはＨＭＤ１０２の現在の姿勢からのシーンを表わすＶＲまたはＡＲコンテンツをレンダリングすることに向けられる。ＶＲまたはＡＲコンテンツは、片目ごとに一連のテクスチャを含む。ハードウェア構成２００はさらにＥＤＳディスプレイハードウェア１２４を含み、ＥＤＳディスプレイハードウェア１２４は、上記一連のテクスチャによって表わされるＶＲまたはＡＲコンテンツを表示することに向けられ、ＥＤＳディスプレイハードウェア１２４は、ＥＤＳプロセスを実現することにより、レンダリングされたテクスチャ間の暫定頭部回転を補償する。
【００２１】
示されている例において、ハードウェア構成２００は、アプリケーションプロセッサ２０４と、システムメモリ２０６と、センサハブ２０８と、内部管理部（internal management unit）２１０とを含む。いくつかの実施形態において、ＨＭＤ１０２は、視覚的位置推定もしくは視覚的遠隔測定を目的とするまたはＡＲ機能をサポートするローカル環境の取得されたイメージをリアルタイムで表示するために、画像キャプチャを組込んでいてもよい。このような実施形態において、ハードウェア構成２００はさらに、たとえば、１つ以上の画像センサ２１２、２１４と、構造化された光（structured-light）または飛行時間（time-of-flight）（ＴｏＦ）型深度センサ２１６とを含んでいてもよい。
【００２２】
アプリケーションＩＭＵ２１０は、たとえば、ジャイロスコープ２１８と磁力計２２０と加速度計２２２とを含む、ＨＭＤ１０２の姿勢の追跡を容易にするための１つ以上の慣性センサを含む。Bosch GmBhのSensortec（商標） BMI160は、市場で入手できるＩＭＵ２１０の実装例である。センサハブ２０８は、ＩＭＵ２１０と、画像センサ２１２、２１４と、深度センサ２１６とに結合され、アプリケーションプロセッサ２０４と、ＩＭＵ２１０、画像センサ２１２、２１４、深度センサ２１６、およびディスプレイシステム１００のその他のセンサとの間における制御信号およびデータの転送を管理するように動作する。Movidius Ltd.のMyriad（商標）２ビジョン処理ユニット（ＶＰＵ）は、市場で入手できるセンサハブ２０８の実装例である。アプリケーションプロセッサ２０４は、１つ以上の中央処理装置（ＣＰＵ）、グラフィック処理装置（ＧＰＵ）、または１つ以上のＣＰＵと１つ以上のＧＰＵとを組合わせたものを含む。Qualcomm IncorporatedのSnapdragon（商標）８１０ＭＳＭ８９９４システムオンチップ（ＳｏＣ）は、市場で入手できるアプリケーションプロセッサ２０４の実装例である。
【００２３】
示されている例において、ＥＤＳディスプレイハードウェア１２４は、コンポジタ２２４と、左目用ディスプレイ１１２と、右目用ディスプレイ１１４と、ＥＤＳ  ＩＭＵ２２６とを含む。コンポジタ２２４は、たとえばＡＳＩＣ、プログラマブルロジック、またはこれらを組合わせたものとして実装し得るハードウェア装置であり、左目用ディスプレイ１１２を駆動するための左ディスプレイコントローラ２２８と、右目用ディスプレイ１１４を駆動するための右ディスプレイコントローラ２３０とを含む。ＥＤＳ  ＩＭＵ  ２２６は、ジャイロスコープ２３２等の、ＥＤＳディスプレイハードウェア１２４のためにＨＭＤ１０２の頭部回転を追跡するための１つ以上の慣性センサを含む。先に述べたように、２つの別々のジャイロスコープ２１８、２３２を実装するのではなく１つのジャイロスコープを異なるサンプリングレートでサンプリングすることにより２つの異なるサンプルストリームを生成してもよい。これらのサンプルストリームのうちの一方はジャイロスコープ２１８として機能し他方はジャイロスコープ２３２として機能する。この場合、ジャイロスコープ２１８を参照することは、この１つのジャイロスコープから生成された第１のサンプルストリームを参照することであり、ジャイロスコープ２３２を参照することは、同じくこの１つのジャイロスコープから生成されたがサンプルレートがより高い第２のサンプルストリームを参照することである。
【００２４】
動作時において、アプリケーションプロセッサ２０４は、（たとえばシステムメモリ２０６に格納されている）ＶＲ／ＡＲアプリケーション２０２を実行することにより、ユーザに対してＶＲ／ＡＲ機能を提供する。このプロセスの一部として、ＶＲ／ＡＲアプリケーション２０２は、アプリケーションプロセッサ２０４を操作することにより、各目の一連のテクスチャ（たとえば図１のテクスチャ１３２）をレンダリングレートＸでレンダリングする。各テクスチャは、完全にコンピュータで生成された視覚コンテンツ、または、（画像センサ２１２、２１４を介して）取得したイメージとコンピュータによって生成されたオーバレイとの組合わせである視覚コンテンツを含む。各テクスチャの視覚コンテンツは、テクスチャが決定された時点における、対応するユーザの頭部の姿勢（またはＨＭＤ１０２の姿勢）からのシーンを表わす。したがって、各テクスチャのレンダリングに備えて、アプリケーションプロセッサ２０４は、ＩＭＵ２１０のジャイロスコープ２１８、磁力計２２０、および加速度計２２２から現在のサンプルを取得し、これらの慣性センサの測定値からユーザの頭部の現在の姿勢と回転を求める。現在の姿勢と回転を求めるためにＩＭＵ２１０を用いる代わりにまたはそれに加えて、アプリケーションプロセッサ２０４は、１つ以上の画像センサまたは深度センサからの情報を用い、１つ以上の視覚遠隔測定または同時位置推定およびマッピング（simultaneous localization and mapping）（ＳＬＡＭ）技術を利用して、現在の姿勢と回転を決定、検証、または修正してもよい。求めた頭部姿勢から、アプリケーションプロセッサ２０４は、求めた頭部の向きおよび回転からのシーンの立体的な眺めを協働して表わす一対のテクスチャをレンダリングする。その後、レンダリングされた一対のテクスチャは、ディスプレイメモリ２３４に実装されているフレームバッファに格納される。ディスプレイメモリ２３４は、システムメモリ２０６の一部であってもよく、別のグラフィックメモリであってもよい。
【００２５】
並行して、コンポジタ２２４は、レンダリングされたテクスチャに基づいてディスプレイフレームを生成し、生成したディスプレイフレームに基づいてディスプレイ１１２、１１４を駆動するように、動作する。このプロセスの一部として、コンポジタ２２４は、ＥＤＳプロセスを実現することにより、暫定頭部回転を求め、この暫定頭部回転に基づいて上記一対のテクスチャをワープさせることにより、ディスプレイ１１２、１１４にディスプレイフレームが表示される時点において実際の頭部の姿勢により整合している一対のディスプレイフレームを生成する。
【００２６】
以下で図３〜図５を参照しながらより詳細に説明するように、いくつかの実施形態において、コンポジタ２２４は、ジャイロスコープ２１８からのサンプルからアプリケーションプロセッサ２０４が求めた初期頭部回転と、ジャイロスコープ２３２からのサンプルからコンポジタ２２４が求めた更新された頭部回転との差に基づいて、暫定頭部回転を求める。よって、いくつかの実施形態において、ジャイロスコープ２１８およびジャイロスコープ２３２は、ＨＭＤ１０２の所与の回転運動に対して同様の回転を登録するように、精密に較正される。加えて、確実にジャイロスコープ２１８、２３２を正確に同期させることでそれぞれのセンササンプルを時間的に相関させることができるよう、少なくとも１つの実施形態において、ハードウェア構成２００は、共通クロック信号（「ＣＬＫ」として示される）をアプリケーションハードウェア１２２およびＥＤＳディスプレイハードウェア１２４の構成要素間で送る、たとえばクロック基準２３６の形態の同期機構を含む。
【００２７】
図３は、本開示の少なくとも１つの実施形態に従う、ＥＤＳディスプレイハードウェア１２４の実装例を示す。示されている例において、ＥＤＳディスプレイハードウェア１２４のコンポジタ２２４は、構成ストア３０２と、積分器（integrator）要素３０４と、（図２のディスプレイコントローラ２２８、２３０のうちのいずれかを表わす）ディスプレイコントローラ３０６とを含む。ディスプレイコントローラ３０６は、暫定回転変換要素３０８と、テクスチャワープ要素３１０とを含む。暫定回転変換要素３０８は、暫定回転計算要素３１２と、ホモグラフィ回転要素３１４とを含み得る。これらの構成要素の動作について以下でより詳細に説明する。
【００２８】
図４および図５は、図２および図３のハードウェア構成２００の場合のＥＤＳプロセスの実装例を示す。具体的には、図４のＥＤＳプロセス４００は、求めた暫定頭部回転に基づいてテクスチャを回転させた後に光学的歪みおよび色収差を回転させたテクスチャに適用するＥＤＳプロセスの一例を示すのに対し、図５のＥＤＳプロセス５００では、テクスチャをレンダリングプロセス中に光学的に歪ませ、歪ませたテクスチャの「歪みを取除き」、回転変換し、その後「再び歪ませる」。以下でさらに説明するように、ＥＤＳプロセス５００は、ＥＤＳプロセス４００と比較すると、アプリケーションプロセッサ２０４とコンポジタ２２４との間の帯域幅要求を減じる。ＥＤＳプロセス５００の場合、アプリケーションプロセッサ２０４がテクスチャを予め歪ませるのでテクスチャの表示解像度を上回るマージンが不要であるからであるが、その代わりに追加の計算、より多くのメモリアクセスが必要であり、追加のサンプリングステップが原因で品質の損失が生じる。
【００２９】
次に図４を参照して、ＥＤＳプロセス４００は、ＡＲまたはＶＲコンテンツのレンダリングおよび表示に備えてディスプレイシステム１００を起動することから始まる。先に述べたように、アプリケーションハードウェア１２２およびＥＤＳディスプレイハードウェア１２４は別々のジャイロスコープを用い得るので、初期化プロセスは、ブロック４０２で、センサハブ２０８またはディスプレイシステムのその他の構成要素が、ジャイロスコープ２１８、２３２を個別にかつ互いに関して較正することを含み得る。ジャイロスコープ２１８、２３２として実装する代わりに同一のジャイロスコープを用いて異なるサンプルレートの２つの異なるサンプルストリームを生成する場合、初期化プロセスは、たとえば、これらのサンプルストリーム各々についてサンプリングレートを設定することを含み得る。さらに、ブロック４０４で、ディスプレイシステム１００は、ディスプレイフレーム生成中にコンポジタ２２４が使用するさまざまなパラメータを初期化し、これらのパラメータをコンポジタ２２４の構成ストア３０２に格納する。
【００３０】
説明のために、上記のように、ＨＭＤ１０２の接眼レンズ１１６、１１８は、光学歪みおよび色収差を表示された画像に導入する。これは、画像が表示される前に補正歪みによって打消すことができる。一般的に、これらの補正プロセスは、非線形歪みプロセスであり、したがって、変換行列を適用して簡単に実現することはできない。代わりに、テクスチャ空間から歪みスクリーン空間への変換を、たとえば歪み変換の離散化を表わす２Ｄルックアップテーブル（ＬＵＴ）を用いて実現することができる。この場合、各目には、それぞれ左目用および右目用の２Ｄ  ＬＵＴ３１６、３１８（図３）等の別々の２Ｄ  ＬＵＴが割当てられる。各ＬＵＴエントリは３対のテクスチャ座標（色収差補正ができるよう各色ごと）を含む。必要メモリを減じるため、各２Ｄ  ＬＵＴは、表示解像度と比較して低い解像度で実現されてもよい。たとえば、各２Ｄ  ＬＵＴは、ディスプレイ１１２、１１４の解像度の１０分の１の解像度であってもよい。したがって、ディスプレイの解像度が１４４０×１４４０である場合、２Ｄ  ＬＵＴ３１６、３１８各々は、１４４×１４４のＬＵＴエントリを有し得る。このような場合、所与の画素位置の周辺におけるＬＵＴエントリ間の線形補間を歪み変換に使用してもよい。
【００３１】
ブロック４０４で初期化され構成ストア３０２に格納されるパラメータはまた、一対の射影行列３２０、３２２（図３）を含む。これらは、一方が左目用で他方が右目用であり、対応する目に関する、目からのテクスチャ変換（texture-from-eye transform）を表わす。本明細書で説明する例において、射影行列３２０、３２２は各々、対応する４×４の行列として実現される。初期化され構成ストア３０２に格納されるパラメータはまた、ジオプター設定または瞳孔間距離（ＩＰＤ）設定等のその他の構成設定３２３を含み得る。少なくとも１つの実施形態において、ブロック４０４の初期化プロセスは、２Ｄ  ＬＵＴ３１６、３１８または射影パラメータ行列３２０、３２２の構成に全体として影響し得るＨＭＤ１０２またはディスプレイシステム１００の光学パラメータの変更に応じて繰返されてもよい。
【００３２】
初期化が完了すると、ＥＤＳプロセス４００は、並行して実行される２つのサブプロセスに分かれる。これらのサブプロセスは、アプリケーションハードウェア１２２によって実行されるサブプロセス４０６と、ＥＤＳディスプレイハードウェア１２４によって実行されるサブプロセス４０８とである。サブプロセス４０６は、ユーザの頭部１０４／ＨＭＤ１０２の現在の姿勢から見た３Ｄシーンを表わす一対のテクスチャをレンダリングするプロセスを表わす。したがって、ブロック４１０で開始されるサブプロセス４０６が繰返され、ブロック４１０では、アプリケーションプロセッサ２０４がアプリケーションＩＭＵ２１０の慣性センサにアクセスして現在の頭部の姿勢と回転を求める。これは一般的に、ジャイロスコープ２１８から１つ以上のセンササンプルを取得して現在の頭部回転を求めることを含む。ブロック４１２で、アプリケーションプロセッサ２０４は、（ＶＲ／ＡＲアプリケーション２０２によって指定される）３Ｄシーンを、ブロック４１０で求めた頭部の姿勢と回転に基づいて、それぞれの目に対応する一対のテクスチャ３２４、３２５（図３）にレンダリングする。少なくとも１つの実施形態において、アプリケーションプロセッサ２０４は、４１０で求めた頭部回転を用い、この頭部回転に対応する時点から未来の特定の時点までにおける頭部回転の変化を予測する。先に述べたように、アプリケーションプロセッサ２０４は、ディスプレイメモリ２３４に格納するためにテクスチャをレンダリングする。ＥＤＳプロセス４００において、レンダリングされたテクスチャ３２４、３２５は歪まされていない（すなわち光学歪み補正および色収差補正のための補正用予歪みはまだ与えられていない）。したがって、レンダリングされたテクスチャ３２４、３２５のサイズは、ディスプレイ１１２、１１４の解像度およびさまざまな光学パラメータ（ユーザがジオプター調整を実行するまたはＩＰＤを調整するときのように、実行時に異なり得る）の関数であり、ディスプレイ１１２、１１４の解像度よりも幾分大きい。説明のために、ディスプレイの解像度が１４４０×１４４０画素とすると、各次元においてたとえば５４０画素のマージンが含まれ、したがって、画素解像度が２０００×２０００である歪ませていないテクスチャ３２４、３２５をレンダリングするのが適切であろう。
【００３３】
ブロック４１４で、アプリケーションプロセッサ２０４は、コンポジタ２２４に、ブロック４１０で求めた頭部回転の表現と、この頭部回転を求めるのに使用した最後のジャイロスコープセンササンプルに対応付けられたタイムスタンプの表現とを送る。少なくとも１つの実施形態において、この頭部回転の表現は（「ｑ１」で示される）四元数を含む。具体的に、四元数ｑ１は、最後のジャイロスコープセンササンプルから検出した回転から、未来のある時点の予測される頭部回転までの、回転デルタを表わし得る。その他の実施形態において、頭部回転（または予測される回転デルタ）は、たとえば直交行列によって表わされてもよい。四元数ｑ１とタイムスタンプを提供することにより、アプリケーションプロセッサ２０４が一対のテクスチャ３２４、３２５をレンダリングする際に使用する頭部回転と、頭部回転を求めたまたは取得した時点とを、ＥＤＳディスプレイハードウェア１２４に知らせることになる。一対のテクスチャ３２４、３２５がレンダリングされタイムスタンプに対応する頭部回転が伝達されると、このフローはブロック４１０に戻り、サブプロセス４０６の次の繰返しが実行される。先に述べたように、テクスチャレンダリングプロセスは、毎秒Ｘ回のテクスチャレンダリングというレートで実行されるので、サブプロセス４０６は、毎秒Ｘ回の繰返しというレートで実行される。
【００３４】
サブプロセス４０６のテクスチャレンダリング動作と同時に、ＥＤＳディスプレイハードウェア１２４は、サブプロセス４０８を繰返すことにより、最新のレンダリングされた一対のテクスチャ３２４、３２５から画像フレームを生成して表示する。したがって、サブプロセス４０６を繰返すことにより新たな一対のテクスチャ３２４、３２５をレンダリングすると、それは対応するサブプロセス４０８の繰返しをトリガすることになる。最初に、ブロック４１６で、ＥＤＳディスプレイハードウェア１２４は、最新の一対のテクスチャ３２４、３２５の生成に注目し、暫定回転計算要素３１２は対応する頭部回転を表わす四元数ｑ１をアプリケーションプロセッサ２０４から受ける。
【００３５】
先に述べたように、ディスプレイシステム１００は、スライスごとのＥＤＳプロセスを用いてもよい。この場合、各スライスは、ディスプレイフレームの１以上の走査線／画素行を表わす。したがって、１つのスライスは、ディスプレイフレームの走査線のサブセットであってもよく、または、いくつかの例において、ディスプレイフレームを、大きな１つのスライスを構成するものであるとみなしてもよい。よって、以下のプロセスを説明し易くするために、「スライス」という用語は、スライスがこのようにして実現される実装例ではディスプレイフレームの走査線のサブセットを指してもよく、または、「スライス」は、ＥＤＳプロセスがフレームごとに実行される実装例ではディスプレイフレー全体を指してもよい。
【００３６】
最新のテクスチャに基づくディスプレイフレームのスライスの表示に備えて、ブロック４１８で、暫定回転計算モジュール３１２は、更新された頭部回転（すなわち、ユーザまたはＨＭＤ１０２の頭部回転の現在の測定値）を取得する。少なくとも１つの実施形態において、更新された頭部回転は、ＥＤＳ  ＩＭＵ２２６のジャイロスコープ２３２に結合された積分器要素３０４によって与えられる。積分器要素３０４はスライディングウィンドウバッファ３２８（図３）を含み、このバッファは、ジャイロスコープ２３２からのｋの最新ジャイロスコープセンササンプル３２８（図３）、および、対応するジャイロスコープサンプル３２８の受信または生成に対応付けられたタイムスタンプを格納する。このタイムスタンプはクロック基準ＣＬＫに同期している。したがって、更新された頭部回転を取得するために、ブロック４１４で、暫定回転計算要素３１２は、アプリケーションプロセッサ２０４から提供された四元数ｑ１に対応付けられたタイムスタンプを積分器要素３０４に提供し、積分器要素３０４は、アプリケーションプロセッサ２０４から提供されたタイムスタンプに等しいまたはその後のタイムスタンプを有すると識別されたスライディングウィンドウバッファ３２６におけるジャイロスコープサンプル３２５をフォワード積分することにより、（図３および図４において「ｑ２」で示される）四元数、または、ジャイロスコープ２３２によって測定された特定の時点からの頭部回転のその他の表現を取得する。積分器要素３０４から与えられる四元数ｑ２は、このタイムスタンプによって表わされる時点から現時点までの回転デルタの表現を含み得る。このような例において、アプリケーションプロセッサ２０４から与えられる四元数ｑ１は、時間Ａと時間Ｉとの間で生じる予測される回転の変化を表わし、四元数ｑ２は、時間Ａと時間Ｊとの間で生じる推定または測定された回転の変化を表わすことがわかるであろう。この場合のＩとＪは異なる時点であり得る。
【００３７】
ブロック４２０で、ホモグラフィ回転要素３１４は、アプリケーションプロセッサ２０４によって求められた初期頭部回転と、ブロック４１８において求められた更新された頭部回転との間のホモグラフィ回転を求める。すなわち、ホモグラフィ回転要素３１４は、アプリケーションプロセッサ２０４が対応するテクスチャのレンダリングに使用した頭部回転と、積分器要素３０４によって測定された最近の頭部回転との間の暫定頭部回転を表わすホモグラフィ回転変換を求める。より具体的には、先に述べたように、アプリケーションプロセッサ２０４から提供される四元数ｑ１は、与えられたタイムスタンプによって表わされる時間Ａから未来の時間Ｉまでの回転デルタの予測を含み得るのに対し、積分器要素３０４から提供される四元数ｑ２は、時間Ａから現在の時間Ｊまでの回転デルタの表現を含み得る。ＩとＪは異なる時点であり得るので、一対のテクスチャ３２４、３２５のレンダリングのベースとして用いられる予測される頭部回転は、現時点までに実際に発生した頭部回転と一致していない可能性がある。このため、ホモグラフィ回転要素３１４が求めたホモグラフィ回転を用いて、この暫定頭部回転（すなわち、テクスチャをレンダリングするのに使用された頭部回転と現時点までに発生した実際の頭部回転との差）を補正するかそうでなければ補償する。
【００３８】
したがって、少なくとも１つの実施形態において、暫定回転計算要素３１２は、一対のテクスチャのレンダリングがアプリケーションプロセッサ２０４によって開始された時点以降に発生した頭部回転を表わす四元数（「Δｑ」で示される）を求める。すなわち、四元数Δｑは、四元数ｑ１とｑ２の差として（Δｑ＝ｑ１−ｑ２）、または、アプリケーションプロセッサ２０４が求めた回転量とコンポジタ２２４が求めた回転量の差として、求められる。ホモグラフィ回転要素３１４は次に、射影パラメータ行列３１８、３２０にアクセスし、四元数Δｑと対応する目の射影パラメータ行列（たとえば４×４行列３１８、３２０に基づく４×４行列）を用いて、右目と左目各々について一対のホモグラフィ回転変換を計算する。説明のために、この計算は以下の疑似コードで表わすことができる。
【００３９】
【数１】
2018525693.tif 000003
【００４０】
ブロック４２２で、コンポジタ２２４は、ブロック４２０で求めた一対のホモグラフィ回転変換各々を、対応するテクスチャの選択されたスライスに適用することにより、このスライスを暫定頭部回転に鑑みて回転させる。ブロック４２４で、コンポジタ２２４は、光学歪み補正および色収差補正のうちの一方または双方を、回転させたスライスに適用する。ホモグラフィ回転は、線形変換なので、光学／色収差補正プロセスに使用される２Ｄ  ＬＵＴに適用することができ、得られた修正後の２Ｄ  ＬＵＴをその後対応するスライスに適用することができる。すなわち、レンズによって生じた光学歪みおよび色収差そのものを補償するために追加された補償歪みを回転させ、この回転させた補償歪みを次にテクスチャに適用することにより、テクスチャの回転と、適切な補正歪みの適用とを同時に行なってもよい。
【００４１】
このように、図４に示される実施形態において、ブロック４２２および４２４のプロセスを、ブロック４２３においてホモグラフィ回転要素３１４が実行してもよい。ブロック４２３において、ホモグラフィ回転要素３１４は、構成ストア３０２の２Ｄ  ＬＵＴ３１６、３１８にアクセスし、左目用のホモグラフィ回転変換を、現在のスライスに対応する２Ｄ  ＬＵＴ３１６の部分に適用することにより、ワープされた２Ｄ  ＬＵＴ部分３３０（図３）を生成し、右目用のホモグラフィ回転変換を、現在のスライスに対応する２Ｄ  ＬＵＴ３１８の部分に適用することにより、ワープされた２Ｄ  ＬＵＴ部分３３２（図３）を生成する。その後、テクスチャワープ要素３１０は、ブロック４２５において、ワープされた２Ｄ  ＬＵＴ部分３３０、３３２を、現在のスライスに対応付けられたテクスチャ３２４、３２５の部分にそれぞれ適用することにより、左目用のディスプレイフレームおよび右目用のディスプレイフレーム各々に対して回転ワープされ歪まされたスライスを生成する。先に述べたように、光学／色補正プロセスに使用される２Ｄ  ＬＵＴは、対応するディスプレイフレームよりも解像度が低い場合があるので、テクスチャワープ要素３１０は、対応するワープされた２Ｄ  ＬＵＴのテクスチャ座標（ＬＵＴエントリ）間のバイリニア補間を実行し、対応するテクスチャを、バイリニアフィルタリングで３回（各色１回）サンプリングすることにより、最終画素色を計算し、これは次に、ディスプレイの対応する画素位置を照明するのに使用するために対応するディスプレイにスキャンアウトされる。
【００４２】
先に述べたように、いくつかの実施形態において、コンポジタ２２４はスライスごとに各テクスチャを処理する。各スライスは、そのスライスに対して更新された頭部回転四元数に基づいて回転ワープされる。しかしながら、いくつかの実装例において、このプロセスは、スライス内にシアリングアーティファクト（shearing artifact）を導入してもよい。したがって、いくつかの実施形態において、コンポジタ２２４は、シアー補正プロセスを用いてもよい。この場合、コンポジタ２２４は、スライスの先端（すなわちスライスの最初の線）が表示される時点の頭部回転四元数と、スライスの末端（すなわちスライスの最後の線）が表示される時点の頭部回転四元数とを予測し、スライスの線全体についてこれら２つの予測される回転間の頭部回転を線形補間する。すなわち、連続する各線は回転ワープされ、予想された２つの頭部回転間の線形補間に基づいて前の線の頭部回転は増分調整される。これには、各スライス内で頭部回転ワープを平滑化するという効果がある。テクスチャの各スライスを順次処理することは、連続するスライス間のティアリングアーティファクトを導入する可能性がある。したがって、いくつかの実施形態において、コンポジタ２２４はまた、ティアー補正プロセスを用いてもよく、この場合、コンポジタ２２４は、（上記のように）前のスライスの端部エッジについて推定された頭部回転四元数を、次のスライスの先端エッジの頭部回転四元数として用い（一方、引続き、この頭部回転四元数と次のスライスの端部エッジについて推定された頭部回転四元数との間の線形補間を用いる）、そうすることで、スライス間の回転変化をスムーズにする。
【００４３】
その他の実施形態において、ホモグラフィ回転要素３１４は、一対のホモグラフィ回転変換をテクスチャワープ要素３１０に提供する。これは先ず、ホモグラフィ回転変換を元のテクスチャに適用することにより、回転ワープされたテクスチャを生成し、次に、別の光学／色補正プロセスを元の２Ｄ  ＬＵＴ３１６、３１８を用いて実行することにより、左目用ディスプレイフレームおよび右目用ディスプレイフレーム各々の、歪んで回転ワープされた対応するスライスを生成する。いずれの手法でも、ブロック４２６において、得られた回転ワープされ歪ませたスライス各々が、対応するディスプレイ１１２、１１４のうちの一方にスキャンアウトされ、ユーザの対応する目に対して表示される。図４は、ブロック４２６のスキャンアウトプロセスを、スライスのための回転／歪みプロセスが完了した後に発生するものとして示しているが、いくつかの実装例において、回転ワープおよび歪みプロセスとスライスのスキャンアウトプロセスは同時であってもよい。この手法では、スライスの走査線の回転ワープ／歪み処理が終了してから、走査線を対応するディスプレイにスキャンアウトする一方で、回転ワープ／歪み処理が次の線に対して開始される。
【００４４】
スライスに対する回転ワープおよび光学／色補正プロセスが完了すると、サブプロセス４０８は、ブロック４１８に戻り、ディスプレイフレームの次のスライス（または、前のスライスがディスプレイフレームの最後のスライスであった場合は次のディスプレイフレーム）に対してもう一度繰返される。先に述べたように、ＥＤＳディスプレイハードウェア１２４は、フレームレートＹでディスプレイフレームをスキャンアウトするように動作し、Ｙは、アプリケーションハードウェア１２２のテクスチャレンダリングレートＸよりも遥かに高い場合がある。このため、サブプロセス４０８を繰返すことにより、ＥＤＳディスプレイハードウェア１２４は、アプリケーションハードウェア１２２によってレンダリングされた各テクスチャ対に対して複数のディスプレイフレームを生成して表示する場合がある。しかしながら、このようにして生成された各ディスプレイフレームは、対応する更新された頭部回転に基づいて、テクスチャ対によって表わされる元の眺めから回転しているので、表示された各フレームは、ユーザが知覚する眺めにより近いシーンの眺めを示し、したがって、ユーザの方向感覚喪失を緩和する役割を果たす。加えて、ディスプレイフレームを生成するプロセスは、テクスチャレンダリングプロセスからある程度分離されているので、ディスプレイシステム１００は、アプリケーションハードウェア１２２によるドロップされたフレームについて回復力が高い。
【００４５】
次に図５のＥＤＳプロセス５００を参照すると、このプロセスは、ＡＲまたはＶＲコンテンツのレンダリングおよび表示に備えてディスプレイシステム１００を起動することから始まり、ブロック５０２で、ジャイロスコープ２１８、２３２を較正し同期させることと、ブロック５０５で、コンポジタ２２４が使用するパラメータを初期化することとを含み得る。これは、ＥＤＳプロセス４００のブロック４０２および４０４を参照して先に説明したものと同様である。しかしながら、ＬＵＴ３１６、３１８および一対の射影パラメータ行列３２０、３２２を初期化することに加え、ブロック５０２の初期化プロセスはさらに、以下でより詳細に説明するように、歪ませたテクスチャの「歪みを取除く」ために使用される２Ｄ  ＬＵＴ（図示せず）の初期化を含み得る。しかしながら、このようにＬＵＴの歪みを取除くことは、光学的に歪ませたテクスチャの歪みを取除くことのみを目的として用いられ、したがって、歪みが取除かれていないＬＵＴの各ＬＵＴエントリには、ＬＵＴ３１６、３１８のＬＵＴエントリごとの３つのテクスチャ座標と比較して、たったつのテクスチャ座標しか有しない。
【００４６】
初期化後に、ＥＤＳプロセス５００は、同時に実行される２つのサブプロセス５０６、５０８に分割され、そのうち一方は、アプリケーションハードウェア１２２が実行するサブプロセス５０６であり、他方は、ＥＤＳディスプレイハードウェア１２４が実行するサブプロセス５０８である。サブプロセス５０６は、ＥＤＳプロセス４００のサブプロセス４０６に対応するので、ユーザの頭部１０４／ＨＭＤ１０２の現在の姿勢および回転の視点から見た３Ｄシーンを表わす一対のテクスチャをレンダリングするプロセスを表わす。したがって、サブプロセス５０６の繰返しはブロック５１０から始まり、ブロック５１０では、アプリケーションプロセッサ２０４が、現在の頭部の姿勢および回転を求め、ブロック５１２では、現在の頭部の姿勢および回転に基づき一対のテクスチャをレンダリングする。これは、ブロック４１０および４１２に関して先に述べたのと同様である。しかしながら、ＥＤＳプロセス５００において、サブプロセス５０６はさらに、ブロック５１２でレンダリングされたテクスチャの対に対し、光学歪み補正プロセスを適用することにより、一対のテクスチャ３２４、３２５を生成することを含む。このように、図５の実施形態では、テクスチャ３２４、３２５に予め歪みを与えることにより、接眼レンズ１１６、１１８によって後に導入される光学収差を補償する。テクスチャ３２４、３２５はアプリケーションプロセッサにより予め歪みが導入されているので、歪んだテクスチャをディスプレイ１１２、１１４の解像度でレンダリングすればよく、マージンは不要である。説明のために、上記例で述べたように、ディスプレイの解像度が１４４０×１４４０画素とすると、歪みなしでレンダリングされるテクスチャ３２４、３２５は、２０００×２０００すなわち４，０００，０００画素の画素解像度を要するであろう。しかしながら、テクスチャに予め歪みが導入される場合マージンは不要なので、同じディスプレイ解像度に対し、歪みを伴いレンダリングされるテクスチャ３２４、３２５が要する画素解像度は、わずか１４４０×１４４０すなわち２，０７３，６００画素にすぎない。このため、ブロック５１３におけるテクスチャ３２４、３２５を予め歪ませるプロセスにより、ＥＤＳプロセス４００の歪みなしのテクスチャ手法と比較すると、必要な記憶空間は４０％以上少なくなる。サブプロセス５０６はさらに、ブロック５１４で、頭部回転（または頭部回転デルタ）を表わす四元数ｑ１と、対応するタイムスタンプを、コンポジタ２２４に送信することを含み、これは、ブロック４１４を参照して先に述べたのと同様である。次に、サブプロセス５０６の次の反復が、次の一対のテクスチャに対しテクスチャレンダリングレートＸで実行される。
【００４７】
サブプロセス５０６のテクスチャレンダリング動作と同時に、ＥＤＳディスプレイハードウェア１２４は、サブプロセス５０８を繰返すことにより、最新のレンダリングされた一対のテクスチャ３２４、３２５から画像フレームを生成して表示する。したがって、サブプロセス５０６を繰返すことにより新たな一対のテクスチャ３２４、３２５をレンダリングすると、それは対応するサブプロセス５０８の繰返しをトリガすることになる。最初に、ブロック５１６で、ＥＤＳディスプレイハードウェア１２４は、最新の一対のテクスチャ３２４、３２５の生成に注目し、暫定回転計算要素３１２は対応する頭部回転を表わす四元数ｑ１をアプリケーションプロセッサ２０４から受ける。
【００４８】
テクスチャ３２４、３２５はブロック５１３において予め歪ませているので、テクスチャ３２４、３２５は、回転ワープ前に「歪みを取除く」必要がある。したがって、サブプロセス５０８は、ブロック５１２で、歪ませたテクスチャ３２４，３２５の歪みを取除く追加プロセスを含む。したがって、テクスチャワープ要素３１０は、ブロック５０４で初期化された一対の歪んでいないＬＵＴにアクセスし、歪んでいない各ＬＵＴを、対応する歪んだテクスチャに適用することによって歪んでいないテクスチャを生成してもよい。よって、アプリケーションプロセッサ２０４がテクスチャ３２４、３２５に歪みを予め与えることで、歪ませたテクスチャを格納するのに使用されるフレームバッファのサイズは、ＥＤＳプロセス４００の歪んでいないテクスチャ３２４、３２５と比較して、低減し得るが、予め歪みを与えておいてからその後その歪みを取除くプロセスは、アプリケーションプロセッサ２０４およびコンポジタ２２４双方による追加のメモリアクセスおよび計算を必要とする。
【００４９】
テクスチャ３２４、３２５が歪んでいない形態に戻された状態で、ＥＤＳプロセス５００は、各スライスを回転ワープさせるプロセスから始まり、光学および色収差補正プロセスを実行し、歪んでワープされたスライスをスキャンアウトする。これは、ＥＤＳプロセス４００のブロック４１８、４２０、４２２、４２４、および４２６に関して先に述べたのと同様である。
【００５０】
上述の発明の機能性の大部分および発明の原則の多くは、特定用途向けＩＣ（ＡＳＩＣ）などの集積回路を用いたまたはそれにおける実現例によく適している。当業者は、本明細書中に開示される概念および原則によって導かれると、たとえば、利用可能な時間、現在の技術および経済的考慮によって動機付けられるおそらくはかなりの労力および多数の設計上の選択肢にも係わらず、最小限の実験によってそのようなＩＣを生成することが容易に可能であることが期待される。したがって、簡潔さ、ならびに本開示に従う原則および概念を曖昧にする一切のおそれの最小化のため、そのようなソフトウェアおよびＩＣのそれ以上の検討は、もしあるとしても、好ましい実施形態の範囲内の原則および概念に対する必須部分に限定されるであろう。
【００５１】
この文書では、第１および第２などの関係性を表わす用語は、あるエンティティまたは行為を、別のエンティティまたは行為の間の何らかの実際のそのような関係または順序を必ずしも要件としたり暗示したりすることなく当該エンティティまたは行為から区別するためにのみ用いられ得る。「備える」、「備えている」という用語、またはその何らかの他の変形は、非排他的包含をカバーすることが意図されるため、要素の一覧を備えるプロセス、方法、物品、または機器は、それらの要素のみを含むのではなく、明示的に列挙されないまたはそのようなプロセス、方法、物品、もしくは機器に内在的な他の要素を含むことがある。「備える」に続く要素は、それ以上の制約なく、当該要素を備えるプロセス、方法、物品、または機器中の付加的な同一の要素の存在を排除するものではない。本明細書中で用いるような「別の」という用語は、少なくとも第２以降として規定される。本明細書中で用いられるように「含む」および／または「有する」という用語は、備えるとして規定される。電気光学技術を参照して本明細書中で用いるような「結合される」という用語は、必ずしも直接にではなくまた必ずしも機械的ではないが、接続されると規定される。本明細書中で用いるような「プログラム」という用語は、コンピュータシステム上での実行のために設計された命令のシーケンスとして規定される。「プログラム」または「コンピュータプログラム」は、サブルーチン、機能、手順、オブジェクト方法、オブジェクト実現例、実行可能なアプリケーション、アプレット、サーブレット、ソースコード、オブジェクトコード、共有ライブラリ／動的負荷ライブラリ、および／またはコンピュータシステム上での実行のために設計される命令の他のシーケンスを含むことがある。
【００５２】
明細書および図面は単なる例示と考えられるべきであり、したがって開示の範囲は以下の請求項およびその均等物によってのみ限定されることが意図される。なお、全般的な説明で上述した活動または要素のすべてを要件とするわけではなく、具体的な活動または装置の一部を要件としないことがあり、説明したものに加えて１つ以上のさらなる活動を行なってもよくまたは１つ以上のさらなる要素を含んでもよい。またさらに、活動が列挙される順序は必ずしもそれらが行なわれる順序とは限らない。以上の描かれたフローチャートの工程は、特段の記載がなければ任意の順序であることができ、実現例に依存して工程を排除、繰返し、および／または追加してもよい。また、具体的な実施形態を参照して概念を説明した。しかしながら、当業者は、以下の請求項に述べるような本開示の範囲から逸脱することなく、さまざまな修正および変更をなすことができることを認める。これに応じて、明細書および図は、制限的な意味よりもむしろ例示と見なされるべきであり、すべてのそのような修正は本開示の範囲内に含まれることが意図される。
【００５３】
具体的な実施形態に関して有利、他の利点、および課題に対する解決策を上述した。しかしながら、何らかの有利、利点、または解決策を想到させ得るまたはより顕著にし得る有利、利点、課題に対する解決策、および何らかの特徴を、任意のまたはすべての請求項の決定的な、要件とされる、または必須の特徴として解釈すべきではない。
【図１】
2018525693.tif 000004
【図２】
2018525693.tif 000005
【図３】
2018525693.tif 000006
【図４】
2018525693.tif 000007
【図５】
2018525693.tif 000008
【国際調査報告】
2018525693.tif 000009
2018525693.tif 000010
2018525693.tif 000011