JP2018023767A - 遠隔的に処理されるアプリケーションのストリーミングビデオフレーム上のコンテンツのクラウド処理およびオーバーレイのためのシステムおよび方法 - Google Patents

遠隔的に処理されるアプリケーションのストリーミングビデオフレーム上のコンテンツのクラウド処理およびオーバーレイのためのシステムおよび方法 Download PDF

Info

Publication number
JP2018023767A
JP2018023767A JP2017136744A JP2017136744A JP2018023767A JP 2018023767 A JP2018023767 A JP 2018023767A JP 2017136744 A JP2017136744 A JP 2017136744A JP 2017136744 A JP2017136744 A JP 2017136744A JP 2018023767 A JP2018023767 A JP 2018023767A
Authority
JP
Japan
Prior art keywords
pixel data
data set
video
game
remotely
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017136744A
Other languages
English (en)
Other versions
JP6560716B2 (ja
Inventor
ペリー、デイヴィッド
David Perry
フィリペ、アンドレード ペレイラ、ルイ
Filipe Andrade Pereira Rui
フィリペ、アンドレード ペレイラ、ルイ
ライモン、ノーム
Rimon Noam
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Interactive Entertainment America LLC
Original Assignee
Sony Interactive Entertainment America LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US13/767,806 external-priority patent/US9092910B2/en
Application filed by Sony Interactive Entertainment America LLC filed Critical Sony Interactive Entertainment America LLC
Publication of JP2018023767A publication Critical patent/JP2018023767A/ja
Application granted granted Critical
Publication of JP6560716B2 publication Critical patent/JP6560716B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/79Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
    • A63F13/798Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories for assessing skills or for ranking players, e.g. for generating a hall of fame
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • A63F2300/6692Methods for processing data by generating or executing the game program for rendering three dimensional images using special effects, generally involving post-processing, e.g. blooming

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Processing Or Creating Images (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Generation (AREA)
  • Pinball Game Machines (AREA)
  • Image Processing (AREA)

Abstract

【課題】遠隔的に供与されるコンピュータアプリケーションを拡張する。【解決手段】第1のアプリケーションが1つ以上のコンピューティングシステム上で実行されて、第1のアプリケーションの実行と関連付けられるグラフィック画像のレンダリングのための一連のオリジナルフレーム画素データセットを生成する。第2のアプリケーションが1つ以上のコンピューティングシステム上で実行されて、一連のオリジナルフレーム画素データセット内に存在する1つ以上のキーグラフィック画像を検出する。1つ以上のキーグラフィック画像が検出されると、第2のアプリケーションが、一連のオリジナルフレーム画素データセット内の画素データの一部と代替画素データとの置き換えを指示し、一連のオリジナルフレーム画素データセットの代わりに、一連の変更されたフレーム画素データセットを生成して符号化する。【選択図】図6

Description

ビデオゲームの実行およびレンダリングのためのいくつかのモデルが存在する。最も単純なモデルでは、ゲームは、ゲームのプレーヤーに局在するコンピューティングデバイス上で実行され、レンダリングされる。別のモデルでは、ゲーム状態が、中央サーバーに維持され、コンピューティングネットワークを介してビデオのレンダリングが行われるクライアントに通信される。このモデルは、一般的に、ゲームの状態がゲームの複数のプレーヤーからコンピューティングネットワークを介して受け取られる入力に依存するマルチプレーヤーゲームによって、使用される。第3のモデルでは、ゲーム状態が、ビデオをレンダリングしてビデオストリームとしてコンピューティングネットワークを介してクライアントに配信する中央サーバーに維持される。
本明細書で開示される実施形態は、アプリケーションのクラウド処理と、遠隔のクライアントへのクラウド処理のビデオフレームのストリーミングと、のためのシステムおよび方法に関する。クラウド処理は、第1のアプリケーション(例えば、ビデオゲーム)のビデオフレームを処理し、出力して画像コンテンツを検査するアプリケーションを含むことができ、検査に基づいて、オーバーレイコンテンツを遠隔のクライアントに転送されるビデオフレームに組み込むことができる。一実施形態では、オーバーレイコンテンツは、第1のアプリケーションによって出力される既存の画像コンテンツに組み合わせることができる。組み合わせは、様々な方法で処理することができ、限定しないが、組み合わせは、特定のフレームまたはフレームセット内の画素を置き換えることと、検出された画像対象を追跡することと、それらがフレームからフレームへまたは経時的に移動するときに検出された画像対象の画素を置き換えることと、を含むことができる。
いくつかの実施例では、オーバーレイプロセスが最適化され、その結果、クライアントデバイスのユーザーによって受け取られるビデオフレームは、オーバーレイ処理が行われた(例えば、クライアントの表示器上で)ことを検出することなく、出力は、あたかもネイティブアプリケーション(例えば、第1のアプリケーション)がフレームを生成したように見える。様々な実施例では、第1のアプリケーションはビデオゲームアプリケーションであり得る。オンラインのウェブプレーを可能にするシステムでは、アカウントを有するユーザーは、第1のアプリケーションと考えることができる選択するビデオゲームの大きなライブラリが提供されることがある。この状況において、多くのユーザーにアカウントを提供することができ、多くのユーザーは、ゲームを選択し、単独またはソーシャルネットワークの仲間とのマルチプレーヤーモードのいずれかで、同時にプレーすることができる。第1のアプリケーションを遠隔的に実行している間に、1つ以上の遠隔的に実行されるアプリケーションは、第1のアプリケーションの出力であるビデオフレームを検査し、処理する。これらの遠隔的に実行されるアプリケーションは、オーバーレイプロセスを行い、元々ネイティブアプリケーションの一部ではない新規の体験をゲームプレーに同期して提供することができる。
後述するように、アプリケーションを遠隔的に処理するサーバーは、クラウド処理システムと呼ぶことができる。クラウド処理システムは、仮想ハードウェアおよびソフトウェアを使用することができる多くのサーバーを利用することができ、クラウド処理システムは、複数のデータセンタ間に分散することができる。良好に配置されたデータセンタは、それらの地理的な分散によって、ストリーミングの遅延を縮小することを可能にする。いくつかの実施形態では、負荷平衡化を使用して遅延を縮小し、遠隔のゲームプレーの性能を改善することができる。
一実施形態では、遠隔的に供与されるアプリケーションを拡張するためのシステムが開示される。このシステムは、1つ以上のコンピューティングシステム上で実行される第1のアプリケーションを含み、第1のアプリケーションの実行と関連付けられたグラフィック画像のレンダリングのための一連のオリジナルフレーム画素データセットを生成する。このシステムはまた、1つ以上のコンピューティングシステム上で実行される第2のアプリケーションを含み、一連のオリジナルフレーム画素データセットに存在する1つ以上のキーグラフィック画像を検出する。1つ以上のキーグラフィック画像を検出すると、第2のアプリケーションは、一連のオリジナルフレーム画素データセット内の画素データの一部と代替画素データとの置き換えを指示し、一連のオリジナルフレーム画素データセットの代わりに、一連の変更されたフレーム画素データセットを生成して符号化する。
一実施形態では、遠隔的に供与されるアプリケーションを拡張するための方法が開示される。この方法は、アプリケーションによって生成されたビデオフレームを検索してキーグラフィック画像を検出することを含む。この方法は、ビデオフレーム内のキーグラフィック画像を検出することを含む。この方法は、ユーザーのユニバーサル達成状態を表すオーバーレイ画像を取得することを含む。この方法は、ユーザーの決定されたユニバーサル達成状態をデータ記憶デバイスに記憶されたいくつかの所定のオーバーレイ画像のうちの1つ以上と関連付けることを含む。この方法は、ユーザーの決定されたユニバーサル達成状態と関連付けられたいくつかの所定のオーバーレイ画像のうちの少なくとも1つに対するオーバーレイ構成データを、データ記憶デバイスから入手することを含む。この方法はまた、入手したオーバーレイ構成データをオーバーレイ論理に供給して、ビデオフレーム内に所定のオーバーレイ画像のうちの少なくとも1つを挿入することを含む。
一実施例では、遠隔的に供与されるアプリケーションを拡張するためのプログラム命令を記憶したデータ記憶デバイスが開示される。データ記憶デバイスは、アプリケーションによって生成されたビデオフレームを検索してキーグラフィック画像を検出するプログラム命令を含む。データ記憶デバイスは、ビデオフレーム内のキーグラフィック画像を検出するためのプログラム命令を含む。データ記憶デバイスは、ユーザーのユニバーサル達成状態を表すオーバーレイ画像を取得するためのプログラム命令を含む。データ記憶デバイスは、ユーザーの決定されたユニバーサル達成状態を、データ記憶デバイスに記憶されたいくつかの所定のオーバーレイ画像のうちの1つ以上と関連付けるためのプログラム命令を含む。データ記憶デバイスは、ユーザーの決定されたユニバーサル達成状態と関連付けられたいくつかの所定のオーバーレイ画像のうちの少なくとも1つに対するオーバーレイ構成データをデータ記憶デバイスから入手するためのプログラム命令を含む。データ記憶デバイスはまた、入手したオーバーレイ構成データをオーバーレイ論理に供給して、ビデオフレーム内の所定のオーバーレイ画像のうちの少なくとも1つを挿入するプログラム命令を含む。
本発明の他の態様は、本発明の実施例として示される添付の図面と併せて、以下の詳細な説明からより明らかになるであろう。
本発明の様々な実施形態による、ゲームシステムのブロック図である。 複数のビデオゲームを供与するように構成されたビデオソースの実施形態のブロック図である。 本発明の様々な実施形態による、ゲームビデオ(ビデオフレーム)上のオーバーレイを示す。 本発明の様々な実施形態による、ユーザーの入力をゲームコマンドに対応付けるために構成された入力マップの一部を示す。 本発明の様々な実施形態による、オーバーレイを使用する方法を示す。 本発明の例示的実施形態による、ビデオ拡張論理を含むためのビデオソースの拡張を示す。 拡張論理によって処理されるビデオフレームデータに対応するビデオフレーム画像の実施例を示す。 図7の例示的ビデオフレーム画像と関連付けられた例示的目標画素パターンを示す。 オーバーレイ生成論理からオーバーレイ論理にオーバーレイ構成データの形式で通信されるオーバーレイ画像を示す。 図8に示されるキーグラフィック画像に対応する目標画素パターンの存在を検出するキー検出論理に応答するオーバーレイ画像の挿入後の図7のビデオフレームを示す。 本発明の一実施形態による、遠隔的に供与されるアプリケーションを拡張するためのシステムを示す。 本発明の一実施形態による、遠隔的に供与されるアプリケーションを拡張するための方法を示す。 本発明の一実施形態による、遠隔的に供与されるコンピュータアプリケーションの生成および実行のためのクラウドコンピューティングシステムの図を示す。
以下の説明において、多数の特定の詳細が本発明の完全な理解を提供するために記載されている。しかしながら、それらの特定の詳細の一部または全てがなくても本発明が実施できることは、当業者には明らかであろう。他の例では、周知のプロセス操作は、本発明を不必要に曖昧にしないために詳細に説明されていない。
第1のコンピューティングシステム、すなわち、サーバーシステム/クラウドシステム、で実行されるコンピュータアプリケーションによって生成され、ネットワークを介して送信されて第2のコンピューティングシステムによって表示される表示フレーム画像の画素データセットは、コンピュータアプリケーションからネットワークへのルート内で傍受される。表示フレーム画像内で変更される視覚的コンテンツに対応する傍受された画素データセットの目標部分が特定される。傍受された画素データの目標部分が表示フレーム画像内の対応する視覚的コンテンツを改変するように変更される表示フレーム画像のために、修正された画素データセットが生成される。修正された画素データセットは、ネットワークを介して送信されて第2のコンピューティングシステムによって表示されるように、傍受された画素データセットの代わりに提供される。コンピュータアプリケーションは、画素データセットの傍受および修正を認識しない。
本発明の一実施形態による、遠隔的に供与されるアプリケーションを拡張するためのシステムを、本明細書で開示する。このシステムは、第1のコンピューティングシステムで実行されるコンピュータアプリケーションによって生成されてネットワークを介して送信され、第2のコンピューティングシステム、すなわち、ユーザーのコンピューティングシステムによって表示される表示フレーム画像の画素データを傍受するように定義されたフレーム拡張モジュールを備える。フレーム拡張モジュールは、表示フレーム画像内の変更される視覚的コンテンツに対応する、すなわち、キーグラフィック画像に対応する、傍受された画素データセットの目標部分を特定するように定義される。フレーム拡張モジュールは、傍受された画素データの目標部分が表示フレーム画像内の対応する視覚的コンテンツを改変するように変更される表示フレーム画像のための修正された画素データセットを生成するように定義される。フレーム拡張モジュールは、傍受された画素データセットの代わりに、ネットワークを介して送信されて第2のコンピューティングシステムによって表示される修正された画素データセットを提供するように定義される。フレーム拡張モジュールは、コンピュータアプリケーションと別に定義され、かつコンピュータアプリケーションから独立して操作される。
様々な実施形態では、コンピュータアプリケーションが実行される上述の第1のコンピューティングシステムは、コンピュータアプリケーションが実行される仮想マシンを提供するクラウドコンピューティングプラットフォームであり、ネットワークはインターネットである。さらに、様々な実施形態において、コンピュータアプリケーションは、コンピュータゲームアプリケーションである。
一例示的実施形態では、傍受された画素データセットの目標部分は、コンピュータアプリケーションのユーザーを表す表示フレーム画像内の視覚的コンテンツに対応する。修正された画素データセットは、傍受された画素データセットの目標部分のレンダリングによって描写される対象の外観を変更するように生成することができる。さらに、修正された画素データセットは、傍受された画素データセットの目標部分のレンダリングによって描写される対象を異なる対象の描写と置き換えるように生成することができる。さらに、修正された画素データセットは、傍受された画素データセットの目標部分のレンダリングによって描写される画像をオーバーレイする対象を描写するように生成される。
様々な実施形態では、表示フレーム画像の画素データセットは、第1のフレームレートに従ってネットワークを介して送信され、フレーム拡張モジュールは、第1のフレームレートよりも大きな第2のフレームレートに従って表示フレーム画像のための修正された画素データセットを生成するように定義される。例えば、一実施形態では、第2のフレームレートは、第1のフレームレートの2倍である。
遠隔的に供与されるアプリケーションを拡張するためのシステムはまた、第2のコンピューティングシステムによって表示される際の傍受された画素データの変更された目標部分に関するユーザー入力信号を処理するためのコンピュータ実行可能命令を提供するように定義されたアプリケーション拡張モジュールを備える。コンピュータアプリケーションは、アプリケーション拡張モジュールによって提供されるコンピュータ実行可能命令を認識することなく、実行される。いくつかの例では、フレーム拡張モジュールは、傍受された画素データの以前に変更されて第2のコンピューティングシステムによって表示された目標部分に関するユーザー入力信号の処理の結果としてアプリケーション拡張モジュールから受け取る指示に基づいて、修正された画素データセットを生成するように定義することができる。
遠隔的に供与されるアプリケーションを拡張するための方法は、第1のコンピューティングシステム、すなわち、サーバーシステム/クラウドシステム上でコンピュータアプリケーションを実行して表示フレーム画像の画素データセットを生成し、ネットワークを介して送信し、第2のコンピューティングシステム、すなわち、ユーザーのコンピューティングシステムによって表示することを含む。この方法は、コンピュータアプリケーションによって生成された表示フレーム画像の画素データセットを傍受するための動作を含む。コンピュータアプリケーションは、画素データセットの傍受を認識することなく、実行されることを理解されたい。方法はまた、表示フレーム画像内で変更される視覚的コンテンツに対応する傍受された画素データセットの目標部分を特定するための動作を含む。方法はまた、傍受された画素データの目標部分が表示フレーム画像内の対応する視覚的コンテンツを改変するように変更された表示フレーム画像のための修正された画素データセットを生成するための動作を含む。方法は、修正された画素データセットを、傍受された画素データセットの代わりに、ネットワークを介して送信して第2のコンピューティングシステムによって表示するための動作をさらに含む。
上述の方法の様々な実施形態では、第1のコンピューティングシステムは、コンピュータアプリケーションが実行される仮想マシンを提供するクラウドコンピューティングプラットフォームであり、ネットワークは、インターネットである。さらに、コンピュータアプリケーションは、コンピュータゲームアプリケーションであることができる。いくつかの場合では、傍受された画素データセットの目標部分は、コンピュータアプリケーションのユーザーを表す表示フレーム画像内の視覚的コンテンツに対応する。
いくつかの実施例では、表示フレーム画像の画素データセットは、第1のフレームレートに従ってコンピュータアプリケーションによって生成され、表示フレーム画像のための修正された画素データセットは、第1のフレームレートよりも大きな第2のフレームレートに従って生成される。次に、修正された画素データセットは、傍受された画素データセットの代わりに第1のフレームレートに従ってネットワークを介して送信される。いくつかの実施形態では、第2のフレームレートは、第1のフレームレートの2倍である。
方法はまた、第2のコンピューティングシステムによって表示される際の傍受された画素データの変更された目標部分に関するユーザー入力信号を処理することを含むことができる。コンピュータアプリケーションは、傍受された画素データの変更された目標部分に関するユーザー入力信号の処理を認識することなく、実行されることを理解されたい。いくつかの実施例では、修正された画素データセットは、傍受された画素データの以前に変更されて第2のコンピューティングシステムによって表示された目標部分に関するユーザー入力信号の処理の結果に基づいて、生成される。
図1は、本発明の様々な実施形態による、ゲームシステム100のブロック図である。ゲームシステム100は、実施例として、ビデオストリームを110A、110Bなど別々に番号が付された1つ以上のクライアント110にネットワーク115を介して提供するように構成される。ゲームシステム100は、典型的にはビデオサーバーシステム120および随意のゲームサーバー125を備える。ビデオサーバーシステム120は、未定義のフォーマットを含めて、広範な代替のビデオフォーマットでビデオストリームを提供するように構成することができる。さらに、ビデオストリームは、広範のフレームレートでユーザーに提示されるよう構成されたビデオフレームを含むことができる。典型的なフレームレートは、毎秒30フレーム、毎秒60フレーム、および毎秒120フレームであるが、本発明の代替の実施形態には、より高いまたはより低いフレームレートが含まれる。
クライアント110、すなわち、110A、110Bなどは、端末、パーソナルコンピュータ、ゲーム機、タブレットコンピュータ、電話、セットトップボックス、キオスク、無線デバイス、デジタルパッド、スタンドアロンデバイス、ハンドヘルドゲームプレーデバイス、および/または同様のものを含むことができる。典型的には、クライアント110は、符号化されたビデオストリームを受け取り、ビデオストリームを復号化し、得られたビデオを例えば、ゲームのプレーヤーなどのユーザーに提示するように構成される。符号化されたビデオストリームを受け取ること、および/またはビデオストリームを復号化することのプロセスは、典型的には個別のビデオフレームをクライアント110の受信バッファに記憶することを含む。ビデオストリームは、クライアント110に一体化された表示器上で、またはモニターもしくはテレビなどの別のデバイス上で、ユーザーに提示することができる。
クライアント110は、ネットワーク115を介してビデオストリームを受け取るように構成される。ネットワーク115は、電話ネットワーク、インターネット、無線ネットワーク、電力線ネットワーク、ローカルエリアネットワーク、広域ネットワーク、プライベートネットワーク、および/または同様のものを含む任意のタイプの通信ネットワークであってよい。いくつかの実施形態では、ビデオストリームは、TCP/IPまたはUDP/IPのような標準的なプロトコルを介して通信される。あるいは、ビデオストリームは、独自の規格を介して通信することができる。
クライアント110の典型的な実施例は、プロセッサ、不揮発性メモリ、表示器、復号化論理、ネットワーク通信機能、および入力デバイスを備えるパーソナルコンピュータである。復号化論理は、ハードウェア、ファームウェア、および/またはコンピュータ可読媒体上に、例えば非一時的データ記憶デバイス上に記憶されたソフトウェアを含むことができる。ビデオストリームを復号化(および符号化)するためのシステムは、当技術分野で周知であり、使用される特定の符号化方式に依存して変化する。
クライアント110が受け取るビデオストリーム(および随意でオーディオストリーム)は、ビデオサーバーシステム120によって生成され、提供される。ビデオストリームは、ビデオフレームを含む(およびオーディオフレームは、オーディオフレームを含む)。ビデオフレームは、ユーザーに表示される画像に有意に寄与するように構成される(例えば、それらは適当なデータ構造の画素情報を含む)。本明細書において、「ビデオフレーム」という用語は、視覚的表示のフレーム情報のレンダリングを介してユーザーに示される画像に寄与するように、例えばそれをもたらすように、構成された情報を主に含むフレームを指すために使用される。本明細書で「ビデオフレーム」に関して提供される開示の大部分はまた、「オーディオフレーム」に適用することができる。
クライアント110は、典型的にはユーザーから入力を受け取るように構成される。これらの入力は、ビデオゲームの状態を改変する、そうでなければゲームプレーに影響を与えるように構成されたゲームコマンドを含むことができる。ゲームコマンドは、入力デバイスを使用して受け取ることができる、かつ/またはクライアント110上で実行されるコンピューティング命令によって自動的に生成することができる。クライアント110の入力デバイスは、例えば、キーボード、ジョイスティック、ポインティングデバイス、力フィードバックデバイス、モーションおよび/または場所検出デバイス、マウス、タッチスクリーン、神経インターフェース、カメラ、未開発の入力デバイス、および/または同様のものを含むことができる。受け取ったゲームコマンドは、クライアント110からネットワーク115を介してビデオサーバーシステム120および/またはゲームサーバー125に通信される。
ゲームサーバー125は、ビデオサーバーシステム120と異なるエンティティによって随意で操作することができる。例えば、ゲームサーバー125は、マルチプレーヤーゲームのパブリッシャーによって操作することができる。この実施例では、ビデオサーバーシステム120は、随意でゲームサーバー125によってクライアントとして見られ、ゲームサーバー125の視点からゲームエンジンを実行するクライアントであるように見えるように随意で構成される。ビデオサーバーシステム120とゲームサーバー125との間の通信は、随意でネットワーク115を介して起こる。このように、ゲームサーバー125は、ゲーム状態情報を複数のクライアントに送信するマルチプレーヤーゲームサーバーであることができ、そのうちの1つがビデオサーバーシステム120である。
ビデオサーバーシステム120は、ビデオソース130、I/O(入力/出力)デバイス145、プロセッサ150、および非一時的データ記憶155を含む。ビデオサーバーシステム120は、1つのコンピューティングデバイスを含むことができる、または複数のコンピューティングデバイス間に分散することができる。これらのコンピューティングデバイスは、随意でローカルエリアネットワークのような通信システムを介して接続される。
ビデオソース130は、ビデオストリーム、例えばストリーミングビデオ、または動画を形成する一連のビデオフレームを提供するように構成される。いくつかの実施形態では、ビデオソース130は、ビデオゲームエンジンおよびレンダリング論理を備える。ビデオゲームエンジンは、プレーヤーからゲームコマンドを受け取り、受け取ったコマンドに基づいてビデオゲームの状態のコピーを維持するように構成される。このゲーム状態は、ゲーム環境内の対象の位置を含み、さらにユーザーの視点を含むことができる。ゲーム状態はまた、対象の特性、画像、色および/またはテクスチャを含むことができる。ゲーム状態は、典型的にはゲームルール、ならびに移動、回転、攻撃、フォーカスの設定、対話、使用、および/または同様なものなどのゲームコマンドに基づいて維持される。ゲームエンジンの一部は、随意でゲームサーバー125内に配置される。ゲームサーバー125は、地理的に分散したクライアントを使用して複数のプレーヤーから受け取るゲームコマンドに基づいて、ゲーム状態のコピーを維持することができる。これらの場合では、ゲーム状態は、ゲームサーバー125によってビデオソース130に提供され、そこではゲーム状態のコピーが記憶されてレンダリングが行われる。ゲームサーバー125は、ゲームコマンドをネットワーク115を介してクライアント110から直接に受け取ることができる、かつ/またはゲームコマンドをビデオサーバーシステム120を介して受け取ることができる。
ビデオソース130は、例えばハードウェア、ファームウェア、および/または非一時的データ記憶155などのコンピュータ可読媒体上に記憶されたソフトウェアなどのレンダリング論理を含むことができる。このレンダリング論理は、ゲーム状態に基づいてビデオストリームのビデオフレームを作成するように構成される。レンダリング論理の全部または一部は、随意でグラフィック処理ユニット(GPU)内に配置される。レンダリング論理は、典型的にはゲーム状態および視点に基づいて、対象間の三次元空間的関係を決定するように、かつ/または適切なテクスチャなどを適用するように、構成された処理ステージを含む。レンダリング論理は、次にクライアント110への通信の前に通常符号化される生のビデオを生成する。生のビデオは、遠隔デバイスが互換性のある復号化能力を有する任意の利用可能な符号化方法を使用して符号化することができる。符号化プロセスは、随意で遠隔デバイス上のデコーダへの配信のためにパッケージ化されたビデオストリームを生成する。
ビデオストリームは、フレームサイズおよびフレームレートによって特徴づけられる。典型的なフレームサイズは、800×600、1280×720(例えば、720p)、1024×768を含むが、任意の他のフレームサイズを使用することができる。フレームレートは、毎秒のビデオフレーム数である。ビデオストリームは、異なるタイプのビデオフレームを含むことができる。例えば、限定しないが、H.264規格は「P」フレームおよび「I」フレームを含む。Iフレームは、表示デバイス上の全てのマクロブロック/画素をリフレッシュするための情報を含み、一方Pフレームは、そのサブセットをリフレッシュするための情報を含む。Pフレームは、典型的にはIフレームよりもデータサイズが小さい。本明細書において、「フレームサイズ」という用語は、フレーム内の画素の数を意味する。「フレームデータサイズ」という用語は、フレームを記憶するために必要なバイト数を指すために使用される。
ビデオソース130は、他のビデオに配置されるように構成されたオーバーレイを提供するように随意で構成される。例えば、これらのオーバーレイは、コマンドインターフェース、ログイン命令、ゲームプレーヤーへのメッセージ、他のゲームプレーヤーの画像、他のゲームプレーヤーのビデオフィード(例えば、ウェブカムビデオ)を含むことができる。クライアント110のうちの少なくとも1つは、タッチスクリーンインターフェースを含む例示的実施形態では、オーバーレイは、仮想のキーボード、ジョイスティック、タッチパッド、および/または同様のものを含むことができる。さらに、一例示的実施形態では、プレーヤーの音声のオーバーレイがオーディオストリームに重ねられる。ビデオソース130はまた、1つ以上のオーディオソースを含むことができる。
様々な実施形態では、I/Oデバイス145は、ビデオサーバーシステム120がビデオ、コマンド、情報の要求、ゲーム状態、クライアント識別、プレーヤー識別、ゲームコマンド、セキュリティ情報、オーディオ、および/または同様のものなどの情報を送る、かつ/または受け取るように構成することができる。I/Oデバイス145は、ネットワークカードまたはモデムなどの通信ハードウェアを含むことができる。I/Oデバイス145は、ゲームサーバー125、ネットワーク115、および/またはクライアント110と通信するように構成される。
プロセッサ150は、本明細書に記載のビデオサーバーシステム120の様々な構成要素内に含まれる論理、例えばソフトウェアを実行するように構成される。例えば、プロセッサ150は、ビデオソース130、ゲームサーバー125、および/またはクライアントクオリファイア160の機能を行うようにソフトウェア命令でプログラムすることができる。ビデオサーバーシステム120は、随意でプロセッサ150の複数のインスタンスを含むことができる。プロセッサ150はまた、ビデオサーバー120が受け取るコマンドを実行するように、または本明細書に記載のゲームシステム100の様々な要素の動作を調整するように、ソフトウェア命令でプログラムすることができる。プロセッサ150は、1つ以上のハードウェアデバイスを含むことができる。プロセッサ150は、例えばコンピュータプロセッサなどの電子プロセッサであることを理解されたい。
ビデオサーバーシステム120は、クライアント110の機能を遠隔的に決定するように構成されたクライアントクオリファイア160を随意で含む。これらの機能は、所与のクライアント110自体の機能、および所与のクライアント110とビデオサーバーシステム120との間の1つ以上の通信チャネルの機能の両方を含むことができる。例えば、クライアントクオリファイア160は、ネットワーク115を介して通信チャネルをテストするように構成することができる。
図2は、複数のビデオゲームを供与するように構成されたビデオソース130の実施形態のブロック図である。複数のビデオゲームは、同じビデオゲームの複数のインスタンスおよび/または異なるビデオゲームのインスタンスを含むことができる。ビデオゲームは、随意でマルチプレーヤーゲームである。例えば、ビデオゲームの1つ以上のゲーム状態は、各々が複数のクライアント110から受け取る入力に基づいて、ゲームサーバー125の1つ以上のインスタンスによって、維持することができる。
ビデオゲームは、個別に表記された210A、210B、210Cなどのゲーム論理210の異なるインスタンスを使用して実行される。ゲーム論理210は、ゲーム状態を使用して、ゲームプレーヤーに提示されるように構成されるビデオストリームにレンダリングすることができるゲーム環境を決定するように構成される。いくつかの実施形態では、ゲーム環境は、ゲームのオブジェクト、アバター、オブジェクトの場所、それらの形状、テクスチャ、およびそれらの間の空間的関係、および同様のものを含む三次元仮想環境である。ゲーム環境は、頂点データ、変換データ、およびテクスチャデータ、および/または同様のものを含むことができる。
レンダリングは、典型的には特定のゲームプレーヤーに関連付けられた1つ以上の視点に基づく。ビデオソース130は、ゲーム論理210の複数のインスタンスを含むことができる。ゲーム論理210は、随意でゲームサーバー125のクライアントであることができ、ネットワーク115を介してゲームサーバー125と通信するように構成することができる。
ゲーム論理210は、ゲームコマンドを1つ以上のクライアント110から受け取り、受け取ったコマンドをゲームルールセットに従って処理するように構成される。これらのルールは、例えば、アバターが他のアバターとどのように関わるか、またはゲームオブジェクトでは、アバター移動、ゲームインスタンス管理、および/または同様のものに適用される。ゲーム論理210は、ハードウェア、ファームウェア、および/またはコンピュータ可読媒体に記憶されたソフトウェアを含む。
ゲーム論理210の各インスタンスは、別のコンピューティングデバイス上に配置することができる、またはゲーム論理210のいくつかのインスタンスは、同じコンピューティングデバイス上に配置することができる、またはゲーム論理210の単一のインスタンスは、複数のコンピューティングデバイス全てにわたって配置することができる。ゲームのインスタンスは、ユーザーが現在体験しているゲーム環境の要件に依存して、使用されるコンピューティングデバイスの数および/または識別を動的に改変することができる。同じコンピューティングデバイス上に配置されたゲーム論理210のインスタンスは、随意で別の仮想マシンまたは仮想I/Oシェル内で実行される。いくつかの実施形態では、ゲーム論理210の異なるインスタンスは、ゲームコマンドおよび/またはゲーム状態情報を、例えば必ずしもゲームサーバー125を介して通信することなく、互いに直接に通信するように構成される。
ゲーム論理210は、オペレーティングシステム(OS)215の上部で実行することができる。オペレーティングシステム215は、Windows(登録商標)、Linux(登録商標)、Unix(登録商標)、MacOS(登録商標)、Solaris(登録商標)、および/または同様のものを含むことができる。いくつかの実施形態では、オペレーティングシステム215およびゲーム論理210は、ESX、Hyper−V、および/または同様のものなどの1つ以上の仮想マシンプラットフォーム上で動作することができる。これらの実施形態では、ゲーム論理210の1つ以上のインスタンスは、仮想マシン内で実行することができる。さらに、ゲーム論理210の複数のインスタンスは、オペレーティングシステム210の同じインスタンス上で実行することができる。例えば、図2は、ゲーム論理210Aおよびゲーム論理210Bを示し、両方が同じオペレーティングシステム215上で実行される。同じオペレーティングシステム215上で実行されるゲーム論理210の複数のインスタンスは、同じビデオゲームをプレーするように構成されてもされなくてもよい。
いくつかの実施形態では、ゲーム論理210によって決定されるゲーム環境は、随意の仮想3Dビデオドライバ220に送られる。仮想3Dビデオドライバ220は、ゲーム論理210の視点から、グラフィック処理ユニットを制御する非仮想3Dビデオドライバとして見えるように構成される。ゲーム論理210の各インスタンスは、仮想3Dビデオドライバ220のそれ自体のインスタンスに関連付けることができる、または仮想3Dビデオドライバ220は、ゲーム論理210の2つ以上のインスタンスによって共有することができる。
仮想3Dビデオドライバ220は、受け取ったゲーム環境を(非仮想)3Dドライバ230に送るようにさらに構成される。随意で、3Dドライバ230へのゲーム環境の配信は、仮想3Dビデオドライバ220の様々なインスタンスによって調整される。例えば、配信は、3Dドライバ230がゲーム環境を1つの(または最小数の)仮想3Dビデオドライバ220から一度に受け取るように調整することができる。いくつかの実施形態では、仮想3Dビデオドライバ220のそれぞれは、それらが3Dドライバ230に対して別のプロセスおよびビデオデータの別のソースであると見えるように構成される。このように、3Dドライバ230は、レンダリング後、どのビデオデータがどのビデオフレームにもたらされたかを追跡するように構成される。
3Dドライバ230によって受け取られたビデオデータは、グラフィック処理ユニット(GPU)235に送られ、生のビデオフレームにレンダリングされる。グラフィック処理ユニット235は、複数のビデオストリームを並列でレンダリングするために随意で使用される。ビデオストリームの並列制作は、それらのストリームを同時に生成することを含む。しかしながら、ビデオストリームの並列制作は、必ずしもではないが、個別のフレームをグラフィック処理ユニット内で同時に処理することを含むことができる。例えば、いくつかの実施形態では、3Dドライバ230は、ゲーム論理210の様々な編成要素によって生成されたビデオデータをグラフィック処理ユニット235に二者択一的に送る。ゲーム論理210Aによって生成されたデータは、ビデオフレームを作成するために使用され、次にゲーム論理210Bによって生成されたデータは、ビデオフレームなどを作成するために使用される。この場合、ビデオストリームは並列で生成されて、個別のフレームは直列で生成される。
仮想3Dビデオドライバ220は、3Dドライバ230からの生のレンダリングされたビデオフレームの転送を管理するように構成することができる。例えば、仮想3Dドライバ220は、3Dドライバの制御から共有メモリ240へのビデオフレームの転送を調整するように使用することができる。レンダリング後、ビデオフレームは、グラフィック処理ユニット235のメモリ内に、または3Dドライバ230によって管理されるメモリ内に、存在する。いずれの場合においても、それらは3Dドライバ230の制御下にある。いくつかの実施形態では、仮想3Dビデオドライバ220が3Dドライバ230とのビデオデータおよびフレームの通信を管理するので、それらは、ビデオフレームを特定ビデオ動的符号化パイプライン(DEP)245に関連付けられた共有メモリ240の一部内に配置することができる。ビデオDEP245は、個別にビデオDEP245A、DEP245B、DEP245Cなどとして特定される。いくつかの実施形態では、各ビデオDEP245は、共有メモリ240内の特定のメモリ場所に割り当てられ、それらのメモリ場所からビデオデータを取り出すように構成される。
共有メモリ240は、ビデオデータを効率的に読み書きするように構成されたランダムアクセスメモリ(RAM)または同様のメモリを含む。共有メモリ240は、複数の異なるビデオDEP245のためのビデオデータを記憶するように構成される。異なるビデオDEP245のためのビデオデータは、随意で共有メモリ240に同時に記憶される。共有メモリ240は、単一のハードウェアデバイスから構成することができる、または複数のデバイスを含むことができる。
ビデオDEP245は、グラフィック処理ユニット235を使用してレンダリングされたビデオデータを符号化するようにそれぞれが構成されて動的に割り当てられた符号化パイプラインである。ビデオDEP245の各編成要素は、ビデオDEP245がプロビジョニングされた時点で指定されたビデオフォーマットに符号化するように構成される。このフォーマット指定は、典型的にはクライアント110のうちの1つの必要性、および/またはビデオサーバーシステム120とクライアント110との間の通信経路の能力に基づく。ビデオDEP245は、クライアント110のうちの1つからの要求に応答して、随意で動的にプロビジョニングされる。ビデオDEP245の編成要素は、複数の符号化方式を使用するように、随意で構成することができる。
各ビデオDEP245は、共有メモリ240からビデオデータを取り込み、このビデオデータをビデオDEP245のメモリに転送するように構成されたグラバー247を含む。各ビデオDEP245は、RGBからYUVへなどの色空間変換および/またはビデオフレームの解像度を増減するスケーリング操作を行うように構成されたプリプロセッサ(PRE)250を随意で含む。プリプロセッサ250は、グラフィック処理ユニット235の出力がYUV色空間または或る他の所望の色空間内にある実施形態において随意である。複数のプリプロセッサ250は、異なるサイズのビデオフレームを有する複数のビデオストリームを生成するように構成されたビデオDEP245内に含めることができる。
各ビデオDEP245は、少なくとも1つのエンコーダ(ENC)255を含む。図2の実施例では、エンコーダ255は、個別にエンコーダ255A、エンコーダ255Bなどとして特定される。各エンコーダ255は、特定のコーデック、および随意で特定の色深度および/またはフレームサイズに従って、ビデオデータを符号化するように構成される。
いくつかの実施形態では、ビデオDEP245は、2つ以上の異なるエンコーダを使用して2つ以上の異なるビデオストリームを同時に生成するように構成される。これらのビデオストリームは、グラフィック処理ユニット255によってレンダリングされた同じゲーム環境に基づき、したがって、本質的に同じ材料(可能なオーバーレイを除いて)を含み、異なる場所に送ることができる。例えば、ビデオストリームのうちの1つはクライアント110Aに送ることができ、一方その他はクライアント110Bに送ることができる。あるいは、ビデオストリームのうちの1つはクライアント110Aに送ることができ、その他は第三者がビデオを見ることができるウェブサイトに送ることができる。このウェブサイトは、随意でソーシャルネットワーキングサイトまたはゲームのプレーヤーのサイトの一部である。2つの異なるビデオストリームは、フレームレート、符号化タイプ、フレームサイズ、色深度などで異なることができる。例えば、ソーシャルネットワーキングウェブサイトに配信されるビデオストリームは、クライアント110Aを使用してゲームをプレーするゲームプレーヤーに配信されるビデオストリームよりもはるかに低い品質であることができる。第2のビデオストリームは、ゲームをプレーするゲームプレーヤーに、またはゲームプレーを単に観察している人に、向けることができる。ビデオストリームは、随意で複数の場所に向けられる。
ビデオDEP245Aは、1つ以上のポストプロセッサ(Post)260を随意で含むことができる。ポストプロセッサ260の個別の実施例は、260Aおよび260Bと表記されている。ポストプロセッサ260は、公共または専用のネットワークプロトコルに従って、ネットワークを介する通信に適切なフォーマットでコンテナ内に符号化されたビデオフレームをパッケージ化するように構成される。例えば、AdobeRTMPなどの或るプロトコルは後処理を必要とするが、H.264AnnexBなどの他のビデオ規格は後処理を必要としない。ポストプロセッサ260のそれぞれは、エンコーダ255の特定の編成要素に関連付けることができる、またはいくつかのポストプロセッサ260は、エンコーダ255のうちの1つの編成要素から符号化されたビデオフレームを受け取るように構成することができる。
ポストプロセッサ260の出力は、I/Oデバイス145に向けられて1つ以上のクライアント110に配信される。本明細書に記載のビデオDEP245の要素は、ハードウェア、ファームウェア、および/またはコンピュータ可読媒体に記憶されたソフトウェアを含む。例えば、ビデオDEP245のそれぞれは、メモリにロードされて電子プロセッサを使用して実行されるソフトウェアセットを表すことができる。
ビデオソース130の動作は、典型的には制御装置265によって管理される。制御装置265は、ハードウェア、ファームウェア、および/またはコンピュータ可読媒体に記憶されたソフトウェアを含む。例えば、制御装置265は、メモリに記憶されてマイクロプロセッサを使用して実行されるソフトウェアを含むことができる。
図3は、本発明の様々な実施形態による、ゲームビデオ(ビデオフレーム)上のオーバーレイを示す。3つのオーバーレイ810A、810B、および810C(一括してオーバーレイ810として特定される)が、ビデオゲームによって生成されたビデオに適用されている。これらのオーバーレイ810は、単一のオーバーレイとして、またはいくつかの別々のオーバーレイとして、適用することができる。
一実施例、実施形態では、オーバーレイ810のそれぞれは、その中のテキストによって示された異なるゲーム制御入力を表す。オーバーレイ810Aはキャリッジリターンを表し、オーバーレイ810Bはエスケープキーを表し、およびオーバーレイ810Cはタブキーを表す。他の実施形態では、オーバーレイ810は制御装置コマンドを特定することができることを理解されたい。例えば、オーバーレイ810A、810B、および810Cは、対応する記述的行動用語とともに異なるゲーム制御装置行動(例えば、ボタン押下、スティック移動、傾斜方向、振動など)のためのアイコンを示すことができる。いくつかの実施形態では、これらのオーバーレイ810は、ビデオフレームの特定の領域に関連付けられ、それらの特定の領域は、表示されたゲーム制御入力に対応付けられる。例えば、オーバーレイ810Cによって占められた画像の領域は、タブキーに対応付けられ、この領域をクリックすること、そうでなければ選択することが、タブキーストロークとして解釈される。選択は、ジョイスティックまたはマウスなどのポインティングデバイスによって、またはタッチ感知スクリーン上のこの領域にタッチすることによって、達成することができる。
図3は、ゲームルームまたはゲーム実行の他の態様を管理するために使用することができるようなゲームメニューを表すオーバーレイ820を示す。オーバーレイ820は、異なるゲームコマンド(入力)に対応付けられた複数のアクティブ領域を含む。例えば、オーバーレイ820内の「検索」という言葉で占められた領域は、検索コマンドに対応付けられ、一方「参加」という言葉で占められた領域は、ゲームルームに参加するためのコマンドに対応付けられる。
図3は、ゲームプレーヤーの画像を含むオーバーレイ830をさらに含む。オーバーレイ830は、別のゲームプレーヤーの静止画または実時間画像であってもよい。例えば、図3に示されたビデオフレームがクライアント110Aに送られる場合には、オーバーレイ830は、クライアント110Bのプレーヤーの実時間ビデオフレームを含むことができる。オーバーレイ830は、あるいは、別のプレーヤーの視点からのビデオゲームのビュー、同じプレーヤーの第2の視点からのビュー、または或る現実の事象のビューを含むことができる。一実施例では、オーバーレイ830は、第1の視点が下側の画像を生成するために使用されている同じプレーヤーの第2の視点に基づくビデオフレームを含む。第2の視点は、第2のビデオDEP245を使用して生成することができる。ビデオデータの上に配置することができるオーバーレイの数、形状、大きさ、および特性は、広範で変わることができる。オーバーレイは、ゲームコマンドに対応付けられる場合もそうでない場合もある。オーバーレイは、サーバー側および/またはクライアント側のいずれかで適用することができる。いくつかの実施形態は、サーバー側およびクライアント側の両方で適用されるオーバーレイを含む。
ゲームコマンドに対するユーザー入力の対応付けは、クライアント110がタッチスクリーンまたはポインティングデバイスを含むアプリケーションに限定されない。特定のゲームコマンドに対するユーザー入力の対応付けは、クライアント110で、またはビデオサーバーシステム120で、起こることができる。例えば、アップルコンピュータ社からのiPad(登録商標)は、そのスクリーンへのタッチ、移動、およびタッチの組合せを特定のコマンドに変換するように構成される。iPad(登録商標)およびiPhone(登録商標)はまた、デバイス自体の移動を特定のコマンドに変換するように構成される。しかしながら、他のタイプのクライアント110は、これらの機能を有していなくともよく、この場合は、対応付けがビデオサーバーシステム120で起こることができる。
ゲームコマンドに対するユーザー入力の対応付けは、ルックアップテーブルまたは他のタイプの入力対応付けを使用して、随意で行なわれる。図4は、本発明の様々な実施形態による、ゲームコマンドに対してユーザー入力を対応付けるように構成された入力マップ1010の一部を示す。コマンド対応付けのための入力マップ1010は、図4に示されるものよりも多いまたは少ない記載項目を含むことができる。
入力マップ1010に示される第1の対応付けは、「D」から「K」の文字マップに対する直接文字である。このタイプの対応付けは、実施例として、数人のプレーヤーがキーボードを共有し、それぞれが独自のキーのサブセットを使用するように構成されたゲームで有用であり得る。このようなゲームを地理的に分散したゲームプレーヤーがプレーするとき、各プレーヤーは、同じキーを使用することができるが、プレーヤーの入力の1つがキーボードの異なる部分に対応付けられる。
入力マップ1010に示される第2の対応付けは、キーに対するスクリーン領域の対応付けを含む。具体的には、(100,200)および(400,500)に角を有する矩形がF1のファンクションキーに対応付けられる。この座標は、画像、窓、またはスクリーン画素内にあることができる。このタイプの対応付けは、タッチスクリーンまたはポインティングデバイスが入力として使用されるときに、有用である。このタイプの対応付けは、オーバーレイ内の画像を特定のゲームコマンドに対応付けるために使用することができる。このタイプの対応付けはまた、スクリーン上の指もしくはカーソルの移動、またはタッチスクリーンがタッチされた箇所の数に依存することもできる。
入力マップ1010に示される第3のタイプの対応付けは、キーに対する制御装置ボタンの対応付けを含む。具体的には、「赤ボタン」は「スペースバー」に対応付けられる。このタイプの対応付けは、特定のゲームコマンドにゲーム制御装置の入力を対応付けるために使用することができる。本発明のいくつかの実施形態では、ゲーム制御装置、およびその任意の機能(例えば、ボタン、スティック、傾斜、振動など)は、対応するゲームコマンドに対応付けることができることを理解されたい。
入力マップ1010に示される第4のタイプの対応付けは、キーに対する入力デバイスの運動(「右傾斜」)を対応付けることを含む。このタイプの対応付けは、ジョイスティック、iPhone(商標登録)、iPad(登録商標)、任天堂のWii(登録商標)、または運動もしくは位置感知機能を備えた他のタイプのクライアント110で使用することができる。
入力マップ1010に示される第5のタイプの対応付けは、キー「A」に対するカメラなどの外部デバイスによって検出される対象の移動の対応付けを含む。このタイプの対応付けは、無線またはビデオ運動検出システムを含むクライアント110で随意で使用される。このタイプの対応付けを使用することにより、マイクロソフトからのKinect(登録商標)などの新規のタイプの入力デバイスを使用してプレーされるキーボードを使用してプレーされるようにゲームを設計することを可能にする。
第6のタイプの対応付けは動的であり得る。例えば、タッチスクリーン上の指の運動がジョイスティックの移動に対応付けられる実施形態では、指が最初にスクリーンにタッチする場所をジョイスティックの「中心」位置に動的に対応付けることができる。最初のタッチ位置の上、下、右、左などのスクリーン位置は、それぞれジョイスティックの位置の上方、下方、左、右などに対応付けられる。このように、ジョイスティックの移動は、最初にスクリーン上に指を置き、次に或る方向に指をスライドさせることにより、入力することができる。動的な対応付けはまた、スクリーンに対する多指タッチを含むことができる。例えば、スクリーンの第1の箇所上のタッチは、第2のタッチをゲームコマンドに変換するために使用される対応付けの位置と向きを決定することができる。
図5は、本発明の様々な実施形態による、オーバーレイを使用する方法を示す。オーバーレイは、オーディオまたはビデオであり得る。図5の方法では、ビデオフレームは、グラフィック処理ユニット235を使用して生成され、オーバーレイは、符号化の前に、このビデオフレームに追加される。図5に示される方法の操作は、随意でいくつかのゲーム論理210、いくつかのビデオDEP245、および/またはいくつかのオーディオDEP270を使用して並列で行うことができる。
具体的には、生成ステップ1110で、ゲーム環境が1人以上のゲームプレーヤーからネットワーク115およびクライアント110を介して受け取ったゲームルールおよびゲームコマンドに基づいて生成される。例えば、クライアント110Aのゲームプレーヤーおよびクライアント110Bのゲームプレーヤーは、それぞれゲーム環境が生成されるゲーム状態を更新するために使用されるゲームコマンドを提供する。生成ステップ1110は、図4に関して説明されるように、状態受取ステップ515および3Dデータ決定ステップ520を含むことができる。いくつかの実施形態では、生成ステップ1110は、ゲーム内の事象、ゲームルール、および/または受け取ったゲームコマンドに基づいてオーディオデータを生成することを含む。
随意のレンダリングステップ1120では、生成ステップ1110で生成されたゲーム環境がグラフィック処理ユニット235を使用してレンダリングされる。レンダリングステップ1120は、図4に関して説明されるレンダリングステップ525の実施形態である。レンダリングステップ1120の所産は、ビデオフレームである。レンダリングステップ1120は、生成ステップ1120の所産がオーディオデータだけを含む、かつ/または3Dゲーム環境を含まない場合の実施形態では随意である。
提供ステップ1130では、レンダリングステップ1120で生成されたビデオフレームおよび/または生成ステップ1110で生成されたオーディオデータが、ビデオDEP245Aおよび/またはオーディオDEP270Aなどの1つ以上の符号化パイプラインに提供される。例えば、ビデオフレームは、ビデオDEP245Aに提供することができ、オーディオフレームは、オーディオDEP270Aに提供される。提供ステップ1130は、図4に関して説明されるように、転送ステップ527の実施形態である。
オーバーレイ追加ステップ1140では、ビデオオーバーレイが、提供ステップ1130で提供されたビデオフレームに追加される、かつ/またはオーディオオーバーレイが、提供ステップ1130で提供されたオーディオデータに追加される。オーバーレイ追加ステップ1140は、典型的には図2に関して説明されたようにオーバーレイ論理290および/またはオーバーレイ論理295を使用して行われる。複数のビデオオーバーレイおよび複数のオーディオオーバーレイが、随意でオーバーレイ追加ステップ1140に追加される。オーディオオーバーレイは、ネットワーク115を介してパケットとして1つ以上のクライアント110から受け取るオーディオデータを随意で含む。例えば、オーディオオーバーレイは、複数のクライアント110から受け取るゲームプレーヤーの音声データを含むことができる。
いくつかの実施形態では、ビデオソース130は、多くのクライアント110からオーディオデータを受け取り、オーバーレイ追加ステップ1140は、どのオーディオデータを特定のオーディオオーバーレイで使用するべきかを決定することを含む。例えば、10人のゲームプレーヤーがオーディオソース130を使用することができるときに、これらのプレーヤーのうちの2人または3人の音声データだけをオーディオオーバーレイに含めることができる。どのオーディオデータをオーバーレイに含めるかの決定は、ゲームプレーヤー間の社会的関係に随意で基づく。例えば、1人のゲームプレーヤーは、どの、すなわち、誰の音声データを受け取ることを望むかを選択することができる。社会的関係は、とりわけ、ギルドの、パーティの、同じ戦場またはゲームインスタンスに存在する、かつ/または同じゲーム環境内で互いに近くに位置するアバターを有する、会員を含むことができる。いくつかの実施形態では、オーディオデータの音量は、2つのアバター間のゲーム内距離に応じて調整される。
符号化ステップ1150では、ビデオフレームおよび/またはオーディオフレーム、ならびに任意のオーバーレイが符号化される。これは、エンコーダ255および/またはオーディオエンコーダ280を使用して達成することができる。符号化ステップ1150は、符号化ステップ535の実施形態である。符号化ステップ1150は、オーバーレイ追加ステップ1150の前後に行うことができる。
配信ステップ1160では、符号化ステップ1150で符号化されたビデオフレームおよび/またはオーディオデータが、ネットワーク115を介してクライアント110のうちの1つに提供される。ビデオフレームおよび/またはオーディオデータは、複数の場所に随意で提供される。例えば、同じデータを複数のゲームプレーヤーに提供することができる。配信ステップ1160は、図4に関して説明される提供ステップ545の実施形態である。
随意の対応付けステップ1170では、オーバーレイ追加ステップ1140で適用されたビデオオーバーレイの一部がゲームコマンドに対応付けられる。例えば、ビデオオーバーレイが追加されたビデオフレームの領域が、特定のゲームコマンドへの対応付けとして、入力マップ1010に設定することができる。オーバーレイは、表示器またはビデオフレームの複数の領域に適用することができる。各領域は、異なるゲームコマンドに随意で対応付けられる。入力マップ1010は、ビデオサーバーシステム120またはクライアント110のうちの1つに配置することができる。
随意の受取ステップ1180では、対応付けられたゲームコマンドをビデオソース130で受け取る。対応付けられたゲームコマンドは、随意で、オーバーレイが適用されたビデオフレームの領域から対応付けられたコマンドである。受け取ったゲームコマンドは、クライアント110のうちの1つ、またはビデオサーバーシステム120のいずれかで対応付けられてよい。受け取ったゲームコマンドは、ビデオフレームの状態を更新するために随意で使用される。
図6は、本発明の例示的実施形態による、ビデオ拡張論理2000を含むためのビデオソース130の拡張を示す。拡張論理2000は、いずれかの3Dドライバ230によって提供されるビデオフレームデータを分析して、その中にキーグラフィック画像の存在を検出し、キーグラフィック画像の存在の検出に応じて画像オーバーレイデータをオーバーレイ論理290に提供するように定義される。様々な実施形態において、拡張論理2000は、仮想3Dビデオドライバ220、3Dドライバ230、共有メモリ240、および/またはビデオDEP245のうちの1つ以上からグラバー247を介して、ビデオフレーム日付にアクセスして取得するように定義することができる。ビデオフレームデータは、ビデオフレームデータが符号化されてビデオDEP245からクライアント110のうちの1つ以上に送信される前に、拡張論理2000によって受け取られて処理される。
拡張論理2000は、キーグラフィック画像に対応するターゲット画素パターンの存在を受け取ったビデオフレームデータから検索するように定義されたキー検出論理2001を含む。実装に依存して、キー検出論理2001は、目標画素パターンの存在をビデオフレーム全体の一部またはビデオフレーム全体から検索するように指示することができる。所与の時間にキー検出論理2001によって利用される特定の検索技術は、目標検索パターンと呼ばれる。拡張論理2000は、どんな目標画素パターンを検索すべきか、かつどの目標検索パターンを使用すべきか、について指示することができる。
図7は、拡張論理2000の処理対象となるビデオフレームデータに対応するビデオフレーム画像の実施例を示す。図7のビデオフレーム画像は、実施例として提供され、本明細書に記載の本発明の一切の特徴または態様を限定しないことを理解されたい。図7の例示的ビデオフレーム画像では、目標画素パターンに対応するキーグラフィック画像2101が示されている。キー検出論理2001は、指定された目標検索パターンに従ってビデオフレームデータを検索し、キーグラフィック画像2101に対応する目標画素パターンの存在を検出するように、機能する。一実施形態では、目標検索パターンは、横方向および上下方向にわたるラスタ化検索パターンである。別の実施形態では、目標検索パターンは、同時方式でビデオフレームの異なる領域にわたる複数のラスタ化検索パターンを含む。この実施形態の一実施例では、ビデオフレームの異なる領域が重畳しないように、かつ異なる領域がビデオフレーム全体を一緒に覆うように、ビデオフレームの異なる領域が画定される。
さらに、一実施形態では、キー検出論理2001は、マルチステップのサブターゲット方式で、キーグラフィック画像の検索を実装するように定義することができる。具体的には、キー検出論理2001は、最初に、キーグラフィック画像の一部に対応する目標画素パターンのインジケータ部分をビデオフレームから検索するように指示することができる。一実施形態では、目標画素パターンの一部は、鮮明なコントラストおよび/または特徴的な色を含む画素セットに対応することができる。次に、目標画素パターンのインジケータ部分の存在を検出すると、キー検出論理2001は、目標画素パターンの検出されたインジケータ部分の近傍で目標画素パターンの集中した検索を行うように指示することができる。目標画素パターンのインジケータ部分の検索および検出は、目標画素パターン残体の検索および検出よりも迅速の方式で行うことができ、したがって、目標画素パターンの検索および検出全体の効率が向上することを理解されたい。
一実施形態では、拡張論理2000は、ゲーム論理210のゲーム状態を監視し、かつ監視されたゲーム状態に応答するように定義される。より具体的には、拡張論理2000は、監視されたゲーム状態に依存する特定の目標画素パターンを利用する、かつ/または監視されたゲーム状態に依存する特定の目標検索パターンを利用する、ように指示することができる。拡張論理2000は、どの目標画素パターンおよび目標検索パターンを監視されたゲーム状態の関数として用いるべきかについての指令を提供するゲーム特有拡張プログラム命令に従って、受け取り、動作するように定義することができる。
例えば、図7を参照すると、拡張論理2000は、矢の画像2103が的の画像2105を突いているようなゲーム状態と通知することができる。このゲーム状態の通知に基づいて、拡張論理2000は、図8に示されるように特定の目標画素パターンを使用し、かつ的の画像2105が配置されたビデオフレームの領域だけを含む目標検索パターンを使用し、それにより、キー検出論理2001の労力を集中させるように、命令することができる。
さらに、ゲーム特有拡張プログラム命令は、ビデオフレーム内のターゲット画素パターンが検出されると、どのようにオーバーレイ画像を生成してビデオフレーム内に配置するかについての命令を含むことができる。拡張論理2000は、拡張論理2000によって受け取られる命令に従ってオーバーレイ画像を生成するように定義されたオーバーレイ生成論理2003を含む。オーバーレイ生成論理2003は、オーバーレイ構成データをオーバーレイ論理290に通信するように定義される。オーバーレイ構成データは、ビデオフレーム内のオーバーレイ画像の直接の配置に関連するオーバーレイ画素データおよびデータを含むことができる。本明細書に記載のように、オーバーレイ論理290は、ビデオフレームの適切な画素データを変更することにより、ビデオフレーム内にオーバーレイ画像を挿入するように機能する。実際に拡張論理2000を使用して、オーバーレイ論理290は、拡張論理2000から受け取るオーバーレイ構成データに従ってオーバーレイ画像を挿入するように定義される。
例えば、図9は、オーバーレイ生成論理2003からオーバーレイ論理290にオーバーレイ構成データの形式で通信されるオーバーレイ画像2107を示す。一実施形態では、各ゲーム状態のためのオーバーレイ生成論理2003は、共有メモリ240に記憶され、かつ対応するゲーム状態および目標画素データに指標付けされ、オーバーレイ生成ロジック2003は、拡張論理2000に送信されるゲーム状態情報に依存して共有メモリ240から必要なオーバーレイ構成データを取り出し、必要なオーバーレイ構成データを共有メモリ240に送信することができる。一実施形態では、様々なオーバーレイ画像のためのオーバーレイ構成データは、拡張論理2000がアクセスするデータベースから取得することができる。さらに、一実施形態では、使用されるオーバーレイ構成データは、ゲームをプレーするユーザーの識別またはゲームをプレーするユーザーの専門知識レベルなどのゲームをプレーするユーザーに関連する他のデータなどの、ゲーム状態の外部のパラメータに依存することができる。
オーバーレイ構成論理がオーバーレイ生成論理2003からオーバーレイ論理290に提供されると、オーバーレイ論理290は、対応するオーバーレイ画像をビデオフレーム内に適用/挿入するように機能する。例えば、図10は、図8に示されるキーグラフィック画像2101に対応する目標画素パターンの存在を検出するキー検出論理2001に応答して、オーバーレイ画像2107の挿入後の図7のビデオフレームを示す。オーバーレイ画像2107の挿入は、ビデオフレーム内の画素データをオーバーレイ画像2107の画素データに重畳する(または交換する)ことによって達成できることを理解されたい。拡張論理2000によって提供される、特定のゲーム状態に関連するビデオフレーム内のキーグラフィック画像の検出と、オーバーレイ画像の対応する生成および挿入とは、ゲームの基になるプログラム命令を実際に変更することなく、ゲームのルックアンドフィールを変更する実質的な能力を提供することを理解されたい。さらに、いくつかの実施形態では、オーバーレイ画像の挿入は、ゲームのユーザー/プレーヤーに広告画像を伝えるために使用することができる。
さらに、オーバーレイ画像、またはその一部は、図4に関して説明されたような入力マップを介するユーザー供給コマンドに応答することができる。このように、拡張論理2000によって提供される、特定のゲーム状態に関連付けられたビデオフレーム内のキーグラフィック画像の検出と、オーバーレイ画像の対応する生成および挿入とは、ゲームの基になるプログラム命令を実際に変更することなく、ゲームの機能を実際に変更するために使用することができる。
キー検出論理2001は、所与のビデオフレーム内で、1つ以上の目標検索パターンに従って、1つ以上の目標画素パターンを検索して検出するように指示することができることを理解されたい。さらに、オーバーレイ生成論理2003は、所与のビデオフレームのための1つ以上のオーバーレイ画像のためのオーバーレイ構成データを生成するように指示することができることを理解されたい。したがって、いくつかの例では、オーバーレイ論理290は、単一のビデオフレームに適用される複数のオーバーレイ画像のためのオーバーレイ構成データを受け取る。この場合、複数のオーバーレイ画像は、関係がある、または無関係であることができ、それぞれビデオフレーム内の異なる位置に配置することができる。
図11は、本発明の実施形態による、遠隔的に供与されるアプリケーションを拡張するためのシステムを示す。このシステムは、1つ以上のコンピューティングシステム上で実行される第1のアプリケーション2121を含む。一実施形態では、第1のアプリケーション2121が実行される1つ以上のコンピューティングシステムは、クラウドコンピューティングシステム上で動作する1つ以上の仮想コンピューティングマシンを含む。一実施形態では、第1のアプリケーション2121は、ゲームアプリケーションである。第1のアプリケーション2121は、第1のアプリケーションの実行に関連付けられたグラフィック画像のレンダリングのための一連のオリジナルフレーム画素データセット2123を生成するように実行される。一連のオリジナルフレーム画素データセット2123は、ビデオストリームに対応し、各オリジナルフレーム画素データセットは、それぞれのビデオフレームに対応する。
図11のシステムはまた、1つ以上のコンピューティングシステム上で実行されて一連のオリジナルフレーム画素データセット内に存在する1つ以上のキーグラフィック画像を検出する第2のアプリケーション2125を含む。一実施形態では、第2のアプリケーション2125が実行される1つ以上のコンピューティングシステムは、クラウドコンピューティングシステム上で動作する1つ以上の仮想コンピューティングマシンを含む。一実施形態では、第2のアプリケーション2125は、図6に関して説明された拡張論理2000に対応する。さらに、キーグラフィック画像は、第1のアプリケーション2121の実行の状態を表すことができる。
第2のアプリケーション2125によって、1つ以上のキーグラフィック画像が検出されると、第2のアプリケーションは、一連のオリジナルフレーム画素データセット2123の一部と代替画素データとの置き換えを指示して、一連の変更されたフレーム画素データセット2127を生成するように動作する。一連の変更されたフレーム画素データセット2127は、符号化されて、一連のオリジナルフレーム画素データセット2123の代わりにクライアントコンピュータシステム2129に送信され、クライアントコンピュータシステム2129の視覚的表示器でレンダリングされるように提供される。一実施形態では、第2のアプリケーション2125は、オーバーレイ論理290などのオーバーレイモジュールに命令を提供し、一連のオリジナルフレーム画素データセット2123内の画素データの一部と代替画素データとの置き換えを指示するように動作する。
図12は、本発明の一実施形態による、遠隔的に供与されるアプリケーションを拡張するための方法を示す。図12の方法は、図6に関して説明された拡張論理2000を使用して実装できることを理解されたい。この方法は、アプリケーションによって生成されたビデオフレームを検索してキーグラフィック画像を検出する動作1601を含み、キーグラフィック画像は、アプリケーションの実行時のユーザーの達成レベルを表す。方法はまた、アプリケーションによって生成されたビデオフレーム内のキーグラフィック画像を検出するための動作1602を含む。一実施形態では、アプリケーションは、クラウドコンピューティングプラットフォームの仮想マシン上で実行される遠隔的に供与されるゲームアプリケーションである。ユーザーの達成レベルは、本質的に無限の様々な方法でレンダリングすることができる。しかしながら、実行されるアプリケーションに依存して、ビデオフレーム内の予測される位置およびユーザーの達成レベルを表すキーグラフィック画像の予測される画素パターンは、ビデオフレームを検索する前に知ることができ、したがって、動作1601で集中した検索が可能となる。
ユーザーの達成レベルに対応するキーグラフィック画像が、アプリケーションによって生成されたビデオフレーム内に検出されると、方法は、動作1603に進み、ユーザーのユニバーサル達成状態を表すオーバーレイ画像を取得する。ユーザーのユニバーサル達成状態は、或る期間にわたって1つ以上のタイプの1つ以上のアプリケーション、例えばゲーム、の実行時のユーザーの達成レベルを表すことができる。一実施形態では、動作1603は、ユーザー情報のデータベースに問い合わせをしてユーザーのユニバーサル達成状態を決定することを含む。
方法はまた、ユーザーの決定されたユニバーサル達成状態をデータ記憶デバイスに記憶された複数の所定のオーバーレイ画像のうちの1つ以上に関連付ける動作1605を含む。次に、動作1607を行い、ユーザーの決定されたユニバーサル達成状態に関連付けられた複数の所定のオーバーレイ画像のうちの少なくとも1つのためのオーバーレイ構成データをデータ記憶デバイスから入手する。次に、動作1609を行い、入手したオーバーレイ構成データを例えばオーバーレイ論理290などのオーバーレイ論理に供給し、所定のオーバーレイ画像のうちの少なくとも1つをビデオ画像内に挿入するために符号化し、ユーザーのコンピューティングシステムに送信する。ゲーム世界の状況では、図12の方法は、複数の同様のおよび/または異なるゲームをプレーしているときのユーザーのユニバーサル達成状態を、ユーザーがプレーしている任意のゲームのビデオストリーム内に独自の方法で視覚的にレンダリングすることを可能にすることを理解されたい。さらに、キーグラフィック画像検出およびオーバーレイプロセスを介して、ユーザーのユニバーサル達成状態をゲームによって通常生成される画像の代わりにレンダリングし、ゲームにおけるユーザーの達成レベルを示すことができる。
図13は、本発明の一実施形態により、例えばコンピュータゲームなどの遠隔的に供与されるコンピュータアプリケーションの生成および実行のためのクラウドコンピューティングシステムの図を示す。クラウドコンピューティングシステム1300は、コンピューティング活動に必要な動作を行うように定義された様々な物理的構成要素、すなわち、コンピューティングハードウェア構成要素を含む。物理的構成要素1301は、複数のコンピュータプロセッサ1301A、ある量のコンピュータメモリ1301A、ある量の永続的データ記憶1301C、および複数のネットワークインターフェースカード/チップ(NIC)を含むことができる。上述の様々な物理的構成要素1301は、当技術分野で公知の任意のこのような物理的構成要素1301に対応することができる。さらに、上述の様々な物理的構成要素1301は、実施例を介して提供されることを理解されたい。クラウドコンピューティングシステム1300の様々な実施形態は、上述の実施例よりも多かれ少なかれ物理的構成要素1301を含むことができ、物理的構成要素1301の統合コンピューティング機能がクラウドコンピューティングシステム1300の適切な性能を確保するのに十分である限り、上述以外の例えば電源、冷却システムなどの物理的構成要素1301を含むことができる。
クラウドコンピューティングシステム1300はまた、様々な物理的構成要素1301を使用して複数の仮想マシンを生成して実行するように定義されたハイパーバイザ1303、または同様の制御層も含む。ハイパーバイザ1303によって生成されて実行される各仮想マシンは、本質的に特定のコンピューティングアーキテクチャのソフトウェアエミュレーションである。様々な物理的構成要素1301を使用して、ハイパーバイザ1303は、複数の異なる仮想マシンを同時に生成して実行することができる。所与の仮想マシンは、所与の仮想マシンによってエミュレートされる特定のコンピューティングアーキテクチャに対応する複数のオペレーティングシステム1305のうちの1つ以上に従って動作するように指示することができる。様々なタイプのオペレーティングシステムの実施例は、とりわけ、Windows、MacOSX、Linux、PlayStation(PS1)、PlayStation2(PS2)、PlayStation3(PS3)を含む。例えば、図13に関して、オペレーティングシステムOS1がPS3オペレーティングシステムの場合、OS1は、ハイパーバイザ1303によって生成される仮想マシン上で実行され、PS3コンピューティングアーキテクチャをエミュレートすることができる。同様に、オペレーティングシステムOS5がMacOSXオペレーティングシステムの場合、OS5は、ハイパーバイザ1303によって生成される仮想マシン上で実行され、Macコンピューティングアーキテクチャをエミュレートすることができる。
上述の方式において、ハイパーバイザ1303は、物理的構成要素1301を利用して本質的に任意の数の様々なタイプの仮想マシンを生成して実行し、様々な対応するオペレーティングシステムを実行することができる本質的に任意の数の様々なタイプのコンピューティングアーキテクチャをエミュレートすることができる。したがって、クラウドコンピューティングシステム1300は、必要なコンピューティングアーキテクチャ上で実行される特定のオペレーティングシステムによって定義される本質的に任意のコンピューティングシステムのインスタンスを提供することができる。図13の実施例では、実施例として6つのオペレーティングシステムOS1〜OS6を示しているが、クラウドコンピューティングシステム1300は、オペレーティングシステムの設定数に何ら限定されないことを理解されたい。ハイパーバイザ1303は、本質的に想像可能な任意のコンピューティングアーキテクチャのための仮想マシンを生成し、本質的に想像可能な任意の対応するオペレーティングシステムを実行するように定義することができる。したがって、クラウドコンピューティングシステム1300は、物理的構成要素1301、ハイパーバイザ1303の能力(すなわち、仮想マシンエミュレーションの数およびタイプ)、およびオペレーティングシステムのプロビジョンの数およびタイプに関してスケーラブルである。
クラウドコンピューティングシステム1300はまた、複数のオペレーティングシステム1305のうちの1つ以上による実行のために定義された複数の様々なコンピュータアプリケーション1307を含むことができる。様々なコンピュータアプリケーション1307は、クラウドコンピューティングシステム1300の記憶1301Cに記憶することができ、メモリ1301Bにロードされ、ハイパーバイザ1303による特定の仮想マシンの所与のインスタンスおよび対応するオペレーティングシステムのプロビジョンに関連して必要に応じて実行することができる。任意のオペレーティングシステム1305のために存在する任意のコンピュータアプリケーション1307は、クラウドコンピューティングシステム1300によって実行できることを理解されたい。
図13はまた、複数のホスト1309(Host1〜HostN)を示す。ホスト1309は、特定の仮想マシンのインスタンスおよび対応するオペレーティングシステムへのアクセスを取得して選択されたアプリケーション1307を実行するために、クラウドコンピューティングシステム1300にアクセスしたユーザーのインスタンスを表す。クラウドコンピューティングシステム1300は、多くの様々な方法で仮想マシンおよびオペレーティングシステムをプロビジョニングするように定義され、管理することができることを理解されたい。例えば、いくつかの場合では、クラウドコンピューティングシステム1300にアクセスする各ユーザーに、ユーザーが所望のアプリケーション1307を実行することができる専用の仮想マシンおよび対応するオペレーティングシステムを提供することができる。さらに、いくつかの場合では、クラウドコンピューティングシステム1300にアクセスする複数のユーザーは、各ユーザーが所望のアプリケーション1307を実行することができる仮想マシンおよび対応するオペレーティングシステムを共有することができる。クラウドコンピューティングシステム1300の動作および管理は、最適化され、利用可能な物理的構成要素1301によって可能な最良のサービス品質をクラウドコンピューティングシステム1300にアクセスする各ユーザーに提供することができる。
様々な実施形態では、クラウドコンピューティングシステム1300は、クラウドゲームシステムである。一実施形態では、クラウドゲームシステムは、ユーザーに関連付けられたクライアントデバイスのタイプと、他にクラウドベースのビデオゲームに入力を提供するためにユーザーが利用可能である制御装置のタイプと、を検出するように構成される。例えば、一実施形態では、ユーザーがクラウドゲームシステムにログインすると、ユーザーがクラウドゲームデバイスにアクセスするためのクライアントデバイスのタイプを指定するオプションをユーザーに提示することができる。一実施形態では、一連のクライアントデバイスのオプションが提示され、そのオプションからユーザーはユーザーのクライアントデバイスに対応するものを選択することができる。ユーザーにはまた、ユーザーがビデオゲームをプレーするために使用する制御装置デバイスのタイプを指定するためのオプションを提示することができる。一実施形態では、一連の制御装置のオプションをユーザーに提示することができ、そのオプションからユーザーが選択して、ユーザーの制御装置のハードウェアに対応する制御装置のタイプを指定することができる。他の実施形態では、クラウドゲームシステムは、クライアントデバイスのタイプおよび/または制御装置デバイスのタイプを自動的に検出するように構成することができる。
例えば、ログイン時、クライアントデバイスは、それ自体ならびに接続された制御装置デバイスを特定する情報をクラウドゲームサーバーに送ることができる(例えば、クラウドゲームサーバーからの要求に応答して)。この情報に基づいて、クラウドゲームサーバーは、適切なビデオゲーム出力構成および入力パラメータ構成を決定し、ユーザーのクライアントデバイスおよび制御装置デバイスに最適化されたゲーム体験を提供することができる。一実施形態では、ルックアップテーブルを用い、検出されたクライアントデバイスおよび検出された制御装置デバイスに基づいて、ビデオゲーム構成および入力パラメータ構成を決定する。
所与のビデオゲームが、特定のプラットフォームおよび特定の関連する制御装置デバイスのために開発される場合があることを理解されたい。しかしながら、そのようなゲームは、本明細書で提示されたクラウドゲームシステムを介して利用可能となるとき、ユーザーは異なる制御デバイスを使用してビデオゲームにアクセスすることができる。例えば、ゲームがゲームコンソールおよびその関連の制御装置のために開発された場合があるのに、ユーザーがキーボードおよびマウスを利用してパーソナルコンピュータからゲームのクラウドベースのバージョンにアクセスする場合がある。このような状況において、入力パラメータ構成は、ユーザーの利用可能な制御装置デバイス(この場合、キーボードおよびマウス)によって生成することができる入力からビデオゲームの実行のために許容可能な入力への対応付けを定義することができる。
別の実施例では、ユーザーは、タブレットコンピューティングデバイス、タッチスクリーンスマートフォン、または他のタッチスクリーン駆動デバイスを介してクラウドゲームシステムにアクセスすることができる。この場合、クライアントデバイスおよび制御装置デバイスは、同じデバイス内に一緒に組み込まれ、入力は検出されるタッチスクリーンの入力/ジェスチャを介して提供される。このようなデバイスでは、入力パラメータ構成は、ビデオゲームのためのゲーム入力に対応する特定のタッチスクリーン入力を定義することができる。例えば、ボタン、方向パッド、または他のタイプの入力要素は、ビデオゲームの実行中に表示され、またはオーバーレイされ、ゲーム入力を生成するためにユーザーがタッチできるタッチスクリーン上の位置を示すことができる。特定の方向のスワイプなどのジェスチャまたは特定のタッチ運動もまた、ゲーム入力として検出される。一実施形態では、例えばビデオゲームのゲームプレーを開始する前に、タッチスクリーンを介してゲームプレーのための入力を提供する方法を示すチュートリアルをユーザーに提供し、ユーザーをタッチスクリーン上の制御の動作に順応させることができる。
いくつかの実施形態では、クライアントデバイスは、制御装置デバイスのための接続ポイントとして機能する。すなわち、制御装置デバイスは、無線または有線接続を介してクライアントデバイスと通信し、制御装置デバイスからの入力をクライアントデバイスに送信する。クライアントデバイスは、これらの入力を順番に処理後、入力データをクラウドゲームサーバーにネットワーク(例えば、ルーターなどのローカルネットワーキングデバイスを介してアクセスされる)を介して送信することができる。しかしながら、他の実施形態では、制御装置自体がネットワーク化デバイスであることができ、最初にクライアントデバイスを介してそのような入力を通信する必要がなく、入力をクラウドゲームサーバーにネットワークを介して直接に通信する能力を備える。例えば、制御装置は、ローカルネットワーキングデバイス(上述のルーターなど)に接続し、データをクラウドゲームサーバーとの間で送受信することができる。したがって、クライアントデバイスは、クラウドベースのビデオゲームからビデオ出力を受け取ってローカル表示器上でレンダリングすることをまだ要求されることがあるが、入力をクラウドゲームサーバーにネットワークを介して直接に送信することを可能にし、クライアントデバイスをバイパスすることにより、入力レイテンシを縮小することができる。
一実施形態では、ネットワーク化制御装置およびクライアントデバイスは、或るタイプの入力を制御装置からクラウドゲームサーバーに直接に送り、クライアントデバイスを介して他のタイプの入力を送るように構成することができる。例えば、検出が制御装置自体と別の追加のハードウェアまたは処理に一切依存しない入力は、制御装置からクラウドゲームサーバーにネットワークを介して直接に送ることができ、クライアントデバイスをバイパスする。そのような入力は、ボタン入力、ジョイスティック入力、埋め込まれた運動検出入力(例えば、加速度計、磁力計、ジャイロスコープ)などを含むことができる。しかしながら、追加のハードウェアを利用する、またはクライアントデバイスによる処理を必要とする入力は、クライアントデバイスによって、クラウドゲームサーバーに送ることができる。これらは、クラウドゲームサーバーに送る前にクライアントデバイスによって処理することができるゲーム環境からキャプチャされたビデオまたはオーディオを含む。さらに、制御装置の運動検出ハードウェアからの入力は、キャプチャされたビデオに関連してクライアントデバイスによって処理され、その後クライアントデバイスによってクラウドゲームサーバーに通信される制御装置の位置および運動を検出することができる。様々な実施形態による制御装置デバイスはまた、データ(例えば、フィードバックデータ)をクライアントデバイスから、またはクラウドゲームサーバーから直接に、受け取ることができることを理解されたい。
実施例としてのクラウドコンピューティングシステム1300、または同様のコンピューティングシステムは、ユーザーのコンピューティング端末が、ネットワークを介して、すなわち有線ネットワーク、無線ネットワーク、またはそれらの組合せのいずれかを介して、コンピューティングシステム1300にアクセスすることができる限り、ユーザーのコンピューティング端末を介して実行される遠隔的に供与されるコンピュータアプリケーションへのアクセスをユーザーに提供することができることを理解されたい。言い換えると、クラウドコンピューティングシステム1300は、ユーザーが、クラウドコンピューティングシステム1300によってプロビジョニングされる基となるハードウェア、オペレーティングシステム、およびコンピュータアプリケーションを使用し、ユーザーの選択したコンピュータアプリケーションをユーザーの端末を介してクラウドコンピューティングシステム1300上で実行することを可能にする。
いくつかの実施形態が、本明細書で具体的に示され、かつ/または記載されている。しかしながら、変更および変形は、上述の教示によってカバーされ、その精神および意図する範囲から逸脱することなく、添付の特許請求の範囲の範囲内であることが理解されるであろう。例えば、本明細書に提供された実施例は、ビデオゲームを対象としているが、検討されたシステムおよび方法は、他のインタラクティブビデオシステムに適用することができる。本明細書に提供された実施例は、主にビデオの配信を対象としているが、本明細書に記載されたシステムおよび方法は、オーディオフレームの生成およびオーディオストリームの配信に適用することができる。いくつかの実施形態では、オーディオおよびビデオストリームが、オーディオ‐ビデオシステムの一部として一緒に生成され、配信される。
本明細書に記載の実施形態は、本発明の例証である。本発明のこれらの実施形態は、図を参照して記載されているので、本明細書に記載の方法およびまたは特定の構造の様々な変更または改造は、当業者に明らかになるであろう。本発明の教示に依存し、これらの教示が当技術分野を進歩させた全てのそのような変更、改造、または変形は、本発明の精神および範囲内であると考えられる。したがって、本明細書に提供された記述および図面は、限定的な意味で考えられるべきではなく、本発明は、本明細書に示された実施形態のみに何ら限定されないことが理解される。
本明細書で言及するコンピューティングシステムは、集積回路、マイクロプロセッサ、パーソナルコンピュータ、サーバー、分散型コンピューティングシステム、通信デバイス、ネットワークデバイス、または同様のもの、およびそれらの様々な組合せを含むことができる。コンピューティングシステムはまた、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセス・メモリ(SRAM)、磁気媒体、光媒体、ナノメディア、ハードドライブ、コンパクトディスク、デジタル多用途ディスク(DVD)、および/またはアナログもしくはデジタル情報をデータベースなどに記憶するために構成された他のデバイスのような揮発性および/または不揮発性メモリを含む。上述の論理の様々な実施例は、ハードウェア、ファームウェア、またはコンピュータ可読媒体に保存されたソフトウェア、またはそれらの組合せを含むことができる。コンピュータ可読媒体は、本明細書で使用する場合、紙を明確に除外する。本明細書に記載の方法のコンピュータ実装のステップは、コンピュータ可読媒体に記憶されて実行されるとコンピューティングシステムにステップを実行させる命令セットを含むことができる。
プログラムソフトウェアからの命令に従って特定の機能を行うようにプログラムされたコンピューティングシステムは、それらの特定の機能を行う特別目的コンピューティングシステムである。それらの特定の機能を行う間に特別目的コンピューティングシステムによって操作されるデータは、コンピューティングシステムのバッファ内に少なくとも電気的に保存され、記憶されたデータへのそれぞれの改変によって、特別目的コンピューティングシステムを1つ状態から次の状態へ物理的に改変させる。本明細書に記載の論理は、ハードウェア、ファームウェア、および/またはコンピュータ可読媒体に記憶されたソフトウェアを含むことができる。この論理は、電子デバイス内に実装して特別目的コンピューティングシステムを生成することができる。
本発明の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な家電、ミニコンピュータ、メインフレームコンピュータおよび同様のものを含む様々なコンピュータシステム構成で実施することができる。本発明はまた、ネットワークを介してリンクされた遠隔処理デバイスによってタスクが行われる分散型コンピューティング環境で実施することもできる。
上述の実施形態を念頭に置き、本発明がコンピュータシステムに記憶されたデータを伴う様々なコンピュータ実装動作を利用することができることを理解されたい。これらの動作は、物理的量の物理的操作を必要とするものである。本発明の一部を形成する本明細書に記載の動作のいずれも、有用なマシン動作である。本発明はまた、これらの動作を行うデバイスまたは装置に関連する。装置は、特別目的コンピュータのように、必要な目的のために特別に構成することができる。特別目的コンピュータとして定義されると、コンピュータはまた、特別目的の一部ではない他の処理、プログラム実行またはルーチンを行うことができ、同時に特別目的のために動作することもできる。あるいは、動作は、コンピュータメモリ、キャッシュに記憶された、またはネットワークを介して取得された1つ以上のコンピュータプログラムによって選択的に起動される、または構成された汎用コンピュータによって処理することができる。データがネットワークを介して取得されるとき、データは、例えばコンピューティングリソースのクラウドなどのネットワーク上の他のコンピュータによって処理することができる。
本発明の実施形態はまた、データを1つの状態から別の状態に変換するマシンとして定義することができる。変換されたデータは、記憶装置に記憶され、プロセッサによって操作することができる。プロセッサは、このようにデータを1つのものから別のものに変換する。さらに、方法は、ネットワークを介して接続できる1つ以上のマシンまたはプロセッサによって処理することができる。各マシンは、データを1つの状態またはものから別の状態またはものに変換することができ、さらにデータを処理し、データを記憶装置に保存し、データをネットワークを介して送信し、結果を表示し、または結果を別のマシンに通信することができる。
本発明はまた、非一時的コンピュータ可読媒体上のコンピュータ可読コードとして具現化することができる。非一時的コンピュータ可読媒体は、コンピュータシステムによって後に読み取ることができるデータを記憶できる任意のデータ記憶装置である。非一時的コンピュータ可読媒体の実施例は、ハードドライブ、ネットワーク接続ストレージ(NAS)、リードオンリーメモリ、ランダムアクセスメモリ、CD−ROM、CD−R、CD−RW、磁気テープ、および他の光学的および非光学的データ記憶デバイスを含む。非一時的コンピュータ可読媒体は、ネットワーク連結されたコンピュータシステムにわたって分散されたコンピュータ可読有形媒体を含むことができ、コンピュータ可読コードは、分散方式で記憶して実行することができる。
方法の動作は特定の順番で説明したが、他のハウスキーピング動作を動作の間で行うことができる、または、動作は、若干異なる時間で起こるように調整することができる、もしくは方法動作の処理が所望の方法で行われる限り、処理に関連する様々な間隔で処理動作の発生を可能にするシステムに分散することができることを理解されたい。
前述の本発明は、理解を明確にする目的のためにある程度詳細に説明してきたが、或る改変および変更を添付の特許請求の範囲内で実施できることは明らかであろう。したがって、本実施形態は、例証であって限定的なものではないと考えられるべきであり、本発明は、本明細書に与えられた詳細に限定されるものではなく、添付の特許請求の範囲および均等物内で変更することができる。

Claims (20)

  1. 遠隔的に供与されるコンピュータアプリケーションを拡張するためのシステムであって、
    第1のコンピューティングシステムで実行される、遠隔的に供与されるコンピュータアプリケーションによって生成され、ネットワークを介して送信されて第2のコンピューティングシステムによって表示される表示フレーム画像の画素データセットを傍受するように構成され、
    表示フレーム画像内の変更されるべき視覚的コンテンツに対応する画素データセットの目標部分を対象として前記画素データセットを検索することにより、傍受された前記表示フレーム画像の前記画素データセットの目標部分を特定するように構成され、
    前記画素データセットの目標部分が変更された前記表示フレーム画像の修正された画素データセットを生成するように構成され、
    修正された画素データセットを、ネットワークを介して送信されて前記第2のコンピューティングシステムによって表示されるように、傍受された表示フレーム画像の画素データセットの代わりに提供するように構成されたフレーム拡張モジュールを備え、
    前記遠隔的に供与されるコンピュータアプリケーションが、前記表示フレーム画像の画素データセットの傍受、前記画素データセットの前記目標部分の特定、修正された画素データセットの生成、及びネットワークを介して傍受された画素データセットの代わりに送信される修正された画素データセットの提供を含む前記フレーム拡張モジュールの動作に関与しないように、前記フレーム拡張モジュールは、前記第1のコンピューティングシステムで実行される前記遠隔的に供与されるコンピュータアプリケーションとは独立して構成されることを特徴とする遠隔的に供与されるコンピュータアプリケーションを拡張するためのシステム。
  2. 前記目標部分を対象とする前記画素データセットの検索は、指定された目標検索パターンにしたがって実行される請求項1に記載の遠隔的に供与されるコンピュータアプリケーションを拡張するためのシステム。
  3. 前記指定された目標検索パターンは、前記表示フレーム画像にわたるラスタ化検索パターンである請求項2に記載の遠隔的に供与されるコンピュータアプリケーションを拡張するためのシステム。
  4. 前記指定された目標検索パターンは、前記表示フレーム画像の異なる領域にわたる複数のラスタ化検索パターンを含み、前記フレーム拡張モジュールは、前記複数のラスタ化検索パターンにしたがって、前記表示フレーム画像の異なる領域にわたって同時に検索するよう構成される請求項2に記載の遠隔的に供与されるコンピュータアプリケーションを拡張するためのシステム。
  5. 前記表示フレーム画像の異なる領域は重畳せず、共に前記表示フレーム画像の全体を覆う請求項4に記載の遠隔的に供与されるコンピュータアプリケーションを拡張するためのシステム。
  6. 目標部分を対象とした前記画素データセットの検索は、画素データのインジケータ部分を検出するために前記画素データセットの第1の検索を実行し、前記画素データのインジケータ部分を検出すると、検出された画素データのインジケータ部分の周辺で前記画素データセットの目標部分を対象とした第2の検索を実行することによりなされる請求項1に記載の遠隔的に供与されるコンピュータアプリケーションを拡張するためのシステム。
  7. 前記画素データのインジケータ部分は、鮮明なコントラスト、特徴的な色、又は鮮明なコントラスト及び特徴的な色の組合せを含む請求項6に記載の遠隔的に供与されるコンピュータアプリケーションを拡張するためのシステム。
  8. 前記表示フレーム画像の画素データセットは、前記第1のコンピューティングシステムで実行される前記遠隔的に供与されるコンピュータアプリケーションにより生成されるビデオストリームのビデオフレームを定義する請求項1に記載の遠隔的に供与されるコンピュータアプリケーションを拡張するためのシステム。
  9. 前記第1のコンピューティングシステムは、クラウドコンピューティングシステム上で動作する1以上の仮想コンピューティングマシンを含む請求項1に記載の遠隔的に供与されるコンピュータアプリケーションを拡張するためのシステム。
  10. 前記フレーム拡張モジュールは、クラウドコンピューティングシステム上で動作する1以上の仮想コンピューティングマシンに実装される請求項9に記載の遠隔的に供与されるコンピュータアプリケーションを拡張するためのシステム。
  11. 遠隔的に供与されるコンピュータアプリケーションを拡張するための方法であって、
    第1のコンピューティングシステムで実行される、遠隔的に供与されるコンピュータアプリケーションによって生成され、ネットワークを介して送信されて第2のコンピューティングシステムによって表示される表示フレーム画像の画素データセットを傍受するようにプロセッサを動作させるステップと、
    表示フレーム画像内の変更されるべき視覚的コンテンツに対応する画素データセットの目標部分を対象として前記画素データセットを検索することにより、傍受された前記表示フレーム画像の前記画素データセットの目標部分を特定するように前記プロセッサを動作させるステップと、
    前記画素データセットの目標部分が変更された前記表示フレーム画像の修正された画素データセットを生成するように前記プロセッサを動作させるステップと、
    修正された画素データセットを、ネットワークを介して送信されて前記第2のコンピューティングシステムによって表示されるように、前記プロセッサにより傍受された表示フレーム画像の画素データセットの代わりに提供するように前記プロセッサを動作させるステップと、を備え、
    前記遠隔的に供与されるコンピュータアプリケーションは、前記表示フレーム画像の画素データセットの傍受、前記画素データセットの前記目標部分の特定、修正された画素データセットの生成、及びネットワークを介して傍受された画素データセットの代わりに送信される修正された画素データセットの提供に関与しないことを特徴とする遠隔的に供与されるコンピュータアプリケーションを拡張するための方法。
  12. 前記目標部分を対象とする前記画素データセットの検索は、指定された目標検索パターンにしたがって実行される請求項11に記載の遠隔的に供与されるコンピュータアプリケーションを拡張するための方法。
  13. 前記指定された目標検索パターンは、前記表示フレーム画像にわたるラスタ化検索パターンである請求項12に記載の遠隔的に供与されるコンピュータアプリケーションを拡張するための方法。
  14. 前記指定された目標検索パターンは、前記表示フレーム画像の異なる領域にわたる複数のラスタ化検索パターンを含み、前記表示フレーム画像の異なる領域が、前記複数のラスタ化検索パターンにしたがって同時に検索される請求項12に記載の遠隔的に供与されるコンピュータアプリケーションを拡張するための方法。
  15. 前記表示フレーム画像の異なる領域は重畳せず、共に前記表示フレーム画像の全体を覆う請求項14に記載の遠隔的に供与されるコンピュータアプリケーションを拡張するための方法。
  16. 目標部分を対象として前記画素データセットを検索するステップは、画素データのインジケータ部分を検出するために前記画素データセットの第1の検索を実行するステップと、前記画素データのインジケータ部分を検出すると、検出された画素データのインジケータ部分の周辺で前記画素データセットの目標部分を対象とした第2の検索を実行するステップとを含む請求項11に記載の遠隔的に供与されるコンピュータアプリケーションを拡張するための方法。
  17. 前記画素データのインジケータ部分は、鮮明なコントラスト、特徴的な色、又は鮮明なコントラスト及び特徴的な色の組合せを含む請求項16に記載の遠隔的に供与されるコンピュータアプリケーションを拡張するための方法。
  18. 前記表示フレーム画像の画素データセットは、前記第1のコンピューティングシステムで実行される前記遠隔的に供与されるコンピュータアプリケーションにより生成されるビデオストリームのビデオフレームを定義する請求項11に記載の遠隔的に供与されるコンピュータアプリケーションを拡張するための方法。
  19. 前記第1のコンピューティングシステムは、クラウドコンピューティングシステム上で動作する1以上の仮想コンピューティングマシンを含む請求項11に記載の遠隔的に供与されるコンピュータアプリケーションを拡張するための方法。
  20. 前記プロセッサは、クラウドコンピューティングシステム上で動作する1以上の仮想コンピューティングマシンに実装されるフレーム拡張モジュールに含まれる請求項11に記載の遠隔的に供与されるコンピュータアプリケーションを拡張するための方法。
JP2017136744A 2012-11-16 2017-07-13 遠隔的に処理されるアプリケーションのストリーミングビデオフレーム上のコンテンツのクラウド処理およびオーバーレイのためのシステムおよび方法 Active JP6560716B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201261727370P 2012-11-16 2012-11-16
US61/727,370 2012-11-16
US13/767,806 2013-02-14
US13/767,806 US9092910B2 (en) 2009-06-01 2013-02-14 Systems and methods for cloud processing and overlaying of content on streaming video frames of remotely processed applications

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2015542754A Division JP6178426B2 (ja) 2012-11-16 2013-11-13 遠隔的に処理されるアプリケーションのストリーミングビデオフレーム上のコンテンツのクラウド処理およびオーバーレイのためのシステムおよび方法

Publications (2)

Publication Number Publication Date
JP2018023767A true JP2018023767A (ja) 2018-02-15
JP6560716B2 JP6560716B2 (ja) 2019-08-14

Family

ID=49724659

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2015542754A Active JP6178426B2 (ja) 2012-11-16 2013-11-13 遠隔的に処理されるアプリケーションのストリーミングビデオフレーム上のコンテンツのクラウド処理およびオーバーレイのためのシステムおよび方法
JP2017136744A Active JP6560716B2 (ja) 2012-11-16 2017-07-13 遠隔的に処理されるアプリケーションのストリーミングビデオフレーム上のコンテンツのクラウド処理およびオーバーレイのためのシステムおよび方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2015542754A Active JP6178426B2 (ja) 2012-11-16 2013-11-13 遠隔的に処理されるアプリケーションのストリーミングビデオフレーム上のコンテンツのクラウド処理およびオーバーレイのためのシステムおよび方法

Country Status (10)

Country Link
EP (1) EP2919874B1 (ja)
JP (2) JP6178426B2 (ja)
KR (1) KR101703061B1 (ja)
CN (2) CN104870063B (ja)
BR (1) BR112015011245B1 (ja)
CA (2) CA3014348C (ja)
IN (1) IN2015DN03768A (ja)
MX (1) MX346529B (ja)
RU (1) RU2617914C2 (ja)
WO (1) WO2014078452A1 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6098691B1 (ja) * 2015-10-16 2017-03-22 株式会社セガゲームス 映像生成システム、制御装置および加工装置
CN105430007A (zh) * 2015-12-24 2016-03-23 北京奇虎科技有限公司 在应用中进行语音通信的方法和装置
US10558342B2 (en) * 2016-07-28 2020-02-11 Troy Plota Automated pixel shifting within a digital image
JP7173249B2 (ja) * 2017-05-09 2022-11-16 ソニーグループ株式会社 クライアント装置、表示システム、クライアント装置の処理方法およびプログラム
JP6946724B2 (ja) 2017-05-09 2021-10-06 ソニーグループ株式会社 クライアント装置、クライアント装置の処理方法、サーバおよびサーバの処理方法
CA3068401A1 (en) * 2017-06-27 2019-01-03 Pixellot Ltd. Method and system for fusing user specific content into a video production
US10594901B2 (en) * 2017-11-17 2020-03-17 Ati Technologies Ulc Game engine application direct to video encoder rendering
US11290515B2 (en) 2017-12-07 2022-03-29 Advanced Micro Devices, Inc. Real-time and low latency packetization protocol for live compressed video data
US11077364B2 (en) * 2018-04-02 2021-08-03 Google Llc Resolution-based scaling of real-time interactive graphics
WO2019239396A1 (en) * 2018-06-12 2019-12-19 Kliots Shapira Ela Method and system for automatic real-time frame segmentation of high resolution video streams into constituent features and modifications of features in each frame to simultaneously create multiple different linear views from same video source
US20210383579A1 (en) * 2018-10-30 2021-12-09 Pak Kit Lam Systems and methods for enhancing live audience experience on electronic device
CN111724311A (zh) * 2019-03-22 2020-09-29 上海晶赞融宣科技有限公司 显示设备的图像显示方法及装置、存储介质、终端
CN110174954B (zh) * 2019-05-27 2020-06-23 贵阳动视云科技有限公司 一种处理操控信号的方法及设备
RU2733488C1 (ru) * 2020-03-24 2020-10-01 Общество с ограниченной ответственностью "Игровые решения" (ООО "Игровые решения") Способ и система отображения курсора при трансляции видеопотока
WO2021221612A1 (en) * 2020-04-28 2021-11-04 Google Llc Adjusting rendered content for display at a client
WO2021230862A1 (en) 2020-05-13 2021-11-18 Google Llc Level changing in a game streaming system
CN112702625B (zh) * 2020-12-23 2024-01-02 Oppo广东移动通信有限公司 视频处理方法、装置、电子设备及存储介质
EP4347071A1 (en) * 2021-05-28 2024-04-10 Microsoft Technology Licensing, LLC Providing personalized content for unintrusive online gaming experience
CN115953543B (zh) * 2023-03-14 2023-05-12 北京天图万境科技有限公司 一种逐像素含时序拟物一致性处理的方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5422674A (en) * 1993-12-22 1995-06-06 Digital Equipment Corporation Remote display of an image by transmitting compressed video frames representing background and overlay portions thereof
JP2001137551A (ja) * 1999-11-11 2001-05-22 Namco Ltd ゲームシステム及び情報記憶媒体
US20090027494A1 (en) * 2007-07-27 2009-01-29 Sportvision, Inc. Providing graphics in images depicting aerodynamic flows and forces
JP2012090120A (ja) * 2010-10-20 2012-05-10 Sony Computer Entertainment Inc 画像処理システム、画像処理方法、動画像送信装置、動画像受信装置、プログラム及び情報記憶媒体
US20120269494A1 (en) * 2011-04-22 2012-10-25 Qualcomm Incorporated Augmented reality for live events

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4040117B2 (ja) * 1995-06-30 2008-01-30 ソニー株式会社 ゲーム機及びゲーム機制御方法
US7360234B2 (en) * 2002-07-02 2008-04-15 Caption Tv, Inc. System, method, and computer program product for selective filtering of objectionable content from a program
JP2004193809A (ja) * 2002-12-10 2004-07-08 Matsushita Electric Ind Co Ltd 通信装置
US9077991B2 (en) * 2002-12-10 2015-07-07 Sony Computer Entertainment America Llc System and method for utilizing forward error correction with video compression
JP4261211B2 (ja) * 2003-02-10 2009-04-30 株式会社バンダイナムコゲームス ゲーム装置及び情報記憶媒体
US20070195097A1 (en) * 2003-12-19 2007-08-23 Koninklijke Philips Electronics N.V. Interactive Video
US20050212968A1 (en) * 2004-03-24 2005-09-29 Ryal Kim A Apparatus and method for synchronously displaying multiple video streams
JP4683615B2 (ja) * 2005-01-14 2011-05-18 株式会社バンダイナムコゲームス ネットワークランキングシステム及びプログラム
JP4312732B2 (ja) * 2005-03-31 2009-08-12 株式会社スクウェア・エニックス 情報表示制御装置及び方法、プログラム、並びに記録媒体
GB2447095B (en) * 2007-03-01 2010-07-28 Sony Comp Entertainment Europe Entertainment device and method
US8269822B2 (en) * 2007-04-03 2012-09-18 Sony Computer Entertainment America, LLC Display viewing system and methods for optimizing display view based on active tracking
KR20090002789A (ko) * 2007-07-04 2009-01-09 김연호 인터넷 대전 게임을 이용한 언어 학습 장치 및 그 방법
US20090102616A1 (en) * 2007-10-22 2009-04-23 Microsoft Corporation Time-based access control for an entertainment console
EP2263190A2 (en) * 2008-02-13 2010-12-22 Ubisoft Entertainment S.A. Live-action image capture
JP5308727B2 (ja) * 2008-06-17 2013-10-09 株式会社ソニー・コンピュータエンタテインメント ゲーム装置
US8926435B2 (en) * 2008-12-15 2015-01-06 Sony Computer Entertainment America Llc Dual-mode program execution
US8284892B2 (en) * 2008-12-22 2012-10-09 General Electric Company System and method for image reconstruction
US8392497B2 (en) * 2009-11-25 2013-03-05 Framehawk, LLC Systems and algorithm for interfacing with a virtualized computing service over a network using a lightweight client
CN102145228B (zh) * 2010-02-05 2015-04-29 Pc概念有限公司 使用视频录像构建交互式视频游戏的方法和装置
US9264515B2 (en) * 2010-12-22 2016-02-16 Intel Corporation Techniques for mobile augmented reality applications
JP5724544B2 (ja) * 2011-03-31 2015-05-27 ソニー株式会社 画像処理装置、画像処理方法及びプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5422674A (en) * 1993-12-22 1995-06-06 Digital Equipment Corporation Remote display of an image by transmitting compressed video frames representing background and overlay portions thereof
JP2001137551A (ja) * 1999-11-11 2001-05-22 Namco Ltd ゲームシステム及び情報記憶媒体
US20090027494A1 (en) * 2007-07-27 2009-01-29 Sportvision, Inc. Providing graphics in images depicting aerodynamic flows and forces
JP2012090120A (ja) * 2010-10-20 2012-05-10 Sony Computer Entertainment Inc 画像処理システム、画像処理方法、動画像送信装置、動画像受信装置、プログラム及び情報記憶媒体
US20120269494A1 (en) * 2011-04-22 2012-10-25 Qualcomm Incorporated Augmented reality for live events

Also Published As

Publication number Publication date
WO2014078452A1 (en) 2014-05-22
CA2890814A1 (en) 2014-05-22
CN104870063A (zh) 2015-08-26
IN2015DN03768A (ja) 2015-10-02
KR101703061B1 (ko) 2017-02-06
RU2015122884A (ru) 2017-01-10
CA3014348A1 (en) 2014-05-22
CN108525299A (zh) 2018-09-14
MX346529B (es) 2017-03-22
CA3014348C (en) 2022-06-21
KR20150086499A (ko) 2015-07-28
BR112015011245A2 (pt) 2019-12-17
EP2919874A1 (en) 2015-09-23
JP2016505291A (ja) 2016-02-25
BR112015011245A8 (pt) 2022-08-16
MX2015006200A (es) 2015-12-09
JP6178426B2 (ja) 2017-08-09
JP6560716B2 (ja) 2019-08-14
EP2919874B1 (en) 2022-04-13
CN104870063B (zh) 2018-05-04
CA2890814C (en) 2019-07-02
CN108525299B (zh) 2021-09-21
BR112015011245B1 (pt) 2023-03-28
RU2617914C2 (ru) 2017-04-28

Similar Documents

Publication Publication Date Title
JP6560716B2 (ja) 遠隔的に処理されるアプリケーションのストリーミングビデオフレーム上のコンテンツのクラウド処理およびオーバーレイのためのシステムおよび方法
US9707485B2 (en) Systems and methods for cloud processing and overlaying of content on streaming video frames of remotely processed applications
US9965253B2 (en) Methods and systems for generation and execution of miniapp of computer application served by cloud computing system
US11077363B2 (en) Video game overlay
JP6313037B2 (ja) クラウドコンピューティングシステムによってサービス提供されるコンピュータアプリケーションのミニアプリケーション生成および実行のための方法およびシステム
US9937423B2 (en) Voice overlay
US10226700B2 (en) Server system for processing graphic output and responsively blocking select input commands

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180620

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180731

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20181031

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20181228

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190625

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190719

R150 Certificate of patent or registration of utility model

Ref document number: 6560716

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250