IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特許7234776受信データ表示プログラム、受信データ表示方法、及び電子機器
<>
  • 特許-受信データ表示プログラム、受信データ表示方法、及び電子機器 図1
  • 特許-受信データ表示プログラム、受信データ表示方法、及び電子機器 図2
  • 特許-受信データ表示プログラム、受信データ表示方法、及び電子機器 図3
  • 特許-受信データ表示プログラム、受信データ表示方法、及び電子機器 図4
  • 特許-受信データ表示プログラム、受信データ表示方法、及び電子機器 図5
  • 特許-受信データ表示プログラム、受信データ表示方法、及び電子機器 図6
  • 特許-受信データ表示プログラム、受信データ表示方法、及び電子機器 図7
  • 特許-受信データ表示プログラム、受信データ表示方法、及び電子機器 図8
  • 特許-受信データ表示プログラム、受信データ表示方法、及び電子機器 図9
  • 特許-受信データ表示プログラム、受信データ表示方法、及び電子機器 図10
  • 特許-受信データ表示プログラム、受信データ表示方法、及び電子機器 図11
  • 特許-受信データ表示プログラム、受信データ表示方法、及び電子機器 図12
  • 特許-受信データ表示プログラム、受信データ表示方法、及び電子機器 図13
  • 特許-受信データ表示プログラム、受信データ表示方法、及び電子機器 図14
  • 特許-受信データ表示プログラム、受信データ表示方法、及び電子機器 図15
  • 特許-受信データ表示プログラム、受信データ表示方法、及び電子機器 図16
  • 特許-受信データ表示プログラム、受信データ表示方法、及び電子機器 図17
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-02-28
(45)【発行日】2023-03-08
(54)【発明の名称】受信データ表示プログラム、受信データ表示方法、及び電子機器
(51)【国際特許分類】
   H04N 21/44 20110101AFI20230301BHJP
   G06F 3/14 20060101ALI20230301BHJP
   H04N 21/442 20110101ALI20230301BHJP
