JP4409956B2 - 集中型対話グラフィカルアプリケーションサーバ - Google Patents

集中型対話グラフィカルアプリケーションサーバ Download PDF

Info

Publication number
JP4409956B2
JP4409956B2 JP2003573509A JP2003573509A JP4409956B2 JP 4409956 B2 JP4409956 B2 JP 4409956B2 JP 2003573509 A JP2003573509 A JP 2003573509A JP 2003573509 A JP2003573509 A JP 2003573509A JP 4409956 B2 JP4409956 B2 JP 4409956B2
Authority
JP
Japan
Prior art keywords
instructions
graphics
data
texture
processing
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
JP2003573509A
Other languages
English (en)
Other versions
JP2005519382A (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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=27791904&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP4409956(B2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Priority claimed from GB0204859A external-priority patent/GB0204859D0/en
Priority claimed from GB0223687A external-priority patent/GB0223687D0/en
Priority claimed from GB0226192A external-priority patent/GB0226192D0/en
Application filed by ティーファイヴ ラブズ リミテッド filed Critical ティーファイヴ ラブズ リミテッド
Publication of JP2005519382A publication Critical patent/JP2005519382A/ja
Application granted granted Critical
Publication of JP4409956B2 publication Critical patent/JP4409956B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image 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
    • 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/32Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using local area network [LAN] connections
    • A63F13/327Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using local area network [LAN] connections using wireless networks, e.g. Wi-Fi or piconet
    • 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/33Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections
    • A63F13/332Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections using wireless networks, e.g. cellular phone networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • 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/20Features 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 the game platform
    • A63F2300/203Image generating hardware
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/08Bandwidth reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation

Description

本発明は、ゲームソフトウェア等の対話型ソフトウェアの動作に関し、詳細には、集中型コンピュータプラットフォーム上のソフトウェアのホスト役を改善するための画像圧縮におけるオブジェクト識別および動き推定に関する。
ゲーム等の対話型ソフトウェアの分野では、普通には、対話型ソフトウェアつまりゲームを実行したい者は、PC(パーソナルコンピュータ)または任天堂TMゲームキューブTMまたはソニーTMのプレイステーション2TM等のゲームコンソールを使用して行うことがある。最新のゲームソフトウェアは、強力なプロセッサおよびグラフィックスレンダラを持つマシンを必要とする。ソフトウェアの新版がでるたびに、ハードウェアの能力を限界まで負荷をかけ、ハードウェアの所有者がそのハードウェアを定期的に更新または置換しなければならない出費を被ることを余儀なくさせる。
普通の状況での更なる問題は、数多くのハードウェアプラットフォームが存在することである。セガドリームキャストTM上で実行するゲームは、PCまたはソニープレイステーションTM上で実行するよう、おおむね書換える必要がある。従って、ゲーム開発者がゲームの市場潜在能力を十二分に活用し、その一方で消費者が特定のゲームを楽しむことができるのに先立ち適切なハードウェアを所有しなければならないことは費用がかかる。
さまざまな既知の関連技術があり、それを以下で説明する。
ゲームサーバは、QuakeTM等の多数プレーヤゲームを可能にし、所与のゲームに参加している全ての他のプレーヤの場所および動作と通信する中央ゲートウェイとして単に振舞う。それでも各プレーヤは、ゲームのローカルコピー、およびソフトウェアを処理しゲームに連係する全ての画像をレンダリングする能力のあるローカル装置を必要とすることになる。
ゲームストリーマ技術は、ゲームをチャンクに分割して、ゲームをダウンロードしたいユーザが全てのゲームをダウンロードする前にプレーを開始することを可能にする。ゲームがプレーされている間にダウンロードは継続する。これはソフトウェアを配布するより簡便な様式である。
グラフィックスストリーミング技術は、メッシュ(オブジェクトのワイヤーフレーム記述)およびテクスチャ(スキン)等のグラフィックス要素をストリーミングする。中でも、動画像およびオーディオデータを圧縮するための、およびビデオとオーディオデータストリームとを同期化するための標準であるMPEG−4(Motion Picture Expert Group)は、遠隔のレンダラへの送信のためにメッシュおよびテクスチャを圧縮する方法を含む。この技術を利用するシステムは、ゲーム自体がクライアントまたはサーバマシン上で実行され得る一方で、それでも画像をレンダリングする能力のある強力なクライアントを必要とすることになる。
ウェブに基づくゲームは、JavaTMまたはShockwaveTM等の技術を使用して、ウェブページを介してゲームを提供する。しかし、サーバ上で処理されているのでなく、グラフィックス要素が圧縮されているかもしれないとはいえ、ソフトウェアは、それでもユーザのクライアントマシン上で実行され、グラフィックスはそれでもクライアントにおいてもレンダリングされる。
集中型ゲームサーバは、別の既知の技術であり、それは本発明の特定の分野である。中央サーバ上でゲームを処理し画像をレンダリングすることによって、ユーザは、デジタル加入者線(DSL)等のブロードバンド通信ネットワーク、ケーブルまたは第3世代(3G)無線ネットワークへ接続されたゲームをプレーできる。
そのようなシステムは、専用の(そして高価な)ゲームコンソールを購入する、またはPCが最新のプロセッサおよびグラフィックスカードで常に更新される必要性を除去する。ゲームをプレーする希望の人々は、即座に彼らのケーブルTV会社経由で彼らの既に据付のセットトップボックスを使用してゲームサービスへ加入できる。ケーブルTV会社はこのように新規収入の路を見出し、ゲーム開発者は少ない配布コストで広い市場へのアクセスを有し、そして最終ユーザは高価な専用機器へ投資する必要なくゲームに手を出す機会を持つ。
これらのネットワークは通常の電話線と比較するとき比較的広い帯域幅を有するとはいえ、高級ゲームに対するグラフィックス画像は、それでも送信の前に高度に圧縮される必要がある。総体的なシステムの待ち時間がゲームのプレー体験を損なわないように、そのような圧縮は非常に速い必要がある。
それぞれのユーザが新型ゲームの複雑なグラフィックスをレンダリングする能力のある自分用の「インテリジェント」な装置を有する代りに、処理は中央サーバが引き受ける。ゲームに関する画像は、ハブで圧縮され、末端ユーザへブロードバンドネットワークの上で送信され、末端ユーザは、画像を見て、中央サーバ上で実行しているゲームソフトウェアと対話することに比較的「頭の鈍い」端末を使用する。
この中央サーバは、ゲームソフトウェアの多数のコピー、圧縮システム、および送信システムを実行することに十分に強力である必要があり、それによりサーバは異なるゲームを同時にプレーしているかもしれない大多数の同時ユーザに奉仕できる。
そのような集中型ゲームサーバの更なる利点は:
− ユーザは、最新のゲームをプレーすることに十分に強力な専用ハードウェアを所有する必要がない;
− 同じ機器を再利用することによって、サービスプロバイダ(普通にはケーブルTV会社または通信会社)は、各顧客にゲームコンソールまたはPCを提供することによってよりはるかに費用効率良くこのサービスを供与できる;
− ゲーム開発者は、ユーザの所有する適切なハードウェアに依存することなく、ただ単に家庭、事務所等のブロードバンドネットワークへ、もしくは、例えば3Gまたは「WiFi」無線ネットワーク経由で携帯装置への接続だけで、広範囲の視聴者へのアクセスを有することができる;
− ゲーム更新およびバグフィックスは、即座にそして自動的に実行できる;そして
− オンライン、多数プレーヤの不正行為は、「不正モード」を遮断することによって削減できる。
しかし、そのようなシステムを動作させるために、克服されなければならない2つの技術的な問題がある。
− 圧縮の品質:画像は、ケーブルTVまたはDSL等の普通の国内のブロードバンドネットワークの上で送信できるように高度に圧縮されなければならない;および
− ネットワークの待ち時間:圧縮システムは非常に迅速に動作しなくてはならない。ユーザが制御を催促すること、連係するコマンドがサーバによって処理されること、新規シーンが計算され、圧縮され、送信され、そして次いで圧縮復元されることの間の遅延は、ユーザにとって無視できなければならない。
ニュージャージー州Murray HillのLucentへの米国特許第5,742,289号は、グラフィックスレンダリングおよび符号化を持つゲーム処理を集中型ゲームサーバ内にカプセル化するシステムを開示している。そのため、それは、合成画像をその画像のレンダリングと並列に圧縮できる。特許は、コンピュータグラフィックスシステムの特徴を持つシステムおよび方法を開示し、MPEG符号化を含む。システムは、動きベクトルを含む2D画像の詳細なモデルを使用し、そして圧縮援助データをエンコーダへ向けて回送し、それにより符号化処理を単純化する。完結したシステムは、3D画像の共有データベース、ハイブリッドレンダリングエンジン、および接続されたビデオエンコーダを含む。
一般的に、ゲームグラフィックスは、本明細書でグラフィックス演算処理装置(GPU)と称される専用のグラフィックスプロセッサを使用してレンダリングされる。米国5,742,289のシステムでの問題は、標準的グラフィックスプロセッサの使用を許容せず、従って、大多数の汎用プロセッサだけでなく、グラフィックス処理を実行するよう特別に書かれたソフトウェアも必要とすることである。更に、ゲームソフトウェアは、この新規処理プラットフォーム上で実行するよう特別に書かれていなければならない。
論文「動的ポリゴンのシーンの高速化MPEG圧縮」で Dan S. Wallach, Sharma Kunapalli, and Michael F. Cohenは、Computer Graphics (Proc, SIGGRAPH 1994), July 1994 で、多くのグラフィックスワークステーションに存在するマトリクス−ベクトル乗算および走査転換を使用して、シーンにおける光の流れを急速に近似するための方法論を説明している。光の流れは、各画素の画面上の動きを記述する2Dのベクトルフィールドである。MPEG圧縮への光の流れの適用が説明されており、結果的に、最小限のオーバヘッドで圧縮を改善している。
システムは、2フレームからの変換マトリクスを格納し、シーンにある全てのオブジェクト上へそれが投影する「身元証明テクスチャ」を使用し、それによりそれはオブジェクトと画面との間の関係を見出すことができる。この手法での問題は、それがマトリクスでだけ動作することである。それは、例えば水のさざ波を模倣することに余弦を使用できるGPUの頂点シェーダプログラムに対処していない。
総体的に、既知の手法での第1の問題は、頂点の変換は中央演算処理装置(CPU)上で行われ、結果がローカルメモリに格納され、容易に抽出されることを手法が想定していることである。これは、ゲームがその中に取り込まれた、圧縮関連のタスクを実行するルーチンを持たねばならぬことを意味する。特別に書かれたゲームコードを有する必要がないことは有利であろう。
第2の問題は、GPUが使用される時、GPUは当然ながら頂点変換処理の結果を格納しないから、そのデータを抽出および格納することに特別の技法が必要とされる。
モジュール方式で標準的構成要素を使用して実現され、これらの問題に対する商業的に実行可能なソリューションを作成する能力のあるシステムを提供することが有利であろう。
本発明の目的は、ホスト役の対話グラフィカルシステムにおいて圧縮の品質を改善し、待ち時間を低減することである。
本発明の第1の局面に従えば、少なくとも1つのグラフィックスプロセッサモジュールを使用して圧縮ビデオデータ信号を生成する方法が提供され、方法は:
a)グラフィックスプロセッサモジュールのための第1セットの命令を受け取るステップ;
b)前記第1のセットの命令を傍受し、グラフィックスプロセッサモジュールのための第2セットの命令を生成するステップ;
c)第1のグラフィックスデータを生成するよう前記第1セットの命令または前記第2セットの命令をグラフィックスプロセッサモジュールにおいて処理するステップ;
d)第2グラフィックスデータを生成するよう前記第2セットの命令を処理するステップ;
e)圧縮援助データを生成するよう前記第2グラフィックスデータを処理するステップ;および
f)圧縮ビデオデータ信号を生成するよう、前記圧縮援助データを使用して、前記第1のグラフィックスデータを処理するステップ;
を含む。
本発明の第2局面に従うと、圧縮されたビデオデータ信号を生成するための装置が提供され、装置は少なくとも1つのグラフィックスプロセッサモジュールを備え、装置は:
a)グラフィックスプロセッサモジュールのための第1セットの命令を受け取るため、そしてグラフィックスプロセッサモジュールのための第2セットの命令を生成するための命令傍受機能;
b)第1のグラフィックスデータを生成するよう前記第1セットの命令または前記第2セットの命令をグラフィックスプロセッサモジュール内で処理するための処理機能;
c)第2のグラフィックスデータを生成するよう前記第2セットの命令を処理するための処理機能;
d)圧縮援助データを生成するよう前記第2のグラフィックスデータを処理するための処理機能;および
e)圧縮ビデオデータ信号を生成するよう、前記圧縮援助データを使用して、前記第1のグラフィックスデータを処理するための符号化機能;
を備える。
本発明は、コンピュータ生成グラフィックスのための圧縮の品質を改善することに使用されてよい。数多くの圧縮技術が現今利用可能であり、その全てが常に進化している。柔軟性を最大限にするために、可能な限りモジュール式のシステムを有することがそれ故に重要であり、それにより完結したソリューションの完全性に影響を及ぼすことなく圧縮ステージ(段)が置換または更新できよう。
圧縮技術の1つの例は、業界標準のMPEG−4である。それは画像の符号化の方法を定義せず、ビットストリームのプロトコルおよび復号化の方法だけであるのは異例である。それはまた、圧縮方法のツールキットも提供する。それを適用する時期と方法の決定プロセスは、実装ごとに変化して、大幅に異なる画像品質および圧縮比の結果となる。
MPEG−4エンコーダへ利用可能な1つのオプションは、画像の中で別体のグラフィックオブジェクトの符号化である。例えば、歩く像で、その人が歩いているフィールドの背景画像と区別できる。歩く人像を別体のオブジェクトとして符号化することはより高い圧縮比を引き出せるとはいえ、背景シーンからオブジェクトを隔離することは複雑でプロセッサ集約的な処理である。
コンピュータグラフィックスから等の合成ビデオで作業する利点は、その画像の個々の構成成分(オブジェクト)が既知であることである。自然のビデオの場合には、エンコーダは、最初に画像を分解しなければならない。ここでは、画像がレンダリングされる前にオブジェクトの定義を抽出することによって、処理負荷は軽減される。
本発明の好ましい実施形態に従うと、圧縮援助データは動きベクトルデータを含む。画像をMPEG−4データ圧縮で符号化する時に提供され得る圧縮援助データの他の種類の幾つかの例は:
− 別体オブジェクトとして−あるとすれば−符号化するシーンの部分、(最大数があるので)
− オブジェクト上に使用する符号化の形式
− 形状の符号化で透明オブジェクトとするか実体とするか
− 単に前回画像からの変化ではなく全画像を送信する頻度(誤り訂正と帯域幅の間に交換代償があるので)
− 重なり合った動き推定の使用可否
これらの決定をすることに使用される判定基準は以下を含む:
− 解析をすることに必要とされる処理時間/労力
− 帯域幅「割付」の残り
− 最低画像品質の制約
本発明は、ネットワークの待ち時間を改善することにも使用されてよい。ネットワークの待ち時間は、符号化サブシステムの速度に依存し、それはそれ自体で圧縮の品質と所要処理能力との間の交換代償である。速度を改善するために、本発明は、圧縮されるべき画像のレンダリングと並行して幾つかの符号化ステップを処理することを探求する。更に、本発明は、自然ビデオ画像の場合に通常であろうように逆行分析する必要なく画像についての情報が容易に抽出できる様式を探求する。
本発明は、それ故に以下の設計制約の中で開発された:
− デバッギングおよび更新の容易さのためのモジュール方式(ゲームソフトウェアの処理、画像のレンダリング、画像の符号化の機能の分離)
− 最小限の(または更に良い無)変更で既存のゲームソフトウェアを実行する能力
− 例えばグラフィックスプロセッサで、可能な限り既製の構成要素を使用する能力
命令傍受機能はデバイスドライバであってよい。代替として、命令傍受機能は、DirectXTMまたはOpenGLTMのためのラッパー構成要素である。
命令傍受機能は、異なる命令を異なるグラフィックスプロセッサモジュールへ入力するように成されてもよい。
オプションで、複数の命令傍受機能は、それぞれが異なる命令を異なるグラフィックスプロセッサモジュールへ入力するように成されてもよい。
好ましくは、命令はグラフィカルデータを含む。オプションで、命令はプログラムコードを含んでもよい。好ましくは、命令はテクスチャを含む。
オプションで、異なる命令間の差分はライティング命令を含む。好ましくは、異なる命令間の差分はシェーディング命令を含む。
好ましくは、命令は、更に、3次元シーン情報を含む。同じ3次元シーン情報は各グラフィックスプロセッサモジュールへ供給されてもよい。
好ましくは、第1グラフィックスプロセッサモジュールへ供給される命令はテクスチャを含み、第2プロセッサモジュールへ供給される命令は異なる新規オブジェクトテクスチャを含む。一実施形態において、新規オブジェクトテクスチャのそれぞれは、画像フレームにおいて各オブジェクトに対する一意的なテクスチャである。好ましくは、新規オブジェクトテクスチャは、オブジェクトの隣り合ったポリゴンのテクスチャの2つが同じでないように特定される。新規オブジェクトテクスチャは、ビデオのその後のフレームで再配向されてもよい。一実施形態において、新規オブジェクトテクスチャは一様な色である。
代替として、少なくとも1つのグラフィックスプロセッサモジュールへ供給される命令は、それに新規オブジェクトテクスチャを生成させる。
一実施形態において、オブジェクトの部分(単数または複数)とその2D画面描写との間の関係は、2以上のフレーム間で比較するために一時記憶装置に収納される。好ましくは、それはテクスチャとして格納される。好ましくは、オブジェクト当りこれらのテクスチャの1つ、2つ以上、または全てのオブジェクトによって共有される1つがある。
一実施形態において、頂点マッピングへのテクスチャは、一定のオフセットを追加することによって「一意的なテクスチャ空間」を達成するよう再マップされる。好ましくは、頂点マッピングへのテクスチャは、オフセットを変化させることによって「一意的なテクスチャ空間」を達成するよう再マップされる。
代替として、「一意的なテクスチャ空間」は、同じサイズの新規テクスチャを作成し、元におけるように大多数のポリゴンにそれを分割し、そしてオブジェクト頂点を一意的なポリゴンへ新規テクスチャから再マップすることによって達成されてもよい。
一実施形態において、オブジェクトの各一部分がいずれかの時点で画面上に出現する場所を識別する目的で、画面の画素に対応する「基準」テクスチャが画面上へ投影される。好ましくは、少なくとも1つのグラフィックスプロセッサモジュールへ供給される命令は、画像フレームを作り上げるシーン全体を覆い、前記シーンに現存するオブジェクトの表面と結合する単一テクスチャをモジュールに生成させ、新規オブジェクトテクスチャを作成する。普通には、前記単一テクスチャはシーンの中のオブジェクト上へ投影される。好ましくは、単一テクスチャを生成するステップは、更に、オブジェクトの表面を初期値に設定すること、および次いでオブジェクトに対する新規表面テクスチャを作成および適用するように単一テクスチャを変更することを含む。好ましくは、初期値はオブジェクトが透明かどうかを指示し、好ましくは、初期値は画像フレーム内の各オブジェクトにとり一意的である。
一実施形態において、援助データ生成機能は、第2グラフィックスデータに応答してオブジェクトの形状を特定するように成される。
別の実施形態で、援助データ生成機能は、第2グラフィックスデータに応答して画像要素の位置を特定するように成される。
好ましくは、符号化機能は、圧縮援助データに応答して第1グラフィックスプロセッサモジュールによってレンダリングされた画像から個々の画像要素を選択するように成される。
オプションで、新規オブジェクトテクスチャは、オブジェクトが透明であることを符号化機能へ知らせることに使用されてもよい。
好ましくは、符号化機能は全面的シーン変更を検出するように成される。より好ましくは、符号化機能は、全面的シーン変更の検出に応答して異なる圧縮方法を使用するように成される。
好ましくは、各グラフィックスプロセッサモジュールは、普通にはグラフィックスチップの形式での専用のグラフィックスプロセッサを備える。オプションで、機能的に実質的に同一である2つ以上の専用グラフィックスプロセッサが使用される。
代替として、2つ以上のグラフィックスプロセッサモジュール、それの機能は、例えば多数タイムスライス処理方式を使用して単一の専用グラフィックスプロセッサ上に実装されてもよい。
グラフィックスプロセッサモジュールは、1つ以上の圧縮サブシステム間で共有されてもよい。単一の専用グラフィックスプロセッサは、フレームをレンダリングすることに最終ディスプレイレートより高い周波数でクロックされてもよい。
好ましくは、レンダリングされたフレームは、符号化機能が処理するようバッファメモリに格納される。
ハンドシェイク信号伝達が、処理を調製するよう符号化機能と命令傍受モジュールとの間で使用されてもよい。
好ましくは、新規オブジェクトテクスチャは、フレーム内の位置に対応して変化する数値を含んでもよい。
より好ましくは、新規オブジェクトテクスチャは、水平座標に対応して変化する1つの数値、および垂直座標に対応して変化する別の1つの数値を含む。
好ましくは、援助データ生成機能は、オブジェクトテクスチャを比較することによってフレーム間の動きを検出するように成される。
オプションで、援助データ生成機能は、前回に画像フレーム全体にわたり適用されたテクスチャにおけるものに対してオブジェクト上の画素を比較することによってフレーム間の動きを検出するように成される。
オプションで、援助データ生成機能は、オブジェクトの部分を形成するまたはそのオブジェクトの位置に関する1つ以上の頂点へ「タグ付き」された情報を比較することによってフレーム間の動きを検出するように成される。タグは、例えば明度であってよい。タグは、代替として、頂点に連係する他のデータを含んでもよい。
普通には、タグは、レンダリング処理に影響を与えることに使用され、それにより前記頂点の位置はそれが関連したオブジェクトがレンダリングされる時に容易に識別できる。レンダリングは、例えばレンダリングされた画像内の画素の色または輝度を変化させることにより影響を与えられてもよい。
オプションで、援助データ生成機能は、オブジェクトの部分(単数または複数)とその2D画面描写との間の関係を比較することによってフレーム間の動きを検出するように成され、ここでそのような関係は前回に一時記憶装置に収納された。記憶は、オブジェクト当り1つ以上のテクスチャ、または2つ以上のオブジェクトによって共有されたテクスチャであってもよい。
オプションで、オブジェクト上の画素の比較は、概念的な固定のグリッドつまり点に対するものであってもよい。普通には、比較は、少なくとも1つの画素座標で選択されたビットをマスクすることを含む。好ましくは、比較は少なくとも1つの減算を含む。好ましくは、減算は、前記テクスチャが同じオブジェクトの同じポリゴンに属する場合にだけ発生する。オプションで、比較は、更に、前記減算の結果を集計するステップを含む。普通には、集計は平均化することを含む。オプションで、集計することは平均を推測することを含む。
好ましくは、援助データ生成機能は、ブロック全体に対する動きベクトルを、そのブロックを占有するオブジェクトの部分の動きベクトルを集計することによって生成するように成される。普通には、集計することは平均化することを含む。オプションで、集計することは平均を推測することを含む。
好ましくは、援助データ生成機能は、オブジェクト全体に対する動きベクトルを、ブロックのそれぞれにある所与のオブジェクトに属する画素を検出し、これらの画素を別フレーム内の同じ場所にあるものと比較し、そして比較された画素を集計することによって生成するように成されて、そのオブジェクトの動きベクトルを推測する。普通には、検出された画素を集計することは平均化することを含む。普通には、比較は、少なくとも1つの座標で選択されたビットをマスクすることを含む。好ましくは、比較は、少なくとも1つの座標での減算を含み、ここで前記テクスチャは同じオブジェクトに属する。好ましくは、動きベクトルを適用するオブジェクト全体は、オブジェクトに連係すると見なされる全てのブロックを含む。
オプションで、第1グラフィックスプロセッサモジュールへ供給された命令からのパラメータは、格納され、次いで第2フレームからのパラメータで処理されて、それによって圧縮援助データの一部を形成するフレーム間の差分を特定する。
本発明の代替の実施形態では、第2セットの命令は、頂点シェーダプログラムまたは画素シェーダプログラム等のプログラム可能なパイプラインモジュールのための修正されたまたは新規セットのプログラムコードを含む。
方法は、第1パラメータを処理するようプログラム可能なパイプラインモジュール上のプログラムを実行すること、それによって第1変換結果を特定すること、および、第2パラメータを処理するようプログラム可能なパイプラインモジュール上のプログラムを実行すること、それによって第2変換結果を特定することを含んでよい。
普通には、変換結果は画面位置に直接的に関連し、特定されたフレーム間の差分値は動きベクトルの形式で特定されてよい。
オプションで、変換結果は色であり、特定されたフレーム間の差分値は色度または輝度における差分である。
好ましくは、方法は、更に、プログラム可能なパイプラインモジュールのための第1プログラムを解析すること、それで圧縮援助データのために使用されるフレーム内のオブジェクトの状態に影響を与えない命令を特定し、および特定された命令に応答してプログラム可能なパイプラインモジュールのための第2プログラムを作成することを含む。
好ましくは、プログラム可能なパイプラインモジュールのための第1プログラムを解析するステップは、オブジェクトの位置変換に影響を与えるパラメータを特定すること、および特定されたパラメータを格納することを含む。
オプションで、プログラム可能なパイプラインモジュールのための第1プログラムを解析するステップは、オブジェクトの色または輝度に影響を与えるパラメータを特定すること、および特定されたパラメータを格納することを含む。
好ましくは、プログラム可能なパイプラインモジュールのための第1プログラムおよびプログラム可能なパイプラインモジュールのための第2プログラムは、同じグラフィックス処理モジュール上で実行される。
代替として、プログラム可能なパイプラインモジュールのための第1プログラムおよびプログラム可能なパイプラインモジュールのための第2プログラムは、異なるグラフィックス処理モジュール上で実行される。
好ましくは、グラフィックス処理モジュールのためのグラフィックスのアプリケーション・プログラミング・インタフェース(API)(時にはミドルウェアと称される)の周りのデバイスドライバまたはラッパーは、デバイスドライバの質問に利用可能なプログラム記憶スペースの低減された値を返答することによってグラフィックス処理モジュール上のプログラム可能なパイプラインモジュールのためのプログラム記憶スペースを用意しておくように成される。
より好ましくは、グラフィックス処理モジュールのためのグラフィックスAPIの周りのデバイスドライバまたはラッパーは、デバイスドライバの質問に利用可能なデータ記憶スペースの低減された値を返答することによってグラフィックス処理モジュール上のプログラム可能なパイプラインモジュールのためのデータ記憶スペースを用意しておくよう成される。
本発明のより良い理解を提供するために、実施形態を以下に、単なる例として、添付図を参照して説明する。
本発明は、コンピュータ生成グラフィックスを含むビデオ画像を表す圧縮データストリームを生成するよう機能する対話型アプリケーションのためのシステムに関する。コンピュータ生成グラフィックスの分野に関する情報は、教科書「3Dコンピュータグラフィックス(3D Computer Graphics)」第3版, Alan Watt, Addison-Wesley, 2000 に見出すことができる。
普通には、コンピュータ生成3Dグラフィック図は、3Dオブジェクトの形状を定義するポリゴンのメッシュ、およびテクスチャマッピング処理を使用してメッシュ全体にあるテクスチャの形で生成される。本明細書中で、用語「グラフィックオブジェクト」は、グラフィック図、単一の頂点、頂点のグループ、「スプライト」(画素の集合)、もしくは「ベジェパッチ」または「nパッチ」機能オブジェクトに対するパラメータを称するであろう。多くの別体のグラフィックオブジェクトは、より少ない数の論理オブジェクトに結合されてもよく、例えば、壁および床は単一のオブジェクトであると定義され、従って同じテクスチャで被覆されてもよい。本明細書中で、用語「一様な色」は、その表面にわたり変化のない単一色を称する。
図1を参照すると、本発明に従う対話型アプリケーションのためのシステム10は、命令傍受モジュール11、メイングラフィックスプロセッサ12、命令傍受モジュールに応答する補助グラフィックスプロセッサ13、およびグラフィックスプロセッサに応答するエンコーダ14を有する。この実施形態では、エンコーダはDSPであり、代替としてエンコーダは、グラフィックスプロセッサ、いずれのCPU、または他の処理装置であってもよい。この実施形態では、命令傍受モジュールはデバイスドライバであり、代替として命令傍受モジュールは、DirectXTMまたはOpenGLTM等の既存のミドルウェアへの追加である。この実施形態では、1つの命令傍受モジュールが2つのグラフィックスプロセッサへ供給するが、別の実施形態では、2つ以上の命令傍受モジュール、例えばグラフィックスプロセッサ毎に1つあってもよい。メイングラフィックスプロセッサおよび補助グラフィックスプロセッサは、グラフィックスプロセッサモジュールである。それらは別々のハードウェアユニット、または1つのハードウェアユニット上で実行される別々の処理であってもよい。
図2は、ゲームソフトウェア21、3Dグラフィックスミドルウェア22、デバイスドライバ23、専用グラフィックスプロセッサカード24、レンダリング画像25、および圧縮システムまたはエンコーダ26を備えるゲームの処理のための代表的パイプラインを示す。点線AからEは、圧縮サブシステムにおける符号化処理によって用いられてもよい情報の異なるソースを示す。
普通のゲームの複雑なシーンをレンダリングするため、莫大な処理能力を必要とするので、グラフィックスは、通常、専用グラフィックスプロセッサチップによってレンダリングされる。PCではチップは通常別体のカードに搭載されており、コンソールでは、それはメインボックス内の別体のチップとなっている。
ゲームソフトウェア21は、グラフィックスプロセッサ24に、オブジェクトを記述する点の3D座標、3D空間におけるそれらの位置、それらの歪み方法(例えば、レーシングカーにおけるへこみ傷)、それを覆うべきスキン(「テクスチャ」)の種類、それらのライティングまたはシェード方法(これ故にテクスチャの更なる変更方法)を含む3Dシーン記述を供給する。大量の処理に続き、コンピュータモニタ等の装置上で観るために適した完全にレンダリングされた2D画像25が作成される。
図3は、グラフィックスプロセッサによってシーンをレンダリングする代表的処理フローを示す。ステップには:形状の移動および歪みを含む変換31;シーンのライティングおよびシェーディングを含むライティング32;他のオブジェクトを隠すオブジェクトを処理することを伴う設定およびクリッピング33;および、最終シーンの描画であるレンダリング34がある。
図2を参照すると、グラフィックスプロセッサの前にオブジェクトの形状および位置についての情報を取得しようと試みる(経路CからEの)困難は、オブジェクトの位置および形状がグラフィックスプロセッサの変換ステップ31を通過するまで特定されていないことにある。オブジェクトが3D空間にあるので、他と重なり合うオブジェクトについての知識は、グラフィックスプロセッサによってレンダリングされるまで入手できない。
ソースAから情報を得ることは、並列処理が実行できないことを意味するであろうし、ソースB、グラフィックスプロセッサから情報を得ることは、どの時点でも市場で既に入手できる最良のものを使用する代りに新規のグラフィックスチップを開発しなければならないことを意味するであろう。
図1を参照すると、本発明では、命令傍受モジュール11は、補助グラフィックスプロセッサに供給する。
この接続形態では、メイングラフィックスプロセッサ12は、普及しているコンピュータグラフィックスカードまたはゲームコンソールで用いられるような標準的デバイスであり、通常のように動作する。補助プロセッサは、並列に動作するが、エンコーダの要求事項に従い異なるセットの命令を供給される。
[オブジェクト識別(Object Identification)]
個々のグラフィックスオブジェクトの形状および位置を特定するために、命令傍受モジュール11は、同じ3Dシーン命令を補助グラフィックスプロセッサ13へ供給するが、シーンにおけるテクスチャの変更を最小限に行うようにターンオフまたは変更されたライティングおよびシェーディング局面を持つように設計されている。テクスチャを適用する代りに、第2プロセッサは、一意的な一様な色を使用して各形状をレンダリングするよう命令される。代替として、それは、オブジェクトを一意的に識別するようテクスチャ/色の現在のビット範囲を使用することによって等、それを一意的にする色の局面を有してもよい。次いで、比較的簡単なタスクで、圧縮エンコーダ14が、オブジェクトの形状および位置を特定し、この情報を使用して、メイングラフィックスプロセッサ12によって作成された適正にレンダリングされた画像から個々のオブジェクトを選択する。
グラフィックスカードによって使用される論理では、ビット範囲は、色の例えば青色および赤色成分を記述することに用いられる範囲の境界を越えてもよく、全ての緑色範囲および一部の青色範囲は、自由に変更されてもよい。
エンコーダは、以下の2つの要素で構成できる:補助グラフィックスプロセッサユニット(GPU)と共に動作して動きベクトル等の特定の詳細を抽出するプリプロセッサと;プリプロセッサから「ショートカット」を受取る「純粋な」エンコーダ。これは既製のMPEG−4エンコーダの使用を可能にする。プリプロセッサは、エンコーダ、命令傍受モジュール、ゲームプロセッサ、または別体のプロセッサとして同じプロセッサ上で動作するソフトウェアであってもよい。
色、シェードまたは色コンテンツの所定範囲は、所与の形状が透明であることを知らせることに使用できる。(MPEG−4はオブジェクトが実体であるか、または透明度の255レベルの1つを有するかのいずれかを許容する)。
更に、命令傍受モジュールからエンコーダへの直接的フィードフォワード経路15は、エンコーダが完全なシーン変更を検出できるように使用できる。そのような場合、そのシーンは、差分が過大になるため、前の画像からの差分として圧縮(時間的圧縮)されてはならない。
安価なチップは使用できるが、理想的には補助プロセッサは、レンダリング画像間のいずれの不整合も回避するように、実質的にメインプロセッサと厳密に同じであって、メインプロセッサと同じ解像度で動作する。
多くのこれら補助プロセッサが使用されてもよく、数は、使用されている符号化技術、コスト、スペースおよび電力の配慮による。エンコーダによって必要とされる情報の各要素に対して1つのプロセッサを有することに対する代替として、プロセッサおよびエンコーダが十分に高速な場合、より少ない、実際に潜在的にただ1つのグラフィックスプロセッサが使用されてもよい。従って、2つ以上のグラフィックスプロセッサ機能は、1ユニットの専用グラフィックスプロセッサのハードウェアで実装できる。この筋書きでは、グラフィックスプロセッサは、フレームをレンダリングすることに最終ディスプレイレートより高速にクロック設定でき、結果は、エンコーダが動作するための一連の隣接した重なり合わない場所でバッファメモリ内に格納される。エンコーダと命令傍受モジュールとの間のハンドシェイク信号伝達が、処理を調整する。
[動き推定(Motion Estimation)]
MPEG−4圧縮の最も演算集約的な要素は、「動き推定」であり、それは処理能力の50%から80%を消費する。
動画ビデオを圧縮する方法の1つは、ビデオの続くフレーム間の類似点を探索することである。フィールドを横切って歩いている人の例では、カメラが静止している場合、ビデオの各フレームに対してフィールドはほとんど同一であろう。主な変化は、1つのフレームで人がいた場所と一瞬の後にそれに続くフレームで彼が出現する場所との間に発生するであろう。
従来の動き推定では、画面はブロックに分割され、次いで前回フレームのブロックと比較されて、可能な限り近い整合を探索する。識別されると、ブロック全体を送信する代りに、前回送信されたフレームにある特定のブロックを新規フレームにおいてそれが出現する筈の場所から所与のオフセットで見出すことのできる信号が、デコーダへ送信できる。このオフセットは動きベクトルと呼ばれる。
これらのブロックのそれぞれは、ちょうど8x8画素であり得る。検索を行うために、エンコーダは、最初に左へ1画素だけのオフセットを見なければならず、そのブロックの64画素のそれぞれを試験ブロックのそれらから減算し、次いで左へ1画素および上へ1画素移動させ、再度全ての64画素を減算し、そして結果を比較する。速い動画シーンでは、オフセットは、全方向において例えば100画素離れていると言える。この処理は従って演算集約的である。
しかし、本発明のグラフィックスサーバの場合には、複雑さを低減するために、補助グラフィックスプロセッサが、3Dオブジェクトのそれぞれを新規テクスチャ(被膜、または「スキン」)で被覆することに使用される。これらのテクスチャは、水平位置で変化するそれらの色の1局面、および垂直位置で変化する別局面を有する。固定の点が画面上で取られ、オブジェクトのテクスチャの画素が2つの引き続くフレーム間でその位置で比較される場合、そのオブジェクトが移動した方向を特定できる。それにより、例えば、その画素が赤色成分でより高い明度を有する場合、それは右へ移動したことが検出される。その画素が青色成分でより高い明度を有する場合、それは下方へ移動したことが検出される。
本発明の1つの実施形態に従えば、32ビットの画素が使用される(「ビット」は2進数であり、0または1に等しい)。以下は、これらのビットが各画素に割当てられる方法の例である:
uuuuuuuuu aaaaaaaa yyyyyyy xxxxxxx
10 x u (各オブジェクト/テクスチャ結合体に対するユニークコード)
8 x a (アルファ−透明性を示すことに使用される、255=不透明)
7 x X (x軸でのテクスチャの変化量)
7 x Y (y軸でのテクスチャの変化量)
そのため、例を使用するが、理解を容易にするために十進法で、そしてxとyの桁だけを考慮する場合、以下のパターンが使用されてもよい:
11 12 13 14
21 22 23 24
31 32 33 34
41 42 43 44
上記のこの例のパターンで、1つ下で左から3番目に置かれた1つの画素を考えるとする。このフレームで、それは数23を持つ。次のフレームでオブジェクトが左へ1画素だけ移動した場合、装置は画面上で同じ位置に数24を検出することになろう。「x」桁が3から4へ増大したので、移動は左へ1画素であると検出される。「y」桁、すなわち「2」が1へ減少したとしたら、オブジェクトは1画素だけ下へ移動したであろう。
これらの数はグラフィックスカードによって色と解釈され、それにより32ビット画素では、12最上位画素が赤に、次の10が青に、そして最後の10が緑に予約されてもよい。
動きベクトルは、MPEG−4の現行版では、8x8または16x16のブロックごとの基準で計算される。そのような動きベクトルは、全てのx要素の平均および全てのy要素の平均を取ることによって計算されてもよい。
このブロックに基づく情報は、所与のオブジェクトに属するブロックのそれぞれにおける画素を検出すること、およびそれらを平均することによってオブジェクト全体(または1つのオブジェクトの部分)に対する動きベクトルを入手することに使用されてもよく、それによりそのオブジェクトの動きベクトルを推測する。(オブジェクトは1つ以上のベクトルを有してもよい、例えば、歩いている人は身体に対して異なって移動する手足を有するであろう)。
オブジェクトが別々に移動するかもしれない副要素を有しない場合、動きベクトルがそのオブジェクトに対して1つのブロックで計算された場合、装置は、そのオブジェクトが大部分の画素を占有する別のブロックの動きベクトルを即座に推測し得る。
動きベクトルは、ブロックまたはマクロブロック基準に適用される。エンコーダは、そのブロックを占有するオブジェクトの部分の動きベクトルを集計することによってブロック全体に対する動きベクトルを生成するように成される。一実施形態において、これは、ブロックにおける各オブジェクトに対する各画素の動きベクトルを計算すること、次いでそのブロックの中の各オブジェクトの動きベクトルを計算すること(それは全画面の上のオブジェクト全体とは異なることがある)、そして次いでそのブロックの動きベクトルをそのブロックの中のオブジェクトの加重平均化を使用して計算することを伴う。
普通には、オブジェクト全体は、これらのブロックの1つがそのオブジェクトに属する画素を実際に含有するか否かにかかわらず、エンコーダによってオブジェクトに連係すると見なされる全てのブロックを含む。動きベクトルは、従って、ブロックの全てへ適用される。
オブジェクトを符号化する場合(内部的に単にオブジェクトを使用するのでなく)、それらは、有界の長方形として、その長方形が16x16画素のマクロブロックのグリッドに合致するように定義される。多くのブロックまたはマクロブロックは、まったく空かもしれないが、その「ビデオオブジェクト平面」と、従ってそのオブジェクトに属する。
一実施形態において、各オブジェクトを一意的なテクスチャでラッピングする代りに、方法は、単一の画面サイズのテクスチャをシーン上へ、スライド映写機そっくりに投影すること、次いでそのテクスチャをシーンにある全てのオブジェクトの空白表面と混合すること(すなわち、結び付けること)を伴う。オブジェクトの表面は、「クリーン」にされ、一様な一意的な色で置換されており、それにより個々のオブジェクトは識別できる。ブレンディング処理は、投影された「基準」テクスチャをオブジェクトの表面と結合して、一意的なテクスチャを各オブジェクト上に作成する。移動は、この投影された「布地」に「切り裂き」を生じ、それにより移動は容易に検出できる。基準グリッドは、視聴者と同じ位置に配置される。
この上記方法は、テクスチャをシーン全体上へ投影することを伴う。この処理は、テクスチャを後部平面(シーンで目に見える最遠の平面)上へマップする「投影マトリクス」を最初に特定することを含む。このマトリクスは次いで各オブジェクト上に使用され、それによりそのテクスチャマッピングを投影されたテクスチャへ設定する。内在するステップは、グラフィックスプログラミングに精通する者にとってよく知られているであろう。
投影されたテクスチャが以下のパターンを有する場合:
1 2 3 4 5 6
7 8 9 10 11 12
13 14 15 16 17 18
19 20 21 22 23 24
25 26 27 28 29 30
パターンの中央左にある3x3画素正方形で、左へ1画素だけの移動の後に、以下のパターンが得られる:
1 2 3 4 5 6
8 9 10 0 11 12
14 15 16 0 17 18
20 21 22 0 23 24
25 26 27 28 29 30
1つの計算パスがテクスチャを投影することに使用され、シーンが移動され、そしてGPUが変換計算を実行し、画面上の画素を移動させる−これは第2パスである。シーンは、投影されたテクスチャを移動させること、およびオブジェクトの表面をその初期状態にリセットすることによってリセットされて、テクスチャを再投影する。全ての処理は2パスを要する(リセットすることおよび投影することは1パスで生じる)。
オブジェクトのそれぞれは、一意的な一様な色で事前にカラーリングされてもよく、グリッドテクスチャを適用する時、テクスチャをこの色と結合して、各オブジェクトのための一意的なテクスチャを作成する(例えば、各オブジェクトのために一意的な色を作成することに赤チャネルが予約され、グリッドテクスチャを作成することに他のチャネルが予約される)。
一実施形態において、これらの方法は、補助グラフィックスプロセッサモジュールへそれに新規オブジェクトテクスチャを生成させる命令を供給する命令傍受機能によって実施される、これらの命令は、画像フレーム全体を覆い、前記画像フレームにあるオブジェクトの表面に結び付ける単一テクスチャをそれに生成させて、新規オブジェクトテクスチャを作成する。単一テクスチャは、画像フレーム上へ投影されるか、またはそれから反射される。単一テクスチャを生成するステップは、オブジェクトの表面を初期値に設定すること、および次いでオブジェクトに対して新規表面テクスチャを作成および適用するように単一テクスチャを変更することを含んでよい。初期値は、オブジェクトが透明かどうかを指示し、そして画像フレーム内の各オブジェクトにとり一意的である。エンコーダは、新規オブジェクトテクスチャに基づきオブジェクトの形状および位置を特定する。
本発明は、3Dオブジェクトをその2D画面描写と連係させ、動きのみならず動きの量および方向も識別する様式を提供する。好ましい実施形態は、基準グリッドをシーン上へ投射するよう投影のテクスチャを使用することである。テクスチャは、画面と同じ寸法を有し、それをカメラと同じ位置の点から投影すると定義される。効果は、シーン全体がテクスチャで覆われることとなる。
テクセルは、テクスチャ内部の単一の要素であり、画素が単一の画面要素であることに類似する。投影テクスチャの各テクセルは、本発明のこの実施形態では、テクスチャにおいてその位置を表す一意的なXおよびY成分に分割される。種々のテクスチャフォーマットが選択されてこれを達成し得る。最も普及した32ビットテクスチャフォーマットは、普通には赤、緑、青およびアルファ成分を有し、それぞれが8ビットを占有する。10ビット色または浮動点色等でさえもより好適なフォーマットが存在するが、現在では広くサポートされていない。
そのようなグリッドをシーン上へ投影することによって、画面の画素位置と厳密に一致する基準グリッドが提供される。どんな移動も発生する前にこのテクスチャを投影すること、そして移動後に結果を元に対して比較することによって、移動が発生したことのみならず、その動きの画素の数ならびにxおよびy成分の量も検出できる。
図4は、簡単な3Dシーン上へ投影されているテクスチャを示す。画面42上の点線は、シーンの背景48と共にシーンを構成する2個の3D立方体46の2D表示の外形44を示す。
動きを追跡するために、画面に対するオブジェクトの位置の現在の状態を格納する方法が提供され、それは比較的細かいレベルの解像度でそうすべきである。
使用できるデータは、オブジェクトの頂点、オブジェクトの表面を形成するテクセル、もしくは、ポリゴンまたはテクセルを作成または移動することに使用される変数である。
これを達成する1つの方法は、オブジェクトの表面にわたる画面位置を格納するようテクスチャを割当てる―「テクスチャキャッシュ」である。このテクスチャにおける各テクセルは、レンダリング中に基準テクスチャの投影によって特定されたその画面位置の表示を格納することになる。表面にわたり十分に高いサンプリング解像度を生じるためにテクスチャのサイズを選択することに注意すべきである。装置は元の画像で発生している画面上の画素の移動を追跡するので、一定のテクセル対画素の比が好ましい。従って、使用されるテクスチャキャッシュは、そのオブジェクトに割当てられた元のテクスチャと同じサイズである。元のゲームは、テクスチャがオブジェクトの表面にわたり並べて表示される(繰返される)場合、オブジェクトの種々の部分を覆うことに2つ以上のテクスチャを割当てたかもしれない。並べて表示する場合には、テクスチャキャッシュは、元のテクスチャがオブジェクトの表面にわたり繰返される回数と同じ倍数で大きくされる。
基準グリッドと共に投影テクスチャマッピングを投影されたテクスチャとして用いることにより、装置は、テクセルが「現実」の画像(すなわち、元のプログラマが意図したもの)にあったならばテクセルが出現したであろう画面上の場所をテクセルごとの基準で識別できる。
オブジェクトが移動する場合、テクスチャキャッシュのテクスチャマッピングも変化し、それによりそれは今やオブジェクトの新規位置に対応し、この事実はそれが今や異なるセットの基準グリッドテクセルを含有する事実によって確認される。本来のテクスチャは今や2D画面座標という観点でオブジェクトのテクセルがある場所を「知って」おり、記憶されたテクスチャは前回フレームでそれがあった場所を「知って」いる。
画面位置は、テクスチャ空間の中からサンプリングされ、それにより通常のレンダリングパイプラインは、それが画面空間という結果になるので、使用できない。換言すると、テクスチャを画面空間にレンダリングすること、すなわち、画像を画面上に作成することという通常の思考様式の代りに、画面空間位置はテクスチャにレンダリングされる。オブジェクトが移動する時、テクスチャキャッシュのテクスチャマッピングも変化することになり、それによりそれは今やオブジェクトの新規位置に対応する。キャッシュは、それ故に、画面に関してオブジェクトのテクセルの配向を「憶えている」ことになる。
2つのテクスチャキャッシュが、この実施形態では、保持される:前回フレームに対して1つ、および現行フレームに対して1つ。代替の実施形態では、オブジェクト当り1つだけが使用されてもよい、または全部のテクスチャの代りにテクスチャの一部分がオブジェクトに割当てられる場合、全てのオブジェクトに対して1つだけが使用されてもよい。
各フレームに対して、収納対象は、シーンの始まりで1回異なるテクスチャキャッシュへ交換されてもよく、現行の位置はそのキャッシュに収納される。他のキャッシュは、それでも前回フレームの画面位置を有することになる。テクセルごとの基準で、そこで、減算により前回フレームからこのフレームへのそのテクセルの正確な画面移動が分かる。プログラム可能なパイプラインハードウェアが、圧縮シーケンスの完了においての使用のためにビデオエンコーダによってアクセス可能な領域に現行のシーンのテクセル差分を収納することに使用され得る。この領域に格納されたデータは、各画素を表すテクセルの正確な動き、この故にその画素の動きである。
両方のテクスチャキャッシュはオブジェクト頂点へ同じ様式で結び付けられているので、それらは相互に対してシフトすることはない。この技法は、その故にx、y、またはz軸での移動だけでなくモーフィングによる回転または歪みでも動作する。
半面のテクスチャが2回マップされる例のようにテクスチャの幾つかの部分はマッピングにおいて再使用されてもよいので、本発明は、「一意的なテクスチャ空間」が使用されること、すなわち、重なり合いがないものを確かにする方法を提供する。さもなければ、テクセルが画像に出現するたびに、その現行値が新規画面位置で上書きされることになり、装置は、テクセルの全ての場所と対照的に、(レンダリングされるべき最後の)テクセルの1個所だけを知ることになろう。この限定を克服することは、元のテクスチャを新規テクスチャへコピーすることによって頂点を新規テクスチャへ再マップせねばならぬことを意味する。この方法は、元のテクスチャのサイズを倍にし、前回マップされた領域を参照した一定のオフセットを頂点へ追加することによって実行され得る。
新規テクスチャは元のサイズへ圧縮されてもよく、従って元のポリゴンを縮小させる。代替として、元のポリゴン寸法は維持され得るが、再マッピングはそれ程多くの不使用スペースを有しないように再編成される。
更なる方法は、テクスチャキャッシュを元のテクスチャと同じサイズに保つことであろう。しかし、N個の三角形が元のテクスチャへマッピングされる場合、キャッシュはN個の長方形に分割される。これらの長方形は、次いで2個に分割され、それにより元の2倍の数の三角形がある。
システムは、次いで元へマップされる全ての三角形を介して動作し、それをテクスチャキャッシュのそれぞれにある三角形の1つへ割り当てる。再マップされる時に相対的位置が変化した事実は、テクスチャキャッシュがレンダリングすることに使用され、従って「一意的なテクスチャ空間」を必要とするだけなので、問題にはならない。
[実装の概観(Overview of Implementation)]
以下図5を参照し、本発明を実装するシステムのメイン構成要素を図示する。構成要素は、テレビ端末52等の複数のユーザ局に提供する集中型ゲームサーバの列50を含む。集中型サーバおよびユーザ局は、ケーブルまたは衛星放送ネットワークおよび/もしくは公衆電話ネットワーク等の1つまたはそれ以上のデータ通信ネットワーク54経由で接続されている。セットトップボックス56が、機能の中でもとりわけ、圧縮されたビデオデータを復号化するために備えられる。ジョイスティック等のユーザ入力装置58が、ゲーム中にユーザ入力を検出するために備えられる。ネットワーク(単数または複数)54が、集中型サーバ50から、セットトップボックス56が信号を圧縮復元されたビデオ信号62へ変換するユーザ端末への圧縮されたビデオデータ60の送信、および、反対方向へのユーザ入力64の送信を提供する。
図6は、ゲームサーバの列50にある単一のゲームサーバの実施形態の特徴を概略的に示す。ユーザ入力64は、従来のパーソナルコンピュータ(PC)の中央演算処理装置(CPU)72にネットワークインタフェース70を介して入って来る、PC上で従来のPCゲームプログラムが動作する。ゲームプログラムが、第1セットのグラフィックス命令を第1グラフィックス演算処理装置(GPU)76へ送り、命令は命令傍受モジュール74によって傍受され、モジュールはソフトウェアラッパーまたはハードウェア形式で具現化されてもよい。第1セットの命令は、頂点データ、変換データおよびテクスチャデータを含み、GPU1 76へ渡され、その一方で特別に操作されたバージョンの命令が生成され、第2グラフィックス演算処理装置(GPU2)78へ渡される。両GPUは、共通のグラフィックスカード上に備えられてもよい。GPU1 76は、ゲームが意図するように画像データをレンダリングし、一方でGPU2 78は、圧縮のために使用される圧縮援助データ、例えば、動きベクトルが抽出される特別に適合されたグラフィックスデータをレンダリングすることに使用される。各画像フレームは画素のブロックに分割されることになり、次いで各ブロックに対して、可能な場合、画素のそのブロックのx、y座標が前回画像フレーム内で見付け出される。デジタル信号処理装置(DSP)84が、GPU2からの圧縮援助データを使用して、GPU1からの画像データをMPEG−4等の既知のビデオ圧縮アルゴリズムを使用して圧縮し、そして結果としての圧縮されたビデオストリーム86をCPU72へネットワーク54にわたる送信のために回送する。ハンドシェイク信号伝達88が、ネットワークが混雑している場合に品質制御のためにDSP88とCPU72との間で使用される。
上記に関連して、DSP88の機能は別のCPUによってまたはCPU72上の異なるタイムスライスによってさえも置換できることに注意されたい。さらに、GPU2 78は、代替として、GPU1 76上の別のタイムスライスを使用して具現化できる。
好ましい実施形態の方法は、オブジェクトの移動が、よって画素の移動が2D画面上で追跡されることを可能にする。「オブジェクト」の2D画面表示の形状および位置の知識は、動き推定のほかに別の圧縮技法のためにも有用である。MPEG−4は、任意に形状化されたオブジェクトを符号化する可能性を提供する。利点の中でもとりわけ、これは形状の周辺での「濃淡むら」が低減されることを可能にする。
このレベルでのタスクは現行フレームにある画素のブロックと前回フレームにあるブロックとの間の最良の整合を識別することであることに注目するのは重要である。それは厳密な整合である必要はない。エンコーダは、そこで、それがそのブロックをフレーム間モードで符号化するかまたはフレーム内技法を使用するかに整合が妥当であるかを決定する。
本発明の更なる実施形態を以下図7から10を参照して説明する。最新のグラフィックスチップは、以前の固定グラフィックスパイプラインの代りに(そして、それだけでなく)、今やプログラム可能な変換およびライティングステージ(段)も有する。
これらは、多くの場合Microsoft(登録商標)によって「頂点シェーダ」(VS)および「画素シェーダ」(PS)と称される。それらは、時には他の団体によって「頂点プログラム」、「断片プログラム」、「頂点プロセッサ」、または「断片プロセッサ」とも称される。
VSは、頂点(オブジェクトの構造を記述する3Dの点)の移動することおよび変換することだけでなく、ライティング、色、およびテクスチャマッピング座標も取扱う全ての機能を扱う。しかし、PSは、テクスチャおよびそれをオブジェクトに適用する方法ならびに幾らかのライティングなどを取扱う。
以前には、ゲームプログラマは、固定パイプライン−すなわち、設定不可の処理を使用しなくてはならなかったのに対して、今やVSを使用して、グラフィックス演算処理装置(GPU)上で実行することになる短いプログラム(プログラム可能なパイプラインモジュール)を書く能力を有する。
ゲームがVSと通信するには、最初にプログラムをロードし、次いでデータを数多くの「一定の」レジスタを通して回送する。それは、次いで頂点データを幾つかの「入力」レジスタを通して回送し、頂点プログラムを実行する。結果としての変換された頂点は、そこで、「出力」レジスタに出現する。しかし、これらのレジスタは、2D画面座標に対応するデータを含有しないが、その代りに「相反均質座標」として含有する。「ステッパ」と呼ばれるGPUパイプラインの別のステージ(段)が、これらを2D画面座標へ転換し、頂点をそれらが視野(「錐台」)の中にあるか否かに従いクリッピングする。
画面にわたり画素の動きを追跡するために、従って、頂点が変換ステージ(段)を通過した後に、頂点への変化だけが特定される必要がある。画素レベルの解像度を入手するために、装置は、テクスチャをオブジェクトの表面へ適用することに通常使用されるであろうと同じ技法を使用して、そのポリゴンの表面にわたり補間する。その補間機能は、GPUの標準的処理パイプラインの一部である。
頂点を処理する1つの様式は、それらがVSによって変換された後にそれらを格納すること、および次いで2つの引き続くフレームの頂点を減算して、画面移動を計算することであろう。これは実行可能な提案であるが、それなら一意的なテクスチャ空間を生成する課題も、解決されなければならない。
代替として、装置は、入力パラメータ間の差分を取ることができ、これらを最終的に2フレームの上の頂点間の差分になるよう処理する。装置は、従って、前回フレームからの頂点の変換処理を特定することに使用されている全ての変数を格納し、そこで、それらを同時に新規VSプログラムに現行フレームの頂点を変換することに使用される変数として供給する。
フレーム0で、装置は入力変数を格納する。フレーム1に対する処理では、フレーム0の変数に加えてフレーム1の変数が入力される。変更されたVSプログラムは元と非常に類似であるが、違う点は、元のゲームプログラマによって意図されたように頂点の変換を計算した後に、それは、異なるレジスタに格納された変数を使用して前回フレームの頂点もまた処理することになるように変更されたことである。それは、元来意図されたような単一の変換された頂点の代りに、これらの2つの頂点間の差分を計算することを続行し、その結果を出力する。
図7は、標準的頂点シェーダ102を示す。入力頂点データ104および頂点シェーダ定数106はどんな順序であってもよいことに注意されたい。どの定数が、色情報、ライティング、頂点位置、またはそれ以外と称するかの選択は、未知である。しかし、出力108は定義されている:oPosは頂点の「画面空間」位置であり、oD0は発散色であり、oD1は反射色であり、oT0からoT3まではテクスチャ座標の4点である。oFogはフォグの範囲であり、oPtsは点スプライトプロセッサのための点サイズである。
VSプログラムにおいて頂点の新規位置を特定することに使用される入力(「頂点シェーダ定数」)および命令を特定するために、処理は出力oPosで始まり、逆行して動作する。
図8を参照すると、グラフィックスパイプライン200において、CPU上のゲームプログラム202は、DirectXラッパー204およびパラメータ用記憶装置26で示される。頂点シェーダ208は、変換された頂点および動きベクトルの両方210を出力する。
図9を参照すると、システムのステップ300は第1フレームF0を処理することで示される。
最初に302、本来の(元の)VSプログラムがDXラッパーによって解析され、新規の連係するプログラムが作成される。ここでは、処理は、元のVSプログラムを解析し、頂点の位置を純粋に取扱う命令および入力パラメータを特定し、そして新規のVSプログラムを作成する。
元のVSプログラムは、そこで、GPU上へロードされる304。
次に306、F0データがパラメータとしてVSプログラムにロードされ、コピーが作られる。元のVSプログラムによって使用される、F0において頂点の位置に影響を及ぼす全ての入力パラメータが、格納される。
モデルの単一の頂点がロードされ、処理される308。画面空間に変換されたモデルの1つの頂点が、今や利用可能である(これは実際には正規化デバイス座標における4−Dベクトルであり、それに対する別名は相反均質座標、RHCであり、これは「ステッパ」によって画面座標へ転換される)。
最終的に310、モデルのさらなる頂点が残っている場合、ステップ306へ戻る。
図10を参照すると、システムのステップ400は、第2フレームF1およびそれに続くフレームを処理することで示される。
元のVSプログラムがGPU上へロードされる402。
次に404、F1データがパラメータとしてVSプログラムにロードされ、コピーが作られる。元のVSプログラムによって使用される、F1において頂点の位置に影響を及ぼす全ての入力パラメータが、それに続くフレームの処理のために格納される。
モデルの単一の頂点がロードされ、処理される408。
前回作成された新規の連係するVSプログラムがロードされる410。
前回フレームF0からの頂点位置に関する入力パラメータ、および現行フレームF1に対するパラメータが、新規のVSプログラムにロードされ412、次いで同じ頂点が、F0データ、次いでF1データを使用して処理され414、そして差分が出力される。新規のVSプログラムは、これらの2つのフレームに相当する頂点を1回のパスで処理し、2つの結果を減算し、そしてそれをVSの正規の出力レジスタを通して出力する。
モデルのさらなる頂点が残っている場合416、ステップ402へ戻る418。
2つのVSプログラムをロードおよびアンロードする代りに、1つの可能性は、2つを接合して、1つの大きなVSプログラムを作ることである。入力パラメータまたは内部変数が、動きベクトルが計算されるべきか画像がレンダリングされるべきかに従いプログラムの適切な部分へ跳ぶことに使用される。1つのVSプログラムを使用することで、収納状態変化は半減され(すなわち、システムはステップ404へ一巡して戻ることができ420)、従って僅かに処理の速度を上げられる。
レンダリングパイプラインの残りは、そこで、「ステッパ」により通常のように継続して、ポリゴンにわたり補間し、ふさがれた画素を選び取り、そしてメモリに収納するために画素シェーダへ引渡す。唯一の違いは、画面メモリに収納する代りにパイプラインは異なる記憶域に収納するよう命令されていることである。
オプションで、2つの変換された頂点が差分の代りに出力されてもよい。
この処理の全部は「パラメータ化」と呼ばれ、有効な既存のVSの部分を特定することは、「レジスタカラーリング」として知られる。これらの技法はコンパイラ理論で使用される。
恩恵を受けることは、既存のハードウェアを使用すること、およびゲームコードを再コンパイルする必要性を回避することにあり、これは既存のゲームコードを特に以下によって変更することによって行われる:
「圧縮のために有用な情報」を究極的に特定するよう既存のゲームプログラムを修正するという面でのレジスタカラーリングの使用。このステップは、限られた数の入力レジスタがあるだけなので、格納され、次いで新規のVSプログラムに供給されるべき入力パラメータの量を本質的に少なくできるように使用される。それは、また、頂点のライティングまたはカラーリングを特定する命令をコピーすることを回避することによって新規のVSプログラムを短くすることを可能にする。これを行うことは必須事項ではないが、それ無しでは無駄が多いであろうし、新規のVSプログラムがGPUに対して大き過ぎるか、またはGPUが所有しない多過ぎる入力レジスタを必要とするリスクが存在する;
動きベクトルを特定するための頂点シェーダの使用;および
頂点の位置変換に影響を与えるパラメータを特定すること、およびそれを後の処理のために格納すること。
頂点は、ゲームコードによって動的に作成され、どんな順序でもGPUへ送られることができよう。正しい対が減算されるように頂点をフレーム間で認知する何らかの様式が必要とされる。これは各頂点に対して署名を作成することによって達成できる。署名は、その頂点をレンダリングすることに使用される、例えば、VSプログラムがそれを処理することに使用される全てのもの(または少なくとも数多くのもの)で作り上げられる。
現行のGPUハードウェアは、後変換された頂点を格納できない、それにより多数パスを必要とする何らかの複雑な特別の影響がある場合、これは頂点変換が毎回計算されねばならぬことを意味する。それが真に複雑である場合、プログラマは、代りにCPU上でこれらの変換を行うことを選ぶかもしれない。
オプションで、キャッシュが、2つ以上のフレーム間で(動きベクトルを特定することでの使用のために)後変換された頂点を格納することに使用されてもよい。
通常、VS処理を通る単一のパスは、単一の頂点だけを処理する。GPUは、並行して動作するいくつかのVSを有することがあるが、それら全ては同じ収納対象を使用する。2つの頂点間の差分を計算することは、収納対象を交換することを意味するであろう。正規の処理は、頂点1をロードし、元のVSを実行し、修正されたVSプログラムをロードおよび実行し、次いで元のVSプログラムを再度ロードし、頂点2をロードする等であろう。収納状態および対象を交換することは、オーバヘッドであり、すべての頂点に対してそうすることは、総体的処理を相当に遅くすることになろう。
遅延を最小限にするために、その完結したオブジェクトに対する全ての入力詳細は、格納および編成されてもよく、それにより収納対象は頂点が処理される前に1回だけ変化される。これは収納状態変化および収納対象変化の両方の数を低減することになろう。
状態変化を低減する別の様式は、単一のVSプログラムを有することであろう。処理は、元のVSプログラムを新規の部分と結合できて、大きいプログラムを作り、次いで入力定数の1つをスイッチとして使用し、それにより単一の新規のVSは処理するためのそのコードの一部が元かまたは新規追加かを知る。GPUは、一時に1画素をレンダリングできるのみであり、それにより両VSプログラムは同時に処理されないかもしれない。従って、2つ以上のVSプログラムがあってもよい。
更に、2つの区別できる収納対象を有する代りに、処理は、画面の2倍大きいただ1つを有することができ、単に所望画像を半分へ向け、頂点間の差分をもう1つの半分へ向ける。これは、また、2つのGPUの代りに1つを使用することで助けになる。代替として、処理は、情報の2つの部分を、レンダリングされた画像を色の1つの範囲に、頂点データ間の差分をもう1つの範囲に制限することによって単一の画像に組み込みできよう。
パラメータ化が動作するために、変更されたVSプログラムのために十分なスペースがあり、2セットの変数を通過させるのに十分なレジスタがあることを想定している。それはグラフィックスチップの能力およびVSプログラムに大いに依存することになる。しかし、処理が問題に行き当たらないことを確実にするのを助けるために行われ得ることがある。
一番は、ホストのゲームプログラムがGPUのデバイスドライバにその能力を尋問する時に、GPUは、GPUが実際にサポートするより小さいVSプログラム格納場所、および変数を格納するためのより少ないレジスタを有していると、処理が主張することができることである。
どんな1時点でも、最終消費者によって使用されるグラフィックスカードには大きいバラツキがある。それで、ゲームソフトウェアは、それ故に、さまざまな異なる能力に対処しなくてはならない。それ故に、ゲームが1つを起動しようとする前にGPUによって供与される設備を点検することは慣行のことである。GPUが低い洗練度であると主張することによって、ゲームを壊す機会は少なくされる。その代りに、ゲームは、そのグラフィカルの特色を外すことによって、またはそのセットのコマンドを代りにホストCPUに回送することによって順応するであろう。結果は、ゲームプログラムをすっかり駄目にするのでなく、グラフィカルの特別な効果を少し減退させるだけであろう。
先に記載したように、頂点変換計算を行うだけでなく、VSはライティング等の局面も取扱う。それ故に、VSプログラムの幾つかおよびレジスタの幾つかは、画面上の画素の動きに影響を有しない様式で使用されることになろう。必要なレジスタ数を低減するために、そしてVSプログラムの修正バージョンをより速く実行させるために、既存のVSプログラムは事前解析されて、有効である部分を特定する。
有効であるものおよび有効でないものを選り分けることは、ゲームプログラマの意図を事前に知らない場合、入力レジスタは差別されていないので、単純でない。しかし、通常の動作では、VSプログラムは、事前指定されたレジスタを使用して変換された頂点を出力することになる(それは、次いで総体的グラフィックスパイプラインにおける別のステージ(段)への入力として使用されることになる)。その知識を装備して、処理は、VSプログラムを通して逆行して動作でき、頂点座標に影響を有することごとくの命令および記憶域を識別して、従って「依存関係グラフ」を構築する。これにより処理は有効な命令および入力レジスタを識別できる。これは、コンパイラ理論でよく知られた問題であり、「レジスタカラーリング」と呼ばれる。処理は、そこで、どんな無用な命令も取り去ることができる。
GPUは、上記で説明したプログラム可能な種類だけでなく、固定のグラフィックスパイプラインもサポートできる。説明した技法が動作するために、処理は、固定パイプラインを使用したであろう命令の処理を模擬するPSおよびVSプログラムを最初に作成する必要があろう。これらは、そこで、動きベクトル生成の本発明の技法を適用する前に、元の固定パイプライン命令を置換することに使用されよう。
画素に基づく動きベクトルのグループからブロックに基づく単一の動きベクトルを作成する、および間および内の間のコーディングを決定する方法は、良く知られている。
本発明のこの実施形態は、以下の特徴を有する:
− 画面上の画素の動きベクトルを計算することに2フレームの後変換された頂点を使用すること。
− 最初に頂点がもはや重なり合わない様式でそれらをメモリに格納すること、次いで差分を得るよう2セットの頂点を相互から減算することによって行うこと。
− 2フレームの上の頂点間の差分を生成するために、入力変数における差分を処理することに頂点シェーダを使用すること。
「頂点シェーダ」は、「画素シェーダ」がそうであるように、「プログラム可能なパイプライン」の種類である。
− 2フレームの上の色および/または輝度での差分を特定することに頂点シェーダおよび/または画素シェーダを使用すること。
− 現実の画像および頂点間の差分が同じ「収納対象」として格納され得るように大きい収納対象を使用すること。
− 処理が収納対象を交換し続ける必要がないように後の処理のために入力パラメータを記録すること。
− 頂点位置そのものに影響を与える命令およびデータだけを隔離できるように頂点シェーダプログラムを解析し、それを変更すること。
− ホストゲームプログラムがGPUにその能力を問い合わせる際にホストゲームプログラムにうそをつくこと。
− 1つまたは2つ以上のVS/PS/GPUだけの中で上記技法を使用すること(すなわち、単一GPUにおける既存のコードを中断し、新規処理サイクルを新規コードで実行すること、または全く別のGPUを使用して新規コードを実行させること)。
− 画面画素と一致する「動きベクトル」を入手できるようにポリゴンの表面の上の頂点間の差分を外挿すること。
差分は、2つの連続するフレーム間である必要はなく−それはどの2フレームでもよい。
GPUは、2つ以上のVSおよび/またはPSを有することが出来る。
ポリゴンの代りに、ゲームは、「ベジェパッチ」または「nパッチ」のような技法を使用してオブジェクトを記述してもよく、3D表面を記述することに代りに数学的関数が使用されることを意味する。それ故に、離散した頂点を追跡する代りに、処理は、より高いレベルの形状記述関数に合わせて入力変数を追跡する必要があるかもしれない。
本発明の技法は、ただ3Dオブジェクトだけでなく、広告看板等の2Dオブジェクトに対しても使用できよう。
オプションで、方法は、頂点を持つタグの使用を包含するよう修正されてもよく、それにより2フレーム間の同じ頂点を関連付けることがより容易になる。幾つかのゲームはシーンを記述することに動的に生成された頂点を使用する。それがゲームによって同じ順序で作成されることが確かでないので、プログラムが2つの頂点間の差分を特定する時期、実のところ処理が両方の場合で同じオブジェクトの同じ点を取扱っていることを処理は確信できない。
オプションで、全ての頂点を追跡する代りに、処理は、簡単な有界の箱、または空間におけるオブジェクトのz位置の両極端を表す2点だけでさえも、等の低解像度モデルを代りに追跡できよう。処理は、そこで、これらの点へ変換機能を適用し(多分CPU内で)、そしてこの後変換された結果をオブジェクトの事前変換された頂点へ簡単に外挿できよう。
本発明の利点は、合成画像により、本発明によって提供された識別の方法および手段によって、画像に関する情報に、そのレンダリングより前にアクセスがあり、そしてこの情報は圧縮処理を助長できる、事実を活用することである。その画像のレンダリングと並行してこの情報を処理することによって、圧縮の速度が改善でき、この故にシステムの待ち時間が低減できる。
更なる修正および改善が、本明細書に説明された本発明の範囲から逸脱することなく追加され得る。
本発明に従った集中型対話グラフィカルアプリケーションシステムを概略形式で示す。 ゲームの処理のための代表的パイプラインを概略形式で示す。 グラフィックスプロセッサによってシーンをレンダリングする代表的処理フローを示す。 簡単な3Dシーン上へ投影されているテクスチャを示す。 本発明の1つの実施形態に従うゲームシステムの概観を示す。 本発明の実施形態に従う単一ゲームサーバを示す概略図である。 頂点シェーダを概略形式で示す。 本発明の好ましい実施形態に従ったアーキテクチャを概略形式で示す。 本発明の好ましい実施形態に従った第1フレームの処理のためのステップのフローチャートを示す。 本発明の好ましい実施形態に従った第2およびそれに続くフレームの処理のためのステップのフローチャートを示す。

