JP6158323B2 - 仮想デスクトップインフラ(vdi)における性能向上 - Google Patents

仮想デスクトップインフラ(vdi)における性能向上 Download PDF

Info

Publication number
JP6158323B2
JP6158323B2 JP2015520726A JP2015520726A JP6158323B2 JP 6158323 B2 JP6158323 B2 JP 6158323B2 JP 2015520726 A JP2015520726 A JP 2015520726A JP 2015520726 A JP2015520726 A JP 2015520726A JP 6158323 B2 JP6158323 B2 JP 6158323B2
Authority
JP
Japan
Prior art keywords
missing
image
image blocks
frame
blocks
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015520726A
Other languages
English (en)
Other versions
JP2015529882A (ja
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.)
VMware LLC
Original Assignee
VMware LLC
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 VMware LLC filed Critical VMware LLC
Publication of JP2015529882A publication Critical patent/JP2015529882A/ja
Application granted granted Critical
Publication of JP6158323B2 publication Critical patent/JP6158323B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • G06F3/1462Digital 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 with means for detecting differences between the image stored in the host and the images displayed on the remote displays
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • H04N19/895Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder in combination with error concealment
    • 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/1415Digital output to display device ; Cooperation and interconnection of the display device with other functional units with means for detecting differences between the image stored in the host and the images displayed on the displays
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2330/00Aspects of power supply; Aspects of display protection and defect management
    • G09G2330/08Fault-tolerant or redundant circuits, or circuits in which repair of defects is prepared
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)

Description

