(57)【要約】      （修正有）【課題】シンクライアントでの更新開始を早め、操作感を向上させる。【解決手段】サーバ１００は、フレームバッファにコンピュータの実行結果を描画する画面を保持する。画面更新通知部１０５及び高頻度画面更新領域検出部１０６は、フレームバッファに格納された画面から動画として更新が行われる領域を動画の更新領域として抽出する。分割サイズ決定部１１０、転送速度推定部１１３、送信時間推定部１０８、動画圧縮率推定部１０９は、ネットワークの帯域、予め設定した送信時間の閾値、フレーム間予測を用いずに符号化されるフレームの平均圧縮率、及びフレーム間予測を用いて符号化されるフレームの平均圧縮率を含む情報から、動画の更新領域の分割状態を決定する。更新領域分割部１０７は、決定された分割状態で、動画領域と判定された更新領域を分割する。更新データ生成部１１１及び更新領域送信順番決定部１１２は、分割された更新領域を送信する【選択図】図１
2015149040.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク経由で接続された端末装置の表示部にコンピュータの実行結果を表示するための画像を生成してネットワークへ送信する情報処理装置であって、
前記コンピュータの実行結果を描画する画面を保持する画像メモリに格納された画面から動画として更新が行われる領域を動画の更新領域として抽出する更新領域抽出部と、
前記ネットワークの帯域、予め設定した送信時間の閾値、フレーム間予測を用いずに符号化されるフレームの平均圧縮率、およびフレーム間予測を用いて符号化されるフレームの平均圧縮率を含む情報から、前記動画の更新領域の分割状態を決定する分割状態決定部と、
前記決定された分割状態で、前記動画領域と判定された前記更新領域を分割する更新領域分割部と、
前記分割された更新領域を前記端末装置に送信する更新領域送信部と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記更新領域抽出部は、前記画像メモリに格納された画面から静止画として更新が行われる領域を静止画の更新領域としてさらに抽出し、
前記分割状態決定部は、記前記動画の更新領域の分割状態とともに、前記静止画の更新領域の分割状態を決定する、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記更新領域が複数ある場合に当該更新領域の送信の優先度を決定する更新領域優先度決定部と、
前記送信の優先度、送信するデータの種類、および前記ネットワークの帯域に基づいて、前記分割された更新領域の送信タイミングを決定する送信タイミング決定部と、
を更に備え、
前記更新領域送信部は、前記決定された送信タイミングで前記分割された更新領域を送信する、
ことを特徴とする請求項１または２のいずれかに記載の情報処理装置。
【請求項４】
ネットワーク経由で接続された端末装置の表示部にコンピュータの実行結果を表示するための画像を生成してネットワークへ送信する情報処理方法であって、
前記コンピュータの実行結果を描画する画面を保持する画像メモリに格納された画面から動画として更新が行われる領域を動画の更新領域として抽出し、
前記ネットワークの帯域、予め設定した送信時間の閾値、フレーム間予測を用いずに符号化されるフレームの平均圧縮率、およびフレーム間予測を用いて符号化されるフレームの平均圧縮率を含む情報から、前記動画の更新領域の分割状態を決定し、
前記決定された分割状態で、前記動画領域と判定された前記更新領域を分割し、
前記分割された更新領域を前記端末装置に送信する、
ことを特徴とする情報処理方法。
【請求項５】
ネットワーク経由で接続された端末装置の表示部にコンピュータの実行結果を表示するための画像を生成してネットワークへ送信する前記コンピュータに、
前記コンピュータの実行結果を描画する画面を保持する画像メモリに格納された画面から動画として更新が行われる領域を動画の更新領域として抽出し、
前記ネットワークの帯域、予め設定した送信時間の閾値、フレーム間予測を用いずに符号化されるフレームの平均圧縮率、およびフレーム間予測を用いて符号化されるフレームの平均圧縮率を含む情報から、前記動画の更新領域の分割状態を決定し、
前記決定された分割状態で、前記動画領域と判定された前記更新領域を分割し、
前記分割された更新領域を前記端末装置に送信する、
処理を実行させるための情報処理プログラム。
【請求項６】
請求項１ないし３のいずれかに記載の情報処理装置と通信して前記表示部に前記コンピュータの実行結果を示すサーバ画面を表示する端末装置であって、
前記情報処理装置から、前記サーバ画面上の動画の更新領域または動画の分割された更新領域のデータを受信し、当該受信したデータを動画デコードして、前記表示部に対応するメモリの画面展開領域に展開し、前記表示部に表示させる動画更新領域表示部と、
前記情報処理装置から、前記サーバ画面上の静止画の更新領域または静止画の分割された更新領域のデータを受信し、当該受信したデータを静止画デコードして、前記表示部に対応するメモリの画面展開領域に展開し、前記表示部に表示させる静止画更新領域表示部と、
を備えることを特徴とする端末装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク経由で接続された端末装置の表示部にコンピュータの実行結果を表示するための画像を生成してネットワークへ送信する情報処理装置、方法、プログラム、および端末装置に関する。
【背景技術】
【０００２】
近年、セキュリティや事業継続の観点からシンクライアント（Ｔｈｉｎ  Ｃｌｉｅｎｔ）の利用が拡大している。シンクライアントとは、ユーザが使うクライアント端末に必要最小限の処理をさせ大部分の処理をサーバ装置側に集中させたシステムアーキテクチャ、またはそのようなアーキテクチャで用いられる機能を絞り込んだ専用のクライアント端末装置をいう。
【０００３】
スマートフォンやタブレットの普及とモバイル回線の高速化にともない、モバイル端末からセキュアに社内システムに接続して利用する、モバイルシンクライアントのニーズも拡大している。
【０００４】
モバイル回線を利用してシンクライアントを利用する場合、帯域の変化、遅延等の要素により、快適に利用することが難しいという課題がある。
【０００５】
このような課題に対して従来、シンクライアント利用時に画面の更新が少ない領域を静止画で、更新の多い領域を動画で送信することで、より少ないデータ量で操作性を向上させる高速画面転送技術が知られている（例えば特許文献１に記載の技術）。この従来技術では、変更頻度判別部が、画像メモリに格納された画像を複数の領域に分割し、領域ごとにフレーム間の変更の頻度を判別する。第１の画像送信部は、変更のある領域の画像を送信する。高頻度変更領域識別部は、変更の頻度がしきい値を超えた領域を高頻度更新領域として識別する。送信停止部は、識別した領域について、第１の画像送信部での送信を停止する。第２の画像送信部は、識別した領域の画像を、第１の画像送信部よりも圧縮率の高い動画の圧縮処理を行って送信する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−２３８０１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、ネットワーク帯域が狭い場合、クライアント端末が１フレーム分のすべての更新領域データ （動画データ、静止画データ）を受信するまでの時間が長くなるため、操作から描画までの時間が長くなってしまうという課題があった。例えば、帯域が１００Ｍｂｐｓ（メガビット／秒）のネットワークで１フレームの送信時間が１５ミリ秒となる更新領域データを、帯域５Ｍｂｐｓのネットワークで送信する場合、単純計算で送信時間は３００ミリ秒となってしまう。
【０００８】
また、１フレーム分のすべての更新領域データを受信するまで画面が更新されないため、ユーザが操作してから画面が更新されるまでが長くなり、操作感が悪くなるという課題があった。
【０００９】
そこで、本発明の１つの側面では、ユーザが操作してからクライアント端末での更新開始を早めることを可能とし、操作感を向上することを目的とする。
【課題を解決するための手段】
【００１０】
態様の一例では、ネットワーク経由で接続された端末装置の表示部にコンピュータの実行結果を表示するための画像を生成してネットワークへ送信する情報処理装置であって、コンピュータの実行結果を描画する画面を保持する画像メモリと、画像メモリに格納された画面から動画として更新が行われる領域を動画の更新領域として抽出する更新領域抽出部と、ネットワークの帯域、予め設定した送信時間の閾値、フレーム間予測を用いずに符号化されるフレームの平均圧縮率、およびフレーム間予測を用いて符号化されるフレームの平均圧縮率を含む情報から、動画の更新領域の分割状態を決定する分割状態決定部と、決定された分割状態で、動画領域と判定された更新領域を分割する更新領域分割部と、分割された更新領域を端末装置に送信する更新領域送信部と、を備える。
【発明の効果】
【００１１】
ユーザが操作してからクライアント端末での更新開始を早めることが可能となり、操作感が向上する。
【図面の簡単な説明】
【００１２】
【図１】第１の実施形態のブロック図である。
【図２】第１の実施形態における画面分割方法の説明図である。
【図３】第１の実施形態における静止画の更新領域の送信方法の説明図である。
【図４】第１の実施形態における動画の更新領域の送信方法の説明図である。
【図５】第１の実施形態におけるサーバの各機能を一般的なサーバコンピュータ装置がソフトウェア処理として実行する場合の処理例を示すフローチャートである。
【図６】第１の実施形態における動画の更新領域の送信処理を示すフローチャートである。
【図７】仮想デスクトップ画面内に動画の更新領域７０１のみが存在する場合の本実施形態の具体的な処理例を示す図である。
【図８】第２の実施形態のブロック図である。
【図９】優先順位の指標例を示す図である。
【図１０】更新領域優先処理の例を示すフローチャートである。
【図１１】送信タイミング決定処理の例を示すフローチャートである。
【図１２】第２の実施形態におけるサーバの各機能を一般的なサーバコンピュータ装置がソフトウェア処理として実行する場合の処理例を示すフローチャートである。
【図１３】第２の実施形態における動画の更新領域の送信処理を示すフローチャートである。
【図１４】第２の実施形態における静止画の更新領域の送信処理を示すフローチャートである。
【図１５】動画と静止画の更新領域が混在する場合の第２の実施形態の具体的動作例を示す図である。
【図１６】動画領域が複数ある場合の第２の実施形態の具体的動作例を示す図である。
【図１７】ネットワーク帯域が変動した場合の第２の実施形態の具体的動作例を示す図である。
【図１８】新たな動画領域を検出した場合の第２の実施形態の具体的動作例を示す図である。
【図１９】更新領域サイズが変更される場合の第２の実施形態の具体的動作例を示す図である。
【図２０】第１または第２の実施形態のシステムをソフトウェア処理として実現できるコンピュータのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、本発明を実施するための形態について図面を参照しながら詳細に説明する。
図１は、第１の実施形態のブロック図である。
【００１４】
クライアント端末１２０は、サーバ１００に対して、シンクライアント端末として動作する。
【００１５】
クライアント端末１２０は、操作情報取得部１２１、通信部１２２、画面更新情報取得部１２３、画面領域表示部１２４、高頻度画面領域表示部１２５、画面表示部１２６を備える。
【００１６】
サーバ１００は、通信部１０１、操作情報取得部１０２、表示画面生成部１０３、フレームバッファ１０４、画面更新通知部１０５、高頻度画面領域検出部１０６、更新領域分割部１０７、送信時間推定部１０８を備える。また、サーバ１００は、動画圧縮率推定部１０９、分割サイズ決定部１１０、更新データ生成部１１１、更新領域送信順番決定部１１２、転送速度推定部１１３を備える。
【００１７】
まず、クライアント端末１２０において、操作情報取得部１２１は、クライアント端末１２０を操作するユーザによるキー入力やマウス操作を取得し、通信部１２２に操作情報として通知する。
【００１８】
通信部１２２は、サーバ１００の画面更新情報を受信すると、画面更新情報取得部１２３にデータを渡し、肯定応答を示すＡｃｋ（Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ）応答に受信時間を設定し、サーバ１００に返送する。また、通信部１２２は、操作情報取得部１２１で取得した操作情報を受け取ると、サーバ１００に送信する。
【００１９】
画面更新情報取得部１２３は、サーバ画面の更新データを取得し、それが高頻度画面領域の更新データである場合は高頻度画面領域表示部１２５に、高頻度画面領域以外の更新データである場合は画面領域表示部１２４に、それぞれサーバ画面の更新領域データを振り分ける。
【００２０】
画面領域表示部１２４は、画面更新情報取得部１２３から取得した更新データ(静止画の更新領域のデータ)をデコードし、画面データ領域に展開する。
【００２１】
高頻度画面領域表示部１２５は、画面更新情報取得部１２３から取得した更新データ(動画の更新領域のデータ)をデコードし、画面データ領域に展開する。
【００２２】
画面表示部１２６は、更新データが展開された画面データ領域をＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：画像処理ユニット）の描画用メモリに書き込むことで、画面への描画を実行する。
【００２３】
次に、サーバ１００において、通信部１０１は、クライアント端末１２０での操作情報を受信すると、操作情報取得部１０２に操作情報を渡し、転送速度推定部１１３からサーバ画面更新データを受け取ると、そのデータをクライアント端末１２０に送信する。
【００２４】
操作情報取得部１０２は、通信部１０１から通知された操作情報を展開し実行する。
表示画面生成部１０３は、操作情報取得部１０２で実行した操作に対するアプリケーション等の描画を含め、表示画面データを生成し、その表示画面データをフレームバッファ１０４に書き込む。
【００２５】
フレームバッファ１０４は、表示画面生成部１０３によって表示画面データが書き込まれると、表示処理を実行する。
【００２６】
画面更新通知部１０５は、フレームバッファ１０４に書込みがあった場合に、更新領域を検出し、高頻度画面領域検出部１０６に通知する。
【００２７】
高頻度画面領域検出部１０６は、画面更新通知部１０５から更新領域が通知されると、更新領域の連続更新回数が閾値以上の場合に更新領域を高頻度画面更新領域として設定する。
【００２８】
更新領域分割部１０７は、高頻度画面領域検出部１０６での検出結果に基づいて、高頻度画面更新領域とそれ以外の更新領域の領域サイズを送信時間推定部１０８に通知し、送信時間推定部１０８から各更新領域の送信時間を取得する。更新領域分割部１０７は、取得した各更新領域の送信時間を分割サイズ決定部１１０に通知し、分割サイズ決定部１１０から高頻度画面更新領域とそれ以外の更新領域それぞれの分割サイズを取得する。更新領域分割部１０７は、取得した分割サイズで高頻度画面更新領域とそれ以外の更新領域のそれぞれを分割し、更新領域送信順番決定部１１２に通知する。
【００２９】
送信時間推定部１０８は、更新領域分割部１０７から更新領域サイズを受信すると、転送速度推定部１１３からネットワーク帯域を取得し、送信時間を推定して、その送信時間を更新領域分割部１０７に通知する。
【００３０】
動画圧縮率推定部１０９は、更新データ生成部１１１から更新領域サイズと動画圧縮後サイズを取得し、Ｉフレーム/Ｐフレームそれぞれについて、過去の圧縮率もふまえて圧縮率を推定し、分割サイズ決定部１１０に通知する。
【００３１】
ここで、動画圧縮では、最初のフレームでは、動画領域全体を圧縮（フレーム内圧縮）する。次のフレーム以降は、前フレームの情報も利用して圧縮（フレーム間圧縮）する。フレーム内圧縮で圧縮されるデータは、静止画圧縮で圧縮したデータサイズと同じくらいのサイズとなる。フレーム内圧縮で圧縮されたフレームデータはＩ（Ｉｎｔｒａ−ｃｏｄｅｄ）フレーム、フレーム間圧縮で圧縮されたフレームデータはＰ（Ｐｒｅｄｉｃｔｅｄ）フレームと呼ばれる。また、動画データは不可逆圧縮であるため、定期的にフレーム内圧縮（Ｉフレーム）で圧縮することにより、元データとの差が徐々に大きくなるのを抑制している。
【００３２】
分割サイズ決定部１１０は、更新領域分割部１０７から更新領域の送信時間が通知されると、更新領域が動画の更新領域である場合には、動画圧縮率推定部１０９からＩフレームおよびＰフレームの各動画圧縮率を取得し、分割サイズを決定し、その分割サイズを更新領域分割部１０７に通知する。一方、分割サイズ決定部１１０は、更新領域が静止画の更新領域である場合には、通知された送信時間が設定された閾値よりも大きい場合には、送信時間がその閾値内に入るように、更新領域の分割サイズを決定する。
【００３３】
更新データ生成部１１１は、高頻度画面更新領域とそれ以外の更新領域について、更新領域分割部１０７で必要に応じて分割された各分割更新領域をエンコードする。更新データ生成部１１１は、更新領域が動画領域である場合には、エンコード前の領域サイズとエンコード後のデータサイズを、動画圧縮率推定部１０９に通知する。
【００３４】
更新領域送信順番決定部１１２は、更新領域ごとに送信順序を優先順位の指標をもとに決定し、決定した順に更新領域データを転送速度推定部に通知する。
【００３５】
転送速度推定部１１３は、更新領域送信順番決定部１１２から通知された更新データに、転送速度を推定するための送信開始時間や送信データサイズ等を送信データのヘッダ等に設定し、通信部１０１に通知する。転送速度推定部１１３は、クライアント端末１２０からのＡｃｋ応答受信時に設定される受信時間と送信時に設定した送信開始時間と送信データサイズから転送速度を推定する。
【００３６】
以上の第１の実施形態の動作について、以下に詳細に説明する。
図２は、第１の実施形態における画面分割方法の説明図である。
【００３７】
本実施形態では、サーバ１００の画面更新通知部１０５および高頻度画面領域検出部１０６は、フレームバッファ１０４に格納されるデスクトップ画面を、例えば図２（ａ）に示されるように、８×８にメッシュ分割して処理する。
【００３８】
画面更新通知部１０５は、図２（ａ）のようにメッシュ分割されたデスクトップ画面上で更新される矩形の情報を収集し、一定時間における更新頻度が閾値より高いメッシュを取得する。例えば、図２（ａ）に示されるように、デスクトップ画面上で、マウスカーソルが２０１として示されるように移動している場合、あるいは、動画が再生されている領域２０２が存在する場合、画面更新通知部１０５は、次のような動作を実行する。画面更新通知部１０５は、フレームバッファ１０４上で更新されるフレーム画像間で、画素データの更新頻度が高いメッシュ領域２０３を抽出し、高頻度画面領域検出部１０６に通知する。
【００３９】
高頻度画面領域検出部１０６は、画面更新通知部１０５から通知された複数のメッシュ領域を合成することにより、図２（ｂ）に示されるように、変更されている画面領域２０４および２０５を推定する。高頻度画面領域検出部１０６は、推定した更新領域２０４および２０５の更新回数を計測し、更新回数が予め設定した閾値を超える場合にはその更新領域を高頻度画面更新領域として設定する。本実施形態では、高頻度画面更新領域は動画領域（あるいは動画化されるべき領域）として判定され、その他の更新領域は静止画領域として判定される。例えば図２の更新領域２０４は動画再生領域２０２を含む動画領域として判定され、更新領域２０５は静止画領域として判定される。
【００４０】
高頻度画面領域検出部１０６が画面の更新領域を高頻度画面更新領域以外の静止画領域として判定した場合には、更新領域分割部１０７は、静止画の更新領域サイズを送信時間推定部１０８に通知する。送信時間推定部１０８は、更新領域サイズを受信すると、転送速度推定部１１３からネットワーク帯域を取得し、送信時間を推定して、その静止画の更新領域の送信時間を更新領域分割部１０７に通知する。更新領域分割部１０７は、取得した静止画の更新領域の送信時間を分割サイズ決定部１１０に通知する。分割サイズ決定部１１０は、前述したように、通知された送信時間が設定された閾値よりも大きい場合には、送信時間がその閾値内に入るように、静止画の更新領域の分割サイズを決定し、その分割サイズを更新領域分割部１０７に通知する。
【００４１】
更新データ生成部１１１は、静止画の更新領域について、更新領域分割部１０７で必要に応じて分割された分割更新領域をエンコードする。このようにしてエンコードされた静止画の更新領域は、更新領域送信順番決定部１１２および転送速度推定部１１３から通信部１０１を介して、クライアント端末１２０に送信される。
【００４２】
図３は、本実施形態における静止画の更新領域の送信方法の説明図である。いま例えば、クライアント端末１２０から操作情報がサーバ１００に送信され（図３のステップＳ３０１）、この結果、サーバ１００のフレームバッファ１０４のデスクトップ画面（以下これを「仮想デスクトップ画面」と記載する）に対して、画面更新がなされ（図３のステップＳ３０２）、更新領域３０１が検出されたとする。ここで、送信時間推定部１０８で推定された送信時間に基づいて、分割サイズ決定部１１０が、更新領域３０１を、例えば分割更新領域３０２ａ、３０２ｂ、３０２ｃに３分割する。この結果、更新データ生成部１１１は、更新領域３０１を分割した各分割更新領域３０２ａ、３０２ｂ、３０２ｃを順次送信する（図３のステップＳ３０３）。クライアント端末１２０では、通信部１２２および画面更新情報取得部１２３が、分割更新領域のデータを受信し、画面領域表示部１２４に引き渡す。画面領域表示部１２４は、まず分割更新領域３０２ａを、図３の３０３に示されるように分割して表示する。画面領域表示部１２４は、他の分割更新領域３０２ｂ、３０２ｃについても、それらを受信したら順次同様に分割して表示する。
【００４３】
このようにして、本実施形態の場合、静止画の更新領域については、クライアント端末１２０は受信した分割更新領域から順次表示するため、操作・表示までの時間が短縮され、レスポンスが速く感じられるようになる。
【００４４】
次に、高頻度画面領域検出部１０６が画面の更新領域を動画の更新領域（高頻度画面更新領域）として判定した場合について説明する。
【００４５】
図４は、本実施形態における動画の更新領域の送信方法の説明図である。
まず、静止画の更新領域の場合と同様に、動画の更新領域を必要に応じて送信時間に基づいて単純に分割しながら送信する場合を考える。図４（ａ）は、そのような場合を想定したときの動画の更新領域の送信動作例を示す図である。ここでは、送信時間を考慮して例えば１回の送信あたり５０ミリ秒が確保されるとする。そして、仮想デスクトップ画面上の動画の更新領域４００について、２つに分割された分割更新領域４０１ａおよび４０１ｂが順次送信されるとする。この場合、動画では、最初のフレームはＩフレームであり、Iフレームを予め設定した時間、例えば５０ミリ秒内で送信するように動画領域を分割した場合、次のような問題が発生する。まず、図４（ａ）の０〜５０ミリ秒のタイミングで、動画の分割更新領域４０１ａに対応するＩフレームが送信される。続いて、図４（ａ）の５０〜１００ミリ秒のタイミングで、動画の分割更新領域４０１ｂに対応するＩフレームが送信される。しかし、この２つめの分割更新領域４０１ｂのＩフレームを送信している間は、図４の４０２として示されるように、送信しているＩフレームの分割更新領域４０１ｂ以外の、分割更新領域４０１ａに対応するＰフレームを送信できない。よって、クライアント端末１２０では、図４（ａ）の４０３で示される期間において、動画の更新が行われず、操作が引っかかるように感じる。これは、更新領域の分割数が多いほど、顕著になる。さらに、Ｉフレームは前述したように定期的に送信されるため、定期的に操作性が悪化してしまう。
【００４６】
そこで、本実施形態では、更新領域が動画である場合には、分割サイズ決定部１１０は、更新領域分割部１０７から動画の更新領域の送信時間を通知されると、動画圧縮率推定部１０９からＩフレームおよびＰフレームの各動画圧縮率を取得する。次に、分割サイズ決定部１１０は、動画の更新領域のＩフレーム転送時のデータ量とＰフレーム転送時のデータ量を、Ｉフレーム／Ｐフレームの平均圧縮率から推測する。そして、分割サイズ決定部１１０は、これらの推測したＩフレーム／Ｐフレーム転送時のデータ量と送信時間から、ＩフレームおよびＰフレームの両方を送信できるように、更新領域の分割数、分割サイズを決定し、更新領域分割部１０７に通知する。更新領域分割部１０７は、通知された分割サイズで動画の更新領域のＩフレーム、Ｐフレームを混在させて分割し、動画として圧縮後、クライアント端末１２０に送信する。
【００４７】
図４（ｂ）は、本実施形態による動画の更新領域の送信動作例を示す図である。ここでは、図４（ａ）の場合と同様に、送信時間を考慮して例えば１回の送信あたり５０ミリ秒が確保されるとする。そして、仮想デスクトップ画面上の動画の更新領域４０４について、３つに分割された分割更新領域４０５ａ、４０５ｂ、および４０５ｃが順次送信されるとする。この場合、まず、図４（ｂ）の０〜５０ミリ秒のタイミングで、動画の分割更新領域４０５ａに対応するＩフレームが送信される。続いて、図４（ｂ）の５０〜１００ミリ秒のタイミングで、動画の分割更新領域４０５ｂに対応するＩフレームが送信されるとともに、動画の分割更新領域４０５ａに対応する２フレーム目のＰフレームも送信される。さらに、図４（ｂ）の１００〜１５０ミリ秒のタイミングで、動画の分割更新領域４０５ｃに対応するＩフレームが送信される。これとともに、動画の分割更新領域４０５ａに対応する３フレーム目のＰフレームおよび動画の分割更新領域４０５ｂに対応する２フレーム目のＰフレームも送信される。
【００４８】
このようにして、本実施形態では、Ｉフレーム送信時も他の分割領域のＰフレームを送信できる。このため、更新領域４０４での動画の表示をスムーズに感じることが可能となる。
【００４９】
以上のように、更新領域が動画または静止画のどちらの場合であっても、本実施形態では、ネットワーク帯域が狭い場合、クライアント端末１２０は、１フレーム分の動画データや静止画データを受信するよりも、より速く分割領域のデータを受信できる。このため、クライアント端末１２０のユーザは、操作から描画までの時間が、従来よりも速いと感じることができるようになり、操作感を向上させることが可能となる。
【００５０】
図５は、第１の実施形態に係る図１のブロック図で示されるサーバ１００の各機能を、一般的なサーバコンピュータ装置がソフトウェア処理として実行する場合の、処理例を示すフローチャートである。このフローチャートの処理は、サーバコンピュータ装置のＣＰＵ（中央演算処理装置）がメモリに記憶された仮想デスクトップ制御プログラムを実行する処理である。
【００５１】
まず、クライアント端末１２０から操作情報が受信されるまで待機される（ステップＳ５０１の判定がＮＯの繰返し処理）。
【００５２】
クライアント端末１２０から操作情報が受信されてステップＳ５０１の判定がＹＥＳになると、クライアント端末１２０から実行指定されているサーバ１００上のアプリケーションプログラムがフレームバッファ１０４に画像情報を格納する（ステップＳ５０２）。クライアント端末１２０上でユーザが、あたかもローカル端末のウインドウシステムのデスクトップ画面を操作するように、サーバ１００がクライアント端末１２０のディスプレイに表示される仮想デスクトップ画面上で、アプリケーションの操作を行う。この操作情報が、クライアント端末１２０からサーバ１００に送信される。この結果、サーバ１００上でアプリケーションプログラムが実行され、その結果、仮想デスクトップ画面の表示の書換えが必要になると、アプリケーションプログラムがフレームバッファ１０４内の仮想デスクトップ画面領域に対して、表示の更新を行う。このステップＳ５０１で実行される処理は、図１の表示画面生成部１０３の機能に対応する。
【００５３】
次に、フレームバッファ１０４から仮想デスクトップ画面の画面データが取得され（ステップＳ５０３）、画面更新が発生したか否かが判定される（ステップＳ５０４）。このステップＳ５０３とステップＳ５０４で実行される処理は、図１の画面更新通知部１０５の機能に対応する。
【００５４】
画面更新がなくステップＳ５０４の判定がＮＯならば、ステップＳ５０１の待機処理に戻る。
【００５５】
画面更新があってステップＳ５０４の判定がＹＥＳならば、サーバ１００が通信中のネットワーク帯域が取得され、データの転送速度が計算される（ステップＳ５０５）。
【００５６】
次に、画面の更新領域のサイズと画面データの圧縮率に基づいて、転送データ量が取得される（ステップＳ５０６）。
【００５７】
上述のステップＳ５０５とステップＳ５０４で実行される処理は、図１の送信時間推定部１０８の機能に対応する。
【００５８】
次に、画面の更新領域が動画領域、あるいは動画化されるべき高頻度画面更新領域であるか否かを判定する処理が実行され（ステップＳ５０７）、更新領域が動画化領域（高頻度画面更新領域）であるか否かが判定される（ステップＳ５０８）。このステップＳ５０７とステップＳ５０８で実行される処理は、図１の高頻度画面更新領域検出部１０６の機能に対応する。
【００５９】
更新領域が動画化領域ではなくステップＳ５０８の判定がＮＯならば、図３を用いて前述した静止画領域処理が実行される（ステップＳ５０９）。一方、更新領域が動画化領域でステップＳ５０８の判定がＹＥＳならば、図４（ｂ）を用いて前述した動画領域処理が実行される（ステップＳ５１０）。ステップＳ５０９またはステップＳ５１０の処理は、図１の更新領域分割部１０７、分割サイズ決定部１１０、および更新データ生成部１１１の機能に対応する。
【００６０】
ステップＳ５０９またはステップＳ５１０の処理の後、ステップＳ５０１の待機処理に戻る。
【００６１】
図６は、図５のステップＳ５１０内で実行される動画の更新領域の送信処理を示すフローチャートである。
【００６２】
まず、１つ前の動画の更新領域の送信タイミングで後述するステップＳ６０６の処理で算出されているＩフレームの平均圧縮率から、Ｉフレーム送信時のデータサイズが推定される（ステップＳ６０１）。
【００６３】
次に、１つ前の動画の更新領域の送信タイミングで後述するステップＳ６０７の処理で算出されているＰフレームの平均圧縮率から、Ｐフレーム送信時のデータサイズが推定される（ステップＳ６０２）。
【００６４】
そして、ステップＳ６０１とステップＳ６０２で推定されたＩフレーム／Ｐフレーム転送時のデータ量と送信時間から、ＩフレームおよびＰフレームの両方を送信できるように、更新領域の分割数、分割サイズが決定される（ステップＳ６０３）。
【００６５】
以上のステップＳ６０１からＳ６０３の処理は、図１の分割サイズ決定部１１０の機能に対応する。
【００６６】
その後、ステップＳ６０３で決定された分割サイズで、その分割更新領域のデータが分割されて、動画として圧縮された後、クライアント端末１２０に送信する（ステップＳ６０４）。この処理は、図４（ｂ）を用いて前述した、図１の更新領域分割部１０７および更新データ生成部１１１の機能に対応する。
【００６７】
その後、送信されたデータはＩフレームであるか否かが判定される（ステップＳ６０５）。
【００６８】
送信されたデータがＩフレームでステップＳ６０５の判定がＹＥＳならば、送信されたＩフレームの平均圧縮率が推測される（ステップＳ６０６）。ここで推測されたＩフレームの平均圧縮率は、動画の更新領域の次のフレームの送信タイミングにおける前述したステップＳ６０１の処理で参照される。
【００６９】
送信されたデータがＩフレームではなくステップＳ６０５の判定がＮＯならば、送信されたＰフレームの平均圧縮率が推測される（ステップＳ６０７）。ここで推測されたＰフレームの平均圧縮率は、動画の更新領域の次のフレームの送信タイミングにおける前述したステップＳ６０２の処理で参照される。
【００７０】
以上のステップＳ６０６およびステップＳ６０７の処理は、図１の動画圧縮率推定部１０９の機能に対応する。
【００７１】
ステップＳ６０６またはステップＳ６０７の処理の後、図６のフローチャートの処理を終了し、図５のステップＳ５１０の動画領域処理を終了する。
【００７２】
図７は、仮想デスクトップ画面内に動画の更新領域７０１のみが存在する場合の第１の実施形態の具体的な処理例を示す図である。
【００７３】
まず、この処理例において、図１の高頻度画面更新領域検出部１０６の機能または図５のステップＳ５０４の処理により、例えば図７（ａ）の７０１として示される更新領域の画面サイズは、１０２４×７６８ピクセルと算出されているとする。また、図１の動画圧縮率推定部１０９の機能または図６のステップＳ６０６およびステップＳ６０７の処理により、圧縮率は、Ｉフレームが５％、Ｐフレームが１％と算出されているとする。さらに、図１の転送速度推定部１１３の機能または図５のステップＳ５０５の処理により、ネットワーク帯域は５Ｍｂｐｓ（＝５０００ｋｂｐｓ（キロビット／秒））と推定されているとする。さらに、転送時間閾値は１００ｍｓｅｃ（ミリ秒）であると仮定する。
【００７４】
前述した図１の分割サイズ決定部１１０の機能または図６のステップＳ６０３の処理により、転送時間が転送時間閾値以下になるように分割数が決定される。
更新領域のデータサイズ(無圧縮時)：３ＭＢ（メガバイト）
Ｉフレームのデータサイズ(推測値)：１５０ｋＢ（キロバイト）
Ｐフレームのデータサイズ(推測値)： １５ｋＢ
【００７５】
分割数をｎとして１回のデータ転送量は、最大でＩフレームは１／ｎ、Ｐフレームは（ｎ−１）／ｎとなり、転送時間が転送時間閾値の１００ミリ秒以下になる転送時間を求める。なお、「ｋｂｉｔ」＝キロビットである。
((150×8)[kbit]÷n+(15×8)[kbit]×(n-1)÷n)÷5000[kbps]≦0.1[sec]
【００７６】
上述の計算式より、ｎ≧２．８４となり、分割数は３と算出される。よって、図７（ｂ）に示されるように、更新領域７０１が３分割されることで、各分割更新領域７０２ａ、７０２ｂ、７０２ｃの動画データの送信タイミングは、それぞれの分割更新領域から右方向に伸びる矢印で示されるタイミングとなる。図７（ｂ）から理解されるように、本実施形態では、１つの送信タイミングで、複数の分割更新領域の動画のＩフレームとＰフレームを混在させて送信することが可能となる。より具体的には、混在させられる各々のデータは、インターネットまたはローカルエリアネットワーク上をサーバ１００からクライアント端末１２０に１つの送信期間内で混在して送信される複数のパケットデータのそれぞれに格納されて、伝送される。このとき例えば、各パケットデータのペイロード部には、どの分割更新領域のどの描画タイミングのＩ／Ｐどちらのデータであるかを識別する情報とその情報に対応する描画データが格納される。これにより、ネットワーク帯域が狭い場合、クライアント端末１２０は、１フレーム分の動画データを受信するよりも、より速く分割領域のデータを受信できる。このため、クライアント端末１２０のユーザは、操作から描画までの時間が、従来よりも速いと感じることができるようになり、操作感を向上させることが可能となる。
【００７７】
図８は、第２の実施形態のブロック図である。
第１の実施形態で説明した更新領域が複数ある場合や、動画の更新領域が変更された場合には、更新領域をサーバからクライアント端末に送信する際に、優先順位を設定し送信タイミングを変更する必要がある。更新領域が複数ある場合とは、主に以下のような場合が想定される。
・動画の更新領域と静止画の更新領域が混在する。
・動画の更新領域が複数存在する。
・新たに動画の更新領域を検出した場合。
【００７８】
これらの場合における制御処理を実現するために、第２の実施形態に係る図８に示されるサーバ１００の構成では、第１の実施形態に係る図１のサーバ１００の構成に加えて、更新領域優先度決定部８０１と送信タイミング決定部８０２が追加された構成を有する。
【００７９】
更新領域優先度決定部８０１は、画面更新通知部１０５で検出された更新領域の優先順位を、優先順位の指標等のあらかじめ設定された指標に基づいて、更新領域の送信優先度を決定し、更新領域分割部１０７に通知する。
【００８０】
図９は、更新領域優先度決定部８０１において参照される優先順位の指標例を示す図である。予め定めた優先順位の設定指標をもとに各更新領域の優先順位を決定する。
【００８１】
設定指標に利用するパラメータとしては、仮想デスクトップ画面上での更新領域が表示されているウインドウがアクティブウィンドウか否か、更新領域サイズ、動画の更新領域か静止画の更新領域かなどを利用する。
【００８２】
図９に例示される優先順位の指標例では、アクティブウィンドウ内の更新領域で、かつ動画のＩフレームを送信時の優先順位が一番高く、非アクティブウィンドウ内の静止画の更新領域データを送信時の優先順位が一番低い。
【００８３】
更新領域優先度決定部８０１は、図９に例示される優先順位の指標例を参照した結果、同じ優先順位の更新領域が複数ある場合は、高優先順位の更新領域との近接距離や更新領域の大きさで優先順位を決定する。
【００８４】
図１０は、図９の優先順位の指標例に従って動作する更新領域優先度決定部８０１の機能を、サーバ１００がプログラムによる更新領域優先処理として実行する処理例を示すフローチャートである。
【００８５】
まず、更新領域はアクティブウィンドウ内であるか否かが判定される（ステップＳ１００１）。
【００８６】
更新領域がアクティブウィンドウ内でステップＳ１００１の判定がＹＥＳの場合、次に更新領域は動画であるか否かが判定される（ステップＳ１００２）。
【００８７】
更新領域が動画でステップＳ１００２の判定がＹＥＳの場合、さらに更新領域はＩフレームであるか否かが判定される（ステップＳ１００３）。
【００８８】
更新領域がＩフレームでステップＳ１００３の判定がＹＥＳの場合、優先順位に“１”が設定される（ステップＳ１００４）。この優先順位“１”が設定された場合には、図９に示されるように、送信タイミングごとに送信が実行される。
【００８９】
更新領域がＩフレームではなく動画のＰフレームであってステップＳ１００３の判定がＮＯの場合、優先順位に“２”が設定される（ステップＳ１００５）。更新領域がアクティブウィンドウ内でステップＳ１００１の判定がＹＥＳで、かつ更新領域が動画ではなくステップＳ１００２の判定がＮＯ、すなわちアクティブウィンドウ内の静止画の場合も、優先順位に“２”が設定される（ステップＳ１００５）。この優先順位“２”が設定された場合には、優先順位が“１”の場合と同様に、図９に示されるように、送信タイミングごとに送信が実行される。
【００９０】
更新領域がアクティブウィンドウ内ではなくステップＳ１００１の判定がＮＯの場合、次に更新領域は動画であるか否かが判定される（ステップＳ１００６）。
【００９１】
更新領域が動画でステップＳ１００６の判定がＹＥＳの場合、さらに更新領域はＩフレームであるか否かが判定される（ステップＳ１００７）。
【００９２】
更新領域がＩフレームでステップＳ１００７の判定がＹＥＳの場合、優先順位に“３”が設定される（ステップＳ１００８）。この優先順位“３”が設定された場合には、図９に示されるように、優先順位１のＩフレームが送信されていないタイミングで送信が実行される。
【００９３】
更新領域がＩフレームではなく動画のＰフレームであって、ステップＳ１００７の判定がＮＯの場合、優先順位に“４”が設定される（ステップＳ１００９）。更新領域がアクティブウィンドウ内でなくステップＳ１００１の判定がＮＯで、更新領域が動画でなくステップＳ１００６の判定がＮＯの場合、すなわち非アクティブウィンドウ内の静止画の場合も、優先順位に“４”が設定される（ステップＳ１００９）。この優先順位“４”が設定された場合には、Ｉフレームが送信されない時にｎ回にｍ回（ｍ＜ｎ）送信が実行される。
【００９４】
以上のようにして、図９の優先順位の指標例に従って動作する更新領域優先度決定部８０１の機能が、プログラム処理として実行される。
【００９５】
次に、図８の送信タイミング決定部８０２は、更新データ生成部１１１で生成したエンコード後のデータサイズや、転送速度推定部１１３が推定した転送速度に基づいて、更新領域データの送信タイミングを決定し、更新領域送信順番決定部１１２に通知する。
【００９６】
図１１は、送信タイミング決定部８０２の機能を、サーバ１００がプログラムによる送信タイミング決定処理として実行する処理例を示すフローチャートである。
【００９７】
まず、動画の更新領域が検出されているか否かが判定される（ステップＳ１１０１）。
動画の更新領域が検出されておりステップＳ１１０１の判定がＹＥＳならば、図１０のフローチャートで示される更新領域優先度決定処理で、送信優先度の高い動画の更新領域が検出されているか否かが判定される（ステップＳ１１０２）。
【００９８】
送信優先度の高い動画の更新領域が検出されておりステップＳ１１０２の判定がＹＥＳならば、以下の制御動作が実行される。
【００９９】
まず、今回のタイミングで検出された新規動画の更新領域が既存動画の更新領域のＩフレームの送信タイミングと重なるか否かが判定される（ステップＳ１１０３）。
【０１００】
ステップＳ１１０３の判定がＹＥＳの場合には、まず、新規動画の更新領域の分割数が決定される（ステップＳ１１０４）。これに続いて、既存動画の更新領域の分割数が再設定される（ステップＳ１１０５）。その後、現タイミングで送信される分割更新領域が決定される（ステップＳ１１１６）。ここでは、新規動画の分割更新領域のデータと既存動画の分割更新領域のデータが同時に送信されるように、各分割更新領域が決定される。その後、送信タイミング決定処理を終了する。
【０１０１】
一方、新規の動画の更新領域が既存の動画の更新領域のＩフレームの送信タイミングと重ならずステップＳ１１０３の判定がＹＥＳの場合には、まず、新規動画の更新領域の分割数が決定される（ステップＳ１１０６）。これに続いて、既存動画の更新領域に対応するメモリ上の制御領域に“分割数変更”のフラグが設定される（ステップＳ１１０７）。その後、現タイミングで送信される分割更新領域が決定される（ステップＳ１１１６）。ここでは、新規動画の分割更新領域が既存動画の分割更新領域のＰフレームと同時に送信されるように、各分割更新領域が決定される。その後、送信タイミング決定処理を終了する。なお、既存動画の更新領域に関しては、後述する動画の更新領域の送信処理において、既存動画の更新領域のＩフレームの送信時に、更新領域の分割数が再設定される（後述する図１３のステップＳ１３０６からＳ１３０８を参照）。このときの分割数の設定に使用する送信時間の閾値は、各動画の更新領域サイズに比例した値が設定される。
【０１０２】
次に、図１０のフローチャートで示される更新領域優先度決定処理で静止画または送信優先度が高くはない動画の更新領域が検出された場合には、以下の制御動作が実行される。以下の説明では、この場合の更新領域をその他の更新領域と記載する。
【０１０３】
動画の更新領域が検出されず前述のステップＳ１１０１の判定がＮＯとなった後、送信優先度の高い静止画の更新領域が検出されているか否かが判定される（ステップＳ１１０８）。
【０１０４】
送信優先度の高い静止画の更新領域が検出されステップＳ１１０８の判定がＹＥＳなら、送信タイミングが次のように調整される。現在のタイミングが送信優先度の高い動画の更新領域（または分割更新領域）のＰフレームが送信されるタイミングになるまで待機される（ステップＳ１１０９の判定がＮＯの繰返し）。現在のタイミングが送信優先度の高い動画の更新領域（または分割更新領域）のＰフレームが送信されるタイミングになりステップＳ１１０９の判定がＹＥＳになると、新規静止画の更新領域の分割数が決定される（ステップＳ１１１０）。その後、現タイミングで送信される分割更新領域（分割数が１ならば更新領域そのもの）が決定される（ステップＳ１１１６）。ここでは、同じタイミングで送信優先度の低い動画の更新領域（または分割更新領域）あるいは静止画の更新領域（または分割更新領域）がある場合、それらの更新領域（または分割更新領域）より先に、その他の更新領域のデータが送信されるように各分割更新領域が決定される。その他の更新領域である送信優先度の高い静止画の更新領域が分割されて送信される場合でも、その静止画の分割更新領域すべてが先に送信完了となるように、各分割更新領域が決定される。その後、送信タイミング決定処理を終了する。
【０１０５】
動画の更新領域が検出され前述のステップＳ１１０１の判定がＹＥＳとなり、さらに送信優先度の低い動画の更新領域であってステップＳ１１０２の判定がＮＯとなった場合、送信タイミングが次のように調整される。現在のタイミングが送信優先度の高い動画の更新領域（または分割更新領域）のＰフレームが送信されるタイミングになるまで待機される（ステップＳ１１０９の判定がＮＯの繰返し）。Ｐフレームが検出されてステップＳ１１０９の判定がＹＥＳになっても、他に送信優先度の高い更新領域がないか否かが判定され、あれば他の更新領域についてもＰフレームが送信されるタイミングになるまで待機される（ステップＳ１１１２の判定がＮＯ）。すべての送信優先度の高い更新領域についてＰフレームのタイミングとなったら（ステップＳ１１１２の判定がＹＥＳ）、新規動画の更新領域の分割数が決定される（ステップＳ１１１３）。その後、現タイミングで送信される分割更新領域（分割数が１ならば更新領域そのもの）が決定される（ステップＳ１１１６）。ここでは、同じタイミング送信優先度の低い静止画の更新領域（または分割更新領域）がある場合には、それらの更新領域（または分割更新領域）より先に、その他の更新領域のデータが送信されるように、各分割更新領域が決定される。その後、送信タイミング決定処理を終了する。
【０１０６】
前述したステップＳ１１０１およびステップＳ１１０８の判定がともにＮＯとなって、その他の更新領域が送信優先度の低い静止画の更新領域である場合、送信タイミングが次のように調整される。現在のタイミングが動画の更新領域（または分割更新領域）のＰフレームが送信されるタイミングになるまで待機される（ステップＳ１１１４の判定がＮＯの繰返し）。このＰフレームは、送信優先度が高くても低くてもよい。現在のタイミングが動画の更新領域（または分割更新領域）のＰフレームが送信されるタイミングになりステップＳ１１１４の判定がＹＥＳになると、新規静止画の更新領域の分割数が決定される（ステップＳ１１１５）。その後、現タイミングで送信される分割更新領域（分割数が１ならば更新領域そのもの）が決定される（ステップＳ１１１６）。ここでは、動画の更新領域の送信優先度が低い場合であっても、その更新領域のＩフレーム送信時には、ステップＳ１１１４の判定がＮＯとなって、その他の更新領域である送信優先度の低い静止画の更新領域のデータは送信されない。動画の更新領域のＰフレームの送信時には、その送信時に同時にその他の更新領域である送信優先度の低い静止画の更新領域を送信できる場合は、その送信が実行されるように、各分割更新領域が決定される。Ｐフレームの動画の送信時に同時にその他の更新領域である送信優先度の低い静止画を送信できない場合は、動画の更新領域のＰフレームと交互にその他の更新領域である送信優先度の低い静止画が送信されるように、各分割更新領域が決定される。
【０１０７】
以上の更新領域優先度決定部８０１と送信タイミング決定部８０２の機能、または図１０の更新領域優先度決定処理または図１１の送信タイミング決定処理により、第２の実施形態は次の効果を有する。更新領域が複数ある場合や動画領域が変更された場合であっても、１つの送信タイミングで、複数の分割更新領域の動画のＩフレームとＰフレーム、および静止画を混在させて送信することが可能となる。これにより、ネットワーク帯域が狭い場合、クライアント端末１２０は、従来よりも速く分割領域のデータを受信できる。このため、クライアント端末１２０のユーザは、操作から描画までの時間が、従来よりも速いと感じることができるようになり、操作感を向上させることが可能となる。
【０１０８】
図１２は、第２の実施形態に係る図８のブロック図で示されるサーバ１００の各機能を、一般的なサーバコンピュータ装置がソフトウェア処理として実行する場合の、処理例を示すフローチャートである。このフローチャートの処理は、第１の実施形態に係る図５のフローチャートの場合と同様に、サーバコンピュータ装置のＣＰＵ（中央演算処理装置）がメモリに記憶された仮想デスクトップ制御プログラムを実行する処理である。
【０１０９】
図１２において、図５の場合と同じ処理を実行するステップには同じステップ番号を付してある。図１２の構成が図５の構成と異なる点は、以下の点である。まず、ステップＳ１２０１（図５のステップＳ５０４に対応）で画面更新が発生したか否かが判定されるときに、複数の更新領域があるか否かが判定される。そして、ステップＳ１２０４で他の更新領域があると判定される間、更新領域ごとに、ステップＳ５０８の処理と、ステップＳ５０８から分岐するステップＳ１２０２の動画領域処理とステップＳ１２０３の静止画領域処理が繰り返し実行される。
【０１１０】
この制御処理により、更新領域が複数ある場合や動画領域が変更された場合であっても、１つの送信タイミングで、複数の分割更新領域の動画のＩフレームとＰフレーム、および静止画を混在させて送信することが可能とされる。
【０１１１】
図１３は、図１２のステップＳ１２０２の動画の更新領域の送信処理の例を示すフローチャートである。
【０１１２】
まず、前述した図１０の更新領域優先度決定処理および前述した図１１の送信タイミング決定処理が実行されることにより、送信優先度と送信タイミングが設定される（ステップＳ１３０１）。
【０１１３】
その後、ネットワーク帯域に変化があったか否か（ステップＳ１３０２）、動画の更新領域数に変化があったか否か（ステップＳ１３０３）、および“分割数変更”のフラグが設定されているか否か（ステップＳ１３０４）が、順次判定される。
【０１１４】
これらのいずれかの判定がＹＥＳになると、以下のようにして、更新領域の分割数が再設定される。
【０１１５】
まず、現在のタイミングが動画の更新領域の出力タイミングであるか否か（ステップＳ１３０５）、および動画の更新領域である場合にＩフレームの更新領域であるか否か（ステップＳ１３０６）が判定される。
【０１１６】
現在処理中の更新領域が動画のＩフレームでステップＳ１３０５およびステップＳ１３０６の判定がＹＥＳとなった場合には、“分割数変更”のフラグがリセットされた後（ステップＳ１３０７）、更新領域の分割数が再設定される（ステップＳ１３０８）。
【０１１７】
このステップＳ１３０８の処理の後、またはステップＳ１３０２、Ｓ１３０３、およびＳ１３０４の全ての判定がＮＯとなった後に、更新領域の分割処理が実行される（ステップＳ１３１０）。ここでは、図１１の送信タイミング決定処理で説明した各分割更新領域の送信タイミングを満たすように、動画の更新領域のＩフレーム、Ｐフレームが分割される。
【０１１８】
そして、ステップＳ１３１０で生成された現タイミングで送信する分割更新領域のデータが、動画として圧縮された後、クライアント端末１２０に送信される（ステップＳ１３１１）。
【０１１９】
その後、送信されたデータはＩフレームであるか否かが判定される（ステップＳ１３１２）。
【０１２０】
送信されたデータがＩフレームでステップＳ１３１２の判定がＹＥＳならば、送信されたＩフレームの平均圧縮率が推測される（ステップＳ１３１３）。
【０１２１】
送信されたデータがＩフレームではなくステップＳ１３１２の判定がＮＯならば、送信されたＰフレームの平均圧縮率が推測される（ステップＳ１３１４）。
【０１２２】
ステップＳ１３１３またはステップＳ１３１４の処理の後、図１３のフローチャートの処理を終了し、図１２のステップＳ１２０２の動画領域処理を終了する。
【０１２３】
現在のタイミングが動画の更新領域の出力タイミングでなくステップＳ１３０５の判定がＮＯの場合、または現在の動画の更新領域がＩフレームでなくステップＳ１３０６の判定がＮＯの場合には、次の制御処理が実行される。次回のタイミングでステップＳ１３０４の判定をＹＥＳとさせてステップＳ１３０５〜Ｓ１３０８を再度実行させるために、“分割数変更”のフラグがセットされる（ステップＳ１３０９）。その後、ステップＳ１３１０の処理に進む。
【０１２４】
図１４は、図１２のステップＳ１２０３の静止画の更新領域の送信処理の例を示すフローチャートである。
【０１２５】
まず、前述した図１０の更新領域優先度決定処理および前述した図１１の送信タイミング決定処理が実行されることにより、送信優先度と送信タイミングが設定される（ステップＳ１４０１）。
【０１２６】
その後、ネットワーク帯域に変化があったか否かが判定される（ステップＳ１４０２）。
【０１２７】
ネットワーク帯域に変化があってステップＳ１４０２の判定がＹＥＳになると、“分割数変更”のフラグがセットされる（ステップＳ１４０３）。この結果、次の動画の更新領域が処理されるタイミングで、以下の処理が実行される。前述した図１３のステップＳ１３０４の判定がＹＥＳとなって、さらに動画の更新領域のＩフレームのタイミングでステップＳ１３０５とＳ１３０６の判定がＹＥＳとなって、ステップＳ１３０８で更新領域の分割数が再設定される。
【０１２８】
ステップＳ１４０３の処理の後またはステップＳ１４０２の判定がＮＯとなった後に、更新領域の分割処理が実行される（ステップＳ１４０４）。ここでは、図１１の送信タイミング決定処理で説明した各分割更新領域の送信タイミングを満たすように、静止画の更新領域が分割される。
【０１２９】
そして、ステップＳ１４０４で生成された現タイミングで送信する分割更新領域のデータが、静止画として圧縮された後、クライアント端末１２０に送信される（ステップＳ１４０５）。その後、図１４のフローチャートの処理を終了し、図１２のステップＳ１２０３の静止画領域処理を終了する。
【０１３０】
図１５は、図１５（ａ）に示されるように動画の更新領域１５０１と静止画の更新領域１５０２が混在する場合の、第２の実施形態の具体的動作例を示す図である。
【０１３１】
静止画の更新領域１５０２に対応する各静止画の分割更新領域１５０４ａ、１５０４ｂ、１５０４ｃは、動画の更新領域１５０１に対応する各動画の分割更新領域１５０３ａ、１５０３ｂ、１５０３ｃのＰフレーム送信時に、送信される。
【０１３２】
動画に関する仮定は、図７で前述した第１の実施例の場合と同じであるため、分割数は３となる。よって、図１５（ｂ）に示されるように、動画の更新領域１５０１が３分割されることで、各動画の分割更新領域１５０３ａ、１５０３ｂ、１５０３ｃの動画データの送信タイミングは、各分割更新領域から右方向に伸びる矢印で示されるタイミングとなる。
【０１３３】
ここで、３つの動画の分割更新領域のＰフレームの送信時間は、次式のように算出される。
(15×8)[kbit]÷5000[kbps] = 0.024[sec]
【０１３４】
静止画の更新領域のデータ量は、圧縮時に例えば１３５［ｋＢ］であると仮定する。この結果、静止画の更新領域のデータを送信するための送信時間は、次式のように算出される。
(135×8)[kbit]÷5000[kbps] = 0.216[sec]
【０１３５】
従って、静止画の更新領域をＰフレームと同時に送信する場合、１００ミリ秒以下で送信するためには、静止画の更新領域は、次式で算出される時間以下で送信する必要がある。
0.1[sec] - 0.024[sec] = 0.076[sec]
【０１３６】
この結果、一度に静止画の更新領域を送信できないため、静止画も更新領域を分割する。このときの分割数は、次式により算出される。
0.216÷0.076 = 2.84
【０１３７】
上述の計算式より、ｎ≧２．８４となり、分割数は３と算出される。よって、図１５（ｂ）に示されるように、静止画の更新領域１５０２が３分割されることで、各静止画の分割更新領域１５０４ａ、１５０４ｂ、１５０４ｃの静止画データの送信タイミングは、図１５（ｂ）の「Ｓ」で示されるタイミングに決めることができる。
【０１３８】
図１６は、図１２（ａ）に示されるように動画領域が１６０１、１６０２、１６０３というように複数ある場合の、第２の実施形態の具体的動作例を示す図である。
【０１３９】
動画の更新領域が複数ある場合は、更新領域優先度決定部８０１により決定される送信優先度に応じて、送信タイミング決定部８０２により分割数と送信タイミングが決定される。
【０１４０】
更新領域１６０１と更新領域１６０２の優先度が“１”（図９参照）であると仮定すると、各更新領域のサイズにあわせて各更新領域の送信時間の閾値が設定される。更新領域１６０１と更新領域１６０２の領域サイズ比が例えば３：２であれば、送信時間の閾値はそれぞれ６０ミリ秒、４０ミリ秒と設定される。第１の実施形態における図７の場合と同様して、更新領域１６０１と更新領域１６０２の分割数を決定すると、共に分割数は２となる。この結果、図１６（ｂ）に示されるように、更新領域１６０１の２つの分割更新領域は実線の矢印で示される分割タイミングで送信され、更新領域１６０２の２つの分割更新領域は破線の矢印で示される分割タイミングで送信される。
【０１４１】
更新領域１６０１と更新領域１６０２のＰフレームの送信時に更新領域１６０３のデータが送信される場合、更新領域１６０１と更新領域１６０２のＰフレームの送信時における更新領域１６０３の送信時間の閾値は７５．４ミリ秒となり、第１の実施形態における図７の場合と同様の計算により、更新領域１６０３の分割数は１となる。この結果、図１６（ｂ）に示されるように、更新領域１６０３は一点鎖線の矢印で示されるタイミングで送信される。
【０１４２】
図１７は、ネットワーク帯域が変動した場合の第２の実施形態の具体的動作例を示す図である。
【０１４３】
例えば図１７の１７０１のタイミングでネットワーク帯域が変動した場合、動画の更新領域のサイズ変更は、図１７の１７０２のタイミングで示される次のＩフレームの送信タイミングで行われる。
【０１４４】
更新領域の分割更新領域すべてのＰフレームが同時に送信できなくないほど、ネットワーク帯域が狭くなった場合は、動画の更新領域を変更したとしてもフレームレートは低下する。ただし、Ｉフレーム送信時のことを考慮して動画の更新領域の変更は、次のＩフレームの送信タイミングでおこなう。
【０１４５】
図１７の１７０３または１７０４などに示されるように、すべてのＰフレームを送信タイミングごとに送信することはできないため、分割領域の送信優先順に送信される。
【０１４６】
図１８は、新たな動画領域を検出した場合の第２の実施形態の具体的動作例を示す図である。
【０１４７】
図１８において、動画の更新領域がある状態で、１８０１または１８０３のタイミングでさらに動画の更新領域が検出されると、更新領域の送信優先度にあわせて送信タイミングが決定される。
【０１４８】
送信優先度が高い動画の更新領域が検出されるとすぐに、新たな動画の更新領域の動画圧縮が開始される。
【０１４９】
分割数は第１の実施形態における図７の場合と同様に決定されるが、送信時間の閾値は図１６の場合と同様に、既存の動画の更新領域のサイズとの比で決定される。
【０１５０】
既存の動画の更新領域がＩフレームを送信する例えば図１８の１８０２のタイミングで、既存の動画の更新領域についても、図１６の場合と同様に、動画の更新領域のサイズ比から送信時間の閾値が取得され、分割数が決定される。
【０１５１】
送信優先度が低い動画の更新領域が検出された場合は、図１５の場合と同様に、送信優先度が高い動画の更新領域のＰフレームの送信時に、検出された動画の更新領域のデータが送信される。
【０１５２】
図１９は、更新領域サイズが変更される場合の第２の実施形態の具体的動作例を示す図である。
【０１５３】
更新領域のサイズが変更された場合、サイズを変更するタイミングが制御される。
新たな更新領域が現在の更新領域内に収まる場合、次のＩフレームの送信タイミングで、新たな更新領域が動画の更新領域に変更される。
【０１５４】
新たな更新領域が現在の更新領域に一部でも重なる場合、現在動画の更新領域となっていない領域について、新たな動画の更新領域として送信される。新たな動画の更新領域としての送信については、図１８の場合と同様の制御が実施される。ただし、既存更新領域の更新領域が閾値以上に小さくなった場合には、次のＩフレーム送信タイミングまで待たずに、すぐに更新領域が変更される。新たな更新領域における、すべての分割領域のＩフレーム送信タイミングの一部に既存の更新領域のＩフレーム送信タイミングが重なる場合には、次のＩフレーム送信タイミングまで待たずに、すぐに更新領域が変更される。
【０１５５】
図２０は、第１または第２の実施形態のシステムをソフトウェア処理として実現できるコンピュータのハードウェア構成の一例を示す図である。
【０１５６】
図２０に示されるコンピュータは、ＣＰＵ２００１、メモリ２００２、入力装置２００３、出力装置２００４、外部記憶装置２００５、可搬記録媒体２００９が挿入される可搬記録媒体駆動装置２００６、及び通信インタフェース２００７を有し、これらがバス２００８によって相互に接続された構成を有する。同図に示される構成は上記システムを実現できるコンピュータの一例であり、そのようなコンピュータはこの構成に限定されるものではない。
【０１５７】
ＣＰＵ２００１は、当該コンピュータ全体の制御を行う。メモリ２００２は、プログラムの実行、データ更新等の際に、外部記憶装置２００５（或いは可搬記録媒体２００９）に記憶されているプログラム又はデータを一時的に格納するＲＡＭ等のメモリである。ＣＵＰ２００１は、プログラムをメモリ２００２に読み出して実行することにより、全体の制御を行う。
【０１５８】
入力装置２００３は、ユーザによるキーボードやマウス等による入力操作を検出し、その検出結果をＣＰＵ２００１に通知する。
【０１５９】
出力装置２００４は、ＣＰＵ２００１の制御によって送られてくるデータを表示装置や印刷装置に出力する。
【０１６０】
外部記憶装置２００５は、例えばハードディスク記憶装置である。主に各種データやプログラムの保存に用いられる。
【０１６１】
可搬記録媒体駆動装置２００６は、光ディスクやＳＤＲＡＭ、コンパクトフラッシュ（登録商標）等の可搬記録媒体２００９を収容するもので、外部記憶装置２００５の補助の役割を有する。
【０１６２】
通信インタフェース２００７は、例えばＬＡＮ（ローカルエリアネットワーク）又はＷＡＮ（ワイドエリアネットワーク）の通信回線を接続するための装置である。
【０１６３】
第１の実施形態に係る図１の構成または第２の実施形態による図８の構成を有するシステムは、図１または図８の各処理部の機能、あるいは図５、図６、または図１０〜図１４のフローチャート等で実現される処理を搭載したプログラムをＣＰＵ２００１が実行することで実現される。そのプログラムは、例えば外部記憶装置２００５や可搬記録媒体２００９に記録して配布してもよく、或いはネットワーク接続装置２００７によりネットワークから取得できるようにしてもよい。
【０１６４】
以上の各実施形態に関して、更に以下の付記を開示する。
（付記１）
ネットワーク経由で接続された端末装置の表示部にコンピュータの実行結果を表示するための画像を生成してネットワークへ送信する情報処理装置であって、
前記コンピュータの実行結果を描画する画面を保持する画像メモリに格納された画面から動画として更新が行われる領域を動画の更新領域として抽出する更新領域抽出部と、
前記ネットワークの帯域、予め設定した送信時間の閾値、フレーム間予測を用いずに符号化されるフレームの平均圧縮率、およびフレーム間予測を用いて符号化されるフレームの平均圧縮率を含む情報から、前記動画の更新領域の分割状態を決定する分割状態決定部と、
前記決定された分割状態で、前記動画領域と判定された前記更新領域を分割する更新領域分割部と、
前記分割された更新領域を前記端末装置に送信する更新領域送信部と、
を備えることを特徴とする情報処理装置。
（付記２）
前記更新領域抽出部は、前記画像メモリに格納された画面から静止画として更新が行われる領域を静止画の更新領域としてさらに抽出し、
前記分割状態決定部は、記前記動画の更新領域の分割状態とともに、前記静止画の更新領域の分割状態を決定する、
ことを特徴とする付記１に記載の情報処理装置。
（付記３）
前記更新領域が複数ある場合に当該更新領域の送信の優先度を決定する更新領域優先度決定部と、
前記送信の優先度、送信するデータの種類、および前記ネットワークの帯域に基づいて、前記分割された更新領域の送信タイミングを決定する送信タイミング決定部と、
を更に備え、
前記更新領域送信部は、前記決定された送信タイミングで前記分割された更新領域を送信する、
ことを特徴とする付記１または２のいずれかに記載の情報処理装置。
（付記４）
ネットワーク経由で接続された端末装置の表示部にコンピュータの実行結果を表示するための画像を生成してネットワークへ送信する情報処理方法であって、
前記コンピュータの実行結果を描画する画面を保持する画像メモリに格納された画面から動画として更新が行われる領域を動画の更新領域として抽出し、
前記ネットワークの帯域、予め設定した送信時間の閾値、フレーム間予測を用いずに符号化されるフレームの平均圧縮率、およびフレーム間予測を用いて符号化されるフレームの平均圧縮率を含む情報から、前記動画の更新領域の分割状態を決定し、
前記決定された分割状態で、前記動画領域と判定された前記更新領域を分割し、
前記分割された更新領域を前記端末装置に送信する、
ことを特徴とする情報処理方法。
（付記５）
ネットワーク経由で接続された端末装置の表示部にコンピュータの実行結果を表示するための画像を生成してネットワークへ送信する前記コンピュータに、
前記コンピュータの実行結果を描画する画面を保持する画像メモリに格納された画面から動画として更新が行われる領域を動画の更新領域として抽出し、
前記ネットワークの帯域、予め設定した送信時間の閾値、フレーム間予測を用いずに符号化されるフレームの平均圧縮率、およびフレーム間予測を用いて符号化されるフレームの平均圧縮率を含む情報から、前記動画の更新領域の分割状態を決定し、
前記決定された分割状態で、前記動画領域と判定された前記更新領域を分割し、
前記分割された更新領域を前記端末装置に送信する、
処理を実行させるための情報処理プログラム。
（付記６）
付記１ないし３のいずれかに記載の情報処理装置と通信して前記表示部に前記コンピュータの実行結果を示すサーバ画面を表示する端末装置であって、
前記情報処理装置から、前記サーバ画面上の動画の更新領域または動画の分割された更新領域のデータを受信し、当該受信したデータを動画デコードして、前記表示部に対応するメモリの画面展開領域に展開し、前記表示部に表示させる動画更新領域表示部と、
前記情報処理装置から、前記サーバ画面上の静止画の更新領域または静止画の分割された更新領域のデータを受信し、当該受信したデータを静止画デコードして、前記表示部に対応するメモリの画面展開領域に展開し、前記表示部に表示させる静止画更新領域表示部と、
を備えることを特徴とする端末装置。
【符号の説明】
【０１６５】
１００  サーバ
１０１、１２２  通信部
１０２  操作情報取得部
１０３  表示画面生成部
１０４  フレームバッファ
１０５  画面更新通知部
１０６  高頻度画面更新領域検出部
１０７  更新領域分割部
１０８  送信時間推定部
１０９  動画圧縮率推定部
１１０  分割サイズ決定部
１１１  更新データ生成部
１１２  更新領域送信順番決定部
１１３  転送速度推定部
１２０  クライアント端末
１２１  操作情報取得部
１２３  画面更新情報取得部
１２４  画面領域表示部
１２５  高頻度画面領域表示部
１２６  画面表示部
８０１  更新領域優先度決定部
８０２  送信タイミング決定部
２００１  ＣＰＵ
２００２  メモリ
２００３  入力装置
２００４  出力装置
２００５  外部記憶装置
２００６  可搬記録媒体駆動装置
２００７  通信インタフェース
２００８  バス
２００９  可搬記録媒体
【図１】
2015149040.tif 000003
【図２】
2015149040.tif 000004
【図５】
2015149040.tif 000005
【図６】
2015149040.tif 000006
【図８】
2015149040.tif 000007
【図９】
2015149040.tif 000008
【図１０】
2015149040.tif 000009
【図１１】
2015149040.tif 000010
【図１２】
2015149040.tif 000011
【図１３】
2015149040.tif 000012
【図１４】
2015149040.tif 000013
【図２０】
2015149040.tif 000014
【図３】
2015149040.tif 000015
【図４】
2015149040.tif 000016
【図７】
2015149040.tif 000017
【図１５】
2015149040.tif 000018
【図１６】
2015149040.tif 000019
【図１７】
2015149040.tif 000020
【図１８】
2015149040.tif 000021
【図１９】
2015149040.tif 000022