(57)【要約】【課題】リモートデスクトップ端末装置においてスムーズな描画を実現できる遠隔描画システム、遠隔描画装置、遠隔描画方法及びプログラムを提供する。【解決手段】遠隔描画装置１０００の遠隔描画部１００は、ホスト装置から、複数の画像データを含む第１の画像データを受信する通信部１と、第１の画像データに基づいて第２の画像データを生成する画面作成部２と、第２の画像データに含まれる複数の画像データの一部からなる第３の画像データを生成する間引き処理部３と、第３の画像データに基づき描画を行う描画部４と、を有する。【選択図】図１
2015060528.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置から、複数の画像データを含む第１の画像データを受信する通信部と、
前記第１の画像データに基づいて第２の画像データを生成する画面作成部と、
前記第２の画像データに含まれる複数の画像データの一部からなる第３の画像データを生成する間引き処理部と、
前記第３の画像データに基づき描画を行う描画部と、を有する
遠隔描画部を有する
遠隔描画装置。
【請求項２】
前記通信部は、前記ホスト装置との間に通信路を有し、
前記通信路のデータ転送速度と、前記描画部の描画性能と、を取得するネットワーク及び描画性能測定部と、
前記データ転送速度及び前記描画性能に基づき、間引き値を計算する間引き値計算部と、をさらに有し、
前記間引き処理部は、前記間引き値に基づいて、前記第３の画像データを生成する
請求項１記載の遠隔描画装置。
【請求項３】
前記遠隔描画部を複数有し、
少なくとも１つの前記遠隔描画部が、
他の前記遠隔描画部の前記描画部の描画量を取得する他遠隔描画部通信部と、
自らの前記描画部の描画量と、他の前記遠隔描画部の前記描画部の前記描画量と、を比較する描画量比較部と、をさらに有し、
前記間引き処理部はさらに、前記比較の結果に応じて、前記間引き値を変更する
請求項２記載の遠隔描画装置。
【請求項４】
それぞれが請求項２又は３記載の遠隔描画装置である、第１の遠隔描画装置と、第２の遠隔描画装置と、が第２の通信路を介して接続され、
前記第２の遠隔描画装置の前記通信部は、前記第１の遠隔描画装置から前記第１の画像データを受信するものである場合において、
前記第１の遠隔描画装置の前記ネットワーク及び描画性能測定部は、前記描画性能に替えて、前記第２の通信路のデータ転送速度に基づき、前記間引き値を計算する
遠隔描画システム。
【請求項５】
遠隔描画部が、
ホスト装置から、複数の画像データを含む第１の画像データを受信する通信ステップと、
前記第１の画像データに基づいて第２の画像データを生成する画面作成ステップと、
前記第２の画像データに含まれる複数の画像データの一部からなる第３の画像データを生成する間引き処理ステップと、
前記第３の画像データに基づき描画を行う描画ステップと、を有する
遠隔描画方法。
【請求項６】
前記ホスト装置との間の通信路のデータ転送速度と、描画性能と、に基づき間引き値を計算する間引き値計算ステップをさらに有し、
前記間引き処理ステップは、前記間引き値に基づいて、前記第３の画像データを生成するものである
請求項５記載の遠隔描画方法。
【請求項７】
前記遠隔描画部は複数存在し、
少なくとも１つの前記遠隔描画部が、
他の前記遠隔描画部の前記描画ステップにおける描画量を取得する他遠隔描画部通信ステップと、
自らの前記描画ステップにおける描画量と、他の前記遠隔描画部の前記描画ステップにおける前記描画量と、を比較する描画量比較ステップと、をさらに有し、
前記間引き処理ステップはさらに、前記比較の結果に応じて、前記間引き値を変更するものである
請求項６記載の遠隔描画方法。
【請求項８】
それぞれが請求項６又は７記載の前記遠隔描画部である、第１の遠隔描画部と、第２の遠隔描画部と、が第２の通信路を介して接続され、
前記第２の遠隔描画部の前記通信ステップは、前記第１の遠隔描画部から前記第１の画像データを受信するものである場合において、
前記第１の遠隔描画部の間引き値計算ステップは、前記描画性能に替えて、前記第２の通信路のデータ転送速度に基づき、前記間引き値を計算するものである
遠隔描画方法。
【請求項９】
コンピュータに、請求項５乃至７いずれか１項記載の前記遠隔描画部にかかるすべてのステップを実行させるためのプログラム。
【請求項１０】
コンピュータに、請求項８記載の前記第１の遠隔描画部にかかるすべてのステップを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は遠隔描画システム、遠隔描画装置、遠隔描画方法及びプログラムに関し、例えばリモートデスクトップ端末装置においてスムーズな描画を実現する技術に関する。
【背景技術】
【０００２】
端末装置から、ホスト装置の画面操作を行うことが可能な、リモートデスクトップ製品等が知られている。
【０００３】
リモートデスクトップとは、ホスト装置のグラフィカルな画面をそのまま遠隔地の端末装置に表示し、端末装置からホスト装置の画面操作を行う技術である。リモートデスクトップは、従来のコマンドベースのリモート操作にくらべ、画像、アニメーション、動画、ＵＳＢリモート接続等を扱うため、端末装置とホスト装置間におけるデータ転送に係る負荷が大きく、また端末装置における画面の描画処理も複雑である。
【０００４】
従来、リモートデスクトップは、パーソナルコンピュータ（ＰＣ）など比較的処理速度の速いハードウェアを端末装置として利用することを想定して設計されてきた。端末装置としてのＰＣは、複雑で容量の大きいデータ処理を実現可能であった。
【０００５】
しかし、昨今では、スマートフォンやタブレットなどＰＣに比べ比較的処理速度が遅い機器が端末装置として利用され、インターネットや携帯電話ネットワーク経由でリモートデスクトップが利用されるようになっている。
【０００６】
このような比較的処理速度が遅い端末装置が、ＰＣと同様の処理を実行しようとすると、その処理能力の限界により、描画遅れや反応のずれが発生し、グラフィカルユーザインタフェイスの円滑な操作性が損なわれてしまう場合がある。最悪のケースでは、全く端末装置を操作できなくなってしまう事象も発生し得る。
【０００７】
これは、従来のリモートデスクトッププロトコルがＰＣに最適化されているためである。比較的処理速度が遅い端末装置では、ホスト装置側から届くデータを十分な速度で処理できないため、描画が追い付かず、描画処理が端末装置のハードウェアリソースの多くを消費し、結果として他の操作ができない状態になってしまう。
【０００８】
また、リモートデスクトップは、図６に示すような多段接続形態で利用されることもある。例えば、データセンター内のホスト装置を遠隔の端末装置から管理する場合、一旦ホスト装置（接続先２、３、４）とデータセンター内にある管理マシン（接続先１）との間でリモートデスクトップ接続を行い、さらに管理マシン（接続先１）と端末装置（接続元）との間でリモートデスクトップ接続を行うケースがある。このように多段接続されたリモートデスクトップにおいては、ホスト装置の画面は、管理マシン（接続先１）上の仮想画面へ描画出力されることとなる。仮想画面における描画処理速度は一般に比較的遅いため、多段接続時の描画も、処理速度の遅い端末装置への描画を行っているのと同じ状況となる。この場合も、端末装置における描画遅れや反応のずれが発生し得る。
【０００９】
端末装置においてかかる問題が発生すると、単にリモートデスクトップアプリケーションがハングアップするにとどまらず、端末装置の他の機能もすべて操作不能になってしまう状況に陥り得る。リモートデスクトップアプリケーションは、一般に端末装置の全画面を占有する性質をもつためである。
【００１０】
かかる問題を解決するため、様々な手法が提案されている。例えば、特許文献１及び特許文献２には、フレームバッファ（ディスプレイに表示すべき画像データを一時的に保存するメモリ）とディスプレイデバイスとの間の間引き処理、オフロード処理により、端末装置における画面表示処理に係る負荷を軽量化する技術が記載されている。
【００１１】
また、メインメモリとフレームバッファ間のデータ転送処理を高速化する技術として、ハードウェアによるものとソフトウェアによるものが提案されている。
【００１２】
ハードウェアによる高速化技術としては、現在主流のオープンＰＣアーキテクチャを例にとれば、ＤＤＲ／ＧＤＤＲ等の高速メモリバス仕様、ＰＣＩ（ＰＣＩｅ）バスアーキテクチャにおけるＤＭＡ等ようなＣＰＵオフロード処理があり、これらによれば非常に高速なメモリ転送処理が実現できる。例えば、特許文献３には、グラフィックデバイスによるアクセラレーション処理技術が開示されている。
【００１３】
また、ソフトウェアによる高速化技術としては、ホスト装置と端末装置との間で、表示タイミングの同期をとって画面をスムーズに見せるプロトコルを採用する技術（特許文献４）、描画処理や描画データ圧縮等の効率化処理をプロトコル内に実装する技術（特許文献５−７）等がある。
【００１４】
さらに、特許文献８には、リモートデスクトップとは独立して、データ転送経路であるネットワークにおいてデータ転送効率を向上させる技術が記載されている。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開昭６２−０６６３２４号公報
【特許文献２】特許第３９１９８７７号
【特許文献３】特許第３８６００３４号
【特許文献４】特許第４３２６８３６号
【特許文献５】特表２００８−５０７９２８号公報
【特許文献６】特表２００８−５２７５０７号公報
【特許文献７】特表２０１２−５１９９２４号公報
【特許文献８】特開２０１３−１８２５２２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１６】
しかしながら、特許文献１−２記載の技術は、ＬＣＤなど表示駆動デバイスの負荷を下げることを目的とするものである。当該技術によれば、端末装置における表示性能向上という点で一定の効果はあるが、リモートデスクトップの描画ずれや描画遅延問題（多くはメインメモリとフレームバッファ間の転送処理過負荷により引き起こされる）を軽減するものではなく、上記問題の解決策を提供するものではない。
【００１７】
また、メインメモリとフレームバッファ間のデータ転送処理を高速化する上記ハードウェア（例えば特許文献３）について言えば、現在のところ、これらはスマートフォンやタブレットなどの安価なデバイスにおいて利用可能なコストで供給されていない。
【００１８】
加えて、リモートデスクトップを多段接続する場合、その中間地点（例えば図６の接続先１）における画面出力先は、ハードウェアによる性能向上技術の対象となる物理グラフィックデバイスのバッファではなく、物理グラフィックデバイスとして認識されないリモートデスクトップの仮想画面デバイスのバッファとなる。そのため、端末装置のグラフィックハードウェアを利用しての性能向上技術は、リモートデスクトップ多段接続においては有効に働かない。
【００１９】
メインメモリとフレームバッファ間のデータ転送処理を高速化するソフトウェア技術（例えば特許文献４−８）について言えば、これらのソフトウェアは、リモートデスクトップを複数又は多段接続する場合に、複数のリモートデスクトップ接続それぞれにおいて機能するため、全体的としては必ずしも最適な性能向上策とならない。
【００２０】
すなわち、これらの高速化技術は、「リモートデスクトップが多段接続されているか」、「複数のウィンドウが同時表示されているか」、「現在フォーカスがあたっているか」等、リモートデスクトップソフトウェアがどのような環境で実行されているかに着目した制御を行っていない。
【００２１】
本発明は、このような問題点を解決するためになされたものであり、リモートデスクトップ端末装置においてスムーズな描画を実現できる遠隔描画システム、遠隔描画装置、遠隔描画方法及びプログラムを提供することを目的とする。
【００２２】
その他の課題と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００２３】
本発明にかかる遠隔描画装置は、ホスト装置から、複数の画像データを含む第１の画像データを受信する通信部と、前記第１の画像データに基づいて第２の画像データを生成する画面作成部と、前記第２の画像データに含まれる複数の画像データの一部からなる第３の画像データを生成する間引き処理部と、前記第３の画像データに基づき描画を行う描画部と、を有する、遠隔描画部を有するものである。
【００２４】
本発明にかかる遠隔描画システムは、第１の遠隔描画装置と、第２の遠隔描画装置と、が第２の通信路を介して接続され、前記第２の遠隔描画装置の前記通信部は、前記第１の遠隔描画装置から前記第１の画像データを受信するものである場合において、前記第１の遠隔描画装置の前記ネットワーク及び描画性能測定部は、前記第２の通信路のデータ転送速度に基づき、前記間引き値を計算し、前記間引き処理部は、前記間引き値に基づいて、前記第３の画像データを生成するものである。
【００２５】
本発明にかかる遠隔描画方法は、遠隔描画部が、ホスト装置から、複数の画像データを含む第１の画像データを受信する通信ステップと、前記第１の画像データに基づいて第２の画像データを生成する画面作成ステップと、前記第２の画像データに含まれる複数の画像データの一部からなる第３の画像データを生成する間引き処理ステップと、前記第３の画像データに基づき描画を行う描画ステップと、を有するものである。
【００２６】
本発明にかかる他の遠隔描画方法は、第１の遠隔描画部と、第２の遠隔描画部と、が第２の通信路を介して接続され、前記第２の遠隔描画部の前記通信ステップは、前記第１の遠隔描画部から前記第１の画像データを受信するものである場合において、前記第１の遠隔描画部の前記ネットワーク及び描画性能測定ステップは、前記描画性能に替えて、前記第２の通信路のデータ転送速度に基づき、前記間引き値を計算し、前記間引き処理ステップは、前記間引き値に基づいて、前記第３の画像データを生成するものである。
【００２７】
本発明にかかるプログラムは、コンピュータに、前記遠隔描画部又は前記第１の遠隔描画部にかかるすべてのステップを実行させるためのプログラムである。
【発明の効果】
【００２８】
本発明により、リモートデスクトップ端末装置においてスムーズな描画を実現できる遠隔描画システム、遠隔描画装置、遠隔描画方法及びプログラムを提供することができる。
【図面の簡単な説明】
【００２９】
【図１】本発明の実施の形態１の構成を示す図である。
【図２】本発明の実施の形態２の構成を示す図である。
【図３】本発明の実施の形態１及び２の処理を示す図である。
【図４】本発明の実施の形態１の処理を示す図である。
【図５】本発明の実施の形態２の処理を示す図である。
【図６】リモートデスクトップ多段接続及び多数接続の一例を示す図である。
【発明を実施するための形態】
【００３０】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
【００３１】
＜実施の形態１：基本構成＞
実施の形態１は、リモートデスクトップの基本構成、すなわちただ１つのリモートデスクトップクライアントがホスト装置と接続され、多段接続、多数接続を含まない構成にかかる実施例である。
【００３２】
図１を用いて、本発明の実施の形態１にかかる遠隔描画装置としてのリモートデスクトップ装置１０００の構成について説明する。
【００３３】
リモートデスクトップ装置１０００は、リモートデスクトップクライアント１００を有する。
【００３４】
リモートデスクトップ装置１０００は、図示しないホスト装置と通信路を介して接続されており、ホスト装置に対してリモートデスクトップの端末装置として動作する。
【００３５】
リモートデスクトップクライアント１００は、通信部１、画面作成部２、間引き処理部３、描画部４、ネットワーク及び描画性能測定部６、間引き値計算部８を有する。
【００３６】
通信部１は、ホスト装置から通信路を介して送信された描画データ５０を、ＮＷバッファ１１に受け取る。
【００３７】
画面作成部２は、ＮＷバッファ１１に格納された描画データを処理して、ホスト装置の画面データを画面シャドウバッファ１２上に再構成する。
【００３８】
描画部４は、画面作成部２が再構成したホスト装置の画面を、実際に利用者に見える形で描画処理を行う。すなわち、描画部４は、画面シャドウバッファ１２に格納された画面データを処理して、画面フレームバッファ１４上に画面フレームを形成する。従来のリモートデスクトップクライアントでは、画面作成部２と描画部４とが連動し、画面作成部２が再構成したホスト装置の画面を、そのまま描画部４が描画処理することが一般的である。しかし、本実施の形態では、画面作成部２による画面再構成処理と、描画部４における描画処理と、は独立してすなわち非同期に動作する。
【００３９】
間引き処理部３は、画面作成部２が画面シャドウバッファ１２上に再構成したホスト装置の画面データを、間引く処理を行う。すなわち、画面シャドウバッファ１２に格納された画面データの一部のみを描画部４に引き渡し、残りの画面データを破棄する。本実施の形態における描画部４は、この間引き後の画面データについて描画処理を行う。
【００４０】
間引き値計算部８は、間引き値５３の計算を行い、間引き処理部３に通知する処理を行う。間引き値５３とは、間引き処理部３がどれほどの間隔で画面データの間引き処理を行うべきかを示す値である。例えば、間引き値５３が０．１秒である場合、間引き処理部３は、０．１秒間隔で画面データを表示する。それを超える画面データについては破棄し、表示する画面データのみを描画部４に引き渡す。間引き値５３が０．５秒である場合、間引き処理部３は、０．５秒で受け取る画面データのうち１枚の画面データを描画部４に引き渡す。それを超えるものは破棄する。
【００４１】
ネットワーク及び描画性能測定部６は、ホスト装置とリモートデスクトップ装置１０００との間の通信路のデータ伝送速度（以下、ネットワーク速度という）を測定し、ネットワーク速度に基づいて描画命令許容量を算出する処理を行う。また、リモートデスクトップ装置１０００の表示許容量を算出する処理も行う。
【００４２】
つぎに、図３のフローチャートを用いて、リモートデスクトップ装置１０００の動作について説明する。
【００４３】
Ｓ１：描画データの受信
通信部１は、リモートデスクトップ接続先、すなわちホスト装置から送信されてきた描画データ５０を受信し、ＮＷバッファ１１に描画データ５０を格納していく。
【００４４】
Ｓ２：サーバ画面の再構成
画面作成部２は、ＮＷバッファ１１に保存された描画データを読み出し、描画データを元に、サーバの画面を再構成する処理を行う。画面作成部２は、再構成された画面データを、画面シャドウバッファ１２に格納していく。
【００４５】
Ｓ３：間引き
間引き処理部３は、間引き値計算部８から間引き値５３を取得する。
また、間引き処理部３は、画面シャドウバッファ１２から画面フレームバッファ１４へのデータ転送を行う。この際、間引き処理部３は、間引き値５３に基づいて、画面データを一定間隔において間引く処理を行う。すなわち、画面シャドウバッファ１２に格納された画面データの一部のみを画面フレームバッファ１４に転送し、残りの画面データを破棄する。
【００４６】
例えば、間引き値５３が０．１秒である場合、間引き処理部３は、０．１秒間隔で画面データを表示する。それを超える画面データについては破棄し、表示する画面データのみを描画部４に引き渡す。間引き値５３が０．５秒である場合、間引き処理部３は、０．５秒間に受け取るすべての画面データのうち１枚の画面データを描画部４に引き渡す。それを超えるものは破棄する。
【００４７】
Ｓ４：描画
描画部４は、画面フレームバッファ１４に格納された画面データ、すなわち間引き処理部３によって間引かれた画面データを使用して、画面描画処理を行う。
【００４８】
つづいて、図４のフローチャートを用いて、間引き値計算部８による間引き値５３の計算処理について説明する。この間引き値５３計算処理は、図３のフローチャートに示した一連の処理とは非同期に動作する。
【００４９】
Ｓ１００、Ｓ１０２：描画命令許容量及び表示許容量５５の算出
ネットワーク及び描画性能測定部６は、ホスト装置とリモートデスクトップ装置１０００との間のネットワーク速度を測定し、ネットワーク速度に基づいて描画命令許容量を算出する。
【００５０】
ここで、描画命令許容量とは、表示デバイスが、次のリモートデスクトップの仮想デバイスである場合の表示許容量のとこである。この場合、実際の描画は、ネットワークの先にあるリモートデスクトップクライアントの画面となるため、表示許容量は、１秒間に最大どれだけのフレーム数の画面データを接続先クライアントへ送信できるかを意味する値である。描画命令許容量は、例えば、クライアントとの間でデータ転送の速度を実測し、１フレームあたりに必要なデータ量で割るようにして計算可能である。
【００５１】
また、ネットワーク及び描画性能測定部６は、リモートデスクトップ装置１０００表示許容量を算出する。
【００５２】
ここで、表示許容量とは、１秒間に最大どれだけのフレーム数の画面データを表示可能かを意味する値である。そして、表示許容量は、具体的には、画面データを実際に書き出して、その速度を実測し、１フレームあたりに必要なデータ量で割ることで計算可能である。
【００５３】
そして、ネットワーク及び描画性能測定部６は、算出した描画命令許容量及び表示許容量５５を、間引き値計算部８に対して通知する。
【００５４】
Ｓ１０３：間引き値の決定
間引き値計算部８は、描画命令許容量と、表示許容量とに基づき、間引き値を計算する。具体的には、このリモートデスクトップ装置がユーザの利用している実端末の場合は、表示許容量を、ここからまだリモートデスクトップされておりクライアントへ画面データを送っている場合は、描画命令許容量を利用する。例えば、実端末の場合において表示許容量が５フレーム／秒の時、間引き値は１／５＝０．２秒ごと、リモートデスクトップ接続（多段接続）の場合において、描画命令許容量が５フレーム／秒のとき、１／５＝０．２秒ごととすることができる。
【００５５】
本実施の形態によれば、間引き処理部３が、ネットワーク速度や端末の処理性能等に応じて、描画すべき画像データの量を調整するため、リモートデスクトップクライアント側における最終描画処理、すなわち描画部４が画面フレームバッファ１４のデータに基づき描画を実行する処理にかかる負荷を適宜抑制することができる。すなわち、描画部４の性能をオーバフローさせないように、描画頻度を調整する。これにより、描画部４がボトルネックとなることを抑制し、描画遅れ等の事象発生を低減し、遅い処理速度なりに操作性を向上させることが可能になる。
【００５６】
特に、もともとレイテンシーが長くバンド幅がＬＡＮに比べて広くないインターネット環境では、インタラクティブに高いフレームレートの画像転送ができない。すなわちネットワーク帯域を超えたデータ転送ができず、描画処理においてネットワーク反応速度以上の反応は実現できない。よって、画面表示の間引きを、もともとデータ転送の遅いインターネットの反応速度及び帯域に合わせて行っても、操作性への影響は最小限である。
【００５７】
また、本実施の形態によれば、処理能力に制限があるスマートフォンやタブレットにおいても、優れた操作性を得ることができる。描画部４による描画処理は全画面に対する処理であるから元来処理負荷が高いが、従来の描画手法によれば画面フレームバッファ１４上の全ての画面データを描画するため、描画処理はリモートデスクトップ装置１０００の情報処理リソースの多くを奪うことになる。例えば、１２００ｘ８００の画面で２０ｆｐｓ程度の描画を行うとすれば、ハイビジョンテレビ並の処理能力となる。これは現時点において専用プロセッサやＣＰＵのマルチコア化が必要とされるレベルの処理能力である。しかし、本実施の形態のリモートデスクトップ装置１０００では、間引き処理部３が描画部４の処理負荷を抑制するため、このような高いレベルの処理能力を必要としない。
【００５８】
さらに、本実施の形態によれば、リモートデスクトップ装置１０００側に設けた間引き処理部３の処理のみによって、操作性を改善することができる。すなわち、リモートデスクトップのホスト装置、リモートデスクトップの通信プロトコル、通信路たるネットワーク、ネットワークにおけるデータ転送加速処理等に依存することなく、リモートデスクトップの端末装置側だけで、操作性の改善を実現可能である。
【００５９】
＜実施の形態２：多段接続及び多数接続＞
実施の形態２は、リモートデスクトップを多段接続及び多数接続した場合にかかる実施例である。
【００６０】
図６に多段接続及び多数接続の一形態を示す。この例において、端末装置（接続元）は、第１段階のホスト装置（接続先１）とリモートデスクトップ接続されて第１段階のホスト装置を遠隔操作する。また、第１段階のホスト装置（接続先１）は、第２段階のホスト装置（接続先２、３、４）とリモートデスクトップ接続されて第２段階のホスト装置を遠隔操作する。このように、リモートデスクトップを多段接続することにより、端末装置（接続元）は、第１段階のホスト装置（接続先１）を経由して、第２段階のホスト装置（接続先２、３、４）を遠隔操作することができる。
【００６１】
また、この例において、第１段階のホスト装置（接続先１）においては、第２段階のホスト装置（接続先２、３、４）それぞれにとの間でリモートデスクトップ接続を行うため、３つのリモートデスクトップクライアントが同時に実行されている。これをリモートデスクトップの多数接続という。
【００６２】
図２を用いて、本発明の実施の形態２にかかるリモートデスクトップ装置２０００の構成について説明する。
【００６３】
リモートデスクトップ装置２０００は、複数のリモートデスクトップクライアント２００、２１０、・・・２９０を有する。以下、各リモートデスクトップクライアントの構成について、リモートデスクトップクライアント２００を代表にとって説明する。
【００６４】
本実施の形態におけるリモートデスクトップクライアント２００は、通信部１、画面作成部２、間引き処理部３、描画部４、ネットワーク及び描画性能測定部６、間引き値計算部８を有する。これらの処理部は、実施の形態１のリモートデスクトップクライアント１００と共通するものである。特に言及しない限り、これらの処理部は、少なくとも実施の形態１のリモートデスクトップクライアント１００におけるものと同様の機能を有する。
【００６５】
加えて、本実施の形態におけるリモートデスクトップクライアント２００は、他リモートデスクトップ通信部５、描画量比較部７をさらに有する。
【００６６】
描画量比較部７は、多数接続の場合において間引き計算部８が最適な間引き値５３を計算するために必要なデータを、間引き計算部８に対し通知する処理を行う。
【００６７】
描画量比較部７は、描画部４から、このリモートデスクトップクライアント２００における画面の描画量５４を取得する。ここで、描画量５４とは、１秒間に何フレームの画像データを表示しているかを示す値である。描画量比較部７は、取得した描画量５４を、他リモートデスクトップ通信部５を経由して、このリモートデスクトップ装置２０００上で動作している他のリモートデスクトップクライアント２１０、・・・２９０に対し送信する。
【００６８】
さらに、描画量比較部７は、他リモートデスクトップ通信部５を経由して、このリモートデスクトップ装置２０００上で動作している他のリモートデスクトップクライアント２１０、・・・２９０から、それぞれの描画量５４を受信する。
【００６９】
そして、描画量比較部７は、このリモートデスクトップ装置２０００上で動作しているリモートデスクトップクライアント２００、２１０、・・・２０９それぞれの描画量５４を比較し、このリモートデスクトップクライアント２００の描画量５４が最も多いか否かを判定する。描画量比較部７は、この判定結果と、このリモートデスクトップクライアント２００の描画量５４と、を間引き計算部８に通知する。
【００７０】
なお、多数接続の場合で、リモートデスクトップクライアント２００がリモートデスクトップ装置２０００上のＧＵＩにおいてフォアグラウンドウィンドウとなっていない場合、描画量５４は実測より２倍から数倍のウェイトを持たせて計算する。この処理には、フォアグラウンドになっていないリモートデスクトップの描画量を実際より大きく扱うことで、フォアグラウンドになっているリモートデスクトップよりも描画抑制処理を優先させて働かせ、ユーザが今利用しているフォアグラウンド画面をバックグラウンド画面より優先して表示できるようにする目的がある。
【００７１】
本実施の形態におけるネットワーク及び描画性能測定部６は、多段接続の場合において間引き計算部８が最適な間引き値５３を計算するために必要なデータを、間引き計算部８に対し通知する処理を行う。
【００７２】
ネットワーク及び描画性能測定部６は、リモートデスクトップ装置２０００が他の装置からリモートデスクトップ接続されている場合、すなわち図６における接続先１又は接続先２、３、４のようにホスト装置として動作している場合には、以下の処理によって表示許容量５５を算出する。
【００７３】
ネットワーク及び描画性能測定部６は、このリモートデスクトップ装置２０００をホスト装置としてリモートデスクトップ接続している他の装置との間のネットワーク速度を測定し、このネットワーク速度に基づいて、表示許容量を算出する。具体的には、接続元のＰＣとの間のネットワーク転送速度を測定し、その値を１フレームの表示に必要なデータ量で割ることで表示許容量を計算可能である。
【００７４】
そして、ネットワーク及び描画性能測定部６は、算出した描画命令許容量及び表示許容量５５を、間引き値計算部８に対して通知する。なお、描画命令許容量については、実施の形態１と同様の手順により算出し得る。
【００７５】
本実施の形態における間引き値計算部８は、このリモートデスクトップクライアント２００の描画量５４が、表示許容量を超えているか否かを判定する。超えている場合、間引き値計算部８は、このリモートデスクトップクライアント２００の描画量５４がこのリモートデスクトップ装置２０００上で動作している他のリモートデスクトップクライアント２１０、・・・２０９との比較において最も多いか否かに応じて、リモートデスクトップクライアント２００の現在の間引き値５３を変更する。例えば、リモートデスクトップクライアント２００の描画量５４が最も多い場合には、現在の間引き値５３を１／２倍の間隔などに割り引いて、そうでない場合はそれより小さな割引率、例えば３／４倍の間隔に割り引く。この処理には、最も更新頻度の高い表示処理を行っているリモートデスクトップクライアントを優先的に間引くことにより、突出した表示処理を行っているリモートデスクトップがリモートデスクトップ装置全体の処理を圧迫することを防ぎ、複数のリモートデスクトップ利用時にもスムーズな画面表示を実現するという目的がある。
【００７６】
つぎに、リモートデスクトップ装置２０００の動作について説明する。
本実施の形態におけるモートデスクトップ装置２０００は、実施の形態１におけるモートデスクトップ装置１０００と同様、図３に示すフローチャートに従って動作する。
【００７７】
一方、本実施の形態におけるモートデスクトップ装置２０００は、間引き値計算部８が、多段接続及び多数接続に最適な間引き値５３を計算する処理に特徴を有する。図５のフローチャートを用いて、この間引き値計算部８の計算処理について説明する。なお、図５に示す計算処理は、図３のフローチャートに示した一連の処理とは非同期に動作する。
【００７８】
Ｓ１００：描画命令許容量の算出
ネットワーク及び描画性能測定部６は、ホスト装置とリモートデスクトップ装置１０００との間のネットワーク速度を測定し、ネットワーク速度に基づいて描画命令許容量を算出する。
【００７９】
ここで、ネットワーク及び描画性能測定部６は、リモートデスクトップの多段接続がなされているか否かを判定する。ここでいう多段接続とは、リモートデスクトップ装置２０００が、他の装置からさらにリモートデスクトップ接続されている場合、すなわち図６における接続先１又は接続先２、３、４のように、他の装置に対してリモートデスクトップのホスト装置としても動作している場合をいう。具体的には、ネットワーク及び描画性能測定部６は、リモートデスクトップクライアントが利用しているビデオデバイスが、リモートデスクトップホストが用意する仮想デバイスなのか、実際のハードウェアによる物理デバイスなのかを判定することにより、多段接続がなされているか否かを判定することができる。
【００８０】
この後、ネットワーク及び描画性能測定部６は、多段接続であるか否かに応じ、異なる方法を用いて表示許容量を算出する（Ｓ１０１又はＳ１０２）。これにより、多くの場合、多段接続である場合には、基本構成の場合に比べて大きな間引き量が設定されるであろう。これは、ハードウェア等による種々のアクセラレーション機能を備えるディスプレイやそれに準じる出力先にダイレクトに描画される場合と（基本構成）、レンダリングのほとんどをソフトウェアでカバーしかつレンダリングしたイメージをネットワークで転送する場合と（多段接続）では、多段接続の方が表示にかかる負荷が大きく、処理可能な画面データの量が相対的に少なくなるためである。
【００８１】
Ｓ１０１：表示許容量の算出（多段接続の場合）
多段接続であると判断された場合、ネットワーク及び描画性能測定部６は、このリモートデスクトップ装置２０００をホスト装置としてリモートデスクトップ接続している他の装置との間のネットワーク速度を測定し、このネットワーク速度に基づいて、表示許容量を算出する。具体的には、実際に画面データを送信することで転送速度を測定し、その値を１フレームの描画に必要なデータ量で割ることで表示許容量を計算可能である。
【００８２】
そして、ネットワーク及び描画性能測定部６は、Ｓ１００において算出した描画命令許容量及びＳ１０１において算出した表示許容量を、間引き値計算部８に対して通知する。
【００８３】
Ｓ１０２：表示許容量の算出（基本構成の場合）
一方、多段接続でない場合、すなわちリモートデスクトップ装置２０００が他の装置からリモートデスクトップ接続されておらず、もっぱら図６における接続元のようなリモートデスクトップの端末側としてのみ動作している場合には、ネットワーク及び描画性能測定部６は、リモートデスクトップ装置１０００の表示許容量を算出する。これは実施の形態１と同じ処理である。
【００８４】
そして、ネットワーク及び描画性能測定部６は、Ｓ１００において算出した描画命令許容量及びＳ１０２において算出した表示許容量を、間引き値計算部８に対して通知する。
【００８５】
Ｓ１０３：間引き値の決定
間引き値計算部８は、描画命令許容量と、表示許容量とに基づき、間引き値を計算する。具体的には、このリモートデスクトップ装置がユーザの利用している実端末の場合は、表示許容量を利用、ここから先にさらにリモートデスクトップされクライアントへ画面データを送っている場合は、描画命令許容量を利用する。例えば、実端末の場合において表示許容量が５フレーム／秒の時、間引き値は１／５＝０．２秒ごと、リモートデスクトップ接続（多段接続）の場合においては、描画命令許容量が５フレーム／秒のとき、１／５＝０．２秒ごととすることができる。
【００８６】
ここで、ネットワーク及び描画性能測定部６は、リモートデスクトップの多数接続がなされているか否かを判定する。ここでいう多数接続とは、リモートデスクトップ装置２０００において、複数のリモートデスクトップクライアント２００、２１０、・・２９０が動作している場合をいう。具体的には、ネットワーク及び描画性能測定部６は、リモートデスクトップクライアントが利用しているビデオデバイスが、リモートデスクトップホストが用意する仮想デバイスなのか、実際のハードウェアによる物理デバイスなのかを判定することにより、多数接続がなされているか否かを判定することができる。
【００８７】
多数接続であると判断された場合、望ましくは以下のＳ１０４ないしＳ１０７の処理がさらに実行される。
【００８８】
Ｓ１０４：描画量の取得（多数接続の場合）
描画量比較部７は、描画部４から、このリモートデスクトップクライアント２００における画面の描画量５４を取得する。具体的には、フレームバッファを１秒間に何度ビデオデバイスに転送しているかを計測することで描画量５４を取得可能である。
【００８９】
Ｓ１０５：描画量を他リモートデスクトップクライアントへ通知（多数接続の場合）
描画量比較部７は、取得した描画量５４を、他リモートデスクトップ通信部５を経由して、このリモートデスクトップ装置２０００上で動作している他のリモートデスクトップクライアント２１０、・・・２９０に対し送信する。
【００９０】
また、描画量比較部７は、他リモートデスクトップ通信部５を経由して、このリモートデスクトップ装置２０００上で動作している他のリモートデスクトップクライアント２１０、・・・２９０から、それぞれの描画量５４を受信する。
【００９１】
Ｓ１０６：描画量の比較（多数接続の場合）
そして、描画量比較部７は、このリモートデスクトップ装置２０００上で動作しているリモートデスクトップクライアント２００、２１０、・・・２０９それぞれの描画量５４を比較し、このリモートデスクトップクライアント２００の描画量５４が最も多いか否かを判定する。描画量比較部７は、この判定結果と、このリモートデスクトップクライアント２００の描画量５４と、を間引き計算部８に通知する。
【００９２】
Ｓ１０７：間引き値の変更（多数接続の場合）
本実施の形態における間引き値計算部８は、このリモートデスクトップクライアント２００の描画量５４が、表示許容量を超えているか否かを判定する。超えている場合、間引き値計算部８は、このリモートデスクトップクライアント２００の描画量５４が、このリモートデスクトップ装置２０００上で動作している他のリモートデスクトップクライアント２１０、・・・２０９の描画量との比較において最も多いか否かに応じて、リモートデスクトップクライアント２００の現在の間引き値５３を変更する。例えば、リモートデスクトップクライアント２００の描画量５４が最も多い場合には、現在の間引き値５３を１／２倍の間隔などに割り引いて、そうでない場合はそれより小さな割引率、例えば３／４倍の間隔に割り引く。この処理には、最も更新頻度の高い表示処理を行っているリモートデスクトップクライアントを優先的に間引くことにより、突出した表示処理を行っているリモートデスクトップがリモートデスクトップ装置全体の処理を圧迫することを防ぎ、複数のリモートデスクトップ利用時にもスムーズな画面表示を実現するという目的がある。
【００９３】
一般に、リモートデスクトップクライアントの描画量は、リモートデスクトップ装置２０００において、そのリモートデスクトップクライアントの画面がフォアグラウンドで表示されている場合、そのリモートデスクトップクライアントの画面が大きい場合、およびそのリモートデスクトップクライアントの画面更新が早い場合等に大きくなる。間引き計算部８は、このような描画量の大きいリモートデスクトップクライアントの画面データを優先的に間引くことにより、効率的な負荷軽減を行うことができる。
【００９４】
なお、これとは逆に、フォアグラウンドにあるリモートデスクトップクライアントや、フォーカスがあたっているリモートデスクトップクライアントは、実際に操作されていたり注目されていると推定されるから、かかるリモートデスクトップクライアントの間引き値を小さく設定することとしても良い。一方、画面が縮小表示されているリモートデスクトップクライアント、画面が一部分しか表示されていないリモートデスクトップクライアントなどは、注目度が低いと推定されるから、かかるリモートデスクトップクライアントの間引き値は大きくすることとしても良い。
【００９５】
本実施の形態によれば、リモートデスクトップを多段接続した場合においても、良好な操作性を得ることができる。それぞれリモートデスクトップクライアント２００が動作する複数のリモートデスクトップ装置２０００を多段接続する場合、リモートデスクトップの端末側においては、ネットワーク速度に応じて画面の更新頻度が最適化されるため、転送すべき描画データは減少し、端末側における処理負荷は低減される。また、ネットワークに対する負荷も低減される。よって、多段接続されたリモートデスクトップシステム全体にかかる負荷が抑制され、スムーズな操作環境を実現できる。
【００９６】
具体的には、多段接続の場合において上流（ホスト側）のネットワークが速く、下流（端末側）のネットワークが遅い場合であっても、中継役のリモートデスクトップ装置２０００は、上流から送信される画像データを単に下流へ引き継ぐのではなく、下流のネットワークの速度に応じて転送すべき画像データの量を調整する。このため、下流側における描画の遅延や画像乱れの発生を抑制できる。
【００９７】
また、本実施の形態によれば、リモートデスクトップを多数接続した場合も、複数のリモートデスクトップクライアントが動作するリモートデスクトップ端末２０００が、各リモートデスクトップクライアントの動作状況に応じ夫々の間引き値を最適化する。そのため、操作性への影響を抑えつつ、全体として処理負荷を効率的に軽減することができる。
【００９８】
そして、これらの構成は、多数接続、多段接続を同時に行う場合において同時に採用できる。この場合、それぞれによる技術的効果が相乗的に奏されるであろう。
【００９９】
＜その他の実施の形態＞
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上述の実施の形態のうち、基本構成のみを実施しても良く、多数接続に係る構成のみを実施しても良く、多段接続に係る構成のみを実施しても良い。あるいは、これらの任意の組合せを実施しても良い。
【０１００】
本発明は、スマートフォン、タブレットのほか、任意のシンクライアント、組み込み装置、その他画像を表示し得る比較的性能が非力な端末に適用可能である。
【０１０１】
また、本発明は、上述の実施の形態において例示したリモートデスクトップだけでなく、ホスト装置から通信路を介して送信された任意の画像データを端末装置において描画する任意のシステムに対して応用可能である。
【０１０２】
また、上述の実施の形態では、本発明を主にハードウェアの構成として説明したが、これに限定されるものではなく、任意の処理を、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（ｔａｎｇｉｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【０１０３】
１０００  リモートデスクトップ装置
１００  リモートデスクトップクライアント
２０００  リモートデスクトップ装置
２００  リモートデスクトップクライアント
２１０  他リモートデスクトップクライアント
２９０  他リモートデスクトップクライアント
１  通信部
２  画面作成部
３  間引き処理部
４  描画部
５  他リモートデスクトップ通信部
６  ネットワーク及び描画性能測定部
７  描画量比較部
８  間引き値計算部
１１  ＮＷバッファ
１２  画面シャドウバッファ
１４  画面フレームバッファ
５０  描画データ
５１  描画量
５２  他クライアント描画量
５３  間引き値
５４  描画量
５５  描画命令許容量、表示許容量
【図１】
2015060528.tif 000003
【図２】
2015060528.tif 000004
【図３】
2015060528.tif 000005
【図４】
2015060528.tif 000006
【図５】
2015060528.tif 000007
【図６】
2015060528.tif 000008