JP5789965B2 - 画像送信方法、画像送信装置および画像送信プログラム - Google Patents

画像送信方法、画像送信装置および画像送信プログラム Download PDF

Info

Publication number
JP5789965B2
JP5789965B2 JP2010267996A JP2010267996A JP5789965B2 JP 5789965 B2 JP5789965 B2 JP 5789965B2 JP 2010267996 A JP2010267996 A JP 2010267996A JP 2010267996 A JP2010267996 A JP 2010267996A JP 5789965 B2 JP5789965 B2 JP 5789965B2
Authority
JP
Japan
Prior art keywords
image
information
scroll
update
screen
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.)
Expired - Fee Related
Application number
JP2010267996A
Other languages
English (en)
Other versions
JP2012119945A (ja
Inventor
智大 今井
智大 今井
松井 一樹
一樹 松井
健一 堀尾
健一 堀尾
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 JP2010267996A priority Critical patent/JP5789965B2/ja
Priority to US13/287,186 priority patent/US8797365B2/en
Publication of JP2012119945A publication Critical patent/JP2012119945A/ja
Application granted granted Critical
Publication of JP5789965B2 publication Critical patent/JP5789965B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/34Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators for rolling or scrolling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0485Scrolling or panning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Controls And Circuits For Display Device (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Description

本発明は画像送信方法、画像を送信する画像送信装置および画像送信プログラムに関する。
従来、複数の情報処理装置がネットワーク(Network)を介して接続された情報処理システム(System)が利用されている。情報処理システムには、クライアント(Client)装置としての情報処理装置がサーバ(Server)装置としての情報処理装置から、クライアント装置での処理に用いるデータを取得したり、クライアント装置がサーバ装置に処理を依頼したりするものがある。
情報処理システムの1つとして、シンクライアント(Thin Client)システムが利用されている。シンクライアントシステムは、クライアント装置に最低限の機能を設け、サーバ装置がアプリケーション(Application)プログラムやデータ等のリソース(Resource)を管理するものである。クライアント装置は、サーバ装置の処理結果やサーバ装置が保持するデータを表示装置に表示させる。ユーザは、表示装置に表示された内容を参照して、サーバ装置上のアプリケーションプログラムやデータをクライアント装置から操作できる。シンクライアントシステムではクライアント装置は、サーバ装置から画像情報を取得しさえすればよい。
特開2007−36339号公報 特開平7−280577号公報 特開平5−241562号公報
ところで、クライアント装置側の表示装置の解像度と、サーバ装置がクライアント装置に提供する画面の解像度と、が異なることがある。例えば、クライアント装置として携帯端末装置を利用する場合、携帯端末装置に設けられた表示装置は小型であることが多い。このため、サーバ装置が提供する全画面を当該表示装置に表示させることが困難な場合がある。
そこで、クライアント装置側で全画面の一部領域を表示装置に表示し、非表示の領域を画面のスクロールにより表示することが考えられる。このとき、クライアント装置は、現在の表示領域(あるいは、その周縁部も含む)を示す静止画情報のみを保持するのがメモリ利用の点では効率的である。その場合、静止画情報を保持していない領域へのスクロール操作を受け付けると、クライアント装置はサーバ装置から当該領域の静止画情報を取得し、当該領域を表示する。
しかしながら、この方法では画面の更新頻度が多い場合(例えば、長距離をスクロールする場合)、スクロール動作に追随した画面変更に遅延が生じ得るという問題がある。具体的には、クライアント装置でスクロール動作中の静止画情報を個々に受信・表示する処理が多発し、これが操作レスポンスの遅延要因となり得る。特に個々の静止画情報のデータ量が増大すると、静止画情報ごとの処理負荷が増大し、この問題は顕著となる。
本発明はこのような点に鑑みてなされたものであり、スクロール画像の送信遅延を抑制した画像送信方法、画像送信装置および画像送信プログラムを提供することを目的とする。
上記課題を解決するために、他の装置に表示させる画像を他の装置に送信するコンピュータの画像送信方法が提供される。この画像送信方法では、コンピュータが、他の装置から画像のスクロールを指示する操作情報を取得すると、該操作情報に基づいてスクロール方向とスクロールの速さとを決定する。そして、他の装置の画面に表示させている画像をスクロール方向へ当該速さで所定時間スクロールさせるときに、他の装置の画面に所定の表示時間間隔で順次表示させる複数の画像から、動画を生成する。更に、生成した動画を他の装置に送信する。動画の生成の際に、スクロール方向、速さ、および他の装置の画像表示領域のサイズに基づいて、表示時間間隔を決定する。
また、上記課題を解決するために、他の装置に表示させる画像を他の装置に送信する画像送信装置が提供される。この画像送信装置は、決定手段と、生成手段と、送信手段と、を有する。決定手段は、他の装置から画像のスクロールを指示する操作情報を取得すると、該操作情報に基づいてスクロール方向とスクロールの速さとを決定する。生成手段は、他の装置の画面に表示させている画像をスクロール方向へ当該速さで所定時間スクロールさせるときに、他の装置の画面に所定の表示時間間隔で順次表示させる複数の画像から、動画を生成する。送信手段は、生成した動画を他の装置に送信する。また、生成手段は、スクロール方向、速さ、および他の装置の画像表示領域のサイズに基づいて、表示時間間隔を決定する。
また、上記課題を解決するために画像送信方法の処理をコンピュータに実行させる画像送信プログラムが提供される。
上記画像送信方法、画像送信装置および画像送信プログラムによれば、スクロール画像の送信遅延を抑制できる。
第1の実施の形態の情報処理システムを示す図である。 第2の実施の形態のシンクライアントシステムを示す図である。 第2の実施の形態の携帯端末装置のハードウェア構成を示す図である。 第2の実施の形態のサーバ装置のハードウェア構成を示す図である。 第2の実施の形態の携帯端末装置の機能を示すブロック図である。 第2の実施の形態のサーバ装置の機能を示すブロック図である。 操作データテーブルのデータ構造例を示す図である。 画面のマップ構成を例示する図である。 更新頻度の判定方法を例示する図である。 第2の実施の形態の携帯端末装置の画面更新処理の全体を示すフローチャートである。 第2の実施の形態の操作情報通知処理を示すフローチャートである。 第2の実施の形態のベクトル値計算処理を示すフローチャートである。 第2の実施の形態のスクロール挙動仮決定処理を示すフローチャートである。 第2の実施の形態のスクロール挙動調整処理を示すフローチャートである。 第2の実施の形態の更新差分作成処理を示すフローチャートである。 更新矩形を例示する図である。 第2の実施の形態の高頻度画面更新領域推定処理を示すフローチャートである。 第2の実施の形態の更新差分変換処理を示すフローチャートである。 スクロール操作を例示する図である。 動画形式で差分情報を送信する場合の例を示す図である。 差分情報の送信方法の第1の比較例を示す図である。 携帯端末装置の座標系を例示する図である。 加速度データを例示する図である。 センサ特性補正係数テーブルのデータ構造例を示す図である。 ベクトル値変換テーブルのデータ構造例を示す図である。 第3の実施の形態の操作情報通知処理を示すフローチャートである。 第3の実施の形態のベクトル値計算処理を示すフローチャートである。
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の情報処理システムを示す図である。この情報処理システムは、情報処理装置1および画像送信装置2を有する。シンクライアントシステムの例でいえば、情報処理装置1はクライアント装置に対応し、画像送信装置2はサーバ装置に対応する。
情報処理装置1は、画像送信装置2が提供する画像を表示し、ユーザに提示する。情報処理装置1は、入力装置1a、表示装置1b、通知手段1cおよび表示処理手段1dを有する。
入力装置1aは、ユーザの操作入力を受け付ける。入力装置1aは、例えばタッチパネルやキーパッドあるいは各種センサ(加速度センサ等)である。
表示装置1bは、画像送信装置2が提供する画像3を表示装置1bに設けられたディスプレイに表示する。
通知手段1cは、入力装置1aに対する操作入力に応じた操作情報を取得し、画像送信装置2に送信する。
表示処理手段1dは、画像送信装置2から受信した画面情報に基づいて、表示装置1bに表示された画像3を更新し、画像6を表示させる。
画像送信装置2は、情報処理装置1から受信した操作情報に基づいて表示装置1bに表示された画像を更新するための動画5を生成し、情報処理装置1に送信する。画像送信装置2は、バッファ2a、決定手段2b、生成手段2cおよび送信手段2dを有する。
バッファ2aは、情報処理装置1に表示させる画像を含む画像データ4を格納する記憶装置である。
決定手段2bは、情報処理装置1から画像3のスクロールを指示する操作情報を取得すると、当該操作情報に基づいて、スクロール方向とスクロールの速さとを決定する。
生成手段2cは、情報処理装置1の表示装置1bの画面に表示させている画像をスクロール方向へ当該速さで所定時間スクロールさせるときに、表示装置1bの画面に所定の表示時間間隔で順次表示させる複数の画像から、動画5を生成する。生成手段2cは、バッファ2aに格納された画像データ4を参照することで、当該複数の画像を取得できる。
送信手段2dは、生成手段2cが生成した動画5を情報処理装置1に送信する。
画像送信装置2によれば、決定手段2bにより情報処理装置1から画像3のスクロールを指示する操作情報を取得すると、当該操作情報に基づいてスクロール方向とスクロールの速さとが決定される。生成手段2cにより、情報処理装置1の画面に表示させている画像をスクロール方向へ当該速さで所定時間スクロールさせるときに、情報処理装置1の画面に所定の表示時間間隔で順次表示させる複数の画像から、動画5が生成される。送信手段2dにより、動画5が情報処理装置1に送信される。
これにより、スクロール画像の送信遅延を抑制できる。具体的には、決定手段2bは、スクロールの画像を動画形式で生成する。ここで、従来のように静止画形式で更新用の画面情報を送信する場合、情報処理装置1側で画面情報ごとに受信・表示の処理が繰り返し行われる。特に、頻繁に画面を更新する場合には、静止画形式の画面情報を個々に処理すると、データごとの処理に要するオーバーヘッドが増大して画面更新に遅延が生じ得る。
そこで、上記のように動画5を生成して送信とすることで、静止画形式でスクロールの画像を送信する場合に比べて、情報処理装置1側の処理負担を軽減できる。その結果、ユーザの操作に対するレスポンス速度を改善した画面インタフェースを実現できる。
なお、生成手段2cは、表示装置1bに表示された画像全体を更新するための動画5を生成してもよいし、更新箇所が限られている場合には、更新領域のみにつき動画5を生成してもよい。特に、更新領域のみにつき動画5を生成して情報処理装置1に送信すれば、情報処理装置1側の処理負担を一層軽減できる。このため、レスポンス速度を一層改善できる。
以下に説明する第2,第3の実施の形態では、シンクライアントシステムに画像送信装置2を適用する場合を例示する。
[第2の実施の形態]
図2は、第2の実施の形態のシンクライアントシステムを示す図である。このシンクライアントシステムは、携帯端末装置100,100aおよびサーバ装置200を有する。
携帯端末装置100,100aは、サーバ装置200が提供する画面情報に基づいて、ユーザにグラフィカルユーザインタフェース(GUI:Graphical User Interface)を提示する。携帯端末装置100,100aには、当該GUIを表示するために最低限必要な機能が設けられる。例えば、携帯端末装置100,100aには組み込みシステム(Embedded System)向けのOS(Operating System)プログラムや画像表示/操作情報送信用のアプリケーションプログラムが予め格納される。
サーバ装置200は、サーバ装置200内で実行されるユーザごとのOS画面(例えば、デスクトップ画面)を携帯端末装置100,100aに提供する。サーバ装置200は、ユーザごとのOSプログラムの実行を制御する。各OSプログラムは、例えばサーバ装置200がユーザごとに割り当てるハードウェアにより実行される。例えば、サーバ装置200はブレード構成であり、ブレード上のハードウェアを各ユーザに割り当てることができる。あるいは、サーバ装置200はネットワーク10に接続された他のサーバ装置(図示せず)に設けられたハードウェアを各ユーザに割り当てることもできる。
ここで、携帯端末装置100,100aとサーバ装置200との間の通信は、例えばRFB(登録商標、Remote FrameBuffer)プロトコルによって実現できる。このように一般的に用いられるプロトコルでは、携帯端末装置100,100aとサーバ装置200との間で大容量のデータが送受信されると、携帯端末装置100,100a側で画面表示に遅延が生じ得る。特に、携帯端末装置100,100aにおいて短時間に画面の更新が多発するような操作を受け付けた場合、遅延が増大する可能性がある。
以下では、このような遅延を抑制したシンクライアントシステムについて詳細に説明する。特に画面更新を指示するユーザの操作として、画面のスクロールを指示するスクロール操作を想定する。また、携帯端末装置100,100aに設けられたディスプレイの解像度は、サーバ装置200が提供するOS画面全体の解像度に比べて小さい。このため、携帯端末装置100,100aに設けられたディスプレイでは、OS画面を等倍で一度に全て表示することができないものとする。
更に、以下の説明では、主に携帯端末装置100について説明を行うが、携帯端末装置100aも携帯端末装置100と同様の構成によって実現できる。
図3は、第2の実施の形態の携帯端末装置のハードウェア構成を示す図である。携帯端末装置100は、CPU(Central Processing Unit)101、ROM(Read Only Memory)102、RAM(Random Access Memory)103、外部メモリインタフェース104、無線通信装置105、グラフィック処理装置106、ディスプレイ106a、入力インタフェース107、タッチパネル107a、キーパッド107b、加速度センサ107c、音声処理装置108、マイク108aおよびスピーカ108bを有する。
CPU101は、OSプログラムやアプリケーションプログラムを実行して、携帯端末装置100全体の動作を制御する。
ROM102は、携帯端末装置100の実行時に実行されるBIOS(Basic Input / Output System)プログラムなどの所定のプログラムを記憶する。ROM102は、書換え可能な不揮発性メモリであってもよい。
RAM103は、CPU101が実行するOSプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、RAM103は、CPU101の処理に用いられるデータの少なくとも一部を一時的に記憶する。
外部メモリインタフェース104は、記録媒体11に記憶されたデータを読み取り、また、記録媒体11にデータを格納する。記録媒体11には、例えば、携帯端末装置100に実行させるプログラムが記録されている。携帯端末装置100は、例えば、記録媒体11に記録されたプログラムを実行することで、後述するような制御機能を実現することができる。すなわち、当該制御機能の処理内容を記述したプログラムは、コンピュータ読み取り可能な記録媒体11に記録して配布することが可能である。なお、このプログラムをROM102に予め格納しておいてもよい。
記録媒体11としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリを使用できる。磁気記録装置には、HDD、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、CD(Compact Disc)、CD−R(Recordable)/RW(ReWritable)、DVD(Digital Versatile Disc)、DVD−R/RW/RAMなどがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。半導体メモリには、USB(Universal Serial Bus)メモリなどのフラッシュメモリがある。
無線通信装置105は、無線信号処理を行い、ネットワーク10を介した無線通信を実現する。具体的には、無線通信装置105は、ネットワーク10からアンテナ105aを介して受信した信号を復調・復号し、得られた受信データをCPU101に出力する。また、無線通信装置105は、CPU101から取得した送信データを符号化・変調し、得られた送信信号をアンテナ105aを介してネットワーク10へ送信する。
なお、ネットワーク10に接続されたサーバ装置200やその他のサーバ装置(図示せず)にプログラムを格納しておいてもよい。その場合、携帯端末装置100は、サーバ装置200やその他のサーバ装置からプログラムをダウンロードして実行することもできる。
グラフィック処理装置106は、画像表示処理を行う。具体的には、グラフィック処理装置106は、CPU101から画像データを取得し、ディスプレイ106aに表示させる。ディスプレイ106aは、例えば液晶ディスプレイ(LCD:Liquid Crystal Display)や有機EL(Electro Luminescence)ディスプレイである。
入力インタフェース107は、ユーザによる入力操作の処理を行う。具体的には、入力インタフェース107は、タッチパネル107aに対するタッチ操作やキーパッド107bに対するキー押下を検出すると、押下されたタッチ位置やキーを示す入力信号をCPU101に出力する。また、入力インタフェース107は、加速度センサ107cが検出した携帯端末装置100の3軸方向の加速度を取得してCPU101に出力する。
ここで、タッチパネル107aは、ディスプレイ106aの上層に位置している。ディスプレイ106aの表示する画像は、タッチパネル107aを透過して携帯端末装置100のユーザから視認可能である。ユーザは、ディスプレイ106aに表示された画像を見ながら、タッチパネル107aに対するタッチ操作を行うことができる。
音声処理装置108は、音声信号処理を行う。具体的には、音声処理装置108は、マイク108aから音声アナログ信号を取得し、必要な信号変換処理を行ってCPU101に音声データを出力する。また、音声処理装置108は、CPU101から音声データを取得し、必要な信号変換処理を行ってスピーカ108bに音声再生させる。
なお、携帯端末装置100aも携帯端末装置100と同様のハードウェア構成により実現できる。
図4は、第2の実施の形態のサーバ装置のハードウェア構成を示す図である。サーバ装置200は、CPU201、ROM202、RAM203、HDD(Hard Disk Drive)204、グラフィック処理装置205、入力インタフェース206、記録媒体読取装置207および通信インタフェース208を有する。
CPU201は、OSプログラムやアプリケーションプログラムを実行して、サーバ装置200全体を制御する。
ROM202は、サーバ装置200の起動時に実行されるBIOSプログラムなどの所定のプログラムを記憶する。ROM202は、書換え可能な不揮発性メモリであってもよい。
RAM203は、CPU201が実行するOSプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、RAM203は、CPU201の処理に用いられるデータの少なくとも一部を一時的に記憶する。
HDD204は、OSプログラムやアプリケーションプログラムを記憶する。また、HDD204は、CPU201の処理に用いられるデータを記憶する。なお、HDD204に代えて(または、HDD204と併せて)、SSD(Solid State Drive)など他の種類の不揮発性の記憶装置を用いてもよい。
グラフィック処理装置205は、モニタ21に接続される。グラフィック処理装置205は、CPU201からの命令に従って、画像をモニタ21に表示させる。
入力インタフェース206は、キーボード22やマウス23などの入力デバイスに接続される。入力インタフェース206は、入力デバイスから送られる入力信号をCPU201に出力する。
記録媒体読取装置207は、記録媒体24に記憶されたデータを読み取る読取装置である。記録媒体24には、例えば、サーバ装置200に実行させる画像送信プログラムが記録されている。サーバ装置200は、例えば、記録媒体24に記録された画像送信プログラムを実行することで、後述するような画像送信機能を実現することができる。すなわち、画像送信プログラムは、コンピュータ読み取り可能な記録媒体24に記録して配布することが可能である。
記録媒体24としては、例えば、記録媒体11と同様、種々の媒体を利用することができる。
なお、ネットワーク10に接続された他のサーバ装置(図示せず)に画像送信プログラムを格納しておいてもよい。その場合、サーバ装置200は、当該他のサーバ装置から画像送信プログラムをダウンロードして実行することもできる。
通信インタフェース208は、ネットワーク10に接続される。通信インタフェース208は、ネットワーク10を介して携帯端末装置100,100aとデータ通信を行える。
図5は、第2の実施の形態の携帯端末装置の機能を示すブロック図である。携帯端末装置100は、操作情報取得部110、操作情報通知部120、通信部130、バッファ140、画面情報取得部150、静止画処理部160、動画処理部170および画面表示処理部180を有する。これらのユニットの機能は、CPU101が所定のプログラムを実行することにより、携帯端末装置100上に実現される。ただし、これらのユニットの機能の全部または一部を専用のハードウェアで実装してもよい。
操作情報取得部110は、ユーザのタッチパネル107aに対するタッチ操作やキーパッド107bに対するキー操作を検出する。操作情報取得部110は、これら操作入力に応じた操作情報を取得する。
操作情報には、操作入力の時間(例えば、年月日時分秒)や操作位置(例えば、OS画面上の位置を示す座標)を示す情報が含まれる。ここで、OS画面上の位置を示す座標は、サーバ装置200で実行されているOS画面上の位置を示す座標である。操作情報取得部110は、ディスプレイ106a上の検出位置を当該座標に変換する。そのために、例えば、操作情報取得部110は、ディスプレイ106a上の原点がOS画面上のいずれの座標に対応づけられるかを保持する。また、操作情報には、ディスプレイ106aに現在表示されている画面の領域を示す情報(以下、表示領域情報と称する)が含まれる。表示領域情報には、上記画面上の位置を示す座標に加えてディスプレイ106aに表示中の画面の幅や高さを示す情報が含まれる。
更に、操作情報には携帯端末装置100,100aを識別するための情報を含めてもよい。
操作情報取得部110は、取得した操作情報を操作情報通知部120に出力する。
操作情報通知部120は、操作情報取得部110から取得した操作情報を通信部130を介してサーバ装置200に通知する。
通信部130は、サーバ装置200との間でデータ通信を行う。通信部130は、操作情報通知部120から取得した操作情報をサーバ装置200に送信する。通信部130は、ディスプレイ106aに表示する画面の更新内容を示す画面情報(以下、差分情報と称する)をサーバ装置200から受信すると、当該差分情報を画面情報取得部150に出力する。
バッファ140は、現在表示中の画面情報や当該画面情報の更新内容を示す差分情報を記憶する。
画面情報取得部150は、通信部130から取得した差分情報をバッファ140に格納する。画面情報取得部150は、当該差分情報が静止画形式である場合、静止画処理部160に差分情報の処理を指示する。一方、画面情報取得部150は、当該差分情報が動画形式である場合、動画処理部170に差分情報の処理を指示する。
静止画処理部160は、画面情報取得部150の指示に応じてバッファ140に格納された静止画形式の差分情報により画像データを生成して画面表示処理部180に出力する。
動画処理部170は、画面情報取得部150の指示に応じてバッファ140に格納された動画形式の差分情報をデコードして得た画像データを画面表示処理部180に出力する。
画面表示処理部180は、静止画処理部160または動画処理部170から取得した画像データに基づいて、当該画像データに対応する画像信号を生成し、ディスプレイ106aに画面を表示させる。
図6は、第2の実施の形態のサーバ装置の機能を示すブロック図である。サーバ装置200は、OS実行部210、表示画面生成部220、フレームバッファ230、差分データ生成部240、制御情報記憶部250および通信部260を有する。これらのユニットの機能は、CPU201が画像送信プログラムを実行することにより、サーバ装置200上に実現される。ただし、これらのユニットの機能の全部または一部を専用のハードウェアで実装してもよい。
OS実行部210は、携帯端末装置100,100aのユーザごとのOSを実行する。
表示画面生成部220は、OS実行部210が実行するOSの画面情報(OS画面情報)を生成して、フレームバッファ230に格納する。
フレームバッファ230は、表示画面生成部220が生成したOS画面情報を記憶する。
差分データ生成部240は、携帯端末装置100,100aから取得した操作情報に基づいて、次に携帯端末装置100,100aに送信すべきOS画面情報の差分データを生成する。差分データ生成部240は、操作情報取得部241、ベクトル値計算部242、スクロール挙動決定部243、更新差分作成部244、更新頻度判定部245、更新差分変換部246および画面更新通知部247を有する。
操作情報取得部241は、通信部260を介して携帯端末装置100,100aから操作情報を取得する。操作情報取得部241は、取得した操作情報を制御情報記憶部250に格納する。
ベクトル値計算部242は、制御情報記憶部250に格納された操作情報に基づいて、スクロール操作を示すベクトルに関する情報(以下、ベクトル情報と称する)を算出する。ベクトル情報には、例えば当該ベクトルの大きさやベクトルの方向を示す情報が含まれる。ベクトルの大きさは、スクロールの速さを示す。ベクトルの方向は、スクロールの方向を示す。
スクロール挙動決定部243は、ベクトル値計算部242が算出したベクトル情報と、制御情報記憶部250に格納された操作情報に基づいて、当該操作情報に対応する操作入力がスクロール操作であるか否かを判定する。スクロール操作である場合、スクロール挙動決定部243は、ベクトル情報に基づいてスクロール領域を推定する。スクロール領域とは、OS画面のうちスクロール中に携帯端末装置100で表示対象となり得る領域の軌跡である。
また、スクロール挙動決定部243は、ベクトル情報に基づいて、そのスクロール方向、フレームサイズおよびフレームレートなどの決定を行う。ここで、スクロール方向とは、例えばディスプレイ106aに表示された画面をディスプレイ106aに向かって、上下左右のいずれの方向にスクロールさせるかを示す情報である。フレームサイズとは、1フレーム当たりのデータ量である。フレームレートとは、単位時間当たりのフレーム数である。
スクロール挙動決定部243が決定したスクロール領域を示す情報、スクロール方向、フレームサイズおよびフレームレート等の情報をまとめてスクロール挙動と称する。
スクロール挙動決定部243は、決定したスクロール挙動を更新差分作成部244に出力する。
更新差分作成部244は、スクロール挙動決定部243から取得したスクロール挙動に基づいて、フレームバッファ230からスクロール領域に対応する更新フレーム(以下、予測更新フレームと称する)を順次抽出する。更新差分作成部244は、例えばディスプレイ106aの画面サイズと同一サイズで予測更新フレームを抽出する。更新差分作成部244は、抽出した予測更新フレーム間の更新差分の情報(更新された領域(画素)を示す情報)を取得して更新頻度判定部245に順次出力する。
更新頻度判定部245は、更新差分作成部244から順次取得する更新差分の情報により更新頻度の推定を行う。更新頻度判定部245は、更新頻度が所定の閾値よりも大きい場合、更新頻度が多いと判定する。そして、更新頻度判定部245は、当該スクロール領域に対応する更新フレームを動画形式で生成するよう更新差分変換部246に指示する。
一方、更新頻度判定部245は、フレーム間の更新頻度が所定の閾値よりも小さい場合、更新頻度が少ないと判定する。そして、更新頻度判定部245は、当該スクロール領域に対応する更新フレームを静止画形式で生成するよう更新差分変換部246に指示する。
更新差分変換部246は、更新頻度判定部245から更新フレームを動画形式とするよう指示を受けると、スクロール挙動決定部243からスクロール挙動および表示領域情報を取得する。そして、更新差分変換部246は携帯端末装置100のディスプレイ106aの画面領域サイズに対応したサイズでフレームバッファ230から更新フレームを抽出し、動画化する(エンコード)。更新差分変換部246は、動画形式で生成した差分情報を画面更新通知部247に出力する。
一方、更新差分変換部246は、更新頻度判定部245から更新フレームを静止画形式とするよう指示を受けると、スクロール挙動決定部243からスクロール挙動および表示領域情報を取得する。そして、更新差分変換部246は携帯端末装置100のディスプレイ106aの画面領域サイズに対応したサイズでフレームバッファ230から更新フレームを抽出し、静止画形式の差分情報を画面更新通知部247に出力する。
画面更新通知部247は、更新差分変換部246から取得した差分情報を通信部260を介して携帯端末装置100,100aに送信する。
制御情報記憶部250は、差分データ生成部240の処理に用いる操作情報などの制御情報を記憶する。
通信部260は、携帯端末装置100,100aとの間でデータ通信を行う。通信部260は、携帯端末装置100,100aから操作情報を受信すると、受信した操作情報を操作情報取得部241に出力する。また、通信部260は、画面更新通知部247から差分情報を取得すると、携帯端末装置100,100aに差分情報を送信する。
図7は、操作データテーブルのデータ構造例を示す図である。操作データテーブル251は、操作情報取得部241によって取得され、制御情報記憶部250に格納される。操作データテーブル251には、項番、操作時間、操作座標および表示領域情報の項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つの操作情報を示す。
項番の項目には、レコードを識別するための番号が設定される。操作時間の項目には、操作入力を受け付けた時間(年月日時分秒など)が設定される(図7では、時分秒が設定される場合を例示している)。操作座標の項目には、操作入力を受け付けたOS画面上の位置を示す座標が設定される。表示領域情報の項目には、現在の表示領域を特定するための情報が設定される。
表示領域情報には、更に、原点、幅、高さを示す項目が設けられている。原点の項目は、ディスプレイ106aに表示された画面の原点に対応するOS画面上の座標が設定される。幅の項目には、ディスプレイ106aに現在表示されている画面の幅を示す値が設定される。幅は、原点から画面の横方向(x方向)の距離を示す情報である。高さの項目には、ディスプレイ106aに現在表示されている画面の高さを示す値が設定される。高さは、原点から画面の縦方向(y方向)の距離を示す情報である。
ここで、ディスプレイ106aに表示される画面に向かって左上を座標の原点とし、原点から右方向を+x方向、原点から下方向を+y方向とする。
例えば、操作データテーブル251には、項番が“1”、操作時間が“08:20:20:54”、操作座標が“(200,100)”、表示領域情報につき原点が“(50,50)”、幅が“500”ピクセル、高さが“600”ピクセルという情報が設定される。
この項番“1”のレコードは、操作入力を受け付けた時間が8時20分20秒54であり、当該操作入力で画面上の座標(x,y)=(200,100)への入力(例えば、タッチパネル107aのオフからオンへの変化)を検出したことを示す。項番“1”のレコードはスクロール操作開始の座標を示す。また、当該操作入力を受け付けた際に、ディスプレイ106aに表示された画面の原点がOS画面上の(x,y)=(50,50)に対応しており、ディスプレイ106aに表示された画面の幅が500ピクセル、高さが600ピクセルであることを示している。
また、例えば、操作データテーブル251には、項番が“2”操作時間が“08:20:20:64”、操作座標が“(500,100)”、表示領域情報につき原点が“50,50”、幅が“500”ピクセル、高さが“600”ピクセルという情報が設定される。
この項番“2”のレコードは、操作入力を受け付けた時間が8時20分20秒64であり、当該操作入力で画面上の座標(x,y)=(500,100)への入力(例えば、タッチパネル107aのオンからオフへの変化)を検出したことを示す。このとき、項番“2”のレコードはスクロール操作終了の座標を示す。
タッチパネル107aに対するタッチ操作を想定すると、上記項番“1”、“2”の操作情報によって1つのスクロール操作を特定できる。図7では、ディスプレイ106aに表示される画面A1が図示されている。具体的には、項番“1”のレコードは座標C1に、項番“2”のレコードは座標C2に対応している。すなわち、これらの操作情報によって、座標C1から座標C2へのユーザによるスクロール操作を特定できる。
キーパッド107bに対する操作に関しても同様である。例えば、右方向を示す操作キーが存在すれば、当該操作キーの押下を開始したタイミングで、画面A1上に表示されたポインタが存在する位置座標に基づいて項番“1”に対応する操作情報を取得できる。そして、当該操作キーの押下に応じてポインタの位置を移動させることで、当該操作キーの押下を解除したタイミングにおけるポインタの位置座標に基づいて項番“2”に対応する操作情報を取得できる。
なお、操作データテーブル251は携帯端末装置ごとに生成される。例えば、操作情報取得部241は、携帯端末装置100,100aの操作情報を管理する場合、各携帯端末装置の識別情報に対応づけて各テーブルを制御情報記憶部250に格納する。
図8は、画面のマップ構成を例示する図である。マップ30は、更新頻度判定部245がスクロール操作による更新頻度を判定する際に用いられる。マップ30は、ディスプレイ106aに表示される画面領域に対応している。マップ30は、当該画面領域を所定サイズの画素領域に区切ったものである。この1つの画素領域の単位をメッシュ31と呼ぶ。メッシュ31には、所定数の画素31aが含まれる。メッシュ31は、例えば8画素×8画素で構成される。
更新差分作成部244は、フレームバッファ230からOS画面上のスクロール領域に対応する予測更新フレームを順次抽出し、予測更新フレーム間の更新差分の情報(更新された領域(画素)を示す情報)を更新頻度判定部245に出力する。更新頻度判定部245は、マップ30に更新差分の情報をあてはめて、各メッシュの更新有無を判定し、各メッシュの更新頻度をカウントする。
図9は、更新頻度の判定方法を例示する図である。図9(A)にはマップ40a、図9(B)にはマップ40b、図9(C)にはマップ40nが、それぞれ示されている。マップ40a,40b,40nは、更新頻度判定部245が、更新差分作成部244から更新された領域(更新領域)を示す情報を順次取得した際のマップ状態を例示している。
更新領域41a,41bは、更新領域を示している。更新領域は、直前の予測更新フレームから更新のあった領域である。ここで、更新領域と重なる画素を含むメッシュを、“更新された”と判断する。各メッシュ内に図示した数字は、更新領域が各マップ上に展開されたタイミングにおける各メッシュの変更回数を示す。また、マップ40nの各メッシュ内に図示した数字は、対象のスクロール領域につき予測更新フレームを全て展開した時点における各メッシュの変更回数を示す。なお、マップ40a,40b,40nにおいて、数字が図示されていないメッシュは、変更回数がゼロである。
マップ40aは、ディスプレイ106aで現在表示中の画面に対して、その直後の予測更新フレームを展開した場合に更新される領域を例示している。この場合、更新領域41aが重なるメッシュにつき変更回数を1ずつ加算する。現在表示中の画面では、変更回数はゼロである。よって、更新領域41aが重なるメッシュの変更回数は“1”に更新される。
マップ40bは、マップ40aの状態の直後の予測更新フレームを展開した場合を例示している。この場合、更新領域41bが重なるメッシュにつき変更回数を1ずつ加算する。更新領域41bが重なる各メッシュは変更回数が“1”である。よって、更新領域41bが重なるメッシュの変更回数は“2”に更新される。
このようにして、全ての予測更新フレームにつき更新領域がマップに展開されると、結果としてマップ40nが得られる。
更新頻度判定部245は、所定期間における変更回数、すなわち変更頻度が閾値を超えるメッシュがあるか否かを取得する。マップ40nの例でいえば、閾値を7としたとき、メッシュ41nが閾値7を超えていると判定できる。更新頻度判定部245は、当該閾値を超えたか否かに基づいて、携帯端末装置100,100aに提供する差分情報を動画形式とするか静止画形式とするか決定する。
なお、当該閾値は、サーバ装置200の管理者が適宜設定できる。例えば、当該閾値は携帯端末装置100,100aおよびサーバ装置200の処理能力に応じて決定する。また、携帯端末装置100,100aのユーザによる設定変更を可能としてもよい。
次に、以上のような構成のシンクライアントシステムの処理手順を説明する。まず、画面更新処理の全体の手順について説明し、その後、画面更新処理の各処理の手順を詳細に説明する。
図10は、第2の実施の形態の携帯端末装置の画面更新処理の全体を示すフローチャートである。以下、図10に示す処理をステップ番号に沿って説明する。
[ステップS1]携帯端末装置100は、ユーザの操作入力に応じた操作情報を取得してサーバ装置200に送信する。携帯端末装置100による操作情報の通知周期は、例えば0.1秒である。
[ステップS2]サーバ装置200は、携帯端末装置100から受信した操作情報に基づいて、スクロール操作のベクトル情報を取得する。
[ステップS3]サーバ装置200は、ベクトル情報に基づいてスクロール挙動を仮決定する。
[ステップS4]サーバ装置200は、仮決定したスクロール挙動の調整を行う。具体的には、フレームレート等の調整を行う。これにより、サーバ装置200は、スクロール挙動を確定する。
[ステップS5]サーバ装置200は、確定したスクロール挙動に基づいて予測更新フレームを抽出する。
[ステップS6]サーバ装置200は、時系列の予測更新フレームにつき、メッシュごとの変更回数をカウントして、当該スクロール操作の画面の更新頻度をカウントする。サーバ装置200は、カウントした更新頻度に基づいて、差分情報を動画形式とするか、静止画形式とするかを決定する。
[ステップS7]サーバ装置200は、決定した形式で差分情報を生成する。例えば、動画形式で生成する場合には、フレームバッファ230から順次抽出した画像情報をエンコードして動画形式の差分情報を生成する。サーバ装置200は、携帯端末装置100に差分情報を送信する。
[ステップS8]携帯端末装置100は、サーバ装置200から受信した差分情報に基づいて、ディスプレイ106aに表示された画面を更新する。
このようにして、シンクライアントシステムの画面更新処理が行われる。次に、上記各ステップを詳細に説明する。まず、ステップS1の操作情報通知処理を説明する。
図11は、第2の実施の形態の操作情報通知処理を示すフローチャートである。以下、図11に示す処理をステップ番号に沿って説明する。
[ステップS11]操作情報取得部110は、画面変更を伴う操作入力(スクロール操作)があったか否かを判定する。当該操作入力があった場合、処理をステップS13に進める。当該操作入力がない場合、処理をステップS12に進める。
[ステップS12]操作情報取得部110は、OSやアプリケーションの処理による表示画面領域の変更があるか否かを判定する。表示画面領域の変更がある場合、処理をステップS13に進める。表示画面領域の変更がない場合、処理を完了させる。
[ステップS13]操作情報取得部110は、操作入力に応じた操作情報を取得する。操作情報取得部110は、OSやアプリケーションの処理による表示画面領域の変更があると判断している場合には、当該OSやアプリケーションから、表示画面領域の変更内容を取得する。操作情報取得部110は、OSやアプリケーションから取得した変更内容に基づいて、操作情報に相当する情報を生成する。操作情報取得部110は、操作情報を操作情報通知部120に出力する。操作情報通知部120は、通信部130を介して操作情報をサーバ装置200に送信する。
このようにして、操作情報取得部110は操作入力を検出するたびに操作情報を取得する。操作情報通知部120は、サーバ装置200に操作情報を通知する。
次に、図10のステップS2のベクトル値計算処理を説明する。
図12は、第2の実施の形態のベクトル値計算処理を示すフローチャートである。以下、図12に示す処理をステップ番号に沿って説明する。
[ステップS21]操作情報取得部241は、通信部260を介して、携帯端末装置100から操作情報を取得したか否かを判定する。操作情報を取得した場合、処理をステップS22に進める。操作情報を取得していない場合、操作情報を取得するまで待機する(処理をステップS21に進める)。
[ステップS22]操作情報取得部241は、制御情報記憶部250を参照して、前回の操作情報が存在するか否かを判定する。前回の操作情報が存在しない場合、処理をステップS23に進める。前回の操作情報が存在する場合、処理をステップS24に進める。
[ステップS23]操作情報取得部241は、今回受信した操作情報を制御情報記憶部250に格納された操作データテーブル251に記録する。当該操作情報は、スクロール操作の開始点に対応する。
[ステップS24]操作情報取得部241は、今回受信した操作情報を制御情報記憶部250に格納された操作データテーブル251に記録する。当該操作情報は、スクロール操作の終了点に対応する。
[ステップS25]ベクトル値計算部242は、操作データテーブル251を参照して、開始点と終了点の座標差分を算出する。操作データテーブル251の例でいえば、開始点(200,100)と終了点(500,100)との差分であるから、座標差分は(300,0)である。ベクトル値計算部242は、算出した座標差分に基づいて、スクロール操作のベクトル方向を算出する。ベクトル方向は、予め定義された複数方向のいずれに該当するかを検知して決定してもよいし、所定方向のベクトルに対して、スクロール操作のベクトルが何度傾いているかを算出して決定してもよい。上記座標差分(300,0)でいえば、ベクトル方向をx方向と判断できる。
[ステップS26]ベクトル値計算部242は、座標差分で示されるベクトル長を単位時間当たりに換算したベクトル長(以下、ベクトル値という)を算出する。例えば、座標差分を1秒に換算する。操作データテーブル251の例でいえば、開始点の操作時間は8時20分20秒54、終了点の操作時間は8時20分20秒64であり、その時間差は0.1秒である。よって、座標差分で示されるベクトル長300を1秒に換算して求めたベクトル値は、3000ピクセル/秒となる。ベクトル値計算部242は、x方向に3000ピクセル/秒というベクトル情報を得る。
[ステップS27]ベクトル値計算部242は、取得したベクトル情報と表示領域情報とをスクロール挙動決定部243に出力する。
[ステップS28]ベクトル値計算部242は、操作データテーブル251に記録されたレコードをクリアする。
このようにして、ベクトル値計算部242は操作情報に基づきスクロール操作に対応するベクトル情報を取得する。ベクトル値計算部242は、ベクトル情報をスクロール挙動決定部243に出力する。
なお、ベクトル値計算部242を携帯端末装置100,100aに設けることも考えられる。その場合、サーバ装置200は、携帯端末装置100,100aで取得されたベクトル情報を取得することで、以降の処理を実行できる。例えば、ベクトル情報をサーバ装置200で取得する場合、ネットワークの負荷等の影響で操作情報が欠落した場合に、ベクトル情報を適正に取得できないことも考えられる。これに対し、ベクトル情報を携帯端末装置100,100aで取得すれば、適正なベクトル情報を確実に取得できる。
次に、図10のステップS3のスクロール挙動仮決定処理を説明する。
図13は、第2の実施の形態のスクロール挙動仮決定処理を示すフローチャートである。以下、図13に示す処理をステップ番号に沿って説明する。
[ステップS31]スクロール挙動決定部243は、ベクトル値計算部242からベクトル情報を取得したか否かを判定する。ベクトル情報を取得した場合、処理をステップS32に進める。ベクトル情報を取得していない場合、ベクトル情報を取得するまで待機する(処理をステップS31に進める)。
[ステップS32]スクロール挙動決定部243は、ベクトル情報に基づいて、単位時間当たり(例えば1秒当たり)のスクロール領域を決定する。例えば、ベクトル情報が“x方向に3000ピクセル/秒”であるとする。スクロール挙動決定部243は、表示領域情報で示される領域をOS画面上で当該ベクトル情報に基づいて移動させる。当該移動させた領域の軌跡がスクロール領域である。操作データテーブル251の例でいえば、OS画面上の座標(50,50)を原点(画面に向かって左上の点)として、幅3500ピクセル、高さ600ピクセルの領域をスクロール領域として特定できる。
[ステップS33]スクロール挙動決定部243は、予め定められた所定のフレームレートを取得する。スクロール挙動決定部243は、当該フレームレートに基づいて、スクロール領域に対応するフレーム数を算出する。そして、フレーム間の中心距離Lを算出する。ここで、中心距離Lとは、OS画面のうち、各フレームで表示する画面領域の中心点(フレーム幅が1/2、高さが1/2の点)同士のOS画面上の距離を示す。例えば、フレームレートを30fps(frames per second)とする。すると、ベクトル値“3000ピクセル/秒”を30fpsで割った100ピクセルが中心距離Lである。中心距離Lは、あるフレームから次のフレームまでのOS画面上のスクロール量を示す。
このようにして、スクロール挙動決定部243はスクロール挙動を仮決定する。ここで、ベクトル値が大きくなる場合が想定される。その場合、本処理によってスクロール挙動を決定すると、各フレーム間の中心距離Lが増大して動画形式で差分情報を生成する際に、携帯端末装置100,100a側でスムーズな描画を行えないことが考えられる。例えば、ベクトル値が“30000ピクセル/秒”であれば、中心距離Lは1000ピクセルとなり、OS画面上の距離を大きく隔てて各フレームが作成されてしまう。
そこで、このような場合には、スクロール挙動を調整して、フレームレートを変更する。上述の例でいえば、中心距離Lが大きくなる場合には、フレームレートをより大きな値に調整する。この処理を図14で説明する。
次に、図10のステップS4のスクロール挙動調整処理を説明する。
図14は、第2の実施の形態のスクロール挙動調整処理を示すフローチャートである。以下、図14に示す処理をステップ番号に沿って説明する。
[ステップS41]スクロール挙動決定部243は、現在のフレームレートに基づいてフレーム間の中心距離Lを取得する。中心距離Lの算出方法は、図13のステップS33で示した通りである。
[ステップS42]スクロール挙動決定部243は、表示領域情報に基づいて、ディスプレイ106aに表示された画面の領域の幅Wと高さHとを取得する。
[ステップS43]スクロール挙動決定部243は、L≧W/2、L≧H/2の少なくとも一方を満たすか否かを判定する。満たす場合、処理をステップS44に進める。満たさない場合、処理をステップS45に進める。
[ステップS44]スクロール挙動決定部243は、フレームレートを増加させる。増加分は、例えば所定値としてもよいし、所定割合としてもよい。スクロール挙動決定部243は、更に、フレームの画質を低下させる。具体的には、フレームの解像度や色数などを減らしてフレームサイズ(1フレーム当たりのサイズ)を低下させる。フレームサイズの低下量は、フレームレートの増加を相殺する分とする。このような処理を行うのは次の理由による。すなわち、フレームレートの増加に伴って携帯端末装置100に送信するデータ量が増大し、携帯端末装置100側で操作レスポンスが悪化する可能性がある。そこで、フレームの画質を低減することで、フレームレートの増加に伴う送信データ量の増大を抑制する。そして、処理をステップS41に進める。
[ステップS45]スクロール挙動決定部243は、L≦W/10、L≦H/10の少なくとも一方を満たすか否かを判定する。満たす場合、処理をステップS46に進める。満たさない場合、処理をステップS47に進める。
[ステップS46]スクロール挙動決定部243は、フレームレートを減少させる。減少分は、例えば所定値としてもよいし、所定割合としてもよい。スクロール挙動決定部243は、更に、フレームの画質を向上させる。具体的には、フレームの解像度や色数などを増やしてフレームサイズを増加させる。フレームサイズの増加量は、フレームレートの低下を相殺する分とする。そして、処理をステップS41に進める。
[ステップS47]スクロール挙動決定部243は、現在のフレームレート、画質などの情報によってスクロール挙動を確定する。
[ステップS48]スクロール挙動決定部243は、更新差分作成部244に確定したスクロール挙動を通知する。
このようにして、スクロール挙動決定部243は仮決定したスクロール挙動に含まれるフレームレートを確定させる。具体的には、中心距離Lが大き過ぎる場合には、フレームレートを増加させてフレームの画質を低下させる。他方、中心距離Lが小さ過ぎる場合には、フレームレートを低下させてフレームの画質を向上する。
これによって、差分情報を動画形式で送信する場合に、携帯端末装置100,100a側でのスムーズな描画を実現できる。その際、携帯端末装置100,100aに送信する差分情報の送信データ量が増大しないよう制御できる。
次に、図10のステップS5の更新差分作成処理を説明する。
図15は、第2の実施の形態の更新差分作成処理を示すフローチャートである。以下、図15に示す処理をステップ番号に沿って説明する。
[ステップS51]更新差分作成部244は、スクロール挙動決定部243からスクロール挙動を取得したか否かを判定する。スクロール挙動を取得した場合、処理をステップS52に進める。スクロール挙動を取得していない場合、スクロール挙動を取得するまで待機する(処理をステップS51に進める)。
[ステップS52]更新差分作成部244は、「スクロール挙動更新フレームモード」をオンにする。「スクロール挙動更新フレームモード」とは、更新頻度判定部245に対して予測更新フレームを一時的に出力するモードである。
[ステップS53]更新差分作成部244は、取得したスクロール挙動に含まれるスクロール領域、フレームサイズ、フレームレートおよび中心距離Lを特定する。また、更新差分作成部244は、更新頻度判定部245にスクロール挙動を通知する。
[ステップS54]更新差分作成部244は、特定した各情報に基づいてフレームバッファ230から予測更新フレームを時系列の順に抽出する。なお、抽出するフレームの開始点は、ディスプレイ106aに現在表示中の画面領域に対応するフレームとする。すなわち、当該開始点から中心距離Lずつ離れた各領域につき、特定したフレームレート、サイズで予測更新フレームを抽出する。
[ステップS55]更新差分作成部244は、抽出した予測更新フレームとその直前の予測更新フレームとを比較して、更新領域の情報を更新頻度判定部245に順次出力する。
[ステップS56]更新差分作成部244は、スクロール領域内の全予測更新フレームについて、更新領域の情報を出力し終わったか否か判定する。出力を終了した場合、処理をステップS57に進める。出力を終了していない場合、処理をステップS55に進める。
[ステップS57]更新差分作成部244は、「スクロール挙動更新フレームモード」をオフにする。その後、更新差分作成部244は、更新差分変換部246に対する差分情報の出力を行う(ステップS58〜S62に対応する)。
[ステップS58]更新差分作成部244は、フレームバッファ230を参照して、1つ前のフレームバッファ情報が存在するか否か判定する。存在する場合、処理をステップS59に進める。存在しない場合、処理をステップS61に進める。
[ステップS59]更新差分作成部244は、現在のフレームバッファ情報と直前のフレームバッファ情報とを比較する。比較対象とする領域は、ディスプレイ106aに表示中の画面に対応する領域である。
[ステップS60]更新差分作成部244は、ディスプレイ106aの表示画面の更新された部分につき更新矩形データを生成し、更新差分変換部246に出力する。
[ステップS61]更新差分作成部244は、ディスプレイ106aの表示画面全体につき更新矩形データを生成し、更新差分変換部246に出力する。
[ステップS62]更新差分作成部244は、現在のフレームバッファ情報を、フレームバッファ230に保存する。
このようにして、更新差分作成部244はスクロール挙動に基づき、予測更新フレームを抽出し、各予測更新フレームと直前の予測更新フレームとの更新差分(更新領域の情報)を更新頻度判定部245に出力する。更新頻度判定部245は、当該情報に基づいてスクロールによる画面の更新頻度を判定する。
ここで、更新矩形データについて説明する。
図16は、更新矩形を例示する図である。図16(A)には、ディスプレイ106aに表示される画面領域K1のうち、更新対象とする領域が示されている。当該領域を囲う矩形が更新矩形R1である。更新矩形R1を示すデータは、図15で説明したステップS60の更新矩形データに対応する。
図16(B)には、ディスプレイ106aに表示される画面領域K2のうち、更新対象とする領域が示されている。ここでは、画面領域K2の全領域である。当該領域を囲う矩形が更新矩形R2である。更新矩形R2を示すデータは、図15で説明したステップS61の更新矩形データに対応する。
更新差分作成部244は、更新矩形データによって、ディスプレイ106aに表示された画面のうちの更新対象となる画面のみにつき差分情報を生成するよう更新差分変換部246に指示できる。すなわち、図16(A)のように更新部分についてのみ更新矩形R1が取得された場合、更新差分変換部246はディスプレイ106aの表示画面に対して更新矩形R1内の領域についてのみ差分情報を作成すればよい。携帯端末装置100の画面表示処理部180は、当該差分情報の領域について表示画面の更新を行う。
これにより、携帯端末装置100,100aとサーバ装置200との間のデータ通信量を低減できるとともに、携帯端末装置100,100aの表示処理に係る処理負荷を低減できる。
次に、図10のステップS6の更新頻度判定処理を説明する。
図17は、第2の実施の形態の高頻度画面更新領域推定処理を示すフローチャートである。以下、図17に示す処理をステップ番号に沿って説明する。
[ステップS71]更新頻度判定部245は、更新差分作成部244が「スクロール挙動更新モード」が“オン”であるか否かを判定する。オンである場合、処理をステップS72に進める。オフである場合、オンとなることを待機する(処理をステップS71に進める)。
[ステップS72]更新頻度判定部245は、更新差分作成部244からスクロール挙動の通知を受けたか否かを判定する。通知を受けた場合、処理をステップS73に進める。通知を受けていない場合、通知を待機する(処理をステップS71に進める)。
[ステップS73]更新頻度判定部245は、ディスプレイ106aの表示画面に対応する画面フレームサイズのマップ30を作成する。
[ステップS74]更新頻度判定部245は、更新差分作成部244から取得した更新領域をマップ30にマッピングする。
[ステップS75]更新頻度判定部245は、更新されたメッシュ31につき更新回数をカウントする。
[ステップS76]更新頻度判定部245は、更新差分作成部244の「スクロール挙動更新モード」が“オフ”であるか否かを判定する。オフである場合、処理をステップS77に進める。オンである場合、処理をステップS74に進める。
[ステップS77]更新頻度判定部245は、マップ30の各メッシュについてカウントした更新頻度が所定の閾値以上であるか否かを判定する。閾値以上である場合、処理をステップS78に進める。閾値よりも小さい場合、処理をステップS79に進める。
[ステップS78]更新頻度判定部245は、携帯端末装置100に送信する差分情報を動画形式とすることを決定する。更新頻度判定部245は、差分情報を動画形式とするよう更新差分変換部246に指示する。
[ステップS79]更新頻度判定部245は、携帯端末装置100に送信する差分情報を静止画形式とすることを決定する。更新頻度判定部245は、差分情報を静止画形式とするよう更新差分変換部246に指示する。
このようにして、更新頻度判定部245は、更新頻度の判定を行う。そして、更新頻度判定部245は、更新頻度に応じて差分情報を動画形式とするか、静止画形式とするかを決定する。更新差分変換部246は、更新頻度判定部245が決定した形式で差分情報を生成する。
次に、図10のステップS7の更新差分変換処理を説明する。
図18は、第2の実施の形態の更新差分変換処理を示すフローチャートである。以下、図18に示す処理をステップ番号に沿って説明する。
[ステップS81]更新差分変換部246は、差分情報を動画形式で生成するか否か判定する。動画形式の場合、処理をステップS82に進める。動画形式でない場合、処理をステップS87に進める。更新差分変換部246は、差分情報を動画形式で生成する旨の指示を更新頻度判定部245から受けている場合に、動画形式で生成すると判定する。一方、更新差分変換部246は、差分情報を静止画形式で生成する旨の指示を更新頻度判定部245から受けている場合には、動画形式でないと判定する。
[ステップS82]更新差分変換部246は、更新差分作成部244から更新矩形データを取得する。また、更新差分変換部246は、スクロール挙動決定部243からスクロール挙動および表示領域情報を取得する。
[ステップS83]更新差分変換部246は、フレームバッファ230に格納された現表示画面の情報を参照し、表示領域情報で示される位置(領域)をスタート地点として、スクロールの軌跡を更新フレームとする動画形式の差分情報(動画データ)を生成する。動画データの生成に用いる各種パラメータは、中心距離L、フレームサイズおよびフレームレートの情報はスクロール挙動に含まれている。また、作成対象とする領域の大きさは、更新矩形データに基づいて決定する。更新差分変換部246は、生成した動画データを画面更新通知部247に出力する。
[ステップS84]画面更新通知部247は、通信部260を介して携帯端末装置100に動画データを送信する。
[ステップS85]画面更新通知部247は、動画データの送信を終了する。
[ステップS86]更新差分変換部246は、スクロールの最後の画面につき、静止画データを生成し、画面更新通知部247に出力する。画面更新通知部247は、通信部260を介して、最後の画面の静止画データを携帯端末装置100に送信する。
[ステップS87]更新差分変換部246は、更新差分作成部244から更新矩形データを取得する。また、更新差分変換部246は、スクロール挙動決定部243からスクロール挙動および表示領域情報を取得する。
[ステップS88]更新差分変換部246は、フレームバッファ230を参照し、フレームレートや中心距離Lに基づいてスクロール領域のデータを順次取得する。取得する領域の大きさは、更新矩形データに基づいて決定する。
[ステップS89]更新差分変換部246は、取得したスクロール領域の各データに基づいて、静止画形式の差分情報(静止画データ)を生成する。更新差分変換部246は、生成した静止画データを画面更新通知部247に出力する。
[ステップS90]画面更新通知部247は、通信部260を介して携帯端末装置100に静止画データを送信する。
このようにして、更新差分変換部246は、差分情報の生成を行う。更新差分変換部246は、更新頻度判定部245の指示に応じて、動画形式の差分情報(動画データ)または静止画形式の差分情報(静止画データ)のいずれかを生成し、携帯端末装置100,100aに送信する。
図19は、スクロール操作を例示する図である。携帯端末装置100のディスプレイ106aには、サーバ装置200が提供するデスクトップ画面300の一部が表示されているとする。携帯端末装置100のユーザは、ディスプレイ106aに表示された画面を閲覧して、紙面に向かって右方向にスクロールさせるスクロール操作を行う。例えば、ユーザは、タッチパネル107aのある一点を指でタッチし、タッチした状態のまま右方向に指をスライドさせる。そして、スライドした先でタッチパネル107aから指を離す。携帯端末装置100は、当該一連のスクロール操作に応じた操作情報を取得して、サーバ装置200に送信する。
サーバ装置200は、当該スクロール操作に応じたスクロール挙動を取得する。サーバ装置200は、スクロール挙動に基づいて予測更新フレームF1,・・・,Fnを取得し、各予測更新フレーム間の更新頻度を判定する。ここで、予測更新フレームF1は、スクロール挙動で示されるスクロール領域の開始点に対応する予測更新フレームである。予測更新フレームFnは、スクロール領域の終了点に対応する予測更新フレームである。
そして、サーバ装置200は、更新頻度が所定の閾値以上である場合には、動画形式で生成した差分情報を携帯端末装置100に送信する。
図20は、動画形式で差分情報を送信する場合の例を示す図である。サーバ装置200は、更新頻度を判定した結果、動画形式の差分情報(動画データ)を送信する旨を決定したとする。すると、サーバ装置200は、スクロール領域310内で更新フレームFを順次取得して、エンコードし、動画データを生成する。図20では、動画データを構成するフレームデータ411,412,413,・・・,421,422,423,・・・が示されている。ここでは動画データの圧縮方式としてMPEG(Moving Picture Experts Group)を利用した場合の例を示している。この場合フレームデータ411および421はIピクチャと呼ばれる基準画像であり、フレームデータ412,413,422,423はPピクチャもしくはBピクチャと呼ばれる差分画像である。また、動画データ作成時の圧縮方式はMPEGに限らず、これに似た圧縮を行うMPEG2やH.264といった他の圧縮方式を利用してもかまわない。
例えば、期間T1では、フレームデータ411,412,413,・・・を携帯端末装置100に送信する。また、期間T2では、画面の更新がないためフレームデータの送信は行われない。期間T3では、フレームデータ421,422,423,・・・を携帯端末装置100に送信する。
更に、サーバ装置200はスクロール領域310の最も右側の領域(スクロールが完了する領域)につき静止画データ430を生成し、携帯端末装置100に送信する。
このように画面の更新頻度が高い場合に動画形式で差分情報を生成することで、携帯端末装置100側でスクロール中の画面をスムーズに表示することが可能となる。
また、サーバ装置200は、最後に静止画データ430を送信する。これにより、スクロール前の画面とスクロール後の画面とを共通の画質とすることができるので、ユーザに違和感を与えることもない。
図21は、差分情報の送信方法の第1の比較例を示す図である。図21では、サーバ装置200が静止画形式の差分情報(静止画データ)を送信する場合を例示している。その場合、サーバ装置200は、静止画データ510,520,530,540,550を生成して、携帯端末装置100に送信する。スクロールによる更新頻度が低い場合には、静止画データによってスクロール中の画面を送信しても携帯端末装置100の操作レスポンスに与える影響は小さい。
しかし、スクロールによる更新頻度が高い場合には、携帯端末装置100に送信すべき静止画データの数は更新頻度に応じて増大する。一方で、静止画データ単体のデータサイズは同じである。このため、携帯端末装置100は、多量の静止画データを短時間で受信し、表示することとなり、その処理負荷が増大する。これは、操作レスポンスを悪化させる要因となり得る。
そこで、サーバ装置200は、図20で示したように画面の更新頻度が高い場合に動画形式で差分情報を生成する。このため、各フレームにつき動画形式で採用されている効率的な圧縮方法を利用できる。これにより、携帯端末装置100側での処理コストを軽減できる。その結果、シンクライアントシステムにおける操作レスポンスを改善できる。
[第3の実施の形態]
以下、第3の実施の形態を図面を参照して詳細に説明する。前述の第2の実施の形態との相違点について主に説明し、同様の事項に関しては説明を省略する。
第2の実施の形態では、タッチパネルやキーパッドによる操作入力を主に説明した。これに対し、第3の実施の形態では、加速度センサによる操作入力を行う場合を説明する。ユーザは、携帯端末装置を振ることでスクロール操作を行える。
ここで、第3の実施の形態のシンクライアントシステムの全体構成は、図2で説明した第2の実施の形態のシンクライアントシステムと同様であるため説明を省略する。第3の実施の形態の携帯端末装置およびサーバ装置のハードウェアおよび機能構成は、図3〜6で説明した第2の実施の形態の携帯端末装置100およびサーバ装置200の各構成と同様であるため説明を省略する。
以下では、第3の実施の形態の携帯端末装置およびサーバ装置の各構成につき、便宜的に携帯端末装置100およびサーバ装置200の各構成に示した符号と同一の符号を用いる。
ただし、携帯端末装置100では、操作情報取得部110が加速度センサ107cに対する操作入力に基づいて操作情報を取得する点が異なる。操作情報取得部110は、操作情報に加速度センサ107cで検出された加速度の情報を含める。
また、サーバ装置200では、ベクトル値計算部242が当該操作情報からベクトル値を算出する際に、携帯端末装置100,100aそれぞれの特性を考慮する点が異なる。
図22は、携帯端末装置の座標系を例示する図である。座標系50は、携帯端末装置100に固定された座標系である。座標系50は、X軸、Y軸、Z軸からなる3次元座標系である。携帯端末装置100のディスプレイ106aに向かって上方向をX軸方向、左方向をY軸方向、紙面奥から紙面手前側へ向かう方向をZ軸方向とする。
加速度センサ107cは、ユーザによる携帯端末装置100の移動操作を検知すると、座標系50の各軸方向の加速度を測定する。操作情報取得部110は、加速度センサ107cが測定した加速度を取得して操作情報に含め、操作情報通知部120に出力する。
ここで、操作情報取得部110は、各携帯端末装置に付与された識別情報を操作情報に含める。また、操作情報取得部110は、各携帯端末装置を操作するユーザの識別情報を操作情報に含める。
図23は、加速度データを例示する図である。図23(A)は、携帯端末装置100で測定された加速度データのグラフ610を示している。図23(B)は、携帯端末装置100aで測定された加速度データのグラフ620を示している。グラフ610,620とも横軸は時間(秒)、縦軸は加速度(メートル毎秒毎秒)である。
携帯端末装置100,100aでは、それぞれに設けられた加速度センサの特性が異なる。このため、同一ユーザが同様に操作入力を行ったとしても、測定される加速度は異なる。グラフ610,620は、携帯端末装置100,100aに対して同様の操作入力を行った場合を例示しており、携帯端末装置によって、測定される加速度データが異なっていることが分かる。更に、ユーザによって操作の癖があるため、同一の携帯端末装置を異なるユーザが操作すれば、同じ操作指示を行う操作であっても、測定される加速度は異なる。
そこで、サーバ装置200では、携帯端末装置ごとの加速度センサの特性やユーザの操作傾向を考慮してベクトル情報を取得する。
図24は、センサ特性補正係数テーブルのデータ構造例を示す図である。センサ特性補正係数テーブル252は、携帯端末装置100,100aに設けられた加速度センサの特性を補正するための補正係数を定義したテーブルである。センサ特性補正係数テーブル252は、制御情報記憶部250に予め格納される。
センサ特性補正係数テーブル252には、端末ID(IDentifier)および補正係数の項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つの携帯端末装置に対する補正係数の組を示す。
端末IDの項目には、携帯端末装置の識別情報が設定される。補正係数の項目には、各軸のパラメータの補正を行うための係数が設定される。補正対象のパラメータは後述するベクトル値変換テーブルに定義されるパラメータである。補正係数の項目には、更に、X,Y,Zの項目が設けられている。Xの項目には、X軸方向のパラメータの補正係数が設定される。Yの項目には、Y軸方向のパラメータの補正係数が設定される。Zの項目には、Z軸方向のパラメータの補正係数が設定される。
例えば、センサ特性補正係数テーブル252には、端末IDが“M00001”、補正係数がX軸方向“1.5”、Y軸方向“1.0”、Z軸方向“1.2”という情報が設定される。
これは、端末ID“M00001”に対応する携帯端末装置100から加速度データを取得した場合、X軸方向のパラメータを1.5倍、Y軸方向のパラメータを1.0倍、Z軸方向のパラメータを1.2倍に補正することを示す。
図25は、ベクトル値変換テーブルのデータ構造例を示す図である。ベクトル値変換テーブル253は、ユーザごとの操作傾向に応じた操作方向の判定条件と、加速度をベクトル値に変換するための計算式とを定義したテーブルである。ベクトル値変換テーブル253は、制御情報記憶部250に予め格納される。
ベクトル値変換テーブル253には、ユーザID、加速度判定条件、スクロール方向およびベクトル値計算式の項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、スクロール方向やスクロール量の対応関係を示す。
ユーザIDの項目には、携帯端末装置を操作するユーザの識別情報が設定される。加速度判定条件の項目には、スクロール方向の判定条件が設定される。スクロール方向の項目には、加速度判定条件の項目に設定された判定条件が満たされる場合のスクロール方向が設定される。ベクトル値計算式には、当該スクロール方向に対するベクトル値の計算式が設定される。
例えば、ベクトル値変換テーブル253には、ユーザIDが“U00001”、加速度判定条件が“X’>20”、スクロール方向が“上”、ベクトル値計算式が“X’×100”という情報が設定される。
これは、X軸方向の加速度が20メートル毎秒毎秒である場合、スクロール方向(スクロール操作のベクトル方向)を上方向(X軸の正の方向)と判定することを示している。その際、スクロール方向のベクトル値をX軸方向の加速度に100を乗じた値とすることを示している。ここで、ベクトル値の単位は、例えばピクセル/秒である。
なお、図25中、“X’”は、X軸方向の加速度を示す。“Y’”、“Z’”も同様である。
ベクトル値変換テーブル253では、加速度判定条件に複数の条件が定義されることもある。例えば、ベクトル値変換テーブル253には、ユーザIDが“U00001”、加速度判定条件が“Y’/Z’>6、Y’>0”、スクロール方向が“左”、ベクトル値計算式が“Y’×70”という情報が設定される。
これは、Y軸方向の加速度をZ軸方向の加速度で除した結果が6より大きく、かつ、Y軸方向の加速度が0より大きい場合に、スクロール方向を左方向(Y軸の正の方向)と判定することを示している。その際、スクロール方向のベクトル値をY軸方向の加速度に70を乗じた値とすることを示している。
ここで、ベクトル値計算部242は、センサ特性補正係数テーブル252から補正係数を得ている場合、ベクトル値変換テーブル253の各パラメータを補正する。例えば、センサ特性補正係数テーブル252から端末ID“M00001”の補正係数X“1.5”、Y“1.0”、Z“1.2”を取得している場合、ユーザID“U00001”に対応する各パラメータの補正方法は次の通りである。
(1)加速度判定条件“X’>20”を“X’>20×1.5=30”とする。
(2)加速度判定条件“Y’/Z’>6”を“Y’/Z’>6×1.0/1.2=5”とする。
(3)加速度判定条件“Y’/Z’<3”を“Y’/Z’<3×1.0/1.2=2.5”とする。
(4)ベクトル値計算式“X’×100”の“100”を1.5倍して、“X’×150”とする。
(5)ベクトル値計算式“Y’×30+Z’×100”の“100”を1.2倍して“Y’×30+Z’×120”とする。
当該補正後のパラメータを利用してベクトル値を算出することで、ユーザの操作の癖や加速度センサの設置場所等の影響を考慮したベクトル値を算出できる。
次に、以上のような構成のシンクライアントシステムの処理手順を説明する。ここで、携帯端末装置の画面更新処理の全体は、図10で示した第2の実施の形態の同処理の手順と同一であるため説明を省略する。第3の実施の形態では、当該処理に含まれるステップS1(操作情報通知処理)およびステップS2(ベクトル値計算処理)の手順が異なる。よって、以下では、これらの処理手順につき詳細に説明する。
図26は、第3の実施の形態の操作情報通知処理を示すフローチャートである。以下、図26に示す処理をステップ番号に沿って説明する。
[ステップS101]操作情報取得部110は、携帯端末装置100を移動させることによる操作入力(スクロール操作)があったか否かを判定する。当該操作入力があった場合、加速度センサ107cが測定した各軸方向の加速度を取得して、処理をステップS102に進める。当該操作入力がない場合、処理を完了する。
[ステップS102]操作情報取得部110は、操作入力に応じた加速度の情報を含む操作情報を取得する。操作情報取得部110は、携帯端末装置100の端末ID(例えば、M00001)や携帯端末装置100を操作するユーザのユーザID(例えば、“U00001”)を取得して操作情報に含める。操作情報取得部110は、操作情報を操作情報通知部120に出力する。操作情報通知部120は、通信部130を介して操作情報をサーバ装置200に送信する。
このようにして、操作情報取得部110は操作入力に応じた加速度の情報を含む操作情報を取得する。操作情報通知部120は、サーバ装置200に操作情報を通知する。
図27は、第3の実施の形態のベクトル値計算処理を示すフローチャートである。以下、図27に示す処理をステップ番号に沿って説明する。
[ステップS111]操作情報取得部241は、通信部260を介して、携帯端末装置100から操作情報を取得したか否かを判定する。操作情報を取得した場合、操作情報をベクトル値計算部242に出力して、処理をステップS112に進める。操作情報を取得していない場合、操作情報を取得するまで待機する(処理をステップS111に進める)。
[ステップS112]ベクトル値計算部242は、操作情報から端末IDとユーザIDとを取得する。例えば、ベクトル値計算部242は、端末ID“M00001”を、ユーザID“U00001”を取得する。
[ステップS113]ベクトル値計算部242は、制御情報記憶部250に格納されたセンサ特性補正係数テーブル252を参照して、端末IDに対応する補正係数が定義されているか否か判定する。定義されている場合、処理をステップS114に進める。定義されていない場合、処理をステップS115に進める。
[ステップS114]ベクトル値計算部242は、ユーザIDに基づいて制御情報記憶部250に格納されたベクトル値変換テーブル253を参照する。ベクトル値計算部242は、ユーザIDに対応する各パラメータを、補正係数で補正する。補正の具体例は、図25で説明した通りである。
[ステップS115]ベクトル値計算部242は、ユーザIDに基づいてベクトル値変換テーブル253の加速度判定条件を参照し、加速度の判定を行う。なお、加速度判定条件に含まれるパラメータをステップS114で補正している場合には、補正後の加速度判定条件により判定を行う。
[ステップS116]ベクトル値計算部242は、ステップS113で取得した補正後の加速度につき、当該レコードの加速度判定条件を満たすか否かを判定する。いずれかの加速度判定条件を満たす場合、処理をステップS116に進める。いずれの加速度判定条件も満たさない場合、処理を完了する。なお、いずれの加速度判定条件も満たさない場合には、当該操作情報はスクロール操作を示すものではないと判断できる。よって、この場合には、以降の処理を行わずに携帯端末装置の画面更新処理を完了する。
[ステップS117]ベクトル値計算部242は、加速度判定条件によって特定したスクロール方向につき、ベクトル値を算出する。例えば、端末ID“M00001”、ユーザID“U00001”に対して、加速度(X’,Y’,Z’)=(35,−5.0,3.0)を取得している場合を考える。この場合、ベクトル値変換テーブル253(パラメータ補正後とする)によって、次のベクトル値を算出できる。
(1)X’=35>30を満たす。よって、上方向のスクロールにつきベクトル値X’×150=35×150=5250ピクセル/秒を取得する。
(2)Y’/Z’=−1.67<2.5、かつ、Z’=3.0>0を満たす。よって、右方向のスクロールにつきベクトル値Y’×30+Z’×120=−5.0×30+3.0×120=−150+360=210ピクセル/秒を取得する。
なお、ベクトル値計算部242は、上記(1)(2)のうち、有意な方向のみについて、ベクトル値を取得する。この例では、上方向のベクトル値が右方向のベクトル値よりも大きいので上方向(ディスプレイ106aの表示画面ではy軸の負の方向に対応する)につき、5250ピクセル/秒のベクトル値を取得し、当該方向と併せてベクトル情報とする。ただし、(1)(2)で求めたベクトルを更に合成して、右上方向のベクトルを求め、これをベクトル情報としてもよい。
[ステップS118]ベクトル値計算部242は、取得したベクトル情報と表示領域情報とをスクロール挙動決定部243に出力する。ここで、表示領域情報は、上述したように操作情報に含まれる情報である。
このようにして、ベクトル値計算部242は操作情報に基づきスクロール操作に対応するベクトル情報を取得する。ベクトル値計算部242は、ベクトル情報をスクロール挙動決定部243に出力する。
以降、第3の実施の形態のシンクライアントシステムは、図10で示した第2の実施の形態の画面更新処理の全体に含まれるステップS3〜S8の各処理を実行する。これらの処理手順に関しては、上述した手順と同様であるため説明を省略する。
これにより、携帯端末装置100,100aの移動により測定した加速度に応じて画面のスクロールを行う場合にも、操作レスポンスの低下を抑制できる。すなわち、第2の実施の形態と同様に、サーバ装置200は、スクロールによる画面の更新頻度が高くなる場合には、差分情報を動画形式で生成して携帯端末装置100,100aに送信する。このため、静止画形式で送信する場合に比べて携帯端末装置100,100aの処理負荷を低減することができる。
特に、サーバ装置200は、各携帯端末装置の加速度センサの特性やユーザの操作傾向に応じた方法でベクトル情報を求める。これによって、携帯端末装置およびユーザごとに快適な操作環境を提供することができる。
なお、センサ特性補正係数テーブル252およびベクトル値変換テーブル253は、サーバ装置200の管理者や携帯端末装置100,100aのユーザによって適宜変更可能としてもよい。
更に、第2,第3の実施の形態では、タッチパネル107a、キーパッド107bおよび加速度センサ107cによってスクロール操作を受け付ける場合を例示したが、これらに限らずに上述の処理方法を適用できる。例えば、タッチパネル107a、キーパッド107bおよび加速度センサ107cに代えて、(あるいは、これらと併せ)光センサ、地磁気センサ、温度センサ等を設けて、これらセンサによるスクロール操作を受け付けてもよい。また、マイク108aに対する音声によるスクロール操作を受け付ける場合にも適用できる。
また、携帯端末装置100,100aは、例えば携帯電話機、PDA(Personal Digital Assistant)、ラップトップ型コンピュータ、携帯ゲーム機および携帯音楽プレイヤー等である。サーバ装置200が実行するOSは、特定のアーキテクチャに依存せず、種々のOSとすることができる。
以上、画像送信方法、画像送信装置および画像送信プログラムを図示の実施の形態に基づいて説明したが、これらに限定されるものではなく、各部の構成は同様の機能を有する任意の構成のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。更に、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
以上の実施の形態に関し、更に以下の付記を開示する。
(付記1) コンピュータが、
他の装置から画像のスクロールを指示する操作情報を取得すると、該操作情報に基づいてスクロール方向とスクロールの速さとを決定し、
前記他の装置の画面に表示させている画像を前記クロール方向へ前記速さで所定時間スクロールさせるときに、前記他の装置の画面に所定の表示時間間隔で順次表示させる複数の画像から、動画を生成し、
生成した前記動画を前記他の装置に送信する、
ことを特徴とする画像送信方法。
(付記2) 前記複数の画像の更新頻度を算出し、
前記更新頻度が閾値以上である場合に、送信する画像の形式を動画形式と決定し、前記更新頻度が当該閾値よりも小さい場合に送信する画像の形式を静止画形式と決定し、
送信する画像の形式が動画形式に決定された場合、前記動画を生成し、
送信する画像の形式が動画形式に決定された場合、生成した前記動画を前記他の装置に送信し、送信する画像の形式が静止画形式に決定された場合、前記複数の画像を前記他の装置に送信する、
ことを特徴とする付記1記載の画像送信方法。
(付記3) 前記スクロール方向、前記速さ、および前記他の装置の画像表示領域のサイズに基づいて、前記表示時間間隔を決定する、
ことを特徴とする付記1または2のいずれかに記載の画像送信方法。
(付記4) 前記スクロール方向と前記速さとに基づき現行の前記表示時間間隔で画像を表示させた場合に連続して表示させる2つの画像間の位置の差が、前記画像表示領域のサイズを所定値で除算した値以上の場合、前記表示時間間隔を増加させる、
ことを特徴とする付記3記載の画像送信方法。
(付記5) 前記スクロール方向と前記速さとに基づき現行の前記表示時間間隔で画像を表示させた場合に連続して表示させる2つの画像間の位置の差が、前記画像表示領域のサイズを所定値で除算した値以下の場合、前記表示時間間隔を減少させる、
ことを特徴とする付記3記載の画像送信方法。
(付記6) 前記スクロール方向、前記速さ、および前記他の装置の画像表示領域のサイズに基づいて、前記他の装置の画面に表示させる画像の画質を決定する、
ことを特徴とする付記1乃至5のいずれかに記載の画像送信方法。
(付記7) 前記スクロール方向と前記速さとに基づき現行の前記表示時間間隔で画像を表示させた場合に連続して表示させる2つの画像間の位置の差が、前記画像表示領域のサイズを所定値で除算した値以上の場合、画質を低下させる、
ことを特徴とする付記6記載の画像送信方法。
(付記8) 前記スクロール方向と前記速さとに基づき現行の前記表示時間間隔で画像を表示させた場合に連続して表示させる2つの画像間の位置の差が、前記画像表示領域のサイズを所定値で除算した値以下の場合、画質を向上させる、
ことを特徴とする付記7記載の画像送信方法。
(付記9) 前記操作情報には、前記他の装置の加速度を示す情報が含まれており、該加速度の向きを前記スクロール方向に変換し、該加速度の大きさを前記速さに変換する、
ことを特徴とする付記1乃至8のいずれかに記載の画像送信方法。
(付記10) 前記操作情報を受信すると、前記他の装置の利用者の識別情報に対応づけて、前記加速度を前記スクロール方向および前記速さに変換するための変換ルールを記憶する記憶装置を参照して、前記加速度を前記スクロール方向および前記速さに変換する、
ことを特徴とする付記9記載の画像送信方法。
(付記11) 他の装置から画像のスクロールを指示する操作情報を取得すると、該操作情報に基づいてスクロール方向とスクロールの速さとを決定する決定手段と、
前記他の装置の画面に表示させている画像を前記スクロール方向へ前記速さで所定時間スクロールさせるときに、前記他の装置の画面に所定の表示時間間隔で順次表示させる複数の画像から、動画を生成する生成手段と、
生成した前記動画を前記他の装置に送信する送信手段と、
を有することを特徴とする画像送信装置。
(付記12) 他の装置から画像のスクロールを指示する操作情報を取得すると、該操作情報に基づいてスクロール方向とスクロールの速さとを決定し、
前記他の装置の画面に表示させている画像を前記スクロール方向へ前記速さで所定時間スクロールさせるときに、前記他の装置の画面に所定の表示時間間隔で順次表示させる複数の画像から、動画を生成し、
生成した前記動画を前記他の装置に送信する、
処理をコンピュータに実行させることを特徴とする画像送信プログラム。
1 情報処理装置
1a 入力装置
1b 表示装置
1c 通知手段
1d 表示処理手段
2 画像送信装置
2a バッファ
2b 決定手段
2c 生成手段
2d 送信手段
3,6 画像
4 画像データ
5 動画

Claims (7)

  1. 他の装置に表示させる画像を前記他の装置に送信するコンピュータが、
    前記他の装置から画像のスクロールを指示する操作情報を取得すると、該操作情報に基づいてスクロール方向とスクロールの速さとを決定し、
    前記他の装置の画面に表示させている画像を前記スクロール方向へ前記速さで所定時間スクロールさせるときに、前記他の装置の画面に所定の表示時間間隔で順次表示させる複数の画像から、動画を生成し、
    生成した前記動画を前記他の装置に送信
    前記動画の生成の際に、前記スクロール方向、前記速さ、および前記他の装置の画像表示領域のサイズに基づいて、前記表示時間間隔を決定する、
    ことを特徴とする画像送信方法。
  2. 前記複数の画像の更新頻度を算出し、
    前記更新頻度が閾値以上である場合に、送信する画像の形式を動画形式と決定し、前記更新頻度が当該閾値よりも小さい場合に送信する画像の形式を静止画形式と決定し、
    送信する画像の形式が動画形式に決定された場合、前記動画を生成し、
    送信する画像の形式が動画形式に決定された場合、生成した前記動画を前記他の装置に送信し、送信する画像の形式が静止画形式に決定された場合、前記複数の画像を前記他の装置に送信する、
    ことを特徴とする請求項1記載の画像送信方法。
  3. 前記スクロール方向、前記速さ、および前記他の装置の画像表示領域のサイズに基づいて、前記他の装置の画面に表示させる画像の画質を決定する、
    ことを特徴とする請求項1または2に記載の画像送信方法。
  4. 前記操作情報には、前記他の装置の加速度を示す情報が含まれており、該加速度の向きを前記スクロール方向に変換し、該加速度の大きさを前記速さに変換する、
    ことを特徴とする請求項1乃至のいずれかに記載の画像送信方法。
  5. 前記操作情報を受信すると、前記他の装置の利用者の識別情報に対応づけて、前記加速度を前記スクロール方向および前記速さに変換するための変換ルールを記憶する記憶装置を参照して、前記加速度を前記スクロール方向および前記速さに変換する、
    ことを特徴とする請求項記載の画像送信方法。
  6. 他の装置に表示させる画像を前記他の装置に送信する画像送信装置であって、
    前記他の装置から画像のスクロールを指示する操作情報を取得すると、該操作情報に基づいてスクロール方向とスクロールの速さとを決定する決定手段と、
    前記他の装置の画面に表示させている画像を前記スクロール方向へ前記速さで所定時間スクロールさせるときに、前記他の装置の画面に所定の表示時間間隔で順次表示させる複数の画像から、動画を生成する生成手段と、
    生成した前記動画を前記他の装置に送信する送信手段と、
    を有し、
    前記生成手段は、前記スクロール方向、前記速さ、および前記他の装置の画像表示領域のサイズに基づいて、前記表示時間間隔を決定する、
    ことを特徴とする画像送信装置。
  7. 他の装置に表示させる画像を前記他の装置に送信するコンピュータに、
    前記他の装置から画像のスクロールを指示する操作情報を取得すると、該操作情報に基づいてスクロール方向とスクロールの速さとを決定し、
    前記他の装置の画面に表示させている画像を前記スクロール方向へ前記速さで所定時間スクロールさせるときに、前記他の装置の画面に所定の表示時間間隔で順次表示させる複数の画像から、動画を生成し、
    生成した前記動画を前記他の装置に送信
    前記動画の生成の際に、前記スクロール方向、前記速さ、および前記他の装置の画像表示領域のサイズに基づいて、前記表示時間間隔を決定する、
    処理を実行させることを特徴とする画像送信プログラム。

JP2010267996A 2010-12-01 2010-12-01 画像送信方法、画像送信装置および画像送信プログラム Expired - Fee Related JP5789965B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010267996A JP5789965B2 (ja) 2010-12-01 2010-12-01 画像送信方法、画像送信装置および画像送信プログラム
US13/287,186 US8797365B2 (en) 2010-12-01 2011-11-02 Image transmission method, device, and computer-readable storage medium storing image transmission program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010267996A JP5789965B2 (ja) 2010-12-01 2010-12-01 画像送信方法、画像送信装置および画像送信プログラム

Publications (2)

Publication Number Publication Date
JP2012119945A JP2012119945A (ja) 2012-06-21
JP5789965B2 true JP5789965B2 (ja) 2015-10-07

Family

ID=46161831

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010267996A Expired - Fee Related JP5789965B2 (ja) 2010-12-01 2010-12-01 画像送信方法、画像送信装置および画像送信プログラム

Country Status (2)

Country Link
US (1) US8797365B2 (ja)
JP (1) JP5789965B2 (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8564544B2 (en) 2006-09-06 2013-10-22 Apple Inc. Touch screen device, method, and graphical user interface for customizing display of content category icons
US20120327009A1 (en) * 2009-06-07 2012-12-27 Apple Inc. Devices, methods, and graphical user interfaces for accessibility using a touch-sensitive surface
US8681106B2 (en) 2009-06-07 2014-03-25 Apple Inc. Devices, methods, and graphical user interfaces for accessibility using a touch-sensitive surface
US8983785B2 (en) 2010-08-18 2015-03-17 Snap-On Incorporated System and method for simultaneous display of waveforms generated from input signals received at a data acquisition device
US9117321B2 (en) 2010-08-18 2015-08-25 Snap-On Incorporated Method and apparatus to use remote and local control modes to acquire and visually present data
US8754779B2 (en) * 2010-08-18 2014-06-17 Snap-On Incorporated System and method for displaying input data on a remote display device
US8560168B2 (en) 2010-08-18 2013-10-15 Snap-On Incorporated System and method for extending communication range and reducing power consumption of vehicle diagnostic equipment
US8463953B2 (en) 2010-08-18 2013-06-11 Snap-On Incorporated System and method for integrating devices for servicing a device-under-service
US9058101B2 (en) * 2011-08-04 2015-06-16 Panasonic Intellectual Property Corporation Of America Display control device and display control method
JP5423772B2 (ja) * 2011-11-21 2014-02-19 コニカミノルタ株式会社 表示システム、表示システムの制御プログラム、および表示装置
US8881269B2 (en) 2012-03-31 2014-11-04 Apple Inc. Device, method, and graphical user interface for integrating recognition of handwriting gestures with a screen reader
US10095659B2 (en) 2012-08-03 2018-10-09 Fluke Corporation Handheld devices, systems, and methods for measuring parameters
US10175873B2 (en) * 2013-01-21 2019-01-08 Salesforce.Com, Inc. System and method for retrieving data based on scrolling velocity
US10337962B2 (en) * 2013-03-15 2019-07-02 Fluke Corporation Visible audiovisual annotation of infrared images using a separate wireless mobile device
US9519985B2 (en) * 2013-08-20 2016-12-13 TreSensa Inc. Generating mobile-friendly animations
US9933864B1 (en) * 2013-08-29 2018-04-03 Amazon Technologies, Inc. Steady content display
JP6264814B2 (ja) * 2013-09-30 2018-01-24 ブラザー工業株式会社 操作支援プログラム、通信端末、および処理装置
US9678596B2 (en) * 2013-09-30 2017-06-13 Brother Kogyo Kabushiki Kaisha Non-transitory storage medium storing instructions executable by communication terminal, communication terminal, and processing apparatus
US9971473B2 (en) 2013-10-04 2018-05-15 Panasonic Intellectual Property Corporation Of America Electronic device
JP5739592B1 (ja) * 2013-10-04 2015-06-24 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 電子機器
JP6040143B2 (ja) * 2013-12-16 2016-12-07 日本電信電話株式会社 表示制御装置、表示制御方法、および表示制御用プログラム
US9766270B2 (en) 2013-12-30 2017-09-19 Fluke Corporation Wireless test measurement
JP5982436B2 (ja) * 2014-07-31 2016-08-31 日本電信電話株式会社 画面転送サーバ装置、および画面転送方法
JP6335758B2 (ja) * 2014-10-31 2018-05-30 日本電信電話株式会社 サーバ、端末及び画面表示方法
US10410398B2 (en) * 2015-02-20 2019-09-10 Qualcomm Incorporated Systems and methods for reducing memory bandwidth using low quality tiles
JP6641901B2 (ja) * 2015-11-05 2020-02-05 コニカミノルタ株式会社 画像処理装置、遠隔制御方法、および遠隔制御プログラム
US10283078B2 (en) * 2016-01-20 2019-05-07 Mediatek Inc. Adaptive display partial update methods and apparatus thereof for power saving in pixel processing
JP6159492B1 (ja) * 2016-03-24 2017-07-05 楽天株式会社 情報処理システム、情報処理方法、及び情報処理プログラム
JP7255273B2 (ja) * 2019-03-25 2023-04-11 富士フイルムビジネスイノベーション株式会社 画像処理装置及び画像処理プログラム
CN111427528B (zh) * 2020-03-20 2023-07-25 北京字节跳动网络技术有限公司 显示方法、装置和电子设备

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05241562A (ja) 1992-02-26 1993-09-21 Japan Radio Co Ltd 図形表示装置
JPH07280577A (ja) 1994-04-05 1995-10-27 Sumitomo Electric Ind Ltd ナビゲーション装置における地図スクロール方法
US7289244B2 (en) * 2000-02-02 2007-10-30 Raja Singh Tuli Portable high speed internet access device
GB0303888D0 (en) * 2003-02-19 2003-03-26 Sec Dep Acting Through Ordnanc Image streaming
US7685257B2 (en) * 2003-11-10 2010-03-23 Sun Microsystems, Inc. Portable thin client for the enterprise workspace
JP2007036339A (ja) 2005-07-22 2007-02-08 Canon Inc 画像配信システム
US20070132789A1 (en) * 2005-12-08 2007-06-14 Bas Ording List scrolling in response to moving contact over list of index symbols
JP4775069B2 (ja) * 2006-03-29 2011-09-21 カシオ計算機株式会社 コンピュータシステムにおけるサーバ装置及びサーバ制御プログラム
JP2008027185A (ja) * 2006-07-21 2008-02-07 Hitachi Ltd データアクセス監視方法
KR101542274B1 (ko) * 2007-10-16 2015-08-06 힐크레스트 래보래토리스, 인크. 씬 클라이언트 상에서 동작하는 사용자 인터페이스의 빠르고 부드러운 스크롤링
US8456380B2 (en) * 2008-05-15 2013-06-04 International Business Machines Corporation Processing computer graphics generated by a remote computer for streaming to a client computer

Also Published As

Publication number Publication date
JP2012119945A (ja) 2012-06-21
US20120139952A1 (en) 2012-06-07
US8797365B2 (en) 2014-08-05

Similar Documents

Publication Publication Date Title
JP5789965B2 (ja) 画像送信方法、画像送信装置および画像送信プログラム
US10379698B2 (en) Image display device and method of operating the same
US10747416B2 (en) User terminal device and method for displaying thereof
US10019224B2 (en) Electronic device and method of operating the same
US20210405838A1 (en) Image display device and operating method for enlarging an image displayed in a region of a display and displaying the enlarged image variously
US20150067521A1 (en) Method and apparatus for presenting content using electronic devices
US11500509B2 (en) Image display apparatus and image display method
US10732792B2 (en) Image display apparatus and method for changing properties of a highlighted item and surrounding items
CN110851044B (zh) 用于显示的方法及其电子装置
JP5899897B2 (ja) 情報処理装置、情報処理方法及びプログラム
EP3024220A2 (en) Display apparatus and display method
US9411488B2 (en) Display apparatus and method for controlling display apparatus thereof
US20140333422A1 (en) Display apparatus and method of providing a user interface thereof
KR20160084238A (ko) 영상 표시 장치 및 영상 표시 방법
WO2015014138A1 (zh) 一种显示框显示的方法、装置和设备
US20150145749A1 (en) Image processing apparatus and image processing method
US20140146086A1 (en) Image output apparatus, image output method, and program
KR20180020418A (ko) 디스플레이 장치 및 그 컨텐츠 디스플레이 방법
JP5401877B2 (ja) 情報処理装置、情報処理システム、省電力方法及びプログラム
CN111445427B (zh) 视频图像处理方法以及显示设备
JP6597041B2 (ja) サーバー装置及び情報処理システム
CN114051141A (zh) 一种基于历史叠加的匀速矢量估计方法及显示设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130904

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140409

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140507

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140702

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150203

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150422

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20150430

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: 20150707

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150720

R150 Certificate of patent or registration of utility model

Ref document number: 5789965

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees