[go: up one dir, main page]

JP2017090950A - 仮想デスクトッププログラム、仮想デスクトップ処理方法、および仮想デスクトップシステム - Google Patents

仮想デスクトッププログラム、仮想デスクトップ処理方法、および仮想デスクトップシステム Download PDF

Info

Publication number
JP2017090950A
JP2017090950A JP2015215445A JP2015215445A JP2017090950A JP 2017090950 A JP2017090950 A JP 2017090950A JP 2015215445 A JP2015215445 A JP 2015215445A JP 2015215445 A JP2015215445 A JP 2015215445A JP 2017090950 A JP2017090950 A JP 2017090950A
Authority
JP
Japan
Prior art keywords
time
position information
client terminal
server
terminal device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015215445A
Other languages
English (en)
Other versions
JP6515787B2 (ja
Inventor
章 勝又
Akira Katsumata
章 勝又
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015215445A priority Critical patent/JP6515787B2/ja
Priority to US15/285,048 priority patent/US10078383B2/en
Publication of JP2017090950A publication Critical patent/JP2017090950A/ja
Application granted granted Critical
Publication of JP6515787B2 publication Critical patent/JP6515787B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • G06F3/0383Signal control means within the pointing device
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/003Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
    • G09G5/006Details of the interface to the display terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/08Protocols specially adapted for terminal emulation, e.g. Telnet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/06Adjustment of display parameters
    • G09G2320/0693Calibration of display systems
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/08Arrangements within a display terminal for setting, manually or automatically, display parameters of the display terminal
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/02Handling of images in compressed format, e.g. JPEG, MPEG
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/02Networking aspects
    • G09G2370/022Centralised management of display operation, e.g. in a server instead of locally
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/04Exchange of auxiliary data, i.e. other than image data, between monitor and graphics controller
    • G09G2370/042Exchange of auxiliary data, i.e. other than image data, between monitor and graphics controller for monitor identification
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/04Exchange of auxiliary data, i.e. other than image data, between monitor and graphics controller
    • G09G2370/045Exchange of auxiliary data, i.e. other than image data, between monitor and graphics controller using multiple communication channels, e.g. parallel and serial
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/06Consumer Electronics Control, i.e. control of another device by a display or vice versa
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/10Use of a protocol of communication by packets in interfaces along the display data pipeline
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/08Cursor circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • User Interface Of Digital Computer (AREA)
  • Digital Computer Display Output (AREA)

Abstract

【課題】ネットワーク遅延を気にせずに、利用者の操作感の向上を図ること。【解決手段】クライアント端末装置102は、入力装置に対する操作によって得られる、画面上の操作の対象を表す図形の位置情報を時系列に記憶部112に記憶させる。クライアント端末装置102は、特定の時刻から現在の時刻までの間に操作によって図形を画面上で同一の方向に閾値を超える速度で移動させたと判定した場合、現在の時刻から通信時間を含む第1時間経過した後の時刻における図形の位置情報を算出する。クライアント端末装置102は、算出した位置情報を含む操作情報121をサーバ101へ送信し、送信した操作情報121に基づくアプリケーションプログラムの実行に応じた画面の画像を含む画像情報122をサーバ101から受信する。クライアント端末装置102は、受信した画像情報122に含まれる画像を表示する。【選択図】図1

Description

本発明は、仮想デスクトッププログラム、仮想デスクトップ処理方法、および仮想デスクトップシステムに関する。
従来、デスクトップ仮想化と呼ばれる技術がある。デスクトップ仮想化と呼ばれる技術では、例えば、サーバがプログラムやデータを実行および保管し、クライアント端末装置は、リモートデスクトップとしてサーバから転送された画面の画像を表示する。例えば、サーバが、資料作成、メール、CAD(Computer Aided Design)、動画などのアプリケーションを実行し、クライアント端末装置がサーバによるアプリケーションの処理結果を表示する。
また、先行技術として、従来、カーソルの表示位置の履歴を履歴記憶手段に記録しておき、当該表示位置履歴に基づいて算出したカーソルの予測移動方向にカーソルを指向して表示する技術がある(例えば、以下特許文献1参照。)。
また、従来、ポインタデバイスでなる通常行われるポインタ移動の処理に加えて、ポインタデバイスの短時間内の利用者の操作の特徴を検出し、それに基づいて目的位置にポインタを瞬時に移動させる技術がある(例えば、以下特許文献2参照。)。
また、従来、移動局の位置を管理する基地局が、移動局から受信した位置座標から進行方位へ進行速度で移動しているものとして、移動局の位置をマーカ表示する時刻における位置座標の移動を予測して表示する技術がある(例えば、以下特許文献3参照。)。
また、従来、表示装置の表示画面に表示される現在のマウスカーソルの位置と過去のマウスカーソルの位置とにより次ステップのマウスカーソルの位置を予測し、現在のマウスカーソルの位置と次ステップのマウスカーソルの位置を表示する技術がある(例えば、以下特許文献4参照。)。
また、従来、各移動実績のなかでカーソルの現在位置に関連する移動実績に基づいて、該現在位置からのカーソルの移動先を決定し、決定した移動先へカーソルを移動する技術がある(例えば、以下特許文献5参照。)。
特開2004−013545号公報 特開2008−116995号公報 特開平05−268134号公報 特開平04−054520号公報 特開2015−005228号公報
しかしながら、デスクトップ仮想化において、サーバとクライアント端末装置との間のネットワークの遅延により、クライアント端末装置における入力装置への操作に対する画面変化が遅くなり、利用者の操作感が低下するという問題点がある。
1つの側面では、本発明は、ネットワーク遅延を気にせずに、利用者の操作感の向上を図ることができる仮想デスクトッププログラム、仮想デスクトップ処理方法、および仮想デスクトップシステムを提供することを目的とする。
本発明の一側面によれば、サーバにアプリケーションプログラムを実行させるクライアント端末装置に、前記クライアント端末装置が有する入力装置に対する操作によって得られる、前記サーバと前記クライアント端末装置との間で共有する画面上の前記操作の対象を表す図形の位置情報を時系列に記憶部に記憶させ、前記記憶部に時系列に記憶された前記位置情報に基づいて、前記位置情報を得た各時刻のうちの特定の時刻から現在の時刻までの間に、前記操作によって前記図形を前記画面上で同一の方向に閾値を超える速度で移動させたか否かを判定し、前記図形を同一の方向に前記閾値を超える速度で移動させたと判定した場合、前記記憶部に時系列に記憶された前記位置情報に基づいて、前記現在の時刻から、前記クライアント端末装置と前記サーバとの間の通信に要する通信時間を含む第1時間を経過した後の時刻における前記図形の位置情報を算出し、算出した前記位置情報を含む操作情報を、前記サーバへ送信し、送信した前記操作情報に基づく前記アプリケーションプログラムの実行に応じた画面の画像を含む画像情報を前記サーバから受信し、受信した前記画像情報に含まれる画像を表示する仮想デスクトッププログラム、仮想デスクトップ処理方法、および仮想デスクトップシステムが提案される。
本発明の一態様によれば、ネットワーク遅延を気にせずに、利用者の操作感の向上を図ることができる。
図1は、仮想デスクトップシステムの一動作例を示す説明図である。 図2は、仮想デスクトップシステムへの適用例を示す説明図である。 図3は、VDI操作における処理および応答が遅れる例を示す説明図である。 図4は、現在の位置情報を送信した場合のマウス操作の応答性例を示す説明図である。 図5は、予測の位置情報を送信した場合のマウス操作の応答性例を示す説明図である。 図6は、クライアント端末装置のハードウェア構成例を示す説明図である。 図7は、サーバのハードウェア構成例を示す説明図である。 図8は、仮想デスクトップシステムの機能的構成例を示すブロック図である。 図9は、位置情報の記憶例を示す説明図である。 図10は、クライアント端末装置の画面上でのマウス操作例1を示す説明図である。 図11は、クライアント端末装置の画面上でのマウス操作例2を示す説明図である。 図12は、人間の視野例を示す説明図である。 図13は、ディスプレイ上の視野例を示す説明図である。 図14は、視角度と視野幅例を示す説明図である。 図15は、各種定数定義表例を示す説明図である。 図16は、ディスプレイ上の各長さの定義例を示す説明図である。 図17は、ディスプレイ距離簡易算出表例を示す説明図である。 図18は、視野範囲例を示す説明図である。 図19は、補正例1を示す説明図である。 図20は、補正例2を示す説明図である。 図21は、クライアント端末装置による操作情報の送信処理手順例を示すフローチャートである。 図22は、図21に示す算出処理手順例を示すフローチャートである。 図23は、クライアント端末装置による表示処理手順例を示すフローチャートである。 図24は、サーバによるパケット受信処理手順例を示すフローチャートである。 図25は、サーバによる送信処理手順例を示すフローチャートである。
以下に添付図面を参照して、本発明にかかる仮想デスクトッププログラム、仮想デスクトップ処理方法、および仮想デスクトップシステムの実施の形態を詳細に説明する。
図1は、仮想デスクトップシステムの一動作例を示す説明図である。仮想デスクトップシステム100は、クライアント端末装置102と、サーバ101と、を有する。クライアント端末装置102は、デスクトップ仮想化において、サーバ101にプログラムを実行させるコンピュータである。サーバ101は、クライアント端末装置102からの指示に応じてプログラムを実行するコンピュータである。ここでのプログラムは、例えば、アプリケーションプログラムである。
従来技術では、デスクトップ仮想化において、サーバ101は、プログラムやデータを実行および保管する。そして、デスクトップ仮想化において、クライアント端末装置102は、リモートデスクトップとしてサーバ101から転送された画面の画像を表示する。
従来技術では、デスクトップ仮想化において、サーバ101とクライアント端末装置102との間のネットワークの遅延により、クライアント端末装置102における入力装置への操作に対する画面変化が遅くなる。
例えば、利用者のマウス操作によって画面上のオブジェクトを移動させる場合、現在の時刻においてマウス操作によりオブジェクトが移動した画面がクライアント端末装置102において表示されるのは、現在の時刻から、少なくとも通信時間を含む経過後の時刻となる。通信時間とは、クライアント端末装置102からサーバ101へ位置情報の送信に要する時間と、サーバ101からクライアント端末装置102へ画面の画像を含む画像情報の送信に要する時間と、を少なくとも含む時間である。このため、利用者の操作感が低下するという問題点がある。画面変化が遅くなる例は、図3と図4を用いて詳細に説明する。
本実施の形態では、クライアント端末装置102は、画面上でポインタの移動が同一方向に閾値を超える速度である場合、通信後のポインタの位置を予測してサーバ101へ送信する。これにより、通信時間分の遅延を利用者に意識させることなく実際のポインタの位置に応じた画面の画像を表示できる。したがって、利用者の操作感の向上を図ることができる。
具体的に、クライアント端末装置102は、クライアント端末装置102が有する入力装置に対する操作によって得られる、画面上の操作の対象を表す図形の位置情報を時系列に記憶部112に記憶させる。ここで、画面は、サーバ101とクライアント端末装置102との間で共有される。記憶部112は、例えば、RAM(Random Access Memory)やディスクなどの記憶装置である。
また、ここでの入力装置は、例えば、ポインティングデバイスである。ポインティングデバイスは、クライアント端末装置102が有する表示装置によって映し出される画面上に表示されるポインタやアイコンを操作するために用いる。表示装置は、例えば、ディスプレイである。具体的に、入力装置は、例えば、マウス111、トラックボール、タッチパネルなどが挙げられる。本実施の形態では、入力装置としてマウス111を例に挙げて説明する。ここでのマウス操作としては、例えば、マウス移動を対象とし、クリックポイントやホイールを対象外とする。
画面上の操作の対象を表す図形とは、例えば、画面上の操作対象の場所を示すマークである。該図形は、例えば、マウスポインタである。ここで、図形の位置情報は、例えば、マウス位置情報やマウスポインタの位置情報、単に位置情報などとも称する。ここでの位置情報は、例えば、画面をx軸とy軸によって定義した場合の画面上の座標値である。
ここで、記憶部112に時系列に位置情報を記憶させるとは、マウス操作が発生している際に、所定時間ごとに位置情報を取得して順に記憶させたり、任意のタイミングで位置情報を取得して取得した時刻と位置情報とを関連付けて記憶させてもよい。図1の例では、所定時間ごとに記憶部112に記憶させる例を説明する。所定時間は、例えば、Δtと表す。
図1の例では、クライアント端末装置102は、マウス操作によりマウスポインタを位置p1に移動させ、位置p1を表す位置情報(x1,y1)を記憶部112に記憶させる。つぎに、所定時間経過後に、クライアント端末装置102は、マウス操作によりマウスポインタを位置p2に移動させ、位置p2を表す位置情報(x2,y2)を記憶部112に記憶させる。
さらに、所定時間経過後に、クライアント端末装置102は、マウス操作によりマウスポインタを位置p3に移動させ、位置p3を表す位置情報(x3,y3)を記憶部112に記憶させる。
クライアント端末装置102は、記憶部112に時系列に記憶された位置情報に基づいて、位置情報を得た各時刻のうちの特定の時刻から現在の時刻までの間に、操作によって図形を画面上で同一の方向に閾値を超える速度で移動させたか否かを判定する。閾値は、例えば、利用者やシステムの開発者によって設定可能である。
クライアント端末装置102は、図形を画面上で同一方向に閾値を超える速度で移動させたと判定された場合、現在の時刻から通信時間以上の時間経過した後の時刻における図形の位置情報を算出する。通信時間とは、例えば、クライアント端末装置102とサーバ101との間の通信に要する時間である。具体的には、クライアント端末装置102は、記憶部112に時系列に記憶された位置情報に基づいて、現在の時刻から通信時間以上の時間経過した後の時刻における図形の位置情報を算出する。図1の例では、クライアント端末装置102は、位置ptを表す位置情報(xt,yt)を算出する。
クライアント端末装置102は、算出した位置情報を含む操作情報121を、サーバ101へ送信する。クライアント端末装置102は、送信した操作情報121に基づくプログラムの実行に応じた画面の画像を含む画像情報122をサーバ101から受信する。
クライアント端末装置102は、受信した画像情報122に含まれる画像を表示する。クライアント端末装置102は、例えば、受信した画像情報122に含まれる画像を表示装置に出力する。表示装置は、例えば、ディスプレイなどが挙げられる。
これにより、予測を簡単に行うことができるマウス移動において、未来のマウス位置に応じた画面の画像が作成できる。画像情報122を受信する時には、現在のマウス位置に対応する画面の画像を表示することができる。したがって、ネットワーク遅延を気にせずに、利用者の操作感の向上を図ることができる。操作感とは、利用者の操作に対するレスポンスのよさなどである。また、同一方向に移動しない場合や移動速度が遅い場合を位置予測の対象外とすることにより、予測がはずれる可能性が高いマウス移動を対象外とできる。
図2は、仮想デスクトップシステムへの適用例を示す説明図である。仮想デスクトップシステム100は、例えば、サーバ101と、複数のクライアント端末装置102と、を有する。サーバ101と、複数のクライアント端末装置102とは、ネットワークを介して接続される。ネットワークには、有線または無線を問わず、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)、VPN(Virtual Private Network)などの任意の種類の通信網を採用可能である。クライアント端末装置102は、サーバ101によってプログラムを実行する。クライアント端末装置102の一例としては、PC(Personal Computer)などの固定端末装置の他、携帯電話機、PHS(Personal Handy Phone)やPDA(Personal Digital Assistant)などの移動体端末装置などが挙げられる。また、プログラムとしては、OSやアプリケーションなどである。
また、例えば、サーバ101の設置場所とクライアント端末装置102の利用場所とが国内であれば、ネットワークの遅延時間が50[ms]程度である。例えば、サーバ101は日本に設置されているが、クライアント端末装置102は日本以外の国で利用されるなど、クライアント端末装置102が、ネットワーク通信においてサーバ101と遠い場所で利用する場合がある。このような場合、ネットワークの遅延時間が100[ms]程度となる。
図3は、VDI操作における処理および応答が遅れる例を示す説明図である。クライアント端末装置102は、利用者によるマウス操作を受け付ける(ステップS301)。そして、クライアント端末装置102は、クライアントVDIシステム処理を行う(ステップS302)。ここでは、クライアント端末装置102は、サーバ101側へマウス位置情報を送信する。
マウス位置情報を含むパケットがネットワークを介してサーバ101へ送信中に、ネットワーク遅延が発生する(ステップS303)。つぎに、サーバ101は、サーバ101側VDIシステム処理を行う(ステップS304)。ここでは、サーバ101は、マウス位置情報を含むパケットを受信すると、OSへマウス111座標値を渡す。
サーバ101は、サーバ101側OSによる処理を行う(ステップS305)。ここでは、サーバ101は、サーバ101側OSによってマウス位置情報を認識する。ここで、例えば、クライアント端末装置102においてマウス操作が開始されてから、サーバ101がOSによる処理を開始するまでの間の時間をt1とする。
そして、サーバ101は、アプリケーションによる処理を行う(ステップS306)。ここでは、サーバ101は、アプリケーションによりマウス位置に応じた描画を行う。サーバ101は、サーバ101側VDIシステム処理を行う(ステップS307)。ここで、サーバ101は、画面キャプチャを行い、キャプチャされた画面を描画するため、クライアント端末装置102用の描画データを生成する。描画データを含むパケットがネットワークを介してクライアント端末装置102へ送信中に、ネットワーク遅延が発生する(ステップS308)。
つぎに、クライアント端末装置102は、クライアントVDIシステム処理を行う(ステップS309)。ここで、クライアント端末装置102は、描画データをデコードして画面を表示する。表示された画面がクライアント作業者の目に映る(ステップS310)。ここで、例えば、サーバ101がOSによる処理が開始されてからクライアント作業者の目に映るまでの時間をt2とする。時間t1と時間t2との合計がTである。
図4は、現在の位置情報を送信した場合のマウス操作の応答性例を示す説明図である。ここでは、顔のマークを、マウス操作により移動させる例を説明する。利用者によるマウス操作の開始前に、各画面においてマウスポインタと顔のマークとは位置p0にある。ここで、各時刻におけるサーバ101によって生成される画面はサーバ画面と称し、各時刻においてクライアント端末装置102によって生成される画面はクライアント画面と称する。
クライアント端末装置102は、利用者のマウス操作が開始されると、利用者のマウス操作によるマウスポインタの位置情報をサーバ101へ送信する。この際、クライアント画面やサーバ画面はまだ変化しない。ここで、マウスポインタの位置情報は、省略してマウス位置情報とも称する。操作開始直後の時刻に、クライアント画面では、クライアント操作によりマウスポインタは位置p1にあり、顔のマークは位置p0にある。操作開始直後の時刻に、サーバ画面では、マウスポインタと顔のマークは位置p0にある。
つぎに、マウス操作開始直後の時刻から時間t1経過後の時刻に、クライアント端末装置102は、利用者のマウス操作によりマウスポインタを位置p2に移動させる。このため、クライアント端末装置102に表示される画面では、マウスポインタは位置p2にあるが、顔のマークは位置p0にある。サーバ101は、操作開始直後の時刻から時間t1経過後の時刻に、操作開始のマウス位置情報を含む操作情報を受信する。このため、サーバ画面では、マウスポインタは位置p1にあり、顔のマークは位置p1にある。
つぎに、操作開始直後の時刻から時間(t1+t2)経過後の時刻に、クライアント端末装置102は、例えば、クライアントのマウス操作によってマウスポインタを位置p3に移動させる。サーバ101は、時間t1経過後の時刻のマウス位置情報を含む操作情報をクライアント端末装置102から受信し、操作情報に応じたプログラムの実行によって画面の画像を含む画像情報を生成する。このため、操作開始直後の時刻から時間(t1+t2)経過後の時刻に、サーバ画面では、マウスポインタと顔のマークとが、時間t1経過後の時刻のクライアント操作による位置p2にある。そして、サーバ101は、操作開始から時間(t1+t2)経過後の時刻に、画像情報をクライアント端末装置102へ送信する。
また、時間(t1+t2)経過後の時刻に、クライアント端末装置102は、時間t1経過後の時刻にサーバ101から送信された画像情報を受信して画像情報に含まれる画像を表示する。このため、クライアント画面では、マウスポインタは位置p3にあるが、顔のマークは位置p1にある。
つぎに、操作開始直後の時刻から時間(t1+t2+t1)経過後の時刻に、クライアント端末装置102は、例えば、マウス操作によってマウスポインタを位置p4に移動させる。サーバ101は、時間(t1+t2)経過後の時刻のマウス位置情報を含む操作情報をクライアント端末装置102から受信し、操作情報に応じたプログラムの実行によって画面の画像を含む画像情報を生成する。このため、サーバ画面では、マウスポインタと顔のマークとが、時間(t1+t2)経過後の時刻のクライアント操作による位置p3にある。そして、サーバ101は、画像情報をクライアント端末装置102へ送信する。
また、操作開始直後の時刻から時間(t1+t2+t1)経過後の時刻に、クライアント端末装置102は、操作開始直後の時刻から時間(t1+t2)経過後の時刻にサーバ101から送信された画像情報を受信する。このため、操作開始直後の時刻から時間(t1+t2+t1)経過後の時刻に、クライアント画面では、マウスポインタは位置p4にあるが、顔のマークは位置p2にある。サーバ101とクライアント端末装置102との間の通信に要する時間によって、クライアント画面においてマウス操作の操作結果が反映されるのに時間がかかる。
図5は、予測の位置情報を送信した場合のマウス操作の応答性例を示す説明図である。上述したように、本実施の形態では、クライアント端末装置102は、画面上でマウス移動が同一方向に閾値を超える速度である場合、通信遅延後のマウス位置を予測してサーバへ送信する。これにより、通信時間経過後の時刻に、予測したマウス位置に応じた画面の画像を表示できる。これにより、通信遅延を気にせず、利用者の操作感の向上を図ることができる。
まず、操作開始前には、マウスポインタと顔のマークとが同じ位置p0にある。操作開始直後の時刻に、クライアント端末装置102は、マウス操作によりマウスポインタをマウス位置p1に移動させる。ここで、サーバ画面では、顔のマークおよびマウスポインタは位置p0にある。また、クライアント画面では、顔のマークは位置p0にあり、マウスポインタは位置p1にある。クライアント端末装置102は、操作開始直後の時刻から(t1+t2)経過後の時刻におけるマウス位置p3’を送信する。ここでの(t1+t2)経過後の時刻におけるマウス位置は、予測の位置である。
つぎに、操作開始直後の時刻から時間t1経過後の時刻に、クライアント端末装置102は、マウス操作によりマウスポインタをマウス位置p2に移動させる。ここで、サーバ101は、操作開始直後の時刻から時間t1経過後の時刻に、操作開始直後の時刻にクライアント端末装置102から送信されたマウス位置p3’を受信する。このため、サーバ画面では、マウスポインタと顔のマークとが受信したマウス位置p3’にある。また、クライアント画面では、顔のマークが位置p0にあり、マウスポインタが位置p2にある。クライアント端末装置102は、操作開始直後の時刻から(t1+t2+t1)経過後の時刻におけるマウス位置p4’を送信する。
つぎに、操作開始直後の時刻から(t1+t2)経過後の時刻に、クライアント端末装置102は、マウス操作によりマウスポインタをマウス位置p3に移動させる。ここで、サーバ101は、操作開始直後の時刻から(t1+t2)経過後の時刻に、操作開始直後の時刻からt1経過後の時刻にクライアント端末装置102から送信されたマウス位置p4’を受信する。このため、サーバ画面では、マウスポインタと顔のマークとが受信したマウス位置p4’にある。また、クライアント画面では、顔のマークとマウスポインタとが位置p3’にある。クライアント端末装置102は、(t1+t2)経過後の時刻から(t1+t2)経過後の時刻におけるマウス位置p5’を送信する。
つぎに、操作開始直後の時刻から(t1+t2+t1)経過後の時刻に、クライアント端末装置102は、マウス操作によりマウスポインタをマウス位置p4に移動させる。ここで、サーバ101は、操作開始直後の時刻から(t1+t2+t1)経過後の時刻に、操作開始直後の時刻から(t1+t2)経過後の時刻にクライアント端末装置102から送信されたマウス位置p5’を受信する。このため、サーバ画面では、マウスポインタと顔のマークとが予測したマウス位置p5’にある。また、クライアント画面では、顔のマークとマウスポインタとが予測したマウス位置p4’にある。クライアント端末装置102は、(t1+t2+t1)経過後の時刻から(t1+t2)経過後の時刻におけるマウス位置p6’を送信する。
(クライアント端末装置102のハードウェア構成例)
図6は、クライアント端末装置のハードウェア構成例を示す説明図である。クライアント端末装置102は、CPU(Central Processing Unit)601と、ROM(Read Only Memory)602と、RAM603と、ディスクドライブ604と、ディスク605と、を有する。また、クライアント端末装置102は、I/F606と、キーボード607と、マウス111と、ディスプレイ608と、を有する。また、CPU601と、ROM602と、RAM603と、ディスクドライブ604と、I/F606と、キーボード607と、マウス111と、ディスプレイ608とは、バス600によってそれぞれ接続される。
ここで、CPU601は、クライアント端末装置102の全体の制御を司る。ROM602は、ブートプログラムなどのプログラムを記憶する。RAM603は、CPU601のワークエリアとして使用される。ディスクドライブ604は、CPU601の制御にしたがってディスク605に対するデータのリード/ライトを制御する。ディスク605は、ディスクドライブ604の制御で書き込まれたデータを記憶する。ディスク605としては、磁気ディスク、光ディスクなどが挙げられる。
I/F606は、通信回線を通じてLAN、WAN、インターネットなどのネットワーク609に接続され、このネットワーク609を介して他の装置に接続される。そして、I/F606は、ネットワーク609と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F606には、例えばモデムやLANアダプタなどを採用することができる。
キーボード607やマウス111は、利用者の操作により、各種データの入力を行うインターフェースである。ディスプレイ608は、CPU601の指示により、データを出力するインターフェースである。
また、図示を省略するが、クライアント端末装置102には、カメラから画像や動画を取り込む入力装置やマイクから音声を取り込む入力装置が設けられていてもよい。また、図示を省略するが、クライアント端末装置102には、プリンタなどの出力装置が設けられていてもよい。
(サーバ101のハードウェア構成例)
図7は、サーバのハードウェア構成例を示す説明図である。サーバ101は、CPU701と、ROM702と、RAM703と、ディスクドライブ704と、ディスク705と、I/F(Inter/Face)706と、を有する。
CPU701と、ROM702と、RAM703と、ディスクドライブ704と、I/F706とは、バス700によってそれぞれ接続される。
ここで、CPU701は、サーバ101等の全体の制御を司る。ROM(Read Only Memory)702は、各種プログラムを記憶する。ROM702に記憶されるプログラムは、CPU701にロードされることにより、コーディングされている処理をCPU701に実行させる。RAM703はCPU701のワークエリアとして使用される。
I/F706は、通信回線を通じてネットワーク609に接続され、ネットワーク609を介して他の装置に接続される。そして、I/F706は、ネットワーク609と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。I/F706には、例えば、モデムやLANアダプタなどを採用することができる。
ディスクドライブ704は、CPU701の制御に従ってディスク705に対するデータのリード/ライトを制御する。ディスク705は、ディスクドライブ704の制御で書き込まれたデータを記憶する。ディスク705としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
また、サーバ101は、上述した構成部のほか、例えば、SSD(Solid State Drive)、キーボード、マウス111、ディスプレイなどを有することにしてもよい。
(仮想デスクトップシステムの機能的構成例)
図8は、仮想デスクトップシステムの機能的構成例を示すブロック図である。クライアント端末装置102は、受付部801と、判定部802と、算出部803と、補正部804と、送信部805と、受信部806と、表示部807と、記憶部112と、を有する。受付部801から表示部807までの制御部の処理は、例えば、図6に示すCPU601がアクセス可能なROM602、RAM603、ディスク605などの記憶装置に記憶されたプログラムにコーディングされている。そして、CPU601が記憶装置から該プログラムを読み出して、プログラムにコーディングされている処理を実行する。これにより、制御部の処理が実現される。また、制御部の処理結果は、例えば、RAM603、ROM602、ディスク605などの記憶装置に記憶される。記憶部112は、例えば、RAM603、ROM602、ディスク605などの記憶装置によって実現される。
サーバ101は、受信部811と、生成部812と、送信部813と、を有する。受信部811から送信部813までの制御部の処理は、例えば、図7に示すCPU701がアクセス可能なROM702、RAM703、ディスク705などの記憶装置に記憶されたプログラムにコーディングされている。そして、CPU601が記憶装置から該プログラムを読み出して、プログラムにコーディングされている処理を実行する。これにより、制御部の処理が実現される。また、制御部の処理結果は、例えば、ROM702、RAM703、ディスク705などの記憶装置に記憶される。
受付部801は、クライアント端末装置102が有する入力装置に対する操作によって得られる、サーバ101とクライアント端末装置102との間で共有する画面上の操作の対象を表す図形の位置情報を、位置情報を得られる時刻ごとに記憶部112に記憶させる。ここでの入力装置は、例えば、ポインティングデバイスである。ポインティングデバイスは、クライアント端末装置102が有する表示装置によって映し出される画面上に表示されるポインタやアイコンを操作するために用いる。表示装置は、例えば、ディスプレイ608である。具体的に、入力装置は、例えば、マウス111、トラックボール、タッチパネルなどが挙げられる。本実施の形態では、入力装置としてマウス111を例に挙げて説明する。ここでのマウス操作としては、例えば、マウス移動を対象とし、クリックポイントやホイールを対象外とする。
画面上の操作の対象を表す図形とは、例えば、画面上の操作対象の場所を示すマークである。該図形は、例えば、マウスポインタである。ここで、図形の位置情報は、例えば、マウス位置情報やマウスポインタの位置情報、単に位置情報などとも称する。ここでの位置情報は、例えば、画面をx軸とy軸によって定義した場合の画面上の座標値である。
受付部801は、例えば、所定時間ごとにマウス位置情報を受け付けて記憶部112に記憶させる。所定時間は、例えば、Δtと表す。また、受付部801は、例えば、マウス位置情報を各時刻において受け付けて、マウス位置情報と受け付けた時刻とを関連付けて記憶部112に記憶させる。また、所定時間Δt<サーバ101へのマウス位置情報の送信間隔とすることにより、精度よくマウス位置情報を予測することができる。
具体的に、受付部801は、例えば、マウス操作が開始されると、所定時間Δtごとにマウス位置情報を受け付けて、マウス位置情報と受け付けた時刻とを関連付けて記憶部112に記憶させる。
図9は、位置情報の記憶例を示す説明図である。テーブル900は、例えば、時刻、位置情報のフィールドを有する。各フィールドに情報が設定されることによりレコード(901−1〜901−3など)として記憶される。テーブル900には、少なくとも加速度や速度を計算する際に使用するだけの位置情報が記憶されていればよい。
例えば、加速度によって未来の位置情報を予測するためには、現在の時刻における位置情報を含めて過去3回分の位置情報を記憶しておけばよい。このため、記憶部112は、例えば、過去3回分の位置情報以外の位置情報のうち古い情報から順に上書きして記憶してもよい。これにより、省メモリ化を図ることができる。また、マウス位置情報を受け付ける時間間隔が短い場合に、位置情報の数を多くすることで、マウス位置の精度を向上させることができる。
受付部801は、例えば、所定時間Δtごとにマウス位置情報を受け付けてテーブルに格納する。クライアント端末装置102において位置を算出する場合、時間Δt<マウス位置情報の送信間隔とする。これにより、マウス位置の予測精度の向上を図ることができる。
つぎに、図8に示す判定部802は、記憶部112に時系列に記憶された位置情報に基づいて、位置情報を得た各時刻のうちの特定の時刻から現在の時刻までの間に、操作によって図形を画面上で同一の方向に閾値を超える速度で移動させたか否かを判定する。
具体的に、判定部802は、例えば、特定の時刻から現在の時刻までの間の位置情報に基づいて、マウスポインタが画面上で同一方向に移動されたか否かを判定する。特定の時刻とは、例えば、現在の時刻よりも所定時間Δt*2前の時刻や、現在の時刻よりも所定時間Δt*4前の時刻などである。
具体的に、判定部802は、例えば、特定の時刻におけるマウス位置を原点とした場合に、特定の時刻より後の時刻から現在の時刻までの間のマウス位置が同一象限にあるか否かを判定する。判定部802は、各マウス位置が同一象限にあると判定した場合、マウスポインタが画面上で同一方向に移動していると判定する。判定部802は、各マウス位置が同一象限にないと判定した場合、マウスポインタが画面上で同一方向に移動していないと判定する。
また、判定部802は、特定の時刻から現在の時刻までの間の位置情報に基づいて、マウスポインタの移動の速度を算出する。そして、判定部802は、算出した速度が閾値以上であるか否かを判定する。閾値については、予めRAM603、ROM602、ディスク605などの記憶装置に記憶される。
算出部803は、マウスポインタが画面上で同一方向に閾値以上の速度で移動していると判定された場合、速度に基づいて、現在の時刻から所定時間経過後の時刻におけるマウス位置情報を算出する。ここでの所定時間は、例えば、サーバ101とクライアント端末装置102との間の通信に要する時間を含む。所定時間は、Tと表す。具体的に、所定時間Tは、例えば、上述した時間t1と時間t2との合計時間である。
t1=1/2*RTT(Rountd Time Trip)+(クライアント端末装置102における所要時間)
t2=1/2*RTT+(サーバ101における所要時間)
RTTは、例えば、メッセージをある離れた場所へ送って、それが戻ってくるまでの経過時間である。ここでは、RTTは、クライアント端末装置102からサーバへIPパケットを送付し、IPパケットに応じた返答が戻ってくるまでの経過時間である。クライアント端末装置102における所要時間やサーバ101における所要時間は予め定めておいてもよい。
クライアント端末装置102は、例えば、マウス操作やキーボード操作などがない空き時間にネットワークの疎通を確認するためにサーバ101に対してIPパケットを発行し、このパケットが正しく届いて返答が行われるかを確認することによりRTTを得る。ここでのIPパケットを発行するためのコマンドは、例えば、Pingコマンドである。
算出部803は、例えば、上述した特許文献3などに記載のように位置情報を求めてもよい。現在の位置情報を(x0,y0)と表し、予測する位置情報を(x1,y1)と表す場合、算出部803は、例えば、以下のように位置情報(x1,y1)を算出してもよい。v0は移動速度である。θ0は、移動方向である。
x1=x0+v0*T*cоsθ0
y1=y0+v0*T*sinθ0
また、算出部803は、マウスポインタが画面上で同一方向に閾値以上の速度で移動していると判定された場合、加速度に基づいて、現在の時刻から所定時間T経過後の時刻におけるマウス位置を算出してもよい。なお、加速度がマイナスの数値の場合、減速度である。具体的に、算出部803は、例えば、上述した特許文献4などに記載のように位置情報を求めてもよい。
図10は、クライアント端末装置の画面上でのマウス操作例1を示す説明図である。例1には、マウス操作によるマウスポインタの通過点を結ぶ線が直線となる場合を示す。位置p3は、現在の時刻でのマウス位置である。位置p2は、現在の時刻よりも時間Δt前の時刻でのマウス位置である。位置p1は、現在の時刻よりも時間2Δt前の時刻でのマウス位置である。
判定部802は、例えば、位置p1を原点とした場合に、位置p2と、位置p3とが、同一象限にあるか否かを判定する。図10の例では、同一象限にあるため、判定部802は、マウスポインタが画面上で同一方向に移動していると判定する。
算出部803は、例えば、位置p1と、位置p2と、位置p3とに基づいて、マウス移動の速度を算出する。そして、算出部803は、現在の時刻から所定時間T経過後の時刻における位置ppを算出する。これにより、現在の時刻から所定時間T経過後の時刻における予測の位置が求まる。そして、送信部805は、位置ppの位置情報を含む操作情報をサーバ101へ送信する。
また、判定部802は、例えば、各時刻における位置情報に基づいて、マウスポインタの通過点を結ぶ線が直線であるか円弧線であるかを判定する。
判定部802は、現在の時刻を含む3つの時刻の位置情報に基づく3つの点が一直線上にあるか否かによって直線であるか否かを判定してもよい。判定部802は、一直線上にあると判定した場合に直線であると判定する。判定部802は、例えば、位置p1と位置p2とを結ぶ直線の傾きと、位置p2と位置p3とを結ぶ直線の傾きと、が同一であれば、直線であると判定する。また、判定部802は、位置p1と位置p2とを結ぶ直線の傾きと、位置p2と位置p3とを結ぶ直線の傾きと、の差が閾値以下であれば、3つの点が一直線上にあると判定してもよい。これにより、誤差を考慮することができる。
判定部802は、現在の時刻を含む3つの時刻の位置情報に基づいて、3点を通過する円弧線を作成可能か否かによって円弧線であるか否かを判定してもよい。3点を通過する円弧線の作成方法は既知であるため特に説明しない。直線であるか否かの判定において誤差を含めると、判定部802は、3つの点を結ぶ線が円弧線であり、かつ直線であるというように判定される場合がある。判定部802は、処理の簡単化のために、例えば、直線であると判定してもよい。また、判定部802は、直線でないと判定した場合に、円弧線であると判定してもよい。
算出部803は、直線であると判定した場合、直線の延長上における現在の時刻から所定時間T経過後の時刻における位置情報を算出する。直線の例は、例えば、図10である。また、円弧線であると判定した場合、算出部803は、円弧線上における現在の時刻から所定時間T経過後の時刻における位置情報を算出する。
図11は、クライアント端末装置の画面上でのマウス操作例2を示す説明図である。例2には、マウス操作によるマウスポインタの軌跡が円弧線となる場合を示す。算出部803は、例えば、位置p1と、位置p2と、位置p3とに基づいて、円弧線分の補完を行うことにより、円弧線上における現在の時刻から所定時間T経過後の時刻における位置ptの位置情報を算出する。
また、ここでは、円弧線であるか直線であるかの判定を行ったが、これに限らず、算出部803は、両方の場合における予測の位置を算出してもよい。つぎに、クライアント端末装置102の送信部805は、現在の時刻から所定時間T経過後の時刻における算出した位置ptの位置情報を含む操作情報をサーバ101へ送信する。操作情報は、例えば、マウス位置の位置情報やヘッダ情報などを含むパケット情報である。マウス位置情報は、例えば、画面上のマウスポインタのx軸座標値とy軸座標値との情報を有する。マウス位置情報は、実際には暗号化されてある。
そして、サーバ101の受信部811は、例えば、クライアント端末装置102からの操作情報を受信する。サーバ101受信部811は、例えば、I/F706を用いて画像情報を受信する。サーバ101の生成部812は、操作情報に応じた画面の画像を含む画像情報を生成する。サーバ101の生成部812は、クライアント端末装置102とサーバ101間で共有しプログラムの実行に応じた画面の画像を含む画像情報を生成する。画像情報は、例えば、画像とメタデータなどの情報とを含むパケットである。画像の情報形式については、BMP(BitMaP)、JPEG(Joint Photographics Experts Group)、GIF(Graphics Interchange Format)やPNG(Portable Network Graphics)などが挙げられるが、特に限定しない。また、画像情報に動画形式を用いる場合、動画形式については、AVI(Audio Video Interleave)、MPEG(Moving Picture Experts Group)、H.264(MPEG−4 AVC)、独自圧縮形式などが挙げられるが、特に限定しない。サーバ101の送信部813は、画像情報をクライアント端末装置102に送信する。
クライアント端末装置102の受信部806は、画像情報を受信する。クライアント端末装置102の受信部806は、例えば、I/F606を用いて画像情報を受信する。そして、表示部807は、受信部806が受信した画像情報に含まれる画像を表示する。
つぎに、本実施の形態では、クライアント端末装置102は、未来のマウス位置を算出する際に、マウス位置の予測が外れることにより画面上のオブジェクトの見逃しを防ぐため、推測限界点を設けることにより、算出したマウス位置を補正してもよい。画面上のオブジェクトとは、マウス操作によって移動されるコンピュータ上の物である。図4や図5の例では、オブジェクトは顔のマークである。
補正部804は、現在の時刻における位置情報と、特定の視野に応じた視野幅と、に基づく、画面上の視野範囲を特定する。そして、補正部804は、算出した位置情報が表す位置が、特定した視野範囲に含まれない場合、算出した位置情報が表す位置を、特定した視野範囲に含まれる位置となるように補正する。
ここで、補正部804についての詳細な説明の前に、人間の視野、画面上の視野範囲を求めるための係数などについて簡単に説明する。
図12は、人間の視野例を示す説明図である。人間の眼球を動かすことなくピンポイントで視力に優れている範囲は極めて狭い。中心視野から外れることにより人間の視力が劣る。弁別視野とは、視力などの視機能が優れている中心領域である。弁別視野は、視野角が約5度以内である。有効視野とは、眼球運動だけで瞬時に情報需要できる領域である。有効視野とは、視野角が水平に約30度以内であり、視野角が垂直に約20度以内である。安定注視野とは、眼球と頭部運動により無理なく注視でき、効果的な情報需要ができる領域である。安定注視野とは、視野角が水平に約60〜90度であり、視野角が垂直に約45〜70度以内である。
例えば、算出されたマウス位置の座標値が利用者の弁別視野または有効視野から外れた位置である場合、弁別視野または有効視野を限界点とすることにより、利用者は、マウスポインタから離れたオブジェクトを見失う事態を予防する。ここで、視点位置は現在の時刻におけるマウス位置とする。
図13は、ディスプレイ上の視野例を示す説明図である。眼球からディスプレイ608までの距離がLm[mm]である。ディスプレイ608のサイズはXm×Ym[mm]である。視点位置は[Xc,Yc]である。
図14は、視角度と視野幅例を示す説明図である。垂直の視覚についての垂直角度はWnvと表し、水平視覚についての水平角度はWnhと表す。垂直視野の視野幅はYnaと表し、水平視野の視野幅は、Xnaと表す。nは視野の種類を表す。弁別視野の場合、nが0である。有効視野の場合、nが1である。安定注視野の場合、nが2である。
図15は、各種定数定義表例を示す説明図である。表は、例えば、定数の種類ごとに識別名と、単位と、標準値とを有する。例えば、肉眼分解能はResと表し、単位は[mm]であり、標準値は「0.1」である。例えば、弁別視野−水平角度はW0hと表し、単位は[度]であり、標準値は「5.0」である。例えば、弁別視野−垂直角度はW0vと表し、単位は[度]であり、標準値は「5.0」である。
例えば、有効視野−水平角度はW1hと表し、単位は[度]であり、標準値は「30.0」である。例えば、有効視野−垂直角度はW1vと表し、単位は[度]であり、標準値は「20.0」である。例えば、安定注視野−水平角度はW2hと表し、単位は[度]であり、標準値は「60.0」である。例えば、安定注視野−水平角度はW2vと表し、単位は[度]であり、標準値は「45.0」である。
図16は、ディスプレイ上の各長さの定義例を示す説明図である。ディスプレイ608の水平長は、[ピクセル]単位の場合にXpと表し、[mm]単位の場合にXmと表す。視点位置は、[Xc,Yc]と表す。
ディスプレイ608の対角長は、[インチ]単位の場合にDiと表し、[ピクセル]単位の場合にDpと表し、[mm]単位の場合にDmと表す。ディスプレイ608の垂直長は、[ピクセル]単位の場合にYpと表し、[mm]単位の場合にYmと表す。
つぎに、クライアント端末装置102は、以下基本情報については予め用意しておく。クライアント端末装置102は、以下Di、Xp、Ypについて実行中のOSから取得できる。
Di:[インチ]単位のディスプレイ対角長
Xp:[ピクセル]単位のディスプレイ水平長
Yp:[ピクセル]単位のディスプレイ垂直長
また、クライアント端末装置102は、[mm]単位のディスプレイ距離Lmをディスプレイ距離簡易算出表に対してディスプレイ対角長を与えることにより求める。
図17は、ディスプレイ距離簡易算出表例を示す説明図である。ディスプレイ距離簡易算出表は、例えば、ディスプレイ608のサイズを与えることにより距離Lmを得ることが可能な表である。ここで、ディスプレイ距離簡易算出表のDi1とDi2とは、ディスプレイ608の対角長である。表によれば、対角長がDi1以上であり、Di2より小さい場合に、ディスプレイ608と人体の目との距離Lmが設定された標準値である。例えば、表によれば、対角長が1インチ以上であり8インチより小さいディスプレイ608であれば、距離Lmは、150[mm]である。例えば、表によれば、対角長が8インチ以上であり、13インチより小さいディスプレイ608であれば、距離Lmは、200[mm]である。
クライアント端末装置102は、例えば、対角長Diを実行中のOSから取得し、取得した対角長Diをディスプレイ距離簡易算出表に与えることにより距離Lmを得ることができる。クライアント端末装置102は、例えば、ディスプレイ608が変更された際などに距離Lmを取得しておき、ROM602、RAM603、ディスク605などの記憶装置に記憶させておく。
[ピクセル]単位のディスプレイ対角長Dpは以下の式(1)によって求めることができる。
Dp=√(Xp^2+Yp^2)・・・式(1)
[mm]単位のディスプレイ対角長は以下の式(2)によって求めることができる。
Dm=Di*2.54・・・式(2)
[mm]単位のディスプレイ水平長は以下式(3)によって求めることができる。
Xm=Xp*D/Dp・・・式(3)
[mm]単位のディスプレイ垂直長は以下式(4)によって求めることができる。
Ym=Yp*D/Dp・・・式(4)
つぎに、ディスプレイ608上の各視野における視野幅について説明する。弁別視野の視野幅はX0a[mm]とY0a[mm]である。クライアント端末装置102は、視野幅X0aを式(5)によって求め、視野幅Y0aを式(6)によって求める。W0hとW0vの標準値は、図15に示すように、5.0度である。
X0a[mm]=tan(RAD(W0h/2))*Lm*2・・・式(5)
Y0a[mm]=tan(RAD(W0v/2))*Lm*2・・・式(6)
有効視野の視野幅はX1a[mm]とY1a[mm]である。クライアント端末装置102は、視野幅X1aを式(7)によって求め、視野幅Y1aを式(8)によって求める。W1hとW1vの標準値は、図15に示すように、それぞれ30.0度と20.0度である。
X1a[mm]=tan(RAD(W1h/2))*Lm*2・・・式(7)
Y1a[mm]=tan(RAD(W1v/2))*Lm*2・・・式(8)
安定注視野の視野幅はX2a[mm]とY2a[mm]である。クライアント端末装置102は、視野幅X2aを式(9)によって求め、視野幅Y2aを式(10)によって求める。W2hとW2vの標準値は、図15に示すように、それぞれ60.0度と45.0度である。
X2a[mm]=tan(RAD(W2h/2))*Lm*2・・・式(9)
Y2a[mm]=tan(RAD(W2v/2))*Lm*2・・・式(10)
図8に示す補正部804は、算出部803によって算出された位置情報がディスプレイ608の画面上の視野範囲に含まれるか否かを判定する。具体的に、補正部804は、例えば、現在の時刻の画面上の視点と、視野幅とに基づいて、視野幅に基づく画面上の視野範囲を特定する。そして、補正部804は、特定した視野範囲内に、算出部803によって算出された位置情報が含まれるか否かを判定する。ここで用いる視野幅は、弁別視野の視野幅、有効視野の視野幅、安定注視野の視野幅のいずれかを利用者によって選択させてもよい。
図18は、視野範囲例を示す説明図である。補正部804は、例えば、視点から視野幅に基づいて楕円の領域を視野範囲として特定してもよい。これにより、人間の視野範囲を精度よく再現できる。また、補正部804は、例えば、視点から視野幅に基づいて視野始点(Xns,Yns)と視野終点(Xne,Yne)とに囲われた四角の領域を視野範囲として特定してもよい。これにより、計算時間の短縮を図ることができる。
補正部804は、例えば、視野範囲の視野始点および視野終点を以下の通り特定する。例えば、弁別視野の場合、視野始点(X0s,Y0s)〜視野終点(X0e,Y0e)によって特定される四角の領域が視野範囲である。補正部804は、例えば、以下式(11)によって視野始点X0sを求め、式(12)によって視野終点X0eを求める。また、補正部804は、例えば、弁別視野の場合、以下式(13)によって視野始点Y0sを求め、式(14)によって視野終点Y0eを求める。視野始点X0sと視野始点Y0sと視野終点X0eと視野終点Y0eとの単位は[ピクセル]である。
X0s=Min(1,Xc−(Xp/Xm*X0a)/2)・・・式(11)
X0e=Max(Xp,Xc−(Xp/Xm*X0a)/2)・・・式(12)
Y0s=Min(1,Yc−(Yp/Ym*Y0a)/2)・・・式(13)
Y0e=Max(Yp,Yc−(Yp/Ym*Y0a)/2)・・・式(14)
また、例えば、有効視野の場合、視野始点(X1s,Y1s)〜視野終点(X1e,Y1e)によって特定される四角の領域が視野範囲である。補正部804は、例えば、有効視野の場合、以下式(15)によって視野始点X1sを求め、式(16)によって視野終点X1eを求める。また、補正部804は、例えば、有効視野の場合、以下式(17)によって視野始点Y1sを求め、式(18)によって視野終点Y1eを求める。視野始点X1sと視野始点Y1sと視野終点X1eと視野終点Y1eとの単位は[ピクセル]である。
X1s=Min(1,Xc−(Xp/Xm*X1a)/2)・・・式(15)
X1e=Max(Xp,Xc−(Xp/Xm*X1a)/2)・・・式(16)
Y1s=Min(1,Yc−(Yp/Ym*Y1a)/2)・・・式(17)
Y1e=Max(Yp,Yc−(Yp/Ym*Y1a)/2)・・・式(18)
また、例えば、安定注視野の場合、視野始点(X2s,Y2s)〜視野終点(X2e,Y2e)によって特定される四角の領域が視野範囲である。補正部804は、例えば、安定注視野の場合、以下式(19)によって視野始点X2sを求め、式(20)によって視野終点X2eを求める。また、補正部804は、例えば、安定注視野の場合、以下式(21)によって視野始点Y2sを求め、式(22)によって視野終点Y2eを求める。視野始点X2sと視野始点Y2sと視野終点X2eと視野終点Y2eとの単位は[ピクセル]である。
X2s=Min(1,Xc−(Xp/Xm*X2a)/2)・・・式(19)
X2e=Max(Xp,Xc−(Xp/Xm*X2a)/2)・・・式(20)
Y2s=Min(1,Yc−(Yp/Ym*Y2a)/2)・・・式(21)
Y2e=Max(Yp,Yc−(Yp/Ym*Y2a)/2)・・・式(22)
図8に示す補正部804は、例えば、算出部803によって算出された位置情報が、特定した視野範囲に含まれるか否かを判定する。補正部804は、例えば、視野範囲に含まれると判定した場合、算出されたマウス位置の位置情報を補正しない。一方、補正部804は、例えば、視野範囲に含まれないと判定した場合、算出されたマウス位置情報を視野範囲に含まれる位置の位置情報に補正する。
図19は、補正例1を示す説明図である。図19の例では、弁別視野に対応する視野範囲が、視野始点(X0s,Y0s)〜視野終点(X0e,Y0e)に囲われた四角の領域である。補正部804は、例えば、算出された位置情報が、特定した視野範囲に含まれないと判定する。
このため、補正部804は、例えば、現在の時刻におけるマウス位置情報が示すマウス位置と、算出したマウス位置情報が示すマウス位置とを結ぶ直線と、視野範囲の外形と、の交点を特定する。そして、補正部804は、特定した交点を現在の時刻から時間T(t1+t2)経過後の時刻におけるマウス位置としてマウス位置情報を補正する。
図20は、補正例2を示す説明図である。図20の例では、弁別視野に対応する視野範囲が楕円の領域である。補正部804は、例えば、視野範囲に算出したマウス位置が含まれないと判定する。このため、補正部804は、例えば、現在の時刻におけるマウス位置情報が示すマウス位置と、算出したマウス位置情報が示すマウス位置とを結ぶ直線と、視野範囲の外形線と、の交点を特定する。そして、補正部804は、特定した交点を現在の時刻から時間T(t1+t2)経過後の時刻におけるマウス位置としてマウス位置情報を補正する。
(クライアント端末装置102が行う処理手順例)
図21は、クライアント端末装置による操作情報の送信処理手順例を示すフローチャートである。クライアント端末装置102は、マウス操作を開始したか否かを判定する(ステップS2101)。マウス操作を開始していないと判定された場合(ステップS2101:No)、クライアント端末装置102は、ステップS2101へ戻る。マウス操作を開始したと判定された場合(ステップS2101:Yes)、クライアント端末装置102は、現在のマウス位置情報を受け付ける(ステップS2102)。クライアント端末装置102は、マウス位置情報と時刻とを関連付けて記憶する(ステップS2103)。
クライアント端末装置102は、時間Δt経過したか否かを判定する(ステップS2104)。時間Δt経過したと判定された場合(ステップS2104:Yes)、クライアント端末装置102は、現在のマウス位置情報を受け付ける(ステップS2105)。そして、クライアント端末装置102は、マウス位置情報と時刻とを関連付けて記憶し(ステップS2106)、ステップS2107へ移行する。
時間Δt経過していないと判定された場合(ステップS2104:No)、クライアント端末装置102は、マウス操作終了したか否かを判定する(ステップS2107)。マウス操作終了していないと判定された場合(ステップS2107:No)、クライアント端末装置102は、送信間隔Δtsd経過したか否かを判定する(ステップS2108)。本フローチャートの例では、送信間隔Δtsdは所定時間Δtの倍数とする。
送信間隔Δtsd経過していないと判定された場合(ステップS2108:No)、クライアント端末装置102は、ステップS2104へ戻る。送信間隔Δtsd経過したと判定された場合(ステップS2108:Yes)、クライアント端末装置102は、現在の時刻を含む指定回数分のマウス位置情報に基づき速度および加速度を算出する(ステップS2109)。
クライアント端末装置102は、マウス操作による移動方向を特定する(ステップS2110)。クライアント端末装置102は、マウス操作によりマウスポインタが同一方向に基準値を超える速度で移動したか否かを判断する(ステップS2111)。マウスポインタが同一方向に基準値を超える速度で移動したと判断された場合(ステップS2111:Yes)、クライアント端末装置102は、マウス位置算出処理を行う(ステップS2112)。
つぎに、クライアント端末装置102は、時間(t1+t2)経過後のマウス位置情報を含むパケットを生成して送信し(ステップS2113)、ステップS2104へ移行する。
ステップS2111において、マウスポインタが同一方向に基準値を超える速度で移動していないと判断された場合(ステップS2111:No)、現在の時刻のマウス位置情報を含むパケットを生成して送信し(ステップS2114)、ステップS2104へ移行する。
ステップS2107において、マウス操作終了したと判定された場合(ステップS2107:Yes)、クライアント端末装置102は、一連の処理を終了する。
図22は、図21に示す算出処理手順例を示すフローチャートである。クライアント端末装置102は、マウス移動の軌跡が円弧線か直線かを判定する(ステップS2201)。円弧線であると判定された場合(ステップS2201:円弧線)、クライアント端末装置102は、円弧線分上における時間(t1+t2)経過後のマウス位置情報を算出する(ステップS2202)。一方、直線であると判定された場合(ステップS2201:直線)、クライアント端末装置102は、直線上における時間(t1+t2)後のマウス位置情報を算出する(ステップS2203)。
つぎに、クライアント端末装置102は、補正するか否かを判定する(ステップS2204)。補正するか否かは、利用者によって選択可能である。補正すると判定された場合(ステップS2204:Yes)、クライアント端末装置102は、現在のマウス位置を始点として視野範囲を特定する(ステップS2205)。そして、クライアント端末装置102は、算出した位置情報が視野範囲に含まれるように補正する(ステップS2206)。クライアント端末装置102は、補正後の位置情報を出力し(ステップS2207)、一連の処理を終了する。
補正しないと判定された場合(ステップS2204:No)、クライアント端末装置102は、算出した位置情報を出力し(ステップS2208)、一連の処理を終了する。
図23は、クライアント端末装置による表示処理手順例を示すフローチャートである。クライアント端末装置102は、圧縮情報を含むパケットを受信する(ステップS2301)。そして、クライアント端末装置102は、伸長して画像を生成する(ステップS2302)。つぎに、クライアント端末装置102は、生成した画像をディスプレイ608に表示し(ステップS2303)、一連の処理を終了する。
また、図示省略するが、クライアント端末装置102は、マウス操作情報以外にもキーボードの操作情報などをサーバ101へ送信する。また、図示省略するが、クライアント端末装置102は、マウス操作やキーボード操作が発生しないときに、pingコマンドを発行してRTTを得る。そして、クライアント端末装置は、時間T(t1+t2)を更新する。
(サーバ101が行う処理手順例)
図24は、サーバによるパケット受信処理手順例を示すフローチャートである。サーバ101は、パケットを受信する(ステップS2401)。つぎに、サーバ101は、受信したパケットに含まれるマウス操作情報またはKB操作情報をOSに送付し(ステップS2402)、一連の処理を終了する。KB操作情報は、キーボード607の操作情報である。
図25は、サーバによる送信処理手順例を示すフローチャートである。サーバ101は、所定時間経過したか否かを判断する(ステップS2501)。ここでの所定時間は、パケットを監視する時間である。所定時間経過していないと判断された場合(ステップS2501:No)、サーバ101は、ステップS2501へ戻る。つぎに、所定時間経過したと判断された場合(ステップS2501:Yes)、サーバ101は、画面キャプチャを行い(ステップS2502)。ここでのキャプチャとは表示用の信号を画像の情報として記録することである。
サーバ101は、現在キャプチャした画面と前回キャプチャした画面との差分を抽出する(ステップS2503)。つぎに、サーバ101は、差分に基づいて動画と静止画とを分離する(ステップS2504)。そして、サーバ101は、動画および静止画を圧縮した圧縮情報を生成する(ステップS2505)。サーバ101は、圧縮情報を送信し(ステップS2506)、一連の処理を終了する。サーバ101は、具体的には、圧縮情報を含むパケット情報を送信する。
以上説明したように、クライアント端末装置102は、画面上でマウス移動が同一方向に閾値を超える速度である場合、通信遅延後のマウス位置を予測してサーバへ送信する。これにより、クライアント端末装置102は、通信時間経過後の時刻に予測したマウス位置に応じた画面の画像を表示できる。したがって、通信遅延を気にすることなく、利用者の操作感の向上を図ることができる。また、簡単かつ精度よく予測可能な場合に、通信時間経過後の時刻におけるマウス位置を予測する。これにより、計算時間による遅延を発生させることなく、予測外れの回避を図ることができる。
また、クライアント端末装置102は、画面上のマウス移動の軌跡が直線である場合に、直線の移動方向の延長線から通信時間経過後の時刻におけるマウス位置情報を算出する。一方、クライアント端末装置102は、画面上のマウス移動の軌跡が円弧線である場合に、円弧線の移動方向の延長線から通信時間経過後の時刻におけるマウス位置情報を算出する。
また、クライアント端末装置102は、算出した位置情報が表す位置が、現在の時刻における位置情報と特定の視野に応じた視野幅とに基づく画面上の視野範囲に含まれない場合、位置情報が表す位置を特定した視野範囲に含まれる位置となるように補正する。また、特定の視野は、弁別視野または有効視野である。これにより、クライアント端末装置102の利用者の視野から外れるような位置にオブジェクトを移動させることを抑制できる。
また、視野幅は、クライアント端末装置102が有する表示装置のサイズに基づく値である。
また、記憶部に位置情報を記憶させる時間間隔は、操作情報をサーバへ送信する時間間隔よりも短い。短時間でのマウス移動によって未来のマウス位置を予測でき、位置情報の算出精度の向上を図ることができる。また、記憶部に位置情報を記憶させる時間間隔が、操作情報をサーバへ送信する時間間隔以下の場合、サーバが未来のマウス位置を予測するような構成としてもよい。この際、クライアント端末装置102は、単に現在時刻におけるマウスの位置情報を送信し、サーバが、受信した位置情報をサーバが有する記憶部に時系列に格納する。そして、サーバが、受信した位置情報に基づいて未来のマウス位置を予測してもよい。
また、クライアント端末装置102は、特定の時刻から現在の時刻までの速度を算出し、算出した速度に基づいて、現在の時刻から通信時間を含む第1時間経過した後の時刻における図形の位置情報を算出する。これにより、位置情報を簡単な演算によって容易に算出することができ、算出時間の短縮を図ることができる。
また、クライアント端末装置102は、特定の時刻から現在の時刻までの加速度を算出し、算出した加速度に基づいて、現在の時刻から通信時間を含む第1時間経過した後の時刻における図形の位置情報を算出する。これにより、位置情報を簡単な演算によって容易に算出することができ、算出時間の短縮を図ることができる。
なお、本実施の形態で説明した仮想デスクトップ処理方法は、予め用意された仮想デスクトップ処理プログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本仮想デスクトップ処理プログラムは、磁気ディスク、光ディスク、USB(Universal Serial Bus)フラッシュメモリなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、仮想デスクトップ処理プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)サーバにアプリケーションプログラムを実行させるクライアント端末装置に、
前記クライアント端末装置が有する入力装置に対する操作によって得られる、前記サーバと前記クライアント端末装置との間で共有する画面上の前記操作の対象を表す図形の位置情報を時系列に記憶部に記憶させ、
前記記憶部に時系列に記憶された前記位置情報に基づいて、前記位置情報を得た各時刻のうちの特定の時刻から現在の時刻までの間に、前記操作によって前記図形を前記画面上で同一の方向に閾値を超える速度で移動させたか否かを判定し、
前記図形を同一の方向に前記閾値を超える速度で移動させたと判定した場合、前記記憶部に時系列に記憶された前記位置情報に基づいて、前記現在の時刻から、前記クライアント端末装置と前記サーバとの間の通信に要する通信時間を含む第1時間を経過した後の時刻における前記図形の位置情報を算出し、
算出した前記位置情報を含む操作情報を、前記サーバへ送信し、
送信した前記操作情報に基づく前記アプリケーションプログラムの実行に応じた画面の画像を含む画像情報を前記サーバから受信し、
受信した前記画像情報に含まれる画像を表示する、
処理を実行させることを特徴とする仮想デスクトッププログラム。
(付記2)前記位置情報を算出する処理では、
前記特定の時刻から前記現在の時刻までの前記位置情報が示す位置を結ぶ線が円弧線である場合、前記現在の時刻から前記第1時間経過した後の時刻における、前記円弧線の前記方向の延長線上にある前記図形の位置情報を算出し、
前記特定の時刻から前記現在の時刻までの位置情報が示す位置を結ぶ線が直線である場合、前記現在の時刻から前記通信時間経過した後の時刻における、前記直線の前記方向の延長線上にある前記図形の位置情報を算出する、
ことを特徴とする付記1に記載の仮想デスクトッププログラム。
(付記3)前記クライアント端末装置に、
前記現在の時刻における前記位置情報と、特定の視野に応じた視野幅と、に基づく、前記画面上の視野範囲を特定し、
算出した前記位置情報が表す位置が、特定した前記視野範囲に含まれない場合、算出した前記位置情報が表す位置を、特定した前記視野範囲に含まれる位置となるように補正する、
処理を実行させ、
前記サーバへ送信する処理では、
補正した前記位置情報を送信する、
ことを特徴とする付記1または2に記載の仮想デスクトッププログラム。
(付記4)前記特定の視野は、弁別視野または有効視野であることを特徴とする付記3に記載の仮想デスクトッププログラム。
(付記5)前記視野幅は、前記クライアント端末装置が有する表示装置のサイズに基づく値であることを特徴とする付記3または4に記載の仮想デスクトッププログラム。
(付記6)前記記憶部に前記位置情報を記憶させる時間間隔は、前記操作情報を前記サーバへ送信する時間間隔よりも短いことを特徴とする付記1〜5のいずれか一つに記載の仮想デスクトッププログラム。
(付記7)前記位置情報を算出する処理では、
前記記憶部に時系列に記憶された前記位置情報に基づいて、前記特定の時刻から前記現在の時刻までの速度を算出し、
算出した前記速度に基づいて、前記現在の時刻から前記第1時間以上の時間経過した後の時刻における前記図形の位置情報を算出する、
ことを特徴とする付記1〜6のいずれか一つに記載の仮想デスクトッププログラム。
(付記8)前記位置情報を算出する処理では、
前記記憶部に時系列に記憶された前記位置情報に基づいて、前記特定の時刻から前記現在の時刻までの加速度を算出し、
算出した前記加速度に基づいて、前記現在の時刻から前記第1時間経過した後の時刻における前記図形の位置情報を算出する、
ことを特徴とする付記1〜6のいずれか一つに記載の仮想デスクトッププログラム。
(付記9)サーバにアプリケーションプログラムを実行させるクライアント端末装置が、
前記クライアント端末装置が有する入力装置に対する操作によって得られる、前記サーバと前記クライアント端末装置との間で共有する画面上の前記操作の対象を表す図形の位置情報を時系列に記憶部に記憶させ、
前記記憶部に時系列に記憶された前記位置情報に基づいて、前記位置情報を得た各時刻のうちの特定の時刻から現在の時刻までの間に、前記操作によって前記図形を前記画面上で同一の方向に閾値を超える速度で移動させたか否かを判定し、
前記図形を同一の方向に前記閾値を超える速度で移動させたと判定した場合、前記記憶部に時系列に記憶された前記位置情報に基づいて、前記現在の時刻から、前記クライアント端末装置と前記サーバとの間の通信に要する通信時間を含む第1時間を経過した後の時刻における前記図形の位置情報を算出し、
算出した前記位置情報を含む操作情報を、前記サーバへ送信し、
送信した前記操作情報に基づく前記アプリケーションプログラムの実行に応じた画面の画像を含む画像情報を前記サーバから受信し、
受信した前記画像情報に含まれる画像を表示する、
処理を実行することを特徴とする仮想デスクトップ処理方法。
(付記10)サーバと、
前記サーバにアプリケーションプログラムを実行させるクライアント端末装置と、
を有する仮想デスクトップシステムであって、
前記クライアント端末装置が、
前記クライアント端末装置が有する入力装置に対する操作によって得られる、前記サーバと前記クライアント端末装置との間で共有する画面上の前記操作の対象を表す図形の位置情報を時系列に記憶部に記憶させ、
前記記憶部に時系列に記憶された前記位置情報に基づいて、前記位置情報を得た各時刻のうちの特定の時刻から現在の時刻までの間に、前記操作によって前記図形を前記画面上で同一の方向に閾値を超える速度で移動させたか否かを判定し、
前記図形を同一の方向に前記閾値を超える速度で移動させたと判定した場合、前記記憶部に時系列に記憶された前記位置情報に基づいて、前記現在の時刻から、前記クライアント端末装置と前記サーバとの間の通信に要する通信時間を含む第1時間を経過した後の時刻における前記図形の位置情報を算出し、
算出した前記位置情報を含む操作情報を、前記サーバへ送信し、
送信した前記操作情報に基づく前記アプリケーションプログラムの実行に応じた画面の画像を含む画像情報を前記サーバから受信し、
受信した前記画像情報に含まれる画像を表示する、
処理を実行し、
前記サーバが、
前記クライアント端末装置から前記操作情報を受信し、
受信した前記操作情報に基づく前記アプリケーションプログラムの実行に応じた画面の画像を含む画像情報を生成し、
生成した前記画像情報を前記クライアント端末装置に送信する、
処理を実行することを特徴とする仮想デスクトップシステム。
100 仮想デスクトップシステム
101 サーバ
102 クライアント端末装置
111 マウス
112 記憶部
801 受付部
802 判定部
803 算出部
804 補正部
805,813 送信部
806,811 受信部
807 表示部
812 生成部
p1,p2,p3,p4,p5,p6 マウス位置
X0a,Y0a,X1a,Y1a,X2a,Y2a 視野幅
X0s,Y0s,X1s,Y1s,X2s,Y2s 視野始点
X0e,Y0e,X1e,Y1e,X2e,Y2e 視野終点

