(57)【要約】【課題】シン・クライアント・システムのサーバ装置で、各クライアント装置へ送信すべき描画データのエンコード処理を効率良く行いサーバ装置全体のレスポンスを向上する。【解決手段】ウインドウ・システムＷＳのアプリケーションにより生成された（未処理）描画データは、圧縮エンコード処理をハードウエア処理で行う描画処理ＨＷ回路３０に対しＤＭＡ転送により書込まれてエンコード実行され、また、エンコード処理された（処理済み）描画データは、当該描画処理ＨＷ回路３０からＤＭＡ転送により読込まれた後、前記クライアント装置２０に対して応答送信されるので、描画処理ＨＷ回路３０によるエンコード処理中に、当該ＨＷ回路３０への未処理描画データの書込み処理および同ＨＷ回路３０からの処理済み描画データの読込み処理を並列に行うことができ、描画処理ＨＷ回路３０を効率良く稼動させて、サーバ装置１０側全体のレスポンスを向上できる。【選択図】      図１
2009111502.tif 000002
【特許請求の範囲】
【請求項１】
複数のクライアント装置に送信すべき描画データを当該各クライアント装置に対応付けて記憶する描画データ記憶手段と、
エンコード前の描画データおよびエンコード後の描画データを記憶する記憶手段、およびこの記憶手段からエンコード前の描画データを読み出してエンコード処理し、エンコード後の描画データを前記記憶手段に記憶するエンコード処理回路からなる処理回路と、
ダイレクトメモリアクセス回路と、
このダイレクトメモリアクセス回路を制御して、前記描画データ記憶手段により記憶された描画データをエンコード前の描画データとして前記処理回路の記憶手段に対し書き込ませる書込み制御手段と、
前記ダイレクトメモリアクセス回路を制御して、前記処理回路の記憶手段に記憶されたエンコード後の描画データを読込む読込み制御手段と、
この読込み制御手段により読込まれたエンコード後の描画データを当該描画データに対応付けられた前記クライアント装置へ送信する送信手段と、
を備えたことを特徴する描画データ処理装置。
【請求項２】
サーバ装置に接続されたクライアント装置の応答時間を計測する応答時間計測手段と、
この応答時間計測手段により計測されたクライアント装置の応答時間に応じて当該クライアント装置の優先度を設定する優先度設定手段とをさらに備え、
前記書込み制御手段は、前記優先度設定手段により設定された優先度の高いクライアント装置に送信すべき描画データを優先して、前記ダイレクトメモリアクセス回路を制御し、エンコード前の描画データとして前記処理回路の記憶手段に対し書き込ませる、
ことを特徴とする請求項１に記載の描画データ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ・クライアント・システムのサーバ装置において、複数のクライアント装置からの要求に応じた描画データを生成して転送するための描画データ処理装置に関する。
【背景技術】
【０００２】
従来のサーバ・クライアント・システムにおいて、例えばクライアント装置からのリモート操作によりサーバ装置側で所望のアプリケーションプログラムを起動実行させるシン・クライアント・システムがある。
【０００３】
このシン・クライアント・システムでは、クライアント装置の操作入力に応じてサーバ装置側で処理生成される表示用の描画データが該サーバ装置からその描画更新の都度クライアント装置へと送信転送されて表示される（例えば、特許文献１参照。）。
【０００４】
このため、ネットワーク上にある複数のクライアント装置それぞれからの操作入力に応じた各処理をレスポンス良く行う必要があるサーバ装置では、その各クライアント装置に対する描画データの生成・送信を如何に効率良く円滑に行い当該サーバ装置の負荷を軽くするかが重要になっている。
【特許文献１】特表２００４−５０３８６２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
前記従来のシン・クライアント・システムにおいて、サーバ装置により生成された描画データは、当該描画データのクライアント装置への転送量を削減するために通常は画像圧縮によるエンコード処理が施されて送信転送される。
【０００６】
しかしながら、前記サーバ装置における描画データのエンコード処理そのものに時間が掛かると、データ転送量の削減からネットワーク負荷の軽減には寄与する一方で、クライアント装置へ応答送信するまでに時間が掛かってしまい、結果として全体のレスポンスが悪くなる問題があった。
【０００７】
本発明は、このような課題に鑑みなされたもので、各クライアント装置へ送信すべき描画データのエンコード処理を効率良く行い、サーバ装置側全体のレスポンスを向上することが可能になる描画データ処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
請求項１に記載の描画データ処理装置は、複数のクライアント装置に送信すべき描画データを当該各クライアント装置に対応付けて記憶する描画データ記憶手段と、エンコード前の描画データおよびエンコード後の描画データを記憶する記憶手段、およびこの記憶手段からエンコード前の描画データを読み出してエンコード処理し、エンコード後の描画データを前記記憶手段に記憶するエンコード処理回路手段からなる処理回路と、ダイレクトメモリアクセス回路と、このダイレクトメモリアクセス回路を制御して、前記描画データ記憶手段により記憶された描画データをエンコード前の描画データとして前記処理回路の記憶手段に対し書き込ませる書込み制御手段と、前記ダイレクトメモリアクセス回路を制御して、前記処理回路の記憶手段に記憶されたエンコード後の描画データを読込む読込み制御手段と、この読込み制御手段により読込まれたエンコード後の描画データを当該描画データに対応付けられた前記クライアント装置へ送信する送信手段と、を備えたことを特徴としている。
【０００９】
請求項２に記載の描画データ処理装置は、前記請求項１に記載の描画データ処理装置において、サーバ装置に接続されたクライアント装置の応答時間を計測する応答時間計測手段と、この応答時間計測手段により計測されたクライアント装置の応答時間に応じて当該クライアント装置の優先度を設定する優先度設定手段とをさらに備え、前記書込み制御手段は、前記優先度設定手段により設定された優先度の高いクライアント装置に送信すべき描画データを優先して、前記ダイレクトメモリアクセス回路を制御し、エンコード前の描画データとして前記処理回路の記憶手段に対し書き込ませる、ことを特徴としている。
【発明の効果】
【００１０】
本発明によれば、各クライアント装置へ送信すべき描画データのエンコード処理を効率良く行い、サーバ装置側全体のレスポンスを向上することが可能になる描画データ処理装置を提供できる。
【発明を実施するための最良の形態】
【００１１】
以下図面により本発明の実施の形態について説明する。
【００１２】
図１は、本発明の描画データ処理装置の実施形態に係るシン・クライアント・システムの全体構成を示す機能ブロック図である。
【００１３】
このシン・クライアント・システムは、ＬＡＮ(Local Area Network)やＷＡＮ(Wide Area Network)からなるネットワークＮ上に接続されたサーバ装置１０および複数のクライアント装置(Thin client)２０(No.1)…２０(No.n)を備える。
【００１４】
サーバ装置１０は、文書作成処理プログラム，表計算処理プログラム，プレゼン資料作成プログラム，メール処理プログラム，インターネット接続処理プログラム、Ｗｅｂ表示プログラムなど、複数のアプリケーションプログラムを有し、当該サーバ装置１０に接続された各クライアント装置２０(No.1)…２０(No.n)からの操作入力（入力イベント）信号に応じて起動しその処理を実行する。
【００１５】
このサーバ装置１０において、クライアント装置２０，…からの操作入力信号に応じたアプリケーションプログラムの実行に伴い生成された表示出力用の描画データは、内蔵された描画処理ＨＷ(Hard・ware)回路３０によって圧縮エンコード処理され、アクセス元のクライアント装置２０，…へ送信（転送）される。
【００１６】
そして、クライアント装置２０，…では、前記サーバ装置１０から転送された描画データがその圧縮を解凍（デコード）され、表示部に表示される。
【００１７】
つまり、このサーバ・クライアント(Thin client)・システムにおける各クライアント装置２０，…は、何れも通信機能の他に、キー及びボタンなどのユーザ操作に応じた入力機能とＬＣＤ表示部などへの出力機能を主要な機能として有し、少なくとも前記サーバ装置１０が有している各種のアプリケーション機能やデータファイルの管理機能を一切持っていない。
【００１８】
ここで、各クライアント装置２０(No.1)…２０(No.n)からの操作入力（入力イベント）信号に応じてサーバ装置１０にて生成された描画データが圧縮エンコード処理され、各イベント入力元のクライアント装置２０へ送信転送される過程の概略機能について説明する。
【００１９】
サーバ装置１０において、サーバ・デーモン(Sever Daemon)ＳＤ、ウインドウ・システム(Window System)ＷＳ(No.1)…ＷＳ(No.n)、ハード・ウエア・コントローラＨＷＣ(Hard Ware Controller)、ライブラリ・ドライバ(Library/Driver)ＬＤは、何れも予め記憶されたサーバ制御プログラムをＣＰＵに実行させることで機能するソフトウエア処理部である。
【００２０】
また、描画処理ＨＷ回路３０は、前記ハード・ウエア・コントローラＨＷＣおよびライブラリ・ドライバＬＤでのソフトウエア処理に従い動作するハードウエアの回路部であり、描画データの圧縮エンコード処理を行う。
【００２１】
前記サーバ・デーモン(Sever Daemon)ＳＤは、応答時間計測処理部１を備え、ウインドウ・システム(Window System)ＷＳ(No.1)…ＷＳ(No.n)は、それぞれｖＤＤ(virtual Display Driver)スレッド処理部２(No.1)…２(No.n)を備え、ハード・ウエア・コントローラ(Hard Ware Controller)ＨＷＣおよびライブラリ・ドライバ(Library/Driver)ＬＤは、ＨＷＣｖＤＤ通信スレッド処理部３、ＨＷデータ書込みスレッド処理部４、ＨＷエンコード実行スレッド処理部５、ＨＷデータ読込みスレッド処理部６を備える。
【００２２】
前記応答時間計測処理部１は、各クライアント装置２０からのイベント入力（接続）に応じて、当該各クライアント装置２０との通信に伴う応答時間を計測し、この応答時間に応じて当該各クライアント装置２０に送信すべき描画データを前記描画処理ＨＷ回路３０へ送ってエンコード処理する際の優先順位（プライオリティ）を設定する。
【００２３】
図２は、前記シン・クライアント・システムのサーバ装置１０に備えられる応答時間計測処理部１における応答時間／プライオリティ関連テーブル１Ｔを示す図である。
【００２４】
すなわち、イベント入力有りと判断されたクライアント装置２０との通信応答時間が、例えば０〜１０ｍｓと短い（高速）場合には、当該クライアント装置２０に送信すべき描画データを前記描画処理ＨＷ回路３０へ送ってエンコード処理する際の優先順位（プライオリティ）が最低レベルの“１”に設定され、また例えば同クライアント装置２０との通信応答時間が１１〜１００ｍｓと通常速度の場合には、同描画データをエンコード処理する際の優先順位が中レベルの“２”に設定され、さらに例えば同クライアント装置２０との通信応答時間が１０１ｍｓ〜と長い（低速）場合には、同描画データをエンコード処理する際の優先順位が最高レベルの“３”に設定される。
【００２５】
前記ｖＤＤスレッド処理部２(No.1)…２(No.n)は、クライアント装置２０からのイベント入力に応じて、その一台のクライアント装置２０に１つのウインドウ・システムＷＳ(No.n)およびｖＤＤスレッド処理部２(No.n)が対応付けされて起動される。そしてこのｖＤＤスレッド処理部２(No.n)は、前記イベント入力に応じたアプリケーションプログラムによってウインドウ・システムＷＳ(No.n)に生成された描画データを取り込み、この描画データに、そのｖＤＤＩＤ(No.n)および前記通信応答時間の設定優先順位を対応付けて、前記ハード・ウエア・コントローラＨＷＣのＨＷＣｖＤＤ通信スレッド処理部３へ送信する。一方で、前記ハード・ウエア・コントローラＨＷＣのＨＷＣｖＤＤ通信スレッド処理部３から受信された圧縮エンコード処理済みの描画データを、前記サーバ・デーモンＳＤへ送信してイベント入力元のクライアント装置２０へ転送させる。
【００２６】
前記ＨＷＣｖＤＤ通信スレッド処理部３は、前記ｖＤＤスレッド処理部２から受信された描画データをバッファリングし（図８参照）、そのことを前記ＨＷデータ書込みスレッド処理部４に対して通知する一方で、前記ＨＷデータ読込みスレッド処理部６によりバッファリング（図１１参照）されたエンコード処理済みの描画データを読込み、該描画データに対応付けされているｖＤＤＩＤ(No.n)の前記ｖＤＤスレッド処理部２(No.n)に対して送信する。
【００２７】
前記ＨＷデータ書込みスレッド処理部４は、前記ＨＷＣｖＤＤ通信スレッド処理部３にバッファリングされている描画データを該描画データに対応付けされている優先順位の順に読込み、前記描画処理ＨＷ回路３０内の保存メモリ（図１０参照）に対してＤＭＡ転送して書き込む。
【００２８】
前記ＨＷエンコード実行スレッド処理部５は、前記描画処理ＨＷ回路３０内の保存メモリ（図１０参照）に保存された描画データのエンコード処理を実行させる。
【００２９】
前記ＨＷデータ読込みスレッド処理部６は、前記描画処理ＨＷ回路３０内の保存メモリ（図１０参照）に保存されたエンコード処理済みの描画データ（処理済み描画データ）をＤＭＡ転送により読込んでバッファリング（図１１参照）する。
【００３０】
これにより、前記ＨＷデータ読込みスレッド処理部６にバッファリングされたエンコード処理済みの描画データは、前記ＨＷＣｖＤＤ通信スレッド処理部３により読込まれて前記ｖＤＤスレッド処理部２(No.n)に送信され、前記サーバ・デーモンＳＤからイベント入力元のクライアント装置２０へ転送される。
【００３１】
図３は、前記シン・クライアント・システムのサーバ装置１０に備えられるｖＤＤスレッド処理部２と描画処理ＨＷ回路３０との間で転送される描画データのフォーマットを示す図であり、同図（Ａ）はｖＤＤスレッド処理部２により生成されて描画処理ＨＷ回路３０へ転送される未処理描画データ２Ｖのフォーマットを示す図、同図（Ｂ）は描画処理ＨＷ回路３０によりエンコード処理されてｖＤＤスレッド処理部２へ転送される処理済み描画データ３０Ｖのフォーマットを示す図である。
【００３２】
すなわち、ｖＤＤスレッド処理部２により生成される未処理描画データ２Ｖは、図３（Ａ）に示すように、クライアント装置２０(No.n)からのイベント入力に応じてウインドウ・システムＷＳ(No.n)に生成された描画データに対して、そのｖＤＤＩＤ(No.n)と前記応答時間計測処理部１により設定された通信応答時間の優先順位（プライオリティ・データ）とが対応付けられて生成されるもので、描画データは、その画像データ、色解像度データ[Src_color]、サイズデータ[Src_HW]、描画位置データ[Src_XY]、エンコード種類データ[Encode種類]からなっている。
【００３３】
また、描画処理ＨＷ回路３０によりエンコード処理されて生成される処理済み描画データ３０Ｖは、図３（Ｂ）に示すように、エンコード処理された描画データ（処理済みデータ）に対して、前記ｖＤＤＩＤ(No.n)が対応付けられて生成されるもので、処理済みデータは、そのエンコード・データ、色解像度データ[Src_color]、サイズデータ[Src_HW]、描画位置データ[Src_XY]、エンコード種類データ[Encode種類]からなっている。
【００３４】
図４は、前記シン・クライアント・システムのサーバ装置１０において複数のクライアント装置２０…からのイベント入力に応じて各対応するｖＤＤスレッド処理部２…から描画処理ＨＷ回路３０へ転送される未処理描画データ２Ｖの転送タイミングと該描画処理ＨＷ回路３０から各対応するｖＤＤスレッド処理部２…へ転送される処理済み描画データ３０Ｖの転送タイミングとを示すタイミングチャートである。
【００３５】
すなわち、ｖＤＤスレッド処理部２…から描画処理ＨＷ回路３０へ転送される未処理描画データ２Ｖは、ハード・ウエア・コントローラＨＷＣからのＤＭＡ転送によって描画処理ＨＷ回路３０に書き込まれて圧縮エンコード処理される一方で、該描画処理ＨＷ回路３０により圧縮エンコード処理された処理済み描画データ３０ＶもＤＭＡ転送によってハード・ウエア・コントローラＨＷＣに読み込まれ、ｖＤＤスレッド処理部２…へ転送される。
【００３６】
このため、前記ハード・ウエア・コントローラＨＷＣから描画処理ＨＷ回路３０に対する未処理描画データ２ＶのＤＭＡ転送による書込み処理と当該描画処理ＨＷ回路３０での圧縮エンコード処理、また同描画処理ＨＷ回路３０での圧縮エンコード処理と処理済み描画データ３０Ｖの前記ハード・ウエア・コントローラＨＷＣへのＤＭＡ転送による読込み処理は、何れも並列処理により行われるので、ＤＭＡ転送によるデータ転送時間または描画処理ＨＷ回路３０による圧縮エンコード時間の何れか一方のみに依存した効率の良いエンコード処理を行うことができる。
【００３７】
図５は、前記サーバ・クライアント・システムにおけるサーバ装置１０の回路構成を示すブロック図である。
【００３８】
サーバ装置１０は、コンピュータとしてのＣＰＵ１１を備え、このＣＰＵ１１には、バス１２を介してＨＤＤ(Hard Disk Drive)１３、メモリ１４、ビデオメモリ１５、表示装置１６が接続されると共に、ＤＭＡ(Direct Memory Access)回路１７、前記描画処理ＨＷ回路３０が接続される。
【００３９】
また、ＣＰＵ１１には、バス１２を介してキーボード，マウス，プリンタなどの入出力装置（Ｉ／Ｏ）１８、通信ネットワークＮを介したクライアント装置２０との通信接続を制御するためのネットワーク制御部１９が接続される。
【００４０】
ＣＰＵ１１は、ＨＤＤ１３に予め記憶されているシステムプログラムや種々のアプリケーションプログラムに従ってメモリ１４を作業用メモリとし回路各部の動作を制御するもので、入出力装置１８からのキー入力信号やネットワーク制御部１９により受信されるクライアント装置２０からのユーザ操作（入力イベント）に応じた処理指令信号などに応じて前記種々のプログラムが起動・実行される。
【００４１】
このサーバ装置１０において、クライアント装置２０からの入力イベント信号に応じて起動・実行されるアプリケーションプログラムに従い生成された表示用の描画データは、該クライアント装置２０毎のＩＤ（ｖＤＤＩＤ）に対応付けられて管理されると共に、ＤＭＡ回路１７によって描画処理ＨＷ回路３０への書込み／読出しが行われて圧縮エンコード処理され、ネットワーク制御部１９によりクライアント装置２０へ転送されて表示出力される。
【００４２】
図６は、前記シン・クライアント・システムにおけるクライアント装置２０の回路構成を示すブロック図である。
【００４３】
クライアント装置２０は、コンピュータとしてのＣＰＵ２１を備え、このＣＰＵ２１には、バス２２を介してメモリ２３、ビデオメモリ２４が接続される。そして、このビデオメモリ２４に書き込まれた描画データが表示装置２５に出力されて表示される。
【００４４】
また、ＣＰＵ２１には、バス２２を介してキー，ボタン，スピーカなどの入出力装置（Ｉ／Ｏ）２６、通信ネットワークＮを介したサーバ装置１０との通信接続を制御するためのネットワーク制御部２７が接続される。
【００４５】
ＣＰＵ２１は、メモリ２３に予め記憶されているシステムプログラムに従って回路各部の動作を制御するもので、入出力装置２６からのキー入力信号やネットワーク制御部２７により受信されるサーバ装置１０からのアプリケーション応答信号，転送描画データなどに応じて前記システムプログラムが起動され実行される。
【００４６】
このクライアント装置２０において、前記サーバ装置１０におけるアプリケーションプログラムを実行させて生成した種々のデータは、適宜、メモリ２３に読み込ませて記憶させ、また生成転送された表示用の描画データは、その圧縮がデコードされてビデオメモリ２４に書き込まれ表示装置２５で表示出力される。
【００４７】
図７は、前記サーバ装置１０における描画処理ＨＷ回路３０の構成を示すブロック図である。
【００４８】
この描画処理ＨＷ回路３０は、ＰＣＩ(Peripheral Component Interconnect)Expressインターフェース３１、割り込み回路３２、レジスタ３３、保存メモリ３４、エンコード処理回路３５、ワークメモリ３６を備えて構成される。
【００４９】
割り込み回路３２は、前記ハード・ウエア・コントローラＨＷＣによってＤＭＡ回路１７からＤＭＡ転送されてくる未処理描画データ２Ｖが前記ＰＣＩExpressインターフェース３１に入力され保存メモリ３４に書き込まれた際、および圧縮エンコード処理された処理済みの描画データ３０Ｖが同保存メモリ３４からＤＭＡ転送によりＰＣＩ Expressインターフェース３１を介して前記ハード・ウエア・コントローラＨＷＣに読み出された際に、それぞれ割り込みフラグを発生し前記ハード・ウエア・コントローラＨＷＣに通知する。
【００５０】
レジスタ３３には、前記ハード・ウエア・コントローラＨＷＣによってＤＭＡ転送されて保存メモリ３４に書き込まれた未処理描画データ２Ｖのエンコード処理のための情報（色解像度データ[Src_color]、サイズデータ[Src_HW]、描画位置データ[Src_XY]、エンコード種類データ[Encode種類]）が記憶設定される。
【００５１】
保存メモリ３４（図１０参照）には、前記未処理描画データ２Ｖを保存するアドレス領域と処理済み描画データ３０Ｖを保存するアドレス領域とが１：１に対応するアドレス領域に分割されて設定され、前記ハード・ウエア・コントローラＨＷＣによってＤＭＡ転送された未処理描画データ２Ｖが書き込まれる一方で、エンコード処理された処理済み描画データ３０ＶがＤＭＡ転送により前記ハード・ウエア・コントローラＨＷＣに読み込まれる。
【００５２】
エンコード処理回路３５は、前記保存メモリ３４に書き込まれた未処理描画データ２Ｖを対象とし、ワークメモリ３６を作業領域として例えばＪＰＥＧ方式による圧縮エンコード処理を行う。
【００５３】
図８は、前記サーバ装置１０のハード・ウエア・コントローラＨＷＣによってメモリ１４上に確保されるデータバッファ１４ａを示す図である。
【００５４】
このデータバッファ１４ａには、前記ｖＤＤスレッド処理部２からハード・ウエア・コントローラＨＷＣのＨＷＣｖＤＤ通信スレッド処理部３に受信された未処理描画データ２ＶがそのｖＤＤＩＤ(No.n)と対応するバッファ番号のところに記憶され、ステータス“０”（未処理）として初期設定される。
【００５５】
図９は、前記サーバ装置１０のハード・ウエア・コントローラＨＷＣによってメモリ１４上に確保されるスケジュールテーブル[1]１４ｂを示す図である。
【００５６】
このスケジュールテーブル[1]１４ｂには、前記ｖＤＤスレッド処理部２からハード・ウエア・コントローラＨＷＣのＨＷＣｖＤＤ通信スレッド処理部３に受信された未処理描画データ２Ｖが前記データバッファ１４ａに記憶されるのに伴い、そのバッファ番号に対応付けられて、ｖＤＤＩＤ、色解像度データ[Src_color]、サイズデータ[Src_HW]、描画位置データ[Src_XY]、エンコード種類データ[Encode種類]が登録され、ステータス“０”（未処理）として初期設定される。
【００５７】
そして、ハード・ウエア・コントローラＨＷＣのＨＷデータ書込みスレッド処理部４では、前記データバッファ１４ａに記憶されたステータス“０”（未処理）の未処理描画データ２Ｖについて、その優先順位（プライオリティ）の高い順に読み込まれ、ＤＭＡ転送によって描画処理ＨＷ回路３０への送信書込みが実行される。
【００５８】
図１０は、前記サーバ装置１０の描画処理ＨＷ回路３０に備えられる保存メモリ３４のアドレス領域割り付け状態を示す図である。
【００５９】
図１１は、前記サーバ装置１０のハード・ウエア・コントローラＨＷＣによってメモリ１４上に確保される処理済バッファ１４ｃを示す図である。
【００６０】
この処理済バッファ１４ｃには、前記描画処理ＨＷ回路３０の保存メモリ３４からハード・ウエア・コントローラＨＷＣのＨＷデータ読込みスレッド処理部６にＤＭＡ転送されて読み込まれた処理済み描画データ３０ＶがそのｖＤＤＩＤ(No.n)と対応するバッファ番号のところに記憶され、ステータス“０”（未処理）として初期設定される。
【００６１】
図１２は、前記サーバ装置１０のハード・ウエア・コントローラＨＷＣによってメモリ１４上に確保されるスケジュールテーブル[2]１４ｄを示す図である。
【００６２】
このスケジュールテーブル[2]１４ｄには、前記ハード・ウエア・コントローラＨＷＣのＨＷデータ書込みスレッド処理部４により、前記データバッファ１４ａ（図８参照）から優先順位（プライオリティデータ）順に読み込まれた未処理描画データ２Ｖが前記描画処理ＨＷ回路３０の保存メモリ３４にＤＭＡ転送されて書き込まれるのに伴い、前記データバッファ１４ａのバッファ番号に対応付けられて、保存メモリ３４の書込み先マップアドレス、保存メモリ３４の読込み先マップアドレス、およびｖＤＤＩＤ、色解像度データ[Src_color]、サイズデータ[Src_HW]、描画位置データ[Src_XY]、エンコード種類データ[Encode種類]が登録され、ステータス“０”（未処理）として初期設定される。
【００６３】
そして、ハード・ウエア・コントローラＨＷＣのＨＷＣｖＤＤ通信スレッド処理部３では、前記処理済バッファ１４ｃに記憶されたステータス“０”（未処理）の処理済み描画データ３０Ｖについて、そのｖＤＤＩＤが確認され、当該ｖＤＤＩＤに対応するところのｖＤＤスレッド処理部２への送信が実行される。
【００６４】
次に、前記構成のシン・クライアント・システムのサーバ装置１０によるクライアント装置２０からのイベント入力に応じた描画データの生成転送機能について説明する。
【００６５】
図１３は、前記シン・クライアント・システムにおけるサーバ装置１０の全体処理を示すフローチャートである。
【００６６】
サーバ装置１０が起動されると、先ず、メモリ１４内の各種バッファ，テーブルなどの初期設定が行われ（ステップＳ１）、クライアント装置２０からの接続要求が受信されたか否かの判断待機状態になる（ステップＳ２）。
【００６７】
ここで、クライアント装置２０からの接続要求が受信されたと判断されると（ステップＳ２（Ｙｅｓ））、当該接続要求元のクライアント装置２０のアカウント(No.n)に対応したｖＤＤＮｏ．(No.n)が生成発行され（ステップＳ３）、このｖＤＤＮｏ．に対応したウインドウ・システムＷＳおよびそのｖＤＤスレッド処理部２(No.n)が既に起動中であるか否か判断される（ステップＳ４）。
【００６８】
前記クライアント装置２０(No.n)からの接続要求に応じたウインドウ・システムＷＳおよびそのｖＤＤスレッド処理部２(No.n)が起動中でないと判断された場合には（ステップＳ４（Ｎｏ））、図１５において後述するｖＤＤスレッド処理が起動される（ステップＳＡ）。
【００６９】
こうして、クライアント装置２０(No.n)に対応したウインドウ・システムＷＳおよびそのｖＤＤスレッド処理部２(No.n)が起動されると、当該起動されたｖＤＤスレッド処理部２(No.n)でのスレッド処理によって、対応するクライアント装置２０(No.n)からのイベント入力に応じた当該ｖＤＤスレッド処理部２(No.n)との間における種々のデータ送受信処理が実行される（ステップＳ５）。
【００７０】
この後、前記接続中のクライアント装置２０から処理終了通知が受信されたと判断されると（ステップＳ６（Ｙｅｓ））、当該クライアント装置２０のアカウント(No.n)に対応したｖＤＤＮｏ．のｖＤＤスレッド処理部２(No.n)の処理が終了され（ステップＳ７）、同クライアント装置２０(No.n)へ応答信号が送信される（ステップＳ８）。
【００７１】
そして、サーバ処理の終了指示が判断された場合には（ステップＳ９（Ｙｅｓ））、全てのｖＤＤスレッド処理部２(No.1〜n)の処理が終了され、前記一連のサーバ処理が終了される（ステップＳ１０）。
【００７２】
図１４は、前記シン・クライアント・システムにおけるクライアント装置２０の全体処理を示すフローチャートである。
【００７３】
クライアント装置２０が起動されると、先ず、メモリ２３の初期設定が行われ（ステップＴ１）、前記サーバ装置１０に対する接続要求が送信される（ステップＴ２）。
【００７４】
そして、前記サーバ装置１０への接続要求に応答して接続認証ＯＫを通知する信号が受信されると（ステップＴ３（Ｙｅｓ））、当該サーバ装置１０との通信処理が実行されると共に（ステップＴ４）、ユーザ操作に応じたキー入力処理や入力イベントに応じてサーバ装置１０から応答受信された描画データの表示処理など、種々のデータ処理が行われる（ステップＴ５）。
【００７５】
そして、クライアント装置２０の終了指示が判断された場合には（ステップＴ６（Ｙｅｓ））、サーバ装置１０に対して終了の通知信号が送信される（ステップＴ７）。そして、当該サーバ装置１０からその終了の応答信号が受信されると（ステップＴ８（Ｙｅｓ））、本クライアント装置２０の一連の処理が終了される（ステップＴ９）。
【００７６】
図１５は、前記サーバ装置１０の全体処理に伴い起動されたｖＤＤスレッド処理部２にて実行されるｖＤＤスレッド処理を示すフローチャートである。
【００７７】
前記図１３で示したサーバ装置１０におけるステップＳ２〜Ｓ４→ＳＡでの処理に伴い、接続要求のあったクライアント装置２０(No.n)に対応したｖＤＤスレッド処理部２(No.n)が起動されると、初期化処理（ステップＡ１）と共に当該ｖＤＤスレッド処理部２に発行されたｖＤＤＮｏ．(No.n)がｖＤＤＩＤに決定され（ステップＡ２）、図１６における応答時間計測処理に移行される（ステップＡＢ）。
【００７８】
図１６は、前記サーバ装置１０におけるｖＤＤスレッド処理（ＳＡ）に伴いサーバ・デーモンＳＤの応答時間計測部１にて実行される応答時間計測処理（ＡＢ）を示すフローチャートである。
【００７９】
この応答時間計測処理は、今回接続されたクライアント装置２０（No.n）の当該サーバ装置１０に対する通信応答時間を計測すると共に、その応答時間に応じて該クライアント装置２０（No.n）に転送すべき生成された描画データの圧縮エンコード処理を行う優先順位を設定するものである。
【００８０】
この応答時間計測処理が起動されると、先ず、メモリ１４に確保された応答時間Ｎ、計測カウンタＣ（ｍｓ）の内容がクリアされ（ステップＢ１）、今回接続されたクライアント装置２０(No.n)に対して応答時間計測用のリクエスト信号が送信される（ステップＢ２）。
【００８１】
すると、前記計測カウンタＣ（ｍｓ）のカウントが開始され（ステップＢ３）、前記リクエスト信号を送ったクライアント装置２０(No.n)からの応答信号の受信待機状態になる（ステップＢ４）。
【００８２】
ここで、前記クライアント装置２０(No.n)からの応答信号の受信がない状態では（ステップＢ４（Ｎｏ））、前記ステップＢ１からの処理が再実行され、前記計測用リクエスト信号の送信と計測カウンタＣ（ｍｓ）のカウント開始が繰り返される（ステップＢ１〜Ｂ４）。
【００８３】
そして、前記クライアント装置２０(No.n)からの応答信号が受信されたと判断されると（ステップＢ４（Ｙｅｓ））、前記計測カウンタＣが停止され（ステップＢ５）、前記応答時間Ｎに当該計測カウンタＣ（ｍｓ）が加算された値が合計応答時間Ｎ（＝Ｎ＋Ｃ）として更新される（ステップＢ６）。
【００８４】
ここで、前記ステップＢ６までの処理に伴う測定処理が予め設定されたＭ回以上行われたか否か判断され（ステップＢ７）、Ｍ回以上に達していないと判断された場合には（ステップＢ７（Ｎｏ））、前記計測カウンタＣ（ｍｓ）が再びクリアされ（ステップＢ８）、前記ステップＢ２以降の測定処理が同様に繰り返される（ステップＢ２〜Ｂ７）。
【００８５】
そして、前記ステップＢ６までの処理に伴う測定処理が予め設定されたＭ回以上行われたと判断された場合には（ステップＢ７（Ｙｅｓ））、前記合計応答時間Ｎを測定回数Ｍで除算した平均応答時間Ｎ（＝Ｎ／Ｍ）が算出され、今回接続されたクライアント装置２０（No.n）の当該サーバ装置１０に対する通信応答時間Ｎとされる（ステップＢ９）。
【００８６】
すると、この通信応答時間Ｎの長さが前記図２で示した応答時間／プライオリティ関連テーブル１Ｔに基づき判断され、当該Ｎが高速の１１（ｍｓ）未満と判断された場合には（ステップＢ１０（Ｙｅｓ））、優先順位（プライオリティ）が低い“１”に設定される（ステップＢ１１）。
【００８７】
また、前記通信応答時間Ｎの長さが１１（ｍｓ）以上で１０１（ｍｓ）未満の通常速度と判断された場合には（ステップＢ１２（Ｙｅｓ））、優先順位（プライオリティ）が中位の“２”に設定される（ステップＢ１３）。
【００８８】
そしてまた、前記通信応答時間Ｎの長さが低速の１０１（ｍｓ）以上と判断された場合には（ステップＢ１２（Ｎｏ））、優先順位（プライオリティ）が高い“３”に設定される（ステップＢ１４）。
【００８９】
このような応答時間計測処理により、クライアント装置２０の応答時間に応じた描画データエンコード処理の優先順位が設定されると、例えば図１７に示すように、現在接続中にある各クライアント装置２０…毎の優先順位がメモリ１４に記憶設定される（ステップＡ３）。
【００９０】
図１７は、前記サーバ装置１０における応答時間検索処理に伴いメモリ１４に設定記憶された各クライアント装置２０…の設定優先順位（プライオリティ・データ）を示す図である。
【００９１】
すなわち、例えばクライアント装置２０（ＣＬａ）は応答時間が９ｍｓと早いのでその優先順位は低く“１”、クライアント装置２０（ＣＬｂ）は応答時間が１０１ｍｓと遅いのでその優先順位は高く“３”、またクライアント装置２０（ＣＬｃ）は応答時間が１４ｍｓと通常速度なのでその優先順位は“２”として設定記憶される。
【００９２】
ここで、当該ｖＤＤスレッド処理が実行されているウインドウ・システムＷＳ(No.n)のフレーム・バッファＦＢにおいて、クライアント装置２０(No.n)からのイベント入力に応じたアプリケーションによって生成された描画データの書き換えがあったと判断されると（ステップＡ４（Ｙｅｓ））、この新たな描画データが読み込まれ（ステップＡ５）、前記図３（Ａ）で示したように、当該新たな描画データに対しｖＤＤＩＤ(No.n)と前記設定された優先順位（プライオリティデータ）とを付加したフォーマットの未処理描画データ（送信データ）２Ｖが生成される（ステップＡ６）。
【００９３】
すると、ハード・ウエア・コントローラＨＷＣにおけるＨＷＣｖＤＤ通信スレッド処理部３へのデータ送信が可能な状態か否かが判断され（ステップＡ７）、データ送信可能な状態であると判断されると（ステップＡ７（Ｙｅｓ））、前記ステップＡ６にて生成された未処理描画データ（送信データ）２ＶがＨＷＣｖＤＤ通信スレッド処理部３へ送信される（ステップＡ８）。
【００９４】
一方、前記ＨＷＣｖＤＤ通信スレッド処理部３から圧縮エンコード処理された処理済み描画データ（受信データ）３０Ｖ（図３（Ｂ）参照）が当該ｖＤＤスレッド処理部２に対して送信されたと判断された場合には（ステップＡ９（Ｙｅｓ））、その処理済み描画データ３０Ｖが受信され（ステップＡ１０）、サーバ・デーモンＳＤから対応するクライアント装置２０へ送信される（ステップＡ１１）。
【００９５】
ここで、サーバ処理の終了指示が判断された場合には（ステップＡ１２（Ｙｅｓ））、前記一連のｖＤＤスレッド処理が終了される（ステップＡ１３）。
【００９６】
図１８は、前記サーバ装置１０のハード・ウエア・コントローラＨＷＣによるＨＷＣ処理を示すフローチャートである。
【００９７】
ＨＷＣ処理が起動されると、描画処理ＨＷ回路３０の初期化処理が行われ（ステップＣ１）、前記ｖＤＤスレッド処理部２…に対する通信ポートが設定される（ステップＣ２）。
【００９８】
また、メモリ１４に対して、前記図８で示したデータバッファ１４ａ、前記図９で示したスケジュールテーブル[1]１４ｂ、前記図１１で示した処理済みバッファ１４ｃ、前記図１２で示したスケジュールテーブル１４ｄが確保されると共に、当該各バッファ１４ａ，１４ｃおよびテーブル[1]１４ｂ，[2]１４ｄそれぞれの書込みを制御するためのフラグ（書込みフラグ）が“０”（書込み可）に設定される（ステップＣ３）。
【００９９】
すると、図２０にて後述するＨＷデータ書込みスレッド処理部４によるＨＷデータ書込みスレッド処理（ステップＣＥ）、図２１にて後述するＨＷエンコード実行スレッド処理部５によるＨＷエンコード実行スレッド処理（ステップＣＦ）、図２２にて後述するＨＷデータ読込みスレッド処理部６によるＨＷデータ読込みスレッド処理（ステップＣＧ）が起動される。
【０１００】
そして、前記ｖＤＤ通信スレッド処理部２…との間でデータ送受信処理が行われた際に（ステップＣ４）、当該通信処理のあったｖＤＤ通信スレッド処理部２が新規のクライアント装置２０との接続に伴い対応付けられて立ち上げられた新規のｖＤＤ通信スレッド処理部２であるか否かが判断され（ステップＣ５）、新規のｖＤＤ通信スレッド処理部２であると判断された場合には（ステップＣ５（Ｙｅｓ））、この新規のｖＤＤ通信スレッド処理部２に対応した通信スレッド処理を行うため、図１９にて後述するＨＷＣｖＤＤ通信スレッド処理部３によるＨＷＣｖＤＤ通信スレッド処理（ステップＣＤ）が起動される。
【０１０１】
この後、前記ｖＤＤスレッド処理部２…からの未処理描画データ２Ｖの受信処理や前記ｖＤＤスレッド処理部２…に対する処理済み描画データ３０Ｖの送信処理など、一切のデータ送受信処理が終了したと判断されると（ステップＣ６（Ｙｅｓ））、リソースが解放されて前記一連のＨＷＣ処理が終了される(ステップＣ７)。
【０１０２】
図１９は、前記サーバ装置１０におけるＨＷＣ処理での新規ｖＤＤスレッド処理部２との通信に伴い起動されるＨＷＣｖＤＤ通信スレッド処理を示すフローチャートである。
【０１０３】
このＨＷＣｖＤＤ通信スレッド処理が起動されると、初期化処理（ステップＤ１）の後、図１１における処理済みデータバッファ１４ｃのステータスが読み込まれ（ステップＤ２）、ステータス“０”（未処理）にセットされているバッファが存在するか否か判断される（ステップＤ３）。
【０１０４】
ここで、ステータス“０”（未処理）にセットされているバッファが存在すると判断されると（ステップＤ３（Ｙｅｓ））、当該ステータス“０”のバッファに記憶されている処理済み描画データ３０Ｖ（図３（Ｂ）参照）が読み込まれ（ステップＤ４）、同バッファのステータスが“１”（処理済み）に設定される（ステップＤ５）。
【０１０５】
すると、前記ステータス“０”（未処理）のバッファから読み込まれた処理済み描画データ３０Ｖ（図３（Ｂ）参照）に対応付けられたｖＤＤＩＤ(No.n)が確認され（ステップＤ６）、同ｖＤＤＩＤ(No.n)のところのｖＤＤスレッド処理部２(No.n)へのデータ送信が可能な状態にあるか否か判断される（ステップＤ７）。
【０１０６】
ここで、データ送信可能であると判断されると（ステップＤ７（Ｙｅｓ））、前記ｖＤＤＩＤ(No.n)のところのｖＤＤスレッド処理部２(No.n)に対して前記処理済みバッファ１４ｃから読み込まれた処理済み描画データ３０Ｖが送信される（ステップＤ８）。
【０１０７】
そして、前記処理済み描画データのｖＤＤスレッド処理部２への送信が終了するか（ステップＤ９（Ｙｅｓ））、または前記ステップＤ３において、図１１における処理済みデータバッファ１４ｃでステータス“０”（未処理）にセットされているバッファが存在しないと判断された場合には（ステップＤ３（Ｎｏ））、次に、同ｖＤＤスレッド処理部２から当該ＨＷＣｖＤＤ通信スレッド処理部３に対する未処理描画データ２Ｖ（図３（Ａ）参照）の送信が有るか否かが判断される（ステップＤ１０）。
【０１０８】
前記ｖＤＤスレッド処理部２からの未処理描画データ２Ｖ（図３（Ａ）参照）の送信が有ったと判断されると（ステップＤ１０（Ｙｅｓ））、当該未処理描画データ２Ｖが受信され（ステップＤ１１）、このデータ受信が終了したと判断されると（ステップＤ１２（Ｙｅｓ））、前記図８で示したデータバッファ１４ａの書込みフラグが“０”（書込み可）に設定されているか否か判断される（ステップＤ１３）。
【０１０９】
ここで、データバッファ１４ａの書込みフラグが“０”（書込み可）に設定されていると判断された場合には（ステップＤ１３（Ｙｅｓ））、当該書込みフラグが“１”にセットされて書込み不可の排他制御が行われると共に（ステップＤ１４）、前記図９で示したスケジュールテーブル[1]１４ｂにおけるステータス“１”（処理済み：ＤＭＡ転送済み）のところの書込エリアが判断確認される（ステップＤ１５，Ｄ１６）。
【０１１０】
そして、前記スケジュールテーブル[1]１４ｂにおけるステータス“１”（処理済み：ＤＭＡ転送済み）のところの書込エリアが確認されると（ステップＤ１５（Ｙｅｓ））、このテーブル[1]１４ｂの書込エリアに対して、前記ステップＤ１１においてｖＤＤスレッド処理部２から受信された未処理描画データ２Ｖ（図３（Ａ）参照）のｖＤＤＩＤ(No.n)と対応付けてその画像設定情報（色解像度データ[Src_color(BPP)]、サイズデータ[Src_HW]、描画位置データ[Src_XY]、エンコード種類データ[Encode種類]）が登録される（ステップＤ１７）。
【０１１１】
すると、前記図８で示したデータバッファ１４ａにおけるステータス“１”（処理済み：ＤＭＡ転送済み）のところの書込エリアが判断確認される（ステップＤ１８，Ｄ１９）。
【０１１２】
そして、前記データバッファ１４ａにおけるステータス“１”（処理済み：ＤＭＡ転送済み）のところの書込エリアが確認されると（ステップＤ１８（Ｙｅｓ））、このバッファ１４ａの書込エリアに対して、前記ステップＤ１１においてｖＤＤスレッド処理部２から受信された未処理描画データ２Ｖ（図３（Ａ）参照）の画像データが登録され、ステータス“０”（未処理）に設定される。この際、当該未処理描画データ２Ｖの画像データが登録されたデータバッファ１４ａにおけるバッファ番号(No)は、同未処理描画データ２Ｖに対応するｖＤＤＩＤ(No.n)および画像設定情報が登録された前記スケジュールテーブル[1]１４ｂの書込エリアに対しても対応付けられて登録される（ステップＤ２０）。
【０１１３】
すると、前記データバッファ１４ａの書込みフラグが“０”（書込み可）に設定されて、書込み不可の排他制御が解除された後（ステップＤ２１）、当該データバッファ１４ａに対して未処理描画データ２Ｖの登録更新が有ったことがＨＷデータ書込みスレッド処理部４に対して通知される（ステップＤ２２）。
【０１１４】
この後、終了コマンドの送信が有ったと判断されない状態では（ステップＤ２３（Ｎｏ）、前記同様にステップＤ２以降のＨＷＣｖＤＤ通信スレッド処理が繰り返され、終了コマンドの送信が有ったと判断された場合には（ステップＤ２３（Ｙｅｓ））、リソースが解放されて前記一連のＨＷＣｖＤＤ通信スレッド処理が終了される(ステップＤ２４)。
【０１１５】
図２０は、前記サーバ装置１０におけるＨＷＣｖＤＤ通信スレッド処理部３からの未処理描画データ２Ｖの更新通知に伴い起動されるＨＷデータ書込みスレッド処理を示すフローチャートである。
【０１１６】
このＨＷデータ書込みスレッド処理が起動されると、初期化処理が行われると共に、前記図１０で示した描画処理ＨＷ回路３０内の保存メモリ３４のメモリマップＮｏがクリアされ、そのメモリ容量に応じた最大のメモリマップＮｏが設定される（ステップＥ１）。
【０１１７】
ここで、前記ＨＷＣｖＤＤ通信スレッド処理部３からの未処理描画データ２Ｖの更新通知が有ったと判断されると（ステップＥ２（Ｙｅｓ））、前記データバッファ１４ａ（図８参照）に現在登録されている未処理描画データ２Ｖ（図３（Ａ）参照）の中で最も優先順位（プライオリティデータ）の高い未処理描画データ２Ｖが読み込まれる（ステップＥ３）。
【０１１８】
そして、前記保存メモリ３４の現在のメモリマップＮｏがその最大のメモリマップＮｏを超えたか否か判断され（ステップＥ４）、超えないと判断された場合には（ステップＥ４（Ｎｏ））、当該メモリマップＮｏがインクリメントされ（ステップＥ５）、また、超えたと判断された場合には（ステップＥ４（Ｙｅｓ））、当該メモリマップＮｏが初期化され（ステップＥ６）、新たなメモリマップＮｏのところの保存メモリ３４の領域アドレスが算出される（ステップＥ７）。
【０１１９】
すると、ＤＭＡ回路１７によるＤＭＡ転送の書込みが可能な状態にあるか否か判断確認され（ステップＥ８）、ＤＭＡ書込可能であると確認された場合には（ステップＥ８（Ｙｅｓ））、前記未処理描画データ２Ｖが読み込まれたデータバッファ１４ａのバッファ番号（Ｎｏ）に対応付けられてスケジュールテーブル[1]１４ｂに登録されている画像設定情報（[Src_color(BPP)][Src_HW][Src_XY][Encode種類]）が読み込まれると共に（ステップＥ９）、当該未処理描画データ２Ｖが読み込まれたデータバッファ１４ａのステータスが“１”（処理済み：ＤＭＡ転送済み）に更新される（ステップＥ１０）。
【０１２０】
すると、前記図１２で示したスケジュールテーブル[2]１４ｄにおけるステータス“１”（処理済み：エンコード済み）のところの書込エリアが判断確認され（ステップＥ１１，Ｅ１２）、前記ステップＥ９にてスケジュールテーブル[1]１４ｂから読み込まれた画像設定情報（[Src_color(BPP)][Src_HW][Src_XY][Encode種類]）がそのｖＤＤＮｏおよび前記ステップＥ７にて算出された保存メモリ３４に対する書込み先アドレス，読込み先アドレスと共に登録され、ステータス“０”（未処理）に設定される（ステップＥ１３）。
【０１２１】
すると、前記スケジュールテーブル[2]１４ｄに今回登録された保存メモリ３４に対する書込み先アドレスが前記ＤＭＡ回路１７のレジスタに設定され（ステップＥ１４）、前記データバッファ１４ａ（図８参照）から今回読み込まれた未処理描画データ２Ｖの、描画処理ＨＷ回路３０（図７参照）の保存メモリ３４（図１０参照）に対するＤＭＡ転送の書込み処理が実行される（ステップＥ１５）。
【０１２２】
そして、前記ＤＭＡ転送による書込み処理の終了割込みが有ったと判断されると（ステップＥ１６（Ｙｅｓ））、今回描画処理ＨＷ回路３０へＤＭＡ転送した未処理描画データ２Ｖの画像設定情報を読み込んだところのスケジュールテーブル[1]１４ｂの書込みエリアのステータスが“１”（処理済み）に更新される（ステップＥ１７）。
【０１２３】
すると、前記データバッファ１４ａ（図８参照）にステータス“０”が設定されて処理待ちとなっている未処理描画データ２Ｖが有るか否か判断され（ステップＥ１８）、当該処理待ちの未処理描画データ２Ｖが有ると判断された場合には（ステップＥ１８（Ｙｅｓ））、前記同様にステップＥ３からの優先順位（プライオリティデータ）の高い順の未処理描画データ２Ｖの読込み処理およびＤＭＡ転送書込み処理が実行される（ステップＥ３〜Ｅ１７）。
【０１２４】
一方、前記データバッファ１４ａ（図８参照）にステータス“０”が設定されて処理待ちとなっている未処理描画データ２Ｖが無いと判断された場合には（ステップＥ１８（Ｎｏ））、前記ＨＷＣｖＤＤ通信スレッド処理部３からの未処理描画データ２Ｖの更新通知の判断待機状態になる（ステップＥ２）。
【０１２５】
図２１は、前記サーバ装置１０のハード・ウエア・コントローラＨＷＣにおけるＨＷエンコード実行スレッド処理部５でのＨＷエンコード実行スレッド処理を示すフローチャートである。
【０１２６】
このＨＷエンコード実行スレッド処理では、描画処理ＨＷ回路３０に対し保存メモリ３４に書込まれた未処理描画データ２Ｖの圧縮エンコード処理を実行させる。
【０１２７】
ＨＷエンコード実行スレッド処理が起動されると、初期化処理（ステップＦ１）の後、図１２におけるスケジュールテーブル[2]１４ｄにおいてステータス“０”（未処理）にセットされている未処理の画像設定情報の書込みエリアが存在するか否か判断される（ステップＦ２）。
【０１２８】
ここで、スケジュールテーブル[2]１４ｄにおいてステータス“０”（未処理）にセットされている未処理の画像設定情報の書込みエリアが存在すると判断された場合には（ステップＦ２（Ｙｅｓ））、当該スケジュールテーブル[2]１４ｄの書込みフラグが“１”にセットされて書込み不可の排他制御が行われると共に（ステップＦ３）、同書込みエリアに記憶されている未処理の画像設定情報（[書込み先アドレス][読込み先アドレス][vDD_No][Src_color(BPP)][Src_HW][Src_XY][Encode種類]）が読み込まれる（ステップＦ４）。
【０１２９】
すると、描画処理ＨＷ回路３０におけるエンコード処理回路３５がエンコード処理可能な状態であるか否か判断され（ステップＦ５）、エンコード処理可能な状態であると判断されると（ステップＦ５（Ｙｅｓ））、前記ステップＦ４においてスケジュールテーブル[2]１４ｄから読み込んだ未処理の画像設定情報（[書込み先アドレス][読込み先アドレス][vDD_No][Src_color(BPP)][Src_HW][Src_XY][Encode種類]）が描画処理ＨＷ回路３０のレジスタ３３に設定される（ステップＦ６）。
【０１３０】
すると、前記図２０におけるＨＷデータ書込みスレッド処理により描画処理ＨＷ回路３０の保存メモリ３４にＤＭＡ転送されて書込まれた未処理描画データ２Ｖのエンコード処理回路３５による圧縮エンコード処理が実行される。この場合、エンコード処理の対象となる未処理描画データ２Ｖは、前記レジスタ３３に設定された画像設定情報に基づき、保存メモリ３４の[書込み先アドレス]から読み出されると共に、選択された圧縮方式によりエンコード処理される。そして、エンコード処理された処理済み描画データ３０Ｖは、同画像設定情報に基づき、保存メモリ３４の[読込み先アドレス]に格納される（ステップＦ７）。
【０１３１】
そして、前記エンコード処理の終了割込みが有ったと判断されると（ステップＦ８（Ｙｅｓ））、前記スケジュールテーブル[2]１４ｄの書込みフラグが“０”（書込み可）に設定されて、書込み不可の排他制御が解除された後（ステップＦ９）、今回描画処理ＨＷ回路３０にて圧縮エンコード処理した未処理描画データ２Ｖの画像設定情報を読み込んだところのスケジュールテーブル[2]１４ｄの書込みエリアのステータスが“１”（処理済み）に更新され（ステップＦ１０）、前記ステップＦ２からの処理に戻る。
【０１３２】
図２２は、前記サーバ装置１０のハード・ウエア・コントローラＨＷＣにおけるＨＷデータ読込みスレッド処理部６でのＨＷデータ読込みスレッド処理を示すフローチャートである。
【０１３３】
このＨＷデータ読込みスレッド処理では、前記描画処理ＨＷ回路３０（図７参照）の保存メモリ３４に格納された処理済み描画データ３０ＶのＤＭＡ転送による読込み処理および処理済みバッファ１４ｃ（図１１参照）への書込み処理を実行させる。
【０１３４】
ＨＷデータ読込みスレッド処理が起動されると、初期化処理（ステップＧ１）の後、図１２におけるスケジュールテーブル[2]１４ｄにおいてステータス“１”（処理済み）にセットされている画像設定情報の書込みエリアが存在するか否か判断される（ステップＧ２）。
【０１３５】
ここで、スケジュールテーブル[2]１４ｄにおいてステータス“１”（処理済み）にセットされている画像設定情報の書込みエリアが存在すると判断された場合には（ステップＧ２（Ｙｅｓ））、当該スケジュールテーブル[2]１４ｄの書込みフラグが“１”にセットされて書込み不可の排他制御が行われると共に（ステップＧ３）、同書込みエリアに記憶されている画像設定情報（[書込み先アドレス][読込み先アドレス][vDD_No][Src_color(BPP)][Src_HW][Src_XY][Encode種類]）が読み込まれる（ステップＧ４）。
【０１３６】
すると、ＤＭＡ回路１７によるＤＭＡ読込みが可能な状態で有るか否かが判断確認され（ステップＧ５）、ＤＭＡ読込みが可能な状態で有ると判断されると（ステップＧ５（Ｙｅｓ））、前記ステップＧ４においてスケジュールテーブル[2]１４ｄから読込まれた保存メモリ３４に対する読込み先アドレスが前記ＤＭＡ回路１７のレジスタに設定され（ステップＧ６）、描画処理ＨＷ回路３０（図７参照）の保存メモリ３４（図１０参照）から処理済み描画データ３０ＶのＤＭＡ転送による読込み処理が実行される（ステップＧ７）。
【０１３７】
そして、前記ＤＭＡ転送による読込み処理の終了割込みが有ったと判断されると（ステップＧ８（Ｙｅｓ））、ＤＭＡ転送された処理済み描画データ３０Ｖに対して、前記ステップＧ４においてスケジュールテーブル[2]１４ｄから読込まれた当該処理済み描画データ３０Ｖに対応するところのｖＤＤＩＤ[vDD_No]が付加される（ステップＧ９）。
【０１３８】
そして、前記図１１で示した処理済みバッファ１４ｃにおけるステータス“１”（処理済み：処理済み描画データの応答送信済み）のところの書込エリアが判断確認される（ステップＧ１０，Ｇ１１）。
【０１３９】
そして、前記処理済みバッファ１４ｃにおけるステータス“１”（処理済み）のところの書込エリアが確認されると（ステップＧ１０（Ｙｅｓ））、この処理済みバッファ１４ｃの書込エリアに対して、前記ステップＧ７〜Ｇ９において描画処理ＨＷ回路３０から読込まれｖＤＤＩＤが付加生成された処理済み描画データ３０Ｖ（図３（Ｂ）参照）が書込まれ、ステータス“０”（未処理）に設定される（ステップＧ１２）。
【０１４０】
すると、前記スケジュールテーブル[2]１４ｄの書込みフラグが“０”（書込み可）に設定されて、書込み不可の排他制御が解除され（ステップＧ２１）、前記ステップＧ２からの処理に戻る。
【０１４１】
こうして、各クライアント装置２０…の応答時間に応じた優先順位の順番で圧縮エンコード処理された処理済み描画データ３０Ｖ（図３（Ｂ）参照）が、メモリ１４内の処理済みバッファ１４ｃ（図１１参照）に書込まれると、前記図１９で示したＨＷＣｖＤＤ通信スレッド処理におけるステップＤ２〜Ｄ９の処理に従い、当該処理済み描画データ３０Ｖ（図３（Ｂ）参照）は、そのｖＤＤＩＤ[vDD_No]に対応するところのｖＤＤスレッド処理部２(No.n)へ送信される。
【０１４２】
すると、前記図１５で示したｖＤＤスレッド処理におけるステップＡ９〜Ａ１２の処理に従い、前記ＨＷＣｖＤＤ通信スレッド処理部３から受信された処理済み描画データ３０Ｖ（図３（Ｂ）参照）が、サーバ・デーモンＳＤから対応するクライアント装置２０(No.n)へ送信される。
【０１４３】
これにより、各クライアント装置２０…からのイベント入力に応じて、サーバ装置１０の各アプリケーションプログラムにより生成された描画データ（未処理描画データ２Ｖ（図３（Ａ）参照））は、当該各クライアント装置２０…の応答時間に応じて設定された優先順位（プライオリティデータ）の順番で圧縮エンコード処理された処理済み描画データ３０Ｖ（図３（Ｂ）参照）として生成され、各対応するクライアント装置２０…へ応答送信されて表示される。
【０１４４】
この場合、未処理描画データ２Ｖの圧縮エンコード処理は、描画処理ＨＷ回路３０におけるハードウエア処理により行うが、この描画処理ＨＷ回路３０に対して当該未処理描画データ２Ｖを転送して書込み、またエンコード処理された処理済み描画データ３０Ｖを当該描画処理ＨＷ回路３０から転送して読み込む処理は、前記図４を参照して説明したように、そのハードウエア処理によるエンコード処理とは並列処理となるＤＭＡ転送により実行されるので、描画処理ＨＷ回路３０を効率良く稼動させて、サーバ装置１０側全体のレスポンスを向上させることができる。
【０１４５】
したがって、前記構成のシン・クライアント・システムのサーバ装置１０によるクライアント装置２０からのイベント入力に応じた描画データの生成転送機能によれば、ウインドウ・システムＷＳのアプリケーションプログラムにより生成された（未処理）描画データ２Ｖは、圧縮エンコード処理をハードウエア処理で行う描画処理ＨＷ回路３０に対しＤＭＡ転送により書込まれてエンコード実行され、また、エンコード処理された（処理済み）描画データ３０Ｖは、当該描画処理ＨＷ回路３０からＤＭＡ転送により読込まれた後、前記クライアント装置２０に対して応答送信されるので、描画処理ＨＷ回路３０によるエンコード処理中に、当該ＨＷ回路３０への未処理描画データ２Ｖの書込み処理および同ＨＷ回路３０からの処理済み描画データ３０Ｖの読込み処理を並列に行うことができ、前述したとおり、描画処理ＨＷ回路３０を効率良く稼動させて、サーバ装置１０側全体のレスポンスを向上させることができる。
【０１４６】
しかも、複数のクライアント装置２０…からのイベント入力に応じた複数のウインドウ・システムＷＳのアプリケーションプログラムによりそれぞれの描画データが生成された場合、生成された（未処理）描画データ２Ｖ…は、各対応するクライアント装置２０…の通信応答時間に応じて設定された優先順位に従って、応答時間の遅いクライアント装置２０に対する未処理描画データ２Ｖから優先的に前記描画処理ＨＷ回路３０へＤＭＡ転送されてエンコード処理され同クライアント装置２０へ応答送信されるので、各クライアント装置２０…へ送信すべき描画データのエンコード処理をより効率良く行い、サーバ装置１０側全体のレスポンスをさらに向上できるようになる。
【０１４７】
なお、本願発明は、前記各実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。さらに、前記各実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、各実施形態に示される全構成要件から幾つかの構成要件が削除されたり、幾つかの構成要件が異なる形態にして組み合わされても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除されたり組み合わされた構成が発明として抽出され得るものである。
【図面の簡単な説明】
【０１４８】
【図１】本発明の描画データ処理装置の実施形態に係るシン・クライアント・システムの全体構成を示す機能ブロック図。
【図２】前記シン・クライアント・システムのサーバ装置１０に備えられる応答時間計測処理部１における応答時間／プライオリティ関連テーブル１Ｔを示す図。
【図３】前記シン・クライアント・システムのサーバ装置１０に備えられるｖＤＤスレッド処理部２と描画処理ＨＷ回路３０との間で転送される描画データのフォーマットを示す図であり、同図（Ａ）はｖＤＤスレッド処理部２により生成されて描画処理ＨＷ回路３０へ転送される未処理描画データ２Ｖのフォーマットを示す図、同図（Ｂ）は描画処理ＨＷ回路３０によりエンコード処理されてｖＤＤスレッド処理部２へ転送される処理済み描画データ３０Ｖのフォーマットを示す図。
【図４】前記シン・クライアント・システムのサーバ装置１０において複数のクライアント装置２０…からのイベント入力に応じて各対応するｖＤＤスレッド処理部２…から描画処理ＨＷ回路３０へ転送される未処理描画データ２Ｖの転送タイミングと該描画処理ＨＷ回路３０から各対応するｖＤＤスレッド処理部２…へ転送される処理済み描画データ３０Ｖの転送タイミングとを示すタイミングチャート。
【図５】前記サーバ・クライアント・システムにおけるサーバ装置１０の回路構成を示すブロック図。
【図６】前記シン・クライアント・システムにおけるクライアント装置２０の回路構成を示すブロック図。
【図７】前記サーバ装置１０における描画処理ＨＷ回路３０の構成を示すブロック図。
【図８】前記サーバ装置１０のハード・ウエア・コントローラＨＷＣによってメモリ１４上に確保されるデータバッファ１４ａを示す図。
【図９】前記サーバ装置１０のハード・ウエア・コントローラＨＷＣによってメモリ１４上に確保されるスケジュールテーブル[1]１４ｂを示す図。
【図１０】前記サーバ装置１０の描画処理ＨＷ回路３０に備えられる保存メモリ３４のアドレス領域割り付け状態を示す図。
【図１１】前記サーバ装置１０のハード・ウエア・コントローラＨＷＣによってメモリ１４上に確保される処理済バッファ１４ｃを示す図。
【図１２】前記サーバ装置１０のハード・ウエア・コントローラＨＷＣによってメモリ１４上に確保されるスケジュールテーブル[2]１４ｄを示す図。
【図１３】前記シン・クライアント・システムにおけるサーバ装置１０の全体処理を示すフローチャート。
【図１４】前記シン・クライアント・システムにおけるクライアント装置２０の全体処理を示すフローチャート。
【図１５】前記サーバ装置１０の全体処理に伴い起動されたｖＤＤスレッド処理部２にて実行されるｖＤＤスレッド処理を示すフローチャート。
【図１６】前記サーバ装置１０におけるｖＤＤスレッド処理（ＳＡ）に伴いサーバ・デーモンＳＶの応答時間計測部１にて実行される応答時間計測処理（ＡＢ）を示すフローチャート。
【図１７】前記サーバ装置１０における応答時間検索処理に伴いメモリ１４に設定記憶された各クライアント装置２０…の設定優先順位（プライオリティ・データ）を示す図。
【図１８】前記サーバ装置１０のハード・ウエア・コントローラＨＷＣによるＨＷＣ処理を示すフローチャート。
【図１９】前記サーバ装置１０におけるＨＷＣ処理での新規ｖＤＤスレッド処理部２との通信に伴い起動されるＨＷＣｖＤＤ通信スレッド処理を示すフローチャート。
【図２０】前記サーバ装置１０におけるＨＷＣｖＤＤ通信スレッド処理部３からの未処理描画データ２Ｖの更新通知に伴い起動されるＨＷデータ書込みスレッド処理を示すフローチャート。
【図２１】前記サーバ装置１０のハード・ウエア・コントローラＨＷＣにおけるＨＷエンコード実行スレッド処理部５でのＨＷエンコード実行スレッド処理を示すフローチャート。
【図２２】前記サーバ装置１０のハード・ウエア・コントローラＨＷＣにおけるＨＷデータ読込みスレッド処理部６でのＨＷデータ読込みスレッド処理を示すフローチャート。
【符号の説明】
【０１４９】
１０  …サーバ装置
ＳＤ  …サーバ・デーモン
ＷＳ  …ウインドウ・システム
ＨＷＣ…ハード・ウエア・コントローラ
ＬＤ  …ライブラリ・ドライバ
１  …応答時間計測部
２  …ｖＤＤスレッド処理部
３  …ＨＷＣｖＤＤ通信スレッド処理部
４  …ＨＷデータ書込みスレッド処理部
５  …ＨＷエンコード実行スレッド処理部
６  …ＨＷデータ読込みスレッド処理部
２０  …クライアント装置
１１、２１…ＣＰＵ
１２、２２…バス
１３  …ＨＤＤ
１４、２３…メモリ
１４ａ…データバッファ
１４ｂ…スケジュールテーブル[1]
１４ｃ…処理済みバッファ
１４ｄ…スケジュールテーブル[2]
１５、２４…ビデオメモリ
１６、２５…表示装置
１７  …ＤＭＡ回路
１８、２６…入出力装置
１９、２７…ネットワーク制御部
３０  …描画処理ＨＷ回路
３１  …ＰＣＩExpressインターフェース
３２  …割り込み回路
３３  …レジスタ
３４  …保存メモリ
３５  …エンコード処理回路
３６  …ワークメモリ
Ｎ  …通信ネットワーク
【図１】
2009111502.tif 000003
【図２】
2009111502.tif 000004
【図３】
2009111502.tif 000005
【図４】
2009111502.tif 000006
【図５】
2009111502.tif 000007
【図６】
2009111502.tif 000008
【図７】
2009111502.tif 000009
【図８】
2009111502.tif 000010
【図９】
2009111502.tif 000011
【図１０】
2009111502.tif 000012
【図１１】
2009111502.tif 000013
【図１２】
2009111502.tif 000014
【図１３】
2009111502.tif 000015
【図１４】
2009111502.tif 000016
【図１５】
2009111502.tif 000017
【図１６】
2009111502.tif 000018
【図１７】
2009111502.tif 000019
【図１８】
2009111502.tif 000020
【図１９】
2009111502.tif 000021
【図２０】
2009111502.tif 000022
【図２１】
2009111502.tif 000023
【図２２】
2009111502.tif 000024