仮想デスクトップ高速表示技術
画面データ転送量をどうやって削減するか
そこで新たに開発したのが、仮想デスクトップ高速表示技術「RVEC(レベック)」です。今回、富士通研究所が開発したRVECは、画面の中で更新の多い領域を動画化し、それ以外の画面更新の差分を静止画で送信するというハイブリッド方式を採用しています(図2)。
デスクトップ画面を小さく分割したサブ領域ごとに画面更新量を測定し、数値の高いサブ領域を抽出します。そして、抽出したサブ領域を全て含む長方形(矩形)を生成して動画化領域とし、それ以外の領域は静止画領域として、それぞれに適した方式(RVEC独自のプロトコル)で転送します。図2において、サブ領域ごとの数値は一定時間の間に画面更新があった回数を意味します。数値が大きいほど、その領域の画面更新が多く、画面更新の差分をクライアントに送信するデータ量がより多くなります。
画面更新量は一定時間ごとに測定し、動画化領域と静止画領域を常に調整しているため、画面表示に応じて転送量を最適に抑えることができます。また、動画化領域をデスクトップ画面の一部分に絞り込み、処理を効率化したことでソフトウエアだけで動作可能となり、専用ハードウエアの導入を不要にしました。
図2:RVECでの画面更新領域抽出(クリックで拡大) |
富士通研究所の試行環境において、HD(高精細度)動画(1280×720ドット)を再生した時のデータ転送量を、RVECと既存の画面転送方式のリモートデスクトップと比較したところ、約1/10(0.93Mbps)に抑えることができました。
スムーズな操作を実現するためには
RVECは、画面更新が多い領域を抽出して、画面更新の差分を一時的に動画化してクライアントに送信するため、従来よりもデータ転送量を削減できます。それだけでなく、画面更新間隔のフレームレートを維持できるため、操作応答性能も向上できます。
シンクライアントシステムにおいて、データ転送量を比較する場合に、画面更新間隔のフレームレートも同時に考慮する必要があります。画面更新間隔のフレームレートは、画面変化をどのぐらい素早くクライアントに送信するか、に影響します。
通常は、30回/秒程度のフレームレートであれば、シンクライアントシステムを利用しているユーザーが、PCでローカルにアプリケーションを実行させているときの応答性能と比べて、ほぼ遜色なくスムーズな操作が行えます。画面更新間隔のフレームレートを下げれば、それだけでもデータ転送量は少なくなります。しかし、その分、画面更新間隔が長くなりますので、ユーザーにとっては応答性能が悪化し、例えばマウス操作がカクカクした印象を強く感じることになるでしょう。画面更新間隔のフレームレートはできるだけ下げずに、いかにデータ転送量を削減するかが、シンクライアントシステムの重要な技術ポイントになります。
では、ネットワーク通信帯域が制限された環境で、画面更新量が多い動画やグラフィックスを多用するアプリケーションをシンクライアントシステムで利用する場合、データ転送量を削減しつつ、スムーズな応答性能を維持するためにはどうすればいいのでしょうか。確かに、非常に優れた圧縮技術があれば、限りなく少ないデータ量でシンクライアントシステムが利用できることになります。しかし、一般的に、データの圧縮率を高めるためにはその分だけ処理量が増加します。その結果、圧縮処理の時間が応答性能に影響する操作遅延に上乗せされて、データ転送量を削減してもスムーズな操作が実現できるとは限りません。データを圧縮するための一つのアプローチとして、画質を一時的に落とすという考え方があります。
例えば、ユーザーがマウス操作でウィンドウを移動したり、CADで3次元オブジェクトを回転させたりしている間、必ずしもオリジナルの画質でなく、若干画質を落としてもそれほどユーザーが違和感を抱かない、ということが多々あります。ユーザーが操作をしている間は、画質を落として、操作が止まったら画質をもとに戻すことで、実質的にユーザーの体感に影響を及ぼさずに効果的にデータ転送量を削減することができます。
RVECでも、このようなアプローチを採用し、ネットワーク通信帯域の状況に応じて動画および静止画について適切な画質でデータを圧縮する処理を行います。この場合に、動画で送信する領域が多くなるとデータ転送量を削減できますが、動画圧縮の処理時間は領域面積に応じて多くなりますので、操作遅延にも影響します。画面更新があった部分のうち、その画面更新の差分について、どの領域を動画で送信し、どの領域を静止画で送信するかは、データ転送量と画質、さらには処理時間も考慮して決定します。