Claims (6)

  1. サーバにアプリケーションプログラムを実行させるクライアント端末装置に、
    前記クライアント端末装置が有する入力装置に対する操作によって得られる、前記サーバと前記クライアント端末装置との間で共有する画面上の前記操作の対象を表す図形の位置情報を時系列に記憶部に記憶させ、
    前記記憶部に時系列に記憶された前記位置情報に基づいて、前記位置情報を得た各時刻のうちの特定の時刻から現在の時刻までの間に、前記操作によって前記図形を前記画面上で同一の方向に閾値を超える速度で移動させたか否かを判定し、
    前記図形を同一の方向に前記閾値を超える速度で移動させたと判定した場合、前記記憶部に時系列に記憶された前記位置情報に基づいて、前記現在の時刻から、前記クライアント端末装置と前記サーバとの間の通信に要する通信時間を含む第1時間を経過した後の時刻における前記図形の位置情報を算出し、
    算出した前記位置情報を含む操作情報を、前記サーバへ送信し、
    送信した前記操作情報に基づく前記アプリケーションプログラムの実行に応じた画面の画像を含む画像情報を前記サーバから受信し、
    受信した前記画像情報に含まれる画像を表示する、
    処理を実行させることを特徴とする仮想デスクトッププログラム。
  2. 前記位置情報を算出する処理では、
    前記特定の時刻から前記現在の時刻までの前記位置情報が示す位置を結ぶ線が円弧線である場合、前記現在の時刻から前記第1時間経過した後の時刻における、前記円弧線の前記方向の延長線上にある前記図形の位置情報を算出し、
    前記特定の時刻から前記現在の時刻までの位置情報が示す位置を結ぶ線が直線である場合、前記現在の時刻から前記第1時間経過した後の時刻における、前記直線の前記方向の延長線上にある前記図形の位置情報を算出する、
    ことを特徴とする請求項1に記載の仮想デスクトッププログラム。
  3. 前記クライアント端末装置に、
    前記現在の時刻における前記位置情報と、特定の視野に応じた視野幅と、に基づく、前記画面上の視野範囲を特定し、
    算出した前記位置情報が表す位置が、特定した前記視野範囲に含まれない場合、算出した前記位置情報が表す位置を、特定した前記視野範囲に含まれる位置となるように補正する、
    処理を実行させ、
    前記サーバへ送信する処理では、
    補正した前記位置情報を送信する、
    ことを特徴とする請求項1または2に記載の仮想デスクトッププログラム。
  4. 前記記憶部に前記位置情報を記憶させる時間間隔は、前記操作情報を前記サーバへ送信する時間間隔よりも短いことを特徴とする請求項1〜3のいずれか一つに記載の仮想デスクトッププログラム。
  5. サーバにアプリケーションプログラムを実行させるクライアント端末装置が、
    前記クライアント端末装置が有する入力装置に対する操作によって得られる、前記サーバと前記クライアント端末装置との間で共有する画面上の前記操作の対象を表す図形の位置情報を時系列に記憶部に記憶させ、
    前記記憶部に時系列に記憶された前記位置情報に基づいて、前記位置情報を得た各時刻のうちの特定の時刻から現在の時刻までの間に、前記操作によって前記図形を前記画面上で同一の方向に閾値を超える速度で移動させたか否かを判定し、
    前記図形を同一の方向に前記閾値を超える速度で移動させたと判定した場合、前記記憶部に時系列に記憶された前記位置情報に基づいて、前記現在の時刻から、前記クライアント端末装置と前記サーバとの間の通信に要する通信時間を含む第1時間を経過した後の時刻における前記図形の位置情報を算出し、
    算出した前記位置情報を含む操作情報を、前記サーバへ送信し、
    送信した前記操作情報に基づく前記アプリケーションプログラムの実行に応じた画面の画像を含む画像情報を前記サーバから受信し、
    受信した前記画像情報に含まれる画像を表示する、
    処理を実行することを特徴とする仮想デスクトップ処理方法。
  6. サーバと、
    前記サーバにアプリケーションプログラムを実行させるクライアント端末装置と、
    を有する仮想デスクトップシステムであって、
    前記クライアント端末装置が、
    前記クライアント端末装置が有する入力装置に対する操作によって得られる、前記サーバと前記クライアント端末装置との間で共有する画面上の前記操作の対象を表す図形の位置情報を時系列に記憶部に記憶させ、
    前記記憶部に時系列に記憶された前記位置情報に基づいて、前記位置情報を得た各時刻のうちの特定の時刻から現在の時刻までの間に、前記操作によって前記図形を前記画面上で同一の方向に閾値を超える速度で移動させたか否かを判定し、
    前記図形を同一の方向に前記閾値を超える速度で移動させたと判定した場合、前記記憶部に時系列に記憶された前記位置情報に基づいて、前記現在の時刻から、前記クライアント端末装置と前記サーバとの間の通信に要する通信時間を含む第1時間を経過した後の時刻における前記図形の位置情報を算出し、
    算出した前記位置情報を含む操作情報を、前記サーバへ送信し、
    送信した前記操作情報に基づく前記アプリケーションプログラムの実行に応じた画面の画像を含む画像情報を前記サーバから受信し、
    受信した前記画像情報に含まれる画像を表示する、
    処理を実行し、
    前記サーバが、
    前記クライアント端末装置から前記操作情報を受信し、
    受信した前記操作情報に基づく前記アプリケーションプログラムの実行に応じた画面の画像を含む画像情報を生成し、
    生成した前記画像情報を前記クライアント端末装置に送信する、
    処理を実行することを特徴とする仮想デスクトップシステム。
