(57)【要約】画像処理装置は、第１のフレームを取得し、第１のユーザと第２のユーザとの少なくともいずれかのための追加の画像データを取得し、第１のフレーム及び第１のユーザのための追加画像データを合成することによる第１のユーザのための第１の合成フレームと第１のフレーム及び第２のユーザのための追加画像データを合成することによる第２のユーザのための第２の合成フレームとの少なくともいずれかを生成し、第１のユーザに対して、第１の合成フレームが生成された場合には第１の合成フレームを、それ以外の場合には第１のフレームを出力し、第２のユーザに対して、第２の合成フレームが生成された場合には第２の合成フレームを、それ以外の場合には第１のフレームを出力する。
2016528563.tif 000002
【特許請求の範囲】
【請求項１】
描画手段によって描画されると共に映像データストリームに含まれる第１のフレームを取得すると共に、第１のユーザと第２のユーザとの少なくともいずれかのための追加画像データとを取得する取得手段と、
前記第１のフレームと前記第１のユーザのための前記追加画像データとを組み合わせることによる第１の合成フレームと、前記第１のフレームと前記第２のユーザのための前記追加画像データとを組み合わせることによる第２の合成フレームと、の少なくともいずれかを生成する合成手段と、
前記第１のユーザのために、前記第１の合成フレームが生成された場合は当該第１の合成フレームを、前記第１の合成フレームが生成されていない場合は前記第１のフレームを出力し、前記第２のユーザのために、前記第２の合成フレームが生成された場合は当該第２の合成フレームを、前記第２の合成フレームが生成されていない場合は前記第１のフレームを出力する出力手段と、
を有する画像処理装置。
【請求項２】
前記取得手段は、記憶手段から前記追加画像データを取得するように構成される、
請求項１に記載の画像処理装置。
【請求項３】
前記追加画像データは、１つ以上の事前に配置されたグラフィック要素を含む第２のフレームである、
請求項１又は２に記載の画像処理装置。
【請求項４】
各ユーザのためのカスタマイズ情報を受け付ける受付手段をさらに有し、
前記取得手段は、前記受け付けたカスタマイズ情報に従って前記追加画像データを取得するように構成される、
請求項１から３のいずれか１項に記載の画像処理装置。
【請求項５】
ユーザのための前記カスタマイズ情報は、当該ユーザのための前記追加画像データの識別子と前記追加画像データの挿入時刻に関する情報との少なくとも１つを含む、
請求項４に記載の画像処理装置。
【請求項６】
前記映像データストリームはビデオゲームに関し、前記追加画像データの前記識別子は前記ビデオゲームの状況に基づいて決定される、
請求項５に記載の画像処理装置。
【請求項７】
前記挿入時刻に関する情報は、前記追加画像データが前記第１のフレームと合成される時刻、又は前記取得手段によって前記追加画像データが取得される時刻を指定する、
請求項５に記載の画像処理装置。
【請求項８】
前記映像データストリームはビデオゲームに関し、前記挿入時刻は、前記ビデオゲームの状況に応じて決定される、
請求項５から７のいずれか１項に記載の画像処理装置。
【請求項９】
前記取得手段は、前記追加画像データとして１つ以上のグラフィック要素を取得するように構成され、前記合成手段は、前記第１のフレーム内で前記１つ以上のグラフィック要素のそれぞれを配置することによって、合成フレームを生成するように構成される、
請求項１又は２に記載の画像処理装置。
【請求項１０】
前記合成手段は、前記１つ以上のグラフィック要素のそれぞれが前記第１のフレーム内において配置される位置とサイズとの少なくともいずれかを制御するように構成される、
請求項９に記載の画像処理装置。
【請求項１１】
前記合成手段は、前記１つ以上のグラフィック要素の少なくとも１つが前記第１のフレーム内において配置される所望の位置とサイズとの少なくともいずれかを指定するパラメータセットを受信し、前記所望の位置とサイズとの少なくともいずれかに従って、前記１つ以上のグラフィック要素のそれぞれが前記第１のフレーム内に配置される前記位置と前記サイズとの少なくともいずれかを制御する、
請求項１０に記載の画像処理装置。
【請求項１２】
前記１つ以上のグラフィック要素のそれぞれが前記第１のフレーム内で配置される前記位置と前記サイズとの少なくともいずれかは、時間に応じて変化する、
請求項１０又は１１に記載の画像処理装置。
【請求項１３】
前記パラメータセットは、前記１つ以上のグラフィック要素が前記合成フレームにおいてどのように表現されるかを示す、当該１つ以上のグラフィック要素の少なくとも１つの特性品質をさらに指定する、
請求項１１に記載の画像処理装置。
【請求項１４】
前記特性品質は、フォント、レイアウト、形状、及び色の少なくとも１つを含む、
請求項１３に記載の画像処理装置。
【請求項１５】
各ユーザのためのカスタマイズ情報を受け付ける受付手段をさらに有し、
前記取得手段は、前記受け付けたカスタマイズ情報に従って前記１つ以上のグラフィック要素を取得するように構成される、
請求項９から１４のいずれか１項に記載の画像処理装置。
【請求項１６】
前記合成手段は、前記描画手段が前記第１のフレームを描画する際に基づく描画命令セットの一部として前記パラメータセットを受信するように構成される、
請求項１１、１３又は１４に記載の画像処理装置。
【請求項１７】
前記第１のフレームを解析することにより、前記パラメータセットを生成するパラメータ生成手段をさらに有する、
請求項１１、１３又は１４に記載の画像処理装置。
【請求項１８】
請求項１から１７のいずれか１項に記載の画像処理装置と前記第１のフレームを描画する描画手段とを含む、
画像処理システム。
【請求項１９】
画像を処理する方法であって、
描画手段によって描画されると共に映像データストリームに含まれる第１のフレームを取得し、
第１のユーザと第２のユーザとの少なくともいずれかのための追加画像データを取得し、
前記第１のフレームと前記第１のユーザのための前記追加画像データとを組み合わせることによる前記第１のユーザのための第１の合成フレームと、前記第１のフレームと前記第２のユーザのための前記追加画像データとを組み合わせることによる前記第２のユーザのための第２の合成フレームと、の少なくともいずれかを生成し、
前記第１のユーザのために、前記第１の合成フレームが生成された場合には前記第１の合成フレームを、前記第１の合成フレームが生成されていない場合には前記第１のフレームを、出力し、
前記第２のユーザのために、前記第２の合成フレームが生成された場合には前記第２の合成フレームを、前記第２の合成フレームが生成されていない場合には前記第１のフレームを、出力する、
方法。
【請求項２０】
計算エンティティによって実行されるときに、当該計算エンティティに方法を実行させるコンピュータ可読命令を有するコンピュータ可読媒体であって、前記方法は、
描画手段によって描画されると共に映像データストリームに含まれる第１のフレームを取得することと、
第１のユーザと第２のユーザとの少なくともいずれかのための追加画像データを取得することと、
前記第１のフレームと前記第１のユーザのための前記追加画像データとを組み合わせることによる前記第１のユーザのための第１の合成フレームと、前記第１のフレームと前記第２のユーザのための前記追加画像データとを組み合わせることによる前記第２のユーザのための第２の合成フレームと、の少なくともいずれかを生成することと、
前記第１のユーザのために、前記第１の合成フレームが生成された場合には前記第１の合成フレームを、前記第１の合成フレームが生成されていない場合には前記第１のフレームを、出力することと、
前記第２のユーザのために、前記第２の合成フレームが生成された場合には前記第２の合成フレームを、前記第２の合成フレームが生成されていない場合には前記第１のフレームを、出力することと、
を含むコンピュータ可読媒体。
【請求項２１】
画像の系列を表す初期フレームのセットを描画する描画手段と、
複数のユーザのそれぞれのためのカスタマイズ情報を受信し、前記初期フレームのセットを変形して出力フレームの複数のセットを生成するカスタマイズ手段と、
を有し、
出力フレームの各セットは、前記ユーザのそれぞれのための前記カスタマイズ情報に基づいて、当該ユーザのためにカスタマイズされた画像の系列を表す、
画像処理装置。
【請求項２２】
請求項２１に記載の画像処理装置と、描画命令を生成する描画命令生成手段とを有する画像処理システムであって、
前記描画手段は、前記描画命令に従って前記初期フレームのセットを描画するように構成される、
ことを特徴とする画像処理システム。
【請求項２３】
画像を処理する方法であって、
画像の系列を表す初期フレームのセットを描画し、
複数のユーザのそれぞれのためのカスタマイズ情報を受信し、
前記初期フレームのセットを変形して出力フレームの複数のセットを生成し、
出力フレームの各セットは、前記ユーザのそれぞれのための前記カスタマイズ情報に基づいて、当該ユーザのためにカスタマイズされた画像の系列を表す、
方法。
【請求項２４】
計算エンティティによって実行されるときに、当該計算エンティティに方法を実行させるコンピュータ可読命令を有するコンピュータ可読媒体であって、前記方法は、
画像の系列を表す初期フレームのセットを描画することと、
複数のユーザのそれぞれのためのカスタマイズ情報を受信することと、
前記初期フレームのセットを変形して出力フレームの複数のセットを生成することと、
を含み、
出力フレームの各セットは、前記ユーザのそれぞれのための前記カスタマイズ情報に基づいて、当該ユーザのためにカスタマイズされた画像の系列を表す、
コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、画像処理技術に関し、具体的には、複数のユーザのそれぞれのためのパーソナライズされた動画データストリームを生成するための、装置、システム及び方法に関する。
【背景技術】
【０００２】
ビデオゲーム産業は、スタンドアロン型アーケードゲームの導入から、家庭用コンピュータゲーム、専門コンソール用に作られたゲームの出現まで、目覚ましい発展が見受けられる。そして、インターネットへの一般からのアクセスの広がりは、さらなる主要な発展、即ち「クラウドゲーミング」につながった。クラウド型ゲーミングシステムでは、プレイヤはインターネットを介してビデオゲームサーバに接続するスマートフォンやタブレットのような、一般的なインターネット対応電子機器を使用することが可能である。ビデオゲームサーバは、プレイヤについてセッションを開始し、複数のプレイヤについてそのようにしてもよい。ビデオゲームサーバは、プレイヤ行動（例えば移動、選択）及びゲームについての他の属性に基づいて、プレイヤについての映像データを描画し、音声を生成する。符号化された映像及び音声は、インターネットを介してプレイヤの機器に配信され、視聴可能な画像及び音声として再生される。このようにして、世界中のあらゆる場所のプレイヤは、専用のビデオゲームコンソール、計算集約型ソフトウェアまたは専用の描画処理ハードウェアを使用せずに、ビデオゲームをプレイすることができる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
従来のクラウドコンピューティングの実装においては、異なるプレイヤに対してインターネットを介して送信される異なる画像は、異なる描画命令のセットから生成される。すなわち、画像のプレイヤごとの任意のカスタマイズは、描画命令又はそれらの描画命令がアクセスするリソースを変更することによって、描画の前に行われる。したがって、基本的に同じ画像に対して、プレイヤごとにマイナーな変更のみが要求される場合であっても、従来のアプローチは、サーバに対して不釣合いな計算の負担を加えうる。また、従来のプレイヤごとのカスタマイズは、オリジナルのビデオゲームコードへのアクセスがない場合には可能でありえなかった。したがって、上述の不十分な点のうちの１つ以上に対応する改善が要求されている。
【課題を解決するための手段】
【０００４】
本発明の一態様によれば、描画手段によって描画されると共に映像データストリームに含まれる第１のフレームを取得すると共に、第１のユーザと第２のユーザとの少なくともいずれかのための追加画像データとを取得する取得手段と、前記第１のフレームと前記第１のユーザのための前記追加画像データとを組み合わせることによる第１の合成フレームと、前記第１のフレームと前記第２のユーザのための前記追加画像データとを組み合わせることによる第２の合成フレームと、の少なくともいずれかを生成する合成手段と、前記第１のユーザのために、前記第１の合成フレームが生成された場合は当該第１の合成フレームを、前記第１の合成フレームが生成されていない場合は前記第１のフレームを出力し、前記第２のユーザのために、前記第２の合成フレームが生成された場合は当該第２の合成フレームを、前記第２の合成フレームが生成されていない場合は前記第１のフレームを出力する出力手段と、を有する画像処理装置が提供される。
【０００５】
本発明の一態様によれば、画像の系列を表す初期フレームのセットを描画する描画手段と、複数のユーザのそれぞれのためのカスタマイズ情報を受信し、前記初期フレームのセットを変形して出力フレームの複数のセットを生成するカスタマイズ手段と、を有し、出力フレームの各セットは、前記ユーザのそれぞれのための前記カスタマイズ情報に基づいて、当該ユーザのためにカスタマイズされた画像の系列を表す、画像処理装置が提供される。
【０００６】
さらに、本発明の特徴は、添付の図面を参照して、以下の例示的な実施形態の説明により明らかになるだろう。
【図面の簡単な説明】
【０００７】
【図１Ａ】本発明の非限定的な実施形態に係る、サーバシステムを含むクラウド型ビデオゲームシステムアーキテクチャのブロック図。
【図１Ｂ】本発明の非限定的な実施形態に係る、ゲームプレイの間のデータネットワークを介した一連のクライアント機器とのインタラクションを示した、図１Ａのクラウド型ビデオゲームシステムアーキテクチャのブロック図。
【図２Ａ】本発明の非限定的な実施形態に係る、図１のアーキテクチャの様々な物理的構成要素を示したブロック図。
【図２Ｂ】図２Ａの変形例を示す図。
【図２Ｃ】図２Ａ及び２Ｂの物理的構成要素により実現され得ると共にゲームプレイの間に動作可能でありうる、図１のアーキテクチャにおけるサーバシステムの様々なモジュールを示したブロック図。
【図３Ａ】、
【図３Ｂ】、
【図３Ｃ】本発明の非限定的な実施形態に係る、描画命令生成部によって実行される一連のビデオゲーム処理の実行を示したフローチャート。
【図４Ａ】、
【図４Ｂ】本発明の非限定的な実施形態に係る、受信した映像及び音声の各々を処理するためのクライアント機器の動作を示したフローチャート。
【図５Ａ】本発明の第１の非限定的な実施形態に係る、描画部を示すブロック図。
【図５Ｂ】図５Ａの描画部による、プライマリフレームと補助フレームとからの合成フレームの生成を示す図。
【図６Ａ】本発明の第２の非限定的な実施形態に係る、描画部を示すブロック図。
【図６Ｂ】図６Ａの描画部による、プライマリフレームと補助フレームとからの合成フレームの生成を示す図。
【図７】本発明の第３の非限定的な実施形態に係る、描画部を示すブロック図。
【図８】本発明の第４の非限定的な実施形態に係る、描画部を示すブロック図。
【図９】本発明の第５の非限定的な実施形態に係る、描画部を示すブロック図。
【図１０】描画部の様々な要素がどのように描画サーバと計算サーバとの少なくともいずれかにおいて実装されうるかを概念的に示す図。
【図１１】描画部のその時点で置かれた動作環境におけるブロック図。
【図１２】本発明の非限定的な実施形態に係る、クライアント機器を示す図。  説明及び図面は本発明のある実施形態の説明のためだけのものであり理解を助けるためのものであることが明確に理解されるべきである。それらは、本発明の限界を定めることが意図されたものではない。
【発明を実施するための形態】
【０００８】
クラウド型システムのアーキテクチャ
図１Ａは、本発明の非限定的な実施形態に係るクラウド型システムのアーキテクチャを概略的に示している。本アーキテクチャは、インターネット１３０等のデータネットワークを介してサーバシステム１００等の情報処理装置に接続された、クライアント機器１２０n（１≦ｎ≦Ｎであり、Ｎはビデオゲームに参加しているユーザの数を表す。）を含みうる。Ｎ（クラウド型システムアーキテクチャにおけるクライアント機器の数）は特に限定されないことが理解されるべきである。
【０００９】
サーバシステム１００は、クライアント機器の複数のユーザが同時に参加することが可能な仮想空間を提供する。いくつかの場合、この仮想空間は、ビデオゲームを表現してもよく、他の場合には、通信を補助し、又は通信に対するユーザ体験を改善するためのツールとして用いられる仮想的なエフェクトを提供しうる。各ユーザは、その空間内で、その空間内に位置する対応するアバターを操作し、動かすことができる。ユーザが仮想空間内でアバターを操作すると、そのユーザのクライアント機器に、その空間において設定された視点に対する画面が提供される。その視点は、予め設定された固定視点のなかから選択されてもよいし、ユーザによって選択的に変更可能であってもよいし、ユーザによるアバターでの動作（回転）の操作に従って変更されるものであってもよい。
【００１０】
クライアント機器１２０n（１≦ｎ≦Ｎ）の構成は具体的には限定されない。いくつかの実施形態では、１つ以上のクライアント機器１２０n（１≦ｎ≦Ｎ）は、パーソナルコンピュータ（ＰＣ）、ホームゲーム機（コンソール）、ポータブルゲーム機、スマートテレビ、セットトップボックス（ＳＴＢ）などによって具現化されうる。他の実施形態では、１つ以上のクライアント機器１２０n（１≦ｎ≦Ｎ）は、携帯電話、パーソナルデジタルアシスタント（ＰＤＡ）又はタブレットなどの、通信又は計算機器でありうる。
【００１１】
図１２に、本発明の非限定的な実施形態による、クライアント機器１２０n（１≦ｎ≦Ｎ）の一般的構成を示す。クライアントＣＰＵ１２０１は、クライアント機器１２０n（１≦ｎ≦Ｎ）に備えられるブロック／モジュールの動作を制御しうる。クライアントＣＰＵ１２０１は、クライアント記憶媒体１２０２に記憶されたブロックのための動作プログラムを読み出して、クライアントＲＡＭ１２０３に展開し、それらを実行することにより、ブロックの動作を制御しうる。クライアント記憶媒体１２０２は、ＨＤＤ、不揮発性ＲＯＭなどでありうる。また、動作プログラムは、専用のアプリケーション、ブラウジングアプリケーションなどでありうる。クライアントＲＡＭ１２０３は、プログラムの展開領域であることに加えて、ブロックのいずれかの動作における中間データ出力などのようなものを一時的に記憶する記憶領域としても使用されうる。
【００１２】
クライアント通信部１２０４は、クライアント機器１２０nに備えられた通信インタフェースでありうる。ある実施形態では、クライアント通信部１２０４は、インターネット１３０を介して、情報処理装置（サーバシステム１００）から提供されるサービスの符号化された画面データを受信しうる。また、反対方向の通信において、クライアント通信部１２０４は、クライアント機器１２０nのユーザによってなされた動作入力に関する情報を、インターネット１３０を介して、情報処理装置（サーバシステム１００）へ送信しうる。クライアント復号部１２０５は、クライアント通信部１２０４によって受信された、符号化された画像データを復号し、画面データを生成しうる。生成された画面データは、クライアントディスプレイ１２０６に出力されて表示されることにより、クライアント機器１２０nのユーザに提示される。なお、クライアント機器はクライアントディスプレイ１２０６を有している必要はなく、クライアントディスプレイ１２０６はクライアント機器に接続される外部表示装置であってもよい。
【００１３】
クライアント入力部１２０７は、クライアント機器１２０nに備えられたユーザインタフェースでありうる。クライアント入力部１２０７は、（タッチスクリーン、キーボード、ゲームコントローラ、ジョイスティックなどのような）入力機器を含み、ユーザによる動作入力を検出しうる。検出された動作入力に対して、集約されたデータが、クライアント通信部１２０４を介して、サーバシステム１００へ送信されてもよく、特定の動作入力が動作内容を解析した後に実行されたことを示す情報として送信されてもよい。また、クライアント入力部１２０７は、カメラなどを含みうる、特定のオブジェクトの動き又はユーザによってなされた体の動きを動作入力として検出する他のセンサ（例えばKinect（商標））を含んでもよい。さらに、クライアント機器１２０nは、音声を出力するためのスピーカを含んでもよい。
【００１４】
ここで図１Ａに戻り、クライアント機器１２０n（１≦ｎ≦Ｎ）の各々は、各々のローカルアクセスネットワーク（不図示）を介することを含む、あらゆる好適な方式でインターネット１３０に接続しうる。また、サーバシステム１００は、ローカルアクセスネットワーク（不図示）を介してインターネット１３０に接続してもよいが、サーバシステム１００はローカルアクセスネットワークの媒介なく、インターネット１３０と直接接続してもよい。クラウドゲーミングサーバシステム１００と１以上のクライアント機器１２０n（１≦ｎ≦Ｎ）との間の接続は、１つ以上のチャネルを含んでいてもよい。これらのチャネルは、物理的及び／または論理的リンクによって構成されていてもよく、無線周波数、光ファイバ、光空間（free-space optical）、同軸ケーブル、及びツイストペアを含む様々な物理的媒体を伝搬してもよい。チャネルは、ＵＤＰやＴＣＰ／ＩＰのようなプロトコルに従ってもよい。また、１つ以上のチャネルが、仮想プライベートネットワーク（ＶＰＮ）でサポートされていてもよい。いくつかの実施形態では、１つ以上の接続はセッションベースでなされてもよい。
【００１５】
サーバシステム１００は、クライアント機器１２０n（１≦ｎ≦Ｎ）のユーザが、ビデオゲームを個々に（即ち、シングルプレイヤ用ビデオゲーム）または集団で（即ち、マルチプレイヤ用ビデオゲーム）プレイすることが可能としうる。また、サーバシステム１００は、クライアント機器１２０n（１≦ｎ≦Ｎ）のユーザが、他のユーザによってプレイされているゲームを観戦する（ゲームに観戦者として参加する）ことを可能とし得る。ビデオゲームの非限定的な例は、レジャー、教育及び／またはスポーツについてプレイされるゲームを含みうる。しかし、ビデオゲームは貨幣損益の可能性をユーザに提示する必要はない。
【００１６】
また、サーバシステム１００は、クライアント機器１２０n（１≦ｎ≦Ｎ）のユーザが、ビデオゲームのテストと、サーバシステム１００の管理との少なくともいずれかを行うことを可能とし得る。
【００１７】
サーバシステム１００は、場合によっては１つ以上のゲームサーバを含む１つ以上の計算リソースを含んでもよく、場合によってはユーザ（参加者）データベース１０を含む１つ以上のデータベースを含み、又はデータベースにアクセスしてもよい。ユーザデータベース１０は、識別データ、財務データ、位置データ、人口動態データ、接続データなどのような、様々なユーザ及びクライアント機器１２０n（１≦ｎ≦Ｎ）についていのアカウント情報を記憶しうる。ゲームサーバは、共通のハードウェアによって具現化されてもよいし、通信リンクを介して、場合によってはインターネット１３０を介することを含んで、接続される異なるサーバであってもよい。同様に、データベースは、サーバシステム１００内に統合されてもよいし、通信リンクを介して、場合によってはインターネット１３０を介して、そこに接続されてもよい。
【００１８】
サーバシステム１００は、ゲームプレイの前などのゲーム環境外でのクライアント機器１２０n（１≦ｎ≦Ｎ）とのインタラクションを処理するための管理アプリケーションを実行しうる。例えば、管理アプリケーションは、クライアント機器１２０n（１≦ｎ≦Ｎ）の１つのユーザを、（「プレイヤ」「観戦者」、「管理者」又は「試験者」などの）ユーザクラスに登録し、インターネットを介してユーザの接続性を追跡し、いくつかの非限定的な機能のうち、ゲームのインスタンスの開始、参加、退出、又は終了を行うためのユーザの命令に応答するように構成されうる。この目的を達成するために、管理アプリケーションは、ユーザデータベース１０にアクセスする必要がありうる。
【００１９】
いくつかの非限定的な可能性を挙げると、管理アプリケーションは、「プレイヤ」「観戦者」、「管理者」又は「試験者」を含みうる異なるユーザクラスのユーザと別に相互作用しうる。したがって、例えば、管理アプリケーションは、プレイヤ（すなわち、「プレイヤ」ユーザクラスにおけるユーザ）がユーザデータベース１０においてアカウントを設定し、プレイするビデオゲームを選択することを可能とするように、そのプレイヤとインタフェースを取りうる。この選択に従って、管理アプリケーションは、サーバ側のビデオゲームアプリケーションを起動しうる。サーバ側のビデオゲームアプリケーションは、プレイヤがビデオゲームの仮想世界の中でキャラクタ、アバター、レーシングカー、コクピットなどを制御することを可能とする、プレイヤのためのモジュールのセットを実行するコンピュータ可読命令によって定義されうる。マルチプレイヤ用ビデオゲームの場合、仮想世界は、２人以上のプレイヤによって共有されてもよく、１人のプレイヤのゲームプレイは、他のゲームプレイに影響を与えうる。別の例では、管理アプリケーションは、観戦者（すなわち、「観戦者」ユーザクラスのユーザ）がユーザデータベース１０においてアカウントを設定し、ユーザが観戦することを望みうる実行中のビデオゲームのリストからビデオゲームを選択することを可能とするように、その観戦者とインタフェースを取りうる。この選択に従って、管理アプリケーションは、その観戦者が他のユーザのゲームプレイを観戦することはできるが、ゲーム内のアクティブキャラクタを制御することはできないようにする、その観戦者のためのモジュールのセットを起動しうる。（特段の表示がない限り、用語「ユーザ」が用いられる場合は、「プレイヤ」ユーザクラスと「観戦者」ユーザクラスとの両方に等しく適用することが意図されている）。さらなる例では、管理アプリケーションは、管理者（すなわち、「管理者」ユーザクラスのユーザ）が、ゲームサーバアプリケーションの様々な特徴を変更し、更新を実行し、プレイヤ／観戦者アカウントを管理することを可能とするように、その管理者とインタフェースを取りうる。
【００２０】
またさらなる例では、ゲームサーバアプリケーションは、試験者（すなわち、「試験者」ユーザクラスのユーザ）が、テスト対象のビデオゲームを選択することを可能とするために、その試験者とインタフェースを取りうる。この選択に従って、ゲームサーバアプリケーションは、試験者がビデオゲームをテストすることを可能とする、試験者のためのモジュールのセットを起動しうる。
【００２１】
図１Ｂは、「プレイヤ」又は「観戦者」ユーザクラスのユーザのために、ゲームプレイの間にクライアント機器１２０n（１≦ｎ≦Ｎ）とサーバシステム１００との間で行われるインタラクションを示している。
【００２２】
いくつかの非限定的な実施形態では、サーバ側のビデオゲームアプリケーションは、クライアント機器１２０n（１≦ｎ≦Ｎ）などのクライアント機器で実行するコンピュータ可読命令のセットによって定義されうる、クライアント側のビデオゲームアプリケーションと協働しうる。クライアント側のビデオゲームアプリケーションの使用は、ユーザがゲームをプレイし又は観戦し、ゲームの特徴にアクセスするための、カスタム化されたインタフェースを与えうる。他の非限定的な実施形態では、クライアント機器は、クライアント機器によって直接実行可能なクライアント側のビデオゲームアプリケーションを特徴とはしない。むしろ、クライアント機器の観点からは、インタフェースとしてウェブブラウザを用いうる。ウェブブラウザは、サーバ側のビデオゲームアプリケーションとのインタラクションを最適化するために、それ自身、それ自身のソフトウェア環境内でクライアント側のビデオゲームアプリケーションのインスタンスを作成しうる
所与のクライアント機器において（独立して、又はブラウザ内で）作動しているクライアント側のビデオゲームアプリケーションは、受け取ったユーザ入力と、検出したユーザ動作とを、インターネット１３０を介してクラウドゲーミングサーバシステム１００へ送信されうる「クライアント機器入力」に変換しうる。
【００２３】
図１Ｂの図示されている実施形態では、クライアント機器１２０n（１≦ｎ≦Ｎ）は、それぞれ、クライアント機器入力１４０n（１≦ｎ≦Ｎ）を生成しうる。サーバシステム１００は、様々なクライアント機器１２０n（１≦ｎ≦Ｎ）から受信したクライアント機器入力１４０n（１≦ｎ≦Ｎ）を処理し、その様々なクライアント機器１２０n（１≦ｎ≦Ｎ）のための「メディア出力」１５０n（１≦ｎ≦Ｎ）を生成しうる。メディア出力１５０n（１≦ｎ≦Ｎ）は、符号化された（画面に表示されるときの画像を表す）映像データ及び（スピーカを介して再生されるときの音を表す）音声を含みうる。メディア出力１５０n（１≦ｎ≦Ｎ）は、パケットの形でインターネット１３０を介して送信されうる。クライアント機器１２０n（１≦ｎ≦Ｎ）の特定の１つに向けられたパケットは、インターネット１３０を介してその装置にルーティングされるような方法でアドレスされうる。クライアント機器１２０n（１≦ｎ≦Ｎ）の各々は、クラウドゲーミングサーバシステム１００から受信したパケット内のメディア出力をバッファして処理するための回路、画像を表示するためのディスプレイ、及び音声を出力するための振動子（例えばスピーカ）を含みうる。また、動作を誘導するための電気機械システム等の追加の出力装置が提供されてもよい。
【００２４】
映像データのストリームは「フレーム」に分割されうることが理解されるべきである。ここで使用される用語「フレーム」は、映像データのフレーム間及びその映像データによって表される画像間の１対１の対応関係の存在を必要としない。すなわち、映像データのフレームが、個別の表示画像を表すデータを全部含むことができる一方で、映像データのフレームは、ある画像の一部のみを表すデータを含むことができ、その画像を適切に再生して表示するために２つ以上のフレームを必要とすることも可能である。同様に、映像データのフレームは、Ｍ＜Ｎであるときに、Ｍ個のフレームを用いてＮ個の画像を表し得るように、１つより多くの完全な画像を表すデータを含んでもよい。
【００２５】
クラウドゲーミングサーバシステム１００（分散型アーキテクチャ）
図２Ａは、クラウドゲーミングサーバシステム１００の構成要素の、１つのとり得る非限定的な物理的構成を示している。本実施形態では、クラウドゲーミングサーバシステム１００の個々のサーバが、専用の機能を実行するよう構成されうる。例えば、計算サーバ２００Ｃは、ユーザ入力に基づいてビデオゲーム内の状態変化の追跡についての役割を担いうる一方で、描画サーバ２００Ｒは、グラフィック（映像データ）の描画についての役割を担いうる。
【００２６】
クライアント機器１２０n（１≦ｎ≦Ｎ）のユーザは、プレイヤまたは観戦者でありうる。いくつかのケースでは１人のプレイヤと観戦者なしであってもよく、一方で別のケースでは複数のプレイヤと１人の観戦者が存在してもよく、さらに別のケースでは１人のプレイヤと複数の観戦者があってもよく、さらなる他のケースでは複数のプレイヤと複数の観戦者が存在してもよいことが理解されるべきである。
【００２７】
簡単のため、以下の説明では単一の描画サーバ２００Ｒに単一の計算サーバ２００Ｃが接続されているものとする。しかしながら、同一の計算サーバ２００Ｃに接続された１つより多くの描画サーバ２００Ｒ、または、同一の描画サーバ２００Ｒに接続された１つより多くの計算サーバ２００Ｃがあってもよいことが理解されるべきである。複数の描画サーバ２００Ｒが存在する場合、これらは、あらゆる適切な地理的領域に分散されうる。
【００２８】
図２Ａの構成要素の非限定的な物理的構成に示されるように、計算サーバ２００Ｃは、１つ以上の中央演算装置（ＣＰＵ）２２０Ｃ、２２２Ｃ及びランダムアクセスメモリ（ＲＡＭ）２３０Ｃを有しうる。ＣＰＵ２２０Ｃ、２２２Ｃは、例えば通信バスアーキテクチャを介してＲＡＭ２３０Ｃにアクセス可能である。２つのＣＰＵ２２０Ｃ、２２２Ｃのみが示されているが、計算サーバ２００Ｃのいくつかの実装例では、より多数のＣＰＵまたは単一のＣＰＵのみが提供されてもよいことが理解されるべきである。また、計算サーバ２００Ｃは、ビデオゲームに参加しているクライアント機器の各々から、インターネット１３０を介してクライアント機器入力を受信するための受信器を有する。ここで説明される例示の実施形態では、クライアント機器１２０n（１≦ｎ≦Ｎ）は、ビデオゲームに参加しているものとし、従って、受信されるクライアント機器入力には、クライアント機器入力１４０n（１≦ｎ≦Ｎ）が含まれうる。非限定的な実施形態において、受信器は、ネットワークインタフェース要素（ＮＩＣ）２１０Ｃ２でありうる。
【００２９】
計算サーバ２００Ｃは、さらに、描画命令２０４mのセットを出力する送信器を有しうる。ここで、１≦ｍ≦Ｍである。計算サーバ２００Ｃから出力される描画命令２０４m（１≦ｍ≦Ｍ）のセットは、描画サーバ２００Ｒへ送信されうる。非限定的な実施形態において、送信器は、ネットワークインタフェース要素（ＮＩＣ）２１０Ｃ１によって具現化されうる。ある実施形態では、計算サーバ２００Ｃは、描画サーバ２００Ｒに、直接、接続されうる。他の実施形態では、計算サーバ２００Ｃは、インターネット１３０又は他のネットワークでありうるネットワーク２６０を介して、描画サーバ２００Ｒに接続されうる。仮想プライベートネットワーク（ＶＰＮ）が、ネットワーク２６０を介して計算サーバ２００Ｃと描画サーバ２００Ｒとの間に確立されてもよい。
【００３０】
描画サーバ２００Ｒにおいて、計算サーバ２００Ｃにより送信された描画命令２０４m（１≦ｍ≦Ｍ）のセットは、（ネットワークインタフェース要素（ＮＩＣ）２１０Ｒ１によって実装されうる）受信器において受信されてもよく、１つ以上のＣＰＵ２２０Ｒ、２２２Ｒに導かれうる。ＣＰＵ２２０Ｒ、２２２Ｒは、グラフィック処理装置（ＧＰＵ）２４０Ｒ、２５０Ｒに接続されうる。非限定的な例として、ＧＰＵ２４０Ｒは、ＧＰＵコア２４２Ｒのセット及びビデオランダムアクセスメモリ（ＶＲＡＭ）２４６Ｒを含んでもよい。同様に、ＧＰＵ２５０ＲはＧＰＵコア２５２Ｒのセット及びビデオランダムアクセスメモリ（ＶＲＡＭ）２５６Ｒを含んでもよい。ＣＰＵ２２０Ｒ、２２２Ｒの各々は、ＧＰＵ２４０Ｒ、２５０Ｒの各々に接続されていてもよいし、ＧＰＵ２４０Ｒ、２５０Ｒのサブセットに接続されていてもよい。ＣＰＵ２２０Ｒ、２２２ＲとＧＰＵ２４０Ｒ、２５０Ｒとの間の通信は、例えば通信バスアーキテクチャを用いて確立されうる。２つのＣＰＵ及び２つのＧＰＵのみが示されるが、描画サーバ２００Ｒの実装の特定の例においては、描画サーバ２００Ｒの特定の実装例では、２つより多くのＣＰＵ及びＧＰＵがあってもよいし、単一のＣＰＵまたはＧＰＵだけがあってもよい。
【００３１】
ＣＰＵ２２０Ｒ、２２２Ｒは、描画命令２０４m（１≦ｍ≦Ｍ）のセットを、、グラフィック出力ストリーム２０６n（１≦ｎ≦Ｎ）に変換するために、ＧＰＵ２４０Ｒ、２５０Ｒと協働しうる。。ここで、１≦ｎ≦Ｎであり、Ｎはビデオゲームに参加しているユーザ（又はクライアント機器）の数を表す。具体的には、クライアント機器１２０n（１≦ｎ≦Ｎ）のそれぞれについての、Ｎ個のグラフィック出力ストリーム２０６n（１≦ｎ≦Ｎ）がありうる。このことのさらなる詳細については後述する。描画サーバ２００Ｒは、さらに、（ネットワークインタフェース要素（ＮＩＣ）２１０Ｒ２によって実装されうる）送信器を有してもよく、この送信器を介してグラフィック出力ストリーム２０６n（１≦ｎ≦Ｎ）がそれぞれクライアント機器１２０n（１≦ｎ≦Ｎ）に送信されうる。
【００３２】
クラウドゲーミングサーバシステム１００（ハイブリッドアーキテクチャ）
図２Ｂは、クラウドゲーミングサーバシステム１００の構成要素の、第２のとり得る非限定的な物理的構成を示している。本実施形態では、ハイブリッドサーバ２００Ｈが、ユーザ入力に基づくビデオゲーム内の状態変化の追跡と、グラフィック（映像データ）の描画と、の両方の役割を担いうる。
【００３３】
図２Ｂの構成要素の非限定的な物理的構成に示されるように、ハイブリッドサーバ２００Ｈは、１つ以上の中央演算装置（ＣＰＵ）２２０Ｈ、２２２Ｈ及びランダムアクセスメモリ（ＲＡＭ）２３０Ｈを有しうる。ＣＰＵ２２０Ｈ、２２２Ｈは、例えば通信バスアーキテクチャを介してＲＡＭ２３０Ｈにアクセスしうる。２つのＣＰＵ２２０Ｈ、２２２Ｈのみが示されているが、ハイブリッドサーバ２００Ｈのいくつかの実装例において、より多数のＣＰＵまたは単一のＣＰＵのみが提供されてもよいことが理解されるべきである。またハイブリッドサーバ２００Ｈは、ビデオゲームに参加するクライアント機器の各々からインターネット１３０を介して受け取られるクライアント機器入力を受信するための受信器を有しうる。ここで説明される例示の実施形態では、クライアント機器１２０n（１≦ｎ≦Ｎ）は、ビデオゲームに参加しているものとし、したがって、受信されるクライアント機器入力は、クライアント機器入力１４０n（１≦ｎ≦Ｎ）を含んでもよい。非限定的な実施形態において、受信器は、ネットワークインタフェース要素（ＮＩＣ）２１０Ｈによって実装されうる。
【００３４】
また、ＣＰＵ２２０Ｈ、２２２Ｈは、描画処理装置（ＧＰＵ）２４０Ｈ、２５０Ｈに接続されうる。非限定的な例では、ＧＰＵ２４０Ｈは、ＧＰＵコア２４２のセット及びビデオランダムアクセスメモリ（ＶＲＡＭ）２４６Ｈを含んでいてもよい。同様に、ＧＰＵ２５０Ｈは、ＧＰＵコア２５２Ｈのセット及びビデオランダムアクセスメモリ（ＶＲＡＭ）２５６Ｈを含んでいてもよい。ＣＰＵ２２０Ｈ、２２２Ｈの各々は、ＧＰＵ２４０Ｈ、２５０Ｈの各々またはＧＰＵ２４０Ｈ、２５０Ｈのサブセットに接続されうる。ＣＰＵ２２０Ｈ、２２２ＨとＧＰＵ２４０Ｈ、２５０Ｈとの通信は、例えば通信バスアーキテクチャを用いて確立されうる。２つのＣＰＵと２つのＧＰＵのみが示されているが、ハイブリッドサーバ２００Ｈの特定の実装例では、２つより多くのＣＰＵがあってもよいし、単一のＣＰＵまたはＧＰＵのみがあってもよい。
【００３５】
描画命令２０４m（１≦ｍ≦Ｍ）のセットを、グラフィック出力ストリーム２０６n（１≦ｎ≦Ｎ）に変換するために、ＣＰＵ２２０Ｈ、２２２ＨはＧＰＵ２４０Ｈ、２５０Ｈと協働しうる。具体的には、それぞれ、参加しているクライアント機器１２０n（１≦ｎ≦Ｎ）のための、Ｎ個のグラフィック出力ストリーム２０６n（１≦ｎ≦Ｎ）が存在しうる。グラフィック出力ストリーム２０６n（１≦ｎ≦Ｎ）は、非限定的な実施形態においてＮＩＣ２１０Ｈによって少なくとも部分的に実装されうる送信器を介して、クライアント機器１２０n（１≦ｎ≦Ｎ）に送信されうる。
【００３６】
クラウドゲーミングサーバシステム１００（機能概要）
ゲームプレイの間、サーバシステム１００は、一連のモジュールから成り得る、サーバ側のビデオゲームアプリケーションを実行する。図２Ｃを参照すると、これらのモジュールには、描画命令生成部２７０、描画部２８０、及び、映像符号化器２８５が含まれうる。これらのモジュールは、上述した計算サーバ２００Ｃと描画サーバ２００Ｒ（図２Ａ）及び／またはハイブリッドサーバ２００Ｈ（図２Ｂ）の物理的構成要素によって実装されうる。例えば、図２Ａの非限定的な実施形態によれば、描画命令生成部２７０は計算サーバ２００Ｃにより実現されてもよく、描画部２８０及び映像符号化器２８５は描画サーバ２００Ｒにより実現されうる。図２Ｂの非限定的な実施形態によれば、ハイブリッドサーバ２００Ｈは描画命令生成部２７０、描画部２８０、及び映像符号化器２８５を実現しうる。
【００３７】
本例示の実施形態は、図を簡略化するために単一の描画命令生成部２７０について議論する。しかしながら、クラウドゲーミングサーバシステム１００の実際の実装において、描画命令生成部２７０と同様の多くの描画命令生成部が平行して実行されうることが留意されるべきである。したがって、クラウドゲーミングサーバシステム１００は、同一のビデオゲームの複数の独立したインスタンス化または複数の異なるビデオゲームの同時のインスタンス化をサポートしうる。また、ビデオゲームは、あらゆる種類の１人プレイヤ用ビデオゲームまたはマルチプレイヤ用ゲームであってもよいことが理解されるべきである。
【００３８】
描画命令生成部２７０は、（図２Ａの）計算サーバ２００Ｃまたは（図２Ｂの）ハイブリッドサーバ２００Ｈの、所定の物理的構成要素により実現されてもよい。具体的には、描画命令生成部２７０は、（計算サーバ２００ＣのＣＰＵ２２０Ｃ、２２２Ｃやハイブリッドサーバ２００ＨのＣＰＵ２２０Ｈ、２２２Ｈのような）ＣＰＵにより実行可能なコンピュータ読み取り可能な命令として符号化されうる。本命令は、（計算サーバ２００Ｃの）ＲＡＭ２３０Ｃ若しくは（ハイブリッドサーバ２００Ｈの）ＲＡＭ２３０Ｈ、又は他の記憶領域に、描画命令生成部２７０により使用される定数、変数及び／または他のデータとともに、明白に（tangibly）格納されうる。いくつかの実施形態において、描画命令生成部２７０は、（計算サーバ２００ＣのＣＰＵ２２０Ｃ、２２２Ｃやハイブリッドサーバ２００ＨのＣＰＵ２２０Ｈ、２２２Ｈのような）ＣＰＵにより実行されているオペレーティングシステムがサポートしうる、バーチャルマシンの環境内で実行されてもよい。
【００３９】
描画部２８０は、（図２Ａの）描画サーバ２００Ｒまたは（図２Ｂの）ハイブリッドサーバ２００Ｈの、所定の物理的構成要素により実現されてもよい。ある実施形態では、描画部２８０は、１つ以上のＧＰＵ（図２Ａの２４０Ｒ、２５０Ｒ、図２Ｂの２４０Ｈ、２５０Ｈ）を擁してもよいし、ＣＰＵリソースを利用してもよいし利用しなくてもよい。
【００４０】
映像符号化器２８５は、（図２Ａの）描画サーバ２００Ｒまたは（図２Ｂの）ハイブリッドサーバ２００Ｈの所定の物理的構成要素により実現されうる。本技術分野に属する当業者は、映像符号化器２８５を実現する種々の手法があることを容易に理解するだろう。図２Ａの実施形態において、映像符号化器２８５は、ＣＰＵ２２０Ｒ、２２２Ｒ及び／またはＧＰＵ２４０Ｒ、２５０Ｒにより実現されうる。図２Ｂの実施形態では、映像符号化器２８５は、ＣＰＵ２２０Ｈ、２２２Ｈ及び／またはＧＰＵ２４０Ｈ、２５０Ｈにより実現されうる。その他の実施形態では、映像符号化器２８５は、分離された符号化チップ（不図示）により実現されてもよい。
【００４１】
動作において、描画命令生成部２７０は、受信したクライアント機器入力１４０n（１≦ｎ≦Ｎ）に基づいて描画命令２０４m（１≦ｍ≦Ｍ）のセットを生成しうる。受信されるクライアント機器入力は、その行き先となる描画命令生成部２７０を識別するデータ（例えばアドレス）と、その送信元であるユーザ及び／またはクライアント機器を識別するデータとの少なくともいずれかを運びうる。
【００４２】
描画命令は、映像データの１つのフレームまたは一連の映像データのフレーム群を生成するように、専用の描画処理装置（ＧＰＵ）に指示をするために用いられうる命令を示す。図２Ｃを参照すると、描画命令２０４m（１≦ｍ≦Ｍ）のセットは、描画部２８０による映像データのフレームの生成をもたらしている。これらのフレームによって表される画像は、描画命令生成部２７０にプログラムされた、クライアント機器入力１４０n（１≦ｎ≦Ｎ）に応じた機能として変化しうる。例えば、描画命令生成部２７０は、所定の特定の要因に応答して、ユーザに（将来のインタラクションが異なる、より挑戦的とさせる、またはより刺激的とさせる）進行体験を提供するような方法でプログラムされてもよく、一方で、他の特定の要因への応答は、回帰や終了の体験をユーザに与えるだろう。描画命令生成部２７０への指示はバイナリ実行可能なファイルの形式で固定されてもよいが、クライアント機器入力１４０n（１≦ｎ≦Ｎ）は、対応するクライアント機器１２０n（１≦ｎ≦Ｎ）を使用するプレイヤのインタラクション動作があるまで不明である。結果として、提供される特定のクライアント機器入力に応じて、様々な種類の生じ得る結果が存在してもよい。プレイヤ／観戦者と描画命令生成部２７０との間のクライアント機器１２０n（１≦ｎ≦Ｎ）を介したこのインタラクションは、「ゲームプレイ」や「ビデオゲームをプレイしている」等として言及されうる。
【００４３】
描画部２８０は、複数の映像データストリーム２０５n（１≦ｎ≦Ｎ、ここでＮはビデオゲームに参加しているユーザ／クライアント機器の数を参照する。）を生成するために複数の描画命令２０４m（１≦ｍ≦Ｍ）のセットを処理しうる。したがって、一般的に、ユーザごとに（または、同等には、クライアント機器ごとに）生成された、１つの映像データストリームが存在しうる。描画が実行されている際に、３次元空間（例えば物理オブジェクト）または２次元空間（例えばテキスト）において表される１つ以上のオブジェクトについてのデータは、特定のＧＰＵ２４０Ｒ、２５０Ｒ、２４０Ｈ、２５０Ｈのキャッシュメモリ（不図示）に展開されうる。このデータは、ＧＰＵ２４０Ｒ、２５０Ｒ、２４０Ｈ、２５０Ｈにより、適切なＶＲＡＭ２４６Ｒ、２５６Ｒ、２４６Ｈ、２５６Ｈに格納されうる２次元画像に変換されうる。このようにして、ＶＲＡＭ２４６Ｒ、２５６Ｒ、２４６Ｈ、２５６Ｈは、ゲーム画面についての画素（ピクセル）値の一時的な格納領域を提供しうる。
【００４４】
映像符号化器２８５は、映像データストリーム２０５n（１≦ｎ≦Ｎ）の各々に含まれる映像データを、対応する圧縮された／符号化された映像データのストリームに圧縮及び符号化しうる。グラフィック出力ストリームとして言及される、圧縮された／符号化された映像データの結果であるストリームは、クライアント機器基準で生成されうる。本例示の実施形態では、映像符号化器２８５は、クライアント機器１２０n（１≦ｎ≦Ｎ）のそれぞれについてのグラフィック出力ストリーム２０６n（１≦ｎ≦Ｎ）を生成しうる。追加のモジュールが、インターネット１３０を介して送信可能となるように、映像データをパケット形式にするために提供されてもよい。映像データストリーム２０５n（１≦ｎ≦Ｎ）内の映像データ及び所与のグラフィック出力ストリーム内の圧縮された／符号化された映像データが、フレームに分割されうる。
【００４５】
描画命令の生成
以下、描画命令生成部２７０による描画命令の生成について、図２Ｃ、３Ａ及び３Ｂを参照してより詳細に説明する。具体的には、描画命令生成部２７０の実行は、以下に詳細が説明されるメインゲームプロセス３００Ａとグラフィック制御プロセス３００Ｂとを含むいくつかのプロセスを伴う。
【００４６】
メインゲームプロセス
メインゲームプロセス３００Ａについて、図３Ａを参照して説明する。メインゲームプロセス３００Ａは、連続するループとして、繰り返し実行されうる。メインゲームプロセス３００Ａの一部として、その実行中にクライアント機器入力が受信されうる、動作３１０Ａが提供されうる。ビデオゲームが観戦の可能性がない１人プレイヤ用ビデオゲームである場合、単一のクライアント機器（例えばクライアント機器１２０1）からのクライアント機器入力（例えばクライアント機器入力１４０1）が動作３１０Ａの一部として受信される。ビデオゲームがマルチプレイヤ用ビデオゲームまたは観戦の可能性がある１人プレイヤ用ゲームである場合、１つ以上のクライアント機器からのクライアント機器入力が、動作３１０Ａの一部として受信されうる。
【００４７】
非限定的な例示の目的で、所与のクライアント機器からの入力は、その所与のクライアント機器のユーザが、制御下にあるキャラクタに対して移動、ジャンプ、キック、旋回、揺動、引く、つかむ等をさせることを所望していることを伝送しうる。代替的あるいは追加的に、その所与のクライアント機器からの入力は、１つ以上の音声、映像またはゲームプレイ設定を変更する、ゲームをロード／セーブする、またはネットワークセッションの作成やセッションへの参加を行うために、その所与のクライアント装置のユーザによりなされたメニュー選択を伝送しうる。代替的あるいは追加的に、その所与のクライアント機器からの入力は、その所与のクライアント機器のユーザが特定のカメラ視野（例えば１人称または３人称）の選択、または仮想世界内の視野の再配置を所望していることを伝送しうる。
【００４８】
動作３２０Ａで、ゲームステートは、動作３１０Ａにおいて受信したクライアント機器入力の少なくとも一部及び他のパラメータに基づいて更新されうる。ゲームステートの更新は、次の動作を伴いうる：第１に、ゲームステートの更新は、そこからクライアント機器入力が受信されうるクライアント機器に関連付けられたユーザ（プレイヤまたは観戦者）の所定の特性（property）を更新することを伴いうる。これらの特性は、ユーザデータベース１０に格納されうる。ユーザデータベース１０に保持されて動作３２０において更新されうるユーザ特性は、例として、カメラ視野の選択（例えば１人称、３人称）、プレイモード、選択された音声または映像の設定、スキルレベル、顧客グレード（例えばゲスト、プレミアム等）を含みうる。
【００４９】
第２に、ゲームステートの更新は、クライアント機器入力の解釈に基づいて、仮想世界内の所定のオブジェクトの属性を更新することを伴いうる。属性が更新されるオブジェクトは、いくつかのケースでは２次元または３次元モデルにより表されてもよいし、プレイキャラクタ、非プレイキャラクタ及び他のオブジェクトを含みうる。プレイヤキャラクタである場合、更新されうる属性はオブジェクトの位置、強さ、武器／防具、経過した寿命、特殊能力、速さ／方向（速度）、アニメーション、視覚的効果、エネルギ、弾薬等を含みうる。他のオブジェクト（背景、植物、建物、乗り物、スコアボード等）である場合、更新されうる属性は、そのオブジェクトの位置、速度、アニメーション、ダメージ／体力、視覚的効果、テキスト内容等を含みうる。
【００５０】
クライアント機器入力とは別のパラメータは、上述した（ユーザの）特性及び（仮想世界オブジェクトの）属性に影響を与えうることが理解されるべきである。例えば、様々なタイマ（経過時間、特定のイベントからの時間、一日の仮想時刻、プレイヤ総数、ユーザの地理的位置等）が、ゲームステートの様々な態様に影響を及ぼしてもよい。
【００５１】
動作３２０Ａの実行に加えてゲームステートが更新されると、メインゲームプロセス３００Ａは動作３１０Ａに戻ってもよく、それに応じて、前回のメインゲームプロセスを終了してから受信した新たなクライアント機器入力が収集され、処理される。
【００５２】
グラフィック制御プロセス
以下、グラフィック制御プロセスとして言及される第２のプロセスについて、図３Ｂを参照して説明する。グラフィック制御プロセス３００Ｂは、メインゲームプロセス３００Ａと分離して示されているが、メインゲームプロセス３００Ａの延長として実行されうる。グラフィック制御プロセス３００Ｂは繰り返し実行されてもよく、結果として、描画命令２０４m（１≦ｍ≦Ｍ）のセットが生成される。観戦の可能性がない１人プレイヤ用ビデオゲームの場合、１人のユーザのみが存在し（すなわち、Ｎ＝１）、したがって、生成されるべき結果の描画命令２０４1のセットは１つのみ（すなわち、Ｍ＝１）である。他の場合では、Ｎ（ユーザの数）は１より大きい。例えば、マルチプレイヤ用ビデオゲームの場合、複数のプレイヤについて複数の（Ｍ＞１）独立した描画命令のセットが生成されることが必要であり、従って、複数のサブプロセスが、それぞれが各プレイヤのために、並行して実行されうる。一方で、観戦の可能性がある１人プレイヤ用ゲームの場合（この場合も、複数ユーザであり、従ってＮ＞１である）、描画命令２０４の単一のセット２０４1（Ｍ＝１）のみが存在しうると共に、結果の映像データストリームは、描画部２８０により観戦者のために複製されうる。もちろん、これらは単なる実装の例であり、限定として取られるべきものではない。
【００５３】
映像データストリーム２０５n（１≦ｎ≦Ｎ）のうちの１つを要求する所与のユーザのためのグラフィック制御プロセス３００Ｂの動作について検討する。動作３１０Ｂにおいて、描画命令生成部２７０は、その所与のユーザについて描画されるオブジェクトを決定しうる。この動作は、以下の種類のオブジェクトを識別することを含みうる。第１に、この動作は、仮想世界から所与のユーザについての「ゲーム画面描画範囲」（「シーン」としても知られる）内にある、これらのオブジェクトを識別することを含みうる。ゲーム画面描画範囲は、所与のユーザのカメラの視点から「観ることが可能」な、仮想世界の部分を含みうる。これは、仮想世界内のオブジェクトに関連するカメラの位置及び方向に依存しうる。動作３１０Ｂの非限定的な実装例において、錐台が仮想世界に適用され得、その錐台内のオブジェクトが保持またはマークされる。錐台は、所与のユーザのカメラの位置に置かれた頂点を有し、そのカメラの方向性により規定される方向を有しうる。
【００５４】
第２に、この動作は、仮想世界内に現れないが、それにも関わらず所与のユーザについて描画される必要がありうる追加のオブジェクトを識別することを含みうる。例えば、これらの追加のオブジェクトは、非限定的な２〜３の可能性を挙げると、テキストメッセージ、グラフィック警告及びダッシュボードインジケータを含んでもよい。
【００５５】
動作３２０Ｂで、描画命令生成部２７０は、動作３１０Ｂにおいて識別されたオブジェクトを、画像（映像データ）に描画するための命令２０４m（１≦ｍ≦Ｍ）のセットを生成する。描画は、視野及び適用される照明状態に従って、１つのオブジェクトまたはオブジェクト群の３次元または２次元座標の、表示可能な画像への変換を参照してもよい。これは、例えばここに参照により組み込まれる「"Computer Graphics and Geometric Modelling: Implementation & Algorithms", Max K. Agoston, Springer-Verlag London Limited, 2005」に記載されるような、任意の数の様々なアルゴリズム及び技術を用いて達成されうる。描画命令は、限定なく、Microsoft Corporation, Redmond, WAからの「Direct3D」及びKhronos Group, Beaverton, ORによって管理されている「OpenGL」などの、３Ｄのアプリケーションプログラミングインタフェース（ＡＰＩ）に適合する形式を有しうる。
【００５６】
動作３３０Ｂで、動作３２０Ｂにおいて生成された描画命令は、描画部２８０に出力されうる。これは、描画部２８０に送信する描画命令２０４m（１≦ｍ≦Ｍ）のセットへの、生成された描画命令のパケット化を伴いうる。
【００５７】
グラフィック出力の生成
描画部２８０は、描画命令２０４m（１≦ｍ≦Ｍ）のセットを解釈し、それぞれがＮ個の参加しているクライアント機器１２０n（１≦ｎ≦Ｎ）のそれぞれのための、複数の映像データストリーム２０５を生成しうる。描画は、（図２Ａの）ＣＰＵ２２０Ｒ、２２２Ｒまたは（図２Ｂの）ＣＰＵ２２０Ｈ、２２２Ｈの制御の下、ＧＰＵ２４０Ｒ、２５０Ｒ、２４０Ｈ、２５０Ｈにより実現されうる。１つの参加しているクライアント機器のための映像データのフレームが生成されるレートは、フレームレートとして参照されうる。
【００５８】
Ｎ名のユーザが存在する実施形態において、Ｎ個の映像データストリーム２０５n（１≦ｎ≦Ｎ）が、描画命令２０４m（１≦ｍ≦Ｍ、ここでＭ＝Ｎ）のセットのそれぞれから生成されうる。この場合、描画機能はユーザ間で共有されない。しかしながら、より少ない数の描画命令のセットが描画部２８０により処理される必要があることとなるように、Ｍ個の描画命令２０４m（１≦ｍ≦Ｍ、ここでＭはＮより小さい）のセットからＮ個の映像データストリーム２０５n（１≦ｎ≦Ｎ）が生成されてもよい。その場合、より少ない数の描画命令２０４m（１≦ｍ≦Ｍ、ここでＭ＜Ｎ）のセットから、より多い数の映像データストリーム２０５n（１≦ｎ≦Ｎ）を生成するために、描画部２８０は共有または複製を行ってもよい。このような共有または複製は、複数のユーザ（例えば観戦者）が同一のカメラ画角を観ることを所望した場合に普及するものであってもよい。このように、描画部２８０は、生成された映像データストリームを１つ以上の観戦者に複製するなどの機能を実行してもよい。
【００５９】
次に、映像データストリーム２０５n（１≦ｎ≦Ｎ）の各々における映像データは、映像符号化器２８５により符号化され、グラフィック出力ストリームとして参照され、各クライアント機器に関連付けられた一連の符号化映像データが得られる。図２Ａ〜２Ｃの実施形態の例において、クライアント機器１２０n（１≦ｎ≦Ｎ）のそれぞれに宛てられた一連の符号化映像データは「グラフィック出力ストリーム」２０６n（１≦ｎ≦Ｎ）として参照される。
【００６０】
映像符号化器２８５は、デジタル映像についての映像圧縮または展開アルゴリズムを起動する、実行する、または定義する装置（またはコンピュータ読み取り可能な命令のセット）であり得る。映像圧縮は、（画素位置、色値等で表現される）デジタル画像データのオリジナルストリームを、より少ないビットを用いるが実質的に同一の情報を伝送するデジタル画像データの出力ストリームに変換しうる。あらゆる適切な圧縮アルゴリズムが用いられうる。データ圧縮に加え、映像データの特定のフレームの符号化に用いられる符号化処理は、暗号法の暗号化を含んでもよいし、しなくともよい。
【００６１】
上述の手法で生成されたグラフィック出力ストリーム２０６n（１≦ｎ≦Ｎ）は、インターネット１３０を介して各クライアント機器に送信されうる。非限定的な例として、グラフィック出力ストリームは、各々がヘッダ及びペイロードを有する複数のパケットに、分割され、またはフォーマットされてもよい。所与のユーザについての映像データを含むパケットのヘッダは、その所与のユーザに関連付けられたクライアント機器のネットワークアドレスを含んでもよく、ペイロードは全部または一部として映像データを含んでもよい。非限定的な実施形態において、所定の映像データを符号化するために用いられる圧縮アルゴリズムのアイデンティティ及び／またはバージョンが、その映像データを伝送する１つ以上のパケットのコンテンツ内に符号化されてもよい。符号化映像データの他の送信手法は、本技術分野に属する当業者には思い当たるだろう。
【００６２】
本開示は個々の２Ｄ画像を表す映像データの描画に着目するものであるが、本発明は３Ｄ効果を生成するために、フレームごとに複数の２Ｄ画像を表す映像データを描画することの可能性を除外するものではない。
【００６３】
クライアント機器におけるゲーム画面再生
以下、非限定的な例示の目的で、クライアント機器１２０n（１≦ｎ≦Ｎ）のいずれかであり得る、所与のユーザに関連付けられたクライアント機器によって実行されうるクライアント側のビデオゲームアプリケーションの動作を示す図４Ａを参照する。動作において、いくつかの非限定的な可能性を挙げると、クライアント側ビデオゲームアプリケーションは、クライアント機器によって直接実行可能であってもよいし、ウェブブラウザ内で動作してもよい。
【００６４】
動作４１０Ａで、（グラフィック出力ストリーム２６０n（１≦ｎ≦Ｎ）のうちの）グラフィック出力ストリームは、実施形態に応じて、描画サーバ２００Ｒ（図２Ａ）から、またはハイブリッドサーバ２００Ｈ（図２Ｂ）から、インターネット１３０を介して受信されうる。受信されたグラフィック出力ストリームは、複数のフレームに分割されうる、映像データの圧縮／符号化されたフレームを含みうる。
【００６５】
動作４２０Ａで、圧縮／符号化された映像データのフレームは、符号化／圧縮処理に用いられた符号化／圧縮アルゴリズムを補間する復号化／展開アルゴリズムに従って、復号／展開される。非限定的な実施形態において、映像データの符号化／圧縮に用いられた符号化／圧縮アルゴリズムのアイデンティティまたはバージョンは、予め知らされていてもよい。他の実施形態では、映像データの符号化に用いられた符号化／圧縮アルゴリズムのアイデンティティまたはバージョンは、その映像データそのものを伴ってもよい。
【００６６】
動作４３０Ａで、（復号／展開された）映像データのフレームが処理されうる。これは、バッファへの復号／展開された映像データのフレームの配置、誤り訂正の実行、複数の連続するフレームの順序付け及び／または合成、アルファブレンディング、欠損したデータ部分の補間等を含みうる。その結果は、フレームごとにユーザに提示されるべき最終画像を表す映像データとなり得る。
【００６７】
動作４４０Ａで、最終画像がクライアント機器の出力機構を介して出力されうる。例えば、コンポジット映像フレームが、クライアント機器のディスプレイに表示されうる。
【００６８】
音声生成
以下、音声生成処理として言及される３番目の処理について、図３Ｃを参照して説明する。音声生成処理は、知覚可能な音声ストリームを要求する各ユーザについて、断続的に実行しうる。一実施形態において、音声生成処理はグラフィック制御プロセス３００Ｂと無関係に実行されうる。他の実施形態において、音声生成処理及びグラフィック制御処理の実行が協調されうる。
【００６９】
動作３１０Ｃで、描画命令生成部２７０は、生成すべき音声を決定しうる。具体的には、本動作は、音量（音の強さ）及び／または仮想世界内においてユーザへの近さに応じて、地形音響特性に影響を及ぼす仮想世界内のオブジェクトに関連付けられた音声を特定することを含みうる。
【００７０】
動作３２０Ｃで、描画命令生成部２７０は音声セグメントを生成しうる。音声セグメントの継続期間は映像フレームの継続期間に及んでもよいし、いくつかの実施形態では音声セグメントは映像フレームよりも少ない頻度で生成されてもよいし、他の実施形態では音声セグメントは映像フレームよりも高い頻度で生成されてもよい。
【００７１】
動作３３０Ｃで、音声セグメントは例えば音声符号化器により符号化されてもよく、その結果、符号化音声セグメントが得られる。音声符号化器は、音声圧縮または展開アルゴリズムを起動し、実行し、または定義する装置（または指示のセット）でありうる。音声圧縮は、（時間の経過によって振幅及び位相が変化する音波として表現される）デジタル音声のオリジナルストリームを、より少ないビットを使用するが実質的に同一の情報を伝送するデジタル音声データの出力ストリームに変換しうる。あらゆる適切な圧縮アルゴリズムが用いられうる。音声圧縮に加え、特定の音声セグメントの符号化に用いられる符号化処理は暗号法の暗号化を適用してもよいし、しなくてもよい。
【００７２】
いくつかの実施形態において、音声セグメントは計算サーバ２００Ｃ（図２Ａ）またはハイブリッドサーバ２００Ｈ（図２Ｂ）のいずれかの専用ハードウェア（例えばサウンドカード）により生成されてもよいことが理解されるべきである。図２Ａの分散型構成に適用可能でありうる代替的実施形態では、音声セグメントは描画命令生成部２７０によりスピーチパラメータ（例えばＬＰＣパラメータ）にパラメータ化されてもよく、スピーチパラメータは描画サーバ２００Ｒにより、配信先のクライアント機器に再配信されうる。
【００７３】
上述した方式で生成された符号化された音声は、インターネット１３０を介して送信される。非限定的な例において、符号化された音声入力は、各々がヘッダ及びペイロードを有するパケットに分解及びフォーマットされうる。ヘッダは、ユーザのために音声生成処理が実行されているときのその参加者に関連付けられたクライアント機器のアドレスを伝送してもよく、ペイロードは符号化された音声を含んでいてもよい。非限定的な実施形態において、所与の音声セグメントの符号化に用いられる圧縮アルゴリズムのアイデンティティ及び／またはバージョンは、その所与のセグメントを伝送する１つ以上のパケットのコンテンツ内に符号化されてもよい。符号化された音声を送信する他の手法は、本技術分野に属する当業者には思い当たるだろう。
【００７４】
以下、非限定的な例示を目的として、クライアント機器１２０n（１≦ｎ≦Ｎ）のいずれかでありうる、所与のユーザに関連付けられたクライアント機器の動作を示す図４Ｂを参照する。
【００７５】
動作４１０Ｂで、符号化された音声セグメントが（実施形態に応じて）計算サーバ２００Ｃ、描画サーバ２００Ｒ、またはハイブリッドサーバ２００Ｈから受信されうる。動作４２０Ｂで、符号化処理に用いられた圧縮アルゴリズムを補間する展開アルゴリズムに従って、符号化された音声が復号されうる。非限定的な実施形態において、音声セグメントの符号化に用いられた圧縮アルゴリズムのアイデンティティまたはバージョンは、音声セグメントを伝送する１つ以上のパケットのコンテンツ内で特定されてもよい。
【００７６】
動作４３０Ｂで、（復号された）音声セグメントが処理されうる。これは、バッファ内への復号された音声セグメントの配置、誤り訂正の実行、複数の連続する波形の合成等を含みうる。その結果は、フレームごとにユーザに提示される最終音声となり得る。
【００７７】
動作４４０Ｂで、最終的に生成された音声は、クライアント機器の出力機構を介して出力されうる。例えば、音声はクライアント機器のサウンドカードまたはスピーカを介して再生される。
【００７８】
非限定的な実施形態の具体的開示
以下、本発明の所定の非限定的な実施形態について、より詳細な説明を提供する。
【００７９】
本発明の非限定的な実施形態の一般的なブロック図を示す図１１を参照する。描画命令生成部２７０は、描画部２８０へ、描画命令のセット２０４1を供給する。ここでは、Ｎ人のユーザのそれぞれのための複数の映像データストリーム２０５n（１≦ｎ≦Ｎ）をもたらす１つの描画命令のセット２０４1（すなわち、Ｍ＝１）を検討する。この状況は、Ｎ人のユーザ（プレイヤと観戦者との少なくともいずれか）が同一のカメラの視点を共有する場合に生じうる。当然ながら、それぞれが１つ以上の別個の映像データストリームを生じさせうる１つより多くの描画命令のセットが存在する（すなわちＭ＞１の）場合にも、同様の説明が適用されうる。
【００８０】
描画命令のセット２０４1は、描画部２８０内の描画器１１２０へ供給される。本発明のある実施形態を除いて、描画器１１２０は、描画命令のセット２０４1を処理して、単一のクライアント機器に充てられたフレームを生成しうる。その一方で、本発明の非限定的な実施形態によれば、描画器１１２０は、描画命令のセット２０４1を処理して、後にＮ人のユーザのそれぞれのための映像データストリーム２０５n（１≦ｎ≦Ｎ）を形成するためにカスタマイズ部１１１０によってカスタマイズされる、一次フレーム５４０a、５４０b、…、を含む映像データストリームを生成する。
【００８１】
カスタマイズ部１１１０は、描画命令生成部２７０から各ユーザのためのカスタマイズ情報を受け取る。ここで、ユーザの全てに対するカスタマイズ情報を受け取らなくてもよいことに留意すべきである。すなわち、一部のユーザに対して、カスタマイズされていない一次フレームが映像データストリームとして出力されてもよい。具体的には、カスタマイズ情報は、１つ以上のユーザのそれぞれのための１つ以上のカスタマイズ情報（例えば、ユーザｎ（ここで１≦ｎ≦Ｎ）に対するカスタマイズ情報１１５０n）を含む。カスタマイズ部１１１０はカスタマイズ情報を解釈し、カスタムの特徴を取得し、そのカスタムの特徴を一次フレーム５４０a、５４０b、…、に組み入れ、対応するユーザのための「合成フレーム」のセットをそれぞれが含んだ、複数の映像データストリーム２０５n（１≦ｎ≦Ｎ）を生成する。なお、ユーザｎ（１≦ｎ≦Ｎ）のための映像データストリーム２０５nにおける合成フレームは、描画後に加えられた、ユーザｎのためのカスタマイズ情報によって指定されたカスタム化部分（１つ以上のグラフィック要素）を含む。これらの合成フレームが、映像符号化器２８５によって、ユーザｎ（１≦ｎ≦Ｎ）のためのカスタム化されたグラフィック出力ストリーム（映像コンテンツ）２０６nへと符号化される。映像符号化器２８５は、動画の標準に従って合成フレームを符号化しうる。
【００８２】
グラフィック要素を一次フレーム５４０a、５４０b、…、に付加して所与のユーザのためのカスタマイズされた画像のセットを形成することが可能な多くの方法がある。これは、ここで説明されるように、描画部２８０及びカスタマイズ部１１１０の多くの非限定的な例示の実施形態を用いて達成されうる。
＜実施形態１＞
図５Ａの実施形態において、図１１の描画部２８０及びカスタマイズ部１１１０は、それぞれ、描画部２８０Ａ及びカスタマイズ部１１１０Ａとして表されている。カスタマイズ部１１１０Ａは、グラフィック合成器５００及び挿入制御部５１０を含む。グラフィック合成器５００は、描画器１１２０と映像符号化器２８５との間のパスに沿って配置される。グラフィック合成器５００は、描画器１１２０によって描画される一次フレームと、例えば、挿入制御部５１０を介して、画像データベース（Ｄ／Ｂ）５２０から、ユーザのそれぞれのための１つ以上の補助フレームとを取得する。そして、グラフィック合成器５００は、一次フレームと、１つ以上の補助フレームのそれぞれとを合成して、複数のユーザ（ユーザクライアント）のそれぞれのためにそれぞれが生成される１つ以上の合成フレームを形成し、その１つ以上の合成フレームを映像符号化器２８５へ出力する。符号化された合成フレームのそれぞれが、例えばインターネットを介して、その対応するユーザ端末へ送信される。
【００８３】
なお、合成フレームは全ユーザクライアントに対して生成されなくてもよく、一次フレームが符号化され、１つ以上であるがすべてではないユーザクライアントへ送信されてもよい。例えば、グラフィック合成器５００は、第１のユーザのために、一次フレームとその第１のユーザのための補助フレームとを合成することにより生成された第１の合成フレームを、第２のユーザのために、一次フレームとその第２のユーザのための補助フレームとを合成することにより生成された第２の合成フレームを出力することができる一方で、第１のユーザのために一次フレームを、第２のユーザのために、一次フレームとその第２のユーザのための「補助」フレームとを合成することにより生成された合成フレームを出力してもよい。
【００８４】
合成フレーム５５０1a、５５０1b、…、を含む映像データストリーム２０５1の場合について検討する。グラフィック合成器５００は、一次フレーム５４０a、５４０b、…のそれぞれと、特定の補助フレーム５３０1x、５３０1y、…とを合成することにより、合成フレーム５５０1a、５５０1b、…のそれぞれを生成する。一次フレーム５４０a、５４０b、…は、描画器１１２０によって描画されて供給される一方で、補助フレーム５３０1x、５３０1y、…は、データベース５２０に記憶され、挿入制御部５１０によって供給される画像から導出されうる。なお、補助フレーム５３０1x、５３０1y、…は、以下の実施形態で説明するように、他の方法によって供給されてもよい。さらに、補助フレーム５３０1x、５３０1y、…は、１つ以上の事前に位置合わせされたグラフィック要素を含んでもよい。グラフィック合成器５００は、補助フレーム５３０1x、５３０1y、…を、一次フレーム５４０a、５４０b、…と混合し、合成フレーム５５０1a、５５０1b、…を得る。例えば、グラフィック合成器５００は、一次フレーム上に補助フレームを重ね合わせる。混合は、アルファ合成又はビットブリッティングなど、様々な技術を用いて行われうる。
【００８５】
ここで、合成フレーム５５０2a、５５０2b、…を含んだ映像データストリーム２０５2の、類似のケースについて検討する。グラフィック合成器５００は、一次フレーム５４０a、５４０b、…のそれぞれと、特定の補助フレーム５３０2x、５３０2y、…とを合成することにより、合成フレーム５５０2a、５５０2b、…、のそれぞれを生成する。一次フレーム５４０a、５４０b、…が描画器１１２０によって描画されるとともに供給される一方で、補助フレーム５３０2x、５３０2y、…は、挿入制御部５１０によって供給される。なお、補助フレーム５３０2x、５３０2y、…は、後の実施形態で説明するように、他の方法によって供給されてもよい。また、補助フレーム５３０2x、５３０2y、…は、１つ以上の事前に位置合わせされたグラフィック要素を含んでもよい。グラフィック合成器５００は、補助フレーム５３０2x、５３０2y、…を、一次フレーム５４０a、５４０b、…と混合し、合成フレーム５５０2a、５５０2b、…を得る。例えば、グラフィック合成器５００は、一次フレーム上に補助フレームを重ね合わせる。
【００８６】
このように、（ユーザ１のための）映像データストリーム２０５1における合成フレーム５５０1a、５５０1b、…は、所定の補助フレーム５３０1x、５３０1y、…からのグラフィック要素が組み込まれうる、一次フレーム５４０a、５４０b、…からなる。同様に、（ユーザ１と同一のシーンを共有するユーザ２のための）映像データストリーム２０５2における合成フレーム５５０2a、５５０2b、…は、他の所定の補助フレーム５３０2x、５３０2y、…からのグラフィック要素が組み込まれうる、その同一の一次フレーム５４０a、５４０b、…からなる。全ての合成フレームが一次フレームと補助フレームとから形成されるわけではないことが理解されるべきである。例えば、いくつかの場合、一次フレームは、補助フレームによって変形されることなくカスタマイズ部１１１０Ａを通過するようにされてもよい。
【００８７】
図５Ｂをさらに参照して、例示の一次フレーム５４０a、例示の補助フレーム５３０1x、例示の合成フレーム５５０1aを示す。補助フレーム５３０1aは、ユーザ１のための１つ以上のカスタマイズされたグラフィック要素（例えばテキストまたはグラフィック）を含んだ画面サイズのフレームでありうる。グラフィック要素は、画面の一部分のみを占め、事前に定められたサイズ、位置及び特性品質を有しうる。特性品質は、「ルックアンドフィール」と呼ばれることがあり、フォント、レイアウト、形状及び色の少なくともいずれかを含みうる。テキストについての具体的な場合において、「ルックアンドフィール」は、一般に受け付けられている定義を有する、フォント、色、スタイルなどを指しうる。グラフィックの場合、「ルックアンドフィール」は、パターン、スタイル、色及び形状に基づく、フレームの質的な特徴的外観を指しうる。すなわち、特性品質は、合成フレームにおいてグラフィック要素がどのように提示されるかを示す。特性品質は、グラフィック要素のそれぞれについて定められてもよい。例えば、グラフィック要素のうちの１つについての特性品質は、グラフィック要素のうちの別の１つについての特性品質と異なりうる。さらに、特性品質は、グラフィック要素の一部についてのみ定められてもよい。
【００８８】
データベース５２０は、画像情報を記憶するため、画像情報データベースと呼ばれてもよい。いくつかの実施形態では、画像情報は、事前に位置合わせされたグラフィック要素を有するフレームを構成しうる。他の実施形態では、データベース５２０に記憶される画像情報は、事前設定された位置又はサイズを有さず、外部の指定に従ってフレーム内で位置合わせとサイズ合わせとが行われうる、個別のグラフィック要素を構成しうる。図５Ａの実施形態の場合、データベース５２０は、補助フレーム５３０1x、５３０1y、…、５３０2x、５３０2y、…、５３０Nx、５３０Ny、…を含むフレームを、収容しうる。したがって、補助フレームは、画像情報データベース５２０に記憶され、それぞれが事前に位置合わせされたグラフィック要素を含む画像を表しうる。データベース５２０内の個別の画像には、容易にアクセスすることができるように、ユニークな識別子（ＩＤ）が与えられうる。データベース５２０は、その中に記憶される画像が変化することを許容するために、動的に更新されうる。
【００８９】
図５Ａに戻り、画像データベース５２０から適切な画像を取得し、適切な時刻にそれらをグラフィック合成器５００へ供給するために、挿入制御部５１０は、描画命令生成部２７０からの、様々なユーザのためのカスタマイズ情報１１５０n（１≦ｎ≦Ｎ）を受け付ける。非限定的な本実施形態においては、ユーザ１についてのカスタマイズ情報１１５０1は、（「トリガ」と呼ばれる）挿入タイミング信号５６０1とＩＤ信号５７０1とを含みうる。ＩＤ信号５７０1は、どの画像が、データベース５２０から取得し、補助フレーム５３０1x、５３０1y、…において使用するのに的確であるかを特定する。トリガ信号５６０1は、取得された画像についてのタイミング／同期の特定を行い、すなわち、トリガ信号は、挿入制御部５１０がこれらの補助フレーム５３０1x、５３０1y、…を対応する一次フレーム５４０a、５４０b、…への挿入のためにグラフィック合成器５００へ供給する時刻、又は、グラフィック合成器５００がこれらの補助フレーム５３０1x、５３０1y、…を対応する一次フレーム５４０a、５４０b、…と合成する時刻を指定する。ここで、トリガ信号は、実世界における時刻又はビデオゲームの仮想世界における時刻を指定しうる。前者の場合、挿入制御部５１０は、補助フレームの挿入時刻を指定するためのリアルタイムクロックを有しうる。後者の場合、挿入制御部５１０は、挿入制御部が適切なタイミングでグラフィック合成器５００へ補助フレームを供給することができるように、ビデオゲームのフレーム番号を取得するユニット、例えば、フレームカウンタを有しうる。この場合、フレーム番号をカウントアップするために、一次フレーム５４０が挿入制御部５１０へ入力されてもよいし、挿入制御部５１０は、グラフィック合成器５００においてカウントアップされたフレーム番号を取得してもよい。挿入制御部５１０は、フレーム番号以外の、ビデオゲームの仮想世界の時刻を示す情報を取得してもよい。
【００９０】
なお、（ＩＤ信号５７０1、…、５７０Nを用いて）画像データベース５２０から抽出すべき適切な画像の特定は、各ユーザのアイデンティティ、人口統計情報、社会経済状態等のような、様々なファクタに依存しうる。また、ゲームプレイ中に、補助フレームが一次フレームへ挿入されることがより望ましい（又はより望ましくない）時がありえ、これは、それぞれのトリガ信号５６０1、…、５６０Nによって制御される。このように、ユーザｎ（１≦ｎ≦Ｎ）についてのトリガ信号５６０nは、補助フレーム５３０1a、５３０1b、…をグラフィック合成器５００へ供給するのに適切な時期を示しうる。
【００９１】
１つの非限定的な実施形態では、計算サーバ２００Ｃで実行する描画命令生成部２７０は、ＩＤ信号５７０1、…、５７０Nとトリガ信号５６０1、…、５６０Nとを、ビデオゲームにおけるある所定の時点で生成し、これらの信号を挿入制御部５１０供給するように事前にプログラミングされる。結果として、挿入制御部５１０は、所定の挿入時刻に、グラフィック合成器５００へ、所定の画像を提供し、所定の画像と所定の時刻は、ビデオゲームの状況に基づいて決定されうる。
【００９２】
結果の合成フレーム５５０1a、５５０1b、…において、画面上で持続する印象を与えるために、同一の補助フレームが、連続した一次フレーム５４０1a、５４０1b、…へ、挿入されてもよいことが理解されるべきである。さらに別の実施形態では、２つ以上の補助フレームが単一の一次フレームへ挿入されうることが予定されている。例えば、２つの画像を単一の補助フレームへと合成することに代えて、それぞれの画像から２つの別個の補助フレームが生成されることが可能でありえ、両者が対応する合成フレームを形成するために、特定の一次フレームと混合されることが可能でありうる。
【００９３】
＜実施形態２＞
図６Ａでは、図１１の描画部２８０及びカスタマイズ部１１１０が、それぞれ、描画部２８０Ｂ及びカスタマイズ部１１１０Ｂとして表されている。カスタマイズ部１１１０Ｂは、上述のグラフィック合成器５００、及び挿入制御部６１０並びにグラフィックカスタマイズ器６００を有する。グラフィック合成器５００は、ここでも、描画器１１２０と映像符号化器２８５との間のパスに沿って配置される。実施形態１で説明したように、グラフィック合成器５００は、一次フレームと各ユーザのための１つ以上の補助フレームとを取得し、一次フレームと１つ以上の補助フレームのそれぞれとを合成して、それぞれが複数のユーザ（ユーザクライアント）のそれぞれのために生成される１つ以上の合成フレームを形成し、１つ以上の合成フレームを映像符号化器２８５へ出力する。符号化された合成フレームのそれぞれは、例えばインターネットを介して、その対応するユーザ端末へ送信される。さらに、本実施形態においても、合成フレームは、ユーザクライアントの全てに対して生成される必要はなく、一次フレームが符号化され、１つ以上であるが全てではないユーザクライアントへ送信されてもよい。
【００９４】
ユーザ１のための、合成フレーム６５０1a、６５０1b、…を含む映像データストリーム２０５1の場合について検討する。グラフィック合成器５００は、一次フレーム５４０a、５４０b、…のそれぞれを、補助フレーム６３０1x、６３０1y、…のうちの特定の１つと合成することにより、合成フレーム６５０1a、６５０1b、…のそれぞれを生成する。一次フレーム５４０a、５４０b、…は、描画器１１２０によって描画されて供給され、その一方で、補助フレーム６３０1x、６３０1y、…は、挿入制御部６１０によって供給される。なお、補助フレーム６３０1x、６３０1y、…は、他の方法によって供給されてもよい。グラフィック合成器５００は、補助フレーム６３０1x、６３０1y、…を、一次フレーム５４０a、５４０b、…と混合し、合成フレーム６５０1a、６５０1b、…を得る。例えば、グラフィック合成器５００は、補助フレームを一次フレーム上に重ね合わせる。混合は、アルファ合成又はビットブリッティングなどの様々な技術を用いて行われうる。
【００９５】
本実施形態では、挿入制御部６１０は、図５Ａの挿入制御部５１０と同様である。例えば、ユーザ１の場合、類似点の１つは、挿入制御部６１０が、ユーザ１のためのカスタマイズ情報１１５０1の一部として供給される上述の挿入タイミング（トリガ）信号５６０1に基づいて、適切な時刻に、補助フレーム６３０1x、６３０1y、…を、グラフィック合成器５００に供給する役割を担うことである。ここで、トリガ信号５６０1は、挿入制御部６１０が、対応する一次フレーム５４０a、５４０b、…への挿入のために、これらの補助フレーム６３０1x、６３０1y、…をグラフィック合成器５００へ供給するタイミング、又は、グラフィック合成器５００が、これらの補助フレーム６３０1x、６３０1y、…を、対応する一次フレーム５４０a、５４０b、…と合成するタイミングを指定しうる。本実施形態においても、トリガ信号は、実世界の時刻又はビデオゲーム仮想世界における時刻を指定することができ、前者の場合、挿入制御部６１０が補助フレームの挿入タイミングを特定するためのリアルタイムクロックを有してもよく、後者の場合、挿入制御部６１０は、挿入制御部がグラフィック合成器５００へ、適切なタイミングで補助フレームを供給することができるように、ビデオゲームのフレーム番号を取得するための手段、例えばフレームカウンタを有しうる。一方、相違点の１つは、補助フレーム６３０1x、６３０1y、…が、画像データベースから直接供給されるのではなく、以下詳細に説明するグラフィックカスタマイズ器６００によって、挿入制御部６１０が利用可能となる点である。
【００９６】
具体的には、グラフィックカスタマイズ器６００は、グラフィック要素データベース６２０へアクセスする。グラフィック要素データベース６２０は、様々なグラフィック要素をファイルとして記憶することができ、グラフィック要素のそれぞれは、テキスト（例えば単語、メッセージ）、グラフィック（例えば写真、画像）、又はそれらの組み合わせを表し得る。個別のグラフィック要素には、グラフィックカスタマイズ器６００がそれらに容易にアクセスすることができるように、ユニークな識別子（ＩＤ）が与えられうる。データベース６２０は、それに記憶されているグラフィック要素が変化することを許容するように、動的に更新されうる。
【００９７】
グラフィックカスタマイズ器６００は、所与のユーザｎ（１≦ｎ≦Ｎ）に関する限りにおいて、２つの主要な機能を実行する。第１の機能は、ユーザｎのためのカスタマイズ情報１１５０nの一部を形成すると共に先述のＩＤ信号５７０nと同様のＩＤ信号６７０nに基づいて、グラフィック要素データベース６２０から１つ以上のグラフィック要素６４０を選択することである。第２の機能は、選択されたグラフィック要素６４０を、挿入制御部６１０へ供給される補助フレーム６３０nx、６３０ny、…へと変換することである。この変形は、選択されたグラフィック要素６４０に適用されるべき所望のサイズ、位置、又は（「ルックアンドフィール」とも呼ばれる）特性品質を含むユーザｎのためのパラメータのセット６８０nに基づいて、行われる。特性品質は、グラフィック要素が合成フレームにおいてどのように提示されるかを示し、フォント、レイアウト、形状及び色の少なくとも１つを含みうる。また、パラメータのセット６８０nは、ユーザｎのためのカスタマイズ情報１１５０nの一部を形成する。なお、パラメータのセット６８０nは、時間と共に変化しうる。すなわち、例えば、グラフィック要素６４０に適用されるべき、位置、サイズ、又は、特性品質の少なくともいずれかは、時間と共に変化する。結果として、グラフィックカスタマイズ器６００は、補助フレームを生成し、それらを挿入制御部６１０へ供給し、挿入制御部６１０は、所望の挿入時間において、グラフィック合成器５００へ、所望の特性品質が適用された１つ以上の所望のグラフィック要素を含んでいる、生成された補助フレームを供給する。
【００９８】
図６Ｂをさらに参照して、例示の一次フレーム５４０a、２つの例示のグラフィック要素６４０、例示の補助フレーム６３０1x、及び、例示の合成フレーム６５０1aを示す。ユーザ１のためのこの場合に、選択されたグラフィック要素６４０は、カスタマイズされたグラフィック要素（例えば、テキストファイル及びグラフィックファイル）を含む。選択されたグラフィック要素６４０は、例示の補助フレーム６３０1xに含まれるが、画面サイズの画像を生成するために、適切にサイズ合わせ、位置合わせ、及びフォーマットがなされる。
【００９９】
なお、本実施形態では、選択されたグラフィック要素６４０は一般的なものであることができ、サイズ、位置、又は特性品質の少なくともいずれかに基づいて（すなわち、パラメータのセット６８０nによって定められるように）、所与のユーザｎのためにカスタマイズされてもよい。すなわち、パラメータのセット６８０nは、その対応するグラフィック要素がフレーム内で配置される所望のサイズ若しくは所望の位置又は所望のサイズ及び位置と、その対応するグラフィック要素がどのように合成フレームにおいて提示されるかを示す所望の特性品質との少なくともいずれかを指定しうる。パラメータのセット６８０nは、ＩＤ信号６７０nによって特定される全てのグラフィック要素に対して定義されうるが、パラメータのセット６８０nは、グラフィック要素の一部のみに対して定義されてもよい。グラフィックカスタマイズ器６００は、グラフィック要素を、所望の位置、サイズ、特性品質の少なくともいずれかで配置することにより、補助フレームを生成しうる。パラメータのセット６８０nは、描画命令生成部２７０が知りうる様々な要素に依存してもよい。したがって、パラメータのセット６８０nは、トリガ信号５６０n及びＩＤ信号６７０nと共に、描画命令生成部２７０によって供給されうる。非限定的な例示の実施形態では、パラメータのセット６８０nは、描画命令のセット２０４1内の描画命令の解析を実行したことに基づいて、描画命令生成部２７０によって決定されうる。
【０１００】
＜実施形態３＞
ユーザｎ（１≦ｎ≦Ｎ）の場合、パラメータのセット６８０nは、補助フレーム６３０nx、６４０ny、…内での選択されたグラフィック要素６４０の、位置、サイズ、特性品質（「ルックアンドフィール」）の少なくともいずれかを表し得ることに留意されたい。パラメータのこれらの３つの例は、一次フレーム５４０a、５４０b、…のグラフィックレイアウトに依存するため、挿入されるべきカスタマイズされたテキストとグラフィックとの少なくともいずれかについての、適切なサイズ、位置、及び「ルックアンドフィール」を推定するために、一次フレーム５４０a、５４０b、…を処理することができる。このような描画されたフレームの処理は、描画命令生成部２７０の中でビデオゲームのソースコードへのアクセスができない場合に、特に有用でありうる。
【０１０１】
この目的のために、図７では、図１１の描画部２８０及びカスタマイズ部１１１０は、それぞれ、描画部２８０Ｃ及びカスタマイズ部１１１０Ｃとして表されている。描画部２８０Ｃは、カスタマイズ部１１１０Ｃが画像処理器７００を含む点を除き、図６Ａの描画部２８０Ｂと実質的に同様である。換言すれば、パラメータのセット６８０n（１≦ｎ≦Ｎ）は、グラフィックカスタマイズ器６００に供給され続けるが、それらは、描画命令生成部２７０からのものではない。むしろ、パラメータ６８０のセットn（１≦ｎ≦Ｎ）は、画像処理器７００によって供給される。具体的には、画像処理器７００は、描画器１１２０から一次フレーム５４０a、５４０b、…を受け取り、グラフィック要素についての候補位置と避けるべき興味領域との少なくともいずれかを特定するために、一連の機能（例えば、パターン認識、テキスト認識、コントラスト検出など）を実行する。例えば、画像処理器７００は、ゲームに関する所定の情報（プレイヤの位置、現在の武器、スコア、インベントリなど）を抽出し、抽出された情報がグラフィック要素をトリガすべき場合にデータベース内で検索するために、一次フレーム５４０a、５４０b、…を解析しうる。
【０１０２】
また、画像処理器７００は、「ルックアンドフィール」と呼ばれうる、一次フレーム５４０a、５４０b、…の様々な特性を検出しうる。非限定的な例では、一次フレーム５４０a、５４０b、…の「ルックアンドフィール」、はフォントを含みうる。フォントは、例えば、www.myfonts.com/WhatTheFontなどの既存のユーティリティを用いて、自動で検出されうる。他の検出可能な特性は、その検出も自動化されうる、一次フレーム５４０a、５４０b、…におけるオブジェクトのサイズ及び色（又は表現）を含むことができる。その一方で、「ルックアンドフィール」が完全に自動化された方法で判定されることは必須ではない。例えば、ゲームの「ルックアンドフィール」に関する様々な特性は、客観的及び反復可能な基準に基づいて、人間によって一義的に決定されることが可能でありうる。
【０１０３】
画像処理器７００の出力は、パラメータのセット６８０n（１≦ｎ≦Ｎ）、すなわち、その後に上述したグラフィックカスタマイズ器６００によって使用される選択されたグラフィック要素６４０についての、位置、サイズ、「ルックアンドフィール」の少なくともいずれかを含みうる。このように、画像処理器７００は、ビデオゲームの状況に基づいて（すなわち、一次フレームの解析結果に基づいて）、グラフィック要素に適用されるべきパラメータ（所望の位置、所望の挿入タイミング、特性品質の少なくともいずれか）を決定しうる。
【０１０４】
＜実施形態４＞
ここで、図８に移ると、図１１の描画部２８０及びカスタマイズ部１１１０は、それぞれ、描画部２８０Ｄ及びカスタマイズ部１１１０Ｄとして表されている。カスタマイズ部１１１０Ｄは、図５Ａ及び６Ａのグラフィック合成器５００と図６Ａのグラフィックカスタマイズ器６００との機能を組み合わせた、グラフィックカスタマイズ及び合成器８００を有する。グラフィックカスタマイズ及び合成器８００は、描画器１１２０と映像符号化器２８５との間のパスに沿って配置される。本実施形態では、グラフィックカスタマイズ及び合成器８００へ供給されるものは、（図５Ａ及び図６Ａにおける場合のような）補助フレームではなく、選択されたグラフィック要素６４０及び上述のパラメータのセット６８０1、…、６８０Nである。具体的には、グラフィックカスタマイズ及び合成器８００は、ユーザｎのために、パラメータのセット６８０nに従って、選択されたグラフィック要素６４０のサイズ合わせ、位置合わせ、フォーマットの少なくともいずれかを実行する。その結果は、映像符号化器２８５へ送出される合成フレーム８５０na、８５０nb、…を生成するために一次フレーム５４０a、５４０b、…と合成される、内部的に生成された補助フレーム（不図示）でありうる。
【０１０５】
本実施形態では、選択されたグラフィック要素６４０は、上述のグラフィック要素データベース６２０へアクセスする挿入制御部８１０によって、提供される。グラフィック要素データベース６２０から適切なグラフィック要素を抽出して適切なタイミングでそれらをグラフィックカスタマイズ及び合成器８００へ供給するために、挿入制御部８１０は、上述の挿入タイミング（トリガ）信号５６０1、…、５６０N及び上述のＩＤ信号６７０1、…、６７０Nに依拠する。ＩＤ信号６７０1、…、６７０Nは、どのグラフィック要素が、選択されたグラフィック要素６４０として、データベース６２０から読み出すことが的確なものであるかを特定する。それらの一部として、上述のように、トリガ信号５６０1、…、５６０Nは、選択されたグラフィック要素６４０が一次フレーム５４０a、５４０b、…への挿入のためにグラフィックカスタマイズ及び合成器８００に提供されるべきタイミング、又は、グラフィックカスタマイズ及び合成器８００が、これらのグラフィック要素６４０を一次フレーム５４０a、５４０b、…と合成するタイミングを指定する。ここで、トリガ信号は、実世界における時刻又はビデオゲームの仮想世界における時刻を指定しうる。前者の場合、挿入制御部８１０は、選択されたグラフィック要素６４０の挿入タイミングを特定するためのリアルタイムクロックを有しうる。後者の場合、挿入制御部８１０は、挿入制御部が選択されたグラフィック要素６４０をグラフィックカスタマイズ及び合成器８００へ適切なタイミングで提供することができるように、ビデオゲームのフレーム番号を取得する手段、例えばフレームカウンタを有しうる。この場合、一次フレーム５４０は、フレーム番号のカウントアップのために挿入制御部８１０へ入力されてもよいし、挿入制御部８１０は、グラフィックカスタマイズ及び合成器８００においてカウントアップされたフレーム番号を取得してもよい。挿入制御部８１０は、フレーム番号以外のビデオゲームの仮想世界の時刻を示す情報を取得してもよい。
【０１０６】
なお、（ユーザｎのためのＩＤ信号６７０nを用いた）適切なグラフィック要素の特定は、ユーザのアイデンティティ、人口統計情報、社会経済状態、地理的位置等のような様々なファクタに依存しうる。また、ゲームプレイ中に、選択されたグラフィック要素６４０が一次フレーム５４０a、５４０b、…へ挿入されることがより望ましい（又はより望ましくない）時がありえ、これは、それぞれのトリガ信号５６０nによって制御される。このように、ユーザｎについてのトリガ信号５６０nは、選択されたグラフィック要素６４０をグラフィックカスタマイズ及び合成器８００へ供給するのに適切な時期を示しうる。ＩＤ信号６７０n及びトリガ信号５６０nは、計算サーバ２００Ｃによって実行されうる描画命令生成部２７０によって、制御され、供給されうる。
【０１０７】
グラフィックカスタマイズ及び合成器８００は、２つの主要な機能を実行する。第１の機能は、選択されたグラフィック要素６４０を、内部補助フレーム（不図示）へと変換することである。この変換は、選択されたグラフィック要素６４０に適用されるべき所望のサイズ、位置又は「ルックアンドフィール」（特性品質）を含みうるパラメータのセット６８０nに基づいて、ユーザｎ（１≦ｎ≦Ｎ）のために行われる。ここで、グラフィックカスタマイズ及び合成器８００は、必ずしも内部補助フレームを生成しなくてもよい。例えば、グラフィックカスタマイズ及び合成器８００は、グラフィック要素に適用されるべき位置、サイズ、特性品質の少なくともいずれかを決定し、決定された位置、サイズ、特性品質の少なくともいずれかに従って、これらのグラフィック要素を一次フレーム上に直接配置してもよい。グラフィックカスタマイズ及び合成器８００の第２の機能は、合成フレーム８５０na、８５０nb、…を生成するために、これらの補助フレームを一次フレーム５４０a、５４０b、…と混合することである。
【０１０８】
なお、本実施形態では、選択されたグラフィック要素６４０は、ユーザｎのために、それらのサイズ、位置及び「ルックアンドフィール」（すなわち、パラメータのセット６８０n）と無関係にカスタマイズ可能である。パラメータのセット６８０nは、描画命令生成部２７０に知られていてもよい様々なファクタに依拠しうる。したがって、ユーザｎ（１≦ｎ≦Ｎ）のためのパラメータのセット６８０nは、トリガ信号５６０n及びＩＤ信号６７０nと共に、描画命令生成部２７０によって供給されうる。
【０１０９】
＜実施形態５＞
ここで、図９に移ると、図１１の描画部２８０及びカスタマイズ部１１１０は、それぞれ、描画部２８０Ｅ及びカスタマイズ部１１１０Ｅとして表されている。本実施形態では、カスタマイズ部１１１０Ｅは、図７の文脈において上で説明した、上述の画像処理器７００を含む。換言すれば、（グラフィックカスタマイズ及び合成器８００へ供給され続ける）パラメータのセット６８０1、…、６８０Nは、描画命令生成部２７０ではなく、画像処理器７００によって提供される。画像処理器７００は、一次フレーム５４０a、５４０b、…を受け取り、グラフィック要素の候補位置と、避けるべき興味領域との少なくともいずれかを特定するために、一連の機能（例えば、パターン認識、テキスト認識、コントラスト検出など）を実行する。また、画像処理器７００は、すでに上述した方法で、一次フレーム５４０a、５４０b、…の、「ルックアンドフィール」と呼ばれうる様々な特性を検出する。画像処理器７００の出力は、ユーザ単位で、選択されたグラフィック要素６４０についての位置、サイズ、「ルックアンドフィール」の少なくともいずれかなどの、パラメータのセット６８０1、…、６８０Nを含みうる。このように、画像処理器７００は、ビデオゲームの状況に基づいて（すなわち、一次フレームの解析結果に基づいて）、グラフィック要素に適用されるべきパラメータ（所望の位置、所望の挿入タイミング、特性品質の少なくともいずれか）を決定しうる。
【０１１０】
＜他の実施形態＞
上述の図面は、コンピュータ可読媒体に記憶された命令としてその機能性が符号化されるソフトウェアモジュールとして、実現されうる要素を示している。グラフィック合成器５００及びグラフィックカスタマイズ及び合成器８００の場合、これらの要素は、描画サーバ２００Ｒの一部として実装されうる。挿入制御部５１０、６１０、８１０の場合、様々な実施形態に従って、図１０に示すような、グラフィックカスタマイズ器６００、画像処理器７００、グラフィックカスタマイズ及び合成器８００、画像データベース５２０、及び、グラフィック要素データベース６２０、上述の要素の所定のものが、計算サーバ２００Ｃの一部として、又は描画サーバ２００Ｒの一部として実装されうる。他の実施形態では、それらは、インターネット１３０などのネットワークを介して到達可能な別個のサーバにおいて実装されうる。
【０１１１】
変形例によれば、画像処理器７００は、ＩＤ信号５７０1、…、５７０N、６７０1、…、６７０Nに加えて、一次フレーム５４０a、５４０b、…へグラフィックを挿入するのにいつが適しているかを示す、トリガ信号５６０1、…、５６０N、６６０1、…、６６０Nをも、出力してもよい。例えば、画像処理器７００は、アクションが低下した又は異なるシーン又はレベルへの遷移があるゲーム内の時期を検出することができる。例えば、画面は、プレイヤのキャラクタが負傷した際に、不鮮明となるか、グレースケールに移るかの少なくともいずれかでありえ、そのキャラクタが回復し、非難し、又は危険から逃れると、通常にゆっくりと戻りうる。このような遷移又は変化は、画像処理器７００によって監視されるべき要素のリストの観点から定義され、それによりアクションのレベル又はシーンの遷移の自動検出を促進することが可能でありうる。
【０１１２】
本発明の技術分野に属する当業者は、上述した実施形態が例示であり限定するものではないものとみなされるべきことを理解する必要がある。本技術分野の当業者の知識の範疇であることが想定されるような、本発明の特定の実施形態の動作のために必要でありうる付加的な要素が説明または図示されていないことも理解されるべきである。さらに、本発明の特定の実施形態は、ここに具体的に記載していない任意の要素を含まなくてもよい、その要素を欠いてもよい、及び／またはその要素なしに機能してもよい。
【０１１３】
また本技術分野に属する当業者は、記載された実施形態の付加的な適応及び変形がなされうることを理解するだろう。したがって、本発明の範囲は、上述した特定の実施形態によって限定されるべきものでなく、むしろ添付の特許請求の範囲によって定められる。
【０１１４】
例示的な実施形態を参照して本発明を説明してきたが、記載した例示的な実施形態に発明が限られるものでないことが理解されるべきである。以下の特許請求の範囲は、このような変形、等価な構成及び機能の全てを包含するような、最も広範な解釈が認められるべきものである。また、本発明に係る画像処理装置、及び情報処理装置の制御方法は、コンピュータにおいてその手法を実行するプログラムにより実現可能である。プログラムは、コンピュータ読み取り可能な記録媒体に格納されることにより、または電気的な通信回線を介して、提供／配信可能である。
【０１１５】
本出願は、その全体がここに参照により援用される、２０１３年６月１７日に出願された米国仮出願第６１／８３５７６５号の利益を主張するものである。
【図１Ａ】
2016528563.tif 000003
【図１Ｂ】
2016528563.tif 000004
【図２Ａ】
2016528563.tif 000005
【図２Ｂ】
2016528563.tif 000006
【図２Ｃ】
2016528563.tif 000007
【図３Ａ】
2016528563.tif 000008
【図３Ｂ】
2016528563.tif 000009
【図３Ｃ】
2016528563.tif 000010
【図４Ａ】
2016528563.tif 000011
【図４Ｂ】
2016528563.tif 000012
【図５Ａ】
2016528563.tif 000013
【図５Ｂ】
2016528563.tif 000014
【図６Ａ】
2016528563.tif 000015
【図６Ｂ】
2016528563.tif 000016
【図７】
2016528563.tif 000017
【図８】
2016528563.tif 000018
【図９】
2016528563.tif 000019
【図１０】
2016528563.tif 000020
【図１１】
2016528563.tif 000021
【図１２】
2016528563.tif 000022
【国際調査報告】
2016528563.tif 000023