Claims (18)

  1. 少なくとも1つのグラフィックスプロセッサモジュールを使用して圧縮ビデオデータ信号を生成する方法であって:
    a)グラフィックスプロセッサモジュールのための第1セットの命令を受け取るステップ;
    b)前記第1のセットの命令を傍受し、グラフィックスプロセッサモジュールのための第2セットの命令を生成するステップ;
    c)第1のグラフィックスデータを生成するよう前記第1セットの命令または前記第2セットの命令をグラフィックスプロセッサモジュールにおいて処理するステップ;
    d)第2グラフィックスデータを生成するよう前記第2セットの命令を処理するステップ;
    e)圧縮援助データを生成するよう前記第2グラフィックスデータを処理するステップ;および
    f)圧縮ビデオデータ信号を生成するよう、前記圧縮援助データを使用して、前記第1のグラフィックスデータを処理するステップ;
    を含む、方法。
  2. 前記第2セットの命令は、ステップd)がステップc)より少ないデータ処理能力を使用するように生成される、請求項1に記載の方法。
  3. 前記第1のグラフィックスデータは、画像フレームを含む、請求項1または2に記載の方法。
  4. 前記方法は、グラフィックスオブジェクト上の点へマップされるべき少なくとも1つの属性を定義するための命令を、前記第2セットの命令内に、特定して生成するステップを含み、その属性は実質的に同じ前記グラフィックスオブジェクト上の実質的に同じ点へマップされるべき、対応する属性よりも容易に識別可能であり、前記第1のグラフィックスデータ内で識別可能である、請求項1〜3のいずれか1項に記載の方法。
  5. 前記第1セットの命令は、グラフィックステクスチャ命令を含み、前記第2セットの命令は、異なるグラフィックステクスチャ命令を含む、請求項1〜4のいずれか1項に記載の方法。
  6. 前記異なるグラフィックステクスチャ命令は、前記第2のグラフィックスデータにおいて画像フレーム内の領域に対して実質的に一意であるよう編成される少なくとも1つのテクスチャ属性を定義する、請求項5に記載の方法。
  7. 前記方法は、1つ以上のグラフィックスオブジェクトのための異なるグラフィックステクスチャマッピングを生成するステップを含む、請求項5または6に記載の方法。
  8. 前記方法は、1つ以上のグラフィックスオブジェクトのための投影テクスチャマッピング処理を実行するステップを含む、請求項5〜7のいずれか1項に記載の方法。
  9. 前記方法は、1つ以上のグラフィックスオブジェクトのために前記第2グラフィックスデータの少なくとも一部をメモリキャッシュへ書き込むステップを含む、請求項1〜8のいずれか1項に記載の方法。
  10. 前記方法は、前記第1のグラフィックスデータを生成するよう前記第1セットの命令または前記第2セットの命令を第1のグラフィックスプロセッサモジュールへ入力するステップと、前記第2のグラフィックスデータを生成するよう前記第2セットの命令を別の第2のグラフィックスプロセッサモジュールへ入力するステップを含む、請求項1〜9のいずれか1項に記載の方法。
  11. 前記方法は、圧縮援助データを生成するために、1時点からの前記第1または前記第2セットの命令を、別の時点からの前記第1または前記第2セットの命令と共に処理するための命令を、第2セットの命令の一部として、特定して生成するステップを含む、請求項1、2または3に記載の方法。
  12. 前記方法は、圧縮援助データを生成するために、1時点に対応する前記第1または第2セットの命令から処理されるデータを格納するため、そして、別の時点に対応する前記第1または第2セットの命令から処理されるデータと共に処理するための命令を、第2セットの命令の一部として、特定して生成するステップを含む、請求項1、2、3または11に記載の方法。
  13. 前記方法は、圧縮援助データを生成するために、1時点に対応する前記第1または第2セットの命令の少なくとも一部を、別時点に対応する命令と共に処理するために、格納するステップを含む、請求項1、2、3、11または12に記載の方法。
  14. 前記第2セットの命令の生成は、圧縮援助データの生成のために前記第1セットの命令のいずれが有用であるかを特定するよう前記第1セットの命令を解析するステップを伴う、請求項1〜13のいずれか1項に記載の方法。
  15. 前記第2セットの命令の生成は、前記要素の後続の認識を容易にするよう、前記第1セットの命令の1つ以上の要素のための一意的な署名を作成するステップを含む、請求項1〜14のいずれか1項に記載の方法。
  16. 前記署名は、前記第2セットの命令の中の情報から構築される、請求項15に記載の方法。
  17. 少なくとも1つのグラフィックスプロセッサモジュールを備える、圧縮ビデオデータ信号を生成するための装置であって、
    a)グラフィックスプロセッサモジュールのための第1セットの命令を受け取るため、そしてグラフィックスプロセッサモジュールのための第2セットの命令を生成するための命令傍受機能;
    b)第1のグラフィックスデータを生成するよう前記第1セットの命令または前記第2セットの命令をグラフィックスプロセッサモジュール内で処理するための処理機能;
    c)第2のグラフィックスデータを生成するよう前記第2セットの命令を処理するための処理機能;
    d)圧縮援助データを生成するよう前記第2のグラフィックスデータを処理するための処理機能;および
    e)圧縮ビデオデータ信号を生成するよう、前記圧縮援助データを使用して、前記第1のグラフィックスデータを処理するための符号化機能;
    を備える装置。
  18. 複数の命令傍受機能を備え、そのそれぞれが異なる命令を異なるグラフィックスプロセッサモジュールへ入力するように成されている、請求項17に記載の装置。
