(57)【要約】【課題】リモートユーザインタフェースシステムにおいて、ネットワークを介してユーザインタフェースの操作を行う際の操作性を向上させる。【解決手段】サーバ機器１００とクライアント機器２００とがネットワーク３００で接続されているリモートユーザインタフェースシステムにおいて、サーバ機器からクライアント機器に送信されるコマンドを、画面更新コマンド、画面保存コマンド、画面復元コマンド、画面復元終了コマンドの４つのコマンドとし、描画コマンドの送信順序を適切に入れ換える機能をサーバ機器に設けるとともに、指定された画像領域を一時的に保存する機能をクライアント機器に設ける。サーバ機器は、直近のユーザ操作を優先的に実行するようにコマンドの送信順序を決定し、クライアント機器は、画面保存コマンドで指定された画像の保存、画面復元コマンドで指定された画像の再表示などの処理を行う。【選択図】図１
2008129954.tif 000002
【特許請求の範囲】
【請求項１】
外部又は内部の表示部に画像を表示する機能を有するクライアント装置とネットワークで接続され、前記クライアント装置から送信される操作信号に基づいた描画コマンドを前記クライアント装置に送信して前記クライアント装置の前記表示部で表示される画像の表示制御を行うサーバ装置であって、
前記クライアント装置から送信される前記操作信号を受信する操作信号受信手段と、
第１の画像データと第１の領域データとを有し、前記表示部に表示中の画像における前記第１の領域データで指定される領域に、前記第１の画像データによる画像を表示させるための前記描画コマンドである画像更新コマンド、第２の領域データと第１の識別情報とを有し、前記表示部に表示中の画像における前記第２の領域データで指定される領域の画像の画像データである第２の画像データを前記第１の識別情報と対応付けて前記クライアント装置に保存させるための前記描画コマンドである画像保存コマンド、第２の識別情報を有し、前記クライアント装置に保存されている１つ以上の前記第２の画像データのうち、前記第２の識別情報と一致する前記第１の識別情報に対応する第２の画像データを読み出して、この読み出した第２の画像データを、前記画像保存コマンドによって保存される前に前記表示部に表示中の画像において表示されていた領域に再表示させるとともに、この再表示の状態を解除するためのコマンドを受信するまで前記画像更新コマンドを無視させるための前記描画コマンドである画像復元コマンド、第３の識別情報を有し、前記画像復元コマンドによって前記クライアント装置が前記再表示の状態になっている場合に、前記画像復元コマンドが有していた前記第２の識別情報と前記第３の識別情報とが一致したら、前記クライアント装置の前記再表示の状態を解除して、前記画像更新コマンドの受信を再開させるための前記描画コマンドである画像復元終了コマンドの少なくとも４種類の描画コマンドを、前記操作信号受信手段で受信した操作信号に基づいてそれぞれ生成する描画コマンド生成手段と、
前記描画コマンド生成手段で生成された前記４種類の描画コマンドを前記クライアント装置に順次送信する際に、その順次送信される各描画コマンドをコマンド列として一時的に格納するコマンド列記憶手段と、
前記クライアント装置から受けた直近の前記操作信号を優先して処理するように、前記コマンド列記憶手段に格納された前記描画コマンドのコマンド列の順序を入れ替えるコマンド送信順序制御手段と、
入れ替えた前記コマンド列の順序に従って前記描画コマンドを前記クライアント装置に順次送信する描画コマンド送信手段とを、
有するサーバ装置。
【請求項２】
サーバ装置とネットワークで接続され、本装置から送信した操作信号に基づいて前記サーバ装置から送信される描画コマンドによって、本装置の外部又は内部の表示部に表示している画像の表示制御が行われるクライアント装置であって、
画像データを一時的に保存するためのデータ格納手段と、
所定の操作入力手段から入力された操作指示信号に対応した操作信号を前記サーバ装置に送信する操作信号送信手段と、
送信した前記操作信号に基づいて前記サーバ装置が選択し送信する、画像更新コマンド、画像保存コマンド、画像復元コマンド、画像復元終了コマンドの４種類の描画コマンドのうちの所定の描画コマンドを受信する描画コマンド受信手段と、
前記描画コマンド受信手段が、前記画像更新コマンドを受信した場合には、前記画像更新コマンドが有する第１の画像データと第１の領域データとを取得し、前記表示部に表示されている画像における前記第１の領域データで指定される領域に、前記第１の画像データによる画像を表示する画像更新手段と、
前記描画コマンド受信手段が、前記画像保存コマンドを受信した場合には、前記画像保存コマンドが有する第２の領域データと第１の識別情報とを取得し、前記表示部に表示中の画像における前記第２の領域データで指定される領域の画像の画像データである第２の画像データを前記第１の識別情報と対応付けて前記データ格納手段に格納する画像保存手段と、
前記描画コマンド受信手段が、前記画像復元コマンドを受信した場合には、前記画像復元コマンドが有する第２の識別情報を取得し、前記データ格納手段に格納されている１つ以上の前記第２の画像データのうち、前記第２の識別情報と一致する前記第１の識別情報に対応する第２の画像データを読み出して、この読み出した第２の画像データを、前記画像保存コマンドによって保存される前に前記表示部に表示中の画像において表示されていた領域に再表示させるとともに、この再表示の状態を解除するためのコマンドを受信するまで前記画像更新コマンドの受信を無視するように前記描画コマンド受信手段を制御する画像復元手段と、
前記描画コマンド受信手段が、前記画像復元終了コマンドを受信した場合には、前記画像復元終了コマンドが有する第３の識別情報を取得し、前記画像復元手段が前記再表示の状態になっている場合に、前記画像復元コマンドが有していた前記第２の識別情報と前記第３の識別情報とが一致したら、前記画像復元手段の前記再表示の状態を解除して、前記画像更新コマンドの受信を再開させるように前記描画コマンド受信手段を制御する画像更新制御手段とを、
有するクライアント装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キーボードやリモコン（リモートコントローラ）などのユーザインタフェース（入力装置）と、映像を表示することが可能なビットマップディスプレイなどの表示装置とを備えたクライアント装置からサーバ装置に対して、アプリケーションなどの操作指示を送信し、その結果として、サーバ装置からクライアント装置に送信される映像をクライアント装置で表示するサーバ装置及びクライアント装置に関する。
【背景技術】
【０００２】
ネットワークを使用した機器のリモート操作を可能にするリモートユーザインタフェースシステムに関して、既に種々の提案が行われている。リモートユーザインタフェースシステムでは、ユーザ（操作者）が操作を行うためのユーザインタフェースや、表示情報を視認することが可能な表示装置を備えた入力装置側はクライアント装置（あるいは、クライアント機器）と呼ばれ、ネットワークを通じて制御される機器側はサーバ装置（サーバ機器）と呼ばれる。
【０００３】
リモートユーザインタフェースシステムでは、描画データやリモコン入力による指示などはコマンドとして伝送される。また、リモート操作に関しては、例えばＸウインドウシステムやリモートデスクトップシステムなどのように、コンピュータのＧＵＩ（グラフィックユーザインタフェース：Graphic User Interface）をネットワークで接続された別の機器から操作する技術が広く採用されている。このようなシステムは、コンピュータのＧＵＩという限られた用途で用いられるものであり、いわゆるクローズドなシステムである。そのため、複雑なコマンドを用いることにより、少ないデータ転送量でユーザインタフェースを実現することができる。また、サーバ機器及びクライアント機器の双方において複雑な処理が必要であり、高い処理能力を有する必要がある。
【０００４】
コンピュータのＧＵＩをリモート操作する従来のシステムに対して、家電機器のユーザインタフェースを操作するシステムでは、特に、下記の２点を考慮する必要がある。第１に、家電機器はコンピュータに比べて製品寿命が長いので、例えば１０年後のテレビでも現在の情報機器を操作できたり、現在のテレビでも１０年後の機器が制御できたりすることが望ましい。第２に、バージョンの違いなどによって相互接続性が損なわれないようにすることが望ましい。
【０００５】
このためには、サーバ機器とクライアント機器との間の通信プロトコルとして、非常に単純なプロトコルを利用する必要がある。そこで極めて単純な描画コマンドのみで、サーバ機器が持つユーザインタフェース情報をクライアント機器で表示し、クライアント機器に入力されたキーやリモコンボタンのイベントをサーバ機器に送ることによってリモートユーザインタフェースを実現するシステムが提案されている。その一例が、下記の非特許文献に記載のＲＦＢプロトコルを用いたＶＮＣ（Virtual Network Computing：バーチャル・ネットワーク・コンピューティング）である。
【０００６】
ＶＮＣは、クライアントからのアップデート要求に対して矩形の位置情報及びサイズ情報と、その矩形内部の画像とを送信するという極めて単純なプロトコルを持つ画像伝送システムである。ＶＮＣでは、サーバ側はクライアントのアップデート要求に対して全画面を送信するわけではなく、前回のアップデート要求と今回のアップデート要求との画像の差分を考慮して、変化が生じた領域に関する情報のみを送信することにより、送信データ量を減らすことができる。
【０００７】
次に、図１２を参照しながら、従来の技術のＶＮＣにおける動作の概略について説明する。図１２は、従来の技術のＶＮＣにおける動作の概略を示す図である。
【０００８】
図１２において、サーバ機器１００は例えばＤＶＤプレーヤであり、表示する情報の言語の選択が可能であるとする。一方、クライアント機器２００は例えばテレビであり、ユーザはクライアント機器２００に向かって「言語選択」ボタンをリモコンから入力すると、その入力コード（「言語選択」）がネットワークを介してサーバ機器１００に伝送される。
【０００９】
サーバ機器１００は、クライアント機器２００から受信した入力コード（「言語選択」）に対して、言語選択のメニュー（メニューＧＵＩ）をクライアント機器２００に伝送する。その結果、クライアント機器２００の表示装置２２０には、メニューＧＵＩが表示される。
【００１０】
このメニューＧＵＩは、リモコンの矢印ボタンによって、「日本語」、「英語」、「中国語」、「韓国語」の各項目上をカーソルが移動し、ユーザは所望の言語を選択することが可能である。なお、メニューＧＵＩにおいてカーソルが存在している項目がハイライト表示され、初期状態では「日本語」の項目上にカーソルが存在しているとする。
【００１１】
ここで、メニューＧＵＩが表示された状態で、ユーザがクライアント機器２００に向かって例えば「下矢印」ボタンをリモコンから入力すると、その入力コード（「下矢印」）がネットワークを介してサーバ機器１００に伝送される。この「下矢印」は、カーソル位置を「日本語」から「英語」に移動するものであり、サーバ機器１００は、通常表示の「日本語」とハイライト表示の「英語」とを差分のメニューイメージとしてクライアント機器２００に伝送することで、メニューＧＵＩ上でカーソルが「英語」に移動する表示が実現される。
【００１２】
なお、一般的にＶＮＣでは、サーバ機器１００は画面更新要求を受けると、すべての差分画像をクライアント機器２００に対して送信し終えるまで、次のコマンドを受け付けないようになっている。
【非特許文献１】Tristan Richardson, RealVNC Ltd：“The RFB Protocol” Version 3.8, 8 July 2005（参考ＵＲＬ：http://www.realvnc.com/docs/rfbproto.pdf）
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかしながら、従来のリモートユーザインタフェースシステムは、ネットワークを介してデータ伝送が行われる分、ネットワークを介さないで１台の機器内で描画する場合に比べて時間の遅れが生じる。そのため、ユーザが操作を行ってからその操作が画面に反映されるまでには若干の時間の遅れが生じてしまい、快適な操作性が損なわれてしまうという課題がある。
【００１４】
上記の問題を解決するため、本発明は、ネットワークを介してユーザインタフェースの操作を行う際の操作性を向上させることが可能なサーバ装置及びクライアント装置を提供することを目的とし、特に、クライアント装置側におけるユーザインタフェースの操作に対するサーバ装置の反応の遅延を低減させることが可能なサーバ装置及びクライアント装置を提供することを目的とする。
【課題を解決するための手段】
【００１５】
上記の目的を達成するため、本発明によれば、外部又は内部の表示部に画像を表示する機能を有するクライアント装置とネットワークで接続され、前記クライアント装置から送信される操作信号に基づいた描画コマンドを前記クライアント装置に送信して前記クライアント装置の前記表示部で表示される画像の表示制御を行うサーバ装置であって、
前記クライアント装置から送信される前記操作信号を受信する操作信号受信手段と、
第１の画像データと第１の領域データとを有し、前記表示部に表示中の画像における前記第１の領域データで指定される領域に、前記第１の画像データによる画像を表示させるための前記描画コマンドである画像更新コマンド、第２の領域データと第１の識別情報とを有し、前記表示部に表示中の画像における前記第２の領域データで指定される領域の画像の画像データである第２の画像データを前記第１の識別情報と対応付けて前記クライアント装置に保存させるための前記描画コマンドである画像保存コマンド、第２の識別情報を有し、前記クライアント装置に保存されている１つ以上の前記第２の画像データのうち、前記第２の識別情報と一致する前記第１の識別情報に対応する第２の画像データを読み出して、この読み出した第２の画像データを、前記画像保存コマンドによって保存される前に前記表示部に表示中の画像において表示されていた領域に再表示させるとともに、この再表示の状態を解除するためのコマンドを受信するまで前記画像更新コマンドを無視させるための前記描画コマンドである画像復元コマンド、第３の識別情報を有し、前記画像復元コマンドによって前記クライアント装置が前記再表示の状態になっている場合に、前記画像復元コマンドが有していた前記第２の識別情報と前記第３の識別情報とが一致したら、前記クライアント装置の前記再表示の状態を解除して、前記画像更新コマンドの受信を再開させるための前記描画コマンドである画像復元終了コマンドの少なくとも４種類の描画コマンドを、前記操作信号受信手段で受信した操作信号に基づいてそれぞれ生成する描画コマンド生成手段と、
前記描画コマンド生成手段で生成された前記４種類の描画コマンドを前記クライアント装置に順次送信する際に、その順次送信される各描画コマンドをコマンド列として一時的に格納するコマンド列記憶手段と、
前記クライアント装置から受けた直近の前記操作信号を優先して処理するように、前記コマンド列記憶手段に格納された前記描画コマンドのコマンド列の順序を入れ替えるコマンド送信順序制御手段と、
入れ替えた前記コマンド列の順序に従って前記描画コマンドを前記クライアント装置に順次送信する描画コマンド送信手段とを、
有するサーバ装置が提供される。
【００１６】
また、上記の目的を達成するため、本発明によれば、サーバ装置とネットワークで接続され、本装置から送信した操作信号に基づいて前記サーバ装置から送信される描画コマンドによって、本装置の外部又は内部の表示部に表示している画像の表示制御が行われるクライアント装置であって、
画像データを一時的に保存するためのデータ格納手段と、
所定の操作入力手段から入力された操作指示信号に対応した操作信号を前記サーバ装置に送信する操作信号送信手段と、
送信した前記操作信号に基づいて前記サーバ装置が選択し送信する、画像更新コマンド、画像保存コマンド、画像復元コマンド、画像復元終了コマンドの４種類の描画コマンドのうちの所定の描画コマンドを受信する描画コマンド受信手段と、
前記描画コマンド受信手段が、前記画像更新コマンドを受信した場合には、前記画像更新コマンドが有する第１の画像データと第１の領域データとを取得し、前記表示部に表示されている画像における前記第１の領域データで指定される領域に、前記第１の画像データによる画像を表示する画像更新手段と、
前記描画コマンド受信手段が、前記画像保存コマンドを受信した場合には、前記画像保存コマンドが有する第２の領域データと第１の識別情報とを取得し、前記表示部に表示中の画像における前記第２の領域データで指定される領域の画像の画像データである第２の画像データを前記第１の識別情報と対応付けて前記データ格納手段に格納する画像保存手段と、
前記描画コマンド受信手段が、前記画像復元コマンドを受信した場合には、前記画像復元コマンドが有する第２の識別情報を取得し、前記データ格納手段に格納されている１つ以上の前記第２の画像データのうち、前記第２の識別情報と一致する前記第１の識別情報に対応する第２の画像データを読み出して、この読み出した第２の画像データを、前記画像保存コマンドによって保存される前に前記表示部に表示中の画像において表示されていた領域に再表示させるとともに、この再表示の状態を解除するためのコマンドを受信するまで前記画像更新コマンドの受信を無視するように前記描画コマンド受信手段を制御する画像復元手段と、
前記描画コマンド受信手段が、前記画像復元終了コマンドを受信した場合には、前記画像復元終了コマンドが有する第３の識別情報を取得し、前記画像復元手段が前記再表示の状態になっている場合に、前記画像復元コマンドが有していた前記第２の識別情報と前記第３の識別情報とが一致したら、前記画像復元手段の前記再表示の状態を解除して、前記画像更新コマンドの受信を再開させるように前記描画コマンド受信手段を制御する画像更新制御手段とを、
有するクライアント装置が提供される。
【発明の効果】
【００１７】
本発明のサーバ装置及びクライアント装置は、上記の構成を有しており、既存のクライアント装置との間における通信の互換性を保ちながら、クライアント装置ごとに出力データを切り替えずに、ユーザインタフェースの操作を行う際の操作性を向上させることが可能となる。また、本発明のサーバ装置及びクライアント装置は、クライアント装置側において、ユーザ操作が画面表示に反応されるまでの遅延時間を低減した高速表示を実現するという効果や、サーバ装置とクライアント装置との間の画像データの伝送量の低減を実現するという効果を有している。
【発明を実施するための最良の形態】
【００１８】
以下、図面を参照しながら、本発明の実施の形態について説明する。
【００１９】
まず、図１を参照しながら、本発明に係るリモートユーザインタフェースシステムの概略について説明する。図１は、本発明の実施の形態におけるリモートユーザインタフェースシステムの構成の概略を示す図である。
【００２０】
図１に図示されているリモートユーザインタフェースシステムは、サーバ機器１００とクライアント機器２００とがネットワーク３００を介して接続されている構成を有している。
【００２１】
サーバ機器１００は、例えば、ＤＶＤ（Digital Versatile Disc）の再生を行うＤＶＤプレーヤやＤＶＤの記録を行うＤＶＤレコーダのように、ＧＵＩによってその機能制御が行われる装置である。ＤＶＤプレーヤやＤＶＤレコーダは、通常は表示装置に接続するインタフェースやリモコンなどの入力装置を有しており、これらの表示装置及びリモコンによってユーザによるＧＵＩ操作がローカルに行われる。しかしながら、図１に図示されているサーバ機器１００は、表示装置やリモコンがサーバ機器１００に直接接続されている必要はなく、代わりにネットワーク３００に接続されている。
【００２２】
また、クライアント機器２００は、操作者に対して情報を表示する表示機能と、操作者によるサーバ機器１００のリモート操作のための操作入力機能とを提供するものである。具体的には、図１に図示されているように、クライアント機器２００に表示装置２２０及びリモコン２２１が接続されており、これによって、操作者は表示装置２２０に表示されているＧＵＩ画面を閲覧しながら、リモコン２２１を操作して、サーバ機器１００のリモート操作を行うことが可能となる。
【００２３】
なお、クライアント機器２００における操作入力機能を実現する入力装置はリモコン２２１に限定されるものではなく、本体スイッチやキーボードなどの任意の入力装置を利用することが可能である。また、表示装置２２０は、クライアント機器２００と一体となっていてもよく、また、それぞれが別の筐体に収められていてもよい。クライアント機器２００の典型的な例としては、デジタルテレビが挙げられる。
【００２４】
また、クライアント機器２００は、ユーザによるリモコン操作に基づいて、リモコン操作によって入力されたコード（入力コード）をサーバ機器１００に伝送する。また、クライアント機器２００は、サーバ機器１００に画面更新要求（描画要求）を行うことも可能である。サーバ機器１００は、クライアント機器２００に対して描画を制御する描画コマンドや描画更新に必要なデータを送信する。
【００２５】
次に、図２を参照しながら、本発明に係るリモートユーザインタフェースシステムのサーバ機器１００の構成について説明する。図２は、本発明の実施の形態におけるリモートユーザインタフェースシステムのサーバ機器の構成の一例を示すブロック図である。なお、図２では、サーバ機器１００が有する機能が、機能ブロックによって表されているが、これらの機能は、ハードウェア及び／又はソフトウェア（プログラム）によって実現可能である。
【００２６】
図２に図示されているサーバ機器１００は、機器制御部１０１、メニュー制御部１０２、描画コマンド生成部１０３、メニューリソース１０４、コマンドソート部１０５、コマンド列記憶部１０６、コマンド出力部１０７、通信部１０８、タイマ１０９を有している。
【００２７】
機器制御部１０１は、サーバ機器１００のアプリケーションプログラムに係る機能をまとめて表した機能ブロックである。例えば、サーバ機器１００がＤＶＤプレーヤの場合には、機器制御部１０１は、コンテンツの再生や停止などのドライブの状態によって変化する内部状態を管理する機能を有している。また、メニュー制御部１０２は、機器制御部１０１及びネットワーク３００から受信されるユーザの入力コマンドにより、メニューボタンなどのＯＮ／ＯＦＦ（オン／オフ）を制御する機能を有している。
【００２８】
また、描画コマンド生成部１０３は、メニューの画像データとメニュー制御部１０２からのＯＮ／ＯＦＦの指示により、具体的な通信のコマンドを生成するものである。なお、描画コマンド生成部１０３では必ずしも１つのメニューを１つのコマンドで描画するわけではなく、１つのメニューをいくつかの部分に分けて、分割されたそれぞれの部分をコマンドによって描画することもある。
【００２９】
また、画面復元コマンドや画面復元終了コマンドなどの各種コマンド（後述の図４Ｂに図示されているような４つのコマンド）の生成やＩＤの管理（コマンド内へのＩＤの記載）も描画コマンド生成部１０３で行われる。なお、描画コマンド生成部１０３で生成されたコマンドはコマンド列記憶部１０６に蓄積される。いったん生成されたコマンドはコマンド出力部１０７から通信部１０８を介してネットワーク３００に出力されるが、出力される前にユーザの入力操作によりＧＵＩの状態が変わった場合には、コマンド列記憶部１０６に蓄積されているデータの順番を変更する処理や、データを削除する処理が行われる。コマンドソート部１０５は、上記のようなコマンド列記憶部１０６に蓄積されているデータの変更処理、削除処理などを制御する機能を有している。
【００３０】
また、コマンド出力部１０７は、コマンド列記憶部１０６に蓄積されているコマンドを通信部１０８を介してネットワーク３００に送信する機能を有している。コマンド列記憶部１０６に蓄積されているデータを送出するタイミングとしては、キー入力が行われた場合やアニメーションの表示のようにある時刻が経過した際にコマンドが送出された場合などが挙げられる。したがって、コマンド出力部１０７は、計時機能を有するタイマ１０９からの時刻情報を参照したり、通信部１０８からユーザ入力のメッセージの入力を受けたりすることによって、コマンド出力のタイミングの制御を行う。
【００３１】
次に、図３を参照しながら、本発明に係るリモートユーザインタフェースシステムのクライアント機器２００の構成について説明する。図３は、本発明の実施の形態におけるリモートユーザインタフェースシステムのクライアント機器の構成の一例を示すブロック図である。なお、図３では、クライアント機器２００が有する機能が、機能ブロックによって表されているが、これらの機能は、ハードウェア及び／又はソフトウェア（プログラム）によって実現可能である。
【００３２】
図３に図示されているクライアント機器２００は、描画フレームバッファ２０１、入力部２０２、コマンド生成部２０３、描画制御部２０４、通信部２０５、タイマ２０６、データキャッシュ２０７、ＩＤ管理テーブル２０８を有している。また、図１で説明したように、クライアント機器２００には表示装置２２０及びリモコン２２１が接続されている。
【００３３】
クライアント機器２００の通信部２０５は、ネットワーク３００を介してサーバ機器１００との間でデータの送受信を行う機能を有している。なお、サーバ機器１００からの受信データ（コマンド）は描画制御部２０４に渡される。また、コマンド生成部２０３から受け取ったデータ（コマンド）は、送信データとしてサーバ機器１００に送信される。
【００３４】
また、入力部２０２はリモコン２２１からの入力を受け、その入力コードをコマンド生成部２０３に渡す機能を有している。コマンド生成部２０３は、入力部２０２から渡された入力コードに基づいて、例えば後述の図４Ａに図示されているような２つのコマンドを生成する機能を有しており、生成されたコマンドは通信部２０５からネットワーク３００を通じてサーバ機器１００に送信される。なお、サーバ機器１００に送信されるコマンドとしては、ユーザのリモコン操作によるリモコンコードのほかに、画面更新要求も存在するが、画面更新要求は、ユーザが操作を行っていない場合でも定期的に送信される必要がある情報であり、コマンド生成部２０３は、タイマ２０６からの時間情報に従って定期的に、画面更新要求を含むコマンドを生成する。
【００３５】
また、描画制御部２０４は、通信部２０５から受けた受信データに含まれるコマンドを解釈し、描画フレームバッファ２０１やデータキャッシュ２０７の制御を行って、描画フレームバッファ２０１への画像データの書き込みを行う機能を有している。描画フレームバッファ２０１に書かれた画像データは、表示装置２２０に送られ表示画面上に表示される。
【００３６】
また、データキャッシュ２０７は、画像データを一時的に格納する機能を有しており、ＩＤ管理テーブル２０８は、データキャッシュ２０７内に存在するデータの管理を行うための情報である。ＩＤ管理テーブル２０８では、データキャッシュ２０７内に格納された画像データがＩＤ（識別情報）によって管理される。また、ＩＤ管理テーブル２０８に登録されている各ＩＤの画像データには、「データ保存中」又は「データ復元中」のどちらかの状態が設定される。データキャッシュ２０７及びＩＤ管理テーブル２０８の詳細な説明に関しては後述する。
【００３７】
次に、図４Ａ及び図４Ｂを参照しながら、本発明に係るリモートユーザインタフェースシステムにおいて、サーバ機器１００とクライアント機器２００との間で伝送されるコマンドについて説明する。図４Ａは、本発明の実施の形態のリモートユーザインタフェースシステムにおいて、クライアント機器からサーバ機器に送信されるコマンドの一例を示す図であり、図４Ｂは、本発明の実施の形態のリモートユーザインタフェースシステムにおいて、サーバ機器からクライアント機器に送信されるコマンドの一例を示す図である。
【００３８】
なお、図４Ａ及び図４Ｂにおいて、サーバ機器とクライアント機器との間で通信開始時のネゴシエーションに用いられるコマンドに関しては図示省略する。また、実際の通信では画像データを圧縮して送るケースもあり、この画像圧縮方法がコマンドに記載される場合もあるが、本発明に係る動作には画像データの圧縮の有無に関連した本質的な違いはないので、本明細書で説明される実施の形態では画像の圧縮に関する詳細な説明は省略する。
【００３９】
図４Ａには、クライアント機器２００からサーバ機器１００に送信されるコマンドの一例として、画面更新要求コマンド４１０と、ユーザ入力コマンド４２０とが図示されている。
【００４０】
図４Ａの画面更新要求コマンド４１０は、サーバ機器１００に対して画面の更新を要求するものであり、サーバ機器１００はこの画面更新要求コマンド４１０を受けるとクライアント機器２００に対して画面を更新するために必要なデータを送信する。ただし、この画面更新要求コマンド４１０を受けても、サーバ機器１００は必ずしも画面更新を行わなくてもよい。すなわち、この画面更新要求コマンド４１０は、あくまでもクライアント機器２００からの画面更新要求の通知を示すコマンドである。
【００４１】
また、図４Ａのユーザ入力コマンド４２０はリモコン２２１などにおけるユーザ操作（ユーザ入力）をサーバ機器１００に通知するためのコマンドであり、例えばリモコンコードなどの入力ボタンのＩＤ（入力ＩＤ）をデータとして有している。
【００４２】
一方、図４Ｂには、サーバ機器１００からクライアント機器２００に送信されるコマンドの一例として、画面更新コマンド４３０と、画面保存コマンド４４０と、画面復元コマンド４５０と、画面復元終了コマンド４６０とが図示されている。
【００４３】
図４Ｂの画面更新コマンド４３０は、更新データの左上の位置（ｘ，ｙ）、更新データのサイズ（幅，高さ）及び更新される画像データの実体を有している。クライアント機器２００はこの画面更新コマンド４３０を受け取ると、受信した画像データを描画フレームバッファ２０１の指定された位置に描画する。なお、従来の技術のＶＮＣにおいて、サーバ機器１００からクライアント機器２００に送信されるコマンドは、通常はこの画面更新コマンド４３０のみである。
【００４４】
また、図４Ｂの画面保存コマンド４４０は、指定された位置（ｘ，ｙ）及びサイズ（幅，高さ）の画像データを描画フレームバッファ２０１からデータキャッシュ２０７に保存するように指示するためのコマンドである。データキャッシュ２０７に保存された画像データには、画面保存コマンド４４０によって指定されたＩＤが付与され、このＩＤによってＩＤ管理テーブル２０８で管理される。また、ＩＤ管理テーブル２０８内のこのＩＤに関連するエントリは、「保存中」の状態に設定される。なお、データキャッシュ２０７において画像データを保存するための十分な領域が確保できない場合には、画像データを保存しなくてもよく、また、画像データが保存されなかった旨をサーバ機器１００に通知する必要もない。
【００４５】
また、図４Ｂの画面復元コマンド４５０は、画面保存コマンド４４０で保存された画像データを指定するＩＤを有しており、このＩＤで特定される画像データを描画フレームバッファ２０１に書き込むように指示するためのコマンドである。すなわち、画面復元コマンド４５０を受信したクライアント機器２００は、図４Ｂの画面復元コマンド４５０によって指定されたＩＤに対応する画像データを、データキャッシュ２０７内のキャッシュデータから読み出して、描画フレームバッファ２０１に書き込む処理を行う。
【００４６】
なお、画面復元コマンド４５０が発行された場合には、その画面復元コマンド４５０に含まれるＩＤが対応する画像領域は、データ復元中状態としてロックされ、対応する画面復元終了コマンド４６０が発行されるまで、クライアント機器２００は、その画像領域の更新を行おうとする画像更新コマンドを無視する。
【００４７】
また、図４Ｂの画面復元終了コマンド４６０は、画面復元コマンド４５０と対になって存在するコマンドである。上述のように、画面復元コマンド４５０が発行されると、そのＩＤに対応する画像データはデータ復元中状態となり、その画像データに対応する画像領域に対する画面更新コマンドは無視されるようになる。画面復元終了コマンド４６０は、このデータ復元中状態を解除するためのコマンドであり、画面復元終了コマンド４６０に含まれているＩＤに対応するデータ復元中状態が解除される。
【００４８】
なお、図４Ｂに図示されている４つのコマンドのうち、画面更新コマンド４３０には画像データが含まれており、処理に時間を要するとともに、伝送時にはネットワーク３００の帯域を大きく消費する。一方、画面保存コマンド４４０、画面復元コマンド４５０、画面復元終了コマンド４６０は、クライアント機器２００内における処理で済むため、処理に要する時間は、画面更新コマンド４３０の処理時間と比較して短い。
【００４９】
次に、図５Ａ〜図５Ｅを参照しながら、本発明の実施の形態におけるクライアント機器２００のコマンド処理に係る動作アルゴリズムの一例について説明する。図５Ａは、本発明の実施の形態におけるクライアント機器の動作アルゴリズムの一例を示すフローチャートである。また、図５Ｂは、図５ＡのステップＳ５１０の画面更新処理の詳細を示すフローチャートであり、図５Ｃは、図５ＡのステップＳ５２０の画面保存処理の詳細を示すフローチャートであり、図５Ｄは、図５ＡのステップＳ５３０の画面復元処理の詳細を示すフローチャートであり、図５Ｅは、図５ＡのステップＳ５４０の画面復元終了処理の詳細を示すフローチャートである。なお、図５Ａ〜図５Ｅは、主にクライアント機器２００の描画制御部２０４で実行される動作アルゴリズムである。
【００５０】
図５Ａにおいて、クライアント機器２００は動作を開始すると、ネットワーク３００からのコマンド入力待ちの状態となる（ステップＳ５０１）。そして、コマンドが入力された場合には、図４に図示されている４つのコマンド（画面更新コマンド４３０、画面保存コマンド４４０、画面復元コマンド４５０、画面復元終了コマンド４６０）のいずれのコマンドであるかが判断される。
【００５１】
そして、ステップＳ５０２で画面更新コマンド４３０であると判断された場合には、画面更新処理が行われる（ステップＳ５１０）。また、ステップＳ５０３で画面保存コマンド４４０であると判断された場合には、画面保存処理が行われる（ステップＳ５２０）。また、ステップＳ５０４で画面復元コマンド４５０であると判断された場合には、画面復元処理が行われる（ステップＳ５３０）。また、ステップＳ５０５で画面復元終了コマンド４６０であると判断された場合には、画面復元終了処理が行われる（ステップＳ５４０）。なお、図５Ａのフローチャートでは上記の４つのコマンドのみが想定されており、上記の４つのコマンドに該当しないコマンドに関しては無視されて、再びコマンド入力待ちの状態に戻るが、他のコマンドを受けた場合には、そのコマンドに対する適切な動作が行われることが望ましい。
【００５２】
ステップＳ５１０の画面更新処理では、図５Ｂに図示されているように、まず画面更新コマンド４３０で指定された画像データがデータキャッシュ２０７にキャッシュされる（ステップＳ５１１）。また、ＩＤ管理テーブル２０８において、データ復元中状態のＩＤを有するデータが存在しているか否かが調べられる（ステップＳ５１２）。
【００５３】
データ復元中状態のＩＤを有するデータが存在する場合には、画面更新コマンド４３０によって指定された画像データの領域（指定領域）が、データ復元中状態のＩＤ（データ復元中ＩＤ）を有するデータの領域に含まれるかが調べられる（ステップＳ５１３）。画面更新コマンド４３０による指定領域がデータ復元中状態のＩＤのデータ領域に含まれる場合には、画面更新処理は行われず、入力されたデータは破棄され（ステップＳ５１４）、再びコマンド入力待ち状態に戻る。
【００５４】
一方、画面更新コマンド４３０による指定領域がデータ復元中状態のＩＤのデータ領域に含まれない場合や、そもそもデータ復元中状態のＩＤを有するデータがデータキャッシュ２０７に存在しない場合には、描画フレームバッファ２０１において、サーバ機器１００から受信した画面更新コマンド４３０に含まれる画像データを指定された位置サイズの領域に書き込み（ステップＳ５１５）、再びコマンド入力待ち状態に戻る。
【００５５】
また、ステップＳ５２０の画面保存処理では、図５Ｃに図示されているように、まず、例えば指定された画像データのサイズなどを確認して、指定された画像データがデータキャッシュ２０７に保存可能か否かを調べる（ステップＳ５２１）。なお、データキャッシュ２０７の大きさはクライアント機器２００の実装依存であり、極端な例ではデータキャッシュの大きさが０であっても、当該動作アルゴリズムは有効に動作する。
【００５６】
ステップＳ５２１において、データキャッシュ２０７の残り容量より画面保存コマンド４４０で与えられたサイズが大きく、画像データの保存が不可能な場合には、画面保存コマンド４４０を無視して、そのまま次のコマンド入力待ちに戻る。なお、後述の図８Ａや図９Ａにおける動作のように、サーバ機器１００が従来の技術におけるクライアント機器２００との互換性を考慮して動作する場合には、クライアント機器２００は、この画面保存コマンド４４０を無視した旨をサーバ機器１００に通知する必要はない。一方、クライアント機器２００が、無視した画面保存コマンド４４０をサーバ機器１００に通知し、サーバ機器１００は、無視された画面保存コマンドに係る画像データのみ、画像更新コマンドによって送信することも可能である。
【００５７】
一方、ステップＳ５２１において、画像データの保存が可能な場合には、描画フレームバッファ２０１からデータキャッシュ２０７に画像データをコピーする（ステップＳ５２２）とともに、コピーした画像データの位置及びサイズ、画面保存コマンド４４０で指定されたＩＤをＩＤ管理テーブル２０８に登録する（ステップＳ５２３）。なお、このとき、ＩＤ管理テーブル２０８内のこのＩＤに関連するエントリは、「保存中」の状態に設定される。そして、再びコマンド入力待ち状態に戻る。
【００５８】
また、ステップＳ５３０の画面復元処理では、図５Ｄに図示されているように、まずＩＤ管理テーブル内の情報を参照して、画面復元コマンド４５０によって指定されたＩＤを有するデータがデータキャッシュ２０７にキャッシュされているか否かを調べる（ステップＳ５３１）。
【００５９】
画面保存コマンド４４０及び画面復元コマンド４５０は対になって使用されるコマンドである。したがって、画面保存コマンド４４０が無視された場合には、画面復元コマンド４５０を受信したときに、対応するＩＤを有するデータがデータキャッシュ２０７に存在しない可能性がある。ステップＳ５３１において、画面復元コマンド４５０によって指定されたＩＤを有するデータがデータキャッシュ２０７にキャッシュされていない場合には、再びコマンド入力待ちの状態に戻る。すなわち、結果として、画面復元コマンド４５０は無視されたことになる。
【００６０】
一方、ステップＳ５３１において、画面復元コマンド４５０によって指定されたＩＤを有するデータがデータキャッシュ２０７にキャッシュされていた場合には、そのデータをデータキャッシュ２０８から描画フレームバッファ２０１にコピーする（ステップＳ５３２）とともに、当該データをデータキャッシュ２０７から破棄する（ステップＳ５３３）。そして、ＩＤ管理テーブル２０８内の対応するＩＤのエントリにおいて、データ復元中状態に変更設定し（ステップＳ５３４）、再びコマンド入力待ち状態に戻る。なお、ステップＳ５３４で設定されたデータ復元中状態は、同一のＩＤを有するデータ復元終了コマンド４６０によってのみ解除される。
【００６１】
また、ステップＳ５４０の画面復元終了処理では、図５Ｅに図示されているように、まずＩＤ管理テーブル２０８内の情報を参照して、画面復元終了コマンド４６０によって指定されたＩＤがデータ復元中状態か否かを調べる（ステップＳ５４１）。そして、画面復元終了コマンド４６０によって指定されたＩＤがデータ復元中状態の場合には、そのＩＤをＩＤ管理テーブル２０８から破棄して（ステップＳ５４２）、再びコマンド入力待ち状態に戻る。また、画面復元終了コマンド４６０によって指定されたＩＤがＩＤ管理テーブル２０８内に存在しない場合や、データ復元中状態ではない場合には、この画像復元終了コマンド４６０を無視し、（ステップＳ５４２）、再びコマンド入力待ち状態に戻る。
【００６２】
次に、具体的にサーバ機器１００から出力されるデータに基づいて、サーバ機器１００の動作について説明する。図６Ａ及び図６Ｂは、本発明の実施の形態のリモートユーザインタフェースシステムにおいて、ユーザ操作とＧＵＩ（メニュー）の表示と関係の第１及び第２の例を示す図である。図６Ａでは、図１２に図示されている言語選択のメニューの例を再び用いて説明を行う。このメニューには、「日本語」、「英語」、「中国語」、「韓国語」の４項目が表示されている。
【００６３】
図６Ａにおいて、初期状態のメニュー６０１では「日本語」がハイライト表示されており、「日本語」が選択可能な状態となっている。ここで、ユーザがリモコンの下矢印ボタンを押すと、「英語」の部分がハイライト表示され、「英語」が選択可能なメニュー６０２の状態になる。この状態でユーザが上矢印ボタンを押すと、再び「日本語」の部分がハイライト表示され、「日本語」が選択可能なメニュー６０３（メニュー６０１と同一）の状態となる。
【００６４】
一方、図６Ｂにおいても、初期状態のメニュー６０４では「日本語」がハイライト表示されており、「日本語」が選択可能な状態となっている。ここで、ユーザがリモコンの下矢印ボタンを２回連続して押すとする。このとき、最初の下矢印ボタンの押下によって「英語」の部分のハイライト表示が始まるが、一部のみ（図６Ｂのメニュー６０５では「英」の文字のみ）がハイライト表示された時点で、すぐに２回目の下矢印ボタンの押下によって選択カーソルが更に下方向に移動して、「中国語がハイライト表示されたメニュー６０６に移行する。
【００６５】
また、図７は、図６Ａ及び図６Ｂに図示されているメニューの座標位置の一例を示す図である。図７に図示されているように、メニュー７０１は「日本語」、「英語」、「中国語」、「韓国語」の４つの項目が縦に積層配置された構造を有している。各項目の画像データは、幅１５０、高さ３０の同一形状を有しており、４つの項目が積層された全体の座標は、左上の座標が（０，０）、右上の座標が（１５０，０）、左下の座標が（０，１２０）、右下の座標が（１５０，１２０）となっている。
【００６６】
次に、図６Ａ及び図７を参照しながら、図８Ａに図示されている本発明のサーバ機器１００の動作について具体的に説明する。図８Ａは、図６Ａに図示されているメニュー６０１の表示からメニュー６０３の表示に遷移する際の描画コマンドの一例を示す図である。
【００６７】
なお、各行が各コマンドに対応しており、分かりやすいように各コマンドにはナンバー（Ｎｏ．）が割り当てられている。また、Ｘ、Ｙ、Ｗ、Ｈは、図７に図示されている画像データの左上の座標位置、画像データの幅及び高さであり、ＩＤはサーバ機器１００が画像データに対して付与するＩＤである。また、データの欄には、画像データが模式的に図示されており、状態の欄には、各行（各コマンド）が実行された時点におけるメニューの状態（図８Ｂを参照）が示されている。
【００６８】
図８Ａにおいて、図８Ｂのメニュー８５１を初期表示状態とする。また、初期状態として、クライアント機器２００のデータキャッシュ２０７は空であるとする。ここで、ユーザによって下矢印ボタンが入力されると、クラインアント機器２００からサーバ機器１００に下矢印ボタンが押されたことを示すコマンドが送信される。サーバ機器１００はこのコマンドを受けて、まず、画面の更新領域である非ハイライト表示の「英語」の画像領域をＩＤ＝２の画像データとして保存するように指示する画面保存コマンドを送信する（Ｎｏ．８０１）。なお、画面の更新領域であるハイライト表示の「日本語」の画像領域もデータキャッシュ２０７にキャッシュされてもよいが、ここでは説明を省略する。
【００６９】
さらに、サーバ機器１００は、クライアント機器２００に対して、ハイライト表示の「英」、「語」、空白（「英語」の後ろの余白）の画像データの表示を指示する画面更新コマンドと、非ハイライト表示の「日」、「本」、「語」の画像データの表示を指示する画面更新コマンドとを送信する（Ｎｏ．８０２〜Ｎｏ．８０７）。
【００７０】
なお、図８Ｂのメニュー８５２は、Ｎｏ．８０２のハイライト表示の「英」の画像データを含む画面更新コマンドの処理後のメニューであり、図８Ｂのメニュー８５３は、Ｎｏ．８０６の非ハイライト表示の「本」の画像データを含む画面更新コマンドの処理後のメニューである。また、図８Ｂのメニュー８５４は、Ｎｏ．８０７のデータを含む画面更新コマンドの処理後のメニューであり、図８Ｂのメニュー８５３は、Ｎｏ．８０６の非ハイライト表示の「本」の画像データを含む画面更新コマンドの処理後のメニューであり、すなわち、ユーザによる下矢印ボタンの押下に対応した処理が完了した場合のメニューである。
【００７１】
次に、ユーザによって上矢印ボタンが入力され、クラインアント機器２００からサーバ機器１００に上矢印ボタンが押されたことを示すコマンドが送信されたとする。この場合には、サーバ機器１００はこのコマンドを受けて、まず、ＩＤ＝２の画像データ（非ハイライト表示の「英語」）の復元（元の位置に再表示）を指示する画面復元コマンドを送信する（Ｎｏ．８０８）。なお、図８Ｂのメニュー８５５は、Ｎｏ．８０８の画面復元コマンドの処理後のメニューである。
【００７２】
また、サーバ機器１００は、画面の更新領域である非ハイライト表示の「日本語」の画像領域をＩＤ＝３の画像データとして保存するように指示する画面保存コマンドを送信する（Ｎｏ．８０９）。さらに、サーバ機器１００は、クライアント機器２００に対して、ハイライト表示の「日」、「本」、「語」の画像データの表示を指示する画面更新コマンドと、非ハイライト表示の「英」、「語」、空白（「英」、「語」の後ろの余白）の画像データの表示を指示する画面更新コマンドとを送信する（Ｎｏ．８１０〜Ｎｏ．８１５）。なお、図８Ｂのメニュー８５６は、Ｎｏ．８１０のハイライト表示の「日」の画像データを含む画面更新コマンドの処理後のメニューであり、図８Ｂのメニュー８５７は、Ｎｏ．８１２のハイライト表示の「語」の画像データを含む画面更新コマンドの処理後のメニューである。
【００７３】
そして、サーバ機器１００はクライアント機器２００に対して、ＩＤ＝２の画像データに関する画面復元コマンド（Ｎｏ．８０８）を無効にする画面復元終了コマンドを送信し（Ｎｏ．８１６）、処理は終了となる。
【００７４】
なお、Ｎｏ．８０８における画面復元コマンドが有効な場合には、図８Ｂのメニュー８５７を参照すれば分かるように、Ｎｏ．８１２の画面更新コマンドに係る処理が完了した時点でメニューの書き換えはすべて終了している。この場合、クライアント機器２００は、「英語」の表示領域はデータ復元中状態なので、非ハイライト表示の「英語」に関する画像更新コマンド（Ｎｏ．８１３〜Ｎｏ．８１５）を無視する。これにより、メニュー８５４の状態からユーザによる上矢印ボタンの押下に応じて瞬時に「英語」メニューのハイライトが消え（メニュー８５５）、すぐに「日本語」メニューのハイライトが開始される（メニュー８５６及びメニュー８５７）ので、画面更新コマンドの伝送回数が低減されるとともに、ユーザ操作が即座に表示画面に反映される高速表示が実現されるようになる。
【００７５】
一方、Ｎｏ．８０８における画面復元コマンドが有効ではないクライアント機器は、非ハイライト表示の「英語」に関する画像更新コマンド（Ｎｏ．８１３〜Ｎｏ．８１５）の処理を行うことで、正常な画面表示を得ることが可能となる。すなわち、クライアント機器２００が、例えば本発明に係る動作に対応していない既存のＶＮＣクライアント機器の場合であっても、画面更新コマンド以外の新規コマンドは処理不可能なコマンドとして無視される一方、サーバ機器１００が正常な画面更新が行われるように画面更新コマンドの送信を行うことで、従来の技術におけるクライアント機器に対する互換性が保たれるようになる。
【００７６】
なお、サーバ機器１００が、クライアント機器２００が本発明に対応していることをサーバ機器１００が事前に把握しているのであれば、従来の技術のクライアント機器との互換性を保つために必要な画像更新コマンド（Ｎｏ．８１３〜Ｎｏ．８１５）の送信を行わないようにしてもよい。
【００７７】
また、サーバ機器１００は、例えば６つの画面更新コマンド（Ｎｏ．８１０〜Ｎｏ．８１５）の送信順序を配慮せずに、これらのコマンドの送信を行ってもよいが、コマンドソート部１０５は、先にハイライト表示の「日本語」の画像データの表示を指示する画面更新コマンド（Ｎｏ．８１０〜Ｎｏ．８１２）の送信を行うように制御して、本発明に対応するクライアント機器２００における高速表示を実現することが望ましい。
【００７８】
次に、図６Ｂ及び図７を参照しながら、図９Ａに図示されている本発明のサーバ機器１００の動作について具体的に説明する。図９Ａは、図６Ｂに図示されているメニュー６０４の表示からメニュー６０６の表示に遷移する際の描画コマンドの一例を示す図である。ここでは、ユーザが連続して下矢印ボタンを２回押下した操作を行った場合を想定している。
【００７９】
なお、図９Ａに図示されている表形式の構造は、図８Ａと同様である。また、図９Ａにおいて、図８Ａの処理が完了した後の状態を初期状態とする。すなわち、図９Ａにおいて、図９Ｂのメニュー９５１を初期表示状態とする。また、初期状態として、クライアント機器２００のキャッシュデータ２０７には、非ハイライト表示の「日本語」の画像領域がＩＤ＝３の画像データとして保存されているものとする。
【００８０】
ここで、ユーザによって下矢印ボタンが入力されると、クラインアント機器２００からサーバ機器１００に下矢印ボタンが押されたことを示すコマンドが送信される。サーバ機器１００はこのコマンドを受けて、ＩＤ＝３の画像データ（非ハイライト表示の「日本語」）の復元を指示する画面復元コマンドを送信する（Ｎｏ．９０１）。なお、図９Ｂのメニュー９５２は、Ｎｏ．９０１の画面復元コマンドの処理後のメニューである。
【００８１】
また、サーバ機器１００は、画面の更新領域である非ハイライト表示の「英語」の画像領域をＩＤ＝４の画像データとして保存するように指示する画面保存コマンドを送信する（Ｎｏ．９０２）。そして、ハイライト表示の「英」の画像データを含む画面更新コマンドを送信し（Ｎｏ．９０３）、ハイライト表示の「英語」及び非ハイライト表示の「日本語」の画面更新処理を開始する。なお、図９Ｂのメニュー９５３は、Ｎｏ．９０３のハイライト表示の「英」の画像データを含む画面更新コマンドの処理後のメニューである。
【００８２】
ここで、ユーザによって下矢印ボタンが更に入力されると、クラインアント機器２００からサーバ機器１００に下矢印ボタンが押されたことを示すコマンドが送信される。サーバ機器１００はこのコマンドを受けて、ＩＤ＝４の画像データ（非ハイライト表示の「英語」）の復元を指示する画面復元コマンドを送信する（Ｎｏ．９０４）。なお、図９Ｂのメニュー９５４は、Ｎｏ．９０４の画面復元コマンドの処理後のメニューである。
【００８３】
また、サーバ機器１００は、画面の更新領域である非ハイライト表示の「中国語」の画像領域をＩＤ＝５の画像データとして保存するように指示する画面保存コマンドを送信する（Ｎｏ．９０５）。さらに、サーバ機器１００は、クライアント機器２００に対して、ハイライト表示の「中」、「国」、「語」の画像データの表示を指示する画面更新コマンドと、非ハイライト表示の「英」の画像データの表示を指示する画面更新コマンドとを送信する（Ｎｏ．９０６〜Ｎｏ．９０９）。
【００８４】
なお、図９Ｂのメニュー９５５は、Ｎｏ．９０６のハイライト表示の「中」の画像データを含む画面更新コマンドの処理後のメニューであり、図９Ｂのメニュー９５６は、Ｎｏ．９０８のハイライト表示の「語」の画像データを含む画面更新コマンドの処理後のメニューである。したがって、Ｎｏ．９０８までのコマンド処理によって、本発明に対応したクライアント機器２００であれば、ユーザによる操作が入力されてから最小限の時間によって、ユーザによる操作が反映された画面（メニュー９５６）表示されるようになる。
【００８５】
なお、Ｎｏ．８０８における画面復元コマンドが有効な場合には、図８Ｂのメニュー８５７を参照すれば分かるように、Ｎｏ．８１２の画面更新コマンドに係る処理が完了した時点でメニューの書き換えはすべて終了している。この場合、クライアント機器２００は、「英語」の表示領域はデータ復元中状態なので、非ハイライト表示の「英語」に関する画像更新コマンド（Ｎｏ．８１３〜Ｎｏ．８１５）を無視する。これにより、メニュー８５４の状態からユーザによる上矢印ボタンの押下に応じて瞬時に「英語」メニューのハイライトが消え（メニュー８５５）、すぐに「日本語」メニューのハイライトが開始される（メニュー８５６及びメニュー８５７）ので、画面更新コマンドの伝送回数が低減されるとともに、ユーザ操作が即座に表示画面に反映される高速表示が実現されるようになる。
【００８６】
Ｎｏ．９０９の非ハイライト表示の「英」の画像データを含む画面更新コマンドは、Ｎｏ．９０５の画面復元コマンドが有効に作用しないクライアント機器（例えば、従来のＶＮＣクライアント機器）に対して、Ｎｏ．９０３で更新されたハイライト表示の「英」を非ハイライト表示に戻すためのものである。したがって、コマンドの順序として、Ｎｏ．９０９の画面更新コマンドの送信が完了した後に、Ｎｏ．９１０のＩＤ＝４の画像データに係る画面復元終了コマンドが送信される必要がある。
【００８７】
また、さらに、Ｎｏ．９０１の画面復元コマンドが有効に作用しないクライアント機器（例えば、従来のＶＮＣクライアント機器）では、依然として「日本語」がハイライト表示されている。したがって、サーバ機器１００はクライアント機器２００に対して、「日本語」を非ハイライト表示に戻すための画面更新コマンド（Ｎｏ．９１１〜Ｎｏ．９１３）送信する。このＮｏ．９１１〜Ｎｏ．９１３の画面更新コマンドは、本発明に対応するクライアント機器２００では、「日本語」の表示領域がデータ復元中状態であるがゆえに無視される。そして最後にサーバ機器１００はクライアント機器２００に対して、ＩＤ＝３に関する画面復元終了コマンドを送信し（Ｎｏ．９１４）、処理は終了となる。
【００８８】
なお、サーバ機器１００のコマンドソート部１０５は、まず画面復元コマンドや画面保存コマンドが送信され、続いて、画面復元コマンドの送信によって画面復元中状態となっている画像領域以外の画像領域に係る画面更新コマンドの送信が行われ、その後、画面復元コマンドの送信によって画面復元中状態となっている画像領域に係る画面更新コマンドの送信が行われて、最後に画面復元コマンドの効果を解除するための画面復元終了コマンドの送信が行われるようにコマンド列の送信順序を制御することが望ましい。このコマンドの送信順序の制御によって、本発明に対応するクライアント機器２００における高速表示を効率良く実現することが可能となる。
【００８９】
また、ここでは詳細には説明していないが、ボタンの点滅を表すような繰り返しのアニメーションに係る画像データがコマンドに含まれている場合には、サーバ機器１００のコマンドソート部１０５は、ユーザによる直近のボタン入力のコマンドを優先して実行することが望ましい。
【００９０】
次に、図１０Ａ及び図１０Ｂや図１１Ａ及び図１１Ｂを参照しながら、従来の技術におけるクライアント機器２００（例えばＶＮＣクライアント機器）が、上述の図８Ａや図９Ａに図示されているサーバ機器１００からのコマンド列を処理する場合について説明する。
【００９１】
図１０Ａに図示されているコマンド列は、図８Ａと同一である。図１０Ａにおいて、本発明に特徴的な画像データを保存する機能を有していないＶＮＣクライアント機器では、各状態１０５１〜１０５９において、それぞれ図１０Ｂに図示されているメニューの表示が行われる。また同様に、図１１Ａに図示されているコマンド列は、図９Ａと同一である。図１１Ａにおいて、本発明に特徴的な画像データを保存する機能を有していないＶＮＣクライアント機器では、各状態１１５１〜１１５９において、それぞれ図１１Ｂに図示されているメニューの表示が行われる。
【００９２】
詳細な説明については省略するが、ＶＮＣクライアント機器においても、図１０Ｂや図１１Ｂの各メニューを参照すれば分かるとおり、描画途中で画面の更新が若干不自然な部分があるものの、ユーザによって入力された矢印ボタンに即座に反応して描画が開始され、ユーザは自分の操作に対する反応を即座に表示画面上で認知することが可能である。また、画面の更新に関しては、サーバ機器１００が意図したとおりにＶＮＣクライアント機器においても画面の更新が行われる。
【００９３】
このように本発明のリモートユーザインタフェースシステムのサーバ機器から、従来の技術におけるクライアント機器にコマンド列が送出された場合であっても、従来の技術におけるクライアント機器において、画面表示がサーバ機器１００が意図したとおりに正常に更新されるようにすることが可能である。
【００９４】
一方、クライアント機器が本発明に対応しており、サーバ機器が本発明に非対応な場合であっても、サーバ機器からクライアント機器に対して従来の技術に係る描画コマンド（例えば画面更新コマンド）しか発行されないので、動作の不具合が生じることはない。このように、リモートユーザインタフェースシステムのサーバ機器及びクライアント機器のどちらか一方が本発明に非対応な場合であっても、正常な画面更新動作が行わる。また、サーバ機器及びクライアント機器の両方が本発明に対応している場合には、本発明の効果である高速表示やキャッシュの有効利用（伝送データの低減）が最も効果的に実現される。
【産業上の利用可能性】
【００９５】
本発明は、リモートユーザインタフェースシステムにおいて、ネットワークを介してユーザインタフェースの操作を行う際の操作性を向上させることが可能であるという効果を有しており、リモートユーザインタフェースシステムに関連する技術分野に適用可能である。
【図面の簡単な説明】
【００９６】
【図１】本発明の実施の形態におけるリモートユーザインタフェースシステムの構成の概略を示す図である。
【図２】本発明の実施の形態におけるリモートユーザインタフェースシステムのサーバ機器の構成の一例を示すブロック図である。
【図３】本発明の実施の形態におけるリモートユーザインタフェースシステムのクライアント機器の構成の一例を示すブロック図である。
【図４Ａ】本発明の実施の形態のリモートユーザインタフェースシステムにおいて、クライアント機器からサーバ機器に送信されるコマンドの一例を示す図である。
【図４Ｂ】本発明の実施の形態のリモートユーザインタフェースシステムにおいて、サーバ機器からクライアント機器に送信されるコマンドの一例を示す図である。
【図５Ａ】本発明の実施の形態におけるクライアント機器の動作アルゴリズムの一例を示すフローチャートである。
【図５Ｂ】図５ＡのステップＳ５１０の画面更新処理の詳細を示すフローチャートである。
【図５Ｃ】図５ＡのステップＳ５２０の画面保存処理の詳細を示すフローチャートである。
【図５Ｄ】図５ＡのステップＳ５３０の画面復元処理の詳細を示すフローチャートである。
【図５Ｅ】図５ＡのステップＳ５４０の画面復元終了処理の詳細を示すフローチャートである。
【図６Ａ】本発明の実施の形態のリモートユーザインタフェースシステムにおいて、ユーザ操作とＧＵＩ（メニュー）の表示と関係の第１の例を示す図である。
【図６Ｂ】本発明の実施の形態のリモートユーザインタフェースシステムにおいて、ユーザ操作とＧＵＩ（メニュー）の表示と関係の第２の例を示す図である。
【図７】図６Ａ及び図６Ｂに図示されているメニューの座標位置の一例を示す図である。
【図８Ａ】本発明の実施の形態において、図６Ａに図示されているメニュー６０１の表示からメニュー６０３の表示に遷移する際の描画コマンドの一例を示す図である。
【図８Ｂ】図８Ａの主要な各状態において表示されるメニューの一例を示す図である。
【図９Ａ】本発明の実施の形態において、図６Ｂに図示されているメニュー６０４の表示からメニュー６０６の表示に遷移する際の描画コマンドの一例を示す図である。
【図９Ｂ】図９Ａの主要な各状態において表示されるメニューの一例を示す図である。
【図１０Ａ】図８Ａに図示されている描画コマンド列が従来の技術におけるクライアント機器によって処理される場合の一例を説明するための図である。
【図１０Ｂ】図１０Ａの主要な各状態において表示されるメニューの一例を示す図である。
【図１１Ａ】図９Ａに図示されている描画コマンド列が従来の技術におけるクライアント機器によって処理される場合の一例を説明するための図である。
【図１１Ｂ】図１１Ａの主要な各状態において表示されるメニューの一例を示す図である。
【図１２】従来の技術のＶＮＣにおける動作の概略を示す図である。
【符号の説明】
【００９７】
１００  サーバ機器
１０１  機器制御部
１０２  メニュー制御部
１０３  描画コマンド生成部
１０４  メニューリソース
１０５  コマンドソート部
１０６  コマンド列記憶部
１０７  コマンド出力部
１０８  通信部
１０９、２０６  タイマ
２００  クライアント機器
２０１  描画フレームバッファ
２０２  入力部
２０３  コマンド生成部
２０４  描画制御部
２０５  通信部
２０７  データキャッシュ
２０８  ＩＤ管理テーブル  
２２０  表示装置
２２１  リモコン
３００  ネットワーク
４１０  画面更新要求コマンド
４２０  ユーザ入力コマンド
４３０  画面更新コマンド
４４０  画面保存コマンド
４５０  画面復元コマンド
４６０  画面復元終了コマンド
６０１〜６０６、７０１、８５１〜８５７、９５１〜９５６、１０５１〜１０５９、１１５１〜１１５９  メニュー
【図１】
2008129954.tif 000003
【図２】
2008129954.tif 000004
【図３】
2008129954.tif 000005
【図４Ａ】
2008129954.tif 000006
【図４Ｂ】
2008129954.tif 000007
【図５Ａ】
2008129954.tif 000008
【図５Ｂ】
2008129954.tif 000009
【図５Ｃ】
2008129954.tif 000010
【図５Ｄ】
2008129954.tif 000011
【図５Ｅ】
2008129954.tif 000012
【図６Ａ】
2008129954.tif 000013
【図６Ｂ】
2008129954.tif 000014
【図７】
2008129954.tif 000015
【図８Ａ】
2008129954.tif 000016
【図８Ｂ】
2008129954.tif 000017
【図９Ａ】
2008129954.tif 000018
【図９Ｂ】
2008129954.tif 000019
【図１０Ａ】
2008129954.tif 000020
【図１０Ｂ】
2008129954.tif 000021
【図１１Ａ】
2008129954.tif 000022
【図１１Ｂ】
2008129954.tif 000023
【図１２】
2008129954.tif 000024