次に、本発明の実施の形態について、図面を参照して詳細に説明する。
(第1の実施形態)
図1は、本発明の第1の実施の形態の情報処理システム100の構成を表すブロック図である。
図1を参照すると、本実施形態の情報処理システム100は、端末3と、情報処理装置5を含む。また、情報処理装置5は、操作情報制御装置1と表示装置2を含む。端末3は、端末3の構成要素と情報処理装置5の構成要素を全て含み、さらに情報処理装置5として機能する装置であってもよい。同様に、情報処理装置5は、端末3の構成要素と情報処理装置5の構成要素を全て含み、さらに端末3として機能する装置であってもよい。
操作情報制御装置1は、操作受信部10と、操作記憶部11と、操作推定部12と、予定時刻算出部13と、操作出力部14を含む。操作情報制御装置1は、さらに、遅延検出部15を含んでいてもよい。
表示装置2は、画面生成部20と、表示部21を含む。
端末3は、入力部30と、準備動作検出部31と、操作検出部32と、画面生成部33と、表示部34を含む。
図2は、情報処理システム100に含まれる各装置の接続の例を表す図である。情報処理システム100に含まれる各装置は、例えば図2に示す例のように接続されている。
本実施形態では、端末3のユーザが行った操作の操作データが、端末3から情報処理装置5に送信される。そして、端末3と情報処理装置5の各ユーザは、端末3のユーザが行った操作の操作データを共有する。
図2を参照すると、情報処理装置5と端末3は、通信ネットワークであるネットワーク4を介して接続されている。ネットワーク4は、例えば、インターネットや専用の通信網により実現される。各装置とネットワーク4との接続は、それぞれ、無線でも有線でもよい。
端末3の入力部30は、端末3のユーザが端末3に対して行う操作を表すデータを取得する。入力部30は、タッチパネル、タッチスクリーン、タッチパッド、マウス、キー、プッシュボタン、ダイヤルなどの入力デバイスである。
本実施形態の説明においては、ユーザが端末3に対して行う操作は、例えば、文字や図形の描画のような画面上のオブジェクトの生成、オブジェクトの移動、拡大、縮小などの、画面の表示を変化させる操作である。ユーザが端末3に対して行う操作は、これらの操作以外の、画面の表示を変化させる操作であってもよい。ユーザの操作は、ユーザが端末3に何らかの指示を入力する操作であればよい。以下では、これらの操作を、実操作とも表記する。
入力部30は、さらに、ユーザが実操作の前に行う動作である準備動作を表すデータを取得する。準備動作は、例えば、ユーザがタッチパネルを使用して文字や図形を入力するために、タッチパネルに指を近づける動作である。以下では、ユーザのタッチパネルに対する操作は指によって行われるとして説明するが、タッチパネルに対する操作は、指ではなく、例えばスタイラスペンのような道具により行われてもよい。入力部30が、例えば静電容量式のタッチパネルであれば、入力部30に指を近づけた場合、入力部30は、指に最も近いタッチパネル上の位置や、その位置における指とタッチパネルの距離を計測することができる。従って、この場合、指が入力部30であるタッチパネルに接触していない状態であっても、入力部30は準備動作を表すデータを取得できる。準備動作は、例えば、ユーザがマウスを使用して図形を入力する場合に、描画開始前に画面上の描画開始位置にマウスポインタを停止させる動作のように、端末3に対する実操作であってもよい。準備動作は、以上で述べた動作や実操作以外の、動作や実操作であってもよい。以下では、入力部30が取得する準備動作を表すデータと操作を表すデータを、まとめて、入力デバイスデータ又は入力デバイス情報と表記する。
以下では、操作を表すデータを、操作データあるいは操作情報と表記する。さらに、端末3のユーザが実際に行った実操作を表す操作データを、実操作データと表記する。また、準備動作を表すデータを、予兆データあるいは準備情報と表記する。予兆データは、準備動作の種類と、準備動作の内容を表す情報を含んでいればよい。また、実操作データは、操作の種類と、操作の内容を表す情報を含んでいればよい。
準備動作検出部31は、入力部30が取得したデータから、準備動作を表す予兆データを検出する。準備動作検出部31は、検出した予兆データを、操作情報制御装置1の操作受信部10に送信する。準備動作検出部31は、さらに、端末3と情報処理装置5との間の通信の遅延を測定してもよい。その場合、準備動作検出部31は、測定した遅延時間を、例えば操作受信部10を介して、遅延検出部15に送信すればよい。
操作検出部32は、入力部30が取得したデータから、実操作を表す実操作データを検出する。操作検出部32は、検出した実操作データを、画面生成部33と、操作情報制御装置1の操作受信部10に送信する。
画面生成部33は、実操作データを受信する。画面生成部33は、受信した実操作データで表される操作が行われた場合の画面を生成する。そして、画面生成部33は、生成した画面を表示部34に表示する。
表示部34は、画面生成部33が生成した画面を表示する。表示部34は、例えば、液晶パネルやその他の表示デバイスを備えた、ディスプレイ装置である。
画面生成部33及び表示部34は、それぞれ、画面生成部20及び表示部21と同じであってもよい。端末3は、画面生成部33及び表示部34の代わりに、表示装置2を含んでいてもよい。
操作情報制御装置1の操作受信部10は、ネットワーク4を介して、端末3から実操作データと予兆データを受信する。
操作記憶部11は、予兆データが表す準備動作の種類と、その準備動作の種類に関連する操作の種類の組を、複数記憶する。具体的には、操作記憶部11は、準備動作の種類を表す識別子と操作の種類を表す識別子の組を、複数記憶していればよい。操作記憶部11は、準備動作の種類と操作の種類の組に関連付けて、その種類の準備動作に続いてその種類の操作が行われる確率を記憶していてもよい。例えば情報処理システム100の設計者が、互いに関係づけられた、準備動作の種類と、その種類の準備動作の後に行われる可能性の高い操作の種類を、予め操作記憶部11に記憶させておけばよい。情報処理システム100の設計者は、準備動作とその準備動作の後に行われる操作の統計から、複数の準備動作の種類と操作の種類との関連や、前述の確率を導出すればよい。あるいは、例えば操作推定部12が、端末3から受信する予兆データ及びその予兆データに続く実操作データを集計し、集計の結果に基づき、準備動作とその準備動作の後に行われる操作の統計の情報を生成してもよい。そして、操作推定部12は、その統計の情報に基づき、準備動作の種類とその種類の準備動作の後に行われる可能性の高い操作の種類の組と、それらの組に関連する確率を導出してもよい。さらに、操作推定部12は、導出した、準備動作の種類と操作の種類の組と、その組に関連付けられた確率を、操作記憶部11に記憶させてもよい。また、一連の複数種類の準備動作が、一種類の操作に関連付けられていてもよい。
操作推定部12は、受信した予兆データと、その予兆データが表す準備動作の種類に関連付けられた操作の種類に基づき、その予兆データが表す準備操作に続けてユーザが行う操作を推定する。操作推定部12は、推定した操作である推定操作を表す操作情報を、操作出力部14に送信する。以下では、推定操作は、補完操作とも表記される。前述のように、操作情報は操作データとも表記される。補完操作を表す操作データは、補完データとも表記される。操作推定部12は、2個以上の予兆データに基づき、補完操作を推定してもよい。
予定時刻算出部13は、受信した予兆データ及びその受信した予兆データの受信時刻に基づき、その予兆データが表す準備動作に続けてユーザが行う実操作の実操作データを、端末3から受信する時刻を算出する。予定時刻算出部13は、算出した時刻を、補完データを表示装置2に送信する時刻である予定時刻に設定する。
遅延検出部15は、端末3と操作情報制御装置1の通信における遅延時間を検出する。遅延検出部15が通信の遅延時間を検出する方法は、既存の任意の方法でよい。予定時刻算出部13は、遅延検出部15が検出した遅延時間も使用して、予定時刻を算出してもよい。前述のように、端末3の準備動作検出部31が遅延時間を測定する場合、遅延検出部15は、例えば操作受信部10を介して、端末3から遅延時間を受信してもよい。以下では、遅延検出部15が遅延を検出する場合について説明を行う。
操作出力部14は、受信された予兆データが表す準備動作に続けてユーザが行う実操作の操作データを、算出された予定時刻までに端末3から受信しない場合に、操作推定部12が推定した補完操作の操作データを、算出された予定時刻に表示装置2に送信する。操作出力部14は、受信された予兆データが表す準備動作に続けてユーザが行う実操作の操作情報を、算出された予定時刻までに受端末3から受信した場合は、その操作情報を表示装置2に送信する。
表示装置2の画面生成部20は、受信した実操作データや補完データで表される操作が行われた場合の画面を生成して、生成した画面を表示部21に表示する。
表示部21は、画面生成部20が生成した画面を表示する。表示部21は、例えば、液晶パネルやその他の表示デバイスを備えた、ディスプレイ装置である。
次に、本実施形態の端末3の動作について、図面を参照して詳細に説明する。
図3は、端末3の動作を表すフローチャートである。
端末3が動作を開始すると、入力部30は、ユーザの準備操作及び操作を表す入力デバイスデータの取得を開始する(ステップS10)。
準備動作検出部31は、入力部30が取得したデータから、準備動作を表すデータを検出することで、準備動作を検出する(ステップS11)。準備動作が検出された場合(ステップS11、Y)、準備動作検出部31は、検出された準備動作の予兆データを操作情報制御装置1の操作受信部10に送信する(ステップS12)。
準備動作検出部31は、入力デバイスデータが予兆データであるかどうかを判定するための、入力デバイスデータに対する条件を、検出する予兆データの種類毎にあらかじめ保持していればよい。そして、準備動作検出部31は、入力デバイスデータがいずれかの条件に合致した場合、その条件に合致した入力デバイスデータを、予兆データにすればよい。
例えば、入力部30が静電容量式のタッチパネルであれば、ユーザの端末3に対する操作であるタップ操作、ドラッグ操作、フリック操作の準備動作として、タッチパネルへの指の接近が考えられる。この場合、さらに、指のタッチパネルに平行な移動の大きさにより、タッチパネルへの指の接近が、どの種類の操作の準備動作であるかを判別することが考えられる。また、ピンチアウトやピンチインのようなピンチ操作の準備動作として、タッチパネル上の所定距離未満の2ヶ所への指の接触や、タッチパネル上の所定距離以上の2ヶ所への指の接触が考えられる。準備動作は、これら以外であってもよい。
入力部30が静電容量式のタッチパネルである場合、タッチパネル上の指が接触している位置の時系列の情報を得ることができる。また、静電容量式のタッチパネルに指が接近すると、タッチパネル上の指が接近した場所の静電容量が変化する。また、その静電容量は、指とタッチパネルの距離に依存する。従って、静電容量式のタッチパネルを使用することにより、指がタッチパネルに接触していなくても、指とタッチパネルが接近していれば、指の位置の情報を得ることができる。
この場合、入力デバイスデータは、例えばタッチパネルにマトリクス状に配置された複数の電極における静電容量が、時系列で複数連続するデータである。準備動作検出部31は、例えば、タッチパネル上で静電容量が変化した領域の中心や重心を、指の位置にする。そして、準備動作検出部31は、複数の連続する静電容量のデータから、それぞれ算出した指の位置から、指の動きを推定する。準備動作検出部31は、推定した指の動きが、例えば上述の準備動作の例に合致するか否かを判定する。準備動作検出部31は、準備動作に合致すると判定された指の動きを表す入力センサデータを、予兆データにすればよい。予兆データは、入力センサデータそのものではなく、入力デバイスデータから推定した指の位置の変化を表すデータであってもよい。
入力部30がマウスである場合、ユーザが端末3に対して行う操作として、マウスを使用して文字や図形を描画する操作がある。画面に表示される描画領域に図形を描画する操作の準備動作として、例えば、描画領域内でマウスポインタを所定時間以上停止させることが考えられる。この場合、準備動作検出部31は、入力部30からマウスポインタの位置のデータを、入力デバイスデータとして継続的に取得する。そして、準備動作検出部31は、マウスポインタの位置の時系列データから、マウスポインタが所定時間以上停止しているか否かを判定する。準備動作検出部31は、マウスポインタが所定時間以上停止していると判定した場合、マウスポインタが停止していることを表す情報と位置の情報を含む予兆データを生成する。
準備動作検出部31は、予兆データに準備動作の種類を表す識別子を付加して、操作受信部10に送信してもよい。
準備操作が検出されなかった場合(ステップS11、Y)、準備動作検出部31は、予兆データを送信しない(ステップS11、N)。
次に、操作検出部32は、入力デバイスデータが、実操作を表すデータであるか否かを判定することにより、実操作を検出する(ステップS13)。実操作が検出されなかった場合(ステップS13、N)、処理はステップS10に戻る。
操作検出部32は、実操作の検出を、入力デバイスを使用してユーザの操作を検出する、既存の任意の方法で行えばよい。
実操作が検出された場合(ステップS13、Y)、操作検出部32は、検出された実操作が、端末3の動作の終了を指示する操作であるか否かを判定する(ステップS14)。検出された実操作が、端末3の動作の終了を指示する操作である場合(ステップS14、Y)、端末3は動作を終了する。
検出された実操作が、端末3の動作の終了を指示する操作ではない場合(ステップS14、N)、操作検出部32は、実操作を表す操作データを生成して、画面生成部33に送信する。
画面生成部33は、受信した操作データで表される操作を行った場合の画面を生成し、生成した画面を表示部34に表示する(ステップS15)。
操作データは、例えば、入力デバイスデータのうち、実操作を表す部分のデータであれる。操作データは、入力デバイスデータから判定した、ユーザの具体的な動作を表すデータであってもよい。操作データは、その具体的な動作によるユーザの端末3への指示を表すデータであってもよい。ユーザの具体的な動作を表すデータは、例えば、タッチパネル上の座標とその座標におけるタップ動作を表すデータである。この場合、例えば、ユーザがタップした場所が、画面上に描かれた図形を消去するためのボタンが描かれているタッチパネルの領域であるなら、端末3への指示を表すデータは、描かれた図形を消去する指示を表すデータである。あるいは、ユーザの具体的な動作を表すデータは、例えば、指がタッチパネルに接触している位置の時系列データであってもよい。この場合、例えば、入力デバイスデータ取得時に端末3が描画モードであるなら、端末3への指示を表すデータは、指をタッチパネルに接触させて動かすことにより、ユーザがタッチパネルに描いた図形の描画の指示を表すデータである。
次に、操作検出部32は、操作データを、操作情報制御装置1の操作受信部10に送信する(ステップS16)。操作検出部32は、操作データに実操作の種類を表す識別子を付加して、操作受信部10に送信してもよい。ステップS15とステップS16の順番は、逆であってもよい。
準備動作検出部31は、図3の動作によらず、継続的に準備動作の検出を行ってもよい。そして、準備動作検出部31は、準備動作を検出した場合、その準備動作の予兆データを送信する。準備動作検出部31は、例えば所定の時間毎に、その間の準備動作の予兆データを送信してもよい。
操作検出部32は、図3の動作によらず、継続的に実操作の検出を行ってもよい。そして、操作検出部32は、実操作を検出した場合、その実操作の操作データである実操作データを送信する。操作検出部32は、例えば所定の時間毎に、その間の実操作データを送信してもよい。
次に、本実施形態の操作情報制御装置1の動作について、図面を参照して詳細に説明する。
図4は、操作情報制御装置1の予兆データ受信時の動作を表すフローチャートである。前述のように、本実施形態では、予兆データは準備情報とも表記される。操作情報制御装置1は、例えば他の実操作データ受信後に、予兆データではなく実操作データを受信した場合、図4の動作によらず、受信した実操作データを画面生成部20に送信すればよい。
図4を参照すると、まず、操作受信部10が予兆データを受信する(ステップS20)。
操作推定部12は、操作受信部10が受信した予兆データから、予兆データが表す準備動作に続けてユーザが行う実操作を推定する(ステップS21)。
操作推定部12は、受信した予兆データが表す準備動作の種類に関連付けられている操作の種類を、操作記憶部11から読み出す。そして、操作推定部12は、予兆データと、受信した予兆データと読み出した操作の種類から、予兆データで表される予備動作に続けて行われる実操作を推定する。そして、操作推定部12は、推定した実操作を表す補完データを生成する。
例えば、予兆データが、指がタッチパネルに近付いている状態における、指の位置の変化を表すデータを含み、その予兆データの準備動作の種類が、タッチパネルへの指の接近である場合の、操作推定部12の動作は以下の通りである。この場合、操作推定部12は、まず、準備動作の種類であるタッチパネルへの指の接近に関連付けられている実操作の種類を読み出す。読み出した実操作の種類がタッチパネルへの指の接触であれば、操作推定部12は、次に、予兆データに含まれる指の位置のデータから、指がタッチパネルに接触すると推定される位置の座標を算出する。そして、操作推定部12は、算出した位置に指が接触するイベントを表すデータを、補完データとして生成する。あるいは、操作推定部12は、算出した位置に指が接触するときに発生するイベントを表すデータを、補完データとして生成してもよい。例えば、算出した位置に例えばボタンが表示されており、算出された位置への指の接触がそのボタンの押下の指示を意味する場合、操作推定部12は、ボタンの押下を表すデータを、補完データとして生成すればよい。
例えば、予兆データが、タッチパネル上で指が同時に接触している、所定距離以上離れた2ヶ所の位置を表すデータを含み、その予兆データの準備動作の種類が、離れた2点への指の接触である場合の、操作推定部12の動作は以下の通りである。この場合、操作推定部12は、まず、準備動作の種類である、離れた2点への指の接触に関連付けられている実操作の種類を読み出す。離れた2点への指の接触に関連付けられている実操作の種類は、例えば、指をタッチパネルに接触させたまま近づける操作である、ピンチインの操作である。この場合、操作推定部12は、予兆データが含む2点の位置のそれぞれに接触した指を、他方の点に向かう方向にドラッグするイベントを表すデータを、補完データとして生成する。あるいは、操作推定部12は、予兆データが含む2点の位置のそれぞれに接触した指を、他方の点の方向にドラッグした時に発生するイベントを表すデータを、補完データとして生成してもよい。例えば、予兆データに含まれる指の接触点の双方が、オブジェクトが表示されている領域に含まれ、前述のドラッグが、表示されているオブジェクトを縮小する指示を意味するのであるなら、オブジェクトを縮小するイベントを、補完データとして生成してもよい。
例えば、準備動作の種類が、2点への指の接触であり、準備動作の内容が、指が接触している2点の位置を表す情報である場合、操作推定部12は、次のように動作してもよい。操作推定部12は、まず、準備動作の種類である、2点への指の接触に関連付けられている実動作の種類を読み出す。2点への指の接触に関連付けられている実動作の種類は、例えば、指をタッチパネルに接触させたまま近づけるか遠ざける操作である、ピンチ操作である。操作推定部12は、準備動作の内容の情報である、指が接触している2点の位置を表す情報から、指が接触している2点間の距離を算出する。指が接触している2点間の距離が所定の距離以上であれば、操作推定部12は、実操作を、指をタッチパネルに接触させたまま近づける操作である、ピンチインの操作であると推定する。この場合、操作推定部12は、例えば上述のように、予兆データが含む2点のそれぞれに接触した指を、他方の点に向かう方向にドラッグするイベントを表すデータを、補完データとして生成する。一方、指が接触している2点間の距離が所定の距離未満であれば、操作推定部12は、実操作を、指をタッチパネルに接触させたまま遠ざける操作である、ピンチアウトの操作であると推定する。この場合、操作推定部12は、例えば、予兆データが含む2点のそれぞれに接触した指を、他方の点から離れる方向にドラッグするイベントを表すデータを、補完データとして生成する。
例えば、予兆データが、マウスポインタが一定時間以上停止している位置を表すデータを含み、その予兆データの準備動作の種類が、マウスポインタの停止である場合の、操作推定部12の動作は以下の通りである。この場合、操作推定部12は、まず、準備動作の種類である、マウスポインタの停止に関連付けられている実操作の種類を読み出す。マウスポインタの停止に関連付けられている実操作の種類が、マウスのボタンのクリックである場合、操作推定部12は、実操作に含まれるマウスポインタの位置において、マウスのボタンがクリックされるイベントを表すデータを、補完データとして生成する。なお、マウスのボタンが複数存在する場合、操作推定部12は、例えば、最も頻繁にクリックされるボタンがクリックされるイベントを表すデータを、補完データとして生成すればよい。
次に、予定時刻算出部13が、予兆データで表される準備動作に続いて行われる実操作の操作データを、操作受信部10が受信する予定の時刻を算出する。そして、予定時刻算出部13は、算出した時刻を、補完データを送信する時刻である予定時刻に設定する(ステップS22)。
予定時刻算出部13は、例えば、ユーザが、予兆データで表される準備動作を行ってから、その準備動作に続く実操作を行うまでの時間を推定する。そして、予定時刻算出部13は、推定した時間と操作受信部10が予兆データを受信した時刻から、予定時刻を算出る。端末3と操作情報制御装置1の間の通信の遅延が一定であるなら、予定時刻算出部13は、推定した時間を予兆データの受信時刻に足すことにより、予定時刻を算出することができる。
例えば、予兆データが、指がタッチパネルに接近することを表すデータである場合、実操作はタッチパネルへの指の接触である。予定時刻算出部13は、タッチパネルと指の間の距離と、指がタッチパネルに接近する速度に基づき、予兆データ取得時から、タッチパネルへの指の接触までの時間を算出する。予兆データは、タッチパネルと指の間の距離の推移を表すデータを含んでいればよい。予定時刻算出部13は、予兆データに含まれるタッチパネルと指の間の距離の時系列情報から、指がタッチパネルに接近する速度を算出すればよい。
予兆データの取得から実操作までの時間は、例えば、準備動作の種類毎に、あらかじめ実験的に得られた時間であってもよい。この場合、予定時刻算出部13は、準備動作の種類毎の、予兆データの取得から実操作までの時間を保持していればよい。そして、予定時刻算出部13は、操作受信部10における予兆データの受信時刻に、その予兆データの準備動作の種類に関連付けられている時間を足した時刻を、予定時刻にすればよい。
操作受信部10が、算出された予定時刻までに実操作データを受信しなかった場合(ステップS23、N)、操作出力部14は、生成された補完データを、算出された予定時刻に、表示装置2の画面生成部20に出力する(ステップS25)。
補完データを受信した画面生成部20は、その補完データの操作が表す指示に基づく処理を実行し、操作後の画面を生成する。画面生成部20は、生成した画面を表示部21に表示させる。例えば、補完データの操作が文字や図形の描画であるなら、画面生成部20は、表示部21に表示する画面上に、補完データの操作によって描かれる文字や図形を生成する。
なお、端末3のユーザが、予兆データによって表される準備動作に続く操作を中止する場合もある。操作出力部14は、操作受信部10が予兆データを受信してから所定時間以内に実操作データを受信しなかった場合、画面を補完データの操作が行われない状態に戻す指示である取消指示を、画面生成部20に送信してもよい。操作出力部14は、取消指示の対象の補完データを、例えば、それぞれの補完データに付与された識別子によって指定する。操作出力部14は、取消指示に加えて、その取消指示の対象の補完データを送信してもよい。画面生成部20は、取り消し指示を受信した場合、画面を、補完データの操作による処理が行われる前の状態に戻す。例えば、前述のように補完データの操作が文字や図形の描画であるなら、画面生成部20は、表示部21に表示する画面上に生成した、補完データの操作によって描かれる文字や図形を消去する。
また、操作出力部14が補完データを送信した後に、操作受信部10が実操作データを受信した場合、操作出力部14は、受信された実操作データと、その補完データの取消指示を、画面生成部20に送信する。この場合、画面生成部20は、画面上に、補完データの操作によって描かれた文字や図形に重畳させて、実操作データの操作による文字や図形を描く。そして、画面生成部20は、補完データの操作によって描かれる文字や図形を、画面から消去する。実操作データと、補完データの取消指示の、操作出力部14による送信の順序は、上述の順序であることが望ましいが、逆であっても構わない。
操作受信部10が、算出された予定時刻までに実操作データを受信した場合(ステップS23、Y)、操作出力部14は、操作受信部10が受信した実操作データを表示装置2の画面生成部20に出力する(ステップS25)。この場合、操作出力部14は、算出された予定時刻までに、実操作データを画面生成部20に出力すればよい。操作出力部14は、算出された予定時刻に、実操作データを画面生成部20に出力してもよい。
実操作データを受信した画面生成部20は、その実操作データの操作によって指示された処理を実行し、操作後の画面を生成する。画面生成部20は生成した画面を表示部21に表示させる。
本実施形態には、転送により操作データを共有する、互いに通信が可能な複数の装置間で、他の装置からの操作データの転送の遅延による、円滑なコミュニケーションの阻害を軽減できるという効果がある。
その理由は、予兆データから推定した操作と予兆データの受信時刻から算出した予定時刻までに、操作受信部10が実操作データを受信しなかった場合、操作出力部14が、推定した操作を表す補完データを出力するからである。
図5は、端末3における予兆データ及び実操作データの送信と、操作情報制御装置1における予兆データ及び実操作データの受信と補完データの送信のタイミングの一例を表す図である。図5の例では、実操作データ送信時の遅延時間は、予兆データ送信時の遅延時間と比較して、拡大している。端末3における予兆データ送信時刻と実操作データ送信時刻の差より、操作情報制御装置1における予兆データ受信時刻と実操作データ受信時刻の差の方が大きい。
ネットワーク4の通信遅延や輻輳の増大により、操作の結果の画面を端末3と共有する情報処理装置5への端末3からの操作データの転送の遅延が拡大した場合、端末3で操作が行われてから表示部21に操作の結果が表示されるまでのタイムラグも拡大する。通信遅延が存在していても、遅延時間が一定であり、前述のタイムラグが一定であれば、端末3のユーザと情報処理装置5のユーザは、その一定の長さのタイムラグが存在することを前提として、円滑にコミュニケーションを行うことが可能である。しかし、特にネットワーク4を介する操作データの転送遅延が拡大した場合、端末3のユーザと情報処理装置5のユーザは、端末3と情報処理装置5が共有する画面を介したコミュニケーションを、円滑に行うことができなくなる。
本実施形態では、操作推定部12が端末3のユーザの操作を表す補完データを、予兆データから推定する。そして、予定時刻算出部13が算出した予定時刻までに操作受信部10が実操作データを受信しない場合、操作出力部14が予定時刻に補完データを画面生成部20に対して出力する。前述の例では、予定時刻算出部13が算出する予定時刻は、予兆データの予備動作に関連する操作の実操作データを、操作受信部10が受信する時刻の推定値である。本実施形態の操作情報制御装置1は、ネットワーク4の通信遅延が拡大している場合に、前述のタイムラグを拡大させない。このことにより、端末3のユーザと情報処理装置5のユーザの円滑なコミュニケーションの、転送遅延の変動による阻害を軽減する効果が得られる。
(第1の実施形態の第1の変形例)
以上で説明したように、第1の実施形態では、予定時刻算出部13が算出する予定時刻は、予兆データの予備動作に関連する操作の実操作データを操作受信部10が受信する時刻の推定値である。この場合の予定時刻は、実操作データの転送時における遅延時間が、予兆データの転送時における遅延時間と同じである場合に、操作受信部10が実操作データを受信する時刻である。
予定時刻算出部13は、上述の第1の実施形態のようにして予定時刻を算出するのではなく、端末3のユーザが実操作を行う時刻を推定し、その時刻に、情報処理装置5の表示部21にその実操作の補完操作の結果が表示されるように、予定時刻を算出してもよい。本変形例の予定時刻は、実操作データの転送時における遅延時間が無い又は無視できると仮定した場合に、操作受信部10が端末3から実操作データを受信する時刻である。
この場合、ステップS22において、予定時刻算出部13は、例えば、予兆データ受信時刻と、遅延検出部15が検出した予兆データ受信時の遅延時間と、予兆データの準備動作からその準備動作に続く実操作までの推定時間から、予定時刻を算出する。この推定時間は、準備動作が検出された時刻から、その準備動作に続く実動作が検出される時刻までの時間の推定値であればよい。以下では、この推定時間を、準備動作時間とも表記する。予定時刻算出部13は、予兆データ受信時刻に、準備動作からその準備動作に続く実操作までの推定時間を足し、検出された予兆データ受信時の遅延時間を引いた時刻を、予定時刻として算出すればよい。
この場合、予定時刻は端末3のユーザが実操作を行う時刻の推定時刻であるので、その時刻の推定が正しければ、実操作データは、算出された予定時刻まで受信されない。予定時刻の推定が正しくない場合は、予定時刻までに実操作データが受信されることもあり得る。
算出された予定時刻までに実操作データが受信されなかった場合、操作出力部14は、予定時刻に、補完データを画面生成部20に送信する。予定時刻が算出された時刻が、算出された予定時刻以前である場合、操作出力部14は、すぐに補完データを画面生成部20に送信する。また、算出された予定時刻以前に実操作データが受信された場合、操作出力部14は、予定時刻に、受信された実操作データを画面生成部20に送信すればよい。
遅延検出部15は、常時あるいは所定の時間毎に、データ転送及び音声信号の遅延時間を測定していればよい。予兆データの受信時刻と遅延時間の測定時刻が異なる場合、予定時刻算出部13は、予兆データの受信時刻に最も近い時刻に測定した遅延時間を、予兆データ受信時の遅延時間にすればよい。
以上のように予定時刻算出部13が予定時刻を算出することにより、操作情報制御装置1は、ネットワーク4の通信遅延が無視できない長さである場合でも、端末3のユーザが操作を行うと推定される時刻に、その操作の推定操作の結果を、表示部21に表示する。このことにより、端末3のユーザと情報処理装置5のユーザの円滑なコミュニケーションの、転送遅延の変動による阻害を、さらに軽減する効果が得られる。
なお、予定時刻算出部13は、上述の本変形例の予定時刻を算出することに加えて、予兆データの受信時刻に準備動作時間を加えた時刻を、表示変更時刻として算出してもよい。さらに、操作出力部14は、算出された表示変更時刻と、操作データが補完データであることを表す識別子を付加した補完データを、画面生成部20に送信してもよい。
この場合、画面生成部20は、補完データに操作データが補完データであることを表す識別子が付加されていれば、その補完データを表す操作による描画と、実操作データを表す操作による描画が判別可能な形式で、その補完データが表す操作の後の画面を生成する。例えば、補完データがストロークや点などの図形や文字の描画を表す場合、画面生成部20は、あらかじめ設定された、実操作データが表す操作により描画される図形や文字の色として使用されない色を使用して、補完データが表す操作の図形や文字を描画すればよい。画面生成部20は、補完データを表す操作によって描かれる図形や図形だけを点滅させてもよい。画面生成部20は、補完データが表す操作によって描かれる文字や図形だけに、矢印やアイコンなどの所定の図形が付加された画面を生成してもよい。
そして、画面生成部20は、画面変更時刻までに補完操作に関連する実操作を受信しなかった場合、画面変更時刻に、補完データが表す操作による描画を実操作による描画と同じ形式に変更する。補完データの受信時刻が表示変更時刻以後であれば、画面生成部20は、実操作による描画と同じ形で、補完データが表す操作による描画を行えばよい。
(第1の実施形態の第2の変形例)
予定時刻算出部13は、上述の第1の実施形態のようにして予定時刻を算出するのではなく、端末3のユーザが実操作を行ってから、情報処理装置5の表示部21にその操作の結果が表示されるまでの時間が一定になるように、予定時刻を算出してもよい。
この場合、ステップS22において、予定時刻算出部13は、例えば、予兆データ受信時刻と、遅延検出部15が検出した予兆データ受信時の遅延時間と、予兆データの準備動作からその準備動作に続く実操作までの推定時間から、予定時刻を算出する。予定時刻算出部13は、予兆データ受信時刻に、所定の一定の遅延時間と準備動作からその準備動作に続く実操作までの推定時間を足し、検出された予兆データ受信時の遅延時間を引いた時刻を、予定時刻として算出すればよい。
そして、算出された予定時刻までに実操作データが受信されなかった場合、操作出力部14は、予定時刻に、補完データを画面生成部20に送信する。また、算出された予定時刻以前に実操作データが受信された場合、操作出力部14は、予定時刻に、受信された実操作データを画面生成部20に送信してもよい。
遅延検出部15は、常時あるいは所定の時間毎に、データ転送及び音声信号の遅延時間を測定していればよい。予兆データの受信時刻と遅延時間の測定時刻が異なる場合、予定時刻算出部13は、予兆データの受信時刻に最も近い時刻に測定した遅延時間を、予兆データ受信時の遅延時間にすればよい。
以上のように予定時刻算出部13が予定時刻を算出することにより、操作情報制御装置1は、ネットワーク4の通信遅延が変動する場合でも、端末3のユーザが操作を行ってから、その操作の結果が表示部21に表示されるまでの時間を、一定に保つことができる。このことにより、端末3のユーザと情報処理装置5のユーザの円滑なコミュニケーションの、転送遅延の変動による阻害を、さらに軽減する効果が得られる。
(第1の実施形態の第3の変形例)
また、端末3のユーザと情報処理装置5のユーザが、共有する画面によるコミュニケーションに加えて、例えば端末3及び情報処理装置5のそれぞれで稼働するソフトフォンにより、音声通話を行っていることもある。その場合、予定時刻算出部13は、実操作データの転送時における遅延時間が、音声信号の遅延時間に等しい場合に、操作受信部10が実操作データを受信する時刻を、前述の予定時刻として算出してもよい。
この場合、ステップS22において、予定時刻算出部13は、例えば、遅延検出部15が検出した、端末3と操作情報制御装置1との間の、データ転送及び音声信号の遅延時間を使用して、予定時刻を算出する。遅延検出部15は、常時あるいは所定の時間毎に、データ転送及び音声信号の遅延時間を測定していればよい。
データ転送の遅延時間の検出方法は、例えば、測定用パケットによりRTT(Round Trip Time)を測定する方法など、既存の任意の方法でよい。
音声信号の遅延時間の検出方法も、既存の任意の方法でよい。例えば、情報処理装置5が、端末3から送信された測定用パケットの遅延を測定し、その測定結果から、音声信号の遅延時間を推定することができる。端末3における音声の入力から音声信号の送信までの時間と、情報処理装置5における音声信号の受信から音声出力までの時間が既知であれば、端末3から送信された測定用パケットの遅延を測定することにより、音声信号の遅延時間を推定することが可能である。あるいは、情報処理装置5は、端末3における音声の入力から、情報処理装置5におけるその音声の出力までの時間を測定することもできる。この場合、端末3は測定用の音声を発信し、音声信号として情報処理装置5に送信すればよい。端末3は、さらに、測定用の音声を発信した時刻を、情報処理装置5に送信すればよい。情報処理装置5は、受信した音声信号から生成した音声から、測定用の音声を検出すればよい。そして、情報処理装置5は、測定用の音声の、発信時刻と検出時刻の差を算出すればよい。
そして、予定時刻算出部13は、データ転送が、検出された音声信号の遅延時間と同じ時間遅延する場合の、前述の予定時刻を算出すればよい。予定時刻算出部13は、操作受信部10における予兆データの受信時刻から、検出されたデータ転送の遅延時間を引き、検出された音声信号の遅延時間とその予兆データの準備動作の種類に関連付けられている時間を足した時刻を、予定時刻にすればよい。
IP(Internet Protocol)ネットワークを介する通信では、データの転送はTCP(Transmission Control Protocol)により行われることが多い。一方、ソフトフォンとして実装されるIP電話では、音声信号の送信は、UDP(User Datagram Protocol)により行われることが多い。また、IP電話は、受信した音声信号のパケットをバッファリングしてから、音声に変換することが多い。従って、同じIPネットワークを介する通信であっても、データ転送の遅延時間と、音声信号の遅延時間は、同じであるとは限らない。
操作出力部14は、以上のようにして算出された予定時刻までに実操作データが届かなかった場合、予定時刻に、補完データを画面生成部20に出力する。予定時刻以前に実操作データが届いた場合、操作出力部14は、予定時刻に、実操作データを画面生成部20に出力してもよい。
このことにより、データ転送の遅延時間と音声信号の遅延時間が異なる場合でも、情報処理装置5における操作データ又は補完データの操作による画面の変化と音声の再生のタイミングは、端末3のユーザの操作と発話のタイミングと同等になる。従って、例えば、端末3のユーザが、画面に図形を描きながら音声によって説明を行った場合、情報処理装置5における図形の描画及び音声の再生のタイミングは、端末3のユーザによる説明時の描画及び発話のタイミングと同等になる。従って、実操作データの転送の遅延時間と音声信号の遅延時間が異なることによる、端末3のユーザと情報処理装置5のユーザの円滑なコミュニケーションの阻害を、さらに軽減する効果が得られる。
(第2の実施形態)
次に、本発明の第2の実施形態について、図面を参照して詳細に説明する。
図6は本実施形態の情報処理システム100Aの構成を表すブロック図である。
図6と図1を比較すると、情報処理システム100Aは、情報処理装置5の代わりに情報処理装置5Aを含む点が、情報処理システム100と異なる。情報処理装置5Aは、操作情報制御装置1のかわりに操作情報制御装置1Aを含む点が、情報処理装置5と異なる。
また、操作情報制御装置1Aは、差異判定部16を含む点が、操作情報制御装置1と異なる。
差異判定部16は、同一の予兆データに関連付けられている、表示装置2に送信された補完データの操作と、端末3から受信した実操作データが表す操作との差異を算出する。差異判定部16は、算出した差異と所定の閾値の比較を行う。差異判定部16は、操作の種類毎に定められた操作の差の評価値を算出すればよい。そして、差異判定部16は、算出した評価値と、操作の種類毎に定められた、評価値に対する閾値の比較を行えばよい。
操作出力部14は、さらに、算出された差異が閾値によって表される差異より大きい場合、実操作データとの差異を算出した補完データによる表示を取り消す取消指示と、実操作データを、画面生成部20に送信する。
取消指示を受信した画面生成部20は、表示部21に表示する画面を、取消指示の対象の補完データの操作による処理が行われる前の状態に戻す。そして、画面生成部20は、受信した実操作データの操作による処理を行って、表示部21に表示する画面を生成する。画面生成部20は、生成した画面を表示部21に表示させる。
実操作データと、補完データの取消指示の、操作出力部14による送信の順序は、上述の順序と逆でも構わない。その場合、画面生成部20は、表示部21に表示する画面に、補完データの操作による描画に重畳して、実操作データの操作による描画を行う。そして、画面生成部20は、補完データの操作による描画を画面から消す。
次に、本実施形態の操作情報制御装置1Aの動作について、図面を参照して詳細に説明する。
図7は、本実施形態の操作情報制御装置1Aの動作を表すフローチャートである。
図7のステップS20からステップS25の動作は、図4の同一の符号のステップの動作と同じであるので、説明を省略する。
操作受信部10がステップS23で予定時刻までに実操作データを受信していない場合(ステップS23、N)は、操作受信部10は、補完データの送信(ステップS25)以後に、実操作データを受信する(ステップS26)。
差異判定部16は、送信済みの補完データと受信された実操作データに基づき、補完データが表す補完操作と、実操作データが表す実操作の差異を導出する。導出された差異が、差異に対する所定の閾値より小さい場合(ステップS27、N)、処理はステップS20に戻る。
なお、前述のように、操作出力部14は、予兆データを受信してから所定時間以上経過した場合、その予兆データから生成した補完データの操作が行われない状態に戻す取消指示を送信してもよい。取消指示送信後に実操作データを受信した場合、操作情報制御装置1Aは、ステップS27及び後述のステップS28の動作を行わずに、実操作データを画面生成部20に出力すればよい。
差異の算出法は、既存の任意の方法でよい。例えば、実操作データ及び補完データが、図形を入力する操作を表す場合、差異判定部16は、実操作データにより描かれる図形の始点と、補完データにより描かれる図形の始点の距離を、差異の評価値にする。実操作データ及び補完データが例えばソフトウェアキーボードで文字を入力する操作を表す場合、差異判定部16は、実操作データの文字と補完データの文字の異同を判定すればよい。そして、差異判定部16は、実操作データの文字と補完データの文字が同じ場合、差異の評価値を0に、実操作データの文字と補完データの文字が異なる場合、差異の評価値を所定値にすればよい。この場合の閾値は、0とその所定値の間の値であればよい。
算出された差異が、差異に対する所定の閾値より大きい場合(ステップS27、Y)、操作出力部14は、補完データの取消指示を送信する(ステップS28)。
補完データの取消指示を受信した画面生成部20は、表示部21に表示する画面を、その補完データが表す操作による処理が行われる前の状態に戻す。
操作出力部14は、取消指示を送信した後、受信された実操作データを、画面生成部20に送信する(ステップS24)。
実操作データを受信した画面生成部20は、受信した実操作データが表す操作による処理を行った結果の画面を生成し、生成した画面を表示部21に表示させる。
なお、操作出力部14は、算出された差異が、差異に対する所定の閾値より大きい場合(ステップS27、Y)、受信された実操作データを画面生成部20に送信してから(ステップS24)、補完データの取消指示を送信してもよい(ステップS28)。
以上で説明した本実施形態には、第1の実施形態と同じ効果に加えて、端末3のユーザと情報処理装置5のユーザが、正確な操作を共有することができるという効果がある。
その理由は、本実施形態の差異判定部16が、送信された補完データが表す操作と、その補完データ送信後に受信された実操作データが表す操作の間の、所定の閾値で表される差異より大きな差異の有無を判定するからである。そのような差異が存在する場合、操作出力部14が、その補完データの取消指示と、受信された実操作データを、画面生成部20に対して出力する。その結果、実操作と補完操作の差が大きい場合、補完操作による表示は、実操作による表示に修正される。
(第3の実施形態)
次に、本発明の第3の実施形態について、図面を参照して詳細に説明する。
図8は、本実施形態の情報処理装置5Bの構成を表すブロック図である。
図8を図1と比較すると、情報処理装置5Bは、第1の実施形態の情報処理装置5の各構成要素に加えて、端末3の構成要素である入力部30と、準備動作検出部31と、操作検出部32を含む。情報処理装置5Bの各構成要素は、図1の、同じ番号が付与された構成要素と同じであるので、説明を省略する。
図9は、本実施形態の情報処理システム100Bの構成を表す図である。
図9を図2と比較すると、情報処理システム100Bは、第1の実施形態の情報処理システム100の端末3及び情報処理装置5を、それぞれ情報処理装置5Bで置き換えたものである。図9でネットワーク4に接続されている情報処理装置5Bの台数は2台であるが、3台以上の情報処理装置5Bがネットワーク4に接続されていてもよい。
次に、本実施形態の情報処理装置5Bの動作について、図面を参照して詳細に説明する。
情報処理装置5Bは、第1の実施形態の端末3及び情報処理装置5の双方として動作する。例えば、ある情報処理装置5Bのユーザがその情報処理装置5Bに対して操作を行う場合、その情報処理装置5Bは端末3として動作し、他の情報処理装置5Bは情報処理装置5として動作する。各情報処理装置5Bは、同時に端末3及び情報処理装置5として動作してもよい。すなわち、情報処理装置5Bは、端末3として、予兆データや実操作データを他の情報処理装置5Bに送信しながら、情報処理装置5として、予兆データや実操作データを他の情報処理装置5Bから受信してもよい。
図3は、端末3として動作している、送信側の情報処理装置5Bの、入力デバイス情報取得時の動作を表すフローチャートである。
図4は、情報処理装置5として動作している受信側の情報処理装置5Bの、操作情報制御装置1の準備情報受信時の動作を表すフローチャートである。前述のように、準備情報は、予兆データとも表記される。
送信側の情報処理装置5Bの動作は、第1の実施形態の端末3の動作と同じであり、受信側の情報処理装置5Bの動作は、第1の実施形態の情報処理装置5の動作と同じであるので、説明を省略する。
以上で説明した本実施形態には、2台の情報処理装置5Bの組で行われるコミュニケーションにおいて、いずれの方向のコミュニケーションにおいても、第1の実施形態と同じ効果がある。
なお、情報処理装置5Bは、操作情報制御装置1の代わりに、第2の実施形態の操作情報制御装置1Aを含んでいてもよい。
その場合、本実施形態には、2台の情報処理装置5Bの組で行われるコミュニケーションにおいて、いずれの方向のコミュニケーションにおいても、第2の実施形態と同じ効果がある。
(第4の実施形態)
次に、本発明の第4の実施形態について、図面を参照して詳細に説明する。
図10は、本実施形態の情報処理システム100Cの構成を表すブロック図である。
図10を参照すると、情報処理システム100Cは、操作情報制御装置1と、表示装置2と、端末3を含む。本実施形態の操作情報制御装置1と、表示装置2と、端末3は、それぞれ、第1の実施形態の操作情報制御装置1と、表示装置2と、端末3と同じである。したがって、各装置の説明は省略する。
図11は、情報処理システム100Cが含む各装置の接続を表す図である。
各装置は、ネットワーク4を介して接続されている。表示装置2は、1台であってもよい。表示装置2は、図11のように、2台以上存在していてもよい。
次に、本実施形態の動作について、図面を参照して詳細に説明する。
図3は、本実施形態の端末3の入力デバイス情報取得時の動作を表すフローチャートである。
図4は、本実施形態の操作情報制御装置1の準備情報受信時の動作を表すフローチャートである。
本実施形態の操作情報制御装置1は、複数の表示装置2がネットワーク4に接続されている場合、表示装置2の各々に対して、補完データや実操作データを送信する。
その他の本実施形態の端末3及び操作情報制御装置1の動作は、それぞれ、第1の実施形態の端末3及び操作情報制御装置1の動作と同じであるので、説明を省略する。
以上で説明した本実施形態には、第1の実施形態と同じ効果がある。
本実施形態には、さらに、実操作データの受信側のユーザが複数存在する場合に、コストを低減できるという効果がある。
その理由は、受信側の複数のユーザがそれぞれ保持する装置が、操作情報制御装置1を含まないからである。本実施形態では、受信側の複数のユーザは、それぞれ、表示装置2を保持していればよい。操作情報制御装置1は1台しか必要ない。
(構成例)
次に、本発明の第1の実施形態に基づく構成例について説明する。本構成例は、手書き共有システムである。
図12は、本構成例の手書き共有システムの構成を表す図である。
図12を参照すると、手書き共有システムは、インターネット420を介して接続されている、タブレット端末400とPC410(Personal Computer)を含む。タブレット端末400が、第1の実施形態の端末3である。PC410が、情報処理装置5である。インターネット420が、ネットワーク4である。
タブレット端末400は、静電容量方式のタッチスクリーンを備える。タブレット端末400では、ユーザが文字やストロークを描画できる手書きプログラムが動作している。タブレット端末400は、タブレット端末400のCPU(Central Processing Unit)が実行する手書きプログラムにより、図1の端末3として動作する。手書きプログラムは、タブレット端末400を、入力部30と、準備動作検出部31と、操作検出部32と、画面生成部33と、表示部34として動作させる。ユーザAは、手の指をタッチスクリーンに接触させて、手書きプログラムを実行するタブレット端末400を操作する。タブレット端末400のタッチスクリーンが、入力部30及び表示部34として動作する。
PC410は、ディスプレイ装置を備える。PC410は、PC410のCPUが実行する操作情報制御プログラムにより、図1の操作情報制御装置1として動作する。操作情報制御プログラムは、PC410を、操作受信部10と、操作記憶部11と、操作推定部12と、予定時刻算出部13と、操作出力部14として動作させる。操作情報制御プログラムは、PC410を、さらに、遅延検出部15として動作させてもよい。
PC410は、さらに、PC410のCPUが実行するビューワプログラムにより、図1の表示装置2として動作する。ビューワプログラムは、PC410を、画面生成部20と、表示部21として動作させる。PC410のディスプレイ装置が、表示部21として動作する。
タブレット端末400及びPC410のそれぞれにおいて、通話プログラムが動作している。
本構成例では、タブレット端末400を使用するユーザAと、PC410を使用するユーザBが、通話ソフトを使って会話しながら、手書き共有システムを使って遠隔コミュニケーションを行う。
タブレット端末400上で動作する各プログラムは、タブレット端末400が備える記憶装置に格納され、タブレット端末400のメモリ上に転送されてタブレット端末400のCPUにより実行される。
PC410上で動作する各プログラムは、PC410が備える記憶装置に格納され、PC410のメモリ上に転送されてPC410のCPUにより実行される。
タブレット端末400及びPC410の記憶装置は、例えば、ハードディスクや不揮発メモリである。タブレット端末400及びPC410の、記憶装置と、メモリと、CPUは図示されない。
タブレット端末400の手書きプログラムが起動すると、タブレット端末400は、タブレット端末400のタッチスクリーンの静電容量の値を取得する。
静電容量方式のタッチスクリーンは、指先と導電膜との間での静電容量の変化を捉えて位置を検出する。指がセンサ表面に近づくだけで静電結合が起きるため、指が実際にタッチスクリーンに接触する前に状況変化を検知できる。なお、静電容量は指先とタッチスクリーン間の距離に反比例する。以下の説明における静電容量の値と、指先とタッチスクリーンの距離は、単なる一例であり、これらに限られない。
タブレット端末400のタッチスクリーンに内蔵されたコンデンサは、指がタッチスクリーンに接触したときに、静電容量が100μF(マイクロ(=10の6乗分の1)ファラド)になるものとする。
準備動作検出部31は、静電容量が1μFを示したとき、タッチスクリーンに指を近づけていると判断し、予兆データを生成する。静電容量が1μFのとき、指とタッチスクリーン間の距離は約2センチとする。
準備動作検出部31は、1番目の予兆データ(1)をPC410に送信する。予兆データは、予兆データ用の識別子と、操作発生時刻と、静電容量が変化した範囲の中心位置情報と、指とタッチスクリーン間の距離と、測定されたタブレット端末400とPC410間のネットワーク遅延を含む。予兆データ(1)では、指とタッチスクリーン間の距離は「2センチ」であり、ネットワーク遅延は「0.1s」である。なお、準備動作検出部31は、ネットワーク遅延をRTT(Round Trip Time)を用いて測定する。
準備動作検出部31は、予兆データを検出すると次に実操作データを検出するまで、0.2秒後間隔で静電容量を測定することで静電容量の変化を監視する。最初の予兆データの送信から0.2秒後の静電容量の測定結果は40μFであるとする。また、この場合の指とタッチスクリーン間の距離は「1.2センチ」であるとする。また、ネットワーク遅延の測定結果は「0.1s」であるとする。準備動作検出部31は、これらの値を含む予兆データ(2)をPC410に送信する。さらに0.2秒後の静電容量の測定結果は80μFであるとする。また、この場合の、指とタッチスクリーン間の距離は「0.4センチ」であるとする。また、ネットワーク遅延の測定結果は「0.15s」であるとする。準備動作検出部31は、これらの値を含む予兆データ(3)をPC410に送信する。
そして、実際にタブレット端末400に指が接触したとき、静電容量は100μFになる。操作検出部32は、実操作データ用の識別子と、操作発生時刻と、タッチした位置情報を含む実操作データ(1)をPC410に送信する。画面生成部33は、手書きプログラムの画面上に描画を行う。
PC410の操作受信部10は、タブレット端末400から送信されたデータを受信する。操作受信部10は、受信したデータが、「予兆データ」または「実操作データ」であるのかを識別子をみて判別する。本構成例の識別子は、データが「予兆データ」または「実操作データ」のいずれであるかを特定する情報である。
操作受信部10は、予兆データ(1)を取得し、次に予兆データ(2)を取得する。
操作推定部12は、予兆データ(1)と予兆データ(2)の、静電容量が変化した範囲の中心位置情報と、指とタッチスクリーン間の距離から、指がタッチスクリーンに接触する予測位置を算出し、補完データを生成する。
予定時刻算出部13は、予兆データ(1)と予兆データ(2)の指とタッチスクリーン間の距離から、指の移動速度を計算する。予定時刻算出部13は、それらの距離と、算出した移動速度と、予兆データ(1)あるいは予兆データ(2)の指とタッチスクリーン間の距離の測定時刻から、実際に指がタッチスクリーンに接触する時刻までの時間を推定する。前述の例では、推定された時間は「0.5秒」である。そして、予定時刻算出部13は、推定した時間と、予兆データ(1)あるいは予兆データ(2)の受信時刻から、予定時刻算出部13は、実操作データを受信する時刻を、予定時刻として算出する。予定時刻算出部13は、第1の実施形態の各変形例のように、ネットワーク遅延を加味して、予定時刻を算出してもよい。
操作受信部10が予定時刻より前に次の予兆データ(3)を受信した場合、操作推定部12は、予兆データ(3)を使用して補完データを再生成してもよい。また、この場合、予定時刻算出部13は、予兆データ(3)を使用して予定時刻を再計算してもよい。操作推定部12及び予定時刻算出部13は、予兆データ(3)を破棄してもよい。
操作受信部10が予定時刻まで実操作データを受信しない場合、操作出力部14は、予定時刻に、補完データを画面生成部20に出力する。
画面生成部20は、補完データが表す操作が実行された結果を、ディスプレイである表示部21に表示する。
補完データ送信後に実操作データ(1)を受信した場合、PC410は、第2の実施形態の操作情報制御装置1Aのように動作してもよい。すなわち、補完データと実操作データ(1)のそれぞれの操作の差異が大きい場合、操作出力部14は、補完データの取消指示と実操作データ(1)を、画面生成部20に送信してもよい。あるいは、操作出力部14は、実操作データ(1)を画面生成部20に送信してもよい。この場合、実操作データ(1)の操作による文字や図形は、補完データによる文字や図形に重畳して表示される。そして、その後、操作出力部14は、補完データの取消指示を画面生成部20に送信してもよい。
なお、上述の例では、予定時刻算出部13は、指とタッチスクリーン間の距離から、指の移動速度を計算しているが、予定時刻算出部13は、静電容量の変化量から指の移動速度を計算することも可能である。
ユーザAとユーザBが会話しながら、手書きされた描画を共有する場合、手書きの描画が遅延すると、円滑なコミュニケーションが成立しなくなる。そこで、本発明の各実施形態や構成例によって、インターネットのような遅延幅が増減する環境でも、円滑なコミュニケーションが可能になる。
(第5の実施形態)
次に、本発明の第5の実施形態について、図面を参照して詳細に説明する。
図13は、本実施形態の操作情報制御装置1の構成を表す図である。
図13を参照すると、本実施形態の操作情報制御装置1は、端末3に対するユーザの操作の準備動作と前記操作を検出する端末3から、前記準備動作を表す準備情報と前記操作を表す操作情報を、時間間隔をおいて受信する操作受信部10と、前記準備動作の種類と前記操作の種類を関連付けて記憶する操作記憶部11と、前記準備情報から、当該準備動作後の、当該準備情報の種類に関連する種類の前記操作を推定する操作推定部12と、前記操作情報を受信及び当該操作情報の前記操作を実行して結果を表示する表示装置2に、前記操作情報を前記端末から受信して送信する予定時刻を、前記準備情報及び前記準備情報の受信時刻から算出する予定時刻算出部13と、前記予定時刻までに前記操作情報が受信された場合当該操作情報を表示装置2に送信し、前記予定時刻までに前記操作情報が受信されない場合、推定された前記操作である推定操作の前記操作情報を、前記予定時刻に表示装置2に送信する操作出力部14と、を含む。
以上で説明した本実施形態には、第1の実施形態と同じ効果がある。
操作情報制御装置1、操作情報制御装置1A、表示装置2、端末3、情報処理装置5、情報処理装置5A、情報処理装置5Bは、それぞれ、コンピュータ及びコンピュータを制御するプログラム、専用のハードウェア、又は、コンピュータ及びコンピュータを制御するプログラムと専用のハードウェアの組合せにより実現することができる。
図14は、操作情報制御装置1、操作情報制御装置1A、表示装置2、端末3、情報処理装置5、情報処理装置5A、及び情報処理装置5Bを実現するために使用されるコンピュータ1000の構成を表す図である。
図14を参照すると、コンピュータ1000は、プロセッサ1001と、メモリ1002と、記憶装置1003と、通信インタフェース1004を含む。通信インタフェース1004は、ネットワーク4に接続されている。プロセッサ1001は、通信インタフェース1004を介して、ネットワーク4に接続されている他の装置と通信することが可能である。プロセッサ1001は、記録媒体1005にアクセスできる。記憶装置1003は、コンピュータ1000が含むメモリやハードディスク装置などの記憶装置により実現される。記録媒体1005は、ハードディスク装置などの記憶装置や、可搬記録媒体により実現される。記憶装置1003が、記録媒体1005として動作してもよい。記録媒体1005には、コンピュータ1000を操作情報制御装置1、操作情報制御装置1A、表示装置2、端末3、情報処理装置5、情報処理装置5A、あるいは情報処理装置5Bとして動作させるプログラムが格納されている。プロセッサ1001は、記録媒体1005に格納されているプログラムを読み出し、読み出されたプログラムをメモリ1002にロードする。そして、プロセッサ1001は、メモリ1002にロードされたプログラムを実行する。プロセッサ1001がメモリ1002にロードされたプログラムを実行することにより、コンピュータ1000は、操作情報制御装置1、操作情報制御装置1A、表示装置2、端末3、情報処理装置5、情報処理装置5A、あるいは情報処理装置5Bとして動作する。
操作受信部10、操作推定部12、予定時刻算出部13、操作出力部14、遅延検出部15、差異判定部16、画面生成部20、表示部21、入力部30、準備動作検出部31、操作検出部32、画面生成部33、表示部34は、例えば、プログラムを記憶する記録媒体1005からメモリ1002に読み込まれた、各部の機能を実現するための専用のプログラムと、そのプログラムを実行するプロセッサ1001により実現することができる。また、操作記憶部11は、コンピュータが含むメモリやハードディスク装置である記憶装置1003により実現することができる。あるいは、操作受信部10、操作記憶部11、操作推定部12、予定時刻算出部13、操作出力部14、遅延検出部15、差異判定部16、画面生成部20、表示部21、入力部30、準備動作検出部31、操作検出部32、画面生成部33、表示部34の一部又は全部を、各部の機能を実現する専用の回路によって実現することもできる。
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、2012年8月28日に出願された日本出願特願2012−187588を基礎とする優先権を主張し、その開示の全てをここに取り込む。