(57)【要約】クライアント装置又はホストコンピュータにおいて、グラフィクスプロセッサがメインプロセッサに接続される。該グラフィクスプロセッサは、リモートコンピューティングセッションに関連するリモートコンピューティングオーバヘッド（例えば、圧縮又は解凍）の少なくとも一部を行うソフトウェアを実行する。【選択図】図３
2008526107.tif 000002
【特許請求の範囲】
【請求項１】
ホストコンピュータのグラフィクスプロセッサにおいて、該ホストコンピュータで実行しているリモートコンピューティングセッションのための画像データを受信し、該ホストコンピュータが前記グラフィクスプロセッサに接続された中央処理装置を含み、
前記グラフィクスプロセッサで実行しているソフトウェアを使用して前記画像データを圧縮し、
該圧縮された画像データを、ネットワークを介して前記ホストコンピュータに接続されたクライアント装置へ送信し、
前記圧縮された画像データを解凍し、
該解凍された画像データを表す画像を表示する、
という各ステップを含む方法。
【請求項２】
画像データを圧縮する前記ステップが、コーデックを使用して該画像データを圧縮するステップを含む、請求項１に記載の方法。
【請求項３】
ホストコンピュータのグラフィクスプロセッサにおいて、該ホストコンピュータから送信されたデータを表す圧縮された画像データを受信し、該ホストコンピュータが、ネットワークを介してクライアント装置にリモートに接続され、及び前記グラフィクスプロセッサに接続された中央処理装置を含み、
前記圧縮された画像データを解凍し、該解凍ステップが、
前記グラフィクスプロセッサによりアクセスすることが可能なメモリへ前記圧縮された画像データを格納し、
前記グラフィクスプロセッサ内で命令を実行することにより前記圧縮された画像データを解凍する、
という各ステップを含み、
該解凍された画像データを表す画像を表示する、
という各ステップを含む方法。
【請求項４】
前記圧縮された画像データを解凍する前記ステップが、１つ又は２つ以上のコーデックを使用して前記圧縮された画像データを解凍するステップを含む、請求項３に記載の方法。
【請求項５】
前記圧縮された画像データはラスタデータを含む、請求項３に記載の方法。
【請求項６】
コンピュータ(10)であって、
第１のソフトウェアが実行されるメインプロセッサ(12)であって、該第１のソフトウェアが、表示画像を生成するリモートコンピューティングセッションを前記メインプロセッサに確立させるよう動作することが可能なものである、メインプロセッサ(12)と、
第２のソフトウェアが実行されるグラフィクスプロセッサ(16)であって、該第２のソフトウェアが、前記表示画像の少なくとも一部を前記グラフィックプロセッサに圧縮させるよう動作することが可能なものである、グラフィクスプロセッサ(16)と、
前記圧縮されたラスタデータを受信して表示するディスプレイ(22)と
を含むコンピュータ。
【請求項７】
ネットワークインタフェイス(18)を更に含み、該ネットワークインタフェイスが、デバイスからユーザ入力を受信し、該受信したユーザ入力を前記メインプロセッサで実行している前記第１のソフトウェアに送る、請求項６に記載のコンピュータ。
【請求項８】
クライアント装置(30)であって、
表示装置(22)と、
第１のソフトウェアが実行されるメインプロセッサ(12)であって、該第１のソフトウェアが、ホストコンピュータ(34)で実行しているリモートコンピューティングセッションと対話するように動作することが可能なものであり、該ホストコンピュータで実行している該リモートコンピューティングセッションが表示画像を生成し、該ホストコンピュータが該表示画像の少なくとも一部を前記表示装置へ送信する前に圧縮する、メインプロセッサ(12)と、
前記メインプロセッサ及び前記表示装置に接続されたグラフィクスプロセッサ(16)であって、該グラフィクスプロセッサが第２のソフトウェアを実行し、該第２のソフトウェアが、該グラフィクスプロセッサに、前記圧縮された表示画像を解凍させると共に該解凍された表示画像を前記表示装置に表示させるよう動作することが可能なものである、グラフィクスプロセッサ(16)と
を含む、クライアント装置(30)。
【請求項９】
クライアント装置(30)及びホストコンピュータ(34)を含むシステム(10)であって、
前記クライアント装置(30)が、
表示装置(22)と、
クライアントメインプロセッサ(12)と、
前記表示装置及び前記メインプロセッサに接続されたクライアントグラフィクスプロセッサ(16)と、
ネットワークインタフェイス(18)とを含み、
前記ホストコンピュータ(34)が、
ネットワーク(32)を介して前記クライアント装置の前記ネットワークインタフェイスに接続されており、及び、
第１のソフトウェアが実行されるホストメインプロセッサ(12)であって、該第１のソフトウェアが、表示画像を生成するリモートコンピューティングセッションを該ホストメインプロセッサに確立させるよう動作することが可能なものである、ホストメインプロセッサ(12)と、
前記ホストメインプロセッサに接続されたホストグラフィクスプロセッサ(16)であって、該ホストグラフィクスプロセッサが第２のソフトウェアを実行し、該第２のソフトウェアが、前記表示画像の少なくとも一部を該ホストグラフィクスプロセッサに圧縮させるよう動作することが可能なものである、ホストグラフィクスプロセッサ(16)とを含み、
前記クライアントメインプロセッサが、前記ホストコンピュータで実行している前記リモートコンピューティングセッションと対話するよう動作することが可能なソフトウェアを実行し、
前記クライアント装置が、前記ホストコンピュータから前記圧縮された表示画像を受信し、
前記クライアントグラフィクスプロセッサが、該クライアントグラフィクスプロセッサに、前記圧縮された表示画像を解凍させると共に該解凍した表示画像を前記表示装置に表示させるよう動作することが可能なソフトウェアを実行する、
システム(10)。
【請求項１０】
前記第２のソフトウェアが、１つ又は２つ以上のコーデックを使用して前記画像データを圧縮するソフトウェアを含む、請求項９に記載のシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
現行のリモートクライアントアクセス技術は、汎用ホストコンピュータ又は専用アドオンハードウェアを使用してリモートコンピューティングを行うものである。ホストベースのソフトウェアソリューションの例として、X Windows及びMicrosoft Remote Desktopが挙げられる。専用ハードウェアベースのソリューションの例としては、ClearCube社製及び2C Computing社製の製品が挙げられる。
【発明の開示】
【発明が解決しようとする課題】
【０００２】
ホストベースのソフトウェアソリューションは、ホストコンピュータの性能に影響を与え得るものである。ホストベースのソフトウェアソリューションの性能は、ホストCPUの速度及びホストCPUにプログラム命令をロードするために必要な時間によって制限される。更に、リモートコンピューティングを実行する際のオーバヘッドは、ホストCPUの進行を妨げ、ホストアプリケーションのサイクルを奪うものとなる。
【０００３】
専用ハードウェアソリューションは、コスト及び複雑性を増大させるものとなる。更に、専用ハードウェアアプリケーションは一般に、短距離（通常は約152.4〜182.9m（500〜600フィート）に制限され、ローカルマシンとリモートマシンとの間に専用の配線が必要になる場合がある。更に、かかるアプリケーションは通常は、グラフィクス解像度及びマルチスレッド能力が限らたものであった（一般に1280×1024ピクセル解像度で４スレッド以下）。
【発明を実施するための最良の形態】
【０００４】
図面は、必ずしも一定の縮尺になっておらず、幾つかの図面を通して同様の符号は実質的に同様の構成要素を示している。図面は、一般に本書で説明する様々な実施形態をその限定ではなく例示を目的として示したものである。
【０００５】
最近のグラフィクスプロセッサは、それらが設計されたグラフィクス演算よりも多くのグラフィクス演算を実行することができる。それらは、今や有能なコプロセッサであり、その高速さが故に様々な用途にとって有用なものとなっている。グラフィクスプロセッサを使用してリモートコンピューティングの速度を上昇させるシステム及び方法について以下で述べる。
【０００６】
リモートコンピューティングを行うために使用することができるコンピュータシステム10を図１に示す。図１のコンピュータシステムでは、プロセッサ（CPU）12が、バス14を介して、グラフィクスプロセッサ16、ネットワークインタフェイス（NI）18、及び記憶装置（ストレージ）20に接続される。ネットワークインタフェイス18は、ネットワーク（図示せず）に接続することが可能なものである。一実施形態では、グラフィクスプロセッサ16はディスプレイ22に接続される。バス14は、複数のデバイス間の共通経路又はチャネルである。バス14は、パラレルバスであってもシリアルバスであってもよい。
【０００７】
コンピュータシステム10の１つの例示的な実施形態を図２に示す。図２のコンピュータシステム10では、プロセッサ12は、チップセット15を介して、グラフィクスプロセッサ16、ネットワークインタフェイス18、記憶装置20、及びシステムメモリ24に接続される。ネットワークインタフェイス18は、ネットワーク（図示せず）に接続することが可能なものである。一実施形態では、プロセッサ12は、PCI（Peripheral Component Interconnect）バス25を介してネットワークインタフェイス18及び記憶装置20と通信する。
【０００８】
一実施形態では、グラフィクスプロセッサ16は、ディスプレイ22及びローカルメモリ26に接続され、及びAGP（Accelerated Graphics Port）（図示せず）を介してプロセッサ12及びシステムメモリ24と通信する。
【０００９】
AGPは、テクスチャマッピングの複雑な処理のためにシステムメモリ24に直接アクセスする能力をグラフィクスプロセッサ16に与える。AGPは、グラフィクスカードに、システムメモリ内のテクスチャマップに直接アクセスする２つの方法、すなわち、パイプライン処理及びサイドバンドアドレシングを提供する。パイプライン処理では、AGPは、バスアクセス又はメモリアクセス中にデータに関する複数の要求を行う。PCIは、パイプライン処理で１つの要求を行い、その要求したデータが転送されるまで別の要求を行わない。
【００１０】
別の実施形態では、グラフィクスプロセッサ16は、PCI Expressを使用して、プロセッサ12及びシステムメモリ24と通信する。他の周辺機器相互接続方式を使用することも可能である。
【００１１】
図１及び図２のシステムでは、グラフィクスプロセッサ16は、リモートコンピューティングのために用いられる複雑な圧縮アルゴリズム及びピクセルリードバックを実行する。ホストベースのシステムとは対照的に、プロセッサ12は、画像処理を開始することが可能となる前にスクリーンピクセルをリードバックする必要がない。スクリーンピクセルをリードバックするのではなく、グラフィクスプロセッサは、ピクセルに高速にアクセスすることができる。最近の3Dグラフィクスアクセラレータは、圧縮及び解凍を含む画像処理アルゴリズムを実行するのに十分な処理能力を有しており、実際に、かかる処理がCPUからグラフィクスプロセッサへと移行しつつある。
【００１２】
図３は、ネットワーク32を介してホストシステム（例えばコンピュータ）34に接続されるクライアント装置30を含むリモートコンピューティングシステムの一実施形態を示している。図示する実施形態では、プロセッサ12は、グラフィクスプロセッサ16、ネットワークインタフェイス18、記憶装置20、及びシステムメモリ24に接続される。ネットワークインタフェイス18はネットワーク32に接続される。一実施形態では、プロセッサ12は、PCIバスを介してネットワークインタフェイス18及び記憶装置20と通信する。
【００１３】
一実施形態では、グラフィクスプロセッサ16は、ディスプレイ22に接続され、及びAGPを介してプロセッサ12及びシステムメモリ24と通信する。別の実施形態では、グラフィクスプロセッサ16は、PCI Expressを使用して、プロセッサ12及びシステムメモリ24と通信する。
【００１４】
更に別の実施形態では、グラフィクスプロセッサ16は、チップセット（図３には示さず）の一部とすることが可能である。今日、システムアーキテクチャによっては、グラフィクスコントローラ16をチップセットと一体化させ、この場合にはAGPバス、PCIバス、又はPCI-Expressバスは含まれない。これらの一体化ソリューションの中には、専用のフレームバッファの代わりにメインメモリを使用するものがある。かかる一実施形態では、メモリ24に格納されている画像が圧縮されて該メモリ24に再び格納された後にリモートクライアントに転送されることになる。
【００１５】
他の周辺機器相互接続方式を用いることも可能である。
【００１６】
上述したように、グラフィクスプロセッサ16は、リモートコンピューティングのために使用される複雑な圧縮アルゴリズム及びピクセルリードバックを実行する。一実施形態では、１つ又は２つ以上のコーデックが使用される。JPEGの代わりに又はそれに加えて他の圧縮アルゴリズム（例えばウェーブレット又はランレングス符号化）を使用することが可能である。一実施形態では、圧縮及び解凍の両方に複数のコーデックが使用される。
【００１７】
図４は、クライアント装置30に送信するためにコンピュータ34内で画像データを圧縮する方法を示している。ステップ100で、グラフィクスプロセッサ16は、ホストコンピュータ34上で実行しているリモートコンピューティングセッションのためにラスタ（例えば画像）データを受信する。ステップ102で、グラフィクスプロセッサ16は、該グラフィクスプロセッサ16内で実行しているソフトウェアを使用してラスタデータを圧縮する。画像処理ステップが完了すると、圧縮されたピクセルブロックが、標準的なネットワークラインを介して送信するためにホスト又はネットワーキングコントローラに戻される。標準的なネットワークラインを介した送信は、高速な計算を可能とし得るものである。更に、標準的なネットワークラインを介した送信は、ホストが高い性能レベルで動作することを可能にする。
【００１８】
ステップ104で、圧縮されたラスタデータがクライアント装置30に送信される。ステップ106で、圧縮された画像データがクライアント装置30によって受信され、ステップ108で該クライアント装置30において解凍された後にステップ110で表示される。
【００１９】
解凍プロセスでグラフィクスプロセッサを使用することも可能である。かかる一実施形態を図５に示す。図５のクライアント装置30では、プロセッサ12は、グラフィクスプロセッサ16、ネットワークインタフェイス18、記憶装置20、及びシステムメモリ24に接続される。ネットワークインタフェイス18は、ネットワーク32に接続される。一実施形態では、プロセッサ12は、PCIバスを介してネットワークインタフェイス18及び記憶装置20と通信する。
【００２０】
一実施形態では、グラフィクスプロセッサ16は、ディスプレイ22及びローカルメモリ26に接続され、及びAGPを介してプロセッサ12及びシステムメモリ24と通信する。別の実施形態では、グラフィクスプロセッサ16は、PCI Expressを使用してプロセッサ12及びシステムメモリ24と通信する。他の周辺機器相互接続方式を使用することも可能である。
【００２１】
図示する実施形態では、ホストコンピュータ34は、ラスタデータをクライアント装置30に送信する前に圧縮する。一実施形態では、圧縮は、圧縮ソフトウェアを実行するグラフィクスプロセッサにより実行される。別の実施形態では、プロセッサ12が、かかるソフトウェアを実行する。
【００２２】
図４に関して説明したように、グラフィクスプロセッサ16は、圧縮された画像データをステップ106で受信し、ステップ108で解凍を行い、その結果をステップ110でディスプレイ22上に表示する。この場合も、グラフィクスプロセッサ16はチップセットの一部とすることが可能である（例えば、上述したような一体化ソリューション）。
【００２３】
上述の手法により、専用ハードウェアを用いることなく、また実質的にホストコンピュータからサイクルを奪うことなく、より高性能のリモートコンピューティングを行うことが可能となる。これにより、リモートコンピューティングの性能を最大限にすると共に、コストを最小限にすることが可能となる。更に、解凍作業をCPUからグラフィクスプロセッサに肩代りさせることにより、リモートクライアントを、より単純で、より低電力で、及びより低コストのものにすることが可能となる。
【００２４】
上記説明において、「コンピュータ」なる用語は、メインプロセッサとは別個のプログラム可能なグラフィックプロセッサを有する任意のデジタル又はアナログデータ処理装置を含むように定義されるものである。例えば、「コンピュータ」には、パーソナルコンピュータ、ワークステーション、セットトップボックス、メインフレーム、サーバ、スーパーコンピュータ、及びラップトップが含まれる。
【００２５】
コンピュータにより読み出しを行うことが可能な媒体を含む物品の例として、フロッピーディスク、ハードドライブ、CD-ROM若しくはDVDメディア、又は他の任意のリード／ライト若しくはリードオンリーメモリデバイスが挙げられる。
【００２６】
上記説明は、例示的なものであって限定的なものではない。上記説明を検討することで当業者には他の多くの実施形態が明らかとなろう。
【００２７】
読み手が技術的な開示の性質及び要旨を即座に判断することができるように、要約書を、米国特許法施行規則第1.72条第(b)項に準拠するように提供する。それは、各請求項の範囲又は意味を解釈し又は限定するために使用されるものではないという認識のもとに提出される。
【００２８】
上述の実施形態の説明では、本開示を簡素化する目的のために様々な特徴を１つの実施形態にグループ化した。本開示の方法は、特許請求される実施形態が各請求項において明示的に列挙される特徴よりも多くの特徴を有するということを反映するものとして解釈されるべきではない。このため、特許請求の範囲は実施形態の説明に組み込まれ、各請求項は別個の例示的な実施形態として独立したものである。
【図面の簡単な説明】
【００２９】
【図１】リモートコンピューティングを実行するために使用することが可能であるコンピュータの実施形態を示す図である。
【図２】リモートコンピューティングを実行するために使用することが可能であるコンピュータの実施形態を示す図である。
【図３】リモートコンピューティングシステムの一実施形態を示す図である。
【図４】一実施形態によるリモートコンピューティングの速度を上昇させる方法を示す図である。
【図５】リモートコンピューティングシステムの別の実施形態を示す図である。
【図１】
2008526107.tif 000003
【図２】
2008526107.tif 000004
【図３】
2008526107.tif 000005
【図４】
2008526107.tif 000006
【図５】
2008526107.tif 000007
【国際調査報告】
2008526107.tif 000008
2008526107.tif 000009
2008526107.tif 000010