(57)【要約】【課題】転送された表示画面の表示方法をユーザの操作状態に応じて適正化する。【解決手段】画像転送システムは、情報処理装置１とサーバ装置２とを有する。情報処理装置１は、受信部１ａと処理部１ｂを有する。受信部１ａは、情報処理装置１に対する入力操作に応じた処理の結果が反映される表示画面の画像データをフレームごとにサーバ装置２から受信する。処理部１ｂは、サーバ装置２から一のフレームの画像データを受信したとき、情報処理装置１に対する入力操作の発生状況に基づいて当該一のフレームの表示タイミングを制御する。【選択図】図１
2020149293.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
前記コンピュータに対する入力操作に応じた処理の結果が反映される表示画面の画像データをフレームごとにサーバ装置から受信し、
前記サーバ装置から前記フレームのうち一のフレームの画像データを受信したとき、前記コンピュータに対する入力操作の発生状況に基づいて前記一のフレームの表示タイミングを制御する、
処理を実行させる表示制御プログラム。
【請求項２】
前記表示タイミングの制御では、前記発生状況に基づいて、前記一のフレームを、所定のフレーム周期に同期したタイミングで表示させるか、前記フレーム周期と非同期のタイミングで表示させるかを決定する、
請求項１記載の表示制御プログラム。
【請求項３】
前記表示タイミングの制御では、前記発生状況に基づいて、前記一のフレームの画像データをバッファリングした後に所定のフレーム周期に同期したタイミングで前記一のフレームを表示させるか、前記一のフレームの画像データのバッファリングをスキップして前記一のフレームを表示させるかを決定する、
請求項１記載の表示制御プログラム。
【請求項４】
前記一のフレームを前記フレーム周期に同期したタイミングで表示させる際、前記一のフレームの画像データに付加された再生時刻情報に基づいて前記一のフレームの表示タイミングを決定する、
請求項２または３記載の表示制御プログラム。
【請求項５】
前記発生状況は、前記一のフレームに対する前フレームの生成から前記一のフレームの生成までの期間に前記コンピュータに対する入力操作が行われたかを示す、
請求項１乃至４のいずれか１項に記載の表示制御プログラム。
【請求項６】
前記表示タイミングの制御では、前記発生状況と、前記一のフレームに対する前フレームからの前記一のフレームにおける画面更新状況とに基づいて、前記一のフレームの表示タイミングを制御する、
請求項１乃至４のいずれか１項に記載の表示制御プログラム。
【請求項７】
コンピュータが、
前記コンピュータに対する入力操作に応じた処理の結果が反映される表示画面の画像データをフレームごとにサーバ装置から受信し、
前記サーバ装置から前記フレームのうち一のフレームの画像データを受信したとき、前記コンピュータに対する入力操作の発生状況に基づいて前記一のフレームの表示タイミングを制御する、
表示制御方法。
【請求項８】
情報処理装置において、
前記情報処理装置に対する入力操作に応じた処理の結果が反映される表示画面の画像データをフレームごとにサーバ装置から受信する受信部と、
前記受信部が前記フレームのうち一のフレームの画像データを受信したとき、前記情報処理装置に対する入力操作の発生状況に基づいて前記一のフレームの表示タイミングを制御する処理部と、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、表示制御プログラム、表示制御方法および情報処理装置に関する。
【背景技術】
【０００２】
クライアント端末で実行する処理を最小限にとどめ、ほとんどの処理をサーバで実行させるようにするシンクライアント技術が知られている。特に、サーバでの処理結果を示す画面を画像データとしてクライアント端末に転送する「画面転送型」と呼ばれるクライアント技術が、広く利用されている。例えば、リモートデスクトップ技術を用い、サーバで生成されたデスクトップ画面の画像データがクライアント端末に転送される。
【０００３】
画面転送型のシンクライアント技術の例として、次のようなシステムが提案されている。このシステムでは、サーバ側のコンピュータが、送信する画像の区域毎に区域間の関連度を設定し、操作対象区域と、操作対象区域との間の関連度が最も高い区域とに、他の区域よりも高い優先度を設定して、優先度が高い区域の画像から順に送信する。
【０００４】
また、関連技術の例として、情報処理端末から部分コンテンツの編集状態を示す状態情報を受信して、部分コンテンツの編集が完了したタイミングで表示を更新する画像出力装置が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−１１８８８１号公報
【特許文献２】特開２０１７−４９６２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、画面転送型のシンクライアントシステムにおいて、サーバから転送された表示画面をクライアント端末で表示するための方法としては、例えば次のような２つの方法が考えられる。
【０００７】
第１の方法は、表示画面の画像データを受信すると、できるだけ短時間にその画像データに基づく表示画面を表示する方法である。この方法では、クライアント端末に対する入力操作から、その入力操作が反映された表示画面の表示までのレスポンスを短縮でき、ユーザの操作性が向上する。その反面、サーバとクライアント端末との間のネットワークの負荷状況などによって、表示画面の表示間隔が一定にならない場合があり、その場合には滑らかでない不自然な表示になってしまう。
【０００８】
第２の方法は、表示画面の画像データを受信すると、その画像データをバッファリングした後、フレーム周期に同期したタイミングでその画像データに基づく表示画面を表示する方法である。この方法では、一定間隔で表示画面が表示されるので、表示が滑らかで自然になる。その反面、画像データがバッファリングされる分だけ、入力操作に対するレスポンスが長くなり、操作性が低下する。
【０００９】
１つの側面では、本発明は、転送された表示画面の表示方法をユーザの操作状態に応じて適正化することが可能な表示制御プログラム、表示制御方法および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
１つの案では、表示制御プログラムが提供される。表示制御プログラムは、コンピュータに、コンピュータに対する入力操作に応じた処理の結果が反映される表示画面の画像データをフレームごとにサーバ装置から受信し、サーバ装置からフレームのうち一のフレームの画像データを受信したとき、コンピュータに対する入力操作の発生状況に基づいて一のフレームの表示タイミングを制御する処理を実行させる。
【００１１】
また、１つの案では、上記の表示制御プログラムに基づく処理と同様の処理を実行する情報処理装置が提供される。
さらに、１つの案では、上記の表示制御プログラムに基づく処理と同様の処理をコンピュータが実行する表示制御方法が提供される。
【発明の効果】
【００１２】
１つの側面では、転送された表示画面の表示方法をユーザの操作状態に応じて適正化できる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施の形態に係る画像転送システムの構成例および処理例を示す。
【図２】第２の実施の形態に係るシンクライアントシステムの構成例を示す図である。
【図３】クライアント端末のハードウェア構成例を示す図である。
【図４】サーバ装置が備える処理機能の構成例を示すブロック図である。
【図５】クライアント端末が備える処理機能の構成例を示すブロック図である。
【図６】クライアント端末の入力装置に対する操作の有無の判定動作を説明するための図である。
【図７】低遅延表示モードのときの画像データ表示動作の一例を示す図である。
【図８】同期表示モードのときの画像データ表示動作の一例を示す図である。
【図９】低遅延表示モードおよび同期表示モードの表示タイミングの一例を示す図である。
【図１０】サーバ装置の処理の一例を示すフローチャートである。
【図１１】クライアント端末の処理の一例を示すフローチャートである。
【図１２】画像出力処理の一例を示すフローチャートである。
【図１３】表示モード判定処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態について図面を参照して説明する。
〔第１の実施の形態〕
図１は、第１の実施の形態に係る画像転送システムの構成例および処理例を示す。図１に示す画像転送システムは、情報処理装置１とサーバ装置２とを有する。また、情報処理装置１には表示装置３が接続されている。
【００１５】
この画像転送システムでは、情報処理装置１は、ユーザによる入力操作に応じて、その入力操作の内容を示す操作情報をサーバ装置２に送信する。サーバ装置２は、受信した操作情報が示す入力操作に応じた処理の結果が反映される表示画面を、画像データとして情報処理装置１に送信する。情報処理装置１は、受信した画像データに基づいて表示画面を表示装置３に表示させる。これにより、画像転送システムは、実際にはサーバ装置２などの他の機器で実行された処理結果や保持されるデータを情報処理装置１に表示させつつも、あたかも情報処理装置１が主体となって処理を実行したり、データを保持しているかのように振る舞う。
【００１６】
なお、表示画面は、例えば、デスクトップ画像やアプリケーションの実行画面である。また、表示画面は、ＧＵＩ（Graphical User Interface）画像など、入力操作を受け付けるための画像を含んでいる。
【００１７】
情報処理装置１は、受信部１ａと処理部１ｂを有する。受信部１ａは、例えば、通信インタフェースとして実現される。処理部１ｂは、例えば、プロセッサとして実現される。
受信部１ａは、送信される上記の表示画面の画像データをフレームごとにサーバ装置２から受信する。処理部１ｂは、受信部１ａがある１つのフレーム（「受信フレーム」とする）の画像データを受信したとき、情報処理装置１に対する入力操作の発生状況を判定する（ステップＳ１）。そして、処理部１ｂは、判定された発生状況に基づいて、受信フレームの表示タイミングを制御する（ステップＳ２）。これにより、情報処理装置１は、サーバ装置２から転送された表示画面の表示方法をユーザの操作状態に応じて適正化できる。
【００１８】
ステップＳ１の処理では、処理部１ｂは、例えば、サーバ装置２における、受信フレームより１つ前のフレーム（前フレーム）の生成から受信フレームの生成までの期間に、情報処理装置１に対する入力操作が行われたかを判定する。あるいは、処理部１ｂは、前フレームの受信から受信フレームの受信までの期間に、情報処理装置１に対する入力操作が行われたかを判定してもよい。このようにして、処理部１ｂは、受信フレームに関して入力操作が発生しているか否かを判定する。
【００１９】
ステップＳ２の処理では、処理部１ｂは、例えば、入力操作が発生している場合、受信フレームを低遅延で表示させ（ステップＳ２ａ）、入力操作が発生していない場合、受信フレームを所定のフレーム周期に同期させて表示させる（ステップＳ２ｂ）。例えば、ステップＳ２ｂでは、処理部１ｂは、受信フレームの画像データを一旦バッファリングした後に読み出して、画像データに基づく受信フレームをフレーム周期に同期したタイミングで表示させる。一方、ステップＳ２ａでは、処理部１ｂは、受信フレームの画像データをバッファリングせずに、受信フレームを表示させる。ステップＳ２ａでは、フレーム周期に同期したタイミングになるのを待たずに、受信フレームができるだけ早く表示される。
【００２０】
例えば、入力操作が発生している状況では、入力操作に対してその入力操作に応じた処理結果が反映された表示画面の表示レスポンスが速いことが望ましい。このため、処理部１ｂは、入力操作が発生している状況では、ステップＳ２ａの方法を選択することで、入力操作が発生していない状況よりフレームの表示タイミングを早くする。しかし、ステップＳ２ａの方法ではフレームの表示間隔が一定にならない可能性があり、表示が不自然になり得る。そこで、処理部１ｂは、入力操作が発生していない状況では、ステップＳ２ｂの方法を選択して、フレームの表示タイミングをフレーム周期に合わせる。これにより、滑らかで自然な表示が可能になる。
【００２１】
このように、情報処理装置１は、入力操作の発生状況に応じてフレームの表示方法を適応的に切替ることができる。これにより、高速な表示レスポンスによる操作性の向上と、画像表示の品質向上とを両立させることができる。
【００２２】
〔第２の実施の形態〕
図２は、第２の実施の形態に係るシンクライアントシステムの構成例を示す図である。図２に示すシンクライアントシステムは、サーバ装置２００とクライアント端末１００とを有する。サーバ装置２００とクライアント端末１００とは、ネットワーク３００を介して互いに接続されている。なお、サーバ装置２００、クライアント端末１００は、それぞれ図１のサーバ装置２、情報処理装置１の一例である。
【００２３】
このシンクライアントシステムでは、クライアント端末１００は、ユーザによる操作に応じて、その操作の内容を示す操作情報をサーバ装置２００に送信する。サーバ装置２００は、受信した操作情報に応じた処理を実行し、その実行結果を示す画面を画像データとしてクライアント端末１００に転送する。これによりシンクライアントシステムは、実際にはサーバ装置２００が実行した処理結果や保持する情報をクライアント端末１００に表示させつつも、あたかもクライアント端末１００が主体となって処理を実行したり、情報を保持しているかのように振る舞う。
【００２４】
サーバ装置２００は、クライアント端末１００からの操作情報を受け付け、その操作情報に応じた処理結果を示す画面の画像データをクライアント端末１００に転送する画面転送制御アプリケーションのプログラムを実行する。また、サーバ装置２００は、操作情報に応じた処理を実行するアプリケーションとして、例えば、Ｗｅｂ閲覧アプリケーション、文書作成アプリケーション、動画編集アプリケーションなどのプログラムを実行する。これらのアプリケーションは、クライアント端末１００のユーザによってリモートで利用されるアプリケーションであり、以下、「ユーザアプリケーション」と記載する。
【００２５】
ユーザアプリケーションにより、Ｗｅｂブラウザの画面、文書作成や動画編集のための画面など、操作情報に応じた処理を実行するユーザアプリケーションの画面が組み込まれたデスクトップ画面が生成される。画面転送制御アプリケーションは、生成されたデスクトップ画面の画像データをクライアント端末１００に転送する。なお、デスクトップ画面の画像データは圧縮されて転送される。
【００２６】
一方、クライアント端末１００は、サーバ装置２００から受信した画像データに基づくデスクトップ画面を表示装置に表示させると共に、ユーザの操作に応じて操作情報をサーバ装置２００に送信する画面表示制御アプリケーションのプログラムを実行する。表示されるデスクトップ画面には、Ｗｅｂ閲覧アプリケーション、文書作成アプリケーション、動画編集プログラムなどのユーザアプリケーションの画面が組み込まれている。このため、これらのユーザアプリケーションのプログラムがクライアント端末１００で実行されていないにもかかわらず、ユーザはクライアント端末１００を操作することでこれらのユーザアプリケーションを利用できる。
【００２７】
なお、図２では、サーバ装置２００に１台のクライアント端末１００が接続されている例を示したが、サーバ装置２００には複数のクライアント端末１００を接続することができる。
【００２８】
ところで、本実施の形態において、クライアント端末１００は、デスクトップ画面の画像（デスクトップ画像）の表示に関して、「低遅延表示モード」と「同期表示モード」という２つの表示モードを切替え可能になっている。低遅延表示モードは、デスクトップ画像を低遅延で表示する表示モードである。低遅延表示モードでは、クライアント端末１００は、デスクトップ画像のデータを受信して復号（伸張）すると、即座にデスクトップ画像を表示させる。一方、同期表示モードは、デスクトップ画像を一定時間間隔のフレーム周期に同期して表示する表示モードである。同期表示モードでは、クライアント端末１００は、復号されたデスクトップ画像の画像データを一旦バッファリングした後に読み出すことで、連続するデスクトップ画像を一定周期で表示させる。
【００２９】
低遅延表示モードでは、ユーザの操作に対して、その操作が反映されたデスクトップ画像の表示レスポンスが速い。その反面、画像データが伝送されるネットワーク３００の状況などによって、連続するデスクトップ画像の表示周期が一定にならない場合がある。その場合、画像表示が滑らかにならず、ユーザの視覚に違和感が生じる。一方、同期表示モードでは、画像表示が滑らかになってユーザの視覚に違和感は生じないが、画像データがバッファリングされる分だけ、ユーザの操作に対するデスクトップ画像の表示レスポンスが悪化する。
【００３０】
本実施の形態では、クライアント端末１００は、少なくともユーザの操作状態に基づいて、上記表示モードのどちらが適切かを判定して、各表示モードを適応的に切替える。これにより、デスクトップ画像ができるだけ滑らかで自然に表示されるようにしつつ、ユーザの操作に対するデスクトップ画像の表示レスポンスを向上させる。
【００３１】
＜ハードウェア構成＞
図３は、クライアント端末のハードウェア構成例を示す図である。クライアント端末１００は、例えば、図３に示すようなコンピュータとして実現される。
【００３２】
クライアント端末１００は、プロセッサ１０１によって装置全体が制御されている。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、例えばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＧＰＵ（Graphics Processing Unit）、またはＰＬＤ（Programmable Logic Device）である。また、プロセッサ１０１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＧＰＵ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００３３】
プロセッサ１０１には、バス１０８を介して、ＲＡＭ（Random Access Memory）１０２と複数の周辺機器が接続されている。
ＲＡＭ１０２は、クライアント端末１００の主記憶装置として使用される。ＲＡＭ１０２には、プロセッサ１０１に実行させるＯＳ（Operating System）プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、プロセッサ１０１による処理に必要な各種データが格納される。
【００３４】
バス１０８に接続されている周辺機器としては、ＨＤＤ（Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、読み取り装置１０６および通信インタフェース１０７がある。
【００３５】
ＨＤＤ１０３は、クライアント端末１００の補助記憶装置として使用される。ＨＤＤ１０３には、ＯＳプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、ＳＳＤ（Solid State Drive）などの他の種類の不揮発性記憶装置を使用することもできる。
【００３６】
グラフィック処理装置１０４には、表示装置１１１が接続されている。グラフィック処理装置１０４は、プロセッサ１０１からの命令にしたがって、画像を表示装置１１１の画面に表示させる。表示装置１１１としては、液晶ディスプレイや有機ＥＬ（Electro-Luminescence）ディスプレイなどがある。
【００３７】
入力インタフェース１０５には、入力装置１１２が接続されている。入力インタフェース１０５は、入力装置１１２から出力される信号をプロセッサ１０１に送信する。入力装置１１２としては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００３８】
読み取り装置１０６には、可搬型記録媒体１１３が脱着される。読み取り装置１０６は、可搬型記録媒体１１３に記録されたデータを読み取ってプロセッサ１０１に送信する。可搬型記録媒体１１３としては、光ディスク、光磁気ディスク、半導体メモリなどがある。
【００３９】
通信インタフェース１０７は、ネットワーク３００に接続し、サーバ装置２００などの他の機器との間でデータを送受信する。
以上のようなハードウェア構成によって、クライアント端末１００の処理機能を実現することができる。なお、サーバ装置２００も、図３に示すようなコンピュータとして実現可能である。
【００４０】
＜機能ブロック＞
図４は、サーバ装置が備える処理機能の構成例を示すブロック図である。サーバ装置２００は、ＯＳ実行部２１１、表示画面生成部２１２、フレームバッファ２１３および画像転送制御部２２０を備える。ＯＳ実行部２１１、表示画面生成部２１２および画像転送制御部２２０の処理は、例えば、サーバ装置２００が備える図示しないプロセッサが所定のプログラムを実行することで実現される。特に、画像転送制御部２２０の処理は、前述の画面転送制御アプリケーションのプログラムによって実現される。
【００４１】
ＯＳ実行部２１１は、ＯＳの実行を制御する。例えば、ＯＳ実行部２１１は、クライアント端末１００から送信された操作情報からユーザアプリケーションの起動指示やユーザアプリケーションに対するコマンドを検出する。例えば、ＯＳ実行部２１１は、ユーザアプリケーションのアイコン上でダブルクリックを検出した場合に、そのアイコンに対応するユーザアプリケーションの起動を表示画面生成部２１２へ指示する。他の例としては、起動中のユーザアプリケーションの操作画面、いわゆるウインドウ上でコマンドの実行を要求する操作を検出した場合に、ＯＳ実行部２１１は、そのコマンドの実行を表示画面生成部２１２へ指示する。
【００４２】
なお、クライアント端末１００からサーバ装置２００へ送信される操作情報には、例えば、操作種別が含められる。操作種別としては、例えば、キーボードの左カーソルキー、右カーソルキー、上カーソルキー、下カーソルキー、ページアップキー、ページダウンキーのいずれかの押下、マウスの左クリックまたは右クリック、マウスのポイント位置の移動、マウスホイールを回す操作、タッチデバイスに対するタッチ操作などがある。また、クライアント端末１００からの操作情報は、実際には画像転送制御部２２０を介してＯＳ実行部２１１が受信する。
【００４３】
表示画面生成部２１２は、ＯＳ実行部２１１の指示に基づいて、ユーザアプリケーションの実行を制御する機能（アプリケーション実行制御機能）と、フレームバッファ２１３に画像を描画する機能（描画処理機能）とを有している。
【００４４】
例えば、アプリケーション実行制御機能は、ＯＳ実行部２１１によりユーザアプリケーションの起動が指示された場合や起動中のユーザアプリケーションにコマンドの実行が指示された場合に、ユーザアプリケーションを動作させる。そして、アプリケーション実行制御機能は、ユーザアプリケーションを実行することにより得られた処理結果の表示用イメージをフレームバッファ２１３に描画するよう、描画処理機能に要求する。このように描画を要求する場合には、アプリケーション実行制御機能は、表示用イメージとともに表示用イメージの描画位置を描画処理機能に通知する。
【００４５】
描画処理機能は、描画要求を受け付けた場合に、ユーザアプリケーションの処理結果の表示用イメージをアプリケーション実行制御機能により指定されたフレームバッファ２１３上の描画位置ヘビットマップ形式で描画する。これにより、表示用イメージを含むデスクトップ画像が描画される。
【００４６】
なお、ここでは、アプリケーション実行制御機能により描画要求を受け付ける場合を説明したが、ＯＳ実行部２１１からの描画要求を受け付けることもできる。一例として、描画処理機能は、ＯＳ実行部２１１からマウスカーソルの描画要求を受け付けた場合に、マウスカーソルの表示用イメージをＯＳにより指定されたフレームバッファ２１３上の描画位置に、例えばビットマップ形式で描画する。なお、マウスカーソルの描画はサーバ装置２００でなく、クライアント端末１００で行われてもよい。
【００４７】
フレームバッファ２１３は、描画処理機能により描画されたデスクトップ画像の画像データを記憶する。なお、フレームバッファ２１３としては、例えば、ＶＲＡＭ（Video Random Access Memory）を始めとするＲＡＭ、フラッシュメモリ（Flash Memory）などの半導体メモリ素子を用いることができる。また、フレームバッファ２１３としては、ＨＤＤ、光ディスクなどの記憶装置を用いてもよい。
【００４８】
画像転送制御部２２０は、画像圧縮部２２１、画面更新判定部２２２および画像送信部２２３を備える。
画像圧縮部２２１は、フレームバッファ２１３からデスクトップ画像の画像データを取得して、この画像データを圧縮（圧縮符号化）する。また、画像圧縮部２２１は、デスクトップ画像の画像データを取得する際に、その取得時刻を示すキャプチャ時刻を認識する。このキャプチャ時刻は、画像データが生成されてフレームバッファ２１３に格納された時刻であってもよい。画像圧縮部２２１は、圧縮された画像データ（圧縮画像データ）とキャプチャ時刻とを画像送信部２２３に出力する。
【００４９】
なお、圧縮処理としては、例えば、Ｈ．２６４の規格に基づくデジタル動画像の圧縮符号化方式が用いられる。また、Ｈ．２６４に限らず、ＭＰＥＧ（Moving Picture Experts Group）−２、Ｈ．２６５などの規格に準拠する圧縮処理が実行されてもよい。ただし、本実施の形態では例として、圧縮処理の際に双方向の予測は行われず、一方向の予測（前フレームに基づく予測）のみが行われるものとする。これにより、圧縮処理の前後でフレームの順序が変化しないものとする。
【００５０】
画面更新判定部２２２は、画像圧縮部２２１によってフレームバッファ２１３から画像データが取得されたとき、その画像データ（現フレームの画像データ）と前フレームの画像データとの差分をとり、画面更新があるか否かを判定する。画面更新判定部２２２は、例えば、フレーム間で画素値が異なる画素数が閾値以上の場合は画面更新が有ると判定し、その画素数が閾値未満の場合は画面更新が無いと判定する。画面更新判定部２２２は、例えば、現フレームと前フレームのそれぞれにおける一部の領域の画像データを比較して差分を求めてもよい。画面更新判定部２２２は、画面更新有無の判定結果を示す画面更新情報を生成する。
【００５１】
画像送信部２２３は、画像圧縮部２２１から出力された圧縮画像データに、画像圧縮部２２１から出力されたキャプチャ時刻と、画面更新判定部２２２から出力された画面更新情報とを付加し、ネットワーク３００を介してクライアント端末１００へ送信する。圧縮画像データは、圧縮画像ストリームとして送信される。なお、キャプチャ時刻は、クライアント端末１００において再生（表示）タイミングを制御するための再生時刻情報の一例として、圧縮画像データに付加される。
【００５２】
図５は、クライアント端末が備える処理機能の構成例を示すブロック図である。クライアント端末１００は、受信バッファ１２１、復号画像バッファ１２２および画面表示制御部１３０を備える。
【００５３】
受信バッファ１２１および復号画像バッファ１２２は、例えばＲＡＭ１０２など、クライアント端末１００が備える記憶装置の記憶領域によって実現される。受信バッファ１２１は、サーバ装置２００からネットワーク３００を介して受信した圧縮画像ストリームのデータをバッファリングする。復号画像バッファ１２２は、復号されたデスクトップ画像の画像データをバッファリングする。
【００５４】
画面表示制御部１３０の処理は、プロセッサ１０１が前述の画面表示制御アプリケーションを実行することで実現される。画面表示制御部１３０は、入力装置１１２に対する操作内容を示す操作情報をサーバ装置２００に送信し、サーバ装置２００から受信した画像データに基づいてデスクトップ画像を表示装置１１１に表示させる。図５に示すように、画面表示制御部１３０は、操作情報送信部１３１、画像復号部１３２、表示モード判定部１３３、表示モード切替え部１３４および表示制御部１３５を有する。
【００５５】
操作情報送信部１３１は、入力装置１１２に対する操作を検出し、その操作の内容を示す操作情報をサーバ装置２００に送信する。実際には、入力装置１１２に対する操作を入力装置１１２の制御用のドライバが検出し、クライアント端末１００のＯＳに対して操作内容を示すメッセージを通知する。すると、ＯＳが操作情報送信部１３１に対して操作内容を示すメッセージを通知し、これによって操作情報送信部１３１は操作が行われたこととその操作内容とを認識する。操作情報には、前述した操作種別が含められる。また、操作情報送信部１３１は、操作情報を表示モード判定部１３３にも出力する。
【００５６】
画像復号部１３２は、受信バッファ１２１から圧縮画像データを読み出して復号（伸張復号化）し、復号された画像データと、画像データに付加されていたキャプチャ時刻とを表示モード切替え部１３４に出力する。また、画像復号部１３２は、画像データに付加されていた画面更新情報を表示モード判定部１３３に出力する。
【００５７】
表示モード判定部１３３は、画像データが復号されたとき、操作情報送信部１３１からの操作情報の受信の有無と、画像復号部１３２からの画面更新情報とに基づいて、設定すべき表示モードを判定し、その判定結果を表示モード切替え部１３４に通知する。操作情報の受信の有無は、例えば、前フレームについての表示モードの判定後から現在までに操作情報を受信したか否かによって判定される。
【００５８】
表示モード切替え部１３４は、表示モード判定部１３３によって判定された表示モードに応じて、画像復号部１３２から出力された復号後の画像データに基づくデスクトップ画像の表示タイミングを制御するための処理を実行する。低遅延表示モードと判定された場合、表示モード切替え部１３４は、復号後の画像データを表示制御部１３５に出力し、デスクトップ画像を即座に表示させるように指示する。同期表示モードと判定された場合、表示モード切替え部１３４は、復号後の画像データを復号画像バッファ１２２に格納すると共に、キャプチャ時刻を表示制御部１３５に出力して、キャプチャ時刻に応じたタイミングでデスクトップ画像を表示させるように指示する。
【００５９】
表示制御部１３５は、表示モード切替え部１３４からの指示にしたがって、復号後の画像データに基づくデスクトップ画像を表示装置１１１に表示させる。表示制御部１３５は、低遅延表示モードでは、表示モード切替え部１３４から出力された画像データを用いてデスクトップ画像を表示させ、同期表示モードでは、復号画像バッファ１２２から画像データを読み出してデスクトップ画像を表示させる。
【００６０】
＜操作有無の判定＞
図６は、クライアント端末の入力装置に対する操作の有無の判定動作を説明するための図である。
【００６１】
上記のように、クライアント端末１００の表示モード判定部１３３は、表示モードを判定するために、入力装置１１２に対する操作の有無を判定する。理想的には、表示モード判定部１３３によって検出される操作の有無とは、前フレームのデスクトップ画像が生成された後、現フレームのデスクトップ画像が生成されるまでの期間に、入力装置１１２に対する操作が行われたか否かを示す。本実施の形態では、デスクトップ画像の生成時刻はキャプチャ時刻によって表される。このため、例えば図６に示すように、前のフレームｆ１のキャプチャ時刻（ｔ１）から現在のフレームｆ２のキャプチャ時刻（ｔ２）までの間に入力装置１１２に対する操作が行われた場合に、現在のフレームｆ２について入力操作ありと判定される。
【００６２】
このような操作の有無の判定のために、表示モード判定部１３３は、例えば、操作情報送信部１３１から出力される操作情報を、操作が行われた時刻と共に操作ログとして記憶装置に蓄積しておく。そして、表示モード判定部１３３は、画像復号部１３２によって画像データが復号されたとき、操作ログを参照する。表示モード判定部１３３は、復号された画像データ（現フレームの画像データ）に付加されていたキャプチャ時刻と、前フレームの画像データに付加されていたキャプチャ時刻との間の期間に操作が行われたか否かを、操作ログに基づいて判定する。
【００６３】
また、処理を簡略化するために、表示モード判定部１３３は、画像復号部１３２によって画像データが復号されたとき、前フレームの画像データが復号されてから現時刻までの間に操作情報送信部１３１から操作情報が出力されたか否かによって、操作の有無を判定してもよい。ただし、この場合には、実際に操作が行われたタイミングから、その操作が反映されたデスクトップ画像の復号までの間にズレが生じる。このため、例えば、操作情報送信部１３１から出力される操作情報が、表示モード判定部１３３に対して所定時間だけ遅延して入力されるようにしてもよい。
【００６４】
なお、操作の有無の判定処理はサーバ装置２００で実行されてもよい。この場合、例えば、サーバ装置２００は、現フレームのデスクトップ画像が生成されたとき、前フレームのデスクトップ画像の生成から現時刻までの間に操作が有ったか否かを判定する。サーバ装置２００は、その判定結果を示す操作有無情報を現フレームのデスクトップ画像に対応する圧縮画像データに付加して、クライアント端末１００に送信する。クライアント端末１００の表示モード判定部１３３は、受信した操作有無情報に基づいて操作の有無を判定することができる。
【００６５】
＜低遅延表示モードおよび同期表示モードにおける動作＞
図７は、低遅延表示モードのときの画像データ表示動作の一例を示す図である。
［ステップＳ１１］サーバ装置２００内のフレームバッファ２１３には、表示画面生成部２１２によって一定時間間隔で生成されたデスクトップ画像の画像データが順次格納される。画像転送制御部２２０は、フレームバッファ２１３からフレームｆ１、ｆ２、・・・、ｆ６の画像データをそれぞれ時刻ｔ１、ｔ２、・・・、ｔ６で取得する。時刻ｔ１、ｔ２、・・・、ｔ６は、各フレームのキャプチャ時刻となり、各時刻の間隔は等間隔である。
【００６６】
［ステップＳ１２］画像転送制御部２２０は、フレームｆ１、・・・、ｆ６の画像データを圧縮してフレームｆ１ａ、ｆ２ａ、・・・、ｆ６ａの圧縮画像データを生成する。画像転送制御部２２０は、生成したフレームｆ１ａ、ｆ２ａ、・・・、ｆ６ａの圧縮画像データをそれぞれ時刻ｔ１ａ、ｔ２ａ、・・・、ｔ６ａでネットワーク３００を介してクライアント端末１００に送信する。画像データの圧縮にかかる処理時間はフレームごとに異なる場合があるので、時刻ｔ１ａ、ｔ２ａ、・・・、ｔ６ａは等間隔にはならない場合がある。
【００６７】
［ステップＳ１３］クライアント端末１００の画面表示制御部１３０は、フレームｆ１ａ、ｆ２ａ、・・・、ｆ６ａの圧縮画像データをそれぞれ時刻ｔ１ｂ、ｔ２ｂ、・・・、ｔ６ｂで受信する。ネットワーク３００の負荷状況や各圧縮画像データのサイズのバラツキによって、送信から受信までの時間はフレームごとに異なる場合がある。そのため、時刻ｔ１ｂ、ｔ２ｂ、・・・、ｔ６ｂの間隔のバラツキはさらに大きくなり得る。
【００６８】
［ステップＳ１４］画面表示制御部１３０は、フレームｆ１ａ、ｆ２ａ、・・・、ｆ６ａの圧縮画像データを復号して、それぞれ時刻ｔ１ｃ、ｔ２ｃ、・・・、ｔ６ｃで画像データの復号を完了する。低遅延表示モードでは、画像データが復号されるとその画像データを基にデスクトップ画像が即座に表示される。そのため、復号後のフレームｆ１、ｆ２、・・・、ｆ６の表示タイミングは、それぞれ復号終了時刻と同じ時刻ｔ１ｃ、ｔ２ｃ、・・・、ｔ６ｃとなる。なお、画像データの復号にかかる処理時間はフレームごとに異なる場合があるので、時刻ｔ１ｃ、ｔ２ｃ、・・・、ｔ６ｃの間隔のバラツキはさらに大きくなり得る。
【００６９】
図８は、同期表示モードのときの画像データ表示動作の一例を示す図である。
［ステップＳ２１］図７のステップＳ１１と同様に、サーバ装置２００の画像転送制御部２２０は、フレームバッファ２１３からフレームｆ１、ｆ２、・・・、ｆ６の画像データをそれぞれ時刻ｔ１、ｔ２、・・・、ｔ６で取得する。時刻ｔ１、ｔ２、・・・、ｔ６の間隔は等間隔である。
【００７０】
［ステップＳ２２］図７のステップＳ１２と同様に、画像転送制御部２２０は、フレームｆ１、・・・、ｆ６の画像データを圧縮してフレームｆ１ａ、ｆ２ａ、・・・、ｆ６ａの圧縮画像データを生成する。画像転送制御部２２０は、生成したフレームｆ１ａ、ｆ２ａ、・・・、ｆ６ａの圧縮画像データをそれぞれ時刻ｔ１ａ、ｔ２ａ、・・・、ｔ６ａでネットワーク３００を介してクライアント端末１００に送信する。
【００７１】
［ステップＳ２３］図７のステップＳ１３と同様に、クライアント端末１００の画面表示制御部１３０は、フレームｆ１ａ、ｆ２ａ、・・・、ｆ６ａの圧縮画像データをそれぞれ時刻ｔ１ｂ、ｔ２ｂ、・・・、ｔ６ｂで受信する。
【００７２】
［ステップＳ２４］図７のステップＳ１４と同様に、画面表示制御部１３０は、フレームｆ１ａ、ｆ２ａ、・・・、ｆ６ａの圧縮画像データを復号して、それぞれ時刻ｔ１ｃ、ｔ２ｃ、・・・、ｔ６ｃで画像データの復号を完了する。同期表示モードでは、復号された画像データは復号画像バッファ１２２にバッファリングされる。そして、画面表示制御部１３０は、フレームｆ１、ｆ２、・・・、ｆ６に対応するキャプチャ時刻に基づいて、フレームｆ１、ｆ２、・・・、ｆ６の画像データを一定時間間隔で読み出し、画像データに基づくデスクトップ画像を表示装置１１１に表示させる。これにより、フレームｆ１、ｆ２、・・・、ｆ６はそれぞれ時刻ｔ１ｄ、ｔ２ｄ、・・・、ｔ６ｄに表示され、時刻ｔ１ｄ、ｔ２ｄ、・・・、ｔ６ｄの間隔は等間隔となる。すなわち、フレームｆ１、ｆ２、・・・、ｆ６は一定のフレーム周期で表示される。
【００７３】
図９は、低遅延表示モードおよび同期表示モードの表示タイミングの一例を示す図である。
図７、図８で説明したように、サーバ装置２００において、フレームｆ１、ｆ２、・・・、ｆ６の画像データはそれぞれ時刻ｔ１、ｔ２、・・・、ｔ６に生成される。したがって、フレームｆ１、ｆ２、・・・、ｆ６のキャプチャ時刻はそれぞれ時刻ｔ１、ｔ２、・・・、ｔ６となる。時刻ｔ１、ｔ２、・・・、ｔ６の間隔は等間隔である。
【００７４】
また、図７で説明したように、クライアント端末１００において、フレームｆ１、ｆ２、・・・、ｆ６の画像データはそれぞれ時刻ｔ１ｃ、ｔ２ｃ、・・・、ｔ６ｃで復号される。したがって、低遅延表示モードでは、フレームｆ１、ｆ２、・・・、ｆ６はそれぞれ時刻ｔ１ｃ、ｔ２ｃ、・・・、ｔ６ｃに表示される。
【００７５】
さらに、図８で説明したように、同期表示モードでは、フレームｆ１、ｆ２、・・・、ｆ６の画像データは復号画像バッファ１２２からそれぞれ時刻ｔ１ｄ、ｔ２ｄ、・・・、ｔ６ｄに出力される。したがって、同期表示モードでは、フレームｆ１、ｆ２、・・・、ｆ６はそれぞれ時刻ｔ１ｄ、ｔ２ｄ、・・・、ｔ６ｄに表示される。時刻ｔ１ｄ、ｔ２ｄ、・・・、ｔ６ｄの間隔は等間隔である。
【００７６】
以上のように、画面表示制御部１３０は、低遅延表示モードの場合、復号後の画像データをバッファリングせずに、復号後すぐに画像データに基づくデスクトップ画像を表示させる。画像データの受信および復号から最短のタイミングで表示を行うため、サーバ側でのキャプチャ時刻からクライアント側での表示時刻までが最短となる。したがって、ユーザの操作から、その操作に応じた処理が反映されたデスクトップ画像の表示までのレスポンスが速く、ユーザの操作性が高い。しかしながら、圧縮・復号処理中や伝送途中で生じたジッタによって、各フレームの表示時刻が不均等になり得る。その場合、画像表示が滑らかにならず、ユーザの視覚に違和感が生じるという問題がある。
【００７７】
一方、画面表示制御部１３０は、同期表示モードの場合、復号後の画像データをバッファリングし、画像データに基づくデスクトップ画像をフレーム周期にしたがって表示させる。したがって、画像フレームの圧縮・復号時間やネットワーク転送時間の違いにかかわらず、画像表示を滑らかにすることができ、違和感のない高品質な画像表示が可能になる。しかしながら、バッファリングにより画像表示時刻が遅延するので、ユーザの操作から、その操作に応じた処理が反映されたデスクトップ画像の表示までのレスポンスが遅くなる。
【００７８】
このように、低遅延表示モードと同期表示モードのいずれの表示動作にもメリットとデメリットがある。そこで、例えば、サーバ装置２００で動作するユーザアプリケーションに応じて、各表示モードを使い分ける方法が考えられる。
【００７９】
例えば、低遅延表示モードは、ユーザの操作頻度が高いユーザアプリケーションに適する。このようなユーザアプリケーションとしては、例えば、文書作成などの事務処理用のアプリケーション、ＣＡＤ（Computer Aided Design）／ＣＡＥ（Computer Aided Engineering）を用いた各種設計用のアプリケーションが考えられる。一方、同期表示モードは、ユーザの操作頻度が低く、画面の更新頻度が高いユーザアプリケーションに適する。このようなユーザアプリケーションとしては、例えば、動画コンテンツ再生用のアプリケーションが考えられる。
【００８０】
しかし、低遅延表示モードと同期表示モードのいずれかに適するユーザアプリケーションというのは限定的であり、どちらの表示モードが適するかが状況によって変化するユーザアプリケーションも存在する。例えば、動画コンテンツ編集用のアプリケーションでは、編集操作中には操作に対するレスポンスが高いことが望ましい。しかし、編集結果の確認のために動画像が再生される際には、操作が行われないのでレスポンスが高い必要はなく、それよりも動画像を自然に表示できることが要求される。
【００８１】
そこで、本実施の形態のクライアント端末１００は、ユーザアプリケーションによらず、主としてユーザの操作状態を判断し、操作状態に応じて表示モードを適応的に切替える。具体的には、クライアント端末１００は、１フレームの画像データが復号されたとき、図６で説明した方法により前フレームの復号から現時刻までの間における操作の有無を判定する。クライアント端末１００は、操作ありと判定した場合、表示モードを低遅延表示モードに設定し、操作なしと判定した場合、表示モードを同期表示モードに設定する。これにより、高速なレスポンスが要求される状況では低遅延表示モードで画像の表示遅延を抑制し、画像の自然な表示が優先される状況では同期表示モードで画像をフレーム周期で表示させることができる。したがって、高い操作性と高品質な画像表示とを両立させることができる。
【００８２】
また、より適切な処理として、クライアント端末１００は、１フレームの画像データが復号されたとき、前フレームの復号から現時刻までの間に、操作があるだけでなく画面更新もある場合に、表示モードを低遅延表示モードに設定してもよい。これにより、例えば、マウスの移動やカーソル位置の移動など、ユーザアプリケーションに対して処理の実行が要求されず、大きな画面更新も発生しないような操作が行われた場合には、表示モードは低遅延表示モードにならなくなる。例えば、動画コンテンツの再生中にこのような操作が行われた場合には、表示モードが同期表示モードのまま維持され、自然な表示が継続されるようになる。
【００８３】
＜フローチャート＞
図１０は、サーバ装置の処理の一例を示すフローチャートである。なお、前述のように、サーバ装置２００のフレームバッファ２１３には、表示画面生成部２１２によって生成されたデスクトップ画像の画像データがフレーム周期で格納される。
【００８４】
［ステップＳ３１］画像転送制御部２２０は、フレームバッファ２１３からデスクトップ画像の画像データを取得する。
［ステップＳ３２］画像圧縮部２２１は、フレームバッファ２１３から取得された画像データを圧縮（圧縮符号化）する。また、画像圧縮部２２１はこのとき、画像データがフレームバッファ２１３から取得された時刻をキャプチャ時刻として認識し、キャプチャ時刻を圧縮画像データと共に画像送信部２２３に出力する。
【００８５】
［ステップＳ３３］画面更新判定部２２２は、フレームバッファ２１３から取得された画像データと、前フレームの画像データとの差分をとって、画面更新があるか否かを判定し、判定結果を示す画面更新情報を画像送信部２２３に出力する。
【００８６】
［ステップＳ３４］画像圧縮部２２１から出力された圧縮画像データに、画像圧縮部２２１から出力されたキャプチャ時刻と、画面更新判定部２２２から出力された画面更新情報とを付加し、ネットワーク３００を介してクライアント端末１００へ送信する。圧縮画像データは、圧縮画像ストリームとして送信される。
【００８７】
［ステップＳ３５］画像転送制御部２２０は、画面転送処理を終了するかを判定し、画面転送処理を継続する場合には処理をステップＳ３１に進める。画面転送処理を終了すると判定した場合、画像転送制御部２２０は処理を終了する。
【００８８】
図１１は、クライアント端末の処理の一例を示すフローチャートである。なお、図示しないが、受信バッファ１２１には、サーバ装置２００から送信され、クライアント端末１００の通信インタフェース１０７によって受信された圧縮画像ストリームが格納される。
【００８９】
［ステップＳ４１］画像復号部１３２は、１フレーム分の圧縮画像データを受信したか、すなわち、受信バッファ１２１に１フレーム分の圧縮画像データが蓄積されたかを確認する。
【００９０】
［ステップＳ４２］画像復号部１３２は、１フレーム分の圧縮画像データを受信したと判定した場合、処理をステップＳ４３に進め、この圧縮画像データの受信が完了していないと判定した場合、一定時間後にステップＳ４１の処理を再実行する。
【００９１】
［ステップＳ４３］画像復号部１３２は、受信バッファ１２１から１フレーム分の圧縮画像データを読み出し、この圧縮画像データについての画像出力処理を開始させる。画像出力処理は、図１２の処理とは並列に実行される。また、ステップＳ４３が繰り返し実行される場合、圧縮画像データごと（フレームごと）に個別の画像出力処理が並列に実行される。
【００９２】
［ステップＳ４４］画像復号部１３２は、画面表示制御処理を終了するかを判定し、画面表示制御処理を継続する場合、一定時間後にステップＳ４１の処理を再実行する。画面表示制御処理を終了すると判定した場合、画像復号部１３２は処理を終了する。
【００９３】
図１２は、画像出力処理の一例を示すフローチャートである。この図１２の処理は、図１１のステップＳ４３での開始指示に応じて実行される。
［ステップＳ５１］画像復号部１３２は、受信バッファ１２１から読み出された圧縮画像データを復号（伸張復号化）する。画像復号部１３２は、復号された画像データ（復号画像データ）と、画像データに付加されていたキャプチャ時刻とを表示モード切替え部１３４に出力する。また、画像復号部１３２は、画像データに付加されていた画面更新情報を表示モード判定部１３３に出力する。
【００９４】
［ステップＳ５２］表示モード判定部１３３は、操作情報送信部１３１からの操作情報と、画像復号部１３２からの画面更新情報とに基づいて、表示モードを判定し、判定された表示モードを表示モード切替え部１３４に通知する。なお、表示モード判定処理については、後の図１３において詳述する。
【００９５】
［ステップＳ５３］表示モード切替え部１３４は、表示モード判定部１３３から通知された表示モードが低遅延表示モードの場合、処理をステップＳ５４に進め、同期表示モードの場合、処理をステップＳ５６に進める。
【００９６】
［ステップＳ５４］表示モード切替え部１３４は、画像復号部１３２から出力された復号画像データを表示制御部１３５へ出力して、即座の画像表示を指示する。
［ステップＳ５５］表示制御部１３５は、表示モード切替え部１３４から出力された復号画像データに基づいて復号画像、すなわちデスクトップ画像を表示装置１１１に表示させる。
【００９７】
［ステップＳ５６］表示モード切替え部１３４は、画像復号部１３２から出力された復号画像データを復号画像バッファ１２２に格納して、バッファリングさせる。表示モード切替え部１３４は、画像復号部１３２から出力されたキャプチャ時刻を表示制御部１３５に通知して、キャプチャ時刻に応じたタイミングでの画像表示を指示する。
【００９８】
［ステップＳ５７］表示制御部１３５は、表示モード切替え部１３４から出力されたキャプチャ時刻に応じたタイミングで、復号画像データを復号画像バッファ１２２から読み出し、復号画像データに基づいて復号画像、すなわちデスクトップ画像を表示装置１１１に表示させる。
【００９９】
例えば、表示制御部１３５は、同期表示モードでデスクトップ画像を最初に表示する際には、そのデスクトップ画像についてのキャプチャ時刻に所定時間を加算することで、表示時刻を計算する。加算される所定時間は、デスクトップ画像の画像データの生成から復号までにかかる予測時間と、復号画像バッファ１２２におけるバッファリング時間とに基づいてあらかじめ決定される。表示制御部１３５は、現時刻が算出された表示時刻になったとき、復号画像バッファ１２２から読み出し、この復号画像データに基づくデスクトップ画像を表示装置１１１に表示させる。
【０１００】
また、表示制御部１３５は、デスクトップ画像を表示させるたびに、そのデスクトップ画像についてのキャプチャ時刻（前回キャプチャ時刻）と、そのデスクトップ画像の表示時刻（前回表示時刻）とをメモリ１０２に保持する。そして、２回目以降、表示制御部１３５は、表示モード切替え部１３４から出力されたキャプチャ時刻と、保持していた前回キャプチャ時刻との差分を計算し、その差分を保持していた前回表示時刻に加算することで、表示時刻を計算する。表示制御部１３５は、現時刻が算出された表示時刻になったとき、復号画像データを復号画像バッファ１２２から読み出し、この復号画像データに基づくデスクトップ画像を表示装置１１１に表示させる。
【０１０１】
なお、別の方法として、表示制御部１３５は、表示モード切替え部１３４から全フレームについてのキャプチャ情報を取得し、キャプチャ情報に基づき、ＭＰＥＧシステムのＳＴＣ（System Time Clock）に相当する再生制御用の時刻を計時してもよい。この場合、表示制御部１３５は、バッファリングされた復号画像データに対応するキャプチャ時刻が、計時された再生制御用の時刻と一致したとき、復号画像データを復号画像バッファ１２２から読み出し、デスクトップ画像を表示装置１１１に表示させる。
【０１０２】
また、本実施の形態では、各フレームにキャプチャ時刻が付加されるが、キャプチャ時刻の代わりに、任意の基準時刻を起点とした一定間隔の時刻が、サーバ装置２００において各フレームに付加されてもよい。
【０１０３】
図１３は、表示モード判定処理の一例を示すフローチャートである。この図１３の処理は、図１２のステップＳ５２の処理に対応する。
［ステップＳ６１］表示モード判定部１３３は、前フレームの復号完了から現時刻までの間に入力操作があったか（操作情報送信部１３１から操作情報が出力されたか）を判定する。表示モード判定部１３３は、入力操作ありの場合、処理をステップＳ６２に進め、入力操作なしの場合、処理をステップＳ６４に進める。
【０１０４】
［ステップＳ６２］表示モード判定部１３３は、画像復号部１３２からの画面更新情報に基づいて、画面更新があったかを判定する。表示モード判定部１３３は、画面更新ありの場合、処理をステップＳ６３に進め、画面更新なしの場合、処理をステップＳ６４に進める。
【０１０５】
［ステップＳ６３］表示モード判定部１３３は、表示モードの判定結果として低遅延表示モードを表示モード切替え部１３４に通知する。
［ステップＳ６４］表示モード判定部１３３は、表示モードの判定結果として同期表示モードを表示モード切替え部１３４に通知する。
【０１０６】
なお、図１３の処理は、次のように変形することもできる。例えば、ステップＳ６１では、前フレームの復号完了から現時刻までの間に、デスクトップ画像上のアクティブウィンドウに対する入力操作があったかが判定されてもよい。これによって、デスクトップ画像にユーザにとって重要な変化が現れるような入力操作が行われたかを、高精度に判定することができる。また、他の例として、ステップＳ６１では、前フレームの復号完了から現時刻までの間に、特定種別の入力操作があったかが判定されてもよい。例えば、マウスの移動やカーソル位置の移動のための操作は、特定種別の入力操作から除外される。これにより、ユーザアプリケーションに対して処理を指示するための入力操作の有無を、高精度に判定することができる。また、これらのいずれの場合でも、ステップＳ６３の処理をスキップしてもよい。この場合、単に入力操作の有無のみに基づく場合よりも表示モードを適切に切替ることができる。
【０１０７】
以上説明した第２の実施の形態によれば、ユーザが利用するユーザアプリケーションに関係なく、クライアント端末１００でのユーザの操作状態に応じて、低遅延表示モードと同期表示モードとを適応的に切替えることができる。すなわち、デスクトップ画像に重要な変化が現れるような入力操作が行われている状況では、低遅延表示モードに設定されて、操作に対する画像表示のレスポンスを高速化することができる。また、そのような入力操作が行われていない状況では、同期表示モードに設定されて、滑らかで自然な画像表示を行うことができる。これにより、操作性の向上と画像表示の品質向上とを両立させることができる。
【０１０８】
例えば、ユーザが動画コンテンツの編集アプリケーションを利用するケースでは、編集操作を行っているとき、バッファリングなしの低遅延表示モードで表示されるので、操作に対するレスポンスが速くなり、効率的な編集作業が可能になる。また、編集した結果の映像を再生して確認するような場合は、バッファリングを行う同期表示モードで表示されるので、ローカル環境と同じように正常なフレーム周期で滑らかな動画像表示が可能になる。
【０１０９】
なお、上記の各実施の形態に示した装置（例えば、情報処理装置１、クライアント端末１００、サーバ装置２００）の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、磁気テープなどがある。光ディスクには、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disc）、ブルーレイディスク（Blu-ray Disc：ＢＤ、登録商標）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１１０】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１１１】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
【符号の説明】
【０１１２】
１  情報処理装置
１ａ  受信部
１ｂ  処理部
２  サーバ装置
３  表示装置
【図１】
2020149293.tif 000003
【図２】
2020149293.tif 000004
【図３】
2020149293.tif 000005
【図４】
2020149293.tif 000006
【図５】
2020149293.tif 000007
【図６】
2020149293.tif 000008
【図７】
2020149293.tif 000009
【図８】
2020149293.tif 000010
【図９】
2020149293.tif 000011
【図１０】
2020149293.tif 000012
【図１１】
2020149293.tif 000013
【図１２】
2020149293.tif 000014
【図１３】
2020149293.tif 000015