(57)【特許請求の範囲】
【請求項１】
送信する画像を記憶する記憶部と、
送信する画像内に複数設定された区域毎に、前記区域に所定期間内に記憶された画像の更新頻度を設定する更新頻度設定部と、
前記更新頻度に基づいて、前記区域間の関連性の高さを示す関連度を設定する関連度設定部と、
操作対象の区域を特定し、該特定した区域と、該特定した区域との間の前記関連度が最も高い区域とに対して、他の区域よりも高い優先度を設定する優先度設定部と、
前記記憶部に記憶された画像を、設定された優先度が高い区域の画像から順に送信する送信部と、
を有することを特徴とする情報処理装置。
【請求項２】
前記優先度設定部は、カーソルの位置と設定された区域に基づいて、前記カーソルが存在する区域を特定し、前記カーソルが存在する区域と前記カーソルが存在する区域に最も関連性の高い区域に対して、他の区域よりも高い優先度を設定することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記優先度設定部は、前記送信部が送信しているデータ量が、画像の送信に使用するネットワークの利用可能帯域の上限に達しているか否かを判断し、上限に達しているときに動作することを特徴とする請求項１または２のいずれかに記載の情報処理装置。
【請求項４】
前記優先度設定部は、前記特定した区域に最も関連性の高い区域の関連度が閾値以上である場合に、該区域に対して、他の区域よりも高い優先度を設定することを特徴とする請求項１乃至３のいずれかに記載の情報処理装置。
【請求項５】
前記カーソルが操作された時刻を、前記カーソルが存在する区域の情報とともに記憶する操作状態検出部をさらに備え、
前記優先度設定部は、前記操作状態検出部に記憶された時刻に基づいていずれかの前記区域でユーザが操作状態であると認識したときに動作することを特徴とする請求項２記載の情報処理装置。
【請求項６】
複数の画像を所定のフレーム間にて比較し、前記画像内の更新された回数が一定以上の更新領域を設定する領域設定部をさらに有し、
前記更新頻度設定部は、前記領域設定部が設定した更新領域と設定された前記区域とに基づいて、前記更新頻度を設定することを特徴とする請求項１記載の情報処理装置。
【請求項７】
送信する画像内のウインドウのエッジを検出し、検出した前記エッジに基づいて、前記記憶部内の画像の記憶領域に複数の区域を設定する区域設定部をさらに有することを特徴とする請求項１乃至６のいずれかに記載の情報処理装置。
【請求項８】
前記区域設定部は、前記関連度設定部が設定した前記関連度に基づいて、前記エッジ検出後の画像の区域を変更することを特徴とする請求項７記載の情報処理装置。
【請求項９】
前記区域設定部は、前記関連度設定部が設定した全ての前記関連度が閾値以下である場合、設定する区域の数を増やすことを特徴とする請求項８記載の情報処理装置。
【請求項１０】
前記区域設定部は、他の全ての区域との前記関連度が閾値以下である区域を、前記区域の設定対象から除外することを特徴とする請求項８記載の情報処理装置。
【請求項１１】
前記区域間を跨ったカーソル移動の操作が行われた回数を、移動前の区域と移動後の区域とに対応付けて蓄積する移動履歴蓄積部をさらに有し、
前記関連度設定部は、前記区域間を跨ったカーソル移動が行われた回数に基づいて、前記関連度の値を算出することを特徴とする請求項１乃至１０のいずれかに記載の情報処理装置。
【請求項１２】
コンピュータが、
送信する画像内に複数設定された区域毎に、前記区域に所定期間内に記憶部に記憶された画像の更新頻度を設定し、
前記更新頻度に基づいて、前記区域間の関連性の高さを示す関連度を設定し、
操作対象の区域を特定し、該特定した区域と、該特定した区域との間の前記関連度が最も高い区域とに対して、他の区域よりも高い優先度を設定し、
前記記憶部に記憶された画像を、設定された優先度が高い区域の画像から順に送信する、
ことを特徴とする情報処理方法。
【請求項１３】
コンピュータに、
送信する画像内に複数設定された区域毎に、前記区域に所定期間内に記憶部に記憶された画像の更新頻度を設定し、
前記更新頻度に基づいて、前記区域間の関連性の高さを示す関連度を設定し、
操作対象の区域を特定し、該特定した区域と、該特定した区域との間の前記関連度が最も高い区域とに対して、他の区域よりも高い優先度を設定し、
前記記憶部に記憶された画像を、設定された優先度が高い区域の画像から順に送信する、
処理を実行させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置、情報処理方法および情報処理プログラムに関する。
【背景技術】
【０００２】
近年、クライアント（Client）装置に搭載する機能を可及的に抑え、サーバ（Server）装置側でアプリケーション（Application）やファイル（File）等のリソース（Resource）を管理するシンクライアント（Thin Client）と言うシステム（System）が知られている。
【０００３】
シンクライアントシステムでは、実際にはサーバ装置が処理を実行した処理結果やサーバ装置が保持するデータをクライアントに表示させ、あたかもクライアントが主体となって処理を実行したり、データを保持しているかのように振る舞う。
【０００４】
シンクライアントシステムにて実行する業務の実行方法の一例としては、サーバ装置で資料作成業務やメール管理業務等に関するアプリケーションを実行させ、そのアプリケーションの処理結果をクライアントに表示させる方法等が挙げられる。
【０００５】
近年、資料作成業務やメール管理業務の他にも、シンクライアントシステムに実行させる業務を、ＣＡＤ（Computer-Aided Design）作成業務等のように精細な画像を扱う業務や、動画再生・編集業務等まで拡充することが求められている。
【０００６】
ＣＡＤ作成業務や、動画を取り扱う業務等、クライアント装置のＣＰＵ（Central Processing Unit）に負荷が大きい業務を実行させる場合は、サーバ装置からクライアント装置に転送する情報量が増大するため、クライアント装置で実行される操作に対する応答（response）が遅延する場合がある。応答速度の改善を図る技術としては、例えば、ディスプレイを複数のブロックに分割し、そのブロックの中から更新の頻度が高いブロックを検出し、これを動画と判定して優先して読み出し・転送を行う技術が知られている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平１１−２７５５３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし従来の技術では、ユーザが注目している画像の送信が、他の画像よりも後になり、注目している画像の内容の視認に時間がかかる場合がある。例えば、ＣＡＤ等のアプリケーションは、いくつかのウインドウ群をモニタに表示することがある。ここで、ウインドウには、相対的に更新の頻度が高いウインドウ（例えばデータを描画するウインドウ）や、相対的に更新の頻度が低いウインドウ（例えば操作ツールを表示するウインドウ）等が存在する。更新の頻度が高いウインドウへの描画処理を優先的に処理すると、更新の頻度が低いウインドウの描画処理の優先頻度が相対的に低くなる。このため、例えばユーザが、動画像データが描画されたウインドウを見ながら、そのウインドウに関連するマウス操作を、操作ツールが表示されたウインドウ内で行っている場合、動画像データは迅速に更新されるが、マウスカーソルの移動にタイムラグが生じる場合がある。
【０００９】
なお、注目画像の送信の遅延は、シンクライアントシステムでクライアント装置とサーバ装置間で画面更新時に転送する情報量が増大する場合に共通するものであり、画像や動画を扱う場合に限定して生じるものではない。
【００１０】
本発明はこのような点に鑑みてなされたものであり、注目画像の送信の遅延を抑制する情報処理装置、情報処理方法および情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、開示の情報処理装置が提供される。この情報処理装置は、記憶部と、更新頻度設定部と、関連度設定部と、優先度設定部と、送信部とを有している。
【００１２】
記憶部は、送信する画像を記憶する。
更新頻度設定部は、送信する画像内に複数設定された区域毎に、区域に所定期間内に記憶された画像の更新頻度を設定する。
【００１３】
関連度設定部は、更新頻度に基づいて、区域間の関連性の高さを示す関連度を設定する。
優先度設定部は、操作対象の区域を特定し、該特定した区域と、該特定した区域との間の関連度が最も高い区域とに対して、他の区域よりも高い優先度を設定する。
【００１４】
送信部は、記憶部に記憶された画像を、設定された優先度が高い区域の画像から順に送信する。
【発明の効果】
【００１５】
注目画像の送信の遅延を抑制することができる。
【図面の簡単な説明】
【００１６】
【図１】第１の実施の形態の情報処理装置の概要を示す図である。
【図２】第２の実施の形態の情報処理システムを示す図である。
【図３】第２の実施の形態のサーバ装置およびクライアント装置の機能を示すブロック図である。
【図４】表示デバイスに表示させる画面の分割要領を説明する図である。
【図５】表示デバイスに表示させる画面の更新頻度の判別要領を説明する図である。
【図６】メッシュ連結体の補正要領を説明する図である。
【図７】高頻度更新領域の候補の合成要領を説明する図である。
【図８】領域位置識別情報を説明する図である。
【図９】操作ツール区域とデータ描画区域との関連性を説明する図である。
【図１０】関連度設定部が作成するテーブルを説明する図である。
【図１１】サーバ装置の処理を示すフローチャートである。
【図１２】操作区域検出処理を示すフローチャートである。
【図１３】回線帯域検出処理を示すフローチャートである。
【図１４】ウインドウエッジ検出処理を示すフローチャートである。
【図１５】更新頻度計算処理を示すフローチャートである。
【図１６】関連度設定処理を示すフローチャートである。
【図１７】優先度設定処理を示すフローチャートである。
【図１８】関連度設定処理の具体例を説明する図である。
【図１９】第３の実施の形態の第１のウインドウエッジ検出処理を示すフローチャートである。
【図２０】第３の実施の形態の第２のウインドウエッジ検出処理を示すフローチャートである。
【図２１】第４の実施の形態のサーバ装置を示すブロック図である。
【図２２】操作状態検出部が保持する情報を示す図である。
【図２３】第４の実施の形態の優先度設定処理を示すフローチャートである。
【図２４】第５の実施の形態のサーバ装置を示すブロック図である。
【図２５】操作情報履歴蓄積部が保持する履歴情報を示す図である。
【図２６】第５の実施の形態の関連度設定処理を示すフローチャートである。
【図２７】第５の実施の形態の関連度設定処理の具体例を説明する図である。
【図２８】第６の実施の形態のサーバ装置を示すブロック図である。
【図２９】第６の実施の形態の関連度設定部の動作を説明する図である。
【図３０】第６の実施の形態の関連度設定処理を示すフローチャートである。
【発明を実施するための形態】
【００１７】
以下、実施の形態を、図面を参照して詳細に説明する。
まず、実施の形態の情報処理装置について説明し、その後、実施の形態をより具体的に説明する。
【００１８】
＜第１の実施の形態＞
図１は、第１の実施の形態の情報処理装置の概要を示す図である。
実施の形態の情報処理装置（コンピュータ）１は、クライアント装置２が有する表示部２ａへの画像の表示要求に際し、画像データをクライアント装置２に送信する機能を有している。
【００１９】
情報処理装置１は、記憶部１ａと、更新頻度設定部１ｂと、関連度設定部１ｃと、優先度設定部１ｄと、送信部１ｅとを有している。
記憶部１ａは、送信する画像を記憶する。
【００２０】
更新頻度設定部１ｂは、送信する画像内に複数設定された区域毎に、区域に所定期間内に記憶された画像の更新頻度を設定する。
本実施の形態の情報処理装置１は、区域を設定する区域設定部１ｆをさらに有することができる。区域設定部１ｆは、表示部２ａに表示されているウインドウのエッジを検出する。図１では、４つのウインドウａ〜ｉの枠をエッジとしてそれぞれ検出する。そして、区域設定部１ｆは、検出したエッジに基づいて、表示部２ａに表示する画面に複数の区域を設定する。例えば、区域設定部１ｆは、検出したエッジにより画面を区域に分割する。そして、分割した区域の大きさが一定以下の区域や、区域の外に別区域が存在する区域を削除する。図１では、ウインドウａ〜ｉのエッジ内の領域をそれぞれ区域に設定する。そして、ウインドウｅ、ｆのエッジ内の区域は、大きさが一定以下の区域であるものとして削除する。また、ウインドウｇ、ｈ、ｉのエッジ内の区域は、区域の外にウインドウｃの区域が存在するため削除する。この処理により、ウインドウａ〜ｄの区域ａ１〜ｄ１が残る。
【００２１】
そして、図１では、更新頻度設定部１ｂは、区域ａ１〜ｄ１それぞれの画面の更新頻度を設定する。更新頻度は、例えば、各区域における時間毎の更新データ量に基づいて、決定することができる。より具体的には、表示部２ａに表示される画像を所定のフレーム間にて比較し、画像内の更新された回数が一定以上の更新領域を設定する。そして、この更新領域を区域に重ねることにより、区域毎の画面の更新頻度を設定することができる。
【００２２】
関連度設定部１ｃは、更新頻度設定部１ｂが取得した更新頻度に基づいて、区域間の関連性の高さを示す関連度を設定する。例えば、関連度設定部１ｃは、更新頻度を参照し、最も更新頻度の多い区域を特定する。そして、特定した区域と同時に更新が起こっている区域に高い関連度を設定する。本実施の形態では、区域ａ１と区域ｃ１の組み合わせが、他の区域の組み合わせに比べて最も関連度が高いものとする。
【００２３】
優先度設定部１ｄは、操作対象の区域を特定し、該特定した区域と、該特定した区域との間の関連度が最も高い区域とに対して、他の区域よりも高い優先度を設定する。図１では、カーソル（例えばマウスカーソル）が存在する区域とマウスカーソルが存在する区域に最も関連性の高い区域を、関連度が最も高い区域の組み合わせに設定する。
【００２４】
送信部１ｅは、記憶部１ａに記憶された画像を、設定された優先度が高い区域の画像から順に送信する。図１では、送信部１ｅが送信する画像データＡ〜Ｄを図示している。ここで、画像データＡは、区域ａ１に表示するデータであり、画像データＢは、区域ｂ１に表示するデータであり、画像データＣは、区域ｃ１に表示するデータであり、画像データＤは、区域ｄ１に表示するデータである。優先度を考慮しない場合、送信部１ｅは、例えば画像データＡ、Ｂ、Ｃ、Ｄの順序でデータをクライアント装置２に送信する。他方、優先度を考慮する場合、送信部１ｅは、マウスカーソル２ｂが存在する区域ｃ１の画像と、区域ｃ１と最も関連性の高い区域ａ１の画像を、他の区域ｂ１、ｄ１の画像に優先して送信する。この結果、送信部１ｅは、画像データＡ、Ｃ、Ｂ、Ｄの順序でデータをクライアント装置２に送信する。これにより、ユーザが実際に操作している区域の画像が、他の区域の画像に比べて優先して送信されるため、ユーザの操作に対する応答遅延を抑制することができる。画像データを受信したクライアント装置２は、受信した画像データを指定された区域に表示する。図１では、クライアント装置２は、画像データＡを区域ａ１に表示し、画像データＣを区域ｃ１に表示する。その後、画像データＢを区域ｂ１に表示し、画像データＤを区域ｄ１に表示する。これらの処理により、更新の頻度が高い区域ａ１に関連度の高い区域ｃ１への処理の遅延を抑制することができる。
【００２５】
なお、関連度設定部１ｃは、関連度が閾値以上か否かを判断し、閾値以上の関連度を有する区域同士の画像を他の区域に優先して送信するようにしてもよい。これにより、関連性の低い区域同士の画像が、他の区域に優先して送信されることを抑制することができる。
【００２６】
なお、更新頻度設定部１ｂ、関連度設定部１ｃ、優先度設定部１ｄ、送信部１ｅ、および区域設定部１ｆは、情報処理装置１が有するＣＰＵが備える機能により実現することができる。また、記憶部１ａは、情報処理装置１が有するＲＡＭ（Random Access Memory）やハードディスクドライブ（ＨＤＤ:Hard Disk Drive）等が備えるデータ記憶領域により実現することができる。
【００２７】
また、送信部１ｅがクライアント装置２に画像データを送信する際には、例えばＲＤＰ（Remote Desktop Protocol）や、ＶＮＣ（Virtual Network Computing）で用いられているＲＦＢ（Remote Frame Buffer）プロトコル等で、画像や動画等の大容量のデータを扱う場合にも適用することができる。
【００２８】
以下、実施の形態をより具体的に説明する。
＜第２の実施の形態＞
図２は、第２の実施の形態の情報処理システムを示す図である。
本実施の形態の情報処理システム５は、サーバ装置１０とクライアント装置２０とを有している。
【００２９】
これらサーバ装置１０およびクライアント装置２０は、所定のネットワーク（Network）５０を介して、相互に通信可能に接続される。かかるネットワーク５０には、有線または無線を問わず、インターネット（Internet）、ＬＡＮ（Local Area Network）やＶＰＮ（Virtual Private Network）等の任意の種類の通信網を採用できる。なお、サーバ装置１０およびクライアント装置２０間の通信プロトコル（Protocol）には、一例として、ＶＮＣにおけるＲＦＢプロトコルを採用する場合を想定する。
【００３０】
なお、図２では、１つのサーバ装置１０に対し、１つのクライアント装置を接続する場合を図示したが、１つのサーバ装置１０に対し、２以上のクライアント装置が接続されていてもよい。
【００３１】
サーバ装置１０は、クライアント装置２０に表示させる画面をリモートで制御するサービスを提供するコンピュータ（Computer）である。
クライアント装置２０は、サーバ装置１０によるリモート画面制御サービスの提供を受ける側のコンピュータである。かかるクライアント装置２０の一例としては、パーソナルコンピュータ（Personal Computer）等固定端末の他、携帯電話機、ＰＨＳ（Personal Handyphone System）やＰＤＡ（Personal Digital Assistant）等の移動体端末を適用することもできる。
【００３２】
サーバ装置１０は、ＯＳ（Operating System）やアプリケーションを実行しているデスクトップ環境の画面を逐次チェックし、更新があるとこれをクライアント装置２０に送信する。クライアント装置２０は、サーバ装置１０から受信した画面のデータを表示するとともに自身から操作で発生したコマンドをサーバ装置１０へ送信する。
【００３３】
以下、ユーザがクライアント装置２０を利用してサーバ装置１０からデスクトップ環境の画面を、ネットワーク５０を介して受信して利用する場面について説明する。
ユーザはデスクトップ環境の画面を利用しており、サーバ装置１０上に存在するデスクトップ画面のサイズとクライアント装置２０が持つ画面のサイズは同一と言う場面を想定する。またデスクトップ環境ではＣＡＤアプリケーションのような１つのアプリケーションウインドウの中に複数の子ウインドウを持つ、もしくは複数のウインドウを利用して１つのアプリケーションとして利用する特徴を持つアプリケーションを画面の全体あるいは多くの部分を占めた状態で利用し、大量の更新データの送受信がユーザのマウス操作によって発生する利用シーンを想定する。
【００３４】
さらに実施の形態の情報処理システム５が有効な（優先処理が行われる）シーンは、ユーザがボタン等のツールの操作を行っている場合を主としているが、他のユーザが３Ｄオブジェクトのデータを直接操作するシーン等への適用にも有効な場合がある。
【００３５】
以下、サーバ装置１０およびクライアント装置２０のハードウェア構成を説明する。サーバ装置１０は、ＣＰＵ１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０８を介してＲＡＭ１０２と複数の周辺機器が接続されている。
【００３６】
ＲＡＭ１０２は、サーバ装置１０の主記憶装置として使用される。ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に用いる各種データが格納される。
【００３７】
バス１０８に接続されている周辺機器としては、ハードディスクドライブ１０３、グラフィック処理装置１０４、入力インタフェース１０５、光学ドライブ装置１０６、および通信インタフェース１０７がある。
【００３８】
ハードディスクドライブ１０３は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ハードディスクドライブ１０３は、サーバ装置１０の二次記憶装置として使用される。ハードディスクドライブ１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリ等の半導体記憶装置を使用することもできる。
【００３９】
グラフィック処理装置１０４には、モニタ１０４ａが接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１０４ａの画面に表示させる。モニタ１０４ａとしては、ＣＲＴ（Cathode Ray Tube）を用いた液晶表示装置等が挙げられる。
【００４０】
入力インタフェース１０５には、キーボード１０５ａとマウス１０５ｂとが接続されている。入力インタフェース１０５は、キーボード１０５ａやマウス１０５ｂから送られてくる信号をＣＰＵ１０１に送信する。なお、マウス１０５ｂは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボール等が挙げられる。
【００４１】
光学ドライブ装置１０６は、レーザ光等を利用して、光ディスク２００に記録されたデータの読み取りを行う。光ディスク２００は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク２００には、Ｂｌｕ−Ｒａｙ（登録商標）、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等が挙げられる。
【００４２】
通信インタフェース１０７は、ネットワーク５０に接続されている。通信インタフェース１０７は、ネットワーク５０を介して、クライアント装置２０との間でデータの送受信を行う。
【００４３】
クライアント装置２０は、ＣＰＵ２０１によって装置全体が制御されている。ＣＰＵ２０１には、バス２０７を介してＲＡＭ２０２、Ｆｌａｓｈメモリ２０３、グラフィック処理装置２０４、入力インタフェース２０５および通信インタフェース２０６が接続されている。
【００４４】
ＲＡＭ２０２、グラフィック処理装置２０４、入力インタフェース２０５および通信インタフェース２０６の機能は、それぞれＲＡＭ１０２、グラフィック処理装置１０４、入力インタフェース１０５および通信インタフェース１０７と同様である。
【００４５】
また、クライアント装置２０は、ハードディスクドライブ１０３を搭載せず、Ｆｌａｓｈメモリ２０３を有している。
表示デバイス２０４ａは、各種の情報、例えばサーバ装置１０から送信されたデスクトップ画面等を表示するデバイスであり、一例としては、モニタ（monitor）、ディスプレイ（display）やタッチパネル（touch panel）等が挙げられる。図２では、携帯端末型のクライアント装置２０を例示しており、表示デバイス２０４ａは、クライアント装置２０に搭載されている。
【００４６】
入力デバイス２０５ａは、ユーザの指示入力を受け付けるデバイスであり、一例としては、キーボード（keyboard）やマウス等が挙げられる。なお、表示デバイス２０４ａも、マウスと協働して、ポインティングデバイス（pointing device）機能を実現する。
【００４７】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
図３は、第２の実施の形態のサーバ装置およびクライアント装置の機能を示すブロック図である。
【００４８】
サーバ装置１０には、サーバ向けのリモート画面制御用のアプリケーションがインストール（Install）またはプリインストール（Preinstall）される。なお、以下では、サーバ向けのリモート画面制御用のアプリケーションを「サーバ側リモート画面制御用アプリ」と呼ぶ。
【００４９】
このサーバ側リモート画面制御用アプリは、基本機能として、リモート画面制御サービスを提供する機能を有する。一例としては、サーバ側リモート画面制御用アプリは、クライアント装置２０における操作情報を取得した上でその操作により要求された処理を自装置で動作するアプリケーションに実行させる。そして、サーバ側リモート画面制御用アプリは、アプリケーションにより実行された処理結果を表示する画面を生成した上で、その画面を、ネットワーク５０を介してクライアント装置２０に送信する。このとき、サーバ側リモート画面制御用アプリは、今回の画面生成の前にクライアント装置２０で表示させていたビットマップ（bitmap）画像との間で変更があった部分の画素（pixel）が集まった領域、すなわち更新矩形の画像を送信する。なお、以下では、一例として、更新部分の画像が矩形の画像で形成される場合を説明するが、開示の装置は更新部分の画像が矩形以外の形状で形成される場合にも適用できる。
【００５０】
この他、サーバ側リモート画面制御用アプリは、フレーム（frame）間で動きが大きい部分のデータを動画向けの圧縮方式のデータに圧縮してクライアント装置２０へ送信する機能も有する。一例としては、サーバ側リモート画面制御用アプリは、アプリケーションにより実行された処理結果から生成した画面を複数の領域に分割し、分割した領域毎に更新の頻度を監視する。このとき、サーバ側リモート画面制御用アプリは、更新の頻度が閾値を超えた領域、すなわち高頻度更新領域の更新頻度情報をクライアント装置２０へ送信する。これとともに、サーバ側リモート画面制御用アプリは、高頻度更新領域のビットマップ画像をＭＰＥＧ−２やＭＰＥＧ−４等のＭＰＥＧ方式のデータにエンコード（encode）した上でクライアント装置２０へ送信する。なお、ここでは、ＭＰＥＧ（Moving Picture Experts Group）方式のデータへ圧縮する場合を例示したが、これに限定されない。例えば、動画向けの圧縮方式であれば任意の圧縮符号化方式、例えばＭｏｔｉｏｎ−ＪＰＥＧ（Joint Photographic Experts Group）等を採用できる。
【００５１】
クライアント装置２０には、クライアント向けのリモート画面制御用アプリケーションがインストールまたはプリインストールされる。なお、以下では、クライアント向けのリモート画面制御用のアプリケーションを「クライアント側リモート画面制御用アプリ」と言う。
【００５２】
このクライアント側リモート画面制御用アプリは、入力デバイス２０５ａを介して受け付けた操作情報をサーバ装置１０へ通知する機能を有する。一例としては、クライアント側リモート画面制御用アプリは、マウスの左右のクリック（click）を始め、ダブルクリック（double click）やドラッグ（drag）、マウスの移動操作を介して得られたマウスカーソルの移動量等を操作情報として通知する。他の一例としては、マウスホイールの回転量、キーボードのうち押下されたキーの種別等も操作情報として通知する。
【００５３】
さらに、クライアント側リモート画面制御用アプリは、サーバ装置１０から受信した画像をクライアント装置２０が有する表示デバイスに表示させる機能を有する。一例としては、クライアント側リモート画面制御用アプリは、サーバ装置１０から更新矩形のビットマップ画像を受信した場合には、更新矩形の画像を前回のビットマップ画像から変更のあった位置に合わせて表示する。
【００５４】
他の一例としては、クライアント側リモート画面制御用アプリは、サーバ装置１０から高頻度更新領域の更新頻度情報を受信した場合には、その更新頻度情報に含まれる位置に対応する表示画面上の領域をビットマップ画像の表示対象外のブランク（blank）領域とする。その上で、クライアント側リモート画面制御用アプリは、動画向けの圧縮方式のデータを受信した場合にそのデータをデコード（decode）した上でブランク領域に表示する。
【００５５】
以下、サーバ装置１０およびクライアント装置２０が有する各機能を詳しく説明する。
サーバ装置１０は、ＯＳ実行部１１と、表示画面生成部１２と、フレームバッファ（Frame Buffer）１３と、リモート画面制御部１４とを有している。なお、図３の例では、図３に示した機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや表示デバイス等の機能を有するものとする。
【００５６】
ＯＳ実行部１１は、ＯＳの実行を制御する。例えば、ＯＳ実行部１１は、後述する操作情報取得部１４ｂにより取得された操作情報からアプリケーションの起動指示やアプリケーシションに対するコマンドを検出する。例えばＯＳ実行部１１は、アプリケーションのアイコン（Icon）上でダブルクリックを検出した場合に、そのアイコンに対応するアプリケーションの起動を表示画面生成部１２へ指示する。他の例としては、起動中のアプリケーションの操作画面、いわゆるウインドウ（Window）上でコマンド（Command）の実行を要求する操作を検出した場合に、ＯＳ実行部１１は、そのコマンドの実行を表示画面生成部１２へ指示する。
【００５７】
表示画面生成部１２は、ＯＳ実行部１１の指示に基づいて、アプリケーションの実行を制御する機能（アプリケーション実行制御機能）と、フレームバッファ１３に画像を描画する機能（描画処理機能）とを有している。
【００５８】
例えば、アプリケーション実行制御機能は、ＯＳ実行部１１によりアプリケーションの起動が指示された場合や起動中のアプリケーションにコマンドの実行が指示された場合にアプリケーションを動作させる。そして、アプリケーション実行制御機能は、アプリケーションを実行することにより得られた処理結果の表示用イメージ（Image）をフレームバッファ１３に描画するよう、描画処理機能に要求する。このように描画を要求する場合には、アプリケーション実行制御機能は、表示用イメージとともに表示用イメージの描画位置を描画処理機能に通知する。なお、アプリケーション実行制御機能が実行するアプリケーションは、プリインストールされたものであってもよく、サーバ装置１０の出荷後にインストールされたものであってもかまわない。また、ＪＡＶＡ（登録商標）等のネットワーク環境で動作するアプリケーションであってもよい。
【００５９】
描画処理機能は、描画要求を受け付けた場合に、アプリケーションの処理結果の表示用イメージをアプリケーション実行制御機能により指定されたフレームバッファ１３上の描画位置ヘビットマップ形式で描画する。なお、ここでは、アプリケーション実行制御機能により描画要求を受け付ける場合を説明したが、ＯＳ実行部１１からの描画要求を受け付けることもできる。一例としては、描画処理機能は、ＯＳ実行部１１からマウスカーソルの描画要求を受け付けた場合に、マウスカーソルの表示用イメージをＯＳにより指定されたフレームバッファ１３上の描画位置に例えばビットマップ形式で描画する。
【００６０】
フレームバッファ１３は、描画処理機能により描画されたデスクトップ更新用の画像データ（以下、「更新用画像データ」と言う）を記憶する。かかるフレームバッファ１３の一態様としては、ＶＲＡＭ（Video Random Access Memory）を始めとするＲＡＭ、ＲＯＭ（Read Only Memory）やフラッシュメモリ（Flash Memory）等の半導体メモリ素子が挙げられる。なお、フレームバッファ１３は、ハードディスクドライブ、光ディスク等の記憶装置を採用することとしてもかまわない。
【００６１】
リモート画面制御部１４は、サーバ側リモート画面制御用アプリを通じて、リモート画面制御サービスをクライアント装置２０へ提供する。
このリモート画面制御部１４は、通信部１４ａと、操作情報取得部１４ｂと、操作位置検出部１４ｃと、ウインドウエッジ検出部１４ｄと、更新差分作成部１４ｅと、更新領域設定部１４ｆと、更新頻度計算部１４ｇと、関連度設定部１４ｈと、優先度設定部１４ｉと、更新差分変換部１４ｊと、画面更新通知部１４ｋと、回線帯域検出部１４ｍとを有している。
【００６２】
通信部１４ａは、ネットワーク５０（図３では図示を省略）を介してクライアント装置２０とのデータの送受信を行う。
操作情報取得部１４ｂは、クライアント装置２０から受信した操作情報を取得する。かかる操作情報の一例としては、マウスの左右のクリックを始め、ダブルクリックやドラッグ、マウスの移動操作を介して得られたマウスカーソルの移動量等が挙げられる。操作情報の他の一例としては、マウスホイールの回転量、キーボードのうち押下されたキーの種別等も挙げられる。
【００６３】
操作位置検出部１４ｃは、クライアント装置２０から送信されたユーザの操作情報から現在のマウスカーソルの位置情報（例えば、マウスカーソルがあるポイント場所のＸ，Ｙ座標）を検出する機能を備える。
【００６４】
操作位置検出部１４ｃは、取得したマウスカーソルの位置情報を優先度設定部１４ｉおよび関連度設定部１４ｈに通知する。
ウインドウエッジ検出部１４ｄは、更新用画像データに存在しているアプリケーションのウインドウ等からエッジを検出し、デスクトップ画面を複数の区域に分割する機能を備える。具体的には、フレームバッファ１３が保持する更新用画像データを定期的に取得する。この更新用画面データにはデスクトップ中で動作しているアプリケーションのウインドウが描画されている。今回想定する利用シーンではデスクトップ中には複数のウインドウまたは子ウインドウが存在している場合がある。例えば画面中にはウインドウやボタン、ツールバー等大小さまざまな大きさの四角い区域が存在しているため、この時点では区域の数が多すぎる場合がある。このため、ウインドウエッジ検出部１４ｄは、これらのウインドウの枠をエッジとして画像処理の技術であるエッジ検出とよばれる処理手法で検出を行う。そして、検出したエッジを利用してデスクトップ画面を複数の区域に分割し、大きなウインドウ毎の区域にまとめる処理を行う。区域をまとめる処理では、画面上のアプリケーションの描画の性質を利用する。アプリケーションはボタン・ツールバー類や、サブウインドウ、描画データ等で構成される。ボタン・ツールバー類は１つ１つが小さく、より面積の大きな区域に囲まれていると言う特徴がある。描画データも、より面積の大きな区域に囲まれていると言う特徴がある。サブウインドウは比較的面積が大きく、かつより面積の大きな矩形に隣接していると言う特徴がある。これらの特徴を利用して、細かい区域をサブウインドウ毎の大きな区域にまとめる処理を行う。そして、ウインドウエッジ検出部１４ｄは、これらの分割した区域情報を更新頻度計算部１４ｇに送信する。なお、区域情報には、例えばＸ座標、Ｙ座標、区域の幅、区域の高さを示す情報が含まれる。
【００６５】
更新差分作成部１４ｅは、フレームバッファ１３を検査し更新された差分部分（更新差分）を検出する。以下、更新差分の検出の一例を示す。
まず、更新差分作成部１４ｅは、クライアント装置２０の表示デバイス２０４ａに表示させる画面の画像を生成する。一例としては、更新差分作成部１４ｅは、表示画面生成部１２によりフレームバッファ１３ヘビットマップデータが格納される度に、次のような処理を起動する。
【００６６】
更新差分作成部１４ｅは、前回のフレーム生成時にクライアント装置２０で表示させていた画像データと、今回のフレーム生成時にフレームバッファ１３へ書き込まれた更新用画像データとを比較する。そして、更新差分作成部１４ｅは、前回のフレームから変更があった部分の画素をつなげ合わせた上で矩形に整形した更新矩形の画像を生成し、更新矩形送信用のパケットを生成する。
【００６７】
次に、更新差分作成部１４ｅは、フレームバッファ１３に記憶された更新用画像データを分割した領域毎にフレーム間の更新の頻度を判別する。一例としては、更新差分作成部１４ｅは、生成された更新矩形を図示しない作業用の内部メモリへ所定の期間にわたって記憶する。
【００６８】
このとき、更新差分作成部１４ｅは、更新矩形の位置および大きさを特定可能な属性情報を記憶する。この属性情報は、例えば更新矩形の左上の頂点の座標と更新矩形の幅および高さの情報を含んでいる。かかる更新矩形を記憶する期間は、高頻度更新領域を設定する精度と相関関係があり、期間を長くするほど高頻度更新領域の誤検出が低減される。なお、ここでは、一例として、１秒間にわたって更新矩形の画像を記憶する場合を想定する。このとき、更新差分作成部１４ｅは、更新矩形の画像を記憶してから所定の期間が経過した場合に、表示デバイス２０４ａに表示させる画面をメッシュ（mesh）状に分割したマップ（map）を用いて、デスクトップ画面の更新頻度を判別する。
【００６９】
図４は、表示デバイスに表示させる画面の分割要領を説明する図である。
図４は、更新頻度判別用のマップ３０を示している。図４の円で囲った部分は、メッシュ３１の詳細を示している。図４では、更新差分作成部１４ｅがマップ３０を占める画素のうち８画素×８画素のブロックを１つのメッシュ３１として分割する場合を想定している。このため、１つのメッシュ３１には６４個の画素３２が含まれている。
【００７０】
ここで、更新差分作成部１４ｅは、作業用の内部メモリに蓄積した更新矩形の位置および大きさにしたがって更新矩形の画像を更新頻度判別用のマップに順次展開する。そして、更新差分作成部１４ｅは、更新矩形をマップに展開する度に、マップ上で更新矩形と重なり合った部分のメッシュの更新回数を累積して加算する。このとき、更新差分作成部１４ｅは、マップ上に展開された更新矩形がメッシュに含まれる画素との間で所定数にわたって重なり合った場合に、そのメッシュの更新回数を１つ加算する。なお、ここでは、更新矩形がメッシュに含まれる画素と１つでも重なり合った場合に、メッシュの更新回数を加算する場合を想定して説明を行う。
【００７１】
図５は、表示デバイスに表示させる画面の更新頻度の判別要領を説明する図である。
ここで、図５（ａ）に示す更新頻度判別用のマップ３０の９つのメッシュ３１、３１、・・・それぞれに図示した数字は、更新矩形３１ａが展開された時点におけるメッシュ３１の更新回数を示す。また、図５（ｂ）のマップ３０のメッシュ３１内に図示した数字は、更新矩形３１ｂが展開された時点におけるメッシュ３１の更新回数を示す。さらに、図５（ｃ）のマップ３０のメッシュ３１内に図示した数字は、作業用の内部メモリに蓄積した更新矩形が全て展開された時点におけるメッシュ３１の更新回数を示す。なお、図５（ａ）〜図５（ｃ）において数字が図示されていないメッシュ３１は、更新回数がゼロであるものとする。
【００７２】
図５（ａ）に示すように、更新矩形３１ａがマップ３０に展開された場合には、網掛け部分のメッシュ３１が更新矩形３１ａと重なり合う。このため、更新差分作成部１４ｅは、網掛け部分のメッシュ３１の更新回数を１つずつ加算する。この場合には、各メッシュ３１の更新回数はゼロであるため、網掛け部分の更新回数は０から１に加算される。
【００７３】
さらに、図５（ｂ）に示すように、更新矩形３１ｂがマップ３０に展開された場合には、網掛け部分のメッシュ３１が更新矩形３１ｂと重なり合う。このため、更新差分作成部１４ｅは、網掛け部分のメッシュ３１の更新回数を１つずつ加算する。この場合には、各メッシュの更新回数は１であるため、網掛け部分の更新回数は１から２に加算される。
【００７４】
図５（ｃ）は、全ての更新矩形がマップに展開されたマップ３０の一例を示している。
そして、更新差分作成部１４ｅは、作業用の内部メモリに蓄積した更新矩形を全てマップ３０に展開し終えた場合に、所定の期間における更新回数、すなわち更新頻度が閾値を超えるメッシュ３１を取得する。図５（ｃ）の例で言えば、閾値を「４」としたとき、網掛け部分のメッシュ３１が取得されることになる。かかる閾値は、その値を高く設定するほどデスクトップ画面で動画が表示されている可能性が高い部分を更新差分変換部１４ｊによりエンコードすることができる。なお、上記の「閾値」は、サーバ側リモート画面制御用アプリの開発者が段階的に設定した値をエンドユーザに選択させたり、また、エンドユーザが値を直接設定することができる。
【００７５】
再び図３に戻って説明する。
更新領域設定部１４ｆは、更新差分を利用してフレームバッファ１３中の更新用画像データの中で更新の頻度が高い領域を、高頻度更新領域に設定する。
【００７６】
以下、高頻度更新領域の設定方法の一例を示す。
更新領域設定部１４ｆは、更新差分作成部１４ｅにより更新回数が閾値を超えるメッシュが取得された場合に、隣接するメッシュ同士を連結したメッシュ連結体を矩形に補正する。例えば更新領域設定部１４ｆは、メッシュ連結体に補間する補間領域を導出した上でメッシュ連結体に補間領域を足し合わせることによりメッシュ連結体を矩形に補正する。この補間領域の導出には、メッシュの連結体が最小の補間で矩形に整形される領域を導出するアルゴリズム（algorithm）が適用される。
【００７７】
図６は、メッシュ連結体の補正要領を説明する図である。
図６に示すように、更新領域設定部１４ｆは、補正前のメッシュ連結体５１に補間領域５２を足し合わせることにより、メッシュ連結体５１を矩形５３に補正する。この段階では、後述する矩形の合成が完了しておらず、矩形５３が未だ高頻度更新領域と確定していないので、補正後の矩形５３を「高頻度更新領域の候補」と呼ぶこととする。
【００７８】
更新領域設定部１４ｆは、高頻度更新領域の候補が複数存在する場合には、複数の高頻度更新領域の候補の距離が所定の値以下である高頻度更新領域の候補同士を含む矩形に合成する。ここで言う高頻度更新領域の候補の距離とは、補正後の矩形の最短距離を指すものとする。一例としては、更新領域設定部１４ｆは、高頻度更新領域の候補を合成するにあたって各候補の問を埋める補間領域を導出した上で高頻度更新領域の候補に補間領域を足し合わせることにより、高頻度更新領域の候補同士を含む矩形に合成する。この補間領域の導出には、高頻度更新領域の候補の間が最小の補間で合成体に整形される領域を導出するアルゴリズム（algorithm）が適用される。
【００７９】
図７は、高頻度更新領域の候補の合成要領を説明する図である。
図７に示すように、更新領域設定部１４ｆは、高頻度更新領域の候補６１ａおよび高頻度更新領域の候補６１ｂに補間領域６２を足し合わせることにより、高頻度更新領域の候補６１ａおよび高頻度更新領域の候補６１ｂを含む合成体６３を作成する。そして、更新領域設定部１４ｆは、このようにして得た合成体６３を高頻度更新領域に設定する。
【００８０】
このようにして高頻度更新領域を設定すると、更新領域設定部１４ｆは、識別した高頻度更新領域の位置および大きさを識別する情報と高頻度更新領域を識別するＩＤ（領域ＩＤ）と更新回数とを含む更新頻度情報を更新頻度計算部１４ｇおよびクライアント装置２０へ送る。これにより、クライアント装置２０で表示されるデスクトップ画面の画像データのうち高頻度更新領域に対応する部分をブランク表示させる。その後、更新領域設定部１４ｆは、作業用の内部メモリにマッピングされたメッシュの更新回数をクリア（clear）する。なお、更新領域設定部１４ｆは、更新頻度情報を作業用の内部メモリに記憶する。
【００８１】
図８（ａ）〜図８（ｃ）は、領域位置識別情報を説明する図である。
図８（ａ）に示すように、フレームバッファ１３に記憶された更新用画像データにより実現されるデスクトップ画面７０Ａには、ブラウザ（browser）画面７１および動画再生画面７２が含まれる。このデスクトップ画面７０Ａから経時的な変化を追った場合には、図８（ｂ）の画面７０Ｂに示すように、静止画であるブラウザ画面７１の更新矩形は検出されず、マウスの移動軌跡７３およびアプリケーションによる動画再生領域７４に関する更新矩形が検出される。
【００８２】
このうち、動画再生領域７４で更新回数が閾値を超えるメッシュ、すなわち図示の網掛け部分が更新領域設定部１４ｆにより識別されたものとする。この場合には、更新領域設定部１４ｆは、図８（ｃ）の画面７０Ｃに示す網掛け部分の高頻度更新領域の左上の頂点の座標（ｘ，ｙ）、高頻度更新領域の幅ｗ（width）、高さｈ（height）を含む領域位置識別情報に、その領域位置識別情報により特定される領域の更新回数のうち、最も多い更新回数を加えた更新頻度情報を作成する。そして、作成した更新頻度情報を内部メモリに記憶するとともに更新頻度計算部１４ｇに送る。
【００８３】
なお、ここでは、高頻度更新領域の位置を特定する点として左上の頂点の座標を採用する場合を説明したが、他の頂点を採用することとしてもかまわない。
また、高頻度更新領域の位置を特定することができる点であれば、頂点以外の任意の点、例えば重心等を採用できる。また、ここでは、画面上の左上を座標軸ＸＹの原点とする場合を説明したが、画面内および画面外の任意の点を原点とすることができる。再び図３に戻って説明する。
【００８４】
更新頻度計算部１４ｇは、ウインドウエッジ検出部１４ｄから受け取ったデスクトップ中の区域情報と、更新領域設定部１４ｆから受け取った更新頻度情報とに基づいて、デスクトップ中の区域毎の更新頻度を示す区域別更新頻度情報を生成する。
【００８５】
例えば、更新頻度計算部１４ｇが区域情報「０，０，３０，４０」「３０，０，６０，８０」（＝Ｘ座標，Ｙ座標，幅，高さ）と、更新頻度情報「０，０，１６，１６，３」「１６，１６，１６，１６，４」（＝Ｘ座標，Ｙ座標，幅，高さ，更新回数）を受け取った場合、デスクトップ中の区域情報にマッピングし、「０，０，３０，４０，３」（＝Ｘ座標，Ｙ座標，幅，高さ，更新回数）といったようなデスクトップ中の区域毎の更新頻度（回数）の計算を行う。計算後、更新頻度計算部１４ｇは、生成した区域別更新頻度情報を関連度設定部１４ｈおよび優先度設定部１４ｉに送信する。
【００８６】
関連度設定部１４ｈは、更新頻度計算部１４ｇから区域別更新頻度情報を受け取り、操作位置検出部１４ｃから現在のマウスカーソルの位置情報を受け取ると、区域間で同時に更新が発生する頻度（共起頻度）の算出を行い、区域間の関連性の高さを示す関連度を設定する機能を備える。関連度を設定するのは、例えば以下の理由による。
【００８７】
ＣＡＤやデザイン等で利用されるアプリケーションは、デスクトップ画面の全て、または、多くの領域を占めて実行される。このようなとき、そのアプリケーションは複数のウインドウまたは子ウインドウ等の区域で構成・利用されている。各区域はその機能に応じて大きく２つに分類可能である。１つ目はボタンやスライダー、チェックボックス等を備えユーザが現在作成しているデータに対して何らかの操作を行うことを目的とするための区域である。このような区域を「操作ツール区域」と言う。２つ目は２Ｄ、３Ｄオブジェクトやワイヤフレームといったユーザが現在作成しているデータ自身を表示するための区域である。このような区域を「データ描画区域」と言う。操作ツール区域はボタンやスライダーといったものがマウスでクリック・ドラッグされて描画されており、更新間隔が比較的短い一方更新データ量はかなり小さいため平均的な更新データ量は少ない。一方データ描画区域ではユーザが操作しているデータが直接・間接的に描画されており、更新間隔はまばらであるが一度に膨大な更新が発生するため平均的な更新データ量が多い。
【００８８】
これらのアプリケーションでは多くの場合、複数の操作ツール区域、データ描画区域を保持しており、これらの操作ツール区域とデータ描画区域の間には一定の関連がある場合が存在する。
【００８９】
図９は、操作ツール区域とデータ描画区域との関連性を説明する図である。
図９に示すグラフの縦軸は更新データ量を示し、横軸は時間（秒）を示している。
例えば、図９に示す操作ツール区域Ｃ１は、データ描画区域Ａ１に対して影響を与える操作が多く、他方、操作ツール区域Ｄ１はデータ描画区域Ｂ１に対して影響を与える操作が多い、と言うものである。本実施の形態では、関連度設定部１４ｈは、更新頻度計算部１４ｇから区域別更新頻度情報を受け取り、操作位置検出部１４ｃから現在のマウスカーソルの位置情報を受け取ると、受け取った情報を格納するカーソル位置管理テーブルを作成する。そして、作成したカーソル位置管理テーブルに基づいて、区域同士の関連度を計算により求める。そして、マウスカーソルの区域と最も関連度の高い区域を抽出し、これらの区域に表示する画像データを他の区域に表示する画像データに優先してクライアント装置２０に送信することにより、表示デバイス２０４ａに表示する画面の更新頻度が低いが更新頻度が高い領域に関連する部位を他の部位に優先して更新することができる。従って、ユーザの操作に対する応答速度を向上することができる。なお、以下の説明では、操作ツール区域とデータ描画区域とを区別して説明せず、単に区域Ａ１、Ｂ１、Ｃ１、Ｄ１と説明する。
【００９０】
次に、関連度設定部１４ｈが作成するテーブルを説明する。
図１０は、関連度設定部が作成するテーブルを説明する図である。
図１０に示すカーソル位置管理テーブルＴ１には、時刻、更新頻度情報およびマウス位置の欄が設けられている横方向に並べられた情報同士が互いに関連づけられている。
【００９１】
時刻の欄には、操作位置検出部１４ｃからマウスカーソルの位置情報を取得した時刻が格納されている。
更新頻度情報の欄には、更新頻度計算部１４ｇから受け取った区域別更新頻度情報に含まれるＸ座標，Ｙ座標，幅，高さ，更新回数が格納されている。
【００９２】
マウス位置（ｘ，ｙ）の欄には、操作位置検出部１４ｃから受け取ったマウスカーソルの位置情報が格納されている。再び図３に戻って説明する。
優先度設定部１４ｉは、ユーザの現在の操作区域とネットワーク５０の利用可能帯域およびフレームバッファ１３中の区域の関連度を利用して、区域毎のデータ転送に優先度を設定する。優先度設定部１４ｉは、優先度を設定する際に、操作位置検出部１４ｃが検出したユーザの現在のマウスカーソル位置と関連度設定部１４ｈが設定した各区域の関連度を利用する。優先度設定部１４ｉは、マウスカーソル位置に応じて、関連度設定部１４ｈで設定された関連度を利用して優先すべき区域を決定してその区域のデータ送信を他の区域に優先させる指示を更新差分変換部１４ｊに送る。
【００９３】
更新差分変換部１４ｊは、更新用画像データを、表示領域の更新頻度に応じて動画像データまたは静止画像データに変換する。
具体的には、更新差分変換部１４ｊは、更新差分作成部１４ｅにより更新矩形が生成される度に、その更新矩形が、作業用の内部メモリに記憶された高頻度更新領域、すなわち通信部１４ａにより動画像データを送信中の領域に含まれるか否かを判定する。このとき、優先度設定部１４ｉから優先すべき区域の情報を受け取っている場合、受け取った区域の更新矩形を、他の区域に優先して処理する。更新領域設定部１４ｆは、更新矩形が高頻度更新領域に含まれない場合には、更新矩形の画像データおよび更新頻度情報を通信部１４ａに送信させる。
【００９４】
また、更新差分変換部１４ｊは、フレームバッファ１３に更新用画像データが記憶される度に、更新領域設定部１４ｆの内部メモリに高頻度更新領域の更新頻度情報が登録されているか否かを判定する。そして、更新差分変換部１４ｊは、高頻度更新領域の更新頻度情報が登録されている場合に、フレームバッファ１３に記憶された更新用画像データのうち高頻度更新領域に対応する部分のビットマップ画像を切り出す。そして、更新差分変換部１４ｊは、切り出したビットマップ画像をエンコードする。例えば、更新差分変換部１４ｊは、入力された高頻度更新領域のビットマップ画像がストリーム（Stream）を形成可能なフレーム数に到達した段階で高頻度更新領域のビットマップ画像をエンコードする。なお、エンコード方式の一態様としては、ＭＰＥＧ−２やＭＰＥＧ−４等のＭＰＥＧ方式やＭｏｔｉｏｎ−ＪＰＥＧ方式が挙げられる。
【００９５】
画面更新通知部１４ｋは、更新差分変換部１４ｊが変換した更新データの送信処理を行う。
具体的には、画面更新通知部１４ｋは、更新差分作成部１４ｅにより生成された更新矩形の画像データおよび更新頻度情報をクライアント装置２０へ送信する。この更新矩形を送信する場合の通信プロトコルには、一例としてＶＮＣにおけるＲＦＢプロトコルが採用される。
【００９６】
また、画面更新通知部１４ｋは、更新差分変換部１４ｊによりエンコードされた高頻度更新領域のエンコード画像データ（以下、単に「エンコード画像データ」と言う）を対応する更新頻度情報とともにクライアント装置２０へ送信する。この高頻度更新領域のエンコード画像データを送信する場合の通信プロトコルには、一例として、ＲＴＰ（Realtime Transport Protocol）を採用できる。
【００９７】
回線帯域検出部１４ｍは、サーバ装置１０およびクライアント装置２０間のデータ送受信に利用されるネットワーク回線上で現在利用可能な帯域を検出する機能を持つ。具体的には、回線帯域検出部１４ｍは、画面更新通知部１４ｋから送信されるデータ量と現在通信部で実際にクライアント装置２０に送信をしているデータ量を取得する。そして、これら２つのデータを優先度設定部１４ｉに送る。もし、画面更新通知部１４ｋから送信されるデータ量と通信部１４ａから送信されるデータ量が等しい場合、または、画面更新通知部１４ｋからデータが送信されていない場合には、回線帯域検出部１４ｍが、利用可能帯域を測定するためのデータをクライアント装置２０に定期的に送ることで、現在利用可能な帯域を推定して優先度設定部１４ｉに送信する。
【００９８】
次に、クライアント装置２０が有する各機能を説明する。
＜クライアント装置の機能＞
クライアント装置２０は、リモート画面制御部２１を有している。なお、図３の例では、図３に示した機能部以外にも既知のコンピュータが有する各種の機能部、例えば音声出力部等の機能を有するものとする。
【００９９】
リモート画面制御部２１は、クライアント側リモート画面制御用アプリを通じて、サーバ装置１０によるリモート画面制御サービスの提供を受ける。このリモート画面制御部２１は、通信部２１ａと、操作情報取得部２１ｂと、画面更新情報取得部２１ｃと、画像データ表示部２１ｄと、動画像データ表示部２１ｅとを有している。
【０１００】
通信部２１ａは、ネットワーク５０を介してサーバ装置１０との間で情報を送受信する。
操作情報取得部２１ｂは、入力デバイス２０５ａによる操作情報を取得し、通信部２１ａを介して取得した操作情報をサーバ装置１０に通知する。例えば操作情報取得部２１ｂは、マウスの左右のクリックを始め、ダブルクリックやドラッグ、マウスの移動操作を介して得られたマウスカーソルの移動量等を操作情報として通知する。他の例としては、操作情報取得部２１ｂは、マウスホイールの回転量、キーボードのうち押下されたキーの種別等も操作情報として通知する。
【０１０１】
画面更新情報取得部２１ｃは、サーバ装置１０の通信部１４ａが送信した更新矩形の画像および更新頻度情報を、通信部２１ａを介して受信する。また、画面更新情報取得部２１ｃは、サーバ装置１０の更新領域設定部１４ｆにより送信された高頻度更新領域の更新頻度情報も受信する。
【０１０２】
また、画面更新情報取得部２１ｃは、サーバ装置１０の通信部１４ａが送信した高頻度更新領域のエンコード画像データと、エンコード画像データとともに送信される更新頻度情報を、通信部２１ａを介して受信する。
【０１０３】
画像データ表示部２１ｄは、画面更新情報取得部２１ｃが受信した更新矩形の画像を表示デバイス２０４ａに表示させる。例えば画像データ表示部２１ｄは、画面更新情報取得部２１ｃにより受信された更新矩形の更新頻度情報に含まれる位置および大きさに対応する表示デバイス２０４ａの画面領域に更新矩形のビットマップ画像を表示させる。
【０１０４】
また、画像データ表示部２１ｄは、画面更新情報取得部２１ｃが高頻度更新領域の更新頻度情報を受信した場合には、次のような処理を行う。すなわち、画像データ表示部２１ｄは、高頻度更新領域の更新頻度情報に含まれる高頻度更新領域の位置および大きさに対応する表示デバイス２０４ａの画面領域をビットマップ画像の表示対象外のブランク領域とする。
【０１０５】
動画像データ表示部２１ｅは、画面更新情報取得部２１ｃが受信した高頻度更新領域のエンコード画像データをデコードする。なお、動画像データ表示部２１ｅには、サーバ装置１０に搭載されるエンコード方式に適合するデコード方式のデコーダが搭載される。
【０１０６】
そして、動画像データ表示部２１ｅは、画面更新情報取得部２１ｃが受信した高頻度更新領域の更新頻度情報に基づき、デコードした高頻度更新領域のデコード画像を表示デバイス２０４ａに表示させる。例えば動画像データ表示部２１ｅは、高頻度更新領域の更新頻度情報に含まれる高頻度更新領域の位置および大きさに対応する表示デバイス２０４ａの画面領域に高頻度更新領域のデコード画像を表示させる。
【０１０７】
なお、リモート画面制御部２１には、各種の集積回路や電子回路を採用できる。また、リモート画面制御部２１に含まれる機能部の一部を別の集積回路や電子回路とすることもできる。例えば、集積回路としては、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ等が挙げられる。また、電子回路としては、ＣＰＵやＭＰＵ等が挙げられる。
【０１０８】
次に、サーバ装置１０が行う処理を、フローチャートを用いて説明する。
図１１は、サーバ装置の処理を示すフローチャートである。図１１では、各ブロックの処理を簡単に説明し、その後、より詳細なフローチャートを用いて各機能を詳しく説明する。
【０１０９】
［ステップＳ１］  サーバ装置１０は、一定時間が経過したか否かを判断する。一定時間経過していない場合（ステップＳ１のＮｏ）、ステップＳ４に遷移する。一定時間経過している場合（ステップＳ１のＹｅｓ）、ステップＳ２に遷移する。
【０１１０】
［ステップＳ２］  ウインドウエッジ検出部１４ｄは、画面内のウインドウのエッジを検出する。その後、ステップＳ３に遷移する。
［ステップＳ３］  ウインドウエッジ検出部１４ｄは、検出したエッジを利用して画面を複数の区域に分割する。その後、ステップＳ４に遷移する。
【０１１１】
［ステップＳ４］  更新差分作成部１４ｅは、フレームバッファ１３に画像データが存在するか否かを判断する。画像データが存在する場合（ステップＳ４のＹｅｓ）、ステップＳ５に遷移する。画像データが存在しない場合（ステップＳ４のＮｏ）、ステップＳ１に遷移する。
【０１１２】
［ステップＳ５］  更新差分作成部１４ｅは、前回のフレーム生成時にクライアント装置２０で表示させていた画像データと、今回のフレーム生成時にフレームバッファ１３へ書き込まれた更新用画像データとを比較する。そして、更新差分作成部１４ｅは、前回のフレームから変更があった部分の画素をつなげ合わせた上で矩形に整形した更新矩形を生成する。その後、ステップＳ６に遷移する。
【０１１３】
［ステップＳ６］  更新差分作成部１４ｅは、作成した更新矩形を記憶する。その後、ステップＳ７に遷移する。
［ステップＳ７］  更新領域設定部１４ｆは、高頻度更新領域を設定する。その後、ステップＳ８に遷移する。
【０１１４】
［ステップＳ８］  更新頻度計算部１４ｇは、各区域、一定時間毎の更新回数を計算する。その後、ステップＳ９に遷移する。
［ステップＳ９］  関連度設定部１４ｈは、同時間の更新回数を比較することにより、区域間の関連度を計算により求める。その後、ステップＳ１０に遷移する。
【０１１５】
［ステップＳ１０］  回線帯域検出部１４ｍは、通信部１４ａと通信部２１ａ間の回線帯域幅よりも大きな更新用画像データが存在するか否かを判断する。帯域幅よりも大きな更新用画像データが存在する場合（ステップＳ１０のＹｅｓ）、ステップＳ１１に遷移する。帯域幅よりも大きな更新用画像データが存在しない場合（ステップＳ１０のＮｏ）、ステップＳ１３に遷移する。
【０１１６】
［ステップＳ１１］  優先度設定部１４ｉは、操作位置検出部１４ｃが検出したユーザの現在のマウスカーソル位置と、ステップＳ９にて求めた関連度に基づいて、各区域の交信用画像データに優先度を設定する。その後、ステップＳ１２に遷移する。
【０１１７】
［ステップＳ１２］  優先度設定部１４ｉは、ステップＳ１１にて設定された優先度の順番に優先すべき区域を並び替え、この情報を更新差分変換部１４ｊに送る。その後、ステップＳ１３に遷移する。
【０１１８】
［ステップＳ１３］  更新差分変換部１４ｊは、フレームバッファ１３から更新用画像データを取得する。このとき、優先度設定部１４ｉから優先すべき区域の情報を受け取っている場合には、その区域の更新用画像データを他の区域の更新用画像データに優先して処理する。そして、更新差分変換部１４ｊは、更新用画像データを表示する領域が高頻度更新領域に含まれるか否かを判断する。更新用画像データを表示する領域が高頻度更新領域に含まれると判断した場合（ステップＳ１３のＹｅｓ）、ステップＳ１４に遷移する。更新用画像データを表示する領域が高頻度更新領域に含まれないと判断した場合（ステップＳ１３のＮｏ）、ステップＳ１６に遷移する。
【０１１９】
［ステップＳ１４］  更新差分変換部１４ｊは、フレームバッファ１３に記憶された更新用画像データのうち、高頻度更新領域に対応するビットマップ画像を切り出した上でエンコードすることで、更新用画像データをエンコード画像データに変換する。その後、ステップＳ１５に遷移する。
【０１２０】
［ステップＳ１５］  画面更新通知部１４ｋは、更新差分変換部１４ｊによりエンコードされたエンコード画像データを、通信部１４ａを介してクライアント装置２０に送信する。その後、図１１の処理を終了する。なお、エンコード画像データを受信したクライアント装置２０は、画面更新情報取得部２１ｃが、受信したエンコード画像データを動画像データ表示部２１ｅに送る。動画像データ表示部２１ｅは、受け取ったエンコード画像データをデコードし、表示デバイス２０４ａに表示する。
【０１２１】
［ステップＳ１６］  画面更新通知部１４ｋは、更新矩形の画像データを、通信部１４ａを介してクライアント装置２０に送信する。その後、図１１の処理を終了する。なお、更新矩形の画像データを受信したクライアント装置２０は、画面更新情報取得部２１ｃが、受信した画像データを画像データ表示部２１ｄに送る。画像データ表示部２１ｄは、受け取った画像データを表示デバイス２０４ａに表示する。
【０１２２】
以上で図１１の処理の説明を終了する。
次に、操作位置検出部１４ｃの処理（操作区域検出処理）を説明する。
図１２は、操作区域検出処理を示すフローチャートである。
【０１２３】
［ステップＳ２１］  操作位置検出部１４ｃは、通信部１４ａの操作情報の受信を検出したか否かを判断する。操作情報の受信を検出した場合（ステップＳ２１のＹｅｓ）、ステップＳ２２に遷移する。操作情報の受信を検出していない場合（ステップＳ２１のＮｏ）、操作区域検出処理を終了する。
【０１２４】
［ステップＳ２２］  操作位置検出部１４ｃは、マウスが操作されたか否かを判断する。具体的には、操作位置検出部１４ｃは、受信した操作情報からマウスの位置情報を抽出する。そして、抽出した位置情報と前回抽出した位置情報とを比較する。位置情報が一致しない場合、マウスが操作されたと判断する。マウスが操作されたと判断した場合（ステップＳ２２のＹｅｓ）、ステップＳ２３に遷移する。マウスが操作されていないと判断した場合（ステップＳ２２のＮｏ）、操作区域検出処理を終了する。
【０１２５】
［ステップＳ２３］  操作位置検出部１４ｃは、マウス操作情報を取得し、マウスカーソルの位置を抽出する。その後、ステップＳ２４に遷移する。
［ステップＳ２４］  操作位置検出部１４ｃは、前回のマウスカーソルの位置と比較して、マウスカーソルの位置が変更されたか否かを判断する。マウスカーソルの位置が変更されたと判断した場合（ステップＳ２４のＹｅｓ）、ステップＳ２５に遷移する。マウスカーソルの位置が変更されていないと判断した場合（ステップＳ２４のＮｏ）、操作区域検出処理を終了する。
【０１２６】
［ステップＳ２５］  操作位置検出部１４ｃは、関連度設定部１４ｈおよび優先度設定部１４ｉにマウスカーソルの位置情報を送る。その後、操作区域検出処理を終了する。
以上で操作区域検出処理の説明を終了する。
【０１２７】
次に、回線帯域検出部１４ｍの処理（回線帯域検出処理）を説明する。
図１３は、回線帯域検出処理を示すフローチャートである。
［ステップＳ３１］  回線帯域検出部１４ｍは、画面更新通知部１４ｋが送信するデータ量を計測する。その後、ステップＳ３２に遷移する。
【０１２８】
［ステップＳ３２］  回線帯域検出部１４ｍは、通信部１４ａが現在送信しているデータ量を計測する。その後、ステップＳ３３に遷移する。
［ステップＳ３３］  回線帯域検出部１４ｍは、ステップＳ３１およびステップＳ３２にて計測した２つのデータ量の値を優先度設定部１４ｉに送る。その後、ステップＳ３４に遷移する。
【０１２９】
［ステップＳ３４］  回線帯域検出部１４ｍは、ステップＳ３１およびステップＳ３２にて計測した２つのデータ量が一致するか否かを判断する。一致すれば（ステップＳ３４のＹｅｓ）、ステップＳ３７に遷移する。一致しなければ（ステップＳ３４のＮｏ）、ステップＳ３５に遷移する。また、画面更新通知部１４ｋからデータが送信されていない場合もステップＳ３７に遷移する。
【０１３０】
［ステップＳ３５］  回線帯域検出部１４ｍは、計測用データをクライアント装置２０に送信し、利用可能帯域を計測する。その後、ステップＳ３６に遷移する。
［ステップＳ３６］  回線帯域検出部１４ｍは、ステップＳ３５にて計測した利用可能帯域の値を優先度設定部１４ｉに送る。その後、回線帯域検出処理を終了する。
【０１３１】
［ステップＳ３７］  回線帯域検出部１４ｍは、通信部１４ａが現在送信しているデータ量を利用可能帯域の値として優先度設定部１４ｉに送る。その後、回線帯域検出処理を終了する。
【０１３２】
以上で回線帯域検出処理の説明を終了する。
次に、ウインドウエッジ検出部１４ｄの処理（ウインドウエッジ検出処理）を説明する。
【０１３３】
図１４は、ウインドウエッジ検出処理を示すフローチャートである。
［ステップＳ４１］  ウインドウエッジ検出部１４ｄは、フレームバッファ１３に記憶されている画面データを取得する。その後、ステップＳ４２に遷移する。
【０１３４】
［ステップＳ４２］  ウインドウエッジ検出部１４ｄは、ステップＳ４１にて取得した画面データに対してエッジ検出処理を行いエッジによって画面を区域に分割する。
［ステップＳ４３］  ウインドウエッジ検出部１４ｄは、ステップＳ４２にて分割した区域のうち未選択の区域を１つ選択する。その後、ステップＳ４４に遷移する。
【０１３５】
［ステップＳ４４］  ウインドウエッジ検出部１４ｄは、ステップＳ４３にて選択した区域が、別の区域に一定間隔で隣接または重畳しているか否かを判断する。別の区域に一定間隔で隣接または重畳している場合（ステップＳ４４のＹｅｓ）、ステップＳ４６に遷移する。別の区域に一定間隔で隣接または重畳していない場合（ステップＳ４４のＮｏ）、ステップＳ４５に遷移する。
【０１３６】
［ステップＳ４５］  ウインドウエッジ検出部１４ｄは、ステップＳ４３にて選択した区域の外に別の区域が存在するか否かを判断する。区域の外に別の区域が存在する場合（ステップＳ４５のＹｅｓ）、ステップＳ４８に遷移する。区域の外に別の区域が存在しない場合（ステップＳ４５のＮｏ）、ステップＳ４６に遷移する。
【０１３７】
［ステップＳ４６］  ウインドウエッジ検出部１４ｄは、ステップＳ４３にて選択した区域の面積が、予め定めた面積の閾値（例えば、２００ピクセル×２００ピクセル）以下であるか否かを判断する。ステップＳ４３にて選択した区域の面積が、予め定めた面積の閾値以下である場合（ステップＳ４６のＹｅｓ）、ステップＳ４７に遷移する。ステップＳ４３にて選択した区域の面積が、予め定めた面積の閾値より大きい場合（ステップＳ４６のＮｏ）、ステップＳ４９に遷移する。
【０１３８】
［ステップＳ４７］  ウインドウエッジ検出部１４ｄは、ステップＳ４３にて選択した区域を、隣接または重畳する区域と結合する。その後、ステップＳ４９に遷移する。
［ステップＳ４８］  ウインドウエッジ検出部１４ｄは、ステップＳ４３にて選択した区域を削除する。その後、ステップＳ４３に遷移する。
【０１３９】
［ステップＳ４９］  ウインドウエッジ検出部１４ｄは、全ての区域についてステップＳ４４〜Ｓ４８の処理を行ったか否かを判断する。全ての区域についてステップＳ４４〜Ｓ４８の処理を行ったと判断した場合（ステップＳ４９のＹｅｓ）、ステップＳ５０に遷移する。全ての区域についてステップＳ４４〜Ｓ４８の処理を行っていないと判断した場合（ステップＳ４９のＮｏ）、ステップＳ４３に遷移する。
【０１４０】
［ステップＳ５０］  ウインドウエッジ検出部１４ｄは、選択した全ての区域についてステップＳ４７の結合処理またはステップＳ４８の削除処理を行った区域が存在するか否かを判断する。結合処理または削除処理を行った区域が存在する場合（ステップＳ５０のＹｅｓ）、ステップＳ５１に遷移する。これは、さらに結合処理または削除処理を行う区域が存在する可能性があるからである。結合処理または削除処理を行った区域が存在しない場合（ステップＳ５０のＮｏ）、ステップＳ５２に遷移する。
【０１４１】
［ステップＳ５１］  ウインドウエッジ検出部１４ｄは、全ての区域を未選択状態に設定する。その後、ステップＳ４３に遷移する。
［ステップＳ５２］  ウインドウエッジ検出部１４ｄは、結合処理と削除処理が行われた結果残った区域を含む区域情報を更新頻度計算部１４ｇに送る。その後、ウインドウエッジ検出処理を終了する。
【０１４２】
以上でウインドウエッジ検出処理の説明を終了する。
次に、更新頻度計算部１４ｇの処理（更新頻度計算処理）を説明する。
図１５は、更新頻度計算処理を示すフローチャートである。
【０１４３】
［ステップＳ６１］  更新頻度計算部１４ｇは、ウインドウエッジ検出部１４ｄから区域情報を受け取ったか否かを判断する。区域情報を受け取った場合（ステップＳ６１のＹｅｓ）、ステップＳ６２に遷移する。区域情報を受け取っていない場合（ステップＳ６１のＮｏ）、更新頻度計算処理を終了する。
【０１４４】
［ステップＳ６２］  更新頻度計算部１４ｇは、更新領域設定部１４ｆから更新頻度情報を受け取ったか否かを判断する。更新頻度情報を受け取った場合（ステップＳ６２のＹｅｓ）、ステップＳ６３に遷移する。更新頻度情報を受け取っていない場合（ステップＳ６２のＮｏ）、更新頻度計算処理を終了する。
【０１４５】
［ステップＳ６３］  更新頻度計算部１４ｇは、ステップＳ６１にて受け取った区域情報とステップＳ６２にて受け取った更新頻度情報とに基づいて、区域毎の更新頻度を示す区域別更新頻度情報を生成する。その後、ステップＳ６４に遷移する。
【０１４６】
［ステップＳ６４］  更新頻度計算部１４ｇは、ステップＳ６３にて生成した区域別更新頻度情報を関連度設定部１４ｈおよび優先度設定部１４ｉに送る。その後、更新頻度計算処理を終了する。
【０１４７】
以上で更新頻度計算処理の説明を終了する。
次に、関連度設定部１４ｈの処理（関連度設定処理）を説明する。
図１６は、関連度設定処理を示すフローチャートである。
【０１４８】
［ステップＳ７１］  関連度設定部１４ｈは、区域別更新頻度情報を更新頻度計算部１４ｇから受け取ったか否かを判断する。区域別更新頻度情報を受け取った場合（ステップＳ７１のＹｅｓ）、ステップＳ７２に遷移する。区域別更新頻度情報を受け取っていない場合（ステップＳ７１のＮｏ）、関連度設定処理を終了する。
【０１４９】
［ステップＳ７２］  関連度設定部１４ｈは、マウスカーソルの位置情報を操作位置検出部１４ｃから既に受け取っているか否かを判断する。位置情報を既に受け取っている場合（ステップＳ７２のＹｅｓ）、ステップＳ７３に遷移する。位置情報を受け取っていない場合（ステップＳ７２のＮｏ）、関連度設定処理を終了する。
【０１５０】
［ステップＳ７３］  関連度設定部１４ｈは、既に受け取っているマウスカーソルの位置情報に、ステップＳ７２にて位置情報を取得した時刻を付与し（関連づけ）、カーソル位置管理テーブルＴ１に記憶する。
【０１５１】
［ステップＳ７４］  関連度設定部１４ｈは、カーソル位置管理テーブルＴ１に記憶した情報量が、予め定めた量以上か否かを判断する。カーソル位置管理テーブルＴ１に記憶した情報量が、予め定めた量以上である場合（ステップＳ７４のＹｅｓ）、ステップＳ７５に遷移する。カーソル位置管理テーブルＴ１に記憶した情報量が、予め定めた量未満である場合（ステップＳ７４のＮｏ）、関連度設定処理を終了する。
【０１５２】
［ステップＳ７５］  関連度設定部１４ｈは、各時間、各区域で更新率を算出する。その後、ステップＳ７６に遷移する。
［ステップＳ７６］  関連度設定部１４ｈは、区域間で更新率の差分を算出する。その後、ステップＳ７７に遷移する。
【０１５３】
［ステップＳ７７］  関連度設定部１４ｈは、区域毎に各区域に対する関連度を算出する。そして、算出した関連度を後述する関連度管理テーブルに記憶する。その後、関連度設定処理を終了する。
【０１５４】
以上で関連度設定処理の説明を終了する。
次に、優先度設定部１４ｉの処理（優先度設定処理）を説明する。
図１７は、優先度設定処理を示すフローチャートである。
【０１５５】
［ステップＳ８１］  優先度設定部１４ｉは、回線帯域検出部１４ｍが検出した現在のネットワーク（ＮＷ）の利用可能帯域に基づいて、通信部１４ａが送信しているデータが、ネットワーク５０の利用可能帯域の上限に達しているか否かを判断する。通信部１４ａが送信しているデータが、ネットワーク５０の利用可能帯域の上限に達している場合（ステップＳ８１のＹｅｓ）、ステップＳ８２に遷移する。通信部１４ａが送信しているデータが、ネットワーク５０の利用可能帯域の上限に達していない場合（ステップＳ８１のＮｏ）、優先度設定処理を終了する。
【０１５６】
［ステップＳ８２］  優先度設定部１４ｉは、操作位置検出部１４ｃからマウスカーソルの位置情報を受け取ると、ウインドウエッジ検出部１４ｄが作成した区域情報に基づいて、マウスカーソルが存在する区域を特定する。その後、ステップＳ８３に遷移する。
【０１５７】
［ステップＳ８３］  優先度設定部１４ｉは、関連度管理テーブルを参照し、ステップＳ８２にて特定したマウスカーソルが位置する区域と最も関連度が高い区域を抽出する。その後、ステップＳ８４に遷移する。
【０１５８】
［ステップＳ８４］  優先度設定部１４ｉは、ステップＳ８３にて抽出した区域の関連度が予め定めた閾値以上か否かを判断する。ステップＳ８３にて抽出した区域の関連度が予め定めた閾値以上である場合（ステップＳ８４のＹｅｓ）、ステップＳ８５に遷移する。ステップＳ８３にて抽出した区域の関連度が予め定めた閾値未満である場合（ステップＳ８４のＮｏ）、優先度設定処理を終了する。
【０１５９】
［ステップＳ８５］  優先度設定部１４ｉは、マウスカーソルの存在する区域と、その区域と最も関連度の高い区域との組み合わせを、最も高い優先度を持つ区域に設定する。その後、ステップＳ８６に遷移する。
【０１６０】
［ステップＳ８６］  優先度設定部１４ｉは、優先度が高い区域の組み合わせの情報を更新差分変換部１４ｊに送る。その後、ステップＳ８７に遷移する。
［ステップＳ８７］  回線帯域検出部１４ｍが検出した現在のネットワーク（ＮＷ）の利用可能帯域に基づいて、通信部１４ａが送信しているデータが、ネットワーク５０の利用可能帯域の上限に達しているか否かを判断する。通信部１４ａが送信しているデータが、ネットワーク５０の利用可能帯域の上限に達している場合（ステップＳ８７のＹｅｓ）、ステップＳ８８に遷移する。通信部１４ａが送信しているデータが、ネットワーク５０の利用可能帯域の上限に達していない場合（ステップＳ８７のＮｏ）、優先度設定処理を終了する。
【０１６１】
［ステップＳ８８］  優先度設定部１４ｉは、関連度管理テーブルを参照し、ステップＳ８３にて特定した区域の次にマウスカーソルが位置する区域と関連度が高い区域を抽出する、その後、ステップＳ８９に遷移する。
【０１６２】
［ステップＳ８９］  優先度設定部１４ｉは、ステップＳ８８にて抽出した区域の関連度が、予め定めた閾値以上か否かを判断する。ステップＳ８８にて抽出した区域の関連度が予め定めた閾値以上である場合（ステップＳ８９のＹｅｓ）、ステップＳ８６に遷移する。ステップＳ８８にて抽出した区域の関連度が予め定めた閾値未満である場合（ステップＳ８９のＮｏ）、優先度設定処理を終了する。
【０１６３】
以上で優先度設定処理の説明を終了する。
関連度はどの区域にも値が付く可能性があるため、単純に関連度が最も高い区域を優先してしまうと絶対的には関連が高くない区域も他の区域に優先してデータが送信されてしまう。そのため、優先度設定処理では、閾値を設定した上でマウスカーソルがある区域と閾値以上の関連度がある区域の組み合わせの情報を、他の区域に優先して送る。優先処理が実行されるタイミングでは送信できているデータ量よりも生成しているデータ量の方が多いため、一番関連度が高い区域のみを送信することで生成するデータ量を削減し生成した全てのデータ送信することが可能となる。また、関連度を利用することで更新頻度がゆるやかな区域を優先して送信・表示することが可能となるため、ユーザの体感操作レスポンスを向上することが可能である。
【０１６４】
なお、本実施の形態では、優先度設定部１４ｉが、ステップＳ８４にて抽出した関連度が閾値以上か否かを判断した。しかしこれに限らず、関連度設定部１４ｈが関連度を算出した後に閾値未満の関連度を削除するようにし、優先度設定処理にてステップＳ８４の処理を省略するようにしてもよい。
【０１６５】
次に、各処理の具体例を説明する。
図１８は、関連度設定処理の具体例を説明する図である。
図１８に示すカーソル位置管理テーブルＴ１は、更新頻度情報の欄の記載を省略している。ここで、図１７に示すカーソル位置管理テーブルＴ１は、時刻１０：１０：１０〜１０：１０：１４において、マウスカーソルの位置が、いずれも区域Ｃ１に存在するものとする。
【０１６６】
関連度設定部１４ｈは、カーソル位置管理テーブルＴ１に蓄積された情報量が一定以上になると、各区域の更新回数を合計した上で、更新発生時間毎に全体時間の何％の更新が行われているかを表す更新率を区域毎に算出する。
【０１６７】
図１８には、算出した更新率を格納したテーブルＴ２を示している。
テーブルＴ２には、例えば、区域Ａ１で時刻１０：１０：１０〜１０：１０：１４の間に「０，１，０，０，１７（単位％）」と言う更新率が得られたことを示している。
【０１６８】
関連度設定部１４ｈは、更新率を算出後、テーブルＴ２を利用して区域間で操作が行われたタイミングにおける更新発生時間毎の更新率の差分を算出する。図１８には、算出した更新率の差分を格納したテーブルＴ３を示している。
【０１６９】
例えば、区域Ａ１で時刻１０：１０：１０〜１０：１０：１４の間に「０，１，０，０，１７」、区域Ｃ１で時刻１０：１０：１０〜１０：１０：１４の間に「０，０，０，０，２１」と言う更新率が得られ、この更新時間の間マウスカーソルが区域Ｃ１内に存在していたとき、２つの更新率の差分は「｜０−０｜＋｜０−１｜＋｜０−０｜＋｜０−０｜＋｜２１−１７｜＝５」と算出することができる。これを区域Ｃ１での操作に対する区域Ａ１の更新率差分とする。同様に区域Ｃ１−Ｂ１間では３２、区域Ｃ１−Ｄ１間では３２となる。
【０１７０】
関連度設定部１４ｈは、区域全体の更新率の差分を合計し、これで各区域間の更新率差分を除算することで区域Ｃ１に対する更新率の非一致度を算出する。
図１８には、算出した更新率の非一致度を格納したテーブルＴ４を示している。
【０１７１】
例えば区域Ｃ１での操作に対する区域Ａの非一致度は次のようにして求めることができる。テーブルＴ３の更新率の差分を合計すると、「５＋３２＋３２＝６９」となる。この６９で、区域Ｃ１での操作に対する区域Ａの更新率差分「５」を除算すると、「５／６９＝０．０７２・・・」となる。他の非一致度も同様にして求めることができる。
【０１７２】
関連度設定部１４ｈは、テーブルＴ４に格納されている値を１から引いたものを１００倍することで関連度を算出する。図１８には、算出した関連度を示すテーブルＴ５を示している。例えばテーブルＴ４の区域Ｃ１での操作に対する区域Ａ１の関連度は次のようにして求めることができる。テーブルＴ４の区域Ｃ１での操作に対する区域Ａ１の非一致度は、０．０７であるため、関連度は、「（１−０．０７）×１００＝９３（％）」となる。他の関連度も同様にして求めることができる。
【０１７３】
図１８には、各区域に対する全ての関連度を格納する関連度管理テーブルＴ６を示している。このようにして、マウスカーソルがある区域と他の区域の関連度を調べることで、区域間の関連度を算出可能である。
【０１７４】
次に、関連度管理テーブルＴ６を用いて優先度設定部の具体例を説明する。
具体例では、優先度設定部１４ｉが受け取った位置情報は、区域Ｃ１にマウスカーソルが存在することを示している場合を例に説明する。
【０１７５】
優先度設定部１４ｉは、関連度管理テーブルＴ６のＣ１の行を参照し、区域Ｃ１と最も関連度の高い区域を探す。関連度管理テーブルＴ６では「９３」の関連度を持つ区域Ａ１が最も高い関連度を持つため、区域Ｃ１および区域Ａ１に対して最も高い関連度を付与する。そして、これらのデータを最優先に送信することを決定する。そして、優先度設定部１４ｉは、区域Ｃ１および区域Ａ１の組み合わせの情報を更新差分変換部１４ｊに送る。もしこの処理により生成するデータ量よりも送信するデータ量が大きくなってしまった場合、区域Ｃ１に対して区域Ａ１の次に関連度が高い区域Ｂ１に属する更新矩形の画像データを更新差分変換部１４ｊに送る。
【０１７６】
以上述べたように、本実施の形態の情報処理システム５によれば、サーバ装置１０が、デスクトップ画面の中からエッジを検出し、デスクトップ画面を複数の区域に分割し、区域毎の更新頻度を算出した上でマウスカーソル位置が存在する区域との関連度を求め、関連度の最も高い区域の更新矩形の画像データをクライアント装置２０に他の区域に優先して送信することにした。従って、ユーザの操作に対する応答速度を向上することができる。
【０１７７】
なお、サーバ装置１０が行った処理が、複数の装置によって分散処理されるようにしてもよい。例えば、１つの装置が、関連度設定処理までを行って関連度管理テーブルＴ６を生成しておき、他の装置が、その関連度管理テーブルＴ６を用いて最も高い優先度を持つ区域の組み合わせを決定するようにしてもよい。
【０１７８】
＜第３の実施の形態＞
次に、第３の実施の形態の情報処理システムについて説明する。
以下、第３の実施の形態の情報処理システムについて、前述した第２の実施の形態との相違点を中心に説明し、同様の事項については、その説明を省略する。
【０１７９】
第３の実施の形態の情報処理システムでは、ウインドウエッジ検出部１４ｄが、関連度設定部１４ｈが設定した関連度管理テーブルＴ６を参照して、区域の設定条件を変更する点が、第２の実施の形態とは異なっている。以下２つの方法を説明する。
【０１８０】
第１の方法は、ウインドウエッジ検出部１４ｄが、関連度設定部１４ｈが設定した関連度管理テーブルＴ６において、ある１つの区域が、他のどの区域とも差分が存在せず均一（または差分が予め定めた閾値以下）の場合には、ウインドウエッジ検出処理において、その区域Ｆ１を除外する処理を行う。
【０１８１】
例えば、関連度管理テーブルＴ６に区域Ａ１、区域Ｂ１、区域Ｃ１、区域Ｄ１、区域Ｅ１、区域Ｆ１が存在し、区域Ｆ１が、区域Ａ１〜Ｅ１のどの区域とも差分が存在せず均一（または差分が予め定めた閾値以下）の場合、ウインドウエッジ検出処理において、その区域Ｆ１を除外する処理を行う。
【０１８２】
図１９は、第３の実施の形態の第１のウインドウエッジ検出処理を示すフローチャートである。第２の実施の形態と異なる部分に絞って説明する。
［ステップＳ４２ａ］  ウインドウエッジ検出部１４ｄは、関連度管理テーブルＴ６を参照し、関連度管理テーブルＴ６に格納されている区域のうち、他の全ての区域との関連度が所定値以下である区域（未関連区域）が存在するか否かを判断する。未関連区域が存在する場合（ステップＳ４２ａのＹｅｓ）、ステップＳ４２ｂに遷移する。未関連区域が存在しない場合（ステップＳ４２ａのＮｏ）、ステップＳ４３に遷移する。
【０１８３】
［ステップＳ４２ｂ］  ウインドウエッジ検出部１４ｄは、ステップＳ４２にて分割した区域から未関連区域を削除する。その後、ステップＳ４３に遷移する。
第２の方法は、ウインドウエッジ検出部１４ｄが、関連度設定部１４ｈが設定した関連度管理テーブルＴ６において、区域間の関連度がどの区域においても差分が存在せず均一（または差分が予め定めた閾値以下）の場合には、エッジ検出やその後の区域分割時の分割条件を変更し、より詳細な区域の分割を行うような処理を行う。
【０１８４】
例えば、区域Ａ１、区域Ｂ１、区域Ｃ１、区域Ｄ１が存在し、これらの区域間の関連度に差分が存在せず均一（または差分が予め定めた閾値以下）の場合には、エッジ検出処理の際にステップＳ４５の閾値を変更することで、画面内の区域数を増やすようにしてもよい。
【０１８５】
図２０は、第３の実施の形態の第２のウインドウエッジ検出処理を示すフローチャートである。第２の実施の形態と異なる部分に絞って説明する。
［ステップＳ４２ｃ］  ウインドウエッジ検出部１４ｄは、関連度管理テーブルＴ６を参照し、関連度管理テーブルＴ６に格納されている全ての関連度が所定値以下であるか否かを判断する。全ての関連度が所定値以下である場合（ステップＳ４２ｃのＹｅｓ）、ステップＳ４２ｄに遷移する。全ての関連度が所定値以下ではない場合（ステップＳ４２ｃのＮｏ）、ステップＳ４３に遷移する。
【０１８６】
［ステップＳ４２ｄ］  ウインドウエッジ検出部１４ｄは、ステップＳ４６にて使用する閾値を小さく設定する。その後、ステップＳ４３に遷移する。
なお、図１９のフローチャートには示していないが、一度閾値を小さく設定した場合において、関連度管理テーブルＴ６に格納されている関連度のうち、所定値より大きい関連度が存在する場合には、小さく設定した閾値を元の値に戻す処理を行うようにしてもよい。
【０１８７】
この第３の実施の形態の情報処理システムによれば、第２の実施の形態の情報処理システムと同様の効果が得られる。
そして、第１のウインドウ検出処理によれば、さらに、演算量を減らすことで、ユーザの操作に対する応答を迅速にすることができる。また、第２のウインドウ検出処理によれば、さらに、閾値を小さく設定することで、結果として得られる区域の数が増える。これにより、関連度の高い区域同士を特定できる可能性を高めることができる。
【０１８８】
＜第４の実施の形態＞
次に、第４の実施の形態の情報処理システムについて説明する。
以下、第４の実施の形態の情報処理システムについて、前述した第２の実施の形態との相違点を中心に説明し、同様の事項については、その説明を省略する。
【０１８９】
第２の実施の形態では、優先度設定部１４ｉが行う図１７の優先度設定処理のステップＳ８１に示すように、優先度が高い順に更新差分データを送信する条件は、データの転送が間に合っていない場合である。
【０１９０】
しかし、第２の実施の形態の優先度設定処理では、現在のマウスカーソルの位置情報のみから区域を特定しているため、単にユーザがマウスを操作せずに偶然ある区域にマウスカーソルを置いていた場合でも優先度設定処理が実行されてしまう。
【０１９１】
このため、その区域と関連度の高い区域に送信するデータが、他の区域に優先して送信されてしまう。だが、実際にはユーザは単純に更新頻度が最も高い区域を閲覧していた可能性もあるため、優先処理の誤判定が生じる可能性がある。第４の実施の形態の情報処理システムは、優先処理の誤判定を抑制する。
【０１９２】
図２１は、第４の実施の形態のサーバ装置を示すブロック図である。
本実施の形態のサーバ装置１０ａは、操作状態を検出する操作状態検出部１４ｎをさらに有している。
【０１９３】
操作状態検出部１４ｎは、操作情報取得部１４ｂから操作情報を取得する。そして、ユーザがある時間において操作状態であったか否か、また、操作状態であった場合にはどの区域で操作が発生したかを示す情報を保持する。
【０１９４】
そして、優先度設定部１４ｉは、操作状態検出部１４ｎが保持する情報に基づいて、優先度を設定する。
図２２は、操作状態検出部が保持する情報を示す図である。
【０１９５】
図２２では、操作状態検出部１４ｎが保持する情報をテーブル化して示している。
図２２に示す操作状態管理テーブルＴ７には、時間、ツール操作状態および区域の欄が設けられている。横方向に並べられた情報同士が互いに関連づけられている。
【０１９６】
時刻の欄には、操作状態検出部１４ｎが操作情報取得部１４ｂから操作情報を取得した時刻が格納される。
ツール操作状態の欄には、ユーザがある時間においてマウスを操作していたか否かを示す情報が格納される。「○」は、操作していたことを示し、「×」は操作していなかったことを示している。
【０１９７】
区域の欄には、マウスを操作していたときに操作していた区域を識別する情報が格納される。
次に、第４の実施の形態の優先度設定処理を説明する。
【０１９８】
図２３は、第４の実施の形態の優先度設定処理を示すフローチャートである。第２の実施の形態と異なる部分に絞って説明する。
［ステップＳ８２ａ］  優先度設定部１４ｉは、操作状態管理テーブルＴ７を参照し、直近が操作状態であったか否かを判断する。直近が操作状態であった場合（ステップＳ８２ａのＹｅｓ）、ステップＳ８３に遷移する。直近が操作状態ではなかった場合（ステップＳ８２ａのＮｏ）、優先度設定処理を終了する。
【０１９９】
この第４の実施の形態の情報処理システムによれば、第２の実施の形態の情報処理システムと同様の効果が得られる。そして、第４の実施の形態の情報処理システムによれば、さらに、優先処理の誤判定を抑制することができる。
【０２００】
＜第５の実施の形態＞
次に、第５の実施の形態の情報処理システムについて説明する。
以下、第５の実施の形態の情報処理システムについて、前述した第２の実施の形態との相違点を中心に説明し、同様の事項については、その説明を省略する。
【０２０１】
第２の実施の形態では、区域間の更新頻度のみを利用して関連度を算出している（図１６の関連度算出処理等参照）。この関連度は、更新が同時に発生したことを示す値であるが、より正確には、ある操作をしたときに同時に更新が発生することを示す値である。そのため、単純に更新頻度のみで関連度を算出した場合には、ある２つの区域で偶然同時に更新が発生した場合は、これらの区域の関連度が相対的に高くなってしまう。本実施の形態のサーバ装置は、操作履歴を利用することにより、関連度設定部１４ｈが設定する関連度の信頼性の向上を図る。
【０２０２】
図２４は、第５の実施の形態のサーバ装置を示すブロック図である。
本実施の形態のサーバ装置１０ｂは、サーバ装置１０に比べ、さらにユーザの操作履歴を蓄積する機能を備える操作情報履歴蓄積部１４ｐを有している。
【０２０３】
操作情報履歴蓄積部１４ｐは、時間単位毎にどの区域でマウスカーソル位置への指示操作（クリック操作）が発生したかを履歴情報として蓄積する。
そして、関連度設定部１４ｈは、蓄積された履歴情報に基づいて、関連度を設定する。
【０２０４】
図２５は、操作情報履歴蓄積部が保持する履歴情報を示す図である。
図２５では、操作情報履歴蓄積部１４ｐが保持する履歴情報をテーブル化して示している。
【０２０５】
図２５に示す操作情報履歴管理テーブルＴ８には、時刻、区域、およびマウス位置の欄が設けられている。横方向に並べられた情報同士が互いに関連づけられている。
時刻の欄には、操作情報履歴蓄積部１４ｐが操作位置検出部１４ｃからマウスカーソルの位置情報を取得した時刻が格納される。
【０２０６】
区域の欄には、区域毎にマウスのクリック操作が発生した回数を識別する情報が格納される。なお、区域情報はウインドウエッジ検出部１４ｄから取得することができる。
マウス位置の欄には、操作情報取得部１４ｂから取得したマウスカーソルの位置情報が格納される。
【０２０７】
図２６は、第５の実施の形態の関連度設定処理を示すフローチャートである。第２の実施の形態と異なる部分に絞って説明する。
［ステップＳ７６ａ］  関連度設定部１４ｈは、操作情報履歴管理テーブルＴ８を参照し、該当時間に対応する操作履歴情報が存在するか否かを判断する。該当時間に対応する操作履歴情報が存在する場合（ステップＳ７６ａのＹｅｓ）、ステップＳ７６ｂに遷移する。該当時間に対応する操作履歴情報が存在しない場合（ステップＳ７６ａのＮｏ）、ステップＳ７７に遷移する。
【０２０８】
［ステップＳ７６ｂ］  関連度設定部１４ｈは、操作が発生した時間帯の差分を小さく、未操作時の差分を大きく変更した関連度を設定する。その後、ステップＳ７７に遷移する。
【０２０９】
図２７は、第５の実施の形態の関連度設定処理の具体例を説明する図である。
図２７に示すカーソル位置管理テーブルＴ１およびテーブルＴ２は、図１７に示す第２の実施の形態の具体例の説明にて用いたテーブルと同じテーブルである。
【０２１０】
関連度設定部１４ｈは、更新率を算出後、テーブルＴ２を利用して区域間で操作が行われたタイミングにおける更新発生時間毎の更新率の差分を算出する。そして、関連度設定部１４ｈは、操作情報履歴管理テーブルＴ８を利用して更新率の差分に重み付けをする。
【０２１１】
図２７には、算出した更新率の差分に重み付けを施した値を格納したテーブルＴ９を示している。図２７に示した例は、マウスのクリック操作があった時間帯の差分を１／２倍にし、マウスのクリック操作がない時間帯の差分を２倍にしたものである。
【０２１２】
例えば、区域Ａ１で時刻１０：１０：１０〜１０：１０：１４の間に「０，１，０，０，１７」、区域Ｃ１で時刻１０：１０：１０〜１０：１０：１４の間に「０，０，０，０，２１」と言う更新率が得られる。ここで、操作情報履歴管理テーブルＴ８を参照すると、時刻１０：１０：１４に区域Ｃ１にてマウスカーソルが２回操作されている。従って、１０：１０：１４に行われた更新率の差分を１／２倍にし、その他の時刻の更新率の差分を２倍にする。この結果、２つの更新率の差分は「｜０−０｜＋２×｜０−１｜＋｜０−０｜＋｜０−０｜＋１／２×｜２１−１７｜＝４」と算出することができる。これを区域Ｃ１での操作に対する区域Ａ１の更新率差分とする。同様に区域Ｃ１−Ｂ１間では３５．５、区域Ｃ１−Ｄ１間では３４となる。以降の関連度の求め方は、第２の実施の形態と同様であるため説明を省略する。なお、図２７に示すテーブルＴ１０は、テーブルＴ４に対応しており、テーブルＴ１１は、テーブルＴ５に対応している。テーブルＴ１１に示すように、マウスカーソルが操作された区域Ｃ１の区域Ａ１に対する関連度は９５（％）であり、第２の実施の形態の区域Ｃ１の区域Ａ１に対する関連度の９３（％）よりも関連度が大きくなっていることが分かる。
【０２１３】
この第５の実施の形態の情報処理システムによれば、第２の実施の形態の情報処理システムと同様の効果が得られる。
そして、第５の実施の形態の情報処理システムによれば、さらに、重み付け処理を施すことにより、関連度設定部１４ｈが設定する関連度の信頼性をさらに向上させることができる。
【０２１４】
＜第６の実施の形態＞
次に、第６の実施の形態の情報処理システムについて説明する。
以下、第６の実施の形態の情報処理システムについて、前述した第５の実施の形態との相違点を中心に説明し、同様の事項については、その説明を省略する。
【０２１５】
マウスは、デスクトップ上のさまざまな場所の行き来を行う。しかし、特定のアプリケーションを利用する場合、その行き来の場所に偏りが発生する。例えば３次元ＣＡＤアプリケーションを利用し、ユーザがデータ描画区域で３Ｄオブジェクトを回転させて全体の形を調整しつつ、ライティング等の設定を変更する場合を想定する。この場合、マウスは３Ｄオブジェクトが描画されているデータ描画区域とライティングの設定を行う操作ツール区域を行ったり来たりする操作が通常より多く発生する場合がある。
【０２１６】
そこで、第６の実施の形態のサーバ装置は、その行き来の場所の偏りを関連度の設定に反映することで、関連度の信頼性の向上を図る。
図２８は、第６の実施の形態のサーバ装置を示すブロック図である。
【０２１７】
本実施の形態のサーバ装置１０ｃは、履歴情報に基づいて、区域間を跨ったマウスカーソルの移動軌跡に関する情報を生成し、蓄積する機能を備えるマウス移動履歴ベクトル抽出部１４ｑをさらに有している。
【０２１８】
図２９は、第６の実施の形態の関連度設定部の動作を説明する図である。
図２９には、マウス移動履歴ベクトル抽出部１４ｑが抽出したマウスの操作軌跡に関する情報を管理するテーブルＴ１２を図示している。
【０２１９】
テーブルＴ１２は、一定時間内にどの区域からどの区域へのマウスの操作が行われたかを示す情報が格納されている。図２７に示すテーブルＴ１２では、区域Ｃ１から区域Ａ１へのマウスの操作が一定時間以内に１０回行われたことを示す情報が格納されている。
【０２２０】
関連度設定部１４ｈは、テーブルＴ１２に基づいて、関連度管理テーブルＴ６データの該当する区域のデータ描画区域に対する関連度を大きくする。
例えば、マウスの操作が一定時間以内に１０以上回行われた区域の組み合わせを抽出する。図２９に示すテーブルＴ１２では、区域Ｃ１から区域Ａ１へのマウスの操作および区域Ｄ１から区域Ｂ１へのマウスの操作が一定時間以内に１０回以上行われている。そして、抽出した組み合わせに対応する関連度管理テーブルＴ６の値を、その回数に応じて大きくなるように調整する。この結果、図１８に示す関連度管理テーブルＴ６の区域Ｃ１と区域Ａ１の組み合わせの値が９３から９８に増加し、区域Ｄ１と区域Ｂ１の組み合わせの値が８９から９３に増加している。
【０２２１】
この動作により、より正確な関連度を設定することができる。
図３０は、第６の実施の形態の関連度設定処理を示すフローチャートである。第５の実施の形態と異なる部分に絞って説明する。
【０２２２】
［ステップＳ７７ａ］  関連度設定部１４ｈは、区域毎に各区域に対する関連度を算出する。その後、ステップＳ７７ｂに遷移する。
［ステップＳ７７ｂ］  関連度設定部１４ｈは、操作情報履歴管理テーブルＴ８を参照し、該当時間に対応する操作履歴情報が存在するか否かを判断する。該当時間に対応する操作履歴情報が存在する場合（ステップＳ７７ｂのＹｅｓ）、ステップＳ７７ｃに遷移する。該当時間に対応する操作履歴情報が存在しない場合（ステップＳ７７ｂのＮｏ）、関連度設定処理を終了する。
【０２２３】
［ステップＳ７７ｃ］  関連度設定部１４ｈは、操作履歴情報に基づいて、ベクトルデータを生成する。そして、ベクトルの数に応じて関連度を重み付ける。その後、関連度設定処理を終了する。
【０２２４】
以上で関連度設定処理の説明を終了する。
この第６の実施の形態の情報処理システムによれば、第５の実施の形態の情報処理システムと同様の効果が得られる。
【０２２５】
そして、第６の実施の形態の情報処理システムによれば、さらに、重み付け処理を施すことにより、関連度設定部１４ｈが設定する関連度の信頼性をさらに向上させることができる。
【０２２６】
以上、本発明の情報処理装置、情報処理方法および情報処理プログラムを、図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物や工程が付加されていてもよい。
【０２２７】
また、本発明は、前述した各実施の形態のうちの、任意の２以上の構成（特徴）を組み合わせたものであってもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、情報処理装置１およびサーバ装置１０、１０ａ、１０ｂ、１０ｃが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリ等が挙げられる。磁気記憶装置には、ハードディスクドライブ、フレキシブルディスク（ＦＤ）、磁気テープ等が挙げられる。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷ等が挙げられる。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）等が挙げられる。
【０２２８】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０２２９】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０２３０】
また、上記の処理機能の少なくとも一部を、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ、ＰＬＤ（Programmable Logic Device）等の電子回路で実現することもできる。
以上の実施の形態に開示された技術には、以下の付記に示す技術が含まれる。
【０２３１】
（付記１）  送信する画像を記憶する記憶部と、
送信する画像内に複数設定された区域毎に、前記区域に所定期間内に記憶された画像の更新頻度を設定する更新頻度設定部と、
前記更新頻度に基づいて、前記区域間の関連性の高さを示す関連度を設定する関連度設定部と、
操作対象の区域を特定し、該特定した区域と、該特定した区域との間の前記関連度が最も高い区域とに対して、他の区域よりも高い優先度を設定する優先度設定部と、
前記記憶部に記憶された画像を、設定された優先度が高い区域の画像から順に送信する送信部と、
を有することを特徴とする情報処理装置。
【０２３２】
（付記２）  前記優先度設定部は、カーソルの位置と設定された区域に基づいて、前記カーソルが存在する区域を特定し、前記カーソルが存在する区域と前記カーソルが存在する区域に最も関連性の高い区域に対して、他の区域よりも高い優先度を設定することを特徴とする付記１記載の情報処理装置。
【０２３３】
（付記３）  前記優先度設定部は、前記送信部が送信しているデータ量が、画像の送信に使用するネットワークの利用可能帯域の上限に達しているか否かを判断し、上限に達しているときに動作することを特徴とする付記１または２のいずれかに記載の情報処理装置。
【０２３４】
（付記４）  前記優先度設定部は、前記特定した区域に最も関連性の高い区域の関連度が閾値以上である場合に、該区域に対して、他の区域よりも高い優先度を設定することを特徴とする付記１乃至３のいずれかに記載の情報処理装置。
【０２３５】
（付記５）  前記カーソルが操作された時刻を、前記カーソルが存在する区域の情報とともに記憶する操作状態検出部をさらに備え、
前記優先度設定部は、前記操作状態検出部に記憶された時刻に基づいていずれかの前記区域でユーザが操作状態であると認識したときに動作することを特徴とする付記２記載の情報処理装置。
【０２３６】
（付記６）  複数の画像を所定のフレーム間にて比較し、前記画像内の更新された回数が一定以上の更新領域を設定する領域設定部をさらに有し、
前記更新頻度設定部は、前記領域設定部が設定した更新領域と設定された前記区域とに基づいて、前記更新頻度を設定することを特徴とする付記１記載の情報処理装置。
【０２３７】
（付記７）  送信する画像内のウインドウのエッジを検出し、検出した前記エッジに基づいて、前記記憶部内の画像の記憶領域に複数の区域を設定する前記区域設定部をさらに有することを特徴とする付記１乃至６のいずれかに記載の情報処理装置。
【０２３８】
（付記８）  前記区域設定部は、前記関連度設定部が設定した前記関連度に基づいて、前記エッジ検出後の画像の区域を変更することを特徴とする付記７記載の情報処理装置。
（付記９）  前記区域設定部は、前記関連度設定部が設定した全ての前記関連度が閾値以下である場合、設定する区域の数を増やすことを特徴とする付記８記載の情報処理装置。
【０２３９】
（付記１０）  前記区域設定部は、他の全ての区域との前記関連度が閾値以下である区域を、前記区域の設定対象から除外することを特徴とする付記８記載の情報処理装置。
（付記１１）  前記関連度設定部は、単位時間当たりの更新頻度の区域間の差分を、過去の所定期間について合計し、合計した値が小さい区域間ほど高い関連度を設定することを特徴とする付記１乃至１０のいずれかに記載の情報処理装置。
【０２４０】
（付記１２）  カーソル位置への指示操作が行われた時刻を蓄積する操作履歴蓄積部をさらに有し、
前記関連度設定部は、単位時間当たりの更新頻度の区域間の差分について、カーソル位置への指示操作が行われた時間帯の差分を増加させ、カーソル位置への指示操作が行われなかった時間帯の差分を減少させることを特徴とする付記１１記載の情報処理装置。
【０２４１】
（付記１３）  前記区域間を跨ったカーソル移動の操作が行われた回数を、移動前の区域と移動後の区域とに対応付けて蓄積する移動履歴蓄積部をさらに有し、
前記関連度設定部は、前記区域間を跨ったカーソル移動が行われた回数に基づいて、前記関連度の値を算出することを特徴とする付記１乃至１２のいずれかに記載の情報処理装置。
【０２４２】
（付記１４）  前記関連度設定部は、一定時間以内に区域間を跨ったカーソル移動が行われた回数が所定値以上の区域間の関連度を増加させることを特徴とする付記１乃至１３のいずれかに記載の情報処理装置。
【０２４３】
（付記１５）  コンピュータが、
送信する画像内に複数設定された区域毎に、前記区域に所定期間内に記憶部に記憶された画像の更新頻度を設定し、
前記更新頻度に基づいて、前記区域間の関連性の高さを示す関連度を設定し、
操作対象の区域を特定し、該特定した区域と、該特定した区域との間の前記関連度が最も高い区域とに対して、他の区域よりも高い優先度を設定し、
前記記憶部に記憶された画像を、設定された優先度が高い区域の画像から順に送信する、
ことを特徴とする情報処理方法。
【０２４４】
（付記１６）  コンピュータに、
送信する画像内に複数設定された区域毎に、前記区域に所定期間内に記憶部に記憶された画像の更新頻度を設定し、
前記更新頻度に基づいて、前記区域間の関連性の高さを示す関連度を設定し、
操作対象の区域を特定し、該特定した区域と、該特定した区域との間の前記関連度が最も高い区域とに対して、他の区域よりも高い優先度を設定し、
前記記憶部に記憶された画像を、設定された優先度が高い区域の画像から順に送信する、
処理を実行させることを特徴とする情報処理プログラム。
【符号の説明】
【０２４５】
１  情報処理装置
１ａ  記憶部
１ｂ  更新頻度設定部
１ｃ  関連度設定部
１ｄ  優先度設定部
１ｅ  送信部
１ｆ  区域設定部
２、２０  クライアント装置
２ａ  表示部
５  情報処理システム
１０  サーバ装置
１１  ＯＳ実行部
１２  表示画面生成部
１３  フレームバッファ
１４  リモート画面制御部
１４ａ  通信部
１４ｂ  操作情報取得部
１４ｃ  操作位置検出部
１４ｄ  ウインドウエッジ検出部
１４ｅ  更新差分作成部
１４ｆ  更新領域設定部
１４ｇ  更新頻度計算部
１４ｈ  関連度設定部
１４ｉ  優先度設定部
１４ｊ  更新差分変換部
１４ｋ  画面更新通知部
１４ｍ  回線帯域検出部
１４ｎ  操作状態検出部
１４ｐ  操作情報履歴蓄積部
１４ｑ  マウス移動履歴ベクトル抽出部
Ｔ１  カーソル位置管理テーブル
Ｔ２〜Ｔ５、Ｔ９、Ｔ１０、Ｔ１１、Ｔ１２  テーブル
Ｔ６  関連度管理テーブル
Ｔ７  操作状態管理テーブル
Ｔ８  操作情報履歴管理テーブル
【図１】
0005678619.tif 000002
【図２】
0005678619.tif 000003
【図３】
0005678619.tif 000004
【図４】
0005678619.tif 000005
【図５】
0005678619.tif 000006
【図６】
0005678619.tif 000007
【図７】
0005678619.tif 000008
【図８】
0005678619.tif 000009
【図９】
0005678619.tif 000010
【図１０】
0005678619.tif 000011
【図１１】
0005678619.tif 000012
【図１２】
0005678619.tif 000013
【図１３】
0005678619.tif 000014
【図１４】
0005678619.tif 000015
【図１５】
0005678619.tif 000016
【図１６】
0005678619.tif 000017
【図１７】
0005678619.tif 000018
【図１８】
0005678619.tif 000019
【図１９】
0005678619.tif 000020
【図２０】
0005678619.tif 000021
【図２１】
0005678619.tif 000022
【図２２】
0005678619.tif 000023
【図２３】
0005678619.tif 000024
【図２４】
0005678619.tif 000025
【図２５】
0005678619.tif 000026
【図２６】
0005678619.tif 000027
【図２７】
0005678619.tif 000028
【図２８】
0005678619.tif 000029
【図２９】
0005678619.tif 000030
【図３０】
0005678619.tif 000031