JP2009514124A - マルチユーザ端末サービス促進装置 - Google Patents

マルチユーザ端末サービス促進装置 Download PDF

Info

Publication number
JP2009514124A
JP2009514124A JP2008538906A JP2008538906A JP2009514124A JP 2009514124 A JP2009514124 A JP 2009514124A JP 2008538906 A JP2008538906 A JP 2008538906A JP 2008538906 A JP2008538906 A JP 2008538906A JP 2009514124 A JP2009514124 A JP 2009514124A
Authority
JP
Japan
Prior art keywords
display
graphics
subsystem
network
host
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008538906A
Other languages
English (en)
Other versions
JP5060489B2 (ja
Inventor
マーグリス,ニール
Original Assignee
キャリスタ・テクノロジーズ,インコーポレーテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by キャリスタ・テクノロジーズ,インコーポレーテッド filed Critical キャリスタ・テクノロジーズ,インコーポレーテッド
Publication of JP2009514124A publication Critical patent/JP2009514124A/ja
Application granted granted Critical
Publication of JP5060489B2 publication Critical patent/JP5060489B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • 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/1423Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
    • G06F3/1431Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display using a single graphics controller
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/16Indexing scheme for image data processing or generation, in general involving adaptation to the client's capabilities
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/02Improving the quality of display appearance
    • G09G2320/0252Improving the response speed
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/02Networking aspects
    • G09G2370/025LAN communication management
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Human Computer Interaction (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Digital Computer Display Output (AREA)

Abstract

マルチユーザ・ホスト・コンピュータ・システムは、アプリケーション及び多数のリモート端末のためのデスクトップ環境を処理するホスト・コンピュータを備えている。ホスト・コンピュータは、ホストCPUの処理を補う端末サービス・オフロード・プロセッサを含む。リモート端末毎に、端末サービス・オフロード・プロセッサは、ビデオ及びグラフィクス性能を向上させることができ、マルチユーザ・ホスト・コンピュータ・システムが一層効率的に多数のユーザをサポートすることを可能にする。ホスト・コンピュータは、リモート端末毎に仮想表示を管理し、サブ・フレーム・データの選択的更新を行うグラフィクス・プロセッサを含むこともできる。該当する場合には、サブ・フレーム・データをエンコードし、ネットワークを通じてリモート端末に送信する。ビデオ・データ・ストリームも、端末サービス・オフロード・プロセッサによって最適化し、更に意図するリモート端末及びそれらそれぞれのネットワーク接続に合わせて最適化する。端末サービス・オフロード・プロセッサは、プログラム可能なハードウェアで実施することができ、別個のサブシステムとしてもよく、あるいは他のオフロード・タスクを実行するために用いてもよい。

Description

本発明は、一般的には、マルチユーザ・ホスト・コンピュータ・システムに関し、更に特定すれば、リモート・クライアントのための効果的な端末サービスのサポートに関する。
効率的なマルチユーザ・コンピュータ・システムを開発することは、現在のシステム設計者及び製造業者にとって重要な目的である。
従来のコンピュータ・システムは、ローカル・ディスプレイ・デバイスを利用して、出力を直接一人のユーザに表示することがあった。ローカル・ディスプレイ・デバイスは、該ディスプレイ・デバイスをコンピュータ・システムの出力に電気的に結合する種々の物理的接続によって強制される制約のために、通例、コンピュータ・システムに近接して位置付けられている。コンピュータ・システムの中には、第2ディスプレイ・デバイスをサポートする場合もあるが、物理的接続のために同様の近接の制約がある。
リモート・ユーザは、しかるべき目視場所及びホスト・システムへのネットワーク接続を選択する柔軟性が必要となる。例えば、会社環境においては、ある業務では、物理的セキュリティと、空調及び電源バックアップ・システムのような環境管理との双方を有する、安全を確保した拠点である「コンピュータ室」にホスト・コンピュータを全て保持することが望まれる場合がある。しかしながら、ユーザは、「コンピュータ室」の外側に位置する彼らの事務所や机からホスト・コンピュータ・システムを利用する必要がある。
今日、典型的な事務所環境では、パーソナル・コンピュータや、機能がますます少ないのクライアントを含み、これらはユーザの場所に物理的に配置されている。これらのパーソナル・コンピュータや少機能クライアントは、集中記憶システム、ファイル提供、ファイル共有、ネットワーク管理、及び種々の管理運営サービスを有するネットワーク上で動作する。初期の頃では、システムは、コンピュータ・システムと関連のあるディスク・ストレージの全てを集中させ、一方ユーザは彼らのローカル・デスクトップ上でアプリケーションをランさせていた。最近になって、セキュリティの便益、動作コスト削減、及び総合的な集中制御に対する要望が認識され、パーソナル・コンピュータ及び少機能クライアントは、サーバ上でアプリケーションをランさせるサーバ・ベースの計算(SBC)ソリューションにおけるリモート端末(RT)として動作することができるようになった。
SBC環境におけるRTに対する従前からの手法は、殆どのシステムにとって、Microsoft社のRemote Display Protocol(RDP)のような、ある形態のクライアント通信交換に対するサーバを用いることである。RDPは、それ自体のビデオ・ドライバをサーバ上で用い、更にRDPプロトコルを用いて、レンダリング情報をネットワーク・パケットに組み立て、ネットワークを通じてクライアントにこれらを送る。クライアントは、レンダリング・データを受信し、パケットを解釈して、対応するMicrosoft Win32 Graphics Device Interface(GDI)API コールを得る。クライアント・キーボード及びマウス・コマンドをサーバに再送出すること、ローカル・オーディオ及びローカル・クライアント・ドライブを管理することに対するサポートも含まれる。
ホスト・システムとクライアントとの間の通信を強化するために、他のシステムはホスト・コンピュータの主CPUを用いてRTの性能を向上させている。これは、少機能クライアント及び従前からのPC双方に対して、リモート・クライアントとして行われている。このような手法は、一度に一人のユーザのみをサポートするホスト・システムには有効であった。しかしながら、マルチユーザ・システムでは、ホストにおいて主CPUを用いてあらゆるユーザに対する性能を向上させるという手法には、厳しい限界がある。主メモリやCPUサイクルのような計算資源が、一人のユーザの最適化のために用いられ、追加のユーザのために作業負荷をサポートする能力が低下する虞れがある。
1台のホスト・コンピュータから多数のユーザを効率的にサポートすれば、コストを削減することができる。典型的な事務所環境では、誰もが同時に彼らのコンピュータを用いていることは殆どなく、いずれか一人のユーザが彼らのコンピュータの計算資源全てを用いていることも殆どない。例えば、事務所が100室ある会社の場合、いずれの時点でも60人のユーザをサポートするシステムがあれば十分な場合もある。とは言っても、このようなシステムを設計するとすれば、100人のユーザ全てをサポートするように設計し、彼らが各々自分自身のホスト・コンピュータを有するような外観を与えるように、彼らに十分な計算スループットを与える可能性がある。
多数のCPUを含むことによってホスト・コンピュータの性能が増々向上し、CPUは多数のプロセッサ・コアを有するため、一人のユーザを1台のコンピュータに制限することは、経済的な意味が薄れつつある。一部のRTをローカル・エリア・ネットワーク(LAN)を通じてマルチユーザ・ホスト・システムにローカルに接続することができるが、他のRTはワイド・エリア・ネットワーク(WAN)を通じて接続され、これらはホスト・システムに対するネットワーク接続性能が低下する。
世界の異なる地域の場所にRTを配した分散型事務所環境では、集中マルチユーザ・システムが、それぞれの時間帯に対して異なる作業時間中に、世界の異なる地域をサポートすることができる。
サーバ・ベースの計算は、ユーザ用アプリケーションがサーバ上でランし、RTサービスのみをユーザ端末においてサポートするが、これは多数のユーザに計算資源を一層効率的に割り振る別のやり方である。SBCにより、ホスト・システムは、メモリやCPUサイクルのような共有資源を、最も優先順位が高いユーザに動的に割り振ることが可能になる。SBCシステムは、仮想機械(VM)の技法、負荷均衡、及びその他の手段を採用し、多数の判断基準に基づいて、異なるレベルの性能及び資源に、異なるユーザのアクセスを付与することができる。SBC資源を割り振るために、異なる優先順方式を用いることができる。SBCは、データ・セキュリティを一層高め、組織のサポート、災害復旧の強化及び業務の継続を集中し、組織全体にわたるデータ記憶の必要性を低減する手段として用いることができる。
しかしながら、組織が有すると考えられる種々のRTデバイスに合わせて豊富な用途の遂行を効果的に管理し、制御し、届けるためには、マルチユーザ・ホスト・コンピュータを更に複雑にする必要がある場合もある。マルチユーザ・ホスト・システムが、傑出した計算及び表示性能によって、多数のリモート・ユーザを一層効率的にサポートすることを可能にする解決策が求められている。
本発明は、インタラクティブ・グラフィクス及びビデオが可能な1つ以上のリモート・端末を含むマルチユーザ・コンピュータ・システムにおいて、ホスト又はサーバ・システムのために効率的なアーキテクチャを提供する。ホスト・システムは、総合的に、アプリケーションを管理し、サーバに基づく計算を実行する。各RTはそれ自体のキーボード、マウス、及びディスプレイを有し、ならびにその他の周辺デバイスも有することもある。RTは、個々のユーザに、サーバ上のアプリケーションへのアクセス、及び豊富なグラフィカル・ユーザ・インターフェースを提供する。
第1の好適な実施形態では、ホスト・システムは、端末サービス促進装置(TSA)と呼ばれる補助プロセッサを含み、端末サービス促進装置は、RT毎にリモート・グラフィクス・プロトコルを管理する計算タスクをオフロードさせる。TSAによって、マルチユーザ・ホスト・コンピュータは、種々の異なる帯域幅の提案(solution)を跨いでネットワークすることができる多種多様のRTを適応的にサポートするために経済的に調整することが可能となる。TSAは、構成変更可能なプロセッサ、ディジタル信号プロセッサ(DSP)又はハードウェア・ブロックの形態をなす処理エレメントを含み、ホストからのオフロードを最良に実行し、更に種々の端末をサポートするジョブを改良して実行することができる。オフロードは、グラフィクス・コマンドのネットワーク・パケットへのカプセル化、通信チャネルを更に効率的に用いることができるような異なるデータ・ブロックのエンコード、及びRT毎のキャッシュ・データの追跡を含むことができる。ローカル端末をサポートするために、ホスト・システム内にローカル・グラフィクス・プロセッサがある可能性が高いが、これはRT用サポート・システムの一部ではない。TSAは、ローカル・グラフィクスを処理し、遠隔KVM管理能力を設けることができる。
第2の好適な実施形態では、ホスト・コンピュータがソフトウェア、グラフィクス・プロセッサ、及びデータ・エンコードを利用して、RT毎に仮想表示環境を作成し、そのために最小限のコマンド又はデータだけを伝達すればよいようにすることによって、多数のRTをサポートする。RTとの通信のための最もありふれた方法では、カプセル化したグラフィクス・コマンドを送るか、又はエンコードしたサブ・フレーム・データを送ることを含む。RTを管理するソフトウェアは、第1実施形態におけるように、ホストCPU上又はTSA上のいずれかでランすることができ、あるいはこれら2つの組み合わせにおいてランすることもできる。RT毎の選択的更新を、ソフトウェアで又はグラフィクス・プロセッサにおけるハードウェアの補助によって調整することができる。グラフィクス・プロセッサは、提案されているVESAディジタル・パケット・ビデオ・リンク(DPVL)規格、又はサブ・フレームにステータス・ビット又は署名を用いる改良した方法に従うことができる。別の強化方法では、PCIエクスプレス又は別のバスを、出力データ用DVIの代わりに用いて、グラフィクス・プロセッサ内において又はグラフィクス・プロセッサに取り付けたエンコーダによって、追加のデータ・エンコードを実行し、ソフトウェアは、マルチユーザ・サポートのために、1つの仮想グラフィクス・プロセッサを利用する。
各実施形態は、更に、追跡ソフトウェアをTSAと共に用いることによってホストCPUからオフロードさせ、ビデオ再生のような機能を傍受(intercept)することができる。ホストCPUにビデオ・デコードをローカルに実行させ、RTに伝送するためにビットマップを供給させる代わりに、TSAは、CPUによるデコードの前に、ビデオ・データ・ストリームを傍受することができ、ネイティブなビデオ・ストリーム、あるいはトランスコード又はレート変更したバージョンのような、修正バージョンを、目標のRTに伝達することができる。RTへの通信には、標準的なRDPチャネルに加えて、その他の私的チャネルを採用することができるが、その場合でもRDPプロトコルの中で管理する。
各実施形態のホスト・システムにおいて、データをカプセル化又はエンコードした後、ネットワーク・プロセッサ、又は更に単純なネットワーク・コントローラと共に動作するCPUは、有線及び/又はワイヤレス・ネットワークを通じて、グラフィクス・パケットをRTに送信する。各RTシステムは、その表示を意図するグラフィクス・パケットをデコードし、フレーム更新を管理し、表示画面に必要な処理を実行する。ネットワーク送信中に失われたパケットを隠蔽するというようなその他の機構は、リモート・ディスプレイ・システムによって管理する。新しいフレーム更新がない場合、リモート・ディスプレイ・コントローラは、直前のフレームからのデータによって、表示画面をリフレッシュする。
本システムは、種々の有線及び無線ネットワーク接続からホスト・システムCPU、TSA、及びデータ・エンコード・システムに、ネットワーク情報をフィードバックすることができる。ホスト・システムは、RT更新を生成する種々の処理ステップに影響を及ぼすためにネットワーク情報を用い、ネットワーク・フィードバックに基づいて、異なるRTに合わせてフレーム・レート及びデータ・エンコードを様々に変更することができる。加えて、ノイズが多い送信チャネルを有するネットワークを含むシステムでは、エンコード・ステップを前進誤り訂正保護と組み合わせて、送信チャネルの特性に合わせて送信データを用意することができる。これらのステップの組み合わせによって、RTの各々について、低いレイテンシで最適なフレーム・レートを維持する。TSAは、別個のサブシステムとして実施することができ、あるいは、ネットワーク・プロセッサ、セキュリティ・プロセッサ、XMLアクセレレータ(促進装置)、iSCSIプロセッサ、又はこれらの任意の組み合わせ等の、他のオフロード及び促進処理と組み合わせることもできる。
したがって、少なくとも上記した理由により、本発明は、システムの相互動作性及び機能性を容易に得るために種々の異質なコンポーネントを利用する、柔軟性の高いマルチユーザ・コンピュータ・システムを効果的に実現する。つまり、本発明は、強化したマルチユーザ・サーバを実現する。
本発明は、マルチユーザ・リモート端末(RT)コンピュータ・システムにおける改良に関する。記載する実施形態はマルチユーザRTコンピュータ・システムに関するが、同じ原理及び特徴は、他の形式の単一ユーザ・システム及び他の形式の少機能クライアントにも等しく適用することができる。
図1を参照すると、本発明は、マルチユーザ・コンピュータ・システム100の効率的なアーキテクチャを提供する。マルチユーザ・サーバに基づくコンピュータ120を「ホスト120」と称し、これは、各々が何らかの形態のリモート端末を利用する多数のユーザのためにアプリケーションを処理する。ローカル端末110は、主に、ユーザ毎に、又は管理運営タスク用として備えられており、ホスト120は、表示更新ネットワーク・ストリームを、RT300、302、304等に向かう優先ネットワーク290上、又はディスプレイ306に向かうワイヤレス・ネットワーク290上において生成する。RTにおけるユーザは、ホスト・コンピュータ120があたかもそれ自体のローカル・コンピュータであるかのように時間共有し、グラフィクス、テキスト、及びビデオ・コンテンツのあらゆる形式に対して完全なサポートを有し、同じ形式のユーザ操作(user experience)をローカル・コンピュータ上で行うことができる。追加の接続部292は、WAN、記憶サブシステム、他のホストへのネットワーク接続部、又は種々のその他のデータ中央接続部とすることができ、GigE、10Gイーサネット、iSCSI、Fiber Channel(FC)、Fiber Channel IP(FCIP)、あるいはその他の電気的又は光学的接続の形態を取ることができる。接続部242は、他のデータ又はビデオ・ソースをホスト・システム120に接続することができる。
本明細書全体を通じて、「ホスト」とは、マルチユーザ・サーバに基づく演算をサポートする種々のやり方で構成することができる、ホスト120、ホスト200、又はホスト400を指す。多数のホスト120を纏めてクラスタ化し、動的に共有することができる演算資源を形成することもできる。各ホスト120の内部では、多数のコンピュータ・ホスト200を纏めてブレードの形態で一団とし、バックプレーンを通じて接続されているラックに入れるか、又はその他のマルチプロセッサ構成にすることもできる。種々のマルチユーザ・オペレーティング・システム(OS)又は単一ユーザOSを仮想化するソフトウェアを、1つ以上のプロセッサ・ブレード又はマザーボード上に展開することができる。Citrix又はWindows Serverのようなオペレーティング・システムは、マルチユーザOSとして設計されている。Windows XPは、特定的に多数のユーザに向けて設計されているのではないが、VMWARE又はXen Sourceのような下位仮想化ソフトウェア、あるいはマルチユーザOSのように思われる程に素早くユーザの切換を行う他の手段の補助により、このような構成において用いることができる。異なる管理制御により、RT及びプログラムを統計的又は動的にプロセッサ間で移動させることが可能になる。プロセッサ毎にOSによって負荷均衡を実行することができ、あるいはシステムが多数のプロセッサに跨る負荷均衡を実行することもできる。
図2は、サーバ・システムの1つのブレード200のブロック図であり、各ブレードがそれ自体でホスト・コンピュータ120となることができ、あるいは多数のブレードを纏めて収容し更に能力を高めたホスト・コンピュータ120を作成することもできる。本発明の一実施形態によれば、単一ブレード(マザーボード)システム200又は多数のブレード200のいずれかを、マルチユーザ・システム100に用いることができる。ホスト・システム120が有するブレード及びCPUが多い程、多くのユーザを同時にサポートすることができる。ホスト・コンピュータ200の基本コンポーネントは、好ましくは、CPUサブシステム202、バス・ブリッジ・コントローラ204、PCIエクスプレスのような主システム・バス206、ローカルI/O208、主RAM210、ならびにグラフィクス及び表示コントローラ212を含み、それ自体のメモリ218も含むことができる。グラフィクス及び表示コントローラ212は、ローカル端末110へのローカル接続222を可能にするインターフェース220を有することができる。プログラム・ソース及びマルチメディア・ビットストリームが、ホスト・コンピュータ200に、ネットワーク・インターフェース290の1つを通じて、又はI/Oパス246を備えたプログラム・ソース240の1つを通じて入力することができる。また、ネットワーク・コントローラ228は、表示更新ストリームを処理し、種々のRT300〜306等に1つ以上のネットワーク接続部290を通じてネットワーク通信を提供する。これらのネットワーク接続部は、有線でも無線でもよい。
他の構成では、1つ以上のCPUサブシステム202が、グラフィクス及びビデオ表示コントローラ212ならびに端末サービス促進装置224のようなデバイスを1つ以上共有することもできる。その他のシステムを区分することもでき、その場合、ネットワーク・コントローラ228を多数のホスト・システム200によって共有することができる。システム・バス206は、システム内にある多数のブレード間で接続するためにバックプレーン・バス206に接続することができる。パス226は、バックプレーン・バス206を共有することができ、あるいはシステム間で追加のバスを有してもよい。1つ以上のネットワーク・コントローラ228をシステムに含めることもでき、その場合、1つを多数のリモート端末への接続部2980に用い、他のネットワーク・コントローラ(図示せず)が他のブレード、他のサーバ・システム、又は記憶システムのようなその他のデータ集中機器(data center equipment)へのインフラストラクチャ・ネットワーク接続を行う。各CPUサブシステム202は、多数のプロセッサ・コアを含むことができ、各コアは同時に1つよりも多いスレッドを実行することもできる。
ホスト・コンピュータは、端末サービス促進装置(TSA)224も含むことが好ましい。端末サービス促進装置224は、主システム・バス206に接続され、ネットワーク・コントローラ228への出力パス226を有することができる。TSA224は、専用RAM230を含むことができ、主システムRAM210、グラフィクス及び表示コントローラRAM218、又はネットワーク・コントローラRAM232を共有することができる。主RAM210は、RAM234において示すように、CPUサブシステム202と一層緊密に関連付けることができる。あるいは、ホスト・システム200が主RAM210を共有することができるので、グラフィクス及び表示コントローラ212と関連のあるRAM218が不要となる場合もある。
TSA224の機能は、RTの各々についての管理の一部から主CPU202の負担を軽減すること、そして各RTが受ける表示サポートが改善するように、オフロードした処理の一部を促進することである。オフロード及び促進サポートの形式には、グラフィクス動作をリモート・グラフィクス・コマンドにカプセル化すること、どのグラフィクス・コマンドが最も適しているか判断するために、各RTにおいてどの能力及びビットマップをキャッシュするか決定する際に補助すること、RTに転送する必要があるビットマップをエンコード及びカプセル化すること、ならびにマルチメディア・ビットストリームを最良に管理することが含まれる。
eXtensible Markup言語(XML)トラフィック、Simple Object Access Protocol(SOAP)、HTTPトラフィック、Java Virtual Machime(JVM)、及びインターネット系通信と関連のあるその他のトラフィックの調査及びカプセル化のような、追加の機能もサポートすることができる。ホスト・システムは、TSA224と共に、あらゆる所望のスパム防止、ウィルス防止、コンテンツ・フィルタリング、アクセス制限行使、又はその他のパケット・フィルタリングに基づくアルゴリズムを実行しつつ、RTに完全なインターネットに効果的にリモート・アクセスを行わせることができる。このような追加の機能は、ホストがインターネット・アクセスのプロキシとなる、RTインターネット閲覧をサポートするには特に有用であると考えられる。システムには多少の冗長性があるが、この方法は、ホスト・システムとWANとの間で利用されるインターネット・セキュリティ・アプライアンスよりも特定したユーザ制御を行うことができる。
RT上において、特殊なブラウザがインターネット系トラフィックのために別の強化を用いることもでき、その中には、RTディスプレイ・デバイス及びRT内部の実行能力に基づいて、インターネット系コンテンツをフォーマットし直す又はコード化し直すことを含むとよい。例えば、RTデバイスがセルラ・フォン又はパーソナル・ディジタル・アシスタント(PDA)であって、画面の解像度が限られている場合、TSA224は、高解像度のコンテンツにフィルタをかけてそれよりも低い解像度の画像に落として、高速化し一層適した画像にすることができる。TSB224は、その他の更にインテリジェントなコンテンツ・フィルタリング及びウェブ・ページ解釈アルゴリズムをランさせて、バナー広告及びその他の外部情報の除去というような機能を実行し、中核情報をセル・フォンに送るようにすることができる。Active-X制御、Macromedia Flash、又はその他のラン・タイム・プログラムを利用するウェブ・コンテンツのような、他の種類のウェブ・コンテンツは、電話機又はPDAのようなデバイスと互換性がない場合もある。TSB224は、仲介プロキシ・サーバとして作用し、表示データpost-Active-X制御を、待機中のPDAに転送することができる。アプリケーション・レイヤ正規表現(RegEx)コンテンツ処理も実行することができる。再符号化も、クライアントのセキュリティを高めるために実行することができる。XML及びSOAPはハイジャッキング(hijacking)及びその他の形態のウィルスの受け渡しを受ける虞れがあるが、TSB224はXML及びSOAPを安全なディスプレイ・フォーマットに記録することができるので、RTクライアントにはこのような危険性が及ぶことはない。
マルチメディア・ビットストリームは、ビデオ・ストリームを含むことができる。ビデオ・ストリームは既に圧縮フォーマットになっており、ホスト・システム200に対してローカルに格納されているか、又はシステム・ネットワーク・インターフェース290又はプログラム・ソース・インターフェース246の一方を通じて受信されている。構成の中には、マルチメディア・ビットストリームが既に対象のRTと互換性のあるフォーマットになっている場合もある。このような場合、TSA224は、RTに送信するために、ビットストリームをしかるべきパケット・フォーマットにカプセル化する。カプセル化は、ビデオ表示ウィンドウの原点のような、ヘッダ情報を追加すること、又はトランスポート・ストリームを異なるパケット・サイズのプログラム・ストリームに変換することのような、パケット編成を修正することを含む場合がある。
多くの場合、マルチメディア・ビットストリームは、目標RTによって容易に処理されるフォーマットになっておらず、あるいはネットワーク接続に適したフォーマットになっていない場合もある。このような場合、TSB224は、マルチメディア・ビットストリームをデコードし、再度エンコードし、トランスコードし、又はレートを変更するという一層複雑なステップを実行する。例えば、着信マルチメディア・ビットストリームが、エンコードしたHDTV MPEG−2ストリームである場合がある。RTにおけるウィンドウ・サイズが、小さな320×230ウィンドウに合わせて設定されている場合、ネットワーク帯域幅を保存し、TSB224にマルチメディア・ビットストリームをトランスコード及びレート変更させて、所望の表示ウィンドウ・サイズを表す、低いビット・レートにすることには意味があると考えられる。同様に、着信ビデオのフォーマットが、RTによってデコードすることができない場合、TSB224はビデオを互換性のあるフォーマットにコード変換することができる。フォーマットに互換性があっても、ディジタル権利管理(DRM)又は暗号化方式のような、その他の非互換性が存在する場合もある。TSB224は、1つのDRM又は暗号化方式を、目標RTに相応しい方式に変換することもできる。
Microsoft社のRemote Desktop Protocol(RDP)では、圧縮ビデオ・ストリームに対する処理効率が低下している。RDPによって、ホスト・システムの内部にあるドライバがビットストリームを検出し、デバイス独立ビットマップ(DIB)にデコードする。次いで、DIBをRDP転送コマンドに変換し、DIBフォーマット・データをネットワークを通じてRTに転送しようとする。殆どの場合、1組のDIBデータのフレームのみが表示のためにRTに達する。つまり、デコードを行うホストCPUに非効率性があり、更にデコードしたデータを効率の低いフォーマットでネットワークを通じて送ることに非効率性がある。他のRDPに基づくグラフィックス動作も同様にDIBを利用する。
ウェブサイトからのグラフィックス・ビットマップのような、従来からのグラフィクス・ビットマップも、ホスト・システム200からRTに転送する必要がある。TSB224は、DIBのような従来のグラフィクス・ビットマップに対して種々のレベルのエンコードを実行することができる。グラフィクス・ビットマップのエンコードは、損失がない場合も、損失がある場合もあるが、元のグラフィクス品質の目視的に区別できる表現を提供することを目標とする。TSB224のための簡素化したソフトウェア・インターフェースでは、単にRDP APIを通じてホストCPUとインターフェースすることだけを含む場合があり、一方、それよりも意欲的な実施態様では、TSB224が基礎のDirectX ドライバ・フレームワークにアクセスすることを可能にする。エンコードしたDIBの転送、及び特殊な圧縮ビデオ・ドメインの転送は、標準的なRDP実施態様の一部ではない。したがって、これらの転送は、既存のRDP転送フォーマットと抱き合わせ、ある種のプライベートRDP拡張として動作するか、又はRDPフレームワークの外側で動作すればよい。
ホスト・オペレーティング・システム及びRDPのバージョンの中には、RDPプロトコルに対する追加のセキュリティ要件を満たす必要がある場合もある。RDPクライアントは、ホストと鍵(キー)を交換し、暗号化パケットを利用しなければならない場合もある。TSB224はRDPクライアント・パケットを傍受しているので、TSB224は、ホスト・プロセッサと通信するために、しかるべき促進及びオフロードを鍵交換及び解読のために含むとよい。加えて、システムのセキュリティを維持するために、TSB224及びネットワーク・コントローラ228は、RTとの全ての通信がしかるべく暗号化されていることを確認する。
図3は、本発明の一実施形態によるリモート端末300のブロック図であり、好ましくは、表示画面310、ローカルRAM312、及びリモート端末システム・コントローラ(RTSC)314を含むが、これらに限定されるのではない。RTSC314は、キーボード、マウス、及びI/O制御サブシステム316を含む。I/O制御サブシステム316は、マウス318、キーボード320、及びオーディオを再生するスピーカ又は種々のデバイスをサポートすることができるユニバーサル・シリアル・バス(USB)接続部のような、その他の雑多のデバイスに対応する接続部を有する。バイオメトリックス又はセキュリティ・カードを含む安全確保手段によるユーザ認証をサポートするためのその他の一体又は周辺接続部も、含むことができる。接続部は、PS/2様式のキーボード又はマウス接続部のような単一目的専用とすることも、あるいはUSBのように汎用性を高めることもできる。別の実施形態では、I/Oはゲーム・コントローラ、ローカル・ワイヤレス接続部、IR接続部を含むことができ、あるいは接続部を全く含まないことも可能である。また、リモート端末システム300は、DVDドライブのようなその他の周辺デバイスも含むことができる。
本発明の実施形態の中には、リモート端末システム300において外部入力を全く必要としない場合もある。このようなシステムの一例は、小売店又は電子ビルボードであり、異なる表示が異なる場所で利用可能であり、種々の情報及び娯楽情報を示すことができる。各ディスプレイは独立して動作することができ、種々の要因に基づいて更新することができる。また、同様の安全確保システムが、銀行における情報キオスクや現金自動預け払い機(ATM)のような、タッチ・スクリーン入力を受け入れる数個のディスプレイを含むこともできる。カジノ用ゲーム機械のような、その他の安全確保システムも、この種のRTに基づくことができる。
ネットワーク・コントローラ336は、ネットワーク・パス290上で安全確保プロトコルをサポートし、サポートされるネットワークは、有線又はワイヤレスとすることができ、ネットワーク上を移動するデータは、鍵交換によって暗号化することができる。リモート・ディスプレイ・システム300毎にサポートされるネットワークは、図2のネットワーク・コントローラ228によって、直接又は何らかの形式のネットワーク・ブリッジによってサポートされる必要がある。共通ネットワークの一例に、ある種のイーサネット、好ましくは、ギガビット・イーサネットをランさせるCAT5ワイヤリングのような、イーサネットがあり、I/O制御パスは、標準的なトランスポート制御プロトコル及びインターネット・プロトコル(TCP/IP)又はUDP送信と組み合わせた軽量ハンドシェーキングの形態のような、イーサネットをサポートするプロトコルを用いることができる。リアル・タイム・ストリーミング・プロトコル(RTSP)及びリアル・タイム転送プロトコル(RTP)のような業界の成果を、リアル・タイム制御プロトコル(RTCP)と共に用いてパケットの転送を強化することができ、更に再送信プロトコルを追加することによって一層強化することができる。layer 3 DiffServ Code Points (DSCP)、Digital Living Network Alliance(DLNA)の一部としてのWMMプロトコル、Microsoft Qwave、uPnP、QoS、及び802.1Pのような、サービス品質(QoS)成果を用いることに関するその他の最新成果も、既存のネットワーク規格を用いる強化方法である。
I/Oデバイスをサポートするためのパケットに加えて、ネットワークは表示に必要な、カプセル化及びエンコードした表示コマンド及びデータも搬送する。CPU324は、ネットワーク・コントローラ336、2D描画エンジン332、3D描画エンジン334、データ・デコーダ326、ビデオ・デコーダ328、及びディスプレイ・コントローラ330と調整して、表示画面310上にローカルにレンダリング及び表示される可能性があるあらゆる形式の仮想データ表現をサポートする。RTが表示処理ブロックの任意特定の組み合わせも含む必要はない。特別に少機能のRTであれば、表示処理を行うCPUを有するディスプレイ・コントローラ330だけしか含まないこともあるが、少なくとも1種類のデコーダ又は描画エンジンを有する可能性の方が高い。
最初に、ローカル・フラッシュ・メモリ(不図示)からブートし、追加情報をホスト・コンピュータ200によってネットワークを通じて提供することにより、RTを初期化することができる。RTの初期化シーケンスの間、RTシステム・コントローラ314と表示画面310との間の接続は、Display Data Channel(DDC:表示データ・チャネル)インターフェース、Extended Display Identification Data (EDID:拡張表示識別データ)、及び表示モニタの能力を特定するその他の拡張子のような規格を利用して、逆方向又は双方向モードで用いることができる。キーボード、マウス、及びI/Oコントローラ316を通じたUSB接続も、表示画面310への接続において用いることができる。次いで、利用可能な解像度及び制御のような情報をCPU324によって処理する。システム300は、ホスト200と通信することができるuPnPのようなプロトコル又はその他の発見メカニズムを実装することができる。その初期化通信の間、CPU324は、表示モニタ情報を含むRT情報をホスト200に提供することができるので、各RTをホスト側でインスタンス化することができる。
初期表示画面は、フラッシュ・メモリ又はホスト・コンピュータ200のいずれから来てもよい。第1フレーム全体の表示データに続いて、ホスト・コンピュータ200は、表示更新ネットワーク・ストリームの一部として、ネットワーク290を通じて、部分的なフレーム情報だけを送ればよい。表示の画素が直前のフレームから全く変化しない場合、ディスプレイ・コントローラ330は、ローカルRAMストレージ312からの直前のフレーム内容によって表示画面310をリフレッシュすることができる。
表示の更新は、ネットワーク・ストリームを通じて送られ、カプセル化2D描画コマンド、3D描画コマンド、エンコード表示データ、又はエンコード・ビデオ・データで構成することができる。ネットワーク・コントローラ326は、ネットワーク表示ストリームを受信し、CPU324は、暗号化ヘッダから、機能ユニット332、334、326及び328の内どれが、そのパケットに必要とされるか判断する。機能ユニットは、画像データをデコードし、RAM312の該当するエリアを新しい画像で更新するために必要な処理ステップを実行する。次のリフレッシュ・サイクルの間、ディスプレイ・コントローラ330はこの更新フレームを表示画面310に用いる。
ディスプレイ・コントローラ330は、現在の画像フレームの表現をRAM312からディスプレイ310に転送する。通例、画像は、表示の準備ができたフォーマットでRAM312に格納されているが、RAMのコストが問題となるシステムでは、画像又は画像の一部をエンコードしたフォーマットで格納することもできる。外部RAM312を、リモート端末のシステム・コントローラ314の内部にある大型バッファによって置き換えてもよい。また、ディスプレイ・コントローラ330はRAM312に格納されている2つ以上の表示面を組み合わせて、出力画像を合成し画面310に表示することもできる。異なる配合動作を、合成と共に実行することもできる。
CPU324は、TSB224と通信して、RTに対する表示動作全体を最良に設定し管理する。初期設定には、RTシステム・コントローラ314においてサポートされている機能の種類、表示画面310の仕様、データをバッファ及びキャッシュするために利用可能なRAM312の量、3D描画エンジン332がサポートするコマンド集合、3D描画エンジン334がサポートするコマンド集合、データ・デコーダ326がサポートするフォーマット、ビデオ・デコーダ328がサポートするフォーマット、及びディスプレイ・コントローラ330の能力を列挙することを含む。実行時におけるその他の管理最適化には、RAM312において表示ビットマップを管理及びキャッシュし、これらをリセットしなくてもよいようにすることが含まれる。
図4は、ホスト・システム200からの変更を含む、マルチユーザ・ホスト・システム400の第2の好適な実施形態である。まず、グラフィクス及びビデオ・ディスプレイ・コントローラ212が、更に能力が高いグラフィクス・プロセッサ・ユニット(GPU−P)412と置き換えられている。グラフィクス・プロセッサ・ユニット412は、パケットを通じた選択的表示更新に対するサポートを含み、提案したVESA Digital Packet Video Link(DPVL)規格の一部又は全てに準拠することができる。第2に、TSA224がTSA−G424と置き換えられており、TSA−G424は、システム・バス206を通じてGPU−P412からのパケット表示更新をサポートするか、好ましくは入力パス414及び416をサポートする。これらの入力は、シリアル・ディジタル・ビデオ出力SVD01及びSDV02、又は異なるバス幅、シグナリング・プロトコル、及び周波数を有する汎用ポートとすればよい。その例には、ディジタル・ビデオ出力(DVO)、ディジタル・ビジュアル・インターフェース(DVI)、高品位マルチメディア・インターフェース(HDMI)、ディスプレイ・ポート又はその他の低電圧差動シグナリング(LVDS)、推移最小化差動シグナリング(TMDS)、PCIエクスプレス、又はその他の方式が含まれる。表示出力パスは、高いリフレッシュ・レートで多数のフレームを出力するのに十分な速度でランすることができればよく、フレームは、1つよりも多いRTに対応する選択的更新矩形とすることができる。TSA224と同様、TSA−G424は、ネットワーク・コントローラに、専用リンク426を通じて、主システム・バス206を経由して接続することができ、あるいはシステム・オン・チップ(SOC)実施態様によって一層密接に一体化することができる。
従前のグラフィクス処理を実行することに加えて、GPU−P412は、選択的更新を生成し、表示の内変化した部分を示す。選択的更新は、矩形すなわちタイルの形態をなすことができ、ビデオ出力パス414又は416を通じて、又は主システム・バス206を通じてのいずれかで出力される。矩形更新は、ウィンドウの原点、サイズ、及びフォーマットを示すパケット・ヘッダを含む。原点は、どのRTが宛先であるかを示すために用いることができる。タイルも用いることができ、ヘッダがタイルを記述する情報が少なくて済むように、1つ以上の固定サイズに標準化することができる。矩形又はタイルをRTにおいて倍率調整すべきか、そしてどのようにして倍率調整するかというような、他の情報もヘッダに含むこともできる。選択的更新の他の形態には、BitBlt、Area Fill及びPattern Fillに対するサポートを含み、大きなブロックのデータを送る代わりに、RTにおいて実行する動作のコマンド・パラメータと共に、最少量のデータを送る。他のヘッダは、ビデオ・ストリーム、ゲンロック、倍率調整ビデオ・ストリーム、ガンマ・テーブル、フレーム・バッファ制御の形態で更新をサポートする。他の強化したコマンド及び複雑なコマンドも、RTに対する選択的更新の様式に入れることができる。提案したDPVL仕様は、選択的更新について可能な一実施態様を、それらのヘッダと共に、詳細に示す。
1つのGPU−P412は、多数のRTに対する表示データを各々が収容する種々の表示面にRAM418を編成することにより、RT300の全てに対してシステムによって事実上仮想化することができる。PGU−P412の2D、3D及びビデオ・グラフィクス・プロセッサ(図示せず)を利用して高いグラフィクス及びビデオ性能を達成することが好ましい。グラフィクス処理ユニットは、2Dグラフィクス、3Dグラフィクス、ビデオ・エンコード、ビデオ・デコード、スケーリング、ビデオ処理、及びその他の高度画素処理を含むことができる。また、GPU−P412のディスプレイ・コントローラは、ビデオ及びグラフィクス・データの配合及びキーイング(keying)、ならびに画面リフレッシュ動作全体というような機能も実行することができる。主及び副表示面に用いられるRAM418に加えて、種々の3D及びビデオ動作をサポートするのみ十分な、画面外メモリ(off-screen memory)がある。選択的更新を管理するDPVL方法の代わりに、RAM418内部に選択的更新バッファ・メモリ(S−バッファ)404があってもよい。一実施形態では、S−バッファ404は、ステータス・ビット、署名、又はステータス・ビット及び署名双方を格納する。これらは仮想表示毎に各タイルに対応する。他の実施形態では、S−バッファ404はヘッダと共に又はヘッダ無しのタイル自体、ステータス・ビット及び署名情報を格納し、この場合、タイルは選択的更新に合わせて出力されるように配列されている。
グラフィクス・エンジン及びディスプレイ・コントローラは、通例、RTディスプレイ毎に主面に対応する完全な表示画像を合成する。RAM418は、RTの全てに付いての表示フレームのアレイを効果的に収容する。DPVLは、64K×64Kの仮想表示に対処し、その場合主要な用途は多重モニタ・サポートに当てられる。この用途では、RTディスプレイを64K×64Kのアレイにマッピングすることができる。この用途には多数の独立したRTを伴うので、GPU−P412は異なるセキュリティ機構を追加して、異なる表示エリアの安全性を確保し、一人のユーザが他のユーザのフレーム・バッファへのアクセスを得ることを防止するとよい。本システムは、好ましくは、ハードウェア・ロックを含み、セキュリティ及び信頼性双方の懸念に対して、表示メモリの保護部分に対する不正アクセスを防止する。
図5は、図4のメモリ418の構成例を示し、仮想表示空間が横3200画素及び縦4800画素に設定されている。メモリ418は、8つの1600×1200表示エリアに分割されており、520、522、524、526、528、530、532、及び534で示されている。典型的な高品質表示モードは、画素毎に24ビットのビット深さに合わせて構成されるが、多くの場合、RAM418において編成されている、ビット当たり32ビットの構成を利用し、グラフィクス及びビデオ・プロセッサがディスプレイにアクセスするときに、位置合わせがし易くし、更に余分な8ビットを潜在的に他の目的で用いることができるようにする。タイル状メモリの図示は、性質上概念的であり、GPU−P412から見た場合である。実際のRAMアドレシングは、メモリ・ページ・サイズ及びその他の考慮点にも関係する。
図5は、表示エリア528において、更に、表示更新矩形550を示す。1600×1200表示の破線540は、指定範囲(precinct)と呼ばれる、256×256画素の更に粗いブロックの境界に対応する。表示ウィンドウ550から明白なように、表示ウィンドウの境界の位置合わせは、必ずしも指定範囲の境界と合っていない。ユーザは表示画面上にウィンドウのサイズ及び位置を任意に決めるので、これは典型的な状況である。全フレーム全体を更新する必要がない隔画面更新をサポートするためには、表示ウィンドウ550の影響を受ける指定範囲の各々を更新する必要がある。更に、表示ウィンドウ550内におけるデータ形式及び周囲の表示画素は完全に異なる形式であり、相関がない場合もある。したがって、指定範囲に基づくエンコード・アルゴリズムは、損失を伴う場合、指定範囲の縁及び表示ウィンドウ550の境界いずれにも、視覚的アーチファクトが伴わないことを確保する必要がある。実際のエンコード・プロセスは、8×8又は16×16のような、指定範囲よりも小さいブロック単位で行うことができる。したがって、好適な実施形態は決定論的エンコード・アルゴリズムを用い、周囲の画素には関係なく、画素の1集合に対して同じ結果が得られ、ウィンドウの任意の位置合わせによってアーチファクトが生ずることはない。
エンコード方式に対するブロック境界も、タイルに関する考慮点の1つである。例えば、ブロック境界が8画素の倍数でなければならないエンコード方式がある。ソース・ファイルが8画素の倍数でない場合、周囲のデータで埋め合わせする必要がある。別の場合には、ブロックの境界を、特定のユーザが配置した矩形すなわちタイルではなく、画面に向けてブロック境界を方位付けることが好ましいことが多い。ユーザが80×80画素のウィンドウを操作する場合、水平及び垂直方向の各々において最低10個の8×8ブロックを用いるように配置することが理論上可能であっても(合計100ブロック)、各方向に11ブロック(121ブロック)に及ぶ可能性の方が高い。したがって、矩形更新及び矩形のいずれの続行中のエンコードも、88×88画素(121ブロック)をエンコードすることになり、周囲の画素の一部が埋め合わせのために必要となる。DVPL仕様は矩形エンコードを選択的更新方式の一部とは見なさないが、DVPLには別の粒度(細分)の限界がある場合もあり、その結果、DVPL CRTC出力メカニズムを用いると、8画素を法とする(modulo 8 pixels)適したサイズの矩形境界が得られる。
また、異なるサイズのディスプレイを有するRTもサポートすることができる。一例では、MU−GPU412は任意のサイズの任意のサイズのディスプレイをサポートすることができる。別の例では、それよりも小さいディスプレイをサブ・ウィンドウとしてサポートする、又は、それよりも大きなディスプレイを1つの表示エリアよりも広いオーバーレイ・ウィンドウとしてサポートする方が簡単な場合もある。矩形536によって線引きされているように、1920×1080ウィンドウの場合、532及び534エリア双方を用いる必要がある。これはエリアを無駄にするが、ディスプレイ毎にカスタム・サイズを作成するよりも、実施が簡単である。PGU−P412の選択的矩形更新メカニズムのために、画面の関連するエリアだけが常に送信される。DVPLは動的にCRTC制御レジスタを制御して選択的更新を管理するが、S−バッファのような、これよりも柔軟性のあるその他のメカニズムを実施することもでき、プロセッサの介入が少なくて済み、システムの効率も向上する。
また、更に柔軟性の高いシステムでは、DVPL矩形の概念を、タイルのように、一層規則的にサイズにした実体に分解することもできる。任意の矩形サイズを有するヘッダ情報の効率と、柔軟性の低いタイル・サイズを用いるが画面データが多く単純化する潜在性のあるヘッダとの間には、ヘッダ情報の効率にトレードオフがある。好適な一実施形態では、タイルをブロック・サイズのいずれの倍数にでも動的に設定することができ、ブロック・サイズは、データ・エンコード・アルゴリズムに対して最小の実体となっている。ブロックは、ソース画像又は画面の固定ブロック位置のいずれに対して方位付けることもできる。タイルのサイズは、ヘッダ情報に含まれる。
530のようなメモリのエリアを、選択的更新を管理するためのS−バッファに指定することができる。一実施形態では、S−バッファは、表示フレーム520、522、524及び526のタイルに対応するステータス・ビットを含み、ステータス・ビットは、タイルが選択的更新を必要とするか否かを示す。S−バッファ404は、タイル毎に署名も格納することができ、この場合、選択的更新の必要性を判断する際に用いられる。別の実施形態では、選択的更新が必要なフレーム520、522、524及び526からのタイルを、メモリ・エリア530にコピーし、選択的更新出力に合わせて整列させる。整列したタイルは、種々のヘッダ、ステータス、及び署名情報を含むことができる。
図6Aは、図5の表示マップ536を更に詳細にした図である。これは、1920×1080の高品位テレビジョン(HDTV)の解像度を有し、1080Pと呼ぶ。図6Aにおいて、固定サイズの矩形614が、画面位置の境界によって方位付けられている。各矩形は、横160画素、縦120画素である。行毎に12個の矩形(12×16=1920)、そして列毎に9個の矩形(9×120=1080)がある。システムは、これらの矩形を選択的更新の基準を形成するタイルとして用いることができる。別のシステムでは、図66Bに示すように、さらに矩形を80×40画素を収容するタイルに分割し、システムはこれらの小さくしたタイルを選択的更新の基準として選択することもできる。更に柔軟性が高いシステムでは、6つのタイル620から成る大きな矩形614、及びタイル自体の双方を利用することができ、ヘッダ情報を用いて、任意所定の時点で、どちらの種類が出力されているのか正確に叙述することができる。
双方の場合において、エンコード・アルゴリズムの基準を形成するブロックは、タイルすなわち矩形の中に納まる。8×8ブロックを仮定すると、各タイルは、10×5のブロック構成を有し、各矩形は20×15のブロック構成を有する。大きい方の矩形及び小さい方の矩形双方を利用するシステムでは、選択的更新の必要性を判断する際に、各々に異なるメカニズムを用いることができる。好適な一実施形態では、大きい矩形にはステータス・ビットを関連付け、これらが変化したか否かを示すことができ、小さい方のタイルは、このような判断を行うために署名を利用することができる。ステータス・ビット及び署名は、以下で説明するが、S−バッファによって管理することができる。
PGU−P412は、タイルの選択的エンコードを直接的に実行する処理を統合することができ、あるいは選択的更新プロセス及びTSA−G424への出力を用いて各タイルをチェックすることもでき、その場合、タイルはしかるべきヘッダを含むことになる。ヘッダは、TSA−G424によって処理され、ヘッダ内部にあるフィールドに基づいて、TSA−G424は、どのRTそして表示画面のどこにタイルが意図されているのか把握する。該当する場合、TSA−G424は、タイルを圧縮フォーマットにエンコードし、いずれの必要なヘッダ情報も調節し、更にネットワーク処理を行うためにタイル及びヘッダを供給する。
PGU−P412及びTSA−G424は、選択的更新プロセスを別々に区分することもできる。場合によっては、PGU−P412は、完全な管理を行うことができ、更新を必要とするタイルだけをTSA−G424に送る。別の場合、TSA−G424は、更にスライスのフィルタリングも実行し、どのスライスが本当に更新を必要としているのか判断しなければならない。PGU−P412内部において、選択的更新メカニズムは、ハードワイヤにすることも、CPUの介入を必要とすることも可能であり、ハードウェアは、描画エンジン及び選択的更新リフレッシュ・エンジン双方に跨って実施することもできる。また、タイルのエンコードは、PGU−P412又はTSA−G424のいずれで実行してもよい。また、PGU−P412は、ディジタル・ビデオ・バスを通じて、RTに対するグラフィクス描画コマンドをTSA−G424に出力することもでき、あるいはソフトウェア・ドライバがコマンドを直接TSA−G424に供給することもできる。
選択的タイル更新のために、第1実施形態では、S−バッファを用いる場合、PGU−P412がタイル毎にステータス・ビットを管理する描画エンジンと、タイル毎に選択的表示更新を管理する際にステータス・ビットを監視する選択的更新リフレッシュ・エンジンとを有する。3Dグラフィクスで用いられるZ−バッファと同様、S−バッファは、別個のデータ・メモリ・プレーンとして実施することができる。Z−バッファの場合と同様、強化PGU−P412のハードウェア描画動作がS−バッファのステータス・ビットを更新し、追加コマンドは不要である。次いで、選択的更新ハードウェアがステータス・ビットを用いて、どのタイルがRTにおいて更新する必要があるか判断する。ディスプレイ・コントローラのリフレッシュ・サイクルと同様、選択的更新ハードウェアは周期的にS−バッファを詳しく調べて、ステータス・ビットを読み出す。ステータス・ビットの状態に基づいて、選択的更新ハードウェアは、更新する必要のないタイルをやり過ごすか、又は選択的更新のためにタイルを読み取り、このタイルをヘッダ情報と共に出力し、それに応じてステータス・ビットを更新する。効率が低くてもよい実施態様では、PGU−P412は従前の古いグラフィクス描画動作を用いてS−バッファを発生することができる。
特定のS−バッファ・ハードウェアを必要としない別の好適な実施形態では、PGU−P412は、更新が必要なタイルを連結し、選択的更新バッファを管理することができる。選択的更新バッファは、別個のメモリ・エリアに組み入れてもよい。PGU−Pが動作を実行しタイルが変化する毎に、そのタイルを選択的更新バッファにコピーする。各タイルの先頭に、ヘッダ情報を格納することができ、タイル同士を一緒に詰め込むことができる。ディスプレイ・コントローラは、選択的更新バッファを用い、標準的なディスプレイ・コントローラの出力動作を用いてそれをリフレッシュ・ポートに出力するように設定されている。PGU−P412は、1つ以上のバッファをリング・バッファ、又は連結したタイルのリンク・バッファ・リストとして管理し、連続出力をSDVO出力に供給し、TSA−G424はそれをタイル・リストとして扱う。PGU−P412がリストにおける配置の優先順位を調停するためには、種々の方式を用いることができる。この方法は、多数のRTをサポートするには特定のハードウェアが少なく、特殊な選択的更新ハードウェアを殆ど又は全く有していないPGU−Pを利用するためには、最も効率的であると言える。
別の好適な実施形態では、TSA−G424がPGU−P412と共に動作して、RT300においてどのタイルが更新を必要としているか判断する。PGU−P412がタイル毎にステータス・ビットを管理する能力は、難しすぎる場合があり、タイルを大きなタイル又は仮想RTディスプレイ全体に集合化し、ステータス・ビットに対する粒度を制限することもできる。大きなタイルをそれよりも小さなタイルの更新に縮小することは、タイル毎の署名追跡に基づいて行うことができる。署名は、タイルが最初に処理されるときに発生され、後続の署名と突き合わせてチェックするのが通例である。署名は、TSA−G424によって発生し処理することができ、TSA−G424は、着信データから、又はPGU−P412の選択的更新ハードウェアと共に動作する。TSA−G424がタイル毎に署名チェックを行う場合、各RT400に対するネットワーク帯域幅を保存することができる。PGU−P412が署名チェックを行う場合、ビデオ・パスを通じてTSA−G424までの帯域幅も保存する。PGU−P412はタイルに対応する署名のメモリ・プレーンを発生し管理することができ、ステータス・ビットは、署名プレーン又は別個のプレーンの一部とすることができる。あるいは、ステータス・ビット及び署名ビットをRAMキャッシュにおいて管理し、GPU−P412によってリンク・リストと共に管理してもよい。
ホスト400上におけるグラフィクス動作によって発生するグラフィクス・コマンドの種類、及びRT300の能力に応じて、コマンドをカプセル化してRTにおける実行のために送ることができ、あるいはPGU−P412によってローカルにコマンドを実行することもできる。多くの場合、コマンドはRTにおける実行のために送られるが、仮想表示のローカル・コピーを保持するために、コマンドはPGU−P412によってもローカルに実行される。理想的なのは、冗長なローカル・グラフィクス・コマンドの結果変化したいずれのタイルをも、ステータス・ビットによって取り除き、不要なタイル更新パケットがRTに送られるのを防止することである。通例、エンコードしたタイルの代わりにコマンドを送るには、帯域幅は少なくてよいが、常にこれが可能とは限らない。選択的更新バッファを手動で管理するシステムでは、RTに送られているコマンドも考慮する。RTにおいて実行するコマンドによって更新されるタイルは、PGU−P412によって選択的更新バッファに入れないことが理想的である。
別の例では、RTを目的とするグラフィクス・コマンドをTSA−G424によって処理し、エンコード・データ転送及び修正グラフィクス・コマンドに分解する。例えば、ホスト・システムが画面外メモリから又はパターンから画面上メモリにBitBlt動作を実行したい場合がある。これは、PGU−P412サブシステムにおいて容易に実行することができる。しかしながら、RTにおいて、BitBltに必要なソース・データがキャッシュされていない。したがって、グラフィクス・コマンドを送ることができるようにするには、最初に、ソース・データ又はパターンをエンコードし、カプセル化し、RTに送り、次いで修正グラフィクス・コマンドをカプセル化しRTに送る必要がある。この手順は、TSA−G424によってオフロードすることができる。DirectXドライバがPGU−P412を通じてコマンドをつぎ込み、ついでPGU−P412がこれらをTSA−G424に出力することは可能であるが、DirectXドライバがこれらを直接TSA424に伝達することの方が効率的なことも多い。
図7は、TSA224又はTSA−G424の好適な実施形態についてのサブシステム700及びTSA724の機能ブロックを示す。サブシステムは、ホスト200又はホスト400上でランする追跡ソフトウェアと通信し、ホスト・システム・バス206への接続部を含み、パス226を通じたネットワーク・サブシステムへの直接接続部も含むことができる。TSA−G424の場合、TSA724は、パスSDVO1 414及びSDVO2 416を通じて、グラフィクス・コントローラGPU−P412への直接接続部も含むことができる。パス416は、第2SDVO2 416又は別のサブシステムへの接続部であってもよい。サブシステムにはメモリ730が含まれ、メモリ730はTSA724又は外部メモリ・サブシステムに埋め込むことができる。また、各機能ブロックは、それ自体の内部メモリも含むことができる。
システム・コントローラ708は、ホスト・システム及びその他のサブシステムへのインターフェースを管理し、TSA724の設定及び管理の一部を実行する。DirectXインタープリタ704は、ホスト・システム上でランするDirectXソフトウェア・ドライバの負担を軽減する。2Dグラフィクス・コマンド、3Dグラフィクス・コマンド、ビデオ・ストリーム、及びその他のウィンドウ形成(windowing)機能を管理する。RDPインタープリタ702ならびにデータ/ビデオ・エンコーダ及びトランスコーダ706と組み合わせて、TSA724は、ホスト・コンピュータから、RTを管理する計算集約的な面の多くを実行する負担を軽減し、更にホスト・システムから種々のRTに送られるコマンド、データ、及びビデオ・ストリームを最適化することもできる。
システム200の場合、ホストに基づくGPU212はRTディスプレイのサポートには利用されておらず、TSAサブシステム700は、種々のグラフィックに基づく最適化を実行することができる。RDPインタープリタ702によって、種々のパターンBitBlt、ソースから画面宛先BitBlt、及び他のビットマップ転送を強化することができる。RDPインタープリタ702は、ホストからのコールを傍受し、データ/ビデオ・エンコーダ及びトランスコーダによってソース・データ、パターン、又はビットマップをエンコードして、効率を高めたフォーマットとし、エンコードしたデータ、パターン、又はビットマップを、システム・コントローラ708を通じて転送し、最後に修正したグラフィクス・コマンドをRT300に発行することができる。宛先RTは、エンコードしたソース・データ、パターン、又はビットマップを受信し、必要であればそれをデコードし、修正グラフィクス・コマンドの受信時に、意図された動作を実行する。エンコードしたデータ及び修正コマンドの転送は、RDP転送又はRDP状転送のいずれを用いてもよく、これらはTSAサブシステム700及びRT300によってサポートされている。
システム200におけるビデオ・ストリームに対して、DirectXインタープリタ704は、ビデオ・ストリーム処理を傍受してオフロードさせ、最適なストリームを目標RTに供給することができる。負担軽減における最初のステップは、ホスト・プロセッサがホストCPU上でビデオ・デコードを実行していないことを確かめることである。ホストに基づくデコードには数個のマイナス面があり、その内最も重要な2つは、最初に、実際のデコードを行うのに多数のCPUサイクルを要することである。第2に、ホストにおいてビデオ・フレームをデコードしておくことは、必ずしも、目標RTにおいて表示するフレームを得る最良のやり方ではないということである。代わりに、DirectXインタープリタ704はDirectXコールを傍受し、Microsoft Windows(登録商標)の中には、圧縮形態のままである間にビデオ・ストリームに対するアクセスを得るためには、DirectShowの使用を伴うバージョンもある。DirectXインタープリタ704は、RDPが通常の動作を続けるためには、模造フレームをRDPインターフェースに提供する必要がある場合もある。
一方、システム・コントローラ708は、RTがデコードすることができるビデオ・ストリーム・フォーマットはどれか、ホスト・システムからRTまでのネットワーク・スループットが通常はどれくらいか、そしてビデオ・ストリームで意図する解像度及び表示特性は何か把握している。この情報を知って、システム・コントローラ708は、着信ビデオ・ストリームを処理しネットワーク、RT及び表示出力要件に対して理想的なストリームを生成するように、データ/ビデオ・エンコーダ及びトランスコーダ706を設定する。これには、一方のエンコード・フォーマットから他方にトランスコードすること、一方のビット・レートから他方にレート変更すること、フレーム・レートを変更すること、表示フォーマットを変更すること、解像度又はこれらのいずれかの組み合わせを変更することを伴う場合もある。次いで、コントローラ708は処理したビットストリームをカプセル化し、ネットワーク処理のために主システム・バス206又は直接接続部206を通じてそれを送る。
システム400の場合、TSAサブシステム700は、システム200に関して説明した機能を含むことができるが、更に、GPU−P412と共に動作するための追加のサポートも含む。RDP702及びGPU−P412が双方向処理する手法にはいくつかあり、TSAサブシステム700の動作は、それに応じて様々に変化する。ここでは、2つの実施形態について詳細に検討する。第1の実施形態は「終了及び再生」(terminate and regenerate)であり、第2の実施形態は「オフロード及び強化」である。これらの実施形態の変形も可能であり、各実施形態の態様を利用することができる。
「終了及び再生」の場合、ホスト・システム上でRDPクライアントをランさせる。ホストに関する限り、RDP動作はTSB400によって終了させられ、RDPクライアントはGPU−P412を利用して仮想表示を作成する。先に説明したように、GPU−P412は、多数の仮想RTをサポートするために仮想表示空間を用い際に、1つの大きな表示マップを作成し、この大きな表示空間の内部において、各ユーザをオフセットするか、又は各仮想表示を、それ自体のマッピングによって、別個の表示として見る。RDPクライアント・ソフトウェアは、安全を確保したクライアント通信を要求するRDPホストのために、TSAサブシステム700内部において鍵交換及びセキュリティ処理を利用しなければならない場合もある。RDPクライアントがRDPホストからコマンドを受信すると、クライアントは、GPU−P412を利用して、表示フレームをディスプレイ・サブシステムに納める。次いで、GPU−P412は、しかるべき選択的更新を発生し、パス414を通じて送る。
次いで、矩形タイルを含む選択的更新パケットをエンコードし、カプセル化し、ネットワーク送信のために転送する。単に描画コマンドをRT300に受け渡す代わりに「終了及び再生」を用いる主な理由は、要求コマンドがRTにおいてサポートされていないときである。また、帯域幅、コマンドの種類又はシーケンス、及びRTの相対的性能に基づく、その他の更に微妙な理由も要因に含む場合もある。
「オフロード及び強化」は、追跡ソフトウェア・レイヤのDirectXビデオ及びデータ・ストリームの再送出を続けることができる。DirectXインタープリタ704は、ホストDirectXコールを傍受する。傍受されたコールは、データ/ビデオ・エンコーダ及びトランスコーダ706にオフロードされ、データ/ビデオ・エンコーダ及びトランスコーダ706がDirectXコールの機能を完成させる。機能をオフロードさせることによって、ホストCPU202をマルチユーザ・システムの他のユーザも利用できるようにする。表示環境及び最適な処理を可能にするネットワーキング帯域幅を把握することによって、エンコード及びトランスコードを完成させることができる。
また、RDPインタープリタ702は、グラフィクス・コマンドをローカルに実行し、かつRTに転送して送るときに、ステータス・ビットを管理するために用いることができる。ホスト・グラフィクスがグラフィクス・コマンドを実行する理由は、フレーム・バッファの現行のコピーを今後の使用のために管理することができるようにするためである。グラフィクス・コマンドはRTにおいて実行されているので、ホスト上でローカル・グラフィクス・コマンドの結果として変化するタイルは、選択的更新ハードウェアにエンコードしたタイルを送らせる必要はない。これを防止するために、RDPインタープリタ702は、どのタイルがグラフィクス・コマンドによって影響を受けるか計算する必要がある。これらのタイルに対応するS−バッファにおけるステータス・ビットを管理すれば、タイルに基づく選択的更新を実行しないようにすることができる。
また、追跡ソフトウェア・レイヤは、変化し表示更新ストリームを発生することを必要とする表示フレームの選択をエンコードする際に、補助するために用いることができる。尚、エンコードは、ホスト・コンピュータのグラフィクス及びディスプレイ・コントローラ412が発生する表示データを再生するためにリモート・ディスプレイ・システム300が必要とするデータを減少させるために行われる。追跡ソフトウェア・レイヤは、フレーム又はタイル内にあるデータの形式を識別し、最適な種類のエンコードを実行できるようにするのに役立つ。一部のRTは、グラフィクス・コマンドを実行するための十分なグラフィクス処理能力を有していない場合もあり、GPU−P412が処理したエンコード・データが送られることもある。
例えば、追跡ソフトウェアが、タイルの表面がリアル・タイム・ビデオであることを識別した場合、ビデオには一層効果的であり、スムーズな空間遷移及び時間ロカリティ(temporal locality)を有するエンコード方式を、これらのタイルに用いることができる。追跡ソフトウェア・レイヤが、タイルの表面が殆どテキストであることを識別した場合、鋭い縁及びテキストの広い白色空間に一層効果的なエンコード方式を用いることができる。どの形式のデータがどの領域にあるか識別することは、複雑な問題である。しかしながら、追跡ソフトウェア・レイヤのこの実施形態では、ホスト・ディスプレイ・システム及びこの識別において補助するホスト・オペレーティング・システムのグラフィクス・ドライバ・アーキテクチャにインターフェースを組み込むことを可能にする。例えば、Microsoft Windows(登録商標)では、ある種のDirectShowコマンドを利用する表面はビデオ・データである可能性が高く、一方通常テキストと関連のある、色拡張ビット・ブロック転送(ビット・ブリッツ(Bit Blits))を用いる表面はテキストである可能性が高い。各オペレーティング・システム及びグラフィクス・ドライバ・アーキテクチャは、それ自体の特性指標を有する。他の実施態様が並行して多数の形式のデータ・エンコードを実行し、次いでエンコーダのフィードバックに基づいて最良の結果を出したエンコード方式を用いることを選択することができる。
種々のデータ形式に対して、ある種のエンコード方式は特定の形式のデータには特に有用であり、一部のエンコード方式はデータ依存性が低い。例えば、RLEはテキストには非常に良いが、ビデオには非常に劣っており、DCTに基づく方式はビデオには非常に良いが、テキストには非常に劣っており、ウェーブレット変換に基づく方式は、ビデオ及びテキスト双方にとって満足することができる。このシステムでは、無損失のエンコード又は損失があるエンコードのいずれの種類でも用いることができるが、ウェーブレット変換エンコードは、無損失又は損失型のいずれでも可能であり、特に、周囲のタイルに対する懸念なく各タイルをエンコードすることができる決定論的算術的コーダを用いた前進ウェーブレット変換は、この用途には特に適している。JPEG2000ウェーブレット・エンコーダの派生物は、リアル・タイムでの実行を改善するために特別な処理を行っており、可能な実施態様の1つである。
図8は、ネットワーキング、セキュリティ、端末サービス、記憶、及びホスト・プロセッサからのインターネット・アクセスのようなその他のタスクをオフロード及び促進するための好適な実施形態のサブシステム800(図2からの820及び図からの840)のブロック図である。オフロード・サブシステム800は、主に、ホスト・システム200又は400とシステム・バス206を通じて通信する。接続部SDVO1 414及びSDVO2 416は任意であり、RTのためのグラフィクス処理を含むホスト・システム、又はネットワークを通じてシステム運営管理のための単一リモート・キーボード、ビデオ、及びマウス(KVM)に再指令(redirection)を与えるより単純なグラフィクス・システムのいずれかのために含まれる。接続部は、直接でも、又はインターフェース・チップ850を介してでもよい。インターフェース制御部810は、種々のI/O接続を管理する。ネットワーク・インターフェースは、WANへのアクセス及びRTへのアクセスを含むことができる。ギガビット・イーサネットのような高速ネットワークが好ましいが、常に実用的という訳ではない。10/100イーサネット、電力線イーサネット、同軸ケーブル系イーサネット、電話回線系イーサネット、又はワイヤレス・イーサネット規格802.11a、b、g、n、sのような低速ネットワーク、ならびに今後の派生物及び超広帯域(UWB)バージョンもサポートすることができる。
KVMは、主ネットワーク接続及びホストCPU上でランするソフトウェアを用いて「帯域内」で沿革的にホストを制御するのに便利なように実施し用いることができる。あるいは、KVMは、主システムの資源をできるだけ使わずに、「帯域外」で動作することもできる。「帯域外」で用いる場合、ビデオ監視は、主要な「帯域内」ネットワーク接続以外のネットワーク・インターフェースを用いて行うとよい。加えて、主プロセッサ上でランするリモートKVM機能のためのソフトウェアの代わりに、特殊な別個のベースボード管理コントローラ(BMC)が含まれるのが通例である。BMCは、インテリジェント・プラットフォーム管理インターフェース(IPMI)のようなプロトコルをランさせることができる。BMCは、それ自体のネットワーク・インターフェースを設けることができ、あるいは主ネットワーク・コントローラへのサイド・ポート接続をサポートすることもできる。
異なるオフロード・タスクに合わせて動的処理をサポートするために、オフロード・サブシステム800は処理ブロックを用いる。処理ブロックは、プログラム可能かつコンフィギュレーション(環境設定)可能(configurable)であり、作業負荷が変化すると素早くタスクを切り換えてコンフィギュレーションを変更することができる。種々のメモリ・ブロックが処理ブロックの各々に含まれ、更に大きなメモリ830も含むことができる。CPU808は、一般に、それ自体のキャッシュ・メモリを含むプログラマブル・プロセッサであり、オフロードについてのハウスキーピング及び管理を実行することができ、更に高いレベルのプロトコル及びインターフェースの処理も実行することができる。ネットワーク・プロセッサ及びMACコントローラ806は、オフロード・サブシステムのネットワーク・インターフェース制御(NIC)機能を管理し、同時通信の多数のパイプを管理することができる。コンテンツ・アドレス・メモリ(CAM)のような特殊な内部メモリ、及び従前のメモリもNIC806の中に含めてもよい。完全なNIC806の機能には、セキュリティ・プロセッサ(SP)804及びコンフィギュレーション可能なデータ・プロセッサ(CDP)802からの追加処理が必要となる場合がある。
コンフィギュレーション可能なデータ・プロセッサ802は、専用ハードウェア・ブロックに通常伴うスループットで異なる処理を実行するように、再コンフィギュレーションできる設計となっている。CDP802を専用ハードウェアの代わりに利用することにより、同じハードウェアによって異なるオフロード・タスクを実行することができる。再コンフィギュレーション可能なデータ・パス、動的命令集合、非常に長い命令語(VLIW)、単一命令多重データ(SIMD)、多重命令多重データ(MIMD)、ディジタル信号処理(DSP)及びその他の形態の再コンフィギュレーション可能な演算のような、CDPを設計する先行技術の方法を組み合わせると、非常に高い性能の計算を実行することができる。セキュリティ・プロセッサ804は、CDP802の形態によって、更に特殊化したハードウェアによって、又は暗号及び鍵関連機能のための専用追加ハードウェアをCDP802と組み合わせることによって実施することができる。
端末サービスの促進のために、CDP802は、タイル及び矩形のデータ・エンコード、ビデオ又はデータに対する種々の形態のトランスコード及びレート変更、タイル署名の発生及び比較、ならびにTSA224又は424部に関して以下で説明するその他のタスクを実行するように構成することができる。記憶促進のためには、CDP802はiSCCI、ファイバ・チャネル(FC)、ファイバ・チャネル・インターネット・プロトコル(FCIP)、及びインターネット・プロトコルに関するタスクの異なる態様に合わせて構成することができる。接続部416は、SDVO2の代わりにFCに接続するように構成することができる。インターネット・コンテンツの促進のためには、CDPは、eXtensible Markup Language(XML)トラフィック、単純オブジェクト・アクセス・プロトコル(SOAP)、HTTPトラフィック、Java仮想機械(JVM)、及びインターネット系通信と関連のあるその他のトラフィックを処理するように構成することができる。
SDVO1 214及びSDVO2 216パス上の着信データを管理するために、特殊バッファ機能及び処理を設けるとよく、あるいはCDP802を、特殊タスクを実行するように構成してもよい。特殊タスクには、大きな矩形をタイルに分解すること、署名の発生及び比較を含むタイルの処理、ならびに目標RTに関係する種々のパケットの管理が含まれる可能性がある。従来のタイル署名は、新しいタイルを受信したときに署名を比較することができるように、サブシステム800内部に格納するとよい。
GPUは、VGA、DVO、DVI、SDVO、表示ポート、あるいは任意数のこれらよりも高速又は低速のポートを含む表示出力ポートのために、任意数の物理的及び論理的接続でも有することができる。したがって、インターフェース・チップ850は、GPU表示出力ポートとオフロード・サブシステム800との間にあることが望ましい場合もある。オフロード・サブシステムからの接続部816は、いずれの幅のPCIエクスプレス・ポートとして実施することもできる。好適な一実施形態では、オフロード・サブシステムは、PCIエクスプレス・ルート・コントローラとして機能し、インターフェース制御部810はPCIエクスプレス・ポートを管理する。インターフェース・チップは、バッファ機能の一部、及び必要な前処理の一部を実行することができる。例えば、インターフェース・チップは、表示データの多数のラインをバッファし、データ・パッキング、フォーマット変換、色空間変換、サブバンド分解(subband decomposition)、又はいずれの数のその他の機能でも実行することができる。好適な一実施形態では、グラフィクス・チップからの出力は、DVO接続部416上の24ビットRGBデータとなる。インターフェース・チップ850は、RGBデータをバッファし、それをYUV4:4:4データに変換し、画素を分解(unpack)して別個のY、U及びVデータ・パケットにする。オフロード・サブシステム800は、インターフェース制御部810を利用して、PCIエクスプレス・ルート制御を行い、Y、U及びVデータ・パケットは、パス816を経由してメモリ830の異なるエリアに送信される。
オフロード・サブシステム800は、数個の無関係な動作に対する一般的なオフロード・タスクも解決するプログラム可能な解決策によって実施することができる。オフロード・プロセッサは、種々のオフロード・タスクを静的又は動的に均衡させ、任意の作業負荷に対するシステム全体のスループットを促進するように設計することができる。例えば、サーバは、日中薄いクライアントのためにサーバに基づく計算を実行しており、夜間は大きなデータベース動作をランさせている場合もある。日中、オフロード・エンジンは、TSAのために記述された動作をランさせる。夜間では、オフロード・エンジンは、ディスク記憶システムから大きなデータベースにアクセスするためにiSCSI促進をランさせる。種々の作業負荷を追跡する内部又はシステム全体の管理手順によって、柔軟性を管理することができる。オフロード・タスク間の切換の粒度は、非常に小さくすることができる。オフロード・エンジンは、非常に速いコンテクスト切換を実行するように設計することができるので、1回のセッションの間に、ネットワーク、端末サービス、格納、セキュリティ、及び同じセッションについてのその他のオフロード・タスクを実行することもできる。
図9は、本発明の一実施形態にしたがって端末サービス促進手順を実行する方法のフローチャートである。明確化のために、ビデオを含むデータの表示を参照して、この手順を論ずることにする。しかしながら、オーディオ、キーボード、マウス、及びその他のデータに関する手順も、等しく本発明と共に用いることを想定している。最初に、ステップ910において、マルチユーザ・サーバに基づくコンピュータ200又は400及びリモート端末システム300は、種々の手順にしたがって、種々のサブシステムが各RTをイネーブルするために、ホスト側及び端末側を初期化する。ステップ912において、追跡ソフトウェア・レイヤが、ホスト200又はホスト400上において、TSA224又はTSA−G424と共に動作して、種々のグラフィクス及びビデオ・コールを処理し、どの動作をどこで実行する必要があるか判断する。尚、ホスト・システム200は、RTグラフィクス動作を実行するために、常駐ホストGPUも仮想フレーム・バッファも利用しない。
グラフィクス動作が2D描画を含む場合、ステップ924において、2D描画エンジンPGU−P412が動作を処理し、しかるべき仮想表示をRAM430内に生成することが好ましい。同様に、ステップ926において、3D描画をGPU412によって実行して、しかるべき仮想表示をRAM内に生成する。ステップ928において、TSA224又はTSA−G424は、ビデオ又はグラフィクス・コマンドをしかるべきRTに転送することを決定することができる。ステップ940までのフローは、迂回ステップ928による影響を受けずに済む。ステップ940において、PGU−P412は各仮想表示を合成して、表示に適したフレームを形成する。この合成は、CPUサブシステム202、2Dエンジン、3Dエンジン、及びGPU412内部にあるいずれのビデオ処理エレメントによる動作のいずれの組み合わせでも実行することができる。合成ステップの一部として、S−バッファの管理をグラフィクス処理ハードウェアに含むPGU−P412のために、描画エンジンは、それぞれのタイル毎にS−バッファを更新する。
リターン・パス944によって示されるように、GPU−P412は、必要に応じて、同じRT又は異なるRTのために次のフレームを処理することができる。一旦合成動作を行ったなら、ステップ946において、タイル及び関連するS−バッファ・ステータス・ビット、ならびに該当する場合には署名ビットを管理する。ステップ946では、S−バッファ・ステータス・ビットに影響を及ぼす可能性があるビデオ及びグラフィクス迂回ステップ928によって処理された任意のグラフィクス及びビデオ動作を考慮する。例えば、描画動作がステップ924において実行され、ステップ928を通じてリモート端末に迂回された場合、描画動作による影響を受けるタイルに対して選択的更新を行う必要なない。何故なら、この動作はRTにおいて行われるからである。
PGU−P412内部で又はTSA−G424との組み合わせで行うことができる、タイルに対するステータス・ビット及び署名の処理がステップ946において行われた場合、ステップ950では、ファイルの選択的更新を行うことができる。タイルは、固定又は可変サイズとすることができる。タイルと共に含まれるヘッダ情報は、フォーマット、及び意図するRT宛先を示す。ステップ954において、TSA−G424は、ステップ950から受けたタイルの必要なエンコードを実行する。このエンコードは、決定論的方式として、タイル内部にあるデータの方位及び周囲のタイルを、エンコード・ステップにおいて考慮する必要をなくすことが好ましい。また、ステップ954において、ステップ928に続くビデオ・データ及びグラフィックス・コマンドを処理する。ビデオ・データのレートを変更することができるが、この場合、ビット・レート又はフレーム・レートを変更し、周波数又は空間のいずれかのドメインにおいてスケーリングし、必要な場合、異なるエンコード規格にトランスコードする。リターン・パス968を通じたネットワーク・フィードバックは、RT情報と共に、エンコード・ステップ954を判断するのに役立つ。
また、ステップ954では、グラフィクス・データのエンコードを伴う可能性がある、追加の処理を必要とするいずれのグラフィクス動作をも実行する。ステップ958において、TSA−G424は、以前のステップにおいて処理したグラフィクス・コマンド、データ転送、又はビデオ転送の更なるカプセル化を実行する。また、このステップにおいて、帯域幅及びレイテンシのようなネットワーク特性、ならびに特定のパケット・サイズ及び送信の問題に関して、ネットワーク・フィードバックを考慮する。ステップ962において、カプセル化したパケットを、しかるべきネットワーク・コントローラによって処理し、パケットをネットワークに沿ってしかるべきRT300に転送する。
ステップ962におけるネットワーク・プロセスでは、システム制御部からの情報を用いる。この情報は、どのリモート・ディスプレイがどのフレーム更新ストリームを要求しているか、フレーム更新ストリーム毎にどの種類のネットワーク送信プロトコルを用いるのか、そして各フレーム更新ストリームの各部分について、優先度及び再指向特性はどのようになっているかに関する情報を含むことができる。ネットワーク・プロセス・ステップ962は、ネットワーク・コントローラ228を利用して、任意数のネットワーク接続を管理する。種々のネットワークには、ギガビット・イーサネット、10/100イーサネット、電力線イーサネット、同軸ケーブルを用いたイーサネット、電話線を用いたイーサネット、あるいは802.11a、b、g、n、sのようなワイヤレス・イーサネット規格、及び今後の派生物を含むことができる。その他のイーサネット以外の接続も可能であり、USB、1394a、1394b、1394c、あるいは超広帯域(UWB)又はWiMAXのようなその他のワイヤレス・プロトコルを含むことができる。
図10は、本発明の一実施形態にしたがってネットワーク受信及び表示手順を実行する方法におけるステップのフローチャートである。明確化のために、ビデオを含む表示データを参照して、この手順を論ずることにする。しかしながら、オーディオ及びその他のデータに関する手順も、等しく本発明と共に用いることを想定している。
図10の実施形態では、最初に、ステップ1012において、リモート端末300がパス290を通じて、ホスト・コンピュータ200からネットワーク送信を受信することが好ましい。次いで、ステップ1014において、ネットワーク・コントローラ336はネットワーク処理手順を行ってネットワーク・プロトコルを実行し、有線か又は無線かで送信された送信データを受信することが好ましい。
ステップ1020において、CPU324は着信する送信を解釈して、送信が意図するのはどの機能ユニットかを判断する。着信する送信が2Dグラフィクス・コマンドである場合、CPU324は2D描画エンジン332を通じて動作を初期化し、3Dコマンドの場合、3D描画エンジン334を初期化し、ビデオ・データ・ストリームの場合、ビデオ・デコーダ328を初期化し、データのエンコードしたタイルである場合、データ・デコーダ326を初期化する。描画コマンドの中には、描画エンジン及びデータ・デコーダ326双方を利用する場合もある。
色々な数のコマンド及びデータ転送が行われ、種々の機能ユニットが動作し、好ましくはデータ情報を操作して、しかるべき表示可能なフォーマットにする。ステップ1030において、機能的ユニットの各々からの操作後のデータを、フレーム・マネージャ330によって組み立てて、RAM312の中に更新表示フレームを生成することができる。更新表示フレームは、以前のフレームからの表示フレーム・データ、操作及びデコードした新しいフレーム・データ、ならびに新しいフレーム・データの送信中に発生した表示データの誤りを隠蔽するために必要なあらゆる処理を含むことができる。
最後に、ステップ1040において、ディスプレイ・コントローラ330は、最後に完成した表示フレーム・データを、リモート端末システム300のユーザが見るために、リモート端末表示画面310に供給する。表示のリフレッシュは、フリッカを回避するために、リモート端末コントローラ314とディスプレイ310との間において通例毎秒60から72回行われる非同期動作である。ステップ1030において新しい表示フレームを生成することは殆ど行われないのが通例であるが、必要なときには、毎秒30フレーム以上で行うとよい。スクリーン・セーバもパワー・ダウン・モードもない場合、ディスプレイ・プロセッサは、表示リフレッシュのプロセスにおいて、フィードバック・パス1050で示すように、最後に完成した表示フレームを用いて、リモート表示画面310を更新し続ける。
したがって、本発明は、ユーザが多種多様なアプリケーションにおいて効果的に利用することができるリモート端末をサポートする、マルチユーザ・サーバに基づくコンピュータ・システムを実施する。例えば、ある会社(business)が1つの場所において多数の棚にコンピュータ・システムを展開し、遠隔地にいるユーザに非常に単純で低コストのリモート端末システム300を彼らのデスクトップ上に提供する。異なる遠隔地は、LAN、WAN、又はその他の接続を通じてサポートすることができる。RTは、デスクトップ・パーソナル・コンピュータ又はノートブック・パーソナル・コンピュータとすればよく、別のシステムでは、セル・フォン、パーソナル・ディジタル・アシスタントのような特殊デバイス(specialty device)であっても、携帯用ビデオ・プレーヤ、ゲーム機、又は遠隔制御システムのようなその他の消費者向け製品と組み合わせてもよい。ユーザは、マルチユーザ・システム100のホスト・コンピュータを柔軟に利用して、ホスト・システムがローカル・ユーザに提供することができるのと同じレベルのソフトウェア互換性及び同様のレベルの性能を達成することができる。したがって、本発明は、種々の異質なコンポーネントを利用してシステム相互動作性及び機能性の最適化を促進する、柔軟性のあるマルチユーザ・システムを効果的に実施する。
以上、好適な実施形態を参照しながら、本発明について説明した。この開示を参考にすれば、他の実施形態も当業者には明白であろう。例えば、本発明は、前述の好適な実施形態において説明した構成以外の構成を用いても容易に実施することができる。加えて、本発明は、好適な実施形態として先に説明したシステム以外のシステムと共にでも効果的に用いることができる。したがって、好適な実施形態に対するこれら及びその他の変形は、本発明の範囲に該当することを意図しており、本発明は、添付した特許請求の範囲によってのみ限定されることとする。
1つ以上のホスト・コンピュータ、ネットワーク、及び多数のリモート端末を含むマルチユーザ・コンピュータ・システムのブロック図である。 本発明の一実施形態による端末サービス促進装置を有するマルチユーザRTシステム・ホスト・コンピュータのブロック図である。 図2のホスト・コンピュータと協同するRTを示す図である。 本発明の第2実施形態による、グラフィカル・プロセッサ・ユニットを備えた端末サービス促進装置を有するマルチユーザRTシステム・ホスト・コンピュータのブロック図である。 8つの表示エリアに編成し、その内の1つが表示ウィンドウを含み、2つが1つの大きなディスプレイをサポートするために用いられるメモリを表す図である。 図5の表示マップ536を更に詳細にした図である。 タイルに細分割した図6Aの矩形を示す図である。 図2の端末サービス促進装置224又は図4の424の一例の詳細を示すブロック図である。 端末サービス、ネットワーキング、及びその他のタスクを促進するためのオフロード・サブシステムのブロック図である。 本発明の一実施形態にしたがって、端末サービス促進を実行する方法を示すフローチャートである。 本発明の一実施形態にしたがって、リモート端末のためにネットワーク受信及び表示手順を実行する方法を示すフローチャートである。

Claims (20)

  1. 多数のリモート端末をサポートすることができるホスト・コンピュータ・システムであって、該システムは、
    グラフィクス及びディスプレイ・サブシステムであって、
    多数の端末のために表示フレームを格納することができる表示メモリと、
    各々がリモート端末における表示フレームに対応することができる表示フレームを発生する1つ以上の描画エンジンと、
    表示フレームの修正されたサブ・フレームを追跡し、この追跡に基づいて前記表示メモリから選択的更新を実行する手段と、
    を有するグラフィクス及びディスプレイ・サブシステムと、
    前記グラフィクス及びディスプレイ・サブシステムを前記ホスト・コンピュータ・システムにおけるホストCPUに接続する手段と、
    前記選択的更新のみを、ネットワーク・サブシステムを通じて、前記リモート端末の対応するものに転送するように、前記表示メモリからの選択的更新を管理する手段と
    を備えていることを特徴とするホスト・コンピュータ・システム。
  2. 請求項1記載のシステムにおいて、前記グラフィクス及びディスプレイ・サブシステムは、ステータス・ビットを管理するために表示メモリを利用し、前記選択的更新出力を転送する前に、どのサブ・フレームが修正されたのか、そしてどこで前記選択的更新がこれらのステータス・ビットを更新するのかを追跡するよう構成されていることを特徴とするシステム。
  3. 請求項1記載のシステムにおいて、選択的更新が必要な前記追跡サブ・フレームは、前記ネットワーク・サブシステムを通じて転送する前に、帯域幅要求を削減するために、最初にエンコードされることを特徴とするシステム。
  4. 請求項1記載のシステムにおいて、前記グラフィクス及びディスプレイ・サブシステムは、プライベート接続を通じて前記選択的更新をエンコード・サブシステムに出力し、該エンコード・サブシステムが、前記ネットワーク・サブシステムへの転送の前に、前記選択的更新をエンコードするよう構成されていることを特徴とするシステム。
  5. 請求項4記載のシステムにおいて、前記グラフィクス及びディスプレイ・サブシステムが実行する追跡以外に、前記エンコード・サブシステムは、前記選択的更新を前記リモート端末に転送する必要があるか否か判断するために、追加の追跡を実行するよう構成されていることを特徴とするシステム。
  6. 請求項4記載のシステムにおいて、前記エンコード・サブシステムは、グラフィクス・コマンドを前記グラフィクス及びディスプレイ・サブシステム又は前記ホストCPUから受信し、前記ネットワーク・サブシステムを通じた前記対応するリモート端末への転送のために前記グラフィクス・コマンドを処理するよう構成されていることを特徴とするシステム。
  7. 請求項1記載のシステムにおいて、前記サブ・フレームは、固定サイズのタイルであり、前記追跡は前記固定サイズのファイルに対して行われることを特徴とするシステム。
  8. 請求項7記載のシステムにおいて、前記グラフィクス及びディスプレイ・サブシステムは、前記タイル上で署名を発生し、前記タイルを選択的に更新し前記エンコード・サブシステムに送るべきか否か判断するために、後続のタイルの前記署名を管理するよう構成されていることを特徴とするシステム。
  9. 多数のリモート端末をサポートすることができるホスト・コンピュータ・システムであって、該システムは、
    前記ホスト・コンピュータ・システム内部においてシステム・バスを通じて他のサブシステムに接続されているホストCPUと、
    前記リモート端末を管理するオフロード・サブシステムであって、
    前記バス上において、前記ホストCPUが処理するグラフィクス・コマンド又はビデオ・データを傍受する手段と、
    前記傍受したグラフィクス・コマンド又はビデオ・データをエンコード、トランスコード、又はそれ以外で処理する手段と
    を備えているオフロード・サブシステムと、
    前記リモート端末の対応するものへのネットワーク・サブシステムを通じた転送のために、前記傍受し処理したグラフィクス・コマンドを管理する手段と
    を備えていることを特徴とするホスト・コンピュータ・システム。
  10. 請求項9記載のシステムにおいて、前記オフロード・サブシステムは、前記ネットワーク転送に必要な帯域幅を削減するために、前記グラフィクス・コマンドを傍受し、該グラフィクス・コマンドと関連のあるデータ・ブロックをエンコードするよう構成されていることを特徴とするシステム。
  11. 請求項9記載のシステムにおいて、前記オフロード・サブシステムは、前記ビデオ・データを傍受し、前記ネットワーク性能を一致させ前記リモート端末の個々の能力をデコードするために、前記ビデオ・データを、ビット・レート(レート変更)、フレーム・レート、解像度、又は符号化アルゴリズム(トランスコード)を変更することを含む処理を実行することを特徴とするシステム。
  12. 請求項9記載のシステムにおいて、前記傍受する手段は、前記ホストCPU上でランする追跡ソフトウェア・レイヤを含むことを特徴とするシステム。
  13. 請求項9記載のシステムにおいて、前記オフロード・サブシステムは、グラフィクス及びディスプレイ・コントローラからの1本以上の表示出力パスに接続する手段を含むことを特徴とするシステム。
  14. 請求項13記載のシステムにおいて、前記グラフィクス及びディスプレイ・コントローラは、1つのローカル・ディスプレイに対する出力を生成し、前記リモート端末を通じて遠隔管理を実行可能であることを特徴とするシステム。
  15. 請求項13記載のシステムにおいて、前記オフロード・サブシステムは、前記リモート端末の1つへのネットワーク送信の前に、前記ホスト・システムのグラフィクス及び表示出力のエンコードを実行することを特徴とするシステム。
  16. 請求項13記載のシステムにおいて、前記グラフィクス及びディスプレイ・コントローラは、多数のRTをサポートし、前記接続部は、前記オフロード・システムに、多数のリモート端末における異なるサブ・フレームに対応する選択的サブ・フレーム更新を供給することを特徴とするシステム。
  17. 多数のリモート端末を有するマルチユーザ・ホスト・システムの動作方法であって、
    ソフトウェアと、主CPUと、オフロード・エンジンとを含むホスト・コンピュータを用いて、グラフィクス・コマンド又はビデオ・データを処理する際に前記CPUを補助するステップと、
    ビット・レートを変更し、解像度を変更し、フレーム・レートを変更し、又はエンコード・アルゴリズムを変更することによって、前記ビデオ・データを処理するステップと、
    前記グラフィクス・コマンドと関連のあるデータをカプセル化しエンコードすることによって、前記グラフィクス・コマンドを処理するステップと、
    前記リモート端末の内どれが、前記処理したグラフィクス・コマンド又は前記処理したビデオ・データの宛先となるのか判定を行うステップと、
    前記処理したグラフィクス・コマンド又は処理したビデオ・データを、ネットワーク・プロトコル技法にしたがって、ネットワーク・インターフェースを通じて伝搬させるステップと
    を備えていることを特徴とする方法。
  18. 請求項17記載の方法において、前記マルチユーザ・ホスト・システムは、フレーム・メモリが前記リモート端末の1つ以上に対応するローカル・グラフィクス・プロセッサを含み、前記ローカル・グラフィクス・プロセッサが、
    前記グラフィクス・コマンドを表示フレームにレンダリングするステップと、
    サブ・フレーム毎に、前記リモート端末の各々においてどのサブ・フレームを選択的に更新する必要があるか判定を行うステップと、
    前記選択的更新を前記オフロード・エンジンに送信するステップと
    を実行することを特徴とする方法。
  19. 請求項18記載の方法において、前記オフロード・エンジンは、前記選択的更新サブ・フレームのエンコードを実行するよう構成されていることを特徴とする方法。
  20. 請求項17記載の方法において、前記オフロード・エンジンは、前記主CPUから1つ以上の他の処理タスクもオフロードさせるために用いられることを特徴とする方法。
JP2008538906A 2005-11-01 2006-10-19 マルチユーザ端末サービス促進装置 Expired - Fee Related JP5060489B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/264,269 US7899864B2 (en) 2005-11-01 2005-11-01 Multi-user terminal services accelerator
US11/264,269 2005-11-01
PCT/US2006/040755 WO2007053304A2 (en) 2005-11-01 2006-10-19 Multi-user terminal services accelerator

Publications (2)

Publication Number Publication Date
JP2009514124A true JP2009514124A (ja) 2009-04-02
JP5060489B2 JP5060489B2 (ja) 2012-10-31

Family

ID=37995679

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008538906A Expired - Fee Related JP5060489B2 (ja) 2005-11-01 2006-10-19 マルチユーザ端末サービス促進装置

Country Status (6)

Country Link
US (1) US7899864B2 (ja)
EP (1) EP1949333A4 (ja)
JP (1) JP5060489B2 (ja)
KR (1) KR20080070849A (ja)
CN (2) CN102662619A (ja)
WO (1) WO2007053304A2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009223695A (ja) * 2008-03-17 2009-10-01 Fujitsu Ltd 情報処理装置、情報処理システム、情報処理装置の制御方法及びコンピュータプログラム
JP2011172182A (ja) * 2010-02-22 2011-09-01 Nec Personal Products Co Ltd 配信サーバ及び配信システム
JP2012510126A (ja) * 2008-11-26 2012-04-26 マイクロソフト コーポレーション リモートデスクトッププロトコルのためのハードウェアアクセラレーション
JP2013532332A (ja) * 2010-06-10 2013-08-15 オトイ、インコーポレイテッド Gpuリソースの複数のクライアントへの割り当て
JP2013545157A (ja) * 2010-09-15 2013-12-19 フェラーク アーゲー グラフィカルユーザインタフェースを構成するための方法
WO2017138179A1 (ja) 2016-02-10 2017-08-17 コニカミノルタ株式会社 有機エレクトロルミネッセンス発光装置

Families Citing this family (103)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2559584A1 (en) 2004-03-13 2005-09-29 Cluster Resources, Inc. System and method of providing a self-optimizing reservation in space of compute resources
US7747086B1 (en) 2005-07-28 2010-06-29 Teradici Corporation Methods and apparatus for encoding a shared drawing memory
US8271980B2 (en) 2004-11-08 2012-09-18 Adaptive Computing Enterprises, Inc. System and method of providing system jobs within a compute environment
US8072549B2 (en) * 2004-11-25 2011-12-06 Panasonic Corporation Repeater apparatus to provide a source apparatus with format information that can be processed by both a sink apparatus and the repeater apparatus and method for controlling the same
US9231886B2 (en) 2005-03-16 2016-01-05 Adaptive Computing Enterprises, Inc. Simple integration of an on-demand compute environment
US8453148B1 (en) 2005-04-06 2013-05-28 Teradici Corporation Method and system for image sequence transfer scheduling and restricting the image sequence generation
EP1872249B1 (en) 2005-04-07 2016-12-07 Adaptive Computing Enterprises, Inc. On-demand access to compute resources
JP2007096604A (ja) * 2005-09-28 2007-04-12 Toshiba Corp 電子機器及び映像受信装置及びその制御方法
US20070174429A1 (en) * 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US8151323B2 (en) 2006-04-12 2012-04-03 Citrix Systems, Inc. Systems and methods for providing levels of access and action control via an SSL VPN appliance
KR100812332B1 (ko) * 2006-05-18 2008-03-10 삼성전자주식회사 컨텐츠 관리 장치 및 그 방법
US7983170B2 (en) * 2006-12-19 2011-07-19 Citrix Systems, Inc. In-band quality-of-service signaling to endpoints that enforce traffic policies at traffic sources using policy messages piggybacked onto DiffServ bits
US8155205B2 (en) * 2007-02-28 2012-04-10 Arcsoft, Inc. Dynamic decoder switch
US20080278508A1 (en) * 2007-05-11 2008-11-13 Swen Anderson Architecture and Method for Remote Platform Control Management
JP2009009330A (ja) * 2007-06-27 2009-01-15 Fujitsu Ltd 情報処理装置、情報処理システム及び情報処理装置の制御方法
US7882274B2 (en) * 2007-09-20 2011-02-01 Virtual Desktop Technologies, Inc. Computer system with multiple terminals
US8433747B2 (en) * 2008-02-01 2013-04-30 Microsoft Corporation Graphics remoting architecture
US7937452B2 (en) 2008-02-19 2011-05-03 Microsoft Corporation Framework for rendering plug-ins in remote access services
WO2009108353A1 (en) * 2008-02-27 2009-09-03 Ncomputing Inc. 3d graphics acceleration in remote multi-user environment
EP2266260A4 (en) * 2008-03-24 2011-06-29 Hewlett Packard Development Co IMAGE-BASED REMOTE ACCESS SYSTEM
US20090251474A1 (en) * 2008-04-08 2009-10-08 Chou Deanna J Virtual computing and display system and method
US8281377B1 (en) * 2008-04-15 2012-10-02 Desktone, Inc. Remote access manager for virtual computing services
US8887063B2 (en) 2008-05-21 2014-11-11 Smart Technologies Ulc Desktop sharing method and system
TWI386843B (zh) * 2008-07-03 2013-02-21 Wistron Corp 螢幕顯示區分割方法、螢幕顯示區分割系統,及電腦程式產品
US20100013839A1 (en) * 2008-07-21 2010-01-21 Rawson Andrew R Integrated GPU, NIC and Compression Hardware for Hosted Graphics
US8073990B1 (en) 2008-09-23 2011-12-06 Teradici Corporation System and method for transferring updates from virtual frame buffers
US8755515B1 (en) 2008-09-29 2014-06-17 Wai Wu Parallel signal processing system and method
US20100169791A1 (en) * 2008-12-31 2010-07-01 Trevor Pering Remote display remote control
KR20100083028A (ko) * 2009-01-12 2010-07-21 삼성전자주식회사 사용자 인터페이스를 갖는 이동식 저장 장치 및 그 사용자 인터페이스 제어 방법
US8224885B1 (en) 2009-01-26 2012-07-17 Teradici Corporation Method and system for remote computing session management
JP5476734B2 (ja) * 2009-02-19 2014-04-23 日本電気株式会社 サーバ、リモート操作システム、伝送方式選択方法、プログラム及び記録媒体
US20100226441A1 (en) * 2009-03-06 2010-09-09 Microsoft Corporation Frame Capture, Encoding, and Transmission Management
US20100225655A1 (en) * 2009-03-06 2010-09-09 Microsoft Corporation Concurrent Encoding/Decoding of Tiled Data
US8638337B2 (en) * 2009-03-16 2014-01-28 Microsoft Corporation Image frame buffer management
US8705879B2 (en) * 2009-04-01 2014-04-22 Microsoft Corporation Image compression acceleration using multiple processors
KR101069020B1 (ko) * 2009-04-22 2011-09-29 엘지전자 주식회사 네트워크 모니터 시스템 및 그의 edid 통신 방법
US8441494B2 (en) * 2009-04-23 2013-05-14 Vmware, Inc. Method and system for copying a framebuffer for transmission to a remote display
US8902242B2 (en) 2009-04-23 2014-12-02 Vmware, Inc. Method and system for identifying drawing primitives for selective transmission to a remote display
CN101908033A (zh) * 2009-06-05 2010-12-08 邓迪 一种多用户远程使用多个主计算机的方法和装置
CN101986382B (zh) * 2009-07-29 2013-05-08 赛丽电子系统(上海)有限公司 用于多屏拼接显示墙的无线网络传输rgb信号处理方法
WO2011041736A1 (en) * 2009-10-02 2011-04-07 Young Gil Song System and method for a thin-client terminal system using a serial bus
US9411760B2 (en) * 2009-10-02 2016-08-09 Ncomputing Inc. System and method for a thin-client terminal system with a local screen buffer using a serial bus
US11720290B2 (en) 2009-10-30 2023-08-08 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US9075560B2 (en) * 2009-12-10 2015-07-07 Microsoft Technology Licensing, Llc Real-time compression with GPU/CPU
JP5387395B2 (ja) * 2009-12-28 2014-01-15 ソニー株式会社 受信装置、受信方法およびプログラム
US8621627B1 (en) * 2010-02-12 2013-12-31 Chelsio Communications, Inc. Intrusion detection and prevention processing within network interface circuitry
US20150205489A1 (en) 2010-05-18 2015-07-23 Google Inc. Browser interface for installed applications
US8539039B2 (en) 2010-06-22 2013-09-17 Splashtop Inc. Remote server environment
GB2481612A (en) 2010-06-30 2012-01-04 Skype Ltd Updating image regions in a shared image system
GB2481613A (en) * 2010-06-30 2012-01-04 Skype Ltd Updating regions of shared images using a server that records image status
CN102375714A (zh) * 2010-08-16 2012-03-14 慧荣科技股份有限公司 计算机系统及相关的影像绘图装置和显示装置
US8724696B2 (en) * 2010-09-23 2014-05-13 Vmware, Inc. System and method for transmitting video and user interface elements
US9998749B2 (en) 2010-10-19 2018-06-12 Otoy, Inc. Composite video streaming using stateless compression
US8913509B2 (en) * 2010-10-25 2014-12-16 Verizon Patent And Licensing Inc. Quality of service management in a fixed wireless customer premises network
US9245047B2 (en) * 2010-12-10 2016-01-26 Wyse Technology L.L.C. Methods and systems for facilitating a remote desktop session utilizing a remote desktop client common interface
US8589800B2 (en) * 2010-12-10 2013-11-19 Wyse Technology Inc. Methods and systems for accessing and controlling a remote desktop of a remote machine in real time by a web browser at a client device via HTTP API utilizing a transcoding server
US8504654B1 (en) * 2010-12-10 2013-08-06 Wyse Technology Inc. Methods and systems for facilitating a remote desktop session utilizing long polling
KR20120072134A (ko) * 2010-12-23 2012-07-03 한국전자통신연구원 가상 데스크톱 가속 장치 및 방법
US8886699B2 (en) * 2011-01-21 2014-11-11 Cloudium Systems Limited Offloading the processing of signals
TW201239614A (en) * 2011-03-28 2012-10-01 Wistron Corp Automated test system and automated test method
US9130899B1 (en) 2011-04-27 2015-09-08 Cisco Technology, Inc. Integrated user interface for unified communications applications
US10555012B2 (en) 2011-06-27 2020-02-04 Oncam Global, Inc. Method and systems for providing video data streams to multiple users
US10033968B2 (en) * 2011-06-27 2018-07-24 Oncam Global, Inc. Method and systems for providing video data streams to multiple users
US8990292B2 (en) * 2011-07-05 2015-03-24 Cisco Technology, Inc. In-network middlebox compositor for distributed virtualized applications
KR101857791B1 (ko) * 2011-08-30 2018-05-16 삼성전자주식회사 컴퓨팅 시스템, 및 상기 컴퓨팅 시스템을 동작하기 위한 방법
US9712847B2 (en) * 2011-09-20 2017-07-18 Microsoft Technology Licensing, Llc Low-complexity remote presentation session encoder using subsampling in color conversion space
KR101467430B1 (ko) * 2011-12-12 2014-12-01 주식회사 케이티 클라우드 컴퓨팅 기반 어플리케이션 제공 방법 및 시스템
US9294549B2 (en) * 2012-02-14 2016-03-22 Citrix Systems, Inc. Client bandwidth emulation in hosted services
US9467305B2 (en) 2012-03-07 2016-10-11 Vmware, Inc. Multitenant access to multiple desktops on host machine partitions in a service provider network
US9055139B1 (en) 2012-03-12 2015-06-09 Cisco Technology, Inc. Display protocol interception in the network for services and network-based multimedia support for VDI
CN102664873A (zh) * 2012-03-28 2012-09-12 山东超越数控电子有限公司 一种带bmc的国产龙芯cpu服务器的kvm-over-ip实现方法
US20130318268A1 (en) 2012-05-22 2013-11-28 Xockets IP, LLC Offloading of computation for rack level servers and corresponding methods and systems
US9665503B2 (en) 2012-05-22 2017-05-30 Xockets, Inc. Efficient packet handling, redirection, and inspection using offload processors
KR101700821B1 (ko) * 2012-08-21 2017-02-01 한국전자통신연구원 스케일러블 원격화면 전송방법 및 그 장치
US10270709B2 (en) 2015-06-26 2019-04-23 Microsoft Technology Licensing, Llc Allocating acceleration component functionality for supporting services
CN103000160A (zh) * 2012-11-19 2013-03-27 天津三星电子有限公司 一种显示系统
US10097989B2 (en) 2012-12-21 2018-10-09 E*Trade Financial Corporation Dynamic communication
US9992306B2 (en) * 2012-12-21 2018-06-05 E*Trade Financial Corporation Dynamic execution
US11132277B2 (en) * 2012-12-28 2021-09-28 Iii Holdings 2, Llc System and method for continuous low-overhead monitoring of distributed applications running on a cluster of data processing nodes
KR20160037827A (ko) 2013-01-17 2016-04-06 엑소케츠 인코포레이티드 시스템 메모리로의 연결을 위한 오프로드 프로세서 모듈들
US9503744B2 (en) * 2013-01-22 2016-11-22 Vixs Systems, Inc. Video processor with random access to compressed frame buffer and methods for use therewith
US20140204107A1 (en) * 2013-01-22 2014-07-24 Vixs Systems, Inc. Video processor with frame buffer compression and methods for use therewith
US9407920B2 (en) * 2013-01-22 2016-08-02 Vixs Systems, Inc. Video processor with reduced memory bandwidth and methods for use therewith
EP2757794A1 (en) * 2013-01-22 2014-07-23 ViXS Systems Inc. Video processor with frame buffer compression and methods for use therewith
CN103294439B (zh) 2013-06-28 2016-03-02 华为技术有限公司 一种图像更新方法、系统及装置
CN103347163B (zh) * 2013-06-28 2017-02-08 冠捷显示科技(厦门)有限公司 一种超高清视频图像处理和传送的系统及其方法
US9253158B2 (en) 2013-08-23 2016-02-02 Vmware, Inc. Remote access manager for virtual computing services
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
CN103763610B (zh) * 2013-12-27 2018-10-30 华为技术有限公司 一种远程桌面的重定向方法及装置
CN104731546B (zh) * 2015-04-01 2018-09-11 宁波Gqy视讯股份有限公司 抓取高分辨率图像在大屏幕上显示的方法及系统
US10296392B2 (en) 2015-04-17 2019-05-21 Microsoft Technology Licensing, Llc Implementing a multi-component service using plural hardware acceleration components
US10198294B2 (en) 2015-04-17 2019-02-05 Microsoft Licensing Technology, LLC Handling tenant requests in a system that uses hardware acceleration components
US10511478B2 (en) 2015-04-17 2019-12-17 Microsoft Technology Licensing, Llc Changing between different roles at acceleration components
US9792154B2 (en) 2015-04-17 2017-10-17 Microsoft Technology Licensing, Llc Data processing system having a hardware acceleration plane and a software plane
US9645636B2 (en) * 2015-05-06 2017-05-09 Vmware, Inc. Centralized power management with partial suspend mode for distributed storage systems
US9665163B2 (en) 2015-05-06 2017-05-30 Vmware, Inc. Distributed power management with partial suspend mode for distributed storage systems
US10216555B2 (en) 2015-06-26 2019-02-26 Microsoft Technology Licensing, Llc Partially reconfiguring acceleration components
US10318224B2 (en) * 2015-08-31 2019-06-11 Apple Inc. Data centric display communications
CN106936616B (zh) 2015-12-31 2020-01-03 伊姆西公司 备份通信方法和装置
US10440366B2 (en) * 2016-07-01 2019-10-08 Intel Corporation Method and system of video coding using content based metadata
US11494986B2 (en) * 2017-04-20 2022-11-08 Samsung Electronics Co., Ltd. System and method for two dimensional application usage in three dimensional virtual reality environment
TWI709076B (zh) * 2019-05-31 2020-11-01 技嘉科技股份有限公司 可輸出影像資料的主機板及操作系統
US11768727B2 (en) * 2021-11-23 2023-09-26 International Business Machines Corporation Reducing over-reporting of serviceable events

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06161957A (ja) * 1992-09-15 1994-06-10 Internatl Business Mach Corp <Ibm> ワークステーション
JP2004259166A (ja) * 2003-02-27 2004-09-16 Sony Corp データ会議システム,送信端末装置,コンピュータプログラム,受信端末装置,および送信端末装置の表示画面データ共有方法

Family Cites Families (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5624265A (en) 1994-07-01 1997-04-29 Tv Interactive Data Corporation Printed publication remote contol for accessing interactive media
US5602589A (en) 1994-08-19 1997-02-11 Xerox Corporation Video image compression using weighted wavelet hierarchical vector quantization
US5828421A (en) 1994-10-11 1998-10-27 Hitachi America, Ltd. Implementation efficient digital picture-in-picture decoding methods and apparatus
GB2295936B (en) 1994-12-05 1997-02-05 Microsoft Corp Progressive image transmission using discrete wavelet transforms
EP0734010B1 (en) * 1995-03-21 2005-01-26 Sun Microsystems, Inc. Video frame signature capture
US5708961A (en) 1995-05-01 1998-01-13 Bell Atlantic Network Services, Inc. Wireless on-premises video distribution using digital multiplexing
US6437803B1 (en) 1998-05-29 2002-08-20 Citrix Systems, Inc. System and method for combining local and remote windows into a single desktop environment
US6075906A (en) 1995-12-13 2000-06-13 Silicon Graphics Inc. System and method for the scaling of image streams that use motion vectors
US5977933A (en) 1996-01-11 1999-11-02 S3, Incorporated Dual image computer display controller
US5675382A (en) * 1996-04-08 1997-10-07 Connectix Corporation Spatial compression and decompression for video
US5850482A (en) 1996-04-17 1998-12-15 Mcdonnell Douglas Corporation Error resilient method and apparatus for entropy coding
US5852437A (en) 1996-09-24 1998-12-22 Ast Research, Inc. Wireless device for displaying integrated computer and television user interfaces
US6141447A (en) 1996-11-21 2000-10-31 C-Cube Microsystems, Inc. Compressed video transcoder
US5909518A (en) 1996-11-27 1999-06-01 Teralogic, Inc. System and method for performing wavelet-like and inverse wavelet-like transformations of digital data
US6031940A (en) 1996-11-27 2000-02-29 Teralogic, Inc. System and method for efficiently encoding video frame sequences
US6222885B1 (en) 1997-07-23 2001-04-24 Microsoft Corporation Video codec semiconductor chip
US6304895B1 (en) 1997-08-22 2001-10-16 Apex Inc. Method and system for intelligently controlling a remotely located computer
US6275619B1 (en) 1997-08-29 2001-08-14 Teralogic, Inc. System and method for performing wavelet and inverse wavelet transformations of digital data using semi-orthogonal wavelets
KR19990044988A (ko) * 1997-11-25 1999-06-25 이데이 노부유끼 접속 상황 송신 장치, 접속 상황 표시 데이터 작성 장치 및 접속 상황 표시 방법
US6768775B1 (en) 1997-12-01 2004-07-27 Samsung Electronics Co., Ltd. Video CODEC method in error resilient mode and apparatus therefor
US6097441A (en) 1997-12-31 2000-08-01 Eremote, Inc. System for dual-display interaction with integrated television and internet content
US6104334A (en) 1997-12-31 2000-08-15 Eremote, Inc. Portable internet-enabled controller and information browser for consumer devices
US20030007666A1 (en) * 1998-04-13 2003-01-09 Stewartson James A. Method and apparatus for relief texture map flipping
US6456340B1 (en) 1998-08-12 2002-09-24 Pixonics, Llc Apparatus and method for performing image transforms in a digital display system
US6340994B1 (en) 1998-08-12 2002-01-22 Pixonics, Llc System and method for using temporal gamma and reverse super-resolution to process images for use in digital display systems
US6754266B2 (en) 1998-10-09 2004-06-22 Microsoft Corporation Method and apparatus for use in transmitting video information over a communication network
US6323854B1 (en) * 1998-10-31 2001-11-27 Duke University Multi-tile video display system with distributed CRTC
US6409602B1 (en) 1998-11-06 2002-06-25 New Millenium Gaming Limited Slim terminal gaming system
DE69917489T2 (de) 1998-11-09 2005-06-02 Broadcom Corp., Irvine Anzeigesystem zur mischung von graphischen daten und videodaten
US6853385B1 (en) 1999-11-09 2005-02-08 Broadcom Corporation Video, audio and graphics decode, composite and display system
US6806885B1 (en) * 1999-03-01 2004-10-19 Micron Technology, Inc. Remote monitor controller
US6850649B1 (en) 1999-03-26 2005-02-01 Microsoft Corporation Image encoding using reordering and blocking of wavelet coefficients combined with adaptive encoding
US6256019B1 (en) 1999-03-30 2001-07-03 Eremote, Inc. Methods of using a controller for controlling multi-user access to the functionality of consumer devices
US6263503B1 (en) 1999-05-26 2001-07-17 Neal Margulis Method for effectively implementing a wireless television system
US6628716B1 (en) 1999-06-29 2003-09-30 Intel Corporation Hardware efficient wavelet-based video compression scheme
TW444506B (en) 1999-09-16 2001-07-01 Ind Tech Res Inst Real-time video transmission method on wireless communication networks
US6611530B1 (en) 1999-09-21 2003-08-26 Hewlett-Packard Development Company, L.P. Video communication using multiple streams
US6834123B2 (en) 2001-05-29 2004-12-21 Intel Corporation Method and apparatus for coding of wavelet transformed coefficients
KR100677070B1 (ko) 1999-10-02 2007-02-01 삼성전자주식회사 무선 멀티미디어 통신에서의 비디오 비트스트림 데이터의 오류 제어방법 및 이를 위한 기록 매체
US9668011B2 (en) 2001-02-05 2017-05-30 Avago Technologies General Ip (Singapore) Pte. Ltd. Single chip set-top box system
US6664969B1 (en) * 1999-11-12 2003-12-16 Hewlett-Packard Development Company, L.P. Operating system independent method and apparatus for graphical remote access
US6898583B1 (en) 2000-01-24 2005-05-24 Sony Corporation Method and apparatus of creating application-specific, non-uniform wavelet transforms
US6798838B1 (en) 2000-03-02 2004-09-28 Koninklijke Philips Electronics N.V. System and method for improving video transmission over a wireless network
US6771828B1 (en) 2000-03-03 2004-08-03 Microsoft Corporation System and method for progessively transform coding digital data
US6549674B1 (en) 2000-10-12 2003-04-15 Picsurf, Inc. Image compression based on tiled wavelet-like transform using edge and non-edge filters
US6774912B1 (en) 2000-03-16 2004-08-10 Matrox Graphics Inc. Multiple display device display controller with video overlay and full screen video outputs
US6510177B1 (en) 2000-03-24 2003-01-21 Microsoft Corporation System and method for layered video coding enhancement
US6816194B2 (en) 2000-07-11 2004-11-09 Microsoft Corporation Systems and methods with error resilience in enhancement layer bitstream of scalable video coding
US6842777B1 (en) 2000-10-03 2005-01-11 Raja Singh Tuli Methods and apparatuses for simultaneous access by multiple remote devices
US6785700B2 (en) 2000-12-13 2004-08-31 Amphion Semiconductor Limited Implementation of wavelet functions in hardware
US6826242B2 (en) 2001-01-16 2004-11-30 Broadcom Corporation Method for whitening colored noise in a communication system
US6868083B2 (en) 2001-02-16 2005-03-15 Hewlett-Packard Development Company, L.P. Method and system for packet communication employing path diversity
US6850571B2 (en) 2001-04-23 2005-02-01 Webtv Networks, Inc. Systems and methods for MPEG subsample decoding
KR100442170B1 (ko) 2001-10-05 2004-07-30 (주)아이디스 원격 제어 관리 시스템
GB2381692B (en) 2001-10-31 2004-09-08 Alphamosaic Ltd Video-telephony system
US20030200336A1 (en) * 2002-02-15 2003-10-23 Suparna Pal Apparatus and method for the delivery of multiple sources of media content
WO2004097584A2 (en) * 2003-04-28 2004-11-11 P.G.I. Solutions Llc Method and system for remote network security management
US7454495B2 (en) 2003-09-18 2008-11-18 Raritan America, Inc. Intelligent modular server management system for selectively operating and locating a plurality of computers
US20050204015A1 (en) 2004-03-11 2005-09-15 Steinhart Jonathan E. Method and apparatus for generation and transmission of computer graphics data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06161957A (ja) * 1992-09-15 1994-06-10 Internatl Business Mach Corp <Ibm> ワークステーション
JP2004259166A (ja) * 2003-02-27 2004-09-16 Sony Corp データ会議システム,送信端末装置,コンピュータプログラム,受信端末装置,および送信端末装置の表示画面データ共有方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009223695A (ja) * 2008-03-17 2009-10-01 Fujitsu Ltd 情報処理装置、情報処理システム、情報処理装置の制御方法及びコンピュータプログラム
JP2012510126A (ja) * 2008-11-26 2012-04-26 マイクロソフト コーポレーション リモートデスクトッププロトコルのためのハードウェアアクセラレーション
JP2011172182A (ja) * 2010-02-22 2011-09-01 Nec Personal Products Co Ltd 配信サーバ及び配信システム
JP2013532332A (ja) * 2010-06-10 2013-08-15 オトイ、インコーポレイテッド Gpuリソースの複数のクライアントへの割り当て
JP2015057709A (ja) * 2010-06-10 2015-03-26 オトイ、インコーポレイテッド Gpuリソースの複数のクライアントへの割り当て
KR101577507B1 (ko) 2010-06-10 2015-12-14 오토이, 인크. 다수의 클라이언트에 걸친 gpu 자원의 할당
KR101815358B1 (ko) 2010-06-10 2018-01-04 오토이, 인크. 다수의 클라이언트에 걸친 gpu 자원의 할당
JP2013545157A (ja) * 2010-09-15 2013-12-19 フェラーク アーゲー グラフィカルユーザインタフェースを構成するための方法
US9495080B2 (en) 2010-09-15 2016-11-15 Ferag Ag Method for configuring a graphical user interface
WO2017138179A1 (ja) 2016-02-10 2017-08-17 コニカミノルタ株式会社 有機エレクトロルミネッセンス発光装置
KR20180082565A (ko) 2016-02-10 2018-07-18 코니카 미놀타 가부시키가이샤 유기 일렉트로루미네센스 발광 장치
US10524319B2 (en) 2016-02-10 2019-12-31 Konica Minolta, Inc. Organic electroluminescent light emitting device

Also Published As

Publication number Publication date
CN102662619A (zh) 2012-09-12
EP1949333A4 (en) 2009-12-16
CN101351785A (zh) 2009-01-21
KR20080070849A (ko) 2008-07-31
US20070097130A1 (en) 2007-05-03
US7899864B2 (en) 2011-03-01
WO2007053304A2 (en) 2007-05-10
CN101351785B (zh) 2012-06-20
WO2007053304A3 (en) 2008-06-26
EP1949333A2 (en) 2008-07-30
JP5060489B2 (ja) 2012-10-31

Similar Documents

Publication Publication Date Title
JP5060489B2 (ja) マルチユーザ端末サービス促進装置
JP5129151B2 (ja) マルチユーザ・ディスプレイ・プロキシ・サーバ
US8200796B1 (en) Graphics display system for multiple remote terminals
US8638336B2 (en) Methods and systems for remoting three dimensional graphical data
US10555010B2 (en) Network-enabled graphics processing module
US7916956B1 (en) Methods and apparatus for encoding a shared drawing memory
US7667707B1 (en) Computer system for supporting multiple remote displays
US20140285502A1 (en) Gpu and encoding apparatus for virtual machine environments
US20060282855A1 (en) Multiple remote display system
US20120213294A1 (en) Media Acceleration for Virtual Computing Services
US20090189893A1 (en) Methods and systems for computing a hash from a three dimensional data set loaded into a resource
US20140074911A1 (en) Method and apparatus for managing multi-session
WO2015138464A1 (en) Cloud computing system and method
WO2013140334A2 (en) Method and system for streaming video
KR20070110127A (ko) 압축을 이용하여 분산 프로세싱 환경에서 그래픽디스플레이를 업데이트하는 방법 및 장치
CN115190345B (zh) 用于显示媒体的协调控制方法、客户端设备及存储介质
US10476927B2 (en) System and method for display stream compression for remote desktop protocols
WO2008018860A1 (en) Multiple remote display system
Tamm et al. Plugin free remote visualization in the browser
TWI598817B (zh) 多用戶電腦系統

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20090831

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090831

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091015

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110826

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110830

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111130

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111207

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111228

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120209

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120803

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150810

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees