(57)【要約】【課題】本発明の課題は、仮想デスクトップ環境におけるネットワーク回線の伝送遅延が生じる状況下において、アニメーションの表示品質を向上させることを目的とする。【解決手段】上記課題は、圧縮とネットワーク転送と解凍に要する時間の和の過去の平均値である平均処理時間に一定時間を加算して表示目標時間を求め、サーバがデータ本体を圧縮する前の第１時刻を含むデータを受信した後、データ本体の解凍処理を終えた第２時刻を取得し、第２時刻から第１時刻を減算することで、データ本体の、圧縮とネットワーク転送と解凍とに要した時間の和を示した今回処理時間を取得し、表示目標時間から今回処理時間を減算することで調整時間を取得し、調整時間分、遅延させて、データ本体を表示し、今回処理時間を含めて過去の平均処理時間を更新する、処理をコンピュータに行わせる受信データ表示プログラムにより達成される。【選択図】図４
2020182187.tif 000002
【特許請求の範囲】
【請求項１】
圧縮とネットワーク転送と解凍に要する時間の和の過去の平均値である平均処理時間に一定時間を加算して、表示目標時間を求め、
サーバがデータ本体を圧縮する前の第１時刻を含むデータを受信した後、該データ本体の解凍処理を終えた第２時刻を取得し、
前記第２時刻から前記第１時刻を減算することで、前記データ本体の、圧縮とネットワーク転送と解凍とに要した時間の和を示した今回処理時間を取得し、
前記表示目標時間から前記今回処理時間を減算することで、調整時間を取得し、
前記調整時間分、遅延させて、前記データ本体を表示し、
前記今回処理時間を含めて過去の平均処理時間を更新する、
処理をコンピュータに行わせる受信データ表示プログラム。
【請求項２】
前記コンピュータに、
受信した複数のデータ間において、前記第１時刻の間隔のうち最小間隔を取得し、該最小間隔を用いて、前記平均処理時間からの変動分を含む前記一定時間を算出する
処理をコンピュータに行わせる請求項１記載の受信データ表示プログラム。
【請求項３】
前記コンピュータに、
前記最小間隔に与えられた係数を乗算して得られた値を与えられた自然数で除算させて、前記一定時間を得る
ことを特徴とする請求項２記載の受信データ表示プログラム。
【請求項４】
前記データ本体は、前記サーバで表示された画面の画像を符号化した画像データであることを特徴とする請求項１乃至３のいずれか一項記載の受信データ表示プログラム。
【請求項５】
圧縮とネットワーク転送と解凍に要する時間の和の過去の平均値である平均処理時間に一定時間を加算して、表示目標時間を求め、
サーバがデータ本体を圧縮する前の第１時刻を含むデータを受信した後、該データ本体の解凍処理を終えた第２時刻を取得し、
前記第２時刻から前記第１時刻を減算することで、前記データ本体の、圧縮とネットワーク転送と解凍とに要した時間の和を示した今回処理時間を取得し、
前記表示目標時間から前記今回処理時間を減算することで、調整時間を取得し、
前記調整時間分、遅延させて、前記データ本体を表示し、
前記今回処理時間を含めて過去の平均処理時間を更新する、
処理をコンピュータが行う受信データ表示方法。
【請求項６】
圧縮とネットワーク転送と解凍に要する時間の和の過去の平均値である平均処理時間に一定時間を加算して、表示目標時間を求め、サーバがデータ本体を圧縮する前の第１時刻を含むデータを受信した後、該データ本体の解凍処理を終えた第２時刻を取得し、前記第２時刻から前記第１時刻を減算することで、前記データ本体の、圧縮とネットワーク転送と解凍とに要した時間の和を示した今回処理時間を取得し、前記表示目標時間から前記今回処理時間を減算することで、調整時間を取得する調整時間取得部と、
前記調整時間分、遅延させて、前記データ本体を表示する表示制御部と、
前記今回処理時間を含めて過去の平均処理時間を更新する更新部と、
を有する電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、受信データ表示プログラム、受信データ表示方法、及び電子機器に関する。
【背景技術】
【０００２】
従来より、サーバ上で端末のデスクトップを仮想化する仮想デスクトップが知られている。この仮想デスクトップでは、サーバ上に端末を仮想化した環境を構築して端末からリモートでの操作を受け付け、サーバが所定のフレームレートでデスクトップ画面の画像を端末に送信して端末に画像を表示させる。
【０００３】
仮想デスクトップ環境（ＶＤＩ：Virtual  Desktop  Infrastructure）では、サーバがデスクトップの画像を全て静止画の画像データで送信すると、ネットワークを伝送される画像データの量が多くなり、端末での操作性が悪化する場合がある。例えば、サーバと端末間のネットワークの通信帯域が狭い場合に、伝送されるデータ量が多くなると、端末での画像の表示に遅延が発生して操作性が悪化する場合がある。
【０００４】
そこで、伝送されるデータ量を減らす技術として、送信するフレームの画像を複数の領域に分割して領域ごとにフレームの画像間の変更の頻度を判別し、変更の頻度がしきい値を超えた領域に対して動画の圧縮処理を行って送信する技術が知られている。また、変更の確認頻度を画像を送信するタイミングよりも増やすことで、従来よりも速やかにユーザに動画であると判断させることができ、少ない遅延で端末に画像を表示させる技術も提供されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−１４５３３号公報
【特許文献２】特開２０１５−１９１６３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
仮想デスクトップ環境では、データ量、通信速度、処理速度等の様々な要因が、端末に表示させる画像の品質に影響を与える。上述した技術は、データ量に対応した技術であり、通信速度、処理速度等の他の要因に対しては十分ではない。
【０００７】
そのため、ネットワーク回線の伝送遅延が生じる状況下において、サーバから提供される３次元コンピュータグラフィックス（３Ｄ−ＣＧ）モデルのアニメーションの表示品質を一定に維持できないといった問題がある。
【０００８】
したがって、１つの側面では、仮想デスクトップ環境におけるネットワーク回線の伝送遅延が生じる状況下において、アニメーションの表示品質を向上させることを目的とする。
【課題を解決するための手段】
【０００９】
一態様によれば、圧縮とネットワーク転送と解凍に要する時間の和の過去の平均値である平均処理時間に一定時間を加算して、表示目標時間を求め、サーバがデータ本体を圧縮する前の第１時刻を含むデータを受信した後、該データ本体の解凍処理を終えた第２時刻を取得し、前記第２時刻から前記第１時刻を減算することで、前記データ本体の、圧縮とネットワーク転送と解凍とに要した時間の和を示した今回処理時間を取得し、前記表示目標時間から前記今回処理時間を減算することで、調整時間を取得し、前記調整時間分、遅延させて、前記データ本体を表示し、前記今回処理時間を含めて過去の平均処理時間を更新する、処理をコンピュータに行わせる受信データ表示プログラムが提供される。
【発明の効果】
【００１０】
仮想デスクトップ環境におけるネットワーク回線の伝送遅延が生じる状況下において、アニメーションの表示品質を向上させることができる。
【図面の簡単な説明】
【００１１】
【図１】ＶＤＩシステムのネットワーク構成例を示す図である。
【図２】サーバのハードウェア構成例を示す図である。
【図３】端末のハードウェア構成例を示す図である。
【図４】ＶＤＩシステムでの処理シーケンスを示す図である。
【図５】図４に示す処理シーケンスにおけるサーバ及び端末の処理タイミングを説明するための図である。
【図６】アニメーションの表示品質の劣化を説明するための図である。
【図７】画像が端末に表示されるまでの総処理時間の例を示す図である。
【図８】一連の複数の画像を適切な間隔で表示する方法を説明するための図である。
【図９】サーバの機能構成例を示す図である。
【図１０】端末の機能構成例を示す図である。
【図１１】フレームデータのデータ構造例を示す図である。
【図１２】サーバで行われるサーバ処理を説明するためのフローチャート図である。
【図１３】処理時間管理テーブルのデータ構成例及びテーブル管理方法例を示す図である。
【図１４】端末で行われる端末処理を説明するためのフローチャート図である。
【図１５】図１４のステップＳ６０４における最大調整時間取得処理を説明するためフローチャート図である。
【図１６】最大調整時間の設定画面の例を示す図である。
【図１７】図１４のステップＳ６０６における目標処理時間算出処理を説明するためフローチャート図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態を図面に基づいて説明する。仮想デスクトップ環境（ＶＤＩ：Virtual  Desktop  Infrastructure）におけるシステムは、例えば、図１に示すように構成される。図１は、ＶＤＩシステムのネットワーク構成例を示す図である。
【００１３】
図１において、ＶＤＩシステム１０００では、サーバ１００と、１又は複数の端末３００とを有し、各端末３００は、サーバ１００とネットワーク２を介して接続可能な仮想デスクトップである。
【００１４】
ネットワーク２を介した動画の表示（再生）には、サーバ１００が、端末３００の要求に応じて、予め撮影され記憶された動画コンテンツを提供し、動画コンテンツが端末３００にて再生されるストリーミング再生が存在する。端末３００では、端末３００にフレームデータを蓄積し再生可能な状態まで待機して動画を表示する。
【００１５】
また、サーバ１００が映像をリアルタイムで提供し、端末３００にて映像が再生されるライブストリーミング再生が存在する。この場合も、端末３００において、フレームデータを蓄積し再生可能な状態まで待機して動画を表示する。
【００１６】
上述した動画の表示とは異なり、本実施例におけるＶＤＩシステム１０００は、端末３００のユーザがインタラクティブに操作するシステムであり、通常のパーソナルコンピュータ端末を使用する場合と同様のレスポンス（低レイテンシ）が求められるシステムを対象とする。そのため、端末３００はフレームデータを蓄積することなく、受信に応じて速やかに表示する。サーバ１００と端末３００との間で高速通信及び高速処理が望まれている。
【００１７】
ＶＤＩシステム１０００において、端末３００は、ユーザの操作を受け付けると、当該操作をデータ化した操作データ４ａをサーバ１００に転送する。
【００１８】
サーバ１００では、アプリケーション１２０によって、操作データ４ａに従ってユーザの実際の操作を再現し、操作に対応する処理を実行した後、サーバ１００の画面に表示した画像４ｇを端末３００に送信する。端末３００では、サーバ１００から画像４ｇを受信し表示する。複数の画像４ｇ（フレーム）が連続して端末３００で表示されることにより動画が再生される。
【００１９】
上述したようなＶＤＩシステム１０００では、通常のコンピュータの操作に比べて、操作データ４ａ及び画面の画像４ｇがネットワーク２を介して送受信される点が異なっている。
【００２０】
先ず、サーバ１００及び端末３００のハードウェア構成例について、図２及び図３で説明し、本実施例におけるサーバ１００と端末３００との間の処理シーケンス例について説明する。
【００２１】
図２は、サーバのハードウェア構成例を示す図である。図２において、サーバ１００は、情報処理装置であって、ＣＰＵ１１１と、主記憶装置１１２と、補助記憶装置１１３と、入力装置１１４と、表示装置１１５と、通信Ｉ／Ｆ１１７と、ドライブ装置１１８とを有し、バスＢ１に接続される。主記憶装置１１２と、補助記憶装置１１３、及びサーバ１００がアクセス可能な外部記憶装置を含めて、記憶部１３０という。
【００２２】
ＣＰＵ１１１は、サーバ１００を制御するプロセッサに相当し、記憶部１３０に格納されたプログラムを実行することで、以下に説明する本実施例に係る様々な処理を実現する。入力装置１１４は、ユーザによって操作され、操作に応じてデータを入力し、表示装置１１５は、ユーザーインタフェースとして様々な画面を表示する。通信Ｉ／Ｆ１１７は、外部装置との通信を制御する。
【００２３】
記憶媒体１１９（例えば、ＣＤ−ＲＯＭ（Compact  Disc  Read-Only  Memory）等）に記憶された本実施例におけるサーバ１００側の処理を実現するプログラムは、ドライブ装置１１８を介して記憶部１３０にインストールされ、ＣＰＵ１１１によって実行可能となる。
【００２４】
尚、本実施例におけるサーバ１００側のプログラムを格納する記憶媒体１１９はＣＤ−ＲＯＭに限定されず、コンピュータが読み取り可能な、構造（structure）を有する１つ以上の非一時的（non-transitory）な、有形（tangible）な媒体であればよい。コンピュータ読取可能な記憶媒体として、ＣＤ−ＲＯＭの他に、ＤＶＤ（Digital  Versatile  Disk）ディスク、ＵＳＢメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリであっても良い。
【００２５】
図３は、端末のハードウェア構成例を示す図である。図３において、端末３００は、情報処理装置であって、ＣＰＵ３１１と、主記憶装置３１２と、補助記憶装置３１３と、入力装置３１４と、表示装置３１５と、通信Ｉ／Ｆ３１７と、ドライブ装置３１８とを有し、バスＢ３に接続される。主記憶装置３１２と、補助記憶装置３１３、及び端末３００がアクセス可能な外部記憶装置を含めて、記憶部３３０という。
【００２６】
ＣＰＵ３１１は、端末３００を制御するプロセッサに相当し、記憶部３３０に格納されたプログラムを実行することで、以下に説明する本実施例に係る様々な処理を実現する。入力装置３１４は、ユーザによって操作され、操作に応じてデータを入力し、表示装置３１５は、ユーザーインタフェースとして様々な画面を表示する。通信Ｉ／Ｆ３１７は、外部装置との通信を制御する。
【００２７】
記憶媒体３１９（例えば、ＣＤ−ＲＯＭ（Compact  Disc  Read-Only  Memory）等）に記憶された本実施例に係る受信データ表示プログラムは、ドライブ装置３１８を介して記憶部３３０にインストールされ、ＣＰＵ３１１によって実行可能となる。
【００２８】
尚、本実施例に係るプログラムを格納する記憶媒体３１９はＣＤ−ＲＯＭに限定されず、コンピュータが読み取り可能な、構造（structure）を有する１つ以上の非一時的（non-transitory）な、有形（tangible）な媒体であればよい。コンピュータ読取可能な記憶媒体として、ＣＤ−ＲＯＭの他に、ＤＶＤ（Digital  Versatile  Disk）ディスク、ＵＳＢメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリであっても良い。
【００２９】
端末３００は、タブレット端末であってもよく、その場合には、入力装置３１４と表示装置３１５とが、それらが一体化されたタッチパネルに置き換えられる。また、記憶媒体３１９は、ＳＤ（Secure  Digital）メモリカード等であり、ドライブ装置３１８は、ドライブ装置３１８にセットされた記憶媒体３１９と端末３００とのインターフェースを行う。
【００３０】
ＶＤＩシステム１０００では、アニメーション表示機能を有するものがある。一例として、３Ｄ−ＣＧモデルデータを表示用又は編集用のアプリケーション１２０で表示する場合に、３Ｄ−ＣＧモデルデータを自動で回転させたり、予め設定した通りに３Ｄ−ＣＧモデルデータの表示倍率や表示箇所を連続的に変化させる。ＶＤＩシステム１０００は、オフィス業務だけでなく、ＣＡＤ（Computer-Aided  Design）を使用した設計業務やデザイン等でも利用されている。
【００３１】
ＶＤＩシステム１０００で行われる、アニメーション表示を含むインタラクティブな処理例について説明する。以下の説明において、アプリケーション１２０が電子機器の設計支援を行う３次元ＣＡＤの場合で説明するが、この例に限定されない。
【００３２】
図４は、ＶＤＩシステムでの処理シーケンスを示す図である。図４において、端末３００がサーバ１００に接続された状態において、ユーザが「アニメーション開始」を選択する操作を端末３００にて行うと（ステップＳ１１）、アニメーション表示を指示する操作データ４ａがサーバ１００へ送信される（ステップＳ１２）。
【００３３】
操作データ４ａの受信に応じて、サーバ１００が端末３００に対してアプリケーション１２０にアニメーション表示が指示され、画面にアニメーション表示が開始される（ステップＳ１３）。そして、アプリケーション１２０によって表示された画面の画像４ｇが次々と端末３００に送信される（ステップＳ１４）。この例では、３次元で電子機器のソリッド表示が行われたとする。
【００３４】
端末３００にて、ユーザは、ソリッド表示により電子機器の外観を確認した後、ワイヤフレーム表示に変更する操作を行うと（ステップＳ１５）、当該操作を示す操作データ４ａがサーバ１００へ送信される（ステップＳ１６）。
【００３５】
サーバ１００では、操作データ４ａの受信に応じて、アプリケーション１２０は、ソリッド表示からワイヤフレーム表示へと変更する（ステップＳ１７）。表示方法が変更され、画面に表示された画像４ｇが次々に端末３００へと送信される（ステップＳ１８）。その結果、端末３００では、３次元のワイヤフレーム表示で、電子機器の内部の構造が表示される。
【００３６】
上述したように、端末３００での操作に応じて、インタラクティブにリアルタイムに表示を変更して画像４ｇを配信する処理等が繰り返される。
【００３７】
その後、ユーザが「アニメーション終了」を選択すると（ステップＳ１９）、端末３００からアニメーション終了を示す操作データ４ａがサーバ１００へと送信される（ステップＳ２０）。サーバ１００は、操作データ４ａに従って、アプリケーション１２０はアニメーション表示を終了する（ステップＳ２１）。
【００３８】
図５は、図４に示す処理シーケンスにおけるサーバ及び端末の処理タイミングを説明するための図である。図５において、端末３００にて、ユーザが、入力装置３１４を操作してアニメーション表示を選択する操作を行うと（ステップＳ１１０）、端末３００は、操作を示す操作データ４ａを生成して（ステップＳ１１２）、サーバ１００へ送信する（ステップＳ１２０）。
【００３９】
サーバ１００は、操作データ４ａを操作命令４ｂに変換して（ステップＳ１２１）、アプリケーション１２０に操作命令４ｂを通知する（ステップＳ１２２）。操作命令４ｂの通知に応じて、アプリケーション１２０は、アニメーションを開始する（ステップＳ１３０）。
【００４０】
アプリケーション１２０は、サーバ１００においてアニメーションの処理と表示を行う（ステップＳ１３１）。サーバ１００は、アニメーション表示された画面の画像４ｇを取得し符号化してフレームデータ４ｆを生成する（ステップＳ１３２）。生成されたフレームデータ４ｆは、端末３００へ送信され（ステップＳ１４０）、端末３００にて、フレームデータ４ｆから画像４ｇが復号されて（ステップＳ１４１）、画像４ｇは表示装置３１５に表示される（ステップＳ１４２）。
【００４１】
ステップＳ１３１からステップＳ１４２が繰り返し行われることで、複数の画像４ｇが連続して端末３００に表示されることにより、アニメーション表示が表示装置３１５で行われる。
【００４２】
端末３００にて、ユーザにより入力装置３１４を用いて表示方法を変更する操作が行われると（ステップＳ１５０）、端末３００は、操作データ４ａを生成し（ステップＳ１５１）、操作データ４ａをサーバ１００へ送信する（ステップＳ１６０）。
【００４３】
サーバ１００は、操作データ４ａを操作命令４ｂに変換して（ステップＳ１６１）、アプリケーション１２０に操作命令４ｂを通知する（ステップＳ１６２）。操作命令４ｂの通知に応じて、アプリケーション１２０は、操作命令４ｂで指定された表示方法へと変更する（ステップＳ１７０）。
【００４４】
アプリケーション１２０は、変更した表示方法でアニメーションの処理と表示を行う（ステップＳ１７１）。サーバ１００は、アニメーション表示された画面の画像４ｇを取得し符号化してフレームデータ４ｆを生成する（ステップＳ１７２）。生成されたフレームデータ４ｆは、端末３００へ送信され（ステップＳ１８０）、端末３００にて、フレームデータ４ｆから画像４ｇが復号されて（ステップＳ１８１）、画像４ｇは表示装置３１５に表示される（ステップＳ１８２）。
【００４５】
ステップＳ１７１からステップＳ１８２が繰り返し行われることで、複数の画像４ｇが連続して端末３００に表示されることにより、変更した表示方法によるアニメーション表示が表示装置３１５で行われる。
【００４６】
その後、端末３００にて、ユーザが、入力装置３１４を操作してアニメーション終了を選択する操作を行うと（ステップＳ１９０）、端末３００は、操作を示す操作データ４ａを生成して（ステップＳ１９１）、サーバ１００へ送信する（ステップＳ２００）。
【００４７】
サーバ１００は、操作データ４ａを操作命令４ｂに変換して（ステップＳ２０１）、アプリケーション１２０に操作命令４ｂを通知する（ステップＳ２０２）。操作命令４ｂの通知に応じて、アプリケーション１２０は、アニメーションを終了する（ステップＳ２１０）。
【００４８】
ＶＤＩシステム１０００では、サーバ１００は、端末３００にてアニメーションの動作中に行われるユーザの操作に応じて、当該操作に対応するアニメーションにリアルタイムに変更する。端末３００は、ある表示方法によるアニメーションの全フレームデータ４ｆを予め受信し記憶部３３０に蓄積することを行わず、新たなフレームデータ４ｆの受信に応じて表示装置３１５への出力を行う。
【００４９】
サーバ１００で表示された画像４ｇが端末３００で表示されるまでには、少なくとも、
・サーバ１００における処理時間（以下、「サーバ処理時間」という）
・ネットワーク伝送時間
・端末３００における処理時間（以下、「端末処理時間」という）
等の時間を要する。これらの処理時間は時間と共に変化し、処理時間の変動が端末３００におけるアニメーションの表示品質に影響を与える場合がある。
【００５０】
図６は、アニメーションの表示品質の劣化を説明するための図である。図６において、サーバ１００では、アプリケーション１２０が表示した画像４ｇのうち一定間隔で画像４ｇを取得し、フレームデータ４ｆを生成して送信する。フレームデータ４ｆの生成に掛かる時間は、ＣＰＵ負荷、画像４ｇの内容等によって変化する。また、フレームデータ４ｆの伝送では、画像４ｇのデータ量、ネットワーク２の状態によって伝送に掛かる時間が変化する。
【００５１】
他方で、端末３００では、フレームデータ４ｆを受信するごとに、受信したフレームデータ４ｆから画像４ｇを復号して表示装置３１５に表示する。サーバ１００における処理時間とネットワーク伝送時間とにより、フレームデータ４ｆの受信間隔は一定ではない。また、端末３００での処理時間は、ＣＰＵ負荷、画像の内容等によって変化する。
【００５２】
上述したような様々な処理時間の変化の累積により、画像４ｇの表示間隔△ｔ１、△ｔ２、及び△ｔ３が乱れ、端末３００のユーザが見るアニメーションの動きには不自然さが生じる。図６を例として、表示装置３１５に表示された４つの画像４ｇのそれぞれの総処理時間の例について図７で説明する。
【００５３】
図７は、画像が端末に表示されるまでの総処理時間の例を示す図である。図７では、４つの画像４ｇのそれぞれについて、サーバ処理時間７ａ、ネットワーク伝送時間７ｂ、及び端末処理時間７ｃを累積した総処理時間７ｄを示している。
【００５４】
総処理時間７ｄは、１番目の画像４ｇ、２番目の画像４ｇ、そして３番目の画像４ｇの順に長くなり、４番目の画像４ｇでは、２番目の画像４ｇと略同じ程度に回復する。このように総処理時間がばらついて一定でない場合、アニメーションに不自然さが生じる。
【００５５】
アプリケーション１２０を使用して３Ｄ−ＣＧモデルデータをアニメーション表示した場合、端末３００に表示される複数の画像４ｇは、一部または全体において総処理時間７ｄが変化する。
【００５６】
これは、ＶＤＩシステム１０００においては、サーバ１００と端末３００との間のネットワーク２を使用してフレームデータ４ｆを伝送する際に、ネットワーク２の利用状況によって端末３００にフレームデータ４ｆが到達する時間にバラツキが生じるからである。さらに、サーバ１００での符号化、および端末３００での画像４ｇの復元にかかる時間もわずかではあるが画像４ｇの内容によって変化する。
【００５７】
そのため、各画像間の間隔はサーバ１００と端末３００間とで異なり、サーバ１００で３Ｄアニメーションを表示させたときに、端末３００では、画像４ｇによる映像は滑らかに変化せず、不均一な変化が生じるため、人間の目には、カクツキを感じたり、動きの緩急によって不自然な印象を与える。
【００５８】
発明者等は、これら一連の複数の画像４ｇを適切な間隔で表示することで、人間（ユーザ）の目には映像の動きが滑らかに変化していると認識させることができることに着目し、端末３００にて画像４ｇの表示タイミングを調整する手法を見出した。
【００５９】
図８は、一連の複数の画像を適切な間隔で表示する方法を説明するための図である。図８より、端末３００は、過去の総処理時間７ｄを平均して得た平均処理時間７ｅに、定めた一定時間７ｆを加算した時間を、目標処理時間７ｇとして定める。目標処理時間７ｍにより、一連の複数の画像４ｇが一定間隔７ｆで表示される。
【００６０】
本実施例では、目標処理時間７ｇを満たすように総処理時間７ｄに加算する調整時間７ｈを決定して表示時刻を定める。このようにすることで、各画像４ｇは略同様の時間間隔△Ｔで表示され、ユーザがアニメーションを見た場合に不自然な変化を感じ難くすることができる。
【００６１】
次に、サーバ１００及び端末３００の機能構成例について説明する。図９は、サーバの機能構成例を示す図である。図９において、サーバ１００は、操作データ処理部１０１と、検出部１０２と、画像取得部１０３と、画像圧縮部１０４と、送信部１０５と、アプリケーション１２０とを有する。操作データ処理部１０１と、検出部１０２と、画像取得部１０３と、画像圧縮部１０４と、送信部１０５と、アプリケーション１２０とは、サーバ１００にインストールされた受信データ表示プログラムが、サーバ１００のＣＰＵ１１１に実行させる処理により実現される。記憶部１３０には、３Ｄ−ＣＧモデルデータ５ｄ、画像４ｇ、フレームデータ４ｆ等が記憶される。
【００６２】
操作データ処理部１０１は、通信Ｉ／Ｆ３１７によって、端末３００から送信された操作データ４ａを受信すると、操作データ４ａに従って、ユーザがサーバ１００に操作したかのうようにアプリケーション１２０に対して操作する。
【００６３】
検出部１０２は、アプリケーション１２０が動作することで表示装置１１５に表示される画面の表示内容の更新を監視し、表示内容が更新されたことを検出すると、画像取得部１０３に通知する。また、検出部１０２は、更新を検出した時刻を示す画面更新検出時刻８ｃ（図１１）を記憶部１３０に記憶する。
【００６４】
画像取得部１０３は、検出部１０２からの通知に応じて、表示されている画面の画像４ｇを取得して、記憶部１３０に記憶する。
【００６５】
画像圧縮部１０４は、画像取得部１０３が取得した画像４ｇを符号化して圧縮することで画像データ４ｇ−２（図１１）を取得し、取得した画像データ４ｇ−２を含むフレームデータ４ｆに記憶部１３０に記憶された画面更新検出時刻８ｃを設定する。生成されたフレームデータ４ｆは記憶部１３０に記憶される。送信部１０５は、記憶部１３０に記憶されたフレームデータ４ｆを端末３００へ送信する。
【００６６】
アプリケーション１２０は、３Ｄ−ＣＧモデルを三次元空間に表示し、アニメーション表示を行うアプリケーションである。３Ｄ−ＣＧモデルの一例として、車、電子機器等の製造物、生物、流体等である。アプリケーション１２０は、ユーザの操作に応じて、アニメーション表示をリアルタイムに切り替えて、ユーザとインタラクティブに処理を行う。
【００６７】
本実施例では、アプリケーション１２０は、操作データ４ａに従って処理を切り替えて、表示する内容を処理結果に応じて変更する。操作データ４ａでは、アニメーションの開始、アニメーションの終了、表示方法の変更、ズームイン、ズームアウト、回転等の端末３００で行われたユーザの操作が指示される。
【００６８】
図１０は、端末の機能構成例を示す図である。図１０より、端末３００は、操作データ作成部３０１と、受信部３０２と、画像復号部３０３と、調整時間算出部３０４と、表示制御部３０５とを有する。操作データ作成部３０１と、受信部３０２と、画像復号部３０３と、調整時間算出部３０４と、表示制御部３０５とは、端末３００にインストールされたプログラムが、端末３００のＣＰＵ３１１に実行させる処理により実現される。記憶部３３０には、フレームデータ４ｆ、画像４ｇ、処理時間管理テーブル３２１、調整時間設定値３２３等が記憶される。
【００６９】
操作データ作成部３０１は、ユーザが入力装置３１４を用いて端末３００に対して操作した内容を示す操作データを作成し、通信Ｉ／Ｆ３１７からサーバ１００へと送信する。
【００７０】
受信部３０２は、通信Ｉ／Ｆ３１７によって、サーバ１００が送信したフレームデータ４ｆを受信すると記憶部３３０に記憶する。
【００７１】
画像復号部３０３は、記憶部１３０に記憶されたフレームデータ４ｆから画像４ｇを復号し、得られた画像４ｇを記憶部３３０に記憶する。また、画像復号部３０３は、フレームデータ４ｆから画面更新検出時刻８ｃ（図１１）を取得し、また、現在時刻を端末処理終了時刻８ｄ（図１３）として取得する。画像復号部３０３は、取得した画面更新検出時刻８ｃと端末処理終了時刻８ｄとを示すデータを処理時間管理テーブル３２１に蓄積する。
【００７２】
調整時間算出部３０４は、処理時間管理テーブル３２１を用いて過去の平均処理時間７ｅを算出し、平均処理時間７ｅに一定時間７ｆを加算して目標処理時間７ｇを取得し、取得した目標処理時間７ｇと、処理中の画像４ｇの総処理時間７ｄとから調整時間７ｈを得る。得られた調整時間７ｈは、調整時間設定値３２３として記憶部３３０に記憶される。
【００７３】
過去の平均処理時間７ｅは、処理時間管理テーブル３２１で管理される直近の一定期間に含まれる端末処理終了時刻８ｄのデータを対象として求められる。この際に、調整時間算出部３０４は、直近の一定期間より過去のデータが存在する場合は、該当するデータを削除する管理を行うことが好ましい。
【００７４】
表示制御部３０５は、調整時間設定値３２３から調整時間７ｈを取得し、現時刻から調整時間７ｈが経過したときに、記憶部３３０から画像４ｇを取得して表示装置３１５に表示する。
【００７５】
図１１は、フレームデータのデータ構造例を示す図である。図１１より、フレームデータ４ｆは、画像サイズ８ａ、データサイズ８ｂ、画像データ４ｇ−２、画面更新検出時刻８ｃ等を有する。
【００７６】
画像サイズ８ａは、画像４ｇの幅と高さを示す。一例として、幅と高さは、ピクセル数で指定される。データサイズ８ｂは、画像４ｇを符号化することで得られる画像データ４ｇ−２のデータ長を示す。一例として、データサイズ８ｂは、バイト数で示される。画像データ４ｇ−２は、画像４ｇを符号化することで得られるデータである。画面更新検出時刻８ｂは、サーバ１００が設定した時刻であって、検出部１０２が表示内容の更新を検出した時刻を示す。
【００７７】
図１２は、サーバで行われるサーバ処理を説明するためのフローチャート図である。図１２より、サーバ１００では、検出部１０２が、画面更新を検出すると（ステップＳ５０１）、画面更新検出時刻８ｃを記憶部１３０に記憶し（ステップＳ５０２）、画像取得部１０３へ画面更新の通知を行う。
【００７８】
画面更新の通知を受けると、画像取得部１０３は、アプリケーション１２０によって表示された画面の画像４ｇを取得する（ステップＳ５０３）。取得した画像４ｇは記憶部１３０に記憶される。また、画像取得部１０３は、画像４ｇの取得を画像圧縮部１０４へ通知する。
【００７９】
画像圧縮部１０４は、画像４ｇを符号化して画像データ４ｇ−２を取得する（ステップＳ５０４）。また、画像圧縮部１０４は、取得した画像データ４ｇ−２を含むフレームデータ４ｆを記憶部１３０に生成し、フレームデータ４ｆに画面更新検出時刻８ｃを設定する（ステップＳ５０５）。フレームデータ４ｆの作成時には、画像サイズ８ａ及びデータサイズ８ｂもフレームデータ４ｆ内に設定される。フレームデータ４ｆの生成完了の通知が送信部１０５に行われる。
【００８０】
フレームデータ４ｆの生成完了の通知を受けると、送信部１０５は、フレームデータ４ｆを端末３００へ送信する（ステップＳ５０６）。フレームデータ４ｆの送信完了後、アプリケーション１２０の終了か否かが判定される（ステップＳ５０７）。端末３００から送信された操作データ４ａにより終了が通知されることにより、アプリケーション１２０が終了する。その場合には（ステップＳ５０７のＹＥＳ）、端末３００に対するサーバ処理を終了する。一方、終了していない場合（ステップＳ５０７のＮＯ）、ステップＳ５０１へと戻り上述同様の処理を繰り返す。
【００８１】
次に、端末３００で行われる端末処理で使用される処理時間管理テーブル３２１について説明し、端末処理について詳述する。
【００８２】
図１３は、処理時間管理テーブルのデータ構成例及びテーブル管理方法例を示す図である。図１３より、処理時間管理テーブル３２１は、時系列にフレームのデータを記憶し管理するテーブルであり、フレームごと（受信したフレームデータ４ｆごと）に画面更新検出時刻８ｃ、端末処理終了時刻８ｄ等が記憶されている。
【００８３】
画像復号部３０３が受信したフレームデータ４ｆに含まれる画像データ４ｇ−２から画像４ｇを復号ときに、現フレームのデータが最も直近のデータとして処理時間管理テーブル３２１に追加される。画像４ｇごとのフレームのデータは、フレームデータ４ｆから得られた画面更新時刻８ｃと、画像４ｇを得たときの端末処理終了時刻８ｄとを示す。
【００８４】
処理時間管理テーブル３２１で管理されるデータのうち、現在時刻から端末処理終了時刻を減算した時間長が所定時間以上となるデータを削除する。直近から所定時間内のデータのみを保持することで、処理時間の管理のために処理時間管理テーブル３２１の領域が無駄に消費されるのを防止することができる。
【００８５】
図１４は、端末で行われる端末処理を説明するためのフローチャート図である。図１４より、端末３００では、受信部３０２が、フレームデータ４ｆを受信し、記憶部１３０にフレームデータ４ｆを記憶する（ステップＳ６０１）。フレームデータ４ｆを受信したことが画像復号部３０３に通知される。フレームデータ４ｆの受信の通知に応じて、画像復号部３０３は、フレームデータ４ｆ内の画像データ４ｇ−２から画像４ｇを復号する（ステップＳ６０２）。復号完了の通知が調整時間算出部３０４に行われる。
【００８６】
復号完了の通知に応じて、調整時間算出部３０４によってステップＳ６０３〜Ｓ６０７（調整時間算出処理）が行われる。調整時間算出部３０４は、現フレームの総処理時間７ｄを算出する（ステップＳ６０３）。総処理時間７ｄは、
現フレームの総処理時間
＝  端末処理の終了時刻（現在時刻）  −  画面更新検出時刻      （式１）
により得られる。
【００８７】
調整時間算出部３０４は、現在時刻を取得し、フレームデータ４ｆから画面更新検出時刻８ｃを取得する。そして、調整時間算出部３０４は、現在時刻から画面更新検出時刻８ｃを減算して現フレームの総処理時間７ｄを取得する。得られた総処理時間７ｄは、図７及び図８で説明したように、サーバ処理時間７ａ、ネットワーク伝送時間７ｂ、及び端末処理時間７ｃの合計に相当する。
【００８８】
続いて、調整時間算出部３０４は、最大調整時間取得処理（図１５）を行い（ステップＳ６０４）、更に、目標処理時間算出処理（図１７）を行う（ステップＳ６０５）。そして、調整時間算出部３０４は、ステップＳ６０３で得られた総処理時間７ｄと、ステップＳ６０５で得られた目標処理時間７ｇとから、画像４ｇに対する調整時間７ｈを算出する（ステップＳ６０６）。算出された調整時間７ｈを示す調整時間設定値３２３が記憶部３３０に記憶される。
【００８９】
また、調整時間算出部３０４は、処理時間管理テーブル３２１を更新する（ステップＳ６０７）。処理時間管理テーブル３２１の更新は、図１３で説明した通りであるため、詳しい説明は省略する。
【００９０】
そして、表示制御部３０５は、調整時間設定値３２３で示される調整時間７ｈの経過後、記憶部３３０に記憶された画像４ｇを表示装置３１５に表示する（ステップＳ６０９）。その後、端末処理の終了か否かが判断される（ステップＳ６１０）。ユーザによる直近の操作が終了であった場合（ステップＳ６１０のＹＥＳ）、この端末処理は終了する。一方、操作が終了でない場合（ステップＳ６１０のＮＯ）、端末処理は、ステップＳ６０１へと戻り、上述した同様の処理を繰り返す。
【００９１】
上述したフローチャートにおいて、ステップＳ６０４及びＳ６０５の後にステップＳ６０３を行ってもよい。また、ステップＳ６０７は、ステップＳ６０５の終了後かつＳ６１０の判断処理の前で行われればよい。
【００９２】
図１５は、図１４のステップＳ６０４における最大調整時間取得処理を説明するためフローチャート図である。図１５では、ユーザの操作により、サーバ１００のアプリケーション１２０が最大調整時間７ｍを自動で設定するか否かを選択可能とした図１６に示すような設定画面Ｇ９０を表示し、ユーザにより選択的に設定された値を記憶部３３０に記憶しておくものとする。設定画面Ｇ９０の詳細について後述される。
【００９３】
図１５より、調整時間算出部３０４は、最大調整時間７ｍは自動設定か否かを判定する（ステップＳ６４１）。調整時間算出部３０４は、記憶部３３０に記憶された指定値７ｋを参照して、自動設定か否かを判定する。一例として、指定値７ｋには、自動設定の有無（フラグ）と、値とが設定されている。自動設定有りの（フラグが１を示す）場合、値は、最大調整時間７ｍを求めるための係数を示す。自動設定無しの（フラグが０を示す）場合、値は、最大調整時間７ｍそのものを示す。
【００９４】
自動設定であると判断した場合（ステップＳ６４１のＹＥＳ）、調整時間算出部３０４は、処理時間管理テーブル３２１を用いて、画面更新の最小間隔を求める（ステップＳ６４２）。処理時間管理テーブル３２１から１レコードずつずらしながら連続する２つのフレームの画面更新検出時刻８ｃの差を求め、求めた差のうち最小となる間隔を選択する。
【００９５】
次に、調整時間算出部３０４は、ステップＳ６４２で得られた最小間隔に指定値７ｋで示される係数を乗算することで最大調整時間７ｍを求めて記憶部３３０に出力し（ステップＳ６４３）、この最大調整時間取得処理を終了する。
【００９６】
一方、自動設定ではないと判断した場合（ステップＳ６４１のＮＯ）、調整時間算出部３０４は、指定値７ｋを最大調整時間７ｍとして記憶部３３０に出力し（ステップＳ６４４）、この最大調整時間取得処理を終了する。
【００９７】
図１６は、最大調整時間の設定画面の例を示す図である。図１６に示す設定画面Ｇ９０は、入力領域９０ａと、入力領域９０ｂとを有する。
【００９８】
入力領域９０ａは、自動で最大調整時間７ｍを算出するための係数を指定するための領域である。係数の指定の例としては、０．８〜１．２の範囲が好ましい。入力領域９０ｂは、ユーザが最大調整時間７ｍを指定するための領域である。
【００９９】
この設定画面Ｇ９０の入力領域９０ａ又は入力領域９０ｂのいずれかの入力で自動設定の有無と値とを示す指定値７ｋが記憶部３３０に記憶される。アプリケーション１２０を利用中であれば、ユーザは、設定画面Ｇ９０を任意のタイミングで表示させてもよい。
【０１００】
図１７は、図１４のステップＳ６０６における目標処理時間算出処理を説明するためフローチャート図である。図１７では、調整時間算出部３０４は、処理時間管理テーブル３２１を参照して、フレームごとに総処理時間７ｄを算出する（ステップＳ６５１）。総処理時間７ｄは、
総処理時間  ＝  端末処理終了時刻  −  画面更新検出時刻          （式２）
により求まる。
【０１０１】
調整時間算出部３０４は、得られた総処理時間７ｄを平均して平均処理時間７ｅを算出する（ステップＳ６５２）。また、調整時間算出部３０４は、記憶部３３０に記憶された最大調整時間７ｍに基づいて一定時間７ｆを決定する（ステップＳ６５３）。
【０１０２】
一定時間７ｆは、最大調整時間７ｍを１／ｎ倍することで定められればよい。ｎは２以上の自然数とし、ユーザによって変更可能としてもよい。デフォルト値として、ｎ＝２を用いればよい。
【０１０３】
次に、調整時間算出部３０４は、平均処理時間７ｅに一定時間７ｆを加算して目標処理時間７ｇを得て記憶部３３０に記憶し（ステップＳ６５３）、この目標処理時間算出処理を終了する。
【０１０４】
得られた目標処理時間７ｇが小さい場合には、サーバ１００と端末３００との時間差が小さくなるが表示間隔が広くなる局面では、本実施例における時間調整による効果は少ない。他方で、目標処理時間７ｇが大きい場合には、サーバ１００と端末３００との時間差が大きくなり、表示間隔が広くなる局面では、本実施例における時間調整による効果は大きい。
【０１０５】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、主々の変形や変更が可能である。
【０１０６】
上記実施例において、符号化は圧縮の一例であり、復号は解凍の一例である。端末３００にて処理中の画像４ｇの総処理時間７ｄは、今回処理時間の一例である。また、調整時間算出部３０４は、調整時間取得部の一例であり、図１４のステップＳ６０７は、更新部の一例である。
【０１０７】
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
（付記１）
圧縮とネットワーク転送と解凍に要する時間の和の過去の平均値である平均処理時間に一定時間を加算して、表示目標時間を求め、
サーバがデータ本体を圧縮する前の第１時刻を含むデータを受信した後、該データ本体の解凍処理を終えた第２時刻を取得し、
前記第２時刻から前記第１時刻を減算することで、前記データ本体の、圧縮とネットワーク転送と解凍とに要した時間の和を示した今回処理時間を取得し、
前記表示目標時間から前記今回処理時間を減算することで、調整時間を取得し、
前記調整時間分、遅延させて、前記データ本体を表示し、
前記今回処理時間を含めて過去の平均処理時間を更新する、
処理をコンピュータに行わせる受信データ表示プログラム。
（付記２）
前記コンピュータに、
受信した複数のデータ間において、前記第１時刻の間隔のうち最小間隔を取得し、該最小間隔を用いて、前記平均処理時間からの変動分を含む前記一定時間を算出する
処理をコンピュータに行わせる付記１記載の受信データ表示プログラム。
（付記３）
前記コンピュータに、
前記最小間隔に与えられた係数を乗算して得られた値を与えられた自然数で除算させて、前記一定時間を得る
ことを特徴とする付記２記載の受信データ表示プログラム。
（付記４）
前記データ本体は、前記サーバで表示された画面の画像を符号化した画像データであることを特徴とする付記１乃至３のいずれか一項記載の受信データ表示プログラム。
（付記５）
前記コンピュータに、
連続して複数のデータによりアニメーションを表示させ、
前記アニメーションの表示中に前記コンピュータに対する操作を受け付けると、該操作を示す操作データを作成して前記サーバへ送信することで、インタラクティブに該サーバから表示方法が変更されたアニメーションのデータを受信し表示させる
ことを特徴とする付記１乃至４のいずれか一項記載の受信データ表示プログラム。
（付記６）
前記コンピュータは、仮想デスクトップであることを特徴とする付記１乃至４のいずれか一項記載の受信データ表示プログラム。
（付記７）
圧縮とネットワーク転送と解凍に要する時間の和の過去の平均値である平均処理時間に一定時間を加算して、表示目標時間を求め、
サーバがデータ本体を圧縮する前の第１時刻を含むデータを受信した後、該データ本体の解凍処理を終えた第２時刻を取得し、
前記第２時刻から前記第１時刻を減算することで、前記データ本体の、圧縮とネットワーク転送と解凍とに要した時間の和を示した今回処理時間を取得し、
前記表示目標時間から前記今回処理時間を減算することで、調整時間を取得し、
前記調整時間分、遅延させて、前記データ本体を表示し、
前記今回処理時間を含めて過去の平均処理時間を更新する、
処理をコンピュータが行う受信データ表示方法。
（付記８）
圧縮とネットワーク転送と解凍に要する時間の和の過去の平均値である平均処理時間に一定時間を加算して、表示目標時間を求め、サーバがデータ本体を圧縮する前の第１時刻を含むデータを受信した後、該データ本体の解凍処理を終えた第２時刻を取得し、前記第２時刻から前記第１時刻を減算することで、前記データ本体の、圧縮とネットワーク転送と解凍とに要した時間の和を示した今回処理時間を取得し、前記表示目標時間から前記今回処理時間を減算することで、調整時間を取得する調整時間取得部と、
前記調整時間分、遅延させて、前記データ本体を表示する表示制御部と、
前記今回処理時間を含めて過去の平均処理時間を更新する更新部と、
を有する電子機器。
【符号の説明】
【０１０８】
４ａ          操作データ、            ４ｂ          操作命令
４ｆ          フレームデータ、        ４ｇ          画像
４ｇ−２      画像データ
５ｄ          ３Ｄ−ＣＧモデルデータ
７ａ          サーバ処理時間、        ７ｂ          ネットワーク伝送時間
７ｃ          端末処理時間、          ７ｄ          総処理時間
７ｅ          平均処理時間、          ７ｆ          一定時間
７ｇ          目標処理時間、          ７ｈ          調整時間
７ｋ          指定値、                ７ｍ          最大調整時間
８ａ          画像サイズ、            ８ｂ          データサイズ
８ｃ          画面更新検出時刻
１００        サーバ
１０１        操作データ処理部、      １０２        更新検出部
１０３        画像取得部、            １０４        画像圧縮部
１０５        送信部
１３０        記憶部
３００        端末
３０１        操作データ作成部、      ３０２        受信部
３０３        画像復号部、            ３０４        調整時間算出部
３０５        表示制御部
３２１        処理時間管理テーブル、  ３２３        調整時間設定値
【図１】
2020182187.tif 000003
【図２】
2020182187.tif 000004
【図３】
2020182187.tif 000005
【図４】
2020182187.tif 000006
【図５】
2020182187.tif 000007
【図６】
2020182187.tif 000008
【図７】
2020182187.tif 000009
【図８】
2020182187.tif 000010
【図９】
2020182187.tif 000011
【図１０】
2020182187.tif 000012
【図１１】
2020182187.tif 000013
【図１２】
2020182187.tif 000014
【図１３】
2020182187.tif 000015
【図１４】
2020182187.tif 000016
【図１５】
2020182187.tif 000017
【図１６】
2020182187.tif 000018
【図１７】
2020182187.tif 000019