JP7278850B2 - ビデオランダムアクセスメモリにおけるマルチソースメディアをオーバーレイするシステム及び方法 - Google Patents

ビデオランダムアクセスメモリにおけるマルチソースメディアをオーバーレイするシステム及び方法 Download PDF

Info

Publication number
JP7278850B2
JP7278850B2 JP2019080820A JP2019080820A JP7278850B2 JP 7278850 B2 JP7278850 B2 JP 7278850B2 JP 2019080820 A JP2019080820 A JP 2019080820A JP 2019080820 A JP2019080820 A JP 2019080820A JP 7278850 B2 JP7278850 B2 JP 7278850B2
Authority
JP
Japan
Prior art keywords
vram
video
video content
computer
multimedia content
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.)
Active
Application number
JP2019080820A
Other languages
English (en)
Other versions
JP2019195163A (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 US15/971,640 external-priority patent/US10332296B2/en
Application filed by 株式会社ユビタス filed Critical 株式会社ユビタス
Publication of JP2019195163A publication Critical patent/JP2019195163A/ja
Application granted granted Critical
Publication of JP7278850B2 publication Critical patent/JP7278850B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Controls And Circuits For Display Device (AREA)

Description

本発明は、複数の異なるソースのマルチメディアオブジェクトをビデオランダムアクセスメモリ(以下、VRAMと記載)においてオーバーレイするシステム及び方法に関する。
クラウドコンテンツサービスなどのプラットフォームにおいて、複数のマルチメディアオブジェクトを同時にターゲットデバイスに送信する必要があることがよくある。
例えば、クラウドゲームプラットフォームは、広告を含むゲームシーンストリーミング(Streaming)を消費者の装置に送る必要がある。該ゲームシーン及び広告は、異なるビデオソースから取得される可能性があるため、ゲームシーンに広告をオーバーレイするか、ゲームシーンを広告の下に配置することが望まれる。
従来のオーバーレイ/アンダーレイ(overlay/underlay)プロセスは、次のように動作することができる。ゲームなどの主ビデオソースから主画像をキャプチャし、それをシステムRAM(System RAM、以下、SRAMと記載する)のフレームバッファ(Frame Buffer)にコピーする。次に、オーバーレイ/アンダーレイ(セカンダリ)ビデオソース、例えば、広告からオーバーレイ/アンダーレイ(セカンダリ)画像をキャプチャし、それをフレームバッファのプライマリ画像にオーバーレイ/アンダーレイする。
最後に、フレームバッファの新しい画像をターゲットビデオにエンコード(Encode)する。キャプチャ、コピー、及びブレンド動作は、システムの大量の別途の動作が必要である。システムバス(system bus)、システムメモリ、及びCPUリソースは、何れも影響を受ける。高同時ユーザ(ConCurrent User,CCU)のシステムでは、これら別途の動作がサーバの低パフォーマンス及び抗電力消費を引き起こす可能性がある。
特開2018-5226号公報
従って、より効率的なオーバーレイ/アンダーレイプロセスを提供する新たな改善されたシステム及び方法が必要とされている。
本発明のいくつかの実施例は、アプリケーションプログラムによって生成されたビデオソース上にマルチメディアコンテンツを有効にオーバーレイすることができるシステム及び方法を提供する。
本発明のいくつかの実施例は、また、このビデオソースの下でマルチメディアコンテンツを有効にアンダーレイするか、又はマルチメディアコンテンツをビデオソースに混合するシステム及び方法を提供する。
本発明の実施例は、マルチメディアコンテンツの処理システム及び方法を提供する。
VRAM内でオーバーレイ/アンダーレイを行うことができるため、システムバス、システムメモリ、及びCPUの使用量を減らすことができる。
本方法のシステム及び方法の実施例において、該プライマリビデオソースは、アプリケーションプログラムよってVRAMにレンダリング(render)され、且つビデオソースのオーバーレイ/アンダーレイは、VRAM内のプライマリビデオソースの特定の時間と位置にレンダリングされ、混合(Blend)される。
該混合は、VRAM内の該プライマリビデオソースと同じ位置に実行されるので、別途のバッファを必要としない。これは、システムバス、システムメモリ及びCPUの使用量を減らすことで、システムパフォーマンスを改善し、エネルギー消費量を減らすことができる。
該オーバーレイ/アンダーレイの結果は、ビデオバッファ又はフレームバッファに送られ、エンコードされてシステムランダムアクセスメモリに送られるか、ディスプレイ装置に直接表示されるか、又は同じVRAM位置に送り返され、反復(iterative)オーバーレイプロセスの一部分とされる。
本発明が提供するVRAMにマルチソースメディアをオーバーレイする方法、システム及びコンピュータプログラムは、プライマリビデオソースが、アプリケーションプログラムよってVRAMにレンダリングされ、セカンダリビデオソースは、該VRAM中のプライマリビデオソースと同じ位置にレンダリング及びブレンドされるため、追加のバッファが必要ない。これにより、システムバス、システムメモリ、及びCPUの使用量を減らし、システムパフォーマンスを向上させ、エネルギー消費量を減らすことができる。
本発明のインタラクティブ マルチソース マルチメディア アプリケーションプログラムの分散(distributed)クライアントサーバコンピュータシステム1000の実施例のブロック図である。 グラフィック処理ユニット(GPU)及びビデオランダムアクセスメモリ(VRAM)を含む、本発明のビデオ処理システムを実施させることができる一実施例のシステム構造図である。 本発明のマルチメディアコンテンツをプライマリビデオソース上でオーバーレイさせることができるシステムの一実施例のブロック図である。 本発明のマルチメディアコンテンツをプライマリビデオソース上でオーバーレイさせることができる方法の一実施例のフロー図である。 本発明のクラウドゲームシステム及び方法の実施例の説明図である。 本発明の非VRAM(non-VRAM)方法でビデオ及びオーディオコンテンツをエンコードする実施例の説明図である。 本発明のVRAM方法でビデオ及びオーディオコンテンツをエンコードする実施例の説明図である。 本発明のSRAM内でインタラクティブコンテンツをオーバーレイするシステム及び方法の実施例の説明図である。 本発明VRAM内でインタラクティブコンテンツをオーバーレイするシステム及び方法の実施例の説明図である。 本発明のVRAM内でマルチソースメディアをオーバーレイするシステムの実施例のブロック図である。 本発明のクライアント装置で混合後のビデオコンテンツの画像を表示する実施例の説明図である。
本発明の以下の実施例は、追加のバッファを必要とせずに、マルチメディアコンテンツをアプリケーションプログラムよって発声される1つのビデオソースにオーバーレイ/アンダーレイすることができるシステム及び方法を提供する。
図1は、本発明のインタラクティブ マルチソース マルチメディア アプリケーションプログラムを提供することができる分散(distributed)クライアントサーバコンピュータシステム1000の一実施例のブロック図である。コンピュータシステム1000は、コンピュータプログラム製品131によって構成された1台以上のサーバコンピュータ(ServerComputer)101と、1台以上のクライアント装置(ClientDevice)103とを含む。コンピュータプログラム製品131は、一時的(transitory)又は非一時的(non-transitory)コンピュータ可読媒体に提供することができるが、特定の一実施例において、それは非一時的コンピュータ可読媒体、例えば、永続的(不揮発性non-volatile)メモリユニット、揮発性メモリ(例えば、ランダムアクセスメモリ)、又はその他の各種公知の非一時的コンピュータ可読媒体に提供される。
クライアント装置103は、CPU(Central Processing Unit)120、メモリ122及びメモリユニット121を含む。クライアント装置103は、更に、入出力(I/O)サブシステム(図示せず)(例えば、ディスプレイ又はタッチスクリーン、キーボード、方向キー(d-pad)、トラックボール、タッチパッド、コントローラロッド、マイクロフォン、マウス、及び/又はその他のユーザインタフェース装置ならびに関連する制御回路及び/又はソフトウェアを含む)。クライアント装置103は、メディアコンテンツを提供することができる任意の種類の電子装置を含むことができる。たとえば、デスクトップコンピュータ、及びスマートフォン、マルチメディアプレーヤー、電子書籍リーダー(e-reader)、タッチタブレット、ノートブック(notebook)、ラップトップPC(laptop PC)、スマートテレビ、スマートウォッチ、ヘッドマウントディスプレイなどのポータブル電子機器及びその他の通信機器を含むことができる
サーバコンピュータ101は、CPU110と、ストレージユニット111と、メモリ112とを含む(図示しないI/Oサブシステムを更に含む)。サーバコンピュータ101は、ネットワーク102(例えば、インターネット)を介してその他のクライアントコンピュータ(例えば、クライアント装置103)と通信するようにコンピュータプログラム製品131を管理することができる任意のコンピュータ装置とすることができる。サーバコンピュータ101は、インターネット(Internet)を介して1台以上のクライアントコンピュータと通信し、インターネットプロトコル(TCP/IP)、ハイパーテキスト転送プロトコル(HTTP)又はHTTPSなどの通信プロトコル、インスタントメッセージングプロトコル、又はその他のプロトコルを利用できる。
メモリ112、122は、任意の公知のコンピュータメモリ装置を含むことができる。ストレージユニット111、121は、任意の公知のコンピュータストレージ装置を含むことができる。
本明細書では提示していないが、メモリ112、122及び/又はストレージユニット111、121は、任意の取り外し可能又は携帯可能なメモリ(例えば、フラッシュメモリカード又は外付けハードディスク)など、サーバコンピュータ101及びクライアント装置103によって使用され得る任意のデータストレージ装置も含むことができ、上記に制限するものではない。
クライアント装置103及びサーバコンピュータ101は、ネットワーク102を介して接続及び通信する。ネットワーク102は、有線又は無線接続を含み、広域ネットワーク(WAN)及びセルラーネットワーク(cellular network)又はその他の各装置間で相互に通信させることができるコンピュータネットワークを含む。
本実施例において、コンピュータプログラム製品131は、実際には、それぞれサーバコンピュータ101及びクライアント装置103によって実行可能なコンピュータプログラム製品又はコンピュータプログラム製品の一部を表している。
図2は、本発明のビデオ処理システム2000を実施させることができる一実施例のシステム構造図である。ビデオ処理用システム2000の実施例は、ビデオ処理用に最適化されたシステム素子を含み、特にGPU203(GraphicsProcessingUnit;GPU)及びビデオランダムアクセスメモリ204(Video Random Access Memory;以下VRAMと称する)を含む。
一実施例において、ビデオ処理システム2000は、CPU217及びシステムランダムアクセスメモリ(System RAM、以下、SRAMと称する)207など、ビデオ処理に特に最適化されていない従来のコンピュータ構成要素を更に含む。
一実施例において、VRAM204は、フレームバッファ(Frame Buffer)206及び/又はバックバッファ(Back Buffer)216などの1つ以上のバッファを含む。通常、フレームバッファ206は、メモリ内においてビデオデータのフレーム全体を記憶するのに十分な大きさの領域を有する。フレームバッファは、SRAM207などのその他のメモリデバイスに設定することもできる。
一実施例において、バックバッファ216などの追加のバッファが、VRAM204内において適切なメモリ領域を設定することによって提供され得る。一実施例において、1つ以上のバッファ216は、ビデオ再生中のちらつきを軽減するために、ダブルバッファリング機能をサポートするために1つ以上のバックバッファ216が提供されることができる。一実施例において、バックバッファ216は、レンダリング(rendering)及び/又はブレンディング(blending)動作の結果を記憶させることができ、これについては以下で更に説明する。
ビデオ処理システム2000は、GPU203、VRAM204、CPU217及びSRAM207などの様々なハードウェアを直接又は間接に接続するためのフロントシステムバス(Front System Bus)212などの1つ以上の相互接続機構又はバスを更に含むことができる。
図3は、本発明のマルチメディアコンテンツをプライマリビデオソースにおいてオーバーレイさせることができるシステム3000の一実施例のブロック図である。
システム3000の実施例において、GPU203は、フレームバッファ206を更に含むVRAM204を含む。通常、フレームバッファ206は、メモリ内においてビデオデータのフレーム全体を記憶するのに十分な大きさの領域を有する。VRAM204は、2つ以上のフレームバッファ206を含み得る。フレームバッファは、SRAM207などのその他のメモリデバイスに設定することもできる。
一実施例において、ここで説明するプロセスは、メモリ及びGPUと呼ぶことができないか又は実際にはGPUではない処理ユニットを含むデジタル装置によって実行することができる。一実施例において、該GPUは、サーバの一部である。一実施例において、GPUを含むサーバは、クラウドベースのサーバ(cloud-based server)である。一実施例において、該GPUは、クライアント装置の一部である。
プライマリマルチメディアソース301は、頂点(vertexes)、テクスチャ、(texture)、シェーディング(shading)、メッシュ(mesh)などのグラフィックオブジェクトを含む。好適実施例において、プライマリマルチメディアソース301は、アプリケーションプログラムよって生成され、VRAM204のVRAM位置305に直接レンダリングされる。一実施例において、VRAM位置305は、そのうち1つのバックバッファ216を含む。
他の実施例において、VRAM位置305は、フレームバッファ206を含む。一実施例において、プライマリマルチメディアソース301は、ゲームアプリケーションプログラムよって生成される。プライマリマルチメディアソース301は、直接VRAM204にレンダリングされるので、プライマリマルチメディアソース301を「キャプチャする」ためにリソースを費やす必要はない。他の実施例において、プライマリマルチメディアソース301は、その他の場所にレンダリングされ、次いでVRAM204にコピーされる。
セカンダリマルチメディアソース302は、プライマリマルチメディアソース301上にオーバーレイすることができるビジュアルアイテム又はマルチメディアコンテンツであることができる。一実施例において、セカンダリマルチメディアソース302は、頂点、テクスチャ、シェーディング、メッシュなどのグラフィックオブジェクトを含む。一実施例において、セカンダリマルチメディアソース302は、アプリケーションプログラムよって生成され、VRAM204に直接レンダリングされる。
一実施例において、セカンダリマルチメディアソース302は、VRAM位置305にレンダリングされる。他の実施例において、セカンダリマルチメディアソース302は、プライマリマルチメディアソース301を生成したのと同じアプリケーションプログラムよって生成される。他の実施例において、セカンダリマルチメディアソース302は、異なるアプリケーションプログラムよって生成される。更に他の実施例において、セカンダリマルチメディアソース302は、TVカード(TV card)などのハードウェアデバイスによって生成される。本実施例において、セカンダリマルチメディアソース302は、SRAM207から取り出され、それをVRAM位置305にロードする必要がある。
一実施例において、セカンダリマルチメディアソース302は、プライマリマルチメディアソース301上にオーバーレイされることができる広告である。他の実施例において、セカンダリマルチメディアソース302は、プライマリマルチメディアソース301にアンダーレイされる。更に他の実施例において、セカンダリマルチメディアソース302は、プライマリマルチメディアソース301に中間形式で混合され、両方のマルチメディアソースがある程度見えるようにさせる。
VRAM204において、1つ以上のセカンダリマルチメディアソース302は、特定の時間及び位置でプライマリマルチメディアソース301に混合される。一実施例において、プライマリマルチメディアソース301は、時間及び位置情報をセカンダリマルチメディアソース302に提供する。一実施例において、混合は、該プライマリマルチメディアソース301がレンダリングされるVRAM204内のVRAM位置305で生じるので、該混合プロセスは追加のバッファを必要としない。
一実施例において、プライマリマルチメディアソース301のレンダリング、セカンダリマルチメディアソース302のレンダリング、及びプライマリマルチメディアソース301とセカンダリマルチメディアソース302との混合は、同じVRAM位置305で行われる。実施例において、プライマリマルチメディアソース301とセカンダリマルチメディアソース302のレンダリング動作が実行されるとき、所定の混合も同時に完了されるので、追加の混合プロセスは要求されない。
混合プロセスの完成後、一実施例において、混合プロセスによって生成されたターゲット画像がフレームバッファ206に送信される。一実施例において、レンダリングと混合のプロセスは、フレームバッファ206で行われるため、ターゲットイメージはフレームバッファ206で直接生成される。次に、ターゲット画像をターゲットビデオの一部としてエンコード(encode)することができる。
次いで、ターゲットビデオはSRAM207に転送され得る。一実施例において、ターゲットビデオは、そのうち1つのバックバッファ216に送信できる。他の実施例において、ターゲットビデオは、ディスプレイ308に直接送信されることができる。更に他の実施例において、ターゲットビデオは、反復プロセスにおいて、同じVRAM位置305にレンダリングされることができ、例えば、多重オーバーレイの機能を達成することができる。このプロセスは、図3中のフレームバッファ206からVRAM位置305に戻るデータパスによって表される。多重オーバーレイは、例えば、3D表面又はテクスチャのレンダリングに用いることができる。
図4は、本発明のプライマリビデオソース上にマルチメディアコンテンツをオーバーレイさせることができる方法4000の一実施例のフロー図である。
ステップ401において、頂点、テクスチャ、シェーディング、メッシュなどのオブジェクトを含むプライマリマルチメディアソースがVRAMにレンダリングされる。ステップ402では、頂点、テクスチャ、シェーディング、メッシュなどのオブジェクトを含むオーバーレイ/アンダーレイ(セカンダリ)マルチメディアソースもVRAMにレンダリングされ、プライマリマルチメディアソースと同じVRAM位置にオーバーレイされる。
一実施例において、該VRAMの位置は、そのうち1つのバックバッファ216に対応する。他の実施例において、該VRAM位置は、1つ以上のフレームバッファ206に対応する。更に他の実施例において、該VRAM位置は、バックバッファ又はフレームバッファとは異なる位置に対応する。少なくとも1つの実施例において、同一のVRAM位置にプライマリマルチメディアソース及びオーバーレイ/アンダーレイ(セカンダリ)マルチメディアソースをレンダリングする動作は、また所定の混合動作も完了し、従って追加の混合ステップは必要とされない。
更に多くのオーバーレイレージ/アンダーレイ(セカンダリ)マルチメディアソースがある場合、全てのオーバーレイ/アンダーレイ(セカンダリ)マルチメディアソースがレンダリングされ混合されるまで、ステップ402及び403が繰り返される。
ステップ404において、オーバーレイ/アンダーレイ動作の結果は、ビデオをバックバッファ又はフレームバッファに送信する。混合動作は、バックバッファ又はフレームバッファで直接実行される時、ステップ404は、僅かな作業を含むのみか、追加の作業を含まない。他の実施例において、ステップ404は、オーバーレイ/アンダーレイ動作の結果を該VRAM位置305からバックバッファ又はフレームバッファに転送する動作を含む。
ステップ405a、405b、405cは、方法4000の後続のステップを紹介する。ステップ405aにおいて、エンコード後のビデオ又は生ビデオ(raw video)データは、SRAM(システムランダムアクセスメモリ)又はVRAMに送信される。該GPUが特定のエンコードフォーマットをサポートしていない場合、生ビデオデータが後続のソフトウェアエンコードステップ(図示せず)に出力することができる。
ステップ405bにおいて、オーバーレイ/アンダーレイ動作の結果は、表示装置に直接表示される。ステップ405cにおいて、オーバーレイ/アンダーレイ動作の結果は、1回以上ステップ402に返送され、反復プロセスにより多重のオーバーレイを行う。クラウドゲームにおいて、インタラクティブコンテンツをゲームプロセスにオーバーレイする。
クラウドゲームは、オンラインゲームの一種で、その他は、「ゲームオンデマンド(game on demand)」とも称される。クラウドゲームは、基本的に次のステップで行われる(図5参照)。
(1)サーバ502は、ゲーム501から出力されたビデオ及びオーディオをキャプチャする。
(2)サーバ502は、ビデオとオーディオを圧縮データにエンコードする。
(3)サーバ502は、エンコード(圧縮)後のビデオ及びオーディオをクライアント装置504にストリーミング(stream)する。
(4)クライアント装置504は、ビデオ及びオーディオデータをデコードする。
(5)クライアント装置504は、ビデオコンテンツをディスプレイ506にレンダリングし、オーディオコンテンツをスピーカ507で再生する。
(6)クライアント装置504は、ゲーム501の動作を制御するために制御データをサーバ502に送信する。
一実施例において、該サーバ502は、クラウドベースのサーバ(cloud-based server)である。一実施例において、該ゲーム501は、ソフトウェア形式で該クラウドサーバ502の中で実行される。各クライアント(ユーザ)装置504は、例えば、パーソナルコンピュータ(PC)、ラップトップPC、タッチタブレット、スマートフォン、ゲームコンソール(game console)などであることができ、それぞれ該ゲーム501とインタラクションする独特の方式を有する。特に、各クライアント装置504のユーザインタフェースの設計は、装置自体の機能に基づいている。
クラウドゲームのターゲットは、ゲームコンテンツを様々な異なる種類のクライアント装置504に配信することであるので、一般に、異なるタイプのクライアント装置に対応するために追加のユーザインタフェース機能が必要である。一実施例において、前記追加のユーザインタフェース機能は、ゲーム501によって出力されたゲームビデオコンテンツ上に1つ以上のユーザインタフェースを重ね合わせることによって実行され、該ゲーム501のアプリケーションプログラムを変更する必要がない。
以下は、ゲームプロセスを修正することなく、追加のコンテンツをゲームビデオコンテンツ上にオーバーレイする方法を説明する。先ず、前述のキャプチャとエンコードステップを詳細に確認し、グラフィック処理ユニット(GPU)と関連ビデオランダムアクセスメモリ(VRAM)を用いてこれらのステップを実行する利点を示す。
図6は、本発明の非VRAM(非VRAM)方法でビデオとオーディオのコンテンツをエンコードするシステム6000の実施例の説明図である。該システム6000は、GPU602、VRAM603、CPU604、システムバス606及びSRAM608を含む。この方法は、1)VRAM603からSRAM608へビデオコンテンツをコピーすること、及び2)SRAM608内のコピーされたビデオコンテンツをCPU604へ送信し、エンコードすること、の2つの主なステップを含む。
生(エンコードされていない)ビデオデータはシステムバス606を介する必要があるため、ビデオコンテンツをキャプチャしてエンコードするこの方法ではパフォーマンスが大幅に犠牲になる。実際、生ビデオデータは、システムバス606を「2回」通過する必要がある。
図7は、本発明のVRAM方法でビデオ及びオーディオコンテンツをエンコードする実施例の説明図であり、GPU602及びそのVRAM603の機能及び利点を効果的に利用することができる。
図7に示すように、ビデオコンテンツはVRAMにキャプチャされてからVRAMに記憶され、GPU及びVRAMリソースによりエンコード動作が行われる。それから、エンコードされたビデオデータは、システムバス606を介してSRAM608に送信される。したがって、システムバス606は、生ビデオデータを「2回」伝達するのではなく、エンコードされた(圧縮された)ビデオデータを「1回」伝達するだけである。これにより、CPU604及びSRAM608のリソースを大幅に節約することができ、更にシステムバス606のリソースも節約することができる。
図8と図9は、本発明のクラウドゲームプロセスにおいて追加のインタラクティブコンテンツをオーバーレイする方法及びシステムの幾つかの実施例を紹介する。図8は、本発明のSRAM内でインタラクティブコンテンツをオーバーレイするシステム及び方法の実施例の説明図である。図9は、本発明のVRAMにおいてインタラクティブコンテンツをオーバーレイするシステム及び方法の実施例の説明図である。一実施例において、オーバーレイする追加のインタラクティブコンテンツは、ユーザインタフェース(user interface、UIと称する)を含む。一実施例において、オーバーレイするコンテンツは、追加のコンテンツが含まれている。一実施例において、オーバーレイする追加のインタラクティブコンテンツは、インタラクティブコントロールを含む。図9に示され実施例において、GPU及びVRAMのリソースは、特定のクラウドゲームコンテンツをオーバーレイすることに用いられ、ユーザにより良いゲーム体験を提供する。
ゲームプロセス801は、コンテンツをユーザに提供するためのターゲットプロセス又はアプリケーションプログラムを含む。クラウドゲームプロセス805は、該ゲームのリモートプレイを支援し、例えば、ユーザにコンテンツを提供し、ユーザによるリモートコントロール入力を受け付ける。クラウドゲームプロセス805は、注入コード(injecting code)をゲームプロセス801に注入することによってゲームプロセス801と通信する。一実施例において、クラウドゲームプロセス805は、作成するオーバーレイコンテンツを決定する。一実施例において、クラウドゲームプロセス805のユーザは、それが注入するコードへのデータ転送を制御する。
クラウドゲームプロセス805は、スマートフォン、セットトップボックス(set-top box)又はゲーム機(game console)などのハードウェア装置であるクライアント装置804と通信する。一実施例において、クラウドゲームプロセス805は、クライアント装置804へのエンコードビデオデータストリームを支援する。
一実施例において、オーバーレイするインタラクティブコンテンツは、1つ以上の表示される広告を含む。一実施例において、オーバーレイするインタラクティブコンテンツは、1つ以上の特定のタイプの装置に適応するように設計されている装置制御インタフェースを含む。一実施例において、オーバーレイするインタラクティブコンテンツは、1つ以上の出力ビデオソースを含む。
好ましくは、前述の方法及びシステムは、ゲームアプリケーションプログラムを修正することなくプロセス介入によってゲームアプリケーションプログラム内で実行されるクラウドゲームサービスを提供する。一実施例において、該クラウドゲームサービスは、ダイナミックリンクライブラリインジェクション技術(dynamic link library injection、DLL Injectionと称する)を使用してゲームアプリケーションプログラム(又は他のアプリケーションプログラム)で動作する。一実施例において、該クラウドゲームサービスは、「フッキング(hooking)」技術を使用してゲームアプリケーションプログラム(又は他のアプリケーションプログラム)内で動作する。
https://en.wikipedia.org/wiki/DLL_injectionを参照し、「DLLインジェクション(DLL injection)は、他の処理プロセスに1つのダイナミックリンクメディアキャビネットをロードさせ、そのアドレス空間で指定プログラムを実行させることができるコンピュータプログラミング技術である。」。
https://en.wikipedia.org/wiki/Hookingを参照し、「フックプログラム(hooking)とは、「フック」とも称される)は、ソフトウェアモジュール間の関数呼び出し、メッセージ伝達、イベント伝達のインターセプトによってオペレーティングシステム、アプリケーションプログラム又はその他のソフトウェアコンポーネントの動作を変更又は拡張する各種技術である。インターセプトされた関数呼び出し、イベント、及びメッセージを処理するコードは、フック(hook)と称される。」。
一実施例において、クラウドゲームサービスは、ゲームアプリケーションプログラムなどのアプリケーションプログラムで動作するDLLインジェクションとフックプログラミング技術の両方を使用する。
好適実施例において、クラウドゲームサービスは、DirectX又はOpenGLなどの標準グラフィックアプリケーションプログラムインタフェース(API)を使用し、ゲームアプリケーションプログラムと同じタイプのレンダリングされたターゲットコンテンツを生成することができる。好ましくは、クラウドゲームサービスは、本発明の前述の1つ以上の実施例を利用し、スクリーンキーボード、仮想マウス、ダイアログ情報、及び1つ以上の広告のうちの1つ以上の機能をユーザに提供する。本発明の実施例において、スクリーンキーボード、仮想マウス、会話型情報、及び広告などの追加のユーザインタフェースの機能及び情報を、ゲームアプリケーションプログラムを修正することなく提供することができる。
図8は、本発明のSRAM808においてインタラクティブコンテンツをオーバーレイするシステムと方法の実施例の説明図である。インタラクティブコンテンツは、ユーザが制御した行動に反応するメディア又はゲームコンテンツを含むことができる。図8の方法では、該オーバーレイは、SRAM808で生成され、該オーバーレイは、エンコードの前にゲームビデオコンテンツに混合される。この方法は、比較的低次で、比較的長い時間及びその他のリソースを消費する。ユーザ制御データは、クラウドゲームプロセス805に送信される。オーバーレイコンテンツは、ユーザ制御データを含む場合、それはゲームプロセス801に送信される前にクラウドゲームプロセス805によって処理される。図8の方法において、エンコードは、CPU又はVRAM(図示せず)内で処理することができる。
図9は、本発明のVRAM803内でインタラクティブコンテンツをオーバーレイする方法の実施例の説明図である。本方法において、クラウドゲームサービスは、VRAM803内に互換性のあるオーバーレイ面(compatible overlay surface)を直接作成し、該オーバーレイ面をゲームコンテンツに混合する。これは、VRAM803からSRAM808にコンテンツをコピーする必要性を排除し、SRAM808及びCPU604内で混合動作を実行する必要性を排除することによって処理時間及びリソースを節約することができる。
該互換性のあるオーバーレイ面は、既存のゲームアプリケーションプログラムと互換性がある(即ち、同じ又は互換性のあるグラフィックス規格を有する)オーバーレイ面である。例えば、ゲームアプリケーションプログラムがDirectX9 APIを使用している場合、クラウドゲームサービスもDirectX9 APIも使用して、それと互換性のあるオーバーレイ面を作成する。
図9において、ゲームプロセス801が出力し、標示する「レンダリング」の経路は、ゲームプロセスが実行するレンダリングを表す。一実施例において、該クラウドゲームサービス(クラウドゲームプロセス805)は、各ゲームレンダリング動作の終わりに該ゲームプロセス801をフック(hooks)し、該ゲームにクラウドゲームサービス(プロセス805)の注入コード(injection code)を能動的に呼び出させる。上記の「hooking」と「DLL Injection」の説明を参照。
図9の実施例において、混合ビデオコンテンツをSRAMに転送することなく、エンコード動作がGPUによってVRAM803内で実行される。それから、エンコードされたデータ(圧縮データでもあり得る)は、次に、遠隔に位置し得るクライアントデバイス804に送信される。
図10は、本発明のVRAM内でマルチソースメディアをオーバーレイするシステム700の他の実施例のブロック図である。該システム700は、少なくとも1つのコンピュータ710及び遠隔地に配置された少なくとも1つのクライアント装置720を含む。クライアント装置720は、ネットワーク730を介してコンピュータ710と接続及び通信する。コンピュータ710は、CPU7100、システムランダムアクセスメモリ(SRAM)7181、ディスプレイ7182、ストリーミングモジュール719、及びGPU713を含み、GPU713は、更に内蔵されたビデオランダムアクセスメモリ(VRAM)714を含む。VRAM714は、複数のフレームバッファ716及びバックバッファ717を含むことができる。フレームバッファは、SRAM718などのその他のメモリデバイスに設定されることもできる。
本実施例において、該コンピュータは、複数のGPU713を含むクラウドサーバである。該プライマリマルチメディアソース7110は、コンピュータ710によって実行されるゲームアプリケーションプログラムのゲームプロセス711(第1プロセスとも称される)によって生成される。該コンピュータ710は、該ゲームアプリケーションプログラムを実行して該第1プロセス(ゲームプロセス)を動作させ、プライマリマルチメディアソース7110のビデオコンテンツを生成する。ゲームプロセス711によって生成されたプライマリマルチメディアソース7110は、頂点、テクスチャ、シェーディング、メッシュなどのグラフィックオブジェクトである複数のプライマリマルチメディアコンテンツアイテム7151、7152、7153を含む。該GPU713は、第1プロセス(ゲームプロセス711)によって生成されたビデオコンテンツ内のプライマリマルチメディアコンテンツアイテム7151、7152、7153を直接キャプチャし、VRAM714のVRAM位置715に記憶する。これらのプライマリマルチメディアコンテンツアイテム7151、7152、7153は、VRAM714のVRAM位置715に直接レンダリングされる。
本実施例において、該VRAM位置715は、該ゲームアプリケーションプログラムのゲームプロセス711によって構成及び管理されている。プライマリマルチメディアソース7110のプライマリマルチメディアコンテンツアイテム7151、7152、7153は、VRAM714に直接レンダリングされるので、プライマリマルチメディアソース7110を「キャプチャする」ことにリソースを費やす必要はない。即ち、レンダリング動作のためにこれらのプライマリマルチメディアコンテンツアイテム7151、7152、及び7153をSRAM7181に転送する必要はない。
該セカンダリマルチメディアソース7120は、クラウドゲームプロセス712(第2プロセスとも称される)によって生成される。クラウドゲームプロセス712によって生成されたセカンダリマルチメディアソース7120は、プライマリマルチメディアソース7110のビデオコンテンツ上にオーバーレイされ得るビジュアルコンテンツ又はマルチメディアコンテンツであり得る複数のセカンダリマルチメディアコンテンツアイテム7154、7155を含む。第2プロセス(クラウドゲームプロセス712)は、VRAM位置715内に1つ以上の互換性のあるオーバーレイ面を作成する。これらの互換性のあるオーバーレイ面は、該セカンダリマルチメディアコンテンツアイテム7154、7155を含む。
一実施例において、該セカンダリマルチメディアコンテンツアイテム7154、7155は、頂点、テクスチャ、シェーディング、メッシュなどの視覚化されたグラフィックオブジェクトを含む。本実施例において、クラウドゲームプロセス712は、クラウドゲームアプリケーションプログラムよって実施され、このクラウドゲームアプリケーションは、該ゲームアプリケーションから独立している。
これにより、ゲームアプリケーションプログラムを変更することなく、VRAM内においてマルチソースメディアをオーバーレイする機能を実現することができる。該ゲームアプリケーションプログラム711及びクラウドゲームアプリケーションプログラム712の両方は、何れもハードディスク、ソリッドステートハードディスク(SSD)、フラッシュメモリカード又は光ディスクなどの非一時的コンピュータ可読媒体に記憶されたコンピュータ命令を含み、コンピュータ710によって読み取られ実行されることができる。しかしながら、本発明の他の実施例において、該ゲームアプリケーションプログラム711及びクラウドゲームアプリケーション712の両方を実施できるようにゲームアプリケーションプログラムを修正することもできる。本実施例において、セカンダリマルチメディアソース7120のセカンダリマルチメディアコンテンツアイテム7154、7155は、VRAM714のVRAM位置715に直接レンダリングされるので、レンダリング動作のためにセカンダリマルチメディアコンテンツアイテム7154、7155をSRAM7181に転送する必要はない。
本実施例において、該GPU713は、第2プロセスによって生成された該互換性のあるオーバーレイ面を第1プロセスによって生成されたビデオコンテンツに直接混合し、混合したビデオコンテンツを完全に該VRAM714のフレームバッファ716に記憶し、プライマリマルチメディアコンテンツアイテム7151、7152、7153及びセカンダリマルチメディアコンテンツアイテム7154、7155をSRAM7181に転送する必要はない。該互換性のあるオーバーレイ面のビデオ記憶フォーマットは、フレームバッファ716に記憶されている該混合後のビデオコンテンツと互換性がある。
本実施例において、該セカンダリマルチメディアソース7120に対する混合動作は、該プライマリマルチメディアソース7110によってレンダリングされたのと同じ該VRAM714の該VRAM位置715で行われるので、混合プロセスは追加のバッファの使用を必要としない。即ち、プライマリマルチメディアソース7110のレンダリング、セカンダリマルチメディアソース7120のレンダリング、及びプライマリマルチメディアソース7110及びセカンダリマルチメディアソース7120の混合によるターゲット画像(混合後のビデオコンテンツとも称される)を生成する動作はすべて同じ1つのVRAM位置715で実行される。好ましくは、プライマリマルチメディアソース7110及びセカンダリマルチメディアソース7120を同じVRAM位置715にレンダリングする動作が同時に所定の混合動作も完成でき、混合ステップを別途独立して行う必要はない。
混合プロセスの完成した後、生成されたターゲット画像(混合後のビデオコンテンツ)は、該フレームバッファ716に送られる。一実施例において、レンダリング及び混合動作は、何れもフレームバッファ716で行われるので、該ターゲット画像は、すでに直接フレームバッファ716にある。
次に、ターゲット画像は、ターゲットビデオの一部としてエンコードされ、それからターゲットビデオを以下のうちの1つに転送することができる:SRAM7181、バックバッファ717、ディスプレイ7182、又は反復プロセスにおいて同じVRAM位置715にレンダリングされ、多重のオーバーレイを行うことができる。本実施例において、該エンコード後のターゲット画像(エンコード後の混合ビデオコンテンツとも称される)がストリーミングモジュール719に送られて処理されてビデオストリームとなり、その後、ネットワーク730を介して該ビデオストリームをクライアント装置720に送信する。クライアント装置720は、クライアントゲームプロセスを実行し、該コンピュータ710上のゲームプロセス及び該クラウドゲームプロセスと協働するようにクライアントゲームプロセスを実行することができ、クライアント装置720は、デコーダ722によって該エンコードされたターゲット画像をデコードし、それからデコード後のターゲット画像をクライアント装置721のディスプレイ723で再生する。
本実施例において、クライアント装置721は、インタフェース721を含み、これは、更にユーザインタフェース及び通信インタフェースを含む。該ユーザインタフェースは、ユーザの動作を受け付けて、ユーザの動作に基づいて制御入力を生成する。該通信インタフェースは、コンピュータ710との通信を確立し、該制御入力をネットワーク730を介して該コンピュータ710のクラウドゲームプロセス712に送信することができる。
第2プロセス(クラウドゲームプロセス712)が該セカンダリマルチメディアコンテンツアイテムを生成する時、該第2プロセスは、該制御入力を受信し、該制御入力に基づいて、第1プロセス(ゲームプロセス711)にコードを注入すること(injecting code)によって第1プロセスと通信する。該第2プロセスは、受信した制御入力に基づいてVRAM位置715に該互換性のあるオーバーレイ面を作成する。一実施例において、該第1プロセスは1つ以上のレンダリング動作を実行し、該第2プロセスは、各レンダリング動作の終了時に該第1プロセスをフック(hooks)し、該第1プロセスに該第2プロセスのインジェクションコードを呼び出させる。
図11は、本発明のクライアント装置上の混合後のビデオコンテンツの画像を標示する実施例の説明図である。
本実施例において、該クライアント装置は、スマートフォン、デジタルタッチタブレット、又はタッチスクリーン(ディスプレイ723とも称される)を内蔵したコンピュータとすることができるが、これらに限定されない。該タッチスクリーン(ディスプレイ723)は、デコード後のターゲット画像を表示することができるだけでなく、ユーザのタッチ動作も表示することができ、それに応じてコンピュータ710のクラウドゲームプロセス712に送信する制御入力を生成することができる。
図11に示す実施例において、該ゲームプロセス711によって生成されたプライマリマルチメディアソース7110の該プライマリマルチメディアコンテンツアイテム7151、7152、及び7153は、複数のグラフィックアイテム7151a、7151b、7151c及び複数の仮想制御キー7152a、7152b、7152c、7153a、7153b、7153c、7153dを含む。これらのグラフィックアイテム7151a、7151b、7151c及び仮想制御キー7152a、7152b、7152c、7153a、7153b、7153c、7153dは、該ゲームプロセス711によって生成される。
該グラフィックアイテム7151a、7151b、及び7151cは、該デコード後のターゲット画像のグラフィックオブジェクト及びシーンを表示するためにのみ使用される。しかし、該仮想制御キー7152a、7152b、7152c、7153a、7153b、7153c、7153dは、グラフィカルキーを表示するだけでなく、それらが表示される位置において入力機能も定義する。ユーザが該タッチスクリーン(ディスプレイ723)に表示されたそのうち1つの仮想制御キー7152a、7152b、7152c、7153a、7153b、7153c、7153dにタッチする時、クライアント装置720は、該タッチされた仮想制御キーに対応する制御入力を制止し、該制御入力を遠隔地にあるコンピュータ710に送信する。
クラウドゲームプロセス712によって生成されたセカンダリマルチメディアソース7120のセカンダリマルチメディアコンテンツアイテム7154、7155は、1つ以上のグラフィックアイテム(セカンダリマルチメディアコンテンツアイテム7155)及び仮想制御キー(セカンダリマルチメディアコンテンツアイテム7154)を含む。これらのセカンダリマルチメディアコンテンツアイテム7154、7155は、該ゲームアプリケーションプログラムの内蔵機能ではなく、追加機能である。
該グラフィックアイテム(セカンダリマルチメディアコンテンツアイテム7155)は、追加のコンテンツ、クラウドゲームの特定コンテンツ、広告などのグラフィックアイテムであり得る。該広告は、非インタラクティブ広告又はインタラクティブ広告にすることもできる。広告がインタラクティブである時、ユーザが該広告の位置にタッチすると、URLリンクなどのハイパーリンク(hyperlink)が起動され、該広告に関連するウェブページにユーザを誘導する。該仮想制御キー(セカンダリマルチメディアコンテンツアイテム7154)は、1つ以上の特定の種類のクライアント装置に合わせたインタフェース、双方向制御、又は装置制御インタフェースであることができる。
仮想制御キー(セカンダリマルチメディアコンテンツアイテム7154)は、グラフィカルキーを表示するだけでなく、それが表示する位置において入力機能も定義する。該ユーザがタッチスクリーン(ディスプレイ723)に表示されたそのうち1つの仮想制御キー(セカンダリマルチメディアコンテンツアイテム7154)にタッチすると、クライアント装置720は、タッチされた仮想制御キーに対応する制御入力を生成する。そして、制御入力を遠隔地にあるコンピュータ710のクラウドゲームプロセス712に送信する。一実施例において、セカンダリマルチメディアコンテンツアイテム7154の仮想制御キーの機能の1つは、これに限定するものではないが、いくつかのプライマリマルチメディアコンテンツアイテムの仮想制御キー7152a、7152b、7152c、7153a、7153b、7153c、7153dを所定の順序で押すことに相当する特別な機能をトリガするものであることができる。例えば、図11に示す「X」キー(セカンダリマルチメディアコンテンツアイテム7154)を単に押すと、該プライマリマルチメディアコンテンツアイテムの該グラフィックアイテム7151aに特殊な攻撃動作を実行させ、該「X」キーがない場合、ユーザは、同じ特殊攻撃動作をトリガするために短時間内に「A」(7152a)、「B」(7152b)、及び「Δ」(7153a)の3つのキーを素早く押さなければならない。該クラウドゲームプロセス712がクライアント装置720によって生成された制御入力を受信する時、該クラウドゲームプロセス712は、該制御入力が、ユーザがゲームプロセス711のプライマリマルチメディアコンテンツアイテム7152a、7152b、7152c、7153a又はクラウドゲームプロセス712のセカンダリマルチメディアコンテンツアイテム7154、7155の何れにタッチしたことによって生成されたものであるかを判断する。
該制御入力が該プライマリマルチメディアコンテンツアイテム7152a、7152b、7152c、7153a、7153b、7153c、7153dをタッチして生成されたものである時、該制御入力は、該ゲームプロセス711を制御するために直接ゲームプロセス711に送信される。該制御入力がセカンダリマルチメディアコンテンツアイテム7154、7155をタッチしたことによって生成された時、該クラウドゲームプロセス712は、どの機能が該制御入力によって起動されるかを決定し、次いで該クラウドゲームプロセス712は該機能を起動し、次のうち1つを実行する。対応する一連の制御入力信号を生成してゲームプロセスに送信し、該ゲームプロセスの動作を制御し、新しいセカンダリマルチメディアコンテンツアイテムを生成するか、又は既存の第2マルチメディアコンテンツアイテムを変更、削除又は移動する。
上記の実施例は、本発明の適用範囲を制限するために使用されるべきではなく、本発明の保護範囲は、本発明の特許請求の範囲の内容に定義される技術精神及びその均等な変化に含まれる範囲に基づくべきである。
101 サーバコンピュータ
102 ネットワーク
103 クライアント装置
110 CPU
111 ストレージユニット
112 メモリ
120 CPU
121 ストレージユニット
122 メモリ
131 コンピュータプログラム製品
203 GPU
204 VRAM
206 フレームバッファ
207 システムRAM
212 フロントシステムバス
216 バックバッファ
217 CPU
301 プライマリマルチメディアソース
302 セカンダリ(オーバーレイ)マルチメディアソース
305 VRAM位置
308 ディスプレイ
502 サーバ
501 ゲーム
504 クライアント装置
506 ディスプレイ
507 スピーカ
601 ゲームプロセス
606 システムバス
7110 プライマリマルチメディアソース
7120 セカンダリ(オーバーレイ)マルチメディアソース
715 VRAM位置
716 フレームバッファ
717 バックバッファ
7182 ディスプレイ
719 ストリームモジュール
730 インターネット
721 インタフェース
722 デコーダ
723 ディスプレイ
801 ゲームプロセス
804 クライアント装置
805 クラウドゲームプロセス