JP2003573509A 2002-03-01 2003-03-03 集中型対話グラフィカルアプリケーションサーバ Expired - Fee Related JP4409956B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
GB0204859A GB0204859D0 (en) 2002-03-01 2002-03-01 Centralised interactive graphical application server
GB0223687A GB0223687D0 (en) 2002-10-11 2002-10-11 Inter-frame compression of synthetic images
GB0226192A GB0226192D0 (en) 2002-11-09 2002-11-09 Centralised interactive graphical application server
PCT/GB2003/000933 WO2003075116A2 (en) 2002-03-01 2003-03-03 Centralised interactive graphical application server

Publications (2)

Publication Number Publication Date
JP2005519382A JP2005519382A (ja) 2005-06-30
JP4409956B2 true JP4409956B2 (ja) 2010-02-03

Family

ID=27791904

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003573509A Expired - Fee Related JP4409956B2 (ja) 2002-03-01 2003-03-03 集中型対話グラフィカルアプリケーションサーバ

Country Status (5)

Country Link
US (11) US7916147B2 (ja)
EP (1) EP1483741A2 (ja)
JP (1) JP4409956B2 (ja)
AU (1) AU2003208477A1 (ja)
WO (1) WO2003075116A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9665334B2 (en) 2011-11-07 2017-05-30 Square Enix Holdings Co., Ltd. Rendering system, rendering server, control method thereof, program, and recording medium

