(57)【要約】【課題】  カラーおよび／またはグレースケール情報が混在するテキストを有する画像を高品質でレンダリングし、出力画像のカラー変動を許容範囲におさめるために画像を編成するシステムおよび方法を提供する。【解決方法】  複数のバイナリ前景平面を有する画像データ形式へ文書画像を変換する。画像データを境界連続性および／またはカラー連続性を使用して解析し、ブロブ（blob）を識別する。ブロブ内の各々のピクセルは、ブロブ内でのみ一意であるＩＤを割り当てられ、ブロブの境界長方形およびピクセルＩＤによってブロブを識別する。これらの属性とともにブロブを格納しリストするテーブルが構成される。ブロブを並べ替えおよびフィルタリングし、類似の位置およびカラー特性を有するブロブをクラスタにまとめるため、テーブルが解析される。クラスタは、複数のバイナリ前景層の１つへ配置される。【選択図】  図３
2005228341.tif 000002
【特許請求の範囲】
【請求項１】
画像データの中で識別された領域を編成する方法であって、
１つまたは複数のカラークラスタを形成し、各々のカラークラスタが、カラー閾値よりも小さいカラー差分を有する画像データの領域を含み、
もしカラークラスタに含まれる２つ以上の領域の最も近接した境界が距離閾値の中にあれば、前記２つ以上の領域を１つ以上の空間クラスタのうちの１つへグループとしてまとめること
の１つ以上を含む方法。
【請求項２】
画像データの中で識別された領域を編成する方法であって、
画像データの画像区域を複数のタイルへ分割し、
画像データの１つ以上の領域を、各々の領域の境界ボックスのロケーションに基づいてタイルへ割り当て、
（１）カラー閾値よりも小さい差分のカラーを有するタイルの領域を、各々のカラークラスタの中に含めることによって、１つ以上のカラークラスタを形成すること、
（２）もし第１のカラークラスタに含まれる２つ以上の領域の最も近接した境界が距離閾値の中にあれば、前記２つ以上の領域を１つの空間クラスタへグループとしてまとめること、の１つ以上
を含む、方法。
【請求項３】
画像データの領域を処理する装置であって、
（１）相互のカラー閾値の中にある画像データの領域をグループにまとめることによって、１つ以上のカラークラスタを形成するカラークラスタプロセッサ、
（２）各々のカラークラスタについて１つ以上の空間クラスタを形成し、各々のカラークラスタの境界ボックスが相互の距離閾値の中にあるとき、それらのカラークラスタの領域が空間クラスタの中に含められる、空間クラスタプロセッサ、の１つ以上と、
カラークラスタまたは空間クラスタに基づいて、バイナリ出力平面を作成する平面生成器と
を備える、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、類似のロケーションおよびカラー（色）特性を有する領域へ画像データを編成することに関する。
【背景技術】
【０００２】
高解像度で走査（スキャン）される文書は、一般的には、非常に大量の記憶空間を必要とする。更に、サイズの大きい画像データは、たとえば、ローカル通信網（ＬＡＮ）、広域通信網（ＷＡＮ）、イントラネット、エクストラネット、インターネット、または他の分散ネットワークを介して転送する等の処理するのに相当多くの時間および帯域幅を必要とする。そのため、画像データはデータ量を削減するために、一般的に何らかの方法で圧縮処理が施される。
【０００３】
しかしながら、従来の、例えばＪＰＥＧ形式のような圧縮方法は、例えばバイナリテキストや線画像等の、鋭い輪郭を有したりカラー遷移の度合いが大きい、高空間周波数を有する画像の場合、一般にうまく動作しないことが多い。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
カラーおよび／またはグレースケール情報が混在するテキストを有する画像を高品質でレンダリングし、出力画像のカラー変動を許容範囲におさめるために画像を編成するシステムおよび方法を提供する。
【課題を解決するための手段】
【０００５】
画像データの圧縮の必要性を満足させる新しい方法は、データを記述するのにＭＲＣ（Mixed Raster Content）形式を使用するエンコーダパイプラインを使用することである。画像データ、たとえば、カラーおよび／またはグレースケール情報が混在するテキストを有する合成画像を定義する画像データは、２つ以上の平面へ分割される。これらの平面は、一般的に、背景（バックグラウンド）平面および前景（フォアグラウンド）平面と呼ばれる。合成画像の中の各々のピクセルについて、どの画像平面が、最終出力画像を再構成するために使用されるべき実際の画像データを含むかを示すため、セレクタ平面が生成される。
【０００６】
複数のバイナリ前景平面を有するＭＲＣ形式へ文書を変換するシステムおよび方法が提供される。文書を走査した後、境界連続性および／またはカラー連続性を使用して、領域またはブロブ（blob）を識別するため画像データが解析される。各々のピクセルは、ブロブの境界長方形の内部でのみ一意であることを要求されるＩＤを割り当てられ、境界長方形およびピクセルＩＤによってブロブを識別すると共に他の属性をリストするテーブルが構成される。ブロブを並べ替えおよびフィルタリングし、類似の位置およびカラー特性を有するブロブをクラスタにまとめるため、テーブルが解析される。次にクラスタは、複数のバイナリ前景層（レイヤ）の１つへ配置される。バイナリ前景層の各々は、その層へ割り当てられた全てのブロブの平均カラーに近似するカラー値を割り当てられる。このようにして、高品質の画像をレンダリングし、出力画像のカラー変動を許容できるものにすることができる。
【発明の効果】
【０００７】
本発明により、カラーおよび／またはグレースケール情報が混在するテキストを有する画像を高品質でレンダリングし、出力画像のカラー変動を許容範囲におさめるために画像を編成するシステムを実現することができる。
【発明を実施するための最良の形態】
【０００８】
本発明は、図面を参照して詳細に説明される。
【０００９】
走査および／または印刷されたカラー文書を自動的に処理して、元の文書内容を正確にとらえる小さく高度に圧縮された画像データファイルを生成するシステムおよび方法の様々な例示的実施形態が開示される。文書の中を走査し、データを解析し、どのピクセルが類似のカラーを有し閉曲線境界により定義され、そのためグループにまとめることができるかを判断することによって、データファイルが生成される。次に、これらの区域は、空間的に相互に近接した類似カラーの区域を結合することによって、クラスタにまとめられる。次に、結合された区域（クラスタ化された領域）は、複数のバイナリ前景層の１つに配置され、たとえばＰＤＦファイルとして出力するため圧縮されてよい。
【００１０】
図１は、背景の連続色調またはグレースケール層（背景層）２１０およびＮ個のバイナリ前景層へ分解される文書の画像データを示す。この例において、６つの（Ｎ＝６）バイナリ前景層２２０〜２７０が存在する。画像データは、６つの区別できるカラー値へ分離される低空間周波数カラーデータを含む。６つのカラー値の各々は、多数のバイナリ前景層２２０〜２７０の特定の１つに関連づけられ、層２２０〜２７０は、それぞれ６つのカラーの１つを含む空間的領域範囲２２０’〜２７０’を含む。領域２２０’〜２７０’のいずれにも含まれないデータは、背景層２１０の中に留まる。以下、バイナリ前景層へ割り当てられる空間領域２２０’〜２７０’を生成するシステムおよび方法を説明する。
【００１１】
画像データの中のピクセルは、「ブロブ（blob）」に属するものとして識別される。「ブロブ」とは、閉曲線境界によって定義され、類似のカラー値を有するピクセルを含む領域である。非一意の小さなＩＤを全てのピクセルに割り当て、ＩＤを割り当てられるブロブの境界長方形の内部でのみＩＤが一意となるように、画像データのマップが作られる。ブロブＩＤ画像の例は図２に示される。「１」のブロブＩＤを有するブロブが、文字「Ａ」の概略的形状を有するように示される。ブロブを記述するために有用なパラメータは、ブロブを完全に囲む最小の長方形であるブロブ境界ボックスである。ｘ次元の最小値であるＭＩＮ＿Ｘ１、ｘ次元の最大値であるＭＡＸ＿Ｘ１、ｙ次元の最小値であるＭＩＮ#Ｙ１、およびｙ次元の最大値であるＭＡＸ＿Ｙ１は、図２のブロブ＃１についてブロブ境界ボックスの範囲を定義する。
【００１２】
ブロブ＃２は、ＭＩＮ＿Ｘ２、ＭＡＸ＿Ｘ２（図示省略）、ＭＩＮ＿Ｙ２、およびＭＡＸ＿Ｙ２によって境界を定められるもう１つのブロブである。これらの２つのブロブは、ブロブクラスタ処理モジュールによってクラスタにまとめられる。次に、クラスタは、以下で詳細に説明するように、Ｎ個のバイナリ前景層の１つへ割り当てられる。
【００１３】
図３は、走査された文書画像からＮ個のバイナリ前景層を生成する例示的システムを示す。図３は、たとえばＲＧＢ色空間で画像データを生成するためスキャナ４００によって走査される文書３００を示し、画像データは、Ｎ層画像データ生成システム１０００へ入力される。次に、Ｎ層画像データ生成システム１０００によって生成されたＮ個の層は、圧縮モジュール８００によって圧縮され、たとえばＰＤＦファイルとして出力される。
【００１４】
Ｎ層画像データ生成システム１０００の最初のモジュールは、カラー変換モジュール５００である。カラー変換モジュール５００は、たとえば、ＲＧＢデータをＹＣＣ色空間へ変換する。
【００１５】
次に、ＹＣＣ色空間の画像は、画像に現れる領域またはブロブのリストを生成するブロブ識別モジュール６００へ入力される。
【００１６】
ブロブ識別モジュール６００は、更に、文書画像２８０の中にある全てのブロブのリストであるグローバルブロブテーブル（ＧＴＢ）を生成する。ＧＴＢの１つのエントリ（登録データ）が、図４に示される。ＧＴＢは、ブロブと同じ数のブロブエントリを含む。各々のＧＴＢエントリの最初の４つのフィールド３１０〜３４０は、ブロブに関連づけられた境界ボックスの座標である。
【００１７】
ＳＵＭ＿Ｙ（輝度）３５０および彩度値であるＳＵＭ＿Ｃｂ３６０およびＳＵＭＣｒ３７０は、ブロブへ割り当てられたカラー合計（sum）であり、トータルピクセルカウント３８０は、所与のブロブへ割り当てられたブロブＩＤ画像のピクセル総数である。任意設定項目であるＶＡＲ（分散値）３９０は、ブロブの彩度値の分散であり、ＩＤフィールド４１０は、マップ画像で使用された（非一意の）ブロブＩＤである。インデックスフィールド４２０は、任意設定項目の一意のブロブ識別子である。各々のＧＴＢエントリに含まれるマークフィールド４３０は、以下で更に説明するように、ブロブが一組のテスト規準をパスしたかどうかに従って、ブロブクラスタ処理モジュールによってブロブへ適用されたマークを記憶する。ブロブネクスト（ＮＥＸＴ）フィールド４４０および内容（ＣＯＮＴ）フィールド４５０は、現在のブロブがリンクされるブロブを指し示すポインタを記憶する。
【００１８】
更に、走査されたＹＣＣ変換画像である向上カラーデータ（ＥＮＨ：Enhanced Color Data）が、ブロブ識別モジュールによって生成される。
【００１９】
ブロブクラスタ処理モジュール７００は、ブロブＩＤマップ画像、ＧＴＢ、およびＥＮＨを入力させ、グローバルブロブテーブルを解析し、或るカラーおよび空間特性を共有するブロブをＮ個のクラスタ領域へ結合する。ブロブクラスタ処理モジュール７００は、クラスタ領域のカラー値に依存して、クラスタ領域を（Ｎ＋１）個のバイナリ前景層の１つへ割り当てる。次に、層は、たとえばＰＤＦ形式で出力される前に、圧縮モジュール８００によって圧縮される。
【００２０】
図５は、ブロブクラスタ処理（ＢＣＰ）モジュール７００の例示的実施形態を示す。モジュール７００は、ＣＰＵ７１０、入／出力ポート７８０、メモリ７７０、クラスタ構築モジュール７２０、クラスタ並べ替えモジュール７３０、ブロブマークモジュール７４０、層（平面）生成モジュール７５０、クラスタ結合モジュール７０５、および内部ブロブモジュール７６０を含む。
【００２１】
ブロブクラスタ処理モジュール７００は、入力／出力ポート７８０を介して、ブロブ識別モジュール６００からＥＮＨ、ブロブＩＤマップデータ（ＢＩＤ）、およびＧＴＢを入力させ、Ｎ＋１個のバイナリ前景層を生成する。
【００２２】
ブロブ識別モジュール６００からＧＴＢを受け取ると、クラスタ並べ替えモジュール７３０は、ブロブを並べ替え、後続のブロブクラスタ処理段階で便利な順序にブロブを配置する。
【００２３】
クラスタ並べ替えモジュール７３０は、更に、カラー合計をピクセルカウントで割り、平均のブロブカラーを得るために、ＧＴＢのカラー合計を正規化する。
【００２４】
次に、並べ替えモジュール７３０は、ＧＴＢをブロブマークモジュール７４０へ引き渡す。ブロブマークモジュール７４０は、ＧＴＢの各々のブロブを解析し、多数のテスト条件の結果に従って、マークフィールド４３０へマークを適用する。ブロブをマークする目的は、ブロブの数を減らし、結果的に処理負荷を減らすため、下流のプロセス（処理）によってどのブロブを除去できるかを示すことである。こうして、マークフィールド４３０は、プロセスの負荷を減らすためマークプロセスによって使用される。
【００２５】
ブロブマークモジュール７４０は、５つの異なった条件に従ってブロブをテストする。もし条件が満たされるならば、マークフィールドのビットは、ブロブをマークするために変更される。各々の条件は、マークフィールドで異なったビットパターンを生じる。プロセスを早めるため、ブロブ形状自体の代わりに境界ボックスに基づく簡単なテストが使用される。ブロブマークモジュール７４０の条件は、次の順序で適用される。
【００２６】
１）ブロブ区域が小さすぎるかどうかをチェックする。
【００２７】
２）ピクセルカウント密度が、所定の最小密度よりも小さいかどうかをチェックする。
【００２８】
３）境界ボックスの縦横比（幅／高さ）が大きすぎるかどうか、または小さすぎるかどうかをチェックする。この条件は、ブロブが線であることを示しうる。
【００２９】
４）境界ボックスの幅または高さが大きすぎるかどうかをチェックする。
【００３０】
５）ブロブ区域が十分に大きいかどうか、および平均輝度が白に近いかどうかをチェックする。
完了したとき、マークフィールド４３０は、満たされた最後のテストで生成されたコードを含む。ブロブは、５つのテストの全てが失敗したときにのみマークされないままとなる（コード０）。
【００３１】
ブロブマークモジュール７４０は、ブロブを除去または変更せず、１つ以上のテスト条件が満たされたとき、マークフィールドを変更するだけである。
【００３２】
ブロブのピクセルの全部または大部分が、カラー変動テストに使用されてよいが、カラー変動テストのスピードを増加するため、図６で示されるように、１つの線、たとえば中央線の上に位置するピクセルのみがテストされてよい。ブロブマークモジュール７４０は、境界ボックスによって判断される左側の最初のブロブピクセルから始まり右側の最後のブロブピクセルで終わる中央線上のブロブピクセルを評価する。次に、ブロブマークモジュール７４０は、中央線上のブロブピクセルのカラー変動を検査する。
【００３３】
ブロブマークモジュール７４０は、現在の「Ｘ」ピクセルカラーと、Ｃｂ、Ｃｒカラー合計によって与えられる平均ブロブ彩度との間の彩度差分を測定することによって、カラー変動を計算する。
【００３４】
次に、ブロブマークモジュール７４０は、計算された彩度変動を所定の限度と比較する。もし彩度変動が、この限度を超過すれば、それに従ってブロブがマークされる。
【００３５】
ブロブがマークされた後、それらのブロブは、類似のカラー特性を有し近接したロケーション（位置）にあるブロブが結合されてクラスタにされる。クラスタ構築モジュール７２０は、並べ替えおよびマークされたブロブのカラーおよび空間上での関係に基づいて、ブロブをクラスタへ編成する。
【００３６】
クラスタ構築モジュール７２０は、画像区域を隣接する互いに重なり合わない（オーバーラップしない）正方形タイルへ分割することから開始する。タイルの目的は、評価されている画像区域を、より管理可能なサイズへ縮小することである。画像区域とタイルの関係は図７で示される。
【００３７】
クラスタ構築モジュール７２０は、カラーおよび空間ロケーションによってブロブをグループ化し、ブロブのカラークラスタおよび空間クラスタを形成する。各々のカラークラスタは、類似したカラーを有する１つ以上のブロブを含む。即ち、その各々の領域（ブロブ）のカラーの違いは、カラー閾値よりも小さい。各々のカラークラスタは、少なくとも１つの空間クラスタを含み、各々の空間クラスタは、少なくとも１つのブロブを含む。もしカラークラスタが複数の空間クラスタを含むならば、それらの空間クラスタは、全てカラーが近接していなければならない。もし空間クラスタが多数のブロブを含むならば、ブロブは相互に接近していなければならない。
【００３８】
ブロブが空間クラスタへ合体されるべきかどうかを決定するため、拡張境界ボックスが使用される。拡張境界ボックスの目的は、同じ空間クラスタの中にあると考えられるブロブの間の許容される距離閾値を定義することである。重なり合う（オーバーラップする）拡張境界ボックスを有するブロブは、相互に十分接近しており、同じ空間クラスタに属するものと考えられる。
【００３９】
拡張境界ボックスの例は、図８に示される。拡張境界ボックス７５４は、元の境界ボックス７５２の幅および高さに比例して所定の限度まで拡張される。
【００４０】
たとえば、図２へ戻って、ブロブ＃１（文字「Ａ」）として識別されるブロブは、ｘ方向で２列だけ拡張される拡張境界ボックスを有し、ＥＸＰ＿ＭＡＸ＿Ｘ１の拡張境界ボックスの境界を与える。同様に、ブロブ＃２も２列だけ拡張され、拡張境界ボックスの境界ＥＸＰ＿ＭＩＮ＿Ｘ２を与える。したがって、もしブロブ＃１および＃２のカラー値が十分に近接していれば、ブロブ＃１は、ブロブ＃２として識別されるブロブを有する同じ空間クラスタの中に含まれる。なぜなら、ブロブ＃１の拡張境界ボックス（ＥＸＰ＿ＭＡＸ＿Ｘ１）は、ブロブ「２」の拡張境界ボックス（ＥＸＰ＿ＭＩＮ＿Ｘ２）とオーバーラップするからである。
【００４１】
境界ボックスの拡張サイズは、結果としてのバイナリ前景層の数と、バイナリ層の圧縮効率とのトレードオフ（取捨選択）に基づいて選ばれる。
【００４２】
クラスタがブロブから組立られるとき、クラスタの内容を追跡するため、クラスタ構築モジュール７２０は、各々のタイルに定着（root）される２レベルのクラスタデータを維持する。空間クラスタの内容フィールドは、常にブロブリストの冒頭を指し、カラークラスタの内容フィールドは、常に空間クラスタリストの冒頭を指す。
【００４３】
ネクスト（ＮＥＸＴ）フィールドは、リストの次のレコードを指す。ブロブのネクストフィールドは次のブロブを指す。空間クラスタのネクストフィールドは次の空間クラスタを指す。カラークラスタのネクストフィールドは次のカラークラスタを指す。リストの最後では、ネクストフィールドは空値（ＮＵＬＬ）である。クラスタ構築モジュール７２０によって使用される例示的データ構造は、図９で示される。
【００４４】
図９は、ブロブがクラスタへ組み込まれるとき、ブロブの各々を追跡するために使用される３レベルデータ構造を示す。データ構造のトップレベル７３５は、たとえば、カラークラスタ（ＣＣＬＵＳＴＥＲ）７４６、７４７、および７４８を含む。カラークラスタは、所定のカラー閾値と比較して同一または類似のカラーを有する空間クラスタをグループにまとめたものである。データ構造の第２の（中間）レベル７３６は、オーバーラップする拡張境界ボックスを有するブロブを含む空間クラスタ（ＳＣＬＵＳＴＥＲ）７３１、７３２、７３３、および７３４を含む。
【００４５】
ボトムレベル７３７は元のブロブ（ＢＬＯＢ）を含み、「内容（ＣＯＮＴ）」ポインタによって空間クラスタへ、また、「ネクスト（ＮＥＸＴ）」ポインタによって同じクラスタのブロブへリンクされる。こうして、各々のクラスタまたはブロブは、ネクストポインタを使用して同じレベルの他のクラスタまたはブロブへリンクされ、クラスタは内容ポインタによって、より低いレベルの他のクラスタへリンクされる。
【００４６】
各々のタイルにある最初のブロブは、新しいクラスタ連鎖を作成し、この新しいクラスタ連鎖へ、後続のブロブがリンクされる。
【００４７】
タイルの中にある次のブロブは、既存の空間クラスタへ割り当てるか、そのブロブを含ませるため新しいクラスタを作成することができる。たとえば、もし現在のブロブ８７２が、既に作成されたカラークラスタのいずれとも適合しないと決定されるならば、新しいカラークラスタ８４６（図１０参照）がクラスタリストの中に作成され、カラークラスタ連鎖の始めに挿入される。
【００４８】
図１０は、新しいカラークラスタ８４６を、既にクラスタ８４５および８４４を含むクラスタ連鎖へ挿入する手順を示す。新しいカラークラスタを挿入するため、新しいカラークラスタの挿入に先立って、対応するタイルエントリのクラスタインデックスが、新しいカラークラスタのネクストフィールドへコピーされ、タイルエントリは、新しいカラークラスタのインデックスを含むように修正される。
【００４９】
図１１は、クラスタデータ構造からのリンクされたクラスタエントリの例示的模式図である。クラスタエントリは、図１０の下部に示されるクラスタに対応するエントリである。
【００５０】
もし２つのカラークラスタが、カラー閾値の中に入るカラー値を有する、または２つの空間クラスタが、オーバーラップする拡張境界ボックスを有するならば、それらのクラスタは結合されてよい。結合は、平均カラーおよびピクセルカウントを更新することを含む。２つの拡張境界ボックスは結合されて、双方の境界を定める１つの境界ボックスが生成される。
【００５１】
上記のクラスタ結合方法は最適化されているので、それはブロブをタイルクラスタ構造へ最初に挿入するときにも使用される。候補としての一時的な空間クラスタが作成され、その空間クラスタは、現在のブロブについて計算された拡張境界ボックスを有し、その内容フィールドは現在のブロブを指す。カラーが適合（一致）するかどうか、カラークラスタ連鎖が探査される。もし適合するカラークラスタが発見されなければ、現在のクラスタのカラーおよび拡張境界ボックスフィールドを使用して、新しいカラークラスタが作成（初期化）される。次に、適合する（または新しい）カラークラスタの空間クラスタリストが、現在の空間クラスタと交差する拡張境界ボックスを有する空間クラスタについて探査される。もし空間の適合が発見されるならば、現在のクラスタが、適合（一致）する空間クラスタへ結合される。もし適合が発見されなければ、現在のクラスタは、カラークラスタの既存の内容の始めへ付加される。空間適合のテストは、図１２に示される。空間適合のテストは、すでにカラーが近接して一致しているクラスタ間でのみ実行される。空間適合の要件は、例えば図１２のボックス８８１、８８２，８８３、８８４と８８５のように、少なくとも２つのクラスタの拡張境界ボックス間に少なくとも１ピクセルのオーバーラップがあることである。
【００５２】
もしオーバーラップするクラスタが発見されると、現在のクラスタデータは、その空間クラスタへ結合される。新しく集成された境界ボックスが確立され、この境界ボックスは、結合された境界ボックスの広がりを含む。
【００５３】
前述したように、空間的にオーバーラップしたクラスタが発見されないと、現在の空間クラスタは、カラークラスタ（新しいカラークラスタである可能性もある）の内容リストの始めに付加される。図１３は、新しい空間クラスタを既存のクラスタ連鎖へ挿入するプロセスを示す。新しいクラスタ８５９は、空間クラスタ連鎖の始めに挿入される。カラークラスタ８４６の前の内容フィールド（ＰＲＥＶ  ＣＯＮＴ）は、クラスタ８５９のネクストフィールドへコピーされ、前にクラスタ８５８を指したカラークラスタ８４６の内容フィールドは、新しいクラスタ８５９を示すように修正される。最後に、新しい空間ブロブ８５９の内容フィールドは、現在のブロブ８７３となるように更新される。このケースについては、これにより３レベル構造７３５〜７３７が完成される。
【００５４】
次に、クラスタ構築モジュール７２０は、ＧＴＢの次のブロブを検査するように進行する。このプロセスは、全てのブロブが、それらのカラー適合および空間近接性に基づいて、３レベル構造７３５〜７３７へ挿入されるまで反復される。
【００５５】
一度、３レベル構造７３５〜７３７の全体が完成されると、クラスタ構築モジュール７２０は、クラスタの結合を開始し、残りのクラスタの数を減らす。
【００５６】
クラスタが結合された後、図１４で示されるように、タイル境界を横切ってオーバーラップするクラスタを結合することによって、各々の２×２の隣接タイル集合（セット）間の境界が除去される。タイル境界の間の境界が除去される前では、図１４の上部左側のタイルは３つのカラークラスタ８１０、８１４、および８１８を有し、上部右側は２つのカラークラスタ８１２および８１６を有し、他のタイルは、各クラスタ８２０および８２２をそれぞれ有する（全部で７つのクラスタ）。平均のカラーが密接に適合するものと仮定すれば、図１４の下部は、１つの結合ステップの後に、４つのカラークラスタ８２４、８２６、８２８、および８３０だけが残ることを示している。
【００５７】
この時点で、新しいクラスタアレイ（配列）は、各々の方向にタイルの半数を割り振られ、エントリは、結合されたデータで満たされる。１つの２×２のタイル集合についての結合動作は、図１４で示される。結合プロセスは、タイルサイズが画像データの全体をカバーするまで反復される。
【００５８】
最終的なクラスタ構造は、クラスタ結合モジュール７０５へ渡される。クラスタ結合モジュール７０５は、最初に、クラスタ構造からカラークラスタのトップレベル７３５を除去する。クラスタ結合モジュール７０５の動作は、図１５で示される。
【００５９】
クラスタ結合モジュール７０５は、カラー適合および空間オーバーラップに基づいてクラスタを結合できるかどうかについて、再び空間クラスタの連鎖を探査する。適合が発見されると、前述したように、データは最初のクラスタへ結合され、第２のクラスタが削除される。リストが削除されたクラスタを有しないように、リンクが再結合される。クラスタ結合モジュール７０５の動作は、図１６で示される。
【００６０】
空間クラスタは、クラスタ結合モジュール７０５によって、関連するブロブデータの内容（ＣＯＮＴ）から直接再計算される。クラスタ結合モジュール７０５は、空間クラスタの連鎖を評価することによって再計算する。各々の空間クラスタについて、ピクセルカウント、カラー平均、および集成（集約）された境界ボックス（拡張なし）が、クラスタに含まれるブロブに基づいて再計算される。
【００６１】
クラスタ結合モジュール７０５は、不良と見なされるクラスタを除去し、ブロブマークフィールドを再調整する。即ち、マークされた空間クラスタは除去され、空間クラスタのリストが除去されたクラスタなしで保持されるようにネクストリンクが更新される。
【００６２】
ブロブ識別プロセスの正常な結果は、全てのブロブが、全ての他のブロブの完全に内側にあるか、完全に外側にあるかである。クラスタ結合モジュール７０５が結合プロセスを完了した後、内部ブロブモジュール７６０は、各々のブロブが他のマークされないブロブに完全に含まれるかどうかをチェックする。即ち、含まれるならば、それは「内部」ブロブである。内部ブロブであると決定されたブロブは、クラスタから除去される。
【００６３】
内部ブロブモジュール７６０の動作は、内部ブロブがあるかどうかを全てのブロブペアの間でチェックすることが必要である。このような動作が与える計算負荷を理由として、多くの不良または小さなブロブが除去（マーク）されるクラスタ結合モジュール７０５の後で、内部ブロブモジュールが適用される。
【００６４】
内部ブロブモジュール７６０は、ブロブペアの全ての可能な組み合わせを検査する。境界ボックスのＭＩＮ＿Ｙ値によって先に並べ替えられたＧＴＢから、最初のブロブであるブロブＡが順次に取り出される。次に、第２のブロブであるＡの直後で始まるブロブＢがＧＴＢから取り出される。各々のブロブについて、グローバルブロブテーブルから境界ボックスおよびブロブＩＤが検索される。第２のブロブであるブロブＢは、ブロブＡに関して内部ブロブであるかどうかをテストされる。
【００６５】
ブロブＢがブロブＡの内部ブロブであるかどうかを決定するプロセスが、図１７に示されている。図１７は、ブロブＡを含む境界ボックス８８４の中央線８８１を示す。中央線８８１の最初の３つのピクセルの各々は、ブロブＡの内側にあることを判断され、ブロブＢへの遷移がピクセル８８３について起こる。これにより、ブロブＢはＡの内部ブロブであると判断される。
【００６６】
図１８に示される状態マシン８９０は、内部ブロブを決定する例示的プロセスを示す。
【００６７】
一度、最初のブロブＩＤ  Ａの状態であることが発見されると、状態は１へ変えられる。ここで、状態マシン８９０はブロブＩＤ  Ｂの状態の発生を探し始める。ブロブＩＤ  Ａ状態が観察され続けられる限り、状態は１に留まる。しかし、ＡまたはＢ以外のＩＤが、ブロブＩＤ  Ａの後およびブロブＩＤ  Ｂの前に発見されると、状態はゼロへリセットされて再開始される。ブロブＩＤ  ＢがブロブＩＤ  Ａの直後に発見されるときにのみ、状態は２へ変えられる。これはＢが内部ブロブであることを示す。この状態に達すると、テストは直ちに中止されてよい。
【００６８】
状態２が発見されると、Ｂブロブのマークフィールド４３０の内部ブロブビットをオンにすることによって、Ｂブロブが内部ブロブとしてマークされる。その他の全ての場合、Ｂブロブは内部ブロブとしてマークされない。
【００６９】
前述したように、ＢがＡの内部ブロブであるかどうかをチェックした後、プロセスは、ＧＴＢの次のＢブロブをチェックするように進行する。これは、ＧＴＢの最後のブロブが評価されるか、ＢのＭＩＮ＿ＹがＡのＭＡＸ＿Ｙよりも大きくなるまで続く。
【００７０】
次に、内部ブロブモジュール７６０は、各々のブロブのピクセル数に基づいて、境界ボックスの和集合（内部ブロブを除く）および新しい加重平均カラーを再計算する。
【００７１】
もし結果のクラスタサイズが十分に大きければ、更新されたＹＣＣカラー合計はピクセルカウントによって正規化され、内部ブロブを除く新しい平均カラーがクラスタデータへロードされ、先の合計と置き換わる。同様に、新しいピクセルカウントおよび更新された境界ボックス情報が、内部ブロブを除いて、クラスタデータへロードされる。
【００７２】
クラスタ並べ替えモジュール７３０は、空間クラスタを、最大ピクセルカウントから最小ピクセルカウントまでサイズによって並べ替える。並べ替え方法は、この後で図１９に関して説明するように、バブルソート（基本交換法）アルゴリズムに基づくものであってよい。
【００７３】
空間クラスタ９９１、９９２、９９３の連鎖は、一時に１つのクラスタがたどられる。各々のステップで、現在のクラスタ９９１のサイズは、後続のクラスタ９９２のサイズと比較される。後続のクラスタ９９２は、現在のクラスタ９９１からのネクストリンクをたどることによって識別される。クラスタサイズはカウントフィールドによって与えられ、このカウントフィールドはクラスタの集成されたピクセル数を含む。もし９９１のピクセル数が９９２のカウントフィールドのピクセル数よりも小さければ、連鎖の中のクラスタ位置は交換され、それらのネクストリンクは、新しい位置を反映するように更新される。
【００７４】
層（平面）生成モジュール７５０がクラスタ並べ替えモジュール７３０に続く。層生成モジュール７５０は、空間クラスタをバイナリマスク平面へ変換する。各々のクラスタは、１から始まる層（レイヤ）番号を順次に割り当てられる。前述したように、空間クラスタ、そのためバイナリ平面は、ピクセルカウント値の降順で並べ替えられる。層の数は、生き残った空間クラスタ＋１の数と同じである。
【００７５】
層生成モジュール７５０はＮ＋１個のバイナリ平面を作成する。平面１からＮは、対応する層のバイナリデータを含む。平面０は、層１からＮまでのＯＲ結合されたデータと等しいバイナリセレクタ層を含む。平面０のサイズは、背景平面と同じである。
【００７６】
層生成モジュール７５０は、一時に１つの平面を作成する。前述したように、クラスタ並べ替えモジュール７３０は、ピクセルカウント値の降順で平面を並べ替える。各々の平面について、平面サイズを計算し、バイナリ画像に正確なメモリ記憶量を割り振るため、境界ボックスが使用される。平面は、最初にゼロに設定される。次に、平面のクラスタ内容リストの各々のブロブが処理される。各々のブロブについて、ブロブの境界ボックスに対応するＩＤマップ画像の全てのロケーションが検査される。ブロブＩＤに等しいＩＤを有するこの境界ボックスの全てのマップピクセルについて、層平面の対応するビットが１へ設定される。
【００７７】
上記の説明は、ハードウェアの実施形態を参照して与えられたが、ブロブクラスタの処理は、マイクロプロセッサで実行されるソフトウェアとしても実現されることができる。この場合、方法の各々のステップは、適切にプログラムされたマイクロプロセッサ、またはハードウェアとソフトウェアとの組み合わせによって実行される。
【００７８】
図２０は、グローバルブロブテーブルにリストされたブロブをｎ個のバイナリ前景層へ変換する方法の１つの例示的実施形態を示すフローチャートである。図２０で示されるように、方法の動作は、ステップＳ２００で始まる。ステップＳ２００では、グローバルブロブテーブルの各々のブロブが正規化される。様々な例示的実施形態において、ブロブはピクセルカウントに従って正規化される。次に、プロセスはステップＳ３００へ進む。ステップＳ３００では、もしオプションが選択されるならば、ブロブのＹＣＣが、連続グレートーンへ変換される。次に、プロセスはステップＳ４００へ進行する。ステップＳ４００では、ブロブは、走査された画像におけるそれらの位置に従って並べ替えられる。次にプロセスは、ステップＳ５００へ進行する。ステップＳ５００では、各々のブロブの並べ替えられた順序を記憶するため、インデックスが各々のブロブへ割り当てられる。次に、プロセスはステップＳ６００へ進行する。ステップＳ６００では、各々のブロブが解析され、多数のテスト条件の１つに従ってマークされる。次にプロセスはステップＳ７００へ進行する。ステップＳ７００では、或る閾値を超過したカラー変動を有するブロブがマークされる。次にプロセスはステップＳ８００へ進行する。
【００７９】
ステップＳ８００では、クラスタがＧＴＢから構築される。その場合、カラーが類似したブロブであって相互に近接したブロブから、クラスタが作られる。ステップＳ９００では、ステップＳ８００で作成されたクラスタテーブルのトップレベル（カラーレベル）が除去される。ステップＳ１０００では、生き残りのクラスタの数を減らすため、十分に類似したカラーを有し空間的にオーバーラップしたクラスタが結合される。ステップＳ１１００では、ステップＳ１０００の結合動作の後で残ったクラスタのカラーが再計算され、クラスタカウントが更新される。ステップＳ１２００では、最小閾値数のピクセルを含まないクラスタが、クラスタリストから除去される。ステップＳ１４００では、他のブロブの中に完全に含まれるブロブが「内部ブロブ」としてマークされる。ステップＳ１５００では、内部ブロブとして前のステップでマークされたブロブが除去される。ステップＳ１６００では、ステップＳ１５００で内部ブロブを除去した後の残りのクラスタが再計算される。ステップＳ１７００では、ブロブがサイズによって並べ替えられる。
【００８０】
ステップＳ１８００では、残りのクラスタがバイナリ前景平面へ順次に割り当てられる。ステップＳ１９００では、異なった前景平面が、偶数バイト境界（even byte boundary）へバイトを揃えられる。次に、ステップＳ２０００では、Ｎ＋１個のバイナリ平面が生成される。セレクタ平面である平面０は、グレースケール背景平面の中で画像データをマスクするために使用される。ステップＳ２１００でグレースケール背景平面は、圧縮能力を向上させるために調整される。次に、ステップＳ２２００では、ステップＳ１９００で決定されたバイナリ前景平面の各々が、そのような平面に適した圧縮手法を使用して圧縮される。次に、動作はステップＳ２２００へ続く。
【００８１】
ステップＳ２２００では、背景平面が、そのようなデータに適した圧縮手法を使用して圧縮される。次に、ステップＳ２３００では、圧縮されたバイナリ前景平面および圧縮されたグレースケール背景平面から、ポータブルドキュメント形式（ＰＤＦ）文書ファイルが生成される。次に、ステッＳ２４００では、生成されたＰＤＦ形式文書ファイルが下流のプロセッサへ出力され、および／またはメモリに記憶される。そして動作は終了する。
【００８２】
更に、様々な例示的実施形態において、ＰＤＦ形式の代わりに、任意の既知または後に開発される文書形式が、ステップＳ２３００およびＳ２４００で使用されてよいことを理解されたい。
【００８３】
本発明は、様々な例示的実施形態に結びつけて説明されたが、これらの実施形態は、例証として考えるべきであり、限定として考えるべきではない。様々な修正、置換などが、本発明の精神および範囲の中で可能である。
【図面の簡単な説明】
【００８４】
【図１】複数のバイナリ前景平面および背景平面へ分解される画像の例示的実施形態を示す図。
【図２】ブロブＩＤ画像データの１つの例示的実施形態を示す図。
【図３】ブロブクラスタ処理モジュールが動作することのできる１つの例示的システムを示す図。
【図４】グローバルブロブテーブルにおけるブロブまたはクラスタのエントリの１つの例示的実施形態を示す図。
【図５】図３のブロブクラスタ処理モジュールの１つの例示的実施形態を示す図。
【図６】境界ボックスの例示的実施形態を示す図。
【図７】１ページの画像データがどのように複数のタイルへ分割されるかを示す図。
【図８】拡張された境界ボックスの１つの例示的実施形態を示す図。
【図９】空間およびカラー関係に従ってブロブのクラスタを記述するデータ構造の１つの例示的実施形態を示す図。
【図１０】図５のブロブクラスタ処理モジュールのクラスタ構築モジュールによって、どのように新しいクラスタがクラスタ連鎖の始めに挿入されるかを示す図。
【図１１】ネクストフィールドおよび内容リンクフィールドを有するクラスタテーブルのエントリを示す図。
【図１２】１つのクラスタが他のクラスタと空間的にオーバーラップすると判定されるための要件を示す図。
【図１３】図５のブロブクラスタ処理モジュールのクラスタ構築モジュールによって、空間的にオーバーラップする拡張境界ボックスを有するブロブが、どのようにクラスタ連鎖へ付加されるかを示す図。
【図１４】画像ページのタイルを結合することによって、どのようにクラスタが結合されるかを示す図。
【図１５】ブロブクラスタ処理モジュールのクラスタ結合モジュールによって、どのようにカラークラスタのトップレベルが除去されるかを示す図。
【図１６】ブロブクラスタ処理モジュールのクラスタ結合モジュールによって、どのように空間クラスタが結合されるかを示す図。
【図１７】ブロブクラスタ処理モジュールの内部ブロブモジュールによる内部ブロブの検出を示す図。
【図１８】内部ブロブの検出を実行する状態マシンの模式図。
【図１９】クラスタ並べ替えモジュールによって使用されるバブルソート（基本交換法並べ替え）ルーチンを示す模式図。
【図２０】ページの圧縮表現を生成するために使用される、バイナリ平面データへブロブを編成およびマークする例示的方法を概略的に示すフローチャート。
【図１】
2005228341.tif 000003
【図２】
2005228341.tif 000004
【図３】
2005228341.tif 000005
【図４】
2005228341.tif 000006
【図５】
2005228341.tif 000007
【図６】
2005228341.tif 000008
【図７】
2005228341.tif 000009
【図８】
2005228341.tif 000010
【図９】
2005228341.tif 000011
【図１０】
2005228341.tif 000012
【図１１】
2005228341.tif 000013
【図１２】
2005228341.tif 000014
【図１３】
2005228341.tif 000015
【図１４】
2005228341.tif 000016
【図１５】
2005228341.tif 000017
【図１６】
2005228341.tif 000018
【図１７】
2005228341.tif 000019
【図１８】
2005228341.tif 000020
【図１９】
2005228341.tif 000021
【図２０】
2005228341.tif 000022