JP2008539449A - 分散処理環境における図形表示を更新する方法および装置 - Google Patents

分散処理環境における図形表示を更新する方法および装置 Download PDF

Info

Publication number
JP2008539449A
JP2008539449A JP2008501980A JP2008501980A JP2008539449A JP 2008539449 A JP2008539449 A JP 2008539449A JP 2008501980 A JP2008501980 A JP 2008501980A JP 2008501980 A JP2008501980 A JP 2008501980A JP 2008539449 A JP2008539449 A JP 2008539449A
Authority
JP
Japan
Prior art keywords
display
update
display unit
network
period
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.)
Withdrawn
Application number
JP2008501980A
Other languages
English (en)
Inventor
ジャスティン ブラード,
トビー オプファーマン,
Original Assignee
サイトリックス システムズ, インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by サイトリックス システムズ, インコーポレイテッド filed Critical サイトリックス システムズ, インコーポレイテッド
Publication of JP2008539449A publication Critical patent/JP2008539449A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC
    • 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/12Digital output to print unit, e.g. line printer, chain printer
    • 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
    • H04L67/131Protocols for games, networked simulations or virtual reality

Abstract

計算システムから遠くに位置するディスプレイユニットを更新するシステムおよび方法が記述される。方法は、アプリケーションを実行する計算デバイスのビデオバッファから表示情報をコピーし、表示更新を生成すること、表示更新のサイズを計算すること、および計算デバイスとディスプレイユニットとを接続するネットワークの利用可能な帯域幅の量を決定することを含む。方法はまた、表示更新を計算デバイスからディスプレイユニットに通信するに要する期間を計算すること、表示更新をディスプレイに送信すること、および計算期間が経過した後に、方法を繰り返すことを含む。

Description

