JP2013506348A - 低遅延性転送プロトコルのための方法及びシステム - Google Patents

低遅延性転送プロトコルのための方法及びシステム Download PDF

Info

Publication number
JP2013506348A
JP2013506348A JP2012531074A JP2012531074A JP2013506348A JP 2013506348 A JP2013506348 A JP 2013506348A JP 2012531074 A JP2012531074 A JP 2012531074A JP 2012531074 A JP2012531074 A JP 2012531074A JP 2013506348 A JP2013506348 A JP 2013506348A
Authority
JP
Japan
Prior art keywords
output
server
graphic
data
network
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.)
Pending
Application number
JP2012531074A
Other languages
English (en)
Inventor
ヴォノグ,スタニスラフ
スリン,ニコライ
シュタユラ,ワディム
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.)
Net Power and Light Inc
Original Assignee
Net Power and Light 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 Net Power and Light Inc filed Critical Net Power and Light Inc
Publication of JP2013506348A publication Critical patent/JP2013506348A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • H03M13/356Unequal error protection [UEP]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3761Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using code combining, i.e. using combining of codeword portions which may have been transmitted separately, e.g. Digital Fountain codes, Raptor codes or Luby Transform [LT] codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/10Special adaptations of display systems for operation with variable images
    • G09G2320/103Detection of image changes, e.g. determination of an index representative of the image change
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/02Handling of images in compressed format, e.g. JPEG, MPEG
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2350/00Solving problems of bandwidth in display systems
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/02Networking aspects
    • G09G2370/022Centralised management of display operation, e.g. in a server instead of locally
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0009Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the channel coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0014Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the source coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes

Abstract

コンピュータ生成出力及び特定のグラフィック出力を提供するための方法及びシステム。
システムは、デジタル情報を運ぶように構成されるネットワークを含む。システムは、ネットワークと通信するサーバを含み、サーバは、アプリケーションプログラム及びクラウドエンジンモジュールを実行するように構成される。アプリケーションは、グラフィック出力を提供する。出力捕捉及び符号化エンジンモジュールはさらに、サーバ上のアプリケーションからグラフィック出力を傍受するように構成される。出力捕捉及び符号化エンジンモジュールはさらに、グラフィック出力を、グラフィックコマンド及びビデオコーデックデータの少なくとも1つに変換するように構成される。出力捕捉及び符号化エンジンモジュールはさらに、変換された出力をネットワークにわたって送信するように構成される。システムは、ネットワークにわたってサーバと通信するクライアントを含み、クライアントは、グラフィック及びビデオデコーディング及びレンダリングエンジンモジュールを実行するように構成される。グラフィック及びビデオデコーディング及びレンダリングエンジンモジュールは、送信された、変換された出力を受信することに応じて、グラフィック出力をレンダリングするように構成される。グラフィック及ビデオデコーディング及びレンダリングエンジンモジュールは、クライアントでグラフィック及びビデオデコーディング及びレンダリング入力を傍受するように構成される。グラフィック及びビデオデコーディング及びレンダリングエンジンモジュールは、傍受されたユーザ入力を出力捕捉及び符号化エンジンモジュールに送信するように構成される。
【選択図】図4

Description

