(57)【要約】      （修正有）【課題】ビデオゲームのクラウドストリーミングへの移行によるローカルビデオゲームの初期化方法を提供する。【解決手段】クラウドビデオゲームを開始するためのコマンドをクライアントデバイス２２４で受信し、初期コンテンツ２３４ををレンダリングする。クラウドビデオゲームにアクセスするためにクライアントデバイスからクラウドゲームサーバー１０４に要求を送信する。クラウドゲームサーバーが、クラウドビデオゲームを実行するゲーム機１１８にクライアントデバイスを割り当てる。インタラクティブゲームプレイを開始するためのコマンドをクライアントデバイスで受信し、クライアントデバイスからクラウドゲームサーバーに要求を送信する。クラウドゲームサーバーが、要求を受信したことに応答して、実行中のクラウドビデオゲームによって生成されたインタラクティブゲームプレイコンテンツのクライアントデバイスへのストリーミングを開始する。【選択図】図２
2020151494.tif 000002
【特許請求の範囲】
【請求項１】
クラウドビデオゲームのゲームプレイをストリーミングする方法であって、
前記クラウドビデオゲームを実行してゲームプレイビデオを生成するステップと、
ネットワーク上でクライアントデバイスに前記ゲームプレイビデオをストリーミングするステップであって、前記ゲームプレイビデオは前記でクライアントデバイスによってディスプレイに提示される、ステップと、
前記ゲームプレイビデオのストリーミング中、前記ネットワーク上で前記クライアントデバイスに１つまたは複数のビジュアルアセットを送信するステップであって、前記ビジュアルアセットは前記クライアントデバイスによってキャッシュされる、ステップとを含み、
前記キャッシュされたビジュアルアセットは前記クライアントデバイスによって処理され、前記ディスプレイに提示される前に前記ゲームプレイビデオに結合される、方法。
【請求項２】
ストリームされる前記ゲームプレイビデオは、前記クラウドビデオゲームの１つまたは複数のビジュアルコンポーネントを除外するように構成され、前記除外された１つまたは複数のビジュアルコンポーネントは、前記キャッシュされたビジュアルアセットを前記クライアントデバイスにおいて前記ゲームプレイビデオに結合することによって提供される、請求項１に記載の方法。
【請求項３】
前記クラウドビデオゲームの前記１つまたは複数のビジュアルコンポーネントを除外することは、ストリームされる前記ゲームプレイビデオのデータサイズを削減する、請求項２に記載の方法。
【請求項４】
前記ゲームプレイビデオをストリーミングすることは、前記ゲームプレイビデオにおいていつ所与のキャッシュされたビジュアルアセットを結合すべきかを示す識別子の送信を含む、請求項１に記載の方法。
【請求項５】
前記識別子はさらに、前記ゲームプレイビデオの画像フレームにおいてどこに前記所与のキャッシュされたビジュアルアセットを結合すべきかを示す、請求項４に記載の方法。
【請求項６】
前記識別子はさらに、前記ゲームプレイビデオに結合された時、前記所与のキャッシュされたビジュアルアセットのビジュアルな外観を制御する１つまたは複数のパラメータを含む、請求項４に記載の方法。
【請求項７】
前記所与のキャッシュされたビジュアルアセットの前記ビジュアルな外観を制御する前記パラメータは、色、サイズ、向き、透明度、明るさ、またはコントラストのうち１つまたは複数を含む、請求項６に記載の方法。
【請求項８】
前記１つまたは複数のビジュアルアセットは、前記クラウドビデオゲームの現在のゲーム状態にもとづいて選択される、請求項１に記載の方法。
【請求項９】
前記１つまたは複数のビジュアルアセットは、前記クラウドビデオゲームの前記現在のゲーム状態にもとづく予測された将来のゲーム状態にもとづいて選択される、請求項８に記載の方法。
【請求項１０】
前記１つまたは複数のビジュアルアセットは、前記クラウドビデオゲームにおける位置へのプレーヤー制御キャラクタの近接度にもとづいて選択される、請求項８に記載の方法。
【請求項１１】
前記１つまたは複数のビジュアルアセットの送信のタイミングは、監視された帯域幅使用量またはネットワーク状態にもとづいて選択される、請求項１に記載の方法。
【請求項１２】
クラウドビデオゲームのゲームプレイをストリーミングする方法であって、
前記クラウドビデオゲームを実行してゲームプレイビデオを生成するステップと、
ネットワーク上でクライアントデバイスに前記ゲームプレイビデオをストリーミングするステップであって、前記ゲームプレイビデオは前記でクライアントデバイスによってディスプレイに提示される、ステップと、
前記ゲームプレイビデオのストリーミング中、前記ネットワーク上で前記クライアントデバイスに１つまたは複数のビジュアルアセットを送信するステップであって、前記ビジュアルアセットは前記クライアントデバイスによってキャッシュされる、ステップとを含み、
前記キャッシュされたビジュアルアセットは前記クライアントデバイスによって処理され、前記ディスプレイに提示される前に前記ゲームプレイビデオに結合され、前記ゲームプレイビデオをストリーミングすることは、前記ゲームプレイビデオにおいていつ所与のキャッシュされたビジュアルアセットを結合すべきかを示す識別子の送信を含み、
ストリームされる前記ゲームプレイビデオは、前記クラウドビデオゲームの１つまたは複数のビジュアルコンポーネントを除外するように構成され、前記除外された１つまたは複数のビジュアルコンポーネントは、前記キャッシュされたビジュアルアセットを前記クライアントデバイスにおいて前記ゲームプレイビデオに結合することによって提供される、方法。
【請求項１３】
前記クラウドビデオゲームの前記１つまたは複数のビジュアルコンポーネントを除外することは、ストリームされる前記ゲームプレイビデオのデータサイズを削減する、請求項１２に記載の方法。
【請求項１４】
前記識別子はさらに、前記ゲームプレイビデオの画像フレームにおいてどこに前記所与のキャッシュされたビジュアルアセットを結合すべきかを示す、請求項１２に記載の方法。
【請求項１５】
前記識別子はさらに、前記ゲームプレイビデオに結合された時、前記所与のキャッシュされたビジュアルアセットのビジュアルな外観を制御する１つまたは複数のパラメータを含む、請求項１２に記載の方法。
【請求項１６】
前記所与のキャッシュされたビジュアルアセットの前記ビジュアルな外観を制御する前記パラメータは、色、サイズ、向き、透明度、明るさ、またはコントラストのうち１つまたは複数を含む、請求項１５に記載の方法。
【請求項１７】
前記１つまたは複数のビジュアルアセットは、前記クラウドビデオゲームの現在のゲーム状態にもとづいて選択される、請求項１２に記載の方法。
【請求項１８】
前記１つまたは複数のビジュアルアセットは、前記クラウドビデオゲームの前記現在のゲーム状態にもとづく予測された将来のゲーム状態にもとづいて選択される、請求項１７に記載の方法。
【請求項１９】
前記１つまたは複数のビジュアルアセットは、前記クラウドビデオゲームにおける位置へのプレーヤー制御キャラクタの近接度にもとづいて選択される、請求項１７に記載の方法。
【請求項２０】
前記１つまたは複数のビジュアルアセットの送信のタイミングは、監視された帯域幅使用量またはネットワーク状態にもとづいて選択される、請求項１２に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ユーザインタラクション向けのクラウドビデオゲームを提供するためのシステム及び方法に関し、より詳細には、ビデオゲームのクラウドストリーミングへの移行によるローカルビデオゲームの初期化に関する。
【背景技術】
【０００２】
急速に成長する技術の現在の領域は、クラウドゲームの分野である。ユーザは、インターネットなどのネットワークを介してクラウドゲームサイト上の多数のゲームにアクセスして、対話を開始しゲームをプレイすることができる。ゲームプレイするゲームを選択するために、ユーザはクラウドゲームサイトで自分のアカウントにアクセスする。ユーザには、ゲームプレイするユーザアカウントに使用可能なゲームのリストが提供される。ユーザが視聴及び／またはゲームプレイするゲームを選択すると、ユーザは、ゲームプレイするゲームにアクセスする前に、例えば、ユーザアカウントがクラウドゲーム機に割り当てられ、ゲームコードがロードされ、グラフィックスエンジンが初期化され、グラフィックスがロードされ、ゲーム及びユーザ設定がアップロードされるまで待たなければならない。さらに、ビデオゲームの初期コンテンツの進行は、一般的に線形処理であるため、ユーザは、後続のコンテンツがユーザクライアントデバイスにロード、実行、ストリーミングされるとき、ビデオゲームの初期コンテンツの各選択ポイントまたは他のブレークポイントまで待つ必要がある。選択したゲームにアクセスしてからプレイするまでの待ち時間は、グラフィックを多用するゲームでは、より長くなり得る。待つことにより、ユーザはゲームへの関心を失い、ゲームサイトとの対話を停止し、ゲーム開発者／ゲームサイトの所有者に潜在的な損失をもたらし得る。
【０００３】
本文脈の範囲内で、本発明の実施形態が生じる。
【発明の概要】
【０００４】
本開示の実施形態は、クラウドベースのビデオゲームを提供するために使用される方法及びシステムを提供する。
【０００５】
いくつかの実施態様によれば、以下の方法の操作を含む方法が提供される。すなわち、クラウドビデオゲームを開始するための第１のコマンドをクライアントデバイスで受信することと、第１のコマンドを受信したことに応答して、クライアントデバイスによって、クラウドビデオゲームのための初期コンテンツをクライアントローカルストレージから取得することと、初期コンテンツをクライアントデバイスに接続されたディスプレイデバイスにレンダリングすることであって、レンダリングされた初期コンテンツが、クラウドビデオゲームのインタラクティブゲームプレイコンテンツをレンダリングする前に、レンダリングされるように構成されたクラウドビデオゲームのためのコンテンツを定義する、レンダリングすることと、さらに、第１のコマンドを受信したことに応答して、クラウドビデオゲームにアクセスするためにクライアントデバイスからクラウドゲームサービスに第１の要求を送信することであって、クラウドゲームサービスが、第１の要求を受信したことに応答して、クラウドビデオゲームを実行するように構成されたゲーム機にクライアントデバイスを割り当て、実行中のクラウドビデオゲームによって生成されたインタラクティブゲームプレイコンテンツのストリーミングをクライアントデバイスに準備するように構成される、第１の要求を送信することと、クラウドビデオゲームのインタラクティブゲームプレイを開始するための第２のコマンドをクライアントデバイスで受信することと、第２のコマンドを受信したことに応答して、クライアントデバイスからクラウドゲームサービスに第２の要求を送信することであって、クラウドゲームサービスが、第２の要求を受信したことに応答して、実行中のクラウドビデオゲームによって生成されたインタラクティブゲームプレイコンテンツのクライアントデバイスへのストリーミングを開始するように構成される、第２の要求を送信すること、である。
【０００６】
いくつかの実施様態では、レンダリングされた初期コンテンツは、クラウドビデオゲームのゲームプレイコンテキスト内のユーザの進行状況または達成レベルには影響を与えない。
【０００７】
いくつかの実施様態では、レンダリングされた初期コンテンツは、法的情報の列挙、ロゴ提示、スプラッシュ画面、ローディング画面、レーティング画面、メニューのうちの１つまたは複数を定義する。
【０００８】
いくつかの実施様態では、レンダリングされた初期コンテンツは、クラウドビデオゲームのためのユーザ定義の入力を提供するように構成されたインターフェースデバイスのための構成手順を定義する。
【０００９】
いくつかの実施様態では、インタラクティブゲームプレイコンテンツのクライアントデバイスへのストリーミングは、クライアントデバイスによるレンダリングのための、クラウドゲームサービスからクライアントデバイスへのビデオストリーム及びオーディオストリームの転送によって定義される。
【００１０】
いくつかの実施様態では、クラウドゲームサービスは、保存されたゲームデータにアクセスし、保存されたゲームデータに従って実行中のクラウドビデオゲームの状態を定義することによって、インタラクティブゲームプレイコンテンツのストリーミングを準備するように構成される。
【００１１】
いくつかの実施態様によれば、以下の方法の操作を含む方法が提供される。すなわち、クラウドビデオゲームを開始するための第１のコマンドをクライアントデバイスで受信することと、第１のコマンドを受信したことに応答して、クライアントデバイスによって、クラウドビデオゲームのための初期コンテンツをクライアントローカルストレージから取得することと、初期コンテンツをディスプレイデバイスにレンダリングすることと、さらに、第１のコマンドを受信したことに応答して、クラウドビデオゲームにアクセスするためにクライアントデバイスからクラウドゲームサービスに第１の要求を送信することであって、クラウドゲームサービスが、第１の要求を受信したことに応答して、クラウドビデオゲームを実行し、実行中のクラウドビデオゲームによって生成されたインタラクティブゲームプレイコンテンツのストリーミングをクライアントデバイスに準備するように構成される、第１の要求を送信することと、クラウドビデオゲームのインタラクティブゲームプレイを開始するための第２のコマンドをクライアントデバイスで受信することと、第２のコマンドを受信したことに応答して、クライアントデバイスからクラウドゲームサービスに第２の要求を送信することであって、クラウドゲームサービスが、第２の要求を受信したことに応答して、実行中のクラウドビデオゲームによって生成されたインタラクティブゲームプレイコンテンツのクライアントデバイスへのストリーミングを開始するように構成される、第２の要求を送信すること、である。
【００１２】
いくつかの実施様態では、レンダリングされた初期コンテンツは、クラウドビデオゲームのゲームプレイコンテキスト内のユーザの進行状況または達成レベルには影響を与えない。
【００１３】
いくつかの実施様態では、レンダリングされた初期コンテンツは、法的情報の列挙、ロゴ提示、スプラッシュ画面、ローディング画面、レーティング画面、メニュー、または、クラウドビデオゲームのためのユーザ定義の入力を提供するように構成されたインターフェースデバイスのための構成手順のうちの１つまたは複数を定義する。
【００１４】
いくつかの実施様態では、インタラクティブゲームプレイコンテンツのクライアントデバイスへのストリーミングは、クライアントデバイスによるレンダリングのための、クラウドゲームサービスからクライアントデバイスへのビデオストリーム及びオーディオストリームの転送によって定義される。
【００１５】
いくつかの実施様態では、クラウドゲームサービスは、保存されたゲームデータにアクセスし、保存されたゲームデータに従って実行中のクラウドビデオゲームの状態を定義することによって、インタラクティブゲームプレイコンテンツのストリーミングを準備するように構成される。
【００１６】
いくつかの実施様態では、本方法は、さらに、第２のコマンドを受信することに応答して、クライアントデバイスへのインタラクティブゲームプレイコンテンツのストリーミングを開始することと、インタラクティブゲームプレイコンテンツとのユーザ対話機能から定義されたクライアントデバイスでユーザ入力を受信することと、実行中のビデオゲームによって処理するために、クライアントデバイスからクラウドゲームサービスにユーザ入力を転送することとをさらに含む。
【００１７】
いくつかの実施様態では、本方法は、さらに、ビデオゲームのゲームプレイを終了するための第３のコマンドをクライアントデバイスで受信することと、第３のコマンドを受信することに応答して、クライアントデバイスからクラウドゲームサービスに第３の要求を送信することと、クラウドゲームサービスが、第３の要求を受信することに応答して、クライアントローカルストレージに格納されている初期コンテンツへの更新が必要かどうかを判定するように構成され、更新されていれば、更新をクライアントデバイスに送信することとを含む。
【００１８】
本開示の実施様態によれば、以下の方法の操作を含む方法が提供される。すなわち、クラウドゲーム機によってクラウドビデオゲームを実行することであって、実行中のクラウドビデオゲームが、クライアントデバイスにストリーミングするためのビデオコンテンツを生成するように構成されている、クラウドビデオゲームを実行することと、クライアントデバイスにキャッシュされるように構成されたキャッシュ可能なビジュアルコンテンツを識別することとであって、キャッシュ可能なビジュアルコンテンツが、１つまたは複数のビジュアルアセットを含む、ビジュアルコンテンツを識別することと、ビデオコンテンツ及びキャッシュ可能なビジュアルコンテンツを含む混合データストリームをクライアントデバイスに送信することであって、クライアントデバイスが、キャッシュ可能なビジュアルコンテンツをクライアントキャッシュに格納するように構成され、クライアントデバイスが、ディスプレイにレンダリングするためのクライアント画像ストリームを定義するために、ビデオコンテンツをビジュアルアセットの１つまたは複数と組み合わせるようにさらに構成される、混合データストリームをクライアントデバイスに送信すること、である。
【００１９】
いくつかの実施様態では、実行中のクラウドビデオゲームは、クライアントキャッシュに格納されたビジュアルアセットを識別するように構成され、ビデオコンテンツを生成することが、生成されたビデオからクライアントキャッシュに格納されたビジュアルアセットを除外するように構成される。
【００２０】
いくつかの実施様態では、実行中のクラウドビデオゲームは、ビデオコンテンツと組み合わされるビジュアルアセットの１つまたは複数を識別する識別データを生成するように構成され、混合データストリームは識別データを含む。
【００２１】
いくつかの実施様態では、識別データは、ビジュアルアセットの１つまたは複数がビデオコンテンツに挿入される、ビデオコンテンツの画像フレーム内の空間的または時間的位置をさらに定義する。
【００２２】
いくつかの実施様態では、キャッシュ可能なコンテンツを識別してクライアントデバイスに送信することが、クラウドビデオゲームのゲームプレイの完了が所定の閾値を超えたと判定することに応答する。
【００２３】
本発明の他の態様及び利点は、本発明の原理を例示により示す添付の図面と関連した、以下の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
【００２４】
本発明は、そのさらなる利点と共に、添付の図面と関連した以下の説明を参照することによって最もよく理解されるであろう。
【００２５】
【図１Ａ】本発明の一実施形態による、ゲームコンテンツをクラウドゲームサーバにプリロードするために使用される例示的なシステムの簡略ブロック図を示す。
【００２６】
【図１Ｂ】本開示の実施様態による、クラウドビデオゲームをクライアントデバイスにストリーミングするために実行される様々な動作を概念的に示すフロー図である。
【００２７】
【図２】本開示の実施様態による、ローカルアプリケーションのクイックスタート機能を有するクラウドゲームのためのシステムを概念的に示す。
【００２８】
【図３】本開示の実施様態による、キャッシュ最適化クラウドゲームを提供するためのシステムを示す。
【００２９】
【図４】本開示の実施様態による、クラウドゲームサービスからのローカルキャッシュ最適化クラウドビデオゲームのストリーミングを提供するためのデータの流れを概念的に示す。
【００３０】
【図５】本開示の実施様態による、ローカルアプリケーションのクイックスタート機能を提供するための方法を示す。
【００３１】
【図６】本開示の実施様態による、ローカルアプリケーションのクイックスタート機能を提供するための方法を示す。
【００３２】
【図７】本開示の実施様態による、既存の従来のゲームストリーミングセットアップの帯域幅使用率を、クライアントキャッシュを採用するものと比較する、データ帯域幅対時間を示すグラフである。
【００３３】
【図８】本発明の一実施形態による、ネットワークを介して地理的に分散され、接続されているユーザに情報コンテンツ及びサービスを配信するための例示的な情報サービスプロバイダアーキテクチャを示す。
【００３４】
【図９】本発明の一実施形態による、ユーザに提示されるコンテンツを制御するために使用されるコンピューティングデバイスの例示的なコンポーネントを示す図である。
【発明を実施するための形態】
【００３５】
以下の説明では、本発明の完全な理解を提供するために、多くの具体的な詳細が述べられている。しかしながら、本発明は、これらの具体的な詳細の一部または全部を用いずに実施し得ることは、当業者には明らかであろう。他の例では、本発明を不明瞭にしないために、周知の処理工程を詳細には説明していない。
【００３６】
ゲームタイトルのユーザ要求が受信されると、クラウドゲームサイトに関連付けられたデータセンター内のサーバ（複数可）によっていくつかの操作が実行される。クラウドゲームサイトがユーザ要求を受信すると、選択されたゲームタイトルに関連するゲームをホストするデータセンターが識別され、選択されたゲームタイトルのゲームをインスタンス化するため、要求が識別されたデータセンターに送信される。要求に応答して、データセンターのサーバは、ゲームコードを識別し、識別されたゲームコードをロードし、ゲームコンテンツをユーザに提示するための準備のためにゲームコードに関連するファイルを初期化する。ゲームに関連するゲームデータには、汎用ゲームデータ及びユーザ固有のゲームデータが含まれる。したがって、ファイルの初期化には、汎用ゲームデータ及びユーザ固有のゲームデータを識別し、ロードし、初期化することが含まれる。汎用ゲームデータの初期化には、グラフィックスエンジンの初期化、グラフィックスデータのインストール、サウンドファイルの初期化、アートワークのインストールなどが含まれ得る。ユーザ固有のデータの初期化には、ユーザデータ、ユーザ履歴、ゲーム履歴などの検索及びインストールが含まれ得る。汎用ゲームデータのロードは、ゲームの複雑さ／ゲームのグラフィックスに応じて、数秒から数分かかり得る。
【００３７】
汎用ゲームデータがロードされ、初期化されている間に、クライアントデバイスでレンダリングするための「スプラッシュ」画面が提供され得る。スプラッシュ画面は、ユーザがロードされているゲームの種類のプレビューをすることができるように、ロードされているゲームの代表的な画像を提供するように設計し得る。汎用ゲームデータがロードされると、オーディオコンテンツがレンダリングされ、選択／ナビゲーション画面がユーザの選択／カスタマイズのために提示され得る。選択／ナビゲーション画面で提供されるユーザ選択入力は、ゲームレベル選択、ゲームアイコン（複数可）選択、ゲームモード選択、ゲーム獲得物、追加のゲームコンテンツのアップロードを必要とし得る他のユーザ関連データを含み得る。ユーザ選択入力のアップロードは、ゲームプレイのためにユーザにゲームコンテンツが使用可能になる前に、さらなる遅延を引き起こす可能性がある。いくつかの実施形態では、ゲームコンテンツは、ゲームクラウドシステムからユーザのコンピューティングデバイスにストリーミングすることによって、視聴及び対話することが可能になる。ユーザ固有のデータをロードした後、ゲームコンテンツはゲームプレイに使用可能になる。
【００３８】
図１Ａは、クラウドゲームサイトを通じて使用可能なゲームのゲームファイルをロードするために使用される例示的なシステムを示す。システムは、インターネットなどのネットワーク１０２を介してクラウドゲームサイト１０４に通信可能に接続された複数のクライアントデバイス１００を含む。クラウドゲームサイト１０４にアクセスする要求がクライアントデバイス１００から受信されると、クラウドゲームサイト１０４は、ユーザデータストア１０８に格納されたユーザアカウント情報１０６にアクセスして、要求が開始されるクライアントデバイスに関連付けられたユーザを識別する。いくつかの実施形態では、クラウドゲームサイトはまた、ユーザが視聴／プレイすることが許可されているすべてのゲームを判定するために、識別されたユーザを検証し得る。ユーザアカウント識別／検証に続いて、クラウドゲームサイトは、ゲームタイトルデータストア１１０にアクセスして、要求を開始するユーザアカウントのゲームクラウドサイトで使用可能なゲームタイトルを識別する。ゲームタイトルデータストア１１０は、次に、ゲームデータベース１１２と対話して、クラウドゲームサイトで使用可能なすべてのゲームのゲームタイトルを取得する。新しいゲームが導入されると、ゲームデータベース１１２がゲームコードで更新され、ゲームタイトルデータストア１１０に、新たに導入されたゲームのゲームタイトル情報が提供される。要求が開始されたクライアントデバイスは、要求が開始されたときにクラウドゲームサイトに登録されてもされなくてもよい。要求を開始するクライアントデバイスのユーザが登録ユーザでない場合、クラウドゲームサイトは、新しいユーザとしてユーザを識別し、新しいユーザに適したゲームタイトル（例えば、ゲームタイトルのデフォルトセット）を選択し得る。識別されたゲームタイトルは、図１Ａに示すように、ディスプレイ画面１００−ａ上に提示するためにクライアントデバイスに返される。
【００３９】
クライアントデバイス上でレンダリングされたゲームタイトルのうちの１つでユーザインタラクションが検出されると、信号がクラウドゲームサイトに送信される。信号には、ユーザインタラクションが検出されたゲームタイトル情報及びゲームタイトルに登録されたユーザインタラクションが含まれる。クライアントデバイスから受信された信号に応答して、クラウドゲームサイトは、ゲームがホストされているデータセンターを事前に判定し、識別されたデータセンターに信号を送信して、ユーザインタラクションが検出されたゲームタイトルに関連するゲームをロードする。いくつかの実施形態では、複数のデータセンターがゲームをホストし得る。そのような実施形態では、クラウドゲームサイトは、要求を開始するクライアントデバイスの地理的位置を判定し、クライアントデバイスに地理的に近いデータセンターを識別し、データセンターに信号を送信し、ゲームをプリロードする。ユーザの地理的位置は、クライアントデバイス内の全地球測位システム（ＧＰＳ）機構、クライアントのＩＰアドレス、クライアントのｐｉｎｇ情報などを使用して判定し得る。もちろん、ユーザの地理的位置を検出する前述の方法は例示的なものであり得て、他の種類の機構またはツールを使用してユーザの地理的位置を判定し得る。クライアントデバイスに近いデータセンターを識別することで、ゲームとのユーザインタラクション中の待ち時間を最小限に抑えることができる。いくつかの実施形態では、識別されたデータセンターは、ゲームをホストするために必要な帯域幅／容量を有し得ないか、または過度に使用され得る。これらの実施形態では、クラウドゲームサイトは、クライアントデバイスに地理的に近い第２のデータセンターを識別し得る。ゲームのロードには、ゲームコードのロード及びゲームのインスタンスの実行が含まれる。
【００４０】
クラウドゲームサイトから信号を受信することに応答して、識別されたデータセンターは、データセンターでサーバを選択して、サーバ上でゲームをインスタンス化し得る。サーバは、使用可能なハードウェア／ソフトウェア機能及びゲーム要件に基づいて選択される。サーバは、複数のゲームコンソールを含み得て、サーバは、ゲームをロードするために使用する複数のゲームコンソールのいずれかを決定し得る。ゲームコンソールは、独立したゲームコンソールと同様であり得て、ラックマウント型サーバまたはブレードサーバであり得る。ブレードサーバは、ゲームなどの単一の専用アプリケーションをインスタンス化するために必要な回路を有する各ブレードを備えた複数のサーバブレードを含み得る。もちろん、上述したゲームコンソールは例示的なものであり、限定的なものではない。ゲームステーションなどを含む他の種類のゲームコンソール、及び他の形態のブレードサーバもまた、識別されたゲームをホストするために使用し得る。
【００４１】
ゲームコンソールが識別されると、ゲームの汎用ゲーム関連コードがゲームコンソールにロードされ、ゲームがインスタンス化されているゲームコンソールを識別するネットワークを介して、クラウドゲームサイト経由でクライアントデバイスに信号が返される。したがって、ロードされたゲームがユーザに使用可能となる。
【００４２】
図１Ｂは、本開示の実施様態による、クラウドビデオゲームをクライアントデバイスにストリーミングするために実行される様々な動作を概念的に示すフロー図である。ゲームシステム１１８は、ビデオゲームを実行し、生の（非圧縮の）ビデオ１２０及びオーディオ１２２を生成する。例示した図の参照番号１２４で示すように、ビデオ１２０及びオーディオ１２２は、ストリーミング目的のためにキャプチャされ符号化される。符号化は、ビデオ及びオーディオストリームの圧縮を提供し、帯域幅の使用量を減らし、ゲーム体験を最適化することができる。符号化形式の例としては、Ｈ．２６５／ＭＰＥＧ−Ｈ、Ｈ．２６４／ＭＰＥＧ−４、Ｈ．２６３／ＭＰＥＧ−４、Ｈ．２６２／ＭＰＥＧ−２、ＷＭＶ、ＶＰ６／７／８／９などがある。
【００４３】
符号化されたオーディオ１２６及び符号化されたビデオ１２８は、インターネットなどのネットワークを介した転送のために、参照番号１３２で示されるように、ネットワークパケットにさらにパケット化される。ネットワークパケット符号化処理はまた、データ暗号化処理を採用することができ、それによって、強化されたデータセキュリティを提供する。図示された実施様態では、オーディオパケット１３４及びビデオパケット１３６は、参照番号１４０に示すように、ネットワークを介した転送のために生成される。
【００４４】
ゲームシステム１１８は、触覚フィードバックデータ１３０をさらに生成し、触覚フィードバックデータ１３０も、ネットワーク転送のためにネットワークパケットにパケット化される。図示された実施態様では、触覚フィードバックパケット１３８は、参照番号１４０でさらに示されるように、ネットワークを介した転送のために生成される。
【００４５】
転送のために、生のビデオ及びオーディオ、ならびに触覚フィードバックデータを生成し、ビデオ及びオーディオを符号化し、符号化されたオーディオ／ビデオ及び触覚フィードバックデータをパケット化する前述の動作は、クラウドゲーミングサービス／システムを集合的に定義する１つまたは複数のサーバ上で実行される。参照番号１４０に示すように、オーディオ、ビデオ、及び触覚フィードバックパケットは、インターネットなど及び／またはインターネットを含む、ネットワークを介して転送される。参照１４２に示すように、オーディオパケット１３４、ビデオパケット１３６、及び触覚フィードバックパケット１３８は、クライアントデバイスで符号化されたオーディオ１４６、符号化されたビデオ１４８、及び触覚フィードバックデータ１５０を定義するために、クライアントデバイスによって復号化／再構成される。データが暗号化されている場合、ネットワークパケットも復号化される。符号化されたオーディオ１４６及び符号化されたビデオ１４８は、参照番号１４４で示すように、クライアントデバイスによって復号化され、ディスプレイデバイス１５２上にレンダリングするためのクライアント側の生のオーディオ及びビデオデータを生成する。触覚フィードバックデータ１５０は、触覚効果をレンダリングすることができるコントローラデバイス１５６または他のインターフェースデバイスで触覚フィードバック効果を生成するために処理／伝達することができる。触覚効果の一例は、制御デバイス１５６の振動または低周波雑音である。
【００４６】
ビデオゲームはユーザの入力に応答し、したがって、ユーザ入力の転送及び処理のための手順フローは、上述したものと同様であるが、クライアントデバイスからサーバへの逆方向に実行できることが理解されるであろう。図示されているように、コントローラデバイス１５６を操作するユーザは、入力データ１５８を生成し得る。この入力データ１５８は、ネットワークを介してクラウドゲームシステムに転送するために、クライアントデバイスでパケット化される。入力データパケット１６０は、サーバ側で入力データ１６２を定義するために、クラウドゲームサーバによって解凍され、再構成される。入力データ１６２は、ゲームシステム１１８に供給され、ゲームシステム１１８は入力データ１６２を処理して、ビデオゲームのゲーム状態を更新する。
【００４７】
オーディオパケット１３４、ビデオパケット１３６、及び触覚フィードバックパケット１３８の転送中（参照番号１４０）、ネットワークを介したデータの転送を監視して、クラウドゲームストリームのサービス品質を保証することができる。例えば、参照番号１６４によって示されているように、アップストリーム及びダウンストリームの両方のネットワーク帯域幅を含む、ネットワーク状態を監視することができ、使用可能な帯域幅の変化に応じてゲームストリーミングを調整することができる。すなわち、ネットワークパケットの符号化及び復号化は、参照番号１６６によって示されているように、現在のネットワーク状態に基づいて制御することができる。
【００４８】
図２は、本開示の実施様態による、ローカルアプリケーションのクイックスタート機能を有するクラウドゲームのためのシステムを概念的に示す。ユーザ２２６は、クラウドゲームサービスにアクセスするように構成されたクライアントデバイス１００と対話する。ユーザ２２６は、コントローラデバイス１５６を操作して、クライアントデバイス１００への入力を生成及び提供し得る。さらに、クライアントデバイス１００は、ディスプレイデバイス１５２にコンテンツをレンダリングするように構成することができる。いくつかの実施様態では、ディスプレイデバイス１５２はヘッドマウントディスプレイにすることができることが理解されるであろう。
【００４９】
クライアントデバイスは、ネットワーク１０２を介してクラウドゲームサーバ１０４と通信し、クラウドゲームサーバ１０４は、ユーザのクラウドゲームアカウントへのアクセスを提供する。クラウドゲーミングサーバ１０４は、ユーザアカウントストレージ１０６からユーザデータ２０４を取得し、図示の実施形態では、ユーザデータ２０４はユーザ２２６に固有である。一例として、ユーザデータ２０４は、ユーザによるゲームプレイのための使用可能なゲームタイトルであるタイトル２０６などの様々なクラウドゲーム関連データを含むことができる。これらは、ユーザが購入した、レンタルした、借用した、授与された、またはそれ以外の方法でゲームプレイのためにアクセス権を取得したゲームタイトルであり得る。ユーザデータはまた、ゲームセーブデータ２０８、トロフィー２１０、統計２１２、ソーシャルデータ２１４（例えば、ソーシャルグラフデータを含む）、及び履歴データ２１６（例えば、ユーザアクセス履歴、ゲームプレイ履歴など）を含み得る。
【００５０】
ユーザ２２６が、ユーザがアクセス許可を有する所与のクラウドビデオゲームをプレイしたい場合、ユーザは、ディスプレイ１５２上のクライアントデバイス１００によって提示されるグラフィカルユーザインターフェース（ＧＵＩ）上でビデオゲームの選択を指示し得る。ゲームプレイのビデオゲームが選択されると、クライアントデバイス１００からクラウドゲームサーバ１０４にゲーム要求が転送される。ゲーム要求は、ユーザがプレイしたいゲームタイトルを識別し得る。ゲーム要求を受信したことに応答して、クラウドゲームサーバ１０４は、クラウドゲーム機１１８をアクティブ化して、要求されたビデオゲームのタイトルをインスタンス化する。すなわち、クラウドゲーム機１１８は、要求しているクライアントデバイス１００に割り当てられ、要求されたビデオゲームタイトルの実行を開始する。
【００５１】
クラウドゲームサーバ１０４に対するクライアントデバイス１００によるゲーム要求の通信と同時に、クライアントデバイス１００は、ローカルストレージ２３２から初期コンテンツ２３４のレンダリングも開始する。初期コンテンツプレゼンタ２３６は、初期コンテンツ２３４による検索、レンダリング、及びインタラクティビティを管理する。初期コンテンツ２３４は、要求されたビデオゲームに対して固有にすることができ、ビデオゲームのインタラクティブゲームプレイの開始前にユーザに提示され得る任意のゲーム関連コンテンツを含み得る。
【００５２】
本開示の目的のために、インタラクティブゲームプレイとは、ビデオゲームの競争的／物語的な文脈の中で、実質的にユーザの進行を直接進めることができる、ユーザと実行中のビデオゲームとの間の双方向性を指すものとする。したがって、ビデオゲームのインタラクティブゲームプレイには、スタートアップ画像／ビデオ、スプラッシュ／ローディング画面またはビデオ、法的情報画面、ゲーム設定（例えば、コントローラ設定、ゲーム難易度、ビデオ設定、オーディオ設定など）へのアクセスまたは設定、ゲーム選択メニュー（例えば、保存されたゲーム選択、ゲームレベル選択、ゲームタイプ選択（例えば、アーケード、キャンペーン）など）、及び／またはビデオゲームの競争的または物語的な文脈の中でユーザの進行を直接進めることができない他の種類のゲーム関連コンテンツまたはインタラクティブ機能などの他の種類のコンテンツレンダリングまたはゲーム関連インタラクションは含まれない。
【００５３】
前述のように、ビデオゲームの初期コンテンツ２３４は、インタラクティブゲームプレイの開始前に提示されるコンテンツを含む。初期コンテンツ２３４は、ロゴ画面、スタートアップ／スプラッシュ画面（画像またはアニメーション／ビデオ）、法的情報／免責事項画面、周辺デバイス構成メニュー、機能設定メニューなどのコンテンツを含むことができる。初期コンテンツ２３４は、ローカルストレージ２３２からローカルにアクセス可能であるため、初期コンテンツ２３４のレンダリングは、すぐに行われることができ、非常に高速なシステムでは実質的に即時または瞬時に行い得る。ユーザは、ビデオゲームのコンテンツがディスプレイデバイス１５２にレンダリングされる前に、クラウドゲームシステムが、クライアント１００のゲーム機１１８を提供／割り当てし、割り当てられたゲーム機１１８に適切なビデオゲームコードをロードし、ビデオゲームコードの実行を開始し、及び／またはクライアント１００へのストリーミングを開始するのを待つ必要はない。これにより、クラウドゲームシステムは、ゲームストリーミングのためにゲーム機１１８を準備しながら、ビデオゲームへのローカルクイックスタートを提供する。したがって、ユーザには、不十分なクラウドゲーム体験と感じてしまうクラウドゲームシステムの動作を待つことを強要させるのではなく、使用して楽しむための初期コンテンツが提供される。
【００５４】
ゲーム機１１８は、ゲームタイトルデータストア１１０から要求されたゲームタイトルコードを取得し、そのゲームタイトルコードを実行して、実行するビデオゲームを定義する。ゲーム機１１８からの生のビデオ／オーディオ出力は、ストリーミングサーバ２２０に供給され、ストリーミングサーバ２２０は、生のビデオ／オーディオを、ストリーミングのために圧縮フォーマットに符号化する。上述のように、符号化されたオーディオ及びビデオは、ネットワーク通信プロトコルに従ってネットワーク１０２を介して転送することができる。クライアントデバイス２２４のストリーミングロジック２３８は、ディスプレイ１５２にレンダリングするために、受信したストリーミングオーディオ／ビデオを処理する。
【００５５】
ローカルストレージ２３２の初期コンテンツ２３４の提示から、ストリーミングサーバ２２０を介したクラウドベースのゲーム機１１８のストリーミングビデオゲームの提示までの移行が行われることが理解されるであろう。いくつかの実施様態では、ゲーム機１１８でのビデオゲームの実行は、ある時点に達するまで進行し、その時点でビデオゲームはクライアントデバイス１００へのビデオゲームのストリーミングを開始するためのトリガを待つ。いくつかの実施様態では、ストリーミングを開始するためのトリガは、クライアントデバイス１００で受信したユーザ入力から定義し得る。例えば、ユーザは、ボタンを押すか、コントローラ１５６を介して他の何らかの入力を提供して、ストリーミングを開始し得る。
【００５６】
コンテンツのローカル実行／提示からコンテンツのクラウドストリーミングへの移行は、円滑なユーザ体験を提供するように構成することができる。ゲーム機１１８によるビデオゲームの実行は、クライアントデバイスでの初期コンテンツの提示に同期させることができる。ゲーム機１１８は、初期コンテンツの提示に関してクライアントデバイス２２４からステータス更新を受信し得て、クラウドゲーム機１１８によるビデオゲームの実行は、初期コンテンツ２３４の提示と同期するように調整することができ、したがって、クラウドストリーミングへの円滑な移行が可能になる。いくつかの実施様態では、ローカルコンテンツからストリーミングコンテンツへの移行は、ユーザ入力を必要とせずに自動的に行われるが、他の実施様態では、ユーザ入力に応じて移行が行われることが理解されるであろう。
【００５７】
初期コンテンツのレンダリングからクラウドのビデオゲームのストリーミングへの移行は、ゲーム全体の提示の様々な時点で行われ得る。例えば、スプラッシュ画面（画像／アニメーション／ビデオ）のレンダリング、またはユーザによるアクティブな選択もしくは入力を必要とするメニューまたは他のコンテンツのレンダリングに続いて、移行が行われ得る。後者の概念では、ユーザ選択（例えば、メニュー項目またはオプションの選択）または入力は、ゲーム機１１８で実行中のビデオゲームに伝達することができ、ゲーム機１１８は、レンダリングされる次のコンテンツを判定するために選択／入力を処理し得る。いくつかの実施様態では、レンダリングされる次のコンテンツは、別のスプラッシュ画面またはメニューであり、したがって、初期コンテンツのローカル実行からクラウドビデオゲームストリーミングへの移行は、インタラクティブゲームプレイの開始前に提示される画面／メニュー間で行われる。いくつかの実施様態では、クラウドゲーム機１１８は、いくつかの画面のうちのどれがクライアントデバイス２２４に提示されているかに関する状態の更新を受信することができ、ゲーム機１１８は、クライアントデバイス２２４にストリーミングされる次の画面を実行して、レンダリングするように指示することができる。
【００５８】
いくつかの実施様態では、単一コンテンツ画面の提示中に移行が行われる。例えば、初期コンテンツ２３４は、連続して提示される複数の画面を含むことができる。画面のローカル提示中に、クラウドゲーム機１１８は、どの画面が提示されているかを示す状態の更新を受信することができ、クラウドゲーム機１１８は、クライアントデバイス２２４によって現在提示されている画面と同じ画面を実行してレンダリングするように指示することができる。したがって、ストリーミングへの移行は、現在の画面の提示中に行われる可能性があり、ユーザに対してシームレスに表示され得る。いくつかの実施様態では、画面コンテンツの画像／ビデオ部分は最初にストリーミングに移行されるが、オーディオは次の画面の提示まで移行されない。いくつかの実施様態では、オーディオは、オーディオクリップのループ再生によって定義され、オーディオ再生がクリップの終わりに達すると、（ビデオとオーディオの両方の、またはオーディオのみの）移行が行われ得る。このような構成は、オーディオ提示の可聴中断を回避することができる。
【００５９】
いくつかの実施様態では、ビデオゲームのストリーミングを開始するためのトリガは、ビデオゲームのインタラクティブゲームプレイの開始もトリガする。例えば、開始コンテンツは、実際のインタラクティブなゲームプレイを開始する前に、ユーザに提示されるビデオゲームのすべてのコンテンツを含むことができる。次に、インタラクティブゲームプレイを開始する時点で、クライアントデバイス１００は、ローカルに格納されたコンテンツを提示することから、クラウドベースのストリーミングコンテンツを提示することに移行する。さらに、ユーザ選択または他のユーザ入力などの初期コンテンツとのユーザインタラクションが、実行中のビデオゲームに伝達できることが理解されるであろう。このようにして、ローカルに格納されたコンテンツとの対話を使用して、クラウドベースのビデオゲームを実行させることができる。例えば、ユーザはメニュー選択を指示し得て、これはゲーム機１１８上で実行中のビデオゲームに伝達される。ただし、メニューの提示は、ローカルストレージ２３２からのものであり、メニューからのユーザ選択に続いて、ユーザ選択はゲーム機１１８に（例えばクラウドゲームサーバ１０４を介して）伝達され得て、ゲーム機１１８はユーザ選択を処理し得る。クライアントデバイス１００はまた、ストリーミングサーバ２２０を介してゲーム機１１８からユーザ選択の結果を（例えば、ビデオゲームのインタラクティブゲームプレイを開始するために）ストリーミングすることに移行し得る。
【００６０】
当業者によって理解されるように、実行中のビデオゲームは、入力を受信し、入力を処理してビデオゲームのゲーム状態を更新するゲームエンジンを定義し得る。いくつかの実施様態では、ビデオゲームのゲームエンジンは、ゲーム機１１８で初期化され、初期コンテンツ２３４は、クライアントデバイスで提示される。ゲームエンジンは、ゲーム機がゲームエンジンの実行を継続するためのトリガを待機するとき、初期化されて一時停止状態に入り得る。ユーザ入力から定義することができるトリガを受信すると、一時停止状態が終了し、その結果、ゲームエンジンが実行され、ビデオゲームのインタラクティブゲームプレイが開始される。
【００６１】
いくつかの実施様態では、クライアントデバイス２２４は、初期コンテンツ２３４の提示に関して、状態の更新をクラウドゲームシステムに伝達するように構成することができる。そのような状態の更新は、初期コンテンツの提示の現在の状態を識別する情報、及びユーザ入力／選択／ナビゲーションを含むことができる。このような状態の更新に応答して、ゲーム機１１８によるビデオゲームの実行は、ビデオゲームの文脈内で様々なオプションのいずれかを実行するように指示することができる。したがって、クライアントデバイス２２４による初期コンテンツ２３４のレンダリングからストリーミングサーバ２２０のビデオゲームのストリーミングまでの間の移行は、円滑なユーザ体験を提供するために管理及び同期させることができる。
【００６２】
いくつかの実施様態では、多くの場合、ユーザは通常、最後に保存した場所からゲームプレイを続けることを望むため、ゲーム機でのゲームエンジンの初期化は、ユーザの最後に保存したゲームデータを自動的にロードするように構成することができる。ユーザが、最後に保存したゲームのゲームプレイを続けたいことを指示する（例えば、ナビゲーション／ゲームの選択／オプションによって）間もなく、ユーザの最後に保存したゲームデータのこの自動的なロードを先制的に行うことができることが理解されるであろう。これは、クラウドベースのゲーム機が最終的なインタラクティブゲームプレイのためにゲームエンジンを初期化している間に、クライアントデバイスが初期コンテンツを処理してレンダリングする処理の分割によって可能になる。したがって、ここで説明した構成は、各ローカルクライアントデバイス１００及びクラウドベースのゲーム機１１８がそれぞれ、ローカルデバイスによる初期コンテンツの順次ロードと、それに続く保存したゲームのロードを並列に処理するため、ユーザは待たされることがなくなり、従来のコンソールゲームのゲーム体験さえも超える利点を提供する。
【００６３】
いくつかの実施様態では、クラウドゲームサーバ１０４は、ユーザのゲームプレイ履歴に基づいて、所与のビデオゲームに対して最後に保存したゲームを先制的にロードするかどうかを判定するように構成することができる。例えば、いくつかの実施様態では、システムは、ビデオゲームのユーザの最後のゲームプレイセッション中に、ユーザが前回最後に保存したゲームをロードした場合、ユーザの最後に保存したゲームを自動的にロードするように構成され得る。関連する実施様態では、システムは、最後のゲームプレイセッションからの経過時間が閾値時間より短く、ユーザのビデオゲームの最後のゲームプレイセッション中に、ユーザが前回最後に保存したゲームをロードした場合、ユーザの最後に保存したゲームを自動的にロードするように構成し得る。他の実施様態では、システムは、ソーシャルネットワーク活動、時間帯、最後のゲームプレイからの時間の長さ、ビデオゲームの保存されたゲームと保存されていないゲーム（例えば、アーケード、マルチプレーヤー）とのゲームプレイの相対的な量などの、様々な要因に基づいてユーザの最後に保存したゲームを自動的にロードするかどうかを判定するように構成され得る。
【００６４】
図示された実施様態では、インタラクティブゲームプレイ中、ゲーム機１１８はゲームエンジンを実行して、ビデオ及びオーディオデータのフル非圧縮ストリームを生成する。ストリーミングサーバ２２０は、フルビデオ及びオーディオデータストリームを受信し、それらをネットワーク１０２を介してクライアントデバイス１００に転送するために処理する。処理は、ビデオ及びオーディオデータを圧縮フォーマットに符号化し、圧縮データを暗号化し、転送用のネットワークプロトコルに従ってデータをパケット化することが必要となり得る。クライアントデバイス１００は、転送されたデータを受信し、ネットワークパケットを再構成し、ディスプレイ／ＨＭＤ１５２及びオーディオデバイス（ディスプレイ１５２の一部であり得る）にレンダリングするために、圧縮されたビデオ／オーディオデータを復号して解読する。
【００６５】
上述の実施様態では、ストリーミングサーバは、フルビデオ及びオーディオストリームの圧縮バージョンをクライアントデバイス１００にストリーミングする。いくつかの実施様態では、以下にさらに詳細に説明するように、ストリーミングサーバ２２０は、他の方法でも最適化されたフルビデオ及びオーディオストリームのバージョンをストリーミングするように構成され得る。説明するように、ストリーミングされたビデオ及びオーディオは、ゲームのストリーミングに必要な帯域幅が少なくなるように、または、ストリーミングされたビデオ及びオーディオの残りの部分を、より高い忠実度（例えば、より高いフレームレートまたはサンプルレート、より高い解像度など）でストリーミングし得るように、後にクライアント１００で供給される特定のコンテンツ部分／アセットが残るように構成され得る。
【００６６】
図３は、本開示の実施様態による、キャッシュ最適化クラウドゲームを提供するためのシステムを示す。大まかに言って、図示されたシステムは、ビデオゲームの画像またはオーディオ部分がクライアントデバイスに格納され、ディスプレイ上にレンダリングする直前にクライアントデバイスでストリーミングされたビデオまたはオーディオと結合されるように構成され、それによって、ビデオゲームをストリーミングするのに必要な帯域幅を減少させる。クライアントデバイスに格納されている部分は、ゲームストリーミング及び／またはネットワーク状態に関する帯域幅使用率を監視することから決定されるように、使用可能な帯域幅がある時間帯にデバイスに転送することができる。
【００６７】
図示された実施様態では、ゲーム機１１８は、ゲームタイトルストレージ１１０に格納されているビデオゲーム（タイトルＡ）のキャッシュ最適化ゲームビルド３００を実行する。キャッシュ最適化ゲームビルド３００は、本明細書で説明されるキャッシュ最適化ゲームストリーミング機能を提供するように構成されたビデオゲームタイトルの特殊バージョンである。特に、キャッシュ最適化ゲームビルド３００は、ビデオゲームの特定のビジュアルまたはオーディオコンポーネントを除外したビデオ及びオーディオデータストリームを出力するように構成可能であり、それによって、ビデオ及びオーディオデータストリームのデータサイズが低減する。
【００６８】
ゲーム機１１８でゲームビルド３００を実行することにより、ゲーム状態を更新するために入力を受信して処理し、画像フレームデータ３５０及びオーディオデータ３５２を出力するゲームエンジン３０２を定義する。ゲームエンジン３０２は、出力する画像フレームデータ３５０またはオーディオデータ３５２から、任意に特定のビジュアルまたはオーディオコンテンツ／アセットを除外するように構成することができる。除外されたビジュアルアセットの場合、ゲームエンジン３０２は、除外されたビジュアルアセットを識別するビジュアルアセット識別子を生成し得て、画像フレームデータ内のその配置（その時間的位置及び空間的位置を定義する）、サイズ、方向、色（複数可）、明るさ／コントラスト、その他のビジュアル特性などの、その提示を制御するパラメータをさらに定義し得る。除外されたオーディオアセットの場合、ゲームエンジン３０２は、除外されたオーディオアセットを識別するオーディオアセット識別子を生成し得て、ボリューム、バランス／フェーダパラメータ、配置、等化パラメータなどの、その提示を制御するパラメータをさらに定義し得る。ビジュアル／オーディオアセット識別子は、画像フレームデータ３５０またはオーディオデータ３５２の一部として添付または含まれ得て、クライアントデバイス１００で処理されたときに、どのビジュアルまたはオーディオアセットを画像／オーディオストリームと組み合わせるべきかを示すために役立つ。
【００６９】
ストリーミングサーバ２２０は、ゲーム機１１８によって生成された生の画像フレームデータ３５０及びオーディオデータ３５２を受信する。エンコーダ３１４は、画像フレームデータ３５０及びオーディオデータ３５２を圧縮されたビデオ／オーディオフォーマットで符号化する。暗号化モジュール３１６は、ネットワーク１０２を介した転送のために、圧縮されたビデオ／オーディオを暗号化する。ストリーミングサーバ２２０はまた、ビデオゲームのキャッシュデータ３０６を、ゲームキャッシュデータストレージ３０４からクライアントデバイス１００に転送するように構成されている。キャッシュデータ３０６は、後にビデオ／オーディオストリームと組み合わせるためにクライアントデバイスに格納することができるビデオゲーム用に定義されたキャッシュ可能なコンテンツ／アセットである、ビジュアルコンテンツ／アセット３０８及び／またはオーディオコンテンツ／アセット３１０を含むことができる。したがって、ストリーミングサーバ２２０は、圧縮されたビデオ／オーディオならびにクライアントのキャッシュ可能なビジュアル及び／またはオーディオコンテンツ／アセットを含むことができる混合データストリーム３５４を送信する。暗号化モジュール３１６は、ネットワーク１０２を介した転送用の混合データストリーム３５４に含めるためにビジュアル／オーディオアセットを暗号化することもできることが理解されるであろう。
【００７０】
混合データストリーム３５４にビジュアル／オーディオアセットを含める特定のタイミングは、現在の帯域幅使用量及びネットワーク状態に基づいて決定することができる。いくつかの実施様態では、ストリーミングサーバ２２０は、混合データストリーム３５４のストリーミングによる現在の帯域幅の使用量を監視し、圧縮されたビデオ／オーディオストリームに加えてビジュアル／オーディオアセットをストリーミングするために使用可能な帯域幅が存在する時期を判定するように構成される。ストリーミングサーバ２２０は、ゲームストリーミング中に継続的に初期ネットワーク状態を判定し、ネットワーク状態を監視し得て、ネットワーク状態を現在の帯域幅の使用量と関連して参照し、存在する使用可能な帯域幅をいつでも判定し得る。
【００７１】
キャッシュされるビジュアル／オーディオのコンテンツ／アセットは、クライアントデバイスによるアプリケーション及びレンダリングの前に、クライアントデバイスにストリーミングされることが理解されるであろう。帯域幅使用率が比較的低い期間中、未使用の帯域幅を利用して、ビジュアル／オーディオアセットをクライアントデバイスにストリーミングすることができる。クライアントデバイスに格納された特定のビジュアル／オーディオアセットを追跡することができ、したがって、ゲームエンジンは、（クライアントに既にキャッシュされている）ビジュアル／オーディオアセットが、ゲームエンジンによって生成された生の画像フレームデータまたはオーディオデータに含まれないように構成することができる。
【００７２】
混合データストリーム３５４は、クライアントデバイス１００で受信され、データストリームハンドラ３２８によって処理される。いくつかの実施様態では、データストリームハンドラ３２８は、混合データストリーム３５４に対して逆多重化機能を実行して、混合ビデオストリームから圧縮されたビデオ、圧縮されたオーディオ、及びビジュアル／オーディオアセットストリームを解析する。ビジュアル／オーディオアセットが混合データストリーム３５４で転送されるとき、キャッシュマネージャ３２６は、ビジュアル／オーディオアセットをクライアントキャッシュストレージ３１８に格納する。より具体的には、ビデオゲームのためのキャッシュデータ３２０の一部を定義するビジュアルコンテンツデータ３２２及び／またはオーディオコンテンツデータ３２４に格納する。
【００７３】
データストリームハンドラ３２８は、混合データストリーム３５４からビデオストリーム及びオーディオストリームも生成する（例えば、逆多重化及び／または解凍）。ビデオ及びオーディオストリームは、それぞれ、画像ストリームアセンブラ３２６またはオーディオストリームアセンブラ３３４に渡される。画像ストリームアセンブラ３２６は、画像フレームデータのどの部分がビデオストリーム内で除外されたかを判定し、これらの部分をクライアントキャッシュデータ３２０から取得したビジュアルコンテンツ／アセットで埋めるように構成される。いくつかの実施様態では、前述のビジュアルアセット識別子は、混合データストリームと一緒にまたは混合データストリームの一部として転送され、ビデオストリームに挿入／結合されるビジュアルアセット及び、それらの配置及び場合によっては他のビジュアルプロパティに関するパラメータを識別するために処理される。いくつかの実施様態では、マーカーがビデオストリーム自体に符号化され、マーカーは、追加されるビジュアルアセット及びビデオストリーム内のその場所を、空間的及び時間的の両方で識別する。
【００７４】
画像ストリームアセンブラ３２６は、完全に組み合わされたビデオストリームをビデオ信号発生器３３２に出力する。ビデオ信号発生器３３２は、完全に組み合わさられたビデオストリームを処理して、ディスプレイデバイス１５２でレンダリングするための正しいフォーマットで適切なビデオ信号を生成する。ディスプレイデバイス１５２は、図示されたシステムで別個のコンポーネントとして示されているが、一部の実施様態では、ディスプレイデバイス１５２は、クライアントデバイス１００の一部として組み込まれる。
【００７５】
画像ストリームアセンブラ３２６と同様に、オーディオストリームアセンブラ３３４は、オーディオデータのどの部分がオーディオストリーム内で除外されたかを判定し、これらの部分をクライアントキャッシュデータ３２０から取得したオーディオコンテンツ／アセットで埋めるように構成される。いくつかの実施様態では、前述のオーディオアセット識別子は、混合データストリームと一緒にまたは混合データストリームの一部として転送され、ビデオストリームに挿入／結合されるオーディオアセット及び、それらの配置及び場合によっては他のオーディオプロパティに関するパラメータを識別するために処理される。いくつかの実施様態では、マーカーがオーディオストリーム自体に符号化され、マーカーは、追加されるオーディオアセット及びオーディオストリーム内のその場所を識別する。
【００７６】
オーディオストリームアセンブラ３３４は、完全に組み合わされたオーディオストリームをオーディオ信号発生器３３６に出力する。オーディオ信号発生器３３６は、完全に組み合わさられたオーディオストリームを処理して、オーディオデバイス３４０でレンダリングするための正しいフォーマットで適切なオーディオ信号を生成する。オーディオデバイス３４０は、図示されたシステムで別個のコンポーネントとして示されているが、一部の実施様態では、オーディオデバイス３４０は、クライアントデバイス１００の一部として組み込まれる。さらに、いくつかの実装形態では、オーディオデバイス３４０は、ディスプレイデバイス１５２の一部として含まれる。
【００７７】
図４は、本開示の実施様態による、クラウドゲームサービス４００からのローカルキャッシュ最適化クラウドビデオゲームのストリーミングを提供するためのデータの流れを概念的に示す。実行中のビデオゲーム３０２が示され、これは、ビデオゲーム用の変数のその時々の状態を定義するゲーム状態４０２を定義する。ビデオゲーム３０２を実行すると、現在の状態に基づいて、及びクライアントデバイス１００から受信された入力データ４１８に基づいて、ゲーム状態４０２が継続的に更新されることが理解されるであろう。
【００７８】
ビデオゲーム３０２は、クラウドゲームサービス４００を介して処理されると、混合データストリーム３５４を生成する。混合データストリーム３５４は、画像データ４０４と、オーディオデータ４０６と、キャッシュデータ４０８とを含む。図示の実施様態では、画像データ４０４は、例示的な画像フレーム４１０を定義する。画像フレーム４１０の部分４１２は、完全には定義されていない。すなわち、部分４１２は、画像フレームをストリーミングするために必要な帯域幅の量を減らすために、画像フレーム４１０に完全に定義／含まれるのではなく、クライアントデバイス１００によって供給される。
【００７９】
キャッシュデータ４０８は、画像フレーム４１０などの画像データ４０４の画像フレームに挿入されるアセットを定義するデータを含む。キャッシュデータ４０８は、クライアントデバイス１００によって受信され、混合データストリーム３５４から解析され、画像キャッシュデータ３２２の一部としてクライアントキャッシュストレージ３１８に格納される。図示された実施様態では、以前にクライアントデバイス１００に転送されたビジュアルアセット４１４が、画像キャッシュデータ３２２から取得され、画像フレーム４１０に挿入され、以前に完全には定義されなかった部分４１２を定義する。得られる完成した画像フレームは、ディスプレイデバイス上に提示するための完全な画像ストリーム１３２の一部を形成する。
【００８０】
クライアントデバイス転送され、クライアントデバイスにキャッシュされるビジュアルアセットは、クラウドビデオゲームによって生成されたビデオストリームとは別に、別個に提供され得る画像、アイテム、オブジェクト、または他のビジュアルプロパティのいずれかの種類とすることができ、後にクライアントデバイスでビデオストリームの画像フレームに挿入されて、ディスプレイへのレンダリングのための完成した画像フレームを提供することが理解されるであろう。ビジュアルアセットは、ビデオストリームに提示されたときの外観が、現在のゲーム状態に基づいて変更されないという意味で静的な静的アイテムを含むことができる。これらは、例えば、インジケータ、エンブレム、トロフィー、バッジ、及び現在のゲームの状態に基づいて動的に外観が決定されない他の種類のビジュアルアイテムなどのアイテムを含み得る。例えば、能力、所有しているアイテム、他のユーザのキャラクタなど、キャラクタまたはゲームプレイの現在の状態をユーザに示す様々なビジュアルインジケータが存在し得る。別の例として、ユーザが車両を操縦する役割を担うビデオゲームは、車両の操縦席のビューを含み得る。操縦席内のビジュアルアイテムのいくつかは静的であり得て、ビデオゲームのインタラクティブゲームプレイが進行しているときでさえ、操縦席がユーザのゲームビューで表示されている間は不変であり得る。静的なビジュアルアセットは、変更せずにクライアントデバイスのビデオストリームに挿入することができる。
【００８１】
しかし、いくつかの実施様態では、ビジュアルアセットは、ゲーム状態条件に基づいて外観が少なくとも部分的に決定される動的ビジュアルアセットを含むことができることが理解されるであろう。例えば、ダイナミックビジュアルアセットは、現在のゲーム状態に基づいてクライアントデバイスによって、色、サイズ、向き、透明度、または他のビジュアルプロパティが変更され、ディスプレイにレンダリングする前にクライアントデバイスによってビデオストリームに挿入され得る。これを達成するために、ビデオストリームと共に変更データを転送して、ビデオストリームに挿入する前にビジュアルアセットで実行される特定の変更を示すことができる。
【００８２】
上記の説明と同様に、混合データストリーム３５４で配信されるオーディオデータ４０６は、オーディオキャッシュデータ３２４からオーディオアセットを追加され、オーディオデバイスを介して提示するための完成したオーディオストリーム１３０を定義することができる。オーディオアセットは、限定はしないが、サウンドエフェクト、バックグラウンドミュージック、録音済みオーディオクリップなどを含む、ビデオゲームによって利用される様々な種類のオーディオまたはサウンドのいずれかを含むことができる。クラウドゲームマシンによって生成されたオーディオと比較して、クライアントデバイスで生成／挿入される特定のオーディオは、異なる実施形態で変化し得ることが理解されるであろう。例えば、いくつかの実施様態では、バックグラウンドミュージック／オーディオが生成され、クライアントデバイスのオーディオストリームに追加される一方で、ユーザのリアルタイムインタラクティブゲームプレイによってトリガされるか、またはアクティブ化される他のサウンドエフェクトが、クラウドゲーム機によって生成される。１つの特定の実施様態では、すべてのサウンドは、クラウドゲーム機によって生成されたデータに基づいてクライアントデバイスで生成され、生成されるサウンド、そのようなサウンドのタイミング、及び、例えば、ボリューム、音質補正、指向性／音源などの任意の追加のオーディオ関連パラメータを識別する混合データストリーム内のクライアントデバイスによって受信される。
【００８３】
ビジュアル及びオーディオアセットを、予想される将来のゲーム状態を示し得る現在のゲーム状態に基づいて、クライアントデバイスに予測的または先制的に転送することができる。これは、例えば、ビデオゲームシーンの全景が変化し得るとき、シーンの変化時に起こり得る帯域幅使用率の急激な増加を緩和するのに役立つ。例えば、プレーヤー制御キャラクタが、シーンの変化が起こり得る物理的または時間的な場所の近くにいるか、またはその場所に向かって移動している場合、シーンの変化時に利用するクライアントデバイスにビジュアル／オーディオアセットを転送し得る。例えば、プレーヤーが自分のキャラクタをドアに向かわせて、ドアを開けるか通過するとシーンが変化する場合、ドアを開ける前に、ビジュアル／オーディオアセットは、シーンの変化中に利用されることを見越してクライアントに転送され得る。別の例では、ユーザがビデオゲームのレベルまたはシーンの完了に近づいているとき、ビジュアル／オーディオアセットは、次のレベル／シーンのストリーミング中に使用するために、レベル／シーンの完了前にクライアントデバイスに転送され得る。いくつかの実施様態では、シーン／レベルのユーザのゲームプレイの完了が所定の閾値を超えると、使用可能な帯域幅が許す限り、ビジュアル／オーディオアセットがクライアントデバイスに転送される。
【００８４】
クライアントデバイス１００の入力処理モジュール４１６は、コントローラデバイスまたは他の入力デバイスからの入力を処理し、入力データ４１８を実行中のビデオゲーム３０２に転送するように構成される。ビデオゲーム３０２は、そのゲーム状態４０２を更新するために入力データ４１８を適用する。このゲーム状態に基づいて、予測される将来のゲーム状態が決定され、予測される将来のゲーム状態に基づいてクライアントデバイスへのビジュアル／オーディオアセットの転送を決定することができることが理解されるであろう。
【００８５】
図５は、本発明の一実施形態による、ローカルアプリケーションのクイックスタート機能を提供するための方法を示す。方法動作５００では、ビデオゲームを開始する要求が、クラウドゲームサービスと通信しているクライアントデバイスで受信される。方法動作５０２では、これが、ゲームの最初の購入など、ゲームを要求する最初のインスタンスであるか、または更新が必要であるかどうかが判定される。その場合、方法動作５０４で、ビデオゲームの初期コンテンツがダウンロードされ、インストールされ、及び／または更新される。更新または追加のダウンロードが必要ない場合、またはそのようなダウンロード及びインストール／更新に続いて、方法動作５０６で、ビデオゲームの初期コンテンツがクライアントデバイスのローカルストレージからレンダリングされる。方法動作５０８では、レンダリングされた初期コンテンツに応答するユーザ入力及び／または選択がクライアントデバイスで処理され、方法動作５１０では、初期コンテンツのレンダリング状態が更新され、方法動作５０６に戻る。
【００８６】
一方、ビデオゲームにアクセスするための要求は、ユーザのゲーム所有権及び／または要求されたビデオゲームの購入を認証するクラウドゲームサービスに伝達される。方法動作５１８では、クラウドゲーム機は、要求されたビデオゲームを実行するように初期化され、ユーザのクラウドゲームセッションに割り当てられる。方法動作５２０では、クラウドゲーム機はビデオゲームを実行する。方法動作５２２では、ユーザ入力／選択は、実行中のビデオゲームによって処理されて、実行中のビデオゲームの状態を更新する。入力／選択は、初期コンテンツとのユーザインタラクションから定義することができる。
【００８７】
方法動作５１２では、クライアントデバイスは、ビデオゲームのストリーミングを開始することを要求及び／または待機する。方法動作５２４では、クラウドゲームサービスは、ビデオゲームのストリーミングビデオ／オーディオを生成して転送し、方法動作５１４では、ストリーミングビデオ／オーディオは、クライアントデバイスによって受信され、ユーザインタラクティビティのためにレンダリングされる。
【００８８】
図６は、本発明の一実施形態による、ローカルアプリケーションのクイックスタート機能を提供するための方法を示す。方法動作６００では、ユーザは、方法動作６１２でクラウドゲームサーバによるユーザの認証を行うクライアントデバイスを介してクラウドゲームサービスにログインする。方法動作６０２では、ユーザはクライアントデバイスでビデオゲームを開始し、それに応答して、方法動作６０４では、ビデオゲームの初期コンテンツがクライアントデバイスのローカルストレージからロードされてディスプレイにレンダリングされる。
【００８９】
一方、方法動作６１４では、ビデオゲームを開始するためのユーザ要求に応答して、ゲーム機がユーザのクライアントデバイスに提供／割り当てられる。方法動作６１６では、ゲーム機に要求されたビデオゲームタイトルがロードされる。方法動作６１８では、ユーザ要求を予期して、またはユーザ要求に応答して、ユーザのアカウントの保存されたゲームデータがアクセスされ、ロードされる。
【００９０】
方法動作６０６では、クライアントデバイスのユーザから要求を受信し、インタラクティブゲームプレイを開始する。方法動作６２０では、インタラクティブゲームプレイがクラウドゲーム機によって実行される。方法動作６２２では、クラウドゲームサービスは、クライアントデバイスに転送されるビデオストリームを生成する。方法動作６０８では、ビデオストリームがクライアントデバイスによってレンダリングされる。方法動作６１０では、インタラクティブ入力がクライアントデバイスによって受信され、クラウドゲーム機で実行中のビデオゲームに転送される。実行中のビデオゲームは、インタラクティブ入力を処理してゲーム状態を更新し、更新されたゲーム状態に基づいて、参照番号６２２に示すようにビデオストリームが生成される。
【００９１】
図７は、本開示の実施様態による、既存の従来のゲームストリーミングセットアップの帯域幅使用率を、クライアントキャッシュを採用するものと比較する、データ帯域幅対時間を示すグラフである。曲線７００は、ゲームストリーミングの使用可能な最大データ帯域幅を示す。曲線７０２は、既存の従来のゲームストリーミングセットアップの帯域幅使用率を示す。曲線７０４は、本明細書の他の箇所に記載されているように、クライアントのキャッシュ可能なコンテンツを組み込んだゲームストリーミングセットアップの帯域幅使用率を示す。時間Ｔ０では、曲線７０２に示される帯域幅使用率レベル７０６は、使用可能な帯域幅内にあり、したがって、ストリーミング品質の低下は、ユーザによって経験されない。しかし、時間Ｔ２では、帯域幅使用率を劇的に増加させるシーン遷移または他のイベントが発生する。帯域幅使用率は、使用可能な最大帯域幅７００を超えるピークレベル７０８に上昇し、それによってビデオ／オーディオストリーミング品質が低下する可能性がある。時間Ｔ３では、帯域幅使用率は、使用可能な最大帯域幅内にあるレベル７１０に戻る。
【００９２】
曲線７０４は、本開示の実施様態に従って、クライアントキャッシングを採用するクラウドゲームセットアップのための帯域幅使用率を示す。時間Ｔ０から時間Ｔ１では、クライアントでキャッシュ可能なコンテンツを使用して、ビデオ／オーディオストリームの一部を提供するために、帯域幅使用率はレベル７１２であり、これは従来のセットアップの対応するレベル７０６より幾分低くなり得る。時間Ｔ１では、ユーザのゲームプレイが、より大きな帯域幅使用率を必要とするシーン遷移または他のイベントに近づいていると判定される。したがって、シーン遷移に使用されるキャッシュ可能なコンテンツは、シーン遷移の発生に先立ってクライアントデバイスにストリーミングされ、その結果、帯域幅使用率がレベル７１４に増加する。レベル７１４は、従来のシステムの帯域幅使用率のレベル７１６を上回っているが、依然として利用可能な帯域幅７００内にあることは理解されるであろう。
【００９３】
時間Ｔ２では、シーン遷移が起こり、帯域幅使用率はレベル７１８に上昇し得るが、従来のシステムとは異なり、クライアントキャッシングを採用するシステムのレベル７１８は、依然として使用可能な帯域幅７００内にあり、したがって、ストリーミング品質の低下は生じない。時間Ｔ３では、シーンの遷移が完了し、帯域幅使用率は、レベル７２０に低下し、ビデオ／オーディオストリームの一部を提供するために、クライアントキャッシュされたコンテンツを継続的に適用することにより、レベル７１０よりも低くなり得る。
【００９４】
いくつかの実施形態では、クライアントは、汎用コンピュータ、専用コンピュータ、ポータブルゲームコンソール、パーソナルコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、モバイルコンピューティングデバイス、ポータブルゲームデバイス、携帯電話、ストリーミングメディアインターフェース／デバイス、スマートテレビジョンまたはネットワークディスプレイ、または本明細書で定義されるクライアントの機能性を満たすように構成することができる任意の他のコンピューティングデバイスとすることができる。一実施形態では、クラウドゲームサーバは、ユーザによって利用されているクライアントデバイスの種類を検出し、ユーザのクライアントデバイスに適したクラウドゲーム体験を提供するように構成される。例えば、画像設定、オーディオ設定、及びその他の種類の設定を、ユーザのクライアントデバイス用に最適化し得る。
【００９５】
図８は、情報サービスプロバイダアーキテクチャの一実施形態を示す。情報サービスプロバイダ（ＩＳＰ）１０７０は、ネットワーク１０８６を介して地理的に分散され接続されたユーザ１０８２に多数の情報サービスを配信する。ＩＳＰは、株価の更新などのただ１種類のサービス、またはブロードキャストメディア、ニュース、スポーツ、ゲームなどの様々なサービスを提供することができる。さらに、各ＩＳＰによって提供されるサービスは動的であり、つまり、任意の時点でサービスを追加または取り除くことができる。したがって、特定の個人に特定の種類のサービスを提供するＩＳＰは、時間の経過と共に変化する可能性がある。例えば、ユーザは故郷にいる間に、ユーザの近くのＩＳＰによってサービスを受け得て、ユーザは異なる都市に移動しているときに、異なるＩＳＰによってサービスを受け得る。故郷のＩＳＰは、必要な情報及びデータを新しいＩＳＰに転送し、その結果、ユーザ情報が新しい都市までユーザに「追随」し、データをユーザにより近づけて、よりアクセスしやすくする。別の実施形態では、ユーザの情報を管理するマスタＩＳＰと、マスタＩＳＰからの制御下のユーザと直接的にインターフェースをとるサーバＩＳＰとの間に、マスタとサーバの関係が確立され得る。別の実施形態では、ユーザにサービスするためにより良い位置にあるＩＳＰを、これらのサービスを配信するＩＰＳとするため、クライアントが世界中を移動するにつれて、あるＩＳＰから別のＩＳＰにデータが転送される。
【００９６】
ＩＳＰ１０７０は、ネットワークを介して顧客にコンピュータベースのサービスを提供する、アプリケーションサービスプロバイダ（ＡＳＰ）１０７２を含む。ＡＳＰモデルを使用して提供されるソフトウェアは、オンデマンドソフトウェアまたはソフトウエアアズアサービス（ＳａａＳ）と呼ばれることもある。特定のアプリケーションプログラム（顧客関係管理など）へのアクセスを提供する簡単な形式は、ＨＴＴＰなどの標準プロトコルを使用することである。アプリケーションソフトウェアは、ベンダのシステムに常駐し、ＨＴＭＬを使用するＷｅｂブラウザ、ベンダが提供する専用クライアントソフトウェア、またはシンクライアントなどの他のリモートインターフェースを介してユーザからアクセスされる。
【００９７】
広い地理的地域で配信されるサービスは、多くの場合、クラウドコンピューティングを使用する。クラウドコンピューティングは、動的スケーラブルで、仮想化されたリソースがインターネット上のサービスとしてしばしば提供されるコンピューティングのスタイルである。ユーザは、ユーザをサポートする「クラウド」のテクノロジインフラストラクチャの専門家である必要はない。クラウドコンピューティングは、インフラストラクチャアズアサービス（ＩａａＳ）、プラットフォームアズアサービス（ＰａａＳ）、及びソフトウエアアズアサービス（ＳａａＳ）などの異なるサービスに分けることができる。クラウドコンピューティングサービスは、多くの場合、Ｗｅｂブラウザからアクセスされる共通のビジネスアプリケーションをオンラインで提供し、ソフトウェア及びデータはサーバに保存される。クラウドという用語は、インターネットがコンピュータネットワーク図にどのように描かれているかに基づいて（例えば、サーバ、ストレージ、ロジックを使用する）インターネットのメタファとして使用され、メタファが隠す複雑なインフラストラクチャの抽象的概念である。
【００９８】
さらに、ＩＳＰ１０７０は、ゲームクライアントによってシングル及びマルチプレーヤービデオゲームをプレイするために使用されるゲーム処理サーバ（ＧＰＳ）１０７４を含む。インターネット上でプレイされるほとんどのビデオゲームは、ゲームサーバへの接続を介して動作する。通常、ゲームはプレーヤーからのデータを収集し、それを他のプレーヤーに配布する専用サーバアプリケーションを使用する。これは、ピアツーピア構成よりも効率的かつ効果的であるが、サーバアプリケーションをホストするには別のサーバが必要となる。別の実施形態では、ＧＰＳは、プレーヤーとそれぞれのゲームプレイデバイスとの間の通信を確立し、中央のＧＰＳに頼ることなく情報を交換する。
【００９９】
専用ＧＰＳは、クライアントとは独立して実行されるサーバである。このようなサーバは、通常、データセンターに配置された専用ハードウェアで実行され、より多くの帯域幅と専用の処理能力を提供する。専用サーバは、ほとんどのＰＣベースのマルチプレーヤーゲームのためのゲームサーバをホストするのに適した方法である。多人数参加型オンラインゲームは、通常ゲームタイトルを所有するソフトウェア会社がホストする専用サーバで実行され、コンテンツを制御及び更新することができる。
【０１００】
放送処理サーバ（ＢＰＳ）１０７６は、視聴者にオーディオまたはビデオ信号を配信する。非常に狭い範囲の視聴者への放送はナローキャスティングと呼ばれることもある。放送配信の最終工程は、信号が聴取者または視聴者にどのように届くかであり、ラジオ局またはテレビ局と同様にアンテナ及び受信機に届いたり、局を介してケーブルテレビまたはケーブルラジオ（または「無線ケーブル」）を経由してまたはネットワークから直接届いたりし得る。インターネットはまた、特に、信号及び帯域幅を共有できるマルチキャストを使用して、ラジオまたはテレビのいずれかを受信者に届け得る。歴史的に、放送は、全国放送または地域放送などの地理的領域によって区切られてきた。しかし、高速インターネットの普及に伴い、コンテンツは世界のほぼすべての国に到達可能なため、放送は地域によって定義されることはない。
【０１０１】
ストレージサービスプロバイダ（ＳＳＰ）１０７８は、コンピュータストレージ空間及び関連する管理サービスを提供する。ＳＳＰは定期的なバックアップとアーカイブも提供する。ストレージをサービスとして提供することにより、ユーザは必要に応じてより多くのストレージを注文することが可能である。その他の大きな利点は、ＳＳＰにバックアップサービスが含まれており、コンピュータのハードドライブに障害が発生してもユーザがすべてのデータを失うことがないことである。さらに、複数のＳＳＰは、ユーザデータの全部または一部のコピーを有することができ、ユーザがどこにいるかに関係なく、またはデータにアクセスするために使用されているデバイスとは関係なく、ユーザは効率的な方法でデータにアクセスすることができるようになる。例えば、ユーザは、移動中に自宅のコンピュータ及び携帯電話内の個人ファイルにアクセスすることが可能である。
【０１０２】
通信プロバイダ１０８０は、ユーザに接続性を提供する。通信プロバイダの１つの種類は、インターネットへのアクセスを提供するインターネットサービスプロバイダ（ＩＳＰ）である。ＩＳＰはダイヤルアップ、ＤＳＬ、ケーブルモデム、光ファイバ、無線、または専用の高速インターコネクトなどのインターネットプロトコルデータグラムの配信に適したデータ伝送技術を使用して顧客を接続する。通信プロバイダは、電子メール、インスタントメッセージング、及びＳＭＳテキストメッセージなどのメッセージングサービスも提供することができる。通信プロバイダの別の種類は、インターネットへの直接のバックボーンアクセスを提供することによって、帯域幅またはネットワークアクセスを販売するネットワークサービスプロバイダ（ＮＳＰ）である。ネットワークサービスプロバイダは、電気通信会社、データ通信業者、無線通信プロバイダ、インターネットサービスプロバイダ、高速インターネットアクセスを提供するケーブルテレビ事業者などで構成され得る。
【０１０３】
データ交換１０８８は、ＩＳＰ１０７０内のいくつかのモジュールを相互接続し、ネットワーク１０８６を介してこれらのモジュールをユーザ１０８２に接続する。データ交換１０８８は、ＩＳＰ１０７０のすべてのモジュールが近接している小さな領域をカバーすることができ、または異なるモジュールが地理的に分散している場合に大きな地理的領域をカバーすることができる。例えば、データ交換１０８８は、データセンターのキャビネット内に高速ギガビットイーサネット（またはそれより高速）、または大陸間仮想エリアネットワーク（ＶＬＡＮ）を含むことができる。
【０１０４】
ユーザ１０８２は、少なくともＣＰＵ、メモリ、ディスプレイ及びＩ／Ｏを含む、クライアントデバイス１０８４を使用してリモートサービスにアクセスする。クライアントデバイスは、ＰＣ、携帯電話、ネットブック、タブレット、ゲームシステム、ＰＤＡなどとすることができる。一実施形態では、ＩＳＰ１０７０は、クライアントによって使用されるデバイスの種類を認識し、採用する通信方法を調整する。他の場合には、クライアントデバイスは、ｈｔｍｌなどの標準的な通信方法を使用して、ＩＳＰ１０７０にアクセスする。
【０１０５】
本発明の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースまたはプログラマブル民生用電子機器、ミニコンピュータ、メインフレームコンピュータなどを含む様々なコンピュータシステム構成で実施し得る。本発明は、有線ベースまたは無線ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される分散コンピューティング環境でも実施することができる。
【０１０６】
上記の実施形態を念頭に置いて、本発明は、コンピュータシステムに格納されたデータを含む様々なコンピュータ実装の動作を使用することができることを理解されたい。これらの動作は、物理量の物理的操作を必要とする動作である。本発明の一部を形成する本明細書に記載されているいずれの動作も有用な機械動作である。本発明はまた、これらの動作を実行するためのデバイスまたは装置に関する。装置は、必要とされる目的のために特別に構成することができ、または装置は、コンピュータに格納されたコンピュータプログラムによって選択的に起動または構成された汎用コンピュータとすることができる。特に、本明細書の教示に従って書かれたコンピュータプログラムと共に様々な汎用機械を使用することができ、または必要とされる動作を実行するより特殊化した装置を構築する方がより便利であり得る。
【０１０７】
本発明は、コンピュータ可読媒体上のコンピュータ可読コードとして具体化することもできる。あるいは、コンピュータ可読コードは、上述のデータ交換相互接続を使用してサーバからダウンロードされ得る。コンピュータ可読媒体は、データを格納することができる任意のデータストレージデバイスであり、このデータは、その後コンピュータシステムによって読み取ることができる。コンピュータ可読媒体の例には、ハードドライブ、ネットワーク接続ストレージ（ＮＡＳ）、リードオンリメモリ、ランダムアクセスメモリ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープならびに他の光学及び非光学データストレージデバイスが含まれる。コンピュータ可読媒体は、コンピュータ可読コードが分散方式で格納され、実行されるように、ネットワーク結合コンピュータシステム上に分散されたコンピュータ可読有形媒体を含むことができる。
【０１０８】
方法動作は特定の順序で説明されているが、他のハウスキーピング操作が動作の間に実行され得る、または、動作が、わずかに異なる時間に生じるように調整され得る、または、オーバレイ動作の処理が所望の方法で実行される限り、処理に関連する様々な間隔で処理動作の発生を可能にするシステムに分散され得ること理解されたい。
【０１０９】
前述の発明は、理解を明確にするために幾分詳細に説明してきたが、添付の特許請求の範囲内である種の変更及び修正を実施できることは明らかであろう。したがって、本実施形態は例示的であって限定的ではないと見なされるべきであり、本発明は本明細書に記載された詳細に限定されるものではなく、記載された実施形態の範囲及び均等物の範囲内で修正され得る。
【０１１０】
図９は、本発明の一実施形態による、アバター制御システムを実装するためのコントローラと互換性のあり得る、Ｓｏｎｙ（登録商標）Ｐｌａｙｓｔａｔｉｏｎ３（登録商標）エンターテイメントデバイスなどのゲームコンソールの全体的なシステムアーキテクチャを概略的に示す。システムユニット１４００は、システムユニット１４００に接続可能な様々な周辺デバイスを備える。システムユニット１４００は、図２のコンピューティングサーバ４０２−ａと同様である。システムユニット１４００は、Ｃｅｌｌプロセッサ１４２８と、Ｒａｍｂｕｓ（登録商標）ダイナミックランダムアクセスメモリ（ＸＤＲＡＭ）ユニット１４２６と、専用ビデオランダムアクセスメモリ（ＶＲＡＭ）ユニット１４３２を有するリアリティシンセサイザグラフィックスユニット１４３０と、Ｉ／Ｏブリッジ１４３４とを含む。システムユニット１４００はまた、Ｉ／Ｏブリッジ１４３４を介してアクセス可能な、ディスク１４４０ａ及び取り外し可能なスロットインハードディスクドライブ（ＨＤＤ）１４３６から読み取るためのＢｌｕ  Ｒａｙ（登録商標）Ｄｉｓｋ  ＢＤ−ＲＯＭ（登録商標）光学ディスクリーダ１４４０を含む。オプションとして、システムユニット１４００はまた、同様にＩ／Ｏブリッジ１４３４を介してアクセス可能な、コンパクトフラッシュ（登録商標）メモリカード、Ｍｅｍｏｒｙ  Ｓｔｉｃｋ（登録商標）メモリカードなどを読み取るためのメモリカードリーダ１４３８を含む。
【０１１１】
Ｉ／Ｏブリッジ１４３４はまた、６つのユニバーサルシリアルバス（ＵＳＢ）２．０ポート１４２４、ギガビットイーサネット（登録商標）ポート１４２２、ＩＥＥＥ８０２．１１ｂ／ｇ無線ネットワーク（Ｗｉ−Ｆｉ）ポート１４２０、及び最大７つのＢｌｕｅｔｏｏｔｈ（登録商標）接続をサポートすることができるＢｌｕｅｔｏｏｔｈ無線リンクポート１４１８に接続する。
【０１１２】
動作に際して、Ｉ／Ｏブリッジ１４３４は、１つまたは複数のゲームコントローラ１４０２からのデータを含む、すべての無線データ、ＵＳＢデータ及びイーサネットデータを処理する。例えば、ユーザがゲームをプレイしているとき、Ｉ／Ｏブリッジ１４３４は、Ｂｌｕｅｔｏｏｔｈリンクを介してゲームコントローラ１４０２からデータを受信し、そのデータをＣｅｌｌプロセッサ１４２８に送り、Ｃｅｌｌプロセッサ１４２８はそれに応じてゲームの現在の状態を更新する。
【０１１３】
無線ポート、ＵＳＢポート及びイーサネットポートはまた、ゲームコントローラ１４０２に加えて、リモート制御１４０４、キーボード１４０６、マウス１４０８、Ｓｏｎｙ  Ｐｌａｙｓｔａｔｉｏｎ  Ｐｏｒｔａｂｌｅ（登録商標）エンターテイメントデバイスなどのポータブルエンターテイメントデバイス１４１０、ＥｙｅＴｏｙ（登録商標）ビデオカメラ１４１２などのビデオカメラ、マイクロフォンヘッドセット１４１４などの他の周辺デバイスに対する接続性も提供する。したがって、そのような周辺デバイスは、原理上、システムユニット１４００に無線で接続し得る。例えば、ポータブルエンターテイメントデバイス１４１０は、Ｗｉ−Ｆｉアドホック接続を介して通信し、一方、マイクロフォンヘッドセット１４１４は、Ｂｌｕｅｔｏｏｔｈリンクを介して通信し得る。
【０１１４】
これらのインターフェースの提供は、Ｐｌａｙｓｔａｔｉｏｎ３デバイスが、デジタルビデオレコーダー（ＤＶＲ）、セットトップボックス、デジタルカメラ、ポータブルメディアプレーヤー、ＶｏＩＰ電話、携帯電話、プリンター及びスキャナなどの他の周辺デバイスとも潜在的に互換性があることを意味する。
【０１１５】
さらに、レガシーメモリカードリーダ１４１６は、ＵＳＢポート１４２４を介してシステムユニットに接続され、Ｐｌａｙｓｔａｔｉｏｎ（登録商標）またはＰｌａｙｓｔａｔｉｏｎ２（登録商標）デバイスによって使用される種類のメモリカード１４４８の読み取りを可能にし得る。
【０１１６】
本実施形態では、ゲームコントローラ１４０２は、Ｂｌｕｅｔｏｏｔｈリンクを介してシステムユニット１４００と無線で通信するように動作可能である。しかし、代わりに、ゲームコントローラ１４０２をＵＳＢポートに接続することにより、ゲームコントローラ１４０２のバッテリを充電するための電力も提供し得る。１つまたは複数のアナログジョイスティック及び従来の制御ボタンに加えて、ゲームコントローラは、各軸の平行移動及び回転に対応する６自由度の動きに敏感である。その結果、ゲームコントローラのユーザによる身振り及び動作は、従来のボタンまたはジョイスティックコマンドに加えて、またはその代わりに、ゲームへの入力として変換され得る。オプションで、Ｐｌａｙｓｔａｔｉｏｎ（商標）Ｐｏｒｔａｂｌｅデバイスなどの他の無線で使用可能な周辺デバイスをコントローラとして使用し得る。Ｐｌａｙｓｔａｔｉｏｎ（商標）Ｐｏｒｔａｂｌｅデバイスの場合、追加のゲームまたは制御情報（例えば、制御命令またはライブの数）は、デバイスの画面上に提供され得る。ダンスマット（図示せず）、ライトガン（図示せず）、ハンドル及びペダル（図示せず）、または即答クイズゲーム（これも図示せず）用の単一または複数の大きなボタンなどの特注のコントローラなどの他の代替的または補足的な制御デバイスを使用し得る。
【０１１７】
リモコン１４０４はまた、Ｂｌｕｅｔｏｏｔｈリンクを介してシステムユニット１４００と無線通信するように動作可能である。リモコン１４０４は、Ｂｌｕ  Ｒａｙ（商標）Ｄｉｓｋ  ＢＤ−ＲＯＭリーダ１４４０の動作及びディスクコンテンツのナビゲーションに適した制御を含む。
【０１１８】
Ｂｌｕ  Ｒａｙ（商標）Ｄｉｓｋ  ＢＤ−ＲＯＭリーダ１４４０は、従来の記録済み及び記録可能なＣＤ、ならびにいわゆるスーパーオーディオＣＤに加えて、Ｐｌａｙｓｔａｔｉｏｎ及びＰｌａｙｓｔａｔｉｏｎ２デバイスと互換性のあるＣＤ−ＲＯＭを読み取るように動作可能である。また、リーダ１４４０は、従来の記録済み及び記録可能なＤＶＤに加えて、Ｐｌａｙｓｔａｔｉｏｎ２及びＰｌａｙｓｔａｔｉｏｎ３デバイスと互換性のあるＤＶＤ−ＲＯＭを読み取るように動作可能である。リーダ１４４０は、Ｐｌａｙｓｔａｔｉｏｎ３デバイスと互換性のあるＢＤ−ＲＯＭ、ならびに従来の記録済み及び記録可能なＢｌｕ−Ｒａｙ  Ｄｉｓｋを読み取るようにさらに動作可能である。
【０１１９】
システムユニット１４００は、リアリティシンセサイザグラフィックスユニット１４３０を介してＰｌａｙｓｔａｔｉｏｎ３デバイスによって生成または復号化されたオーディオ及びビデオを、オーディオ及びビデオコネクタを介して、ディスプレイ１４４４及び１つまたは複数のラウドスピーカ１４４６を有するモニタまたはテレビジョンセットなどのディスプレイ及びサウンド出力デバイス１４４２に供給するように動作可能である。オーディオコネクタ１４５０は、従来のアナログ及びデジタル出力を含み得て、ビデオコネクタ１４５２は、コンポーネントビデオ、Ｓビデオ、コンポジットビデオ、及び１つまたは複数の高精度マルチメディアインターフェース（ＨＤＭＩ（登録商標））出力を様々に含み得る。その結果、ビデオ出力は、ＰＡＬもしくはＮＴＳＣ、または７２０ｐ、１０８０ｉもしくは１０８０ｐの高精細度のフォーマットであり得る。
【０１２０】
オーディオ処理（生成、復号など）は、Ｃｅｌｌプロセッサ１４２８によって実行される。Ｐｌａｙｓｔａｔｉｏｎ３デバイスのオペレーティングシステムは、Ｄｏｌｂｙ（登録商標）５．１サラウンドサウンド、Ｄｏｌｂｙ（登録商標）シアターサラウンド（ＤＴＳ）、及びＢｌｕ−Ｒａｙ（登録商標）ディスクからの７．１サラウンドサウンドの復号化をサポートする。
【０１２１】
本実施形態では、ビデオカメラ１４１２は、圧縮されたビデオデータを、システムユニット１４００で復号化するために、画像ベースのＭＰＥＧ（ｍｏｔｉｏｎ  ｐｉｃｔｕｒｅ  ｅｘｐｅｒｔ  ｇｒｏｕｐ）規格などの適切なフォーマットで転送され得るように、単一の電荷結合素子（ＣＣＤ）、ＬＥＤインジケータ、及びハードウェアベースのリアルタイムデータ圧縮符号化デバイスを含む。カメラＬＥＤインジケータは、例えば、不利な照明条件を示すために、システムユニット１４００からの適切な制御データに応答して点灯するように配置される。ビデオカメラ１４１２の実施形態は、ＵＳＢ、ＢｌｕｅｔｏｏｔｈまたはＷｉ−Ｆｉ通信ポートを介してシステムユニット１４００に様々に接続し得る。ビデオカメラの実施形態は、１つまたは複数の関連するマイクロフォンを含み、オーディオデータを転送することも可能であり得る。ビデオカメラの実施形態では、ＣＣＤは、高精度ビデオキャプチャに適した解像度を有し得る。使用時には、ビデオカメラによってキャプチャされた画像は、例えば、ゲーム内に取り込まれ得て、ゲーム制御入力として解釈され得る。
【０１２２】
一般に、システムユニット１４００の通信ポートの１つを介してビデオカメラまたはリモコンなどの周辺デバイスとの間でデータ通信が成功するためには、デバイスドライバなどの適切なソフトウェアが提供されるべきである。デバイスドライバ技術は周知であり、本明細書で詳細に説明しないが、説明されている本実施形態では、デバイスドライバまたは同様のソフトウェアインターフェースが必要とされ得ることを当業者は気付くであろうと言うにとどめる。
【０１２３】
次に図１０を参照すると、Ｃｅｌｌプロセッサ１４２８は、４つの基本コンポーネント、すなわち、メモリコントローラ１５６０及びデュアルバスインターフェースコントローラ１５７０Ａ、Ｂを含む外部入力及び出力構造と、パワープロセシングエレメント１５５０と呼ばれるメインプロセッサと、シナジスティックプロセシングエレメント（ＳＰＥ）１５１０Ａ〜Ｈと呼ばれる８個のコプロセッサと、エレメントインターコネクトバス１５８０と呼ばれる上記のコンポーネントを接続する循環データバスとを含むアーキテクチャを有する。Ｃｅｌｌプロセッサの合計浮動小数点性能は、Ｐｌａｙｓｔａｔｉｏｎ２デバイスのＥｍｏｔｉｏｎ  Ｅｎｇｉｎｅの６．２ＧＦＬＯＰＳと比較して、２１８ＧＦＬＯＰＳである。
【０１２４】
パワープロセッシングエレメント（ＰＰＥ）１５５０は、３．２ＧＨｚの内部クロックで動作する双方向同時マルチスレッドＰｏｗｅｒ１４７０準拠ＰｏｗｅｒＰＣコア（ＰＰＵ）１５５５に基づいている。これは、５１２ｋＢレベル２（Ｌ２）キャッシュ及び３２ｋＢレベル１（Ｌ１）キャッシュを含む。ＰＰＥ１５５０はクロックサイクルごとに８つの単一位置演算が可能で、３．２ＧＨｚでは２５．６ＧＦＬＯＰＳになる。ＰＰＥ１５５０の主な役割は、計算作業負荷の大部分を処理するシナジスティックプロセッシングエレメント１５１０Ａ〜Ｈのコントローラとして機能することである。動作中、ＰＰＥ１５５０は、ジョブキューを維持し、シナジスティックプロセッシングエレメント１５１０Ａ〜Ｈのジョブをスケジュールし、その進行状況を監視する。その結果、各シナジスティックプロセッシングエレメント１５１０Ａ〜Ｈは、ジョブをフェッチし、実行し、ＰＰＥ１５５０と同期させる役割を果たすカーネルを実行する。
【０１２５】
各シナジスティックプロセッシングエレメント（ＳＰＥ）１５１０Ａ〜Ｈは、それぞれのシナジスティックプロセッシングユニット（ＳＰＵ）１５２０Ａ〜Ｈと、それぞれのダイナミックメモリアクセスコントローラ（ＤＭＡＣ）１５４２Ａ〜Ｈ、それぞれのメモリ管理ユニット（ＭＭＵ）１５４４Ａ〜Ｈ及びバスインターフェース（図示せず）を含むそれぞれのメモリフローコントローラ（ＭＦＣ）１５４０Ａ〜Ｈとを含む。各ＳＰＵ１５２０Ａ〜Ｈは、３．２ＧＨｚでクロックされ、原理上４ＧＢまで拡張可能な２５６ｋＢローカルＲＡＭ１５３０Ａ〜Ｈを含むＲＩＳＣプロセッサである。各ＳＰＥは理論上２５．６ＧＦＬＯＰＳの単精度性能を提供する。ＳＰＵは、１クロックサイクルで、４つの単精度浮動小数点部、４つの３２ビット数、８つの１６ビット整数、または１６の８ビット整数を動作させることができる。同じクロックサイクルで、メモリ動作を実行することもできる。ＳＰＵ１５２０Ａ〜Ｈは、システムメモリＸＤＲＡＭ１４２６に直接アクセスにすることはなく、ＳＰＵ１５２０Ａ〜Ｈによって形成された６４ビットアドレスが、ＭＦＣ１５４０Ａ〜Ｈに渡され、ＭＦＣ１５４０Ａ〜Ｈは、ＤＭＡコントローラ１５４２Ａ〜Ｈに、エレメントインターコネクトバス１５８０及びメモリコントローラ１５６０を介してメモリにアクセスするように命令する。
【０１２６】
エレメントインターコネクトバス（ＥＩＢ）１５８０は、上述のプロセッサエレメント、すなわちＰＰＥ１５５０、メモリコントローラ１５６０、デュアルバスインターフェース１５７０Ａ、Ｂ及び８個のＳＰＥ１５１０Ａ〜Ｈの合計１２個の関係物を接続するＣｅｌｌプロセッサ１４２８の内部の論理的に循環する通信バスである。関係物は、１クロックサイクルあたり８バイトの速度でバスに同時に読み書きすることができる。前述のように、各ＳＰＥ１５１０Ａ〜Ｈは、より長い読み出しシーケンスまたは書き込みシーケンスをスケジューリングするためのＤＭＡＣ１５４２Ａ〜Ｈを含む。ＥＩＢは、２つずつの時計回り方向及び反時計回り方向の４つのチャネルを備える。その結果、１２個の関係物に対して、任意の２個の関係物の間の最長の段階的なデータフローは、適切な方向に６段階となる。したがって、１２スロットの理論上のピーク瞬間ＥＩＢ帯域幅は、関係物間の調停を通じて完全に利用された場合、１クロックあたり９６Ｂである。これは、３．２ＧＨｚのクロックレートで３０７．２ＧＢ／ｓ（ギガバイト／秒）という理論上のピーク帯域幅に相当する。
【０１２７】
メモリコントローラ１５６０は、Ｒａｍｂｕｓ  Ｉｎｃｏｒｐｏｒａｔｅｄによって開発されたＸＤＲＡＭインターフェース１５６２を含む。メモリコントローラは、理論上のピーク帯域幅が２５．６ＧＢ／ｓのＲａｍｂｕｓ  ＸＤＲＡＭ  １４２６とインターフェースする。
【０１２８】
デュアルバスインターフェース１５７０Ａ、Ｂは、Ｒａｍｂｕｓ  ＦｌｅｘＩＯ（登録商標）システムインターフェース１５７２Ａ、Ｂを含む。インターフェースは、それぞれ８ビット幅の１２チャネルで構成され、５つのパスはインバウンドで、７つのパスはアウトバウンドである。これにより、コントローラ１７０Ａを介するＣｅｌｌプロセッサ及びＩ／Ｏブリッジ７００と、コントローラ１７０Ｂを介するリアリティシミュレータグラフィックスユニット２００との間の６２．４ＧＢ／ｓ（３６．４ＧＢ／ｓアウトバウンド、２６ＧＢ／ｓインバウンド）の理論的ピーク帯域幅が提供される。
【０１２９】
Ｃｅｌｌプロセッサ１４２８によってリアリティシミュレータグラフィックスユニット１４３０に送られるデータは、通常、頂点を描画し、ポリゴンにテクスチャを適用し、照明条件を指定する、などのコマンドのシーケンスである、ディスプレイリストを含む。
【０１３０】
実施形態は、現実世界のユーザをより正確に特定し、アバターまたはシーンのアクティビティを案内するための深度データをキャプチャすることを含み得る。オブジェクトは、人物が保持している物体とすることも、人物の手とすることもできる。本明細書では、「深度カメラ」及び「三次元カメラ」という用語は、二次元のピクセル情報のほか、距離情報すなわち深度情報を取得することができる任意のカメラを指す。例えば、深度カメラは、制御された赤外線照明を利用して、距離情報を取得することができる。他の例示的な深度カメラに、立体カメラ対があり、これは２台の基準カメラを使用して距離情報を三角測量によって求める。同様に、「深度検知デバイス」という用語は、距離情報ならびに二次元のピクセル情報を取得することができる任意の種類のデバイスを指す。
【０１３１】
三次元像の最近の進歩により、リアルタイムのインタラクティブなコンピュータアニメーションの可能性が広がっている。特に、新しい「深度カメラ」は、通常の二次元のビデオ像に加えて、三次元をキャプチャ及びマップする機能を提供することができる。新しい深さデータにより、本発明の実施形態は、リアルタイムで、他のオブジェクトの背後を含むビデオシーン内の様々な位置にコンピュータ生成オブジェクトを配置することを可能にする。
【０１３２】
さらに、本発明の実施形態は、ユーザに対してリアルタイムのインタラクティブなゲーム体験を提供する。例えば、ユーザは、様々なコンピュータ生成オブジェクトとリアルタイムで対話することができる。さらに、ビデオシーンをリアルタイムで変更して、ユーザのゲーム体験を向上させることができる。例えば、コンピュータ生成の衣装をユーザの衣服の上にはめ込んだり、コンピュータ生成の光源を利用して、ビデオシーン内に仮想の陰影を投影したりすることができる。したがって、本発明の実施形態及び深度カメラを使用して、ユーザは、自分のリビングルーム内でインタラクティブなゲーム環境を体験することができる。通常のカメラと同様に、深度カメラは、ビデオ画像を構成する複数のピクセルの二次元データをキャプチャする。これらの値は、ピクセルの色の値であり、通常は、各ピクセルの赤、緑、青（ＲＧＢ）の値である。このようにして、カメラによってキャプチャされたオブジェクトは、二次元オブジェクトとしてモニタ上に表示される。
【０１３３】
本発明の実施形態はまた、分散型の画像処理構成も考慮している。例えば、本発明は、ＣＰＵまたはＣＰＵ及び他の１つの素子など、１つまたは２つの場所で行われる、キャプチャされた画像及び表示画像処理に限定されない。例えば、入力画像処理は、処理を実行することができる関連するＣＰＵ、プロセッサまたはデバイスで容易に行うことができ、基本的には、すべての画像処理を、相互接続されたシステム全体に分散させることができる。したがって、本発明は、特定の画像処理ハードウェア回路及び／またはソフトウェアに限定されない。本明細書に記載された実施形態はまた、一般的なハードウェア回路及び／またはソフトウェアの特定の組み合わせにも、コンポーネントを処理することによって実行される命令のいかなる特定のソースにも限定されない。
【０１３４】
上記の実施形態を念頭に置いて、本発明は、コンピュータシステムに格納されたデータを含む様々なコンピュータ実装の動作を使用し得ることを理解されたい。これらの動作は、物理量の物理的操作を必要とする動作が含まれる。通常、必ずではないが、これらの量は、格納、転送、結合、比較、及びその他の操作が可能な電気信号または磁気信号の形式をとる。さらに、実行される操作は、生成、識別、決定、または比較などの用語で呼ばれることが多い。
【０１３５】
上述の発明は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースまたはプログラマブル民生用電子機器、ミニコンピュータ、メインフレームコンピュータなどを含む他のコンピュータシステム構成で実施し得る。本発明は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される分散コンピューティング環境でも実施し得る。
【０１３６】
本発明は、コンピュータ可読媒体上のコンピュータ可読コードとして具体化することもできる。コンピュータ可読媒体は、データを格納することができる任意のデータストレージデバイスであり、このデータは、その後、電磁搬送波を含むコンピュータシステムによって読み取ることができる。コンピュータ可読媒体の例には、ハードドライブ、ネットワーク接続ストレージ（ＮＡＳ）、リードオンリメモリ、ランダムアクセスメモリ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、ならびに他の光学及び非光学データストレージデバイスが含まれる。コンピュータ可読媒体は、コンピュータ可読コードが分散方式で格納され、実行されるように、ネットワーク結合コンピュータシステム上に分散することもできる。
【０１３７】
前述の発明は、理解を明確にするために幾分詳細に説明してきたが、添付の特許請求の範囲内で、ある種の変更及び修正を実施し得ることは明らかであろう。したがって、本実施形態は例示的であって限定的ではないと見なされるべきであり、本発明は本明細書に記載された詳細に限定されるものではなく、添付の特許請求の範囲及び均等物の範囲内で修正され得る。
【図１Ａ】
2020151494.tif 000003
【図１Ｂ】
2020151494.tif 000004
【図２】
2020151494.tif 000005
【図３】
2020151494.tif 000006
【図４】
2020151494.tif 000007
【図５】
2020151494.tif 000008
【図６】
2020151494.tif 000009
【図７】
2020151494.tif 000010
【図８】
2020151494.tif 000011
【図９】
2020151494.tif 000012