仮想デスクトップインフラ(VDI:virtual desktop infrastructure)とは、利用者のクライアント装置がリモートデスクトップに接続することを可能にするリモートデスクトップ・プロトコル(以下「リモーティング・プロトコル」と呼ぶ)を使用するシステムを指す。「リモートデスクトップ」という用語は、例えば遠隔データセンタ内で、利用者にとって遠隔的に実行されるユーザコンピュータシステム又は仮想マシンのインスタンスを指す。「リモートデスクトップ」という用語は、利用者に提示されるユーザインターフェイスを指すために使用することもできる。リモートデスクトップはホスト上で実行され、ホストはクライアント装置からコマンドを受信し、そのコマンドに基づき、リモートデスクトップのディスプレイの画像をクライアント装置に対して更新する(「ディスプレイ・リモーティング」と呼ぶ)。利用者のクライアント装置上でリモートデスクトップの画像を更新することは、クライアント装置から受信される入力、オペレーティングシステムの動作、及びリモートデスクトップ上で実行されるアプリケーションに基づきリアルタイムであるべきである。
ディスプレイ・リモーティングのリアルタイムな性質により、リモーティング・プロトコルは、厳しいネットワーク環境がある状態でも優れたユーザエクスペリエンスを提供しなければならない。リモートデスクトップとクライアント装置とが豊富な帯域幅を利用できる高速ローカルエリアネットワーク(LAN)によって接続される場合、パケット損失がゼロに近い状態で短い往復遅延がある。この環境では、リモーティング・プロトコルは質の高いユーザエクスペリエンスを提供する。しかし、利用者は必ずしも理想的な環境の中で接続できるわけではない。例えば、利用者は、モバイル環境及び分散環境のうちの少なくとも一方を介し、高遅延、高損失の広域網(WAN)上でリモートデスクトップにより頻繁に接続している。一例では、利用者は、中央データセンタ又はクラウド内に収納されたリモートデスクトップに離れた支店から接続することができ、又は利用者は、多くの場合公衆網であり、輻輳していることがある無線ネットワーク(例えばWiFi)によって接続しても良い。これらの環境は、質の高いユーザエクスペリエンスを提供する助けにならない可能性がある、高いパケット損失率及び高遅延を含むネットワーク条件の原因となる。
前の世代のリモーティング・プロトコルは、クライアント装置上でデスクトップ・グラフィカル・ユーザインターフェイス(GUI:graphical user interface)の画像を更新するための画像ブロックの搬送を処理するために、伝送制御プロトコル(TCP:transmission control protocol)を使用した。TCPは、クライアント装置への画像ブロックの信頼できる搬送を処理した高信頼プロトコルである。しかし、最近のリモーティング・プロトコルは、ユーザデータグラム・プロトコル(UDP:user datagram protocol)等の信頼できない他のネットワーク・プロトコルを使用する。この場合、リモーティング・プロトコルは、画像ブロックの高信頼の搬送を確実にすることを担う。
一例では、リモートデスクトップによって生成されたデスクトップGUIの画像を更新するための画像ブロックを一連のパケットが運び得る。ホストからクライアント装置にパケットを送信する過程で、幾つかのパケットが失われ、クライアント装置が更新用の1組の完全な画像ブロックを有さない結果になる場合がある。リモーティング・プロトコルがUDPを活用しても、リモーティング・プロトコルは典型的には失われた全てのデータパケットを再伝送する。その結果、パケット損失が発生した場合、リモーティング・プロトコルは損失パケットの問題を解決するまで、クライアント装置がデスクトップGUIの画像に対する更新を描画するのを阻止する。例えばクライアント装置は、典型的にはパケットが遅延しているのかどうかを判定するために一定期間待ち、パケットが失われたと判定し、パケットが失われたことをリモートデスクトップに知らせ、リモートデスクトップがその損失パケットを再送するのを待つ。
低遅延ネットワークでは、リモートデスクトップは損失パケットを迅速に送ることができ、ユーザエクスペリエンスに悪影響を及ぼさない可能性が最も高い。しかし、高遅延ネットワークでは、問題が解決されるまでクライアント装置が更新を遅らせるので、損失パケットの問題を解決するのにかかる時間がユーザエクスペリエンスに影響を及ぼす場合がある。このことは、クライアント装置がデスクトップGUIの画像を更新するために配信可能な最高速度に影響を与え、それにより、ビデオレンダリング、スクロール操作、ウィンドウドラッグ操作を遅く、こま落ちして表示させること等、ユーザエクスペリエンスに影響を与える。
一実施形態では、或る方法が、リモートデスクトップからのデスクトップGUIの画像をクライアント装置上で表示する。この方法では、クライアント装置上で表示されているデスクトップGUIの画像のフレームを更新するために複数の画像ブロックを受信する。リモートデスクトップはホスト上で実行されている。クライアント装置が、フレーム更新用の1つ以上の欠落画像ブロックが受信されていないと判定し、その1つ以上の欠落画像ブロックなしでフレーム更新を行うべきかどうかを判定する。クライアントにおけるデスクトップGUIのフレーム更新を1つ以上の欠落画像ブロックなしで行うべき場合、クライアント装置は、1つ以上の欠落画像ブロックを使用することなしに、複数の画像ブロックを使用してデスクトップGUIのフレーム更新を行う。
一実施形態では、クライアント装置上で表示されているデスクトップGUIの画像のフレームを更新するための複数の画像ブロックをホストが決定する。ホストは、複数の画像ブロックを圧縮ストリームへと圧縮し、圧縮ストリーム内の圧縮された複数の画像ブロックは可変長のものである。圧縮ストリームの一部が複数のパケットに含められる。ホストは、圧縮ストリーム内の圧縮画像ブロックの位置情報を示す複数のマーカも決定し、複数のパケット及び複数のマーカをクライアント装置に送信する。パケット損失が発生した場合、クライアント装置はその複数のマーカを使用し、圧縮ストリーム内の圧縮画像ブロックをフレーム更新における位置と再同期させる。
以下の詳細な説明及び添付図面は、特定の実施形態の性質及び利点をより良く理解できるようにするものである。
一実施形態による、損失パケットを処理するためのリモートデスクトップ環境の単純化したシステムを示す。 一実施形態による、フレーム更新を行うための単純化した流れ図を示す。 一実施形態による、別の圧縮方式を使用してフレーム更新を行う方法の単純化した流れ図を示す。 一実施形態による、非圧縮ストリームと圧縮ストリームとの間の関係を示す。 画像ブロックのフレーム更新シーケンスを示す。 フレーム内の位置に対する、フレーム更新用の復元画像ブロックの関係を示す。 一実施形態による、パケットに含まれるマーカを示す。 一実施形態による、インデックスを使用して圧縮ストリームを再同期する一例を示す。 一実施形態による、ホスト・リモートデスクトップ・マネージャ及びクライアント・リモートデスクトップ・マネージャのより詳細な例を示す。
以下の説明では、特定の実施形態の完全な理解を可能にするために、数多くの例及び具体的詳細を説明目的で記載する。特許請求の範囲によって定める特定の実施形態は、単独で又は以下に記載する他の特徴と組み合わせてこれらの例の中の特徴の一部又は全てを含むことができ、本明細書に記載の特徴及び概念の修正形態及び均等物を更に含むことができる。
図1は、一実施形態による、損失パケットを処理するためのリモートデスクトップ環境の単純化したシステム100を示す。システム100は、ネットワーク106を介して通信するホスト102及びクライアント装置104を含む。ホスト102及びクライアント装置104は、リモーティング・プロトコルを使用し、ホスト102上で動作するリモートデスクトップに提供されるデスクトップGUI(不図示)の画像をクライアント装置104において表示する。特定の実施形態を仮想デスクトップインフラ(VDI)に関して説明するが、リモートコンピュータ上の情報を更新するシステム等、特定の実施形態は他の環境内で使用されても良い。例えば、クライアント装置104は、ディスプレイ110上の画像のフレームを更新する。連続したそれぞれの画像は「フレーム」と呼ぶことができ、フレーム更新とは新たな画像を表示することである。並列符号化/復号を可能にし、符号化の効率を改善するために、各フレームは複数の独立した下位要素から成ると見なされ得ることに留意すべきである。或る特定の下位要素が失われることは、デスクトップGUIの画像の大部分に影響することになる。従って、フレームという用語は、フレーム及び下位要素/下位フレーム構造の両方を意味することができる。
一実施形態では、リモートデスクトップ108が、ホスト102上で実行される仮想マシン(VM)(不図示)等の仮想環境内でアプリケーションを実行している場合がある。リモートデスクトップ108を仮想環境内で実施する方法は当業者なら理解されよう。但し、仮想環境について説明するが、リモートデスクトップ108は非仮想環境内で実行されても良い。例えば、コンピュータシステム上で実行されるリモートアプリケーションが、クライアント装置104にフレーム更新用の画像データを伝送する他の環境が使用され得る。
ホスト102上でリモートデスクトップ108を実行すること、及びクライアント装置104上でデスクトップGUIの画像を表示することは、表示リモーティングと呼ぶことができる。表示リモーティングでは、クライアント・リモートデスクトップ・マネージャ112が、クライアント装置104に関連する周辺装置からの入出力(I/O)コマンドをリモートデスクトップ108に送る。ホスト・リモートデスクトップ・マネージャ114は、その入出力コマンドを処理し、フレーム更新用の画像ブロックをクライアント・リモートデスクトップ・マネージャ112に送る。次いで、クライアント・リモートデスクトップ・マネージャ112が、その画像ブロックを使用してディスプレイ110上のデスクトップGUIの画像を更新する。例えば、利用者はマウスを使用してデスクトップGUI上のウィンドウをドラッグしても良い。クライアント・リモートデスクトップ・マネージャ112は動きを検出し、その動きに関する入出力コマンドを送信する。ホスト・リモートデスクトップ・マネージャ114がその入出力コマンドを処理し、デスクトップGUIの画像を横切ってウィンドウを移動させる。次いで、ホスト・リモートデスクトップ・マネージャ114が、クライアント・リモートデスクトップ・マネージャ112にフレーム更新を送り、クライアント・リモートデスクトップ・マネージャ112は、ディスプレイ110上に表示されているデスクトップGUIの画像を更新して動きを表示する。一部の例では、ウィンドウのドラッグに応答して全デスクトップ画像が更新されるのではなく、この操作の結果デスクトップ画像のどの小領域が変化したのかをリモーティング・プロトコルが突き止め、それらの変化した領域だけを更新する。
一実施形態では、ホスト・リモートデスクトップ・マネージャ114がフレーム更新を複数のパケットで送る。各パケットは1組の画像ブロックを含むことができ、各画像ブロックは、ディスプレイ110上に表示されるフレーム更新の一部に相当し得る。パケットの全てが受信された場合、クライアント・リモートデスクトップ・マネージャ112は画像ブロックを使用し、ディスプレイ110上のデスクトップGUIの画像のフレーム更新を行う。
場合によっては、クライアント・リモートデスクトップ・マネージャ112がフレーム更新用のパケットの全てを受信できず、このことはフレームを構築するのに必要な画像ブロックの欠落の原因となる。例えパケット損失が生じていても、特定の実施形態では、そのようなフレームの画像ブロックが欠落している可能性があっても、フレーム更新を行うかどうかをクライアント・リモートデスクトップ・マネージャ112が知的な方法で決定することが可能となる。例えばリモーティング・プロトコルにより、損失パケットを再伝送する必要なしにクライアント装置104がパケット損失を許容することが可能となり、このことによりクライアント装置104が欠落した画像ブロックがある状態でフレーム更新を行うことが可能となる。以下でより詳細に説明するように、フレーム更新用の幾つかのパケットが失われているとクライアント・リモートデスクトップ・マネージャ112のパフォーマンス・マネージャ116が判定する場合、損失パケットの再伝送を要求することなしに、受信済みの画像ブロックを使用して画像を更新すべきことをパフォーマンス・マネージャ116がクライアント・リモートデスクトップ・マネージャ112に知らせる。これにより、クライアント装置104はフレーム更新を遅延なしに表示することができる。パフォーマンス・マネージャ116は、パケット損失を考慮してフレーム更新を行うかどうかを判定するとき、優れたユーザエクスペリエンスを提供するために様々な基準を天秤にかけることができる。例えば、フレーム更新が欠落情報を含んでいる可能性があっても、フレーム更新が高頻度の画面更新等の一連の瞬間的な持続時間に対応する場合、欠落画像ブロックはほんの一瞬でその後のフレーム更新によって置換される。従って、利用者はフレーム更新における欠落した画像ブロックに気付かない場合がある。加えて、利用者は、クライアント・リモートデスクトップ・マネージャ112が損失パケットの再伝送を待つことによる遅延を一切見ることがない。更に、欠落画像ブロックを無視するのではなく、クライアント・リモートデスクトップ・マネージャ112は、フレーム更新における欠落画像ブロックを受信済みの画像ブロックから推定することができ、欠落情報が目立つのを抑えるために欠落画像ブロック内に情報(例えば黒色)を挿入することができ、又は単にそのブロックを前のフレームから変えないままにしておくことができる。
図2は、一実施形態による、フレーム更新を行うための単純化した流れ図200を示す。202で、クライアント・リモートデスクトップ・マネージャ112が、デスクトップGUIのフレーム更新用のパケットをホスト・リモートデスクトップ・マネージャ114から受信する。各パケットは1組の画像ブロックを含むことができる。204で、パケットが欠落しているとパフォーマンス・マネージャ116が判定する。例えば、パフォーマンス・マネージャ116は、パケットが遅れているのか損失しているのかを判定するために、一定期間待つことができる。その期間が経過した後、パフォーマンス・マネージャ116はパケットが失われたと判定する。一実施形態では、ホスト・リモートデスクトップ・マネージャ114から送信されるパケットがシーケンス番号を含む。例えば、UDP等のネットワーク・プロトコルが各パケット内にシーケンス番号を挿入し、シーケンス内の各パケットを識別する。その後、パフォーマンス・マネージャ116は、何からのパケットが失われているかどうかをシーケンス番号に基づいて判定することができる。例えば、パケット1、2、4、5、6、7、8、及び9が受信されている場合、一定期間後、パフォーマンス・マネージャ116はパケット#3が失われていると判断することができる。
206で、パフォーマンス・マネージャ116は、クライアント・リモートデスクトップ・マネージャ112が欠落画像ブロックなしでフレーム更新を行うべきかどうかを判定する。例えば、パフォーマンス・マネージャ116は、欠落パケットの欠落画像ブロックが閾値を上回る画像破損を引き起こすかどうかを判定する。画像破損を判定するために、パフォーマンス・マネージャ116は、フレーム更新に対する欠落画像ブロックの影響を定量化することができる。例えば、パフォーマンス・マネージャ116は、フレーム更新における欠落画像ブロックの最大数/パーセンテージを制限することができる。画像破損(例えば欠落画像ブロックの数)が閾値を下回る場合、パフォーマンス・マネージャ116は、欠落画像ブロックなしに画像を表示することを許容し得ると判定する。パフォーマンス・マネージャ116は、フレーム更新が高頻度のフレーム更新の一環であるかどうか等、他の基準を考慮することもできる。フレーム更新を行うべき場合、208で、クライアント・リモートデスクトップ・マネージャ112が、欠落画像ブロックなしに受信パケット内の画像ブロックを使用してフレーム更新を表示する。欠落画像ブロックが実際には単に遅れていることが分かった場合、クライアント・リモートデスクトップ・マネージャ112は、任意選択的にそれらの画像ブロックを更新されたフレーム内に挿入することができる。後で到着する任意のブロックを使ってフレームを更新するかどうかの決定は、フレームの更新頻度を含む様々な要因に基づき得る。
破損(例えば欠落画像ブロックの数)が閾値を上回るとパフォーマンス・マネージャ116が判定する場合、パフォーマンス・マネージャ116は、クライアント・リモートデスクトップ・マネージャ112を停止させ、欠落画像ブロックを要求している間はフレーム更新を表示させない。210で、クライアント・リモートデスクトップ・マネージャ112が、欠落パケットを求める要求をホスト・リモートデスクトップ・マネージャ114に送信する。この場合、ホスト・リモートデスクトップ・マネージャ114は欠落パケットを再送することができる。212で、クライアント・リモートデスクトップ・マネージャ112が欠落パケットを受信し、受信したばかりの欠落パケット及び前に受信したパケット内の画像ブロックを使用してフレーム更新を表示する。上記のように、欠落パケットを再伝送することにより遅延が発生する。しかし、クライアント・リモートデスクトップ・マネージャ112は、欠落画像ブロックを含まないフレーム更新を行い、そのためより優れた画像を表示する。
クライアント・リモートデスクトップ・マネージャ112が欠落画像ブロックなしで画像を表示した場合、パフォーマンス・マネージャ116は、パケット損失事象をホスト・リモートデスクトップ・マネージャ114に知らせるメッセージを送信することができる。210に記載したようにパフォーマンス・マネージャ116が欠落パケットを要求する場合、ホスト・リモートデスクトップ・マネージャ114は既にパケット損失事象を知らされている。しかし、例え再伝送が要求されている場合でも、クライアント・リモートデスクトップ・マネージャ112は、パケット損失をホスト・リモートデスクトップ・マネージャ114に知らせるメッセージを追加で送信しても良い。パケット損失事象をリモートデスクトップ108に知らせることにより、ホスト・リモートデスクトップ・マネージャ114は該当する場合に是正措置を取ることができる。例えば、連続した更新フレーム内の欠落画像ブロックが多くの更新にわたり静的なままである(例えば欠落画像ブロックが同じ位置又は小領域内にある)場合、ホスト・リモートデスクトップ・マネージャ114は、フレーム更新と共に表示するための欠落画像ブロックをクライアント・リモートデスクトップ・マネージャ112に提供することができる。この場合、ホスト・リモートデスクトップ・マネージャ114は、利用者が分かるようになる可能性がある同じ欠落画像ブロックがある状態でクライアント・リモートデスクトップ・マネージャ112が複数のフレーム更新を表示することを望まない場合がある。しかし、欠落画像ブロックが一連の高頻度の画面更新に対応する場合、ホスト・リモートデスクトップ・マネージャ114が欠落画像ブロックをその後のフレーム更新において置換するので、ホスト・リモートデスクトップ・マネージャ114は欠落画像ブロックを無視することができる。ホスト・リモートデスクトップ・マネージャ114がパケット損失事象の警告を生成できること等、他の是正措置が取られても良い。更に、損失が高頻度更新の最後のフレームシーケンス(例えば映像の最後のフレーム)に関係する場合、例え要求されていない場合でも、ホスト・リモートデスクトップ・マネージャ114は欠落画像ブロックの再伝送を引き起こすことができる。この場合、パフォーマンス・マネージャ114は、破損フレームがその後のフレーム更新によって素早く置換されると想定し、破損画像を表示している可能性があるが、映像の終わりということは更新されたフレームが送信されないことを意味する。従って、ホスト・リモートデスクトップ・マネージャ114は、欠落画像ブロックを送信することによって破損を解決することができる。或いは、破損の持続時間が当初予想していたよりも長い(即ち、その領域のフレーム更新が一定の閾値を過ぎても受信されない)場合、パフォーマンス・マネージャ114自体が再伝送を要求しても良い。
フレーム更新に必要な画像データは、典型的にはリモートデスクトップ108において圧縮され、圧縮ストリーム内でクライアント装置104に送信される。その後、クライアント・リモートデスクトップ・マネージャ112が圧縮ストリームを復元する。場合によっては、或るフレーム(更にはかなりの量のフレーム)の復元が、存在している全てのパケットに依存すべきでない。つまり、クライアント・リモートデスクトップ・マネージャ112は、各画像ブロック(又は画像ブロックの小集団)を分離して復元できるべきである。例えば、1組の画像ブロックを含む1つのパケットがフレーム更新で失われた場合、クライアント・リモートデスクトップ・マネージャ112は、フレーム更新用の受信パケット内に含まれる他の画像ブロックを引き続き復元できるべきである。クライアント・リモートデスクトップ・マネージャ112が他の画像ブロックを復元できない場合、欠落画像ブロックなしでフレーム更新を表示することはできない。一例では、ホスト・リモートデスクトップ・マネージャ114が不可逆圧縮を使用する場合、クライアント・リモートデスクトップ・マネージャ112が分離して画像ブロックを復元することができる。しかし、フレームの画像ブロックを復元するためにストリームからの全ての画像ブロック(従って全てのパケット)がある必要がある可逆圧縮では、ホスト・リモートデスクトップ・マネージャ114はディクショナリ/ウィンドウ方式を使用することができる。人気のあるポータブル・ネットワーク・グラフィックス(PNG)のグラフィックス画像形式で使用されるDEFLATE等のかかる可逆圧縮アルゴリズムは良く知られており、そのためその詳細をここで示す必要はない。本明細書に記載の特定の実施形態は、異なる(不可逆及び可逆)圧縮方式に異なるように対処する。
図3は、一実施形態による、別の圧縮方式を使用してフレーム更新を行う方法の単純化した流れ図300を示す。特定の実施形態では、上記の損失パケット許容方式が使用される場合、リモーティング・プロトコルに以下の調節を行うことができる。302で、ホスト・リモートデスクトップ・マネージャ114が、使用する圧縮方式を決定する。例えば、圧縮方式が伝送されているデータの種類(例えば映像データ)に依存しても良いこと等、ホスト・リモートデスクトップ・マネージャ114はその時々において異なる圧縮方式を使用することができる。
304で、不可逆圧縮方式が使用されているのか、ディクショナリ/ウィンドウが使用されているのかをホスト・リモートデスクトップ・マネージャ114が判定する。これらの2つの圧縮方式を示すが、他の圧縮方式も認めることができる。一実施形態では、クライアント・リモートデスクトップ・マネージャ112は、不可逆圧縮方式が使用されている場合にのみ欠落画像ブロックがある状態でフレーム更新を行うことができる。従って、不可逆圧縮が使用されていない場合、パケット損失が生じたとき、リモーティング・プロトコルは、欠落画像ブロックを求める要求をクライアント・リモートデスクトップ・マネージャ112に送信させる。不可逆圧縮が実行される場合にのみ欠落画像ブロックを受信する必要なしにクライアント・リモートデスクトップ・マネージャ112がフレーム更新を行えても、これは過度に制限的ではない場合があり、その理由はホスト・リモートデスクトップ・マネージャ114が、欠落画像ブロックなしでフレーム更新を表示することを促進する動作で不可逆圧縮を使用できるからである。例えば、映像再生等の高頻度のフレーム更新動作は、大半の場合に不可逆圧縮を使用することができ、欠落画像ブロックが少し経ってその後のフレーム更新において置換され得るので、欠落画像ブロックがある状態でフレーム更新を表示することを促進する。従って、306で、ホスト・リモートデスクトップ・マネージャ114が不可逆圧縮方式を使用している場合、クライアント・リモートデスクトップ・マネージャ112は、上記の制限を受ける欠落画像ブロックなしでフレーム更新を描画する。
ディクショナリ/ウィンドウ圧縮方式が使用されている場合、ディクショナリ又はウィンドウ内で欠落画像ブロックが生じる場合、ディクショナリ又はウィンドウ内の全ての画像ブロックを復元することができない。これは、復元がウィンドウ内の全ての画像ブロックからの情報に依存するからである。従って、308で、ホスト・リモートデスクトップ・マネージャ114は、損失パケットがフレーム更新のより小さな領域に関する圧縮しか無効化しないように、ディクショナリ又はウィンドウにわたり、より小さな画像の塊を使用することができる。より小さいウィンドウは概してより少ない圧縮しか得られないことを意味するので、より低い圧縮率が結果としてもたらされるため、この場合、実現可能な圧縮が悪影響を受ける可能性がある。しかし利点は、帯域幅の利用が増加することと引き換えに、クライアント・リモートデスクトップ・マネージャ112が遅延なしにフレーム更新を表示できるようにすることにより、特定の実施形態がユーザエクスペリエンスを改善することである。更に、ホスト・リモートデスクトップ・マネージャ114がディクショナリ/ウィンドウ圧縮方式を使用する場合は大抵、リモーティング・プロトコルが既にフレーム更新を複数の領域に細分している。従って、パケット損失事象によって途絶する領域の大きさを最小限にするために、これらの既存領域が単により小さな小領域に分割される。
特定の実施形態では、ホスト・リモートデスクトップ・マネージャ114が送信する画像データの種類に基づき、圧縮方式を切り替えることができる。例えば映像が送信されている場合、306に記載されているように、ホスト・リモートデスクトップ・マネージャ114は不可逆圧縮を使用し、クライアント・リモートデスクトップ・マネージャ112によって損失パケット許容方式が実行されることを可能にし得る。加えて、ホスト・リモートデスクトップ・マネージャ114は、損失パケット許容方式とより互換性がある別の圧縮方式に圧縮方式を切り替えることができる。
クライアント・リモートデスクトップ・マネージャ112がフレームを更新するために圧縮ストリームを復元し、フレームを正しく再構築するために、クライアント・リモートデスクトップ・マネージャ112は、パケットが失われたことにより部分的にしか入手できない圧縮ストリーム内で、画像ブロックの境界を求めなければならない。図4は、一実施形態による、非圧縮ストリーム402と圧縮ストリーム404との間の関係を示す。非圧縮ストリーム402では、画像ブロックの大きさが均一である。例えば、画像ブロック406−1〜406−nは同じ大きさである。しかし、圧縮された場合、圧縮ストリーム404は、特定の画像ブロック406−1〜406−nごとに果される圧縮に応じて長さが異なる、圧縮画像ブロック408−1〜408−nを含む。例えば、果される圧縮がより優れている場合、一部の画像ブロック406は、より小さい大きさの画像ブロック408へと圧縮され得る。見て分かるように、対応する圧縮画像ブロック408−1、408−2、...408−nの大きさは異なり、画像境界は非圧縮画像ブロック406−1、406−2、...406−nの画像境界に一致しない。
クライアント・リモートデスクトップ・マネージャ112は、圧縮ストリーム404を復元し、フレーム内の非圧縮画像ブロックどこに表示するのかを決定する必要がある。パケット損失がない場合、クライアント・リモートデスクトップ・マネージャ112がフレームの全圧縮表現を受信すると、クライアント・リモートデスクトップ・マネージャ112は、圧縮ストリームを初めから終わりまで構文解析することができる。各記号/単位/塊に出くわすとき、それらが順々に処理される。クライアント・リモートデスクトップ・マネージャ112がストリームを初めから終わりまで構文解析するので、クライアント・リモートデスクトップ・マネージャ112は、画像ブロックをフレーム内のどこに表示するのかを求めることができる。例えば、圧縮ストリームはフレームの左上の位置から開始し、図5Aに示すパターンでデータを含み得る。クライアント・リモートデスクトップ・マネージャ112が圧縮ストリームを復元すると、クライアント・リモートデスクトップ・マネージャ112は、それぞれの復元画像ブロックが、フレーム更新における最後の復元画像ブロックから逐次的に表示されることを知る。しかし、パケット損失が発生する場合、クライアント・リモートデスクトップ・マネージャ112は、圧縮ストリームを初めから終わりまで逐次的に処理することができない。むしろ、欠落画像ブロックは復元ストリーム内に存在する。画像ブロックが欠落しているので、クライアント・リモートデスクトップ・マネージャ112は、復元ストリーム内の画像ブロックをフレーム内のどこに表示すべきかを求めることができず、その理由は、欠落パケットに直面した後、圧縮画像ブロック408の不規則の大きさが原因で、クライアント・リモートデスクトップ・マネージャ112が非圧縮ストリーム404をフレーム内の位置に再同期できないからである。
図5Bに示すように、502において、クライアント・リモートデスクトップ・マネージャ112が、圧縮ストリーム404からフレーム更新用の画像ブロックを復元している。これらの復元画像ブロックは、図示のようにフレーム内の位置に対応し得る。欠落画像ブロックが圧縮ストリーム404をもたらすため、クライアント・リモートデスクトップ・マネージャ112の画像が損失パケットに直面する。欠落画像ブロックを504で概念的に示す。506において、クライアント・リモートデスクトップ・マネージャ112が、パケット損失後に受信されるパケットから画像ブロックを復元する。しかし、クライアント・リモートデスクトップ・マネージャ112は、復元画像ブロックをフレーム内のどこに配置するのかが分からない。圧縮ストリーム404内の画像ブロックの可変サイズにより、クライアント・リモートデスクトップ・マネージャ112は画像ブロックが何個失われているのかを突き止めることができない。
クライアント・リモートデスクトップ・マネージャ112が圧縮ストリーム404をフレーム内の或る位置と再同期できるようにするために、特定の実施形態では、クライアント・リモートデスクトップ・マネージャ112が復元する画像ブロックの位置情報を、クライアント・リモートデスクトップ・マネージャ112が求めることを可能にするマーカを提供することができる。一実施形態では、ホスト・リモートデスクトップ・マネージャ114が、圧縮ストリーム404を定期的な間隔において一意の記号等のマーカを用いて印付けすることができ、このマーカは、圧縮ストリーム404内の不連続性を引き起こすパケット損失の後で、クライアント・リモートデスクトップ・マネージャ112が圧縮ストリーム404を再同期することを可能にする。マーカの頻度は、パケット損失後にクライアント・リモートデスクトップ・マネージャ112がどの程度素早く再同期を行うことができるのかに影響し得る。例えば、パケットが失われると、圧縮ストリーム404内の画像ブロックの位置を示すマーカに出くわすまで、クライアント・リモートデスクトップ・マネージャ112は如何なる画像ブロックも表示することができない。従って、クライアント・リモートデスクトップ・マネージャ112は、例え損失パケット後に幾つかの画像ブロックを受信しても、別のマーカを受信するまでそれらの画像ブロックがフレーム内のどこに表示されるのかが分からない。リモーティング・プロトコルは、素早く再同期したいという願望のバランスを取り、マーカを伝送することによって導入されるオーバヘッドによりフレーム内で無効化される領域を制限することができる。
一例では、図6Aが、一実施形態による、パケット602−1〜602−n内に含まれるマーカ604−1〜604−nを示す。一実施形態では、画像ブロックが複数のパケット602に及ぶことがないように、ホスト・リモートデスクトップ・マネージャ114が、画像ブロックの境界をパケット602と整合させることができる。次いで、各パケット602のヘッダ又は最初の数バイトの中にマーカ604が挿入される。マーカ604は、パケット602内に含まれる圧縮ブロックの位置情報を含むことができる。例えば、パケット602は、フレーム内の圧縮画像ブロックの配置先であるx、y座標を含む。一例では、各パケット602が、各パケット内の最初の画像ブロックのx、y座標を含む。クライアント・リモートデスクトップ・マネージャ112は、最初の画像ブロックのx、y座標に基づき、パケット602内の残りの画像ブロックの位置情報を求めることができる。つまり、最初の画像ブロックがフレームの行又は一片の第1の位置から始まる場合、パケット内の残りの画像ブロックがその行を埋める。他の実施形態では、パケット602内の全ての画像ブロックについて等、x、y座標を最初の画像ブロック以外についても含めることができる。
図示のように、送信される各パケット602内にマーカ604を含めることができる。従って、例えばパケット602−2が失われた場合、クライアント・リモートデスクトップ・マネージャ112がパケット602−3を受信するとき、クライアント・リモートデスクトップ・マネージャ112はマーカ604−3を用いて圧縮ストリーム404をフレーム内の位置に再同期する。例えば、クライアント・リモートデスクトップ・マネージャ112は、マーカ604−3に基づき、パケット604−3内の非圧縮画像ブロックをフレーム内のどこに配置すべきかが分かる。この場合、クライアント・リモートデスクトップ・マネージャ112はフレーム内のx、y位置を求め、その位置から画像ブロックを逐次的に表示することができる。
画像ブロックの境界をパケットの境界と整列させ、マーカ604を含めることによって効率の悪さが生じる場合がある。しかし、こうした効率の悪さは、全帯域幅に対して無視できるほど小さい影響しかない場合がある。但し、クライアント・リモートデスクトップ・マネージャ112がパケット損失により素早く再同期することを可能にする利益は、効率の悪さに勝る可能性がある。
図6Bは、一実施形態による、インデックスを使用して圧縮ストリーム404を再同期する別の例を示す。一実施形態では、ホスト・リモートデスクトップ・マネージャ114が各フレームの最初にマーカを含め、そのマーカは、クライアント・リモートデスクトップ・マネージャ112が部分的な非圧縮ストリーム404を正しく整列させ、再構築することを可能にする。例えばインデックスパケット606は、パケット608のストリーム内に含められ、フレーム更新用の各パケット608−1〜608−n内の画像ブロックをどこに配置すべきかを示し得るインデックス情報を含む。一例では、インデックスパケット606が、フレームを更新するために送信される各パケット608内の最初の画像ブロックの位置情報を示し得る。従って、パケット608−2が失われた場合、クライアント・リモートデスクトップ・マネージャ112は、インデックスパケット606からパケット608−3の位置情報を求めることができる。例えば、パケット608はシーケンス番号を含むので、クライアント・リモートデスクトップ・マネージャ112がパケット602−3を受信するとき、クライアント・リモートデスクトップ・マネージャ112はパケット602−3がシーケンス内の3番目のパケットだと分かる。次いで、クライアント・リモートデスクトップ・マネージャ112は、インデックスパケット606内の3番目のパケットの位置情報を求める。位置情報を求めると、クライアント・リモートデスクトップ・マネージャ112は、位置情報によって示されるフレーム内のx、y位置において始まるパケット608−3から画像ブロックを表示することができる。
インデックスパケット606の重要性を所与として、ホスト・リモートデスクトップ・マネージャ114はインデックスパケット606を複数回送信することができる。例えば610で、ホスト・リモートデスクトップ・マネージャ114はインデックスパケット606を再送している。更に、クライアント・リモートデスクトップ・マネージャ112がインデックスパケット606を受信することを確実にする他の方法を使用しても良い。例えば、TCP等の高信頼プロトコルを使用してインデックスパケット606を送信することができる。但し、UDP等の信頼できないプロトコルをそれでもなお使用してパケット608を送信しても良い。
図7は、一実施形態による、ホスト・リモートデスクトップ・マネージャ114及びクライアント・リモートデスクトップ・マネージャ112のより詳細な例を示す。ホスト102において、圧縮マネージャ702がフレーム更新用の画像ブロックを受信し、その画像ブロックを圧縮ストリームへと圧縮する。パケット送信機704が圧縮ストリームを受け取り、クライアント装置104に送信されるパケットシーケンス内に圧縮ストリームの一部を含める。
クライアント装置104のパケット受信機706がパケットを受信する。上記のように、パケットが失われる場合がある。パフォーマンス・マネージャ116は欠落パケットを解析し、欠落パケットの欠落画像ブロックなしでフレーム更新を行うべきかどうかを判定する。一方で、パケット受信機706はパケット内の圧縮ストリームを抽出し、圧縮ストリームを復元マネージャ708に送ることができる。復元マネージャ708は、圧縮ストリームを画像ブロックの復元ストリームへと圧縮解除する。
レンダラ710は、フレームの更新を行う。上記のように、レンダラ710は欠落画像ブロックなしでフレーム更新を行うことができる。この場合、パフォーマンス・マネージャ116がレンダラ710に信号を送り、レンダラ710が欠落画像ブロックなしで更新されたフレームを描画すべきかどうかを知らせても良い。更に、レンダラ710は、復元ストリームに加えてマーカも復元マネージャ708から受け取ることができる。上記のように復元ストリーム内で画像ブロックが欠落している場合、レンダラ710はマーカを使用して画像ブロックを表示する場所を突き止める。次いでレンダラ710は、該当する場合は更新されたフレームを表示する。
上記のように欠落パケットが発生する場合、パフォーマンス・マネージャ116は、パケット損失を知らせるメッセージをホスト・リモートデスクトップ・マネージャ114に送信する。ホスト是正マネージャ712が損失パケットを解析し、何らかの是正措置を取るべきかどうかを判定する。例えば、一連のフレーム更新にわたり同じ領域内で欠落画像ブロックが生じた場合、欠落画像ブロックを再送しても良い。
一実施形態では、ホスト・リモートデスクトップ・マネージャ114が、パケット損失事象の局所的影響を減らすために高パケット損失期間中のパケットサイズを落とすことができる。例えば、パケット損失が、フレーム更新に関して欠落しているより少数の画像ブロックに影響する。これにより、送信しなければならないパケット数は増え、パケット損失の総数を増やす可能性があるが、その損失はより小さい大きさの、及びことによるとより視覚的に影響を受けないフレーム更新の欠落部分をもたらし得る。
圧縮ストリームをよりモジュール式にすることにより、復元プロセスに更なる並列処理を取り入れることができ、全フレーム又はフレームの一片を受信する前に復元プロセスを開始できるようにもなる。
従って特定の実施形態では、パケットが失われた場合にフレーム更新をどのように処理するのかをクライアント装置104が知的な方法で決定することが可能となる。画像ブロックが欠落した状態でクライアント装置104がフレームを更新できるようにすることにより、ユーザエクスペリエンスの向上をもたらすことができる。
本明細書に記載した様々な実施形態では、コンピュータシステム内に記憶されるデータを用いる様々なコンピュータによって実施される操作を利用することができる。例えば、これらの操作は物理量の物理的操作を必要とする場合があり、必須ではないが通常、これらの量は電気信号又は磁気信号の形を取ることができ、それらの信号又はそれらの信号の表現は記憶し、転送し、結合し、比較し、又は他の方法で操作することができる。更に、かかる操作はしばしば作成、識別、決定、比較等の用語で呼ばれる。1つ以上の実施形態の一部を形成する本明細書に記載した如何なる操作も、有用な機械操作とすることができる。更に、1つ以上の実施形態は、それらの操作を行うための装置又は機器にも関する。この機器は、特定の所要の目的のために特別に構築することができ、又はコンピュータ内に記憶されるコンピュータプログラムによって選択的に活性化され若しくは構成される汎用コンピュータでも良い。具体的には、本明細書の教示に従って書かれたコンピュータプログラムと共に様々な汎用機械を使用することができ、又は所要の操作を行うためにより特化された機器を構築する方が便利な場合もある。本明細書に記載した様々な実施形態は、携帯端末、マイクロプロセッサシステム、マイクロプロセッサベースの又はプログラム可能な消費者家電、ミニコンピュータ、メインフレームコンピュータ等を含む他のコンピュータシステム構成を使って実施しても良い。
1つ以上の実施形態は、1つ以上の非一時的なコンピュータ可読記憶媒体内に具体化される1つ以上のコンピュータプログラム又は1つ以上のコンピュータプログラムモジュールとして具体化することができる。非一時的なコンピュータ可読記憶媒体という用語は、後でコンピュータシステムに入力可能なデータを記憶することができる任意のデータ記憶装置を指す。非一時的なコンピュータ可読媒体は、コンピュータプログラムがコンピュータによって読み取られることを可能にする方法でコンピュータプログラムを具体化する既存の任意の技術、又は後に開発される技術に基づくことができる。非一時的なコンピュータ可読媒体の例には、ハードドライブ、ネットワーク接続ストレージ(NAS)、読取専用メモリ、ランダムアクセスメモリ(例えばフラッシュメモリデバイス)、CD(コンパクトディスク)、CD−ROM、CD−R、CD−RW、DVD(デジタル多用途ディスク)、磁気テープ、並びに他の光学的及び非光学的データ記憶装置が含まれる。コンピュータ可読コードが分散された方法で記憶され実行されるように、非一時的なコンピュータ可読媒体をネットワークに結合されたコンピュータシステムにわたって分散させることもできる。
加えて、説明した仮想化方法では、慨して、仮想マシンが特定のハードウェアシステムに合ったインターフェイスを示すと仮定したが、記載した方法は或る特定のハードウェアシステムに直接対応しない仮想化と組み合わせて使用しても良いことを当業者なら理解されよう。ホスト型の実施形態、非ホスト型の実施形態、又はその2つの区別を曖昧にする傾向がある実施形態として実装される、様々な実施形態による仮想化システムの全てが想定されている。更に、様々な仮想化操作がハードウェアにより完全に又は部分的に実施されても良い。
仮想化の程度に関係なく、多くの改変、修正、追加、及び改善が可能である。従って仮想化ソフトウェアは、仮想化機能を実行するホスト、コンソール、又はゲストオペレーティングシステムのコンポーネントを含むことができる。単一の例として本明細書に記載したコンポーネント、操作、又は構造について複数の例が提供されても良い。最後に、様々なコンポーネント、操作、及びデータストア間の境界は幾らか恣意的であり、特定の操作を特定の例示的構成との関連で解説した。他の機能の割当ても想定されており、本発明の範囲に含まれ得る。慨して、例示的構成の中で別個のコンポーネントとして提示した構造及び機能は、複合構造又は複合コンポーネントとして実装しても良い。同様に、単一のコンポーネントとして提示した構造及び機能を別個のコンポーネントとして実装しても良い。
上記の説明は、特定の実施形態の態様を実施し得る方法の例と共に様々な実施形態を示す。上記の例及び実施形態は唯一の実施形態と見なされるべきではなく、添付の特許請求の範囲によって定める特定の実施形態の柔軟性及び利点を例示するために示した。上記の開示及び添付の特許請求の範囲に基づき、添付の特許請求の範囲によって定める本発明の範囲から逸脱することなく他の構成、実施形態、実装形態、及び等価物を使用することができる。

Claims (19)

  1. リモートデスクトップからのデスクトップ・グラフィカル・ユーザインターフェイス(以下、デスクトップGUIと称する)の画像をクライアント装置上で表示する方法であって、
    前記クライアント装置上で表示されている前記デスクトップGUIの画像のフレームを更新するための1組の完全な画像ブロック中の複数の画像ブロックを受信することであって、前記リモートデスクトップはホスト上で実行されている、前記受信すること、
    前記クライアント装置により、前記フレーム更新のための前記1組の完全な画像ブロック中の1つ以上の画像ブロックが不足しており、かつ受信されていないと判定すること、
    前記クライアント装置により、不足している前記1つ以上の画像ブロックなしでフレーム更新を行うべきかどうかを判定すること、
    前記クライアント装置において表示されている前記デスクトップGUIの前記フレーム更新を、不足している前記1つ以上の画像ブロックなしで行うべき場合、前記クライアント装置により、不足している前記1つ以上の画像ブロックを使用することなしに、受信されている前記複数の画像ブロックを使用して前記デスクトップGUIの前記フレーム更新を行うこと
    を備え、
    不足している前記1つ以上の画像ブロックが幾つかのフレーム更新にわたり同様の位置において持続する場合、不足している前記1つ以上の画像ブロックなしで前記フレーム更新を行わない、方法。
  2. 前記複数の画像ブロックが複数のパケット内で受信され、方法は更に
    パケットシーケンスを受信すること、
    シーケンス内の失われた1つ以上のパケットを突き止めることであって、前記1つ以上のパケットは不足している前記1つ以上の画像ブロックを含む、前記突き止めることを備える、請求項1に記載の方法。
  3. 不足している前記1つ以上の画像ブロックなしで前記フレーム更新を行うべきかどうかを判定することが、
    不足している前記1つ以上の画像ブロックが閾値を超えるかどうかを判定すること、
    前記閾値を超えていない場合、不足している前記1つ以上のブロックを使用することなしに、前記複数の画像ブロックを使用して前記デスクトップGUIの前記フレーム更新を行うことを含む、請求項1に記載の方法。
  4. 不足している前記1つ以上の画像ブロックが前記閾値を超えるかどうかを判定することが、前記フレーム更新における不足している前記1つ以上の画像ブロックの数が前記閾値を超えるかどうかを判定することを含む、請求項3に記載の方法。
  5. 不足している前記1つ以上の画像ブロックなしで前記フレーム更新を行うべきではない場合、方法は更に、
    不足している前記1つ以上の画像ブロックを求める要求を送信すること、
    不足している前記1つ以上の画像ブロックの少なくとも一部を受信するまで、前記デスクトップGUIの前記フレーム更新を行うのを待つこと、
    前記複数の画像ブロック及び不足している前記1つ以上の画像ブロックの前記少なくとも一部を使用し、前記クライアント装置において前記デスクトップGUIの前記フレーム更新を行うことを備える、請求項1に記載の方法。
  6. 不足している前記1つ以上の画像ブロックなしで前記デスクトップGUIの前記フレーム更新を行うべき場合、方法は更に、
    不足している前記1つ以上の画像ブロックが受信されなかったことを知らせる通知を前記リモートデスクトップに送信することであって、前記リモートデスクトップは不足している前記1つ以上の画像ブロックを解析して是正措置を決定する、前記送信することを備える、請求項1に記載の方法。
  7. 前記通知の送信に応答して前記リモートデスクトップから不足している前記1つ以上の画像ブロックを受信することを更に備える、請求項に記載の方法。
  8. 画像ブロックの不可逆圧縮が行われる場合にのみ、不足している前記1つ以上の画像ブロックなしで前記デスクトップGUIの前記画像が描画される、請求項1に記載の方法。
  9. 前記画像ブロックを圧縮するためにウィンドウ又はディクショナリ圧縮方式が使用される場合、前記クライアント装置がフレームの全ての画像ブロックが受信されている場合にのみフレーム更新を行うときにウィンドウ又はディクショナリが使用される場合と比較して、前記圧縮方式の個々のウィンドウ又はディクショナリがフレームのより小さな領域に適用される、請求項1に記載の方法。
  10. 前記複数の画像ブロックの位置情報を示す複数のマーカを受信することであって、前記位置情報は、前記複数の画像ブロックの少なくとも一部に関する前記フレーム更新における位置を示す、前記マーカを受信することを更に備える、請求項1に記載の方法。
  11. 前記複数の画像ブロックが圧縮ストリーム内にあり、
    不足している前記1つ以上の画像ブロックが前記圧縮ストリーム内に散在し、
    前記位置情報により、前記クライアント装置が前記圧縮ストリーム内の画像ブロックを前記フレーム更新における位置に再同期することが可能となる、請求項10に記載の方法。
  12. 前記複数のマーカが、前記複数の画像ブロックを含む複数のパケット内に、又は前記複数の画像ブロックの何れも含まない別のパケット内に含まれる、請求項10に記載の方法。
  13. クライアント装置上のデスクトップGUIのフレーム更新用のパケットをリモートデスクトップから送信する方法であって、
    前記クライアント装置上で表示されている前記デスクトップGUIの画像のフレームを更新するための複数の画像ブロックを決定することであって、前記リモートデスクトップはホスト上で実行されている、前記決定すること、
    前記ホストにより、前記複数の画像ブロックを圧縮ストリームへと圧縮することであって、前記圧縮ストリーム内の圧縮された複数の画像ブロックは可変長のものである、前記圧縮すること、
    前記ホストにより、前記圧縮ストリームの一部を複数のパケット内に含めること、
    前記ホストにより、前記圧縮ストリーム内の圧縮画像ブロックの位置情報を示す複数のマーカを決定すること、
    前記ホストにより、前記複数のパケット及び前記複数のマーカを前記クライアント装置に送信することであって、パケット損失が発生した場合、前記クライアント装置は前記複数のマーカを使用し、前記圧縮ストリーム内の圧縮画像ブロックを前記フレーム更新における位置と再同期させる、前記送信すること
    を備え、
    前記フレーム更新のための複数の画像ブロック中の1つ以上の画像ブロックが不足しており、かつ不足している1つ以上の画像ブロックが幾つかのフレーム更新にわたり同様の位置において持続する場合、不足している前記1つ以上の画像ブロックなしで前記フレーム更新を行わない、方法。
  14. 前記複数のマーカにおける1つのマーカを1つのパケットに含めることであって、前記パケット内の前記マーカは、前記パケット内に含まれる圧縮画像ブロックに対するフレーム更新における位置を示す、マーカを含めることを更に備える、請求項13に記載の方法。
  15. 各パケットが、各パケット内の圧縮画像ブロックの位置を示すマーカを含む、請求項14に記載の方法。
  16. 前記複数のパケットとは別のインデックスパケット内で前記複数のマーカを送信することであって、前記複数のマーカは、圧縮画像ブロックの前記フレーム更新における位置を示し、かつ前記複数のパケットの少なくとも一部に含まれる、前記送信することを更に備える、請求項14に記載の方法。
  17. 前記インデックスパケットが複数回送信され、又は高信頼プロトコルによって送信される、請求項16に記載の方法。
  18. クライアント装置上に、デスクトップGUIのリモートデスクトップの画像を表示するための命令を含む非一時的なコンピュータ可読記憶媒体であって、前記命令は、実行されるとき、
    前記クライアント装置上で表示されている前記デスクトップGUIの画像のフレームを更新するために複数の画像ブロックを受信することであって、前記リモートデスクトップはホスト上で実行されている、前記受信すること、
    フレーム更新用の1つ以上の画像ブロックが不足しており、かつ受信されていないと判定すること、
    不足している前記1つ以上の画像ブロックなしで前記フレーム更新を行うべきかどうかを判定すること、
    前記クライアント装置において表示される前記デスクトップGUIの前記フレーム更新を不足している前記1つ以上の画像ブロックなしで行うべき場合、不足している前記1つ以上の画像ブロックを使用することなしに、受信されている前記複数の画像ブロックを使用して前記デスクトップGUIの前記フレーム更新を行うこと
    を行うためのコンピュータシステムが構成されるように該コンピュータシステムを制御不足している前記1つ以上の画像ブロックが幾つかのフレーム更新にわたり同様の位置において持続する場合、不足している前記1つ以上の画像ブロックなしで前記フレーム更新を行わない、非一時的なコンピュータ可読記憶媒体。
  19. リモートデスクトップによって生成されるデスクトップGUIのフレーム更新用のパケットをクライアント装置に送信するための命令を含む非一時的なコンピュータ可読記憶媒体であって、前記命令は、実行されるとき、
    前記クライアント装置上で表示されている前記デスクトップGUIの画像のフレームを更新するための複数の画像ブロックを決定することであって、前記リモートデスクトップはホスト上で実行されている、前記決定すること、
    前記複数の画像ブロックを圧縮ストリームへと圧縮することであって、前記圧縮ストリーム内の圧縮された複数の画像ブロックは可変長のものである、前記圧縮すること、
    前記圧縮ストリームの一部を複数のパケット内に含めること、
    前記圧縮ストリーム内の圧縮画像ブロックの位置情報を示す複数のマーカを決定すること、
    前記複数のパケット及び前記複数のマーカを前記クライアント装置に送信することであって、パケット損失が発生した場合、前記クライアント装置は前記複数のマーカを使用し、前記圧縮ストリーム内の圧縮画像ブロックを前記フレーム更新における位置と再同期させる、前記送信すること
    を行うためのコンピュータシステムが構成されるように該コンピュータシステムを制御前記フレーム更新のための複数の画像ブロック中の1つ以上の画像ブロックが不足しており、かつ不足している1つ以上の画像ブロックが幾つかのフレーム更新にわたり同様の位置において持続する場合、不足している前記1つ以上の画像ブロックなしで前記フレーム更新を行わない、非一時的なコンピュータ可読記憶媒体。
JP2015520726A 2012-10-29 2013-10-28 仮想デスクトップインフラ(vdi)における性能向上 Active JP6158323B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/663,175 US8862695B2 (en) 2012-10-29 2012-10-29 Performance enhancement in virtual desktop infrastructure (VDI)
US13/663,175 2012-10-29
PCT/US2013/067077 WO2014070660A1 (en) 2012-10-29 2013-10-28 Performance enhancement in virtual desktop infrastructure (vdi)

Publications (2)

Publication Number Publication Date
JP2015529882A JP2015529882A (ja) 2015-10-08
JP6158323B2 true JP6158323B2 (ja) 2017-07-05

Family

ID=49679590

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015520726A Active JP6158323B2 (ja) 2012-10-29 2013-10-28 仮想デスクトップインフラ(vdi)における性能向上

Country Status (5)

Country Link
US (2) US8862695B2 (ja)
EP (1) EP2912546B1 (ja)
JP (1) JP6158323B2 (ja)
AU (1) AU2013338197B2 (ja)
WO (1) WO2014070660A1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102404166B (zh) * 2011-10-27 2015-04-08 华为技术有限公司 丢包检测方法和***、发送设备及接收设备
JP2013098735A (ja) * 2011-10-31 2013-05-20 Canon Inc 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
US9582240B2 (en) * 2012-12-26 2017-02-28 Vmware, Inc. Using contextual and spatial awareness to improve remote desktop imaging fidelity
US9332046B2 (en) * 2013-10-17 2016-05-03 Cisco Technology, Inc. Rate-adapted delivery of virtual desktop image elements by an edge server in a computer network environment
US9304599B2 (en) 2014-03-21 2016-04-05 Dell Products L.P. Gesture controlled adaptive projected information handling system input and output devices
US10133355B2 (en) 2014-03-21 2018-11-20 Dell Products L.P. Interactive projected information handling system support input and output devices
US9965038B2 (en) * 2014-03-21 2018-05-08 Dell Products L.P. Context adaptable projected information handling system input environment
WO2016126256A1 (en) * 2015-02-05 2016-08-11 Citrix Systems, Inc. Detecting content types and window regions in composited display frames
US10114517B2 (en) * 2015-02-05 2018-10-30 Citrix Systems, Inc. Detecting content types and window regions in composited display frames
US9753749B2 (en) * 2015-07-01 2017-09-05 Dell Products, Lp Information handling system configuration parameter history management
US10108477B2 (en) 2015-10-23 2018-10-23 Pervacio Inc. Mobile device diagnostics
US10623460B2 (en) * 2016-11-18 2020-04-14 Google Llc Streaming application environment with remote device input synchronization
US11366586B2 (en) 2016-11-18 2022-06-21 Google Llc Streaming application environment with recovery of lost or delayed input events
US11256528B2 (en) * 2018-10-26 2022-02-22 Nvidia Corporation Individual application window streaming suitable for remote desktop applications
US11416362B2 (en) 2019-05-17 2022-08-16 Citrix Systems, Inc. Dependency API controlled experiment dashboard
US20200366573A1 (en) * 2019-05-17 2020-11-19 Citrix Systems, Inc. Systems and methods for visualizing dependency experiments
CN114035719B (zh) * 2021-10-09 2024-04-26 湖南麒麟信安科技股份有限公司 一种远程桌面流畅度性能评价方法、***及介质
CN114327340A (zh) * 2021-12-30 2022-04-12 联想(北京)有限公司 一种控制方法及存储介质

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6008836A (en) * 1996-06-03 1999-12-28 Webtv Networks, Inc. Method and apparatus for adjusting television display control using a browser
JP2002320226A (ja) * 2001-04-19 2002-10-31 Hitachi Software Eng Co Ltd 圧縮画像配信方法および装置
US7477205B1 (en) * 2002-11-05 2009-01-13 Nvidia Corporation Method and apparatus for displaying data from multiple frame buffers on one or more display devices
JP4187746B2 (ja) * 2005-01-26 2008-11-26 三洋電機株式会社 動画像データ伝送装置
US7657837B2 (en) * 2005-04-06 2010-02-02 Ericom Software Ltd. Seamless windows functionality to remote desktop sessions regarding z-order
JP2007134792A (ja) * 2005-11-08 2007-05-31 Canon Inc 画像処理装置及び画像処理方法
JP4789192B2 (ja) * 2006-04-12 2011-10-12 株式会社リコー 符号処理装置、プログラム及び情報記録媒体
US8180029B2 (en) * 2007-06-28 2012-05-15 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US7856440B2 (en) * 2008-02-29 2010-12-21 International Business Machines Corporation Method and system for separating content identifiers from content reconstitution information in virtual machine images
US20100211663A1 (en) * 2008-07-28 2010-08-19 Viewfinity Inc. Management of pool member configuration
US7831661B2 (en) * 2008-12-18 2010-11-09 Vmware, Inc. Measuring client interactive performance using a display channel
JP4956849B2 (ja) * 2009-02-20 2012-06-20 Necエンジニアリング株式会社 画像復号装置およびパケット損失補償方法
US8392596B2 (en) * 2009-05-26 2013-03-05 Red Hat Israel, Ltd. Methods for detecting and handling video and video-like content in remote display system
US8392497B2 (en) * 2009-11-25 2013-03-05 Framehawk, LLC Systems and algorithm for interfacing with a virtualized computing service over a network using a lightweight client
KR101345098B1 (ko) * 2009-12-18 2013-12-26 한국전자통신연구원 실시간 영상품질 측정 장치 및 방법
US9229734B2 (en) * 2010-01-15 2016-01-05 Guest Tek Interactive Entertainment Ltd. Hospitality media system employing virtual user interfaces
US8850429B2 (en) * 2010-10-05 2014-09-30 Citrix Systems, Inc. Load balancing in multi-server virtual workplace environments
JP5678743B2 (ja) * 2011-03-14 2015-03-04 富士通株式会社 情報処理装置、画像送信プログラム、画像送信方法および画像表示方法
US8683466B2 (en) * 2011-05-24 2014-03-25 Vmware, Inc. System and method for generating a virtual desktop
US9600350B2 (en) * 2011-06-16 2017-03-21 Vmware, Inc. Delivery of a user interface using hypertext transfer protocol
US20130132971A1 (en) * 2011-11-22 2013-05-23 International Business Machines Corporation System, method and program product for streamlined virtual machine desktop display
US9589540B2 (en) * 2011-12-05 2017-03-07 Microsoft Technology Licensing, Llc Adaptive control of display refresh rate based on video frame rate and power efficiency

