JP4996603B2 - 事前符号化マクロブロックを使用するビデオゲームシステム - Google Patents

事前符号化マクロブロックを使用するビデオゲームシステム Download PDF

Info

Publication number
JP4996603B2
JP4996603B2 JP2008520254A JP2008520254A JP4996603B2 JP 4996603 B2 JP4996603 B2 JP 4996603B2 JP 2008520254 A JP2008520254 A JP 2008520254A JP 2008520254 A JP2008520254 A JP 2008520254A JP 4996603 B2 JP4996603 B2 JP 4996603B2
Authority
JP
Japan
Prior art keywords
macroblocks
video
encoded
video game
video frame
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.)
Expired - Fee Related
Application number
JP2008520254A
Other languages
English (en)
Other versions
JP2009503921A5 (ja
JP2009503921A (ja
Inventor
クレイグ,ロバート
マーサー,クリフォード,ウェイン
シグムント,ウルリッヒ
Original Assignee
タグ ネットワークス,インコーポレイテッド
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 US11/178,183 external-priority patent/US8284842B2/en
Priority claimed from US11/178,182 external-priority patent/US20070009042A1/en
Priority claimed from US11/178,189 external-priority patent/US8118676B2/en
Application filed by タグ ネットワークス,インコーポレイテッド filed Critical タグ ネットワークス,インコーポレイテッド
Publication of JP2009503921A publication Critical patent/JP2009503921A/ja
Publication of JP2009503921A5 publication Critical patent/JP2009503921A5/ja
Application granted granted Critical
Publication of JP4996603B2 publication Critical patent/JP4996603B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • 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/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/355Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an encoded video stream for transmitting to a mobile phone or a thin client
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/162User input
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • H04N19/23Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding with coding of regions that are present throughout a whole video segment, e.g. sprites, background or mosaic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • 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/40Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
    • A63F2300/406Transmission via wireless network, e.g. pager or GSM
    • 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/40Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
    • A63F2300/407Data transfer via internet
    • 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/40Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
    • A63F2300/409Data transfer via television network
    • 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/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/534Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for network load management, e.g. bandwidth optimization, latency reduction
    • 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/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/538Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for performing operations on behalf of the game client, e.g. rendering
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Closed-Circuit Television Systems (AREA)

Description

発明の分野
本発明は、包括的にはインタラクティブビデオゲームシステムに関し、詳細には、事前符号化マクロブロックを使用するインタラクティブビデオゲームシステムに関する。
背景
ビデオゲームはエンターテインメントの人気のある形態である。2人以上の個人が共通の擬似環境内で同時にプレイするマルチプレーヤゲームは、特に、これまで以上に多くのユーザが、インターネットとも呼ばれるワールドワイドウェブ(WWW)等のネットワークを使用して互いに対話することができるので、ますます一般的になりつつある。ビデオゲームをネットワーク化された環境で実施するには、いくつかの問題がある。
具体的には、ビデオゲーム、特に高品質グラフィックスを提供するビデオゲームは、ネットワークで利用可能なデータ速度通信容量のかなりの割合である最大データ速度を有するデータストリームを生成し得る。データ速度は、各ゲームのゲーム状態が変更又は更新される頻度に依存して、時間に応じて大きく変化もし得る。高データ速度と時間で変化するデータ速度とのこの組み合わせは、衛星システム、ケーブルテレビジョンシステム、又はインターネット等のネットワーク環境での費用効果的且つ効率的な資源の割り振りを難しくし得る。このようなネットワーク環境でのビデオゲームシステムは、性能が低下しないことを保証するために、追加の帯域幅オーバーヘッド並びにハードウェア及びソフトウェアの冗長性という形で追加のマージンを必要とし得る。こういったシステムの問題は、マルチプレーヤゲームの場合にさらに難しくなる。
動画像符号化専門家グループ(MPEG)により開発された圧縮規格の1つ等の既存の符号化手法を使用してビデオゲームシステムにおいてデータストリームを符号化しても、せいぜいこういった問題に対する部分的な解決策しか提供することができず、さらなる問題が生じる恐れもある。例えば、MPEG2は、デジタルビデオコンテンツの多く(最大で95%)が冗長情報であり得ることを利用する柔軟性のある圧縮規格である。コンテンツのこういった部分の符号化は、対応するデータ速度を大幅に低減させ得る。しかし、コンテンツの他の部分の冗長性がはるかに低いことがある。従来のMPEG2符号化では、これは、複雑な画像ほど高いデータ速度に繋がり得る。その結果として、MPEG2符号化データストリームは依然として、時間に応じて大きく変動するデータ速度を有し得る。さらに、MPEG2等の既存の符号化手法を使用してのリアルタイム又はオンザフライでの複数のデータストリームの符号化は、ビデオゲームシステムの複雑性、コスト、及び/又は消費電力を増大させ得る。
したがって、ネットワーク環境においてビデオゲームを実施する改良されたシステムが必要である。
概要
ビデオフレームを生成する方法及び関連するシステムが開示される。この方法では、要求が受信される。ビデオフレームが、複数の事前符号化マクロブロックを使用して生成される。ビデオフレームはMPEG圧縮規格に準拠する。複数の事前符号化マクロブロックは、要求前に事前符号化される。いくつかの実施形態では、要求によりビデオゲームが開始される。
各事前符号化マクロブロックはピクセルセットに対応する。各事前符号化マクロブロックを事前符号化することは、離散コサイン変換演算、量子化演算、及びランレングス符号化演算を実施することを含む。事前符号化することは、1つ又は複数の動きベクトル及び/又は補正データを計算することも含み得る。ビデオフレームを生成することは、ビデオフレーム内の隣接する事前符号化マクロブロックを相互に関連付けることを含む。相互に関連付けることは、ルミナンス情報を含む第1のブロックの第1のDC係数値、クロミナンス情報を含む第2のブロックの第2のDC係数値、及びクロミナンス情報を含む第3のDC係数値を決定することを含み得る。各DC係数値を決定することは、ビデオフレーム内の別の事前符号化マクロブロックに対する差を決定することを含み得る。
隣接する事前符号化マクロブロックを相互に関連付けることは、ビデオフレーム内の別の事前符号化マクロブロックの量子化係数に対する差を決定することを含み得る。これは、ビデオフレーム内の別の事前符号化マクロブロックの動きベクトル及び/又は圧縮データに対する差を決定することを含み得、ビデオフレーム内の別の事前符号化マクロブロックに所定の動きベクトル及び/又は圧縮データを選択することも含み得る。
いくつかの実施形態では、複数の事前符号化マクロブロックは、個々にアドレス指定可能な事前符号化マクロブロックのバンクに記憶される。各事前符号化マクロブロックはメタデータを含むことができ、このデータは量子化係数、所定の動きベクトル、及び/又は補正データを含み得る。いくつかの実施形態では、複数の事前符号化マクロブロックの第1のサブセットが、2つ以上のビデオゲーム間で、2つ以上のビデオフレーム間で、及び/又は2つ以上のビデオゲームインスタンス間で共用される。いくつかの実施形態では、記憶されている複数の事前符号化マクロブロックの第2のサブセットが、非圧縮ピクセル情報を含む。
いくつかの実施形態では、方法は、複数のマクロブロックを動的に生成することをさらに含む。動的に生成される複数のマクロブロックは、非圧縮ピクセル情報を含む事前符号化マクロブロックとオブジェクトに対応する画像情報との組み合わせを含む。この組み合わせを形成することは、事前符号化マクロブロックの非圧縮ピクセル情報とオブジェクトに対応する画像情報とをブレンドすることを含み得る。組み合わせは、ビデオフレームの領域へのオブジェクトに対応する画像情報の重ね合わせを含み得る。
代替の実施形態では、要求(例えば、ビデオゲームの実行を開始する)が受信され、コマンド(例えば、ビデオゲームのコンテキスト内でアクションを実行するユーザコマンド)が、要求よりも後の時間に受信される。ビデオフレームが、要求前に事前符号化される複数の事前符号化マクロブロック及び要求後且つコマンド前に符号化される複数の要求後符号化マクロブロックを使用して生成される。別法として、ビデオフレームは、要求前に事前符号化される複数の事前符号化マクロブロック、要求後且つコマンド前に符号化される複数の要求後符号化マクロブロック、及びコマンド後に符号化される複数の動的符号化マクロブロックを使用して生成される。
いくつかの実施形態では、複数の事前符号化マクロブロックはMPEG圧縮規格に準拠する。複数の事前符号化マクロブロックは、個々にアクセス可能な事前符号化マクロブロックのバンクに記憶され、複数の別個のビデオフレームを生成する際に使用される。
ビデオフレームを生成する方法及び関連のシステムは、ネットワーク環境でのシングルプレーヤビデオゲーム及び/又はマルチプレーヤビデオゲームの実施に関連する上記問題のうちの少なくともいくつかを解消する。
本発明をよりよく理解するために、添付図面に関連して以下の詳細な説明を参照すべきである。
同様の参照番号は、図面全体を通して対応するパーツを指す。
実施形態の詳細な説明
実施形態をこれより詳細に参照し、実施形態の例を添付図面に示す。以下の詳細な説明では、本発明の完全な理解を提供するために多くの特定の詳細が述べられる。しかし、本発明がそういった特定の詳細なしで実施可能なことが当業者に理解されよう。場合によっては、周知の方法、手順、構成要素、回路については、実施形態の態様を不必要に曖昧にしないように、詳細に説明していない。
衛星システム、ケーブルテレビジョンシステム(CATV)、インターネット、広域ネットワーク、ローカルエリアネットワーク、及び/又は電話システム等のネットワークを使用してインタラクティブビデオゲームを提供する改良された方法及び関連のシステムについて説明する。後述するように、この方法及びシステムは、ビデオゲーム画像のフレーム及び/又はフィールド(以下、ビデオフレームと呼ぶ)に対応するビデオゲームコンテンツの効率的なデジタル化を利用して、通信帯域幅を低減することにより、サポート可能なユーザ数又はプレーヤ数(以下、ユーザと呼ぶ)を増大させる。ビデオゲームなる用語は、ビデオゲーム、他の形のコンピュータ実施されるレクリエーションアプリケーションプログラム、並びにニュース、天気、及び/又はスポーツ等の非レクリエーションアプリケーションプログラムを含む。プレーヤ又はユーザは、1つ又は複数のビデオゲームに参加する1人又は複数の人間を指す。
具体的には、1つ又は複数のビデオゲーム(シングルプレーヤビデオゲーム及び/又はマルチプレーヤビデオゲームを含む)に対応するビデオ画像フレーム又は1つ又は複数のビデオフレームへの更新が、1つ又は複数のビデオゲームを開始する要求の前に符号化される複数の事前符号化タイル又はマクロブロックを使用して生成される。マクロブロックは、ピクセルセット、例えば、16×16ピクセルアレイを含む。ビデオフレームを生成することは、隣接するマクロブロック内のDC係数を相互に関連付けること、隣接するマクロブロックに所定の動きベクトル及び補正データを選択すること、隣接するマクロブロックの動きベクトル及び補正データ、並びに/又は隣接するマクロブロックの量子化係数を計算することを含み得る。事前符号化マクロブロックを使用することは、ビデオゲームの中身のいくつか又はすべてが複数の連続したビデオフレームで変わらないままであり得る(例えば、ユーザアクションが中身のいくらか又はすべてを変えないままであり得る)ことを利用する。その結果として、中身のいくつか又はすべてを事前符号化することができる。これにより、例えば、インフラを簡易化し、且つ/又はビデオ画像フレームの生成に必要な計算資源を低減することにより、ネットワーク環境でのビデオゲームシステムの実施に関連する複雑性及び/又はコストを低減することができる。さらに、中身を符号化(圧縮)することによっても、ビデオフレームに対応するデータストリームでのデータ速度を低減することができる。
複数の事前符号化マクロブロックを生成し、個々にアドレス指定可能な事前符号化マクロブロックのバンクに記憶することができる。これにより、複数の事前符号化マクロブロックのサブセットを、例えば、2つ以上のビデオゲーム間で、2つ以上のビデオフレーム間で、及び/又は2つ以上のビデオゲームインスタンス間で共用することができるようになる。この共用によっても、ネットワーク環境でビデオゲームシステムを実施するコスト及び/又は複雑性を低減することができる。これにより、ビデオゲームシステムは、マルチプレーヤビデオゲームをより少ないインフラでサポートすることもできる。
いくつかの実施形態では、各ビデオフレームは、複数の事前符号化マクロブロックのサブセット及び基準グリッドを使用して生成される。基準グリッドは、マクロブロックへのインデックス及び/又はポインタを含み、基準グリッド内の各枠又はエントリが各ビデオフレーム内のロケーションに対応する。前のビデオフレームを各ビデオフレームと比較することにより、適当な事前符号化マクロブロックを基準グリッドに対応する適当なインデックス及び/又はポインタに位置決めすることにより、各ビデオフレームを生成することができる。この比較は、前のフレームタイルグリッドの対応し、且つ/又は隣接する位置にあるタイルインデックスを含み得る。したがって、この比較には、ビデオフレーム内の完全なピクセルセットではなくマクロブロックのインデックスが関わる。これは計算量の大きな低減に繋がり得る。
いくつかの実施形態では、複数のマクロブロックを1つ又は複数のビデオゲーム中に生成することもできる。ビデオゲーム要求を受信した後、これらマクロブロックのうちのいくつかを一度に生成してから、複数のビデオフレームで使用することができる。これは、例えば、テキスト(ユーザ名)又は単純なアニメーションに対応するもの等の、ビデオゲームが要求されるまで入手できない情報についてのマクロブロックを含み得る。より詳細に以下において説明するように、アニメーションに対応する動きベクトル及び/又は補正データも事前符号化することができる。他のマクロブロックは、ビデオゲーム中に1つ又は複数のユーザコマンドに応答して動的に生成することができる。1つ又は複数のユーザコマンドは、例えば、各ユーザ又は各組のユーザの各ユーザアクションに基づいて、ビデオゲームのゲーム状態の変更を決定することができる。このように動的に生成されるマクロブロックは、1つ又は複数のスプライト(例えば、可動オブジェクトブロックとも呼ばれるプログラム可能且つ移動可能な高解像度グラフィック画像)等のビデオゲーム内のオブジェクトに対応し得る。
いくつかの実施形態では、複数の事前符号化マクロブロックのサブセットは、非圧縮ピクセル情報並びに圧縮される事前符号化ピクセルデータを含み得る。1つ又は複数のビデオフレームの生成中、動的生成マクロブロックは、複数の事前符号化マクロブロックの非圧縮ピクセル情報と1つ又は複数のオブジェクトに対応する画像情報との組み合わせを含み得る。この組み合わせは、1つ又は複数のオブジェクトに対応する画像情報を非圧縮ピクセル情報とブレンドし、且つ/又は重ね合わせることを含み得る。
この方法及びシステムは、生成されたビデオゲームコンテンツをユーザ装置に送信し、ユーザ装置に表示させる。生成されたビデオゲームコンテンツは、ユーザ装置に送信された前のビデオゲームコンテンツに対する差分情報に対応することができる。システムは、複数組のユーザがビデオゲームの単一の実行可能コピーを同時に、且つ独立してプレイできるようにする。各組のユーザは1人又は複数のユーザを含み得る。各組のユーザは、ビデオゲームに各ゲーム状態を有し得る。このようにして、システムは資源利用効率及び全体のコスト効率を向上させる。
例示的な実施形態では、この方法及びシステムは、MPEG2を含むMPEG圧縮規格に準拠する。この準拠により、この方法及びシステムを使用して生成された1つ又は複数のビデオフレームを、市販のチップセットを使用して表示することができる。
ビデオゲームシステム
図1は、1つ又は複数のビデオゲーム等のコンテンツ(マルチユーザビデオゲームを含む)に対する注文を受信し、注文されたコンテンツを1人又は複数のユーザに提供するケーブルテレビシステム100の一実施形態を示すブロック図である。いくつかのコンテンツデータストリームを各加入者に送信することができ、各加入者は、サービスを注文するか、又はビデオゲームでのユーザアクションを送信することができる。アナログテレビジョン信号等の衛星信号は、衛星アンテナ144を使用して受信することができる。アナログ信号は、アナログヘッドエンド146で処理され、無線周波(RF)結合器134に連結され、ネットワーク136を介してセットトップボックス(STB)140に送信される。さらに、信号は衛星受信器148で処理し、マルチプレクサ(MUX)150に連結され、直交振幅変調器(QAM)132−2(256レベルQAM等)を使用してデジタルフォーマットに変換され、無線周波(RF)結合器134に連結され、ネットワーク136を介してSTB140に送信される。ビデオオンデマンド(VOD)サーバ118が、注文された映画に対応する信号をスイッチ126−2に提供することができ、スイッチ126−2は信号をQAM132−1に連結してデジタルフォーマットに変換する。これらデジタル信号は無線周波(RF)結合器134に連結され、ネットワーク136を介してSTB140に送信される。STB140は、後述するビデオゲームコンテンツに対応する信号を含む1つ又は複数の信号をテレビジョン又は他の表示装置138に表示することができる。図1は1つの加入者STB140及びテレビジョン又は他の表示装置138を示すが、他の実施形態では、1つ又は複数のSTB及び/又はテレビジョンもしくは他の表示装置をそれぞれ有するさらなる加入者が存在してもよい。
ケーブルテレビジョンシステム100は、アプリケーションサーバ114及び複数のゲームサーバ116を含むこともできる。アプリケーションサーバ114及び複数のゲームサーバ116は、ケーブルテレビジョンシステムのヘッドエンドに配置することができる。アプリケーションサーバ114の単一のインスタンス又はグループ及び複数のゲームサーバ116を図1に示すが、他の実施形態は、1つ又は複数のヘッドエンド内にさらなるインスタンスを含んでもよい。1つ又は複数のヘッドエンドにあるサーバ及び/又は他のコンピュータは、ウィンドウズ(Windows)、リナックス(Linux)、Unix(ユニックス)、又はソラリス(Solaris)等のオペレーティングシステムを実行することができる。
アプリケーションサーバ114及びゲームサーバ116のうちの1つ又は複数は、1人又は複数のユーザにより注文された1つ又は複数のビデオゲームに対応するビデオゲームコンテンツを提供することができる。ケーブルテレビジョンシステム100には、各ユーザとビデオゲームのうちの1つの実行されるコピーとの間に多対一の対応性がある。アプリケーションサーバ114は、データベース内のゲーム関連情報にアクセスし、且つ/又はログを記録することができる。アプリケーションサーバ114は、報告及び価格付けに使用することもできる。ゲームサーバ116内の1つ又は複数のゲームエンジン(ゲームエンジンモジュールとも呼ばれる)1848(図18)が、事前符号化ブロックを使用してビデオゲームコンテンツを動的に生成するように設計される。例示的な実施形態では、ゲームサーバ116はMPEG圧縮規格に準拠する符号化を使用する。
ビデオゲームコンテンツはスイッチ126−2に結合され、QAM132−1においてデジタルフォーマットに変換される。256レベルQAMを用いる例示的な実施形態では、ナローキャストサブチャネル(およそ6MHzの帯域幅を有し、これはおよそ38Mbpsのデジタルデータに対応する)を使用して、1〜4Mbpsを利用するビデオゲームの10〜30のビデオゲームデータストリームを送信することができる。
これらデジタル信号は無線周波(RF)結合器134に結合され、ネットワーク136を介してSTB140に送信される。アプリケーションサーバ114は、インターネット110を介して、マルチプレーヤサーバ112に記憶されるデータベース内の永久的なプレーヤデータ又はユーザデータにアクセスすることもできる。アプリケーションサーバ114及び複数のゲームサーバ116について、図18を参照してさらに後述する。
STB140は、1つ又は複数のユーザアクションに対応する情報を受け取り、その情報をゲームサーバ116のうちの1つ又は複数に送信する、ゲーム142等のクライアントアプリケーションを含むことができる。ゲームアプリケーション142は、テレビジョン138上のビデオフレームを更新する前に、ビデオゲームコンテンツを記憶することもできる。テレビジョン138は、NTSCフォーマット又はPAL若しくはSECAM等の異なるフォーマットに準拠することができる。STB140について、図18を参照してさらに後述する。
ケーブルテレビジョンシステム100は、STB制御機構120、オペレーションサポートシステム122、及び課金システム124を含むこともできる。STB制御機構120は、帯域外(OOB)サブチャネルを使用して受信される各ビデオゲームに関連するユーザアクション等の1つ又は複数のユーザアクションを、リターンパルス振幅(PAM)復調器130及びスイッチ126−1を使用して処理することができる。2つ以上のOOBサブチャネルがあってもよい。OOBサブチャネルの帯域幅は実施形態毎に可変であるが、一実施形態では、各OOBサブチャネルの帯域幅はおよそ1Mpbsのビット速度又はデータ速度に対応する。オペレーションサポートシステム122は、各ビデオゲーム等の各サービスへの加入者注文を処理し、課金システム124を更新することができる。STB制御機構120、オペレーションサポートシステム122、及び/又は課金システム124は、スイッチ126−1及び信号をOOBサブチャネルに適したフォーマットに変換するOOBモジュール128を介して、OOBサブチャネルを使用して加入者と通信することもできる。別法として、オペレーションサポートシステム122及び/又は課金システム124は、インターネット接続又は電話システムにより提供される通信リンク等の別の通信リンクを介して加入者と通信してもよい。
ケーブルテレビジョンシステム100で送受信される各種信号は、パケットベースのデータストリームを使用して通信することができる。例示的な実施形態では、パケットのうちのいくつかは、ユーザデータグラムプロトコル(UDP)等のインターネットプロトコルを利用することができる。いくつかの実施形態では、ネットワーク136等のネットワーク及びケーブルテレビジョンシステム100内の構成要素間の結合は、ワイヤレスエリアネットワーク、ローカルエリアネットワーク、伝送線(同軸ケーブル等)、陸線、及び/又は光ファイバの1つ又は複数のインスタンスを含むことができる。いくつかの信号は、一般電話サービス(POTS)及び/又は総合デジタル通信網(ISDN)等のデジタル電話網を使用して通信することができる。ワイヤレス通信は、アナログ携帯電話システム(AMPS:Advanced Mobile Phone System)、汎欧州デジタル移動電話方式(GSM:Global System for Mobile Communication)、符号分割多元アクセス(CDMA)、及び/又は時分割多元アクセス(TDMA)を使用する携帯電話網、並びにWiFiとしても知られるIEEE802.11通信プロトコル及び/又はブルートゥース(Bluetooth)通信プロトコルを使用するネットワークを含むことができる。
図1はケーブルテレビジョンシステムを示すが、記載のシステム及び方法は衛星ベースのシステム、インターネット、電話システム、及び/又は地上波テレビジョン放送システムで実施することもできる。ケーブルテレビジョンシステム100は、追加の要素を含んでもよく、且つ/又は1つ又は複数の要素がなくてもよい。さらに、2つ以上の要素を1つの要素に組み合わせてもよく、且つ/又はケーブルテレビジョンシステム100内の1つ又は複数の要素の位置を変更してもよい。
これより、事前符号化マクロブロックを使用して1つ又は複数のビデオフレームを生成する動作方法のいくつかの実施形態に注意を向ける。これら方法をケーブルテレビジョンシステム100で実施して、1つ又は複数のビデオゲームを含むコンテンツを1人又は複数のユーザに提供することができる。上述したように、マクロブロックはピクセルセットに対応する。MPEG2等のMPEG準拠圧縮規格を使用してマクロブロックを符号化する例示的な実施形態では、ブロックは8×8ピクセルアレイに対応することができ、マクロブロックは16×16ピクセルアレイに対応することができる。
1つ又は複数のビデオフレームの生成
図2は、ビデオフレームを生成するプロセス200の一実施形態を示す流れ図である。要求が受信される(210)。要求はビデオゲームを開始することができる。ビデオフレームが、複数の事前符号化マクロブロック(すなわち、要求前に事前符号化されるマクロブロック)を使用して生成される(212)。プロセス200は、より少数の動作又は追加の動作を含んでもよい。さらに、2つ以上の動作を組み合わせてもよく、且つ/又は動作の順序を変更してもよい。
図3は、ビデオフレームを生成するプロセス300の一実施形態を示す流れ図である。上述したプロセス200と同様に、要求が受信される(210)。複数のマクロブロックが一度に、又は動的に生成される(310)。ビデオフレームが、複数の事前符号化マクロブロック(要求前に符号化される)及び複数の生成されたマクロブロックを使用して生成される(312)。プロセス300は、より少数の動作又は追加の動作を含んでもよい。さらに、2つ以上の動作を組み合わせてもよく、且つ/又は動作の順序を変更してもよい。
図4は、ビデオフレームを生成するプロセス400の一実施形態を示す流れ図である。ここでも、プロセス400は要求を受信すること(210)を含む。さらに、コマンドが受信される(410)。コマンドは、ビデオゲームでのユーザアクション又は1組のユーザのアクションに対応することができる。コマンドを受信した後、コマンドに応答して、ビデオフレームが、複数の事前符号化マクロブロック(要求前に符号化される)、複数の事後符号化マクロブロック(要求を受信した後且つコマンドを受信する前に符号化される)、及び複数の動的生成マクロブロック(コマンドを受信した後に符号化される)を使用して生成される(412)。プロセス400は、より少数の動作又は追加の動作を含んでもよい。さらに、2つ以上の動作を組み合わせてもよく、且つ/又は動作の順序を変更してもよい。
図5は、ビデオフレームを生成するプロセス500の一実施形態を示す流れ図である。複数の事前符号化マクロブロックが生成される(510)。複数の事前符号化マクロブロックが、事前符号化マクロブロックのバンクに記憶される(512)。ビデオフレームが、少なくとも、複数の事前符号化マクロブロックのサブセットを使用して生成される(514)。プロセス500は、より少数の動作又は追加の動作を含んでもよい。さらに、2つ以上の動作を組み合わせてもよく、且つ/又は動作の順序を変更してもよい。
実施形態500での事前符号化マクロブロックは個々にアクセス可能であり、複数の事前符号化マクロブロックのサブセットを2つ以上のビデオゲーム間で、2つ以上のビデオフレーム間で、及び/又は2つ以上のビデオゲームインスタンス間で共用することができる。記憶される複数の事前符号化マクロブロックのサブセットは、非圧縮ピクセル情報を含み得る。図10を参照して後述するように、非圧縮ピクセル情報も含む事前符号化マクロブロックを提供することにより、オブジェクトに対応する画像情報と1つ又は複数の事前符号化マクロブロックからの非圧縮ピクセル情報とを組み合わせた動的マクロブロックを生成することができる。
これより、ビデオフレームの生成に使用するマクロブロックの事前符号化生成、一度での生成、及び/又は動的な生成のいくつかの実施形態に注意を向ける。図6は、事前符号化マクロブロック612の1つ又は複数のバンク610及び二次元タイル、アレイ、又は基準グリッド614の一実施形態600を示すブロック図である。バンク610に含まれる事前符号化マクロブロック612の数は、事前符号化マクロブロックを使用することになる各ビデオゲーム及びビデオゲームに関連する予測可能なアニメーションの量に依存し得る。したがって、単純なアニメーションを有する単純なゲームは、より多くのシーン、キャラクタ、及び予測可能アニメーションを有する複雑なゲームよりも書数の事前符号化マクロブロックを有する。例示的な実施形態では、およそ16,000、50,000、60,000、又は100,000の事前符号化マクロブロック612がある。基準グリッド614は、基準グリッド614を複数の枠に細分する複数の行616及び列618に構成される。各行616はビデオフレームのスライス620に対応する。グリッド614の各枠(グリッド内の各エントリ)は、ビデオフレーム生成時にマクロブロックを識別し位置決めするインデックス又はポインタを記憶する。複数のグリッドエントリが事前符号化マクロブロックを参照し得るが、グリッド614内の他のグリッドエントリは動的に生成されるマクロブロック(すなわち、ゲームユーザによる最新又は最近のコマンドに応答して生成されるマクロブロック等の、ゲーム実行開始後に生成されるマクロブロック)を参照する。換言すれば、グリッド614内の各枠は、各マクロブロック(少なくともそのうちのいくつかは事前符号化マクロブロック)へのポインタ又は参照を記憶し、グリッド614内の枠の位置は、ビデオフレーム内での識別されたマクロブロックの位置を識別する。例示的な実施形態では、マクロブロック(事前符号化マクロブロック612)はそれぞれ、16×16ピクセルアレイを表し、VGAビデオフレームに対応して、マクロブロック又はグリッドエントリの行616が30あり、列618が40ある。他の実施形態では、NTSCのデジタル実施形態に対応して、マクロブロック又はグリッドエントリの行が30あり、列が45ある。
多くのビデオゲームでは、各ビデオフレーム内のコンテンツの少なくともサブセットが、前の又は後のビデオフレームに対して略変化しない可能性がある。この状況は、ユーザがコマンドをまだ入力(ユーザインタフェース装置を使用して命令を提供する等)していないため、すなわち、ユーザアクションがまだないためにビデオゲームにおいて発生し得る。別法として、各ビデオゲームに応じて、ユーザアドレス指定不可能な、すなわちユーザがコマンドを入力した場合であっても影響を受けないコンテンツのサブセット(例えば、ビデオフレームの背景にある画像)があり得る。この情報はゲーム開発者に提供され、ゲーム開発者はこの情報を利用して、どのマクロブロックを事前符号化すなわち圧縮し、どのマクロブロックを事前符号化し、且つ非圧縮ピクセル情報を記憶させるかを選択することができる。基準グリッド614により識別されたマクロブロックは、各ビデオゲームのゲーム状態に従って、すなわち、ユーザコマンドに従って変更することができる。各ゲームエンジン1848(図18)内のシンセサイザモジュール1852(図18)が、基準グリッド614の現在の状態を使用して、事前符号化マクロブロック612の適当なサブセットを選択し、且つ/又は適当なサブセットを基準グリッド614内の適当なインデックス(又は適当なポインタを使用して)に位置決めして、ビデオフレームを生成することができる。ゲーム資源の共用を可能にすると共に、この手法は、1つ又は複数のビデオゲームに対応するビデオフレームの生成に関連するインフラ及び/又はコストを低減することもできる。具体的には、ビデオフレームの生成は、対応するマクロブロック内の全ピクセルの比較ではなく、基準グリッド614の前の状態及び基準グリッド614の現在の状態に対応する2つのインデックス又はポインタ(マクロブロックへの)の比較を含むことができる。
図7は、少なくとも1つのビデオフレームを生成するプロセスの一実施形態700を示す流れ図である。実施形態700での動作は、事前符号化動作710及びビデオフレーム生成動作720にグループ化することができる。事前符号化動作710は、1つ又は複数のゲームサーバ116(図1)で実行してもよく、且つ/又はゲームアセットをケーブルテレビジョンシステム100(図1)にロードする前にゲーム開発者又はゲーム配信者により実行されてもよい。事前符号化動作710は、1つ又は複数のマクロブロック(図6の事前符号化マクロブロック612等)及び/又は各マクロブロック内の1つ又は複数のブロックに対して二次元離散コサイン変換(DCT)を実行すること(712)、量子化を実行すること(714)、及びランレングス符号化を実行すること(716)を含む。図8を参照してさらに後述するように、DCT(712)により、マクロブロックについての画像情報に対応するいくつかのDC係数及びいくつかのAC係数セットが生成される。量子化(714)は、各マクロブロックの量子化係数を決定することを含む。ランレングス符号化(716)はハフマン符号化演算を含むことができる。
事前符号化動作710は、オプションとして、1つ又は複数の動きベクトル(再近傍ハーフセルに対する)及び/又は補正データ(718)を計算することを含んでもよく、動きベクトル及び/又は補正データは、動きベクトルのうちの1つに対応する変位後にマクロブロックに追加されて、ビデオフレームの最終マクロブロックを得る。マクロブロックの事前符号化は、ビデオゲームが、ビデオゲームの実行中に繰り返される既知のアニメーションシーケンスを含む場合に特に有用である。ビデオゲーム内のオブジェクトが異なるアニメーションシーケンス中に異なる方向に移動する場合、マクロブロックの2つ以上の動きベクトルを事前符号化することが有用であり得る。その結果として得られる1つ又は複数の動きベクトル及び/又は補正データは、対応するマクロブロック612(図6)のバンク610(図6)のうちの1つ又は複数に記憶することができる。動きベクトルの事前符号化(すなわち、1つ又は複数の動きベクトル及び/又は補正データの計算718)は、MPEG2等のMPEG準拠圧縮で実施される動的動き推定(すなわち、オンザフライ動き推定)と異なることに留意する。
ビデオフレームの生成(720)中、隣接するマクロブロックが相互に関連付けられる(722)。相互関連付け動作(722)は、1つ又は複数のDC係数を決定すること、各マクロブロックの1つ又は複数の動きベクトル、補正データ、及び/又は量子化係数の計算を完了することを含むことができる。その結果として得られるマクロブロックのデータストリームは、MPEG圧縮規格に準拠することができる。例示的な実施形態では、事前符号化710は、MPEG準拠ビデオフレームの生成に必要な符号化の略90%を完了することができる。残りの10%は、前又は後のマクロブロック内の情報に依存する相対的な情報を決定することを含み、これは、空間的且つ/又は時間的に隣接するマクロブロックを相互に関連付けること(722)により実現される。1つ又は複数のDC係数を決定することについて、図8及び図9を参照してさらに後述し、量子化係数を決定することについて図9を参照してさらに後述し、1つ又は複数の動きベクトル及び/又は補正データの計算を完了することについても図10を参照してさらに後述する。
流れ図700は、より少数の動作又は追加の動作を含んでもよい。さらに、2つ以上の動作を組み合わせてもよく、且つ/又は動作の順序を変更してもよい。
図8は、マクロブロック内のクロミナンスブロック及びルミナンスブロックの一実施形態800を示すブロック図である。マクロブロックは、4つのルミナンス(Y)ブロック810及び2つのクロミナンス(U及びV)ブロック812を含む。ブロック810及び812は、図7に示す事前符号化710に関連するAC係数及びDC係数を含む。例示的な実施形態では、ルミナンスブロック810は8×8ピクセルアレイに対応し、1つのクロミナンスブロック(クロミナンスブロック812−1等)はマクロブロックのU情報に対応し、1つのクロミナンスブロック(クロミナンスブロック812−2等)はマクロブロックのV情報に対応する。他の実施形態では、他の実施形態では、マクロブロックは、RGB等のコンポジットビデオ情報に基づいて生成してもよく、実施形態800でのブロックはそれに従って変更されてもよい。
図8中の各ルミナンスブロック810はDC係数814を有し、各クロミナンスブロック812はDC係数816を有する。DC係数814及び816は、マクロブロックの平均輝度及びクロミナンス(赤又は青)をそれぞれ指定する。DC係数814及び816は、隣接するブロックのDC係数に相対する値としてマクロブロック800内で表される。したがって、DC係数814_2は、ルミナンスブロック810−2のDC係数とルミナンスブロック810−1のDC係数との差で表され、DC係数814_3は、ルミナンスブロック810−3のDC係数とルミナンスブロック810−2のDC係数との差で表され、DC係数814_4は、ルミナンスブロック810−4のDC係数とルミナンスブロック810−3のDC係数との差で表される。すなわち、これらDC係数814はマクロブロック「内」で決定される。DC係数814_1、DC係数816_1、及びDC係数816_2は、隣接するマクロブロックに相対して決定される。これを、隣接するマクロブロックを相互に関連付ける一実施形態900を示すブロック図である図9に示す。具体的には、ビデオフレーム910内の1つ又は複数の隣接するマクロブロック914を使用して、マクロブロック912の少なくとも3つのDC係数を決定することができる。例示的な実施形態では、マクロブロック912のDC係数の表現を計算する場合、マクロブロック914_3が隣接するマクロブロックとして使用される。
マクロブロック912の量子化係数が、マクロブロック914_3等の隣接するマクロブロックの量子化係数と異なる場合、図7の相互関連付け動作(722)は、量子化係数を、ビデオフレーム910に対応するデータストリーム内のマクロブロック912のヘッダに追加することを含むことができる。
上述したように、線形又は循環して所定のマクロブロックシーケンスを繰り返すアニメーションシーケンスは、ゲーム開発者にとって既知であるため、これらマクロブロックを、1つ又は複数の動きベクトル及び/又は補正データと共に事前符号化して記憶する(例えば、図6のバンク610のうちの1つ又は複数に)ことができる。事前符号化(710)(図7)中に計算された(718)(図7)動きベクトル及び/又は補正データは、相対的な情報を含む。その結果として、ビデオフレームが生成されるとき(720)(図7)に、その計算を完了することができる(すなわち、隣接するマクロブロックを相互に関連付けて、動きベクトル及び/又は補正データを完成することができる)。MPEG準拠の実施形態では、こういったアニメーションシーケンスの1つを含むビデオフレームが送信される場合、完全なイントラ符号化マクロブロックを送信するのではなく、動きベクトル及びデルタすなわちビデオの前のビデオフレームの領域に対する差分情報を含む予測可能マクロブロックを送信することができる。予測可能マクロブロック内の動きベクトルは、現在のビデオフレームのタイルを構築するための開始点として使用すべきピクセルアレイ(例えば、16×16ピクセルアレイ)のロケーションを示す。動きベクトルは、Tx+Xピクセル及びTy+Y等のタイルに相対する位置を示し、ここで、Tx、Tyはタイルの位置であり、X、Yは動きベクトルにより指定される相対位置である。動きベクトルは、前のビデオフレームの2つ又は4つのタイルにかさなるアレイを指してもよい。動きベクトルがヌル値を有する場合、タイルの開始点は、前のビデオフレームでのタイルのピクセルアレイである。デルタすなわち差分情報は、現在のビデオフレーム内のタイルのピクセルアレイを生成するために、開始点ピクセルアレイをどのように変更すべきかを指定する。MPEG2等のMPEG準拠圧縮には、数種類のマクロブロックがあることに留意する。イントラ符号化マクロブロックは自己完結型である。すなわち、ビデオフレーム内の対応するピクセルセットの画像情報を定義するために必要なすべての情報を含む。予測可能マクロブロックは、空のマクロブロック(ヘッダのみが送信される)から動きベクトル及びデルタすなわち差分情報(すなわち、相対情報)の両方を含むマクロブロックまでを範囲とするある部類の情報を含む。MPEG2圧縮及び各種マクロブロックについて、図12〜図14を参照してさらに後述する。
事前符号化(710)(図7)は、動きベクトル及び/又は補正データを計算する(718)(図7)ために、隣接するマクロブロックの動き探索を含むことができる。ビデオフレームの生成(720)(図7)中、各ゲームエンジン1848内のシンセサイザモジュール1852(図18)は、事前符号化(710)(図7)中に計算された動き推定(動きベクトル及び/又は補正データ)が現在のゲーム状態に対して正確であるか(例えば、ダイアログボックスがアニメーションシーケンス内のマクロブロックに重なっていない)を検証することができる。これは、基準グリッド614(図6)内の、前のビデオフレーム内の1つ又は複数の予想ロケーションでの対応するマクロブロックインデックスの有無を調べることにより実現することができる。例示的な実施形態では、各アニメーションシーケンス内の1つの既知のオブジェクトが追跡される。ハーフピクセル精度を有する動きベクトルの場合、16×16ピクセルのソースアレイに重なる最高で4つの先行マクロブロック(又はマクロブロックロケーション)との比較を行うことができる。
図10は、ビデオフレームを比較する一実施形態1000を示すブロック図である。現在のビデオフレーム1012が前のビデオフレーム1010と比較されて、オブジェクト1016が識別される。この比較により、オブジェクト1016及び対応する変更領域1018を含む差分又はデルタ1014のマップが生成される。上述したように、このような比較は、事前符号化されたアニメーションシーケンスの動きを推定する際に使用することができる。後述するように、これは、図3及び図4において説明し、さらに後述するように、動的に生成又は符号化されるマクロブロックを使用してオブジェクト又はスプライトを含むビデオフレームを生成するために使用することもできる。
事前符号化マクロブロック及び動的生成マクロブロックの両方を使用するシステム及び方法の各種実施形態について説明するが、事前符号化マクロブロックと動的生成マクロブロックの各種の組み合わせを使用する多くのさらなる実施形態が可能である。ビデオゲームシステム(例えば、図18に示すシステム)内のプロセッサの数及び速度に応じて、1つ又は複数のビデオフレーム内の画像情報を事前符号化することができる量は増減する。しかし、一般に、各ビデオゲーム内に、ユーザコマンドに応答するオブジェクトのサブセットがある。こういったオブジェクトの挙動は事前には分からないため、このようなオブジェクトは動的に符号化することができる。
事前符号化動作(710)(図7)中にエンコーダが利用できる追加時間がある場合、エンコーダは、DCT(712)(図7)等の動作に浮動小数点演算を使用することができる。さらに、量子化演算(714)(図7)は、例えば、最高で30個の候補値から各マクロブロックに最適な量子化係数を選択することができる。このような実施態様は優れた圧縮及び/又は画質を提供することができるが、時間がかかり得る。このため、オブジェクト又はスプライトの動的符号化は高速符号化を利用することができる。高速符号化は、DCT演算(712)(図7)中に固定少数点(整数)乗算を含むことができる。さらに、各マクロブロックの量子化係数をより少数の組から選択してもよい。例えば、各(16×16)マクロブロックの量子化係数は、マクロブロック内の4つの8×8ブロックで最大の量子化係数であってもよい。その結果として得られるデータ速度が所望の上限を超える場合、所望の上限を実現する量子化係数を直接計算することができる。この量子化係数は部分最適(利用可能なすべてのビットが使用されることもあれば、使用されないこともある)であるが、事前符号化(710)(図7)中に使用される計算はより高速であることができる。したがって、動的符号化の場合、画質と符号化の全体時間とのトレードオフがあり得る。
1つ又は複数のオブジェクト又はスプライトに対応する1つ又は複数の動的生成マクロブロックは、1つ又は複数の事前符号化マクロブロックの少なくとも一部と組み合わせることができる。マクロブロック及びスプライトを組み合わせることは、ブレンドすなわち混合すること及び/又は重ね合わせることを含むことができる。例えば、ブレンドすることはアルファブレンドを含むことができ、この場合、オブジェクト又はスプライトの有効透明度がある範囲のピクセルにわたって変化する。重ね合わせは、事前符号化マクロブロックのどの部分が背景画像情報であるかを示すことができるクロマキーを利用することができる。事前符号化マクロブロック612(図6)のいくつかは、事前符号化ピクセル情報に加えて、組み合わせを容易にするために非圧縮ピクセル情報を含むことができる。例示的な実施形態では、m×nサイズのマクロブロックのオブジェクト又はスプライトの動的生成マクロブロックは、変更領域1018(図10)に対応し、ピクセル精度アラインメントによりm+1×n+1マクロブロックアレイを含むことができる。組み合わせ中、オブジェクト又はスプライトは、n+1×m+1事前符号化マクロブロックアレイと組み合わせることができる。図11は、ビデオフレーム1110内の事前符号化マクロブロック1112とオブジェクト1114とを組み合わせる一実施形態1100を示すブロック図である。オブジェクト1114_1がマクロブロック1112_1に重ね合わせられる。オブジェクト1114_2はマクロブロック1112_2とブレンドされる。
上記説明に照らして、ビデオゲーム中、現在のビデオフレームは、基準グリッド614(図6)を使用して現在のゲーム状態に従って生成することができる。適当な事前符号化マクロブロック612(図6)を、基準グリッド614(図6)内の対応するインデックスに基づいて組み立てることができる。適当な事前符号化マクロブロックは、ビデオゲームの開始前及び/又はビデオゲームの開始時に(例えば、ユーザ名に対応するマクロブロック)符号化されている場合がある。適当な事前符号化マクロブロックを相互に関連付けることができる(722)(図7)。1つ又は複数のアニメーションシーケンスを現在のビデオフレームに含めることができる。1つ又は複数のアニメーションシーケンス内での1つ又は複数のマクロブロックの位置又はインデックスは、前のビデオフレームとの比較に基づいて、且つ/又は事前符号化動き推定(1つ又は複数の動きベクトル及び/又は補正データを含む)を使用して判断することができる。現在のビデオフレームが生成されるとき、事前符号化動き推定も相互に関連付ける(722)(図7)ことができる。ビデオゲームでのユーザコマンドに応答する、オブジェクト又はスプライトに対応する動的生成又は符号化マクロブロックは、オンザフライでリアルタイムに生成して、現在のビデオフレームに組み合わせることができる。組み合わせることは、動的生成マクロブロックを事前符号化マクロブロックの少なくとも一部にブレンドし、且つ/又は重ね合わせることを含むことができる。組み合わせを容易にするために、事前符号化マクロブロックのうちのいくつかを、非圧縮ピクセル情報と共に記憶することができる。
データストリーム
これより、ビデオゲームの1つ又は複数のビデオフレームに対応するピクチャグループ(GOP:group of picture)及び関連データストリームの実施形態に注意を向ける。MPEG2等のMPEG圧縮では、イントラ(I)フレーム及び予測可能(P)フレームを含む数種類のフレームがある。Iフレームは、フレーム内符号化マクロブロック(上述した)をそれぞれ含む複数のスライスを含む。Iフレーム内のマクロブロックはすべて存在しなければならない。Pフレームは複数のスライスを含む。スライスは、イントラ符号化マクロブロック及び予測可能マクロブロック(上述した)を含むことができる。各スライスは、少なくとも2つのマクロブロック(スライス内の最初と最後のマクロブロック)を有さなければならない。予測可能マクロブロックは空(すなわち、ヘッダのみが送信される)であってもよい。別法として、スライス内の1つ又は複数の予測可能マクロブロックをスキップしてもよい。後続するマクロブロックのアドレス増分により、何個のマクロブロックがスキップされたかを示す。40列及び30行を有するビデオフレームの例示的な実施形態では、30個のスライスがある。Pフレームの場合、各スライスは、少なくとも、最初と最後のマクロブロックを有する。したがって、この実施形態での予測可能マクロブロックでのアドレス増分の範囲は1〜39になる。
いくつかの実施形態では、ビデオゲームが開始されるとき、Iフレームが送信される。Iフレームは、結果として生じるデータ速度を上限未満に保つように、すべてのブラック画像に対応することができる。Iフレームが送信された後、ビデオゲーム中にデータストリームの残りの部分はPフレームを利用することができる。Pフレームは、あるビデオフレームから次のビデオフレームへの相対すなわち差分情報を含むことができる。すなわち、Pフレームは更新情報を含むことができる(DC係数をPフレーム内の前の符号化マクロブロックと相互に関連付ける必要がないことに留意する)。共通の事前符号化マクロブロックセット(前の段落で説明したように)を使用するビデオフレームが、略変わらないAC係数(図7のDCT演算(712)に対応する)及び/又は略変わらない量子化係数(図7の量子化演算(714)に対応する)を有し得ることに留意する。
前のビデオフレームから変わらない現在のビデオフレーム内の画像情報は、送信しなくてもよい。これは、1つ又は複数の空の予測可能マクロブロック又はスキップされた予測可能マクロブロックを送信することにより実現することができる。ビデオフレーム全体が変わらないままである場合、スキップされた、又は空の予測可能マクロブロックを含むPフレームを送信することができる。例示的な実施形態では、空のPフレームは、2つの空の予測可能マクロブロックをそれぞれ含む30個のスライスを有する。空のPフレームの送信を利用して、STB1900(図19)内のデコーダ1914のアンダーフローを防ぐこともできる。Pフレームは、時間期間にわたって広がったスライスシーケンスとして送信することができる。これも、データ速度を上限未満にするのを助けることができる。このような制限付きデータ速度は、ケーブルテレビジョンシステム100(図1)等のネットワーク環境での1つ又は複数のビデオゲームを1人又は複数のユーザに提供することに関連するインフラ及びコストを低減することができる。例えば、制限付きデータ速度は、1人又は複数のユーザの各データストリームが、一時的に、システム又はネットワーク136(図1)等のネットワークで利用可能な資源のかなりの割合を利用しないようにすることができる。例示的な実施形態では、上限は、Iフレームを含む対応するMPEGデータストリームの0.03、0.1、0.016、0.25、又は0.33であってよい。データストリームは、毎秒30個のPフレームを含むことができる。いくつかの実施形態では、こういった技法の使用を通して実現される送信帯域幅の節減により、既存のビデオゲームシステムと比較して、1ゲームエンジン1848(図18)当たり、ユーザ数又はユーザの組数を20倍に増大することが可能になり得る。
上述したように、1つ又は複数のビデオフレーム内の事前符号化アニメーションシーケンスの場合、少なくとも動きベクトル及び/又は補正データをそれぞれ含むイントラ符号化マクロブロック又は予測可能符号化マクロブロックを使用することができる。マクロブロックの選択は、送信される情報量に依存し得る。そして、これは、1つ又は複数のビデオフレームの複雑性及び/又はビデオフレーム同士の差分又はデルタに依存し得る。いくつかの実施形態では、この選択はデータ速度に従う。シーケンスが実行される都度、すなわちシーケンスがデータストリームに含められる都度、アニメーションシーケンスに対応する事前符号化マクロブロックが、略変わらないAC係数(図7のDCT演算(712)に対応する)及び/又は略変わらない量子化係数(図7の量子化演算(714)に対応する)を有することに留意する。
Pフレーム、特に予測可能マクロブロックの使用により、誤差が送信中及び/又は復号化中に発生した場合に問題が発生する恐れがある。このような誤差はあるビデオフレームから次のビデオフレームに伝搬し得る。無制限の伝搬を防ぐために、ローリングアップデートを使用することができる。イントラ符号化マクロブロックを含む1つ又は複数のスライス(すなわち、1つ又は複数のIフレームスライス)を、時間間隔後にPフレームに含めることができる。時間期間にわたり、いくつかのPフレームを含め、完全なイントラ符号化マクロブロックセット(ビデオフレームのあらゆるタイル毎に少なくとも1つを含む)を送信することができ、それにより、現在のビデオフレームを既知の状態に「復元」することができる。例えば、Pフレーム速度が毎秒30フレームであり、各フレームが30個のスライスを含むシステムでは、各Pフレームは各Iフレームスライスを含むことができる。その結果として、ビデオフレームの全スライスが、毎秒に少なくとも1回復元される。別の実施形態では、1つ置きのPフレームが各Iフレームスライスを含み、それにより、ビデオフレームの全スライスが2秒毎に1回復元される。本質的には、このようなローリングアップデートは、誤差修正の一形態として機能することができる。したがって、イントラ符号化マクロブロックの1つ又は複数のスライスは、ビデオフレームが略変わらない(例えば、ゲーム状態が略変わらない)ままであっても送信することができる。
図12は、少なくとも1つのビデオフレームに対応するデータストリームを生成するプロセス1200の一実施形態を示す流れ図である。要求が受信される(1210)。例えば、要求は、ビデオゲームの実行要求であることができる。Iフレームを含む複数のマクロブロック(要求前に符号化される)が送信される(1212)。プロセス1200は、より少数の動作又は追加の動作を含んでもよい。さらに、2つ以上の動作を組み合わせてもよく、且つ/又は動作の順序を変更してもよい。
図13は、少なくとも1つのビデオフレームに対応するデータストリームを生成するプロセス1300の一実施形態を示す流れ図である。要求が受信される(1210)。Iフレームを含む複数のマクロブロック(要求前に符号化される)が送信される(1212)。要求前に事前符号化されるサブセットを含む追加の複数のマクロブロックをそれぞれ含むPフレームシーケンスが、送信される(1310)。Pフレームによっては、上述したように1つ又は複数のイントラ符号化スライスを含むものもあれば、1つ又は複数の空の、又はスキップされたマクロブロックを含むものもある。プロセス1300は、より少数の動作又は追加の動作を含んでもよい。さらに、2つ以上の動作を組み合わせてもよく、且つ/又は動作の順序を変更してもよい。
図14は、ビデオフレームシーケンスを含むデータストリーム1400の一実施形態を示すブロック図である。Iフレーム1410及び複数のPフレーム1414が送信される。Iフレーム1410は、複数のイントラ符号化マクロブロック1412を含む。Pフレーム1414−2等のいくつかのPフレーム1414は、予測可能マクロブロック1416、1つ又は複数の空の予測可能マクロブロック1418、及び1つ又は複数のスキップされた予測可能マクロブロックを含む。予測可能マクロブロック内の1よりも大きなアドレス増分1422は、1つ又は複数の予測可能マクロブロックが予測可能マクロブロック1416−2等の予測可能マクロブロックの前に存在することを示す。Pフレーム1414−4等のいくつかのPフレーム1414は、スライス1420等の1つ又は複数のスライスも含む。スライス1420はイントラ符号化マクロブロック1412を含む。
無限プレイフィールド
多くの既存のビデオゲームは、プレイフィールドに対応する大きなマップを含む。1人又は複数のユーザが、ユーザコマンドに従ってマップ内をスクロールする。しかし、1人又は複数のユーザは、随時、マップの小部分しか経験しない、又は見ない(例えば、ディスプレイ上で)。プレイフィールドが大きい(両方の次元で数千ピクセル)場合、随時必要とされるのが小部分のみであるにもかかわらず、相当量の情報がSTB140(図1)に伝達され得る。
既存のビデオゲームによっては、レジスタ及びゲーム状態を使用して現在のプレイフィールドを画定し、それにより、随時、STB140(図1)に伝達され得る情報量を低減することによりこの問題に対処するものがある。データストリーム1400(図14)等のMPEG準拠データストリームの使用により、随時、STB140(図1)に伝達され得る情報量を低減しながら同時に、事実上、無限の範囲を有するプレイフィールドを実施する代替の手法を提供することができる。
具体的には、MPEG2は、ビデオフレームに対応するパケット化されたエレメンタリストリーム1614(図16)に含めることができる2つの表示拡張ヘッダを定義している。シーケンス表示拡張(SDE)が、表示される符号化情報量、すなわち表示サイズ又は倍率を定義し、ピクチャ表示拡張(PDE)が各ビデオフレームのオフセットを定義する。
一実施形態では、SDEを使用して、符号化情報よりも小さなマクロブロックの可視部分を定義する。その結果として、有効プレイフィールドが、STB140に送信される完全なビデオフレームと比較して低減される。これを、ビデオフレーム1500内の有効プレイフィールドの一実施形態を示すブロック図である図15に示す。ビデオフレーム1500はいくつかの行616及び列618を有するが、SDE及びPDEにより定義される表示画像1514は、ビデオフレーム1500の各次元にガードバンド1510及び1512を有する。例示的な実施形態では、マクロブロックの行616が30あり、マクロブロックの列618が40あり、各ガードバンド1510、1512は1マクロブロック幅である。すなわち、随時、実際に表示される有効プレイフィールドは、29マクロブロック×30マクロブロックに対応するサイズを有する。
例えば、ユーザが、表示画像1514を右に移動するコマンドを発した場合、PDEの水平成分が1だけ増分される。PDEの水平成分が15を超えた場合、すべてのマクロブロックをマクロブロック1個分、右にシフトした(ハーフピクセル32個分の動きベクトル)ビデオフレームを再送信することができ、PDEが0にリセットされる。その後、ユーザが、表示画像1514を右に引き続き移動するコマンドを発した場合、PDEの水平成分が15を超えたときに、ビデオフレームを再送信することができる。この例では、ビデオフレームの再送信は、Pフレーム内の一連のスライスを送信することを含み、各スライスは、動きベクトルを有する2つの予測可能マクロブロック及び表示画像1514にここで含まれた新画像情報(右側)に対応する1つのイントラ符号化マクロブロックを含む。このようにして、データストリーム1400(図14)のMPEG準拠符号化により、STB140(図1)に送信される情報量が低減され、プレイフィールドが事実上無限の有効範囲を有することが可能になる。
待ち時間
データストリーム1400(図14)の符号化は、常に、結果として得られる画像の複雑性(データ速度)と品質とのトレードオフを表す。さらに、送信できる情報量は、あるビデオフレームから次のビデオフレームへの変化量及びデコーダ1914(図19)でのデータバッファサイズの関数でもある。データバッファサイズは、STB140でのビデオフレームの復号化待ち時間に上限を設定する。
待ち時間は、データがデコーダ1914(図19)に到来する時間とデータの復号化が開始される時間との間に差があることが多いため、発生する。通常、最大待ち時間は、等サイズのビデオフレームをデータバッファに送信する時間分である(復号化が開始されるときに、各ビデオフレームの送信が完了していなければならないため)。MPEG2圧縮を使用する既存のシステムでは、最大待ち時間は、通常、約300msである。こういった既存のシステムは、多くの場合、この時間遅延を使用して、異なる量の情報(Iフレーム及び/又はPフレーム)を必要に応じて送信する。すなわち、1つ又は複数のビデオフレームの送信を、この時間間隔中に拡張することができる。このようにして、既存のシステムはデータ速度を範囲内に保つことができる。
ビデオゲームは、この点に関してさらなる問題を課す。既存のMPEGエンコーダと異なり、ユーザコマンド(アクション)は事前に分からないため、データ速度は事前に割り振られない。すなわち、ビデオゲームエンコーダは先を見越すことができない。その結果として、最大待ち時間は非常に短く、例えば、1フレーム期間である。例示的な実施形態では、エンコーダでの待ち時間は50ms未満(例えば、30ms又は40ms)であり、ゲームコントローラ1924(図19)での遠隔制御に関連するあらゆる遅延を含む往復待ち時間は100ms未満であり得る。待ち時間が短いことは、ビデオフレームを送信する時間が限られ(符号化が開始される前に)、したがって、データ速度を制限内に保つためにデータストリーム1400(図14)内の情報を分散させる時間窓が限られることを暗に示す。
上述した符号化手法は、この点に関していくつかの利点を提供する。特に、Pフレームの使用により、必要に応じて情報を分散させて、データレートを制限内に保ち、低待ち時間に対応することが可能になる。いくつかの実施形態では、ゲームエンジン1848(図18)内のシンセサイザモジュール1852が、ビデオフレームへの更新のビット数が1フレーム期間の送信時間を超えると判断した場合、空及び/又はスキップされた予測可能マクロブロックのみ(又は別法として、空及び/又はスキップされた複数の予測可能マクロブロックを含む)1つ又は複数のPフレームを、短時間期間(例えば、およそ33.33ミリ秒フレーム期間のうちの約1ミリ秒)中に送信し、それにより、デコーダ1914(図19)のアンダーフローを防ぐことができる。次に、1フレーム期間を超える時間期間、場合によっては2つ以上のフレーム期間にわたって更新情報をPフレームで送信することができる。例えば、3つの略空のPフレーム(前のビデオフレームに対応する)を送信してから、更新情報を含むPフレーム(すなわち、現在のビデオフレームに対応する)を、およそ3〜3.9フレーム期間にわたって送信し、それにより、データ速度を制限内に保つことができる。この手法が使用される場合、STB140(図1)は、画像変化及び/又は断続を低減する様式でテレビジョン138(図1)を更新することができる。例えば、ビデオフレームを増分的に更新してもよく(更新情報が受信されたときに)、又はすべての更新情報が受信された後に更新してもよい。
MPEGデータストリームは、エンコーダとデコーダ1914(図19)と同期をとれる(すなわち、待ち時間を定義できる)ようにするヘッダを含み、これらヘッダを使用して上記手法を実施し、データ速度を制限内に保つことができる。これを、データストリームの一実施形態1600を示すブロック図を示す図16に示す。プログラムクロックリファレンス(PCR)時間1612と共にヘッダを含むトランスポートパケット1610が定期的に送信される(例えば、200ms毎に)。ビデオフレームパケットのパケット化されたエレメンタリストリーム1614は、プレゼンテーションスタンプ時間(PTS)1616を有するフレームヘッダ及び1つ又は複数のスライス1618を含む。各スライス1618は、2つ以上のマクロブロック1620を含む。PCR時間は、デコーダ1914(図19)でのデータの到来時間を定義する。PTSはPCR時間の時間基準内にある。すなわち、これは時間差又はデルタである。PTSは、デコーダでのビデオフレームの復号化及び提示の開始時間を定義する。通常、トランスポートパケット1610はおよそ188バイトを含み、パケット化されたエレメンタリストリーム1614はおよそ10〜200kBを含む。
図17は、少なくとも1つのビデオフレームに対応するデータストリームを生成するプロセス1700の一実施形態を示す流れ図である。ビデオフレームに対応するビット数が判断される(1710)。ビット数の送信に必要な時間長(送信時間)が判断される(1712)。送信時間がフレーム期間に対応する時間長を超えるか否かも判断される(1714)。送信時間がフレーム期間に対応する時間長を超える場合、複数の空又はスキップされたマクロブロックを含む1つ又は複数のPフレームが送信される(1716)。プロセス1700は、より少数の動作又は追加の動作を含んでもよい。さらに、2つ以上の動作を組み合わせてもよく、且つ/又は動作の順序を変更してもよい。
事前符号化ビデオ及びオーディオ
いくつかの実施形態では、1つ又は複数の事前符号化ビデオシーケンスを、合成されたビデオゲーム画像情報を含むビデオフレームと組み合わせることができる。例えば、ビデオゲームは、ビデオシーケンスが表示されるテレビジョン又は他の表示装置の画像を含むことができる。1つ又は複数の事前符号化ビデオシーケンスが、ビデオゲーム画像情報に対応する画像エリアの1つ又は複数のサブセットに含まれる場合、すなわち、ビデオフレームがビデオゲーム画像情報に対応し、事前符号化ビデオシーケンスを有する領域を含む場合、このような組み合わせは問題がより少ない。合成されたビデオゲーム画像情報は、ビデオシーケンスが占める1つ又は複数の矩形領域から除外することができる。しかし、ビデオゲーム情報が、事前符号化ビデオシーケンスに対応する画像エリアの1つ又は複数のサブセットに含まれる場合、すなわち、ビデオフレームが事前符号化ビデオシーケンスに対応し、ビデオゲーム画像情報を有する領域を含む場合、組み合わせはより困難であり得る。この場合、ビデオゲーム画像情報の符号化に使用される手法と互換性のある手法を使用して、事前符号化ビデオシーケンスを符号化することができる。したがって、事前符号化ビデオシーケンスは、ビデオゲーム情報と同じGOPを有し、ひいては同じデータストリームフォーマットを有するように符号化することができる。これにより、ビデオシーケンスのビデオフレーム内の1つ又は複数のサブセットを、動き推定計算において動きソースとして使用されることから除外することができる。したがって、ビデオゲーム画像情報が事前符号化ビデオシーケンスを損なうことを回避しながら、2つのデータストリームを符号化領域で併合することができる。その結果として得られる各ビデオフレームのデータストリームは、ビデオシーケンスのマクロブロック及びビデオゲーム画像情報のマクロブロックを含むマクロブロックの組み合わせを有することになる。事前符号化ビデオゲームマクロブロックは、ビデオゲーム画像情報(複数のビデオフレームで略同じであり得る)よりも広範囲のAC係数及び量子化値を有し得る。さらに、事前符号化ビデオシーケンスを有する1つ又は複数の領域内の動きベクトルは、ビデオゲーム画像情報を有する領域を参照せず、この逆も同様であり得る。
各ビデオゲーム内の1つ又は複数のビデオフレームは、オーディオ情報を含むこともできる。オーディオ情報は、事前圧縮ブロックを使用して生成することができる。各事前圧縮オーディオブロックは各ビデオフレームに対応することができる。すなわち、フレームベースで生成することができる。例示的な実施形態では、ドルビーオーディオ符号化−3(AC3)等のドルビーオーディオ符号化フォーマットを使用することができる。
いくつかの実施形態では、バックグラウンドサウンドを一時的に置き換えることにより、過渡音効果(transient sound effect)を実施することができる。音楽等のバックグラウンドサウンドは、長時間にわたって複数のビデオフレーム中に提示することができる。過渡音効果は1つ又は複数のビデオフレームであるがバックグラウンドサウンドよりも短い時間間隔にわたって提示することができる。過渡音効果から元のバックグラウンドサウンドへの遷移をスムーズにするために、遷移中にいくつかのビデオフレームにわたってバックグラウンドサウンドを減衰させ、音量をゆっくりと上げることができる。
しかし、いくつかの実施形態では、バックグラウンドサウンド及び過渡音効果を一緒に混合することができる(すなわち、両方が略同時に存在することができる)。このような混合を実施する一方法は、事前符号化オーディオブロックを復号化し、混合を行い、次いでオーディオブロックを記録することである。代替の実施形態では、変更されたAC3符号化フォーマットを使用することができる。既存のAC3符号化は、5.1サラウンドサウンドチャネル(左前、右前、正面中央、左後、右後、及び低周波効果)に対応するオーディオを相互に関連付けて相互に混合する。代替の実施形態では、サラウンドサウンドチャネルのうちの1つ又は複数を含むチャネルの第1のサブセットがバックグラウンドサウンドに対応し、サラウンドサウンドチャネルのうちの1つ又は複数を含むチャネルの第2のサブセットが過渡音効果に対応することができる。チャネルの第1及び第2のサブセットは、別個に符号化することができる。これにより、オンザフライでの、すなわち符号化し、混合してから再び符号化することなく、バックグラウンドサウンドに対応する事前符号化ブロックと過渡音効果に対応する事前符号化ブロックとのブレンド又は混合を容易にすることができる。
ハードウェア及びデータ構造
これより、事前符号化マクロブロックを使用して1つ又は複数のビデオゲームに対応する1つ又は複数のビデオフレームを生成するハードウェアのいくつかの実施形態に注意を向ける。図18は、ビデオゲームシステム1800の一実施形態を示すブロック図である。ビデオゲームシステム1800は、少なくとも1つのデータプロセッサ、ビデオプロセッサ、及び/又は中央演算処理装置(CPU)1810と、1つ又は複数のオプションのユーザインタフェース1814と、他のコンピュータ、サーバ、及び/又は1つもしくは複数のSTB(図1のSTB140等)と通信するための通信インタフェース又はネットワークインタフェース1820と、メモリ1822と、これら構成要素を互いに結合する1つ又は複数の信号線1812と、を含むことができる。少なくとも、1つのデータプロセッサ、ビデオプロセッサ、及び/又は中央演算処理装置(CPU)1810は、マルチスレッド又は並列処理に向けて構成されるか、又は構成可能であることができる。ユーザインタフェース1814は、1つ又は複数のキーボード1816及び/又はディスプレイ1818を有することができる。1つ又は複数の信号線1812は、1つ又は複数の通信バスを構成することができる。
メモリ1822は、ROM、RAM、EPROM、EEPROM、1つ又は複数のフラッシュディスクドライブ、1つ又は複数の光ディスクドライブ、及び/又は1つ又は複数の磁気ディスク記憶装置を含め、高速ランダムアクセスメモリ及び/又は不揮発性メモリを含むことができる。メモリ1822は、基本的なシステムサービスを処理し、ハードウェア依存タスクを実行するための手続き(又は命令セット)を含む、リナックス(LINUX)、ユニックス(UNIX)、又はウィンドウズ(WINDOWS)等のオペレーティングシステム1824を記憶することができる。メモリ1822は、通信手続き(又は命令セット)をネットワーク通信モジュール1826に記憶することもできる。通信手続きは、STB140(図1)等のSTBを使用して1人又は複数のユーザと通信するため、且つビデオゲームシステム1800内の他のサーバ及びコンピュータと通信するために使用される。
メモリ1822は、以下の要素又はこのような要素のサブセットもしくは上位セットを含むこともできる。すなわち、アプリケーションサーバモジュール1828(又は命令セット)、ゲームアセット管理システムモジュール1830(又は命令セット)、セッション資源管理モジュール1834(又は命令セット)、プレーヤ管理システムモジュール1836(又は命令セット)、セッションゲートウェイモジュール1842(又は命令セット)、マルチプレーヤサーバモジュール1844(又は命令セット)、1つ又は複数のゲームサーバモジュール1846(又は命令セット)、及びマクロブロックを記憶するバンク1856。ゲームアセット管理システムモジュール1830は、1つ又は複数のビデオゲームに対応する事前符号化ブロック及び実行可能コードを含むゲームデータベース1832を含むことができる。プレーヤ管理システムモジュール1836は、ユーザの氏名、アカウント情報、トランザクション情報、STB140(図1)でのビデオゲームの表示をカスタマイズするためのプリファレンス、プレイしたビデオゲームの高得点、プレイしたビデオゲームのランキング及び他のスキルレベル情報、及び/又は一時停止され、後で再開できるビデオゲームの永続的に保存されているゲーム状態等の情報を含むプレーヤ情報データベース1840を含むことができる。ゲームサーバモジュール1846の各インスタンスは、1つ又は複数のゲームエンジンモジュール1848、シンセサイザモジュール1852、及び1つ又は複数の圧縮エンジンモジュール1854を含むことができる。ゲームエンジンモジュール1848は、1つ又は複数のビデオゲームをプレイしている1組又は複数組のユーザに対応するゲーム状態1850を含むこともできる。バンク1856は、1つ又は複数のビデオゲームに対応する事前符号化マクロブロック1858、1つ又は複数のビデオゲームに対応するピクセル情報を有する事前符号化マクロブロック1860、及び/又は1つ又は複数のビデオゲームに対応する動的に生成又は符号化されるマクロブロック1862を含むことができる。
ゲームサーバモジュール1846は、ウィンドウズエクスプローラ(Windows Explorer)、ネットスケープナビゲータ(Netscape Navigator)、又はファイアフォックス(FireFox)からのモジラ(Mozilla)等のブラウザアプリケーションを実行して、各ビデオゲームに対応する命令を実行することができる。しかし、ブラウザアプリケーションは、ゲームサーバモジュール1846内のビデオゲームコンテンツをレンダリングしないように構成されてもよい。コンテンツがゲームサーバにより表示されず、このようなレンダリングの回避により、各ゲームサーバが、レンダリングを回避しない場合で可能なよりも多くのゲーム状態を保持できるようになるため、ビデオゲームコンテンツのレンダリングは不必要であり得る。ゲームサーバモジュール1846は1つ又は複数のプロセッサを有することができる。ビデオゲームは複数のプロセッサにより並列に実行することができる。ゲームは、マルチスレッドオペレーティングシステムで実施することも可能である。
図18は、いくつかの離散アイテムとしてビデオゲームシステム1800を示しているが、本明細書において説明した実施形態の構造概略ではなく、むしろビデオゲームシステムに存在しうる各種特徴の機能的な説明を目的としている。実際には、当業者に認められるように、ビデオゲームシステム1800の機能は、多数のサーバ又はコンピュータに分散してよく、この場合、各グループのサーバがこれら機能の特定のサブセットを実行する。図18において別個に示されるアイテムを組み合わせてもよく、いくつかのアイテムを分けてもよい。例えば、図18において別個に示されるいくつかのアイテムを1つのサーバで実施してもよく、1つのアイテムを1つ又は複数のサーバで実施してもよい。ビデオゲームシステム内の実際のサーバ数並びにゲームサーバモジュール1846及びゲームエンジンモジュール1848等の特徴がサーバにどのように割り振られるかは、実施態様毎に異なり、システムに記憶される情報量並びに/又はシステムがピーク使用期間中及び平均使用期間中に処理しなければならないデータトラフィック量に一部依存し得る。
図19は、STB140(図1)等のセットトップボックス(STB)1900の一実施形態を示すブロック図である。STB1900は、ネットワーク136を使用して注文情報及びユーザアクションに対応する情報を送信し、ビデオゲームコンテンツを受信する。受信された信号はネットワークインタフェース1910を使用して処理されて、ビデオゲームコンテンツを含むデータストリーム内のヘッダ及び他の情報が取り除かれる。その結果得られる信号はチューナー1912において処理されて、1つ又は複数のサブチャネルに対応する周波数が選択され、そしてデコーダ1914において処理される。例示的な一実施形態では、デコーダ1914はMPEG2デコーダである。他の実施形態では、デコーダ1914は、MPEG対応デコーダ又は別のビデオ圧縮規格のデコーダであってよい。デコーダ1914から出力されたビデオゲームコンテンツは、ディスプレイドライバ1916を使用してディスプレイ1922の駆動に適したフォーマットに変換される。ゲームコントローラ1924に入力されるユーザコマンド又はアクションは、デバイスインタフェース1918により受信され、ネットワークインタフェース1910に転送されて送信される。STB1900は、オプションとして、キーボード、ボタン、及び/又は液晶ディスプレイもしくは他のディスプレイ等のユーザインタフェース1920を含むことができる。
ゲームコントローラ1924は、ソニープレイステーション(Sony Playstation)(登録商標)、任天堂(Nintendo)(登録商標)、セガ(Sega)(登録商標)、及びマイクロソフトXボックス(Microsoft Xbox)(登録商標)により提供されるもの等の専用ビデオゲームコンソール又はパーソナルコンピュータであることができる。ゲームコントローラ1924は、1つ又は複数のユーザアクションに対応する情報をゲームパッド、キーボード、ジョイスティック、マイクロホン、マウス、1つもしくは複数のリモコン、1つもしくは複数の追加のゲームコントローラ、又は音声認識技術を含むインタフェース等の他のユーザインタフェースから受け取ることができる。ディスプレイ1922は、テレビジョン、コンピュータ、又はビデオゲームコントローラ1924もしくは携帯電話等の携帯装置の陰極線管又は液晶ディスプレイであることができる。
STB1900は、リナックス(Linux)、OS9、又はウィンドウズ(Windows)等の埋め込みオペレーティングシステム又は産業又は商用装置での使用に適したリアルタイムオペレーティングシステム(例えば、ウィンドリバーシステムズ社(Wind River Systems,Inc.)によるVxワークス(VxWorks))を有することができる。
いくつかの実施形態では、STB1900は、ビデオゲームコンテンツを表示する前に、受信したビデオゲームコンテンツに対してスムーズ化操作を実行することができる。いくつかの実施形態では、受信されたビデオゲームコンテンツは、受信されるとリアルタイムで復号化されてディスプレイ1922に表示される。他の実施形態では、STB1900は、完全なビデオフレームを受信するまで、受信したビデオゲームコンテンツを記憶する。次に、完全なビデオフレームが復号化されてディスプレイ1922に表示される。
これより、事前符号化マクロブロックのバンク610(図6)の1つ等のデータ構造の一実施形態に注意を向ける。図20は、事前符号化マクロブロックのバンク2000内のデータ構造の一実施形態を示すブロック図である。バンク2000は、事前符号化マクロブロック2012の複数のエントリ2010(イントラブロック及び予測ブロックの圧縮されたAC係数及びイントラマクロブロックの第2、第3、及び第4のルミナンスブロックのDC係数デルタ)、メタデータ2014、及びオプションの非圧縮ピクセル情報2016を含む。メタデータ2014は、量子化係数、1つ又は複数のDC係数、及び/又はマクロブロックを比較することができる(1つ又は複数の動きベクトル及び/又は補正値を含む、動き推定を利用する事前符号化アニメーションシーケンスの場合に)最高で4つの他のマクロブロックに対応する情報を含むことができる。
記載のシステム及び方法は、ハードウェア及び/又はソフトウェアで実施することができる。命令は、高水準手続き型言語、オブジェクト指向プログラミング言語、アセンブリ言語、又は機械語で実施することができる。プログラミング言語は、コンパイラ型であってもよく、又はインタプリタ型であってもよい。さらに、汎用マイクロプロセッサ、特定用途マイクロプロセッサ、並びに特定用途向け集積回路を利用してよい。
本発明の特定の実施形態の上記説明は、例示及び説明のために提示されたものである。網羅的である、すなわち本発明を開示された厳密な形態に限定する意図はない。むしろ、多くの変更及び変形が上記教示に照らして可能であることを理解されたい。実施形態は、本発明及び当業者が意図する特定の用途に適した各種変更を有する各種実施形態を最良に利用できるように、本発明の原理及びその実際の応用を最良に説明するために選択され、説明されたものである。
ケーブルテレビジョンシステムの一実施形態を示すブロック図である。 少なくとも1つのビデオフレームを生成するプロセスの一実施形態を示す流れ図である。 少なくとも1つのビデオフレームを生成するプロセスの一実施形態を示す流れ図である。 少なくとも1つのビデオフレームを生成するプロセスの一実施形態を示す流れ図である。 少なくとも1つのビデオフレームを生成するプロセスの一実施形態を示す流れ図である。 事前符号化マクロブロックの1つ又は複数のバンク及び基準グリッドの一実施形態を示すブロック図である。 少なくとも1つのビデオフレームを生成するプロセスの一実施形態を示す流れ図である。 マクロブロック内のクロミナンスブロック及びルミナンスブロックの一実施形態を示すブロック図である。 隣接するマクロブロックを相互に関連付ける一実施形態を示すブロック図である。 ビデオフレームを比較する一実施形態を示すブロック図である。 事前符号化マクロブロックとビデオフレーム内のオブジェクトを結合する実施形態を示すブロック図である。 少なくとも1つのビデオフレームに対応するデータストリームを生成するプロセスの一実施形態を示す流れ図である。 少なくとも1つのビデオフレームに対応するデータストリームを生成するプロセスの一実施形態を示す流れ図である。 ビデオフレームシーケンスに対応するデータストリームの一実施形態を示すブロック図である。 ビデオフレーム内の有効プレイフィールドの一実施形態を示すブロック図である。 データストリームの一実施形態を示すブロック図である。 少なくとも1つのビデオフレームに対応するデータストリームを生成するプロセスの一実施形態を示す流れ図である。 ビデオゲームシステムの一実施形態を示すブロック図である。 セットトップボックスの一実施形態を示すブロック図である。 事前符号化マクロブロックのバンクのデータ構造の一実施形態を示すブロック図である。

Claims (16)

  1. 1つの又は複数のビデオゲームサーバ(116)を備えるビデオゲームシステムにおける方法であって、前記ビデオゲームサーバ(116)は、1つ又は複数の通信ネットワークによって前記ビデオゲームシステムに結合された複数のユーザ装置(140)にインタラクティブビデオゲームサービスを提供するように構成され、前記複数のユーザ装置(140)は、前記ビデオゲームシステムとは区別されており、前記複数のユーザ装置(140)のそれぞれは、ビデオデコーダと個別のディスプレイとを備えており、前記方法は、
    各ユーザ装置(140)から、ビデオゲームを開始する要求を受信する工程(210)と、
    前記各ユーザ装置(140)から、前記ビデオゲームにおける各ユーザのアクションに対応するコマンドを受信する工程と、
    前記ビデオゲームにおける各ユーザのアクションに対応するコマンドに応答して、複数の事前符号化マクロブロック(612)のバンク(610)に記憶された複数の事前符号化マクロブロック(612)を使用して前記ビデオゲームにおける各ユーザのアクションに対応する第1のビデオフレーム(910)を生成する工程(212)と、
    前記第1のビデオフレームを表示のために前記ユーザ装置(140)に送信する工程と、
    含む方法であって、
    前記第1のビデオフレーム(910)はMPEG圧縮規格に準拠し、前記複数の事前符号化マクロブロック(612)は、前記ビデオゲームを開始する前記要求を受信する前に事前符号化され且つ前記バンク(610)に記憶される方法。
  2. 各事前符号化マクロブロックはピクセルセットに対応し、
    前記方法は、
    前記各事前符号化マクロブロックを事前符号化する工程(710)を含み、
    前記各事前符号化マクロブロックを事前符号化する工程(710)は、
    離散コサイン変換演算(712)、量子化演算(714)、及びランレングス符号化演算(716)を実行する工程を含み、
    前記生成する工程は、前記第1のビデオフレーム内の隣接する事前符号化マクロブロックを相互に関連付ける工程を含む、請求項1に記載の方法。
  3. 前記事前符号化する工程は、動きベクトル及び補正データを計算する工程(718)を含む、請求項2に記載の方法。
  4. 前記相互に関連付ける工程は、ルミナンス情報を含む第1のブロックの第1のDC係数値(814)、クロミナンス情報を含む第2のブロックの第2のDC係数値(816)、
    及びクロミナンス情報を含む第3のブロックの第3のDC係数値(816)を決定する工程を含む、請求項2に記載の方法。
  5. 前記複数の事前符号化マクロブロックのバンクは、個々にアドレス指定可能な事前符号化マクロブロックのバンクであり、
    前記複数の事前符号化マクロブロックのサブセットは、2つ以上のビデオゲーム間で共用される、請求項1に記載の方法。
  6. 前記複数の事前符号化マクロブロックのサブセットは、2つ以上のビデオフレーム間で共用される、請求項1に記載の方法。
  7. 前記複数の事前符号化マクロブロックは、ビデオゲームの2つ以上のインスタンス間で共用される、請求項1に記載の方法。
  8. 前記第1のビデオフレームを生成する工程は、前記複数の事前符号化マクロブロックをグリッド(614)内の各位置に割り当てる工程をさらに含み、
    前記グリッドは、二次元アレイを含み、前記グリッド内の各位置には、ビデオフレームの生成時に対応するマクロブロックが割り当てられ、前記グリッド内の少なくとも複数の位置には、対応する事前符号化マクロブロックが割り当てられ、
    前記生成する工程は、前記グリッドの前の状態と前記グリッドの現在の状態とを比較する工程、及び該比較に従って、イントラマクロブロック及び予測可能マクロブロックを前記第1のビデオフレームに対応するデータストリームに選択的に含める工程を含む、請求項1に記載の方法。
  9. 前記複数の事前符号化マクロブロックのサブセットは、非圧縮ピクセル情報を含む、請求項1又は8に記載の方法。
  10. 複数のマクロブロックを動的に生成する工程をさらに含み、該動的に生成される複数のマクロブロックは、非圧縮ピクセル情報を含む前記記憶される複数の事前符号化マクロブロックのサブセットとオブジェクトに対応する画像情報との組み合わせを含む、請求項9に記載の方法。
  11. 複数のユーザ装置(140)にインタラクティブビデオゲームサービスを提供するように構成された装置であって、前記複数のユーザ装置(140)は、1つ又は複数の通信ネットワークによって前記装置に結合され、前記装置とは区別されており、前記複数のユーザ装置(140)のそれぞれは、ビデオデコーダと個別のディスプレイとを備えており、前記装置は、
    メモリ(1822)と、
    プロセッサ(1810)と、
    前記メモリに記憶され、前記プロセッサにより実行されるように構成されるプログラム(1846)であって、各ユーザ装置(140)から、ビデオゲームを開始する要求を受信する(210)命令と、前記各ユーザ装置(140)から、前記ビデオゲームにおける各ユーザのアクションに対応するコマンドを受信する命令と、前記ビデオゲームにおける各ユーザのアクションに対応するコマンドに応答して、複数の事前符号化マクロブロック(612)のバンク(610)に記憶された複数の事前符号化マクロブロックを使用して前記ビデオゲームにおける各ユーザのアクションに対応する第1のビデオフレーム(910)を生成する(212)命令と、前記第1のビデオフレームを表示のために前記ユーザ装置(140)に送信する命令と、を含むプログラムと、
    を備え、
    前記第1のビデオフレーム(910)はMPEG圧縮規格に準拠し、前記複数の事前符号化マクロブロック(612)は、前記ビデオゲームを開始する前記要求を受信する前に事前符号化され且つ前記バンク(610)に記憶される、装置。
  12. 前記第1のビデオフレームを生成する命令は、前記複数の事前符号化マクロブロックをグリッド(614)内の各位置に割り当てる命令をさらに含む、請求項11に記載の装置。
  13. 前記ビデオゲームにおけるユーザアクションに対応するコマンドを受信する工程(410)と、
    前記要求を受信する前に事前符号化される複数の事前符号化マクロブロック、及び、前記要求を受信した後且つ前記コマンドを受信する前に符号化される複数の要求後符号化マクロブロックを使用して第2のビデオフレームを生成する工程(412)と、
    をさらに含む、請求項1に記載の方法。
  14. 前記第2のビデオフレームを生成する工程(412)は、前記コマンドを受信した後に符号化される複数の動的符号化マクロブロックを使用する工程をさらに含む、請求項13に記載の方法。
  15. 前記ビデオゲームにおけるユーザアクションに対応するコマンドを受信する命令と、
    前記要求を受信する前に事前符号化される複数の事前符号化マクロブロック、及び、前記要求を受信した後且つ前記コマンドを受信する前に符号化される複数の要求後符号化マクロブロックを使用して第2のビデオフレームを生成する命令と、
    をさらに含む、請求項11に記載の装置。
  16. 前記第2のビデオフレームを生成する前記命令は、前記複数の事前符号化マクロブロック、前記複数の要求後符号化マクロブロック、及び前記コマンドを受信した後に符号化される複数の動的符号化マクロブロックを使用してビデオフレームを生成するようさらに構成される、請求項15に記載の装置。
JP2008520254A 2005-07-08 2006-06-19 事前符号化マクロブロックを使用するビデオゲームシステム Expired - Fee Related JP4996603B2 (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US11/178,183 US8284842B2 (en) 2005-07-08 2005-07-08 Video game system using pre-encoded macro-blocks and a reference grid
US11/178,183 2005-07-08
US11/178,182 US20070009042A1 (en) 2005-07-08 2005-07-08 Video game system using pre-encoded macro-blocks in an I-frame
US11/178,189 US8118676B2 (en) 2005-07-08 2005-07-08 Video game system using pre-encoded macro-blocks
US11/178,189 2005-07-08
US11/178,182 2005-07-08
PCT/US2006/024195 WO2007008356A1 (en) 2005-07-08 2006-06-19 Video game system using pre-encoded macro-blocks

Publications (3)

Publication Number Publication Date
JP2009503921A JP2009503921A (ja) 2009-01-29
JP2009503921A5 JP2009503921A5 (ja) 2009-05-28
JP4996603B2 true JP4996603B2 (ja) 2012-08-08

Family

ID=37312036

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008520254A Expired - Fee Related JP4996603B2 (ja) 2005-07-08 2006-06-19 事前符号化マクロブロックを使用するビデオゲームシステム

Country Status (6)

Country Link
EP (1) EP1908293B1 (ja)
JP (1) JP4996603B2 (ja)
AT (1) ATE475266T1 (ja)
DE (1) DE602006015650D1 (ja)
HK (1) HK1116323A1 (ja)
WO (1) WO2007008356A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9826197B2 (en) 2007-01-12 2017-11-21 Activevideo Networks, Inc. Providing television broadcasts over a managed network and interactive content over an unmanaged network to a client device
US10200744B2 (en) 2013-06-06 2019-02-05 Activevideo Networks, Inc. Overlay rendering of user interface onto source video
US10275128B2 (en) 2013-03-15 2019-04-30 Activevideo Networks, Inc. Multiple-mode system and method for providing user selectable video content
US10409445B2 (en) 2012-01-09 2019-09-10 Activevideo Networks, Inc. Rendering of an interactive lean-backward user interface on a television

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9077991B2 (en) 2002-12-10 2015-07-07 Sony Computer Entertainment America Llc System and method for utilizing forward error correction with video compression
US8468575B2 (en) 2002-12-10 2013-06-18 Ol2, Inc. System for recursive recombination of streaming interactive video
US8661496B2 (en) 2002-12-10 2014-02-25 Ol2, Inc. System for combining a plurality of views of real-time streaming interactive video
US9314691B2 (en) 2002-12-10 2016-04-19 Sony Computer Entertainment America Llc System and method for compressing video frames or portions thereof based on feedback information from a client device
US9108107B2 (en) 2002-12-10 2015-08-18 Sony Computer Entertainment America Llc Hosting and broadcasting virtual events using streaming interactive video
US8840475B2 (en) * 2002-12-10 2014-09-23 Ol2, Inc. Method for user session transitioning among streaming interactive video servers
US8387099B2 (en) 2002-12-10 2013-02-26 Ol2, Inc. System for acceleration of web page delivery
US9032465B2 (en) 2002-12-10 2015-05-12 Ol2, Inc. Method for multicasting views of real-time streaming interactive video
US8526490B2 (en) 2002-12-10 2013-09-03 Ol2, Inc. System and method for video compression using feedback including data related to the successful receipt of video content
US8832772B2 (en) 2002-12-10 2014-09-09 Ol2, Inc. System for combining recorded application state with application streaming interactive video output
US8893207B2 (en) 2002-12-10 2014-11-18 Ol2, Inc. System and method for compressing streaming interactive video
US9003461B2 (en) 2002-12-10 2015-04-07 Ol2, Inc. Streaming interactive video integrated with recorded video segments
US8949922B2 (en) 2002-12-10 2015-02-03 Ol2, Inc. System for collaborative conferencing using streaming interactive video
US9192859B2 (en) 2002-12-10 2015-11-24 Sony Computer Entertainment America Llc System and method for compressing video based on latency measurements and other feedback
US9138644B2 (en) 2002-12-10 2015-09-22 Sony Computer Entertainment America Llc System and method for accelerated machine switching
US8964830B2 (en) 2002-12-10 2015-02-24 Ol2, Inc. System and method for multi-stream video compression using multiple encoding formats
US8549574B2 (en) 2002-12-10 2013-10-01 Ol2, Inc. Method of combining linear content and interactive content compressed together as streaming interactive video
US20090118019A1 (en) 2002-12-10 2009-05-07 Onlive, Inc. System for streaming databases serving real-time applications used through streaming interactive video
US10201760B2 (en) 2002-12-10 2019-02-12 Sony Interactive Entertainment America Llc System and method for compressing video based on detected intraframe motion
US8711923B2 (en) 2002-12-10 2014-04-29 Ol2, Inc. System and method for selecting a video encoding format based on feedback data
US9061207B2 (en) 2002-12-10 2015-06-23 Sony Computer Entertainment America Llc Temporary decoder apparatus and method
US8074248B2 (en) 2005-07-26 2011-12-06 Activevideo Networks, Inc. System and method for providing video content associated with a source image to a television in a communication network
US9042454B2 (en) 2007-01-12 2015-05-26 Activevideo Networks, Inc. Interactive encoded content system including object models for viewing on a remote device
US8591334B2 (en) 2010-06-03 2013-11-26 Ol2, Inc. Graphical user interface, system and method for implementing a game controller on a touch-screen device
US8382591B2 (en) 2010-06-03 2013-02-26 Ol2, Inc. Graphical user interface, system and method for implementing a game controller on a touch-screen device
EP2628306B1 (en) 2010-10-14 2017-11-22 ActiveVideo Networks, Inc. Streaming digital video between video devices using a cable television system
EP2695388B1 (en) 2011-04-07 2017-06-07 ActiveVideo Networks, Inc. Reduction of latency in video distribution networks using adaptive bit rates
US9800945B2 (en) 2012-04-03 2017-10-24 Activevideo Networks, Inc. Class-based intelligent multiplexing over unmanaged networks
US9123084B2 (en) 2012-04-12 2015-09-01 Activevideo Networks, Inc. Graphical application integration with MPEG objects
CN103945230A (zh) * 2013-01-18 2014-07-23 鸿富锦精密工业(深圳)有限公司 影片传输系统及方法
US9294785B2 (en) 2013-06-06 2016-03-22 Activevideo Networks, Inc. System and method for exploiting scene graph information in construction of an encoded video sequence
US9219922B2 (en) 2013-06-06 2015-12-22 Activevideo Networks, Inc. System and method for exploiting scene graph information in construction of an encoded video sequence
US20160271495A1 (en) * 2014-01-09 2016-09-22 Square Enix Holdings Co., Ltd. Method and system of creating and encoding video game screen images for transmission over a network
US9788029B2 (en) 2014-04-25 2017-10-10 Activevideo Networks, Inc. Intelligent multiplexing using class-based, multi-dimensioned decision logic for managed networks
KR102617595B1 (ko) 2017-04-21 2023-12-22 제니맥스 미디어 인크. 게임-생성된 모션 벡터들을 위한 시스템들 및 방법들
RU2720067C1 (ru) * 2017-04-21 2020-04-23 Зенимакс Медиа Инк. Системы и способы для рендеринга и выдачи подсказок кодеру на основании оценки предварительно кодированной нагрузки
DE112018002096T5 (de) 2017-04-21 2020-01-09 Zenimax Media Inc. Spielereingabebewegungskompensation durch antizipation von bewegungsvektoren

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5596693A (en) * 1992-11-02 1997-01-21 The 3Do Company Method for controlling a spryte rendering processor
US5990912A (en) * 1997-06-27 1999-11-23 S3 Incorporated Virtual address access to tiled surfaces
US6810528B1 (en) * 1999-12-03 2004-10-26 Sony Computer Entertainment America Inc. System and method for providing an on-line gaming experience through a CATV broadband network
US6614442B1 (en) * 2000-06-26 2003-09-02 S3 Graphics Co., Ltd. Macroblock tiling format for motion compensation
GB2374687A (en) * 2001-04-19 2002-10-23 Ibm Managing configuration changes in a data processing system
US20020191851A1 (en) * 2001-05-01 2002-12-19 Giora Keinan Efficient encoding of video frames using pre-encoded primitives
US6747658B2 (en) * 2001-12-31 2004-06-08 Intel Corporation Automatic memory management for zone rendering
EP1483741A2 (en) * 2002-03-01 2004-12-08 t5 Labs Ltd Centralised interactive graphical application server
US7038676B2 (en) * 2002-06-11 2006-05-02 Sony Computer Entertainmant Inc. System and method for data compression
US20060230428A1 (en) * 2005-04-11 2006-10-12 Rob Craig Multi-player video game system

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9826197B2 (en) 2007-01-12 2017-11-21 Activevideo Networks, Inc. Providing television broadcasts over a managed network and interactive content over an unmanaged network to a client device
US10409445B2 (en) 2012-01-09 2019-09-10 Activevideo Networks, Inc. Rendering of an interactive lean-backward user interface on a television
US10275128B2 (en) 2013-03-15 2019-04-30 Activevideo Networks, Inc. Multiple-mode system and method for providing user selectable video content
US11073969B2 (en) 2013-03-15 2021-07-27 Activevideo Networks, Inc. Multiple-mode system and method for providing user selectable video content
US10200744B2 (en) 2013-06-06 2019-02-05 Activevideo Networks, Inc. Overlay rendering of user interface onto source video

Also Published As

Publication number Publication date
WO2007008356A1 (en) 2007-01-18
DE602006015650D1 (de) 2010-09-02
JP2009503921A (ja) 2009-01-29
ATE475266T1 (de) 2010-08-15
HK1116323A1 (en) 2008-12-19
EP1908293B1 (en) 2010-07-21
EP1908293A1 (en) 2008-04-09

Similar Documents

Publication Publication Date Title
JP4996603B2 (ja) 事前符号化マクロブロックを使用するビデオゲームシステム
US8619867B2 (en) Video game system using pre-encoded macro-blocks and a reference grid
US7936819B2 (en) Video encoder with latency control
US8118676B2 (en) Video game system using pre-encoded macro-blocks
US9061206B2 (en) Video game system using pre-generated motion vectors
US20070009042A1 (en) Video game system using pre-encoded macro-blocks in an I-frame
US9060101B2 (en) Video game system having an infinite playing field
Nguyen et al. An optimal tile-based approach for viewport-adaptive 360-degree video streaming
KR102360052B1 (ko) 온라인 인터랙티브 게임 세션들에 대한 콘텐츠를 렌더링 및 인코딩하기 위한 방법들 및 시스템들
JP5405819B2 (ja) マルチプレーヤビデオゲームシステム
CN112533059B (zh) 图像渲染方法、装置、电子设备以及存储介质
US7426304B2 (en) Method and device for three-dimensional graphics to two-dimensional video encoding
WO2021223577A1 (zh) 一种视频处理的方法、相关装置、存储介质及程序产品
CN106331750B (zh) 一种基于感兴趣区域的云游戏平台自适应带宽优化方法
CN103918258A (zh) 减少视频编码中的数据量
WO2014175784A2 (ru) Обработка видеопотоков
CN112351284B (zh) 视频编码、解码方法和装置、电子设备和存储介质
CN115738240A (zh) 一种用于iptv的体感游戏方法、系统及存储介质
WO2024010588A1 (en) Cloud-based gaming system for supporting legacy gaming applications with high frame rate streams
CN117354524A (zh) 编码器编码性能测试方法、装置、设备及计算机介质
CN116761002A (zh) 视频编码方法、虚拟现实直播方法、装置、设备及介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090403

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090403

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111020

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120117

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120220

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: 20120423

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120511

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150518

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

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

LAPS Cancellation because of no payment of annual fees