(57)【特許請求の範囲】
【請求項１】
ネットワークを介して接続された端末に、該端末で表示される画像を生成して、該画像に関するデータを送信する情報処理装置であって、
画像内の移動領域を検出する移動領域検出部と、
前記検出された移動領域内に、移動前後で変更される部分領域があるか否かを判定する判定部と、
前記変更される部分領域がある場合、該部分領域の変更回数が所定期間内で閾値以上となる高頻度の変更領域を識別する識別部と、
前記高頻度の変更領域であると識別されなかった部分領域の画像データを前記端末に送信する第１送信部と、
識別された前記高頻度の変更領域が動画圧縮されたデータを前記端末に送信する第２送信部と、
前記移動領域の移動情報及び前記移動領域のサイズ情報を前記端末に送信する第３送信部と、
を備え、
前記判定部により、複数の部分領域があると判定された場合、
前記識別部は、
識別された前記高頻度の変更領域の数が所定値以上であるとき、移動前後の前記移動領域を含む領域を前記高頻度の変更領域であると識別する情報処理装置。
【請求項２】
ネットワークを介して接続された端末に、該端末で表示される画像を生成して、該画像に関するデータを送信する情報処理装置であって、
画像内の移動領域を検出する移動領域検出部と、
前記検出された移動領域内に、移動前後で変更される部分領域があるか否かを判定する判定部と、
前記変更される部分領域がある場合、該部分領域の変更回数が所定期間内で閾値以上となる高頻度の変更領域を識別する識別部と、
前記高頻度の変更領域であると識別されなかった部分領域の画像データを前記端末に送信する第１送信部と、
識別された前記高頻度の変更領域が動画圧縮されたデータを前記端末に送信する第２送信部と、
前記移動領域の移動情報及び前記移動領域のサイズ情報を前記端末に送信する第３送信部と、
を備え、
前記第３送信部により送信されるデータは、前記第１送信部及び前記第２送信部により送信されるデータよりも先に送信される情報処理装置。
【請求項３】
ネットワークを介して接続された端末に、該端末で表示される画像を生成して、該画像に関するデータを送信する情報処理装置が実行する情報処理方法であって、
画像内の移動領域を検出し、
前記検出された移動領域内に、移動前後で変更される部分領域があるか否かを判定し、
前記変更される部分領域がある場合、該部分領域の変更回数が所定期間内で閾値以上となる高頻度の変更領域を識別し、
前記移動領域の移動情報及び前記移動領域のサイズ情報を前記端末に送信し、
前記高頻度の変更領域であると識別されなかった部分領域の画像データを前記端末に送信し、
識別された前記高頻度の変更領域が動画圧縮されたデータを前記端末に送信し、
前記変更される部分領域が複数ある場合、前記高頻度の変更領域の数が所定値以上であるとき、移動前後の前記移動領域を含む領域を前記高頻度の変更領域であると識別する
処理を有する情報処理方法。
【請求項４】
ネットワークを介して接続された端末に、該端末で表示される画像を生成して、該画像に関するデータを送信する情報処理装置に実行させるためのプログラムであって、
画像内の移動領域を検出し、
前記検出された移動領域内に、移動前後で変更される部分領域があるか否かを判定し、
前記変更される部分領域がある場合、該部分領域の変更回数が所定期間内で閾値以上となる高頻度の変更領域を識別し、
前記移動領域の移動情報及び前記移動領域のサイズ情報を含む移動情報を前記端末に送信し、
前記高頻度の変更領域であると識別されなかった部分領域の画像データを前記端末に送信し、
識別された前記高頻度の変更領域が動画圧縮されたデータを前記端末に送信し、
前記変更される部分領域が複数ある場合、前記高頻度の変更領域の数が所定値以上であるとき、移動前後の前記移動領域を含む領域を前記高頻度の変更領域であると識別する
処理を情報処理装置に実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シンクライアントシステムで用いられる情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
情報漏えい対策や、ＰＣ（Personal Computer）の運用管理コスト削減などで、シンクライアント（thin  client）というシステム（system）が一般的に用いられている。シンクライアントシステムでは、クライアントに最低限の機能しか持たせず、サーバでアプリケーションやファイルなどのリソースを管理するようにシステムが構築される。
【０００３】
シンクライアントシステムは、実際にはサーバが処理を実行した処理結果やサーバが保持するデータをクライアントに表示させつつも、あたかもクライアントが主体となって処理を実行したり、データを保持していたりするかのように振る舞う。
【０００４】
シンクライアントシステムは、サーバで資料作成やメールなどの業務に関するアプリケーションを実行させ、そのアプリケーションの処理結果をクライアントに表示させる。このような業務アプリの他にも、ＣＡＤ（Computer-Aided Design）などのように精細な画像を扱うアプリケーション、さらには、動画を扱うアプリケーションなどがシンクライアントシステムの適用範囲として拡充されることが求められる。
【０００５】
ところが、シンクライアントシステムで通信に用いられるプロトコル、例えばＲＤＰ（Remote Desktop Protocol）や、ＶＮＣ（Virtual Network Computing）で用いられているＲＦＢ（Remote Frame Buffer）プロトコルなどで、画像や動画などの大容量のデータを転送する場合には、クライアントで実行される操作に対するレスポンスが悪化する問題がある。なお、この問題は、シンクライアントシステムでクライアントとサーバ間で画面更新時に大容量のデータ送信が発生する場合に共通するものであり、画像や動画を扱う場合に限定して生じる問題ではない。
【０００６】
そこで、データの転送量を削減するため、更新された表示データ自体を伝送するか、又は更新された表示データを有効化するデータプリミティブを伝送するのかにつき、効率の良い方を決定する技術がある。
【０００７】
また、画像に識別子を付与し、送信すべき画像をディスプレイ側で保持している場合は、画像の識別情報及び領域情報を送信する技術が開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１０−２８２６０９号公報
【特許文献２】特開２００７−２６５２２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、従来技術では、画面の画像内の領域（例えばウィンドウ）が移動がする場合、その領域が更新されないことが前提となっている。これにより、クライアント側のフレームバッファに保持される領域をコピーすることで、クライアント側に送信するデータ量を削減する。
【００１０】
ここで、画像内の領域に、例えば広告、宣伝用に更新されるバナーやアニメーション広告などが含まれる場合、この領域が移動してもコピー領域として認識することができず、領域の移動の情報だけを送信することができなくなる。
【００１１】
よって、従来技術では、画像内の領域の移動が行われた場合、領域内に変更される部分があればその領域はコピー領域として扱えなくなり、クライアント側に送信するデータ量を削減することができないという問題点があった。
【００１２】
そこで、開示の技術は、上記問題点に鑑みてなされたものであって、シンクライアントシステムにおいて、クライアント側に送信するデータ量を削減することができる情報処理装置、情報処理方法、プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
開示の一態様における情報処理装置は、ネットワークを介して接続された端末に、該端末で表示される画像を生成して、該画像に関するデータを送信する情報処理装置であって、画像内の移動領域を検出する移動領域検出部と、前記検出された移動領域内に、移動前後で変更される部分領域があるか否かを判定する判定部と、前記変更される部分領域がある場合、該部分領域の変更回数が所定期間内で閾値以上となる高頻度の変更領域を識別する識別部と、前記高頻度の変更領域であると識別されなかった部分領域の画像データを前記端末に送信する第１送信部と、識別された前記高頻度の変更領域が動画圧縮されたデータを前記端末に送信する第２送信部と、前記移動領域の移動情報及び前記移動領域のサイズ情報を前記端末に送信する第３送信部と、を備え、前記判定部により、複数の部分領域があると判定された場合、前記識別部は、識別された前記高頻度の変更領域の数が所定値以上であるとき、移動前後の前記移動領域を含む領域を前記高頻度の変更領域であると識別する。
【発明の効果】
【００１４】
開示の技術は、シンクライアントシステムにおいて、クライアント側に送信するデータ量を削減することができる。
【図面の簡単な説明】
【００１５】
【図１】実施例に係るシンクライアントシステムに含まれる各装置の構成の一例を示すブロック図。
【図２】表示画面の分割例を説明するための図。
【図３Ａ】表示画面の変更頻度の判別例を説明するための図。
【図３Ｂ】表示画面の変更頻度の判別例を説明するための図。
【図３Ｃ】表示画面の変更頻度の判別例を説明するための図。
【図４】メッシュ連結体の補正例を説明するための図。
【図５】高頻度変更領域の候補の合成例を説明するための図。
【図６Ａ】高頻度変更領域の属性情報の通知例を説明するための図。
【図６Ｂ】高頻度変更領域の属性情報の通知例を説明するための図。
【図６Ｃ】高頻度変更領域の属性情報の通知例を説明するための図。
【図７】移動領域の問題点を説明するための図。
【図８】移動領域から部分領域を抽出する例を説明するための図。
【図９】移動領域内の動画化判定処理における例外処理を説明するための図。
【図１０】クライアント端末に送信されるデータのデータ構造の一例を示す図。
【図１１】受信データの順番の一例を示す図。
【図１２Ａ】サーバ装置の情報処理の一例を示すフローチャート。
【図１２Ｂ】サーバ装置の情報処理の一例を示すフローチャート。
【図１３】クライアント端末の情報処理の一例を示すフローチャート。
【図１４】情報処理装置の構成の一例を示すブロック図。
【発明を実施するための形態】
【００１６】
以下、実施例について、添付図面を参照しながら説明する。
【００１７】
［実施例］
＜システム＞
実施例に係るシンクライアントシステムについて説明する。図１は、実施例に係るシンクライアントシステムに含まれる各装置の構成の一例を示すブロック図である。
【００１８】
図１に示すシンクライアントシステム（thin  client  system）１は、クライアント（client）端末２０が表示する画面をリモート（remote）でサーバ（server）装置１０に制御させるものである。サーバ装置１０及びクライアント端末２０は、例えば情報処理装置である。
【００１９】
シンクライアントシステム１は、実際にはサーバ装置１０が実行した処理結果や保持するデータをクライアント端末２０に表示させつつも、あたかもクライアント端末２０が主体となって処理を実行したり、データを保持したりしているかのように振る舞う。
【００２０】
図１に示す例では、シンクライアントシステム１は、サーバ装置１０と、クライアント端末２０とを有する。なお、図１に示す例では、１つのサーバ装置１０に対し、１つのクライアント端末を接続する場合を示したが、任意の数のクライアント端末を接続してもよい。
【００２１】
サーバ装置１０及びクライアント端末２０は、所定のネットワークを介して、相互に通信可能に接続される。所定のネットワークには、有線または無線を問わず、インターネット、ＬＡＮ（Local  Area  Network）やＶＰＮ（Virtual  Private  Network）などの任意の種類の通信網を採用する。なお、サーバ装置１０及びクライアント端末２０間の通信プロトコルには、一例として、ＶＮＣにおけるＲＦＢ（Remote  Frame  Buffer）プロトコルを採用する場合を想定する。
【００２２】
サーバ装置１０は、クライアント端末２０に表示させる画面をリモートで制御するサービスを提供するコンピュータである。このサーバ装置１０には、サーバ向けのリモート画面制御用のアプリケーションがインストールまたはプリインストールされる。なお、以下では、サーバ向けのリモート画面制御用のアプリケーションをサーバ側リモート画面制御用アプリとも呼ぶ。
【００２３】
サーバ側リモート画面制御用アプリは、基本機能として、リモート画面制御サービスを提供する機能を有する。一例としては、サーバ側リモート画面制御用アプリは、クライアント端末２０における操作情報を取得した上でその操作により要求された処理を自装置で動作するアプリケーションに実行させる。
【００２４】
サーバ側リモート画面制御用アプリは、アプリケーションにより実行された処理結果を表示するための画面の画像を生成した上でその画像をクライアント端末２０へ送信する。このとき、サーバ側リモート画面制御用アプリは、今回の画面生成の前にクライアント端末２０で表示させていたビットマップ（bitmap）画像との間で変更があった部分の画素（pixel）が集まった領域、すなわち更新矩形の画像を送信する。なお、以下では、一例として、更新部分の画像が矩形の画像で形成される場合を説明するが、開示の装置は更新部分の画像が矩形以外の形状で形成される場合にも適用できる。
【００２５】
このほか、サーバ側リモート画面制御用アプリは、フレーム（frame）間で動きが大きい部分のデータを動画向けの圧縮方式のデータに圧縮してクライアント端末２０へ送信する機能も有する。一例としては、サーバ側リモート画面制御用アプリは、アプリケーションにより実行された処理結果から生成した画面の画像を複数の領域に分割し、分割した領域ごとに変更の頻度を監視する。
【００２６】
このとき、サーバ側リモート画面制御用アプリは、変更の頻度が閾値を超えた領域、すなわち高頻度変更領域の属性情報をクライアント端末２０へ送信する。これとともに、サーバ側リモート画面制御用アプリは、高頻度変更領域のビットマップ画像をＭＰＥＧ−２やＭＰＥＧ−４などのＭＰＥＧ方式のデータにエンコード（encode）した上でクライアント端末２０へ送信する。
【００２７】
なお、ここでは、ＭＰＥＧ（Moving  Picture  Experts  Group）方式のデータへ圧縮する場合を例示したが、これに限定されない。例えば、動画向けの圧縮方式であれば任意の圧縮符号化方式、例えばＭｏｔｉｏｎ−ＪＰＥＧ（Joint  Photographic  Experts  Group）などを採用してもよい。
【００２８】
また、サーバ側リモート画面制御用アプリは、画面内で所定領域の移動があった場合、動画化処理を停止して、所定領域の移動情報及び所定領域のサイズ情報をクライアント端末２０に送信する機能を有する。以下では、移動される所定領域を移動領域とも呼ぶ。
【００２９】
また、サーバ側リモート画面制御用アプリは、この移動領域内で変更される部分がある場合、この部分を動画化して動画圧縮したデータ、又は変更前後における静止画の符号化データ又は差分データをクライアント端末２０に送信する機能を有する。
【００３０】
クライアント端末２０は、サーバ装置１０によるリモート画面制御サービスの提供を受ける側のコンピュータである。クライアント端末２０の一例としては、パーソナルコンピュータ（personal  computer）など固定端末の他、携帯電話機、ＰＨＳ（Personal  Handyphone  System）やＰＤＡ（Personal  Digital  Assistant）などの移動体端末を適用することもできる。
【００３１】
クライアント端末２０には、クライアント向けのリモート画面制御用アプリケーションがインストールまたはプリインストールされる。なお、以下では、クライアント向けのリモート画面制御用のアプリケーションをクライアント側リモート画面制御用アプリと呼ぶ。
【００３２】
このクライアント側リモート画面制御用アプリは、マウスやキーボードなどの各種の入力デバイスを介して受け付けた操作情報をサーバ装置１０へ通知する機能を有する。一例としては、クライアント側リモート画面制御用アプリは、マウスの左右のクリックを始め、ダブルクリックやドラッグ、マウスの移動操作を介して得られたマウスカーソルの移動量などを操作情報として通知する。他の一例としては、マウスホイールの回転量、キーボードのうち押下されたキーの種別なども操作情報として通知する。
【００３３】
クライアント側リモート画面制御用アプリは、サーバ装置１０から受信した画像を所定の表示部に表示させる機能を有する。一例としては、クライアント側リモート画面制御用アプリは、サーバ装置１０から更新矩形のビットマップ画像を受信した場合には、更新矩形の画像を前回のビットマップ画像から変更のあった位置に合わせて表示する。
【００３４】
他の一例としては、クライアント側リモート画面制御用アプリは、サーバ装置１０から高頻度変更領域の属性情報を受信した場合には、その属性情報に含まれる位置に対応する表示画面上の領域をビットマップ画像の表示対象外のブランク（blank）領域とする。その上で、クライアント側リモート画面制御用アプリは、動画向けの圧縮方式のデータを受信した場合にそのデータをデコードした上でブランク領域に表示する。
【００３５】
クライアント側リモート画面制御用アプリは、サーバ装置１０から移動領域の移動情報及びサイズ情報を受信した場合、フレームバッファ内のサイズ情報に基づく所定領域をコピーして、移動情報に基づく移動後の位置に表示する。
【００３６】
クライアント側リモート画面制御用アプリは、移動領域内に変更される部分があり、その部分に対応するデータを受信した場合、上述した更新矩形の画像、又はデコードした動画をその部分に表示する。
【００３７】
＜サーバ装置の構成＞
次に、実施例に係るサーバ装置の構成について説明する。図１に示すように、サーバ装置１０は、ＯＳ実行制御部１１ａと、アプリ実行制御部１１ｂと、グラフィックドライバ１２と、フレームバッファ１３と、サーバ側リモート画面制御部１４とを有する。なお、図１に示す例では、図１に示した機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや表示デバイスなどの機能を有するものとする。
【００３８】
ＯＳ実行制御部１１ａは、ＯＳ（Operating  System）の実行を制御する処理部である。例えば、ＯＳ実行制御部１１ａは、後述の操作情報取得部１０１により取得された操作情報からアプリケーションの起動指示やアプリケーションに対するコマンドを検出する。例えば、ＯＳ実行制御部１１ａは、アプリケーションのアイコン（icon）上でダブルクリックを検出した場合に、そのアイコンに対応するアプリケーションの起動を後述のアプリ実行制御部１１ｂへ指示する。
【００３９】
他の例としては、起動中のアプリケーションの操作画面、例えばウィンドウ（window）上でコマンド（command）の実行を要求する操作を検出した場合に、ＯＳ実行制御部１１ａは、そのコマンドの実行をアプリ実行制御部１１ｂへ指示する。なお、以下では、アプリケーションをアプリと略記する場合がある。
【００４０】
アプリ実行制御部１１ｂは、ＯＳ実行制御部１１ａによる指示に基づき、アプリケーションの実行を制御する処理部である。例えば、アプリ実行制御部１１ｂは、ＯＳ実行制御部１１ａによりアプリの起動が指示された場合や起動中のアプリにコマンドの実行が指示された場合にアプリを動作させる。
【００４１】
アプリ実行制御部１１ｂは、アプリを実行することにより得られた処理結果の表示用イメージ（image）をフレームバッファ１３に描画する要求を、後述のグラフィックドライバ１２へ行う。このようにグラフィックドライバ１２へ描画要求を行う場合には、アプリ実行制御部１１ｂは、表示用イメージとともに表示用イメージの描画位置をグラフィックドライバ１２へ通知する。
【００４２】
なお、アプリ実行制御部１１ｂが実行するアプリは、プリインストールされたものであってもよく、サーバ装置１０の出荷後にインストールされたものであってもかまわない。また、ＪＡＶＡ（登録商標）などのネットワーク環境で動作するアプリであってもよい。
【００４３】
グラフィックドライバ１２は、フレームバッファ１３に対する描画処理を実行する処理部である。例えば、グラフィックドライバ１２は、アプリ実行制御部１１ｂからの描画要求を受け付けた場合に、アプリの処理結果の表示用イメージをアプリにより指定されたフレームバッファ１３上の描画位置へビットマップ形式で描画する。
【００４４】
なお、ここでは、アプリにより描画要求を受け付ける場合を説明したが、ＯＳ実行制御部１１ａからの描画要求を受け付けることもできる。例えば、グラフィックドライバ１２は、ＯＳ実行制御部１１ａからマウスカーソルの描画要求を受け付けた場合に、マウスカーソルの表示用イメージをＯＳにより指定されたフレームバッファ１３上の描画位置へビットマップ形式で描画する。
【００４５】
フレームバッファ１３は、グラフィックドライバ１２により描画されたビットマップデータを記憶する記憶デバイスである。かかるフレームバッファ１３の一態様としては、ＶＲＡＭ（Video  Random  Access  Memory）を始めとするＲＡＭ（Random  Access  Memory)、ＲＯＭ（Read  Only  Memory）やフラッシュメモリ（flash  memory）などの半導体メモリ素子が挙げられる。なお、フレームバッファ１３は、ハードディスク、光ディスクなどの記憶装置を適用してもかまわない。
【００４６】
サーバ側リモート画面制御部１４は、サーバ側リモート画面制御用アプリを通じて、リモート画面制御サービスをクライアント端末２０へ提供する処理部である。このサーバ側リモート画面制御部１４は、図１に示すように、操作情報取得部１０１と、画面生成部１０２と、変更頻度判別部１０３と、高頻度変更領域識別部１０４と、第１のエンコーダ１０５と、第２のエンコーダ１０６と、第１の送信部１０７と、第２の送信部１０８と、移動領域検出部１０９と、変更判定部１１０と、第３の送信部１１１とを有する。
【００４７】
操作情報取得部１０１は、クライアント端末２０から操作情報を取得する処理部である。操作情報の一例としては、マウスの左右のクリックを始め、ダブルクリックやドラッグ、マウスの移動操作を介して得られたマウスカーソルの移動量などが挙げられる。操作情報の他の一例としては、マウスホイールの回転量、キーボードのうち押下されたキーの種別なども挙げられる。
【００４８】
画面生成部１０２は、クライアント端末２０の表示部２２に表示させる画面の画像を生成する処理部である。例えば、画面生成部１０２は、グラフィックドライバ１２によりフレームバッファ１３へビットマップデータが格納される度に、次のような処理を起動する。
【００４９】
画面生成部１０２は、前回のフレーム生成時にクライアント端末２０で表示させていた表示画面の画像と、今回のフレーム生成時にフレームバッファ１３へ書き込まれた表示画面の画像とを比較する。そして、画面生成部１０２は、前回のフレームから変更があった部分の画素をつなぎ合わせた上で矩形に整形した更新矩形の画像を生成し、更新矩形送信用のパケットを生成する。
【００５０】
《画面全体における動画化判定処理》
まず、画面内の領域に対し、動画向けの圧縮方式を用いる領域を高頻度変更領域として特定のアプリケーションに依存せずに識別する処理について説明する。この処理は、後述する移動領域が検出されていない場合の処理である。
【００５１】
変更頻度判別部１０３は、フレームバッファ１３に描画された画像を分割した領域ごとにフレーム間の変更の頻度を判別する処理部である。例えば、変更頻度判別部１０３は、画面生成部１０２により生成された更新矩形を図示しない作業用の内部メモリへ所定の期間にわたって蓄積する。
【００５２】
このとき、変更頻度判別部１０３は、更新矩形の位置および大きさを特定可能な属性情報、例えば更新矩形の左上の頂点の座標と更新矩形の幅および高さとを蓄積する。更新矩形を蓄積させる所定期間は、高頻度変更領域を識別する精度と相関関係があり、期間を長くするほど高頻度変更領域の誤検出が低減される。なお、ここでは、一例として、１秒間にわたって更新矩形の画像を蓄積する場合を想定する。
【００５３】
このとき、変更頻度判別部１０３は、更新矩形の画像を蓄積してから所定の期間が経過した場合に、クライアント端末２０に表示させる表示画面をメッシュ（mesh）状に分割したマップ（map）を用いて、表示画面の変更頻度を判別する。
【００５４】
図２は、表示画面の分割例を説明するための図である。図２に示す符号３０は、変更頻度判別用のマップを示す。図２に示す符号３１は、マップ３０に含まれるメッシュを指す。図２に示す符号３２は、メッシュ３１を形成する画素のブロックに含まれる１画素を指す。図２に示す例では、変更頻度判別部１０３がマップ３０を占める画素のうち８画素×８画素のブロックを１つのメッシュとして分割する場合を想定している。この場合には、１つのメッシュに６４個の画素が含まれることになる。
【００５５】
ここで、変更頻度判別部１０３は、作業用の内部メモリに蓄積した更新矩形の位置および大きさにしたがって更新矩形の画像を変更頻度判別用のマップに順次展開する。そして、変更頻度判別部１０３は、更新矩形をマップに展開する度に、マップ上で更新矩形と重なり合った部分のメッシュの変更回数を累積して加算する。
【００５６】
このとき、変更頻度識別部１０３は、マップ上に展開された更新矩形がメッシュに含まれる画素との間で所定数にわたって重なり合った場合に、そのメッシュの変更回数を１つ加算する。なお、ここでは、更新矩形がメッシュに含まれる画素と１つでも重なり合った場合に、メッシュの変更回数を加算する場合を想定して説明を行う。
【００５７】
図３Ａ〜図３Ｃは、表示画面の変更頻度の判別例を説明するための図である。図３Ａ〜図３Ｃに示す符号４０Ａ、符号４０Ｂ及び符号４０Ｎは変更頻度判別用のマップを示す。図３Ａ及び図３Ｂに示す符号４１Ａ及び符号４１Ｂは更新矩形を示す。ここで、マップ４０Ａのメッシュ内に図示した数字は、更新矩形４１Ａが展開された時点におけるメッシュの変更回数を示す。
【００５８】
また、マップ４０Ｂのメッシュ内に図示した数字は、更新矩形４１Ｂが展開された時点におけるメッシュの変更回数を示す。さらに、マップ４０Ｎのメッシュ内に図示した数字は、作業用の内部メモリに蓄積した更新矩形が全て展開された時点におけるメッシュの変更回数を示す。なお、図３Ａ〜図３Ｃにおいて数字が図示されていないメッシュは変更回数がゼロであるものとする。
【００５９】
図３Ａに示すように、更新矩形４１Ａがマップ４０Ａに展開された場合には、網掛け部分のメッシュが更新矩形４１Ａと重なり合う。このため、変更頻度判別部１０３は、網掛け部分のメッシュの更新回数を１つずつ加算する。この場合には、各メッシュの変更回数はゼロであるため、網掛け部分の変更回数は０から１に加算される。
【００６０】
さらに、図３Ｂに示すように、更新矩形４１Ｂがマップ４０Ｂに展開された場合には、網掛け部分のメッシュが更新矩形４１Ｂと重なり合う。このため、変更頻度判別部１０３は、網掛け部分のメッシュの更新回数を１つずつ加算する。この場合には、各メッシュの変更回数は１であるため、網掛け部分の変更回数は１から２に加算される。このようにして全ての更新矩形がマップに展開された段階では、図３Ｃに示すマップ４０Ｎの結果が得られる。
【００６１】
そして、変更頻度判別部１０３は、作業用の内部メモリに蓄積した更新矩形を全てマップに展開し終えた場合に、所定の期間における変更回数、すなわち変更頻度が閾値を超えるメッシュを取得する。図３Ｃの例で言えば、閾値を「４」としたとき、網掛け部分のメッシュが取得されることになる。
【００６２】
閾値は、その値を高く設定するほど表示画面で動画が表示されている可能性が高い部分を後述の第２のエンコーダ１０６によりエンコードできる。なお、この閾値は、サーバ側リモート画面制御用アプリの開発者が段階的に設定した値をエンドユーザに選択させたり、また、エンドユーザが値を直接設定したりすることができる。
【００６３】
図１の説明に戻り、高頻度変更領域識別部１０４は、クライアント端末２０に表示される表示画面のうち高頻度で変更される領域を高頻度変更領域として識別する処理部である。
【００６４】
高頻度変更領域識別部１０４は、所定の期間内で、変更頻度判別部１０３により変更回数が閾値を超えるメッシュが取得された場合に、隣接するメッシュ同士を連結したメッシュ連結体を矩形に補正する。例えば、高頻度変更領域識別部１０４は、メッシュ連結体に補間する補間領域を導出した上でメッシュ連結体に補間領域を足し合わせることによりメッシュ連結体を矩形に補正する。この補間領域の導出には、メッシュの連結体が最小の補間で矩形に整形される領域を導出するアルゴリズム（algorithm）が適用される。
【００６５】
図４は、メッシュ連結体の補正例を説明するための図である。図４に示す符号５１は補正前のメッシュ連結体を示す。図４に示す符号５２は補間領域を示す。また、図４に示す符号５３は補正後の矩形を示す。図４に示すように、高頻度変更領域識別部１０４は、メッシュ連結体５１に補間領域５２を足し合わせることにより、メッシュ連結体５１を矩形５３に補正する。この段階では、後述の矩形の合成が完了しておらず、矩形５３が未だ高頻度変更領域と確定していないので、補正後の矩形を高頻度変更領域の候補と呼ぶこととする。
【００６６】
高頻度変更領域識別部１０４は、高頻度変更領域の候補が複数存在する場合には、複数の高頻度変更領域の候補の距離が所定の値以下である高頻度変更領域の候補同士を含む矩形に合成する。ここで言う高頻度変更領域の候補の距離とは、補正後の矩形の最短距離を指すものとする。
【００６７】
例えば、高頻度変更領域識別部１０４は、高頻度変更領域の候補を合成するにあたって各候補の間を埋める補間領域を導出した上で高頻度変更領域の候補に補間領域を足し合わせることにより、高頻度変更領域の候補同士を含む矩形に合成する。この補間領域の導出には、高頻度変更領域の候補の間が最小の補間で合成体に整形される領域を導出するアルゴリズム（algorithm）が適用される。
【００６８】
図５は、高頻度変更領域の候補の合成例を説明するための図である。図５に示す符号６１Ａ及び符号６１Ｂは、高頻度変更領域の候補を指す。図５に示す符号６２は補間領域を指す。図５に示す符号６３は、高頻度変更領域の候補６１Ａ及び高頻度変更領域の候補６１Ｂの合成体を指す。
【００６９】
図５に示すように、高頻度変更領域識別部１０４は、高頻度変更領域の候補６１Ａ及び高頻度変更領域の候補６１Ｂに補間領域６２を足し合わせることにより、高頻度変更領域の候補６１Ａ及び高頻度変更領域の候補６１Ｂを含む合成体６３へ合成する。そして、高頻度変更領域識別部１０４は、このようにして得た合成体を高頻度変更領域と識別する。
【００７０】
上述したようにして高頻度変更領域を識別すると、高頻度変更領域識別部１０４は、高頻度変更領域の位置および大きさを特定可能な属性情報を第１の送信部１０７及び第２の送信部１０８に出力する。
【００７１】
これにより、クライアント端末２０で表示される表示画面のビットマップデータのうち、高頻度変更領域に対応する部分をブランク表示させる。その後、高頻度変更領域識別部１０４は、作業用の内部メモリにマッピングされたメッシュの変更回数をクリア（clear）する。なお、高頻度変更領域識別部１０４は、高頻度変更領域の属性情報を作業用の内部メモリに登録する。
【００７２】
図６Ａ〜図６Ｃは、高頻度変更領域の属性情報の通知例を説明するための図である。図６Ａに示す符号７０Ａは、フレームバッファ１３に描画された表示画面の一例を示す。図６Ｂ〜図６Ｃに示す符号７０Ｂ及び符号７０Ｃは、変更頻度判別用のマップを示す。図６Ａに示す符号７１は、ブラウザ（browser）画面を指す。図６Ａに示す符号７２は、動画再生画面を指す。図６Ｂに示す符号７３は、マウスの移動軌跡を示す。図６Ｂに示す符号７４は、アプリによる動画再生領域を示す。
【００７３】
図６Ａに示すように、表示画面７０Ａには、ブラウザ画面７１及び動画再生画面７２が含まれる。この表示画面７０Ａから経時的な変化を追った場合には、図６Ｂに示すように、静止画であるブラウザ画面７１の更新矩形は検出されず、マウスの移動軌跡７３および動画再生領域７４に関する更新矩形が検出される。
【００７４】
このうち、動画の再生領域７４で変更回数が閾値を超えるメッシュ、すなわち図示の網掛け部分が高頻度変更領域識別部１０４により識別されたものとする。この場合には、高頻度変更領域識別部１０４は、図６Ｃに示す網掛け部分の高頻度変更領域の左上の頂点の座標（ｘ，ｙ）と、高頻度変更領域の幅ｗおよび高さｈとを高頻度変更領域の属性情報として第１の送信部１０７及び第２の送信部１０８に通知する。
【００７５】
なお、ここでは、高頻度変更領域の位置を特定する点として左上の頂点の座標を採用する場合を説明したが、他の頂点を採用することとしてもかまわない。また、高頻度変更領域の位置を特定することができる点であれば、頂点以外の任意の点、例えば重心などを採用できる。また、ここでは、画面上の左上を座標軸ＸＹの原点とする場合を説明したが、画面内および画面外の任意の点を原点とすることができる。
【００７６】
また、高頻度変更領域識別部１０４は、画面生成部１０２により更新矩形が生成される度に、その更新矩形が作業用の内部メモリに記憶された高頻度変更領域、すなわち後述の第２の送信部１０８により送信中の動画領域に含まれるか否かを判定する。
【００７７】
このとき、高頻度変更領域識別部１０４は、更新矩形が高頻度変更領域に含まれない場合には、更新矩形の画像および更新矩形のサイズ、位置情報を含む属性情報を第１のエンコーダ１０５に出力する。一方、高頻度変更領域識別部１０４は、更新矩形が高頻度変更領域に含まれる場合には、原則として、後述の第１の送信部１０７に更新矩形の画像を送信させない。なお、更新矩形がＯＳ実行制御部１１ａにより描画されたマウスのものである場合には、マウスに関する更新矩形の画像および属性情報を例外的に送信させることとしてもよい。
【００７８】
また、高頻度変更領域識別部１０４は、フレームバッファ１３にビットマップデータが描画される度に、作業用の内部メモリに高頻度変更領域の属性情報が登録されているか否かを判定する。
【００７９】
そして、高頻度変更領域識別部１０４は、高頻度変更領域の属性情報が登録されている場合に、フレームバッファ１３に描画されたビットマップデータのうち高頻度変更領域に対応する部分のビットマップ画像を切り出した上で後述の第２のエンコーダ１０６に出力する。
【００８０】
これにより、サーバ装置１０は、高頻度変更領域以外の領域については変更があった部分の画像を送信し、高頻度変更領域については動画向けの圧縮を行ったデータを送信することができる。よって、クライアント端末２０へ送信するデータ量を削減し、操作レスポンスを向上させることができる。さらに、クライアント端末２０へ送信するデータ量を削減することができるので、サーバ装置１０及びクライアント端末２０間の伝送遅延を低減し、クライアント端末２０で表示される画像がコマ落ちする可能性も低減できる。
【００８１】
《移動領域内における動画化判定処理》
次に、表示画面内で検出された移動領域内の部分領域に対し、動画向けの圧縮方式を用いる領域を高頻度変更領域として特定のアプリケーションに依存せずに識別する処理について説明する。この処理は、移動領域が検出された場合の処理である。まず、なぜ、移動領域内で変更される部分領域を判定するかについて説明する。
【００８２】
図７は、移動領域の問題点を説明するための図である。図７に示す表示画面８０Ａは、クライアント端末２０でマウス操作を行ってウィンドウを移動した場合を示す画面である。図７に示す表示画面８０Ｂは、サーバ装置１０で、移動領域を検出したときの画面である。表示画面８０Ｂに示すように、移動前のウィンドウ領域８１Ａから移動後のウィンドウ領域８１Ｂにウィンドウが移動している。ウィンドウは移動領域の一例である。
【００８３】
ウィンドウ内に変更される部分がなければ、移動前のウィンドウの左上の座標ｐ１と、移動後のウィンドウの左上の座標ｐ２とを含む移動情報と、ウィンドウの高さ（height）と幅（width）とを含むサイズ情報とをクライアント端末２０に送信すれば、送信するデータ量を削減することができる。また、クライアント端末２０では、移動情報とサイズ情報を受信できれば、フレームバッファ２４の画像データを利用して、移動後のウィンドウを生成できる。
【００８４】
しかし、移動領域が、例えば図７に示すウィンドウ８２である場合、アニメーション広告８３が移動領域内に含まれ、移動領域内の一部が変更されるとき、単純に移動領域をコピーすることができない。
【００８５】
また、上述したように、画面内で動画化判定を行えば、移動前のウィンドウ領域８１Ａと移動後のウィンドウ領域８１Ｂとを含む領域を動画化するため、移動情報を適切に利用することができず、データ量を削減する余地が残る。
【００８６】
そこで、以下では、画面内で移動領域が検出された場合に、上述した動画化判定を停止し、移動領域内での変更判定を行い、移動領域内の変更量に応じて静止画又は動画処理を組み合わせてクライアント端末２０に対して画像に関するデータを送信する。これにより、クライアント端末２０に送信するデータ量をより削減することができる。上記処理を実現するため、サーバ装置１０は、以下の機能を有する。
【００８７】
移動領域検出部１０９は、画像内の移動領域を検出する処理部である。例えば、移動領域検出部１０９は、ＯＳ実行制御部１１ａにより実行される描画命令を監視し、コピーを示す命令（例えばCopyRectコマンド）を検出する。
【００８８】
移動領域検出部１０９は、コピーを示す命令を検出すると、コピーして移動される移動領域を検出する。ここでは、移動前後の移動領域の左上の座標を示す移動情報（ｐ１：移動前の座標、ｐ２：移動後の座標）、サイズ情報（ｈ：height，ｗ：width）が検出される。移動領域検出部１０９は、検出した移動情報及びサイズ情報を変更判定部１１０及び第３の送信部１１１に出力する。
【００８９】
なお、移動領域検出部１０９は、その他の移動領域の検出処理として、フレームバッファ１３に記憶されたフレーム間で画像処理を行ってエッジを抽出し、抽出されたエッジ領域の移動を検出することで、移動領域を検出してもよい。
【００９０】
また、移動領域検出部１０９により移動領域が検出された場合、サーバ側リモート画面制御部１４は、画面全体における動画化判定処理を停止する。
【００９１】
変更判定部１１０は、検出された移動領域内で、移動前後で変更される部分領域があるか否かを判定する処理部である。例えば、変更判定部１１０は、フレームバッファ１３から前回のフレーム生成時にクライアント端末２０で表示させていた表示画面の画像と、今回のフレーム生成時にフレームバッファ１３へ書き込まれた表示画面の画像とを取得する。
【００９２】
変更判定部１１０は、移動情報及びサイズ情報に基づき、移動前の移動領域と、移動後の移動領域とを比較する。そして、変更判定部１１０は、前回のフレームから変更があった部分の画素をつなぎ合わせた上で矩形に整形した部分領域を生成する。
【００９３】
なお、変更判定部１１０は、移動領域内で変更がないと判定した場合、移動発生直前の画面Ｆ'と、前回クライアント端末２０に送信した画面Ｆｉ−１との差分データを送信するよう第１の送信部１０７に指示する。また、変更判定部１１０は、移動情報（ｐ１，ｐ２）及びサイズ情報（ｗ：width，ｈ：height）をクライアント端末２０に送信するよう第３の送信部１１１に指示する。
【００９４】
変更頻度判別部１０３は、移動領域を分割した領域ごとにフレーム間の変更の頻度を判別する処理部である。例えば、変更頻度判別部１０３は、変更判定部１１０により変更があると判定された移動領域を図示しない作業用の内部メモリへ所定の期間にわたって蓄積する。その後の処理は、判別対象を移動領域にすれば、上述した処理と同様である。
【００９５】
例えば、変更頻度判別部１０３は、移動領域の画像を蓄積してから所定の期間が経過した場合に、クライアント端末２０に表示させる移動領域をメッシュ（mesh）状に分割したマップ（map）を用いて、移動領域の変更頻度を判別する。
【００９６】
このとき、変更頻度判別部１０３は、部分領域の位置および大きさを特定可能な属性情報、例えば部分領域の左上の頂点の座標と部分領域の幅および高さとを蓄積する。このとき、部分領域の座標は、移動領域内の相対座標が用いられる。
【００９７】
高頻度変更領域識別部１０４は、クライアント端末２０に表示される移動領域のうち高頻度で変更される部分領域を高頻度変更領域として識別する処理部である。識別対象が、移動領域内の部分領域に変わる以外は、上述した処理と同様である。
【００９８】
例えば、高頻度変更領域識別部１０４は、変更頻度判別部１０３により変更回数が閾値を超えるメッシュが取得された場合に、隣接するメッシュ同士を連結したメッシュ連結体を矩形に補正する。例えば、高頻度変更領域識別部１０４は、メッシュ連結体に補間する補間領域を導出した上でメッシュ連結体に補間領域を足し合わせることによりメッシュ連結体を矩形に補正する。この補間領域の導出には、メッシュの連結体が最小の補間で矩形に整形される領域を導出するアルゴリズム（algorithm）が適用される。
【００９９】
高頻度変更領域識別部１０４は、補間領域から前述したように高頻度変更領域を識別し、高頻度変更領域の頂点（例えば左上）の相対座標、幅及び高さの情報を第２の送信部１０８に出力する。
【０１００】
図８は、移動領域から部分領域を抽出する例を説明するための図である。図８に示す表示画面９０で、ウィンドウ９１Ａがウィンドウ９１Ｂの位置に移動したことを想定する。図８に示す例では、移動領域検出部１０９は、移動されたウィンドウを検出し、移動情報ｐ１、ｐ２）、ウィンドウのサイズ情報（ｗ，ｈ）を検出する。
【０１０１】
次に、変更判定部１１０は、ウィンドウ内で変更される領域があるか否かを判定し、図８に示す例では、部分領域９２で変更があったことを判定する。変更頻度判別部１０３は、部分領域９２の変更回数をカウントする。高頻度変更領域識別部１０４は、所定期間内に変更回数が閾値以上となる高頻度変更領域を識別する。
【０１０２】
高頻度変更領域識別部１０４は、高頻度変更領域として識別した領域の相対座標、サイズ情報を第２の送信部１０８及び第２のエンコーダ１０６に出力する。また、高頻度変更領域識別部１０４により、高頻度変更領域に識別されなかった領域の相対座標、サイズ情報を含む属性情報を第１の送信部１０７、第１のエンコーダ１０５に出力する。
【０１０３】
これにより、表示画面内で移動領域が検出された場合、移動情報を送信することによる送信データ量の削減効果を維持しつつ、移動領域内で変更される部分領域があっても適切に対応することで、ユーザに違和感の無い操作を実現することができる。
【０１０４】
なお、変更判定部１１０は、移動領域内に変更された部分領域が複数あると判定する場合がある。このとき、高頻度変更領域識別部１０４は、移動領域内に複数の高頻度変更領域を識別した場合、これらの全てで動画化処理を行うと、かえってデータ量が多くなってしまう場合がある。
【０１０５】
そこで、高頻度変更領域識別部１０４は、識別された高頻度変更領域の数が所定値以上ある場合、上述したように、移動前後の移動領域を含む領域を高頻度変更領域として識別する。所定値は、例えば「３」とする。
【０１０６】
図９は、移動領域内の動画化判定処理における例外処理を説明するための図である。図９に示すウィンドウ９５は、部分領域９６Ａ〜Ｃ全てで高頻度変更領域であると識別されたとする。
【０１０７】
図９に示すように、移動領域（ウィンドウ９５）内に３つの高頻度変更領域がある場合、比較的小さい高頻度変更領域を複数動画化するよりも、表示画面９７内で、移動前後のウィンドウを含む領域９８を動画化した方が、データ量が削減される可能性がある。このとき、サーバ側リモート画面制御部１４は、停止していた画面全体における動画化判定を再開する。
【０１０８】
これにより、移動領域内で、比較的小さい高頻度変更領域が増えることで、クライアント端末２０に送信するデータ量が増加してしまうことを防止することができる。
【０１０９】
上述したように、表示画面の一部に高頻度変更領域が検出された場合には、表示画面内の高頻度変更領域の動画化が開始される。この場合には、フレームバッファ１３に描画されたビットマップ画像のうち高頻度変更領域に対応する部分のビットマップ画像が後述の第２のエンコーダ１０６に入力される。
【０１１０】
一方、高頻度変更領域に含まれない更新矩形については、動画化が開始される前と同様に、静止画圧縮方式で圧縮される。すなわち、フレームバッファ１３に描画されたビットマップ画像のうち高頻度変更領域に含まれない更新矩形の画像が後述の第１のエンコーダ１０５に入力される。
【０１１１】
また、表示画面内に移動領域が検出された場合には、移動領域の移動情報及びサイズ情報が後述の第３の送信部１１１に入力される。移動領域内に高頻度変更領域が検出された場合には、移動領域内の高頻度変更領域の動画化が開始される。この場合には、フレームバッファ１３に描画されたビットマップ画像のうち、高頻度変更領域に対応する部分のビットマップ画像が後述する第２のエンコーダ１０６に入力される。
【０１１２】
一方、高頻度判定領域と識別されなかった部分領域については、変更前後の部分領域の画像が、後述の第１のエンコーダ１０５に入力される。
【０１１３】
図１の説明に戻り、第１のエンコーダ１０５は、高頻度変更識別部１０４から入力される更新矩形の画像を静止画の圧縮方式でエンコードする処理部である。例えば、第１のエンコーダ１０５は、各更新矩形の画像をＪＰＥＧで圧縮することによって静止画の符号化データへエンコードする。なお、ここでは、静止画の圧縮方式としてＪＰＥＧを例示したが、ＧＩＦ（Graphic  Interchange  Format）やＰＮＧ（Portable  Network  Graphics）などの他の方式を適用することもできる。
【０１１４】
また、第１のエンコーダ１０５は、高頻度変更識別部１０４から入力される移動領域内の部分領域の画像を静止画の圧縮方式でエンコードする。
【０１１５】
第１の送信部１０７は、第１のエンコーダ１０５によってエンコードされた更新矩形又は部分領域の符号化データをクライアント端末２０へ送信する処理部である。例えば、第１の送信部１０７は、更新矩形又は部分領域の符号化データをクライアント端末２０へ送信するにあたってフレームＩＤ及び送信時刻のタイムスタンプ等のヘッダ情報を符号化データに付加した上でクライアント端末２０に送信する。
【０１１６】
このとき、第１の送信部１０７は、第１のエンコーダ１０５によってエンコードされた全ての更新矩形又は部分領域の符号化データにヘッダ情報を付加することもできる。また、第１の送信部１０７は、更新矩形又は部分領域の符号化データのうち少なくとも１つの符号化データにヘッダ情報を付加してもよい。ヘッダ情報には、更新矩形又は部分領域の位置やサイズを示す属性情報を含め、また、高頻度変更領域の属性情報を含めてもよい。この更新矩形又は部分領域を送信する場合の通信プロトコルには、一例としてＴＣＰ／ＩＰプロトコルが採用される。また、通信プロトコルとして、ＵＤＰを採用してもよい。
【０１１７】
第２のエンコーダ１０６は、高頻度変更領域識別部１０４から入力される高頻度変更領域の画像を動画の圧縮方式でエンコードする処理部である。例えば、第２のエンコーダ１０６は、高頻度変更領域の画像をＭＰＥＧで圧縮することによって動画の符号化データへエンコードする。なお、ここでは、動画の圧縮方式としてＭＰＥＧを例示したが、Ｍｏｔｉｏｎ−ＪＰＥＧなどの他の方式を適用することもできる。この高頻度変更領域には、移動領域内の高頻度変更領域も含まれる。
【０１１８】
第２の送信部１０８は、第２のエンコーダ１０６によってエンコードされた動画の符号化データをクライアント端末２０に送信する処理部である。例えば、第２の送信部１０８は、動画の符号化データのうち少なくともいずれか１つの符号化データにヘッダ情報を付加する。ヘッダ情報には、高頻度変更領域の属性情報を含めてもよい。この高頻度変更領域のエンコード画像を送信する場合の通信プロトコルには、一例として、ＲＴＰ（Real-time  Transport  Protocol）を採用できる。
【０１１９】
第３の送信部１１１は、移動領域検出部１０９から入力された移動情報及びサイズ情報をクライアント端末２０に送信する処理部である。例えば、第３の送信部１１１は、移動情報及びサイズ情報にヘッダ情報や移動領域であるか否かのフラグを付加してクライアント端末２０に送信する。
【０１２０】
図１０は、クライアント端末２０に送信されるデータのデータ構造の一例を示す図である。以下では、クライアント端末２０に送信されるデータを送信データとも呼ぶ。図１０に示す例では、送信データには、ヘッダ、移動領域フラグ、動画フラグ、座標、サイズ、画像データの何れか複数又は全てが含まれる。
【０１２１】
ヘッダには、例えば高頻度変更領域や更新矩形などの属性情報が含まれる。移動領域フラグは、例えば「０」は移動領域なし、「１」「２」は移動領域ありを表す。動画フラグは、例えば「０」は静止画、「１」は動画を表す。
【０１２２】
図１０に示すデータＡは、移動領域が検出されていない場合の送信データの一例を示す。データＡは、移動領域が検出されていない場合に、第１の送信部１０７又は第２の送信部１０８から送信される。
【０１２３】
例えば、第１の送信部１０７は、移動領域フラグを「０」にし、動画フラグを「０」にし、静止画の頂点座標及びサイズ、画像データには静止画の符号化データを含めてクライアント端末２０に送信する。また、第２の送信部１０８は、移動領域フラグを「０」にし、動画フラグを「１」にし、動画の頂点座標及びサイズ、画像データには動画の符号化データを含めてクライアント端末２０に送信する。
【０１２４】
図１０に示すデータＢは、第３の送信部１１１から送信される送信データの一例を示す。第３の送信部１１１から送信されるデータＢは、移動領域フラグが「１」であり、移動領域の移動情報（変更前の頂点座標（Ｘ１，Ｙ１），変更後の頂点座標（Ｘ２，Ｙ２）、移動領域のサイズ情報（ｗｉｄｔｈ，ｈｅｉｇｈｔ）が含まれる。
【０１２５】
図１０に示すデータＣは、移動領域が検出された場合の送信データの一例を示す。図１０に示すデータＣは、移動領域が検出された場合に、第１の送信部１０７又は第２の送信部１０８から送信される。
【０１２６】
例えば、第１の送信部１０７は、移動領域フラグを「２」にし、動画フラグを「０」にし、静止画の頂点の相対座標及びサイズ、画像データには静止画の符号化データを含めてクライアント端末２０に送信する。また、第２の送信部１０８は、移動領域フラグを「２」にし、動画フラグを「１」にし、動画の頂点の相対座標及びサイズ、画像データには動画の符号化データを含めてクライアント端末２０に送信する。
【０１２７】
移動領域内の変更される部分領域に対しては、例えば、移動領域の左上を原点とする相対座標で表現される。クライアント端末２０では、部分領域の位置を示すデータを、移動領域の絶対座標に部分領域の相対座標を足して絶対座標に変換する。
【０１２８】
そのため、データの整合性を保つため、第３の送信部１１１により送信されるデータは、第１の送信部１０７及び第２の送信部１０８により送信されるデータよりも、先に送信される。
【０１２９】
なお、ＯＳ実行制御部１１ａ、アプリ実行制御部１１ｂ、グラフィックドライバ１２、サーバ側リモート画面制御部１４には、各種の集積回路や電子回路を採用できる。また、サーバ側リモート画面制御部１４に含まれる機能部の一部を別の集積回路や電子回路とすることもできる。例えば、集積回路としては、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）が挙げられる。また、電子回路としては、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などが挙げられる。
【０１３０】
＜クライアント端末の構成＞
次に、実施例に係るクライアント端末の構成について説明する。図１に示すように、クライアント端末２０は、入力部２１と、表示部２２と、クライアント側リモート画面制御部２３と、フレームバッファ２４とを有する。なお、図１に示す例では、図１に示した機能部以外にも既知のコンピュータが有する各種の機能部、例えば音声出力部などの機能を有するものとする。
【０１３１】
入力部２１は、各種の情報、例えば後述のクライアント側リモート画面制御部２３に対する指示入力を受け付ける入力デバイスであり、一例としては、キーボードやマウス（mouse）などを適用できる。なお、後述の表示部２２も、マウスと協働して、ポインティングデバイス（pointing  device）機能を実現する。
【０１３２】
表示部２２は、各種の情報、例えばサーバ装置１０から送信された表示画面などを表示する表示デバイスであり、一例としては、モニタ（monitor）、ディスプレイ（display）やタッチパネル（touch  panel）などを適用できる。
【０１３３】
フレームバッファ２４は、表示部２２により表示されたビットマップデータを記憶する記憶デバイスである。フレームバッファ２４の一態様としては、ＶＲＡＭを始めとするＲＡＭ、ＲＯＭやフラッシュメモリなどの半導体メモリ素子が挙げられる。なお、フレームバッファ２４は、ハードディスク、光ディスクなどの記憶装置を適用してもかまわない。
【０１３４】
クライアント側リモート画面制御部２３は、クライアント側リモート画面制御用アプリを通じて、サーバ装置１０によるリモート画面制御サービスの提供を受ける処理部である。このクライアント側リモート画面制御部２３は、図１に示すように、操作情報通知部２０１と、第１の受信部２０２と、第１のデコーダ２０３と、第１の表示制御部２０４と、第２の受信部２０５と、第２のデコーダ２０６と、第２の表示制御部２０７と、第３の受信部２０８と、第３の表示制御部２０９とを有する。
【０１３５】
操作情報通知部２０１は、入力部２１による操作情報をサーバ装置１０へ通知する処理部である。例えば、操作情報通知部２０１は、マウスの左右のクリックを始め、ダブルクリックやドラッグ、マウスの移動操作を介して得られたマウスカーソルの移動量などを操作情報として通知する。他の例としては、操作情報通知部２０１は、マウスホイールの回転量、キーボードのうち押下されたキーの種別なども操作情報として通知する。
【０１３６】
第１の受信部２０２は、サーバ装置１０の第１の送信部１０７により送信された更新矩形又は移動領域内の部分領域の符号化データ及び属性情報を受信する処理部である。例えば、第１の受信部２０２は、受信した符号化データを第１のデコーダ２０３に出力する。
【０１３７】
第１のデコーダ２０３は、第１の受信部２０２により受信された更新矩形又は部分領域の符号化データをデコードする処理部である。第１のデコーダ２０３は、サーバ装置１０に搭載されるエンコード方式に適合するデコード方式のデコーダが搭載される。
【０１３８】
第１の表示制御部２０４は、第１のデコーダ２０３によってデコーダされた更新矩形又は部分領域の画像を表示部２２に表示させる処理部である。例えば、第１の表示制御部２０４は、第１の受信部２０２により受信された更新矩形の属性情報に含まれる位置および大きさに対応する表示部２２の画面領域に更新矩形のビットマップ画像を表示させる。
【０１３９】
また、第１の表示制御部２０４は、第１の受信部２０２により高頻度変更領域の属性情報が受信された場合には、次のような処理を行う。すなわち、第１の表示制御部２０４は、高頻度変更領域の属性情報に含まれる高頻度変更領域の位置および大きさに対応する表示部２２の画面領域をビットマップ画像の表示対象外のブランク領域とする。
【０１４０】
また、第１の表示制御部２０４は、第３の受信部２０８がデータを受信していた場合、第１の受信部２０２により受信されたデータは、移動領域内の部分領域であると判断する。よって、第１の表示制御部２０４は、静止画を示す部分領域の相対座標を、第３の受信部２０８で受信された移動後の移動領域の座標に加算して絶対座標に変換し、この絶対座標に部分領域を表示する。
【０１４１】
第２の受信部２０５は、サーバ装置１０の第２の送信部１０８により送信された高頻度変更領域のエンコード画像及び属性情報を受信する処理部である。
【０１４２】
第２のデコーダ２０６は、第２の受信部２０５により受信された高頻度変更領域のエンコード画像をデコードする処理部である。なお、第２のデコーダ２０６には、サーバ装置１０に搭載されるエンコード方式に適合するデコード方式のデコーダが搭載される。
【０１４３】
第２の表示制御部２０７は、第２の受信部２０５によって受信された高頻度変更領域の属性情報に基づき、第２のデコーダ２０６によりデコードされた高頻度変更領域のデコード画像を表示部２２に表示させる処理部である。例えば、第２の表示制御部２０７は、高頻度変更領域の属性情報に含まれる高頻度変更領域の位置および大きさに対応する表示部２２の画面領域に高頻度変更領域のデコード画像を表示させる。高頻度変更領域には、移動領域内の高頻度変更領域も含まれる。
【０１４４】
また、第２の表示制御部２０７は、第３の受信部２０８がデータを受信していた場合、第２の受信部２０５により受信されたデータは、移動領域内の部分領域であると判断する。よって、第２の表示制御部２０７は、動画を示す部分領域の相対座標を、第３の受信部２０８で受信された移動後の移動領域の座標に加算して絶対座標に変換し、この絶対座標に部分領域を表示する。
【０１４５】
第３の受信部２０８は、サーバ装置１０の第３の送信部１１１により送信された移動領域のデータを受信する処理部である。第３の受信部２０８は、受信したデータを第３の表示制御部２０９に出力する。
【０１４６】
第３の表示制御部２０９は、第３の受信部２０８により受信されたデータに含まれる移動情報、サイズ情報に基づき、フレームバッファ２４に記憶される領域を取得し、移動情報が示す移動後の位置に領域を移動させて表示部２２に表示させる処理部である。
【０１４７】
ここで、クライアント端末２０で受信されるデータの順番について説明する。以下では、クライアント端末２０で受信されるデータを受信データとも呼ぶ。図１１は、受信データの順番の一例を示す図である。図１１に示すＡ、Ｂ、Ｃは、図１０に示すＡ、Ｂ、Ｃのデータに対応する。
【０１４８】
（１）移動領域がない場合で画面変更がある場合
クライアント端末２０は、サーバ装置１０で移動領域が検出されなかった場合で画面変更がある場合、データＡを連続して受信する。
【０１４９】
（２）移動領域があり、かつ移動領域内で変更がない場合
クライアント端末２０は、サーバ装置１０で移動領域が検出され、移動領域内で変更がないと判定された場合、第３の送信部１１１により送信されたデータＢを受信し、次に、第１の送信部１０７により送信されたデータＡを受信する。データＡには、移動領域の移動で、新たに画面に現れた部分の画像を示すデータが含まれる。
【０１５０】
（３）移動領域があり、かつ移動領域内で変更がある場合
クライアント端末２０は、サーバ装置１０で移動領域が検出され、移動領域内で変更があると判定された場合、（２）同様、第３の受信部１１１により送信されたデータＢを受信し、次に、第１の送信部１０７により送信されたデータＡを受信する。その後に、クライアント端末２０は、第１の送信部１０７又は第２の送信部１０８により、移動領域内の部分領域に対する画像データが含まれるデータＣを受信する。
【０１５１】
データＣ内の座標は相対座標であるが、クライアント装置２０は、データＢに含まれる移動領域の座標に相対座標を加算することで、部分領域の座標を絶対座標に変換することができる。
【０１５２】
これにより、クライアント端末２０は、データの整合性を保つ順番でデータを受信することができる。
【０１５３】
なお、クライアント側リモート画面制御部２３には、各種の集積回路や電子回路を採用できる。また、クライアント側リモート画面制御部２３に含まれる機能部の一部を別の集積回路や電子回路とすることもできる。例えば、集積回路としては、ＡＳＩＣやＦＰＧＡが挙げられる。また、電子回路としては、ＣＰＵやＭＰＵなどが挙げられる。
【０１５４】
＜動作＞
次に、シンクライアントシステム１に用いられる各装置の動作について説明する。まず、サーバ装置１０の動作について説明する。
【０１５５】
《サーバ装置の処理》
図１２Ａ及び図１２Ｂは、サーバ装置１０の情報処理の一例を示すフローチャートである。図１２に示す例では、移動領域の検出は、描画コマンドを用いて行われる。
【０１５６】
ステップＳ１０１で、移動領域検出部１０９は、描画コマンドを監視して、表示画面中の領域の移動を検出する。例えば、移動領域検出部１０９は、ＣｏｐｙＲｅｃｔコマンドを検出することで領域の移動（例えばコピー）を検出する。
【０１５７】
ステップＳ１０２で、移動領域検出部１０９は、移動領域が検出された否かを判定する。移動領域が検出された場合（ステップＳ１０２−ＹＥＳ）ステップＳ１０８に進み、移動領域が検出されない場合（ステップＳ１０２−ＮＯ）ステップＳ１０３に進む。
【０１５８】
ステップＳ１０３で、変更頻度判別部１０３は、画面変更があるか否かを判定する。ここでは、変更頻度判別部１０３は、画面全体での変更を判定する。画面変更がある場合（ステップＳ１０３−ＹＥＳ）ステップＳ１０４に進み、画面変更がない場合（ステップＳ１０４−ＮＯ）ステップＳ１０７に進む。
【０１５９】
ステップＳ１０４で、高頻度変更領域識別部１０４は、高頻度の変更領域があるか否かを判定する。高頻度の変更領域がある場合（ステップＳ１０４−ＹＥＳ）ステップＳ１０５に進み、高頻度の変更領域がない場合（ステップＳ１０４−ＮＯ）ステップＳ１０６に進む。
【０１６０】
ステップＳ１０５で、第２のエンコーダ１０６は、高頻度変更領域を動画化し、動画圧縮を行う。第２の送信部１０８は、動画圧縮されたデータをクライアント端末２０に送信する。
【０１６１】
ステップＳ１０６で、第１のエンコーダ１０７は、変更領域に対し、静止画の圧縮処理を行う。第１の送信部１０７は、静止画圧縮されたデータをクライアント端末２０に送信する。
【０１６２】
ステップＳ１０７で、サーバ側リモード画面制御部１４は、所定時間待機し、ステップＳ１０１に戻る。
【０１６３】
ステップＳ１０８で、サーバ側リモート画面制御部１４は、移動領域が発生する直前の動画化領域があれば、動画化処理を停止（無効化）する。
【０１６４】
ステップＳ１０９で、画面生成部１０２は、移動領域が発生する直前の表示画面と、前回クライアント端末２０に送信した表示画面の内容を比較する。
【０１６５】
ステップＳ１１０で、画面生成部１０２は、差分があるか否かを判定する。差分がある場合（ステップＳ１１０−ＹＥＳ）ステップＳ１１１に進み、差分がない場合（ステップＳ１１０−ＮＯ）ステップＳ１１２に進む。
【０１６６】
ステップＳ１１１で、例えば、第１の送信部１０７は、移動領域発生直前の未送信の変更差分をクライアント端末２０に送信する。これにより、クライアント端末２０で表示される表示画面を、移動領域が移動する前の最新の状態にすることができる。
【０１６７】
ステップＳ１１２で、第３の送信部１１１は、移動情報及びサイズ情報をクライアント端末２０に送信する。
【０１６８】
ステップＳ１１３で、変更頻度判別部１０３は、画面変更があるか否かを判定する。ここでは、変更頻度判別部１０３は、画面全体の画面変更を判別する。画面変更がある場合（ステップＳ１１３−ＹＥＳ）ステップＳ１１４に進み、画面変更がない場合（ステップＳ１１３−ＮＯ）ステップＳ１０７に進む。
【０１６９】
ステップＳ１１４で、第１のエンコーダ１０７は、変更領域に対し、静止画の圧縮処理を行う。第１の送信部１０７は、静止画圧縮されたデータをクライアント端末２０に送信する。これにより、移動領域の移動後に新たに現れる領域の画像データを送信することができる。
【０１７０】
ステップＳ１１５で、変更判定部１１０は、移動領域の座標を起点にし、移動前後での各移動領域間で画面変更を判定する。
【０１７１】
ステップＳ１１６で、変更判定部１１０は、移動領域内で変更される部分があるかを判定する。移動領域間で画面変更がある場合（ステップＳ１１６−ＹＥＳ）ステップＳ１１７に進み、移動領域間で画面変更がない場合（ステップＳ１１６−ＮＯ）ステップＳ１０７に進む。
【０１７２】
ステップＳ１１７で、高頻度変更領域識別部１０４は、移動領域内で高頻度の変更領域を検出する。
【０１７３】
ステップＳ１１８で、高頻度変更領域識別部１０４は、高頻度の画面変更があるか否かを判定する。高頻度変更領域がある場合（ステップＳ１１８−ＹＥＳ）ステップＳ１１９に進み、高頻度変更領域がない場合（ステップＳ１１８−ＮＯ）ステップＳ１２１に進む。
【０１７４】
ステップＳ１１９で、高頻度変更領域識別部１０４は、移動領域の原点（例えば左上の点）からの相対位置（座標）を取得する。
【０１７５】
ステップＳ１２０で、第２のエンコーダ１０６は、移動領域内の高頻度変更領域を動画化し、動画圧縮を行う。第２の送信部１０８は、動画圧縮されたデータをクライアント端末２０に送信する。
【０１７６】
ステップＳ１２１で、高頻度変更領域識別部１０４は、移動領域の原点からの相対位置を取得する。
【０１７７】
ステップＳ１２２で、第１のエンコーダ１０７は、移動領域内の変更領域に対し、静止画の圧縮処理を行う。第１の送信部１０７は、静止画圧縮されたデータをクライアント端末２０に送信する。ステップＳ１２０、ステップＳ１２２の処理後はステップＳ１０７に進む。
【０１７８】
なお、ステップＳ１１８で識別される高頻度変更領域が所定値以上であれば、例外処理として、ステップＳ１０３に進むようにしてもよい。これは、移動領域内で比較的小さな部分領域が動画化され、データ量が増加することを防止するためである。
【０１７９】
《クライアント端末の処理》
図１３は、クライアント端末２０の情報処理の一例を示すフローチャートである。図１３に示すステップＳ２０１で、各受信部は、サーバ装置１０からデータを受信する。
【０１８０】
ステップＳ２０２で、クライアント側リモート画面制御部２３は、第３の受信部２０８で移動情報を含むデータを受信したか否かを判定する。データを受信した場合（ステップＳ２０２−ＹＥＳ）ステップＳ２０７に進み、データを受信していない場合（ステップＳ２０２−ＮＯ）ステップＳ２０３に進む。
【０１８１】
ステップＳ２０３で、クライアント側リモート画面制御部２３は、変更された画像データを含むデータ（図１０に示すデータＡ）を受信したか否かを判定する。以下では、変更された画像データを変更画像データとも呼ぶ。
【０１８２】
ステップＳ２０４で、クライアント側リモート画面制御部２３は、変更画像データが、動画データであるか否かを判定する。これは、動画フラグにより判定可能である。動画データである場合（ステップＳ２０４−ＹＥＳ）ステップＳ２０５に進み、動画データでない場合（ステップＳ２０４−ＮＯ）ステップＳ２０６に進む。
【０１８３】
ステップＳ２０５で、第２のデコーダ２０６は、受信された動画データを復号する。第２の表示制御部２０７は、復号された動画データを属性情報に含まれる所定位置に描画し、表示部２２に表示する。
【０１８４】
ステップＳ２０６で、第１のデコーダ２０３は、受信された静止画データを復号する。第１の表示制御部２０４は、復号された静止画データを属性情報に含まれる所定位置に描画し、表示部２２に表示する。
【０１８５】
ステップＳ２０７で、第３の表示制御部２０９は、移動情報及びサイズ情報により指定された領域を、フレームバッファ２４から取得し、この領域を移動情報により指定される指定位置に移動して描画し、表示部２２に表示する。
【０１８６】
ステップＳ２０８で、クライアント側リモート画面制御部２３は、移動領域内で変更画像データがあるか否かを判定する。これは、例えばデータＢの後にデータＣを受信したか否かで判定可能である。移動領域内に変更画像データがある場合（ステップＳ２０８−ＹＥＳ）ステップＳ２０９に進み、移動領域内に変更画像データがない場合（ステップＳ２０８−ＮＯ）ステップＳ２０３に進む。
【０１８７】
ステップＳ２０９で、クライアント側リモート画面制御部２３は、移動領域内の部分領域を示す描画位置を、表示画面の絶対値に変換する。例えば、クライアント側リモート画面制御部２３は、移動領域の頂点の座標に、部分領域の頂点を示す相対位置を足すことで、画面全体の絶対位置に変換することができる。
【０１８８】
ステップＳ２１０で、クライアント側リモート画面制御部２３は、変更画像データが、動画データであるか否かを判定する。これは、動画フラグにより判定可能である。動画データである場合（ステップＳ２１０−ＹＥＳ）ステップＳ２１１に進み、動画データでない場合（ステップＳ２１０−ＮＯ）ステップＳ２１２に進む。
【０１８９】
ステップＳ２１１で、第２のデコーダ２０６は、受信された移動領域内の動画データを復号する。第２の表示制御部２０７は、復号された動画データを、変換された絶対位置に描画し、表示部２２に表示する。
【０１９０】
ステップＳ２１２で、第１のデコーダ２０３は、受信された移動領域内の静止画データを復号する。第１の表示制御部２０４は、復号された静止画データを変換された絶対位置に描画し、表示部２２に表示する。
【０１９１】
ステップＳ２１３で、入力部２１は、ユーザ入力があるか否かを判定する。ユーザ入力がある場合（ステップＳ２１３−ＹＥＳ）ステップＳ２１４に進み、ユーザ入力がない場合（ステップＳ２１３−ＮＯ）ステップＳ２０１に戻る。
【０１９２】
ステップＳ２１４で、操作情報通知部２０１は、ユーザ入力された入力データをサーバ装置１０に送信する。ステップＳ２１４の処理後、ステップＳ２０１に戻る。
【０１９３】
以上、実施例によれば、画面の更新が頻繁に行われる領域に対しては動画化することにより、クライアント端末に送信するデータ量を削減することができる。また、実施例によれば、例えばウィンドウ移動を検出した場合、ウィンドウ内で変更される部分があっても、変更の程度に応じてクライアント端末に送信するデータを適切に生成することで、送信データ量を削減することができる。
【０１９４】
［変形例］
図１４は、情報処理装置３００の構成の一例を示すブロック図である。情報処理装置３００は、各実施例で説明したサーバ装置１０及びクライアント端末２０の一例である。図１４に示すように、情報処理装置３００は、制御部３０１、主記憶部３０２、補助記憶部３０３、ドライブ装置３０４、ネットワークＩ／Ｆ部３０６、入力部３０７、表示部３０８を含む。これら各構成は、バスを介して相互にデータ送受信可能に接続されている。
【０１９５】
制御部３０１は、コンピュータの中で、各装置の制御やデータの演算、加工を行うＣＰＵである。また、制御部３０１は、主記憶部３０２や補助記憶部３０３に記憶されたプログラムを実行する演算装置である。このプログラムは、上記実施例で図１２及び図１３で説明した情報処理を実行するプログラムである。
【０１９６】
制御部３０１は、このプログラムを実行することで、実施例で説明した情報処理を実現できる。
【０１９７】
主記憶部３０２は、ＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）などであり、制御部３０１が実行する基本ソフトウェアであるＯＳやアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保存する記憶装置である。
【０１９８】
補助記憶部３０３は、ＨＤＤ（Hard Disk Drive）などであり、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。
【０１９９】
ドライブ装置３０４は、記録媒体３０５、例えばフレキシブルディスクからプログラムを読み出し、記憶装置にインストールする。
【０２００】
また、記録媒体３０５に、所定のプログラムを格納し、この記録媒体３０５に格納されたプログラムはドライブ装置３０４を介して情報処理装置３００にインストールされる。インストールされた所定のプログラムは、情報処理装置３００により実行可能となる。
【０２０１】
ネットワークＩ／Ｆ部３０６は、有線及び／又は無線回線などのデータ伝送路により構築されたＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）などのネットワークを介して接続された通信機能を有する周辺機器と情報処理装置３００とのインターフェースである。
【０２０２】
入力部３０７は、カーソルキー、数字入力及び各種機能キー等を備えたキーボード、表示部３０８の表示画面上でキーの選択等を行うためのマウスやスライスパット等を有する。また、入力部３０７は、ユーザが制御部３０１に操作指示を与えたり、データを入力したりするためのユーザインターフェースである。
【０２０３】
表示部３０８は、ＣＲＴ（Cathode Ray Tube）やＬＣＤ（Liquid Crystal Display）等により構成され、制御部３０１から入力される表示データに応じた表示が行われる。
【０２０４】
このように、上述した実施例で説明した情報処理は、コンピュータに実行させるためのプログラムとして実現されてもよい。このプログラムをサーバ等からインストールしてコンピュータに実行させることで、上述した情報処理を実現することができる。
【０２０５】
また、このプログラムを記録媒体３０５に記録し、このプログラムが記録された記録媒体３０５をコンピュータや携帯端末に読み取らせて、上述した情報処理を実現させることも可能である。なお、記録媒体３０５は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的，電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。記録媒体には、搬送波は含まれない。また、上述した実施例で説明した情報処理は、１つ又は複数の集積回路に実装してもよい。
【０２０６】
また、今後、モバイル環境からもシンクライアントシステムを使ってオフィス業務を利用するニーズが広がってくる。このニーズに応えるためには、動画の扱いに限らず、リモート画面制御の性能改善が求められる。上記実施例は、モバイル環境においてもシンクライアントシステムを適用可能にするものである。
【０２０７】
以上、実施例について詳述したが、上記実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、上記変形例以外にも種々の変形及び変更が可能である。
【０２０８】
なお、以上の各実施例に関し、さらに以下の付記を開示する。
（付記１）
ネットワークを介して接続された端末に、該端末で表示される画像を生成して、該画像に関するデータを送信する情報処理装置であって、
画像内の移動領域を検出する移動領域検出部と、
前記検出された移動領域内に、移動前後で変更される部分領域があるか否かを判定する判定部と、
前記変更される部分領域がある場合、該部分領域の変更回数が所定期間内で閾値以上となる高頻度の変更領域を識別する識別部と、
前記高頻度の変更領域であると識別されなかった部分領域の画像データを前記端末に送信する第１送信部と、
識別された前記高頻度の変更領域が動画圧縮されたデータを前記端末に送信する第２送信部と、
前記移動領域の移動情報及び前記移動領域のサイズ情報を前記端末に送信する第３送信部と、
を備える情報処理装置。
（付記２）
前記判定部により、複数の部分領域があると判定された場合、
前記識別部は、
識別された前記高頻度の変更領域の数が所定値以上であるとき、移動前後の前記移動領域を含む領域を前記高頻度の変更領域であると識別する付記１記載の情報処理装置。
（付記３）
前記第３送信部により送信されるデータは、前記第１送信部及び前記第２送信部により送信されるデータよりも先に送信される付記１又は２記載の情報処理装置。
（付記４）
ネットワークを介して接続された端末に、該端末で表示される画像を生成して、該画像に関するデータを送信する情報処理装置が実行する情報処理方法であって、
画像内の移動領域を検出し、
前記検出された移動領域内に、移動前後で変更される部分領域があるか否かを判定し、
前記変更される部分領域がある場合、該部分領域の変更回数が所定期間内で閾値以上となる高頻度の変更領域を識別し、
前記移動領域の移動情報及び前記移動領域のサイズ情報を前記端末に送信し、
前記高頻度の変更領域であると識別されなかった部分領域の画像データを前記端末に送信し、
識別された前記高頻度の変更領域が動画圧縮されたデータを前記端末に送信する
処理を有する情報処理方法。
（付記５）
前記判定する処理で、複数の部分領域があると判定された場合、
前記識別する処理は、
識別された前記高頻度の変更領域の数が所定値以上であるとき、移動前後の前記移動領域を含む領域を前記高頻度の変更領域であると識別する付記４記載の情報処理方法。
（付記６）
ネットワークを介して接続された端末に、該端末で表示される画像を生成して、該画像に関するデータを送信する情報処理装置に実行させるためのプログラムであって、
画像内の移動領域を検出し、
前記検出された移動領域内に、移動前後で変更される部分領域があるか否かを判定し、
前記変更される部分領域がある場合、該部分領域の変更回数が所定期間内で閾値以上となる高頻度の変更領域を識別し、
前記移動領域の移動情報及び前記移動領域のサイズ情報を含む移動情報を前記端末に送信し、
前記高頻度の変更領域であると識別されなかった部分領域の画像データを前記端末に送信し、
識別された前記高頻度の変更領域が動画圧縮されたデータを前記端末に送信する
処理を情報処理装置に実行させるためのプログラム。
【符号の説明】
【０２０９】
１０  サーバ装置
２０  クライアント端末
１１ａ  ＯＳ実行制御部
１１ｂ  アプリ実行制御部
１２  グラフィックドライバ
１３  フレームバッファ
１４  サーバ側画面制御部
２１  入力部
２２  表示部
２３  クライアント側リモート画面制御部
２４  フレームバッファ
１０１  操作情報取得部
１０２  画面生成部
１０３  変更頻度識別部
１０４  高頻度変更領域識別部
１０５  第１のエンコーダ
１０６  第２のエンコーダ
１０７  第１の送信部
１０８  第２の送信部
１０９  移動領域検出部
１１０  変更判定部
１１１  第３の送信部
２０１  操作情報通知部
２０２  第１の受信部
２０３  第１のエンコーダ
２０４  第１の表示制御部
２０５  第２の受信部
２０６  第２のデコーダ
２０７  第２の表示制御部
２０８  第３の受信部
２０９  第３の表示制御部
【図１】
0005821610.tif 000002
【図２】
0005821610.tif 000003
【図３Ａ】
0005821610.tif 000004
【図３Ｂ】
0005821610.tif 000005
【図３Ｃ】
0005821610.tif 000006
【図４】
0005821610.tif 000007
【図５】
0005821610.tif 000008
【図６Ａ】
0005821610.tif 000009
【図６Ｂ】
0005821610.tif 000010
【図６Ｃ】
0005821610.tif 000011
【図７】
0005821610.tif 000012
【図８】
0005821610.tif 000013
【図９】
0005821610.tif 000014
【図１０】
0005821610.tif 000015
【図１１】
0005821610.tif 000016
【図１２Ａ】
0005821610.tif 000017
【図１２Ｂ】
0005821610.tif 000018
【図１３】
0005821610.tif 000019
【図１４】
0005821610.tif 000020