(57)【特許請求の範囲】
【請求項１】
ヘッドマウントディスプレイ（ＨＭＤ）上に画像をレンダリングするための方法であって、この方法は、
前記ＨＭＤ内部で１つまたは複数の第一のカメラでユーザーの視線を追跡し、
前記ＨＭＤの動きを追跡し、前記動きを追跡することは前記ＨＭＤ内部にはない第二のカメラで撮影した前記ＨＭＤの画像を解析することを含み、前記第二のカメラは赤外光または発光ダイオード（ＬＥＤ）光を検出して前記ＨＭＤの動きを追跡するように構成され、前記ＨＭＤの動きは仮想世界のレンダリングと前記ＨＭＤの追跡された動きにもとづいた前記仮想世界内の移動を引き起こし、
前記ＨＭＤのディスプレイ画面に前記仮想世界をレンダリングし、前記レンダリングは、第一の領域を第二の領域よりも高い優先順位でレンダリングすることにより、前記第一の領域に前記第二の領域よりも高い解像度を与えるように構成され、前記第一の領域は、前記ＨＭＤの前記ディスプレイ画面を見るときの前記ユーザーの視線が検出された領域であり、
前記仮想世界に対するビューに変化をもたらす前記ＨＭＤの前記動きにもとづいて前記ディスプレイ画面上の前記仮想世界の前記レンダリングを更新することを含み、
前記更新することは、前記ＨＭＤ内の前記第一のカメラによって検出された前記ユーザーの前記視線にもとづいて前記第一の領域の場所を更新し続け、
前記第一の領域および前記第二の領域はそれぞれレンダリング・ポリシーに関連づけられており、前記第一の領域および前記第二の領域に対する前記レンダリング・ポリシーは、前記ユーザーの前記視線の軌跡に基づいて予測される前記視線の動きに基づいて、決定される、方法。
【請求項２】
前記レンダリング・ポリシーは、前記第一の領域に対して前記第二の領域よりも高い解像度を定義し、前記レンダリング・ポリシーは、さらに前記第一の領域および前記第二の領域に対する１つまたは複数の画面更新頻度と、前記第一の領域および前記第二の領域に画像をレンダリングする複雑度とを含む、請求項１に記載の方法。
【請求項３】
前記第二のカメラでコントローラの動きを追跡し、
前記コントローラと同期して動くゲームオブジェクトを生成することをさらに含み、前記ゲームオブジェクトは前記仮想世界上でレンダリングされる、請求項１に記載の方法。
【請求項４】
前記ゲームオブジェクトは、前記コントローラまたは前記コントローラを介した入力と同期して動くゲームまたは仮想空間におけるアバターである、請求項３に記載の方法。
【請求項５】
ヘッドマウントディスプレイ（ＨＭＤ）上に画像をレンダリングするための方法であって、この方法は、
前記ＨＭＤの動きを追跡し、前記動きを追跡することは、前記ＨＭＤに関連づけられた慣性センサ情報と、前記ＨＭＤ内部にはなく前記ＨＭＤの相互作用空間をキャプチャするように向けられたカメラで撮影した前記ＨＭＤの画像を解析することとを組み合わせることによって実行され、前記カメラは赤外光または発光ダイオード（ＬＥＤ）光を検出して前記ＨＭＤの動きに連動した位置と向きを追跡するように構成され、前記ＨＭＤの動きは仮想世界に異なるビューのレンダリングと前記ＨＭＤの追跡された動きにもとづいた前記仮想世界内の移動を引き起こし、
前記ＨＭＤのディスプレイ画面に前記仮想世界をレンダリングし、前記レンダリングは、第一の領域を第二の領域よりも高い優先順位でレンダリングすることにより、前記第一の領域に前記第二の領域よりも高い解像度を与えるように構成され、前記第一の領域は前記ディスプレイ画面の中央領域に配置され、前記第二の領域は前記ディスプレイ画面の前記中央領域の外側に配置され、
前記仮想世界に対するビューに変化をもたらす前記ＨＭＤの前記動きにもとづいて前記ディスプレイ画面上の前記仮想世界の前記レンダリングを更新することを含み、
前記更新することは、前記第二の領域の解像度に比べてより高い解像度で前記ディスプレイ画面の中央に前記仮想世界のための画像コンテンツをレンダリングし続け、
前記第一の領域および前記第二の領域はそれぞれレンダリング・ポリシーに関連づけられており、前記第一の領域および前記第二の領域に対する前記レンダリング・ポリシーは、ユーザーの視線の軌跡に基づいて予測される前記視線の動きに基づいて、決定される、方法。
【請求項６】
前記レンダリング・ポリシーは、前記第一の領域に対して前記第二の領域よりも高い解像度を定義し、前記レンダリング・ポリシーは、さらに前記第一の領域および前記第二の領域に対する１つまたは複数の画面更新頻度と、前記第一の領域および前記第二の領域に画像をレンダリングする複雑度とを含む、請求項５に記載の方法。
【請求項７】
前記カメラでコントローラの動きを追跡し、
前記コントローラと同期して動くゲームオブジェクトを生成することをさらに含み、前記ゲームオブジェクトは前記仮想世界上でレンダリングされる、請求項５に記載の方法。
【請求項８】
前記ゲームオブジェクトは、前記コントローラまたは前記コントローラを介した入力と同期して動くゲームまたは仮想空間におけるアバターである、請求項７に記載の方法。
【請求項９】
前記ＨＭＤはコンピュータと通信し、前記コンピュータは前記ＨＭＤによって前記仮想世界をレンダリングするための画像フレームを処理するように構成される、請求項５に記載の方法。
【請求項１０】
前記コンピュータは前記画像フレームを生成するためのグラフィックス処理ユニット（ＧＰＵ）を含む、請求項９に記載の方法。
【請求項１１】
前記第一の領域に比べて低い解像度の前記第二の領域に対してはより少ない画像データを生成する、請求項９に記載の方法。
【請求項１２】
前記ＨＭＤは有線接続または無線接続により前記コンピュータと通信する、請求項１１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ヘッドマウントディスプレイ装置（ＨＭＤ）の使い易さを改善するための方法に関するもので、より詳細には、ＨＭＤ内のディスプレイ上に画像をレンダリングするための方法、システム、及びコンピュータプログラムに係るものである。
【背景技術】
【０００２】
典型的には、ＨＭＤはユーザーの頭部の周りに着用される携帯用デバイスで、眼から短い距離に位置するディスプレイがユーザー対話のための画像を提供するようになっている。いくつかのＨＭＤでは、混合された現実と仮想生活環境を提供し、ユーザーは、一部のリアルライブ画像と共にコンピューティングデバイスが生成した画像を見ることができる。その他のＨＭＤでは、ＨＭＤディスプレイ上に仮想世界を提供しながら、ユーザーを外界から遮断する没入型の体験を提供している。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかし、時としてＨＭＤのコンピューティング能力がディスプレイ上の画像をリフレッシュするのに十分ではないため、ユーザーがＨＭＤの表示を通じて現実世界や仮想世界を見ている間に問題が発生する場合がある。これは、ＨＭＤのユーザーに乗り物酔いを引き起こす可能性がある。
【０００４】
必要とされるのは、ユーザーの動きに迅速に対応する画像を提供し、ユーザーにあたかも現実世界を探しているのと同様な感覚の没入感を持たせるために十分なディスプレイ品質を実現するＨＭＤである。
【０００５】
実施形態が生出するのはこの状況からである。
【課題を解決するための手段】
【０００６】
方法、装置、システム、及びコンピュータプログラムは、ヘッドマウントディスプレイ（ＨＭＤ）上に画像をレンダリングするために提示されている。なお、本実施形態は、方法、装置、システム、デバイス、またはコンピュータ可読媒体上のコンピュータプログラムのような多くの手段で実装することができることを理解すべきである。いくつかの実施形態を以下に説明する。
【０００７】
一実施形態において、この方法は、ＨＭＤ内部の１つ以上の第一カメラでＨＭＤの動きを追跡するための動作を含む。ＨＭＤの動きは、ＨＭＤに含まれていない第二のカメラで撮影したＨＭＤの画像を解析することによって追跡される。さらに、方法は、視線とＨＭＤの動きに基づいてユーザーの視線の動きを予測するための動作を含む。ＨＭＤによってレンダリングされたビューに画成される複数の領域のためのレンダリング・ポリシーは、視線の予測された動きや軌跡に基づいて判断される。画像は、レンダリング・ポリシーに基づいてＨＭＤによってレンダリングされる。
【０００８】
別の実施形態では、１つ以上のプロセッサによって実行されるときに、ヘッドマウントディスプレイ（ＨＭＤ）に画像をレンダリングするための非一時的なコンピュータ可読記憶媒体に埋め込まれたコンピュータプログラムが提供される。コンピュータプログラムは、ＨＭＤ内部の１つ以上の第一カメラでユーザーの視線を追跡するためのプログラム命令を含んでいる。さらに、コンピュータプログラムは、ＨＭＤの動きを追跡するためのプログラム命令を含んでいる。運動の追跡は、ＨＭＤに含まれていない第二カメラで撮影したＨＭＤの画像を解析することを含んでいる。また、コンピュータプログラムは、視線とＨＭＤの動きに基づいて、ユーザーの視線の動きを予測するためのプログラム命令と、視線の予測された動きに基づいて、ＨＭＤよってレンダリングされるビュー上で画成された複数の領域のためのレンダリング・ポリシーを決定するためのプログラム命令を含んでいる。コンピュータプログラムはさらに、レンダリング・ポリシーに基づいてＨＭＤによって画像をレンダリングするためのプログラム命令を含んでいる。
【０００９】
さらに別の実施形態では、ヘッドマウントディスプレイ（ＨＭＤ）に画像をレンダリングするためのこの方法は、ＨＭＤを装着したユーザーの視線を追跡するための動作を含んでいる。さらに方法は、ユーザーの視線に基づいて、ＨＭＤによってレンダリングされている複数のゲームオブジェクトの優先順位値を割り当てるための動作を含んでいる。各ゲームオブジェクトのレンダリング優先順位値は、レンダリングの周波数、レンダリングされるゲームオブジェクトの複雑度、ゲームオブジェクトの画質、またはレンダリング解像度の少なくとも１つによって決定される。さらにまた、この方法は、ゲーム内での各ゲームオブジェクトの重要度に基づいて、レンダリング優先順位値を変更するための動作を含んでいる。複数のゲームオブジェクトは、レンダリング優先順位値に応じてＨＭＤによってレンダリングされる。
【００１０】
他の実施態様は、添付の図面と併せて以下の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
【００１１】
実施形態は、添付の図面と併せて以下の説明を参照することによって最もよく理解することができる。
【００１２】
【図１】一実施形態によるヘッドマウント装置（ＨＭＤ）を含む複数のデバイスと対話するユーザーを示している。
【００１３】
【図２】一実施形態による画像解析を介したＨＭＤの追跡を示している。
【００１４】
【図３】一実施形態によるユーザーの視線を追跡するための内部カメラを備えるＨＭＤを示している。
【００１５】
【図４】視覚追跡のための照明ポイントを伴うＨＭＤの実施形態を示している。
【００１６】
【図５】一実施形態によるディスプレイのリフレッシングを示している。
【００１７】
【図６】一実施形態によるＨＭＤのディスプレイに表示されるゲームシーンを示している。
【００１８】
【図７】一実施形態による優先順位レンダリングためのディスプレイ中での領域生成を示している。
【００１９】
【図８】本発明の実施形態を実施するために使用することができるデバイスのアーキテクチャーを示している。
【００２０】
【図９】一実施形態によるＨＭＤに画像をレンダリングするためのフローチャートである。
【００２１】
【図１０】本発明の実施形態を実施するために使用することができるハードウェア及びユーザーインタフェースを示している。
【００２２】
【図１１】本発明の様々な実施形態によるゲームシステムのブロック図である。
【発明を実施するための形態】
【００２３】
以下の実施形態は、ヘッドマウントディスプレイ（ＨＭＤ）でシーンをレンダリングするための方法、装置、システム、及びコンピュータプログラムについて説明している。なお、本実施形態は、これら特定な細目の一部または全てがなくても実施できることは明らかになるであろう。他の例において、周知のプロセス動作は、不必要に本発明の実施形態を不明瞭にしないために詳細には記載されていない。
【００２４】
図１は、一実施形態に従ったヘッドマウント装置（ＨＭＤ）を含む複数のデバイスと対話するユーザーを示している。ユーザー１１４は、ユーザーの眼の近くに画像をレンダリングするディスプレイ１１０を備えたＨＭＤ１０２を着用している。一実施形態では、画像は３Ｄでレンダリングされる。
【００２５】
また、本明細書中に提示される実施形態ではＨＭＤ１０２のディスプレイを参照して記載されているが、他の実施形態では、ユーザーの網膜上に画像を投影するなど、他のビューレンダリング方法を使用することができる。
【００２６】
一実施形態では、コンピューティングデバイス１０６がＨＭＤ１０２上に表示されるゲームを実行する。従って、コンピューティングデバイス１０６は、ゲームをプレイするための画像を表示するＨＭＤ１０２と協働する。ゲーム動作処理は、コンピューティングデバイス１０６上で、ＨＭＤ１０２上で、或いはコンピューティングデバイス１０６とＨＭＤ１０２の双方上で行うことができる。別の実施形態では、ゲーム動作の処理は、ネットワーク接続されたゲームサーバ１２４、または遠隔ゲームサーバ（図示せず）のクラスタによって実行されるが、これらはゲームをプレイするための画像を表示するためにコンピューティングデバイス１０６及び／またはＨＭＤ１０２と協働する。さらに別の実施形態では、ＨＭＤ１０２は、ゲームをプレイするためのゲームサーバ１２４と協働する。
【００２７】
図１の実施形態では、ＨＭＤ１０２は、コンピュータデバイス１０６と無線通信する（例えば、ＷｉＦｉ（登録商標）、ブルートゥースなど）。他の実施形態（図示せず）では、ＨＭＤ１０２はコンピュータデバイス１０６に直接接続するか、或いはネットワーク（例えば、インターネット）を介して通信することができる。例えば、コンピュータデバイス１０６は、ゲームサービスを提供するネットワーク上のサーバであってもよい。いくつかの実施形態では、ＨＭＤは、自律ゲームプレイ装置であり、ゲームは、ゲームを実行するための外部装置を必要とせず、ＨＭＤ上で直接実行される。
【００２８】
一実施形態では、カメラ（または複数のカメラ）がコンピューティングデバイス１０６に接続されている。コンピューティングデバイス１０６がネットワーク上のサーバである場合、カメラ１０４は、ネットワーク（例えば、インターネット）経由でコンピューティングデバイスに画像を送信するネットワーク接続カメラであってもよい。カメラ１０４は、１つまたは複数の通常の画像カメラ、ステレオカメラ（すなわち、プレイエリアから画像をキャプチャする２つ以上のレンズで）、赤外線カメラ、深度カメラ、３Ｄカメラなどであってもよい。
【００２９】
カメラ１０４で撮影された画像は、ＨＭＤ１０２の位置と動きを追跡するために処理することができる。加えて、画像はプレイエリアで、ユーザーの位置と動き或いはユーザーの特徴（例えば、ユーザーの頭部、ユーザーの口、ユーザーの手、ユーザーの胴体など）、コントローラの特徴（例えば、片手コントローラ１１６、両手コントローラ１１８など）、または他の要素の特徴を追跡するために使用することができる。
【００３０】
一実施形態では、ユーザーは音声認識を介してコマンドを提供することができ、これは１つまたは複数のマイクロホン１２０から音声キャプチャを介してコンピューティングデバイス１０６で行ってもよいし、また、一実施形態では、１つ以上のマイクロホンも備えるＨＭＤ１０２によって行うことができる。別の実施形態において、ユーザー１１４は、コンピューティングデバイス１０６によって解析され認識されるジェスチャー（身振り）を介して入力することができる。
【００３１】
一実施形態では、コンピューティングデバイス１０６はまた、いくつかのゲーム動作を行うことができるディスプレイ１０８に接続される。例えば、ユーザーがＨＭＤ１０２を装着する前に、ディスプレイ１０８はユーザーに指示を与えることができる。別の実施形態では、ディスプレイ１０８は、ＨＭＤに示したものと同じ、または類似のディスプレイを提供するので、近傍にいる他のプレイヤーは、ＨＭＤ１０２に表示されるゲーム上でユーザー１１４の進捗状況を認識することができる。
【００３２】
一実施形態では、ユーザーは１つまたは複数のコントローラ１１６を保持する。コンピューティングデバイス１０６は、コントローラの位置と動きを追跡し、コントローラの動きに関連する動作、またはコントローラで入力されたインプットはゲームのインプットとして使用することができる。例えば、コントローラは剣の握りを表現してもよいし、そして剣はゲームシーンで表示される。ユーザーがコントローラを移動させると、剣はコントローラに同期して仮想世界内を移動する。このように、プレイヤーは、剣が武器である格闘ゲームの操作を行うことができるのである。
【００３３】
一実施形態では、コンピューティングデバイス１０６は、ＨＭＤ１０２とゲームコントローラ１１６との間の相対位置を算出する。その後、ＨＭＤ１０２に同期してゲームオブジェクトを移動させるために、相対位置はゲームで使用される。
【００３４】
また、コンピューティングデバイスは第二のコントローラ１１６を追跡することができ、この第二のコントローラもＨＭＤのディスプレイ上にレンダリングされるゲームオブジェクトにリンクすることができる。例えば、第二のコントローラは盾であってもよく、ユーザーは、仮想世界において剣と盾で戦うことができる。他の実施形態では、コントローラは、武器（例えば、銃、ライフルまたは任意のタイプの発砲武器、斧、レーザー銃、自動車のステアリングデバイス、自動車のステアリングデバイスまたはハンドル、閃光装置、ハンマー、盾など）のように他の目的のためにゲームで使用することができる。
【００３５】
別の実施形態では、ユーザーは両手コントローラと対話することができ、この両手コントローラは片手コントローラと同じように使用することができる。例えば、両手コントローラはハンドルとして使用することができる。
【００３６】
別の実施形態では、コントローラのボタンを押すことなどによってコントローラで入力されたインプットは、ゲームでのコマンドを実行するために使用することができる。例えば、ユーザーは、ゲーム内のアバターを移動させたり、武器を発射させたり、オブジェクトを掴んだりするために、コントローラのボタンを使用することができる。
【００３７】
なお、図１に示す実施形態は例示的なものであることに留意されたい。他の実施形態は、異なるデバイス、種々な数のデバイスを用いることができると共に、異なるデバイス間で多かれ少なかれ対話を有しており、他の通信方法（例えば、超音波）を使用することも可能であり、２人のユーザーがそれぞれのＨＭＤを身に着けて同じゲームを楽しむマルチプレイヤーゲームなどを容易にする。従って、図１に示す実施の形態は、排他的または限定的として解釈されるべきではなく、例示的または具体例として解釈されるべきである。
【００３８】
図２は、一実施形態に従って画像解析を介したＨＭＤの追跡を示している。一実施形態では、ＨＭＤ２０８は、ＨＭＤの視覚追跡を援助するエレメントが含まれている。例えば、ＨＭＤは、赤外線光２１４、発光ダイオード（ＬＥＤ）２１０、及び画像解析によって容易に認識される特殊な形状のオブジェクトを含むことができる。例えば、簡単に追跡するために１つまたは複数の球形オブジェクト２１２をＨＭＤに追加してもよい。また、球形オブジェクト２１２は、ＬＥＤ光、赤外光、または他のタイプの照明で照らすことができる。
【００３９】
また、ＨＭＤ２０８は、回帰反射領域、特殊な色の領域（例えば、青色の長方形など）、或いはマーキング（例えば、ＨＭＤ表面の３本の平行線）など、特別な視覚的マーカー（図示せず）を含むことができる。
【００４０】
いくつかの実施形態では、ＨＭＤは、ＨＭＤの背部（すなわち、頭部の後ろに触れるＨＭＤの一部）にライトやマーカーを備えている。この構成では、ユーザーが向き直ってカメラに背を向けても、ＨＭＤの後ろでライトやマーカーを検出することにより、ＨＭＤの位置を視覚的に追跡することがなおも可能である。
【００４１】
ＨＭＤの視覚追跡は、異なるタイプのカメラを用いて実施することができる。一実施形態では、ＨＭＤは、２つ以上のレンズを備えたカメラであるステレオカメラ２０２で追跡される。ＨＭＤの位置追跡を援助するため、ＨＭＤにおいて、並びにＨＭＤのプレイフィールド内の奥行き計算（例えば、ＨＭＤからＨＭＤの写真を撮るカメラまでの距離）において、機能の三角測量解析を行う目的で、異なるレンズからの画像が比較される。
【００４２】
別の実施形態では、赤外線カメラ２０４は赤外光（例えば、赤外光２１４）を解析する。赤外光は人間の眼には見えないが、赤外光は赤外線カメラには可視である。このように、ＨＭＤは、ＨＭＤの外観を損なわない赤外光を含むことができる。また、一部の環境（例えば、低輝度または高輝度）では、他のタイプの光のよりも赤外光を追跡する方が簡単である。
【００４３】
さらに別の実施形態では、標準カメラ２０６もＨＭＤの光または特徴を追跡するために使用されるが、１つのレンズだけを有しているので、本明細書ではモノカメラと称することにする。カメラでプレイフィールド内でのＨＭＤの深度を判断するために、ＨＭＤ上のいくつかの機能サイズは、深度を検出するために解析される。特徴が小さければ小さいほど、ＨＭＤはカメラから遠くにある。また、追跡は、慣性運動追跡、推測航法、コンピューティングデバイスにおけるＨＭＤ間の超音波通信などのような他のタイプの慣性運動トラッキングと組み合わせることもできる。
【００４４】
なお、図２に示す実施形態は例示的なものであることに留意されたい。他の実施形態は、プレイフィールドで異なる一種類のみのカメラ、複数のカメラなどを利用することができる。図２に示された実施形態は、排他的または限定的あると解釈されるべきではなく、例示的または具体例として解釈されるべきである。
【００４５】
図３は、一実施形態に従ってユーザーの視線を追跡するための内部カメラ３０２、３０４を備えるＨＭＤ２０８を示している。一実施形態では、ＨＭＤ２０８は、ユーザーがＨＭＤ２０８のディスプレイ３０６を見ているとき、ユーザーの視線を追跡するための１つまたは複数のカメラ（例えば３０２、３０４）を有している。一実施形態では、２つのカメラ３０２、３０４がユーザーの視界を追跡し、各カメラが別々の眼を追跡する。別の実施形態では、ＨＭＤの中心の周りに位置する単一のカメラが両眼の画像を取得し、画像は視線を判断するために解析される。
【００４６】
なお、図３の実施形態は目の前に位置しているカメラを含んでいるが、カメラはまた、ＨＭＤのさまざまな部分に位置していてもよい。ミラー及びフィルタを使用して、複数の場所に視線追跡のためのカメラを配置することが可能である。例えば、一実施形態ではカメラをディスプレイの背後に位置づけることができ、これにより光を一方向（例えば、眼からカメラに）に通過させることが可能となる。別の実施形態では、カメラは一方の側に位置づけてもよいし、カメラの視界を眼の方向に向け直すためにカメラをＨＭＤの中心にあるミラーに向けるようにすることもできる。
【００４７】
図４は、視覚追跡のための照明ポイントを伴ったＨＭＤの実施形態を示している。図４は、プレイフィールド内でＨＭＤの動きを追跡するのを容易にする複数の特徴を伴うＨＭＤを示している。ＨＭＤ４０２には、ＨＭＤの正面、側面、及び背面に位置する赤外光４０４が含まれている。
【００４８】
ＨＭＤの前面にある４つの赤外光は、ＨＭＤの同じ前頭部面に位置する。図４の実施形態では、上部の赤外光間の距離は、下部にある赤外光間の距離よりも小さい。このように、前面の赤外光により形成される台形のパターンは、ＨＭＤの追跡を容易にする。例えば、ユーザーが片側に自分の頭部を傾けた場合、前部の赤外光によって形成された台形は、ユーザーの頭部と同じ角度に傾くことになる。
【００４９】
また、それぞれの側部にある３つの赤外光も追跡を支援する。サイド赤外光のうちの２つは、ＨＭＤの前面と側部との間の角度で配置されている。そのため、これらの２つの赤外光は、カメラがＨＭＤの前またはＨＭＤの側部にあるとき、カメラによって見られることができる。ＨＭＤの側部のもう１つの赤外光は、頭部の側に向けられており、換言すれば赤外光は、ＨＭＤの正面に位置する赤外光に関して約９０°である。最後に、ＨＭＤの背面にある赤外光は、ユーザーがカメラから顔をそらしたときにもＨＭＤの追跡を可能にする。
【００５０】
ユーザーが頭部を回転させると、赤外光は様々なパターンを形成し、赤外光は、カメラからの画角に基づいて、異なるレベルの明るさで知覚される。これらの距離、赤外光のサイズ、明るさのレベルは、ＨＭＤの位置追跡においてコンピューティングデバイスを支援する。
【００５１】
また、ＨＭＤは３つのＬＥＤライト４０６を備えている。ＨＭＤの正面に位置する２つのＬＥＤライト４０６が存在し、これらは２つの交差した平面を形成するカバーを有している。平面の１つはＨＭＤの側部にあり、他の平面はＨＭＤの正面に関して一定の角度（例えば、４５°）で存在する。赤外光の追跡と同様に、コンピューティングデバイスは、カメラで撮影したＬＥＤライトの形状及び強度を解析する。このように、コンピューティングデバイスはＨＭＤの位置を判断することができる。ここでも、ＨＭＤの背面に位置するＬＥＤライトは、ユーザーがカメラから顔をそらしたときにカメラがＨＭＤを検出することを可能にする。
【００５２】
なお、図４に示す実施形態は例示的なものである。他の実施形態は、異なる一種類のみの光、二種類以上の光、光の様々なレイアウト、様々な数の光などを利用することができる。従って、図４に示された実施形態は、排他的または限定的あると解釈されるべきではなく、例示的または具体例として解釈されるべきである。
【００５３】
図５は、一実施形態に従ったディスプレイのリフレッシュを示している。多くのディスプレイでは、ディスプレイのコンテンツがレンダリングされ、また、ラインでスキャンアウトまたはリフレッシュまたは更新されたとみなされる。一度に１つのラインが上から下へ順にレンダリングされる。各ライン内では、ラインに関連する画素が左から右にリフレッシュされる。このタイプのレンダリングは、ディスプレイ上で全ての画素について同じリフレッシュ周波数を取得する。
【００５４】
本明細書に提示される実施形態は、ディスプレイ内で種々な領域を画成し、各領域におけるピクセルに異なるレンダリングの優先順位が与えられる。レンダリングの優先順位は、いかにピクセルが表示されるかを決定する。一実施形態では、ピクセルのためのレンダリング優先順位が高いほど、より頻繁にピクセルがリフレッシュされるであろう。
【００５５】
本明細書で用いられるように、ディスプレイ上で特定された領域におけるレンダリング・ポリシーは、いかにして特定された領域がスキャンアウトされるかを判断する。レンダリング・ポリシーは、いかにして領域が表示されるべきかを判断する１つまたは複数の値を含んでいる。一実施形態では、レンダリング・ポリシーは、領域のために１つまたは複数の画面更新頻度（例えば、１秒に３０回、しかし他の値も可能である）、レンダリング解像度、領域に画像をレンダリングする複雑度、或いは順序値をレンダリングすることを含んでいる。
【００５６】
レンダリング解像度は、領域内の全ての画素を個別にリフレッシュするかを判断する。最大解像度（例えば、１００％）では、領域内の全てのピクセルは色と明るさのために個々の値でリフレッシュされるであろう。しかし、往々にして領域内の画素の解像度が低下してしまい（例えば、６４％に）、これは領域内で画素の一部のみがすれ違いでリフレッシュされることを意味している。例えば、５０％のレンダリング解像度では、領域内の画素の半分が１サイクルでリフレッシュされ、他の半分は次のサイクルでリフレッシュされる。
【００５７】
この領域内の画像をレンダリングする複雑度は、領域内の画素について画素値を生成するために必要な処理の量に基づいている。例えば、均一な色の背景領域、または背景画像からの画素値で充填されている領域は、移動するアバターを含む領域をレンダリングすることよりも複雑ではないであろう。アバターのいくつかの属性に依存し、アバターが長くて自由になびくヘアーを含んでいたり、アバターが毛皮を有する動物であったりするなどの場合には、複雑度が著しく増大する。さらに、ミラー上の画像がユーザーの視線に依存するため、ミラーを含む領域は画素値を判断するために複雑な処理を必要とする可能性があり、ミラーがどこに狙いを付けているのかを判断するための計算が必要となる。
【００５８】
別の実施形態では、領域の画成は、ピクセル情報を格納するために使用されるメモリセルの数を低下させることによって変更される。この場合、領域の解像度が最大値未満である場合、ピクセルデータを格納するために使用されるメモリはそれに応じて減少される。例えば、２５％の解像度を伴う領域は、１００％の解像度に関連付けられたメモリの２５％のみを使用している。これは、同じ画素データが領域内の４つの画素グループをスキャンするために使用されることを意味している。
【００５９】
また、ディスプレイ技術は、画素領域を埋めるために領域と関連付けられたソースメモリをアップスケールすることができる。他の実施形態では、アップスケーリングまたはダウンスケーリングのための別の方法を使用することができるが、別の方法とは最近傍補間法、ミップマッピングを伴う最近傍、バイリニアフィルタリング、トライリニアフィルタリング、或いは異方性フィルタリングなどである。
【００６０】
例えば、バイリニアフィルタリングは、画素の第二の過半数画素を使用してディスプレイの一領域に第一の過半数画素を表示するときに、テクスチャーを平滑化するためのテクスチャーフィルタリング方法であるが、ここでは画素の前記第二の過半数画素数は、画素の前記第一の過半数画素数とは異なる。換言すれば、第二の過半数画素は、第一の過半数画素のスケーリング（アップまたはダウン）を必要とする。
【００６１】
多くの場合、画面上のテクスチャー形状を描画するときに、それが格納されているためテクスチャーは、ディストーションせずに正確に表示されない。このため、ほとんどのピクセルは、テクセルがそれぞれのセル内のどこかに位置する点であると仮定し、最終的にはテクセル（テクスチャー空間の単位）の間にあるテクスチャー上のポイントを使用する必要がなくなる。ピクセルが表す点（通常は、ピクセルの中央または左上の）に最も近い４つのテクセル間の双線形補間を実行するために、バイリニアフィルタリングは、これらのポイントを使用している。
【００６２】
一領域内の解像度や精細度を低下させることにより、コンピューティングリソースは、ユーザーにとってより良い体験を提供することがより重要である、画面上の他の領域に割り当てることができる。
【００６３】
レンダリング順序値は、領域が描画される順序を決定するために、コンピューティングデバイスによって割り当てられる値である。一実施形態では、コンピューティングデバイスは、領域毎にレンダリングの順序値を提供し、すべての領域がレンダリングの順序値によって決定された順序でスキャンアウトされる。つまり、コンピューティングデバイスは、レンダリングのためにすべての領域のソートされたリストを作成する。
【００６４】
一実施形態では、１つまたは複数のレンダリング規則がレンダリング・ポリシーを決める。例えば、レンダリング・ポリシーは１つのルール（例えば、左から右へ及び上から下へ画素を表示する規則）を含むことができ、或いは２つ以上のルールを含んでもよい。例えば、最初のルールは、ディスプレイの中央に位置する領域がディスプレイの周囲に位置する領域よりも高い優先度を有するであろうことを定めることができ、そして二番目のルールは、ゲームのキャラクターを持つ領域がゲームのキャラクターを持たない領域よりも高いレンダリング優先度を有していることを定めることができる。
【００６５】
図６は、一実施形態によるＨＭＤのディスプレイ上に表示されるゲームシーンを示している。いくつかの実施形態では、視線追跡とＨＭＤのモーショントラッキングは、ＨＭＤディスプレイ６０２上の様々な領域のスキャンアウトについて優先順位を決定するために使用される。
【００６６】
一実施形態では、画面が複数の領域またはセクションに分割され、領域が種々の優先順位と種々の解像度レベルでアップデートされる。これは、一部の領域が他のものより頻繁にリフレッシュされ、或いはより高い解像度にリフレッシュすることができることを意味している。
【００６７】
ユーザーが自分の視線を変えようとしている場合、眼の動きと比較して頭部の動きが僅かであっても同じ方向に頭部を移動させる自然な本能があるため、ＨＭＤを追跡することは、ユーザーが彼らの視線をどこに向けようとしているかを判断する際にこれをアシストすることになる。例えば、ユーザーが正面を向いており頭部を左に移動させ始めると（ＨＭＤと一緒に）、コンピューティングデバイスはユーザーが彼らの視線を左に移動しようとしていることを予測する。この検出に応答して、画面の左側の領域は、画面の右側の領域よりも優先してレンダリングされる。実際には、シーンが左にシフトするので、画面の右側境界線に向かって領域が視界から消えてしまう可能性が非常に高い。
【００６８】
様々な領域のスキャンアウトについて優先順位をつけることで、ユーザーがどこを見ているか、或いはユーザーが次にどこを見に行くかに着目して、ユーザーによりよい体験を提供することが可能となり、そして、ユーザーにより速く且つより高画質なビューをレンダリングできるようにコンピュータリソースを効率的に適用することが可能となる。
【００６９】
時として視線の動きよりもＨＭＤの動きを検出するのが速いため、ＨＭＤのモーショントラッキングは重要である。場合によっては、ＨＭＤを視覚的に追跡するコンピューティングデバイスは、ＨＭＤ以上のコンピューティングリソースを有しているため、コンピューティングデバイスはＨＭＤの動きを検出し、ＨＭＤの動きに基づいてＨＭＤの軌道を予測することができる。また、ＨＭＤは、視線の現在位置に関してコンピューティングデバイスに情報を提供し、コンピューティングデバイスは、視線の軌跡をより正確に予測するために情報ソースの双方を組み合わせることができる。
【００７０】
図６は、仮想現実ゲームの画面を表示している。本明細書に提示される実施形態は、仮想現実ディスプレイを参照して説明するが、画面はコンピューティングデバイスによって生成されたシーンを排他的に示している。しかしながら、本明細書に提示される原理は拡張現実ゲームに適用することができ、画面上のビューは、実世界の画像とコンピューティングデバイスで生成された画像の組み合わせである。一実施形態では、ゲームが広範囲仮想世界で再生される。ユーザーは、いつでも仮想世界の一部のみを見て、仮想世界を点々と移動することができる。ユーザーが仮想世界に移動すると、仮想世界の他の部分が現れる。
【００７１】
いくつかの実施形態では、現在のユーザーの視点６０４には、ユーザーの視点６０４の外側の領域よりも高いレンダリング優先順位が与えられる。ユーザーの視点は、ユーザーがその視界を集中しているディスプレイ上の領域として判断される。従って、ゲーム対話の大部分は、ユーザーの視点６０４内で発生する。勿論、ユーザーの視線は視点６０４を中心に集中する。
【００７２】
多くの人々は、彼らのフィールド内で左に約９０°から右に約９０°までの範囲のエリアを見ている。しかし、人はそれらの周辺領域内でいくつかの動きや変化を感じることができるかもしれないが、ユーザー視野の周辺部領域は、明確に知覚されない。
【００７３】
図６に示す実施形態では、視点は画面上で矩形セクションとして判断されるが、ここではユーザーの視線がこの矩形セクションの中央に集中される。しかし、他のタイプの視点領域も定めることができる。例えば、一実施形態では、視点領域は、画面上でのユーザーの注視点の周りの円として定められる。視野角は、画面上の注視点に対する眼の間の中点からのラインを参照して定められる。次に、視点円の半径は視野角によって決定される。いくつかの実施形態では、視野角が５°から４５°の範囲内の値を有することができるが、他の値も可能である。
【００７４】
いくつかの実施形態では、レンダリング・ポリシーは、ゲームのキャラクターを持つ領域にゲームのキャラクターを持たない領域よりもより高いレンダリング優先順位が与えられていることを必要とする。他の実施形態では、別のレンダリング・ポリシーは、ゲームのキャラクターと、ゲームにおいて重要なゲームオブジェクトとしてランクされている特別なゲームオブジェクトに高いスキャンアウト優先順位を与えている。例えば、重要なゲームオブジェクトは、出口ドア、自動車や飛行機のナビゲーションコンソール、なだめるゲームの対象、敵機などであってもよい。一般的には、重要なゲームオブジェクトは、ユーザーによって作動させることができるオブジェクトであり、重要でないゲームオブジェクトは画面を満たすために背景でレンダリングされる。
【００７５】
図６では、領域６０６（ゲームのキャラクター６１０と６１２を含む）及び領域６０８（ゲームキャラクター６１４を含む）は、ゲームキャラクターを有する領域であり、ディスプレイの残りの部分よりも高いレンダリングの優先順位を与えられている。勿論、いくつかの実施形態では、レンダリング優先度は、ユーザーが自分の視線や頭部を移動しているときのようないくつかの他のルールによって変更することができるので、優先度は最終的なレンダリングの優先順位を算出する際の一要因にすぎない。
【００７６】
一実施形態では、速い動きはディスプレイの高速なアップデートを必要とするため、ユーザーが自分の頭部を素早く移動したときに画面上でブレが発生する可能性があり、ＨＭＤは、ユーザーの動きについていくのに十分なコンピューティングリソースがない可能性がある。ＨＭＤが高速で移動する間にもぶれないようにするため、レンダリング・ポリシーはユーザーの動きに関連する領域のリフレッシュをより速く開始し、いくつかの他の領域は、より低い頻度で、または低い解像度でリフレッシュすることもできる。ＨＭＤが移動停止すると、スキャンアウトした画像の高品質が復元される。
【００７７】
また、ここでユーザーの視線の軌跡を予測するために、コンピューティングデバイスは、所定の時間にわたってユーザーの視線の軌跡を追跡し、また、所定の時間（またはいくつかの他の期間）にわたってＨＭＤの軌跡を追跡する。履歴データは、視線の動き及びＨＭＤの動きの傾向を解析することにより、ユーザーの視線の軌跡を予測するために使用される。
【００７８】
なお、図６に示す実施形態は例示的なものであることに留意されたい。他の実施形態は、異なるタイプの視点領域、様々なタイプのディスプレイ、異なるタイプのレンダリング・ポリシーなどを用いることができる。従って、図６に示された実施形態は、排他的または限定的あると解釈されるべきではなく、例示的または具体例として解釈されるべきである。
【００７９】
図７は、一実施形態に従って優先順位付けされたレンダリングのためにディスプレイ内での領域の生成を示している。図７の実施形態では、複数の同じ大きさの領域が画面７０２上で画成される。例示的な実施形態では、３０の領域（６ｘ５）を生成するスクリーン上にグリッドが画成されている。他の実施形態では、画面上に画成された領域が同じ大きさを有していない。例えば、一般的に中央の領域はユーザーに優れた体験を提供するためにより重要であるため、ディスプレイの中心領域がディスプレイの外側の領域よりも小さくなっている。従って、これらの中央領域には、より高いレンダリング優先順位が与えられている。
【００８０】
いくつかの実施形態では、領域のいくつかには、ゲーム活動に基づいて、或いはユーザーが何をしているかに基づいてレンダリングするために高い優先順位が与えられている。例えば、図６を参照して上述したように、ユーザーの頭部の動きが検出され、ユーザーの視線があると予測される領域の優先度を増大させるために使用される。
【００８１】
一実施形態では、ゲームのキャラクターを有する領域は、ゲームのキャラクターなしの領域よりも高い優先順位が与えられている。図７の例示的な実施形態では、領域７０４及び７０６の内部領域は、ゲームのキャラクターのパーツを含んでいる。一実施形態では、レンダリング・ポリシーには、領域７０４と７０６へのレンダリング優先順位を上昇させる別のルールが含まれている。別のレンダリング・ポリシーは、画面の中心領域に高いレンダリング優先順位を与え、画面の周辺領域には低いレンダリング優先順位を与える。
【００８２】
一実施形態では、各領域のレンダリング・ポリシーは、優先度を判断する複数の因子またはルールを考慮して算出される。次式は、領域ｒｉのレンダリング・ポリシーｒｐ値を決定するために使用される。
【００８３】
ｒｐ（ｒｉ）＝ｆ（ルール１（ｒｉ）、ルール２（ｒｉ）、．．．、ルールｎ（ｒｉ））
【００８４】
ｒｐ（ｒｉ）が描画領域（ｒｉ）のためのレンダリング・ポリシーであり、ルール１〜ルールｎがレンダリング・ポリシーを判断するために定められたポリシールールである。例えば、一番目のルールはディスプレイの中央領域により高いレンダリング優先度が与えられるように指示し、二番目のルールはゲームのキャラクターを有する領域により高いレンダリング優先度が与えられるように決定し、三番目のルールは視線の周囲の領域に高い優先度を与え、四番目のルールはユーザーが自分の頭部を回転するとき、頭部が移動すると予測される領域により高いレンダリング優先順位を与えることなどを決定することができる。
【００８５】
一実施形態では、レンダリング・ポリシーは、領域のための１つまたは複数の画面更新頻度、レンダリング解像度、及びレンダリング順序値を含んでいる。一実施形態においては、領域におけるレンダリング・ポリシーを算出するために各ルールが与えられている。いくつかの実施形態では、加重値は過去の経験に基づいて動的に調整することができる。
【００８６】
図８は、本発明の実施形態を実装するために使用することができるデバイスのアーキテクチャーを示している。ヘッドマウントディスプレイはコンピューティングデバイスであり、プロセッサ８０４、メモリ８１６（ＲＡＭ、ＲＯＭなど）、１つまたは複数のバッテリ８０６またはその他の電源、及び永久記憶装置８４８（ハードディスクなど）のようなコンピューティングデバイス上で通常の見られるモジュールを含んでいる。
【００８７】
通信モジュールは、ＨＭＤが他の携帯機器、他のコンピュータ、他のＨＭＤ、サーバなどと情報を交換することができるようにする。通信モジュールは、ユニバーサルシリアルバス（ＵＳＢ）コネクタ８４６、通信リンク８５２（イーサネット（登録商標）など）、超音波通信８５６、ブルートゥース８５８、及びＷｉＦｉ８５４を含む。
【００８８】
ユーザーインタフェースには、入力と出力のためのモジュールが含まれている。入力モジュールは、入力ボタン、センサ及びスイッチ８１０、マイクロホン８３２、タッチ感応画面（示されていないが、ＨＭＤを設定したり初期化したりするために使用することができる）、フロントカメラ８４０、リアカメラ８４２、視線追跡カメラ８４４を備えている。例えば、キーボードやマウスなどのその他の入力／出力デバイスも、ＵＳＢやブルートゥースのような通信リンクを介して携帯デバイスに接続することが可能である。
【００８９】
出力モジュールは、ユーザーの眼の前で画像をレンダリングするためのディスプレイ８１４を備えている。いくつかの実施形態では、１つのディスプレイ、２つのディスプレイ（各眼に対して１つ）、マイクロプロジェクタ、または他のディスプレイ技術を備えることができる。他の出力モジュールは、発光ダイオード（ＬＥＤ）８３４（ＨＭＤの視覚追跡のためにも使用することができる）、振動触覚フィードバック８５０、スピーカー８３０、及びスピーカーまたはヘッドフォンへ配信されるサウンドの音像定位を行う音像定位モジュール８１２を備える。例えば、ヘッドフォンなどの他の出力装置もまた、通信モジュールを介してＨＭＤに接続することができる。
【００９０】
モーショントラッキングを容易にするために備えることができるエレメントには、ＬＥＤ８３４、視覚認識８３６のための１つまたは複数のオブジェクト、及び赤外光８３８が含まれる。
【００９１】
様々なデバイスからの情報は、ＨＭＤの位置を算出するために位置モジュール８２８によって使用することができる。これらのモジュールは、磁力計８１８、加速度計８２０、ジャイロスコープ８２２、全地球測位システム（ＧＰＳ）モジュール８２４、及びコンパス８２６を備える。さらに、位置モジュールは、位置を算出するためにカメラとマイクロホンでキャプチャされた音や画像データを解析することができる。さらにまた、位置モジュールは、ＷｉＦｉのｐｉｎｇテストまたは超音波検査など、携帯デバイスの位置または近傍の他のデバイスの位置を決定するためのテストを実行することができる。
【００９２】
バーチャルリアリティ・ジェネレータ８０８は、位置モジュールによって算出された位置を使用して、前述したように仮想または拡張現実を生成する。バーチャルリアリティ・ジェネレータ８０８は、ディスプレイモジュール８１４のための画像を生成するために、他のコンピューティングデバイス（例えば、ゲームコンソール、インターネットサーバなど）と協働することができる。リモートデバイスは、画面上でゲームオブジェクトを生成するためにスクリーンアップデートまたは命令を送信することができる。
【００９３】
なお、図８に示す実施形態は、ポータブルデバイスの例示的な実装であることは理解されるべきである。他の実施形態では、様々なモジュール、モジュールのサブセットを利用することができ、或いは様々なモジュールに関連するタスクを割り当てることができる。従って、図８に示す実施形態は排他的または限定的あると解釈されるべきではなく、例示的または具体例として解釈されるべきである。
【００９４】
図９は、一実施形態によってＨＭＤに画像をレンダリングするためのフローチャートである。このフローチャートでは種々の動作が提示され順次描写されているが、当業者は、動作の一部または全部が異なる順序で実行してもよく、組み合わされ或いは省略され、または並行して実行することも可能であることを認識するであろう。
【００９５】
動作９０２では、この方法はＨＭＤ内部の１つまたは複数のカメラでユーザーの視線を追跡する。動作９０２から、この方法は動作９０４に流れ、ここではこの方法がＨＭＤの動きを追跡する。動きの追跡には、ＨＭＤに備えられていない第二のカメラ（例えば、図１のカメラ１０４）で撮影したＨＭＤの画像を解析することが含まれる。
【００９６】
動作９０４から、この方法は、ユーザーの視線の動きが視線とＨＭＤの動きに基づいて予測される（例えば、視線の予測軌道を）動作９０６に流れていく。また、動作９０６から、この方法は動作９０８に流れていくが、ここではＨＭＤのディスプレイ上に画成された複数の領域のためのレンダリング・ポリシーが決定される。レンダリング・ポリシーは、視線の予測された動きに基づいて決定される。
【００９７】
動作９０８から、この方法は、以前に算出されたレンダリング・ポリシーに基づいて、ディスプレイ上に画像をレンダリングするために動作９１０に流れていく。また、一実施形態では、ＨＭＤが動いているときには領域に対するレンダリング解像度が低下し、ＨＭＤが静止状態になったとき領域のレンダリング解像度が増大される。
【００９８】
いくつかの実装形態では、慣性情報がＨＭＤの動きに関して受信され、慣性情報はＨＭＤで慣性センサによって捕捉される。別の実施形態では、ＨＭＤの動きは、ＨＭＤに備えられていない第二のカメラで撮影したＨＭＤの画像を解析することによって追跡される。さらに別の実施形態では、ＨＭＤの動きは、第二のカメラで撮影した画像の解析結果と慣性情報を組み合わせることによって追跡される。
【００９９】
さらに別の実施形態では、ＨＭＤに画像をレンダリングするための方法が提供される。この方法は、ＨＭＤ内部のディスプレイによって生成されたビューを見ているユーザーの視線を追跡するための動作を含んでいる。さらに、この方法は、ユーザーの視線に基づいて、ディスプレイ上にレンダリングされている複数のゲームオブジェクトのために、レンダリング優先順位値を割り当てるための動作を含んでいる。各ゲームオブジェクトのレンダリング優先順位値は、レンダリングの頻度及びレンダリング解像度を決定する。さらに、この方法は、ゲームにおける各ゲームオブジェクトの重要度に基づいて、レンダリング優先順位値を変更するための動作を含んでいる。別の動作では、この方法は、レンダリング優先順位値に応じてディスプレイ上に複数のゲームオブジェクトをレンダリングする。
【０１００】
別の実施形態では、実際のソース画像は変更ベースであり、ソース画像とソース画像が存在する領域がレンダリングされている。例えば、ゲームのキャラクターが直接視線の下にあるときには（例えば、ゲームのキャラクターがユーザーの視野の中央付近にあるとき）、ゲームキャラクターが直接視線の下にないとき（例えば、ゲームのキャラクターがユーザーの視野の中央付近にないとき）よりも詳細にゲームキャラクターが描画される。
【０１０１】
図１０は、本発明の実施形態を実装するために使用することができるハードウェア及びユーザーインタフェースを示す図である。図１０は、Ｓｏｎｙ（登録商標）プレイステーション（登録商標）３エンターテイメントデバイスの全体的なシステムアーキテクチャーを概略的に示している。システムユニット１４００は、システムユニット１４００に接続可能なさまざまな周辺デバイスと共に提供される。システムユニット１４００は、セルプロセッサ１４２８、Ｒａｍｂｕｓ（登録商標）ダイナミックランダムアクセスメモリ（ＸＤＲＡＭ）ユニット１４２６、専用のビデオランダムアクセスメモリ（ＶＲＡＭ）ユニット１４３２を備えたリアリティー・シンセサイザー（Rｅａｌｉｔｙ  Ｓｙｎｔｈｅｓｉｚｅｒ）グラフィックユニット１４３０、及びＩ／Ｏブリッジ１４３４を備える。また、システムユニット１４００は、ディスク１４４０ａから読み出すためのブルーレイ（登録商標）ディスクＢＤ−ＲＯＭ（登録商標）光ディスクリーダ１４４０、Ｉ／Ｏブリッジ１４３４を介してアクセス可能なリムーバブルスロットインハードディスクドライブ（ＨＤＤ）１４３６を備えている。任意に、システムユニット１４００はまた、Ｉ／Ｏブリッジ１４３４を介して同様にアクセス可能なコンパクトフラッシュ（登録商標）メモリカードを読み取るためのメモリカードリーダ１４３８、Ｍｅｍｏｒｙ  Ｓｔｉｃｋ（登録商標）メモリカードなどを含んでいる。
【０１０２】
Ｉ／Ｏブリッジ１４３４はまた、６本のユニバーサルシリアルバス（ＵＳＢ）２．０ポート１４２４、ギガビット・イーサネット・ポート１４２２、ＩＥＥＥ８０２．１１ｂ／ｇの無線ネットワーク（Ｗｉ−Ｆｉ）ポート１４２０、７個までのブルートゥース接続をサポートすることが可能なブルートゥース（登録商標）ワイヤレスリンクポート１４１８に接続している。
【０１０３】
また、ワイヤレス、ＵＳＢ及びイーサネットポートは、リモートコントロール１４０４、キーボード１４０６、マウス１４０８、ソニーＰＳＰ（登録商標）エンターテイメントデバイスなどの携帯エンターテイメントデバイス１４１０、プレイステーション（登録商標）アイカメラ１４１２などのビデオカメラ、ヘッドフォン１４１４、及びマイクロホン１４１５のようなゲームコントローラ１４０２〜１４０３とＨＭＤ１４１７に加えて、他の周辺機器のための接続性を提供している。従って、このような周辺デバイスは、原則的に無線でシステムユニット１４００に接続してもよく、例えば、携帯エンターテイメントデバイス１４１０はＷｉ−Ｆｉアドホック接続を介して通信することができる一方で、ヘッドドフォン１４１４はブルートゥースリンクを介して通信することができる。
【０１０４】
ゲームコントローラ１４０２〜１４０３はブルートゥースリンクを介してシステムユニット１４００と無線通信して、或いはＵＳＢポートに接続されて動作可能であり、それによってゲームコントローラ１４０２〜１４０３のバッテリを充電する電力を供給する。ゲームコントローラ１４０２は両手で使用するように設計されたコントローラであり、ゲームコントローラ１４０３はボールアタッチメントを有する片手コントローラである。１つ以上のアナログジョイスティック及び従来の制御ボタンに加え、ゲームコントローラは、３次元位置判定を受け入れる余地がある。その結果、ゲームコントローラのユーザーによるジェスチャー及び動きは、従来のボタンまたはジョイスティックコマンドに加えて或いはその代わりに、ゲームに対する入力として変換することができる。
【０１０５】
一実施形態では、ユーザーの視線ポイント（ＰＯＧ）に応じて、特定のオーディオスピーカーに向かって音を再生するための音声や視線入力が利用される。オーディオコネクタ１４５０は従来のアナログ及びデジタル出力を備える一方で、ビデオコネクタ１４５２はコンポーネントビデオ、Ｓ−ビデオ、コンポジットビデオ、及び１つ以上の高品位マルチメディアインタフェース（ＨＤＭＩ（登録商標））出力を様々な形で備えることができる。従って、ビデオ出力は、ＰＡＬまたはＮＴＳＣ、或いは７２０ｐ、１０８０ｉまたは１０８０ｐなどの高解像度フォーマットとすることができる。
【０１０６】
図１１は、本発明の様々な実施形態によるゲームシステム１１００のブロック図である。ゲームシステム１１００は、ネットワーク１１１５を介して１つまたは複数のクライアント１１１０にビデオストリームを提供するように構成されている。ゲームシステム１１００は、典型的にはビデオサーバシステム１１２０及び任意のゲームサーバ１１２５を備えている。ビデオサーバシステム１１２０は、最低限のサービスでビデオストリームを１つまたは複数のクライアント１１１０に提供するように構成されている。例えば、ビデオサーバシステム１１２０は、ビデオゲーム内の状態や視点を変更するゲームコマンドを受信することができ、かつ最小限の遅延時間でこの状態の変化を反映して更新されたビデオストリームをクライアント１１１０に提供することができる。ビデオサーバシステム１１２０は、多種多様な代替的ビデオフォーマットのビデオストリームを提供するように構成することができる。
【０１０７】
クライアント１１１０は、本明細書では個々に１１１０Ａ、１１１０Ｂなどと示しているが、ヘッドマウントディスプレイ、端末、パーソナルコンピュータ、ゲームコンソール、タブレットコンピュータ、電話、セットトップボックス、キオスク、ワイヤレス・デバイス、デジタルパッド、スタンドアロン・デバイス、携帯ゲーム装置、及び／または均等物を含むことができる。一般的に、クライアント１１１０は符号化されたビデオストリームを受信し、ビデオストリームを復号化し、例えば、ユーザーのゲームプレイヤーに得られた映像を提供するように構成されている。符号化されたビデオストリームを受信及び／またはビデオストリームを復号化するプロセスは、典型的には、クライアントの受信バッファに個々のビデオフレームを格納する動作を含んでいる。ビデオストリームは、モニタやテレビなどのクライアント１１１０と一体型ディスプレイまたは別個のデバイス上でユーザーに提供することができる。必要に応じて、クライアント１１１０は、１つ以上のプレイヤーをサポートするように構成されている。例えば、ゲームコンソールが２つ、３つ、４つまたはそれ以上の同期プレイヤーをサポートするように構成されていてもよい。これらのプレイヤーのそれぞれが別個のビデオストリームを受信することができ、或いは単一のビデオストリームが、例えば、プレイヤーの各視点に基づいて生成されるように、各プレイヤーのために特別に生成されたフレームの領域を含むことができる。クライアント１１１０は、随意に地理的に散らばる。ゲームシステム１１００に含まれるクライアントの数は、１つまたは２から数千或いは数万、或いはそれ以上まで幅広く変化させることができる。本明細書で使用するように、用語「ゲームプレイヤー」はゲームをプレイする人を指して用いられ、「ゲームプレイ装置」という用語はゲームをプレイするために使用されるデバイスを指して用いられている。いくつかの実施形態では、ゲームプレイ装置は、ユーザーにゲーム体験を提供するために協働する複数のコンピューティングデバイスを指すことがある。例えば、ゲームコンソールとＨＭＤが、ＨＭＤを通じて見ることができるゲームを配信するためにビデオサーバシステム１１２０と協働することが可能である。一実施形態では、ゲームコンソールがビデオサーバシステム１１２０からのビデオストリームを受信し、ゲームコンソールはビデオストリームを更新し、レンダリングのためにＨＭＤに転送する。
【０１０８】
クライアント１１１０は、ネットワーク１１１５を介してビデオストリームを受信するように構成されている。ネットワーク１１１５は、電話ネットワーク、インターネット、無線ネットワーク、電力線ネットワーク、ローカルエリアネットワーク、広域ネットワーク、プライベートネットワーク、及び／または均等物を含む任意のタイプの通信ネットワークであってもよい。典型的な実施形態においては、ビデオストリームは、ＴＣＰ／ＩＰまたはＵＤＰ／ＩＰなどの標準プロトコルを介して通信される。代替的に、ビデオストリームは、独自の規格を介して通信される。
【０１０９】
クライアント１１１０の典型的な例は、プロセッサ、不揮発性メモリ、ディスプレイ、復号ロジック、ネットワーク通信機能、及び入力デバイスを備えるパーソナルコンピュータである。復号ロジックは、ハードウェア、ファームウェア、及び／またはコンピュータ可読媒体上に格納されたソフトウェアを含んでもよい。ビデオストリームを復号化（及び符号化）するためのシステムは当該技術分野において周知であり、使用される特定の符号化スキームに依存して変化する。
【０１１０】
さらに、クライアント１１１０は、受信したビデオを修正するために設定されたシステムを備えることもできるが、必要ではない。例えば、クライアントは、さらにレンダリングを実行するように、１つのビデオイメージを別のビデオイメージ上にオーバーレイするように、或いはビデオイメージをトリミングするように、及び／または同様のことを実行するように設定することもできる。例えば、クライアント１１１０は、Ｉ−フレーム、Ｐ−フレーム及びＢ−フレームのような様々なタイプのビデオフレームを受信し、ユーザーに表示するために、これらの画像フレームを処理するように設定することができる。いくつかの実施形態では、ビデオストリーム上でさらなるレンダリング、シェーディング、３Ｄへの変換、ＨＭＤへの光学的歪み処理、或いは同様の動作を実行するように多数のクライアント１１１０が設定されている。必要に応じて多数のクライアント１１１０は、１つまたは複数のオーディオまたはビデオストリームを受信するように設定されている。クライアント１１１０の入力デバイスは、例えば、片手ゲームコントローラ、両手ゲームコントローラ、ジェスチャー認識システム、視線認識システム、音声認識システム、キーボード、ジョイスティック、ポインティングデバイス、フォースフィードバック装置、動き及び／または位置検出装置、マウス、タッチスクリーン、ニューラル・インタフェース、カメラ、まだ開発中の入力装置、及び／または均等物を含むことができる。
【０１１１】
クライアント１１１０によって受信されたビデオストリーム（及び随意に音声ストリームも）が生成され、ビデオサーバシステム１１２０によって提供される。本明細書の他の箇所でさらに記載されるように、このビデオストリームは、ビデオフレーム（音声ストリームは音声フレームを含む）を含んでいる。ビデオフレームは、表示される画像をユーザーに有意に提供する（例えば、これらの画像は、適切なデータ構造内の画素情報を含んでいる）。本明細書で用いられているように、用語「ビデオフレーム」は、例えば、効果など、ユーザーに表示される画像に寄与するように設定されている主情報を含んだフレームを指して使用している。「ビデオフレーム」に関する本明細書の教示のほとんどは、「オーディオフレーム」に適用することも可能である。
【０１１２】
クライアント１１１０は、典型的には、ユーザーからの入力を受け取るように設定されている。これらの入力は、ビデオゲームの状態を変更するか、そうでなければ、ゲームプレイに影響を与えるように設定するゲームコマンドを含むことができる。ゲームのコマンドは、入力デバイスを使用して受信することができるか、及び／またはクライアント１１１０上で実行される演算命令によって自動的に生成されてもよい。受信したゲームコマンドは、ネットワーク１１１５を介して、クライアント１１１０からビデオサーバシステム１１２０及び／またはゲームサーバ１１２５に伝達される。例えば、いくつかの実施形態では、ゲームコマンドはビデオサーバシステム１１２０を介してゲームサーバ１１２５に伝達される。また、いくつかの実施形態では、ゲームコマンドの別個のコピーが、クライアント１１１０からゲームサーバ１１２５及びビデオサーバシステム１１２０へ伝達される。ゲームコマンドの通信は、随意でコマンドの一致に依存している。ゲームコマンドは、オーディオまたはビデオストリームをクライアント１１１０Ａに提供するために使用される別のルートまたは通信チャネルを介してクライアント１１１０Ａから必要に応じて伝達される。
【０１１３】
ゲームサーバ１１２５は、ビデオサーバシステム１１２０とは別のエンティティによって任意に操作される。例えば、ゲームサーバ１１２５は、マルチプレイヤーゲームのパブリッシャーによって動作させることができる。この例では、ビデオサーバシステム１１２０は、ゲームサーバ１１２５によって必要に応じてクライアントとしてみなされ、ゲームサーバ１１２５の観点から従来技術のゲームエンジンを実行する従来技術のクライアントであると思われるように設定されている。ビデオサーバシステム１１２０とゲームサーバ１１２５の間の通信は、必要に応じてネットワーク１１１５を介して行われる。このように、ゲームサーバ１１２５は、複数のクライアントにゲームの状態情報を送信する従来技術のマルチプレイヤーゲームサーバでもよく、そのうちの１つがゲームサーバシステム１１２０である。ビデオサーバシステム１１２０は、同時にゲームサーバ１１２５の複数のインスタンスと通信するように設定することもできる。例えば、ビデオサーバシステム１１２０は、異なるユーザーに複数の異なるビデオゲームを提供するように構成することができる。これらの異なるビデオゲームのそれぞれは、異なるゲームサーバ１１２５によってサポートされ、及び／または異なるエンティティによって発行されてもよい。いくつかの実施形態では、いくつかの地理的に散らばったインスタンスであるビデオサーバシステム１１２０は、複数の異なるユーザーにゲームビデオを提供するように設定されている。ビデオサーバシステム１１２０のこれらのインスタンスの各々は、ゲームサーバ１１２５の同じインスタンスと通信することができる。ビデオサーバシステム１１２０と１つまたは複数のゲームサーバ１１２５との間の通信は、必要に応じて専用の通信チャネルを介して行う。例えば、これら２つのシステム間の通信のために特定用途される高帯域幅チャネルを介して、ビデオサーバシステム１１２０をゲームサーバ１１２５に接続することもできる。
【０１１４】
ビデオサーバシステム１１２０は、少なくともビデオソース１１３０、Ｉ／Ｏデバイス１１４５、プロセッサ１１５０、及び非一時ストレージ１１５５を備えている。ビデオサーバシステム１１２０は１つのコンピューティングデバイスを備えていてもよく、或いは複数のコンピューティングデバイス間で分散させてもよい。これらのコンピューティングデバイスは、必要に応じてローカルエリアネットワークなどの通信システムを介して接続される。
【０１１５】
ビデオソース１１３０は、例えば、ストリーミングビデオ、または動画像を形成する一連のビデオフレームのようなビデオストリームを提供するように設定されている。いくつかの実施形態では、ビデオソース１１３０は、ビデオゲームエンジンとレンダリングロジックを含んでいる。ビデオゲームエンジンはプレイヤーからゲームコマンドを受信し、受信したコマンドに基づいてビデオゲームの状態のコピーを維持するように設定されている。このゲームの状態は、ゲーム環境内のオブジェクトの位置だけでなく、一般的に視点が含まれている。ゲーム状態は、プロパティ、画像、色及び／またはオブジェクトのテクスチャーも含むことができる。ゲーム状態は、典型的には、ゲームのルール、並びに動き、旋回、攻撃、セットフォーカス、対話、使用、及び／または同類のゲームコマンドに基づいて維持される。ゲームエンジンの一部は、必要に応じてゲームサーバ１１２５内に配置されている。ゲームサーバ１１２５は、地理的に散らばったクライアントを使用する複数のプレイヤーから受信したゲームコマンドに基づくゲーム状態のコピーを維持することができる。いずれの場合でも、ゲーム状態はゲームサーバ１１２５からビデオソース１１３０に提供され、ここでゲーム状態のコピーが格納され、レンダリングが実行される。ゲームサーバ１１２５は、ネットワーク１１１５を介してクライアント１１１０からコマンドを直接受信することができ、及び／またはビデオサーバシステム１１２０を介してゲームコマンドを受信することができる。
【０１１６】
一般的に、ビデオソース１１３０は、例えば、ハードウェア、ファームウェア、及び／またはストレージ１１５５のようなコンピュータ可読媒体に格納されたソフトウェアを含んでいる。このレンダリングロジックは、ゲーム状態に基づいて、ビデオストリームのビデオフレームを生成するように設定されている。レンダリングロジックの全部または一部は、必要に応じてグラフィックス処理ユニット（ＧＰＵ）内に配置される。ロジックのレンダリングは、典型的には、ゲーム状態と視点に基づいて、オブジェクト間の３次元空間的関係を判断する及び／または適切なテクスチャーなどを適用するように設定された処理ステージを含んでいる。レンダリングロジックは、その後、通常はクライアント１１１０に通信する前に符号化された生のビデオを生成する。生のビデオは、例えば、Ａｄｏｂｅ  Ｆｌａｓｈ（登録商標）標準、．ｗａｖ、Ｈ．２６４、Ｈ．２６３、Ｏｎ２、ＶＰ６、ＶＣ−１、ＷＭＡ、Ｈｕｆｆｙｕｖ、Ｌａｇａｒｉｔｈ、ＭＰＧ-ｘ、Ｘｖｉｄ．、ＦＦｍｐｅｇ、ｘ２６４、ＶＰ６−８、ｒｅａｌｖｉｄｅｏ、ｍｐ３、などによって符号化することができる。符号化処理は、リモート装置デコーダへの配信のために必要に応じてパッケージ化されたビデオストリームを生成する。ビデオストリームは、フレームサイズとフレームレートによって特徴付けられる。他のフレームサイズを使用してもよいが、典型的なフレームサイズは、８００×６００、１２８０×７２０（例えば、７２０ｐ）、１０２４×７６８を含んでいる。フレームレートは、毎秒におけるビデオフレーム数である。ビデオストリームは、様々なタイプのビデオフレームを含んでもよい。例えば、Ｈ．２６４規格は、「Ｐ」フレーム及び「Ｉ」フレームを含む。Ｉフレームには表示デバイス上のすべてのマクロブロック／ピクセルをリフレッシュするための情報が含まれている一方、Ｐフレームにはサブセットをリフレッシュするための情報が含まれている。一般的に、ＰフレームはＩフレームよりもデータサイズが小さい。本明細書で使用するように、用語「フレームサイズ」は、フレーム内のピクセルの数を意味している。用語「フレームデータサイズ」は、フレームを格納するのに必要なバイト数を指すために使用されている。
【０１１７】
別の実施形態では、ビデオソース１１３０は、カメラなどの映像記録装置を備えている。このカメラは、コンピュータゲームのビデオストリームに含めることができる遅延映像またはライブビデオを生成するために使用することができる。得られたビデオストリームは、レンダリングされた画像とスチールカメラまたはビデオカメラを使用して記録された画像の両方を任意に含んでいる。ビデオソース１１３０は、ビデオストリームに含まれるように、記録されたビデオを前もって記憶するように設定された記憶装置も備えることができる。同様に、ビデオソース１１３０は、例えば、人のようなオブジェクトの動きまたは位置を検出するように設定した、動きまたは位置検出装置と、ゲームの状態を判断し、検出された動き及び／または位置に基づくビデオを生成するように設定されたロジックを含むことができる。
【０１１８】
ビデオソース１１３０は、必要に応じて他のビデオ上に配置されるように設定されたオーバーレイを提供するようになっている。例えば、これらのオーバーレイは、コマンド・インターフェース、ログイン命令、ゲームプレイヤーへのメッセージ、他のゲームプレイヤーの画像、他のゲームプレイヤーの配信動画（例えば、ウェブカメラのビデオ）を含んでいてもよい。タッチスクリーンインターフェースまたは視線検出インターフェースを含むクライアント１１１０Ａの実施形態では、オーバーレイは、仮想キーボード、ジョイスティック、タッチパッド、及び／または同様のものを含むことができる。オーバーレイの一例では、プレイヤーの声は、音声ストリームにオーバーレイされる。ビデオソース１１３０は、任意に１つまたは複数のオーディオソースを含んでいる。
【０１１９】
ビデオサーバシステム１１２０が複数のプレイヤーからの入力に基づいて、ゲームの状態を維持するように構成されている実施形態では、各プレイヤーは、ビューの位置及び方向を含んで様々な視点を有することができる。ビデオソース１１３０は、必要に応じて彼らの視点に基づいて、各プレイヤーのために別個のビデオストリームを提供するように構成される。さらに、ビデオソース１１３０は、クライアント１１１０の各々に異なるフレームサイズ、フレームデータサイズ、及び／または符号化を提供するように設定され得る。ビデオソース１１３０は、任意で３次元ビデオを提供するように構成されている。
【０１２０】
Ｉ／Ｏデバイス１１４５は、ビデオ、コマンド、情報の要求、ゲームの状態、視線情報、デバイスの動き、装置の位置、ユーザーの動き、クライアントのＩＤ、プレイヤーのＩＤ、ゲームコマンド、セキュリティ情報、オーディオ、及び／または同様のもののような情報をビデオサーバシステム１１２０が送信及び／または受信するように設定されている。一般的に、Ｉ／Ｏデバイス１１４５は、ネットワークカードやモデムなどの通信ハードウェアを備えている。Ｉ／Ｏデバイス１１４５は、ゲームサーバ１１２５、ネットワーク１１１５、及び／またはクライアント１１１０と通信するように設定されている。
【０１２１】
プロセッサ１１５０は、本明細書で説明したビデオサーバシステム１１２０の様々なコンポーネント内に含まれるソフトウェアのようなロジックを実行するように設定されている。例えば、プロセッサ１１５０は、ビデオソース１１３０、ゲームサーバ１１２５、及び／またはクライアント修飾子１１６０の機能を実行するためにソフトウェア命令を用いてプログラムすることができる。ビデオサーバシステム１１２０は、任意にプロセッサ１１５０の１つ以上のインスタンスを含む。ビデオサーバシステム１１２０によって受信されたコマンドを実行するために、或いは本明細書で説明したゲームシステム１１００の様々なエレメントの動作を調整するために、プロセッサ１１５０もまた、ソフトウェア命令を用いてプログラムすることができる。プロセッサ１１５０は、１つまたは複数のハードウェア装置を備えることができる。プロセッサ１１５０は電子プロセッサである。
【０１２２】
ストレージ１１５５は、非一時的アナログ及び／またはデジタル記憶装置を備えている。例えば、ストレージ１１５５は、ビデオフレームを格納するように構成されたアナログストレージデバイスを備えることができる。ストレージ１１５５は、ハードドライブ、光学ドライブ、またはソリッド・ステート・ストレージなどのコンピュータ読み取り可能なデジタル・ストレージを備えることができる。ビデオフレーム、人工フレーム、ビデオフレーム及び人工フレームの両方を含むビデオストリーム、オーディオフレーム、オーディオストリーム、及び／または均等物を格納するようにストレージ１１１５は設定されている（適切なデータ構造またはファイルシステムによって）。ストレージ１１５５は、必要に応じて複数のデバイス間に分散される。いくつかの実施形態では、ストレージ１１５５は本明細書の他の箇所で説明したビデオソース１１３０のソフトウェア・コンポーネントを格納するように設定されている。これらのコンポーネントは、必要なときにプロビジョニングされる準備ができた形式で格納することができる。
【０１２３】
ビデオサーバシステム１１２０は、必要に応じて、さらにクライアント修飾子１１６０を備えている。クライアント修飾子１１６０は、クライアント１１１０Ａまたは１１１０Ｂのようなクライアントの能力を遠隔で判断するように設定されている。これらの能力は、クライアント１１１０Ａ自体の能力、並びにクライアント１１１０Ａとビデオサーバシステム１１２０との間の１つまたは複数の通信チャネルの機能の両方を含むことができる。例えば、クライアント修飾子１１６０は、ネットワーク１１１５を介して通信チャネルをテストするように設定することができる。
【０１２４】
クライアント修飾子１１６０は、クライアント１１１０Ａの能力を手動または自動で判断（例えば、発見）することができる。手動での判断は、クライアント１１１０Ａのユーザーとの通信や能力を提供するようにユーザーに求めることを含む。例えば、いくつかの実施形態では、クライアント修飾子１１６０は、クライアント１１１０Ａのブラウザ内に画像、テキスト及び／または同様のものを表示するように設定されている。一実施形態では、クライアント１１１０Ａは、ブラウザが含まれているＨＭＤである。別の実施形態では、クライアント１１１０Ａは、ブラウザを有するゲームコンソールであり、ＨＭＤに表示することができる。表示されるオブジェクトは、クライアント１１１０Ａのオペレーティング・システム、プロセッサ、ビデオデコーダのタイプ、ネットワーク接続のタイプ、ディスプレイ解像度などの情報をユーザーが入力することを要求する。ユーザーが入力した情報は、クライアント修飾子１１６０に戻って伝達される。
【０１２５】
自動判断は、例えば、クライアント１１１０Ａ上のエージェントを実行することにより、及び／またはクライアント１１１０Ａにテスト映像を送信することによって行うことができる。エージェントは、Ｊａｖａ（登録商標）スクリプトなどの演算命令を含むことができ、ウェブページに埋め込まれ或いはアドオンとしてインストールされる。エージェントは、任意にクライアント修飾子１１６０によって提供される。様々な実施形態では、エージェントは、クライアント１１１０Ａの処理能力、クライアント１１１０Ａのデコード及び表示機能、クライアント１１１０Ａとビデオサーバシステム１１２０との間の通信チャネルのラグタイムの信頼性と帯域幅、クライアント１１１０Ａのディスプレイのタイプ、クライアント１１１０Ａのファイアウォール、クライアント１１１０Ａのハードウェア、クライアント１１１０Ａで実行されるソフトウェア、クライアント１１１０Ａ内のレジストリエントリ、及び／または同様のものを見つけることができる。
【０１２６】
クライアント修飾子１１６０は、コンピュータ可読媒体上に格納されたハードウェア、ファームウェア、及び／またはソフトウェアを含んでいる。クライアント修飾子１１６０は、必要に応じて、ビデオサーバシステム１１２０の１つ以上の他のエレメントとは別のコンピューティングデバイス上に配置される。例えば、いくつかの実施形態では、クライアント修飾子１１６０は、クライアント１１１０と複数のインスタンスのビデオサーバシステム１１２０の間の通信チャネルの特性を判断するように設定されている。これらの実施形態において、クライアント修飾子によって発見された情報は、クライアント１１１０の１つにストリーミングビデオを配信するために、ビデオサーバシステム１１２０のどのインスタンスが最も適しているかを決定するために使用することができる。
【０１２７】
本発明の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な家庭用電化製品、ミニコンピュータ、メインフレームコンピュータなどを含むさまざまなコンピュータシステム構成で実施することができる。実施形態はまた、タスクがネットワークを介してリンクされるリモート処理装置によって実行される分散コンピューティング環境で実施することも可能である。
【０１２８】
上記実施形態を念頭において、実施形態は、コンピュータシステムに格納されたデータを伴う様々なコンピュータ実装動作を用いることができることを理解すべきである。これらの動作は、物理量の物理的操作を必要とするものである。実施形態の一部を形成する本明細書中に記載したいずれかの動作は、有用なコンピュータ動作である。実施形態はまた、これらの動作を実行するためのデバイスまたは装置に関する。装置は、専用コンピュータのように必要な目的のために特別に構築されてもよい。専用コンピュータとして定義すると、コンピュータは、特別な目的の一部ではない他の処理、プログラムの実行やルーチン実行を行うこともできる一方で、特別な目的のために動作することが未だ可能である。代替的に、動作は、コンピュータメモリに格納された１つ以上のコンピュータプログラム、キャッシュ、或いはネットワークを介して取得したコンピュータプログラムによって選択的に起動または設定される汎用コンピュータで処理することもできる。データがネットワークを介して取得されるとき、データは、例えば、コンピューティングリソースのクラウドなどネットワーク上の他のコンピュータによって処理することもできる。
【０１２９】
本発明の１つ以上の実施形態はまた、コンピュータ可読媒体上のコンピュータ読み取り可能なコードとして構築することができる。コンピュータ可読媒体はデータを記憶できる任意のデータ記憶装置であり、従って、コンピュータシステムによって読み取ることができる。コンピュータ可読媒体の例としては、ハードドライブ、ネットワーク接続ストレージ（ＮＡＳ）、リードオンリーメモリ、ランダムアクセスメモリ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ及び他の光学並びに非光学データ記憶デバイスが含まれる。コンピュータ可読媒体は、コンピュータ可読コードが分散方式で格納及び実行されるように、ネットワーク結合型コンピュータシステム上に分散したコンピュータ読み取り可能な有形媒体を含むことができる。
【０１３０】
方法の動作は特定の順序で記載したが、他のハウスキーピング演算が操作の間に行われてもよく、或いは僅かに異なる時間に発生するように動作が調整されてもよく、さらにはオーバーレイ動作の処理が所望の方法で行われる限り、処理に関連する様々な間隔で処理動作の発生を許可するシステムに分散されてもよいことが理解されるべきである。
【０１３１】
上述した実施形態は理解を明確にする目的のため、ある程度詳細に説明してきたが、特定の変更及び改変が、添付の特許請求の範囲内で実施できることは明らかであろう。従って、本実施形態は、例示であって制限的なものではないと見なされるべきであり、本発明は、本明細書に記載された詳細に限定されるものではなく、添付の特許請求の範囲及び均等物の範囲内で改変することが可能である。
【図１】
0006408629.tif 000002
【図２】
0006408629.tif 000003
【図３】
0006408629.tif 000004
【図４】
0006408629.tif 000005
【図５】
0006408629.tif 000006
【図６】
0006408629.tif 000007
【図７】
0006408629.tif 000008
【図８】
0006408629.tif 000009
【図９】
0006408629.tif 000010
【図１０】
0006408629.tif 000011
【図１１】
0006408629.tif 000012