(57)【特許請求の範囲】
【請求項１】
画像が表示される表示領域のうち、動画圧縮して送信した画像が表示される領域を示す情報を記憶する記憶部と、
前記表示領域内の領域のうち画像の更新頻度が閾値以上の領域を識別する識別部と、
過去に送信した画像に対応して前記識別部が識別した第１の領域と、前記識別部が識別した現在の第２の領域との重複関係に基づいて、前記第２の領域に表示する画像を、当該第１の領域に対応する画像と関連して送信するか否かを判断する判断部と、
前記第２の領域に表示する画像と前記第１の領域に対応する画像とを関連して送信すると判断した場合、前記第２の領域に表示する画像の少なくとも一部を、前記第１の領域に対応する画像に基づいて動画圧縮し、当該画像の少なくとも一部の表示位置を示す情報と共に送信する送信部と、
を有することを特徴とする情報処理装置。
【請求項２】
前記判断部は、前記第１の領域と前記第２の領域の面積が等しく、かつ、前記第１の領域と前記第２の領域との間に重複領域が存在する場合に前記第２の領域に表示する画像を前記第１の領域に対応する画像と関連して送信すると判断する
ことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記判断部は、前記第２の領域の面積が前記第１の領域の面積より小さく、かつ、前記重複領域を包含する領域の画像を前記第１の領域に対応する画像に基づいて動画圧縮したときのデータ量が、前記第２の領域に表示する画像を先頭とする動画圧縮をしたときのデータ量より小さいときに、前記第２の領域に表示する画像を前記第１の領域に対応する画像と関連して送信すると判断する
ことを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記第２の領域に表示する画像を前記第１の領域に対応する画像に基づいて動画圧縮して送信した回数を計数する計数部をさらに備え、
前記判断部は、前記計数部が計数した前記回数が予め用意した回数以上である場合に、前記第２の領域に表示する画像の前記第１の領域に対応する画像と関連して送信すること、を中止する
ことを特徴とする請求項３記載の情報処理装置。
【請求項５】
前記識別部は、複数の前記画像を記憶する画像記憶部に記憶された画像を複数の領域に分割し、該領域毎にフレーム間の更新の頻度を判別し、前記更新の頻度が一定以上である領域を識別する
ことを特徴とする請求項１記載の情報処理装置。
【請求項６】
前記判断部は、前記第２の領域の面積が前記第１の領域の面積より大きく、かつ、前記第１の領域と前記第２の領域との重複部分が存在する場合、前記第２の領域に表示する画像を前記第１の領域に対応する画像と関連して送信すると判断する
ことを特徴とする請求項１記載の情報処理装置。
【請求項７】
前記第２の領域に表示する画像を前記第１の領域に対応する画像に基づいて動画圧縮して送信する期間が一定期間を超えた場合に、前記送信部は、前記第２の領域に表示する画像を先頭の画像とする動画を送信する
ことを特徴とする請求項６記載の情報処理装置。
【請求項８】
コンピュータが、
画像が表示される表示領域のうち、動画圧縮して送信した画像が表示される領域を示す情報を記憶装置に記憶し、
前記表示領域内の領域のうち画像の更新頻度が閾値以上の領域を識別する識別処理を実行し、
過去に送信した画像に対応して前記識別処理で識別した第１の領域と、前記識別処理で識別した現在の第２の領域との重複関係に基づいて、前記第２の領域に表示する画像を、当該第１の領域に対応する画像と関連して送信するか否かを判断し、
前記第２の領域に表示する画像と前記第１の領域に対応する画像とを関連して送信すると判断した場合、前記第２の領域に表示する画像の少なくとも一部を、前記第１の領域に対応する画像に基づいて動画圧縮し、当該画像の少なくとも一部の表示位置を示す情報と共に送信する、
ことを特徴とする情報処理方法。
【請求項９】
コンピュータに、
画像が表示される表示領域のうち、動画圧縮して送信した画像が表示される領域を示す情報を記憶装置に記憶し、
前記表示領域内の領域のうち画像の更新頻度が閾値以上の領域を識別する識別処理を実行し、
過去に送信した画像に対応して前記識別処理で識別した第１の領域と、前記識別処理で識別した現在の第２の領域との重複関係に基づいて、前記第２の領域に表示する画像を、当該第１の領域に対応する画像と関連して送信するか否かを判断し、
前記第２の領域に表示する画像と前記第１の領域に対応する画像とを関連して送信すると判断した場合、前記第２の領域に表示する画像の少なくとも一部を、前記第１の領域に対応する画像に基づいて動画圧縮し、当該画像の少なくとも一部の表示位置を示す情報と共に送信する、
処理を実行させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置、情報処理方法および情報処理プログラムに関する。
【背景技術】
【０００２】
近年、クライアント（Client）装置に搭載する機能を可及的に抑え、サーバ（Server）装置側でアプリケーション（Application）やファイル（File）等のリソース（Resource）を管理するシンクライアント（Thin Client）というシステム（System）が知られている。
【０００３】
シンクライアントシステムでは、実際にはサーバ装置が処理を実行した処理結果やサーバ装置が保持するデータをクライアントに表示させ、あたかもクライアントが主体となって処理を実行したり、データを保持しているかのように振る舞う。
【０００４】
シンクライアントシステムにて実行する業務の実行方法の一例としては、サーバ装置で資料作成業務やメール管理業務等に関するアプリケーションを実行させ、そのアプリケーションの処理結果をクライアントに表示させる方法等が挙げられる。
【０００５】
近年、資料作成業務やメール管理業務の他にも、シンクライアントシステムに実行させる業務を、ＣＡＤ（Computer-Aided Design）作成業務等のように精細な画像を扱う業務や、動画再生・編集業務等まで拡充することが求められている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２００７−５０５５８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、ＣＡＤ作成業務や、動画を取り扱う業務等、精細な画像を扱う業務を実行させる場合は、サーバ装置からクライアント装置に転送する情報量が増大するため、クライアント装置で実行される操作に対する応答が遅延するという問題がある。
【０００８】
なお、応答の遅延は、シンクライアントシステムでクライアント装置とサーバ装置間で画面更新時に転送する情報量が増大する場合に共通するものであり、画像や動画を扱う場合に限定して生じるものではない。
【０００９】
本発明はこのような点に鑑みてなされたものであり、送信する情報量を低減する情報処理装置、情報処理方法および情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、開示の情報処理装置が提供される。この情報処理装置は、記憶部と、識別部と、判断部と、送信部とを有している。
記憶部は、動画圧縮して送信した第１の領域を示す情報を記憶する。
【００１１】
識別部は、画像の更新量が閾値以上の第２の領域を識別する。
判断部は、第１の領域と第２の領域との重複関係に基づいて、第２の領域の画像を、第１の領域の動画と関連して送信するか否かを判断する。
【００１２】
送信部は、第２の領域と第１の領域とを関連して送信すると判断した場合、第２の領域の少なくとも一部を包含する領域の画像を、第１の領域の画像に続けて動画圧縮して送信すると共に、該動画圧縮した画像の表示位置を示す情報を送信する。
【発明の効果】
【００１３】
送信する情報量を低減することができる。
【図面の簡単な説明】
【００１４】
【図１】第１の実施の形態の情報処理装置の概要を示す図である。
【図２】第２の実施の形態の情報処理システムを示す図である。
【図３】第２の実施の形態のサーバ装置およびクライアント装置の機能を示すブロック図である。
【図４】表示デバイスに表示させる画面の分割要領を説明する図である。
【図５】表示デバイスに表示させる画面の更新頻度の判別要領を説明する図である。
【図６】メッシュ連結体の補正要領を説明する図である。
【図７】高頻度更新領域の候補の合成要領を説明する図である。
【図８】領域位置識別データを説明する図である。
【図９】領域管理データ格納部に格納される領域位置識別データの内容を説明する図である。
【図１０】前回領域管理データ格納部に格納される前回領域管理データの内容を説明する図である。
【図１１】移動検出部の動作を説明する図である。
【図１２】式（２）と式（３）との関係を示す図である。
【図１３】第２の実施の形態のクライアント装置が備える領域管理データ格納部に格納される領域管理データの一例を示す図である。
【図１４】サーバ装置の全体処理を示すフローチャートである。
【図１５】第２の実施の形態のサーバ装置が行う移動検出処理を示すフローチャートである。
【図１６】第２の実施の形態のデータ反映処理を示すフローチャートである。
【図１７】第２の実施の形態の画像送信処理を示すフローチャートである。
【図１８】第２の実施の形態のデータ反映処理の具体例を示す図である。
【図１９】第２の実施の形態のクライアント装置が行う移動検出処理を示すフローチャートである。
【図２０】第３の実施の形態のサーバ装置が備える領域管理テーブルの一例を示す図である。
【図２１】第３の実施の形態のデータ反映処理を示すフローチャートである。
【図２２】第３の実施の形態の画像送信処理の手順を示すフローチャートである。
【図２３】第４の実施の形態のサーバ装置が行う移動検出処理の一例を示す図である。
【図２４】第４の実施の形態の領域管理テーブルを示す図である。
【図２５】第４の実施の形態のサーバ装置が行う移動検出処理を示すフローチャートである。
【図２６】第４の実施の形態のサーバ装置が行う移動検出処理を示すフローチャートである。
【図２７】第４の実施の形態のサーバ装置の高頻度更新領域の統合処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、実施の形態を、図面を参照して詳細に説明する。
まず、実施の形態の情報処理装置について説明し、その後、実施の形態をより具体的に説明する。
【００１６】
＜第１の実施の形態＞
図１は、第１の実施の形態の情報処理装置の概要を示す図である。
実施の形態の情報処理装置（コンピュータ）１は、クライアント装置２が有する表示部２ａへの画像の表示要求に際し、画像を表示する位置をクライアント装置２に送信する機能を有している。
【００１７】
この情報処理装置１は、記憶部１ａと、識別部１ｂと、判断部１ｃと、送信部１ｄとを有している。
記憶部１ａは、動画圧縮して送信した第１の領域を示す情報を記憶する。図１では、一例として表示部２ａに表示された画像を所定のフレーム間にて比較した結果、領域３が、動画圧縮して送信した第１の領域であることを記憶している。このとき、記憶部１ａは、領域３を識別する識別子「Ｓ１」に領域３の表示部２ａでの表示箇所を識別する情報（図１では座標ｘ１、座標ｙ１、幅ｗ１、高さｈ１）を関連づけて記憶している。なお、座標ｘ１、座標ｙ１は、例えば、表示部２ａの左上を原点（０，０）としたときのｘｙ座標であり、幅ｗ１は、領域３の図１中左右方向の長さであり、高さｈ１は、領域３の図１中上下方向の長さである。
【００１８】
ここで、情報処理装置１は、比較対象の複数の画像を記憶する画像記憶部１ｅと、更新頻度判別部１ｆとを有することができる。画像記憶部１ｅは、クライアント装置２の表示部２ａに表示された画像を所定のフレーム数分記憶する。更新頻度判別部１ｆは、複数の画像を所定のフレーム間にて比較し、画像内の更新された回数が一定以上の箇所を判別する。そして、判別した箇所を第１の領域に設定する。一定以上の箇所の判別方法としては、例えば、更新頻度判別部１ｆは、画像記憶部１ｅに記憶された画像を複数の領域に分割する。そして、領域毎にフレーム間の更新の頻度を判別する。そして、更新の頻度が予め用意した閾値を超えた箇所を更新された回数が一定以上の箇所であると判別する。
【００１９】
識別部１ｂは、次に送信する画像のうち、所定期間内における画像の更新量が閾値以上の第２の領域を識別する。
図１の表示部２ａには、クライアント装置２のユーザが領域３に表示されている画像を領域４に移動させた様子を示している。図１の点線で囲った矩形は、領域３と同じ大きさの矩形を示している。このとき、識別部１ｂは、領域４を第２の領域に特定し、領域４を識別する情報（図１では座標ｘ２、座標ｙ２、幅ｗ２、高さｈ２）を識別する。
【００２０】
判断部１ｃは、第１の領域と第２の領域との重複関係に基づいて、第２の領域内の画像を、第１の領域の動画と関連して送信するか否かを判断する。この判断は、例えば以下のようにして行うことができる。
【００２１】
図１では、判断部１ｃは、記憶部１ａに記憶されている領域３を識別する情報と識別部１ｂが識別した領域４を識別する情報とを比較し、位置座標とサイズ（幅と高さ）が一致するか否かを判断する。そして一致すれば、第２の領域内の画像を、第１の領域の動画と関連して送信すると判断する。また、他の判断方法として、判断部１ｃは、サイズ（幅と高さ）が一致し、かつ、領域３と領域４が重複する領域（図１では、領域Ｓ３）が存在するか否かを判断する。そして、存在すれば、第２の領域内の画像を、第１の領域の動画と関連して送信すると判断する。さらに他の判断方法として、判断部１ｃは、サイズ（幅と高さ）は領域４の方が領域３よりも小さく、かつ、第１の領域の画像を継続して送信した方が、画像データの通信量が少なくなるか否かを判断する。そして、画像データの通信量が少なくなると判断すれば、第２の領域内の画像を、第１の領域の動画と関連して送信すると判断する。
【００２２】
送信部１ｄは、第２の領域の画像を第１の領域の動画と関連して送信すると判断した場合、第２の領域の少なくとも一部を包含する領域の画像を、第１の領域の画像に続けて動画圧縮して送信すると共に、該動画圧縮した画像の表示位置を示す情報を送信する。図１では、領域３にて表示されていた画像を領域４の画像として継続して送信すると判断した場合に領域４の画像の表示位置を示す情報（座標ｘ２、座標ｙ２、幅ｗ２、高さｈ２）を動画圧縮データに付加してクライアント装置２に送信する。
【００２３】
クライアント装置２は、送信部１ｄが送信した第２の領域の画像の表示位置を示す情報と動画圧縮データを受信すると、第２の領域の画像の表示位置を示す情報により特定される第２の領域の画像の表示位置に、送信部１ｄが送信した動画圧縮データを伸長した画像を再生する。
【００２４】
この情報処理装置１によれば、例えば動画像の再生時やＣＡＤアプリケーション利用時等のように第１の領域が任意の個所で頻繁に発生するような状況において、ある条件を満たす場合に更新領域の画像を継続して利用するようにした。これにより、データ圧縮効率を高めることが可能なため、結果としてクライアント装置２のユーザの操作に対する応答時間を早めることができる。
【００２５】
また、情報処理装置１には、前述した機能の他にも以下の機能を含ませることができる。
例えば、情報処理装置１には、幅と高さは第１の領域よりも第２の領域の方が小さいが、第１の領域に表示していた動画ストリームを第２の領域に継続利用した方がデータ通信量が少なくなると予想される組み合わせを探す機能、および、組み合わせが見つかれば継続利用するよう設定したうえで継続利用した方がデータ通信量が少なくなるフレーム数（ｎ）を算出する機能を含ませることができる。さらに、情報処理装置１には、継続利用した動画ストリームの中で送信した送信フレーム数をカウントしておき、送信フレーム数がｎを超えた場合は、第１の領域のサイズに適した動画ストリームを作成し、その動画ストリームの中でデータ送信を行うように変更する機能を含ませることができる。
【００２６】
これにより、転送する情報量の増大を抑制することができる。
なお、前述した各機能については後述する第３の実施の形態にて詳細に説明する。
また、情報処理装置１には、幅または高さが第１の領域よりも第２の領域の方が大きい組み合わせにおいても動画ストリームを継続利用した方がデータ通信量が少なくなると予想される組み合わせを探す機能、および、組み合わせが見つかれば動画ストリームを継続利用する機能を含ませることができる。さらに、第２の領域の中で第１の領域だけではカバーできない領域については、新しく動画ストリームを作成し、その動画ストリームの中でデータ送信を行う機能、また、継続利用したストリームの中でデータを送信する期間が一定時間を超えた場合に、第１の領域のサイズに適した動画ストリームを作成し、その動画ストリームの中でデータ送信を行うように変更する機能を含ませることができる。
【００２７】
これにより、転送する情報量の増大を抑制することができる。
なお、前述した各機能については後述する第４の実施の形態にて詳細に説明する。
なお、識別部１ｂ、判断部１ｃ、送信部１ｄ、および更新頻度判別部１ｆは、情報処理装置１が有するＣＰＵ（Central Processing Unit）が備える機能により実現することができる。また、記憶部１ａおよび画像記憶部１ｅは、情報処理装置１が有するＲＡＭ（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）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に用いる各種データが格納される。
【００３５】
バス１０８に接続されている周辺機器としては、ハードディスクドライブ１０３、グラフィック処理装置１０４、入力インタフェース１０５、光学ドライブ装置１０６、および通信インタフェース１０７がある。
【００３６】
ハードディスクドライブ１０３は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ハードディスクドライブ１０３は、サーバ装置１０の二次記憶装置として使用される。ハードディスクドライブ１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリ等の半導体記憶装置を使用することもできる。
【００３７】
グラフィック処理装置１０４には、モニタ１０４ａが接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１０４ａの画面に表示させる。モニタ１０４ａとしては、ＣＲＴ（Cathode Ray Tube）を用いた液晶表示装置等が挙げられる。
【００３８】
入力インタフェース１０５には、キーボード１０５ａとマウス１０５ｂとが接続されている。入力インタフェース１０５は、キーボード１０５ａやマウス１０５ｂから送られてくる信号をＣＰＵ１０１に送信する。なお、マウス１０５ｂは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボール等が挙げられる。
【００３９】
光学ドライブ装置１０６は、レーザ光等を利用して、光ディスク２００に記録されたデータの読み取りを行う。光ディスク２００は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク２００には、Ｂｌｕ−Ｒａｙ（登録商標）、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等が挙げられる。
【００４０】
通信インタフェース１０７は、ネットワーク５０に接続されている。通信インタフェース１０７は、ネットワーク５０を介して、クライアント装置２０との間でデータの送受信を行う。
【００４１】
クライアント装置２０は、ＣＰＵ２０１によって装置全体が制御されている。ＣＰＵ２０１には、バス２０７を介してＲＡＭ２０２、Ｆｌａｓｈメモリ２０３、グラフィック処理装置２０４、入力インタフェース２０５および通信インタフェース２０６が接続されている。
【００４２】
ＲＡＭ２０２、グラフィック処理装置２０４、入力インタフェース２０５および通信インタフェース２０６の機能は、それぞれＲＡＭ１０２、グラフィック処理装置１０４、入力インタフェース１０５および通信インタフェース１０７と同様である。
【００４３】
また、クライアント装置２０は、ハードディスクドライブ１０３を搭載せず、Ｆｌａｓｈメモリ２０３を有している。
表示デバイス２０４ａは、各種の情報、例えばサーバ装置１０から送信されたデスクトップ画面等を表示するデバイスであり、一例としては、モニタ（monitor）、ディスプレイ（display）やタッチパネル（touch panel）等が挙げられる。図２では、携帯端末型のクライアント装置２０を例示しており、表示デバイス２０４ａは、クライアント装置２０に搭載されている。
【００４４】
入力デバイス２０５ａは、ユーザの指示入力を受け付けるデバイスであり、一例としては、キーボード（keyboard）やマウス等が挙げられる。なお、表示デバイス２０４ａも、マウスと協働して、ポインティングデバイス（pointing device）機能を実現する。
【００４５】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
図３は、第２の実施の形態のサーバ装置およびクライアント装置の機能を示すブロック図である。
【００４６】
サーバ装置１０には、サーバ向けのリモート画面制御用のアプリケーション（Application）がインストール（Install）またはプリインストール（Preinstall）される。なお、以下では、サーバ向けのリモート画面制御用のアプリケーションを「サーバ側リモート画面制御用アプリ」と呼ぶ。
【００４７】
このサーバ側リモート画面制御用アプリは、基本機能として、リモート画面制御サービスを提供する機能を有する。一例としては、サーバ側リモート画面制御用アプリは、クライアント装置２０における操作情報を取得した上でその操作により要求された処理を自装置で動作するアプリケーションに実行させる。そして、サーバ側リモート画面制御用アプリは、アプリケーションにより実行された処理結果を表示する画面を生成した上で、その画面を、ネットワーク５０を介してクライアント装置２０に送信する。このとき、サーバ側リモート画面制御用アプリは、今回の画面生成の前にクライアント装置２０で表示させていたビットマップ（bitmap）画像との間で変更があった部分の画素（pixel）が集まった領域、すなわち更新矩形の画像を送信する。なお、以下では、一例として、更新部分の画像が矩形の画像で形成される場合を説明するが、開示の装置は更新部分の画像が矩形以外の形状で形成される場合にも適用できる。
【００４８】
このほか、サーバ側リモート画面制御用アプリは、フレーム（frame）間で動きが大きい部分のデータを動画向けの圧縮方式のデータに圧縮してクライアント装置２０へ送信する機能も有する。一例としては、サーバ側リモート画面制御用アプリは、アプリケーションにより実行された処理結果から生成した画面を複数の領域に分割し、分割した領域毎に更新の頻度を監視する。このとき、サーバ側リモート画面制御用アプリは、更新の頻度が閾値を超えた領域、すなわち高頻度更新領域の領域識別位置データをクライアント装置２０へ送信する。これとともに、サーバ側リモート画面制御用アプリは、高頻度更新領域のビットマップ画像をＭＰＥＧ−２やＭＰＥＧ−４等のＭＰＥＧ方式のデータにエンコード（encode）した上でクライアント装置２０へ送信する。なお、ここでは、ＭＰＥＧ（Moving Picture Experts Group）方式のデータへ圧縮する場合を例示したが、これに限定されない。例えば、動画向けの圧縮方式であれば任意の圧縮符号化方式、例えばＭｏｔｉｏｎ−ＪＰＥＧ（Joint Photographic Experts Group）等を採用できる。
【００４９】
クライアント装置２０には、クライアント向けのリモート画面制御用アプリケーションがインストールまたはプリインストールされる。なお、以下では、クライアント向けのリモート画面制御用のアプリケーションを「クライアント側リモート画面制御用アプリ」と言う。
【００５０】
このクライアント側リモート画面制御用アプリは、入力デバイス２０５ａを介して受け付けた操作情報をサーバ装置１０へ通知する機能を有する。一例としては、クライアント側リモート画面制御用アプリは、マウスの左右のクリック（click）を始め、ダブルクリック（double click）やドラッグ（drag）、マウスの移動操作を介して得られたマウスカーソルの移動量等を操作情報として通知する。他の一例としては、マウスホイールの回転量、キーボードのうち押下されたキーの種別等も操作情報として通知する。
【００５１】
さらに、クライアント側リモート画面制御用アプリは、サーバ装置１０から受信した画像をクライアント装置２０が有する表示デバイスに表示させる機能を有する。一例としては、クライアント側リモート画面制御用アプリは、サーバ装置１０から更新矩形のビットマップ画像を受信した場合には、更新矩形の画像を前回のビットマップ画像から変更のあった位置に合わせて表示する。
【００５２】
他の一例としては、クライアント側リモート画面制御用アプリは、サーバ装置１０から高頻度更新領域の領域識別位置データを受信した場合には、その領域識別位置データに含まれる位置に対応する表示画面上の領域をビットマップ画像の表示対象外のブランク（blank）領域とする。その上で、クライアント側リモート画面制御用アプリは、動画向けの圧縮方式のデータを受信した場合にそのデータをデコード（decode）した上でブランク領域に表示する。
【００５３】
以下、サーバ装置１０およびクライアント装置２０が有する各機能を詳しく説明する。
サーバ装置１０は、ＯＳ実行制御部１１ａと、アプリ実行制御部１１ｂと、グラフィックドライバ（Graphic Driver）１２と、フレームバッファ（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）を採用できる。
【００８７】
移動検出部１４ｉは、更新領域識別部１４ｄから受け取った領域管理データを前回領域管理データ格納部１４ｊに一時的に格納する。以下、移動検出部１４ｉが一時的に格納する領域管理データを「前回領域管理データ」と言う。その後、移動検出部１４ｉは、領域管理データを更新領域識別部１４ｄから受け取ると、前回領域管理データ格納部１４ｊに格納された前回領域管理データと、今回受け取った領域管理データとを比較する。そして、移動検出部１４ｉは、今回受け取った領域管理データにより特定される高頻度更新領域に対し、クライアント装置２０の表示デバイス２０４ａに現在表示している動画ストリームを継続して利用するか、それとも別個に動画ストリームを生成するか否かを判断する。そして、現在表示している動画ストリームを今回の領域位置識別データにより特定される高頻度更新領域に移動する処理を行った方が効率的にデータの通信が可能となる組み合わせを検出する。そして、組み合わせを検出した場合、移動検出部１４ｉは、現在表示している動画ストリームを継続して利用させる情報を前回領域管理データ格納部１４ｊに格納されている前回領域管理データに追加する。
【００８８】
図１０は、前回領域管理データ格納部に格納される前回領域管理データの内容を説明する図である。
本実施の形態では、前回領域管理データ格納部１４ｊには、情報がテーブル化して記憶されている。前回領域管理テーブル１４２には、領域ＩＤ、ｘ、ｙ、ｗ、ｈ、エンコーダ、継続利用先領域ＩＤ、ｎｘおよびｎｙの欄が設けられている。横方向に並べられた情報同士が互いに関連づけられている。
【００８９】
領域ＩＤの欄には、領域を識別するＩＤが格納される。
ｘの欄には、高頻度更新領域の左上の頂点のｘ座標が格納される。
ｙの欄には、高頻度更新領域の左上の頂点のｙ座標が格納される。
【００９０】
ｗの欄には、高頻度更新領域の幅の値が格納される。
ｈの欄には、高頻度更新領域の高さの値が格納される。
エンコーダの欄には、ｘ、ｙ、ｗ、ｈの欄に格納された情報により特定される高頻度更新領域に表示させる動画ストリームをエンコードするエンコーダを識別するＩＤが格納される。
【００９１】
継続利用先領域ＩＤの欄には、エンコーダを継続利用させる領域を識別するＩＤが格納される。新しく設定された高頻度更新領域が、エンコーダを継続利用する予定がない場合には、「なし」が格納される。
【００９２】
ｎｘの欄には、移動先の高頻度更新領域の左上の頂点のｘ座標が格納される。
ｎｙの欄には、移動先の高頻度更新領域の左上の頂点のｙ座標が格納される。
例えば、図９の１行目のデータは、領域を識別するＩＤとして１が割り当てられた座標（０，０）の位置から幅２００ピクセル、高さ２００ピクセルの領域が高頻度更新領域として登録されており、エンコーダ１４１ｆを識別する情報としてＩＤ：０ｘ０１２ｆａｆａが割り当てられたことを示している。また、新しく設定された高頻度更新領域の中で領域ＩＤ＝１である高頻度更新領域にエンコーダを継続して利用させることが決まっていることを示しており、その際表示位置が（５０，５０）の位置に変わることを示している。２番目と３番目のデータも同様に領域が設定されたことを示しているが、２番目のデータは新しく設定された高頻度更新領域ではエンコーダを継続利用する予定がなく、エンコーダを破棄する必要があることを示している。
【００９３】
図１１は、移動検出部の動作を説明する図である。
表示デバイス２０４ａには、領域Ａ１と領域Ｂ１と領域Ｃ１とが図示されている。
領域Ａ１は、前回領域位置識別データにより特定される高頻度更新領域である。領域Ｂ１は、今回新たに設定された高頻度更新領域の領域位置識別データにより特定される領域である。領域Ｃ１は、領域Ａ１のうち領域Ｂ１に重複しない領域を抽出し、領域Ｂ１が領域Ａ１に全て含まれるように領域Ａ１を最小限移動させたときの領域である。なお、領域Ｃ１は、破線で表現されている。
【００９４】
以下、前回領域位置識別データにより特定される高頻度更新領域を「前回の高頻度更新領域」と言い、今回新たに設定された高頻度更新領域を「今回の高頻度更新領域」と言う。また、領域Ａ１の表示面積をＳa、領域Ｂ１の表示面積をＳb、領域Ａ１と領域Ｃ１の重複領域（斜線であらわされた領域）の面積をＳxとする。
【００９５】
ここで、領域Ａ１に割り当てられている動画ストリームとは別個に、領域Ｂ１に表示する動画ストリームを作成すると、新たに作成した動画ストリームの圧縮データ量は、継続利用する動画ストリームの圧縮データ量よりも大きくなる場合がある。例えば、面積Ｓxが大きい場合、後述する式（１）により、領域Ａ１に割り当てられていた動画ストリームを領域Ｂ１に割り当てた方が、別個に動画ストリームを作成するよりデータ量が減少する場合がある。
【００９６】
両者の関係を考慮すると、別個に動画ストリームを生成する代わりに、前回の高頻度更新領域に現在割り当てられている動画ストリームを今回の高頻度更新領域に割り当てる方がデータ送信量を抑制できる可能性が高まる組み合わせは、以下の２パターンが考えられる。
【００９７】
（パターン１）Ｓa＞Ｓbかつ次式（１）でエンコード回数ｎが１以上
（パターン２）Ｓa＝ＳbかつＳx＞０
言い換えると、パターン１は、今回の動画ストリームの表示面積が前回の動画ストリームの表示面積より小さく、かつ、前回の高頻度更新領域に割り当てられていた動画ストリームのエンコードを少なくとも１回行った時点では、今回の高頻度更新領域の動画ストリームを新たに生成したときのデータ量より小さくなる場合である。
【００９８】
また、パターン２は、前回の動画ストリームの表示面積と今回の動画ストリームの表示面積とが同じ大きさで、かつ、前回の動画ストリームの表示位置と今回の動画ストリームの表示位置とに重複する部位が存在する場合である。
【００９９】
ここで、エンコード回数ｎは、以下の式（１）から算出することができる。
ｎ＝（Ｓb＋Ｓx−Ｓa）・（ＥI−ＥP）／（Ｓa−Ｓb）ＥP・・・（１）
ここで、ＥIは、高頻度更新領域を圧縮する動画コーデックのフレーム内圧縮の圧縮率（例えば１／１０）を示している。ＥPは、フレーム間圧縮の圧縮率（例：１／１００）を示している。
【０１００】
以下、式（１）の作成方法を説明する。
高頻度更新領域を継続利用したときに、ｎ回エンコードした場合のデータ量は、次式（２）で表される。
【０１０１】
ＳxＥP＋（Ｓa−Ｓx）ＥI＋（ｎ−１）ＳaＥP・・・（２）
ここで、ＳxＥP＋（Ｓa−Ｓx）ＥIは、１枚目のフレームのデータ量を示し、（ｎ−１）ＳaＥPは、２枚目以降のフレームのデータ量を示している。
【０１０２】
また、高頻度更新領域を継続利用しなかったときにｎ回エンコードした場合のデータ量は、次式（３）で表される。
ＳbＥI＋（ｎ−１）ＳbＥP・・・（３）
ここでＳbＥIは、１枚目のフレームのデータ量を示し、（ｎ−１）ＳbＥPは、２枚目以降のフレームのデータ量を示している。
【０１０３】
従って、式（２）と式（３）のデータ量が等しくなるｎが式（１）のｎとなるため、式（２）と式（３）を等号で結び、ｎについて整理すると式（１）が得られる。
ここで、式（１）に示すｎは、領域Ｂを領域Ａの移動として扱ってｎフレームの画面を送信した場合のデータ量と、領域Ｂを領域Ａの移動として取り扱わずにｎフレームの画面を送信した場合のデータ量が等しくなるフレーム数として算出している。
【０１０４】
図１２は、式（２）と式（３）との関係を示す図である。
ここで算出したｎ以下のフレーム数の画面を送信する場合は、領域Ｂを領域Ａの移動として扱った方が、データ量が少なくなると予想される。例えばエンコード回数ｎが１以上（例えば「２」）であれば、２回エンコードしたときに式（２）と式（３）との値が同じになる。すなわち、少なくとも１回エンコードした時点では、式（２）データ量の方が式（３）のデータ量よりも小さくなるので、現在割り当てられている動画ストリームを今回の高頻度更新領域に割り当てる方が、データ量が小さいと判断することができる。
【０１０５】
また、本実施の形態では、フレーム内圧縮の圧縮率ＥIや、フレーム間圧縮の圧縮率ＥPを固定で予めサーバ装置２０が保持しておくことを想定している。しかし、これらの圧縮率は例えば前回までのフレームを実際に圧縮したことで算出した圧縮率を用いるようにしてもよい。
【０１０６】
また、本実施の形態では、パターン１にてｎが１以上であることを調べて領域Ａ１を継続利用するかどうか決定しているが、１より大きな値であってもよい。例えば、ｎが５以上であることを調べて領域Ａ１を継続利用するようにしてもよい。この場合、継続利用の条件が厳しくなり継続利用されなくなる場合が出てくるが、継続利用することでデータ量が増えてしまう可能性は低減させることができる。
【０１０７】
なお、ＯＳ実行制御部１１ａ、アプリ実行制御部１１ｂ、グラフィックドライバ１２、リモート画面制御部１４には、各種の集積回路や電子回路を採用できる。また、リモート画面制御部１４に含まれる機能部の一部を別の集積回路や電子回路とすることもできる。例えば、集積回路としては、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）等が挙げられる。また、電子回路としては、ＣＰＵやＭＰＵ（Micro Processing Unit）等が挙げられる。
【０１０８】
再び図３に戻ってクライアント装置の機能を説明する。
＜クライアント装置の機能＞
クライアント装置２０は、リモート画面制御部２１を有している。なお、図３の例では、図３に示した機能部以外にも既知のコンピュータが有する各種の機能部、例えば音声出力部等の機能を有するものとする。
【０１０９】
リモート画面制御部２１は、クライアント側リモート画面制御用アプリを通じて、サーバ装置１０によるリモート画面制御サービスの提供を受ける。このリモート画面制御部２１は、操作情報通知部２１ａと、第１の受信部２１ｂと、第１の表示制御部２１ｃと、第２の受信部２１ｄと、デコーダ２１１ｅ、２１２ｅ、２１３ｅと、第２の表示制御部２１ｆと、表示位置変更検出部２１ｇと、領域管理データ格納部２１ｈとを有している。
【０１１０】
操作情報通知部２１ａは、入力デバイス２０５ａによる操作情報をサーバ装置１０に通知する。例えば操作情報通知部２１ａは、マウスの左右のクリックを始め、ダブルクリックやドラッグ、マウスの移動操作を介して得られたマウスカーソルの移動量等を操作情報として通知する。他の例としては、操作情報通知部２１ａは、マウスホイールの回転量、キーボードのうち押下されたキーの種別等も操作情報として通知する。
【０１１１】
第１の受信部２１ｂは、サーバ装置１０の第１の送信部１４ｇにより送信された更新矩形の画像および属性情報を受信する。また、第１の受信部２１ｂは、サーバ装置１０の更新領域識別部１４ｄにより送信された高頻度更新領域の領域管理データも受信する。
【０１１２】
第１の表示制御部２１ｃは、第１の受信部２１ｂにより受信された更新矩形の画像を表示デバイス２０４ａに表示させる。例えば第１の表示制御部２１ｃは、第１の受信部２１ｂにより受信された更新矩形の領域管理データに含まれる位置および大きさに対応する表示デバイス２０４ａの画面領域に更新矩形のビットマップ画像を表示させる。
【０１１３】
また、第１の表示制御部２１ｃは、第１の受信部２１ｂにより高頻度更新領域の領域管理データが受信された場合には、次のような処理を行う。すなわち、第１の表示制御部２１ｃは、高頻度更新領域の領域管理データに含まれる高頻度更新領域の位置および大きさに対応する表示デバイス２０４ａの画面領域をビットマップ画像の表示対象外のブランク領域とする。
【０１１４】
第２の受信部２１ｄは、サーバ装置１０の第２の送信部１４ｈにより送信された高頻度更新領域の動画ストリームと、動画ストリームとともに送信される領域管理データを受信する。
【０１１５】
デコーダ２１１ｅ、２１２ｅ、２１３ｅは、それぞれ第２の受信部２１ｄにより受信された高頻度更新領域の動画ストリームをデコードする。なお、デコーダ２１１ｅ、２１２ｅ、２１３ｅには、サーバ装置１０に搭載されるエンコード方式に適合するデコード方式のデコーダが搭載される。なお、本実施の形態では、３つのデコーダ２１１ｅ、２１２ｅ、２１３ｅを有する場合を例示するが、デコーダの数は３つに限定されない。
【０１１６】
第２の表示制御部２１ｆは、第１の受信部２１ｂにより受信した高頻度更新領域の領域管理データに基づき、デコーダ２１１ｅ、２１２ｅ、２１３ｅのいずれかによりデコードされた高頻度更新領域のデコード画像を表示デバイス２０４ａに表示させる。例えば第２の表示制御部２１ｆは、高頻度更新領域の領域管理データに含まれる高頻度更新領域の位置および大きさに対応する表示デバイス２０４ａの画面領域に高頻度更新領域のデコード画像を表示させる。
【０１１７】
表示位置変更検出部２１ｇは、第２の受信部２１ｄが動画ストリームとともに領域管理データを取得すると、取得した領域管理データに含まれる領域ＩＤに一致する領域ＩＤが領域管理データ格納部２１ｈに格納されている領域管理データに存在するか否かを判断する。
【０１１８】
そして、存在しない場合は、取得した領域管理データを領域管理データ格納部２１ｈに格納する。また、存在する場合は、領域管理データ格納部２１ｈに格納されている領域管理データと比較し、領域ＩＤとサイズが同じであるのにかかわらず位置だけが異なる画像データを検出することで、高頻度更新領域の移動を検出し、領域管理データ内の位置情報を変更する。
【０１１９】
図１３は、第２の実施の形態のクライアント装置が備える領域管理データ格納部に格納される領域管理データの一例を示す図である。
本実施の形態では、領域管理データ格納部２１ｈは、情報をテーブル化して記憶している。
【０１２０】
領域管理テーブル２３１には、領域ＩＤ、ｘ、ｙ、ｗ、ｈ、デコーダの欄が設けられている。横方向に並べられた情報同士が互いに関連づけられている。
領域ＩＤの欄には、領域を識別するＩＤが格納される。
【０１２１】
ｘの欄には、取得した領域管理データに含まれる高頻度更新領域のｘ座標が格納される。ｙの欄には、取得した領域管理データに含まれる高頻度更新領域のｙ座標が格納される。ｗの欄には、取得した領域管理データに含まれる高頻度更新領域の幅が格納される。
【０１２２】
ｈの欄には、取得した領域管理データに含まれる高頻度更新領域の高さが格納される。
デコーダの欄には、取得した領域管理データに含まれるエンコーダ１４１ｆ、１４２ｆ、１４３ｆを識別するＩＤにより特定される動画ストリームをデコードするデコーダ（動画伸長コーデック）を識別するＩＤが格納される。
【０１２３】
図示の例では、１番目のデータは、領域を識別するＩＤとしてＩＤ＝１が割り当てられた座標（０，０）の位置から幅２００ピクセル、高さ２００ピクセルの領域が高頻度更新領域として登録されており、デコーダ２３１ｅを識別するＩＤ：０ｘ０１２ｆａｆａが割り当てられたことを示している。２番目と３番目のデータも同様に登録されたことを示している。
【０１２４】
なお、リモート画面制御部２１には、各種の集積回路や電子回路を採用できる。また、リモート画面制御部２１に含まれる機能部の一部を別の集積回路や電子回路とすることもできる。例えば、集積回路としては、ＡＳＩＣやＦＰＧＡ等が挙げられる。また、電子回路としては、ＣＰＵやＭＰＵ等が挙げられる。
【０１２５】
次に、サーバ装置１０の全体処理を説明する。
図１４は、サーバ装置の全体処理を示すフローチャートである。
この画像送信処理は、サーバ装置１０により実行される処理であり、フレームバッファ１３にビットマップデータが描画された場合に起動する。
【０１２６】
［ステップＳ１］  画面生成部１４ｂは、フレームバッファ１３にビットマップデータが描画されると、フレームバッファ１３のデータを作業用の内部メモリに保存する。その後、ステップＳ２に遷移する。
【０１２７】
［ステップＳ２］  画面生成部１４ｂは、前回のフレームから変更があった部分の画素をつなげ合わせた上で矩形に整形した更新矩形の画像を生成する。その後、ステップＳ３に遷移する。
【０１２８】
［ステップＳ３］  更新頻度判別部１４ｃは、画面生成部１４ｂにより生成された更新矩形を図示しない作業用の内部メモリへ蓄積する。このとき、更新矩形の蓄積を開始してから所定の期間が経過しているか否かを判断する。更新矩形の蓄積を開始してから所定の期間が経過していない場合（ステップＳ３のＮｏ）、ステップＳ１１に遷移する。更新矩形の蓄積を開始してから所定の期間が経過した場合（ステップＳ３のＹｅｓ）、ステップＳ４に遷移する。
【０１２９】
［ステップＳ４］  更新頻度判別部１４ｃは、作業用の内部メモリに蓄積した更新矩形の位置および大きさにしたがって更新矩形の画像を更新頻度判別用のマップ３０に順次展開する。その後、ステップＳ５に遷移する。
【０１３０】
［ステップＳ５］  更新頻度判別部１４ｃは、マップ３０に含まれるメッシュ３１のうち更新頻度が閾値を超えるメッシュ３１を取得する。その後、ステップＳ６に遷移する。
［ステップＳ６］  更新領域識別部１４ｄは、更新頻度判別部１４ｃが取得したメッシュ３１のうち、更新頻度が閾値を超えるメッシュ３１が存在するか否かを判断する。更新頻度が閾値を超えるメッシュ３１が存在しない場合（ステップＳ６のＮｏ）、高頻度更新領域がデスクトップ画面に存在しないので、ステップＳ１１に遷移する。一方、更新頻度が閾値を超えるメッシュ３１が存在する場合（ステップＳ６のＹｅｓ）、ステップＳ７に遷移する。
【０１３１】
［ステップＳ７］  更新領域識別部１４ｄは、隣接するメッシュ３１同士を連結したメッシュ連結体を矩形に補正する。その後、ステップＳ８に遷移する。
［ステップＳ８］  更新領域識別部１４ｄは、補正後の矩形、すなわち高頻度更新領域の候補が複数存在か否かを判断する。高頻度更新領域の候補が複数存在する場合（ステップＳ８のＹｅｓ）、ステップＳ９に遷移する。高頻度更新領域の候補が複数存在しない場合（ステップＳ８のＮｏ）、ステップＳ１０に遷移する。
【０１３２】
［ステップＳ９］  更新領域識別部１４ｄは、複数の高頻度更新領域の候補の距離が所定の値以下である高頻度更新領域の候補同士を含む矩形に合成する。その後、ステップＳ１０に遷移する。
【０１３３】
［ステップＳ１０］  移動検出部１４ｉは、移動検出処理を実行する。なお、移動検出処理については後に詳述する。移動検出処理が終了すると、ステップＳ１１に遷移する。
［ステップＳ１１］  更新領域識別部１４ｄは、画像送信処理を実行する。なお、画像送信処理については後に詳述する。継続利用中止処理が終了すると、全体処理を終了する。
【０１３４】
以上で全体処理の説明を終了する。
次に、ステップＳ１０の移動検出処理を詳しく説明する。
図１５は、第２の実施の形態のサーバ装置が行う移動検出処理を示すフローチャートである。図１５には更新領域識別部１４ｄが新たに高頻度更新領域を設定した際に、前回の高頻度更新領域と比較し、高頻度更新領域の移動を検出する手順を図示してある。
【０１３５】
［ステップＳ２１］  更新領域識別部１４ｄが、１つまたは複数の高頻度更新領域を新たに設定すると、ステップＳ２２に遷移する。
［ステップＳ２２］  更新領域識別部１４ｄは、高頻度更新領域の領域管理データを移動検出部１４ｉに送り、高頻度更新領域の移動を検出するよう依頼する。
【０１３６】
移動検出部１４ｉは、前回領域管理テーブル１４２に格納されている前回領域管理データの一覧と、今回新しく受け取った領域管理データとを比較する。そして、移動検出部１４ｉは、位置とサイズ（幅と高さ）が一致する領域管理データを特定する。そして、特定した全ての前回領域管理データに対応する継続利用先領域ＩＤの欄に、一致した領域管理データの領域ＩＤを設定する。その後、ステップＳ２３に遷移する。
【０１３７】
［ステップＳ２３］  移動検出部１４ｉは、ステップＳ２２で前回領域管理テーブル１４２の継続利用先領域ＩＤの欄に領域ＩＤが設定されなかった残りの前回領域管理データについて、継続利用するか否かを確認する。具体的には、移動検出部１４ｉは、残りの前回領域管理データについてステップＳ２５以降の処理が完了したか否か判断する。残りの全ての前回領域管理データについてステップＳ２５以降の処理が完了した場合（ステップＳ２３のＹｅｓ）、ステップＳ２４に遷移する。ステップＳ２５以降の処理が完了していない（未確認の）前回領域管理データが存在する場合（ステップＳ２３のＮｏ）、ステップＳ２５に遷移する。
【０１３８】
［ステップＳ２４］  移動検出部１４ｉは、継続利用が決まった動画ストリームを今回の高頻度更新領域に反映させるデータ反映処理を行う。その後、移動検出処理を終了する。
【０１３９】
［ステップＳ２５］  移動検出部１４ｉは、未確認の前回領域管理データを抽出する。その後、ステップＳ２６に遷移する。
以下、ステップＳ２５にて抽出した前回領域管理データにより特定される高頻度更新領域を「領域Ａ」と言う。
【０１４０】
［ステップＳ２６］  移動検出部１４ｉは、ステップＳ２５で特定した領域Ａに対して、継続利用が決まっていない今回の高頻度更新領域の全ての継続利用の確認が完了したか否か調べる。全ての継続利用の確認が完了している場合（ステップＳ２６のＹｅｓ）、ステップＳ２３に遷移する。全ての継続利用の確認が完了していない場合（ステップＳ２６のＮｏ）、ステップＳ２７に遷移する。
【０１４１】
［ステップＳ２７］  移動検出部１４ｉは、ステップＳ２２にて前回領域管理テーブル１４２の継続利用先領域ＩＤに領域ＩＤが設定されなかった今回の領域管理データを抽出する。その後、ステップＳ２８に遷移する。以下、ステップＳ２７にて抽出した今回の領域管理データにより特定される高頻度更新領域を「領域Ｂ」と言う。
【０１４２】
［ステップＳ２８］  移動検出部１４ｉは、ステップＳ２５で特定した領域Ａの幅とＳ７で特定した領域Ｂの幅とを比較する。そして、移動検出部１４ｉは、領域Ａの幅は領域Ｂの幅以上か否かを判断する。領域Ａの幅が領域Ｂの幅より小さい場合（ステップＳ２８のＮｏ）、ステップＳ２６に戻る。領域Ａの幅が、領域Ｂの幅より大きい、または、等しい場合（ステップＳ２８のＹｅｓ）、ステップＳ２９に遷移する。
【０１４３】
［ステップＳ２９］  移動検出部１４ｉは、領域Ａと領域Ｂの高さを比較し、領域Ａの高さは領域Ｂの高さ以上か否かを判断する。領域Ａの高さが領域Ｂの高さより小さい場合（ステップＳ２９のＮｏ）、ステップＳ２６に戻る。領域Ａの高さが領域Ｂの高さより大きい、または、等しい場合（ステップＳ２９のＹｅｓ）ステップＳ３０に遷移する。
【０１４４】
［ステップＳ３０］  移動検出部１４ｉは、領域Ａと領域Ｂの幅と高さが完全に一致するか否か判断する。領域Ａと領域Ｂの幅と高さが完全に一致する場合（ステップＳ３０のＹｅｓ）、ステップＳ３４に遷移する。領域Ａと領域Ｂの幅と高さが完全に一致しない場合（ステップＳ３０のＮｏ）、ステップＳ３１に遷移する。
【０１４５】
［ステップＳ３１］  移動検出部１４ｉは、領域Ａのうち領域Ｂと重複しない領域を抽出し、非重複領域がなくなるように領域Ａを最小限移動させたときの領域Ｃを設定する。その後、ステップＳ３２に遷移する。
【０１４６】
［ステップＳ３２］  移動検出部１４ｉは、前述した式（１）からｎを算出する。その後、ステップＳ３３に遷移する。
［ステップＳ３３］  移動検出部１４ｉは、ステップＳ３２で算出したｎが１以上であるか否か判断する。ｎが１より小さい場合（ステップＳ３３のＮｏ）、ステップＳ２６に戻る。ｎが１以上の場合（ステップＳ３３のＹｅｓ）、ステップＳ３５に遷移する。
【０１４７】
［ステップＳ３４］  移動検出部１４ｉは、領域Ａと領域Ｂが重複するか否か判断する。領域Ａと領域Ｂが重複しない場合（ステップＳ３４のＮｏ）、ステップＳ２６に戻る。領域Ａと領域Ｂが重複する場合（ステップＳ３４のＹｅｓ）、ステップＳ３５に遷移する。
【０１４８】
［ステップＳ３５］  移動検出部１４ｉは、領域Ａに現在割り当てられている動画ストリームを領域Ｂに割り当てることを決定する。具体的には、領域Ａの前回領域管理データに対応する継続利用先領域ＩＤの欄に領域Ｂに対応する今回の領域管理データの領域ＩＤを格納する。さらに、領域Ａの前回領域管理データに対応するｎｘ、ｎｙの欄に領域Ｃの位置を特定する座標を格納する。その後、ステップＳ２３に遷移する。
【０１４９】
以上で移動検出処理の説明を終了する。
次に、ステップＳ２４の管理データ反映処理を詳しく説明する。
図１６は、第２の実施の形態のデータ反映処理を示すフローチャートである。
【０１５０】
［ステップＳ２４ａ］  移動検出部１４ｉは、継続利用が決定した、すなわち、継続利用先領域ＩＤ、ｎｘおよびｎｙの欄に設定された値を、領域管理テーブル１４１に反映させたか否かを判断する。具体的には、移動検出部１４ｉは、前回領域管理テーブル１４２に格納されている全ての前回領域管理データについてステップＳ２４ｂ以降の処理を行ったか否かを判断する。全ての前回領域管理データについてステップＳ２４ｂ以降の処理が完了した場合（ステップＳ２４ａのＹｅｓ）、ステップＳ２４ｉに遷移する。ステップＳ２４ｂ以降の処理が完了していない（未確認の）前回領域管理データが存在する場合（ステップＳ２４ａのＮｏ）、ステップＳ２４ｂに遷移する。
【０１５１】
［ステップＳ２４ｂ］  移動検出部１４ｉは、その未確認の前回領域管理データを抽出する。その後、ステップＳ２４ｃに遷移する。以下、ステップＳ２４ｂにて抽出した前回領域管理データを「前回領域管理データＤ」と言う。
【０１５２】
［ステップＳ２４ｃ］  移動検出部１４ｉは、ステップＳ２４ｂにて抽出した領域管理データＤに対応する継続利用先領域ＩＤの欄にＩＤが格納されているか確認する。継続利用先領域ＩＤの欄にＩＤが格納されていない場合（ステップＳ２４ｃのＮｏ）、ステップＳ２４ａに戻る。継続利用先領域ＩＤの欄にＩＤが格納されている場合（ステップＳ２４ｃのＹｅｓ）、ステップＳ２４ｄに遷移する。
【０１５３】
［ステップＳ２４ｄ］  移動検出部１４ｉは、継続利用先領域ＩＤの欄に設定されているＩＤにより特定される領域管理テーブル１４１の領域管理データを抽出する。その後、ステップＳ２４ｅに遷移する。以下、ステップＳ２４ｄにて抽出した領域管理データを「領域管理データＥ」と言う。
【０１５４】
［ステップＳ２４ｅ］  移動検出部１４ｉは、領域管理データＥの領域ＩＤの欄のＩＤを、前回領域管理データＤの領域ＩＤに変更する。その後、ステップＳ２４ｆに遷移する。
【０１５５】
［ステップＳ２４ｆ］  移動検出部１４ｉは、領域管理データＥのエンコーダを前回領域管理データＤのエンコーダに変更する。その後、ステップＳ２４ｇに遷移する。
［ステップＳ２４ｇ］  移動検出部１４ｉは、前回領域管理データＤに対応するｎｘ，ｎｙの欄に値が格納されているか否かを判断する。ｎｘ，ｎｙの欄に値が格納されていない場合（ステップＳ２４ｇのＮｏ）、ステップＳ２４ａに戻る。ｎｘ，ｎｙの欄に値が格納されている場合（ステップＳ２４ｇのＹｅｓ）、ステップＳ２４ｈに遷移する。
【０１５６】
［ステップＳ２４ｈ］  移動検出部１４ｉは、領域管理データＥのｘ、ｙの欄の値を、前回領域管理データＤに対応するｎｘ，ｎｙの欄の値で上書きする。その後、ステップＳ２４ａに戻る。
【０１５７】
［ステップＳ２４ｉ］  移動検出部１４ｉは、前回領域管理テーブル１４２に格納されている全ての内容をクリアする。そして、領域管理テーブル１４１に格納されている領域管理データの内容を前回領域管理テーブル１４２に格納する。その後、データ反映処理を終了する。
【０１５８】
以上で、データ反映処理の説明を終了する。
次に、ステップＳ１１の画像送信処理を説明する。
図１７は、第２の実施の形態の画像送信処理を示すフローチャートである。
【０１５９】
［ステップＳ４１］  更新領域識別部１４ｄは、マップ３０にマッピングされたメッシュ３１の更新回数をクリアする。その後、ステップＳ４２に遷移する。
［ステップＳ４２］  更新領域識別部１４ｄは、画面生成部１４ｂにより生成された更新矩形が、領域管理データ格納部１４ｅに格納されたいずれかの領域管理データ、すなわち生成された更新矩形が、第２の送信部１４ｈにより動画ストリームを送信中のいずれかの領域に含まれるか否かを判断する。更新矩形が高頻度更新領域に含まれる場合（ステップＳ４２のＹｅｓ）、ステップＳ４３に遷移する。更新矩形が高頻度更新領域に含まれない場合（ステップＳ４２のＮｏ）、ステップＳ４６に遷移する。
【０１６０】
［ステップＳ４３］  更新領域識別部１４ｄは、フレームバッファ１３に描画されたビットマップデータのうち高頻度更新領域に対応する部分のビットマップ画像を切り出した上でエンコーダ１４１ｆ〜１４３ｆのうち対応するエンコーダにエンコードさせる。その後、ステップＳ４４に遷移する。
【０１６１】
［ステップＳ４４］  更新領域識別部１４ｄは、エンコーダがエンコードしたエンコード画像を受け取ると、対応する領域ＩＤを付して第２の送信部１４ｈに送る。その後、ステップＳ４５に遷移する。
【０１６２】
［ステップＳ４５］  第２の送信部１４ｈはエンコードされた高頻度更新領域のエンコード画像をクライアント装置２０に送信する。その後、画像送信処理を終了する。
［ステップＳ４６］  第１の送信部１４ｇは、更新矩形の画像および属性情報をクライアント装置２０に送信する。その後、画像送信処理を終了する。
【０１６３】
以上で画像送信処理の説明を終了する。
図１８は、第２の実施の形態のデータ反映処理の具体例を示す図である。
図示の例では、前回の高頻度更新領域と新しい高頻度更新領域から継続利用可能な高頻度更新領域が抽出され、前回領域管理テーブル１４２の継続利用先領域ＩＤ、ｎｘ、ｎｙの欄に、継続利用可能な高頻度更新領域の位置を特定する座標が記録されている。具体的には、前回領域管理テーブル１４２の領域ＩＤ＝１の欄の前回領域管理データは、継続利用先領域ＩＤ＝１であるため、前回領域管理データが、新しい高頻度更新領域の領域ＩＤ＝１で継続利用されることが決まっている。また、ｎｘ、ｎｙの欄には、それぞれ５０が格納されているため、座標（０，０）から座標（５０，５０）への移動が必要であることを示している。
【０１６４】
領域ＩＤが「２」の欄の前回領域管理データは、継続利用する予定はない。
領域ＩＤが「３」の欄の前回領域管理データは、継続利用先領域ＩＤ＝２であるため、新しい高頻度更新領域の領域ＩＤ＝２で継続利用されることが決まっている。また、ｎｘ、ｎｙの欄には、値が格納されていないため、座標の移動は不要であることを示している。
【０１６５】
これらの継続利用に関する情報が、図１８の上側の領域管理テーブル１４１に反映された後の領域位置識別データの状態が、図１８の下側の領域管理テーブル１４１である。図１８の下側の領域管理テーブル１４１は、領域ＩＤと幅、高さ、エンコーダに関する情報が前回領域管理データによって更新されており、領域ＩＤ＝１のデータについては、位置情報（ｘ，ｙ）も更新されていることが分かる。
【０１６６】
その後、前回領域管理テーブル１４２に格納されている全ての内容がクリアされる。そして、領域管理テーブル１４１に格納されている領域管理データの内容が前回領域管理テーブル１４２に格納される。
【０１６７】
以上の処理により、サーバ装置１０は高頻度更新領域の移動を検知し、高頻度更新領域を継続利用可能となるため、データ送信量を軽減させることが可能となる。
次に、クライアント装置２０が行う移動検出処理を説明する。
【０１６８】
図１９は、第２の実施の形態のクライアント装置が行う移動検出処理を示すフローチャートである。
図１９にはクライアント装置２０が第２の受信部２１ｄから新しく画像データ（動画データ）を受信した際に、受信した画像データを領域管理データ格納部２１ｈに格納されている領域管理データの内容と比較し、高頻度更新領域の移動を検出する手順を図示してある。
【０１６９】
［ステップＳ５１］  クライアント装置２０は、エンコード画像（動画ストリーム）を新しく受信すると、表示位置変更検出部２１ｇに高頻度更新領域の移動を検出するよう依頼する。
【０１７０】
［ステップＳ５２］  表示位置変更検出部２１ｇは、領域管理データ格納部２１ｈに格納されている領域管理データ（以下、クライアント側領域管理データと言う）の領域ＩＤと、今回受信したエンコード画像に付されている領域ＩＤとを比較する。そして、表示位置変更検出部２１ｇは、エンコード画像に付されている領域ＩＤに一致する領域ＩＤを有するクライアント側領域管理データが存在するか否かを判断する。一致する領域ＩＤを有するクライアント側領域管理データが存在する場合（ステップＳ５２のＹｅｓ）、ステップＳ５３に遷移する。一致する領域ＩＤを有するクライアント側領域管理データが存在しない場合（ステップＳ５２のＮｏ）、ステップＳ５６に遷移する。
【０１７１】
［ステップＳ５３］  表示位置変更検出部２１ｇは、領域ＩＤが一致したクライアント側領域管理データが備えるサイズ情報（幅と高さ）と、今回受信したエンコード画像に含まれるサイズ情報とを比較する。そして、表示位置変更検出部２１ｇは、クライアント側領域管理データが備えるサイズ情報が、エンコード画像に含まれるサイズ情報と一致するか否かを判断する。クライアント側領域管理データが備えるサイズ情報が、エンコード画像に含まれるサイズ情報と一致する場合（ステップＳ５３のＹｅｓ）、ステップＳ５４に遷移する。クライアント側領域管理データが備えるサイズ情報が、エンコード画像に含まれるサイズ情報と一致しない場合（ステップＳ５３のＮｏ）、ステップＳ５６に遷移する。
【０１７２】
［ステップＳ５４］  表示位置変更検出部２１ｇは、領域ＩＤが一致したクライアント側領域管理データに含まれる位置情報と、新しく受信したエンコード画像に含まれる位置情報を参照し、エンコード画像に含まれる位置情報と一致するか否か判断する。クライアント側領域管理データに含まれる位置情報がエンコード画像に含まれる位置情報と一致する場合（ステップＳ５４のＹｅｓ）、ステップＳ５７に遷移する。エンコード画像に含まれる位置情報と一致しない場合（ステップＳ５４のＮｏ）、高頻度更新領域が移動したと判定し、ステップＳ５５に遷移する。
【０１７３】
［ステップＳ５５］  表示位置変更検出部２１ｇは、クライアント側領域管理データの位置情報を受信したエンコード画像に含まれる位置情報に変更する。その後、ステップＳ５７に遷移する。
【０１７４】
［ステップＳ５６］  表示位置変更検出部２１ｇは、新しく高頻度更新領域を作成する。そして、表示位置変更検出部２１ｇは、クライアント側領域管理データにエンコード画像に含まれる領域ＩＤと位置、サイズをコピーしたうえでデコーダ２１１ｅ〜２１３ｅからデコーダを選択し、作成した高頻度更新領域に割り当てる（クライアント側領域管理データのデコーダ欄に記入する）。その後、ステップＳ５７に遷移する。
【０１７５】
［ステップＳ５７］  表示位置変更検出部２１ｇは、受信したエンコード画像を、割り当てられたデコーダを使ってデコードし、デコードした画像データをクライアント側領域管理データに設定されている表示位置に表示する。その後、表示位置変更検出処理を終了する。
【０１７６】
以上の処理により、クライアント装置２０は高頻度更新領域の移動を検知し、適正な位置に画像を表示可能となるため、サーバ装置１０側で高頻度更新領域を継続利用した場合も適正な画面を表示可能となる。
【０１７７】
以上述べたように、情報処理システム５によれば、サーバ装置１０が移動検出処理を実行するようにした。これにより、動画像の再生時やＣＡＤアプリケーション利用時等のように画面更新がランダムな個所で頻繁に発生するような状況において、高頻度更新領域の変化を適切な場合に移動として検出し、動画ストリームを継続して利用することが可能となる。従って、データ圧縮効率を高めることが可能なため、結果として操作に対する応答時間を早めることができる。
【０１７８】
＜第３の実施の形態＞
次に、第３の実施の形態の情報処理システムについて説明する。
以下、第３の実施の形態の情報処理システムについて、前述した第２の実施の形態との相違点を中心に説明し、同様の事項については、その説明を省略する。
【０１７９】
第３の実施の形態の情報処理システムは、データ反映処理が第２の実施の形態と異なっている。
第２の実施の形態に示した情報処理システム５は、高頻度更新領域の移動を検知し、継続利用を行うと、その後その領域が頻繁に更新され続け、高頻度更新領域として処理され続けると、高頻度更新領域も継続利用された状態が続くことになる。この場合、例えば図１５のステップＳ３２で算出したｎの値によっては、継続利用することでデータ通信量が増加する場合がある。例えば、高頻度更新領域の継続利用が決定し、ｎが５であることが算出された場合に、その高頻度更新領域が１０回変更された場合、５回目までは継続利用する方がデータ通信量は少ないが、６回目以降は継続利用した方がデータ通信量が大きくなってしまう。
【０１８０】
これに対して第３の実施の形態では、６回目以降は高頻度更新領域の継続利用を中止し、本来の更新領域に合わせた小さいサイズの領域を高頻度更新領域としてデータ送信を行うように変更することでデータ通信量を抑える処理を実行する。
【０１８１】
図２０は、第３の実施の形態のサーバ装置が備える領域管理テーブルの一例を示す図である。
第３の実施の形態の領域管理テーブル１４３は、領域管理テーブル１４１と比較してｎ、エンコード回数、ｘｏ、ｙｏ、ｗｏ、ｈｏの欄がさらに追加されている。
【０１８２】
ｎの欄には、各高頻度更新領域に対して図１５のＳ３２で算出したｎの値が格納されている（ｎを算出した場合のみ）。
エンコード回数の欄には、当該レコードの高頻度更新領域を継続利用する際にエンコードを実施した回数が格納されている。図示の例では１回エンコード済みである。
【０１８３】
また、ｘｏ、ｙｏ、ｗｏ、ｈｏの各欄には、それぞれ前回検出した高頻度更新領域の位置とサイズが格納されている。
次に、第３の実施の形態のサーバ装置１０が行う移動検出処理を説明する。
【０１８４】
図２１は、第３の実施の形態のデータ反映処理を示すフローチャートである。
図２１にはサーバ装置１０が新しく高頻度更新領域を検出した際に、前回検出した高頻度更新領域と比較し、高頻度更新領域の移動を検出する手順を図示してある。ステップＳ２４ａ〜Ｓ２４ｆおよびステップＳ２４ｇ〜２４ｉの処理は第２の実施の形態と同様の処理であるため、説明は省略する。
【０１８５】
［ステップＳ２４１ｆ］  移動検出部１４ｉは、前回領域管理データＤにより特定される領域と領域管理データ領域Ｅにより特定される領域のサイズが異なるか否か判断する。サイズが異なる場合（ステップＳ２４１ｆのＹｅｓ）、ステップＳ２４２ｆに遷移する。サイズが同じである場合（ステップ２４１ｆのＮｏ）、ステップＳ２４ｇに遷移する。
【０１８６】
［ステップＳ２４２ｆ］  移動検出部１４ｉは、領域管理テーブル１４３の領域管理データＥに対応するｎの欄の値に、ステップＳ３２で算出したｎと同様の方法で算出した値を設定する。また、エンコード回数の欄を０に初期化する。このとき、ｎの算出には前回領域管理データＤの位置や高さと、領域管理データＥの位置や高さを利用する。その後、ステップＳ２４３ｆに遷移する。
【０１８７】
ここでは、ｎを再計算することで領域管理データＥのｎの欄に値を設定する方法を説明しているが、前回領域管理データＤにｎを記載する欄を作成しておき、ステップＳ３２で算出したｎを前回領域管理データＤに記録し、ステップＳ２４２ｆでｎを再計算する代わりに前回領域管理データＤに記録しておいたｎをコピーするようにしてもよい。
【０１８８】
［ステップＳ２４３ｆ］  移動検出部１４ｉは、領域管理テーブル１４３の領域管理データＥ対応するｘｏ、ｙｏ、ｗｏ、ｈｏの欄に、ｘ、ｙ、ｗ、ｈの欄に格納されている値をコピーする。その後、ステップＳ２４ｇに遷移する。
【０１８９】
以上の処理で、領域管理データに高頻度更新領域の継続利用を中止する情報を記録することが可能となる。
次に、第３の実施の形態の画像送信処理を説明する。
【０１９０】
図２２は、第３の実施の形態の画像送信処理の手順を示すフローチャートである。
図２２にはサーバ装置１０が新しく更新領域を検出した際に、高頻度更新領域の継続利用を中止するまでの手順を図示してある。ステップＳ４１〜Ｓ４４、Ｓ４６の処理は第２の実施の形態と同様の処理であるため、説明は省略する。
【０１９１】
［ステップＳ４５ａ］  第２の送信部１４ｈは、エンコードされた高頻度更新領域の動画ストリームをクライアント装置２０に送信する。その後、ステップＳ４７ａに遷移する。
【０１９２】
［ステップＳ４７ａ］  更新領域識別部１４ｄは、移動検出部１４ｉにエンコードが完了したことを通知する。その後、ステップＳ４７ｂに遷移する。
［ステップＳ４７ｂ］  通知を受けた移動検出部１４ｉは、領域管理テーブル１４３を参照し、エンコードが完了した領域管理データのｎの欄に値が設定されているか否か判断する。値が設定されている場合（ステップＳ４７ｂのＹｅｓ）、ステップＳ４７ｃに遷移する。値が設定されていない場合（ステップＳ４７ｂのＮｏ）、画像送信処理を終了する。
【０１９３】
［ステップＳ４７ｃ］  移動検出部１４ｉは、領域管理テーブル１４３のエンコードが完了した領域管理データに対応するエンコード回数の欄の値を１増やす。その後、ステップＳ４７ｄに遷移する。
【０１９４】
［ステップＳ４７ｄ］  移動検出部１４ｉは、エンコードが完了した領域位置識別データに対応するエンコード回数の欄の値が、ｎの欄に設定されているｎ以上か否かを判断する。エンコード回数の欄の値がｎ以上の場合（ステップＳ４７ｄのＹｅｓ）、ステップＳ４７ｅに遷移する。エンコード回数の欄の値がｎより小さい場合（ステップＳ４７ｄのＮｏ）、画像送信処理を終了する。
【０１９５】
［ステップＳ４７ｅ］  移動検出部１４ｉは、高頻度更新領域の継続利用を中止して画像送信処理を終了する。具体的には、この高頻度更新領域で利用してきたエンコーダを終了し、領域管理データに記載されているｘｏ、ｙｏ、ｗｏ、ｈｏの値を同じく領域管理データのｘ、ｙ、ｗ、ｈにコピーし、ｗ、ｈをパラメータとしてエンコーダを新しく作成するとともに領域ＩＤを新しくふり直す。その後、画像送信処理を終了する。
【０１９６】
以上で、第３の実施の形態の画像送信処理の説明を終了する。
この第３の実施の形態の情報処理システムによれば、第２の実施の形態の情報処理システムと同様の効果が得られる。
【０１９７】
そして、第３の実施の形態の情報処理システムによれば、さらに、高頻度更新領域を継続利用したことでデータ通信量が増えてしまう場合に、継続利用を中止することが可能となり、データ通信量が増えることを抑制することができる。
【０１９８】
＜第４の実施の形態＞
次に、第４の実施の形態の情報処理システムについて説明する。
以下、第４の実施の形態の情報処理システムについて、前述した第２の実施の形態との相違点を中心に説明し、同様の事項については、その説明を省略する。
【０１９９】
第２の実施の形態に示した情報処理装置は、式（２）、式（３）に示すように、新しく設定した高頻度更新領域が前回の高頻度更新領域よりサイズが同じか小さい場合のみ継続利用の対象として移動を検出した。第４の実施の形態ではこれに加え、新しく検出した高頻度更新領域が前回の高頻度更新領域より大きい場合も継続利用の対象として移動を検出する。
【０２００】
図２３は、第４の実施の形態のサーバ装置が行う移動検出処理の一例を示す図である。
図２３（ａ）は、表示デバイス２０４ａに表示された古い高頻度更新領域Ａ２より新しい高頻度更新領域Ｂ２の方が、サイズが大きい場合を示している。
【０２０１】
この場合に、本実施の形態のサーバ装置１０は、図２３（ｂ）に示すように、古い高頻度更新領域Ａ２を新しい高頻度更新領域Ｂ２の左上隅に移動させた領域Ａ３に設定することで継続利用し、新しい高頻度更新領域のはみ出す部分は別途、領域Ａ４、Ａ５を２つ作成してクライアント装置２０に送信する。また、一定時間経過後、高頻度更新領域Ａ２の継続利用を中止し１つの高頻度更新領域Ａ６として画像を送信する様子を示している。
【０２０２】
図２４は、第４の実施の形態の領域管理テーブルを示す図である。
第４の実施の形態の領域管理テーブル１４４は、高頻度更新領域の継続利用の中止の時刻を格納する統合指示時刻［ｍｓ］の欄がさらに設けられている。
【０２０３】
図２４では、領域ＩＤ＝１から領域ＩＤ＝３の領域管理データそれぞれにおいて、統合指示時刻の欄に１２０１９１が格納されている。これは、高頻度更新領域が、古い高頻度更新領域を継続利用するために分割されたことを示しており、統合指示時刻で指定された時刻（図２４ではシステム起動から１２０１９１［ｍｓ］経過後）に継続利用を中止し、１つの高頻度更新領域として送信されるようになる予定であることを示している。
【０２０４】
次に、第４の実施の形態のサーバ装置１０が行う移動検出処理を説明する。
図２５および図２６は、第４の実施の形態のサーバ装置が行う移動検出処理を示すフローチャートである。
【０２０５】
図２５および図２６にはサーバ装置１０が新しく高頻度更新領域を検出した際に、前回検出した高頻度更新領域と比較し、高頻度更新領域の移動を検出する手順を図示してある。Ｓ２７までの処理は第２の実施の形態と同様の処理であるため、説明は省略する。
【０２０６】
［ステップＳ２８ａ］  移動検出部１４ｉは、ステップＳ２５で抽出した領域Ａの幅とステップＳ２７で抽出した領域Ｂの幅を比較する。そして、移動検出部１４ｉは、領域Ａの幅は領域Ｂの幅以上か否かを判断する。領域Ａの幅が、領域Ｂの幅より大きい、または、等しい場合（ステップＳ２８ａのＹｅｓ）、ステップＳ２９ａに遷移する。領域Ａの幅が領域Ｂの幅より小さい場合（ステップＳ２８ａのＮｏ）、ステップＳ７１に遷移する。なお、図２３に示す高頻度更新領域Ａ２は、領域Ａの一例であり、領域Ｂ２は領域Ｂの一例である。
【０２０７】
［ステップＳ２９ａ］  移動検出部１４ｉは、領域Ａと領域Ｂの高さを比較し、領域Ａの高さは領域Ｂの高さ以上か否かを判断する。領域Ａの高さが領域Ｂの高さより小さい場合（ステップＳ２９ａのＮｏ）、ステップＳ７１に遷移する。領域Ａの高さが領域Ｂの高さより大きい、または、等しい場合（ステップＳ２９ａのＹｅｓ）ステップＳ３０に遷移する。
【０２０８】
［ステップＳ７１］  移動検出部１４ｉは、領域Ａの４つの辺のうち領域Ｂの辺と最低２辺が接するように領域Ａを最小限移動させた時の領域を領域Ｆとして抽出する。その後、ステップＳ７２に遷移する。なお、図２３に示す領域Ａ３は、領域Ｆの一例である。
【０２０９】
［ステップＳ７２］  移動検出部１４ｉは、領域Ａと領域Ｆの重複領域の面積Ｓxを算出する。その後、ステップＳ７３に遷移する。
［ステップＳ７３］  移動検出部１４ｉは、ステップＳ７２で算出した面積Ｓxが０より大きいか否か判断する。面積Ｓxが０より大きい場合（ステップＳ７２のＹｅｓ）、ステップＳ７４に遷移する。面積Ｓxが０以下である場合（ステップＳ７２のＮｏ）、ステップＳ２６に遷移する。
【０２１０】
［ステップＳ７４］  移動検出部１４ｉは、領域Ｂの画面データを送るのに領域Ａを継続利用する。具体的には、領域Ｂのうち領域Ｆと重複しない領域（領域Ａの継続利用だけでは送信できない領域）を抽出する。この領域は、領域Ｂと領域Ｆの辺は最低２辺が接していることから、１領域、または、２領域となる。その後、ステップＳ７５に遷移する。なお、図２３に示す領域Ａ４、Ａ５は、重複しない２領域の一例である。
【０２１１】
［ステップＳ７５］  移動検出部１４ｉは、抽出した重複しない領域の画像を送る高頻度更新領域を新しく作成する。そして、作成した高頻度更新領域の領域管理データを領域管理テーブル１４４に格納する。その後、ステップＳ７６に遷移する。
【０２１２】
［ステップＳ７６］  移動検出部１４ｉは、前回領域管理テーブル１４２の領域Ａの継続利用先領域ＩＤの欄に領域ＢのＩＤを格納する。さらに、領域Ｆの位置情報（ｘ、ｙ）を、領域Ａのｎｘ，ｎｙの欄に格納する。その後、ステップＳ７７に遷移する。
【０２１３】
［ステップＳ７７］  移動検出部１４ｉは、領域ＢとステップＳ７４で新しく登録した領域を統合対象の領域とする。そして、前回領域管理テーブル１４２の統合指示時刻の欄に、現在時刻に一定時間を追加した時刻を設定する。その後、ステップＳ２３に戻る。
【０２１４】
以上の処理で、新しい高頻度更新領域が古い高頻度更新領域より大きい場合でも継続利用の対象として移動を検出することが可能となり、さらに高頻度更新領域の継続利用のために分割した領域を統合する情報を領域管理データに記録することが可能となる。
【０２１５】
次に、第４の実施の形態のサーバ装置１０が行う高頻度更新領域の統合処理を説明する。
図２７は、第４の実施の形態のサーバ装置の高頻度更新領域の統合処理の手順を示すフローチャートである。
【０２１６】
図２７にはサーバ装置１０がステップＳ７７で統合指示時刻の欄に設定した時刻が経過した際に、分割していた高頻度更新領域を統合するまでの手順を図示してある。
［ステップＳ８１］  移動検出部１４ｉは、ステップＳ７７で設定した時刻の経過を検出すると、ステップＳ８２に遷移する。
【０２１７】
［ステップＳ８２］  移動検出部１４ｉは、領域管理テーブル１４４に格納されている領域管理データを参照し、タイムアウトしたタイマーが対象とする高頻度更新領域を統合した領域に関する領域管理データを新たに作成する。その後、ステップＳ８３に遷移する。
【０２１８】
［ステップＳ８３］  移動検出部１４ｉは、領域管理テーブル１４４に格納されている統合前の領域に関する領域管理データを削除する。その後、ステップＳ８４に遷移する。
［ステップＳ８４］  移動検出部１４ｉは、前回領域管理テーブル１４２に格納されている前回領域管理データを削除する。その後、ステップＳ８５に遷移する。
【０２１９】
［ステップＳ８５］  移動検出部１４ｉは、領域管理テーブル１４４に格納されている領域管理データを前回領域管理テーブル１４２にコピーする。その後、統合処理を終了する。
【０２２０】
以上で統合処理の説明を終了する。
この第４の実施の形態の情報処理システムによれば、第２の実施の形態の情報処理システムと同様の効果が得られる。
【０２２１】
そして、第４の実施の形態の情報処理システムによれば、高頻度更新領域を継続利用するために分割していた領域を一定時間経過後、１つの領域として画像を送信するように変更できるため、画像の切れ目がなくなり画質を向上させることが可能となる。
【０２２２】
なお、サーバ装置１０が行った処理が、複数の装置によって分散処理されるようにしてもよい。例えば、１つの装置が、更新領域の識別処理までを行って領域位置識別データを生成しておき、他の装置が、その領域位置識別データを用いて移動検出処理や画像送信処理を行うようにしてもよい。
【０２２３】
以上、本発明の情報処理装置、情報処理方法および情報処理プログラムを、図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物や工程が付加されていてもよい。
【０２２４】
また、本発明は、前述した各実施の形態のうちの、任意の２以上の構成（特徴）を組み合わせたものであってもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、情報処理装置１、サーバ装置１０、クライアント装置２、２０それぞれが有する機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリ等が挙げられる。磁気記憶装置には、ハードディスクドライブ、フレキシブルディスク（ＦＤ）、磁気テープ等が挙げられる。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷ等が挙げられる。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）等が挙げられる。
【０２２５】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０２２６】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０２２７】
また、上記の処理機能の少なくとも一部を、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ、ＰＬＤ（Programmable Logic Device）等の電子回路で実現することもできる。
（付記１）  動画圧縮して送信した第１の領域を示す情報を記憶する記憶部と、
画像の更新量が閾値以上の第２の領域を識別する識別部と、
前記第１の領域と前記第２の領域との重複関係に基づいて、前記第２の領域の画像を、前記第１の領域の前記動画と関連して送信するか否かを判断する判断部と、
前記第２の領域と前記第１の領域とを関連して送信すると判断した場合、前記第２の領域の少なくとも一部を包含する領域の画像を、前記第１の領域の画像に続けて動画圧縮して送信すると共に、該動画圧縮した画像の表示位置を示す情報を送信する送信部と、
を有することを特徴とする情報処理装置。
【０２２８】
（付記２）  前記判断部は、前記第１の領域と前記第２の領域の面積が等しく、かつ、前記第１の領域と前記第２の領域との間に重複領域が存在する場合に前記第２の領域の画像を前記第１の領域の前記動画と関連して送信すると判断することを特徴とする付記１記載の情報処理装置。
【０２２９】
（付記３）  前記送信部は、前記第２の領域の画像全体を、前記第１の領域の画像に続けて動画圧縮して送信することを特徴とする付記２記載の情報処理装置。
（付記４）  前記判断部は、前記第２の領域の面積が前記第１の領域の面積より小さく、かつ、前記重複領域を包含する領域の画像を前記第１の領域の画像に続けて動画圧縮したときのデータ量が、前記第２の領域の画像を先頭とする動画圧縮をしたときのデータ量より小さいときに、前記第２の領域の画像を前記第１の領域の前記動画と関連して送信すると判断することを特徴とする付記２記載の情報処理装置。
【０２３０】
（付記５）  前記第２の領域の画像を前記第１の領域の画像に続く動画として送信した回数を計数する計数部をさらに備え、
前記判断部は、前記計数部が計数した前記回数が予め用意した回数以上である場合に、前記第２の領域の画像の前記第１の領域の前記動画と関連した送信を中止することを特徴とする付記４記載の情報処理装置。
【０２３１】
（付記６）  前記識別部は、複数の前記画像を記憶する画像記憶部に記憶された画像を複数の領域に分割し、該領域毎にフレーム間の更新の頻度を判別し、前記更新の頻度が一定以上である領域を前記第２の領域であると識別することを特徴とする付記１記載の情報処理装置。
【０２３２】
（付記７）  前記送信部は、前記第２の領域を包含し、前記第１の領域と面積が等しい領域の画像を、前記第１の領域の画像に続けて動画圧縮して送信することを特徴とする付記４乃至６のいずれかに記載の情報処理装置。
【０２３３】
（付記８）  前記判断部は、前記第２の領域の面積が前記第１の領域の面積より大きく、かつ、前記第１の領域と前記第２の領域との重複部分が存在する場合、前記第２の領域の画像を前記第１の領域の前記動画と関連して送信すると判断することを特徴とする付記１記載の情報処理装置。
【０２３４】
（付記９）  前記第２の領域の画像を前記第１の領域の画像に続く動画として送信する期間が一定期間を超えた場合に、前記送信部は、前記第２の領域の画像を先頭の画像とする動画を送信することを特徴とする付記８記載の情報処理装置。
【０２３５】
（付記１０）  前記送信部は、前記第２の領域の画像の一部を前記第１の領域の画像に続く動画として送信することを特徴とする付記８または９のいずれかに記載の情報処理装置。
【０２３６】
（付記１１）  コンピュータが、
動画圧縮して送信した第１の領域を示す情報が記憶装置に記憶し、
画像の更新量が閾値以上の第２の領域を識別し、
前記第１の領域と前記第２の領域との重複関係に基づいて、前記第２の領域の画像を、前記第１の領域の前記動画と関連して送信するか否かを判断し、
前記第２の領域と前記第１の領域とを関連して送信すると判断した場合、前記第２の領域の少なくとも一部を包含する領域の画像を、前記第１の領域の画像に続けて動画圧縮して送信すると共に、該動画圧縮した画像の表示位置を示す情報を送信する、
ことを特徴とする情報処理方法。
【０２３７】
（付記１２）  コンピュータに、
動画圧縮して送信した第１の領域を示す情報が記憶装置に記憶し、
画像の更新量が閾値以上の第２の領域を識別し、
前記第１の領域と前記第２の領域との重複関係に基づいて、前記第２の領域の画像を、前記第１の領域の前記動画と関連して送信するか否かを判断し、
前記第２の領域と前記第１の領域とを関連して送信すると判断した場合、前記第２の領域の少なくとも一部を包含する領域の画像を、前記第１の領域の画像に続けて動画圧縮して送信すると共に、該動画圧縮した画像の表示位置を示す情報を送信する、
処理を実行させることを特徴とする情報処理プログラム。
【符号の説明】
【０２３８】
１  情報処理装置
１ａ  記憶部
１ｂ  識別部
１ｃ  判断部
１ｄ  送信部
１ｅ  画像記憶部
１ｆ、１４ｃ  更新頻度判別部
２、２０  クライアント装置
２ａ  表示部
３、４  領域
５  情報処理システム
１０  サーバ装置
１１ａ  ＯＳ実行制御部
１１ｂ  アプリ実行制御部
１２  グラフィックドライバ
１３  フレームバッファ
１４  リモート画面制御部
１４ａ  操作情報取得部
１４ｂ  画面生成部
１４ｄ  更新領域識別部
１４ｅ、２１ｈ  領域管理データ格納部
１４１ｆ、１４２ｆ、１４３ｆ  エンコーダ
１４ｇ  第１の送信部
１４ｈ  第２の送信部
１４ｉ  移動検出部
１４ｊ  前回領域管理データ格納部
２１  リモート画面制御部
２１ａ  操作情報通知部
２１ｂ  第１の受信部
２１ｃ  第１の表示制御部
２１ｄ  第２の受信部
２１１ｅ、２１２ｅ、２１３ｅ  デコーダ
２１ｆ  第２の表示制御部
２１ｇ  表示位置変更検出部
３０  マップ
３１  メッシュ
３１ａ、３１ｂ  更新矩形
３２  画素
５０  ネットワーク
５１  メッシュ連結体
５２、６２  補間領域
５３  矩形
６１ａ、６１ｂ  候補
６３  合成体
７０Ａ  デスクトップ画面
７０Ｂ、７０Ｃ  画面
７１  ブラウザ画面
７２  動画再生画面
７３  移動軌跡
７４  動画再生領域
１４１  領域管理テーブル
１４２  前回領域管理テーブル
【図１】
0005720211.tif 000002
【図２】
0005720211.tif 000003
【図３】
0005720211.tif 000004
【図４】
0005720211.tif 000005
【図５】
0005720211.tif 000006
【図６】
0005720211.tif 000007
【図７】
0005720211.tif 000008
【図８】
0005720211.tif 000009
【図９】
0005720211.tif 000010
【図１０】
0005720211.tif 000011
【図１１】
0005720211.tif 000012
【図１２】
0005720211.tif 000013
【図１３】
0005720211.tif 000014
【図１４】
0005720211.tif 000015
【図１５】
0005720211.tif 000016
【図１６】
0005720211.tif 000017
【図１７】
0005720211.tif 000018
【図１８】
0005720211.tif 000019
【図１９】
0005720211.tif 000020
【図２０】
0005720211.tif 000021
【図２１】
0005720211.tif 000022
【図２２】
0005720211.tif 000023
【図２３】
0005720211.tif 000024
【図２４】
0005720211.tif 000025
【図２５】
0005720211.tif 000026
【図２６】
0005720211.tif 000027
【図２７】
0005720211.tif 000028