Claims (12)

  1. 中央処理装置(CPU)、システムランダムアクセスメモリ(SRAM)、及びビデオランダムアクセスメモリ(VRAM)が内蔵されたグラフィックプロセッサ(GPU)を少なくとも備えるコンピュータに適用される、ビデオランダムアクセスメモリにおいてマルチソースメディアをオーバーレイする方法であって、
    前記方法は、
    前記コンピュータが第1プロセスを実行してビデオコンテンツを生成し、前記ビデオコンテンツは、前記第1プロセスによって生成された少なくとも1つのプライマリマルチメディアコンテンツアイテムを含むステップと、
    前記GPUが前記第1プロセスによって生成された前記ビデオコンテンツの前記プライマリマルチメディアコンテンツアイテムをキャプチャし、キャプチャした前記プライマリマルチメディアコンテンツアイテムを前記VRAMのVRAM位置に直接記憶するステップと、
    第2プロセスを実行して少なくとも1つのセカンダリマルチメディアコンテンツアイテムを生成し、前記第2プロセスは、前記VRAM位置において互換性のあるオーバーレイ面を作成し、前記互換性のあるオーバーレイ面は、少なくとも1つのセカンダリマルチメディアコンテンツアイテムを含むステップと、
    前記GPUは、前記第2プロセスによって生成された前記互換性のあるオーバーレイ面を前記第1プロセスによって生成された前記ビデオコンテンツに直接混合し、混合後のビデオコンテンツを前記VRAMのフレームバッファに記憶し、前記プライマリマルチメディアコンテンツアイテム及び前記セカンダリマルチメディアコンテンツアイテムをSRAMに送信する必要がなく、前記互換性のあるオーバーレイ面のビデオ記憶フォーマットは、前記フレームバッファに記憶される前記混合後のビデオコンテンツのビデオ記憶フォーマットと互換性があるステップと、
    を含み、前記第2プロセスを実行して前記セカンダリマルチメディアコンテンツアイテムを生成するステップにおいて、前記第2プロセスは、制御入力を受信し、前記制御入力に基づいて前記第1プロセスにコードを注入する(injecting code)ことによって前記第1プロセスと通信し、前記第2プロセスは、受信した前記制御入力に基づいて前記VRAM位置に互換性のあるオーバーレイ面を作成する、方法。
  2. 前記第1プロセスは、1つ以上のレンダリング動作を実行し、前記第2プロセスは、各前記レンダリング動作の終了時に前記第1プロセスをフック(hooks)し、前記第1プロセスに前記第2プロセスの注入コードを呼び出させる請求項1に記載の方法。
  3. 前記第1プロセスは、ゲームアプリケーションプログラムよって起動されるゲームプロセスであり、
    前記第2プロセスは、クラウドゲームプロセスであり、
    前記クラウドゲームプロセスは、プロセスの介入によって前記ゲームアプリケーションプログラム内で実行され、
    前記クラウドゲームプロセスは、ゲームアプリケーションプログラムを変更することなく、スクリーンキーボード、仮想マウス、ダイアログ情報、仮想キー、及び1つ以上の広告のうちの1つ以上の機能を提供することができる請求項2に記載の方法。
  4. 前記制御入力は、前記コンピュータの遠隔地に位置するクライアント装置によって生成され、
    前記クライアント装置は、ネットワークを介して前記制御入力を前記コンピュータに送信し、
    前記コンピュータは、前記フレームバッファに記憶されている前記混合後のビデオコンテンツをキャプチャしてエンコードし、その後、前記エンコード後の前記混合後のビデオコンテンツを前記ネットワークを介して前記クライアント装置に送信し、
    前記クライアント装置は、前記エンコード後の前記混合後のビデオコンテンツを受信してデコードした後に再生する請求項2に記載の方法。
  5. 前記混合後のビデオコンテンツのエンコード動作は、前記GPUによって前記VRAMにおいて実行され、前記混合後のビデオコンテンツをSRAMに送信する必要がなく、
    前記混合後のビデオコンテンツは、ユーザインタフェース、追加のコンテンツ、クラウドゲームの特定コンテンツ、広告、及び1つ以上のタイプに適用するように設計された装置制御インタフェースのうちの少なくとも1つを含む請求項2に記載の方法。
  6. 中央処理装置(CPU)、システムランダムアクセスメモリ(SRAM)、及びビデオランダムアクセスメモリ(VRAM)が内蔵されたグラフィックプロセッサ(GPU)を少なくとも備えるコンピュータを含む、ビデオランダムアクセスメモリにおいてマルチソースメディアをオーバーレイするシステムであって、
    前記コンピュータが第1プロセスを実行してビデオコンテンツを生成し、前記ビデオコンテンツは、前記第1プロセスによって生成された少なくとも1つのプライマリマルチメディアコンテンツアイテムを含み、
    前記コンピュータは、第2プロセスを実行し、少なくとも1つのセカンダリマルチメディアコンテンツアイテムを生成し、
    前記GPUは、以下の動作を実行するように構成され、
    前記第1プロセスによって生成された前記ビデオコンテンツの前記プライマリマルチメディアコンテンツアイテムをキャプチャし、キャプチャした前記プライマリマルチメディアコンテンツアイテムを前記VRAMのVRAM位置に直接記憶し、
    前記第2プロセスにより前記VRAM位置において互換性のあるオーバーレイ面を作成し、前記互換性のあるオーバーレイ面は、少なくとも1つのセカンダリマルチメディアコンテンツアイテムを含み、
    前記GPUは、前記第2プロセスによって生成された前記互換性のあるオーバーレイ面を前記第1プロセスによって生成された前記ビデオコンテンツに直接混合し、混合後のビデオコンテンツを前記VRAMのフレームバッファに記憶し、前記プライマリマルチメディアコンテンツアイテム及び前記セカンダリマルチメディアコンテンツアイテムをSRAMに送信する必要がなく、前記互換性のあるオーバーレイ面のビデオ記憶フォーマットは、前記フレームバッファに記憶される前記混合後のビデオコンテンツのビデオ記憶フォーマットと互換性があり、
    前記第2プロセスを実行して前記セカンダリマルチメディアコンテンツアイテムを生成するステップにおいて、前記第2プロセスは、制御入力を受信し、前記制御入力に基づいて前記第1プロセスにコードを注入する(injecting code)ことによって前記第1プロセスと通信し、前記第2プロセスは、受信した前記制御入力に基づいて前記VRAM位置に互換性のあるオーバーレイ面を作成する、システム。
  7. 前記第1プロセスは、1つ以上のレンダリング動作を実行し、前記第2プロセスは、各前記レンダリング動作の終了時に前記第1プロセスをフック(hooks)し、前記第1プロセスに前記第2プロセスの注入コードを呼び出させる請求項6に記載のシステム。
  8. 前記第1プロセスは、ゲームアプリケーションプログラムよって起動されるゲームプロセスであり、
    前記第2プロセスは、クラウドゲームプロセスであり、
    前記クラウドゲームプロセスは、プロセスの介入によって前記ゲームアプリケーションプログラム内で実行され、
    前記クラウドゲームプロセスは、ゲームアプリケーションプログラムを変更することなく、スクリーンキーボード、仮想マウス、ダイアログ情報、仮想キー、及び1つ以上の広告のうちの1つ以上の機能を提供することができる請求項7に記載のシステム。
  9. 前記制御入力は、前記コンピュータの遠隔地に位置するクライアント装置によって生成され、
    前記クライアント装置は、ネットワークを介して前記制御入力を前記コンピュータに送信し、
    前記コンピュータは、前記フレームバッファに記憶されている前記混合後のビデオコンテンツをキャプチャしてエンコードし、その後、前記エンコード後の前記混合後のビデオコンテンツを前記ネットワークを介して前記クライアント装置に送信し、
    前記クライアント装置は、前記エンコード後の前記混合後のビデオコンテンツを受信してデコードした後に再生する請求項7に記載のシステム。
  10. 前記混合後のビデオコンテンツのエンコード動作は、前記GPUによって前記VRAMにおいて実行され、前記混合後のビデオコンテンツをSRAMに送信する必要がなく、
    前記混合後のビデオコンテンツは、ユーザインタフェース、追加のコンテンツ、クラウドゲームの特定コンテンツ、広告、及び1つ以上のタイプに適用するように設計された装置制御インタフェースのうちの少なくとも1つを含む請求項7に記載のシステム。
  11. コンピュータによって実行可能な複数のコンピュータ命令を含む、非一時的コンピュータ可読媒体に記憶されたコンピュータプログラム製品であって、
    前記コンピュータは、中央処理装置(CPU)、システムランダムアクセスメモリ(SRAM)、及びビデオランダムアクセスメモリ(VRAM)が内蔵されたグラフィックプロセッサ(GPU)を少なくとも備え、前記複数のコンピュータ命令は、前記コンピュータによって実行され、
    前記コンピュータが第1プロセスを実行してビデオコンテンツを生成し、前記ビデオコンテンツは、前記第1プロセスによって生成された少なくとも1つのプライマリマルチメディアコンテンツアイテムを含むステップと、
    前記GPUが前記第1プロセスによって生成された前記ビデオコンテンツの前記プライマリマルチメディアコンテンツアイテムをキャプチャし、キャプチャした前記プライマリマルチメディアコンテンツアイテムを前記VRAMのVRAM位置に直接記憶するステップと、
    第2プロセスを実行して少なくとも1つのセカンダリマルチメディアコンテンツアイテムを生成し、前記第2プロセスは、前記VRAM位置において互換性のあるオーバーレイ面を作成し、前記互換性のあるオーバーレイ面は、少なくとも1つのセカンダリマルチメディアコンテンツアイテムを含むステップと、
    前記GPUは、前記第2プロセスによって生成された前記互換性のあるオーバーレイ面を前記第1プロセスによって生成された前記ビデオコンテンツに直接混合し、混合後のビデオコンテンツを前記VRAMのフレームバッファに記憶し、前記プライマリマルチメディアコンテンツアイテム及び前記セカンダリマルチメディアコンテンツアイテムをSRAMに送信する必要がなく、前記互換性のあるオーバーレイ面のビデオ記憶フォーマットは、前記フレームバッファに記憶される前記混合後のビデオコンテンツのビデオ記憶フォーマットと互換性があるステップと、
    を実行し、前記第2プロセスを実行して前記セカンダリマルチメディアコンテンツアイテムを生成するステップにおいて、前記第2プロセスは、制御入力を受信し、前記制御入力に基づいて前記第1プロセスにコードを注入する(injecting code)ことによって前記第1プロセスと通信し、前記第2プロセスは、受信した前記制御入力に基づいて前記VRAM位置に互換性のあるオーバーレイ面を作成する、コンピュータプログラム製品。
  12. 前記第1プロセスは、1つ以上のレンダリング動作を実行し、前記第2プロセスは、各前記レンダリング動作の終了時に前記第1プロセスをフック(hooks)し、前記第1プロセスに前記第2プロセスの注入コードを呼び出させる請求項11に記載のコンピュータプログラム製品。