本願は、2009年9月29日出願の米国特許出願第12/569876号の優先権を求め、これによって、参照によりその全体に組み込まれる。
バーチャルデスクトップインフラストラクチャ(VDI)は、ネットワークにわたって小型軽量クライアントを経由してエンドユーザにフルPCデスクトップの体験を提供する一方で、データセンタにてデスクトップバーチャルマシンをホスティングし及び管理するサーバ中央演算モデルである。
いくつかの既存の解決策は、いくつかのインカミングクライアントセッションを切り換える能力を、マイクロソフト社のターミナルサービス又はサイトリックス社のアプリケーションサーバ、ブレードサーバ、又は個々の不使用の物理デスクトップコンピュータのような伝統的な共有デスクトップシステムに加える。
VDIソリューションは、スクリーンアップデートをネットワークにわたってRDP若しくはICAといったプロトコルとともにクライアントの表示装置に送信するサーバでの、ウィンドウズインスタンスの遠隔実行を含む。しかしながら、従来のプロトコルは、約100ミリ秒に一回、ビデオフレームバッファをクライアントにフラッシュするが、それは、現代のグラフィックの多いアプリケーション、及び、AV同期を必要とするアプリケーションには適していない。
VDIソリューションを提供する既存のアプローチがいくつかある。
「スクリーンスクレープ」法は、そのプロトコルによってホスト上で「スクリーン」にペイントされるグラフィック要素を「スクレープすること」を含む。第1の例において、クライアントは、サーバにコンタクトをとり、そして、スクリーンの新たな「スナップショット」をフレームバッファから取り出す。第2の例において、サーバは、そのスクリーンの動作をクライアントに連続的にプッシュ配信できる。これは、そのフレームバッファレベルであり、GDI/ウィンドウマネージャレベルであり、またはその両方の組み合わせであり得る。両方の例は、しばしば使用されるグラフィック要素について、クライアントでのキャッシングを利用できる。
スクリーンスクレープ法は、「マルチメディアリディレクション」と組み合わせ可能であり、ここでは、サーバ側のマルチメディア要素が、そのネイティブフォーマットにおいて、クライアント装置に送信される。その後、クライアントは、マルチメディアストリームを局地的に再生することができ、それらをスクリーン上の適切な位置に動的に挿入できる。
このアプローチは、(1)クライアントが、技術的な能力とマルチメディアを提供するハードウェアとを有している場合、そして(2)クライアントが、マルチメディアコンテンツを適切に提供するようにインストールされる適切なコーデックを有する場合に適している。実際には、これは、クライアントが「小型軽量過ぎる」ことがあり得ないということを意味する。
サーバグラフィックシステム仮想化は、ホストのグラフィックシステムを仮想化する。ホスト上のソフトウェアは、全ての可能性のあるグラフィックレイヤ(GDI、WPF、DirectX等)を捕捉し、可能な限り速くクライアントに送信される(RDPのような)リモートプロトコルストリーム内にそれらをレンダリングする。これは、クライアント装置(非常にローエンドな又は小型軽量のクライアント上でさえも)に関わらず、クライアントに、局地的なパフォーマンスに非常に近い体験を与えるであろう。
サーバ及びクライアントにおけるハードウェアアクセラレーションは、ホスト上で特別なチップセットを利用し、ネットワークにわたる転送のためのスクリーンを捕捉する。クライアント装置は、レンダリングのためのマッチングスペシャルチップセットを有する。
リアルタイムでのネットワークにわたるグラフィック情報の遠隔表示における問題に取り組んでいる上記従来のアプローチは、極めて動的なグラフィックおよびフルモーションビデオについての低遅延性、許容可能なレベルの品質、及び双方向性を届けることができない。
問題は、以下の点を含む。
−フルモーションビデオの限定的なサポート。
−相互に短い距離(WAN)においての作業の場合であっても内在する重大な遅延性。
−相対的に高いレベルのパケットロス、ジッタ及び遅延性を伴う信頼性の低いネットワーク環境(例えばインターネット)における貧弱なパフォーマンス及び品質。
−ネットワークにおける重大なデータストリームの存在の下でのユーザ体験の品質及び遅延性について転送量を優先することができない点。
―オーディオ及びビデオストリームの一貫性のない同期。
―フルボディセンシング、ビデオ、声、センサ、動きのような様々な入力及び出力を操作することができない点−全てを背景に追加されたい。
ビデオ及び高度にインタラクティブで豊富なグラフィックユーザインターフェースがユーザのコンピュータにおいてユビキタスであった以前に、Microsoft RDP、Citrix ICA、AT&TのVNCその他のような既存のソリューションが設計されたということから、上の問題が部分的に生じる。
従って、リモートコンピューティングについて改良型転送プロトコルに関する必要性が存在する。
この開示の特徴及び目的は、同様の参照符号または同様の要素を示す添付図面とともに、以下の記載を参照してより明確になるであろう。
図1は、リモートコンピューティングのための改良型転送プロトコルを提供するためのシステムの例を示す。 図2は、リモートコンピューティングのための改良型転送プロトコルを提供するためのサーバの例を示す。 図3は、リモートコンピューティングのための改良型転送プロトコルを提供するためのクライアントの例を示す。 図4は、リモートコンピューティングのための改良型転送プロトコルを提供するための、サーバにおいて実行される出力キャプチャ及びエンコーディングエンジンの例を示す。 図5は、リモートコンピューティングのための改良型転送プロトコルを提供するための、クライアントにおいて実行されるデコーディング及びレンダリングエンジンの例を示す。 図6は、改良型転送プロトコルに関する、捕捉、符号化及び送信のためのサーバによって実行される手順の例を示す。 図7は、改良型転送プロトコルに関する、受信、復号化及びレンダリングのためのクライアントによって実行される手順の例を示す。 図8は、リモートコンピューティングのための改良型転送プロトコルを提供するためのネットワークスタックの例を示す。 図9は、領域検出器モジュールを提供するためのサーバによって実行される手順の例を示す。 図10は、単純なモーション検出器モジュールを提供するためのサーバによって実行される手順の例を示す。 図11Aは、第1のモーション検出の例のスクリーンショットを示す。図11Bは、第2のモーション検出の例のスクリーンショットを示す。図11Cは、第3のモーション検出の例のスクリーンショットを示す。 図12は、リモートコンピューティングのための改良型転送プロトコルを提供するためのビデオエンコーダの例を示す。 図13は、グラフィック出力の前処理のための手順の例を示す。 図14は、プログレッシブピクチャエンコーダを提供するための手順の例を示す。
信頼性のないパケット切替通信ネットワークにわたる多数のインタラクティブディスプレイ装置に対するコンピュータ生成情報の低遅延性のリアルタイム送信が提供される。グラフィック出力、オーディオ信号、データ、USBインターフェース信号、プリントスプール等のようなコンピュータ出力情報は、サーバ上で実行されるアプリケーションによって生成され得る。システムは、ネットワークにわたって多数のエンドユーザの装置に対して、アプリケーションによって生成されるコンピュータ出力情報のインタラクティブ送信を可能にする。低コストのシン・クライアントから強力なワークステーションまで、幅広いエンドユーザの装置がシステムによって支援され、ここでは各エンドユーザの装置は、異なる量の利用可能なバンド幅を有する。多数のユーザが、同時に、同じグラフィック情報をエンドユーザの装置上で交信できる。
システムは、エンドユーザの装置で捕捉されたインタラクションデータをサーバに送り返し、アプリケーションによる処理のために入力を同期させる。システムはその後、サーバのグラフィック及び他の種類の出力を捕捉し、出力情報を符号化しエンドユーザの装置に送信するための様々なエンコーディングスキームを適用する。
システムは、既存のシステムのそれらとは大幅に異なる設計仮定及び目標(低遅延性、フルモーションビデオ、信頼性のないネットワーク、相対的に高いネットワークバンド幅等)を利用する。同様のアプローチが、極端に低い遅延性(50msを下回る)でのインターネットにわたる高品質のオーディオストリームの送信とこれらのストリームの正確な同期を必要とする分散型マルチプレーヤリアルタイムジャミングシステムにおいて使用されている。このアプローチは、以下のような様々な参照文献において議論される。
米国特許出願第11/717606号、発明の名称「Method and System for Low Latency High Quality Music Conferencing」、出願日2007年3月13日、米国仮出願第60/785145号、発明の名称「Method and System for Low Latency High Quality Music Conferencing」、出願日2006年3月22日の優先権を主張。
「Virtual Jamming. Four Fixes for the Major Problem Facing Musicians Who Play Together on the Web: Lag」http://www.spectrum.ieee.org/computing/software/virtual-jamming(2009年9月に最後に検索)
米国特許出願第12/024089号、発明の名称「Method and System for Precise Synchronization of Audio and Video Streams During a Distributed Communication Session With Multiple Participants」、出願日2008年1月31日、米国仮出願第60/887555号、発明の名称「Method and System for Low Latency High Quality Music Conferencing」、出願日2007年1月31日の優先権を主張。
その全てが参照によってここに組み入れられる。
図1は、リモートコンピューティングのための改良型転送プロトコルを提供するための例示的なシステムを示す。システムは、地理的に分配可能であり、インターネットのようなブロードバンドネットワークにわたって通信可能である。
システムは、オペレーティングシステム上におけるソフトウェアアプリケーション113のインスタンスを実行する物理的な又はバーチャルなサーバ112を含む。例えば、オペレーティングシステムは、Windows、Mac OSX、UNIX、Linux等であり得る。
アプリケーション113の出力は、後述される捕捉及びエンコーディングエンジン114によって捕捉される。例えば、その出力は、実行中のアプリケーション113によって提供されるユーザインターフェースのグラフィック出力であり得る。
他の種類の出力が、エンジン114によって捕捉され得る。例えば、オーディオ出力が、システムにわたる符号化及び送信のために捕捉され得る。
サーバ112上において実行されるエンジン114は、以下で議論される低遅延性のハイブリッドネットワークスタックを使用するブロードバンドネットワークにわたる送信のためのアプリケーションの出力を捕捉し符号化する。例えば、ネットワークは、IPベースのネットワーク、セルラーネットワーク、3G又は4Gのワイヤレスネットワーク、ケーブル等であり得る。
送信は、ネットワーク上の負荷を低減させるために(可能な場合は)マルチキャスティングを使用するネットワーク111にわたって、多数のストリーム109及び110を経由して多数のレシーバに同時に中継され得る。どのレシーバでもシステム上に存在し、ネットワーク111の利用可能なバンド幅を受けることができるということが理解されるであろう。システムは、ユーザ体験を改良するために遅延性を最小化するように構成される。例えば、レシーバが不十分なバンド幅を有する場合(又はネットワークの混雑が生じた場合)、システムは、動的にグラフィックの品質を低下させ、そうでなければ、低遅延性を維持するためにストリームのバンド幅を低減させる。
例示的なシステムは、2つのレシーバ、ネットブック103及びフレキシブルディスプレイ(電子ペーパ)104を含む。例えば、ネットブック103は、Intel Atom CPU及びIntel GMA 945Aグラフィックアクセラレーションチップに基づくASUSのEee PCのような低コストの演算装置である。同様なネットブックもまた使用され得る。
各レシーバは、グラフィック及びビデオデコーディング及びレンダリングエンジン(GVDRエンジン)を含む。ネットブック103は、ネットブック103のオペレーティングシステム上で実行されるソフトウェアベースのGVDRエンジン108を含む。フレキシブルディスプレイは、集積回路又はDSPのチップセット、プロセッシングユニット、メモリユニット等として実装されるハードウェアGVDRエンジン107を含む。他のGVDRの実装が、ユーザ及び利用可能なリソースの必要性に応じて利用され得るということが理解されるであろう。代わりに、ビデオデコーディング及びレンダリングエンジンは、USB装置のような外部のハードウェア装置であり得る。一実施例は、ネットワーク入力及びHDMI出力を伴う小さなTVボックスであり得る。ネットワーク入力は、有線のネットワーク(ケーブル、Ethernet)又は無線ネットワーク(Wi−Fi等)であってもよい。
GVDRエンジンは、実装が簡単であり、多数のコンピューティングプラットフォーム又は家庭用電子機器について様々な方法で構築され得るということが理解されるであろう。これは、幅広い装置がシステム内でレシーバとして機能することを可能にする。
GVDRエンジン107及び108は、各システム103及び104上でアプリケーション113の画像105及び106をレンダリングする。加えて、GVDRエンジン107及び108は、ビデオデータ、オーディオデータ及び、アプリケーション113からの出力として捕捉される、あらゆる他のデータをレンダリングできる。
画像105及び106は、必要に応じてリフレッシュされるが、リフレッシュレートは、既存のディスプレイ装置を利用して、ピクチャの特定の領域について毎秒15フレームから毎秒60フレーム又はそれ以上で変化し得る。システムリソース及び性能要件によって、より高いフレームレートが可能となることが理解されるであろう。より高いフレームレートは、より多くの最適なユーザ体験を与え得る。一実施形態において、画像の異なる領域が、後述されるように、改良されたユーザ体験について異なるレートでリフレッシュされ得る。
一実施形態において、画像105及び106は、インタラクティブであり得る。装置104及び105で相互に交信するユーザ101及び102からの様々な入力データが、捕捉され、アプリケーション113に送り返され得る。入力データは、キーボードストローク、マウスの移動、タッチ及びマルチタッチイベント、モーションセンシングデータ、加速度計データ、温度又は大気の状態のようなセンサデータ、心拍数センサ又は血糖センサのような人間の生物学的センサ、音声命令、目の動き、又は、コンピュータによって解読される神経系のインパルス等を含む。
入力データは、エンジン114に送信され、エンジン114は、入力データを集計し、アプリケーション113へと送信する。アプリケーション113は、入力データを処理のために読み取ることができ、入力データに応じてその出力を変更する。出力は、エンジン114によって再び捕捉され、ネットワーク111を通じて、上記のように、レシーバ103及び104に送信される。
代わりに、エンジン114は、処理のために入力データを読み取ることができる。例えば、エンジン114は、独立してアプリケーション113に備えられるマッピングスキームに基づくアプリケーションの特定の命令に対するマルチタッチイベントをマッピングできる。入力データがアプリケーション113とエンジン114の組み合わせによって解釈され得るということが理解されるであろう。
動作中において、ユーザ101及び102は、同じアプリケーション113上で共に作業をすることができる。この共同作業は、アプリケーション113がマルチユーザサポートを含むか否かにかかわらず、システムの特徴である。
さらに、ファイアウォールのようなセキュリティ及びプライバシーの問題、及びネットワークアドレス変換(NAT)の問題が取り除かれる。ユーザ101及び102は、サーバ112、信頼できるソースへの接続を開始する。それ故、ユーザ101及び102のシステムの例は、未知の及び信頼できないネットワーク接続を決して受け入れることはない。
図2は、リモートコンピューティングのための改良型転送プロトコルを提供するためのサーバの例を示す。サーバ201が、議論されたアプリケーション及びGVDRエンジンを実行できる。
サーバ201は、物理的又はバーチャルなものであり、CPU202及びオプションとしてGPU203を含む。サーバ201は、サウンドカード(図示せず)のような他のプロセッシングハードウェアユニットを含み得る。例えば、CPUは、Intel Core i7であり得る。例えば、GPUは、Nvidia GeForce9400であってもよい。
アプリケーション204は、ハイパーバイザの内部又は外部で、従来のオペレーティングシステム内で動作している(OS及びハイパーバイザは図示されていない)。オペレーティングシステムの例は、Windows XP、Windows Vista、Windows 7、Windows Server、Windows Mobile、Mac OS X、Mac OS X Server、UNIX、Linux、Symbian、Android等を含む。
出力捕捉要素205は、命令の形式又は生のデータの形式でアプリケーションからの出力データを捕捉する。捕捉処理の詳細が後述される。例えば、要素205は、グラフィックAPI命令(GDI又はオープンGL命令等)、ビデオメモリからの高周波数(20−60Hz)の画像、及びマルチメディアAPI命令(ビデオ等を見せるためのような)を捕捉し得る。
出力エンコーダ206は、低遅延性のハイブリッドネットワークスタックを通じた送信のための捕捉された出力データを符号化する。出力マルチキャスティングユニット207は、ネットワークにわたる多数のレシーバの送信を管理し、その送信がこれらの多数のレシーバの間で同期されることを保証する。加えて、出力マルチキャスティングユニット207は、適切な出力データが各レシーバに送信されることを保証する。例えば、異なる質の出力データが異なるバンド幅を伴うレシーバに使用され得る。加えて、レシーバは、最大fps、オープンGLハードウェアサポート等といった装置のレンダリング性能によって変動し得る。
マルチキャスティングユニット207は、レシーバがブロードキャスティングセッションに接続すること及び離れることを維持し、最適な送信トポロジー及びルーティングを定め、かつ、マルチキャストオーバレイネットワークを維持及び再配置する。マルチキャスティングユニット207はまた、発信パケットに対するタイムスタンプのような関連する同期データを加え、レシーバのクロックが同期され、必要であれば、ビットレート、符号化データ、利用可能なネットワークのバンド幅、処理性能、及び共通のセッションに参加している各レシーバの遅延性を調節する。
マルチキャスティングユニット207は、上述のように機能性を効率的に実行するために、ハイブリッドネットワークスタック208及び出力エンコーダ207と通信する。マルチキャスティングユニット207は、レシーバ装置でのインタラクションの質及びユーザに関するユーザ体験に基づく最適化基準を利用できる。ネットワークスタック208は、データのパケットを物理通信ネットワークに送信する物理ネットワークインターフェースと接続する。ネットワークスタック208は、ユーザモード又はカーネルモードのソフトウェアコンポーネントとして一般に実装され得る。代わりに、それはハードウェア集積回路として実装され得る。
入力キュー209は、多数のユーザから入力命令を受信すること、命令をバッファリングすること、及び適切に命令すること(それによって多数のユーザからの入力データを同期すること)について担当する。入力デコーダ210が、異なる種類の入力データがアプリケーション204によって理解可能になるということを保証する。入力デコーダ210は、アプリケーション204によって読み取りができない全ての入力命令を捨て去る。
発信捕捉ユニット205、出力エンコーダ206、出力マルチキャスティングユニット207、ネットワークスタック208、入力キュー209、及び入力デコーダ210は、アプリケーション204のネイティブオペレーティングシステムのカーネル及びユーザモードで作動するソフトウェアプログラムとして実装される。これらの特徴はさらに後述される。
図3は、リモートコンピューティングのための改良型転送プロトコルを提供するためのクライアントの例を示す。クライアントディスプレイ(表示)装置305が、上述されたレシーバ装置であってもよい。
クライアント305は、低遅延性のハイブリッドネットワークスタック307、出力デコーダ306及び装置に存在する出力レンダラ307を含む。出力デコーダは、オーディオ/ビジュアルコーデック、ピクチャコーデック、及び受信された出力データを復号化するグラフィックコマンドライブラリを含み得る。
上記の要素は、CPU302及びGPU303を含み得る低コストのコンピューティングハードウェアプラットフォーム上で実行される従来のオペレーティングシステムで動作するユーザモードのソフトウェアプログラムとして実装され得る。例えば、CPU302は、Intel Atomプロセッサであり得る。例えば、GPU303は、Intel GMA 945であり得る。
これらの要素はまた、ハードウェアに実装され得る。一実施形態において、クライアント301は、汎用のCPU及びGPUを必要とせず、また、Windows XP、Windows Vista、Windows 7、Windows Server、Windows Mobile、Mac OS X、Mac OS X Server、UNIX、Linux、Symbian、Android等の従来のオペレーティングシステムを必要としない。
クライアント305は、入力エンコーダ301とともに入力性能を支援できる。入力エンコーダ301及び出力デコーダ306は、画像、符号化されたビデオストリームの形式のグラフィック出力データ、又は遠隔のサーバからの中間フォーマット内のグラフィック命令を受信し、符号化された入力データに応答するために、ネットワークスタック307に接続する。出力デコーダ306は、(ファイル又はデータのストリームのような)出力ストリームのような他の種類の出力を受信し、読み取ることが可能である。入力データは、入力エンコーダ301によって、装置の又はオペレーティングシステムの独立したフォーマットに符号化され得る。
図4は、リモートコンピューティングのための改良型転送プロトコルを提供するためのサーバ上で実行される出力捕捉及びエンコーディングエンジンを示す。グラフィック出力及びエンコーディングエンジンは、上述のようにサーバ上で動作しているアプリケーションのグラフィック出力を捕捉できる。エンジンは、さらに、サポートされたフォーム(グラフィックAPI命令、ピクチャ又はビデオ)内で出力を符号化し、その後、符号化された出力を、データの種類や緊急性によって、ハイブリッドマルチチャンネルネットワークスタックとともに送信する。エンジンはまた、(もし存在する場合には)レシーバ上でそれ自体を他のキャッシュに同期させるキャッシュを更新する。
グラフィックAPI命令インターセプタ401、フレーム捕捉ユニット402、及びビデオパススルーインターセプタ403は、アプリケーション(又は選択的にアプリケーションが動作しているオペレーティングシステム)によって生成されるグラフィック情報を捕捉する。 例えば、フレーム捕捉ユニット402は、グラフィック出力を、毎秒20〜30フレームで捕捉できる。より高いフレームレートが、所定の十分な処理性能及びバンド幅で可能になる。
他のインターセプタ要素403aが、他の種類の出力の傍受のために存在する。出力の種類の例は、データファイル及びデータストリームの形式の一般データ出力と同様に、3Dホログラム、3Dオブジェクト、プリンタ出力等を含む。
例えば、高品質のオーディオストリームの低遅延性インターセプションが上述の「Method and System for Low Latency High Quality Music Conferencing」に記載されており、ここに組み込まれる。
様々な種類の出力間の同期は、様々なメカニズムで達成され得る。あるメカニズムは、送り側におけるバイタイムスタンピング(後述のマルチキャスティングユニット413内で実行される)及び同期される送り側と受け側におけるクロックを維持することである。他のメカニズムは、後述のようにジッタバッファを受け側で実装することであり、これは、バッファサイズを変化させ、データ部分を必要に応じて捨て去ることによって、ネットワークの遅延性を管理する。他のメカニズムは、所望の同期のレベルを達成すべく、(オーディオサンプリングレートリレーのような)データインターセプションを変化させることである。
インターセプタ401、402、403、及び同様なインターセプタ403aの実装は、変化し得る。それらは、オペレーティングシステム内で動作するカーネルモード又はユーザモードのソフトウェアコンポーネントとして実装され得る。それらはまた、ハイパーバイザ上で動作するソフトウェアコンポーネントとして実装され、それら自体を、ゲストオペレーティングシステムの仮想化されたインスタンスに対するハードウェアコンポーネントとして示し得る。それらはまた、グラフィック捕捉及びエンコーディングエンジンがハードウェアチップとして実装される場合に、ハードウェア内に実装され得る。
グラフィックAPI命令インターセプタ401は、グラフィック命令及びアプリケーションによって生成されるAPIコールを捕捉する。これらの命令は、例えば、MicrosoftのGDI、Direct 3D、Open GL、Desktop Window Manager、及びAppleのQuickDraw、Quartz 2D、PostScript、Core Image、Core Animation、Quartz Compositor等を含み得る。インターセプタ401は、ユーザモード要素との組み合わせでバーチャルディスプレイドライバとして実装され得る。そのようなバーチャルディスプレイドライバは、それ自体、アプリケーションに対する物理ディスプレイドライバとして示されるが、受信されたいかなる命令をも複製し、あるコピーがネットワーク416を通じてレシーバに送られ、一方、第2のコピーは、フレーム捕捉ユニット402によって捕捉され得るピクチャをつくり出すために、物理グラフィックプロセッシングユニット又はバーチャルグラフィックプロセッシングユニットに渡される。
グラフィックコマンドフィルタ404は、ネットワーク416にわたるレシーバへの送信の前に、どのグラフィックコマンドが更なる処理に適しているかを決定するために、送り側のユニバーサルキャッシュ406及び領域検出器405と通信する。
一例において、既にレシーバの全部又は一部に存在する場合には、グラフィックAPIコマンド及び関係する引数(ビットマップ、テクスチャ、ブラシ等)は、送信について不適格である。そのようなコマンドは、グラフィックコマンドフィルタ404によってフィルタ処理され、キャッシュ406内でのキャッシュロケーションを認証するハッシュ数によって代用される。ユニバーサルキャッシュ406は、キャッシュ同期手順412を経由して送り側と受け側との間で、システムにわたって同期される。
グラフィックAPIコマンドはまた、領域検出器405が、グラフィックAPIコマンドが影響を与える領域について、ビデオ又はピクチャエンコーダ(後述される)を利用することを決定した場合に、送信に関して不適格となり得る。領域検出器405は、後述の処理を実行する。
グラフィックコマンドフィルタ404はまた、グラフィックコマンドの量、コマンドの種類、キャッシュされていないサイズ、及び領域検出器405に対する領域境界のような統計を送信する。領域検出器405は、統計をその独自のモーション検出データ、及びグラフィックAPIコマンドインターセプタ401又はビデオ/ピクチャエンコーダを使用するかどうかを決定する領域分類と比較する。
一例において、領域検出器405は、グラフィックコマンドを使用する方にバイアスがかけられる。しかしながら、高動画像を可能にする多くのGDIコマンドをアプリケーションが利用する場合に、ビデオコーデックがより効率的になり得るということが理解されるであろう。
コマンドがさらなる処理について適格であるということがわかると、それは、グラフィックコマンドトランスレータ408によって、ユニバーサルフォーマットに変換される。ユニバーサルフォーマットは、様々なグラフィックAPIにわたって共通のものであり得る。共通フォーマットは、追加及び修正を伴うPostScriptのような既存のフォーマットに基づき得る。フォーマットは、簡単さに関して最適化され、受信装置によって、解釈及びレンダリングが容易になり得る。フォーマットは、低電力のハードウェア実装又はソフトウェア実装によって、解釈及びレンダリングに関して最適化され得る。
解釈(翻訳)されたコマンドは、グラフィックコマンドコンプレッサで圧縮される。コンプレッサは、アイテムの繰り返しがアイテムによって置き換えられ、アイテムがその順序で何度も生じるランレングス符号化アルゴリズムであり得る。より進歩したコンプレッサアルゴリズムは、コマンドを等価なコマンドの組に変換して、それはZIP又はRLEアルゴリズムによって圧縮される。これは、レシーバへの送信に関するバンド幅及び遅延性を減少させる。
その結果としてのビットストリームは、後述のマルチキャスティングユニット412に送られ、ハイブリッドマルチチャンネルネットワーク伝送プロトコルスタック414を経由して、ネットワーク416に送信される。
スタック414は、ルーティングのための送信及びIPプロトコルのためにUDPプロトコルを利用する。他の種類のネットワークプロトコルが同様に使用され得るということが理解されるであろう。例えば、TCP/IPが使用可能であるが、次善のユーザ体験のための高い遅延性の影響を受けるであろう。
フレーム捕捉ユニット402は、例えば毎秒30−50フレームの周波数で、サーバのビデオメモリからのアプリケーションのフレームデータを捕捉する。より高い捕捉レートが必要に応じて使用され得るということが理解されるであろう。ホストオペレーティングシステムのためのカーネルモードソフトウェアコンポーネントが、グラフィックからのデータ獲得速度を改良するために使用され得る。代わりに、フレーム捕捉ユニット402は、ユーザモードで実装され得る。
フレーム捕捉ユニット402は、アプリケーションが表示されるスクリーンの一部又はスクリーンの全体を捕捉できる。一実施形態において、捕捉ユニット402は、スクリーン全体を捕捉し、捕捉された画像を、後述のように関心のある領域のみを処理するように操作する。他の実施形態において、捕捉ユニット402は、アプリケーションが表示される1以上の特定の領域を捕捉するだけである。
フレーム捕捉ユニット402は、20−30msごとの、又は、しばしば5−10msごとの画像フレームを伴う領域検出器405を提供する。フレーム捕捉レートは、出力のフレームレートに基づいて部分的に決定されるということが理解されるであろう。そのレート(msにおける)は、出力の毎秒のフレームによって1000に分割される。それ故、領域検出器405は、フレームインターセプタ402から、インターセプタ401から傍受されたグラフィックAPIコマンドのストリームから、そして、インターセプタ403から傍受されたビデオAPIコマンドのストリームから、これらの画像を受信する。
領域検出器405は、その後、画像の各領域について、コマンドベースのアプローチ、ビデオコーデック又はピクチャコーデックを使用するかどうかを決定する。領域は、上述のように非矩形となり得る。
領域検出器405は、その後、後述のように、ビデオで符号化される領域のマスクとともに画像フレームをビデオエンコーダ407に送る。領域検出器405は、異なる状況について、様々なピクチャエンコーダ410とともに動作し得る。
例えば、大画像要素のためのプログレッシブイメージエンコーダ、及び、小画像のための、簡単な、損失のない又は損失のあるイメージコンプレッサの2種類のピクチャエンコーダ410が在り得る。その一方で、小画像は、既に小さなバンド幅を必要とし、それ故、速いエンコーダからより多くの利益を得る。プログレッシブイメージエンコーダは、効率的に大画像の大きさで圧縮され、一方、小画像は、高速エンコーダで処理され得る。プログレッシブイメージエンコーダは、小画像が高速エンコーダで処理され得る一方で、大画像のサイズにおいて効率的に圧縮することとなる。
領域検出器405は、上述のように、符号化のために、画像要素を伴うピクチャエンコーダ410を提供する。ビデオエンコーダ407及びピクチャエンコーダ410は、データを符号化し、それによって、データを圧縮し、圧縮されたデータをマルチキャスティングユニット413に渡す。
マルチキャスティングユニット413は、1以上のレシーバに対して通信セッションを維持し、最適なルーティングを決定し、同期に必要な時間のスタンピングを管理し、ネットワークスタック414から受信するフィードバックデータに応じて、ビデオエンコーダ407及びピクチャエンコーダ410のパラメータを変化させることによって、ビットレートを適合させる。
マルチキャスティングユニット413は、ペイロード及び遅延性の要求に応じて、異なる種類の通信チャンネルをつくり出すネットワークスタック414を使用する。マルチキャスティングユニット413は、マルチチャンネルの相対的優先順位を管理し、レシーバとの接続を確立させる。マルチキャスティングユニット413はまた、データをレシーバに送信する。
後述のように、ネットワークスタック414は、3種類のチャンネル、保証型配信、非保証型配信、及び、順方向誤り訂正を伴う非保証型配信を有し得る。
一実施形態において、マルチキャスティングユニット413は、APIコマンドに関する保証型配信チャンネル、ネットワークの状況がロバスト(robust)である場合に、ビデオコーデック符号化データのための非保証型配信チャンネル、ネットワークの状況が信頼性のない場合に、FECを伴うビデオ用の非保証型配信、また、オーディオストリーム及びピクチャコーデック符号化データ用の非保証型配信、を確立する。マルチキャスティングユニット413は、低い優先度で保証型配信チャンネルにわたって、アプリケーションデータを送信できる。パケットロス又はジッタによるオーディオの品質の劣化が、ビデオと比較して品質の知覚される劣化をさらに悪化させることになるため、オーディオデータは、高い優先度で送信され得る。
ビデオ再生コマンド(DirectShow、Core Video、QuickTime等)及びこれらのコマンドに関連するメディアデータストリームが、パススルー用ビデオインターセプタ403によって傍受され得る。インターセプタ403は、異なる種類のメディアについて、多数のコマンド固有のソフトウェアコンポーネントとして実装される。
一例において、Windows用のDirectShowビデオインターセプタが、DirectShowの処理パイプラインにおいて最初であることを保証すべく、高い優先度でDirectShowフィルタとして実装され得る。そのようなフィルタが、コマンド及びAPIコール(ビデオファイルを再生する要求等)を除去し、それらをマルチキャスティングユニット413及びネットワークスタック414に伝える。
インターセプタ403は、送り側のシステムで再生せずに、そして、ビデオエンコーダ407で再符号化することなく、捕捉されたメディアデータを、レシーバに直接渡す。例えば、データは、パケットロス及び利用可能なバンド幅のようなネットワークの状況に応じて、FECを伴うか又は伴わずに非保証型配信チャンネルにわたって送信され得る。
ビデオパススルーインターセプタ403は、(ビデオレンダリングのような)メディアレンダリングコマンドの組によって引かれる領域について領域検出器405と通信する。領域検出器405は、それがビデオエンコーダ407をこの領域に適用するかどうかを決定するために、この情報を用いる。決定は、レシーバ上の生のメディアデータを復号する必要のあるコーデックの利用可能性といった要因によって、又は、(レシーバ上の限られたCPUの性能のような)他の理由によってビデオエンコーダが望ましい場合に、影響を受け得る。
対応する(ウェブカメラからのビデオファイル又はビデオストリームのような)データが、A/Vラッパ411に送られる。ラッパ411は、メディアタイプ、フレームディスクリプションデータ等について情報を加えることになる。ラッパ411はまた、必要であれば、メディアを他のフォーマットにトランスコードする。ラッパ411は、レシーバでのメディアデータの互換性を保証し、レシーバにメディアデータを再生し直すための十分なメタデータを与える。
図5は、リモートコンピューティングのための改良型転送プロトコルを提供するための、クライアント上で実行されるデコーディング及びレンダリングエンジンを示す。クライアントは、レシーバ装置上で実行され、符号化されたデータを受信するように構成される。クライアントは、さらに、符号化されたデータをユーザのためのグラフィック出力にレンダリングできる。クライアントはまた、限定されないが、オーディオ、データファイル、データストリーム、プリンタデータストリーム等を含む他の種類の出力を復号化しレンダリングできる。
一実施形態において、レシーバは、ネットワーク伝送プロトコルスタック504、ビデオジッタバッファ506、ビデオデコーダ512及びビデオレンダラ518からなる。レシーバは、ビデオデコーダ512によってビデオデコーディングを利用するのみである。十分に低いフレームレートで、ジッタバッファ506が必要となる。受信された符号化データは、ピクチャエンコーディング、パススルーエンコーディング又はGDIコマンドなしで送信されることによって、適切に符号化されることになる。
このレシーバは、ハードウェア内のデコーディングチップとして実装される、単純かつエネルギ効率の良い設計である。
他の実施形態において、単純なオペレーティングシステムは、システムサービスとして上述された要素504,506,512,518をロード及び実行できる。この実施形態は、504,512及び518を支援することが求められる追加の要素を含むであろう。
他の実施形態において、要素は、Mac OS X又はWindows 7のようなオペレーティングシステム内で動作するソフトウェアコンポーネントとして実装され得る。
他の実施形態において、追加の種類の出力が上述したオーディオのようなレシーバによって支援される。レシーバは、追加のジッタバッファ519、出力デコーダ520、及び出力レンダラ521を含んで拡張され得る。
他の実施形態において、上述のように、アプリケーションのグラフィック出力を符号化するために、ハイブリッドアプローチが使用される。グラフィック出力は、4種類のデータ、グラフィックコマンド、ビデオフレーム、画像要素、及びパススルービデオに符号化される。4種類のデータは、図示される4つのパイプラインによって操作され、表示のためにリアルタイムにおける単一のピクチャに統合される。
グラフィックコマンドパイプラインは、グラフィックコマンド用のジッタバッファ505、グラフィックコマンドデコンプレッサ509、グラフィックコマンドトランスレータ511、グラフィックコマンドレンダラ515、及び分散型同期キャッシュ510を含む。
ビデオでコーディングパイプラインは、ビデオデコーダ用のジッタバッファ506及びビデオデコーダ512を含む。
画像ベースのデコーディングパイプラインは、画像要素用のジッタバッファ507、(多数種類であり得る)ピクチャデコーダ513、及び分散型同期キャッシュ510を含む。
パススルービデオパイプラインは、画像要素用のジッタバッファ508及びパススルービデオアンラッピング及びレンダリングのためのジッタバッファ507を含む。
パイプライン出力は、フレームコンポジタ516によって、単一の画像に結合される。画像は、画像内の領域境界を平滑化するスムージングトランスフォーメーションモジュール517によって処理される。画像は、その後、518でのグラフィック出力として表示される。
平滑化変換(スムージングトランスフォーメーション)は、異なる領域を符号化するために使用される異なる方法によって生じるアーティファクトを除去できる。平滑化変換の例は、デブロッキングトランスフォームである。異なる変換が、状況に応じて使用され得るということが理解されるであろう。
一実施形態において、ジッタバッファ505,506,507,508,519は、異なる実装及びアルゴリズムを有し得る。ジッタバッファは、異なる種類のデータを操作し、それ故、異なるニーズを有する。例えば、ジッタバッファは、ネットワークの高い遅延性が存在する場合に、低いフレームレートであっても、パフォーマンスを改良できる。したがって、多数のジッタバッファは、円滑なユーザ体験についての様々な出力の種類の同期を管理するように求められる。ジッタバッファは、それらのサイズを動的に変化させ、受信されたデータ上でタイムスタンプを確認し、受信されたデータを必要に応じて捨て、遅らせ、又は再配置する。これは、遅延性を管理し、そして、高品質の出力を、特に信頼性のないネットワークにわたって維持する。
例えば、グラフィックコマンド用のジッタバッファは、グラフィックGDIコマンドが正しい順序で処理されるということを保証する。
キャッシュ510は、画像要素と、ビットマップ又はテクスチャのような受信したグラフィックコマンド用の引数とを引き出す。上述のように、キャッシュ510は、その送り側から受信したハッシュ数に基づくそのようなエンティティを保存できる。キャッシュ510は、独立したデータ通信チャンネルにわたって、サーバキャッシュからのそのデータを受信し、それ自体、送り側のキャッシュで同期された状態を維持する。
図6は、改良型転送プロトコルに関する、サーバによる捕捉、符号化、及び送信を実行する手順を示す。手順は、上述のように、1以上のクライアントと通信して、サーバ上で実行され得る。
601において、サーバは、実行中のアプリケーションからグラフィック出力を傍受する。例えば、アプリケーションは、単独のユーザのためのインタラクティブユーザインターフェースを提供するように構成される既存のアプリケーションであり得る。グラフィック出力及びユーザ入力(後述)を傍受することによって、アプリケーションは、多数のユーザに提供され得る。
代わりに、グラフィック出力は、傍受され、複数のクライアントに送信され得る。これは、例えば、広大な地理的範囲にわたって配置される複数のクライアントにマルチメディアを用いたプレゼンテーションを送信するために使用され得る。
602において、サーバは、領域検出手順を実行する。領域検出手順は、グラフィック出力を、1以上の領域に分けるように構成され、各領域は、後述のように、最適なデータ変換に影響を与える優位な特性を有する。
例えば、領域検出は、既述のモジュールによって提供され得る。一実施形態において、モジュールは、サーバ上で実行されるソフトウェアモジュールであり得る。他の実施形態において、モジュールは、専用ハードウェア、汎用ハードウェア、及びサーバにアクセス可能な実行中のソフトウェアの組み合わせであり得る。
603において、サーバを、上記で検出された領域をフィルタリングする。例えば、グラフィックAPIコマンドは、ビデオ、ピクチャ、又はパススルー領域内には送られない。例えば、ビデオ及びピクチャデータは、パススルー領域内には送られない。
604において、サーバは、各領域のグラフィック出力を、変換された適切な出力に変換する。領域の4つの例が、それらに関する特性ととともに後述される。
グラフィックAPIコマンドは、オペレーティングシステム又はグラフィック出力をレンダリングするように使用される他のコマンドである。例えば、Microsoft Windowsは、グラフィックコマンド、ウィンドウ、サークル及び他の形状を描くためのグラフィックコマンドの範囲を示す。そのような領域は、標準のMicrosoft APIを経由して検出され得る。他のオペレーティングシステムが、オペレーションの同様の原理を有し、また、同様の方式における領域検出に関して利用され得る標準APIを有する。そのような領域は、オリジナルグラフィックコマンド内に最適に符号化され、スクリーンショットを送信することと比較して、バンド幅の要求を大幅に減少させる。
そのようなコマンドが、保証された方式において送信されなければならない、すなわち、1以上のAPIコマンドがクライアントに対して失われた場合に、グラフィック出力を再構成することが難しい、ということが理解されるであろう。
ビデオデータは、ビデオコーデックで符号化され得る。ビデオデータは、連続的に移動しているユーザ体験における最小の影響で圧縮され得る。例えば、ビデオ内でより小さな移動があったときに、高品質コーデックに切り換えること、及び、ビデオ内でより大きな移動があったときに、低品質のコーデックに切り換えることというように、様々な最適化コーデックが使用され得る。人間の目が、ビデオの詳細よりもビデオ内においてより多くの移動を知覚するものであるということから、ハイムーブメントビデオが、より高い率で圧縮され得るということが理解されるであろう。
個別のロストパケットがビデオレンダリング全体において最小の影響を有するということから、そのようなビデオデータが非保証方式で送信され得るということが理解されるであろう。ネットワークの状況が、非常に信頼性のない場合(後述のネットワークスタックによって検出される)には、そのようなビデオデータが、順方向誤り訂正が適用されて、非保証方式で送信され得るということが理解されるであろう。
ピクチャは、ピクチャコーデックで符号化され得る。例えば、ピクチャコーデックは、上で使用されるビデオコーデックよりも高品質であり、グラフィックについても最適化され得る。移動の不足が、改良されたユーザ体験についてレンダリングを必要とするグラフィックの詳細に人の目を注目させるということから、ピクチャは、高品質を必要とする。
そのようなピクチャデータが、非保証方式において、但し、順方向誤り検査とともに送信され得るということが理解されるであろう。後述の順方向誤り検査を利用することによって最小化される得る表示されたグラフィック出力内において、符号化されたピクチャ内のエラーは、アーティファクトの結果を生じさせ得る。それは、保証型配信を利用することが可能な一方で、符号化されたピクチャデータは、非効率となり得る保証方式において送信するために、大きなバンド幅を必要とし得る。
ピクチャデータ及びビデオデータは、後述のモーション検出器モジュールを経由してグラフィック出力内において識別され得る。
パススルーデータは、例えば、クライアントによって圧縮解除され得る符号化されたビデオデータであり得る。符号化されたビデオデータをそのまま復号するための十分なリソース(ハードウェア、コーデック等)をクライアントが有し、符号化されたビデオデータがバンド幅及び品質要求を満たす場合には、サーバは、符号化されたビデオデータを、レンダリングのために、単純にクライアントに直接送信する。
符号化されたビデオデータのサイズ及びロストパケットに対するその抵抗に応じて、保証型、非保証型、又は、順方向誤り訂正配信を伴う非保証型のいずれかが後述のように使用され得るということが理解されるであろう。
605において、サーバは、変換された出力を送信する。上述のように、変換された出力は、デジタル情報を運ぶように構成されるネットワークにわたって送信され得る。変換された出力は、レンダリングのために1以上のクライアントに送信され得る。
606において、サーバは、変換された出力を適切なキューを経由して送信する。様々なキューが利用可能であり、各キューは、異なる送信及び信頼性の特性を伴って構成される。キューの例は以下を含む。
配信及び基本パケットのシーケンスを保証する、信頼性のあるキュー。信頼性のあるキューは、レシーバによって制御チャンネルにわたって送り返される肯定応答を信頼する。信頼性のあるチャンネルからのチャンクを伴う各パケットは、シーケンス番号を有する。定期的に、レシーバは、受信したパケットのシーケンス番号(<<ACKベクター>>チャンク)を送り側に送り返す。送り側がパケットについてのACKをしばらくの間受信しないとき、それは、パケットロストを考慮し、信頼性のあるチャンネルから出たパケットのチャンクを再送信する。それは、パケットの次の部分を送る前に、ACKを待つことはない。
配信及び基本パケットのシーケンスを保証しない信頼性のないキュー。信頼性のないキューは、命令を保存し、レシーバ側で複製を捨てるために、各パケットにインチャンネルシーケンス番号を付ける。いかなる検査も行われず、それ故、最小の可能な遅延及びCPU利用がつくり出される。観測可能なパケットロスが、(インターリービングによって)ネットワークパケットロスレートと等しいか又はこれをやや越え得る。
失われたパケットを回復させるのに役立つ送信されたパケット間に配分された重複情報を送信する、順方向誤り訂正(FEC)を伴う信頼性のないキュー。一実施形態において、FEC実装は、Luby変換コード(LTコード)に基づき、これは、伝統的なReed−Solomonよりも速くかつ単純である。これは、シングルパケットロス及びバーストパケットロスからの回復を許容する。一実施形態において、FECは、XORに対するパケットサブセットを選択するN×Mマトリックス(オリジナルLTコードが疑似ランダムサブセットを使用する)を使用する。ビットレートオーバヘッドは等しい(N+M)/(N*M)。エミュレータを伴う検査が、ネットワークパケットロスレート15%で、追加のFECが、観測可能なパケットロスを0.5%減少させ得るということを示した。5%のネットワークパケットロスについて、観測量は、〜0.01%である。
他の実施形態において、FECは、希に(非常に低いバンド幅、非常に高いパケットロス)、一般の場合(ネットワークバンド幅>>データビットレート、パケットロス<20%)におけるロバスト性を犠牲にする。これは、単一チャンネルが追加の遅延を他のチャンネルに導入することがあり得ないということを保証するUDPパケット内で、チャンネルチャンクをインターリーブすることによって達成され得る。これは、パケットロスに関する遅延をほとんど取り除く。
607において、サーバは手順を終了する。
図7は、クライアントによって実行される、改良型転送プロトコルに関する、受信、復号化、及びレンダリングの手順の例を示す。手順は、上述のようにクライアント上で実行され得る。手順は、図6で上記したようにサーバからのデータを受信し得る。
701において、クライアントは、信頼性のあるキューからデータを受信し得る。信頼性のあるキューは、606において既述されたものであり得る。
702において、クライアントは、信頼性のないキューからデータを受信し得る。信頼性のないキューは、606において既述されたものであり得る。
703において、クライアントは、FECを伴う信頼性のないキューからデータを受信し得る。FECを伴う信頼性のないキューは、606において既述されたものであり得る。
各キューが既述のように動的に適合される1以上のジッタバッファに関連し得るということが理解されるであろう。
704において、クライアントは、任意の組み合わせで、1以上の上記のキューから変換された出力を受信し得る。それぞれのキューは、受信されたデータ及びキュープロトコルに関連する出力をつくり出し得る。ジッタバッファアルゴリズムは、704における多様な種類のデータを運ぶ多様なチャンネルに適用される。ジッタバッファは、レンダリングの後に受信されたデータの認知における歪みを最小化するのに有用である。オーディオデータの場合には、それは不具合及び欠陥を最小化するために使用される。ビデオの場合には、それは「メルティング」及び「ダスト」又は同様の歪みを最小化するために使用され得る。
信頼性のあるキューは、欠けているパケットの再送信を要求し、サーバによって送信されたパケットストリームを出力することが保証される。信頼性のないキューは、クライアントによって受信されると、パケットストリームを出力する。FECを伴う信頼性のないキューは、既述のように、欠けているパケットを、順方向誤り訂正アルゴリズムで再構築することを試みる。
信頼性のないキュー及びFECを伴う信頼性のないキューについて、欠けているパケットは、近隣のパケットから合成され得る。例えば、欠けているパケットは、近接するパケットから推定される値が割り当てられて与えられ得る。
クライアントはまた、ネットワークの混雑の状況に応じて、ジッタバッファの能力を動的に調整できる。
705において、クライアントは、上記のキューから受信される、変換された出力を復号化し得る。クライアントは、変換された出力の各部を復号化する適切な方法を後述のように決定する。
706において、各種の変換された出力は、適切に復号化され得る。適切な復号化が、使用される符号化の種類において部分的に決定される。
例えば、グラフィックAPIコマンドは、コマンドを適切なAPIに送信することによって、クライアント上で複製される。大量のスクリーンデータが、最小のバンド幅の要求に伴って、この方式でレンダリングされ得る。
例えば、ビデオデータが、適切なコーデックによって復号化され得る。適切なコーデックは、サーバによって上記のように選択され得る。
例えば、ピクチャデータが、適切なコーデックによって復号化され得る。適切なコーデックは、サーバによって上記にように選択され得る。
例えば、パススルーデータが、更なる処理なしで、クライアントを簡単にパススルーできる。パススルーデータは、上述のキューから適合され、そして、利用可能なリソース(ハードウェア、コーデック)とともにクライアントによってレンダリングされる。
707において、グラフィック出力がレンダリングされる。既述のように、グラフィック出力のレンダリングは、グラフィックAPIコマンドのレンダリング、ビデオデータのレンダリング、ピクチャデータのレンダリング、パススルーデータのレンダリングを含む。レンダリングは、フレームを構成すること、及び領域境界をデブロッキングすることをさらに含む。
708において、クライアントは、手順を終了する。
図8は、リモートコンピューティングのための改良型転送プロトコルを提供するためのネットワークスタックの例を示す。ネットワークスタックは、上述のように、サーバによって提供され得る。
アプリケーション801は、サーバ上で実行され得る。上述のように、アプリケーション801は、グラフィック出力を提供するサーバ上で実行されるいかなるソフトウェアでもあり得る。例えば、ソフトウェアは、ユーザが望む機能性に関するユーザインターフェースを提供するアプリケーションであり得る。
信頼性のあるチャンネル802は、パケットの保証型送信を提供し得る。信頼性のあるチャンネル802は、上述のような信頼性のあるキューに対応し得る。
信頼性のないチャンネル803は、パケットの非保証型送信を提供し得る。信頼性のないチャンネル803は、上述のような信頼性のないキューに対応し得る。
FECを伴う信頼性のないチャンネル804は、順方向誤り訂正を伴う、パケットの非保証型送信を提供し得る。FECを伴う信頼性のないチャンネルは、上述のようなFECを伴う信頼性のないキューに対応する。FECは、必要であれば、欠けているパケットの再構築を許容する、パケット間のリダンダンシーを提供する。これは、最小の追加オーバヘッドを伴うチャンネルの信頼性を増加させる。
上述のような各キューは、1以上のチャンネルと関係し得る。各チャンネルは、優先度レベルと関係し得る。ネットワークスタックは、その優先度レベルに関係する各チャンネルを操作し得る。加えて、チャンネルは、必要であれば、多数の実行中のアプリケーションの間で分割され得る。
ネットワークフィードバックモジュール805は、ネットワークの混雑を監視し、必要に応じて送信パラメータを修正する。例えば、衝突の増加がネットワーク上で検出された場合には、送信レートが減少させられ得る。増加したパケットロスが検出された場合には、システムは、非保証型チャンネルからFECを伴う非保証型チャンネルまで、特定の種類のデータの送信を切り換えることができる。また、ネットワークの状況に応じて、FECパラメータは、バンド幅及びパケットロスレベルに影響を与えて調整され得る。同様に、少ない数の衝突が検出された場合には、ネットワークフィードバックモジュール805は、送信レートにおける増分が保証されたことを示す。
デマルチプレクサ806が、ネットワーク送信から受信されたパケットを多重化解除する。パケットは、適切なチャンネルに多重化される。例えば、各パケットは、それが属するチャンネルを確認するチャンネル識別子を含み得る。
マルチプレクサ及びパケットキュー807は、ネットワーク伝送にわたる送信のために、チャンネルからパケットキュー内へとパケットを多重化する。上述のように、各パケットは、チャンネル識別子を含み得る。マルチプレクサは、異なるチャンネルの優先度を考慮する。
ACKセンダモジュール808は、信頼性のあるチャンネルについてクライアントから必要な肯定応答を受信し得る。レシーバは、受信されたパケットのパケット識別子を定期的に送信する。例えば、パケット識別子は、ACKベクターチャンクとして送信され得る。一旦、ACKセンダモジュール808が、ACKベクターチャンクを受信すると、識別されたパケットは、レシーバによって受信されたということがわかる。
輻輳制御809は、輻輳制御モジュールを実行し得る。ネットワーク伝送プロトコル内における効果的な輻輳制御は、混雑の衝突を防止する。混雑の衝突が起こると、混雑、高いパケットロス、及び高いパケットによってほとんど有用でないスループットが生じる。従来の輻輳制御アルゴリズムがTCP及び他のネットワークプロトコルにおいて実装されるが、高いバンド幅リンクを使用する低遅延性の高品質データストリーム配信を配信するのに十分効果的かつ積極的ではない。一実施形態において、ネットワーク伝送プロトコルは、利用可能なバンド幅を効果的に調べ、利用可能なネットワークの容量を利用する、異なる輻輳制御メカニズムを利用できる。
用語及び定義
ネットワークの混雑−ネットワークの混雑は、リンク又はノードが、そのサービスの品質が悪化する多くのデータを運ぶときに生じる。典型的な効果は、待ち行列遅延、パケットロス又は新しい接続のブロッキングを含む。
混雑信号−混雑がネットワークパス上で生じたという通知。2つの連続するロスト又はタイムアウトパケットによってトリガされる。
ラウンドトリップタイム(RTT)−パケットが特定のソースから特定の目的地へと移動し、かつ戻るために必要な時間。
インターパケットギャップ(IPG)−送り側によって送られる連続するパケット間の時間遅延。
ラウンド−アルゴリズムの一ステップ。ラウンドタイムは、i番目のラウンドで生じるアクションが(i−1)番目のラウンドで生じたアクションに対するネットワークリアクションへの応答であるような平均RTTに等しい。
輻輳制御アルゴリズムの説明
アルゴリズムは、レートベースであり、IPG値を通じた制御データレートである。反対に、TCPは、混雑ウィンドウ値を利用する。アルゴリズムは、RTTサンプル及び入力される混雑信号を取得する。
RTTサンプルは、それぞれ送信されたパケットに関して計算される。RTTサンプルは、パケットが送られたときと認識されたときとの間の時間遅延である。それ故、RTTサンプルは、認識された各パケットとともに到着する。RTTサンプルが与えられることにより、以下の4つの生成された特性を計算できるようになる。
RTT−ゲインαを伴う受信されたRTTサンプルの指数平滑平均。
詳細RTT(DetailedRTT)−ゲインβ,β>αを伴う受信されたRTTの指数平滑平均。
RTT分散(RTTVariance)−平均RTTからのRTTサンプルの分散。
ベースRTT(BaseRTT)−今までのRTTの下限の近似。
RTTは、長期間にわたる平均であり、詳細RTTは、より短期間にわたる平均であり、そして、ベースRTTは、混雑していないネットワークにわたる達成可能な最小の往復時間の近似である。
この値から、3つの無次元の変数が導かれる。
Figure 2013506348
フィードバックは、その平均の状態に関する現在におけるルータのキューの状態を特徴づける。フィードバックは、通常、(0.5,1.5)の範囲内にあるが、理論上は、ある正の数であり得る。
Figure 2013506348
Figure 2013506348
制御は、IPGの値を変化させることで実行される。送り側は、連続するパケット間の時間遅延が、輻輳制御アルゴリズムから得られるIPGよりも大きいということを保証する。IPGは、送られた各パケットの後に変化し、以下の方式によって計算される。
Figure 2013506348
ここで、ベースIPGi(BaseIPGi)−現在のラウンドについての所望のIPGの値。それは、各ラウンド又は混雑の信号に応答して更新される。
Figure 2013506348
ベースIPGiは、以下のアルゴリズムに従って更新される。
混雑が生じた場合には、
Figure 2013506348
ここで、A>1(通常は2に近い)
i番目のラウンドで混雑が生じない場合には、
Figure 2013506348
Figure 2013506348
上の式は、パケットレートに関して説明される。パケットレートは、毎秒に送られるパケット数である。詳細なIPG制御の考慮なしで、パケットレートは以下のように表現される。
Figure 2013506348
そして、上の式から以下が導かれる。
Figure 2013506348
Figure 2013506348
接続確立シーケンス
サーバは、接続について聞き取りを行い、クライアントは接続(TCPにおいて)を行う。
4ウェイハンドシェイク。より多くのDoS攻撃への抵抗。
3ウェイシャットダウン。TCPにおいて、半分閉じた状態でバグ無し。
接続確立及びシャットダウンのための正確なシーケンスが後述される。
ネットワークサポート810は、UDP/IPのような既存のプロトコルによって提供され得る。他のプロトコルも使用できるが、ネットワークークスタックの多くの利益を取り除くことになるということが理解されるであろう。例えば、TCP/IPの使用は、使用されるチャンネルにかかわらず、全てのパケットの保証型配信を与えることになるが、重要なプロセッサ及びバンド幅オーバヘッドを追加する。
図9は、領域検出器モジュールを提供する、サーバによって実行される手順の例を示す。領域検出器は、動きを検出すること及びグラフィック及びビデオコマンドのストリームを監視することによって、グラフィック出力における各領域に関する適切な符号化スキームを決定する。
グラフィック出力は、最初に領域に分割される。一実施形態において、グラフィックコマンドエンコーディング(符号化)は、領域が相対的に静的であり、かつ、テキストドローイングのような2DグラフィックAPIコマンドによって生成されるテキスト又は簡単なグラフィックを含む場合に適用される。ビデオエンコーディング(符号化)は、強い動きを伴う領域に適用される。デコーディングコーデックCPUリソースがレシーバ上で利用可能である場合に、パススルービデオエンコーディング(符号化)は、メディアAPIコマンドを使用するビデオストリームを再生することによって生成されるビデオを伴う領域に使用され得る。
プログレッシブウェーブレットベースドコーデックが、しばしばゆっくりと変化する動的な大きな部分を伴う領域に適用される。そのような領域の例は、3〜5秒毎に画像を変化させるフォトスライドショウであり得る。ロスのない簡単なピクチャの圧縮が、非常に急速に変化することのない小さな領域に使用される。システムはまた、上述のような分散型キャッシュシステムを使用する。
領域検出器は、相対的に高い周波数(毎秒25フレーム以上)を伴うビットマップ(又はフレーム)Fk(901)を与えるフレーム捕捉法に頼る。領域検出器は、その後、Fk(901)に関する「モーションクラスマップ」Ck(905)を演算するために、後述の簡単なモーション検出ルーティン902を適用する。
その結果としてのCk(905)は、後述のように、グリッドの各ブロックに割り当てられた動きの強度を伴う数のマップである。ステップ903は、その後、領域の組{R1 k,R2 k,…,RN k}907を構築し、これは、後述のように、所定の領域内でのCkのレベルを伴う微小領域の凸包である。一実施形態において、微小領域の凸包の構築のステップは、効率性の目的のために省略され得る(これは、より簡単で、より少ない知的アルゴリズムの結果となる)。
領域には、領域の動きの強度に基づく色が割り当てられ得る。強い動きを伴う領域は赤色であり、他方、動きのない領域は白色である。現れ始める散発的な移動は緑色であり、他方、動きが遅くなっている領域は黄色である。これらの統合された領域907は、マクロ領域と呼ばれ、これとともに、モーションクラスマップCk(905)が入力としてマクロ領域アナライザ908に引き渡される。統合された領域が構築されていない場合には、その後、マクロ領域アナライザアルゴリズムが、知的でなくなるが、単純化されより速くなる。これは実施中にトレードオフとして考慮され得る。
マクロ領域アナライザ908はまた、上述のように、(GDIのような)APIコマンド及び(DirectShowのような)ビデオAPIコマンドのストリームを監視する。アナライザ908は、ビデオエンコーダ、ピクチャエンコーダタイプ1(大きなピクチャ)、及びピクチャエンコーダタイプ2(小さな画像要素)によって使用される領域の組912,910,911を出力する。アナライザ908はまた、913において、ネットワークにわたって送信されないグラフィック及びビデオコマンドを捨てる。
領域の組909(「送信しない」)について、グラフィック/ビデオAPIコマンドエンコーディング(符号化)が使用され、又は、情報の必要性が全く送信されない(ピクチャが静的である)。
一実施形態において、「赤色」の領域が、ビデオとともに符号化され、又は、916におけるビデオパススルーを使用して送信される。動きがGDIコマンドによって生成される(GDI領域が緑色の領域にオーバラップする)「緑色」の領域は、GDIコマンドエンコーディングとともに送信され得る。代わりに、領域のサイズによって、ピクチャコーデック「大」又は「小」が、領域を符号化するために使用され得る。領域が小さな領域に関して大きくかつ簡単である場合に、「黄色」の領域がピクチャコーデックで符号化され得る。簡単なヒューリスティックスの例が存在するということに留意されるべきである。しかしながら、微小及びマクロ領域を操作する他の技術とその状況が発展され得るということが理解されるべきである。
914において、タイプ1のピクチャエンコーダは、プログレッシブ(例えばウェーブレットベースの)画像エンコーダであり得る。エンコーダは、相対的に大きな画像(幅及び高さが閾値Wmax及びHmaxを越える)に対してのみ適用される。
915において、タイプ2のピクチャエンコーダは、単純化した高速無損失画像コンプレッサである。エンコーダは、小さな画像、典型的に、ブロックのサイズ(幅及び高さが閾値Wmax及びHmaxを越えない)に対してのみ適用される。
マクロ領域アナライザのヒューリスティックスがさらに以下に説明される。
図10は、簡単なモーション検出器モジュールを提供するための、サーバによって実行される手順の例を示す。
1001において、サーバは、コンピュータが生成したフレームFk、ここでkはフレーム数、を受信する。
1002において、サーバは、以下で利用されるビデオエンコーディングコアのマクロブロック構造に関して、Fkを(p×q)における矩形又は四角形のブロックbk p,qに分割する。
1003において、フレームFkの各ブロックbk i,jについて、サーバは、ブロックを前のフレームFk-1の同じブロックbk-1 i,jと比較する。
1004において、サーバは、ブロックbk i,jがブロックbk-1 i,jと等しいかどうかを検査する。もし、等しければ、サーバは、1005aに進む。等しくなければ、サーバは、1005bに進む。
1005aにおいて、サーバは、微小領域bi,jについてモーションスコアmk i,jを減少させ、mk i,j=mk i,j−Δ1を設定する、ここで、Δ1は負でない整数である。一実施例において、Δ1=1。
1005bにおいて、サーバは、微小領域bi,jについてモーションスコアmk i,jを増加させ、mk i,j=mk i,j+Δ2を設定する、ここで、Δ2は負でない整数である。一実施例において、Δ2=4。
1006において、サーバは、各モーション領域bi,jに、モーションスコアmk i,jの値に基づいてモーションクラス(「色」)ck i,jを以下のように割り当てる。
k i,j=0の場合、ci,j=0(モーションクラス「透明」)、
0<mk i,j<T1の場合、ck i,j=1(モーションクラス「緑」)、
1=mk i,j<T2の場合、ck i,j=2(モーションクラス「黄」)、
2=mk i,j<T3の場合、ck i,j=3(モーションクラス「赤」)、
ここで、T1,T2,T3は、モーションスコアmi,jに関する閾値である。一例において、T1=10、T2=20、T3=30。
1007において、サーバは、ck i,jの値の(p×q)の長方形配列Ckを出力する。
サーバは、現在のフレームレート(典型的に毎秒20〜40回)の周波数で、例示された処理ルーティンを実行するということが理解されるであろう。
図11Aは、第1のモーション検出例のスクリーンショットを示す。表示されるウェブサイトスクリーンショットは、2つのモーションインテンシブ領域を有する。急速に変化するフラッシュアニメーションであるということから、領域1101は、「赤」として認識されている。領域1102は、Adobe Flashビデオになっているということから、「赤」として認識されている。動きがより強くなくなる領域1101の右側に四角形が存在する。この微小領域は、簡単な無損失ピクチャコーデックを使用して符号化される。ピクチャ要素はまた、キャッシュされる。
図11Bは、第2のモーション検出例のスクリーンショットを示す。表示されるウェブサイトスクリーンショットは、上述のものと同様であり得るが、緑(1105)と黄(1104)を含む。これらの領域は、上記のスクリーンショットとはわずかに異なり、OSグラフィックAPIコマンドによって生成されていない。代わりに、これらの領域は、Adobe Flashアニメーションとして生成されており、領域は、簡単な無損失コーデックで符号化される。代わりに、領域は、キャッシュされ、送信を要求しない。
領域1105は、しばしば変化する大きな画像を含む。マクロ領域ピクチャベースのウェーブレットコーデックが使用されることになる。
領域1103及び1106は、モーションインテンシブであり続け、ビデオエンコーダを使用して符号化されることになる。
図11Cは、第3のモーション検出例のスクリーンショットを示す。表示されるウェブサイトスクリーンショットは、上述したものと同様であるが、そのピクチャがより速く変化し始めたということから、領域1108がその色を緑から黄に変えている。領域検出器は、符号化のために、ピクチャベースのウェーブレットコーデックを使用し続けることができ、又は、領域検出器は、全体の領域をビデオ領域として取り扱うことができる。
領域1107及び1109は、上述のように、符号化を続ける。
図12は、リモートコンピューティングのための改良型転送プロトコルを提供するためのビデオの例を示す。ビデオエンコーダは、H.264/MPEG−4のような標準のビデオエンコーディングアルゴリズム又は専用の低遅延性ビデオエンコーダを実装し得るビデオエンコーディングコア1205を含む。他の状況が改良されたパフォーマンスのための専用のソリューションを必要とする一方で、特定の状況が標準対応のビデオエンコーディングコアを必要とするということが理解されるであろう。
ここで望ましいビデオエンコーダは、画像にわたってブラックマスクを重ねるフレームプレプロセッサ1204を有する。これは、ビデオエンコーダが、必要な領域を処理することのみを許容する。フレームの前処理が後述される。
ビデオエンコーディングコアコントローラ1201は、様々なシステムコンポーネントと通信し、特定のパラメータでエンコーディングコアを初期化し、又は、これらのパラメータ(画像サイズ又はビットレート等)を変える。
いくつかのソリューションについての同時符号化を提供することで、エンコーディングコアの多数のインスタンスが同時に動作することが可能になる。
領域ヒストリ/キャッシュ1202は、領域検出器の使用又はビデオ領域に対する高速予測スイッチングに関するこれまでの分析から、数十のフレーム及び領域の組を維持する。
図13は、グラフィック出力を前処理することについての手順の例を示す。手順は、サーバ上で上述のように実行され得る。記載される手順の目的は、異なる領域の座標及びサイズを伴うエンコーディングコアの頻繁な再初期化を回避することである。そのような手順は、時間及びパフォーマンスに関してコストがかかることを示している。解決策は、大きな領域でそれを初期化し、ブラックレイヤを動いていない領域に重ねることであり、それ故、ビデオエンコーディングコアのビルトインモーションエスティメーション処理の処理リソースを保存することであり、非送信の結果となる大多数の場合に、動いていない領域の効率的な送信を許容する。
1301において、サーバは、フレームFk1308(幅×高さ)のフルサイズの大きさを伴うビデオエンコーディングコアを初期化する
1302において、サーバは、上述のマクロ領域アナライザから、ビデオエンコーディングのための領域の組{VR1 k,VR2 k,…,VRN k}を受信する。
1303において、サーバは、領域{VR1 k,VR2 k,…,VRN k}の画像を、黒色(#000000)及びフレームF’kを得るためにフレームFkのサイズに等しいサイズW×Hの矩形のBLANKW×Hにわたって重ねる。F’k=BLANKW×H+VR1 k+VR2 k+…+VRN k、ここで、「+」の演算は、ビットマップ上で実行される論理和(OR)を表す。VR1 k(1306)、VR2 k(1307)、及びVR3 k(1309)が例示される。
1304において、サーバは、一連のフレーム{F’k}を上述のビデオエンコーディングコアへの入力として提供する。例えば、ビデオエンコーディングコアは、H.264規格を利用し得る。
1305において、サーバは、例えば、ビデオ圧縮のためのH.264/MPEG−4AVC規格又は他の規格を使用して、フレーム{F’k}を符号化する。
図14は、プログレッシブピクチャエンコーダを提供するための手順の例を示す。上述のように、サーバ上で実行され得る。ピクチャエンコーダは、2つのシリーズにおける符号化された画像データ、第1のシリーズ1415及び第2のシリーズ1416を準備するということから、プログレッシブピクチャエンコーダは、進歩的である。1415において、サーバは、大まかな画像をクライアント上で描くためのLLサブバンドを即座に送信する。
第1のシリーズ1415は、より小さなサイズであり、レシーバに速く送信され、画像のぼやけたバージョンを提供する。その一方、第2のシリーズ1416は、より多くのデータを伴う圧縮されたピクチャのフルクォリティバージョンである。第2のシリーズ1416は、より大きな遅延性とともにレシーバに送信され得る。
エンコーダは、追加の粒度を提供し得るということが理解されるであろう。このエンコーダが大画像に適しているということが理解されるであろう。
第1ステップにおいて、エンコーダは、入力RGB画像(1401)をYCbCrカラースペース(1402)に変換し、Y成分(1403)、Cb成分(1404)、及びCr成分(1405)をつくり出す。Y成分は、ルマ成分(「明るさ」)である。Cr成分は、青が異なる彩度成分である。Cr成分は、赤が庫尾なる彩度成分である。
第2のステップにおいて、エンコーダは、上の各成分(1406−1408)に対して、ハール(Haar)のような目立たないウェーブレット変換を適用する。Cb及びCr成分のためのプロセッシングパイプラインは、Y成分(図中に示される)と同じであり得る。
第3のステップにおいて、エンコーダは、結果(1415)を出力する前に、RLEコンプレッサ(1413)を伴う結果を圧縮し、ネットワークへの送信に先だって、RLEとともにそれを圧縮する第1のデータシリーズのためのLLウェーブレットサブバンドを利用する。ステップ1413は、LLサブバンドからの結果を、全体の出力サイズから半分をやや上回るほどに圧縮することができる。
ランレングス符号化(RLE)が、データの「ラン(runs)」(「ラン」は、連続したデータ要素内で同じデータが生じるシーケンスのことである)が、オリジナルランとしてよりもむしろ、単一データ値又はカウントとして保存されるデータ圧縮の形式であるということが理解されるであろう。RLEは、非常に簡単でかつ高速の圧縮アルゴリズムである。しかしながら、他のデータ圧縮アルゴリズムが使用されてもよい。
3つの残りの3ウェーブレットサブバンドが同様に処理される。HL、LH及びHHサブバンド(1410−1412)が、出力される(1416)前に、RLEコンプレッサ(1414)に供給される。
ウェーブレットサブバンドは、4つの「サブ画像」を表し、LLは、オリジナル画像のより小さなバージョンを表し、HHは、ノイズレベルを表すということが理解されるであろう。サブバンドは、高度の相関を有し、良く圧縮され得る(すなわち、RLEアルゴリズムで)。
図15Aは、パケット構造の例を示す。パケットフォーマット1500は、上記のシステム内での使用のためのパケットフォーマットの一例を示す。
図15Bは、チャンクフォーマットの例を示す。汎用チャンクフォーマット1502は、上記のシステム内での使用のためのチャンクフォーマットの一例を示す。
図15Cは、信頼性のあるチャンネル及び信頼性のないチャンネルのためのチャンクフォーマットの例を示す。チャンクフォーマット1504は、上記のシステム内での使用のためのチャンクフォーマットの一例を示す。
図15Dは、FECチャンネルのためのチャンクフォーマットの例を示す。チャンクフォーマット1506は、上記のシステム内での使用のためのチャンクフォーマットの一例を示す。
図15Eは、ピングチャンクフォーマットの例を示す。ピングチャンクフォーマット1508は、上記のシステム内での使用のためのチャンクフォーマットの一例を示す。
図15Fは、ピングレスポンスチャンクの例を示す。ピングレスポンスチャンクフォーマット1510は、上記のシステム内での使用のためのチャンクフォーマットの一例を示す。
図15Gは、ハンドシェイクシーケンスを例示する。1512において、クライアントは、そのイニシャルシーケンス番号を伴うINITを送信することによって開始する。
図15Hは、initチャンクの例を示す。initチャンクフォーマット1514は、上記のシステム内での使用のためのチャンクフォーマットの一例を示す。
図15Iは、init_ackチャンクの例を示す。init_ackチャンクフォーマット1516は、上記のシステム内での使用のためのチャンクフォーマットの一例を示す。サーバは、サーバイニシャルシーケンス番号及びクッキー(バイナリデータ)を含むINIT_ACKに応答する。
図15Jは、cookie_echoチャンクの例を示す。cookie_echoチャンクフォーマット1518は、上記のシステム内での使用のためのチャンクフォーマットの一例を示す。上記のinit_ackチャンクに応答して、クライアントは、F(クッキー)を含むCOOKIE_ECHOに応答する。
図15Kは、cookie_ackチャンクの例を示す。cookie_ackチャンクフォーマット1518は、上記のシステム内での使用のためのチャンクフォーマットの一例を示す。上記のcookie_ackチャンクに応答して、サーバは、COOKIE_ACKを送信し、それ故、クライアントに連続接続を通知する。サーバは、連続するCOOKIE_ECHOの後にのみ、あらゆるヘビーウェイト内部構造を割り当て、それ故、TCPにおけるSYN_floodに類似する攻撃を防ぐ。
図15Lは、接続シャットダウンシーケンスの例を示す。フロー1522は、ピア1が全てのペンディングデータを送信し、その後、SHUTDOWNを送信する。
ピア2は、SHUTDOWNを受信すると、全てのペンディングデータを送信し、その後、SHUTDOWN_ACKを送信する。
SHUTDOWN_ACKを受信すると、ピア1は、COMPLETEを送信し、それ故、ピア2に、接続がシャットダウンされたことを通知する。
図15Mは、シャットダウンチャンクの例を示す。シャットダウンチャンクフォーマット1524は、上記のシステム内での使用のためのチャンクフォーマットの一例を示す。
図15Nは、shutdown_ackチャンクの例を示す。shutdown_ackチャンクフォーマット1526は、上記のシステム内での使用のためのチャンクフォーマットの一例を示す。
図15Oは、shutdown_completeチャンクの例を示す。shutdown_completeチャンクフォーマット1528は、上記のシステム内での使用のためのチャンクフォーマットの一例を示す。
上述のレシーバの一実施形態がコンタクトレンズディスプレイであり得るということが理解されるであろう。コンタクトレンズディスプレイは、「Augmented Reality in a Contact Lens」IEEEスペクトラム、2009年9月、http://www.spectrum.ieee.org/ biomedical/bionics/augmented-reality-in-a-contact-lens/0(2009年9月28日に最後に検索)において議論されており、参照によってここに組み入れられる。そのようなコンタクトレンズは、着用者に情報を表示でき、ワイヤレス装置にわたって通信できる。これらの装置は、上述のようにレシーバとして機能でき、着用者の視界にグラフィックを重ねることで、ユーザの現実感を増大させ得る。コンパクトな装置になると、これらの装置は、例えば、グラフィックコマンド及びテキストをレンダリングするだけというように、機能的に制限され得る。そのような装置の一実施形態は、着用者が自身の環境における対象物に集中できるように、関連するテキストを表示することができる。
上記のグラフィック出力が3Dグラフィックを含み得るということが理解されるであろう。3Dグラフィックは、多数のカメラで撮られ、その後に、ホログラム又は他の3D画像をつくり出すために一緒に統合される特別なグラフィックであり得る。そのような3Dグラフィックは、上記のシステムによって容易に支援され、3Dグラフィックは、サーバによって適切に圧縮され、レンダリングのためにレシーバに送信される。レシーバが適切なコンピューティングリソースとレンダリング性能を有すると仮定すると、3Dグラフィックは、ユーザによってレンダリングされ得る。3Dグラフィックは、「3D: It's Nearly There」エコノミスト技術季刊誌、2009年9月5日、第22頁で議論され、参照によってここに組み入れられる。
上述のように、本発明の一実施形態は、コンピュータ生成出力、特に、グラフィック出力、または他の種類の出力を提供するためのシステムであり得る。システムは、デジタル情報を運ぶように構成されるネットワークを含む。システムは、ネットワークと通信するサーバを含み、サーバは、アプリケーション、及び出力捕捉及びエンコーディングエンジンモジュール(OCEエンジン)を実行するように構成される。アプリケーションは、グラフィック出力を提供する。OCEエンジンモジュールは、さらに、アプリケーションからグラフィック及び他の種類の出力を傍受するように構成される。OCEエンジンモジュールは、さらに、グラフィック出力を、グラフィックコマンド及びビデオコーデックデータの少なくとも1つに変換するように構成される。OCEエンジンは、データ圧縮及び符号化(オーディオストリーム、データファイル等)のための適切な方法を利用して、他の種類の出力を符号化する。OCEエンジンモジュールは、さらに、変換された出力をネットワークにわたって送信するように構成される。システムは、ネットワークにわたってサーバと通信するクライアントを含み、クライアントは、グラフィック及びビデオの復号化及びレンダリング(GVDRエンジン)を実行するように構成される。GVDRエンジンモジュールは、送信された、変換された出力を受信することに応じて、グラフィック出力をレンダリングするように構成される。GVDRエンジンモジュールは、クライアントでユーザ入力を傍受するように構成される。GVDRエンジンモジュールは、傍受されたユーザ入力を、サーバ上の入力処理モジュールに送信するように構成される。OCEエンジンモジュールは、さらに、グラフィック出力を、ピクチャコーデックデータ及びパススルーデータの少なくとも1つに変換するように構成され得る。OCEエンジンモジュールは、さらに、領域検出器モジュールを実行するように構成され得る。領域検出器モジュールは、グラフィック出力を複数の領域に分割するように構成される。領域検出器モジュールは、各領域に関連するグラフィック出力を変換するように構成される。グラフィック出力は、フルモーションビデオを含むことが可能であり、フルモーションビデオは、複数の領域の1つの内に含まれる。グラフィックコマンドは、ユニバーサルインターミディアリーグラフィックコマンド言語によって表され得る。クラウドエンジンモジュールは、さらに、傍受されたユーザ入力をクライアントから受信するように構成される。サーバ上の入力処理モジュールは、さらに、傍受されたユーザ入力を処理のためにアプリケーションに提供するように構成される。ネットワークは、信頼性のない状態であり、ネットワークにわたる送信は、非保証型であり得る。
本発明の他の実施形態は、グラフィック出力を提供するためのシステムであり得る。システムは、デジタル情報を運ぶように構成されるネットワークを含む。システムは、ネットワークと通信するサーバを含み、サーバは、アプリケーションとOCEエンジンモジュールとを実行するように構成される。アプリケーションは、グラフィック出力を提供し得る。OCEエンジンモジュールは、さらに、グラフィック及び他の種類のコンピュータ生成出力をアプリケーションから傍受するように構成される。OCEエンジンモジュールは、さらに、傍受された出力をグラフィックコマンド及びビデオコーデックデータに変換するように構成される。OCEエンジンモジュールは、さらに、変換された出力をネットワークにわたって送信するように構成される。システムは、ネットワークにわたってサーバと通信する複数のクライアントを含み、複数のクライアントのそれぞれは、GVDRエンジンモジュールを実行するように構成される。GVDRエンジンモジュールは、送信された、変換された出力を受信することに応じて、グラフィック出力をレンダリングするように構成される。GVDRエンジンモジュールは、ユーザ入力を傍受するように構成される。GVDRエンジンモジュールは、傍受されたユーザ入力を、アプリケーションによって処理するために、サーバ上の入力処理モジュールに送信するように構成される。
本発明の他の実施形態は、グラフィック及び他の種類のコンピュータ生成出力を送信するための方法であり得る。本方法は、グラフィック出力又は他の種類のコンピュータ生成出力を、実行中のアプリケーションから傍受することを含む。本方法は、傍受されたグラフィック出力を、グラフィックコマンド及びビデオコーデックデータの少なくとも1つに変換することを含む。本方法は、変換された出力を、GVDRエンジンモジュールを実行するクライアントに、ネットワークにわたって送信する。その送信は、変換された出力を信頼性のあるキュー、信頼性のないキュー、及び順方向誤り訂正を伴う信頼性のないキューに解析し、各キューは、複数のチャンネルを有する。その送信は、信頼性のあるキューを送信することを含み、信頼性のあるキューの各パケットは、クライアントによって認識され、かつ、信頼性のあるパケットシーケンス番号を含む。その送信は、信頼性のないキューを送信することを含み、信頼性のないキューの各パケットが、信頼性のないパケットシーケンス番号を含む。その送信は、順方向誤り訂正を伴う信頼性のないキューを送信することを含み、順方向誤り訂正を伴う信頼性のないキューのパケットが、失われたパケットを回復するための重複情報を含む変換コードを含む。傍受されたグラフィック出力は、さらに、ピクチャコーデックデータ及びパススルーデータの少なくとも1つに変換され得る。本方法は、グラフィック出力を複数の領域に分割することを含む。本方法は、各領域に関連するグラフィック出力を変換することを含む。グラフィック出力は、フルモーションビデオを含んでもよく、フルモーションビデオは、複数の領域のうちの1つに含まれる。グラフィックコマンドは、ユニバーサルインターミディアリーグラフィックコマンド言語によって表され得る。信頼性のあるキューは、グラフィックコマンドを送信するために使用され、信頼性のないキューは、ビデオコーデックデータを送信するために使用される。変換された出力を送信することは、さらに、輻輳制御に基づく送信バンド幅を制限することを含む。本方法は、傍受されたユーザ入力を受信することを含む。本方法は、処理のために実行中のアプリケーションに傍受されたユーザ入力を提供することを含む。
本発明の他の実施形態は、グラフィック出力を受信するための方法であり得る。本方法は、変換された出力を、ネットワークにわたってサーバから受信することを含み、サーバは、グラフィック出力を提供するアプリケーションを実行し、OCEエンジンモジュールが、グラフィック出力を変換された出力へと変換する。その受信は、さらに、信頼性のあるキューを受信することを含み、信頼性のあるキューのパケットが、信頼性のあるパケットのシーケンス番号を含み、信頼性のあるキューを受信することは、さらに、信頼性のあるキューパケットを受信することに応じて、サーバに確認を送信することを含む。その受信は、さらに、信頼性のないキューを受信することを含み、信頼性のないキューの各パケットが、信頼性のないパケットのシーケンス番号を含む。その受信は、さらに、順方向誤り訂正を伴う信頼性のないキューを受信することを含み、順方向誤り訂正を伴う信頼性のないキューの各パケットが、失われたパケットを回復するための重複情報を含む変換コードを含む。その受信は、さらに、信頼性のあるキュー、信頼性のないキュー、及び順方向誤り訂正を伴う信頼性のないキューを、受信された、変換された出力へとコンパイルすることを含む。本方法は、受信された、変換された出力からグラフィック出力をレンダリングすることを含む。本方法は、ユーザ入力を傍受することに応じて、傍受されたユーザ入力をクラウドエンジンモジュールに送信することを含む。ユーザ入力は、信頼性のあるキューを経由してサーバに送信され得る。その受信は、さらに、ジッタバッファによって処理することを含む。変換された出力は、グラフィックコマンド、ビデオコーデックデータ、ピクチャコーデックデータ、及びパススルーデータの少なくとも1つを含む。グラフィック出力は、複数の領域に分割され、各領域に関連するグラフィック出力は、グラフィックコマンド、ビデオコーデックデータ、ピクチャコーデック、及びパススルーデータの少なくとも1つに変換される。グラフィック出力は、フルモーションビデオを含み、フルモーションビデオは、複数の領域のうちの1つに含まれる。
この明細書において記載される特定の実施形態は、本発明の例又は実施形態を表し、限定ではなく、本来例示的なものである。上記の記載において、説明の目的のため、多くの特有の詳細が、本発明の包括的な理解を提供するために設けられる。しかしながら、本発明がこれらの特有の詳細なしで実施され得るということが当業者にとって明らかとなるであろう。
明細書中の「一実施形態」又は「実施形態」又は「いくつかの実施形態」についての参照は、実施形態に関連する特定の特徴、構造、又は特性が、本発明の少なくとも1つの実施形態に含まれるということを意味する。様々な実施形態の特徴及び態様が、他の実施形態に統合されてもよく、この明細書中に例示される実施形態は、例示され又は記載される全ての特徴又は態様なしで実施され得る。前記の例及び実施形態は、例であり、限定的なものではないということが当業者に理解されるであろう。
システム、機器及び方法が、最も実用的で効果的な実施形態であるということが現在理解されているということについて記載された一方で、その開示が、開示された実施形態に限定される必要がないということが理解されるべきである。明細書の解釈及び図面の理解において、当業者にとって明白な、それに対する全ての置換、拡張、等価物、結合、及び改良が本発明の正確な精神及び範囲内に含まれるということが意図されている。それ故、開示の範囲は、全てのそのような修正及び同様な構造を包含するように、幅広い解釈に一致させるべきである。それ故、本出願は、本発明の正確な精神及び範囲内に収まる全ての修正、置換及び等価物を含むということが意図されている。
この開示の特徴及び目的は、同様の参照符号または同様の要素を示す添付図面とともに、以下の記載を参照してより明確になるであろう。
図1は、リモートコンピューティングのための改良型転送プロトコルを提供するためのシステムの例を示す。 図2は、リモートコンピューティングのための改良型転送プロトコルを提供するためのサーバの例を示す。 図3は、リモートコンピューティングのための改良型転送プロトコルを提供するためのクライアントの例を示す。 図4は、リモートコンピューティングのための改良型転送プロトコルを提供するための、サーバにおいて実行される出力キャプチャ及びエンコーディングエンジンの例を示す。 図5は、リモートコンピューティングのための改良型転送プロトコルを提供するための、クライアントにおいて実行されるデコーディング及びレンダリングエンジンの例を示す。 図6は、改良型転送プロトコルに関する、捕捉、符号化及び送信のためのサーバによって実行される手順の例を示す。 図7は、改良型転送プロトコルに関する、受信、復号化及びレンダリングのためのクライアントによって実行される手順の例を示す。 図8は、リモートコンピューティングのための改良型転送プロトコルを提供するためのネットワークスタックの例を示す。 図9は、領域検出器モジュールを提供するためのサーバによって実行される手順の例を示す。 図10は、単純なモーション検出器モジュールを提供するためのサーバによって実行される手順の例を示す。 図11Aは、第1のモーション検出の例のスクリーンショットを示す。図11Bは、第2のモーション検出の例のスクリーンショットを示す。図11Cは、第3のモーション検出の例のスクリーンショットを示す。 図12は、リモートコンピューティングのための改良型転送プロトコルを提供するためのビデオエンコーダの例を示す。 図13は、グラフィック出力の前処理のための手順の例を示す。 図14は、プログレッシブピクチャエンコーダを提供するための手順の例を示す。 図15Aは、パケット構造の例を示す。パケットフォーマット1500は、 上記のシステム内での使用のためのパケットフォーマットの一例を示す。 図15Bは、チャンクフォーマットの例を示す。 図15Cは、信頼性のあるチャンネル及び信頼性のないチャンネルのための チャンクフォーマットの例を示す。 図15Dは、FECチャンネルのためのチャンクフォーマットの例を示す。 図15Eは、ピングチャンクフォーマットの例を示す。 図15Fは、ピングレスポンスチャンクの例を示す。 図15Gは、ハンドシェイクシーケンスを例示する。 図15Hは、initチャンクの例を示す。 図15Iは、init_ackチャンクの例を示す。 図15Jは、cookie_echoチャンクの例を示す。 図15Kは、cookie_ackチャンクの例を示す。 図15Lは、接続シャットダウンシーケンスの例を示す。 図15Mは、シャットダウンチャンクの例を示す。 図15Nは、shutdown_ackチャンクの例を示す。 図15Oは、shutdown_completeチャンクの例を示す。
1 k i,j<T2の場合、ck i,j=2(モーションクラス「黄」)、
2 k i,j<T3の場合、ck i,j=3(モーションクラス「赤」)、

Claims (34)

  1. デジタルコンピュータネットワークにわたってクライアントと通信するサーバと、
    前記サーバによって実行可能なアプリケーションプログラムと、を備え、
    前記アプリケーションは、コンピュータ生成出力を提供し、
    前記サーバは、
    前記コンピュータ生成出力をアプリケーションプログラムから傍受し、
    前記コンピュータ生成出力を、グラフィックコマンド及びビデオコーデックデータの少なくとも1つに変換し、かつ、
    変換された前記出力を前記ネットワークにわたって送信するように構成され、
    前記クライアントは、
    グラフィック及びビデオを実行、復号化及びレンダリングし、
    送信された、変換された出力を受信することに応じて、前記グラフィック出力をレンダリングし、
    ユーザ入力を傍受し、かつ、
    傍受された前記ユーザ入力を前記ネットワークにわたって前記サーバに送信するように構成される
    システム。
  2. 前記サーバはさらに、前記グラフィック出力を、ピクチャコーデックデータ及びパススルーデータの少なくとも1つに変換するように構成される請求項1に記載のシステム。
  3. 前記サーバはさらに、
    前記グラフィック出力を複数の領域に分割し、
    グラフィック出力をそれぞれの領域に関して変換し、
    複数の領域の境界領域を平滑化する
    ように構成される請求項2に記載のシステム。
  4. 前記グラフィック出力は、フルモーションビデオを含み、前記フルモーションビデオは、複数の領域のうちの1つに含まれる請求項3に記載のシステム。
  5. 前記グラフィックコマンドは、ユニバーサルインターミディアリーグラフィックコマンド言語によって表現される請求項1に記載のシステム。
  6. 前記サーバはさらに、
    前記クライアントから傍受された前記ユーザ入力を受信し、
    傍受された前記ユーザ入力を処理のために前記アプリケーションに提供する
    ように構成される請求項1に記載のシステム。
  7. 前記ネットワークは信頼性がなく、前記ネットワークにわたる送信が非保証型である請求項1に記載のシステム。
  8. 前記サーバはさらに、ローカライズドモーション検出ルーティン及びモーションエスティメーションルーティンの少なくとも1つを利用して、前記グラフィック出力を前記ビデオコーデックに変換するように構成されるとともに、前記グラフィック出力を、複数の領域の組に分割し、各領域の組は、同様なモーション特性を共有する請求項1に記載のシステム。
  9. 前記サーバは、各領域の組についてのモーションスコアを演算するように構成され、前記モーションスコアは、モーション特性を表示する請求項8に記載のシステム。
  10. 前記サーバはさらに、処理のためのグラフィック動作を伴う領域を選択することによって、変換の前に、前記グラフィック出力を前処理するように構成される請求項1に記載のシステム。
  11. 前記前処理は、静的な領域を覆うように、マスクを前記グラフィック出力に重ねることをさらに含む請求項10に記載のシステム。
  12. 前記サーバはさらに、標準ベースのエンコーディングコア及び各領域に関する領域ヒストリを含む専用のエンコーディングコアの少なくとも1つとともに、前記グラフィック出力を前記ビデオコーデックに符号化するように構成される請求項1に記載のシステム。
  13. 前記サーバさらには、
    RGB画像データを受信し、
    前記RGB画像データにおいてウェーブレット変換を実行し、
    前記変換されたデータを、LLサブバンドデータを含む第1のシリーズと、HLサブバンドデータ、LHサブバンドデータ、及びHHサブバンドデータを含む第2のシリーズとに分割し、
    前記第1のシリーズを圧縮後に前記レシーバに送信し、
    前記第1のシリーズの送信の後に、前記第2のシリーズを圧縮後に前記レシーバに送信するように構成される請求項1に記載のシステム。
  14. デジタルコンピュータネットワークにわたって複数のクライアントと通信するサーバと、サーバによって実行可能なアプリケーションプログラムとを備え、
    前記アプリケーションは、コンピュータ生成グラフィック出力を生成し、
    前記サーバは、
    前記コンピュータ生成グラフィック出力を前記アプリケーションプログラムから傍受し、
    傍受された前記出力を、グラフィックコマンド及びビデオコーデックデータの少なくとも1つに変換し、かつ
    変換された前記出力を前記ネットワークにわたって送信するように構成され、
    各クライアントは、
    グラフィック及びビデオを実行、復号化、及びレンダリングし、
    送信された、変換された出力を受信することに応じて、前記グラフィック出力をレンダリングし、
    ユーザ入力を傍受し、かつ
    傍受された前記ユーザ入力を前記ネットワークにわたって前記サーバに送信するように構成される
    システム。
  15. 実行中のアプリケーションからグラフィック出力を傍受すること、
    傍受された前記出力を、グラフィックコマンド及びビデオコーデックデータの少なくとも1つに変換すること、及び、
    変換された前記出力をネットワークにわたってクライアントに送信すること、を備え、
    送信は、
    変換された前記出力を信頼性のあるキュー、信頼性のないキュー及び順方向誤り訂正を伴う信頼性のないキューへと構文解析すること、ここで、各キューが複数のチャンネルを有し、各チャンネルは、優先度に関連する、
    前記信頼性のあるキューを送信すること、ここで、前記信頼性のあるキューにおける各パケットが、クライアントによって認識され、かつ、信頼性のあるパケットシーケンス番号を含む、
    前記信頼性のないキューを送信すること、ここで、前記信頼性のないキューにおける各パケットが信頼性のないパケットシーケンス番号を含む、及び、
    順方向誤り訂正を伴う前記信頼性のないキューを送信すること、ここで、順方向誤り訂正を含む前記信頼性のないキューにおける各パケットが、失われたパケットを回復させるための重複情報を含む変換コードを含む、を備える
    コンピュータに実装された方法。
  16. 傍受された前記出力はさらに、ピクチャコーデックデータ及びパススルーデータの少なくとも1つに変換される請求項15に記載のコンピュータに実装された方法。
  17. 前記グラフィック出力を複数の領域に分割すること、
    各領域に関連するグラフィック出力を変換すること、及び、
    複数の領域の間の境界領域を平滑化すること
    をさらに備える請求項16に記載のコンピュータに実装された方法。
  18. 前記グラフィック出力は、フルモーションビデオを含み、前記フルモーションビデオは、複数の領域のうちの1つに含まれる請求項17に記載のコンピュータに実装された方法。
  19. 前記グラフィックコマンドは、ユニバーサルインターミディアリーグラフィックコマンド言語によって表現される請求項15に記載のコンピュータに実装された方法。
  20. 前記信頼性のあるキューがグラフィックコマンドを送信するために使用され、前記信頼性のないキューがビデオコーデックデータを送信するために使用される請求項15に記載のコンピュータに実装された方法。
  21. 変換された前記出力を送信することは、輻輳制御に基づくバンド幅の送信を制限することをさらに含む請求項15に記載のコンピュータに実装された方法。
  22. 傍受されたユーザ入力を受信すること、及び、
    傍受された前記ユーザ入力を処理用の実行中のアプリケーションに提供すること、
    をさらに備える請求項15に記載のコンピュータに実装された方法。
  23. 変換された出力をネットワークにわたってサーバから受信すること、ここで、前記サーバは、グラフィック出力を提供し、かつ、前記グラフィック出力を変換された前記出力へと変換するアプリケーションを実行する、を備え、
    前記受信は、
    信頼性のあるキューを受信すること、ここで、前記信頼性のあるキューにおける各パケットが、信頼性のあるパケットシーケンス番号を含み、前記信頼性のあるキューを受信することは、信頼性のあるパケットキューを受信することに応じて、サーバに確認を送信することをさらに含む、
    信頼性のないキューを受信すること、ここで、前記信頼性のないキューにおける各パケットは、信頼性のないパケットシーケンス番号を含む、
    順方向誤り訂正を伴う信頼性のないキューを受信すること、ここで、順方向誤り訂正を伴う前記信頼性のないキューは、失われたパケットを回復させるための重複情報を含む変換コードを含む、及び、
    前記信頼性のあるキュー、信頼性のないキュー、及び順方向誤り訂正を伴う信頼性のないキューを、受信され、変換された前記出力にコンパイルすること、を備え、
    受信され、変換された前記出力からグラフィック出力をレンダリングすること、及び、
    ユーザ入力の傍受に応じて、傍受された前記ユーザ入力を前記サーバに送信すること、
    を備えるコンピュータに実装された方法。
  24. 前記ユーザ入力が、前記信頼性のあるキューを経由して前記サーバに送信される請求項23に記載のコンピュータに実装された方法。
  25. 前記受信は、ジッタバッファによって処理することをさらに含む請求項23に記載のコンピュータに実装された方法。
  26. 各キューが複数のチャンネルに関係し、各チャンネルが、ジッタバッファとともに入力データを処理する請求項23に記載のコンピュータに実装された方法。
  27. 変換された前記出力は、グラフィックコマンド、ビデオコーデックデータ、ピクチャコーデックデータ及びパススルーデータの少なくとも1つを含む請求項23に記載のコンピュータに実装された方法。
  28. 前記グラフィック出力が複数の領域に分割され、各領域に関連する前記グラフィック出力が、グラフィックコマンド、ビデオコーデックデータ、ピクチャコーデックデータ、及びパススルーデータの少なくとも1つに変換される請求項27に記載の方法。
  29. 前記グラフィック出力は、フルモーションビデオを含み、前記フルモーションビデオは、複数の領域のうちの1つに含まれる請求項28に記載の方法。
  30. デジタルネットワークにわたってクライアントと通信するサーバと、
    前記サーバによって実行可能なアプリケーションプログラムとを備え、
    前記アプリケーションプログラムは、コンピュータ生成グラフィック出力を生成し、
    前記サーバは、
    前記コンピュータ生成グラフィック出力を前記アプリケーションから傍受し、
    前記コンピュータ生成出力を複数のデータストリームに変換し、かつ、
    変換された前記出力をネットワークにわたって送信するように構成され、
    前記クライアントは、
    グラフィック及びビデオを復号化及びレンダリングし、
    送信された、変換された前記出力を受信することに応じて、前記コンピュータ生成出力をレンダリングし、
    ユーザ入力を傍受し、かつ、
    傍受された前記ユーザ入力を前記サーバに送信するように構成される
    システム。
  31. 前記ネットワークは、UDPプロトコル上で動作する請求項30に記載のシステム。
  32. 前記サーバはさらに、遅延性を最小化し、利用可能なバンド幅の最適な使用のための輻輳制御モジュールを実行するように構成される請求項30に記載のシステム。
  33. 前記サーバはさらに、現在のネットワークの混雑レベルに応じてFECパラメータを調整するためのネットワークフィードバックユニットを実行するように構成される請求項30に記載のシステム。
  34. 前記サーバは、インタセプタモジュールとともにコンピュータ生成出力を傍受し、前記コンピュータ生成出力は、オーディオ信号、コンピュータデータ、USBインターフェース信号及びプリントスプールの少なくとも1つである請求項30に記載のシステム。
JP2012531074A 2009-09-29 2010-09-24 低遅延性転送プロトコルのための方法及びシステム Pending JP2013506348A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/569,876 US8171154B2 (en) 2009-09-29 2009-09-29 Method and system for low-latency transfer protocol
US12/569,876 2009-09-29
PCT/US2010/050237 WO2011041229A2 (en) 2009-09-29 2010-09-24 Method and system for low-latency transfer protocol

Publications (1)

Publication Number Publication Date
JP2013506348A true JP2013506348A (ja) 2013-02-21

Family

ID=43781660

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012531074A Pending JP2013506348A (ja) 2009-09-29 2010-09-24 低遅延性転送プロトコルのための方法及びシステム

Country Status (8)

Country Link
US (4) US8171154B2 (ja)
EP (1) EP2484091A4 (ja)
JP (1) JP2013506348A (ja)
KR (2) KR101443070B1 (ja)
CN (1) CN102668495A (ja)
AU (1) AU2010300823A1 (ja)
CA (1) CA2774014A1 (ja)
WO (1) WO2011041229A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015202053A (ja) * 2010-04-23 2015-11-12 クアルコム,インコーポレイテッド 複数の受信機間の無線電力配分

Families Citing this family (137)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8745173B1 (en) 2011-12-30 2014-06-03 hopTo Inc. Client computing system for and method of receiving cross-platform remote access to 3D graphics applications
US20080085817A1 (en) * 2003-09-22 2008-04-10 Brentlinger Karen W Exercise device for use in swimming
US9401937B1 (en) 2008-11-24 2016-07-26 Shindig, Inc. Systems and methods for facilitating communications amongst multiple users
US8405702B1 (en) 2008-11-24 2013-03-26 Shindig, Inc. Multiparty communications systems and methods that utilize multiple modes of communication
US9135024B2 (en) * 2008-11-30 2015-09-15 Red Hat Israel, Ltd. Playing multimedia content at remote graphics display client
US8788079B2 (en) 2010-11-09 2014-07-22 Vmware, Inc. Monitoring audio fidelity and audio-video synchronization
US9214004B2 (en) 2008-12-18 2015-12-15 Vmware, Inc. Watermarking and scalability techniques for a virtual desktop planning tool
US9674562B1 (en) * 2008-12-18 2017-06-06 Vmware, Inc. Quality evaluation of multimedia delivery in cloud environments
US9712579B2 (en) 2009-04-01 2017-07-18 Shindig. Inc. Systems and methods for creating and publishing customizable images from within online events
US9344745B2 (en) 2009-04-01 2016-05-17 Shindig, Inc. Group portraits composed using video chat systems
US8779265B1 (en) 2009-04-24 2014-07-15 Shindig, Inc. Networks of portable electronic devices that collectively generate sound
EP2302845B1 (en) 2009-09-23 2012-06-20 Google, Inc. Method and device for determining a jitter buffer level
US8171154B2 (en) 2009-09-29 2012-05-01 Net Power And Light, Inc. Method and system for low-latency transfer protocol
WO2011075670A1 (en) * 2009-12-18 2011-06-23 Google Inc. Matching encoder output to network bandwidth
GB2477793A (en) * 2010-02-15 2011-08-17 Sony Corp A method of creating a stereoscopic image in a client device
US9172979B2 (en) * 2010-08-12 2015-10-27 Net Power And Light, Inc. Experience or “sentio” codecs, and methods and systems for improving QoE and encoding based on QoE experiences
WO2012021173A2 (en) 2010-08-12 2012-02-16 Net Power And Light Inc. System architecture and methods for experiential computing
WO2012021902A2 (en) 2010-08-13 2012-02-16 Net Power And Light Inc. Methods and systems for interaction through gestures
CN102375714A (zh) * 2010-08-16 2012-03-14 慧荣科技股份有限公司 计算机系统及相关的影像绘图装置和显示装置
WO2012037076A1 (en) * 2010-09-13 2012-03-22 Neverware, Inc. Methods and apparatus for connecting a thin client to a virtual desktop
KR20120040958A (ko) * 2010-10-20 2012-04-30 삼성전자주식회사 휴대단말기의 통신 방법
EP2630630A2 (en) * 2010-10-21 2013-08-28 Net Power And Light, Inc. System architecture and method for composing and directing participant experiences
US20120154678A1 (en) * 2010-12-20 2012-06-21 Kuo-Lung Chang Receiving device, screen frame transmission system and method
US8886699B2 (en) * 2011-01-21 2014-11-11 Cloudium Systems Limited Offloading the processing of signals
US8838680B1 (en) 2011-02-08 2014-09-16 Google Inc. Buffer objects for web-based configurable pipeline media processing
WO2012142263A2 (en) 2011-04-12 2012-10-18 Applied Science, Inc. Systems and methods for managing blood donations
EP2710457A1 (en) * 2011-05-20 2014-03-26 Dream Chip Technologies GmbH Method for transmitting digital scene description data and transmitter and receiver scene processing device
US10162491B2 (en) * 2011-08-12 2018-12-25 Otoy Inc. Drag and drop of objects between applications
TWI446217B (zh) * 2011-08-23 2014-07-21 Askey Technology Jiang Su Ltd 按鍵之輸出值的程式化方法
US9578336B2 (en) 2011-08-31 2017-02-21 Texas Instruments Incorporated Hybrid video and graphics system with automatic content detection process, and other circuits, processes, and systems
US9712847B2 (en) 2011-09-20 2017-07-18 Microsoft Technology Licensing, Llc Low-complexity remote presentation session encoder using subsampling in color conversion space
US9571406B2 (en) * 2011-10-25 2017-02-14 Vmware, Inc. Network congestion management based on communication delay
US9590909B2 (en) 2011-10-31 2017-03-07 Hewlett Packard Enterprise Development Lp Reducing TCP timeouts due to Incast collapse at a network switch
US9348552B2 (en) * 2011-11-16 2016-05-24 Cisco Technology, Inc. Network appliance for transcoding or enriching virtual desktop infrastructure desktop images
US8667374B2 (en) * 2011-11-21 2014-03-04 Ciena Corporation Video transmission systems and methods over carrier ethernet
US9503497B2 (en) * 2011-12-10 2016-11-22 LogMeln, Inc. Optimizing transfer to a remote access client of a high definition (HD) host screen image
US9852432B2 (en) 2011-12-12 2017-12-26 International Business Machines Corporation Customizing a presentation based on preferences of an audience
KR101467430B1 (ko) * 2011-12-12 2014-12-01 주식회사 케이티 클라우드 컴퓨팅 기반 어플리케이션 제공 방법 및 시스템
US20130151624A1 (en) 2011-12-12 2013-06-13 International Business Machines Corporation Context-Sensitive Collaboration Channels
US9588652B2 (en) 2011-12-12 2017-03-07 International Business Machines Corporation Providing feedback for screen sharing
US9124657B2 (en) 2011-12-14 2015-09-01 International Business Machines Corporation Dynamic screen sharing for optimal performance
US9141264B2 (en) * 2011-12-14 2015-09-22 International Business Machines Corporation Variable refresh rates for portions of shared screens
US8838749B1 (en) 2011-12-30 2014-09-16 hopTo Inc. Cloud based client computing system for and method of receiving cross-platform remote access to 3D graphics applications
US9218107B1 (en) 2011-12-30 2015-12-22 hopTo Inc. Cloud-based text management for cross-platform display
US8766990B1 (en) 2011-12-30 2014-07-01 hopTo Inc. Server computing system for and method of providing cross-platform remote access to 3D graphics applications
US9223534B1 (en) 2011-12-30 2015-12-29 hopTo Inc. Client side detection of motion vectors for cross-platform display
US9367931B1 (en) 2011-12-30 2016-06-14 hopTo Inc. Motion vectors for cross-platform display
US8775545B1 (en) 2011-12-30 2014-07-08 hop To Inc. Image hosting for cross-platform display over a communication network
US8922569B1 (en) * 2011-12-30 2014-12-30 hopTo Inc. Cloud based system for and method of translating between disparate 3D graphics languages in client-server computing environments
US8856262B1 (en) 2011-12-30 2014-10-07 hopTo Inc. Cloud-based image hosting
US9064292B1 (en) 2011-12-30 2015-06-23 hopTo, Inc. System for and method of classifying and translating graphics commands in client-server computing systems
US8769052B1 (en) 2011-12-30 2014-07-01 hopTo Inc. Cloud-based server computing system for and method of providing cross-platform remote access to 3D graphics applications
US9183663B1 (en) 2011-12-30 2015-11-10 Graphon Corporation System for and method of classifying and translating graphics commands in client-server computing systems
US9454617B1 (en) 2011-12-30 2016-09-27 hopTo Inc. Client rendering
JP6062639B2 (ja) 2012-01-25 2017-01-18 イプシロン ソフト コーポレイション ア.エス. クラウドにおけるファイルの拡張可能処理のためのシステム
US20130254417A1 (en) * 2012-03-21 2013-09-26 Jason Nicholls System method device for streaming video
US9124562B1 (en) 2012-05-18 2015-09-01 hopTo Inc. Cloud-based decomposition and recomposition for cross-platform display
US8990363B1 (en) * 2012-05-18 2015-03-24 hopTo, Inc. Decomposition and recomposition for cross-platform display
US9106612B1 (en) * 2012-05-18 2015-08-11 hopTo Inc. Decomposition and recomposition for cross-platform display
US9660855B2 (en) * 2012-06-29 2017-05-23 Cable Television Laboratories, Inc. Orthogonal signal demodulation
US8928680B1 (en) 2012-07-10 2015-01-06 Google Inc. Method and system for sharing a buffer between a graphics processing unit and a media encoder
KR101720654B1 (ko) * 2012-09-14 2017-03-28 한국전자통신연구원 가상화 시스템 및 가상화 서비스 제공방법
JP6293763B2 (ja) 2012-10-05 2018-03-14 タクチュアル ラブズ シーオー. 低レイテンシのユーザー入力処理およびフィードバックのためのハイブリッドシステムおよび方法
US8763054B1 (en) 2012-11-02 2014-06-24 hopTo Inc. Cross-platform video display
US8776152B1 (en) 2012-11-02 2014-07-08 hopTo Inc. Cloud-based cross-platform video display
TW201419846A (zh) * 2012-11-09 2014-05-16 Inst Information Industry 動態解析度調節方法系統與動態解析度調節方法
CN105165009B (zh) 2013-01-17 2019-06-28 华为技术有限公司 一种多可视化组件屏幕共享的系统,装置,和方法
EP2946554B1 (en) * 2013-01-17 2017-08-02 Huawei Technologies Co., Ltd. System, apparatus and method for sharing a screen having multiple visual components
US9257092B2 (en) 2013-02-12 2016-02-09 Vmware, Inc. Method and system for enhancing user experience for remoting technologies
US9292157B1 (en) 2013-03-15 2016-03-22 hopTo Inc. Cloud-based usage of split windows for cross-platform document views
US9430134B1 (en) 2013-03-15 2016-08-30 hopTo Inc. Using split windows for cross-platform document views
US20140286440A1 (en) * 2013-03-19 2014-09-25 Nvidia Corporation Quality of service management system and method of forward error correction
GB2514543B (en) * 2013-04-23 2017-11-08 Gurulogic Microsystems Oy Server node arrangement and method
US20140333640A1 (en) * 2013-05-13 2014-11-13 Qnx Software Systems Limited System and method for forwarding a graphics command stream
EP2804094A1 (en) * 2013-05-13 2014-11-19 2236008 Ontario Inc. A system and method for forwarding a graphics command stream
EP2804095A1 (en) * 2013-05-13 2014-11-19 2236008 Ontario Inc. A system and method for forwarding a graphics command stream
US20140333639A1 (en) * 2013-05-13 2014-11-13 Qnx Software Systems Limited System and method for forwarding a graphics command stream
EP2804143A1 (en) * 2013-05-13 2014-11-19 2236008 Ontario Inc. System and method for forwarding a graphics command stream
EP2809031B1 (en) * 2013-05-31 2023-09-27 Dassault Systèmes Communication middleware for managing multicast channels
US9210434B2 (en) * 2013-06-12 2015-12-08 Microsoft Technology Licensing, Llc Screen map and standards-based progressive codec for screen content coding
CN103368947B (zh) 2013-06-21 2016-05-18 腾讯科技(北京)有限公司 一种媒体信息的控制方法及相关设备、系统
MX347289B (es) 2013-07-12 2017-04-17 Tactual Labs Co Reducción de latencia de respuesta de control con comportamiento control cruzado definido.
EP3026566A4 (en) * 2013-07-22 2016-08-10 Fujitsu Ltd INFORMATION PROCESSING DEVICE, METHOD AND PROGRAM
JP5875555B2 (ja) * 2013-07-29 2016-03-02 株式会社デジタル 画像作成システム
CN103401876B (zh) * 2013-08-07 2017-02-22 武汉大学 一种基于变尺度窗口机制的VoIP服务安全保障方法与系统
US9386319B2 (en) * 2013-09-05 2016-07-05 Microsoft Technology Licensing, Llc Post-process filter for decompressed screen content
WO2015039687A1 (en) * 2013-09-19 2015-03-26 Huawei Technologies Co., Ltd. Transmission and reception devices for reducing the delay in end-to-end delivery of network packets
US10976986B2 (en) * 2013-09-24 2021-04-13 Blackberry Limited System and method for forwarding an application user interface
US10115174B2 (en) * 2013-09-24 2018-10-30 2236008 Ontario Inc. System and method for forwarding an application user interface
US10158868B2 (en) * 2013-10-15 2018-12-18 Nvidia Corporation Systems and methods to limit lag between a client and a server for remote computing
US10271010B2 (en) 2013-10-31 2019-04-23 Shindig, Inc. Systems and methods for controlling the display of content
US9662199B2 (en) * 2013-11-26 2017-05-30 Strathspey Crown Holdings, LLC Intraocular lens having input and output electronics
US20150161754A1 (en) * 2013-12-10 2015-06-11 Joel Solomon Isaacson System and method for remote graphics using non-pixel rendering interfaces
US9412332B2 (en) 2013-12-20 2016-08-09 Blackberry Limited Method for wirelessly transmitting content from a source device to a sink device
KR101671311B1 (ko) * 2014-02-27 2016-11-01 엔트릭스 주식회사 클라우드 스트리밍 서비스 시스템, 이를 위한 장치 및 클라우드 스트리밍 서비스 방법
EP2924563A1 (en) * 2014-03-27 2015-09-30 Hsiu-Ping Lin Methods and systems for communications between apps and virtual machines
US9912562B2 (en) * 2014-03-31 2018-03-06 Microsoft Technology Licensing, Llc Measuring latency in an interactive application
US9952751B2 (en) 2014-04-17 2018-04-24 Shindig, Inc. Systems and methods for forming group communications within an online event
US10051444B2 (en) 2014-04-18 2018-08-14 Gadget Software, Inc. Application managing application
US9733333B2 (en) 2014-05-08 2017-08-15 Shindig, Inc. Systems and methods for monitoring participant attentiveness within events and group assortments
AU2015266570B2 (en) 2014-05-30 2020-02-27 Applied Science, Inc. Systems and methods for managing blood donations
WO2016010319A2 (ko) 2014-07-14 2016-01-21 엔트릭스 주식회사 클라우드 스트리밍 서비스 시스템, 메모리 병목 현상을 방지하기 위한 데이터 압축 방법 및 이를 위한 장치
KR102063093B1 (ko) * 2014-08-04 2020-01-07 에스케이플래닛 주식회사 클라우드 스트리밍 서비스 시스템, 메모리 병목 현상을 방지하기 위한 데이터 압축 방법 및 이를 위한 장치
US9711181B2 (en) 2014-07-25 2017-07-18 Shindig. Inc. Systems and methods for creating, editing and publishing recorded videos
CN105740081A (zh) * 2014-12-12 2016-07-06 华为技术有限公司 客户端、usb设备及显示处理系统和方法
US20160209968A1 (en) * 2015-01-16 2016-07-21 Microsoft Technology Licensing, Llc Mapping touch inputs to a user input module
US9734410B2 (en) 2015-01-23 2017-08-15 Shindig, Inc. Systems and methods for analyzing facial expressions within an online classroom to gauge participant attentiveness
US10255021B2 (en) * 2015-05-28 2019-04-09 Qualcomm Incorporated Low latency screen mirroring
EP3110100B1 (en) * 2015-06-24 2019-04-10 Tata Consultancy Services Limited System and method for managing virtual environments in an infrastructure
KR20170087350A (ko) * 2016-01-20 2017-07-28 삼성전자주식회사 전자 장치 및 전자 장치의 동작 방법
JP2017228241A (ja) * 2016-06-24 2017-12-28 富士通株式会社 画面送信方法、画面送信装置、及びプログラム
CN106027417B (zh) * 2016-07-05 2019-05-21 北京贝恩可科技有限公司 一种有效利用网络空余带宽传输数据的方法
US10133916B2 (en) 2016-09-07 2018-11-20 Steven M. Gottlieb Image and identity validation in video chat events
GB2555410B (en) * 2016-10-25 2020-11-04 Sony Interactive Entertainment Inc Video content synchronisation method and apparatus
US11166034B2 (en) 2017-02-23 2021-11-02 Netflix, Inc. Comparing video encoders/decoders using shot-based encoding and a perceptual visual quality metric
US11153585B2 (en) 2017-02-23 2021-10-19 Netflix, Inc. Optimizing encoding operations when generating encoded versions of a media title
US10715814B2 (en) 2017-02-23 2020-07-14 Netflix, Inc. Techniques for optimizing encoding parameters for different shot sequences
US10742708B2 (en) 2017-02-23 2020-08-11 Netflix, Inc. Iterative techniques for generating multiple encoded versions of a media title
KR20240001278A (ko) * 2017-04-21 2024-01-03 제니맥스 미디어 인크. 게임-생성된 모션 벡터들을 위한 시스템들 및 방법들
GB2563282B (en) * 2017-06-09 2022-01-12 Displaylink Uk Ltd Bypassing desktop composition
US10666992B2 (en) * 2017-07-18 2020-05-26 Netflix, Inc. Encoding techniques for optimizing distortion and bitrate
CN109983435B (zh) 2017-10-23 2020-08-07 华为技术有限公司 图形处理方法及相关装置和设备
CN108184133B (zh) * 2017-12-07 2020-09-25 西安万像电子科技有限公司 一种网络显卡及图像数据传输方法
US11138026B2 (en) * 2018-05-04 2021-10-05 Citrix Systems, Inc. Systems and methods for remote computing session display based upon user input event prioritization
FR3088789B1 (fr) * 2018-11-16 2021-08-06 Blade Protocole de transmission d’un flux de donnees transitant entre un ordinateur hote et un client distant
US11209966B2 (en) * 2019-01-24 2021-12-28 Disney Enterprises, Inc. Extended on-screen gameplay via augmented reality
US11880422B2 (en) 2019-02-04 2024-01-23 Cloudflare, Inc. Theft prevention for sensitive information
US10452868B1 (en) 2019-02-04 2019-10-22 S2 Systems Corporation Web browser remoting using network vector rendering
US10552639B1 (en) 2019-02-04 2020-02-04 S2 Systems Corporation Local isolator application with cohesive application-isolation interface
US10558824B1 (en) 2019-02-04 2020-02-11 S2 Systems Corporation Application remoting using network vector rendering
CN111030757B (zh) * 2019-12-09 2021-11-05 明格(上海)信息技术有限公司 超声接收数据的处理方法、系统和计算机可读介质
CN111093091A (zh) * 2019-12-11 2020-05-01 西安万像电子科技有限公司 视频处理方法、服务器及系统
KR102460474B1 (ko) * 2021-05-14 2022-11-01 (주)이머시브캐스트 화면 떨림 감소를 위한 클라우드 vr 장치
US11799794B2 (en) 2021-08-31 2023-10-24 International Business Machines Corporation Selective compression of packet payload data in a 5G network
US11755272B2 (en) 2021-12-10 2023-09-12 Vmware, Inc. Method and system for using enhancement techniques to improve remote display while reducing hardware consumption at a remote desktop
CN114827716B (zh) * 2022-03-08 2023-08-11 深圳软牛科技有限公司 一种在wpf中创建视频播放器的方法、装置及相关组件
CN115842919B (zh) * 2023-02-21 2023-05-09 四川九强通信科技有限公司 一种基于硬件加速的视频低延迟传输方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0678272A (ja) * 1992-08-24 1994-03-18 Olympus Optical Co Ltd 画像記録再生装置
JPH07200720A (ja) * 1993-12-09 1995-08-04 At & T Corp 脱落書式文書画像圧縮
JPH07266633A (ja) * 1994-03-29 1995-10-17 Matsushita Electric Ind Co Ltd 印字装置
JP2004501445A (ja) * 2000-05-26 2004-01-15 サイトリックス システムズ, インコーポレイテッド 低帯域幅の転送プロトコル機構を介して伝送するためのグラフィカルディスプレイデータを効率的に低減する方法およびシステム
JP2005027053A (ja) * 2003-07-02 2005-01-27 Toshiba Corp コンテンツ処理装置
JP2006285302A (ja) * 2005-03-31 2006-10-19 Toshiba Corp 画面送信装置
JP2007206644A (ja) * 2006-02-06 2007-08-16 Seiko Epson Corp 画像表示システム,画像表示方法,画像表示プログラム,記録媒体,データ処理装置,画像表示装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2408908A (en) 1934-05-02 1946-10-08 Gen Mills Inc Method of producing antirachitic material
US5825308A (en) * 1996-11-26 1998-10-20 Immersion Human Interface Corporation Force feedback interface having isotonic and isometric functionality
US6141324A (en) * 1998-09-01 2000-10-31 Utah State University System and method for low latency communication
US20020149617A1 (en) * 2001-03-30 2002-10-17 Becker David F. Remote collaboration technology design and methodology
US7039247B2 (en) * 2003-01-31 2006-05-02 Sony Corporation Graphic codec for network transmission
US7693345B2 (en) * 2004-03-04 2010-04-06 Nvidia Corporation Method and apparatus for error concealment for JPEG 2000 compressed images and data block-based video data
JP2005275643A (ja) * 2004-03-24 2005-10-06 Hitachi Ltd コンテンツデータ処理装置及び方法
US7590750B2 (en) * 2004-09-10 2009-09-15 Microsoft Corporation Systems and methods for multimedia remoting over terminal server connections
US20060082581A1 (en) 2004-10-14 2006-04-20 Microsoft Corporation Encoding for remoting graphics to decoder device
US7730157B2 (en) 2005-02-03 2010-06-01 The Trustees Of Columbia University In The City Of New York Methods, media, and systems for displaying information on a thin-client in communication with a network
US7516255B1 (en) * 2005-03-30 2009-04-07 Teradici Corporation Method and apparatus for providing a low-latency connection between a data processor and a remote graphical user interface over a network
US20060282855A1 (en) 2005-05-05 2006-12-14 Digital Display Innovations, Llc Multiple remote display system
US7548657B2 (en) * 2005-06-25 2009-06-16 General Electric Company Adaptive video compression of graphical user interfaces using application metadata
US8005149B2 (en) * 2006-07-03 2011-08-23 Unisor Design Services Ltd. Transmission of stream video in low latency
US20090189894A1 (en) 2008-01-27 2009-07-30 Petrov Julian Methods and systems for analyzing a remoting system to determine where to render three dimensional data
JP2009260818A (ja) * 2008-04-18 2009-11-05 Nec Corp サーバ装置とコンテンツ配信方法とプログラム
KR20100041423A (ko) 2008-10-14 2010-04-22 삼성전자주식회사 스크로트론 대전 방식의 대전 장치 및 그 대전 장치를 이용한 화상형성장치
US8171154B2 (en) 2009-09-29 2012-05-01 Net Power And Light, Inc. Method and system for low-latency transfer protocol

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0678272A (ja) * 1992-08-24 1994-03-18 Olympus Optical Co Ltd 画像記録再生装置
JPH07200720A (ja) * 1993-12-09 1995-08-04 At & T Corp 脱落書式文書画像圧縮
JPH07266633A (ja) * 1994-03-29 1995-10-17 Matsushita Electric Ind Co Ltd 印字装置
JP2004501445A (ja) * 2000-05-26 2004-01-15 サイトリックス システムズ, インコーポレイテッド 低帯域幅の転送プロトコル機構を介して伝送するためのグラフィカルディスプレイデータを効率的に低減する方法およびシステム
JP2005027053A (ja) * 2003-07-02 2005-01-27 Toshiba Corp コンテンツ処理装置
JP2006285302A (ja) * 2005-03-31 2006-10-19 Toshiba Corp 画面送信装置
JP2007206644A (ja) * 2006-02-06 2007-08-16 Seiko Epson Corp 画像表示システム,画像表示方法,画像表示プログラム,記録媒体,データ処理装置,画像表示装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNJ200610034009; 堀内薫(外3名): '「2.4 カラー画像符号化の前処理としての領域統合処理の効果」' 1986年度画像符号化シンポジウム(PCSJ86)シンポジウム資料 , 1986, 第17〜18頁, 電子通信学会画像工学研究専門委員会 *
JPN6014013235; 堀内薫(外3名): '「2.4 カラー画像符号化の前処理としての領域統合処理の効果」' 1986年度画像符号化シンポジウム(PCSJ86)シンポジウム資料 , 1986, 第17〜18頁, 電子通信学会画像工学研究専門委員会 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015202053A (ja) * 2010-04-23 2015-11-12 クアルコム,インコーポレイテッド 複数の受信機間の無線電力配分

Also Published As

Publication number Publication date
EP2484091A4 (en) 2014-02-12
AU2010300823A1 (en) 2012-04-19
WO2011041229A2 (en) 2011-04-07
US8171154B2 (en) 2012-05-01
US20110078532A1 (en) 2011-03-31
KR20120082434A (ko) 2012-07-23
KR20140024478A (ko) 2014-02-28
KR101443070B1 (ko) 2014-11-03
WO2011041229A3 (en) 2011-08-18
US20120246227A1 (en) 2012-09-27
US8234398B2 (en) 2012-07-31
US8527654B2 (en) 2013-09-03
EP2484091A2 (en) 2012-08-08
CA2774014A1 (en) 2011-04-07
CN102668495A (zh) 2012-09-12
US20140164484A1 (en) 2014-06-12
US20120084456A1 (en) 2012-04-05

Similar Documents

Publication Publication Date Title
US8171154B2 (en) Method and system for low-latency transfer protocol
Shi et al. Mobile VR on edge cloud: A latency-driven design
CN100591120C (zh) 视频通信方法及装置
US9172979B2 (en) Experience or “sentio” codecs, and methods and systems for improving QoE and encoding based on QoE experiences
KR101720654B1 (ko) 가상화 시스템 및 가상화 서비스 제공방법
US9081536B2 (en) Performance enhancement in virtual desktop infrastructure (VDI)
KR20200088830A (ko) 비디오 인코더에 직접 렌더링하는 게임 엔진 애플리케이션
JP6322834B2 (ja) ビデオチャットデータプロセッシング
US20180213301A1 (en) Media playback apparatus and method for synchronously reproducing video and audio on a web browser
US20180213274A1 (en) Apparatus and method for playing back and seeking media in web browser
KR101942269B1 (ko) 웹 브라우저에서 미디어를 재생하고 탐색하는 장치 및 방법
US20150195531A1 (en) Encoding control apparatus and encoding control method
WO2019155894A1 (ja) 通信装置、通信方法、及びプログラム
Gül et al. Cloud rendering-based volumetric video streaming system for mixed reality services
Neal et al. Distributed OpenGL rendering in network bandwidth constrained environments
CN107211171B (zh) 一种通信架构内的用户设备及其实现方法和计算机程序产品
US20140297718A1 (en) Apparatus and method for transmitting image of multi-user
Lan et al. Research on technology of desktop virtualization based on SPICE protocol and its improvement solutions
CN103428297A (zh) 基于桌面虚拟化的远程交互系统架构
EP1821490A1 (en) Method for transmitting graphical data to a thin client
Roberti Jr et al. U-DiVE-design and evaluation of a distributed photorealistic virtual reality environment
Qin A compression and transmission method for surveillance video data using SPICE protocol and DWT in cloud desktop environment
Zimmermann et al. Ethernet Interface for Head-Mounted Displays
Ma et al. A Practical System Towards the Secure, Robust and Pervasive Mobile Workstyle
Hadic et al. A Simple Desktop Compression and Streaming System

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130730

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130830

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20131127

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20131204

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20131224

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140129

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140411