JP2015215445A 2015-11-02 2015-11-02 仮想デスクトッププログラム、仮想デスクトップ処理方法、および仮想デスクトップシステム Expired - Fee Related JP6515787B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015215445A JP6515787B2 (ja) 2015-11-02 2015-11-02 仮想デスクトッププログラム、仮想デスクトップ処理方法、および仮想デスクトップシステム
US15/285,048 US10078383B2 (en) 2015-11-02 2016-10-04 Apparatus and method to display moved image data processed via a server at a predicted position on a screen

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015215445A JP6515787B2 (ja) 2015-11-02 2015-11-02 仮想デスクトッププログラム、仮想デスクトップ処理方法、および仮想デスクトップシステム

Publications (2)

Publication Number Publication Date
JP2017090950A true JP2017090950A (ja) 2017-05-25
JP6515787B2 JP6515787B2 (ja) 2019-05-22

Family

ID=58637482

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015215445A Expired - Fee Related JP6515787B2 (ja) 2015-11-02 2015-11-02 仮想デスクトッププログラム、仮想デスクトップ処理方法、および仮想デスクトップシステム

Country Status (2)

Country Link
US (1) US10078383B2 (ja)
JP (1) JP6515787B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020146461A (ja) * 2019-03-12 2020-09-17 株式会社コナミデジタルエンタテインメント ゲーム装置、ゲームシステム、プログラム、及び、ゲームの制御方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111427528B (zh) * 2020-03-20 2023-07-25 北京字节跳动网络技术有限公司 显示方法、装置和电子设备
CN111414892B (zh) * 2020-04-09 2023-05-12 上海盛付通电子支付服务有限公司 直播中的信息发送方法
CN111682988B (zh) * 2020-06-18 2022-10-04 重庆京像微电子有限公司 远程控制方法、装置、存储介质和处理器
CN112732105B (zh) * 2020-12-31 2023-03-28 贵阳动视云科技有限公司 一种鼠标抖动控制方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5654726A (en) * 1993-05-27 1997-08-05 International Business Machines Corporation Screen display sharing system
JPWO2006057185A1 (ja) * 2004-11-26 2008-08-07 株式会社セガ 情報処理装置、データ処理方法、プログラム及び記録媒体
JPWO2010095195A1 (ja) * 2009-02-17 2012-08-16 パナソニック株式会社 オブジェクト選択装置、オブジェクト選択プログラム、オブジェクト選択装置に用いられる集積回路、及びオブジェクト選択方法
JP2013050921A (ja) * 2011-08-31 2013-03-14 Fujitsu Ltd ポインタ位置補正方法、ポインタ位置補正プログラムおよびサーバ装置
JP2015212920A (ja) * 2014-04-16 2015-11-26 俊介 山内 先行画像生成プログラム、仮想マシーン制御プログラムおよびコンピュータ可読記憶媒体
JP2016018260A (ja) * 2014-07-04 2016-02-01 日本電気株式会社 クライアントサーバシステム、制御方法および制御プログラム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0454520A (ja) 1990-06-21 1992-02-21 Seiko Epson Corp マウスカーソルの表示方法
JPH05268134A (ja) 1992-03-23 1993-10-15 Fujitsu Ten Ltd 航行位置自立特定型avmシステムにおける移動局位置のモニタ方法
JP3511462B2 (ja) * 1998-01-29 2004-03-29 インターナショナル・ビジネス・マシーンズ・コーポレーション 操作画像表示装置およびその方法
JP4069439B2 (ja) 2002-06-06 2008-04-02 ソニー株式会社 情報処理装置、表示制御方法、表示制御プログラム及び表示制御プログラム格納媒体
WO2006081634A2 (en) * 2005-02-04 2006-08-10 Barco N.V. Method and device for image and video transmission over low-bandwidth and high-latency transmission channels
JP4720719B2 (ja) 2006-10-31 2011-07-13 日本電気株式会社 ポインタ制御装置、ポインタ制御方法及びポインタ制御プログラム
IL196923A (en) * 2009-02-05 2014-01-30 Elbit Systems Ltd Driving an imaging device on a suspended communication channel
US8972563B2 (en) * 2010-11-30 2015-03-03 Red Hat, Inc. Updating changes to caches
GB2496378B (en) * 2011-11-03 2016-12-21 Ibm Smart window creation in a graphical user interface
US9773333B2 (en) * 2012-06-12 2017-09-26 Sony Corporation Information processing device, information processing method, and program
JP6221214B2 (ja) * 2012-09-26 2017-11-01 富士通株式会社 システム、端末装置および画像処理方法
JP2015005228A (ja) 2013-06-21 2015-01-08 富士電機株式会社 カーソル移動制御装置、そのプログラム
WO2015081846A1 (en) * 2013-12-04 2015-06-11 City University Of Hong Kong A target pointing system for use in graphical user interface
US9426259B2 (en) * 2014-02-05 2016-08-23 Fen Research Limited Client server interaction for graphical/audio applications

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5654726A (en) * 1993-05-27 1997-08-05 International Business Machines Corporation Screen display sharing system
JPWO2006057185A1 (ja) * 2004-11-26 2008-08-07 株式会社セガ 情報処理装置、データ処理方法、プログラム及び記録媒体
JPWO2010095195A1 (ja) * 2009-02-17 2012-08-16 パナソニック株式会社 オブジェクト選択装置、オブジェクト選択プログラム、オブジェクト選択装置に用いられる集積回路、及びオブジェクト選択方法
JP2013050921A (ja) * 2011-08-31 2013-03-14 Fujitsu Ltd ポインタ位置補正方法、ポインタ位置補正プログラムおよびサーバ装置
JP2015212920A (ja) * 2014-04-16 2015-11-26 俊介 山内 先行画像生成プログラム、仮想マシーン制御プログラムおよびコンピュータ可読記憶媒体
JP2016018260A (ja) * 2014-07-04 2016-02-01 日本電気株式会社 クライアントサーバシステム、制御方法および制御プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020146461A (ja) * 2019-03-12 2020-09-17 株式会社コナミデジタルエンタテインメント ゲーム装置、ゲームシステム、プログラム、及び、ゲームの制御方法
JP7322341B2 (ja) 2019-03-12 2023-08-08 株式会社コナミデジタルエンタテインメント ゲーム装置、及び、ゲームシステム