(本発明の背景)
分散計算機システムは、分散アプリケーション実行の技術を利用する。より詳細には、アプリケーションサーバは、アプリケーションプログラムをローカルにて実行し、アプリケーション出力データをクライアント/ネットワークユーザに提供し、クライアント/ネットワークユーザは、次いで、彼らのローカルのコンピュータにローカルに結合された表示画面に結果を表示する。分散システムは、利用可能な計算資源を最高に利用し得る。すなわち、より能力の高いサーバは、計算およびメモリがきついアプリケーション処理機能を実行し、計算的にはより能力は低いが、映像性能に関しては潜在的により能力が高いクライアントは、出力を表示する。分散計算システムの一タイプにおいて、クライアントのユーザは、アプリケーションプログラムの実行中、アプリケーション出力データをローカルのディスプレイ上で見て、キーボード、マウス入力またはその他のデバイス入力によって、アプリケーションプログラムと対話する。ユーザの入力は、アプリケーションプログラムの動作に影響を及ぼす特定のアクションを実行するようにアプリケーションサーバにリクエストすることに対応する。アプリケーションサーバは、これらのリクエストをさらなる処理のためにアプリケーションに渡す。アプリケーションサーバはまた、アプリケーションプログラムによって生成され、典型的にはアプリケーションサーバのオペレーティングシステムをターゲットとしたアプリケーション出力データをインタセプトし、データのすべてまたは一部を表示のためにクライアントに送信する。アプリケーションプログラムは実際は離れたサーバにおいて実行され、ローカルに表示されるが、ユーザの観点から、アプリケーションプログラムがローカルに実行しているように見える。
上記の機能性を提供する種々のプロトコルがある。そのようなプロトコルの一例は、Redmond,WashingtonのMicrosoft Corporationによって販売されるリモートデスクトッププロトコル(「RDP」)である。RDPは、プロトコルのITU T.120ファミリーおよびその拡張に基づく。RDPは、複数チャネル可能なプロトコルで、該プロトコルは、別の仮想チャネルが、暗号化されたクライアントマウスおよびキーボードデータと共に、アプリケーションサーバからのデバイス通信および提示データを伝えることを可能にする。RDPは、自身のビデオドライバを用い、RDPプロトコルを用いてレンダリング情報をネットワークパケットの中に構成し、それらのパケットをネットワークを介してクライアントに送ることによって、表示出力を提供する。クライアントにおいて、RDPは、レンダリングデータを受信し、パケットを対応するMicrosoft Win32グラフィックスデバイスインタフェース(GDI)APIコールに翻訳する。入力経路に関して、クライアントマウスおよびキーボードのイベントは、クライアントからサーバに向け直される。
類似の機能性を提供する別のプロトコルは、Ft.Lauderdale,FloridaのCitrix Systemsによって販売されるインデペンデントコンピューティングアーキテクチャ(Independent Computing Architecture(「ICA」)である。ICAは、アプリケーション論理の残りからの別個の画面更新およびユーザ入力処理を可能にするプロトコルである。すべてのアプリケーション論理は、第1の計算システム上で実行し、画面更新、マウス移動およびキーストロークのみが、表示計算システムと第1の計算システムとの間のセッション時に送信される。
分散アプリケーション処理システムは、典型的なオフィスアプリケーションのために良好に機能してきた。しかしながら、図形的にきつい特定のアプリケーションは、分散アプリケーション処理システムのパフォーマンスに不利に作用し得る。図形的にきついアプリケーションの例は、限定するものではないが、計算機援用ドラフティング(「CAD」)アプリケーション、ビデオ編集アプリケーション、およびコンピュータゲームを含み得る。これらの図形的にきついアプリケーションにおいて、表示更新は、典型的には、表示更新が大きいビットマップ画像であるので、大量の帯域幅を必要とする。ユーザが見るためにCAD/CAMプログラムが装置の三次元のモデルを回転する場合などのように、実行するアプリケーションプログラムが短期間に複数の表示更新を送る場合、この問題は悪化する。大サイズのそれぞれの画面更新による出力の遅れは、ユーザ経験、およびアプリケーションプログラムとの対話に不利に作用し、分散アプリケーション処理環境において実用的でないアプリケーションプログラムを利用する。
(本発明の概要)
一局面において、本発明は、リモートディスプレイユニットを更新する方法を特徴とする。方法は、ディスプレイユニットから離れて位置するアプリケーションを実行する計算デバイスのビデオバッファからの表示情報をコピーし表示更新を生成すること、表示更新のサイズを計算すること、および計算デバイスとディスプレイユニットを接続するネットワークの利用可能な帯域幅の量を決定することを含む。方法はまた、表示更新を計算デバイスからディスプレイユニットへ通信するために必要な時間を計算すること、表示更新をディスプレイに送信すること、および該時間が経過した後で、1つ以上のステップを反復することを含む。
種々の実施形態において、方法は、少なくとも1つのステップ時に、アプリケーションによって表示情報をビデオバッファに書き込むことを含む。方法はまた、表示更新の一部としてビデオバッファの変化の領域を示す少なくとも1つのバウンディング長方形を生成すること、およびビデオバッファに対する変化量を追跡し、高更新期間が存在するかどうかを判定することを含み得る。
一実施形態において、方法は、高更新期間中に不可逆的圧縮アルゴリズムを表示更新に適用し、不可逆的表示更新を作成すること、不可逆的表示更新をディスプレイに送信すること、および高更新期間後に可逆的表示更新を送信し、不可逆的表示更新を置き換えることを含む。
別の局面において、本発明は、計算システムから離れて位置するディスプレイユニットを更新するシステムを特徴とする。システムは、ビデオバッファ、ドライバおよびスレッドを含む。ビデオバッファは、計算システム上で実行するアプリケーションプログラムの図形出力を表すディスプレイデータを記憶する。ドライバは、計算システムとリモートディスプレイユニットとの間のネットワークの特性を決定し、ネットワークの利用可能性に関して信号を送信する。スレッドは、信号を受信し、ビデオバッファに記憶されたデータに応答するリモートディスプレイへの通信のための表示更新を作成する。
種々の実施形態において、ネットワーク利用可能性に関する信号は、動的に決定された期間を含む。システムはまた、動的に決定された期間を実行するスレッドと通信し、ローカルビデオバッファをコピーするようにスレッドに信号を送りタイマモジュールを有し得る。システムはまた、バウンディング長方形情報を記憶するためのビデオバッファと通信する更新領域を含み得る。ビデオバッファに対してなされた変化量を追跡する累算器もまた、含められ得る。さらに、システムは、ドライバと通信し、累算器が所定の閾値に到達するとき表示更新をリモートディスプレイユニットに送信する前に、表示更新を圧縮する圧縮器モジュールを含み得る。
別の局面において、本発明は、計算システムから遠くに位置するディスプレイユニットを更新するシステムを特徴とする。システムは、バッファリング手段、ドライビング手段、およびスレッド手段を含む。バッファリング手段は、計算機システム上で実行するアプリケーションプログラムの図形出力を表すディスプレイデータを記憶する。ドライビング手段は、ネットワークと通信し、ネットワークの特性を決定し、そしてネットワークの利用可能性に関する信号を送信する。スレッド手段は、信号を受信し、リモートディスプレイユニットと通信する表示更新を作成する。
(本発明の詳細な説明)
本発明は、添付の図面に関連して以下の説明を参照することによって、より良く理解され得、種々の図面において、同じ記号は同じ構造の要素および特徴を示す。図は必ずしも同縮尺ではなく、本発明の原理を例示するために強調がなされている。
本発明は、リモートディスプレイユニットの表示を更新するシステムおよび方法を特徴とする。一実施形態において、本発明は、帯域幅速度の現在の動的状態およびネットワーク上の未処理のデータ量を用い、次の時間間隔を識別し表示更新を送る。時間間隔は、更新のサイズおよびネットワークの速度によって決定される。ディスプレイドライバは、アプリケーションがローカルのビデオバッファを更新することを可能にする。バッファは、ディスプレイ画面の最新のデータ表現を含む。更新が起こると、ディスプレイドライバは、各更新の結果から生じた影響を受けたバウンディング長方形のリストを維持する。ネットワークが作動可能である場合、更新は、影響を受けた長方形およびバッファのリストから送られ得る。ダブルイメージバッファリングは用いられ得る。すなわち、影響を受けた長方形のリストはコピーされ、ネットワークを通る送信のためにドライバに提供される。影響を受けた長方形のリストをコピーすることは、アプリケーションが多くの更新をバッファに対して発行することを可能にし、一方、リモートディスプレイに更新を送信する、よりゆっくりした処理が起こる。不可逆的画像圧縮は、頻繁な更新の期間中、リモートディスプレイに送られる更新に対して用いられ得る。影響を受けた更新の領域は、不可逆的に圧縮され、リスト上にセーブされる。一旦、頻繁な更新の期間が停止すると、不可逆的圧縮領域のリストは、可逆的方法によって、ローカルビデオバッファから再送信され得る。
本発明の1つの利点は、アプリケーションを更新から遠くの場所へ分離することである。アプリケーションは、更新をより遅いネットワーク経路に落とすことなく、画面に対する更新を多く作成し得る。遠くの場所に送られる更新は、ネットワークが更新を取り扱い得る場合のみ起きる。このことは、多くの更新がアプリケーションによって起こることを可能にするが、しかし最も新しいディスプレイ画像のみがネットワークを介して送られることを可能にする。従って、エンドユーザに対する提示における対話性の増加となる。
図1を参照すると、分散アプリケーション処理システム100は、通信ネットワーク140を介して、1つ以上の計算デバイス150’、150”(以下、各計算デバイスまたは複数の計算デバイスは総称的に150という)と通信する1つ以上のリモートディスプレイユニット110’、110”(以下、各リモートディスプレイユニットまたは複数のリモートディスプレイユニットは総称的に110という)を含む。ネットワーク140は、ローカルエリアネットワーク(LAN)、ミーディアムエリアネットワーク(MAN)、またはインターネットもしくはワールドワイドウェブなどの広域ネットワーク(WAN)であり得る。リモートディスプレイユニット110のユーザは、標準電話線、LANまたはWANリンク(例えば、T1、T3、56kb、X.25)、ブロードバンド接続(例えば、ISDN、フレームリレイ、ATM)、および無線接続(例えば、IEEE802.11)を含む種々の接続を介してネットワーク140に接続され得る。接続は、種々の通信プロトコル(例えば、TCP/IP、IPX、SPX、NetBIOS、および直接非同期接続)を用いてなされ得る。一部の特に有利な実施形態において、用いられるプロトコルは、Fort Lauderdale,FloridaのCitrix Systems,Inc.によって製造されるIndependent Computing ArchitectureプロトコルまたはRedmond,WashingtonのMicrosoft Corporationによって製造されるRemote Display Protocolであり得る。
ネットワーク140の帯域幅は、分散アプリケーション処理システム100の性能に影響を及ぼす1つの要因である。第2のネットワークに比較してより広い帯域幅を有するネットワーク140は、典型的には、より多くの表示データをリモートディスプレイユニット110に送信することをサポートし得る。分散アプリケーション処理システム100の動作中、ネットワーク140の帯域幅は変動する。データがネットワーク140を介して送信されると、ネットワークの利用可能な帯域幅の量は減少する。ディスプレイデータがリモートディスプレイユニット110によって受信されると、追加のデータがネットワークに入らないと仮定すると、ネットワーク140の利用可能な帯域幅は増加する。本発明の一局面は、ネットワーク140の利用可能な帯域幅を監視し、測定値を用いて表示更新フレームをリモートディスプレイユニットに送るべき時期を動的に決定する。
リモートディスプレイユニット110は、典型的には、プロセッサ112、揮発性メモリ114(例えば、RAMキャッシュ)、オペレーティングシステム116、ディスプレイエージェント118、永続記憶メモリ120、ネットワークインタフェース122(例えば、ネットワークインタフェースカード)、ディスプレイアプリケーションプログラム123、キーボード124、少なくとも1つの入力デバイス126(例えば、マウス、トラックボール、スペースボール、ライトペンおよびタブレットスタイラス、ならびに任意のその他の入力デバイス)、ならびにディスプレイ128を含む。オペレーティングシステム116は、限定するものではないが、WINDOWS(登録商標)3.x、WINDOWS(登録商標)95、WINDOWS(登録商標)98、WINDOWS(登録商標)NT3.51、WINDOWS(登録商標)NT4.0、WINDOWS(登録商標)2000、WINDOWS(登録商標)CE、MAC/OS、Java(登録商標)、PALM OS、SYMBIAN OS、LINUX、SMARTPHONE OS、およびUNIX(登録商標)を含み得る。ディスプレイエージェント118は、コマンドおよびデータを計算デバイス150およびリモートディスプレイユニット110のユーザ(図示されていない)から受信する。クライアントエージェント118は、リモートディスプレイユニット110の他のコンポーネントと対話するとき(例えば、オペレーティングシステム116をディスプレイ128の出力データに向けるとき)、受信された情報を用いる。ディスプレイエージャント118はまた、計算デバイス発行のコマンドまたはリモートディスプレイユニット110におけるユーザアクションに応答して、リクエストおよびデータを計算デバイス150に送信する。
リモートディスプレイユニット110は、任意のパーソナルコンピュータ(例えば、286、386、486、Pentium(登録商標)、Pentium(登録商標)II、Macintoshのコンピュータ)、Windows(登録商標)ベースの端末、ネットワークコンピュータ、無線デバイス、情報アプライアンス、RISC PowerPC、X−デバイス、ワークステーション、ミニコンピュータ、メインフレームコンピュータ、携帯電話、またはオペレーティングシステム116およびディスプレイアプリケーションプログラム123を実行するのに十分なメモリを提供するその他の計算デバイスであり得る。ディスプレイアプリケーションプログラム123は、オペレーティングシステム116またはスタンドアロンアプリケーションに不可欠であり得ることは理解されるべきである。ディスプレイ提示プログラム123は、ネットワーク140を介して計算デバイス150によってディスプレイ提示プログラム123に送られるコマンドおよびデータを用い、ディスプレイユニットのディスプレイ128のユーザに図形出力を提供する。
同様に、計算デバイス150は、プロセッサ152、揮発性メモリ154、オペレーティングシステム156、アプリケーションプログラム158、計算デバイスエージェント160、永続記憶メモリ162、およびネットワークインタフェース164を含み得る。計算デバイスエージェント160は、ディスプレイエージェント118および計算デバイス150の他のコンポーネントと対話し、リモートディスプレイおよびアプリケーションプログラム158の動作性をサポートする。分散アプリケーション処理システム100において、アプリケーションプログラムの実行は主として計算デバイス150において行なわれ、アプリケーション実行によって生成されるユーザインタフェースは、ネットワーク140を介してリモートディスプレイユニット110に送信される。ユーザは、ディスプレイユニット110において、キーストロークおよびマウス移動などの入力を提供し、該入力は、ネットワーク140を介して計算デバイス150に送信され、アプリケーションプログラムにさらなるタスクを実行するよう命令する。
各計算デバイス150は、リモートディスプレイユニット110によってアクセスされ得る1つ以上のアプリケーションプログラム158のホストとして働く。そのようなアプリケーションの例は、Redmond,WashingtonのMicrosoft Corporationよって製造されるMICROSOFT WORDなどのワード処理プログラムおよび該Microsoft Corporationによって製造されるMICROSOFT EXCELなどのスプレッドシートプログラム、会計報告プログラム、顧客登録プログラム、技術サポート情報を提供するプログラム、顧客データベースアプリケーション、アプリケーションセットマネージャ、または、San Rafael,CaliforniaのAutodeskによって販売されるAUTOCAD、Suresnes Cedex、仏国のDassault Systemesによって販売されるCATIA、Needham,MassachusettsのParametric Technology Corporationによって販売されるPRO/ENGINEERなどの計算機援用設計および製造アプリケーションを含む。
図2は、図1に示される分散アプリケーション処理システムの動作概観を提供する。アプリケーションプログラム158は、マウス126およびキーボード124のユーザ操作に応答して出力を生成し(ステップ210)、該出力はオペレーティングシステム156によって解釈され、オペレーティングシステム156は、今度は、アプリケーションプログラム158の図形出力を示す描画コマンドを発行する。描画コマンドは、計算デバイス150のバッファに書き込まれる(ステップ214)。バッファのコンテンツは、定期的にリモートディスプレイユニット110に通信され(ステップ218)、リモートディスプレイユニット110のディスプレイエージェント118によって処理され(ステップ222)、ディスプレイ128を更新する。計算デバイス150は、トランスポート機構(計算デバイスエージェント160の一部)を介してリモートディスプレイユニット110と通信する。一実施形態において、トランスポート機構は複数の仮想チャネルを提供し、仮想チャネルの1つは、図形画面データを計算デバイス150からリモートディスプレイユニット110に送信するためのプロトコルを提供する。
なおも図2をより詳細に参照すると、アプリケーションプログラム158は、出力を生成し(ステップ210)、アプリケーションプログラム158の図形出力を示す描画コマンドを発行する。描画コマンドの例は、限定するものではないが、ラスタオペレーション、WINDOWS(登録商標)ベースのオペレーティングシステムによって提供されるGDIコマンド、およびMAC/OSベースのオペレーティングシステムによって提供されるQUICKDRAWまたはQUARTZコマンドを含み得る。一部の実施形態において、アプリケーションプログラムによって発行される描画コマンドは「フック」される。すなわち、描画コマンドはアプリケーションプログラムに対応付けられていないコードによってインタセプトされ、下記のようにさらに処理される。これらの実施形態において、描画コマンドはまた、下記のように処理される他に、処理のためオペレーティングシステム116に提供され得る。容易な参照のため、明細書の残りすべてに関して描画コマンドは「GDIコマンド」という。
描画コマンドは、計算デバイス150によって提供されるバッファに書き込まれる(ステップ214)。一部の実施形態において、計算デバイス150の図形表示に対応付けられたデバイスドライバへのインタフェースコールなどの低レベルコマンドは、バッファに書き込まれる。さらに他の実施形態において、描画コマンドおよび低レベルコマンドの両方は、計算デバイス150によって提供されるバッファに記憶される。描画コマンドはバッファに記憶され得、同時に、その記憶されたコマンドは、リモートディスプレイユニット110に送信され、リモートディスプレイユニットによって提供されるディスプレイを更新する。
バッファのコンテンツは、定期的にリモートディスプレイユニット110に通信される(ステップ218)。バッファのコンテンツがリモートディスプレイユニット110に通信される頻度は、より詳細は下記されるように、ネットワークにおいて現在ペンディングとなっているデータの量の関数である。計算デバイス150は、トランスポート機構(計算デバイスエージェント160の一部)を介してリモートディスプレイユニット110と通信する。一実施形態において、トランスポート機構は複数の仮想チャネルを提供し、仮想チャネルの1つは、図形画面データを計算デバイス150からリモートディスプレイユニット110へ送信するためのプロトコルを提供する。
リモートディスプレイユニット110のディスプレイエージェント118は、受信したバッファコンテンツを処理し(ステップ222)、ディスプレイ128を更新する。一実施形態において、ディスプレイエージェントは、描画コマンドをリモートディスプレイユニット110のオペレーティングシステム116に発行し、描画コマンドは、計算デバイス150のアプリケーションプログラム158によって発行された描画コマンドに対応する。
図3は、計算デバイスエージェント160の種々のコンポーネントの概念的ブロック図を示す。一実施形態において、計算デバイスエージェント160は、生産者スレッド300、バッファ304、消費者スレッド308、およびドライバ312を含む。生産者スレッド300はバッファ304と通信する。消費者スレッド308は、バッファ304およびドライバ312と通信する。
生産者スレッド300は、1つ以上のアプリケーションスレッド314’、314”(総称的にアプリケーションスレッド314という)を含み、該アプリケーションスレッド314は、GDIコマンドなどの描画コマンドを発行し、描画コマンドは、処理され図形画像としてバッファ304に記憶される。描画コマンドは、典型的には、グラフィックスレンダリングエンジンに発行され、グラフィックスレンダリングエンジンは、今度は、コマンドをバッファ304にレンダリングする。グラフィックレンデリングエンジンの出力は、複雑なビットマップまたは類似の図形表現であり得る。本質的に、バッファ304は、リモートディスプレイユニット110への後の送信のための表示画像を記憶する「仮想の」ディスプレイとして機能する。
生産者スレッド300はまた、GDIコマンドをグラフィックスレンダリングエンジンに発行する前に、GDIコマンドをフックすることによって、バッファ304に対する変化を追跡する。生産者スレッド300は、GDIコマンドを調査し、バッファ304のビットマップにおける変化の領域を指示する1つ以上のバウンディング長方形を生成する。バウンディング長方形は、バッファ304と通信するかまたはバッファ304に不可欠である更新アレイ316に記憶される。生産者スレッド300は、消費者スレッド308の動作中、バッファ304および更新アレイ316を継続的に更新し得る。言いかえると、生産者スレッド300は、消費者スレッド308とは無関係に動作する。
一実施形態において、バッファ304は、揮発性メモリ154または永続記憶装置162の専用の動的に再構成可能なセクションである。前述のように、バッファ304の部分は、バウンディング長方形を記憶するための更新アレイ316として確保される。別の実施形態において、バッファは、バッファとして特に働くように装備されたデュアルポートRAMなどの特定目的のメモリを備えている。
バウンディング長方形の数が増加すると、種々のアルゴリズムはバウンディング長方形上で動作し、変化の重複領域を除去し、単一の更新フレームにおける単一の領域に対して複数の更新を送ることを防ぐ。例えば、領域Xがバッファ304への第1の書き込み中に変化した場合、変化領域の座標を指示するバウンディング長方形は、更新アレイ316に記憶される。バッファ304へのその後の書き込みが領域Xを含む領域に対する変化という結果となった場合、領域Xに関係するバウンディング長方形は、除去され、新バウンディング長方形情報によって取って代わられる。
消費者スレッド308は、累算器モジュール320、コピーモジュール324、タイマモジュール328、および圧縮器モジュール332を含む。累算器モジュール320はバッファ304と通信し、バッファ304の表示画像において変化した表示データの量の現在高を提供する。現在高は、以下にさらに詳細に説明されるが、不可逆的圧縮を含む動作のモードをトリガするために用いられる。
コピーモジュール324はバッファ304と通信し、バッファ304にアクセスする能力があり、バッファの表示画像および更新アレイ316におけるバウンディング長方形をコピーし、リモートディスプレイユニット110への送信のための表示更新フレームを作成する。
圧縮器モジュール328は、コピーモジュール324および累算器モジュール320と通信する。圧縮器モジュール328は、表示更新フレーム上の不可逆的圧縮を実行する手段を提供し、不可逆的表示更新フレームを作成する。現在高は、圧縮器モジュールを必要に応じて活動化または非活動化するために用いられる。
タイマモジュール332は、ドライバ312およびコピーモジュール324と通信する。タイマモジュール332の機能は、動的に決定された期間後に、バッファ304からのコピーオペレーションをトリガすることである。タイマモジュール332の動的に決定された期間の長さは、ネットワーク140の利用可能な帯域幅およびそれぞれの表示フレーム更新のサイズに依存する。期間を動的に決定することによって、本発明は、表示更新フレームのリモートディスプレイユニット110への「ちょうど間に合う(just−in−time)」引渡しを提供する。
ドライバ312は、分散アプリケーション処理システム100の通信プロトコルに従って、表示更新フレームをフォーマットするトランスレータモジュール336を含む。ドライバ312はまた、タイマモジュール328によって用いられる期間を動的に決定する。一実施形態において、ドライバモジュール312は、表示更新フレームのためのラウンドトリップタイムを監視する。動的に決定された期間を決定する他の方法も、用いられ得る。例えば、アプリケーションスレッド314によって発行された描画オペレーション数が、用いられ得る。
ここで図4を参照すると、生産者スレッド300の動作が説明される。全体の概観として、生産者スレッド300は描画コマンドを発行し(ステップ400);表示画像をバッファ304に書き込み(ステップ410);バウンディング長方形を生成し(ステップ420);バウンディング長方形を更新表示領域316に記憶し(ステップ430);バウンディング長方形を収束させる(ステップ440)。
より詳細には、アプリケーションプログラムスレッド314は、GDI描画コマンドをグラフィカルレンダリングエンジンに発行する(ステップ400)。グラフィカルレンダリングエンジンからの書き込みコマンドは、バッファ304に記憶された表示画像を生成する(ステップ410)。バッファ304へのその後の書き込みは、表示画像に対する変化という結果となる。
生産者スレッド300は、1つ以上のバウンディング長方形を生成し、該バンディング長方形は、バッファ304への最後の書き込み以来変化した表示画像の領域を識別する(ステップ420)。一実施形態において、グラフィックスレンダリングエンジンに発行されたGDIコマンドは、それらがグラフィックスレンダリングエンジンに渡される前に、フックされる。その後のGDIコマンドは、以前に発行されたコマンドに対して比較され、画像のどの領域が変化したかを決定する。
更新アレイ316は、バウンディング長方形を記憶する(ステップ430)。生産者スレッド300は、新バウンディング長方形を更新アレイ316に書き込む前に、更新アレイ316に現在ある任意の長方形が新バウンディング長方形と交差または重複するかどうかを判定する。当業者に公知の1つの方法は、長方形衝突検出アルゴリズムを用いることである。
交差または重複が存在する場合、バウンディング長方形は、収束される(ステップ440)。本明細書のユーザとして、収束は、現在の長方形を新長方形に置き換え、新長方形に結合またはセグメント化することをいう。一部の実施形態において、新バウンディング長方形が現在のバウンディング長方形と重複する変化の領域を記述する場合、新バウンディング長方形は更新領域316に書き込まれ、現在のバウンディング長方形は除去される。
図5に関して、消費者スレッド308の動作が記述される。消費者スレッド308は、一般的に、表示更新フレームを定期的に生成し、ディスプレイバッファ304および更新アレイ316のコンテンツをコピーすることによって、リモートディスプレイユニット110に送信し(ステップ510);ディスプレイに対する変化を抽出し(ステップ520);ディスプレイに対する変化量を決定し(ステップ530);表示更新フレームを作成し(ステップ540);オプションで、表示更新フレームは不可逆的に圧縮され(ステップ550);表示更新フレームのサイズを計算し(ステップ560);表示更新フレームをトランスレータに通信し(ステップ570;更新をリモートディスプレイユニット110に送信するのに要する時間を計算し(ステップ580);所定の時間、消費者スレッドの動作を休止させる(ステップ590)。
より詳細に、図5を引続き参照すると、コピーモジュール324は、動的に決定された期間が終了すると、バッファ304および更新アレイ316のコンテンツをコピーする(ステップ510)。換言すると、消費者スレッド308は、バッファ304および更新アレイ316の「スナップショット」を取る。スナップショットが一旦取られると、スレッド316をプログラムするアプリケーションは、バッファ304および表示更新領域316に継続的に書き込み、消費者スレッド308の動作に関係なく、バッファ304および表示更新領域316に対する更なる変更を行なう。従って、バッファ304は、最新の表示情報を有する。
スナップショットから、消費者スレッドは、バッファ304コンテンツから、典型的には複雑なビットマップ画像であるディスプレイにおける変化を抽出する(ステップ520)。一実施形態において、バウンディング長方形は、ディスプレイのどの領域が変化したかを決定するために用いられる。別の実施形態において、前の更新ディスプレイフレームは、セーブされ、排他的論理和(XOR)などの論理演算を用いて現在の更新ディスプレイフレームと比較される。
表示画像における変化量は、当業者に公知の任意の数の種々の方法を用いて決定され(ステップ530)、累算器モジュールに通信され現在高を更新する。一実施形態において、影響を受けた領域のサイズが計算される。一実施形態において、変化情報の量は累算器モジュール320に送信され、累算器モジュール320は現在高を更新する。
一実施形態において、現在カウントは、高更新期間が発生しているかどうかを判定するために用いられる。バッファ304に対するどの更新も起こらない場合、累算器モジュール326は、所定の量によって現在カウントを減少させる。現在カウントが所定の閾値を越える場合、各表示更新フレームは、リモートディスプレイへの送信の前に、不可逆的圧縮がなされる。高更新期間の終了を決定することは、種々の方法で達成され得る。一実施形態において、所定の期間(例えば、1秒)、バッファ304および更新アレイ316に対するどの変化も起こらない場合、消費者スレッド308は、不可逆的圧縮モードから出て、可逆的圧縮ディスプレイフレーム更新のリモートディスプレイユニット110への送信に戻る。
ディスプレイにおける変化量を決定後、消費者スレッド308は、表示更新フレームを作成する(ステップ540)。必要に応じ、消費者スレッド308は、不可逆的圧縮技術を更新ディスプレイフレームに適用し、リモートディスプレイユニット110へ送信のための不可逆的更新ディスプレイを作成する。一実施形態において、写真式コーデック(codec)(例えば、算術符号化を用いるJPEG圧縮)が用いられる。この種の符号化は、よりプロセッサ集約的であり、該符号化は、表示更新フレームのサイズを他のコーデック(例えば、最適化されたハフマン符号化を用いるJPEG圧縮)に比較して30パーセントも減少させ得る。消費者スレッド308は、不可逆的圧縮アルゴリズムを適用する前に、表示更新フレームをキャッシュする。キャッシュされた表示更新フレームは、その後、一旦高更新期間が終了すると、リモートディスプレイユニットに送られる。
一旦表示更新フレームが構築されると、消費者スレッド308は、表示更新フレームのサイズを決定する(ステップ560)。表示更新フレームは、ドライバ312のトランスレータモジュール336に通信される(ステップ570)。一実施形態において、トランスレータモジュール336は、分散アプリケーション処理システム100の送信プロトコルに従って、表示更新フレームを変換する。変換の一部として、表示更新フレームのサイズは、表示更新フレームをリモートディスプレイユニット110に送るのに要する時間を決定するために用いられる。
一実施形態において、ドライバモジュール312は、表示更新フレームのサイズをネットワーク140の利用可能な帯域幅で割ることによって推定送信時間を計算する(ステップ580)。
この計算は、結果として、消費者スレッド308のタイマ332によって用いられる動的に決定された期間となる。翻訳された表示更新フレームはネットワークインタフェース164に送られ、リモートディスプレイユニット110に送信される。
消費者スレッドは、表示更新フレームを送信後、非活動のままである(ステップ590)か、または動的に決定された期間の終了まで休止する。消費者スレッドは、動的に決定された期間の終了後、バッファ304および更新アレイ316の別のスナップショットを取り、同じ処理を実行する。
要約として図6を参照すると、画面更新をリモートディスプレイユニット110に送信する方法600は、表示情報をディスプレイユニットから遠くに位置するアプリケーションを実行する計算デバイスのビデオバッファからコピーし、表示更新を生成し(ステップ610);表示更新のサイズを計算し(ステップ620);計算デバイスとディスプレイユニットとを接続するネットワークの利用可能な帯域幅の量を決定し(ステップ630);計算デバイスからディスプレイユニットに表示更新を通信するのに必要な期間を計算し(ステップ640);表示更新をディスプレイに送信し(ステップ650)、計算期間が経過すると、この方法を繰り返す(ステップ660)。
本発明は特定の詳細に関連して記述されているが、そのような詳細は、添付の特許請求の範囲に含まれる範囲およびその範囲までを除き、本発明の範囲に対する制限としてみなされることは意図されていない。
図1は、本発明の原理に従って構成された分散アプリケーション処理システムのブロック図である。 図2は、図1の分散アプリケーション処理システムの動作モードを例示するフローチャートである。 図3は、図1の計算ユニットエージェントの実施形態のブロック図である。 図4は、図3の生産者スレッドの動作の方法のフローチャートである。 図5は、図3の消費者スレッドの動作の方法のフローチャートである。 図6は、本発明の原理に従って、更新をリモートディスプレイに提供する方法の実施形態のフローチャートである。

Claims (19)

  1. リモートディスプレイユニットを更新する方法であって、
    (a)該ディスプレイユニットから遠くに位置するアプリケーションを実行する計算デバイスのビデオバッファから表示情報をコピーすることにより、表示更新を生成することと、
    (b)該表示更新のサイズを計算することと、
    (c)該計算デバイスと該ディスプレイユニットとを接続するネットワークの利用可能な帯域幅の量を決定することと、
    (d)該計算デバイスから該ディスプレイユニットに該表示更新を通信するのに要する期間を計算することと、
    (e)該表示更新を該ディスプレイに送信することと、
    (f)該期間が経過後、ステップ(a)〜(e)を繰り返すことと
    を包含する方法。
  2. 前記ステップ(b)〜(e)の少なくとも1つの間、前記アプリケーションによって表示情報を前記ビデオバッファに書き込むことをさらに包含する、請求項1に記載の方法。
  3. 前記表示更新の一部として前記ビデオバッファの変化の領域を示す少なくとも1つのバウンディング長方形を生成することをさらに包含する、請求項1に記載の方法。
  4. 前記ビデオバッファに対する変化量を追跡し、高更新期間が存在するかどうかを判定することをさらに包含する、請求項1に記載の方法。
  5. 高更新期間中に不可逆的圧縮アルゴリズムを前記表示更新に適用することにより、不可逆的表示更新を作成することをさらに包含する、請求項1に記載の方法。
  6. 前記送信することは、前記不可逆的表示更新を前記ディスプレイに送信する、請求項5に記載の方法。
  7. 前記高更新期間後、可逆的表示更新を送信することにより、前記不可逆的表示更新を置き換えることをさらに包含する、請求項6に記載の方法。
  8. 計算システムから遠くに位置するディスプレイユニットを更新するシステムであって、
    該計算システム上で実行するアプリケーションプログラムの図形出力を表すディスプレイデータを記憶するビデオバッファと、
    該計算システムと該リモートディスプレイユニットとの間のネットワークの特性を決定し、ネットワークの利用可能性に関する信号を送信するドライバと、
    該信号を受信し、該ビデオバッファに記憶されたデータに応答する該リモートディスプレイへの通信のための表示更新を作成するスレッドと、
    備えている、システム。
  9. ネットワーク利用可能性に関する信号は、動的に決定された期間を含む、請求項8に記載のシステム。
  10. ビデオバッファと通信し、バウンディング長方形情報を記憶する更新領域をさらに備えている、請求項8に記載のシステム。
  11. 前記ビデオバッファに対してなされた変化量を追跡する累算器をさらに備えている、請求項8に記載のシステム。
  12. 前記ドライバと通信し、前記累算器が所定の閾値に到達するとき該表示更新を該リモートディスプレイユニットに送信する前に、該表示更新を圧縮する圧縮器をさらに備えている、請求項11に記載のシステム。
  13. 前記動的に決定された期間を実行する前記スレッドと通信し、前記ローカルビデオバッファをコピーするように該スレッドに信号を送るタイマモジュールをさらに備えている、請求項8に記載のシステム。
  14. 計算システムから遠くに位置するディスプレイユニットを更新するシステムであって、
    該計算システム上で実行するアプリケーションプログラムの図形出力を表すディスプレイデータを記憶するバッファリング手段と、
    ネットワークと通信することにより、該ネットワークの特性を決定し、ネットワークの利用可能性に関する信号を送信するドライビング手段と、
    該信号を受信し、該バッファリング手段に記憶されたデータに応答する該リモートディスプレイへの通信のための表示更新を作成するスレッド手段と
    を備えている、システム。
  15. 少なくとも1つのバウンディング長方形情報を記憶し、前記バッファリング手段と通信する記憶手段をさらに備えている、請求項14に記載のシステム。
  16. 高更新期間中に不可逆的圧縮アルゴリズムを適用することにより、前記表示更新の前記リモートディスプレイユニットへの通信の前に、該表示更新のサイズを減少させる圧縮手段をさらに備えている、請求項14に記載のシステム。
  17. 前記不可逆的アルゴリズムの適用の前に、前記表示更新をキャッシュするキャッシュ手段をさらに備えている、請求項16に記載のシステム。
  18. 前記バッファリング手段に対する更新量を追跡することにより、前記システムが高更新期間にあるかどうかを判定する累積手段をさらに備えている、請求項14に記載のシステム。
  19. 前記信号を受信する前記スレッド手段に応答して動的に決定された期間を実行するタイミング手段をさらに備えている、請求項14に記載のシステム。
JP2008501980A 2005-03-14 2006-03-14 分散処理環境における図形表示を更新する方法および装置 Withdrawn JP2008539449A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/906,954 US8171169B2 (en) 2005-03-14 2005-03-14 Method and apparatus for updating a graphical display in a distributed processing environment
PCT/US2006/009204 WO2006099442A1 (en) 2005-03-14 2006-03-14 A method and apparatus for updating a graphical display in a distributed processing environment

Publications (1)

Publication Number Publication Date
JP2008539449A true JP2008539449A (ja) 2008-11-13

Family

ID=36972457

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008501980A Withdrawn JP2008539449A (ja) 2005-03-14 2006-03-14 分散処理環境における図形表示を更新する方法および装置

Country Status (8)

Country Link
US (2) US8171169B2 (ja)
EP (2) EP1859601A1 (ja)
JP (1) JP2008539449A (ja)
KR (1) KR20070120108A (ja)
AU (1) AU2006223048A1 (ja)
CA (1) CA2601036A1 (ja)
IL (1) IL185941A0 (ja)
WO (1) WO2006099442A1 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008186448A (ja) * 2007-01-04 2008-08-14 Beijing Lenovo Software Ltd 再生システム及び方法
JP2010238126A (ja) * 2009-03-31 2010-10-21 Nec Personal Products Co Ltd サーバクライアントシステム、サーバ、端末、制御方法、及びプログラム
JP2011053960A (ja) * 2009-09-02 2011-03-17 Casio Computer Co Ltd サーバベース・コンピューティング・システムのサーバ装置およびサーバ制御プログラム
JP2011238014A (ja) * 2010-05-10 2011-11-24 Fujitsu Ltd 情報処理装置、画像送信プログラム、画像表示プログラム及び画像表示方法
JP2012511777A (ja) * 2008-12-09 2012-05-24 マイクロソフト コーポレーション ユーザモードベースのリモートデスクトッププロトコル(rdp)コード化アーキテクチャ
JP2012160834A (ja) * 2011-01-31 2012-08-23 Fujitsu Ltd 情報処理装置、画像送信プログラムおよび画像表示方法
JP2014044737A (ja) * 2013-10-25 2014-03-13 Casio Comput Co Ltd 画像処理装置及びプログラム
JP2015191630A (ja) * 2014-03-28 2015-11-02 富士通株式会社 情報処理装置、変更検出方法および変更検出プログラム

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7117239B1 (en) 2000-07-28 2006-10-03 Axeda Corporation Reporting the state of an apparatus to a remote computer
US8108543B2 (en) 2000-09-22 2012-01-31 Axeda Corporation Retrieving data from a server
US7185014B1 (en) 2000-09-22 2007-02-27 Axeda Corporation Retrieving data from a server
US7254601B2 (en) 2001-12-20 2007-08-07 Questra Corporation Method and apparatus for managing intelligent assets in a distributed environment
US7178149B2 (en) 2002-04-17 2007-02-13 Axeda Corporation XML scripting of soap commands
US7966418B2 (en) 2003-02-21 2011-06-21 Axeda Corporation Establishing a virtual tunnel between two computer programs
TWI295438B (en) * 2005-05-11 2008-04-01 Newsoft Technology Corp Method, system and receiving apparatus for transmitting screen frame from one to many terminals
US8345768B1 (en) * 2005-07-28 2013-01-01 Teradici Corporation Progressive block encoding using region analysis
WO2007138423A2 (en) * 2006-05-25 2007-12-06 Shuki Binyamin Method and system for providing remote access to applications
US8370479B2 (en) 2006-10-03 2013-02-05 Axeda Acquisition Corporation System and method for dynamically grouping devices based on present device conditions
US8065397B2 (en) 2006-12-26 2011-11-22 Axeda Acquisition Corporation Managing configurations of distributed devices
US8681811B2 (en) * 2008-02-27 2014-03-25 Ncomputing Inc. System and method for obtaining cross compatibility with a plurality of thin-client platforms
JP4827950B2 (ja) * 2008-07-31 2011-11-30 富士通株式会社 サーバ装置
CN101645004A (zh) * 2008-08-04 2010-02-10 优诺威讯国际有限公司 视窗显示的方法
US8307086B2 (en) * 2008-08-19 2012-11-06 Facebook, Inc. Resource management of social network applications
US8549093B2 (en) * 2008-09-23 2013-10-01 Strategic Technology Partners, LLC Updating a user session in a mach-derived system environment
US9665383B2 (en) * 2008-12-30 2017-05-30 Sharp Laboratories Of America, Inc. Methods and systems for interacting with an imaging device
US8732749B2 (en) 2009-04-16 2014-05-20 Guest Tek Interactive Entertainment Ltd. Virtual desktop services
US9229734B2 (en) * 2010-01-15 2016-01-05 Guest Tek Interactive Entertainment Ltd. Hospitality media system employing virtual user interfaces
US9003455B2 (en) 2010-07-30 2015-04-07 Guest Tek Interactive Entertainment Ltd. Hospitality media system employing virtual set top boxes
US20120082395A1 (en) * 2010-09-30 2012-04-05 Microsoft Corporation Entropy Coder for Image Compression
JP5259683B2 (ja) * 2010-11-19 2013-08-07 株式会社東芝 サーバ装置及びプログラム
GB2491165A (en) 2011-05-26 2012-11-28 Realvnc Ltd Mobile device having a priority adjusting thread for link wi th remote terminal
JP5899897B2 (ja) * 2011-12-20 2016-04-06 富士通株式会社 情報処理装置、情報処理方法及びプログラム
EP2821920A4 (en) 2012-03-02 2015-03-25 Fujitsu Ltd IMAGE TRANSMISSION METHOD, PROGRAM, AND DEVICE
CN102984552B (zh) * 2012-10-23 2016-06-22 深圳市深信服电子科技有限公司 基于远程应用的流量控制方法及装置
US9842422B1 (en) * 2014-02-18 2017-12-12 Google Inc. Methods, systems, and media for presenting interstitial animations
US10102664B1 (en) * 2014-12-03 2018-10-16 Charles Schwab & Co., Inc. System and method for causing graphical information to be rendered
US9456181B2 (en) 2015-02-04 2016-09-27 Citrix Systems, Inc. Smart selection of video feeds during an online meeting
US10572460B2 (en) * 2016-02-11 2020-02-25 Pure Storage, Inc. Compressing data in dependence upon characteristics of a storage system
US9912957B1 (en) 2017-04-01 2018-03-06 Intel Corporation Lossless compression for multisample render targets alongside fragment compression
EP3825850A1 (en) * 2018-05-04 2021-05-26 Citrix Systems, Inc. Computer system providing improved transfer protocol for remote computing using multiple virtual channels having different priorities.
US11824785B2 (en) 2018-05-04 2023-11-21 Citrix Systems, Inc. Systems and methods for remote computing session display based upon user input event prioritization
US11017748B2 (en) * 2018-08-20 2021-05-25 Red Hat, Inc. Copy-on-write (COW) rendering of graphical object models
CN109213560B (zh) * 2018-09-12 2020-11-27 南京尚网网络科技有限公司 一种资讯页面展示的方法及设备

Family Cites Families (169)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3596257A (en) * 1969-09-17 1971-07-27 Burroughs Corp Method and apparatus for allocating small memory spaces to a computer program
US4013828A (en) * 1976-02-20 1977-03-22 Bell Telephone Laboratories, Incorporated Method and arrangement for reducing the bandwidth and/or time required to transmit a dithered image
US4410916A (en) 1979-08-24 1983-10-18 Compression Labs, Inc. Dual mode facsimile coding system and method
DE2939411C2 (de) * 1979-09-28 1982-09-02 Siemens AG, 1000 Berlin und 8000 München Datenverarbeitungsanlage mit virtueller Speicheradressierung
US4322795A (en) * 1980-01-24 1982-03-30 Honeywell Information Systems Inc. Cache memory utilizing selective clearing and least recently used updating
US4463424A (en) * 1981-02-19 1984-07-31 International Business Machines Corporation Method for dynamically allocating LRU/MRU managed memory among concurrent sequential processes
US4562423A (en) 1981-10-15 1985-12-31 Codex Corporation Data compression
US4503501A (en) * 1981-11-27 1985-03-05 Storage Technology Corporation Adaptive domain partitioning of cache memory space
US4430712A (en) * 1981-11-27 1984-02-07 Storage Technology Corporation Adaptive domain partitioning of cache memory space
USRE32632E (en) * 1982-07-19 1988-03-29 Apple Computer, Inc. Display system
US4499499A (en) * 1982-12-29 1985-02-12 International Business Machines Corporation Method for identification and compression of facsimile symbols in text processing systems
US4545016A (en) 1983-01-07 1985-10-01 Tandy Corporation Memory management system
DE3483489D1 (de) 1983-04-13 1990-12-06 Nec Corp Speicherzugriffseinrichtung in einem datenverarbeitungssystem.
JP2785821B2 (ja) 1983-10-07 1998-08-13 ソニー株式会社 デイジタル信号発生回路
US4796003A (en) * 1984-06-28 1989-01-03 American Telephone And Telegraph Company Data compaction
GB2172127B (en) 1985-03-06 1988-10-12 Ferranti Plc Data compression system
JPS62282328A (ja) 1986-02-21 1987-12-08 Hitachi Ltd 多重画面制御方式
US4899149A (en) * 1986-02-28 1990-02-06 Gary Kahan Method of and apparatus for decoding Huffman or variable-length coees
US4862392A (en) 1986-03-07 1989-08-29 Star Technologies, Inc. Geometry processor for graphics display system
US4937036A (en) * 1986-04-28 1990-06-26 Xerox Corporation Concurrent display of data from two different display processors and user interface therefore
JP2608400B2 (ja) * 1986-06-16 1997-05-07 富士写真フイルム株式会社 圧縮処理を経た画像データからの画像再構成方法
US4862167A (en) 1987-02-24 1989-08-29 Hayes Microcomputer Products, Inc. Adaptive data compression method and apparatus
US5072412A (en) 1987-03-25 1991-12-10 Xerox Corporation User interface with multiple workspaces for sharing display system objects
US4949281A (en) 1987-04-23 1990-08-14 H. Berthold Ag Method and apparatus for generating and producing two-dimensional graphic object by polynominal parametric curves
US4992954A (en) * 1987-08-05 1991-02-12 Hitachi, Ltd. Method of storing character patterns and character pattern utilization system
US4903218A (en) * 1987-08-13 1990-02-20 Digital Equipment Corporation Console emulation for a graphics workstation
US4928247A (en) * 1987-08-13 1990-05-22 Digital Equipment Corporation Method and apparatus for the continuous and asynchronous traversal and processing of graphics data structures
US4870662A (en) 1987-12-01 1989-09-26 Concord Data Systems, Inc. System and method for compressing transmitted or stored data
JPH01246656A (ja) 1988-03-29 1989-10-02 Nec Corp プロセッサ間共有メモリ管理方式
US5103303A (en) * 1988-04-19 1992-04-07 Konica Corporation Multicolor imaging forming apparatus
US4958303A (en) 1988-05-12 1990-09-18 Digital Equipment Corporation Apparatus for exchanging pixel data among pixel processors
CA1341310C (en) 1988-07-15 2001-10-23 Robert Filepp Interactive computer network and method of operation
JP2790815B2 (ja) * 1988-08-10 1998-08-27 株式会社リコー 画像データ圧縮方法
US4905141A (en) * 1988-10-25 1990-02-27 International Business Machines Corporation Partitioned cache memory with partition look-aside table (PLAT) for early partition assignment identification
US5043919A (en) 1988-12-19 1991-08-27 International Business Machines Corporation Method of and system for updating a display unit
US5016009A (en) * 1989-01-13 1991-05-14 Stac, Inc. Data compression apparatus and method
US5126739A (en) * 1989-01-13 1992-06-30 Stac Electronics Data compression apparatus and method
EP0389151A3 (en) * 1989-03-22 1992-06-03 International Business Machines Corporation System and method for partitioned cache memory management
US5394531A (en) * 1989-04-03 1995-02-28 International Business Machines Corporation Dynamic storage allocation system for a prioritized cache
KR930003126B1 (ko) * 1989-04-20 1993-04-19 가부시기가이샤 도시바 곡선정합에 있어서 형상을 표시하는 직선쇼트벡터의 접속상태를 판정하는 방법 및 시스템
US5305440A (en) * 1989-05-15 1994-04-19 International Business Machines Corporation File extension by clients in a distributed data processing system
JP2858795B2 (ja) * 1989-07-14 1999-02-17 株式会社日立製作所 実記憶割り当て方法
DE69032418T2 (de) 1989-09-08 1999-02-25 Digital Equipment Corp Privatspeicher für Fäden in einem multifaden digitalen Datenverarbeitungssystem
JP2805096B2 (ja) 1989-10-31 1998-09-30 ソニー株式会社 ディジタル変調方法及び復調方法
US5119319A (en) * 1989-12-14 1992-06-02 Options Unlimited Research Corp. Full-duplex video communication system
US5001478A (en) * 1989-12-28 1991-03-19 International Business Machines Corporation Method of encoding compressed data
US5309555A (en) * 1990-05-15 1994-05-03 International Business Machines Corporation Realtime communication of hand drawn images in a multiprogramming window environment
US5269003A (en) 1990-05-24 1993-12-07 Apple Computer, Inc. Memory architecture for storing twisted pixels
US5049881A (en) 1990-06-18 1991-09-17 Intersecting Concepts, Inc. Apparatus and method for very high data rate-compression incorporating lossless data compression and expansion utilizing a hashing technique
EP0463874A2 (en) * 1990-06-29 1992-01-02 Digital Equipment Corporation Cache arrangement for file system in digital data processing system
US5051745A (en) 1990-08-21 1991-09-24 Pkware, Inc. String searcher, and compressor using same
JPH0799508B2 (ja) 1990-10-15 1995-10-25 インターナショナル・ビジネス・マシーンズ・コーポレイション キャッシュ記憶機構を動的に区分する方法およびキャッシュ記憶機構システム
US5544317A (en) * 1990-11-20 1996-08-06 Berg; David A. Method for continuing transmission of commands for interactive graphics presentation in a computer network
US5241625A (en) 1990-11-27 1993-08-31 Farallon Computing, Inc. Screen image sharing among heterogeneous computers
US5307456A (en) * 1990-12-04 1994-04-26 Sony Electronics, Inc. Integrated multi-media production and authoring system
US5339411A (en) 1990-12-21 1994-08-16 Pitney Bowes Inc. Method for managing allocation of memory space
EP0493084B1 (en) * 1990-12-26 1997-06-04 Canon Kabushiki Kaisha Multi-media communication apparatus
US5161015A (en) 1990-12-31 1992-11-03 Zenith Electronics Corporation System for peaking a video signal with a control signal representative of the perceptual nature of blocks of video pixels
GB9100732D0 (en) 1991-01-14 1991-02-27 Xerox Corp A data access system
US5317732A (en) * 1991-04-26 1994-05-31 Commodore Electronics Limited System for relocating a multimedia presentation on a different platform by extracting a resource map in order to remap and relocate resources
US5164727A (en) 1991-04-30 1992-11-17 Regents Of The Unversity Of California Optimal decoding method and apparatus for data acquisition applications of sigma delta modulators
US5359712A (en) 1991-05-06 1994-10-25 Apple Computer, Inc. Method and apparatus for transitioning between sequences of digital information
CA2069355C (en) 1991-06-07 1998-10-06 Robert C. Pike Global user interface
US6643656B2 (en) * 1991-07-31 2003-11-04 Richard Esty Peterson Computerized information retrieval system
DE69222102T2 (de) * 1991-08-02 1998-03-26 Grass Valley Group Bedienerschnittstelle für Videoschnittsystem zur Anzeige und interaktive Steuerung von Videomaterial
US5321806A (en) * 1991-08-21 1994-06-14 Digital Equipment Corporation Method and apparatus for transmitting graphics command in a computer graphics system
US5315698A (en) * 1991-08-21 1994-05-24 Digital Equipment Corporation Method and apparatus for varying command length in a computer graphics system
US5140321A (en) 1991-09-04 1992-08-18 Prime Computer, Inc. Data compression/decompression method and apparatus
CA2083634C (en) * 1991-12-30 1999-01-19 Hung Ping Wong Method and apparatus for mapping page table trees into virtual address space for address translation
GB9205774D0 (en) 1992-03-17 1992-04-29 Int Computers Ltd Computer security system
US5351129A (en) 1992-03-24 1994-09-27 Rgb Technology D/B/A Rgb Spectrum Video multiplexor-encoder and decoder-converter
WO1994002898A1 (en) 1992-07-24 1994-02-03 Microsoft Corporation Computer method and system for allocating and freeing memory
US5404316A (en) * 1992-08-03 1995-04-04 Spectra Group Ltd., Inc. Desktop digital video processing system
JPH0659982A (ja) 1992-08-10 1994-03-04 Hitachi Ltd 仮想記憶制御方法および装置
US5406279A (en) * 1992-09-02 1995-04-11 Cirrus Logic, Inc. General purpose, hash-based technique for single-pass lossless data compression
US5434992A (en) * 1992-09-04 1995-07-18 International Business Machines Corporation Method and means for dynamically partitioning cache into a global and data type subcache hierarchy from a real time reference trace
US5491808A (en) * 1992-09-30 1996-02-13 Conner Peripherals, Inc. Method for tracking memory allocation in network file server
EP0594196B1 (en) * 1992-10-22 1999-03-31 Cabletron Systems, Inc. Address lookup in packet data communications link, using hashing and content-addressable memory
US5537551A (en) * 1992-11-18 1996-07-16 Denenberg; Jeffrey N. Data compression method for use in a computerized informational and transactional network
US5455576A (en) 1992-12-23 1995-10-03 Hewlett Packard Corporation Apparatus and methods for Lempel Ziv data compression with improved management of multiple dictionaries in content addressable memory
US5469540A (en) 1993-01-27 1995-11-21 Apple Computer, Inc. Method and apparatus for generating and displaying multiple simultaneously-active windows
IL104568A (en) * 1993-01-31 1995-12-31 Age Computational Graphics Ltd Method and system for generating amplified output signals
CA2127053C (en) * 1993-07-02 2005-01-04 Makoto Furuhashi Method and apparatus for time-sharing cpu system bus in image generation system
US5521597A (en) * 1993-08-02 1996-05-28 Mircosoft Corporation Data compression for network transport
US5432871A (en) * 1993-08-04 1995-07-11 Universal Systems & Technology, Inc. Systems and methods for interactive image data acquisition and compression
WO1995012165A1 (en) 1993-10-22 1995-05-04 Gestalt Technologies, Incorporated Distributed management in a partitioned memory system
US5384568A (en) * 1993-12-02 1995-01-24 Bell Communications Research, Inc. Data compression
US5515508A (en) * 1993-12-17 1996-05-07 Taligent, Inc. Client server system and method of operation including a dynamically configurable protocol stack
US5461711A (en) 1993-12-22 1995-10-24 Interval Research Corporation Method and system for spatial accessing of time-based information
US5550965A (en) 1993-12-27 1996-08-27 Lucent Technologies Inc. Method and system for operating a data processor to index primary data in real time with iconic table of contents
US5473742A (en) 1994-02-22 1995-12-05 Paragraph International Method and apparatus for representing image data using polynomial approximation method and iterative transformation-reparametrization technique
US5537635A (en) * 1994-04-04 1996-07-16 International Business Machines Corporation Method and system for assignment of reclaim vectors in a partitioned cache with a virtual minimum partition size
US5734388A (en) 1994-05-16 1998-03-31 Agfa Division, Bayer Corporation Method and apparatus for data compression of digital data to produce a scaleable font database
US5754187A (en) 1994-05-16 1998-05-19 Agfa Division, Bayer Corporation Method for data compression of digital data to produce a scaleable font database
US5729710A (en) * 1994-06-22 1998-03-17 International Business Machines Corporation Method and apparatus for management of mapped and unmapped regions of memory in a microkernel data processing system
US5572206A (en) 1994-07-06 1996-11-05 Microsoft Corporation Data compression method and system
US5485460A (en) * 1994-08-19 1996-01-16 Microsoft Corporation System and method for running multiple incompatible network protocol stacks
US5566288A (en) 1994-09-02 1996-10-15 Caterpillar Inc. System and method for automatically fitting a B-spline curve to a set of data points
US5802281A (en) * 1994-09-07 1998-09-01 Rsi Systems, Inc. Peripheral audio/video communication system that interfaces with a host computer and determines format of coded audio/video signals
US7190284B1 (en) * 1994-11-16 2007-03-13 Dye Thomas A Selective lossless, lossy, or no compression of data based on address range, data type, and/or requesting agent
US5574845A (en) 1994-11-29 1996-11-12 Siemens Corporate Research, Inc. Method and apparatus video data management
US5771383A (en) * 1994-12-27 1998-06-23 International Business Machines Corp. Shared memory support method and apparatus for a microkernel data processing system
US5771034A (en) * 1995-01-23 1998-06-23 Microsoft Corporation Font format
EP0734144A3 (de) 1995-03-20 1999-08-18 Siemens Aktiengesellschaft Verfahren und Anordnung zum Ermitteln der Benutzergebühr in einer Teilnehmereinrichtung
US5621660A (en) 1995-04-18 1997-04-15 Sun Microsystems, Inc. Software-based encoder for a software-implemented end-to-end scalable video delivery system
US5651136A (en) * 1995-06-06 1997-07-22 International Business Machines Corporation System and method for increasing cache efficiency through optimized data allocation
US5874960A (en) * 1995-07-05 1999-02-23 Microsoft Corporation Method and system for sharing applications between computer systems
US5864711A (en) * 1995-07-05 1999-01-26 Microsoft Corporation System for determining more accurate translation between first and second translator, and providing translated data to second computer if first translator is more accurate
US5742797A (en) * 1995-08-11 1998-04-21 International Business Machines Corporation Dynamic off-screen display memory manager
US5767849A (en) * 1995-08-18 1998-06-16 International Business Machines Corporation Personality neutral window management subsystem
US5835959A (en) 1995-12-01 1998-11-10 Sand Technology Systems International, Inc. Memory management system and method using dual indexing structures
US5850632A (en) 1995-09-08 1998-12-15 Texas Instruments Incorporated Memory access controller utilizing cache memory to store configuration information
US6016535A (en) * 1995-10-11 2000-01-18 Citrix Systems, Inc. Method for dynamically and efficiently caching objects by subdividing cache memory blocks into equally-sized sub-blocks
US5826027A (en) 1995-10-11 1998-10-20 Citrix Systems, Inc. Method for supporting an extensible and dynamically bindable protocol stack in a distrubited process system
US6081623A (en) * 1995-10-11 2000-06-27 Citrix Systems, Inc. Method for lossless bandwidth compression of a series of glyphs
US5717879A (en) * 1995-11-03 1998-02-10 Xerox Corporation System for the capture and replay of temporal data representing collaborative activities
US6161126A (en) 1995-12-13 2000-12-12 Immersion Corporation Implementing force feedback over the World Wide Web and other computer networks
JPH09233467A (ja) 1996-02-21 1997-09-05 Fujitsu Ltd 画像データ通信装置及び画像データ通信システムにおける通信データ量調整方法
US5961588A (en) 1996-02-22 1999-10-05 Alcatel Usa Sourcing, L.P. Handling of commands passed between the server and client stations of a telecommunications system
US5740171A (en) * 1996-03-28 1998-04-14 Cisco Systems, Inc. Address translation mechanism for a high-performance network switch
US5923654A (en) * 1996-04-25 1999-07-13 Compaq Computer Corp. Network switch that includes a plurality of shared packet buffers
US5864678A (en) * 1996-05-08 1999-01-26 Apple Computer, Inc. System for detecting and reporting data flow imbalance between computers using grab rate outflow rate arrival rate and play rate
US6034689A (en) * 1996-06-03 2000-03-07 Webtv Networks, Inc. Web browser allowing navigation between hypertext objects using remote control
US6057857A (en) * 1996-06-12 2000-05-02 Citrix Systems, Inc. Method for the lossless compression of lines in a distributed computer system
US6014133A (en) * 1996-06-14 2000-01-11 Seiko Epson Corporation Data transmitter/receiver apparatus, data transmitter, data receiver, and data compression method
KR100203266B1 (ko) 1996-07-09 1999-06-15 윤종용 윤곽선복호화장치
US5757925A (en) * 1996-07-23 1998-05-26 Faybishenko; Yaroslav Secure platform independent cross-platform remote execution computer system and method
US5918019A (en) * 1996-07-29 1999-06-29 Cisco Technology, Inc. Virtual dial-up protocol for network communication
US5761734A (en) * 1996-08-13 1998-06-02 International Business Machines Corporation Token-based serialisation of instructions in a multiprocessor system
US6052120A (en) * 1996-10-01 2000-04-18 Diamond Multimedia Systems, Inc. Method of operating a portable interactive graphics display tablet and communications systems
US5944791A (en) 1996-10-04 1999-08-31 Contigo Software Llc Collaborative web browser
US5931904A (en) 1996-10-11 1999-08-03 At&T Corp. Method for reducing the delay between the time a data page is requested and the time the data page is displayed
US5913230A (en) * 1997-01-07 1999-06-15 Richardson; John J. Object and method for providing efficient multi-user access to shared operating system kernal code using instancing
US5949975A (en) 1997-03-12 1999-09-07 Microsoft Corp. Method and system for negotiating capabilities when sharing an application program with multiple computer systems
GB2323946B (en) 1997-04-04 2002-04-17 Sony Uk Ltd Database accessing method and apparatus
US6061714A (en) * 1997-05-07 2000-05-09 International Business Machines Corporation Persistent cache synchronization and start up system
US5983190A (en) 1997-05-19 1999-11-09 Microsoft Corporation Client server animation system for managing interactive user interface characters
US5877757A (en) * 1997-05-23 1999-03-02 International Business Machines Corporation Method and system for providing user help information in network applications
US6879266B1 (en) * 1997-08-08 2005-04-12 Quickshift, Inc. Memory module including scalable embedded parallel data compression and decompression engines
US5999950A (en) 1997-08-11 1999-12-07 Webtv Networks, Inc. Japanese text input method using a keyboard with only base kana characters
US5999179A (en) 1997-11-17 1999-12-07 Fujitsu Limited Platform independent computer network management client
US6363511B1 (en) * 1998-03-31 2002-03-26 Stmicroelectronics N.V. Device and method for decoding data streams from storage media
US6253212B1 (en) * 1998-06-23 2001-06-26 Oracle Corporation Method and system for maintaining checkpoint values
US6624761B2 (en) * 1998-12-11 2003-09-23 Realtime Data, Llc Content independent data compression method and system
US6233226B1 (en) * 1998-12-14 2001-05-15 Verizon Laboratories Inc. System and method for analyzing and transmitting video over a switched network
EP1152342B1 (en) * 1999-01-12 2009-01-07 Fujitsu Limited Access control device and method for controlling access to recording medium
US6822589B1 (en) * 1999-01-29 2004-11-23 Quickshift, Inc. System and method for performing scalable embedded parallel data decompression
US20010054131A1 (en) * 1999-01-29 2001-12-20 Alvarez Manuel J. System and method for perfoming scalable embedded parallel data compression
US7129860B2 (en) * 1999-01-29 2006-10-31 Quickshift, Inc. System and method for performing scalable embedded parallel data decompression
US6483515B1 (en) 1999-04-09 2002-11-19 Sun Microsystems, Inc. Method and apparatus for displaying data patterns in information systems
US6778346B2 (en) * 2000-03-30 2004-08-17 Sony Corporation Recording and reproducing apparatus and file managing method using the same
US7218784B1 (en) 2000-05-01 2007-05-15 Xerox Corporation Method and apparatus for controlling image quality and compression ratios
US7127525B2 (en) * 2000-05-26 2006-10-24 Citrix Systems, Inc. Reducing the amount of graphical line data transmitted via a low bandwidth transport protocol mechanism
JP4332770B2 (ja) * 2000-08-02 2009-09-16 ソニー株式会社 画像処理装置および画像処理方法、並びに記録媒体
US7212726B2 (en) * 2000-09-15 2007-05-01 International Business Machines Corporation System and method of processing MPEG streams for file index insertion
US20030051005A1 (en) * 2001-09-13 2003-03-13 Burch Charles Carroll Apparatus for encapsulating data within a self-defining file and method thereof
US7143046B2 (en) * 2001-12-28 2006-11-28 Lucent Technologies Inc. System and method for compressing a data table using models
US6753870B2 (en) * 2002-01-30 2004-06-22 Sun Microsystems, Inc. Graphics system configured to switch between multiple sample buffer contexts
US7328150B2 (en) * 2002-09-04 2008-02-05 Microsoft Corporation Innovations in pure lossless audio compression
US7424434B2 (en) * 2002-09-04 2008-09-09 Microsoft Corporation Unified lossy and lossless audio compression
US7536305B2 (en) * 2002-09-04 2009-05-19 Microsoft Corporation Mixed lossless audio compression
US6798362B2 (en) * 2002-10-30 2004-09-28 International Business Machines Corporation Polynomial-time, sequential, adaptive system and method for lossy data compression
JP4305055B2 (ja) * 2003-05-22 2009-07-29 株式会社日立製作所 画像記録装置
CN101095127B (zh) * 2003-06-02 2014-04-09 精工爱普生株式会社 通过网络通告图像显示设备的存在的方法
US7251372B2 (en) * 2004-01-14 2007-07-31 Nec Solutions (America) Inc. Method and system for compressing digitized fingerprint images by a uniform degree of compression
US7656561B2 (en) * 2004-05-31 2010-02-02 Phase One A/S Image compression for rapid high-quality imaging
US7283674B2 (en) * 2004-06-25 2007-10-16 Xerox Corporation Using graphic objects in MFD scan-to-export function
US7570819B2 (en) * 2005-01-28 2009-08-04 Chih-Ta Star Sung Method and apparatus for displaying images with compression mechanism
US20060195464A1 (en) * 2005-02-28 2006-08-31 Microsoft Corporation Dynamic data delivery

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008186448A (ja) * 2007-01-04 2008-08-14 Beijing Lenovo Software Ltd 再生システム及び方法
JP2012511777A (ja) * 2008-12-09 2012-05-24 マイクロソフト コーポレーション ユーザモードベースのリモートデスクトッププロトコル(rdp)コード化アーキテクチャ
JP2010238126A (ja) * 2009-03-31 2010-10-21 Nec Personal Products Co Ltd サーバクライアントシステム、サーバ、端末、制御方法、及びプログラム
JP2011053960A (ja) * 2009-09-02 2011-03-17 Casio Computer Co Ltd サーバベース・コンピューティング・システムのサーバ装置およびサーバ制御プログラム
JP2011238014A (ja) * 2010-05-10 2011-11-24 Fujitsu Ltd 情報処理装置、画像送信プログラム、画像表示プログラム及び画像表示方法
JP2012160834A (ja) * 2011-01-31 2012-08-23 Fujitsu Ltd 情報処理装置、画像送信プログラムおよび画像表示方法
US8982135B2 (en) 2011-01-31 2015-03-17 Fujitsu Limited Information processing apparatus and image display method
JP2014044737A (ja) * 2013-10-25 2014-03-13 Casio Comput Co Ltd 画像処理装置及びプログラム
JP2015191630A (ja) * 2014-03-28 2015-11-02 富士通株式会社 情報処理装置、変更検出方法および変更検出プログラム

Also Published As

Publication number Publication date
AU2006223048A1 (en) 2006-09-21
CA2601036A1 (en) 2006-09-21
KR20070120108A (ko) 2007-12-21
WO2006099442A1 (en) 2006-09-21
IL185941A0 (en) 2008-01-06
EP2267975A3 (en) 2012-01-18
EP1859601A1 (en) 2007-11-28
US8171169B2 (en) 2012-05-01
US20120191877A1 (en) 2012-07-26
US20060206820A1 (en) 2006-09-14
EP2267975B1 (en) 2018-11-14
EP2267975A2 (en) 2010-12-29

Similar Documents

Publication Publication Date Title
US8171169B2 (en) Method and apparatus for updating a graphical display in a distributed processing environment
US8677022B2 (en) Method and apparatus for updating a graphical display in a distributed processing environment using compression
US7376695B2 (en) Method and system for generating a graphical display for a remote terminal session
US8433747B2 (en) Graphics remoting architecture
EP1285517B1 (en) Method and system for efficiently reducing graphical display data for transmission over a low bandwidth transport protocol mechanism
US9344528B2 (en) Data compressor using hints
WO2021169236A1 (zh) 渲染的方法、装置
JP5788865B2 (ja) 複数のプロセッサを用いた画像圧縮の加速
CN112221127B (zh) 一种云游戏的多点控制方法及装置
JPWO2011077550A1 (ja) 画面中継装置
EP1326406B1 (en) Method and system for efficiently reducing graphical display data for transmission over a low bandwidth transport protocol mechanism
WO2015107672A1 (ja) 画像処理プログラム、画像処理方法、および画像処理装置
US20150350295A1 (en) System And Method For Loading Assets During Remote Execution
CN113835816A (zh) 一种虚拟机桌面显示方法、装置、设备及可读存储介质
US8984167B1 (en) Real-time frame streaming from remote graphics processing unit
Patel et al. Mobile virtual network computing system
AU2006202293B2 (en) Method and system for efficiently reducing graphical display data for transmission over a low bandwidth transport protocol mechanism
Liu Principle and Practice of Distributing Low and High Resolution Display Content from One Computer to Many Computers in Stand-alone or Display Wall Configurations
Brown et al. OpenGL Vizserver 3.1–Application transparent remote interactive visualization and collaboration

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20090602