(57)【特許請求の範囲】
【請求項１】
クライアント装置とネットワークを介して接続されるサーバ装置であって、
前記ネットワークを介して操作データを受信する受信部と、
受信された前記操作データに基づく操作イベントの中から、所定操作イベントを検出する第１検出部と、
前記所定操作イベントが検出された場合に、前記操作イベントに基づいてアプリケーションにより更新される画面データの変化検出周期を第１周期から当該第１周期よりも長い第２周期に変更する周期変更部と、
前記第２周期で前記画面データの変化を検出する第２検出部と、
変化が検出された前記画面データを前記クライアント装置へ送信する送信部と、
を備えることを特徴とするサーバ装置。
【請求項２】
変化が検出された前記画面データを所定圧縮率で圧縮して圧縮画面データを生成する生成部と、
前記圧縮画面データの生成周期を計時する計時部と、を更に備え、
前記周期変更部は、前記変化検出周期を前記生成周期以上の周期に変更し、
前記送信部は、前記圧縮画面データを前記クライアント装置へ送信することを特徴とする請求項１に記載のサーバ装置。
【請求項３】
前記画面データの領域毎に単位時間当たりの変化検出頻度を検出する第３検出部を更に備え、
前記周期変更部は、前記所定操作イベントが検出された場合に、前記変化検出頻度が第１検出頻度を超えている領域の前記変化検出周期を前記第１周期から前記第２周期に変更し、
前記第２検出部は、前記画面データのうち前記領域の変化を前記第２周期で検出し、前記画面データのうち前記領域以外の領域の変化を前記第１周期で検出することを特徴とする請求項１に記載のサーバ装置。
【請求項４】
前記第１検出部は、前記所定操作イベントの単位時間当たりの発生頻度が第１発生頻度以上となったことを検出し、
前記周期変更部は、前記第１発生頻度以上となったことが検出された場合に、前記変化検出周期を前記第１周期から前記第２周期に変更することを特徴とする請求項１〜３のいずれか１つに記載のサーバ装置。
【請求項５】
前記第１検出部は、前記所定操作イベントの単位時間当たりの発生頻度が前記第１発生頻度以上となったことを検出した後に、更に、第２発生頻度以下となったことを検出し、
前記周期変更部は、前記第２発生頻度以下となったことが検出された場合に、前記変化検出周期を前記第２周期から前記第１周期に変更することを特徴とする請求項４に記載のサーバ装置。
【請求項６】
クライアント装置とネットワークを介して接続されるサーバ装置であって、
前記ネットワークを介して操作データを受信する受信部と、
受信された前記操作データに基づく操作イベントの中から、所定操作イベントを検出する第１検出部と、
アプリケーション及び前記操作イベントに基づいて更新される画面データの変化を第１周期で検出する第２検出部と、
前記所定操作イベントが検出された場合に、前記画面データの圧縮率を第１圧縮率から当該第１圧縮率よりも高い第２圧縮率に変更する圧縮率変更部と、
変化が検出された前記画面データを前記第２圧縮率で圧縮して圧縮画面データを生成する生成部と、
前記圧縮画面データを前記クライアント装置へ送信する送信部と、
前記圧縮画面データの生成周期を計時する計時部と、
を備え、
前記圧縮率変更部は、前記所定操作イベントが検出された場合に、前記画面データの圧縮率を前記第１圧縮率から前記生成周期に応じて前記第２圧縮率又は前記第２圧縮率以外の圧縮率に変更することを特徴とするサーバ装置。
【請求項７】
前記画面データの領域毎に単位時間当たりの変化検出頻度を検出する第３検出部を更に備え、
前記圧縮率変更部は、前記所定操作イベントが検出された場合に、前記変化検出頻度が第１検出頻度を超えている領域の前記画面データの圧縮率を前記第１圧縮率から前記第２圧縮率に変更し、
前記第２検出部は、前記画面データのうち前記領域の変化を第２周期で検出し、前記画面データのうち前記領域以外の領域の変化を前記第１周期で検出することを特徴とする請求項６に記載のサーバ装置。
【請求項８】
前記第１検出部は、前記所定操作イベントの単位時間当たりの発生頻度が第１発生頻度以上となったことを検出し、
前記圧縮率変更部は、前記第１発生頻度以上となったことが検出された場合に、前記圧縮率を前記第１圧縮率から前記第２圧縮率に変更することを特徴とする請求項６又は７に記載のサーバ装置。
【請求項９】
前記第１検出部は、前記所定操作イベントの単位時間当たりの発生頻度が前記第１発生頻度以上となったことを検出した後に、更に、第２発生頻度以下となったことを検出し、
前記圧縮率変更部は、前記第２発生頻度以下となったことが検出された場合に、前記圧縮率を前記第２圧縮率から前記第１圧縮率に変更することを特徴とする請求項８に記載のサーバ装置。
【請求項１０】
クライアント装置とネットワークを介して接続されるサーバ装置のコンピュータを、
前記ネットワークを介して操作データを受信する受信部と、
受信された前記操作データに基づく操作イベントの中から、所定操作イベントを検出する第１検出部と、
前記所定操作イベントが検出された場合に、前記操作イベントに基づいてアプリケーションにより更新される画面データの変化検出周期を第１周期から当該第１周期よりも長い第２周期に変更する周期変更部と、
前記第２周期で前記画面データの変化を検出する第２検出部と、
変化が検出された前記画面データを前記クライアント装置へ送信する送信部と、
して機能させるためのプログラム。
【請求項１１】
クライアント装置とネットワークを介して接続されるサーバ装置のコンピュータを、
前記ネットワークを介して操作データを受信する受信部と、
受信された前記操作データに基づく操作イベントの中から、所定操作イベントを検出する第１検出部と、
アプリケーション及び前記操作イベントに基づいて更新される画面データの変化を第１周期で検出する第２検出部と、
前記所定操作イベントが検出された場合に、前記画面データの圧縮率を第１圧縮率から当該第１圧縮率よりも高い第２圧縮率に変更する圧縮率変更部と、
変化が検出された前記画面データを前記第２圧縮率で圧縮して圧縮画面データを生成する生成部と、
前記圧縮画面データを前記クライアント装置へ送信する送信部と、
前記圧縮画面データの生成周期を計時する計時部と、
して機能させ、
前記圧縮率変更部は、前記所定操作イベントが検出された場合に、前記画面データの圧縮率を前記第１圧縮率から前記生成周期に応じて前記第２圧縮率又は前記第２圧縮率以外の圧縮率に変更するためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、サーバ装置及びプログラムに関する。
【背景技術】
【０００２】
従来から、第１端末の画面データを、ネットワークを介して接続された第２端末へリアルタイムで配信する画面転送システムが知られている。このような画面転送システムでは、第２端末は、当該第２端末にて行われた操作の操作データを第１端末へ送信し、第１端末は、送信された操作データに応じた画面を生成し、生成した画面の画面データを第２端末へ送信する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−４０３４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ここで、第１端末が生成する画面が動画画面などの場合、画面変化が頻繁に発生するため、第１端末から第２端末に画面データが常時送信される状態となる。
【０００５】
このような画面転送が定常的に行われている状態で、第２端末で何かしらの操作を行うと、当該操作に伴う画面変化が当該第２端末で反映されるまでに、遅延が生じるという問題がある。
【課題を解決するための手段】
【０００６】
実施形態のサーバ装置は、クライアント装置とネットワークを介して接続され、受信部と、第１検出部と、周期変更部と、第２検出部と、送信部とを、備える。受信部は前記ネットワークを介して操作データを受信する。第１検出部は、受信された前記操作データに基づく操作イベントの中から、所定操作イベントを検出する。周期変更部は、前記所定操作イベントが検出された場合に、前記操作イベントに基づいてアプリケーションにより更新される画面データの変化検出周期を第１周期から当該第１周期よりも長い第２周期に変更する。第２検出部は、前記第２周期で前記画面データの変化を検出する。送信部は、変化が検出された前記画面データを前記クライアント装置へ送信する。
【図面の簡単な説明】
【０００７】
【図１】図１は、第１実施形態の画面転送システムの構成例を示すブロック図。
【図２】図２は、第１実施形態のサーバ装置の構成例を示すブロック図。
【図３】図３は、第１実施形態の画面例を示す図。
【図４】図４は、第１実施形態の変化検出周期変更処理例を示すフローチャート。
【図５】図５は、第１実施形態の画面変化検出処理例を示すフローチャート。
【図６】図６は、第１実施形態の送信処理例を示すフローチャート。
【図７】図７は、第１実施形態の特定操作の応答時間例の説明図。
【図８】図８は、応答遅延の説明図。
【図９】図９は、特定操作の応答時間の比較例の説明図。
【図１０】図１０は、第２実施形態のサーバ装置の構成例を示すブロック図。
【図１１】図１１は、第２実施形態の画面圧縮率変更処理例を示すフローチャート。
【図１２】図１２は、第２実施形態の特定操作の応答時間例の説明図。
【図１３】図１３は、第３実施形態のサーバ装置の構成例を示すブロック図。
【図１４】図１４は、第４実施形態のサーバ装置の構成例を示すブロック図。
【図１５】図１５は、第４実施形態の画面例を示す図。
【図１６】図１６は、変形例１のサーバ装置の構成例を示すブロック図。
【図１７】図１７は、変形例２のサーバ装置の構成例を示すブロック図。
【図１８】図１８は、変形例３のサーバ装置の構成例を示すブロック図。
【発明を実施するための形態】
【０００８】
（第１実施形態）
図１は、第１実施形態の画面転送システム１００の構成の一例を示すブロック図である。図１に示すように、画面転送システム１００は、画面データを送信するサーバ装置１１０と、画面データを受信するクライアント装置１９０とを、備える。サーバ装置１１０とクライアント装置１９０とは、ネットワーク１０２を介して接続されている。ネットワーク１０２は、ＬＡＮ（Local  Area  Network）やインターネットなどにより実現でき、有線であっても無線であってもよい。
【０００９】
サーバ装置１１０は、クライアント装置１９０に画面データを送信する機能を有する機器であれば、どのような機器であってもよい。サーバ装置１１０では、画面データを生成するアプリケーションソフトウェアと画面転送システムにおけるサーバ用ソフトウェアとが起動している。サーバ用ソフトウェアは、画面データ送信用のソフトウェアであり、クライアント装置１９０から送信された操作データをアプリケーションソフトウェアへ通知する機能も有する。
【００１０】
これにより、サーバ装置１１０は、画面データを生成し、生成した画面データをクライアント装置１９０へネットワーク１０２を介して送信する。またサーバ装置１１０は、クライアント装置１９０から操作データを受信した場合には、受信した操作データに応じた画面データを生成し、生成した画面データをクライアント装置１９０へネットワーク１０２を介して送信する。
【００１１】
クライアント装置１９０は、サーバ装置１１０から画面データを受信する機能を有する機器であれば、どのような機器であってもよい。クライアント装置１９０では、画面転送システムにおけるクライアント用ソフトウェアが起動している。クライアント用ソフトウェアは、画面データ受信用のソフトウェアであり、クライアント装置１９０で行われた操作内容を示す操作データをサーバ装置１１０へ送信する機能も有する。
【００１２】
これにより、クライアント装置１９０は、クライアント装置１９０から画面データを受信し、受信した画面データに基づく画面をディスプレイなどの表示部（図示省略）に表示させる。またクライアント装置１９０は、表示部に表示された画面に対する操作がユーザにより行われた場合には、行われた操作内容を示す操作データをサーバ装置１１０へ送信する。
【００１３】
また画面転送システム１００では、サーバ装置１１０は、プッシュ型の画面転送プロトコルを利用して、クライアント装置１９０へ画面データを送信するものとする。プッシュ型とは、画面データ受信側からの画面データ取得要求を必要とせずに、画面データ送信側から画面データ受信側へ画面データを送信する方式である。つまり本実施形態では、クライアント用ソフトウェアが起動しているクライアント装置１９０からの画面データ取得要求を必要とせずに、サーバ用ソフトウェアが起動しているサーバ装置１１０からクライアント装置１９０へ画面データを送信する。
【００１４】
但し、画面転送方式は、プッシュ型に限定されるものではなく、プル型であってもよい。プル型とは、画面データ受信側（クライアント装置１９０）からの画面データ取得要求に応じて、画面データ送信側（サーバ装置１１０）から画面データ受信側へ画面データを送信する方式である。
【００１５】
以上のように、画面転送システム１００では、サーバ装置１１０で生成された画面がクライアント装置１９０に転送され、クライアント装置１９０で表示される。
【００１６】
図２は、第１実施形態のサーバ装置１１０の構成の一例を示すブロック図である。図２に示すように、サーバ装置１１０は、受信部１１２と、解析部１１４と、アプリケーション１１６と、フレームバッファ１１８と、表示部１２０と、第１検出部１２２と、周期変更部１２４と、第２検出部１２６と、生成部１２８と、送信部１３０とを、備える。
【００１７】
受信部１１２は、ネットワーク１０２を介して操作データ（操作信号）などを含むデータを受信する。具体的には、受信部１１２は、ＴＣＰ（Transmission  Control  Protocol）／ＩＰ（Internet  Protocol）などのネットワークプロトコルを用いて、クライアント装置１９０からデータを受信する。例えば、受信部１１２は、クライアント装置１９０で起動しているクライアントソフトウェアとの間で設定されたコネクションにてパケットを順次受信し、受信したパケットからクライアント装置１９０が送信したデータを構築する。
【００１８】
解析部１１４は、受信部１１２により受信されたデータを解析し、受信されたデータに含まれる操作データに対応する操作イベントを生成する。なお、操作データは、マウス移動、クリック、又はダブルクリックなどマウス操作を示すマウス操作データや、押下されたキーボードのキーを示すキー操作データなどである。
【００１９】
アプリケーション１１６は、動画再生アプリケーション、プレゼンテーションアプリケーション、描画ツールアプリケーション、又は３次元のＣＡＤ（Computer  Aided  Design）アプリケーションなど画面データを生成するアプリケーションであれば、どのようなアプリケーションであってもよい。本実施形態では、動画再生アプリケーションを例にとりアプリケーション１１６について説明するが、これに限定されるものではない。またアプリケーション１１６は、単一のアプリケーションだけでなく、複数のアプリケーションであってもよい。アプリケーション１１６は、再生対象の動画データや解析部１１４により生成された操作イベントそれぞれに応じた画面データ（画像データ）を所定フレーム毎に生成し、フレームバッファ１１８に描画する。
【００２０】
フレームバッファ１１８は、アプリケーション１１６により画面データが描画されるメモリである。本実施形態のフレームバッファ１１８は、前回の画面データ、現在の画面データ、及び現在の画面データのうち前回の画面データから更新された部分の画面データである更新画面データを記憶するものとするが、これに限定されるものではない。
【００２１】
表示部１２０は、フレームバッファ１１８に描画された画面データ（詳細には、現在の画面データ）に基づく画面を表示するものであり、例えば、液晶ディスプレイなどにより実現できる。
【００２２】
第１検出部１２２は、受信部１１２により受信された操作データに基づく操作イベント（解析部１１４により生成された操作イベント）の中から、所定操作イベントを検出する。本実施形態では、所定操作イベントは、マウス移動を示すマウス移動イベントであるものとするが、これに限定されるものではない。なお、マウス移動イベントは、マウス移動を示すだけでなく、マウスポインタの位置を示してもよい。
【００２３】
具体的には、第１検出部１２２は、マウス移動イベントの単位時間当たりの発生頻度が第１発生頻度以上となったことを検出する。通常、画面の停止（再生の停止）やポップアップ画面の表示などの画面変化を伴う特定操作（例えば、マウスのクリックなど）が行われる前には、マウスの移動が行われているケースが多い。これは、一般的に、画面変化を伴う特定操作は、画面に表示されている特定のシンボル（例えば、アイコン）上で行われることに起因する。つまり、画面変化を伴う特定操作に対応する特定操作イベントが発生する前には、マウス移動イベントが発生している可能性が非常に高い。このため、第１検出部１２２では、マウス移動イベントの単位時間当たりの発生頻度が第１発生頻度以上となったことを検出することにより、近い将来、マウスのクリック又はダブルクリック、若しくは、キー押下などの画面変化を伴う特定操作イベントが発生することを予測する。なお、第１発生頻度とは、例えば、１秒間に２０回以上のマウス移動イベントの発生や１秒間に２０回以上のマウス移動イベントが３秒間以上発生することなどが該当するが、これらに限定されるものではなく、適宜設定することができる。
【００２４】
そして第１検出部１２２は、マウス移動イベントの単位時間当たりの発生頻度が第１発生頻度以上となったことを検出した場合には、通常状態から特定操作イベントの発生を予測する特定操作予測状態に移行し、特定操作予測開始信号を周期変更部１２４に出力する。なお第１検出部１２２は、マウス移動イベントの単位時間当たりの発生頻度が第１発生頻度以上となったことを検出した後一定時間後に、特定操作予測状態に移行し、特定操作予測開始信号を周期変更部１２４に出力するようにしてもよい。
【００２５】
また第１検出部１２２は、マウス移動イベントの発生頻度だけでなく、マウスポインタの位置データも用いて、画面変化を伴う特定操作イベントの発生を予測するようにしてもよい。これにより、特定操作イベントの発生予測精度を高めることができる。以下、図３を参照して、マウスの位置データを更に用いて画面変化を伴う特定操作イベントの発生を予測する例について説明する。
【００２６】
図３は、第１実施形態の表示部１２０に表示される画面１４０の一例を示す図である。図３に示す例では、表示部１２０に表示される画面１４０上に、動画画面１４２と、動画の再生や一時停止を行うためのボタンスイッチが表示された操作画面１４４と、マウスポインタ１４６とが表示されている。
【００２７】
図３に示す例において、第１検出部１２２は、操作画面１４４の位置データとマウス移動イベントに含まれるマウスポインタ１４６の位置データとを比較し、マウスポインタ１４６が操作画面１４４の近傍に位置するか否かを判定する。この場合、第１検出部１２２は、操作画面１４４の位置データを予め保持していてもよいし、画面変化の頻度などから後述の第２検出部１２６に検出させたものを用いるようにしてもよい。そして第１検出部１２２は、マウスポインタ１４６が操作画面１４４の近傍に位置する状態でマウス移動イベントの単位時間当たりの発生頻度が第１発生頻度以上となったことを検出した場合に、画面変化を伴う特定操作イベントの発生を予測する。例えば、第１検出部１２２は、操作画面１４４の５００ピクセル以内で１秒間に２０回以上のマウス移動イベントを検出した場合に、画面変化を伴う特定操作イベントの発生を予測する。
【００２８】
また図３に示す例において、第１検出部１２２は、操作画面１４４の位置データとマウス移動イベントに含まれるマウスポインタ１４６の位置データとを比較し、マウスポインタ１４６が操作画面１４４に近づいているか否かを判定するようにしてもよい。そして第１検出部１２２は、マウスポインタ１４６が操作画面１４４に近づいている状態でマウス移動イベントの単位時間当たりの発生頻度が第１発生頻度以上となったことを検出した場合に、画面変化を伴う特定操作イベントの発生を予測するようにしてもよい。例えば、第１検出部１２２は、マウスポインタ１４６と操作画面１４４との距離が短くなる状態で１秒間に２０回以上のマウス移動イベントを検出した場合に、画面変化を伴う特定操作イベントの発生を予測するようにしてもよい。
【００２９】
図２に戻り、第１検出部１２２は、マウス移動イベントの単位時間当たりの発生頻度が第１発生頻度以上となったことを検出した後に、更に、第２発生頻度以下となったことを検出する。これは、特定操作予測状態を解除するためである。なお、第２発生頻度とは、例えば、１秒間に１回以下のマウス移動イベントの５秒間以上の発生などが該当するが、これに限定されるものではなく、適宜設定することができる。
【００３０】
そして第１検出部１２２は、特定操作予測状態において、マウス移動イベントの単位時間当たりの発生頻度が第２発生頻度以下となったことを検出した場合には、特定操作予測状態を解除して通常状態へ移行し、特定操作予測解除信号を周期変更部１２４に出力する。なお第１検出部１２２は、マウス移動イベントの単位時間当たりの発生頻度が第２発生頻度以下となったことを検出した後一定時間後に、特定操作予測状態を解除し、特定操作予測解除信号を周期変更部１２４に出力するようにしてもよい。
【００３１】
周期変更部１２４は、第１検出部１２２により所定操作イベントが検出された場合に、アプリケーション１１６により更新される画面データ（画像データ）の変化検出周期を第１周期から第１周期よりも長い第２周期に変更する。具体的には、周期変更部１２４は、第１検出部１２２によりマウス移動イベントの単位時間当たりの発生頻度が第１発生頻度以上となったことが検出された場合、即ち、第１検出部１２２から特定操作予測開始信号が入力された場合、画面データの変化検出周期を第１周期から第２周期に変更する。同様に周期変更部１２４は、第１検出部１２２から特定操作予測解除信号が入力された場合、画面データの変化検出周期を第２周期から第１周期に変更する。
【００３２】
例えば周期変更部１２４は、特定操作予測開始信号が入力されると、画面データの変化検出周期を４０ｍｓから１４０ｍｓに変更し、特定操作予測解除信号が入力されると、画面データの変化検出周期を１４０ｍｓから４０ｍｓに変更する。但し、第１周期及び第２周期の値は、これらに限定されるものではなく、適宜設定することができる。
【００３３】
なお、後述の第２検出部１２６が画面の領域毎に異なる周期で画面データの変化を検出できる場合には、図３に示す例において、周期変更部１２４は、動画画面１４２のみ（動画画面１４２の位置データが示す領域のみ）変化検出周期を第１周期から第２周期に変更するようにしてもよい。この場合、周期変更部１２４は、動画画面１４２の位置データを予め保持していてもよいし、画面変化の頻度などから後述の第２検出部１２６に検出させたものを用いるようにしてもよい。
【００３４】
第２検出部１２６は、周期変更部１２４により変更された周期で、画面データ（画像データ）が変化したか否かを検出する。つまり、第２検出部１２６は、変化検出周期が４０ｍｓであれば、４０ｍｓ毎に画面データが変化したか否かを検出し、変化検出周期が１４０ｍｓであれば、１４０ｍｓ毎に画面データが変化したか否かを検出する。
【００３５】
例えば、第２検出部１２６は、周期変更部１２４により変更された周期で、フレームバッファ１１８に記憶されている前回の画面データと現在の画面データとを画素単位で比較する。そして第２検出部１２６は、画面データが変化したことを検出した場合には、現在の画面データのうち前回の画面データから更新（変化）された部分の画面データである更新画面データをフレームバッファ１１８に記憶し、生成部１２８へ更新画面データの発生を通知する。
【００３６】
生成部１２８は、第２検出部１２６から更新画面データの発生が通知されると、フレームバッファ１１８に記憶されている更新画面データを取得し、取得した更新画面データを圧縮して圧縮画面データを生成する。そして生成部１２８は、生成した圧縮画面データを送信部１３０へ出力する。
【００３７】
送信部１３０は、第２検出部１２６により変化が検出された画面データ（画像データ）をクライアント装置１９０へ送信する。具体的には、送信部１３０は、送信バッファ１３２を含み、生成部１２８から出力された圧縮画面データを送信バッファ１３２へ格納し、ＴＣＰ／ＩＰなどのネットワークプロトコルを用いて、送信バッファ１３２へ格納済みの圧縮画面データを順番にクライアント装置１９０へ送信する。例えば、送信部１３０は、圧縮画面データをパケット化し、クライアント装置１９０で起動しているクライアントソフトウェアとの間で設定されたコネクションを用いてパケットを送信する。
【００３８】
図４は、第１実施形態のサーバ装置１１０で行われる画面変化検出周期変更処理の流れの一例を示すフローチャートである。
【００３９】
まず、受信部１１２は、クライアント装置１９０からデータを受信する（ステップＳ１００）。
【００４０】
続いて、解析部１１４は、受信部１１２により受信されたデータを解析し、受信されたデータに含まれる操作データに対応する操作イベントを生成する（ステップＳ１０２）。
【００４１】
続いて、アプリケーション１１６は、再生対象の動画データ及び解析部１１４により生成された操作イベントそれぞれに応じた画面データ（画像データ）を生成し、フレームバッファ１１８に描画する（ステップＳ１０４）。
【００４２】
続いて、第１検出部１２２は、画面変化を伴う特定操作イベントの発生を予測する特定操作予測状態であるか否かを判定する（ステップＳ１０６）。
【００４３】
特定操作予測状態でない場合（ステップＳ１０６でＮｏ）、第１検出部１２２は、マウスイベントの発生頻度が特定操作予測状態への移行条件を満たすか否か、即ち、マウス移動イベントの単位時間当たりの発生頻度が第１発生頻度以上となったか否かを検出する（ステップＳ１０８）。
【００４４】
第１検出部１２２は、マウス移動イベントの単位時間当たりの発生頻度が第１発生頻度未満であることを検出した場合（ステップＳ１０８でＮｏ）、ステップＳ１００へ戻る。
【００４５】
一方、第１検出部１２２は、マウス移動イベントの単位時間当たりの発生頻度が第１発生頻度以上となったことを検出した場合（ステップＳ１０８でＹｅｓ）、特定操作予測状態に移行し（ステップＳ１１０）、特定操作予測開始信号を周期変更部１２４に出力する。
【００４６】
続いて、周期変更部１２４は、第１検出部１２２から出力された特定操作予測開始信号が入力されると、画面データ（画像データ）の変化検出周期を第１周期から第２周期に変更し（ステップＳ１１２）、ステップＳ１００へ戻る。
【００４７】
一方、特定操作予測状態である場合（ステップＳ１０６でＹｅｓ）、第１検出部１２２は、マウスイベントの発生頻度が特定操作予測状態の解除条件を満たすか否か、即ち、マウス移動イベントの単位時間当たりの発生頻度が第２発生頻度以下となったか否かを検出する（ステップＳ１１４）。
【００４８】
第１検出部１２２は、マウス移動イベントの単位時間当たりの発生頻度が第２発生頻度を超えていることを検出した場合（ステップＳ１１４でＮｏ）、ステップＳ１００へ戻る。
【００４９】
一方、第１検出部１２２は、マウス移動イベントの単位時間当たりの発生頻度が第２発生頻度以下となったことを検出した場合（ステップＳ１１４でＹｅｓ）、特定操作予測状態を解除し（ステップＳ１１６）、特定操作予測解除信号を周期変更部１２４に出力する。
【００５０】
続いて、周期変更部１２４は、第１検出部１２２から出力された特定操作予測解除信号が入力されると、画面データ（画像データ）の変化検出周期を第２周期から第１周期に変更し（ステップＳ１１８）、ステップＳ１００へ戻る。
【００５１】
図５は、第１実施形態のサーバ装置１１０で行われる画面変化検出処理の流れの一例を示すフローチャートである。
【００５２】
まず、第２検出部１２６は、周期変更部１２４により変更された周期で、画面データ（画像データ）が変化したか否かを検出する（ステップＳ１３０）。つまり、第２検出部１２６は、変化検出周期が第１周期であれば、第１周期毎に画面データが変化したか否かを検出し、変化検出周期が第２周期であれば、第２周期毎に画面データが変化したか否かを検出する。
【００５３】
第２検出部１２６により画面データの変化が検出された場合（ステップＳ１３０でＹｅｓ）、生成部１２８は、更新（変化）した部分の更新画面データ（更新画像データ）を圧縮して圧縮画面データ（圧縮画像データ）を生成し（ステップＳ１３２）、送信部１３０へ出力して、ステップＳ１３０へ戻る。
【００５４】
一方、第２検出部１２６により画面データの変化が検出されなかった場合（ステップＳ１３０でＮｏ）、ステップＳ１３０へ戻る。
【００５５】
図６は、第１実施形態のサーバ装置１１０で行われる送信処理の流れの一例を示すフローチャートである。
【００５６】
まず、送信部１３０は、送信バッファ１３２に空きがあるか否かを確認する（ステップＳ１４０）。
【００５７】
送信バッファ１３２に空きがある場合（ステップＳ１４０でＹｅｓ）、送信部１３０は、生成部１２８により生成される圧縮画面データなどの格納対象データがあるか否かを確認する（ステップＳ１４２）。
【００５８】
格納対象データがある場合（ステップＳ１４２でＹｅｓ）、送信部１３０は、格納対象データを送信バッファ１３２に格納する（ステップＳ１４４）。
【００５９】
なお、送信バッファ１３２に空きがない場合（ステップＳ１４０でＮｏ）、及び格納対象データがない場合（ステップＳ１４２でＮｏ）、ステップＳ１４６へ進む。
【００６０】
続いて、送信部１３０は、送信バッファ１３２に送信対象のデータがあるか否かを確認する（ステップＳ１４６）。
【００６１】
送信対象のデータがある場合（ステップＳ１４６でＹｅｓ）、送信部１３０は、送信対象のデータをクライアント装置１９０へ送信し（ステップＳ１４８）、ステップＳ１４０へ戻る。
【００６２】
なお、送信対象のデータがない場合も（ステップＳ１４６でＮｏ）、ステップＳ１４０へ戻る。
【００６３】
以上のように第１実施形態によれば、マウス移動イベントの単位時間当たりの発生頻度が第１発生頻度以上となった場合、画面データの変化検出周期が第１周期から第１周期よりも長い第２周期に変更される。このため、サーバ装置１１０からクライアント装置１９０への画面転送が定常的に行われている状態であっても、生成部１２８により生成される送信対象のデータの生成量を抑制でき、送信バッファ１３２に格納されるデータ量を抑制できる。これにより、送信バッファ１３２に空きがない状態を回避できる確率が高まり、近い将来、マウスのクリック又はダブルクリック、若しくは、キー押下などの画面変化を伴う特定操作イベントが発生しても、当該特定操作イベントに基づき生成された画面データを、遅延を生じさせずにクライアント装置１９０へ送信することができる。つまり、サーバ装置１１０からクライアント装置１９０への画面転送が定常的に行われている状態であっても、クライアント装置１９０で特定操作が行われてから、当該特定操作に伴う画面変化がクライアント装置１９０で反映されるまでの応答時間が遅延してしまうことを防止でき、良好な操作性を保つことができる。
【００６４】
図７は、第１実施形態の特定操作の応答時間の一例の説明図である。図７に示す例では、サーバ装置１１０は、単なるマウス移動操作（マウス移動イベント）の単位時間当たりの発生頻度が第１発生頻度以上となった場合、特定操作信号の予測検出、即ち、画面変化を伴う特定操作の予測を開始し、画面データの変化検出周期を第１周期から第２周期に変更する。これにより、図７に示す例では、画面変化を伴う特定操作の予測を開始する前に比べ、画面データの変化検出周期が長くなっており、送信バッファ１３２に空きがある可能性が高まる。
【００６５】
このため、図７に示す例によれば、サーバ装置１１０からクライアント装置１９０への画面転送が定常的に行われている状態において、画面変化を伴う特定操作が行われても、当該特定操作（特定操作イベント）に基づき生成された画面データを、応答時間に遅延を生じさせずにクライアント装置１９０へ送信できている。
【００６６】
ここで、比較例として、図３、図８、及び図９を参照しながら、応答時間に遅延が生じる例について説明する。なお、図８は、応答遅延の説明図であり、図９は、特定操作の応答時間の比較例の説明図である。
【００６７】
図３に示す例において、動画画面１４２は、例えば、１秒間に１０フレームの変化がある（１０フレーム／秒で変化する）ものとする。また操作画面１４４には、前述したように、動画の再生や一時停止を行うためのボタンスイッチが表示されており、ユーザがマウスポインタ１４６をボタンスイッチ上に合わせてマウスをクリックすると、その度に「再生ボタン」、「一時停止ボタン」といったように表示内容が替わるものとする。
【００６８】
通常、クライアント装置で画面１４０と同様の画面において、動画画面１４２で動画再生中に、マウスポインタ１４６を操作画面１４４の「一時停止ボタン」に合わせてマウスをクリックすると、瞬時にボタンスイッチの表示が「再生ボタン」に切り替わり、動画画面１４２で再生中の動画も一時停止する。
【００６９】
しかしながら、動画が再生されていることにより動画画面１４２の画像がサーバ装置からクライアント装置へ定常的に転送されている状態では、サーバ装置の送信バッファが常に一杯となっている可能性が高い。送信バッファが一杯の状態では、空きが発生するまで新しいデータを送信バッファに格納できないため、送信に遅延が生じてしまう。このため、動画画面１４２で動画再生中に、マウスポインタ１４６を操作画面１４４の「一時停止ボタン」に合わせてマウスをクリックしても、ボタンスイッチの表示が「再生ボタン」に切り替わり、動画画面１４２で再生中の動画も一時停止するまでに、待ち時間が生じてしまう。
【００７０】
図８に示す例では、サーバ装置は、ｔ１１時に画面変化を検出して、クライアント装置へ送信する画面データを生成し、ｔ１２時に次の画面変化を検出して、クライアント装置へ送信する画面データを生成したとする。
【００７１】
ここで、ｔ１１時に生成した画面データにより送信バッファが一杯となってしまった場合、ｔ１２時に生成した画面データの送信は、送信バッファに空きが生じるＷＴ１２時間後となってしまう。
【００７２】
また、この後、クライアント装置において、マウスポインタ１４６を操作画面１４４の「一時停止ボタン」に合わせてマウスをクリックする画面変換を伴う特定操作が行われたものとする。
【００７３】
この場合、クライアント装置から特定操作を示す操作データがサーバ装置へ送信され、サーバ装置にて、特定操作に伴う画面データ（ボタンスイッチが「一時停止ボタン」から「再生ボタン」に変更された画面データ）が生成され、クライアント装置に送信される。
【００７４】
ここで、サーバ装置は、ｔ１３時に特定操作に伴う画面変化を検出して、クライアント装置へ送信する画面データを生成したとしても、送信バッファが一杯となってしまっている場合、画面データの送信は、送信バッファに空きが生じるＷＴ１３時間後となってしまう。
【００７５】
このため、図９に示す例のように、画面データの変化検出周期を変更しない場合、サーバ装置からクライアント装置への画面転送が定常的に行われている状態では、送信バッファ１３２が常に一杯である可能性が高い。
【００７６】
このため、図９に示す例では、サーバ装置１１０からクライアント装置１９０への画面転送が定常的に行われている状態において、画面変化を伴う特定操作が行われても、送信バッファ１３２に空きが生じるまで、当該特定操作（特定操作イベント）に基づき生成された画面データをクライアント装置１９０へ送信できず、応答時間に遅延が生じ、操作性が劣化してしまっている。
【００７７】
（第２実施形態）
第２実施形態では、マウス移動イベントの単位時間当たりの発生頻度が第１発生頻度以上となったことが検出された場合に、圧縮率を変更する例について説明する。なお以下では、第１実施形態との相違点の説明を主に行い、第１実施形態と同様の機能を有する構成要素については、第１実施形態と同様の名称・符号を付し、その説明を省略する。
【００７８】
図１０は、第２実施形態のサーバ装置２１０の構成の一例を示すブロック図である。図１０に示すように、第２実施形態の画面転送システム２００のサーバ装置２１０は、周期変更部１２４に代えて、圧縮率変更部２２３を備えている点が第１実施形態と相違する。
【００７９】
なお第２実施形態では、第１検出部１２２は、特定操作予測開始信号及び特定操作予測解除信号を圧縮率変更部２２３に出力し、第２検出部１２６は、第１周期（例えば、４０ｍｓ）で、画面データが変化したか否かを検出するものとする。
【００８０】
圧縮率変更部２２３は、第１検出部１２２により所定操作イベントが検出された場合に、画面データの圧縮率を第１圧縮率から第１圧縮率よりも高い第２圧縮率に変更する。具体的には、圧縮率変更部２２３は、第１検出部１２２によりマウス移動イベントの単位時間当たりの発生頻度が第１発生頻度以上となったことが検出された場合、即ち、第１検出部１２２から特定操作予測開始信号が入力された場合、画面データの圧縮率を第１圧縮率から第２圧縮率に変更する。同様に圧縮率変更部２２３は、第１検出部１２２から特定操作予測解除信号が入力された場合、画面データの圧縮率を第２圧縮率から第１圧縮率に変更する。
【００８１】
例えば圧縮率変更部２２３は、特定操作予測開始信号が入力されると、画面データの圧縮率を５０％から８０％へ変更し、特定操作予測解除信号が入力されると、画面データの圧縮率を８０％から５０％へ変更する。但し、第１圧縮率及び第２圧縮率の値は、これらに限定されるものではなく、適宜設定することができる。
【００８２】
なお、生成部１２８が画面の領域毎に異なる圧縮率で画面データを圧縮できる場合には、図３に示す例において、圧縮率変更部２２３は、動画画面１４２のみ（動画画面１４２の位置データが示す領域のみ）圧縮率を第１圧縮率から第２圧縮率に変更するようにしてもよい。この場合、圧縮率変更部２２３は、動画画面１４２の位置データを予め保持していてもよいし、画面変化の頻度などから第２検出部１２６に検出させたものを用いるようにしてもよい。また、生成部１２８に動画画面１４２の位置データを予め保持させていてもよい。
【００８３】
また第２実施形態では、生成部１２８は、圧縮率変更部２２３により変更された圧縮率で更新画面データを圧縮して圧縮画面データを生成する。つまり、生成部１２８は、圧縮率が５０％であれば、５０％の圧縮率で更新画面データを圧縮して圧縮画面データを生成し、圧縮率が８０％であれば、８０％の圧縮率で更新画面データを圧縮して圧縮画面データを生成する。
【００８４】
図１１は、第２実施形態のサーバ装置２１０で行われる画面圧縮率変更処理の流れの一例を示すフローチャートである。
【００８５】
まず、ステップＳ２００〜ステップＳ２１０までの処理は、図４に示すフローチャートのステップＳ１００〜ステップＳ１１０までの処理と同様である。
【００８６】
ステップＳ２１２では、圧縮率変更部２２３は、第１検出部１２２から出力された特定操作予測開始信号が入力されると、画面データ（画像データ）の圧縮率を第１圧縮率から第２圧縮率に変更し（ステップＳ２１２）、ステップＳ２００へ戻る。
【００８７】
また、ステップＳ２１４〜ステップＳ２１６までの処理は、図４に示すフローチャートのステップＳ１１４〜ステップＳ１１６までの処理と同様である。
【００８８】
ステップＳ２１８では、圧縮率変更部２２３は、第１検出部１２２から出力された特定操作予測解除信号が入力されると、画面データ（画像データ）の圧縮率を第２圧縮率から第１圧縮率に変更し（ステップＳ２１８）、ステップＳ２００へ戻る。
【００８９】
以上のように第２実施形態によれば、マウス移動イベントの単位時間当たりの発生頻度が第１発生頻度以上となった場合、画面データの圧縮率が第１圧縮率から第１圧縮率よりも高い第２圧縮率に変更される。このため、サーバ装置２１０からクライアント装置１９０への画面転送が定常的に行われている状態であっても、生成部１２８により生成される送信対象のデータの生成量を抑制でき、送信バッファ１３２に格納されるデータ量を抑制できる。これにより、送信バッファ１３２に空きがない状態を回避できる確率が高まり、近い将来、マウスのクリック又はダブルクリック、若しくは、キー押下などの画面変化を伴う特定操作イベントが発生しても、当該特定操作イベントに基づき生成された画面データを、遅延を生じさせずにクライアント装置１９０へ送信することができる。つまり、サーバ装置２１０からクライアント装置１９０への画面転送が定常的に行われている状態であっても、クライアント装置１９０で特定操作が行われてから、当該特定操作に伴う画面変化がクライアント装置１９０で反映されるまでの応答時間が遅延してしまうことを防止でき、良好な操作性を保つことができる。
【００９０】
図１２は、第２実施形態の特定操作の応答時間の一例の説明図である。図１２に示す例では、サーバ装置２１０は、単なるマウス移動操作（マウス移動イベント）の単位時間当たりの発生頻度が第１発生頻度以上となった場合、特定操作信号の予測検出、即ち、画面変化を伴う特定操作の予測を開始し、画面データの圧縮率を第１圧縮率から第２圧縮率に変更する。これにより、図１２に示す例では、画面変化を伴う特定操作の予測を開始する前に比べ、送信バッファ１３２に空きがある可能性が高まる。
【００９１】
このため、図１２に示す例によれば、サーバ装置２１０からクライアント装置１９０への画面転送が定常的に行われている状態において、画面変化を伴う特定操作が行われても、当該特定操作（特定操作イベント）に基づき生成された画面データを、応答時間に遅延を生じさせずにクライアント装置１９０へ送信できている。
【００９２】
（第３実施形態）
第３実施形態では、圧縮画面データの生成周期に応じて、画面データの変化検出周期を変更する例について説明する。なお以下では、第１実施形態との相違点の説明を主に行い、第１実施形態と同様の機能を有する構成要素については、第１実施形態と同様の名称・符号を付し、その説明を省略する。
【００９３】
図１３は、第３実施形態のサーバ装置３１０の構成の一例を示すブロック図である。図１３に示すように、第３実施形態の画面転送システム３００のサーバ装置３１０は、計時部３２９を備えている点、及び周期変更部３２４の処理内容が第１実施形態と相違する。
【００９４】
計時部３２９は、生成部１２８により生成される圧縮画面データの生成周期を計時する。
【００９５】
周期変更部３２４は、画面データの変化検出周期を計時部３２９により計時された生成周期以上の周期に変更する。
【００９６】
圧縮処理などにより、生成部１２８の圧縮画面データの生成周期が画面データの変化検出周期よりも長くなってしまう場合、圧縮画面データの生成に遅延が生じてしまう。これに対し、第３実施形態では、画面データの変化検出周期を計時部３２９により計時された生成周期以上の周期に変更するため、圧縮画面データの生成遅延を防止することができる。
【００９７】
周期変更部３２４は、画面データの変化検出周期を通常状態において計時部３２９により計時された生成周期に変更し、当該生成周期を第１周期としてもよい。例えば、周期変更部３２４は、通常状態において計時部３２９により計時された生成周期が８０ｍｓである場合、画面データの変化検出周期を４０ｍｓから８０ｍｓに変更し、８０ｍｓを第１周期としてもよい。
【００９８】
また周期変更部３２４は、通常状態において計時部３２９により計時された生成周期を保持し、保持した生成周期よりも長い周期を第２周期とするようにしてもよい。例えば、周期変更部３２４は、通常状態において計時部３２９により計時された生成周期（例えば、８０ｍｓ）を保持し、第１検出部１２２から特定操作予測開始信号が入力された場合に、画面データの変化検出周期を４０ｍｓから保持している生成周期である８０ｍｓよりも長い１８０ｍｓに変更し、第２周期とするようにしてもよい。
【００９９】
以上のように第３実施形態によれば、圧縮画面データの生成遅延を防止することができる。これにより、サーバ装置３１０からクライアント装置１９０への画面転送が定常的に行われている状態であっても、クライアント装置１９０で特定操作が行われてから、当該特定操作に伴う画面変化がクライアント装置１９０で反映されるまでの応答時間が遅延してしまうことを防止でき、良好な操作性を保つことができる。
【０１００】
（第４実施形態）
第４実施形態では、画面データの領域毎に変化検出周期を変更する例について説明する。なお以下では、第１実施形態との相違点の説明を主に行い、第１実施形態と同様の機能を有する構成要素については、第１実施形態と同様の名称・符号を付し、その説明を省略する。
【０１０１】
図１４は、第４実施形態のサーバ装置４１０の構成の一例を示すブロック図である。図１４に示すように、第４実施形態の画面転送システム４００のサーバ装置４１０は、第３検出部４２７を備えている点、及び周期変更部４２４の処理内容が第１実施形態と相違する。なお第４実施形態では、第２検出部１２６が画面の領域毎に異なる周期で画面データの変化を検出できるものとする。
【０１０２】
第３検出部４２７は、画面データの領域毎に単位時間当たりの変化検出頻度を検出し、保持する。具体的には、第３検出部４２７は、領域を示す領域データと当該領域の変化検出頻度データとを保持する。
【０１０３】
例えば、第３検出部４２７は、図１５に示す例において、座標(（ｘ１，ｙ１）−（ｘ２，ｙ２）)で示される領域で第２検出部１２６により１秒間に１０回以上の画面変化（更新）が検出されたことを検出したとする。なお、座標(（ｘ１，ｙ１）−（ｘ２，ｙ２）)で示される領域は、動画画面１４２であるものとする。この場合、第３検出部４２７は、領域データ及び変化検出頻度データとして［(（ｘ１，ｙ１）−（ｘ２，ｙ２）)，１０］というデータを保持する。
【０１０４】
また例えば、第３検出部４２７は、図１５に示す例において、座標(（ｘ３，ｙ３）−（ｘ４，ｙ４）)で示される領域で第２検出部１２６により１秒間に２回以上の画面変化（更新）が検出されたことを検出したとする。なお、座標(（ｘ３，ｙ３）−（ｘ４，ｙ４）)で示される領域は、操作画面１４４であるものとする。この場合、第３検出部４２７は、領域データ及び変化検出頻度データとして［(（ｘ３，ｙ３）−（ｘ４，ｙ４）)，２］というデータを保持する。
【０１０５】
なお、第３検出部４２７は、所定の領域で第２検出部１２６により１秒間に１回以下の画面変化（更新）が検出されたことを検出した場合、当該所定の領域の領域データ及び変化検出頻度データを保持しないものとする。
【０１０６】
周期変更部４２４は、所定操作イベントが検出された場合に、第３検出部４２７により検出された変化検出頻度が第１検出頻度を超えている領域の変化検出周期を第１周期から第２周期に変更する。具体的には、周期変更部４２４は、特定操作予測開始信号が入力されると、第３検出部４２７により保持されている領域データ及び変化検出頻度データを取得する。そして周期変更部４２４は、取得した変化検出頻度データが第１検出頻度を超えている場合、領域データが示す領域の変化検出周期を第１周期から第２周期に変更する。なお、第１検出頻度とは、例えば、第２検出部１２６により１秒間に１０回以上の画面変化が検出されたことなどが該当するが、これに限定されるものではなく、適宜設定することができる。
【０１０７】
例えば、周期変更部４２４は、特定操作予測開始信号が入力されると、第３検出部４２７から［(（ｘ１，ｙ１）−（ｘ２，ｙ２）)，１０］、及び［(（ｘ３，ｙ３）−（ｘ４，ｙ４）)，２］を取得する。そして周期変更部４２４は、(（ｘ１，ｙ１）−（ｘ２，ｙ２）)で示される領域の変化検出周期を第１周期から第２周期に変更し、その領域の変化検出頻度が１秒間に５回となるようにする。但し、変化検出周期変更後の変化検出頻度は、これに限定されるものではない。この際、周期変更部４２４は、第３検出部４２７から取得した［(（ｘ１，ｙ１）−（ｘ２，ｙ２）)，１０］を保持しておくものとする。そして周期変更部４２４は、特定操作予測解除信号が入力されると、保持している［(（ｘ１，ｙ１）−（ｘ２，ｙ２）)，１０］を用いて、(（ｘ１，ｙ１）−（ｘ２，ｙ２）)で示される領域の変化検出周期を第２周期から第１周期に変更し、その領域の変化検出頻度が１秒間に１０回となるようにする。
【０１０８】
以上のように第４実施形態によれば、動画画面など変化検出頻度が高い部分の変化検出周期を長くすることができる。これにより、サーバ装置４１０からクライアント装置１９０への画面転送が定常的に行われている状態であっても、クライアント装置１９０で特定操作が行われてから、当該特定操作に伴う画面変化がクライアント装置１９０で反映されるまでの応答時間が遅延してしまうことを防止でき、良好な操作性を保つことができる。
【０１０９】
（変形例）
なお、本発明は上記実施形態をそのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【０１１０】
（変形例１）
例えば、図１６に示すように、上記第１実施形態と第２実施形態とを組み合わせてもよい。図１６は、変形例１のサーバ装置５１０の構成の一例を示すブロック図である。図１５に示すように、変形例１の画面転送システム５００のサーバ装置５１０は、周期変更部１２４と圧縮率変更部２２３とを備えており、画面データの変化検出周期及び画面データの圧縮率の両方を変更する。
【０１１１】
（変形例２）
また例えば、図１７に示すように、上記第２実施形態と第３実施形態とを組み合わせてもよい。図１７は、変形例２のサーバ装置６１０の構成の一例を示すブロック図である。図１７に示すように、変形例２の画面転送システム６００のサーバ装置６１０は、周期変更部３２４、計時部３２９、及び圧縮率変更部６２３を備えており、圧縮画面データの生成周期に応じて、画面データの変化検出周期だけでなく画面データの圧縮率を変更する。
【０１１２】
例えば、圧縮率変更部６２３は、画面データの圧縮率を第１圧縮率（例えば、５０％）、第１圧縮率よりも高い第２圧縮率（例えば、８０％）、又は第１圧縮率よりも高く第２圧縮率よりも低い第３圧縮率（例えば、６５％）に変更可能であるとする。
【０１１３】
そして圧縮率変更部６２３は、画面データの圧縮率が５０％である場合に、第１検出部１２２から特定操作予測開始信号が入力されたとする。この場合、圧縮率変更部６２３は、特定操作予測開始信号が入力される以前に計時部３２９により計時された生成周期が８０ｍｓ未満であれば、画面送信頻度が高いと判断し、画面データの圧縮率を８０％に変更する。一方、圧縮率変更部６２３は、特定操作予測開始信号が入力される以前に計時部３２９により計時された生成周期が８０ｍｓ以上であれば、画面送信頻度が低いと判断し、画面データの圧縮率を６５％に変更する。
【０１１４】
一方、圧縮率変更部６２３は、画面データの圧縮率が８０％又は６５％である場合に、第１検出部１２２から特定操作予測解除信号が入力されたとする。この場合、圧縮率変更部６２３は、画面データの圧縮率を５０％に変更する。
【０１１５】
なお、変形例２で説明した圧縮率及び生成周期の値は、例示であり、これに限定されるものではない。例えば、第４圧縮率（例えば、５５％）を更に用意し、圧縮率変更部６２３は、特定操作予測開始信号が入力された場合に、計時部３２９により計時された生成周期が８０ｍｓ以上１００ｍｓ未満であれば画面データの圧縮率を６５％に変更し、計時部３２９により計時された生成周期が１００ｍｓ以上であれば画面データの圧縮率を５５％に変更するというようにしてもよい。つまり、圧縮率の種類、及び圧縮率の選択基準となる生成周期も適宜設定することができる。
【０１１６】
以上のように変形例２によれば、圧縮画面データの生成周期に応じて画面データの圧縮率を変更することができる。これにより、サーバ装置６１０からクライアント装置１９０への画面転送が定常的に行われている状態であっても、クライアント装置１９０で特定操作が行われてから、当該特定操作に伴う画面変化がクライアント装置１９０で反映されるまでの応答時間が遅延してしまうことを防止でき、良好な操作性を保つことができる。
【０１１７】
（変形例３）
また例えば、図１８に示すように、上記第２実施形態と第４実施形態とを組み合わせてもよい。図１８は、変形例３のサーバ装置７１０の構成の一例を示すブロック図である。図１８に示すように、変形例３の画面転送システム７００のサーバ装置７１０は、周期変更部４２４、第３検出部４２７、及び圧縮率変更部７２３を備えており、画面データの領域毎に変化検出周期を変更するだけでなく、画面データの領域毎に画面データの圧縮率を変更する。なお変形例３では、生成部１２８が画面の領域毎に異なる圧縮率で画面データを圧縮できるものとする。
【０１１８】
圧縮率変更部７２３は、所定操作イベントが検出された場合に、第３検出部４２７により検出された変化検出頻度が第１検出頻度を超えている領域の圧縮率を第１圧縮率から第２圧縮率に変更する。具体的には、圧縮率変更部７２３は、特定操作予測開始信号が入力されると、第３検出部４２７により保持されている領域データ及び変化検出頻度データを取得する。そして圧縮率変更部７２３は、取得した変化検出頻度データが第１検出頻度を超えている場合、領域データが示す領域の圧縮率を第１圧縮率から第２圧縮率に変更する。
【０１１９】
例えば、圧縮率変更部７２３は、特定操作予測開始信号が入力されると、第３検出部４２７から［(（ｘ１，ｙ１）−（ｘ２，ｙ２）)，１０］、及び［(（ｘ３，ｙ３）−（ｘ４，ｙ４）)，２］を取得する。そして圧縮率変更部７２３は、(（ｘ１，ｙ１）−（ｘ２，ｙ２）)で示される領域の圧縮率を５０％から８０％に変更する。この際、圧縮率変更部７２３は、第３検出部４２７から取得した［(（ｘ１，ｙ１）−（ｘ２，ｙ２）)，１０］を保持しておくものとする。そして圧縮率変更部７２３は、特定操作予測解除信号が入力されると、保持している［(（ｘ１，ｙ１）−（ｘ２，ｙ２）)，１０］を用いて、(（ｘ１，ｙ１）−（ｘ２，ｙ２）)で示される領域の圧縮率を８０％から５０％に変更する。
【０１２０】
なお、変形例３で説明した圧縮率及び第１検出頻度の値は、例示であり、これに限定されるものではない。
【０１２１】
以上のように変形例３によれば、動画画面など変化検出頻度が高い部分の圧縮率を高くすることができる。これにより、サーバ装置７１０からクライアント装置１９０への画面転送が定常的に行われている状態であっても、クライアント装置１９０で特定操作が行われてから、当該特定操作に伴う画面変化がクライアント装置１９０で反映されるまでの応答時間が遅延してしまうことを防止でき、良好な操作性を保つことができる。
【０１２２】
（変形例４）
なお、上記各実施形態及び変形例では、マウス操作を例に取り説明し、マウスの移動イベントを利用して特定操作イベントを予測する方法を説明したが、これに限るものではない。
【０１２３】
例えば、入力デバイスはキーボードであり、キー操作イベントから特定操作イベントを予測するようにしてもよい。この場合、第１検出部は、キー操作イベントの単位時間当たりの発生頻度が第１発生頻度以上であることを検出することにより、近い将来、マウスのクリック又はダブルクリック、若しくは、キー押下などの画面変化を伴う特定操作イベントが発生することを予測する。ここで、第１発生頻度とは、例えば、５秒間に５回以上のキー操作イベントの発生などが該当するが、これらに限定されるものではなく、適宜設定することができる。
【０１２４】
また例えば、マウスにセンサをつけておき、ユーザがマウスを触ったことをマウス側で検知すれば、その検知結果を例えば無線を用いてサーバ装置に通知し、その通知によりサーバ装置にて画面変化を伴う特定操作イベントが発生することを予測するようにしてもよい。
【０１２５】
また例えば、入力デバイスは、マウスに限らずベン型の入力デバイスやテレビのようなリモコンであっても適用できる。例えば、入力デバイスがリモコンの場合には、リモコンをユーザが手でもつことを検出し、リモコン本体が特定の動き（上下に揺れる、左右に揺れる）を検出した場合に、その検出結果を例えば無線を用いてサーバ装置に通知し、その通知によりサーバ装置にて画面変化を伴う特定操作イベントが発生することを予測するようにしてもよい。
【０１２６】
（変形例５）
また、上記各実施形態及び変形例では、送信バッファに格納されるデータ量を抑制する手法として、画面変化検出周期の変更や、画面データの圧縮率の変更などを説明したが、これらに限定されるものではない。例えば、サーバ装置からクライアント装置に送信する画面を縮小することで、送信バッファに格納されるデータ量を抑制してもよい。
【０１２７】
上記各実施形態及び上記各変形例のサーバ装置は、ＣＰＵ（Central  Processing  Unit）などの制御装置と、ＲＯＭやＲＡＭなどの記憶装置と、ＨＤＤやＳＳＤなどの外部記憶装置と、ディスプレイなどの表示装置と、マウスやキーボードなどの入力装置と、通信Ｉ／Ｆなどの通信装置とを備えており、通常のコンピュータを利用したハードウェア構成となっている。
【０１２８】
上記各実施形態及び上記各変形例のサーバ装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、ＣＤ−Ｒ、メモリカード、ＤＶＤ、フレキシブルディスク（ＦＤ）等のコンピュータで読み取り可能な記憶媒体に記憶されて提供される。
【０１２９】
また、上記各実施形態及び上記各変形例のサーバ装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしてもよい。また、上記各実施形態及び上記各変形例のサーバ装置で実行されるプログラムを、インターネット等のネットワーク経由で提供または配布するようにしてもよい。また、上記各実施形態及び上記各変形例のサーバ装置で実行されるプログラムを、ＲＯＭ等に予め組み込んで提供するようにしてもよい。
【０１３０】
上記各実施形態及び上記各変形例のサーバ装置で実行されるプログラムは、上述した各部をコンピュータ上で実現させるためのモジュール構成となっている。実際のハードウェアとしては、例えば、ＣＰＵがＨＤＤからプログラムをＲＡＭ上に読み出して実行することにより、上記各部がコンピュータ上で実現されるようになっている。
【０１３１】
以上のように上記各実施形態及び変形例によれば、サーバ装置からクライアント装置への画面転送が定常的に行われている状態であっても、操作に伴う画面変化の応答遅延を防止することができる。
【符号の説明】
【０１３２】
１００、２００、３００、４００、５００、６００、７００  画面転送システム
１０２  ネットワーク
１１０、２１０、３１０、４１０、５１０、６１０、７１０  サーバ装置
１１２  受信部
１１４  解析部
１１６  アプリケーション
１１８  フレームバッファ
１２０  表示部
１２２  第１検出部
１２４、３２４、４２４  周期変更部
１２６  第２検出部
１２８  生成部
１３０  送信部
１９０  クライアント装置
２２３、６２３、７２３  圧縮率変更部
３２９  計時部
４２７  第３検出部
【図１】
0005259683.tif 000002
【図２】
0005259683.tif 000003
【図３】
0005259683.tif 000004
【図４】
0005259683.tif 000005
【図５】
0005259683.tif 000006
【図６】
0005259683.tif 000007
【図７】
0005259683.tif 000008
【図８】
0005259683.tif 000009
【図９】
0005259683.tif 000010
【図１０】
0005259683.tif 000011
【図１１】
0005259683.tif 000012
【図１２】
0005259683.tif 000013
【図１３】
0005259683.tif 000014
【図１４】
0005259683.tif 000015
【図１５】
0005259683.tif 000016
【図１６】
0005259683.tif 000017
【図１７】
0005259683.tif 000018
【図１８】
0005259683.tif 000019