Also Published As

Publication number Publication date
JP6515787B2 (ja) 2019-05-22
US10078383B2 (en) 2018-09-18
US20170123517A1 (en) 2017-05-04

Similar Documents

Publication Publication Date Title
JP6515787B2 (ja) 仮想デスクトッププログラム、仮想デスクトップ処理方法、および仮想デスクトップシステム
KR102401617B1 (ko) 증강 현실 효과들의 동적 점진적 열화
CN108810281B (zh) 丢帧补偿方法、装置、存储介质及终端
US20180324415A1 (en) Real-time automatic vehicle camera calibration
US12462486B2 (en) Adaptive mesh reprojection for low latency 6DOF rendering
US9716907B2 (en) Updating thin-client display based on a thin-out rate
CN115797401B (zh) 对齐参数的验证方法、装置、存储介质及电子设备
US20170269709A1 (en) Apparatus, method for image processing, and non-transitory medium storing program
JP2021174531A (ja) 目標追跡方法及び装置、電子機器、記憶媒体並びにコンピュータプログラム
JP5523086B2 (ja) 情報提示装置、情報提示方法、及びプログラム
JP2018531564A (ja) ビデオデータを取得するための方法、装置、及びシステム並びにコンピュータ可読記憶媒体
CN118365835A (zh) 渲染图像的方法、装置、电子设备和存储介质
KR20130128202A (ko) 미러 디스플레이 기반 증강 현실 방법 및 이에 적용되는 장치
US20230351674A1 (en) Image processing device and image processing method
US20230224451A1 (en) Information processing apparatus, information processing method, and program
JP2017228241A (ja) 画面送信方法、画面送信装置、及びプログラム
CN106919376B (zh) 动态画面传输方法、伺服器装置及用户装置
EP3048524B1 (en) Document display support device, terminal, document display method, and computer-readable storage medium for computer program
JP5861684B2 (ja) 情報処理装置、及びプログラム
JPWO2015107672A1 (ja) 画像処理プログラム、画像処理方法、および画像処理装置
CN116027956A (zh) 一种笔迹显示方法、装置、设备及存储介质
JP5701964B2 (ja) 画面中継装置
CN119537630B (zh) 一种信息展示方法、装置、设备、存储介质及程序产品
JP2015005841A (ja) 画像処理装置、画像処理方法および画像処理プログラム
CN119545062A (zh) 一种直播画面处理方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180706

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190228

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190319

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190401

R150 Certificate of patent or registration of utility model

Ref document number: 6515787

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees