(57)【要約】【課題】２つの端末装置間でのデータ同期通信の最適化を可能とする。【解決手段】情報処理装置は、分割部により第１のデータを小領域毎の変更情報に基づいた分割位置で分割する。算出部により、第１のデータから分割位置で分割された分割領域毎に第１の特徴量を算出する。変更処理部により、第１の実施形態の情報処理装置は、第１の特徴量と、第２のデータから分割領域毎に算出された第２の特徴量とを比較した結果に基づき更新処理を行う。【選択図】図１５
2017117339.tif 000002
【特許請求の範囲】
【請求項１】
第１のデータを小領域毎の変更情報に基づいた分割位置で分割する分割部と、
前記第１のデータから前記分割位置で分割された分割領域毎に第１の特徴量を算出する算出部と、
前記第１の特徴量と、第２のデータから前記分割領域毎に算出された第２の特徴量と、を比較した結果に基づき更新処理を行う更新処理部と
を備える情報処理装置。
【請求項２】
前記変更情報は、前記小領域毎の変更頻度を含み、
前記分割部は、
前記第１のデータを、前記分割領域それぞれの前記変更頻度が閾値以下になる前記分割位置で分割する
請求項１に記載の情報処理装置。
【請求項３】
前記変更情報は、該変更情報に示される変更を発生させたプログラムに応じて予め定められる前記変更頻度をさらに含む
請求項２に記載の情報処理装置。
【請求項４】
前記更新処理部は、
前記第１のデータの、前記第１の特徴量と前記第２の特徴量とが異なる前記分割領域のデータを、該分割領域に対応する前記第２のデータの分割領域のデータにより更新する更新処理を行う
請求項１乃至請求項３の何れか１項に記載の情報処理装置。
【請求項５】
前記更新処理部は、
前記第２のデータの、前記第１の特徴量と前記第２の特徴量とが異なる前記分割領域のデータを、該分割領域に対応する前記第１のデータの分割領域のデータにより更新する更新処理を行う
請求項１乃至請求項３の何れか１項に記載の情報処理装置。
【請求項６】
前記第１の特徴量および前記第２の特徴量は、データのハッシュ値である
請求項１乃至請求項５の何れか１項に記載の情報処理装置。
【請求項７】
前記第１のデータおよび前記第２のデータは、画面を表示するためのデータである
請求項１乃至請求項６の何れか１項に記載の情報処理装置。
【請求項８】
第１のデータを小領域毎の変更情報に基づいた分割位置で分割する分割ステップと、
前記第１のデータから前記分割位置で分割された分割領域毎に第１の特徴量を算出する算出ステップと、
前記第１の特徴量と、第２のデータから前記分割領域毎に算出された第２の特徴量と、を比較した結果に基づき更新処理を行う更新処理ステップと
をコンピュータに実行させるための情報処理プログラム。
【請求項９】
マスタ端末とスレーブ端末とを含む情報処理システムであって、
前記スレーブ端末は、
前記マスタ端末から取得した原データを複製データとして記憶する第１の記憶部と、
前記複製データを小領域毎の変更情報に基づいた分割位置で分割する第１の分割部と、
前記複製データから前記分割位置で分割された分割領域毎に第１の特徴量を算出し、該分割位置を示す情報と該第１の特徴量とを前記マスタ端末に送信する第１の算出部と、
前記マスタ端末から受信した更新データを用いて前記第１の記憶部に記憶される前記複製データを更新し、該更新データに基づき前記変更情報を生成する更新部と
を備え、
前記マスタ端末は、
前記原データを記憶する第２の記憶部と、
前記第２の記憶部に記憶される前記原データを、前記スレーブ端末から受信した前記分割位置を示す情報に従い分割した分割領域毎に第２の特徴量を算出する第２の算出部と、
前記スレーブ端末から受信した前記第１の特徴量と、前記第２の算出部で算出した前記第２の特徴量とを前記分割領域毎に比較し、該第１の特徴量と該第２の特徴量とが異なる該分割領域を更新領域として取得する比較部と、
前記第２の記憶部に記憶される前記原データの前記更新領域に対応する部分を前記更新データとして取得し、前記スレーブ端末に送信する取得部と
を備える情報処理システム。
【請求項１０】
マスタ端末とスレーブ端末とを含む情報処理システムであって、
前記マスタ端末は、
原データを記憶する第１の記憶部と、
前記原データを小領域毎の変更情報に基づいた分割位置で分割し、該分割位置を示す情報を前記スレーブ端末に送信する第１の分割部と、
前記原データを前記分割位置で分割した分割領域毎に第１の特徴量を算出する第１の算出部と、
前記第１の特徴量と、前記スレーブ端末から受信した前記分割領域毎の第２の特徴量とを前記分割領域毎に比較し、該第１の特徴量と該第２の特徴量とが異なる該分割領域を更新領域として取得する比較部と、
前記第１の記憶部に記憶される前記原データの前記更新領域に対応する部分を前記更新データとして取得して、取得した該更新データを前記スレーブ端末に送信する取得部と
を備え、
前記スレーブ端末は、
前記マスタ端末から取得した原データを複製データとして記憶する第２の記憶部と、
前記マスタ端末から送信された前記分割位置を示す情報に従い前記複製データを分割する第２の分割部と、
前記複製データから前記分割位置を示す情報に従い分割された分割領域毎に第２の特徴量を算出し、算出した該第２の特徴量と、該第２の特徴量に対応する該分割位置を示す情報とを前記マスタ端末に送信する第２の算出部と、
前記マスタ端末から送信された前記更新データを用いて前記第２の記憶部に記憶される前記複製データを更新する更新部と
を備える情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理プログラムおよび情報処理システムに関する。
【背景技術】
【０００２】
２つの端末装置間でデータの同期を行う同期システムの一つとして、２つの端末装置間でデータ、例えばあるディレクトリ以下に存在するファイル群全体を同期する同期システムが知られている。例えば、２つの端末間で各ファイルのチャンクのハッシュ値を比較し、ハッシュ値に相違がある場合、ファイルの部分とマージの手順とを送受信してファイルの内容を同期する。この場合、チャンク単位で差異を検出して送受信を行うため、ネットワークトラフィックを削減することが可能である。
【先行技術文献】
【特許文献】
【０００３】
【非特許文献１】ｒｓｙｎｃ、［平成２７年１２月１４日検索］、インターネット（ＵＲＬ：https://rsync.samba.org/）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した方法では、データが変更された領域の大きさに関わらず固定されたチャンク単位で同期を行うため、同期の効率を向上できない場合がある。例えば、チャンクのサイズに対して変更された領域のサイズが小さい場合、実際に送受信されるデータのサイズが、本来同期すべきデータのサイズに比べて大きくなってしまう。これに対して、チャンクのサイズを小さくすることも考えられるが、この場合、送受信するデータの数が多くなってしまう可能性がある。
【０００５】
本発明が解決する課題は、２つの端末装置間でのデータ同期通信の最適化が可能な情報処理装置、情報処理プログラムおよび情報処理システムを提供することにある。
【課題を解決するための手段】
【０００６】
第１の実施形態の情報処理装置は、第１のデータを小領域毎の変更情報に基づいた分割位置で分割し、第１のデータから分割位置で分割された分割領域毎に第１の特徴量を算出する。情報処理装置は、第１の特徴量と、第２のデータから分割領域毎に算出された第２の特徴量とを比較した結果に基づき更新処理を行う。
【図面の簡単な説明】
【０００７】
【図１】図１は、第１の実施形態に係る情報処理システムの一例の構成を示す図である。
【図２】図２は、第１の実施形態に適用可能なマスタ端末およびスレーブ端末に共通のハードウェア構成の一例を示すブロック図である。
【図３】図３は、第１の実施形態に係るマスタ端末の機能を説明するための一例の機能ブロック図である。
【図４】図４は、第１の実施形態に係るスレーブ端末の機能を説明するための機能ブロック図である。
【図５】図５は、第１の実施形態に係る処理を概略的に示す一例のシーケンス図である。
【図６】図６は、既存技術による画面データの反映処理を示す一例のシーケンス図である。
【図７】図７は、第１の実施形態に係るセル更新数のカウント処理について説明するための図である。
【図８】図８は、第１の実施形態に係るセル更新数のカウント処理について説明するための図である。
【図９】図９は、第１の実施形態に係るマスタ端末の処理を示す一例のフローチャートである。
【図１０】図１０は、第１の実施形態に係るスレーブ端末の処理を示す一例のフローチャートである。
【図１１】図１１は、第１の実施形態に係る分割処理を概略的に示す一例のフローチャートである。
【図１２】図１２は、第１の実施形態に係る分割処理をより具体的に説明するための図である。
【図１３】図１３は、第１の実施形態に係る、各分割領域に対して特徴量を算出した例を示す図である。
【図１４】図１４は、第１の実施形態に係る第１の特徴量リストの例を示す図である。
【図１５】図１５は、第１の実施形態に係る比較処理について説明するための図である。
【図１６】図１６は、第２の実施形態に係るマスタ端末の機能を説明するための一例の機能ブロック図である。
【図１７】図１７は、第２の実施形態に係るスレーブ端末の機能を説明するための一例の機能ブロック図である。
【図１８】図１８は、第２の実施形態に係る、アプリケーションプログラムのウィンドウに対する予測更新数の設定例を示す図である。
【図１９】図１９は、アプリケーションプログラムと予測更新数との対応関係の例を示す図である。
【図２０】図２０は、第２の実施形態に係るマスタ端末の処理を示す一例のフローチャートである。
【図２１】図２１は、第２の実施形態に係るスレーブ端末の処理を示す一例のフローチャートである。
【図２２】図２２は、第３の実施形態に係る画面データおよび複製データの例を示す図である。
【発明を実施するための形態】
【０００８】
以下、実施形態に係る情報処理装置、情報処理プログラムおよび情報処理システムについて説明する。
【０００９】
（第１の実施形態）
図１は、第１の実施形態に係る情報処理システムの一例の構成を示す。第１の実施形態に係る情報処理システムは、それぞれ情報処理装置としてのマスタ端末１０およびスレーブ端末２０を含み、これらマスタ端末１０とスレーブ端末２０とが、ネットワーク３０により互いに通信可能に接続されている。ネットワーク３０は、ＩＥＥＥ(The  Institute  of  Electrical  and  Electronics  Engineers)８０２．３で規定される有線通信プロトコルや、ＩＥＥＥ８０２．１１で規定される無線通信プロトコル、あるいは、その他のプロトコルに準拠したネットワークであり、インターネットやＬＡＮ(Local  Area  Network)、専用回線などの通信回線である。
【００１０】
このような構成において、マスタ端末１０は、画面表示を行っている画像データを、ネットワーク３０を介してスレーブ端末２０に転送し、マスタ端末１０上での動作をスレーブ端末２０のディスプレイ上に提示することができる。これにより、例えばスレーブ端末２０からマスタ端末１０を操作することが可能となる。
【００１１】
一例として、スレーブ端末２０上でマウスといったポインティングデバイスを操作すると、座標情報がスレーブ端末２０からマスタ端末１０に送信される。マスタ端末１０は、座標情報を受信し、受信した座標情報に従いアプリケーションプログラムの起動やウィンドウの移動などを行う。マスタ端末１０は、所定のタイミングでスレーブ端末２０に画面情報を送信することで、スレーブ端末２０では、マスタ端末１０における動作に対応した画面を表示することができる。
【００１２】
これに限らず、例えばマスタ端末１０に対してなされた操作に応じた画面情報をスレーブ端末２０に送信する構成であってもよい。
【００１３】
図２は、第１の実施形態に適用可能なマスタ端末１０およびスレーブ端末２０に共通のハードウェア構成の一例を示す。ここでは、説明のため、図２がマスタ端末１０のハードウェア構成を示しているものとする。図２において、マスタ端末１０は、ＣＰＵ(Central  Processing  Unit)１０００と、ＲＯＭ(Read  Only  Memory)１００１と、ＲＡＭ(Random  Access  Memory)１００２と、グラフィクスＩ／Ｆ１００３と、フレームメモリ１００４と、ストレージ１００６と、入力デバイス１００７と、データＩ／Ｆ１００８と、通信Ｉ／Ｆ１００９とを含み、これら各部がバス１０１０により互いに通信可能に接続されている。また、グラフィクスＩ／Ｆ１００３に対して表示デバイス１００５が接続される。
【００１４】
ストレージ１００６は、ハードディスクドライブや、フラッシュメモリといった不揮発性メモリであって、ＣＰＵ１０００を動作させるためのプログラムや、各種のデータが記憶される。ＲＯＭ１００１は、例えばマスタ端末１０を起動させるために用いるプログラムおよびデータが予め記憶される。ＣＰＵ１０００は、ストレージ１００６およびＲＯＭ１００１に記憶されるプログラムに従い、ＲＡＭ１００２をワークメモリとして用いて、このマスタ端末１０の全体の動作を制御する。
【００１５】
グラフィクスＩ／Ｆ１００３は、ＣＰＵ１０００によりプログラムに従い生成された表示情報に基づき表示デバイス１００５に画面を表示させるための画面データを描画し、描画した画面データをフレームメモリ１００４に一時的に記憶する。グラフィクスＩ／Ｆ１００３は、フレームメモリ１００４に記憶された画面データを例えばフレーム周期で読み出して表示デバイス１００５に供給する。表示デバイス１００５は、例えばＬＣＤ(Liquid  Crystal  Display)とＬＣＤを駆動する駆動回路とを含み、グラフィクスＩ／Ｆ１００３から供給された画面データに従った画面を表示する。
【００１６】
入力デバイス１００７は、ユーザ操作に応じた信号を出力する。入力デバイス１００７は、表示デバイス１００５と一体的に形成されたタッチパネルを用いることができる。
【００１７】
データＩ／Ｆ１００８は、外部機器との間でデータの入出力を行うためのインタフェースであって、例えばＵＳＢ(Universal  Serial  Bus)を適用することができる。通信Ｉ／Ｆ１００９は、例えばＴＣＰ／ＩＰ(Transmission  Control  Protocol/Internet  Protocol)を通信プロトコルとして用い、ネットワーク３０を介した通信を制御する。
【００１８】
図３は、第１の実施形態に係るマスタ端末１０の機能を説明するための一例の機能ブロック図である。マスタ端末１０は、通信部１００と、画面記憶部１０１と、計算部１０２と、比較部１０３と、取得部１０４とを含む。
【００１９】
これら通信部１００、画面記憶部１０１、計算部１０２、比較部１０３および取得部１０４は、マスタ端末１０のＣＰＵ１０００上で動作する情報処理プログラムにより実現される。これに限らず、これら通信部１００、画面記憶部１０１、計算部１０２、比較部１０３および取得部１０４の一部または全部を、互いに協働して動作するハードウェア回路により構成してもよい。
【００２０】
通信部１００は、マスタ端末１０の通信Ｉ／Ｆ１００９を制御してネットワーク３０を介した通信を行う。画面記憶部１０１は、マスタ端末１０の表示デバイス１００５に画面表示させるための画面データの、例えばマスタ端末１０のＲＡＭ１００２に対する記憶および読み出しを制御する。画面記憶部１０１は、例えばマスタ端末１０のフレームメモリ１００４からフレーム単位で画面データを読み出して、マスタ端末１０のＲＡＭ１００２に記憶する。このとき、画面記憶部１０１は、画面データをｚｌｉｂやＰＮＧ(Portable  Network  Graphics)などの可逆圧縮方式により圧縮符号化してＲＡＭ１００２に記憶することができる。
【００２１】
計算部１０２は、通信部１００によりスレーブ端末２０から受信した分割位置を示す情報（後述する）に従い画面データを分割し、分割された各分割領域の特徴量を計算する。計算部１０２は、各分割領域においてＲ（赤色）、Ｇ（緑色）およびＢ（青色）の各画素のデータを取得し、取得したＲ、ＧおよびＢの各画素データから特徴量を計算する。計算部１０２は、算出した各分割領域の特徴量を、各分割領域を示す情報（以下、分割領域情報）と関連付けて、特徴量リストとして例えばＲＡＭ１００２に記憶する。
【００２２】
例えば、計算部１０２は、ＭＤ５(Message  Digest  Algorithm  5)やＳＨＡ−１(Secure  Hash  Algorithm)といったハッシュ関数を用いてハッシュ値を計算し、このハッシュ値を特徴量として用いる。これに限らず、計算部１０２は、各分割領域の特徴量を、ＳＩＦＴ(Scale-Invariant  Feature  Transform)やＳＵＲＦ(Speed-Up  Robust  Features)といった特徴点抽出のアルゴリズムを用いて求めてもよい。さらには、各分割領域の特徴量を、分割領域内の画素の統計値（平均値など）を用いて求めてもよい。以下では、計算部１０２は、ＭＤ５によるハッシュ値を特徴量として用いるものとする。
【００２３】
比較部１０３は、スレーブ端末２０から受信した各分割領域の特徴量（後述する）を通信部１００から受け取り、受け取った各分割領域の特徴量（第１の特徴量とする）と、計算部１０２で計算した各分割領域の特徴量（第２の特徴量とする）とを、それぞれ分割位置が対応する分割領域同士で比較する。比較部１０３は、比較の結果、互いに分割位置が対応する分割領域のうち、第１の特徴量と第２の特徴量とが異なる分割領域を抽出する。
【００２４】
取得部１０４は、画面記憶部１０１により記憶された画面データから、比較部１０３で抽出された分割領域の画像データを取得する。取得部１０４は、画面記憶部１０１から取得した分割領域の画像データを、ｚｌｉｂ、ＰＮＧ(Portable  Network  Graphics)などの可逆圧縮方式を用いてエンコードして通信部１００に渡す。これに限らず、取得部１０４は、分割領域の画像データに対する圧縮符号によるエンコードを行わずに、例えばビットマップ形式で通信部１００に渡してもよい。通信部１００は、取得部１０４から渡された画像データを、スレーブ端末２０に送信する。
【００２５】
図４は、第１の実施形態に係るスレーブ端末２０の機能を説明するための機能ブロック図である。スレーブ端末２０は、通信部２００と、コピー記憶部２０１と、更新部２０２と、分割部２０３と、計算部２０４とを含む。
【００２６】
これら通信部２００、コピー記憶部２０１、更新部２０２、分割部２０３および計算部２０４は、スレーブ端末２０のＣＰＵ１０００上で動作する情報処理プログラムにより実現される。これに限らず、これら通信部２００、コピー記憶部２０１、更新部２０２、分割部２０３および計算部２０４の一部または全部を、互いに協働して動作するハードウェア回路により構成してもよい。
【００２７】
通信部２００は、スレーブ端末２０の通信Ｉ／Ｆ１００９を制御してネットワーク３０を介した通信を行う。コピー記憶部２０１は、マスタ端末１０から受け取った画面データ（原データ）の記憶および読み出しを制御する。コピー記憶部２０１は、マスタ端末１０から送信され通信部２００に受信された画面データを更新部２０２を介して受け取り、受け取った画面データをマスタ端末１０の画面を複製する複製データとして、例えばスレーブ端末２０のＲＡＭ１００２に記憶する。このとき、コピー記憶部２０１は、複製データを、ｚｌｉｂやＰＮＧといった可逆圧縮方式により圧縮符号化してＲＡＭ１００２に記憶することができる。
【００２８】
分割部２０３は、コピー記憶部２０１により記憶される複製データに対する分割位置を設定し、分割領域を生成する。より具体的には、分割部２０３は、コピー記憶部２０１による複製データの更新領域や更新頻度（更新数）に応じてフレーム内の分割位置を設定し、分割位置に応じた分割領域を生成する。これに限らず、分割部２０３は、マスタ端末１０から、マスタ端末１０上で起動中のアプリケーションプログラムを示す情報（アプリケーションプログラムの種類など）を取得し、取得した当該情報をさらに用いて分割位置を設定してもよい。
【００２９】
分割部２０３は、分割領域の位置およびサイズを示す情報（座標情報、幅および高さを示す情報）を、分割領域情報として記憶する。分割部２０３は、各分割領域の分割領域情報を、計算部２０４を介して通信部２００に渡し、マスタ端末１０に送信する。
【００３０】
計算部２０４は、コピー記憶部２０１に記憶された複製データを分割部２０３により設定された分割位置に従い分割した各分割領域のデータの特徴量を計算する。計算部２０４は、上述した計算部１０２と同一の方法により特徴量の計算を行う。上述したように、計算部１０２が特徴量をＭＤ５によるハッシュ値として計算しているので、計算部２０４も同様にして、ＭＤ５によるハッシュ値を、特徴量として算出する。計算部２０４は、計算した各分割領域の特徴量を、各分割領域の分割領域情報と関連付けて、通信部２００によりマスタ端末１０に送信する。
【００３１】
更新部２０２は、マスタ端末１０から送信され通信部２００により受信された画像データを用いて、コピー記憶部２０１により記憶される複製データを更新する。更新部２０２は、マスタ端末１０の取得部１０４が画像データをエンコードして送信している場合には、通信部２００により受信された画像データを対応する復号方式でデコードし、デコードした画像データを用いて複製データの更新を実行する。
【００３２】
なお、第１の実施形態に係る、マスタ端末１０およびスレーブ端末２０上で動作する各情報処理プログラムは、インターネットなどネットワーク３０に接続されたコンピュータ上に格納し、ネットワーク３０経由でダウンロードさせることにより提供される。また、第１の実施形態に係る各情報処理プログラムを、インターネットなどのネットワーク３０経由で提供または配布するように構成してもよい。
【００３３】
これに限らず、第１の実施形態に係る各情報処理プログラムを、インストール可能な形式または実行可能な形式のファイルでＣＤ(Compact  Disk)、ＤＶＤ(Digital  Versatile  Disk)などのコンピュータで読み取り可能な記録媒体に記録して提供してもよい。これに限らず、検出プログラムを、マスタ端末１０やスレーブ端末２０のＲＯＭ１００１やストレージ１００６に予め記憶させて提供してもよい。
【００３４】
第１の実施形態に係る各情報処理プログラムは、上述した各部、例えばマスタ端末１０の場合、画面記憶部１０１、計算部１０２、比較部１０３および取得部１０４を含むモジュール構成となっており、実際のハードウェアとしては、マスタ端末１０の場合、マスタ端末１０のＣＰＵ１０００が例えばストレージ１００６から当該情報処理プログラムを読み出して実行することにより上記各部が主記憶装置（例えばＲＡＭ１００２）上にロードされ、各部が主記憶装置上に生成されるようになっている。
【００３５】
（第１の実施形態に係る処理の概要）
次に、第１の実施形態に係る処理について説明する。図５は、第１の実施形態に係る処理を概略的に示す一例のシーケンス図である。なお、図５において、上述した図３および図４と共通する部分には同一の符号を付して、詳細な説明を省略する。また、以下では、マスタ端末１０およびスレーブ端末２０は、それぞれの表示デバイス１００５における画面サイズが同一であるものとする。
【００３６】
マスタ端末１０において、ＣＰＵ１０００により、直前の画面データに対して描画が行われ更新された画面データが画面記憶部１０１により記憶される（ステップＳ１０）。また、通信部１００と通信部２００との間の接続が切断されていない状態では、マスタ端末１０における画面データの更新は、所定のタイミングでスレーブ端末２０に反映される。このマスタ端末１０の画面データのスレーブ端末２０への反映は、既存技術による方法を適用することができる。
【００３７】
図６は、既存技術による画面データの反映処理を示す一例のシーケンス図である。なお、図６において、上述した図３および図４と共通する部分には同一の符号を付して、詳細な説明を省略する。
【００３８】
マスタ端末１０において、画面記憶部１０１により画面データが例えばフレームメモリ１００４から読み出されて取得部１０４に渡される（ステップＳ３０）。取得部１０４は、画面記憶部１０１から受け取った画面データを所定の可逆圧縮方式を用いてエンコードし（ステップＳ３１）、エンコード済みの画面データを通信部１００に渡す（ステップＳ３２）。通信部１００は、取得部１０４から渡されたエンコード済みの画面データを、ネットワーク３０を介してスレーブ端末２０に向けて送信する（ステップＳ３３）。
【００３９】
スレーブ端末２０は、マスタ端末１０から送信されたエンコード済みの画面データを通信部２００により受信し、通信部２００は、受信したエンコード済みの画面データを更新部２０２に渡す（ステップＳ３４）。更新部２０２は、通信部２００から渡されたエンコード済みの画面データを、ステップＳ３１のエンコード方式に対応するデコード方式によりデコードして画面データを復元する（ステップＳ３５）。更新部２０２は、復元した画面データをスレーブ端末２０のフレームメモリ１００４に記憶すると共に、コピー記憶部２０１に渡す。（ステップＳ３６）。コピー記憶部２０１は、例えばＲＡＭ１００２に記憶される複製データを、更新部２０２から渡された画面データを用いて更新する。
【００４０】
マスタ端末１０は、ＣＰＵ１０００において描画が発生する毎に、描画後の画面データと描画直前の画面データとの差分を求め、図６のシーケンスに従いこの差分の画像データをエンコードしてスレーブ端末２０に送信する。これに限らず、マスタ端末１０は、例えばフレームメモリ１００４に２フレーム分の画面データを記憶し、所定の間隔（例えば３０ｍｓｅｃ）でフレームメモリ１００４内の画面データの差分を求めてもよい。
【００４１】
スレーブ端末２０は、図６の処理に従い、マスタ端末１０から送信された差分の画像データを用いてフレームメモリ１００４内の画面データと、コピー記憶部２０１により記憶される複製データとを更新する。このとき、スレーブ端末２０は、分割部２０３において、複製データを所定サイズに分割した小領域であるセル毎の変更情報を取得する。より具体的には、分割部２０３は、複製データにおける各セルの更新の有無を判定し、セル毎の更新頻度（更新数）をカウントし、カウント値をセルの変更情報として取得する。
【００４２】
図７および図８を用いて、第１の実施形態に係る、分割部２０３におけるセル更新数のカウント処理について説明する。マスタ端末１０において更新された画面データが、マスタ端末１０からスレーブ端末２０に順次送信され、スレーブ端末２０のコピー記憶部２０１により記憶される複製データが、マスタ端末１０から受信した画面データに従い順次更新される。一例として、図７（ａ）に示されるように、当初は何も描画がなされていない複製データ４０に対して、マスタ端末１０の画面データの更新に応じて、図７（ｂ）のように星形の画像４００が追加され、さらに、図７（ｃ）のように、丸型の画像４０１が追加されたものとする。
【００４３】
図８は、第１の実施形態に係る、分割部２０３におけるセル毎の更新数のカウント処理の例を示す。図８（ａ）〜図８（ｃ）は、それぞれ、上述した図７（ａ）〜図７（ｃ）に対応している。分割部２０３は、図８（ａ）に例示されるように、複製データ４０の全領域を、所定サイズの小領域であるセル４１、４１、…に分割する。この時点では、各セル４１の更新数は例えば「０」である（図示しない）。
【００４４】
複製データ４０に対して、図７（ｂ）のように画像４００が追加されると、図８（ｂ）に例示されるように、追加された画像４００を含むセル４１の更新数を１だけ増加させる。図８（ｂ）の例では、領域４２ａに含まれる７個のセル４１が画像４００の少なくとも一部を含んでおり、これら７個の各セル４１の更新数を「１」としている。
【００４５】
さらに、図７（ｃ）のように画像４０１が追加されると、図８（ｃ）に例示されるように、追加された画像４０１を含むセル４１の更新数を１だけ増加させる。また、追加された画像４０１を含まないセル４１については、直前の値を保持する。図８（ｃ）の例では、画像４０１を含むセル４１のうち、領域４２ｃに含まれる７個のセル４１が画像４０１のみを含み更新数が「１」とされる。また、領域４２ｂに含まれる３個のセル４１は、画像４０１と画像４００とを含むため、図８（ｂ）の画像４００による更新数「１」に画像４０１による更新数「１」が加算されて更新数が「２」とされている。一方、画像４００のみを含む領域４２ａ’は、更新されていないため、各セル４１は、直前の更新数「１」が維持されている。
【００４６】
図５の説明に戻り、マスタ端末１０の通信部１００と、スレーブ端末２０の通信部２００との通信が一時的に切断され、その後、当該通信が再接続されたものとする（ステップＳ１１）。再接続は、ネットワーク３０上の所定のプロトコルに従いなされ、再接続が完了するまである程度の時間を要する。そのため、マスタ端末１０において更新される画面データの差分の連続性が、再接続処理により途切れることになる。
【００４７】
通信部１００と通信部２００との間で再接続がなされると、スレーブ端末２０は、コピー記憶部２０１に記憶される複製データを、複製データの更新頻度（更新数）などに基づいた分割位置で分割し、分割された各分割領域の特徴量を算出する（ステップＳ１２）。このとき、スレーブ端末２０は、分割位置を、上述したセル４１を単位として設定する。すなわち、各分割領域は、１以上のセル４１を含む。この、スレーブ端末２０における分割位置の設定処理は、後述する。
【００４８】
ここで、例えばステップＳ１０でマスタ端末１０において描画された画面データがスレーブ端末２０に反映される前に、マスタ端末１０とスレーブ端末２０との間の通信が切断されたものとする。この場合、ステップＳ１２で分割される複製データは、ステップＳ１０でマスタ端末１０において描画がなされる前の、マスタ端末１０の画面データに基づく。
【００４９】
スレーブ端末２０は、ステップＳ１２で算出された各特徴量の配列を、各特徴量を各分割領域に関連付けた第１の特徴量リストとして通信部２００からマスタ端末１０に向けて送信する（ステップＳ１３）。詳細は後述するが、第１の特徴量リストは、各分割領域情報（座標など）と、各分割領域の特徴量とを含む。マスタ端末１０において、通信部１００で受信された第１の特徴量リストは、比較部１０３に渡される（ステップＳ１４）。
【００５０】
マスタ端末１０は、ステップＳ１４で、スレーブ端末２０から送信された第１の特徴量リストを受け取ると、受け取った第１の特徴量リストに含まれる分割領域情報に基づき画面記憶部１０１に記憶される画面データを分割し、各分割領域の特徴量を算出する（ステップＳ１５）。マスタ端末１０は、算出された各分割領域の特徴量と、各分割領域情報とを関連付けた第２の特徴量リストを作成し、作成した第２の特徴量リストを比較部１０３に渡す。
【００５１】
比較部１０３は、第１の特徴量リストと第２の特徴量リストとを比較して、第２の特徴量リストのうち、分割領域が一致し、且つ、特徴量が異なる分割領域を抽出する（ステップＳ１６）。比較部１０３は、抽出した分割領域情報に基づき、画面記憶部１０１に記憶される画面データの分割領域に対応する部分の画像データを差分として切り出す（ステップＳ１７）。切り出された差分の画像データは、通信部１００に渡される（ステップＳ１８）。通信部１００は、渡された差分の画像データをスレーブ端末２０に向けて送信する（ステップＳ１９）。スレーブ端末２０は、マスタ端末１０から送信された差分の画像データを通信部２００により受信し（ステップＳ２０）、受信した差分の画像データを用いて、コピー記憶部２０１に記憶される複製データを更新する（ステップＳ２１）。
【００５２】
（第１の実施形態のより詳細な説明）
次に、第１の実施形態に係る処理について、より詳細に説明する。図９は、第１の実施形態に係るマスタ端末１０の処理を示す一例のフローチャートである。図９のフローチャートによる処理は、例えば、図５で説明したステップＳ１１の再接続をトリガとして開始される。
【００５３】
図９において、ステップＳ１００で、通信部１００は、スレーブ端末２０からの、第１の特徴量リストを含む通信の有無を確認する。通信が無いと判定した場合（ステップＳ１００、「無し」）、通信部１００は、処理をステップＳ１００に戻す。一方、通信部１００は、通信が有ったと判定した場合（ステップＳ１００、「有り」）、処理をステップＳ１０１に移行させる。ステップＳ１０１で、通信部１００は、通信に含まれる第１の特徴量リストを取得し、取得した第１の特徴量リストを、計算部１０２と比較部１０３とに渡す。
【００５４】
次のステップＳ１０２で、計算部１０２は、画面記憶部１０１から画面データを取得する。次のステップＳ１０３で、計算部１０２は、通信部１００から渡された第１の特徴量リストに含まれる分割領域情報に従い画面データを分割する。次のステップＳ１０４で、計算部１０２は、ステップＳ１０３で画面データを分割した各分割領域の特徴量を算出し、分割領域情報と特徴量とを関連付けた第２の特徴量リストを作成する。計算部１０２は、作成した第２の特徴量リストを、比較部１０３に渡す。
【００５５】
次のステップＳ１０５で、比較部１０３は、第１の特徴量リストと第２の特徴量リストとを比較して、分割領域が一致し、且つ、特徴量が異なる分割領域を更新に用いる更新領域として抽出する。比較部１０３は、抽出した分割領域の分割領域情報を取得部１０４に渡す。
【００５６】
次のステップＳ１０６で、取得部１０４は、ステップＳ１０２で取得した画面データから、比較部１０３から渡された分割領域情報に示される分割領域の部分の画像データを切り出す。取得部１０４は、切り出した画像データと、当該画像データに対応する分割領域情報とを、通信部１００によりスレーブ端末２０に送信する。スレーブ端末２０に送信されたこれら画像データおよび分割領域情報は、後述するように、スレーブ端末２０における更新処理に用いられる。画像データのスレーブ端末２０への送信が完了すると、図９のフローチャートによる一連の処理が終了される。
【００５７】
図１０は、第１の実施形態に係るスレーブ端末２０の処理を示す一例のフローチャートである。図１０のフローチャートによる処理は、例えば、図５で説明したステップＳ１１の再接続をトリガとして処理が開始される。
【００５８】
ステップＳ１２０で、スレーブ端末２０において、分割部２０３は、コピー記憶部２０１に記憶される複製データを、各セル４１の更新数に基づいた分割位置で各分割領域に分割する。分割部２０３は、各分割領域の分割領域情報を計算部２０４に渡す。
【００５９】
ステップＳ１２１で、計算部２０４は、コピー記憶部２０１から複製データを取得し、分割部２０３から渡された各分割領域情報に基づき、取得した複製データにおける各分割領域の特徴量を計算する。次のステップＳ１２２で、計算部２０４は、各分割領域の特徴量と、各分割領域情報とを関連付けた第１の特徴量リストを作成し、作成した第１の特徴量リストを、通信部２００によりマスタ端末１０に送信する。
【００６０】
次のステップＳ１２３で、通信部２００は、マスタ端末１０からの通信の有無を確認する。ここでは、通信部２００は、マスタ端末１０からの、図９のステップＳ１０６による通信の有無を確認する。通信が無いと判定した場合（ステップＳ１２３、「無し」）、通信部２００は、処理をステップＳ１２３に戻す。一方、通信部１２３は、マスタ端末１０からの通信が有ったと判定した場合（ステップＳ１２３、「有り」）、処理をステップＳ１２４に移行する。
【００６１】
ステップＳ１２４で、更新部２０２は、通信部２００から、マスタ端末１０から受信した、特徴量が異なる分割領域の画像データと、当該画像データに対応する分割領域情報とを取得する。次のステップＳ１２５で、更新部２０２は、ステップＳ１２４で取得した画像データを、コピー記憶部２０１に記憶される分割領域情報に示される分割領域の位置に上書きして、複製データの更新処理を行う。すなわち、更新部２０２は、ステップＳ１２４で取得した画像データを更新を行うための更新データとして用いて、複製データを更新する。次のステップＳ１２６で、分割部２０３は、ステップＳ１２５による複製データの更新処理により更新された各セル４１の更新数を増加させる。
【００６２】
（第１の実施形態に係る分割処理）
次に、第１の実施形態に係る、上述の図１０のステップＳ１２０における各セル４１の更新数に基づく分割処理について、より具体的に説明する。第１の実施形態では、分割部２０３は、各セル４１の更新数に対して統計処理を施し、統計処理の結果に基づき分割位置を設定し、分割領域を生成する。統計処理としては、例えば、分割対象の領域内の各セル４１の更新数の合計を求める処理を行う。
【００６３】
図１１は、第１の実施形態に係る分割処理を概略的に示す一例のフローチャートである。ステップＳ１４０で、分割部２０３は、分割対象の領域内の各セル４１の更新数の合計を求め、求めた合計が閾値以下であるか否かを判定する。ここで、分割対象の領域は、複製データに対する初回の分割処理であれば、当該複製データの全体となる。また、当該複製データに対する２回目以降の分割処理であれば、当該複製データが分割された分割領域それぞれとなる。
【００６４】
分割部２０３は、更新数の合計が閾値以下であると判定した場合（ステップＳ１４０、「Ｙｅｓ」）、当該分割対象の領域に対する分割処理を終了する。一方、分割部２０３は、更新数の合計が閾値を超えると判定した場合（ステップＳ１４０、「Ｎｏ」）、処理をステップＳ１４１に移行させる。ステップＳ１４１で、分割部２０３は、当該分割対象の領域が分割可能か否かを判定する。
【００６５】
第１の実施形態では、セル４１単位で分割を行い、分割領域の境界が１つのセル４１を分断することはない。したがって、例えば、分割対象の領域が２以上のセル４１を含む場合に、分割可能であると判定できる。分割可能か否かの判定の条件は、この例に限定されず、例えば、分割対象の領域が４以上のセル４１を含むか否かで判定してもよいし、分割対象の領域の形状で判定することも考えられる。
【００６６】
分割部２０３は、分割対象の領域が分割不可であると判定した場合（ステップＳ１４１、「Ｎｏ」）、当該分割対象の領域に対する分割処理を終了する。一方、分割部２０３は、分割対象の領域が分割可能であると判定した場合（ステップＳ１４１、「Ｙｅｓ」）、処理をステップＳ１４２に移行させる。
【００６７】
ステップＳ１４２で、分割部２０３は、分割対象の領域を２等分する。例えば、分割部２０３は、分割対象の長辺方向に２等分する。これにより、分割対象の領域が２の分割領域に分割される。なお、分割部２０３は、分割対象の領域を、２等分以外の分割方法で分割してもよい。例えば、分割部２０３は、分割対象の領域を、サイズの異なる２つの領域に分割してもよいし、３以上の領域に分割してもよい。
【００６８】
ステップＳ１４２の処理が終了すると、分割部２０３は、分割処理により生成された２の分割領域のそれぞれに対して、さらに、ステップＳ１４０からの処理を実行する。このように、分割部２０３は、各分割領域内の更新数の合計が全て閾値以下になるか、あるいは、分割可能な領域が存在しなくなるまで、図１１のフローチャートによる処理を繰り返し実行する。
【００６９】
図１２は、第１の実施形態に係る分割部２０３による分割処理をより具体的に説明するための図である。図１２（ａ）は、分割処理を行う前の複製データ４０の例を示す。複製データ４０は、各セル４１が設定され、各セル４１内にそれぞれ示される数値は、そのセル４１の更新数を表している。なお、セル４１の更新数は、指標としての値であって、実際に更新が行われた数をカウントしたものでなくてもよい。例えば、更新数は、各セル４１の更新数のうち最大の更新数で正規化した値でもよい。
【００７０】
図１２（ａ）の状態では、複製データ４０の全体と一致する領域５０10が分割対象領域となっている。図１２（ａ）の例では、分割対象の領域５０10内の各セル４１の更新数の合計が「２５」であるものとする。これに対して、図１１のステップＳ１４０で用いる閾値は、例えば「１０」であるものとする。この場合、領域５０10内の更新数の合計「２５」は、閾値「１０」を超えるので、分割部２０３は、ステップＳ１４０において閾値以下ではない（ステップＳ１４０、「Ｎｏ」）と判定する。
【００７１】
分割部２０３は、ステップＳ１４１で領域５０10が分割可能か否かを判定する。領域５０10は分割可能なので、分割部２０３は、ステップＳ１４２で、領域５０10を長辺方向に２等分する。図１２（ｂ）は、領域５０10が長辺方向に２等分され、領域５０20および５０21の２つの分割領域が生成された様子を示す。次は、この領域５０20および５０21が、それぞれ分割対象の領域とされる。
【００７２】
図１２（ｂ）の例では、領域５０20および５０21は、更新数の合計がそれぞれ「２２」および「３」である。したがって、分割部２０３は、ステップＳ１４０の判定により、領域５０21は、更新数の合計が閾値以下であると判定し（ステップＳ１４０、「Ｙｅｓ」）、領域５０21に対する分割処理を終了する。
【００７３】
一方、分割部２０３は、ステップＳ１４０の判定により、領域５０20は、更新数の合計が閾値以下ではないと判定する（ステップＳ１４０、「Ｎｏ」）。次のステップＳ１４１で、分割部２０３は、領域５０20が分割可能であると判定して（ステップＳ１４１、「Ｙｅｓ」）、次のステップＳ１４２で、領域５０20を長辺方向に２等分する。図１２（ｃ）は、領域５０20が長辺方向に２等分され、領域５０30および５０31の２つの分割領域が生成された様子を示す。次は、この領域５０30および５０31が、それぞれ分割対象の領域とされる。
【００７４】
図１２（ｃ）の例では、領域５０30および５０31は、更新数の合計がそれぞれ「８」および「１４」である。したがって、分割部２０３は、ステップＳ１４０の判定により、領域５０30は、更新数の合計が閾値以下であると判定し（ステップＳ１４０、「Ｙｅｓ」）、領域５０30に対する分割処理を終了する。
【００７５】
一方、分割部２０３は、ステップＳ１４０の判定により、領域５０31は、更新数の合計が閾値以下ではないと判定する（ステップＳ１４０、「Ｎｏ」）。次のステップＳ１４１で、分割部２０３は、領域５０31が分割可能であると判定して（ステップＳ１４１、「Ｙｅｓ」）、次のステップＳ１４２で、領域５０31を長辺方向に２等分する。図１２（ｄ）は、領域５０31が長辺方向に２等分され、領域５０40および５０41の２つの分割領域が生成された様子を示す。次は、この領域５０40および５０41が、それぞれ分割対象の領域とされる。
【００７６】
図１２（ｄ）の例では、領域５０40および５０41は、更新数の合計がそれぞれ「５」および「９」である。したがって、分割部２０３は、ステップＳ１４０の判定により、領域５０40および５０41は、更新数の合計が閾値以下であると判定し（ステップＳ１４０、「Ｙｅｓ」）、領域５０40および５０41に対する分割処理を終了する。これにより、図１２（ａ）の領域５０10を初回の分割対象の領域とした一連の分割処理が完了し、領域５０10が、分割領域それぞれの更新数が閾値以下になる分割位置で分割される。
【００７７】
（第１の実施形態に係る特徴量計算処理）
次に、第１の実施形態に係る、上述の図１０のステップＳ１２１による特徴量の計算について説明する。図１３は、図１２（ｄ）に示した各分割領域５０20、５０30、５０40および５０41に対して、それぞれ特徴量６０1、６０2、６０3および６０4を算出した例を示す。また、複製データ４０は、幅（ｘ方向）が１２８０画素、高さ（ｙ方向）が１０２４画素のサイズであるものとし、図１３の例では、複製データ４０の左上隅を原点（０，０）として座標が設定されている。
【００７８】
分割部２０３は、この、複製データ４０の各分割領域５０21、５０30、５０40および５０41の複製データ４０内での座標情報と、各特徴量６０1、６０2、６０3および６０4とをそれぞれ関連付けて、図１４に例示されるような、第１の実施形態に係る第１の特徴量リストを作成する。図１４において、第１の特徴量リストは、分割領域のｘ座標、ｙ座標、幅および高さの情報（ｘ，ｙ，幅，高さ）を含む分割領域情報と、特徴量とが関連付けられて格納される。
【００７９】
マスタ端末１０は、図９のステップＳ１０１において、図１４に示す第１の特徴量リストを取得し、ステップＳ１０２で画面記憶部１０１から取得した（図９のステップＳ１０２）画面データを、第１の特徴量リストに含まれる分割領域情報に従い分割し、各分割領域を生成する（図９のステップＳ１０３）。マスタ端末１０は、画面データを分割した各分割領域毎に特徴量を計算し、図１４の第１の特徴量リストに対応する、第２の特徴量リストを作成する（図９のステップＳ１０４）。
【００８０】
（第１の実施形態に係る比較処理）
次に、第１の実施形態に係る、上述した図９のステップＳ１０５による第１の特徴量リストおよび第２の特徴量リストの比較処理について、図１５を用いて説明する。図１５（ａ）は、上述した図１３および図１４の第１の特徴量リストに対応する。図１５（ｂ）は、上述した、第１の特徴量リストに基づきマスタ端末１０で作成された第２の特徴量リストに対応する、画面データの各分割領域を示している。
【００８１】
図１５（ｂ）において、画面データ７０は、複製データ４０と同じ分割位置で分割されて、複製データ４０の各分割領域５０21、５０30、５０40および５０41それぞれに対応する各分割領域５０21’、５０30’、５０40’および５０41’が生成されている。また、各分割領域５０21’、５０30’、５０40’および５０41’について、それぞれ特徴量６０1’、６０2’、６０3’および６０4’が算出されている。これら特徴量６０1’、６０2’、６０3’および６０4’が、第２の特徴量リストに含まれる。
【００８２】
図９のステップＳ１０５で、比較部１０３は、第２の特徴量リストに含まれるこれら各特徴量６０1’、６０2’、６０3’および６０4’と、第１の特徴量リストに含まれる各特徴量６０1、６０2、６０3および６０4とを、画面データ７０および複製データ４０内で位置が対応する分割領域の組毎に比較する。比較部１０３は、位置が対応する分割領域の組で比較した、第１の特徴量リストに含まれる特徴量と第２の特徴量リストに含まれる特徴量と、が異なる分割領域を抽出する。
【００８３】
図１５（ａ）および図１５（ｂ）の例では、分割領域５０30および５０30’の組は、特徴量６０2および６０2’が一致し、分割領域５０40および５０40’の組は、特徴量６０3および６０3’が一致している。一方、分割領域５０21および５０21’の組は、特徴量６０1と特徴量６０1’とが異なり、分割領域５０41および５０41’の組は、特徴量６０4と特徴量６０４’とが異なる。
【００８４】
したがって、比較部１０３は、図１５（ｃ）に斜線を付した領域７１として示されるように、複製データ４０を分割した分割領域５０21および５０41を、第１の特徴量リストに含まれる特徴量と、第２の特徴量リストに含まれる特徴量とが異なる分割領域として抽出する。比較部１０３は、第１の特徴量リストから、抽出した分割領域５０20および５０41の分割領域情報を取り出して取得部１０４に渡す。取得部１０４は、渡された分割領域情報に基づき画面記憶部１０１に記憶される画面データ７０から分割領域５０21および５０41に対応する部分の画像データを切り出して、通信部１００によりスレーブ端末２０に送信する（ステップＳ１０６）。
【００８５】
このように、第１の実施形態によれば、データの同期を行う端末間において、データを小領域毎の変更情報に基づいた分割位置で分割した分割領域毎に、それぞれ特徴量を算出し、更新を行うためのデータを、算出した特徴量を分割領域毎に比較した結果に基づき取得するようにしている。そのため、データの同期を行うための通信を最適化できる。
【００８６】
なお、上述では、処理の対象となるデータを２次元の情報で構成される画面データであるとしたが、これはこの例に限定されない。第１の実施形態は、１次元のデータ配列に対しても、分割領域の生成において分割方向を限定することで、適用が可能である。また、第１の実施形態は、３次元以上の情報で構成されるデータに対しても、分割領域の生成において分割方向を拡張することで、適用が可能である。
【００８７】
（第２の実施形態）
次に、第２の実施形態について説明する。上述した第１の実施形態では、小領域毎の更新数に基づく分割領域の生成をスレーブ端末側において行っているが、第２の実施形態では、当該分割領域をマスタ端末側で行うようにしている。
【００８８】
図１６は、第２の実施形態に係るマスタ端末の機能を説明するための一例の機能ブロック図である。なお、図１６において、上述した図３と共通する部分には同一の符号を付して、詳細な説明を省略する。また、第２の実施形態に係るマスタ端末は、ハードウェア構成として図２を用いて説明した構成をそのまま適用できる。
【００８９】
図１６において、マスタ端末１０’は、図３に示した第１の実施形態に係るマスタ端末１０の構成に対して分割部１１０が追加されている。分割部１１０は、図４を用いて説明した、第１の実施形態に係るスレーブ端末２０に含まれる分割部２０３と同様にして、画面記憶部１０１に記憶される画面データに対する分割処理を行う。
【００９０】
より具体的には、分割部１１０は、画面記憶部１０１に記憶される画面データを所定サイズの小領域であるセル４１、４１、…に分割し（図８など参照）、各セル４１の更新数をカウントする。分割部１１０は、カウントした各セル４１の更新数に基づき、図１１および図１２を用いて説明したようにして画面データに対してセル４１単位で分割位置を設定して分割領域を生成する。分割部１１０は、分割領域の位置およびサイズを示す分割領域情報を計算部１０２および通信部１００に渡す。通信部１００は、渡された分割領域情報をスレーブ端末２０に送信する。
【００９１】
計算部１０２は、第１の実施形態と同様にして、分割部１１０から渡された分割領域情報に従い、画面記憶部１０１に記憶される画面データの分割領域毎の特徴量を算出する。計算部１０２は、分割領域情報と算出した特徴量とを関連付けた第２の特徴量リストを作成する。計算部１０２は、作成した第２の特徴量リストを比較部１０３に渡す。
【００９２】
比較部１０３は、第２の実施形態に係るスレーブ端末２０’（図１７参照）から送信された第１の特徴量リスト（後述する）を通信部１００を介して受け取り、第１の特徴量リストと第２の特徴量リストとを比較する。以降の処理は、上述した第１の実施形態と同様にして、比較の結果、特徴量が異なる分割領域の分割領域情報を取得部１０４に渡す。取得部１０４は、渡された分割領域情報に基づき、画面記憶部１０１に記憶される画面データから当該分割領域に対応する画像データを切り出す。取得部１０４は、切り出した画像データを通信部１００に渡し、通信部１００は、渡された画像データをスレーブ端末２０’に向けて送信する。
【００９３】
図１７は、第２の実施形態に係るスレーブ端末の機能を説明するための一例の機能ブロック図である。なお、図１７において、上述した図４と共通する部分には同一の符号を付して、詳細な説明を省略する。また、第２の実施形態に係るスレーブ端末は、ハードウェア構成として図２を用いて説明した構成をそのまま適用できる。
【００９４】
図１７において、スレーブ端末２０’は、図４に示した第１の実施形態に係るスレーブ端末２０の構成に対して、分割部２０３の代わりに分割情報記憶部２１０を含む。分割情報記憶部２１０は、上述したようにしてマスタ端末１０’から送信された分割領域情報を通信部２００を介して受け取り、例えばスレーブ端末２０’のＲＡＭ１００２に記憶する。また、分割情報記憶部２１０は、コピー記憶部２０１に記憶される複製データ４０における各セル４１の更新数をカウントする。
【００９５】
計算部２０４は、分割情報記憶部２１０に記憶される分割領域情報に従い、コピー記憶部２０１に記憶される複製データの分割領域毎の特徴量を計算する。計算部２０４は、計算された特徴量と、計算に用いた分割情報記憶部２１０に記憶される分割領域情報とを関連付けて第１の特徴量リストを作成する。計算部２０４は、作成した第１の特徴量リストを通信部２００に渡す。通信部２００は、計算部２０４から渡された第１の特徴量リストを、上述したようにマスタ端末１０’に向けて送信する。
【００９６】
（第２の実施形態のより詳細な説明）
このような構成において、第２の実施形態では、マスタ端末１０’の分割部１１０は、マスタ端末１０’上で起動しているアプリケーションプログラムのウィンドウ画像の座標と、当該アプリケーションプログラムの種類とに基づき、当該ウィンドウ画像が含まれるセル４１における更新数を予測する。分割部１１０は、各セル４１においてカウントされる更新数を、この予測した予測更新数を考慮した値とする。
【００９７】
図１８は、第２の実施形態に係る、アプリケーションプログラムのウィンドウに対する予測更新数の設定例を示す。図１８（ａ）は、マスタ端末１０’の画面データ７０上にアプリケーションプログラムのウィンドウ画像８０ａおよび８０ｂが描画されている様子を示している。ウィンドウ画像８０ａおよび８０ｂに対応するアプリケーションプログラムを、それぞれアプリケーションＡ、アプリケーションＢとする。
【００９８】
分割部１１０は、アプリケーションプログラムの種類に応じた予測更新数を設定することができる。分割部１１０は、例えば、動画ビューアなど、画面更新が多発する可能性がある種類のアプリケーションプログラムによるウィンドウ画像の領域を含むセル４１の予測更新数を大きな値に設定する。また、アプリケーションプログラムのウィンドウ画像が存在していない領域にあるセル４１の予測更新数を小さな値に設定する。
【００９９】
図１８（ｂ）は、第２の実施形態に係る分割部１１０による予測更新数の設定例を示す。図１８（ｂ）の例では、アプリケーションＡによるウィンドウ画像８０ａが含まれる各セル４１に対して予測更新数「１」が設定されている。一方、アプリケーションＢによるウィンドウ画像８０ｂが含まれる各セル４１に対しては、ウィンドウ画像８０ａの場合よりも大きな予測更新数「５」が設定されている。また、ウィンドウ画像８０ａおよび８０ｂの何れも含まない各セル４１には、予測更新数の設定を行わないか、または、予測更新数「０」を設定する。
【０１００】
図１９は、アプリケーションプログラムと予測更新数との対応関係の例を示す。図１９で示されるように、アプリケーションの種別と、予測更新数とが対応付けられる。アプリケーション種別は、例えば動画ビューワ、表計算アプリケーション、Ｗｅｂブラウザ、ワードプロセッサアプリケーションなど、アプリケーションプログラムの主用途を示す。アプリケーション種別は、アプリケーションプログラムの名称などでもよい。例えば、分割部１１０は、このアプリケーションプログラムと予測更新数との対応関係を示すリストを、例えばマスタ端末１０’のストレージ１００６に記憶しておく。
【０１０１】
各アプリケーションプログラムと予測更新数との対応は、マスタ端末１０’に対して、予め設定しておく。各アプリケーションプログラムと予測更新数との対応は、例えば、ユーザのマスタ端末１０’を操作して、各アプリケーションプログラムに対して固定的に設定することができる。これに限らず、予測更新数の設定は、アプリケーションプログラム上のウィンドウコンポーネントの種類や数に基づき分割部１１０が設定するようにもできる。さらに、マスタ端末１０’上で動作するＯＳ(Operating  System)が、アプリケーションプログラムから受信する描画命令の数に基づき、予測更新数を設定することも可能である。
【０１０２】
例えば、分割部１１０は、予測更新数を、各セル４１でカウントされた更新数に対するオフセットとして用いることができる。これに限らず、分割部１１０は、該当する各セル４１の更新数として予測更新数を用いてもよい。さらに、分割部１１０は、予測更新数を、各セル４１の更新数に対する演算の係数として用い、この係数を用いて演算された値をカウントされた更新数と置き換えてもよい。
【０１０３】
図２０は、第２の実施形態に係るマスタ端末１０’の処理を示す一例のフローチャートである。この図２０のフローチャートによる処理は、例えば、マスタ端末１０’とスレーブ端末２０’との間の通信の切断をトリガとして開始される。なお、ここでは、予測更新数は、セル４１においてカウントされた更新数に対するオフセットとして用いられ、カウントされた更新数に加算されるものとして説明を行う。
【０１０４】
ステップＳ２００で、分割部１１０は、画面記憶部１０１に記憶される画面データ７０の各セル４１の更新数をカウントする。このとき、分割部１１０は、図１９に示したアプリケーションプログラムと予測更新数との対応関係に従い、各アプリケーションＡおよびＢによる各ウィンドウ画像８０ａおよび８０ｂが含まれるセル４１でカウントされた更新数に対して、予測更新数を加算する。
【０１０５】
次のステップＳ２０１で、分割部１１０は、スレーブ端末２０’から、例えば再接続を示す通信の有無を確認する。分割部１１０は、通信が無いと判定した場合（ステップＳ２０１、「無し」）、処理をステップＳ２００に戻す。一方、分割部１１０は、通信が有ったと判定した場合（ステップＳ２０１、「有り」）、処理をステップＳ２０３に移行させる。
【０１０６】
ステップＳ２０３で、分割部１１０は、図１１および図１２を用いて説明したようにして、各セル４１の更新数に基づき画面データ７０に対して分割位置を設定して分割領域を生成する。次のステップＳ２０４で、分割部１１０は、ステップＳ２０３で生成した分割領域を示す分割領域情報を、通信部１００によりスレーブ端末２０’に送信する。分割部１１０は、さらに、分割領域情報を計算部１０２に渡す。
【０１０７】
次のステップＳ２０５で、計算部１０２は、分割部１１０から渡された分割領域情報に基づき、画面記憶部１０１に記憶される画面データ７０の各分割領域の特徴量を算出する。計算部１０２は、算出した各特徴量と、各分割領域情報とを関連付けた第２の特徴量リストを作成する。
【０１０８】
次のステップＳ２０６で、比較部１０３は、スレーブ端末２０’から送信された第１の特徴量リストを通信部１００が受信したか否かを判定する。受信していないと判定した場合（ステップＳ２０６、「Ｎｏ」）、比較部１０３は、処理をステップＳ２０６に戻す。一方、比較部１０３は、受信したと判定した場合（ステップＳ２０６、「Ｙｅｓ」）、処理をステップＳ２０７に移行させる。
【０１０９】
ステップＳ２０７で、比較部１０３は、第１の特徴量リストと第２の特徴量リストとを比較して、分割領域が一致し、且つ、特徴量が異なる分割領域を更新に用いる更新情報として抽出する。比較部１０３は、抽出した分割領域の分割領域情報を取得部１０４に渡す。
【０１１０】
次のステップＳ２０８で、取得部１０４は、画面記憶部１０１に記憶される画面データ７０から、比較部１０３から渡された分割領域情報に示される分割領域の部分の画像データを切り出す。取得部１０４は、切り出した画像データと、当該画像データに対応する分割領域情報とを、通信部１００によりスレーブ端末２０’に送信する。画像データのスレーブ端末２０’への送信が完了すると、図２０のフローチャートによる一連の処理が終了される。
【０１１１】
図２１は、第２の実施形態に係るスレーブ端末２０’の処理を示す一例のフローチャートである。この図２１のフローチャートによる処理は、例えば、マスタ端末１０’とスレーブ端末２０’との間の通信の切断をトリガとして開始される。
【０１１２】
マスタ端末１０’とスレーブ端末２０’との通信が再接続されると、例えば、通信部２００は、マスタ端末１０’に対して、再接続を示す通信を行う（ステップＳ２２１）。次のステップＳ２２２で、分割情報記憶部２１０は、マスタ端末１０’から送信された分割領域情報を受信したか否かを判定する。受信していないと判定した場合（ステップＳ２２２、「Ｎｏ」）、分割情報記憶部２１０は、処理をステップＳ２２２に戻す。一方、分割情報記憶部２１０は、受信したと判定した場合（ステップＳ２２２、「Ｙｅｓ」）、受信した分割領域情報を記憶し、処理をステップＳ２２３に移行させる。
【０１１３】
ステップＳ２２３で、計算部２０４は、コピー記憶部２０１から複製データ４０を取得し、分割情報記憶部２１０に記憶される分割領域情報に基づき、取得した複製データ４０における各分割領域の特徴量を計算する。次のステップＳ２２４で、計算部２０４は、各分割領域の特徴量と、各分割領域情報とを関連付けた第１の特徴量リストを作成し、作成した第１の特徴量リストを、通信部２００によりマスタ端末１０’に送信する。
【０１１４】
次のステップＳ２２５で、通信部２００は、マスタ端末１０’からの通信の有無を確認する。ここでは、通信部２００は、マスタ端末１０’からの、図２０のステップＳ２０６による通信の有無を確認する。通信が無いと判定した場合（ステップＳ２２５、「無し」）、通信部２００は、処理をステップＳ２２５に戻す。一方、通信部２００は、マスタ端末１０’からの通信が有ったと判定した場合（ステップＳ２２５、「有り」）、処理をステップＳ２２６に移行させる。
【０１１５】
ステップＳ２２６で、更新部２０２は、通信部２００から、マスタ端末１０’から受信した、特徴量が異なる分割領域の画像データと、当該画像データに対応する分割領域情報とを取得する。次のステップＳ２２７で、更新部２０２は、ステップＳ２２６で取得した画像データを、コピー記憶部２０１に記憶される分割領域情報に示される分割領域の位置に上書きして、複製データ４０を更新する。次のステップＳ２２８で、分割情報記憶部２１０は、ステップＳ２２７による複製データ４０の更新処理により更新された各セル４１の更新数を増加させる。
【０１１６】
このように、各セル４１の更新数に基づく分割位置でデータを分割して分割領域を生成する分割部１１０をマスタ端末１０’が持っている場合でも、上述した第１の実施形態と同様にして、マスタ端末１０’とスレーブ端末２０’との間でデータの同期処理を行うことができる。そのため、第２の実施形態の構成においても、データの同期を行うための通信を最適化できる。
【０１１７】
（第３の実施形態）
次に、第３の実施形態について説明する。上述した第１の実施形態では、マスタ端末１０とスレーブ端末２０とで画面のサイズ（解像度）が等しいことが前提であった。第３の実施形態は、マスタ端末１０とスレーブ端末２０とで画面のサイズが異なる場合の例である。
【０１１８】
例えば、マスタ端末１０がデスクトップ型のパーソナルコンピュータであって、画面の解像度が１９２０画素×１２００画素であるものとする。また、スレーブ端末２０がスマートフォンであって、画面の解像度が６４０画素×９６０画素であるとする。この場合の画面データ７０および複製データ４０の例を、図２２に概略的に示す。
【０１１９】
なお、第３の実施形態において、マスタ端末１０およびスレーブ端末２０のハードウェア構成は、図２を用いて説明したハードウェア構成を共通して適用可能であるものとする。また、マスタ端末１０およびスレーブ端末２０は、それぞれ上述した図３および図４の機能ブロック図の構成を適用可能であるものとする。
【０１２０】
図２２において、左側にマスタ端末１０における画面データ７０の例を示し、右側にスレーブ端末２０における画面データ４０１の例を示す。ここで、スレーブ端末２０の表示デバイス１００５に対して、マスタ端末１０の画面データ７０内の、画面データ４０１に対応するサイズの領域７０１の画像が表示されるものとする。
【０１２１】
この場合において、スレーブ端末２０のコピー記憶部２０１は、マスタ端末１０の画面データ７０の全体を複製データ４０として記憶し、この複製データ４０内の画面データ４０１に対応するサイズの画像データを切り出して、画面データ４０１として表示デバイス１００５に表示させる。スレーブ端末２０の分割部２０３は、複製データ４０の全体を分割して各セル４１を生成し、各セル４１の更新数をそれぞれカウントする。
【０１２２】
分割部２０３は、図１０のステップＳ１２０の複製データ４０の分割処理において、例えば、複製データ４０内の、画面データ４０１に対応する領域を含む各セル４１の更新数に基づき、図１１および図１２を用いて説明したようにして、画面データ４０１に対応する領域７０１に対してセル４１単位で分割位置を設定して当該領域を各分割領域に分割する。
【０１２３】
計算部２０４は、コピー記憶部２０１から複製データ４０を取得し、分割部２０３で分割された各分割領域を示す各分割領域情報に基づき、取得した複製データ４０内の、画面データ４０１に対応する領域における各分割領域の特徴量を計算する（図１０のステップＳ１２１）。計算部２０４は、各分割領域の特徴量と、各分割領域情報とを関連付けた第１の特徴量リストを作成する。このとき、計算部２０４は、画面データ４０１の複製データ４０における位置を示す情報を、第１特徴量リストにさらに含める。計算部２０４は、作成した第１の特徴量リストを、通信部２００によりマスタ端末１０に送信する（図１０のステップＳ１２２）。
【０１２４】
マスタ端末１０は、スレーブ端末２０から送信された第１の特徴量リストを取得すると（図９のステップＳ１０１）、計算部１０４により、画面記憶部１０１から画面データ７０を取得する（図９のステップＳ１０２）。このとき、計算部１０４は、第１の特徴量リストに含まれる画面データ４０１の複製データ４０における位置を示す情報に基づき、画面データ７０内の、画面データ４０１に対応する領域の画像データを切り出して取得する。
【０１２５】
以下、マスタ端末１０は、画面データ４０１に対応する領域の画像データを処理対象とし、図９のステップＳ１０３以降の処理と同様にして、当該処理対象の画像データを各分割領域に分割し（図９のステップＳ１０３）、各分割領域の特徴量を算出した第２の特徴量リストを作成する（図９のステップＳ１０４）。比較部１０３は、第１の特徴量リストと第２の特徴量リストとを比較して特徴量が異なる分割領域を抽出し（図９のステップＳ１０５）、抽出した分割領域に対応する部分の画像データを画面データ７０から切り出して、スレーブ端末２０に送信する（図９のステップＳ１０６）。
【０１２６】
スレーブ端末２０は、マスタ端末１０から受信した画像データを用いてコピー記憶部２０１に記憶された複製データ４０を更新し（図１０のステップＳ１２４、ステップＳ１２５）、更新された各セル４１の更新数を増加させる（図１０のステップＳ１２６）。
【０１２７】
第３の実施形態によれば、このように、マスタ端末１０とスレーブ端末２０とで画面サイズが異なる場合でも、第１の実施形態と同様にして、マスタ端末１０とスレーブ端末２０との間でデータの同期処理を行うことができる。そのため、第３の実施形態の構成においても、データの同期を行うための通信を最適化できる。
【０１２８】
なお、上述では、マスタ端末１０の画面サイズに対してスレーブ端末２０の画面サイズが小さい場合について説明したが、これはこの例に限定されない。例えば、マスタ端末１０の画面サイズがスレーブ端末２０の画面サイズより小さい場合であっても、第３の実施形態に係る処理を適用して、マスタ端末１０とスレーブ端末２０との間でデータの同期処理を行うことができる。
【０１２９】
なお、各実施形態は、上述したそのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上述の実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【０１３０】
１０，１０’  マスタ端末
２０，２０’  スレーブ端末
３０  ネットワーク
４０  複製データ
４１  セル
６０1，６０2，６０3，６０4  特徴量
７０  画面データ
８０ａ，８０ｂ  ウィンドウ画像
１００，２００  通信部
１０１  画面記憶部
１０２，２０４  計算部
１０３  比較部
１０４  取得部
１１０，２０３  分割部
２０１  コピー記憶部
２０２  更新部
２１０  分割情報記憶部
１０００  ＣＰＵ
１００２  ＲＡＭ
１００５  表示デバイス
【図１】
2017117339.tif 000003
【図２】
2017117339.tif 000004
【図３】
2017117339.tif 000005
【図４】
2017117339.tif 000006
【図５】
2017117339.tif 000007
【図６】
2017117339.tif 000008
【図７】
2017117339.tif 000009
【図８】
2017117339.tif 000010
【図９】
2017117339.tif 000011
【図１０】
2017117339.tif 000012
【図１１】
2017117339.tif 000013
【図１２】
2017117339.tif 000014
【図１３】
2017117339.tif 000015
【図１４】
2017117339.tif 000016
【図１５】
2017117339.tif 000017
【図１６】
2017117339.tif 000018
【図１７】
2017117339.tif 000019
【図１８】
2017117339.tif 000020
【図１９】
2017117339.tif 000021
【図２０】
2017117339.tif 000022
【図２１】
2017117339.tif 000023
【図２２】
2017117339.tif 000024