(57)【特許請求の範囲】
【請求項１】
プロセッサ実行可能命令を有する非一時的コンピュータ可読媒体であって、プロセッサによる前記命令の実行により、前記プロセッサに特定の方法を実施させ、前記方法が、
ａ）ネットワークを経由して出力デバイスから受信された情報から前記出力デバイスの表示能力を判定することと、
ｂ）コンテンツが、前記出力デバイスの前記表示能力と一致するようなやり方で表示されるように、前記出力デバイス上に表示するように構成された２つ以上のデータストリームをフォーマットし、前記２つ以上のデータストリームが、ユーザインターフェースデータのためのデータストリームと、ビデオデータのための別のデータストリームとを含み、前記ユーザインターフェースデータの解像度と前記ビデオデータの解像度が別々に変倍されることと、
ｃ）コンテンツデータの前記２つ以上のストリームを前記出力デバイスに送ることとを含む、前記非一時的コンピュータ可読媒体。
【請求項２】
前記２つ以上のデータストリームが、圧縮データを含むデータストリームを含む、請求項１に記載の非一時的コンピュータ可読媒体。
【請求項３】
コンテンツの前記２つ以上のストリームが、テキストとして表示されるべきデータを含むデータストリームを含む、請求項１に記載の非一時的コンピュータ可読媒体。
【請求項４】
コンテンツの前記２つ以上のストリームが、オーディオデータストリームを含む、請求項１に記載の非一時的コンピュータ可読媒体。
【請求項５】
前記２つ以上のデータストリームが、インベントリ情報として表示されるべきデータを含むデータストリームを含む、請求項１に記載の非一時的コンピュータ可読媒体。
【請求項６】
前記２つ以上のデータストリームが、マップ情報として表示されるべきデータを含むデータストリームを含む、請求項１に記載の非一時的コンピュータ可読媒体。
【請求項７】
１つのデータストリームの表示が、別の表示に対して優先される、請求項１に記載の非一時的コンピュータ可読媒体。
【請求項８】
前記２つ以上のデータストリームをフォーマットすることが、前記２つ以上のデータストリームをフォーマットする際のネットワーク接続の特性に関する情報を使用することを含む、請求項１に記載の非一時的コンピュータ可読媒体。
【請求項９】
前記表示命令が、サーバによって、前記出力デバイスと組み合わせて使用されるクライアントデバイスプラットフォームに送られる、請求項１に記載の非一時的コンピュータ可読媒体。
【請求項１０】
前記クライアントデバイスプラットフォームがゲーミングコンソールである、請求項９に記載の非一時的コンピュータ可読媒体。
【請求項１１】
前記クライアントデバイスプラットフォームがコンピュータである、請求項９に記載の非一時的コンピュータ可読媒体。
【請求項１２】
前記クライアントデバイスプラットフォームが携帯電話である、請求項９に記載の非一時的コンピュータ可読媒体。
【請求項１３】
前記クライアントデバイスプラットフォームがタブレットである、請求項９に記載の非一時的コンピュータ可読媒体。
【請求項１４】
前記クライアントデバイスプラットフォームがハンドヘルドコンピューティングデバイスである、請求項９に記載の非一時的コンピュータ可読媒体。
【請求項１５】
前記クライアントデバイスプラットフォームがウェアラブルデバイス、携帯電話、タブレットコンピュータ、またはポータブルゲームデバイスである、請求項９に記載の非一時的コンピュータ可読媒体。
【請求項１６】
前記クライアントデバイスプラットフォームが電話システムである、請求項９に記載の非一時的コンピュータ可読媒体。
【請求項１７】
前記クライアントデバイスプラットフォームがドングルデバイスである、請求項９に記載の非一時的コンピュータ可読媒体。
【請求項１８】
前記クライアントデバイスプラットフォームは、前記出力デバイスが前記出力デバイスの前記表示能力を判定し、前記表示能力の情報を前記サーバに送ることができるように構成される、請求項９に記載の非一時的コンピュータ可読媒体。
【請求項１９】
ネットワークを経由して前記出力デバイスから受信された前記情報がまた、前記出力デバイスの画像の向きも含む、請求項１に記載の非一時的コンピュータ可読媒体。
【請求項２０】
前記コンテンツデータが、ビデオゲームのビデオ部分を含む、請求項１に記載の非一時的コンピュータ可読媒体。
【請求項２１】
前記コンテンツデータが、リモートマシン上で稼働中のコンピュータプログラムセッションのストリームである、請求項１に記載の非一時的コンピュータ可読媒体。
【請求項２２】
前記出力デバイスがテレビジョンである、請求項１に記載の非一時的コンピュータ可読媒体。
【請求項２３】
前記出力デバイスの前記表示能力が経時的に変化する、請求項１に記載の非一時的コンピュータ可読媒体。
【請求項２４】
前記出力デバイス及び前記クライアントデバイスプラットフォームが同一のデバイスである、請求項９に記載の非一時的コンピュータ可読媒体。
【請求項２５】
前記ｂ）は、ビデオデータのためのデータストリーム用にビデオフレームを生成するのに使用される特定のアプリケーションによって前記ビデオデータをフォーマットすることを含む、請求項１に記載の非一時的コンピュータ可読媒体。
【請求項２６】
前記２つ以上のストリームが、ゲームストリームと、ユーザインターフェースストリームである、請求項１に記載の非一時的コンピュータ可読媒体。
【請求項２７】
前記２つ以上のストリームが、ゲームストリーム、ユーザインターフェースストリーム及び１つまたは複数の追加のストリームを含む、請求項２６に記載の非一時的コンピュータ可読媒体。
【請求項２８】
前記２つ以上のストリームが、ゲームストリーム、ユーザインターフェースストリーム及び第１のクライアントデバイスと第２のクライアントデバイス間でのビデオチャットストリームを含む、請求項２６に記載の非一時的コンピュータ可読媒体。
【請求項２９】
前記２つ以上のストリームが、ゲームストリーム、ユーザインターフェースストリーム及び第１のクライアントデバイスと第２のクライアントデバイス間でのビデオチャットストリームを含み、前記方法がさらに前記第１及び第２のクライアントデバイス間のピアツーピアセッションを調整して、前記第１及び第２のクライアントデバイスに前記ビデオチャットストリームを前記ゲームストリーム及び前記ユーザインターフェースストリームと組み合わせるようにさせることを含む、請求項２６に記載の非一時的コンピュータ可読媒体。
【請求項３０】
ネットワーク上で動作するように構成されたサーバにおける方法であって、
ａ）ネットワークを経由して出力デバイスから受信された情報から前記出力デバイスの表示能力を判定することと、
ｂ）コンテンツが、前記出力デバイスの前記表示能力と一致するようなやり方で表示されるように、前記出力デバイス上に表示するように構成された２つ以上のデータストリームをフォーマットし、前記２つ以上のデータストリームが、ユーザインターフェースデータのためのデータストリームと、ビデオデータのための別のデータストリームとを含み、前記ユーザインターフェースデータの解像度と前記ビデオデータの解像度が別々に変倍されることとを含む、前記方法。
【請求項３１】
プロセッサと、
前記プロセッサに結合されたメモリとを備えるシステムであって、
前記プロセッサが、特定の方法を実施するように構成され、前記方法が、
ａ）ネットワークを経由して出力デバイスから受信された情報から前記出力デバイスの表示能力を判定することと、
ｂ）コンテンツが、前記出力デバイスの前記表示能力と一致するようなやり方で表示されるように、前記出力デバイス上に表示するように構成された２つ以上のデータストリームをフォーマットし、前記２つ以上のデータストリームが、ユーザインターフェースデータのためのデータストリームと、ビデオデータのための別のデータストリームとを含み、前記ユーザインターフェースデータの解像度と前記ビデオデータの解像度が別々に変倍されることと、
ｃ）コンテンツデータの前記２つ以上のストリームを前記出力デバイスに送ることとを含む、前記システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ネットワークを介して流されるデータの動的な調節に関する。詳細には、本開示の態様は、出力デバイスの表示能力を判定し、その後出力デバイス上に表示するように構成されたデータの２つ以上のストリームをフォーマットにするためのシステム及び方法に関する。
【背景技術】
【０００２】
デジタルストリーミングサービス及び種々のクラウドベースのコンピューティングソリューションが次第に普及するのに伴い、リモートデバイス間で大量のデータを迅速かつ正確に転送する能力は絶対的に必要な作業である。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
現在、データストリーミングサービスは、データを表示するつもりであるデバイスの仕様を考慮に入れていない。結果として、デバイス間でのスケール変更及びピクセルの変化は、例えばより小さなスクリーン上でテキストを読むことができないなど望ましくない表示のシナリオを生む可能性があり、またはディスプレイのアスペクト比が特定の媒体にとって適切でない場合もある。
【０００４】
加えてデジタルストリーミングサービス及びクラウドベースのコンピューティングソリューションは、例えばビデオゲームなど待ち時間に影響されやすいアプリケーションを利用する際、リモートデバイス間でデータを転送する間に確立されるまたは使用されるネットワーク特性及び帯域幅に制限を受ける場合がある。このような制限は、データ転送における遅延を招く可能性があり、よって待ち時間を生み出す場合があり、これにより典型的にはアプリケーションの利用に矛盾が生じる。クライアントデバイスは必然的に、様々な方法を通して最低の待ち時間を達成しようと試みるが、各々のクライアントデバイスは、伝達されるデータのデコード速度、レンダー速度、入力ポーリング、またはさらにはクライアントのネットワーク接続などの要因における差が原因で様々な分量の待ち時間を体験することになる。一部の形態の媒体では、例えばテキストまたはユーザインターフェース（ＵＩ）データなどの特有の媒体の潜在的な表示は、ユーザの楽しみにとってあまり好ましくない場合があり、ユーザのフラストレーションを引き起こし、場合によってはタイトルまたはプラットフォームを全て放棄する場合すらある。
【０００５】
さらに消費者が利用できる多様な種類のメディアプレイイングデバイスにおいて、ユーザの要望に応じてディスプレイの向きが急に変えられる場合がある。特定のデバイスの向きがメディアタイトルを見るようにすることができるが、メディアタイトルは、その他の状況では別の向きにおいて通常見ることはほぼ不可能である。したがってネットワーク待ち時間、ディスプレイの向き及び多様なデバイスの固有の表示能力を考慮に入れる、ネットワークを介して流されるメディアを調節し表示するための代替の手段を見つけることが当分野において必要とされている。
【課題を解決するための手段】
【０００６】
本開示の特定の態様によって、非一時的コンピュータ可読媒体は、そこで具現化されたコンピュータ可読命令を含むことができる。この命令は、実行される際、特定の方法を実施するように構成されて良い。方法は、出力デバイスの表示能力を判定することを含むことができる。出力デバイス上に表示するように構成された２つ以上のデータストリームを確立しフォーマットすることができる。データストリームは、ビデオデータ及びユーザインターフェース（ＵＩ）データに関して別々のストリームを含むことができる。データストリームはその後、出力デバイスに送られて良い。
【０００７】
本開示の特定の実施態様によって、出力デバイスにデータを流すための方法は、出力デバイスの表示能力を判定することを含むことができる。出力デバイスに表示するように構成された２つ以上のデータストリームを確立しフォーマットすることができる。このデータストリームは、ビデオユーザ及びユーザインターフェース（ＵＩ）データに関して別々の情報を含んで良い。データストリームはその後、出力デバイスに送られて良い。
【０００８】
本開示の特定の実施態様によって、コンピューティングシステムは、少なくとも１つのプロセッサユニットと、少なくとも１つのプロセッサユニットに結合された少なくとも１つのメモリユニットとを含むことができる。少なくとも１つのプロセッサユニットと、少なくとも１つのメモリユニットは、特定の方法を実施するように構成されて良い。方法は、出力デバイスの表示能力を判定することを含むことができる。出力デバイス上に表示するように構成された２つ以上のデータストリームを確立しフォーマットすることができる。データストリームは、ビデオデータ及びユーザインターフェース（ＵＩ）データに関して別々の情報を含むことができる。データストリームはその後、出力デバイスに送られて良い。
【０００９】
本開示の教示は、以下の詳細な記載を、添付の図面と併せて考慮することによって容易に理解することができる。
【図面の簡単な説明】
【００１０】
【図１】ネットワークを介して流されるデータから得られる、出力デバイスに表示されるメディアタイトルの一部のスクリーンショットであり、タイトルを表示する種々の構成要素を図示することが意図される。
【図２】本開示の特定の態様による一例のシステムのフロー図である。
【図３】本開示の特定の態様による一例のシステムのブロック図である。
【図４】本開示の特定の態様によるサーバ側からの一例のアセット管理技術のフロー図である。
【図５】本開示の特定の態様による出力デバイス側からの一例のアセット管理技術のフロー図である。
【発明を実施するための形態】
【００１１】
以下の詳細な記載は、例示の目的で多くの特有の詳細を含んでいるが、当業者の誰しも、以下の詳細に対する多くの変形形態及び代替形態も本発明の範囲内にあることを理解するであろう。したがって以下に記載される本開示の例示の実施態様は、特許請求された発明に対する一般性を何ら失うことなく、またそこに制限を課すことなく記載されている。
【００１２】
［導入］
本開示の態様は、多様なデバイスの種類、向き及びネットワーク特性に応じてＵＩ及びビデオストリーミングデータを動的に調節するためのシステム及び方法に関する。
【００１３】
特定の態様によると、ネットワーク上で動作するように構成されたクライアントデバイスは、提供ユーザから借りることができる１つまたは複数のデジタルアセットのリストをユーザに提供することができる。ユーザはその後、提供ユーザから借りることができるアセットの使用をリクエストすることが可能である。ユーザはその後、提供ユーザからアプリケーションまたはアプリケーション機構へのアクセス権など特定の権利を受け取ることができる。代替の実施形態は、提供ユーザが、最初にリクエストを受信せずに、別のユーザに対するアセット権を与えることができる方法を提供する。
【００１４】
［実施態様の詳細］
図１において、ネットワーク１０上を流されるデータから得られる、出力デバイスに表示されるメディアタイトルのスクリーンショットの一例が提供されている。この例は、流されたタイトルの種々の構成要素を図示することが意図されている。例えば、出力デバイス１２において、ディスプレイの種々の部分は、デバイスの向きまたはネットワーク接続の特性によって画質及び鮮明度が変化する場合がある。例えば１４などのビデオデータは、それが表示されるデバイスと無関係に表示される場合、鮮明であって良い。しかしながらテキスト１６及びマップデータ１８などのＵＩデータは、これより小さなスクリーン上に表示するのが難しい場合がある、またはこれより小さいディスプレイに適合するようにフォーマットされた場合、読み取ることができないまたは利用できない場合もある。
【００１５】
次に図２を参照すると、ネットワーク１００上を流されるデータからメディアタイトルがどのように種々のデバイス上に表示され得るかの説明的な例が提供されている。詳細には、図２は、本開示の特定の実施態様による、多様な出力デバイスに複数のデータストリームを提供するための一例のプロセスフローを描いている。図２におけるアプリケーションアセットを提供する一例の方法は、図４及び図５に示される方法と共通する１つまたは複数の態様を有することができることに留意されたい。また図２の例は、どのようにデータストリームが本開示に従って提供され得るかの特定の態様のみを例示する目的の簡素化された例にすぎないことに留意することも重要である。
【００１６】
始めに、この例において、データストリームは、メディア情報を含むサーバからのストリームをリクエストする出力デバイスに提供されるが、データは、代替のソースからリクエストされ、そこに送られる場合もあることに留意することも重要である。この例では、図２に示されるように出力デバイス１０３を使用するユーザが、サーバ１０２からメディアタイトルのストリームをリクエストする。サーバは、このリクエストを受信し１８２、適合可能なデバイスのリストから出力デバイス１０３の能力を判定する１８６。関連する能力には、ピクセルでのスクリーンサイズ、物理的なスクリーンの寸法、スクリーンの解像度、カラーフォーマット（例えば８ビット、１５ビット、１６ビット、２４ビット、３０ビット、３６ビットまたは４８ビットカラー）などのパラメータが含まれて良い。
【００１７】
使用され得るパラメータの追加の例には、これに限定するものではないが、ピクセルアスペクト比（ピクセルは典型的には、同一の幅及び高さを有する正方形とみなされる）が含まれて良い。これは、特に旧式のＳＤテレビ信号に関しては必ずしも真実ではない）。カラースペース情報（ＲＧＢ、ＹＵＶなど）、ガンマ補正情報、スクリーンの向き、ディスプレイバックライトレベル（「ブライトネスレベル」）、ディスプレイのリフレッシュ速度。リフレッシュ速度に関して、最大のリフレッシュ速度（６０Ｈｚ）を知ることは有益であり得るが、デバイスは、これより低いリフレッシュ速度またはさらには可変のリフレッシュ速度をサポートする場合もある。
【００１８】
これらのパラメータの一部は経時的に変化する場合がある。例えばハンドヘルドデバイス、タブレット及びスマートフォンなどの場合、向きが変わる場合がある。異なる表示デバイスにローカルに接続された１つのデバイスに流す場合、表示能力を変えることも可能である。例えばビデオを、タブレットまたは電話などのデバイスに流しているユーザが突然デバイスを４Ｋディスプレイに接続する場合がある。これはその能力の一部を変化させる可能性がある。
【００１９】
何らかの他の関連するグラフィックスプロセッシングユニット（ＧＰＵ）パラメータが存在する場合もある。例えば一部のＧＰＵ（とりわけ埋め込みプラットフォーム上の）は、ビデオオーバーレイに対するサポートを有する。具体的には、１つのフレームは複数の描画レイヤを有することができ、これはフレームを表示するために出力される前にどうにかして結合される（複合される）。これにより、ビデオ及びＵＩの独立したレンダリングを可能にすることができる。例えばビデオストリームをＵＩと異なるレイヤ上でレンダーすることができる。ＵＩ及びビデオストリームは、異なる更新頻度を有することができ、両方とも互いを「待つ」必要がない。例えばデジタルテレビジョンは、オーバーレイを利用して「ＴＶ画像」の頂部にシステムメニューシステムを層状に重ねる。
【００２０】
代替の実施形態では、表示能力が分からない場合、サーバが、出力デバイスからのデバイス情報をリクエストし１８３、出力デバイスが、サーバにその情報を送る場合もある１８４。例えば出力デバイスは、出力デバイスがユーザに対するディスプレイスクリーンの向きを感知することを可能にする１つまたは複数のセンサ、例えば慣性センサ及び／またはユーザの方を向いたカメラを含むことができる。ディスプレイスクリーンは、矩形であっても良いが、但し非正方形のアスペクト比（幅と高さの比）を有する。サーバ１０２は、出力デバイスが、それがユーザに対して水平方向または垂直方向の向きであるかを指示することで、流すべきデータを、その向きで提示するために最適にフォーマットすることができるようにリクエストすることができる。
【００２１】
デバイスの能力に関する情報（例えばデバイスが４８０ｐ、７２０ｐ．．．をサポートするか）は、何が技術的に可能であるかに対するサーバ情報を提供する。デバイスの特定の現在の設定、例えば向き及び出力解像度を知ることもサーバにとって有益である。他の情報、例えば色の深みなどは、それほど重要ではない場合もあり、例えばそれはクライアントデバイスにおいて調節可能である、またはサーバが、圧縮効率の理由のために、もしくは必要とされる帯域幅を低下させるために、この情報を命令することになるためである。
【００２２】
サーバ１０２はまた、サーバと出力デバイス１０３の間のネットワーク１００の品質に関する情報をリクエストする場合がある。そのような情報には、ネットワークの待ち時間、利用可能なネットワーク帯域幅、パケットロスまたはネットワークプロトコルなどが含まれて良い。この情報は、データストリームをフォーマットする１８８のに使用されて良い。例えば一部のネットワークプロトコル、例えばユニフォームデータグラムプロトコル（ＵＤＰ）はかなり信頼性が低い。サーバ１０２がネットワーク１００がＵＤＰを使用することを知っている場合、ストリームを、出力デバイス１０３が失われたデータパケットを回復するのに使用することができるフォワードエラーコレクション（ＦＥＣ）パケットを含むように構成する１８８ことができる。
【００２３】
ストリーミング技術は、ＦＥＣ技術を利用することが多い。クライアントデバイスへのストリーミングを開始する前、サーバが、例えばそのストリームに対して８Ｍｂｐｓなどの帯域幅バジェットを設定する。帯域幅バジェットを設定するには、サーバが何らかのクライアントデバイス設定、例えばビデオ解像度、フレーム率及び圧縮設定を選ぶことが有益である。
【００２４】
ストリーミングにおいて、サーバは、帯域幅及びパケットロスなどのネットワークパラメータに基づいて帯域幅をモニタすることができ、これに従って我々のビデオ解像度、フレーム率及び圧縮設定を調節することができる。音声ストリーミングに関する同様の設定も調節することができ、これはより重要になる場合がある。音声設定を知ることによって、サーバが例えば６チャンネルのサラウンドサウンド機構（例えば５．１サラウンドサウンド）またはステレオ機構用に音声ストリームを最適化することが可能になる。
【００２５】
一部のストリーミング技術は、フレーム率または解像度を幾分おおまかなやり方で低下させる。例えば一部のビデオゲームストリーミングシステムは、ＨＤＭＩ（登録商標）からビデオを取りこむため、ゲームが６０ｆｐｓを生成しており、ストリーミング速度を３０ｆｐｓまで低下させる必要がある場合、ストリーミングサーバは単純にフレームを放棄する。加えて解像度を低下させる必要がある場合、サーバは、ゲームから受信したビデオフレームを単に変倍するだけで良い。一例として、ゲームが７２０Ｐでビデオを生成している可能性があり、サーバ１０２が５４０Ｐで流す必要がある場合、フレームは単にソフトウェアにおいて変倍される。
【００２６】
例えばオンラインビデオゲームなど、一部のアプリケーション用のサーバは、アプリケーションソフトウェアを、クライアントデバイスへのビデオのストリーミングを扱うのに使用されるハードウェアと異なるハードウェア上で稼働させることが多い。ストリーミングサーバ及びアプリケーションハードウェアは、データセンター内に配置されて良く、ローカルエリアネットワークによって接続されて良い。本開示の態様によると、ビデオデータのフォーマット作業は、ビデオストリーム用に使用されるビデオフレームを生成するアプリケーションを利用して行うことができる。一例として、但し限定としてではなく、ストリーミングサーバは、アプリケーションを稼働しているハードウェアに、それがフレーム率またはディスプレイ解像度を低下させる必要があることを知らせることができる。アプリケーションはこのとき、フレーム率もしくは解像度を調節することができる、またはそうでなければ出力デバイス１０３用のビデオのフォーマット作業を調節することができる。ビデオフレームを生成するアプリケーションは往々にして、フレーム率、ディスプレイ解像度または他のビデオフォーマッティングパラメータを調節する最適なジョブを行うことができる。加えて、このようにビデオをフォーマットすることは、電力をわずかに節約することさえもできる（解像度またはフレーム率が低下するほど、サーバへの集中が低下し、これにより使用する電力も低下する）。
【００２７】
ひとたびデバイスの表示能力情報が判定されると、サーバは、ビデオ及びＵＩ情報に対して別々のストリームを形成する１８８。このステップが行われることで、ＵＩ及びビデオデータ情報を出力デバイス１０３上で別々にフォーマットすることができ、ＵＩ及びビデオデータを別々に変倍することで、流されるタイトルの全ての局面を鮮明かつ使用可能にすることを保証することが可能になる。このようにフォーマットにされたストリームは、出力デバイス１０３に送られ１９０、そこでそれらは、出力デバイスの表示能力と一致するようなやり方で受信され表示される１４０。代替の実施形態では、出力デバイスは、ストリームの表示に優先順位をつける場合がある１５０。一例として、但し限定としてではなく、ＵＩデータの各々の局面が別々のストリームに含まれる場合、出力デバイスは、ストリームの表示にその順番で（テキストデータ、ビデオデータ、マップデータなど）優先順位をつけることで、表示の特定の局面が、ネットワークの待ち時間の間、鮮明さを維持する一方で、他の局面は鮮明さを欠くようにすることができる。
【００２８】
一例として、オンラインビデオゲーム用の「ゲーム」ストリームは、圧縮されたビデオストリームであって良い。ゲーム用のＵＩストリームは、必ずしもビデオストリームではないが、上記で指摘したようにテキスト、ビットマップデータ、ベクターグラフィックス及び他のタイプのデータであって良い。これらのタイプのデータは、出力デバイス１０３と共有される場合がある。一部の実施態様では、出力デバイス１０３は、例えばメモリ２３２’またはキャッシュ２４４’内のデータ２３６’の一部としてローカルにデータの一部を既に有する場合がある。例えば、テキストをレンダーするのに使用されるフォントはクライアントにおいて既に利用可能な場合がある。一部の実施態様では、出力デバイス１０３は、ＵＰベースのユーザ設定を構成することが可能な場合もある。そのような一実施態様では、ユーザは、例えば出力デバイス１０３上に既に記憶されている何らかのデータによってビットマップまたはフォントをオーバライドすることで、大規模なマルチプレイヤオンラインゲーム（ＭＭＯ）で使用されることの多いゲーム「ｍｏｄ」のようなものを創り出すことができる。
【００２９】
図２における例示は、サーバからメディアタイトルを流すようにリクエストする第２のユーザの一例も提供しており、またこれは、データが多数の出力デバイスの表示能力と一致するようなやり方でデータが受信され表示されるように、その独自のそれぞれのデータストリーム１４０’を有する種々のデバイスに流される場合を示すために提供されている。
【００３０】
図２に描かれる例は、本開示の特定の態様を強調するために単なる例示の目的で提供されていることを強調しておく。実際には、本開示の実施態様は、図２の例によって描かれない追加のまたは代替の考慮すべき問題における要因となる場合もあり、図２に描かれる簡素化されたスキームより複雑である場合もある。
【００３１】
本開示の態様の特定の実施態様は、流されるコンテンツを動的に調節するように構成されたシステムを含む。一例として、但し限定としてではなく、図３は、３つのデバイス１０２、１０３及び１０４を含む分散型コンピューティングシステムを描いており、コンピューティングシステム１０２、１０３及び１０４は、本開示の特定の態様に従ってネットワークを介してデータを転送するように構成されている。特定の実施態様において、デバイス１０２は、図２及び／または図４に関して記載されたものと共通する１つまたは複数の態様を有する命令を実行するように構成されて良い。特定の実施態様において、デバイス１０３及び１０４は、図２に関して、または以下で図５に関して上記に記載したものの１つまたは複数と共通する１つまたは複数の態様を有する命令を実行するように構成されて良い。デバイス１０２、１０３及び１０４の各々は、本明細書に記載される方法の種々の態様を履行するのに適したソフトウェア及び／またはハードウェアを有するように構成されて良い。デバイス１０２、１０３及び１０４の各々は、サーバ、埋め込みシステム、携帯電話、パーソナルコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ポータブルゲームデバイス、ワークステーション、ゲームコンソール、ウェアラブルデバイス、例えばスマートウォッチ、「ドングル」デバイスなどであって良い。本明細書で使用される際、用語「ドングルデバイス」は、他の機器、例えばコンピュータまたはテレビジョンなどにつながることで、これらの機器に機能を追加するデバイスを指す。そのような機能には、コピー保護、音声、ビデオ、ゲーム、データ、またはドングルが取り付けられたときのみ利用可能な他のサービスが含まれて良い。ドングルデバイスの例には、これに限定するものではないがインターネットコンテンツストリーミングデバイス、「スマート」モバイルフォンに利用可能な赤外線リモートコントロールアダプタが含まれる。出力デバイス１０３、１０４は、サーバ１０２と共通する特定の構成要素を有する。図３において、サーバ１０２の構成要素は、ダッシュなしの参照番号によって示されており、出力デバイス１０３の対応する構成要素は、ダッシュが付いた（’）同じ参照番号によって示されており、出力デバイス１０４の対応する構成要素は、二重ダッシュが付いた（’’）同じ参照番号によって示されている。
【００３２】
特定の実施態様によると、デバイス１０２は、メディアストリーミングデータをフォーマットし提供するように構成されたサーバであって良く、デバイス１０３及び１０４は、メディアタイトルを表示することを望むユーザによって利用される出力デバイスであって良い。サーバ１０２は、メディアを形成しフォーマットし１８８、例えばインターネット接続またはローカルエリアネットワークを利用してネットワーク２６０を介して出力デバイス１０３または１０４にデータを送る１９０ように構成されて良い。ネットワーク２６０は、インターネット接続である必要はないことに留意されたい。一部の実施態様では、ストリーミングは、所与の場所における一方のデバイスから、ローカルエリアネットワークを介してその場所における別のデバイスへと行われる場合もある。
【００３３】
さらに、たとえネットワーク２６０がワイドエリアネットワークであっても、それは、インターネット以外の技術、例えばケーブルネットワークなどによって実施される場合もある。
【００３４】
データストリーム１８８は、それぞれの出力デバイスのデバイス能力が異なる１８６場合があるため、たとえリクエストされたメディアタイトルが同じものであっても、それぞれのデバイス１０３または１０４に関して別々にフォーマットされて良い。一例として、但し限定としてではなく、データストリーム１８８には、ビデオデータ、ＵＩデータ、テキスト、インベントリデータ、マップデータまたは音声データのためのストリームが含まれて良い。一部の実施態様では、特定の種類のデータストリームは、そのストリームにおいて伝達される必要があるデータのビット数を削減するために圧縮される場合がある。詳細にはビデオデータ及び音声データは一般に、伝達される前に圧縮される。
【００３５】
デバイス１０２、１０３及び１０４の各々は、例えばシングルコア、デュアルコア、クアッドコア、マルチコア、プロセッサコプロセッサ、セルプロセッサなどのよく知られた機構に従って構成され得る１つまたは複数のプロセッサユニット２３１、２３１’、２３１’’を含むことができる。デバイス１０２、１０３及び１０４の各々はまた、１つまたは複数のメモリユニット２３２、２３２’、２３２’’（例えばＲＡＭ、ＤＲＡＭ、ＲＯＭなど）を含むことができる。プロセッサユニット２３１、２３１’、２３１’’は、メモリ２３２に記憶され得る１つまたは複数のプログラム２３３、２３３’、２３３’’を実行することができ、プロセッサ２３１、２３１’、２３１’’は、例えばデータバス２５０、２５０’、２５０’’を介してメモリにアクセスすることによってメモリ２３２、２３２’、２３２’’に動作可能に結合されて良い。メモリユニット２３２、２３１’、２３１’’は、データ２３６、２３６’、２３６’’を含むことができ、プロセッサユニット２３１、２３１’、２３１’’は、プログラム２３３、２３３’、２３３’’を実施する際にデータ２３６、２３６’、２３６’’を利用することができる。デバイス１０２、１０３及び１０４の各々に関するデータ２３６、２３６’、２３６’’は、例えば出力デバイス１０３もしくは１０４からサーバ１０２に伝達されるストリーミングデータ１２０に関するリクエストと、本開示の種々の態様に従ってサーバ１０２から出力デバイス１０３または１０４に送る１４０ための特別にフォーマットされたデータストリームのセット１８８とを含むことができる。プログラム２３３、２３３’、２３３’’は、プロセッサによって実行される際、メディアタイトルに関するストリーミングデータをリクエストすること１２０に関連する１つまたは複数の動作を行い、そのリクエストが受信される出力デバイスの能力を判定し１８６、出力デバイス１０３または１０４に表示する特定のビデオ及びＵＩデータをそれぞれ含む２つ以上のビデオストリームを形成しフォーマットする１８８、または出力デバイス１０３もしくは１０４の表示能力を最適に利用するようにフォーマットされたデータストリームを受け取り表示する１４０命令を任意選択で含むことができ、例えば方法は、図２、図４及び／または図５の方法と共通する１つまたは複数の特徴を有する。例えばサーバ１０２のプログラム２３３、２３３’、２３３’’は、プロセッサ２３１、２３１’、２３１’’によって実行される際、図２に描かれる方法のサーバ側の態様に従って及び／またはストリーミングデータを送信するサーバ側の態様に従ってサーバにストリーミングデータをフォーマットさせ、少なくとも１つの受け取りデバイス１０３または１０４に送るようにさせる命令を含むことができる。代替の実施形態では、サーバ１０２のプログラム２３３、２３３’、２３３’’は、プロセッサ２３１、２３１’、２３１’’によって実行される際、図２に描かれる方法のサーバ側の態様に従って及び／またはストリーミングデータを送信する態様に従って、サーバに少なくとも１つの受け取り、デバイス１０３または１０４からの表示能力情報をリクエストさせる命令を含む場合もある。出力デバイス１０３または１０４のプログラム２３３、２３３’、２３３’’は、プロセッサ２３１、２３１’、２３１’’によって実行される際、図２に描かれる方法の出力デバイス側の態様に従って及び／またはストリーミングデータを送信する態様に従って、出力デバイスに、サーバ１０２によってその後提供することができるストリーミングデータをリクエストさせる１２０命令を含むことができる。代替の実施形態では、出力デバイス１０３または１０３のプログラム２３３、２３３’、２３３’’は、プロセッサ２３１、２３１’、２３１’’によって実行される際、図２に描かれる方法の出力デバイス側の態様に従って及び／またはストリーミングデータを送信する態様に従って、出力デバイスに、表示能力情報をサーバ１０２に送るようにさせる１８４命令を含む場合もある。
【００３６】
デバイス１０２、１０３及び１０４の各々はまた、例えば入／出力（Ｉ／Ｏ）回路２４１、２４１’、２４１’’（出力デバイス１０３、１０４が制御装置２４５’、２４５’’に結合され得る場合）、電源（Ｐ／Ｓ）２４２、２４２’、２４２’’、クロック（ＣＬＫ）２４３、２４３’、２４３’’及びキャッシュ２４４、２４４’、２４４’’などのよく知られたサポート回路２４０、２４０’、２４０’’を含むことができ、これらは例えばバス２５０、２５０’、２５０’’を介してシステムの他の構成要素と通信することができる。デバイス１０２、１０３及び１０４の各々は任意選択で、ディスクドライブ、ＣＤ−ＲＯＭドライブ、テープドライブ、フラッシュメモリなどのマスストレージデバイス２３４、２３４’、２３４’’を含む場合もあり、これらのマスストレージデバイス２３４、２３４’、２３４’’は、プログラム及び／またはデータを記憶することができる。デバイス１０２、１０３及び１０４の各々はまた任意選択で、ディスプレイユニット２３７、２３７’、２３７’’を含む場合がある。ディスプレイユニット２３７、２３７’、２３７’’は、カソードレイチューブ（ＣＲＴ）、フラットパネルスクリーン、タッチスクリーンまたはテキスト、数字、グラフィカルシンボル、または他の視覚的オブジェクトを表示する他のデバイスの形態であって良い。デバイス１０２、１０３及び１０４の各々はまた、デバイス１０２／１０３または１０４とユーザ間のインタラクションを促進するためにユーザインターフェース２０６、２０６’、２０６’’を含む場合もある。ユーザインターフェース２０６、２０６’、２０６’’には、キーボード、マウス、ライトペン、ゲームコントロールパッド、タッチインターフェースまたは他のデバイスが含まれて良い。ユーザインターフェースはまた、オーディオＩ／Ｏデバイス、例えばスピーカ及び／またはマイクロフォンなどを含む場合もある。
【００３７】
ユーザは、ユーザインターフェース２０６、２０６’、２０６’’を通してコンピュータシステムのいずれかと相互作用することができる。一例として、サーバ１０２は、クラウドゲーミングサーバであって良く、出力デバイス１０３または１０４は、クラウドゲーミングクライアントであって良く、ビデオゲームユーザは、サーバ１０２によって実行され、ユーザインターフェース２０６、２０６’、２０６’’を通して出力デバイス１０４に流されるビデオゲームと相互作用することができる。ユーザインターフェース２０６、２０６’、２０６’’の一部には、システム１０２／１０３または１０４とのユーザのインタラクションを促進するために、ディスプレイユニット２３７、２３７’、２３７’’に表示することができるグラフィカルユーザインターフェース（ＧＵＩ）が含まれて良い。システム１０２／１０３または１０４は、Ｗｉ−Ｆｉ、イーサネット（登録商標）ポートまたは他の通信方法の利用を可能にするように構成されたネットワークインターフェース２３９、２３９’、２３９’’を含むことができる。ネットワークインターフェース２３９、２３９’、２３９’’は、好適なハードウェア、ソフトウェア、ファームウェアまたはそれらの何らかの組み合わせを組み込むことで、電気通信ネットワーク２６０を介する通信を促進することができ、本開示の特定の態様によって信頼性の低いプロトコルを利用してデータの搬送をサポートする場合もある。ネットワークインターフェース２３９、２３９’、２３９’’は、ローカルエリアネットワークまたはワイドエリアネットワーク、例えばインターネットなどを介して有線または無線通信を実施するように構成されて良い。
【００３８】
図４に示されるように、一セットのサーバ側の命令３７０は、例えばサーバ１０２によって実施されて良い。サーバ命令３７０は、非一時的コンピュータ可読媒体、例えばメモリ２３２、２３２’、２３２’’またはマスストレージデバイス２３４、２３４’、２３４’’上に形成されて良い。サーバ側の命令３７０はまた、プロセスコントロールプログラム２３３、２３３’、２３３’’の一部である場合もある。３７２に示されるように、サーバ命令３７０は、ネットワーク２６０を介して１つまたは複数のクライアントデバイス１０３または１０４から受信すべき出力デバイス表示能力を任意選択で含めた、出力デバイス情報をリクエストする１８３ための命令を含むことができる。命令３７０は、出力デバイスの能力に基づいて２つ以上のストリームをフォーマットする１８８ための命令３７４を含むことができる。その後、３７６において、命令は、出力デバイス１０３または１０４にデータストリームを送り１９０、その後に３７８において、それぞれの出力デバイスにデータストリームフォーフォーマッティング情報または優先情報を送るための命令を含むことができる。
【００３９】
図５に示されるように、一セットの出力デバイス命令４８０は、例えば出力デバイス１０３または１０４によって実施されて良い。出力デバイス命令４８０は、非一時的コンピュータ可読媒体、例えばメモリ２３２、２３２’、２３２’’またはマスストレージデバイス２３４、２３４’、２３４’’上に形成されて良い。出力デバイス命令４８０はまた、プロセスコントロールプログラム２３３、２３３’、２３３’’の一部である場合もある。４８２に示されるように、命令４８０は、ネットワーク２６０を介してまたはクライアントデバイス１０３または１０４によって送られる出力デバイス表示能力１８３を任意選択で含めた出力デバイス情報を送るための命令を含むことができる。命令４７０は、出力デバイスの能力に基づいたコンテンツデータの２つ以上のストリーム１８８を受信する１４０ための命令４７４を含むことができる。その後４７６において、命令は、出力デバイス１０３または１０４上のデータストリームの表示に優先順位を付ける１５０ための命令を含むことができ、その後４７８において、流されるコンテンツが、出力デバイス１０３または１０４の表示能力に一致するようなやり方で表示されるように、テキストまたは他のユーザインターフェース（ＵＩ）をフォーマットするために命令を含むことができる。
【００４０】
上記の構成要素は、ハードウェア、ソフトウェア、ファームウェアまたはそれらの何らかの組み合わせにおいて実装されて良い。
【００４１】
上に記載される例は、クライアント側で組み合わされるゲームストリーム及びＵＩストリームを想定しているが、追加のストリーム、一例のビデオチャットストリームも含まれて良い。そのような追加のストリームは、他のユーザクライアントデバイスからピアツーピア状態になる場合があり、クライアントデバイスによって結合させることもできる。一部の実施態様では、サーバ１０２上のプログラム２３３は、出力デバイス１０３と１０４の間にビデオチャットストリームが存在することを認識しており、このストリームを扱うためのリソースを残しておくこともできる。待ち時間の理由のために、サーバ１０２は、ピアツーピア（ｐ２ｐ）セッションを調整してクライアントデバイス１０３、１０４がビデオチャットストリームを他のストリームと組み合わせるようにさせる場合もある。クライアントデバイスによって合成することができるローカルコンテンツには数種類のタイプがあり得る。
【００４２】
本開示の態様によって、データをフォーマットし、一緒に表示される様々なフォーマットでデータを流すことで、様々なデバイスに最適に表示することが可能になる。
【００４３】
上記は、本発明の好ましい実施形態の完璧な記述であるが、種々の代替形態、修正形態及び等価物を利用することも可能である。したがって本発明の範囲は、上記の記載を参照して決めるべきではなく、添付の特許請求の範囲を、等価物のそれぞれの範囲全体と併せて参照して決めるべきである。好ましいものであってもそうでなくても本明細書に記載される任意の特徴は、好ましいものであってもそうでなくても本明細書に記載される任意の他の特徴と組み合わせることができる。以下に続く特許請求の範囲において、不定冠詞「ａ」または「ａｎ」は、そうでないことが明らかに述べられていなければ、この冠詞の後に続く１つまたは複数の品目の数量を指している。添付の特許請求の範囲は、そのような限定が与えられたクレーム中でフレーズ「〜のための手段（ｍｅａｎｓ  ｆｏｒ）」を使用して明白に列記されていなければ、ミーンズ−プラス−ファンクション限定を含めるように解釈するべきではない。
【図１】
0006563024.tif 000002
【図２】
0006563024.tif 000003
【図３】
0006563024.tif 000004
【図４】
0006563024.tif 000005
【図５】
0006563024.tif 000006