【FI】
H04N21/44
G06F3/14 400
H04N21/442
【請求項の数】 6
(21)【出願番号】P 2019085972
(22)【出願日】2019-04-26
(65)【公開番号】P2020182187
(43)【公開日】2020-11-05
【審査請求日】2022-01-11
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】加藤 嘉之
(72)【発明者】
【氏名】古本 幸彦
(72)【発明者】
【氏名】熊谷 一徳
【審査官】富樫 明
(56)【参考文献】
【文献】特開2016-018260(JP,A)
【文献】特開2000-253368(JP,A)
【文献】特開2006-013818(JP,A)
【文献】特開2017-228241(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 21/00-21/858
G06F 3/14
(57)【特許請求の範囲】
【請求項1】
圧縮とネットワーク転送と解凍に要する時間の和の過去の平均値である平均処理時間に一定時間を加算して、表示目標時間を求め、
サーバがデータ本体を圧縮する前の第1時刻を含むデータを受信した後、該データ本体の解凍処理を終えた第2時刻を取得し、
前記第2時刻から前記第1時刻を減算することで、前記データ本体の、圧縮とネットワーク転送と解凍とに要した時間の和を示した今回処理時間を取得し、
前記表示目標時間から前記今回処理時間を減算することで、調整時間を取得し、
前記調整時間分、遅延させて、前記データ本体を表示し、
前記今回処理時間を含めて過去の平均処理時間を更新する、
処理をコンピュータに行わせる受信データ表示プログラム。
【請求項2】
前記コンピュータに、
受信した複数のデータ間において、前記第1時刻の間隔のうち最小間隔を取得し、該最小間隔を用いて、前記平均処理時間からの変動分を含む前記一定時間を算出する
処理をコンピュータに行わせる請求項1記載の受信データ表示プログラム。
【請求項3】
前記コンピュータに、
前記最小間隔に与えられた係数を乗算して得られた値を与えられた自然数で除算させて、前記一定時間を得る
ことを特徴とする請求項2記載の受信データ表示プログラム。
【請求項4】
前記データ本体は、前記サーバで表示された画面の画像を符号化した画像データであることを特徴とする請求項1乃至3のいずれか一項記載の受信データ表示プログラム。
【請求項5】
圧縮とネットワーク転送と解凍に要する時間の和の過去の平均値である平均処理時間に一定時間を加算して、表示目標時間を求め、
サーバがデータ本体を圧縮する前の第1時刻を含むデータを受信した後、該データ本体の解凍処理を終えた第2時刻を取得し、
前記第2時刻から前記第1時刻を減算することで、前記データ本体の、圧縮とネットワーク転送と解凍とに要した時間の和を示した今回処理時間を取得し、
前記表示目標時間から前記今回処理時間を減算することで、調整時間を取得し、
前記調整時間分、遅延させて、前記データ本体を表示し、
前記今回処理時間を含めて過去の平均処理時間を更新する、
処理をコンピュータが行う受信データ表示方法。
【請求項6】
圧縮とネットワーク転送と解凍に要する時間の和の過去の平均値である平均処理時間に一定時間を加算して、表示目標時間を求め、サーバがデータ本体を圧縮する前の第1時刻を含むデータを受信した後、該データ本体の解凍処理を終えた第2時刻を取得し、前記第2時刻から前記第1時刻を減算することで、前記データ本体の、圧縮とネットワーク転送と解凍とに要した時間の和を示した今回処理時間を取得し、前記表示目標時間から前記今回処理時間を減算することで、調整時間を取得する調整時間取得部と、
前記調整時間分、遅延させて、前記データ本体を表示する表示制御部と、
前記今回処理時間を含めて過去の平均処理時間を更新する更新部と、
を有する電子機器。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、受信データ表示プログラム、受信データ表示方法、及び電子機器に関する。
【背景技術】
【0002】
従来より、サーバ上で端末のデスクトップを仮想化する仮想デスクトップが知られている。この仮想デスクトップでは、サーバ上に端末を仮想化した環境を構築して端末からリモートでの操作を受け付け、サーバが所定のフレームレートでデスクトップ画面の画像を端末に送信して端末に画像を表示させる。
【0003】
仮想デスクトップ環境(VDI:Virtual Desktop Infrastructure)では、サーバがデスクトップの画像を全て静止画の画像データで送信すると、ネットワークを伝送される画像データの量が多くなり、端末での操作性が悪化する場合がある。例えば、サーバと端末間のネットワークの通信帯域が狭い場合に、伝送されるデータ量が多くなると、端末での画像の表示に遅延が発生して操作性が悪化する場合がある。
【0004】
そこで、伝送されるデータ量を減らす技術として、送信するフレームの画像を複数の領域に分割して領域ごとにフレームの画像間の変更の頻度を判別し、変更の頻度がしきい値を超えた領域に対して動画の圧縮処理を行って送信する技術が知られている。また、変更の確認頻度を画像を送信するタイミングよりも増やすことで、従来よりも速やかにユーザに動画であると判断させることができ、少ない遅延で端末に画像を表示させる技術も提供されている。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2012-14533号公報
【文献】特開2015-191630号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
仮想デスクトップ環境では、データ量、通信速度、処理速度等の様々な要因が、端末に表示させる画像の品質に影響を与える。上述した技術は、データ量に対応した技術であり、通信速度、処理速度等の他の要因に対しては十分ではない。
【0007】
そのため、ネットワーク回線の伝送遅延が生じる状況下において、サーバから提供される3次元コンピュータグラフィックス(3D-CG)モデルのアニメーションの表示品質を一定に維持できないといった問題がある。
【0008】
したがって、1つの側面では、仮想デスクトップ環境におけるネットワーク回線の伝送遅延が生じる状況下において、アニメーションの表示品質を向上させることを目的とする。
【課題を解決するための手段】
【0009】
一態様によれば、圧縮とネットワーク転送と解凍に要する時間の和の過去の平均値である平均処理時間に一定時間を加算して、表示目標時間を求め、サーバがデータ本体を圧縮する前の第1時刻を含むデータを受信した後、該データ本体の解凍処理を終えた第2時刻を取得し、前記第2時刻から前記第1時刻を減算することで、前記データ本体の、圧縮とネットワーク転送と解凍とに要した時間の和を示した今回処理時間を取得し、前記表示目標時間から前記今回処理時間を減算することで、調整時間を取得し、前記調整時間分、遅延させて、前記データ本体を表示し、前記今回処理時間を含めて過去の平均処理時間を更新する、処理をコンピュータに行わせる受信データ表示プログラムが提供される。
【発明の効果】
【0010】
仮想デスクトップ環境におけるネットワーク回線の伝送遅延が生じる状況下において、アニメーションの表示品質を向上させることができる。
【図面の簡単な説明】
【0011】
図1】VDIシステムのネットワーク構成例を示す図である。
図2】サーバのハードウェア構成例を示す図である。
図3】端末のハードウェア構成例を示す図である。
図4】VDIシステムでの処理シーケンスを示す図である。
図5図4に示す処理シーケンスにおけるサーバ及び端末の処理タイミングを説明するための図である。
図6】アニメーションの表示品質の劣化を説明するための図である。
図7】画像が端末に表示されるまでの総処理時間の例を示す図である。
図8】一連の複数の画像を適切な間隔で表示する方法を説明するための図である。
図9】サーバの機能構成例を示す図である。
図10】端末の機能構成例を示す図である。
図11】フレームデータのデータ構造例を示す図である。
図12】サーバで行われるサーバ処理を説明するためのフローチャート図である。
図13】処理時間管理テーブルのデータ構成例及びテーブル管理方法例を示す図である。
図14】端末で行われる端末処理を説明するためのフローチャート図である。
図15図14のステップS604における最大調整時間取得処理を説明するためフローチャート図である。
図16】最大調整時間の設定画面の例を示す図である。
図17図14のステップS606における目標処理時間算出処理を説明するためフローチャート図である。
【発明を実施するための形態】
【0012】
以下、本発明の実施の形態を図面に基づいて説明する。仮想デスクトップ環境(VDI:Virtual Desktop Infrastructure)におけるシステムは、例えば、図1に示すように構成される。図1は、VDIシステムのネットワーク構成例を示す図である。
【0013】
図1において、VDIシステム1000では、サーバ100と、1又は複数の端末300とを有し、各端末300は、サーバ100とネットワーク2を介して接続可能な仮想デスクトップである。
【0014】
ネットワーク2を介した動画の表示(再生)には、サーバ100が、端末300の要求に応じて、予め撮影され記憶された動画コンテンツを提供し、動画コンテンツが端末300にて再生されるストリーミング再生が存在する。端末300では、端末300にフレームデータを蓄積し再生可能な状態まで待機して動画を表示する。
【0015】
また、サーバ100が映像をリアルタイムで提供し、端末300にて映像が再生されるライブストリーミング再生が存在する。この場合も、端末300において、フレームデータを蓄積し再生可能な状態まで待機して動画を表示する。
【0016】
上述した動画の表示とは異なり、本実施例におけるVDIシステム1000は、端末300のユーザがインタラクティブに操作するシステムであり、通常のパーソナルコンピュータ端末を使用する場合と同様のレスポンス(低レイテンシ)が求められるシステムを対象とする。そのため、端末300はフレームデータを蓄積することなく、受信に応じて速やかに表示する。サーバ100と端末300との間で高速通信及び高速処理が望まれている。
【0017】
VDIシステム1000において、端末300は、ユーザの操作を受け付けると、当該操作をデータ化した操作データ4aをサーバ100に転送する。
【0018】
サーバ100では、アプリケーション120によって、操作データ4aに従ってユーザの実際の操作を再現し、操作に対応する処理を実行した後、サーバ100の画面に表示した画像4gを端末300に送信する。端末300では、サーバ100から画像4gを受信し表示する。複数の画像4g(フレーム)が連続して端末300で表示されることにより動画が再生される。
【0019】
上述したようなVDIシステム1000では、通常のコンピュータの操作に比べて、操作データ4a及び画面の画像4gがネットワーク2を介して送受信される点が異なっている。
【0020】
先ず、サーバ100及び端末300のハードウェア構成例について、図2及び図3で説明し、本実施例におけるサーバ100と端末300との間の処理シーケンス例について説明する。
【0021】
図2は、サーバのハードウェア構成例を示す図である。図2において、サーバ100は、情報処理装置であって、CPU111と、主記憶装置112と、補助記憶装置113と、入力装置114と、表示装置115と、通信I/F117と、ドライブ装置118とを有し、バスBに接続される。主記憶装置112と、補助記憶装置113、及びサーバ100がアクセス可能な外部記憶装置を含めて、記憶部130という。
【0022】
CPU111は、サーバ100を制御するプロセッサに相当し、記憶部130に格納されたプログラムを実行することで、以下に説明する本実施例に係る様々な処理を実現する。入力装置114は、ユーザによって操作され、操作に応じてデータを入力し、表示装置115は、ユーザーインタフェースとして様々な画面を表示する。通信I/F117は、外部装置との通信を制御する。
【0023】
記憶媒体119(例えば、CD-ROM(Compact Disc Read-Only Memory)等)に記憶された本実施例におけるサーバ100側の処理を実現するプログラムは、ドライブ装置118を介して記憶部130にインストールされ、CPU111によって実行可能となる。
【0024】
尚、本実施例におけるサーバ100側のプログラムを格納する記憶媒体119はCD-ROMに限定されず、コンピュータが読み取り可能な、構造(structure)を有する1つ以上の非一時的(non-transitory)な、有形(tangible)な媒体であればよい。コンピュータ読取可能な記憶媒体として、CD-ROMの他に、DVD(Digital Versatile Disk)ディスク、USBメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリであっても良い。
【0025】
図3は、端末のハードウェア構成例を示す図である。図3において、端末300は、情報処理装置であって、CPU311と、主記憶装置312と、補助記憶装置313と、入力装置314と、表示装置315と、通信I/F317と、ドライブ装置318とを有し、バスBに接続される。主記憶装置312と、補助記憶装置313、及び端末300がアクセス可能な外部記憶装置を含めて、記憶部330という。
【0026】
CPU311は、端末300を制御するプロセッサに相当し、記憶部330に格納されたプログラムを実行することで、以下に説明する本実施例に係る様々な処理を実現する。入力装置314は、ユーザによって操作され、操作に応じてデータを入力し、表示装置315は、ユーザーインタフェースとして様々な画面を表示する。通信I/F317は、外部装置との通信を制御する。
【0027】
記憶媒体319(例えば、CD-ROM(Compact Disc Read-Only Memory)等)に記憶された本実施例に係る受信データ表示プログラムは、ドライブ装置318を介して記憶部330にインストールされ、CPU311によって実行可能となる。
【0028】
尚、本実施例に係るプログラムを格納する記憶媒体319はCD-ROMに限定されず、コンピュータが読み取り可能な、構造(structure)を有する1つ以上の非一時的(non-transitory)な、有形(tangible)な媒体であればよい。コンピュータ読取可能な記憶媒体として、CD-ROMの他に、DVD(Digital Versatile Disk)ディスク、USBメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリであっても良い。
【0029】
端末300は、タブレット端末であってもよく、その場合には、入力装置314と表示装置315とが、それらが一体化されたタッチパネルに置き換えられる。また、記憶媒体319は、SD(Secure Digital)メモリカード等であり、ドライブ装置318は、ドライブ装置318にセットされた記憶媒体319と端末300とのインターフェースを行う。
【0030】
VDIシステム1000では、アニメーション表示機能を有するものがある。一例として、3D-CGモデルデータを表示用又は編集用のアプリケーション120で表示する場合に、3D-CGモデルデータを自動で回転させたり、予め設定した通りに3D-CGモデルデータの表示倍率や表示箇所を連続的に変化させる。VDIシステム1000は、オフィス業務だけでなく、CAD(Computer-Aided Design)を使用した設計業務やデザイン等でも利用されている。
【0031】
VDIシステム1000で行われる、アニメーション表示を含むインタラクティブな処理例について説明する。以下の説明において、アプリケーション120が電子機器の設計支援を行う3次元CADの場合で説明するが、この例に限定されない。
【0032】
図4は、VDIシステムでの処理シーケンスを示す図である。図4において、端末300がサーバ100に接続された状態において、ユーザが「アニメーション開始」を選択する操作を端末300にて行うと(ステップS11)、アニメーション表示を指示する操作データ4aがサーバ100へ送信される(ステップS12)。
【0033】
操作データ4aの受信に応じて、サーバ100が端末300に対してアプリケーション120にアニメーション表示が指示され、画面にアニメーション表示が開始される(ステップS13)。そして、アプリケーション120によって表示された画面の画像4gが次々と端末300に送信される(ステップS14)。この例では、3次元で電子機器のソリッド表示が行われたとする。
【0034】
端末300にて、ユーザは、ソリッド表示により電子機器の外観を確認した後、ワイヤフレーム表示に変更する操作を行うと(ステップS15)、当該操作を示す操作データ4aがサーバ100へ送信される(ステップS16)。
【0035】
サーバ100では、操作データ4aの受信に応じて、アプリケーション120は、ソリッド表示からワイヤフレーム表示へと変更する(ステップS17)。表示方法が変更され、画面に表示された画像4gが次々に端末300へと送信される(ステップS18)。その結果、端末300では、3次元のワイヤフレーム表示で、電子機器の内部の構造が表示される。
【0036】
上述したように、端末300での操作に応じて、インタラクティブにリアルタイムに表示を変更して画像4gを配信する処理等が繰り返される。
【0037】
その後、ユーザが「アニメーション終了」を選択すると(ステップS19)、端末300からアニメーション終了を示す操作データ4aがサーバ100へと送信される(ステップS20)。サーバ100は、操作データ4aに従って、アプリケーション120はアニメーション表示を終了する(ステップS21)。
【0038】
図5は、図4に示す処理シーケンスにおけるサーバ及び端末の処理タイミングを説明するための図である。図5において、端末300にて、ユーザが、入力装置314を操作してアニメーション表示を選択する操作を行うと(ステップS110)、端末300は、操作を示す操作データ4aを生成して(ステップS112)、サーバ100へ送信する(ステップS120)。
【0039】
サーバ100は、操作データ4aを操作命令4bに変換して(ステップS121)、アプリケーション120に操作命令4bを通知する(ステップS122)。操作命令4bの通知に応じて、アプリケーション120は、アニメーションを開始する(ステップS130)。
【0040】
アプリケーション120は、サーバ100においてアニメーションの処理と表示を行う(ステップS131)。サーバ100は、アニメーション表示された画面の画像4gを取得し符号化してフレームデータ4fを生成する(ステップS132)。生成されたフレームデータ4fは、端末300へ送信され(ステップS140)、端末300にて、フレームデータ4fから画像4gが復号されて(ステップS141)、画像4gは表示装置315に表示される(ステップS142)。
【0041】
ステップS131からステップS142が繰り返し行われることで、複数の画像4gが連続して端末300に表示されることにより、アニメーション表示が表示装置315で行われる。
【0042】
端末300にて、ユーザにより入力装置314を用いて表示方法を変更する操作が行われると(ステップS150)、端末300は、操作データ4aを生成し(ステップS151)、操作データ4aをサーバ100へ送信する(ステップS160)。
【0043】
サーバ100は、操作データ4aを操作命令4bに変換して(ステップS161)、アプリケーション120に操作命令4bを通知する(ステップS162)。操作命令4bの通知に応じて、アプリケーション120は、操作命令4bで指定された表示方法へと変更する(ステップS170)。
【0044】
アプリケーション120は、変更した表示方法でアニメーションの処理と表示を行う(ステップS171)。サーバ100は、アニメーション表示された画面の画像4gを取得し符号化してフレームデータ4fを生成する(ステップS172)。生成されたフレームデータ4fは、端末300へ送信され(ステップS180)、端末300にて、フレームデータ4fから画像4gが復号されて(ステップS181)、画像4gは表示装置315に表示される(ステップS182)。
【0045】
ステップS171からステップS182が繰り返し行われることで、複数の画像4gが連続して端末300に表示されることにより、変更した表示方法によるアニメーション表示が表示装置315で行われる。
【0046】
その後、端末300にて、ユーザが、入力装置314を操作してアニメーション終了を選択する操作を行うと(ステップS190)、端末300は、操作を示す操作データ4aを生成して(ステップS191)、サーバ100へ送信する(ステップS200)。
【0047】
サーバ100は、操作データ4aを操作命令4bに変換して(ステップS201)、アプリケーション120に操作命令4bを通知する(ステップS202)。操作命令4bの通知に応じて、アプリケーション120は、アニメーションを終了する(ステップS210)。
【0048】
VDIシステム1000では、サーバ100は、端末300にてアニメーションの動作中に行われるユーザの操作に応じて、当該操作に対応するアニメーションにリアルタイムに変更する。端末300は、ある表示方法によるアニメーションの全フレームデータ4fを予め受信し記憶部330に蓄積することを行わず、新たなフレームデータ4fの受信に応じて表示装置315への出力を行う。
【0049】
サーバ100で表示された画像4gが端末300で表示されるまでには、少なくとも、
・サーバ100における処理時間(以下、「サーバ処理時間」という)
・ネットワーク伝送時間
・端末300における処理時間(以下、「端末処理時間」という)
等の時間を要する。これらの処理時間は時間と共に変化し、処理時間の変動が端末300におけるアニメーションの表示品質に影響を与える場合がある。
【0050】
図6は、アニメーションの表示品質の劣化を説明するための図である。図6において、サーバ100では、アプリケーション120が表示した画像4gのうち一定間隔で画像4gを取得し、フレームデータ4fを生成して送信する。フレームデータ4fの生成に掛かる時間は、CPU負荷、画像4gの内容等によって変化する。また、フレームデータ4fの伝送では、画像4gのデータ量、ネットワーク2の状態によって伝送に掛かる時間が変化する。
【0051】
他方で、端末300では、フレームデータ4fを受信するごとに、受信したフレームデータ4fから画像4gを復号して表示装置315に表示する。サーバ100における処理時間とネットワーク伝送時間とにより、フレームデータ4fの受信間隔は一定ではない。また、端末300での処理時間は、CPU負荷、画像の内容等によって変化する。
【0052】
上述したような様々な処理時間の変化の累積により、画像4gの表示間隔△t、△t、及び△tが乱れ、端末300のユーザが見るアニメーションの動きには不自然さが生じる。図6を例として、表示装置315に表示された4つの画像4gのそれぞれの総処理時間の例について図7で説明する。
【0053】
図7は、画像が端末に表示されるまでの総処理時間の例を示す図である。図7では、4つの画像4gのそれぞれについて、サーバ処理時間7a、ネットワーク伝送時間7b、及び端末処理時間7cを累積した総処理時間7dを示している。
【0054】
総処理時間7dは、1番目の画像4g、2番目の画像4g、そして3番目の画像4gの順に長くなり、4番目の画像4gでは、2番目の画像4gと略同じ程度に回復する。このように総処理時間がばらついて一定でない場合、アニメーションに不自然さが生じる。
【0055】
アプリケーション120を使用して3D-CGモデルデータをアニメーション表示した場合、端末300に表示される複数の画像4gは、一部または全体において総処理時間7dが変化する。
【0056】
これは、VDIシステム1000においては、サーバ100と端末300との間のネットワーク2を使用してフレームデータ4fを伝送する際に、ネットワーク2の利用状況によって端末300にフレームデータ4fが到達する時間にバラツキが生じるからである。さらに、サーバ100での符号化、および端末300での画像4gの復元にかかる時間もわずかではあるが画像4gの内容によって変化する。
【0057】
そのため、各画像間の間隔はサーバ100と端末300間とで異なり、サーバ100で3Dアニメーションを表示させたときに、端末300では、画像4gによる映像は滑らかに変化せず、不均一な変化が生じるため、人間の目には、カクツキを感じたり、動きの緩急によって不自然な印象を与える。
【0058】
発明者等は、これら一連の複数の画像4gを適切な間隔で表示することで、人間(ユーザ)の目には映像の動きが滑らかに変化していると認識させることができることに着目し、端末300にて画像4gの表示タイミングを調整する手法を見出した。
【0059】
図8は、一連の複数の画像を適切な間隔で表示する方法を説明するための図である。図8より、端末300は、過去の総処理時間7dを平均して得た平均処理時間7eに、定めた一定時間7fを加算した時間を、目標処理時間7gとして定める。目標処理時間7mにより、一連の複数の画像4gが一定間隔7fで表示される。
【0060】
本実施例では、目標処理時間7gを満たすように総処理時間7dに加算する調整時間7hを決定して表示時刻を定める。このようにすることで、各画像4gは略同様の時間間隔△Tで表示され、ユーザがアニメーションを見た場合に不自然な変化を感じ難くすることができる。
【0061】
次に、サーバ100及び端末300の機能構成例について説明する。図9は、サーバの機能構成例を示す図である。図9において、サーバ100は、操作データ処理部101と、検出部102と、画像取得部103と、画像圧縮部104と、送信部105と、アプリケーション120とを有する。操作データ処理部101と、検出部102と、画像取得部103と、画像圧縮部104と、送信部105と、アプリケーション120とは、サーバ100にインストールされた受信データ表示プログラムが、サーバ100のCPU111に実行させる処理により実現される。記憶部130には、3D-CGモデルデータ5d、画像4g、フレームデータ4f等が記憶される。
【0062】
操作データ処理部101は、通信I/F317によって、端末300から送信された操作データ4aを受信すると、操作データ4aに従って、ユーザがサーバ100に操作したかのうようにアプリケーション120に対して操作する。
【0063】
検出部102は、アプリケーション120が動作することで表示装置115に表示される画面の表示内容の更新を監視し、表示内容が更新されたことを検出すると、画像取得部103に通知する。また、検出部102は、更新を検出した時刻を示す画面更新検出時刻8c(図11)を記憶部130に記憶する。
【0064】
画像取得部103は、検出部102からの通知に応じて、表示されている画面の画像4gを取得して、記憶部130に記憶する。
【0065】
画像圧縮部104は、画像取得部103が取得した画像4gを符号化して圧縮することで画像データ4g-2(図11)を取得し、取得した画像データ4g-2を含むフレームデータ4fに記憶部130に記憶された画面更新検出時刻8cを設定する。生成されたフレームデータ4fは記憶部130に記憶される。送信部105は、記憶部130に記憶されたフレームデータ4fを端末300へ送信する。
【0066】
アプリケーション120は、3D-CGモデルを三次元空間に表示し、アニメーション表示を行うアプリケーションである。3D-CGモデルの一例として、車、電子機器等の製造物、生物、流体等である。アプリケーション120は、ユーザの操作に応じて、アニメーション表示をリアルタイムに切り替えて、ユーザとインタラクティブに処理を行う。
【0067】
本実施例では、アプリケーション120は、操作データ4aに従って処理を切り替えて、表示する内容を処理結果に応じて変更する。操作データ4aでは、アニメーションの開始、アニメーションの終了、表示方法の変更、ズームイン、ズームアウト、回転等の端末300で行われたユーザの操作が指示される。
【0068】
図10は、端末の機能構成例を示す図である。図10より、端末300は、操作データ作成部301と、受信部302と、画像復号部303と、調整時間算出部304と、表示制御部305とを有する。操作データ作成部301と、受信部302と、画像復号部303と、調整時間算出部304と、表示制御部305とは、端末300にインストールされたプログラムが、端末300のCPU311に実行させる処理により実現される。記憶部330には、フレームデータ4f、画像4g、処理時間管理テーブル321、調整時間設定値323等が記憶される。
【0069】
操作データ作成部301は、ユーザが入力装置314を用いて端末300に対して操作した内容を示す操作データを作成し、通信I/F317からサーバ100へと送信する。
【0070】
受信部302は、通信I/F317によって、サーバ100が送信したフレームデータ4fを受信すると記憶部330に記憶する。
【0071】
画像復号部303は、記憶部130に記憶されたフレームデータ4fから画像4gを復号し、得られた画像4gを記憶部330に記憶する。また、画像復号部303は、フレームデータ4fから画面更新検出時刻8c(図11)を取得し、また、現在時刻を端末処理終了時刻8d(図13)として取得する。画像復号部303は、取得した画面更新検出時刻8cと端末処理終了時刻8dとを示すデータを処理時間管理テーブル321に蓄積する。
【0072】
調整時間算出部304は、処理時間管理テーブル321を用いて過去の平均処理時間7eを算出し、平均処理時間7eに一定時間7fを加算して目標処理時間7gを取得し、取得した目標処理時間7gと、処理中の画像4gの総処理時間7dとから調整時間7hを得る。得られた調整時間7hは、調整時間設定値323として記憶部330に記憶される。
【0073】
過去の平均処理時間7eは、処理時間管理テーブル321で管理される直近の一定期間に含まれる端末処理終了時刻8dのデータを対象として求められる。この際に、調整時間算出部304は、直近の一定期間より過去のデータが存在する場合は、該当するデータを削除する管理を行うことが好ましい。
【0074】
表示制御部305は、調整時間設定値323から調整時間7hを取得し、現時刻から調整時間7hが経過したときに、記憶部330から画像4gを取得して表示装置315に表示する。
【0075】
図11は、フレームデータのデータ構造例を示す図である。図11より、フレームデータ4fは、画像サイズ8a、データサイズ8b、画像データ4g-2、画面更新検出時刻8c等を有する。
【0076】
画像サイズ8aは、画像4gの幅と高さを示す。一例として、幅と高さは、ピクセル数で指定される。データサイズ8bは、画像4gを符号化することで得られる画像データ4g-2のデータ長を示す。一例として、データサイズ8bは、バイト数で示される。画像データ4g-2は、画像4gを符号化することで得られるデータである。画面更新検出時刻8bは、サーバ100が設定した時刻であって、検出部102が表示内容の更新を検出した時刻を示す。
【0077】
図12は、サーバで行われるサーバ処理を説明するためのフローチャート図である。図12より、サーバ100では、検出部102が、画面更新を検出すると(ステップS501)、画面更新検出時刻8cを記憶部130に記憶し(ステップS502)、画像取得部103へ画面更新の通知を行う。
【0078】
画面更新の通知を受けると、画像取得部103は、アプリケーション120によって表示された画面の画像4gを取得する(ステップS503)。取得した画像4gは記憶部130に記憶される。また、画像取得部103は、画像4gの取得を画像圧縮部104へ通知する。
【0079】
画像圧縮部104は、画像4gを符号化して画像データ4g-2を取得する(ステップS504)。また、画像圧縮部104は、取得した画像データ4g-2を含むフレームデータ4fを記憶部130に生成し、フレームデータ4fに画面更新検出時刻8cを設定する(ステップS505)。フレームデータ4fの作成時には、画像サイズ8a及びデータサイズ8bもフレームデータ4f内に設定される。フレームデータ4fの生成完了の通知が送信部105に行われる。
【0080】
フレームデータ4fの生成完了の通知を受けると、送信部105は、フレームデータ4fを端末300へ送信する(ステップS506)。フレームデータ4fの送信完了後、アプリケーション120の終了か否かが判定される(ステップS507)。端末300から送信された操作データ4aにより終了が通知されることにより、アプリケーション120が終了する。その場合には(ステップS507のYES)、端末300に対するサーバ処理を終了する。一方、終了していない場合(ステップS507のNO)、ステップS501へと戻り上述同様の処理を繰り返す。
【0081】
次に、端末300で行われる端末処理で使用される処理時間管理テーブル321について説明し、端末処理について詳述する。
【0082】
図13は、処理時間管理テーブルのデータ構成例及びテーブル管理方法例を示す図である。図13より、処理時間管理テーブル321は、時系列にフレームのデータを記憶し管理するテーブルであり、フレームごと(受信したフレームデータ4fごと)に画面更新検出時刻8c、端末処理終了時刻8d等が記憶されている。
【0083】
画像復号部303が受信したフレームデータ4fに含まれる画像データ4g-2から画像4gを復号ときに、現フレームのデータが最も直近のデータとして処理時間管理テーブル321に追加される。画像4gごとのフレームのデータは、フレームデータ4fから得られた画面更新時刻8cと、画像4gを得たときの端末処理終了時刻8dとを示す。
【0084】
処理時間管理テーブル321で管理されるデータのうち、現在時刻から端末処理終了時刻を減算した時間長が所定時間以上となるデータを削除する。直近から所定時間内のデータのみを保持することで、処理時間の管理のために処理時間管理テーブル321の領域が無駄に消費されるのを防止することができる。
【0085】
図14は、端末で行われる端末処理を説明するためのフローチャート図である。図14より、端末300では、受信部302が、フレームデータ4fを受信し、記憶部130にフレームデータ4fを記憶する(ステップS601)。フレームデータ4fを受信したことが画像復号部303に通知される。フレームデータ4fの受信の通知に応じて、画像復号部303は、フレームデータ4f内の画像データ4g-2から画像4gを復号する(ステップS602)。復号完了の通知が調整時間算出部304に行われる。
【0086】
復号完了の通知に応じて、調整時間算出部304によってステップS603~S607(調整時間算出処理)が行われる。調整時間算出部304は、現フレームの総処理時間7dを算出する(ステップS603)。総処理時間7dは、
現フレームの総処理時間
= 端末処理の終了時刻(現在時刻) - 画面更新検出時刻 (式1)
により得られる。
【0087】
調整時間算出部304は、現在時刻を取得し、フレームデータ4fから画面更新検出時刻8cを取得する。そして、調整時間算出部304は、現在時刻から画面更新検出時刻8cを減算して現フレームの総処理時間7dを取得する。得られた総処理時間7dは、図7及び図8で説明したように、サーバ処理時間7a、ネットワーク伝送時間7b、及び端末処理時間7cの合計に相当する。
【0088】
続いて、調整時間算出部304は、最大調整時間取得処理(図15)を行い(ステップS604)、更に、目標処理時間算出処理(図17)を行う(ステップS605)。そして、調整時間算出部304は、ステップS603で得られた総処理時間7dと、ステップS605で得られた目標処理時間7gとから、画像4gに対する調整時間7hを算出する(ステップS606)。算出された調整時間7hを示す調整時間設定値323が記憶部330に記憶される。
【0089】
また、調整時間算出部304は、処理時間管理テーブル321を更新する(ステップS607)。処理時間管理テーブル321の更新は、図13で説明した通りであるため、詳しい説明は省略する。
【0090】
そして、表示制御部305は、調整時間設定値323で示される調整時間7hの経過後、記憶部330に記憶された画像4gを表示装置315に表示する(ステップS609)。その後、端末処理の終了か否かが判断される(ステップS610)。ユーザによる直近の操作が終了であった場合(ステップS610のYES)、この端末処理は終了する。一方、操作が終了でない場合(ステップS610のNO)、端末処理は、ステップS601へと戻り、上述した同様の処理を繰り返す。
【0091】
上述したフローチャートにおいて、ステップS604及びS605の後にステップS603を行ってもよい。また、ステップS607は、ステップS605の終了後かつS610の判断処理の前で行われればよい。
【0092】
図15は、図14のステップS604における最大調整時間取得処理を説明するためフローチャート図である。図15では、ユーザの操作により、サーバ100のアプリケーション120が最大調整時間7mを自動で設定するか否かを選択可能とした図16に示すような設定画面G90を表示し、ユーザにより選択的に設定された値を記憶部330に記憶しておくものとする。設定画面G90の詳細について後述される。
【0093】
図15より、調整時間算出部304は、最大調整時間7mは自動設定か否かを判定する(ステップS641)。調整時間算出部304は、記憶部330に記憶された指定値7kを参照して、自動設定か否かを判定する。一例として、指定値7kには、自動設定の有無(フラグ)と、値とが設定されている。自動設定有りの(フラグが1を示す)場合、値は、最大調整時間7mを求めるための係数を示す。自動設定無しの(フラグが0を示す)場合、値は、最大調整時間7mそのものを示す。
【0094】
自動設定であると判断した場合(ステップS641のYES)、調整時間算出部304は、処理時間管理テーブル321を用いて、画面更新の最小間隔を求める(ステップS642)。処理時間管理テーブル321から1レコードずつずらしながら連続する2つのフレームの画面更新検出時刻8cの差を求め、求めた差のうち最小となる間隔を選択する。
【0095】
次に、調整時間算出部304は、ステップS642で得られた最小間隔に指定値7kで示される係数を乗算することで最大調整時間7mを求めて記憶部330に出力し(ステップS643)、この最大調整時間取得処理を終了する。
【0096】
一方、自動設定ではないと判断した場合(ステップS641のNO)、調整時間算出部304は、指定値7kを最大調整時間7mとして記憶部330に出力し(ステップS644)、この最大調整時間取得処理を終了する。
【0097】
図16は、最大調整時間の設定画面の例を示す図である。図16に示す設定画面G90は、入力領域90aと、入力領域90bとを有する。
【0098】
入力領域90aは、自動で最大調整時間7mを算出するための係数を指定するための領域である。係数の指定の例としては、0.8~1.2の範囲が好ましい。入力領域90bは、ユーザが最大調整時間7mを指定するための領域である。
【0099】
この設定画面G90の入力領域90a又は入力領域90bのいずれかの入力で自動設定の有無と値とを示す指定値7kが記憶部330に記憶される。アプリケーション120を利用中であれば、ユーザは、設定画面G90を任意のタイミングで表示させてもよい。
【0100】
図17は、図14のステップS606における目標処理時間算出処理を説明するためフローチャート図である。図17では、調整時間算出部304は、処理時間管理テーブル321を参照して、フレームごとに総処理時間7dを算出する(ステップS651)。総処理時間7dは、
総処理時間 = 端末処理終了時刻 - 画面更新検出時刻 (式2)
により求まる。
【0101】
調整時間算出部304は、得られた総処理時間7dを平均して平均処理時間7eを算出する(ステップS652)。また、調整時間算出部304は、記憶部330に記憶された最大調整時間7mに基づいて一定時間7fを決定する(ステップS653)。
【0102】
一定時間7fは、最大調整時間7mを1/n倍することで定められればよい。nは2以上の自然数とし、ユーザによって変更可能としてもよい。デフォルト値として、n=2を用いればよい。
【0103】
次に、調整時間算出部304は、平均処理時間7eに一定時間7fを加算して目標処理時間7gを得て記憶部330に記憶し(ステップS653)、この目標処理時間算出処理を終了する。
【0104】
得られた目標処理時間7gが小さい場合には、サーバ100と端末300との時間差が小さくなるが表示間隔が広くなる局面では、本実施例における時間調整による効果は少ない。他方で、目標処理時間7gが大きい場合には、サーバ100と端末300との時間差が大きくなり、表示間隔が広くなる局面では、本実施例における時間調整による効果は大きい。
【0105】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、主々の変形や変更が可能である。
【0106】
上記実施例において、符号化は圧縮の一例であり、復号は解凍の一例である。端末300にて処理中の画像4gの総処理時間7dは、今回処理時間の一例である。また、調整時間算出部304は、調整時間取得部の一例であり、図14のステップS607は、更新部の一例である。
【0107】
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
(付記1)
圧縮とネットワーク転送と解凍に要する時間の和の過去の平均値である平均処理時間に一定時間を加算して、表示目標時間を求め、
サーバがデータ本体を圧縮する前の第1時刻を含むデータを受信した後、該データ本体の解凍処理を終えた第2時刻を取得し、
前記第2時刻から前記第1時刻を減算することで、前記データ本体の、圧縮とネットワーク転送と解凍とに要した時間の和を示した今回処理時間を取得し、
前記表示目標時間から前記今回処理時間を減算することで、調整時間を取得し、
前記調整時間分、遅延させて、前記データ本体を表示し、
前記今回処理時間を含めて過去の平均処理時間を更新する、
処理をコンピュータに行わせる受信データ表示プログラム。
(付記2)
前記コンピュータに、
受信した複数のデータ間において、前記第1時刻の間隔のうち最小間隔を取得し、該最小間隔を用いて、前記平均処理時間からの変動分を含む前記一定時間を算出する
処理をコンピュータに行わせる付記1記載の受信データ表示プログラム。
(付記3)
前記コンピュータに、
前記最小間隔に与えられた係数を乗算して得られた値を与えられた自然数で除算させて、前記一定時間を得る
ことを特徴とする付記2記載の受信データ表示プログラム。
(付記4)
前記データ本体は、前記サーバで表示された画面の画像を符号化した画像データであることを特徴とする付記1乃至3のいずれか一項記載の受信データ表示プログラム。
(付記5)
前記コンピュータに、
連続して複数のデータによりアニメーションを表示させ、
前記アニメーションの表示中に前記コンピュータに対する操作を受け付けると、該操作を示す操作データを作成して前記サーバへ送信することで、インタラクティブに該サーバから表示方法が変更されたアニメーションのデータを受信し表示させる
ことを特徴とする付記1乃至4のいずれか一項記載の受信データ表示プログラム。
(付記6)
前記コンピュータは、仮想デスクトップであることを特徴とする付記1乃至4のいずれか一項記載の受信データ表示プログラム。
(付記7)
圧縮とネットワーク転送と解凍に要する時間の和の過去の平均値である平均処理時間に一定時間を加算して、表示目標時間を求め、
サーバがデータ本体を圧縮する前の第1時刻を含むデータを受信した後、該データ本体の解凍処理を終えた第2時刻を取得し、
前記第2時刻から前記第1時刻を減算することで、前記データ本体の、圧縮とネットワーク転送と解凍とに要した時間の和を示した今回処理時間を取得し、
前記表示目標時間から前記今回処理時間を減算することで、調整時間を取得し、
前記調整時間分、遅延させて、前記データ本体を表示し、
前記今回処理時間を含めて過去の平均処理時間を更新する、
処理をコンピュータが行う受信データ表示方法。
(付記8)
圧縮とネットワーク転送と解凍に要する時間の和の過去の平均値である平均処理時間に一定時間を加算して、表示目標時間を求め、サーバがデータ本体を圧縮する前の第1時刻を含むデータを受信した後、該データ本体の解凍処理を終えた第2時刻を取得し、前記第2時刻から前記第1時刻を減算することで、前記データ本体の、圧縮とネットワーク転送と解凍とに要した時間の和を示した今回処理時間を取得し、前記表示目標時間から前記今回処理時間を減算することで、調整時間を取得する調整時間取得部と、
前記調整時間分、遅延させて、前記データ本体を表示する表示制御部と、
前記今回処理時間を含めて過去の平均処理時間を更新する更新部と、
を有する電子機器。
【符号の説明】
【0108】
4a 操作データ、 4b 操作命令
4f フレームデータ、 4g 画像
4g-2 画像データ
5d 3D-CGモデルデータ
7a サーバ処理時間、 7b ネットワーク伝送時間
7c 端末処理時間、 7d 総処理時間
7e 平均処理時間、 7f 一定時間
7g 目標処理時間、 7h 調整時間
7k 指定値、 7m 最大調整時間
8a 画像サイズ、 8b データサイズ
8c 画面更新検出時刻
100 サーバ
101 操作データ処理部、 102 更新検出部
103 画像取得部、 104 画像圧縮部
105 送信部
130 記憶部
300 端末
301 操作データ作成部、 302 受信部
303 画像復号部、 304 調整時間算出部
305 表示制御部
321 処理時間管理テーブル、 323 調整時間設定値
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17