(57)【要約】【課題】  本発明は、文書を、複数のバイナリ前景平面を有する複合ラスターコンテンツフォーマットで画像データに変換するシステム及び方法を提供する。【解決手段】  画像データを線毎に分析して、類似の色及びエッジ特徴を有する画素を特定する。１つの線上にあるこれらの画素と別の線上の画素とは、両者が類似の特徴を共有する場合にはリンクされる。これらのリンクされた画素同士は領域としてグループ化され、この領域の平均色が計算される。画素が属する領域を特定する画像マップが、領域の最終的なテーブルと共に生成される。【選択図】  図２
2005228331.tif 000002
【特許請求の範囲】
【請求項１】
ａ）色特徴の互いの相違が所定量未満である画像データから成る第１の線上の画素を含むブロブを識別することと、
ｂ）前記ブロブを一時的ブロブ識別子と関連付けることと、
ｃ）色特徴の互いの相違が所定量未満である前記画像データの隣の線上の画素を含む追加のブロブを識別することと、
ｄ）前記追加のブロブが前記ブロブにリンクされると、前記追加のブロブを前記一時的ブロブ識別子と関連付けることと、
を含む、画像データ中の画素の領域を識別する方法。
【請求項２】
色特徴の互いの相違が所定量未満である画像データから成る周辺の線上の画素を含むブロブを識別して、該ブロブを一時的ブロブ識別子と関連付けることと、
前記周辺の線に隣接している次の隣接線から始めて、色特徴の互いの相違が所定量未満である画素を含む次のブロブを逐次的に識別することと、
前記次のブロブが前記ブロブ又は前記ブロブにリンクされている先行の次のブロブのいずれかとリンクしている場合、前記次のブロブを前記一時的ブロブ識別子と、前記次のブロブのリンク情報に基づいて関連付けることと、
新しい次の隣接線に隣接している次の隣接線の、色特徴の互いの相違が所定量未満である画素を含む次のブロブを逐次的に識別することを引続き行うことと、
前記ブロブにリンクされているブロブを有しない線に到達するまで、次の隣接線の次のブロブを前記一時的ブロブ識別子と関連付けることを引続き行うことと、
を含む、画像データ中の画素の領域を識別する方法。
【請求項３】
ブロブプロセッサと、
前記ブロブプロセッサに接続されるメモリであって、画像データの２つ以上の線ブロブ同士をリンクさせるリンク情報を記憶する、メモリと、
を備え、前記ブロブプロセッサが、ある線の線ブロブと、該線ブロブと互いにリンクされている線ブロブであって、連続して隣接する線の線ブロブとを、１つのブロブにグループ化して、該１つのブロブに固有のブロブＩＤを割り当てる、画像データ処理装置。
【請求項４】
周辺の線上の画素を該画素の色及びエッジの特徴にしたがってあるブロブに対して割り当て、次の隣接線上の画素を次のブロブに割り当て、前記次のブロブを前記ブロブに対してリンクさせるリンク情報を、前記次のブロブ及び前記ブロブの色特徴にしたがって提供して、前記次の隣接線に隣接する新しい次の隣接線上の新しい次のブロブを色特徴にしたがって逐次的に識別する手段と、
前記新しい次のブロブが前の次の隣接線上の何れのブロブともリンクされていない場合、次の線上の前記新しい次のブロブを新しい一時的ブロブ識別子に対してリンクさせ、前記次のブロブを前のブロブにリンクさせ、前記前のブロブが前記ブロブにリンクされている場合、前記前のブロブを前記一時的ブロブ識別子に対してリンクさせ、前記次の隣接線上の前記次のブロブを、前記ブロブにリンクされているブロブを有しない線に到達するまで、前記一時的ブロブ識別子と関連付ける手段と、
を備える、画像データ中の領域を識別する装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データを類似した色特徴を有する領域に組織化することに関する。
【背景技術】
【０００２】
高い解像度で走査された文書には、一般的に、非常に大きな記憶スペースが必要である。そのうえ、大量の画像データには、ローカルエリアネットワークもしくはワイドエリアネットワーク上で、イントラネット、エクストラネットもしくはインターネット上で又は他の分散型ネットワーク上で転送するなど、その操作に実質的に多くの時間と帯域幅とが必要である。
【０００３】
文書は、スキャナ等を用いて走査されると、一般にＲＧＢ色空間を用いて、すなわち未加工のＲＧＢフォーマットで定義される。しかしながら文書画像データは、この走査された状態の未加工のＲＧＢフォーマットで記憶されるのではなくて、ある種の形態のデータ圧縮を受けて容量が減少し、これによって、このような走査されたＲＧＢ文書画像データを記憶するのに高い費用がかかることが回避される。
【０００４】
Ｌｅｍｐｅｌ−Ｚｉｖ（ＬＺ）又はＬｅｍｐｅｌ−Ｚｉｖ−Ｗｅｌｃｈ（ＬＺＷ）などの無損失のランレングス圧縮方式は、走査された画像データ又は、一般的に、階調度及び／又は自然映像データなどの滑らかに変化する低空間周波数を有する画像データに対しては特に良好に機能せず、一方、ＪＰＥＧなどの損失性の方法は、滑らかに変化する連続的な色調画像データに対してはかなり良好に機能する。しかしながら、損失性の方法は、一般的に、バイナリテキスト及び／又は線画の画像データに対しては、又は一般的に、例えばシャープなエッジや色遷移を含む高空間周波数画像データに対しては特に良好に機能しない。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ある画像中で色及びエッジの連続性の特徴を共有する領域に属する画素を識別することが可能なシステム及び方法を説明する。これらの領域は、最初に画像を上から下に走査し、同じグループに属する各走査線上にある画素を識別することによって、識別される。次に、ｙリンクフィールドが、１つの線上にある画素のグループを、他の線上にあって、色及びエッジの連続性の特徴が同じである画素のグループとリンクさせる。これらのグループ同士をリンクさせて二次元領域として、１つのグループとして処理することが可能となる。
【０００６】
画像中の領域を識別するこの方法は、ミックスト（複合）ラスターコンテンツ（ＭＲＣ）フォーマット画像データに応用可能である。ＭＲＣは、色及び／又はグレースケールの情報と混合したテキストを有する複合画像の画像データを処理するのに特に適した方法であり、この画像は２つ以上の平面にセグメント化される。これらの平面は、一般に、背景平面と前景平面と呼ばれる。セレクタ平面が生成されて、この複合画像中の各画素に対して、これら画像平面の内いずれが、最終的な出力画像を再構成するために用いるべき実際の画像データを含んでいるかを示す。画像データをこのように平面にセグメント化すると、画像の全体的な圧縮性が向上する傾向があるが、その理由は、データを互いに異なる平面に配置して、平面の各々をオリジナルの画像データより平滑かつ圧縮可能とすることが可能だからである。セグメント化することによって、また、それぞれ異なる平面に対してそれぞれ異なる圧縮方法を適用することが可能となる。このようにして、各平面上にあるデータのタイプに対して最も適切な圧縮技法を適用して、該平面のデータを圧縮することが可能となる。
【０００７】
残念ながら、ポータブル文書フォーマット（ＰＤＦ）などの一部の画像文書フォーマットでは、このようなオリジナルの文書の３層複合ラスターコンテンツの分解は、完全にはサポートされていない。その結果、このような画像文書フォーマットを用いて圧縮された複合ラスターコンテンツ画像データファイルとして記憶されている文書を印刷したり或いはレンダリングしようとすると、この文書は全くレンダリングできないか、又は、レンダリングすると好ましくないアーティファクトが含まれたりする。
【課題を解決するための手段】
【０００８】
本発明は、文書を、複数のバイナリ前景平面を有する複合ラスターコンテンツフォーマットで画像データに変換するシステム及び方法を提供する。この画像データの中で関連した特徴を１つ以上有する画素を、類似したエッジ連続性値を有する画素を囲む連続した閉曲線境界を有する「ブロブ」と呼ばれる領域に収集するシステム及び方法について説明する。この画像の１つの走査線に発生するブロブを識別する走査テーブルを入力として取り入れて、１つの走査線上に発生するこれらのブロブを前の走査線上で発生したブロブと接続するモジュールについて説明する。このモジュールはページの底部で開始し、頂部へと戻るよう動作するので、ボトムツートップ型モジュールと呼ばれる。次にこのボトムツートップ型モジュールはブロブのグローバルテーブルを生成する。このテーブルでは、画像データのページに存在する全てのブロブが一貫した識別番号で記述される。
【０００９】
ブロブのグローバルテーブルが生成されると下流の処理モジュールに出力され、処理モジュールによって、さまざまなブロブがその空間的関係と色類似性とにしたがって互いにクラスタ化される。これによって、これら領域のクラスタ各々を、前記複数のバイナリ前景平面の内の１つに位置させることが可能となる。特に、所与のバイナリ前景平面中に収集される各領域は、このバイナリ前景平面の色に十分類似した色を有し、出力画像中で条件を満たす色のレンダリングで、高品質画像を再生可能である。
【００１０】
本発明の請求項１に記載の発明は、画像データ中の画素の領域を識別する方法であって、ａ）色特徴の互いの相違が所定量未満である画像データから成る第１の線上の画素を含むブロブを識別することと、ｂ）前記ブロブを一時的ブロブ識別子と関連付けることと、ｃ）色特徴の互いの相違が所定量未満である前記画像データの隣の線上の画素を含む追加のブロブを識別することと、ｄ）前記追加のブロブが前記ブロブにリンクされると、前記追加のブロブを前記一時的ブロブ識別子と関連付けることと、を含むことを特徴とする。
【００１１】
本発明の請求項２に記載の発明は、画像データ中の画素の領域を識別する方法であって、色特徴の互いの相違が所定量未満である画像データから成る周辺の線上の画素を含むブロブを識別して、該ブロブを一時的ブロブ識別子と関連付けることと、前記周辺の線に隣接している次の隣接線から始めて、色特徴の互いの相違が所定量未満である画素を含む次のブロブを逐次的に識別することと、前記次のブロブが前記ブロブ又は前記ブロブにリンクされている先行の次のブロブのいずれかとリンクしている場合、前記次のブロブを前記一時的ブロブ識別子と、前記次のブロブのリンク情報に基づいて関連付けることと、新しい次の隣接線に隣接している次の隣接線の、色特徴の互いの相違が所定量未満である画素を含む次のブロブを逐次的に識別することを引続き行うことと、前記ブロブにリンクされているブロブを有しない線に到達するまで、次の隣接線の次のブロブを前記一時的ブロブ識別子と関連付けることを引続き行うことと、を含むことを特徴とする。
【００１２】
本発明の請求項３に記載の発明は、画像データ処理装置であって、ブロブプロセッサと、前記ブロブプロセッサに接続されるメモリであって、画像データの２つ以上の線ブロブ同士をリンクさせるリンク情報を記憶する、メモリと、を備え、前記ブロブプロセッサが、ある線の線ブロブと、該線ブロブと互いにリンクされている線ブロブであって、連続して隣接する線の線ブロブとを、１つのブロブにグループ化して、該１つのブロブに固有のブロブＩＤを割り当てることを特徴とする。
【００１３】
本発明の請求項４に記載の発明は、画像データ中の領域を識別する装置であって、周辺の線上の画素を該画素の色及びエッジの特徴にしたがってあるブロブに対して割り当て、次の隣接線上の画素を次のブロブに割り当て、前記次のブロブを前記ブロブに対してリンクさせるリンク情報を、前記次のブロブ及び前記ブロブの色特徴にしたがって提供して、前記次の隣接線に隣接する新しい次の隣接線上の新しい次のブロブを色特徴にしたがって逐次的に識別する手段と、前記新しい次のブロブが前の次の隣接線上の何れのブロブともリンクされていない場合、次の線上の前記新しい次のブロブを新しい一時的ブロブ識別子に対してリンクさせ、前記次のブロブを前のブロブにリンクさせ、前記前のブロブが前記ブロブにリンクされている場合、前記前のブロブを前記一時的ブロブ識別子に対してリンクさせ、前記次の隣接線上の前記次のブロブを、前記ブロブにリンクされているブロブを有しない線に到達するまで、前記一時的ブロブ識別子と関連付ける手段と、を備えることを特徴とする。
【発明を実施するための最良の形態】
【００１４】
本発明のシステム及び方法の様々な例示の実施形態を、図面を参照して詳細に説明する。
【００１５】
走査された及び／又は印刷されたカラー文書を自動的に処理して、オリジナルの文書コンテンツを正確に取込む高圧縮された小容量画像データファイルを生成するシステム及び方法の様々な例示的実施形態を詳細に説明する。文書中を走査して、所与の走査線上にあるデータを分析して、この画像のうち何れの画素同士を、類似した色及びエッジの特徴を有しているという理由でグループ化することが可能であるかを判定することによって、データファイルが生成される。次にこれらの走査線は、リンクフィールド中の情報にしたがってリンクされて、類似の色を持ち、閉曲線境界で画定された二次元の画素領域を生成する。次に、これらの領域すなわち「ブロブ」同士は、空間的にオーバラップする類似の色のエリアを結合することによって、クラスタ化される。次に、これらの結合されたエリア（クラスタ化された領域）は、複数のバイナリ前景層の内の一前景層中に置かれ、圧縮可能であり、例えば、ＰＤＦファイルとして出力される。
【００１６】
図１に、背景の連続した色調又はグレースケールの層（背景層）２１０とＮ個のバイナリ前景層とに分解された文書の画像データを示す。この例では、６個（Ｎ＝６）バイナリ前景層２２０〜２７０が存在する。この画像データは、６個の識別可能な色値に分離される低空間周波数の色データを含む。この６個の色値はその各々が、この６個の色の内の１色を含む空間領域２２０’〜２７０’を含む複数のバイナリ前景層２２０〜２７０の内の特定の１つと関連付けられている。領域２２０’〜２７０’の内の１つに含まれないデータは背景層２１０中に残る。各々がバイナリ前景層となるようにクラスタ化される空間領域２２０’〜２７０’を生成するシステムと方法を説明する。
【００１７】
入力画素は、前述の複数の前景平面の内の１つに割り当てるか又は背景平面に残すことができるだけである。したがって、この複数のバイナリ前景層２２０〜２７０の内のどの中にある画像データ部分も、その他の複数のバイナリ前景層２２０〜２７０の内のどの層中の他の画像データ部分ともオーバラップしない。その結果、バイナリ前景層２２０〜２７０はその各々を、順序やシーケンスを考慮することなく背景層２１０と個々に合成することが可能となる。複数のバイナリ前景層２２０〜２７０の全てが背景層２１０と合成されると、再構成された画像２８０が得られる。
【００１８】
各バイナリ画像平面に割り当てられることになっている領域２２０’〜２７０’にクラスタ化されるブロブを識別するシステムと方法を説明する。
【００１９】
図２に、走査された文書画像からＮ個のバイナリ前景層を生成する例示のシステムを示す。図２は、文書３００がスキャナ４００によって走査されて、画像データが、例えばＲＧＢ色空間中で生成され、また、この画像データがＮ層画像データ生成システム１０００に入力される様子を示している。このＮ層画像データ生成システム１０００によって生成されたＮ個の層は、次に、圧縮モジュール８００によって圧縮されて、例えば、ＰＤＦファイルとして出力される。
【００２０】
Ｎ層画像データ生成システム１０００中の第１のモジュールは、色変換モジュール５００である。この色変換モジュール５００は、ＲＧＢデータを、例えば、ＹＣＣ色空間に変換できる。公知なように、ＹＣＣ色空間は、輝度成分（Ｙ）と２つの彩度成分（ＣＣ）とを含んでいる。この彩度成分は、双方向でないまでも少なくとも１つの方向で２：１の比率でサブサンプリングされ得て、このため、彩度成分中には、輝度成分中の半分の数のデータポイントが存在する。ラボ（Ｌａｂ）などの他の色空間も用いることができる。
【００２１】
次に、ＹＣＣ色空間中の画像がブロブ識別モジュール６００に入力され、この画像中に顕れる領域すなわちブロブのリストが生成される。これらのブロブは、色とエッジとの特徴に基づいて識別される。ブロブとは、類似の色値を有する画素を囲む連続した境界を有する領域のことである。ブロブ識別モジュール６００は、ブロブＩＤを画像中の各画素に割り当てて、（もし存在すればであるが）どのブロブに対して画素が属するかを示す。ブロブに属さない画素は背景層に割り当てられる。各画素位置に対するブロブＩＤのマップとはブロブ識別（ブロブＩＤ）画像であり、ブロブ識別モジュール６００によって生成される。
【００２２】
ブロブ識別モジュール６００はまた、文書画像２８０中に見受けられる全てのブロブのリストであるブロブのグローバルテーブル（ＧＴＢ）を生成する。本書に記載するシステムと方法は、ブロブＩＤ画像とＧＴＢを生成するためのものである。ブロブＩＤ画像とＧＴＢを、ブロブ識別モジュール６００を参照して、例を挙げて以下でさらに説明する。
【００２３】
ブロブＩＤデータとＧＴＢはブロブクラスタ処理モジュール７００に入力される。このブロブクラスタ処理モジュール７００は、次に、ブロブをブロブのグローバルテーブル中に組織化して、類似の色を持ち、空間的にオーバラップするブロブを互いに関連付けてクラスタとする。ブロブクラスタ処理モジュール７００は、クラスタ化された領域をＮ個の前景平面の内の１つに対して、合成された領域の色値に基づいて割り当てる。
【００２４】
ブロブクラスタ処理モジュール７００は、バイナリ前景層と背景層との各々に対してバイナリデータを圧縮モジュール８００に出力する。この圧縮モジュール８００は、圧縮されるデータの特定のタイプに適当な圧縮ルーチンを用いてこのバイナリ前景層と背景層の各々を別々に圧縮して、前記バイナリ前景層と背景層とに対する圧縮済み画像データを生成する。次に、圧縮モジュール８００は、この圧縮されたバイナリ前景層と背景層を、ＰＤＦフォーマットなどの適切なフォーマットで下流のプロセスに出力する。
【００２５】
図３に、例示のブロブ識別モジュール６００のさらなる詳細を示す。ブロブ識別モジュールは、トップツーボトム型モジュール６１０とボトムツートップ型モジュール６２０とを含む。このトップツーボトム型モジュール６１０は、走査線上の各画素を、多くのコンテクスト画素（前後画素）と共に検査し、また、目的とする画素がどのブロブに属するかを識別する。次に、トップツーボトム型モジュール６１０は、各走査線に対し走査テーブルを出力し、これには、画像の特定の走査線の何れかに現れ得る、最大で２５５個のブロブ識別数又は他の都合の良い識別数が含まれる。トップツーボトムモジュール６１０によって識別されたブロブは１つの走査線内に含まれるので、この状況下ではこのブロブは一次元の「線形の」ブロブである。トップツーボトム型モジュール６１０はまたブロブＩＤ画像を生成するが、これは、画像中の走査済みの各画素に対して、走査テーブルにリストアップされていて、特定の画素が属するブロブの識別番号を割り当てるものである。トップツーボトム型モジュール６１０の動作と走査テーブルの生成は、本願と同日に出願され、その全体をここに参照して組み込む同時係属米国特許出願（代理人整理番号１１７５２１）に詳細に説明されている。
【００２６】
初期ブロブＩＤ画像の例を図５に示す。このブロブＩＤ画像は、画像中の各画素に対してブロブ識別子を有している。図５に示すブロブＩＤ画像は、おおよそ“Ａ”という文字の形状のブロブを有するが、その範囲とアイデンティティは、本発明のシステムと方法を用いて決定される。
【００２７】
図４に、ボトムツートップ型モジュール６２０のさらなる詳細を示す。ボトムツートップ型モジュール６２０は、ＣＰＵ６５５と、入／出力ポート６６０と、メモリ６６５と、走査テーブルトランスレータ６７０と、ブロブコンテンツ更新器６７５と、ブロブジェネレータのグローバルテーブル６８０とを含む。上記コンポーネント６５５〜６８０はバス６８５を介して互いに結合できる。ボトムツートップモジュール６２０はバスアーキテクチャ図を用いて図示されているが、特定用途向け集積回路（ＡＳＩＣ）を用いたりする他のタイプのハードウエア構成を用いてこれらコンポーネントの内の１つ以上を実施したり、又は、ＣＰＵ６５５中で実行されるコンピュータプログラムを記述して、ボトムツートップ型モジュールの全ての機能を実行したりするようにしてもよい。
【００２８】
ボトムツートップ型モジュール６２０は、初期ブロブＩＤ画像と、現行の走査線に対する現行の走査テーブルと、前の走査線に対する前の走査テーブルとを入／出力ポート６６０を介してトップツーボトム型モジュール６１０から入力し、そのデータをメモリ６６５に記憶する。このボトムツートップ型モジュールは、１つの走査線に対するデータと前の走査線前のデータとを同時に受信することができ、又は、画像全体のデータを受信して、そのデータをメモリ６６５に記憶することができる。
【００２９】
図５のブロブＩＤ画像中の各々の線は走査テーブルと関連しているが、このテーブルは、各走査線上で識別されたブロブに関連する情報を記憶している。「例」と印を付けられた線の走査テーブルを図６に示す。図５で「例」と印付けされた線は、互いに関連付けられている多くの画素を有している。この線の走査テーブルは、ブロブＩＤ画像中に特定されているように、ブロブ＃４に対して１つ、ブロブ＃３に対して１つ、ブロブ＃２に対して１つ、ブロブ＃１に対して１つで、合計４つの走査テーブルエントリを有している。（“０”とラベル付けされているブロブは、背景層と関連している。）このブロブに属する画素は隣接している必要はなく、実際、例の線では隣接していない。初期ブロブＩＤ画像中のブロブＩＤは、現行の走査テーブル中のブロブＩＤに関連している。
【００３０】
走査テーブルは、最大で２５５のエントリ又は他の都合の良い数を保持することが可能であり、ここで、各エントリが、２５５エントリの走査テーブルに対し、２バイトのメモリを使用している。走査テーブルエントリの例を図７に示す。この走査テーブルエントリは、ブロブＩＤ画像中で＃４として識別されるブロブに対応している。走査テーブルエントリの有する２バイトには、ｘリンクフィールドとｙリンクフィールドが含まれる。ｘリンクフィールドは各ブロブを、同じブロブに属する、同じ線上の画素とリンクさせる。このｘリンク接続は円形のリストとして維持され、そのため、他のどのブロブとも水平方向には接続されていないブロブは自分自身に接続される、すなわち、このリンクは自分自身を指している。ｙリンクフィールドは、現行の走査線上で識別されたブロブをその下の走査線上で前に識別されたブロブとリンクさせる。したがって、例の線のブロブ＃４に対する走査テーブルエントリは、同じ走査線上のブロブ＃４の第２の発生を指すｘリンクエントリと、ブロブ＃４をその下の走査線上のブロブ＃３にリンクするｙリンクエントリとを有している。
【００３１】
各走査エントリのサイズは２バイトであり、また、各走査テーブルは最大で２５５の有効なエントリを含む。したがって、各走査線に対する走査テーブルは、２５６エントリ＊２バイト＝５１２バイトのメモリ容量を必要とする。
【００３２】
ボトムツートップ型モジュール６２０は走査テーブルエントリを取得して、ブロブに別の一時的ＩＤを与えることによって、ブロブを垂直方向にリンクするが、同時に、このモジュールは、ブロブのコンテンツをアセンブルする。走査テーブルと同様に、一時的ＩＤは、最大で２５５の一時的ブロブＩＤを含むテーブルに記憶される。一時的ブロブＩＤテーブルの例を図６に示す。
【００３３】
一時的ブロブＩＤエントリの例を図９に示す。走査テーブルＩＤエントリと比較して、一時的ＩＤエントリは、この一時的ＩＤの二次元態様に関連する追加の情報を含んでいる。特に、一時的ＩＤエントリは、４つの追加フィールド、すなわち、一時的ブロブを取り囲む「境界付けボックス」のｘ範囲とｙ範囲であるｍｉｎ＿ｘ７３５、ｍａｘ＿ｘ７４０、ｍｉｎ＿ｙ７４５及びｍａｘ＿ｙ７５０を含んでいる。この境界付けボックスは、ブロブに割り当てられた画素の全てを完全に包み込む最小の矩形である。追加の画素がボトムツートップモジュールによって付加されるに連れて、境界付けボックスは連続的に更新されて、この追加の画素が付加された後の新しい境界が反映される。
【００３４】
走査テーブルエントリと同様に、一時的ブロブＩＤはブロブの色値に関する情報を維持できる。この情報は、例えば、色の和である和Ｙ（ｓｕｍ Ｙ）７５５、和Ｃｂ（ｓｕｍ Cb）７６０及び和Ｃｒ（ｓｕｍ Ｃｒ）７６５を含み得る。最終的には、走査テーブルエントリと同様に、一時的ブロブＩＤエントリは、画素カウント値７７０と分散データ７７５とを記憶する。一時的ブロブＩＤエントリもまた、ブロブＩＤ７８０を識別して、その後でブロブＩＤ７８０を割り当てて、ブロブを追跡する。
【００３５】
一時的ブロブＩＤエントリは各々が、次の値で初期化される。
（ｉ）    ｍａｘ＿ｘとｍａｘ＿ｙは−１に設定される（ｍａｘ位置はなし）。
（ｉｉ）  ｍｉｎ＿ｘは画像の幅＋１に設定される（ｍｉｎはなし）。
（ｉｉｉ）ｍｉｎ＿ｙは画像の高さ＋１に設定される（ｍｉｎはなし）。
カウント値、和Ｙ、和Ｃｂ及び和Ｃｒはすべてゼロに初期化される。ブロブＩＤはブロブＩＤスタックから逐次的順序で割り当てられる。
【００３６】
ボトムツートップモジュールは、最初に新しいブロブに遭遇すると、その新しいブロブに一時的ＩＤを割り当てる。この一時的ＩＤは、使用中の一時的ＩＤのリストを保持しているブロブＩＤスタックテーブルから取得される。このブロブＩＤスタックテーブルの構造を図８に示す。このブロブＩＤスタックテーブルは、最大で２５６の一時的ブロブＩＤエントリを保持することが可能である。例えば、第１のエントリなどの１つのエントリが、背景平面用に確保される。ブロブＩＤスタックテーブルの主要な目的は、一時的ブロブＩＤを再使用することである。１つのブロブは終了次第すぐに下流のプロセスに出力されて、このブロブと関連する一時的ＩＤは使用可能となり、ブロブＩＤスタックメカニズムを介して新しいブロブに対して再割り当て可能なものとなる。
【００３７】
ボトムツートップ型モジュール６２０が、ブロブが完了した、すなわち、連続する境界によって包み込まれ、これ以上追加の画素は付加されないものと判定すると、ボトムツートップ型モジュールは、一時的ブロブＩＤのコンテンツをブロブのグローバルテーブル（ＧＴＢ）に出力する。ボトムツートップ型モジュール６２０はまた、ブロブＩＤ画像を増加するように更新して、ローカル走査テーブル中で用いられた識別子ではなく新しいブロブ識別子を参照する。次に、この更新されたブロブＩＤ画像とＧＴＢは出力されて、ブロブクラスタ処理モジュール７００によってさらに処理される。
【００３８】
ボトムツートップ型モジュール６２０は、走査テーブルとブロブＩＤ入力とに対して実質的に次の４つのステップを実行する。
１）走査テーブルエントリを変換テーブル中の一時的ブロブＩＤに、下の線にある前の変換テーブルを用いて変換する。
２）１つ以上のエントリが、円状に自分自身を指してはいないターミナルｘリンク値を含んでいることが発見されたら、変換テーブルコンテンツ上の第２のパスを実行する。
３）ブロブＩＤ画像を一時的ブロブテーブルコンテンツに更新して、これらの一時的ブロブエントリと関連する現行の走査線上の追加の画素を反映する。
４）いずれかの閉じた一時的ブロブＩＤをＧＴＢにエクスポートして、閉じたブロブに割り当てられていたリソースを開放し（使用可能とし）、必要に応じて新しい一時的ブロブに対して割り当て可能なものとする。
【００３９】
ボトムツートップ型モジュール６２０内のデータの流れを図１０に示す。図１０に示すように、現行の線に対する走査テーブルエントリが走査テーブルトランスレータ６７０に入力される。この走査テーブルトランスレータ６７０は走査テーブルエントリを一時的ブロブＩＤに、下の線の前の変換テーブルを用いて変換する。ブロブＩＤ画像と画質向上色画像ＥＮＨとがブロブコンテンツ更新器６７５に入力され、ここで、現行の線上の全ての走査テーブルエントリに対する一時的ブロブテーブル情報とブロブＢＩＤ画像とが更新される。次に、ＧＴＢジェネレータ６８０が、いずれかのブロブを閉じることが可能であるかどうか判定し、もしあると判定されれば、ブロブ情報をＧＴＢに出力することによってそのブロブを閉じる。この閉じられたブロブの情報は現行のＧＴＢに添付され、また、現行の一時的ブロブＩＤは次の利用可能なＧＴＢエントリと逐次的順序で置き換えられる。これらのステップの各々を以下に詳細に説明する。
【００４０】
現行の走査テーブルをトップツーボトム型モジュール６１０から受信して、下の線の前の変換テーブルを留保すると、ボトムツートップ型モジュール６２０は、現行の走査テーブル中の各エントリを１〜２５５まで評価して、それが有効な（ゼロでない）ｘリンクフィールドを有しているかどうかチェックする。
【００４１】
この時点でボトムツートップ型モジュール６２０は、下の線の前の走査テーブルをすでに処理済みであるが、これはモジュールが上方に進行するからである。したがって、前の走査テーブルエントリはすでに一時的ブロブＩＤに変換済みであり、この同じＩＤが、垂直方向にリンクされていれば、現行の線に引継がれる。一番初めの走査線（画像の底部の線）には、リンク可能な前の走査線は存在しないため、この第１の走査線に対する全てのｙリンク値はゼロであり、また、第１の走査線上の有効なブロブエントリ各々に対して一時的な初期ブロブＩＤが与えられる。このプロセスによって、底部から上方に一度に一線ずつ処理が進むにつれて、垂直方向のｙリンク接続が「解かれて」、１つの線から次の線に対し一致した固有の一時的ブロブＩＤが再割り当てされる。
【００４２】
ボトムツートップ型モジュール６２０は、変換テーブルによる一時的ブロブＩＤの割り当て状況を維持する。ボトムツートップ型モジュール６２０は２つの変換テーブルを用いるが、一方は現行の線のための変換テーブルであり、他方は下の線からの前の変換テーブルを維持するための変換テーブルある。図１４に、この２つの変換テーブルの構造を示す。この２つの変換テーブルは線毎に交代する。現行の線の最後のところで、現行の変換テーブルは次の線に対する前の変換テーブルとなり、その下の線上にある変換テーブルは、もはや不必要であるので、次の線の変換テーブルのデータで上書きして破壊する。
【００４３】
図１４は、下の線に対する走査テーブル中の有効なブロブエントリ２７の１例を示しているが、このエントリは、現行の線の走査テーブル中の有効なブロブエントリ２１に垂直方向にリンクされている。その下の線がボトムツートップ型モジュール６２０によって処理されるに連れて、走査テーブルエントリ２７は変換されて、例えば、一時的ＩＤ３３に割り当てられた。現行の線のエントリ２１はその下の線の２７に垂直方向にリンクされているため、一時的ＩＤ３３はコピーされて、現行の線の変換テーブル中のエントリ２１に割り当てられる。これは、この２つの見かけ上は関連していない走査テーブルエントリが同じ一時的ブロブに属しており、したがって、同じ一時的ブロブＩＤ３３を割り当てられていることを示している。
【００４４】
ｙリンクフィールドを介して以前の走査線上のブロブに関連する後続の走査線はすべて、この以前の走査線上のブロブからの一時的ブロブＩＤを共有している。したがって、ボトムツートップ型モジュールの作用は、識別されたブロブ同士間の垂直方向の関連付けを確立して、本質的に一次元のブロブを走査テーブルからブロブの一時的テーブルにリストアップされている２次元ブロブに変換することである。
【００４５】
走査テーブル中の現行のブロブエントリは、ｘリンクフィールドがゼロでなければ有効であると考えられる。ゼロであれば、すなわち、ｘリンク＝０であれば、現行のブロブが背景平面にリンクされている（ｉｄ＝０）ことを示す。
【００４６】
有効なブロブエントリ毎に、ｙリンクフィールドを検査する。ｙリンクがゼロでなければ、現行のブロブは、その下の線の別のブロブに垂直方向にリンクされている。ｙリンクを辿ってその下の線の前の変換テーブルに至り、一時的ブロブＩＤコンテンツを取出して、現行の線の変換テーブルブロブエントリにコピーする。
【００４７】
しかしながら、その一方で、現行のブロブが前のどのブロブに対しても垂直方向のリンクを持たない（すなわち、ｙリンク＝０）場合、それは最初に遭遇する新しいブロブである。最初に、現行の走査テーブルエントリが現行の線上の他のいずれかの走査テーブルエントリに水平方向にリンクされているかどうかチェックする。他のどのブロブにも水平方向にリンクされていない有効なブロブは、円状のｘリンクリストによって含意されているように自分自身のブロブエントリを振り返って指すｘリンク値を有している。現行のブロブが他のブロブに水平方向にリンクされていると判定された場合、それに対応するブロブエントリは変換テーブル中でゼロに設定され、「ターミナルＸを有する」フラグがオンされて、この状況が発生したことを示す。その後のステップで、ボトムツートップ型モジュール６２０は、このような水平方向リンクされた変換テーブルブロブエントリをさらに検査して、それらに対して新しい一時的ブロブＩＤを割り当てるべきかどうか判定する。
【００４８】
現行のブロブが有効で、ゼロｙリンクを有し、また、円状に自分自身を振り返って指すＸリンク値を有する場合、それは、新たな有効なブロブに最初に遭遇したものと考えられる。次の利用可能な一時的ＩＤがそれに対してＩＤスタックから割り当てられて、現行の変換テーブルに挿入されて、現行の走査テーブルエントリがこれで、この新しい一時的ＩＤと関連付けられたことを示す。同時に、ＩＤスタックカウンタが１つだけ減少され、これで、次の利用可能な自由な一時的ＩＤを指すことになる。現行の一時的ＩＤは、以下に説明するように、ＧＴＢジェネレータ６８０によって使用可能とされるまで、使用中のままとされる。ボトムツートップ型モジュール６２０は、一時的ブロブＩＤを維持し、また、走査テーブルエントリを一時的ブロブに割り当て続けるに連れて一時的ブロブ情報を更新する。
【００４９】
最終的には、現行のブロブｘリンクフィールドがゼロであれば、背景平面にリンクされているものと考えられる。対応する変換テーブルエントリはゼロに設定される。
【００５０】
走査テーブル変換プロセスが第１のパスを走査テーブルエントリを介して完了して初期変換テーブルを作成した後は、「ターミナルＸを有する」フラグがオンされて、少なくとも１つのブロブが現行の線上の別のブロブに水平方向にリンクされているものと判定されたことが示されれば、第２のパスが実行される。この第２のパスにおいて、変換テーブル中にあって、前はゼロに設定されていたブロブエントリだけが検査される。現行の変換テーブル中のこのようなブロブエントリの各々に対して、ｘリンクとｙリンクの値が再度現行の走査テーブルから探索される。ｙリンク＝０であり、ｘリンクがゼロでなければ、上述したようにＩＤスタックから新しい一時的ＩＤが得られ、また、これが変換テーブル中の現行のエントリに割り当てられる。加えて、ｘリンクフィールドを辿って次に水平方向にリンクされているブロブエントリ（もしあれば）に至り、このブロブに対応する変換テーブルエントリもまた、同じ新しい一時的ＩＤ番号を割り当てられる。このプロセスはすべての水平方向リンクされたブロブにわたって繰り返され、ついには、一番初めの開始ブロブＩＤを振り返って指す次のｘリンク値にまで到達する。このプロセスによって、水平方向にリンクされたブロブの鎖全体に同じ新しい一時的ＩＤ番号が一貫して割り当てられることが保証される。
【００５１】
走査テーブルトランスレータ６７０が線１つ当たり最大で２つのパスでそのタスクを完了すると、現行の走査テーブル中の全ての有効なブロブは、変換テーブルエントリに有効な一時的ブロブＩＤ番号を有する。これらの値は一時的ブロブＩＤ番号を呼ばれるが、それは、このような値は、ブロブが、ＧＴＢジェネレータ６８０によって閉じられて、ＧＴＢにエクスポートされるまでしか用いられないからである。
【００５２】
図５に示す例に戻ると、この図に示す例示の線に対して、第４の走査テーブルエントリが図７に示されている。ｘリンクフィールドは有効（４．ｘｌｉｎｋ＞０）であり、その下の線上のブロブ３に対して垂直方向に接続されている。ｙリンクフィールドを下方に辿ってその下の線上の走査テーブルに至ると、３．ｙｌｉｎｋ＝１、すなわち、ブロブの第１の線（底部）上の一時的ブロブＩＤ＃１が走査テーブルブロブＩＤ＃３に垂直方向に接続されていることが分かる。１という新しいｙリンク値は走査テーブル中の現行のブロブＩＤ＃４の現行の変換テーブルエントリにコピーされ、そのため、これで、４．ｙｌｉｎｋ＝１（一時的ＩＤ）となる。この例での２つの走査テーブルブロブは垂直方向にリンクされるため、その下の線の変換テーブルからの一時的ブロブＩＤの割り当ては、現行の変換テーブルエントリ中にコピーされる。このプロセスを上方に拡張することによって、（最も底部の走査テーブルブロブに割り当てられた）ブロブを形成するこの画素グループと関連する第１の一時的ブロブＩＤは、上方に伝播して、垂直方向に接続されたブロブの全てに対して同一なものとなる。
【００５３】
図１１に、図５に示す例の場合の変換テーブルの前値と後値を示す。前値と後値を比較すれば分かるように、下の線の変換テーブル中に示されている下の線にあるのリンクと関連している一時的ブロブＩＤ（＃１）が現行の変換テーブルエントリとして挿入されるという効果がある。このプロセスは、上の線にある垂直方向に接続されている全てのブロブに対して繰り返され、これで、同じ一時的ＩＤをそれらの対応する変換テーブル中のそれらの全てに対して割り当てる。
【００５４】
したがって、ボトムツートップ型モジュール６２０のタスクは、変換テーブルエントリを用いて垂直方向又は水平方向のどちらかで一次元ブロブをリンクすることによって、トップツーボトム型モジュール６１０によって生成された本質的に一次元の走査テーブル情報から二次元ブロブを作成することである。この二次元ブロブはその各々が、ボトムツートップ型モジュール６２０によってアセンブルされる二次元ブロブの一時的リストである一時的ブロブＩＤによって識別される。まだ垂直方向にはリンクされていない走査線で新しいブロブに遭遇するたびに、この新しいブロブには新しい一時的ブロブＩＤが与えられる。新しいブロブが現行の線の他のブロブに水平方向にリンクされていれば、同じ新しい一時的ブロブＩＤが、この水平方向にリンクされているブロブ全てに対して一貫して割り当てられる。このＩＤは後続の走査線によって参照されるため、新しい画素は同じ一時的ブロブＩＤと関連付けられる。
【００５５】
ブロブコンテンツ更新器６７５のプロセスは、走査テーブルトランスレータ６７０が現行の線の処理を終了した後で開始される。ブロブコンテンツ更新器６７５は、各一時的ブロブＩＤに対して複数のフィールドを持つブロブ構造を維持する。各線の最後のところで、ブロブ更新器６７５は、各々のアクティブな一時的ブロブＩＤに対してブロブ構造を更新して、開いている各ＩＤと関連している現行の線からの新しい画素の情報を含むようにしている。現行の走査テーブル中の各々の有効なブロブエントリに対して、ブロブコンテンツ更新器６７５は変換テーブルをルックアップして、対応する一時的ブロブ番号を判定する。次に、ブロブコンテンツ更新器６７５は、ブロブテーブル中の特定の一時的ブロブＩＤエントリと関連しているさまざまなフィールドを更新する。
【００５６】
次に、ブロブコンテンツ更新器６７５は、ＢＩＤ画像を左から右に（ラスター順序で）、現行の走査線に対して一度に１画素ずつ走査する。各画素に対して、初期ＢＩＤ値は、現行の画素と関連するローカル走査テーブルブロブＩＤを示す。この走査テーブルＩＤエントリを（現行の走査線の場合は）現行の走査テーブル中でルックアップして、また、現行の変換テーブルエントリをルックアップすることによって、この走査テーブルＩＤエントリを辿って対応する一時的ブロブＩＤに至る。
【００５７】
この一時的ブロブＩＤに対応するブロブ構造エントリを更新して、現行の線のこの一時的ブロブＩＤと関連するあらゆる新しい画素を含むようにする。具体的には、一時的ブロブテーブルエントリ中のフィールドは次のように更新される。
（ｉ）    ｍｉｎ＿ｙは、（線番号＜ｍｉｎ＿ｙであれば）現行の線に設定される。
（ｉｉ）  ｍａｘ＿ｙは、（線番号＞ｍａｘ＿ｙであれば）現行の線に設定される。
（ｉｉｉ）ｍｉｎ＿ｘは、（画素＜ｍｉｎ＿ｘであれば）現行の画素に設定される。
（ｉｖ）  ｍａｘ＿ｘは、（画素＞ｍａｘ＿ｘであれば）現行の画素に設定される。
（ｖ）    ローカル走査テーブルブロブ中の画素の数がカウント値に加算される。
（ｖｉ）  ローカル走査テーブルブロブ中の分散がｖａｒに加算される。
（ｖｉｉ）ローカル走査テーブルブロブ中の色和が和Ｙ、和Ｃｂ、和Ｃｒにそれぞれ加算される。
【００５８】
これによって、このローカル走査テーブルブロブと関連する画素のコンテンツが、対応する一時的ブロブフィールドに効果的に加算され、また、現行の画素位置に対する一時的ブロブ境界付けボックスが更新される。
【００５９】
一時的ブロブテーブル中の各々の有効な（非背景の）ブロブエントリのＹＣＣ和フィールド（和Ｙ、和Ｃｂ、和Ｃｒ）がオーバフローするのを防止するため、これらのフィールドは、これらのどれか１つでも値が大きくなりすぎると再正規化される。これは、ＹＣＣ和フィールドを２で除算し、また、画素のカウント値を２で除算して、同じ比率を維持することなどによって遂行することが可能である。
【００６０】
最終的には、ブロブコンテンツ更新器６７５は、現行の画素のブロブＩＤを更新して、オリジナルのローカル走査テーブルブロブの代わりに（更新されたばかりの）一時的ブロブを指すようにする。このプロセスにより、ＢＩＤ画像を更新して、オリジナルの走査テーブルブロブセグメントの代わりに一時的ブロブＩＤ番号を参照するようになる。図１２は図４からのブロブＩＤ画像であり、ここで、文字「Ａ」の一部を構成する各走査線に関する一時的ブロブＩＤ情報にしたがって、文字「Ａ」を形成するブロブ中の全画素に対するブロブＩＤが、一時的ブロブＩＤテーブルからの一時的ブロブＩＤ＃１で置き換えられる。ｍｉｎ＿ｘ、ｍａｘ＿ｘ、ｍｉｎ＿ｙ及びｍａｘ＿ｙは、図１２に示すようにブロブ＃１を囲む境界付けボックスの座標である。ここでブロブ＃１を閉じることが可能であり、それは、次の上の線にはブロブ＃１と関連する画素がこれ以上含まれないからである。
【００６１】
一時的ブロブを「閉じる」ことが可能と判定されるまでは、すなわち、現行の走査線には一時的ブロブと関連する画素はもはや無いと判定されるまでは、一時的ブロブＩＤは有効とされる。一時的ブロブＩＤは、（１）ブロブが現行の走査線に届かない（ｍｉｎ＿ｙ＞現行の線）場合と、（２）ブロブが非ゼロカウント値（画素の合計数）を有する場合に、閉じることが可能である。加えて、現行の線が最後の走査線（ｌｉｎｅ＝０）である場合、それ以上処理すべき線は無いので、ブロブは閉じられる。ボトムツートップ型モジュール６２０はページの下から上に向かって作動するため、最後の走査線は画像の最初の線である。
【００６２】
上記の条件を満足するブロブの各々に対して、ＹＣＣ和をカウント値などで除算することによって、ＧＴＢジェネレータ６８０は一時的ブロブ情報を正規化し得る。ブロブエントリが最終的なＧＴＢにエクスポートされるに連れて、ブロブ情報コンテンツがＧＴＢに添付され、また、一時的ブロブＩＤが、ＧＴＢからの次の利用可能なＩＤで置き換えられる（最終的なブロブＩＤ割り当て）。その後、一時的ブロブエントリと関連情報とが一時的ブロブテーブルから除かれる。このエクスポートプロセスには、次のステップが含まれ得る。
１）３つの一時的ブロブ色和（和Ｙ／Ｃｂ／Ｃｒ）をブロブ画素カウント値で除算して、その結果を四捨五入して（繰り上げて）整数値にする。この演算によってブロブ色の平均が得られる。時間のかかる演算を回避するため、この除算は、ルックアップテーブルの乗算と右方向桁送り演算を用いて実施され得る。
２）ＧＴＢ中に更にブロブが入る余地があるかを確かめる。スペースがない場合、２倍の数のブロブを保持可能な新しいＧＴＢを割り当てて、古いテーブルコンテンツを新しいテーブルにコピーして、次に、古いテーブルを削除する。この時点以降はこの新しいＧＴＢを用いる。ＧＴＢのサイズがページのコンテンツに基づいて可変であるため、且つ、ブロブの数が前もって分からないため、このステップは必要であり得る。ステップ２によってＧＴＢが作成されると、ＧＴＢサイズが（この例では２の累乗で）動的に増大可能である。
３）ＧＴＢカウント値を１だけインクリメントすることによって、新しいブロブをＧＴＢに加える。
４）一時的ブロブエントリの全フィールドのコンテンツを、一時的ブロブテーブルから、最新のエントリで、ＧＴＢへコピーする。
【００６３】
閉じたブロブがＧＴＢにエクスポートされると、ＧＴＢ中の新しい連続ブロブＩＤ番号が割り当てられる。最大で２５６のエントリに制限されている一時的ブロブテーブルとは異なって、ＧＴＢ中のブロブ番号は無制限であり、複雑なページの場合では数千のブロブを包含できる。
【００６４】
現行の一時的ブロブのコンテンツがＧＴＢに入力された後、一時的ブロブは、一時的ブロブテーブルから除去され得る。この除去プロセスは、さまざまなブロブフィールドをデフォルト（初期）値にリセットすることを含み得る。初期化の後は、現行の一時的ブロブＩＤは一時的ブロブＩＤスタックへと戻される。これによって、一時的ブロブＩＤが最後のスタックエントリとして追加され、スタックカウンタは１だけインクリメントされる。その結果ブロブＩＤが再使用可能となる。新しいブロブが見つかる以前に、更にブロブＩＤが使用可能とされない場合、ブロブＩＤが、新しく見つけられたブロブに対して即座に再割り当てされる。
【００６５】
このようにして、関連する一時的ブロブエントリのコンテンツをコピーすることによって、閉じた一時的ブロブがＧＴＢに転送される。ＧＴＢは、ブロブ識別モジュール６００によって決定されたブロブの最終的なリストを、ＧＴＢ中の各ブロブに対する関連ブロブ情報と共に記憶する。
【００６６】
次いで、ＧＴＢ及びブロブＩＤ画像ＢＩＤはブロブクラスタ処理モジュール７００に使用されて、ＧＴＢ中のブロブが色類似性と空間的オーバラップとに従ってクラスタ化される。次にこれらクラスタはバイナリ前景面に割り当てられ、圧縮モジュール８００に出力され、ラッピングされてＰＤＦとなりさらに操作される。
【００６７】
上述ではハードウエア実施例を参照して説明したが、ブロブクラスタ化プロセスは、マイクロプロセッサ上で実行されるソフトウエアとしても実施可能である。この場合本方法の各ステップは、適切にプログラミングされたマイクロプロセッサ又はハードウエア及びソフトウエアの組み合わせによって実行される。
【００６８】
図１３は、線走査デバイス中で識別されたブロブ同士をリンクさせる例示の方法を概括するフローチャートである。本方法はステップＳ１００から開始し、最初の又は次の走査線が選択される。ステップＳ２００に進み、走査テーブルが変換される。次にステップＳ３００に進み、「ターミナルＸを有する」フラグが１に設定されているかどうか判定される。１に設定されていれば、ステップＳ４００に進み、水平方向にリンクされている全てのブロブに新しいＩＤが割り当てられる。１に設定されていなければ、ステップＳ５００に進み、Ｘリンクがゼロより大きいかどうか判定する。ゼロより大きければ、ステップＳ６００に進む。ステップＳ６００では、走査テーブルのｙリンクフィールドを読み出して、前の線まで辿る。ステップＳ７００に進み、底部の線との間にある線のｙリンクを辿って底部の線まで至り、ここから一時的ブロブＩＤを読み出す。ステップＳ８００に進み、走査テーブルブロブＩＤの代わりに、一時的ブロブＩＤで、ブロブＩＤ画像を置き換える。ステップＳ９００に進み、一時的ブロブＩＤエントリを更新して、現行の走査線からブロブに付加された追加の画素を反映するようにする。ステップ１０００で、一時的ブロブテーブルを評価して、いずれかのブロブを閉じることが可能であるかどうかチェックする。可能であれば、ステップＳ１１００で、一時的ブロブＩＤエントリは、色和を画素カウント値で除算することによって正規化される。続いて、ステップＳ１２００で、一時的ブロブエントリがＧＴＢにコピーされる。ステップＳ１３００で、一時的ブロブＩＤは初期化されて、一時的ブロブＩＤテーブルに戻されて、さらに使用される。続いて、ステップＳ１４００で、現在の走査線が最後の走査線であるかどうか判定する。最後の走査線でなければ、ステップＳ１００に戻る。最後の走査線であれば、処理を終了する。
【００６９】
図１５は、図１３のステップＳ２００のさらなる詳細を概括するフローチャートである。処理はステップＳ２１０から始まり、「ターミナルＸを有する」フラグがゼロに設定される。次にステップＳ２１５に進み、走査テーブル中の次のブロブエントリが選択される。ステップＳ２２０で、ｘリンクがゼロに等しいかどうか判定される。ｘリンクがゼロであれば、ステップＳ２４０に進み、現在の変換テーブルがゼロに設定される。ｘリンクがゼロでなければ、ステップＳ２２５で、ｙリンクがゼロに等しいかどうか判定される。ｙリンクがゼロでなければ、その下の線の変換テーブルからの現行のエントリがｙリンクフィールド中にコピーされる。ステップＳ２２５でｙリンクがゼロに等しければ、ステップＳ２３０でｘリンクが現行のブロブエントリに等しいかどうか判定される。ｘリンクが現行のブロブエントリでなければ、ステップＳ２５０に進み、現行の変換テーブルがゼロに設定されて、「ターミナルＸを有する」フラグが１に設定される。ステップＳ２３０でｘリンクが現行のブロブテーブルエントリに等しければ、ステップＳ２３５で新しいＩＤが割り当てられる。ステップＳ２５５に進み、このエントリが走査テーブル中の最後のブロブエントリであるかどうか判定される。最後のブロブエントリでなければ、ステップＳ２１５に戻る。最後のブロブエントリであれば、ステップＳ２６０で処理が終了する。
【００７０】
図１６は、図１３のステップＳ１００のさらなる詳細を概括するフローチャートである。処理はステップＳ１１０から始まり、次の走査テーブルエントリが選択される。ステップＳ１１５に進み、ｘリンクとｙリンクが走査テーブル中でルックアップされる。ステップＳ１２０で、ｘリンクがゼロに等しいかどうか判定される。等しくなければ、ステップＳ１２５に進み、ｙリンクがゼロに等しいかどうか判定される。等しければ、ステップＳ１３０に進み、変換テーブルエントリがゼロに等しいかどうか判定される。等しければ、新しいＩＤがＩＤスタックから割り当てられる。次に、ステップＳ１４０に進み、ｘリンクを辿って次のブロブエントリに至る。ステップＳ１４５で、上記と同じ新しいＩＤがこのブロブエントリに割り当てられる。ステップＳ１５０で、最後のｘリンクが評価されたかどうか判定される。最後のｘリンクが評価されたのでなければ、ステップＳ１４０にジャンプし、ｘリンクを辿って次のブロブエントリに至る。最後のｘリンクが評価されたのであれば、ステップＳ１５５に進み、最後の走査テーブルエントリが評価されたかどうか判定する。最後の走査テーブルエントリが評価されたのでなければ、ステップＳ１１０にジャンプし、次の走査テーブルエントリが選択される。最後の走査テーブルエントリが評価されていれば、ステップＳ１６０で処理は終了する。
【００７１】
本発明をさまざまな例示の実施形態に関連して説明したが、これらの実施形態は制限的なものとみなすべきではなく、説明するためのものとみなすべきである。さまざまな修正例、代替例等が、本発明の精神と範囲内で可能である。
【図面の簡単な説明】
【００７２】
【図１】複数のバイナリ前景画像面と背景画像面とに分解された例示の文書画像を示す図である。
【図２】ブロブ識別モジュールが動作可能な１つの例示のシステムを示す図である。
【図３】ブロブ識別モジュールの例示の実施形態をごく詳細に示す図である。
【図４】ボトムツートップ型モジュールの例示の実施形態をごく詳細に示す図である。
【図５】例示のブロブＩＤ画像を示す図であり、表示された領域が走査テーブルに関連している。
【図６】例示の走査テーブル構造を示す画像である。
【図７】例示の走査テーブルエントリを示す図である。
【図８】例示の一時的ブロブテーブルＩＤスタック割り当て構造を示す図である。
【図９】例示の一時的ブロブテーブルエントリを示す図である。
【図１０】図５に示すボトムツートップモジュールの例示のデータの流れ図である。
【図１１】走査テーブルエントリが垂直方向にリンクされる方法を示す図である。
【図１２】例示のブロブＩＤ画像を示す図であり、表示された領域が一時的ブロブＩＤに関連している。
【図１３】ブロブのグローバルテーブルとブロブＩＤ画像とを生成する１つの例示の方法を概括するフローチャートである。
【図１４】２つの変換テーブルの構造を示す図である。
【図１５】図１３の走査テーブルを変換するステップのさらなる詳細を概括するフローチャートである。
【図１６】図１３の次の走査テーブルを選択するステップのさらなる詳細を概括するフローチャートである。
【図１】
2005228331.tif 000003
【図２】
2005228331.tif 000004
【図３】
2005228331.tif 000005
【図４】
2005228331.tif 000006
【図５】
2005228331.tif 000007
【図６】
2005228331.tif 000008
【図７】
2005228331.tif 000009
【図８】
2005228331.tif 000010
【図９】
2005228331.tif 000011
【図１０】
2005228331.tif 000012
【図１１】
2005228331.tif 000013
【図１２】
2005228331.tif 000014
【図１３】
2005228331.tif 000015
【図１４】
2005228331.tif 000016
【図１５】
2005228331.tif 000017
【図１６】
2005228331.tif 000018