(57)【特許請求の範囲】
【請求項１】
２レベルエンコーディングシステムを有するシステムであって、
前記２レベルエンコーディングシステムは、
文書に関連する接続されたコンポーネント情報を分析し、クラスタを抽出し、形状のグローバル辞書、形状のページ辞書、およびクラスタ化されない形状のストアの少なくとも１つにクラスタを記録する、クラスタ形状エスティメータと、
前記グローバル辞書に記録されたクラスタの辞書位置を決定するクラスタコンポーネントからのビットマップ推定手段と、
該ビットマップ推定手段は、
ビットマップのクラスタに対応するクラスタが、グローバル辞書内に見つかった場合、該グローバル辞書に記録された前記ビットマップのクラスタに対応するクラスタの辞書位置を決定する手段と、
ここで、前記辞書位置は、前記グローバル辞書へのポインタと、前記クラスタがページに現れる場所の位置座標とを有し、
前記ビットマップのクラスタと前記グローバル辞書のクラスタとの差分値を示すクラスタ化残差を決定する手段と、
前記決定されたクラスタ化残差を前記決定されたクラスタの辞書位置と共にエンコードするか否かを決定する手段と
を含み、
ここで、前記決定する手段は、ロスレスモード又はロッシイモードで動作し、ロスレスモードにおいては、前記ビットマップのクラスタが前記グローバル辞書のクラスタから第１閾量内にある場合には前記クラスタ化残差は前記辞書位置と共にエンコードされ、ロッシイモードにおいては、前記ビットマップのクラスタが前記グローバル辞書のクラスタから第２閾量内にある場合には前記クラスタ化残差はエンコードされず前記辞書位置のみがエンコードされ、ページでのクラスタの存在が書き留められ、前記記録されたクラスタと該ページでのクラスタの加重平均が実行され、修正されたクラスタが前記グローバル辞書に記録され、
前記文書に関する前記グローバル辞書および前記ページ辞書の少なくとも１つのクラスタのページ位置を決定するクラスタ位置エスティメータと
を具えたことを特徴とするシステム。
【請求項２】
前記クラスタ位置エスティメータから受け取る前記ページ位置をエンコードする第１エンコーダをさらに具えたことを特徴とする請求項１記載のシステム。
【請求項３】
前記クラスタコンポーネントからのビットマップ推定手段から受け取る前記辞書位置をエンコードする第２エンコーダをさらに具えたことを特徴とする請求項２記載のシステム。
【請求項４】
前記ページ辞書および前記グローバル辞書の少なくとも１つをエンコードする第３エンコーダをさらに具えたことを特徴とする請求項３記載のシステム。
【請求項５】
前記クラスタ化されない形状のストアをエンコードする第４エンコーダをさらに具えたことを特徴とする請求項４記載のシステム。
【請求項６】
前記接続されたコンポーネント情報は、前記接続されたコンポーネントの色、水平サイズ、垂直サイズ、水平位置、および垂直位置の少なくとも１つを含むことを特徴とする請求項１記載のシステム。
【請求項７】
前記ページ位置は、クラスタ間の水平ギャップを含むことを特徴とする請求項１記載のシステム。
【請求項８】
前記ページ位置は、平均垂直位置を含むことを特徴とする請求項１記載のシステム。
【請求項９】
前記ページ位置は、前記平均垂直位置とクラスタの垂直位置との間の差をさらに具えたことを特徴とする請求項８記載のシステム。
【請求項１０】
前記第１エンコーダは、少なくとも部分的に、ビットプレーンエンコーディング時に使用されることを特徴とする請求項２記載のシステム。
【請求項１１】
前記第２エンコーダは、少なくとも部分的に、ＬＺＸエンコーディング時に使用されることを特徴とする請求項３記載のシステム。
【請求項１２】
前記第３エンコーダは、少なくとも部分的に、ロスレス２レベルエンコーディング時に使用されることを特徴とする請求項４記載のシステム。
【請求項１３】
前記第４エンコーダは、少なくとも部分的に、ロスレス２レベルエンコーディング時に使用されることを特徴とする請求項５記載のシステム。
【請求項１４】
請求項１記載のシステムを具えたことを特徴とする写真複写機。
【請求項１５】
請求項１記載のシステムを具えたことを特徴とする文書スキャナ。
【請求項１６】
請求項１記載のシステムを具えたことを特徴とする光学文字認識システム。
【請求項１７】
請求項１記載のシステムを具えたことを特徴とする携帯情報端末。
【請求項１８】
請求項１記載のシステムを具えたことを特徴とするファクシミリ機。
【請求項１９】
請求項１記載のシステムを具えたことを特徴とするディジタルカメラ。
【請求項２０】
請求項１記載のシステムを具えたことを特徴とするディジタルビデオカメラ。
【請求項２１】
請求項１記載のシステムを具えたことを特徴とするセグメント化された階層イメージシステム。
【請求項２２】
請求項１記載のシステムを具えたことを特徴とするビデオゲーム。
【請求項２３】
請求項１記載のシステムを具えたことを特徴とするタブレットパーソナルコンピュータ。
【請求項２４】
２レベルエンコーディングシステムを有するシステムであって、
前記２レベルエンコーディングシステムは、
複数の接続されたコンポーネントに関連する情報を識別するクラスタ化システムと、
文書に関連する接続されたコンポーネント情報を分析し、クラスタを抽出し、形状のグローバル辞書、形状のページ辞書、およびクラスタ化されない形状のストアの少なくとも１つにクラスタを記録する、クラスタ形状エスティメータと、
前記グローバル辞書に記録されたクラスタの辞書位置を決定するクラスタコンポーネントからのビットマップ推定手段と、
該ビットマップ推定手段は、
ビットマップのクラスタに対応するクラスタが、グローバル辞書内に見つかった場合、該グローバル辞書に記録された前記ビットマップのクラスタに対応するクラスタの辞書位置を決定する手段と、
ここで、前記辞書位置は、前記グローバル辞書へのポインタと、前記クラスタがページに現れる場所の位置座標とを有し、
前記ビットマップのクラスタと前記グローバル辞書のクラスタとの差分値を示すクラスタ化残差を決定する手段と、
前記決定されたクラスタ化残差を前記決定されたクラスタの辞書位置と共にエンコードするか否かを決定する手段と
を含み、
ここで、前記決定する手段は、ロスレスモード又はロッシイモードで動作し、ロスレスモードにおいては、前記ビットマップのクラスタが前記グローバル辞書のクラスタから第１閾量内にある場合には前記クラスタ化残差は前記辞書位置と共にエンコードされ、ロッシイモードにおいては、前記ビットマップのクラスタが前記グローバル辞書のクラスタから第２閾量内にある場合には前記クラスタ化残差はエンコードされず前記辞書位置のみがエンコードされ、ページでのクラスタの存在が書き留められ、前記記録されたクラスタと該ページでのクラスタの加重平均が実行され、修正されたクラスタが前記グローバル辞書に記録され、
前記文書に関する前記グローバル辞書および前記ページ辞書の少なくとも１つのクラスタのページ位置を決定するクラスタ位置エスティメータと
を具えたことを特徴とするシステム。
【請求項２５】
前記クラスタ位置エスティメータから受け取る前記ページ位置をエンコードする第１エンコーダをさらに含むことを特徴とする請求項２４記載のシステム。
【請求項２６】
前記クラスタコンポーネントからのビットマップ推定手段から受け取る前記辞書位置をエンコードする第２エンコーダをさらに具えたことを特徴とする請求項２５記載のシステム。
【請求項２７】
前記ページ辞書および前記グローバル辞書の少なくとも１つをエンコードする第３エンコーダをさらに具えたことを特徴とする請求項２６記載のシステム。
【請求項２８】
前記クラスタ化されない形状のストアをエンコードする第４エンコーダをさらに具えたことを特徴とする請求項２７記載のシステム。
【請求項２９】
前記接続されたコンポーネント情報は、接続されたコンポーネントの水平サイズ、垂直サイズ、水平位置、および垂直位置の少なくとも１つを含むことを特徴とする請求項２４記載のシステム。
【請求項３０】
２レベルイメージ入力に基づいて２レベルイメージ出力を供給するアクティビティ検出システムをさらに含み、前記２レベルイメージ出力が、減らされたディザリング／ハーフトーン化および減らされた雑音の少なくとも１つを有することを特徴とする請求項２４記載のシステム。
【請求項３１】
前記第１エンコーダは、少なくとも部分的に、ビットプレーンエンコーディング時に使用されることを特徴とする請求項２５記載のシステム。
【請求項３２】
前記第２エンコーダは、少なくとも部分的に、ＬＺＸエンコーディング時に使用されることを特徴とする請求項２６記載のシステム。
【請求項３３】
前記第３エンコーダは、少なくとも部分的に、ロスレス２レベルエンコーディング時に使用されることを特徴とする請求項２７記載のシステム。
【請求項３４】
前記第４エンコーダは、少なくとも部分的に、ロスレス２レベルエンコーディング時に使用されることを特徴とする請求項２８記載のシステム。
【請求項３５】
２レベルデコーディングシステムをさらに具え、
前記２レベルデコーディングシステムは、
ビットストリームの少なくとも一部をデコードする第１デコーダであって、ページ位置をデコードする第１デコーダと、
前記ビットストリームの少なくとも一部をデコードする第２デコーダであって、辞書位置をデコードする第２デコーダと、
前記ビットストリームの少なくとも一部をデコードする第３デコーダであって、形状のグローバル辞書および形状のページ辞書をデコードする第３デコーダと、
前記ビットストリームの少なくとも一部をデコードする第４デコーダであって、クラスタ化されない形状のストアをデコードする第４デコーダと、
前記ページ位置と、辞書位置と、前記グローバル辞書およびページ辞書の少なくとも１つとに少なくとも部分的に基づいて、クラスタを生成するクラスタジェネレータと、
生成されたクラスタおよび前記クラスタ化されない形状のストアに少なくとも部分的に基づいて、２レベル出力を作るコンバイナと
を有することを特徴とする請求項１ないし１３、および、請求項２４ないし３４のうちのいずれかに記載のシステム。
【請求項３６】
前記第１デコーダは、少なくとも部分的に、ビットプレーンデコーディング時に使用されることを特徴とする請求項３５記載のシステム。
【請求項３７】
前記第２デコーダは、少なくとも部分的に、ＬＺＸデコーディング時に使用されることを特徴とする請求項３５記載のシステム。
【請求項３８】
前記第３デコーダは、少なくとも部分的に、ロスレス２レベルデコーディング時に使用されることを特徴とする請求項３５記載のシステム。
【請求項３９】
前記第４デコーダは、少なくとも部分的に、ロスレス２レベルデコーディング時に使用されることを特徴とする請求項３５記載のシステム。
【請求項４０】
２レベルエンコーディングの方法であって、
クラスタ形状エスティメータを用いて、文書に関連する接続されたコンポーネント情報を分析し、クラスタを抽出し、形状のグローバル辞書、形状のページ辞書、およびクラスタ化されない形状のストアの少なくとも１つにクラスタを記録するステップと、
クラスタコンポーネントからのビットマップ推定手段を用いて、前記グローバル辞書に記録されたクラスタの辞書位置を決定するステップと、
該決定するステップは、
ビットマップのクラスタに対応するクラスタが、グローバル辞書内に見つかった場合、該グローバル辞書に記録された前記ビットマップのクラスタに対応するクラスタの辞書位置を決定するステップと、
ここで、前記辞書位置は、前記グローバル辞書へのポインタと、前記クラスタがページに現れる場所の位置座標とを有し、
前記ビットマップのクラスタと前記グローバル辞書のクラスタとの差分値を示すクラスタ化残差を決定するステップと、
前記決定されたクラスタ化残差を前記決定されたクラスタの辞書位置と共にエンコードするか否かを決定するステップと
を含み、
ここで、前記決定するステップはロスレスモード又はロッシイモードで実行され、ロスレスモードにおいては、前記ビットマップのクラスタが前記グローバル辞書のクラスタから第１閾量内にある場合には前記クラスタ化残差は前記辞書位置と共にエンコードされ、ロッシイモードにおいては、前記ビットマップのクラスタが前記グローバル辞書のクラスタから第２閾量内にある場合には前記クラスタ化残差はエンコードされず前記辞書位置のみがエンコードされ、ページでのクラスタの存在が書き留められ、前記記録されたクラスタと該ページでのクラスタの加重平均が実行され、修正されたクラスタが前記グローバル辞書に記録され、
クラスタ位置エスティメータを用いて、前記文書に関する前記グローバル辞書および前記ページ辞書の少なくとも１つのクラスタのページ位置を決定するステップと
を具えたことを特徴とする方法。
【請求項４１】
第１エンコーダを用いて、前記クラスタ位置エスティメータから受け取る前記ページ位置をエンコードするステップをさらに具えたことを特徴とする請求項４０記載の方法。
【請求項４２】
第２エンコーダを用いて、前記クラスタコンポーネントからのビットマップ推定手段から受け取る前記辞書位置をエンコードするステップをさらに具えたことを特徴とする請求項４１記載の方法。
【請求項４３】
第３エンコーダを用いて、前記ページ辞書および前記グローバル辞書の少なくとも１つをエンコードするステップをさらに具えたことを特徴とする請求項４２記載の方法。
【請求項４４】
第４エンコーダを用いて、前記クラスタ化されない形状のストアをエンコードするステップをさらに具えたことを特徴とする請求項４３記載の方法。
【請求項４５】
前記接続されたコンポーネント情報は、前記接続されたコンポーネントの色、水平サイズ、垂直サイズ、水平位置、および垂直位置の少なくとも１つを含むことを特徴とする請求項４０記載の方法。
【請求項４６】
前記ページ位置は、クラスタ間の水平ギャップを含むことを特徴とする請求項４０記載の方法。
【請求項４７】
前記ページ位置は、平均垂直位置を含むことを特徴とする請求項４０記載の方法。
【請求項４８】
前記ページ位置は、前記平均垂直位置とクラスタの垂直位置との間の差をさらに具えたことを特徴とする請求項４７記載の方法。
【請求項４９】
前記第１エンコーダは、少なくとも部分的に、ビットプレーンエンコーディング時に使用されることを特徴とする請求項４１記載の方法。
【請求項５０】
前記第２エンコーダは、少なくとも部分的に、ＬＺＸエンコーディング時に使用されることを特徴とする請求項４２記載の方法。
【請求項５１】
前記第３エンコーダは、少なくとも部分的に、ロスレス２レベルエンコーディング時に使用されることを特徴とする請求項４３記載の方法。
【請求項５２】
前記第４エンコーダは、少なくとも部分的に、ロスレス２レベルエンコーディング時に使用されることを特徴とする請求項４４記載の方法。
【請求項５３】
２レベルデコーディングのステップをさらに具え、
該２レベルデコーディングのステップは、
第１デコーダを用いて、ビットストリームの少なくとも一部をデコードする第１デコーダであって、ページ位置をデコードするステップと、
第２デコーダを用いて、前記ビットストリームの少なくとも一部をデコードする第２デコーダであって、辞書位置をデコードするステップと、
第３デコーダを用いて、前記ビットストリームの少なくとも一部をデコードする第３デコーダであって、形状のグローバル辞書および形状のページ辞書をデコードするステップと、
第４デコーダを用いて、前記ビットストリームの少なくとも一部をデコードする第４デコーダであって、クラスタ化されない形状のストアをデコードするステップと、
クラスタジェネレータを用いて、前記ページ位置と、辞書位置と、前記グローバル辞書およびページ辞書の少なくとも１つとに少なくとも部分的に基づいて、クラスタを生成するステップと、
コンバイナを用いて、生成されたクラスタおよび前記クラスタ化されない形状のストアに少なくとも部分的に基づいて、２レベル出力を作るステップと
を有することを特徴とする請求項４０ないし５２のいずれかに記載の方法。
【請求項５４】
前記第１デコーダは、少なくとも部分的に、ビットプレーンデコーディング時に使用されることを特徴とする請求項５３記載の方法。
【請求項５５】
前記第２デコーダは、少なくとも部分的に、ＬＺＸデコーディング時に使用されることを特徴とする請求項５３記載の方法。
【請求項５６】
前記第３デコーダは、少なくとも部分的に、ロスレス２レベルデコーディング時に使用されることを特徴とする請求項５３記載の方法。
【請求項５７】
前記第４デコーダは、少なくとも部分的に、ロスレス２レベルデコーディング時に使用されることを特徴とする請求項５３記載の方法。
【請求項５８】
請求項４０ないし５７のいずれかに記載の方法を実行するためのコンピュータ実行可能な命令を有するコンピュータプログラム。
【請求項５９】
コンピュータによって実行される請求項５８記載のコンピュータプログラムを有するコンピュータ読取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、全般的にはディジタル画像処理に関し、具体的には、インククラスタの明示的な表現を用いるバイ−レベル（Ｂｉ−Ｌｅｖｅｌ：以下、２レベルという）イメージの圧縮を容易にするシステムおよび方法に関する。
【０００２】
【従来の技術】
コンピュータを介して使用可能な情報の量は、コンピュータネットワーク、インターネット、およびディジタル記憶手段の広範囲の急増に伴って劇的に増加した。そのような情報量の増加と共に、情報をすばやく送信し、情報を効率的に記録する必要が生じた。データ圧縮は、情報の効果的な送信および記録を容易にする技術である。
【０００３】
データ圧縮によって、情報を表現するのに必要なスペースの量が減り、データ圧縮は、多数の情報タイプに使用することができる。イメージ、テキスト、オーディオ、およびビデオを含むディジタル情報の圧縮に関する需要が、高まってきた。通常、データ圧縮は、標準的なコンピュータシステムと共に使用されており、例えば、ディジタルテレビジョンおよび衛星テレビジョンならびにセル電話／ディジタル電話などがあり、これらに制限されるものではなく、他の技術でもデータ圧縮が利用されている。
【０００４】
大量の情報を扱い、送信し、処理する需要が高まるにつれて、そのようなデータの圧縮の需要も高まる。記憶装置の容量が、かなり増えてきたが、情報に関する需要は、容量の増加をしのいできた。例えば、未圧縮のディジタル画像が、５メガバイトのスペースを必要とし、同一の画像を、ロスなしで圧縮し、２．５メガバイトのスペースだけを必要とするようにすることができる。したがって、データ圧縮によって、大量の情報の転送が容易になる。ブロードバンド、ＤＳＬ、ケーブルモデムインターネット、および類似物などの伝送速度の向上をもってしても、未圧縮情報では簡単に送信の限界に達する。例えば、ＤＳＬ回線を介する未圧縮イメージの送信が、１０分を要する可能性がある。しかし、同一のイメージを、圧縮した時に約１分で送信でき、したがって、データスループットの１０倍の利得がもたらされる。
【０００５】
一般に、圧縮には、ロスレスおよびロッシイの２タイプがある。ロスレス圧縮では、圧縮後に正確なオリジナルデータを回復することができるが、ロッシイ圧縮では、圧縮後に、オリジナルデータと異なるデータが回復される。この２つのモードの間には、ある度合のデータ保全性の妥協が許容されるので、ロッシイ圧縮がロスレス圧縮よりよい圧縮率をもたらすという点で、トレードオフが存在する。ロスレス圧縮は、例えば、データを正確に再構成できないことによって、テキストの品質および可読性に劇的な影響を与えるおそれがあるので、クリティカルなテキストを圧縮する時に使用される。ロッシイ圧縮は、ある量のひずみまたは雑音が許容可能または人間の感覚について知覚不能である場合の、画像または非クリティカルテキストと共に使用することができる。
【０００６】
バイ−レベルイメージ（以下、２レベルイメージという）は、テキストおよびドローイングを含む白黒文書のコンパクトな表現の可能性を提供するので、ディジタル文書処理で非常に一般的である。そのようなイメージでは、画像要素（画素）を、２進ソース（例えば、白＝「０」、黒＝「１」）から来るものとみなすことができる。そのようなイメージには、通常は、大量のホワイトスペースおよび繰り返されるインクパターンが含まれるので、そのようなイメージを効率的にエンコードするための基本的な手法の１つが、それらのイメージをラスタ順で、例えば、上から下へ、左から右へスキャンし、適応算術符号化（ＡＣ）を介して各画素をエンコードすることであり、この適応算術符号化の状態（または確率テーブル）は、前にエンコードされた画素を囲む小さいテンプレート内の画素の値によって形成されるコンテキストによって制御される。この発想は、ほとんどの近代２レベルイメージ圧縮システムの基礎である。
【０００７】
ファクシミリイメージは、通常は、旧ＣＣＩＴＴ規格Ｔ．４およびＴ．６を使用して送信され、Ｔ．４およびＴ．６は、通常は、それぞれグループ３およびグループ４と称する。Ｇ３では、通常は、ｍｏｄｉｆｉｅｄ  Ｈｕｆｆｍａｎ（ＭＨ）コード（すなわち、白画素または黒画素のランに対するハフマンコーディング）を用いてイメージをエンコードし、Ｇ４では、「ｍｏｄｉｆｉｅｄ  ｍｏｄｉｆｉｅｄ  ＲＥＡＤ」（ＭＭＲ）符号化が使用される。ＭＨおよびＭＭＲは、コンテキスト適応ＡＣほど効率的ではないが、実施が単純である。経時的に、Ｇ３およびＧ４が、ＪＢＩＧ（ｊｏｉｎｔ  ｂｉ−ｌｅｖｅｌ  ｉｍａｇｅ  ｇｒｏｕｐ、勧告Ｔ．８２とも称する）を介するエンコーディングを含むように進歩した。ＪＢＩＧでは、コンテキスト適応ＡＣが、適応テンプレートおよび効率的なＱＭ２進算術エンコーダと共に使用される。ＪＢＩＧ−２規格では、テキストおよびハーフトーンデータに関するパターンマッチングならびにロッシイエンコーディング用のソフトパターンマッチング（ＳＰＭ）を含むことによってＪＢＩＧが拡張される。ＪＢ２エンコーダも、ＳＰＭに基づくが、２進エンコーディングにＺコーダを使用する。ＪＢＩＧ、ＪＢＩＧ−２、およびＪＢ２は、Ｇ４に対する圧縮性能のかなりの改善をもたらすことができる。
【０００８】
【特許文献１】
米国特許出願整理番号ＭＳ１５８３１４．１号
【０００９】
【特許文献２】
米国特許出願整理番号ＭＳ１２７６５８．１号
【００１０】
【発明が解決しようとする課題】
例えば、データ量の大きなファイルをスキャナーでスキャンして電子データとして保存し、圧縮して送信するような場合、そのスキャンされた電子データの圧縮処理に時間がかかり、その圧縮された電子データを電子メールを介して送信することが困難になる場合がある。その結果、電子メールを介してデータをすばやく送信することができず、非効率的となるという問題がある。
【００１１】
そこで、本発明の目的は、インククラスタの明示的な表現を用いる２レベルイメージの圧縮処理を容易化し、データ通信を迅速に行うことが可能なシステムおよび方法を提供することにある。
【００１２】
【課題を解決するための手段】
以下に、本発明のいくつかの態様の基本的な理解をもたらすために、本発明の簡略化された要約を提示する。この要約は、本発明の広範囲の概要ではない。本発明の鍵となる／クリティカルな要素を識別することと、本発明の範囲を示すことは、意図されていない。下記の唯一の目的は、後に提示するより詳細な説明の前置きとして、簡略化された形で本発明のいくつかの概念を提示することである。
【００１３】
本発明は、ビットマップが、かなりの量のテキストを含む可能性が高いスキャンされた文書に対応するという先の仮定を行うことによって現在の２レベルエンコーディング技術を拡張する２レベルエンコーディングシステムを提供する。スキャンされた文書に、黒画素のクラスタに対応する、文字のビットマップパターンが含まれる可能性がある。議論のために、文書の背景が、実質的に白であり、テキストが、実質的に黒であると仮定する。しかし、本発明に関連する使用のためのすべての適切な２レベルカラー表現が、請求の範囲に含まれることが意図されている。
【００１４】
２レベルエンコーディングシステムは、ビットマップをスキャンする（例えば、左から右へ、上から下へ）。インクのクラスタが初めて見つかった時に、そのクラスタをクラスタの辞書に追加する。その後、そのクラスタの画素をエンコードする代わりに、辞書へのポインタＰおよびクラスタがページに現れる場所の｛Ｘ、Ｙ｝位置座標をエンコードする。次に、同一のクラスタまたは十分に近いクラスタがビットマップ内で見つかった時に、やはり、画素ではなく｛Ｐ、Ｘ、Ｙ｝座標をエンコードする。クラスタに十分な画素が含まれる場合に、２レベルコーデック（ＢＬＣ）などのロスレスエンコーダを用いて画素をエンコードするよりも、｛Ｐ、Ｘ、Ｙ｝座標をエンコードすることが効率的である（例えば、「ADAPTIVE ENCODING AND DECODING OF BI-LEVEL IMAGES」という名称の特許文献１参照）。圧縮利得は、複数ページ文書についてより高くなる。というのは、クラスタ辞書を、すべてのページの間で共有することができ、したがって、辞書自体をエンコードするオーバーヘッドが、無視可能になるからである。
【００１５】
この２レベルコーディングシステムは、ロスレスモードまたはロッシイモードで動作することができる。ロスレスモードでは、ビットマップ内のクラスタが、辞書内のクラスタの第１閾量以内である場合に、｛Ｐ、Ｘ、Ｙ｝データならびに「クラスタ化残差」すなわち実際のクラスタと辞書内のクラスタとの間の小さい差が、送られる。クラスタ化残差は、ロスレス２レベルエンコーダを使用してエンコードすることができる。ロッシイモードでは、ビットマップ内のクラスタが、辞書内のクラスタの第２閾量以内である場合に、３つ組｛Ｐ、Ｘ、Ｙ｝がエンコードされるが、クラスタ化残差はエンコードされない。
【００１６】
本発明の２レベルエンコーディングシステムは、例えば従来のスキャナ（例えばＣＣＩＴＴ  Ｇ４）によって生成されるファイルよりかなり小さいファイルをもたらすことができる。したがって、２レベルエンコーディングシステムは、文書伝達および／または、例えばディジタルライブラリおよびディジタル文書データベースなどのストレージアプリケーションに対して大きい影響を有する可能性がある。
【００１７】
本発明の態様によれば、２レベルエンコーディングシステムに、クラスタ形状エスティメータ、クラスタコンポーネントからのビットマップ推定、クラスタ位置エスティメータ、第１エンコーダ、第２エンコーダ、第３エンコーダ、および第４エンコーダを含めることができる。クラスタ形状エスティメータは、ビットマップに関連する接続されたコンポーネント情報（例えば、色、水平サイズ、垂直サイズ、水平位置、および／または垂直位置）を分析する。クラスタ形状エスティメータは、クラスタを抽出し、形状のグローバル辞書、形状のページ辞書、およびクラスタ化されない形状の記録部（以下、ストアという）の少なくとも１つに記録する。
【００１８】
ロッシイモードでは、クラスタ形状エスティメータが、クラスタがグローバル辞書内のクラスタの第２閾量以内であるかどうかを決定することができる。１例では、クラスタが、第２閾量以内である場合に、そのページでのクラスタの存在が書き留められる。もう１つの例では、クラスタが、第２閾量以内である場合に、ページでのクラスタの存在が書き留められ、グローバル辞書に記録されたクラスタが、少なくとも部分的にそのクラスタに基づいて修正される。例えば、クラスタ形状エスティメータは、グローバル辞書に記録されたクラスタとそのクラスタの加重平均を実行し、修正されたクラスタがグローバル辞書に記録されることをもたらすことができる。これによって、元のビットマップと比較した時に、デコードされたビットマップでのより明瞭なテキストをもたらすことができる。もう１つの例では、第１閾値（例えば、ロスレスモードに関して使用される）と、第２閾値（例えば、ロッシイモードに関して使用される）が、ほぼ同一の値を有する。
【００１９】
形状のグローバル辞書には、グローバルクラスタが含まれる。グローバルクラスタとは、現在のビットマップ（例えばページ）に複数回現れ、かつ／または同一文書の一部として前に処理されたクラスタである。
【００２０】
形状のページ辞書には、ページレベルクラスタすなわち、現在のビットマップ（例えばページ）で１回見つかったクラスタが含まれる。例えば、クラスタ形状エスティメータが、現在のビットマップ（例えばページ）の分析を実質的に完了したならば、形状のページ辞書のうちで、現在のビットマップ（例えばページ）で１回だけ見つかったクラスタを含む部分を、送る（例えば、エンコードされたファイルに含める）ことができる。ページ辞書へのインデックス（例えばポインタ）をエンコードする必要はない。というのは、ページ辞書が、ページでのクラスタの出現および、定義によってページに１回だけ現れるページレベルクラスタによって順序付けられるからである。
【００２１】
形状のページ辞書には、前のビットマップ（例えばページ）に１回だけ現れたクラスタを記録することができ、実質的に類似するクラスタの第２の出現が後のビットマップで見つかる場合に、そのクラスタを、グローバル辞書に記録し、ページ辞書から除去することができる。クラスタ化されない形状のストアには、テキスト文字になるには小さすぎる（例えば、第３閾値より小さい）か大きすぎ（例えば、第４閾値より大きい）、したがってよくクラスタ化されない、接続されたコンポーネントが記録される。
【００２２】
クラスタコンポーネントからのビットマップ推定は、グローバル辞書に記録されたクラスタの辞書位置を決定する。クラスタコンポーネントからのビットマップ推定で、クラスタ形状エスティメータからの情報（例えばポインタ）を使用することができる。このポインタは、その後、第２エンコーダによってエンコードされる。クラスタは、ページでの位置によってソートされているので、インデックス（例えばポインタ）は、テキストストリング風の順序を形成する傾向があり、１例では、第２エンコーダで、テキストストリングに適する圧縮アルゴリズム（例えばＬＺＸエンコーディング）を使用することができる。
【００２３】
ロスレスモードでは、クラスタコンポーネントからのビットマップ推定によって、クラスタ化残差を決定することができる。クラスタコンポーネントからのビットマップ推定は、第４エンコーダに、ストアのクラスタ化されない形状と共にエンコードされる（例えばロスレス２レベルエンコーディングを使用して）情報を供給することができる。
【００２４】
クラスタ位置エスティメータは、グローバル辞書および／またはページ辞書のクラスタのページ位置を、接続されたコンポーネント情報を使用して決定する。したがって、グローバル辞書および／またはページ辞書のクラスタについて、ページでの位置が、接続されたコンポーネント情報と、グローバル辞書またはページ辞書のいずれかからの辞書エントリからのプロパティとを使用して決定される。その後、ページ位置が、第１エンコーダによってエンコードされる。
【００２５】
１例では、１行のクラスタの間の水平（ｘ方向）ギャップが、エンコードされる。というのは、クラスタが、特に単語内で一様に離隔されるからである。さらに、行について、平均水平ギャップを計算し、エンコードすることができ、ギャップ情報は、その後、平均水平ギャップおよび実際の水平ギャップの間の差に基づくようになる。
【００２６】
他の１つの例では、平均垂直（ｙ方向）値が計算される。行の平均垂直値が、エンコードされ、その後、クラスタについて、クラスタの垂直値と平均垂直値の間の差がエンコードされる。クラスタの境界ボックスの下辺を使用することができる。というのは、ローマ字の多くの文字が、上辺ではなく下辺に沿って整列されるからである。その結果、所与のクラスタと平均値の間の差が、小さくなる傾向がある。第１エンコーダは、行ごとの基準でエンコードするので、行ごとの第１水平値（ｘ方向）および平均Ｙ値をエンコードすることができる。
【００２７】
第１エンコーダは、クラスタ位置エスティメータから受け取ったページ位置をエンコードする。例えば、第１エンコーダは、ビットプレーンエンコーディングを使用することができる。第２エンコーダは、クラスタコンポーネントからのビットマップ推定から受け取る辞書位置をエンコードする（例えばＬＺＸエンコーディング）。
【００２８】
第３エンコーダは、ページ辞書および／またはグローバル辞書内のビットマップパターンをエンコードし、ロスレス２レベルビットマップエンコーディングを使用することができる。第４エンコーダは、クラスタ化されない形状のストアをエンコードし、ロスレス２レベルビットマップエンコーディングを使用することができる。
【００２９】
通常は文書を紙から電子形式に変換することを意味する、「ペーパーレスオフィス」がますます強調されてきた。変換技術を使用して変換された文書によって、ユーザが電子文書をスキャンし、記録し、かつ／または操作することが可能になるが、大きいファイルがもたらされる。例えば、多くのスキャナでは、２０ページ前後のスキャンされたページについて、１メガバイトのデータが簡単に生成される。ユーザが、例えば結果の大きいファイルが問題なる可能性がある場合に、スキャンされた文書を電子メールを介して送信することが困難になる。しかし、本発明のシステムおよび／または方法を使用するスキャナは、例えば２００ページのスキャンされたページごとに１メガバイト程度までストレージ要件を減らすことができ、その結果、例えば５０ページの法律文書が、２５０キロバイトの「．ｂｌｃ」ファイルになり、電子メールを介してすばやく送信できるようになる。
【００３０】
さらに、きれいな文書では、本発明のシステムおよび／または方法の、一般的なＧ４フォーマットに対する利得が、例えば１０倍になる可能性がある。汚れた文書では、Ｇ４に対する圧縮利得が、５倍または、非常に短い文書（単一ページ）の制限内で３倍になる可能性がある。
【００３１】
本発明のもう１つの態様は、２レベルエンコーディングシステムに、さらに、クラスタ化システムおよび／またはアクティビティ検出システムを含めることを提供する。
【００３２】
クラスタ化システムは、複数のクラスタ（例えば接続されたコンポーネント）に関連する情報を識別する。例えば、この情報には、複数のクラスタ（例えば接続されたコンポーネント）の、幅（例えばｘサイズ）、高さ（例えばｙサイズ）、色、水平位置（例えば絶対値および／または相対値）、および／または垂直位置（例えば絶対値および／または相対値）を含めることができる。
【００３３】
アクティビティ検出システムは、２レベルイメージ入力を受け取る。例えば、２レベルイメージ入力は、マスクセパレータコンポーネント（図示せず）またはスキャンされたイメージ（例えば、文書スキャナおよび／またはファクシミリ機からの）から受け取られる２進マスクとすることができる。アクティビティ検出システムは、ディザリング／ハーフトーン化および／または雑音について２レベルイメージを分析する。アクティビティ検出システムは、２レベルイメージ入力に基づくが、ディザリング／ハーフトーン化および／または雑音を減らされた、２レベルイメージ出力を供給する。
【００３４】
ディザリング／ハーフトーン化を有する文書イメージに基づく２レベルイメージは、通常は、領域内および／または領域を横切るかなりの量の接続されたコンポーネントを有する。さらに、雑音を有する２レベルイメージは、通常は、領域内および／または領域を横切る少数の接続されたコンポーネントを有する。したがって、領域内および／または領域を横切る接続されたコンポーネントの量を決定することによって、アクティビティ検出システムが、ディザリング／ハーフトーン化および／または雑音が存在する可能性が高い区域を検出することができる。
【００３５】
上で述べたディザリング検出のほかに、アクティビティ検出システムは、さらに、２レベルイメージ入力の雑音を検出するように適合させることができる。「雑音」は、それを除去することが２レベルイメージの保全性を実質的に損なわない、余分な情報（例えばマーク）を指す。２レベルイメージ入力の雑音の除去は、滑らかなイメージからもたらされる改善されたデータ圧縮につながる可能性がある。雑音を有する２レベルイメージの領域は、通常は、比較的低い接続性を示す。例えば、白の背景の上に１つの接続された漂遊（ｓｔｒａｙ）マークだけを含む領域は、１つの接続されたコンポーネントを有する。
【００３６】
本発明の他の１つの態様は、２レベルエンコーディングシステム、ロスレス２レベルエンコーダ、および選択コンポーネントを有する選択可能２レベルエンコーディングシステムを提供する。
【００３７】
このロスレス２レベルエンコーダでは、ロスレス２レベルエンコーディング技法を使用することができる。選択コンポーネントを用いると、ロスレス２レベルエンコーダを使用するロスレス２レベルエンコーディングと、２レベルエンコーディングシステム（例えばクラスタを使用する（ロスレスまたはロッシイ））の間の選択が可能になる。選択は、例えば、ユーザプリファレンスに基づく、および／または２レベルエンコーディングシステム内のクラスタ化システムによるものとすることができる。
【００３８】
本発明の他の１つの態様は、第１デコーダ、第２デコーダ、第３デコーダ、第４デコーダ、クラスタジェネレータ、およびコンバイナを有する２レベルデコーディングシステムを提供する。
【００３９】
第１デコーダは、ビットストリーム入力の少なくとも一部（例えば、対応するエンコーダによって作られた部分）をデコードし、クラスタのページ位置を提供する。第２デコーダは、ビットストリーム入力の少なくとも一部（例えば、対応するエンコーダによって作られた部分）をデコードし、デコードされた辞書位置を提供する。第３デコーダは、ビットストリーム入力の少なくとも一部（例えば、対応するエンコーダによって作られた部分）をデコードし、デコードされた形状のグローバル辞書および／またはデコードされた形状のページ辞書を提供する。第４デコーダは、ビットストリーム入力の少なくとも一部（例えば、対応するエンコーダによって作られた部分）をデコードし、クラスタ化されない形状のストアを提供する。
【００４０】
クラスタジェネレータは、ページ位置と、辞書位置と、グローバル辞書およびページ辞書の少なくとも１つとに少なくとも部分的に基づいて、クラスタを生成する。コンバイナは、クラスタジェネレータによって生成されたクラスタおよび／またはクラスタ化されない形状のストアに少なくとも部分的に基づいて、２レベル出力を提供する。
【００４１】
本発明の他の態様は、タブレットパーソナルコンピュータ、セグメント化された階層イメージシステム、写真複写機、文書スキャナ、光学文字認識システム、携帯情報端末、ファクシミリ機、ディジタルカメラ、ディジタルビデオカメラ、および／またはビデオゲームを含むがこれに制限されない、多数の文書イメージアプリケーションに使用される２レベルエンコーディングシステムを提供する。
【００４２】
本発明の他の態様は、２レベルエンコーディング、クラスタ分析、および２レベルデコーディングを実行する方法を提供する。さらに、２レベルエンコーディングのシステムのコンピュータ使用可能命令を有するコンピュータ可読媒体と、２レベルデコーディングのシステムのコンピュータ使用可能命令を有するコンピュータ可読媒体を提供する。また、エンコードされたページ位置を含む第１データフィールドと、エンコードされた辞書位置を含む第２データフィールドと、エンコードされたグローバル辞書およびエンコードされたページ辞書の少なくとも１つを含む第３データフィールドと、エンコードされたクラスタ化されない形状のストアを含む第４データフィールドとを含む、２レベルエンコーディングを容易にする、複数のコンピュータコンポーネントの間で送信されように適合されたデータパケットを提供する。
【００４３】
前述および関連する目的の達成のために、本発明のいくつかの例示的態様を、以下の説明および添付図面に関して本明細書で説明する。しかし、これらの態様は、本発明の原理を使用することができるさまざまな形のごく一部を示すものであり、本発明は、そのようなすべての態様および同等物を含むことが意図されている。本発明の他の長所および新規の特徴は、図面と共に検討される時に、本発明の下記の詳細な説明から明白になる。
【００４４】
【発明の実施の形態】
本発明を、図面に関して説明するが、図面では、同様の符号が、全体を通じて同様の要素を参照するのに使用される。以下の記述では、説明のために、本発明の完全な理解を提供するために、多数の具体的な詳細を示す。しかし、これらの具体的な詳細なしで本発明を実践できることは明白であろう。他の場合には、本発明の説明を容易にするために、周知の構造および装置を、ブロック図形式で示す。
【００４５】
本明細書において、用語「コンピュータコンポーネント」は、ハードウェア、ハードウェアおよびソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれであれ、コンピュータ関連のエンティティを指すことが意図されている。例えば、コンピュータコンポーネントは、プロセッサ上で実行中のプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行のスレッド、プログラム、および／またはコンピュータとすることができるが、これらに制限はされない。例えば、サーバ上で実行中のアプリケーションとサーバの両方を、コンピュータコンポーネントとすることができる。１つまたは複数のコンピュータコンポーネントが、実行のプロセスおよび／またはスレッド内に常駐することができ、コンポーネントを、１つのコンピュータに局所化することおよび／または複数のコンピュータの間で分散することができる。
【００４６】
図１を参照すると、本発明による２レベルエンコーディングシステム１００が示されている。２レベルエンコーディングシステム１００には、クラスタ形状エスティメータ１１０、クラスタコンポーネントからのビットマップ推定１２０、クラスタ位置エスティメータ１３０、第１エンコーダ１４０、第２エンコーダ１５０、第３エンコーダ１６０、および第４エンコーダ１７０が含まれる。
【００４７】
２レベルエンコーディングシステム１００では、ビットマップが、かなりの量のテキストを含む可能性が高いスキャンされた文書に対応するという先の仮定を行うことによって現在の２レベルエンコーディング技術が拡張される。スキャンされた文書は、黒画素のクラスタに対応する文字のビットマップパターンを含むことができる。議論のために、文書の背景が、実質的に白であり、テキストが、実質的に黒であると仮定する。しかし、本発明に関連する使用のためのすべての適切な２レベルカラー表現が、請求の範囲に含まれることが意図されている。
【００４８】
２レベルエンコーディングシステム１００は、ビットマップをスキャンする（例えば、左から右へ、上から下へ）。インクのクラスタが初めて見つかった時に、そのクラスタをクラスタの辞書に追加する。その後、そのクラスタの画素をエンコードする代わりに、辞書へのポインタＰおよびクラスタがページに現れる場所の｛Ｘ、Ｙ｝位置座標をエンコードする。同一のクラスタまたは十分に近いクラスタがビットマップ内で次に見つかった時に、やはり、画素ではなく｛Ｐ、Ｘ、Ｙ｝座標をエンコードする。クラスタに十分な画素が含まれる場合に、ロスレスＢＬＣを用いて画素をエンコードするよりも、｛Ｐ、Ｘ、Ｙ｝座標をエンコードすることが効率的である。圧縮利得は、複数ページ文書についてより高くなる。というのは、クラスタ辞書を、すべてのページの間で共有することができ、したがって、辞書自体をエンコードするオーバーヘッドが、無視可能になるからである。
【００４９】
この２レベルコーディングシステム１００は、ロスレスモードまたはロッシイモードで動作することができる。ロスレスモードでは、ビットマップ内のクラスタが、辞書内のクラスタの第１閾量以内である場合に、｛Ｐ、Ｘ、Ｙ｝データならびに「クラスタ化残差」すなわち実際のクラスタと辞書内のクラスタの間の小さい差が、送られる。クラスタ化残差は、ロスレス２レベルエンコーダを使用してエンコードすることができる。ロッシイモードでは、ビットマップ内のクラスタが、辞書内のクラスタの第２閾量以内である場合に、３つ組｛Ｐ、Ｘ、Ｙ｝がエンコードされるが、クラスタ化残差はエンコードされない。
【００５０】
本発明の２レベルエンコーディングシステム１００は、例えば従来のスキャナ（例えばＣＣＩＴＴ  Ｇ４）によって生成されるファイルよりかなり小さいファイルをもたらすことができる。したがって、２レベルエンコーディングシステム１００は、文書伝達および／または、例えばディジタルライブラリおよびディジタル文書データベースなどのストレージアプリケーションに対して大きい影響を有する可能性がある。
【００５１】
クラスタ形状エスティメータ１１０は、ビットマップに関連する接続されたコンポーネント情報を分析する。例えば、接続されたコンポーネント情報に、接続されたコンポーネントの色、水平サイズ、垂直サイズ、水平位置、および／または垂直位置を含めることができる。クラスタ形状エスティメータ１１０は、クラスタを抽出し、形状のグローバル辞書１７２、形状のページ辞書１７４、およびクラスタ化されない形状のストア１７６の少なくとも１つに記録する。
【００５２】
一時的に図２を参照すると、４接続性プロパティを示す図２００が示されている。４接続性プロパティでは、４つの主羅針方位で接続される画素だけが識別される。図２には、４つの主羅針方位の４画素によって囲まれた画素を示すことによって、４接続性プロパティが示されている。次に図３に移ると、８接続性プロパティを示す図３００が示されている。図３には、８つの主方向で８つの画素によって囲まれる画素を示すことによって、８接続性プロパティが示されている。接続されたコンポーネントに、テキストならびに非テキストマークを含めることができる。本発明のシステムおよび方法で、すべての適当な度合の接続性を有するコンポーネントを使用することができ、本発明のシステムおよび方法は、４接続性または８接続性の接続されたコンポーネントに限定されるものではない。
【００５３】
一時的に図４を参照すると、本発明の態様による例示的な接続されたコンポーネントの境界ボックス４００が示されている。境界ボックス４００には、一般に、ｘサイズ（幅）およびｙサイズ（高さ）を有する、接続されたコンポーネントを含む長方形が含まれる。
【００５４】
図１に戻って、ロッシイモードでは、クラスタ形状エスティメータ１１０が、クラスタ形状がグローバル辞書１７２内のクラスタの第２閾量以内であるかどうかを決定することができる。例示的実施形態では、形状の近さが、候補形状を辞書形状と位置合せし、その後、候補形状の画素のうちで、値（白または黒）が辞書形状の画素と異なる画素の分数をカウントすることによって決定される。１例では、クラスタが、第２閾量以内である場合に、そのページでのクラスタの存在が書き留められる。他の例では、クラスタが、第２閾量以内である場合に、ページでのクラスタの存在が書き留められ、グローバル辞書１７２に記録されたクラスタが、少なくとも部分的にそのクラスタに基づいて修正される。例えば、クラスタ形状エスティメータ１１０は、グローバル辞書１７２に記録されたクラスタとそのクラスタの加重平均を実行し、修正されたクラスタがグローバル辞書１７２に記録されることをもたらすことができる。これによって、元のビットマップと比較した時に、デコードされたビットマップでのより明瞭なテキストをもたらすことができる。
【００５５】
形状のグローバル辞書１７２には、グローバルクラスタが含まれる。グローバルクラスタとは、現在のビットマップ（例えばページ）に複数回現れ、かつ／または同一文書の一部として前に処理されたクラスタである。一時的に図５を参照すると、本発明の態様による例示的なグローバル辞書データ構造５００が示されている。グローバル辞書データ構造５００は、データ構造５００内のインデックスが記録される第１フィールド５１０、幅（例えばｘサイズ）が記録される第２フィールド５２０、高さ（例えばｙサイズ）が記録される第３フィールド５３０、およびグローバルクラスタのビットマップが記録される第４フィールド５４０を有する。例えば、ｘサイズを、接続されたコンポーネントの最大の幅とすることができ、ｙサイズを、接続されたコンポーネントの最大の高さとすることができる。データ構造５００に、複数のグローバルクラスタエントリ５５０を含めることができる。
【００５６】
データ構造５００は、単に例示であり、本発明に関して２レベルエンコーディングを容易にするのを助ける複数のデータ型の編成および／または記録を提供する複数の他の構造が企図される。本発明に関する使用に適するそのようなデータ構造のすべてが、請求の範囲に含まれることが意図されている。そのようなデータ構造は、メモリ、ディスク、および搬送波を含むがこれに制限されない、コンピュータ可読媒体に記録することができる。
【００５７】
図１に戻り、形状のページ辞書１７４は、ページレベルクラスタすなわち、現在のビットマップ（例えばページ）で１回見つかったクラスタを備えている。例えば、クラスタ形状エスティメータ１１０が、現在のビットマップ（例えばページ）の分析を実質的に完了したならば、形状のページ辞書１７４のうちで、現在のビットマップ（例えばページ）で１回だけ見つかったクラスタを含む部分を、送る（例えば、エンコードされたファイルに含める）ことができる。ページ辞書１７４へのインデックス（例えばポインタ）をエンコードする必要はない。というのは、ページ辞書１７４が、ページでのクラスタの出現および、定義によってページに１回だけ現れるページレベルクラスタによって順序付けられるからである。
【００５８】
１例では、各ページが、ページが処理された後にエンコードされるそれ自体のページ辞書１７４を有する。したがって、前のページ辞書１７４内のエントリは、絶対に除去されない。ページが処理されたならば、そのページ辞書１７４が、エンコードされ、絶対に修正できない。
【００５９】
形状のページ辞書１７４には、前のビットマップ（例えばページ）に１回だけ現れたクラスタを記録することができ、実質的に類似するクラスタの第２の出現が後のビットマップで見つかる場合に、そのクラスタを、グローバル辞書１７２に記録し、ページ辞書１７４から除去することができる。クラスタ化されない形状のストア１７６には、テキスト文字になるには小さすぎる（例えば、第３閾値より小さい）か大きすぎ（例えば、第４閾値より大きい）、したがってよくクラスタ化されない、接続されたコンポーネントが記録される。
【００６０】
したがって、クラスタ形状エスティメータ１１０は、クラスタを抽出し、そのクラスタを形状のグローバル辞書１７２、形状のページ辞書１７４、およびクラスタ化されない形状のストア１７６の少なくとも１つに記録する。クラスタ形状エスティメータ１１０は、クラスタコンポーネントからのビットマップ推定１２０に情報（例えば、形状のグローバル辞書１７２へのポインタ）を供給することができる。
【００６１】
クラスタコンポーネントからのビットマップ推定１２０は、グローバル辞書に記録されたクラスタの辞書ポインタを決定する。クラスタコンポーネントからのビットマップ推定１２０は、クラスタ辞書情報のほかに、クラスタ形状エスティメータ１１０からの情報（例えばポインタ）を使用することができる。このポインタは、その後、第２エンコーダ１５０によってエンコードされる。クラスタは、テキストの文字を取り込む傾向があるので、インデックス（例えばポインタ）は、文書内のテキストストリングに緊密にマッピングされるストリング風の順序を形成する傾向がある。したがって、１例では、第２エンコーダ１５０は、テキストストリングに適する圧縮アルゴリズムを使用することができる。例えば、第２エンコーダ１５０は、ＬＺＸエンコーディングを使用することができる。
【００６２】
ロスレスモードでは、クラスタコンポーネントからのビットマップ推定１２０は、クラスタ化残差を決定することができる。クラスタコンポーネントからのビットマップ推定１２０は、第４エンコーダ１７０に、クラスタ化されない形状のストア１７６と共にエンコードされる（例えばロスレス２レベルエンコーディングを使用して）情報を供給することができる。クラスタ位置エスティメータ１３０は、グローバル辞書１７２および／またはページ辞書１７４のクラスタのページ位置を、接続されたコンポーネント情報を使用して決定する。したがって、グローバル辞書１７２および／またはページ辞書１７４のクラスタは、ページでの位置が、接続されたコンポーネント情報と、グローバル辞書１７２またはページ辞書１７４のいずれかからの辞書エントリからのプロパティとを使用して決定される。その後、ページ位置が、第１エンコーダ１４０によってエンコードされる。クラスタは、ページでの位置によってソートされているので、ページ位置は、単調に増加する傾向がある。したがって、例示的な実施形態では、第１エンコーダ１４０が、位置の差分｛例えば、Ｘｃｕｒｒｅｎｔ−ＸｐｒｅｖｉｏｕｓおよびＹｃｕｒｒｅｎｔ−Ｙｐｒｅｖｉｏｕｓ｝を計算し、小さい値をとる可能性が高い整数に適するエントロピエンコーダ（例えば、「Lossless Adaptive Encoding of Finite Alphabet Data」という名称の特許文献２参照）を用いて、そのような差分をエンコードすることによって、位置をエンコードする。
【００６３】
１例では、１行のクラスタの間の水平（ｘ方向）ギャップは、クラスタが特に単語内で一様に離隔されるので、エンコードされる。さらに、行について、平均水平ギャップを計算し、エンコードすることができ、ギャップ情報は、その後、平均水平ギャップと実際の水平ギャップの間の差に基づくようになる。
【００６４】
他の例では、平均垂直（ｙ方向）値が計算される。行の平均垂直値が、エンコードされ、その後、クラスタについて、クラスタの垂直値と平均垂直値の間の差がエンコードされる。ローマ字の多くの文字として使用することができるクラスタの境界ボックスの下辺は、上辺ではなく下辺に沿って整列される。その結果、所与のクラスタと平均値の間の差が、小さくなる傾向がある。第１エンコーダ１４０は、行ごとの基準でエンコードするので、行ごとの第１水平値（ｘ方向）および平均Ｙ値をエンコードすることができる。
【００６５】
第１エンコーダ１４０は、クラスタ位置エスティメータ１３０から受け取ったページ位置をエンコードする。例えば、第１エンコーダ１４０は、ビットプレーンエンコーディングを使用することができる。第２エンコーダ１５０は、クラスタコンポーネントからのビットマップ推定１２０から受け取る辞書位置をエンコードする（例えばＬＺＸエンコーディング）。
【００６６】
第３エンコーダ１６０は、ページ辞書および／またはグローバル辞書内のビットマップパターンをエンコードし、ロスレス２レベルビットマップエンコーディングを使用することができる。第４エンコーダ１７０は、クラスタ化されない形状のストアをエンコードし、ロスレス２レベルビットマップエンコーディングを使用することができる。
【００６７】
図１は、２レベルエンコーディングシステム１００のコンポーネントを示すブロック図であるが、クラスタ形状エスティメータ１１０、クラスタ位置エスティメータ１３０、クラスタコンポーネントからのビットマップ推定１２０、第１エンコーダ１４０、第２エンコーダ１５０、第３エンコーダ１６０、および／または第４エンコーダ１７０を、１つまたは複数のコンピュータコンポーネントとして（本明細書でのこの用語の定義に従って）実施できる。したがって、２レベルエンコーディングシステム１００、クラスタ形状エスティメータ１１０、クラスタ位置エスティメータ１３０、クラスタコンポーネントからのビットマップ推定１２０、第１エンコーダ１４０、第２エンコーダ１５０、第３エンコーダ１６０、および／または第４エンコーダ１７０を実施するように動作可能なコンピュータ実行可能コンポーネントを、本発明に従って、ＡＳＩＣ（特定用途向け集積回路）、ＣＤ（コンパクトディスク）、ＤＶＤ（ディジタル多用途ディスク）、ＲＯＭ（読取専用メモリ）、フロッピディスク、ハードディスク、ＥＥＰＲＯＭ（電気的消去可能ＰＲＯＭ）、およびメモリスティックを含むがこれに制限されないコンピュータ可読媒体に記録できる。
【００６８】
次に図６に移ると、本発明の態様による２レベルエンコーディングシステム６００が示されている。２レベルエンコーディングシステム６００には、クラスタ形状エスティメータ１１０、クラスタコンポーネントからのビットマップ推定１２０、クラスタ位置エスティメータ１３０、第１エンコーダ１４０、第２エンコーダ１５０、第３エンコーダ１６０、および第４エンコーダ１７０が含まれる。２レベルエンコーディングシステム６００には、さらに、クラスタ化システム６１０および／またはアクティビティ検出システム６２０が含まれる。
【００６９】
クラスタ化システム６１０は、複数のクラスタ（例えば接続されたコンポーネント）に関連する情報を識別する。例えば、この情報には、複数のクラスタ（例えば接続されたコンポーネント）の、幅（例えばｘサイズ）、高さ（例えばｙサイズ）、色、水平位置（例えば絶対値および／または相対値）、および／または垂直位置（例えば絶対値および／または相対値）を含めることができる。
【００７０】
アクティビティ検出システム６２０は、２レベルイメージ入力を受け取る。例えば、２レベルイメージ入力は、マスクセパレータコンポーネント（図示せず）またはスキャンされたイメージ（例えば、文書スキャナおよび／またはファクシミリ機からの）から受け取られる２進マスクとすることができる。アクティビティ検出システム６２０は、ディザリング／ハーフトーン化および／または雑音について２レベルイメージを分析する。アクティビティ検出システム６２０は、２レベルイメージ入力に基づくが、ディザリング／ハーフトーン化および／または雑音を減らされた、２レベルイメージ出力を供給する。
【００７１】
ディザリング／ハーフトーン化を有する文書イメージに基づく２レベルイメージは、通常は、領域内および／または領域を横切るかなりの量の接続されたコンポーネントを有する。さらに、雑音を有する２レベルイメージは、通常は、領域内および／または領域を横切る少数の接続されたコンポーネントを有する。したがって、領域内および／または領域を横切る接続されたコンポーネントの量を決定することによって、アクティビティ検出システム６２０が、ディザリング／ハーフトーン化および／または雑音が存在する可能性が高い区域を検出することができる。
【００７２】
上で述べたディザリング検出のほかに、アクティビティ検出システム６２０は、さらに、２レベルイメージ入力の雑音を検出するように適合させることができる。「雑音」は、それを除去することが２レベルイメージの保全性を実質的に損なわない、余分な情報（例えばマーク）を指す。２レベルイメージ入力の雑音の除去は、滑らかなイメージからもたらされる改善されたデータ圧縮につながる可能性がある。雑音を有する２レベルイメージの領域は、通常は、比較的低い接続性を示す。例えば、白の背景の上に１つの接続された漂遊マークだけを含む領域は、１つの接続されたコンポーネントを有する。
【００７３】
クラスタ化システム６１０および／またはアクティビティ検出システム６２０を、１つまたは複数のコンピュータコンポーネントとして（本明細書でのこの用語の定義に従って）実施できる。
【００７４】
次に図７を参照すると、本発明の態様による選択可能２レベルエンコーディングシステム７００が示されている。選択可能２レベルエンコーディングシステム７００には、２レベルエンコーディングシステム６００、ロスレス２レベルエンコーダ７１０、および選択コンポーネント７２０が含まれる。
【００７５】
ロスレス２レベルエンコーダ７１０では、ロスレス２レベルエンコーディング技法を使用することができる。例えば、ロスレス２レベルエンコーダ７１０で、算術符号化を使用するのではなく、ＪＢＩＧ、ＪＢＩＧ−２、およびＪＢ２などの最新技術のコーダに近い性能を有するエンコーディング処理（ＢＬＣ）を使用することができる。一般に、２レベルコーダ（ＢＬＣ）では、２つのコンテキストベース適応ジュールすなわち、１）元の画素を予測誤差画素に明示的にマッピングするのに使用される、低解像度確率推定によって制御される適応プレディクタ、および２）予測誤差画素をエンコードする逆方向適応Ｒｕｎ−Ｌｅｎｇｔｈ−Ｒｉｃｅ（ＲＬＲ）コーダが使用される。これは、コンテキスト依存の確率推定値によって画素予測と適応エントロピコーディングの両方が制御される普通の手法と対照的である。その単純さに起因して、多くの応用例で、ＢＬＣは、他の現在のコーダよりもよい選択肢になる。
【００７６】
２レベルイメージ圧縮エンコーディングは、画素予測および予測誤差生成手順から開始される。画素予測は、一般に、周囲の画素に基づく画素の値（例えば０または１のいずれか）の予測を必要とする。具体的に言うと、画素予測は、コンテキスト依存確率推定値を計算することによって達成される。コンテキストは、本質的に、テンプレートと称するパターンを形成する、前にエンコードされた画素の近傍である。標準的なテンプレートのどれであっても、本発明の目的に採用することができる。コンテキストは、ラスタ順の指定された数の画素値のベクタリストとみなすことができる。これらの値が、コンテキストを一意に識別する２進ワードを形成する。この２進ワードを、コンテキストインデックスと称する。
【００７７】
コンテキスト依存確率推定値は、まず画素確率テーブルを作成し、初期化することによって計算される。これは、可能なコンテキストインデックスのそれぞれに初期確率を割り当てることによって達成される。初期確率は、０．５であることが好ましい（すなわち、コンテキストインデックスに関連する画素が白である確率と黒である確率が等しい）。しかし、確率値は、エンコーダとデコーダの間での丸め問題を避けるためにスケーリングされる。スケーリングは、画素が白である１００％の確率を表す整数を選択することによって行われることが好ましい。例えば、本発明のテストされた実施形態では、数「８」が使用された。したがって、前述の初期値を表すスケーリングされた確率は、「４」になる。
【００７８】
ラスタ順の画素ごとに、前にエンコードされた画素のパターンに関連するコンテキストインデックスが、識別され、スケーリングされた確率が、テーブルから読み取られる。確率が０．５以上である（すなわち、上で示した例では４以上のスケーリングされた確率）場合には、検討中の画素が、白と予測され、適当な２進値（例えば、おそらくは「０」画素値）を割り当てられる。各コンテキストインデックスに初めて出会う時には、当初に４のスケーリングされた確率がテーブル内の各コンテキストインデックスに割り当てられるので、予測が必ず白画素になることに留意されたい。スケーリングされた予測値は、予測された画素が白画素と思われる場合には、指定された量（例えば１）だけ増分することによって、あるいは、画素が黒と予測される場合には、指定された量（例えば１）だけ減分することによって、調整される。スケーリングされた確率調整動作の結果は、０付近に含まれる場合に０値、最大のスケーリングされた確率値−１の近くに含まれる場合にその値に切り詰められる。したがって、確率は、エンコードされるイメージと、どの画素位置が予測されているかに応じて変化する。これを、逆方向適応画素予測と称する。というのは、デコーダが、明示的なコンテキスト確率情報がデコーダに送られることを必要とせずに、確率推定値に対して同一の調整を実行することができるからである。
【００７９】
次に、予測誤差を計算する。本質的に、予測御差は、２レベルイメージ内の各画素の白または黒のいずれかの予測された画素値を実際の画素と比較することによって計算される。その後、正しくない予測に関するデータだけを送る必要がある。ほとんどの婆に、予測は正しく、したがって、データの量のかなりの節約を実現することができる。これが機能するのは、前に説明したように、デコーダが、同一の予測処理を実行し、誤差を含む同一の結果を得るからである。したがって、すべてのデコーダが、場合に応じて白から黒へまたは黒から白へ画素値を変更してイメージを再構成するために、予測された画素値のどれが誤っているかを知る必要がある。予測御差は、具体的には、イメージ内の各画素の値が排他的論理和論理を使用して予測された値と比較される２進技法を使用して計算される。したがって、実際の画素値が予測された値と一致する（例えば、両方が０であるか両方が１である）場合に、いわゆる予測誤差イメージの一部としてのその画素位置に「０」が割り当てられる。しかし、実際の画素値が予測された値と異なる場合には、予測誤差イメージ内の関連する画素位置に「１」が割り当てられる。
【００８０】
２レベルイメージエンコーディングの次の段階には、コンテキスト依存の逆方向適応Ｒｕｎ−Ｌｅｎｇｔｈ−Ｒｉｃｅ（ＲＬＲ）コーディング手順が含まれる。予測された値が、通常は実際の値と一致することがわかっているので、予測誤差イメージは、ほとんど０からなる。これによって、予測誤差イメージが、さらなる圧縮に特に従うようになり、したがって、さらに少ない情報を送ることが可能になる。予測誤差イメージをエンコードするために、ＲＬＲコーディング技法を使用することが好ましい。一般に、ＲＬＲコーダは、２ｋ個の０の連続したランが、単一の「０」によって形成されるコードワードによって表現され、ｒ個のゼロ（ｒ＜２ｋ）とその後の１つの１の部分ランが、１とそれに続くｒのｋビット２進ワード表現によって形成されるコードワードによって表現される、変数−可変長エントロピコーダである。変数ｋによって、コードワードが送られる前に予測誤差イメージに現れることができる０の最大ランレングスが定義される。この変数を調節することによって、コーディング動作の効率が制御される。好ましい技法は、ｋの調整に逆方向適応手法を使用することである。この手法では、ｋの初期値を選択することと、その後、「０」コードワードが生成されるか「１＋ｋビット２進ワード」コードが生成されるかに基づく増分だけｋを上下に調整することが用いられる。本発明によるＲＬＲエンコーディング技法は、前に説明したコンテキストにも依存する。具体的に言うと、ｋ変数を各コンテキストインデックスに割り当てるエンコーディングテーブルが、確立される。このエンコーディングテーブルは、次に説明するように、２レベルイメージのエンコーディング中に発生する可能性があるｋの値に対する変更を反映するように更新される。
【００８１】
前述のコンテキスト依存逆方向適応ＲＬＲエンコーディング技法では、各コンテキストインデックスに関連するｋ値を、指定された初期値にセットする（例えばｋ＝２）ことによって、前述のエンコーディングテーブルをまず初期化することが用いられる。さらに、Ｒｉｃｅパラメータｋ’として指定されるｋ変数のスケーリングされたバージョンが、各コンテキストに割り当てられる。例えば、単純なスケーリング係数に現在のｋ値をかけて、現在のｋ’値を作ることができ、このｋ’値はｋ値より大きくなる。
【００８２】
予測誤差値が、画素位置について確立される時に、本発明のＲＬＲコーダは、前に説明した予測誤差決定処理で決定される、その画素位置に関連するコンテキストインデックスを識別する。そのコンテキストインデックスに現在割り当てられているｋ値が、エンコーディングテーブルから読み取られる。検討中の画素位置が、イメージのラスタ順で最初の画素（すなわち、左上角の画素）である場合には、テーブルから読み取られた関連するｋ値を使用して、ランレングスを計算し、このランレングスは、２ｋに等しいことが好ましい。このランレングスは、「０」コードワードを生成するために存在しなければならないラスタ順で連続する白画素の数を表す。次の予測誤差値を計算する時に、それが「１」または「０」のどちらであるかが決定される。「０」である場合には、この値が、検討中の前に計算されたランレングスの「中」であるか、このランレングスの終りを表すかを決定する。ランの終りを表さない場合には、コードワードは生成されない。しかし、予測誤差値がランの終りを表す場合には、「０」コードワードを送る。もちろん、予測誤差値が現在のランレングスの終りを表すかどうかを知るために、本発明のＲＬＲコーダは、何個の「０」に出会ったかを記憶しなければならない。これは、エンコーディングテーブルにランカウンタも含めることによって行われることが好ましい。具体的に言うと、別々のランカウンタが、コンテキストインデックスのそれぞれに割り当てられる。
【００８３】
１実施形態では、ランカウンタに、当初は計算されたランレングス値がセットされる。その後、連なりの先頭を含めて、上で述べたように「０」に出会うたびに、カウンタを１つ減分する。カウンタが０に達した時に、現在処理中の予測誤差値が、現在のランレングスの終りと考えられる。その一方で、ラン中のいつでも、「１」の予測誤差値に出会う場合に、本発明のＲＬＲコーダは、「１＋ｋビット２進ワード」コードを生成し、このｋビット２進ワードは、「１」に出会う前に現在のランで出会った「０」の数を表す。出会った「０」の数は、ランが始まる画素位置に関連するコンテキストインデックスに割り当てられた前述のランカウンタを使用して、簡単に決定することができる。「０」であれ「１＋ｋビット２進ワード」であれ、コードワードが生成されたならば、生成される次の予測誤差値が、もう１つのランの開始に使用される。これは、予測誤差値の画素位置に関連するコンテキストインデックスを識別し、前述の処理を繰り返すことによって、最初の画素位置について行われたように達成することができる。
【００８４】
さらに、実質的にコードワードが生成されるたびに、そのコードワードをもたらしたランに関連するｋ値が、調整される。これは、下記のように達成されることが好ましい。生成されるコードワードが「０」である場合に、パラメータｋ’を、指定された量だけ増分する。逆に、コードワードが「０」でない場合には、パラメータｋ’を、指定された量だけ減分する。この指定された量は、望まれる場合に、現在のｋ’の値に応じて変更することができる。新しいｋの値は、前述のスケーリング係数によって新しいｋ’値を割ることによって計算される。その後、ｋ’の新しい値を、前の値の代わりにエンコーディングテーブルに記録する。整数ステップだけｋ’の値を調整することによって、最適エンコーディング性能に必要なＲＬＲパラメータｋの微細な調整を達成することができると同時に、ｋ調整ステップをデコーダが正確に追跡できるようにするのに必要な整数算術だけが保たれる。
【００８５】
選択コンポーネント７２０を用いると、ロスレス２レベルエンコーダ７１０を使用するロスレス２レベルエンコーディングと、２レベルエンコーディングシステム（例えばクラスタを使用する（ロスレスまたはロッシイ））の間での選択が可能になる。選択は、例えば、ユーザプリファレンスに基づく、および／または２レベルエンコーディングシステム６００内のクラスタ化システム６１０によるものとすることができる。１例では、クラスタ化システム６１０が、ロスレス２レベルエンコーディングを用いて進行することがより効率的であることを決定しし、ロスレス２レベルエンコーダ７１０の選択を容易にする選択コンポーネント７２０に出力を供給する。
【００８６】
例えば、手書きのメモまたは他のグラフィックスに関して、クラスタ化システム６１０は、クラスタ化がロスレス２レベルエンコーディングより非効率的である（例えば、多数の繰り返されるクラスタがないので）と決定することができる。したがって、選択コンポーネント７２０によって、ロスレス２レベルエンコーダ７１０の利用を可能にすることができる。
【００８７】
ロスレス２レベルエンコーダ７１０および／または選択コンポーネント７２０を、１つまたは複数のコンピュータコンポーネントとして（本明細書でのこの用語の定義に従って）実施できることを諒解されたい。
【００８８】
図８に移ると、本発明の態様による２レベルデコーディングシステム８００が示されている。２レベルデコーディングシステム８００には、第１デコーダ８１０、第２デコーダ８２０、第３デコーダ８３０、第４デコーダ８４０、クラスタジェネレータ８５０、およびコンバイナ８６０が含まれる。
【００８９】
第１デコーダ８１０は、ビットストリーム入力の少なくとも一部（例えば、対応するエンコーダによって作られた部分）をデコードし、クラスタのページ位置８６４を供給する。１例では、第１デコーダ８１０が、ビットプレーンデコーディングを使用する。
【００９０】
第２デコーダ８２０は、ビットストリーム入力の少なくとも一部（例えば、対応するエンコーダによって作られた部分）をデコードし、デコードされた辞書位置８６８を供給する。例えば、第２デコーダ８２０は、ＬＺＸデコーディングを使用することができる。
【００９１】
第３デコーダ８３０は、ビットストリーム入力の少なくとも一部（例えば、対応するエンコーダによって作られた部分）をデコードし、デコードされた形状のグローバル辞書８７２および／またはデコードされた形状のページ辞書８７６を供給する。例えば、第３デコーダ８３０は、ロスレス２レベルデコーディングを使用することができる。
【００９２】
第４デコーダ８４０は、ビットストリーム入力の少なくとも一部（例えば、対応するエンコーダによって作られた部分）をデコードし、クラスタ化されない形状のストア８８０を供給する。例えば、第４デコーダ８４０は、ロスレス２レベルデコーディングを使用することができる。
【００９３】
クラスタジェネレータ８５０は、少なくとも部分的に、ページ位置と、辞書位置と、グローバル辞書およびページ辞書の少なくとも１つとに基づいて、クラスタを生成する。
【００９４】
コンバイナ８６０は、少なくとも部分的に、クラスタジェネレータ８５０によって生成されるクラスタおよび／またはクラスタ化されない形状のストア８８０に基づいて、２レベル出力を供給する。
【００９５】
上述した例示的システムに鑑みて、本発明に従って実施する方法は、図９、１０、１１、１２、１３、および１４の流れ図に関してよりよく理解される。説明を単純にするために、この方法を、ブロックの形で図示し、説明するが、いくつかのブロックを、本発明に従って、図示され本明細書で説明されるものと異なる順序および／または他のブロックと同時に行うことができるので、本発明が、ブロックの順序によって制限されないことを理解し、諒解されたい。さらに、示されるすべてのブロックが、本発明による方法の実施に必要とは限らない。
【００９６】
本発明を、１つまたは複数のコンポーネントによって実行可能な、プログラムモジュールなどのコンピュータ実行可能命令の全般的な文脈で説明することができる。一般に、プログラムモジュールには、特定のタスクを実行するか特定の抽象データ型を実施するルーチン、プログラム、オブジェクト、データ構造などが含まれる。通常、プログラムモジュールの機能性は、さまざまな実施形態で望みどおりに組み合わせるか分散させることができる。
【００９７】
図９に移ると、本発明の態様に従って２レベルエンコーディングを実行する方法９００が示されている。９１０で、クラスタ分析を実行する。例えば、ビットマップに関連する接続されたコンポーネント情報を分析することができる（例えばクラスタ形状エスティメータ１１０によって）。接続されたコンポーネント情報には、接続されたコンポーネントの色、水平サイズ、垂直サイズ、水平位置、および／または垂直位置を含めることができる。９１４で、クラスタを抽出する。例えば、抽出されたクラスタを、グローバル辞書、ページ辞書、およびクラスタ化されない形状のストアに記録することができる。
【００９８】
次に、９２０で、クラスタ化されない形状をエンコードする。例えば、クラスタ化されない形状に、テキスト文字になるには小さすぎる（例えば、第３閾値より小さい）か大きすぎ（例えば、第４閾値より大きい）、したがってよくクラスタ化されない、接続されたコンポーネントを含めることができる。クラスタ化されない形状は、ロスレス２レベルエンコーディングを使用してエンコードすることができる。
【００９９】
９３０で、グローバル辞書へのポインタを識別する。ポインタは、少なくとも部分的に、クラスタ分析および／または接続されたコンポーネント情報に基づいて識別することができる。９４０で、ポインタをエンコードする。１例では、クラスタがページでの位置によってソートされるているので、インデックス（例えばポインタ）が、テキストストリング風の順序を形成する傾向があり、エンコーディングは、テキストストリングに適する圧縮アルゴリズム（例えばＬＺＸエンコーディング）を使用して実行される。
【０１００】
９５０で、ページ位置を識別する。ページ位置は、グローバル辞書および／またはページ辞書内のクラスタに関するものであり、接続されたコンポーネント情報を使用して識別することができる。したがって、グローバル辞書および／またはローカル辞書内のクラスタについて、ページでの位置は、接続されたコンポーネント情報と、グローバル辞書またはページ諸のいずれかからの辞書エントリからのプロパティとを使用して決定される。９６０で、例えばビットプレーンエンコーディングを使用して、ページ位置をエンコードする。
【０１０１】
９７０で、ロスレスモードが望まれるかどうかに関する決定を行う。９７０の決定がＹＥＳである場合には、９８０で、残差イメージをエンコードし、処理は９９０で継続される。９７０の決定がＮＯである場合には、処理は９９０で継続される。９９０で、ページ辞書をエンコードする。９９２で、グローバル辞書をエンコードする（例えばロスレス２レベルエンコーディングを使用して）。
【０１０２】
次に図１０および１１を参照すると、本発明の態様に従って２レベルエンコーディングを実行する方法１０００が示されている。１００４で、クラスタに関する情報を受け取る（例えば、色、水平サイズ、垂直サイズ、水平位置、および／または垂直位置）。
【０１０３】
１００８で、クラスタがグローバル辞書にあるかどうかに関する決定を行う。例えば、ロスレスモードでは、この決定を、クラスタがグローバル辞書内のクラスタから第１閾量以内であるかどうかに基づくものとすることができる。さらに、ロッシイモードでは、この決定を、クラスタがグローバル辞書内のクラスタから第２閾量以内であるかどうかに基づくものとすることができる。
【０１０４】
１００８での決定がＹＥＳの場合には、処理は１０１２で継続される。１００８での決定がＮＯの場合には、１０１６で、クラスタがページ辞書にあるかどうかに関する決定を行う。１０１６での決定がＮＯの場合には、１０２０で、クラスタをページ辞書に記録し、処理は１０１２で継続される。１０１６での決定がＹＥＳの場合には、１０２４で、クラスタをグローバル辞書に記録する。１０２８で、クラスタをページ辞書から除去し、処理は１０１２で継続される。
【０１０５】
１０１２で、クラスタをビットマップから抽出する。次に、１０３２で、ページにまだクラスタがあるかどうかに関する決定を行う。１０３２での決定がＹＥＳの場合には、処理は１００４で継続される。１０３２での決定がＮＯの場合には、１０３６で、ページ辞書をエンコードする。１０４０で、ページ上のクラスタのグローバル辞書ポインタを識別する。１０４４で、ページ上のクラスタのグローバル辞書ポインタをエンコードする。次に、１０４８で、まだページがあるかどうかに関する決定を行う。１０４８での決定がＹＥＳの場合には、処理は１００４で継続される。１０４８での決定がＮＯの場合には、１０５２で、グローバル辞書をエンコードする。
【０１０６】
次に、図１２および１３に移ると、本発明の態様に従ってクラスタ分析を実行する方法１２００が示されている。１２０４で、クラスタを識別する。１２０８で、アクティビティ検出を実行する。１２１２で、クラスタ分析を実行する。１２１６で、クラスタ化されない形状をエンコードする。１２２０で、グローバル辞書へのポインタを識別する。１２２４で、ポインタをエンコードする。１２２８で、ページ位置を識別する。１２３２で、ページ位置をエンコードする。１２３６で、ロスレスモードが所望されるかどうかに関する決定を行う。１２３６での決定がＹＥＳの場合には、１２４０で、残差をエンコードし、処理は、１２４４で継続される。１２３６での決定がＮＯの場合には、処理は１２４４で継続される。１２４４で、ページ辞書をエンコードする。１２４８で、グローバル辞書をエンコードする。
【０１０７】
図１４を参照すると、本発明の態様に従って２レベルデコーディングを実行する方法１４００が示されている。１４１０で、ページ位置をデコードする。１４２０で、辞書位置をデコードする。１４３０で、グローバル辞書をデコードする。１４４０で、ページ辞書をデコードする。１４５０で、クラスタ化されない形状をデコードする。１４６０で、少なくとも部分的に、ページ位置、辞書位置、グローバル辞書、および／またはページ辞書に基づいて、クラスタを生成する。１４７０で、生成されたクラスタおよびクラスタ化されない形状を組み合わせて、例えば２レベルイメージを形成する。
【０１０８】
本発明のシステムおよび／または方法を、テキスト、手書き、ドローイング、画像、および類似物の圧縮を容易にする総合的な圧縮システムで使用できる。さらに、本発明のシステムおよび／または方法を、タブレットパーソナルコンピュータ、写真複写機、文書スキャナ、光学文字認識システム、ＰＤＡ、ファクシミリ機、ディジタルカメラ、ディジタルビデオカメラ、および／またはビデオゲームを含むがこれに制限されない、多数の文書イメージアプリケーションで使用できることを、当業者は認めるであろう。
【０１０９】
本発明のさまざまな態様の追加の文脈を提供するために、図１５および以下の説明は、本発明のさまざまな態様を実施することができる、適切なオペレーティング環境１５１０の簡単な全般的な説明を提供することを意図されたものである。本発明を、１つまたは複数のコンピュータまたは他の装置によって実行可能な、プログラムモジュールなどのコンピュータ実行可能命令の全般的な文脈で説明するが、本発明を、他のプログラムモジュールと組み合わせて、かつ／またはハードウェアおよびソフトウェアの組合せとして実施することもできることを、当業者は認めるであろう。しかし、一般に、プログラムモジュールには、特定のタスクを実行するか特定の抽象データ型を実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。オペレーティング環境１５１０は、適切なオペレーティング環境の１例にすぎず、本発明の使用の範囲または機能性に間する制限を暗示することを意図されたものではない。本発明と共に使用するのに適する可能性がある他の既知のコンピュータシステム、環境、および／または構成には、パーソナルコンピュータ、ハンドヘルドデバイスまたはラップトップデバイス、マイクロプロセッサシステム。マイクロプロセッサベースシステム、プログラマブル消費者電子製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたは装置を含む分散コンピューティング環境、および類似物が含まれるが、これに制限はされない。
【０１１０】
図１５を参照すると、本発明のさまざまな態様を実施する例示的環境１５１０に、コンピュータ１５１２が含まれる。コンピュータ１５１２には、処理ユニット１５１４、システムメモリ１５１６、およびシステムバス１５１８が含まれる。システムバス１５１８は、システムメモリ１５１６を含むがこれに制限されないシステムコンポーネントを処理ユニット１５１４に結合する。処理ユニット１５１４は、さまざまな使用可能なプロセッサのどれにでもすることができる。デュアルマイクロプロセッサおよび他のマイクロプロセッサアーキテクチャも、処理ユニット１５１４として実施することができる。
【０１１１】
システムバス１５１８は、１５ビットバス、Ｉｎｄｕｓｔｒｉａｌ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＩＳＡ）、マイクロチャネルアーキテクチャ（ＭＣＡ）、Ｅｘｔｅｎｄｅｄ  ＩＳＡ（ＥＩＳＡ）、Ｉｎｔｅｌｌｉｇｅｎｔ  Ｄｒｉｖｅ  Ｅｌｅｃｔｒｏｎｉｃｓ（ＩＤＥ）、ＶＥＳＡ  ＬｏｃａｌＢｕｓ（ＶＬＢ）、Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）、Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ（ＵＳＢ）、Ａｄｖａｎｃｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ（ＡＧＰ）、Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ  Ｍｅｍｏｒｙ  Ｃａｒｄ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ａｓｓｏｃｉａｔｉｏｎバス（ＰＣＭＣＩＡ）、およびＳｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｆａｃｅ（ＳＣＳＩ）を含むがこれに制限されないさまざまな使用可能なバス・アーキテクチャを使用する、メモリバスまたはメモリコントローラ、周辺バスまたは外部バス、および／またはローカルバスを含む複数のバス構造のどれにでもすることができる。
【０１１２】
システムメモリ１５１６には、揮発性メモリ１５２０および不揮発性メモリ１５２２が含まれる。起動中などにコンピュータ１５１２内の要素の間で情報を転送する基本ルーチンを含む基本入出力システム（ＢＩＯＳ）が、不揮発性メモリ１５２２に記録される。制限ではなく例として、不揮発性メモリ１５２２に、読取専用メモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、電気プログラム可能ＲＯＭ（ＥＰＲＯＭ）、電気消去可能ＲＯＭ（ＥＥＰＲＯＭ）、またはフラッシュメモリを含めることができる。揮発性メモリ１５２０には、外部キャッシュメモリとして働くランダムアクセスメモリ（ＲＡＭ）が含まれる。制限ではなく例として、ＲＡＭは、シンクロナスＲＡＭ（ＳＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、ダブルデータレートＳＤＲＡＭ（ＤＤＲ  ＳＤＲＡＭ）、エンハンストＳＤＲＡＭ（ＥＳＤＲＡＭ）、シンクリンクＤＲＡＭ（ＳＬＤＲＡＭ）、およびダイレクトラムバスＲＡＭ（ＤＲＲＡＭ）などの多数の形で入手可能である。
【０１１３】
コンピュータ１５１２には、取外し可能／取外し不能の、揮発性／不揮発性コンピュータ記憶媒体も含まれる。図１５には、例えば、ディスクストレージ１５２４が示されている。ディスクストレージ１５２４には、磁気ディスクドライブ、フロッピディスクドライブ、テープドライブ、Ｊａｚｚドライブ、Ｚｉｐドライブ、ＬＳ−１００ドライブ、フラッシュメモリカード、またはメモリスティックなどのデバイスが含まれるが、これに制限はされない。さらに、ディスクストレージ１５２４に、コンパクトディスクＲＯＭ装置（ＣＤ−ＲＯＭ）、ＣＤレコーダブルドライブ（ＣＤ−Ｒドライブ）、ＣＤ書換可能ドライブ（ＣＤ−ＲＷドライブ）、またはディジタル多用途ディスクＲＯＭドライブ（ＤＶＤ−ＲＯＭ）などの光ディスクドライブを含むがこれに制限されない他の記憶媒体と組み合わせてまたは別々の記憶媒体を含めることができる。システムバス１５１８へのディスクストレージ装置１５２４の接続を容易にするために、インターフェース１５２６などの取外し可能インターフェースまたは取外し不能インターフェースが、通常は使用される。
【０１１４】
図１５では、ユーザと適切なオペレーティング環境１５１０内の説明された基本コンピュータリソースとの間の仲介として働くソフトウェアを説明することを諒解されたい。そのようなソフトウェアには、オペレーティングシステム１５２８が含まれる、オペレーティングシステム１５２８は、ディスクストレージ１５２４に記録することができるが、コンピュータシステム１５１２のリソースを制御し、割り振るように働く。システムアプリケーション１５３０は、システムメモリ１５１６またはディスクストレージ１５２４のいずれかに記録されたプログラムモジュール１５３２およびプログラムデータ１５３４を介してオペレーティングシステム１５２８によるリソースの管理を利用する。本発明を、さまざまなオペレーティングシステムまたはオペレーティングシステムの組合せと共に実施できることを諒解されたい。
【０１１５】
ユーザは、入力装置１５３６を介してコンピュータ１５１２にコマンドまたは情報を入力する。入力装置１５３６には、マウス、トラックボール、スタイラス、タッチパッド、キーボード、マイクロホン、ジョイスティック、ゲームパッド、衛星放送用パラボラアンテナ、スキャナ、ＴＶチューナカード、ディジタルカメラ、ディジタルビデオカメラ、ウェブカメラ、および類似物が含まれるが、これに制限はされない。これらおよび他の入力装置は、システムバス１５１８を介し、インターフェースポート１５３８を介して処理ユニット１５１４に接続される。インターフェースポート１５３８には、例えば、シリアルポート、パラレルポート、ゲームポート、およびｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ（ＵＳＢ）が含まれる。出力装置１５４０では、入力装置１５３６と同一のタイプのポートのいくつかが使用される。したがって、例えば、ＵＳＢポートを使用して、コンピュータ１５１２に入力を供給し、コンピュータ１５１２から出力装置１５４０に情報を出力することができる。出力アダプタ１５４２は、出力装置１５４０の中で、特殊なアダプタを必要とする、モニタ、スピーカ、およびプリンタなどのいくつかの出力装置１５４０があることを示すために設けられている。出力アダプタ１５４２には、制限ではなく例として、出力装置１５４０とシステムバス１５１８の間の接続の手段を提供する、ビデオカードおよびサウンドカードが含まれる。他の装置および／または装置のシステムによって、リモートコンピュータ１５４４などの入力機能および出力機能の両方が提供されることに留意されたい。
【０１１６】
コンピュータ１５１２は、リモートコンピュータ１５４４などの１つまたは複数のリモートコンピュータへの論理接続を使用するネットワーク化された環境で動作することができる。リモートコンピュータ１５４４は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ワークステーション、マイクロプロセッサベース機器、ピアデバイスまたは他の一般的なネットワークノードおよび類似物とすることができ、通常は、コンピュータ１５１２に関して説明した要素の多くまたはすべてが含まれる。図を簡単にするために、リモートコンピュータ１５４４と共に、１つのメモリストレージ装置１５４６だけを図示した。リモートコンピュータ１５４４は、論理的に、ネットワークインターフェース１５４８を介してコンピュータ１５１２に接続され、物理的に、通信接続１５５０に接続される。ネットワークインターフェース１５４８には、ローカルエリアネットワーク（ＬＡＮ）および広域ネットワーク（ＷＡＮ）などの通信ネットワークが含まれる。ＬＡＮ技術には、Ｆｉｂｅｒ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄａｔａ  Ｉｎｔｅｒｆａｃｅ（ＦＤＤＩ）、Ｃｏｐｐｅｒ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄａｔａ  Ｉｎｔｅｒｆａｃｅ（ＣＤＤＩ）、イーサネット（登録商標）／ＩＥＥＥ１５０２．３、トークンリング／ＩＥＥＥ  １５０２．５、および類似物が含まれる。ＷＡＮ技術には、ポイントツーポイントリンク、サービス総合ディジタル網（ＩＳＤＮ）およびその変形などの回路交換網、パケット交換網、およびＤｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅ（ＤＳＬ）が含まれるが、これに制限はされない。
【０１１７】
通信接続１５５０は、ネットワークインターフェース１５４８をバス１５１８に接続するのに使用されるハードウェア／ソフトウェアを指す。通信接続１５５０は、明瞭な例示のためにコンピュータ１５１２内に図示されているが、コンピュータ１５１２の外部にすることもできる。ネットワークインターフェース１５４８への接続に必要なハードウェア／ソフトウェアには、例示のみとして、通常の電話級モデム、ケーブルモデム、およびＤＳＬモデムを含むモデム、ＩＳＤＮアダプタ、およびイーサネット（登録商標）カードなどの、内蔵または外付けの技術が含まれる。
【０１１８】
上で説明したものには、本発明の例が含まれる。もちろん、本発明を説明するためにコンポーネントおよび方法の考えられるすべての組合せを説明することは、不可能であるが、本発明の多数のさらなる組合せおよび置換が可能であることを、当業者は認めるであろう。したがって、本発明は、請求項の趣旨および範囲に含まれるすべての代替形態、修正形態、および変形形態を含むことを意図されている。さらに、詳細な説明または請求項のいずれかで用語「含む（ｉｎｃｌｕｄｅｓ）」が使用される範囲までは、そのような用語が、「含む（ｃｏｍｐｒｉｓｉｎｇ）」が請求項の接続単語として使用される時に解釈される用語「含む（ｃｏｍｐｒｉｓｉｎｇ）」と類似する形で包含的であることを意図されている。
【０１１９】
【発明の効果】
以上説明したように、本発明によれば、インククラスタの明示的な表現を用いる２レベルイメージの圧縮処理を容易化したので、データ量の大きなファイルをスキャナーでスキャンして電子データとして保存し、圧縮して電子メールで送信するような場合、その電子データを迅速に送信することが可能となり、効率的なデータ通信を実現することができる。
【図面の簡単な説明】
【図１】本発明の態様による２レベルエンコーディングシステムのブロック図である。
【図２】４接続性プロパティを示す図である。
【図３】８接続性プロパティを示す図である。
【図４】本発明の態様による例示的な接続されたコンポーネントの境界ボックスを示す図である。
【図５】本発明の態様による例示的なグローバル辞書データ構造を示す図である。
【図６】本発明の態様による２レベルエンコーディングシステムのブロック図である。
【図７】本発明の態様による選択可能２レベルエンコーディングシステムのブロック図である。
【図８】本発明の態様による２レベルデコーディングシステムのブロック図である。
【図９】本発明の態様に従って２レベルエンコーディングを実行する方法を示す流れ図である。
【図１０】本発明の態様に従って２レベルエンコーディングを実行する方法を示す流れ図である。
【図１１】図１０の方法をさらに示す流れ図である。
【図１２】本発明の態様に従ってクラスタ分析を実行する方法を示す流れ図である。
【図１３】図１２の方法をさらに示す流れ図である。
【図１４】本発明の態様に従って２レベルデコーディングを実行する方法を示す流れ図である。
【図１５】本発明がその中で機能することができる例のオペレーティング環境を示す図である。
【符号の説明】
１００  ２レベルエンコーディングシステム
１１０  クラスタ形状エスティメータ
１２０  クラスタコンポーネントからのビットマップ推定
１３０  クラスタ位置エスティメータ
１４０  第１エンコーダ
１５０  第２エンコーダ
１６０  第３エンコーダ
１７０  第４エンコーダ
１７２  形状のグローバル辞書
１７４  形状のページ辞書
１７６  クラスタ化されない形状のストア
【図１】
0004733911.tif 000002
【図２】
0004733911.tif 000003
【図３】
0004733911.tif 000004
【図４】
0004733911.tif 000005
【図５】
0004733911.tif 000006
【図６】
0004733911.tif 000007
【図７】
0004733911.tif 000008
【図８】
0004733911.tif 000009
【図９】
0004733911.tif 000010
【図１０】
0004733911.tif 000011
【図１１】
0004733911.tif 000012
【図１２】
0004733911.tif 000013
【図１３】
0004733911.tif 000014
【図１４】
0004733911.tif 000015
【図１５】
0004733911.tif 000016