Also Published As

Publication number Publication date
US20150035724A1 (en) 2015-02-05
AU2013338197A1 (en) 2015-01-22
US9081536B2 (en) 2015-07-14
US8862695B2 (en) 2014-10-14
JP2015529882A (ja) 2015-10-08
WO2014070660A1 (en) 2014-05-08
AU2013338197B2 (en) 2016-03-17
EP2912546B1 (en) 2019-06-19
EP2912546A1 (en) 2015-09-02
US20140122566A1 (en) 2014-05-01

Similar Documents

Publication Publication Date Title
JP6158323B2 (ja) 仮想デスクトップインフラ(vdi)における性能向上
WO2017193821A1 (zh) 云桌面图像处理方法、服务器、客户端及计算机存储介质
JP5123186B2 (ja) 任意のフォーマットにおけるラージオブジェクトの通信のためのリモートプロトコルサポート
US9871878B2 (en) Network traffic accelerator
US20150229960A1 (en) Information processing device, method, and terminal device
CN111221491A (zh) 交互控制方法及装置、电子设备、存储介质
US10135897B2 (en) Backfill of video stream
CN106416179A (zh) 实现扩展传输控制功能的传输加速器
EP4239974A1 (en) Data transmission method and apparatus, and computer-readable medium and electronic device
US9509450B2 (en) Snoop virtual receiver time
US9705956B2 (en) Image transmitting method, program and apparatus
US9130740B2 (en) Variable acknowledge rate to reduce bus contention in presence of communication errors
US10015232B2 (en) Systems and methods for transmitting images
EP1821490A1 (en) Method for transmitting graphical data to a thin client
CN115333677A (zh) 云业务处理方法、***、装置、设备及存储介质
US20230179535A1 (en) Method, system, and circuits for rf low-latency, multiple priority communication
CN110798700B (zh) 视频处理方法、视频处理装置、存储介质与电子设备
WO2023050921A1 (zh) 视音频数据的发送方法、显示方法、发送端及接收端
CN112954386A (zh) 一种数据传输方法及***
CN118283295A (zh) 一种图像处理方法、装置、电子设备及存储介质
CN117294390A (zh) 基于前向纠错的数据传输方法、装置、电子设备和介质

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160315

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160606

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20161206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170210

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20170322

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170607

R150 Certificate of patent or registration of utility model

Ref document number: 6158323

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

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250