ネットワーク遠隔管理システム
開示されているのは一連の遠隔ドメインサーバ、ファイル/プリントサーバ、ヘッドレスサーバ、ネットワーク機器、シリアルIT装置、開閉器、ルータ、ファイアウォール、セキュリティインタフェース、アプリケーションサーバ、ロードバランサ、および環境制御装置を1台または複数台のユーザワークステーションに結合し、遠隔装置の選択的なアクセスを可能にするための遠隔管理システムである。該遠隔装置はすべて、各ユーザワークステーションを該遠隔装置に接続する遠隔管理装置に接続されている。各遠隔装置の電源は同様に制御可能な電源を通して該遠隔管理装置に接続されている。該遠隔装置のすべてのリストが入ったオプションメニューにより、ユーザはワークステーションから該遠隔装置のどれかを選択し、操作できるようになる。該オプションメニューは、該遠隔装置、サーバおよびコンピュータに対する電力を選択的に制御するためにも活用される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、概して、遠隔制御装置を通して1台または複数台のローカルユーザワークステーションからネットワークおよびコンピュータ装置を遠隔で管理するためのネットワーク遠隔管理システムに関する。具体的には、ユーザワークステーションに取り付けられているキーボード、ビデオモニタ、およびカーソルの制御装置が、それらの関連電源が遠隔制御装置に接続されているので、ドメインサーバ、ファイル/プリントサーバ、ヘッドレスサーバ、ネットワーク機器、シリアルIT装置、開閉器、ルータ、ファイアウォール、セキュリティインタフェース、アプリケーションサーバ、ロードバランサ、および環境制御装置を遠隔制御するために活用される。
【背景技術】
【0002】
多くの状況で、システム管理者から遠く離れた場所に位置するネットワーキング装置、サーバおよびコンピュータを管理することが望ましい。距離が十分に遠い場合、一般的には遠隔場所からコンピュータを制御するためにインターネットが使用される。ローカルユーザワークステーションに取り付けられているキーボード、ビデオモニタおよびカーソル制御装置を活用してインターネットまたはLAN上で遠隔コンピュータにアクセスするためには、例えばpcAnywhere等のソフトウェアプログラムが活用されてよい。pcAnywhere等の遠隔コンピュータアクセスプログラムは、通常、ホストソフトウェアが遠隔コンピュータにインストールされ、クライアントソフトウェアがユーザワークステーションにインストールされていることを必要とする。遠隔コンピュータにアクセスするためには、ユーザワークステーションのユーザが所望される遠隔コンピュータをリストから選択し、適切なユーザ名とパスワードを入力する。いったんアクセスがリモートコンピュータに与えられると、ユーザは遠隔コンピュータにアクセスし、操作するためにローカルユーザワークステーションに取り付けられているキーボード、ビデオモニタおよびカーソル制御装置を活用する。
【0003】
インターネット上でまたはモデムを介してユーザワークステーションから遠隔コンピュータを操作するためにはハードウェアソリューションも存在する。ただし、ソフトウェアソリューションとは対照的に、ハードウェアソリューションは通常ホストおよび/またはクライアントソフトウェアを必要としない。代わりに、ハードウェアソリューションは、通常、インターネット上であるいはTCP/IP等の共通プロトコルを介してLAN上でアクセス可能であるキーボード、ビデオモニタ、およびマウス(「KVM」)スイッチを活用する。ハードウェアソリューションはインターネットに接続するためにモデムも活用してよい。一般的には、ユーザまたはシステム管理者は、KVMスイッチと関連付けられるインターネットウェブブラウザまたはクライアントソフトウェアを活用して、KVMスイッチに取り付けられている遠隔コンピュータにアクセスする。いったん遠隔コンピュータが選択されると、遠隔コンピュータのビデオ信号はユーザワークステーションのビデオモニタに送られ、ユーザは遠隔コンピュータを制御するためにキーボードおよび/またはマウスを活用してよい。KVMスイッチは、さらにシステム故障の場合のハードリブートのために遠隔コンピュータの電源への接続を含んでよい。
【0004】
前述されたハードウェアソリューションとソフトウェアソリューションは、通常、ビデオ信号を送信するために必要とされる必要な帯域幅を削減するために圧縮アルゴリズムを活用する。例えば、本発明のネットワーク遠隔管理システムは、遠隔コンピュータおよび/またはディスプレイ装置に送信されなければならないデジタルデータを削減し、圧縮するために、参照することにより本書に組み込まれている出願番号第10/233,299号に開示されている圧縮アルゴリズムを使用する。一般的には、パーソナルコンピュータによって生成されるビデオ信号は空間的冗長性とフレーム間冗長性の両方を有する。例えば、ほぼ(near)遊休のパーソナルコンピュータでは、ビデオの連続フレーム間の唯一の変化がカーソルの点滅である可能性がある。ユーザが文書を入力しても画面の大半は経時的に変化しない。したがって、本発明により使用される圧縮アルゴリズムは、遠隔コンピュータおよび/またはビデオディスプレイ装置に送信されるデジタルビデオ信号データの量を削減するために、ビデオの連続フレーム間と各個別フレーム内の両方でこれらの冗長性を利用する。通信媒体上で送信されるデジタルデータの量を削減すると、通信時間が短縮され、必要とされる帯域幅が削減される。
【0005】
当技術分野で公知の大部分の形式のビデオ圧縮は、複雑な計算を必要とする。例えば、エムペグ(Moving Pictures Experts Group「MPEG」)ビデオ圧縮アルゴリズムはそのアルゴリズムの一部として離散コサイン変換を使用する。また、MPEG規格は、ビデオ画像の部分がある期間に渡ってどのように変化したのかを説明する運動ベクトルの計算を必要とする、フレーム間の「運動」の認識に依存している。これらのアルゴリズムは計算集約型であるため、それらは高価なハードウェアまたは低速のハードウェアが計算を完了するための十分な時間を可能にする長い送信時間のどちらかを必要とする。
【0006】
複雑さに加えて、多くの既存のビデオ圧縮技法は損失が多い(つまり、それらは必要とされる帯域幅を削減するためにビデオ信号情報のすべてを送信しない)。通常、このような損失が多い技法はビデオ画像の詳細を削減するか、あるいは活用される色の数を削減するかのどちらかである。色数の削減はコンピュータ管理システムアプリケーションに対する適切な圧縮解決策の一部となるであろうが、多くの他のアプリケーションではこのような結果はコンピュータ管理システムの意図された目的を無効にする。
【0007】
当技術分野で公知のシステムは、キーボード、マウスおよび/またはビデオモニタを含むローカルユーザワークステーションを遠隔コンピュータに結合するための方法および装置を開示する。請求されている発明は、遠隔コンピュータが標準サイズのパーソナルコンピュータのビデオモニタに表示されるメニューから選択されるシステムを開示する。システムユーザが遠隔コンピュータを選択すると、該遠隔コンピュータのビデオ信号がローカルユーザワークステーションのビデオモニタに送信される。システムユーザはローカルユーザワークステーションのキーボードとモニタを活用して遠隔コンピュータを制御してもよい。システムは、ローカルユーザワークステーションと遠隔コンピュータの間でマウス信号とキーボード信号を双方向で送信することもできる。遠隔コンピュータとローカルユーザワークステーションは公衆交換電話網(「PSTN」)およびモデムを介して、あるいは直接的なケーブル布線を介してのいずれかで接続されてよい。
【0008】
当技術分野で公知の別のシステムは、ローカルキーボード、マウスおよび/またはビデオモニタを複数の遠隔コンピュータの1台に結合するためのコンピュータ化された切り替えシステムの具体的なインプリメンテーションを開示する。特に、第1の信号調整装置は、ローカルビデオモニタに接続されている遠隔コンピュータのリストを表示するオンスクリーンプログラミング回路を含む。メニューを活性化するために、ユーザは、例えば「画面印刷」キーをローカルキーボードで押す。ユーザはローカルキーボードおよび/またはマウスを使用してリストから所望されるコンピュータを選択する。
【0009】
システムに従って、オンスクリーンプログラミング回路は、少なくとも2セットのトライステートバッファ、単一オンスクリーンプロセッサ、内部同期ジェネレータ、同期スイッチ、同期偏光器、およびオーバレイ制御論理を必要とする。トライステートバッファの第1のセットは遠隔コンピュータから受信されたビデオ信号の赤、緑および青の成分をビデオモニタに結合する。すなわち、第1のセットのトライステートバッファが付勢されると、赤、緑および青のビデオ信号が、トライステートバッファを通って遠隔コンピュータからローカルビデオモニタに渡される。第1のセットのトライステートバッファがアクティブでないとき、遠隔コンピュータからのビデオ信号は遮断される。同様に、トライステートバッファの第2の集合は単一オンスクリーンプロセッサの出力をビデオモニタに結合する。トライステートバッファの第2のセットが付勢されると、オンスクリーンプログラミング回路のビデオ出力がローカルビデオモニタに表示される。トライステートバッファの第2のセットがアクティブではないとき、オンスクリーンプログラミング回路からのビデオ出力は遮断される。代わりに、トライステートバッファの両方のセットとも付勢される場合、遠隔コンピュータビデオ信号はローカルビデオモニタでの表示の前にオンスクリーンプロセッサによって発生されるビデオ信号と結合される。
【0010】
本発明で開示されているオンスクリーンプログラミング回路は独自の水平同期信号と垂直同期信号も生成する。ビデオモニタ上でどの文字が表示されるのかを指示するために、CPUはオンスクリーンプロセッサに命令データを送信する。これによりオンスクリーンプロセッサはローカルビデオモニタでの表示のために内部ビデオRAMから文字を取り出す。
【0011】
オンスクリーンプロセッサ、つまりモトローラ(Motorola)MC141543オンスクリーンププロセッサにより生成されたオーバレイビデオ画像は、サイズと色の量、および単一オンスクリーンプロセッサで利用可能な文字に制限されている。言い換えると、システムは(つまり、壁用サイズまたはマルチモニタ型ビデオディスプレイではなく)標準サイズのコンピュータモニタのサイズに作られたオーバレイビデオを生成することを目的とし、単一オンスクリーンプロセッサによって提供される色の量および文字に制限されている。
【0012】
システムの動作中、遠隔コンピュータはオーバレイビデオディスプレイから選ばれる。その後、第1の信号調整装置はローカルキーボードとマウスからキーボード信号とマウス信号を受信し、中央のクロスポイントスイッチへの伝送のためにデータパケットを生成する。クロスポイントスイッチはデータパケットを、選択された遠隔コンピュータに結合されている第2の信号調整装置に送る。第2の信号調整装置は次にキーボードコマンド信号とマウスコマンド信号を、遠隔コンピュータのキーボードコネクタとマウスコネクタに送る。同様に、遠隔コンピュータによって生成されるビデオ信号は、第2の信号調整装置、クロスポイントスイッチ、および第1の信号調整装置を通して遠隔コンピュータからローカルビデオモニタに送られる。遠隔コンピュータから受信される水平同期ビデオ信号と垂直同期ビデオ信号は赤、緑、または青のビデオ信号の1つで符号化される。この符号化により遠隔コンピュータからローカルビデオモニタにビデオ信号を送信するために必要とされるケーブルの量が削減する。
【0013】
さらに別のシステムが、標準ネットワークプロトコル(例えばイーサネット、TCP/IP等)を用いて動作する標準ネットワーク(例えばローカルエリアネットワーク)に結合できるキーボード、ビデオ、マウス(「KVM」)切り替えシステムを開示している。システムは中央スイッチを複数のコンピュータ、およびキーボード、ビデオモニタおよびマウスを有する少なくとも1台のユーザステーションに結合する。中央スイッチは、中央スイッチをネットワークに接続するためのネットワークインタフェースカード(「NIC」)を含み、それは多くの追加コンピュータまたはリモート端末を含んでよい。ネットワークに取り付けられている遠隔端末に位置するユーザは、システムを活用して中央スイッチに結合されているコンピュータのいずれかを制御してよい。
【0014】
当技術分野で公知のさらに別のシステムは、遠隔に位置するI/O装置を有するコンピュータシステムを開示する。Thorntonのシステムはコンピュータ、第1のインタフェース装置と、遠隔で位置する第2のインタフェース装置を含む。第1のインタフェース装置はコンピュータに結合され、第2のインタフェース装置はヒューマンインタフェースが作成されるように、ビデオモニタと3台ものI/O装置(キーボード、マウス、プリンタ、ジョイスティック、トラックボール等)に結合される。第1のおよび第2のインタフェース装置は4本のワイヤケーブルを介して互いに結合されている。第1のインタフェース装置は接続されているコンピュータからビデオ信号を受信し、受信したビデオ信号の水平同期信号と垂直同期信号をビデオ信号の赤、緑、青の成分の内の少なくとも1つの上に符号化する。また、第1のインタフェース装置は第4のワイヤケーブルの中の第4のワイヤ上での伝送のためのデータパケットに、接続されているコンピュータから受信されたI/O信号を符号化する。その後、ビデオ信号の符号化された赤、緑および青の成分とデータパケットはヒューマンインタフェースに位置する第2のインタフェース装置に送信される。第2のインタフェース装置は、ビデオ信号の符号化された赤、緑および青の成分を復号し、符号化されていた水平同期信号と垂直同期信号を分離し、I/O信号データパケットを復号する。ビデオ信号と同期信号は、次に第2のインタフェースに取り付けられているビデオモニタに出力され、復号されたI/O信号はやはり第2のインタフェースに取り付けられている適切なI/O装置に送られる。第2のインタフェース装置はオプションで、第1のインタフェース装置への伝送のために第2のインタフェースに取り付けられているI/O装置から受信されるI/O信号を符号化するために回路網を含んでよい。
【0015】
さらに別のシステムは、取り付けられているキーボード、ビデオモニタ、およびマウスを有する1つまたは複数のユーザステーションに複数のコンピュータを接続するためのキーボード、ビデオ、マウスおよび電力切替え(「KVMP」)装置を開示する。KVMP切替え装置内に埋め込まれているオンスクリーンディスプレイ(「OSD」)回路網により、ユーザステーションに位置するユーザが該ユーザステーションに取り付けられているキーボード、ビデオモニタ、およびマウスを活用してコンピュータの内のいずか1台を選択し、操作できる。KVMP切替え装置内に位置する二次切替え回路網により、ユーザステーションに位置するユーザは各コンピュータに供給する電力をさらに制御できる。
【0016】
前記を鑑みて、遠隔制御切替え装置に接続されているネットワーキング装置、サーバ、コンピュータを操作、制御できる内蔵型ネットワーク遠隔管理システムに対するニーズは明らかに存在する。さらにこのようなシステムにより、ユーザは遠隔ネットワーキング装置、サーバおよびコンピュータに取り付けられている電源を制御できなければならない。システムは遠隔ネットワーク環境を管理し、それによりオンサイトシステム管理者を有する必要性を削減する。
【発明の開示】
【発明が解決しようとする課題】
【0017】
本発明は、周辺装置(つまりキーボード、ビデオモニタ、カーソル制御装置等)が取り付けられた1台または複数台のローカルユーザワークステーションから遠隔コンピュータネットワーキング環境を管理するための内蔵型のネットワーク遠隔管理システムを提供する。本発明のネットワーク遠隔管理システムによって、ユーザワークステーションに位置するユーザは遠隔場所に位置するネットワーキング装置、サーバおよびコンピュータにアクセスし、走査し、制御できるようになる。またネットワーク遠隔管理システムによって、ユーザはそれぞれ1つの遠隔装置に対する電源を制御できる。ネットワーキング装置(例えば、ハブ、スイッチ、ルータ等)は通常シリアルインタフェースを介して制御される。対照的に、サーバとコンピュータはキーボード、ビデオモニタ、およびマウスを活用して制御、操作される。
【0018】
遠隔ネットワーキング装置、サーバ、およびコンピュータはすべて中央遠隔管理装置(「RMU」)に接続され、RMUは代わりにイーサネットまたはモデム接続を介してインターネットまたはLANに接続される。RMUは、サーバとコンピュータに対する接続のためのキーボード、ビデオ、およびカーソル制御装置ポートのみではなく、ネットワーキング装置に対する接続のためのシリアルポートも有する。RMUはさらにネットワーキング装置、サーバ、およびコンピュータへの電力を制御できる電源への接続のためのポートも含む。標準的なケーブル布線は、ネットワーキング装置、サーバおよびコンピュータをRMU上の適切なポートに接続するために活用される。
【0019】
RMUは、多様なオペレーティングシステムおよび/またはマイクロソフト社(Microsoft Corporation)(「マイクロソフト(Microsoft)」)(Windows)、アップルコンピュータ社(Apple Computer Inc.)(「アップル(Apple)」)(マッキントッシュ(Macintosh))、サンマイクロシステムズ社(Sun Microsystems,Inc.)(「サン(Sun)」)(ソラリス(Solaris))、デジタルイクイップメント社(Digital Equipment Corporation(「DEC」))、コンパックコンピュータ社(Compaq Computer Corporation)(「コンパック(Compaq)」)(アルファ(Alpha))、IBM社(「IBM」)(RS/6000)、ヒューレットパッカード社(Hewlett-Packard Company(「HP」))(HP9000)、およびSGI(「旧シリコングラフィックス社(Silicon Graphics, Inc.)」)(IRIX)を含むが、これらの限定されない通信プロトコルの間の互換性も提供する。
【0020】
本発明のネットワーク遠隔管理システムを活用する場合、ユーザは最初にRMUに接続するためにユーザワークステーションに位置するクライアントソフトウェアを活用することによって管理セッションを開始する。代わりに、ユーザはRMUに接続するためにインターネットブラウザを活用してよい。次に、ユーザはRMUによってユーザ名とパスワードを入力するようにプロンプトを出される。RMUは複数のプロファイルとプロファイルごとのさまざまなレベルのアクセスを記憶できる。いったんユーザが認証されると、ユーザは、RMU内に位置するオプションメニュー回路網によって生成される、ユーザワークステーションのモニタ上にオプションメニューを与えられる。オプションメニューは、遠隔場所でのすべてのネットワーキング装置、サーバ、およびコンピュータを一覧表示するメニューからなる。オプションメニューは、さらにユーザが遠隔装置の各個に対する電力を制御できるようにするメニューを含む。ユーザはユーザワークステーションに取り付けられているキーボードおよび/またはカーソル制御装置を活用することによって、所望されるネットワーキング装置、サーバまたはコンピュータを選択する。いったんユーザが選択を行うと、ユーザは、ユーザが物理的に遠隔サイトにいるかのように該遠隔装置へのアクセスを提供される。
【0021】
RMUおよびユーザワークステーションはTCP/IPを介して通信する。TCP/IPを介した伝送の前に、一方向の(つまり、RMUからユーザワークステーションへの)ビデオ信号がフレーム取り込み器によってデジタル化される。この回路は、少なくとも毎秒20コマの速度で起動側コンピュータからビデオ出力を捕捉し、細くしたアナログビデオ信号をピクセルのデジタル表現に変換する。各ピクセルは赤の場合5ビット、緑の場合5ビットおよび青の場合5ビットでデジタル的に表現されている。デジタル表現は次に未処理フレームバッファに記憶される。圧縮アルゴリズムは次に未処理フレームバッファに含まれているデジタルデータを処理する。圧縮アルゴリズムは、実際には、詳しく後述されるように4つのサブアルゴリズム(つまり、消音および差異試験(「NRDT」)アルゴリズム、円滑化アルゴリズム、キャッシングアルゴリズム、およびビットスライシング/圧縮サブアルゴリズム)の組み合わせである。
【0022】
ビデオ信号がユーザワークステーションに到達した後、解凍が発生する。ユーザワークステーションは解凍アルゴリズムを実行することにより解凍装置として動作する。送信されたビデオ信号またはデータ信号とともに、RMUは「キャッシュ」ヒットを生じさせたビデオの部分(つまり、未変更ビデオの部分)に関して解凍装置にメッセージを送信する。それに応えて、解凍装置は送信済みビデオ信号とそのローカルキャッシュに含まれているピクセルのブロックに基づいてビデオフレームを構築する。また、解凍装置はRMUから受信されたピクセルの新しいブロックでそのローカルキャッシュを更新する。このようにして、解凍装置キャッシュは圧縮装置キャッシュと同期されたままとなる。圧縮装置と解凍装置の両方とも、より新しいビデオデータで古いデータを置換することによってそのそれぞれのキャッシュを更新する。
【0023】
さらに、RMUによって送信されるビデオ信号は可逆圧縮アルゴリズムを使用して圧縮されていた。したがって、解凍装置(例えばユーザワークステーションのソフトウェア)はこの可逆圧縮を逆転しなければならない。これはRMUによって送信されるフラグに基づいてビデオ画像の変更された部分を特定することにより行われる。このフラグ情報から、解凍装置はビデオの完全フレームを再構築することができる。
【0024】
さらに、解凍装置は、カラーコードテーブル(「CCT」)変換を逆転させることによってビデオフレームをその元のカラースキームに変換する。解凍装置はRMUのようにビデオデータを圧縮するために使用される同じCCTのコピーを局所的に記憶する。次にCCTはRMUから受信されたビデオデータを、ユーザワークステーションに取り付けられているモニタで表示されてよい標準RGBフォーマットに変換するために使用される。
【0025】
解凍アルゴリズムは、種々の実施形態における本発明のネットワーク遠隔管理システムで実現できる。例えば、一実施形態では、それはユーザワークステーションで実行されるソフトウェアアプリケーションとして実現できる。代替実施形態では、解凍アルゴリズムはインターネットエクスプローラー(Internet Explorer)またはネットスケープ ナビゲータ(Netscape Navigator、登録商標)のようなウェブブラウザ内で実行するために実現できる。このような実施形態はユーザワークステーションでのアプリケーションに特殊なソフトウェアのインストールに対するニーズを排除する。また該実施形態により、RMUは、コンピュータが起動側コンピュータから位置する距離に関係なく、インターネット機能を備えた任意のユーザワークステーションにビデオ信号を容易に送信できる。この機能は、本発明のネットワーク遠隔管理システムと関連するケーブル布線の費用を削減する。
【0026】
本発明はRMUからかなり離れていることがある場所でビデオ信号を表示するために使用できるので、ビデオ信号伝送が安全であることを確実にすることは重要である。伝送が安全ではない場合、ハッカー、競争相手、または他の未許可のユーザがビデオ信号に含まれている秘密情報を表示する可能性があるであろう。したがって、本発明のネットワーク遠隔管理システムは、当技術分野で公知のデジタル暗号化技術と容易に統合することを目的としている。本発明の一実施形態では、RMUのアイデンティティを検証するため、および送信されたビデオ信号とデータ信号を暗号化し、復号化するために128ビット暗号化技術が使用される。この実施形態では、遠隔参加者を検証するために128ビット公開鍵RSA暗号化技術が使用され、送信された信号を暗号化、および復号化するために128ビットのRC4秘密鍵が使用される。他の暗号化技術あるいはセキュリティ手段が使用されてよいのは言うまでもない。
【0027】
最後に、本発明のネットワーク遠隔管理システムはプラットホームに無関係な通信を可能とするので、活用される圧縮アルゴリズムはオペレーティングシステムに特殊なフックを利用しないし、プラットホームに特殊なGDIコールも使用しない。
【0028】
好適実施形態では、ここに、および同時係属出願、出願番号第10/233,299号に説明されている圧縮アルゴリズムがビデオ信号を送信するために使用される。ただし、ビデオ伝送システムはこのような実施形態に限定されない。むしろ、このシステムは本発明の精神から逸脱することなく任意の圧縮アルゴリズムと利用されてよい。
【0029】
したがって、ユーザが1台または複数台のローカルユーザワークステーションから遠隔ネットワーキング環境を制御できるようにする、改善されたネットワーク遠隔管理システムを提供することが本発明の目的である。このような遠隔ネットワーキング環境はドメインサーバ、ファイルサーバ/プリントサーバ、ヘッドレスサーバ、ネットワーク機器、シリアルIT装置、開閉器、ルータ、ファイアウォール、セキュリティインタフェース、アプリケーションサーバ、ロードバランサ、および環境制御装置を含んでよい。
【0030】
さらに、1台または複数のローカルユーザワークステーションが、遠隔管理装置に接続されている遠隔ネットワーキング装置、サーバ、およびコンピュータにアクセスし、走査できるようにするネットワーク遠隔管理システムを提供することが本発明の目的である。
【0031】
集中し、統合され、安全な制御を提供する単一のプラットホームに関係のないネットワーク遠隔管理システムを提供することは本発明の別の目的である。
【0032】
緊急アクセスのためにモデムを含むネットワークに無関係な遠隔ネットワーク管理システムを提供することが、本発明の追加の目的である。
【0033】
KVM装置のBIOSレベル制御およびシリアルデバイスのコンソールレベル制御を可能にするネットワーク遠隔管理システムを提供することが本発明の追加の目的である。
【0034】
さらに、ウェブブラウザを介して1つの画面から全サーバと他の接続装置の単一の連結された表示を提供するネットワーク遠隔管理システムを提供することが本発明の目的である。
【0035】
シングルサインオンとインタフェースを含むネットワーク遠隔管理システムを提供することは本発明の別の目的である。
【0036】
さらに、アップグレードできるネットワーク遠隔管理システムを提供することが本発明の目的である。
【0037】
モデム、無線、ケーブル、DSLおよびフラクショナル(fractional)T1を含む低帯域幅接続で高性能を提供するネットワーク遠隔管理システムを提供することは本発明の追加の目的である。
【0038】
高品質ビデオの考えられる最速の伝送を確実にするためにビデオ圧縮アルゴリズムおよびフレーム取り込み器技術を活用するネットワーク遠隔管理システムを提供することが本発明の別の目的である。
【0039】
さらに、最新のコンソール履歴の表示を提供するために内蔵シリアルポートバッファリングを含むネットワーク遠隔管理システムを提供することは本発明の目的である。
【0040】
インストールと走査が容易であるネットワーク遠隔管理システムを提供することはさらに別の目的である。
【0041】
さらに、コンパクトであり、容易にアクセスできる通信ポートを提供するネットワーク遠隔管理システムを提供するために本発明の目的である。
【0042】
さらに、ローカルユーザワークステーションの周辺装置と、ドメインサーバ、ファイルサーバ/プリントサーバ、ヘッドレスサーバ、ネットワーク機器、シリアルIT装置、開閉器、ルータ、ファイアウォール、セキュリティインタフェース、アプリケーションサーバ、ロードバランサ、および環境制御装置に配置されるネットワーキング装置、サーバおよびコンピュータの間でエラーのない通信を可能にするネットワーク遠隔管理システムを提供することが本発明の目的である。
【0043】
遠隔に配置されるネットワーキング装置、サーバおよびコンピュータに電源を制御できる機能が付いたネットワーク遠隔管理システムを提供することが本発明の目的である。
【0044】
構造の関係する要素の動作および機能の方法のみではなく、本発明の他の目的、特徴および特性、ならびにパーツと製造の経済の組み合わせは、すべてが本明細書の一部を形成する添付図面を参照して以下の詳細な説明を考慮するときにさらに明らかになるであろう。
【発明を実施するための最良の形態】
【0045】
必要とされるように、本発明の詳細な例示的な実施形態がここに開示されている。ただし、本発明による技法、システムおよび動作構造は、多岐にわたる形式とモードで具現化されてよく、その内のいくつかは開示されている実施形態のものと極めて異なる可能性がある。その結果として、ここに開示されている特定の構造上および機能上の詳細は単に典型的であるにすぎないが、その点でそれらは開示の目的のために最善の実施形態を与え、本発明の範囲を定めるここのクレームの基礎となると見なされる。以下は本発明の(いくつかの代替実施形態のみではなく)好適実施形態の詳細な説明も提示する。
【0046】
まず図1を参照すると、本発明によるネットワーク遠隔管理システムの好適実施形態のアーキテクチャが描かれている。具体的には、ネットワーク遠隔管理システムは、キーボード103と、ビデオモニタ105と、カーソル制御装置107を含むユーザワークステーション101と、遠隔管理装置(「RMU」)109と、インターネット/LAN/WAN108と、公衆交換電話網(「PSTN」)106と、シリアルデバイス111aと111b、サーバ113aと113b、遠隔コンピュータ115aと115b、および電源117を備えて示されている。好ましくはユーザワークステーション101とRMU109は、それぞれ通信回線119と121を介してインターネット/LAN/WAN108に接続されている。CAT5ケーブル布線が通信回線119と121用の好適ケーブル布線であるが、同軸ケーブル、光ファイバケーブル、または複数CAT5ケーブル等の他のケーブル布線が使用されてよい。CAT5ケーブル布線は、長い距離を送信される信号の強度を維持しつつ、ケーブル布線費用を削減するため好ましい。代わりに、RMU109をインターネット/LAN/WAN108およびシリアルデバイス111aと111b、サーバ113aと113b、コンピュータ115aと115b、および電源117に接続するために、無線ネットワーキング装置も活用されてよい。同様に、無線ネットワーキング装置はインターネット/LAN/WAN108にユーザワークステーション101を接続するために活用されてもよい。
【0047】
代替実施形態では、ユーザワークステーション101はRMU109に接続するためにPSTN106を活用してよい。PSTN109がRMU109に接続するために活用される場合、通信回線120と122は好ましくはCAT3ケーブルとなるであろう。一例として、この通信手段は、インターネット/LAN/WAN108が適切に機能していない場合等緊急事態で活用されてよい。
【0048】
通信回線119と121は、CAT5ケーブルによって結合されるそれぞれの装置に位置するRJ−45ソケットに各端部を差し込むことによりユーザワークステーション101とRMU109に接続される。RJ−45ソケットとプラグが好ましいが、RJ−11、RG−58、RG−59、軍用コネクタ(British Navy Connector)(「BNC」)およびSTコネクタを含むが、これらに限定されない他のタイプのコネクタが使用されてよい。
【0049】
遠隔管理システムはローカルユーザワークステーション101を含み、好ましくはキーボード103、ビデオモニタ105および/またはカーソル制御装置107等の専用周辺装置を備える。プリンタ、スキャナ、ビデオカメラ、バイオメトリック走査装置、マイク等の他の周辺装置もワークステーションに配置されてよい。各周辺装置は、通信線路119を介してインターネット/LAN/WAN108に取り付けられている、ユーザワークステーション101に直接的にまたは間接的に接続される。無線周辺装置もこのシステムとともに使用してよいことは言うまでもない。好ましい運転モードでは、取り付けられている周辺装置からユーザワークステーション101で受信されるすべての電子信号(つまりキーボード信号とカーソル制御装置信号)が、通信回線119を介してインターネット/LAN/WAN108に送信される。それ以後、信号は通信回線121を介してRMU109に送信される。RMUは受信された信号を、この図ではシリアルデバイス111aと111b、サーバ113aと113b、コンピュータ115aとt115b、および電源117を含むそれぞれの遠隔装置に送信する。
【0050】
RMU109は、マイクロソフト(Microsoft)(ウィンドウズ(Windows))、アップル(Apple)(マッキントッシュ(Macintosh))、サン(Sun)(ソラリス(Solaris))、DEC、コンパック(Compaq)(アルファ(Alpha))、IBM(RS/6000)、HP(HP9000)、およびSGI(IRIX)を含むが、これらに限定されないすべての一般的に使用されている今日のコンピュータオペレーティングシステムとプロトコルと互換性があってよい。さらに、ローカルデバイスは、ユニバーサルシリアルバス(「USB」)、米国規格協会情報交換標準コード(「ASCII」)、および推奨規格(Recommend Standard)−232(「RS-232」)を含む種々のプロトコルを介して遠隔コンピュータと通信してよい。
【0051】
シリアルデバイス113aと113bは、それぞれ通信回線112aと112bを介してRMU109に接続される。好ましくは通信回線112aと112bは、RJ−45コネクタと成端されるCAT5ケーブルである。しかしながら、すべてのシリアルデバイスにRJ−45ポートが装備されているわけではないので、通信回線112aと112bをシリアルデバイス111aと111bに適切に接続するために特殊なアダプタが必要とされる可能性がある。例えば、シリアルデバイス111aのみがシリアルポートを具備していた場合、アダプタは通信回線112aのRJ−45コネクタをシリアルデバイス111aに位置するシリアルポートに接続するであろう。
【0052】
同様に、電源117は通信回線118を介してRMU109に接続される。好ましくは通信回線118は、各端部でRJ−45コネクタと成端したCAT5ケーブルである。
【0053】
サーバ113aと113b、およびコンピュータ115aと115bはそれぞれ通信回線114a、114b、116a、および116bを介してRMU109に接続される。好ましくは、通信回線114a、114b、116aおよび116bは、サーバ113aと113bおよびコンピュータ115aと115bのキーボード、ビデオ、およびカーソル制御装置のポートを図示されているようにRMU109で単一ポートに接続できるようにする3対1の同軸ケーブルである。
【0054】
管理およびアクセスのために遠隔ネットワーキング環境に接続するために、ユーザはユーザワークステーション101で遠隔管理セッションを開始する。最初にユーザは、ユーザにユーザ名とパスワードを入力するようにプロンプトを出すワークステーション101を使用して配置されているクライアントソフトウェアにアクセスする。しかしながら、システムはある特定のユーザを識別する、および/または認証するために識別データの任意の組み合わせを活用してよい。取り付けられているキーボード103、カーソル制御装置107または他の周辺装置を活用すると、ユーザはユーザ名とパスワードを入力する。いったんユーザ名とパスワードが入力されると、ユーザワークステーション101は通信回線119を介してインターネット/LAN/WAN108に接続する。ユーザワークステーション101は、種々の方法でインターネット/LAN/WAN108に接続してよい。例えば、ユーザワークステーション101はイーサネット接続を通してインターネット/LAN/WAN108に接続されてよい。この例では、通信回線119はCAT5ケーブルであろう。インターネット/LAN/WAN108への接続は、通信回線119に対するニーズを排除する無線接続を通して達成されてもよい。例えば、RMU109は、インターネット/LAN/WAN108と通信するために、標準ワイヤレスフィディリティ(「Wi−Fi」)ネットワーキング装置を活用してよい。
【0055】
代わりに、ユーザワークステーション101は、モデム接続を活用することによってPSTN106を介してRMU109と接続してよい。この代替例では、接続回線120と122はCAT3ケーブルであろう。
【0056】
次にユーザ名とパスワードはインターネット/LAN/WAN108を通して、通信回線121を介してRMU109に送られる。RMU109はユーザ名とパスワードを受信し、ユーザワークステーション101に位置するユーザを認証する。いったんユーザがRMU109によって認証されたら、RMU109内に位置するオプションメニュー回路がモニタ105を介してユーザ101に、RMU109を通してアクセスできるすべての装置を一覧表示するオプションメニューを提供する。ユーザは、ユーザワークステーション101に取り付けられているキーボード103、カーソル制御装置105、または何らかの他の周辺装置を活用してこのオプションメニューから選択を行う。
【0057】
図2に示されているように、オプションメニュー201は装置リスト203と、第1のデスクトップウィンドウ205と、電力制御ウィンドウ207と、第2のデスクトップウィンドウ209と、シリアルデバイスウィンドウ211とからなる。装置リスト203はRMU109に接続されるすべてのアクティブな装置とイナクティブな装置を一覧表示する。ユーザは制御に所望される装置を選択するためにこのメニューを活用する。この例では、第1のデスクトップウィンドウ205は遠隔コンピュータの内の1台のデスクトップを表示する。第1のデスクトップウィンドウ205を選択することによって、ユーザは、表示されている遠隔コンピュータを制御するためにキーボード103と、カーソルコントロールデバイス107、または何か他の周辺装置を活用してよい。同様に、ユーザは電源117にアクセスし、操作するために電力制御ウィンドウ207を活用してよい。電力制御ウィンドウ207は、平均活用電力、RMS電流、RMS電圧、内部温度等の取り付けられている各装置のステータスのみではなく、電源117に接続されているすべての装置のリストも表示する。電力制御ウィンドウ207は主に、電源117に取り付けられている装置に電力を循環させるために活用される。しかしながら、電源117はプログラムで制御できるため、電力制御ウィンドウ207は電源117で可能なあらゆる機能を実行するために活用されてよい。
【0058】
第2のデスクトップウィンドウ209は、第2の遠隔コンピュータまたはサーバにアクセスし、操作するために活用される。シリアルデバイスウィンドウ211は、遠隔管理装置109に取り付けられている任意の遠隔シリアルデバイスを操作し、アクセスするために活用される。シリアルデバイスウィンドウ211は、シリアルデバイスにより生じる過去の出力のみではなく、シリアルデバイスにより生じる現在の出力も表示する。シリアルデバイスの過去の出力はRMU109に配置されるバッファに記憶される。
【0059】
好ましくは、最適メニュー201は、取り付けられている装置がRMU109に対する接続単位で配列されるメニューからなる。例えば、シリアルデバイス111aと111bは好ましくはサーバ113aと113bおよびコンピュータ115aと115bとは異なるメニューに一覧表示されるであろう。また、オプションメニューは、電源117を制御するためのサブメニューからなる。
【0060】
RMU109は、RMU109にとって局所的なユーザが取り付けられているシリアルデバイス111aと111b、サーバ113aと113b、およびコンピュータ115aと115b、電源117等を制御できるようにする、取り付けられているキーボード123、カーソル制御装置125およびビデオモニタ127をさらに含んでよい。キーボード123、カーソル制御装置125、およびビデオモニタ127は局所的にRMU109を構成するために活用されてもよい。キーボード123、カーソル制御装置125およびビデオモニタ127は、インタフェースケーブル129を介してRMU109に接続されている。代わりにキーボード123、カーソル制御装置125、およびビデオモニタ127は標準キーボード、カーソル制御装置、およびビデオモニタのコネクタを介してRMU109に接続されてよい。
【0061】
次に図3Aを参照すると、描かれているのは本発明によるRMU109の好適実施形態である。キーボード信号とマウス信号は、通信回線121を介してインターネット/LAN/WAN108からRJ−45ポート201に到達する。RMU109はRJ−45ポート201、RJ−11ポート202、イーサネットコネクタ205、モデムモジュール204、通信ポートコネクタ206、CPU207、通信ポートコネクタ208、PCIライザーカード209、シリアルカード211、ビデオプロセッサ212、シリアルポート213、フレーム取り込み器215、KVMポートヘッダ217、KVMポート219、電源221、電力ポート233、リセット回路網225、ローカルKVMポート227、およびオプションメニュー回路229からなる。図示されているように、RMU109がイーサネット接続を介してインターネット/LAN/WAN108に接続する場合、最初にキーボードおよび/またはカーソル制御装置信号がRJ−45ポート201に達する。次に、信号は、信号をデパケット化するイーサネットコネクタ205に送信される。代わりに、キーボード信号および/またはカーソル制御装置信号がモデムを介して送信される場合には、信号はRJ−11ポート202でPSTN106から到達してよい。この場合、信号は、受信した信号を復調し、以後信号をデパケット化する通信ポートコネクタ206にモデムモジュール204に送信される。
【0062】
イーサネットコネクタ205または通信ポートコネクタ206から、次にキーボードおよび/またはカーソル制御装置信号がビデオプロセッサ212を介してCPU207に送信される。CPU207は、キーボード信号とカーソル制御装置信号のための適切な宛先を決定するために、キーボード信号および/またはカーソル制御装置信号の中に含まれているルーティング情報を活用する。キーボード信号およびカーソル制御装置信号が電源117に対するコマンドを指定する場合、CPU207は(例えばルックアップテーブルを活用して)受信されたコマンドを解釈し、通信ポートコネクタ208と電力ポート210を介して電源117に適切なコマンドを送信する。好ましくは、電力ポート210は、RMUが電力ストリップと接続し、それがあたかもシリアルデバイスであるかのようにそれを操作できるようにするためのRJ−45コネクタである。
【0063】
CPU207が、キーボード信号とカーソル制御装置信号にシリアルデバイスルーティング情報が含まれると判断すると、キーボード信号とカーソル制御装置信号がPCIライザーカード209を通してシリアルカード211に送信される。図3Bに示されるように、シリアルポート211はUART/開閉器301、シリアルトランシーバ303およびプログラマブルメモリ305から構成される。シリアルカード211は双方向シリアル伝送が可能である。キーボード信号および/またはカーソル制御装置信号がPCIライザーカード209からシリアルポート213に送信されているとき、信号は当初、メモリ305に記憶されているデータと論理を活用して、キーボード信号および/またはカーソル制御装置が送信される適切なシリアルトランシーバ303を決定するUART/開閉器301に送信される。シリアルカード211の好適実施形態では、UART/開閉器301はEXAR XR17c158である。以後、アナログ信号は並列フォーマットから直列フォーマットに信号を変換する適切なシリアルトランシーバ303に送信される。シリアルトランシーバ303は好ましくはIntersilのHIN23Eシリアルトランシーバである。キーボード信号および/またはカーソル制御装置信号がシリアルポート213に送信される。
【0064】
対照的に、シリアルデバイス111aまたは111bからのコマンドがシリアルポート213、シリアルカード211、およびPCIライザーカード209を介してCPU207に送信されるとき、コマンドは、初期に、シリアルコマンドを並列フォーマットに変換するシリアルトランシーバ303に送信される。以後、コマンドは、PCIライザーカード209を介してCPU207にコマンドを再送するUART/開閉器301に送信される。CPU207は受信されたコマンドを解釈し、ビデオモニタ105での表示のために仮想端末をエミュレートする。本発明は任意の数のシリアルポート213を組み込んでよい。図3Aに図示されている例では、2台のシリアルデバイス111aと111bがそれぞれシリアルポート213aと213bに接続される。
【0065】
CPU207が、キーボード信号および/またはカーソル制御装置信号がサーバ113aと113bまたはコンピュータ115aと115b向けであると判断すると、CPU207はPCIライザーカード209とフレーム取り込み器215を通して、適切なKVMポート219に信号を送信するKVMポートヘッダ217にキーボード信号とカーソル制御装置信号を送信する。図3Cに示されているように、KVMポートヘッダ217は開閉器350と、ビデオスイッチ352と、UART354とからなる。キーボード信号および/またはカーソル制御装置信号がKVMポート219からKVMポートヘッダ217に送信されると、信号は当初UART354で受信される。UART354は受信されたシリアルキーボード信号および/またはカーソル制御装置信号を並列フォーマットに変換する。次に、変換されたキーボード信号および/またはカーソル制御装置信号は、フレーム取り込み器215に信号を再送する開閉器350に送信される。
【0066】
同様に、双方向キーボード信号および/またはカーソル制御装置信号もフレーム取り込み器215からKVMポート219に送信される。フレーム取り込み器215から受信されるキーボード信号および/またはカーソル制御装置信号は、KVMポートヘッダ217に配置される開閉器350に送信される。キーボード信号および/またはカーソル制御装置信号の中に含まれる制御信号を活用して、開閉器350は適切なUART354に受信されたキーボード信号および/またはカーソル制御装置信号を送信する。UART354は、次に、KVMポート219への伝送のために並列フォーマットから直列フォーマットにキーボード信号および/またはカーソル制御装置信号を変換する。
【0067】
また、KVMポートヘッダ217は、KVMポート219で受信される一方向ビデオ信号をフレーム取り込み器215に送信する。KVMポート219から受信されるアナログビデオ信号は、初期にビデオスイッチ352に送信される。ビデオスイッチ352は次にビデオ信号を、受信されたアナログビデオ信号をデジタルフォーマットに変換するフレーム取り込み器215に再送する。
【0068】
図3Dを見ると、ビデオ信号がフレーム取り込み器215によってデジタル化された後で、デジタル化されたビデオ信号はCPU207を介してビデオプロセッサ212に送信される。ビデオプロセッサ212はビデオインポート370、Rアウト376a、Gアウト376b、Bアウト376c、ピクセルプッシャー378、フレームバッファ380、圧縮装置382、フラッシュメモリ384、RAM386、マイクロプロセッサ388、および開閉器390から構成される。図3Dの上部に示されているビデオインポート370は、CPU207からデジタル化されたビデオ信号を受信する。ビデオインポート370の出力は、それぞれデジタル化されたビデオ信号の赤の成分、緑の成分および青の成分を表すRアウト376a、G−アウト376bおよびBアウト376cとして示されている。ビデオインポート370はこれらのデジタル化されたビデオ信号成分を、送信され、ピクセルプッシャー378に記憶されるピクセルの形式で出力する。ピクセルプッシャー378、フラッシュメモリ384、およびランダムアクセスメモリ(「RAM」)386は通信バス387を介してマイクロプロセッサ388と通信する。また、ピクセルプッシャー378は、それぞれ通信バス379と381を介して、フレームバッファ380(例えば未処理フレームバッファ、比較フレームバッファ等)と圧縮装置382と通信する。圧縮アルゴリズムはマイクロプロセッサ388によって実行される。一般的に、圧縮は以下のように動作する。
【0069】
消音および差異試験
前述されたように、アナログビデオ信号のデジタル化は、これらの信号をデジタル通信媒体(例えば、ネットワーク、LAN、WAN、インターネット等)を介して送信できるようにするために必要である。しかしながら、デジタル化プロセスの有害な副作用は量子化誤差と雑音がビデオ信号の中に入り込むことである。したがって、消音および差異試験サブアルゴリズム(「NRDTサブアルゴリズム」)はビデオ信号のデジタル化の間に入る雑音を削減することを目的としている。加えてNRDTサブアルゴリズムは同時に最近捕捉されたビデオのフレーム(つまり「カレントフレーム」)と過去に捕捉されたビデオのフレーム(つまり、「比較フレーム」)の間の差異を決定する。
【0070】
最初に、NRDTサブアルゴリズムは、未処理フレームバッファに含まれているカレントフレームを64×32ブロックのピクセルに分割する。代わりに、ビデオフレーム全体のサイズ、通信媒体の帯域幅、所望される圧縮歩留まり等の基準に基づいて(例えば、8×8ピクセル、16×16ピクセル、32×32ピクセル等の)他のサイズのブロックが使用されてよい。
【0071】
カレントフレームがブロックに分割されてから、2レベルの閾値モデルがピクセルのブロックに適用され、それが比較フレームに関して変化したかどうかを判断する。これらの2つの閾値は「ピクセル閾値」と「ブロック閾値」である。
【0072】
最初に、既定のピクセルが調べられ、三色(つまり、赤、緑および青)のピクセルのそれぞれの値が、比較フレームの中のその対応するピクセルの値を用いて計算される。この計算から距離値が算出される。距離値がピクセル閾値(つまり2レベルの閾値の第1の閾値)より大きい場合、この距離値は距離合計に加えられる。このプロセスはブロックの中のピクセルごとに実行される。
【0073】
次に、ブロックの中のピクセルのすべての距離値が前述されたように計算され、処理された後、距離合計の結果として生じる値はブロック閾値(つまり2レベルの閾値の第2の閾値)に比較される。距離合計がブロック閾値を超えている場合には、このピクセルのブロックは比較フレームの中の対応するピクセルのブロックに比較して変化したと見なされる。変化が確認されると、比較フレームバッファに記憶されている比較フレームはピクセルの新しいブロックで更新される。さらに、新しいピクセルのブロックは、圧縮フォーマットでさらに処理され、ユーザワークステーションに送信される。
【0074】
対照的に、距離合計がブロック閾値より大きくない場合、ピクセルのブロックは未変更であると判断される。その結果として、比較フレームバッファは更新されず、このピクセルのブロックはユーザワークステーションに送信されない。ピクセルの未変更ブロックの伝送を排除すると、送信されるデータの総量が削減され、それにより伝送時間が延び、必要とされる帯域幅が削減される。
【0075】
NRDTサブアルゴリズムは少量のピクセルの中の大きな変化と大量のピクセルの中の小さな変化の両方の位置を突き止めるために理想的である。その結果として、NRDTサブアルゴリズムはピクセルのブロック内で変化したピクセル数を単にカウントする公知のパーセンテージ閾値アルゴリズムより効率的且つより正確である。このようなアルゴリズムを用いると、ピクセルのブロックの中の数個のピクセルが劇的に(つまり黒から白へ)変化した場合、アルゴリズムは、変化したピクセルの総数がパーセンテージ閾値を超えないであろうため、ピクセルのブロックを未変更であると見なすであろう。この結果は多くの場合、コンピュータビデオの伝送での表示エラーにつながる。
【0076】
例えば、文書を編集しているユーザを考えてみる。ユーザが「E」を「F」に変更する等、単一の文字を変更する場合、ビデオ画像の2-3個のピクセルのみが変化するであろう。しかしながら、この変化に基づいて、結果として生じる文書は元の文書からは著しく異なる。パーセンテージ閾値アルゴリズムはこの変化を登録せず、したがって表示エラーにつながる。パーセンテージ閾値アルゴリズムは、一般的には、変化したブロックの中のピクセル数を見るのみで、数個のピクセルがかなり変化したビデオ画像変化を認識することはできない。しかしながら、本発明によって使用されるNRDTサブアルゴリズムは、その2レベルの閾値のおかげで、ピクセルのこのようなブロックがビデオの連続フレームの間でかなり変化したことを認識するであろう。
【0077】
平滑化
NRDTサブアルゴリズムが、ピクセルのブロックが変化したと判断すると、このブロックを表すデジタルデータは平滑化サブアルゴリズムによってさらに処理する。このサブアルゴリズムは、アナログ対デジタル変換の間に入る雑音を削減する。
【0078】
第1に、各デジタルピクセル表現はピクセルごとにより少ない量のビットを使用する表現に変換される。各ピクセルの各色を表現するためにより少ない数のビットの使用によりカラービデオを圧縮することは当技術分野で公知である。例えば、共通ビデオ規格はビデオ信号の赤の成分、緑の成分および青の成分のそれぞれを表すために8ビットを使用する。24個の総ビットはピクセルを表現するために使用されるため、この表現は一般的には「24ビットRGB表現」と呼ばれている。ピクセルの赤、緑および青の成分の4個の最上位ビットのみがすべての8個のビットに代わってその色を表現する場合、ピクセルのブロック、したがってビデオのフレームを表すために使用されるデータのサイズは50パーセント削減される。
【0079】
この圧縮の方法は簡略であり、一般的にはビデオの質を下げる。対照的に、本発明の平滑化サブアルゴリズムはさらにインテリジェントな圧縮方法を組み込む。この方法は、特定のRGB表現をよりコンパクトなRGB表現にマッピングするためにカラーコードテーブル(「CCT」)を使用する。本発明の圧縮アルゴリズムと解凍アルゴリズムの両方とも同じCCTを使用する。ただし、使用可能な帯域幅、ローカルディスプレイ装置の機能等に応じて異なるカラーコードテーブルが選ばれてよい。
【0080】
ピクセルのブロックごとにピクセル値のヒストグラムが作成され、平滑化サブアルゴリズムがどのくらい頻繁に各ピクセル値が発生するのかを判断できるように周波数単位で並べ替えられる。あまり頻繁にではなく発生するピクセル値は、より頻繁に発生するピクセル値に比較される。ピクセル値がどの程度類似しているのかを判断するために、各ピクセルの赤、緑および青(「RGB」)の成分のカラー値に基づいて計算される。ヒストグラム分析中、カラーコード(つまりCCT)に対するRGB値のマップが作成される。あまり頻繁に発生しないピクセル値が類似したさらに頻繁に発生するピクセル値に調整される必要がある場合に、CCTはより頻繁に発生するピクセル値のカラーコードに、あまり頻繁に発生しないピクセルをマップするために使用される。このようにして雑音は各ブロックから効率的に削除され、各ピクセルを表すために使用されるビット数は削減される。
【0081】
例示を目的として、8×8ピクセルブロックが処理中であると仮定する。さらに、カレントブロックの中の64ピクセルの内、59個が青、4個が赤、および1個がライトブルーであるとさらに仮定する。5という低い頻度閾値と25という高い頻度閾値が使用されることも仮定する。言い換えると、ピクセル値が1つのブロックの中で5回未満発生すると、それは低頻度を有すると考えられる。同様にピクセル値が1つのブロックの中で25回を超えて発生する場合、それは高頻度を有すると考えられる。本発明の好適実施形態では、平滑化サブアルゴリズムはこれらの2つの閾値の間で発生するピクセル値を無視する。したがって、現在の例では、平滑化サブアルゴリズムは、赤のピクセルとライトブルーのピクセルは低頻度で発生し、青のピクセルが高頻度で発生すると判断する。
【0082】
次のステップで、4個の赤のピクセルおよび1個のライトブルーのピクセルという値が59個の青のピクセルの値と比較される。このステップでは、所定の距離閾値が使用される。あまり頻繁ではないピクセル値とより頻繁なピクセル値の間の距離がこの距離閾値の範囲内にあると、あまり頻繁ではないピクセル値がより頻繁なピクセル値に変換される。したがって、我々の現在の例では、ライトブルーのピクセルは青のピクセルに値で十分に近く、その距離は距離閾値より少ない可能性がある。その結果としてライトブルーのピクセルは青のピクセルにマッピングされる。対照的に、赤のピクセルと青のピクセルの間の距離は距離閾値を超えているため、赤のピクセルは青のピクセルにマッピングされない。本発明の平滑化サブアルゴリズムを使用すると、赤のピクセルはめったに発生しないが、赤のピクセル値と青のピクセル値の間の距離は、赤のピクセルが青のピクセルに変換されないほど十分に大きい。このようにして、本発明の平滑化サブアルゴリズムは、ビデオ画像における本当の変化を保持しつつ、アナログ対デジタル変換で入る不必要な雑音により引き起こされる変化を排除することによって比較される画像の冗長性を高める。
【0083】
キャッシング
平滑化サブアルゴリズムがデジタルビデオ画像データに適用された後、ビデオ画像を送信するために必要とされる帯域幅をさらに最小限に抑えるためにオプションのキャッシングサブアルゴリズムが適用されてよい。キャッシングサブアルゴリズムは過去に送信されたピクセルのブロックのキャッシュを使用する。NRDTサブアルゴリズムと同様に、キャッシングサブアルゴリズムはビデオフレーム内のピクセルのブロックに対して実行される。再び、任意のブロックサイズが使用されてよい(例えば8×8、16×16、32×32または64×32)。
【0084】
最初に、キャッシングサブアルゴリズムはキャッシュチェックを実行し、ピクセルのカレントブロックをキャッシュに記憶されているピクセルのブロックと比較する。キャッシュのサイズは任意の大きさであってよい。通常、キャッシュが大きいと「キャッシュヒット」の割合が高くなる。ただし、キャッシュのサイズが増大すると、メモリとハードウェアの要件が大きくなる。さらに比較の回数、したがって処理電力要件も、キャッシュのサイズが増大すると大きくなる。
【0085】
ピクセルの一致するボックスがキャッシュ内に位置すると「キャッシュヒット」が発生する。「キャッシュミス」は、ピクセルの一致するブロックがキャッシュ内で検出されない場合に発生する。キャッシュヒットが発生すると、ピクセルの新しいブロックは再送される必要はない。代わりに、メッセージとキャッシュ入力識別(「ID」)は遠隔参加者装置に送信される。一般的には、このメッセージとキャッシュ入力識別は、ピクセルのブロック全体を送信するために必要とされる帯域幅より少ない帯域幅を消費する。
【0086】
「キャッシュミス」が発生すると、ピクセルの新しいブロックが圧縮され、ユーザワークステーションに送信される。また、RMUとユーザワークステーションの両方とも、キャッシュ内にピクセルの新しいブロックを記憶することにより、そのそれぞれのキャッシュを更新する。キャッシュのサイズは制限されているため、より古いデータは上書きされる。当業者は、どの古いデータを上書きする必要があるのかを決定するために多様なアルゴリズムを使用できることを認識している。例えば、サンプルアルゴリズムは、キャッシュ内のピクセルの最も古いブロックを上書きするために利用でき、最も古いブロックは最近にではなく送信されたブロックとして定義される。
【0087】
キャッシュヒットを検索するために、ピクセルの新しいブロックはキャッシュ内に位置するピクセルのすべての対応するブロックと比較されなければならない。これが実行されてよい複数の方法がある。一実施形態では、サイクリックリダンダンシーチェック(「CRC」)がピクセルの新しいブロック、およびすべての対応するピクセルのブロックについて計算される。CRCはブロックのためのハッシュコードに類似している。ハッシュコードは、さらに大きなデータソースのより小さいが一意の表現である。したがって、CRCが一意である場合、キャッシュチェックプロセスはピクセルのブロック全体を比較する代わりに、一致がないか比較CRCを処理できる。ピクセルのカレントブロックのCRCがキャッシュ内のピクセルのブロックのどれかのCRCに一致する場合、「キャッシュヒット」が検出される。CRCはブロックのより小さな表現であるため、CRCの比較に必要とされる処理電力は少なくなる。さらに、ピクセルのブロックCRCのみが遠隔参加者位置に記憶されるキャッシュを構築することができる。このようにしてピクセルの完全なブロックを比較する代わりにCRCを比較することによりプロセッサの時間が節約され、したがって性能が改善される。
【0088】
ビットスライシング/圧縮:
いったんNRDTサブアルゴリズム、平滑化サブアルゴリズム、およびオプションのキャッシングサブアルゴリズムが実行されると、送信されなければならないピクセルの各ブロックが圧縮される。本発明の好適実施形態では、各ブロックはJBIG可逆圧縮アルゴリズムを使用して圧縮される。
【0089】
JBIG圧縮アルゴリズムは、ファクシミリ機械により送信される画像等の黒い画像と白い画像用に作られていた。しかしながら、本発明により活用される圧縮アルゴリズムは、カラービデオ画像を圧縮、送信できる。したがって、JBIG圧縮アルゴリズムを活用しているときには、カラービデオ画像はビットスライシングされ、結果として生じるビット平面は別個に圧縮されなければならない。
【0090】
カラービデオ画像のビット平面はカラービデオ画像の各ピクセルカラー値から単一ビットを抽出することにより作成される。例えば、ピクセルの色を表現するために8ビットが使用される場合には、カラービデオ画像は8ビット平面に分割される。圧縮アルゴリズムは、前述されたCCTと関連して、最重要ビットを含むビット平面を最初に、第2に最上位のビットを含む平面を2番目に送信する等である。CCTは各ピクセルカラーの最上位ビットが最初に記憶され、より上位ではないビットが最後に記憶されるように作られている。その結果として、最初に送信されるビット平面はつねに最も重要なデータを含み、最後に送信されるビット平面はつねに最も重要ではないデータを含むであろう。このようにして、遠隔ビデオモニタはRMUから漸次的にビデオを受信し、残りのビットを受信する前に画像の最上位ビットを受信し、表示する。このような方法は帯域幅の変化にあまり敏感ではなく、送信されるフレームのすべての詳細を待機する代わりに、ユーザがビデオのフレームを、それが送信されているときに見ることができるようにする。
【0091】
ビデオ信号の圧縮が完了した後、結果として生じるビデオ信号は、開閉器390を介してイーサネットコネクタ205または接続ポートコネクタ206のどちらかに送信される。
【0092】
図3Aを参照し直すと、RMU109はRMU109に電力を提供する電源221も備える。好ましくは、電源221は、メインの回路構成要素が故障した場合のバックアップ回路網を含む、冗長な電源である。電源221は電力ポート223を通して外部電源から電力を受け取る。RMUに対する電力は、CPU207に直接的に接続されるリセット回路網225によって制御される。リセット回路網225は電源をオン/オフにし、RMU109をリセットするために活用される。
【0093】
RMU109はCPU207に接続されているローカルKVMポート227も含む。ローカルKVMポート227は、ローカルキーボード123、ビデオモニタ127、およびカーソル制御装置125のケーブル129(図1)を介したRMU227への接続を可能にする。ローカルキーボード123、ビデオモニタ127、およびカーソル制御装置125が、取り付けられているシリアルデバイス111aと111b、サーバ113aと113b、コンピュータ115aと115b、および電源117のオンサイト制御に活用されてよい。
【0094】
オプションメニュー回路229は、CPU207の制御下で、本発明のユーザにオプションメニューを提供する。前述されたように、オプションメニューには、シリアルデバイス、遠隔サーバまたはコンピュータ、あるいは電源117に接続されている全デバイスに対する電力を制御するためのオプションが含まれている。
【0095】
本発明のシステムを活用するために、ユーザは最初にユーザワークステーション101で遠隔管理セッションを開始し、必要とされるユーザ名とパスワードを入力する。ただし、認証情報の一意の組み合わせが活用される可能性がある。ユーザワークステーション101は入力された情報をパケット化し、通信回線119を介してそれをインターネット/LAN/WAN108に、次に通信回線121を介してRMU109に送る。入力されたデータはRJ−45コネクタ201(あるいはRJ−11コネクタ202)を介してCPU207で受信される。イーサネットコネクタ205はネットワークプロトコルを削除し受信されたキーボード信号および/またはカーソル制御装置信号をCPU207に送信する。CPU207はユーザを認証するためにシステムに記憶されているすべてのユーザプロファイルを含むルックアップテーブルを活用する。さまざまなユーザプロファイルには、システムへのさまざまなレベルのアクセスが与えられてよい。例えば、特定のユーザはコンピュータ115aと115bのみにアクセスし、操作することが可能で、操作サーバ113aと113b、シリアルデバイス111aと111bおよび電源117からは制限されている。
【0096】
ユーザはいったん認証されると、オプションメニュー回路229がRMU109に取り付けられているすべての装置を含むオプションメニューを作成する。この場合、取り付けられている装置はシリアルデバイス111aと111b、サーバ113aと113b、コンピュータ115aと115b、および電源117を含む。ただし、RMU109が任意の数のシリアルデバイス、サーバ、コンピュータおよび関連する電源を収容してよいことは当業者には明らかとなるであろう。オプションメニュー回路229により作成されるオプションメニューはビデオプロセッサ212によって圧縮され、イーサネットコネクタ205によってパケット化されてから、RJ−45コネクタ201、通信回線121、インターネット/LAN/WAN108、および通信回線119の順序でユーザワークステーション101に送信される。該オプションメニューはデパッケト化され、ビデオモニタ105上での表示のためにユーザワークステーション101で解凍される。次にユーザはオプションメニューから所望される装置を選択するためにキーボード103とカーソル制御装置107を活用する。ユーザにより入力されるキーボードとカーソル制御装置の信号は次にユーザワークステーション101により符号化され、インターネット/LAN/WAN108を介してRMU109に送信され、以後RMU109に配置されるCPU207によって復号される。CPU207は受信されたキーボード信号とカーソル制御装置信号を解釈し、前述されたように選択された装置を用いてユーザを接続する。
【0097】
ユーザがサーバ113aまたは113bまたはコンピュータ115aおよび115bと接続されることを選択する場合、選択された装置のビデオ信号がビデオモニタ105に表示される。ビデオ信号は初期にKVMポート219で選択された装置から到着し、KVMポートヘッダ217に送られる。ビデオ信号は次にデジタル信号にアナログビデオ信号を変換するフレーム取り込み器215に送られる。結果として生じるデジタル化されたビデオ信号は次にPCIライザーカード209を通してCPU207に送られる。CPU207は次にビデオ信号を送信するための正しい場所を決定する(つまりローカルKVMポート227またはビデオプロセッサ212に)。ビデオ信号がローカルKVMポート227に送られると、ビデオ信号がローカルビデオモニタ127に表示される。代わりにビデオ信号がビデオプロセッサ212に送られる場合、それはRJ−45ポート201またはRJ−11ポート202のどちらかを通して通信回線121を介する伝送のために、ビデオプロセッサ212によって圧縮され、イーサネットコネクタ205または通信ポートコネクタ206のどちらかによりパケット化される。イーサネットコネクタ205または通信ポートコネクタ206は、ユーザワークステーション101への伝送のために任意の他の信号(つまりキーボード信号、カーソル制御装置信号等)を圧縮されたビデオ信号の上に付加する。
【0098】
別の接続されている装置に切り替えるために、ユーザはユーザワークステーション101(図1)に取り付けられている「印刷画面」またはキーボード103上の「F1」等の「ホットキー」を押す。これにより、オプションメニュー229はユーザに新しいシリアルデバイス、サーバ、コンピュータを選択する、あるいは接続されている装置の1つの電源を修正できるようにする。
【0099】
ここで図4を参照すると、本発明の好適実施形態でビデオプロセッサ212により活用される圧縮アルゴリズムの動作を示すフローチャートが描かれている。圧縮アルゴリズムはビデオプロセッサ212(図3)によってRMU109の内部で実行される。デジタル化されたビデオ信号は、当初、フレームバッファ380の内の1つである(図3D)未処理フレームバッファに記憶される(ステップ402)。この点で、圧縮アルゴリズムは、未処理フレームバッファに含まれている捕捉されたビデオデータを処理し、ユーザワークステーション101への伝送のためにそれを作成するために実行される。
【0100】
圧縮アルゴリズムの第1のステップはNRDT(ステップ403)である。NRDTサブアルゴリズムはビデオプロセッサ212(図3)によってRMU109の内部でも実行される。NRDTサブアルゴリズムは、やはり前述されたように、存在する場合どのピクセルのブロックがカレントフレームと比較フレームの間で変化したのかを判断する。
【0101】
好適実施形態では、ビデオフレームは最初に64×32ピクセルブロックに分割される。次に、NRDTサブアルゴリズムはピクセルの各ブロックに独立して適用される。本発明の代替実施形態は、所望されるビデオ解像度、使用可能な帯域幅等の基準に応じてさらに小さいブロックまたはさらに大きいブロックを活用してよい。
【0102】
次に、NRDTサブアルゴリズムはカレントフレームの中のピクセルのブロックと比較フレームの中のピクセルの対応するブロックの間で差異が存在するかどうかを判断するために2閾値モデルを利用する。2閾値モデルとはピクセル閾値とブロック閾値である。
【0103】
第1に、ピクセルブロックの各ピクセルは、そのピクセルが比較フレームの該対応するブロックの該対応するピクセルを基準にして変化したかどうかを判断するために調べられる。対応する比較ピクセルに関する各ピクセルの三色(つまり、赤、緑、および青)のそれぞれの距離値は、図7に関してさらに詳しく後述されるように計算される。距離値がピクセル閾値(つまり2閾値モデルの第1の閾値)より大きい場合、この距離値は距離合計値に加算される。
【0104】
次に、ピクセルブロックの中のすべてのピクセルが調べられた後に、結果として生じる距離合計値がブロック閾値(つまり2閾値モデルの第2の閾値)より大きい場合、ブロックは変化したと判断される。ビデオフレームの中のピクセルのあらゆるブロックが同じプロセスを経る。したがって、このプロセスがビデオフレーム全体に適用された後、プロセスは、プロセスが過去のビデオフレーム以来変化したと判断したすべてのピクセルブロックを識別するであろう。この時点で、比較フレームは変化したピクセルブロックで更新される。ただし、カレントフレームの未変更ピクセルブロックに対応する比較フレームのピクセルブロックは未変更のままとなる。このようにして、NRDTサブアルゴリズムによって使用される二閾値モデルは、アナログからデジタルへの変換の間に生じる雑音により導入されるピクセル値の変化を排除し、ビデオフレームの中の本当の変化も捕捉する。
【0105】
ビデオデータは、NRDTサブアルゴリズムによって処理された後、次に平滑化サブアルゴリズムによって処理される(ステップ419)。平滑化サブアルゴリズムは、アナログからデジタルへの変換中に生じる雑音により引き起こされるビデオ画像の粗さを削減することによって平滑でより高品質のビデオ画像を作成することを目的とする。
【0106】
平滑化サブアルゴリズムは最初に、NRDTサブアルゴリズムの結果生じたピクセル表現を各ピクセルを表現するために使用するビット量がさらに少ないピクセル表現に変換する。これはピクセル表現のサイズを最小限に抑えるために特に編成されるCCTを使用して実行される。平滑化サブアルゴリズムは、最も一般的に使用される色に最も少ない数の1ビットでカラーコードを選ぶためにCCTを使用する。例えば、白と黒は非常に一般的な色であると仮定される。したがって、白はつねに0を割り当てられ、黒はつねに1を割り当てられる。すなわち、白はすべての平面上で0というビット値で表現される。黒、つまり次に最も一般的な色は1つの平面を除きすべてで1というビット値として表示される。これにより圧縮アルゴリズムにより圧縮されるデータ量が削減される。次に、ブロックの中のピクセルごとに、カラーコードが割り当てられる。同時にカラーコードのヒストグラムがピクセルのブロック内の一意の色のそれぞれの発生回数を記憶するために作成される。カラーコードのこのヒストグラムは次に最も少ない発生回数から優勢な発生回数へのカラーコードのリストを作成するために並べ替えられる。
【0107】
いったんカラーコードの並べ替えられたリストが作成されると、次のステップは色をマージすることである。並べ替えられたリストの始めから作業すると、平滑化サブアルゴリズムは最も頻繁に発生しない色を、最も頻繁に発生する色に比較する。あまり頻繁に発生しない色がより頻繁に発生する色に非常に類似している場合には、あまり頻繁に発生しない色を有するピクセルはより頻繁に発生する色に変更される。2つの色が類似しているかどうかの判断は、RGB空間の三次元の点の間の距離を計算することにより実行される。公式は、
【数1】
であり、ここではDは距離であり、R1は低頻度ピクセルの赤の値であり、R2は高頻度ピクセルの赤の値であり、G1は低頻度ピクセルの緑の値であり、G2は高頻度ピクセルの緑の値であり、B1は低頻度ピクセルの青の値であり、B2は高頻度ピクセルの青の値である。距離が距離閾値内にある場合、2つの色は類似していると判断される。本発明の好適実施形態では、システム性能は距離閾値を二乗し、RGB差異の二乗和とこの値を比較することによって高められる。このステップにより、より多くの量の処理時間を必要とする合計の二乗根を取ることが排除される。
【0108】
ピクセルの各ブロックは雑音がないかフィルタリングされ、RGB表現からカラーコード表現に変換される。アナログ信号からデジタル信号への変換中にLCDコントローラ215(図3)によって生じる雑音はいくつかのピクセルの値を歪める。したがって、平滑化サブアルゴリズムが歪められたピクセルを補正する。平滑化サブアルゴリズムは、各ビデオ画像ブロックに存在する異なる色の数を削減することによって雑音を最小限に抑える。さらにこのような平滑化は冗長性がより大きい画像を生じさせ、したがってさらに高い圧縮率を生じさせる。
【0109】
平滑化後、キャッシングが実行される(ステップ421)。キャッシングはRMU109(図3)のビデオプロセッサ212により実行される全体的な圧縮アルゴリズムのサブアルゴリズムである。キャッシングは最近送信された画像のキャッシュを保持するためにRMU109(図3)を必要とする。このようなキャッシュはRAM386(図3D)で実現、記憶できる。キャッシングサブアルゴリズムは、最近のピクセルのブロックを、キャッシュに記憶されているビデオ画像の中のピクセルの対応するブロックと比較する(ステップ405)。最近送信されたピクセルのブロックがキャッシュに記憶されているピクセルの対応するブロックの1つと同じである場合、キャッシングサブアルゴリズムはビデオ画像のこの部分を再送しない。代わりに、最近送信されたブロックがすでにキャッシュに記憶されている(ステップ407)を示す「キャッシュヒット」メッセージがユーザワークステーション101に送信される。「キャッシュヒット」メッセージは、どのキャッシュがピクセルの対応するブロックを含むのかに関する情報を含み、それによりユーザワークステーション101はそのキャッシュからピクセルのブロックを検索し、その取り付けられているビデオディスプレイ装置で表示するためのビデオ画像を生成するためにそれを使用することができる。
【0110】
プロセスの中の次のステップ、ステップ409は、NRDTが、ピクセルのブロックが比較フレームのピクセルの対応のブロック以来変化したかどうかを判断する。このステップはステップ405の前にまたはこのステップと平行して実現することもできる。またステップ421、405および407は完全に排除されてよい。
【0111】
ステップ409の主要な目的は前回フレームからブロックが変化したかどうかを判断することである。ブロックが変化していない場合には、ユーザワークステーション101に更新済みのブロックを送信するニーズがある。それ以外の場合、ピクセルのブロックが変化した場合には、それは圧縮のために準備される(ステップ411)。好適実施形態では、ステップ409はステップ405以外の異なる技法を使用する。冗長性がないかチェックする2つの方法を用いると、高い方の圧縮が生じる。ステップ409と411の両方ともビデオプロセッサ212のマイクロプロセッサ388によって実行されるキャッシングサブアルゴリズムによって実行される(図3D)。
【0112】
変化した画像のあらゆる領域について、キャッシュは更新され、データはサーバスタックに送信される前に圧縮される。好適実施形態では、画像はIBM JBIG圧縮アルゴリズムを使用して圧縮される。JBIGは黒い画像と白い画像を圧縮することを目的としている。しかしながら、本発明はカラービデオ画像を送信することを目的としている。したがって、画像のビット平面が抽出され(ステップ411)、各ビット平面が別個に圧縮される(ステップ413)。最後に、圧縮された画像は、開閉器390(図3D)にデータを送信するサーバスタック417(ステップ415)に送信される。
【0113】
図5Aと図5Bは、圧縮プロセスの好適実施形態の詳細なフローチャートを提供する。捕捉されたビデオ画像のデジタル表現は転送され、フレームバッファ0 503またはフレームバッファ1 505のどちらかに記憶される。フレームバッファは、ビデオの1つのフレームを記憶できるメモリの領域である。2つのフレームバッファを使用すると画像データのより高速の捕捉が可能になる。ビデオの捕捉されたフレームは交互にフレームバッファ0 503とフレームバッファ1 505に記憶される。これによって、圧縮が過去のビデオのフレームで実行されている間にビデオの次のフレームを捕捉できるようになる。ビデオプロセッサ212では、フレームバッファ0 503とフレームバッファ1 505はフレームバッファ380の一部を備える(図3D)。
【0114】
NRDT試験は、フレームバッファ0 503とフレームバッファ1 505に記憶されるピクセルの各ブロックで実行され(ステップ519)、捕捉されたビデオ画像の各ブロックを過去に捕捉されたビデオ画像の対応するブロックに比較する。ステップ519はカレント未処理フレームバッファ(つまりフレームバッファ0 503またはフレームバッファ1 505)に記憶されているビデオ画像からのピクセルのブロックを、比較フレームバッファ521に記憶されるピクセルの対応するブロックに比較する。このステップは図6Aと図6Bに関してさらに詳しく後述される。
【0115】
ステップ519が、ピクセルのカレントブロックが変化したと判断した場合、最も近い色の一致関数が、フラッシュメモリ239(図3)に記憶されているクライアントカラーコードテーブル(「クライアントからのCCT」)511に含まれている情報に関連してフレームバッファ0 503とフレームバッファ1 505(ステップ509)に含まれているビデオ画像を処理する。最も近い色一致関数はマイクロプロセッサ388によってソフトウェアとして実行できる。最も近い色一致関数の詳細な説明は図6に関して以下に示される。
【0116】
最も近い色一致関数によってCCT513から得られるCCTはカラーコード変換(ステップ515)のために使用され、ビデオデータを表現するために必要とされるデジタルデータの量を削減するためにピクセルの変化したブロックの各ピクセルのデジタルRGB表現を変換する。カラーコード変換(ステップ515)は、NRDTサブアルゴリズム(ステップ519)が、過去に捕捉されたビデオ画像を基準にして変化したと判断するピクセルのブロックを受信する。カラーコード変換は、次にこのデジタルデータをさらにコンパクトな形式に変換し、結果をコード化フレームバッファ517に記憶する。コード化フレームバッファ517は、RAM386(図3D)の一部として実現できる。
【0117】
代わりに、ステップ509と515は、ステップ519と平行して実行されてよい。これらのステップを並列で実行すると、変化したピクセルのブロックごとに必要とされる処理時間が短縮される。このシナリオでは、ステップ509と515は変化したピクセルのブロックを見越して実行される。これが当てはまる場合、ステップ509と515のための処理は、ステップ519のための処理が完了すると同時に完了されてよい。したがって、アルゴリズムはステップ509と515の処理を待機する必要なく、ステップ509からステップ523に直接的に移動してよい。それ以外の場合、ステップ591が、ピクセルのブロックが変化しなかったと判断し、したがってステップ509と515の結果が必要とされない場合、これらの結果は単に破棄されてよい。
【0118】
ステップ515の完了時、キャッシングはサイクリックリダンダンシーチェック(CRC)(ステップ523)を実行することにより開始する。サイクリックリダンダンシーチェック(CRC)はある特定のデータのブロックのチェックサムまたはハッシュコードを作成するために当技術分野で公知の方法である。CRCは、データの2つのブロックについて計算され、次に比較されてよい。CRCが一致すると、ブロックは同じである。したがって、CRCは一般的にエラーがないかチェックするために使用される。本発明では、CRCはキャッシュに記憶されるピクセルのブロックとピクセルのブロックを比較するために使用される。したがって、ステップ523では、CRCはNRDTサブアルゴリズムによって変化したと判断されたピクセルの各ブロックについて計算される。CRCのアレイはCRCアレイ525に記憶される。
【0119】
次に図5Bを見ると、キャッシングサブアルゴリズムとビットスプライシング/圧縮サブアルゴリズムの概要が描かれている。アルゴリズムのこの部分はコード化フレームバッファ517とCRCアレイ525からの情報を待機し始める(ステップ527)。次に、新しいビデオモードが宣言されたかどうかに関する決定が下される(ステップ529)。新しいビデオモードは、例えば、ユーザワークステーション101がさまざまな帯域幅または色の要件を有する場合に宣言できる。新しいビデオモードが宣言されている場合、すべてのデータは無効にされ(ステップ531)、サブアルゴリズムはステップ527に戻り、コード化フレームバッファ517とCRCアレイ525から新しい情報を待機する。LCDコントローラ215内に配置されるダウンスケーラ回路362および/またはアップスケーラ回路364は、新しいビデオモードと互換性があるように出力されたデジタル化されたビデオを調整するために活用されてよい。ステップ527、529、および531はマイクロプロセッサ388(図3D)によって実行される全体的な圧縮アルゴリズムのすべてのステップである。
【0120】
ステップ529において、新しいビデオモードが宣言されていないと考えられる場合には、ピクセルのCRCのカレントブロックのキャッシュに入れられたCRCとの比較が実行される(ステップ533)。このブロックは、CRCアレイ525に含まれるカレントビデオフレームのCRCデータを、ブロック情報アレイ535に含まれる過去のCRCのキャッシュと比較する。ブロック情報アレイ535はピクセルブロックのキャッシュおよびピクセルブロックのCRCを記憶し、RAM386内の装置として実現できる(図3D)。ステップ533はマイクロプロセッサ388(図3D)によって実行される全体的な圧縮アルゴリズムの一部でもある。
【0121】
次にピクセルのカレントブロックがブロック情報アレイ535に含まれるピクセルブロックキャッシュ内に配置される場合(ステップ537)、キャッシュヒットメッセージはワークステーション101に送信され、ピクセルのブロックは完了、つまり処理済みとマークされる(ステップ539)。ユーザワークステーション101はRMU109(図3D)と同じピクセルブロックキャッシュを含むので、キャッシュヒットメッセージは、処理されたピクセルのブロックに対応するビデオ画像の部分を作成するためにキャッシュに含まれるピクセルの特殊ブロックを使用するようにユーザワークステーション101に命令するに過ぎない。
【0122】
次に、ピクセルの未処理ブロックについてチェックが実行される(ステップ539)。処理される、または更新される必要のあるピクセルのすべてのブロックは次更新矩形計算(a compute next update rectangle)を作成するために結合される。更新するものがない場合(つまり、ビデオがフレーム間で変化していない場合)には、アルゴリズムはステップ527に戻る(ステップ543)。したがってカレントフレームは遠隔参加者装置に送信されない。ビデオのカレントフレームの再送を排除することによって、サブアルゴリズムはビデオを送信するために必要とされる帯域幅を削減する。
【0123】
しかしながら、更新される必要がある画像の領域がある場合、更新矩形は最初に圧縮される。更新矩形は最初にビットスライシングされなければならない(ステップ545)。更新矩形のビット平面は更新矩形の各ピクセルから同じビットを採取することにより構築される。したがって、更新矩形が8ビットのピクセルを含む場合、それは8つのビット平面に分解できる。結果として生じるビット平面はビット平面バッファ547に記憶される。再び、ステップ541、543および545は、RMU109(図3)のマイクロプロセッサ388により実行されるビットスプライシング/圧縮のサブアルゴリズムすべての部分である。
【0124】
各ビット平面は、圧縮サブアルゴリズム(ステップ549)によって別々に圧縮される。この場合、圧縮は各ビット平面上で実行され、結果として生じるデータはサーバスタック417に送信される(ステップ551)。好適実施形態では、圧縮はビデオ圧縮装置382(図3)(ステップ549)によって実行される。それ以後、圧縮されたビット平面は開閉器390に送信される(図3D)。
【0125】
好適実施形態は毎秒20回フレームを捕捉するので、ビデオフレームキャプチャの間に300ms待機することが必要である。したがって、アルゴリズムは、サブアルゴリズムをステップ527に戻す前に、過去のフレームキャプチャから300msが経過するまで待機する(ステップ553)。
【0126】
ここで図6を参照すると、CCTを使用してあまり頻繁に発生しない色をより頻繁に発生する色に選択的にマッピングする最も近い一致関数(図5のステップ509)が描かれている。最も近い色一致関数509はフレームバッファ0 503またはフレームバッファ1 505に記憶されるビデオ画像のピクセルの各ブロックを連続して処理する。図6に示されるように、ピクセルのブロックはフレームバッファ0 503またはフレームバッファ1 505(ステップ600)に記憶されるビデオ画像から抽出される。好適実施形態では、抽出されたブロックは64×32ピクセルというサイズを有するが、任意のブロックサイズが活用されてよい。
【0127】
最も近い色一致関数は、あまり頻繁に発生しないピクセル値を、類似したより頻繁に発生するピクセル値に変換することによってA/D変換により生じた雑音を排除する。関数はヒストグラム分析および差異計算を活用する。最初に、最も近い色一致関数509はピクセル値のヒストグラムを作成する(ステップ601)。ヒストグラムはステップ600の間に抽出されるピクセルのブロック内での各ピクセル値の頻度を測定する。ヒストグラムは並べ替えられ、その結果頻繁に発生する色のリスト(人気のある色のリスト603)および最も頻繁に発生しない色のリスト(希少な色のリスト605)が作成される。リストごとの閾値は調整可能である。
【0128】
最も近い色一致関数509は、ピクセルが頻繁に派生する値にマッピングされるべきであるかどうかを判断するために各低頻度発生ピクセルを分析する。最初に、ピクセル値は希少色リスト605(ステップ607)から選ばれる。次にピクセル値は人気色リスト603から選ばれる(ステップ609)。これらの2つの値の間のこれらの距離が次に計算される(ステップ611)。このプロセスでは、距離は2個のピクセルの別々の赤、緑、および青の値を比較することによって計算される測定基準である。距離値Dは種々の方法で計算されてよい。1つのこのような例は以下のとおりである。
【数2】
この式では、R1は低頻度ピクセルの赤の値であり、R2は高頻度ピクセルの赤の値であり、G1は低頻度ピクセルの緑の値であり、G2は高頻度ピクセルの緑の値であり、B1は低頻度ピクセルの青の値であり、B2は高頻度ピクセルの青の値である。
【0129】
この式は、あまり頻繁に発生しないピクセル対より頻繁に発生するピクセル等、2つのベクトルの色の類似性または差異の規模を示す距離値Dを生じさせる。サブアルゴリズムの目標は、あまり頻繁に発生しないピクセルの色に比較されるときに、最低の距離値を生じさせる色を有するより頻繁に発生するピクセルを見つけることである。したがって、比較は計算された距離値ごとに実行される(ステップ613)。すべての過去の距離値未満である距離値が計算されるたびに、距離値は最も近い距離変数に書き込まれる(ステップ615)。
【0130】
いったんすべてのより頻繁に発生するピクセルがあまり頻繁に発生しないピクセルに比較されたと判断されると(ステップ617)、最低の発生Dが所定の閾値の範囲内にあるかどうかを判断するために計算が実行される(ステップ619)。このDが所定の閾値の範囲内にある場合、CCT513は低頻度で発生するピクセルを、このD値を生じさせた高頻度で発生するピクセルのカラーコード値にマッピングすることにより更新される(ステップ621)。このプロセスは、すべての低頻度ピクセルについて繰り替えされ、CCT513は相応して更新される。
【0131】
図7を見ると、RGB NRDTステップ519(図5A)がさらに詳細に描かれている。このプロセスはピクセルのすべてのブロックで動作する。カレントピクセルブロック700はカレントフレームバッファ(つまりフレームバッファ0 503またはフレームバッファ1 505(図5A))に含まれているビデオ画像のピクセルのブロックを表現する。過去のピクセルブロック701は比較フレームバッファ521(図5A)に含まれているビデオ画像のピクセルの対応するブロックを含む。ステップ519は、カレントピクセルブロック700と過去のピクセルブロック701から1つのピクセルに対応するピクセル値を抽出することにより開始する(ステップ703)。それから、ピクセル色値は、2個のピクセルの色の間の類似性または差異の大きさを示す距離値を計算するために使用される(ステップ705)。本発明の好適実施形態では、距離値は以下の式を使用して計算される。
【数2】
【0132】
前述のように、R1、G1およびB1は、フレームバッファピクセルのそれぞれ赤の値、緑の値、および青の値である。同様に、R2、G2およびB2は比較フレームバッファピクセルのそれぞれ赤の値、緑の値、および青の値である。
【0133】
次に、計算された距離値Dはピクセル閾値と比較される(ステップ707)。Dがピクセル閾値より大きい場合には、それは蓄積する距離合計に加算される(ステップ709)。Dの値がピクセル閾値未満である場合、差異は重要ではない(つまり雑音)であると考えられ、距離合計に加算されない。
【0134】
距離値を計算し、所定のピクセル閾値より大きい距離値を合計するこのプロセスは、ピクセルのブロックの最後のピクセルが処理されたと判断されるまで続行する(ステップ711)。いったん最後のピクセルに達すると、距離合計は第2の閾値、つまりブロック閾値と比較される(ステップ713)。距離合計がブロック閾値を上回っている場合は、過去に捕捉されたフレームから、ピクセルの対応するブロックに比較してピクセルのカレントブロックが変化したと指定される。それ以外の場合、距離合計がブロック閾値未満である場合、ピクセルのブロックは未変更として指定される。
【0135】
ピクセルのブロックが変化したと指定される場合、ステップ715が実行される。ステップ715は、ピクセルの特定のブロックが変化したことを示すフラグをセットする。さらに、ピクセルの新しいブロックが比較フレームバッファ521(図5A)に書き込まれ、ピクセルの対応する過去のブロックを置換する。
【0136】
それ以外の場合、距離合計がブロック閾値を超えない場合、ブロックは未変化と指定され、フラグは、ピクセルのこのブロックが遠隔参加装置に再送される必要がないことを示すためにセットされる(ステップ721)。むしろ、遠隔参加装置は、ビデオの過去のフレームについて表示されるピクセルの同じブロックを使用してピクセルのブロックにより表現されるビデオ画像の部分を作成し直す。この時点で、システムは、図5Aに関して前記にさらに詳細に説明されたように、ピクセルの変化したブロックについてCRCを計算する(図5Aのステップ523)。
【0137】
図8は、図7に示されるNRDTサブアルゴリズムによって使用される2レベルの閾値化をさらに図解する。例示的な目的のためだけに、ピクセルの4×4のブロックが示されている。各ピクセルは当技術分野で一般的に実行されるように0から255の範囲となる赤、緑および青の色値を与えられる。0という赤、緑および青の値を有するピクセルは黒のピクセルを表現するのに対し、255という赤、緑および青の値を有するピクセルは白のピクセルを表現する。過去のピクセルブロック751は比較フレームバッファ521(図5A)から取り込まれたピクセルのブロックである。過去のピクセル1 752は過去のピクセルブロック751の左上角のピクセルである。過去のピクセルブロック751のあらゆるピクセルは0という値を有するので、過去のピクセルブロック751は完全に黒い4×4ピクセル領域を表現する。
【0138】
カレントピクセルブロック753は、過去のピクセルブロック751と、ビデオフレームの同じ空間領域を表現するが、それは1フレーム遅い。ここではカレントピクセル1 754が過去のピクセル1 752と同じピクセル1であるが、1フレーム遅い。簡単にするために、白いカーソル等の小さな白いオブジェクトが過去のピクセルブロック751によって表現されるビデオ画像の領域に入ると仮定する。この変化はカレントピクセルブロック753のカレントピクセル1 754で発生する。カレントピクセルブロック753では、ピクセルの過半数は黒のままであるが、カレントピクセル1 754は、255、255、および255というRGB色値によって表されるように、現在白である。
【0139】
雑音がA/D変換により生じ、その結果過去のピクセル755が、0,0、および0というそのRGB値によって表されるように黒から灰色に変化したとさらに仮定する。新しい灰色はカレントピクセル756に割り当てられる2、2および2というRGB値によって表される。
【0140】
ピクセル閾値が100であり、ブロック閾値が200であるとさらに仮定する。NRDTサブアルゴリズムはカレントピクセルブロック753と過去のピクセルブロック751の各ピクセルの間の距離値を計算する。図7に関して前述されたように、本発明の好適実施形態で使用される式は、以下のとおりである。
【数2】
したがって、カレントピクセル1 754と過去のピクセル1 752の間の距離値は以下のとおり、
【数3】
つまり195,075である。195,075は100というピクセル閾値を超えているため、この距離値は距離合計に加算される。しかしながら、前記の距離の式を使用して計算されるようにピクセル間の距離は、100というピクセル閾値を上回っていない12に等しいために、黒い過去のピクセル755と灰色のカレントピクセル756の間の距離値は距離合計に加算されない。同様に、距離値は2個のピクセルブロックの中の残りのピクセルのすべてについて計算される。これらの距離値のそれぞれはゼロに等しい。したがって、これらの距離値はピクセル閾値未満であるので、それらは距離合計に加算されない。
【0141】
その結果として、すべてのピクセルの距離値が処理された後で、距離合計は195,075に等しくなる。この値は200というブロック閾値を上回っているので、ブロックが指定される。この例はNRDTサブアルゴリズムの2レベル閾値化特徴の優位点を図解している。すなわち、カレントピクセルブロック753のカレントピクセル756で発生した雑音が無視されたのに対し、カレントピクセルブロック753のカレントピクセル1 754で発生したビデオの本物の変化が認識された。
【0142】
最後に図9を見ると、ユーザワークステーション101(図1)によって実行される解凍アルゴリズムのフローチャートが示されている。解凍アルゴリズムはメッセージを待機することにより開始する(ステップ801)。このメッセージはRMU109のサーバスタック417からユーザワークステーション101に送信される。その後、ユーザワークステーション101は情報を受け取り、データをクライアントスタック803に書き込む。クライアントスタック803は、デジタルデータを恒久的にまたは一時的に記憶することができるレジスタまたは他の何らかのデバイスであってよい。本発明の一実施形態では、メッセージがTCP/IP通信プロトコルを使用して送信される。このシナリオでは、クライアントスタック803はローカルTCP/IPスタックである。他の実施形態はTCP/IP以外のプロトコルを使用してよい。しかしながら、通信プロトコルに関係なく、本発明は処理のために受信されたメッセージを記憶するためにクライアントスタック803を使用する。
【0143】
メッセージはいったんクライアントスタック803で受信されると、それは、メッセージが新しいビデオモードメッセージであるかどうかを判断するために処理される(ステップ805)。新しいビデオモードメッセージは、帯域幅変化、画面解像度または色の深みの変化、新しいクライアント等を含む種々の理由のために送信されてよい。このリストは新しいビデオモードメッセージを送信するための理由を限定することを目的とするのではなく、代わりにそれがいつ発生するのかの例を示す。メッセージが新しいビデオモードメッセージである場合、アプリケーション層823は新しいビデオモードを通知される(ステップ807)。好適実施形態に従って、アプリケーション層823は、ユーザワークステーション101の入力装置と出力装置(つまり、キーボード103、ビデオモニタ105、およびカーソル制御装置107)と接続するユーザワークステーション101によって実行されるソフトウェアである。したがって、あらゆるビデオ更新がアプリケーション層823に送信されなければならない。また、過去に送信されたフレームを記憶すること専用のすべてのメモリを含む古いバッファが解放され、新しいバッファが割り当てられる(ステップ809)。次に解像アルゴリズムはステップ801に戻る。
【0144】
新しいメッセージがビデオモードメッセージではない場合、それがキャッシュヒットメッセージであるかどうかを判断するために、メッセージはさらに処理される(ステップ811)。イエスの場合、キャッシュヒットメッセージは3つのキャッシュフレームバッファ815に記憶されているピクセルのブロックの内、どのピクセルのブロックがビデオ画像のそれぞれの部分を再構築するために使用されなければならないのかを判断するために解読される。本発明の好適実施形態では3個のキャッシュフレームバッファ815が使用されるが、本発明の精神から逸脱することなく任意の量のキャッシュフレームバッファが使用されてよい。キャッシュフレームバッファ815は、RMU109(図3)に内部に配置されるキャッシュフレームバッファに記憶されるピクセルの同じブロックを記憶する。したがって、キャッシュヒットメッセージはビデオデータを含まないが、むしろ単に遠隔参加者装置に、キャッシュフレームバッファ815に含まれているピクセルのどのブロックがマージフレームバッファ817に送信されるべきかに関して命令する。指定されたキャッシュの中に含まれるピクセルのブロックは、次にキャッシュフレームバッファ815からマージバッファ817にコピーされる(ステップ813)。最後に、アプリケーション層823は、ビデオ画像の領域は更新されたことを通知される(ステップ825)。マージバッファ817はカラーコードピクセル内のビデオのフレーム全体の現在の表現を含む。アプリケーション層823はマージバッファ817からピクセルデータをコピーし、接続されているビデオモニタ105のピクセルフォーマットに適合するためにデータをフォーマットする(ステップ819)。その後、フォーマットされたピクセルデータは、次にデータをビデオモニタ105に送信するフレームバッファ821を更新するために書き込まれる。代わりに、ビデオモニタの代わりに、フォーマットされたピクセルデータが、通常ビデオディスプレイ装置と使用されるビデオカード、メモリおよび/または任意の他のハードウェアまたはソフトウェアに書き込まれてよい。
【0145】
さらに、新しいメッセージが新しいビデオモードまたはキャッシュヒットメッセージではない場合、それは、それが圧縮ビデオデータを含むメッセージであるかどうかを判断するために試験される(ステップ827)。メッセージが圧縮ビデオデータを含んでいない場合には、解凍アルゴリズムがステップ801に戻り、サーバスタック417から送信される新しいメッセージを待機する。それ以外の場合、メッセージに圧縮ビデオデータが含まれている場合、データは解凍され、ビット平面フレームバッファ833に転送される(ステップ829)。前述されたように、好適実施形態はJBIG可逆圧縮技法を組み込む。したがって、ビデオデータの解凍は各個別ビット平面について実行されなければならない。各ビット平面が解像された後、それは、ビット平面フレームバッファ833に記憶される過去に解凍されたビット平面とマージされる(ステップ829)。十分な数のビット平面がマージされると、ビット平面フレームバッファ833に含まれるマージされたデータはマージフレームバッファ817に転送される(ステップ831)。代わりに、個々のビット平面が解凍され、マージフレームバッファ817に直接的に記憶され、それによりステップ831を排除する。ビデオの完全フレームを表示するために必要とされるデータのすべてがマージフレームバッファ817に転送されると、アプリケーション層823はフレームバッファ821を更新するためにマージフレームバッファ817内でデータをコピーする(ステップ819)。その後、データはビデオモニタ105に転送される。
【0146】
代替実施形態では、ビデオモニタ105で表示されるビデオは各ビット平面が受信された後に更新できる。言い換えると、ユーザは表示されたビデオの部分を更新するためにビデオの更新されたフレーム全体が受信されるまで待機する必要がない。ビデオ伝送に使用できる帯域幅が変化するときにこの代替方法は望ましい。また、ビデオディスプレイを更新するこの漸次的な方法はJBIG圧縮アルゴリズムを使用する優位点の1つである。
【0147】
次に、解凍アルゴリズムは、カレントビデオフレームの1つのフィールドからのカラーコードデータのすべてが受信されたかどうかを判断する(ステップ835)。完全フィールドが受信されなかった場合、解凍アルゴリズムはステップ801に戻り、サーバスタック417からクライアントスタック803に新規メッセージの形で送信されるメッセージの残りを待機する。それ以外の場合、完全フィールドが受信されると、解凍方法はアプリケーション層823に知らせる(ステップ837)。キャッシュヒットメッセージの処理に関して前述されたのと同様に、この通知はアプリケーション層823にマージフレームバッファ817内のデータを読み取り、それをカレントスクリーンピクセルフォーマットに変換するように命令する(ステップ819)。その後、フォーマットされたデータはフレームバッファ821を更新するために書き込まれ、データをビデオモニタ105に送信する。
【0148】
完全フィールドが受信され、アプリケーション層823が通知を受け取った後、完全フィールドがメッセージに含まれる最後のフィールドであるかどうかを判断するために、第2の決定が下される。そうである場合、ピクセルの新規に解凍されたブロックはキャッシュフレームバッファ815の1つに書き込まれる(ステップ841)。そうでない場合は、解凍アルゴリズムはステップ801に戻り、新規メッセージを待機し続ける。好ましくは、キャッシュフレームバッファ815に書き込まれるピクセルの新しいブロックは、その中に含まれるピクセルの最も古いブロックを上書きする。ステップ841は、キャッシュが最新式であり、RMU109のキャッシュと同期していることを確実にする。キャッシュ更新の完了後、解凍アルゴリズムはステップ801に戻る。
【0149】
本発明は好適実施形態および複数の代替実施形態に関して説明されてきたが、その実施形態は本発明の完全な開示を行う目的でかなり詳細に述べられ、このような実施形態は単に例示的にすぎず、本発明のすべての態様を制限し、その包括的な列挙を表現することを目的としない。したがって、本発明の範囲は以下の請求項によってのみ定められるものとする。さらに、数値変化は本発明の精神および原則から逸脱することなくこのような詳細で行われてよいことは当業者に明らかであろう。本発明がその本質的な特性から逸脱することなく他の形式で具現化できることが理解されなければならない。
【図面の簡単な説明】
【0150】
添付図面の説明に述べられている好適実施形態を参照することにより本発明をさらに理解することができる。描かれている実施形態は本発明を実施するためのシステムの例示的なものに過ぎないが、本発明の組織と運転方法の両方とも、一般的にはその追加の目的と優位点とともに図面および続く説明を参照することによりさらに容易に理解されてよい。図面は、付加されたように、あるいは以後に修正されるように詳細に述べられている本発明の範囲を制限することを目的とするのではなく、単に本発明を明確にし、例証することを目的としている。
本発明を完全に理解するために、ここで以下の図面を参照する。
【0151】
【図1】遠隔管理装置(「RMU」)を通した、キーボード、ビデオモニタ、およびカーソル制御装置を含むユーザワークステーションのネットワーキング装置、サーバ、およびコンピュータへの接続を描く、本発明の好適実施形態によるネットワーク遠隔管理システムの略図である。
【図2】ネットワーキング装置、サーバおよびコンピュータを制御するために活用される例のオプションメニューのスクリーンショットである。
【図3A】RMUと、シリアルデバイス、キーボード、ビデオモニタ、カーソル制御装置および電源用のコネクタの内部構造本発明の好適実施形態による図1に示されるRMUの好適実施形態のブロック図である。
【図3B】図3Aに図示されるシリアルカードの詳細なブロック図である。
【図3C】図3Aに図示されるKVMポートヘッダの詳細なブロック図である。
【図3D】図3Aに図示されるビデオプロセッサの詳細なブロック図である。
【図4】本発明に従ってRMUの好適実施形態により活用される圧縮アルゴリズムのフローチャートである。
【図5A】本発明の好適実施形態により活用される消音および差異試験アルゴリズムと、圧縮アルゴリズムの円滑化サブアルゴリズムを詳説したフローチャートである。
【図5B】本発明の好適実施形態により活用される圧縮アルゴリズムのキャッシングサブアルゴリズムおよびビットスライシング/圧縮サブアルゴリズムを詳説したフローチャートである。
【図6】最も近い一致関数と、本発明の好適実施形態により活用される圧縮アルゴリズムのCCTとのその統合を詳説したフローチャートである。
【図7】本発明の好適実施形態により活用される圧縮アルゴリズムの消音および差異試験サブアルゴリズムを詳説したフローチャートである。
【図8】本発明の好適実施形態により活用される圧縮アルゴリズムによって実行されるように、ピクセルのサンプルブロックに対する消音および差異試験サブアルゴリズムの例の適用を示した図である。
【図9】本発明の好適実施形態により使用される解凍アルゴリズムの動作の詳細なフローチャートを示した図である。
【技術分野】
【0001】
本発明は、概して、遠隔制御装置を通して1台または複数台のローカルユーザワークステーションからネットワークおよびコンピュータ装置を遠隔で管理するためのネットワーク遠隔管理システムに関する。具体的には、ユーザワークステーションに取り付けられているキーボード、ビデオモニタ、およびカーソルの制御装置が、それらの関連電源が遠隔制御装置に接続されているので、ドメインサーバ、ファイル/プリントサーバ、ヘッドレスサーバ、ネットワーク機器、シリアルIT装置、開閉器、ルータ、ファイアウォール、セキュリティインタフェース、アプリケーションサーバ、ロードバランサ、および環境制御装置を遠隔制御するために活用される。
【背景技術】
【0002】
多くの状況で、システム管理者から遠く離れた場所に位置するネットワーキング装置、サーバおよびコンピュータを管理することが望ましい。距離が十分に遠い場合、一般的には遠隔場所からコンピュータを制御するためにインターネットが使用される。ローカルユーザワークステーションに取り付けられているキーボード、ビデオモニタおよびカーソル制御装置を活用してインターネットまたはLAN上で遠隔コンピュータにアクセスするためには、例えばpcAnywhere等のソフトウェアプログラムが活用されてよい。pcAnywhere等の遠隔コンピュータアクセスプログラムは、通常、ホストソフトウェアが遠隔コンピュータにインストールされ、クライアントソフトウェアがユーザワークステーションにインストールされていることを必要とする。遠隔コンピュータにアクセスするためには、ユーザワークステーションのユーザが所望される遠隔コンピュータをリストから選択し、適切なユーザ名とパスワードを入力する。いったんアクセスがリモートコンピュータに与えられると、ユーザは遠隔コンピュータにアクセスし、操作するためにローカルユーザワークステーションに取り付けられているキーボード、ビデオモニタおよびカーソル制御装置を活用する。
【0003】
インターネット上でまたはモデムを介してユーザワークステーションから遠隔コンピュータを操作するためにはハードウェアソリューションも存在する。ただし、ソフトウェアソリューションとは対照的に、ハードウェアソリューションは通常ホストおよび/またはクライアントソフトウェアを必要としない。代わりに、ハードウェアソリューションは、通常、インターネット上であるいはTCP/IP等の共通プロトコルを介してLAN上でアクセス可能であるキーボード、ビデオモニタ、およびマウス(「KVM」)スイッチを活用する。ハードウェアソリューションはインターネットに接続するためにモデムも活用してよい。一般的には、ユーザまたはシステム管理者は、KVMスイッチと関連付けられるインターネットウェブブラウザまたはクライアントソフトウェアを活用して、KVMスイッチに取り付けられている遠隔コンピュータにアクセスする。いったん遠隔コンピュータが選択されると、遠隔コンピュータのビデオ信号はユーザワークステーションのビデオモニタに送られ、ユーザは遠隔コンピュータを制御するためにキーボードおよび/またはマウスを活用してよい。KVMスイッチは、さらにシステム故障の場合のハードリブートのために遠隔コンピュータの電源への接続を含んでよい。
【0004】
前述されたハードウェアソリューションとソフトウェアソリューションは、通常、ビデオ信号を送信するために必要とされる必要な帯域幅を削減するために圧縮アルゴリズムを活用する。例えば、本発明のネットワーク遠隔管理システムは、遠隔コンピュータおよび/またはディスプレイ装置に送信されなければならないデジタルデータを削減し、圧縮するために、参照することにより本書に組み込まれている出願番号第10/233,299号に開示されている圧縮アルゴリズムを使用する。一般的には、パーソナルコンピュータによって生成されるビデオ信号は空間的冗長性とフレーム間冗長性の両方を有する。例えば、ほぼ(near)遊休のパーソナルコンピュータでは、ビデオの連続フレーム間の唯一の変化がカーソルの点滅である可能性がある。ユーザが文書を入力しても画面の大半は経時的に変化しない。したがって、本発明により使用される圧縮アルゴリズムは、遠隔コンピュータおよび/またはビデオディスプレイ装置に送信されるデジタルビデオ信号データの量を削減するために、ビデオの連続フレーム間と各個別フレーム内の両方でこれらの冗長性を利用する。通信媒体上で送信されるデジタルデータの量を削減すると、通信時間が短縮され、必要とされる帯域幅が削減される。
【0005】
当技術分野で公知の大部分の形式のビデオ圧縮は、複雑な計算を必要とする。例えば、エムペグ(Moving Pictures Experts Group「MPEG」)ビデオ圧縮アルゴリズムはそのアルゴリズムの一部として離散コサイン変換を使用する。また、MPEG規格は、ビデオ画像の部分がある期間に渡ってどのように変化したのかを説明する運動ベクトルの計算を必要とする、フレーム間の「運動」の認識に依存している。これらのアルゴリズムは計算集約型であるため、それらは高価なハードウェアまたは低速のハードウェアが計算を完了するための十分な時間を可能にする長い送信時間のどちらかを必要とする。
【0006】
複雑さに加えて、多くの既存のビデオ圧縮技法は損失が多い(つまり、それらは必要とされる帯域幅を削減するためにビデオ信号情報のすべてを送信しない)。通常、このような損失が多い技法はビデオ画像の詳細を削減するか、あるいは活用される色の数を削減するかのどちらかである。色数の削減はコンピュータ管理システムアプリケーションに対する適切な圧縮解決策の一部となるであろうが、多くの他のアプリケーションではこのような結果はコンピュータ管理システムの意図された目的を無効にする。
【0007】
当技術分野で公知のシステムは、キーボード、マウスおよび/またはビデオモニタを含むローカルユーザワークステーションを遠隔コンピュータに結合するための方法および装置を開示する。請求されている発明は、遠隔コンピュータが標準サイズのパーソナルコンピュータのビデオモニタに表示されるメニューから選択されるシステムを開示する。システムユーザが遠隔コンピュータを選択すると、該遠隔コンピュータのビデオ信号がローカルユーザワークステーションのビデオモニタに送信される。システムユーザはローカルユーザワークステーションのキーボードとモニタを活用して遠隔コンピュータを制御してもよい。システムは、ローカルユーザワークステーションと遠隔コンピュータの間でマウス信号とキーボード信号を双方向で送信することもできる。遠隔コンピュータとローカルユーザワークステーションは公衆交換電話網(「PSTN」)およびモデムを介して、あるいは直接的なケーブル布線を介してのいずれかで接続されてよい。
【0008】
当技術分野で公知の別のシステムは、ローカルキーボード、マウスおよび/またはビデオモニタを複数の遠隔コンピュータの1台に結合するためのコンピュータ化された切り替えシステムの具体的なインプリメンテーションを開示する。特に、第1の信号調整装置は、ローカルビデオモニタに接続されている遠隔コンピュータのリストを表示するオンスクリーンプログラミング回路を含む。メニューを活性化するために、ユーザは、例えば「画面印刷」キーをローカルキーボードで押す。ユーザはローカルキーボードおよび/またはマウスを使用してリストから所望されるコンピュータを選択する。
【0009】
システムに従って、オンスクリーンプログラミング回路は、少なくとも2セットのトライステートバッファ、単一オンスクリーンプロセッサ、内部同期ジェネレータ、同期スイッチ、同期偏光器、およびオーバレイ制御論理を必要とする。トライステートバッファの第1のセットは遠隔コンピュータから受信されたビデオ信号の赤、緑および青の成分をビデオモニタに結合する。すなわち、第1のセットのトライステートバッファが付勢されると、赤、緑および青のビデオ信号が、トライステートバッファを通って遠隔コンピュータからローカルビデオモニタに渡される。第1のセットのトライステートバッファがアクティブでないとき、遠隔コンピュータからのビデオ信号は遮断される。同様に、トライステートバッファの第2の集合は単一オンスクリーンプロセッサの出力をビデオモニタに結合する。トライステートバッファの第2のセットが付勢されると、オンスクリーンプログラミング回路のビデオ出力がローカルビデオモニタに表示される。トライステートバッファの第2のセットがアクティブではないとき、オンスクリーンプログラミング回路からのビデオ出力は遮断される。代わりに、トライステートバッファの両方のセットとも付勢される場合、遠隔コンピュータビデオ信号はローカルビデオモニタでの表示の前にオンスクリーンプロセッサによって発生されるビデオ信号と結合される。
【0010】
本発明で開示されているオンスクリーンプログラミング回路は独自の水平同期信号と垂直同期信号も生成する。ビデオモニタ上でどの文字が表示されるのかを指示するために、CPUはオンスクリーンプロセッサに命令データを送信する。これによりオンスクリーンプロセッサはローカルビデオモニタでの表示のために内部ビデオRAMから文字を取り出す。
【0011】
オンスクリーンプロセッサ、つまりモトローラ(Motorola)MC141543オンスクリーンププロセッサにより生成されたオーバレイビデオ画像は、サイズと色の量、および単一オンスクリーンプロセッサで利用可能な文字に制限されている。言い換えると、システムは(つまり、壁用サイズまたはマルチモニタ型ビデオディスプレイではなく)標準サイズのコンピュータモニタのサイズに作られたオーバレイビデオを生成することを目的とし、単一オンスクリーンプロセッサによって提供される色の量および文字に制限されている。
【0012】
システムの動作中、遠隔コンピュータはオーバレイビデオディスプレイから選ばれる。その後、第1の信号調整装置はローカルキーボードとマウスからキーボード信号とマウス信号を受信し、中央のクロスポイントスイッチへの伝送のためにデータパケットを生成する。クロスポイントスイッチはデータパケットを、選択された遠隔コンピュータに結合されている第2の信号調整装置に送る。第2の信号調整装置は次にキーボードコマンド信号とマウスコマンド信号を、遠隔コンピュータのキーボードコネクタとマウスコネクタに送る。同様に、遠隔コンピュータによって生成されるビデオ信号は、第2の信号調整装置、クロスポイントスイッチ、および第1の信号調整装置を通して遠隔コンピュータからローカルビデオモニタに送られる。遠隔コンピュータから受信される水平同期ビデオ信号と垂直同期ビデオ信号は赤、緑、または青のビデオ信号の1つで符号化される。この符号化により遠隔コンピュータからローカルビデオモニタにビデオ信号を送信するために必要とされるケーブルの量が削減する。
【0013】
さらに別のシステムが、標準ネットワークプロトコル(例えばイーサネット、TCP/IP等)を用いて動作する標準ネットワーク(例えばローカルエリアネットワーク)に結合できるキーボード、ビデオ、マウス(「KVM」)切り替えシステムを開示している。システムは中央スイッチを複数のコンピュータ、およびキーボード、ビデオモニタおよびマウスを有する少なくとも1台のユーザステーションに結合する。中央スイッチは、中央スイッチをネットワークに接続するためのネットワークインタフェースカード(「NIC」)を含み、それは多くの追加コンピュータまたはリモート端末を含んでよい。ネットワークに取り付けられている遠隔端末に位置するユーザは、システムを活用して中央スイッチに結合されているコンピュータのいずれかを制御してよい。
【0014】
当技術分野で公知のさらに別のシステムは、遠隔に位置するI/O装置を有するコンピュータシステムを開示する。Thorntonのシステムはコンピュータ、第1のインタフェース装置と、遠隔で位置する第2のインタフェース装置を含む。第1のインタフェース装置はコンピュータに結合され、第2のインタフェース装置はヒューマンインタフェースが作成されるように、ビデオモニタと3台ものI/O装置(キーボード、マウス、プリンタ、ジョイスティック、トラックボール等)に結合される。第1のおよび第2のインタフェース装置は4本のワイヤケーブルを介して互いに結合されている。第1のインタフェース装置は接続されているコンピュータからビデオ信号を受信し、受信したビデオ信号の水平同期信号と垂直同期信号をビデオ信号の赤、緑、青の成分の内の少なくとも1つの上に符号化する。また、第1のインタフェース装置は第4のワイヤケーブルの中の第4のワイヤ上での伝送のためのデータパケットに、接続されているコンピュータから受信されたI/O信号を符号化する。その後、ビデオ信号の符号化された赤、緑および青の成分とデータパケットはヒューマンインタフェースに位置する第2のインタフェース装置に送信される。第2のインタフェース装置は、ビデオ信号の符号化された赤、緑および青の成分を復号し、符号化されていた水平同期信号と垂直同期信号を分離し、I/O信号データパケットを復号する。ビデオ信号と同期信号は、次に第2のインタフェースに取り付けられているビデオモニタに出力され、復号されたI/O信号はやはり第2のインタフェースに取り付けられている適切なI/O装置に送られる。第2のインタフェース装置はオプションで、第1のインタフェース装置への伝送のために第2のインタフェースに取り付けられているI/O装置から受信されるI/O信号を符号化するために回路網を含んでよい。
【0015】
さらに別のシステムは、取り付けられているキーボード、ビデオモニタ、およびマウスを有する1つまたは複数のユーザステーションに複数のコンピュータを接続するためのキーボード、ビデオ、マウスおよび電力切替え(「KVMP」)装置を開示する。KVMP切替え装置内に埋め込まれているオンスクリーンディスプレイ(「OSD」)回路網により、ユーザステーションに位置するユーザが該ユーザステーションに取り付けられているキーボード、ビデオモニタ、およびマウスを活用してコンピュータの内のいずか1台を選択し、操作できる。KVMP切替え装置内に位置する二次切替え回路網により、ユーザステーションに位置するユーザは各コンピュータに供給する電力をさらに制御できる。
【0016】
前記を鑑みて、遠隔制御切替え装置に接続されているネットワーキング装置、サーバ、コンピュータを操作、制御できる内蔵型ネットワーク遠隔管理システムに対するニーズは明らかに存在する。さらにこのようなシステムにより、ユーザは遠隔ネットワーキング装置、サーバおよびコンピュータに取り付けられている電源を制御できなければならない。システムは遠隔ネットワーク環境を管理し、それによりオンサイトシステム管理者を有する必要性を削減する。
【発明の開示】
【発明が解決しようとする課題】
【0017】
本発明は、周辺装置(つまりキーボード、ビデオモニタ、カーソル制御装置等)が取り付けられた1台または複数台のローカルユーザワークステーションから遠隔コンピュータネットワーキング環境を管理するための内蔵型のネットワーク遠隔管理システムを提供する。本発明のネットワーク遠隔管理システムによって、ユーザワークステーションに位置するユーザは遠隔場所に位置するネットワーキング装置、サーバおよびコンピュータにアクセスし、走査し、制御できるようになる。またネットワーク遠隔管理システムによって、ユーザはそれぞれ1つの遠隔装置に対する電源を制御できる。ネットワーキング装置(例えば、ハブ、スイッチ、ルータ等)は通常シリアルインタフェースを介して制御される。対照的に、サーバとコンピュータはキーボード、ビデオモニタ、およびマウスを活用して制御、操作される。
【0018】
遠隔ネットワーキング装置、サーバ、およびコンピュータはすべて中央遠隔管理装置(「RMU」)に接続され、RMUは代わりにイーサネットまたはモデム接続を介してインターネットまたはLANに接続される。RMUは、サーバとコンピュータに対する接続のためのキーボード、ビデオ、およびカーソル制御装置ポートのみではなく、ネットワーキング装置に対する接続のためのシリアルポートも有する。RMUはさらにネットワーキング装置、サーバ、およびコンピュータへの電力を制御できる電源への接続のためのポートも含む。標準的なケーブル布線は、ネットワーキング装置、サーバおよびコンピュータをRMU上の適切なポートに接続するために活用される。
【0019】
RMUは、多様なオペレーティングシステムおよび/またはマイクロソフト社(Microsoft Corporation)(「マイクロソフト(Microsoft)」)(Windows)、アップルコンピュータ社(Apple Computer Inc.)(「アップル(Apple)」)(マッキントッシュ(Macintosh))、サンマイクロシステムズ社(Sun Microsystems,Inc.)(「サン(Sun)」)(ソラリス(Solaris))、デジタルイクイップメント社(Digital Equipment Corporation(「DEC」))、コンパックコンピュータ社(Compaq Computer Corporation)(「コンパック(Compaq)」)(アルファ(Alpha))、IBM社(「IBM」)(RS/6000)、ヒューレットパッカード社(Hewlett-Packard Company(「HP」))(HP9000)、およびSGI(「旧シリコングラフィックス社(Silicon Graphics, Inc.)」)(IRIX)を含むが、これらの限定されない通信プロトコルの間の互換性も提供する。
【0020】
本発明のネットワーク遠隔管理システムを活用する場合、ユーザは最初にRMUに接続するためにユーザワークステーションに位置するクライアントソフトウェアを活用することによって管理セッションを開始する。代わりに、ユーザはRMUに接続するためにインターネットブラウザを活用してよい。次に、ユーザはRMUによってユーザ名とパスワードを入力するようにプロンプトを出される。RMUは複数のプロファイルとプロファイルごとのさまざまなレベルのアクセスを記憶できる。いったんユーザが認証されると、ユーザは、RMU内に位置するオプションメニュー回路網によって生成される、ユーザワークステーションのモニタ上にオプションメニューを与えられる。オプションメニューは、遠隔場所でのすべてのネットワーキング装置、サーバ、およびコンピュータを一覧表示するメニューからなる。オプションメニューは、さらにユーザが遠隔装置の各個に対する電力を制御できるようにするメニューを含む。ユーザはユーザワークステーションに取り付けられているキーボードおよび/またはカーソル制御装置を活用することによって、所望されるネットワーキング装置、サーバまたはコンピュータを選択する。いったんユーザが選択を行うと、ユーザは、ユーザが物理的に遠隔サイトにいるかのように該遠隔装置へのアクセスを提供される。
【0021】
RMUおよびユーザワークステーションはTCP/IPを介して通信する。TCP/IPを介した伝送の前に、一方向の(つまり、RMUからユーザワークステーションへの)ビデオ信号がフレーム取り込み器によってデジタル化される。この回路は、少なくとも毎秒20コマの速度で起動側コンピュータからビデオ出力を捕捉し、細くしたアナログビデオ信号をピクセルのデジタル表現に変換する。各ピクセルは赤の場合5ビット、緑の場合5ビットおよび青の場合5ビットでデジタル的に表現されている。デジタル表現は次に未処理フレームバッファに記憶される。圧縮アルゴリズムは次に未処理フレームバッファに含まれているデジタルデータを処理する。圧縮アルゴリズムは、実際には、詳しく後述されるように4つのサブアルゴリズム(つまり、消音および差異試験(「NRDT」)アルゴリズム、円滑化アルゴリズム、キャッシングアルゴリズム、およびビットスライシング/圧縮サブアルゴリズム)の組み合わせである。
【0022】
ビデオ信号がユーザワークステーションに到達した後、解凍が発生する。ユーザワークステーションは解凍アルゴリズムを実行することにより解凍装置として動作する。送信されたビデオ信号またはデータ信号とともに、RMUは「キャッシュ」ヒットを生じさせたビデオの部分(つまり、未変更ビデオの部分)に関して解凍装置にメッセージを送信する。それに応えて、解凍装置は送信済みビデオ信号とそのローカルキャッシュに含まれているピクセルのブロックに基づいてビデオフレームを構築する。また、解凍装置はRMUから受信されたピクセルの新しいブロックでそのローカルキャッシュを更新する。このようにして、解凍装置キャッシュは圧縮装置キャッシュと同期されたままとなる。圧縮装置と解凍装置の両方とも、より新しいビデオデータで古いデータを置換することによってそのそれぞれのキャッシュを更新する。
【0023】
さらに、RMUによって送信されるビデオ信号は可逆圧縮アルゴリズムを使用して圧縮されていた。したがって、解凍装置(例えばユーザワークステーションのソフトウェア)はこの可逆圧縮を逆転しなければならない。これはRMUによって送信されるフラグに基づいてビデオ画像の変更された部分を特定することにより行われる。このフラグ情報から、解凍装置はビデオの完全フレームを再構築することができる。
【0024】
さらに、解凍装置は、カラーコードテーブル(「CCT」)変換を逆転させることによってビデオフレームをその元のカラースキームに変換する。解凍装置はRMUのようにビデオデータを圧縮するために使用される同じCCTのコピーを局所的に記憶する。次にCCTはRMUから受信されたビデオデータを、ユーザワークステーションに取り付けられているモニタで表示されてよい標準RGBフォーマットに変換するために使用される。
【0025】
解凍アルゴリズムは、種々の実施形態における本発明のネットワーク遠隔管理システムで実現できる。例えば、一実施形態では、それはユーザワークステーションで実行されるソフトウェアアプリケーションとして実現できる。代替実施形態では、解凍アルゴリズムはインターネットエクスプローラー(Internet Explorer)またはネットスケープ ナビゲータ(Netscape Navigator、登録商標)のようなウェブブラウザ内で実行するために実現できる。このような実施形態はユーザワークステーションでのアプリケーションに特殊なソフトウェアのインストールに対するニーズを排除する。また該実施形態により、RMUは、コンピュータが起動側コンピュータから位置する距離に関係なく、インターネット機能を備えた任意のユーザワークステーションにビデオ信号を容易に送信できる。この機能は、本発明のネットワーク遠隔管理システムと関連するケーブル布線の費用を削減する。
【0026】
本発明はRMUからかなり離れていることがある場所でビデオ信号を表示するために使用できるので、ビデオ信号伝送が安全であることを確実にすることは重要である。伝送が安全ではない場合、ハッカー、競争相手、または他の未許可のユーザがビデオ信号に含まれている秘密情報を表示する可能性があるであろう。したがって、本発明のネットワーク遠隔管理システムは、当技術分野で公知のデジタル暗号化技術と容易に統合することを目的としている。本発明の一実施形態では、RMUのアイデンティティを検証するため、および送信されたビデオ信号とデータ信号を暗号化し、復号化するために128ビット暗号化技術が使用される。この実施形態では、遠隔参加者を検証するために128ビット公開鍵RSA暗号化技術が使用され、送信された信号を暗号化、および復号化するために128ビットのRC4秘密鍵が使用される。他の暗号化技術あるいはセキュリティ手段が使用されてよいのは言うまでもない。
【0027】
最後に、本発明のネットワーク遠隔管理システムはプラットホームに無関係な通信を可能とするので、活用される圧縮アルゴリズムはオペレーティングシステムに特殊なフックを利用しないし、プラットホームに特殊なGDIコールも使用しない。
【0028】
好適実施形態では、ここに、および同時係属出願、出願番号第10/233,299号に説明されている圧縮アルゴリズムがビデオ信号を送信するために使用される。ただし、ビデオ伝送システムはこのような実施形態に限定されない。むしろ、このシステムは本発明の精神から逸脱することなく任意の圧縮アルゴリズムと利用されてよい。
【0029】
したがって、ユーザが1台または複数台のローカルユーザワークステーションから遠隔ネットワーキング環境を制御できるようにする、改善されたネットワーク遠隔管理システムを提供することが本発明の目的である。このような遠隔ネットワーキング環境はドメインサーバ、ファイルサーバ/プリントサーバ、ヘッドレスサーバ、ネットワーク機器、シリアルIT装置、開閉器、ルータ、ファイアウォール、セキュリティインタフェース、アプリケーションサーバ、ロードバランサ、および環境制御装置を含んでよい。
【0030】
さらに、1台または複数のローカルユーザワークステーションが、遠隔管理装置に接続されている遠隔ネットワーキング装置、サーバ、およびコンピュータにアクセスし、走査できるようにするネットワーク遠隔管理システムを提供することが本発明の目的である。
【0031】
集中し、統合され、安全な制御を提供する単一のプラットホームに関係のないネットワーク遠隔管理システムを提供することは本発明の別の目的である。
【0032】
緊急アクセスのためにモデムを含むネットワークに無関係な遠隔ネットワーク管理システムを提供することが、本発明の追加の目的である。
【0033】
KVM装置のBIOSレベル制御およびシリアルデバイスのコンソールレベル制御を可能にするネットワーク遠隔管理システムを提供することが本発明の追加の目的である。
【0034】
さらに、ウェブブラウザを介して1つの画面から全サーバと他の接続装置の単一の連結された表示を提供するネットワーク遠隔管理システムを提供することが本発明の目的である。
【0035】
シングルサインオンとインタフェースを含むネットワーク遠隔管理システムを提供することは本発明の別の目的である。
【0036】
さらに、アップグレードできるネットワーク遠隔管理システムを提供することが本発明の目的である。
【0037】
モデム、無線、ケーブル、DSLおよびフラクショナル(fractional)T1を含む低帯域幅接続で高性能を提供するネットワーク遠隔管理システムを提供することは本発明の追加の目的である。
【0038】
高品質ビデオの考えられる最速の伝送を確実にするためにビデオ圧縮アルゴリズムおよびフレーム取り込み器技術を活用するネットワーク遠隔管理システムを提供することが本発明の別の目的である。
【0039】
さらに、最新のコンソール履歴の表示を提供するために内蔵シリアルポートバッファリングを含むネットワーク遠隔管理システムを提供することは本発明の目的である。
【0040】
インストールと走査が容易であるネットワーク遠隔管理システムを提供することはさらに別の目的である。
【0041】
さらに、コンパクトであり、容易にアクセスできる通信ポートを提供するネットワーク遠隔管理システムを提供するために本発明の目的である。
【0042】
さらに、ローカルユーザワークステーションの周辺装置と、ドメインサーバ、ファイルサーバ/プリントサーバ、ヘッドレスサーバ、ネットワーク機器、シリアルIT装置、開閉器、ルータ、ファイアウォール、セキュリティインタフェース、アプリケーションサーバ、ロードバランサ、および環境制御装置に配置されるネットワーキング装置、サーバおよびコンピュータの間でエラーのない通信を可能にするネットワーク遠隔管理システムを提供することが本発明の目的である。
【0043】
遠隔に配置されるネットワーキング装置、サーバおよびコンピュータに電源を制御できる機能が付いたネットワーク遠隔管理システムを提供することが本発明の目的である。
【0044】
構造の関係する要素の動作および機能の方法のみではなく、本発明の他の目的、特徴および特性、ならびにパーツと製造の経済の組み合わせは、すべてが本明細書の一部を形成する添付図面を参照して以下の詳細な説明を考慮するときにさらに明らかになるであろう。
【発明を実施するための最良の形態】
【0045】
必要とされるように、本発明の詳細な例示的な実施形態がここに開示されている。ただし、本発明による技法、システムおよび動作構造は、多岐にわたる形式とモードで具現化されてよく、その内のいくつかは開示されている実施形態のものと極めて異なる可能性がある。その結果として、ここに開示されている特定の構造上および機能上の詳細は単に典型的であるにすぎないが、その点でそれらは開示の目的のために最善の実施形態を与え、本発明の範囲を定めるここのクレームの基礎となると見なされる。以下は本発明の(いくつかの代替実施形態のみではなく)好適実施形態の詳細な説明も提示する。
【0046】
まず図1を参照すると、本発明によるネットワーク遠隔管理システムの好適実施形態のアーキテクチャが描かれている。具体的には、ネットワーク遠隔管理システムは、キーボード103と、ビデオモニタ105と、カーソル制御装置107を含むユーザワークステーション101と、遠隔管理装置(「RMU」)109と、インターネット/LAN/WAN108と、公衆交換電話網(「PSTN」)106と、シリアルデバイス111aと111b、サーバ113aと113b、遠隔コンピュータ115aと115b、および電源117を備えて示されている。好ましくはユーザワークステーション101とRMU109は、それぞれ通信回線119と121を介してインターネット/LAN/WAN108に接続されている。CAT5ケーブル布線が通信回線119と121用の好適ケーブル布線であるが、同軸ケーブル、光ファイバケーブル、または複数CAT5ケーブル等の他のケーブル布線が使用されてよい。CAT5ケーブル布線は、長い距離を送信される信号の強度を維持しつつ、ケーブル布線費用を削減するため好ましい。代わりに、RMU109をインターネット/LAN/WAN108およびシリアルデバイス111aと111b、サーバ113aと113b、コンピュータ115aと115b、および電源117に接続するために、無線ネットワーキング装置も活用されてよい。同様に、無線ネットワーキング装置はインターネット/LAN/WAN108にユーザワークステーション101を接続するために活用されてもよい。
【0047】
代替実施形態では、ユーザワークステーション101はRMU109に接続するためにPSTN106を活用してよい。PSTN109がRMU109に接続するために活用される場合、通信回線120と122は好ましくはCAT3ケーブルとなるであろう。一例として、この通信手段は、インターネット/LAN/WAN108が適切に機能していない場合等緊急事態で活用されてよい。
【0048】
通信回線119と121は、CAT5ケーブルによって結合されるそれぞれの装置に位置するRJ−45ソケットに各端部を差し込むことによりユーザワークステーション101とRMU109に接続される。RJ−45ソケットとプラグが好ましいが、RJ−11、RG−58、RG−59、軍用コネクタ(British Navy Connector)(「BNC」)およびSTコネクタを含むが、これらに限定されない他のタイプのコネクタが使用されてよい。
【0049】
遠隔管理システムはローカルユーザワークステーション101を含み、好ましくはキーボード103、ビデオモニタ105および/またはカーソル制御装置107等の専用周辺装置を備える。プリンタ、スキャナ、ビデオカメラ、バイオメトリック走査装置、マイク等の他の周辺装置もワークステーションに配置されてよい。各周辺装置は、通信線路119を介してインターネット/LAN/WAN108に取り付けられている、ユーザワークステーション101に直接的にまたは間接的に接続される。無線周辺装置もこのシステムとともに使用してよいことは言うまでもない。好ましい運転モードでは、取り付けられている周辺装置からユーザワークステーション101で受信されるすべての電子信号(つまりキーボード信号とカーソル制御装置信号)が、通信回線119を介してインターネット/LAN/WAN108に送信される。それ以後、信号は通信回線121を介してRMU109に送信される。RMUは受信された信号を、この図ではシリアルデバイス111aと111b、サーバ113aと113b、コンピュータ115aとt115b、および電源117を含むそれぞれの遠隔装置に送信する。
【0050】
RMU109は、マイクロソフト(Microsoft)(ウィンドウズ(Windows))、アップル(Apple)(マッキントッシュ(Macintosh))、サン(Sun)(ソラリス(Solaris))、DEC、コンパック(Compaq)(アルファ(Alpha))、IBM(RS/6000)、HP(HP9000)、およびSGI(IRIX)を含むが、これらに限定されないすべての一般的に使用されている今日のコンピュータオペレーティングシステムとプロトコルと互換性があってよい。さらに、ローカルデバイスは、ユニバーサルシリアルバス(「USB」)、米国規格協会情報交換標準コード(「ASCII」)、および推奨規格(Recommend Standard)−232(「RS-232」)を含む種々のプロトコルを介して遠隔コンピュータと通信してよい。
【0051】
シリアルデバイス113aと113bは、それぞれ通信回線112aと112bを介してRMU109に接続される。好ましくは通信回線112aと112bは、RJ−45コネクタと成端されるCAT5ケーブルである。しかしながら、すべてのシリアルデバイスにRJ−45ポートが装備されているわけではないので、通信回線112aと112bをシリアルデバイス111aと111bに適切に接続するために特殊なアダプタが必要とされる可能性がある。例えば、シリアルデバイス111aのみがシリアルポートを具備していた場合、アダプタは通信回線112aのRJ−45コネクタをシリアルデバイス111aに位置するシリアルポートに接続するであろう。
【0052】
同様に、電源117は通信回線118を介してRMU109に接続される。好ましくは通信回線118は、各端部でRJ−45コネクタと成端したCAT5ケーブルである。
【0053】
サーバ113aと113b、およびコンピュータ115aと115bはそれぞれ通信回線114a、114b、116a、および116bを介してRMU109に接続される。好ましくは、通信回線114a、114b、116aおよび116bは、サーバ113aと113bおよびコンピュータ115aと115bのキーボード、ビデオ、およびカーソル制御装置のポートを図示されているようにRMU109で単一ポートに接続できるようにする3対1の同軸ケーブルである。
【0054】
管理およびアクセスのために遠隔ネットワーキング環境に接続するために、ユーザはユーザワークステーション101で遠隔管理セッションを開始する。最初にユーザは、ユーザにユーザ名とパスワードを入力するようにプロンプトを出すワークステーション101を使用して配置されているクライアントソフトウェアにアクセスする。しかしながら、システムはある特定のユーザを識別する、および/または認証するために識別データの任意の組み合わせを活用してよい。取り付けられているキーボード103、カーソル制御装置107または他の周辺装置を活用すると、ユーザはユーザ名とパスワードを入力する。いったんユーザ名とパスワードが入力されると、ユーザワークステーション101は通信回線119を介してインターネット/LAN/WAN108に接続する。ユーザワークステーション101は、種々の方法でインターネット/LAN/WAN108に接続してよい。例えば、ユーザワークステーション101はイーサネット接続を通してインターネット/LAN/WAN108に接続されてよい。この例では、通信回線119はCAT5ケーブルであろう。インターネット/LAN/WAN108への接続は、通信回線119に対するニーズを排除する無線接続を通して達成されてもよい。例えば、RMU109は、インターネット/LAN/WAN108と通信するために、標準ワイヤレスフィディリティ(「Wi−Fi」)ネットワーキング装置を活用してよい。
【0055】
代わりに、ユーザワークステーション101は、モデム接続を活用することによってPSTN106を介してRMU109と接続してよい。この代替例では、接続回線120と122はCAT3ケーブルであろう。
【0056】
次にユーザ名とパスワードはインターネット/LAN/WAN108を通して、通信回線121を介してRMU109に送られる。RMU109はユーザ名とパスワードを受信し、ユーザワークステーション101に位置するユーザを認証する。いったんユーザがRMU109によって認証されたら、RMU109内に位置するオプションメニュー回路がモニタ105を介してユーザ101に、RMU109を通してアクセスできるすべての装置を一覧表示するオプションメニューを提供する。ユーザは、ユーザワークステーション101に取り付けられているキーボード103、カーソル制御装置105、または何らかの他の周辺装置を活用してこのオプションメニューから選択を行う。
【0057】
図2に示されているように、オプションメニュー201は装置リスト203と、第1のデスクトップウィンドウ205と、電力制御ウィンドウ207と、第2のデスクトップウィンドウ209と、シリアルデバイスウィンドウ211とからなる。装置リスト203はRMU109に接続されるすべてのアクティブな装置とイナクティブな装置を一覧表示する。ユーザは制御に所望される装置を選択するためにこのメニューを活用する。この例では、第1のデスクトップウィンドウ205は遠隔コンピュータの内の1台のデスクトップを表示する。第1のデスクトップウィンドウ205を選択することによって、ユーザは、表示されている遠隔コンピュータを制御するためにキーボード103と、カーソルコントロールデバイス107、または何か他の周辺装置を活用してよい。同様に、ユーザは電源117にアクセスし、操作するために電力制御ウィンドウ207を活用してよい。電力制御ウィンドウ207は、平均活用電力、RMS電流、RMS電圧、内部温度等の取り付けられている各装置のステータスのみではなく、電源117に接続されているすべての装置のリストも表示する。電力制御ウィンドウ207は主に、電源117に取り付けられている装置に電力を循環させるために活用される。しかしながら、電源117はプログラムで制御できるため、電力制御ウィンドウ207は電源117で可能なあらゆる機能を実行するために活用されてよい。
【0058】
第2のデスクトップウィンドウ209は、第2の遠隔コンピュータまたはサーバにアクセスし、操作するために活用される。シリアルデバイスウィンドウ211は、遠隔管理装置109に取り付けられている任意の遠隔シリアルデバイスを操作し、アクセスするために活用される。シリアルデバイスウィンドウ211は、シリアルデバイスにより生じる過去の出力のみではなく、シリアルデバイスにより生じる現在の出力も表示する。シリアルデバイスの過去の出力はRMU109に配置されるバッファに記憶される。
【0059】
好ましくは、最適メニュー201は、取り付けられている装置がRMU109に対する接続単位で配列されるメニューからなる。例えば、シリアルデバイス111aと111bは好ましくはサーバ113aと113bおよびコンピュータ115aと115bとは異なるメニューに一覧表示されるであろう。また、オプションメニューは、電源117を制御するためのサブメニューからなる。
【0060】
RMU109は、RMU109にとって局所的なユーザが取り付けられているシリアルデバイス111aと111b、サーバ113aと113b、およびコンピュータ115aと115b、電源117等を制御できるようにする、取り付けられているキーボード123、カーソル制御装置125およびビデオモニタ127をさらに含んでよい。キーボード123、カーソル制御装置125、およびビデオモニタ127は局所的にRMU109を構成するために活用されてもよい。キーボード123、カーソル制御装置125およびビデオモニタ127は、インタフェースケーブル129を介してRMU109に接続されている。代わりにキーボード123、カーソル制御装置125、およびビデオモニタ127は標準キーボード、カーソル制御装置、およびビデオモニタのコネクタを介してRMU109に接続されてよい。
【0061】
次に図3Aを参照すると、描かれているのは本発明によるRMU109の好適実施形態である。キーボード信号とマウス信号は、通信回線121を介してインターネット/LAN/WAN108からRJ−45ポート201に到達する。RMU109はRJ−45ポート201、RJ−11ポート202、イーサネットコネクタ205、モデムモジュール204、通信ポートコネクタ206、CPU207、通信ポートコネクタ208、PCIライザーカード209、シリアルカード211、ビデオプロセッサ212、シリアルポート213、フレーム取り込み器215、KVMポートヘッダ217、KVMポート219、電源221、電力ポート233、リセット回路網225、ローカルKVMポート227、およびオプションメニュー回路229からなる。図示されているように、RMU109がイーサネット接続を介してインターネット/LAN/WAN108に接続する場合、最初にキーボードおよび/またはカーソル制御装置信号がRJ−45ポート201に達する。次に、信号は、信号をデパケット化するイーサネットコネクタ205に送信される。代わりに、キーボード信号および/またはカーソル制御装置信号がモデムを介して送信される場合には、信号はRJ−11ポート202でPSTN106から到達してよい。この場合、信号は、受信した信号を復調し、以後信号をデパケット化する通信ポートコネクタ206にモデムモジュール204に送信される。
【0062】
イーサネットコネクタ205または通信ポートコネクタ206から、次にキーボードおよび/またはカーソル制御装置信号がビデオプロセッサ212を介してCPU207に送信される。CPU207は、キーボード信号とカーソル制御装置信号のための適切な宛先を決定するために、キーボード信号および/またはカーソル制御装置信号の中に含まれているルーティング情報を活用する。キーボード信号およびカーソル制御装置信号が電源117に対するコマンドを指定する場合、CPU207は(例えばルックアップテーブルを活用して)受信されたコマンドを解釈し、通信ポートコネクタ208と電力ポート210を介して電源117に適切なコマンドを送信する。好ましくは、電力ポート210は、RMUが電力ストリップと接続し、それがあたかもシリアルデバイスであるかのようにそれを操作できるようにするためのRJ−45コネクタである。
【0063】
CPU207が、キーボード信号とカーソル制御装置信号にシリアルデバイスルーティング情報が含まれると判断すると、キーボード信号とカーソル制御装置信号がPCIライザーカード209を通してシリアルカード211に送信される。図3Bに示されるように、シリアルポート211はUART/開閉器301、シリアルトランシーバ303およびプログラマブルメモリ305から構成される。シリアルカード211は双方向シリアル伝送が可能である。キーボード信号および/またはカーソル制御装置信号がPCIライザーカード209からシリアルポート213に送信されているとき、信号は当初、メモリ305に記憶されているデータと論理を活用して、キーボード信号および/またはカーソル制御装置が送信される適切なシリアルトランシーバ303を決定するUART/開閉器301に送信される。シリアルカード211の好適実施形態では、UART/開閉器301はEXAR XR17c158である。以後、アナログ信号は並列フォーマットから直列フォーマットに信号を変換する適切なシリアルトランシーバ303に送信される。シリアルトランシーバ303は好ましくはIntersilのHIN23Eシリアルトランシーバである。キーボード信号および/またはカーソル制御装置信号がシリアルポート213に送信される。
【0064】
対照的に、シリアルデバイス111aまたは111bからのコマンドがシリアルポート213、シリアルカード211、およびPCIライザーカード209を介してCPU207に送信されるとき、コマンドは、初期に、シリアルコマンドを並列フォーマットに変換するシリアルトランシーバ303に送信される。以後、コマンドは、PCIライザーカード209を介してCPU207にコマンドを再送するUART/開閉器301に送信される。CPU207は受信されたコマンドを解釈し、ビデオモニタ105での表示のために仮想端末をエミュレートする。本発明は任意の数のシリアルポート213を組み込んでよい。図3Aに図示されている例では、2台のシリアルデバイス111aと111bがそれぞれシリアルポート213aと213bに接続される。
【0065】
CPU207が、キーボード信号および/またはカーソル制御装置信号がサーバ113aと113bまたはコンピュータ115aと115b向けであると判断すると、CPU207はPCIライザーカード209とフレーム取り込み器215を通して、適切なKVMポート219に信号を送信するKVMポートヘッダ217にキーボード信号とカーソル制御装置信号を送信する。図3Cに示されているように、KVMポートヘッダ217は開閉器350と、ビデオスイッチ352と、UART354とからなる。キーボード信号および/またはカーソル制御装置信号がKVMポート219からKVMポートヘッダ217に送信されると、信号は当初UART354で受信される。UART354は受信されたシリアルキーボード信号および/またはカーソル制御装置信号を並列フォーマットに変換する。次に、変換されたキーボード信号および/またはカーソル制御装置信号は、フレーム取り込み器215に信号を再送する開閉器350に送信される。
【0066】
同様に、双方向キーボード信号および/またはカーソル制御装置信号もフレーム取り込み器215からKVMポート219に送信される。フレーム取り込み器215から受信されるキーボード信号および/またはカーソル制御装置信号は、KVMポートヘッダ217に配置される開閉器350に送信される。キーボード信号および/またはカーソル制御装置信号の中に含まれる制御信号を活用して、開閉器350は適切なUART354に受信されたキーボード信号および/またはカーソル制御装置信号を送信する。UART354は、次に、KVMポート219への伝送のために並列フォーマットから直列フォーマットにキーボード信号および/またはカーソル制御装置信号を変換する。
【0067】
また、KVMポートヘッダ217は、KVMポート219で受信される一方向ビデオ信号をフレーム取り込み器215に送信する。KVMポート219から受信されるアナログビデオ信号は、初期にビデオスイッチ352に送信される。ビデオスイッチ352は次にビデオ信号を、受信されたアナログビデオ信号をデジタルフォーマットに変換するフレーム取り込み器215に再送する。
【0068】
図3Dを見ると、ビデオ信号がフレーム取り込み器215によってデジタル化された後で、デジタル化されたビデオ信号はCPU207を介してビデオプロセッサ212に送信される。ビデオプロセッサ212はビデオインポート370、Rアウト376a、Gアウト376b、Bアウト376c、ピクセルプッシャー378、フレームバッファ380、圧縮装置382、フラッシュメモリ384、RAM386、マイクロプロセッサ388、および開閉器390から構成される。図3Dの上部に示されているビデオインポート370は、CPU207からデジタル化されたビデオ信号を受信する。ビデオインポート370の出力は、それぞれデジタル化されたビデオ信号の赤の成分、緑の成分および青の成分を表すRアウト376a、G−アウト376bおよびBアウト376cとして示されている。ビデオインポート370はこれらのデジタル化されたビデオ信号成分を、送信され、ピクセルプッシャー378に記憶されるピクセルの形式で出力する。ピクセルプッシャー378、フラッシュメモリ384、およびランダムアクセスメモリ(「RAM」)386は通信バス387を介してマイクロプロセッサ388と通信する。また、ピクセルプッシャー378は、それぞれ通信バス379と381を介して、フレームバッファ380(例えば未処理フレームバッファ、比較フレームバッファ等)と圧縮装置382と通信する。圧縮アルゴリズムはマイクロプロセッサ388によって実行される。一般的に、圧縮は以下のように動作する。
【0069】
消音および差異試験
前述されたように、アナログビデオ信号のデジタル化は、これらの信号をデジタル通信媒体(例えば、ネットワーク、LAN、WAN、インターネット等)を介して送信できるようにするために必要である。しかしながら、デジタル化プロセスの有害な副作用は量子化誤差と雑音がビデオ信号の中に入り込むことである。したがって、消音および差異試験サブアルゴリズム(「NRDTサブアルゴリズム」)はビデオ信号のデジタル化の間に入る雑音を削減することを目的としている。加えてNRDTサブアルゴリズムは同時に最近捕捉されたビデオのフレーム(つまり「カレントフレーム」)と過去に捕捉されたビデオのフレーム(つまり、「比較フレーム」)の間の差異を決定する。
【0070】
最初に、NRDTサブアルゴリズムは、未処理フレームバッファに含まれているカレントフレームを64×32ブロックのピクセルに分割する。代わりに、ビデオフレーム全体のサイズ、通信媒体の帯域幅、所望される圧縮歩留まり等の基準に基づいて(例えば、8×8ピクセル、16×16ピクセル、32×32ピクセル等の)他のサイズのブロックが使用されてよい。
【0071】
カレントフレームがブロックに分割されてから、2レベルの閾値モデルがピクセルのブロックに適用され、それが比較フレームに関して変化したかどうかを判断する。これらの2つの閾値は「ピクセル閾値」と「ブロック閾値」である。
【0072】
最初に、既定のピクセルが調べられ、三色(つまり、赤、緑および青)のピクセルのそれぞれの値が、比較フレームの中のその対応するピクセルの値を用いて計算される。この計算から距離値が算出される。距離値がピクセル閾値(つまり2レベルの閾値の第1の閾値)より大きい場合、この距離値は距離合計に加えられる。このプロセスはブロックの中のピクセルごとに実行される。
【0073】
次に、ブロックの中のピクセルのすべての距離値が前述されたように計算され、処理された後、距離合計の結果として生じる値はブロック閾値(つまり2レベルの閾値の第2の閾値)に比較される。距離合計がブロック閾値を超えている場合には、このピクセルのブロックは比較フレームの中の対応するピクセルのブロックに比較して変化したと見なされる。変化が確認されると、比較フレームバッファに記憶されている比較フレームはピクセルの新しいブロックで更新される。さらに、新しいピクセルのブロックは、圧縮フォーマットでさらに処理され、ユーザワークステーションに送信される。
【0074】
対照的に、距離合計がブロック閾値より大きくない場合、ピクセルのブロックは未変更であると判断される。その結果として、比較フレームバッファは更新されず、このピクセルのブロックはユーザワークステーションに送信されない。ピクセルの未変更ブロックの伝送を排除すると、送信されるデータの総量が削減され、それにより伝送時間が延び、必要とされる帯域幅が削減される。
【0075】
NRDTサブアルゴリズムは少量のピクセルの中の大きな変化と大量のピクセルの中の小さな変化の両方の位置を突き止めるために理想的である。その結果として、NRDTサブアルゴリズムはピクセルのブロック内で変化したピクセル数を単にカウントする公知のパーセンテージ閾値アルゴリズムより効率的且つより正確である。このようなアルゴリズムを用いると、ピクセルのブロックの中の数個のピクセルが劇的に(つまり黒から白へ)変化した場合、アルゴリズムは、変化したピクセルの総数がパーセンテージ閾値を超えないであろうため、ピクセルのブロックを未変更であると見なすであろう。この結果は多くの場合、コンピュータビデオの伝送での表示エラーにつながる。
【0076】
例えば、文書を編集しているユーザを考えてみる。ユーザが「E」を「F」に変更する等、単一の文字を変更する場合、ビデオ画像の2-3個のピクセルのみが変化するであろう。しかしながら、この変化に基づいて、結果として生じる文書は元の文書からは著しく異なる。パーセンテージ閾値アルゴリズムはこの変化を登録せず、したがって表示エラーにつながる。パーセンテージ閾値アルゴリズムは、一般的には、変化したブロックの中のピクセル数を見るのみで、数個のピクセルがかなり変化したビデオ画像変化を認識することはできない。しかしながら、本発明によって使用されるNRDTサブアルゴリズムは、その2レベルの閾値のおかげで、ピクセルのこのようなブロックがビデオの連続フレームの間でかなり変化したことを認識するであろう。
【0077】
平滑化
NRDTサブアルゴリズムが、ピクセルのブロックが変化したと判断すると、このブロックを表すデジタルデータは平滑化サブアルゴリズムによってさらに処理する。このサブアルゴリズムは、アナログ対デジタル変換の間に入る雑音を削減する。
【0078】
第1に、各デジタルピクセル表現はピクセルごとにより少ない量のビットを使用する表現に変換される。各ピクセルの各色を表現するためにより少ない数のビットの使用によりカラービデオを圧縮することは当技術分野で公知である。例えば、共通ビデオ規格はビデオ信号の赤の成分、緑の成分および青の成分のそれぞれを表すために8ビットを使用する。24個の総ビットはピクセルを表現するために使用されるため、この表現は一般的には「24ビットRGB表現」と呼ばれている。ピクセルの赤、緑および青の成分の4個の最上位ビットのみがすべての8個のビットに代わってその色を表現する場合、ピクセルのブロック、したがってビデオのフレームを表すために使用されるデータのサイズは50パーセント削減される。
【0079】
この圧縮の方法は簡略であり、一般的にはビデオの質を下げる。対照的に、本発明の平滑化サブアルゴリズムはさらにインテリジェントな圧縮方法を組み込む。この方法は、特定のRGB表現をよりコンパクトなRGB表現にマッピングするためにカラーコードテーブル(「CCT」)を使用する。本発明の圧縮アルゴリズムと解凍アルゴリズムの両方とも同じCCTを使用する。ただし、使用可能な帯域幅、ローカルディスプレイ装置の機能等に応じて異なるカラーコードテーブルが選ばれてよい。
【0080】
ピクセルのブロックごとにピクセル値のヒストグラムが作成され、平滑化サブアルゴリズムがどのくらい頻繁に各ピクセル値が発生するのかを判断できるように周波数単位で並べ替えられる。あまり頻繁にではなく発生するピクセル値は、より頻繁に発生するピクセル値に比較される。ピクセル値がどの程度類似しているのかを判断するために、各ピクセルの赤、緑および青(「RGB」)の成分のカラー値に基づいて計算される。ヒストグラム分析中、カラーコード(つまりCCT)に対するRGB値のマップが作成される。あまり頻繁に発生しないピクセル値が類似したさらに頻繁に発生するピクセル値に調整される必要がある場合に、CCTはより頻繁に発生するピクセル値のカラーコードに、あまり頻繁に発生しないピクセルをマップするために使用される。このようにして雑音は各ブロックから効率的に削除され、各ピクセルを表すために使用されるビット数は削減される。
【0081】
例示を目的として、8×8ピクセルブロックが処理中であると仮定する。さらに、カレントブロックの中の64ピクセルの内、59個が青、4個が赤、および1個がライトブルーであるとさらに仮定する。5という低い頻度閾値と25という高い頻度閾値が使用されることも仮定する。言い換えると、ピクセル値が1つのブロックの中で5回未満発生すると、それは低頻度を有すると考えられる。同様にピクセル値が1つのブロックの中で25回を超えて発生する場合、それは高頻度を有すると考えられる。本発明の好適実施形態では、平滑化サブアルゴリズムはこれらの2つの閾値の間で発生するピクセル値を無視する。したがって、現在の例では、平滑化サブアルゴリズムは、赤のピクセルとライトブルーのピクセルは低頻度で発生し、青のピクセルが高頻度で発生すると判断する。
【0082】
次のステップで、4個の赤のピクセルおよび1個のライトブルーのピクセルという値が59個の青のピクセルの値と比較される。このステップでは、所定の距離閾値が使用される。あまり頻繁ではないピクセル値とより頻繁なピクセル値の間の距離がこの距離閾値の範囲内にあると、あまり頻繁ではないピクセル値がより頻繁なピクセル値に変換される。したがって、我々の現在の例では、ライトブルーのピクセルは青のピクセルに値で十分に近く、その距離は距離閾値より少ない可能性がある。その結果としてライトブルーのピクセルは青のピクセルにマッピングされる。対照的に、赤のピクセルと青のピクセルの間の距離は距離閾値を超えているため、赤のピクセルは青のピクセルにマッピングされない。本発明の平滑化サブアルゴリズムを使用すると、赤のピクセルはめったに発生しないが、赤のピクセル値と青のピクセル値の間の距離は、赤のピクセルが青のピクセルに変換されないほど十分に大きい。このようにして、本発明の平滑化サブアルゴリズムは、ビデオ画像における本当の変化を保持しつつ、アナログ対デジタル変換で入る不必要な雑音により引き起こされる変化を排除することによって比較される画像の冗長性を高める。
【0083】
キャッシング
平滑化サブアルゴリズムがデジタルビデオ画像データに適用された後、ビデオ画像を送信するために必要とされる帯域幅をさらに最小限に抑えるためにオプションのキャッシングサブアルゴリズムが適用されてよい。キャッシングサブアルゴリズムは過去に送信されたピクセルのブロックのキャッシュを使用する。NRDTサブアルゴリズムと同様に、キャッシングサブアルゴリズムはビデオフレーム内のピクセルのブロックに対して実行される。再び、任意のブロックサイズが使用されてよい(例えば8×8、16×16、32×32または64×32)。
【0084】
最初に、キャッシングサブアルゴリズムはキャッシュチェックを実行し、ピクセルのカレントブロックをキャッシュに記憶されているピクセルのブロックと比較する。キャッシュのサイズは任意の大きさであってよい。通常、キャッシュが大きいと「キャッシュヒット」の割合が高くなる。ただし、キャッシュのサイズが増大すると、メモリとハードウェアの要件が大きくなる。さらに比較の回数、したがって処理電力要件も、キャッシュのサイズが増大すると大きくなる。
【0085】
ピクセルの一致するボックスがキャッシュ内に位置すると「キャッシュヒット」が発生する。「キャッシュミス」は、ピクセルの一致するブロックがキャッシュ内で検出されない場合に発生する。キャッシュヒットが発生すると、ピクセルの新しいブロックは再送される必要はない。代わりに、メッセージとキャッシュ入力識別(「ID」)は遠隔参加者装置に送信される。一般的には、このメッセージとキャッシュ入力識別は、ピクセルのブロック全体を送信するために必要とされる帯域幅より少ない帯域幅を消費する。
【0086】
「キャッシュミス」が発生すると、ピクセルの新しいブロックが圧縮され、ユーザワークステーションに送信される。また、RMUとユーザワークステーションの両方とも、キャッシュ内にピクセルの新しいブロックを記憶することにより、そのそれぞれのキャッシュを更新する。キャッシュのサイズは制限されているため、より古いデータは上書きされる。当業者は、どの古いデータを上書きする必要があるのかを決定するために多様なアルゴリズムを使用できることを認識している。例えば、サンプルアルゴリズムは、キャッシュ内のピクセルの最も古いブロックを上書きするために利用でき、最も古いブロックは最近にではなく送信されたブロックとして定義される。
【0087】
キャッシュヒットを検索するために、ピクセルの新しいブロックはキャッシュ内に位置するピクセルのすべての対応するブロックと比較されなければならない。これが実行されてよい複数の方法がある。一実施形態では、サイクリックリダンダンシーチェック(「CRC」)がピクセルの新しいブロック、およびすべての対応するピクセルのブロックについて計算される。CRCはブロックのためのハッシュコードに類似している。ハッシュコードは、さらに大きなデータソースのより小さいが一意の表現である。したがって、CRCが一意である場合、キャッシュチェックプロセスはピクセルのブロック全体を比較する代わりに、一致がないか比較CRCを処理できる。ピクセルのカレントブロックのCRCがキャッシュ内のピクセルのブロックのどれかのCRCに一致する場合、「キャッシュヒット」が検出される。CRCはブロックのより小さな表現であるため、CRCの比較に必要とされる処理電力は少なくなる。さらに、ピクセルのブロックCRCのみが遠隔参加者位置に記憶されるキャッシュを構築することができる。このようにしてピクセルの完全なブロックを比較する代わりにCRCを比較することによりプロセッサの時間が節約され、したがって性能が改善される。
【0088】
ビットスライシング/圧縮:
いったんNRDTサブアルゴリズム、平滑化サブアルゴリズム、およびオプションのキャッシングサブアルゴリズムが実行されると、送信されなければならないピクセルの各ブロックが圧縮される。本発明の好適実施形態では、各ブロックはJBIG可逆圧縮アルゴリズムを使用して圧縮される。
【0089】
JBIG圧縮アルゴリズムは、ファクシミリ機械により送信される画像等の黒い画像と白い画像用に作られていた。しかしながら、本発明により活用される圧縮アルゴリズムは、カラービデオ画像を圧縮、送信できる。したがって、JBIG圧縮アルゴリズムを活用しているときには、カラービデオ画像はビットスライシングされ、結果として生じるビット平面は別個に圧縮されなければならない。
【0090】
カラービデオ画像のビット平面はカラービデオ画像の各ピクセルカラー値から単一ビットを抽出することにより作成される。例えば、ピクセルの色を表現するために8ビットが使用される場合には、カラービデオ画像は8ビット平面に分割される。圧縮アルゴリズムは、前述されたCCTと関連して、最重要ビットを含むビット平面を最初に、第2に最上位のビットを含む平面を2番目に送信する等である。CCTは各ピクセルカラーの最上位ビットが最初に記憶され、より上位ではないビットが最後に記憶されるように作られている。その結果として、最初に送信されるビット平面はつねに最も重要なデータを含み、最後に送信されるビット平面はつねに最も重要ではないデータを含むであろう。このようにして、遠隔ビデオモニタはRMUから漸次的にビデオを受信し、残りのビットを受信する前に画像の最上位ビットを受信し、表示する。このような方法は帯域幅の変化にあまり敏感ではなく、送信されるフレームのすべての詳細を待機する代わりに、ユーザがビデオのフレームを、それが送信されているときに見ることができるようにする。
【0091】
ビデオ信号の圧縮が完了した後、結果として生じるビデオ信号は、開閉器390を介してイーサネットコネクタ205または接続ポートコネクタ206のどちらかに送信される。
【0092】
図3Aを参照し直すと、RMU109はRMU109に電力を提供する電源221も備える。好ましくは、電源221は、メインの回路構成要素が故障した場合のバックアップ回路網を含む、冗長な電源である。電源221は電力ポート223を通して外部電源から電力を受け取る。RMUに対する電力は、CPU207に直接的に接続されるリセット回路網225によって制御される。リセット回路網225は電源をオン/オフにし、RMU109をリセットするために活用される。
【0093】
RMU109はCPU207に接続されているローカルKVMポート227も含む。ローカルKVMポート227は、ローカルキーボード123、ビデオモニタ127、およびカーソル制御装置125のケーブル129(図1)を介したRMU227への接続を可能にする。ローカルキーボード123、ビデオモニタ127、およびカーソル制御装置125が、取り付けられているシリアルデバイス111aと111b、サーバ113aと113b、コンピュータ115aと115b、および電源117のオンサイト制御に活用されてよい。
【0094】
オプションメニュー回路229は、CPU207の制御下で、本発明のユーザにオプションメニューを提供する。前述されたように、オプションメニューには、シリアルデバイス、遠隔サーバまたはコンピュータ、あるいは電源117に接続されている全デバイスに対する電力を制御するためのオプションが含まれている。
【0095】
本発明のシステムを活用するために、ユーザは最初にユーザワークステーション101で遠隔管理セッションを開始し、必要とされるユーザ名とパスワードを入力する。ただし、認証情報の一意の組み合わせが活用される可能性がある。ユーザワークステーション101は入力された情報をパケット化し、通信回線119を介してそれをインターネット/LAN/WAN108に、次に通信回線121を介してRMU109に送る。入力されたデータはRJ−45コネクタ201(あるいはRJ−11コネクタ202)を介してCPU207で受信される。イーサネットコネクタ205はネットワークプロトコルを削除し受信されたキーボード信号および/またはカーソル制御装置信号をCPU207に送信する。CPU207はユーザを認証するためにシステムに記憶されているすべてのユーザプロファイルを含むルックアップテーブルを活用する。さまざまなユーザプロファイルには、システムへのさまざまなレベルのアクセスが与えられてよい。例えば、特定のユーザはコンピュータ115aと115bのみにアクセスし、操作することが可能で、操作サーバ113aと113b、シリアルデバイス111aと111bおよび電源117からは制限されている。
【0096】
ユーザはいったん認証されると、オプションメニュー回路229がRMU109に取り付けられているすべての装置を含むオプションメニューを作成する。この場合、取り付けられている装置はシリアルデバイス111aと111b、サーバ113aと113b、コンピュータ115aと115b、および電源117を含む。ただし、RMU109が任意の数のシリアルデバイス、サーバ、コンピュータおよび関連する電源を収容してよいことは当業者には明らかとなるであろう。オプションメニュー回路229により作成されるオプションメニューはビデオプロセッサ212によって圧縮され、イーサネットコネクタ205によってパケット化されてから、RJ−45コネクタ201、通信回線121、インターネット/LAN/WAN108、および通信回線119の順序でユーザワークステーション101に送信される。該オプションメニューはデパッケト化され、ビデオモニタ105上での表示のためにユーザワークステーション101で解凍される。次にユーザはオプションメニューから所望される装置を選択するためにキーボード103とカーソル制御装置107を活用する。ユーザにより入力されるキーボードとカーソル制御装置の信号は次にユーザワークステーション101により符号化され、インターネット/LAN/WAN108を介してRMU109に送信され、以後RMU109に配置されるCPU207によって復号される。CPU207は受信されたキーボード信号とカーソル制御装置信号を解釈し、前述されたように選択された装置を用いてユーザを接続する。
【0097】
ユーザがサーバ113aまたは113bまたはコンピュータ115aおよび115bと接続されることを選択する場合、選択された装置のビデオ信号がビデオモニタ105に表示される。ビデオ信号は初期にKVMポート219で選択された装置から到着し、KVMポートヘッダ217に送られる。ビデオ信号は次にデジタル信号にアナログビデオ信号を変換するフレーム取り込み器215に送られる。結果として生じるデジタル化されたビデオ信号は次にPCIライザーカード209を通してCPU207に送られる。CPU207は次にビデオ信号を送信するための正しい場所を決定する(つまりローカルKVMポート227またはビデオプロセッサ212に)。ビデオ信号がローカルKVMポート227に送られると、ビデオ信号がローカルビデオモニタ127に表示される。代わりにビデオ信号がビデオプロセッサ212に送られる場合、それはRJ−45ポート201またはRJ−11ポート202のどちらかを通して通信回線121を介する伝送のために、ビデオプロセッサ212によって圧縮され、イーサネットコネクタ205または通信ポートコネクタ206のどちらかによりパケット化される。イーサネットコネクタ205または通信ポートコネクタ206は、ユーザワークステーション101への伝送のために任意の他の信号(つまりキーボード信号、カーソル制御装置信号等)を圧縮されたビデオ信号の上に付加する。
【0098】
別の接続されている装置に切り替えるために、ユーザはユーザワークステーション101(図1)に取り付けられている「印刷画面」またはキーボード103上の「F1」等の「ホットキー」を押す。これにより、オプションメニュー229はユーザに新しいシリアルデバイス、サーバ、コンピュータを選択する、あるいは接続されている装置の1つの電源を修正できるようにする。
【0099】
ここで図4を参照すると、本発明の好適実施形態でビデオプロセッサ212により活用される圧縮アルゴリズムの動作を示すフローチャートが描かれている。圧縮アルゴリズムはビデオプロセッサ212(図3)によってRMU109の内部で実行される。デジタル化されたビデオ信号は、当初、フレームバッファ380の内の1つである(図3D)未処理フレームバッファに記憶される(ステップ402)。この点で、圧縮アルゴリズムは、未処理フレームバッファに含まれている捕捉されたビデオデータを処理し、ユーザワークステーション101への伝送のためにそれを作成するために実行される。
【0100】
圧縮アルゴリズムの第1のステップはNRDT(ステップ403)である。NRDTサブアルゴリズムはビデオプロセッサ212(図3)によってRMU109の内部でも実行される。NRDTサブアルゴリズムは、やはり前述されたように、存在する場合どのピクセルのブロックがカレントフレームと比較フレームの間で変化したのかを判断する。
【0101】
好適実施形態では、ビデオフレームは最初に64×32ピクセルブロックに分割される。次に、NRDTサブアルゴリズムはピクセルの各ブロックに独立して適用される。本発明の代替実施形態は、所望されるビデオ解像度、使用可能な帯域幅等の基準に応じてさらに小さいブロックまたはさらに大きいブロックを活用してよい。
【0102】
次に、NRDTサブアルゴリズムはカレントフレームの中のピクセルのブロックと比較フレームの中のピクセルの対応するブロックの間で差異が存在するかどうかを判断するために2閾値モデルを利用する。2閾値モデルとはピクセル閾値とブロック閾値である。
【0103】
第1に、ピクセルブロックの各ピクセルは、そのピクセルが比較フレームの該対応するブロックの該対応するピクセルを基準にして変化したかどうかを判断するために調べられる。対応する比較ピクセルに関する各ピクセルの三色(つまり、赤、緑、および青)のそれぞれの距離値は、図7に関してさらに詳しく後述されるように計算される。距離値がピクセル閾値(つまり2閾値モデルの第1の閾値)より大きい場合、この距離値は距離合計値に加算される。
【0104】
次に、ピクセルブロックの中のすべてのピクセルが調べられた後に、結果として生じる距離合計値がブロック閾値(つまり2閾値モデルの第2の閾値)より大きい場合、ブロックは変化したと判断される。ビデオフレームの中のピクセルのあらゆるブロックが同じプロセスを経る。したがって、このプロセスがビデオフレーム全体に適用された後、プロセスは、プロセスが過去のビデオフレーム以来変化したと判断したすべてのピクセルブロックを識別するであろう。この時点で、比較フレームは変化したピクセルブロックで更新される。ただし、カレントフレームの未変更ピクセルブロックに対応する比較フレームのピクセルブロックは未変更のままとなる。このようにして、NRDTサブアルゴリズムによって使用される二閾値モデルは、アナログからデジタルへの変換の間に生じる雑音により導入されるピクセル値の変化を排除し、ビデオフレームの中の本当の変化も捕捉する。
【0105】
ビデオデータは、NRDTサブアルゴリズムによって処理された後、次に平滑化サブアルゴリズムによって処理される(ステップ419)。平滑化サブアルゴリズムは、アナログからデジタルへの変換中に生じる雑音により引き起こされるビデオ画像の粗さを削減することによって平滑でより高品質のビデオ画像を作成することを目的とする。
【0106】
平滑化サブアルゴリズムは最初に、NRDTサブアルゴリズムの結果生じたピクセル表現を各ピクセルを表現するために使用するビット量がさらに少ないピクセル表現に変換する。これはピクセル表現のサイズを最小限に抑えるために特に編成されるCCTを使用して実行される。平滑化サブアルゴリズムは、最も一般的に使用される色に最も少ない数の1ビットでカラーコードを選ぶためにCCTを使用する。例えば、白と黒は非常に一般的な色であると仮定される。したがって、白はつねに0を割り当てられ、黒はつねに1を割り当てられる。すなわち、白はすべての平面上で0というビット値で表現される。黒、つまり次に最も一般的な色は1つの平面を除きすべてで1というビット値として表示される。これにより圧縮アルゴリズムにより圧縮されるデータ量が削減される。次に、ブロックの中のピクセルごとに、カラーコードが割り当てられる。同時にカラーコードのヒストグラムがピクセルのブロック内の一意の色のそれぞれの発生回数を記憶するために作成される。カラーコードのこのヒストグラムは次に最も少ない発生回数から優勢な発生回数へのカラーコードのリストを作成するために並べ替えられる。
【0107】
いったんカラーコードの並べ替えられたリストが作成されると、次のステップは色をマージすることである。並べ替えられたリストの始めから作業すると、平滑化サブアルゴリズムは最も頻繁に発生しない色を、最も頻繁に発生する色に比較する。あまり頻繁に発生しない色がより頻繁に発生する色に非常に類似している場合には、あまり頻繁に発生しない色を有するピクセルはより頻繁に発生する色に変更される。2つの色が類似しているかどうかの判断は、RGB空間の三次元の点の間の距離を計算することにより実行される。公式は、
【数1】
であり、ここではDは距離であり、R1は低頻度ピクセルの赤の値であり、R2は高頻度ピクセルの赤の値であり、G1は低頻度ピクセルの緑の値であり、G2は高頻度ピクセルの緑の値であり、B1は低頻度ピクセルの青の値であり、B2は高頻度ピクセルの青の値である。距離が距離閾値内にある場合、2つの色は類似していると判断される。本発明の好適実施形態では、システム性能は距離閾値を二乗し、RGB差異の二乗和とこの値を比較することによって高められる。このステップにより、より多くの量の処理時間を必要とする合計の二乗根を取ることが排除される。
【0108】
ピクセルの各ブロックは雑音がないかフィルタリングされ、RGB表現からカラーコード表現に変換される。アナログ信号からデジタル信号への変換中にLCDコントローラ215(図3)によって生じる雑音はいくつかのピクセルの値を歪める。したがって、平滑化サブアルゴリズムが歪められたピクセルを補正する。平滑化サブアルゴリズムは、各ビデオ画像ブロックに存在する異なる色の数を削減することによって雑音を最小限に抑える。さらにこのような平滑化は冗長性がより大きい画像を生じさせ、したがってさらに高い圧縮率を生じさせる。
【0109】
平滑化後、キャッシングが実行される(ステップ421)。キャッシングはRMU109(図3)のビデオプロセッサ212により実行される全体的な圧縮アルゴリズムのサブアルゴリズムである。キャッシングは最近送信された画像のキャッシュを保持するためにRMU109(図3)を必要とする。このようなキャッシュはRAM386(図3D)で実現、記憶できる。キャッシングサブアルゴリズムは、最近のピクセルのブロックを、キャッシュに記憶されているビデオ画像の中のピクセルの対応するブロックと比較する(ステップ405)。最近送信されたピクセルのブロックがキャッシュに記憶されているピクセルの対応するブロックの1つと同じである場合、キャッシングサブアルゴリズムはビデオ画像のこの部分を再送しない。代わりに、最近送信されたブロックがすでにキャッシュに記憶されている(ステップ407)を示す「キャッシュヒット」メッセージがユーザワークステーション101に送信される。「キャッシュヒット」メッセージは、どのキャッシュがピクセルの対応するブロックを含むのかに関する情報を含み、それによりユーザワークステーション101はそのキャッシュからピクセルのブロックを検索し、その取り付けられているビデオディスプレイ装置で表示するためのビデオ画像を生成するためにそれを使用することができる。
【0110】
プロセスの中の次のステップ、ステップ409は、NRDTが、ピクセルのブロックが比較フレームのピクセルの対応のブロック以来変化したかどうかを判断する。このステップはステップ405の前にまたはこのステップと平行して実現することもできる。またステップ421、405および407は完全に排除されてよい。
【0111】
ステップ409の主要な目的は前回フレームからブロックが変化したかどうかを判断することである。ブロックが変化していない場合には、ユーザワークステーション101に更新済みのブロックを送信するニーズがある。それ以外の場合、ピクセルのブロックが変化した場合には、それは圧縮のために準備される(ステップ411)。好適実施形態では、ステップ409はステップ405以外の異なる技法を使用する。冗長性がないかチェックする2つの方法を用いると、高い方の圧縮が生じる。ステップ409と411の両方ともビデオプロセッサ212のマイクロプロセッサ388によって実行されるキャッシングサブアルゴリズムによって実行される(図3D)。
【0112】
変化した画像のあらゆる領域について、キャッシュは更新され、データはサーバスタックに送信される前に圧縮される。好適実施形態では、画像はIBM JBIG圧縮アルゴリズムを使用して圧縮される。JBIGは黒い画像と白い画像を圧縮することを目的としている。しかしながら、本発明はカラービデオ画像を送信することを目的としている。したがって、画像のビット平面が抽出され(ステップ411)、各ビット平面が別個に圧縮される(ステップ413)。最後に、圧縮された画像は、開閉器390(図3D)にデータを送信するサーバスタック417(ステップ415)に送信される。
【0113】
図5Aと図5Bは、圧縮プロセスの好適実施形態の詳細なフローチャートを提供する。捕捉されたビデオ画像のデジタル表現は転送され、フレームバッファ0 503またはフレームバッファ1 505のどちらかに記憶される。フレームバッファは、ビデオの1つのフレームを記憶できるメモリの領域である。2つのフレームバッファを使用すると画像データのより高速の捕捉が可能になる。ビデオの捕捉されたフレームは交互にフレームバッファ0 503とフレームバッファ1 505に記憶される。これによって、圧縮が過去のビデオのフレームで実行されている間にビデオの次のフレームを捕捉できるようになる。ビデオプロセッサ212では、フレームバッファ0 503とフレームバッファ1 505はフレームバッファ380の一部を備える(図3D)。
【0114】
NRDT試験は、フレームバッファ0 503とフレームバッファ1 505に記憶されるピクセルの各ブロックで実行され(ステップ519)、捕捉されたビデオ画像の各ブロックを過去に捕捉されたビデオ画像の対応するブロックに比較する。ステップ519はカレント未処理フレームバッファ(つまりフレームバッファ0 503またはフレームバッファ1 505)に記憶されているビデオ画像からのピクセルのブロックを、比較フレームバッファ521に記憶されるピクセルの対応するブロックに比較する。このステップは図6Aと図6Bに関してさらに詳しく後述される。
【0115】
ステップ519が、ピクセルのカレントブロックが変化したと判断した場合、最も近い色の一致関数が、フラッシュメモリ239(図3)に記憶されているクライアントカラーコードテーブル(「クライアントからのCCT」)511に含まれている情報に関連してフレームバッファ0 503とフレームバッファ1 505(ステップ509)に含まれているビデオ画像を処理する。最も近い色一致関数はマイクロプロセッサ388によってソフトウェアとして実行できる。最も近い色一致関数の詳細な説明は図6に関して以下に示される。
【0116】
最も近い色一致関数によってCCT513から得られるCCTはカラーコード変換(ステップ515)のために使用され、ビデオデータを表現するために必要とされるデジタルデータの量を削減するためにピクセルの変化したブロックの各ピクセルのデジタルRGB表現を変換する。カラーコード変換(ステップ515)は、NRDTサブアルゴリズム(ステップ519)が、過去に捕捉されたビデオ画像を基準にして変化したと判断するピクセルのブロックを受信する。カラーコード変換は、次にこのデジタルデータをさらにコンパクトな形式に変換し、結果をコード化フレームバッファ517に記憶する。コード化フレームバッファ517は、RAM386(図3D)の一部として実現できる。
【0117】
代わりに、ステップ509と515は、ステップ519と平行して実行されてよい。これらのステップを並列で実行すると、変化したピクセルのブロックごとに必要とされる処理時間が短縮される。このシナリオでは、ステップ509と515は変化したピクセルのブロックを見越して実行される。これが当てはまる場合、ステップ509と515のための処理は、ステップ519のための処理が完了すると同時に完了されてよい。したがって、アルゴリズムはステップ509と515の処理を待機する必要なく、ステップ509からステップ523に直接的に移動してよい。それ以外の場合、ステップ591が、ピクセルのブロックが変化しなかったと判断し、したがってステップ509と515の結果が必要とされない場合、これらの結果は単に破棄されてよい。
【0118】
ステップ515の完了時、キャッシングはサイクリックリダンダンシーチェック(CRC)(ステップ523)を実行することにより開始する。サイクリックリダンダンシーチェック(CRC)はある特定のデータのブロックのチェックサムまたはハッシュコードを作成するために当技術分野で公知の方法である。CRCは、データの2つのブロックについて計算され、次に比較されてよい。CRCが一致すると、ブロックは同じである。したがって、CRCは一般的にエラーがないかチェックするために使用される。本発明では、CRCはキャッシュに記憶されるピクセルのブロックとピクセルのブロックを比較するために使用される。したがって、ステップ523では、CRCはNRDTサブアルゴリズムによって変化したと判断されたピクセルの各ブロックについて計算される。CRCのアレイはCRCアレイ525に記憶される。
【0119】
次に図5Bを見ると、キャッシングサブアルゴリズムとビットスプライシング/圧縮サブアルゴリズムの概要が描かれている。アルゴリズムのこの部分はコード化フレームバッファ517とCRCアレイ525からの情報を待機し始める(ステップ527)。次に、新しいビデオモードが宣言されたかどうかに関する決定が下される(ステップ529)。新しいビデオモードは、例えば、ユーザワークステーション101がさまざまな帯域幅または色の要件を有する場合に宣言できる。新しいビデオモードが宣言されている場合、すべてのデータは無効にされ(ステップ531)、サブアルゴリズムはステップ527に戻り、コード化フレームバッファ517とCRCアレイ525から新しい情報を待機する。LCDコントローラ215内に配置されるダウンスケーラ回路362および/またはアップスケーラ回路364は、新しいビデオモードと互換性があるように出力されたデジタル化されたビデオを調整するために活用されてよい。ステップ527、529、および531はマイクロプロセッサ388(図3D)によって実行される全体的な圧縮アルゴリズムのすべてのステップである。
【0120】
ステップ529において、新しいビデオモードが宣言されていないと考えられる場合には、ピクセルのCRCのカレントブロックのキャッシュに入れられたCRCとの比較が実行される(ステップ533)。このブロックは、CRCアレイ525に含まれるカレントビデオフレームのCRCデータを、ブロック情報アレイ535に含まれる過去のCRCのキャッシュと比較する。ブロック情報アレイ535はピクセルブロックのキャッシュおよびピクセルブロックのCRCを記憶し、RAM386内の装置として実現できる(図3D)。ステップ533はマイクロプロセッサ388(図3D)によって実行される全体的な圧縮アルゴリズムの一部でもある。
【0121】
次にピクセルのカレントブロックがブロック情報アレイ535に含まれるピクセルブロックキャッシュ内に配置される場合(ステップ537)、キャッシュヒットメッセージはワークステーション101に送信され、ピクセルのブロックは完了、つまり処理済みとマークされる(ステップ539)。ユーザワークステーション101はRMU109(図3D)と同じピクセルブロックキャッシュを含むので、キャッシュヒットメッセージは、処理されたピクセルのブロックに対応するビデオ画像の部分を作成するためにキャッシュに含まれるピクセルの特殊ブロックを使用するようにユーザワークステーション101に命令するに過ぎない。
【0122】
次に、ピクセルの未処理ブロックについてチェックが実行される(ステップ539)。処理される、または更新される必要のあるピクセルのすべてのブロックは次更新矩形計算(a compute next update rectangle)を作成するために結合される。更新するものがない場合(つまり、ビデオがフレーム間で変化していない場合)には、アルゴリズムはステップ527に戻る(ステップ543)。したがってカレントフレームは遠隔参加者装置に送信されない。ビデオのカレントフレームの再送を排除することによって、サブアルゴリズムはビデオを送信するために必要とされる帯域幅を削減する。
【0123】
しかしながら、更新される必要がある画像の領域がある場合、更新矩形は最初に圧縮される。更新矩形は最初にビットスライシングされなければならない(ステップ545)。更新矩形のビット平面は更新矩形の各ピクセルから同じビットを採取することにより構築される。したがって、更新矩形が8ビットのピクセルを含む場合、それは8つのビット平面に分解できる。結果として生じるビット平面はビット平面バッファ547に記憶される。再び、ステップ541、543および545は、RMU109(図3)のマイクロプロセッサ388により実行されるビットスプライシング/圧縮のサブアルゴリズムすべての部分である。
【0124】
各ビット平面は、圧縮サブアルゴリズム(ステップ549)によって別々に圧縮される。この場合、圧縮は各ビット平面上で実行され、結果として生じるデータはサーバスタック417に送信される(ステップ551)。好適実施形態では、圧縮はビデオ圧縮装置382(図3)(ステップ549)によって実行される。それ以後、圧縮されたビット平面は開閉器390に送信される(図3D)。
【0125】
好適実施形態は毎秒20回フレームを捕捉するので、ビデオフレームキャプチャの間に300ms待機することが必要である。したがって、アルゴリズムは、サブアルゴリズムをステップ527に戻す前に、過去のフレームキャプチャから300msが経過するまで待機する(ステップ553)。
【0126】
ここで図6を参照すると、CCTを使用してあまり頻繁に発生しない色をより頻繁に発生する色に選択的にマッピングする最も近い一致関数(図5のステップ509)が描かれている。最も近い色一致関数509はフレームバッファ0 503またはフレームバッファ1 505に記憶されるビデオ画像のピクセルの各ブロックを連続して処理する。図6に示されるように、ピクセルのブロックはフレームバッファ0 503またはフレームバッファ1 505(ステップ600)に記憶されるビデオ画像から抽出される。好適実施形態では、抽出されたブロックは64×32ピクセルというサイズを有するが、任意のブロックサイズが活用されてよい。
【0127】
最も近い色一致関数は、あまり頻繁に発生しないピクセル値を、類似したより頻繁に発生するピクセル値に変換することによってA/D変換により生じた雑音を排除する。関数はヒストグラム分析および差異計算を活用する。最初に、最も近い色一致関数509はピクセル値のヒストグラムを作成する(ステップ601)。ヒストグラムはステップ600の間に抽出されるピクセルのブロック内での各ピクセル値の頻度を測定する。ヒストグラムは並べ替えられ、その結果頻繁に発生する色のリスト(人気のある色のリスト603)および最も頻繁に発生しない色のリスト(希少な色のリスト605)が作成される。リストごとの閾値は調整可能である。
【0128】
最も近い色一致関数509は、ピクセルが頻繁に派生する値にマッピングされるべきであるかどうかを判断するために各低頻度発生ピクセルを分析する。最初に、ピクセル値は希少色リスト605(ステップ607)から選ばれる。次にピクセル値は人気色リスト603から選ばれる(ステップ609)。これらの2つの値の間のこれらの距離が次に計算される(ステップ611)。このプロセスでは、距離は2個のピクセルの別々の赤、緑、および青の値を比較することによって計算される測定基準である。距離値Dは種々の方法で計算されてよい。1つのこのような例は以下のとおりである。
【数2】
この式では、R1は低頻度ピクセルの赤の値であり、R2は高頻度ピクセルの赤の値であり、G1は低頻度ピクセルの緑の値であり、G2は高頻度ピクセルの緑の値であり、B1は低頻度ピクセルの青の値であり、B2は高頻度ピクセルの青の値である。
【0129】
この式は、あまり頻繁に発生しないピクセル対より頻繁に発生するピクセル等、2つのベクトルの色の類似性または差異の規模を示す距離値Dを生じさせる。サブアルゴリズムの目標は、あまり頻繁に発生しないピクセルの色に比較されるときに、最低の距離値を生じさせる色を有するより頻繁に発生するピクセルを見つけることである。したがって、比較は計算された距離値ごとに実行される(ステップ613)。すべての過去の距離値未満である距離値が計算されるたびに、距離値は最も近い距離変数に書き込まれる(ステップ615)。
【0130】
いったんすべてのより頻繁に発生するピクセルがあまり頻繁に発生しないピクセルに比較されたと判断されると(ステップ617)、最低の発生Dが所定の閾値の範囲内にあるかどうかを判断するために計算が実行される(ステップ619)。このDが所定の閾値の範囲内にある場合、CCT513は低頻度で発生するピクセルを、このD値を生じさせた高頻度で発生するピクセルのカラーコード値にマッピングすることにより更新される(ステップ621)。このプロセスは、すべての低頻度ピクセルについて繰り替えされ、CCT513は相応して更新される。
【0131】
図7を見ると、RGB NRDTステップ519(図5A)がさらに詳細に描かれている。このプロセスはピクセルのすべてのブロックで動作する。カレントピクセルブロック700はカレントフレームバッファ(つまりフレームバッファ0 503またはフレームバッファ1 505(図5A))に含まれているビデオ画像のピクセルのブロックを表現する。過去のピクセルブロック701は比較フレームバッファ521(図5A)に含まれているビデオ画像のピクセルの対応するブロックを含む。ステップ519は、カレントピクセルブロック700と過去のピクセルブロック701から1つのピクセルに対応するピクセル値を抽出することにより開始する(ステップ703)。それから、ピクセル色値は、2個のピクセルの色の間の類似性または差異の大きさを示す距離値を計算するために使用される(ステップ705)。本発明の好適実施形態では、距離値は以下の式を使用して計算される。
【数2】
【0132】
前述のように、R1、G1およびB1は、フレームバッファピクセルのそれぞれ赤の値、緑の値、および青の値である。同様に、R2、G2およびB2は比較フレームバッファピクセルのそれぞれ赤の値、緑の値、および青の値である。
【0133】
次に、計算された距離値Dはピクセル閾値と比較される(ステップ707)。Dがピクセル閾値より大きい場合には、それは蓄積する距離合計に加算される(ステップ709)。Dの値がピクセル閾値未満である場合、差異は重要ではない(つまり雑音)であると考えられ、距離合計に加算されない。
【0134】
距離値を計算し、所定のピクセル閾値より大きい距離値を合計するこのプロセスは、ピクセルのブロックの最後のピクセルが処理されたと判断されるまで続行する(ステップ711)。いったん最後のピクセルに達すると、距離合計は第2の閾値、つまりブロック閾値と比較される(ステップ713)。距離合計がブロック閾値を上回っている場合は、過去に捕捉されたフレームから、ピクセルの対応するブロックに比較してピクセルのカレントブロックが変化したと指定される。それ以外の場合、距離合計がブロック閾値未満である場合、ピクセルのブロックは未変更として指定される。
【0135】
ピクセルのブロックが変化したと指定される場合、ステップ715が実行される。ステップ715は、ピクセルの特定のブロックが変化したことを示すフラグをセットする。さらに、ピクセルの新しいブロックが比較フレームバッファ521(図5A)に書き込まれ、ピクセルの対応する過去のブロックを置換する。
【0136】
それ以外の場合、距離合計がブロック閾値を超えない場合、ブロックは未変化と指定され、フラグは、ピクセルのこのブロックが遠隔参加装置に再送される必要がないことを示すためにセットされる(ステップ721)。むしろ、遠隔参加装置は、ビデオの過去のフレームについて表示されるピクセルの同じブロックを使用してピクセルのブロックにより表現されるビデオ画像の部分を作成し直す。この時点で、システムは、図5Aに関して前記にさらに詳細に説明されたように、ピクセルの変化したブロックについてCRCを計算する(図5Aのステップ523)。
【0137】
図8は、図7に示されるNRDTサブアルゴリズムによって使用される2レベルの閾値化をさらに図解する。例示的な目的のためだけに、ピクセルの4×4のブロックが示されている。各ピクセルは当技術分野で一般的に実行されるように0から255の範囲となる赤、緑および青の色値を与えられる。0という赤、緑および青の値を有するピクセルは黒のピクセルを表現するのに対し、255という赤、緑および青の値を有するピクセルは白のピクセルを表現する。過去のピクセルブロック751は比較フレームバッファ521(図5A)から取り込まれたピクセルのブロックである。過去のピクセル1 752は過去のピクセルブロック751の左上角のピクセルである。過去のピクセルブロック751のあらゆるピクセルは0という値を有するので、過去のピクセルブロック751は完全に黒い4×4ピクセル領域を表現する。
【0138】
カレントピクセルブロック753は、過去のピクセルブロック751と、ビデオフレームの同じ空間領域を表現するが、それは1フレーム遅い。ここではカレントピクセル1 754が過去のピクセル1 752と同じピクセル1であるが、1フレーム遅い。簡単にするために、白いカーソル等の小さな白いオブジェクトが過去のピクセルブロック751によって表現されるビデオ画像の領域に入ると仮定する。この変化はカレントピクセルブロック753のカレントピクセル1 754で発生する。カレントピクセルブロック753では、ピクセルの過半数は黒のままであるが、カレントピクセル1 754は、255、255、および255というRGB色値によって表されるように、現在白である。
【0139】
雑音がA/D変換により生じ、その結果過去のピクセル755が、0,0、および0というそのRGB値によって表されるように黒から灰色に変化したとさらに仮定する。新しい灰色はカレントピクセル756に割り当てられる2、2および2というRGB値によって表される。
【0140】
ピクセル閾値が100であり、ブロック閾値が200であるとさらに仮定する。NRDTサブアルゴリズムはカレントピクセルブロック753と過去のピクセルブロック751の各ピクセルの間の距離値を計算する。図7に関して前述されたように、本発明の好適実施形態で使用される式は、以下のとおりである。
【数2】
したがって、カレントピクセル1 754と過去のピクセル1 752の間の距離値は以下のとおり、
【数3】
つまり195,075である。195,075は100というピクセル閾値を超えているため、この距離値は距離合計に加算される。しかしながら、前記の距離の式を使用して計算されるようにピクセル間の距離は、100というピクセル閾値を上回っていない12に等しいために、黒い過去のピクセル755と灰色のカレントピクセル756の間の距離値は距離合計に加算されない。同様に、距離値は2個のピクセルブロックの中の残りのピクセルのすべてについて計算される。これらの距離値のそれぞれはゼロに等しい。したがって、これらの距離値はピクセル閾値未満であるので、それらは距離合計に加算されない。
【0141】
その結果として、すべてのピクセルの距離値が処理された後で、距離合計は195,075に等しくなる。この値は200というブロック閾値を上回っているので、ブロックが指定される。この例はNRDTサブアルゴリズムの2レベル閾値化特徴の優位点を図解している。すなわち、カレントピクセルブロック753のカレントピクセル756で発生した雑音が無視されたのに対し、カレントピクセルブロック753のカレントピクセル1 754で発生したビデオの本物の変化が認識された。
【0142】
最後に図9を見ると、ユーザワークステーション101(図1)によって実行される解凍アルゴリズムのフローチャートが示されている。解凍アルゴリズムはメッセージを待機することにより開始する(ステップ801)。このメッセージはRMU109のサーバスタック417からユーザワークステーション101に送信される。その後、ユーザワークステーション101は情報を受け取り、データをクライアントスタック803に書き込む。クライアントスタック803は、デジタルデータを恒久的にまたは一時的に記憶することができるレジスタまたは他の何らかのデバイスであってよい。本発明の一実施形態では、メッセージがTCP/IP通信プロトコルを使用して送信される。このシナリオでは、クライアントスタック803はローカルTCP/IPスタックである。他の実施形態はTCP/IP以外のプロトコルを使用してよい。しかしながら、通信プロトコルに関係なく、本発明は処理のために受信されたメッセージを記憶するためにクライアントスタック803を使用する。
【0143】
メッセージはいったんクライアントスタック803で受信されると、それは、メッセージが新しいビデオモードメッセージであるかどうかを判断するために処理される(ステップ805)。新しいビデオモードメッセージは、帯域幅変化、画面解像度または色の深みの変化、新しいクライアント等を含む種々の理由のために送信されてよい。このリストは新しいビデオモードメッセージを送信するための理由を限定することを目的とするのではなく、代わりにそれがいつ発生するのかの例を示す。メッセージが新しいビデオモードメッセージである場合、アプリケーション層823は新しいビデオモードを通知される(ステップ807)。好適実施形態に従って、アプリケーション層823は、ユーザワークステーション101の入力装置と出力装置(つまり、キーボード103、ビデオモニタ105、およびカーソル制御装置107)と接続するユーザワークステーション101によって実行されるソフトウェアである。したがって、あらゆるビデオ更新がアプリケーション層823に送信されなければならない。また、過去に送信されたフレームを記憶すること専用のすべてのメモリを含む古いバッファが解放され、新しいバッファが割り当てられる(ステップ809)。次に解像アルゴリズムはステップ801に戻る。
【0144】
新しいメッセージがビデオモードメッセージではない場合、それがキャッシュヒットメッセージであるかどうかを判断するために、メッセージはさらに処理される(ステップ811)。イエスの場合、キャッシュヒットメッセージは3つのキャッシュフレームバッファ815に記憶されているピクセルのブロックの内、どのピクセルのブロックがビデオ画像のそれぞれの部分を再構築するために使用されなければならないのかを判断するために解読される。本発明の好適実施形態では3個のキャッシュフレームバッファ815が使用されるが、本発明の精神から逸脱することなく任意の量のキャッシュフレームバッファが使用されてよい。キャッシュフレームバッファ815は、RMU109(図3)に内部に配置されるキャッシュフレームバッファに記憶されるピクセルの同じブロックを記憶する。したがって、キャッシュヒットメッセージはビデオデータを含まないが、むしろ単に遠隔参加者装置に、キャッシュフレームバッファ815に含まれているピクセルのどのブロックがマージフレームバッファ817に送信されるべきかに関して命令する。指定されたキャッシュの中に含まれるピクセルのブロックは、次にキャッシュフレームバッファ815からマージバッファ817にコピーされる(ステップ813)。最後に、アプリケーション層823は、ビデオ画像の領域は更新されたことを通知される(ステップ825)。マージバッファ817はカラーコードピクセル内のビデオのフレーム全体の現在の表現を含む。アプリケーション層823はマージバッファ817からピクセルデータをコピーし、接続されているビデオモニタ105のピクセルフォーマットに適合するためにデータをフォーマットする(ステップ819)。その後、フォーマットされたピクセルデータは、次にデータをビデオモニタ105に送信するフレームバッファ821を更新するために書き込まれる。代わりに、ビデオモニタの代わりに、フォーマットされたピクセルデータが、通常ビデオディスプレイ装置と使用されるビデオカード、メモリおよび/または任意の他のハードウェアまたはソフトウェアに書き込まれてよい。
【0145】
さらに、新しいメッセージが新しいビデオモードまたはキャッシュヒットメッセージではない場合、それは、それが圧縮ビデオデータを含むメッセージであるかどうかを判断するために試験される(ステップ827)。メッセージが圧縮ビデオデータを含んでいない場合には、解凍アルゴリズムがステップ801に戻り、サーバスタック417から送信される新しいメッセージを待機する。それ以外の場合、メッセージに圧縮ビデオデータが含まれている場合、データは解凍され、ビット平面フレームバッファ833に転送される(ステップ829)。前述されたように、好適実施形態はJBIG可逆圧縮技法を組み込む。したがって、ビデオデータの解凍は各個別ビット平面について実行されなければならない。各ビット平面が解像された後、それは、ビット平面フレームバッファ833に記憶される過去に解凍されたビット平面とマージされる(ステップ829)。十分な数のビット平面がマージされると、ビット平面フレームバッファ833に含まれるマージされたデータはマージフレームバッファ817に転送される(ステップ831)。代わりに、個々のビット平面が解凍され、マージフレームバッファ817に直接的に記憶され、それによりステップ831を排除する。ビデオの完全フレームを表示するために必要とされるデータのすべてがマージフレームバッファ817に転送されると、アプリケーション層823はフレームバッファ821を更新するためにマージフレームバッファ817内でデータをコピーする(ステップ819)。その後、データはビデオモニタ105に転送される。
【0146】
代替実施形態では、ビデオモニタ105で表示されるビデオは各ビット平面が受信された後に更新できる。言い換えると、ユーザは表示されたビデオの部分を更新するためにビデオの更新されたフレーム全体が受信されるまで待機する必要がない。ビデオ伝送に使用できる帯域幅が変化するときにこの代替方法は望ましい。また、ビデオディスプレイを更新するこの漸次的な方法はJBIG圧縮アルゴリズムを使用する優位点の1つである。
【0147】
次に、解凍アルゴリズムは、カレントビデオフレームの1つのフィールドからのカラーコードデータのすべてが受信されたかどうかを判断する(ステップ835)。完全フィールドが受信されなかった場合、解凍アルゴリズムはステップ801に戻り、サーバスタック417からクライアントスタック803に新規メッセージの形で送信されるメッセージの残りを待機する。それ以外の場合、完全フィールドが受信されると、解凍方法はアプリケーション層823に知らせる(ステップ837)。キャッシュヒットメッセージの処理に関して前述されたのと同様に、この通知はアプリケーション層823にマージフレームバッファ817内のデータを読み取り、それをカレントスクリーンピクセルフォーマットに変換するように命令する(ステップ819)。その後、フォーマットされたデータはフレームバッファ821を更新するために書き込まれ、データをビデオモニタ105に送信する。
【0148】
完全フィールドが受信され、アプリケーション層823が通知を受け取った後、完全フィールドがメッセージに含まれる最後のフィールドであるかどうかを判断するために、第2の決定が下される。そうである場合、ピクセルの新規に解凍されたブロックはキャッシュフレームバッファ815の1つに書き込まれる(ステップ841)。そうでない場合は、解凍アルゴリズムはステップ801に戻り、新規メッセージを待機し続ける。好ましくは、キャッシュフレームバッファ815に書き込まれるピクセルの新しいブロックは、その中に含まれるピクセルの最も古いブロックを上書きする。ステップ841は、キャッシュが最新式であり、RMU109のキャッシュと同期していることを確実にする。キャッシュ更新の完了後、解凍アルゴリズムはステップ801に戻る。
【0149】
本発明は好適実施形態および複数の代替実施形態に関して説明されてきたが、その実施形態は本発明の完全な開示を行う目的でかなり詳細に述べられ、このような実施形態は単に例示的にすぎず、本発明のすべての態様を制限し、その包括的な列挙を表現することを目的としない。したがって、本発明の範囲は以下の請求項によってのみ定められるものとする。さらに、数値変化は本発明の精神および原則から逸脱することなくこのような詳細で行われてよいことは当業者に明らかであろう。本発明がその本質的な特性から逸脱することなく他の形式で具現化できることが理解されなければならない。
【図面の簡単な説明】
【0150】
添付図面の説明に述べられている好適実施形態を参照することにより本発明をさらに理解することができる。描かれている実施形態は本発明を実施するためのシステムの例示的なものに過ぎないが、本発明の組織と運転方法の両方とも、一般的にはその追加の目的と優位点とともに図面および続く説明を参照することによりさらに容易に理解されてよい。図面は、付加されたように、あるいは以後に修正されるように詳細に述べられている本発明の範囲を制限することを目的とするのではなく、単に本発明を明確にし、例証することを目的としている。
本発明を完全に理解するために、ここで以下の図面を参照する。
【0151】
【図1】遠隔管理装置(「RMU」)を通した、キーボード、ビデオモニタ、およびカーソル制御装置を含むユーザワークステーションのネットワーキング装置、サーバ、およびコンピュータへの接続を描く、本発明の好適実施形態によるネットワーク遠隔管理システムの略図である。
【図2】ネットワーキング装置、サーバおよびコンピュータを制御するために活用される例のオプションメニューのスクリーンショットである。
【図3A】RMUと、シリアルデバイス、キーボード、ビデオモニタ、カーソル制御装置および電源用のコネクタの内部構造本発明の好適実施形態による図1に示されるRMUの好適実施形態のブロック図である。
【図3B】図3Aに図示されるシリアルカードの詳細なブロック図である。
【図3C】図3Aに図示されるKVMポートヘッダの詳細なブロック図である。
【図3D】図3Aに図示されるビデオプロセッサの詳細なブロック図である。
【図4】本発明に従ってRMUの好適実施形態により活用される圧縮アルゴリズムのフローチャートである。
【図5A】本発明の好適実施形態により活用される消音および差異試験アルゴリズムと、圧縮アルゴリズムの円滑化サブアルゴリズムを詳説したフローチャートである。
【図5B】本発明の好適実施形態により活用される圧縮アルゴリズムのキャッシングサブアルゴリズムおよびビットスライシング/圧縮サブアルゴリズムを詳説したフローチャートである。
【図6】最も近い一致関数と、本発明の好適実施形態により活用される圧縮アルゴリズムのCCTとのその統合を詳説したフローチャートである。
【図7】本発明の好適実施形態により活用される圧縮アルゴリズムの消音および差異試験サブアルゴリズムを詳説したフローチャートである。
【図8】本発明の好適実施形態により活用される圧縮アルゴリズムによって実行されるように、ピクセルのサンプルブロックに対する消音および差異試験サブアルゴリズムの例の適用を示した図である。
【図9】本発明の好適実施形態により使用される解凍アルゴリズムの動作の詳細なフローチャートを示した図である。
【特許請求の範囲】
【請求項1】
キーボード、カーソル制御装置および10のビデオディスプレイを含むコンピュータワークステーションと、
ビデオ信号を生成するための少なくとも1台の遠隔装置と、
前記ワークステーションと前記少なくとも1台の遠隔装置に結合される遠隔管理装置と、
前記遠隔管理装置と前記ワークステーションの間で双方向通信を提供するための第1の通信手段と、
前記遠隔管理装置と前記少なくとも1つの遠隔装置の間で双方向通信を提供するための第2の通信手段と、
を備え、
前記遠隔管理装置が、前記少なくとも1つの遠隔装置のシリアルおよび/またはキーボード、ビデオ、20マウス(KVM)制御を可能にする、遠隔管理システム。
【請求項2】
前記ワークステーションが前記遠隔管理装置を通して前記少なくとも1つの遠隔装置の内の少なくとも1つの電源を制御する、請求項1に記載のシステム。
【請求項3】
前記ワークステーションによる前記遠隔管理装置に対するアクセスが、一意のパスワードまたは認証情報によって制御される、請求項1に記載のシステム。
【請求項4】
前記遠隔管理装置が少なくとも1つの冗長な電源を含む、請求項1に記載のシステム。
【請求項5】
前記遠隔管理装置が少なくとも1つのオプションメニュー回路を含む、請求項1に記載のシステム。
【請求項6】
前記オプションメニュー回路が、前記少なくとも1つの遠隔装置の識別を含むオプションメニューを作成する、請求項5に記載のシステム。
【請求項7】
前記遠隔管理装置が前記遠隔管理装置の少なくとも1つのKVMポートと、前記少なくとも1つの遠隔装置の少なくとも1つのビデオポートの間での選択通信のために少なくとも1つのヘッダ回路を含む、請求項1に記載のシステム。
【請求項8】
前記ヘッダ回路がビデオスイッチ、および少なくとも1つの受信機送信機回路を含み、前記受信機送信機回路が並列信号と直列信号を変換する請求項7に記載のシステム。
【請求項9】
前記遠隔管理装置がビデオ信号をデジタル化するための少なくとも1つのフレーム取り込み器回路を含む、請求項1に記載のシステム。
【請求項10】
前記フレーム取り込み器回路がアナログビデオ信号をデジタルビデオ信号に変換する、請求項9に記載のシステム。
【請求項11】
前記遠隔管理装置が前記ビデオ信号によって生成される画像を補正するためのフレーム取り込み器回路を含む、請求項1に記載のシステム。
【請求項12】
前記遠隔管理装置が少なくとも1つのローカルKVMポートを含む、請求項1に記載のシステム。
【請求項13】
前記遠隔管理装置がビデオ信号を圧縮するために少なくとも1つのビデオプロセッサ回路を含む、請求項1に記載のシステム。
【請求項14】
前記ビデオプロセッサ回路が少なくとも1つのCPUからビデオ信号を受信するための少なくとも1つのビデオ受信回路を含む、請求項13に記載のシステム。
【請求項15】
前記ビデオプロセッサ回路が、前記ビデオ信号の赤、緑および青のビデオ信号成分を記憶するための少なくとも1つのピクセルプッシャー回路を含む、請求項13に記載のシステム。
【請求項16】
前記ビデオプロセッサ回路が、前記ビデオ信号を示すビデオフレームを記憶するための少なくとも1つのフレームバッファ回路を含む、請求項13に記載のシステム。
【請求項17】
前記ビデオプロセッサ回路が、JBIG(Joint Bi-level Image experts Group)圧縮を使用してビデオ信号を圧縮する、請求項13に記載のシステム。
【請求項18】
前記ビデオプロセッサ回路が、フレームバッファ回路、ピクセルプッシャー回路およびJBIG圧縮の内の少なくとも1つを制御するための少なくとも1台のマイクロプロセッサを含む、請求項13に記載のシステム。
【請求項19】
前記ビデオプロセッサ回路がデータを記憶するために前記マイクロプロセッサに結合される少なくとも1つのメモリ回路を備える、請求項18に記載のシステム。
【請求項20】
前記ビデオプロセッサ回路がビデオ信号を出力するために少なくとも1つの開閉器を含む、請求項13に記載のシステム。
【請求項21】
前記遠隔管理装置が、モデムによって受信される信号を復調するために少なくとも1つのモデムモジュールを含む、請求項1に記載のシステム。
【請求項22】
前記第1または第2の通信手段が、LAN、WAN、無線接続、モデム、直接モデム接続およびインターネットからなるグループから選択される、請求項1に記載のシステム。
【請求項23】
前記遠隔管理装置が、前記遠隔管理装置をリセットするために前記ワークステーションにより制御可能なリセット回路網を含む、請求項1に記載のシステム。
【請求項24】
ワークステーションを1台または複数台の遠隔装置に結合するための装置であって、
通信モデムを介して前記ワークステーションに信号を送信するため、および信号を受信するための通信回路と、
前記遠隔装置の1台または複数にシリアルデータを送信するため、およびから前記遠隔装置の1つまたは複数からシリアルデータ信号を受信するためのシリアル通信回路と、
前記遠隔装置の1台または複数にKVM信号を送信するため、および前記遠隔装置の1台または複数からKVM信号を受信するためのキーボード、ビデオ、マウス(KVM)回路と、
少なくとも1つの前記通信回路、前記シリアル通信回路、および前記KVM回路の間で前記信号の伝送を制御するための中央処理回路と、
を備える前記装置。
【請求項25】
前記遠隔装置が電源により電源を供給される、請求項24に記載の装置。
【請求項26】
前記装置が前記電源に接続される、請求項25に記載の装置。
【請求項27】
前記ワークステーションが前記装置を通して前期電源を制御する、請求項26に記載の装置。
【請求項28】
前記ワークステーションによる前記装置に対するアクセスが、一意のパスワードまたは認証情報により制御される、請求項27に記載のシステム。
【請求項29】
前記装置が少なくとも1つの冗長な電源を含む、請求項24に記載のシステム。
【請求項30】
前記装置が少なくとも1つのオプションメニュー回路を含む、請求項24に記載のシステム。
【請求項31】
前記オプションメニュー回路が前記遠隔装置の識別を含むオプションメニューを作成する、請求項30に記載の装置。
【請求項32】
前記装置が、前記遠隔装置の少なくとも1つのKVMポートと少なくとも1つのビデオポートの間の選択通信のために少なくとも1つのヘッダ回路を含む、請求項24に記載のシステム。
【請求項33】
前記ヘッダ回路が、ビデオスイッチと少なくとも1つの受信機送信機回路を含み、前記受信機送信機回路が並列信号と直列信号を変換する、請求項32に記載のシステム。
【請求項34】
前記遠隔管理装置が、ビデオ信号により生成される20画像をデジタル化し、補正するための少なくとも1つのフレーム取り込み器回路を含む、請求項24に記載のシステム。
【請求項35】
前記フレーム取り込み器回路がアナログビデオ信号をデジタルビデオ信号に変換する、請求項34に記載の装置。
【請求項36】
前記装置が少なくとも1つのローカルKVMポートを含む、請求項24に記載のシステム。
【請求項37】
前記装置がビデオ信号を圧縮するための少なくとも1つのビデオプロセッサ回路を含む、請求項24に記載のシステム。
【請求項38】
前記ビデオプロセッサ回路が、前記中央処理回路からビデオ信号を受信するために少なくとも1つの回路を含む、請求項37に記載の装置。
【請求項39】
前記ビデオプロセッサ回路が、前記ビデオ信号の赤、緑および青のビデオ信号成分を記憶するための少なくとも1つのピクセルプッシャー回路を含む、請求項38に記載の装置。
【請求項40】
前記ビデオプロセッサ回路が前記ビデオ信号を示すビデオフレームを記憶するための少なくとも1つのフレームバッファ回路を含む、請求項37に記載の装置。
【請求項41】
前記ビデオプロセッサ回路が、JBIG圧縮を使用してビデオ信号を圧縮する、請求項37に記載の装置。
【請求項42】
前記ビデオプロセッサ回路が、フレームバッファ回路、ピクセルプッシャー回路、およびJBIG圧縮の内の少なくとも1つを制御するためのマイクロプロセッサによって使用するための少なくとも1つのメモリ回路を含む、請求項37に記載の装置。
【請求項43】
前記ビデオプロセッサ回路が信号をイーサネットポートまたはモデムポートに出力するための少なくとも1つの開閉器を備える、請求項37に記載の装置。
【請求項44】
前記装置がモデムによって受信される信号を復調するための少なくとも1つのモデムモジュールを含む、請求項24に記載の装置。
【請求項45】
前記通信媒体が、LAN、WAN、無線接続、モデム、直接モデム接続およびインターネットからなるグループから選択される少なくとも1つである、請求項24に記載の装置。
【請求項46】
前記ワークステーションによって送受される前記信号がキーボード、ビデオ、マウス、シリアルまたは電力からなるグループから選択される少なくとも1つの制御信号である、請求項24に記載の装置。
【請求項47】
前記装置が前記装置をリセットするためのリセット回路を含む、請求項24に記載のシステム。
【請求項1】
キーボード、カーソル制御装置および10のビデオディスプレイを含むコンピュータワークステーションと、
ビデオ信号を生成するための少なくとも1台の遠隔装置と、
前記ワークステーションと前記少なくとも1台の遠隔装置に結合される遠隔管理装置と、
前記遠隔管理装置と前記ワークステーションの間で双方向通信を提供するための第1の通信手段と、
前記遠隔管理装置と前記少なくとも1つの遠隔装置の間で双方向通信を提供するための第2の通信手段と、
を備え、
前記遠隔管理装置が、前記少なくとも1つの遠隔装置のシリアルおよび/またはキーボード、ビデオ、20マウス(KVM)制御を可能にする、遠隔管理システム。
【請求項2】
前記ワークステーションが前記遠隔管理装置を通して前記少なくとも1つの遠隔装置の内の少なくとも1つの電源を制御する、請求項1に記載のシステム。
【請求項3】
前記ワークステーションによる前記遠隔管理装置に対するアクセスが、一意のパスワードまたは認証情報によって制御される、請求項1に記載のシステム。
【請求項4】
前記遠隔管理装置が少なくとも1つの冗長な電源を含む、請求項1に記載のシステム。
【請求項5】
前記遠隔管理装置が少なくとも1つのオプションメニュー回路を含む、請求項1に記載のシステム。
【請求項6】
前記オプションメニュー回路が、前記少なくとも1つの遠隔装置の識別を含むオプションメニューを作成する、請求項5に記載のシステム。
【請求項7】
前記遠隔管理装置が前記遠隔管理装置の少なくとも1つのKVMポートと、前記少なくとも1つの遠隔装置の少なくとも1つのビデオポートの間での選択通信のために少なくとも1つのヘッダ回路を含む、請求項1に記載のシステム。
【請求項8】
前記ヘッダ回路がビデオスイッチ、および少なくとも1つの受信機送信機回路を含み、前記受信機送信機回路が並列信号と直列信号を変換する請求項7に記載のシステム。
【請求項9】
前記遠隔管理装置がビデオ信号をデジタル化するための少なくとも1つのフレーム取り込み器回路を含む、請求項1に記載のシステム。
【請求項10】
前記フレーム取り込み器回路がアナログビデオ信号をデジタルビデオ信号に変換する、請求項9に記載のシステム。
【請求項11】
前記遠隔管理装置が前記ビデオ信号によって生成される画像を補正するためのフレーム取り込み器回路を含む、請求項1に記載のシステム。
【請求項12】
前記遠隔管理装置が少なくとも1つのローカルKVMポートを含む、請求項1に記載のシステム。
【請求項13】
前記遠隔管理装置がビデオ信号を圧縮するために少なくとも1つのビデオプロセッサ回路を含む、請求項1に記載のシステム。
【請求項14】
前記ビデオプロセッサ回路が少なくとも1つのCPUからビデオ信号を受信するための少なくとも1つのビデオ受信回路を含む、請求項13に記載のシステム。
【請求項15】
前記ビデオプロセッサ回路が、前記ビデオ信号の赤、緑および青のビデオ信号成分を記憶するための少なくとも1つのピクセルプッシャー回路を含む、請求項13に記載のシステム。
【請求項16】
前記ビデオプロセッサ回路が、前記ビデオ信号を示すビデオフレームを記憶するための少なくとも1つのフレームバッファ回路を含む、請求項13に記載のシステム。
【請求項17】
前記ビデオプロセッサ回路が、JBIG(Joint Bi-level Image experts Group)圧縮を使用してビデオ信号を圧縮する、請求項13に記載のシステム。
【請求項18】
前記ビデオプロセッサ回路が、フレームバッファ回路、ピクセルプッシャー回路およびJBIG圧縮の内の少なくとも1つを制御するための少なくとも1台のマイクロプロセッサを含む、請求項13に記載のシステム。
【請求項19】
前記ビデオプロセッサ回路がデータを記憶するために前記マイクロプロセッサに結合される少なくとも1つのメモリ回路を備える、請求項18に記載のシステム。
【請求項20】
前記ビデオプロセッサ回路がビデオ信号を出力するために少なくとも1つの開閉器を含む、請求項13に記載のシステム。
【請求項21】
前記遠隔管理装置が、モデムによって受信される信号を復調するために少なくとも1つのモデムモジュールを含む、請求項1に記載のシステム。
【請求項22】
前記第1または第2の通信手段が、LAN、WAN、無線接続、モデム、直接モデム接続およびインターネットからなるグループから選択される、請求項1に記載のシステム。
【請求項23】
前記遠隔管理装置が、前記遠隔管理装置をリセットするために前記ワークステーションにより制御可能なリセット回路網を含む、請求項1に記載のシステム。
【請求項24】
ワークステーションを1台または複数台の遠隔装置に結合するための装置であって、
通信モデムを介して前記ワークステーションに信号を送信するため、および信号を受信するための通信回路と、
前記遠隔装置の1台または複数にシリアルデータを送信するため、およびから前記遠隔装置の1つまたは複数からシリアルデータ信号を受信するためのシリアル通信回路と、
前記遠隔装置の1台または複数にKVM信号を送信するため、および前記遠隔装置の1台または複数からKVM信号を受信するためのキーボード、ビデオ、マウス(KVM)回路と、
少なくとも1つの前記通信回路、前記シリアル通信回路、および前記KVM回路の間で前記信号の伝送を制御するための中央処理回路と、
を備える前記装置。
【請求項25】
前記遠隔装置が電源により電源を供給される、請求項24に記載の装置。
【請求項26】
前記装置が前記電源に接続される、請求項25に記載の装置。
【請求項27】
前記ワークステーションが前記装置を通して前期電源を制御する、請求項26に記載の装置。
【請求項28】
前記ワークステーションによる前記装置に対するアクセスが、一意のパスワードまたは認証情報により制御される、請求項27に記載のシステム。
【請求項29】
前記装置が少なくとも1つの冗長な電源を含む、請求項24に記載のシステム。
【請求項30】
前記装置が少なくとも1つのオプションメニュー回路を含む、請求項24に記載のシステム。
【請求項31】
前記オプションメニュー回路が前記遠隔装置の識別を含むオプションメニューを作成する、請求項30に記載の装置。
【請求項32】
前記装置が、前記遠隔装置の少なくとも1つのKVMポートと少なくとも1つのビデオポートの間の選択通信のために少なくとも1つのヘッダ回路を含む、請求項24に記載のシステム。
【請求項33】
前記ヘッダ回路が、ビデオスイッチと少なくとも1つの受信機送信機回路を含み、前記受信機送信機回路が並列信号と直列信号を変換する、請求項32に記載のシステム。
【請求項34】
前記遠隔管理装置が、ビデオ信号により生成される20画像をデジタル化し、補正するための少なくとも1つのフレーム取り込み器回路を含む、請求項24に記載のシステム。
【請求項35】
前記フレーム取り込み器回路がアナログビデオ信号をデジタルビデオ信号に変換する、請求項34に記載の装置。
【請求項36】
前記装置が少なくとも1つのローカルKVMポートを含む、請求項24に記載のシステム。
【請求項37】
前記装置がビデオ信号を圧縮するための少なくとも1つのビデオプロセッサ回路を含む、請求項24に記載のシステム。
【請求項38】
前記ビデオプロセッサ回路が、前記中央処理回路からビデオ信号を受信するために少なくとも1つの回路を含む、請求項37に記載の装置。
【請求項39】
前記ビデオプロセッサ回路が、前記ビデオ信号の赤、緑および青のビデオ信号成分を記憶するための少なくとも1つのピクセルプッシャー回路を含む、請求項38に記載の装置。
【請求項40】
前記ビデオプロセッサ回路が前記ビデオ信号を示すビデオフレームを記憶するための少なくとも1つのフレームバッファ回路を含む、請求項37に記載の装置。
【請求項41】
前記ビデオプロセッサ回路が、JBIG圧縮を使用してビデオ信号を圧縮する、請求項37に記載の装置。
【請求項42】
前記ビデオプロセッサ回路が、フレームバッファ回路、ピクセルプッシャー回路、およびJBIG圧縮の内の少なくとも1つを制御するためのマイクロプロセッサによって使用するための少なくとも1つのメモリ回路を含む、請求項37に記載の装置。
【請求項43】
前記ビデオプロセッサ回路が信号をイーサネットポートまたはモデムポートに出力するための少なくとも1つの開閉器を備える、請求項37に記載の装置。
【請求項44】
前記装置がモデムによって受信される信号を復調するための少なくとも1つのモデムモジュールを含む、請求項24に記載の装置。
【請求項45】
前記通信媒体が、LAN、WAN、無線接続、モデム、直接モデム接続およびインターネットからなるグループから選択される少なくとも1つである、請求項24に記載の装置。
【請求項46】
前記ワークステーションによって送受される前記信号がキーボード、ビデオ、マウス、シリアルまたは電力からなるグループから選択される少なくとも1つの制御信号である、請求項24に記載の装置。
【請求項47】
前記装置が前記装置をリセットするためのリセット回路を含む、請求項24に記載のシステム。
【図1】
【図2】
【図3A】
【図3B】
【図3C】
【図3D】
【図4】
【図5A】
【図5B】
【図6】
【図7】
【図8】
【図9】
【図2】
【図3A】
【図3B】
【図3C】
【図3D】
【図4】
【図5A】
【図5B】
【図6】
【図7】
【図8】
【図9】
【公表番号】特表2007−524284(P2007−524284A)
【公表日】平成19年8月23日(2007.8.23)
【国際特許分類】
【出願番号】特願2006−541203(P2006−541203)
【出願日】平成16年10月28日(2004.10.28)
【国際出願番号】PCT/US2004/035943
【国際公開番号】WO2005/054980
【国際公開日】平成17年6月16日(2005.6.16)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.イーサネット
【出願人】(506178472)リープ,インコーポレイテッド (3)
【Fターム(参考)】
【公表日】平成19年8月23日(2007.8.23)
【国際特許分類】
【出願日】平成16年10月28日(2004.10.28)
【国際出願番号】PCT/US2004/035943
【国際公開番号】WO2005/054980
【国際公開日】平成17年6月16日(2005.6.16)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.イーサネット
【出願人】(506178472)リープ,インコーポレイテッド (3)
【Fターム(参考)】
[ Back to top ]