画像表示方法及び画像表示プログラム
【課題】 画面のフレームレートが低い場合でも、ポインティング精度を確保できる画像表示方法及び画像表示プログラムを提供する。
【解決手段】画像表示方法は、所定のネットワークに接続された情報処理装置から送信される画像を表示する画像表示方法において、カーソルの位置情報を取得する第1の段階と、前記取得段階により取得したカーソルの位置情報を前記情報処理装置に送信する第2の段階と、前記情報処理装置から取得した第1の画像に、前記情報処理装置から取得した前記第2の段階により送信したカーソルの位置情報に応じた第2の画像を合成して、表示手段に表示する第3の段階とを有する。
【解決手段】画像表示方法は、所定のネットワークに接続された情報処理装置から送信される画像を表示する画像表示方法において、カーソルの位置情報を取得する第1の段階と、前記取得段階により取得したカーソルの位置情報を前記情報処理装置に送信する第2の段階と、前記情報処理装置から取得した第1の画像に、前記情報処理装置から取得した前記第2の段階により送信したカーソルの位置情報に応じた第2の画像を合成して、表示手段に表示する第3の段階とを有する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像表示方法及び画像表示プログラムに関する。
【背景技術】
【0002】
コンピュータの処理性能が格段に進歩したことに伴い、その利用はより広範囲になりつつある。例えば、個人ユーザが複数のコンピュータを所有し、各コンピュータ毎に異なる作業環境でコンピュータを利用する機会も増えている。この場合は、通常、キーボード、ディスプレイ、マウスなどの入出力装置を、切替器を介して複数のコンピュータに接続し、省スペース化と低コスト化を図っている。
【0003】
このような切替器はKVM(K:Keyboard、V:Video、M:Mouse)スイッチと一般に呼ばれている。切替器は、入出力装置と複数のコンピュータとの間に接続され、入出力装置と複数のコンピュータのいずれか1つのみとの間の接続をアクティブにするものである。ユーザは切替器を用いて、複数のコンピュータの中から入出力装置に接続すべきコンピュータを選択して利用することができる。
【0004】
しかし、このような従来の切替器では、切替器に接続されたマウス、キーボードから操作を行うことが必要であり、その場にいなければ操作できないという問題があった。このような問題点を解決する切替器として、遠隔操作可能な切替器が提案されている。
【0005】
遠隔操作可能な切替器によれば、切替器に接続されたマウス、キーボードから操作を行う場合のみならず、ネットワークを介して遠隔地に設置されたPCからも切替器に接続されたコンピュータにアクセスすることができる。このような従来の切替器について特許文献1記載の技術が提案されている。特許文献1記載の切替器によれば、複数のコンピュータを、入力装置を備えた他のコンピュータから遠隔的に切り替えることができるというものである。
【0006】
また、切替器に関する画面表示技術に関し、特許文献2記載の技術が提案されている。特許文献2記載の中央監視制御システムによれば、ホストコンピュータとネットワークで接続したパーソナルコンピュータをリモート端末とし、コンピュータのディスプレイへの画面表示情報はXウインドウシステムにより伝送し、リモート端末の操作はマウスで行い、画面切り替えはキーボードによりホストコンピュータに通知することにより、コンピュータのディスプレイにはホストコンピュータの監視制御用ディスプレイと同等の画面表示と操作機能を得ることができるというものである。
【0007】
また、切替器に関するものではないが、カーソルの制御に関する技術として特許文献3記載の技術が提案されている。特許文献3記載のポインティングカーソル予測移動装置は、マウスカーソルの移動経過を検出して、最終目的物を予測し、目的物のアイコンにカーソルをスキップすることで、カーソルの移動時間を減少させるというものである。
【特許文献1】特開2001−344189号公報
【特許文献2】特開平9−69010号公報
【特許文献3】特開平3−48922号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
しかしながら、従来の切替器では、画像出力を走査線毎にアナログからデジタルにA/D変換し、ネットワークを介して接続された遠隔操作コンピュータへ送信するようにしていたため、送信する画面が広くなるにつれA/D変換に時間もかかってしまい、フレームレートが低下してしまっていた。このフレームレートは、変換処理速度に依存する。マウスカーソルのようなポインティングのための表示は、フレームレートが低下してしまうと、ポインティング精度が落ちてしまうという問題があった。
【0009】
また、従来の切替器では、選択しているコンピュータから入力される画像データを、走査周波数Fの1/nで取得し(1≦n<走査周波数)、取得した画像と、前回取得画像とを比較し、比較の結果、相違点を含むラインあるいはブロックを抽出し、この抽出したラインあるいはブロックを遠隔操作コンピュータへ送信するものも提案されているが、この方法の場合、画面全体に対して相違点のチェックを行うため、画面サイズが大きくなるに従い、フレームレートが低下してしまう。また、画面変化が大きい場合にも、フレームレートが低下してしまう。このため、マウスカーソル表示更新頻度も、フレームレートと共に低下してしまい、ポインティングに支障をきたすという問題がある。
【0010】
特許文献3記載のポインティングカーソル予測移動装置では、カーソルの移動時間を早めることができるものの、この装置では、フレームレートの低下に基づく、ポインティング精度の低下を解消することはできない。
【0011】
そこで、本発明は、これらの問題を解決するためになされたもので、画面のフレームレートが低い場合でも、ポインティング精度を確保できる画像表示方法及び画像表示プログラムを提供することを目的とする。
【課題を解決するための手段】
【0012】
請求項1記載の画像表示方法は、所定のネットワークに接続された情報処理装置から送信される画像を表示する画像表示方法において、カーソルの位置情報を取得する第1の段階と、前記取得段階により取得したカーソルの位置情報を前記情報処理装置に送信する第2の段階と、前記情報処理装置から取得した第1の画像に、前記情報処理装置から取得した前記第2の段階により送信したカーソルの位置情報に応じた第2の画像を合成して、表示手段に表示する第3の段階とを有することを特徴とする。
【0013】
請求項1記載の発明によれば、カーソルの位置情報を取得し、取得したカーソルの位置情報を情報処理装置に送信し、情報処理装置から第1の画像と、カーソルの位置情報に応じた第2の画像を取得し、これを合成して、表示手段に表示するようにしたので、全体画面のフレームレートが低い場合でも、ポインティング精度を確保することができる。
【0014】
また、請求項2記載の画像表示プログラムは、所定のネットワークに接続された情報処理装置から送信される画像を表示するためにコンピュータを、カーソルの位置情報を取得する第1の手段、前記第1の手段により取得した前記カーソルの位置情報を前記情報処理装置に送信する第2の手段、前記情報処理装置から取得した第1の画像に、前記情報処理装置から取得した前記第2の手段により送信したカーソルの位置情報に応じた第2の画像を合成して、表示手段に出力する第3の手段として機能させる。
【0015】
請求項2記載の発明によれば、カーソルの位置情報を取得し、取得したカーソルの位置情報を情報処理装置に送信し、情報処理装置から第1の画像と、カーソルの位置情報に応じた第2の画像を取得し、これを合成して、表示手段に表示するようにしたので、全体画面のフレームレートが低い場合でも、ポインティング精度を確保することができる。
【発明の効果】
【0016】
以上説明したように、本発明によれば、画面のフレームレートが低い場合でも、ポインティング精度を確保できる画像表示方法及び画像表示プログラムを提供することができる。
【発明を実施するための最良の形態】
【0017】
以下、本発明を適用した一実施形態について説明する。図1は本実施の形態に係る切替器を説明するためのブロック図である。図1に示すように、切替器10には、複数のサーバS1〜サーバSn、近接箇所からサーバS1〜Snを操作するためのマウス20、キーボード21、ディスプレイ22が接続されている。
【0018】
また、切替器10には、各サーバS1〜Snを遠隔地から操作する遠隔操作コンピュータ31、32がネットワーク30を介して接続されている。本実施の形態では、ネットワーク30は、バス型のLAN(ローカルエリアネットワーク)であるEthernet(登録商標)を用いて説明する。
【0019】
切替器10は、画像処理部11と、ネットワーク変換回路13と、パケットフィルタリング回路14と、コントローラ15と、アナログSW2と、キーボード・マウス(KBMS)制御マイコン16と、KBMSエミュレーションコントローラKC1〜KCnを有する。なお、切替器10は情報処理装置及び画像送信装置に相当する。
【0020】
画像処理部11は、サーバS1〜サーバSnからのアナログRGB信号をネットワーク30上の遠隔操作コンピュータ31、32に送るために所定の処理を行うためのものである。画像処理部11は、コントローラ110と、A/D変換回路111と、メモリ112と、画像圧縮回路113と、アナログSW1とを有する。
【0021】
アナログSW1は、遠隔操作コンピュータ31、32がアクセスするサーバS1〜Snを切り替えるものである。アナログSW1は、切替器10に設けられたスイッチ(図示せず)を操作することによって切り替えることができる。このアナログSW1は、遠隔操作コンピュータ31、32からも接続先を切り替えることができるようになっている。
【0022】
コントローラ110は、画像処理部11全体を制御する。コントローラ110は、所定のプログラムに基づき、遠隔操作コンピュータ31、32からカーソルの位置情報を取得する取得手段、取得手段により取得したカーソルの位置情報に基づいて、サーバS1〜Sn(コンピュータ)から得られる画像を記憶するメモリ112(画像記憶手段)からカーソル周辺画像を抽出する画像抽出手段、画像抽出手段により抽出したカーソル周辺画像を遠隔操作コンピュータ31、32に送信するカーソル画像送信手段として機能する。
【0023】
このとき、コントローラ110は、カーソル周辺画像を抽出する際に、サーバS1〜Snから取得した第1の画像と該第1の画像の次に取得した第2の画像との差分をとって画像の変化の有無を検知し、前記第1の画像に対する前記第2の画像の変化分を含む所定の領域だけを抽出するようにしてもよい。
【0024】
また、コントローラ110は、所定のプログラムに基づき、遠隔操作コンピュータ31、32に全体画像を送信する画像送信手段として機能する。この画像送信手段は、遠隔操作コンピュータ31、32からカーソルの位置情報を取得した際に、遠隔操作コンピュータ31、32への全体画像の送信を停止し、カーソル画像送信手段によりカーソル周辺画像の送信した後に、遠隔操作コンピュータ31、32への全体画像の送信を再開する。
【0025】
また、コントローラ110は、所定のプログラムに基づき、遠隔操作コンピュータ31、32に送信する全体画像の画像処理を行うように画像処理手段に指示を出す。この画像処理手段は、遠隔操作コンピュータ31、32からカーソルの位置情報を取得した際に、全体画像の画像処理を停止し、カーソル画像送信手段によりカーソル周辺画像を送信した後に、全体画像の画像処理を再開する。この画像処理は、例えば、A/D変換回路111が行うA/D変換である。
【0026】
また、コントローラ110は、所定のプログラムに基づき、全体画像を送信する際に、サーバS1〜Snから取得した第1の画像と該第1の画像の次に取得した第2の画像との差分をとって画像の変化の有無を検知し、第1の画像に対する第2の画像の変化分を含む所定の領域を遠隔操作コンピュータに送信する。
【0027】
また、上記画像抽出手段は、所定間隔毎にカーソル周辺画像を抽出するようにしてもよい。この所定間隔は、遠隔操作コンピュータ31、32からの設定値に基づいて、変更できるようにしてもよい。また、所定間隔は、ネットワークの混雑状況に応じて、変更できるようにいてもよい。
【0028】
A/D変換回路111は、サーバS1〜サーバSnからのアナログRGB信号をネットワーク上に送るためにデジタル信号に変換する。メモリ112は、サーバ側からの画像データを記憶する。このメモリ112が画像記憶手段に相当する。
【0029】
画像圧縮回路113は、所定の圧縮方式又は圧縮率に基づいて、遠隔操作コンピュータに送信する画像を圧縮する。画像圧縮回路113では、ネットワーク30の混雑状況に応じて、圧縮方式又は圧縮率を変更するようにしてもよい。この画像圧縮回路113が画像圧縮手段に相当する。図1に示す例では、ハードウエアにより画像圧縮手段を実現しているが、ソフトウエアによっても画像圧縮手段を実現できる。ソフトウエアにより実現する場合は、所定のプログラムをロードして、コントローラ110により実行される。
【0030】
上記所定の圧縮方式又は圧縮率は、コントローラ15の制御のもと、ネットワークの混雑状況に応じて適宜変更することができる。また、遠隔操作コンピュータ31、32で所定操作を行うことにより、画像圧縮回路113での圧縮方式又は圧縮率を変更することもできる。圧縮方式としては、例えば、JPEG、MPEGなどの方式がある。
【0031】
図1では、画像処理部11を一つで構成する例にとって説明しているが、この画像処理部11を複数設けるようにしてもよい。画像処理部11を複数設けることにより、同時に複数の遠隔操作コンピュータ31、32等からサーバS1〜Snにアクセスすることができる。なお、画像処理部11はボードによって構成することができ、このボード数を増やすことによりサーバS1〜Snにアクセスできるユーザ数を増やすことができる。
【0032】
ネットワーク変換回路13は、切替器10をLANに接続するためのものである。このネットワーク変換回路13は、画像処理部11からのデジタル信号や、キーボード・マウス制御マイコン16からのデジタル信号をパケットに変換してネットワーク上に出力する。パケットフィルタリング回路14は、ネットワーク変換回路13が受信したパケットデータ量を加算する。
【0033】
コントローラ15は、切替器10全体を制御する。このコントローラ15は、遠隔操作コンピュータ31、32から受け取ったマウスの絶対座標値をKBMS制御マイコン16に送るとともに、画像処理部11にも送る。コントローラ15は、画像圧縮回路113での圧縮方式又は圧縮率を制御する。
【0034】
キーボード・マウス制御マイコン16は、マウス20、キーボード21、遠隔操作コンピュータ31、32に接続されたマウス、キーボードをサーバS1〜サーバSnごとに制御する。
【0035】
次に、遠隔操作コンピュータについて説明する。この遠隔操作コンピュータ31、32は情報処理装置に相当する。図2は、遠隔操作コンピュータ32の構成を示すブロック図である。図2に示すように、遠隔操作コンピュータ32は、中央処理装置(CPU)33、CPUバス34、主記憶装置35、システムバス36、バスブリッジ37、拡張スロット38、ディスプレイボード39、キーボードコントローラ40、マウスI/F41、ネットワーク制御部42とを有する。
【0036】
CPU33は、情報処理装置としての制御を司るプロセッサであり、CPUバス34を介して主記憶装置35と接続されている。また、バスブリッジ37は、CPUバス34とシステムバス36とを接続するためのブリッジである。拡張スロット38は、遠隔操作コンピュータ32に対して種々の周辺装置を接続するためのスロットであり、この例では、ディスプレイボード39、キーボードコントローラ40、マウスI/F41、ネットワーク制御部42を接続している。
【0037】
また、上記ディスプレイボード39、キーボードコントローラ40、マウスI/F41には、それぞれケーブル43〜45を介して、表示デバイス46、キーボード47、ポインティングデバイス(マウス)48が接続されている。図3は、図2におけるディスプレイボード39および表示デバイス46の詳細を示す構成図である。ディスプレイボード39は、ディスプレイコントローラ39aとグラフィックメモリ39bを備えている。
【0038】
ディスプレイコントローラ39aは、システムバス36を介してCPU33より与えられたコマンドに基づきグラフィックメモリ39bへの表示データの書込、読出を行い、表示デバイス46への表示データを生成する機能を備えている。
【0039】
このように構成された遠隔操作コンピュータ32と表示デバイス46において、その表示動作は次のように行われる。即ち、CPU33からの制御コマンドは、CPUバス34、バスブリッジ37、システムバス36、拡張スロット38の経路でディスプレイボード39のディスプレイコントローラ39aに書き込まれ、更に、ディスプレイコントローラ39aによって制御されるグラフィックメモリ39bに書き込まれる。
【0040】
また、ディスプレイコントローラ39aは、グラフィックメモリ39bの内容を参照し、その内容を表示デバイス46に表示可能なI/F信号に変換する。このI/F信号はケーブル43を介して表示デバイス46に転送され、表示が行われる。
【0041】
CPU33は、所定のプログラムに基づき、カーソルの位置情報を取得する第1の手段、第1の手段により取得したカーソルの位置情報を切替器10(情報処理装置)に送信する第2の手段、切替器10から取得した第1の画像に、切替器10から取得した第2の手段により送信したカーソルの位置情報に応じた第2の画像を合成するように、ディスプレイコントローラ39aに指示を出す。ディスプレイコントローラ39aは合成した画像を表示デバイス46に出力する。
【0042】
図4は、遠隔操作コントローラ32におけるソフトウェアとハードウェアの階層構造を示す説明図である。図4において、201はアプリケーション、202はOS(オペレーティングシステム)、203はディスプレイドライバ、204はキーボードドライバ、205はポインティングドライバであり、これらはソフトウェア階層である。
【0043】
このような階層構造において、アプリケーション201は、OS202が規定するAPI(Apprication Programming Interface)によって、OS202に通知する。そして、OS202は、OS202で規定されたGDI(Graphics Device Interface)によってディスプレイドライバ203に通知する。ディスプレイドライバ203は、上述した経路によって、ディスプレイボード7を直接制御する。
【0044】
このようなプロセスによってアプリケーション201の要求した表示内容が表示デバイス46で表示される。また、キーボード47からの入力は、ケーブル44を通り、キーボードコントローラ40によってキーボードドライバ204に通知される。そして、その内容はキーボードドライバ204によってOS202に格納され、この格納された内容はアプリケーション201からのキー入力要求APIによって読み出され、アプリケーション201に渡される。
【0045】
ポインティングデバイス(マウス)48からの入力は、ケーブル45を通り、マウスI/F41によってポインティングデバイスドライバ205に通知される。ポインティングデバイスドライバ205は、その内容をカーソル座標、ボタン押下等の情報に変換し、OS202に通知する。OS202はその情報をアプリケーション201に通知し、アプリケーション201はOS202からの通知内容によって、ポインティングデバイス48の状態を判断し、対応した処理を行う。
【0046】
所定の遠隔操作アプリケーションは、OS202から取得したマウスの相対座標値と、切替器10から事前に取得しターゲットコンピュータの解像度に基づいて、取得したマウスの相対座標値から絶対座標を算出する。遠隔操作アプリケーションは、絶対座標に変換されたマウスデータを切替器10に送信する。
【0047】
次に、切替器10の画像処理部について説明する。図5は、画像処理部11を説明するための図である。画像取得ステップS11において、切替器10の画像処理部11は、選択されているサーバS1〜Snから入力される画像データを、走査周波数Fの1/nで取得する。ここで、nは1≦n<走査周波数とする。
【0048】
A/D変換ステップS12において、A/D変換回路111は、サーバS1〜Snから取得した全体画像データを、走査線毎にアナログからデジタルに変換する。フレーム間引ステップS13において、コントローラ110は、フレーム間引きを行う。サーバS1〜Snから入力される画像は、60Hz程度であり、後述する変化領域抽出ステップでの変化領域抽出は、1/60秒以内に終わらないこともあるため、フレーム間引きを行う必要がある。フレーム間引きが行われた画面データは、メモリ112に保存される。
【0049】
変化領域抽出ステップS14において、コントローラ110は、サーバS1〜Snから得た第1の画像と第1の画像の次に取得した第2の画像との差分をとって画像の変化の有無を検知し、変化がある場合に、第1の画像に対する第2の画像の変化分を含む所定の領域を抽出する。
【0050】
ネットワーク送信ステップS15において、コントローラ110は、第1の画面に対する第2の画面の変化分を含む所定領域をネットワーク変換回路13を介して、遠隔操作コンピュータ32に送信する。なお、コントローラ110から出力される画像は必要に応じて画像圧縮回路113により圧縮される。
【0051】
次に、画像処理部11の他の動作例について説明する。図6は、画像処理部110が行う他の動作例であって、マウスの座標の入力をトリガとして、マウスカーソル周辺画像を送信する処理フローを示す図である。画像取得ステップS21において、画像処理部11は、選択されているサーバS1〜Snからの画像データを走査周波数Fの1/nで取得する。
【0052】
A/D変換ステップS22において、A/D変換回路111は、取得した全体画像データを、アナログからデジタルに変換する。なお、A/D変換回路111は、遠隔操作コンピュータ32からのマウス座標の入力をトリガとして、全体画像データのA/D変換を一時停止し、マウスの絶対座標より算出されるマウスカーソル周辺画像を抽出した後、全体画像のA/D変換を再開するようにしてもよい。フレーム間引ステップS23において、デジタルに変換された画像に対して1/nのフレーム間引きを行う。
【0053】
変化領域抽出ステップS24において、コントローラ110は、サーバS1〜Snから得た第1の画像と第1の画像の次に取得した第2の画像との差分をとって画像の変化の有無を検知し、変化がある場合に、第1の画像に対する第2の画像の変化分を含む所定の領域を抽出する。コントローラ110は、抽出した領域をネットワーク送信ステップS28において、遠隔操作コンピュータへ送信する。
【0054】
また、コントローラ110は、変化領域抽出ステップS24において、遠隔操作コンピュータ32からマウスの絶対座標の取得すると、フレームデータ取得ステップS25に進む。フレームデータ取得ステップS25において、コントローラ110は、最新のフレームデータをメモリ112から取得する。
【0055】
次に、マウスカーソル領域抽出ステップS26において、コントローラ110は、マウスカーソル周辺画像を抽出する。つまり、コントローラ110は、遠隔操作コンピュータから取得したマウスの絶対座標に基づいて、サーバS1〜Snから出力される画像上のマウスカーソル位置を算出する。コントローラ110は、算出したマウスカーソル位置に基づき、メモリ112に格納された画像から該当ブロック及び近傍ブロックの画像データを抽出する。これにより、マウスカーソル周辺画像が抽出される。
【0056】
この時、コントローラ110は、前回算出したマウスカーソル位置をメモリ112に保持しておき、前回算出したマウスカーソル位置に対応する該当ブロック及び近傍ブロックの画像データも抽出する。ここで、前回算出したマウスカーソル位置に対応する該当ブロック及び近傍ブロックも算出するのは、表示する際に移動もとの位置のマウスカーソルを消すためである。
【0057】
また、コントローラ110は、マウスカーソル領域抽出ステップS26において、算出したマウスカーソル位置に基づき、メモリ112に格納された画像から該当ブロック及び近傍ブロックの画像データを抽出する際に、メモリ112に格納されたサーバS1〜Snから取得した第1の画像と該第1の画像の次に取得した第2の画像との差分をとって画像の変化の有無を検知し、前記第1の画像に対する前記第2の画像の変化分を含む所定の領域だけを抽出するようにしてもよい。
【0058】
図7は、コントローラ110が抽出する該当ブロック及び近傍ブロックを説明するための図である。図7(a)に示すように、最初、マウスカーソルは、表示デバイス上でX1の位置にあったとする。次に、図7(b)に示すように、マウスカーソルは、表示デバイス上でX2の位置に移動したとする。
【0059】
コントローラ110は、図7(c)に示すように、算出したマウスカーソル位置に基づいて、メモリ112に格納された現在画像から該当ブロックX2及び該当ブロックX2を除いた近傍ブロックX20の画像データを抽出する。同様に、コントローラ110は、前回算出したマウスカーソル位置に基づき、メモリ112に格納された現在画像から該当ブロックX1及び該当ブロックX1を除いた近傍ブロックX10の画像データを抽出する。該当ブロックの画像又は近傍ブロックの画像をマウスカーソル周辺画像という。なお、本実施の形態では、コントローラ110は、該当ブロック及び近傍ブロックの両方を抽出するようにしているが、該当ブロックだけを抽出するようにしてもよい。
【0060】
ネットワーク送信ステップS27において、コントローラ110は、抽出したマウスカーソル周辺画像に位置情報を付加して、遠隔操作コンピュータ32に送信する。
【0061】
変化領域抽出ステップS24に戻って、コントローラ110は、サーバS1〜Snから得た第1の画像と第1の画像の次に取得した第2の画像との差分をとって画像の変化の有無を検知し、変化がある場合に、第1の画像に対する第2の画像の変化分を含む所定の領域を抽出する。コントローラ110は、抽出した領域をネットワーク送信ステップS28において、遠隔操作コンピュータ32へ送信する。
【0062】
このように、コントローラ110は、マウスカーソル領域抽出ステップS26において、前回と現在のマウスカーソル周辺画像を切り出して遠隔操作コンピュータ32に送ることにより、遠隔操作コンピュータ側では、受信したマウスカーソル周辺画像及び位置情報に基づき、表示デバイスに表示することにより、マウスカーソルは前回の位置で消え、現在の位置で表示される。すなわち、マウスカーソルの周辺画像を優先的に送信し、その後に、順次、残った画像を検出して送信するようにしたので、遠隔操作コンピュータの表示デバイス上では、マウスカーソルだけが先に動くように表示される。
【0063】
次に、画像処理部の更に別の動作例について説明する。図8は、画像処理部が所定の期間毎にマウスカーソルの領域抽出処理を行う処理フローを示した図である。画像取得ステップS31において、画像処理部10は、選択されているサーバS1〜Snからの画像データを走査周波数Fの1/nで取得する。A/D変換ステップS32において、A/D変換回路111は、取得した全体画像データを、アナログからデジタルに変換する。
【0064】
フレーム間引ステップS33において、デジタルに変換した画像に対して1/nのフレーム間引きを行う。変化領域抽出ステップS34において、コントローラ110は、サーバS1〜Snから得た第1の画像と第1の画像の次に取得した第2の画像との差分をとって画像の変化の有無を検知し、変化がある場合に、第1の画像に対する第2の画像の変化分を含む所定の領域を抽出する。
【0065】
コントローラ110は、抽出した領域をネットワーク送信ステップS38において、遠隔操作コンピュータ32へ送信する。また、コントローラ110は、変化領域抽出ステップS34において、所定間隔毎に、マウスカーソル周辺画像を抽出するために、フレームデータ取得ステップS35に進む。ここで、所定間隔は、1/mとする。
【0066】
遠隔操作コンピュータ32でのマウス座標値の抽出間隔は、一般に5ms、8ms、10ms等であるため、mをこれらのマウス座標の抽出間隔で一番長い期間にあわせることにより、ポインティング精度を確保しつつ、データ処理量、データ送信量を抑えることができる。なお、遠隔操作コンピュータ32は、図13に示すようなカーソル周辺画像の抽出間隔を設定するためのダイアログを表示デバイス46に表示して、ユーザが設定値を変更できるようにしてもよい。
【0067】
図13は、カーソル周辺画像の抽出間隔を設定するためのダイアログの表示例を示す図である。図13において、50は表示デバイス46に表示されるカーソル周辺画像の抽出間隔設定画面、51はカーソル周辺画像の抽出間隔の入力フィールド、52は設定可能なカーソル周辺画像の抽出間隔の最大値を表す領域、53はOKボタン、54キャンセルボタンである。ユーザにより入力されたカーソル周辺画像の抽出間隔は、遠隔操作コンピュータ32から切替器10のコントローラ110に送信される。
【0068】
フレームデータ取得ステップS35において、コントローラ110は、最新のフレームデータをメモリ112から取得する。次に、マウスカーソル領域抽出ステップS36において、コントローラ110は、マウスカーソル周辺画像を抽出する。つまり、コントローラ110は、遠隔操作コンピュータから取得したマウスの絶対座標に基づいて、サーバS1〜Snから出力される画像上のマウスカーソル位置を算出する。コントローラ110は、算出したマウスカーソル位置に基づき、メモリ112に格納された画像から該当ブロック及び近傍ブロックの画像データを抽出する。これにより、マウスカーソル周辺画像が抽出される。
【0069】
この時、コントローラ110は、前回算出したマウスカーソル位置をメモリ112に保持しておき、前回算出したマウスカーソル位置に対応する該当ブロック及び近傍ブロックの画像データも抽出する。ネットワーク送信ステップS37において、コントローラ110は、抽出したマウスカーソル周辺画像に位置情報を付加して、遠隔操作コンピュータ32に送信する。
【0070】
変化領域抽出ステップS34に戻って、コントローラ110は、サーバS1〜Snから得た第1の画像と第1の画像の次に取得した第2の画像との差分をとって画像の変化の有無を検知し、変化がある場合に、第1の画像に対する第2の画像の変化分を含む所定の領域を抽出する。コントローラ110は、抽出した領域をネットワーク送信ステップS38において、遠隔操作コンピュータ32へ送信する。
【0071】
このように、コントローラ110は、所定間隔毎にマウスカーソルの領域を抽出して、前回と現在のマウスカーソル周辺画像を切り出して遠隔操作コンピュータ32に送るようにしたので、マウスの座標情報を一定期間取得できないような場合でも、マウスカーソルの周辺画像を遠隔操作コンピュータ32へ送信することができる。
【0072】
次に、遠隔操作コンピュータの処理について説明する。図9は、遠隔操作コンピュータでの処理フローチャートである。ステップ101において、遠隔操作コンピュータ32は、アプリケーションを起動したときに切替器10と通信を確立する。ステップ102において、遠隔操作コンピュータ32は、切替器10にサーバ側で表示している画面の解像度を要求する。
【0073】
ステップ103において、遠隔操作コンピュータ32は、切替器10からサーバS1〜Sn側が表示している画面の解像度を受信する。ステップ104において、遠隔操作コンピュータ32は、切替器10からサーバS1〜Snの解像度を受信すると、画像受信スレッドを作成する。ステップ105において、遠隔操作コンピュータ32は、マウス(MS)、キーボード(KB)取得・送信スレッドを作成する。これにより、遠隔操作コンピュータ21は、処理ループに入り、マウス、キーボードが操作されたときには、所定のデータを切替器10に送信する。
【0074】
ステップ106において、遠隔操作コンピュータ32は、ユーザによって遠隔操作が終了したか、管理者等によって終了させられたかどうかを判定する。ステップ106において、遠隔操作コンピュータ32は、遠隔操作が終了したと判定した場合には、ステップ107において、MS/KB取得・送信を終了する。ステップS108において、遠隔操作コンピュータ32は、切替器10から画像受信を終了する。
【0075】
次に、遠隔操作コンピュータにおけるマウスデータ取得・送信処理と、切替器におけるマウスデータ受信処理について説明する。図10は、遠隔操作コンピュータにおけるマウスデータ取得・送信処理と、切替器におけるマウスデータ受信処理について説明するための図である。
【0076】
遠隔操作コンピュータ32上で動作する遠隔操作アプリケーションは、切替器10によって選択したターゲットコンピュータの画面をウインドウに表示する。ステップ201において、遠隔操作コンピュータ32は、遠隔操作する際に、マウス操作によって生じたマウスデータを取得する。
【0077】
ステップ202において、遠隔操作コンピュータ32は、取得したマウスデータの相対座標から絶対座標を算出する。具体的には、遠隔操作アプリケーションのウィンドウ上におけるマウスカーソル位置と、切替器10から事前に取得しターゲットコンピュータの解像度に基づいて、取得したマウスデータの相対座標から絶対座標を算出する。遠隔操作コンピュータ32は、マウス操作が行われたときに、マウス操作に応じた絶対座標の算出を行う。
【0078】
ステップ203において、遠隔操作コンピュータ32は、絶対座標に変換されたマウスデータを切替器10に送信する。ステップ204において、遠隔操作コンピュータ32は、マウスデータ取得・送信処理が終了したかどうかを判定し、終了していなければ、ステップ201に戻り、上記ループを繰り返し、マウスデータ取得・送信処理が終了したと判定した場合には、処理を終了する。
【0079】
ステップ301において、切替器10のネットワークインターフェース回路13は、遠隔操作コンピュータ32からマウスの絶対座標データを受信する。ステップ302において、コントローラ15は、KBMS制御マイコン16へマウスの絶対座標データを送信する。
【0080】
ステップ303において、コントローラ15は、画像処理部11へマウスの絶対座標データを送信する。なお、ステップ302、ステップ303では、コントローラ15がマウスの絶対座標データをKBMS制御マイコン16、画像処理部11へそれぞれ送信するようにしているが、KBMS制御マイコン16、画像処理部11がコントローラ15にアクセスして、マウスの絶対座標データを参照するようにしてもよい。ステップ401において、画像処理部11は、画面変化抽出・送信処理でチェックを行う。
【0081】
次に、画像処理部における画面変化抽出・送信処理について説明する。図11は、画面変化抽出・送信処理フローチャートである。ステップ501において、コントローラ110は、コントローラ15から取得した遠隔操作コンピュータにおけるマウスの絶対座標値からマウスカーソルが存在するブロックを算出する。つまり、コントローラ15は、メモリ12における画像の位置を算出する。
【0082】
ステップ502において、コントローラ110は、メモリ112から現在画像を取得する。ステップ503において、コントローラ110は、メモリ112上のアドレスに対してポインタを一つ作り、画面がブロック化されているので、それに合うポインタにし、ブロックポインタを初期化する。
【0083】
ステップ504において、コントローラ110は、遠隔操作コンピュータ32からマウスの絶対座標値を受信したかどうかを判定する。ステップ504において、コントローラ110は、遠隔操作コンピュータ32からマウスの絶対座標値を受信していない場合には、ステップ506に進む。
【0084】
一方、ステップ504において、コントローラ110は、遠隔操作コンピュータ32からマウスの絶対座標値を受信したと判定した場合には、ステップ505において、カーソル移動処理を行う。なお、カーソル移動処理については後述する。
【0085】
ステップ506において、コントローラ110は、ブロック内の画像変化をチェックする。ステップ507において、コントローラ110は、ブロックポインタを移動する。ステップ508において、コントローラ110は、ブロック内の画像に変化があるかどうかを判定する。ステップ508において、コントローラ110は、ブロック内の画像に変化が無いと判定した場合には、ステップ504に戻る。
【0086】
一方、ステップ508において、コントローラ110は、ブロック内の画像に変化が有ると判定した場合には、ステップ509に進み、該当するブロック画像を遠隔操作コンピュータ32に送信する。
【0087】
ステップ510において、コントローラ110は、ブロックポインタを移動させ、ブロックが終了したかどうか判定する。例えば、画面における左上から始まったとしたら、最後に右下までチェックを行うように、ブロックポインタを移動して行き、ブロックポインタが右下まできたらブロックが終了する。ステップ510において、コントローラ110は、ブロックが終了していないと判定した場合には、ステップ504に戻る。
【0088】
一方、ステップ510において、コントローラ110は、全ブロックが終了したと判定した場合には、ステップ511に進み、現在画像データをメモリ112に保存し、画像変化抽出・送信処理を終了する。
【0089】
次に、カーソル移動処理について説明する。図12は、上記図11のステップ505におけるカーソル移動処理を説明するための図である。ステップ601〜ステップ606において、コントローラ110は、直前(前回)のマウスカーソル周辺のブロックをチェックする。ステップ607〜ステップ612において、コントローラ110は、現在のマウスカーソル周辺のブロックをチェックする。
【0090】
ステップ601において、コントローラ110は、ブロックポインタ1を初期化する。ステップ602において、コントローラ110は、前カーソル周辺ブロックの変化をチェックする。ステップ603において、コントローラ110は、ブロックポインタ1を移動する。
【0091】
ステップ604において、コントローラ110は、前カーソル周辺ブロックに変化が有るかどうかを判定する。ステップ604において、コントローラ110は、前カーソル周辺ブロックに変化が無いと判定した場合には、ステップ602に戻る。一方、ステップ604において、コントローラ110は、前カーソル周辺ブロックに変化が有ると判定した場合には、ステップ605に進み、ブロック画像を遠隔操作コンピュータ32に送信する。
【0092】
つまり、画像処理部11のコントローラ110は、メモリ112から取得した直前(前回)画像から該当ブロック及びカーソル周辺のブロック画像を抽出する。画像処理部11のコントローラ110は、抽出した直前(前回)カーソル周辺のブロック画像に変化があった場合にだけ、変化分を含む領域に位置情報を付加し、ネットワークインターフェース回路13経由で遠隔操作コンピュータ32へ送信する。
【0093】
ステップ606において、コントローラ110は、ブロックのチェックが終了したかどうかを判定する。ステップ606において、コントローラ110は、ブロックのチェックが終了していないと判定した場合には、ステップ602に戻る。一方、ステップ606において、コントローラ110は、ブロックのチェックが終了していると判定した場合には、ステップ607に進み、ブロックポインタ2の初期化を行う。
【0094】
ステップ608において、コントローラ110は、現在カーソルの周辺ブロックの変化をチェックする。ステップ609において、コントローラ110は、ブロックポインタ2を移動する。ステップ610において、コントローラ110は、現在カーソルの周辺ブロックの変化が有るかどうか判定する。ステップ610において、コントローラ110は、現在カーソルの周辺ブロックの変化が無いと判定した場合には、ステップ608に戻る。
【0095】
一方、ステップ610において、コントローラ110は、現在カーソルの周辺ブロックの変化が有ると判定した場合には、ステップ611に進み、抽出したブロック画像を遠隔操作コンピュータ32に出力する。
【0096】
つまり、画像処理部11のコントローラ110は、メモリ112から取得した現在画像から該当ブロック及びカーソル周辺のブロック画像を抽出する。画像処理部11のコントローラ110は、抽出した現在カーソル周辺のブロック画像に変化があった場合にだけ、変化分を含む領域に位置情報を付加し、ネットワークインターフェース回路13経由で遠隔操作コンピュータ32へ送信する。なお、画像処理部11コントローラ110は、上記直前のマウスカーソル周辺ブロック画像と、現在マウスカーソル周辺ブロック画像を同時に送る。
【0097】
ステップ612において、コントローラ110は、ブロックのチェックが終了したかどうかを判定し、ブロックのチェックが終了していないと判定した場合には、ステップ608に戻る。一方、ステップ612において、コントローラ110は、ブロックのチェックが終了したと判定した場合には、カーソル移動処理を終了する。
【0098】
遠隔操作コンピュータ32では、ネットワーク制御部42が上記直前のマウスカーソル周辺ブロック画像と、現在マウスカーソル周辺ブロック画像の変化を含む領域を受信する。
受信した直前マウスカーソル周辺ブロック画像及び現在マウスカーソル周辺ブロック画像は、システムバス36を介して、CPU33より与えられたコマンドに基づき、グラフィックメモリ39bへ書き込まれる。
【0099】
ディスプレイコントローラ39aは、CPU33からの制御コマンドに基づき、グラフィックメモリ39bの内容を参照し、現在表示デバイス46に表示している画像に、取得した直前マウスカーソル周辺ブロック画像及び現在マウスカーソル周辺ブロック画像を合成して、その内容を表示デバイス46に表示可能なI/F信号に変換する。このI/F信号はケーブル43を介して表示デバイス46に転送され、表示が行われる。これにより、変化前の箇所ではマウスカーソルが消え、変化後(現在)の箇所ではマウスカーソルが表示され、カーソルが動くように表現される。
【0100】
次に、ネットワークの混雑状況に算出方法について説明する。切替器10は以下のようにしてネットワークの混雑状況を算出する。図14は、切替器におけるパケットフィルタリングを説明するためのフローチャートである。切替器10に、パケットフィルタリング機能を実装し、測定時間内のパケットデータ量を算出し、ネットワーク混雑状況を測定する。ネットワーク変換回路13は、プロミスキャスモードで動作し、受信した全てのパケットをパケットフィルタリング回路14に送る。
【0101】
ステップ701において、コントローラ15は、パケットフィルタリング機能の動作時間のコントロールを行うために、パケットデータ量を取得した開始時間を取得する。ステップ702において、コントローラ15は、パケットフィルタリング回路14からパケットデータ量を取得する。ステップ703において、パケットフィルタリング回路14は、パケットデータ量を加算する。
【0102】
ステップ704において、コントローラ15は、経過時間を取得する。ステップ705において、コントローラ15は、測定時間が経過しているか否かを判断し、測定時間が経過していると判断した場合には、ステップ706に進み、パケットフィルタリング回路14からパケットデータ量を読み出し、ステップ707において、時間当たりのデータ流量(BPS:Bit Per Second)を算出し、ネットワークの混雑状況を算出する。一方、ステップ705において、コントローラ15は、測定時間が経過していると判断した場合には、ステップ702に戻る。
【0103】
コントローラ15は、算出したネットワークの混雑状況に応じて画像圧縮回路113での画像の圧縮方式、圧縮率を決定し、画像圧縮回路113での画像の圧縮方式、圧縮率を自動的に変更するようにしてもよい。また、コントローラ15は、算出したネットワークの混雑状況を画像処理部11のコントローラ110に出力する。コントローラ110は、ネットワークの混雑状況基づいて、カーソル周辺画像を抽出する所定間隔を変更するようにしてもよい。
【0104】
また、本実施の形態では、図1に示すように、切替器を例にとって説明しているが、これに限定されることなく、画像送信装置によっても実現できる。画像送信装置は、情報処理装置からカーソルの位置情報を取得する取得する取得手段と、取得手段により取得したカーソルの位置情報に基づいて、情報処理装置に送信する画像を記憶する画像記憶手段からカーソル周辺画像を抽出する画像抽出手段と、画像抽出手段により抽出したカーソル周辺画像を前記情報処理装置に送信するカーソル画像送信手段と必要とする。
【0105】
上記本実施の形態によれば、遠隔操作コンピュータから取得したカーソルの位置情報に基づいて、画像記憶手段からカーソル周辺画像を抽出し、抽出したカーソル周辺画像を遠隔操作コンピュータに送信するようにしたので、カーソルのフレームレートを向上させることができる。これにより、ポインティング精度を確保することができる。
【0106】
以上本発明の好ましい実施の形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【0107】
【図1】本実施の形態に係る切替器を説明するためのブロック図である。
【図2】遠隔操作コンピュータの構成を示すブロック図である。
【図3】ディスプレイボードおよび表示デバイスの詳細を示す構成図である。
【図4】遠隔操作コントローラにおけるソフトウエアとハードウエアの階層構造を示す説明図である。
【図5】画像処理部を説明するための図である。
【図6】画像処理部がマウスの座標の入力をトリガとして、マウスカーソル周辺画像を送信する処理フローを示す図である。
【図7】コントローラが抽出する該当ブロック及び近傍ブロックを説明するための図である。
【図8】画像処理部が所定の期間毎にマウスカーソルの領域抽出処理を行う処理フローを示した図である。
【図9】遠隔操作コンピュータでの処理フローチャートである。
【図10】遠隔操作コンピュータにおけるマウスデータ取得・送信処理と、切替器におけるマウスデータ受信処理を説明するための図である。
【図11】画面変化抽出・送信処理フローチャートである。
【図12】カーソル移動処理を説明するための図である。
【図13】カーソル周辺画像の抽出間隔を設定するためのダイアログの表示例を示す図である。
【図14】切替器におけるパケットフィルタリングの動作フローチャートである。
【符号の説明】
【0108】
10 切替器
11 画像処理部
13 ネットワーク変換回路
14 パケットフィルタリング回路
15 コントローラ
31、32 遠隔操作コンピュータ
110 コントローラ
111 A/D変換回路
112 メモリ
113 画像圧縮回路
S1〜Sn サーバ
【技術分野】
【0001】
本発明は、画像表示方法及び画像表示プログラムに関する。
【背景技術】
【0002】
コンピュータの処理性能が格段に進歩したことに伴い、その利用はより広範囲になりつつある。例えば、個人ユーザが複数のコンピュータを所有し、各コンピュータ毎に異なる作業環境でコンピュータを利用する機会も増えている。この場合は、通常、キーボード、ディスプレイ、マウスなどの入出力装置を、切替器を介して複数のコンピュータに接続し、省スペース化と低コスト化を図っている。
【0003】
このような切替器はKVM(K:Keyboard、V:Video、M:Mouse)スイッチと一般に呼ばれている。切替器は、入出力装置と複数のコンピュータとの間に接続され、入出力装置と複数のコンピュータのいずれか1つのみとの間の接続をアクティブにするものである。ユーザは切替器を用いて、複数のコンピュータの中から入出力装置に接続すべきコンピュータを選択して利用することができる。
【0004】
しかし、このような従来の切替器では、切替器に接続されたマウス、キーボードから操作を行うことが必要であり、その場にいなければ操作できないという問題があった。このような問題点を解決する切替器として、遠隔操作可能な切替器が提案されている。
【0005】
遠隔操作可能な切替器によれば、切替器に接続されたマウス、キーボードから操作を行う場合のみならず、ネットワークを介して遠隔地に設置されたPCからも切替器に接続されたコンピュータにアクセスすることができる。このような従来の切替器について特許文献1記載の技術が提案されている。特許文献1記載の切替器によれば、複数のコンピュータを、入力装置を備えた他のコンピュータから遠隔的に切り替えることができるというものである。
【0006】
また、切替器に関する画面表示技術に関し、特許文献2記載の技術が提案されている。特許文献2記載の中央監視制御システムによれば、ホストコンピュータとネットワークで接続したパーソナルコンピュータをリモート端末とし、コンピュータのディスプレイへの画面表示情報はXウインドウシステムにより伝送し、リモート端末の操作はマウスで行い、画面切り替えはキーボードによりホストコンピュータに通知することにより、コンピュータのディスプレイにはホストコンピュータの監視制御用ディスプレイと同等の画面表示と操作機能を得ることができるというものである。
【0007】
また、切替器に関するものではないが、カーソルの制御に関する技術として特許文献3記載の技術が提案されている。特許文献3記載のポインティングカーソル予測移動装置は、マウスカーソルの移動経過を検出して、最終目的物を予測し、目的物のアイコンにカーソルをスキップすることで、カーソルの移動時間を減少させるというものである。
【特許文献1】特開2001−344189号公報
【特許文献2】特開平9−69010号公報
【特許文献3】特開平3−48922号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
しかしながら、従来の切替器では、画像出力を走査線毎にアナログからデジタルにA/D変換し、ネットワークを介して接続された遠隔操作コンピュータへ送信するようにしていたため、送信する画面が広くなるにつれA/D変換に時間もかかってしまい、フレームレートが低下してしまっていた。このフレームレートは、変換処理速度に依存する。マウスカーソルのようなポインティングのための表示は、フレームレートが低下してしまうと、ポインティング精度が落ちてしまうという問題があった。
【0009】
また、従来の切替器では、選択しているコンピュータから入力される画像データを、走査周波数Fの1/nで取得し(1≦n<走査周波数)、取得した画像と、前回取得画像とを比較し、比較の結果、相違点を含むラインあるいはブロックを抽出し、この抽出したラインあるいはブロックを遠隔操作コンピュータへ送信するものも提案されているが、この方法の場合、画面全体に対して相違点のチェックを行うため、画面サイズが大きくなるに従い、フレームレートが低下してしまう。また、画面変化が大きい場合にも、フレームレートが低下してしまう。このため、マウスカーソル表示更新頻度も、フレームレートと共に低下してしまい、ポインティングに支障をきたすという問題がある。
【0010】
特許文献3記載のポインティングカーソル予測移動装置では、カーソルの移動時間を早めることができるものの、この装置では、フレームレートの低下に基づく、ポインティング精度の低下を解消することはできない。
【0011】
そこで、本発明は、これらの問題を解決するためになされたもので、画面のフレームレートが低い場合でも、ポインティング精度を確保できる画像表示方法及び画像表示プログラムを提供することを目的とする。
【課題を解決するための手段】
【0012】
請求項1記載の画像表示方法は、所定のネットワークに接続された情報処理装置から送信される画像を表示する画像表示方法において、カーソルの位置情報を取得する第1の段階と、前記取得段階により取得したカーソルの位置情報を前記情報処理装置に送信する第2の段階と、前記情報処理装置から取得した第1の画像に、前記情報処理装置から取得した前記第2の段階により送信したカーソルの位置情報に応じた第2の画像を合成して、表示手段に表示する第3の段階とを有することを特徴とする。
【0013】
請求項1記載の発明によれば、カーソルの位置情報を取得し、取得したカーソルの位置情報を情報処理装置に送信し、情報処理装置から第1の画像と、カーソルの位置情報に応じた第2の画像を取得し、これを合成して、表示手段に表示するようにしたので、全体画面のフレームレートが低い場合でも、ポインティング精度を確保することができる。
【0014】
また、請求項2記載の画像表示プログラムは、所定のネットワークに接続された情報処理装置から送信される画像を表示するためにコンピュータを、カーソルの位置情報を取得する第1の手段、前記第1の手段により取得した前記カーソルの位置情報を前記情報処理装置に送信する第2の手段、前記情報処理装置から取得した第1の画像に、前記情報処理装置から取得した前記第2の手段により送信したカーソルの位置情報に応じた第2の画像を合成して、表示手段に出力する第3の手段として機能させる。
【0015】
請求項2記載の発明によれば、カーソルの位置情報を取得し、取得したカーソルの位置情報を情報処理装置に送信し、情報処理装置から第1の画像と、カーソルの位置情報に応じた第2の画像を取得し、これを合成して、表示手段に表示するようにしたので、全体画面のフレームレートが低い場合でも、ポインティング精度を確保することができる。
【発明の効果】
【0016】
以上説明したように、本発明によれば、画面のフレームレートが低い場合でも、ポインティング精度を確保できる画像表示方法及び画像表示プログラムを提供することができる。
【発明を実施するための最良の形態】
【0017】
以下、本発明を適用した一実施形態について説明する。図1は本実施の形態に係る切替器を説明するためのブロック図である。図1に示すように、切替器10には、複数のサーバS1〜サーバSn、近接箇所からサーバS1〜Snを操作するためのマウス20、キーボード21、ディスプレイ22が接続されている。
【0018】
また、切替器10には、各サーバS1〜Snを遠隔地から操作する遠隔操作コンピュータ31、32がネットワーク30を介して接続されている。本実施の形態では、ネットワーク30は、バス型のLAN(ローカルエリアネットワーク)であるEthernet(登録商標)を用いて説明する。
【0019】
切替器10は、画像処理部11と、ネットワーク変換回路13と、パケットフィルタリング回路14と、コントローラ15と、アナログSW2と、キーボード・マウス(KBMS)制御マイコン16と、KBMSエミュレーションコントローラKC1〜KCnを有する。なお、切替器10は情報処理装置及び画像送信装置に相当する。
【0020】
画像処理部11は、サーバS1〜サーバSnからのアナログRGB信号をネットワーク30上の遠隔操作コンピュータ31、32に送るために所定の処理を行うためのものである。画像処理部11は、コントローラ110と、A/D変換回路111と、メモリ112と、画像圧縮回路113と、アナログSW1とを有する。
【0021】
アナログSW1は、遠隔操作コンピュータ31、32がアクセスするサーバS1〜Snを切り替えるものである。アナログSW1は、切替器10に設けられたスイッチ(図示せず)を操作することによって切り替えることができる。このアナログSW1は、遠隔操作コンピュータ31、32からも接続先を切り替えることができるようになっている。
【0022】
コントローラ110は、画像処理部11全体を制御する。コントローラ110は、所定のプログラムに基づき、遠隔操作コンピュータ31、32からカーソルの位置情報を取得する取得手段、取得手段により取得したカーソルの位置情報に基づいて、サーバS1〜Sn(コンピュータ)から得られる画像を記憶するメモリ112(画像記憶手段)からカーソル周辺画像を抽出する画像抽出手段、画像抽出手段により抽出したカーソル周辺画像を遠隔操作コンピュータ31、32に送信するカーソル画像送信手段として機能する。
【0023】
このとき、コントローラ110は、カーソル周辺画像を抽出する際に、サーバS1〜Snから取得した第1の画像と該第1の画像の次に取得した第2の画像との差分をとって画像の変化の有無を検知し、前記第1の画像に対する前記第2の画像の変化分を含む所定の領域だけを抽出するようにしてもよい。
【0024】
また、コントローラ110は、所定のプログラムに基づき、遠隔操作コンピュータ31、32に全体画像を送信する画像送信手段として機能する。この画像送信手段は、遠隔操作コンピュータ31、32からカーソルの位置情報を取得した際に、遠隔操作コンピュータ31、32への全体画像の送信を停止し、カーソル画像送信手段によりカーソル周辺画像の送信した後に、遠隔操作コンピュータ31、32への全体画像の送信を再開する。
【0025】
また、コントローラ110は、所定のプログラムに基づき、遠隔操作コンピュータ31、32に送信する全体画像の画像処理を行うように画像処理手段に指示を出す。この画像処理手段は、遠隔操作コンピュータ31、32からカーソルの位置情報を取得した際に、全体画像の画像処理を停止し、カーソル画像送信手段によりカーソル周辺画像を送信した後に、全体画像の画像処理を再開する。この画像処理は、例えば、A/D変換回路111が行うA/D変換である。
【0026】
また、コントローラ110は、所定のプログラムに基づき、全体画像を送信する際に、サーバS1〜Snから取得した第1の画像と該第1の画像の次に取得した第2の画像との差分をとって画像の変化の有無を検知し、第1の画像に対する第2の画像の変化分を含む所定の領域を遠隔操作コンピュータに送信する。
【0027】
また、上記画像抽出手段は、所定間隔毎にカーソル周辺画像を抽出するようにしてもよい。この所定間隔は、遠隔操作コンピュータ31、32からの設定値に基づいて、変更できるようにしてもよい。また、所定間隔は、ネットワークの混雑状況に応じて、変更できるようにいてもよい。
【0028】
A/D変換回路111は、サーバS1〜サーバSnからのアナログRGB信号をネットワーク上に送るためにデジタル信号に変換する。メモリ112は、サーバ側からの画像データを記憶する。このメモリ112が画像記憶手段に相当する。
【0029】
画像圧縮回路113は、所定の圧縮方式又は圧縮率に基づいて、遠隔操作コンピュータに送信する画像を圧縮する。画像圧縮回路113では、ネットワーク30の混雑状況に応じて、圧縮方式又は圧縮率を変更するようにしてもよい。この画像圧縮回路113が画像圧縮手段に相当する。図1に示す例では、ハードウエアにより画像圧縮手段を実現しているが、ソフトウエアによっても画像圧縮手段を実現できる。ソフトウエアにより実現する場合は、所定のプログラムをロードして、コントローラ110により実行される。
【0030】
上記所定の圧縮方式又は圧縮率は、コントローラ15の制御のもと、ネットワークの混雑状況に応じて適宜変更することができる。また、遠隔操作コンピュータ31、32で所定操作を行うことにより、画像圧縮回路113での圧縮方式又は圧縮率を変更することもできる。圧縮方式としては、例えば、JPEG、MPEGなどの方式がある。
【0031】
図1では、画像処理部11を一つで構成する例にとって説明しているが、この画像処理部11を複数設けるようにしてもよい。画像処理部11を複数設けることにより、同時に複数の遠隔操作コンピュータ31、32等からサーバS1〜Snにアクセスすることができる。なお、画像処理部11はボードによって構成することができ、このボード数を増やすことによりサーバS1〜Snにアクセスできるユーザ数を増やすことができる。
【0032】
ネットワーク変換回路13は、切替器10をLANに接続するためのものである。このネットワーク変換回路13は、画像処理部11からのデジタル信号や、キーボード・マウス制御マイコン16からのデジタル信号をパケットに変換してネットワーク上に出力する。パケットフィルタリング回路14は、ネットワーク変換回路13が受信したパケットデータ量を加算する。
【0033】
コントローラ15は、切替器10全体を制御する。このコントローラ15は、遠隔操作コンピュータ31、32から受け取ったマウスの絶対座標値をKBMS制御マイコン16に送るとともに、画像処理部11にも送る。コントローラ15は、画像圧縮回路113での圧縮方式又は圧縮率を制御する。
【0034】
キーボード・マウス制御マイコン16は、マウス20、キーボード21、遠隔操作コンピュータ31、32に接続されたマウス、キーボードをサーバS1〜サーバSnごとに制御する。
【0035】
次に、遠隔操作コンピュータについて説明する。この遠隔操作コンピュータ31、32は情報処理装置に相当する。図2は、遠隔操作コンピュータ32の構成を示すブロック図である。図2に示すように、遠隔操作コンピュータ32は、中央処理装置(CPU)33、CPUバス34、主記憶装置35、システムバス36、バスブリッジ37、拡張スロット38、ディスプレイボード39、キーボードコントローラ40、マウスI/F41、ネットワーク制御部42とを有する。
【0036】
CPU33は、情報処理装置としての制御を司るプロセッサであり、CPUバス34を介して主記憶装置35と接続されている。また、バスブリッジ37は、CPUバス34とシステムバス36とを接続するためのブリッジである。拡張スロット38は、遠隔操作コンピュータ32に対して種々の周辺装置を接続するためのスロットであり、この例では、ディスプレイボード39、キーボードコントローラ40、マウスI/F41、ネットワーク制御部42を接続している。
【0037】
また、上記ディスプレイボード39、キーボードコントローラ40、マウスI/F41には、それぞれケーブル43〜45を介して、表示デバイス46、キーボード47、ポインティングデバイス(マウス)48が接続されている。図3は、図2におけるディスプレイボード39および表示デバイス46の詳細を示す構成図である。ディスプレイボード39は、ディスプレイコントローラ39aとグラフィックメモリ39bを備えている。
【0038】
ディスプレイコントローラ39aは、システムバス36を介してCPU33より与えられたコマンドに基づきグラフィックメモリ39bへの表示データの書込、読出を行い、表示デバイス46への表示データを生成する機能を備えている。
【0039】
このように構成された遠隔操作コンピュータ32と表示デバイス46において、その表示動作は次のように行われる。即ち、CPU33からの制御コマンドは、CPUバス34、バスブリッジ37、システムバス36、拡張スロット38の経路でディスプレイボード39のディスプレイコントローラ39aに書き込まれ、更に、ディスプレイコントローラ39aによって制御されるグラフィックメモリ39bに書き込まれる。
【0040】
また、ディスプレイコントローラ39aは、グラフィックメモリ39bの内容を参照し、その内容を表示デバイス46に表示可能なI/F信号に変換する。このI/F信号はケーブル43を介して表示デバイス46に転送され、表示が行われる。
【0041】
CPU33は、所定のプログラムに基づき、カーソルの位置情報を取得する第1の手段、第1の手段により取得したカーソルの位置情報を切替器10(情報処理装置)に送信する第2の手段、切替器10から取得した第1の画像に、切替器10から取得した第2の手段により送信したカーソルの位置情報に応じた第2の画像を合成するように、ディスプレイコントローラ39aに指示を出す。ディスプレイコントローラ39aは合成した画像を表示デバイス46に出力する。
【0042】
図4は、遠隔操作コントローラ32におけるソフトウェアとハードウェアの階層構造を示す説明図である。図4において、201はアプリケーション、202はOS(オペレーティングシステム)、203はディスプレイドライバ、204はキーボードドライバ、205はポインティングドライバであり、これらはソフトウェア階層である。
【0043】
このような階層構造において、アプリケーション201は、OS202が規定するAPI(Apprication Programming Interface)によって、OS202に通知する。そして、OS202は、OS202で規定されたGDI(Graphics Device Interface)によってディスプレイドライバ203に通知する。ディスプレイドライバ203は、上述した経路によって、ディスプレイボード7を直接制御する。
【0044】
このようなプロセスによってアプリケーション201の要求した表示内容が表示デバイス46で表示される。また、キーボード47からの入力は、ケーブル44を通り、キーボードコントローラ40によってキーボードドライバ204に通知される。そして、その内容はキーボードドライバ204によってOS202に格納され、この格納された内容はアプリケーション201からのキー入力要求APIによって読み出され、アプリケーション201に渡される。
【0045】
ポインティングデバイス(マウス)48からの入力は、ケーブル45を通り、マウスI/F41によってポインティングデバイスドライバ205に通知される。ポインティングデバイスドライバ205は、その内容をカーソル座標、ボタン押下等の情報に変換し、OS202に通知する。OS202はその情報をアプリケーション201に通知し、アプリケーション201はOS202からの通知内容によって、ポインティングデバイス48の状態を判断し、対応した処理を行う。
【0046】
所定の遠隔操作アプリケーションは、OS202から取得したマウスの相対座標値と、切替器10から事前に取得しターゲットコンピュータの解像度に基づいて、取得したマウスの相対座標値から絶対座標を算出する。遠隔操作アプリケーションは、絶対座標に変換されたマウスデータを切替器10に送信する。
【0047】
次に、切替器10の画像処理部について説明する。図5は、画像処理部11を説明するための図である。画像取得ステップS11において、切替器10の画像処理部11は、選択されているサーバS1〜Snから入力される画像データを、走査周波数Fの1/nで取得する。ここで、nは1≦n<走査周波数とする。
【0048】
A/D変換ステップS12において、A/D変換回路111は、サーバS1〜Snから取得した全体画像データを、走査線毎にアナログからデジタルに変換する。フレーム間引ステップS13において、コントローラ110は、フレーム間引きを行う。サーバS1〜Snから入力される画像は、60Hz程度であり、後述する変化領域抽出ステップでの変化領域抽出は、1/60秒以内に終わらないこともあるため、フレーム間引きを行う必要がある。フレーム間引きが行われた画面データは、メモリ112に保存される。
【0049】
変化領域抽出ステップS14において、コントローラ110は、サーバS1〜Snから得た第1の画像と第1の画像の次に取得した第2の画像との差分をとって画像の変化の有無を検知し、変化がある場合に、第1の画像に対する第2の画像の変化分を含む所定の領域を抽出する。
【0050】
ネットワーク送信ステップS15において、コントローラ110は、第1の画面に対する第2の画面の変化分を含む所定領域をネットワーク変換回路13を介して、遠隔操作コンピュータ32に送信する。なお、コントローラ110から出力される画像は必要に応じて画像圧縮回路113により圧縮される。
【0051】
次に、画像処理部11の他の動作例について説明する。図6は、画像処理部110が行う他の動作例であって、マウスの座標の入力をトリガとして、マウスカーソル周辺画像を送信する処理フローを示す図である。画像取得ステップS21において、画像処理部11は、選択されているサーバS1〜Snからの画像データを走査周波数Fの1/nで取得する。
【0052】
A/D変換ステップS22において、A/D変換回路111は、取得した全体画像データを、アナログからデジタルに変換する。なお、A/D変換回路111は、遠隔操作コンピュータ32からのマウス座標の入力をトリガとして、全体画像データのA/D変換を一時停止し、マウスの絶対座標より算出されるマウスカーソル周辺画像を抽出した後、全体画像のA/D変換を再開するようにしてもよい。フレーム間引ステップS23において、デジタルに変換された画像に対して1/nのフレーム間引きを行う。
【0053】
変化領域抽出ステップS24において、コントローラ110は、サーバS1〜Snから得た第1の画像と第1の画像の次に取得した第2の画像との差分をとって画像の変化の有無を検知し、変化がある場合に、第1の画像に対する第2の画像の変化分を含む所定の領域を抽出する。コントローラ110は、抽出した領域をネットワーク送信ステップS28において、遠隔操作コンピュータへ送信する。
【0054】
また、コントローラ110は、変化領域抽出ステップS24において、遠隔操作コンピュータ32からマウスの絶対座標の取得すると、フレームデータ取得ステップS25に進む。フレームデータ取得ステップS25において、コントローラ110は、最新のフレームデータをメモリ112から取得する。
【0055】
次に、マウスカーソル領域抽出ステップS26において、コントローラ110は、マウスカーソル周辺画像を抽出する。つまり、コントローラ110は、遠隔操作コンピュータから取得したマウスの絶対座標に基づいて、サーバS1〜Snから出力される画像上のマウスカーソル位置を算出する。コントローラ110は、算出したマウスカーソル位置に基づき、メモリ112に格納された画像から該当ブロック及び近傍ブロックの画像データを抽出する。これにより、マウスカーソル周辺画像が抽出される。
【0056】
この時、コントローラ110は、前回算出したマウスカーソル位置をメモリ112に保持しておき、前回算出したマウスカーソル位置に対応する該当ブロック及び近傍ブロックの画像データも抽出する。ここで、前回算出したマウスカーソル位置に対応する該当ブロック及び近傍ブロックも算出するのは、表示する際に移動もとの位置のマウスカーソルを消すためである。
【0057】
また、コントローラ110は、マウスカーソル領域抽出ステップS26において、算出したマウスカーソル位置に基づき、メモリ112に格納された画像から該当ブロック及び近傍ブロックの画像データを抽出する際に、メモリ112に格納されたサーバS1〜Snから取得した第1の画像と該第1の画像の次に取得した第2の画像との差分をとって画像の変化の有無を検知し、前記第1の画像に対する前記第2の画像の変化分を含む所定の領域だけを抽出するようにしてもよい。
【0058】
図7は、コントローラ110が抽出する該当ブロック及び近傍ブロックを説明するための図である。図7(a)に示すように、最初、マウスカーソルは、表示デバイス上でX1の位置にあったとする。次に、図7(b)に示すように、マウスカーソルは、表示デバイス上でX2の位置に移動したとする。
【0059】
コントローラ110は、図7(c)に示すように、算出したマウスカーソル位置に基づいて、メモリ112に格納された現在画像から該当ブロックX2及び該当ブロックX2を除いた近傍ブロックX20の画像データを抽出する。同様に、コントローラ110は、前回算出したマウスカーソル位置に基づき、メモリ112に格納された現在画像から該当ブロックX1及び該当ブロックX1を除いた近傍ブロックX10の画像データを抽出する。該当ブロックの画像又は近傍ブロックの画像をマウスカーソル周辺画像という。なお、本実施の形態では、コントローラ110は、該当ブロック及び近傍ブロックの両方を抽出するようにしているが、該当ブロックだけを抽出するようにしてもよい。
【0060】
ネットワーク送信ステップS27において、コントローラ110は、抽出したマウスカーソル周辺画像に位置情報を付加して、遠隔操作コンピュータ32に送信する。
【0061】
変化領域抽出ステップS24に戻って、コントローラ110は、サーバS1〜Snから得た第1の画像と第1の画像の次に取得した第2の画像との差分をとって画像の変化の有無を検知し、変化がある場合に、第1の画像に対する第2の画像の変化分を含む所定の領域を抽出する。コントローラ110は、抽出した領域をネットワーク送信ステップS28において、遠隔操作コンピュータ32へ送信する。
【0062】
このように、コントローラ110は、マウスカーソル領域抽出ステップS26において、前回と現在のマウスカーソル周辺画像を切り出して遠隔操作コンピュータ32に送ることにより、遠隔操作コンピュータ側では、受信したマウスカーソル周辺画像及び位置情報に基づき、表示デバイスに表示することにより、マウスカーソルは前回の位置で消え、現在の位置で表示される。すなわち、マウスカーソルの周辺画像を優先的に送信し、その後に、順次、残った画像を検出して送信するようにしたので、遠隔操作コンピュータの表示デバイス上では、マウスカーソルだけが先に動くように表示される。
【0063】
次に、画像処理部の更に別の動作例について説明する。図8は、画像処理部が所定の期間毎にマウスカーソルの領域抽出処理を行う処理フローを示した図である。画像取得ステップS31において、画像処理部10は、選択されているサーバS1〜Snからの画像データを走査周波数Fの1/nで取得する。A/D変換ステップS32において、A/D変換回路111は、取得した全体画像データを、アナログからデジタルに変換する。
【0064】
フレーム間引ステップS33において、デジタルに変換した画像に対して1/nのフレーム間引きを行う。変化領域抽出ステップS34において、コントローラ110は、サーバS1〜Snから得た第1の画像と第1の画像の次に取得した第2の画像との差分をとって画像の変化の有無を検知し、変化がある場合に、第1の画像に対する第2の画像の変化分を含む所定の領域を抽出する。
【0065】
コントローラ110は、抽出した領域をネットワーク送信ステップS38において、遠隔操作コンピュータ32へ送信する。また、コントローラ110は、変化領域抽出ステップS34において、所定間隔毎に、マウスカーソル周辺画像を抽出するために、フレームデータ取得ステップS35に進む。ここで、所定間隔は、1/mとする。
【0066】
遠隔操作コンピュータ32でのマウス座標値の抽出間隔は、一般に5ms、8ms、10ms等であるため、mをこれらのマウス座標の抽出間隔で一番長い期間にあわせることにより、ポインティング精度を確保しつつ、データ処理量、データ送信量を抑えることができる。なお、遠隔操作コンピュータ32は、図13に示すようなカーソル周辺画像の抽出間隔を設定するためのダイアログを表示デバイス46に表示して、ユーザが設定値を変更できるようにしてもよい。
【0067】
図13は、カーソル周辺画像の抽出間隔を設定するためのダイアログの表示例を示す図である。図13において、50は表示デバイス46に表示されるカーソル周辺画像の抽出間隔設定画面、51はカーソル周辺画像の抽出間隔の入力フィールド、52は設定可能なカーソル周辺画像の抽出間隔の最大値を表す領域、53はOKボタン、54キャンセルボタンである。ユーザにより入力されたカーソル周辺画像の抽出間隔は、遠隔操作コンピュータ32から切替器10のコントローラ110に送信される。
【0068】
フレームデータ取得ステップS35において、コントローラ110は、最新のフレームデータをメモリ112から取得する。次に、マウスカーソル領域抽出ステップS36において、コントローラ110は、マウスカーソル周辺画像を抽出する。つまり、コントローラ110は、遠隔操作コンピュータから取得したマウスの絶対座標に基づいて、サーバS1〜Snから出力される画像上のマウスカーソル位置を算出する。コントローラ110は、算出したマウスカーソル位置に基づき、メモリ112に格納された画像から該当ブロック及び近傍ブロックの画像データを抽出する。これにより、マウスカーソル周辺画像が抽出される。
【0069】
この時、コントローラ110は、前回算出したマウスカーソル位置をメモリ112に保持しておき、前回算出したマウスカーソル位置に対応する該当ブロック及び近傍ブロックの画像データも抽出する。ネットワーク送信ステップS37において、コントローラ110は、抽出したマウスカーソル周辺画像に位置情報を付加して、遠隔操作コンピュータ32に送信する。
【0070】
変化領域抽出ステップS34に戻って、コントローラ110は、サーバS1〜Snから得た第1の画像と第1の画像の次に取得した第2の画像との差分をとって画像の変化の有無を検知し、変化がある場合に、第1の画像に対する第2の画像の変化分を含む所定の領域を抽出する。コントローラ110は、抽出した領域をネットワーク送信ステップS38において、遠隔操作コンピュータ32へ送信する。
【0071】
このように、コントローラ110は、所定間隔毎にマウスカーソルの領域を抽出して、前回と現在のマウスカーソル周辺画像を切り出して遠隔操作コンピュータ32に送るようにしたので、マウスの座標情報を一定期間取得できないような場合でも、マウスカーソルの周辺画像を遠隔操作コンピュータ32へ送信することができる。
【0072】
次に、遠隔操作コンピュータの処理について説明する。図9は、遠隔操作コンピュータでの処理フローチャートである。ステップ101において、遠隔操作コンピュータ32は、アプリケーションを起動したときに切替器10と通信を確立する。ステップ102において、遠隔操作コンピュータ32は、切替器10にサーバ側で表示している画面の解像度を要求する。
【0073】
ステップ103において、遠隔操作コンピュータ32は、切替器10からサーバS1〜Sn側が表示している画面の解像度を受信する。ステップ104において、遠隔操作コンピュータ32は、切替器10からサーバS1〜Snの解像度を受信すると、画像受信スレッドを作成する。ステップ105において、遠隔操作コンピュータ32は、マウス(MS)、キーボード(KB)取得・送信スレッドを作成する。これにより、遠隔操作コンピュータ21は、処理ループに入り、マウス、キーボードが操作されたときには、所定のデータを切替器10に送信する。
【0074】
ステップ106において、遠隔操作コンピュータ32は、ユーザによって遠隔操作が終了したか、管理者等によって終了させられたかどうかを判定する。ステップ106において、遠隔操作コンピュータ32は、遠隔操作が終了したと判定した場合には、ステップ107において、MS/KB取得・送信を終了する。ステップS108において、遠隔操作コンピュータ32は、切替器10から画像受信を終了する。
【0075】
次に、遠隔操作コンピュータにおけるマウスデータ取得・送信処理と、切替器におけるマウスデータ受信処理について説明する。図10は、遠隔操作コンピュータにおけるマウスデータ取得・送信処理と、切替器におけるマウスデータ受信処理について説明するための図である。
【0076】
遠隔操作コンピュータ32上で動作する遠隔操作アプリケーションは、切替器10によって選択したターゲットコンピュータの画面をウインドウに表示する。ステップ201において、遠隔操作コンピュータ32は、遠隔操作する際に、マウス操作によって生じたマウスデータを取得する。
【0077】
ステップ202において、遠隔操作コンピュータ32は、取得したマウスデータの相対座標から絶対座標を算出する。具体的には、遠隔操作アプリケーションのウィンドウ上におけるマウスカーソル位置と、切替器10から事前に取得しターゲットコンピュータの解像度に基づいて、取得したマウスデータの相対座標から絶対座標を算出する。遠隔操作コンピュータ32は、マウス操作が行われたときに、マウス操作に応じた絶対座標の算出を行う。
【0078】
ステップ203において、遠隔操作コンピュータ32は、絶対座標に変換されたマウスデータを切替器10に送信する。ステップ204において、遠隔操作コンピュータ32は、マウスデータ取得・送信処理が終了したかどうかを判定し、終了していなければ、ステップ201に戻り、上記ループを繰り返し、マウスデータ取得・送信処理が終了したと判定した場合には、処理を終了する。
【0079】
ステップ301において、切替器10のネットワークインターフェース回路13は、遠隔操作コンピュータ32からマウスの絶対座標データを受信する。ステップ302において、コントローラ15は、KBMS制御マイコン16へマウスの絶対座標データを送信する。
【0080】
ステップ303において、コントローラ15は、画像処理部11へマウスの絶対座標データを送信する。なお、ステップ302、ステップ303では、コントローラ15がマウスの絶対座標データをKBMS制御マイコン16、画像処理部11へそれぞれ送信するようにしているが、KBMS制御マイコン16、画像処理部11がコントローラ15にアクセスして、マウスの絶対座標データを参照するようにしてもよい。ステップ401において、画像処理部11は、画面変化抽出・送信処理でチェックを行う。
【0081】
次に、画像処理部における画面変化抽出・送信処理について説明する。図11は、画面変化抽出・送信処理フローチャートである。ステップ501において、コントローラ110は、コントローラ15から取得した遠隔操作コンピュータにおけるマウスの絶対座標値からマウスカーソルが存在するブロックを算出する。つまり、コントローラ15は、メモリ12における画像の位置を算出する。
【0082】
ステップ502において、コントローラ110は、メモリ112から現在画像を取得する。ステップ503において、コントローラ110は、メモリ112上のアドレスに対してポインタを一つ作り、画面がブロック化されているので、それに合うポインタにし、ブロックポインタを初期化する。
【0083】
ステップ504において、コントローラ110は、遠隔操作コンピュータ32からマウスの絶対座標値を受信したかどうかを判定する。ステップ504において、コントローラ110は、遠隔操作コンピュータ32からマウスの絶対座標値を受信していない場合には、ステップ506に進む。
【0084】
一方、ステップ504において、コントローラ110は、遠隔操作コンピュータ32からマウスの絶対座標値を受信したと判定した場合には、ステップ505において、カーソル移動処理を行う。なお、カーソル移動処理については後述する。
【0085】
ステップ506において、コントローラ110は、ブロック内の画像変化をチェックする。ステップ507において、コントローラ110は、ブロックポインタを移動する。ステップ508において、コントローラ110は、ブロック内の画像に変化があるかどうかを判定する。ステップ508において、コントローラ110は、ブロック内の画像に変化が無いと判定した場合には、ステップ504に戻る。
【0086】
一方、ステップ508において、コントローラ110は、ブロック内の画像に変化が有ると判定した場合には、ステップ509に進み、該当するブロック画像を遠隔操作コンピュータ32に送信する。
【0087】
ステップ510において、コントローラ110は、ブロックポインタを移動させ、ブロックが終了したかどうか判定する。例えば、画面における左上から始まったとしたら、最後に右下までチェックを行うように、ブロックポインタを移動して行き、ブロックポインタが右下まできたらブロックが終了する。ステップ510において、コントローラ110は、ブロックが終了していないと判定した場合には、ステップ504に戻る。
【0088】
一方、ステップ510において、コントローラ110は、全ブロックが終了したと判定した場合には、ステップ511に進み、現在画像データをメモリ112に保存し、画像変化抽出・送信処理を終了する。
【0089】
次に、カーソル移動処理について説明する。図12は、上記図11のステップ505におけるカーソル移動処理を説明するための図である。ステップ601〜ステップ606において、コントローラ110は、直前(前回)のマウスカーソル周辺のブロックをチェックする。ステップ607〜ステップ612において、コントローラ110は、現在のマウスカーソル周辺のブロックをチェックする。
【0090】
ステップ601において、コントローラ110は、ブロックポインタ1を初期化する。ステップ602において、コントローラ110は、前カーソル周辺ブロックの変化をチェックする。ステップ603において、コントローラ110は、ブロックポインタ1を移動する。
【0091】
ステップ604において、コントローラ110は、前カーソル周辺ブロックに変化が有るかどうかを判定する。ステップ604において、コントローラ110は、前カーソル周辺ブロックに変化が無いと判定した場合には、ステップ602に戻る。一方、ステップ604において、コントローラ110は、前カーソル周辺ブロックに変化が有ると判定した場合には、ステップ605に進み、ブロック画像を遠隔操作コンピュータ32に送信する。
【0092】
つまり、画像処理部11のコントローラ110は、メモリ112から取得した直前(前回)画像から該当ブロック及びカーソル周辺のブロック画像を抽出する。画像処理部11のコントローラ110は、抽出した直前(前回)カーソル周辺のブロック画像に変化があった場合にだけ、変化分を含む領域に位置情報を付加し、ネットワークインターフェース回路13経由で遠隔操作コンピュータ32へ送信する。
【0093】
ステップ606において、コントローラ110は、ブロックのチェックが終了したかどうかを判定する。ステップ606において、コントローラ110は、ブロックのチェックが終了していないと判定した場合には、ステップ602に戻る。一方、ステップ606において、コントローラ110は、ブロックのチェックが終了していると判定した場合には、ステップ607に進み、ブロックポインタ2の初期化を行う。
【0094】
ステップ608において、コントローラ110は、現在カーソルの周辺ブロックの変化をチェックする。ステップ609において、コントローラ110は、ブロックポインタ2を移動する。ステップ610において、コントローラ110は、現在カーソルの周辺ブロックの変化が有るかどうか判定する。ステップ610において、コントローラ110は、現在カーソルの周辺ブロックの変化が無いと判定した場合には、ステップ608に戻る。
【0095】
一方、ステップ610において、コントローラ110は、現在カーソルの周辺ブロックの変化が有ると判定した場合には、ステップ611に進み、抽出したブロック画像を遠隔操作コンピュータ32に出力する。
【0096】
つまり、画像処理部11のコントローラ110は、メモリ112から取得した現在画像から該当ブロック及びカーソル周辺のブロック画像を抽出する。画像処理部11のコントローラ110は、抽出した現在カーソル周辺のブロック画像に変化があった場合にだけ、変化分を含む領域に位置情報を付加し、ネットワークインターフェース回路13経由で遠隔操作コンピュータ32へ送信する。なお、画像処理部11コントローラ110は、上記直前のマウスカーソル周辺ブロック画像と、現在マウスカーソル周辺ブロック画像を同時に送る。
【0097】
ステップ612において、コントローラ110は、ブロックのチェックが終了したかどうかを判定し、ブロックのチェックが終了していないと判定した場合には、ステップ608に戻る。一方、ステップ612において、コントローラ110は、ブロックのチェックが終了したと判定した場合には、カーソル移動処理を終了する。
【0098】
遠隔操作コンピュータ32では、ネットワーク制御部42が上記直前のマウスカーソル周辺ブロック画像と、現在マウスカーソル周辺ブロック画像の変化を含む領域を受信する。
受信した直前マウスカーソル周辺ブロック画像及び現在マウスカーソル周辺ブロック画像は、システムバス36を介して、CPU33より与えられたコマンドに基づき、グラフィックメモリ39bへ書き込まれる。
【0099】
ディスプレイコントローラ39aは、CPU33からの制御コマンドに基づき、グラフィックメモリ39bの内容を参照し、現在表示デバイス46に表示している画像に、取得した直前マウスカーソル周辺ブロック画像及び現在マウスカーソル周辺ブロック画像を合成して、その内容を表示デバイス46に表示可能なI/F信号に変換する。このI/F信号はケーブル43を介して表示デバイス46に転送され、表示が行われる。これにより、変化前の箇所ではマウスカーソルが消え、変化後(現在)の箇所ではマウスカーソルが表示され、カーソルが動くように表現される。
【0100】
次に、ネットワークの混雑状況に算出方法について説明する。切替器10は以下のようにしてネットワークの混雑状況を算出する。図14は、切替器におけるパケットフィルタリングを説明するためのフローチャートである。切替器10に、パケットフィルタリング機能を実装し、測定時間内のパケットデータ量を算出し、ネットワーク混雑状況を測定する。ネットワーク変換回路13は、プロミスキャスモードで動作し、受信した全てのパケットをパケットフィルタリング回路14に送る。
【0101】
ステップ701において、コントローラ15は、パケットフィルタリング機能の動作時間のコントロールを行うために、パケットデータ量を取得した開始時間を取得する。ステップ702において、コントローラ15は、パケットフィルタリング回路14からパケットデータ量を取得する。ステップ703において、パケットフィルタリング回路14は、パケットデータ量を加算する。
【0102】
ステップ704において、コントローラ15は、経過時間を取得する。ステップ705において、コントローラ15は、測定時間が経過しているか否かを判断し、測定時間が経過していると判断した場合には、ステップ706に進み、パケットフィルタリング回路14からパケットデータ量を読み出し、ステップ707において、時間当たりのデータ流量(BPS:Bit Per Second)を算出し、ネットワークの混雑状況を算出する。一方、ステップ705において、コントローラ15は、測定時間が経過していると判断した場合には、ステップ702に戻る。
【0103】
コントローラ15は、算出したネットワークの混雑状況に応じて画像圧縮回路113での画像の圧縮方式、圧縮率を決定し、画像圧縮回路113での画像の圧縮方式、圧縮率を自動的に変更するようにしてもよい。また、コントローラ15は、算出したネットワークの混雑状況を画像処理部11のコントローラ110に出力する。コントローラ110は、ネットワークの混雑状況基づいて、カーソル周辺画像を抽出する所定間隔を変更するようにしてもよい。
【0104】
また、本実施の形態では、図1に示すように、切替器を例にとって説明しているが、これに限定されることなく、画像送信装置によっても実現できる。画像送信装置は、情報処理装置からカーソルの位置情報を取得する取得する取得手段と、取得手段により取得したカーソルの位置情報に基づいて、情報処理装置に送信する画像を記憶する画像記憶手段からカーソル周辺画像を抽出する画像抽出手段と、画像抽出手段により抽出したカーソル周辺画像を前記情報処理装置に送信するカーソル画像送信手段と必要とする。
【0105】
上記本実施の形態によれば、遠隔操作コンピュータから取得したカーソルの位置情報に基づいて、画像記憶手段からカーソル周辺画像を抽出し、抽出したカーソル周辺画像を遠隔操作コンピュータに送信するようにしたので、カーソルのフレームレートを向上させることができる。これにより、ポインティング精度を確保することができる。
【0106】
以上本発明の好ましい実施の形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【0107】
【図1】本実施の形態に係る切替器を説明するためのブロック図である。
【図2】遠隔操作コンピュータの構成を示すブロック図である。
【図3】ディスプレイボードおよび表示デバイスの詳細を示す構成図である。
【図4】遠隔操作コントローラにおけるソフトウエアとハードウエアの階層構造を示す説明図である。
【図5】画像処理部を説明するための図である。
【図6】画像処理部がマウスの座標の入力をトリガとして、マウスカーソル周辺画像を送信する処理フローを示す図である。
【図7】コントローラが抽出する該当ブロック及び近傍ブロックを説明するための図である。
【図8】画像処理部が所定の期間毎にマウスカーソルの領域抽出処理を行う処理フローを示した図である。
【図9】遠隔操作コンピュータでの処理フローチャートである。
【図10】遠隔操作コンピュータにおけるマウスデータ取得・送信処理と、切替器におけるマウスデータ受信処理を説明するための図である。
【図11】画面変化抽出・送信処理フローチャートである。
【図12】カーソル移動処理を説明するための図である。
【図13】カーソル周辺画像の抽出間隔を設定するためのダイアログの表示例を示す図である。
【図14】切替器におけるパケットフィルタリングの動作フローチャートである。
【符号の説明】
【0108】
10 切替器
11 画像処理部
13 ネットワーク変換回路
14 パケットフィルタリング回路
15 コントローラ
31、32 遠隔操作コンピュータ
110 コントローラ
111 A/D変換回路
112 メモリ
113 画像圧縮回路
S1〜Sn サーバ
【特許請求の範囲】
【請求項1】
所定のネットワークに接続された情報処理装置から送信される画像を表示する画像表示方法において、
カーソルの位置情報を取得する第1の段階と、
前記取得段階により取得したカーソルの位置情報を前記情報処理装置に送信する第2の段階と、
前記情報処理装置から取得した第1の画像に、前記情報処理装置から取得した前記第2の段階により送信したカーソルの位置情報に応じた第2の画像を合成して、表示手段に表示する第3の段階とを有することを特徴とする画像表示方法。
【請求項2】
所定のネットワークに接続された情報処理装置から送信される画像を表示するためにコンピュータを、
カーソルの位置情報を取得する第1の手段、
前記第1の手段により取得した前記カーソルの位置情報を前記情報処理装置に送信する第2の手段、
前記情報処理装置から取得した第1の画像に、前記情報処理装置から取得した前記第2の手段により送信したカーソルの位置情報に応じた第2の画像を合成して、表示手段に出力する第3の手段として機能させるための画像表示プログラム。
【請求項1】
所定のネットワークに接続された情報処理装置から送信される画像を表示する画像表示方法において、
カーソルの位置情報を取得する第1の段階と、
前記取得段階により取得したカーソルの位置情報を前記情報処理装置に送信する第2の段階と、
前記情報処理装置から取得した第1の画像に、前記情報処理装置から取得した前記第2の段階により送信したカーソルの位置情報に応じた第2の画像を合成して、表示手段に表示する第3の段階とを有することを特徴とする画像表示方法。
【請求項2】
所定のネットワークに接続された情報処理装置から送信される画像を表示するためにコンピュータを、
カーソルの位置情報を取得する第1の手段、
前記第1の手段により取得した前記カーソルの位置情報を前記情報処理装置に送信する第2の手段、
前記情報処理装置から取得した第1の画像に、前記情報処理装置から取得した前記第2の手段により送信したカーソルの位置情報に応じた第2の画像を合成して、表示手段に出力する第3の手段として機能させるための画像表示プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2009−116886(P2009−116886A)
【公開日】平成21年5月28日(2009.5.28)
【国際特許分類】
【出願番号】特願2008−306895(P2008−306895)
【出願日】平成20年12月1日(2008.12.1)
【分割の表示】特願2003−84499(P2003−84499)の分割
【原出願日】平成15年3月26日(2003.3.26)
【出願人】(501398606)富士通コンポーネント株式会社 (848)
【Fターム(参考)】
【公開日】平成21年5月28日(2009.5.28)
【国際特許分類】
【出願日】平成20年12月1日(2008.12.1)
【分割の表示】特願2003−84499(P2003−84499)の分割
【原出願日】平成15年3月26日(2003.3.26)
【出願人】(501398606)富士通コンポーネント株式会社 (848)
【Fターム(参考)】
[ Back to top ]