(57)【要約】【課題】クライアント装置に送信する表示データをＣＰＵの負荷を軽減しつつ高速に生成すること。【解決手段】サーバ装置において生成された表示データをクライアント装置へ送信しその表示画面に表示させるようにしたコンピュータシステムのサーバ装置であって、クライアント装置へ送信する現画面の表示データを記憶する現表示メモリ領域１０７ａと、現画面の表示データの倍率を変更するスケーリング回路１０１ｃと、倍率変更された現画面の表示データを複数の表示領域に分割するタイル分割判定回路１０１ｄと、現画面の表示データと、クライアント装置に送信された前画面の表示データとを、タイル分割判定回路１０１ｄで分割された各表示領域毎に比較して両表示データに差異があるか否かを判定する比較・圧縮回路１０１ｅと、を具備し、比較・圧縮回路１０１ｅで差異があると判定された表示領域の表示データをクライアント装置に送信する。【選択図】        図５
2007265209.tif 000002
【特許請求の範囲】
【請求項１】
サーバ装置において生成された表示データをクライアント装置へ送信しその表示画面に表示させるようにしたコンピュータシステムのサーバ装置であって、
前記クライアント装置へ送信する現画面の表示データを記憶する現表示データ記憶手段と、
前記現表示データ記憶手段に記憶された現画面の表示データの倍率を変更する倍率変更回路と、
前記倍率変更された前記現画面の表示データを複数の表示領域に分割する領域分割回路と、
前記現表示データ記憶手段に記憶された現画面の表示データと、前記クライアント装置に送信された前画面の表示データとを、前記領域分割回路で分割された各表示領域毎に比較して両表示データに差異があるか否かを判定する比較回路と、
を具備し、
前記比較回路で差異があると判定された表示領域の表示データを前記クライアント装置に送信することを特徴とするコンピュータシステムのサーバ装置。
【請求項２】
前記比較回路で差異があると判定された表示領域の表示データを圧縮する圧縮回路をさらに具備し、前記圧縮回路で圧縮された表示データを前記送信手段により送信することを特徴とする請求項１記載のサーバ装置。
【請求項３】
前記倍率変更回路と、前記領域分割回路と、前記比較回路とにそれぞれ初期値を設定して、順次動作させる制御手段をさらに具備することを特徴とする請求項１または２記載のサーバ装置。
【請求項４】
前記制御手段は、前記現表示データ記憶手段に前記現画面の表示データを記憶する処理を行わせ、前記倍率変更回路に前記現画面の表示データの倍率を変更する処理を行わせ、前記領域分割回路に前記倍率変更された現画面の表示データを複数の表示領域に分割する処理を行わせ、前記比較回路に前記各表示領域毎の表示データに差異があるか否かを判定する処理を行わせることを特徴とする請求項３記載のサーバ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ装置において生成された表示データをクライアント装置へ送信しその表示画面に表示させるようにしたコンピュータシステムのサーバ装置に関する。
【背景技術】
【０００２】
近年、サーバベースコンピューティングと呼ばれる技術思想が提案されている。サーバベースコンピューティングとは、端末などのクライアント装置とサーバ装置とがネットワークを介して相互に接続されたシステムにおいて、クライアント装置がサーバ装置に対してサービス要求を行うと、当該サーバ装置はクライアント装置からのサービス要求に基づいて、データの管理及び特定のアプリケーションプログラムを動作させるというものである。
【０００３】
クライアント装置は、使用者のキーやマウスなどの操作情報をネットワークを介してサーバ装置へ送るとともに、サーバ装置から受け取ったデータを表示させる。クライアント装置は、ネットワーク機器、表示装置、マウスやキーボードなどの入力装置を備えているだけでよく、データをクライアント装置内に持たないためシンクライアントと呼ばれる。シンクライアントはハードディスクなどのストレージが不要かつ、アプリケーションプログラムの実行を行わないために必要となる処理の負荷は軽い。
【０００４】
企業はベースサーバベースコンピューティングを導入することにより、データやアプリケーションプログラムなどの資源をサーバ側で一元管理できるため、運用コストを削減することができる。また、クライアント装置は従来のパソコンに比べて安価に調達することができるという利点がある。セキュリティ面においても、サーバ装置内のデータへのアクセス制限をかけたり、アクセスログを取ったりすることにより、情報への不正アクセスのリスクを減らすことができる。ウイルスに対してもサーバ装置で一括対処することが可能となる。
【０００５】
特表平２００４−５０３８６２号は、シンクライアントを備えたコンピュータシステムにおいて、サーバ側で実行させるアプリケーションソフトの表示データをクライアント装置に送信して表示する構成を開示している。
【特許文献１】特表２００４−５０３８６２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来のサーバ装置では、クライアント装置に送信する表示データをソフトウェア処理により生成しているので制御手段としてのＣＰＵに負荷がかかり、接続するクライアント装置の数が増えるにしたがってＣＰＵの動作が遅くなるという問題があった。また、ネットワークを介して送るときの負荷を軽減すべくソフトウェア処理によりデータを少なくする場合、表示データなどのエンコード処理が複雑になってしまい、クライアント装置に表示されるまでに時間がかかりサーバ装置とクライアント装置間のレスポンスが遅くなるという欠点があった。
【０００７】
本発明はこのような課題に着目してなされたものであり、その目的とするところは、クライアント装置に送信する表示データを制御手段の負荷を軽減しつつ高速に生成することができるコンピュータシステムのサーバ装置を提供することにある。
【課題を解決するための手段】
【０００８】
上記の目的を達成するために、本発明の第１の態様は、サーバ装置において生成された表示データをクライアント装置へ送信しその表示画面に表示させるようにしたコンピュータシステムのサーバ装置であって、前記クライアント装置へ送信する現画面の表示データを記憶する現表示データ記憶手段と、前記現表示データ記憶手段に記憶された現画面の表示データの倍率を変更する倍率変更回路と、前記倍率変更された前記現画面の表示データを複数の表示領域に分割する領域分割回路と、前記現表示データ記憶手段に記憶された現画面の表示データと、前記クライアント装置に送信された前画面の表示データとを、前記領域分割回路で分割された各表示領域毎に比較して両表示データに差異があるか否かを判定する比較回路と、を具備し、前記比較回路で差異があると判定された表示領域の表示データを前記クライアント装置に送信する。
【０００９】
また、本発明の第２の態様は、第１の態様において、前記比較回路で差異があると判定された表示領域の表示データを圧縮する圧縮回路をさらに具備し、前記圧縮回路で圧縮された表示データを前記送信手段により送信する。
【００１０】
また、本発明の第３の態様は、第１または第２の態様において、前記倍率変更回路と、前記領域分割回路と、前記比較回路とにそれぞれ初期値を設定して、順次動作させる制御手段をさらに具備する。
【００１１】
また、本発明の第４の態様は、第３の態様において、前記制御手段は、前記現表示データ記憶手段に前記現画面の表示データを記憶する処理を行わせ、前記倍率変更回路に前記現画面の表示データの倍率を変更する処理を行わせ、前記領域分割回路に前記倍率変更された現画面の表示データを複数の表示領域に分割する処理を行わせ、前記比較回路に前記各表示領域毎の表示データに差異があるか否かを判定する処理を行わせる。
【発明の効果】
【００１２】
請求項１に記載の発明によれば、クライアント装置に送信する表示データを生成するにあたって、倍率変更回路、領域分割回路、判定回路をハードウェアにより生成するようにしたので、制御手段の負担を軽減しつつクライアント装置へ送信する表示データを高速に生成することができる。また、制御手段の負担を軽減されるので、その分接続するクライアント装置の数を増やすことができる。
【００１３】
また、請求項２に記載の発明によれば、ハードウェアにより構成された圧縮回路により表示データを圧縮するようにしたので、制御手段の負担をさらに軽減することが可能になる。
【００１４】
また、請求項３、４に記載の発明によれば、ハードウェア回路の作業とその動作を制御する制御手段の作業とを分担し、負荷のかかる処理を当該ハードウェア回路に行わせるようにしたので、制御手段の負荷を軽減することができる。
【発明を実施するための最良の形態】
【００１５】
以下、図面を参照して本発明の実施形態を詳細に説明する。図１は、本発明の実施形態に係るサーバ装置１０と複数のクライアント装置２０ａ，２０ｂ，…（以下では代表して２０で示す）とから構成されるコンピュータシステムの概略構成を示すブロック図である。サーバ装置１０と複数のクライアント装置２０は、例えばＬＡＮ(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)６０７と、認証デバイス，バーコードリーダー，ＣＣＤカメラ，プリンタ，無線デバイスなどの各種の外部機器を接続するためのＵＳＢ／パラレル／シリアルインターフェース６０９と、前記サーバ装置１０との間でのデータの送受信を制御する送受信制御部（有線／無線）６１０とが接続される。
【０１０１】
ＣＰＵ６０１は、ＲＯＭ６０２に予め記憶されているシステムプログラムに従ってＲＡＭ６０３を作業用メモリとし回路各部の動作を制御するもので、入力部６０８からのキー入力信号や送受信制御部６１０を介して受信されるサーバ装置１０からのアプリケーション応答信号，転送描画データなどに応じて前記システムプログラムが起動・実行される。
【０１０２】
このクライアント装置２０において、前記サーバ装置１０におけるアプリケーションプログラムを実行させて生成した種々のデータは、適宜、外部記憶部（ＨＤＤ）６０７に読み込ませて記憶させ、また生成転送された表示用の描画データは、アクセラレータ回路６０４においてデコードされてＶＲＡＭ６０５に書き込まれ表示装置６０６で表示出力される。
【０１０３】
図１９は図１８に示すアクセラレータ回路６０４の詳細な構成を示す図である。暗号復号回路７０１はサーバ装置１０から送られてきた１タイル分の圧縮・暗号化データファイルを復号する。復号されたデータファイルはヘッダデータ７０２−１と描画データ７０２−２としてセットされる。圧縮デコード回路７０４はヘッダデータ７０２−１に書き込まれている圧縮方式に対応する伸長方式により描画データをデコードする。デコードされた描画データは、領域座標レジスタ７０３にセットされた描画データのＨ×ＷのサイズとＸＹ座標に基づいてＶＲＡＭ７０６上のメモリ領域７０７に描画される。
【０１０４】
図２０は、クライアント装置２０における処理手順を示すフローチャートである。まず、初期設定（イニシャル設定）を行う（ステップＳ１０１）。ここで表示構造としてＨ×Ｗ（高さ×幅）のサイズと色数とが設定される。次に、サーバ装置１０との接続を行うか否かを判断し（ステップＳ１０２）、ＮＯの場合にはＹＥＳになるまで待機する。ＹＥＳになったならばサーバ装置１０に対して接続要求を送信する（ステップＳ１０３）。サーバ装置１０はこれに対してクライアント装置２０からの接続が正当であるか否かの判断を行うが、クライアント装置２０はサーバ装置１０から認証ＯＫの通知があるまで待機し（ステップＳ１０４）、認証ＯＫの通知を受け取ったならば、ステップＳ１０１で設定した初期情報をサーバ装置１０に対して送信する（ステップＳ１０５）。次に、サーバ装置１０との間で通信を行うが、その間、サーバ装置１０との間の通信制御を行う（ステップＳ１０６）。当該通信が終了したならば接続を終了するか否かを確認し（ステップＳ１０７）、ＹＥＳならば接続終了処理（ステップＳ１０８）を行って処理を終了する。
【０１０５】
図２１は、図２０におけるサーバとの通信制御の詳細を示すフローチャートである。まず、キーボードあるいはマウスなどが操作することにより何らかのイベントが発生するまで待機する（ステップＳ２０１）。イベントが発生したならば、当該イベントがネットワークを介したサーバ装置１０からのデータ受信か否かを判断し（ステップＳ２０２）、ＮＯならば当該イベントがキーボードの操作か否かを判断する（ステップＳ２０３）。ここでＮＯならば当該イベントがマウスあるいはタッチパネルの操作か否かを判断し（ステップＳ２０４）、ＮＯならばシリアル接続を介してデータ入力があったか否かを判断し（ステップＳ２０５）、ＮＯならばステップＳ２０１に戻る。
【０１０６】
一方、ステップＳ２０２においてＹＥＳならば、サーバ装置１０から受信したデータが暗号化データか否かを判断し（ステップＳ２０６）、ＮＯならばただちにステップＳ２０９に移行し、ＹＥＳならば当該暗号化データを復号すべく内部の暗号復号回路７０１へ転送する（ステップＳ２０７）。次に、この暗号復号回路７０１から復号データを抽出し（ステップＳ２０８）、プロトコルヘッダの解析を行う（ステップＳ２０９）。次に、当該ヘッダから抽出した描画領域（Ｈ×Ｗ）、座標ｘ、ｙをレジスタにセットする（ステップＳ２１０）。次に、ヘッダ及び描画データをアクセラレータ回路６０４にセットする（ステップＳ２１１）。これによりアクセラレータ回路６０４で所定の処理が行われた後、表示装置６０６に表示される。
【０１０７】
また、ステップＳ２０３での判断がＹＥＳならば、操作されたキーボードに対応するキーコードを受信する（ステップＳ２１２）。次に、このキーコードに基づいて送信データを生成する（ステップＳ２１３）。次に、送信データを暗号化するか否かを判断し（ステップＳ２１４）、ＮＯならばただちにステップＳ２１７に移行する。ステップＳ２１４の判断がＹＥＳならば、アクセラレータ回路６０４内の暗号化回路に転送して暗号化を行う（ステップＳ２１５）。次に、暗号化回路から暗号化した送信データを抽出して（ステップＳ２１６）、パケット通信処理を行い（ステップＳ２１７）、転送命令に従って送信データをサーバ装置１０へ転送する（ステップＳ２１８）。その後、ステップＳ２０１に戻る。
【０１０８】
また、ステップＳ２０４の判断がＹＥＳならば、マウス操作あるいはタッチパネル操作の内容に応じたデータをセットする制御を行う（ステップＳ２１９）。その後はキーボード操作の場合と同様にステップＳ２１３以降の処理を行う。
【０１０９】
また、ステップＳ２０５の判断がＹＥＳならば、入力されたデータを受信する（ステップＳ２２０）。その後はキーボード操作の場合と同様にステップＳ２１３以降の処理を行う。
【０１１０】
上記した実施形態によれば、クライアント装置２０に送信する表示データを生成するにあたって、倍率変更回路（スケーリング回路１０１ｃ）、領域分割回路（タイル分割判定回路１０１ｄ）、比較・圧縮回路１０１ｅをハードウェアにより生成するようにしたので、ＣＰＵ１０２の負担を軽減しつつクライアント装置２０へ送信する表示データを高速に生成することができる。また、ＣＰＵ１０２の負担を軽減されるので、その分接続するクライアント装置２０の数を増やすことができる。ハードウェア回路の作業とその動作を制御するＣＰＵ１０２の作業とを分担し、負荷のかかる処理を当該ハードウェア回路に行わせるようにしたので、ＣＰＵ１０２の負荷を軽減することができる。
【図面の簡単な説明】
【０１１１】
【図１】本発明の実施形態に係るサーバ装置１０と複数のクライアント装置２０ａ，２０ｂ，…とから構成されるコンピュータシステムの概略構成を示すブロック図である。
【図２】本コンピュータシステムのサーバ装置１０にて生成された描画データのクライアント装置２０への転送表示状態を示す図である。
【図３】本コンピュータシステムのサーバ装置１０において変化後の描画データＧ′の領域Ｑ′に基づきアクセラレータ回路１０１により生成処理される転送用描画データＨを詳細に示す図である。
【図４】本コンピュータシステムにおけるサーバ装置１０の回路構成を示すブロック図である。
【図５】本コンピュータシステムのサーバ装置１０におけるアクセラレータ回路１０１の回路構成を示すブロック図である。
【図６】スケーリング回路１０１ｃの回路構成を示すブロック図である。
【図７】スケーリング演算回路２０６の回路構成を示すブロック図である。
【図８】タイル分割判定回路１０１ｄの回路構成を示すブロック図である。
【図９】比較・圧縮回路の回路構成を示すブロック図である。
【図１０】（Ａ）は図９に示す比較回路の詳細な構成を示す図であり、（Ｂ）は縦×横ライン数・ピクセル・バッファ３５６の構造の一例を示す図である。
【図１１】図９に示す圧縮回路の詳細な構成を示すブロック図である。
【図１２】色数カウント回路４５１の詳細な構成を示すブロック図である。
【図１３】透過色検出回路４５４の詳細な構成を示すブロック図である。
【図１４】圧縮方法決定のためのテーブルを示す図である。
【図１５】結果データ・ヘッダーフォーマットのテーブルの一例を示す図である。
【図１６】サーバ装置１０のＣＰＵ１０２によりソフトウェアを用いて実行されるサーバプロセス処理フローの手順を説明するための図である。
【図１７】図１６の転送サーバ処理の手順を説明するためのフローである。
【図１８】本コンピュータシステムにおけるクライアント装置２０の回路構成を示すブロック図である。
【図１９】図１８に示すアクセラレータ回路６０４の詳細な構成を示す図である。
【図２０】クライアント装置２０における処理手順を示すフローチャートである。
【図２１】図２０におけるサーバとの通信制御の詳細を示すフローチャートである。
【符号の説明】
【０１１２】
１０…サーバ装置
１０１…アクセラレータ回路
１０１ｆ…暗号化回路
１０１ｇ…アクセス調停回路
１０１ｈ…ＤＲＡＭアクセス回路
１０７…ＶＲＡＭ
１０２…ＣＰＵ
１０３…高速バス
１０４…ＲＯＭ
１０５…ＲＡＭ
１０６…表示装置
１０７…ＶＲＡＭ
１０８…ノーマルバス
１０９…入力部
１１０…外部記憶ＨＤＤ
１１１…送受信制御部
２０…クライアント装置
６０１…ＣＰＵ
６０２…ＲＯＭ
６０３…ＲＡＭ
６０４…アクセラレータ回路
６０５…ＶＲＡＭ
６０６…表示装置
６０７…外部記憶部
６０８…入力部
６０９…ＵＳＢ／パラレル／シリアルインターフェース
６１０…送受信制御部
【図１】
2007265209.tif 000003
【図２】
2007265209.tif 000004
【図３】
2007265209.tif 000005
【図４】
2007265209.tif 000006
【図５】
2007265209.tif 000007
【図６】
2007265209.tif 000008
【図７】
2007265209.tif 000009
【図８】
2007265209.tif 000010
【図９】
2007265209.tif 000011
【図１０】
2007265209.tif 000012
【図１１】
2007265209.tif 000013
【図１２】
2007265209.tif 000014
【図１３】
2007265209.tif 000015
【図１４】
2007265209.tif 000016
【図１５】
2007265209.tif 000017
【図１６】
2007265209.tif 000018
【図１７】
2007265209.tif 000019
【図１８】
2007265209.tif 000020
【図１９】
2007265209.tif 000021
【図２０】
2007265209.tif 000022
【図２１】
2007265209.tif 000023