Families Citing this family (140)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9003461B2 (en) * 2002-12-10 2015-04-07 Ol2, Inc. Streaming interactive video integrated with recorded video segments
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
US8893207B2 (en) * 2002-12-10 2014-11-18 Ol2, Inc. System and method for compressing streaming interactive video
US7558525B2 (en) 2002-12-10 2009-07-07 Onlive, Inc. Mass storage repository for a wireless network
US9061207B2 (en) 2002-12-10 2015-06-23 Sony Computer Entertainment America Llc Temporary decoder apparatus and method
US10201760B2 (en) * 2002-12-10 2019-02-12 Sony Interactive Entertainment America Llc System and method for compressing video based on detected intraframe motion
US9032465B2 (en) 2002-12-10 2015-05-12 Ol2, Inc. Method for multicasting views of real-time streaming interactive video
US7849491B2 (en) * 2002-12-10 2010-12-07 Onlive, Inc. Apparatus and method for wireless video gaming
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
US8495678B2 (en) * 2002-12-10 2013-07-23 Ol2, Inc. System for reporting recorded video preceding system failures
US8468575B2 (en) * 2002-12-10 2013-06-18 Ol2, Inc. System for recursive recombination of streaming interactive video
US9446305B2 (en) 2002-12-10 2016-09-20 Sony Interactive Entertainment America Llc System and method for improving the graphics performance of hosted applications
US8832772B2 (en) * 2002-12-10 2014-09-09 Ol2, Inc. System for combining recorded application state with application streaming interactive video output
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
US8661496B2 (en) 2002-12-10 2014-02-25 Ol2, Inc. System for combining a plurality of 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
US9138644B2 (en) 2002-12-10 2015-09-22 Sony Computer Entertainment America Llc System and method for accelerated machine switching
US8711923B2 (en) 2002-12-10 2014-04-29 Ol2, Inc. System and method for selecting a video encoding format based on feedback data
US8366552B2 (en) * 2002-12-10 2013-02-05 Ol2, Inc. System and method for multi-stream video compression
US8840475B2 (en) 2002-12-10 2014-09-23 Ol2, Inc. Method for user session transitioning among streaming interactive video servers
US20100166056A1 (en) * 2002-12-10 2010-07-01 Steve Perlman System and method for encoding video using a selected tile and tile rotation pattern
US8949922B2 (en) * 2002-12-10 2015-02-03 Ol2, Inc. System for collaborative conferencing using streaming interactive video
US8387099B2 (en) 2002-12-10 2013-02-26 Ol2, Inc. System for acceleration of web page delivery
US9077991B2 (en) 2002-12-10 2015-07-07 Sony Computer Entertainment America Llc System and method for utilizing forward error correction with video compression
US8964830B2 (en) * 2002-12-10 2015-02-24 Ol2, Inc. System and method for multi-stream video compression using multiple encoding formats
US9108107B2 (en) 2002-12-10 2015-08-18 Sony Computer Entertainment America Llc Hosting and broadcasting virtual events using streaming interactive video
US20050060433A1 (en) * 2003-09-17 2005-03-17 E-Powergate, Inc. Method and system for rendering graphic data based on network
US7983835B2 (en) 2004-11-03 2011-07-19 Lagassey Paul J Modular intelligent transportation system
EP1630744A1 (en) * 2004-08-26 2006-03-01 Thomson Licensing Method and apparatus for improved encoding of video signals using additional encoder information items, and corresponding storage medium
US7558428B2 (en) * 2004-09-13 2009-07-07 Microsoft Corporation Accelerated video encoding using a graphics processing unit
US7312801B2 (en) * 2005-02-25 2007-12-25 Microsoft Corporation Hardware accelerated blend modes
WO2007008356A1 (en) * 2005-07-08 2007-01-18 Tag Networks, Inc. Video game system using pre-encoded macro-blocks
US8284842B2 (en) 2005-07-08 2012-10-09 Activevideo Networks, Inc. Video game system using pre-encoded macro-blocks and a reference grid
US9061206B2 (en) 2005-07-08 2015-06-23 Activevideo Networks, Inc. Video game system using pre-generated motion vectors
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
US7844442B2 (en) * 2005-08-16 2010-11-30 Exent Technologies, Ltd. System and method for providing a remote user interface for an application executing on a computing device
US20110157196A1 (en) * 2005-08-16 2011-06-30 Exent Technologies, Ltd. Remote gaming features
JP2009518103A (ja) * 2005-12-05 2009-05-07 フォレー リミテッド ユーザがモバイル機器によって大画面ゲームをプレイできるようにするための方法およびシステム
US7841946B2 (en) * 2006-06-29 2010-11-30 Spawn Labs, Inc. System for remote game access
US8888592B1 (en) 2009-06-01 2014-11-18 Sony Computer Entertainment America Llc Voice overlay
US9349201B1 (en) * 2006-08-03 2016-05-24 Sony Interactive Entertainment America Llc Command sentinel
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
US8155202B2 (en) 2007-01-12 2012-04-10 Activevideo Networks, Inc. System and method for encoding scrolling raster images
US20080220859A1 (en) * 2007-03-09 2008-09-11 At&T Knowledge Ventures, L.P. Console game purchase and downloading through an internet protocol television system to a console device
US8893013B1 (en) * 2007-10-11 2014-11-18 Teradici Corporation Method and apparatus for providing a hybrid computing environment
AU2008311755A1 (en) * 2007-10-20 2009-04-23 Citrix Systems, Inc. Methods and systems for remoting three dimensional graphical data
US9168457B2 (en) 2010-09-14 2015-10-27 Sony Computer Entertainment America Llc System and method for retaining system state
US10058778B2 (en) 2007-12-05 2018-08-28 Sony Interactive Entertainment America Llc Video compression system and method for reducing the effects of packet loss over a communication channel
KR20100121598A (ko) * 2007-12-05 2010-11-18 온라이브, 인크. 통신 채널을 통한 패킷 손실의 초래를 감소시키기 위한 비디오 압축 시스템 및 방법
US8613673B2 (en) 2008-12-15 2013-12-24 Sony Computer Entertainment America Llc Intelligent game loading
US9498714B2 (en) 2007-12-15 2016-11-22 Sony Interactive Entertainment America Llc Program mode switching
US8968087B1 (en) 2009-06-01 2015-03-03 Sony Computer Entertainment America Llc Video game overlay
US9211473B2 (en) 2008-12-15 2015-12-15 Sony Computer Entertainment America Llc Program mode transition
US8147339B1 (en) 2007-12-15 2012-04-03 Gaikai Inc. Systems and methods of serving game video
US8253732B2 (en) * 2008-01-03 2012-08-28 International Business Machines Corporation Method and system for remote visualization client acceleration
EP2293192B1 (en) * 2008-01-27 2021-03-31 Citrix Systems, Inc. Methods and systems for remoting three dimensional graphics
US20090193067A1 (en) * 2008-01-30 2009-07-30 Microsoft Corporation Server-based recalculation of vector graphics
US8433747B2 (en) 2008-02-01 2013-04-30 Microsoft Corporation Graphics remoting architecture
WO2009107166A1 (ja) * 2008-02-27 2009-09-03 三菱電機株式会社 地図表示装置
CN102016798A (zh) * 2008-03-11 2011-04-13 韩国科亚电子股份有限公司 处理支持固定管线的三维图形
GB2459335B (en) * 2008-04-25 2013-01-09 Tenomichi Ltd Temporary modification for extending functionality of computer games and software applications
US8154553B2 (en) 2008-05-22 2012-04-10 Playcast Media System, Ltd. Centralized streaming game server
US8264493B2 (en) 2008-05-12 2012-09-11 Playcast Media Systems, Ltd. Method and system for optimized streaming game server
WO2009138878A2 (en) * 2008-05-12 2009-11-19 Playcast Media Systems, Ltd. Centralized streaming game server
US20100013839A1 (en) * 2008-07-21 2010-01-21 Rawson Andrew R Integrated GPU, NIC and Compression Hardware for Hosted Graphics
US8321903B2 (en) * 2008-07-28 2012-11-27 Playcast Media Systems, Ltd. External services allocation in closed on-demand systems
US8589579B2 (en) 2008-10-08 2013-11-19 Citrix Systems, Inc. Systems and methods for real-time endpoint application flow control with network structure component
RU2526712C2 (ru) * 2008-12-01 2014-08-27 РОКСТАР КОНСОРЦИУМ ЮЭс ЛП Способ создания видеоизображений компьютерной трехмерной виртуальной среды
US9270783B2 (en) * 2008-12-06 2016-02-23 International Business Machines Corporation System and method for photorealistic imaging workload distribution
US8926435B2 (en) 2008-12-15 2015-01-06 Sony Computer Entertainment America Llc Dual-mode program execution
JP5573316B2 (ja) * 2009-05-13 2014-08-20 セイコーエプソン株式会社 画像処理方法および画像処理装置
US20130127858A1 (en) * 2009-05-29 2013-05-23 Luc Leroy Interception of Graphics API Calls for Optimization of Rendering
US8506402B2 (en) * 2009-06-01 2013-08-13 Sony Computer Entertainment America Llc Game execution environments
US9633379B1 (en) 2009-06-01 2017-04-25 Sony Interactive Entertainment America Llc Qualified video delivery advertisement
US20100317443A1 (en) * 2009-06-11 2010-12-16 Comcast Cable Communications, Llc Distributed Network Game System
US8751844B2 (en) 2009-09-24 2014-06-10 Citrix Systems, Inc. Systems and methods for attributing an amount of power consumption to a workload
US8866834B2 (en) * 2009-11-12 2014-10-21 Bally Gaming, Inc. System and method for sprite capture and creation
GB201003962D0 (en) 2010-03-10 2010-04-21 Tangentix Ltd Multimedia content delivery system
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
US8560331B1 (en) 2010-08-02 2013-10-15 Sony Computer Entertainment America Llc Audio acceleration
WO2012037165A2 (en) 2010-09-13 2012-03-22 Gaikai, Inc. Add-on management
KR101956639B1 (ko) 2010-09-13 2019-03-11 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨 비디오 서버 및 게임 서버를 포함하는 컴퓨터 게임 시스템에서 컴퓨터 게임을 제공하는 방법 및 시스템
JP5866125B2 (ja) 2010-10-14 2016-02-17 アクティブビデオ ネットワークス, インコーポレイテッド ケーブルテレビシステムを使用したビデオ装置間のデジタルビデオストリーミング
CN103270492B (zh) * 2010-12-15 2016-08-17 国际商业机器公司 用于网络使能应用的硬件加速图形的方法和系统
JP4756107B1 (ja) * 2011-02-09 2011-08-24 株式会社ディジタルメディアプロフェッショナル グラフィックス処理装置
US9204203B2 (en) 2011-04-07 2015-12-01 Activevideo Networks, Inc. Reduction of latency in video distribution networks using adaptive bit rates
JP5076132B1 (ja) * 2011-05-25 2012-11-21 株式会社スクウェア・エニックス・ホールディングス 描画制御装置、その制御方法、プログラム、記録媒体、描画サーバ、及び描画システム
US8903897B2 (en) 2011-07-08 2014-12-02 Google Inc. System and method for providing interactive content to non-native application environments
US20130097220A1 (en) * 2011-10-14 2013-04-18 Bally Gaming, Inc. Streaming bitrate control and management
US9767642B2 (en) 2011-10-14 2017-09-19 Bally Gaming, Inc. System and method for cross platform persistent gaming sessions using a mobile device
US9672688B2 (en) 2011-10-14 2017-06-06 Bally Gaming, Inc. System and method for cross platform persistent gaming sessions using a mobile device
US9659437B2 (en) 2012-09-28 2017-05-23 Bally Gaming, Inc. System and method for cross platform persistent gaming sessions using a mobile device
US8736603B2 (en) * 2011-11-02 2014-05-27 Visual Technology Services Limited Compression of texture rendered wire mesh models
US20130148947A1 (en) * 2011-12-13 2013-06-13 Ati Technologies Ulc Video player with multiple grpahics processors
JP2015507804A (ja) * 2012-01-06 2015-03-12 アセルサン・エレクトロニク・サナイ・ヴェ・ティジャレット・アノニム・シルケティAselsan Elektronik Sanayi veTicaret Anonim Sirketi 分散型画像生成システム
EP2815582B1 (en) 2012-01-09 2019-09-04 ActiveVideo Networks, Inc. Rendering of an interactive lean-backward user interface on a television
KR101305036B1 (ko) * 2012-03-30 2013-09-06 동국대학교 산학협력단 모핑 장치 및 방법
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
US8961302B2 (en) 2012-07-20 2015-02-24 Microsoft Technology Licensing, Llc Game browsing
US8587599B1 (en) 2012-10-29 2013-11-19 Google Inc. Asset server for shared hardware graphic data
US8998719B1 (en) 2012-12-14 2015-04-07 Elbo, Inc. Network-enabled game controller
US10715817B2 (en) * 2012-12-19 2020-07-14 Nvidia Corporation Apparatus and method for enhancing motion estimation based on user input
US9526980B2 (en) 2012-12-21 2016-12-27 Microsoft Technology Licensing, Llc Client side processing of game controller input
KR20140116240A (ko) * 2013-02-25 2014-10-02 삼성전자주식회사 서버 장치, 서버 장치의 게임 제어 방법, 모바일 장치, 모바일 장치의 제어 방법, 디스플레이 장치 및 디스플레이 장치의 게임 영상 표시 방법
US9694277B2 (en) 2013-03-14 2017-07-04 Microsoft Technology Licensing, Llc Client side processing of character interactions in a remote gaming environment
WO2014145921A1 (en) 2013-03-15 2014-09-18 Activevideo Networks, Inc. A multiple-mode system and method for providing user selectable video content
US20140300758A1 (en) * 2013-04-04 2014-10-09 Bao Tran Video processing systems and methods
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
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
WO2014197879A1 (en) 2013-06-06 2014-12-11 Activevideo Networks, Inc. Overlay rendering of user interface onto source video
US20140375634A1 (en) * 2013-06-25 2014-12-25 Advanced Micro Devices, Inc. Hybrid client-server rendering with low latency in view
US9430251B2 (en) * 2013-09-30 2016-08-30 Unity Technologies Finland Oy Software development kit for capturing graphical image data
SG2014000889A (en) * 2014-01-03 2015-08-28 Creative Tech Ltd A system suitable for one or both of audio processing and graphics processing and a method of processing in association therewith
JP6412708B2 (ja) 2014-04-01 2018-10-24 株式会社ソニー・インタラクティブエンタテインメント プロセッシングシステムおよびマルチプロセッシングシステム
JP6373620B2 (ja) 2014-04-01 2018-08-15 株式会社ソニー・インタラクティブエンタテインメント ゲーム提供システム
JP6055433B2 (ja) 2014-04-01 2016-12-27 株式会社ソニー・インタラクティブエンタテインメント ゲーム提供サーバ
US9788029B2 (en) 2014-04-25 2017-10-10 Activevideo Networks, Inc. Intelligent multiplexing using class-based, multi-dimensioned decision logic for managed networks
US10154072B2 (en) * 2014-09-17 2018-12-11 Microsoft Technology Licensing, Llc Intelligent streaming of media content
US9756375B2 (en) 2015-01-22 2017-09-05 Microsoft Technology Licensing, Llc Predictive server-side rendering of scenes
US10554713B2 (en) 2015-06-19 2020-02-04 Microsoft Technology Licensing, Llc Low latency application streaming using temporal frame transformation
KR102402672B1 (ko) 2015-09-01 2022-05-26 삼성전자주식회사 컴퓨팅 시스템 및 컴퓨팅 시스템에서 연산들을 처리하는 방법
US9569812B1 (en) 2016-01-07 2017-02-14 Microsoft Technology Licensing, Llc View rendering from multiple server-side renderings
CN105760238B (zh) * 2016-01-29 2018-10-19 腾讯科技(深圳)有限公司 图形指令数据的处理方法和装置及系统
US10055810B2 (en) 2016-03-04 2018-08-21 Samsung Electronics Co., Ltd. Cache architecture for efficiently accessing texture data using buffers
US10237566B2 (en) 2016-04-01 2019-03-19 Microsoft Technology Licensing, Llc Video decoding using point sprites
RU2632272C1 (ru) * 2016-04-04 2017-10-03 Общество С Ограниченной Ответственностью "Яндекс" Способ создания синтетического изображения
US10692246B2 (en) 2016-10-05 2020-06-23 HypeVR Geometry sequence encoder and decoder
KR20180038793A (ko) * 2016-10-07 2018-04-17 삼성전자주식회사 영상 데이터 처리 방법 및 장치
US10547846B2 (en) 2017-04-17 2020-01-28 Intel Corporation Encoding 3D rendered images by tagging objects
JP7135067B2 (ja) * 2017-04-21 2022-09-12 ゼニマックス メディア インク. ゲーム-生成された動きベクトルのためのシステムおよび方法
US11398059B2 (en) * 2017-05-06 2022-07-26 Beijing Dajia Internet Information Technology Co., Ltd. Processing 3D video content
US10580117B2 (en) 2017-11-20 2020-03-03 Comcast Cable Communications, Llc Method to generate additional level of detail when zooming in on an image
US10924525B2 (en) 2018-10-01 2021-02-16 Microsoft Technology Licensing, Llc Inducing higher input latency in multiplayer programs
CN110308992B (zh) * 2019-06-24 2022-12-27 中国航空无线电电子研究所 面向多分区的gpu访问管理方法
WO2021220217A1 (en) * 2020-04-29 2021-11-04 Cimpress Schweiz Gmbh Technologies for digitally rendering items having digital designs
US20220212100A1 (en) * 2021-01-04 2022-07-07 Microsoft Technology Licensing, Llc Systems and methods for streaming interactive applications
CN116664375B (zh) * 2022-10-17 2024-04-12 荣耀终端有限公司 图像预测方法、装置、设备及存储介质

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5493644A (en) * 1991-07-11 1996-02-20 Hewlett-Packard Company Polygon span interpolator with main memory Z buffer
US6147696A (en) 1993-06-24 2000-11-14 Nintendo Co. Ltd. Electronic entertainment and communication system
US5574573A (en) * 1993-10-29 1996-11-12 Eastman Kodak Company Compression method for a standardized image library
CA2138627A1 (en) 1993-12-23 1995-06-24 Timothy L. Smokoff Method and system for launching application programs on an application server system
JP2860442B2 (ja) 1993-12-28 1999-02-24 パイオニア株式会社 双方向通信システム
CA2144253C (en) 1994-04-01 1999-09-21 Bruce F. Naylor System and method of generating compressed video graphics images
US5552898A (en) 1994-07-06 1996-09-03 Agfa-Gevaert Lossy and lossless compression in raster image processor
JPH0918855A (ja) 1995-06-30 1997-01-17 Fujitsu Ltd 双方向ケーブルテレビシステム、ケーブルテレビ装置及び処理端末装置
US6525722B1 (en) 1995-08-04 2003-02-25 Sun Microsystems, Inc. Geometry compression for regular and irregular mesh structures
US5867166A (en) 1995-08-04 1999-02-02 Microsoft Corporation Method and system for generating images using Gsprites
JP3353604B2 (ja) 1995-08-09 2002-12-03 ソニー株式会社 動画像符号化方法及び装置、並びに信号記録媒体
US6359624B1 (en) 1996-02-02 2002-03-19 Kabushiki Kaisha Toshiba Apparatus having graphic processor for high speed performance
JP3519199B2 (ja) 1996-02-06 2004-04-12 株式会社ソニー・コンピュータエンタテインメント 画像生成装置
DE69724899T2 (de) * 1996-05-06 2004-07-08 Koninklijke Philips Electronics N.V. Verfahren und system zur kodierung und dekodierung von segmentierten videodaten
US6057857A (en) 1996-06-12 2000-05-02 Citrix Systems, Inc. Method for the lossless compression of lines in a distributed computer system
US6292589B1 (en) * 1996-06-21 2001-09-18 Compaq Computer Corporation Method for choosing rate control parameters in motion-compensated transform-based picture coding scheme using non-parametric technique
US6166734A (en) 1996-10-01 2000-12-26 Diamond Multimedia Systems, Inc. Portable interactive graphics display tablet and communications system
IL119928A (en) * 1996-12-29 2001-01-11 Univ Ramot Model-based view extrapolation for interactive virtual reality systems
JP3210603B2 (ja) 1997-07-04 2001-09-17 インターナショナル・ビジネス・マシーンズ・コーポレーション イメージの処理方法、サーバ及び記録媒体
US6115038A (en) 1997-07-09 2000-09-05 Christofferson Enterprises, Llc Method for creating lower cost real-time 3D graphics in a distributed environment
US6057850A (en) * 1997-07-15 2000-05-02 Silicon Graphics, Inc. Blended texture illumination mapping
US6195797B1 (en) 1998-02-06 2001-02-27 Henry R. Williams, Jr. Apparatus and method for providing computer display data from a computer system to a remote display device
WO1999041704A1 (en) 1998-02-17 1999-08-19 Sun Microsystems, Inc. Estimating graphics system performance for polygons
AU758390B2 (en) 1998-07-27 2003-03-20 Webtv Networks, Inc. Remote computer access
GB2347332B (en) 1998-10-28 2003-07-09 Canon Kk Computer games apparatus
US6426748B1 (en) 1999-01-29 2002-07-30 Hypercosm, Inc. Method and apparatus for data compression for three-dimensional graphics
US6330281B1 (en) * 1999-08-06 2001-12-11 Richfx Ltd. Model-based view extrapolation for interactive virtual reality systems
US6384821B1 (en) 1999-10-04 2002-05-07 International Business Machines Corporation Method and apparatus for delivering 3D graphics in a networked environment using transparent video
US6452600B1 (en) 1999-10-28 2002-09-17 Nintendo Co., Ltd. Graphics system interface
US6664969B1 (en) * 1999-11-12 2003-12-16 Hewlett-Packard Development Company, L.P. Operating system independent method and apparatus for graphical remote access
JP2001209789A (ja) 1999-11-16 2001-08-03 Mitsubishi Electric Corp グラフィックアクセラレータおよび描画方法
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
US6573900B1 (en) 1999-12-06 2003-06-03 Nvidia Corporation Method, apparatus and article of manufacture for a sequencer in a transform/lighting module capable of processing multiple independent execution threads
US6579184B1 (en) 1999-12-10 2003-06-17 Nokia Corporation Multi-player game system
US20010029205A1 (en) 2000-03-30 2001-10-11 Sagahiro Taho Game program delivery system and apparatus used in same
US7072984B1 (en) 2000-04-26 2006-07-04 Novarra, Inc. System and method for accessing customized information over the internet using a browser for a plurality of electronic devices
US6956576B1 (en) 2000-05-16 2005-10-18 Sun Microsystems, Inc. Graphics system using sample masks for motion blur, depth of field, and transparency
US20020029285A1 (en) 2000-05-26 2002-03-07 Henry Collins Adapting graphical data, processing activity to changing network conditions
WO2001097014A2 (en) 2000-06-12 2001-12-20 Preworx (Proprietary) Limited System for controlling a display of the user interface of a software application
EP1303988A1 (en) 2000-07-13 2003-04-23 Koninklijke Philips Electronics N.V. Pre-processing method for motion estimation
AUPQ905800A0 (en) 2000-07-28 2000-08-24 Canon Kabushiki Kaisha Rendering page descriptions
US7274368B1 (en) * 2000-07-31 2007-09-25 Silicon Graphics, Inc. System method and computer program product for remote graphics processing
US6636214B1 (en) 2000-08-23 2003-10-21 Nintendo Co., Ltd. Method and apparatus for dynamically reconfiguring the order of hidden surface processing based on rendering mode
US20020154214A1 (en) * 2000-11-02 2002-10-24 Laurent Scallie Virtual reality game system using pseudo 3D display driver
AUPR212600A0 (en) 2000-12-18 2001-01-25 Canon Kabushiki Kaisha Efficient video coding
US7587520B1 (en) 2001-01-24 2009-09-08 3Dlabs Inc. Ltd. Image display system with visual server
FI109633B (fi) 2001-01-24 2002-09-13 Gamecluster Ltd Oy Menetelmä videokuvan pakkauksen nopeuttamiseksi ja/tai sen laadun parantamiseksi
US6828975B2 (en) 2001-03-01 2004-12-07 Microsoft Corporation Method and system for managing graphics objects in a graphics display system
US6487383B2 (en) 2001-04-12 2002-11-26 Lexmark International, Inc. Dynamic end-seal for toner development unit
US6894690B2 (en) * 2001-06-20 2005-05-17 Engineering Technology Associates, Inc. Method and apparatus for capturing and viewing a sequence of 3-D images
KR100422252B1 (ko) 2001-12-20 2004-03-11 삼성전자주식회사 씬 클라이언트 네트워크 시스템과 그 네트워크 시스템의데이터 전송 방법
US7234144B2 (en) 2002-01-04 2007-06-19 Microsoft Corporation Methods and system for managing computational resources of a coprocessor in a computing system
US7038676B2 (en) * 2002-06-11 2006-05-02 Sony Computer Entertainmant Inc. System and method for data compression
US20040080533A1 (en) * 2002-10-23 2004-04-29 Sun Microsystems, Inc. Accessing rendered graphics over the internet

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9665334B2 (en) 2011-11-07 2017-05-30 Square Enix Holdings Co., Ltd. Rendering system, rendering server, control method thereof, program, and recording medium

Also Published As

Publication number Publication date
US20110157197A1 (en) 2011-06-30
AU2003208477A1 (en) 2003-09-16
US8081192B2 (en) 2011-12-20
AU2003208477A8 (en) 2003-09-16
JP2005519382A (ja) 2005-06-30
US20130294497A1 (en) 2013-11-07
US20140111529A1 (en) 2014-04-24
US9424621B2 (en) 2016-08-23
US8203568B2 (en) 2012-06-19
US9852490B2 (en) 2017-12-26
US9117285B2 (en) 2015-08-25
US7916147B2 (en) 2011-03-29
EP1483741A2 (en) 2004-12-08
US8466922B2 (en) 2013-06-18
US20120075317A1 (en) 2012-03-29
WO2003075116A3 (en) 2004-03-11
US20220148124A1 (en) 2022-05-12
US9113146B2 (en) 2015-08-18
US20130294496A1 (en) 2013-11-07
US20180075572A1 (en) 2018-03-15
US20210158472A1 (en) 2021-05-27
US20050104889A1 (en) 2005-05-19
US20160328819A1 (en) 2016-11-10
WO2003075116A2 (en) 2003-09-12
US20120200583A1 (en) 2012-08-09
US11321807B1 (en) 2022-05-03

Similar Documents

Publication Publication Date Title
US11321807B1 (en) Centralised interactive graphical application server
US8319784B2 (en) Fast reconfiguration of graphics pipeline state
JP4678963B2 (ja) グラフィクスシステムにおいて直接および間接テクスチャを処理するための方法および装置
JP4731028B2 (ja) グラフィクスシステム用再循環シェードツリーブレンダ
JP4719363B2 (ja) 内部フレームバッファと主メモリ間でのコピーアウト変換を有するグラフィクスシステム
KR101422424B1 (ko) 동영상 배포 서버, 동영상 재생 장치, 동영상 배포 서버의 제어 방법, 동영상 재생 장치의 제어 방법, 및 컴퓨터 판독 가능한 기록 매체
US9665334B2 (en) Rendering system, rendering server, control method thereof, program, and recording medium
US20020080143A1 (en) Rendering non-interactive three-dimensional content
KR101536501B1 (ko) 동화상 배포 서버, 동화상 재생 장치, 제어 방법, 기록 매체, 및 동화상 배포 시스템
US10237563B2 (en) System and method for controlling video encoding using content information
JP7254252B2 (ja) レンダリング中のジオメトリ解析によるジオメトリの効率的なマルチgpuレンダリングのためのシステム及び方法
US11514549B2 (en) System and method for efficient multi-GPU rendering of geometry by generating information in one rendering phase for use in another rendering phase
KR20220164484A (ko) 섀도우 정보를 이용한 렌더링
CN116764188A (zh) 渲染方法及电子设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060220

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090202

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090210

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090507

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090514

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090730

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20090730

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090924

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20121120

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20131120

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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