(57)【特許請求の範囲】
【請求項１】
他の装置に表示させる画像を前記他の装置に送信するコンピュータが、
前記他の装置から画像のスクロールを指示する操作情報を取得すると、該操作情報に基づいてスクロール方向とスクロールの速さとを決定し、
前記他の装置の画面に表示させている画像を前記スクロール方向へ前記速さで所定時間スクロールさせるときに、前記他の装置の画面に所定の表示時間間隔で順次表示させる複数の画像から、動画を生成し、
生成した前記動画を前記他の装置に送信し、
前記動画の生成の際に、前記スクロール方向、前記速さ、および前記他の装置の画像表示領域のサイズに基づいて、前記表示時間間隔を決定する、
ことを特徴とする画像送信方法。
【請求項２】
前記複数の画像の更新頻度を算出し、
前記更新頻度が閾値以上である場合に、送信する画像の形式を動画形式と決定し、前記更新頻度が当該閾値よりも小さい場合に送信する画像の形式を静止画形式と決定し、
送信する画像の形式が動画形式に決定された場合、前記動画を生成し、
送信する画像の形式が動画形式に決定された場合、生成した前記動画を前記他の装置に送信し、送信する画像の形式が静止画形式に決定された場合、前記複数の画像を前記他の装置に送信する、
ことを特徴とする請求項１記載の画像送信方法。
【請求項３】
前記スクロール方向、前記速さ、および前記他の装置の画像表示領域のサイズに基づいて、前記他の装置の画面に表示させる画像の画質を決定する、
ことを特徴とする請求項１または２に記載の画像送信方法。
【請求項４】
前記操作情報には、前記他の装置の加速度を示す情報が含まれており、該加速度の向きを前記スクロール方向に変換し、該加速度の大きさを前記速さに変換する、
ことを特徴とする請求項１乃至３のいずれかに記載の画像送信方法。
【請求項５】
前記操作情報を受信すると、前記他の装置の利用者の識別情報に対応づけて、前記加速度を前記スクロール方向および前記速さに変換するための変換ルールを記憶する記憶装置を参照して、前記加速度を前記スクロール方向および前記速さに変換する、
ことを特徴とする請求項４記載の画像送信方法。
【請求項６】
他の装置に表示させる画像を前記他の装置に送信する画像送信装置であって、
前記他の装置から画像のスクロールを指示する操作情報を取得すると、該操作情報に基づいてスクロール方向とスクロールの速さとを決定する決定手段と、
前記他の装置の画面に表示させている画像を前記スクロール方向へ前記速さで所定時間スクロールさせるときに、前記他の装置の画面に所定の表示時間間隔で順次表示させる複数の画像から、動画を生成する生成手段と、
生成した前記動画を前記他の装置に送信する送信手段と、
を有し、
前記生成手段は、前記スクロール方向、前記速さ、および前記他の装置の画像表示領域のサイズに基づいて、前記表示時間間隔を決定する、
ことを特徴とする画像送信装置。
【請求項７】
他の装置に表示させる画像を前記他の装置に送信するコンピュータに、
前記他の装置から画像のスクロールを指示する操作情報を取得すると、該操作情報に基づいてスクロール方向とスクロールの速さとを決定し、
前記他の装置の画面に表示させている画像を前記スクロール方向へ前記速さで所定時間スクロールさせるときに、前記他の装置の画面に所定の表示時間間隔で順次表示させる複数の画像から、動画を生成し、
生成した前記動画を前記他の装置に送信し、
前記動画の生成の際に、前記スクロール方向、前記速さ、および前記他の装置の画像表示領域のサイズに基づいて、前記表示時間間隔を決定する、
処理を実行させることを特徴とする画像送信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像送信方法、画像を送信する画像送信装置および画像送信プログラムに関する。
【背景技術】
【０００２】
従来、複数の情報処理装置がネットワーク（Network）を介して接続された情報処理システム（System）が利用されている。情報処理システムには、クライアント（Client）装置としての情報処理装置がサーバ（Server）装置としての情報処理装置から、クライアント装置での処理に用いるデータを取得したり、クライアント装置がサーバ装置に処理を依頼したりするものがある。
【０００３】
情報処理システムの１つとして、シンクライアント（Thin Client）システムが利用されている。シンクライアントシステムは、クライアント装置に最低限の機能を設け、サーバ装置がアプリケーション（Application）プログラムやデータ等のリソース（Resource）を管理するものである。クライアント装置は、サーバ装置の処理結果やサーバ装置が保持するデータを表示装置に表示させる。ユーザは、表示装置に表示された内容を参照して、サーバ装置上のアプリケーションプログラムやデータをクライアント装置から操作できる。シンクライアントシステムではクライアント装置は、サーバ装置から画像情報を取得しさえすればよい。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−３６３３９号公報
【特許文献２】特開平７−２８０５７７号公報
【特許文献３】特開平５−２４１５６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、クライアント装置側の表示装置の解像度と、サーバ装置がクライアント装置に提供する画面の解像度と、が異なることがある。例えば、クライアント装置として携帯端末装置を利用する場合、携帯端末装置に設けられた表示装置は小型であることが多い。このため、サーバ装置が提供する全画面を当該表示装置に表示させることが困難な場合がある。
【０００６】
そこで、クライアント装置側で全画面の一部領域を表示装置に表示し、非表示の領域を画面のスクロールにより表示することが考えられる。このとき、クライアント装置は、現在の表示領域（あるいは、その周縁部も含む）を示す静止画情報のみを保持するのがメモリ利用の点では効率的である。その場合、静止画情報を保持していない領域へのスクロール操作を受け付けると、クライアント装置はサーバ装置から当該領域の静止画情報を取得し、当該領域を表示する。
【０００７】
しかしながら、この方法では画面の更新頻度が多い場合（例えば、長距離をスクロールする場合）、スクロール動作に追随した画面変更に遅延が生じ得るという問題がある。具体的には、クライアント装置でスクロール動作中の静止画情報を個々に受信・表示する処理が多発し、これが操作レスポンスの遅延要因となり得る。特に個々の静止画情報のデータ量が増大すると、静止画情報ごとの処理負荷が増大し、この問題は顕著となる。
【０００８】
本発明はこのような点に鑑みてなされたものであり、スクロール画像の送信遅延を抑制した画像送信方法、画像送信装置および画像送信プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、他の装置に表示させる画像を他の装置に送信するコンピュータの画像送信方法が提供される。この画像送信方法では、コンピュータが、他の装置から画像のスクロールを指示する操作情報を取得すると、該操作情報に基づいてスクロール方向とスクロールの速さとを決定する。そして、他の装置の画面に表示させている画像をスクロール方向へ当該速さで所定時間スクロールさせるときに、他の装置の画面に所定の表示時間間隔で順次表示させる複数の画像から、動画を生成する。更に、生成した動画を他の装置に送信する。動画の生成の際に、スクロール方向、速さ、および他の装置の画像表示領域のサイズに基づいて、表示時間間隔を決定する。
【００１０】
また、上記課題を解決するために、他の装置に表示させる画像を他の装置に送信する画像送信装置が提供される。この画像送信装置は、決定手段と、生成手段と、送信手段と、を有する。決定手段は、他の装置から画像のスクロールを指示する操作情報を取得すると、該操作情報に基づいてスクロール方向とスクロールの速さとを決定する。生成手段は、他の装置の画面に表示させている画像をスクロール方向へ当該速さで所定時間スクロールさせるときに、他の装置の画面に所定の表示時間間隔で順次表示させる複数の画像から、動画を生成する。送信手段は、生成した動画を他の装置に送信する。また、生成手段は、スクロール方向、速さ、および他の装置の画像表示領域のサイズに基づいて、表示時間間隔を決定する。
【００１１】
また、上記課題を解決するために画像送信方法の処理をコンピュータに実行させる画像送信プログラムが提供される。
【発明の効果】
【００１２】
上記画像送信方法、画像送信装置および画像送信プログラムによれば、スクロール画像の送信遅延を抑制できる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施の形態の情報処理システムを示す図である。
【図２】第２の実施の形態のシンクライアントシステムを示す図である。
【図３】第２の実施の形態の携帯端末装置のハードウェア構成を示す図である。
【図４】第２の実施の形態のサーバ装置のハードウェア構成を示す図である。
【図５】第２の実施の形態の携帯端末装置の機能を示すブロック図である。
【図６】第２の実施の形態のサーバ装置の機能を示すブロック図である。
【図７】操作データテーブルのデータ構造例を示す図である。
【図８】画面のマップ構成を例示する図である。
【図９】更新頻度の判定方法を例示する図である。
【図１０】第２の実施の形態の携帯端末装置の画面更新処理の全体を示すフローチャートである。
【図１１】第２の実施の形態の操作情報通知処理を示すフローチャートである。
【図１２】第２の実施の形態のベクトル値計算処理を示すフローチャートである。
【図１３】第２の実施の形態のスクロール挙動仮決定処理を示すフローチャートである。
【図１４】第２の実施の形態のスクロール挙動調整処理を示すフローチャートである。
【図１５】第２の実施の形態の更新差分作成処理を示すフローチャートである。
【図１６】更新矩形を例示する図である。
【図１７】第２の実施の形態の高頻度画面更新領域推定処理を示すフローチャートである。
【図１８】第２の実施の形態の更新差分変換処理を示すフローチャートである。
【図１９】スクロール操作を例示する図である。
【図２０】動画形式で差分情報を送信する場合の例を示す図である。
【図２１】差分情報の送信方法の第１の比較例を示す図である。
【図２２】携帯端末装置の座標系を例示する図である。
【図２３】加速度データを例示する図である。
【図２４】センサ特性補正係数テーブルのデータ構造例を示す図である。
【図２５】ベクトル値変換テーブルのデータ構造例を示す図である。
【図２６】第３の実施の形態の操作情報通知処理を示すフローチャートである。
【図２７】第３の実施の形態のベクトル値計算処理を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本実施の形態を図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態の情報処理システムを示す図である。この情報処理システムは、情報処理装置１および画像送信装置２を有する。シンクライアントシステムの例でいえば、情報処理装置１はクライアント装置に対応し、画像送信装置２はサーバ装置に対応する。
【００１５】
情報処理装置１は、画像送信装置２が提供する画像を表示し、ユーザに提示する。情報処理装置１は、入力装置１ａ、表示装置１ｂ、通知手段１ｃおよび表示処理手段１ｄを有する。
【００１６】
入力装置１ａは、ユーザの操作入力を受け付ける。入力装置１ａは、例えばタッチパネルやキーパッドあるいは各種センサ（加速度センサ等）である。
表示装置１ｂは、画像送信装置２が提供する画像３を表示装置１ｂに設けられたディスプレイに表示する。
【００１７】
通知手段１ｃは、入力装置１ａに対する操作入力に応じた操作情報を取得し、画像送信装置２に送信する。
表示処理手段１ｄは、画像送信装置２から受信した画面情報に基づいて、表示装置１ｂに表示された画像３を更新し、画像６を表示させる。
【００１８】
画像送信装置２は、情報処理装置１から受信した操作情報に基づいて表示装置１ｂに表示された画像を更新するための動画５を生成し、情報処理装置１に送信する。画像送信装置２は、バッファ２ａ、決定手段２ｂ、生成手段２ｃおよび送信手段２ｄを有する。
【００１９】
バッファ２ａは、情報処理装置１に表示させる画像を含む画像データ４を格納する記憶装置である。
決定手段２ｂは、情報処理装置１から画像３のスクロールを指示する操作情報を取得すると、当該操作情報に基づいて、スクロール方向とスクロールの速さとを決定する。
【００２０】
生成手段２ｃは、情報処理装置１の表示装置１ｂの画面に表示させている画像をスクロール方向へ当該速さで所定時間スクロールさせるときに、表示装置１ｂの画面に所定の表示時間間隔で順次表示させる複数の画像から、動画５を生成する。生成手段２ｃは、バッファ２ａに格納された画像データ４を参照することで、当該複数の画像を取得できる。
【００２１】
送信手段２ｄは、生成手段２ｃが生成した動画５を情報処理装置１に送信する。
画像送信装置２によれば、決定手段２ｂにより情報処理装置１から画像３のスクロールを指示する操作情報を取得すると、当該操作情報に基づいてスクロール方向とスクロールの速さとが決定される。生成手段２ｃにより、情報処理装置１の画面に表示させている画像をスクロール方向へ当該速さで所定時間スクロールさせるときに、情報処理装置１の画面に所定の表示時間間隔で順次表示させる複数の画像から、動画５が生成される。送信手段２ｄにより、動画５が情報処理装置１に送信される。
【００２２】
これにより、スクロール画像の送信遅延を抑制できる。具体的には、決定手段２ｂは、スクロールの画像を動画形式で生成する。ここで、従来のように静止画形式で更新用の画面情報を送信する場合、情報処理装置１側で画面情報ごとに受信・表示の処理が繰り返し行われる。特に、頻繁に画面を更新する場合には、静止画形式の画面情報を個々に処理すると、データごとの処理に要するオーバーヘッドが増大して画面更新に遅延が生じ得る。
【００２３】
そこで、上記のように動画５を生成して送信とすることで、静止画形式でスクロールの画像を送信する場合に比べて、情報処理装置１側の処理負担を軽減できる。その結果、ユーザの操作に対するレスポンス速度を改善した画面インタフェースを実現できる。
【００２４】
なお、生成手段２ｃは、表示装置１ｂに表示された画像全体を更新するための動画５を生成してもよいし、更新箇所が限られている場合には、更新領域のみにつき動画５を生成してもよい。特に、更新領域のみにつき動画５を生成して情報処理装置１に送信すれば、情報処理装置１側の処理負担を一層軽減できる。このため、レスポンス速度を一層改善できる。
【００２５】
以下に説明する第２，第３の実施の形態では、シンクライアントシステムに画像送信装置２を適用する場合を例示する。
［第２の実施の形態］
図２は、第２の実施の形態のシンクライアントシステムを示す図である。このシンクライアントシステムは、携帯端末装置１００，１００ａおよびサーバ装置２００を有する。
【００２６】
携帯端末装置１００，１００ａは、サーバ装置２００が提供する画面情報に基づいて、ユーザにグラフィカルユーザインタフェース（ＧＵＩ：Graphical User Interface）を提示する。携帯端末装置１００，１００ａには、当該ＧＵＩを表示するために最低限必要な機能が設けられる。例えば、携帯端末装置１００，１００ａには組み込みシステム（Embedded System）向けのＯＳ（Operating System）プログラムや画像表示／操作情報送信用のアプリケーションプログラムが予め格納される。
【００２７】
サーバ装置２００は、サーバ装置２００内で実行されるユーザごとのＯＳ画面（例えば、デスクトップ画面）を携帯端末装置１００，１００ａに提供する。サーバ装置２００は、ユーザごとのＯＳプログラムの実行を制御する。各ＯＳプログラムは、例えばサーバ装置２００がユーザごとに割り当てるハードウェアにより実行される。例えば、サーバ装置２００はブレード構成であり、ブレード上のハードウェアを各ユーザに割り当てることができる。あるいは、サーバ装置２００はネットワーク１０に接続された他のサーバ装置（図示せず）に設けられたハードウェアを各ユーザに割り当てることもできる。
【００２８】
ここで、携帯端末装置１００，１００ａとサーバ装置２００との間の通信は、例えばＲＦＢ（登録商標、Remote FrameBuffer）プロトコルによって実現できる。このように一般的に用いられるプロトコルでは、携帯端末装置１００，１００ａとサーバ装置２００との間で大容量のデータが送受信されると、携帯端末装置１００，１００ａ側で画面表示に遅延が生じ得る。特に、携帯端末装置１００，１００ａにおいて短時間に画面の更新が多発するような操作を受け付けた場合、遅延が増大する可能性がある。
【００２９】
以下では、このような遅延を抑制したシンクライアントシステムについて詳細に説明する。特に画面更新を指示するユーザの操作として、画面のスクロールを指示するスクロール操作を想定する。また、携帯端末装置１００，１００ａに設けられたディスプレイの解像度は、サーバ装置２００が提供するＯＳ画面全体の解像度に比べて小さい。このため、携帯端末装置１００，１００ａに設けられたディスプレイでは、ＯＳ画面を等倍で一度に全て表示することができないものとする。
【００３０】
更に、以下の説明では、主に携帯端末装置１００について説明を行うが、携帯端末装置１００ａも携帯端末装置１００と同様の構成によって実現できる。
図３は、第２の実施の形態の携帯端末装置のハードウェア構成を示す図である。携帯端末装置１００は、ＣＰＵ（Central Processing Unit）１０１、ＲＯＭ（Read Only Memory）１０２、ＲＡＭ（Random Access Memory）１０３、外部メモリインタフェース１０４、無線通信装置１０５、グラフィック処理装置１０６、ディスプレイ１０６ａ、入力インタフェース１０７、タッチパネル１０７ａ、キーパッド１０７ｂ、加速度センサ１０７ｃ、音声処理装置１０８、マイク１０８ａおよびスピーカ１０８ｂを有する。
【００３１】
ＣＰＵ１０１は、ＯＳプログラムやアプリケーションプログラムを実行して、携帯端末装置１００全体の動作を制御する。
ＲＯＭ１０２は、携帯端末装置１００の実行時に実行されるＢＩＯＳ（Basic Input / Output System）プログラムなどの所定のプログラムを記憶する。ＲＯＭ１０２は、書換え可能な不揮発性メモリであってもよい。
【００３２】
ＲＡＭ１０３は、ＣＰＵ１０１が実行するＯＳプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、ＲＡＭ１０３は、ＣＰＵ１０１の処理に用いられるデータの少なくとも一部を一時的に記憶する。
【００３３】
外部メモリインタフェース１０４は、記録媒体１１に記憶されたデータを読み取り、また、記録媒体１１にデータを格納する。記録媒体１１には、例えば、携帯端末装置１００に実行させるプログラムが記録されている。携帯端末装置１００は、例えば、記録媒体１１に記録されたプログラムを実行することで、後述するような制御機能を実現することができる。すなわち、当該制御機能の処理内容を記述したプログラムは、コンピュータ読み取り可能な記録媒体１１に記録して配布することが可能である。なお、このプログラムをＲＯＭ１０２に予め格納しておいてもよい。
【００３４】
記録媒体１１としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリを使用できる。磁気記録装置には、ＨＤＤ、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＣＤ（Compact Disc）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−Ｒ／ＲＷ／ＲＡＭなどがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。半導体メモリには、ＵＳＢ（Universal Serial Bus）メモリなどのフラッシュメモリがある。
【００３５】
無線通信装置１０５は、無線信号処理を行い、ネットワーク１０を介した無線通信を実現する。具体的には、無線通信装置１０５は、ネットワーク１０からアンテナ１０５ａを介して受信した信号を復調・復号し、得られた受信データをＣＰＵ１０１に出力する。また、無線通信装置１０５は、ＣＰＵ１０１から取得した送信データを符号化・変調し、得られた送信信号をアンテナ１０５ａを介してネットワーク１０へ送信する。
【００３６】
なお、ネットワーク１０に接続されたサーバ装置２００やその他のサーバ装置（図示せず）にプログラムを格納しておいてもよい。その場合、携帯端末装置１００は、サーバ装置２００やその他のサーバ装置からプログラムをダウンロードして実行することもできる。
【００３７】
グラフィック処理装置１０６は、画像表示処理を行う。具体的には、グラフィック処理装置１０６は、ＣＰＵ１０１から画像データを取得し、ディスプレイ１０６ａに表示させる。ディスプレイ１０６ａは、例えば液晶ディスプレイ（ＬＣＤ：Liquid Crystal Display）や有機ＥＬ（Electro Luminescence）ディスプレイである。
【００３８】
入力インタフェース１０７は、ユーザによる入力操作の処理を行う。具体的には、入力インタフェース１０７は、タッチパネル１０７ａに対するタッチ操作やキーパッド１０７ｂに対するキー押下を検出すると、押下されたタッチ位置やキーを示す入力信号をＣＰＵ１０１に出力する。また、入力インタフェース１０７は、加速度センサ１０７ｃが検出した携帯端末装置１００の３軸方向の加速度を取得してＣＰＵ１０１に出力する。
【００３９】
ここで、タッチパネル１０７ａは、ディスプレイ１０６ａの上層に位置している。ディスプレイ１０６ａの表示する画像は、タッチパネル１０７ａを透過して携帯端末装置１００のユーザから視認可能である。ユーザは、ディスプレイ１０６ａに表示された画像を見ながら、タッチパネル１０７ａに対するタッチ操作を行うことができる。
【００４０】
音声処理装置１０８は、音声信号処理を行う。具体的には、音声処理装置１０８は、マイク１０８ａから音声アナログ信号を取得し、必要な信号変換処理を行ってＣＰＵ１０１に音声データを出力する。また、音声処理装置１０８は、ＣＰＵ１０１から音声データを取得し、必要な信号変換処理を行ってスピーカ１０８ｂに音声再生させる。
【００４１】
なお、携帯端末装置１００ａも携帯端末装置１００と同様のハードウェア構成により実現できる。
図４は、第２の実施の形態のサーバ装置のハードウェア構成を示す図である。サーバ装置２００は、ＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３、ＨＤＤ（Hard Disk Drive）２０４、グラフィック処理装置２０５、入力インタフェース２０６、記録媒体読取装置２０７および通信インタフェース２０８を有する。
【００４２】
ＣＰＵ２０１は、ＯＳプログラムやアプリケーションプログラムを実行して、サーバ装置２００全体を制御する。
ＲＯＭ２０２は、サーバ装置２００の起動時に実行されるＢＩＯＳプログラムなどの所定のプログラムを記憶する。ＲＯＭ２０２は、書換え可能な不揮発性メモリであってもよい。
【００４３】
ＲＡＭ２０３は、ＣＰＵ２０１が実行するＯＳプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、ＲＡＭ２０３は、ＣＰＵ２０１の処理に用いられるデータの少なくとも一部を一時的に記憶する。
【００４４】
ＨＤＤ２０４は、ＯＳプログラムやアプリケーションプログラムを記憶する。また、ＨＤＤ２０４は、ＣＰＵ２０１の処理に用いられるデータを記憶する。なお、ＨＤＤ２０４に代えて（または、ＨＤＤ２０４と併せて）、ＳＳＤ（Solid State Drive）など他の種類の不揮発性の記憶装置を用いてもよい。
【００４５】
グラフィック処理装置２０５は、モニタ２１に接続される。グラフィック処理装置２０５は、ＣＰＵ２０１からの命令に従って、画像をモニタ２１に表示させる。
入力インタフェース２０６は、キーボード２２やマウス２３などの入力デバイスに接続される。入力インタフェース２０６は、入力デバイスから送られる入力信号をＣＰＵ２０１に出力する。
【００４６】
記録媒体読取装置２０７は、記録媒体２４に記憶されたデータを読み取る読取装置である。記録媒体２４には、例えば、サーバ装置２００に実行させる画像送信プログラムが記録されている。サーバ装置２００は、例えば、記録媒体２４に記録された画像送信プログラムを実行することで、後述するような画像送信機能を実現することができる。すなわち、画像送信プログラムは、コンピュータ読み取り可能な記録媒体２４に記録して配布することが可能である。
【００４７】
記録媒体２４としては、例えば、記録媒体１１と同様、種々の媒体を利用することができる。
なお、ネットワーク１０に接続された他のサーバ装置（図示せず）に画像送信プログラムを格納しておいてもよい。その場合、サーバ装置２００は、当該他のサーバ装置から画像送信プログラムをダウンロードして実行することもできる。
【００４８】
通信インタフェース２０８は、ネットワーク１０に接続される。通信インタフェース２０８は、ネットワーク１０を介して携帯端末装置１００，１００ａとデータ通信を行える。
【００４９】
図５は、第２の実施の形態の携帯端末装置の機能を示すブロック図である。携帯端末装置１００は、操作情報取得部１１０、操作情報通知部１２０、通信部１３０、バッファ１４０、画面情報取得部１５０、静止画処理部１６０、動画処理部１７０および画面表示処理部１８０を有する。これらのユニットの機能は、ＣＰＵ１０１が所定のプログラムを実行することにより、携帯端末装置１００上に実現される。ただし、これらのユニットの機能の全部または一部を専用のハードウェアで実装してもよい。
【００５０】
操作情報取得部１１０は、ユーザのタッチパネル１０７ａに対するタッチ操作やキーパッド１０７ｂに対するキー操作を検出する。操作情報取得部１１０は、これら操作入力に応じた操作情報を取得する。
【００５１】
操作情報には、操作入力の時間（例えば、年月日時分秒）や操作位置（例えば、ＯＳ画面上の位置を示す座標）を示す情報が含まれる。ここで、ＯＳ画面上の位置を示す座標は、サーバ装置２００で実行されているＯＳ画面上の位置を示す座標である。操作情報取得部１１０は、ディスプレイ１０６ａ上の検出位置を当該座標に変換する。そのために、例えば、操作情報取得部１１０は、ディスプレイ１０６ａ上の原点がＯＳ画面上のいずれの座標に対応づけられるかを保持する。また、操作情報には、ディスプレイ１０６ａに現在表示されている画面の領域を示す情報（以下、表示領域情報と称する）が含まれる。表示領域情報には、上記画面上の位置を示す座標に加えてディスプレイ１０６ａに表示中の画面の幅や高さを示す情報が含まれる。
【００５２】
更に、操作情報には携帯端末装置１００，１００ａを識別するための情報を含めてもよい。
操作情報取得部１１０は、取得した操作情報を操作情報通知部１２０に出力する。
【００５３】
操作情報通知部１２０は、操作情報取得部１１０から取得した操作情報を通信部１３０を介してサーバ装置２００に通知する。
通信部１３０は、サーバ装置２００との間でデータ通信を行う。通信部１３０は、操作情報通知部１２０から取得した操作情報をサーバ装置２００に送信する。通信部１３０は、ディスプレイ１０６ａに表示する画面の更新内容を示す画面情報（以下、差分情報と称する）をサーバ装置２００から受信すると、当該差分情報を画面情報取得部１５０に出力する。
【００５４】
バッファ１４０は、現在表示中の画面情報や当該画面情報の更新内容を示す差分情報を記憶する。
画面情報取得部１５０は、通信部１３０から取得した差分情報をバッファ１４０に格納する。画面情報取得部１５０は、当該差分情報が静止画形式である場合、静止画処理部１６０に差分情報の処理を指示する。一方、画面情報取得部１５０は、当該差分情報が動画形式である場合、動画処理部１７０に差分情報の処理を指示する。
【００５５】
静止画処理部１６０は、画面情報取得部１５０の指示に応じてバッファ１４０に格納された静止画形式の差分情報により画像データを生成して画面表示処理部１８０に出力する。
【００５６】
動画処理部１７０は、画面情報取得部１５０の指示に応じてバッファ１４０に格納された動画形式の差分情報をデコードして得た画像データを画面表示処理部１８０に出力する。
【００５７】
画面表示処理部１８０は、静止画処理部１６０または動画処理部１７０から取得した画像データに基づいて、当該画像データに対応する画像信号を生成し、ディスプレイ１０６ａに画面を表示させる。
【００５８】
図６は、第２の実施の形態のサーバ装置の機能を示すブロック図である。サーバ装置２００は、ＯＳ実行部２１０、表示画面生成部２２０、フレームバッファ２３０、差分データ生成部２４０、制御情報記憶部２５０および通信部２６０を有する。これらのユニットの機能は、ＣＰＵ２０１が画像送信プログラムを実行することにより、サーバ装置２００上に実現される。ただし、これらのユニットの機能の全部または一部を専用のハードウェアで実装してもよい。
【００５９】
ＯＳ実行部２１０は、携帯端末装置１００，１００ａのユーザごとのＯＳを実行する。
表示画面生成部２２０は、ＯＳ実行部２１０が実行するＯＳの画面情報（ＯＳ画面情報）を生成して、フレームバッファ２３０に格納する。
【００６０】
フレームバッファ２３０は、表示画面生成部２２０が生成したＯＳ画面情報を記憶する。
差分データ生成部２４０は、携帯端末装置１００，１００ａから取得した操作情報に基づいて、次に携帯端末装置１００，１００ａに送信すべきＯＳ画面情報の差分データを生成する。差分データ生成部２４０は、操作情報取得部２４１、ベクトル値計算部２４２、スクロール挙動決定部２４３、更新差分作成部２４４、更新頻度判定部２４５、更新差分変換部２４６および画面更新通知部２４７を有する。
【００６１】
操作情報取得部２４１は、通信部２６０を介して携帯端末装置１００，１００ａから操作情報を取得する。操作情報取得部２４１は、取得した操作情報を制御情報記憶部２５０に格納する。
【００６２】
ベクトル値計算部２４２は、制御情報記憶部２５０に格納された操作情報に基づいて、スクロール操作を示すベクトルに関する情報（以下、ベクトル情報と称する）を算出する。ベクトル情報には、例えば当該ベクトルの大きさやベクトルの方向を示す情報が含まれる。ベクトルの大きさは、スクロールの速さを示す。ベクトルの方向は、スクロールの方向を示す。
【００６３】
スクロール挙動決定部２４３は、ベクトル値計算部２４２が算出したベクトル情報と、制御情報記憶部２５０に格納された操作情報に基づいて、当該操作情報に対応する操作入力がスクロール操作であるか否かを判定する。スクロール操作である場合、スクロール挙動決定部２４３は、ベクトル情報に基づいてスクロール領域を推定する。スクロール領域とは、ＯＳ画面のうちスクロール中に携帯端末装置１００で表示対象となり得る領域の軌跡である。
【００６４】
また、スクロール挙動決定部２４３は、ベクトル情報に基づいて、そのスクロール方向、フレームサイズおよびフレームレートなどの決定を行う。ここで、スクロール方向とは、例えばディスプレイ１０６ａに表示された画面をディスプレイ１０６ａに向かって、上下左右のいずれの方向にスクロールさせるかを示す情報である。フレームサイズとは、１フレーム当たりのデータ量である。フレームレートとは、単位時間当たりのフレーム数である。
【００６５】
スクロール挙動決定部２４３が決定したスクロール領域を示す情報、スクロール方向、フレームサイズおよびフレームレート等の情報をまとめてスクロール挙動と称する。
スクロール挙動決定部２４３は、決定したスクロール挙動を更新差分作成部２４４に出力する。
【００６６】
更新差分作成部２４４は、スクロール挙動決定部２４３から取得したスクロール挙動に基づいて、フレームバッファ２３０からスクロール領域に対応する更新フレーム（以下、予測更新フレームと称する）を順次抽出する。更新差分作成部２４４は、例えばディスプレイ１０６ａの画面サイズと同一サイズで予測更新フレームを抽出する。更新差分作成部２４４は、抽出した予測更新フレーム間の更新差分の情報（更新された領域（画素）を示す情報）を取得して更新頻度判定部２４５に順次出力する。
【００６７】
更新頻度判定部２４５は、更新差分作成部２４４から順次取得する更新差分の情報により更新頻度の推定を行う。更新頻度判定部２４５は、更新頻度が所定の閾値よりも大きい場合、更新頻度が多いと判定する。そして、更新頻度判定部２４５は、当該スクロール領域に対応する更新フレームを動画形式で生成するよう更新差分変換部２４６に指示する。
【００６８】
一方、更新頻度判定部２４５は、フレーム間の更新頻度が所定の閾値よりも小さい場合、更新頻度が少ないと判定する。そして、更新頻度判定部２４５は、当該スクロール領域に対応する更新フレームを静止画形式で生成するよう更新差分変換部２４６に指示する。
【００６９】
更新差分変換部２４６は、更新頻度判定部２４５から更新フレームを動画形式とするよう指示を受けると、スクロール挙動決定部２４３からスクロール挙動および表示領域情報を取得する。そして、更新差分変換部２４６は携帯端末装置１００のディスプレイ１０６ａの画面領域サイズに対応したサイズでフレームバッファ２３０から更新フレームを抽出し、動画化する（エンコード）。更新差分変換部２４６は、動画形式で生成した差分情報を画面更新通知部２４７に出力する。
【００７０】
一方、更新差分変換部２４６は、更新頻度判定部２４５から更新フレームを静止画形式とするよう指示を受けると、スクロール挙動決定部２４３からスクロール挙動および表示領域情報を取得する。そして、更新差分変換部２４６は携帯端末装置１００のディスプレイ１０６ａの画面領域サイズに対応したサイズでフレームバッファ２３０から更新フレームを抽出し、静止画形式の差分情報を画面更新通知部２４７に出力する。
【００７１】
画面更新通知部２４７は、更新差分変換部２４６から取得した差分情報を通信部２６０を介して携帯端末装置１００，１００ａに送信する。
制御情報記憶部２５０は、差分データ生成部２４０の処理に用いる操作情報などの制御情報を記憶する。
【００７２】
通信部２６０は、携帯端末装置１００，１００ａとの間でデータ通信を行う。通信部２６０は、携帯端末装置１００，１００ａから操作情報を受信すると、受信した操作情報を操作情報取得部２４１に出力する。また、通信部２６０は、画面更新通知部２４７から差分情報を取得すると、携帯端末装置１００，１００ａに差分情報を送信する。
【００７３】
図７は、操作データテーブルのデータ構造例を示す図である。操作データテーブル２５１は、操作情報取得部２４１によって取得され、制御情報記憶部２５０に格納される。操作データテーブル２５１には、項番、操作時間、操作座標および表示領域情報の項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、１つの操作情報を示す。
【００７４】
項番の項目には、レコードを識別するための番号が設定される。操作時間の項目には、操作入力を受け付けた時間（年月日時分秒など）が設定される（図７では、時分秒が設定される場合を例示している）。操作座標の項目には、操作入力を受け付けたＯＳ画面上の位置を示す座標が設定される。表示領域情報の項目には、現在の表示領域を特定するための情報が設定される。
【００７５】
表示領域情報には、更に、原点、幅、高さを示す項目が設けられている。原点の項目は、ディスプレイ１０６ａに表示された画面の原点に対応するＯＳ画面上の座標が設定される。幅の項目には、ディスプレイ１０６ａに現在表示されている画面の幅を示す値が設定される。幅は、原点から画面の横方向（ｘ方向）の距離を示す情報である。高さの項目には、ディスプレイ１０６ａに現在表示されている画面の高さを示す値が設定される。高さは、原点から画面の縦方向（ｙ方向）の距離を示す情報である。
【００７６】
ここで、ディスプレイ１０６ａに表示される画面に向かって左上を座標の原点とし、原点から右方向を＋ｘ方向、原点から下方向を＋ｙ方向とする。
例えば、操作データテーブル２５１には、項番が“１”、操作時間が“０８：２０：２０：５４”、操作座標が“（２００，１００）”、表示領域情報につき原点が“（５０，５０）”、幅が“５００”ピクセル、高さが“６００”ピクセルという情報が設定される。
【００７７】
この項番“１”のレコードは、操作入力を受け付けた時間が８時２０分２０秒５４であり、当該操作入力で画面上の座標（ｘ，ｙ）＝（２００，１００）への入力（例えば、タッチパネル１０７ａのオフからオンへの変化）を検出したことを示す。項番“１”のレコードはスクロール操作開始の座標を示す。また、当該操作入力を受け付けた際に、ディスプレイ１０６ａに表示された画面の原点がＯＳ画面上の（ｘ，ｙ）＝（５０，５０）に対応しており、ディスプレイ１０６ａに表示された画面の幅が５００ピクセル、高さが６００ピクセルであることを示している。
【００７８】
また、例えば、操作データテーブル２５１には、項番が“２”操作時間が“０８：２０：２０：６４”、操作座標が“（５００，１００）”、表示領域情報につき原点が“５０，５０”、幅が“５００”ピクセル、高さが“６００”ピクセルという情報が設定される。
【００７９】
この項番“２”のレコードは、操作入力を受け付けた時間が８時２０分２０秒６４であり、当該操作入力で画面上の座標（ｘ，ｙ）＝（５００，１００）への入力（例えば、タッチパネル１０７ａのオンからオフへの変化）を検出したことを示す。このとき、項番“２”のレコードはスクロール操作終了の座標を示す。
【００８０】
タッチパネル１０７ａに対するタッチ操作を想定すると、上記項番“１”、“２”の操作情報によって１つのスクロール操作を特定できる。図７では、ディスプレイ１０６ａに表示される画面Ａ１が図示されている。具体的には、項番“１”のレコードは座標Ｃ１に、項番“２”のレコードは座標Ｃ２に対応している。すなわち、これらの操作情報によって、座標Ｃ１から座標Ｃ２へのユーザによるスクロール操作を特定できる。
【００８１】
キーパッド１０７ｂに対する操作に関しても同様である。例えば、右方向を示す操作キーが存在すれば、当該操作キーの押下を開始したタイミングで、画面Ａ１上に表示されたポインタが存在する位置座標に基づいて項番“１”に対応する操作情報を取得できる。そして、当該操作キーの押下に応じてポインタの位置を移動させることで、当該操作キーの押下を解除したタイミングにおけるポインタの位置座標に基づいて項番“２”に対応する操作情報を取得できる。
【００８２】
なお、操作データテーブル２５１は携帯端末装置ごとに生成される。例えば、操作情報取得部２４１は、携帯端末装置１００，１００ａの操作情報を管理する場合、各携帯端末装置の識別情報に対応づけて各テーブルを制御情報記憶部２５０に格納する。
【００８３】
図８は、画面のマップ構成を例示する図である。マップ３０は、更新頻度判定部２４５がスクロール操作による更新頻度を判定する際に用いられる。マップ３０は、ディスプレイ１０６ａに表示される画面領域に対応している。マップ３０は、当該画面領域を所定サイズの画素領域に区切ったものである。この１つの画素領域の単位をメッシュ３１と呼ぶ。メッシュ３１には、所定数の画素３１ａが含まれる。メッシュ３１は、例えば８画素×８画素で構成される。
【００８４】
更新差分作成部２４４は、フレームバッファ２３０からＯＳ画面上のスクロール領域に対応する予測更新フレームを順次抽出し、予測更新フレーム間の更新差分の情報（更新された領域（画素）を示す情報）を更新頻度判定部２４５に出力する。更新頻度判定部２４５は、マップ３０に更新差分の情報をあてはめて、各メッシュの更新有無を判定し、各メッシュの更新頻度をカウントする。
【００８５】
図９は、更新頻度の判定方法を例示する図である。図９（Ａ）にはマップ４０ａ、図９（Ｂ）にはマップ４０ｂ、図９（Ｃ）にはマップ４０ｎが、それぞれ示されている。マップ４０ａ，４０ｂ，４０ｎは、更新頻度判定部２４５が、更新差分作成部２４４から更新された領域（更新領域）を示す情報を順次取得した際のマップ状態を例示している。
【００８６】
更新領域４１ａ，４１ｂは、更新領域を示している。更新領域は、直前の予測更新フレームから更新のあった領域である。ここで、更新領域と重なる画素を含むメッシュを、“更新された”と判断する。各メッシュ内に図示した数字は、更新領域が各マップ上に展開されたタイミングにおける各メッシュの変更回数を示す。また、マップ４０ｎの各メッシュ内に図示した数字は、対象のスクロール領域につき予測更新フレームを全て展開した時点における各メッシュの変更回数を示す。なお、マップ４０ａ，４０ｂ，４０ｎにおいて、数字が図示されていないメッシュは、変更回数がゼロである。
【００８７】
マップ４０ａは、ディスプレイ１０６ａで現在表示中の画面に対して、その直後の予測更新フレームを展開した場合に更新される領域を例示している。この場合、更新領域４１ａが重なるメッシュにつき変更回数を１ずつ加算する。現在表示中の画面では、変更回数はゼロである。よって、更新領域４１ａが重なるメッシュの変更回数は“１”に更新される。
【００８８】
マップ４０ｂは、マップ４０ａの状態の直後の予測更新フレームを展開した場合を例示している。この場合、更新領域４１ｂが重なるメッシュにつき変更回数を１ずつ加算する。更新領域４１ｂが重なる各メッシュは変更回数が“１”である。よって、更新領域４１ｂが重なるメッシュの変更回数は“２”に更新される。
【００８９】
このようにして、全ての予測更新フレームにつき更新領域がマップに展開されると、結果としてマップ４０ｎが得られる。
更新頻度判定部２４５は、所定期間における変更回数、すなわち変更頻度が閾値を超えるメッシュがあるか否かを取得する。マップ４０ｎの例でいえば、閾値を７としたとき、メッシュ４１ｎが閾値７を超えていると判定できる。更新頻度判定部２４５は、当該閾値を超えたか否かに基づいて、携帯端末装置１００，１００ａに提供する差分情報を動画形式とするか静止画形式とするか決定する。
【００９０】
なお、当該閾値は、サーバ装置２００の管理者が適宜設定できる。例えば、当該閾値は携帯端末装置１００，１００ａおよびサーバ装置２００の処理能力に応じて決定する。また、携帯端末装置１００，１００ａのユーザによる設定変更を可能としてもよい。
【００９１】
次に、以上のような構成のシンクライアントシステムの処理手順を説明する。まず、画面更新処理の全体の手順について説明し、その後、画面更新処理の各処理の手順を詳細に説明する。
【００９２】
図１０は、第２の実施の形態の携帯端末装置の画面更新処理の全体を示すフローチャートである。以下、図１０に示す処理をステップ番号に沿って説明する。
［ステップＳ１］携帯端末装置１００は、ユーザの操作入力に応じた操作情報を取得してサーバ装置２００に送信する。携帯端末装置１００による操作情報の通知周期は、例えば０．１秒である。
【００９３】
［ステップＳ２］サーバ装置２００は、携帯端末装置１００から受信した操作情報に基づいて、スクロール操作のベクトル情報を取得する。
［ステップＳ３］サーバ装置２００は、ベクトル情報に基づいてスクロール挙動を仮決定する。
【００９４】
［ステップＳ４］サーバ装置２００は、仮決定したスクロール挙動の調整を行う。具体的には、フレームレート等の調整を行う。これにより、サーバ装置２００は、スクロール挙動を確定する。
【００９５】
［ステップＳ５］サーバ装置２００は、確定したスクロール挙動に基づいて予測更新フレームを抽出する。
［ステップＳ６］サーバ装置２００は、時系列の予測更新フレームにつき、メッシュごとの変更回数をカウントして、当該スクロール操作の画面の更新頻度をカウントする。サーバ装置２００は、カウントした更新頻度に基づいて、差分情報を動画形式とするか、静止画形式とするかを決定する。
【００９６】
［ステップＳ７］サーバ装置２００は、決定した形式で差分情報を生成する。例えば、動画形式で生成する場合には、フレームバッファ２３０から順次抽出した画像情報をエンコードして動画形式の差分情報を生成する。サーバ装置２００は、携帯端末装置１００に差分情報を送信する。
【００９７】
［ステップＳ８］携帯端末装置１００は、サーバ装置２００から受信した差分情報に基づいて、ディスプレイ１０６ａに表示された画面を更新する。
このようにして、シンクライアントシステムの画面更新処理が行われる。次に、上記各ステップを詳細に説明する。まず、ステップＳ１の操作情報通知処理を説明する。
【００９８】
図１１は、第２の実施の形態の操作情報通知処理を示すフローチャートである。以下、図１１に示す処理をステップ番号に沿って説明する。
［ステップＳ１１］操作情報取得部１１０は、画面変更を伴う操作入力（スクロール操作）があったか否かを判定する。当該操作入力があった場合、処理をステップＳ１３に進める。当該操作入力がない場合、処理をステップＳ１２に進める。
【００９９】
［ステップＳ１２］操作情報取得部１１０は、ＯＳやアプリケーションの処理による表示画面領域の変更があるか否かを判定する。表示画面領域の変更がある場合、処理をステップＳ１３に進める。表示画面領域の変更がない場合、処理を完了させる。
【０１００】
［ステップＳ１３］操作情報取得部１１０は、操作入力に応じた操作情報を取得する。操作情報取得部１１０は、ＯＳやアプリケーションの処理による表示画面領域の変更があると判断している場合には、当該ＯＳやアプリケーションから、表示画面領域の変更内容を取得する。操作情報取得部１１０は、ＯＳやアプリケーションから取得した変更内容に基づいて、操作情報に相当する情報を生成する。操作情報取得部１１０は、操作情報を操作情報通知部１２０に出力する。操作情報通知部１２０は、通信部１３０を介して操作情報をサーバ装置２００に送信する。
【０１０１】
このようにして、操作情報取得部１１０は操作入力を検出するたびに操作情報を取得する。操作情報通知部１２０は、サーバ装置２００に操作情報を通知する。
次に、図１０のステップＳ２のベクトル値計算処理を説明する。
【０１０２】
図１２は、第２の実施の形態のベクトル値計算処理を示すフローチャートである。以下、図１２に示す処理をステップ番号に沿って説明する。
［ステップＳ２１］操作情報取得部２４１は、通信部２６０を介して、携帯端末装置１００から操作情報を取得したか否かを判定する。操作情報を取得した場合、処理をステップＳ２２に進める。操作情報を取得していない場合、操作情報を取得するまで待機する（処理をステップＳ２１に進める）。
【０１０３】
［ステップＳ２２］操作情報取得部２４１は、制御情報記憶部２５０を参照して、前回の操作情報が存在するか否かを判定する。前回の操作情報が存在しない場合、処理をステップＳ２３に進める。前回の操作情報が存在する場合、処理をステップＳ２４に進める。
【０１０４】
［ステップＳ２３］操作情報取得部２４１は、今回受信した操作情報を制御情報記憶部２５０に格納された操作データテーブル２５１に記録する。当該操作情報は、スクロール操作の開始点に対応する。
【０１０５】
［ステップＳ２４］操作情報取得部２４１は、今回受信した操作情報を制御情報記憶部２５０に格納された操作データテーブル２５１に記録する。当該操作情報は、スクロール操作の終了点に対応する。
【０１０６】
［ステップＳ２５］ベクトル値計算部２４２は、操作データテーブル２５１を参照して、開始点と終了点の座標差分を算出する。操作データテーブル２５１の例でいえば、開始点（２００，１００）と終了点（５００，１００）との差分であるから、座標差分は（３００，０）である。ベクトル値計算部２４２は、算出した座標差分に基づいて、スクロール操作のベクトル方向を算出する。ベクトル方向は、予め定義された複数方向のいずれに該当するかを検知して決定してもよいし、所定方向のベクトルに対して、スクロール操作のベクトルが何度傾いているかを算出して決定してもよい。上記座標差分（３００，０）でいえば、ベクトル方向をｘ方向と判断できる。
【０１０７】
［ステップＳ２６］ベクトル値計算部２４２は、座標差分で示されるベクトル長を単位時間当たりに換算したベクトル長（以下、ベクトル値という）を算出する。例えば、座標差分を１秒に換算する。操作データテーブル２５１の例でいえば、開始点の操作時間は８時２０分２０秒５４、終了点の操作時間は８時２０分２０秒６４であり、その時間差は０．１秒である。よって、座標差分で示されるベクトル長３００を１秒に換算して求めたベクトル値は、３０００ピクセル／秒となる。ベクトル値計算部２４２は、ｘ方向に３０００ピクセル／秒というベクトル情報を得る。
【０１０８】
［ステップＳ２７］ベクトル値計算部２４２は、取得したベクトル情報と表示領域情報とをスクロール挙動決定部２４３に出力する。
［ステップＳ２８］ベクトル値計算部２４２は、操作データテーブル２５１に記録されたレコードをクリアする。
【０１０９】
このようにして、ベクトル値計算部２４２は操作情報に基づきスクロール操作に対応するベクトル情報を取得する。ベクトル値計算部２４２は、ベクトル情報をスクロール挙動決定部２４３に出力する。
【０１１０】
なお、ベクトル値計算部２４２を携帯端末装置１００，１００ａに設けることも考えられる。その場合、サーバ装置２００は、携帯端末装置１００，１００ａで取得されたベクトル情報を取得することで、以降の処理を実行できる。例えば、ベクトル情報をサーバ装置２００で取得する場合、ネットワークの負荷等の影響で操作情報が欠落した場合に、ベクトル情報を適正に取得できないことも考えられる。これに対し、ベクトル情報を携帯端末装置１００，１００ａで取得すれば、適正なベクトル情報を確実に取得できる。
【０１１１】
次に、図１０のステップＳ３のスクロール挙動仮決定処理を説明する。
図１３は、第２の実施の形態のスクロール挙動仮決定処理を示すフローチャートである。以下、図１３に示す処理をステップ番号に沿って説明する。
【０１１２】
［ステップＳ３１］スクロール挙動決定部２４３は、ベクトル値計算部２４２からベクトル情報を取得したか否かを判定する。ベクトル情報を取得した場合、処理をステップＳ３２に進める。ベクトル情報を取得していない場合、ベクトル情報を取得するまで待機する（処理をステップＳ３１に進める）。
【０１１３】
［ステップＳ３２］スクロール挙動決定部２４３は、ベクトル情報に基づいて、単位時間当たり（例えば１秒当たり）のスクロール領域を決定する。例えば、ベクトル情報が“ｘ方向に３０００ピクセル／秒”であるとする。スクロール挙動決定部２４３は、表示領域情報で示される領域をＯＳ画面上で当該ベクトル情報に基づいて移動させる。当該移動させた領域の軌跡がスクロール領域である。操作データテーブル２５１の例でいえば、ＯＳ画面上の座標（５０，５０）を原点（画面に向かって左上の点）として、幅３５００ピクセル、高さ６００ピクセルの領域をスクロール領域として特定できる。
【０１１４】
［ステップＳ３３］スクロール挙動決定部２４３は、予め定められた所定のフレームレートを取得する。スクロール挙動決定部２４３は、当該フレームレートに基づいて、スクロール領域に対応するフレーム数を算出する。そして、フレーム間の中心距離Ｌを算出する。ここで、中心距離Ｌとは、ＯＳ画面のうち、各フレームで表示する画面領域の中心点（フレーム幅が１／２、高さが１／２の点）同士のＯＳ画面上の距離を示す。例えば、フレームレートを３０ｆｐｓ（frames per second）とする。すると、ベクトル値“３０００ピクセル／秒”を３０ｆｐｓで割った１００ピクセルが中心距離Ｌである。中心距離Ｌは、あるフレームから次のフレームまでのＯＳ画面上のスクロール量を示す。
【０１１５】
このようにして、スクロール挙動決定部２４３はスクロール挙動を仮決定する。ここで、ベクトル値が大きくなる場合が想定される。その場合、本処理によってスクロール挙動を決定すると、各フレーム間の中心距離Ｌが増大して動画形式で差分情報を生成する際に、携帯端末装置１００，１００ａ側でスムーズな描画を行えないことが考えられる。例えば、ベクトル値が“３００００ピクセル／秒”であれば、中心距離Ｌは１０００ピクセルとなり、ＯＳ画面上の距離を大きく隔てて各フレームが作成されてしまう。
【０１１６】
そこで、このような場合には、スクロール挙動を調整して、フレームレートを変更する。上述の例でいえば、中心距離Ｌが大きくなる場合には、フレームレートをより大きな値に調整する。この処理を図１４で説明する。
【０１１７】
次に、図１０のステップＳ４のスクロール挙動調整処理を説明する。
図１４は、第２の実施の形態のスクロール挙動調整処理を示すフローチャートである。以下、図１４に示す処理をステップ番号に沿って説明する。
【０１１８】
［ステップＳ４１］スクロール挙動決定部２４３は、現在のフレームレートに基づいてフレーム間の中心距離Ｌを取得する。中心距離Ｌの算出方法は、図１３のステップＳ３３で示した通りである。
【０１１９】
［ステップＳ４２］スクロール挙動決定部２４３は、表示領域情報に基づいて、ディスプレイ１０６ａに表示された画面の領域の幅Ｗと高さＨとを取得する。
［ステップＳ４３］スクロール挙動決定部２４３は、Ｌ≧Ｗ／２、Ｌ≧Ｈ／２の少なくとも一方を満たすか否かを判定する。満たす場合、処理をステップＳ４４に進める。満たさない場合、処理をステップＳ４５に進める。
【０１２０】
［ステップＳ４４］スクロール挙動決定部２４３は、フレームレートを増加させる。増加分は、例えば所定値としてもよいし、所定割合としてもよい。スクロール挙動決定部２４３は、更に、フレームの画質を低下させる。具体的には、フレームの解像度や色数などを減らしてフレームサイズ（１フレーム当たりのサイズ）を低下させる。フレームサイズの低下量は、フレームレートの増加を相殺する分とする。このような処理を行うのは次の理由による。すなわち、フレームレートの増加に伴って携帯端末装置１００に送信するデータ量が増大し、携帯端末装置１００側で操作レスポンスが悪化する可能性がある。そこで、フレームの画質を低減することで、フレームレートの増加に伴う送信データ量の増大を抑制する。そして、処理をステップＳ４１に進める。
【０１２１】
［ステップＳ４５］スクロール挙動決定部２４３は、Ｌ≦Ｗ／１０、Ｌ≦Ｈ／１０の少なくとも一方を満たすか否かを判定する。満たす場合、処理をステップＳ４６に進める。満たさない場合、処理をステップＳ４７に進める。
【０１２２】
［ステップＳ４６］スクロール挙動決定部２４３は、フレームレートを減少させる。減少分は、例えば所定値としてもよいし、所定割合としてもよい。スクロール挙動決定部２４３は、更に、フレームの画質を向上させる。具体的には、フレームの解像度や色数などを増やしてフレームサイズを増加させる。フレームサイズの増加量は、フレームレートの低下を相殺する分とする。そして、処理をステップＳ４１に進める。
【０１２３】
［ステップＳ４７］スクロール挙動決定部２４３は、現在のフレームレート、画質などの情報によってスクロール挙動を確定する。
［ステップＳ４８］スクロール挙動決定部２４３は、更新差分作成部２４４に確定したスクロール挙動を通知する。
【０１２４】
このようにして、スクロール挙動決定部２４３は仮決定したスクロール挙動に含まれるフレームレートを確定させる。具体的には、中心距離Ｌが大き過ぎる場合には、フレームレートを増加させてフレームの画質を低下させる。他方、中心距離Ｌが小さ過ぎる場合には、フレームレートを低下させてフレームの画質を向上する。
【０１２５】
これによって、差分情報を動画形式で送信する場合に、携帯端末装置１００，１００ａ側でのスムーズな描画を実現できる。その際、携帯端末装置１００，１００ａに送信する差分情報の送信データ量が増大しないよう制御できる。
【０１２６】
次に、図１０のステップＳ５の更新差分作成処理を説明する。
図１５は、第２の実施の形態の更新差分作成処理を示すフローチャートである。以下、図１５に示す処理をステップ番号に沿って説明する。
【０１２７】
［ステップＳ５１］更新差分作成部２４４は、スクロール挙動決定部２４３からスクロール挙動を取得したか否かを判定する。スクロール挙動を取得した場合、処理をステップＳ５２に進める。スクロール挙動を取得していない場合、スクロール挙動を取得するまで待機する（処理をステップＳ５１に進める）。
【０１２８】
［ステップＳ５２］更新差分作成部２４４は、「スクロール挙動更新フレームモード」をオンにする。「スクロール挙動更新フレームモード」とは、更新頻度判定部２４５に対して予測更新フレームを一時的に出力するモードである。
【０１２９】
［ステップＳ５３］更新差分作成部２４４は、取得したスクロール挙動に含まれるスクロール領域、フレームサイズ、フレームレートおよび中心距離Ｌを特定する。また、更新差分作成部２４４は、更新頻度判定部２４５にスクロール挙動を通知する。
【０１３０】
［ステップＳ５４］更新差分作成部２４４は、特定した各情報に基づいてフレームバッファ２３０から予測更新フレームを時系列の順に抽出する。なお、抽出するフレームの開始点は、ディスプレイ１０６ａに現在表示中の画面領域に対応するフレームとする。すなわち、当該開始点から中心距離Ｌずつ離れた各領域につき、特定したフレームレート、サイズで予測更新フレームを抽出する。
【０１３１】
［ステップＳ５５］更新差分作成部２４４は、抽出した予測更新フレームとその直前の予測更新フレームとを比較して、更新領域の情報を更新頻度判定部２４５に順次出力する。
【０１３２】
［ステップＳ５６］更新差分作成部２４４は、スクロール領域内の全予測更新フレームについて、更新領域の情報を出力し終わったか否か判定する。出力を終了した場合、処理をステップＳ５７に進める。出力を終了していない場合、処理をステップＳ５５に進める。
【０１３３】
［ステップＳ５７］更新差分作成部２４４は、「スクロール挙動更新フレームモード」をオフにする。その後、更新差分作成部２４４は、更新差分変換部２４６に対する差分情報の出力を行う（ステップＳ５８〜Ｓ６２に対応する）。
【０１３４】
［ステップＳ５８］更新差分作成部２４４は、フレームバッファ２３０を参照して、１つ前のフレームバッファ情報が存在するか否か判定する。存在する場合、処理をステップＳ５９に進める。存在しない場合、処理をステップＳ６１に進める。
【０１３５】
［ステップＳ５９］更新差分作成部２４４は、現在のフレームバッファ情報と直前のフレームバッファ情報とを比較する。比較対象とする領域は、ディスプレイ１０６ａに表示中の画面に対応する領域である。
【０１３６】
［ステップＳ６０］更新差分作成部２４４は、ディスプレイ１０６ａの表示画面の更新された部分につき更新矩形データを生成し、更新差分変換部２４６に出力する。
［ステップＳ６１］更新差分作成部２４４は、ディスプレイ１０６ａの表示画面全体につき更新矩形データを生成し、更新差分変換部２４６に出力する。
【０１３７】
［ステップＳ６２］更新差分作成部２４４は、現在のフレームバッファ情報を、フレームバッファ２３０に保存する。
このようにして、更新差分作成部２４４はスクロール挙動に基づき、予測更新フレームを抽出し、各予測更新フレームと直前の予測更新フレームとの更新差分（更新領域の情報）を更新頻度判定部２４５に出力する。更新頻度判定部２４５は、当該情報に基づいてスクロールによる画面の更新頻度を判定する。
【０１３８】
ここで、更新矩形データについて説明する。
図１６は、更新矩形を例示する図である。図１６（Ａ）には、ディスプレイ１０６ａに表示される画面領域Ｋ１のうち、更新対象とする領域が示されている。当該領域を囲う矩形が更新矩形Ｒ１である。更新矩形Ｒ１を示すデータは、図１５で説明したステップＳ６０の更新矩形データに対応する。
【０１３９】
図１６（Ｂ）には、ディスプレイ１０６ａに表示される画面領域Ｋ２のうち、更新対象とする領域が示されている。ここでは、画面領域Ｋ２の全領域である。当該領域を囲う矩形が更新矩形Ｒ２である。更新矩形Ｒ２を示すデータは、図１５で説明したステップＳ６１の更新矩形データに対応する。
【０１４０】
更新差分作成部２４４は、更新矩形データによって、ディスプレイ１０６ａに表示された画面のうちの更新対象となる画面のみにつき差分情報を生成するよう更新差分変換部２４６に指示できる。すなわち、図１６（Ａ）のように更新部分についてのみ更新矩形Ｒ１が取得された場合、更新差分変換部２４６はディスプレイ１０６ａの表示画面に対して更新矩形Ｒ１内の領域についてのみ差分情報を作成すればよい。携帯端末装置１００の画面表示処理部１８０は、当該差分情報の領域について表示画面の更新を行う。
【０１４１】
これにより、携帯端末装置１００，１００ａとサーバ装置２００との間のデータ通信量を低減できるとともに、携帯端末装置１００，１００ａの表示処理に係る処理負荷を低減できる。
【０１４２】
次に、図１０のステップＳ６の更新頻度判定処理を説明する。
図１７は、第２の実施の形態の高頻度画面更新領域推定処理を示すフローチャートである。以下、図１７に示す処理をステップ番号に沿って説明する。
【０１４３】
［ステップＳ７１］更新頻度判定部２４５は、更新差分作成部２４４が「スクロール挙動更新モード」が“オン”であるか否かを判定する。オンである場合、処理をステップＳ７２に進める。オフである場合、オンとなることを待機する（処理をステップＳ７１に進める）。
【０１４４】
［ステップＳ７２］更新頻度判定部２４５は、更新差分作成部２４４からスクロール挙動の通知を受けたか否かを判定する。通知を受けた場合、処理をステップＳ７３に進める。通知を受けていない場合、通知を待機する（処理をステップＳ７１に進める）。
【０１４５】
［ステップＳ７３］更新頻度判定部２４５は、ディスプレイ１０６ａの表示画面に対応する画面フレームサイズのマップ３０を作成する。
［ステップＳ７４］更新頻度判定部２４５は、更新差分作成部２４４から取得した更新領域をマップ３０にマッピングする。
【０１４６】
［ステップＳ７５］更新頻度判定部２４５は、更新されたメッシュ３１につき更新回数をカウントする。
［ステップＳ７６］更新頻度判定部２４５は、更新差分作成部２４４の「スクロール挙動更新モード」が“オフ”であるか否かを判定する。オフである場合、処理をステップＳ７７に進める。オンである場合、処理をステップＳ７４に進める。
【０１４７】
［ステップＳ７７］更新頻度判定部２４５は、マップ３０の各メッシュについてカウントした更新頻度が所定の閾値以上であるか否かを判定する。閾値以上である場合、処理をステップＳ７８に進める。閾値よりも小さい場合、処理をステップＳ７９に進める。
【０１４８】
［ステップＳ７８］更新頻度判定部２４５は、携帯端末装置１００に送信する差分情報を動画形式とすることを決定する。更新頻度判定部２４５は、差分情報を動画形式とするよう更新差分変換部２４６に指示する。
【０１４９】
［ステップＳ７９］更新頻度判定部２４５は、携帯端末装置１００に送信する差分情報を静止画形式とすることを決定する。更新頻度判定部２４５は、差分情報を静止画形式とするよう更新差分変換部２４６に指示する。
【０１５０】
このようにして、更新頻度判定部２４５は、更新頻度の判定を行う。そして、更新頻度判定部２４５は、更新頻度に応じて差分情報を動画形式とするか、静止画形式とするかを決定する。更新差分変換部２４６は、更新頻度判定部２４５が決定した形式で差分情報を生成する。
【０１５１】
次に、図１０のステップＳ７の更新差分変換処理を説明する。
図１８は、第２の実施の形態の更新差分変換処理を示すフローチャートである。以下、図１８に示す処理をステップ番号に沿って説明する。
【０１５２】
［ステップＳ８１］更新差分変換部２４６は、差分情報を動画形式で生成するか否か判定する。動画形式の場合、処理をステップＳ８２に進める。動画形式でない場合、処理をステップＳ８７に進める。更新差分変換部２４６は、差分情報を動画形式で生成する旨の指示を更新頻度判定部２４５から受けている場合に、動画形式で生成すると判定する。一方、更新差分変換部２４６は、差分情報を静止画形式で生成する旨の指示を更新頻度判定部２４５から受けている場合には、動画形式でないと判定する。
【０１５３】
［ステップＳ８２］更新差分変換部２４６は、更新差分作成部２４４から更新矩形データを取得する。また、更新差分変換部２４６は、スクロール挙動決定部２４３からスクロール挙動および表示領域情報を取得する。
【０１５４】
［ステップＳ８３］更新差分変換部２４６は、フレームバッファ２３０に格納された現表示画面の情報を参照し、表示領域情報で示される位置（領域）をスタート地点として、スクロールの軌跡を更新フレームとする動画形式の差分情報（動画データ）を生成する。動画データの生成に用いる各種パラメータは、中心距離Ｌ、フレームサイズおよびフレームレートの情報はスクロール挙動に含まれている。また、作成対象とする領域の大きさは、更新矩形データに基づいて決定する。更新差分変換部２４６は、生成した動画データを画面更新通知部２４７に出力する。
【０１５５】
［ステップＳ８４］画面更新通知部２４７は、通信部２６０を介して携帯端末装置１００に動画データを送信する。
［ステップＳ８５］画面更新通知部２４７は、動画データの送信を終了する。
【０１５６】
［ステップＳ８６］更新差分変換部２４６は、スクロールの最後の画面につき、静止画データを生成し、画面更新通知部２４７に出力する。画面更新通知部２４７は、通信部２６０を介して、最後の画面の静止画データを携帯端末装置１００に送信する。
【０１５７】
［ステップＳ８７］更新差分変換部２４６は、更新差分作成部２４４から更新矩形データを取得する。また、更新差分変換部２４６は、スクロール挙動決定部２４３からスクロール挙動および表示領域情報を取得する。
【０１５８】
［ステップＳ８８］更新差分変換部２４６は、フレームバッファ２３０を参照し、フレームレートや中心距離Ｌに基づいてスクロール領域のデータを順次取得する。取得する領域の大きさは、更新矩形データに基づいて決定する。
【０１５９】
［ステップＳ８９］更新差分変換部２４６は、取得したスクロール領域の各データに基づいて、静止画形式の差分情報（静止画データ）を生成する。更新差分変換部２４６は、生成した静止画データを画面更新通知部２４７に出力する。
【０１６０】
［ステップＳ９０］画面更新通知部２４７は、通信部２６０を介して携帯端末装置１００に静止画データを送信する。
このようにして、更新差分変換部２４６は、差分情報の生成を行う。更新差分変換部２４６は、更新頻度判定部２４５の指示に応じて、動画形式の差分情報（動画データ）または静止画形式の差分情報（静止画データ）のいずれかを生成し、携帯端末装置１００，１００ａに送信する。
【０１６１】
図１９は、スクロール操作を例示する図である。携帯端末装置１００のディスプレイ１０６ａには、サーバ装置２００が提供するデスクトップ画面３００の一部が表示されているとする。携帯端末装置１００のユーザは、ディスプレイ１０６ａに表示された画面を閲覧して、紙面に向かって右方向にスクロールさせるスクロール操作を行う。例えば、ユーザは、タッチパネル１０７ａのある一点を指でタッチし、タッチした状態のまま右方向に指をスライドさせる。そして、スライドした先でタッチパネル１０７ａから指を離す。携帯端末装置１００は、当該一連のスクロール操作に応じた操作情報を取得して、サーバ装置２００に送信する。
【０１６２】
サーバ装置２００は、当該スクロール操作に応じたスクロール挙動を取得する。サーバ装置２００は、スクロール挙動に基づいて予測更新フレームＦ１，・・・，Ｆｎを取得し、各予測更新フレーム間の更新頻度を判定する。ここで、予測更新フレームＦ１は、スクロール挙動で示されるスクロール領域の開始点に対応する予測更新フレームである。予測更新フレームＦｎは、スクロール領域の終了点に対応する予測更新フレームである。
【０１６３】
そして、サーバ装置２００は、更新頻度が所定の閾値以上である場合には、動画形式で生成した差分情報を携帯端末装置１００に送信する。
図２０は、動画形式で差分情報を送信する場合の例を示す図である。サーバ装置２００は、更新頻度を判定した結果、動画形式の差分情報（動画データ）を送信する旨を決定したとする。すると、サーバ装置２００は、スクロール領域３１０内で更新フレームＦを順次取得して、エンコードし、動画データを生成する。図２０では、動画データを構成するフレームデータ４１１，４１２，４１３，・・・，４２１，４２２，４２３，・・・が示されている。ここでは動画データの圧縮方式としてＭＰＥＧ（Moving Picture Experts Group）を利用した場合の例を示している。この場合フレームデータ４１１および４２１はＩピクチャと呼ばれる基準画像であり、フレームデータ４１２，４１３，４２２，４２３はＰピクチャもしくはＢピクチャと呼ばれる差分画像である。また、動画データ作成時の圧縮方式はＭＰＥＧに限らず、これに似た圧縮を行うＭＰＥＧ２やＨ．２６４といった他の圧縮方式を利用してもかまわない。
【０１６４】
例えば、期間Ｔ１では、フレームデータ４１１，４１２，４１３，・・・を携帯端末装置１００に送信する。また、期間Ｔ２では、画面の更新がないためフレームデータの送信は行われない。期間Ｔ３では、フレームデータ４２１，４２２，４２３，・・・を携帯端末装置１００に送信する。
【０１６５】
更に、サーバ装置２００はスクロール領域３１０の最も右側の領域（スクロールが完了する領域）につき静止画データ４３０を生成し、携帯端末装置１００に送信する。
このように画面の更新頻度が高い場合に動画形式で差分情報を生成することで、携帯端末装置１００側でスクロール中の画面をスムーズに表示することが可能となる。
【０１６６】
また、サーバ装置２００は、最後に静止画データ４３０を送信する。これにより、スクロール前の画面とスクロール後の画面とを共通の画質とすることができるので、ユーザに違和感を与えることもない。
【０１６７】
図２１は、差分情報の送信方法の第１の比較例を示す図である。図２１では、サーバ装置２００が静止画形式の差分情報（静止画データ）を送信する場合を例示している。その場合、サーバ装置２００は、静止画データ５１０，５２０，５３０，５４０，５５０を生成して、携帯端末装置１００に送信する。スクロールによる更新頻度が低い場合には、静止画データによってスクロール中の画面を送信しても携帯端末装置１００の操作レスポンスに与える影響は小さい。
【０１６８】
しかし、スクロールによる更新頻度が高い場合には、携帯端末装置１００に送信すべき静止画データの数は更新頻度に応じて増大する。一方で、静止画データ単体のデータサイズは同じである。このため、携帯端末装置１００は、多量の静止画データを短時間で受信し、表示することとなり、その処理負荷が増大する。これは、操作レスポンスを悪化させる要因となり得る。
【０１６９】
そこで、サーバ装置２００は、図２０で示したように画面の更新頻度が高い場合に動画形式で差分情報を生成する。このため、各フレームにつき動画形式で採用されている効率的な圧縮方法を利用できる。これにより、携帯端末装置１００側での処理コストを軽減できる。その結果、シンクライアントシステムにおける操作レスポンスを改善できる。
【０１７０】
［第３の実施の形態］
以下、第３の実施の形態を図面を参照して詳細に説明する。前述の第２の実施の形態との相違点について主に説明し、同様の事項に関しては説明を省略する。
【０１７１】
第２の実施の形態では、タッチパネルやキーパッドによる操作入力を主に説明した。これに対し、第３の実施の形態では、加速度センサによる操作入力を行う場合を説明する。ユーザは、携帯端末装置を振ることでスクロール操作を行える。
【０１７２】
ここで、第３の実施の形態のシンクライアントシステムの全体構成は、図２で説明した第２の実施の形態のシンクライアントシステムと同様であるため説明を省略する。第３の実施の形態の携帯端末装置およびサーバ装置のハードウェアおよび機能構成は、図３〜６で説明した第２の実施の形態の携帯端末装置１００およびサーバ装置２００の各構成と同様であるため説明を省略する。
【０１７３】
以下では、第３の実施の形態の携帯端末装置およびサーバ装置の各構成につき、便宜的に携帯端末装置１００およびサーバ装置２００の各構成に示した符号と同一の符号を用いる。
【０１７４】
ただし、携帯端末装置１００では、操作情報取得部１１０が加速度センサ１０７ｃに対する操作入力に基づいて操作情報を取得する点が異なる。操作情報取得部１１０は、操作情報に加速度センサ１０７ｃで検出された加速度の情報を含める。
【０１７５】
また、サーバ装置２００では、ベクトル値計算部２４２が当該操作情報からベクトル値を算出する際に、携帯端末装置１００，１００ａそれぞれの特性を考慮する点が異なる。
図２２は、携帯端末装置の座標系を例示する図である。座標系５０は、携帯端末装置１００に固定された座標系である。座標系５０は、Ｘ軸、Ｙ軸、Ｚ軸からなる３次元座標系である。携帯端末装置１００のディスプレイ１０６ａに向かって上方向をＸ軸方向、左方向をＹ軸方向、紙面奥から紙面手前側へ向かう方向をＺ軸方向とする。
【０１７６】
加速度センサ１０７ｃは、ユーザによる携帯端末装置１００の移動操作を検知すると、座標系５０の各軸方向の加速度を測定する。操作情報取得部１１０は、加速度センサ１０７ｃが測定した加速度を取得して操作情報に含め、操作情報通知部１２０に出力する。
【０１７７】
ここで、操作情報取得部１１０は、各携帯端末装置に付与された識別情報を操作情報に含める。また、操作情報取得部１１０は、各携帯端末装置を操作するユーザの識別情報を操作情報に含める。
【０１７８】
図２３は、加速度データを例示する図である。図２３（Ａ）は、携帯端末装置１００で測定された加速度データのグラフ６１０を示している。図２３（Ｂ）は、携帯端末装置１００ａで測定された加速度データのグラフ６２０を示している。グラフ６１０，６２０とも横軸は時間（秒）、縦軸は加速度（メートル毎秒毎秒）である。
【０１７９】
携帯端末装置１００，１００ａでは、それぞれに設けられた加速度センサの特性が異なる。このため、同一ユーザが同様に操作入力を行ったとしても、測定される加速度は異なる。グラフ６１０，６２０は、携帯端末装置１００，１００ａに対して同様の操作入力を行った場合を例示しており、携帯端末装置によって、測定される加速度データが異なっていることが分かる。更に、ユーザによって操作の癖があるため、同一の携帯端末装置を異なるユーザが操作すれば、同じ操作指示を行う操作であっても、測定される加速度は異なる。
【０１８０】
そこで、サーバ装置２００では、携帯端末装置ごとの加速度センサの特性やユーザの操作傾向を考慮してベクトル情報を取得する。
図２４は、センサ特性補正係数テーブルのデータ構造例を示す図である。センサ特性補正係数テーブル２５２は、携帯端末装置１００，１００ａに設けられた加速度センサの特性を補正するための補正係数を定義したテーブルである。センサ特性補正係数テーブル２５２は、制御情報記憶部２５０に予め格納される。
【０１８１】
センサ特性補正係数テーブル２５２には、端末ＩＤ（IDentifier）および補正係数の項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、１つの携帯端末装置に対する補正係数の組を示す。
【０１８２】
端末ＩＤの項目には、携帯端末装置の識別情報が設定される。補正係数の項目には、各軸のパラメータの補正を行うための係数が設定される。補正対象のパラメータは後述するベクトル値変換テーブルに定義されるパラメータである。補正係数の項目には、更に、Ｘ，Ｙ，Ｚの項目が設けられている。Ｘの項目には、Ｘ軸方向のパラメータの補正係数が設定される。Ｙの項目には、Ｙ軸方向のパラメータの補正係数が設定される。Ｚの項目には、Ｚ軸方向のパラメータの補正係数が設定される。
【０１８３】
例えば、センサ特性補正係数テーブル２５２には、端末ＩＤが“Ｍ００００１”、補正係数がＸ軸方向“１．５”、Ｙ軸方向“１．０”、Ｚ軸方向“１．２”という情報が設定される。
【０１８４】
これは、端末ＩＤ“Ｍ００００１”に対応する携帯端末装置１００から加速度データを取得した場合、Ｘ軸方向のパラメータを１．５倍、Ｙ軸方向のパラメータを１．０倍、Ｚ軸方向のパラメータを１．２倍に補正することを示す。
【０１８５】
図２５は、ベクトル値変換テーブルのデータ構造例を示す図である。ベクトル値変換テーブル２５３は、ユーザごとの操作傾向に応じた操作方向の判定条件と、加速度をベクトル値に変換するための計算式とを定義したテーブルである。ベクトル値変換テーブル２５３は、制御情報記憶部２５０に予め格納される。
【０１８６】
ベクトル値変換テーブル２５３には、ユーザＩＤ、加速度判定条件、スクロール方向およびベクトル値計算式の項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、スクロール方向やスクロール量の対応関係を示す。
【０１８７】
ユーザＩＤの項目には、携帯端末装置を操作するユーザの識別情報が設定される。加速度判定条件の項目には、スクロール方向の判定条件が設定される。スクロール方向の項目には、加速度判定条件の項目に設定された判定条件が満たされる場合のスクロール方向が設定される。ベクトル値計算式には、当該スクロール方向に対するベクトル値の計算式が設定される。
【０１８８】
例えば、ベクトル値変換テーブル２５３には、ユーザＩＤが“Ｕ００００１”、加速度判定条件が“Ｘ’＞２０”、スクロール方向が“上”、ベクトル値計算式が“Ｘ’×１００”という情報が設定される。
【０１８９】
これは、Ｘ軸方向の加速度が２０メートル毎秒毎秒である場合、スクロール方向（スクロール操作のベクトル方向）を上方向（Ｘ軸の正の方向）と判定することを示している。その際、スクロール方向のベクトル値をＸ軸方向の加速度に１００を乗じた値とすることを示している。ここで、ベクトル値の単位は、例えばピクセル／秒である。
【０１９０】
なお、図２５中、“Ｘ’”は、Ｘ軸方向の加速度を示す。“Ｙ’”、“Ｚ’”も同様である。
ベクトル値変換テーブル２５３では、加速度判定条件に複数の条件が定義されることもある。例えば、ベクトル値変換テーブル２５３には、ユーザＩＤが“Ｕ００００１”、加速度判定条件が“Ｙ’／Ｚ’＞６、Ｙ’＞０”、スクロール方向が“左”、ベクトル値計算式が“Ｙ’×７０”という情報が設定される。
【０１９１】
これは、Ｙ軸方向の加速度をＺ軸方向の加速度で除した結果が６より大きく、かつ、Ｙ軸方向の加速度が０より大きい場合に、スクロール方向を左方向（Ｙ軸の正の方向）と判定することを示している。その際、スクロール方向のベクトル値をＹ軸方向の加速度に７０を乗じた値とすることを示している。
【０１９２】
ここで、ベクトル値計算部２４２は、センサ特性補正係数テーブル２５２から補正係数を得ている場合、ベクトル値変換テーブル２５３の各パラメータを補正する。例えば、センサ特性補正係数テーブル２５２から端末ＩＤ“Ｍ００００１”の補正係数Ｘ“１．５”、Ｙ“１．０”、Ｚ“１．２”を取得している場合、ユーザＩＤ“Ｕ００００１”に対応する各パラメータの補正方法は次の通りである。
【０１９３】
（１）加速度判定条件“Ｘ’＞２０”を“Ｘ’＞２０×１．５＝３０”とする。
（２）加速度判定条件“Ｙ’／Ｚ’＞６”を“Ｙ’／Ｚ’＞６×１．０／１．２＝５”とする。
【０１９４】
（３）加速度判定条件“Ｙ’／Ｚ’＜３”を“Ｙ’／Ｚ’＜３×１．０／１．２＝２．５”とする。
（４）ベクトル値計算式“Ｘ’×１００”の“１００”を１．５倍して、“Ｘ’×１５０”とする。
【０１９５】
（５）ベクトル値計算式“Ｙ’×３０＋Ｚ’×１００”の“１００”を１．２倍して“Ｙ’×３０＋Ｚ’×１２０”とする。
当該補正後のパラメータを利用してベクトル値を算出することで、ユーザの操作の癖や加速度センサの設置場所等の影響を考慮したベクトル値を算出できる。
【０１９６】
次に、以上のような構成のシンクライアントシステムの処理手順を説明する。ここで、携帯端末装置の画面更新処理の全体は、図１０で示した第２の実施の形態の同処理の手順と同一であるため説明を省略する。第３の実施の形態では、当該処理に含まれるステップＳ１（操作情報通知処理）およびステップＳ２（ベクトル値計算処理）の手順が異なる。よって、以下では、これらの処理手順につき詳細に説明する。
【０１９７】
図２６は、第３の実施の形態の操作情報通知処理を示すフローチャートである。以下、図２６に示す処理をステップ番号に沿って説明する。
［ステップＳ１０１］操作情報取得部１１０は、携帯端末装置１００を移動させることによる操作入力（スクロール操作）があったか否かを判定する。当該操作入力があった場合、加速度センサ１０７ｃが測定した各軸方向の加速度を取得して、処理をステップＳ１０２に進める。当該操作入力がない場合、処理を完了する。
【０１９８】
［ステップＳ１０２］操作情報取得部１１０は、操作入力に応じた加速度の情報を含む操作情報を取得する。操作情報取得部１１０は、携帯端末装置１００の端末ＩＤ（例えば、Ｍ００００１）や携帯端末装置１００を操作するユーザのユーザＩＤ（例えば、“Ｕ００００１”）を取得して操作情報に含める。操作情報取得部１１０は、操作情報を操作情報通知部１２０に出力する。操作情報通知部１２０は、通信部１３０を介して操作情報をサーバ装置２００に送信する。
【０１９９】
このようにして、操作情報取得部１１０は操作入力に応じた加速度の情報を含む操作情報を取得する。操作情報通知部１２０は、サーバ装置２００に操作情報を通知する。
図２７は、第３の実施の形態のベクトル値計算処理を示すフローチャートである。以下、図２７に示す処理をステップ番号に沿って説明する。
【０２００】
［ステップＳ１１１］操作情報取得部２４１は、通信部２６０を介して、携帯端末装置１００から操作情報を取得したか否かを判定する。操作情報を取得した場合、操作情報をベクトル値計算部２４２に出力して、処理をステップＳ１１２に進める。操作情報を取得していない場合、操作情報を取得するまで待機する（処理をステップＳ１１１に進める）。
【０２０１】
［ステップＳ１１２］ベクトル値計算部２４２は、操作情報から端末ＩＤとユーザＩＤとを取得する。例えば、ベクトル値計算部２４２は、端末ＩＤ“Ｍ００００１”を、ユーザＩＤ“Ｕ００００１”を取得する。
【０２０２】
［ステップＳ１１３］ベクトル値計算部２４２は、制御情報記憶部２５０に格納されたセンサ特性補正係数テーブル２５２を参照して、端末ＩＤに対応する補正係数が定義されているか否か判定する。定義されている場合、処理をステップＳ１１４に進める。定義されていない場合、処理をステップＳ１１５に進める。
【０２０３】
［ステップＳ１１４］ベクトル値計算部２４２は、ユーザＩＤに基づいて制御情報記憶部２５０に格納されたベクトル値変換テーブル２５３を参照する。ベクトル値計算部２４２は、ユーザＩＤに対応する各パラメータを、補正係数で補正する。補正の具体例は、図２５で説明した通りである。
【０２０４】
［ステップＳ１１５］ベクトル値計算部２４２は、ユーザＩＤに基づいてベクトル値変換テーブル２５３の加速度判定条件を参照し、加速度の判定を行う。なお、加速度判定条件に含まれるパラメータをステップＳ１１４で補正している場合には、補正後の加速度判定条件により判定を行う。
【０２０５】
［ステップＳ１１６］ベクトル値計算部２４２は、ステップＳ１１３で取得した補正後の加速度につき、当該レコードの加速度判定条件を満たすか否かを判定する。いずれかの加速度判定条件を満たす場合、処理をステップＳ１１６に進める。いずれの加速度判定条件も満たさない場合、処理を完了する。なお、いずれの加速度判定条件も満たさない場合には、当該操作情報はスクロール操作を示すものではないと判断できる。よって、この場合には、以降の処理を行わずに携帯端末装置の画面更新処理を完了する。
【０２０６】
［ステップＳ１１７］ベクトル値計算部２４２は、加速度判定条件によって特定したスクロール方向につき、ベクトル値を算出する。例えば、端末ＩＤ“Ｍ００００１”、ユーザＩＤ“Ｕ００００１”に対して、加速度（Ｘ’，Ｙ’，Ｚ’）＝（３５，−５．０，３．０）を取得している場合を考える。この場合、ベクトル値変換テーブル２５３（パラメータ補正後とする）によって、次のベクトル値を算出できる。
【０２０７】
（１）Ｘ’＝３５＞３０を満たす。よって、上方向のスクロールにつきベクトル値Ｘ’×１５０＝３５×１５０＝５２５０ピクセル／秒を取得する。
（２）Ｙ’／Ｚ’＝−１．６７＜２．５、かつ、Ｚ’＝３．０＞０を満たす。よって、右方向のスクロールにつきベクトル値Ｙ’×３０＋Ｚ’×１２０＝−５．０×３０＋３．０×１２０＝−１５０＋３６０＝２１０ピクセル／秒を取得する。
【０２０８】
なお、ベクトル値計算部２４２は、上記（１）（２）のうち、有意な方向のみについて、ベクトル値を取得する。この例では、上方向のベクトル値が右方向のベクトル値よりも大きいので上方向（ディスプレイ１０６ａの表示画面ではｙ軸の負の方向に対応する）につき、５２５０ピクセル／秒のベクトル値を取得し、当該方向と併せてベクトル情報とする。ただし、（１）（２）で求めたベクトルを更に合成して、右上方向のベクトルを求め、これをベクトル情報としてもよい。
【０２０９】
［ステップＳ１１８］ベクトル値計算部２４２は、取得したベクトル情報と表示領域情報とをスクロール挙動決定部２４３に出力する。ここで、表示領域情報は、上述したように操作情報に含まれる情報である。
【０２１０】
このようにして、ベクトル値計算部２４２は操作情報に基づきスクロール操作に対応するベクトル情報を取得する。ベクトル値計算部２４２は、ベクトル情報をスクロール挙動決定部２４３に出力する。
【０２１１】
以降、第３の実施の形態のシンクライアントシステムは、図１０で示した第２の実施の形態の画面更新処理の全体に含まれるステップＳ３〜Ｓ８の各処理を実行する。これらの処理手順に関しては、上述した手順と同様であるため説明を省略する。
【０２１２】
これにより、携帯端末装置１００，１００ａの移動により測定した加速度に応じて画面のスクロールを行う場合にも、操作レスポンスの低下を抑制できる。すなわち、第２の実施の形態と同様に、サーバ装置２００は、スクロールによる画面の更新頻度が高くなる場合には、差分情報を動画形式で生成して携帯端末装置１００，１００ａに送信する。このため、静止画形式で送信する場合に比べて携帯端末装置１００，１００ａの処理負荷を低減することができる。
【０２１３】
特に、サーバ装置２００は、各携帯端末装置の加速度センサの特性やユーザの操作傾向に応じた方法でベクトル情報を求める。これによって、携帯端末装置およびユーザごとに快適な操作環境を提供することができる。
【０２１４】
なお、センサ特性補正係数テーブル２５２およびベクトル値変換テーブル２５３は、サーバ装置２００の管理者や携帯端末装置１００，１００ａのユーザによって適宜変更可能としてもよい。
【０２１５】
更に、第２，第３の実施の形態では、タッチパネル１０７ａ、キーパッド１０７ｂおよび加速度センサ１０７ｃによってスクロール操作を受け付ける場合を例示したが、これらに限らずに上述の処理方法を適用できる。例えば、タッチパネル１０７ａ、キーパッド１０７ｂおよび加速度センサ１０７ｃに代えて、（あるいは、これらと併せ）光センサ、地磁気センサ、温度センサ等を設けて、これらセンサによるスクロール操作を受け付けてもよい。また、マイク１０８ａに対する音声によるスクロール操作を受け付ける場合にも適用できる。
【０２１６】
また、携帯端末装置１００，１００ａは、例えば携帯電話機、ＰＤＡ（Personal Digital Assistant）、ラップトップ型コンピュータ、携帯ゲーム機および携帯音楽プレイヤー等である。サーバ装置２００が実行するＯＳは、特定のアーキテクチャに依存せず、種々のＯＳとすることができる。
【０２１７】
以上、画像送信方法、画像送信装置および画像送信プログラムを図示の実施の形態に基づいて説明したが、これらに限定されるものではなく、各部の構成は同様の機能を有する任意の構成のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。更に、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【０２１８】
以上の実施の形態に関し、更に以下の付記を開示する。
（付記１）  コンピュータが、
他の装置から画像のスクロールを指示する操作情報を取得すると、該操作情報に基づいてスクロール方向とスクロールの速さとを決定し、
前記他の装置の画面に表示させている画像を前記クロール方向へ前記速さで所定時間スクロールさせるときに、前記他の装置の画面に所定の表示時間間隔で順次表示させる複数の画像から、動画を生成し、
生成した前記動画を前記他の装置に送信する、
ことを特徴とする画像送信方法。
【０２１９】
（付記２）  前記複数の画像の更新頻度を算出し、
前記更新頻度が閾値以上である場合に、送信する画像の形式を動画形式と決定し、前記更新頻度が当該閾値よりも小さい場合に送信する画像の形式を静止画形式と決定し、
送信する画像の形式が動画形式に決定された場合、前記動画を生成し、
送信する画像の形式が動画形式に決定された場合、生成した前記動画を前記他の装置に送信し、送信する画像の形式が静止画形式に決定された場合、前記複数の画像を前記他の装置に送信する、
ことを特徴とする付記１記載の画像送信方法。
【０２２０】
（付記３）  前記スクロール方向、前記速さ、および前記他の装置の画像表示領域のサイズに基づいて、前記表示時間間隔を決定する、
ことを特徴とする付記１または２のいずれかに記載の画像送信方法。
【０２２１】
（付記４）  前記スクロール方向と前記速さとに基づき現行の前記表示時間間隔で画像を表示させた場合に連続して表示させる２つの画像間の位置の差が、前記画像表示領域のサイズを所定値で除算した値以上の場合、前記表示時間間隔を増加させる、
ことを特徴とする付記３記載の画像送信方法。
【０２２２】
（付記５）  前記スクロール方向と前記速さとに基づき現行の前記表示時間間隔で画像を表示させた場合に連続して表示させる２つの画像間の位置の差が、前記画像表示領域のサイズを所定値で除算した値以下の場合、前記表示時間間隔を減少させる、
ことを特徴とする付記３記載の画像送信方法。
【０２２３】
（付記６）  前記スクロール方向、前記速さ、および前記他の装置の画像表示領域のサイズに基づいて、前記他の装置の画面に表示させる画像の画質を決定する、
ことを特徴とする付記１乃至５のいずれかに記載の画像送信方法。
【０２２４】
（付記７）  前記スクロール方向と前記速さとに基づき現行の前記表示時間間隔で画像を表示させた場合に連続して表示させる２つの画像間の位置の差が、前記画像表示領域のサイズを所定値で除算した値以上の場合、画質を低下させる、
ことを特徴とする付記６記載の画像送信方法。
【０２２５】
（付記８）  前記スクロール方向と前記速さとに基づき現行の前記表示時間間隔で画像を表示させた場合に連続して表示させる２つの画像間の位置の差が、前記画像表示領域のサイズを所定値で除算した値以下の場合、画質を向上させる、
ことを特徴とする付記７記載の画像送信方法。
【０２２６】
（付記９）  前記操作情報には、前記他の装置の加速度を示す情報が含まれており、該加速度の向きを前記スクロール方向に変換し、該加速度の大きさを前記速さに変換する、
ことを特徴とする付記１乃至８のいずれかに記載の画像送信方法。
【０２２７】
（付記１０）  前記操作情報を受信すると、前記他の装置の利用者の識別情報に対応づけて、前記加速度を前記スクロール方向および前記速さに変換するための変換ルールを記憶する記憶装置を参照して、前記加速度を前記スクロール方向および前記速さに変換する、
ことを特徴とする付記９記載の画像送信方法。
【０２２８】
（付記１１）  他の装置から画像のスクロールを指示する操作情報を取得すると、該操作情報に基づいてスクロール方向とスクロールの速さとを決定する決定手段と、
前記他の装置の画面に表示させている画像を前記スクロール方向へ前記速さで所定時間スクロールさせるときに、前記他の装置の画面に所定の表示時間間隔で順次表示させる複数の画像から、動画を生成する生成手段と、
生成した前記動画を前記他の装置に送信する送信手段と、
を有することを特徴とする画像送信装置。
【０２２９】
（付記１２）  他の装置から画像のスクロールを指示する操作情報を取得すると、該操作情報に基づいてスクロール方向とスクロールの速さとを決定し、
前記他の装置の画面に表示させている画像を前記スクロール方向へ前記速さで所定時間スクロールさせるときに、前記他の装置の画面に所定の表示時間間隔で順次表示させる複数の画像から、動画を生成し、
生成した前記動画を前記他の装置に送信する、
処理をコンピュータに実行させることを特徴とする画像送信プログラム。
【符号の説明】
【０２３０】
１  情報処理装置
１ａ  入力装置
１ｂ  表示装置
１ｃ  通知手段
１ｄ  表示処理手段
２  画像送信装置
２ａ  バッファ
２ｂ  決定手段
２ｃ  生成手段
２ｄ  送信手段
３，６  画像
４  画像データ
５  動画
【図１】
0005789965.tif 000002
【図２】
0005789965.tif 000003
【図３】
0005789965.tif 000004
【図４】
0005789965.tif 000005
【図５】
0005789965.tif 000006
【図６】
0005789965.tif 000007
【図７】
0005789965.tif 000008
【図８】
0005789965.tif 000009
【図９】
0005789965.tif 000010
【図１０】
0005789965.tif 000011
【図１１】
0005789965.tif 000012
【図１２】
0005789965.tif 000013
【図１３】
0005789965.tif 000014
【図１４】
0005789965.tif 000015
【図１５】
0005789965.tif 000016
【図１６】
0005789965.tif 000017
【図１７】
0005789965.tif 000018
【図１８】
0005789965.tif 000019
【図１９】
0005789965.tif 000020
【図２０】
0005789965.tif 000021
【図２１】
0005789965.tif 000022
【図２２】
0005789965.tif 000023
【図２３】
0005789965.tif 000024
【図２４】
0005789965.tif 000025
【図２５】
0005789965.tif 000026
【図２６】
0005789965.tif 000027
【図２７】
0005789965.tif 000028