JP2019080820A 2018-05-04 2019-04-22 ビデオランダムアクセスメモリにおけるマルチソースメディアをオーバーレイするシステム及び方法 Active JP7278850B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/971,640 2018-05-04
US15/971,640 US10332296B2 (en) 2016-07-05 2018-05-04 Overlaying multi-source media in VRAM

Publications (2)

Publication Number Publication Date
JP2019195163A JP2019195163A (ja) 2019-11-07
JP7278850B2 true JP7278850B2 (ja) 2023-05-22

Family

ID=68469381

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019080820A Active JP7278850B2 (ja) 2018-05-04 2019-04-22 ビデオランダムアクセスメモリにおけるマルチソースメディアをオーバーレイするシステム及び方法

Country Status (1)

Country Link
JP (1) JP7278850B2 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014064291A (ja) 2012-04-12 2014-04-10 Square Enix Holdings Co Ltd 動画配信サーバ、制御方法、プログラム、記録媒体、及び動画配信システム
JP2017046175A (ja) 2015-08-26 2017-03-02 キヤノン株式会社 撮像装置及びその制御方法、プログラム、並びに記憶媒体
JP2017098948A (ja) 2015-11-04 2017-06-01 ユビタス インコーポレイテッドUbitus Inc. ビデオストリームで実行される対話型アプリケーション
JP2018005226A (ja) 2016-07-05 2018-01-11 ユビタス インコーポレイテッドUbitus Inc. Vramでマルチソースメディアをオーバーレイするシステム及び方法
JP2017507395A5 (ja) 2014-12-03 2018-01-18
JP2018029968A (ja) 2013-06-07 2018-03-01 株式会社ソニー・インタラクティブエンタテインメント ヘッドマウンテッドディスプレイ上でのゲームプレイの移行

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150188765A1 (en) * 2013-12-31 2015-07-02 Microsoft Corporation Multimode gaming server

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014064291A (ja) 2012-04-12 2014-04-10 Square Enix Holdings Co Ltd 動画配信サーバ、制御方法、プログラム、記録媒体、及び動画配信システム
JP2018029968A (ja) 2013-06-07 2018-03-01 株式会社ソニー・インタラクティブエンタテインメント ヘッドマウンテッドディスプレイ上でのゲームプレイの移行
JP2017507395A5 (ja) 2014-12-03 2018-01-18
JP2017046175A (ja) 2015-08-26 2017-03-02 キヤノン株式会社 撮像装置及びその制御方法、プログラム、並びに記憶媒体
JP2017098948A (ja) 2015-11-04 2017-06-01 ユビタス インコーポレイテッドUbitus Inc. ビデオストリームで実行される対話型アプリケーション
JP2018005226A (ja) 2016-07-05 2018-01-11 ユビタス インコーポレイテッドUbitus Inc. Vramでマルチソースメディアをオーバーレイするシステム及び方法

