(57)【特許請求の範囲】
【請求項１】
サーバ装置において生成された表示データをクライアント装置へ送信しその表示画面に表示させるようにしたコンピュータシステムにおけるサーバ装置であって、
各々が、前記クライアント装置へ送信した前画面の表示データと、前記クライアント装置へ送信する現画面の表示データとを比較して両者の差異を検出する差異検出回路を備えた複数のアクセラレータと、
前記クライアント装置からの要求に応じて前記複数のアクセラレータの各々に割り当てられた描画領域の大きさを前記アクセラレータ毎に算出する描画領域算出手段と、
新たなクライアント装置からの表示要求があったときに、前記描画領域算出手段により算出された描画領域のうち最も小さい描画領域をもつアクセラレータを当該新たなクライアント装置に対して割り当てる割り当て手段と、
を具備することを特徴とするサーバ装置。
【請求項２】
前記各クライアント装置ごとに、前記各描画領域の大きさと、前記各アクセラレータとを対応付けたテーブルを有することを特徴とする請求項１記載のサーバ装置。
【請求項３】
前記テーブルは、前記アクセラレータに対応付けられた前記描画領域の色数をさらに有し、前記描画領域算出手段は、前記色数を各アクセラレータごとに集計することを特徴とする請求項２記載のサーバ装置。
【請求項４】
サーバ装置において生成された表示データをクライアント装置へ送信しその表示画面に表示させるようにしたコンピュータシステムにおけるサーバ装置であって、
複数のアクセラレータと、
前記クライアント装置からの要求に応じて前記複数のアクセラレータの各々に割り当てられた描画領域の大きさを前記アクセラレータ毎に算出する描画領域算出手段と、
新たなクライアント装置からの表示要求があったときに、前記描画領域算出手段により算出された描画領域のうち最も小さい描画領域をもつアクセラレータを当該新たなクライアント装置に対して割り当てる割り当て手段と、
を具備することを特徴とするサーバ装置。
【請求項５】
前記各クライアント装置ごとに、前記各描画領域の大きさと、前記各アクセラレータとを対応付けたテーブルを有することを特徴とする請求項４記載のサーバ装置。
【請求項６】
前記テーブルは、前記アクセラレータに対応付けられた前記描画領域の色数をさらに有し、前記描画領域算出手段は、前記色数を各アクセラレータごとに集計することを特徴とする請求項５記載のサーバ装置。
【請求項７】
サーバ装置において生成された表示データをクライアント装置へ送信しその表示画面に表示させるようにしたコンピュータシステムにおいて、
各々が、前記クライアント装置へ送信した前画面の表示データと、前記クライアント装置へ送信する現画面の表示データとを比較して両者の差異を検出する差異検出回路を備えた複数のアクセラレータを具備し、
前記サーバ装置のコンピュータを、
前記クライアント装置からの要求に応じて前記複数のアクセラレータの各々に割り当てられた描画領域の大きさを前記アクセラレータ毎に算出する描画領域算出手段、
新たなクライアント装置からの表示要求があったときに、前記描画領域算出手段により算出された描画領域のうち最も小さい描画領域をもつアクセラレータを当該新たなクライアント装置に対して割り当てる割り当て手段、
として機能させるようにしたコンピュータ読み込み可能なサーバ制御プログラム。
【請求項８】
前記各クライアント装置ごとに、前記各描画領域の大きさと、前記各アクセラレータとを対応付けたテーブルを有することを特徴とする請求項７記載のサーバ制御プログラム。
【請求項９】
前記テーブルは、前記アクセラレータに対応付けられた前記描画領域の色数をさらに有し、前記描画領域算出手段は、前記色数を各アクセラレータごとに集計することを特徴とする請求項８記載のサーバ制御プログラム。
【請求項１０】
サーバ装置において生成された表示データをクライアント装置へ送信しその表示画面に表示させるようにしたコンピュータシステムにおいて、
複数のアクセラレータを具備し、
前記サーバ装置のコンピュータを、
前記クライアント装置からの要求に応じて前記複数のアクセラレータの各々に割り当てられた描画領域の大きさを前記アクセラレータ毎に算出する描画領域算出手段、
新たなクライアント装置からの表示要求があったときに、前記描画領域算出手段により算出された描画領域のうち最も小さい描画領域をもつアクセラレータを当該新たなクライアント装置に対して割り当てる割り当て手段、
して機能させるようにしたサーバ制御プログラム。
【請求項１１】
前記各クライアント装置ごとに、前記各描画領域の大きさと、前記各アクセラレータとを対応付けたテーブルを有することを特徴とする請求項１０記載のサーバ制御プログラム。
【請求項１２】
前記テーブルは、前記アクセラレータに対応付けられた前記描画領域の色数をさらに有し、前記描画領域算出手段は、前記色数を各アクセラレータごとに集計することを特徴とする請求項１１記載のサーバ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ装置において生成された表示データをクライアント装置へ送信しその表示画面に表示させるようにしたコンピュータシステムにおけるサーバ装置及びサーバ制御プログラムに関する。
【背景技術】
【０００２】
近年、サーバベースコンピューティングと呼ばれる技術思想が提案されている。サーバベースコンピューティングとは、端末などのクライアント装置とサーバ装置とがネットワークを介して相互に接続されたシステムにおいて、クライアント装置がサーバ装置に対してサービス要求を行うと、当該サーバ装置はクライアント装置からのサービス要求に基づいて、データの管理及び特定のアプリケーションプログラムを動作させるというものである。
【０００３】
クライアント装置は、使用者のキーやマウスなどの操作情報をネットワークを介してサーバ装置へ送るとともに、サーバ装置から受け取ったデータを表示させる。クライアント装置は、ネットワーク機器、表示装置、マウスやキーボードなどの入力装置を備えているだけでよく、データをクライアント装置内に持たないためシンクライアントと呼ばれる。シンクライアントはハードディスクなどのストレージを不要かつ、アプリケーションプログラムの実行を行わないために必要となる処理の負荷は軽い。
【０００４】
企業はベースサーバベースコンピューティングを導入することにより、データやアプリケーションプログラムなどの資源をサーバ側で一元管理できるため、運用コストを削減することができる。また、クライアント装置は従来のパソコンに比べて安価に調達することができるという利点がある。セキュリティ面においても、サーバ装置内のデータへのアクセス制限をかけたり、アクセスログを取ったりすることにより、情報への不正アクセスのリスクを減らすことができる。ウイルスに対してもサーバ装置で一括対処することが可能となる。
【０００５】
特表平２００４−５０３８６２号は、シンクライアントを備えたコンピュータシステムにおいて、サーバ側で実行させるアプリケーションソフトの表示データをクライアント装置に送信して表示する構成を開示している。
【特許文献１】特表２００４−５０３８６２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来のサーバ装置では、クライアント装置に送信する表示データをソフトウェア処理により生成しているのでサーバ装置のＣＰＵに負荷がかかり、特に、サーバ装置が複数のアクセラレータを備えている場合には当該複数のアクセラレータを最適に制御する方法については何ら考慮されていなかった。
【０００７】
本発明はこのような課題に着目してなされたものであり、その目的とするところは、各クライアントに応じて複数のアクセラレータを最適に制御してアクセラレータの使用効率を高めることができるコンピュータシステムにおけるサーバ装置及びサーバ制御プログラムを提供することにある。
【課題を解決するための手段】
【０００８】
上記の目的を達成するために、本発明の請求項１に係る発明は、サーバ装置において生成された表示データをクライアント装置へ送信しその表示画面に表示させるようにしたコンピュータシステムにおけるサーバ装置であって、各々が、前記クライアント装置へ送信した前画面の表示データと、前記クライアント装置へ送信する現画面の表示データとを比較して両者の差異を検出する差異検出回路を備えた複数のアクセラレータと、前記クライアント装置からの要求に応じて前記複数のアクセラレータの各々に割り当てられた描画領域の大きさを前記アクセラレータ毎に算出する描画領域算出手段と、新たなクライアント装置からの表示要求があったときに、前記描画領域算出手段により算出された描画領域のうち最も小さい描画領域をもつアクセラレータを当該新たなクライアント装置に対して割り当てる割り当て手段と、を具備する。
【発明の効果】
【００２０】
請求項１に記載の発明によれば、各クライアントに応じて複数のアクセラレータを最適に制御、すなわち、クライアントの描画領域に応じてアクセラレータにかかる負荷を判別して、アクセラレータの割り当てを最適化したので、アクセラレータの使用効率を高めることができる。これによって各クライアントに対する応答速度を高めることができ、ひいてはクライアントの接続台数を増やすことが可能になる。
【発明を実施するための最良の形態】
【００２２】
以下、図面を参照して本発明の実施形態を詳細に説明する。図１は、本発明の実施形態に係るサーバ装置１０と複数のクライアント装置２０ａ，２０ｂ，…（以下では代表して２０で示す）とから構成されるコンピュータシステムの概略構成を示すブロック図である。サーバ装置１０と複数のクライアント装置２０は、例えばＬＡＮ(Local Area Network)やＷＡＮ(Wide Area Network)からなるネットワークＮ上で接続される。
【００２３】
サーバ装置１０は、文書作成処理プログラム，表計算処理プログラム，メール処理プログラム，インターネット接続処理プログラム、Ｗｅｂ表示プログラムなど、複数のアプリケーションプログラムを格納しており、クライアント装置２０からの操作入力信号に応じて対応するアプリケーションプログラムを起動しその処理を実行する。
【００２４】
このサーバ装置１０において、起動されたアプリケーションプログラムの実行に伴い生成された表示データ（描画データ）は、各クライアント装置２０に対応して適宜割り当てられる回路ボード上のアクセラレータ回路１０１ａ，１０１ｂ，…によって転送用の表示データに変換されると共に、当該表示データの内容やクライアント装置２０との通信状態に応じた最適な圧縮方式で圧縮そして暗号化され、アクセス元のクライアント装置２０へ送信される。
【００２５】
一方、クライアント装置２０は、前記サーバ装置１０から送信された表示データを、内部に配置された回路ボード上のアクセラレータ回路２０１ａ，２０１ｂ，…によりデコードし、表示部に表示する。
【００２６】
つまり、このコンピュータシステムにおける各クライアント装置２０は、何れもキーボード及びマウスなどのユーザ操作に応じた入力機能とＬＣＤ表示部及びプリンタなどの出力機能を有していれば、独自のアプリケーション機能やデータファイルの管理機能を持つ必要がない。
【００２７】
そして、クライアント装置２０からの操作入力信号に応じてサーバ装置１０にて起動実行される各種の処理に伴い生成されたデータファイルは、当該サーバ装置１０内あるいは該サーバ装置１０にて接続管理される磁気ディスクなどの記憶装置にユーザアカウント毎あるいは共有ファイルとして記憶され保存される。
【００２８】
ここで、前記サーバ装置１０のアクセラレータ回路１０１における転送用表示データの生成機能について、その概要を説明する。
【００２９】
図２は、本コンピュータシステムのサーバ装置１０にて生成された描画データのクライアント装置２０への転送表示状態を示す図であり、同図（Ａ）はサーバ装置１０における描画データの変化状態を示す図、同図（Ｂ）は描画データ変化時の転送用描画データを示す図、同図（Ｃ）は転送された描画データのクライアント装置２０における表示出力状態を示す図である。
【００３０】
サーバ装置１０において、起動中のアプリケーションプログラムに従い既に生成されクライアント装置２０へ転送されていた描画データ（変化前）Ｇが、アプリケーションプログラムの動作に従い描画データ（変化後）Ｇ′に変化した場合、まず変化後の描画データＧ′における描画データの変化部分Ｐに応じた領域Ｑ′が切り出され、この切り出された領域Ｑ′の描画データは、アクセラレータ回路１０１により図２（Ｂ）に示すような転送用描画データＨに変換される。
【００３１】
この転送用描画データＨは、アクセラレータ回路１０１により、前記変化後の描画データＧ′からその変化部分Ｐに応じて切り出された領域Ｑ′と変化前の描画データＧにおける同領域Ｑとの画像比較により、そのうちの背景一致領域Ｒが透過の描画データＳ（書き換え不要な透過色データ）に変換されて生成される。この転送用描画データＨを受信したクライアント装置２０では、既に受信して表示していた変化前描画データＧ上における前記画像変化の領域Ｑ′に対応する座標位置で、前記新たに受信した転送用描画データＨを透過の画像データＳを除いて書き込むことで、変化後の描画データＧ′を含めて表示させることができる。
【００３２】
なお、前記サーバ装置１０のアクセラレータ回路１０１により生成された転送用描画データＨは、当該描画データの内容（色数）やそのときのクライアント装置２０との通信状態（応答速度）に応じて選択される圧縮効率及び画像品質の両面において最適な圧縮方式で圧縮されて転送されるので、描画品質を低下させることなしに、描画データの転送量を更に少なくすることができる。
【００３３】
図３は、本コンピュータシステムのサーバ装置１０において変化後の描画データＧ′の領域Ｑ′に基づきアクセラレータ回路１０１により生成処理される転送用描画データＨを詳細に示す図である。
【００３４】
例えば図２（Ａ）で示したように、サーバ装置１０において処理される１画面の描画データＧ（Ｇ′）の領域サイズが１２８０×８００ピクセルである場合に、変化後の描画データＧ′における画像変化部分Ｐを含む領域Ｑ′は、図３（Ａ）に示すように、１６×１６ピクセル＝１タイル（Ｔ）とするタイル単位を基準に切り出される。
【００３５】
なお、前記変化後描画データＧ′の画像変化部分Ｐを含む領域Ｑ′において、水平方向に一列分の各タイルＴの領域をまとめて１ブロックと称する。
【００３６】
また、前記領域Ｑ′は、画像変化部分Ｐを水平および垂直方向にきり出した矩形の領域Ｑ′としているが、水平方向にのみ切り出したその領域サイズ（横）が描画データＧ（Ｇ′）自体の領域サイズである帯状の領域Ｑ′としてもよい。
【００３７】
アクセラレータ回路１０１では、前記画像変化部分Ｐを含む領域Ｑ′をタイル単位で変化前描画データＧの同位置の領域Ｑと画像比較し、そのうちの背景一致領域Ｒの各画像ピクセルを、図３（Ｂ）に示すように、透過の画像データＳ（書き換え不要な色データ）に変換する。そして、１タイル（Ｔ）の全領域が透過色データＳに変換された透過色タイルＳoについては非転送とし、画像変化部分Ｐを含んだ各タイルだけを変化前描画データＧとの差分領域を最適圧縮方式で圧縮処理して当該各タイルの表示画面上の座標位置と共にクライアント装置２０へ転送する。その結果、前記画像変化部分Ｐを含む領域Ｑ′のうち、転送用描画データＨの部分がクライアント装置２０へ転送されることになる。
【００３８】
クライアント装置２０のアクセラレータ回路２０１では、変化前描画データＧに対してタイル単位で圧縮転送されてくる転送用描画データＨをデコード後、当該各タイルの座標位置で、単に透過色データＳに変換された画像ピクセルを除いて書き込むだけで、サーバ装置１０にて生成された変化後の描画データＧ′を表示できる。
【００３９】
サーバ装置１０のアクセラレータ回路１０１において、生成された転送用描画データＨは最適圧縮・暗号化されてクライアント装置２０へ転送されるが、例えばＧＩＦ(Graphics Interchange Format)／ＰＮＧ(Portable Network Graphics)の圧縮方式では、圧縮対象となる画像データを構成する各画像ピクセルが同一色で隣接し連続していればいるほどその画質を落とさずに圧縮効率を高められるので、上述したように転送用描画データＨの中で透過色データＳに変換されている描画データ領域の圧縮率は非常に高くなる。
【００４０】
このためサーバ装置１０からクライアント装置２０へ転送する描画データの転送データ量を描画品質を低下させずに非常に少なくできるばかりか、その転送用描画データＨをハードウェアとしてのアクセラレータ回路１０１において生成し圧縮できるので、サーバ装置１０での処理負担を大幅に軽減でき、クライアント装置２０ａ，２０ｂ，…の増設などに容易に対応できるようになる。
【００４１】
図４は、本コンピュータシステムにおけるサーバ装置１０の回路構成を示すブロック図である。
【００４２】
サーバ装置１０は、コンピュータとしてのＣＰＵ１０２を備え、このＣＰＵ１０２には、バスインターフェース１１２及び高速バス１０３を介してＲＯＭ１０４、ＲＡＭ１０５、表示装置１０６が接続されると共に、前記複数のアクセラレータ回路１０１が接続される。この複数のアクセラレータ回路１０１にはそれぞれ複数のＶＲＡＭ１０７が接続される。
【００４３】
また、ＣＰＵ１０２には、ノーマルバス１０８を介してキーボードなどの入力部１０９、外部記憶ＨＤＤ(Hard Disk Drive)１１０、クライアント装置２０との送受信制御部１１１が接続される。
【００４４】
ＣＰＵ１０２は、ＲＯＭ１０４に予め記憶されているシステムプログラムや種々のアプリケーションプログラムに従ってＲＡＭ１０５を作業用メモリとして回路各部の動作を制御するもので、入力部１０９からのキー入力信号や送受信制御部１１１を介して受信されるクライアント装置２０からのユーザ操作に応じた処理指令信号などに応じて前記種々のプログラムが起動・実行される。
【００４５】
このサーバ装置１０において、クライアント装置２０からのユーザ指令信号に応じて起動・実行されるアプリケーションプログラムに従い生成された種々のデータは、例えばそのユーザＩＤに対応付けられて外部記憶ＨＤＤ１１０に記憶され、また表示用の描画データは、アクセラレータ回路１０１においてＶＲＡＭ１０７を使用して転送用描画データＨ（図２，図３参照）に変換され、最適圧縮・暗号化された後、送受信制御部１１１からクライアント装置２０へ転送されて表示出力される。
【００４６】
図５は、本コンピュータシステムのサーバ装置１０におけるアクセラレータ回路１０１の回路構成を示すブロック図である。
【００４７】
このアクセラレータ回路１０１では、ＣＰＵ１０２からの初期設定により初期設定レジスタ１０１ｂがセットされる。ここでは、接続される各クライアントＣｎごとに、その表示構造（１画面の高さＨ×幅Ｗ）、色数のセットに加えて、現表示データが格納されるＶＲＡＭ１０７上のメモリ領域１０７ａの指定、前表示データが格納されるＶＲＡＭ１０７上のメモリ領域１０７ｃの指定、スケーリング後の表示データが格納されるＶＲＡＭ１０７上のメモリ領域１０７ｂの指定、アクセラレータ処理データが格納されるＶＲＡＭ１０７上のメモリ領域１０７ｄの指定、バイト数、暗号化の有無（ＯＮ／ＯＦＦ）のセットが行われる。
【００４８】
クライアント装置２０に送信される表示データは以下のようにして生成される。まず、表示データが高速バスインターフェース１０１ａを介してアクセラレータ回路１０１に入力される。この表示データはアクセス調停回路１０１ｇ、ＤＲＡＭアクセス回路１０１ｈを介してＶＲＡＭ１０７上のメモリ領域１０７ａに現表示データとして格納される。次に、ＣＰＵ１０２から処理開始の指令が入力されると倍率変更回路としてのスケーリング回路１０１ｃは、メモリ領域１０７ａに格納されている現表示データを読み出してスケーリング処理（ここでは縮小処理）を実行する。スケーリング処理された表示データはメモリ領域１０７ｂに格納される。また、領域分割回路としてのタイル分割判定回路１０１ｄはＣＰＵ１０２からの指令があると、タイル分割を行う単位としてのタイル数をレジスタに設定する。
【００４９】
次に、比較・圧縮回路１０１ｅは、メモリ領域１０７ａに格納されている現表示データ（スケーリング処理がなされている場合にはメモリ領域１０７ｂに格納されているスケーリング後の表示データ）と、メモリ領域１０７ｃに格納されている前表示データとを読み出してそれぞれの表示データに対してタイル分割判定回路１０１ｄから送られたタイル数に従って分割処理を行い、各タイル毎に両表示データを比較して差異を検出する。そしてこの比較により検出された差異の表示データに対して圧縮処理を施した後、アクセラレータ処理データとしてメモリ領域１０７ｄに格納する。そして、暗号化が設定されている場合には、暗号化回路１０１ｆにおいて暗号化処理が施された後、メモリ領域１０７ｅに格納される。同時に、アクセラレータ回路１０１での一連の処理が終了したことを高速バスインターフェース１０１ａを介してＣＰＵ１０２に通知する。ＣＰＵ１０２はこの通知を受けると、メモリ領域１０７ｄに格納されているアクセラレータ処理データあるいはメモリ領域１０７ｅに格納されている暗号化データを読み出し、クライアント装置２０へ転送する。
【００５０】
なお、上記した表示データの倍率変更、領域分割、前画面と現画面表示データ間の差異の有無の検出は、送信データのデータ量を少なくして転送効率を高めるための処理である。また、倍率変更は、実施形態では縮小の場合を例に説明するが、拡大であってもよい。
【００５１】
図６は、図５に示すスケーリング回路１０１ｃの回路構成を示すブロック図である。スケーリング処理を行うか否かは各クライアント装置２０毎に指定され、スケーリングを行う場合にはスケーリングＯＮがスケーリングＯＮ／ＯＦＦレジスタ２０１に書き込まれ、スケーリングを行わない場合にはスケーリングＯＦＦがスケーリングＯＮ／ＯＦＦレジスタ２０１に書き込まれている。また、スケーリングを実行するときのスケーリング率はスケーリング率設定レジスタ２０２に設定されている。スケーリングＯＦＦが指定されている場合にはスケーリングを行わずただちに比較・圧縮回路１０１ｅに処理が渡される。スケーリングＯＮの場合、読み出しライン数選択回路２０３は、スケーリング率設定レジスタ２０２に設定されているスケーリング率に応じてＶＲＡＭ１０７内のメモリ領域１０７ａから読み出すべき表示データのライン数を選択する。例えば、スケーリング率が１／２ならば２ライン、スケーリング率が１／４ならば４ライン、スケーリング率が１／８ならば８ラインといった具合である。以下では仮にスケーリング率が１／４の場合について説明する。なお、表示データが横１２８０＊縦８００ピクセルからなる場合、１ラインは１２８０＊１ピクセルからなる横一列のピクセル群である。
【００５２】
表示データ読み出し回路２０４は、読み出しライン数選択回路２０３で選択されたライン数（ここでは４ライン）の表示データをメモリ領域１０７ａから読み出して、１２８０ピクセル×８ラインの容量を有するバッファ２０５に格納する。次に、スケーリング演算回路２０６は４×４ピクセルの表示データをスケーリング単位としてスケーリング処理を行って１ピクセルの画像データを取得してラインバッファ２０８に格納する。
【００５３】
横ピクセル数終了判断回路２０９は横ピクセル数が１２８０ピクセルに達したか判別し、１２８０ピクセルに達していなければ＋横ピクセル数回路２０７でスケーリング単位のピクセル（ここでは４ピクセル）を加算して、次の４×４ピクセルの表示データをスケーリング単位としてスケーリング演算回路２０６でスケーリング処理を行う。横ピクセル数終了判断回路２０９で横ピクセル数が１２８０ピクセルに達したことが判別された場合は、スケーリング後表示データ書込み回路２１０により、スケーリング後表示データがスケーリング後表示データ１０７ｂとしてＶＲＡＭ１０７へ書き込まれる。
【００５４】
更に、ライン数終了判断回路２１１は、縦ライン数が８００ラインに達したか判別し、達していなければ＋縦ライン回路２１２で読出しの所定ライン数（ここでは４ライン）を加算して、表示データ読み出し回路２０４は、次のライン（ここでは次の４ライン分）の表示データをメモリ領域１０７ａから読み出して、１２８０ピクセル×８ラインの容量を有するバッファ２０５に格納する。前記ライン数終了判断回路２１１で、縦ライン数が８００ラインに達したことが判別された場合は、比較圧縮回路１０１ｅへ通知し、これにより、比較圧縮回路１０１ｅの動作が開始される。  図７は、図５に示すタイル分割判定回路１０１ｄの回路構成を示すブロック図である。分割方法選択レジスタ３０１にはＣＰＵ１０２によりタイルの分割方法が固定であるか可変であるかがセットされている。また、分割数指定レジスタ３０２にはＣＰＵ１０２により、１タイルの大きさを示すタイル分割数がセットされている。分割方法が固定である場合には、分割数指定レジスタ３０２で指定された分割数（例えば１６×１６）がタイル数設定レジスタ３０５に設定される。
【００５５】
一方、タイル分割方法が可変の場合には、タイル分割・比較回路３０３は、ＣＰＵ１０２によりセットされる描画領域情報レジスタ３０６から描画領域（Ｈ×Ｗ）を読み出し、このデータ量が基準となる比較値３０７と比較して１００ｋバイトよりも大きいか小さいか、あるいは１Ｍバイト以上なのかを判定する。タイル数選択回路３０４はこのときの判定結果に応じて複数の選択値３０８から適切なタイル数を選択する。例えば、データ量が１００ｋバイトよりも小さいときは１６×１６を選択し、１００ｋバイトよりも大きいときは３２×３２を選択し、１Ｍバイト以上ならば６４×６４を選択する。このようにデータ量が大きくなるほど大きな分割数が選択される。ここで選択されたタイル数はタイル数設定レジスタ３０５に設定される。
【００５６】
図８は、図５に示す比較・圧縮回路１０１ｅの回路構成を示すブロック図である。図９は図８に示す比較回路の詳細な構成を示す図である。図８において、レジスタ３５１−１には前表示の描画領域の開始アドレスが格納され、レジスタ３５２−１には前表示の描画領域Ｈ×Ｗのサイズデータが格納されている。また、前表示データ・縦ライン数バッファ３５３−１には前表示データの縦ライン数に関するデータが格納されている。
【００５７】
また、レジスタ３５１−２には現表示の描画領域の開始アドレスが格納され、レジスタ３５２−２には現表示の描画領域Ｈ×Ｗのサイズデータが格納されている。また、現表示データ・縦ライン数バッファ３５３−２には現表示データの縦ライン数に関するデータが格納されている。
【００５８】
比較回路３５５は、前表示の描画領域の開始アドレス、描画領域の大きさ（Ｈ×Ｗ）、縦ラインバッファ数に基づいてメモリ領域１０７ｃから前表示データを読み出すとともに、現表示の描画領域の開始アドレス、描画領域の大きさ（Ｈ×Ｗ）、縦ラインバッファ数に基づいてメモリ領域１０７ａから現表示データを読み出し、１タイル分のデータ毎に比較する処理を行う。
【００５９】
すなわち、図９（Ａ）の比較回路３５５において、ピクセル読み出し回路４０１は、前表示データ・縦ライン数バッファ３５３−１からの前表示データの縦ライン数、現表示データ・縦ライン数バッファ３５３−２からの現表示データの縦ライン数、タイル数設定レジスタ３０５からのタイル数に基づいて、メモリ領域１０７ｃから１タイル分（ここでは１６×１６）の前表示データを読み出すとともに、メモリ領域１０７ａから１タイル分（ここでは１６×１６ピクセル）の現表示データを読み出す。縦×横タイル数並列処理回路４０２では、１ピクセル引き算回路４０２−１を用いて前表示データの画素値と現表示データの画素値の引き算を１タイルを構成する１６×１６ピクセルについて同時に行う。図９（Ａ）では、縦×横タイル数並列処理回路４０２は１ピクセル引き算回路４０２−１を一つ図示し、他の構成を省略したが、１ピクセル引き算回路４０２−１は引き算するピクセル数分備えている。引き算結果が０でないならば当該ピクセルを現表示データとし、引き算結果が０ならば当該ピクセルにフラグを立てる。比較結果は縦×横ライン数・ピクセル・バッファ３５６に格納される。１６×１６ピクセル全部について一致したときには全ピクセル一致検出レジスタ４０４にフラグがセットされる。
【００６０】
１タイル分の表示データについての比較が終了したならば、横ピクセル数・終了判断回路４０５は、描画領域（Ｈ×Ｗ）情報レジスタ３０６からの情報に基づいて処理の終了した横ピクセル数（ここではＭＡＸ１２８０）に達したか否かを判断し、ＮＯならば、横方向＋タイル数カウント回路４０３で１タイルの横方向のピクセル数（ここでは１６）を加算してピクセル読み出し回路４０１に通知する。ピクセル読み出し回路４０１はこれにより、メモリ領域１０７ｃから次の１タイル分の前表示データを読み出すとともに、メモリ領域１０７ａから次の１タイル分の現表示データを読み出す。縦×横タイル数並列処理回路４０２では、上記と同様にして比較処理を行い。その結果を縦×横ライン数・ピクセル・バッファ３５６に格納する。縦×横ライン数・ピクセル・バッファ３５６に格納された比較結果のデータは圧縮回路３５７で圧縮処理し、この圧縮処理が終了したならば、書き換え範囲終了判断回路３５８は描画領域情報レジスタ３０６の描画領域情報に基づいて表示データの書き換え範囲が終了したか否かを判断し、まだ８００ラインに達していないならば＋縦ライン数回路３５０で縦方向のラインをインクリメントして縦方向が８００ラインになるまで上記の処理を行い、８００ラインになったときに処理を終了する。  そして、横ピクセル数・終了判断回路４０５で横ピクセル数がＭＡＸ＝１２８０ピクセルに達したと判断されたときに、縦（タイル値）×横バッファ分の処理が終了となる。
【００６１】
図９（Ｂ）は縦×横ライン数・ピクセル・バッファ３５６の構造の一例を示している。縦×横ライン数・ピクセル・バッファ３５６には、比較回路３５５による比較により、前表示データと現表示データが同じピクセルには「Ｆｌａｇ」が記憶され、前表示データと現表示データが異なるピクセルには現表示データが「現色」として記憶される。
【００６２】
図１０（Ａ）、（Ｂ）は図８に示す圧縮回路３５７の詳細な構成を示すブロック図である。図１０（Ａ）において、縦×横タイル数・読み出し回路４５０は、タイル数設定レジスタ３０５に設定されたタイル数に基づいて縦×横ライン数・ピクセル・バッファ３０６に格納された比較結果データから１タイル分（ここでは１６×１６ピクセル）のデータを読み出す。  図１１は色数カウント回路４５１の詳細な構成を示すブロック図である。図１１において、１ピクセル読み出し回路５０１は、全ピクセル一致検出レジスタ４０４の内容が不一致である場合に、読み出された１タイル分のデータから最初の１ピクセルのデータを読み出す。一致回路５０２は、色数カウント＝０か否かを判断する。初期設定では０に設定されているのでＹＥＳとなり、色レジスタ書込み回路５１１は、読み出された１ピクセルの色を色レジスタ５１２のＮｏ．０の位置に書き込む。同時に、＋１回路５１０を介して初期値０がインクリメントされて色数カウントレジスタ４５３に１が書き込まれる。
【００６３】
このとき、タイル数・終了判断回路５０９は、１タイル分の読み出しが終了したか否かを判断する。最初の１ピクセルを読み出しただけなので判断はＮＯとなり、＋１回路５０３を介して１インクリメントされる。これにより１ピクセル読み出し回路５０１は縦×横タイル数・読み出し回路４５０から２番目の１ピクセルデータを読み出すことになる。色数カウントレジスタ４５３のカウント値は１になっているので、今度は一致回路５０２の判断がＮＯとなる。この場合１ピクセル一致回路５０４は、今回読み出した１ピクセルの色と、色レジスタ読み出し回路５０５により読み出された色レジスタ５１２のＮｏ．０位置の色とが一致するか否かを判断する。ここでＮＯならば＋１回路５０８を介して色レジスタカウンタ５０７の初期値０がインクリメントされて１がセットされる。次に、色数・終了判断回路５０６は色レジスタ５１２の色数が終了か否かを判断する。色レジスタ５１２のＮｏ．０位置の色がすでに読み出されたのでここでの判断はＹＥＳとなる。この場合、色レジスタ書込み回路５１１は今回読み出した１ピクセルの色を色レジスタ５１２のＮｏ．１の位置に書き込む。このとき、＋１回路５１０を介して現在のカウント値１がインクリメントされるので色数カウントレジスタ４５３のカウント値は２になる。
【００６４】
このとき、タイル数・終了判断回路５０９は、１タイル分の読み出しが終了したか否かを判断する。２番目の１ピクセルを読み出したのみなので判断はＮＯとなり、＋１回路５０３を介してインクリメントされる。これによって１ピクセル読み出し回路５０１は縦×横タイル数・読み出し回路４５０から３番目の１ピクセルのデータを読み出すことになる。
【００６５】
このとき色数カウント＝２になっているので、一致回路５０２の判断がＮＯとなる。この場合１ピクセル一致回路５０４は、今回読み出された１ピクセルの色と、色レジスタ読み出し回路５０５により読み出された色レジスタ５１２のＮｏ．０位置の色とが一致するか否かを判断する。ここでＮＯならば＋１回路５０８を介して色レジスタカウンタ５０７のカウント値がインクリメントされて２がセットされる。次に、色数・終了判断回路５０６は色レジスタ５１２の色数が終了か否かを判断する。色レジスタ５１２のＮｏ．１位置にも色が格納されているのでここでの判断はＮＯとなる。この場合、色レジスタ読み出し回路５０５は色レジスタ５１２からＮｏ．１位置の色を読み出して１ピクセル一致回路５０４に入力する。
【００６６】
１ピクセル一致回路５０４は、３番目に読み出した１ピクセルの色と、色レジスタ読み出し回路５０５により読み出された色レジスタ５１２のＮｏ．１位置の色とが一致するか否かを判断する。ここでＮＯならば＋１回路５０８を介して色レジスタカウンタ５０７のカウント値２がインクリメントされて３がセットされる。次に、色数・終了判断回路５０６は色レジスタ５１２の色数が終了か否かを判断する。色レジスタ５１２のＮｏ．０及びＮｏ．１の位置に格納された色はすべて読み出されたのでここでの判断はＹｅｓとなる。この場合、色レジスタ書込み回路５１１は３番目の１ピクセルの色を色レジスタ５１２のＮｏ．２の位置に書き込む。同時に、＋１回路５１０を介して現在のカウント値２がインクリメントされて色数カウントレジスタ４５３のカウント値は３になる。
【００６７】
このとき、タイル数・終了判断回路５０９は、１タイル分の読み出しが終了したか否かを判断する。３番目の１ピクセルを読み出したのみなので判断はＮＯとなり、＋１回路５０３を介して１加算されることにより、１ピクセル読み出し回路５０１は縦×横タイル数・読み出し回路４５０から４番目の１ピクセルのデータを読み出すことになる。
【００６８】
この間に１ピクセル一致回路５０４での判断がＹｅｓになった場合には色数カウントレジスタ４５３及び色レジスタ５１２の内容は変更されることなくタイル数・終了判断回路５０９に処理が移行する。
【００６９】
このようにして、第１６番目のピクセルが１ピクセル読み出し回路５０１によって読み出されて上記の処理が終了すると、タイル数・終了判断回路５０９での判断がＹｅｓとなって１タイルのデータについての処理が終了する。この時点で色レジスタ５１２には異なる種類の色が格納される。また、色数カウントレジスタ４５３には色数の最終的なカウント値が格納されるので１タイルの中に何種類の色が存在するかがわかる。
【００７０】
図１２は、図１１に示す透過色検出回路４５４の詳細な構成を示すブロック図である。図１１において、色レジスタ書込み回路５１１によって新たな色が色レジスタ５１２に順次格納されることを説明した。色レジスタ書込み回路５１１は新たに格納しようとする色を同時に透過色検出回路４５４にも入力する。１ピクセル色下位１２ビット抽出回路５５０は当該１ピクセルの色の下位１２ビットを抽出する。
【００７１】
一方、透過色候補・レジスタ５６０には透過色の候補となる例えば４０９６の色が順次記憶されており、さらに各色に対応して透過色フラグをセットするための領域が予め用意されている。圧縮回路３５７の起動時は透過色フラグは書き込まれていないものとする（初期値０）。透過色候補・レジスタ５６０の中から最上位（０００ｈ）の色が選択されて透明色候補レジスタ５５３にセットされる。
【００７２】
１ピクセル一致回路５５１は１ピクセル色下位１２ビット抽出回路５５０で抽出された下位１２ビットの１ピクセル色と、透過色候補レジスタ５５４にセットされた色とが一致するか否かを判断する。ここでＮＯの場合には＋１回路５５７を介して透過色候補カウンタ５５８のカウント値（初期値０００ｈ）をインクリメントする。これにより透過色候補レジスタ５５４には次の透過色（００１ｈ）がセットされる。
【００７３】
次に終了判断回路５５６で透過色候補・レジスタ５６０に設定された４０９６以上になったか否かを判断する。ここでは最初の０００ｈの色を読み出しただけなので判断がＮＯとなり、次に透過色フラグ判断回路５５５でフラグが立てられている透過色があるか否かを判断する。ここではそのような色はまだ存在しないのでＮＯとなる。次に、１ピクセル一致回路５５１はすでに抽出した１ピクセル色と、透過色候補レジスタ５５４にセットされた透過色（００１ｈ）とが一致するか否かを判断する。ここでＮＯならば、透過色候補カウンタ５５８を１インクリメントして透過色候補レジスタ５５４に次の透過色（００２ｈ）がセットされる。そして、ピクセル一致回路５５１はすでに抽出した１ピクセル色と、透過色候補レジスタ５５４にセットされた透過色（００２ｈ）とが一致するか否かを判断する。ここでＹＥＳならば、透過色フラグ書込み回路５５９はこのときの透過色（００２ｈ）に透過色フラグをセットする。同時に、透明色検出回路・終了判断回路５６１で色レジスタ書込み回路５１１により書き込まれるすべてのピクセルについて透明色の判断が終了したか否かを判断する。ここでは最初のピクセルについてしか判断していないのでＮＯとなり、色レジスタ書込み回路５１１により書き込まれる次の色の下位１２ビットが抽出される。
【００７４】
一方、透過色候補レジスタ５５４にはまだフラグがセットされていない最上位の色（０００ｈ）がセットされる。１ピクセル一致回路５５１は当該次の１ピクセル色と、透過色候補レジスタ５５４にセットされた候補色とが一致するか否かを判断する。以後、上記した手順で処理が行われるが、この時点ですでにフラグが立てられた透明色（０００２ｈ）が存在する。これが透過色フラグ判断回路５５５で検出されることになる。この場合には＋１回路５５７を介して透過色候補カウンタ５５８のカウント値がインクリメントされる。これにより、フラグが立てられた候補色（０００２ｈ）を飛ばした次の候補色が透明色候補レジスタ５５４にセットされて当該次の１ピクセル色と一致するか否かが判断される。
【００７５】
このようにして、１ピクセル一致回路５５１では色レジスタ書込み回路５１１により書き込まれるすべての色と、透過色候補・レジスタ５６０内の候補色とを上位から順に比較して一致するか否かを判断し、一致した候補色に対してはフラグが立てられる。
【００７６】
透過色選択回路５５２はフラグが立てられていない（使用されていない）上位の候補色を選択して、透過色レジスタ５５３にセットする。この時点で透過色検出回路・終了判断回路５６１の判断がＹＥＳとなり処理が終了する。
【００７７】
図１０に戻って、透過色候補・レジスタ５６０の内容は透過色変換回路４５４に入力される。透過色変換回路４５４は、透過色候補・レジスタ５６０の内容を参照して、縦×横タイル数・読み出し回路４５０により読み出された１タイル分の色データのうち使用されていない色を透過色に置き換える変換処理を行い、その結果は縦×横バッファ４５５に格納される。図１０（Ｂ）は当該バッファ４５５に格納された表示データの一例を示す図である。縦×横バッファ４５５には、透過色変換回路４５４により変換された透過色が「透過」として記憶され、その他の現表示データが「現色」として記憶される。
【００７８】
縦×横バッファ４５５の表示データは圧縮方法選択回路４５６に入力される。また、圧縮方法選択回路４５６は、色数カウントレジスタ４５３の色数値を受け取る。また、後述するようにＣＰＵ１０２によりＲＡＷ指定がされている場合にはレジスタ４６０にそれがセットされるのでそのデータも圧縮方法選択回路４５６に入力される。
【００７９】
圧縮方法選択回路４５６は、図１３に示すような圧縮方法決定のためのテーブルを有しており、当該選択回路４５６はこのようなテーブルを参照して色数カウントレジスタ４５３の色数値に応じたエンコード方式を選択する。例えば色数が１または２色であるならばＲＲＥ（Rise and Run Length Encoding）エンコード方式が選択され、３色以上で１２８色未満ならばＰＮＧ方式が選択され、１２８色以上ならばＪＰＥＧエンコード方式が選択される。また、クライアント装置２０側が復号機能を備えていない場合などＲＡＷ指定がされている場合にはエンコード処理は行われない。
【００８０】
このように、色数値に応じてエンコード方式を選択することで圧縮の効率を高めることができる。ここで判断基準として用いられる１２８色は固定ではなく、データ量を減らすために１タイルのサイズに応じて変更することができる。例えば、タイルサイズが３２×３２ならば２５６以上、６４×６４ならば５１２以上が用いられる。
【００８１】
なお、ＪＰＥＧ（Joint Photographic Experts Group）エンコーダ方式は非可逆な圧縮方式なので透明色変換回路４５４での変換処理により得られる表示データ（図１０（Ｂ））ではなく、縦×横タイル数・読み出し回路４５０により読み出された表示データがエンコーダ入力となる。また、クライアント装置２０により圧縮方法が指定されている場合には指定された圧縮方法を用いるようにしてもよい。
【００８２】
次に、ヘッダ付加回路４５７は、図１４に示すような結果データ・ヘッダーフォーマットのテーブルを参照して選択されたエンコード方式に応じて、通し番号、位置情報、高さと幅、エンコード情報、透過色、データ長、転送フラグ（転送する／しない）等の情報を含むヘッダを付加してＶＲＡＭ１０７上のメモリ領域１０７ｄにアクセラレータ処理データとして格納する。
【００８３】
このとき、横ピクセル数・終了判断回路４５９は、横方向の最大ピクセル数（ここでは１２８０）に達したか否かを判断し、ＮＯの場合には、横方向＋タイル数カウンタ回路４５８を介して横方向を１タイル分（１６ピクセル）インクリメントする。これにより縦×横タイル数・読み出し回路４５０は次の１タイル分のデータを読み出す。以下、上記した手順によって処理を行う。そして横ピクセル数・終了判断回路４５９において、横方向の最大ピクセル数（ここでは１２８０）に達したと判断されたときに縦（タイル値）×横バッファ分の処理が終了となる。
【００８４】
この処理の後は、前述したように、図８に戻って、圧縮回路３５７での上記した圧縮処理が終了したならば、書き換え範囲終了判断回路３５８は描画領域情報レジスタ３０６の描画領域情報に基づいて表示データの書き換え範囲が終了したか否かを判断し、まだ８００ラインに達していないならば＋縦ライン数回路３５０で縦方向のラインをインクリメントして縦方向が８００ラインになるまで上記の処理を行い、８００ラインになったときに処理を終了する。
【００８５】
図１５は、ＶＲＡＭ１０７上のフレームバッファ領域テーブルの構成を示す図である。このテーブルには、接続される各クライアント装置２０（そのＩＤを例えば０００、００１、００２とする）ごとに、要求された描画領域の大きさ（高さ（Ｈ）×幅（Ｗ））と、色数と、ボード番号と、ＶＲＡＭ１０７上の描画開始アドレスとが格納されている。各クライアント装置２０ごとに算出された描画領域に対応するメモリ領域が確保される。図１５はボード番号ａｃｃ０に対応するアクセラレータ回路１０１のＶＲＡＭ１０７上に前記描画領域に対応するメモリ領域６００が確保されたようすを示している。
【００８６】
ここで、新たなクライアント装置２０（クライアントＩＤ００３）からの表示要求があった場合、描画領域算出手段としてのＣＰＵ１０２は、各アクセラレータ（ここでは各ボード番号ａｃｃ０、ａｃｃ１、ａｃｃ２）ごとに描画領域の大きさを算出する。そして、割り当て手段としてのＣＰＵ１０２は、図１６に示すように、算出した描画領域のうち最小の描画領域をもつボード番号（ここではａｃｃ０）のアクセラレータ回路１０１を選択して割り当てる。そして、当該アクセラレータ１０１のＶＲＡＭ１０７上に、クライアントＩＤ００３の描画領域に対応するメモリ領域６０１を確保する。
【００８７】
図１７は、フレームバッファ領域テーブルの変形例を示している。このテーブルには、接続される各クライアント装置２０（そのＩＤを例えば０００、００１、００２とする）ごとに、要求された描画領域の大きさ（高さ（Ｈ）×幅（Ｗ））と、色数と、ボード番号と、ＲＡＭ１０５上の描画開始アドレスと、各アクセラレータ回路の使用状態を示すステータス情報とが格納されている。ＲＡＭ１０５上には、各クライアント装置２０ごとに算出された描画領域に対応するメモリ領域６５０、６５１、６５２が確保される。
【００８８】
ここで、新たなクライアント装置２０（クライアントＩＤ００３）からの表示要求があった場合、描画領域算出手段としてのＣＰＵ１０２は、各アクセラレータ（ここでは各ボード番号ａｃｃ０、ａｃｃ１、ａｃｃ２）の使用状態を検出する。そして、割り当て手段としてのＣＰＵ１０２は、図１８に示すように、各ボード番号ａｃｃ０、ａｃｃ１、ａｃｃ２のうち最も使用頻度が低いボード番号（ここではステータス０をもつａｃｃ２）のアクセラレータ１０１を選択して割り当てる。そして、当該ＲＡＭ１０５上に、クライアントＩＤ００３の描画領域に対応するメモリ領域６５３を確保する。
【００８９】
なお、テーブル内の各ボード番号のアクセラレータの使用状態（ステータス）が同一の場合には、描画領域や色数の大小を比較して最も小さいボード番号のアクセラレータを選択するようにしてもよい。
【００９０】
図１９はサーバ装置１０のＣＰＵ１０２によりソフトウェアを用いて実行されるサーバプロセス処理フローの手順を説明するための図である。まず、サーバ装置２０はイニシャル設定（ステップＳ１）を行うとともに、接続するクライアント装置２０毎のクライアント変数Ｃｎを設定する（ステップＳ１−１）。次に、クライアント装置２０からの認証要求があるか否かを判断し（ステップＳ２）、ここでの判断がＮＯならばステップＳ９に移行し、ＹＥＳならば認証処理（ステップＳ３）を行う。続いて初期設定のためのデータを準備する（ステップＳ４）。具体的には表示領域Ｈ／Ｗ、色数、スケール、圧縮指定の有無、暗号化の有無などに関する初期設定用データを生成する。
【００９１】
次に認証がＯＫか否かを判断し、ＮＯならばステップＳ２に戻り、ＹＥＳならば当該クライアント装置２０に対して所定のＩＤが発行される（ステップＳ６）。次に、各クライアント装置２０のボード割当（アクセラレータ割当）処理を行う（ステップＳ６−１）。この処理の詳細については後述する。次に、アクセラレータ回路１０１内部の初期設定レジスタ１０１ｂにステップＳ４で生成した各種データを設定する（ステップＳ７）。具体的には、接続される各クライアントＣｎごとに、その表示構造（１画面の高さＨ×幅Ｗ）、色数のセット、現表示データが格納されるＶＲＡＭ１０７上のメモリ領域１０７ａの指定、前表示データが格納されるＶＲＡＭ１０７上のメモリ領域１０７ｃの指定、スケーリング後の表示データが格納されるＶＲＡＭ１０７上のメモリ領域１０７ｂの指定、アクセラレータ処理データが格納されるＶＲＡＭ１０７上のメモリ領域１０７ｄの指定、バイト数、暗号化の有無（ＯＮ／ＯＦＦ）のセットが行われる。
【００９２】
次に、スレッドを起動して転送サーバ処理を行う（ステップＳ８）。ここでの処理の詳細については後述する。スレッドとはクライアント装置とデータの授受を行うプログラムである各クライアントごとに起動される。
【００９３】
次に、ステップＳ９に進んで起動しているスレッドを終了するか否かを判断し、ＮＯならばステップＳ２に戻り、次のクライアント装置２０からの認証要求があるまで待つ。また、ステップ９の判断がＹＥＳになったならばステップＳ６で発行した当該クライアント装置のＩＤを削除し（ステップＳ１０）、次に、本サーバプロセス処理を終了するか否かを確認し（ステップＳ１１）、ＮＯならばステップＳ２に戻って次のクライアント装置２０からの認証要求があるまで待つ。また、ステップＳ１１の判断がＹＥＳならば本サーバプロセス処理を終了する。
【００９４】
図２０は図１９のクライアントのボード割当処理（ステップＳ６−１）の詳細を示すフローチャートである。まず、サーバ装置１０内のＣＰＵ１０２はボード（アクセラレータ回路１０１）の数を算出する（ステップＳ１５０）。次に、ＣＰＵ１０２は初期設定されているクライアント変数Ｃｎからクライアント装置２０の合計数ｎを算出する（ステップＳ１５１）。次にカウンタ変数ｉに０を代入する（ステップＳ１５２）。次に、各クライアント装置２０の描画領域の大きさＳを計算する（ステップＳ１５３）。ここでは、Ｓ＝Ｈ（高さ）×Ｗ（幅）×色数の値を計算する。なお、Ｈ（高さ）×Ｗ（幅）のみあるいは色数のみの値を描画領域の大きさＳとして用いてもよい。
【００９５】
次に、各ボード（アクセラレータ回路１０１）ごとに描画領域の大きさの和Ｓｕｍ［ｍ］を求める（ステップＳ１５４）。１つのアクセラレータ回路１０１に１つのクライアント装置２０が割り当てられている場合には当該クライアント装置２０の描画領域が求める和Ｓｕｍ［ｍ］となるが、１つのアクセラレータ回路１０１に複数のクライアント装置２０が割り当てられている場合には、各クライアント装置２０の描画領域の和Ｓｕｍ［ｍ］が求める描画領域の大きさになる。ステップＳ１５３とＳ１５４の処理をクライアント合計数ｎに達するまで行い（ステップＳ１５５、Ｓ１５６）、クライアント合計数ｎに達したときに、各ボード（アクセラレータ回路１０１）ごとに集計した和Ｓｕｍ［ｍ］のうち、最も小さい値のボード（アクセラレータ回路１０１）に新たなクライアントＩＤを追加する（ステップＳ１５７）。次に、クライアント変数Ｃｎを新たに作成するとともに、図１６に示すように、フレームバッファ領域テーブルに新たなクライアントに関する情報を追加して（ステップＳ１５８）、処理を終了する。
【００９６】
図２１は図１９の転送サーバ処理の手順を説明するためのフローである。まず、サーバ装置１０内のＣＰＵ１０２は１画面のデータを書き込むための表示領域（Ｈ×Ｗ）をＲＡＭ１０５上に確保する（ステップＳ８０）。次に、サーバ装置１０で起動しているアプリケーションプログラムからの描画命令により上記表示領域にデータの書込みがあったか否かを判断し（ステップＳ８１）、ＹＥＳならば、新たなクライアント装置２０に対するボード（アクセラレータ回路１０１）を選択するボード選択処理を行う（ステップＳ８１−１）。このボード選択処理については後述する。
【００９７】
次に、書き込みがあった描画領域の大きさ（Ｈ×Ｗ）と座標位置ｘ、ｙを検出する（ステップＳ８２）。次に、ＲＡＭ１０５上の上記表示領域に書かれた表示データをＶＲＡＭ１０７上のメモリ領域１０７ａにコピーする。これが図５に示す現表示データとなる。
【００９８】
次に、可変タイルサイズか否かを判断する（ステップＳ８４）。ＹＥＳならば、タイル分割判定回路１０１ｄ内の分割方法選択レジスタ３０１（図７）を可変に設定し（ステップＳ８５）、ＮＯならば当該分割方法選択レジスタ３０１（図７）を固定に設定する（ステップＳ８４−１）。次に、固定設定では分割数指定レジスタ３０２を例えば１６×１６にセットする（ステップＳ８６）。次に、クライアント装置２０からのスケール設定要求があるか否かを判断し（ステップＳ８７）、ＮＯならば後述するステップＳ９０に移行するが、ＹＥＳの場合にはクライアント装置２０からのスケール率をスケール率設定レジスタ２０２（図６）に設定する（ステップＳ８８）。次に、スケーリングＯＮ／ＯＦＦレジスタ２０１（図６）にスケーリングＯＮフラグを設定する（ステップＳ８９）。
【００９９】
上記の処理が済んだ後に、アクセラレータ回路１０１での処理が開始される（ステップＳ９０）。すなわち、ＣＰＵ１０２（図４）からスケーリング回路１０１ｃ（図５）及びタイル分割判定回路１０１ｄ（図５）に処理開始の指令が送られる。次にＣＰＵ１０２はアクセラレータ回路１０１での処理が終了するまで待機し（ステップＳ９１）、処理が終了したときには転送フラグが「転送しない」に設定されているか否かを判断する（ステップＳ９１−１）。ここでＹＥＳならばステップＳ９４に移行する。また、ＮＯならばクライアント変数Ｃｎのステータスを０にし（ステップＳ９１−２）、その後にステップＳ９２に移行する。
【０１００】
ステップＳ９２ではＶＲＡＭ１０７上のメモリ領域１０７ｄに記憶されているアクセラレータ処理データを読み出してクライアント装置２０で表示される描画データを含む通信パケットを生成する。暗号化回路１０１ｆで暗号化処理を行った場合にはメモリ領域１０７ｅに記憶されている暗号化データを読み出して通信パケットを生成する。
【０１０１】
次に、クライアント装置２０への通信パケットの送信を開始する（ステップＳ９３）。そしてすべての通信パケットが送信されるのを確認し（ステップＳ９４）、これが確認されたときには当該クライアント装置２０から接続終了の通知があったか否かを判断し（ステップＳ９５）、ＮＯの場合にはステップ８１に戻って以降の処理を続ける。ステップＳ９５の判断がＹＥＳの場合には接続終了処理（ステップＳ９６）を行って当該クライアント装置２０との通信を終了する。
【０１０２】
図２２は図２１のボード選択処理（ステップＳ８１−１）の詳細を示すフローチャートである。まず、カウンタ変数ｉに０を代入する（ステップＳ３０１）。次に、図１８のフレームバッファ領域テーブルを参照して、接続クライアントＩＤごとにステータス情報が１になっているか否かを判断する（ステップＳ３０２）。ここでＹＥＳの場合には、各ボード（アクセラレータ回路１０１）ごとに描画領域の大きさの和ＳＳ［ｍ］を求める（ステップＳ３０３）、１つのアクセラレータ回路１０１に１つのクライアント装置２０が割り当てられている場合には当該クライアント装置２０の描画領域が求める和ＳＳ［ｍ］となるが、１つのアクセラレータ回路１０１に複数のクライアント装置２０が割り当てられている場合には、各クライアント装置２０の描画領域の和ＳＳ［ｍ］が求める描画領域の大きさになる。ステップＳ３０２とＳ３０３の処理をクライアント合計数ｎに達するまで行い（ステップＳ３０４、Ｓ３０５）、クライアント合計数ｎに達したときに、各ボード（アクセラレータ回路１０１）ごとに集計した和ＳＳ［ｍ］のうち、最も小さい値のボード番号（アクセラレータ回路１０１）ａｃｃ［ｍ］を選択する（ステップＳ３０６）。次に、選択したボードにクライアントＩＤを追加して、ステータスを１にする（ステップＳ３０７）。
【０１０３】
図２３は、本コンピュータシステムにおけるクライアント装置２０の回路構成を示すブロック図である。クライアント装置２０は、コンピュータとしてのＣＰＵ６０１を備え、このＣＰＵ６０１には、バス６１１を介してＲＯＭ６０２、ＲＡＭ６０３が接続されると共に、アクセラレータ回路６０４が接続される。このアクセラレータ回路６０４にはＶＲＡＭ６０５が搭載され、このＶＲＡＭ６０５に書き込まれた描画データが表示装置６０６に出力されて表示される。
【０１０４】
また、ＣＰＵ６０１には、バス６１１を介してキーボードなどの入力部６０８と外部記憶ＨＤＤ(Hard Disk Drive)６０７と、認証デバイス，バーコードリーダー，ＣＣＤカメラ，プリンタ，無線デバイスなどの各種の外部機器を接続するためのＵＳＢ／パラレル／シリアルインターフェース６０９と、前記サーバ装置１０との間でのデータの送受信を制御する送受信制御部（有線／無線）６１０とが接続される。
【０１０５】
ＣＰＵ６０１は、ＲＯＭ６０２に予め記憶されているシステムプログラムに従ってＲＡＭ６０３を作業用メモリとし回路各部の動作を制御するもので、入力部６０８からのキー入力信号や送受信制御部６１０を介して受信されるサーバ装置１０からのアプリケーション応答信号，転送描画データなどに応じて前記システムプログラムが起動・実行される。
【０１０６】
このクライアント装置２０において、前記サーバ装置１０におけるアプリケーションプログラムを実行させて生成した種々のデータは、適宜、外部記憶部（ＨＤＤ）６０７に読み込ませて記憶させ、また生成転送された表示用の描画データは、アクセラレータ回路６０４においてデコードされてＶＲＡＭ６０５に書き込まれ表示装置６０６で表示出力される。
【０１０７】
図２４は図２３に示すアクセラレータ回路６０４の詳細な構成を示す図である。暗号復号回路７０１はサーバ装置１０から送られてきた１タイル分の圧縮・暗号化データファイルを復号する。復号されたデータファイルはヘッダデータ７０２−１と描画データ７０２−２としてセットされる。圧縮デコード回路７０４はヘッダデータ７０２−１に書き込まれている圧縮方式に対応する伸長方式により描画データをデコードする。デコードされた描画データは、領域座標レジスタ７０３にセットされた描画データのＨ×ＷのサイズとＸＹ座標に基づいてＶＲＡＭ７０６上のメモリ領域７０７に描画される。
【０１０８】
図２５は、クライアント装置２０における処理手順を示すフローチャートである。まず、初期設定（イニシャル設定）を行う（ステップＳ１０１）。ここで表示構造としてＨ×Ｗ（高さ×幅）のサイズと色数とが設定される。次に、サーバ装置１０との接続を行うか否かを判断し（ステップＳ１０２）、ＮＯの場合にはＹＥＳになるまで待機する。ＹＥＳになったならばサーバ装置１０に対して接続要求を送信する（ステップＳ１０３）。サーバ装置１０はこれに対してクライアント装置２０からの接続が正当であるか否かの判断を行うが、クライアント装置２０はサーバ装置１０から認証ＯＫの通知があるまで待機し（ステップＳ１０４）、認証ＯＫの通知を受け取ったならば、ステップＳ１０１で設定した初期情報をサーバ装置１０に対して送信する（ステップＳ１０５）。次に、サーバ装置１０との間で通信を行うが、その間、サーバ装置１０との間の通信制御を行う（ステップＳ１０６）。当該通信が終了したならば接続を終了するか否かを確認し（ステップＳ１０７）、ＹＥＳならば接続終了処理（ステップＳ１０８）を行って処理を終了する。
【０１０９】
図２６は、図２５におけるサーバとの通信制御の詳細を示すフローチャートである。まず、キーボードあるいはマウスなどが操作することにより何らかのイベントが発生するまで待機する（ステップＳ２０１）。イベントが発生したならば、当該イベントがネットワークを介したサーバ装置１０からのデータ受信か否かを判断し（ステップＳ２０２）、ＮＯならば当該イベントがキーボードの操作か否かを判断する（ステップＳ２０３）。ここでＮＯならば当該イベントがマウスあるいはタッチパネルの操作か否かを判断し（ステップＳ２０４）、ＮＯならばシリアル接続を介してデータ入力があったか否かを判断し（ステップＳ２０５）、ＮＯならばステップＳ２０１に戻る。
【０１１０】
一方、ステップＳ２０２においてＹＥＳならば、サーバ装置１０から受信したデータが暗号化データか否かを判断し（ステップＳ２０６）、ＮＯならばただちにステップＳ２０９に移行し、ＹＥＳならば当該暗号化データを復号すべく内部の暗号復号回路７０１へ転送する（ステップＳ２０７）。次に、この暗号復号回路７０１から復号データを抽出し（ステップＳ２０８）、プロトコルヘッダの解析を行う（ステップＳ２０９）。次に、当該ヘッダから抽出した描画領域（Ｈ×Ｗ）、座標ｘ、ｙをレジスタにセットする（ステップＳ２１０）。次に、ヘッダ及び描画データをアクセラレータ回路６０４にセットする（ステップＳ２１１）。これによりアクセラレータ回路６０４で所定の処理が行われた後、表示装置６０６に表示される。
【０１１１】
また、ステップＳ２０３での判断がＹＥＳならば、操作されたキーボードに対応するキーコードを受信する（ステップＳ２１２）。次に、このキーコードに基づいて送信データを生成する（ステップＳ２１３）。次に、送信データを暗号化するか否かを判断し（ステップＳ２１４）、ＮＯならばただちにステップＳ２１７に移行する。ステップＳ２１４の判断がＹＥＳならば、アクセラレータ回路６０４内の暗号化回路に転送して暗号化を行う（ステップＳ２１５）。次に、暗号化回路から暗号化した送信データを抽出して（ステップＳ２１６）、パケット通信処理を行い（ステップＳ２１７）、転送命令に従って送信データをサーバ装置１０へ転送する（ステップＳ２１８）。その後、ステップＳ２０１に戻る。
【０１１２】
また、ステップＳ２０４の判断がＹＥＳならば、マウス操作あるいはタッチパネル操作の内容に応じたデータをセットする制御を行う（ステップＳ２１９）。その後はキーボード操作の場合と同様にステップＳ２１３以降の処理を行う。
【０１１３】
また、ステップＳ２０５の判断がＹＥＳならば、入力されたデータを受信する（ステップＳ２２０）。その後はキーボード操作の場合と同様にステップＳ２１３以降の処理を行う。
【０１１４】
上記した実施形態によれば、クライアントの描画領域に応じてアクセラレータにかかる負荷を判別して、アクセラレータの割り当てを最適化したので、アクセラレータの使用効率を高めることができる。これによって各クライアントに対する応答速度を高めることができ、ひいてはクライアントの接続台数を増やすことが可能になる。
【０１１５】
また、アクセラレータの使用状況に応じて、要求があったクライアントに対して最適なアクセラレータを割り当ててアクセラレータの負荷を均一にしたので、アクセラレータの使用効率を高めることができる。これによって各クライアントに対する応答速度を高めることができ、ひいてはクライアントの接続台数を増やすことが可能になる。
【図面の簡単な説明】
【０１１６】
【図１】本発明の実施形態に係るサーバ装置１０と複数のクライアント装置２０ａ，２０ｂ，…とから構成されるコンピュータシステムの概略構成を示すブロック図である。
【図２】本コンピュータシステムのサーバ装置１０にて生成された描画データのクライアント装置２０への転送表示状態を示す図である。
【図３】本コンピュータシステムのサーバ装置１０において変化後の描画データＧ′の領域Ｑ′に基づきアクセラレータ回路１０１により生成処理される転送用描画データＨを詳細に示す図である。
【図４】本コンピュータシステムにおけるサーバ装置１０の回路構成を示すブロック図である。
【図５】本コンピュータシステムのサーバ装置１０におけるアクセラレータ回路１０１の回路構成を示すブロック図である。
【図６】スケーリング回路１０１ｃの回路構成を示すブロック図である。
【図７】タイル分割判定回路１０１ｄの回路構成を示すブロック図である。
【図８】比較・圧縮回路の回路構成を示すブロック図である。
【図９】（Ａ）は図８に示す比較回路の詳細な構成を示す図であり、（Ｂ）は縦×横ライン数・ピクセル・バッファ３５６の構造の一例を示す図である。
【図１０】図８に示す圧縮回路の詳細な構成を示すブロック図である。
【図１１】色数カウント回路４５１の詳細な構成を示すブロック図である。
【図１２】透過色検出回路４５４の詳細な構成を示すブロック図である。
【図１３】圧縮方法決定のためのテーブルを示す図である。
【図１４】結果データ・ヘッダーフォーマットのテーブルの一例を示す図である。
【図１５】フレームバッファ領域テーブルの内容の一例を示す図である。
【図１６】図１５のテーブルに、新たなクライアント装置に対するボード番号を割り当てた状態を示す図である。
【図１７】フレームバッファ領域テーブルの内容の他の例を示す図である。
【図１８】図１７のテーブルに、新たなクライアント装置に対するボード番号を割り当てた状態を示す図である。
【図１９】サーバ装置１０のＣＰＵ１０２によりソフトウェアを用いて実行されるサーバプロセス処理フローの手順を説明するための図である。
【図２０】図１９のボード割当処理フローの詳細を示すフローチャートである。
【図２１】図１９の転送サーバ処理の詳細を示すフローチャートである。
【図２２】図２１のボード選択処理の詳細を示すフローチャートである。
【図２３】本コンピュータシステムにおけるクライアント装置２０の回路構成を示すブロック図である。
【図２４】図２３に示すアクセラレータ回路６０４の詳細な構成を示す図である。
【図２５】クライアント装置２０における処理手順を示すフローチャートである。
【図２６】サーバとの通信制御の詳細を示すフローチャートである。
【符号の説明】
【０１１７】
１０…サーバ装置
１０１…アクセラレータ回路
１０１ｆ…暗号化回路
１０１ｇ…アクセス調停回路
１０１ｈ…ＤＲＡＭアクセス回路
１０７…ＶＲＡＭ
１０２…ＣＰＵ
１０３…高速バス
１０４…ＲＯＭ
１０５…ＲＡＭ
１０６…表示装置
１０７…ＶＲＡＭ
１０８…ノーマルバス
１０９…入力部
１１０…外部記憶ＨＤＤ
１１１…送受信制御部
２０…クライアント装置
６０１…ＣＰＵ
６０２…ＲＯＭ
６０３…ＲＡＭ
６０４…アクセラレータ回路
６０５…ＶＲＡＭ
６０６…表示装置
６０７…外部記憶部
６０８…入力部
６０９…ＵＳＢ／パラレル／シリアルインターフェース
６１０…送受信制御部
【図１】
0004779756.tif 000002
【図２】
0004779756.tif 000003
【図３】
0004779756.tif 000004
【図４】
0004779756.tif 000005
【図５】
0004779756.tif 000006
【図６】
0004779756.tif 000007
【図７】
0004779756.tif 000008
【図８】
0004779756.tif 000009
【図９】
0004779756.tif 000010
【図１０】
0004779756.tif 000011
【図１１】
0004779756.tif 000012
【図１２】
0004779756.tif 000013
【図１３】
0004779756.tif 000014
【図１４】
0004779756.tif 000015
【図１５】
0004779756.tif 000016
【図１６】
0004779756.tif 000017
【図１７】
0004779756.tif 000018
【図１８】
0004779756.tif 000019
【図１９】
0004779756.tif 000020
【図２０】
0004779756.tif 000021
【図２１】
0004779756.tif 000022
【図２２】
0004779756.tif 000023
【図２３】
0004779756.tif 000024
【図２４】
0004779756.tif 000025
【図２５】
0004779756.tif 000026
【図２６】
0004779756.tif 000027