JP2014222894A - ステートレス圧縮を利用したコンポジットビデオ画像をストリーミングする方法、プログラムおよび装置 - Google Patents

ステートレス圧縮を利用したコンポジットビデオ画像をストリーミングする方法、プログラムおよび装置 Download PDF

Info

Publication number
JP2014222894A
JP2014222894A JP2014126106A JP2014126106A JP2014222894A JP 2014222894 A JP2014222894 A JP 2014222894A JP 2014126106 A JP2014126106 A JP 2014126106A JP 2014126106 A JP2014126106 A JP 2014126106A JP 2014222894 A JP2014222894 A JP 2014222894A
Authority
JP
Japan
Prior art keywords
video
frame
server
client
structured document
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014126106A
Other languages
English (en)
Other versions
JP5954802B2 (ja
Inventor
アルバッハ、ジュリアン、マイケル
Michael Urbach Julian
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Otoy Inc
Original Assignee
Otoy Inc
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
Application filed by Otoy Inc filed Critical Otoy Inc
Publication of JP2014222894A publication Critical patent/JP2014222894A/ja
Application granted granted Critical
Publication of JP5954802B2 publication Critical patent/JP5954802B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • 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/507Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction using conditional replenishment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Abstract

【課題】ステートレス方式のビデオ圧縮およびビデオ画像分割を利用してビデオ圧縮を改善するビデオレンダリング方法およびビデオストリーミング方法を提供する。
【解決手段】クライアント20の画面を複数の領域に分割してレンダリングする時、サーバ30は、複数の領域に分割されたビデオストリームのフレームについて、既にレンダリングされた領域のフレームと知覚的に異なる領域のフレームのみを符号化し、ソケット接続25に書き込む。
【選択図】図1

Description

本開示は概して、ビデオストリーミングに関する。
クライアント−サーバアーキテクチャは概して、タスクまたは負荷を、「サービス提供側」と見なされる複数のサーバと、「サービス要求側」または「サービス消費側」と見なされる複数のクライアントとの間で分割する分散型コンピューティングアーキテクチャである。多くの場合、サーバおよびクライアントは、コンピュータネットワークを介して接続され、さまざまな種類のデータが、各サーバと、各クライアントとの間で、コンピュータネットワークを介して双方向に送信されるとしてよい。
サーバは通常、クライアントよりも、リソースが多く、性能が高い。サーバは、1以上のクライアントとの間で、リソースを共有するとしてよく、例えば、特定のタスクをクライアントのために実行する(つまり、クライアントにサービスを提供する)としてよい。サーバは、クライアントよりも持っているリソースが通常多いので、タスク、特に、リソースを大量に利用するタスクを、クライアントよりもはるかに高速に完了させることができるとしてよい。
サーバとクライアントとの間でやり取りされるデータは、任意の適切なデータ形式を利用して表現されるとしてよく、任意の適切な通信プロトコルを利用して送信されるとしてよい。例えば、クライアントのためにアプリケーションがサーバ上で実行されると、当該アプリケーションの出力は、ハイパーテキストマークアップランゲージ(HTML)ドキュメントまたはエクステンシブルマークアップランゲージ(XML)ドキュメント等の構造化ドキュメントを用いて表現されるとしてよい。サーバは、アプリケーションの出力を表現するデータを含むHTMLドキュメントまたはXMLドキュメントを、サーバとクライアントとの間のハイパーテキスト・トランスファー・プロトコル(HTTP)接続を介して、クライアントに送信するとしてよい。クライアントは、HTMLドキュメントまたはXMLドキュメントを受信すると、当該ドキュメントを消費して、HTMLドキュメントまたはXMLドキュメントをローカルに用いてアプリケーションの出力を、例えば、クライアント上で実行されているウェブブラウザとしてレンダリングするとしてよい。
モーションJPEG(M−JPEG)は、デジタルビデオシーケンスの各インターレースフィールドまたは各ビデオフレームが別々にJPEG画像として圧縮されるビデオ形式である。言い換えると、M−JPEGは、先にレンダリングされたフレームからの情報が後続のフレームを圧縮するために利用されないので、ステートレス圧縮を利用する。しかし、M−JPEGは、レイテンシが小さいという特徴がある。クライアントデバイスは、圧縮されたモーションJPEGビデオの1フレームを受信すると、当該フレームを即座に復元して表示するので、レイテンシが非常に小さくなる。M−JPEGは、元々マルチメディアPCアプリケーション用に開発されたが、当該分野では既により高度な形式に取って代わられ、現在では、デジタルカメラ等のビデオ撮影機能を持つ多くのポータブルデバイスで利用されている。モーションJPEGは、離散コサイン変換(DCT)に基づいた、不可逆的な方式のイントラフレーム圧縮を利用する。この数値演算によって、ビデオソースの各フレーム/フィールドは、時間ドメインから周波数ドメインへと変換される。人間の心理知覚システムに大まかに似せた知覚モデルでは、高周波数情報、つまり、強度および色相の急激な変化を破棄する。変換ドメインでは、情報を低減するプロセスは量子化と呼ばれる。量子化は、大きな数値スケール(各数値の発生率は異なる)を小さな数値スケールに低減する最適な方法である。そして、変換ドメインは、高周波数係数は、他の係数に比べてピクチャ全体への貢献度が少なく、値が小さいという特徴があり、圧縮率が高いので、画像を表現するのに便利である。量子化された係数はこの後、順番に並べられ、可逆的に出力ビットストリームに入れられる。
モジラ(Mozilla)およびウェブキット(Webkit)をベースとするブラウザは本来、M−JPEGストリームを鑑賞できるようにサポートがあるが、他のブラウザは、外部のプラグインまたはアプレットを用いてM−JPEGストリームをサポートすることができる。HTTPストリーミングでは、各画像を特定のマーカー上で複数の個別のHTTP応答に分割する。RTPストリーミングでは、クイックタイム(QuickTime)またはVLC等のクライアントによって受信され得るJPEG画像シーケンスのパケットを作成する。上述されるサーバソフトウェアは、HTTPでJPEGシーケンスをストリーミングする。特別なマイム(mime)型のcontent type multipart/x−mixed−replace;boundary=は、特別な境界によって返答が分割されるので、複数の部分が考えられるとブラウザに通知する。この境界は、MIME型の内部で定義される。M−JPEGストリームの場合、JPEGデータは、正しいHTTPヘッダでクライアントに送信される。TCP接続は、クライアントが新しいフレームを受信することを望み、サーバは新しいフレームを提供することを望む限りにおいて、閉じられない。
本発明は、ビデオ圧縮を改善するべく、ステートレス方式のビデオ圧縮およびビデオ画像分割化を利用する新式のビデオレンダリング方法およびビデオストリーミング方法に関する方法、装置およびシステムを提供する。一部の実施例によると、本明細書で説明するビデオ圧縮技術およびビデオストリーミング技術は、標準的なブラウザをホストするクライアントデバイスに高精細ビデオゲームを配信可能とするべく、利用され得る。
本開示の上記およびその他の特徴、側面および利点は、詳細な説明で、以下の図面を参照しつつより詳細に後述する。
クライアントとサーバとの間の複数の接続を示す概略図である。 一例となるビデオストリーミング方法を示すフローチャートである。 本発明の別の実施例に係る、クライアントとサーバとの間の複数の接続を説明する概略図である。 別の例に係るビデオストリーミング方法を示すフローチャートである。 複数のクライアント間でサーバのリソースを割り当てるクライアント−サーバシステムの一例を示す図である。 ネットワーク環境の一例を示す図である。 コンピュータシステムの一例を示す図である。
本開示を以下で、添付図面に図示されている実施形態を参照しつつ詳細に説明する。以下に記載する説明では、本開示をよく理解していただくべく、数多く具体的且つ詳細な内容を記載する。しかし、本開示は記載する具体的且つ詳細な内容の一部または全てを利用することなく実施し得ることは当業者には明らかである。また、公知の処理ステップおよび/または構造は、本開示を不要にあいまいにすることを避けるべく、詳細な説明を省略する。また、本開示は具体的な実施形態を参照しつつ説明されるが、本明細書は説明した実施形態に本開示を限定するものではないと理解されたい。これとは対照的に、本明細書は、請求項が定義する本開示の意図および範囲には変更例、変形例および均等例を含むものとする。
クライアント−サーバアーキテクチャによって、サーバは、自分のリソースを1以上のクライアントと共有することができるようになる。このようなアーキテクチャは、さまざまな利点がある。例えば、サーバは通常、クライアントよりもリソース(例えば、プロセッサまたはメモリ)が多く、性能も高いので、サーバはクライアントよりもタスクを高速に完了するとしてよい。このような性能の差は、タスクのリソースに対する要求が高い場合、または、クライアントのリソースが限られている場合に、特に顕著である。同時に、クライアントの代わりに、または、クライアントのためにサーバがタスクを実行している間、クライアントのリソースは、他のタスク、例えば、クライアントでローカルに実行する必要があるタスク(例えば、クライアントのユーザとのやり取り)等を実行するために自由に使えるとしてよい。
サーバで実行するのに適したタスクの1つとして、サーバがホストするアプリケーションをクライアントへ送信するビデオ出力としてレンダリングするタスクが挙げられるとしてよい。コンピュータグラフィクスに関連して言えば、レンダリングは、モデルから、通常は、コンピュータプログラムを利用して、画像を生成するプロセスと考えられるとしてよい。このモデルは通常、3次元(3D)物体を記述したものであり、厳密に定義された言語またはデータ構造で表現されるとしてよい。当該モデルは、幾何学的構造、視点、テクスチャ、照明、陰影、動き等の適切な種類の情報を含むとしてよい。当該モデルをレンダリングして得られる画像は、デジタル画像またはラスタリンググラフィクス画像であるとしてよく、複数の画素の集合によって形成されるとしてよい。本開示は、任意のアプリケーションの任意の出力を表現する画像を生成することと、レンダリングの概念を拡大して解釈する。レンダリングは、任意のデータ、例えば、2次元(2D)データおよび3Dデータに基づいて実行されるとしてよい。3Dモデルに基づいて画像を生成することに加えて、具体的な実施形態では、例えば、これらに限定されないが、ウェブブラウザアプリケーション、ワードプロセッシングアプリケーション、スプレッドシートアプリケーション、マルチメディアアプリケーション、科学および医療関連のアプリケーション、およびゲームアプリケーション等のアプリケーションの出力を表現する画像をレンダリングするとしてよい。
レンダリングは、レンダリングプロセスは大抵、演算が非常に多く、多くのリソースが必要であるので、サーバで実行するのに適した種類のタスクであるとしてよい。レンダリングで得られる画像が高解像度および高品質である場合には特にそうである。過去には、旧式のコンピュータシステムでは、3次元モデルを1つの2D画像にレンダリングするために、数時間または数日もかかることもあった。コンピュータハードウェア、特に、コンピュータグラフィクスアプリケーション(例えば、ゲーム、マルチメディア、娯楽またはマップ)専用に設計されたコンピュータハードウェアの発展および進歩と共に、今日のコンピュータシステムは、各画像を、数秒または数ミリ秒でレンダリングすることができるとしてよい。実際、多くのケースで、モデルを1つの画像にレンダリングする場合、サーバで利用可能なリソースを全て使うことはない。
図5は、サーバ120が複数のクライアント130について同時に複数のレンダリング処理を実行するシステムの一例を示す図である。尚、説明を簡略化するべく、図5に図示しているクライアントは、130A、130B、130C、130Dの4つのみである。実際のサーバは、任意の数のクライアントについてレンダリングを同時に実行するとしてよく、任意の時点においてサーバがサポートするクライアントの数に理論上の制限はない。同様に、説明を簡略化するべく、図5に図示しているGPU121およびCPU122はそれぞれ1つのみである。実際のサーバは、任意の数のGPUおよびCPUを備えるとしてよい。
具体的な実施形態では、サーバ120は、複数の別箇の物理的な通信経路150を介して、各クライアント130に接続されている。具体的な実施形態では、サーバ120とクライアント130との間の通信経路150は、コンピュータネットワーク、例えば、これらに限定されることないが、インターネット、イントラネット、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、無線ネットワーク、または、これらのうち2つ以上のコンピュータネットワークの組み合わせを介したネットワーク接続を含むとしてよい。具体的な実施形態において、ネットワーク通信経路150はそれぞれ、トランスポートコントロールプロトコル(TCP)接続、ユーザデータグラムプロトコル(UDP)接続、または、任意のその他の適切な接続であってよい。具体的な実施形態によると、サーバ120は複数のTCPソケット124を備えるとしてよく、各クライアント130は1以上の異なるTCPソケット124に接続されるとしてよい。
具体的な実施形態によると、サーバ120と各クライアント130との間で、対応する通信経路150を介して双方向にデータをやり取りするとしてよい。例えば、サーバ120およびクライアント130Aは、通信経路150Aを介して双方向にデータをやり取りするとしてよい。データは、任意の適切な形式を持つとしてよい。例えば、サーバ120は、ビデオストリームの形式でクライアント130にデータを送信するとしてよく、クライアント130はそれぞれ、データをサーバ120に送信するとしてよい。サーバ120とクライアント130との間の通信は、任意の適切なプロトコルを利用するとしてよい。例えば、アプリケーション131Aのインスタンスがクライアント130Aのためにサーバ120上で実行される場合を考える。サーバ120で実行されるアプリケーション131Aのインスタンスの出力がレンダリングされると、サーバ120からクライアント130Aへと、ビデオストリームの形式で、送信されるとしてよい。レンダリングされた各画像は、ビデオストリームの特定のフレームとして、アプリケーション131Aのインスタンスの出力を表現している。クライアント130Aで受信される入力、特に、サーバ120上で実行されているアプリケーション131Aのインスタンスの状態を変化させるような入力は、クライアント130Aからサーバ120へと送信されるとしてよい。
具体的な実施形態によると、サーバ120は、1以上の中央演算処理装置(CPU)122および1以上のグラフィクスプロセッシングユニット(GPU)121を有するとしてよい。CPUおよびGPUは、コンピュータの分野で公知である。簡単に言うと、CPUは、コンピュータの機能を実行し、コンピュータプログラムの命令を実行するコンピュータシステムの一部である。GPUは、マイクロプロセッサ(例えば、CPU)からグラフィクスレンダリングを請け負う特定用途向けプロセッサである。一般的に、GPUは、コンピュータグラフィクスの処理を非常に効率的に行い、非常に高度な並列構造を持っているので、多岐にわたる複雑なアルゴリズム(例えば、グラフィクス関連のアルゴリズム)について汎用CPUよりも効率的である。具体的な実施形態によると、GPU121は、ビデオカードの一部であってもよいし、または、サーバ120のマザーボード上にあるとしてよい。
特定の実施形態によると、GPU121は、レンダリングターゲットを含むとしてよい。特定の実施形態によると、レンダリングプロセスによって、1以上のアプリケーションの出力は、1以上の画像として、レンダリングターゲットへとレンダリングされる。特定の実施形態によると、レンダリングされた2D画像は、GPU121のレンダリングターゲットに格納されるとしてよい。特定の実施形態によると、レンダリングターゲットは、GPU121内の、フレームバッファまたは任意の適切な種類のメモリまたはストレージであるとしてよい。後述するように、レンダリングターゲットは、複数の部分またはフレーム領域に分割されるとしてよい。
ゲームのプレイ中、または、サーバ120がホストしているアプリケーションの利用中、クライアントシステム130は、キーボードおよび/またはコントローラを介したユーザからの入力を受信して、通信経路150を介してサーバ120へと送信する。サーバ120は、これに応じてゲームプログラムコードを実行し、ゲームまたはアプリケーションソフトウェア用のビデオ出力(ビデオ画像シーケンス)の複数の連続したフレームを生成する。例えば、ユーザがジョイスティック等のコントローラを、スクリーン上でプレーヤキャラクタを右に移動させるように操作する場合、サーバ120がホストしているアプリケーションは、プレーヤキャラクタを右に移動させるビデオ画像シーケンスを作成する。このビデオ画像シーケンスは、圧縮され、表示されるべくクライアントシステム130へと送信されるとしてよい。クライアントシステム130は、圧縮されたビデオストリームを復号して、復元されたビデオ画像を表示デバイス上にレンダリングする。これについては、以下でより詳しく説明する。
図1は、本発明の実施形態を示す概念図である。一実施例によると、ブラウザまたはその他のクライアントアプリケーションをホストしているクライアント20は、ビデオストリームが埋め込まれたウェブページを求めるHTTP要求を送信するとしてよい。ビデオストリームは、インタラクティブ式ゲームまたは事前に記録されているビデオの一部であってよい。ウェブページを求める要求に応じて、サーバ30は、ブラウザで処理するべく、ハイパーテキストマークアップランゲージ(HTML)ページをクライアント20に送信する。当業者であれば想到するであろうが、他の構造化ドキュメント形式、例えば、XML、SGML等を利用することもできる。一実施例によると、構造化ドキュメントは、さまざまなI/O入力ストリーム(例えば、マウス移動データ、ジョイスティックデータ、キーストローク)のリスナーとして登録されており、I/O入力データをサーバ30に送信するJavaScript(登録商標)モジュールを含むとしてよい。
クライアント20に返送されたHTMLページは、複数のmjpegストリームへの参照が埋め込まれている。各mjpegストリームは、ビデオ画像全体の一の一意的な領域に対応する。各mjpegストリームは別個の参照であるので、HTMLコードは、ブラウザから、ストリーム毎に別個のHTTP要求を送信させる。これによって、図1に示すように、クライアント20とサーバ30との間には、複数の別箇のトランスポートコントロールプロトコル(TCP)接続25が構築される。クライアント20およびサーバ30上でホストされているアプリケーションに関して、データは、各接続25に対応する、いわゆるソケットに書き込まれる。図1は、ビデオフレーム全体が16個の一意的なフレーム領域に分割される様子を示している。当業者であれば、グリッドセルの数およびアスペクト比を変更し得ることに想到するであろう。例えば、ビデオフレーム全体は、複数の行に分割されて1×N個のマトリクスを形成するか、または、複数の行に分割されてN×1のマトリクスを形成するとしてよい。また、グリッドセルは、サイズを均一にする必要はない。
上述したように、mjpegストリームの特性は、ビデオフレームシーケンスを形成するJPEG画像が符号化可能であり、比較的高速に低レイテンシで復号化可能であるという点にある。mjpegストリーム処理の別の属性は、ブラウザが最後に受信したフレームを新しいフレームを受信するまで表示する点にある。したがって、新しいフレームを受信しない場合には、ブラウザは最後に受信したフレームを表示し続ける。
構造化ドキュメントのHTMLコードは、図1に示すように、ビデオフレーム全体を構成する複数の一意的な領域が互いに位置合わせされている構成を持つ。一実施例によると、フレーム領域は、HTMLテーブルを用いて位置合わせされるとしてよく、テーブルの各セルは異なるフレーム領域に対応する。他の実施例によると、各フレーム領域は、DIVセクションに対応するとしてよい。所望に応じて、フレーム領域の相対的な位置を修正するべく、カスケーディングスタイルシートおよび絶対位置決め特性を利用することができる。一実施例によると、サーバ30は、ビデオフレーム群を生成するとしてよい。各ビデオフレームは、GPUのメモリ(一例)内、または、メインメモリ(CPU処理が利用される場合)内のバッファにビットマップとして格納される。フレーム全体はそれぞれバッファに格納されるので、ビデオ送信プロセスは、以下でさらに詳細に説明するが、バッファされている完全なフレームのうち各領域を符号化して、バッファされているフレームデータの各領域の符号化結果を、完全なフレームの一意的な領域に対応する各ソケット接続に書き込むとしてよい。
図2は、ビデオフレーム全体を構成する複数の一意的な領域に対応する、符号化ビデオフレームデータを選択的に書き込むプロセスの一例を示す図である。図2が示すように、フレーム領域配信プロセスは、バッファに格納されている現在レンダリングされているフレームにアクセスし(202)、レンダリングフレームの対応領域が履歴バッファに格納されているフレーム領域と知覚的に異なるか否かを判断する(204)。現在のフレーム領域と、履歴バッファ内の既にレンダリングされた領域との間に知覚的に差がない場合、フレーム領域配信プロセスは、フレーム領域データを対応する通信ソケットに書き込まない。
一のフレーム領域が知覚的に他のフレーム領域と異なるか否かを判断する処理は、さまざまな方法で実現され得る。例えば、フレーム領域配信プロセスは、画素単位でビットマップの成分値に対してXOR演算を行って、各画素で差があるか否かを判断するとしてよい。別の実施例では、メモリ比較関数、例えば、memcmp(標準的なCライブラリ関数)を用いてフレーム領域を比較するとしてもよい。一実施例によると、検出された差はいずれも、知覚的な差と見なされる。他の実施例によると、フレーム領域配信プロセスは、各ビットマップの成分値を画素単位で比較して、各ビットマップの成分値同士の間の距離値(例えば、ユークリッド距離または距離の絶対値の和)を算出するとしてよい。平均距離がしきい値より大きい場合、フレーム領域は知覚的に差があると見なされる。
現在のフレーム領域と、履歴バッファ内の既にレンダリングされた領域との間に知覚的な差がある場合、フレーム領域配信プロセスは、フレーム領域を履歴バッファに書き込み、既に格納されているフレーム領域を上書きする(206)。フレーム領域配信プロセスは、一実施例によると、ビットマップデータをJPEG画像に圧縮することによってフレーム領域を符号化して(208)、符号化フレーム領域データを、フレーム領域に対応するソケットに書き込む(210)。
上述したフレーム領域配信プロセスは、フレーム領域毎に別箇のスレッドとして実行されるとしてもよいし、および/または、例えば、米国特許出願第12/797,788号に開示されているように、グラフィクスプロセッシングユニットの高い並列処理機能を利用して並列に実行されるとしてもよい。この特許文献は、参照により本願に組み込まれる。上記を鑑みると、上述した構成は、所与の領域において知覚的に差が検出された場合にのみフレーム領域データを送信することによって、ステートレス方式のビデオ圧縮およびストリーミング方法(ここでは、M−JPEG)を用いたインターフレーム圧縮形式を実現することが分かる。したがって、この高度ビデオ圧縮方式は、M−JPEGをサポートするので特定用途向けクライアントアプリケーションまたはコーデックをインストールする必要がないブラウザのみを含むリモートホストと組み合わせて実現することが可能である。
上述した実施形態では、高度ビデオ圧縮機能は、帯域幅利用率を浪費しないように利用することができる。他の実施例では、ビデオ圧縮機能は、所与の公称帯域幅割り当てまたは目標帯域幅割り当てにおいて、ビデオ品質を向上させるために利用することができる。例えば、サーバ30は、特定の量の帯域幅をクライアント20とのセッションに割り当てるとしてよい。画像または画像の一領域の解像度を上げる(例えば、画像圧縮率を下げる)ことによって、帯域幅利用率が高くなる。所与の領域のフレームデータがクライアント30に送信されないことによって、帯域幅が節約される。サーバ30は、ビデオフレーム全体を表示する際に他の領域の画像解像度を上げるべく、このように節約された帯域幅を再利用するとしてよい。例えば、ビデオストリームが事前に記録されている場合、圧縮プロセスは、各フレーム領域を第1のステップでレンダリングして、どの領域が変化を含み、どの領域が変化を含まないか判断するべく、実行され得る。第2のパスにおいて、圧縮プロセスは、節約された帯域幅の量に基づいて、所与のフレームにおいて1以上の領域のビデオ品質を上げるとしてよい。リアルタイムビデオストリームの場合、例えば、ビデオゲームのゲームロジックによって生成されるビデオストリームの場合、圧縮プロセスは、統計学的な方法を利用して履歴に基づいて各領域の相対的な帯域幅利用率をモニタリングして、画像品質を上げることによって帯域幅をよりアクティブな領域に割り当てるとしてよい。例えば、時間スライドウィンドウにおいて送信された領域フレームの数、および、フレーム領域データの平均サイズに基づいて、圧縮プロセスでは、各領域の平均帯域幅利用率を算出するとしてよい。他の実施例によると、圧縮プロセスは実際には、ある期間には送信されるフレームが少ないと仮定して、相対的にアクティブでない領域の解像度または画質を上げるとしてよい。
図3は、1以上の位置決め用透明ビデオストリームを含む本発明の別の実施例を示す。当該ビデオストリームの画素幅および/または高さは、対象フレームがブラウザによってレンダリングされる位置を並進させるように変調され得る。図3は、クライアント20とサーバ30との間に複数のTCP接続325a−hがあることを示している。クライアントがレンダリングするビデオフレーム全体は、レンダリングされたフレーム領域を複数含む。この一部は、統計を利用して位置およびサイズが決まるが、他の領域は、サイズまたは位置が動的に変更されるとしてよい。これについて以下でより詳細に説明する。TCP接続325a−dはそれぞれ、ビデオフレーム全体を構成する領域1−4に対応する。TCP接続325e−gは、位置決めフレーム5、6、7に対応し、TCP接続325hは、フレーム領域Tの並進に対応する。
図示している実施例では、フレーム領域1−4は、M−JPEGストリームで送信されるバックグラウンド画像としてレンダリングされる。位置決めフレームは、フレーム領域のバックグラウンド画像上に重ねられる透明なフレームとしてレンダリングされ、ターゲットフレーム領域Tと同じ層にある。位置決めフレームは、透明フレームをサポートするPNG形式、GIF形式または任意のその他の形式を利用してレンダリングされるとしてよい。位置決めフレームは、実質的に透明であり、画素がアルファチャネルまたは透明チャネルで透明値で符号化されているので、ユーザには見えない。ターゲットフレームTは、ブラウザによってバックグラウンド画像フレームに重ねられるフレームとしてレンダリングされる。一部の実施例では、ターゲットフレームTは、シーン内の主要または主なオブジェクト、例えば、一人称シューティングビデオゲームでの銃、または、一人称ドライブゲームでの車等をレンダリングするために用いられるとしてよい。マスクを用いて、ターゲットフレームでレンダリングされた主要オブジェクトの周囲を取り囲む透明領域を画定するとしてよい。バックグラウンドフレーム領域1−4は、シーンの残りの要素、例えば、風景等のオブジェクトを含むとしてよい。したがって、一実施例によると、1以上のオブジェクトは複数のTフレームで別々にレンダリングされ、1以上の他のオブジェクトはフレーム領域1−4でレンダリングされる。フレーム領域1−4をクライアント20に対して生成、レンダリング、圧縮および送信することは、上述したように、略同じ動作である。さらに、バックグラウンドフレーム領域の数は、4より多く、例えば、上述したように16個のフレーム領域を設けるとしてもよい。また、バックグラウンドフレームは1個であってもよいし、バックグラウンドフレームは無いとしてもよい。
位置決めフレーム5−7およびターゲットフレームTは、クライアントアプリケーションによって、同一層にレンダリングされる。図示されている実施例では、ターゲットフレームTは、位置決めフレームに隣接して配置されレンダリングされている。一実施例によると、これは、HTMLテーブル要素を含むベースHTMLドキュメントを送信することによって、実現され得る。HTMLテーブルは、2×2のテーブルであってよく、セルのうち3つは、位置決めフレーム5−7に対応し、ターゲットフレームは残りの1つのセル(例えば、右上のセル)に対応する。HTMLテーブルは、ディスプレイの隅に固定または位置決めされ得る。ターゲットフレームを並進させるべく、他のセルでレンダリングされている位置決めフレームの画像サイズを変更して、位置決めフレームのうち1以上を拡大および縮小すると、ターゲットフレームが観察者からは並進しているように見えるようにするとしてよい。水平方向または垂直方向の移動のみが望まれる場合、1×2または2×1のテーブルを利用することができる。位置決めフレーム5−7は、バックグラウンドフレーム3と相対的に位置合わせされる。しかし、位置決めフレームはさらに、ディスプレイ全体または他のバックグラウンドフレームと相対的に位置合わせされるとしてもよい。したがって、位置決めフレーム5−7の幅または高さを変化させることで、ブラウザは、ターゲットフレームをレンダリングする位置を、バックグラウンドフレーム領域およびディスプレイ全体と相対的に、変化させることができる。ターゲットフレームTが1個のフレームの隅に固定され得る実施例によると、利用する位置決めフレームは1つのみとしてよい。一実施例によると、一のセルを持つHTMLテーブルまたはHTML DIVセクションを利用することができる。この場合、バックグラウンド画像は、透明な位置決めフレームであり、ターゲット画像は、テーブルまたはDIVセクションの一辺または隅に位置決めされる。このような実施例では、バックグラウンド位置決めフレーム画像の幅または高さを変更することで、ターゲットフレームをレンダリングする位置をディスプレイ上で変更する。本発明の実施例は、戦略として、位置決めフレームの1以上のアスペクト比を変調して、ブラウザに、ターゲットフレームをレンダリングおよび表示する位置を変更させる効果を実現する。
一実施例によると、これは、TCP接続325e−gを介して、選択された高さおよび幅を持つ透明なビデオフレームデータを、mjpegストリームとして、送信することによって、実現され得る。ターゲットフレームを移動させることが所望されているので、位置決めロジックは、位置決めフレームのうち1以上の高さまたは幅をどのように変更するかを決定して、選択された高さまたは幅を持つ新しいフレームを送信するとしてよい。図4は、ビデオゲームの実施例で用いられるプロセスの一例を示す図である。例えば、本発明を教示するべく、当該プロセスが一人称シューティングゲーム、たとえば、エレクトロニック・アーツ・インコーポレーテッド(Electronic Arts,Inc.、米国カリフォルニア州レッドウッドシティ)が公開しているクライシス(Crysis(商標))とともに利用されると仮定する。このようなゲームでは、銃は、ターゲットフレームでレンダリングすることができ、残りのゲームオブジェクトおよびシーンは、バックグラウンドフレーム領域でレンダリングされる。図4で図示しているように、サーバ20は、一実施例によると、クライアント30から入力/出力入力を受信するとしてよく(402)、例えば、マウスのクリックまたは移動、ジョイスティックの移動、キーストローク、ゲームコントローラの移動等によるデータを受信するとしてよい。一実施例によると、最初にリモートクライアントに送信され、さまざまなストリームへのインライン参照を含む構造化ドキュメントはさらに、I/Oデバイス入力を受信して、入力を処理のためにサーバへと送信するべく、JavaScript(登録商標)モジュールまたは他のコードオブジェクトを含むとしてよい。サーバ20は、入力/出力入力に基づいて、ゲーム状態を調整するべく、ゲームロジックを実行するとしてよい(404)。例えば、プレーヤキャラクタ、プレーヤ以外のキャラクタ、建物等、1以上のオブジェクトのゲーム内での状態を調整するとしてよい。サーバ20は、ターゲットフレームに含まれるオブジェクト以外の全てのオブジェクトを含むバックグラウンド用のビデオフレームをレンダリングするとしてよく(406)、銃または車等のターゲットフレームに対応付けられている1以上のオブジェクトの状態に応じて、複数のターゲットフレームをそれぞれ別個にレンダリングするとしてよい(408)。一実施例によると、ターゲットゲーム用のレンダリングプロセスは、オブジェクトの状態パラメータ、例えば、位置および向きに応じて、ターゲットオブジェクトをレンダリングするが、レンダリングされたオブジェクトをターゲットフレーム内でセンタリングする。サーバ20はさらに、ターゲットオブジェクトに基づいて、ターゲットフレーム自体の位置パラメータを算出する。つまり、クライアントのディスプレイにおいて、ターゲットフレームをどこにレンダリングすべきかに関する座標を算出する。これらの位置パラメータは、フレームを所望の位置に位置決めするために必要な位置決めフレームの幅および高さを決定する。サーバ20はこの後、領域、位置決めフレームおよびターゲットフレームを圧縮して、圧縮されたフレームを書き込んで、領域、ターゲットフレームおよび位置決めフレームを各ソケット接続325a−hへと送信する。
本発明の一部の実施例は、大きな利点を持つとしてよい。モバイルデバイス、ラップトップコンピュータまたはデスクトップコンピュータは、高品質ビデオを視聴するために、および/または、高品質ビデオゲームをプレイするために、特定用途向けのクライアントアプリケーションまたはコーデックをインストールする必要がなくなるとしてよい。例えば、上述した実施例によれば、ユーザは、高精細グラフィクス品質を持つビデオゲームを、ブラウザのみでプレイすることができる。例えば、ユーザは、携帯電話がホストとなっているブラウザを用いてサイトにアクセスするとしてよいし、ビデオゲームをプレイするために単にページにアクセスするとしてもよい。別の実施例では、ユーザは、単にHTMLベースの電子メールドキュメントを受信することによって、高品質ビデオゲームをプレイするとしてよい。
特定の実施形態は、ネットワーク環境で実施するとしてよい。図6は、ネットワーク環境600の一例を示す図である。ネットワーク環境600は、1以上のサーバ620と、1以上のクライアント630とを互いに結合するネットワーク610を含む。特定の実施形態では、ネットワーク610は、イントラネット、エクストラネット、仮想プライベートネットワーク(VPN)、ローカルエリアネットワーク(LAN)、ワイヤレスLAN(WLAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、通信ネットワーク、衛星ネットワーク、インターネットの一部、または、別のネットワーク610、または、これらのネットワーク610の2以上を組み合わせたものである。本開示は、任意の適切なネットワーク610について考慮する。
1以上のリンク650は、サーバ620またはクライアント630を、ネットワーク610に結合する。具体的な実施形態では、1以上のリンク650はそれぞれ、1以上の有線リンク、無線リンク、または、光リンク650を含む。特定の実施形態では、1以上のリンク650はそれぞれ、イントラネット、エクストラネット、VPN、LAN、WLAN、WAN、MAN、通信ネットワーク、衛星ネットワーク、インターネットの一部、または、別のリンク650、または、これらのリンク650の2以上の組み合わせを含む。本開示は、サーバ620およびクライアント630をネットワーク610に結合する任意の適切なリンク650を考える。
特定の実施形態では、各サーバ620は、一体的なサーバであってもよいし、または、複数のコンピュータまたは複数のデータセンターにわたる分散型サーバであってもよい。サーバ620は、さまざまな種類であってよく、例えば、これらに限定されることはないが、ウェブサーバ、ニュースサーバ、メールサーバ、メッセージサーバ、広告サーバ、ファイルサーバ、アプリケーションサーバ、交換サーバ、データベースサーバ、または、プロキシサーバであってよい。特定の実施形態によると、各サーバ620は、サーバ620が実現またはサポートしている適切な機能を実行するべく、ハードウェアコンポーネント、ソフトウェアコンポーネント、または、組込ロジックコンポーネントあるいは2以上のこのようなコンポーネントの組み合わせを含むとしてよい。例えば、ウェブサーバは概して、ウェブページ、または、ウェブページの特定の要素を含むウェブサイトをホストすることが可能である。より具体的に説明すると、ウェブサーバは、HTMLファイルまたはその他の種類のファイルをホストするとしてよい。または、要求に応じて動的にファイルを作成または構成して、クライアント630からのHTTP要求またはその他の要求に応じて、クライアント630に渡すとしてもよい。メールサーバは通常、電子メールサービスをさまざまなクライアント630に提供することが可能である。データベースサーバは通常、1以上のデータストアに格納されているデータを管理するためのインターフェースを提供することが可能である。
特定の実施形態では、各クライアント630は、ハードウェアコンポーネント、ソフトウェアコンポーネント、または、組込ロジックコンポーネントまたはこのようなコンポーネントを2以上組み合わせたものを含み、クライアント630が実現またはサポートする適切な機能を実行可能な電子デバイスであってよい。例えば、これらに限定されるものではないが、クライアント630は、デスクトップコンピュータシステム、ノート型コンピュータシステム、ネットブックコンピュータシステム、手持ち電子機器、または、携帯電話であってよい。クライアント630は、クライアント630のネットワークユーザが、ネットワーク610にアクセスできるようにするとしてよい。クライアント630は、例えば、マイクロソフト社のインターネット・エクスプローラまたはモジラのファイヤフォックス等のウェブブラウザを含むとしてよく、グーグル・ツールバーまたはヤフー・ツールバー等、1以上のアドオン、プラグインまたはその他の拡張機能を含むとしてもよい。クライアント630は、ユーザが、他のクライアント630のユーザと通信できるようにするとしてよい。本開示では、任意の適切なクライアント630を考慮する。
特定の実施形態によると、1以上のデータストレージ640が、1以上のリンク650を介して、1以上のサーバ620に通信可能に結合されているとしてよい。特定の実施形態によると、データストレージ640は、さまざまな種類の情報を格納するために利用されるとしてよい。特定の実施形態によると、データストレージ640に格納されている情報は、特定のデータ構造に従ってまとめられるとしてよい。特定の実施形態は、サーバ620またはクライアント630が、データストレージ640に格納されている情報を管理(例えば、取得、修正、追加または削除)できるようにするインターフェースを提供するとしてよい。
特定の実施形態では、各サーバ620は、1以上のクライアント630に対して同時にサービスを提供するとしてよく、サポートするクライアント630についてレンダリングを実行するとしてよい。サーバ620は、レンダリングされた画像をビデオストリームに符号化することによって、サポートしている特定のクライアント630に対してレンダリングされた画像を送信するとしてよい。尚、ビデオストリームでは、レンダリングされた各画像は、一の特定のフレームである。サーバ620は、ビデオストリームをクライアント630に送信する。クライアント630は、ビデオストリームを受信すると、ビデオストリームを表示用の画像フレームに復号するとしてよい。米国特許出願第12/579,300号および第12/709,343号はともに、参照により本願に組み込まれ、圧縮ビデオストリームを1以上のクライアント630に配信するために用いられるビデオコーデックを開示している。また、上記の出願はさらに、各サーバ620がGPUの並列処理リソースを利用してクライアント630に対してビデオデータを生成およびストリーミングする方法を開示している。
特定の実施形態は、ハードウェア、ソフトウェア、または、ハードウェアおよびソフトウェアの組み合わせとして実現されるとしてよい。例えば、これらに限定されないが、1以上のコンピュータシステムは、本明細書で図示または説明している1以上のプロセスの1以上のステップを実行するべく、特定のロジックまたはソフトウェアを実行するとしてよい。コンピュータシステムのうち1以上は、一体型または分散型であってよく、適切な場合は、複数のコンピュータシステムまたは複数のデータセンターにわたっているとしてよい。本開示は、任意の適切なコンピュータシステムを考慮している。特定の実施形態では、本明細書で図示または説明している1以上のプロセスの1以上のステップを実行することは、必ずしも1以上の特定の地理的な位置に限定される必要はなく、必ずしも時間に関して制限がある必要はない。一例として、これらに限定されるものではないが、1以上のコンピュータシステムは、「リアルタイム」で、「オフライン」で、「バッチモード」で機能を実行するとしてよく、または、適切な場合には、これらの方式を適宜組み合わせて実行するとしてよい。コンピュータシステムのうち1以上は、適切な場合には、機能のうち1以上の部分を、さまざまなタイミングで、さまざまな場所で、さまざまな処理方法で実行するとしてよい。本明細書において「ロジック」という場合、適切な場合には、ソフトウェアを含むとしてもよいし、その逆もまた然りであるとしてよい。「ソフトウェア」という場合、適切な場合には、1以上のコンピュータプログラムを含むとしてもよいし、その逆もまた然りであるとしてよい。「ソフトウェア」という場合、適切な場合には、データ、命令、または、両方を含むとしてもよいし、その逆もまた然りであるとしてよい。同様に、「データ」という場合、適切な場合には、命令を含むとしてもよいし、その逆もまた然りであるとしてよい。
1以上のコンピュータ可読格納媒体は、特定の実施形態を実装するソフトウェアを格納または具現化するとしてよい。コンピュータ可読媒体は、適切な場合において、担持、通信、格納、保持、維持、伝搬、保有、記憶、送信、搬送等の方法でソフトウェアを具現化することが可能な任意の媒体であってよい。コンピュータ可読媒体は、適切な場合において、生物学的媒体、化学的媒体、電子的媒体、電磁的媒体、赤外線媒体、磁気媒体、光学媒体、量子媒体、または、その他の適切な媒体またはこれらの媒体の2以上の組み合わせであってよい。コンピュータ可読媒体は、1以上のナノメータ単位のコンポーネントを含むとしてよく、ナノメータ単位の設計または製造を具現化するとしてよい。コンピュータ可読格納媒体の例には、これらに限定されないが、コンパクトディスク(CD)、フィールドプログラマブルゲートアレイ(FPGA)、フロッピー(登録商標)ディスク、フロプティカルディスク、ハードディスク、ホログラフィックストレージデバイス、集積回路(IC)(特定用途向け集積回路(ASIC)等)、磁気テープ、キャッシュ、プログラマブルロジックデバイス(PLD)、ランダムアクセスメモリ(RAM)デバイス、リードオンリーメモリ(ROM)デバイス、半導体メモリデバイスおよびその他の適切なコンピュータ可読格納媒体が含まれる。
特定の実施形態を実装するソフトウェアは、適切な場合には、任意の適切なプログラミング言語(プロシージャ言語またはオブジェクト指向型言語)で記述されているとしてよい。または、複数のプログラミング言語の組み合わせで記述されるとしてよい。任意の適切な種類のコンピュータシステム(シングルプロセッサコンピュータシステムまたはマルチプロセッサコンピュータシステム等)またはシステムは、適切な場合には、特定の実施形態を実装するソフトウェアを実行するとしてよい。汎用コンピュータシステムは、適切な場合には、特定の実施形態を実装するソフトウェアを実行するとしてよい。
例えば、図7は、特定の実施形態のうち1以上の部分を実施するのに適したコンピュータシステム700の一例を示す図である。本開示は、特定の構成で特定のコンポーネントを備える特定のコンピュータシステム700を説明および図示するが、任意の適切な構成で任意の適切なコンポーネントを備える任意の適切なコンピュータシステムを考慮する。さらに、コンピュータシステム700は、任意の適切な物理的形態を持つとしてよく、例えば、1以上の集積回路(IC)、1以上のプリント配線基板(PCB)、1以上の手持ちデバイスまたはその他のデバイス(例えば、携帯電話またはPDA)、1以上のパーソナルコンピュータ、または、1以上のスーパーコンピュータであってよい。
システムバス710は、コンピュータシステム700のサブシステムを互いに結合する。本明細書では、「バス」というと、通常の機能を果たす1以上のデジタルシグナルラインを含む。本開示は、任意の適切なバスアーキテクチャを持つ任意の適切なバス構造(例えば、1以上のメモリバス、1以上の周辺機器バス、1以上のローカルバス、または、これらの組み合わせ)を含む任意の適切なシステムバス710を考慮する。バスアーキテクチャの例は、これらに限定されないが、インダストリ・スタンダード・アーキテクチャ(ISA)バス、エンハンスドISA(EISA)バス、ミクロ・チャネル・アークテクチャ(MCA)バス、ビデオ・エレクトロニクス・スタンダード・アソシエーション・ローカル(VLB)バス、ペリフェラル・コンポーネント・インターコネクト(PCI)バス、PCI−Express(PCI−X)バスおよびアクセラレーテッド・グラフィクス・ポート(AGP)バスを含む。
コンピュータシステム700は、一以上のプロセッサ720(または、中央演算処理装置(CPU))を備える。プロセッサ720は、命令、データまたはコンピュータアドレスを一時的にローカルに格納するキャッシュ722を含むとしてよい。プロセッサ720は、メモリ730を含む1以上のストレージデバイスに結合されている。メモリ730は、ランダムアクセスメモリ(RAM)732およびリードオンリーメモリ(ROM)734を含むとしてよい。データおよび命令は、プロセッサ720とRAM732との間で双方向に転送を行うとしてよい。データおよび命令は、ROM734からプロセッサ720へと一方向に転送を行うとしてよい。RAM732およびROM734は、任意の適切なコンピュータ可読格納媒体を含むとしてよい。
コンピュータシステム700は、プロセッサ720に双方向に結合されている固定ストレージ740を備える。固定ストレージ740は、ストレージ制御部752を介して、プロセッサ720に結合されているとしてよい。固定ストレージ740は、追加データ格納容量を提供するとしてよく、任意の適切なコンピュータ可読格納媒体を含むとしてよい。固定ストレージ740は、オペレーティングシステム(OS)742、1以上の実行ファイル744、1以上のアプリケーションまたはプログラム746、データ748等を格納するとしてよい。固定ストレージ740は通常、主要ストレージよりも低速の補助格納媒体(例えば、ハードディスク)である。適切な場合であれば、固定ストレージ740に格納されている情報は、仮想メモリとして、メモリ730に組み込まれるとしてよい。
プロセッサ720は、さまざまなインターフェースに結合されるとしてよい。例えば、グラフィクス制御部754、ビデオインターフェース758、入力インターフェース760、出力インターフェース762、および、格納インターフェース764に結合されるとしてよい。これらのインターフェースは、適切なデバイスにそれぞれ結合されるとしてよい。入力デバイスまたは出力デバイスの例は、これらに限定されないが、ビデオディスプレイ、トラックボール、マウス、キーボード、マイクロフォン、タッチセンサディスプレイ、トランスデューサカードリーダ、磁気テープリーダまたは紙テープリーダ、タブレット、スタイラス、音声認識機械または手書き認識機械、バイオメトリクスリーダ、または、コンピュータシステムを含む。ネットワークインターフェース756は、プロセッサ720を別のコンピュータシステムまたはネットワーク780に結合するとしてよい。ネットワークインターフェース756により、プロセッサ720は、特定の実施形態のステップを実行する間において、ネットワーク780との間で情報の送受信を行うとしてよい。特定の実施形態はプロセッサ720でのみ実行されるとしてよい。特定の実施形態は、プロセッサ720で、そして、協働する1以上のリモートプロセッサで実行するとしてよい。
コンピュータシステム700がネットワーク780に接続されているネットワーク環境において、コンピュータシステム700は、ネットワーク780に接続されている他のデバイスと通信を行うとしてよい。コンピュータシステム700は、ネットワークインターフェース756を介して、ネットワーク780と通信を行うとしてよい。例えば、コンピュータシステム700は、ネットワークインターフェース756において1以上の入力パケットとしてネットワーク780から情報(例えば、別のデバイスからの要求または応答)を受信するとしてよい。そして、メモリ730は、後続の処理のために入力パケットを格納するとしてよい。コンピュータシステム700は、ネットワークインターフェース756から、1以上の出力パケットとして、メモリ730が格納していた情報(例えば、別のデバイスへの要求または応答)をネットワーク780に送信するとしてよい。プロセッサ720は、必要性に応じて、メモリ730内の入力パケットまたは出力パケットに、処理を目的として、アクセスするとしてよい。
コンピュータシステム700は、1以上の入力デバイス766(キーパッド、キーボード、マウス、スタイラス等を含むとしてよい)、1以上の出力デバイス768(1以上のディスプレイ、1以上のスピーカ、1以上のプリンタ等を含むとしてよい)、1以上のストレージデバイス770、および、1以上の格納媒体772を備えるとしてよい。入力デバイス766は、コンピュータシステム700の外部に設けられるとしてもよいし、内部に設けられるとしてもよい。出力デバイス768は、コンピュータシステム700の外部に設けられるとしてもよいし、内部に設けられるとしてもよい。格納デバイス770は、コンピュータシステム700の外部に設けられるとしてもよいし、内部に設けられるとしてもよい。格納媒体772は、コンピュータシステム700の外部に設けられるとしてもよいし、内部に設けられるとしてもよい。
特定の実施形態は、本明細書で説明または図示した1以上のプロセスの1以上のステップを実行するべくソフトウェアを具現化する1以上のコンピュータ可読格納媒体を含む1以上のコンピュータストレージ製品を含む。特定の実施形態によると、媒体、ソフトウェア、または、その両方の1以上の部分は特に、本明細書で説明または図示している1以上のプロセスの1以上のステップを実行するべく設計または製造されているとしてよい。これに加えて、または、これに代えて、特定の実施形態では、媒体、ソフトウェア、または、その両方の1以上の部分は通常、本明細書で説明または図示しているプロセスに特有の設計または製造を行うことなく利用可能であるとしてよい。コンピュータ可読格納媒体の例には、これらに限定されないが、CD(CD−ROM等)、FPGA,フロッピー(登録商標)ディスク、フロプティカルディスク、ハードディスク、ホログラフィックストレージデバイス、IC(例えば、ASIC)、磁気テープ、キャッシュ、PLD、RAMデバイス、ROMデバイス、半導体メモリデバイスおよびその他の適切なコンピュータ可読格納媒体が含まれる。特定の実施形態では、ソフトウェアは、コンパイラが生成する機械コード、または、コンピュータがインタプリタを用いて実行する高級コードを含む1以上のファイルであってよい。
一例を挙げると、これに限定されるものではないが、メモリ730は、ソフトウェアを具現化する1以上のコンピュータ可読格納媒体を有するとしてよい。そして、コンピュータシステム700は、プロセッサ720がソフトウェアを実行した結果として、本明細書に図示または説明した特定の機能を提供するとしてよい。メモリ730はソフトウェアを格納するとしてよく、プロセッサ720はソフトウェアを実行するとしてよい。メモリ730は、ソフトウェアを具現化する大容量格納デバイス730内のコンピュータ可読格納媒体からソフトウェアを読み出すとしてよいし、または、ネットワークインターフェース756を介して1以上の他のソースからソフトウェアを読み出すとしてよい。プロセッサ720は、ソフトウェアを実行する場合、本明細書で説明または図示した1以上のプロセスの1以上のステップを実行するとしてよい。そのようなステップは、特定の要求に応じて、メモリ730内のストレージの1以上のデータ構造を定義すること、および、ソフトウェアの1以上の部分による指示に応じてデータ構造のうち1以上を修正することを含むとしてよい。これに加えて、または、これに代えて、コンピュータシステム700は、回路においてハードワイヤード接続またはその他の方法で具現化されているロジックが、本明細書に図示または説明されている1以上のプロセスの1以上のステップを実行するソフトウェアに代えて、または、ソフトウェアとともに動作することによって、本明細書に図示または説明されている特定の機能を提供するとしてよい。本開示は、特定の要求に応じて、ハードウェアおよびソフトウェアの任意の適切な組み合わせを含む。
特定の実施形態によると、コンピュータシステム700は、1以上のグラフィクスプロセッシングユニット(GPU)724を備えるとしてよい。特定の実施形態では、GPU724は、グラフィクスレンダリングで通常利用される数値演算を行う1以上の集積回路および/またはプロセッシングコアを含むとしてよい。一部の実施形態によると、GPU724は、特別なグラフィクスユニット命令セットを利用するとしてよい。一方、他の実施例では、GPUはCPUと同様の(例えば、修正版x86の)命令セットを利用するとしてよい。グラフィクスプロセッシングユニット724は、複数のグラフィクスプリミティブ演算、例えば、ブリッティング、テクスチャマッピング、ピクセルシェーディング、フレームバッファリング等を実施するとしてよい。特定の実施形態によると、GPU724は、グラフィクスアクセラレータ、汎用GPU(GPGPU)または任意のその他の適切な処理部であってよい。
特定の実施形態では、GPU724は、カードスロットを介してハードウェアシステムアーキテクチャに取着されているグラフィクスカードまたはディスプレイカードで具現化されるとしてよい。他の実施例によると、GPU724は、コンピュータシステムアーキテクチャのマザーボードに集積化されているとしてよい。適切なグラフィクスプロセッシングユニットは、アドバンスドマイクロデバイス(商標)AMD R7XXをベースとするGPUデバイス(ラデオン(Radeon)(商標)HD 4XXX)、AMD R8XXをベースとするGPUデバイス(ラデオン(Radeon)(商標)HD 5XXX)、インテル(商標)ララビー(Larabee)をベースとするGPUデバイス(未リリース)、nVidia(商標)8シリーズGPU、nVidia(商標)9シリーズGPU、nVidia(商標)100シリーズGPU、nVidia(商標)200シリーズGPU、および、任意のその他のDXII機能付きGPUを含むとしてよい。
本開示は特定の順序で特定の処理が実行されるものとして図示または説明しているが、本開示は任意の適切な処理は任意の適切な順序で実行されるものと考慮する。さらに、本開示は、任意の適切な処理が任意の適切な順序で1回以上繰り返されるものと考慮する。 本開示は、順次実行されるものとして特定の処理を図示または説明しているが、本開示は、適切な場合には、任意の適切な処理はほぼ同時に実行されるものと考慮する。本明細書に図示または説明されている任意の適切な処理または処理群は、適切な場合には、オペレーティングシステムまたはカーネル等、別のプロセスによって割り込み、中断等、制御されるとしてよい。処理は、オペレーティングシステム環境で動作するとしてもよいし、または、システム処理の全てまたは大部分を占めるスタンドアロンルーチンとして動作するとしてもよい。
本開示は、本明細書に記載した実施形態例に対する、当業者が想到し得る変更、差し替え、変形、変化および修正を全て含む。例えば、MJPEG−2000、ポータブルネットワークグラフィクス(PNG)等、他の圧縮形式を利用するとしてよい。同様に、適切な場合には、請求項は、本明細書に記載した実施形態例に対する、当業者が想到し得る変更、差し替え、変形、変化および修正を全て含む。

Claims (12)

  1. 方法であって、
    複数のビデオストリームをレンダリングする段階であって、前記複数のビデオストリームはそれぞれが、コンポジットビデオ画像のうち一の一意的な領域に対応し、一連のビデオフレームを有する、レンダリングする段階と、
    前記複数のビデオストリームの複数の前記ビデオフレームが生成されると、対応するソケット接続に前記複数のビデオフレームを選択的に書き込む段階と、
    を備え、
    前記複数のビデオフレームを選択的に書き込む段階は、前記コンポジットビデオ画像の前記一意的な領域のそれぞれについて、
    現在のビデオフレームが、前記一意的な領域に対応する既にレンダリングされたフレームとは知覚的に異なるか否かを判断する段階と、
    前記現在のビデオフレームが前記既にレンダリングされたフレームとは知覚的に異なる場合、前記ソケット接続に前記現在のビデオフレームを書き込む段階と
    を有し、
    前記方法は更に、
    構造化ドキュメントをリモートホストに送信する段階であって、前記構造化ドキュメントが前記複数のビデオストリームへの複数のインライン参照を含み、当該複数のインライン参照によって、前記リモートホストが前記複数のビデオストリームを要求可能となる、構造化ドキュメントをリモートホストに送信する段階
    を備える、方法。
  2. 前記複数のビデオストリームの前記複数のビデオフレームを、ステートレス圧縮形式を利用して、符号化する段階をさらに備える請求項1に記載の方法。
  3. 前記ステートレス圧縮形式は、M−JPEG形式である請求項2に記載の方法。
  4. 前記ソケット接続は、トランスミッションコントロールプロトコル(TCP)ソケット接続である請求項1から3のいずれか一項に記載の方法。
  5. 前記複数のインライン参照は、前記構造化ドキュメントに埋め込まれているテーブルを構成する対応する複数のセルに含まれる請求項1から4のいずれか一項に記載の方法。
  6. 前記複数のインライン参照は、前記構造化ドキュメントに埋め込まれている対応する複数のDIVセクションエレメントに含まれる請求項1から4のいずれか一項に記載の方法。
  7. コンピュータに、
    複数のビデオストリームをレンダリングする手順であって、前記複数のビデオストリームはそれぞれ、コンポジットビデオ画像のうち一の一意的な領域に対応し、一連のビデオフレームを有する、レンダリングする手順と、
    前記複数のビデオストリームの複数の前記ビデオフレームが生成されると、対応するソケット接続に前記複数のビデオフレームを選択的に書き込む手順と、
    を実行させ、
    前記複数のビデオフレームを選択的に書き込む手順は、前記一意的な領域のそれぞれについて、
    現在のビデオフレームが、前記一意的な領域に対応する既にレンダリングされたフレームとは知覚的に異なるか否かを判断する手順と、
    前記現在のビデオフレームが前記既にレンダリングされたフレームとは知覚的に異なる場合、前記ソケット接続に前記現在のビデオフレームを書き込む手順と
    を含み、
    前記コンピュータにさらに、
    構造化ドキュメントをリモートホストに送信させる手順であって、前記構造化ドキュメントが前記複数のビデオストリームへの複数のインライン参照を含み、当該複数のインライン参照によって、前記リモートホストが前記複数のビデオストリームを要求可能となる、構造化ドキュメントをリモートホストに送信させる手順
    を実行させる、プログラム。
  8. 前記コンピュータにさらに、ステートレス圧縮形式を利用して前記複数のビデオストリームの前記複数のビデオフレームを符号化させる手順を実行させる請求項7に記載のプログラム。
  9. 前記ステートレス圧縮形式は、M−JPEG形式である請求項8に記載のプログラム。
  10. 前記ソケット接続は、トランスミッションコントロールプロトコル(TCP)ソケット接続である請求項7から9のいずれか一項に記載のプログラム。
  11. 前記複数のインライン参照は、前記構造化ドキュメントに埋め込まれているテーブルを構成する複数の対応するセルに含まれる請求項7から10のいずれか一項に記載のプログラム。
  12. 前記複数のインライン参照は、前記構造化ドキュメントに埋め込まれている対応する複数のDIVセクションエレメントに含まれる請求項7から10のいずれか一項に記載のプログラム。
JP2014126106A 2010-10-19 2014-06-19 ステートレス圧縮を利用したコンポジットビデオ画像をストリーミングする方法、プログラムおよび装置 Active JP5954802B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/907,906 2010-10-19
US12/907,906 US9998749B2 (en) 2010-10-19 2010-10-19 Composite video streaming using stateless compression

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2013535048A Division JP5567744B2 (ja) 2010-10-19 2011-10-19 ステートレス圧縮を利用したコンポジットビデオ画像をストリーミングする方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2014222894A true JP2014222894A (ja) 2014-11-27
JP5954802B2 JP5954802B2 (ja) 2016-07-20

Family

ID=45934123

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2013535048A Active JP5567744B2 (ja) 2010-10-19 2011-10-19 ステートレス圧縮を利用したコンポジットビデオ画像をストリーミングする方法およびプログラム
JP2014126106A Active JP5954802B2 (ja) 2010-10-19 2014-06-19 ステートレス圧縮を利用したコンポジットビデオ画像をストリーミングする方法、プログラムおよび装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2013535048A Active JP5567744B2 (ja) 2010-10-19 2011-10-19 ステートレス圧縮を利用したコンポジットビデオ画像をストリーミングする方法およびプログラム

Country Status (9)

Country Link
US (2) US9998749B2 (ja)
EP (1) EP2630804A4 (ja)
JP (2) JP5567744B2 (ja)
KR (2) KR101697411B1 (ja)
CN (1) CN103329553B (ja)
AU (1) AU2011317052B2 (ja)
CA (1) CA2814809C (ja)
NZ (2) NZ630857A (ja)
WO (1) WO2012054618A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019516297A (ja) * 2016-04-08 2019-06-13 ヴィズビット インコーポレイテッド ビューを意識した360度ビデオストリーミング

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7519274B2 (en) 2003-12-08 2009-04-14 Divx, Inc. File format for multiple track digital data
US8472792B2 (en) 2003-12-08 2013-06-25 Divx, Llc Multimedia distribution system
US7515710B2 (en) 2006-03-14 2009-04-07 Divx, Inc. Federated digital rights management scheme including trusted systems
CN101861583B (zh) 2007-11-16 2014-06-04 索尼克Ip股份有限公司 用于多媒体文件的分级及简化索引结构
US8997161B2 (en) * 2008-01-02 2015-03-31 Sonic Ip, Inc. Application enhancement tracks
CN105072454B (zh) 2009-01-07 2019-04-19 索尼克Ip股份有限公司 针对在线内容的媒体指南的特定化、集中式、自动化创建
EP2507995A4 (en) 2009-12-04 2014-07-09 Sonic Ip Inc SYSTEMS AND METHODS FOR TRANSPORTING ELEMENTARY BIT TRAIN CRYPTOGRAPHIC MATERIAL
WO2011130283A1 (en) * 2010-04-12 2011-10-20 Google Inc. Row heights in electronic documents
US9247312B2 (en) * 2011-01-05 2016-01-26 Sonic Ip, Inc. Systems and methods for encoding source media in matroska container files for adaptive bitrate streaming using hypertext transfer protocol
WO2013033458A2 (en) 2011-08-30 2013-03-07 Divx, Llc Systems and methods for encoding and streaming video encoded using a plurality of maximum bitrate levels
US8818171B2 (en) 2011-08-30 2014-08-26 Kourosh Soroushian Systems and methods for encoding alternative streams of video for playback on playback devices having predetermined display aspect ratios and network connection maximum data rates
US9467708B2 (en) 2011-08-30 2016-10-11 Sonic Ip, Inc. Selection of resolutions for seamless resolution switching of multimedia content
US8909922B2 (en) 2011-09-01 2014-12-09 Sonic Ip, Inc. Systems and methods for playing back alternative streams of protected content protected using common cryptographic information
US8964977B2 (en) 2011-09-01 2015-02-24 Sonic Ip, Inc. Systems and methods for saving encoded media streamed using adaptive bitrate streaming
US20130179199A1 (en) 2012-01-06 2013-07-11 Rovi Corp. Systems and methods for granting access to digital content using electronic tickets and ticket tokens
KR101609812B1 (ko) 2012-04-09 2016-04-20 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 프로세싱 로드 분배
US9197685B2 (en) 2012-06-28 2015-11-24 Sonic Ip, Inc. Systems and methods for fast video startup using trick play streams
US9143812B2 (en) 2012-06-29 2015-09-22 Sonic Ip, Inc. Adaptive streaming of multimedia
US10452715B2 (en) 2012-06-30 2019-10-22 Divx, Llc Systems and methods for compressing geotagged video
WO2014015110A1 (en) 2012-07-18 2014-01-23 Verimatrix, Inc. Systems and methods for rapid content switching to provide a linear tv experience using streaming content distribution
US20140028679A1 (en) * 2012-07-30 2014-01-30 Nvidia Corporation Render-assisted compression for remote graphics
US8997254B2 (en) 2012-09-28 2015-03-31 Sonic Ip, Inc. Systems and methods for fast startup streaming of encrypted multimedia content
US8914836B2 (en) 2012-09-28 2014-12-16 Sonic Ip, Inc. Systems, methods, and computer program products for load adaptive streaming
US9313510B2 (en) 2012-12-31 2016-04-12 Sonic Ip, Inc. Use of objective quality measures of streamed content to reduce streaming bandwidth
US9191457B2 (en) 2012-12-31 2015-11-17 Sonic Ip, Inc. Systems, methods, and media for controlling delivery of content
US9264475B2 (en) 2012-12-31 2016-02-16 Sonic Ip, Inc. Use of objective quality measures of streamed content to reduce streaming bandwidth
US9906785B2 (en) 2013-03-15 2018-02-27 Sonic Ip, Inc. Systems, methods, and media for transcoding video data according to encoding parameters indicated by received metadata
US10397292B2 (en) 2013-03-15 2019-08-27 Divx, Llc Systems, methods, and media for delivery of content
US9344517B2 (en) 2013-03-28 2016-05-17 Sonic Ip, Inc. Downloading and adaptive streaming of multimedia content to a device with cache assist
US9094737B2 (en) 2013-05-30 2015-07-28 Sonic Ip, Inc. Network video streaming with trick play based on separate trick play files
US9247317B2 (en) 2013-05-30 2016-01-26 Sonic Ip, Inc. Content streaming with client device trick play index
US9967305B2 (en) 2013-06-28 2018-05-08 Divx, Llc Systems, methods, and media for streaming media content
US9343112B2 (en) 2013-10-31 2016-05-17 Sonic Ip, Inc. Systems and methods for supplementing content from a server
JP5504370B1 (ja) * 2013-10-31 2014-05-28 株式会社 ディー・エヌ・エー 動画をクライアント端末に表示させるサーバ及び方法
WO2015104846A1 (en) * 2014-01-09 2015-07-16 Square Enix Holdings Co., Ltd. Method and system of creating and encoding video game screen images for transmission over a network
US20150265921A1 (en) * 2014-03-21 2015-09-24 Google Inc. Game-Aware Compression Algorithms for Efficient Video Uploads
US9866878B2 (en) 2014-04-05 2018-01-09 Sonic Ip, Inc. Systems and methods for encoding and playing back video at different frame rates using enhancement layers
US10660533B2 (en) 2014-09-30 2020-05-26 Rapsodo Pte. Ltd. Remote heart rate monitoring based on imaging for moving subjects
US11743402B2 (en) * 2015-02-13 2023-08-29 Awes.Me, Inc. System and method for photo subject display optimization
US20170249785A1 (en) * 2016-02-29 2017-08-31 Vreal Inc Virtual reality session capture and replay systems and methods
US10075292B2 (en) 2016-03-30 2018-09-11 Divx, Llc Systems and methods for quick start-up of playback
US10575007B2 (en) 2016-04-12 2020-02-25 Microsoft Technology Licensing, Llc Efficient decoding and rendering of blocks in a graphics pipeline
US10148989B2 (en) 2016-06-15 2018-12-04 Divx, Llc Systems and methods for encoding video content
US11197010B2 (en) * 2016-10-07 2021-12-07 Microsoft Technology Licensing, Llc Browser-based video decoder using multiple CPU threads
US10498795B2 (en) 2017-02-17 2019-12-03 Divx, Llc Systems and methods for adaptive switching between multiple content delivery networks during adaptive bitrate streaming
US11163588B2 (en) 2018-03-01 2021-11-02 Vreal Inc. Source code independent virtual reality capture and replay systems and methods
CN110278459A (zh) * 2018-03-16 2019-09-24 上海小麦互动企业发展有限公司 内容控制系统及其控制方法
CN113243112A (zh) * 2018-12-21 2021-08-10 皇家Kpn公司 流式传输体积视频和非体积视频
US10924625B2 (en) * 2019-03-20 2021-02-16 Xerox Corporation Dynamic compression acceleration using real-time image data entropy analysis
US11182949B2 (en) * 2019-07-25 2021-11-23 Dreamworks Animation Llc Pack tile
US11330030B2 (en) * 2019-07-25 2022-05-10 Dreamworks Animation Llc Network resource oriented data communication
CN112929673B (zh) * 2021-01-19 2022-04-01 Tcl华星光电技术有限公司 解码方法、解码设备及可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10313454A (ja) * 1997-05-12 1998-11-24 Tokyo Hoso:Kk デジタル映像分配装置
US20020047900A1 (en) * 2000-10-20 2002-04-25 Yazaki Corporation On-vehicle picture data transmission system, on-vehicle picture data receiving apparatus, and on-vehicle picture data transmitting apparatus
JP2007311957A (ja) * 2006-05-17 2007-11-29 Hitachi Ltd シンクライアントシステム
JP2009246415A (ja) * 2008-03-28 2009-10-22 Nec Personal Products Co Ltd 画面データ送信装置、画面データ送信方法及び画面データ送信プログラム
US20100226441A1 (en) * 2009-03-06 2010-09-09 Microsoft Corporation Frame Capture, Encoding, and Transmission Management
WO2010111097A1 (en) * 2009-03-23 2010-09-30 Onlive, Inc. System and method for encoding video using a selected tile and tile rotation pattern

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI70662C (fi) 1984-12-14 1986-09-24 Valtion Teknillinen Videokomprimeringsfoerfarande
US6208761B1 (en) * 1995-07-11 2001-03-27 Telefonaktiebolaget Lm Ericsson (Publ) Video coding
US7123772B2 (en) 2001-03-28 2006-10-17 Texas Instruments Incorporated Image compression by differences within a strip
US6058210A (en) 1997-09-15 2000-05-02 Xerox Corporation Using encoding cost data for segmentation of compressed image sequences
US6388584B1 (en) * 2000-03-16 2002-05-14 Lucent Technologies Inc. Method and apparatus for data compression of network packets
US7245405B2 (en) * 2001-04-11 2007-07-17 Hughes Network Systems, Llc Method and system for performing stateless compression of messages
US7054367B2 (en) * 2001-12-31 2006-05-30 Emc Corporation Edge detection based on variable-length codes of block coded video
EP1483909B1 (en) * 2002-03-13 2010-04-28 Imax Corporation Systems and methods for digitally re-mastering or otherwise modifying motion pictures or other image sequences data
US20030177255A1 (en) 2002-03-13 2003-09-18 Yun David C. Encoding and decoding system for transmitting streaming video data to wireless computing devices
CN1324886C (zh) 2002-08-30 2007-07-04 联发科技股份有限公司 数字视频数据的处理装置及方法
JP3942088B2 (ja) * 2002-09-27 2007-07-11 株式会社リコー 画像処理装置及び画像処理方法
US7333633B2 (en) * 2003-10-31 2008-02-19 Plexon, Inc. Inter-frame video techniques for behavioral analysis of laboratory animals
US7231632B2 (en) 2004-04-16 2007-06-12 Apple Computer, Inc. System for reducing the number of programs necessary to render an image
US7899864B2 (en) 2005-11-01 2011-03-01 Microsoft Corporation Multi-user terminal services accelerator
US7623134B1 (en) 2006-06-15 2009-11-24 Nvidia Corporation System and method for hardware-based GPU paging to system memory
US8005149B2 (en) 2006-07-03 2011-08-23 Unisor Design Services Ltd. Transmission of stream video in low latency
TWI328198B (en) 2006-12-11 2010-08-01 Via Tech Inc Gpu context switching system
US20090079746A1 (en) 2007-09-20 2009-03-26 Apple Inc. Switching between graphics sources to facilitate power management and/or security
US8319781B2 (en) 2007-11-23 2012-11-27 Pme Ip Australia Pty Ltd Multi-user multi-GPU render server apparatus and methods
US8095680B2 (en) * 2007-12-20 2012-01-10 Telefonaktiebolaget Lm Ericsson (Publ) Real-time network transport protocol interface method and apparatus
JP5163233B2 (ja) * 2008-03-31 2013-03-13 富士通株式会社 情報処理装置、プログラム、方法、処理回路及び通信システム
US8393008B2 (en) 2008-05-21 2013-03-05 Microsoft Corporation Hardware-based output protection of multiple video streams
US8810590B2 (en) 2008-07-11 2014-08-19 Advanced Micro Devices, Inc. Method and apparatus for spatial binning on a GPU and global path planning to avoid spatially binned objects
US20110197237A1 (en) * 2008-10-10 2011-08-11 Turner Steven E Controlled Delivery of Content Data Streams to Remote Users
US8686921B2 (en) 2008-12-31 2014-04-01 Intel Corporation Dynamic geometry management of virtual frame buffer for appendable logical displays
US8605783B2 (en) * 2009-05-22 2013-12-10 Microsoft Corporation Composite video generation
US8506402B2 (en) 2009-06-01 2013-08-13 Sony Computer Entertainment America Llc Game execution environments
JP5413344B2 (ja) * 2010-09-27 2014-02-12 カシオ計算機株式会社 撮像装置、画像合成方法及びプログラム

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10313454A (ja) * 1997-05-12 1998-11-24 Tokyo Hoso:Kk デジタル映像分配装置
US6160544A (en) * 1997-05-12 2000-12-12 Tokyo Broadcasting System, Inc. Digital video distribution system
US20020047900A1 (en) * 2000-10-20 2002-04-25 Yazaki Corporation On-vehicle picture data transmission system, on-vehicle picture data receiving apparatus, and on-vehicle picture data transmitting apparatus
JP2002135758A (ja) * 2000-10-20 2002-05-10 Yazaki Corp 車載用映像データ伝送システム、車載用映像データ受信装置、車載用映像データ送信装置
JP2007311957A (ja) * 2006-05-17 2007-11-29 Hitachi Ltd シンクライアントシステム
JP2009246415A (ja) * 2008-03-28 2009-10-22 Nec Personal Products Co Ltd 画面データ送信装置、画面データ送信方法及び画面データ送信プログラム
US20100226441A1 (en) * 2009-03-06 2010-09-09 Microsoft Corporation Frame Capture, Encoding, and Transmission Management
WO2010111097A1 (en) * 2009-03-23 2010-09-30 Onlive, Inc. System and method for encoding video using a selected tile and tile rotation pattern

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019516297A (ja) * 2016-04-08 2019-06-13 ヴィズビット インコーポレイテッド ビューを意識した360度ビデオストリーミング

Also Published As

Publication number Publication date
KR101697411B1 (ko) 2017-01-17
NZ608999A (en) 2014-10-31
CA2814809A1 (en) 2012-04-26
WO2012054618A2 (en) 2012-04-26
WO2012054618A3 (en) 2012-06-14
CN103329553B (zh) 2017-02-15
KR101447401B1 (ko) 2014-10-07
US20180270496A1 (en) 2018-09-20
AU2011317052A1 (en) 2013-05-02
KR20140088624A (ko) 2014-07-10
AU2011317052B2 (en) 2015-04-09
CN103329553A (zh) 2013-09-25
EP2630804A4 (en) 2015-11-04
EP2630804A2 (en) 2013-08-28
JP2013545376A (ja) 2013-12-19
US9998749B2 (en) 2018-06-12
CA2814809C (en) 2017-02-14
US20120093214A1 (en) 2012-04-19
NZ630857A (en) 2015-02-27
JP5954802B2 (ja) 2016-07-20
KR20130107315A (ko) 2013-10-01
JP5567744B2 (ja) 2014-08-06

Similar Documents

Publication Publication Date Title
JP5954802B2 (ja) ステートレス圧縮を利用したコンポジットビデオ画像をストリーミングする方法、プログラムおよび装置
US10230565B2 (en) Allocation of GPU resources across multiple clients
TWI485644B (zh) 群眾外包式(crowd-sourced)視訊顯像系統
AU2015203292B2 (en) Composite video streaming using stateless compression

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150812

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150929

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151215

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160608

R150 Certificate of patent or registration of utility model

Ref document number: 5954802

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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