(57)【特許請求の範囲】
【請求項１】
ヘッドマウントディスプレイ（ＨＭＤ）であって、
画面、
プロセッサ、
慣性データの生成が可能な複数の慣性センサ、
前記プロセッサにより実行可能で、前記慣性データに基づき前記ＨＭＤの移動を追跡可能なモーショントラッカモジュール、及び
前記プロセッサにより実行可能で、前記ＨＭＤの前記移動が移動閾値量を超える場合、前記画面に走査される画像フレーム用に修正表示データを表示データから作成可能な表示調整モジュールを備え、前記表示データは順次複数のピクセル行に走査されるピクセル値を含み、
前記修正表示データは、前記画像フレームの第一ピクセル行の走査から前記画像フレームの現ピクセル行の走査までの経過時間に前記ＨＭＤが移動した距離を補正するよう、前記画像フレームの前記現ピクセル行のピクセルの調整ピクセル値を含み、
前記調整ピクセル値は、前記現ピクセル行の前記ピクセルのオフセット距離にあるピクセルのピクセル値であり、前記オフセット距離は前記経過時間に前記ＨＭＤが移動した前記距離に基づき、
前記画像フレーム用の前記修正表示データは、前記画面に走査され前記ＨＭＤの前記移動による歪みを軽減する、ＨＭＤ。
【請求項２】
前記オフセット距離は、１）前記ＨＭＤの移動の無い場合の前記ピクセルの前記画面上への投影と、２）前記移動を補正するための前記ピクセルの前記画面上への投影との差に基づく、請求項１に記載のＨＭＤ。
【請求項３】
コンピューティングデバイスから前記表示データの受信が可能な通信モジュールをさらに備える、請求項１に記載のＨＭＤ。
【請求項４】
前記表示調整モジュールは、入手可能であれば新規ピクセル値を現フレームから取得し、前記表示調整モジュールは、前記現フレームにおいて入手できない場合前記新規ピクセル値を前記表示データの前のフレームから取得する、請求項３に記載のＨＭＤ。
【請求項５】
前記表示調整モジュールは、前記オフセット距離に基づき選択された複数のピクセルからピクセルデータの加重平均を出し新規ピクセル値を取得する、請求項３に記載のＨＭＤ。
【請求項６】
前記ディスプレイに以前表示された１以上のビデオフレームを保存するメモリをさらに備える、請求項１に記載のＨＭＤ。
【請求項７】
前記移動閾値量は、前記オフセット距離が最短ピクセル間距離を超える場合の移動量である、請求項１に記載のＨＭＤ。
【請求項８】
前記表示データがピクセルラスタデータを備え、前記データは前記ピクセルラスタデータの１行を前記ディスプレイに同時に表示される、請求項１に記載のＨＭＤ。
【請求項９】
ヘッドマウントディスプレイ（ＨＭＤ）の移動を前記ＨＭＤにおいて追跡し、
前記ＨＭＤのディスプレイに仮想現実を表示するよう、前記ＨＭＤにおいてコンピューティングデバイスから表示データを受信し、
前記ＨＭＤの前記移動が移動閾値量を超える場合、順次複数のピクセル行に走査されるピクセル値を含む前記表示データを修正して前記ＨＭＤの画面に走査される画像フレーム用に修正表示データを作成し、前記修正表示データは、前記画像フレームの第一ピクセル行の走査から前記画像フレームの現ピクセル行の走査までの経過時間に前記ＨＭＤが移動した距離を補正するよう、前記画像フレームの前記現ピクセル行のピクセルの調整ピクセル値を含み、前記調整ピクセル値は、前記現ピクセル行の前記ピクセルのオフセット距離にあるピクセルのピクセル値であり、前記オフセット距離は前記経過時間に前記ＨＭＤが移動した前記距離に基づき、
前記ＨＭＤの前記ディスプレイに前記修正表示データを表示することを含む、方法。
【請求項１０】
前記オフセット距離は、１）前記ＨＭＤの移動の無い場合の前記ピクセルの前記画面上への投影と、２）前記移動を補正するための前記ピクセルの前記画面上への投影との差に関連する、請求項９に記載の方法。
【請求項１１】
前記ＨＭＤの移動追跡は、加速度計、磁力計、またはジャイロスコープの１以上を含む慣性センサを用いて実施される、請求項９に記載の方法。
【請求項１２】
前記ディスプレイは、仮想網膜ディスプレイ（ＶＲＤ）、発光ダイオードディスプレイ（ＬＥＤ）、エレクトロルミネセントディスプレイ（ＥＬＤ）、電子ペーパ、プラズマディスプレイパネル（ＰＤＰ）、液晶ディスプレイ（ＬＣＤ）、有機発光ダイオードディスプレイ（ＯＬＥＤ）、または陰極線管ディスプレイ（ＣＲＴ）のうちの１つである、請求項９に記載の方法。
【請求項１３】
前記ＨＭＤの前記移動が水平である場合、前記修正表示データのピクセルは前記表示データの同一行の別のピクセルに対応するデータで変更される、請求項９に記載の方法。
【請求項１４】
前記ＨＭＤの前記移動が垂直である場合、前記修正表示データのピクセルは前記表示データの異なる行の別のピクセルに対応するデータで変更される、請求項９に記載の方法。
【請求項１５】
前記修正表示データの表示が、表示フレームのラスタピクセルデータの表示を、前記表示フレームを前記ＨＭＤが全て受信する前に開始することを含む、請求項９に記載の方法。
【請求項１６】
前記移動閾値量は、静的ピクセルの位置を前記ディスプレイの別のピクセルに近づいた場所へと変更させる移動量であり、前記静的ピクセルは、前記仮想現実で継続して静止しているオブジェクトに関連する、請求項９に記載の方法。
【請求項１７】
コンピュータプログラムを保存する非一時的コンピュータ可読記憶媒体であって、
ヘッドマウントディスプレイ（ＨＭＤ）の移動を前記ＨＭＤにおいて追跡するプログラム命令、
前記ＨＭＤのディスプレイに仮想現実を表示するよう、前記ＨＭＤにおいてコンピューティングデバイスから表示データを受信するプログラム命令、
前記ＨＭＤの前記移動が移動閾値量を超える場合、順次複数のピクセル行に走査されるピクセル値を含む前記表示データを修正して前記画面に走査される画像フレーム用に修正表示データを作成するプログラム命令、及び、
前記ＨＭＤの前記ディスプレイに前記修正表示データを表示するプログラム命令を備え、
前記修正表示データは、前記画像フレームの第一ピクセル行の走査から前記画像フレームの現ピクセル行の走査までの経過時間に前記ＨＭＤが移動した距離を補正するよう、前記画像フレームの前記現ピクセル行のピクセルの調整ピクセル値を含み、前記調整ピクセル値は、前記現ピクセル行の前記ピクセルのオフセット距離にあるピクセルのピクセル値であり、前記オフセット距離は前記経過時間に前記ＨＭＤが移動した前記距離に基づく、記憶媒体。
【請求項１８】
前記表示データの修正は、
前記表示データのピクセルの前記オフセット距離を判断するプログラム命令をさらに含み、前記オフセット距離は、１）前記ＨＭＤの移動の無い場合の前記ピクセルの前記画面上への投影と、２）前記移動を補正するための前記ピクセルの前記画面上への投影との差に関連する、請求項１７に記載の記憶媒体。
【請求項１９】
前記表示データの修正ではさらに、
前記オフセット距離に基づき前記ピクセルの新規ピクセル値を取得する、請求項１７に記載の記憶媒体。
【請求項２０】
前記表示データの修正ではさらに、
入手可能であれば前記新規ピクセル値を前記表示データの現フレームから取得するか、前記現フレームにおいて入手できない場合前記新規ピクセル値を前記表示データの前のフレームから取得するプログラム命令を含む、請求項１９に記載の記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ヘッドマウントデバイス（ＨＭＤ）における仮想現実表示の改善方法、特に、ＨＭＤを装着したユーザの頭部が移動した時の表示データの処理方法、システム、及びコンピュータプログラムに関する。
【背景技術】
【０００２】
一般的に、ＨＭＤは頭部周囲に装着する携帯デバイスであり、両眼から近い位置にあるディスプレイがユーザとの対話画像を提供する。現実画像と併せてコンピューティングデバイスにより作成された画像をユーザが見ることができる、現実及び仮想現実の混合環境を提供するＨＭＤもある。また、外部の世界を遮断するがＨＭＤのディスプレイに仮想世界を提供し臨場感あふれる体験をユーザに提供するＨＭＤもある。
【０００３】
しかし、ＨＭＤのコンピューティング能力がディスプレイの画像をリフレッシュできるほど十分でないことで、ユーザがＨＭＤのディスプレイを通して現実世界または仮想世界を見る間に問題が起こり得る。これにより、ＨＭＤのユーザが乗り物酔いや眩暈をおこすことがある。ユーザが頭部を移動させていて、仮想現実の静的オブジェクトは静止したままでユーザの動きに影響されないと予測している場合に、この現象は特にひどくなる。
【０００４】
ユーザの動きが仮想世界の知覚に望ましくない影響を与えることがないように、頭部搭載デバイスに表示データのプレゼンテーションあるいは表示を行うように処理するＨＭＤが求められる。
【０００５】
この観点から実施形態を挙げる。
【発明の概要】
【０００６】
ヘッドマウントディスプレイ（ＨＭＤ）に表示データの表示を処理し、特に、ＨＭＤの移動に基づきディスプレイにおける表示を調整する方法、デバイス、システム、及びコンピュータプログラムを表示する。本発明の実施形態は、方法、装置、システム、デバイス、または、コンピュータ読取可能媒体におけるコンピュータプログラムなど、多様な方法での実施が可能であることは明らかであろう。いくつかの実施形態を下に説明する。
【０００７】
一実施形態では、ヘッドマウントディスプレイ（ＨＭＤ）は、画面、プロセッサ、慣性データの生成が可能な複数の慣性センサ、モーショントラッカモジュール、及び、表示調整モジュールを備える。モーショントラッカモジュールは、プロセッサにより実行可能である。モーショントラッカモジュールは慣性データに基づいたヘッドマウントディスプレイ（ＨＭＤ）の移動追跡が可能である。さらに、表示調整モジュールはプロセッサにより実行可能である。表示調整モジュールは、ＨＭＤの移動が移動閾値量を超える場合、画面に走査される画像フレーム用に修正された表示データの作成が可能である。表示データは順次複数のピクセル行に走査されるピクセル値を含む（別の実施形態では、ピクセル値は複数のピクセル列に走査される）。修正表示データは、画像フレームの第一ピクセル行の走査から画像フレームの現ピクセル行の走査までの経過時間にＨＭＤが移動した距離を補正するよう、画像フレームの現ピクセル行のピクセルの調整ピクセル値を含む。調整ピクセル値は、現ピクセル行のピクセルのオフセット距離にあるピクセルのピクセル値である。オフセット距離は経過時間でのＨＭＤの回転に基づく。画像フレーム用修正表示データは、画面に走査されてＨＭＤの移動による歪みを軽減する。一実施形態では、ピクセル値の調整はピクセルレベルで実施され、すなわち、ピクセルの調整及びリサンプリングの粒度は走査線レベルではなくピクセルレベルで実施され得る。
【０００８】
別の実施形態では、方法が提供される。この方法は、ＨＭＤにおいてヘッドマウントディスプレイ（ＨＭＤ）の移動を追跡し、ＨＭＤのディスプレイに仮想現実を表示するようＨＭＤにおいてコンピューティングデバイスから表示データを受信する操作を含む。本方法はさらに、ＨＭＤの移動が移動閾値量を超える場合、表示データを修正してＨＭＤの画面に走査される画像フレーム用に修正された表示データを作成する操作を含む。表示データは、順次複数のピクセル行に走査されるピクセル値を含み、修正表示データは、画像フレームの第一ピクセル行の走査から画像フレームの現ピクセル行の走査までの経過時間にＨＭＤが移動した距離を補正するよう、画像フレームの現ピクセル行のピクセルの調整ピクセル値を含む。調整ピクセル値は、現ピクセル行のピクセルのオフセット距離にあるピクセルのピクセル値であり、オフセット距離は経過時間にＨＭＤが移動した距離に基づく。本方法はさらに、ＨＭＤのディスプレイに修正表示データを表示する操作を備える。
【０００９】
さらに別の実施形態では、コンピュータプログラムを保存する非一時的コンピュータ可読記憶媒体は、ヘッドマウントディスプレイ（ＨＭＤ）の移動をＨＭＤにおいて追跡するプログラム命令用プログラム命令、及び、ＨＭＤのディスプレイに仮想現実を表示するようＨＭＤにおいてコンピューティングデバイスから表示データを受信するプログラム命令を備える。記憶媒体はさらに、ＨＭＤの移動が移動閾値量を超える場合、順次複数のピクセル行に走査されるピクセル値を含む表示データを修正して画面に走査される画像フレーム用に修正された表示データを作成するプログラム命令を備える。修正表示データは、画像フレームの第一ピクセル行の走査から画像フレームの現ピクセル行の走査までの経過時間にＨＭＤが移動した距離を補正するよう、画像フレームの現ピクセル行のピクセルの調整ピクセル値を含み、調整ピクセル値は、現ピクセル行のピクセルのオフセット距離にあるピクセルのピクセル値であり、オフセット距離は経過時間にＨＭＤが移動した距離に基づく。記憶媒体はさらに、ＨＭＤのディスプレイに修正表示データを表示するプログラム命令を備える。
【００１０】
添付の図を参照し、以下の詳細な説明により他の形態も明らかとされる。
【００１１】
実施形態は、添付の図と併せて以下の説明を参照することで一層理解されるであろう。
【図面の簡単な説明】
【００１２】
【図１】本発明のある実施形態による、ビデオゲームの対話型ゲームプレイシステムを示す。
【図２Ａ】一実施形態によるヘッドマウントディスプレイ（ＨＭＤ）を装着したプレイヤを示す。
【図２Ｂ】一実施形態によるヘッドマウントディスプレイ（ＨＭＤ）を装着したプレイヤを示す。
【図３Ａ】一実施形態による、ＨＭＤのディスプレイでの走査を示す。
【図３Ｂ】一実施形態による、ディスプレイに表示される線ごとのピクセル表示を示す。
【図３Ｃ】一実施形態による、ユーザが頭部を回転させた時に静的オブジェクトを静止状態に保つ上での問題点を示す。
【図３Ｄ】一実施形態による、頭部を回転させるユーザへの垂直線の知覚を示す。
【図４Ａ】一実施形態による、複数のピクセル値及びＨＭＤのディスプレイ上の表示を示す。
【図４Ｂ】一実施形態による、頭部を回転させる時のユーザにおける知覚上の問題点を示す。
【図５】一実施形態による、頭部の移動中のピクセル値の計算方法を示す。
【図６】本明細書に示す実施形態の実施構成を示す。
【図７】一実施形態による、ＨＭＤの移動を補正するよう表示データを調整するフローチャートである。
【図８】実施形態の実施に使用され得るデバイス構成を示す。
【図９】一実施形態による、ＨＭＤのセンサからの慣性データを利用し、ＨＭＤにおいて表示データを修正するフローチャートである。
【図１０】多様な実施形態によるゲームシステムのブロック図である。
【発明を実施するための形態】
【００１３】
以下の実施形態では、ヘッドマウントディスプレイ（ＨＭＤ）における表示データの表示を処理し、特にＨＭＤの移動に基づいてディスプレイの表示を調整する方法、デバイス、システム、及びコンピュータプログラムを説明する。
【００１４】
本実施形態の実施においてこれら詳述内容の全てが必要とされるわけではないことは明らかであろう。また、本実施形態が必要以上に不明瞭にならないよう、周知のプロセス操作については詳述していない。
【００１５】
本明細書に示す実施形態は、複数の慣性センサを有しコンピュータシステム（例えば、ゲームコンソール、パーソナルコンピュータ、スマートフォン、クラウドゲームサービスなど）から表示データを受信するヘッドマウントディスプレイ（ＨＭＤ）に関する。いくつかの実施形態では、コンピュータシステムは、ネットワークを介してＨＭＤと通信し、コンピュータシステムからＨＭＤに表示データを転送する通過時間を導出する。他の実施形態では、ＨＭＤは、ＨＭＤ自体に取り付けられたスマートフォンなど、コンピュータシステムへの接続が可能であり、表示データをＨＭＤに送信するには転送時間をも要する。ＨＭＤは、ＨＭＤのディスプレイに走査される表示データを調整してユーザの頭部の移動を補正し、ＨＭＤの移動により仮想現実の要素が歪んだように見える問題を解決する。
【００１６】
一実施形態では、ピクセルレベルで（またはピクセルグループに基づいて）リアルタイムに修正を行い、ピクセル修正は、ユーザの移動及びピクセルの表示タイミングに基づく。ＨＭＤのディスプレイにデータを表示する表示システムとセンサシステム（例えば、慣性センサ）間には、タイトなループがある。
【００１７】
ＨＭＤ上に仮想現実を生成する遠隔システムにＨＭＤからモーションデータを送信する必要が無く、ＨＭＤは、遠隔システムからの連携に依存せずにピクセルデータを修正する。ＨＭＤは、表示データと慣性データとの閉ループを有しており、ＨＭＤでのピクセルデータの細かな修正が可能である。
【００１８】
図１は、本発明のある実施形態による、ビデオゲームの対話型ゲームプレイシステムを示す。ヘッドマウントディスプレイ（ＨＭＤ）１０２を装着したユーザ１１４を示す。ＨＭＤ１０２は、眼鏡、ゴーグル、またはヘルメットと同様に着用され、ビデオゲームまたは他のコンテンツをユーザ１１４に表示するよう構成される。ＨＭＤ１０２は、ユーザの眼の近くに表示メカニズム（例えば、光学表示スクリーン）、及びＨＭＤに配信するコンテンツ形式を提供することで、ユーザが臨場感を得られるよう構成される。一実施例として、ＨＭＤ１０２は、ユーザの視野１１０の大部分または全体をも占める、ユーザの各眼への表示領域を提供することができる。
【００１９】
一実施形態では、ＨＭＤ１０２はコンピュータ１０６への接続が可能である。コンピュータ１０６への接続は、有線でも無線でも可能である。コンピュータ１０６は、任意の汎用または専用コンピュータであってよく、ゲームコンソール、パーソナルコンピュータ、ラップトップ、タブレットコンピュータ、携帯デバイス、携帯電話、タブレット、シンクライアント、セットトップボックス、メディアストリーミングデバイスなどを含むが、これらに限定されない。いくつかの実施形態では、ＨＭＤ１０２はインターネットへの直接接続が可能で、別個のローカルコンピュータを必要とせずにクラウドゲームができてもよい。一実施形態では、ビデオゲーム（及び他のデジタルコンテンツ）を実行し、ＨＭＤ１０２によるレンダリングのためにビデオゲームから画像及び音声を出力するよう構成可能である。また、コンピュータ１０６を、本明細書において、一実施例においてビデオゲームコンソールであるクライアントシステム１０６とする。ゲーム操作は、コンピューティングデバイス１０６上、ＨＭＤ１０２上、またはコンピューティングデバイス１０６及びＨＭＤ１０２の両方で処理されてもよい。
【００２０】
いくつかの実施形態では、コンピュータはローカルまたは遠隔コンピュータであってもよく、コンピュータはエミュレーションソフトウェアを実行してもよい。クラウドゲームの実施形態では、コンピュータは遠隔にあり、データセンターにおいて仮想化され得る複数のコンピューティングサービスにより表示されてもよく、ゲームシステム／ロジックは仮想化され、ネットワークを介してユーザに配布され得る。
【００２１】
ユーザ１１４はコントローラ１１８を操作し、ビデオゲームに入力してもよい。一実施例では、カメラ１０４は、ユーザ１１４が位置する対話環境の画像を取得するよう構成され得る。取得画像を解析し、ユーザ１１４、ＨＭＤ１０２、及びコントローラ１１８の位置及び移動を判断し得る。一実施形態では、コントローラ１１８は、コントローラの位置及び向きを判断するよう追跡可能な光源を備える。さらに、以下で詳述するように、ＨＭＤ１０２は、ゲーム中に略リアルタイムでＨＭＤ１０２の位置及び向きを判断するようマーカとして追跡可能な１以上の光源を備えてもよい。一実施形態では、コンピューティングデバイス１０６は、ＨＭＤ１０２とゲームコントローラ１１６との相対位置を計算する。この相対位置をゲームにより使用し、ＨＭＤ１０２と同期してゲームオブジェクトを移動させる。
【００２２】
カメラ１０４は、１以上のマイクを備え対話環境から音声を取得し得る。マイクアレイで取得した音声は、音源の位置を識別するよう処理されてもよい。識別された位置からの音声は、識別された位置からではない他の音声を除外して選択的に利用または処理され得る。さらに、複数の画像キャプチャデバイス（例えば、立体カメラ対）、ＩＲカメラ、深度カメラ、及びそれらの組み合わせを備えるよう、カメラ１０４を定義し得る。
【００２３】
いくつかの実施形態では、コンピュータ１０６は、コンピュータ１０６の処理ハードウェア上でローカルにゲームを実行することができる。ゲームまたはコンテンツは、物理的媒体形式（例えば、デジタルディスク、テープ、カード、サムドライブ、固体チップまたはカードなど）、またはネットワーク１２２を介したインターネットからのダウンロードなど、任意の形式で取得し得る。別の実施形態では、コンピュータ１０６は、ネットワークを介してクラウドゲームプロバイダ１２４と通信するクライアントとして作動する。クラウドゲームプロバイダ１２４は、ユーザ１１４がプレイするビデオゲームを保存し実行してもよい。コンピュータ１０６は、ＨＭＤ１０２、コントローラ１１８及びカメラ１０４からの入力をクラウドゲームプロバイダに転送し、クラウドゲームプロバイダは入力を処理して実行中のビデオゲームのゲーム状態に作用させる。ビデオデータ、オーディオデータ、及び触覚フィードバックデータなど、実行中のビデオゲームからの出力は、コンピュータ１０６に転送される。さらに、コンピュータ１０６は転送前にデータを処理してもよく、またはデータを関連デバイスに直接転送してもよい。例えば、ビデオ及びオーディオストリームをＨＭＤ１０２に提供し、一方、振動フィードバックコマンドをコントローラ１１８に提供する。
【００２４】
一実施形態では、ＨＭＤ１０２、コントローラ１１８、及びカメラ１０４は、それら自体が、ネットワーク１２２に接続されクラウドゲームプロバイダ１２４と通信するネットワーク化デバイスであってもよい。例えば、コンピュータ１０６は、ビデオゲームを処理しないが、通過ネットワークトラフィックをしやすくする、ルータなどのローカルネットワークデバイスであってもよい。ＨＭＤ１０２、コントローラ１１８、及びカメラ１０４によるネットワーク接続は、有線でも無線でもよい。いくつかの実施形態では、ＨＭＤ１０２上で実行されるかディスプレイ１０８上で表示可能なコンテンツは、任意のコンテンツソース１２０から取得可能である。例示的なコンテンツソースとして、例えば、ダウンロード可能なコンテンツ及び/またはストリーミングコンテンツを提供するインターネットウェブサイトが挙げられる。いくつかの実施例では、コンテンツは、映画、ゲーム、静的／動的コンテンツ、写真、ソーシャルメディアコンテンツ、ソーシャルメディアウェブサイトなど、任意の種類のマルチメディアコンテンツであってもよい。
【００２５】
プレイヤ１１４は、ＨＭＤ１０２上でゲームをプレイしてもよく、そういったコンテンツは臨場感のある３Ｄ対話型コンテンツである。ＨＭＤ１０２上のコンテンツは、プレイヤのプレイ中、ディスプレイ１０８と共有可能である。一実施形態では、ディスプレイ１０８に共有されたコンテンツは、プレイヤ１１４の近くまたは遠くにいる他のユーザが、ユーザのプレイを共に見ることができる。さらに別の実施形態では、ディスプレイ１０８上でプレイヤ１１４のゲームプレイを見ている別のプレイヤが、プレイヤ１１４と対話的に参加してもよい。例えば、ディスプレイ１０８上でゲームプレイを見ているユーザが、ゲームシーン内のキャラクタをコントロールし、フィードバックし、ソーシャルに対話し、及び／またはコメントを（テキストで、音声で、動作で、ジェスチャでなど）つけ、ＨＭＤ１０２を装着していないユーザが、プレイヤ１１４、ゲームプレイ、またはＨＭＤ１０２でレンダリング中のコンテンツとソーシャルに対話できるようにしてもよい。
【００２６】
図１に示す実施形態は例示であることに留意されたい。他の実施形態では、デバイス台数が異なり多様なデバイスを用い、多様なデバイス間でのインタラクションが増加あるいは減少させ、他の通信方法（例えば、超音波）を用い、それぞれＨＭＤを装着したユーザ２人が同じゲームをする多人数参加型ゲームを容易にできてもよい。したがって図１に示す実施形態は、排他的でも限定的でもなく、例示であり説明的なものであると理解されたい。
【００２７】
図２Ａ及び図２Ｂは、一実施形態によるヘッドマウントディスプレイ（ＨＭＤ）を装着したプレイヤを示す。図２Ａの実施形態では、プレイヤ１１４は、ＨＭＤ１０２を通して仮想現実２０２を見ている。仮想現実はユーザの視野２０４ａの範囲より広がっており、ユーザが頭を動かすと、仮想現実の視野はまるでＨＭＤが仮想現実に向けたカメラであるように変化する。これにより、ユーザが視界を動かすとそれに応じて仮想現実世界の視野が変化するため、仮想現実２０２内でユーザに臨場感を与えられる。
【００２８】
図２Ｂは、ユーザ１１４がＨＭＤを動かした時のユーザの視野２０４ｂの範囲の変化を示す。ＨＭＤ１０２上に投影される仮想現実２０２はここで、図２Ａに示す仮想現実とは別の一部に対応する。
【００２９】
ユーザは、頭部を回転させて仮想現実を水平に変化させるか、頭部を上下に動かして仮想現実を垂直に変化させるか、あるいはそれらを任意に組み合わせてもよい。例えば、図２Ｂでは、ユーザは、ＨＭＤを右わずか下方に動かし、それに応じ仮想現実の視野が変化する。
【００３０】
一実施形態では、仮想現実は、静的要素及びゲーム内で動く要素を有する仮想世界を含む。静的要素は、家、樹木、恒久構造物、太陽、山など、風景における静的オブジェクトを含む。仮想現実内で動く可能性のある要素は、ゲームキャラクタ、人、動物、自動車など、現実世界では一般的に動くオブジェクトまたは人々を表す現実世界の仮想オブジェクトを含む。
【００３１】
好適な仮想現実投影システムは、ユーザが仮想現実内を移動しても仮想現実内の静的オブジェクトは常時静止しているという印象をユーザに与える。処理リソースが無いか、ユーザがＨＭＤを素早く動かした場合には、仮想現実の投影が歪み、ユーザに違和感を与え、仮想現実投影に不満を感じることもある。
【００３２】
図３Ａは、ＨＭＤのディスプレイの走査を示す。一実施形態では、ＨＭＤのディスプレイは、複数のカラーピクセルを含む有機発光ダイオードディスプレイ（ＯＬＥＤ）であり、表示データの各ピクセルは３つのカラーＬＥＤに対応する。本明細書に示す原理は、仮想網膜ディスプレイ、陰極線管ディスプレイ（ＣＲＴ）、発光ダイオードディスプレイ（ＬＥＤ）、エレクトロルミネセントディスプレイ（ＥＬＤ）、プラズマディスプレイパネル（ＰＤＰ）、薄膜トランジスタディスプレイ（ＴＦＴ）、または液晶ディスプレイ（ＬＣＤ）など、ピクセルを備えたラスタデータを有する任意のディスプレイタイプで利用され得る。
【００３３】
網膜走査ディスプレイ（ＲＳＤ）または網膜プロジェクタ（ＲＰ）としても知られる仮想網膜ディスプレイ（ＶＲＤ）は、眼の網膜に直接ラスタディスプレイを描くディスプレイデバイスである。ＶＲＤで画像を作成するには、１つの光子源（または、カラーディスプレイの場合は３つの光源）を使用してコヒーレント光ビームを生成する。コヒーレント光源（レーザダイオードなど）の使用により、システムは網膜上に回折限界点を描くことができる。光線は、レンダリングする画像の強度に合うよう強度変調される。ビーム生成後、変調することができる。
【００３４】
結果得られた変調ビームを走査し、網膜の適切な位置に各画像点またはピクセルを配置する。多様な走査パターンが可能である。走査機は、画像を形成する線が直接描かれるカリグラフィック（ベクトル）モード、または、標準コンピュータモニタやテレビによく似たラスターモードでの使用が可能である。画像走査のラスタ方式を使用することにより、ＶＲＤを標準映像ソースで駆動することができる。
【００３５】
図３Ａでわかるように、各円はピクセルを表し、ラスタを描くよう水平走査機はビームを移動させ一度に１行のピクセルを描く。次に、走査機は、次のピクセル行を描く次線にビームを移動させる。一般的に、１行の走査は左から右に行う。
【００３６】
仮想現実（ＶＲ）では、ピクセルの表示は極短時間であることが望ましい。例えば、ピクセル点灯時間は１ｍｓまたは２ｍｓであるが、一般的なＴＶでのピクセル点灯時間は約１６ｍｓである。もっとも、他の時間も可能である。
【００３７】
図３Ｂは、一実施形態による、ディスプレイに表示される線ごとのピクセル表示を示す。黒線が１ピクセル幅でディスプレイに表示されている場合、列状の複数の黒ピクセルが線に関連するラスタ内に存在する。
【００３８】
一度に１線ずつディスプレイに走査されるので、１つのピクセルを表示してから次の線にある直下のピクセルを表示するまでに時間がかかる。いくつかの実施形態では、ＨＭＤは、遠隔コンピューティングデバイスから表示データを受信し、ＨＭＤは、ＨＭＤで全１ラスタのピクセルの全セットが使用可能になる前であっても、ディスプレイへのピクセル走査を開始する。換言すると、ディスプレイの左上ピクセルは、右下ピクセルのデータが受信される前に、ディスプレイに点灯されてもよい。
【００３９】
いくつかの実施形態では、遠隔コンピューティングデバイスは、ある時点で画像計算を行った後、画像（例えば、ディスプレイでの１走査）をＨＭＤに送信する。データの送受信には時間がかかることは明白で、送信する際データ分割されてもよいため、ピクセルのＨＭＤへの到着時間は様々である。ディスプレイがシリアルインタフェースを使用してもよいため、ピクセルの到着時間が様々になり得ることは、極めて問題である。先頭ピクセルが到着してから最終ピクセルが到着するまでに、ある程度時間がかかる。
【００４０】
図３Ｃは、一実施形態による、ユーザが頭部を回転させた時に静的オブジェクトを静止状態に保つ上での問題点を示す。ＨＭＤが略静止している限り、線は仮想現実において静止して見える。
【００４１】
しかし、ユーザが頭部を素早く右に回転させると、頭部の回転に応じて仮想現実が変化するため、線が歪む可能性がある。これは、全ピクセルが一度に表示されるわけではなく、上段線のピクセルが下段のピクセルより先に表示されるため起こる。
【００４２】
本理論に限らず、本出願人は、画像が歪む原因が、一度の走査でピクセル全てが同時に表示されないことにあると考える。例えば、ユーザの頭部が第１ポジションにある時にラスタ上にはじめに第１ピクセルが表示され、その後頭部が別のポジションにある時に次線のピクセルが表示される。ディスプレイ上の歪みの原因は当然他にもあり得るが、本明細書に示す実施形態では、ディスプレイでのピクセル表示に要する経過時間、及びその経過時間での頭部の移動に基づく、ピクセルデータの修正方法を提供する。
【００４３】
図３Ｄは、一実施形態による、頭部を回転させるユーザへの垂直線の知覚を示す。例えば、ディスプレイは６０Ｈｚで動作し、全てのラスタ表示に約１７ｍｓかかる。７２０線あるディスプレイでは、各線の表示に約０．０２ｍｓかかることになる。ユーザが頭部を動かすとＨＭＤは頭部と一緒に動き、修正しなければ、ディスプレイのピクセルは頭部と共に動く。しかし、頭部が動いても、静的オブジェクトは静止したままであるはずである。線が仮想現実における背景で静止しているとすれば、ＨＭＤが動いている時にはディスプレイの視野の範囲を基に線は移動すべきである。
【００４４】
したがって、線３２２の第１ピクセルは時刻ｔに表示され、線３２４のピクセルは時刻（ｔ＋０．０２）に表示され、線３２６のピクセルは時刻（ｔ＋０．０４）に表示されるなどである。ユーザが頭部を右に回転させている場合、頭部が第１ポジションにある時に３２２の第１ピクセルが表示され、頭部が第２ポジションにある時に３２４の第２ピクセルが表示される。第２ピクセルが第１ピクセルの右下に表示されると、ユーザへの知覚では、第２ピクセルが右に移動している。この原因は、頭部が動くことで、第２ピクセルを現時点で第１ピクセル下に表示する必要があったが、第一ピクセルが「移動した」ため第２ピクセルが右に移動してしまったように見えることにある。この過程は、走査する全線について同様に起こり、その結果、垂直線はわずかに垂直でないように見える。
【００４５】
図４Ａは、一実施形態による、複数のピクセル値及びＨＭＤのディスプレイ上の表示を示す。上述したように、各円は１ピクセルを表し、黒線の周囲のピクセルにアルファベット値を与える。黒線のピクセルは黒色である。
【００４６】
実施態様には、いわゆる全表示型再投影を用いるものがある。画像全体では、ユーザが頭部を動かせば、画像全体を移動させ頭部の移動について補正する。しかし、全表示再投影は、上述の問題点を解決していない。本明細書に示す実施形態は、ディスプレイ用走査データを修正してＨＭＤの移動について補正する。
【００４７】
図４Ｂは、一実施形態による、頭部を回転させるユーザの知覚上の問題点を示す。ＨＭＤは、ＨＭＤの移動を識別する複数の慣性センサを備える。ＨＭＤは、補正調整を計算するよう遠隔コンピューティングデバイスによるＨＭＤの移動追跡を待つ必要はない。これにより、ＨＭＤは、データが入力される際リアルタイムでの修正が可能となる。
【００４８】
説明を簡略化するため、本例では、頭部が回転して、第１線の第１ピクセルを次段線の第２ピクセルと比較して、視野のずれが両線において正確に１ピクセル分となるように頭部が動くものとする。これにより、第２ピクセルが第２ピクセルの元の位置の１つ左に配置されれば、第２ピクセルは、頭部の回転により第１ピクセルの真下にあるように見えることとなる。
【００４９】
したがって、図４Ｂの図では、次段線上のピクセルは左に１つ移動する。右４０２の最終ピクセルのピクセル値は当然存在しないので、隣のピクセル値をピクセル４０２に付与する。別の場合では、ピクセル４０４に黒の値を与えてディスプレイの端部を暗くし、ユーザの視野の広範囲表示を妨げないようにする。
【００５０】
計算に関し、ピクセルの表示時刻が来ると、システムは、歪み除去に使用するピクセル値を判断する。本実施例では、システムはあるピクセルのピクセル値を右隣へと取り、当該ピクセル値を現ピクセルに用いる。
【００５１】
その結果、実際のディスプレイ４０６では、（頭部を動かさないユーザにとっては）線が垂線ではなく傾いているが、頭部を回転させているＨＭＤディスプレイの使用者にとって、線はピクセル表示データが調整されて垂直であるように見える。
【００５２】
図５は、一実施形態による、頭部の移動中のピクセル値の計算方法を示す。一実施形態では、ＨＭＤの表示システムは、ピクセルの表示前にピクセル値を変更して、ＨＭＤの移動を補正する。
【００５３】
別の実施形態では、走査順を変更して移動に対応する。例えば、頭部が左から右に回転している場合、ディスプレイの走査を、行ではなく列ごとに行うことも可能である。これにより、第１ピクセル列を上から下または下から上へと走査し、次に左（または別の実施形態では右）隣りの列を表示する。同一ピクセル列は略同時に表示されるので、図３Ｄで説明する垂線に対する歪み効果は生じない。しかし、これにより、画像には頭部の移動を補正するためのシフトが行われないという問題が起こる可能性がある。直線は垂直に見えるが、頭部の回転について補正せず、背景が移動しているように見えることがある。この場合、頭部の回転に応じてピクセル値を左または右にシフトさせて列ごとに走査するディスプレイに対して、以下に説明する標準的な走査ディスプレイについての同一原理を適用し得る。
【００５４】
標準的な走査表示に戻ると、本明細書で説明する実施形態では、表示前にピクセル値を変更するので、行ごとに走査する現行のディスプレイの利用が可能である。
【００５５】
一実施形態では、表示データストリームがＨＭＤに達し、表示データはローカルラスタ走査メモリに保存される。その後、ディスプレイは、ラスタ走査メモリ内の表示データに基づき該当するピクセルを発光させる。
【００５６】
ピクセルが表示される前に、システムは、現走査の開始点を基準に、またはディスプレイの他のピクセル（例えば、真上に位置するピクセル）を基準に、頭部の移動量を計算する。計算した移動量に基づき、ピクセル値を調整する。ある意味で、ビームステアリングの逆となっている。ビームステアリングは不可能であるため、システムはラスタ走査メモリを操作する。
【００５７】
図５での例示的な実施形態では、システムは、ピクセル５０４の発光に使用するピクセル値を計算する。走査開始以降の頭部の移動により、システムは、移動について補正したピクセルデータが領域５０２の４つのピクセルの中間に位置する仮想ピクセル５０６であると判断したものとする。
【００５８】
図５ではピクセルは円で表示されているが、他の実施形態では、正方形、長方形、六角形など、他の形状を用いて、１つのピクセルに対応する領域を判断してもよいものとする。
【００５９】
仮想ピクセル５０６は実際には存在しないので、ピクセル５０４に属する実際のピクセル値は、領域５０２内の隣接ピクセルの関数となる。仮想ピクセルが実在するピクセルの略真上に位置する場合、当然その実在するピクセル値を利用する。略真上にない場合、ピクセル５０４の値は、領域５０２内のピクセル値の加重平均で計算される。例えば、全ピクセルに均等に加重平均してもよく、仮想ピクセル５０６と領域５０２内の各ピクセルとの重なりに基づいて加重してもよい。他の実施形態では、最も近い実在ピクセルからピクセル値を取得するか、４ピクセルを超えるピクセル（たとえば、１６ピクセル）を含む領域の平均値を取得するか、領域５０２内の左上端ピクセルを使用するなど、他の基準に基づき、ピクセル値を計算してもよい。ラスタ内の別のピクセル値を選択する実施形態では、処理リソースが保存され加重平均で計算する必要が無い。
【００６０】
データの調整が必要でピクセル値がまだＨＭＤに到達していない場合もある。もちろんデータが入手可能であれば、当然当該データを利用する。しかし、データが未達の場合、ＨＭＤは、前のフレームのピクセルデータを利用するか、２つ以上の前のフレームのピクセルデータに基づいてもよい。ＨＭＤは、必要に応じたピクセル値計算をアシストするよう、１以上前のフレームからデータをキャッシュする。
【００６１】
前フレームからのデータを見ると、一実施形態では、前フレームのデータに関し、前フレームの仮想ピクセル５０６の対応値の値からデータを取得する。しかし、別の実施形態において、ピクセル調整の計算では、前フレームから現フレームまでのＨＭＤの移動、及び走査開始からの時間を計算することを含む。このように、ディスプレイ上の発光または表示させるピクセル位置で利用するデータの経過時間に基づきＨＭＤの移動を考慮した、より好適なピクセル値を用いる。
【００６２】
別の実施形態では、データが利用できない時のピクセル値の付与を軽減する方法では、画面の端部に近いピクセルを参照し、本データを当該フレームでも前のフレームでも利用できないものとする。例として、図４Ｂの最下段のピクセルがある。一実施形態では、端部のピクセル値に黒の値を付与し、他の実施形態では、ピクセルにディスプレイの端部に最も近い利用可能なピクセル値に基づく値を付与する。
【００６３】
別の実施形態では、表示データは、ディスプレイのリフレッシュレートより速い速度でコンピューティングデバイスから送信される。例えば、ディスプレイ及びＨＭＤのリフレッシュレートが１２０Ｈｚである場合、コンピュータデバイスでは、倍の速度（２４０Ｈｚ）で表示データを送信してもよい。この場合、より多くのデータが、ピクセル値予測の生成に利用可能となる。待機時間制を導入すると、より好適なローカリゼーションが得られる可能性があるため、ＨＭＤは、より多くのデータが到着するまで待機することも可能である。
【００６４】
図６は、本明細書に示す実施形態の構造を示す。一実施形態では、コンピュータデバイス１０６は、仮想現実発生装置６０２、画像レンダリングモジュール６０４、ＨＭＤモーショントラッカ６０６、及び、ＨＭＤ１０２またはネットワークを介した他の装置と情報交換する通信モジュール６０８とを備える。
【００６５】
一実施形態では、ＨＭＤモーショントラッカ６０６は、コンピューティングデバイス１０６に接続されたカメラ１０４からの入力、及び／またはＨＭＤ１０２の複数の慣性センサから受信したデータを利用して、ＨＭＤの移動を追跡する。
【００６６】
仮想現実発生装置６０２は、仮想現実世界の視野を維持し、ＨＭＤの装着者に対し所定時間仮想世界のどの部分を視聴可能にするかを計算するモジュールである。仮想現実は、ゲームや、バーチャルトラベル、バーチャルビジネス、バーチャルコミュニケーションといった他の対話型体験の一部であってもよい。一実施形態では、仮想現実は、拡張現実と呼ばれる仮想要素と現実世界要素との混合を含む。また、仮想現実は、遠隔コンピュータデバイスから受信したビデオ画像（例えば、遠隔会議、仮想プレゼンス）を含んでもよい。
【００６７】
画像レンダリングモジュール６０４は、仮想現実発生装置６０２と連携して、ＨＭＤのディスプレイに所定時点に表示される表示データを計算する。画像レンダリングモジュール６０４が表示データを計算すると、表示データは、通信モジュール６０８を介してＨＭＤに送信される。一実施形態では、画像レンダリングモジュール６０４は、ＨＭＤの移動予測に基づくか、ＨＭＤの現実の軌道に基づき、仮想現実の画像調整を実施してもよい。画像レンダリングモジュール６０４が移動を予測すると、情報をＨＭＤ１０２に送信し、上記の調整ピクセル値では、画像レンダリングモジュール６０４による予測を考慮する。
【００６８】
一実施形態では、ＨＭＤ１０２は、位置モジュール６１４、ＨＭＤモーショントラッカモジュール６１２、ディスプレイ６３２、リアルタイム表示調整モジュール６３０、表示バッファ６２６、及び通信モジュール６１０を備える。
【００６９】
位置モジュール６１４は、ＨＭＤの複数の慣性センサにより得られたデータに基づきＨＭＤの位置及び移動を計算する。一実施形態では、慣性センサは、磁力計６１６、１以上の加速度計６１８、１以上のジャイロスコープ６２０、ＧＰＳモジュール６２２、またはコンパス６２４の１以上を含む。
【００７０】
ＨＭＤモーショントラッカモジュール６１２は、複数の慣性センサから全データを収集し、ＨＭＤの現在の移動を計算し、履歴モーションデータに基づいてＨＭＤの予想される移動を予測する。ＨＭＤモーショントラッカモジュール６１２によって計算されたモーションデータは、ＨＭＤの移動が移動閾値量を超える場合、ディスプレイ６０２に表示される表示データ用に新規にピクセル値を計算するリアルタイム表示調整器により利用される。
【００７１】
表示バッファ６２６は、通信モジュール６１０により受信されたコンピュータデバイス１０６から受信した表示データを保持する。さらに、表示バッファ６２６は、事前にレンダリングされたフレームの１以上の履歴フレーム６２８を含む。一実施形態では、表示バッファ６２６は、複数のデータフレームの収容に十分な空間を円形バッファに備える円形バッファであるが、他の実施形態では、複数の表示フレーム用データの保持に他タイプの記憶装置を使用してもよい。
【００７２】
リアルタイム表示調整モジュール６３０は、表示バッファ６２６のデータ、及び必要に応じ履歴データ６２８を、ＨＭＤモーショントラッカから受信したモーションデータと併せて使用し、ピクセルをディスプレイ６０２に表示する前にピクセル値を調整する。
【００７３】
リアルタイム表示調整モジュール６３０を有する利点は、ＨＭＤにおいて計算されたモーションデータに基づき表示データを調整する閉ループがＨＭＤにあることである。ＨＭＤの移動をコンピュータデバイスが計算しその移動をＨＭＤに送信するのを待つ必要もなく、リアルタイムまたは略リアルタイムでの表示データ動作にしては時間がかかりすぎることもない。
【００７４】
ＨＭＤ１０２の構成部品について、図８を参照して以下に詳述する。
【００７５】
図７は、一実施形態による、ＨＭＤの移動補正のため表示データを調整するフローチャートである。本フローチャートにおける多様な操作を順次表示し説明するが、当業者であれば、操作の一部または全てを異なる順序で実行し、組み合わせもしくは省略し、または並行して実行し得るであろう。
【００７６】
コンピューティングデバイスに関し、操作７０２において、仮想現実表示データをコンピュータデバイスで作成し、次に操作７０４において、表示データをコンピュータデバイスからＨＭＤに送信する。本方法は、操作７０４から操作７０２に戻る。
【００７７】
ＨＭＤの表示調整モジュールにおける操作に関し、操作７０６において、表示データをコンピュータデバイスから受信する。本方法は、操作７０６から操作７０８に進み、そこでＨＭＤにおいて表示データを追加して用い表示データを修正するかどうかを判断するため確認する。例えば、ＨＭＤは、ディスプレイにバッテリレベルインジケータ、またはＨＭＤが生成しユーザに表示する他の情報を重ねて表示させてもよい。
【００７８】
表示データを追加する場合、本方法は操作７１０に進み、そこでＨＭＤが生成したＨＭＤ対応表示データを、コンピュータデバイスから受信した表示データに追加する。追加する表示データが無い場合、本方法は操作７１２に進み、そこでＨＭＤが移動閾値量を超えて移動したかどうかを判断するため確認する。一実施形態において、移動閾値量とは、ＨＭＤの装着ユーザに知覚されるほどディスプレイ上の表示画像に歪みを起こす移動量である。別の実施形態では、移動閾値量は、ピクセル５０６（図５を参照して説明したように）をピクセル５０４とは異なる別のピクセルに近づける移動量であり、すなわち、ピクセル５０４の調整ピクセル値は、ピクセル５０４とは異なる、あるピクセルの値に近づく。一実施形態では、２つのピクセルを連続して走査する時間において、頭部の回転量が、ある量である場合にピクセル値sを調整する。この頭部の回転量は、物理ＨＭＤが通過する角度が、表示システム内のピクセル間角距離の有効比率に相当する量である。いくつかの実施形態においては、この有効比率は１０％から１００％の範囲であってもよいが、他の値であってもよい。
【００７９】
移動量が移動閾値を超える場合、本方法は操作７１４に進み、そこで表示データは移動量に基づいて修正される。一実施形態では、データは、図５を参照して上述したように修正される。
【００８０】
本方法は、操作７１４から操作７１６に進み、そこで表示のために表示データをディスプレイに送信する。本方法は、操作７１６から操作７０６に戻る。
【００８１】
ＨＭＤのモーショントラッカに関し、操作７１８において、モーショントラッカは、ＨＭＤの１以上のセンサからモーションデータを収集する。一実施形態では、ＨＭＤの移動を追跡しているコンピュータデバイスからもモーションデータを受信する（図７には図示せず）。いくつかの実施形態では、慣性データのサンプリングは、表示フレームレートよりかなり高速で、表示フレーム時にピクセルデータを修正する機会が多い。例えば、１つの慣性センサは、１，０００Ｈｚ以上でサンプリングしてもよい。
【００８２】
本方法は、操作７１８から操作７２０に進み、そこでモーショントラッカはＨＭＤのモーションプロファイルを判断する。モーションプロファイルは、所定の時間から計算実施時点までのＨＭＤによる移動をいう。例えば、モーションプロファイルは、最終数ミリ秒間でのＨＭＤの移動を考慮してもよい。いくつかの実施形態では、ＨＭＤの移動は、０．１ｍｓから約１秒の範囲で直近の時間を計算対象とする。
【００８３】
本方法は、操作７２０から操作７２２に進み、そこでＨＭＤの移動量を計算し、将来の移動を予測する。一実施形態において、移動予測は、ＨＭＤの走査速度に略相当する数ミリ秒（例えば、約１ｍｓ）を含むが、他の予測時間を計算してもよい。
【００８４】
一実施形態では、履歴データが利用可能である場合、次の数ミリ秒間のＨＭＤ予想移動量の計算時に、ＨＭＤの直近の移動により高い重み付けを行う。一実施形態では、カルマンフィルタを用いてセンサデータを結合する。本方法は、操作７２２から操作７１８に戻る。
【００８５】
図８は、実施形態の実施に使用するデバイスの構造を示す。ヘッドマウントディスプレイは、コンピューティングデバイスであり、プロセッサ８０４、メモリ８１６（ＲＡＭ、ＲＯＭなど）、１以上のバッテリ８０６または他の電源、及び永久記憶装置８４８（ハードディスク）など、一般的にコンピューティングデバイス上にあるモジュールを備える。
【００８６】
通信モジュールにより、ＨＭＤは、他のポータブルデバイス、他のコンピュータ、他のＨＭＤ、サーバなどと情報交換が可能になる。通信モジュールは、ユニバーサルシリアルバス（ＵＳＢ）コネクタ８４６、通信リンク８５２（イーサネット（登録商標）など）、超音波通信８５６、ブルートゥース（登録商標）８５８、及びＷｉＦｉ８５４を含む。
【００８７】
ユーザインタフェースは、入力用モジュール及び出力用モジュールを含む。入力モジュールは、入力ボタン、センサ及びスイッチ８１０、マイク８３２、タッチ感知スクリーン（図示せず、ＨＭＤの構成または初期化に使用してもよい）、フロントカメラ８４０、リアカメラ８４２、視線追跡カメラ８４４を含む。キーボードまたはマウスといった他の入力／出力デバイスも、ＵＳＢまたはブルートゥース（登録商標）といった通信リンクを介したポータブルデバイスへの接続が可能である。
【００８８】
出力モジュールは、ユーザの眼の前に画像をレンダリングするディスプレイ８１４を含む。いくつかの実施形態では、１つのディスプレイ、２つのディスプレイ（各眼に１つ）、マイクロプロジェクタ、または他のディスプレイ技術であってもよい。他の出力モジュールは、発光ダイオード（ＬＥＤ）８３４（ＨＭＤの視野追跡に使用してもよい）、振動触覚フィードバック８５０、スピーカ８３０、及び音源定位モジュール８１２を含む。音源定位モジュール８１２は、リアルタイムで３Ｄエフェクトサウンドを提供するよう、ＨＭＤにレンダリングまたは表示されるオブジェクト用の３Ｄサウンドをシミュレートして、スピーカまたはヘッドフォンに送る音の音源定位を実施する。ヘッドフォンなどの他の出力デバイスも、通信モジュールを介したＨＭＤへの接続が可能である。
【００８９】
移動追跡を容易にするよう備える要素は、ＬＥＤ８３４、１以上の視覚認識オブジェクト８３６、及び赤外光８３８を含んでもよい。
【００９０】
多様なデバイスからの情報は、位置モジュール８２８によるＨＭＤの位置の計算に使用可能である。こういったモジュールには、磁力計８１８、加速度計８２０、ジャイロスコープ８２２、グローバルポジショニングシステム（ＧＰＳ）モジュール８２４、及びコンパス８２６がある。さらに、位置モジュールは、カメラ及びマイクで捉えた音声または画像データを分析し位置を計算することができる。またさらに、位置モジュールは、ポータブルデバイスの位置または近くにある他のデバイスの位置を判断するようＷｉＦｉ  ｐｉｎｇテストまたは超音波テストなどのテストを実施することができる。
【００９１】
仮想現実発生装置８０８は、上述したように、位置モジュールで計算した位置を使用して、仮想現実または拡張現実を生成する。仮想現実発生装置８０８は、他のコンピューティングデバイス（例えば、ゲームコンソール、インターネットサーバなど）と連携してディスプレイモジュール８１４用画像を生成してもよい。遠隔デバイスは、画面上にゲームオブジェクトを作成するよう画面更新または命令を送信してもよい。
【００９２】
ＨＭＤ８０２は、上述したように、ゲームプレイ、または他の任意の臨場感あふれる体験に使用されてもよい。一実施形態では、ＨＭＤは、ホテルなどの現実世界の場所を仮想的に視るために使用してもよい。この場合、所定のホテルに訪れるかどうかを検討しているユーザが、ＨＭＤを用いて仮想ツアーを行い、ホテルの施設及び宿泊設備を確認してもよい。一実施形態では、ユーザがホテルを気に入れば、ユーザは、価格、オプション、及び利用可能日を提示したメニューにアクセスして、仮想ツアー中にホテルの予約を取ってもよい。
【００９３】
別の実施形態では、ＨＭＤを使用して実店舗または仮想店舗をめぐるなど、ＨＭＤをショッピングに使用してもよい。ユーザは店舗内を移動しながら、多様なアイテム（例えば、販売物）をチェックすることができる。ユーザが１以上のアイテムの購入を希望すれば、所望の物品を確認するメニュー（例えば、仮想レジ）を提供する。
【００９４】
別の実施形態では、仮想ツアーを仮想観光に用い、ＨＭＤ装着ユーザが世界中の様々な場所（例えば、万里の長城、ゴールデンゲートブリッジ、エッフェル塔など）を旅することができるようにしてもよい。ユーザが所望の場所を訪れるために旅行の予約をとれるよう、オプションを提供してもよい。
【００９５】
一実施形態では、ＨＭＤを教育に使用する。生徒は、ＨＭＤを使用し教室の設定で、仮想現実内での仮想授業にアクセスしてもよく、教材にアクセスしてもよい。例えば、生徒は、様々な芸術作品について説明する仮想ミュージアムを教師とめぐることができる。一実施形態では、ＨＭＤの視野を教師からの視野に設定し、生徒が教師と同じ画像を共有しながら仮想世界をめぐる。この方法では、教師の講義中、生徒がミュージアムの他のエリアへと行ってしまうことはない。
【００９６】
一実施形態では、仮想現実発生装置のレンダリングエンジンは、ユーザ移動の前方予測を利用し、ユーザが仮想世界のどの部分に行こうとするかを予測する。例えば、ユーザが頭を右に回し始めると、レンダリングエンジンは、ユーザが右に回転し続けるものと仮定して、現視野の右側にデータ生成を開始する。さらに、レンダリングエンジンは、ユーザが右へと注意を向けているため、右の画像の解像度を左の画像よりも高くしてもよい。
【００９７】
一実施形態では、アプリケーションプログラミングインタフェース（ＡＰＩ）を提供し、開発者がＨＭＤの機能にアクセスできるようにする。ＡＰＩを提供し、プログラムがＨＭＤで実行され、また、リモートコールがＨＭＤ内の機能にアクセスできるようにしてもよい。さらに、ＡＰＩは、ＨＭＤと通信するゲームコンソールなどＨＭＤと関連する別の装置、またはＨＭＤとインタフェースで接続する他の任意のデバイス（例えば、ＨＭＤを装着したユーザの移動を追跡するゲームコンソールに接続されたカメラ）にアクセスするインタフェースを提供してもよい。一実施形態では、ソフトウェア開発キット（ＳＤＫ）を提供し、ＡＰＩ機能を開発するアプリケーションの作成において開発者を支援する。
【００９８】
図８に示す実施形態は、ポータブルデバイスの例示的な実施態様であることを理解されたい。他の実施形態では、多様なモジュール、モジュールのサブセットを利用するか、関連タスクを多様なモジュールに割り当ててもよい。さらに、ＨＭＤの要素のサイズが多様で小型化したＨＭＤ構成部品を使用し、ＨＭＤサイズを小さくしてもよい。一実施形態では、ＨＭＤは眼鏡に似て、仮想世界または拡張世界を眼鏡のガラス上に表示するか、ＨＭＤを装着したユーザの網膜に投影してもよい。したがって、図８に示す実施形態は、排他的でも限定的ではなく、例示であり説明である。
【００９９】
図９は、一実施形態による、ＨＭＤの複数のセンサからの慣性データを利用し、ＨＭＤにおいて表示データを修正するフローチャートである。本フローチャートにおける多様な操作を順次表示し説明するが、当業者であれば、操作の一部または全てを異なる順序で実行し、組み合わせもしくは省略し、または並行して実行し得るであろう。
【０１００】
操作９０２において、ヘッドマウントディスプレイ（ＨＭＤ）の移動をＨＭＤにおいて追跡する。本方法は、操作９０４から操作９０６に進み、そこでＨＭＤのディスプレイ上への仮想現実の表示のため、表示データをコンピューティングデバイスから受信する。
【０１０１】
本方法は、操作９０６から操作９０８に進み、そこでＨＭＤの移動量が移動閾値量を超える場合、ＨＭＤの画面に走査する画像フレーム用修正表示データを生成するよう表示データを修正する。表示データは、複数のピクセル行に順次走査されるピクセル値を含み、修正表示データは、画像フレームの第１ピクセル行の走査から画像フレームの現ピクセル行の走査までの経過時間にＨＭＤが移動した距離を補正するよう、画像フレームの現ピクセル行のピクセルの調整ピクセル値を含む。
【０１０２】
調整ピクセル値は、現ピクセル行のピクセルのオフセット距離にあるピクセルのピクセル値であり、オフセット距離は、経過時間にＨＭＤが移動した距離に基づく。本方法は、操作９０６から操作９０８に進み、そこで修正表示データがＨＭＤのディスプレイ上に表示される。
【０１０３】
図１０は、多様な実施形態によるゲームシステム１１００のブロック図である。ゲームシステム１１００は、ネットワーク１１１５を介して１以上のクライアント１１１０にビデオストリームを提供するよう構成される。ゲームシステム１１００は、一般的にビデオサーバシステム１１２０及び選択可能なゲームサーバ１１２５を備える。ビデオサーバシステム１１２０は、最低限のサービス品質で１以上のクライアント１１１０にビデオストリームを提供するよう構成される。例えば、ビデオサーバシステム１１２０は、ビデオゲーム内の状態または視点を変更するゲームコマンドを受信し、クライアント１１１０に、当該状態変更を反映した最新ビデオストリームを最小遅延時間で提供してもよい。ビデオサーバシステム１１２０は、多種多様な代替ビデオフォーマットでビデオストリームを提供するよう構成されてもよい。
【０１０４】
本明細書では個別に１１１０Ａ、１１１０Ｂなどと称するクライアント１１１０は、ヘッドマウントディスプレイ、端末、パーソナルコンピュータ、ゲームコンソール、タブレットコンピュータ、電話、セットトップボックス、キオスク、無線デバイス、デジタルパッド、スタンドアロンデバイス、携帯ゲームデバイスなどであってもよい。
一般的に、クライアント１１１０は、符号化されたビデオストリームを受信し、ビデオストリームを復号化し、得られたビデオをユーザ、例えばゲームのプレイヤに表示するよう構成される。符号化ビデオストリームの受信、及び/またはビデオストリームの復号化のプロセスでは、一般的に、個々のビデオフレームをクライアントの受信バッファに保存する。
ビデオストリームは、クライアント１１１０と一体となったディスプレイ上、またはモニタもしくはテレビといった別個のデバイス上でユーザに表示されてもよい。クライアント１１１０は、複数のゲームプレイヤをサポートするよう任意に構成される。
例えば、２人、３人、４人またはそれ以上の同時プレイヤをサポートするようゲームコンソールを構成してもよい。当該プレイヤはそれぞれ、個別のビデオストリームを受信してもよく、例えば各プレイヤの視点に基づいて生成されたフレームなど、一つのビデオストリームは各プレイヤ専用に生成されたフレームの領域を含んでもよい。クライアント１１１０は、任意に地理的に分散される。
ゲームシステム１１００に含まれるクライアント数は、１もしくは２から数千、数万、またはそれ以上まで様々であってもよい。本明細書では、用語「ゲームプレイヤ」は、ゲームをする人であり、用語「ゲームプレイデバイス」は、ゲームをプレイするために使用するデバイスとして用いられる。
いくつかの実施形態では、ゲームプレイデバイスは、連携してユーザにゲームを体験させる複数のコンピューティングデバイスであってもよい。例えば、ゲームコンソール及びＨＭＤは、ＨＭＤを通して見られるゲームを配信するビデオサーバシステム１１２０と連携してもよい。一実施形態では、ゲームコンソールはビデオサーバシステム１１２０からビデオストリームを受信し、ゲームコンソールは、レンダリングのためにＨＭＤに対し、ビデオストリームを転送するかビデオストリームの更新を行う。
【０１０５】
クライアント１１１０は、ネットワーク１１１５を介してビデオストリームを受信するよう構成される。ネットワーク１１１５は、電話ネットワーク、インターネット、無線ネットワーク、電力線ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、プライベートネットワークなどを含む任意のタイプの通信ネットワークであってもよい。例示的な実施形態では、ビデオストリームは、ＴＣＰ／ＩＰまたはＵＤＰ／ＩＰなどの標準プロトコルを介して送信される。あるいは、ビデオストリームは、プロプライエタリ標準を介して送信される。
【０１０６】
クライアント１１１０の例示的な実施例は、プロセッサ、不揮発性メモリ、ディスプレイ、復号ロジック、ネットワーク通信能力、及び入力デバイスを含むパーソナルコンピュータである。復号ロジックは、ハードウェア、ファームウェア、及び／または、コンピュータ可読媒体に保存されたソフトウェアを含んでもよい。ビデオストリームを復号化（及び符号化）するシステムは、当該技術分野において周知であり、使用する特定の符号化方式によって異なる。
【０１０７】
クライアント１１１０は、受信ビデオを修正するよう構成されたシステムをさらに備えてもよいが、必須ではない。例えば、クライアントは、レンダリング、１つのビデオ画像の別のビデオ画像へのオーバレイ、ビデオ画像のトリミングなどをさらに実施するよう、構成されてもよい。
例えば、フレームＩ、フレームＰ、及びフレームＢなど、多様なタイプのビデオフレームを受信し、これらのフレームを画像に処理してユーザに表示するよう、クライアント１１１０を構成してもよい。
いくつかの実施形態では、レンダリング、シェーディング、３-Ｄ変換、ＨＭＤの光学性質の光歪み処理などのビデオストリームに対する操作をさらに実施するよう、クライアント１１１０のメンバを構成する。
複数のオーディオまたはビデオストリームを受信するよう、クライアント１１１０のメンバを任意に構成する。クライアント１１１０の入力デバイスは、例えば、片手用ゲームコントローラ、両手用ゲームコントローラ、ジェスチャ認識システム、視線認識システム、音声認識システム、キーボード、ジョイスティック、ポインティングデバイス、フォースフィードバックデバイス、移動及び／位置検出デバイス、マウス、タッチスクリーン、ニューラルインタフェース、カメラ、開発中の入力デバイスなどであってもよい。
【０１０８】
クライアント１１１０により受信されたビデオストリーム（及び、任意によりオーディオストリーム）は、ビデオサーバシステム１１２０により生成され提供される。本明細書の他の箇所でもさらに説明するように、本ビデオストリームはビデオフレームを含む（また、オーディオストリームはオーディオフレームを含む）。ビデオフレームは、ユーザに表示する画像を有意に提供するよう構成される（例えば、ビデオフレームは適切なデータ構造のピクセル情報を含む）。
本明細書で使用するように、用語「ビデオフレーム」は、ユーザに示す画像を、例えば効果的に、提供するよう構成された情報を主に含むフレームをいう。「ビデオフレーム」についての本明細書での教示は、多くの場合「オーディオフレーム」にも適用することができる。
【０１０９】
クライアント１１１０は、一般的にユーザからの入力を受信するよう構成される。当該入力は、ビデオゲームの状態を変更するか、あるいはゲームプレイに影響を与えるよう構成されたゲームコマンドを含んでもよい。ゲームコマンドは、入力デバイスを使用して受けることができ、及び／または、クライアント１１１０上で実行する命令を計算して自動的に生成されてもよい。
受信ゲームコマンドは、クライアント１１１０からネットワーク１１１５を介してビデオサーバシステム１１２０及び／またはゲームサーバ１１２５に送信される。例えば、いくつかの実施形態では、ゲームコマンドは、ビデオサーバシステム１１２０を介してゲームサーバ１１２５に送信される。
いくつかの実施形態では、ゲームコマンドのコピーはそれぞれ、クライアント１１１０からゲームサーバ１１２５及びビデオサーバシステム１１２０に送信される。ゲームコマンドは、コマンドの識別情報次第で任意に送信される。ゲームコマンドは、クライアント１１１０Ａへのオーディオストリームまたはビデオストリームの提供時とは異なる経路または通信チャネルを介して、クライアント１１１０Ａから任意に送信される。
【０１１０】
ゲームサーバ１１２５は、ビデオサーバシステム１１２０とは異なるエンティティにより任意に操作される。例えば、ゲームサーバ１１２５は、多人数参加型ゲームの発行者により操作されてもよい。本実施例では、ビデオサーバシステム１１２０は、ゲームサーバ１１２５には任意にクライアントとして見られ、ゲームサーバ１１２５から見れば従来技術のゲームエンジンを実行する従来技術のクライアントとなるよう、任意に構成される。
ビデオサーバシステム１１２０とゲームサーバ１１２５との通信は、任意でネットワーク１１１５を介する。したがって、ゲームサーバ１１２５は、ゲーム状態情報を複数のクライアントに送信する従来技術の多人数参加型ゲームサーバであってもよく、複数のクライアントのうち１つがゲームサーバシステム１１２０である。
ビデオサーバシステム１１２０は、ゲームサーバ１１２５の複数のインスタンスと同時に通信するよう構成されてもよい。例えば、ビデオサーバシステム１１２０は、様々なユーザに複数の多様なビデオゲームを提供するよう構成され得る。当該多様なビデオゲームはそれぞれ、異なるゲームサーバ１１２５によってサポートされてもよく、及び／または多様なエンティティによって公開されてもよい。
いくつかの実施形態では、地理的に分散されたビデオサーバシステム１１２０のインスタンスには、複数の多様なユーザにゲームビデオを提供するよう構成されるものがある。ビデオサーバシステム１１２０の当該インスタンスはそれぞれ、ゲームサーバ１１２５の同一インスタンスと連通していてもよい。ビデオサーバシステム１１２０と１以上のゲームサーバ１１２５との通信は、専用通信チャネルを介して任意に行われる。例えば、ビデオサーバシステム１１２０は、ゲームサーバ１１２５との通信専用高帯域幅チャネルを介し、これら２つのシステム間で接続されてもよい。
【０１１１】
ビデオサーバシステム１１２０は、少なくともビデオソース１１３０、Ｉ／Ｏデバイス１１４５、プロセッサ１１５０、及び非一時的記憶装置１１５５を備える。ビデオサーバシステム１１２０は、１台のコンピューティングデバイスであってもよく、複数のコンピューティングデバイスに分散されていてもよい。当該コンピューティングデバイスは、ローカルエリアネットワークなどの通信システムを介して任意に接続される。
【０１１２】
ビデオソース１１３０は、例えばストリーミングビデオ、または動画を形成する一連のビデオフレームなどのビデオストリームを提供するよう構成される。いくつかの実施形態では、ビデオソース１１３０は、ビデオゲームエンジン及びレンダリングロジックを含む。ビデオゲームエンジンは、プレイヤからゲームコマンドを受信し、受信コマンドに基づいてビデオゲーム状態のコピーを保持するよう構成される。
本ゲーム状態は、一般的に視点だけでなく、ゲーム環境でのオブジェクトの位置を含む。また、ゲーム状態はオブジェクトの特性、画像、色、及び／またはテクスチャを含んでもよい。ゲーム状態は、一般的に、移動、回転、攻撃、設定焦点、対話、使用などのゲームコマンドだけでなく、ゲームルールに基づいて保持される。ゲームエンジンの一部は、ゲームサーバ１１２５内に任意に配置される。
ゲームサーバ１１２５は、地理的に分散したクライアントを使用して複数のプレイヤから受信したゲームコマンドに基づいて、ゲーム状態のコピーを保持してもよい。この場合、ゲーム状態はゲームサーバ１１２５によりビデオソース１１３０に提供され、ゲーム状態のコピーが保存され、レンダリングが実施される。ゲームサーバ１１２５は、ネットワーク１１１５を介してクライアント１１１０から直接ゲームコマンドを受信してもよく、及び／またはビデオサーバシステム１１２０を介してゲームコマンドを受信してもよい。
【０１１３】
ビデオソース１１３０は、一般的に、ハードウェア、ファームウェア、及び／または、記憶装置１１５５などのコンピュータ可読媒体に保存されたソフトウェアなどのレンダリングロジックを含む。本レンダリングロジックは、ゲーム状態に基づいてビデオストリームのビデオフレームを作成するよう構成される。レンダリングロジックの全てまたは一部は、任意に、グラフィックスプロセッサ（ＧＰＵ）内に配置される。レンダリングロジックは、一般的に、ゲーム状態及び視点に基づき、オブジェクト間の３次元空間関係を判断し、及び／または適切なテクスチャを適用するよう構成された処理ステージを含む。レンダリングロジックは、後にクライアント１１１０との通信前にコード化されることが多い生ビデオを生成する。例えば、生ビデオは、Ａｄｏｂｅ  Ｆｌａｓｈ（登録商標）標準、.ｗａｖ，Ｈ．２６４、Ｈ．２６３、Ｏｎ２、ＶＰ６、ＶＣ−１、ＷＭＡ、Ｈｕｆｆｙｕｖ、Ｌａｇａｒｉｔｈ、ＭＰＧ−ｘ、Ｘｖｉｄ．ＦＦｍｐｅｇ、ｘ２６４、ＶＰ６−８、ｒｅａｌｖｉｄｅｏ、ｍｐ３などに従い符号化されてもよい。コード化プロセスは、遠隔デバイスのデコーダに配信するために任意にパッケージ化されたビデオストリームを生成する。
ビデオストリームの特徴は、フレームサイズ及びフレームレートにある。例示的なフレームサイズとして、８００ｘ６００、１２８０ｘ７２０（例えば、７２０ｐ）、１０２４ｘ７６８があるが、他のフレームサイズを使用してもよい。フレームレートとは、１秒あたりのビデオフレーム数のことである。ビデオストリームは、多様なタイプのビデオフレームを含んでもよい。例えば、Ｈ．２６４規格は、フレーム「Ｐ」及びフレーム「Ｉ」を含む。フレームＩは、表示デバイス上の全マクロブロック／ピクセルをリフレッシュする情報を含み、フレームＰは、マクロブロック／ピクセルのサブセットをリフレッシュする情報を含む。フレームＰは、一般的にフレームＩよりもデータサイズが小さい。本明細書で使用するように、用語「フレームサイズ」は、フレーム内のピクセル数を言う。用語「フレームデータサイズ」は、フレームの保存に要するバイト数を言う。
【０１１４】
他の実施形態では、ビデオソース１１３０は、カメラなどのビデオ記録デバイスを含む。本カメラは、コンピュータゲームのビデオストリームに含めることができる遅延またはライブビデオの生成に使用されてもよい。結果得られるビデオストリームは、レンダリングされた画像、及び、スチルカメラまたはビデオカメラを使用して保存された画像の両方を、任意に含む。また、ビデオソース１１３０は、ビデオストリームに含めるよう事前保存されたビデオを保存するよう構成された記憶装置を含んでもよい。また、ビデオソース１１３０は、例えば人物などのオブジェクトの移動または位置を検出するよう構成された移動または位置検出デバイス、及び、ゲーム状態を判断するか検出された移動及び／または位置に基づくビデオを作成するよう構成されたロジックを含んでもよい。
【０１１５】
ビデオソース１１３０は、他のビデオに配置されるよう構成されたオーバレイを提供するよう、任意に構成される。例えば、本オーバレイは、コマンドインタフェース、ログイン命令、ゲームプレイヤへのメッセージ、他のゲームプレイヤの画像、他のゲームプレイヤのビデオフィード（例えば、ウェブカメラビデオ）を含んでもよい。タッチスクリーンインタフェースまたは視線検出インタフェースを含むクライアント１１１０Ａの実施形態では、オーバレイは、仮想キーボード、ジョイスティック、タッチパッドなどを含んでもよい。オーバレイの一実施例では、プレイヤの音声がオーディオストリーム上にオーバレイされる。ビデオソース１１３０は、任意に１以上のオーディオソースをさらに含む。
【０１１６】
ビデオサーバシステム１１２０が複数のプレイヤからの入力に基づいてゲーム状態を保持するよう構成される実施形態では、各プレイヤにおける視界の位置及び方向を成す視点は、違っていてもよい。ビデオソース１１３０は、各プレイヤの視点に基づいて各プレイヤに個別のビデオストリームを提供するよう、任意に構成される。さらに、ビデオソース１１３０は、異なるフレームサイズ、フレームデータサイズ、及び／または符号化をクライアント１１１０のそれぞれに提供するよう構成されてもよい。ビデオソース１１３０は、３-Ｄビデオを提供するよう任意に構成される。
【０１１７】
Ｉ／Ｏデバイス１１４５は、ビデオサーバシステム１１２０が、ビデオ、コマンド、情報リクエスト、ゲーム状態、視線情報、デバイス動作、デバイス位置、ユーザ移動、クライアント識別情報、プレイヤ識別情報、ゲームコマンド、セキュリティ情報、オーディオなどの情報を送受信するよう構成される。Ｉ／Ｏデバイス１１４５は、一般的に、ネットワークカードまたはモデムなどの通信ハードウェアを含む。Ｉ／Ｏデバイス１１４５は、ゲームサーバ１１２５、ネットワーク１１１５、及び/またはクライアント１１１０と通信するよう構成される。
【０１１８】
プロセッサ１１５０は、本明細書で論じるビデオサーバシステム１１２０の多様な構成部品に含まれる、例えばソフトウェアなどのロジックを実行するよう構成される。例えば、プロセッサ１１５０は、ビデオソース１１３０、ゲームサーバ１１２５、及び／またはクライアント限定子１１６０の機能を実施するよう、ソフトウェア命令を用いてプログラムされてもよい。ビデオサーバシステム１１２０は、任意で、プロセッサ１１５０の複数のインスタンスを含む。また、プロセッサ１１５０は、ビデオサーバシステム１１２０により受信されたコマンドを実行するよう、または本明細書で論じるゲームシステム１１００の多様な要素の動作を調整するよう、ソフトウェア命令を用いてプログラムされてもよい。プロセッサ１１５０は、１以上のハードウェアデバイスを含んでもよい。プロセッサ１１５０は、電子プロセッサである。
【０１１９】
記憶装置１１５５は、非一時的アナログ及び／またはデジタル記憶装置を含む。例えば、記憶装置１１５５は、ビデオフレームを保存するよう構成されたアナログ記憶デバイスを含んでもよい。記憶装置１１５５は、例えばハードドライブ、光学ドライブ、または固体記憶装置など、コンピュータ可読デジタル記憶装置を含んでもよい。記憶装置１１１５は、ビデオフレーム、擬似フレーム、ビデオフレーム及び擬似フレームの両方を含むビデオストリーム、オーディオフレーム、オーディオストリームなどを保存するよう（例えば、適切なデータ構造またはファイルシステムで）構成される。記憶装置１１５５は、任意で、複数のデバイスに分散される。いくつかの実施形態では、記憶装置１１５５は、本明細書の他の箇所で論じるビデオソース１１３０のソフトウェアコンポーネントを保存するよう構成される。本コンポーネントは、必要に応じプロビジョニング可能な形式で保存されてもよい。
【０１２０】
さらに、ビデオサーバシステム１１２０は、任意にクライアント限定子１１６０を備える。クライアント限定子１１６０は、クライアント１１１０Ａまたは１１１０Ｂなどのクライアントの能力を遠隔で判断するよう構成される。本能力は、クライアント１１１０Ａ自体の能力、ならびに、クライアント１１１０Ａとビデオサーバシステム１１２０との１以上の通信チャネルの能力の両方を含むことができる。例えば、クライアント限定子１１６０は、ネットワーク１１１５を通して通信チャネルをテストするよう構成されてもよい。
【０１２１】
クライアント限定子１１６０は、クライアント１１１０Ａの能力を手動または自動で判断（例えば、発見）することができる。手動による判断では、クライアント１１１０Ａのユーザと通信し、能力を提供するようユーザに求める。例えば、いくつかの実施形態では、クライアント限定子１１６０は、クライアント１１１０Ａのブラウザ内に画像、テキストなどを表示するよう構成される。一実施形態では、クライアント１１１０Ａはブラウザを含むＨＭＤである。別の実施形態では、クライアント１１１０Ａはブラウザを有するゲームコンソールであり、ＨＭＤに表示されてもよい。表示されたオブジェクトは、クライアント１１１０Ａのオペレーティングシステム、プロセッサ、ビデオデコーダタイプ、ネットワーク接続タイプ、ディスプレイ解像度などの情報を入力するようユーザに求める。ユーザにより入力された情報は、クライアント限定子１１６０に返送される。
【０１２２】
自動判定は、例えば、クライアント１１１０Ａでのエージェントの実行及び／またはクライアント１１１０Ａへのテストビデオの送信により、実施されてもよい。エージェントは、ウェブページに埋め込まれるか、アドオンとしてインストールされたＪａｖａ（登録商標）スクリプトなどの計算命令を備えてもよい。エージェントは、任意でクライアント限定子１１６０により提供される。多様な実施形態において、エージェントは、クライアント１１１０Ａの処理能力、クライアント１１１０Ａの復号化及び表示能力、クライアント１１１０Ａとビデオサーバシステム１１２０との通信チャネルの遅延信頼性及び帯域幅、クライアント１１１０Ａの表示タイプ、クライアント１１１０Ａ上にあるファイアウォール、クライアント１１１０Ａのハードウェア、クライアント１１１０Ａ上で実行されるソフトウェア、クライアント１１１０Ａ内のレジストリエントリなどを含むことができる。
【０１２３】
クライアント限定子１１６０は、ハードウェア、ファームウェア、及び／または、コンピュータ可読媒体に保存されたソフトウェアを含む。クライアント限定子１１６０は、ビデオサーバシステム１１２０の１以上の他の要素とは別個のコンピューティングデバイス上に任意に配置される。例えば、いくつかの実施形態では、クライアント限定子１１６０は、ビデオサーバシステム１１２０の複数のインスタンスとクライアント１１１０との通信チャネルの特性を判断するよう構成される。本実施形態では、クライアント限定子によって発見された情報を使用して、ビデオサーバシステム１１２０のどのインスタンスがクライアント１１１０のうちの１つにストリーミングビデオを配信するのに最適かを判断することができる。
【０１２４】
実施形態は、携帯型デバイス、マイクロプロセッサシステム、マイクロプロセッサベースまたはプログラマブルな家電製品、ミニコンピュータ、メインフレームコンピュータなどを含む多様なコンピュータシステム構成で実施してもよい。また、実施形態は、ネットワークを介してリンクする遠隔処理デバイスによりタスクが実施される分散コンピューティング環境においても実施することができる。
【０１２５】
上記の実施形態を念頭において、実施形態は、コンピュータシステムに保存されたデータを伴う多様なコンピュータ実施操作を使用することができることを理解されたい。本操作は、物理量を伴う物理的操作を要する。実施形態の一部を成し本明細書で説明する操作のいずれも、有用な機械操作である。また、実施形態は、本操作を実施するデバイスまたは装置に関する。本装置は、専用コンピュータなど、特定用途に合わせて構成されてもよい。コンピュータを専用コンピュータとして定義した場合、コンピュータは、特定用途の操作が可能ではあるが、特定用途の一部ではない他の処理、プログラム実行またはルーチンを実施することもできる。あるいは、操作は、コンピュータメモリまたはキャッシュに保存されるかネットワークを介して取得された１以上のコンピュータプログラムにより任意に起動または構成された汎用コンピュータにより処理されてもよい。データがネットワークを介して取得される場合、データは、例えばコンピューティングリソースのクラウドなど、ネットワーク上の他のコンピュータにより処理されてもよい。
【０１２６】
また、１以上の実施形態は、コンピュータ可読媒体上のコンピュータ可読コードとして作製され得る。コンピュータ可読媒体は、データ保存が可能な任意のデータ記憶デバイスであり、後にコンピュータシステムにより読み取り可能である。コンピュータ可読媒体の実施例に、ハードドライブ、ネットワーク接続記憶装置（ＮＡＳ）、リードオンリメモリ、ランダムアクセスメモリ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、ならびに他の光学的及び非光学的データス記憶デバイスがある。コンピュータ可読媒体は、ネットワーク接続コンピュータシステムを介して分散されたコンピュータ可読有形媒体を含み、コンピュータ可読コードは分散して保存実行されるようにする。
【０１２７】
本方法の操作は特定の順序で説明しているが、操作と操作の間で他のハウスキーピング操作を実施してもよい。あるいは、時間的にわずかにずらして操作を実施するよう調整してもよく、オーバレイ操作処理が所望の方法で実施される限り、処理操作を多様な処理間隔で実行可能なシステムに、操作を分散してもよい。
【０１２８】
上述の実施形態は、明確に理解されるよう詳述したが、添付の特許請求の範囲内で所定の変更及び修正が可能であることは明らかであろう。したがって、本実施形態は、例示的なものであって限定的なものではなく、本実施形態は本明細書での内容に限定されず、添付の特許請求の範囲及び均等物の範囲内で修正され得る。
【図１】
0006431198.tif 000002
【図２Ａ】
0006431198.tif 000003
【図２Ｂ】
0006431198.tif 000004
【図３Ａ】
0006431198.tif 000005
【図３Ｂ】
0006431198.tif 000006
【図３Ｃ】
0006431198.tif 000007
【図３Ｄ】
0006431198.tif 000008
【図４Ａ】
0006431198.tif 000009
【図４Ｂ】
0006431198.tif 000010
【図５】
0006431198.tif 000011
【図６】
0006431198.tif 000012
【図７】
0006431198.tif 000013
【図８】
0006431198.tif 000014
【図９】
0006431198.tif 000015
【図１０】
0006431198.tif 000016