"画像を表示するクライアント装置にネットワークを介して接続するサーバ装置であって、前記クライアント装置に入力された操作を表す操作情報を前記クライアント装置から受信する受信部と、前記操作情報に応じた表示画像を取得する取得部と、前記クライアント装置に送信した画像である送信画像と前記表示画像との間で画素情報が一致しない領域を抽出する差分抽出部と、前記操作情報を受信してから前記表示画像が取得されるまでの経過時間を推定する推定部と、前記経過時間に基づいて、前記操作情報を受信してから前記操作情報に対する応答を前記クライアント装置に送信するまでの応答時間が所定値以下となる画質を決定する決定部と、決定された前記画質で前記領域の画像を圧縮した圧縮画像を生成する圧縮部と、前記圧縮画像を前記クライアント装置に送信する送信部と、を備えたことを特徴とするサーバ装置。前記推定部は、過去に受信した前記操作情報に応じた前記表示画像の取得を前記取得部が開始してから、該表示画像に対応する前記圧縮画像の前記クライアント装置に対する送信を前記送信部が完了するまでの処理時間に基づいて、前記経過時間を推定すること、を特徴とする請求項1に記載のサーバ装置。前記処理時間の履歴を記憶する履歴記憶部をさらに備え、前記推定部は、前記履歴記憶部に記憶された前記処理時間に基づいて、前記経過時間を推定すること、を特徴とする請求項2に記載のサーバ装置。前記推定部は、前記履歴記憶部に記憶された前記処理時間の最大値を、前記経過時間の推定値として推定すること、を特徴とする請求項3に記載のサーバ装置。前記推定部は、前記履歴記憶部に記憶された前記処理時間の平均値を、前記経過時間の推定値として推定すること、を特徴とする請求項3に記載のサーバ装置。画像を表示するクライアント装置にネットワークを介して接続するサーバ装置で実行される通信方法であって、前記クライアント装置に入力された操作を表す操作情報を前記クライアント装置から受信する受信ステップと、前記操作情報に応じた表示画像を取得する取得ステップと、前記クライアント装置に送信した画像である送信画像と前記表示画像との間で画素情報が一致しない領域を抽出する差分抽出ステップと、前記操作情報を受信してから前記表示画像が取得されるまでの経過時間を推定する推定ステップと、前記経過時間に基づいて、前記操作情報を受信してから前記操作情報に対する応答を前記クライアント装置に送信するまでの応答時間が所定値以下となる画質を決定する決定ステップと、決定された前記画質で前記領域の画像を圧縮した圧縮画像を生成する圧縮ステップと、前記圧縮画像を前記クライアント装置に送信する送信ステップと、を含むことを特徴とする通信方法。画像を表示するクライアント装置にネットワークを介して接続するコンピュータを、前記クライアント装置に入力された操作を表す操作情報を前記クライアント装置から受信する受信部と、前記操作情報に応じた表示画像を取得する取得部と、前記クライアント装置に送信した画像である送信画像と前記表示画像との間で画素情報が一致しない領域を抽出する差分抽出部と、前記操作情報を受信してから前記表示画像が取得されるまでの経過時間を推定する推定部と、前記経過時間に基づいて、前記操作情報を受信してから前記操作情報に対する応答を前記クライアント装置に送信するまでの応答時間が所定値以下となる画質を決定する決定部と、決定された前記画質で前記領域の画像を圧縮した圧縮画像を生成する圧縮部と、前記圧縮画像を前記クライアント装置に送信する送信部、として機能させるためのサーバプログラム。しかしながら、従来技術では、所定の応答時間を実現することと、画質低下を最低限に抑えることという条件とを、同時に満たすことができないという問題があった。すなわち、画質と応答時間の関係を正確に見積もることができず、例えば所定の応答時間を実現するために必要以上に画質を下げてしまうなどの問題があった。例えば、上述のように通信速度のみに基づいて画質を選択するやり方では、画質と応答時間との関係を正確に見積もることができず、最適な画質を決定することは困難である。なぜなら、応答時間とは単純に通信速度だけによって決まるものではなく、操作が反映されてから、その操作に対応する変化が実際に取得されるまでにどれだけの時間が経過したかという情報にも依存するからである。実施形態のサーバ装置は、受信部と取得部と差分抽出部と推定部と決定部と圧縮部と送信部とを備える。受信部は、操作情報をクライアント装置から受信する。取得部は、操作情報に応じた表示画像を取得する。差分抽出部は、クライアント装置に送信した送信画像と表示画像との間で画素情報が一致しない領域を抽出する。推定部は、操作情報の受信から表示画像の取得までの経過時間を推定する。決定部は、経過時間に基づいて、操作情報の受信から操作情報に対する応答をクライアント装置に送信するまでの応答時間が所定値以下となる画質を決定する。圧縮部は、決定された画質で領域の画像を圧縮した圧縮画像を生成する。送信部は、圧縮画像をクライアント装置に送信する。以下に添付図面を参照して、この発明にかかるサーバ装置の好適な実施形態を詳細に説明する。本実施形態にかかるサーバ装置は、過去の処理時間の履歴を参照し、画面変化が発生する操作情報を受信してから当該操作情報に対応する画像の処理開始までの経過時間処理開始待ち時間を推定する。そして、推定した処理開始待ち時間に応じて、所望の応答時間を実現できる画像処理時の画質を決定する。これにより、所定の応答時間を実現することと、画質低下を最低限に抑えることという条件を両立可能となる。図1は、本実施形態にかかるサーバ装置100を含む画面転送システムの構成例を示す図である。図1に示すように本実施形態の画面転送システムは、サーバとして機能する情報処理装置であるサーバ装置100と、クライアントとして機能する情報処理装置であるクライアント装置200とが、ネットワークを介して接続されている。サーバ装置100と、クライアント装置200との間のネットワーク接続形態は任意であり、例えばインターネット、LANローカルエリアネットワークなどを適用できる。サーバ装置100は、取得部101と、差分抽出部102と、圧縮部103と、送信部104と、履歴記憶部105と、推定部106と、決定部107と、オペレーティングシステム108と、受信部109と、を含む。取得部101は、任意のタイミングで、オペレーティングシステム108からサーバ装置100の画面領域全体に表示する表示画像の画面情報を取得する。この表示画像は、クライアント装置200に対してユーザ等により入力された操作を表す操作情報を反映した画像である。取得部101は、例えば表示画像の画面情報を取得するための所定のAPIをコールする呼び出すことにより画面情報を取得する。差分抽出部102は、クライアント装置200に対して前回送信した画像である送信画像と、表示画像との間で画素情報が一致しない領域を抽出する。例えば、差分抽出部102は、取得部101によって取得された画面情報と、前回取得された画面情報との差分を抽出する。差分抽出部102は、画面領域全体の画面情報を格納するための記憶領域フレームバッファを有しており、取得部101から受け取った画面情報を格納する。さらに差分抽出部102は、取得部101から画面情報を受け取るごとに、前回格納した情報から得た差分を表す情報を画面更新として出力する。図2は、画面更新のデータ構造の一例を示す図である。画面更新は、更新する領域の位置を表す領域情報と、更新する領域の更新後の画像情報との対を少なくとも1個含む。画像情報は、画面領域の一部分に相当する矩形状のビットマップデータ矩形の各画素における赤緑青3色の値などである。領域情報は、画面領域における画像情報の表示位置を示す数値フレームバッファに更新画像を格納する際の格納位置を表す数値である。図3は、更新する領域の一例を説明するための図である。図3に示すように、例えば、画面領域の左上角を0,0、右下角をWidth,Heightとしたときの、表示位置の左上座標Left,Topと右下座標Right,Bottomの組み合わせが領域情報である。また、画面更新は、領域情報と画像情報の対の個数を含んでいる。図1に戻り、圧縮部103は、画面更新に含まれる画像情報に対しJPEG等の所定の圧縮方式による圧縮処理を実行する。圧縮部103は、画質情報を格納するための記憶領域を有する。画質情報は、例えばJPEGであればクオリティであり、1~100までの1刻みの値である。圧縮部103は、指定された画質情報に基づいて圧縮処理を実行する。送信部104は、入力された画面更新をネットワーク上で伝送可能な形式に変換しクライアント装置200に対して送信する。送信部104は、送信処理が完了すると、取得部101に対して、次の画面情報の取得処理を開始するよう通知する。履歴記憶部105は、過去に作成された画面更新の履歴を格納するための記憶領域を有する。この履歴には、画面情報の取得処理が開始された時刻、送信処理が完了した時刻、および、領域情報などの情報が格納される。なお、履歴記憶部105は、HDDHardDiskDrive、光ディスク、メモリカード、RAMRandomAccessMemoryなどの一般的に利用されているあらゆる記憶媒体により構成することができる。推定部106は、履歴記憶部105に格納された画面更新の履歴に基づいて処理開始待ち時間を推定する。処理開始待ち時間とは、ユーザの操作を表す操作情報を受信してオペレーティングシステム108で当該操作情報に対応する画面変化が発生してから、その画面変化を反映した画像表示画像を取得部101が取得するまでの経過時間である。決定部107は、推定部106で推定された処理開始待ち時間に基づき、応答時間が所定値以下に収まるような最高限度の画質を決定する。オペレーティングシステム108は、入出力機能、および、ディスクやメモリの管理機能など、多くのアプリケーションから共通して利用される基本的な機能や、デスクトップ環境を提供する。各機能は、APIを介して提供される。例えば、オペレーティングシステム108は、デスクトップの画面情報を取得するためのAPI、キーボードやマウス等の入力操作を合成するAPI、および、現在時刻を取得するAPIなどを提供する。受信部109は、ネットワークを介してクライアント装置200から操作情報を受信する。次に、クライアント装置200の構成例について説明する。クライアント装置200は、受信部201と、伸張部202と、フレームバッファ203と、表示部204と、取得部205と、送信部206とを含む。受信部201は、ネットワークを介してサーバ装置100から画面更新を受信する。伸張部202は、画面更新に含まれる圧縮された画像情報圧縮画像に対して伸張処理を実行する。フレームバッファ203は、画面領域全体の画面情報を格納するための記憶領域を有しており、画面更新を受け取ると、領域情報が示す記憶領域上の情報を画像情報で上書き更新する。表示部204は、フレームバッファ203に格納された情報を表示する。取得部205は、ユーザからの入力操作を受け取る。送信部206は、入力操作を表す操作情報をネットワークに送出する。次に、このように構成された本実施形態にかかるサーバ装置100による画面転送処理について図4を用いて説明する。図4は、本実施形態における画面転送処理の全体の流れを示すフローチャートである。サーバ装置100とクライアント装置200とが、ネットワークを介して物理的に接続されている。本実施形態では、ネットワークはIPInternetProtocolネットワークであるとする。画面転送を実行していない状態では、オペレーティングシステム108は、サーバ装置100で実行されるオペレーティングシステム108や各アプリケーションの動作状態に応じて画面の状態を適宜更新する。画面転送の実行が開始されると、取得部101は、以下の画面更新の取得処理を実行する。始めに取得部101は、オペレーティングシステム108が提供する、現在時刻を取得するAPIをコールし、得られた値を画面情報の取得開始時刻として履歴記憶部105に出力する。図5は、履歴記憶部105に記憶するデータのデータ構造の一例を示す図である。図5に示すように、履歴記憶部105は、取得開始時刻と、送信完了時刻と、領域情報とを対応付けたデータを記憶する。履歴記憶部105は、入力を受け取るごとに、新たなエントリを作成し、取得開始時刻を記録する。図5では、No1で示したエントリ1201を既に記憶している状態で、取得開始時刻として10110を受け取った後の様子を示している。このとき新規のエントリ1202がNo2として作成され、取得開始時刻が記録される。図4に戻り、取得部101は、デスクトップの画面情報を取得するためのAPIをコールし画面情報を取得するステップS1001。取得部101は、取得した画面情報を差分抽出部102に出力する。差分抽出部102は、画面情報を入力されると、自身が有するフレームバッファ内の画面情報と比較し、内容画素値が異なる部分領域を差分として抽出するステップS1002。画面転送の開始直後は、フレームバッファ全体の画面情報が差分として抽出される。差分抽出部102は、差分が抽出されたか否かを判断するステップS1003。差分が存在しない場合ステップS1003:No、すなわちフレームバッファ内の画面情報と入力された画面情報が完全に同一である場合は、取得部101は、履歴記憶部105に最新のエントリ図5の例ではNo2の削除を指示した後で、一定時間30ミリ秒など待機し、ステップS1001に戻って処理を繰り返す。差分が存在する場合ステップS1003Yes、差分抽出部102は、圧縮部103に画面更新を出力する。図6は、画面更新の例を説明するための図である。ここでは、フレームバッファの解像度を640×480とし、フレームバッファに格納された画面情報1101に対し、画面情報1102が入力されたと仮定する。この場合、差分は、領域情報Left=100、Top=100、Right=320、Bottom=320と、領域情報Left=320、Top=200、Right=520、Bottom=420に相当する。差分抽出部102は、これらの領域情報と対応する部分の画面情報との対を画面更新として生成する。差分抽出部102は、画面更新の生成が終了すると、圧縮部103に画面更新を出力し圧縮を依頼する。図4に戻り、圧縮部103は、画面更新を受け取ると、決定部107に対し画質情報の取得を依頼するステップS1004。決定部107は、自身が有する記憶領域に格納された画質情報を返答する。圧縮部103は、この画質情報に基づいて画像情報の圧縮を行うステップS1005。圧縮部103は、圧縮処理が完了すると、領域情報と圧縮された画像情報からなる画面更新を送信部104に出力する。送信部104は、画面更新を受け取ると、TCP/IPヘッダを画面更新に付与しネットワークにて伝送可能な形式に変換した後で、クライアント装置200に向けて画面更新を送信するステップS1006。送信された画面更新は、クライアント装置200の受信部201によって受信される。送信部104は、送信が完了すると、現在時刻を取得するAPIをコールし、得られた値を送信完了時刻として履歴記憶部105に記録する。また、送信部104は、送信した画面更新に含まれる領域情報を履歴記憶部105に記録する。図7は、このような処理を行った後の履歴記憶部105の一例を示す図である。図7のエントリ1302は、図5のエントリ1202に対して送信完了時刻および領域情報が追記されたエントリに相当する。この後、送信部104は、取得部101に対し、次の画面情報の取得を依頼する。以後、ステップS1001以降の処理が継続される。次に、画面更新を受信したクライアント装置200による画面更新処理について説明する。クライアント装置200の受信部201は、ネットワークを介して画面更新を受信すると、付与されたTCP/IPを除去した上で、これを伸張部202に出力し、画像情報の伸張を依頼する。伸張部202は、画面更新を受け取ると、圧縮された画像情報の伸張を行う。伸張後の画像情報を含む画面更新をフレームバッファ203に出力する。フレームバッファ203は、画面更新を受け取ると、領域情報が示す記憶領域上の情報を画像情報で上書き更新する。フレームバッファ203上の情報は、表示部204に表示される。以上、サーバ装置100で画面更新が取得されてからクライアント装置200で反映されるまでの処理の流れについて説明した。次に、決定部107が画質を決定する画質決定処理の流れを図8を利用して説明する。図8は、本実施形態における画質決定処理の全体の流れを示すフローチャートである。決定部107の内部では、定期的なタイミングでシグナルを発生するタイマーが動作しており、決定部107はタイマーの動作ごとに以降に述べる処理を実行するステップS1401。決定部107は、始めに、推定部106に対して処理開始待ち時間の推定を指示するステップS1402。推定部106は、指示を受け取ると、処理開始待ち時間の推定を行う。処理開始待ち時間とは、サーバ装置100で、ユーザの操作に対応する画面変化が発生してから、その画面変化を取得部101が取得するまでの経過時間である。図9は、処理開始待ち時間を説明するための図である。図9では、時間軸に対し、画面情報取得、差分抽出、圧縮、および、送信の各処理に要する時間が順に並んでいる。さらに送信処理が終わった後は、さらにその次の画面情報取得以降の処理が繰り返し行われている。さて、今、図中の左側の矢印で示す画面変化の発生と書かれた時刻で、ユーザの操作によりオペレーティングシステム108において画面の内容に変化が生じたと仮定する。このとき、この画面変化を含んだ画面情報の取得は、実際にはこのタイミングではなく、これより後の右側の矢印で示す画面情報の取得処理の開始と書かれた時刻で行われる。推定部106は、この2つの矢印の間の時間間隔の推定値を算出する構成部である。図8に戻り、推定部106による処理開始待ち時間の推定処理の手順を示す。始めに推定部106は、履歴記憶部105に対し、記憶している全てのエントリの出力を依頼するステップS1403。履歴記憶部105は、エントリの出力後ステップS1404、すべてのエントリを記憶領域から削除する。次に、推定部106は、送信完了時刻と取得開始時刻との差を各エントリについて算出し、算出した差のうち最大値を処理開始待ち時間の推定値とするステップS1405。図10は、推定部106が取得した履歴の例を示す図である。図10の例では、エントリ1501No1に対する送信完了時刻と取得開始時刻との差は10100-10000=110、エントリ1502No2に対しては10270-10110=160、エントリ1503No3に対しては10450-10270=180である。このため、最大値である180ミリ秒が、処理開始待ち時間の推定値となる。推定部106は、この推定値を決定部107に返すステップS1406。この方法により算出された値は、サーバ装置100で画面情報の取得処理が実行される時間間隔の最大値に相当する。画面変化の発生図9における左側の矢印が時間軸上のいずれの箇所で発生するか予見できない状況において、取りうる最大の値を処理開始待ち時間として見なしている。なお、必ずしも送信完了時刻と取得開始時刻との差の最大値を処理開始待ち時間の推定値としなくともよい。例えば、送信完了時刻と取得開始時刻との差の平均値を推定値とすることも可能である。また、例えば、履歴記憶部105が記録する値を、取得開始時刻のみとしておき、記録された時刻の間隔の最大値を処理開始待ち時間の推定値としてもよい。この場合、履歴記憶部105に記録すべきデータ量を節減できる。なお、上述のように送信完了時刻と取得開始時刻とを共に記憶する構成では、処理開始待ち時間をより高精度に算出できる。例えば、図10ではNo2およびNo3の取得開始時刻と、No1およびNo2の送信完了時刻とがそれぞれ一致しているが、仮にこれらが一致しない状況であっても、より正確な処理開始待ち時間を算出できる。図8に戻り、決定部107は、処理開始待ち時間の推定値を受け取ると、この値を用いて画質を決定するステップS1407。以降、入力された処理開始待ち時間の推定値をW[単位:秒]と書く。決定部107は、パラメータとして、応答時間の保証値RGを有する。応答時間の保証値とは、どのような画面変化が発生したとしても、応答時間をこの値以下に抑えることを保証する値である。応答時間の保証値は、決定部107の内部に静的に記述されていてもよいし、GUI等を通じてユーザが直接的数値をユーザが指定するまたは間接的特定の数値と対応づけられた画質優先モード応答性優先モードのいずれかをユーザが選択するに指定するものであってもよい。決定部107は、どのような画質を選択すれば、いかなる画面変化が生じたとしても応答時間が保証値以下に収まるかを導出し、これを画質の決定値とする。この導出を行うために、決定部107は、ある画質を選択したときの応答時間の推定値R[単位:秒]を以下の1式により算出する。応答時間の推定値R=処理開始待ち時間の推定値W画面情報取得時間の推定値G差分抽出時間の推定値D圧縮時間の推定値E送信時間の推定値T1このうち、右辺の圧縮時間と送信時間は画質に依存する値である。決定部107は、各時間を次のようにして推定する。決定部107は、処理開始待ち時間の推定値Wについては、推定部106から返された値をそのまま用いる。画面情報取得時間の推定値Gと差分抽出時間の推定値Dの和GDは、静的な定数として決定部107の内部に記述されていているものとする。または、画面転送の開始直後は任意のデフォルト値を設定した上で、その後の任意のタイミングで実際の画面情報取得時間と差分抽出時間の測定を行い、GDの値をリフレッシュしても良い。その場合、取得部101は、画面情報の取得を行う前に、オペレーティングシステム108が提供するAPIをコールして現在時刻を取得し、取得した値と画面情報とをセットにして差分抽出部102に渡す。そして、差分抽出部102は、差分抽出が完了した時点で再びAPIをコールして現在時刻を取得し、2つの時刻の差を取ることで、画面情報取得時間と差分抽出時間の和を得ることができる。さらに差分抽出部102は、この和の値を、圧縮部103を介して決定部107に渡す。これにより、決定部107は、画面情報取得時間と差分抽出時間の和の測定値を得ることができる。圧縮時間の推定値Eは、ある画質Qを選択したときの単位画素あたりの平均圧縮時間EAQ[単位:秒]が静的な関数として決定部107の内部に記述されているものとする。決定部107は、オペレーティングシステム108が提供するAPIを用いてサーバ装置100の画面全体の画素数を取得し、取得した画素数にEAQを乗じ、これを圧縮時間の推定値とする。すなわち、サーバ装置100で発生し得る最大サイズの画面更新に対する圧縮時間を圧縮時間の推定値として見なしている。なお、平均圧縮時間EAQは、静的な値以外としてもよい。例えば、画面転送の開始直後は任意のデフォルト値を設定し、その後の任意のタイミングで試験的に各画質での圧縮を行い、そのときの圧縮時間を各Qの値に対するEAQの値として記憶して利用してもよい。または、さらに定期的に再試験を行い記憶した値をリフレッシュしてもよい。送信時間の推定値Tは、ある画質Qを選択したときの平均圧縮率CAQ[単位:]が静的な関数として決定部107の内部に記述されているものとする。さらに、送信部104で可能な送信レートS[単位:バイト/秒]が、静的な定数として決定部107の内部に記述されているものとする。決定部107は、オペレーティングシステム108が提供するAPIを用いてサーバ装置100の画面全体の画素数を取得し、取得した画素数に1画素あたりのバイト数例えば3バイト/1画素を乗じ、画面全体の圧縮前データサイズを得る。さらに、決定部107は、圧縮前データサイズに圧縮率CAQを乗じ、圧縮後データサイズを得る。さらに、決定部107は、圧縮後データサイズを送信レートSで除し、これを送信時間の推定値Tとする。すなわち、サーバ装置100で発生し得る最大サイズの画面更新に対する送信時間を送信時間の推定値として見なしている。なお、平均圧縮率CAQは、静的な関数以外としてもよい。例えば、画面転送の開始直後は任意のデフォルト値を設定し、その後の任意のタイミングで試験的に各画質での圧縮を行い、そのときの圧縮率を各Qの値に対するCAQの値として記憶して利用してもよい。または、さらに定期的に再試験を行い記憶した値をリフレッシュしてもよい。また、送信レートSは、静的な値以外としてもよい。例えば、画面転送の開始直後は任意のデフォルト値を設定した上で、その後の任意のタイミングで任意の方法で送信レートの測定を行った結果を記憶して用いてもよいし、またはさらに定期的に測定を行い記憶した値をリフレッシュしてもよい。なお、上記の説明では、圧縮時間および送信時間を推定する上で、画面全体の画素数を取得しこれに基づいて推定値を決定していたが、必ずしも画面全体でなくともよい。例えば、過去に受け取った画面更新の画素数の履歴を平均値として履歴記憶部105に別途記憶しておき、決定部107が、記憶した画素数の履歴を読み出して利用してもよい。または、履歴記憶部105に格納された画面更新の履歴の最新のエントリが持つ画素数を、決定部107が読み出して利用してもよい。以上に述べた方法で、決定部107は、応答時間の推定値Rを算出することができる。既に述べたように、応答時間の推定値Rは、選択された画質によって決定される値である。決定部107は、応答時間の推定値Rが応答時間の保証値RG以下に収まるような画質の上限値を選択する。通常、応答時間は画質に対し1対1で対応づけられるため、このような画質を選択することは容易である。以下に、画質決定時の処理の例を示す。決定部107が、画面情報取得時間と差分抽出時間との和、圧縮時間、および、送信時間を、それぞれ次のように推定したものと仮定する。画面情報取得時間と差分抽出時間との和GDは、静的な定数GD=30[単位:ミリ秒]を用いるとする。圧縮時間の推定値Eは、ある画質Q1~100までの1刻みの値を選択したときの単位画素あたりの平均圧縮時間EAQを、画面転送の開始直後に行う試験的な測定により求められる値とする。図11は、試験的な測定の結果の例を示す図である。図11の例では、可能な全ての画質Qについてではなく、いくつかの画質Qについてのみ測定を行った例を示している。そして、本例では、各測定値を直線分で結んで得られる関数を、平均圧縮時間EAQの推定とする。図12は、図11で例示した測定値から得られる平均圧縮時間EAQの式を表す図である。また、図13は、図12の各式を表すグラフである。決定部107は、圧縮時間の推定値E=画面全体の画素数×EAQを用いるものとする。送信時間の推定値Tは、T=画面全体の画素数×1画素あたりのバイト数×CAQ÷100÷Sを用いるとする。なお、ある画質Q1~100までの1刻みの値を選択したときの平均圧縮率CAQを、静的な関数CAQ=0.5×Q[単位:]として上式に用いる。また、画面転送の開始直後に送信部104で可能な送信レートの測定を行い、これを送信レートSとして上式に用いる。この例ではS=1.25×10^6[単位:バイト/秒]という測定結果であったと仮定する。また、画面全体の画素数を640×480、1画素あたりのバイト数を3とする。また、応答時間の保証値RGは、GUIを通じてユーザから提供されるものとし、RG=500[単位:ミリ秒]が提供されたと仮定する。また、推定部106から返された処理開始待ち時間の推定値をW=180[単位:ミリ秒]とする。以上の条件のもと、応答時間の推定値Rは、例えば0<Q≦40の場合は次の2式のように導出される:R=WGDET=18030画面全体の画素数×EAQ画面全体のデータ量×CAQ÷S=18030640×480×0.25×Q5×10^-6640×480×3×0.5×Q÷100÷1.25×10^6÷10^3=3.763×Q211.5[単位:ミリ秒]2図14は、このようにして得られる応答時間の推定値Rの式を表す図である。また、図15は、図14の各式を表すグラフである。決定部107は、応答時間の推定値Rの式から、RG=500[単位:ミリ秒]を満たす画質の上限値を決定する。上述の例では、図15に示すように、RG=500を満たす画質はQ=75であることが分かる。以上のようにして、決定部107は画質を決定する。決定された画質は決定部107が有する記憶領域に保持され、圧縮部103から取得の要求を受け取るたびに出力する。また、決定部107が有するタイマーが動作し再算出が行われるたびに新規の値で上書き更新される。以上、決定部107による画質決定処理の流れを説明した。以上のように本実施の形態によれば、決定部107が画質を決定する上で、ユーザの操作に対応する画面変化が発生してから、その画面変化を含む画面情報が取得されるまでの経過時間、すなわち処理開始待ち時間を応答時間の推定値に含んで画質を決定する。従来は、画質を決定する上で処理開始待ち時間は考慮されていなかった要素である。本実施形態により画質と応答時間との関係を正確に見積もることが可能となり、その結果、応答時間が所定値以下となる画質の上限を正確に決定することが可能となる。すなわち画質低下を最低限に抑えることが可能になる。さらに、本実施形態では、処理開始待ち時間を推定する上で、過去の送信完了時刻と取得開始時刻の差の中で最大のものを選択する、すなわち起こり得る最大の値を処理開始待ち時間として見なしている。これにより、いかなるタイミングで操作による画面変化が発生したとしても応答時間を所定値以下に抑えるという要件を、画質低下を最低限に抑えながら実現することが可能になる。さらに、本実施形態では、処理開始待ち時間を推定する上で、過去送信完了時刻と取得開始時刻の差の平均値を処理開始待ち時間として見なしている。これにより、どのようなタイミングで操作による画面変化が発生するか予知できない状況で、応答時間の平均値を所定値以下に抑えるという要件を、画質低下を最低限に抑えながら実現することが可能になる。さらに、本実施形態では、応答時間を推定する上で、画面全体の画素数を用いて圧縮時間および送信時間の推定を行う。これにより、いかなる画面変化が発生したとしても応答時間を所定値以下に抑えるという要件を、画質低下を最低限に抑えながら実現することが可能になる。さらに、本実施形態では、応答時間を推定する上で、過去の画面更新の画素数の平均値を用いて圧縮時間および送信時間の推定を行う。これにより、画面更新の画素数が時間的に大きく変動しない環境で、かつ、どのような画面変化が発生するか予知できない状況で、応答時間の平均値を所定値以下に抑えるという要件を、画質低下を最低限に抑えながら実現することが可能になる。さらに、本実施形態では、画面情報取得時間、差分抽出時間、圧縮時間、および、送信時間を推定する上で、各処理に要した時間、これらを算出する際に用いる平均圧縮時間、平均圧縮率、および、送信レートの値の少なくとも一部を測定により求める。これにより、サーバ装置の処理性能やネットワークの品質が様々に異なる状況であっても、適応的に、応答時間を所定値以下に抑えつつ画質低下を最低限に抑えることが可能になる。さらに、本実施形態では、画面情報取得時間、差分抽出時間、圧縮時間、および、送信時間を推定する上で、各処理に要した時間、これらを算出する際に用いる平均圧縮時間、平均圧縮率、および、送信レートの値の少なくとも一部を繰り返し再算出し新しい値を使用する。これにより、サーバ装置で同時に並列的に他のアプリケーションが動作するなどの理由により処理性能が変動したり、またはネットワークの輻輳などの理由によりネットワークの品質が変動したり、または画面変化をもたらすアプリケーションが変わるなどの理由により画面更新の特性が変動したりするなどしても、適応的に、応答時間を所定値以下に抑えつつ画質低下を最低限に抑えることが可能になる。以上説明したとおり、本実施形態によれば、所定の応答時間を実現することと、画質低下を最低限に抑えることという条件を両立可能となる。次に、本実施形態にかかるサーバ装置のハードウェア構成について図16を用いて説明する。図16は、本実施形態にかかるサーバ装置のハードウェア構成例を示す説明図である。本実施形態にかかるサーバ装置は、CPUCentralProcessingUnit51などの制御装置と、ROMReadOnlyMemory52やRAMRandomAccessMemory53などの記憶装置と、ネットワークに接続して通信を行う通信I/F54と、HDDHardDiskDrive、CDCompactDiscドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置と、各部を接続するバス61を備えており、通常のコンピュータを利用したハードウェア構成となっている。本実施形態にかかるサーバ装置で実行されるサーバプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD-ROMCompactDiskReadOnlyMemory、フレキシブルディスクFD、CD-RCompactDiskRecordable、DVDDigitalVersatileDisk等のコンピュータで読み取り可能な記録媒体に記録されてコンピュータプログラムプロダクトとして提供される。また、本実施形態にかかるサーバ装置で実行されるサーバプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態にかかるサーバ装置で実行されるサーバプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。また、本実施形態のサーバプログラムを、ROM等に予め組み込んで提供するように構成してもよい。本実施形態にかかるサーバ装置で実行されるサーバプログラムは、上述した各部受信部、取得部、差分抽出部、推定部、決定部、圧縮部、送信部を含むモジュール構成となっており、実際のハードウェアとしてはCPU51プロセッサが上記記憶媒体からサーバプログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、上述した各部が主記憶装置上に生成されるようになっている。本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。"