(57)【要約】【課題】ユーザの操作性の低下を防ぐこと。【解決手段】端末装置１０２は、直前の操作軌跡Ｌ１を表す各点の座標位置と画像データを対応付けて記憶されたテーブル１０３を参照して、現在の操作軌跡Ｌ２が操作軌跡Ｌ１と連続性があり、かつ、操作軌跡Ｌ２が操作軌跡Ｌ１と重なるか否かを判断する。条件が満たされた場合、端末装置１０２は、操作軌跡Ｌ１の各点の座標位置に対応付けられた画像データＦ１〜画像データＦ４のうちの、操作軌跡Ｌ２を表す各点の座標位置に対応する画像データを抽出する。抽出後、端末装置１０２は、画像データＦ４、画像データＦ３、画像データＦ２の順となる動画像データＭ２を生成して、動画像データＭ２を表示画面１１０上で再生する。【選択図】図１
2014067311.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して情報処理装置と端末装置とが接続されるシステムにおいて、
前記端末装置は、
画面上で行われる一連の操作よりも前に前記画面上で行われた連続的な操作の操作軌跡を表す始点から終点までの各点の座標位置と画像データとを対応付けて記憶するテーブルを参照して、前記一連の操作の操作軌跡が前記連続的な操作の操作軌跡と連続性があり、かつ、前記一連の操作の操作軌跡の一部または全部が前記連続的な操作の操作軌跡と重なるか否かを判断する判断部と、
前記判断部によって前記一連の操作の操作軌跡が前記連続的な操作の操作軌跡と連続性があり、かつ、前記一連の操作の操作軌跡の一部または全部が前記連続的な操作の操作軌跡と重なると判断された場合、前記連続的な操作の操作軌跡を表す各点の座標位置に対応付けられた画像データのうちの、前記一連の操作の操作軌跡を表す各点の座標位置に対応する画像データを抽出する抽出部と、
を有することを特徴とするシステム。
【請求項２】
前記端末装置は、
前記一連の操作の操作順序に従って、前記抽出部によって抽出された前記一連の操作の操作軌跡を表す各点の座標位置に対応する画像データを前記画面に順次表示する表示制御部を有することを特徴とする請求項１に記載のシステム。
【請求項３】
前記端末装置は、
前記画面上で操作が行われた点の座標位置を含む操作情報を取得する取得部と、
前記取得部によって取得された前記操作情報を前記情報処理装置に送信する送信部と、
前記送信部によって前記操作情報が前記情報処理装置に送信された結果、前記情報処理装置から前記画面に表示する画像データを受信する受信部と、
前記画面上で行われた連続的な操作の各々の操作情報に含まれる点の座標位置と、前記各々の操作情報が前記情報処理装置に送信された結果受信された画像データとを対応付けて前記テーブルに格納する格納部と、を有することを特徴とする請求項１または２に記載のシステム。
【請求項４】
前記端末装置は、
前記判断部によって前記一連の操作の操作軌跡が前記連続的な操作の操作軌跡と連続性がない、または、前記一連の操作の操作軌跡の一部または全部が前記連続的な操作の操作軌跡と重ならないと判断された場合、前記画面上で行われた一連の操作の操作順序に従って、前記一連の操作の各々の操作情報が前記情報処理装置に送信された結果受信された画像データを前記画面に順次表示する表示制御部を有すること特徴とする請求項３に記載のシステム。
【請求項５】
前記端末装置は、
前記判断部によって前記一連の操作の操作軌跡が前記連続的な操作の操作軌跡と連続性があり、かつ、前記一連の操作の操作軌跡の全部が前記連続的な操作の操作軌跡と重なると判断された場合、前記送信部による前記操作情報の送信を停止させる送信制御部を有することを特徴とする請求項３または４に記載のシステム。
【請求項６】
ネットワークを介して情報処理装置と接続される端末装置において、
画面上で行われる一連の操作よりも前に前記画面上で行われた連続的な操作の操作軌跡を表す始点から終点までの各点の座標位置と画像データとを対応付けて記憶するテーブルを参照して、前記一連の操作の操作軌跡が前記連続的な操作の操作軌跡と連続性があり、かつ、前記一連の操作の操作軌跡の一部または全部が前記連続的な操作の操作軌跡と重なるか否かを判断する判断部と、
前記判断部によって前記一連の操作の操作軌跡が前記連続的な操作の操作軌跡と連続性があり、かつ、前記一連の操作の操作軌跡の一部または全部が前記連続的な操作の操作軌跡と重なると判断された場合、前記連続的な操作の操作軌跡を表す各点の座標位置に対応付けられた画像データのうちの、前記一連の操作の操作軌跡を表す各点の座標位置に対応する画像データを抽出する抽出部と、
を有することを特徴とする端末装置。
【請求項７】
ネットワークを介して情報処理装置と接続される端末装置が、
画面上で行われる一連の操作よりも前に前記画面上で行われた連続的な操作の操作軌跡を表す始点から終点までの各点の座標位置と画像データとを対応付けて記憶するテーブルを参照して、前記一連の操作の操作軌跡が前記連続的な操作の操作軌跡と連続性があり、かつ、前記一連の操作の操作軌跡の一部または全部が前記連続的な操作の操作軌跡と重なるか否かを判断し、
前記一連の操作の操作軌跡が前記連続的な操作の操作軌跡と連続性があり、かつ、前記一連の操作の操作軌跡の一部または全部が前記連続的な操作の操作軌跡と重なると判断した場合、前記連続的な操作の操作軌跡を表す各点の座標位置に対応付けられた画像データのうちの、前記一連の操作の操作軌跡を表す各点の座標位置に対応する画像データを抽出する、
処理を実行することを特徴とする画像取得方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システム、端末装置および画像取得方法に関する。
【背景技術】
【０００２】
シンクライアントシステムは、クライアントに最低限の機能しか持たせず、サーバでアプリケーションやデータを管理するシステムである。また、タブレット端末やスマートフォンなどの端末装置の普及にともなって、モバイル環境で社内のアプリケーションやデータをセキュアに利用する、いわゆるモバイルシンクライアントシステムのニーズが拡大している。
【０００３】
関連する先行技術としては、サーバが、端末装置から操作情報を受信し、受信した操作情報により生成された画面情報を動画像データとして符号化し、符号化された画面情報のフレームレートを変更するものがある。また、端末装置が、サーバから受信した画面情報を保持しており、サーバとの通信が切断されたと判定されている間は、保持しておいた画面情報を再現して端末装置のディスプレイに表示する技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１９２２２９号公報
【特許文献２】特開２００７−３４６８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術によれば、タブレット端末等を用いてシンクライアントシステムを利用すると、サーバとの通信環境が不安定になり易く、ユーザの操作に追随する画面更新がとどこおる場合があり、ユーザの操作性が低下してしまうという問題がある。
【０００６】
１つの側面では、本発明は、ユーザの操作性の低下を防ぐシステム、端末装置および画像取得方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一側面によれば、画面上で行われる一連の操作よりも前に画面上で行われた連続的な操作の操作軌跡を表す始点から終点までの各点の座標位置と画像データとを対応付けて記憶するテーブルを参照して、一連の操作の操作軌跡が連続的な操作の操作軌跡と連続性があり、かつ、一連の操作の操作軌跡の一部または全部が連続的な操作の操作軌跡と重なるか否かを判断し、一連の操作の操作軌跡が連続的な操作の操作軌跡と連続性があり、かつ、一連の操作の操作軌跡の一部または全部が連続的な操作の操作軌跡と重なると判断した場合、連続的な操作の操作軌跡を表す各点の座標位置に対応付けられた画像データのうちの、一連の操作の操作軌跡を表す各点の座標位置に対応する画像データを抽出するシステム、端末装置および画像取得方法が提案される。
【発明の効果】
【０００８】
本発明の一態様によれば、ユーザの操作性の低下を防ぐことができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施の形態にかかる画像取得方法の一実施例を示す説明図である。
【図２】図２は、シンクライアントシステムのシステム構成例を示す説明図である。
【図３】図３は、サーバのハードウェア構成例を示すブロック図である。
【図４】図４は、クライアント装置のハードウェア構成例を示すブロック図である。
【図５】図５は、サーバの機能構成例を示すブロック図である。
【図６】図６は、クライアント装置の機能構成例を示すブロック図である。
【図７】図７は、操作情報テーブルの構造例を示す説明図である。
【図８】図８は、操作情報テーブルの記憶内容の一例を示す説明図である。
【図９】図９は、画像データを記憶する場合のシンクライアントシステムの動作例を示す説明図である。
【図１０】図１０は、操作軌跡に連続性があり、かつ操作軌跡が重なるか否かを判断する処理の一例を示す説明図である。
【図１１】図１１は、操作軌跡に連続性があり、かつ操作軌跡が重なると判断した場合のシンクライアントシステムの動作例を示す説明図である。
【図１２】図１２は、操作軌跡に連続性がない、または操作軌跡が重ならないと判断した場合のシンクライアントシステムの動作例を示す説明図である。
【図１３】図１３は、サーバによる画像処理手順の一例を示すフローチャートである。
【図１４】図１４は、クライアント装置による画像取得処理手順の一例を示すフローチャート（その１）である。
【図１５】図１５は、クライアント装置による画像取得処理手順の一例を示すフローチャート（その２）である。
【図１６】図１６は、クライアント装置による画像取得処理手順の一例を示すフローチャート（その３）である。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照して、開示のシステム、端末装置および画像取得方法の実施の形態を詳細に説明する。
【００１１】
（画像取得方法の一実施例）
図１は、実施の形態にかかる画像取得方法の一実施例を示す説明図である。図１において、システム１００は、情報処理装置１０１と、端末装置１０２と、を含む。システム１００は、例えば、端末装置１０２に最低限の機能しか持たせず、情報処理装置１０１でアプリケーションソフトウェアを実行したり、データを管理したりするシンクライアントシステムである。以下、アプリケーションソフトウェアを、「アプリ」と称する。
【００１２】
情報処理装置１０１は、ネットワークを介して端末装置１０２と通信可能なコンピュータである。また、情報処理装置１０１は、端末装置１０２の表示画面１１０に表示する画像の画像データを生成して、端末装置１０２に画像の画像データを送信する機能を有する。情報処理装置１０１は、例えば、サーバである。
【００１３】
画像は、例えば、端末装置１０２の要求に応じて情報処理装置１０１で実行されるアプリの実行結果を表示する画面の画像である。アプリは、例えば、設計支援ツールソフトウェア、プレゼンテーションソフトウェア、表計算ソフトウェア、電子メールソフトウェアなどである。画像データは、例えば、製図などに利用されるＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ）データや商品のカタログデータ等がアプリによって実行された結果の画像を表すデータである。また、画像データは、画像データ１つ静止画像データでもよいし、画像データが複数有る動画像データでもよい。
【００１４】
端末装置１０２は、ネットワークを介して情報処理装置１０１と通信可能なコンピュータである。また、端末装置１０２は、表示画面１１０を有し、ユーザによる操作情報を情報処理装置１０１に送信し、情報処理装置１０１から受信した画像データに基づいて、表示画面１１０に画像を表示する機能を有する。端末装置１０２は、例えば、タブレット端末、ノートＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、スマートフォン、携帯電話機などである。また、操作情報は、表示画面１１０上で操作が行われた点の座標位置と、操作の種別を含む。操作情報の詳細については、図５にて後述する。
【００１５】
ここで、タブレット端末やノートＰＣなどでシンクライアントシステムを利用する場合、ネットワークの帯域幅が狭くサーバとの通信状態が不安定になりやすいため、タブレット端末やノートＰＣにおけるユーザの操作性が低下してしまう場合がある。例えば、サーバからタブレット端末へのデータ転送に時間がかかり、タブレット端末における操作に対するレスポンスが悪化してしまう場合がある。
【００１６】
また、画像の画質を落としてデータ量を減らし、画像データの転送時間を短縮化することも考えられるが、例えば、設計、製図などに利用されるＣＡＤデータなどの精細な画像を扱う場合、画質を落とすと設計や製図に支障をきたす恐れがある。このため、画質を落として画像データの転送時間を調整することが難しい。
【００１７】
そこで、実施の形態にかかる端末装置１０２は、ユーザが一連の操作を繰り返し行った場合、現在の一連の操作の操作軌跡が直前の操作軌跡と重なり、かつ現在の操作軌跡と、直前の操作軌跡に連続性があるか否かを判断する。操作軌跡が重なり、かつ連続性があれば、端末装置１０２は、直前の一連の操作時に表示した動画像データから現在の操作用の動画像データを生成する。これにより、端末装置１０２は、情報処理装置１０１と通信せずに、直前の動画像データ内の画像データを再利用して現在の操作用の動画像データを再生できるため、ユーザの操作性が向上する。
【００１８】
ここで、一連の操作は、ユーザが端末装置１０２に入力した操作であり、例えば、端末装置１０２にタッチパネルがあれば、タッチパネルにユーザの指等が触れてから、タッチパネルからユーザの指等が離れるまでのドラッグ操作となる。または、端末装置１０２がマウスを有している場合、一連の操作は、マウスのボタンが押下されてから、マウスのボタンが離れるまでのドラッグ操作となる。また、操作軌跡が重なり、かつ連続性があるか否かの判断については、図１０にて後述する。
【００１９】
また、端末装置１０２が、ユーザによる一連の操作の操作情報を情報処理装置１０１に送信すると、端末装置１０２は、一連の操作に対応する動画像データを情報処理装置１０１から受信する。一連の操作に対応する動画像データは、例えば、設計支援ツールソフトウェア上で表示している３Ｄ（３  Ｄｉｍｅｎｓｉｏｎｓ）オブジェクトが回転する動画像データである。
【００２０】
図１の（Ａ）では、１回目の一連の操作軌跡の例を示しており、図１の（Ｂ）では、２回目の一連の操作軌跡の例を示している。図１の（Ａ）および図１の（Ｂ）では、情報処理装置１０１が設計支援ツールソフトウェアを実行しており、端末装置１０２は、情報処理装置１０１にアクセスする。
【００２１】
端末装置１０２は、ユーザによる操作情報を取得する度に、情報処理装置１０１に送信する。図１の（Ａ）にて、端末装置１０２は、ユーザによる一連の操作の操作軌跡Ｌ１を表す始点Ｓ１から終点Ｅ１までの各点の操作情報を取得すると、操作軌跡Ｌ１を表す各点の操作情報を情報処理装置１０１に送信する。情報処理装置１０１は、受信した操作情報を基に動画像データＭ１を生成し、動画像データＭ１を端末装置１０２に送信する。具体的な動画像データの生成方法については、図５にて後述する。
【００２２】
動画像データＭ１は、次の４つの画像データＦ１〜画像データＦ４を含む。画像データＦ１は、ユーザによるドラッグ操作の開始位置となる始点Ｓ１での表示画面１１０に表示する画像データである。画像データＦ２は、ユーザによるドラッグ操作が点Ｐ１−１に到達した際の画像データである。画像データＦ３は、ユーザによるドラッグ操作が点Ｐ１−２に到達した際の画像データである。画像データＦ４は、ユーザによるドラッグ操作の終了位置となる終点Ｅ１に到達した際の画像データである。
【００２３】
動画像データＭ１を受信した端末装置１０２は、画像データＦ１〜画像データＦ４と操作軌跡Ｌ１の座標位置とを対応付けて端末装置１０２のテーブル１０３に格納するとともに、動画像データＭ１を表示画面１１０上で再生する。動画像データＭ１を再生することにより、ユーザは、一連の操作の操作軌跡Ｌ１による結果を確認することができる。なお、端末装置１０２は、操作軌跡Ｌ１を表す各点の座標位置と画像データを対応付けてテーブル１０３に格納してもよいし、操作軌跡Ｌ１を表す各点のうちの一部の点の座標位置と画像データとを対応付けてテーブル１０３に格納してもよい。操作軌跡Ｌ１を表す各点のうちの一部の点を、表示画面１１０で行われた「連続的な操作の操作軌跡」と呼称する場合がある。
【００２４】
次に、ユーザによる操作軌跡Ｌ１の入力後、図１の（Ｂ）にて、端末装置１０２は、ユーザによる一連の操作の操作軌跡Ｌ２を表す始点Ｓ２からＥ２までの各点の操作情報を取得する。そして、端末装置１０２は、テーブル１０３を参照して、一連の操作の操作軌跡Ｌ２が連続的な操作の操作軌跡Ｌ１と連続性があり、かつ、一連の操作の操作軌跡Ｌ２の一部または全部が連続的な操作の操作軌跡Ｌ１と重なるか否かを判断する。
【００２５】
図１の（Ｂ）の例では、端末装置１０２は、操作軌跡Ｌ２が操作軌跡Ｌ１と連続性があり、かつ、操作軌跡Ｌ２の全部が操作軌跡Ｌ１と重なると判断したとする。具体的に、操作軌跡Ｌ２の始点Ｓ２が操作軌跡Ｌ１の終点Ｅ１に対応し、操作軌跡Ｌ２の点Ｐ２−１が操作軌跡Ｌ１の点Ｐ１−２に対応し、操作軌跡Ｌ２の終点Ｅ２が操作軌跡Ｌ１の点Ｐ１−１に対応したとする。この場合、端末装置１０２は、操作軌跡Ｌ１の各点の座標位置に対応付けられた画像データＦ１〜画像データＦ４のうちの、操作軌跡Ｌ２を表す各点の座標位置に対応する画像データを抽出する。図１の（Ｂ）の例では、端末装置１０２は、画像データＦ２〜画像データＦ４を抽出する。
【００２６】
抽出後、端末装置１０２は、画像データＦ４、画像データＦ３、画像データＦ２の順となる動画像データＭ２を生成して、動画像データＭ２を表示画面１１０上で再生する。動画像データＭ２を再生することにより、ユーザは、一連の操作の操作軌跡Ｌ２による結果を確認することができる。さらに、端末装置１０２は、通信環境に影響せずに動画像データＭ２を生成して、表示画面１１０に動画像データＭ２を表示するため操作性を向上させることができる。
【００２７】
（シンクライアントシステムのシステム構成例）
次に、図１に示したシステム１００をシンクライアントシステムに適用した場合について説明する。
【００２８】
図２は、シンクライアントシステムのシステム構成例を示す説明図である。図２において、シンクライアントシステム２００は、サーバ２０１と、複数のクライアント装置２０２（図２の例では、３台）とを含む。シンクライアントシステム２００において、サーバ２０１およびクライアント装置２０２は、ネットワーク２１０を介して通信可能に接続されている。ネットワーク２１０は、例えば、移動体通信網（携帯電話網）やインターネットなどである。
【００２９】
シンクライアントシステム２００は、クライアント装置２０２が表示する画面をリモートでサーバ２０１に制御させる。シンクライアントシステム２００によれば、実際にはサーバ２０１が実行した処理結果や保持するデータをクライアント装置２０２に表示させる。これにより、シンクライアントシステム２００は、あたかもクライアント装置２０２が主体となって処理を実行したり、データを保持したりしているかのように振る舞うことができる。
【００３０】
サーバ２０１は、クライアント装置２０２に表示する画面をリモートで制御するリモート画面制御サービスを提供するコンピュータである。サーバ２０１は、図１に示した情報処理装置１０１に相当する。クライアント装置２０２は、サーバ２０１からリモート画面制御サービスの提供を受けるコンピュータである。クライアント装置２０２は、図１に示した端末装置１０２に相当する。
【００３１】
（サーバ２０１のハードウェア構成例）
図３は、サーバのハードウェア構成例を示すブロック図である。図３において、サーバ２０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、メモリ３０２と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０３と、磁気ディスクドライブ３０４と、磁気ディスク３０５と、を有している。また、各構成部はバス３００によってそれぞれ接続されている。
【００３２】
ここで、ＣＰＵ３０１は、サーバ２０１の全体の制御を司る。メモリ３０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有している。具体的には、例えば、フラッシュＲＯＭやＲＯＭが各種プログラムを記憶し、ＲＡＭがＣＰＵ３０１のワークエリアとして使用される。メモリ３０２に記憶されているプログラムは、ＣＰＵ３０１にロードされることで、コーディングされている処理をＣＰＵ３０１に実行させることになる。
【００３３】
Ｉ／Ｆ３０３は、通信回線を通じてネットワーク２１０に接続され、ネットワーク２１０を介して他のコンピュータ（例えば、クライアント装置２０２）に接続される。そして、Ｉ／Ｆ３０３は、ネットワーク２１０と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。Ｉ／Ｆ３０３には、例えば、モデムやＬＡＮアダプタなどを採用することができる。
【００３４】
磁気ディスクドライブ３０４は、ＣＰＵ３０１の制御に従って磁気ディスク３０５に対するデータのリード／ライトを制御する。磁気ディスク３０５は、磁気ディスクドライブ３０４の制御で書き込まれたデータを記憶する。なお、サーバ２０１は、上述した構成部のほか、例えば、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、キーボード、ディスプレイなどを有することにしてもよい。
【００３５】
（クライアント装置２０２のハードウェア構成例）
図４は、クライアント装置のハードウェア構成例を示すブロック図である。図４において、クライアント装置２０２は、ＣＰＵ４０１と、ＲＯＭ４０２と、ＲＡＭ４０３と、磁気ディスクドライブ４０４と、磁気ディスク４０５と、Ｉ／Ｆ４０６と、ディスプレイ４０７と、タッチパネル４０８と、を有している。また、各構成部はバス４００によってそれぞれ接続されている。
【００３６】
ここで、ＣＰＵ４０１は、クライアント装置２０２の全体の制御を司る。ＲＯＭ４０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ４０３は、ＣＰＵ４０１のワークエリアとして使用される。磁気ディスクドライブ４０４は、ＣＰＵ４０１の制御に従って磁気ディスク４０５に対するデータのリード／ライトを制御する。磁気ディスク４０５は、磁気ディスクドライブ４０４の制御で書き込まれたデータを記憶する。
【００３７】
Ｉ／Ｆ４０６は、通信回線を通じてネットワーク２１０に接続され、ネットワーク２１０を介して他のコンピュータ（例えば、サーバ２０１）に接続される。そして、Ｉ／Ｆ４０６は、ネットワーク２１０と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。
【００３８】
ディスプレイ４０７は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。ディスプレイ４０７は、例えば、ＴＦＴ（Ｔｈｉｎ  Ｆｉｌｍ  Ｔｒａｎｓｉｓｔｏｒ）液晶ディスプレイなどを採用することができる。ディスプレイ４０７は、例えば、図１に示した表示画面１１０を有する。
【００３９】
タッチパネル４０８は、ユーザによるタッチ操作やドラッグ操作を検出する。なお、図４に示したクライアント装置２０２は、タブレット端末を想定している。クライアント装置２０２がパーソナル・コンピュータであれば、クライアント装置２０２は、キーボード、マウス等を有していてもよい。
【００４０】
（サーバ２０１の機能構成）
次に、サーバ２０１の機能について説明する。図５は、サーバの機能構成例を示すブロック図である。サーバ２０１は、受信部５０１と、決定部５０２と、符号化部５０３と、送信部５０４と、を含む。制御部となる受信部５０１〜送信部５０４は、記憶装置に記憶されたプログラムをＣＰＵ３０１が実行することにより、受信部５０１〜送信部５０４の機能を実現する。記憶装置とは、具体的には、例えば、図３に示したメモリ３０２、磁気ディスク３０５などである。
【００４１】
受信部５０１は、クライアント装置２０２から操作情報を受信する。例えば、ユーザによる操作情報を受信する。操作情報は、表示画面１１０上で操作が行われた点の座標位置と、操作の種別を含む。操作が行われた点の座標位置は、原点からの絶対座標でもよいし、１つ前の操作が行われた点の座標位置からの相対座標でもよい。操作の種別は、例えば、タッチパネル４０８にユーザの指等が触れたという操作、タッチパネル４０８にユーザの指等が触れ続けているという操作、タッチパネル４０８からユーザの指等が離れたという操作である。また、クライアント装置２０２がマウスを有する場合、操作の種別は、例えば、マウスのボタンが押下されたという操作、マウスのボタンが押下され続けているという操作、マウスのボタンが離れたという操作、等である。受信した操作情報は、メモリ３０２、磁気ディスク３０５等の記憶装置に記憶される。
【００４２】
決定部５０２は、受信部５０１によって受信された操作情報が入力されたアプリによって更新された表示画面１１０の表示内容となる画像データの更新される差分領域のうちの、更新が多い領域を動画化領域に決定する。なお、画像データは、フレームバッファに格納される。フレームバッファは、表示画面１１０に表示する１フレーム分の画像データを一時的に保存する記憶領域である。具体的な決定方法については、図９にて後述する。なお、決定結果は、メモリ３０２、磁気ディスク３０５等の記憶装置に記憶される。
【００４３】
符号化部５０３は、決定部５０２によって決定された画像データを符号化する。具体的に、符号化部５０３は、決定部５０２によって動画化領域に決定された領域を、動画像データのフォーマットに従って符号化して、動画像データを生成する。また、符号化部５０３は、決定部５０２によって動画化領域に決定されなかった領域を、静止画像データのフォーマットに従って符号化して、静止画像データを生成する。符号化されたデータは、メモリ３０２、磁気ディスク３０５等の記憶装置に記憶される。送信部５０４は、符号化されたデータを、ネットワーク２１０を経由してクライアント装置２０２に送信する。
【００４４】
（クライアント装置２０２の機能構成）
次に、クライアント装置２０２の機能について説明する。図６は、クライアント装置の機能構成例を示すブロック図である。クライアント装置２０２は、取得部６０１と、判断部６０２と、抽出部６０３と、表示制御部６０４と、送信部６０５と、送信制御部６０６と、受信部６０７と、格納部６０８とを含む。制御部となる取得部６０１〜格納部６０８は、記憶装置に記憶されたプログラムをＣＰＵ４０１が実行することにより、取得部６０１〜格納部６０８の機能を実現する。記憶装置とは、具体的には、例えば、図４に示したＲＡＭ４０３、磁気ディスク４０５などである。
【００４５】
また、クライアント装置２０２は、操作情報テーブル６１１にアクセス可能である。操作情報テーブル６１１は、図１に示したテーブル１０３に相当する。操作情報テーブル６１１は、画面上で行われた連続的な操作の操作軌跡を表す始点から終点までの各点の座標位置と画像データとを対応付けて記憶する。連続的な操作の操作軌跡とは、一連の操作の操作軌跡の一部分である。操作情報テーブル６１１の詳細は、図７にて後述する。また、操作情報テーブル６１１は、ＲＡＭ４０３、磁気ディスク４０５等といった記憶領域にある。
【００４６】
取得部６０１は、表示画面１１０上で操作が行われた点の座標位置を含む操作情報を取得する。例えば、取得部６０１は、操作軌跡Ｌ２の始点Ｓ２の座標位置と、タッチパネル４０８の始点Ｓ２にてユーザの指等が触れたという操作の種別を含む操作情報を取得する。なお、取得した操作情報は、ＲＡＭ４０３、磁気ディスク４０５等といった記憶領域に記憶される。
【００４７】
判断部６０２は、操作情報テーブル６１１を参照して、一連の操作の操作軌跡Ｌ２が連続的な操作の操作軌跡Ｌ１と連続性があり、かつ、一連の操作の操作軌跡Ｌ２の一部または全部が連続的な操作の操作軌跡Ｌ１と重なるか否かを判断する。ここで、操作情報テーブル６１１には、画面上で行われる一連の操作よりも前に画面上で行われた連続的な操作の操作軌跡Ｌ１を表す始点Ｓ１から終点Ｅ１までの各点の座標位置と画像データとが対応付けて記憶されている。具体的な判断方法は、図１０にて後述する。なお、判断結果は、ＲＡＭ４０３、磁気ディスク４０５等といった記憶領域に記憶される。
【００４８】
抽出部６０３は、判断部６０２が次に記載する場合であると判断した場合、連続的な操作の操作軌跡Ｌ１を表す各点の座標位置に対応付けられた画像データのうちの、一連の操作の操作軌跡Ｌ２を表す各点の座標位置に対応する画像データを抽出する。判断部６０２が判断した次に記載する場合とは、一連の操作の操作軌跡Ｌ２が連続的な操作の操作軌跡Ｌ１と連続性があり、かつ、一連の操作の操作軌跡Ｌ２の一部または全部が連続的な操作の操作軌跡Ｌ１と重なる場合である。なお、抽出結果は、ＲＡＭ４０３、磁気ディスク４０５等といった記憶領域に記憶される。
【００４９】
表示制御部６０４は、一連の操作の操作順序に従って、抽出部６０３によって抽出された一連の操作の操作軌跡Ｌ２を表す各点の座標位置に対応する画像データを表示画面１１０に順次表示する。例えば、抽出部６０３が、それぞれ操作軌跡Ｌ１の点Ｐ１−１の座標位置、点Ｐ１−２の座標位置、終点Ｅ１の座標位置に対応する画像データＦ２〜画像データＦ４を抽出したとする。対応する点の具体例として、操作軌跡Ｌ２の始点Ｓ２が操作軌跡Ｌ１の終点Ｅ１に対応し、操作軌跡Ｌ２の点Ｐ２−１が操作軌跡Ｌ１の点Ｐ１−２に対応し、操作軌跡Ｌ２の終点Ｅ２が操作軌跡Ｌ１の点Ｐ１−１に対応したとする。このとき、表示制御部６０４は、始点Ｓ２に対応する画像データＦ４、点Ｐ２−１に対応する画像データＦ３、終点Ｅ２に対応する画像データＦ２の順に表示画面１１０に表示する。
【００５０】
また、表示制御部６０４は、判断部６０２が次に記載する場合であると判断した場合、表示画面１１０上で行われた一連の操作の操作順序に従って、一連の操作の各々の操作情報がサーバ２０１に送信された結果受信された画像データを画面に順次表示してもよい。判断部６０２が判断した次に記載する場合とは、一連の操作の操作軌跡Ｌ２が連続的な操作の操作軌跡Ｌ１と連続性がない、または、一連の操作の操作軌跡Ｌ２の一部または全部が連続的な操作の操作軌跡Ｌ１と重ならないと判断された場合である。
【００５１】
送信部６０５は、取得部６０１によって取得された操作情報をサーバ２０１に送信する。また、送信部６０５は、複数の操作情報を一括してサーバ２０１に送信してもよい。
【００５２】
送信制御部６０６は、判断部６０２が次に記載する場合と判断した場合、送信部６０５による操作情報の送信を停止させる。判断部６０２が判断した次に記載する場合とは、一連の操作の操作軌跡Ｌ２が連続的な操作の操作軌跡Ｌ１と連続性があり、かつ、一連の操作の操作軌跡Ｌ２の全部が連続的な操作の操作軌跡Ｌ１と重なると判断した場合である。
【００５３】
受信部６０７は、送信部６０５によって操作情報がサーバ２０１に送信された結果、サーバ２０１から表示画面１１０に表示する画像データを受信する。例えば、始点Ｓ１の座標位置と、始点Ｓ１で行われた操作の種別とを含む操作情報がサーバ２０１に送信された結果、受信部６０７は、表示画面１１０に表示する画像データＦ１を受信する。なお、受信した画像データは、ＲＡＭ４０３、磁気ディスク４０５等といった記憶領域に記憶される。
【００５４】
格納部６０８は、表示画面１１０上で行われた連続的な操作の各々の操作情報に含まれる点の座標位置と、各々の操作情報がサーバ２０１に送信された結果受信された画像データとを対応付けて操作情報テーブル６１１に格納する。例えば、格納部６０８は、始点Ｓ１の座標位置と画像データＦ１とを対応付けて操作情報テーブル６１１に格納する。
【００５５】
図７は、操作情報テーブルの構造例を示す説明図である。操作情報テーブル６１１は、操作情報群７０１を含む。図７に示す操作情報テーブル６１１は、操作情報群７０１−ａ、操作情報群７０１−ｂを含む。操作情報群７０１は、始点を有する操作情報１つと終点を有する操作情報１つとを含む。操作情報は、操作軌跡内の一つの点の位置情報を有する。
【００５６】
操作情報は、始点を有する親操作情報７１１と、始点以外を有する子操作情報７１２との２種類がある。図７では、操作情報群７０１−ａは、親操作情報７１１−ａ、親操作情報７１１−ａに対応付いた子操作情報７１２−ａ−１、子操作情報７１２−ａ−１に対応付いた子操作情報７１２−ａ−２、…、を含む。また、操作情報群７０１−ｂは、親操作情報７１１−ｂ、…を含む。
【００５７】
具体的に、親操作情報７１１は、操作方向ＩＤ、始点位置、サブ領域、子操作情報ポインタ、画像サイズ、画像ポインタという６つのフィールドを含む。操作方向ＩＤフィールドには、タッチパネルによる操作位置やカーソルの操作位置の移動方向が格納される。例えば、操作方向が左から右である場合、操作方向ＩＤフィールドには、識別子“１”が格納される。また、操作方向が右から左である場合、操作方向ＩＤフィールドには、識別子“２”が格納される。同様に、操作方向が上から下である場合、操作方向ＩＤフィールドには、識別子“３”が格納される。同様に、操作方向が下から上である場合、操作方向ＩＤフィールドには、識別子“４”が格納される。
【００５８】
始点位置フィールドには、操作軌跡の始点の位置情報が格納される。サブ領域フィールドには、該当の操作情報の位置情報が含まれるサブ領域の座標情報が格納される。サブ領域は、２つの位置情報が対応すると判断するために用いられる領域であり、具体的には、クライアント装置２０２のディスプレイ４０７を所定の画素数で分割した領域である。所定の画素数は、シンクライアントシステム２００の開発者によって設定された値であり、例えば、１６［画素］である。以下、ディスプレイ４０７の座標を、（ｘ，ｙ）で表現し、サブ領域の座標を、（ｉ，ｊ）で表す。
【００５９】
子操作情報ポインタフィールドには、次の子操作情報へのポインタが格納される。具体的に、操作情報ポインタフィールドには、一連の操作内のうち、次の点の操作情報へのアドレスの値が格納される。画像サイズフィールドには、該当の操作情報に対応付けられた画像データのサイズが格納される。画像ポインタフィールドには、該当の操作情報に対応付けられた画像データへのポインタが格納される。また、画像データが動画像データである場合、画像ポインタフィールドには、動画像データ内の、該当の操作情報に対応付けられた画像データへのポインタが格納されていてもよい。または、画像ポインタフィールドには、動画像データへのポインタと、該当の操作情報に対応付けられた動画像データ内の画像データへのフレーム数が格納されてもよい。
【００６０】
子操作情報７１２は、操作位置、サブ領域、子操作情報ポインタ、画像サイズ、画像ポインタという５つのフィールドを含む。サブ領域〜画像ポインタの各フィールドは、親操作情報７１１の同名のフィールドと同じ情報が格納されるので、説明を省略する。操作位置フィールドは、操作軌跡の点の位置情報が格納される。
【００６１】
操作情報に含まれる操作の種別については、親操作情報７１１は、始点位置フィールドと、子操作情報ポインタフィールドによって示されており、また、子操作情報７１２は、子操作情報ポインタフィールドによって示されている。例えば、タッチパネル４０８にユーザの指等が触れたという操作の種別は、操作軌跡の始点を表しており、始点位置フィールドを有する親操作情報７１１によって示される。
【００６２】
また、タッチパネル４０８にユーザの指等が触れ続けているという操作の種別は、子操作情報ポインタフィールドに子操作情報７１２のアドレスの値が格納されていることによって示される。また、操作情報は、タッチパネル４０８にユーザの指等が触れ続けているというドラッグ操作の途中にサーバ２０１に送信されてもよく、送信時点では、次の子操作情報７１２がない場合も有り得る。この場合、子操作情報ポインタフィールドには、例えば“ドラッグ中”ということを表す識別情報を格納しておけば、サーバ２０１は、“ドラッグ中”ということを表す識別情報を検出したら、ドラッグ操作の途中であることを判断することができる。
【００６３】
また、タッチパネル４０８からユーザの指等が離れたという操作の種別は、操作軌跡の終点を表しており、例えば、親操作情報７１１と子操作情報７１２が、操作軌跡の終点か否かを表す識別子を格納するフィールドを有することによって示されてもよい。または、タッチパネル４０８からユーザの指等が離れたという操作の種別は、子操作情報ポインタフィールドに何のデータも含まれていないことを示す“ＮＵＬＬ”が格納されていることにより示されてもよい。次に、図８を用いて、操作情報テーブル６１１の記憶内容について説明する。
【００６４】
図８は、操作情報テーブルの記憶内容の一例を示す説明図である。図８では、操作情報テーブル６１１に含まれる、一連の操作の操作軌跡における操作情報群７０１−ａを図示している。クライアント装置２０２は、左上の点Ｐ（０，０）を基点として、ディスプレイ４０７の表示画面１１０を１６［画素］ごとに分割したサブ領域群８０１を定義する。なお、図８では、説明の簡略化のため、データに付与した符号を、データが格納されているアドレスとして用いる場合がある。
【００６５】
操作情報群７０１−ａは、始点Ｓ１から、点Ｐ１−１、点Ｐ１−２を経由して終点Ｅ１までの操作軌跡についての情報を表す。以下、操作情報群７０１−ａに含まれる、始点Ｓ１についての情報となる親操作情報７１１−ａについて説明する。操作方向ＩＤフィールドには、始点Ｓ１から終点Ｅ１までの操作軌跡が左から右であるため、識別子“１”が格納される。また、始点位置フィールド（ｘ，ｙ）には、（３０，４５）が格納される。また、サブ領域フィールド（ｉ，ｊ）には、始点Ｓ１が含まれるサブ領域（２，３）が格納される。子操作情報ポインタフィールドには、次の子操作情報７１２のポインタとなる“７１２−ａ−１”が格納される。
【００６６】
画像サイズフィールドには、始点Ｓ１に対応付けられた画像データＦ１のサイズとして、（３２０，２４０）が格納される。画像ポインタフィールドには、始点Ｓ１に対応付けられた、横３２０［画素］、縦２４０［画素］の画像データＦ１のポイントとなる“Ｆ１”が格納されている。
【００６７】
同様に、操作情報群７０１−ａは、点Ｐ１−１についての情報である子操作情報７１２−ａ−１と、点Ｐ１−２についての情報である子操作情報７１２−ａ−２と、終点Ｅ１についての情報である子操作情報７１２−ａ−３を含む。子操作情報７１２−ａ−１〜子操作情報７１２−ａ−３については、親操作情報７１１−ａとほぼ同一の説明となるため、説明を省略する。子操作情報７１２−ａ−３の子操作情報ポインタフィールドには、“ＮＵＬＬ”が格納されているため、子操作情報７１２−ａ−３が操作軌跡の終点についての情報であることを示す。
【００６８】
また、画像データＦ１と、点Ｐ１−１に対応付いた画像データＦ２と、点Ｐ１−２に対応付いた画像データＦ３と、終点Ｅ１に対応付いた画像データＦ４は、クライアント装置２０２のＲＡＭ４０３、磁気ディスク４０５内にある。次に、図９〜図１２を用いて、実施の形態のシンクライアントシステム２００が、画像処理を実行しているときの動作例を示す。
【００６９】
図９は、画像データを記憶する場合のシンクライアントシステムの動作例を示す説明図である。クライアント装置２０２のディスプレイ４０７は、アプリＡの実行結果を表示するウィンドウ９０１Ａと、アプリＢの実行結果を表示するウィンドウ９０１Ｂと、を表示する。この状態で、ウィンドウ９０１Ａにて、ユーザによる操作が行われたとする。具体的に、ユーザは、アプリＡ内のオブジェクトを回転させる操作軌跡Ｌ１を描くドラッグ操作を行ったとする。このとき、クライアント装置２０２は、操作軌跡Ｌ１の各点の座標位置を含む操作情報群７０１をサーバ２０１に送信する。
【００７０】
サーバ２０１は、操作情報群７０１に基づいて更新されたフレームバッファ９０２の画像データのうちの、更新が多い領域を動画化領域に決定し、決定した領域を圧縮方式のデータに圧縮する。更新が多い領域として、例えば、サーバ２０１は、変更の頻度が閾値を超えた領域を更新が多い領域として特定する。次に、サーバ２０１は、更新された画像データとして、動画像データや静止画像データを送信する。更新された画像データは、動画像データと静止画像データ両方である可能性もあるし、動画像データまたは静止画像データのいずれか一方である可能性もある。図９の例では、サーバ２０１は、ウィンドウ９０１Ａの領域を、動画化領域に決定する。
【００７１】
画像データが静止画像データの場合、静止画像データのフォーマットは、ＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）、ＧＩＦ（Ｇｒａｐｈｉｃ  Ｉｎｔｅｒｃｈａｎｇｅ  Ｆｏｒｍａｔ）、ＰＮＧ（Ｐｏｒｔａｂｌｅ  Ｎｅｔｗｏｒｋ  Ｇｒａｐｈｉｃｓ）等を採用することができる。また、更新画像が動画像データの場合、動画像データのフォーマットは、ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）等を採用することができる。
【００７２】
なお、フレーム間で動きが大きい部分のデータを動画向けの圧縮方式のデータに符号化してクライアント装置２０２に送信する技術については、例えば、参考文献として、特開２０１１−２３８０１４号公報を参照することができる。
【００７３】
画像データを受信したクライアント装置２０２は、画像データＦ１、画像データＦ２、画像データＦ３、画像データＦ４を含む動画像データＭ１を受信する。実施の形態のクライアント装置２０２は、動画像データＭ１を受信したときに、動画像データＭ１をＲＡＭ４０３、磁気ディスク４０５といった記憶装置に格納するとともに、操作軌跡Ｌ１の各点と動画像データ内の画像データを対応付ける。静止画像データを受信したときには、クライアント装置２０２は、静止画像データを記憶装置に格納しない。この理由は、参考文献として挙げた技術を採用する場合、動画像データが矩形領域で送られてくるため、更新された領域が管理しやすいためである。クライアント装置２０２は、静止画像データを記憶装置に格納するとともに、操作軌跡の各点と静止画像データを対応付けてもよい。
【００７４】
次に、さらに一連の操作を検出したときに、クライアント装置２０２は、直前の一連の操作が一連の操作と連続性があり、かつ記憶した直前の一連の操作の操作軌跡と検出した一連の操作の操作軌跡が重なるか否かを判断する処理を実行する。操作軌跡に連続性があり、かつ操作軌跡が重なるか否かを判断する処理の一例について、図１０を用いて説明する。また、以下、「直前の一連の操作の操作軌跡」を、「直前の操作軌跡」と呼称する場合がある。また、「検出した一連の操作の操作軌跡」を、「現在の操作軌跡」と呼称する場合がある。
【００７５】
図１０は、操作軌跡に連続性があり、かつ操作軌跡が重なるか否かを判断する処理の一例を示す説明図である。クライアント装置２０２は、操作軌跡に連続性があるかについてと操作軌跡が重なるかについて、３つの条件を満たすか否かを判断する。１つ目の条件として、クライアント装置２０２は、直前の操作軌跡Ｌ１の終点Ｅ１が含まれるサブ領域に、現在の操作軌跡Ｌ２の始点Ｓ２が含まれるか否かを判断する。図１０の例では、終点Ｅ１と始点Ｓ２が含まれるサブ領域が共に（ｉ，ｊ）＝（５，２）であるため、クライアント装置２０２は、終点Ｅ１が含まれるサブ領域に、現在の操作軌跡Ｌ２の始点Ｓ２が含まれると判断する。
【００７６】
さらに、クライアント装置２０２は、２つ目の条件として、直前の一連の操作の方向と、一連の操作の方向が逆方向であるか否かを判断する。図１０の例では、直前の一連の操作の方向が左から右であり、一連の操作の方向が右から左であるため、クライアント装置２０２は、直前の一連の操作の方向と、一連の操作の方向が逆方向であると判断する。１つ目と２つ目の条件とを満たした場合、クライアント装置２０２は、一連の操作軌跡が直前の操作軌跡と連続性があると判断する。
【００７７】
続けて、クライアント装置２０２は、３つ目の条件として、現在の操作軌跡Ｌ２を表す各点が、直前の操作軌跡Ｌ１を表すいずれかの点が含まれるサブ領域に含まれるか否かを判断する。図１０の例では、始点Ｓ２が、終点Ｅ１が含まれるサブ領域（５，２）に含まれており、点Ｐ２−１が、点Ｐ１−２が含まれるサブ領域（４，３）に含まれており、終点Ｅ２が、点Ｐ１−１が含まれるサブ領域（３，３）に含まれている。従って、クライアント装置２０２は、現在の操作軌跡Ｌ２を表す各点が、直前の操作軌跡Ｌ１を表すいずれかの点が含まれるサブ領域に含まれると判断する。３つ目の条件を満たした場合、クライアント装置２０２は、現在の操作軌跡と直前の操作軌跡とが重なったと判断する。
【００７８】
３つの条件全てを満たした場合、クライアント装置２０２は、操作軌跡に連続性があり、かつ操作軌跡が重なると判断する。このとき、クライアント装置２０２は、直前の操作軌跡Ｌ１の各点に対応付けられた動画像データＭ１内の画像データのうち、現在の操作軌跡Ｌ２を表す各点に対応する画像データを抽出して、動画像データＭ２を生成する。次に、図１１を用いて、３つの条件全てを満たした場合のシンクライアントシステム２００の動作について説明する。さらに、図１２を用いて、３つの条件のいずれかを満たさなかった場合のシンクライアントシステム２００の動作について説明する。
【００７９】
図１１は、操作軌跡に連続性があり、かつ操作軌跡が重なると判断した場合のシンクライアントシステムの動作例を示す説明図である。クライアント装置２０２は、操作軌跡に連続性があり、かつ操作軌跡が重なると判断した場合、直前の操作軌跡Ｌ１の各点に対応付けられた画像データのうち、現在の操作軌跡Ｌ２を表す各点に対応する画像データを抽出する。図１１の例では、クライアント装置２０２は、画像データＦ１〜画像データＦ４のうちの、画像データＦ２〜画像データＦ４を抽出する。続けて、クライアント装置２０２は、画像データＦ２〜画像データＦ４から、動画像データＭ１の再生順序とは逆の順序で動画像データＭ２を生成し、ディスプレイ４０７のウィンドウ９０１Ａで動画像データＭ２を再生する。具体的に、クライアント装置２０２は、画像データＦ４、画像データＦ３、画像データＦ２、の順にウィンドウ９０１Ａに表示する。
【００８０】
図１２は、操作軌跡に連続性がない、または操作軌跡が重ならないと判断した場合のシンクライアントシステムの動作例を示す説明図である。クライアント装置２０２は、操作軌跡に連続性がない、または操作軌跡が重ならないと判断した場合、操作情報群７０１をサーバ２０１に送信し、サーバ２０１から更新された画像データを受信して、ディスプレイ４０７に表示する。
【００８１】
また、クライアント装置２０２は、直前の操作軌跡Ｌ１の各点に対応付けられた画像データのうち、始点Ｓ３から始まる現在の操作軌跡Ｌ３のうちの操作軌跡Ｌ１から外れない点に対応する画像データを抽出してもよい。
【００８２】
図１２の例では、クライアント装置２０２は、画像データＦ１〜画像データＦ４から、画像データＦ３、画像データＦ４を抽出して、動画像データＭ３を生成し、動画像データＭ３内の画像データＦ４、画像データＦ３の順に表示する。また、クライアント装置２０２は、現在の操作軌跡Ｌ３のうちの直前の操作軌跡Ｌ１から外れた終点Ｅ３に対応する画像データを取得するため、終点Ｅ３の位置情報を含む操作情報を含む操作情報群７０１をサーバ２０１に送信する。サーバ２０１は、終点Ｅ３の位置情報に対応する画像データＦ５をクライアント装置２０２に送信する。クライアント装置２０２は、画像データＦ３の表示後に、画像データＦ５を表示する。
【００８３】
次に、図９〜図１２に示した動作を行うフローチャートについて、図１３〜図１６を用いて説明する。図１３では、サーバ２０１による画像処理のフローチャートについて説明し、図１４〜図１６では、クライアント装置２０２による画像処理のフローチャートについて説明する。
【００８４】
図１３は、サーバによる画像処理手順の一例を示すフローチャートである。サーバによる画像処理は、クライアント装置２０２からの操作情報群７０１に基づいて、クライアント装置２０２に送信する画像データを更新してクライアント装置２０２に送信する処理である。サーバ２０１は、クライアント装置２０２から操作情報群７０１を受信する（ステップＳ１３０１）。操作情報群７０１は、１つの操作情報でもよいし、複数の操作情報でもよい。
【００８５】
次に、サーバ２０１は、操作情報群７０１をアプリに通知する（ステップＳ１３０２）。続けて、サーバ２０１は、操作情報群７０１を受けたアプリにより、フレームバッファ９０２に操作情報群７０１を反映した画像データを書き込む（ステップＳ１３０３）。続けて、サーバ２０１は、フレームバッファ９０２から画像データを取得する（ステップＳ１３０４）。なお、複数の操作情報を含む操作情報群７０１を受信した場合、サーバ２０１は、操作情報群７０１の各操作情報の画像データを取得してもよいし、操作情報群７０１を全てアプリに通知した後の画像データを取得してもよい。
【００８６】
次に、サーバ２０１は、画像データが更新したか否かを判断する（ステップＳ１３０５）。画像データが更新したか否かを判断する手順の一つとして、例えば、サーバ２０１は、１つ前の画像データを保持しておき、１つ前の画像データとステップＳ１３０４の処理にて取得した画像データを比較することにより、画像データが更新したか否かを判断する。また、ステップＳ１３０４の処理にて複数の画像データを取得している場合、サーバ２０１は、取得した複数の画像データ間で、更新したか否かを判断してもよい。
【００８７】
画像データが更新した場合（ステップＳ１３０５：Ｙｅｓ）、サーバ２０１は、動画化領域を決定する（ステップＳ１３０６）。動画化領域の決定方法は、例えば、上述した参考文献によって決定する。次に、サーバ２０１は、動画化領域が含まれるか否かを判断する（ステップＳ１３０７）。動画化領域が含まれる場合（ステップＳ１３０７：Ｙｅｓ）、サーバ２０１は、取得した画像データを動画像フォーマットに従って符号化した動画像データをクライアント装置２０２に送信する（ステップＳ１３０８）。
【００８８】
送信する動画像データとしてＭＰＥＧ方式のデータに符号化する場合、サーバ２０１は、フレーム間予測を行わないＩピクチャとして画像データを符号化してもよいし、前の画像データを用いてフレーム間予測を行うＰピクチャとして画像データを符号化してもよい。また、ステップＳ１３０４の処理にて複数の画像データを取得している場合、サーバ２０１は、Ｉピクチャ、Ｐピクチャ、または、前後の画像データを用いてフレーム間予測を行うＢピクチャとして複数の画像データの各々の画像データを符号化してもよい。
【００８９】
動画化領域が含まれない場合（ステップＳ１３０７：Ｎｏ）、サーバ２０１は、取得した画像データを静止画像フォーマットに従って符号化した静止画像データをクライアント装置２０２に送信する（ステップＳ１３０９）。
【００９０】
ステップＳ１３０８の処理後、ステップＳ１３０９の終了後、または画像データが更新していない場合（ステップＳ１３０５：Ｎｏ）、サーバ２０１は、サーバによる画像処理を終了する。サーバによる画像処理を実行することにより、シンクライアントシステム２００は、画像データの更新内容に応じて適切な画像フォーマットで更新された画像データを送信することができる。
【００９１】
図１４は、クライアント装置による画像取得処理手順の一例を示すフローチャート（その１）である。クライアント装置による画像取得処理は、ユーザによる操作入力を検出して、画像データを取得して表示する処理である。クライアント装置２０２は、ユーザによる操作入力を検出する（ステップＳ１４０１）。次に、クライアント装置２０２は、ユーザによる一連の操作の操作軌跡の始点を検出したか否かを判断する（ステップＳ１４０２）。
【００９２】
一連の操作の操作軌跡の始点を検出する手順として、クライアント装置２０２は、例えば、操作中フラグがオフであるときに、タッチパネル４０８にユーザの指等が触れたという通知を検出した場合、一連の操作の操作軌跡の始点を検出したと判断する。また、クライアント装置２０２がマウスを有している場合、クライアント装置２０２は、操作中フラグがオフであるときに、マウスのボタンが押下されたという通知を検出した場合、一連の操作の操作軌跡の始点を検出したと判断する。
【００９３】
ユーザによる一連の操作の操作軌跡の始点を検出していない場合（ステップＳ１４０２：Ｎｏ）、クライアント装置２０２は、始点位置と現在の操作位置とから、操作方向ＩＤを決定する（ステップＳ１４０３）。ステップＳ１４０２：Ｎｏとなる場合、クライアント装置２０２は、操作軌跡を表す始点以外の点を検出した場合となる。
【００９４】
次に、クライアント装置２０２は、親操作情報７１１の操作方向フィールドに、決定した操作方向ＩＤを記録する（ステップＳ１４０４）。続けて、クライアント装置２０２は、子操作情報７１２を生成する（ステップＳ１４０５）。次に、クライアント装置２０２は、現在の操作位置を、生成した子操作情報７１２の始点位置フィールドに記録する（ステップＳ１４０６）。続けて、クライアント装置２０２は、操作情報の子操作情報ポインタフィールドに、生成した子操作情報７１２へのアドレスを記録する（ステップＳ１４０７）。
【００９５】
次に、クライアント装置２０２は、現在の操作軌跡が直前の操作軌跡と連続性があり、かつ、現在の操作軌跡の一部または全部が直前の操作軌跡と重なるか否かを判断する（ステップＳ１４０８）。現在の操作軌跡が直前の操作軌跡と連続性がない、または、現在の操作軌跡が直前の操作軌跡と重ならない場合（ステップＳ１４０８：Ｎｏ）、クライアント装置２０２は、図１５で示すステップＳ１５０１の処理に移行する。現在の操作軌跡が直前の操作軌跡と連続性があり、かつ、現在の操作軌跡の一部または全部が直前の操作軌跡と重なる場合（ステップＳ１４０８：Ｙｅｓ）、クライアント装置２０２は、図１６で示すステップＳ１６０１の処理に移行する。
【００９６】
ユーザによる一連の操作の操作軌跡の始点を検出した場合（ステップＳ１４０２：Ｙｅｓ）、クライアント装置２０２は、親操作情報７１１を生成する（ステップＳ１４０９）。次に、クライアント装置２０２は、現在の操作位置を、始点位置として親操作情報７１１の始点位置フィールドに記録する（ステップＳ１４１０）。続けて、クライアント装置２０２は、操作中フラグをオンに設定する（ステップＳ１４１１）。
【００９７】
次に、クライアント装置２０２は、始点位置が、直前の操作軌跡の終点と同一のサブ領域に含まれるか否かを判断する（ステップＳ１４１２）。始点位置が、直前の操作軌跡の終点と同一のサブ領域に含まれる場合（ステップＳ１４１２：Ｙｅｓ）、クライアント装置２０２は、図１６で示すステップＳ１６０１の処理に移行する。また、始点位置が、直前の操作軌跡の終点と同一のサブ領域に含まれない場合（ステップＳ１４１２：Ｎｏ）、クライアント装置２０２は、図１５で示すステップＳ１５０１の処理に移行する。
【００９８】
図１５は、クライアント装置による画像取得処理手順の一例を示すフローチャート（その２）である。ステップＳ１４０８：Ｎｏ、またはステップＳ１４１２：Ｎｏとなった場合、クライアント装置２０２は、操作情報群７０１をサーバ２０１に送信する（ステップＳ１５０１）。次に、クライアント装置２０２は、サーバ２０１から画像データを受信したか否かを判断する（ステップＳ１５０２）。サーバ２０１から画像データを受信した場合（ステップＳ１５０２：Ｙｅｓ）、クライアント装置２０２は、画像データが動画像データか否かを判断する（ステップＳ１５０３）。
【００９９】
画像データが動画像データである場合（ステップＳ１５０３：Ｙｅｓ）、クライアント装置２０２は、操作情報内の操作位置を含むサブ領域と動画像データ内の画像データを対応付ける（ステップＳ１５０４）。例えば、ステップＳ１５０１の処理にて、操作情報群７０１に含まれる操作情報が、図８に示したような親操作情報７１１−ａと、子操作情報７１２−ａ−１〜子操作情報７１２−ａ−３であったとする。さらに、受信した動画像データが４つの画像データを含むものとする。
【０１００】
このとき、ステップＳ１５０４の処理にて、クライアント装置２０２は、１つ目の画像データを親操作情報７１１−ａに対応付ける。続けて、クライアント装置２０２は、２つ目の画像データを子操作情報７１２−ａ−１に対応付け、３つ目の画像データを子操作情報７１２−ａ−２に対応付け、４つ目の画像データを子操作情報７１２−ａ−３に対応付ける。また、具体的な対応付けの処理として、クライアント装置２０２は、例えば、各画像データのアドレスを、親操作情報７１１、子操作情報７１２の子操作情報フィールドに格納する。
【０１０１】
続けて、クライアント装置２０２は、操作情報群７０１の各操作情報と対応付けた画像データとを操作情報テーブル６１１に格納する（ステップＳ１５０５）。ステップＳ１５０５の終了後、または、画像データが静止画像データである場合（ステップＳ１５０３：Ｎｏ）、クライアント装置２０２は、受信した画像データをディスプレイ４０７の表示画面１１０に表示する（ステップＳ１５０６）。ステップＳ１５０６の終了後、または、サーバ２０１から画像データを受信していない場合（ステップＳ１５０２：Ｎｏ）、クライアント装置２０２は、図１６に示すステップＳ１６０３の処理に移行する。
【０１０２】
図１６は、クライアント装置による画像取得処理手順の一例を示すフローチャート（その３）である。ステップＳ１４０８：Ｙｅｓ、またはステップＳ１４１２：Ｙｅｓとなった場合、クライアント装置２０２は、直前の操作軌跡の各点に対応付けられた画像データのうちの、現在の操作軌跡を表す各点に対応する画像データを抽出する（ステップＳ１６０１）。
【０１０３】
なお、ステップＳ１６０１を実行する場合とは、クライアント装置２０２の操作情報テーブル６１１に記憶した画像データを再利用することを示している。このとき、クライアント装置２０２は、クライアント装置２０２に記憶した画像データを表示していることを示す“ローカル表示中”という識別情報をサーバ２０１に送信して、操作情報群７０１を送信してもよい。さらに、クライアント装置２０２は、“ローカル表示中”という識別情報を送信後に再利用できる画像データがなくなった場合、“ローカル表示終了”という識別情報をサーバ２０１に送信してもよい。“ローカル表示中”を示す識別情報を受信後に操作情報群７０１を受信した場合、サーバ２０１は、“ローカル表示終了”を受信するまで、ステップＳ１３０２の処理を行い、ステップＳ１３０３〜ステップＳ１３０９の処理を実行しなくてもよい。“ローカル表示中”という識別情報を送信することにより、サーバ２０１が画像データを送信しなくてよいことが判断できるため、サーバ２０１は、フレームバッファ９０２を更新しつつ、画像データの更新と送信にかかる処理量を減らすことができる。
【０１０４】
次に、クライアント装置２０２は、抽出した画像データから動画像データを生成して、動画像データをディスプレイ４０７の表示画面１１０に表示する（ステップＳ１６０２）。ステップＳ１６０２の終了後、ステップＳ１５０６の終了後、またはステップＳ１５０２：Ｎｏとなった場合、クライアント装置２０２は、ユーザによる一連の操作の操作軌跡の終点を検出したか否かを判断する（ステップＳ１６０３）。一連の操作の操作軌跡の終点を検出する手順として、クライアント装置２０２は、例えば、操作中フラグがオンであるときに、タッチパネル４０８からユーザの指等が離れたという通知を検出した場合、一連の操作の操作軌跡の終点を検出したと判断する。また、クライアント装置２０２がマウスを有している場合、クライアント装置２０２は、操作中フラグがオンであるときに、マウスのボタンが離されたという通知を検出した場合、一連の操作の操作軌跡の終点を検出したと判断する。ユーザによる一連の操作の操作軌跡の終点を検出した場合（ステップＳ１６０３：Ｙｅｓ）、クライアント装置２０２は、操作中フラグをオフに設定する（ステップＳ１６０４）。
【０１０５】
ステップＳ１６０４の終了後、または、ユーザによる一連の操作の操作軌跡の終点を検出していない場合（ステップＳ１６０３：Ｎｏ）、クライアント装置２０２は、クライアント装置による画像取得処理を終了する。クライアント装置による画像取得処理を実行することにより、接続環境によらずに、ユーザの操作に対応する画像データを表示することができるため、ユーザの操作性を向上することができる。
【０１０６】
また、図１３〜図１６のフローチャートでは、操作情報テーブル６１１に記憶した画像データを再利用できる場合、操作情報群７０１を送信しない形態となっている。この形態では、サーバ２０１が差分領域を正しく取得できない可能性がある。例えば、操作情報テーブル６１１に記憶した画像データを再利用した後、新たな操作情報群７０１を取得して操作情報テーブル６１１に再利用できる画像データがない場合に、クライアント装置２０２が操作情報群７０１をサーバ２０１に送信したとする。このとき、更新前のフレームバッファ９０２の表示内容と、表示画面１１０の表示内容が一致していないため、サーバ２０１が差分領域を正しく取得できない可能性がある。
【０１０７】
差分領域を正しく取得するため、クライアント装置２０２は、操作情報テーブル６１１に再利用できる画像データがない場合、操作情報テーブル６１１に記憶した画像データを再利用していたときの操作情報群７０１と新たな操作情報群７０１を送信してもよい。これにより、操作情報群７０１によりフレームバッファ９０２の表示内容と、表示画面１１０の表示内容が一致するため、サーバ２０１は、新たな操作情報群７０１に対応する正しい差分領域を取得することができる。
【０１０８】
以上説明したように、実施の形態にかかるクライアント装置２０２によれば、現操作の一連の操作の操作軌跡Ｌ２が直前の一連の操作の操作軌跡Ｌ１と重なり、かつ連続性があれば、操作軌跡Ｌ１時に表示した画像データから操作軌跡Ｌ２用の画像データを抽出する。これにより、クライアント装置２０２は、サーバ２０１と通信せずに、操作軌跡Ｌ１時に表示した画像データを再利用して操作軌跡Ｌ２用の画像データを表示できるため、操作性を向上させることができる。
【０１０９】
また、クライアント装置２０２によれば、一連の操作順序に従って、一連の操作の操作軌跡を表す各点の座標位置に対応する画像データを表示画面１１０に順次表示してもよい。クライアント装置２０２は、操作軌跡Ｌ２の各点が入力された順に画像データを表示するため、ユーザの操作順序に従って、画像データを表示することができる。
【０１１０】
また、クライアント装置２０２によれば、表示画面１１０上で行われた連続的な操作の各々の操作情報に含まれる点の座標位置と各々の操作情報がサーバ２０１に送信された結果受信された画像データとを対応付けて操作情報テーブル６１１に格納してもよい。これにより、クライアント装置２０２は、再利用できる可能性がある画像データを用意しておくことができる。
【０１１１】
また、クライアント装置２０２によれば、次に示す場合、一連の操作順序に従って、一連の操作の各々の操作情報がサーバ２０１に送信された結果受信された画像データを表示画面１１０に順次表示してもよい。次に示す場合とは、一連の操作の操作軌跡Ｌ２が直前の一連の操作の操作軌跡Ｌ１と重ならない、または連続性がない場合である。これにより、クライアント装置２０２は、再利用できる画像データがない場合は、サーバ２０１に画像データを問い合わせることにより、ユーザの操作に応答した画像データを取得することができる。
【０１１２】
また、クライアント装置２０２によれば、一連の操作の操作軌跡Ｌ２が直前の一連の操作の操作軌跡Ｌ１と重なり、かつ連続性があれば、操作情報の送信を停止してもよい。これにより、シンクライアントシステム２００は、操作情報の送信と、操作情報に対応する差分領域の取得と、差分領域の画像データの送信という処理を減らすことができる。
【０１１３】
また、クライアント装置２０２によれば、通信状態が不安定なモバイル環境でタブレットなどのスマート端末を用いてアプリを操作する場合、オブジェクトの回転などの繰り返し操作をする度に、通信が一時的に切断されてもローカル描画をする。これにより、シンクライアントシステム２００は、通信環境の不安定さをユーザに隠ぺいすることができる。特に、オブジェクトの回転・逆回転など、様々な角度でオブジェクトを観察する場合、シンクライアントシステム２００は、通信の不安定さやデータ転送量がネックになり易いスマート端末で操作性の悪化を回避し、スムーズな操作をユーザに提供できる。
【０１１４】
なお、本実施の形態で説明した画像取得方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本画像処理プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本画像処理プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１１５】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１１６】
（付記１）ネットワークを介して情報処理装置と端末装置とが接続されるシステムにおいて、
前記端末装置は、
画面上で行われる一連の操作よりも前に前記画面上で行われた連続的な操作の操作軌跡を表す始点から終点までの各点の座標位置と画像データとを対応付けて記憶するテーブルを参照して、前記一連の操作の操作軌跡が前記連続的な操作の操作軌跡と連続性があり、かつ、前記一連の操作の操作軌跡の一部または全部が前記連続的な操作の操作軌跡と重なるか否かを判断する判断部と、
前記判断部によって前記一連の操作の操作軌跡が前記連続的な操作の操作軌跡と連続性があり、かつ、前記一連の操作の操作軌跡の一部または全部が前記連続的な操作の操作軌跡と重なると判断された場合、前記連続的な操作の操作軌跡を表す各点の座標位置に対応付けられた画像データのうちの、前記一連の操作の操作軌跡を表す各点の座標位置に対応する画像データを抽出する抽出部と、
を有することを特徴とするシステム。
【０１１７】
（付記２）前記端末装置は、
前記一連の操作の操作順序に従って、前記抽出部によって抽出された前記一連の操作の操作軌跡を表す各点の座標位置に対応する画像データを前記画面に順次表示する表示制御部を有することを特徴とする付記１に記載のシステム。
【０１１８】
（付記３）前記端末装置は、
前記画面上で操作が行われた点の座標位置を含む操作情報を取得する取得部と、
前記取得部によって取得された前記操作情報を前記情報処理装置に送信する送信部と、
前記送信部によって前記操作情報が前記情報処理装置に送信された結果、前記情報処理装置から前記画面に表示する画像データを受信する受信部と、
前記画面上で行われた連続的な操作の各々の操作情報に含まれる点の座標位置と、前記各々の操作情報が前記情報処理装置に送信された結果受信された画像データとを対応付けて前記テーブルに格納する格納部と、を有することを特徴とする付記１または２に記載のシステム。
【０１１９】
（付記４）前記端末装置は、
前記判断部によって前記一連の操作の操作軌跡が前記連続的な操作の操作軌跡と連続性がない、または、前記一連の操作の操作軌跡の一部または全部が前記連続的な操作の操作軌跡と重ならないと判断された場合、前記画面上で行われた一連の操作の操作順序に従って、前記一連の操作の各々の操作情報が前記情報処理装置に送信された結果受信された画像データを前記画面に順次表示する表示制御部を有すること特徴とする付記３に記載のシステム。
【０１２０】
（付記５）前記端末装置は、
前記判断部によって前記一連の操作の操作軌跡が前記連続的な操作の操作軌跡と連続性があり、かつ、前記一連の操作の操作軌跡の全部が前記連続的な操作の操作軌跡と重なると判断された場合、前記送信部による前記操作情報の送信を停止させる送信制御部を有することを特徴とする付記３または４に記載のシステム。
【０１２１】
（付記６）ネットワークを介して情報処理装置と接続される端末装置において、
画面上で行われる一連の操作よりも前に前記画面上で行われた連続的な操作の操作軌跡を表す始点から終点までの各点の座標位置と画像データとを対応付けて記憶するテーブルを参照して、前記一連の操作の操作軌跡が前記連続的な操作の操作軌跡と連続性があり、かつ、前記一連の操作の操作軌跡の一部または全部が前記連続的な操作の操作軌跡と重なるか否かを判断する判断部と、
前記判断部によって前記一連の操作の操作軌跡が前記連続的な操作の操作軌跡と連続性があり、かつ、前記一連の操作の操作軌跡の一部または全部が前記連続的な操作の操作軌跡と重なると判断された場合、前記連続的な操作の操作軌跡を表す各点の座標位置に対応付けられた画像データのうちの、前記一連の操作の操作軌跡を表す各点の座標位置に対応する画像データを抽出する抽出部と、
を有することを特徴とする端末装置。
【０１２２】
（付記７）ネットワークを介して情報処理装置と接続される端末装置が、
画面上で行われる一連の操作よりも前に前記画面上で行われた連続的な操作の操作軌跡を表す始点から終点までの各点の座標位置と画像データとを対応付けて記憶するテーブルを参照して、前記一連の操作の操作軌跡が前記連続的な操作の操作軌跡と連続性があり、かつ、前記一連の操作の操作軌跡の一部または全部が前記連続的な操作の操作軌跡と重なるか否かを判断し、
前記一連の操作の操作軌跡が前記連続的な操作の操作軌跡と連続性があり、かつ、前記一連の操作の操作軌跡の一部または全部が前記連続的な操作の操作軌跡と重なると判断した場合、前記連続的な操作の操作軌跡を表す各点の座標位置に対応付けられた画像データのうちの、前記一連の操作の操作軌跡を表す各点の座標位置に対応する画像データを抽出する、
処理を実行することを特徴とする画像取得方法。
【符号の説明】
【０１２３】
１００  システム
１０１  情報処理装置
１０２  端末装置
２００  シンクライアントシステム
２０１  サーバ
２０２  クライアント装置
５０１、６０７  受信部
５０２  決定部
５０３  符号化部
５０４、６０５  送信部
６０１  取得部
６０２  判断部
６０３  抽出部
６０４  表示制御部
６０６  送信制御部
６０８  格納部
６１１  操作情報テーブル
【図１】
2014067311.tif 000003
【図２】
2014067311.tif 000004
【図３】
2014067311.tif 000005
【図４】
2014067311.tif 000006
【図５】
2014067311.tif 000007
【図６】
2014067311.tif 000008
【図７】
2014067311.tif 000009
【図８】
2014067311.tif 000010
【図９】
2014067311.tif 000011
【図１０】
2014067311.tif 000012
【図１１】
2014067311.tif 000013
【図１２】
2014067311.tif 000014
【図１３】
2014067311.tif 000015
【図１４】
2014067311.tif 000016
【図１５】
2014067311.tif 000017
【図１６】
2014067311.tif 000018