(57)【要約】  開示されているのは一連の遠隔ドメインサーバ、ファイル／プリントサーバ、ヘッドレスサーバ、ネットワーク機器、シリアルＩＴ装置、開閉器、ルータ、ファイアウォール、セキュリティインタフェース、アプリケーションサーバ、ロードバランサ、および環境制御装置を１台または複数台のユーザワークステーションに結合し、遠隔装置の選択的なアクセスを可能にするための遠隔管理システムである。該遠隔装置はすべて、各ユーザワークステーションを該遠隔装置に接続する遠隔管理装置に接続されている。各遠隔装置の電源は同様に制御可能な電源を通して該遠隔管理装置に接続されている。該遠隔装置のすべてのリストが入ったオプションメニューにより、ユーザはワークステーションから該遠隔装置のどれかを選択し、操作できるようになる。該オプションメニューは、該遠隔装置、サーバおよびコンピュータに対する電力を選択的に制御するためにも活用される。
2007524284.tif 000002
【特許請求の範囲】
【請求項１】
キーボード、カーソル制御装置および１０のビデオディスプレイを含むコンピュータワークステーションと、
ビデオ信号を生成するための少なくとも１台の遠隔装置と、
前記ワークステーションと前記少なくとも１台の遠隔装置に結合される遠隔管理装置と、
前記遠隔管理装置と前記ワークステーションの間で双方向通信を提供するための第１の通信手段と、
前記遠隔管理装置と前記少なくとも１つの遠隔装置の間で双方向通信を提供するための第２の通信手段と、
を備え、
前記遠隔管理装置が、前記少なくとも１つの遠隔装置のシリアルおよび／またはキーボード、ビデオ、２０マウス（ＫＶＭ）制御を可能にする、遠隔管理システム。
【請求項２】
前記ワークステーションが前記遠隔管理装置を通して前記少なくとも１つの遠隔装置の内の少なくとも１つの電源を制御する、請求項１に記載のシステム。
【請求項３】
前記ワークステーションによる前記遠隔管理装置に対するアクセスが、一意のパスワードまたは認証情報によって制御される、請求項１に記載のシステム。
【請求項４】
前記遠隔管理装置が少なくとも１つの冗長な電源を含む、請求項１に記載のシステム。
【請求項５】
前記遠隔管理装置が少なくとも１つのオプションメニュー回路を含む、請求項１に記載のシステム。
【請求項６】
前記オプションメニュー回路が、前記少なくとも１つの遠隔装置の識別を含むオプションメニューを作成する、請求項５に記載のシステム。
【請求項７】
前記遠隔管理装置が前記遠隔管理装置の少なくとも１つのＫＶＭポートと、前記少なくとも１つの遠隔装置の少なくとも１つのビデオポートの間での選択通信のために少なくとも１つのヘッダ回路を含む、請求項１に記載のシステム。
【請求項８】
前記ヘッダ回路がビデオスイッチ、および少なくとも１つの受信機送信機回路を含み、前記受信機送信機回路が並列信号と直列信号を変換する請求項７に記載のシステム。
【請求項９】
前記遠隔管理装置がビデオ信号をデジタル化するための少なくとも１つのフレーム取り込み器回路を含む、請求項１に記載のシステム。
【請求項１０】
前記フレーム取り込み器回路がアナログビデオ信号をデジタルビデオ信号に変換する、請求項９に記載のシステム。
【請求項１１】
前記遠隔管理装置が前記ビデオ信号によって生成される画像を補正するためのフレーム取り込み器回路を含む、請求項１に記載のシステム。
【請求項１２】
前記遠隔管理装置が少なくとも１つのローカルＫＶＭポートを含む、請求項１に記載のシステム。
【請求項１３】
前記遠隔管理装置がビデオ信号を圧縮するために少なくとも１つのビデオプロセッサ回路を含む、請求項１に記載のシステム。
【請求項１４】
前記ビデオプロセッサ回路が少なくとも１つのＣＰＵからビデオ信号を受信するための少なくとも１つのビデオ受信回路を含む、請求項１３に記載のシステム。
【請求項１５】
前記ビデオプロセッサ回路が、前記ビデオ信号の赤、緑および青のビデオ信号成分を記憶するための少なくとも１つのピクセルプッシャー回路を含む、請求項１３に記載のシステム。
【請求項１６】
前記ビデオプロセッサ回路が、前記ビデオ信号を示すビデオフレームを記憶するための少なくとも１つのフレームバッファ回路を含む、請求項１３に記載のシステム。
【請求項１７】
前記ビデオプロセッサ回路が、ＪＢＩＧ(Joint Bi-level Image experts Group)圧縮を使用してビデオ信号を圧縮する、請求項１３に記載のシステム。
【請求項１８】
前記ビデオプロセッサ回路が、フレームバッファ回路、ピクセルプッシャー回路およびＪＢＩＧ圧縮の内の少なくとも１つを制御するための少なくとも１台のマイクロプロセッサを含む、請求項１３に記載のシステム。
【請求項１９】
前記ビデオプロセッサ回路がデータを記憶するために前記マイクロプロセッサに結合される少なくとも１つのメモリ回路を備える、請求項１８に記載のシステム。
【請求項２０】
前記ビデオプロセッサ回路がビデオ信号を出力するために少なくとも１つの開閉器を含む、請求項１３に記載のシステム。
【請求項２１】
前記遠隔管理装置が、モデムによって受信される信号を復調するために少なくとも１つのモデムモジュールを含む、請求項１に記載のシステム。
【請求項２２】
前記第１または第２の通信手段が、ＬＡＮ、ＷＡＮ、無線接続、モデム、直接モデム接続およびインターネットからなるグループから選択される、請求項１に記載のシステム。
【請求項２３】
前記遠隔管理装置が、前記遠隔管理装置をリセットするために前記ワークステーションにより制御可能なリセット回路網を含む、請求項１に記載のシステム。
【請求項２４】
ワークステーションを１台または複数台の遠隔装置に結合するための装置であって、
通信モデムを介して前記ワークステーションに信号を送信するため、および信号を受信するための通信回路と、
前記遠隔装置の１台または複数にシリアルデータを送信するため、およびから前記遠隔装置の１つまたは複数からシリアルデータ信号を受信するためのシリアル通信回路と、
前記遠隔装置の１台または複数にＫＶＭ信号を送信するため、および前記遠隔装置の１台または複数からＫＶＭ信号を受信するためのキーボード、ビデオ、マウス（ＫＶＭ）回路と、
少なくとも１つの前記通信回路、前記シリアル通信回路、および前記ＫＶＭ回路の間で前記信号の伝送を制御するための中央処理回路と、
を備える前記装置。
【請求項２５】
前記遠隔装置が電源により電源を供給される、請求項２４に記載の装置。
【請求項２６】
前記装置が前記電源に接続される、請求項２５に記載の装置。
【請求項２７】
前記ワークステーションが前記装置を通して前期電源を制御する、請求項２６に記載の装置。
【請求項２８】
前記ワークステーションによる前記装置に対するアクセスが、一意のパスワードまたは認証情報により制御される、請求項２７に記載のシステム。
【請求項２９】
前記装置が少なくとも１つの冗長な電源を含む、請求項２４に記載のシステム。
【請求項３０】
前記装置が少なくとも１つのオプションメニュー回路を含む、請求項２４に記載のシステム。
【請求項３１】
前記オプションメニュー回路が前記遠隔装置の識別を含むオプションメニューを作成する、請求項３０に記載の装置。
【請求項３２】
前記装置が、前記遠隔装置の少なくとも１つのＫＶＭポートと少なくとも１つのビデオポートの間の選択通信のために少なくとも１つのヘッダ回路を含む、請求項２４に記載のシステム。
【請求項３３】
前記ヘッダ回路が、ビデオスイッチと少なくとも１つの受信機送信機回路を含み、前記受信機送信機回路が並列信号と直列信号を変換する、請求項３２に記載のシステム。
【請求項３４】
前記遠隔管理装置が、ビデオ信号により生成される２０画像をデジタル化し、補正するための少なくとも１つのフレーム取り込み器回路を含む、請求項２４に記載のシステム。
【請求項３５】
前記フレーム取り込み器回路がアナログビデオ信号をデジタルビデオ信号に変換する、請求項３４に記載の装置。
【請求項３６】
前記装置が少なくとも１つのローカルＫＶＭポートを含む、請求項２４に記載のシステム。
【請求項３７】
前記装置がビデオ信号を圧縮するための少なくとも１つのビデオプロセッサ回路を含む、請求項２４に記載のシステム。
【請求項３８】
前記ビデオプロセッサ回路が、前記中央処理回路からビデオ信号を受信するために少なくとも１つの回路を含む、請求項３７に記載の装置。
【請求項３９】
前記ビデオプロセッサ回路が、前記ビデオ信号の赤、緑および青のビデオ信号成分を記憶するための少なくとも１つのピクセルプッシャー回路を含む、請求項３８に記載の装置。
【請求項４０】
前記ビデオプロセッサ回路が前記ビデオ信号を示すビデオフレームを記憶するための少なくとも１つのフレームバッファ回路を含む、請求項３７に記載の装置。
【請求項４１】
前記ビデオプロセッサ回路が、ＪＢＩＧ圧縮を使用してビデオ信号を圧縮する、請求項３７に記載の装置。
【請求項４２】
前記ビデオプロセッサ回路が、フレームバッファ回路、ピクセルプッシャー回路、およびＪＢＩＧ圧縮の内の少なくとも１つを制御するためのマイクロプロセッサによって使用するための少なくとも１つのメモリ回路を含む、請求項３７に記載の装置。
【請求項４３】
前記ビデオプロセッサ回路が信号をイーサネットポートまたはモデムポートに出力するための少なくとも１つの開閉器を備える、請求項３７に記載の装置。
【請求項４４】
前記装置がモデムによって受信される信号を復調するための少なくとも１つのモデムモジュールを含む、請求項２４に記載の装置。
【請求項４５】
前記通信媒体が、ＬＡＮ、ＷＡＮ、無線接続、モデム、直接モデム接続およびインターネットからなるグループから選択される少なくとも１つである、請求項２４に記載の装置。
【請求項４６】
前記ワークステーションによって送受される前記信号がキーボード、ビデオ、マウス、シリアルまたは電力からなるグループから選択される少なくとも１つの制御信号である、請求項２４に記載の装置。
【請求項４７】
前記装置が前記装置をリセットするためのリセット回路を含む、請求項２４に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、遠隔制御装置を通して１台または複数台のローカルユーザワークステーションからネットワークおよびコンピュータ装置を遠隔で管理するためのネットワーク遠隔管理システムに関する。具体的には、ユーザワークステーションに取り付けられているキーボード、ビデオモニタ、およびカーソルの制御装置が、それらの関連電源が遠隔制御装置に接続されているので、ドメインサーバ、ファイル／プリントサーバ、ヘッドレスサーバ、ネットワーク機器、シリアルＩＴ装置、開閉器、ルータ、ファイアウォール、セキュリティインタフェース、アプリケーションサーバ、ロードバランサ、および環境制御装置を遠隔制御するために活用される。
【背景技術】
【０００２】
多くの状況で、システム管理者から遠く離れた場所に位置するネットワーキング装置、サーバおよびコンピュータを管理することが望ましい。距離が十分に遠い場合、一般的には遠隔場所からコンピュータを制御するためにインターネットが使用される。ローカルユーザワークステーションに取り付けられているキーボード、ビデオモニタおよびカーソル制御装置を活用してインターネットまたはＬＡＮ上で遠隔コンピュータにアクセスするためには、例えばｐｃＡｎｙｗｈｅｒｅ等のソフトウェアプログラムが活用されてよい。ｐｃＡｎｙｗｈｅｒｅ等の遠隔コンピュータアクセスプログラムは、通常、ホストソフトウェアが遠隔コンピュータにインストールされ、クライアントソフトウェアがユーザワークステーションにインストールされていることを必要とする。遠隔コンピュータにアクセスするためには、ユーザワークステーションのユーザが所望される遠隔コンピュータをリストから選択し、適切なユーザ名とパスワードを入力する。いったんアクセスがリモートコンピュータに与えられると、ユーザは遠隔コンピュータにアクセスし、操作するためにローカルユーザワークステーションに取り付けられているキーボード、ビデオモニタおよびカーソル制御装置を活用する。
【０００３】
インターネット上でまたはモデムを介してユーザワークステーションから遠隔コンピュータを操作するためにはハードウェアソリューションも存在する。ただし、ソフトウェアソリューションとは対照的に、ハードウェアソリューションは通常ホストおよび／またはクライアントソフトウェアを必要としない。代わりに、ハードウェアソリューションは、通常、インターネット上であるいはＴＣＰ／ＩＰ等の共通プロトコルを介してＬＡＮ上でアクセス可能であるキーボード、ビデオモニタ、およびマウス（「ＫＶＭ」）スイッチを活用する。ハードウェアソリューションはインターネットに接続するためにモデムも活用してよい。一般的には、ユーザまたはシステム管理者は、ＫＶＭスイッチと関連付けられるインターネットウェブブラウザまたはクライアントソフトウェアを活用して、ＫＶＭスイッチに取り付けられている遠隔コンピュータにアクセスする。いったん遠隔コンピュータが選択されると、遠隔コンピュータのビデオ信号はユーザワークステーションのビデオモニタに送られ、ユーザは遠隔コンピュータを制御するためにキーボードおよび／またはマウスを活用してよい。ＫＶＭスイッチは、さらにシステム故障の場合のハードリブートのために遠隔コンピュータの電源への接続を含んでよい。
【０００４】
前述されたハードウェアソリューションとソフトウェアソリューションは、通常、ビデオ信号を送信するために必要とされる必要な帯域幅を削減するために圧縮アルゴリズムを活用する。例えば、本発明のネットワーク遠隔管理システムは、遠隔コンピュータおよび／またはディスプレイ装置に送信されなければならないデジタルデータを削減し、圧縮するために、参照することにより本書に組み込まれている出願番号第１０／２３３，２９９号に開示されている圧縮アルゴリズムを使用する。一般的には、パーソナルコンピュータによって生成されるビデオ信号は空間的冗長性とフレーム間冗長性の両方を有する。例えば、ほぼ(near)遊休のパーソナルコンピュータでは、ビデオの連続フレーム間の唯一の変化がカーソルの点滅である可能性がある。ユーザが文書を入力しても画面の大半は経時的に変化しない。したがって、本発明により使用される圧縮アルゴリズムは、遠隔コンピュータおよび／またはビデオディスプレイ装置に送信されるデジタルビデオ信号データの量を削減するために、ビデオの連続フレーム間と各個別フレーム内の両方でこれらの冗長性を利用する。通信媒体上で送信されるデジタルデータの量を削減すると、通信時間が短縮され、必要とされる帯域幅が削減される。
【０００５】
当技術分野で公知の大部分の形式のビデオ圧縮は、複雑な計算を必要とする。例えば、エムペグ(Moving Pictures Experts Group「ＭＰＥＧ」)ビデオ圧縮アルゴリズムはそのアルゴリズムの一部として離散コサイン変換を使用する。また、ＭＰＥＧ規格は、ビデオ画像の部分がある期間に渡ってどのように変化したのかを説明する運動ベクトルの計算を必要とする、フレーム間の「運動」の認識に依存している。これらのアルゴリズムは計算集約型であるため、それらは高価なハードウェアまたは低速のハードウェアが計算を完了するための十分な時間を可能にする長い送信時間のどちらかを必要とする。
【０００６】
複雑さに加えて、多くの既存のビデオ圧縮技法は損失が多い（つまり、それらは必要とされる帯域幅を削減するためにビデオ信号情報のすべてを送信しない）。通常、このような損失が多い技法はビデオ画像の詳細を削減するか、あるいは活用される色の数を削減するかのどちらかである。色数の削減はコンピュータ管理システムアプリケーションに対する適切な圧縮解決策の一部となるであろうが、多くの他のアプリケーションではこのような結果はコンピュータ管理システムの意図された目的を無効にする。
【０００７】
当技術分野で公知のシステムは、キーボード、マウスおよび／またはビデオモニタを含むローカルユーザワークステーションを遠隔コンピュータに結合するための方法および装置を開示する。請求されている発明は、遠隔コンピュータが標準サイズのパーソナルコンピュータのビデオモニタに表示されるメニューから選択されるシステムを開示する。システムユーザが遠隔コンピュータを選択すると、該遠隔コンピュータのビデオ信号がローカルユーザワークステーションのビデオモニタに送信される。システムユーザはローカルユーザワークステーションのキーボードとモニタを活用して遠隔コンピュータを制御してもよい。システムは、ローカルユーザワークステーションと遠隔コンピュータの間でマウス信号とキーボード信号を双方向で送信することもできる。遠隔コンピュータとローカルユーザワークステーションは公衆交換電話網（「ＰＳＴＮ」）およびモデムを介して、あるいは直接的なケーブル布線を介してのいずれかで接続されてよい。
【０００８】
当技術分野で公知の別のシステムは、ローカルキーボード、マウスおよび／またはビデオモニタを複数の遠隔コンピュータの１台に結合するためのコンピュータ化された切り替えシステムの具体的なインプリメンテーションを開示する。特に、第１の信号調整装置は、ローカルビデオモニタに接続されている遠隔コンピュータのリストを表示するオンスクリーンプログラミング回路を含む。メニューを活性化するために、ユーザは、例えば「画面印刷」キーをローカルキーボードで押す。ユーザはローカルキーボードおよび／またはマウスを使用してリストから所望されるコンピュータを選択する。
【０００９】
システムに従って、オンスクリーンプログラミング回路は、少なくとも２セットのトライステートバッファ、単一オンスクリーンプロセッサ、内部同期ジェネレータ、同期スイッチ、同期偏光器、およびオーバレイ制御論理を必要とする。トライステートバッファの第１のセットは遠隔コンピュータから受信されたビデオ信号の赤、緑および青の成分をビデオモニタに結合する。すなわち、第１のセットのトライステートバッファが付勢されると、赤、緑および青のビデオ信号が、トライステートバッファを通って遠隔コンピュータからローカルビデオモニタに渡される。第１のセットのトライステートバッファがアクティブでないとき、遠隔コンピュータからのビデオ信号は遮断される。同様に、トライステートバッファの第２の集合は単一オンスクリーンプロセッサの出力をビデオモニタに結合する。トライステートバッファの第２のセットが付勢されると、オンスクリーンプログラミング回路のビデオ出力がローカルビデオモニタに表示される。トライステートバッファの第２のセットがアクティブではないとき、オンスクリーンプログラミング回路からのビデオ出力は遮断される。代わりに、トライステートバッファの両方のセットとも付勢される場合、遠隔コンピュータビデオ信号はローカルビデオモニタでの表示の前にオンスクリーンプロセッサによって発生されるビデオ信号と結合される。
【００１０】
本発明で開示されているオンスクリーンプログラミング回路は独自の水平同期信号と垂直同期信号も生成する。ビデオモニタ上でどの文字が表示されるのかを指示するために、ＣＰＵはオンスクリーンプロセッサに命令データを送信する。これによりオンスクリーンプロセッサはローカルビデオモニタでの表示のために内部ビデオＲＡＭから文字を取り出す。
【００１１】
オンスクリーンプロセッサ、つまりモトローラ(Motorola)ＭＣ１４１５４３オンスクリーンププロセッサにより生成されたオーバレイビデオ画像は、サイズと色の量、および単一オンスクリーンプロセッサで利用可能な文字に制限されている。言い換えると、システムは（つまり、壁用サイズまたはマルチモニタ型ビデオディスプレイではなく）標準サイズのコンピュータモニタのサイズに作られたオーバレイビデオを生成することを目的とし、単一オンスクリーンプロセッサによって提供される色の量および文字に制限されている。
【００１２】
システムの動作中、遠隔コンピュータはオーバレイビデオディスプレイから選ばれる。その後、第１の信号調整装置はローカルキーボードとマウスからキーボード信号とマウス信号を受信し、中央のクロスポイントスイッチへの伝送のためにデータパケットを生成する。クロスポイントスイッチはデータパケットを、選択された遠隔コンピュータに結合されている第２の信号調整装置に送る。第２の信号調整装置は次にキーボードコマンド信号とマウスコマンド信号を、遠隔コンピュータのキーボードコネクタとマウスコネクタに送る。同様に、遠隔コンピュータによって生成されるビデオ信号は、第２の信号調整装置、クロスポイントスイッチ、および第１の信号調整装置を通して遠隔コンピュータからローカルビデオモニタに送られる。遠隔コンピュータから受信される水平同期ビデオ信号と垂直同期ビデオ信号は赤、緑、または青のビデオ信号の１つで符号化される。この符号化により遠隔コンピュータからローカルビデオモニタにビデオ信号を送信するために必要とされるケーブルの量が削減する。
【００１３】
さらに別のシステムが、標準ネットワークプロトコル（例えばイーサネット、ＴＣＰ／ＩＰ等）を用いて動作する標準ネットワーク（例えばローカルエリアネットワーク）に結合できるキーボード、ビデオ、マウス（「ＫＶＭ」）切り替えシステムを開示している。システムは中央スイッチを複数のコンピュータ、およびキーボード、ビデオモニタおよびマウスを有する少なくとも１台のユーザステーションに結合する。中央スイッチは、中央スイッチをネットワークに接続するためのネットワークインタフェースカード（「ＮＩＣ」）を含み、それは多くの追加コンピュータまたはリモート端末を含んでよい。ネットワークに取り付けられている遠隔端末に位置するユーザは、システムを活用して中央スイッチに結合されているコンピュータのいずれかを制御してよい。
【００１４】
当技術分野で公知のさらに別のシステムは、遠隔に位置するＩ／Ｏ装置を有するコンピュータシステムを開示する。Ｔｈｏｒｎｔｏｎのシステムはコンピュータ、第１のインタフェース装置と、遠隔で位置する第２のインタフェース装置を含む。第１のインタフェース装置はコンピュータに結合され、第２のインタフェース装置はヒューマンインタフェースが作成されるように、ビデオモニタと３台ものＩ／Ｏ装置（キーボード、マウス、プリンタ、ジョイスティック、トラックボール等）に結合される。第１のおよび第２のインタフェース装置は４本のワイヤケーブルを介して互いに結合されている。第１のインタフェース装置は接続されているコンピュータからビデオ信号を受信し、受信したビデオ信号の水平同期信号と垂直同期信号をビデオ信号の赤、緑、青の成分の内の少なくとも１つの上に符号化する。また、第１のインタフェース装置は第４のワイヤケーブルの中の第４のワイヤ上での伝送のためのデータパケットに、接続されているコンピュータから受信されたＩ／Ｏ信号を符号化する。その後、ビデオ信号の符号化された赤、緑および青の成分とデータパケットはヒューマンインタフェースに位置する第２のインタフェース装置に送信される。第２のインタフェース装置は、ビデオ信号の符号化された赤、緑および青の成分を復号し、符号化されていた水平同期信号と垂直同期信号を分離し、Ｉ／Ｏ信号データパケットを復号する。ビデオ信号と同期信号は、次に第２のインタフェースに取り付けられているビデオモニタに出力され、復号されたＩ／Ｏ信号はやはり第２のインタフェースに取り付けられている適切なＩ／Ｏ装置に送られる。第２のインタフェース装置はオプションで、第１のインタフェース装置への伝送のために第２のインタフェースに取り付けられているＩ／Ｏ装置から受信されるＩ／Ｏ信号を符号化するために回路網を含んでよい。
【００１５】
さらに別のシステムは、取り付けられているキーボード、ビデオモニタ、およびマウスを有する１つまたは複数のユーザステーションに複数のコンピュータを接続するためのキーボード、ビデオ、マウスおよび電力切替え（「ＫＶＭＰ」）装置を開示する。ＫＶＭＰ切替え装置内に埋め込まれているオンスクリーンディスプレイ（「ＯＳＤ」）回路網により、ユーザステーションに位置するユーザが該ユーザステーションに取り付けられているキーボード、ビデオモニタ、およびマウスを活用してコンピュータの内のいずか１台を選択し、操作できる。ＫＶＭＰ切替え装置内に位置する二次切替え回路網により、ユーザステーションに位置するユーザは各コンピュータに供給する電力をさらに制御できる。
【００１６】
前記を鑑みて、遠隔制御切替え装置に接続されているネットワーキング装置、サーバ、コンピュータを操作、制御できる内蔵型ネットワーク遠隔管理システムに対するニーズは明らかに存在する。さらにこのようなシステムにより、ユーザは遠隔ネットワーキング装置、サーバおよびコンピュータに取り付けられている電源を制御できなければならない。システムは遠隔ネットワーク環境を管理し、それによりオンサイトシステム管理者を有する必要性を削減する。
【発明の開示】
【発明が解決しようとする課題】
【００１７】
本発明は、周辺装置（つまりキーボード、ビデオモニタ、カーソル制御装置等）が取り付けられた１台または複数台のローカルユーザワークステーションから遠隔コンピュータネットワーキング環境を管理するための内蔵型のネットワーク遠隔管理システムを提供する。本発明のネットワーク遠隔管理システムによって、ユーザワークステーションに位置するユーザは遠隔場所に位置するネットワーキング装置、サーバおよびコンピュータにアクセスし、走査し、制御できるようになる。またネットワーク遠隔管理システムによって、ユーザはそれぞれ１つの遠隔装置に対する電源を制御できる。ネットワーキング装置（例えば、ハブ、スイッチ、ルータ等）は通常シリアルインタフェースを介して制御される。対照的に、サーバとコンピュータはキーボード、ビデオモニタ、およびマウスを活用して制御、操作される。
【００１８】
遠隔ネットワーキング装置、サーバ、およびコンピュータはすべて中央遠隔管理装置（「ＲＭＵ」）に接続され、ＲＭＵは代わりにイーサネットまたはモデム接続を介してインターネットまたはＬＡＮに接続される。ＲＭＵは、サーバとコンピュータに対する接続のためのキーボード、ビデオ、およびカーソル制御装置ポートのみではなく、ネットワーキング装置に対する接続のためのシリアルポートも有する。ＲＭＵはさらにネットワーキング装置、サーバ、およびコンピュータへの電力を制御できる電源への接続のためのポートも含む。標準的なケーブル布線は、ネットワーキング装置、サーバおよびコンピュータをＲＭＵ上の適切なポートに接続するために活用される。
【００１９】
ＲＭＵは、多様なオペレーティングシステムおよび／またはマイクロソフト社(Microsoft Corporation)（「マイクロソフト(Microsoft)」）(Windows)、アップルコンピュータ社(Apple Computer Inc.)（「アップル(Apple)」）（マッキントッシュ(Macintosh)）、サンマイクロシステムズ社(Sun Microsystems,Inc.)（「サン(Sun)」）（ソラリス(Solaris)）、デジタルイクイップメント社(Digital Equipment Corporation(「DEC」)）、コンパックコンピュータ社(Compaq Computer Corporation)（「コンパック(Compaq)」）（アルファ(Alpha)）、ＩＢＭ社(「IBM」)(RS/6000)、ヒューレットパッカード社（Hewlett-Packard Company(「HP」)）(HP9000)、およびＳＧＩ（「旧シリコングラフィックス社(Silicon Graphics, Inc.)」）(IRIX)を含むが、これらの限定されない通信プロトコルの間の互換性も提供する。
【００２０】
本発明のネットワーク遠隔管理システムを活用する場合、ユーザは最初にＲＭＵに接続するためにユーザワークステーションに位置するクライアントソフトウェアを活用することによって管理セッションを開始する。代わりに、ユーザはＲＭＵに接続するためにインターネットブラウザを活用してよい。次に、ユーザはＲＭＵによってユーザ名とパスワードを入力するようにプロンプトを出される。ＲＭＵは複数のプロファイルとプロファイルごとのさまざまなレベルのアクセスを記憶できる。いったんユーザが認証されると、ユーザは、ＲＭＵ内に位置するオプションメニュー回路網によって生成される、ユーザワークステーションのモニタ上にオプションメニューを与えられる。オプションメニューは、遠隔場所でのすべてのネットワーキング装置、サーバ、およびコンピュータを一覧表示するメニューからなる。オプションメニューは、さらにユーザが遠隔装置の各個に対する電力を制御できるようにするメニューを含む。ユーザはユーザワークステーションに取り付けられているキーボードおよび／またはカーソル制御装置を活用することによって、所望されるネットワーキング装置、サーバまたはコンピュータを選択する。いったんユーザが選択を行うと、ユーザは、ユーザが物理的に遠隔サイトにいるかのように該遠隔装置へのアクセスを提供される。
【００２１】
ＲＭＵおよびユーザワークステーションはＴＣＰ／ＩＰを介して通信する。ＴＣＰ／ＩＰを介した伝送の前に、一方向の（つまり、ＲＭＵからユーザワークステーションへの）ビデオ信号がフレーム取り込み器によってデジタル化される。この回路は、少なくとも毎秒２０コマの速度で起動側コンピュータからビデオ出力を捕捉し、細くしたアナログビデオ信号をピクセルのデジタル表現に変換する。各ピクセルは赤の場合５ビット、緑の場合５ビットおよび青の場合５ビットでデジタル的に表現されている。デジタル表現は次に未処理フレームバッファに記憶される。圧縮アルゴリズムは次に未処理フレームバッファに含まれているデジタルデータを処理する。圧縮アルゴリズムは、実際には、詳しく後述されるように４つのサブアルゴリズム（つまり、消音および差異試験（「ＮＲＤＴ」）アルゴリズム、円滑化アルゴリズム、キャッシングアルゴリズム、およびビットスライシング／圧縮サブアルゴリズム）の組み合わせである。
【００２２】
ビデオ信号がユーザワークステーションに到達した後、解凍が発生する。ユーザワークステーションは解凍アルゴリズムを実行することにより解凍装置として動作する。送信されたビデオ信号またはデータ信号とともに、ＲＭＵは「キャッシュ」ヒットを生じさせたビデオの部分（つまり、未変更ビデオの部分）に関して解凍装置にメッセージを送信する。それに応えて、解凍装置は送信済みビデオ信号とそのローカルキャッシュに含まれているピクセルのブロックに基づいてビデオフレームを構築する。また、解凍装置はＲＭＵから受信されたピクセルの新しいブロックでそのローカルキャッシュを更新する。このようにして、解凍装置キャッシュは圧縮装置キャッシュと同期されたままとなる。圧縮装置と解凍装置の両方とも、より新しいビデオデータで古いデータを置換することによってそのそれぞれのキャッシュを更新する。
【００２３】
さらに、ＲＭＵによって送信されるビデオ信号は可逆圧縮アルゴリズムを使用して圧縮されていた。したがって、解凍装置（例えばユーザワークステーションのソフトウェア）はこの可逆圧縮を逆転しなければならない。これはＲＭＵによって送信されるフラグに基づいてビデオ画像の変更された部分を特定することにより行われる。このフラグ情報から、解凍装置はビデオの完全フレームを再構築することができる。
【００２４】
さらに、解凍装置は、カラーコードテーブル（「ＣＣＴ」）変換を逆転させることによってビデオフレームをその元のカラースキームに変換する。解凍装置はＲＭＵのようにビデオデータを圧縮するために使用される同じＣＣＴのコピーを局所的に記憶する。次にＣＣＴはＲＭＵから受信されたビデオデータを、ユーザワークステーションに取り付けられているモニタで表示されてよい標準ＲＧＢフォーマットに変換するために使用される。
【００２５】
解凍アルゴリズムは、種々の実施形態における本発明のネットワーク遠隔管理システムで実現できる。例えば、一実施形態では、それはユーザワークステーションで実行されるソフトウェアアプリケーションとして実現できる。代替実施形態では、解凍アルゴリズムはインターネットエクスプローラー(Internet Explorer)またはネットスケープ  ナビゲータ(Netscape Navigator、登録商標)のようなウェブブラウザ内で実行するために実現できる。このような実施形態はユーザワークステーションでのアプリケーションに特殊なソフトウェアのインストールに対するニーズを排除する。また該実施形態により、ＲＭＵは、コンピュータが起動側コンピュータから位置する距離に関係なく、インターネット機能を備えた任意のユーザワークステーションにビデオ信号を容易に送信できる。この機能は、本発明のネットワーク遠隔管理システムと関連するケーブル布線の費用を削減する。
【００２６】
本発明はＲＭＵからかなり離れていることがある場所でビデオ信号を表示するために使用できるので、ビデオ信号伝送が安全であることを確実にすることは重要である。伝送が安全ではない場合、ハッカー、競争相手、または他の未許可のユーザがビデオ信号に含まれている秘密情報を表示する可能性があるであろう。したがって、本発明のネットワーク遠隔管理システムは、当技術分野で公知のデジタル暗号化技術と容易に統合することを目的としている。本発明の一実施形態では、ＲＭＵのアイデンティティを検証するため、および送信されたビデオ信号とデータ信号を暗号化し、復号化するために１２８ビット暗号化技術が使用される。この実施形態では、遠隔参加者を検証するために１２８ビット公開鍵ＲＳＡ暗号化技術が使用され、送信された信号を暗号化、および復号化するために１２８ビットのＲＣ４秘密鍵が使用される。他の暗号化技術あるいはセキュリティ手段が使用されてよいのは言うまでもない。
【００２７】
最後に、本発明のネットワーク遠隔管理システムはプラットホームに無関係な通信を可能とするので、活用される圧縮アルゴリズムはオペレーティングシステムに特殊なフックを利用しないし、プラットホームに特殊なＧＤＩコールも使用しない。
【００２８】
好適実施形態では、ここに、および同時係属出願、出願番号第１０／２３３，２９９号に説明されている圧縮アルゴリズムがビデオ信号を送信するために使用される。ただし、ビデオ伝送システムはこのような実施形態に限定されない。むしろ、このシステムは本発明の精神から逸脱することなく任意の圧縮アルゴリズムと利用されてよい。
【００２９】
したがって、ユーザが１台または複数台のローカルユーザワークステーションから遠隔ネットワーキング環境を制御できるようにする、改善されたネットワーク遠隔管理システムを提供することが本発明の目的である。このような遠隔ネットワーキング環境はドメインサーバ、ファイルサーバ／プリントサーバ、ヘッドレスサーバ、ネットワーク機器、シリアルＩＴ装置、開閉器、ルータ、ファイアウォール、セキュリティインタフェース、アプリケーションサーバ、ロードバランサ、および環境制御装置を含んでよい。
【００３０】
さらに、１台または複数のローカルユーザワークステーションが、遠隔管理装置に接続されている遠隔ネットワーキング装置、サーバ、およびコンピュータにアクセスし、走査できるようにするネットワーク遠隔管理システムを提供することが本発明の目的である。
【００３１】
集中し、統合され、安全な制御を提供する単一のプラットホームに関係のないネットワーク遠隔管理システムを提供することは本発明の別の目的である。
【００３２】
緊急アクセスのためにモデムを含むネットワークに無関係な遠隔ネットワーク管理システムを提供することが、本発明の追加の目的である。
【００３３】
ＫＶＭ装置のＢＩＯＳレベル制御およびシリアルデバイスのコンソールレベル制御を可能にするネットワーク遠隔管理システムを提供することが本発明の追加の目的である。
【００３４】
さらに、ウェブブラウザを介して１つの画面から全サーバと他の接続装置の単一の連結された表示を提供するネットワーク遠隔管理システムを提供することが本発明の目的である。
【００３５】
シングルサインオンとインタフェースを含むネットワーク遠隔管理システムを提供することは本発明の別の目的である。
【００３６】
さらに、アップグレードできるネットワーク遠隔管理システムを提供することが本発明の目的である。
【００３７】
モデム、無線、ケーブル、ＤＳＬおよびフラクショナル(fractional)Ｔ１を含む低帯域幅接続で高性能を提供するネットワーク遠隔管理システムを提供することは本発明の追加の目的である。
【００３８】
高品質ビデオの考えられる最速の伝送を確実にするためにビデオ圧縮アルゴリズムおよびフレーム取り込み器技術を活用するネットワーク遠隔管理システムを提供することが本発明の別の目的である。
【００３９】
さらに、最新のコンソール履歴の表示を提供するために内蔵シリアルポートバッファリングを含むネットワーク遠隔管理システムを提供することは本発明の目的である。
【００４０】
インストールと走査が容易であるネットワーク遠隔管理システムを提供することはさらに別の目的である。
【００４１】
さらに、コンパクトであり、容易にアクセスできる通信ポートを提供するネットワーク遠隔管理システムを提供するために本発明の目的である。
【００４２】
さらに、ローカルユーザワークステーションの周辺装置と、ドメインサーバ、ファイルサーバ／プリントサーバ、ヘッドレスサーバ、ネットワーク機器、シリアルＩＴ装置、開閉器、ルータ、ファイアウォール、セキュリティインタフェース、アプリケーションサーバ、ロードバランサ、および環境制御装置に配置されるネットワーキング装置、サーバおよびコンピュータの間でエラーのない通信を可能にするネットワーク遠隔管理システムを提供することが本発明の目的である。
【００４３】
遠隔に配置されるネットワーキング装置、サーバおよびコンピュータに電源を制御できる機能が付いたネットワーク遠隔管理システムを提供することが本発明の目的である。
【００４４】
構造の関係する要素の動作および機能の方法のみではなく、本発明の他の目的、特徴および特性、ならびにパーツと製造の経済の組み合わせは、すべてが本明細書の一部を形成する添付図面を参照して以下の詳細な説明を考慮するときにさらに明らかになるであろう。
【発明を実施するための最良の形態】
【００４５】
必要とされるように、本発明の詳細な例示的な実施形態がここに開示されている。ただし、本発明による技法、システムおよび動作構造は、多岐にわたる形式とモードで具現化されてよく、その内のいくつかは開示されている実施形態のものと極めて異なる可能性がある。その結果として、ここに開示されている特定の構造上および機能上の詳細は単に典型的であるにすぎないが、その点でそれらは開示の目的のために最善の実施形態を与え、本発明の範囲を定めるここのクレームの基礎となると見なされる。以下は本発明の（いくつかの代替実施形態のみではなく）好適実施形態の詳細な説明も提示する。
【００４６】
まず図１を参照すると、本発明によるネットワーク遠隔管理システムの好適実施形態のアーキテクチャが描かれている。具体的には、ネットワーク遠隔管理システムは、キーボード１０３と、ビデオモニタ１０５と、カーソル制御装置１０７を含むユーザワークステーション１０１と、遠隔管理装置（「ＲＭＵ」）１０９と、インターネット／ＬＡＮ／ＷＡＮ１０８と、公衆交換電話網（「ＰＳＴＮ」）１０６と、シリアルデバイス１１１ａと１１１ｂ、サーバ１１３ａと１１３ｂ、遠隔コンピュータ１１５ａと１１５ｂ、および電源１１７を備えて示されている。好ましくはユーザワークステーション１０１とＲＭＵ１０９は、それぞれ通信回線１１９と１２１を介してインターネット／ＬＡＮ／ＷＡＮ１０８に接続されている。ＣＡＴ５ケーブル布線が通信回線１１９と１２１用の好適ケーブル布線であるが、同軸ケーブル、光ファイバケーブル、または複数ＣＡＴ５ケーブル等の他のケーブル布線が使用されてよい。ＣＡＴ５ケーブル布線は、長い距離を送信される信号の強度を維持しつつ、ケーブル布線費用を削減するため好ましい。代わりに、ＲＭＵ１０９をインターネット／ＬＡＮ／ＷＡＮ１０８およびシリアルデバイス１１１ａと１１１ｂ、サーバ１１３ａと１１３ｂ、コンピュータ１１５ａと１１５ｂ、および電源１１７に接続するために、無線ネットワーキング装置も活用されてよい。同様に、無線ネットワーキング装置はインターネット／ＬＡＮ／ＷＡＮ１０８にユーザワークステーション１０１を接続するために活用されてもよい。
【００４７】
代替実施形態では、ユーザワークステーション１０１はＲＭＵ１０９に接続するためにＰＳＴＮ１０６を活用してよい。ＰＳＴＮ１０９がＲＭＵ１０９に接続するために活用される場合、通信回線１２０と１２２は好ましくはＣＡＴ３ケーブルとなるであろう。一例として、この通信手段は、インターネット／ＬＡＮ／ＷＡＮ１０８が適切に機能していない場合等緊急事態で活用されてよい。
【００４８】
通信回線１１９と１２１は、ＣＡＴ５ケーブルによって結合されるそれぞれの装置に位置するＲＪ−４５ソケットに各端部を差し込むことによりユーザワークステーション１０１とＲＭＵ１０９に接続される。ＲＪ−４５ソケットとプラグが好ましいが、ＲＪ−１１、ＲＧ−５８、ＲＧ−５９、軍用コネクタ(British Navy Connector)(「ＢＮＣ」)およびＳＴコネクタを含むが、これらに限定されない他のタイプのコネクタが使用されてよい。
【００４９】
遠隔管理システムはローカルユーザワークステーション１０１を含み、好ましくはキーボード１０３、ビデオモニタ１０５および／またはカーソル制御装置１０７等の専用周辺装置を備える。プリンタ、スキャナ、ビデオカメラ、バイオメトリック走査装置、マイク等の他の周辺装置もワークステーションに配置されてよい。各周辺装置は、通信線路１１９を介してインターネット／ＬＡＮ／ＷＡＮ１０８に取り付けられている、ユーザワークステーション１０１に直接的にまたは間接的に接続される。無線周辺装置もこのシステムとともに使用してよいことは言うまでもない。好ましい運転モードでは、取り付けられている周辺装置からユーザワークステーション１０１で受信されるすべての電子信号（つまりキーボード信号とカーソル制御装置信号）が、通信回線１１９を介してインターネット／ＬＡＮ／ＷＡＮ１０８に送信される。それ以後、信号は通信回線１２１を介してＲＭＵ１０９に送信される。ＲＭＵは受信された信号を、この図ではシリアルデバイス１１１ａと１１１ｂ、サーバ１１３ａと１１３ｂ、コンピュータ１１５ａとｔ１１５ｂ、および電源１１７を含むそれぞれの遠隔装置に送信する。
【００５０】
ＲＭＵ１０９は、マイクロソフト(Microsoft)（ウィンドウズ(Windows)）、アップル(Apple)（マッキントッシュ(Macintosh)）、サン(Sun)（ソラリス(Solaris)）、ＤＥＣ、コンパック(Compaq)（アルファ(Alpha)）、ＩＢＭ（RS/6000）、ＨＰ(HP9000)、およびＳＧＩ(IRIX)を含むが、これらに限定されないすべての一般的に使用されている今日のコンピュータオペレーティングシステムとプロトコルと互換性があってよい。さらに、ローカルデバイスは、ユニバーサルシリアルバス(「USB」)、米国規格協会情報交換標準コード(「ASCII」)、および推奨規格(Recommend Standard)−２３２(「RS-232」)を含む種々のプロトコルを介して遠隔コンピュータと通信してよい。
【００５１】
シリアルデバイス１１３ａと１１３ｂは、それぞれ通信回線１１２ａと１１２ｂを介してＲＭＵ１０９に接続される。好ましくは通信回線１１２ａと１１２ｂは、ＲＪ−４５コネクタと成端されるＣＡＴ５ケーブルである。しかしながら、すべてのシリアルデバイスにＲＪ−４５ポートが装備されているわけではないので、通信回線１１２ａと１１２ｂをシリアルデバイス１１１ａと１１１ｂに適切に接続するために特殊なアダプタが必要とされる可能性がある。例えば、シリアルデバイス１１１ａのみがシリアルポートを具備していた場合、アダプタは通信回線１１２ａのＲＪ−４５コネクタをシリアルデバイス１１１ａに位置するシリアルポートに接続するであろう。
【００５２】
同様に、電源１１７は通信回線１１８を介してＲＭＵ１０９に接続される。好ましくは通信回線１１８は、各端部でＲＪ−４５コネクタと成端したＣＡＴ５ケーブルである。
【００５３】
サーバ１１３ａと１１３ｂ、およびコンピュータ１１５ａと１１５ｂはそれぞれ通信回線１１４ａ、１１４ｂ、１１６ａ、および１１６ｂを介してＲＭＵ１０９に接続される。好ましくは、通信回線１１４ａ、１１４ｂ、１１６ａおよび１１６ｂは、サーバ１１３ａと１１３ｂおよびコンピュータ１１５ａと１１５ｂのキーボード、ビデオ、およびカーソル制御装置のポートを図示されているようにＲＭＵ１０９で単一ポートに接続できるようにする３対１の同軸ケーブルである。
【００５４】
管理およびアクセスのために遠隔ネットワーキング環境に接続するために、ユーザはユーザワークステーション１０１で遠隔管理セッションを開始する。最初にユーザは、ユーザにユーザ名とパスワードを入力するようにプロンプトを出すワークステーション１０１を使用して配置されているクライアントソフトウェアにアクセスする。しかしながら、システムはある特定のユーザを識別する、および／または認証するために識別データの任意の組み合わせを活用してよい。取り付けられているキーボード１０３、カーソル制御装置１０７または他の周辺装置を活用すると、ユーザはユーザ名とパスワードを入力する。いったんユーザ名とパスワードが入力されると、ユーザワークステーション１０１は通信回線１１９を介してインターネット／ＬＡＮ／ＷＡＮ１０８に接続する。ユーザワークステーション１０１は、種々の方法でインターネット／ＬＡＮ／ＷＡＮ１０８に接続してよい。例えば、ユーザワークステーション１０１はイーサネット接続を通してインターネット／ＬＡＮ／ＷＡＮ１０８に接続されてよい。この例では、通信回線１１９はＣＡＴ５ケーブルであろう。インターネット／ＬＡＮ／ＷＡＮ１０８への接続は、通信回線１１９に対するニーズを排除する無線接続を通して達成されてもよい。例えば、ＲＭＵ１０９は、インターネット／ＬＡＮ／ＷＡＮ１０８と通信するために、標準ワイヤレスフィディリティ（「Ｗｉ−Ｆｉ」）ネットワーキング装置を活用してよい。
【００５５】
代わりに、ユーザワークステーション１０１は、モデム接続を活用することによってＰＳＴＮ１０６を介してＲＭＵ１０９と接続してよい。この代替例では、接続回線１２０と１２２はＣＡＴ３ケーブルであろう。
【００５６】
次にユーザ名とパスワードはインターネット／ＬＡＮ／ＷＡＮ１０８を通して、通信回線１２１を介してＲＭＵ１０９に送られる。ＲＭＵ１０９はユーザ名とパスワードを受信し、ユーザワークステーション１０１に位置するユーザを認証する。いったんユーザがＲＭＵ１０９によって認証されたら、ＲＭＵ１０９内に位置するオプションメニュー回路がモニタ１０５を介してユーザ１０１に、ＲＭＵ１０９を通してアクセスできるすべての装置を一覧表示するオプションメニューを提供する。ユーザは、ユーザワークステーション１０１に取り付けられているキーボード１０３、カーソル制御装置１０５、または何らかの他の周辺装置を活用してこのオプションメニューから選択を行う。
【００５７】
図２に示されているように、オプションメニュー２０１は装置リスト２０３と、第１のデスクトップウィンドウ２０５と、電力制御ウィンドウ２０７と、第２のデスクトップウィンドウ２０９と、シリアルデバイスウィンドウ２１１とからなる。装置リスト２０３はＲＭＵ１０９に接続されるすべてのアクティブな装置とイナクティブな装置を一覧表示する。ユーザは制御に所望される装置を選択するためにこのメニューを活用する。この例では、第１のデスクトップウィンドウ２０５は遠隔コンピュータの内の１台のデスクトップを表示する。第１のデスクトップウィンドウ２０５を選択することによって、ユーザは、表示されている遠隔コンピュータを制御するためにキーボード１０３と、カーソルコントロールデバイス１０７、または何か他の周辺装置を活用してよい。同様に、ユーザは電源１１７にアクセスし、操作するために電力制御ウィンドウ２０７を活用してよい。電力制御ウィンドウ２０７は、平均活用電力、ＲＭＳ電流、ＲＭＳ電圧、内部温度等の取り付けられている各装置のステータスのみではなく、電源１１７に接続されているすべての装置のリストも表示する。電力制御ウィンドウ２０７は主に、電源１１７に取り付けられている装置に電力を循環させるために活用される。しかしながら、電源１１７はプログラムで制御できるため、電力制御ウィンドウ２０７は電源１１７で可能なあらゆる機能を実行するために活用されてよい。
【００５８】
第２のデスクトップウィンドウ２０９は、第２の遠隔コンピュータまたはサーバにアクセスし、操作するために活用される。シリアルデバイスウィンドウ２１１は、遠隔管理装置１０９に取り付けられている任意の遠隔シリアルデバイスを操作し、アクセスするために活用される。シリアルデバイスウィンドウ２１１は、シリアルデバイスにより生じる過去の出力のみではなく、シリアルデバイスにより生じる現在の出力も表示する。シリアルデバイスの過去の出力はＲＭＵ１０９に配置されるバッファに記憶される。
【００５９】
好ましくは、最適メニュー２０１は、取り付けられている装置がＲＭＵ１０９に対する接続単位で配列されるメニューからなる。例えば、シリアルデバイス１１１ａと１１１ｂは好ましくはサーバ１１３ａと１１３ｂおよびコンピュータ１１５ａと１１５ｂとは異なるメニューに一覧表示されるであろう。また、オプションメニューは、電源１１７を制御するためのサブメニューからなる。
【００６０】
ＲＭＵ１０９は、ＲＭＵ１０９にとって局所的なユーザが取り付けられているシリアルデバイス１１１ａと１１１ｂ、サーバ１１３ａと１１３ｂ、およびコンピュータ１１５ａと１１５ｂ、電源１１７等を制御できるようにする、取り付けられているキーボード１２３、カーソル制御装置１２５およびビデオモニタ１２７をさらに含んでよい。キーボード１２３、カーソル制御装置１２５、およびビデオモニタ１２７は局所的にＲＭＵ１０９を構成するために活用されてもよい。キーボード１２３、カーソル制御装置１２５およびビデオモニタ１２７は、インタフェースケーブル１２９を介してＲＭＵ１０９に接続されている。代わりにキーボード１２３、カーソル制御装置１２５、およびビデオモニタ１２７は標準キーボード、カーソル制御装置、およびビデオモニタのコネクタを介してＲＭＵ１０９に接続されてよい。
【００６１】
次に図３Ａを参照すると、描かれているのは本発明によるＲＭＵ１０９の好適実施形態である。キーボード信号とマウス信号は、通信回線１２１を介してインターネット／ＬＡＮ／ＷＡＮ１０８からＲＪ−４５ポート２０１に到達する。ＲＭＵ１０９はＲＪ−４５ポート２０１、ＲＪ−１１ポート２０２、イーサネットコネクタ２０５、モデムモジュール２０４、通信ポートコネクタ２０６、ＣＰＵ２０７、通信ポートコネクタ２０８、ＰＣＩライザーカード２０９、シリアルカード２１１、ビデオプロセッサ２１２、シリアルポート２１３、フレーム取り込み器２１５、ＫＶＭポートヘッダ２１７、ＫＶＭポート２１９、電源２２１、電力ポート２３３、リセット回路網２２５、ローカルＫＶＭポート２２７、およびオプションメニュー回路２２９からなる。図示されているように、ＲＭＵ１０９がイーサネット接続を介してインターネット／ＬＡＮ／ＷＡＮ１０８に接続する場合、最初にキーボードおよび／またはカーソル制御装置信号がＲＪ−４５ポート２０１に達する。次に、信号は、信号をデパケット化するイーサネットコネクタ２０５に送信される。代わりに、キーボード信号および／またはカーソル制御装置信号がモデムを介して送信される場合には、信号はＲＪ−１１ポート２０２でＰＳＴＮ１０６から到達してよい。この場合、信号は、受信した信号を復調し、以後信号をデパケット化する通信ポートコネクタ２０６にモデムモジュール２０４に送信される。
【００６２】
イーサネットコネクタ２０５または通信ポートコネクタ２０６から、次にキーボードおよび／またはカーソル制御装置信号がビデオプロセッサ２１２を介してＣＰＵ２０７に送信される。ＣＰＵ２０７は、キーボード信号とカーソル制御装置信号のための適切な宛先を決定するために、キーボード信号および／またはカーソル制御装置信号の中に含まれているルーティング情報を活用する。キーボード信号およびカーソル制御装置信号が電源１１７に対するコマンドを指定する場合、ＣＰＵ２０７は（例えばルックアップテーブルを活用して）受信されたコマンドを解釈し、通信ポートコネクタ２０８と電力ポート２１０を介して電源１１７に適切なコマンドを送信する。好ましくは、電力ポート２１０は、ＲＭＵが電力ストリップと接続し、それがあたかもシリアルデバイスであるかのようにそれを操作できるようにするためのＲＪ−４５コネクタである。
【００６３】
ＣＰＵ２０７が、キーボード信号とカーソル制御装置信号にシリアルデバイスルーティング情報が含まれると判断すると、キーボード信号とカーソル制御装置信号がＰＣＩライザーカード２０９を通してシリアルカード２１１に送信される。図３Ｂに示されるように、シリアルポート２１１はＵＡＲＴ／開閉器３０１、シリアルトランシーバ３０３およびプログラマブルメモリ３０５から構成される。シリアルカード２１１は双方向シリアル伝送が可能である。キーボード信号および／またはカーソル制御装置信号がＰＣＩライザーカード２０９からシリアルポート２１３に送信されているとき、信号は当初、メモリ３０５に記憶されているデータと論理を活用して、キーボード信号および／またはカーソル制御装置が送信される適切なシリアルトランシーバ３０３を決定するＵＡＲＴ／開閉器３０１に送信される。シリアルカード２１１の好適実施形態では、ＵＡＲＴ／開閉器３０１はＥＸＡＲ  ＸＲ１７ｃ１５８である。以後、アナログ信号は並列フォーマットから直列フォーマットに信号を変換する適切なシリアルトランシーバ３０３に送信される。シリアルトランシーバ３０３は好ましくはＩｎｔｅｒｓｉｌのＨＩＮ２３Ｅシリアルトランシーバである。キーボード信号および／またはカーソル制御装置信号がシリアルポート２１３に送信される。
【００６４】
対照的に、シリアルデバイス１１１ａまたは１１１ｂからのコマンドがシリアルポート２１３、シリアルカード２１１、およびＰＣＩライザーカード２０９を介してＣＰＵ２０７に送信されるとき、コマンドは、初期に、シリアルコマンドを並列フォーマットに変換するシリアルトランシーバ３０３に送信される。以後、コマンドは、ＰＣＩライザーカード２０９を介してＣＰＵ２０７にコマンドを再送するＵＡＲＴ／開閉器３０１に送信される。ＣＰＵ２０７は受信されたコマンドを解釈し、ビデオモニタ１０５での表示のために仮想端末をエミュレートする。本発明は任意の数のシリアルポート２１３を組み込んでよい。図３Ａに図示されている例では、２台のシリアルデバイス１１１ａと１１１ｂがそれぞれシリアルポート２１３ａと２１３ｂに接続される。
【００６５】
ＣＰＵ２０７が、キーボード信号および／またはカーソル制御装置信号がサーバ１１３ａと１１３ｂまたはコンピュータ１１５ａと１１５ｂ向けであると判断すると、ＣＰＵ２０７はＰＣＩライザーカード２０９とフレーム取り込み器２１５を通して、適切なＫＶＭポート２１９に信号を送信するＫＶＭポートヘッダ２１７にキーボード信号とカーソル制御装置信号を送信する。図３Ｃに示されているように、ＫＶＭポートヘッダ２１７は開閉器３５０と、ビデオスイッチ３５２と、ＵＡＲＴ３５４とからなる。キーボード信号および／またはカーソル制御装置信号がＫＶＭポート２１９からＫＶＭポートヘッダ２１７に送信されると、信号は当初ＵＡＲＴ３５４で受信される。ＵＡＲＴ３５４は受信されたシリアルキーボード信号および／またはカーソル制御装置信号を並列フォーマットに変換する。次に、変換されたキーボード信号および／またはカーソル制御装置信号は、フレーム取り込み器２１５に信号を再送する開閉器３５０に送信される。
【００６６】
同様に、双方向キーボード信号および／またはカーソル制御装置信号もフレーム取り込み器２１５からＫＶＭポート２１９に送信される。フレーム取り込み器２１５から受信されるキーボード信号および／またはカーソル制御装置信号は、ＫＶＭポートヘッダ２１７に配置される開閉器３５０に送信される。キーボード信号および／またはカーソル制御装置信号の中に含まれる制御信号を活用して、開閉器３５０は適切なＵＡＲＴ３５４に受信されたキーボード信号および／またはカーソル制御装置信号を送信する。ＵＡＲＴ３５４は、次に、ＫＶＭポート２１９への伝送のために並列フォーマットから直列フォーマットにキーボード信号および／またはカーソル制御装置信号を変換する。
【００６７】
また、ＫＶＭポートヘッダ２１７は、ＫＶＭポート２１９で受信される一方向ビデオ信号をフレーム取り込み器２１５に送信する。ＫＶＭポート２１９から受信されるアナログビデオ信号は、初期にビデオスイッチ３５２に送信される。ビデオスイッチ３５２は次にビデオ信号を、受信されたアナログビデオ信号をデジタルフォーマットに変換するフレーム取り込み器２１５に再送する。
【００６８】
図３Ｄを見ると、ビデオ信号がフレーム取り込み器２１５によってデジタル化された後で、デジタル化されたビデオ信号はＣＰＵ２０７を介してビデオプロセッサ２１２に送信される。ビデオプロセッサ２１２はビデオインポート３７０、Ｒアウト３７６ａ、Ｇアウト３７６ｂ、Ｂアウト３７６ｃ、ピクセルプッシャー３７８、フレームバッファ３８０、圧縮装置３８２、フラッシュメモリ３８４、ＲＡＭ３８６、マイクロプロセッサ３８８、および開閉器３９０から構成される。図３Ｄの上部に示されているビデオインポート３７０は、ＣＰＵ２０７からデジタル化されたビデオ信号を受信する。ビデオインポート３７０の出力は、それぞれデジタル化されたビデオ信号の赤の成分、緑の成分および青の成分を表すＲアウト３７６ａ、Ｇ−アウト３７６ｂおよびＢアウト３７６ｃとして示されている。ビデオインポート３７０はこれらのデジタル化されたビデオ信号成分を、送信され、ピクセルプッシャー３７８に記憶されるピクセルの形式で出力する。ピクセルプッシャー３７８、フラッシュメモリ３８４、およびランダムアクセスメモリ（「ＲＡＭ」）３８６は通信バス３８７を介してマイクロプロセッサ３８８と通信する。また、ピクセルプッシャー３７８は、それぞれ通信バス３７９と３８１を介して、フレームバッファ３８０（例えば未処理フレームバッファ、比較フレームバッファ等）と圧縮装置３８２と通信する。圧縮アルゴリズムはマイクロプロセッサ３８８によって実行される。一般的に、圧縮は以下のように動作する。
【００６９】
消音および差異試験
前述されたように、アナログビデオ信号のデジタル化は、これらの信号をデジタル通信媒体（例えば、ネットワーク、ＬＡＮ、ＷＡＮ、インターネット等）を介して送信できるようにするために必要である。しかしながら、デジタル化プロセスの有害な副作用は量子化誤差と雑音がビデオ信号の中に入り込むことである。したがって、消音および差異試験サブアルゴリズム（「ＮＲＤＴサブアルゴリズム」）はビデオ信号のデジタル化の間に入る雑音を削減することを目的としている。加えてＮＲＤＴサブアルゴリズムは同時に最近捕捉されたビデオのフレーム（つまり「カレントフレーム」）と過去に捕捉されたビデオのフレーム（つまり、「比較フレーム」）の間の差異を決定する。
【００７０】
最初に、ＮＲＤＴサブアルゴリズムは、未処理フレームバッファに含まれているカレントフレームを６４×３２ブロックのピクセルに分割する。代わりに、ビデオフレーム全体のサイズ、通信媒体の帯域幅、所望される圧縮歩留まり等の基準に基づいて（例えば、８×８ピクセル、１６×１６ピクセル、３２×３２ピクセル等の）他のサイズのブロックが使用されてよい。
【００７１】
カレントフレームがブロックに分割されてから、２レベルの閾値モデルがピクセルのブロックに適用され、それが比較フレームに関して変化したかどうかを判断する。これらの２つの閾値は「ピクセル閾値」と「ブロック閾値」である。
【００７２】
最初に、既定のピクセルが調べられ、三色（つまり、赤、緑および青）のピクセルのそれぞれの値が、比較フレームの中のその対応するピクセルの値を用いて計算される。この計算から距離値が算出される。距離値がピクセル閾値（つまり２レベルの閾値の第１の閾値）より大きい場合、この距離値は距離合計に加えられる。このプロセスはブロックの中のピクセルごとに実行される。
【００７３】
次に、ブロックの中のピクセルのすべての距離値が前述されたように計算され、処理された後、距離合計の結果として生じる値はブロック閾値（つまり２レベルの閾値の第２の閾値）に比較される。距離合計がブロック閾値を超えている場合には、このピクセルのブロックは比較フレームの中の対応するピクセルのブロックに比較して変化したと見なされる。変化が確認されると、比較フレームバッファに記憶されている比較フレームはピクセルの新しいブロックで更新される。さらに、新しいピクセルのブロックは、圧縮フォーマットでさらに処理され、ユーザワークステーションに送信される。
【００７４】
対照的に、距離合計がブロック閾値より大きくない場合、ピクセルのブロックは未変更であると判断される。その結果として、比較フレームバッファは更新されず、このピクセルのブロックはユーザワークステーションに送信されない。ピクセルの未変更ブロックの伝送を排除すると、送信されるデータの総量が削減され、それにより伝送時間が延び、必要とされる帯域幅が削減される。
【００７５】
ＮＲＤＴサブアルゴリズムは少量のピクセルの中の大きな変化と大量のピクセルの中の小さな変化の両方の位置を突き止めるために理想的である。その結果として、ＮＲＤＴサブアルゴリズムはピクセルのブロック内で変化したピクセル数を単にカウントする公知のパーセンテージ閾値アルゴリズムより効率的且つより正確である。このようなアルゴリズムを用いると、ピクセルのブロックの中の数個のピクセルが劇的に（つまり黒から白へ）変化した場合、アルゴリズムは、変化したピクセルの総数がパーセンテージ閾値を超えないであろうため、ピクセルのブロックを未変更であると見なすであろう。この結果は多くの場合、コンピュータビデオの伝送での表示エラーにつながる。
【００７６】
例えば、文書を編集しているユーザを考えてみる。ユーザが「Ｅ」を「Ｆ」に変更する等、単一の文字を変更する場合、ビデオ画像の２-３個のピクセルのみが変化するであろう。しかしながら、この変化に基づいて、結果として生じる文書は元の文書からは著しく異なる。パーセンテージ閾値アルゴリズムはこの変化を登録せず、したがって表示エラーにつながる。パーセンテージ閾値アルゴリズムは、一般的には、変化したブロックの中のピクセル数を見るのみで、数個のピクセルがかなり変化したビデオ画像変化を認識することはできない。しかしながら、本発明によって使用されるＮＲＤＴサブアルゴリズムは、その２レベルの閾値のおかげで、ピクセルのこのようなブロックがビデオの連続フレームの間でかなり変化したことを認識するであろう。
【００７７】
平滑化
ＮＲＤＴサブアルゴリズムが、ピクセルのブロックが変化したと判断すると、このブロックを表すデジタルデータは平滑化サブアルゴリズムによってさらに処理する。このサブアルゴリズムは、アナログ対デジタル変換の間に入る雑音を削減する。
【００７８】
第１に、各デジタルピクセル表現はピクセルごとにより少ない量のビットを使用する表現に変換される。各ピクセルの各色を表現するためにより少ない数のビットの使用によりカラービデオを圧縮することは当技術分野で公知である。例えば、共通ビデオ規格はビデオ信号の赤の成分、緑の成分および青の成分のそれぞれを表すために８ビットを使用する。２４個の総ビットはピクセルを表現するために使用されるため、この表現は一般的には「２４ビットＲＧＢ表現」と呼ばれている。ピクセルの赤、緑および青の成分の４個の最上位ビットのみがすべての８個のビットに代わってその色を表現する場合、ピクセルのブロック、したがってビデオのフレームを表すために使用されるデータのサイズは５０パーセント削減される。
【００７９】
この圧縮の方法は簡略であり、一般的にはビデオの質を下げる。対照的に、本発明の平滑化サブアルゴリズムはさらにインテリジェントな圧縮方法を組み込む。この方法は、特定のＲＧＢ表現をよりコンパクトなＲＧＢ表現にマッピングするためにカラーコードテーブル(「CCT」)を使用する。本発明の圧縮アルゴリズムと解凍アルゴリズムの両方とも同じＣＣＴを使用する。ただし、使用可能な帯域幅、ローカルディスプレイ装置の機能等に応じて異なるカラーコードテーブルが選ばれてよい。
【００８０】
ピクセルのブロックごとにピクセル値のヒストグラムが作成され、平滑化サブアルゴリズムがどのくらい頻繁に各ピクセル値が発生するのかを判断できるように周波数単位で並べ替えられる。あまり頻繁にではなく発生するピクセル値は、より頻繁に発生するピクセル値に比較される。ピクセル値がどの程度類似しているのかを判断するために、各ピクセルの赤、緑および青(「ＲＧＢ」)の成分のカラー値に基づいて計算される。ヒストグラム分析中、カラーコード（つまりＣＣＴ）に対するＲＧＢ値のマップが作成される。あまり頻繁に発生しないピクセル値が類似したさらに頻繁に発生するピクセル値に調整される必要がある場合に、ＣＣＴはより頻繁に発生するピクセル値のカラーコードに、あまり頻繁に発生しないピクセルをマップするために使用される。このようにして雑音は各ブロックから効率的に削除され、各ピクセルを表すために使用されるビット数は削減される。
【００８１】
例示を目的として、８×８ピクセルブロックが処理中であると仮定する。さらに、カレントブロックの中の６４ピクセルの内、５９個が青、４個が赤、および１個がライトブルーであるとさらに仮定する。５という低い頻度閾値と２５という高い頻度閾値が使用されることも仮定する。言い換えると、ピクセル値が１つのブロックの中で５回未満発生すると、それは低頻度を有すると考えられる。同様にピクセル値が１つのブロックの中で２５回を超えて発生する場合、それは高頻度を有すると考えられる。本発明の好適実施形態では、平滑化サブアルゴリズムはこれらの２つの閾値の間で発生するピクセル値を無視する。したがって、現在の例では、平滑化サブアルゴリズムは、赤のピクセルとライトブルーのピクセルは低頻度で発生し、青のピクセルが高頻度で発生すると判断する。
【００８２】
次のステップで、４個の赤のピクセルおよび１個のライトブルーのピクセルという値が５９個の青のピクセルの値と比較される。このステップでは、所定の距離閾値が使用される。あまり頻繁ではないピクセル値とより頻繁なピクセル値の間の距離がこの距離閾値の範囲内にあると、あまり頻繁ではないピクセル値がより頻繁なピクセル値に変換される。したがって、我々の現在の例では、ライトブルーのピクセルは青のピクセルに値で十分に近く、その距離は距離閾値より少ない可能性がある。その結果としてライトブルーのピクセルは青のピクセルにマッピングされる。対照的に、赤のピクセルと青のピクセルの間の距離は距離閾値を超えているため、赤のピクセルは青のピクセルにマッピングされない。本発明の平滑化サブアルゴリズムを使用すると、赤のピクセルはめったに発生しないが、赤のピクセル値と青のピクセル値の間の距離は、赤のピクセルが青のピクセルに変換されないほど十分に大きい。このようにして、本発明の平滑化サブアルゴリズムは、ビデオ画像における本当の変化を保持しつつ、アナログ対デジタル変換で入る不必要な雑音により引き起こされる変化を排除することによって比較される画像の冗長性を高める。
【００８３】
キャッシング
平滑化サブアルゴリズムがデジタルビデオ画像データに適用された後、ビデオ画像を送信するために必要とされる帯域幅をさらに最小限に抑えるためにオプションのキャッシングサブアルゴリズムが適用されてよい。キャッシングサブアルゴリズムは過去に送信されたピクセルのブロックのキャッシュを使用する。ＮＲＤＴサブアルゴリズムと同様に、キャッシングサブアルゴリズムはビデオフレーム内のピクセルのブロックに対して実行される。再び、任意のブロックサイズが使用されてよい（例えば８×８、１６×１６、３２×３２または６４×３２）。
【００８４】
最初に、キャッシングサブアルゴリズムはキャッシュチェックを実行し、ピクセルのカレントブロックをキャッシュに記憶されているピクセルのブロックと比較する。キャッシュのサイズは任意の大きさであってよい。通常、キャッシュが大きいと「キャッシュヒット」の割合が高くなる。ただし、キャッシュのサイズが増大すると、メモリとハードウェアの要件が大きくなる。さらに比較の回数、したがって処理電力要件も、キャッシュのサイズが増大すると大きくなる。
【００８５】
ピクセルの一致するボックスがキャッシュ内に位置すると「キャッシュヒット」が発生する。「キャッシュミス」は、ピクセルの一致するブロックがキャッシュ内で検出されない場合に発生する。キャッシュヒットが発生すると、ピクセルの新しいブロックは再送される必要はない。代わりに、メッセージとキャッシュ入力識別(「ＩＤ」)は遠隔参加者装置に送信される。一般的には、このメッセージとキャッシュ入力識別は、ピクセルのブロック全体を送信するために必要とされる帯域幅より少ない帯域幅を消費する。
【００８６】
「キャッシュミス」が発生すると、ピクセルの新しいブロックが圧縮され、ユーザワークステーションに送信される。また、ＲＭＵとユーザワークステーションの両方とも、キャッシュ内にピクセルの新しいブロックを記憶することにより、そのそれぞれのキャッシュを更新する。キャッシュのサイズは制限されているため、より古いデータは上書きされる。当業者は、どの古いデータを上書きする必要があるのかを決定するために多様なアルゴリズムを使用できることを認識している。例えば、サンプルアルゴリズムは、キャッシュ内のピクセルの最も古いブロックを上書きするために利用でき、最も古いブロックは最近にではなく送信されたブロックとして定義される。
【００８７】
キャッシュヒットを検索するために、ピクセルの新しいブロックはキャッシュ内に位置するピクセルのすべての対応するブロックと比較されなければならない。これが実行されてよい複数の方法がある。一実施形態では、サイクリックリダンダンシーチェック（「ＣＲＣ」）がピクセルの新しいブロック、およびすべての対応するピクセルのブロックについて計算される。ＣＲＣはブロックのためのハッシュコードに類似している。ハッシュコードは、さらに大きなデータソースのより小さいが一意の表現である。したがって、ＣＲＣが一意である場合、キャッシュチェックプロセスはピクセルのブロック全体を比較する代わりに、一致がないか比較ＣＲＣを処理できる。ピクセルのカレントブロックのＣＲＣがキャッシュ内のピクセルのブロックのどれかのＣＲＣに一致する場合、「キャッシュヒット」が検出される。ＣＲＣはブロックのより小さな表現であるため、ＣＲＣの比較に必要とされる処理電力は少なくなる。さらに、ピクセルのブロックＣＲＣのみが遠隔参加者位置に記憶されるキャッシュを構築することができる。このようにしてピクセルの完全なブロックを比較する代わりにＣＲＣを比較することによりプロセッサの時間が節約され、したがって性能が改善される。
【００８８】
ビットスライシング／圧縮：
いったんＮＲＤＴサブアルゴリズム、平滑化サブアルゴリズム、およびオプションのキャッシングサブアルゴリズムが実行されると、送信されなければならないピクセルの各ブロックが圧縮される。本発明の好適実施形態では、各ブロックはＪＢＩＧ可逆圧縮アルゴリズムを使用して圧縮される。
【００８９】
ＪＢＩＧ圧縮アルゴリズムは、ファクシミリ機械により送信される画像等の黒い画像と白い画像用に作られていた。しかしながら、本発明により活用される圧縮アルゴリズムは、カラービデオ画像を圧縮、送信できる。したがって、ＪＢＩＧ圧縮アルゴリズムを活用しているときには、カラービデオ画像はビットスライシングされ、結果として生じるビット平面は別個に圧縮されなければならない。
【００９０】
カラービデオ画像のビット平面はカラービデオ画像の各ピクセルカラー値から単一ビットを抽出することにより作成される。例えば、ピクセルの色を表現するために８ビットが使用される場合には、カラービデオ画像は８ビット平面に分割される。圧縮アルゴリズムは、前述されたＣＣＴと関連して、最重要ビットを含むビット平面を最初に、第２に最上位のビットを含む平面を２番目に送信する等である。ＣＣＴは各ピクセルカラーの最上位ビットが最初に記憶され、より上位ではないビットが最後に記憶されるように作られている。その結果として、最初に送信されるビット平面はつねに最も重要なデータを含み、最後に送信されるビット平面はつねに最も重要ではないデータを含むであろう。このようにして、遠隔ビデオモニタはＲＭＵから漸次的にビデオを受信し、残りのビットを受信する前に画像の最上位ビットを受信し、表示する。このような方法は帯域幅の変化にあまり敏感ではなく、送信されるフレームのすべての詳細を待機する代わりに、ユーザがビデオのフレームを、それが送信されているときに見ることができるようにする。
【００９１】
ビデオ信号の圧縮が完了した後、結果として生じるビデオ信号は、開閉器３９０を介してイーサネットコネクタ２０５または接続ポートコネクタ２０６のどちらかに送信される。
【００９２】
図３Ａを参照し直すと、ＲＭＵ１０９はＲＭＵ１０９に電力を提供する電源２２１も備える。好ましくは、電源２２１は、メインの回路構成要素が故障した場合のバックアップ回路網を含む、冗長な電源である。電源２２１は電力ポート２２３を通して外部電源から電力を受け取る。ＲＭＵに対する電力は、ＣＰＵ２０７に直接的に接続されるリセット回路網２２５によって制御される。リセット回路網２２５は電源をオン／オフにし、ＲＭＵ１０９をリセットするために活用される。
【００９３】
ＲＭＵ１０９はＣＰＵ２０７に接続されているローカルＫＶＭポート２２７も含む。ローカルＫＶＭポート２２７は、ローカルキーボード１２３、ビデオモニタ１２７、およびカーソル制御装置１２５のケーブル１２９（図１）を介したＲＭＵ２２７への接続を可能にする。ローカルキーボード１２３、ビデオモニタ１２７、およびカーソル制御装置１２５が、取り付けられているシリアルデバイス１１１ａと１１１ｂ、サーバ１１３ａと１１３ｂ、コンピュータ１１５ａと１１５ｂ、および電源１１７のオンサイト制御に活用されてよい。
【００９４】
オプションメニュー回路２２９は、ＣＰＵ２０７の制御下で、本発明のユーザにオプションメニューを提供する。前述されたように、オプションメニューには、シリアルデバイス、遠隔サーバまたはコンピュータ、あるいは電源１１７に接続されている全デバイスに対する電力を制御するためのオプションが含まれている。
【００９５】
本発明のシステムを活用するために、ユーザは最初にユーザワークステーション１０１で遠隔管理セッションを開始し、必要とされるユーザ名とパスワードを入力する。ただし、認証情報の一意の組み合わせが活用される可能性がある。ユーザワークステーション１０１は入力された情報をパケット化し、通信回線１１９を介してそれをインターネット／ＬＡＮ／ＷＡＮ１０８に、次に通信回線１２１を介してＲＭＵ１０９に送る。入力されたデータはＲＪ−４５コネクタ２０１（あるいはＲJ−１１コネクタ２０２）を介してＣＰＵ２０７で受信される。イーサネットコネクタ２０５はネットワークプロトコルを削除し受信されたキーボード信号および／またはカーソル制御装置信号をＣＰＵ２０７に送信する。ＣＰＵ２０７はユーザを認証するためにシステムに記憶されているすべてのユーザプロファイルを含むルックアップテーブルを活用する。さまざまなユーザプロファイルには、システムへのさまざまなレベルのアクセスが与えられてよい。例えば、特定のユーザはコンピュータ１１５ａと１１５ｂのみにアクセスし、操作することが可能で、操作サーバ１１３ａと１１３ｂ、シリアルデバイス１１１ａと１１１ｂおよび電源１１７からは制限されている。
【００９６】
ユーザはいったん認証されると、オプションメニュー回路２２９がＲＭＵ１０９に取り付けられているすべての装置を含むオプションメニューを作成する。この場合、取り付けられている装置はシリアルデバイス１１１ａと１１１ｂ、サーバ１１３ａと１１３ｂ、コンピュータ１１５ａと１１５ｂ、および電源１１７を含む。ただし、ＲＭＵ１０９が任意の数のシリアルデバイス、サーバ、コンピュータおよび関連する電源を収容してよいことは当業者には明らかとなるであろう。オプションメニュー回路２２９により作成されるオプションメニューはビデオプロセッサ２１２によって圧縮され、イーサネットコネクタ２０５によってパケット化されてから、ＲＪ−４５コネクタ２０１、通信回線１２１、インターネット／ＬＡＮ／ＷＡＮ１０８、および通信回線１１９の順序でユーザワークステーション１０１に送信される。該オプションメニューはデパッケト化され、ビデオモニタ１０５上での表示のためにユーザワークステーション１０１で解凍される。次にユーザはオプションメニューから所望される装置を選択するためにキーボード１０３とカーソル制御装置１０７を活用する。ユーザにより入力されるキーボードとカーソル制御装置の信号は次にユーザワークステーション１０１により符号化され、インターネット／ＬＡＮ／ＷＡＮ１０８を介してＲＭＵ１０９に送信され、以後ＲＭＵ１０９に配置されるＣＰＵ２０７によって復号される。ＣＰＵ２０７は受信されたキーボード信号とカーソル制御装置信号を解釈し、前述されたように選択された装置を用いてユーザを接続する。
【００９７】
ユーザがサーバ１１３ａまたは１１３ｂまたはコンピュータ１１５ａおよび１１５ｂと接続されることを選択する場合、選択された装置のビデオ信号がビデオモニタ１０５に表示される。ビデオ信号は初期にＫＶＭポート２１９で選択された装置から到着し、ＫＶＭポートヘッダ２１７に送られる。ビデオ信号は次にデジタル信号にアナログビデオ信号を変換するフレーム取り込み器２１５に送られる。結果として生じるデジタル化されたビデオ信号は次にＰＣＩライザーカード２０９を通してＣＰＵ２０７に送られる。ＣＰＵ２０７は次にビデオ信号を送信するための正しい場所を決定する（つまりローカルＫＶＭポート２２７またはビデオプロセッサ２１２に）。ビデオ信号がローカルＫＶＭポート２２７に送られると、ビデオ信号がローカルビデオモニタ１２７に表示される。代わりにビデオ信号がビデオプロセッサ２１２に送られる場合、それはＲＪ−４５ポート２０１またはＲＪ−１１ポート２０２のどちらかを通して通信回線１２１を介する伝送のために、ビデオプロセッサ２１２によって圧縮され、イーサネットコネクタ２０５または通信ポートコネクタ２０６のどちらかによりパケット化される。イーサネットコネクタ２０５または通信ポートコネクタ２０６は、ユーザワークステーション１０１への伝送のために任意の他の信号（つまりキーボード信号、カーソル制御装置信号等）を圧縮されたビデオ信号の上に付加する。
【００９８】
別の接続されている装置に切り替えるために、ユーザはユーザワークステーション１０１（図１）に取り付けられている「印刷画面」またはキーボード１０３上の「Ｆ１」等の「ホットキー」を押す。これにより、オプションメニュー２２９はユーザに新しいシリアルデバイス、サーバ、コンピュータを選択する、あるいは接続されている装置の１つの電源を修正できるようにする。
【００９９】
ここで図４を参照すると、本発明の好適実施形態でビデオプロセッサ２１２により活用される圧縮アルゴリズムの動作を示すフローチャートが描かれている。圧縮アルゴリズムはビデオプロセッサ２１２（図３）によってＲＭＵ１０９の内部で実行される。デジタル化されたビデオ信号は、当初、フレームバッファ３８０の内の１つである（図３Ｄ）未処理フレームバッファに記憶される（ステップ４０２）。この点で、圧縮アルゴリズムは、未処理フレームバッファに含まれている捕捉されたビデオデータを処理し、ユーザワークステーション１０１への伝送のためにそれを作成するために実行される。
【０１００】
圧縮アルゴリズムの第１のステップはＮＲＤＴ（ステップ４０３）である。ＮＲＤＴサブアルゴリズムはビデオプロセッサ２１２（図３）によってＲＭＵ１０９の内部でも実行される。ＮＲＤＴサブアルゴリズムは、やはり前述されたように、存在する場合どのピクセルのブロックがカレントフレームと比較フレームの間で変化したのかを判断する。
【０１０１】
好適実施形態では、ビデオフレームは最初に６４×３２ピクセルブロックに分割される。次に、ＮＲＤＴサブアルゴリズムはピクセルの各ブロックに独立して適用される。本発明の代替実施形態は、所望されるビデオ解像度、使用可能な帯域幅等の基準に応じてさらに小さいブロックまたはさらに大きいブロックを活用してよい。
【０１０２】
次に、ＮＲＤＴサブアルゴリズムはカレントフレームの中のピクセルのブロックと比較フレームの中のピクセルの対応するブロックの間で差異が存在するかどうかを判断するために２閾値モデルを利用する。２閾値モデルとはピクセル閾値とブロック閾値である。
【０１０３】
第１に、ピクセルブロックの各ピクセルは、そのピクセルが比較フレームの該対応するブロックの該対応するピクセルを基準にして変化したかどうかを判断するために調べられる。対応する比較ピクセルに関する各ピクセルの三色（つまり、赤、緑、および青）のそれぞれの距離値は、図７に関してさらに詳しく後述されるように計算される。距離値がピクセル閾値（つまり２閾値モデルの第１の閾値）より大きい場合、この距離値は距離合計値に加算される。
【０１０４】
次に、ピクセルブロックの中のすべてのピクセルが調べられた後に、結果として生じる距離合計値がブロック閾値（つまり２閾値モデルの第２の閾値）より大きい場合、ブロックは変化したと判断される。ビデオフレームの中のピクセルのあらゆるブロックが同じプロセスを経る。したがって、このプロセスがビデオフレーム全体に適用された後、プロセスは、プロセスが過去のビデオフレーム以来変化したと判断したすべてのピクセルブロックを識別するであろう。この時点で、比較フレームは変化したピクセルブロックで更新される。ただし、カレントフレームの未変更ピクセルブロックに対応する比較フレームのピクセルブロックは未変更のままとなる。このようにして、ＮＲＤＴサブアルゴリズムによって使用される二閾値モデルは、アナログからデジタルへの変換の間に生じる雑音により導入されるピクセル値の変化を排除し、ビデオフレームの中の本当の変化も捕捉する。
【０１０５】
ビデオデータは、ＮＲＤＴサブアルゴリズムによって処理された後、次に平滑化サブアルゴリズムによって処理される（ステップ４１９）。平滑化サブアルゴリズムは、アナログからデジタルへの変換中に生じる雑音により引き起こされるビデオ画像の粗さを削減することによって平滑でより高品質のビデオ画像を作成することを目的とする。
【０１０６】
平滑化サブアルゴリズムは最初に、ＮＲＤＴサブアルゴリズムの結果生じたピクセル表現を各ピクセルを表現するために使用するビット量がさらに少ないピクセル表現に変換する。これはピクセル表現のサイズを最小限に抑えるために特に編成されるＣＣＴを使用して実行される。平滑化サブアルゴリズムは、最も一般的に使用される色に最も少ない数の１ビットでカラーコードを選ぶためにＣＣＴを使用する。例えば、白と黒は非常に一般的な色であると仮定される。したがって、白はつねに０を割り当てられ、黒はつねに１を割り当てられる。すなわち、白はすべての平面上で０というビット値で表現される。黒、つまり次に最も一般的な色は１つの平面を除きすべてで１というビット値として表示される。これにより圧縮アルゴリズムにより圧縮されるデータ量が削減される。次に、ブロックの中のピクセルごとに、カラーコードが割り当てられる。同時にカラーコードのヒストグラムがピクセルのブロック内の一意の色のそれぞれの発生回数を記憶するために作成される。カラーコードのこのヒストグラムは次に最も少ない発生回数から優勢な発生回数へのカラーコードのリストを作成するために並べ替えられる。
【０１０７】
いったんカラーコードの並べ替えられたリストが作成されると、次のステップは色をマージすることである。並べ替えられたリストの始めから作業すると、平滑化サブアルゴリズムは最も頻繁に発生しない色を、最も頻繁に発生する色に比較する。あまり頻繁に発生しない色がより頻繁に発生する色に非常に類似している場合には、あまり頻繁に発生しない色を有するピクセルはより頻繁に発生する色に変更される。２つの色が類似しているかどうかの判断は、ＲＧＢ空間の三次元の点の間の距離を計算することにより実行される。公式は、
【数１】
2007524284.tif 000003
であり、ここではＤは距離であり、Ｒ１は低頻度ピクセルの赤の値であり、Ｒ２は高頻度ピクセルの赤の値であり、Ｇ１は低頻度ピクセルの緑の値であり、Ｇ２は高頻度ピクセルの緑の値であり、Ｂ１は低頻度ピクセルの青の値であり、Ｂ２は高頻度ピクセルの青の値である。距離が距離閾値内にある場合、２つの色は類似していると判断される。本発明の好適実施形態では、システム性能は距離閾値を二乗し、ＲＧＢ差異の二乗和とこの値を比較することによって高められる。このステップにより、より多くの量の処理時間を必要とする合計の二乗根を取ることが排除される。
【０１０８】
ピクセルの各ブロックは雑音がないかフィルタリングされ、ＲＧＢ表現からカラーコード表現に変換される。アナログ信号からデジタル信号への変換中にＬＣＤコントローラ２１５（図３）によって生じる雑音はいくつかのピクセルの値を歪める。したがって、平滑化サブアルゴリズムが歪められたピクセルを補正する。平滑化サブアルゴリズムは、各ビデオ画像ブロックに存在する異なる色の数を削減することによって雑音を最小限に抑える。さらにこのような平滑化は冗長性がより大きい画像を生じさせ、したがってさらに高い圧縮率を生じさせる。
【０１０９】
平滑化後、キャッシングが実行される（ステップ４２１）。キャッシングはＲＭＵ１０９（図３）のビデオプロセッサ２１２により実行される全体的な圧縮アルゴリズムのサブアルゴリズムである。キャッシングは最近送信された画像のキャッシュを保持するためにＲＭＵ１０９（図３）を必要とする。このようなキャッシュはＲＡＭ３８６（図３Ｄ）で実現、記憶できる。キャッシングサブアルゴリズムは、最近のピクセルのブロックを、キャッシュに記憶されているビデオ画像の中のピクセルの対応するブロックと比較する（ステップ４０５）。最近送信されたピクセルのブロックがキャッシュに記憶されているピクセルの対応するブロックの１つと同じである場合、キャッシングサブアルゴリズムはビデオ画像のこの部分を再送しない。代わりに、最近送信されたブロックがすでにキャッシュに記憶されている（ステップ４０７）を示す「キャッシュヒット」メッセージがユーザワークステーション１０１に送信される。「キャッシュヒット」メッセージは、どのキャッシュがピクセルの対応するブロックを含むのかに関する情報を含み、それによりユーザワークステーション１０１はそのキャッシュからピクセルのブロックを検索し、その取り付けられているビデオディスプレイ装置で表示するためのビデオ画像を生成するためにそれを使用することができる。
【０１１０】
プロセスの中の次のステップ、ステップ４０９は、ＮＲＤＴが、ピクセルのブロックが比較フレームのピクセルの対応のブロック以来変化したかどうかを判断する。このステップはステップ４０５の前にまたはこのステップと平行して実現することもできる。またステップ４２１、４０５および４０７は完全に排除されてよい。
【０１１１】
ステップ４０９の主要な目的は前回フレームからブロックが変化したかどうかを判断することである。ブロックが変化していない場合には、ユーザワークステーション１０１に更新済みのブロックを送信するニーズがある。それ以外の場合、ピクセルのブロックが変化した場合には、それは圧縮のために準備される（ステップ４１１）。好適実施形態では、ステップ４０９はステップ４０５以外の異なる技法を使用する。冗長性がないかチェックする２つの方法を用いると、高い方の圧縮が生じる。ステップ４０９と４１１の両方ともビデオプロセッサ２１２のマイクロプロセッサ３８８によって実行されるキャッシングサブアルゴリズムによって実行される（図３Ｄ）。
【０１１２】
変化した画像のあらゆる領域について、キャッシュは更新され、データはサーバスタックに送信される前に圧縮される。好適実施形態では、画像はＩＢＭ  ＪＢＩＧ圧縮アルゴリズムを使用して圧縮される。ＪＢＩＧは黒い画像と白い画像を圧縮することを目的としている。しかしながら、本発明はカラービデオ画像を送信することを目的としている。したがって、画像のビット平面が抽出され（ステップ４１１）、各ビット平面が別個に圧縮される（ステップ４１３）。最後に、圧縮された画像は、開閉器３９０（図３Ｄ）にデータを送信するサーバスタック４１７（ステップ４１５）に送信される。
【０１１３】
図５Ａと図５Ｂは、圧縮プロセスの好適実施形態の詳細なフローチャートを提供する。捕捉されたビデオ画像のデジタル表現は転送され、フレームバッファ０  ５０３またはフレームバッファ１  ５０５のどちらかに記憶される。フレームバッファは、ビデオの１つのフレームを記憶できるメモリの領域である。２つのフレームバッファを使用すると画像データのより高速の捕捉が可能になる。ビデオの捕捉されたフレームは交互にフレームバッファ０  ５０３とフレームバッファ１  ５０５に記憶される。これによって、圧縮が過去のビデオのフレームで実行されている間にビデオの次のフレームを捕捉できるようになる。ビデオプロセッサ２１２では、フレームバッファ０  ５０３とフレームバッファ１  ５０５はフレームバッファ３８０の一部を備える（図３Ｄ）。
【０１１４】
ＮＲＤＴ試験は、フレームバッファ０  ５０３とフレームバッファ１  ５０５に記憶されるピクセルの各ブロックで実行され（ステップ５１９）、捕捉されたビデオ画像の各ブロックを過去に捕捉されたビデオ画像の対応するブロックに比較する。ステップ５１９はカレント未処理フレームバッファ（つまりフレームバッファ０  ５０３またはフレームバッファ１  ５０５）に記憶されているビデオ画像からのピクセルのブロックを、比較フレームバッファ５２１に記憶されるピクセルの対応するブロックに比較する。このステップは図６Ａと図６Ｂに関してさらに詳しく後述される。
【０１１５】
ステップ５１９が、ピクセルのカレントブロックが変化したと判断した場合、最も近い色の一致関数が、フラッシュメモリ２３９（図３）に記憶されているクライアントカラーコードテーブル（「クライアントからのＣＣＴ」）５１１に含まれている情報に関連してフレームバッファ０  ５０３とフレームバッファ１  ５０５（ステップ５０９）に含まれているビデオ画像を処理する。最も近い色一致関数はマイクロプロセッサ３８８によってソフトウェアとして実行できる。最も近い色一致関数の詳細な説明は図６に関して以下に示される。
【０１１６】
最も近い色一致関数によってＣＣＴ５１３から得られるＣＣＴはカラーコード変換（ステップ５１５）のために使用され、ビデオデータを表現するために必要とされるデジタルデータの量を削減するためにピクセルの変化したブロックの各ピクセルのデジタルＲＧＢ表現を変換する。カラーコード変換（ステップ５１５）は、ＮＲＤＴサブアルゴリズム（ステップ５１９）が、過去に捕捉されたビデオ画像を基準にして変化したと判断するピクセルのブロックを受信する。カラーコード変換は、次にこのデジタルデータをさらにコンパクトな形式に変換し、結果をコード化フレームバッファ５１７に記憶する。コード化フレームバッファ５１７は、ＲＡＭ３８６（図３Ｄ）の一部として実現できる。
【０１１７】
代わりに、ステップ５０９と５１５は、ステップ５１９と平行して実行されてよい。これらのステップを並列で実行すると、変化したピクセルのブロックごとに必要とされる処理時間が短縮される。このシナリオでは、ステップ５０９と５１５は変化したピクセルのブロックを見越して実行される。これが当てはまる場合、ステップ５０９と５１５のための処理は、ステップ５１９のための処理が完了すると同時に完了されてよい。したがって、アルゴリズムはステップ５０９と５１５の処理を待機する必要なく、ステップ５０９からステップ５２３に直接的に移動してよい。それ以外の場合、ステップ５９１が、ピクセルのブロックが変化しなかったと判断し、したがってステップ５０９と５１５の結果が必要とされない場合、これらの結果は単に破棄されてよい。
【０１１８】
ステップ５１５の完了時、キャッシングはサイクリックリダンダンシーチェック（ＣＲＣ）（ステップ５２３）を実行することにより開始する。サイクリックリダンダンシーチェック（ＣＲＣ）はある特定のデータのブロックのチェックサムまたはハッシュコードを作成するために当技術分野で公知の方法である。ＣＲＣは、データの２つのブロックについて計算され、次に比較されてよい。ＣＲＣが一致すると、ブロックは同じである。したがって、ＣＲＣは一般的にエラーがないかチェックするために使用される。本発明では、ＣＲＣはキャッシュに記憶されるピクセルのブロックとピクセルのブロックを比較するために使用される。したがって、ステップ５２３では、ＣＲＣはＮＲＤＴサブアルゴリズムによって変化したと判断されたピクセルの各ブロックについて計算される。ＣＲＣのアレイはＣＲＣアレイ５２５に記憶される。
【０１１９】
次に図５Ｂを見ると、キャッシングサブアルゴリズムとビットスプライシング／圧縮サブアルゴリズムの概要が描かれている。アルゴリズムのこの部分はコード化フレームバッファ５１７とＣＲＣアレイ５２５からの情報を待機し始める（ステップ５２７）。次に、新しいビデオモードが宣言されたかどうかに関する決定が下される（ステップ５２９）。新しいビデオモードは、例えば、ユーザワークステーション１０１がさまざまな帯域幅または色の要件を有する場合に宣言できる。新しいビデオモードが宣言されている場合、すべてのデータは無効にされ（ステップ５３１）、サブアルゴリズムはステップ５２７に戻り、コード化フレームバッファ５１７とＣＲＣアレイ５２５から新しい情報を待機する。ＬＣＤコントローラ２１５内に配置されるダウンスケーラ回路３６２および／またはアップスケーラ回路３６４は、新しいビデオモードと互換性があるように出力されたデジタル化されたビデオを調整するために活用されてよい。ステップ５２７、５２９、および５３１はマイクロプロセッサ３８８（図３Ｄ）によって実行される全体的な圧縮アルゴリズムのすべてのステップである。
【０１２０】
ステップ５２９において、新しいビデオモードが宣言されていないと考えられる場合には、ピクセルのＣＲＣのカレントブロックのキャッシュに入れられたＣＲＣとの比較が実行される（ステップ５３３）。このブロックは、ＣＲＣアレイ５２５に含まれるカレントビデオフレームのＣＲＣデータを、ブロック情報アレイ５３５に含まれる過去のＣＲＣのキャッシュと比較する。ブロック情報アレイ５３５はピクセルブロックのキャッシュおよびピクセルブロックのＣＲＣを記憶し、ＲＡＭ３８６内の装置として実現できる（図３Ｄ）。ステップ５３３はマイクロプロセッサ３８８（図３Ｄ）によって実行される全体的な圧縮アルゴリズムの一部でもある。
【０１２１】
次にピクセルのカレントブロックがブロック情報アレイ５３５に含まれるピクセルブロックキャッシュ内に配置される場合（ステップ５３７）、キャッシュヒットメッセージはワークステーション１０１に送信され、ピクセルのブロックは完了、つまり処理済みとマークされる（ステップ５３９）。ユーザワークステーション１０１はＲＭＵ１０９（図３Ｄ）と同じピクセルブロックキャッシュを含むので、キャッシュヒットメッセージは、処理されたピクセルのブロックに対応するビデオ画像の部分を作成するためにキャッシュに含まれるピクセルの特殊ブロックを使用するようにユーザワークステーション１０１に命令するに過ぎない。
【０１２２】
次に、ピクセルの未処理ブロックについてチェックが実行される（ステップ５３９）。処理される、または更新される必要のあるピクセルのすべてのブロックは次更新矩形計算(a compute next update rectangle)を作成するために結合される。更新するものがない場合（つまり、ビデオがフレーム間で変化していない場合）には、アルゴリズムはステップ５２７に戻る（ステップ５４３）。したがってカレントフレームは遠隔参加者装置に送信されない。ビデオのカレントフレームの再送を排除することによって、サブアルゴリズムはビデオを送信するために必要とされる帯域幅を削減する。
【０１２３】
しかしながら、更新される必要がある画像の領域がある場合、更新矩形は最初に圧縮される。更新矩形は最初にビットスライシングされなければならない（ステップ５４５）。更新矩形のビット平面は更新矩形の各ピクセルから同じビットを採取することにより構築される。したがって、更新矩形が８ビットのピクセルを含む場合、それは８つのビット平面に分解できる。結果として生じるビット平面はビット平面バッファ５４７に記憶される。再び、ステップ５４１、５４３および５４５は、ＲＭＵ１０９（図３）のマイクロプロセッサ３８８により実行されるビットスプライシング／圧縮のサブアルゴリズムすべての部分である。
【０１２４】
各ビット平面は、圧縮サブアルゴリズム（ステップ５４９）によって別々に圧縮される。この場合、圧縮は各ビット平面上で実行され、結果として生じるデータはサーバスタック４１７に送信される（ステップ５５１）。好適実施形態では、圧縮はビデオ圧縮装置３８２（図３）（ステップ５４９）によって実行される。それ以後、圧縮されたビット平面は開閉器３９０に送信される（図３Ｄ）。
【０１２５】
好適実施形態は毎秒２０回フレームを捕捉するので、ビデオフレームキャプチャの間に３００ｍｓ待機することが必要である。したがって、アルゴリズムは、サブアルゴリズムをステップ５２７に戻す前に、過去のフレームキャプチャから３００ｍｓが経過するまで待機する（ステップ５５３）。
【０１２６】
ここで図６を参照すると、ＣＣＴを使用してあまり頻繁に発生しない色をより頻繁に発生する色に選択的にマッピングする最も近い一致関数（図５のステップ５０９）が描かれている。最も近い色一致関数５０９はフレームバッファ０  ５０３またはフレームバッファ１  ５０５に記憶されるビデオ画像のピクセルの各ブロックを連続して処理する。図６に示されるように、ピクセルのブロックはフレームバッファ０  ５０３またはフレームバッファ１  ５０５（ステップ６００）に記憶されるビデオ画像から抽出される。好適実施形態では、抽出されたブロックは６４×３２ピクセルというサイズを有するが、任意のブロックサイズが活用されてよい。
【０１２７】
最も近い色一致関数は、あまり頻繁に発生しないピクセル値を、類似したより頻繁に発生するピクセル値に変換することによってＡ／Ｄ変換により生じた雑音を排除する。関数はヒストグラム分析および差異計算を活用する。最初に、最も近い色一致関数５０９はピクセル値のヒストグラムを作成する（ステップ６０１）。ヒストグラムはステップ６００の間に抽出されるピクセルのブロック内での各ピクセル値の頻度を測定する。ヒストグラムは並べ替えられ、その結果頻繁に発生する色のリスト（人気のある色のリスト６０３）および最も頻繁に発生しない色のリスト（希少な色のリスト６０５）が作成される。リストごとの閾値は調整可能である。
【０１２８】
最も近い色一致関数５０９は、ピクセルが頻繁に派生する値にマッピングされるべきであるかどうかを判断するために各低頻度発生ピクセルを分析する。最初に、ピクセル値は希少色リスト６０５（ステップ６０７）から選ばれる。次にピクセル値は人気色リスト６０３から選ばれる（ステップ６０９）。これらの２つの値の間のこれらの距離が次に計算される（ステップ６１１）。このプロセスでは、距離は２個のピクセルの別々の赤、緑、および青の値を比較することによって計算される測定基準である。距離値Ｄは種々の方法で計算されてよい。１つのこのような例は以下のとおりである。
【数２】
2007524284.tif 000004
この式では、Ｒ１は低頻度ピクセルの赤の値であり、Ｒ２は高頻度ピクセルの赤の値であり、Ｇ１は低頻度ピクセルの緑の値であり、Ｇ２は高頻度ピクセルの緑の値であり、Ｂ１は低頻度ピクセルの青の値であり、Ｂ２は高頻度ピクセルの青の値である。
【０１２９】
この式は、あまり頻繁に発生しないピクセル対より頻繁に発生するピクセル等、２つのベクトルの色の類似性または差異の規模を示す距離値Ｄを生じさせる。サブアルゴリズムの目標は、あまり頻繁に発生しないピクセルの色に比較されるときに、最低の距離値を生じさせる色を有するより頻繁に発生するピクセルを見つけることである。したがって、比較は計算された距離値ごとに実行される（ステップ６１３）。すべての過去の距離値未満である距離値が計算されるたびに、距離値は最も近い距離変数に書き込まれる（ステップ６１５）。
【０１３０】
いったんすべてのより頻繁に発生するピクセルがあまり頻繁に発生しないピクセルに比較されたと判断されると（ステップ６１７）、最低の発生Ｄが所定の閾値の範囲内にあるかどうかを判断するために計算が実行される（ステップ６１９）。このＤが所定の閾値の範囲内にある場合、ＣＣＴ５１３は低頻度で発生するピクセルを、このＤ値を生じさせた高頻度で発生するピクセルのカラーコード値にマッピングすることにより更新される（ステップ６２１）。このプロセスは、すべての低頻度ピクセルについて繰り替えされ、ＣＣＴ５１３は相応して更新される。
【０１３１】
図７を見ると、ＲＧＢ  ＮＲＤＴステップ５１９（図５Ａ）がさらに詳細に描かれている。このプロセスはピクセルのすべてのブロックで動作する。カレントピクセルブロック７００はカレントフレームバッファ（つまりフレームバッファ０  ５０３またはフレームバッファ１  ５０５（図５Ａ））に含まれているビデオ画像のピクセルのブロックを表現する。過去のピクセルブロック７０１は比較フレームバッファ５２１（図５Ａ）に含まれているビデオ画像のピクセルの対応するブロックを含む。ステップ５１９は、カレントピクセルブロック７００と過去のピクセルブロック７０１から１つのピクセルに対応するピクセル値を抽出することにより開始する（ステップ７０３）。それから、ピクセル色値は、２個のピクセルの色の間の類似性または差異の大きさを示す距離値を計算するために使用される（ステップ７０５）。本発明の好適実施形態では、距離値は以下の式を使用して計算される。
【数２】
2007524284.tif 000005
【０１３２】
前述のように、Ｒ１、Ｇ１およびＢ１は、フレームバッファピクセルのそれぞれ赤の値、緑の値、および青の値である。同様に、Ｒ２、Ｇ２およびＢ２は比較フレームバッファピクセルのそれぞれ赤の値、緑の値、および青の値である。
【０１３３】
次に、計算された距離値Ｄはピクセル閾値と比較される（ステップ７０７）。Ｄがピクセル閾値より大きい場合には、それは蓄積する距離合計に加算される（ステップ７０９）。Ｄの値がピクセル閾値未満である場合、差異は重要ではない（つまり雑音）であると考えられ、距離合計に加算されない。
【０１３４】
距離値を計算し、所定のピクセル閾値より大きい距離値を合計するこのプロセスは、ピクセルのブロックの最後のピクセルが処理されたと判断されるまで続行する（ステップ７１１）。いったん最後のピクセルに達すると、距離合計は第２の閾値、つまりブロック閾値と比較される（ステップ７１３）。距離合計がブロック閾値を上回っている場合は、過去に捕捉されたフレームから、ピクセルの対応するブロックに比較してピクセルのカレントブロックが変化したと指定される。それ以外の場合、距離合計がブロック閾値未満である場合、ピクセルのブロックは未変更として指定される。
【０１３５】
ピクセルのブロックが変化したと指定される場合、ステップ７１５が実行される。ステップ７１５は、ピクセルの特定のブロックが変化したことを示すフラグをセットする。さらに、ピクセルの新しいブロックが比較フレームバッファ５２１（図５Ａ）に書き込まれ、ピクセルの対応する過去のブロックを置換する。
【０１３６】
それ以外の場合、距離合計がブロック閾値を超えない場合、ブロックは未変化と指定され、フラグは、ピクセルのこのブロックが遠隔参加装置に再送される必要がないことを示すためにセットされる（ステップ７２１）。むしろ、遠隔参加装置は、ビデオの過去のフレームについて表示されるピクセルの同じブロックを使用してピクセルのブロックにより表現されるビデオ画像の部分を作成し直す。この時点で、システムは、図５Ａに関して前記にさらに詳細に説明されたように、ピクセルの変化したブロックについてＣＲＣを計算する（図５Ａのステップ５２３）。
【０１３７】
図８は、図７に示されるＮＲＤＴサブアルゴリズムによって使用される２レベルの閾値化をさらに図解する。例示的な目的のためだけに、ピクセルの４×４のブロックが示されている。各ピクセルは当技術分野で一般的に実行されるように０から２５５の範囲となる赤、緑および青の色値を与えられる。０という赤、緑および青の値を有するピクセルは黒のピクセルを表現するのに対し、２５５という赤、緑および青の値を有するピクセルは白のピクセルを表現する。過去のピクセルブロック７５１は比較フレームバッファ５２１（図５Ａ）から取り込まれたピクセルのブロックである。過去のピクセル１  ７５２は過去のピクセルブロック７５１の左上角のピクセルである。過去のピクセルブロック７５１のあらゆるピクセルは０という値を有するので、過去のピクセルブロック７５１は完全に黒い４×４ピクセル領域を表現する。
【０１３８】
カレントピクセルブロック７５３は、過去のピクセルブロック７５１と、ビデオフレームの同じ空間領域を表現するが、それは１フレーム遅い。ここではカレントピクセル１  ７５４が過去のピクセル１  ７５２と同じピクセル１であるが、１フレーム遅い。簡単にするために、白いカーソル等の小さな白いオブジェクトが過去のピクセルブロック７５１によって表現されるビデオ画像の領域に入ると仮定する。この変化はカレントピクセルブロック７５３のカレントピクセル１  ７５４で発生する。カレントピクセルブロック７５３では、ピクセルの過半数は黒のままであるが、カレントピクセル１  ７５４は、２５５、２５５、および２５５というＲＧＢ色値によって表されるように、現在白である。
【０１３９】
雑音がＡ／Ｄ変換により生じ、その結果過去のピクセル７５５が、０，０、および０というそのＲＧＢ値によって表されるように黒から灰色に変化したとさらに仮定する。新しい灰色はカレントピクセル７５６に割り当てられる２、２および２というＲＧＢ値によって表される。
【０１４０】
ピクセル閾値が１００であり、ブロック閾値が２００であるとさらに仮定する。ＮＲＤＴサブアルゴリズムはカレントピクセルブロック７５３と過去のピクセルブロック７５１の各ピクセルの間の距離値を計算する。図７に関して前述されたように、本発明の好適実施形態で使用される式は、以下のとおりである。
【数２】
2007524284.tif 000006
したがって、カレントピクセル１  ７５４と過去のピクセル１  ７５２の間の距離値は以下のとおり、
【数３】
2007524284.tif 000007
つまり１９５，０７５である。１９５，０７５は１００というピクセル閾値を超えているため、この距離値は距離合計に加算される。しかしながら、前記の距離の式を使用して計算されるようにピクセル間の距離は、１００というピクセル閾値を上回っていない１２に等しいために、黒い過去のピクセル７５５と灰色のカレントピクセル７５６の間の距離値は距離合計に加算されない。同様に、距離値は２個のピクセルブロックの中の残りのピクセルのすべてについて計算される。これらの距離値のそれぞれはゼロに等しい。したがって、これらの距離値はピクセル閾値未満であるので、それらは距離合計に加算されない。
【０１４１】
その結果として、すべてのピクセルの距離値が処理された後で、距離合計は１９５，０７５に等しくなる。この値は２００というブロック閾値を上回っているので、ブロックが指定される。この例はＮＲＤＴサブアルゴリズムの２レベル閾値化特徴の優位点を図解している。すなわち、カレントピクセルブロック７５３のカレントピクセル７５６で発生した雑音が無視されたのに対し、カレントピクセルブロック７５３のカレントピクセル１  ７５４で発生したビデオの本物の変化が認識された。
【０１４２】
最後に図９を見ると、ユーザワークステーション１０１（図１）によって実行される解凍アルゴリズムのフローチャートが示されている。解凍アルゴリズムはメッセージを待機することにより開始する（ステップ８０１）。このメッセージはＲＭＵ１０９のサーバスタック４１７からユーザワークステーション１０１に送信される。その後、ユーザワークステーション１０１は情報を受け取り、データをクライアントスタック８０３に書き込む。クライアントスタック８０３は、デジタルデータを恒久的にまたは一時的に記憶することができるレジスタまたは他の何らかのデバイスであってよい。本発明の一実施形態では、メッセージがＴＣＰ／ＩＰ通信プロトコルを使用して送信される。このシナリオでは、クライアントスタック８０３はローカルＴＣＰ／ＩＰスタックである。他の実施形態はＴＣＰ／ＩＰ以外のプロトコルを使用してよい。しかしながら、通信プロトコルに関係なく、本発明は処理のために受信されたメッセージを記憶するためにクライアントスタック８０３を使用する。
【０１４３】
メッセージはいったんクライアントスタック８０３で受信されると、それは、メッセージが新しいビデオモードメッセージであるかどうかを判断するために処理される（ステップ８０５）。新しいビデオモードメッセージは、帯域幅変化、画面解像度または色の深みの変化、新しいクライアント等を含む種々の理由のために送信されてよい。このリストは新しいビデオモードメッセージを送信するための理由を限定することを目的とするのではなく、代わりにそれがいつ発生するのかの例を示す。メッセージが新しいビデオモードメッセージである場合、アプリケーション層８２３は新しいビデオモードを通知される（ステップ８０７）。好適実施形態に従って、アプリケーション層８２３は、ユーザワークステーション１０１の入力装置と出力装置（つまり、キーボード１０３、ビデオモニタ１０５、およびカーソル制御装置１０７）と接続するユーザワークステーション１０１によって実行されるソフトウェアである。したがって、あらゆるビデオ更新がアプリケーション層８２３に送信されなければならない。また、過去に送信されたフレームを記憶すること専用のすべてのメモリを含む古いバッファが解放され、新しいバッファが割り当てられる（ステップ８０９）。次に解像アルゴリズムはステップ８０１に戻る。
【０１４４】
新しいメッセージがビデオモードメッセージではない場合、それがキャッシュヒットメッセージであるかどうかを判断するために、メッセージはさらに処理される（ステップ８１１）。イエスの場合、キャッシュヒットメッセージは３つのキャッシュフレームバッファ８１５に記憶されているピクセルのブロックの内、どのピクセルのブロックがビデオ画像のそれぞれの部分を再構築するために使用されなければならないのかを判断するために解読される。本発明の好適実施形態では３個のキャッシュフレームバッファ８１５が使用されるが、本発明の精神から逸脱することなく任意の量のキャッシュフレームバッファが使用されてよい。キャッシュフレームバッファ８１５は、ＲＭＵ１０９（図３）に内部に配置されるキャッシュフレームバッファに記憶されるピクセルの同じブロックを記憶する。したがって、キャッシュヒットメッセージはビデオデータを含まないが、むしろ単に遠隔参加者装置に、キャッシュフレームバッファ８１５に含まれているピクセルのどのブロックがマージフレームバッファ８１７に送信されるべきかに関して命令する。指定されたキャッシュの中に含まれるピクセルのブロックは、次にキャッシュフレームバッファ８１５からマージバッファ８１７にコピーされる（ステップ８１３）。最後に、アプリケーション層８２３は、ビデオ画像の領域は更新されたことを通知される（ステップ８２５）。マージバッファ８１７はカラーコードピクセル内のビデオのフレーム全体の現在の表現を含む。アプリケーション層８２３はマージバッファ８１７からピクセルデータをコピーし、接続されているビデオモニタ１０５のピクセルフォーマットに適合するためにデータをフォーマットする（ステップ８１９）。その後、フォーマットされたピクセルデータは、次にデータをビデオモニタ１０５に送信するフレームバッファ８２１を更新するために書き込まれる。代わりに、ビデオモニタの代わりに、フォーマットされたピクセルデータが、通常ビデオディスプレイ装置と使用されるビデオカード、メモリおよび／または任意の他のハードウェアまたはソフトウェアに書き込まれてよい。
【０１４５】
さらに、新しいメッセージが新しいビデオモードまたはキャッシュヒットメッセージではない場合、それは、それが圧縮ビデオデータを含むメッセージであるかどうかを判断するために試験される（ステップ８２７）。メッセージが圧縮ビデオデータを含んでいない場合には、解凍アルゴリズムがステップ８０１に戻り、サーバスタック４１７から送信される新しいメッセージを待機する。それ以外の場合、メッセージに圧縮ビデオデータが含まれている場合、データは解凍され、ビット平面フレームバッファ８３３に転送される（ステップ８２９）。前述されたように、好適実施形態はＪＢＩＧ可逆圧縮技法を組み込む。したがって、ビデオデータの解凍は各個別ビット平面について実行されなければならない。各ビット平面が解像された後、それは、ビット平面フレームバッファ８３３に記憶される過去に解凍されたビット平面とマージされる（ステップ８２９）。十分な数のビット平面がマージされると、ビット平面フレームバッファ８３３に含まれるマージされたデータはマージフレームバッファ８１７に転送される（ステップ８３１）。代わりに、個々のビット平面が解凍され、マージフレームバッファ８１７に直接的に記憶され、それによりステップ８３１を排除する。ビデオの完全フレームを表示するために必要とされるデータのすべてがマージフレームバッファ８１７に転送されると、アプリケーション層８２３はフレームバッファ８２１を更新するためにマージフレームバッファ８１７内でデータをコピーする（ステップ８１９）。その後、データはビデオモニタ１０５に転送される。
【０１４６】
代替実施形態では、ビデオモニタ１０５で表示されるビデオは各ビット平面が受信された後に更新できる。言い換えると、ユーザは表示されたビデオの部分を更新するためにビデオの更新されたフレーム全体が受信されるまで待機する必要がない。ビデオ伝送に使用できる帯域幅が変化するときにこの代替方法は望ましい。また、ビデオディスプレイを更新するこの漸次的な方法はＪＢＩＧ圧縮アルゴリズムを使用する優位点の１つである。
【０１４７】
次に、解凍アルゴリズムは、カレントビデオフレームの１つのフィールドからのカラーコードデータのすべてが受信されたかどうかを判断する（ステップ８３５）。完全フィールドが受信されなかった場合、解凍アルゴリズムはステップ８０１に戻り、サーバスタック４１７からクライアントスタック８０３に新規メッセージの形で送信されるメッセージの残りを待機する。それ以外の場合、完全フィールドが受信されると、解凍方法はアプリケーション層８２３に知らせる（ステップ８３７）。キャッシュヒットメッセージの処理に関して前述されたのと同様に、この通知はアプリケーション層８２３にマージフレームバッファ８１７内のデータを読み取り、それをカレントスクリーンピクセルフォーマットに変換するように命令する（ステップ８１９）。その後、フォーマットされたデータはフレームバッファ８２１を更新するために書き込まれ、データをビデオモニタ１０５に送信する。
【０１４８】
完全フィールドが受信され、アプリケーション層８２３が通知を受け取った後、完全フィールドがメッセージに含まれる最後のフィールドであるかどうかを判断するために、第２の決定が下される。そうである場合、ピクセルの新規に解凍されたブロックはキャッシュフレームバッファ８１５の１つに書き込まれる（ステップ８４１）。そうでない場合は、解凍アルゴリズムはステップ８０１に戻り、新規メッセージを待機し続ける。好ましくは、キャッシュフレームバッファ８１５に書き込まれるピクセルの新しいブロックは、その中に含まれるピクセルの最も古いブロックを上書きする。ステップ８４１は、キャッシュが最新式であり、ＲＭＵ１０９のキャッシュと同期していることを確実にする。キャッシュ更新の完了後、解凍アルゴリズムはステップ８０１に戻る。
【０１４９】
本発明は好適実施形態および複数の代替実施形態に関して説明されてきたが、その実施形態は本発明の完全な開示を行う目的でかなり詳細に述べられ、このような実施形態は単に例示的にすぎず、本発明のすべての態様を制限し、その包括的な列挙を表現することを目的としない。したがって、本発明の範囲は以下の請求項によってのみ定められるものとする。さらに、数値変化は本発明の精神および原則から逸脱することなくこのような詳細で行われてよいことは当業者に明らかであろう。本発明がその本質的な特性から逸脱することなく他の形式で具現化できることが理解されなければならない。
【図面の簡単な説明】
【０１５０】
添付図面の説明に述べられている好適実施形態を参照することにより本発明をさらに理解することができる。描かれている実施形態は本発明を実施するためのシステムの例示的なものに過ぎないが、本発明の組織と運転方法の両方とも、一般的にはその追加の目的と優位点とともに図面および続く説明を参照することによりさらに容易に理解されてよい。図面は、付加されたように、あるいは以後に修正されるように詳細に述べられている本発明の範囲を制限することを目的とするのではなく、単に本発明を明確にし、例証することを目的としている。
本発明を完全に理解するために、ここで以下の図面を参照する。
【０１５１】
【図１】遠隔管理装置（「ＲＭＵ」）を通した、キーボード、ビデオモニタ、およびカーソル制御装置を含むユーザワークステーションのネットワーキング装置、サーバ、およびコンピュータへの接続を描く、本発明の好適実施形態によるネットワーク遠隔管理システムの略図である。
【図２】ネットワーキング装置、サーバおよびコンピュータを制御するために活用される例のオプションメニューのスクリーンショットである。
【図３Ａ】ＲＭＵと、シリアルデバイス、キーボード、ビデオモニタ、カーソル制御装置および電源用のコネクタの内部構造本発明の好適実施形態による図１に示されるＲＭＵの好適実施形態のブロック図である。
【図３Ｂ】図３Ａに図示されるシリアルカードの詳細なブロック図である。
【図３Ｃ】図３Ａに図示されるＫＶＭポートヘッダの詳細なブロック図である。
【図３Ｄ】図３Ａに図示されるビデオプロセッサの詳細なブロック図である。
【図４】本発明に従ってＲＭＵの好適実施形態により活用される圧縮アルゴリズムのフローチャートである。
【図５Ａ】本発明の好適実施形態により活用される消音および差異試験アルゴリズムと、圧縮アルゴリズムの円滑化サブアルゴリズムを詳説したフローチャートである。
【図５Ｂ】本発明の好適実施形態により活用される圧縮アルゴリズムのキャッシングサブアルゴリズムおよびビットスライシング／圧縮サブアルゴリズムを詳説したフローチャートである。
【図６】最も近い一致関数と、本発明の好適実施形態により活用される圧縮アルゴリズムのＣＣＴとのその統合を詳説したフローチャートである。
【図７】本発明の好適実施形態により活用される圧縮アルゴリズムの消音および差異試験サブアルゴリズムを詳説したフローチャートである。
【図８】本発明の好適実施形態により活用される圧縮アルゴリズムによって実行されるように、ピクセルのサンプルブロックに対する消音および差異試験サブアルゴリズムの例の適用を示した図である。
【図９】本発明の好適実施形態により使用される解凍アルゴリズムの動作の詳細なフローチャートを示した図である。
【図１】
2007524284.tif 000008
【図２】
2007524284.tif 000009
【図３Ａ】
2007524284.tif 000010
【図３Ｂ】
2007524284.tif 000011
【図３Ｃ】
2007524284.tif 000012
【図３Ｄ】
2007524284.tif 000013
【図４】
2007524284.tif 000014
【図５Ａ】
2007524284.tif 000015
【図５Ｂ】
2007524284.tif 000016
【図６】
2007524284.tif 000017
【図７】
2007524284.tif 000018
【図８】
2007524284.tif 000019
【図９】
2007524284.tif 000020
【国際調査報告】
2007524284.tif 000021