(57)【要約】遠隔制御システムにおいて（多くの他の環境においてと同様）、ビットマップの色表現は、記憶領域の占有および送信速度の点で、最も大きい要素の１つである。多くの場合、ビットマップによって実際に用いられるのは限られた数の色のみであるので、単一画素のビットパターンは、全ての可能な異なる色を表すために実際に必要なものよりも大きい。本発明によって、色の数が所定の閾値を超えない場合、ビットマップにおいて用いられる全ての色を含むパレットテーブルを生成する。そして、ビットマップにおける画素表現は、パレットテーブルにおける対応するエントリに対するポインタによって置換される。これによって、ビットマップの全体的なサイズを小さくすることができる。そして、小さくなったビットマップを、関連するパレットテーブルと共に送信する。受信コンピュータ（遠隔制御システムにおけるコントローラ）は、パレットテーブルによって、元のビットマップを再構築することができる。【特許請求の範囲】
【請求項１】
複数の画素を表すビットマップのサイズを小さくするための方法であって、各画素はビットパターンによって表され、この方法は、
前記ビットマップに含まれる異なるビットパターンの数ｎを数えるステップと、
後の再使用のために、少なくともｎ個のエントリを有するパレットテーブルを生成するステップであって、前記異なるパターンの各１つは該ビットパターンを含む少なくとも１つの対応するエントリを有する、ステップと、
前記ビットマップにおける前記ビットパターンを、前記パレットテーブルにおける前記対応するエントリに対するポインタによって置換するステップと、
を具備する、方法。
【請求項２】
各ビットパターンは３色表現における１つの色を表す、請求項１の方法。
【請求項３】
前記ビットパターンは、３色表現における色のインジケータを含む第２のパレットテーブルに対するポインタである、請求項１の方法。
【請求項４】
第１および第２のコンピュータを接続するネットワーク上でデジタル画像のビットマップを送信するための方法であって、
前記第１のコンピュータにおいて、前出の請求項のいずれかの方法によって、前記ビットマップの大きさを小さくするステップと、
前記小さくしたビットマップおよび前記パレットテーブルを前記第２のコンピュータに送信するステップと、
前記第２のコンピュータにおいて、前記小さくしたビットマップおよび前記パレットテーブルによって前記デジタル画像を取得するステップと、
を具備する、方法。
【請求項５】
コンピュータプログラムであって、該プログラムがコンピュータ上で実行された場合に、前出の請求項のいずれかの方法のステップを実行するように構成されたプログラムコード手段を含むコンピュータプログラム。
【請求項６】
請求項５のコンピュータプログラムを含む遠隔制御プロダクト。
【請求項７】
第１および第２のコンピュータを接続するネットワーク上でデジタル画像のビットマップを送信するためのシステムであって、
前記第１のコンピュータにおいて、請求項１の方法によって、前記ビットマップの大きさを小さくするための手段と、
前記小さくしたビットマップおよび前記パレットテーブルを前記第１のコンピュータから前記第２のコンピュータに送信するためのネットワーク手段と、
前記第２のコンピュータにおいて、前記小さくしたビットマップおよび前記パレットテーブルを用いて前記デジタル画像を取得するための手段と、
を具備する、システム。
【請求項８】
請求項７のシステムを含む遠隔制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カラービットマップ（ｃｏｌｏｒ  ｂｉｔｍａｐ）の記憶領域の占有を小さくするための、特に、ネットワークを介してビットマップを格納または送信しなければならないシステムにおいて用いられる方法およびシステムに関する。
【背景技術】
【０００２】
ビットマップサイズは、特にネットワークを介してビットマップを格納または送信しなければならない場合、重要なパラメータである。最初の場合には記憶領域の占有、後者の場合には送信速度が、大きく影響を受ける可能性がある。この理由のため、ビットマップのサイズを小さくし、結果としてそれらの記憶領域の占有および送信速度を低減するために、多くの技法が開発されている。唯一のものではないが、この必要性が極めて重要である一種の用途は、「遠隔制御（ｒｅｍｏｔｅ  ｃｏｎｔｒｏｌ）」である。遠隔制御プログラムは、通信の用途の特別なカテゴリである。それらは、あるコンピュータを、それを実際に制御する別のコンピュータと単に接続する以上のものである。電話線およびモデムを介して、またはＬＡＮ接続を介して接続されることによって、これらのプログラムは、通常ターゲットと呼ばれる１つのデータ処理システム（例えばパーソナルコンピュータまたはワークステーション）のリソースを全て、通常コントローラと呼ばれる別のデータ処理システム（例えばＬＡＮによって接続されたパーソナルコンピュータまたはワークステーション）の完全な制御下に置くことができる。コントローラの画面は、ターゲットのものを再現する。コントローラのキーボードは、ターゲットのデータ処理システム上に直接文字を入力することができる。コントローラのマウスは、ターゲットの画面上でマウスポインタを動かすことができる。コントローラの画面は、常にターゲットのデータ処理システムの画面からデータを受信する。同様に、コントローラのキーボードは、キーが打たれるたびに、ターゲットのデータ処理システムにデータを送信する。あらゆる実際上の目的のため、コントローラのユーザは、ターゲットのデータ処理システムの前に座っているようなものである。
【０００３】
この種の遠隔制御ソフトウエアは、多くの環境において有用であり得る。単に一例として、オフィスのパーソナルコンピュータシステムを、家庭のパーソナルコンピュータから制御し動作させることができる。オフィスのＰＣが（例えばモデムに）接続されたままであれば、家庭のＰＣから制御を行うことができ、このターゲットＰＣのリソースを全て遠隔で制御し用いることができる。より具体的な使用は、オフィスでネットワーク接続したＰＣに（例えばモデムを介して）ダイヤルインし、ログインし、ネットワークアプリケーションを動作させ、またはネットワーク上の共有ファイルを更新することである。
【０００４】
送信線によって障害となるものが生じると、遠隔制御動作の速度に大きな影響を与える可能性がある。性能を上げるため、遠隔制御プログラムは、通信線（例えばＬＡＮまたは電話ケーブル）を介して送信する必要のあるデータ量を減らし最小限に抑えようとする。コントローラＰＣに再現しなければならないターゲットＰＣのディスプレイ画面上のビデオ画像のリフレッシュ（ｒｅｆｒｅｓｈ）は、転送しなければならない情報量が多いため、送信速度の大きな要素となる。過去において、遠隔制御プログラムは、数分の１秒ごとにターゲットＰＣ画面の全画像を遠隔ＰＣに送信しリフレッシュすることによって機能した。画面の画像をコントローラＰＣに送信する一定の速度は、画面リフレッシュレートと呼ばれた。次の画面リフレッシュにターゲットＰＣの変化が含まれると、コントローラＰＣの画面は、ターゲットＰＣの画面を正確に反映した。この手法は、むろん、各リフレッシュで送信するデータが大量であるため、速度に関してあまり満足できるものではなかった。
【０００５】
多くの場合、画像の変化は画面の小さい部分に限られており（例えばメニューのプルダウン、オブジェクトの強調）、変化したデータのみをリフレッシュする必要がある。コントローラシステムは、以前に受信した画面データを使用し、その画面の変更部分のみをリフレッシュすることができる。冗長な画面リフレッシュデータを除外することによって、遠隔制御プログラムは、応答時間を改善することができる。キャッシュメモリは、ハードドライブおよびメモリチップの性能を高め、また、遠隔制御プログラムのために有用であり得る。キャッシュの背景にある考えは、迅速にアクセス可能である一時的な格納領域に最近用いたデータを保持することである。まもなくデータが再び必要になると、それらを元のソースから検索するよりも、高速アクセスの一時的格納領域からアクセスする方がはるかに迅速である。この技法に従って、最近表示した画面の要素を、拡張メモリにキャッシュとしてセーブする。ページ全体がコントローラＰＣ画面キャッシュから再作成され、ターゲットからコントローラＰＣにモデムを介して大量の情報を転送する必要をなくす。画面キャッシュから再作成されることが多い画面要素には、ビットマップ、テキストおよびフォントが含まれる。
【０００６】
ビットマップ画像の送信において、送信される最も重い情報の１つは、各画素の色である。周知のＲＧＢフォーマットでは、各画素の色は、１つは赤、１つは緑、１つは青である３つの８ビット（すなわち各々が８ビットを有する３バイト）によって表される。異なる色の最大可能数は、１６，７７７，２１６すなわち２２４である。全ての可能な色によるこの表現は、「トゥルーカラー（ｔｒｕｅ  ｃｏｌｏｒ）」と呼ばれる。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
遠隔制御システムでは（多くの他の環境と同様に）、この詳細な色表現が常に必要であるわけではなく、この情報全ての送信は望ましくない負担となることが多い。通常、コントローラシステムの範囲では、もっと低品質の色画像でも充分であろう。この理由のため、多くの遠隔制御システムは、減色アルゴリズム（ｃｏｌｏｒ  ｒｅｄｕｃｔｉｏｎ  ａｌｇｏｒｉｔｈｍ）を用いて、色表現を２４（または１６）ビットから８ビットまたは４ビットにまで削減する。これらのアルゴリズムを実施する機能の１例は、Ｍｉｃｒｏｓｏｆｔ（Ｒ）のＧｅｔＤＩＢｉｔｓである。従来技術の減色機能の欠点は、主として元の画像にできるだけ近い減色画像を生成しようとしているために、この減色の実行にそれらが比較的長い計算時間を必要とすることである。遠隔制御システムでは、多くの場合、これらの動作は極めて高速で行われなければならず、減色による遅延は許容不可能である。代替的な減色機構は、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  ＣｏｒｐによるＴｉｖｏｌｉ  Ｒｅｍｏｔｅ  Ｃｏｎｔｒｏｌによって実施され、英国特許出願９９１７４５５．９に記載されたものである。この機構は、処理が速くなる利点を有し、その代わりに、結果として得られる「減らした」色と元の色との間の対応の精度が低下している。この精度低下は、通常、特に遠隔制御システムにおいては許容可能であり、計算における遅延よりは好ましい。従って、処理の速度および容易さを結果の精度と組み合わせる方法は、極めて望まれるものであろう。
【０００８】
本発明の目的は、上述の欠点を克服する技法を提供することである。
【課題を解決するための手段】
【０００９】
本発明に従って、我々は、複数の画素を表すビットマップのサイズを小さくするための方法を提供する。各画素はビットパターンによって表される。この方法は、
ビットマップに含まれる異なるビットパターンの数ｎを数えるステップと、
後の再使用のために、少なくともｎ個のエントリを有するパレットテーブルを生成するステップであって、異なるパターンの各１つは該ビットパターンを含む少なくとも１つの対応するエントリを有する、ステップと、
ビットマップにおけるビットパターンを、パレットテーブルにおける対応するエントリに対するポインタによって置換するステップと、
を具備する。
【００１０】
また、本発明に従って、コンピュータプログラムであって、該プログラムがコンピュータ上で実行された場合に上述の方法を実行するためのプログラムコード手段を含むコンピュータプログラムを提供する。
【００１１】
本発明の様々な実施形態について、添付図面を参照して、一例として詳細に説明する。
【発明を実施するための最良の形態】
【００１２】
図１は、遠隔制御システムを実施可能である典型的なローカルエリアネットワーク（ＬＡＮ）の一例を示す。これは、２つ以上のデータ処理システム間の通信ブリッジとして機能するＬＡＮサーバ１０１を備える。他の接続システムでは、サーバの機能は、例えば、ブリッジ、モデム、ケーブル、または一般的に、２つ以上のデータ処理システム間に挿入され、それらを接続状態とするいずれかのデバイスによって実行される。
【００１３】
データ処理システム１０５は、コントローラであり、代替的に、他のデータ処理システム１０３、１０７、および１０９の１つの制御を行うことができる。
【００１４】
データ処理システム１０３、１０５、１０７、および１０９は、市販されたパーソナルコンピュータまたはワークステーションとすることができる。それらは、好ましくは、当技術分野に既知の方法で結合されたディスプレイユニットおよびキーボードを含む。更に、データ処理システムは、主プロセッサおよびメモリに加えて固定ディスクドライブおよびディスケットドライブを搭載するように機能することができるプロセッサシステムユニットを含む。更に、グラフィカルユーザインタフェースの利用を容易にするために、データ処理システムは、好ましくは、マウス等のグラフィックポインティングデバイスを含み、これを用いて、画面上の視覚的ディスプレイ内でポインタの位置を操作することができる。
【００１５】
上述のデータ処理システムは、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  Ｃｏｒｐｏｒａｔｉｏｎによって製造されるパーソナルコンピュータ等、最新のパーソナルコンピュータのいずれかを利用して実施可能であることは、当業者には認められよう。
【００１６】
データ処理システムには、通常、グライフィカルユーザインタフェース（ＧＵＩ）が設けられており、ユーザがデータ処理システムを制御し、システムディスプレイ上にユーザアクションの結果を提示することを可能とする。グラフィカルユーザインタフェースにおいて、アプリケーションおよびデータは、通常、ユーザインタフェース上に描かれたオブジェクトとして提示される。このため、ユーザには、複雑なデータ処理システムに対する図による直観的なインタフェースが与えられて、描かれたオブジェクトのグラフィックによる選択およびそれらのオブジェクトに対応するアプリケーションの操作を可能とする。
【００１７】
上述の構成を利用した多数の異なるグラフィカルユーザインタフェース環境が市販されている。これらの環境には、Ａｐｐｌｅ  Ｃｏｍｐｕｔｅｒ，Ｉｎｃ．によって開発されたＳｙｓｔｅｍ７オペレーティングシステム（Ｓｙｓｔｅｍ７はＡｐｐｌｅ  Ｃｏｍｐｕｔｅｒ，Ｉｎｃ．の商標である）、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎによって開発されたＷｉｎｄｏｗｓ（Ｒ）グラフィカルユーザインタフェース（Ｗｉｎｄｏｗｓ（Ｒ）はＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎの商標である）、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓによって開発されたＯＳ／２  Ｐｒｅｓｅｎｔａｔｉｏｎ  Ｍａｎａｇｅｒ（ＯＳ／２およびＰｒｅｓｅｎｔａｔｉｏｎ  ＭａｎａｇｅｒはＩｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓの商標である）が含まれる。
【００１８】
ウインドウ環境は、一般に、コンピュータシステム１００の動作を制御するためのユーティリティプログラム集合を含むオペレーティングシステムソフトウエアの一部である。
【００１９】
図１に示す例では、システム１０３はターゲットシステムとして規定され、システム１０３のリソースは全てコントローラシステムによって使用し活性化することができる。かかる制御を実行するため、システム１０５は、そのディスプレイ上に、ターゲットディスプレイ１０３の正確なコピーを表現することができなければならない。
【００２０】
上述のように、ビットマップに関連する最も重い情報の１つは、元の画像の各画素の色である。遠隔制御システムでは、要求される精度のレベルは常に極めて高いわけではなく、完全な色情報を送信することは送信時間を無駄にするものであろう。ＲＧＢフォーマットによれば、各画素の色は、１つは赤、１つは緑、１つは青である３つの８ビット（すなわち各々が８ビットを有する３バイト）によって表される。いかなるアプリケーションでも、通常、可能な１６．７７７．２１６色のうち２５６から成るサブセットで充分である。遠隔制御システムでは、時として、１６色が許容可能な妥協案である。これらの減色表現は、一種のインデクス（パレット）を利用し、これは、通常「トゥルーカラー」表現（すなわち３バイト）において可能な色を全て含む。最新のシステムで用いられる別の可能な表現は、６４ｋカラービットマップである。６４ｋカラービットマップでは、各画素を２バイトによって表す。これらの２バイトは、この場合、６４ｋ長パレットにおけるインデクスではなく、それら自身が色を表す。１６ビットを、３つの５ビット長のグループに分割する。１ビットは無視される。これらのグループの各々が、基本色すなわち赤、緑、および青の１つの強度を識別する。
【００２１】
図２は、２５６色ビットマップを実現する最新の色パレットを示す。ビットマップ２０１の各画素は、８ビット長である。この場合の８ビット画素は、色自体を表すのではなく、代わりに、システムが用いる物理的な色を含むテーブル２０３に対するエントリ（ｅｎｔｒｙ）を表す。このテーブルはパレットと呼ばれる。２５６色ビットマップのパレットは、必然的に２５６のエントリを有しなければならない。つまり、各色に１つである。各エントリは、所望の色を描くために必要な緑、赤、および青の量を表す３つの値によって形成される。色パレットの使用は、ビットマップを正規化し、多くの空間を節約するための技法である。実際、各画素ごとに必要な１バイト（８ビット）に対して、各エントリは３バイト長（ＲＧＢ）である。このインデクス機構によって、ビットマップのサイズを大幅に縮小する。
【００２２】
しかしながら、これらの色のほとんどが実際に用いられないという可能性があり、たいていの場合はそうである。１つのビットマップがサポートする色の数は、色を表すためにそのビットマップで用いられるビット数を決めるだけであり、必ずしも実際に用いられている色の数ではない。換言すれば、ビットマップにおいて見出される理論上の色の数と、ビットマップにおいて実際に用いられる色の数とは、全く別のものである。
【００２３】
理論上、２５６色ビットマップは、それが「ソリッドブラシ（ｓｏｌｉｄ  ｂｒｕｓｈ）」によって描いた領域である場合は１つの色のみを有し、それが２色筆によって描かれた領域である場合または何らかの文書を含む場合は２つの色を有し得る。これは、遠隔制御システムでは極めて一般的に起こることである。なぜなら、これは、文字が書かれたページの大部分を占める典型的な場合だからである（すなわち、画面上にワードプロセッサを表示する場合）。同じ概念を、４色および１６色に拡張することができる。本発明による方法およびシステムは、もっと多くの数の色を有するビットマップを用いても使用可能であるが、その利点は小さくなるか、または更には消えてしまう恐れがある。
【００２４】
本発明によれば、上述の状況の１つが発生する（すなわち１つのビットマップ内で実際に用いるのが限られた数の色のみである）場合、元のビットマップを、実際に用いる色のみをアドレスする「正規化（ｎｏｒｍａｌｉｚｅｄ）」したものによって置換することができる。上述の図１に示す例では、ビットマップ２０１において２つの色のみが表現される。すなわち、可能な２５６色のうち第１のもの（１６進表現で００）および最後のもの（ＦＦ）である。これは、テーブル２０３の２５４のエントリがこのビットマップによって用いられないことを意味する。ビットマップの各画素は、テーブル２０３の２５６のエントリをアドレスするのに必要な１６進数を表すために８ビット（数ごとに４ビット）を必要とする。この場合、ビットマップの可能な色を全て表すためには、単一のビットで充分であろう（０および１）。各々が３バイトを有する２つのエントリを有するテーブル（パレット）は、ビットマップ２０１が必要とする色を全て含むことができる。本発明の好適な実施形態によれば、図３に例として示すように、ビットマップ２０１とパレット２０３との間に「第２レベルのパレット」を挿入することができる。
【００２５】
ビットマップ３０１では、画素値００およびＦＦが０および１によって置換されている。なぜなら、ビットマップは実際には２つの色のみを用いていたからである（色パレット２０３の最初のもの（００）および最後のもの（ＦＦ）の１６進エントリに対応する）。図２の元のビットマップ２０１は、画素ごとに８ビットを用いていたが、同じ情報を、画素ごとに１つのみのビットによって表すことができる。実際、１ビットは２つの値のみを表し、この場合はこれらで充分である。問題は、１ビットの２つの値を、どのようにして２５６色パレットの２つの実際のエントリに一致させるかである。答えは、第２レベルのパレット３０３を用いることである。第２レベルのパレットは、実際に用いている色の数に関してビットマップを正規化する方法である。これは、元の色パレットに対する第２レベルの間接的方法である。換言すると、上述の例を参照すると、ビット値０は、第２レベルのパレットの第１のエントリをアドレスし、これは元のパレットのエントリ番号００をアドレスする。ビット値１は、第２レベルのパレットの第２のエントリをアドレスし、これは元のパレットのエントリ番号ＦＦをアドレスする。
【００２６】
上述の例は、極めて単純な動作で、元の表現の精度を失うことなく、どのように元のビットマップを理論的に元のサイズの８分の１に小さくすることができるかを示す。この場合、バイト００の全発生をビット値０によって置換し、バイトＦＦの全発生をビット値１によって置換すれば充分である。従って、新しいビットマップは、その第２レベルのパレットに結合されると有意義である。元のビットマップを再構築することができるのは、第２レベルのパレットによってである。
【００２７】
図４は、本発明の好適な実施形態による方法のステップを概略的に示す。ビットマップ４０１に「正規化プロセス」を適用して、出力としてパッケージ４０３を生成する。これは、例えばネットワーク上で送信することができる。パッケージ４０３は、正規化ビットマップ４０５と、正規化ビットマップ４０５を「復号」するために必要な対応するパレット４０７とを含む。「逆正規化（ｒｅｖｅｒｓｅ  ｎｏｒｍａｌｉｚａｔｉｏｎ）」プロセスは、入力としてパッケージ４０３を受信し、これは、出力としてビットマップ４０９を生成する。ビットマップ４０９は、元のビットマップ４０１に対応する。上述の遠隔制御システムの例では（図１を参照のこと）、ビットマップ４０１を、ネットワーク（例えばＬＡＮ）上で、ターゲットのコンピュータ（例えば１０３）からコントローラコンピュータ１０５に送信しなければならない。元のビットマップで実際に用いる色の数が限られている場合（例えば１６未満）、本発明に従って正規化プロセスを適用することにより、色ビットマップ４０１のサイズを小さくすることが有利である可能性がある。この正規化プロセスは、ターゲットコンピュータ１０３で実行しなければならず、これは、正規化ビットマップ４０３およびパレット４０７を出力として生成する。正規化ビットマップは、サイズが小さくなっており、ＬＡＮ上でコントローラコンピュータ１０５に送信することが容易になり速くなる。正規化ビットマップ４０３が、パレット４０７と共にコントローラコンピュータ１０５によって受信されると、逆正規化プロセスにより、元のビットマップ４０１と同一のビットマップ４０９を構築することができる。
【００２８】
先に示した例では、システムは、２５６色の表現を用い、対応するパレット２０３（例えば図２および３を参照のこと）は、ターゲットコンピュータ１０３およびコントローラコンピュータ１０５の双方で利用可能である。従って、ビットマップ４０１の画素は、２５６の異なる色をアドレス可能とするために、各々が８ビットを必要とする。前述のように、実際にはこれらの限られた２５６色のサブセットのみを用いるということが起こり得る。この場合、元のビットマップ４０１を、「第２レベル」のパレットをアドレスする正規化ビットマップ４０５で置換することが有利である。この第２レベルのパレットは、以下の表に従い、正規化パレットにおいて表現可能な色の最大数と同じ数のエントリを有する。
【００２９】
2005506019.tif 000002
【００３０】
第１の場合、ピクチャを再生するために必要な色は単一の色のみなので、実際にはビットマップは送信されず、一方、最後のもの（＞１６色の使用）では、本発明の方法では何の利点もないということを注記しておく。
【００３１】
本発明の好適な実施形態によれば、第２レベルのパレットは、以下のステップで得られる。
−送信対象のビットマップによって実際に用いられる色の数をカウントする。
−この数が１６未満である場合、２５６色のパレット上でこれらの色の各１つをアドレスするために、第２レベルのパレット（上述の表に従ったサイズを有する）を生成する。
−画素が第２レベルのパレットで対応する色をアドレスする正規化ビットマップによって、元のビットマップを置換する。
【００３２】
本発明について、２５６色の表現を有する開始ビットマップを参照して詳細に説明した。これは単に１例であり、大きな相違なく同じ技法を様々な表現に適用可能であることは、当業者には認められよう。別の可能性は、元のビットマップがもっと多くの色を有する色表現を用いる場合、上述した例の正規化プロセスの前に減色ステップを実行することである。多くの場合、これは負担を追加することにはならない。なぜなら、上述のように、減色技法は、最新の遠隔制御システムにおいて多く用いられるからである。本発明の好適な実施形態によれば、ＧＢ特許出願９９１７４５５．９に開示されたような減色技法を用いて、６４ｋ色ビットマップを（または「トゥルーカラー」ビットマップでさえも）２５６色のビットマップに変換する。この種の減色を行う場合、ビットマップ全体を画素ごとに走査する。本発明の好適な実施形態は、追加の動作のため、この走査を利用する。
−実際に用いられている色の数をカウントする。
−第２レベルのパレットを構築する。
【００３３】
必ずしも減色アルゴリズムを変更することなく同じ情報を明白に検索することができるが、効率を高めるためにそうすることが合理的である。
【００３４】
以下は、本発明の好適な実施形態において上述の方法ステップを実施することができる方法の例である。
【００３５】
色の数のカウント
２５６色のビットマップの場合、２５６バイト長のアレイおよびカウンタを割り当てることが充分である。アレイおよびカウンタをゼロに初期化する。色の数をカウントするため、ビットマップを走査する必要がある。新しい画素が走査されるたびに、このアレイに対するインデクスとして画素を用いる。対応する要素値がまだ０である場合、これを１に変更してカウンタを増分する。走査が完了した時、カウンタは、ビットマップが実際に用いる色の数を示す。
【００３６】
ビットマップの正規化
２５６色のビットマップの場合、２５６バイトの間接的アレイを割り当てれば充分である。この場合も、この走査は、可能ならば既存の方法の走査を利用することは明らかである。間接的インデクスアレイにおいてどの新しいエントリを追加しているかを示す変数が必要である。このアレイは、第２レベルのパレットにおける対応するパレットエントリの変換を表す。従って、Ｎ個のエントリのみを用いることがわかる。ここで、Ｎはまさに色の数である。他のエントリが想定する値は意味がない。それらのエントリは、アクセスされない。なぜなら、それらの位置を示す元のビットマップに画素が無いからである。新しい色が生じるたびに、画素値自体をこのアレイに対するインデクスとして用いて（色をカウントする場合に用いた同様のプロセス）、対応するエントリを、正規化ビットマップにおける画素の新しい値で更新する。次いで、カウンタを増分する。２つのプロセスを共に組み合わせる場合、色をカウントするのに用いた同じカウンタを使用可能である。いったんこのアレイを形成すると、第２レベルのパレットを構築しビットマップの正規化を実行することは容易であり、元の画素の全発生が間接的インデクスの対応するエントリで置換される。
【００３７】
正規化ビットマッププロセスにおいて間接的インデクスを用いる一方で、第２レベルパレットを用いて逆プロセスを実行する。この理由で、第２レベルパレットは正規化ビットマップと共に送信しなければならず、このため元のビットマップは逆プロセスによって得ることができる。
【００３８】
第２レベルパレットは、正規化プロセスの出力であり、逆正規化プロセスに対する入力である。
【００３９】
正規化ビットマップにおいて、画素は、元のビットマップよりも少ないビットで表される。画素は、第２レベルパレットに対するインデクスとして解釈される。第２レベルパレットに、非正規化ビットマップの画素の拡大値または元の値を格納する。
【００４０】
逆正規化プロセス
このプロセスは、正規化ビットマップおよび第２レベルパレットから元のビットマップを復元することになっている。このプロセスは、正規化プロセスのちょうど逆である。正規化ビットマップが用いる画素ごとのビット数が与えられると、このプロセスは、各値の発生を、対応する第２レベルパレットのエントリによって置換する。
【００４１】
上述の方法およびシステムの性能は、色ビットマップを格納または送信する最新のシステム（例えば遠隔制御システム）で実施されると、圧縮アルゴリズムによって影響を受ける可能性があることを注記しておかなければならない。従って、本方法を用いる場合、性能向上の正確な絶対的大きさを与えるのは難しい。いずれにしても、ビットマップにおいて限られた数の色を用いる場合（例えば２５６色表現において１６未満）、ビットマップのサイズの平均２０％の縮小が得られ、結果として送信速度比が低下すると推定される。
【図面の簡単な説明】
【００４２】
【図１】本発明の方法およびシステムを実施するために利用可能なネットワークおよびパーソナルコンピュータを概略的に示す。
【図２】来技術による色パレットを示す。
【図３】本発明の好適な実施形態による第２レベル色パレットシステムの一例を示す。
【図４】本発明の好適な実施形態による方法を示す。
【図１】
2005506019.tif 000003
【図２】
2005506019.tif 000004
【図３】
2005506019.tif 000005
【図４】
2005506019.tif 000006
【国際公開パンフレット】
2005506019.tif 000007
2005506019.tif 000008
2005506019.tif 000009
2005506019.tif 000010
2005506019.tif 000011
2005506019.tif 000012
2005506019.tif 000013
2005506019.tif 000014
2005506019.tif 000015
2005506019.tif 000016
2005506019.tif 000017
2005506019.tif 000018
2005506019.tif 000019
2005506019.tif 000020
2005506019.tif 000021
2005506019.tif 000022
2005506019.tif 000023
2005506019.tif 000024
2005506019.tif 000025
【国際公開パンフレット（コレクトバージョン）】
2005506019.tif 000026
【国際調査報告】
2005506019.tif 000027
2005506019.tif 000028