Also Published As

Publication number Publication date
JP2019195163A (ja) 2019-11-07

Similar Documents

Publication Publication Date Title
US10521879B2 (en) Overlaying multi-source media in VRAM
US10332296B2 (en) Overlaying multi-source media in VRAM
US20180270496A1 (en) Composite video streaming using stateless compression
JP5830496B2 (ja) ディスプレイコントローラおよび画面転送装置
CN109644294B (zh) 一种直播分享的方法、相关设备及系统
US20140087877A1 (en) Compositing interactive video game graphics with pre-recorded background video content
CN110166810B (zh) 视频渲染引擎切换方法、装置、设备及可读存储介质
US20230215076A1 (en) Image frame display method, apparatus, device, storage medium, and program product
CN109309842B (zh) 直播数据处理方法和装置、计算机设备和存储介质
US10921948B1 (en) Dynamic resource management for cloud-based services
US20140344469A1 (en) Method of in-application encoding for decreased latency application streaming
CN102375687A (zh) 在无线显示表面上显示计算机桌面
Mouton et al. Collaborative visualization: current systems and future trends
WO2024037110A1 (zh) 数据处理方法、装置、设备以及介质
KR101931514B1 (ko) 웹 브라우저에서 미디어의 재생과 백업을 동시에 수행하는 장치 및 방법
CN116821040B (zh) 基于gpu直接存储器访问的显示加速方法、装置及介质
CN113840154A (zh) 基于虚拟礼物的直播互动方法、系统及计算机设备
CN112843676A (zh) 数据处理方法、装置、终端、服务器及存储介质
AlDuaij et al. Heterogeneous multi-mobile computing
Lee et al. FLUID-XP: Flexible user interface distribution for cross-platform experience
JP2015035996A (ja) ゲームを提供するサーバ及び方法
JP7278850B2 (ja) ビデオランダムアクセスメモリにおけるマルチソースメディアをオーバーレイするシステム及び方法
JP2018005226A (ja) Vramでマルチソースメディアをオーバーレイするシステム及び方法
CN116966546A (zh) 图像处理方法、装置、介质、设备和程序产品
CN112118213B (zh) 一种线上的视频数据输出方法、系统及云平台

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20200910

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20200910

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20201221

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220329

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230328

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230510

R150 Certificate of patent or registration of utility model

Ref document number: 7278850

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150