(57)【要約】  カラー文書のコンパクトな表現を自動的に生成する方法（１００）、装置及びコンピュータ可読媒体が開示される。方法において、カラー文書ページのデジタル画像は、１パスのブロックラスタ順に連結成分にセグメント化される（１１０）。ページのデジタル画像は、ページ全体のコンパクトな連結成分統計値に基づくレイアウト解析（１２０）を使用して前景画像及び背景画像に区分される。前景画像の少なくとも一部が背景画像を隠蔽する場合に、背景画像の少なくとも一部は、１パスのブロックラスタ順に修復される（５２０）。前景画像及び背景画像は、コンパクトな文書を形成するために組み合わされる（１３０）。複数の画素を含むデジタル画像をセイグメント化する方法、装置及びコンピュータ可読媒体が更に開示される。
2008524728.tif 000002
【特許請求の範囲】
【請求項１】
複数の画素を含むデジタル画像をセグメント化する方法であって、
前記デジタル画像から複数の画素のブロックを生成するステップと、
１パスで前記画素のブロックを用いて、各ブロックに対して少なくとも１つの連結成分を作成するステップとを備え、前記作成するステップは、
各々が空間的に連結しかつセマンティカリーに関連する画素のグループを含む少なくとも１つの連結成分に、画素のブロックをセグメント化するステップと、
前記ブロックの少なくとも１つの連結成分を、先に処理された少なくとも１つの他のブロックからセグメント化された少なくとも１つの連結成分と、マージするステップと、
前記ブロックの前記連結成分の前記画像における配置をコンパクトな形式で格納するステップと、
備えることを特徴とする方法。
【請求項２】
前記セマンティカリーに関連する画素は、同様の色を有する画素を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記生成するステップは、
各々が予め定められた数の画素の連続的な線を含む複数のバンドに、前記デジタル画像を配置するステップと、
前記バンドを１つずつバッファリングし、処理するステップとを含み、当該処理するステップは、
現在のバンドを複数の画素のブロックに配置するステップと、
前記作成するステップに対して前記現在のバンドの前記ブロックを１つずつバッファリングし、処理するステップとを含み、当該配置するステップと、当該バッファリングし、処理するステップとの処理は現在バッファリングされている各バンドに対して実行されることを特徴とする請求項１に記載の方法。
【請求項４】
前記格納するステップは、Ｍ−１個の２値ビットマップを格納するステップを含み、Ｍ個の連結成分はブロック内に存在し、Ｍは整数であることを特徴とする請求項１に記載の方法。
【請求項５】
前記格納するステップは、指標マップを格納するステップを含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記セグメント化するステップは、
各ブロックに対していくつかの代表色を推定するステップと、
前記代表色に対して各ブロックを量子化するステップと、
各量子化ブロックから連結成分を形成するステップと、を含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記セグメント化するステップは、形成される前記連結成分のサブセットをマージするステップを更に含むことを特徴とする請求項６に記載の方法。
【請求項８】
前記マージするステップは、前記連結成分の統計値を収集するステップを含むことを特徴とする請求項７に記載の方法。
【請求項９】
ノイズと考えられる前記形成された連結成分を除去するステップを更に含むことを特徴とする請求項８に記載の方法。
【請求項１０】
前記ノイズは予め定められた閾値を下回る画素カウント及び予め定められた他の閾値を上回る境界線長さ対画素カウント比を有する連結成分を含むことを特徴とする請求項９に記載の方法。
【請求項１１】
前記統計値は、バウンディングボックス、画素カウント、境界線長さ及び平均色のうち、少なくとも１つを含むことを特徴とする請求項８に記載の方法。
【請求項１２】
前記マージするステップは、
ブロックの連結成分を、左上にあるブロックの連結成分とマージするステップと、
前記マージした連結成分の前記統計値を更新するステップと、を備えることを特徴とする請求項８に記載の方法。
【請求項１３】
前記統計値は、バウンディングボックス、画素カウント、塗りつぶし率及び平均色のうち、少なくとも１つを含むことを特徴とする請求項１２に記載の方法。
【請求項１４】
前記推定するステップは、
各ブロックの画素のＹＵＶデータに基づいて複数の色のビンに関連するヒストグラムを形成するステップと、
ヒストグラム統計値に基づいて各ブロックを分類するステップと、
前記ブロックの分類に基づいて前記代表色を形成するためにビンの色をマージするステップと、を備えることを特徴とする請求項６に記載の方法。
【請求項１５】
１パスで各画素に対する指標マップを形成するステップを更に備えることを特徴とする請求項１４に記載の方法。
【請求項１６】
前記量子化するステップは、
空でないビンを代表色に量子化するステップと、
前記代表色に対してビンマッピングを作成するステップと、
前記ビンマッピングを使用して前記指標マップを前記代表色に再マッピングするステップと、を備えることを特徴とする請求項１５に記載の方法。
【請求項１７】
前記形成するステップは、
Ｙ値に基づいて輝度バンドを決定するステップと、
Ｕ値及びＶ値に基づいてカラーコラムを決定するステップと、
前記マップされたビンに前記画素の色を累積するステップと、
前記マップされたビンの前記画素カウントを増分するステップと、を備えることを特徴とする請求項１４に記載の方法。
【請求項１８】
輝度バンドを決定する前記ステップは、輝度バンドアンチエイリアシングを更に含むことを特徴とする請求項１７に記載の方法。
【請求項１９】
前記カラーコラムを決定することは、カラーコラムアンチエイリアシングを更に含むことを特徴とする請求項１７に記載の方法。
【請求項２０】
前記マージするステップは、
共通の境界線に沿う現在の連結成分に接触する連結成分のリストを検索するステップと、
マージするのに最も適した候補を決定するステップとを備え、当該検索するステップと、当該決定するステップとの処理は、左上の境界線に接触する現在のブロックの各連結成分に対して実行されることを特徴とする請求項１２に記載の方法。
【請求項２１】
請求項１乃至２０のいずれか１項に記載の方法に従って、複数の画素を含むデジタル画像をセグメント化するプロセッサと、メモリとを備えることを特徴とする装置。
【請求項２２】
請求項１乃至２０のいずれか１項に記載の方法に従って、複数の画素を含むデジタル画像をセグメント化するためのコンピュータプログラムを記録したことを特徴とするコンピュータ可読媒体。
【請求項２３】
カラー文書のコンパクトな表現を自動的に生成する方法であって、
１パスのブロックラスタ順にカラー文書ページのデジタル画像を連結成分にセグメント化するステップと、
前記ページ全体のコンパクトな連結成分統計値に基づくレイアウト解析を使用して、前記ページの前記デジタル画像を前景画像及び背景画像に区分するステップと、
前記前景画像の少なくとも一部が前記背景画像を隠蔽する場合に、前記背景画像の少なくとも一部を１パスのブロックラスタ順に修復するステップと、
コンパクトな文書を形成するために、前記前景画像及び前記背景画像を格納するステップと、
を備えることを特徴とする方法。
【請求項２４】
前記背景画像をダウンサンプリングするステップを更に備えることを特徴とする請求項２３に記載の方法。
【請求項２５】
前記背景画像を圧縮するステップを更に備えることを特徴とする請求項２３または２４に記載の方法。
【請求項２６】
前記圧縮ステップは、不可逆的圧縮するステップを含むことを特徴とする請求項２５に記載の方法。
【請求項２７】
前記不可逆的に圧縮された背景画像を圧縮するための異なるステップを更に含むことを特徴とする請求項２６記載の方法。
【請求項２８】
請求項２３乃至２７のいずれか１項に記載の方法に従って、カラー文書のコンパクトな表現を自動的に生成するプロセッサと、メモリとを備えることを特徴とする装置。
【請求項２９】
請求項２３乃至２７のいずれか１項に記載の方法に従って、カラー文書のコンパクトな表現を自動的に生成するためのコンピュータプログラムを記録したことを特徴とするコンピュータ可読媒体。
【請求項３０】
複数の画素を含むデジタル画像を解析する方法であって、
前記デジタル画像をオブジェクトにセグメント化するステップであり、前記セグメント化が３つ以上のラベルにより表現されるステップと、
各オブジェクトに対してプロパティのセットを提供するステップと、
前記オブジェクトのサブセットに対して、境界線を共有する隣接するオブジェクト間に親子関係が存在するか判定するために包含の尺度を使用するステップと、
オブジェクトプロパティに基づいて、親を共有するオブジェクトのグループを形成するステップと、
プロパティのセット及びグループの形成に従ってオブジェクトを分類するステップと、を備えることを特徴とする方法。
【請求項３１】
前記包含は、各オブジェクトの周囲のバウンディングボックス及びオブジェクト間の接触関係を示す情報を用いて判定されることを特徴とする請求項３０に記載の方法。
【請求項３２】
２つのオブジェクトが境界線で接触し且つオブジェクトのバウンディングボックスが他のオブジェクトのバウンディングボックスを完全に含む場合、前記オブジェクトは前記他のオブジェクトを含むことを特徴とする請求項３１に記載の方法。
【請求項３３】
前記グループを形成するステップは、
共通の親の子リストから子オブジェクトの対を検索するステップと、
前記オブジェクトプロパティを使用して、各対がグループ化されるべきかを判定するステップと、を備えることを特徴とする請求項３０に記載の方法。
【請求項３４】
同一の親を有する子オブジェクトのリストのうち隣接するオブジェクトのみがグループ化に対して検索されることを特徴とする請求項３３に記載の方法。
【請求項３５】
オブジェクトは、バウンディングボックス及び色情報に基づいてグループ化されることを特徴とする請求項３３に記載の方法。
【請求項３６】
オブジェクトのグループは、前記グループ内の前記オブジェクトのテキストと同様の品質のテストに従ってテキストとして分類されることを特徴とする請求項３０に記載の方法。
【請求項３７】
テキストと同様の品質の前記テストは、
前記オブジェクトの配置を表す各オブジェクトに対する単一の値を識別するステップと、
前記値のヒストグラムを形成するステップと、
前記ヒストグラムのプロパティによりテキストを識別するステップと、を含むことを特徴とする請求項３６に記載の方法。
【請求項３８】
親子プロパティに関わらず、プロパティに従ってオブジェクトのテキスト分類されたグループに更なるオブジェクトを追加するステップを更に含むことを特徴とする請求項３０に記載の方法。
【請求項３９】
文書ページの複数の画素を含むデジタル画像を解析する方法であって、
前記画像に基づいてオブジェクトを形成するために前記デジタル画像をセグメント化するステップと、
前記オブジェクトのグループを形成するステップと、
前記オブジェクトの前記グループの各々がテキストを表すか判定するステップとを備え、前記判定するステップは、
前記ページ上の前記オブジェクトの配置に依存して、各オブジェクトに対する単一の値を識別するステップと、
前記値のヒストグラムを形成するステップと、
前記ヒストグラムのプロパティによりテキストを識別するステップと、を含むことを特徴とする方法。
【請求項４０】
前記ヒストグラムの前記プロパティは、指定された数より多いオブジェクトを有する前記ヒストグラムのビンのオブジェクトの総数であることを特徴とする請求項３９に記載の方法。
【請求項４１】
前記プロパティは、前記ヒストグラムのカウントの２乗和であることを特徴とする請求項３９に記載の方法。
【請求項４２】
前記オブジェクトの前記配置を表す各オブジェクトに対する前記単一の値は、前記オブジェクトのバウンディングボックスのエッジであることを特徴とする請求項３９に記載の方法。
【請求項４３】
請求項３９乃至４２のいずれか１項に記載の方法に従って、複数の画素を含むデジタル画像を解析するプロセッサと、メモリと、を備えることを特徴とする装置。
【請求項４４】
請求項３９乃至４２のいずれか１項に記載の方法に従って、複数の画素を含むデジタル画像を解析するためのコンピュータプログラムを記録したことを特徴とするコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にデジタル画像処理の分野に関し、特に、デジタル画像の高水準記述の生成に関する。
【背景技術】
【０００２】
画像のセグメント化は、セマンティカリー（semantically）に又は視覚的にコヒーレントな領域に画像を分割又は分離する処理である。各領域は、同様の属性を有する連結画素のグループである。セグメント化に対する基本的な属性は、白黒画像の場合は輝度振幅であり、カラー画像の場合には色成分である。
【０００３】
増加し続ける計算処理能力と組み合わされた走査技術の普及は、文書解析システムの領域において多くの進歩をもたらした。それらシステムは、多くの場合はＯＣＲ技術により使用され、スキャン済み文書からセマンティック情報を抽出してもよい。また、そのようなシステムは、ページの各部分の内容に応じて適切な圧縮方法を選択的に使用することにより文書画像の圧縮を向上するために使用される。向上した文書圧縮は、アーカイビング及び電子配信等の応用例に適する。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
セグメント化は、文書画像解析に対する１つの処理段階であり、領域分類及びレイアウト解析等のより高いレベルの処理が実行される前に、低レベルの画素が基本オブジェクトにセグメント化される必要がある。レイアウト解析は、文書レイアウトに関するいくつかの予め定められた規則に従って、基本オブジェクトを周知のオブジェクトタイプに分類する。通常、レイアウト解析は、元のスキャン済み画像データを解析せず、ページのセグメント化から得られるブロブ又は連結成分等の別のデータセットを処理する。レイアウト解析は、個別のオブジェクトプロパティに加えてオブジェクトグループ化を使用して、分類を判定してもよい。
【０００５】
画像のセグメント化に対するいくつかの既存の方法を以下に説明する。
【０００６】
閾値処理は、セグメント化に対する最も単純な方法であり、処理される画像が２レベル（例えば、白黒の文書画像）である場合は高速で効果的である。しかし、画像が複数の輝度又は色レベルの領域を有する複雑なものである場合、それら領域の一部は２値化される間に失われる可能性がある。より高度な閾値処理技術は、適応性のある閾値処理又は多重レベルの閾値処理を採用する。その処理において、閾値の推定及び２値化はローカルレベルで実行される。しかし、それら方法は、オブジェクトを正確にセグメント化できない可能性がある。
【０００７】
ｋ平均法及びベクトル量子化等のクラスタリングを使用する方法は、セグメント化の適切な結果を生成するが、複数パスを必要とする反復アルゴリズムである。従って、そのような方法は遅く且つ実現するのが困難である。
【０００８】
分割／マージによる画像のセグメント化技術は、４分木データ表現に基づく。４文木データ表現において、元の画像セグメントの属性が一様でない場合、正方形の画像セグメントは４つの領域に分割される。４つの隣接する正方形が一様であることが分かった場合、それら正方形は、４つの隣接する正方形から構成される単一の正方形によりマージされる。通常、分割／マージ処理はフル画像レベルで開始する。従って、処理は、ページ全体がバッファリングされた後のみで開始でき、大きなメモリ帯域幅を必要とする。更にこの方法は、多くの計算を必要とする傾向がある。
【０００９】
領域成長は、画像のセイグメント化に対する周知の方法であり、概念上最も単純な方法の１つである。同様の属性を有する隣接する画素はグループ化され、セグメント領域を形成する。しかし、実際には、受け入れられる結果を達成するために、相当複雑な制約を成長パターンに加える必要がある。既存の領域成長法は、方法が最初のシードの場所に対して偏る傾向があるといういくつかの望ましくない結果を有することがある。シードの異なる選択により、異なるセグメント化の結果が得られてもよく、シード点がエッジに位置する場合には問題が発生することがある。
【００１０】
増加し続ける計算処理能力と組み合わされた走査技術の普及は、文書解析システムの領域において多くの進歩をもたらした。それらシステムは、多くの場合はＯＣＲ技術により使用され、スキャン済み文書からセマンティック情報を抽出してもよい。この技術は、自動形式読出し等の益々多くの応用例において使用され、ページの各部分の内容に応じて適切な圧縮方法を選択的に使用することにより文書の圧縮を向上するために使用される。向上した文書圧縮は、アーカイビング及び電子配信等の応用例に適する。
【００１１】
いくつかの文書解析システムは、レイアウト解析を実行し、内容によって分類された複数の領域に文書を分ける。通常、レイアウト解析は、元のスキャン済み画像データを解析せず、ページのセグメント化から得られるブロブ又は連結成分等の別のデータセットを処理する。レイアウト解析は、個別のオブジェクトプロパティに加えてオブジェクトグループ化を使用して、それらの分類を判定してもよい。
【００１２】
一般に、ページの２値セグメント化は、レイアウト解析に対してデータを生成するために実行され、これは、単純に元の画像に対して閾値処理を行なうことにより得られてもよい。この２値セグメント化の１つの利点は、セグメント化されたオブジェクトがレイアウト解析を助長する単純な包含階層内に置かれることである。しかし、多くの複雑なカラー文書のレイアウトは、２値画像により完全に表現されない。２値画像変換に対して色固有の情報内容が減少すると、重要な特徴が劣化し、文書の詳細な構造が損失する恐れがある。
【００１３】
従って、ページ文書解析のカラーセグメント化は、ページの内容の保存に関しては利点を有するが、それと共に更なる複雑性をもたらす。第１に、セグメント化解析自体が更に複雑になり、処理条件が増加する。第２に、セグメント化されたページオブジェクトの解析は、オブジェクトが包含階層を形成しないために複雑化される。これにより、レイアウト解析の正確度及び効率は制限される。
【００１４】
更に、文書レイアウト解析システムは、文書の領域のテキスト分類を検証する技術を採用してもよい。それら方法のうちのいくつかは、画素の合計、シャドウイング及び投影プロファイルのヒストグラム解析を使用する。ロバストな統計値をそのような方法に適用するのが困難であり、且つ単一の線又は多くの線であるテキスト、並びに文書中のテキストの位置合わせ及び文字集合が未知であるテキストに対して調整を行なうのが困難であるため、それら方法は信頼できないことが多い。
【課題を解決するための手段】
【００１５】
本発明の第１の面によると、複数の画素を含むデジタル画像をセグメント化する方法が提供される。方法は、デジタル画像から複数の画素のブロックを生成するステップと、１パスで画素のブロックを使用して、各ブロックに対して少なくとも１つの連結成分を作成するステップとを含む。作成するステップは、各々が空間的に連結し、かつセマンティカリー（semantically）に関連する画素のグループを含む少なくとも１つの連結成分に画素のブロックをセグメント化するステップと、ブロックの少なくとも１つの連結成分を先に処理された少なくとも１つの他のブロックからセグメント化された少なくとも１つの連結成分とマージするステップと、ブロックの連結成分の画像における配置をコンパクトな形式で格納するステップと、を備える。
【００１６】
セマンティカリー（semantically）に関連する画素は、同様の色を有する画素を含んでもよい。
【００１７】
生成するステップは、各々が所定の数の画素の連続的な線を含む複数のバンドにデジタル画像を配置するステップと、バンドを１つずつバッファリングし、処理するステップとを含んでもよい。処理ステップは、現在のバンドを複数の画素のブロックに配置するステップと、作成するステップに対して現在のバンドのブロックを１つずつバッファリング及び処理するステップとを含み、それらステップは現在バッファリングされている各バンドに対して実行される。
【００１８】
格納するステップは、Ｍ−１個の２値ビットマップを格納することを含んでもよい。ここで、Ｍ個の連結成分はブロック内に存在し、Ｍは整数である。
【００１９】
格納するステップは、指標マップを格納することを含んでもよい。
【００２０】
セグメント化するステップは、各ブロックに対していくつかの代表色を推定することと、代表色に対して各ブロックを量子化することと、各量子化ブロックから連結成分を形成することとを含んでもよい。セグメント化するステップは、形成される連結成分のサブセットをマージすることを更に含んでもよい。マージするステップは、連結成分の統計値を収集することを含んでもよい。統計値は、バウンディングボックス、画素カウント、境界線長さ及び平均色のうち任意の１つ以上を含んでもよい。方法は、ノイズと考えられる形成された連結成分を除去するステップを更に含んでもよい。ノイズは、予め定められた閾値を下回る画素カウント及び予め定められた他の閾値を上回る境界線長さ対画素カウント比を有する連結成分を含んでもよい。マージするステップは、ブロックの連結成分を左上にあるブロックの連結成分とマージすることと、マージした連結成分の統計値を更新することとを含んでもよい。統計値は、バウンディングボックス、画素カウント、塗りつぶし率及び平均色のうち任意の１つ以上を含んでもよい。
【００２１】
推定するステップは、各ブロックの画素のＹＵＶデータに基づいて複数の色のビンに関連するヒストグラムを形成することと、ヒストグラム統計値に基づいて各ブロックを分類することと、ブロックの分類に基づいて代表色を形成するためにビンの色をマージすることとを含んでもよい。方法は、１パスで各画素に対する指標マップを形成するステップを更に含んでもよい。量子化するステップは、空でないビンを代表色に量子化することと、代表色に対してビンマッピングを作成することと、ビンマッピングを使用して指標マップを代表色に再マッピングすることとを含んでもよい。形成するステップは、Ｙ値に基づいて輝度バンドを決定することと、Ｕ値及びＶ値に基づいてカラーコラムを決定することと、マップされたビンに画素の色を累積することと、マップされたビンの画素カウントを増分することとを含んでもよい。輝度バンドを決定するステップは、輝度バンドアンチエイリアシング（luminance-band anti-aliasing）を更に含んでもよい。カラーコラムを決定するステップは、カラーコラムアンチエイリアシングを更に含んでもよい。
【００２２】
マージするステップは、共通の境界線に沿う現在の連結成分に接触する連結成分のリストを検索するステップと、マージするのに最も適した候補を決定するステップとを含んでもよく、それらステップは、左上の境界線に接触する現在のブロックの各連結成分に対して実行される。
【００２３】
本発明の別の側面によると、上述の方法の任意の１つの面に従って、複数の画素を含むデジタル画像をセグメント化するプロセッサと、メモリとを備える装置が提供される。
【００２４】
本発明の更に別の側面によると、上述の方法の任意の１つの側面に従って、複数の画素を含むデジタル画像をセグメント化するコンピュータプログラムを記録したコンピュータ可読媒体が提供される。
【００２５】
本発明の更に別の側面によると、カラー文書のコンパクトな表現を自動的に生成する方法が提供される。方法は、１パスのブロックラスタ順にカラー文書ページのデジタル画像を連結成分にセグメント化するステップと、ページ全体のコンパクトな連結成分統計値に基づくレイアウト解析を使用して、ページのデジタル画像を前景画像及び背景画像に区分するステップと、前景画像の少なくとも一部が背景画像を隠蔽する場合に、背景画像の少なくとも一部を１パスのブロックラスタ順に修復するステップと、コンパクトな文書を形成するために、前景画像及び背景画像を組み合わせるステップとを含む。
【００２６】
方法は、背景画像をダウンサンプリングするステップを更に含んでもよい。方法は、背景画像を圧縮するステップを更に含んでもよい。圧縮ステップは、不可逆的圧縮を含んでもよい。更に方法は、不可逆的に圧縮された背景画像の異なる圧縮を含んでもよい。
【００２７】
本発明の更なる側面によると、上述の方法の任意の１つの側面に従って、カラー文書のコンパクトな表現を自動的に生成するプロセッサと、メモリとを備える装置が提供される。
【００２８】
本発明の更なる側面によると、上述の方法の任意の１つの側面に従って、カラー文書のコンパクトな表現を自動的に生成するコンピュータプログラムを記録したコンピュータ可読媒体が提供される。
【００２９】
本発明の別の側面によると、複数の画素を含むデジタル画像を解析する方法が提供される。方法は、デジタル画像をオブジェクトにセグメント化するステップであり、セグメント化が３つ以上のラベルにより表現されるステップと、各オブジェクトに対してプロパティのセットを提供するステップと、オブジェクトのサブセットに対して、境界線を共有する隣接するオブジェクト間に親子関係が存在するかを判定するために包含の尺度を使用するステップと、オブジェクトプロパティに基づいて、共通の親を共有するオブジェクトのグループを形成するステップと、プロパティ及びグループ化に従ってオブジェクトを分類するステップとを含む。
【００３０】
包含は、各オブジェクトの周囲のバウンディングボックス及びオブジェクト間の接触関係を説明する情報を使用して判定されてもよい。２つのオブジェクトが境界線で接触し且つオブジェクトのバウンディングボックスが他のオブジェクトのバウンディングボックスを完全に含む場合、オブジェクトは他のオブジェクトを含む。
【００３１】
グループ形成ステップは、共通の親の子リストからの子オブジェクトの対を考慮することと、オブジェクトプロパティを使用して、各対がグループ化されるべきかを判定することを含んでもよい。同一の親を有する子オブジェクトのリストの隣接するオブジェクトのみが、グループ化に対して考慮されてもよい。オブジェクトは、バウンディングボックス及び色情報に基づいてグループ化されてもよい。
【００３２】
オブジェクトのグループは、グループ内のオブジェクトのテキストと同等の品質のテストに従ってテキストとして分類されてもよい。テキストと同等の品質のテストは、オブジェクトの場所を表す各オブジェクトに対する単一の値を識別することと、値のヒストグラムを形成することと、ヒストグラムのプロパティによりテキストを識別することとを含んでもよい。
【００３３】
方法は、親子プロパティに関わらず、プロパティに従ってオブジェクトのテキスト分類されたグループに更なるオブジェクトを追加するステップを更に含んでもよい。
【００３４】
本発明の更に別の側面によると、文書ページの複数の画素を含むデジタル画像を解析する方法が提供される。方法は、画像に基づいてオブジェクトを形成するためにデジタル画像をセグメント化するステップと、オブジェクトのグループを形成するステップと、オブジェクトのグループの各々がテキストを表すかを判定するステップとを含む。判定ステップは、ページ上のオブジェクトの場所に依存して、各オブジェクトに対する単一の値を識別することと、値のヒストグラムを形成することと、ヒストグラムのプロパティによりテキストを識別することとを含む。
【００３５】
ヒストグラムのプロパティは、指定された数より多いオブジェクトを有するヒストグラムのビンのオブジェクトの総数であってもよい。あるいは、プロパティは、ヒストグラムのカウントの２乗和であってもよい。
【００３６】
オブジェクトの場所を表す各オブジェクトに対する単一の値は、オブジェクトのバウンディングボックスのエッジであってもよい。
【００３７】
本発明の別の側面によると、上述の任意の１つの側面による方法に従って、複数の画素を含むデジタル画像を解析するプロセッサと、メモリとを備える装置が提供される。
【００３８】
本発明の別の側面によると、上述の任意の１つの側面による方法に従って、複数の画素を含むデジタル画像を解析するコンピュータプログラムを記録したコンピュータ可読媒体が提供される。
【００３９】
本発明の更に別の側面によると、複数の画素を含むデジタル画像を修復する方法が提供される。方法は、デジタル画像から複数の画素のブロックを生成するステップと、少なくとも１つのブロックに対して少なくとも１つの画素のラン(run)の画素値をラスタ順に変更するステップとを含む。変更ステップは、オブジェクトに関連するブロックの画素のランに対して開始画素及び終了画素を判定するステップであり、ランがグループ化された隣接する画素を含むステップと、ランの外側にある画素の画素値に依存して、前記ランにおいてオブジェクトの少なくとも１つの画素値を変更するステップと、ブロックのオブジェクトに対応しない画素に対してアクティビティ尺度を判定するステップと、ブロックに対するアクティビティ尺度が所定の閾値より小さい場合、少なくとも１つの画素のランを有する各ブロックにおける全ての画素値を設定値に変更するステップとを含み、それらステップは各ブロックに対して実行される。
【００４０】
方法は、拡張されたオブジェクトの外側の画素の画素値に依存して、オブジェクトの外側の拡張されたオブジェクト画素の少なくとも１つの画素値を変更するステップを更に含んでもよい。
【００４１】
生成するステップは、各々が所定の数の画素の連続的な線を含む複数のバンドにデジタル画像を配置するステップと、バンドを１つずつバッファリング及び処理するステップとを含んでもよい。処理ステップは、現在のバンドを複数の画素のブロックに配置するステップと、変更ステップに対して現在のバンドのブロックを１つずつバッファリング及び処理するステップとを含んでもよく、それらステップは現在バッファリングされている各バンドに対して実行される。
【００４２】
ランは、ブロックの画素のラスタ線において隣接する画素を含む。
【００４３】
方法は、ブロックに基づく圧縮方法を使用して各ブロックを圧縮するステップを更に含んでもよい。ブロックに基づく圧縮方法はＪＰＥＧであってもよい。方法は、別の圧縮技術を使用してブロックに基づく圧縮ブロックを更に圧縮するステップを更に含んでもよい。
【００４４】
オブジェクトの少なくとも１つの画素値は、ランの左右にある画素値から補間された値又はランの左側にある画素からの値を使用して、オブジェクトの外側にある画素の画素値に依存して変更されてもよい。
【００４５】
少なくとも１つの画素のランを有する各ブロックにおける全ての画素値は、先に処理されたブロックの平均値又はブロックの可視画素の平均値に変更されてもよい。
【００４６】
方法は、拡張されたオブジェクト画素のランの終了が見つけられなかった場合に、画素の色値を拡張されたオブジェクト画素のランの左側にあるオブジェクトに対応しない画素の色値に設定するステップを更に含んでもよい。
【００４７】
画素値は、色値(color values)であってもよい。
【００４８】
本発明の更なる側面によると、上述の任意の１つの側面の方法に従って、複数の画素を含むデジタル画像を修復するプロセッサと、メモリとを備える装置が提供される。
【００４９】
本発明の更なる側面によると、上述の任意の１つの側面の方法に従って、複数の画素を含むデジタル画像を修復するコンピュータプログラムを記録したコンピュータ可読媒体が提供される。
【００５０】
本発明の別の側面によると、複数の画素を含むデジタル画像の画素値を変更する方法であり、少なくとも一部の画素が画像のオブジェクトに対応する方法であって、各々が所定の数の画素の連続的な線を含む複数のバンドにデジタル画像を配置するステップと、バンドを１つずつ順番にバッファリング及び処理するステップとから成る方法が提供される。処理ステップは、現在バッファリングされている各バンドに対して、現在のバンドを複数の画素のブロックに配置するステップと、ブロックを１つずつ順番に処理するステップとを含む。ブロック処理ステップは、各ブロックに対して、画像のオブジェクトに対応しないブロックの画素に対してアクティビティ尺度を判定するステップと、アクティビティ尺度が所定の閾値より小さい場合、ブロックの全ての画素の画素値を１つの画素値に変更するステップと、ブロックをＪＰＥＧで圧縮するステップと、ＪＰＥＧ圧縮ブロックを別の圧縮方法を使用して圧縮するステップとを含む。
【００５１】
各バンドはデジタル画像の画素の１６本の線を含んでもよく、ブロックは１６×１６画素を含み、圧縮ステップはパイプライン方式で実行される。
【００５２】
ブロックの全ての画素の色値を変更するステップは、拡張されたオブジェクト画素のランのすぐ左右にあるオブジェクトに対応しない画素間で線形補間することにより取得される色値に画素の色値を設定することを含んでもよく、拡張されたオブジェクト画素は、ランの外側の隣接する画素である。
【００５３】
方法は、ブロックの画素の色値をブロックのオブジェクトに対応しない画素の平均色値に設定するステップを更に含んでもよい。
【００５４】
方法は、ブロックの画素の色値を先のブロックの平均色に設定するステップを更に含んでもよい。
【００５５】
拡張されたオブジェクトの画素は、オブジェクトの場所を規定するマスクを拡張することにより判定されてもよい。
【００５６】
他の圧縮方法は、ＺＬＩＢを含んでもよい。
【００５７】
画素値は、色値であってもよい。
【００５８】
本発明の更に別の側面によると、少なくとも一部の画素が画像のオブジェクトに対応し、上述の任意の１つの側面の方法に従って、複数の画素を含むデジタル画像の画素値を変更するプロセッサと、メモリとを備える装置が提供される。
【００５９】
本発明の更なる側面によると、少なくとも一部の画素が画像のオブジェクトに対応し、上述の任意の１つの側面の方法に従って、複数の画素を含むデジタル画像の画素値を変更するコンピュータプログラムを記録したコンピュータ可読媒体が提供される。
【００６０】
本発明の更に別の側面によると、複数の画素を含むデジタル画像をセグメント化する方法が提供される。方法は、デジタル画像から複数の画素のブロックを生成するステップと、１パスで画素のブロックを使用して、各ブロックに対して少なくとも１つの連結成分を作成するステップとを含む。作成するステップは、各々が空間的に連結しかつセマンティカリー（semantically）に関連する画素のグループを含む少なくとも１つの連結成分に画素のブロックをセグメント化することと、ブロックの少なくとも１つの連結成分を先に処理された少なくとも１つの他のブロックからセグメント化された少なくとも１つの連結成分とマージすることと、ブロックの連結成分の画像における場所をコンパクトな形式で格納することとを含む。
【００６１】
セマンティカリー（semantically）に関連する画素は、同様の色を有する画素を含んでもよい。
【００６２】
格納するステップは、Ｍ−１個の２値ビットマップを格納することを含んでもよい。ここで、Ｍ個の連結成分はブロックに存在し、Ｍは整数である。
【００６３】
格納するステップは、指標マップを格納することを含んでもよい。
【００６４】
セグメント化するステップは、各ブロックに対していくつかの代表色を推定することと、代表色に対して各ブロックを量子化することと、各量子化ブロックから連結成分を形成することとを含んでもよい。セグメント化するステップは、形成される連結成分のサブセットをマージすることを更に含んでもよい。マージするステップは、連結成分の統計値を収集することを含んでもよい。統計値は、バウンディングボックス、画素カウント、境界線長さ及び平均色のうち任意の１つ以上を含んでもよい。方法は、ノイズと考えられる形成された連結成分を除去するステップを更に含んでもよい。ノイズは、予め定められた閾値を下回る画素カウント及び予め定められた他の閾値を上回る境界線長さ対画素カウント比を有する連結成分を含んでもよい。マージステップは、ブロックの連結成分を左上にあるブロックの連結成分とマージすることと、マージした連結成分の統計値を更新することとを含んでもよい。統計値は、バウンディングボックス、画素カウント、塗りつぶし率及び平均色のうち任意の１つ以上を含んでもよい。
【００６５】
推定するステップは、各ブロックの画素のＹＵＶデータに基づいて複数の色のビンに関連するヒストグラムを形成することと、ヒストグラム統計値に基づいて各ブロックを分類することと、ブロックの分類に基づいて代表色を形成するためにビンの色をマージすることとを含んでもよい。方法は、１パスで各画素に対する指標マップを形成するステップを更に含んでもよい。量子化ステップは、空でないビンを代表色に量子化することと、代表色に対してビンマッピングを作成することと、ビンマッピングを使用して指標マップを代表色に再マッピングすることとを含んでもよい。形成するステップは、Ｙ値に基づいて輝度バンドを決定することと、Ｕ値及びＶ値に基づいてカラーコラムを決定することと、マップされたビンに画素の色を累積することと、マップされたビンの画素カウントを増分することとを含んでもよい。輝度バンドを決定するステップは、輝度バンドアンチエイリアシング（luminance-band anti-aliasing）を更に含んでもよい。カラーコラムを決定するステップは、カラーコラムアンチエイリアシングを更に含んでもよい。
【００６６】
マージするステップは、共通の境界線に沿う現在の連結成分に接触する連結成分のリストを見つけるステップと、マージするのに最も適した候補を決定するステップとを含んでもよく、それらステップは、左上の境界線に接触する現在のブロックの各連結成分に対して実行される。
【００６７】
本発明の別の側面によると、上述の方法の任意の１つの側面に従って、複数の画素を含むデジタル画像をセグメント化するプロセッサと、メモリとを備える装置が提供される。
【００６８】
本発明の更に別の側面によると、上述の方法の任意の１つの側面に従って、複数の画素を含むデジタル画像をセグメント化するコンピュータプログラムを記録したコンピュータ可読媒体が提供される。
【００６９】
本発明の更に別の側面によると、カラー文書のコンパクトな表現を自動的に生成する方法が提供される。方法は、１パスのブロックラスタ順にカラー文書ページのデジタル画像を連結成分にセグメント化するステップと、ページ全体のコンパクトな連結成分統計値に基づくレイアウト解析を使用して、ページのデジタル画像を前景画像及び背景画像に区分するステップと、前景画像の少なくとも一部が背景画像を隠蔽する場合に、背景画像の少なくとも一部を１パスのブロックラスタ順に修復するステップと、コンパクトな文書を形成するために、前景画像及び背景画像を組み合わせるステップとを含む。
【００７０】
方法は、背景画像をダウンサンプリングするステップを更に含んでもよい。方法は、背景画像を圧縮するステップを更に含んでもよい。圧縮ステップは、不可逆的圧縮を含んでもよい。更に方法は、不可逆的に圧縮された背景画像の異なる圧縮を含んでもよい。
【００７１】
本発明の更なる側面によると、上述の方法の任意の１つの面に従って、カラー文書のコンパクトな表現を自動的に生成するプロセッサと、メモリとを備える装置が提供される。
【００７２】
本発明の更なる側面によると、上述の方法の任意の１つの面に従って、カラー文書のコンパクトな表現を自動的に生成するコンピュータプログラムを記録したコンピュータ可読媒体が提供される。
【００７３】
本発明の別の側面によると、複数の画素を含むデジタル画像を解析する方法が提供される。方法は、デジタル画像をオブジェクトにセグメント化するステップであり、セグメント化が３つ以上のラベルにより表現されるステップと、各オブジェクトに対してプロパティのセットを提供するステップと、オブジェクトのサブセットに対して、境界線を共有する隣接するオブジェクト間に親子関係が存在するかを判定するために包含の尺度を使用するステップと、オブジェクトプロパティに基づいて、共通の親を共有するオブジェクトのグループを形成するステップと、プロパティ及びグループ化に従ってオブジェクトを分類するステップとを含む。
【００７４】
包含は、各オブジェクトの周囲のバウンディングボックス及びオブジェクト間の接触関係を説明する情報を使用して判定されてもよい。２つのオブジェクトが境界線で接触し且つオブジェクトのバウンディングボックスが他のオブジェクトのバウンディングボックスを完全に含む場合、オブジェクトは他のオブジェクトを含む。
【００７５】
グループ形成ステップは、共通の親の子のリストからの子オブジェクト（child objects）の対を考慮することと、オブジェクトプロパティを使用して、各対がグループ化されるべきかを判定することを含んでもよい。同一の親を有する子オブジェクトのリストの隣接するオブジェクトのみが、グループ化に対して考慮されてもよい。オブジェクトは、バウンディングボックス及び色情報に基づいてグループ化されてもよい。
【００７６】
オブジェクトのグループは、グループ内のオブジェクトのテキストと同等の品質のテストに従ってテキストとして分類されてもよい。テキストと同等の品質のテストは、オブジェクトの場所を表す各オブジェクトに対する単一の値を識別することと、値のヒストグラムを形成することと、ヒストグラムのプロパティによりテキストを識別することとを含んでもよい。
【００７７】
方法は、親子プロパティに関わらず、プロパティに従ってオブジェクトのテキスト分類されたグループに更なるオブジェクトを追加するステップを更に含んでもよい。
【００７８】
本発明の更に別の側面によると、文書ページの複数の画素を含むデジタル画像を解析する方法が提供される。方法は、画像に基づいてオブジェクトを形成するためにデジタル画像をセグメント化するステップと、オブジェクトのグループを形成するステップと、オブジェクトのグループの各々がテキストを表すかを判定するステップとを含む。判定ステップは、ページ上のオブジェクトの場所に依存して、各オブジェクトに対する単一の値を識別することと、値のヒストグラムを形成することと、ヒストグラムのプロパティによりテキストを識別することとを含む。
【００７９】
ヒストグラムのプロパティは、指定された数より多いオブジェクトを有するヒストグラムのビンのオブジェクトの総数であってもよい。あるいは、プロパティは、ヒストグラムのカウントの２乗和であってもよい。
【００８０】
オブジェクトの場所を表す各オブジェクトに対する単一の値は、オブジェクトのバウンディングボックスのエッジであってもよい。
【００８１】
本発明の別の側面によると、上述の任意の１つの面による方法に従って、複数の画素を含むデジタル画像を解析するプロセッサと、メモリとを備える装置が提供される。
【００８２】
本発明の別の側面によると、上述の任意の１つの面による方法に従って、複数の画素を含むデジタル画像を解析するコンピュータプログラムを記録したコンピュータ可読媒体が提供される。
【００８３】
本発明の更に別の側面によると、複数の画素を含むデジタル画像を修復する方法が提供される。方法は、デジタル画像から複数の画素のブロックを生成するステップと、少なくとも１つのブロックに対して少なくとも１つの画素のランの画素値をラスタ順に変更するステップとを含む。変更ステップは、オブジェクトに関連するブロックの画素のランに対して開始画素及び終了画素を判定するステップであり、ランがグループ化された隣接する画素を含むステップと、ランの外側にある画素の画素値に依存して、前記ランにおいてオブジェクトの少なくとも１つの画素値を変更するステップと、ブロックのオブジェクトに対応しない画素に対してアクティビティ尺度を判定するステップと、ブロックに対するアクティビティ尺度が所定の閾値より小さい場合、少なくとも１つの画素のランを有する各ブロックにおける全ての画素値を設定値に変更するステップとを含み、それらステップは各ブロックに対して実行される。
【００８４】
方法は、拡張されたオブジェクトの外側の画素の画素値に依存して、オブジェクトの外側の拡張されたオブジェクト画素の少なくとも１つの画素値を変更するステップを更に含んでもよい。
【００８５】
生成するステップは、各々が所定の数の画素の連続的な線を含む複数のバンドにデジタル画像を配置するステップと、バンドを１つずつバッファリング及び処理するステップとを含んでもよい。処理ステップは、現在のバンドを複数の画素のブロックに配置するステップと、変更ステップに対して現在のバンドのブロックを１つずつバッファリング及び処理するステップとを含んでもよく、それらステップは現在バッファリングされている各バンドに対して実行される。
【００８６】
ランは、ブロックの画素のラスタ線において隣接する画素を含む。
【００８７】
方法は、ブロックに基づく圧縮方法を使用して各ブロックを圧縮するステップを更に含んでもよい。ブロックに基づく圧縮方法はＪＰＥＧであってもよい。方法は、別の圧縮技術を使用してブロックに基づく圧縮ブロックを更に圧縮するステップを更に含んでもよい。
【００８８】
オブジェクトの少なくとも１つの画素値は、ランの左右にある画素値から補間された値又はランの左側にある画素からの値を使用して、オブジェクトの外側にある画素の画素値に依存して変更されてもよい。
【００８９】
少なくとも１つの画素のランを有する各ブロックにおける全ての画素値は、先に処理されたブロックの平均値又はブロックの可視画素の平均値に変更されてもよい。
【００９０】
方法は、拡張されたオブジェクト画素のランの終了が見つけられなかった場合に、画素の色値を拡張されたオブジェクト画素のランの左側にあるオブジェクトに対応しない画素の色値に設定するステップを更に含んでもよい。
【００９１】
画素値は、色値であってもよい。
【００９２】
本発明の更なる側面によると、上述の任意の１つの側面の方法に従って、複数の画素を含むデジタル画像を修復するプロセッサと、メモリとを備える装置が提供される。
【００９３】
本発明の更なる側面によると、上述の任意の１つの側面の方法に従って、複数の画素を含むデジタル画像を修復するコンピュータプログラムを記録したコンピュータ可読媒体が提供される。
【００９４】
本発明の別の側面によると、複数の画素を含むデジタル画像の画素値を変更する方法であり、少なくとも一部の画素が画像のオブジェクトに対応する方法であって、各々が所定の数の画素の連続的な線を含む複数のバンドにデジタル画像を配置するステップと、バンドを１つずつ順番にバッファリング及び処理するステップとから成る方法が提供される。処理ステップは、現在バッファリングされている各バンドに対して、現在のバンドを複数の画素のブロックに配置するステップと、ブロックを１つずつ順番に処理するステップとを含む。ブロック処理ステップは、各ブロックに対して、画像のオブジェクトに対応しないブロックの画素に対してアクティビティ尺度を判定するステップと、アクティビティ尺度が所定の閾値より小さい場合、ブロックの全ての画素の画素値を１つの画素値に変更するステップと、ブロックをＪＰＥＧで圧縮するステップと、ＪＰＥＧ圧縮ブロックを別の圧縮方法を使用して圧縮するステップとを含む。
【００９５】
各バンドはデジタル画像の画素の１６本の線を含んでもよく、ブロックは１６×１６画素を含み、圧縮ステップはパイプライン方式で実行される。
【００９６】
ブロックの全ての画素の色値を変更するステップは、拡張されたオブジェクト画素のランのすぐ左右にあるオブジェクトに対応しない画素間で線形補間することにより取得される色値に画素の色値を設定することを含んでもよく、拡張されたオブジェクト画素は、ランの外側の隣接する画素である。
【００９７】
方法は、ブロックの画素の色値をブロックのオブジェクトに対応しない画素の平均色値に設定するステップを更に含んでもよい。
【００９８】
方法は、ブロックの画素の色値を先のブロックの平均色に設定するステップを更に含んでもよい。
【００９９】
拡張されたオブジェクトの画素は、オブジェクトの場所を規定するマスクを拡張することにより判定されてもよい。
【０１００】
他の圧縮方法は、ＺＬＩＢを含んでもよい。
【０１０１】
画素値は、色値であってもよい。
【０１０２】
本発明の更に別の側面によると、少なくとも一部の画素が画像のオブジェクトに対応し、上述の任意の１つの面の方法に従って、複数の画素を含むデジタル画像の画素値を変更するプロセッサと、メモリとを備える装置が提供される。
【０１０３】
本発明の更なる面によると、少なくとも一部の画素が画像のオブジェクトに対応し、上述の任意の１つの面の方法に従って、複数の画素を含むデジタル画像の画素値を変更するコンピュータプログラムを記録したコンピュータ可読媒体が提供される。
【発明を実施するための最良の形態】
【０１０４】
デジタル画像を処理及び圧縮する方法、装置及びコンピュータ可読媒体が開示される。以下の説明において、特定の可逆的圧縮技術、色空間、空間解像度及びタイルサイズ等を含む多くの特定の詳細を示す。しかし、本発明の趣旨の範囲から逸脱せずに変更及び／又は置換が行なわれてもよいことは、当業者にはこの開示から明らかとなるだろう。他の状況において、本発明を明確に理解するために、特定の詳細が省略されてもよい。
【０１０５】
１つ以上の添付の図面において、同一の図中符号を有するステップ及び／又は特徴を参照する場合、それらステップ及び／又は特徴は、説明の都合上、指示がない限り同一の機能又は動作を有する。
【０１０６】
本明細書において、用語「具備する」は、拡張可能で非排他的な意味を有し、「主に含むが、単独で必要ではない」ことを意味し、「本質的に〜から構成される」及び「〜のみから構成される」ことではない。用語「具備する」の語形変化は、それに対応して意味の変化を示す。
【０１０７】
詳細な説明の内容は、以下のような節で編成される。
【０１０８】
１．概要
２．カラーセグメント化
２．１．入力画像の次のタイルの取得
２．２．タイルのカラーセグメント化の形成
２．２．１．色量子化
２．２．１．１．２Ｄヒストグラム及び第１のパレットの形成
２．２．１．２．ヒストグラムの解析及び画像の分類
２．２．１．３．第２のパレットの形成
２．２．１．３．１．２色パレットの生成
２．２．１．３．２．多色パレットの生成
２．２．１．４．画素と第２のパレットとの関連付け
２．２．１．４．１．２レベルのタイルのマップ
２．２．１．４．２．多重レベルのタイルのマップ
２．２．２．カラーＣＣ解析及びブロブ統計
２．２．２．１．ブロブの形成
２．２．２．２．ブロブマージの例
２．２．３．タイル内のマージ
２．２．４．タイル間のマージ
２．２．４．１．タイル間マージ条件
２．２．４．２．タイル間マージの例
２．２．４．３．最適なブロブ／ＣＣの対の処理
２．２．４．４．ＣＣマッピングの結果
２．２．５．マージの後処理
２．３．セグメント化の例
３．レイアウト解析
３．１．ＣＣのグループ化
３．１．１．親ＣＣに対する子の検索
３．１．２．初期グループ化
３．１．２．１．２つのＣＣに対するグループ化テスト
３．２．グループのチェック
３．２．１．位置合わせのチェック
３．２．２．位置合わせの例
４．圧縮出力画像の生成
４．１．タイルの修復
４．１．１．タイル前景ビットマスクの形成
４．１．２．画素の修復及びタイルアクティビティの測定
４．１．３．修復の例
４．１．４．タイルの均一化
５．ハードウェアの実施形態
５．１．カラーセグメント化モジュール
６．コンピュータの実現例
７．産業上の利用可能性
上記節は、上記順序で以下に詳細に説明される。
【０１０９】
１．概要
本発明の第１の実施形態は、汎用コンピュータ上で実行する処理である。図１は、デジタル画像をセグメント化、解析及び圧縮する処理１００の高水準な概要を提供する。処理１００に対する入力は、３００ｄｐｉの解像度のＲＧＢ画像であるのが好ましい。しかし、他の色空間の画像が適切な変更を伴って処理１００に入力されてもよい。同様に、異なる解像度の画像が入力されてもよい。ステップ１１０において、画像の連結成分（ＣＣ）へのカラーセグメント化が、入力画像に対して単一パスを使用して実行されてもよい。１パス処理を使用すると、デジタル画像は迅速に処理されるため、大量の高解像度の画像が処理される。連結成分は、全てが連結された（接触する）同様の色を有する画素のグループである。例えば、白色のページに黒色のインクで印刷された文字「ｉ」の本体又はステムを形成する画素は１つの連結成分を形成し、「ｉ」のドットは別のＣＣを形成し、文字「ｉ」を囲む背景である任意の白色画素は更に別のＣＣを形成する。図６は、文字「ｉ」を含む画像６００を示す。図６において、黒色のドットは黒色画素を表し、白色のドットは白色画素を表す。「ｉ」ＣＣのステム６１０及び「ｉ」ＣＣのドット６１２が示される。また、結果として得られる黒色画素の別のＣＣ６１４が示される。
【０１１０】
セグメント化の一部として、ＣＣを説明するコンパクトな情報及び統計値が計算される。デジタルデータはダウンサンプリングされ、ステップ１３０に直接提供される。ステップ１２０において、このコンパクトなＣＣ情報及び統計値を使用して、レイアウト解析がＣＣに対して実行される。レイアウト解析は、例えばテキスト文字、段落、表及び画像を含むページ上の特徴のレイアウトを判定する。ステップ１３０において、レイアウト情報は、１つ以上の前景画像を作成するために使用される。前景画像は、通常、ステップ１２０で識別されたテキスト文字から構成され、２値画像であるのが好ましい。前景画像は入力解像度（例えば、３００ｄｐｉ）で格納されてもよく、背景画像はより低い解像度（例えば、１５０ｄｐｉ）で格納されてもよい。前景要素は、背景画像から除去される。前景及び背景は、異なる技術を使用して圧縮され、複合画像形式で格納される。複合形式は、例えばＰＤＦ文書であってもよい。カラーセグメント化、レイアウト解析及びデジタル画像の圧縮については、それぞれ別々の節で以下に説明する。
【０１１１】
本発明の実施形態に対する１つの応用例は、スキャナからのラスタ画素画像を解析し、可能な限り高水準な情報を抽出することである。ページの高水準記述は、この情報から生成される。この目的のために、システムは、ハードウェアで画素解析を行なうことにより更に高速に実行するように設計されてもよい。しかし、システム全体がソフトウェアで実現されてもよいことは、以下の説明から明らかとなるだろう。また、特定の出力形式ＰＤＦについて以下に説明するが、他のページ記述形式を出力形式として利用するために、システムに対して変更が行なわれてもよい。
【０１１２】
図８は、スキャン済み入力文書８１０の圧縮表現又はコンパクトな表現８５０を生成する本発明の一実施形態によるシステム８００を示す高水準ブロック図である。システム８００は、フロントエンドモジュール８２０、中間モジュール８３０及びバックエンドモジュール８４０を具備する。フロントエンドモジュール８２０は、タイルを使用するフロントエンドであり、ハードウェアで実現されるのが好ましいが、組込みプロセッサにより実行されるソフトウェアとＡＳＩＣとの組合せでもよい。タイルラスタ順は、タイルに基づく処理方法であり、タイルは、上から下及び左から右へ１度に１つのタイルを処理するために提供される。このモジュールは、入力画像に対してカラーセグメント化を実行し、バックエンドモジュール８４０にタイルの背景画像を提供する（矢印により示される）。フロントエンドモジュール８２０は、フルページ解像度（例えば、３００ｄｐｉ）でカラー連結成分解析を実行する。フロントエンドモジュール８２０は、デジタル画像８１０からも連結成分（ＣＣ）を生成する。ＣＣは中間モジュールに提供され、中間モジュールはレイアウト解析を実行する。このモジュール全体は、ソフトウェアで実現されてもよい。フロントエンドモジュール８２０は、ダウンサンプリングされた画像をモジュール８４０に提供する。中間モジュール８３０の出力は、バックエンドモジュール８４０に提供される。バックエンドモジュール８４０は、タイルに基づく修復を実行し、デジタル画像８１０のコンパクトな表現を生成する。フロントエンドモジュール８２０と同様に、バックエンドモジュール８４０は、組込みプロセッサ上で実行されるソフトウェア及びＡＳＩＣと共に少なくとも部分的にハードウェアで実現されてもよい。このコンパクトな出力は、より低い空間解像度のデジタル画像及びより高い解像度の前景ビットマップを含んでもよい。
【０１１３】
フロントエンドモジュール８２０は、各画素の検査を含み、かつセマンティカリー（semantically）に関連する画素の領域のカラーＣＣを形成する全ての解析作業を実行する。フロントエンドモジュール８２０からの出力は、ページ上の全てのカラーＣＣに関する情報である。各ＣＣに対する情報は、バウンディングボックス、平均色、接触リスト及び画素数を含む。アルゴリズムをハードウェアで実現する場合、アルゴリズムは、最適な性能のために帯域幅が有効利用される必要がある。画像処理タスクに対して、アルゴリズムはスキャン済みページ全体にランダムアクセスしない。その代わり、アルゴリズムは１度に複数の小さなタイルを処理する。
【０１１４】
２．カラーセグメント化
図２は、図１のステップ１１０を更に詳細に示す。図２に示す処理は、例えばサイズが３２×３２画素であってもよい入力画像のタイルを処理する。タイルは、ラスタ順に、すなわち左から右及び上から下に処理されてもよい。処理される最初のタイルは入力画像の左上のタイルであり、処理される最後のタイルは入力画像の右下のタイルである。このタイリングは、効率の目的で行なわれる。
【０１１５】
ステップ２１０において、処理される入力画像の次のタイルが取得される。ポインタ情報は、各タイルに効率的にアクセスするために使用されてもよい。ステップ２１０については、図３を参照して更に詳細に説明する。ステップ２２０、２３０、２４０及び２５０の処理は、現在のタイルの画素に限定される。ステップ２２０において、逆ハーフトーン化処理は現在のタイルに対してオプションとして実行される。例えば、この方法により処理されるスキャン済み入力文書は、印刷処理による中間調を含んでもよい。中間調は、後続の解析を困難にし且つ十分に圧縮できない可能性がある。従って、このステップ２２０は、中間調を検出及び除去するために使用されてもよい。一例として、以下の逆ハーフトーン化処理が実現されてもよい。逆ハーフトーン化処理は、１６×１６のタイルを処理してもよい。３２×３２のＲＧＢ画素の各入力タイルは、１６×１６の４つのタイルに分割されてもよく、各タイルが別個に処理される。中間調の検出は、１度に１つのカラーチャネル（すなわち、Ｒ、Ｇ及びＢ）を処理してもよい。中間調がチャネルにおいて検出される場合、中間調の除去は全てのチャネルに対して実行されてもよい。中間調を検出するために、タイルの各画素は、４つのレベルに量子化される。入力カラーチャネル値は、０〜２５５の範囲に及ぶ。４つのレベルは、０〜６３、６４〜１２７、１２８〜１９１及び１９２〜２５５の範囲である。互いに隣接する画素間のレベルの変化数が測定される。この測定は、水平方向及び垂直方向に行なわれてもよい。
【０１１６】
通常、中間調は小さなドットであるため、検出には、変化数が大きく且つ水平の変化数が垂直の変化数と同様であることが必要である。これにより、中間調として検出されるテキスト文字のエッジによるレベルの変化が防止される。検出に対する閾値は指定されてもよい。中間調が１６×１６のタイルにおいて検出される場合、例えば空間的なぼけは中間調を除去するのに使用されてもよい。中間調検出器は、先に解析したタイルからの情報を使用できる。例えば、現在のタイルに接触するタイルがタイルにおいて中間調を検出した場合、現在のタイルも中間調を含む可能性が高い。この情報が使用される場合、閾値は中間調検出条件を緩和又は強化するために調整されてもよい。
【０１１７】
ステップ２３０において、現在のタイルの色空間がＹＵＶ色空間にない場合、タイルの画素をＹＵＶ色空間に変換するための変換が実行される。従って、このステップは、入力画像の色空間に依存するオプションである。ＹＵＶ色空間が本実施形態において使用されるが、本発明の趣旨の範囲から逸脱せずに、他の色空間が実現されてもよい。ＲＧＢからＹＵＶに変換するために使用される変換式は、例えばＩＪＧ（Independent JPEG Group）ＪＰＥＧライブラリにおいて使用される変換式と同一であってもよい。
【０１１８】
ステップ２４０において、連結成分を形成するカラーセグメント化が現在のタイルに対して実行され、タイルのＣＣに関するコンパクトな情報及び統計値が計算される。カラーＣＣは、セマンティカリー（semantically）に関連した１つ以上のブロブを含み、１つ以上のタイルにわたる。例えば、セマンティカリー（semantically）に関連したブロブは、同様の色であってもよい。ブロブは、単一タイル内で同様の色特性を有する画素の連結グループである。ブロブ処理は、カラーセグメント化及び連結成分表現の形成を行なう処理である。各ＣＣは以下の統計値を有する。すなわち、画素のサイズ、中間色、バイナリマスク、ブロブ境界線の長さ及びバウンディングボックスを有する。図１０は、このステップを更に詳細に示す。
【０１１９】
ステップ２５０において、現在のタイルは、背景画像の対応する部分を形成するためにダウンサンプリングされる。例えばボックスフィルタは、双方の次元に２：１だけダウンサンプリングするために使用されてもよいが、他の方法論が、本発明の趣旨の範囲から逸脱せずに実現されてもよい。判定ステップ２６０において、処理されるタイルが残っているかを判定するためのチェックが行なわれる。ステップ２６０の結果がＮｏである（すなわち、画像の全てのタイルが処理された）場合、処理は終了する。しかし、ステップ２６０の結果がＹｅｓである場合、ステップ２１０に進む。
【０１２０】
２．１．入力画像の次のタイルの取得
図３は、図２のステップ２１０を詳細に示す。処理２１０は、入力デジタル画像のバンドを処理する。画像の１つのバンドは、多数の連続画像線である。各バンドの高さは、タイルの高さと同一であってもよい。従って、画像の最初の３２本の線は１つのバンド、この場合は画像の第１のバンドを形成し、次の３２本の画像線は次のバンドを形成する。各バンドの幅は、入力画像の幅であってもよい。判定ステップ３１０において、別のバンドが読み込まれる必要があるかを判定するためのチェックが行なわれる。現在のバンドの全てのタイルが処理された場合、別のバンドが読み込まれる必要がある。ステップ３１０が初めて実行される時にも別のバンドが読み込まれる必要がある。これは、この時点でバンドが読み込まれていないためである。ステップ３１０の結果がＹｅｓである場合、ステップ３２０に進む。Ｎｏである場合、ステップ３４０に進む。
【０１２１】
ステップ３２０において、データの次のバンドは、入力画像から、例えばディスクからメモリ内のバッファに読み込まれる。メモリバッファは、連続した記憶場所にバンドの画素の各線を含むように構成されてもよい。更に、各線の開始位置の記憶場所のレコードが保持される。すなわち、各バンド行へのポインタが保持される。ステップ３３０において、現在のタイルであるアクセスされるタイルを判定する変数ｔｘが初期化される（すなわち、０に設定される）。ステップ３４０において、行ポインタ情報は、現在のタイルを指し示すように更新される。図３の処理２１０を呼び出す他の処理は、ステップ３４０で更新された行ポインタ情報を参照することにより新しいタイルを取得する。行ポインタ情報は、タイル行毎に１つのポインタを含んでもよい。従って、タイル毎に３２個の行ポインタが存在してもよい。所定の行ポインタは、所定の行のタイルの第１の画素の記憶場所を指し示す。行ポインタ情報は、対応する各バンド線の開始位置までポインタを越えて記憶場所（タイル幅＊ｔｘ）に沿って各行ポインタを進めることにより更新されてもよい。ステップ３５０において、変数ｔｘは１増分され、次に図３の処理２１０が呼び出される時は、別のタイルが処理に対して入力される。
【０１２２】
２．２．タイルのカラーセグメント化の形成
カラーブロブ処理は、タイルラスタ順で動作する画像セグメント化アルゴリズムである。ブロブは、単一タイル内の同一量子化ラベルの画素の連結グループである。各ブロブは以下の統計値を有する。すなわち、画素のサイズ、中間色、バイナリマスク、ブロブ境界線の長さ及びバウンディングボックスを有する。その目的は、文書画像をオーバーラップしない連結成分のセットにセグメント化することである。この時、各連結成分はセマンティカリー（semantically）に関連した画素の連結セットを含む。例えば、特定のテキスト文字の画素のセットは１つの連結成分を形成し、テキストの周りの画像部分の画素は別の連結成分を形成するなどである。
【０１２３】
図２８は、４つのモジュール２８１０、２８２０、２８３０及び２８４０を有するカラーブロブシステム２８００を示すブロック図である。色量子化モジュール２８１０は、入力カラータイル（例えば、ＲＧＢ色空間に対する２４ビット画素値）を受信し、タイルのドミナントカラー数を判定し、ドミナントカラーに従ってタイルを量子化する。ドミナントカラー及び量子化タイルは、連結成分／ブロブ統計モジュール２８２０に入力として提供され、モジュール２８２０は、単一ラスタパスで量子化タイルに対して８方向連結成分解析を実行する。画素数、中間色、ブロブ境界線の長さ及びバウンディングボックス情報等のブロブ統計値は、同一のラスタパスで収集される。ブロブ及び統計値は、タイル内マージモジュール２８３０に入力として提供され、モジュール２８３０は、色、サイズ及び境界線統計値に基づいてブロブをマージすることによりタイル内の小さなスプリアスブロブ数を減少する。このモジュール２８３０から結果として得られるブロブ及び統計値は、タイル間マージモジュール２８４０に入力として提供され、モジュール２８４０は、システム２８００の出力である連結成分を形成するために、ブロブ統計値に従って、現在のタイルのブロブを隣接するタイル（左側及び上側）の接触するブロブとグループ化する。これについては、図１０の処理を参照して更に説明する。
【０１２４】
図１０は、画像をカラーＣＣにセグメント化するステップ２４０を詳細に示すフローチャートである。セグメント化処理の一部として、ＣＣを説明するコンパクトな情報及び統計値が計算される。セグメント化処理は、ステップ２３０から画素の入力タイルを受信することにより開始される。判定ブロック１００５において、タイルが均一であるかを判定するためのチェックが行なわれる。タイルが均一である場合、ステップ１０４０のタイル間マージ段階に進む。タイルが均一でない場合、ステップ１０１０に進む。ステップ１０１０において、色量子化がタイルに対して実行される。色量子化は、主な３つのステップ：１）色縮小、２）タイルの分類、３）ドミナントカラーの検索及び量子化を使用して、画素の配置を考慮せずにタイル内のドミナントカラーを見つける。入力タイルのドミナントカラーは、色ヒストグラム法により判定される。色ラベルの量子化タイルは、ドミナントカラーに従って入力タイル画素を量子化することにより作成される。ドミナントカラーは、閲覧者がタイル内でかなり視覚的であると知覚する色である。アルゴリズムは、ハードウェア（ＨＷ）の実現例に適しており、またソフトウェア（ＳＷ）の実現例でも相当高速である。
【０１２５】
ステップ１０２０は、ブロブを形成するために量子化タイルに対して８方向連結成分解析を単一ラスタパスで実行する。ステップ１０３０において、タイル内マージ処理は、色、サイズ及び境界線情報に基づいてブロブをマージすることにより、タイル内の小さなスプリアスブロブ数を減少するために実行される。ステップ１０４０において、タイル間マージが実行される。量子化タイルにおいて識別されるブロブは、カラーＣＣにマージするために、現在のタイルの左側にあるタイル及び現在のタイルの上側にあるタイルである先に処理された２つのタイルにおいて識別されるブロブと比較される。従って、カラーＣＣは、１つ以上のタイルにわたる同様の色の１つ以上のブロブを含む。カラーＣＣは、ブロブに対して、境界線情報を除く上述と同一の種類の統計値を有する。
【０１２６】
ステップ１０５０において、現在のタイルのブロブ及びブロブが形成するカラーＣＣは、コンパクトなタイル状態データ構造に格納される。このタイル状態は、画素データを含まない。タイル状態は、新しく作成されたブロブを既存のカラーＣＣにマージするのに必要な情報のみを含む。セグメント化処理の任意の段階において、２つ以下のタイル状態のみが現在のタイルとマージするのに必要とされるため、タイル間マージ処理１０４０は高いメモリ効率で実行される。更に、ステップ１０５０は、各カラーＣＣに対する接触リストを更新する。接触リストは、互いに隣接する連結成分を説明する。接触リストは、フロントエンドにおいてカラーＣＣ解析の一部として生成される。図２のステップ２４０は、接触リストを生成する。その後、処理は終了する。
【０１２７】
２．２．１．色量子化
色量子化の目的は、入力フルカラーを連結成分生成の準備のために減少した色セットに減少することである。ドミナントカラーを見つけるために、各入力画素は１度検査され、ヒストグラムが生成される。本発明の実施形態は、第１の次元である輝度を使用し且つ第２の次元である２つの色度成分を組み合わせるヒストグラムを採用する。これは、３つの色成分の軸に従ってビンを３つの次元に分割する従来の色ヒストグラムとは異なる。本発明の実施形態は、適切なドミナントカラーをより簡単に見つけることを助長するコンパクトなヒストグラムを生成する。ヒストグラムの特徴から、タイルは、均一、２レベル及び多色の３つの種類に分類される。パレットは、タイルの分類に依存してタイルに対して生成される。パレットの生成後、各画素は、画素がマップされるパレット色に従って量子化ラベルを割り当てられる。方法は、処理を高速にし且つメモリ要求を低くするように設計される。均一なタイルは、量子化ラベルを１つのみ有する。２レベルのタイルは、２つの量子化ラベルを有する。多色タイルは、最大４つの量子化ラベルを有する。
【０１２８】
図１０の色量子化ステップ１０１０は、図１１に更に詳細に示される。ここでは、図１１の各ステップの簡単な説明を行ない、各ステップの詳細な説明は後で行なう。ステップ１１１０において、２Ｄヒストグラム及び第１のパレットを含む指標付きマップが同時に形成される。図４０は、ステップ１１１０の更なる詳細を提供する。ステップ１１２０において、タイルの分類は２Ｄヒストグラムの統計値から実行される。図４７は、ステップ１１２０の更なる詳細を提供する。ステップ１１３０において、第２のパレットはタイルの分類に基づいて形成される。これは、第１のパレットを考慮することを含む。図４１は、ステップ１１３０の更なる詳細を提供する。ステップ１１４０において、画素は第２のパレットと関連付けられる。指標付きマップは第２のパレットの色の１つに再マップされ、量子化ラベル付きの量子化タイルを生成する。その後、処理は終了する。
【０１２９】
２．２．１．１．２Ｄヒストグラム及び第１のパレットの形成
図４０は、図１１のステップ１１１０の処理を更に詳細に示す。入力フルカラータイルは、所定のマッピング方法により１パスで画素ラスタ順に指標付きマップに量子化される。図２９（ａ）は、結果として得られる生成される指標付きマップ及び元の入力タイルの一例を示す。マッピングは、８つの輝度バンド及び４つのカラーコラムに編成される３２個の色のビンに対して構成されてもよい。色の各ビンは、ビンに入れられる第１の画素のＹＵＶ値により設定される登録ＩＤ、画素カウンタ及び色累算器を有してもよい。所定のマッピング方法は、２Ｄヒストグラムの状態に応じて変更されてもよい。その結果、各ビンに対して所定の色は存在せず、画素の色の順序は第１のパレットの構成に影響を及ぼすだろう。最後に、空でない各ビンの平均色が第１のパレットを構成する。図２９（ｃ）は生成されるパレットを示し、図２９（ｃ）において、高階調部及び低階調部は空のビンを表す。
【０１３０】
ステップ４０１０において、色値（ＹＵＶ）を有する画素がタイルから取得される。所定のマッピングは、ステップ４０１５において実行され、画素を輝度バンド及び色のビンにマップする（すなわち、bin_mapped）。所定のマッピングは以下の通りであってもよい。
【０１３１】
band = Y ＞＞ 5, 且つ
column = (|U - REF_U| + |V - REF_V|) * NORMALISING_FACTOR[band]
階調の色度値は、REF_U及びREF_Vに対して使用されてもよい（すなわち、８ビットのＲＢＧ入力データに対して、REF_U=128且つREF_V=128である）。各バンドに対するNORMALISING_FACTORは、各バンドをＲＧＢ色空間の４つのビンに正規化するために、選択したREF_U及びREF_Vを使用して事前に計算される。NORMALISING_FACTORは、表１の擬似コードを使用して生成される。
【０１３２】
【表１】
2008524728.tif 000003
【０１３３】
ステップ４０２０〜４０２５は、２レベルのタイルの輪郭を強調するためにオプションの「バンドのアンチエイリアス」を実行する。ステップ４０２０において、「バンドのアンチエイリアス」が有効化され且つマップされたバンドとその上又は下のバンドとの間の輝度の差異が指定された閾値（例えば、１６）を超えない場合、「バンドのアンチエイリアス」は、ステップ４０２５において実行される。上記条件を満足しない場合、ステップ４０３５に進む。
【０１３４】
ステップ４０２５において、バンドのアンチエイリアスが実行される。上又は下のバンドにおいて近接した空でないビンを見つけることを試みる。候補ビンは、band-1又はband+1によりマップされるビンである。以下の２つの条件のいずれかにおいて、候補ビンはマップされたビン（bin_mapped）を置換する。
【０１３５】
１．候補ビンは空ではなく、その登録ＩＤ（Ｙ）はＹから１６未満であり、bin_mappedは空である。
【０１３６】
２．候補ビン及びbin_mappedは空ではなく、Ｙはbin_mappedの登録ＩＤ（Ｙ）より候補ビンの登録ＩＤ（Ｙ）に近い。
【０１３７】
ステップ４０３５〜４０５５は、「ビンのアンチエイリアス」処理を実行する。ステップ４０３５は、マップされたビン（bin_mapped)が空であるかをチェックする。マップされたビンが空でない場合、ステップ４０４０は以下のようにマッピングエラーをチェックする。
【０１３８】
max(|U - 登録ＩＤ(U)|, |V - 登録ＩＤ(V)|) ＜ MAX_BIN_ERROR[band]
式中、MAX_BIN_ERROR[band]は、正規化因子を生成する上記擬似コードで規定されるように、各バンドにおけるmax_distの１／８である。
【０１３９】
ステップ４０３５が偽（Ｎｏ）を返す場合、ステップ４０４０に進む。Ｙｅｓを返す場合、ステップ４０４５に進む。判定ステップ４０４０において、このバンドに対する最大のビンエラーである指定された閾値を超えるマッピングエラーが存在するかを判定するためのチェックが行なわれる。
【０１４０】
マッピングエラーが閾値内である場合、ステップ４０６０に進む。閾値内でない場合、ステップ４０５５がより近接するビンを見つけるために実行される。ステップ４０５５において、検索はコラム０から開始し、マップされたバンドのコラム３に向けて移動する。この検索は、以下の条件のいずれかが満足された時に終了する。
【０１４１】
１．空のビンが見つけられる。
【０１４２】
２．許容閾値内のマッピングエラーを有するビンが見つけられる。
【０１４３】
ステップ４０５５の検索が条件１で終了する場合、（ＹＵＶ）値は空のビンに登録され、空のビンはbin_mappedを置換する。双方の条件が満たされない場合、最小のマッピングエラーを有するビンがbin_mappedを置換する。その後、ステップ４０６０に進む。
【０１４４】
ステップ４０３５のテスト後、マップされたビンが空である場合、ステップ４０４５に進む。判定ステップ４０４５において、同一バンドの近接する空でないビンが見つけられたかを判定するためのチェックが行なわれる。ステップ４０４５は、コラム０〜３を検索し、先に規定されたマッピングエラー閾値を満足する空でないビンを見つける。そのようなビンが見つかった場合、空のビンはステップ４０５２でbin_mappedを置換し、その後ステップ４０６０に進む。ステップ４０４５が偽（Ｎｏ）を返す場合、bin_mappedはステップ４０５０で色（ＹＵＶ）値に登録され、ステップ４０６０に進む。
【０１４５】
ステップ４０６０において、画素の色（ＹＵＶ）は、マップされたビン（bin_mapped）に累積され、bin_mappedの画素カウントは増分される。ステップ４０６５において、bit_mappedの場所は、現在の画素に対して記録される。ステップ４０７０において、更なる画素がタイルに残っているかを判定するためのチェックが行なわれる。その結果がＹＥＳの場合、ステップ４０１０に進む。ＮＯの場合、ステップ４０７５に進む。ステップ４０７５において、空でない各ビンの累積された色は、その画素カウントで除算される。空でない各ビンの平均色は第１のパレットを形成する。その後、処理は終了する。
【０１４６】
２．２．１．２．ヒストグラムの解析及び画像の分類
タイルの分類は、タイル内のドミナントカラーを見つける方法である。パレットの色の多様性及び分布に基づいて、タイルは、均一、２レベル及び多色の３つのグループに分類される。均一なタイルは、人間の目に対して視覚的に一定の色を有し、通常２Ｄヒストグラムにおいてクラスタを形成する。均一なパレットは最大３色を有し、色の多様性は小さい。２レベルのタイルは、２つの特有の色を有し、通常２Ｄヒストグラムにおいて垂直に並ぶ。２レベルのパレットは、いくつかの輝度バンドにわたる複数の色を有するが、各輝度バンドの色の多様性は小さい。多色タイルは、通常、２Ｄヒストグラムにおいて多数のビンに分散する。多色パレットは、最初の２つのテストを通過しないタイルを含む。
【０１４７】
図１１のステップ１１２０は、２Ｄヒストグラムの色の特性及びビンの分布を解析し、それに従ってタイルを分類する。タイルは、均一、２レベル及び多色の３つのグループに分類される。図４７は、ステップ１１２０の処理を更に詳細に示す。ステップ４７１０において、均一なタイルのテストが実行される。その結果がＹｅｓである場合、ステップ４７１２において、タイルは均一であるとして分類される。Ｎｏである場合、ステップ４７２０の第２のテストが実行され、タイルが２レベルであるかを判定する。２レベルのテストに対する結果がＹｅｓである場合、ステップ４７２２において、タイルは２レベルであるとして分類される。Ｎｏである場合、ステップ４７２４において、タイルは多色であるとして分類される。ステップ４７１０及び４７２０については、以下に更に詳細に説明する。
【０１４８】
ステップ４７１０について考慮すると、第１のLumRangeは、ビンが全て空でない最大の輝度バンドと最小の輝度バンドとの間の範囲と定義される。タイルが均一のテストを通過するためには、タイルは以下の３つの条件を全て満足する必要がある。
【０１４９】
１．空でないビンの数 ＜= 3
２．LumRnage ＜= 2
３．FlatColourVariance ＜ FLAT_COLOUR_VARIANCE
式中、FlatColourVarianceは、最大のビンと残りのビンとの画素カウント加重マンハッタン距離の合計と定義される。閾値パラメータは、FLAT_COLOUR_VARIANCE=15であってもよい。
【０１５０】
ステップ４７２０を考慮すると、タイルが２レベルのテストを通過するためには、タイルは以下の３つの条件を全て満足する必要がある。
【０１５１】
１．空でないビンの数 ＜= BILEVEL_MAX_BIN_CNT
２．LumRnage ＞ 2
３．MaxColourVariance ＜ BILEVEL_COLOUR_VARIANCE
MaxColourVarianceは、max(ColourVariance[band])と定義され、ColourVariance[band]は、バンドの最大のビンと残りのビンとの画素カウント加重マンハッタン距離の合計である。パラメータ値は、BILEVEL_MAX_BIN_CNT=16且つBILEVEL_COLOUR_VARIANCE=40であってもよい。
【０１５２】
２．２．１．３．第２のパレットの形成
図４１は、図１１のステップ１１３０の処理を更に詳細に示す。ステップ４１１０は、タイルが均一として分類されるかをテストする。タイルが均一である場合、ステップ４１２０は均一な色を形成する。これは、空でないビンの加重平均を計算することにより行なわれてもよい。ステップ４１１０のテスト結果がＮｏである場合、ステップ４１３０に進み、タイルが２レベルとして分類されるかをテストする。テスト結果がＹｅｓである場合、ステップ４１４０に移る。ステップ４１４０において、２色パレットが生成される。ステップ４１３０が偽を返す場合、ステップ４１５０に進む。ステップ４１５０において、多色パレットが生成される。
【０１５３】
２．２．１．３．１．２色パレットの生成
図４２は、ステップ４１４０の２レベルのタイルに対する２色パレットの生成を更に詳細に提供する。その目的は、画像を表すために２つの対比色を見つけることである。印刷時の中間調及び登録エラーにより、通常、元の２つの対比色を表す色が汚染される。その結果、前景領域及び背景領域の平均色は、元の画像に対する適切な表現ではない。遷移領域の色を除外することにより、画像はより鮮明に見える。
【０１５４】
ステップ４２１０において、最も暗い色及び最も明るい色が選択され、ドミナントカラーに対して初期パレットを形成する。ステップ４２２０において、最も領域を占める６つのビンがビンのリストを生成するのに使用される。上位６つのビンは、画素カウントに従ってパレットから見つけられる。ステップ４２３０〜ステップ４２７０は、リストの色を順番に処理する。ステップ４２３０において、リストの次のビンの色Ｃが取得される。判定ステップ４２４０は、色Ｃが初期パレットに含まれているか、あるいは色が２つの極値から離れすぎているかをテストする。その結果がＹｅｓである場合、その色は無視され、ステップ４２３０に戻り、処理する次のビンの色を取得する。ステップ４２４０の結果がＮｏである場合、ステップ４２５０に進む。判定ステップ４２５０は、色が初期パレットにマージするのに適しているかをテストする。マージするのに適する色は、初期パレットの任意の色に近接して配置される色である。ステップ４２５０からのテスト結果がＹｅｓである場合、色は、重み付き画素カウントを有するより近接するマンハッタン色距離に基づいて初期パレットの色のうち１つの色にマージされる。Ｃの画素カウントは、マージするパレットの色の画素カウントに加算される。ステップ４２７０に進む。ステップ４２５０の結果がＮｏである場合、色は無視され、ステップ４２７０に移り、処理されていない色が存在するかをチェックする。ステップ４２７０のテストがＹｅｓを返す場合、ステップ４２３０に戻る。Ｎｏを返す場合、処理は終了する。
【０１５５】
２．２．１．３．２．多色パレットの生成
図４３は、多色タイルに対して多色パレットを生成する図４１のステップ４１５０を詳細に示す。ステップ４３１０において、最も暗い色及び最も明るい色が選択され、初期ドミナントカラーとして初期パレットを形成する。ステップ４３２０において、以下の条件が双方とも真である場合、第３の色はパレットに追加される。
【０１５６】
１．LumRange ＞ THIRD_COLOUR_MIN_LD
２．LargestVar ＞ THIRD_COLOUR_MIN_VAR
LargestVarは、最も暗い輝度バンドと最も明るい輝度バンドとの間のビンの中で最も明るい色及び最も暗い色の中間色からの最大マンハッタン色距離と定義される。上記テストが真である場合、LargestVarを生成する色は初期パレットの第３の色として追加される。閾値は、THIRD_COLOUR_MIN_LD=4且つTHIRD_COLOUR_MIN_VAR=40であってもよい。
【０１５７】
ステップ４３３０において、上位（すなわち、最も領域を占める）６つのビンがビンのリストに追加される。ステップ４３４０〜４３９５は、リストの色を順番に処理する。ステップ４３４０において、リストの次のビンの色Ｃが取得される。ステップ４３５０は、色が初期パレットに含まれているかをテストする。結果がＹｅｓの場合、色は無視され、ステップ４３４０に戻る。Ｎｏの場合、ステップ４３６０は、その色をパレットの色のうち１つの色にマージすることを試みる。最近接マンハッタン色距離がBIN_MERGE_THRESHOLD1内である場合、色はその距離を有するパレットの色にマージされる。ここで、閾値は、BIN_MERGE_THRESHOLD1=10であってもよい。ステップ４３６０の試みが成功した場合、ステップ４３９５に進み、処理する色が更に存在するかをチェックする。成功しなかった場合、ステップ４３７０に移る。
【０１５８】
ステップ４３７０は、別の色がパレットに追加されるかをテストする。ステップ４３７０が真（Ｙｅｓ）を返す場合、ステップ４３８０に進む。以下の擬似コードにおけるテストが真である場合、ステップ４３８０において、別の色が追加される。
【０１５９】
Number_palette_colours ＜ MAX_NUM_PALETTE_COLOURS
&&
(
minDist ＞ BIN_MERGE_THRESHOLD2
‖
(
minDist ＞ BIN_MERGE_THRESHOLD3
&&
(minDist * pCnt) ＞ BIN_NEW_MIN
&&
pixel_count_closest_palette_colour ＞ BIN_DONT_TOUCH_CNT
)
)
minDistは、パレットの色に対するＣの最近接マンハッタン色距離である。pCntは、Ｃの画素カウントである。pixel_count_closest_palette_colourは、minDistを生成するパレットの色の画素カウントである。閾値は、MAX_NUM_PALETTE_COLOURS=4、BIN_MERGE_THRESHOLD2=70、BIN_MERGE_THRESHOLD3=40、BIN_NEW_MIN=4000且つBIN_DONT_TOUCH_CNT=150であってもよい。
【０１６０】
ステップ４３８０からステップ４３９５に進む。
【０１６１】
ステップ４３７０のテストが偽である場合、ステップ４３９０に進む。ステップ４３９０において、ビンの色Ｃは、最近接マンハッタン色距離を有するパレットの色とマージされる。色は重み付き画素カウントとマージされ、Ｃの画素カウントはマージするパレットの色の画素カウントに加算される。ステップ４３９５に進む。ステップ４３９５において、処理する色が更に存在しない場合、処理は終了する。
【０１６２】
２．２．１．４．画素と第２のパレットとの関連付け
ドミナントカラーが見つけられると、タイル内の画素はドミナントカラーの１つに量子化される。量子化マップは、連結成分解析のためにドミナントカラーリストと共に生成される。各グループに対する量子化処理は以下の通りである。
【０１６３】
１）均一−量子化しない
２）２レベル−パレットを２つのドミナントカラーのうちのいずれか一方に再マップするか、あるいは元の画素を２値化するために閾値を見つける
３）多色−パレットをドミナントカラーの１つに再マップする
２値化はより鮮明な輪郭を生成するが、適切な閾値を見つけることを必要とするため時間がかかる。閾値を見つけるステップは、１）輝度チャネルに対して１次微分を実行し、２）エッジ画素を識別し、３）エッジ画素からの平均輝度値を閾値として使用する。エッジ画素は、取り囲む３×３の１次微分の出力が全て予め定められた閾値を超える画素である。
【０１６４】
図４４は、図１１のステップ１１４０の更なる詳細を提供する。ステップ４４１０は、タイルが２レベルとして分類されるかをテストする。テスト結果がＹｅｓの場合、ステップ４４２０に進む。ステップ４４２０において、２レベルのタイルがマップされる。テスト結果がＮｏの場合、ステップ４４３０に進む。ステップ４４３０において、多色タイルがマップされる。
【０１６５】
２．２．１．４．１．２レベルのタイルのマップ
図４５は、ステップ４４２０の更なる詳細を提供する。処理４４２０全体は、量子化エラーチェックを使用して空でないビンを全て第２のパレットの２つの色にマップする。ステップ４５１０〜ステップ４５７０は、空でない各ビンに対して量子化及びエラーチェックを実行する。大きな量子化エラーが見つけられない場合、ビン量子化後、全ての画素を第２のパレットに再マップする。大きな量子化エラーが見つけられた場合、タイルは多色として分類され、多色タイルマッピングが行なわれる。２レベルのタイルのマッピングの詳細を以下に説明する。
【０１６６】
ステップ４５１０は、輪郭強調が必要とされるかを判定し、輪郭強調が実行されるビンに対する量子化のために好ましい極端な色を選択する。パレットの２つの色の一方の画素カウントが他方より５倍上回る場合、輪郭強調は必要とされる。第２のパレットの２つの色は、第１の色Ｃ１及び画素カウントＰ１、並びに第２の色Ｃ２及び画素カウントＰ２を有するとする。（Ｐ１／Ｐ２）又は（Ｐ２／Ｐ１）が５より大きい場合、輪郭強調は必要とされ、OUTLINE_ENHANCEは真に設定される。好ましい極端な色は、より小さな画素カウントを有する色であってもよい。
【０１６７】
ステップ４５１５は、画素カウントpCntを有する次の空でないビンを取得する。ステップ４５２０は、２つの色の量子化エラーを計算する。パレットの２つの色に対するマンハッタン距離（Ｄ１及びＤ２）が計算され、小さい方のマンハッタン距離はminDistと定義される。minDistは量子化エラーである。その後、判定ステップ４５２５に進み、量子化エラーが大きすぎるかをチェックする。以下の擬似コードは、量子化エラーが大きすぎる場合の条件を規定する。
【０１６８】
(minDist * pCnt) ＞ BIN_NEW_BILEVEL_THRESHOLD
‖
(
minDist ＞ BIN_NEW_BILEVEL_COLOUR_DIFF
&&
pCnt ＞ BIN_MERGE_BILEVEL_CNT_MIN
)
式中、閾値は、BIN_NEW_BILEVEL_THRESHOLD=6000、BIN_NEW_BILEVEL_COLOUR_DIFF=50且つBIN_MERGE_BILEVEL_CNT_MIN=100であってもよい。
【０１６９】
ステップ４５２５のテストが真である場合、ステップ４５４０に進む。ステップ４５４０において、現在のビンは、別のドミナントカラーリストに追加される。その後、ステップ４５７０に進む。ステップ４５２５のテストが偽である場合、判定ステップ４５３０に進み、別のドミナントカラーリストが空であるかをチェックする。リストが空でない（Ｎｏ）場合、ステップ４５７０に切り替え、処理される空でないビンが更に存在するかを確認する。ステップ４５３０の結果がＹｅｓの場合、ステップ４５４５に進み、輪郭強調が必要とされるか及び２つの距離が近接するかを判定する。テスト条件が以下の擬似コードのように与えられる。
【０１７０】
OUTLINE_ENHANCE
&&
abs(D1 - D2) ＜ BILEVEL_THRESHOLD_MERGIN
式中、閾値は、BILEVEL_THRESHOLD_MERGIN=16であってもよい。
【０１７１】
ステップ４５４５のテストが真である場合、ステップ４５５０に進む。ステップ４５５０において、ビンは好ましい色に量子化される。ステップ４５７０に進む。ステップ４５４５のテストが偽である場合、ステップ４５５５に進み、Ｄ１及びＤ２に基づいてビンをより近接する色に量子化する。その後、ステップ４５７０に進み、処理される空でないビンが更に存在するかをチェックする。空でないビンが更に存在する場合、ステップ４５１５に戻る。空でないビンがそれ以上存在しない場合、判定ステップ４５６０に進み、別のドミナントカラーリストが空であるかをチェックする。これにより、ビン量子化処理中に大きな量子化エラーが存在するかを判定する。リストが空である場合、ステップ４５７５に進み、ステップ４５５０又はステップ４５５５のビットマッピングに適宜従ってパレットの２つの色のうちいずれか一方に全ての画素を再マップする。その後、処理は終了する。ステップ４５６０においてリストが空でない場合、ステップ４５６５に進み、別の１つの色をパレットに追加する。別のドミナントカラーリストの最大の画素カウントを有するビンは、パレットの第３の色として選択される。ステップ４４３０において、タイルは、多色タイルとして再マップされる。その後、処理は終了する。
【０１７２】
２．２．１．４．２．多重レベルのタイルのマップ
図４４のステップ４４３０は、図４６に詳細に示される。ステップ４６１０は、次の空でないビンを取得する。ステップ４６２０は、ビンをパレットの色の１つに量子化する。これは、最近接マンハッタン色距離に基づいて行なわれてもよい。ステップ４６３０は、処理される空でないビンが更に存在するかをチェックする。ステップ４６３０のテストが真である場合、ステップ４６１０に進む。ステップ４６３０のテストがＮｏを返す場合、ステップ４６４０に進む。ステップ４６４０において、全ての画素は、ステップ４６２０のビットマッピングに従ってパレットの色の１つに再マップされる。その後、処理は終了する。
【０１７３】
２．２．２．カラーＣＣ解析及びブロブ（Ｂｌｏｂ）統計
図１０の処理１０２０は、先のステップから量子化タイルを得てブロブを形成する。各ブロブは以下の統計値を有する。すなわち、バウンディングボックス、サイズ、中間色、ビットマスク及びブロブ境界線の長さを有する。ブロブは、単一ラスタパスで高速に且つ効率的に形成される。同一の色クラスに属する量子化タイルの隣接する画素は、ラスタ順にグループ化され、「ラン」を形成する。各ラン（セグメント）の最後では、成長又はマージのために、ランが上側の行の接触するセグメントと（８方向連結性に関して）比較される。ブロブラベルを与えられる必要のあるランが同一クラスのブロブと接触している場合、成長が行なわれる。これに対して、同一クラスの２つのブロブが接触する時、マージは行なわれる。成長が不可能な場合、新しいブロブが形成される。ブロブ統計値は、各ランの最後で更新される。
【０１７４】
図３６は、一例である６×６の入力タイル３６１０を使用するカラーブロブ処理３６００を示す図である。色量子化は、量子化タイル３６２０を生成するために多くの色を有する入力タイル３６１０に適用される。量子化タイル３６２０は、ドミナントカラークラスに対応するクラスラベルを含む。この場合、２つのドミナントカラーがタイルに存在するため、クラスラベル０及び１を与える。連結成分解析は、ランを形成するために同一クラスの隣接するラベルをグループ化することにより一行毎に開始する。図３６において、例えば第１の行の最初の４つの「０」は１つのランを形成し、次の２つの「１」は別のランを形成する。ブロブは、量子化タイル３６２０の連続する行の同一クラスのランをつなぐことにより形成される。タイル３６３０は、タイルのランを示す。現在のセグメントを上側の行の接触するセグメントと比較する場合、３つの可能な動作が存在する。
【０１７５】
１．現在のセグメントをブロブに追加することにより、既存のブロブを成長させる
２．２つのブロブに対する統計値を１つに統合することにより、２つのブロブをマージする
３．現在のセグメントを使用してブロブを初期化することにより、新しいブロブを形成する
タイル３６４０は、結果として得られるブロブであるブロブ０及びブロブ１を示す。ブロブ０は外側のバウンディングボックスを有し、ブロブ１は内側のバウンディングボックスを有する。ブロブの統計値は、ラン及びブロブが形成されるのと同時に累積される。従って処理段階が終了するまでに、各ブロブは、ブロブ０及びブロブ１に対して図３６に示されるような全ての統計値を有する。ビットマスク３６５０及び３６６０は例である。図示されるビットマップ３６５０及び３６６０は、この時点では実際に形成されてない。量子化された色は、ブロブの中間色として使用される。あるいは、ブロブの中間色は、量子化された色ではなくブロブの実際の画素値を累積することにより判定されてもよい。これにより、より正確な中間色が与えられる。ブロブ統計値は、サイズ、中間色、境界線の長さ、バウンディングボックス及びビットマスクを含んでもよい。
【０１７６】
図９は、図１０のステップ１０２０を更に詳細に示す。図９は、量子化されたタイルからブロブを形成するためにループ構造を採用し、上から下へ１度にタイルの１つの行を処理する。ステップ９１０において、現在のタイルの行が処理するために取得される。ステップ９２０において、同一量子化ラベルの画素の連続したセグメントが形成される。これは、その開始位置及び終了位置を記録することにより行なわれる。このセグメントは、現在のセグメントＳｃである。開始位置は、先のセグメントの終了位置の右側にある画素である。新しいタイルの行の場合、開始位置は、その行の第１の画素である。終了位置は、左から右へ現在のタイルの行にわたる量子化ラベルの画素毎の検査中に量子化ラベルの変化が起こる前の最後の画素である。変化が検出される前に現在のタイルの行が終了する場合、終了位置はその行の最後の画素である。後で行なうブロブの色の再推定の目的で、元のフルカラータイルのセグメントの各画素に対するＹＵＶ値は、開始位置から終了位置まで検査する間に累積される。あるいは、セグメントの量子化された色は、色の再推定を行なわずに使用されてもよい。
【０１７７】
ステップ９３０においては、新しいブロブが形成されるか、あるいは既存のブロブがセグメントを使用して成長する。図１２は、このステップの更なる詳細を提供する。判定ステップ９４０において、処理されていない画素が行に残っているかを判定するためのチェックが行なわれる。判定ステップ９４０が真（Ｙｅｓ）を返す場合、ステップ９２０に戻る。これは、現在のタイルの行の全ての画素が処理されるまで行なわれる。ステップ９４０が偽（Ｎｏ）を返す場合、ステップ９５０に進む。判定ステップ９５０において、処理されていない行が残っているかを判定するためのチェックが行なわれる。ステップ９５０が真（Ｙｅｓ）を返す場合、ステップ９１０に進む。これは、処理されていないタイルの行が存在しなくなるまで行なわれる。ステップ９５０が偽（Ｎｏ）を返す場合、処理は終了する。すなわち、量子化タイルの全ての画素は、ブロブに割り当てられた。
【０１７８】
２．２．２．１．ブロブの形成
図１２は、ステップ９３０を更に詳細に示す。図１２の処理は、図９のステップ９２０において識別されたように、現在のセグメントＳｃを入力とする。ステップ１２０５において、変数ｋは１に初期化される。この値は、現在のセグメントＳｃに連結される現在のタイルの行の上側のタイルの行のｋ番目のセグメントＳｋを示す。連結は、８方向連結であるのが好ましい。ステップ１２１０において、ＳｋとＳｃとの間で比較が実行される。判定ステップ１２１５において、Ｓｃ及びＳｋが同一クラスのセグメントであるかを判定するためのチェックが行なわれる。２つのセグメントＳｋ及びＳｃが同一の量子化ラベルを有する場合、ステップ１２１５からステップ１２２０に移る。同一の量子化ラベルを有さない場合、判定ステップ１２３５に進む。判定ステップ１２２０において、Ｓｋが同一クラスの第１の連結セグメントであるかを判定するためのチェックが行なわれる。ＳｋがＳｃである同一の量子化ラベルを有する第１の連結セグメントである場合、ステップ１２２５に進む。Ｓｋが第１の連結セグメントでない場合、ステップ１２３０に進む。ステップ１２２５において、現在のブロブが成長する。現在のセグメントは、ｋ番目のセグメントが属するブロブ上で成長する。ブロブを成長させることは、ブロブのサイズ、境界線情報、バウンディングボックス及び累積されたＹＵＶ値を更新することを含む。その後、ステップ１２３５に進む。これに対して、判定ステップ１２２０が偽を返す場合、これは、現在のセグメントがblob[i]等のブロブラベルを既に割り当てられており、blob[j]等の別のブロブと接触することを示し、ステップ１２３０に進む。ブロブが異なるブロブラベルを有する場合、すなわちi(jである場合、それら２つのブロブはステップ１２３０でマージされる。ステップ１２３０のブロブマージ処理を図１５に示す。その後、ステップ１２３５に進む。
【０１７９】
ステップ１２１５、１２２５及び１２３０から判定ブロック１２３５に進む。判定ブロック１２３５において、最後の連結セグメントが処理されたかを判定するためのチェックが行なわれる。ｋ番目のセグメントが現在のセグメントと連結する最後のセグメントでない場合、ステップ１２４０に進み、ｋは１増分される。その後、ステップ１２１０に戻り、次の連結セグメントを処理する。判定ステップ１２３５が真を返す場合、判定ブロック１２４５に移る。判定ブロック１２４５において、連結セグメントのいずれも同一クラスのセグメント（すなわち、現在のセグメントである同一の量子化ラベルのセグメント）でないかを判定するためのチェックが行なわれる。ステップ１２４５が真（Ｙｅｓ）を返す場合、ステップ１２５０に進む。ステップ１２５０において、新しいブロブは、現在のセグメントを使用して形成される。新しいブロブを形成することは、新しいブロブラベルを現在のセグメントに割り当てること、ブロブ数を１増分すること及び現在のセグメント情報を使用してブロブ統計値を初期化することを含む。ステップ１２５０に続いて、処理は終了する。同様に、判定ブロック１２４５が偽（Ｎｏ）を返す場合、処理は終了する。
【０１８０】
２．２．２．２．ブロブマージの例
図１５は、ブロブマージ１５００の一例を示す。セグメント１５１０及び１５２０はblob[i]に属し、blob[i]はblob[j]に属するセグメント１５３０に連結される。セグメント１５２０の現在の開始位置及び現在の終了位置は、セグメント１５３０に対する上側開始位置及び上側終了位置と同様に示される。また、セグメント１５２０及び１５３０のオーバーラップを図１５に示す。ブロブマージ処理１５００は、２つのブロブの統計値を組み合わせること、１つのブロブラベルを別のブロブラベルにマッピングすること及びブロブ数を１減少することを含む。図１５の例の場合、ラベルｊはラベルｉにマップされる。以下の擬似コード命令は、ブロブ統計値を組み合わせるために使用される。
【０１８１】
blob[i].boundingBox = combine(blob[i].boundingBox, blob[j].boundingBox)
blob[i].size += blob[j].size
blob[i].tileBorderPixelCount += blob[j].tileBorderPixelCount
blob[i].horizontalEdges += blob[j].horizontalEdges - 2 * overlap
blob[i].verticalEdges += blob[j].verticalEdges
blob[i].YUV += blob[j].YUV
２．２．３．タイル内のマージ
タイルに対するブロブが連結成分解析により形成されると、次の段階では、色、サイズ及びブロブ境界線の長さの統計値を使用してセマンティカリー（semantically）に関連したブロブをマージする。この段階から先では、ブロブはマージのみされ、分割されない。従って、タイルは、過度のセグメント化レベルからセグメント化の現在のレベルに非常に近いレベルに移動する。図３７及び図３８は、タイル内のマージの一例を示す。ここで、ブロブ統計値は、ブロブの所定の対をマージするか否かを評価するのに使用される。この例において、４つの量子化色が存在し、連結成分解析は１０個のブロブを返す。図３７は、マージ前のブロブ３７１０を左側に示す。それらブロブの数は、残りの中間調パターン及び２つの別個の色領域間の色の「にじみ」の影響による。タイル内のマージの適用後、比較的長い境界線の長さを有する小さなブロブは、同様の色の特徴を有するより大きなブロブにマージされる。マージ後のブロブ３７２０は、例３７００に示される。図３８は、元のタイル３８１０とマージされたブロブ３８２０との比較３８００を含む。
【０１８２】
量子化及びブロブ形成処理は、多くの望ましくない又はエラーの小さなブロブを作成することが多い。それらは、入力画像の残りの中間調であるノイズスペックルに起因する小さなブロブの形式であるか、あるいはより大きな連結成分のエッジにおけるにじみの影響に起因する高いアスペクト比の細いブロブの形式である。エラーのブロブは、それらエラーのブロブをエラーのブロブが接触し且つ色が最も近いブロブとマージすることにより除去されてもよい。
【０１８３】
セグメント化及び連結成分処理により生成されるタイル中のブロブ数を制限することにより、速度及びメモリ使用量が向上する。タイル中のブロブが多すぎる場合、それらブロブが接触していない場合でも同様の色のブロブをいくつかマージすることによりその数を減少してもよい。これにより、別個の非連結部分を有するが単一の要素として扱われるブロブを生成する。これは多くの小さなノイズ要素を含むタイルにおいてのみ行なわれるため、品質は影響を受けない。それら小さなノイズ要素は、後のステップで廃棄される。
【０１８４】
図１９は、図１０のステップ１０３０を詳細に示す。ステップ１９０５において、現在のタイルの１つのブロブが取得される。ステップ１９１０において、ブロブの周囲の長さ対サイズ比がチェックされ、その比が大きいかを判定する。このパラメータが閾値レベルより大きいことが分かった場合、ステップ１９１５に進む。ステップ１９１０が偽を返す場合、ステップ１９３０に進む。ステップ１９１５において、タイルエッジに接触するブロブの画素の比がチェックされる。その比が閾値を超える場合、ステップ１９２０に進む。ステップ１９２０において、ブロブは「タイル間の強制マージ」としてマーク付けされる。ブロブに対する強制マージフラグが設定され、それにより、ブロブは図１４のステップ１４２０において隣接するタイルの連結成分とマージされる可能性が非常に高くなる。ステップ１９２０の後、ステップ１９３０に進む。ステップ１９１５において、ブロブのタイルエッジ比が閾値を下回る場合、ステップ１９２５に進む。ステップ１９２５において、ブロブは、最も近い色を有する隣接するブロブとマージされる。現在のブロブと接触する全てのブロブ及び現在のブロブからの色の距離が見つけられる。現在のブロブは、色が最も近い隣接するブロブとマージされる。その後、ステップ１９３０に進む。判定ステップ１９３０において、処理されるタイルのブロブが更に存在するかを判定するためのチェックが行なわれる。ステップ１９３０が真（Ｙｅｓ）を返す場合、ステップ１９０５に戻る。偽（Ｎｏ）を返す場合、ステップ１９３５に進む。
【０１８５】
判定ステップ１９３５において、タイルの現在のブロブ数がチェックされ、ブロブが多すぎるかを判定する。ブロブ数が予め定められた制限より多いことが分かった場合、ステップ１９４０に進む。多くない場合、処理は終了する。ステップ１９４０において、タイルエッジに接触していない同一の量子化色クラスのブロブがマージされる。これは、各量子化色クラスに対して行なわれる。タイルエッジに接触するブロブは相当に大きいＣＣの一部を形成する可能性があり、それらブロブをマージすることは品質に悪影響を与える可能性があるため、それらブロブはマージされない。ステップ１９４５において、タイルの現在のブロブ数が再びチェックされ、タイルのブロブが多すぎるかを判定する。その数が予め定められた制限を下回ることが分かった（Ｎｏ）場合、処理は終了する。制限を下回らない場合、ステップ１９５０に進む。ステップ１９５０において、タイルエッジに接触する各色のブロブがマージされる。ステップ１９５０は、ステップ１９４０と同様の処理を実行するが、タイルエッジに接触しないブロブを考慮して、制限を下回るようにブロブ数を減少する。その後、処理は終了する。
【０１８６】
２．２．４．タイル間のマージ
図１３は、ステップ１０４０のタイル間のマージ処理を詳細に示す。この処理は、現在のタイルの左側境界線及び上側境界線の各々に対して順不同に繰り返される。以下の説明は、現在のタイルの左側境界線又は上側境界線に沿うマージに適用可能である。例えば、３２×３２のタイルは隣接タイルの状態を含む３２画素の境界線を有し、各画素はブロブラベルを有する。隣接タイルの状態は３２画素の境界線を有し、各画素はＣＣラベルを有する。従って、境界線に沿う各画素ステップに対して、ブロブラベルが現在のタイルに存在し且つ対応するＣＣラベルが隣接タイルの状態に存在する。ステップ１３１０において、次のタイル境界線画素に対する現在のタイルのブロブラベル及び隣接タイルの状態のＣＣラベルを取得することにより、共通の境界線に沿って処理が開始される。
【０１８７】
処理が境界線に沿って進行するため、判定ブロック１３２０においてテストが実行され、ＣＣラベルの変化、ブロブラベル又は最後の画素を検出する。現在の画素が最後の境界線画素である場合、判定ブロック１３２０はＹｅｓを返す。ステップ１３２０が偽（Ｎｏ）を返す場合、ステップ１３８０に進む。ステップ１３２０が真（Ｙｅｓ）を返す場合、ステップ１３３０に進む。ステップ１３３０は、マージの候補として利用可能であるブロブの数及びＣＣの数をチェックする。判定ステップ１３４０において、候補カウントの条件が満足されるかを判定するためのチェックが行なわれる。ブロブ及びＣＣのマージ候補カウントが以下に説明され且つ図１７に示される予め定められた条件１７００を満足する場合、判定ブロック１３４０はＹｅｓを返す。
【０１８８】
図１３の判定ステップ１３４０が偽（ＮＯ）を返す場合、ステップ１３７０に進む。真（ＹＥＳ）を返す場合、ステップ１３５０に進む。ステップ１３５０は、色距離計測値に基づいてマージするために、マージ候補の中から最適なブロブ／ＣＣの対を識別する。（Ｙｃｃ，Ｕｃｃ，Ｖｃｃ）及び（Ｙｂｌｏｂ，Ｕｂｌｏｂ，Ｖｂｌｏｂ）がＣＣ／ブロブ候補の対に対するＹＵＶ色値であると仮定すると、色２乗距離ｓｄは以下の式により与えられる。
【０１８９】
【数１】
2008524728.tif 000004
【０１９０】
式中、Ｗy、Ｗu及びＷvは、Ｙチャネル、Ｕチャネル及びＶチャネルに対する重みである。重みＷｙ、Ｗu及びＷvは、それぞれ０．６、０．２及び０．２に設定されてもよい。最適なブロブ／ＣＣの対は、最小２乗距離値を有する対である。
【０１９１】
この最適なブロブ／ＣＣの対は、種々のマージ動作を実行するステップ１３６０により処理される。ステップ１３６０は、図１４を参照して更に詳細に説明される。ステップ１３６０の後又は判定ブロック１３４０のＮｏの後は、ステップ１３７０に進む。ステップ１３７０において、ブロブ候補カウント及びＣＣ候補カウントが更新される。図４８は、全ての動作条件に対する更新前後のＣＣ候補カウント及びブロブ候補カウントを示す。ＣＣラベル及びブロブラベルが変化したことが分かると、ＣＣ候補カウント及びブロブ候補カウントは、マージ前に全ての可能なカウントの組合せに対して１に設定される（更新前の「ｘ」は「任意」を示す）。１つのラベルのみが変化したことが分かり且つタイルの境界線の両側に２つの候補が存在する場合、カウントは、２つの候補のうちマージされる候補に依存して０又は１に設定されてもよい。第２のブロブがマージに対して選択される場合（図４９の４９２０を参照）、双方の候補カウントは、マージが行なわれた後に０に設定される。しかし、マージに対して第１のブロブが選択されるか又はブロブが選択されない場合、双方のカウントは１に設定される。候補カウントの更新が必要とされるその他の場合、変化したラベルに対するカウントは１増分され、変化していないラベルに対するカウントは１に設定される。
【０１９２】
ステップ１３２０又は１３７０の後、判定ブロック１３８０に進む。判定ブロック１３８０において、現在の画素が最後の境界線画素であるかを判定するためのチェックが行なわれる。ステップ１３８０が偽（Ｎｏ）を返す場合、ステップ１３１０における次の画素位置に移る。真（Ｙｅｓ）を返す場合、処理は終了する。
【０１９３】
２．２．４．１．タイル間マージ条件
図１７によると、通常、各側にある１つの候補がマージするのに十分である時にＣＣラベル及びブロブラベルが同時に変化する場合を除いて、一方側に２つの候補が存在し且つ他方側に１つの候補が存在する場合にマージは行なわれる。これは、一方側にある２つの隣接する候補が他方側にある同一候補にマージすることを回避するためである。図１７は条件を示し、タイル間マージ動作はその条件下で実行されてもよい。現在のＣＣカウント及びブロブカウントが（１，１）である場合、双方のラベルは行なわれるマージに対して同時に変化する必要がある。しかし、現在のＣＣカウント及びブロブカウントが（１，２）又は（２，１）である場合、行なわれるマージに対してはいずれかのラベルにおける変化で十分である。（２，２）となることはない。
【０１９４】
２．２．４．２．タイル間マージの例
図４９は、ブロブ候補とＣＣ候補との間のマージの図を提供する。以下の３つの典型的な例が存在する。i）４９１０において、各側は１つの候補のみを有する。ii）４９２０は１つのＣＣ及び２つのブロブを有する。iii）４９３０は２つのＣＣ及び１つのブロブを有する。例４９２０において、ＣＣ候補は２つのブロブ候補に連結される。双方のブロブはＣＣの色に近いが、一方のみがＣＣとマージされてもよいと仮定する。マージが１度に各側の１つの候補に対して上から下へ順に実行される場合、上側のブロブがＣＣとマージし、下側のブロブはマージされない。これは、下側のブロブがマージにより適した候補である可能性があるため、最も望ましい結果をもたらすわけではないことがある。従って、４９２０及び４９３０の例と同様の例の場合、一方側で２つの候補が必要とされる。例４９１０は、４連結に対して別のマージの組合せが存在しないため、各側に１つの候補を必要とするのみである。
【０１９５】
２つ以上のタイルにわたる色連結成分は、タイルラスタ順にブロブをタイル間マージすることにより形成される。図３９の例３９００に示すように、これはラスタ順に実行される。ここで、タイル３９１０内のブロブは、それぞれタイル３９１０の左側及び上側に位置する２つの隣接タイル３９３０及び３９２０のいずれかのブロブとマージされる。
【０１９６】
各ＣＣは、バウンディングボックス、中間色、画素のサイズ及び接触するＣＣに関する情報を保持するデータ構造に格納される。タイル間のマージ処理中、現在のタイルの全てのブロブはＣＣラベルを割り当てられ、対応するＣＣデータ構造はブロブ統計値を使用して更新される。図１６に示されるように、マージは、現在のタイル１６３０と現在のタイル１６３０の左側境界線及び上側境界線に沿う２つの隣接タイル１６１０、１６２０の状態１６１２、１６２２との間で実行される。現在のタイル１６３０は、ブロブを形成するために処理され且つ共通の境界線に沿う画素に対してブロブラベル１６３４を有する画素データのブロックである。これに対して、先のタイル状態１６１２、１６２２は画素データを含まず、ブロブにリンクされる連結成分情報及びブロブ統計値のみを含む。タイル状態１６１２、１６２２は、タイル１６１０、１６２０の境界線に沿うブロブに関する情報とそれらブロブが属するＣＣ１６１４、１６２４に対するポインタとを含むコンパクトなデータ構造である。特に、左側タイル状態１６１２及び上側タイル状態１６２２の２つの異なるタイル状態が存在し、各タイル状態は、タイルの右側及び下側のタイルとマージするために、現在のタイル１６３０との共通の境界線に沿った各画素に対してＣＣラベル情報１６１４、１６２４を有する。この時点で、先のタイルのブロブは連結成分の一部である。
【０１９７】
２．２．４．３．最適なブロブ／ＣＣの対の処理
図１４は、図１３のステップ１３６０を更に詳細に示し、ステップ１３５０で識別された最適なブロブ／ＣＣの対を入力とする。処理はステップ１４１０で開始される。判定ステップ１４１０において、ブロブが別のＣＣと既にマージされているかを判定するためのチェックが行なわれる。判定ブロック１４１０において、識別されたブロブがＣＣラベルを既に割り当てられている場合、判定ブロック１４４０に進む。割り当てられていない場合、判定ブロック１４２０に移る。判定ブロック１４２０において、識別されたブロブ／ＣＣの対の間のステップ１３３０で計算された色距離は、色マージ閾値と比較される。閾値の値は４５０でもよい。強制マージフラグが設定されている場合、閾値は９００でもよい。色距離が閾値より小さい場合、ステップ１４３０に進む。閾値以上である場合、ステップ１４６０に進む。ステップ１４３０において、ブロブ及び識別されたＣＣはマージされる。これは、ブロブの統計値を使用してＣＣの統計値を更新し且つＣＣのラベルをブロブに割り当てることにより行なわれる。その後、処理は終了する。ステップ１４６０において、新しいＣＣが現在のブロブに対して形成される。その後、処理は終了する。
【０１９８】
判定ブロック１４４０において、識別されたＣＣと識別されたブロブが属するＣＣとの間の色距離は、マージのために色閾値と比較される。２つのＣＣ間の色距離が閾値を下回る場合、ステップ１４５０に進む。ステップ１４５０において、ＣＣはマップされる。これは、ＣＣの統計値を組み合わせ且つそれらＣＣをリンクする「マップ」ポインタを設定することにより行なわれる。その後、処理は終了する。同様に、ステップ１４４０が偽（Ｎｏ）を返す場合、処理は終了する。
【０１９９】
２．２．４．４．ＣＣマッピングの結果
図１８は、図１４のステップ１４５０によるＣＣマッピング処理の結果を示す図である。図１８は、ＣＣのリンクされたリスト１８５０がＣＣ１８０５、１８１０、１８２０、１８３０をマージした結果として形成できることを示す。この図において、ＣＣ（ｋ）１８３０は、ＮＵＬＬ１８４０を指し示すマップポインタ１８３２を有し、別のＣＣにマージされなかったことを示すため、ルートＣＣと呼ばれる。更に、ルートＣＣの統計値１８３４は、いくつかのマージを介して個別のＣＣの統計値を累積することにより判定される。例えば、ＣＣ１８３０の最終的な統計値は、ＣＣ（ｈ）１８０５、ＣＣ（ｉ）１８１０、ＣＣ（ｊ）１８２０及びＣＣ（ｋ）１８３０がマージされる前のそれらＣＣの組合せ統計値である。統計値が組み合わされる順番は重要ではない。図１８において、ＣＣ（ｉ）１８１０はＣＣ（ｊ）１８２０を指し示し、ＣＣ（ｈ）１８０５及びＣＣ（ｊ）１８２０はＣＣ（ｋ）１８３０を指し示す。
【０２００】
２．２．５．マージの後処理
図５０は、図１０のマージの後処理ステップ１０５０を示すフローチャートである。ステップ５０１０において、図１４のステップ１４６０と同様の処理で、新しいＣＣが現在のタイルのマージされていない各ブロブに対して形成される。ステップ５０２０において、ブロブの形状及び見えを格納する２値画像は、ブロブラベルを使用して出力される。ｎ個のブロブを含むタイルの場合、ｎ−１個の領域が取り出された後にｎ番目の２値画像が残りの領域として黙示的に格納されるため、ｎ−１個の２値画像が出力される必要がある。従って、単一のブロブを含む均一のタイルは、２値画像の格納を必要としない。別の実施形態において、２値画像は指標マップとして単一のコンパクトなデータ構造に格納されてもよい。ここで、各画素位置は、ブロブ指標を有し且つｌｏｇ２（ｎ）ビットを使用して表される。例えば、タイル毎の最大ブロブ数が１６である場合、各画素位置におけるブロブ指標は、４ビットの数字を使用して符号化される。更に別の実施形態において、２レベルのタイルに対する２値画像は、１ビットのビットマップを使用して格納されてもよい。ステップ５０３０において、現在のタイル内の各ＣＣの接触リストが更新される。これは、そのタイルの隣接する全てのＣＣを識別することにより行なわれる。ステップ５０４０において、タイル状態が出力される。カラーセグメント化処理は、次の入力タイルとマージするためにブロブ及びＣＣの情報をコンパクトなタイル状態データ構造に格納する。上述のように、２つのタイル状態が存在する。ここで、左側タイル状態はタイルの右側のタイル境界線に沿ってＣＣラベル情報を有し、上側タイル状態はタイルの下側のタイル境界線に沿ってＣＣラベル情報を有する。
【０２０１】
２．３．セグメント化の例
図２５（ａ）は、３つ以上の量子化レベルに基づくセグメント化の利点を示す単純な例を示す。背景２５１０は黒色であり、その上に白色の三角形２５２０及び灰色の単語「text」の文字２５３０が配置される。通常、この画像の２値セグメント化の結果としては、図２５（ｂ）及び図２５（ｃ）に示すように、背景２５１０又は三角形２５２０とtext２５３０がマージされる。それらセグメント化のいずれも、テキスト領域を選択するために文書レイアウト解析に使用できない。すなわち、テキストの特徴が失われる。
【０２０２】
同時に、連結成分のレイアウト解析の単純化を可能にする２値セグメント化のある特定の特徴が存在する。４方向連結により形成されるＣＣ及び連結された外側の境界線を含むページの例を考慮する。この場合、ページのエッジ上を除いて、境界で別のＣＣに接触する各ＣＣはその別のＣＣに含まれるか又はその別のＣＣを含み、１つのＣＣは単一の他のＣＣによってのみ含まれる。明確な包含階層は、生成され且つ木構造の形式で表される。木の連続する各層は、先の層に対して逆極性のＣＣを含み、各枝は、固有の親を共有するＣＣのセットから構成される。そのような階層は、グループ化される候補であるＣＣのサブセット（固有の親を共有するサブセット）を選択するのに使用されるため、ＣＣをグループ化する際に有用である。これは、１度に考慮される必要があるＣＣがより少ないため処理速度に関して有益であり、また正確度に関しても有益である。ページの異なる領域からのＣＣは、木の異なる枝に存在してもよく、グループ化されない。更に、ＣＣの処理は、木の最上部から開始でき、処理時間を更に向上するためにある特定の分類（例えば、テキスト）のＣＣより下にある木の枝に対しては終了される。
【０２０３】
セグメント化が２値でない場合、通常、明確な階層は有用に生成されない。図２５（ａ）の文字「e」を考慮する。この文字の外側境界線は、黒色の背景及び白色の三角形の双方に接触するため、背景又は三角形がこのＣＣの親と考えられる。三角形の場合は、外側境界線が背景及び全ての文字に接触するため更に複雑である。この不明確さにも関わらず、オブジェクトをグループ化する際に階層を使用する利点は達成される。これは、各子に対して固有の親を必要とせずに、境界線で接触する２つのＣＣ間の親子関係の特性を規定することにより行なわれる。例えば、２つのＣＣが境界線で接触し且つそれらＣＣの一方（親）のバウンディングボックスが第２のＣＣ（子）のバウンディングボックスを完全に囲む場合、親子関係はそれらＣＣ間で定義される。図２５（ａ）に示す例に対してこの定義を使用すると、三角形及び単語「text」の全ての文字は背景ＣＣの子と定義される。
【０２０４】
３．レイアウト解析  
レイアウト解析は、ページの前景内容が識別されるシステムの一部である。中間（レイアウト解析）モジュールは、連結成分のリスト及び「接触リスト」をフロントエンドモジュールからの入力とする。レイアウト解析の出力は、本質的に、スキャン済み画像の前景内容（例えば、テキスト、行、黒丸点）を表す連結成分に対する決定である。レイアウト解析は、２値画像ではなくカラーセグメント化に基づく。これは、見つけることが可能な前景オブジェクトの種類に関して多くの利点を有するが、２値画像に対しては存在した明確な包含階層が存在しない。効率に対しては、レイアウト解析は、グループ化の基となる連結成分に対するバウンディングボックス及び他のいくつかの一般的な統計値のみを使用する。レイアウト解析は、元の画素データ又はビットレベルのセグメント化に対するアクセス権を有さない。
【０２０５】
レイアウト解析の主なステップは、接触リストに基づいて包含階層を形成するステップ、バウンディングボックス及び色に基づいてＣＣをグループ化するステップ、及びＣＣがテキストの行のように適切に位置合わせされるかを判定するためにそれらグループをテストするステップである。接触リストは、２レベルの包含階層に相当する多色階層であるＣＣに対する階層を提供するのに使用される。所定のＣＣは、接触リスト要素のサブセットの親と考えられる。特に、所定のＣＣは、その所定のＣＣが接触し且つバウンディングボックスが親ＣＣのバウンディングボックス内に完全に含まれるＣＣの親であってもよい。
【０２０６】
図４は、図１のステップ１２０を詳細に示し、ステップ１１０により生成されたコンパクトなＣＣ情報、統計値及び「接触リスト」情報を入力とする。接触リストは、互いに隣り合うＣＣ、すなわち境界線を共有するＣＣを説明する。図４の処理は、入力画像に対するアクセス権を有さない。この情報の一部は、入力画像からの全てのＣＣのリストである。
【０２０７】
ステップ４１０において、ＣＣは統計値に基づいて分類されるため、色包含階層はＣＣのリストから形成される。色包含階層は、各ノードがＣＣである構造である。親ノードは、親ノードが接触するＣＣを子として有し、それらＣＣのバウンディングボックスは親ＣＣのバウンディングボックス内に完全に含まれる。子ノードは、２つ以上の親ノードを有してもよい。解析は、バウンディングボックスのサイズ及び形状のみに基づいてもよい。１／１００インチ未満（例えば、３００ｄｐｉの解像度で３画素）の幅及び高さを有するＣＣは、ノイズと考えられて除去される。１インチを上回る幅又は高さ、あるいは８／１５インチを上回る幅及び高さを有する連結成分は、画像として分類される。その他は、テキストである可能性があるとして分類される。別の実施形態は、表、連結成分の画素数等の他の文書レイアウトの特徴と関連する分類を含んでもよく、他の値を使用してもよい。
【０２０８】
ステップ４２０において、テキストである可能性があるＣＣはグループ化され、テキストの領域を表す。通常、ＣＣは近傍のＣＣとグループ化され、効率的なグループ化アルゴリズムは、グループ化の判定前に隣接するＣＣを見つけることにより近傍のＣＣとグループ化することを利用する。フロントエンドで使用される高解像度カラーセグメント化方法は、典型的なスキャン文書上でのグループ化に対して考慮される何千もの兄弟（sibling）を見つけることができる。それらの場合、２つずつの単純な比較、すなわちＯ（Ｎ２）の方法を使用して隣接するＣＣを見つけることは遅くなり、隣接するＣＣを判定するより高度な方法が使用される必要がある。三角形分割は、色包含階層のノードに対して実行されてもよい。ページ上のＣＣのバウンディングボックスの中心が平面のノードを規定する場合、ドローネ三角形分割等の効率的な三角形分割方法はその目的で使用される。それら方法は、通常Ｏ（ＮｌｏｇＮ）の処理である。
【０２０９】
図５３は、平面のノードのセットのドローネ三角形分割（破線により示される）及びボロノイ図（実線により示される）の例５３００を示す。ボロノイ図は、他のポイントより所定のポイントに近い領域へのページのセグメント化である。ドローネ三角形分割は、ボロノイ図の境界線を共有するポイントを連結することにより生成されるボロノイ図の２元的なものである。平面のランダムに位置するポイントのうち平面の典型的なポイントは、その三角形分割において約５つのポイントをそのポイントに連結させる。それらポイントは、グループ化の段階において隣接するＣＣに対して適切な候補であると考えられる。
【０２１０】
三角形分割の出力は、ＣＣのグループを形成する方法に適する。ドローネ三角形分割において隣接するそれらＣＣは、バウンディングボックスの２つずつの比較に基づいてグループ化される。初期グループ化の後、隣接するＣＣの対にわたるパスが続き、それらグループを結合するか又はグループ化されていないＣＣを既存のグループに配置する。処理は、データを通して単一パスで異なる種類のグループ化（テキスト、表等）を検索できる。テキストＣＣのグループは、一般に以下の特徴により特徴付けられる。すなわち、同様の色、同様のバウンディングボックスのサイズ、水平軸又は垂直軸に沿った粗位置合わせ（テキストの位置合わせに依存する）及びＣＣのサイズに対して位置合わせの軸に沿って近接することである。
【０２１１】
ステップ４３０において、ＣＣのグループがチェック又は検証され、テキスト文字であるＣＣのグループを判定する。グループ化の段階中に生成されたマージ及びグループの内容に関連する情報は、プロセッサにより格納される。個別の各グループに関連する情報は、色、バウンディングボックス及びグループの内容を含むデータ構造に格納されてもよい。グループの内容が変更されると、それら構造はグループ化の段階中に更新される。別の実施形態において、グループマーカはＣＣデータ構造に含まれ、グループの色及びバウンディングボックス等のデータはＣＣデータから再構成される。ステップ４３０において、テキスト文字ＣＣは、ＣＣがテキストであることを保証する追加のチェックである位置合わせテストが行なわれる。
【０２１２】
形成されたグループは、一般に全てのテキストを含むが、テキストとして分類するのは望ましくない画像の部分を含む可能性がある。この問題を低減するために、グループは検査され、グループの連結成分がテキストのように整然とした行（又は列）に配置されるか、あるいはノイズ又は同様の色を有する画像の領域にその傾向があるようにランダムに配列されるかを確認する。
【０２１３】
これは、主に、各側のエッジであるバウンディングボックスのエッジ（すなわち、左側エッジ、上側エッジ、右側エッジ又は下側エッジ）の４つのヒストグラムを形成することにより行なわれてもよい。それらのうちの１つは、テキストの基準線が存在する完全なビンを有し、他の場所では空である必要がある。これをチェックするために、ヒストグラムビンの２乗和が見つけられ、推測値と比較されてもよい。４つのヒストグラムビンのうちいずれかがランダムに配置されたバウンディングボックスに対して推測されるヒストグラムビンより相当に大きいことが分かった場合、グループはテキストであると考えられる。バウンディングボックスの全ての４つのエッジは、横向き又は上下反対にスキャンされたページ、あるいは行ではなく列に配置されたテキストを考慮するために使用される。
【０２１４】
３．１．ＣＣのグループ化
図２０は、ステップ１１０によりセグメント化されたＣＣのセットをグループ化する図４のステップ４２０を詳細に示す。処理は、ルートＣＣを取得することによりステップ２０１０で開始される。ルートＣＣは、カラーセグメント化段階中に別のＣＣにマージされなかったＣＣである。ステップ２０２０において、ルートＣＣの子ＣＣが見つけられる。このルートＣＣに対する子ＣＣのリストが形成される。子は、バウンディングボックスが現在のルートＣＣのバウンディングボックス内に完全に含まれ且つ境界線でルートＣＣのバウンディングボックスに接触するＣＣと定義されてもよい。ステップ２０２０については、図２２と関連して更に詳細に説明する。
【０２１５】
ステップ２０２０からステップ２０３０に移る。ステップ２０３０において、現在のＣＣの子に対する隣接解析が実行される。各子に対して、隣接するＣＣのセットが見つけられ、それらはある定義された意味で近接する。これは、例えば各子ＣＣのバウンディングボックスの中心のドローネ三角形分割を見つけることにより達成されてもよい。三角形分割のエッジは、隣接するＣＣ間の連結を表す。別の方法は、近接を定義するために、ＣＣのリストに対する色情報及びバウンディングボックスデータの異なる要素を使用してもよい。ステップ２０４０において、隣接データは、初期グループ化を実行するために使用される。この処理ステップ２０４０は、文書レイアウトの特徴を判定するために、同一の子リスト内に同様のプロパティ（例えば、配置及び色）のオブジェクトのグループを形成する。図２３は、ステップ２０４０を更に詳細に説明する。
【０２１６】
判定ステップ２０５０において、処理されるルートＣＣが更に残っているかを判定するためのチェックが行なわれる。ルートＣＣが更に存在する場合、ステップ２０１０に戻り、次のルートＣＣが取得され且つ処理される。存在しない場合、グループ化段階（４２０）は終了する。
【０２１７】
３．１．１．親ＣＣに対する子の検索
図２２は、所定の親ＣＣに対して子ＣＣを見つけ且つ子のリストを形成するステップ２０２０を示す。ステップ２２１０において、接触ＣＣが親ＣＣの接触ＣＣのリストから取得される。ステップ２２２０において、ルートＣＣが見つけられる。これは、接触ＣＣと関連付けられたカラーセグメント化段階からのマージ情報を使用して行なわれる。判定ステップ２２３０において、図４のステップ４１０によるＣＣの分類は、ＣＣがクラステストを満足するか（すなわち、このＣＣを子リストに格納するのが適切か）を判定するためにチェックされる。ノイズサイズのＣＣ以外の全てのＣＣが格納されてもよいが、別の実施形態は、クラスの他の組合せ、例えばテキストである可能性があるＣＣのみを格納してもよい。接触ＣＣのクラスが適切である場合、ステップ２２４０に進む。適切でない場合、ステップ２２６０に進む。判定ステップ２２４０において、ＣＣは、親ＣＣに対する包含のチェックが行なわれる。包含テストは、ＣＣのバウンディングボックスが親ＣＣのバウンディングボックスの範囲に完全に含まれることをチェックすることを含むが、別の方法も可能である。包含テストが満足される場合、ステップ２２５０に進む。ステップ２２５０において、ＣＣは子のリストに含まれ、ステップ２２６０に進む。全てのＣＣは子のリストに１度だけ現れるべきであるため、ステップ２２５０は、ＣＣがリストに含まれていないことをチェックすることを含む。このチェックは、ハッシュテーブルを使用して実行されてもよい。その後、判定ステップ２２６０に進む。ステップ２２６０は、親の接触リストに更なる要素が存在するかをテストする。存在する場合、ステップ２２１０に進む。存在しない場合、現在のＣＣに対する子のリストは完了し、処理は終了する。
【０２１８】
３．１．２．初期グループ化
図２３は、図２０のステップ２０３０からの隣接データを使用して実行される初期グループ化の図２０のステップ２０４０を示す。この方法は、純粋にテキストをグループ化するように設計されてもよいが、別の実施形態においては、表等の他の文書オブジェクトを分類又はグループ化してもよい。初期グループ化は２パス処理であってもよく、第１のパスはＣＣをグループに結合し、第２のパスはグループを更に大きなグループに結合する。ステップ２３０５において、カウンタＰＡＳＳは１に設定される。ステップ２３１０において、子が取得される。ステップ２３２０において、子の隣接ＣＣが取得される。ステップ２３３０において、子及び隣接ＣＣがグループ化テストを満足するかを判定するためのチェックが行なわれる。それらオブジェクトは、一連のテストを使用してグループ化のためにテストされる。テストは、初期分類、配置及び色に基づいてもよく、第１のパスと第２のパスとの間で異なる。以下に説明する図２６は、文書の領域の抽出を説明する。図２６を使用して、ステップ２３２０のグループ化テストを説明する。
【０２１９】
図２３を参照すると、グループ化テストが満足される場合、ステップ２３４０において、子及び隣接するＣＣはグループ化される。その後、ステップ２３５０に進む。ステップ２３３０が偽を返す場合、ステップ２３５０に進む。２つのＣＣがグループ化される場合、各ＣＣは同一グループに属することがマーク付けされる。ＣＣにマーク付けされるグループは、２つのＣＣの先のグループ化に依存する。いずれのＣＣもグループ化されていない場合、新しいグループが双方のＣＣを含んで形成される。２つのうち一方のみがグループ化されている場合、他方のＣＣはそのグループに含まれる。双方がグループ化されており且つそれらグループが同一である場合、処理は行なわない。最後に、双方がグループ化されており且つそれらグループが異なる場合、２つのグループは単一グループにマージされ、他方のグループは空であるとマーク付けされる。
【０２２０】
ステップ２３５０において、現在のＣＣの隣接ＣＣが更に存在するかを判定するためのチェックが行なわれる。更なる隣接ＣＣが存在する場合、ステップ２３２０に進む。存在しない場合、ステップ２３６０に進む。ステップ２３６０において、処理は、親ＣＣの子が更に存在するかをチェックする。更なる子が存在する場合、ステップ２３１０に進む。存在しない場合、ステップ２３７０に進む。ステップ２３７０において、双方のパスが完了したか（ＰＡＳＳ＞１？）を判定するためのテストが行なわれる。完了した場合、処理は終了する。第１のパスのみが完了した場合、ステップ２３８０に進み、カウンタＰＡＳＳは増分される。ステップ２３９０に進む。ステップ２３９０において、子のリストの開始を返す。その後、ステップ２３１０に戻り、第２のパスが開始する。
【０２２１】
別の一実施形態において、処理２０４０は、子ＣＣ及び隣接ＣＣの対ではなく三角形分割データのエッジに対してループする。これは、隣接ＣＣの各対が１度のみ考慮されるため、僅かに効率的である。
【０２２２】
３．１．２．１．２つのＣＣに対するグループ化テスト
２つの隣接するＣＣに対する好ましいグループ化テストを説明するために、図２６は、文字「g」及び「h」の２つのオブジェクトのみを含む文書の領域からの単純な抽出を示す。破線は、各文字に対するバウンディングボックスの座標を表す。座標は、ｉ番目のＣＣの左右のｘ座標及び上下のｙ座標に対してｘli、ｘri、yti及びybiに位置付けられる。添え字１及び２は、１番目のＣＣ及び２番目のＣＣ（すなわち、文字「g」及び「h」）をそれぞれ示す。本実施形態の処理は、ＹＵＶ空間の各ＣＣの色［ｙｉ，ｕｉ，ｖｉ］、並びにバウンディングボックス(bounding boxes)の幅ｗｉ及び高さｈｉを更に使用する。
【０２２３】
２つのＣＣに対する水平オーバーラップ距離は、双方のＣＣの範囲に含まれる水平セクションの長さと定義されるか、あるいはＣＣがオーバーラップしない場合はゼロと定義される。垂直オーバーラップ距離ｄｙｏｖは同様に定義され、図２６に示される。図２６において、水平オーバーラップは、ゼロであるため示されない。オーバーラップ距離は以下のように表される。
【０２２４】
【数２】
2008524728.tif 000005
【０２２５】
２つのＣＣ間の水平内部距離は、一方のＣＣの左側エッジと他方のＣＣの右側エッジとの間の最小距離と定義されるか、あるいは水平オーバーラップ距離がゼロでない場合はゼロと定義される。垂直内部距離は、ＣＣの上下のエッジを使用して同様に定義される。図２６において、水平距離ｄｘｉｎは示されるが、この例の場合、垂直内部距離はゼロであるため示されない。それら内部距離は、以下のように表される。
【０２２６】
【数３】
2008524728.tif 000006
【０２２７】
第１のパスにおいて、２つの隣接するＣＣは、色、サイズ及び位置合わせに基づいて３つの条件の要求を満足する場合、テキストとしてグループ化される。色の条件は、以下の場合に満足される。
【０２２８】
【数４】
2008524728.tif 000007
【０２２９】
式中、閾値パラメータはＴＣ＝５００であってもよい。
【０２３０】
サイズのテストは、以下の場合に満足される。
【０２３１】
【数５】
2008524728.tif 000008
【０２３２】
式中、ｗｍｉｎは２つのＣＣの最小幅であり、ｗｍａｘは最大幅であり、ｈｍｉｎは最小高さであり、ｈｍａｘは最大高さである。閾値パラメータはＴＲ＝０．５５であってもよい。
【０２３３】
位置合わせの条件は、以下の条件のいずれかが満たされる場合に満足される。
【０２３４】
[(dxov ＞ 0)且つ(dyin/max(wmin, hmin) ＜ TS)]
又は
[(dyov ＞ 0)且つ(dxin/max(wmin, hmin) ＜ TS)]                    （５）
閾値パラメータはＴＳ＝０．６５であってもよい。
【０２３５】
第２のパスは、個別のＣＣではなくグループに基づいてパラメータを使用する。各グループの要素の中間色［Ｙｉ，Ｕｉ，Ｖｉ］、幅Ｗｉ及び高さＨｉが使用されてもよい。グループ化されていないＣＣの場合、それら値は、個別のＣＣに対する色、幅及び高さパラメータに設定される。テストは、考慮されるＣＣの中心間の距離Ｄを更に使用する。Ｄは以下のように定義される。
【０２３６】
【数６】
2008524728.tif 000009
【０２３７】
第１のパスの場合、一連の条件が満たされた場合にグループは結合される。それら条件は、色類似性Ｔｃ、サイズＴＲ及び分離Ｔｏに関連し、以下の式で記述される。
【０２３８】
【数７】
2008524728.tif 000010
【０２３９】
式中、パラメータ値は、いずれかのグループが３つ以下の要素を含む場合にはＴＣｇ＝５００、ＴＲ＝０．５５、ＴＲ２＝０．３及びＴＤ＝１であってもよく、それ以外の場合にはＴＣｇ＝１００、ＴＲ＝０．５５、ＴＲ２＝０．３及びＴＤ＝２であってもよい。第２のグループ化段階において、位置合わせテストは使用されない。
【０２４０】
閾値は、各ＣＣの画素カウント等のグループ化のためにテストされるＣＣの特徴に依存してもよい。
【０２４１】
３．２．グループのチェック
図２１は、グループをチェックする図４のステップ４３０を詳細に示す。この処理は、各グループがテキストから構成されるか否かを判定する。この判定は、主にグループのオブジェクトが行又は列のどちらで位置合わされたかに基づいて行なわれる。グループは、テキストであると仮定され、テキストと同等のプロパティに対してテストされる。グループがそれらテストを通過しない場合、グループは拒否される。
【０２４２】
ステップ２１１０において、ステップ４２０で形成された次のグループが取得される。ステップ２１２０において、グループのテキスト文字のサイズが推定される。推定サイズは、個別の文字の長さの統計値に基づく。それら長さは、オブジェクトのバウンディングボックスの最大幅及び最大高さと定義されてもよい。この尺度は、ページ上のテキストの歪み及び位置合わせの影響を殆ど受けず、所定のサイズの典型的なフォント内の文字のセットにわたり十分に均一である。別の実施形態において、バウンディングボックス領域、画素カウント及び／又はストローク幅は、長さの尺度として使用されてもよい。文字の長さのヒストグラムが形成されてもよく、推定サイズは、閾値より多い要素数を含むヒストグラムビンと関連付けられる最大長さに基づいてもよい。使用される閾値は、少なくとも３つのオブジェクトであり且つ少なくともグループのオブジェクト数の１５％である。そのようなビンが存在しない場合、推定値は返されない。
【０２４３】
判定ステップ２１２５において、文字サイズが見つけられたかを判定するためのチェックが行なわれる。適切な文字サイズが見つけられなかった場合、そのグループは拒否され、ステップ２１６０に進む。見つけられた場合、ステップ２１３０に進む。
【０２４４】
ステップ２１３０は、グループのＣＣとグループのバウンディングボックスに含まれるがいずれのグループにもまだ割り当てられていない他の適切なＣＣとを処理する。この処理２１３０は、最初のグループ化の対象から外れたテキスト及び分類に基づく初期グループ化の対象から外れた句読点等の小さなオブジェクトを追加するのに有益である。グループのオブジェクトと親を共有し且つ十分に類似した色であるオブジェクトのみがグループに追加されてもよい。グループ及び含まれるＣＣに対する色類似性の条件は、以下の条件が満たされる場合に満足される。
【０２４５】
【数８】
2008524728.tif 000011
【０２４６】
式中、［Ｙ，Ｕ，Ｖ］はグループの色であり、［ｙ，ｕ，ｖ］はＣＣの色である。パラメータ値は、ＴＣｇ２＝５００であってもよい。
【０２４７】
あるいは、ステップ２１３０において、配置テストが適用されてもよく、ＣＣのバウンディングボックスがグループのバウンディングボックスに完全に含まれるという条件は、グループに近接するオブジェクトがそのグループに結合するように緩和されてもよい。ステップ２１３０の他の方法は、いくつかのオブジェクトをマージして文字を形成してもよい。これは、２つ以上の別個のオブジェクトとしてセグメント化される複雑な文字を含む中国語等の原稿に対するものであり、処理において後で行なわれる位置合わせテストの正確度を向上するのに有益である。バウンディングボックスがオーバーラップする場合、２つのオブジェクトがマージのみされてもよい。マージが１．６を上回るアスペクト比をもたらす場合、又はステップ２１２０で推定された文字サイズより大きいマージオブジェクトを作成する場合、マージは行なわれないように制限される。
【０２４８】
ステップ２１５０において、グループ内のオブジェクトの位置合わせがチェックされる。このテストは、テキストグループを他のグループと区別し、以下に更に詳細に説明される。このステップの後、ステップ２１６０において、処理するグループが更に存在するかを判定するためのテストが実行される。グループが更に存在する場合、ステップ２１１０に戻る。存在しない場合、処理４３０は終了する。
【０２４９】
３．２．１．位置合わせのチェック
図２４は、図２１のステップ２１５０を更に詳細に示す。このステップの間、グループのＣＣのサブセットは、文字と定義される。文字は、２１２０で推定された文字サイズの半分より大きく且つその文字サイズの２倍より小さいサイズを有するオブジェクトであってもよい。
【０２５０】
ステップ２４３０〜２４５０は、グループ要素に関連するパラメータのシーケンスのヒストグラム解析に基づいてグループに対して受入れテストを実行する。それらパラメータは、文字の各バウンディングボックスの左側エッジ、上側エッジ、下側エッジ及び右側エッジである。ページ上のテキストの位置合わせが言語及びページ上のテキストの歪み等の多くの要素に依存するため、複数のパラメータを使用することにより、種々の位置合わせにおいてテキストを識別できる。あるいは、水平及び垂直バウンディングボックスパラメータの種々の組合せは、テキスト位置合わせの境界領域を識別するのに使用されてもよい。
【０２５１】
ステップ２４３０において、ヒストグラムは、次のパラメータのグループ要素値に対して形成される。ヒストグラムのビンのサイズは、グループの文字サイズに応じて変倍されてもよい。グループの文字の平均高さの１／５の値（切上げ）は、バウンディングボックスの上側エッジ及び下側エッジに対して使用されてもよく、グループの文字の平均幅の１／５（切上げ）は、バウンディングボックスの左側エッジ及び右側エッジに対して使用されてもよい。ヒストグラムのビンの範囲は、全てのデータが範囲の両端で空でないビンに含まれるように設定される。ヒストグラムの範囲に含まれる最小値は、グループのパラメータの最小値に設定されてもよい。
【０２５２】
判定ステップ２４４０は、ヒストグラムの値が適切に位置合わせされているかをテストし、ランダムに分布するのではなく個別のクラスタを形成する（好ましくは、テキストの異なる線の基準線を表す）。ステップ２４４０は、グループの文字数Ｎが閾値Ｔより大きいかをテストする。ここで、Ｔ＝７の値であるのが好ましい。
【０２５３】
小さなグループ（Ｎ＜Ｔ）の場合、ステップ２４４０は、３つのパラメータＡＬ１、ＡＬ２及びＯＶを検査する。ＡＬ１は、ヒストグラムの最大のビンのカウントである。ＡＬ２は、ヒストグラムの２番目に大きいビンのカウントである。ＯＶは、グループのオーバーラップする文字の最大サブセットのサイズである。表２の擬似コードは、このグループに対して使用されるテストを記述する。グループは、擬似コードがＹを返す場合に位置合わせテストを通過し、擬似コードがＮを返す場合にテストを通過しない。
【０２５４】
【表２】
2008524728.tif 000012
【０２５５】
大きなグループの場合、テストは、ヒストグラムビンの２乗和をグループ内のランダムに配置されたＣＣに対する推測値と比較して行なわれる。このテストに対する式は以下に与えられる。
【０２５６】
【数９】
2008524728.tif 000013
【０２５７】
式中、ｍはヒストグラムビンの総数であり、ｎは文字の総数であり、ｈｉはヒストグラムのｉ番目のビンの母集団である。式の右側の項は、推測（平均）値の２倍であり、十分に大きな値ｍ及びｎに対して、ランダムに配置された文字が受け入れられる確率が０．１％である値を近似する。この処理の一例を図２７に示し、以下に説明する。
【０２５８】
図２４を参照すると、グループがテストに従って受け入れられる場合、ステップ２４７０に進む。ステップ２４７０において、グループは保持され、位置合わせのチェックは終了する。その後、処理は終了する。ステップ２４４０が偽（Ｎｏ）を返す場合、ステップ２４５０に進む。判定ステップ２４５０は、テストするパラメータが更に存在するかをチェックする。存在する場合、次のパラメータのためにステップ２４３０に進む。全てのパラメータがテストされた場合、ステップ２４８０に進み、グループが拒否される。その後、処理は終了する。
【０２５９】
以下の説明において、１度に１つのパラメータに基づいてテストすることと、各テストを通過しないグループを正確に拒否することとを開示する。しかし、この開示を考慮すると、本発明の趣旨の範囲から逸脱せずに、異なるが類似する２つのパラメータ（バウンディングボックスの上側エッジ及び下側エッジ等）において略十分に位置合わせされるグループを受け入れること又は多くのパラメータに基づいてグループに対する全体のスコアを作成すること等、種々のパラメータに対してテストを組み合わせる別の方法が実現されてもよいことは、当業者には明らかとなるだろう。
【０２６０】
３．２．２．位置合わせの例
図２７（ｂ）は、画像２７００からセグメント化された部分の結果である不規則に配置されたバウンディングボックス２７１０、２７１２、２７１４の選択を示す。図２７（ｂ）は、ランダムに配置された連結成分を示す。図２７（ａ）は、その画像に対するバウンディングボックスの底部の値のヒストグラム２７２０を示す。図２７（ｄ）は、連結成分を適切に位置合わせしたテキストグループに対するページ上のバウンディングボックス２７４０、２７４２の配置を示し、図２７（ｃ）は、対応するヒストグラム２７３０を示す。図示するように、テキストに対するヒストグラム２７３０は、値のいくつかの大きなクラスタを有するが、他方のヒストグラム２７２０は、より均等に分布した値を有する。ヒストグラムビン値の２乗和を尺度として使用すると、図２７（ａ）は１９の値を与え、図２７（ｃ）は４７の値を与える。ｍ＝１９及びｎ＝１３に対する上記受入れテストの右側の項は４５である。従ってこのテストによると、図２７（ｂ）の画像データは拒否されるが、図２７（ｄ）のテキストデータは受け入れられる。あるいは、受入れテストは、平均カウントよりかなり大きいビンに存在する値の総数等の他の統計値に基づいてもよい。
【０２６１】
４．圧縮出力画像の生成
バックエンドモジュールは、推定された背景色で前景領域をペイントすることにより、背景画像をより圧縮可能にするために修復を使用する。修復は、低解像度（例えば、１５０ｄｐｉ）で背景画像に対して実行されるのが好ましい。修復アルゴリズムは、単一パスのタイルに基づくアルゴリズムであり、圧縮率を増加しようとする。各画素の色は、大きな領域に対して１つの平均色を使用するのではなく、左右にある周囲の画素から補間することにより選択される。
【０２６２】
アルゴリズムは以下のステップを実行する。１）タイルに対して１つの前景マスクを作成するために、全ての前景成分に対するマスクを組み合わせる。２）前景成分の周囲の小さな追加の領域が修復されるようにマスクを拡張する。３）ラスタ順にタイルに対して：
ａ．画素がマスクされていない場合、タイルのアクティビティを更新する。
ｂ．画素がマスクされている場合、左右の最近接するマスクされていない画素の色から補間された色で画素をペイントする。
４）マスクされていない領域のアクティビティがある特定の閾値を下回る場合、マスクされていない画素の中間色でタイル全体をペイントする（これにより、ＺＬｉｂ圧縮されたＪＰＥＧで圧縮が向上する）。５）タイル全体がマスクされている場合、タイル全体を先のタイルの中間色でペイントする。上記ステップ２）は、にじみの影響を排除し、出力品質を鮮明にすると共に圧縮を向上させる。
【０２６３】
図５は、図１のステップ１３０を詳細に示す。ステップ５１０〜５４０は、図２及び図３で説明されたシステムと同様のタイルに基づく処理システムを使用する。ステップ５１０において、処理される次のタイルが取得される。ステップ５２０において、修復処理が現在のタイルに対して実行され、図１のステップ１２０で識別されたような任意の前景ＣＣを除去し、視覚的に均一に近く見えるタイルを均一化する。ステップ５３０において、現在のタイルは圧縮される。これは、水平及び垂直に２：１にサブサンプルされた２つの色度チャネルを含むＹＣｒＣｂ色空間においてＪＰＥＧを使用して行なわれてもよい。解像度が減少された背景画像のタイルは、それぞれ１６×１６画素を含む。これは、タイル間でのバッファリングを必要とせずに、それら画素がＹチャネルに対して４つの８×８画素ＪＰＥＧブロック、並びにＣｒチャネル及びＣｂチャネルの各々に対して１つの８×８ＪＰＥＧブロックに直接符号化されることを意味する。
【０２６４】
ステップ５４０において、処理するタイルが更に存在するかを判定するためのチェックが行なわれる。修復及び圧縮するタイルが更に存在する場合、ステップ５１０に戻る。存在しない場合、ステップ５５０に進む。ステップ５５０において、前景が圧縮される。これは、ステップ１２０で識別された前景要素を圧縮することを含む。前景要素は、色に依存してグループ化され、フル入力解像度の１つの２値画像が、同様の色を有する前景要素の各グループに対して作成される。作成される各画像は、符号化により出力文書において圧縮の利点がもたらされるのに十分な大きさである場合、ＣＣＩＴＴ Ｇ４ Ｆａｘに符号化されてもよい。
【０２６５】
ステップ５６０において、出力文書が生成される。圧縮背景画像及び圧縮前景画像は、複合圧縮形式で格納される。この形式は、例えばＰＤＦ文書であってもよい。ＪＰＥＧ符号化背景画像は、Ｆｌａｔｅ（Ｚｌｉｂ）圧縮を使用して更に圧縮されてもよい。これにより、ステップ５２０及び５３０により生成されたような繰り返される大量の均一ブロックを含むＪＰＥＧ画像に対する空間が非常に節約される。複合文書は、Ｆｌａｔｅ及びＪＰＥＧ圧縮背景画像と、サイズ、位置、順序及び２値前景画像の場合にはページ上の各画像を描画するための色の詳細を含むページ記述とを含んで書かれてもよい。
【０２６６】
４．１．タイルの修復
図３０は、図５のステップ５２０を詳細に示す。この処理は、背景から前景ＣＣを除去し且つ可視アクティビティの低い画像タイルを均一化することにより、前景ＣＣの圧縮率を向上し且つ鮮明度を増加するために、ダウンサンプルされた背景画像を変更する。前景ＣＣを取り囲む小さな領域は、にじみの影響を除去して画像を強調し且つ圧縮率を向上するために修復される。
【０２６７】
図３０に示される処理５２０は、前景ＣＣの左右にある画素の色の間で補間することで推定された色を使用してＣＣを塗り消すことにより、低解像度の背景から選択された前景ＣＣを除去する。これにより、圧縮率は向上する。ＣＣの外側を囲む小さな領域は、画像の圧縮率を更に向上し且つ画像の見えを強調するように修復される。圧縮率は、可視アクティビティの低い背景画像のタイルを識別し且つそれらの全ての画素を同一色に設定することにより更に向上される。
【０２６８】
図３０の処理に対する入力は、図２のステップ２５０で作成されたダウンサンプルされた背景画像、図２のステップ２４０からのＣＣのリスト及び図１のステップ１２０からの前景又は背景選択情報である。ステップ３０１０において、タイルは、「均一」であるとマークされているかを確認するためにチェックされる。「均一」であるとマークされている場合、タイル均一化ステップ３０４０に進む。マークされていない場合、ステップ３０２０に進み、フル解像度の前景ビットマスクがタイルに対して形成される。これは、前景ＣＣに対応する各場所においてビットセットを有する。ステップ３０３０において、前景ＣＣに対応する背景画像の領域及びそれらを囲む小さな領域は、ＣＣの左右にある画素の色から補間された色を使用してそれら領域を修復することにより除去される。また、タイル中の未修復の画素のアクティビティが測定される。ステップ３０４０において、タイルアクティビティが十分に低く視覚的に均一であると分かった場合、タイル全体は一定の色に均一化される。その後、処理は終了する。
【０２６９】
４．１．１．タイル前景ビットマスクの形成
図３１は、タイル前景ビットマスクを形成する図３０のステップ３０２０を更に詳細に示す。ステップ３１１０において、タイルに対する初期ビットマスクが作成される。このビットマスクはタイルの幅と同一の幅であり、タイルより１行分高い。ビットマスクの最初の行が空白に設定された場合にタイルが文書の第１のバンドに存在しない限り、そのビットマスクの最初の行は上側タイルの最後の行と同一になるように設定される。これにより、修復された領域は、タイルの境界線に位置合わせされる下側エッジを有する前景ＣＣの下方に拡張される。
【０２７０】
ステップ３１２０において、タイルの次のＣＣが取得される。ステップ３１３０において、ＣＣは、前景ＣＣ（ステップ１２０における）であるかを判定するためにチェックされる。ＣＣが前景ＣＣである場合、ステップ３１４０に進む。前景ＣＣでない場合、ステップ３１５０に進む。ステップ３１４０において、そのＣＣ及び現在のタイルに対応するビットマスクは、ビット単位のＯＲ関数を使用してステップ３１１０で作成されたタイルビットマスクと組み合わされる。その後、ステップ３１５０に進む。ステップ３１５０において、現在のタイルに更なるＣＣが存在するかを判定するためのチェックが行なわれる。存在する場合、ステップ３１２０に戻る。タイルの全てのＣＣが処理された場合、ステップ３１５０の結果はＮｏとなり、ステップ３１６０に進む。ステップ３１６０において、形成されたマスクの最後の線は、ページ上のその線の真下にあるタイルを処理する際にステップ３１１０により使用されるように保存される。図３１の処理３０２０で作成されたビットマスクは、入力画像のフル解像度である。
【０２７１】
４．１．２．画素の修復及びタイルアクティビティの測定
図３２は、図３０のステップ３０３０を更に詳細に示す。各画素は、修復されるべき画素が見つけられるまでラスタ順に検査され、修復する画素のランの開始位置をマーク付けする。続く画素は、修復する画素のランの終了位置が見つけられるまで検査される。画素の水平ランは、修復ランの左右にある画素の色の間で線形補間された色でペイントされる。
【０２７２】
図３２を参照すると、ステップ３２１０は、タイルの１つの行を取得する。ステップ３２２０において、画素の次のランの開始位置が行の累積された画素アクティビティに関して見つけられる。行の各画素はラスタ順に検査され、タイルの画素アクティビティは、修復されるべき画素が見つけられるまで累積される。未修復の画素の画素アクティビティは、画素値及び画素値の２乗を累積し、且つ測定された画素数のカウントを保持することにより記録される。各画素が修復されるべきかを決定するために、画素位置は、図３０のステップ３０２０で作成されたタイル前景ビットマスクの対応する場所と比較される。タイルビットマスクが背景画像の２倍の解像度であるため、背景画像の１つの画素の範囲に含まれる領域に対応するマスクには４画素存在する。圧縮を向上し且つエッジのにじみの影響を前景ＣＣから除去するために、前景ＣＣのエッジを囲む小さな追加の領域は修復される。これを行なうために、フル解像度の前景マスクの８画素は検査され、現在の背景画素を修復するかを決定する。図３４は、背景画像タイル３４３０の画素の例３４１０と検査される対応するフル解像度マスク画素３４２０とを示す。３４２０により示される８画素のうち任意の１つがマスク３４４０に設定される場合、すなわち、前景ＣＣの場所に対応する場合、画素３４１０は修復される。ビットマスク３４４０がビットベクトルの配列として格納されるため、それら８画素３４２０は、ビット単位のＡＮＤ演算を使用して迅速にチェックされる。あるいは、これは、ビットマスク３４２０のセット画素を拡張し且つダウンサンプルすることにより実現されてもよい。次のタイルの同一行にある最初の画素が修復される場合、色が補間値として使用されるように右側にある次のタイルを処理する時、各行の最後に検査された未修復の画素の色は記録され且つ利用可能になる。
【０２７３】
図３２を参照すると、判定ステップ３２３０において、行の終了前に修復する画素が見つけられたかを判定するためのチェックが行なわれる。修復する画素が見つけられた場合、ステップ３２５０に進む。見つけられない場合、ステップ３２４０に進む。ステップ３２５０において、行の残りの画素はラスタ順に検査され、行の修復されるべき画素のランの終了位置を見つける。画素が修復されるべきかを判定するために、ステップ３２２０で使用されたテストと同一のテストが使用される。ステップ３２６０において、修復する画素のランの終了位置が行の終了前に見つけられたかを判定するためのチェックが行なわれる。修復される画素のランの終了位置が行の最後に到達する前に見つけられる場合、ステップ３２７０に進む。ステップ３２７０において、修復される画素のランの各画素は、左右にある最近接の未修復画素の色の間で線形補間された色に設定される。修復する画素のランがタイルの左側エッジまで拡張された場合、先のタイルの同一行に対して保管された最後の値は、左の補間値として使用される。その後、ステップ３２２０に進み、修復される画素の次のランを検索する。ステップ３２５０において、修復されるべきではない画素を見つけずに行の最後に到達した場合、判定ステップ３２６０は処理をステップ３２８０に進める。ステップ３２８０において、修復される画素のランの各画素は、左側の最近接の未修復画素の値に設定される。その値は、先のタイルの同一行に対して保管された値であってもよい。ステップ３２８０の後、ステップ３２４０に進む。
【０２７４】
ステップ３２４０において、処理するタイルの行が更に存在するかを判定するためのチェックが行なわれる。行がタイルに更に存在する場合、ステップ３２１０に進む。行がそれ以上存在しない場合、処理は終了する。
【０２７５】
４．１．３．修復の例
図３５は、いくつかの１次元修復の例を示す。画素強度が位置Ｘの関数としてグラフ化される場合、２つの例３５１０、３５２０に対して修復前後のグラフを提供する。第１の例３５１０において、修復する画素のランは完全にタイル内にあり、修復された画素値（斜線で示される）は、すぐ左右にある未修復の画素値の間で線形補間された値で置換される。修復された領域は、前景成分より僅かに大きく、にじみの影響を除去する。これは、拡張されたマスク領域として示される。各画素を修復する色は、左右のマスクされていない画素の色の間で補間することにより見つけられる。図３５の第２の例３５２０において、修復する画素のランはタイルエッジ３５３０を横切る。左側のタイルを処理する場合、修復される画素の値は、すぐ左側にある未修復の画素の値で置換される。例３５２０の右側のタイルを処理する場合、修復された画素値は、この行に対する最後に記録された未修復の画素値と右側にある最初の未修復の画素値との間で線形補間された値に設定される。
【０２７６】
４．１．４．タイルの均一化
図３３は、図３０のステップ３０４０を更に詳細に示す。判定ステップ３３１０において、全ての画素が修復されたかのチェックが行なわれる。特に、ステップ３２２０で記録されたような修復された画素数がチェックされる。タイルの全ての画素が修復された場合、タイルの可視領域は小さいと考えられ、ステップ３３２０に進む。ステップ３３２０において、現在のタイルの全ての画素は、ラスタ順に先のタイルの中間色にペイント（設定）される。これにより、ＪＰＥＧのようなブロックに基づく圧縮技術が使用される場合、背景画像の圧縮率は非常に向上される。その後、処理は終了する。ステップ３３１０がタイルの全ての画素が修復されていないことを判定する場合、判定ステップ３３３０に進む。ステップ３３３０において、ステップ３２２０で測定されたような未修復の画素のアクティビティが所定の閾値に対してチェックされる。アクティビティがその閾値より小さいと分かった場合、再構成画像のタイルのアクティビティ可視領域は均一に近いと考えられる。この場合、ステップ３３４０に進み、タイルの未修復の可視画素の中間色でタイルの全ての画素をペイントすることにより、タイルは完全に均一化される。これにより、背景画像の圧縮率は非常に向上される。図３３の処理は、ステップ３３４０の後に終了するか、あるいはタイルのアクティビティが閾値より大きいと分かった場合にはステップ３３３０の後に終了する。
【０２７７】
５．ハードウェアの実施形態
図５１は、本発明の第２の実施形態によるシステム５１００を示す。システム５１００は、パイプラインを処理する、異なる段階の間の効率的なデータフローを特徴とする。その設計は、メモリ帯域幅を大きく減少し、システム５１００が高速に実行することを可能にする。
【０２７８】
通常、スキャナは、画素ラスタ順にスキャン済みデータを取得する。画素データは、その後格納され、更なる画像処理のために圧縮されることが多い。従来のスキャン／文書アプリケーションにおいて、通常、スキャン済みデータは、記憶装置から検索され、伸張され且つ画像データを処理するためのセグメント化及びレイアウト解析のためにメモリに保持される必要がある。これは、セグメント化処理がスキャナのページ毎のストリーミングラスタデータの速度に追従できないため、高速スキャナである場合が多い。
【０２７９】
これは、各画像画素が少なくとも２回書き込まれ且つ読み出される必要があるため、大きなメモリバッファだけでなく、大きなメモリ帯域幅も必要とする。まず画素は、スキャナによりメモリに書き込まれる必要があり、その後圧縮器は、メモリからデータを読み出し且つそのデータを圧縮する。その後、伸張器は、圧縮データを読み出し且つそのデータをメモリに伸張する必要がある。最後に、画像プロセッサは伸張データをセグメント化できる。圧縮データに加え元の各画像画素に対しても少なくとも１回の冗長メモリ読出し及び書込みがある。高解像度のスキャナ（例えば、６００ｄｐｉ）の場合、これは、追加のデータが２００ＭＢを超えることを意味する。
【０２８０】
本発明の本実施形態は、スキャナ５１０５からのリアルタイムのページ毎のストリーミングラスタデータに対して直接動作する高速自動セグメント化を採用する。その結果、冗長メモリ読出し及び書込みは完全に排除され、メモリバッファのサイズは大きく減少される。
【０２８１】
バス５１１０は、スキャナ５１０５からスキャン済みラスタデータを搬送し、そのスキャン済みラスタデータは、ラインバッファであるモジュール５１１５に書き込まれる。この例において６４ラインバッファが使用されるが、以下に説明するように、バンドの高さに応じて他のサイズが使用されてもよい。ラインバッファ５１１５は、コードセグメント化モジュール５１２５による処理に対してデータのバンドを格納し、同時に入力スキャン済みデータの新しいバンドを収集する。モジュール５１２５は、ラインバッファ５１１５からバス５１２０を介してデータのタイルを読み出し、タイル毎にデータを連結成分にカラーセグメント化する。モジュール５１２５がデータのバンドを終了すると、データの新しいバンドがラインバッファ５１１５から処理のために用意される。旧バンドバッファは、新しい入力ラスタデータを収集するために使用される。バンドの高さはタイルの高さにより判定され、ラインバッファ５１１５はバンドの２倍の高さを必要とする。本実施形態において、好ましいタイルのサイズは３２×３２である。
【０２８２】
モジュール５１２５は、本実施形態のハードウェアで実現されるため、バンドの処理速度は、スキャナ５１０５がデータの新しいバンドを生成する速度に追従できる。モジュール５１２５の出力は、レイアウト解析モジュール５１４０に対してはバス５１３５のコンパクトな連結成分（ＣＣ）であり、修復モジュール５１５０に対してはバス５１３０の非圧縮のダウンサンプル画像又は圧縮されたダウンサンプル画像である。バス５１３５のデータは、ページの有効な領域又はＣＣの全体のページが生成されるまでメモリに書き込まれてもよい。モジュール５１４０は、コンパクトな連結成分データのみを使用してレイアウト解析を実行する。データがコンパクトであるため、レイアウト解析を実行するのに必要とされる処理能力は小さい。従って、レイアウト解析モジュールは、リアルタイムで組込みプロセッサにより実行されるソフトウェア（ＳＷ）として実現されてもよい。レイアウト解析モジュールの出力は、バス５１４５に提供される前景情報であり、バス５１３５からのデータにタグ付けする。バス５１３０のデータは、ページの有効な領域又はＣＣの全体のページが生成されるまでメモリに書き込まれてもよい。
【０２８３】
修復モジュール５１５０は、タイル毎にダウンサンプル画像（バス５１３０を介して提供される）の前景を除去する。このモジュール５１５０は、レイアウト解析ソフトウェア５１４０を実行する同一の組込みプロセッサ上に実現されてもよく、あるいはハードウェア（ＨＷ）により実現されてもよい。バス５１３０からのデータが圧縮されている場合、モジュール５１５０はそのデータを伸張する。モジュール５１５０は、ダウンサンプル画像の推定された背景色で前景領域を修復し、背景画像を生成する。前景が除去された背景画像はバス５１５５に出力され、前景マスクはバス５１７５に生成される。
【０２８４】
出力生成モジュール５１６０は、バス５１７５上に生成された前景画像及びバス５１５５上に生成された背景画像からＰＤＦファイル等のレイアウト解析された文書を作成する。モジュール５１６０は、同一の組込みプロセッサ上で実行するソフトウェアにより実現されてもよい。
【０２８５】
第２の実施形態において、モジュール５１１５及び５１２５は、リアルタイムのページ毎のスキャンデータに対して動作し、コンパクトな連結成分及びダウンサンプル画像をページＮに生成する。モジュール５１４０、５１５０及び５１６０は、モジュール５１２５により生成されたデータを使用してページＮ−１に対して順次動作する。従って、システムは、高速スキャナのライブデータからレイアウト解析された文書をリアルタイムで配信できる。
【０２８６】
モジュール５１２５、５１４０、５１５０及び５１６０は、第１の実施形態における対応するステップに対して説明された方法で実現されてもよい。
【０２８７】
５．１．カラーセグメント化モジュール
図５２は、モジュール５１２５を詳細に示す。ＣＣへのカラーセグメント化モジュール５１２５の構成要素は、逆ハーフトーン化モジュール５２２０を含む。逆ハーフトーン化モジュール５２２０は、タイル順に画素のストリームを利用し、インクジェットプリンタ等の印刷する中間調システムを使用して印刷されたデータをスキャンすることにより発生するアーティファクトを除去する。逆ハーフトーン化モジュール５２２０は、上述したソフトウェアによる実施形態のハードウェアによる実施形態である。このモジュールは、必要な速度を達成するために、スタティックＲＡＭ及びパイプライン処理を内部的に使用してもよい。
【０２８８】
逆ハーフトーン化モジュール５２２０から出力される画素は、色変換モジュール５２３０に渡される。モジュール５２３０は、入力色空間（ＲＧＢであることが多い）からＹＣｂＣｒ輝度／色度空間に画素を変換する。このモジュール５２３０は、以下の式に従って各画素に対して必要な乗算及び加算を実行する。
【０２８９】
Y = R * 0.2989 + G * 0.5866 + B * 0.1145
Cb = R * -0.1687 + G * -0.3313 + B * 0.5000
Cr = R * 0.5000 + G * -0.4183 + B * -0.0816
この四則演算は、変倍された固定小数点演算において実行され、モジュール５１２５の複雑性を減少し且つ速度を増加する。色変換モジュール５２３０からの出力は、ダウンスキャン（ＤｏｗｎＳｃａｎモジュール）５２４０及び連結成分解析モジュール５２６０の２つのモジュールに渡される。ＤｏｗｎＳｃａｎモジュール５２４０は、４つ（２×２の正方形）又は１６個（４×４の正方形）の１セットの色を単純に平均し、各出力画素を形成する。ＤｏｗｎＳｃａｎモジュール５２４０から出力される画素は、ハードウェアのＪＰＥＧ圧縮器５２５０により圧縮される。
【０２９０】
６．コンピュータの実現例
本発明の実施形態による方法は、１つ以上の汎用コンピュータシステム、印刷装置及び他の適切な演算装置を使用して実現されてもよい。図１〜図５２の任意の１つ以上の図を参照して説明された処理は、コンピュータシステム内で実行するアプリケーションプログラム又は印刷装置に組み込まれたアプリケーションプログラム等のソフトウェアとして実現されてもよい。ソフトウェアは、アプリケーションプログラム、オペレーティングシステム、手順、規則、データ構造及びデータを含む１つ以上のコンピュータプログラムを含んでもよい。命令は、各々が１つ以上の特定のタスクを実行する１つ以上のコードモジュールとして形成されてもよい。ソフトウェアは、例えば以下に説明される１つ以上の記憶装置を含むコンピュータ可読媒体に格納されてもよい。コンピュータシステムは、コンピュータ可読媒体からソフトウェアをロードし、そのソフトウェアを実行する。
【０２９１】
図７は、本発明の実施形態が実現できるコンピュータシステム７００の一例を示す。そのようなソフトウェアを記録したコンピュータ可読媒体は、コンピュータプログラム製品である。コンピュータシステムにおけるコンピュータプログラム製品の使用は、１つ以上の上記方法を実現する有利な装置に影響を与える可能性がある。
【０２９２】
図７において、コンピュータシステム７００はネットワークに結合される。オペレータは、コンピュータ７５０への入力を行なうキーボード７３０及び／又はマウス７３２（又は、例えばタッチパッド）等のポインティングデバイスを使用してもよい。コンピュータシステム７００は、コンピュータに接続されるラインプリンタ、レーザプリンタ、作図装置及び他の再現装置を含むいくつかの出力装置を含んでもよい。コンピュータシステム７００は、モデム通信パス又はルータ等の適切な通信チャネル７４０を使用して、通信インタフェース７６４を介して１つ以上の他のコンピュータに接続される。コンピュータネットワーク７２０は、例えばローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、イントラネット及び／又はインターネットを含んでもよい。コンピュータ７５０は、処理装置（例えば、１つ以上の中央処理装置）と、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）又はそれら２つの組合せを含んでもよいメモリ７７０と、入出力（ＩＯ）インタフェース７７２と、グラフィックインタフェース７６０と、１つ以上の記憶装置７６２とを具備してもよい。記憶装置７６２は、フロッピディスク、ハードディスクドライブ、光磁気ディスクドライブ、ＣＤ−ＲＯＭ、ＤＶＤ、データカード又はメモリスティック、フラッシュＲＡＭデバイス、磁気テープ、あるいは当業者に周知の任意の他の多くの不揮発性記憶装置のうち１つ以上を具備してもよい。記憶装置は図７においてバスに直接接続されて示されるが、そのような記憶装置は、パラレルポート、シリアルポート、ＵＳＢインタフェース、Ｆｉｒｅｗｉｒｅインタフェース、無線インタフェース又はＰＣＭＣＩＡスロット等の任意の適切なインタフェースを介して接続されてもよい。この説明の目的のため、記憶ユニットは、１つ以上のメモリ７７０及び記憶装置７６２を含んでもよい（図７において、これら要素を囲む破線で示される）。
【０２９３】
通常、コンピュータ７５０の各構成要素は、図７に一般的に示される１つ以上のバス１９８０を介して１つ以上の他の装置に接続され、それらは、データ、アドレス及び制御バスを具備する。単一のバス７８０が図７に示されるが、コンピュータ、印刷装置又は他の電子演算装置が１つ以上のプロセッサバス、メモリバス、グラフィックカードバス及び周辺バスを含むいくつかのバスを含んでもよいことが、当業者には理解されるだろう。適切なブリッジは、そのようなバス間の通信をインタフェースするために利用されてもよい。ＣＰＵを使用するシステムが説明されたが、本発明の趣旨の範囲から逸脱せずに、データの処理及び動作の実行が可能な他の処理装置が使用されてもよいことは、当業者には理解されるだろう。
【０２９４】
コンピュータシステム７００は単に説明の目的で提供されており、本発明の趣旨の範囲から逸脱せずに他の構成を採用できる。実施形態が実現されるコンピュータは、ＩＢＭのＰＣ／ＡＴ又はそれに互換性のあるもの、ラップトップ／ノートブックコンピュータ、ＰＣのＭａｃｉｎｔｏｓｈ（ＴＭ）ファミリのうちの１つ、Ｓｕｎ Ｓｐａｒｃｓｔａｔｉｏｎ（ＴＭ）、ＰＤＡ又はワークステーション等であってもよい。上述は、本発明の実施形態が実現できる装置の種類の単なる例である。通常、以下に説明する実施形態の処理は、コンピュータ可読媒体であるハードディスクドライブに記録されたプログラム又はソフトウェアとして常駐し、プロセッサを使用して読み出され且つ制御される。ネットワークから取り出されたプログラム及び中間データ及び任意のデータの中間記憶は、半導体メモリを使用して達成されてもよい。
【０２９５】
いくつかの例において、プログラムは、ＣＤ ＲＯＭ又はフロッピディスクに符号化されて供給されてもよく、あるいは例えばコンピュータに接続されたモデムデバイスを介してネットワークから読み出せる。更に、ソフトウェアは、磁気テープ、ＲＯＭ又は集積回路、光磁気ディスク、コンピュータと別の装置との間の無線又は赤外線送信チャネル、ＰＣＭＣＩＡカード等のコンピュータ可読カード、並びに電子メール送信及びウェブサイト等に記録された情報を含むインターネット及びイントラネットを含む他のコンピュータ可読媒体からコンピュータシステムにロードされる。上述は、関連したコンピュータ可読媒体の単なる一例である。本発明の趣旨の範囲から逸脱せずに、他のコンピュータ可読媒体が実現されてもよい。
【０２９６】
７．産業上の利用可能性
本発明の実施形態は、コンピュータ及びデータ処理分野に適用可能である。上述は、本発明の実施形態に従ってデジタル画像を処理及び圧縮する少数の方法、装置及びコンピュータ可読媒体を説明しているだけであり、本発明の趣旨の範囲から逸脱せずに、それらに対して変形及び／又は変更を行なうことができる。それら実施形態は例であり、限定するものではない。
【図面の簡単な説明】
【０２９７】
【図１】本発明の一実施形態かかるデジタル画像のセグメント化、解析及び圧縮の概要を示すフローチャートである。
【図２】図１のカラーセグメント化ステップを示すフローチャートである。
【図３】図２の次の画素を取得するステップを詳細に示すフローチャートである。
【図４】図１のレイアウト解析ステップを示すフローチャートである。
【図５】図１の圧縮出力画像を生成するステップを示すフローチャートである。
【図６】文字「ｉ」及び関連する連結成分を含む画像を示すブロック図である。
【図７】本発明の実施形態にかかる汎用コンピュータシステムを示すブロック図である。
【図８】本発明の一実施形態にかかるスキャン済み入力ページに対する圧縮出力を生成するシステムを示すブロック図である。
【図９】図１０のカラー連結成分解析及びブロブ統計ステップを詳細に示すフローチャートである。
【図１０】図２のカラーセグメント化ステップを示すフローチャートである。
【図１１】図１０の色量子化ステップを詳細に示すフローチャートである。
【図１２】図９の新しいブロブを形成又は既存のブロブを成長させるステップを詳細に示すフローチャートである。
【図１３】図１０のタイル間マージステップを示すフローチャートである。
【図１４】図１３の最適なブロブ／ＣＣの対を処理するステップを示すフローチャートである。
【図１５】ブロブマージ処理の一例を示すブロック図である。
【図１６】現在のタイルと２つの隣接するタイルの状態との間のマージを示すブロック図である。
【図１７】タイル間マージ条件を示す表である。
【図１８】図１４のＣＣマッピング処理の結果の一例を示す図である。
【図１９】図１０のタイル内マージステップを示すフローチャートである。
【図２０】図４のＣＣグループ化ステップを示すフローチャートである。
【図２１】図４のＣＣのグループをチェックするステップを示すフローチャートである。
【図２２】図２０のグループの子ＣＣを見つけるステップを示すフローチャートである。
【図２３】図２０の初期グループ化ステップを示すフローチャートである。
【図２４】図２１の位置合わせチェックステップを示すフローチャートである。
【図２５】（ａ）は、３つ以上の量子化レベルに基づくセグメント化の単純な例を示す画像である。（ｂ）及び（ｃ）は、（ａ）の画像の２値セグメント化の結果を示す画像である。
【図２６】文字「ｇ」及び「ｈ」の２つのオブジェクトを含む文書の領域を示す図である。
【図２７】（ａ）は、（ｂ）の画像のバウンディングボックスの底部の値を示すヒストグラムである。（ｂ）は、画像のセグメント化された部分に対して不規則に配置されたバウンディングボックスの選択を示す図である。（ｃ）は、（ｄ）のページの対応するヒストグラムを示す図である。（ｄ）は、テキストグループに対するページ上のバウンディングボックスの配置を示す図である。
【図２８】カラーブロブシステムを示すブロック図である。
【図２９（ａ）】パレットの高階調部及び低階調部が空のビンを表すパレット、指標付きマップ及び元のタイルを含むカラーヒストグラム出力を示す画像である。
【図２９（ｂ）】パレットの高階調部及び低階調部が空のビンを表すパレット、指標付きマップ及び元のタイルを含むカラーヒストグラム出力を示す画像である。
【図２９（ｃ）】パレットの高階調部及び低階調部が空のビンを表すパレット、指標付きマップ及び元のタイルを含むカラーヒストグラム出力を示す画像である。
【図３０】図５のタイル修復ステップを示すフローチャートである。
【図３１】図３０のタイル前景ビットマスク形成ステップを示すフローチャートである。
【図３２】図３０の画素の修復及びタイルアクティビティの測定を行なうステップを示すフローチャートである。
【図３３】図３０のタイル均一化ステップを示すフローチャートである。
【図３４】背景画像タイルの画素の一例及びフル解像度前景マスクで検査される対応する画素を示すブロック図である。
【図３５】１次元の修復の例を示すグラフである。
【図３６】６×６のタイルの一例を使用するカラーブロブ処理を示すブロック図である。
【図３７】ブロブマージの一例を示す画像である。
【図３８】比較の目的で、マージされたブロブ出力と共に元のタイルを示す画像である。
【図３９】ラスタ順に複数のタイルにわたるブロブをマージすることを示すブロック図である。
【図４０（ａ）】図１１の２Ｄヒストグラム及び第１のパレットを形成するステップを示すフローチャートである。
【図４０（ｂ）】図１１の２Ｄヒストグラム及び第１のパレットを形成するステップを示すフローチャートである。
【図４１】図１１の第２のパレットの形成ステップを示すフローチャートである。
【図４２】図４１の２色パレット生成ステップを示すフローチャートである。
【図４３】図４１の多色パレット生成ステップを示すフローチャートである。
【図４４】図１１の画素を第２のパレットと関連付けるステップを示すフローチャートである。
【図４５（ａ）】図４４の２レベルのタイルのマッピングステップを詳細に示すフローチャートである。
【図４５（ｂ）】図４４の２レベルのタイルのマッピングステップを詳細に示すフローチャートである。
【図４６】図４４の多色タイルマッピングステップを詳細に示すフローチャートである。
【図４７】図１１のヒストグラムの解析及びタイルの分類を行なうステップを示すフローチャートである。
【図４８】全ての動作条件に対する更新前後のＣＣ候補カウント及びブロブ候補カウントを示す表である。
【図４９】ブロブ候補及びＣＣ候補のマージの例を示すブロック図である。
【図５０】図１０のマージの後処理ステップを示すフローチャートである。
【図５１】本発明の他の実施形態にかかるシステムを示すブロック図である。
【図５２】図５１のカラーセグメント化モジュールを示すブロック図である。
【図５３】設定点のドローネ三角形分割及びボロノイ図を示す図である。
【図１】
2008524728.tif 000014
【図２】
2008524728.tif 000015
【図３】
2008524728.tif 000016
【図４】
2008524728.tif 000017
【図５】
2008524728.tif 000018
【図６】
2008524728.tif 000019
【図７】
2008524728.tif 000020
【図８】
2008524728.tif 000021
【図９】
2008524728.tif 000022
【図１０】
2008524728.tif 000023
【図１１】
2008524728.tif 000024
【図１２】
2008524728.tif 000025
【図１３】
2008524728.tif 000026
【図１４】
2008524728.tif 000027
【図１５】
2008524728.tif 000028
【図１６】
2008524728.tif 000029
【図１７】
2008524728.tif 000030
【図１８】
2008524728.tif 000031
【図１９】
2008524728.tif 000032
【図２０】
2008524728.tif 000033
【図２１】
2008524728.tif 000034
【図２２】
2008524728.tif 000035
【図２３】
2008524728.tif 000036
【図２４】
2008524728.tif 000037
【図２５】
2008524728.tif 000038
【図２６】
2008524728.tif 000039
【図２７】
2008524728.tif 000040
【図２８】
2008524728.tif 000041
【図２９（ａ）】
2008524728.tif 000042
【図２９（ｂ）】
2008524728.tif 000043
【図２９（ｃ）】
2008524728.tif 000044
【図３０】
2008524728.tif 000045
【図３１】
2008524728.tif 000046
【図３２】
2008524728.tif 000047
【図３３】
2008524728.tif 000048
【図３４】
2008524728.tif 000049
【図３５】
2008524728.tif 000050
【図３６】
2008524728.tif 000051
【図３７】
2008524728.tif 000052
【図３８】
2008524728.tif 000053
【図３９】
2008524728.tif 000054
【図４０（ａ）】
2008524728.tif 000055
【図４０（ｂ）】
2008524728.tif 000056
【図４１】
2008524728.tif 000057
【図４２】
2008524728.tif 000058
【図４３】
2008524728.tif 000059
【図４４】
2008524728.tif 000060
【図４５（ａ）】
2008524728.tif 000061
【図４５（ｂ）】
2008524728.tif 000062
【図４６】
2008524728.tif 000063
【図４７】
2008524728.tif 000064
【図４８】
2008524728.tif 000065
【図４９】
2008524728.tif 000066
【図５０】
2008524728.tif 000067
【図５１】
2008524728.tif 000068
【図５２】
2008524728.tif 000069
【図５３】
2008524728.tif 000070
【手続補正書】
【提出日】平成18年7月11日(2006.7.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の画素を含むデジタル画像をセグメント化する方法であって、
前記デジタル画像から複数の画素のブロックを生成するステップと、
１パスで前記画素のブロックを用いて、各ブロックに対して少なくとも１つの連結成分を作成するステップとを備え、前記作成するステップは、
各々が空間的に連結しかつセマンティカリーに関連する画素のグループを含む少なくとも１つの連結成分に、画素のブロックをセグメント化するステップと、
前記ブロックの少なくとも１つの連結成分を、先に処理された少なくとも１つの他のブロックからセグメント化された少なくとも１つの連結成分と、マージするステップと、
前記ブロックの前記連結成分の前記画像における配置をコンパクトな形式で格納するステップと、
備えることを特徴とする方法。
【請求項２】
前記セマンティカリーに関連する画素は、同様の色を有する画素を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記生成するステップは、
各々が予め定められた数の画素の連続的な線を含む複数のバンドに、前記デジタル画像を配置するステップと、
前記バンドを１つずつバッファリングし、処理するステップとを含み、当該処理するステップは、
現在のバンドを複数の画素のブロックに配置するステップと、
前記作成するステップに対して前記現在のバンドの前記ブロックを１つずつバッファリングし、処理するステップとを含み、当該配置するステップと、当該バッファリングし、処理するステップとの処理は現在バッファリングされている各バンドに対して実行されることを特徴とする請求項１に記載の方法。
【請求項４】
前記格納するステップは、Ｍ−１個の２値ビットマップを格納するステップを含み、Ｍ個の連結成分はブロック内に存在し、Ｍは整数であることを特徴とする請求項１に記載の方法。
【請求項５】
前記格納するステップは、指標マップを格納するステップを含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記セグメント化するステップは、
各ブロックに対していくつかの代表色を推定するステップと、
前記代表色に対して各ブロックを量子化するステップと、
各量子化ブロックから連結成分を形成するステップと、を含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記セグメント化するステップは、形成される前記連結成分のサブセットをマージするステップを更に含むことを特徴とする請求項６に記載の方法。
【請求項８】
前記マージするステップは、前記連結成分の統計値を収集するステップを含むことを特徴とする請求項７に記載の方法。
【請求項９】
ノイズと考えられる前記形成された連結成分を除去するステップを更に含むことを特徴とする請求項８に記載の方法。
【請求項１０】
前記ノイズは予め定められた閾値を下回る画素カウント及び予め定められた他の閾値を上回る境界線長さ対画素カウント比を有する連結成分を含むことを特徴とする請求項９に記載の方法。
【請求項１１】
前記統計値は、バウンディングボックス、画素カウント、境界線長さ及び平均色のうち、少なくとも１つを含むことを特徴とする請求項８に記載の方法。
【請求項１２】
前記マージするステップは、
ブロックの連結成分を、左上にあるブロックの連結成分とマージするステップと、
前記マージした連結成分の前記統計値を更新するステップと、を備えることを特徴とする請求項８に記載の方法。
【請求項１３】
前記統計値は、バウンディングボックス、画素カウント、塗りつぶし率及び平均色のうち、少なくとも１つを含むことを特徴とする請求項１２に記載の方法。
【請求項１４】
前記推定するステップは、
各ブロックの画素のＹＵＶデータに基づいて複数の色のビンに関連するヒストグラムを形成するステップと、
ヒストグラム統計値に基づいて各ブロックを分類するステップと、
前記ブロックの分類に基づいて前記代表色を形成するためにビンの色をマージするステップと、を備えることを特徴とする請求項６に記載の方法。
【請求項１５】
１パスで各画素に対する指標マップを形成するステップを更に備えることを特徴とする請求項１４に記載の方法。
【請求項１６】
前記量子化するステップは、
空でないビンを代表色に量子化するステップと、
前記代表色に対してビンマッピングを作成するステップと、
前記ビンマッピングを使用して前記指標マップを前記代表色に再マッピングするステップと、を備えることを特徴とする請求項１５に記載の方法。
【請求項１７】
前記形成するステップは、
Ｙ値に基づいて輝度バンドを決定するステップと、
Ｕ値及びＶ値に基づいてカラーコラムを決定するステップと、
前記マップされたビンに前記画素の色を累積するステップと、
前記マップされたビンの前記画素カウントを増分するステップと、を備えることを特徴とする請求項１４に記載の方法。
【請求項１８】
輝度バンドを決定する前記ステップは、輝度バンドアンチエイリアシングを更に含むことを特徴とする請求項１７に記載の方法。
【請求項１９】
前記カラーコラムを決定することは、カラーコラムアンチエイリアシングを更に含むことを特徴とする請求項１７に記載の方法。
【請求項２０】
前記マージするステップは、
共通の境界線に沿う現在の連結成分に接触する連結成分のリストを検索するステップと、
マージするのに最も適した候補を決定するステップとを備え、当該検索するステップと、当該決定するステップとの処理は、左上の境界線に接触する現在のブロックの各連結成分に対して実行されることを特徴とする請求項１２に記載の方法。
【請求項２１】
請求項１乃至２０のいずれか１項に記載の方法に従って、複数の画素を含むデジタル画像をセグメント化するプロセッサと、メモリとを備えることを特徴とする装置。
【請求項２２】
請求項１乃至２０のいずれか１項に記載の方法に従って、複数の画素を含むデジタル画像をセグメント化するためのコンピュータプログラムを記録したことを特徴とするコンピュータ可読媒体。
【請求項２３】
カラー文書のコンパクトな表現を自動的に生成する方法であって、
１パスのブロックラスタ順にカラー文書ページのデジタル画像を連結成分にセグメント化するステップと、
前記ページ全体のコンパクトな連結成分統計値に基づくレイアウト解析を使用して、前記ページの前記デジタル画像を前景画像及び背景画像に区分するステップと、
前記前景画像の少なくとも一部が前記背景画像を隠蔽する場合に、前記背景画像の少なくとも一部を１パスのブロックラスタ順に修復するステップと、
コンパクトな文書を形成するために、前記前景画像及び前記背景画像を格納するステップと、
を備えることを特徴とする方法。
【請求項２４】
前記背景画像をダウンサンプリングするステップを更に備えることを特徴とする請求項２３に記載の方法。
【請求項２５】
前記背景画像を圧縮するステップを更に備えることを特徴とする請求項２３または２４に記載の方法。
【請求項２６】
前記圧縮ステップは、不可逆的圧縮するステップを含むことを特徴とする請求項２５に記載の方法。
【請求項２７】
前記不可逆的に圧縮された背景画像を圧縮するための異なるステップを更に含むことを特徴とする請求項２６記載の方法。
【請求項２８】
請求項２３乃至２７のいずれか１項に記載の方法に従って、カラー文書のコンパクトな表現を自動的に生成するプロセッサと、メモリとを備えることを特徴とする装置。
【請求項２９】
請求項２３乃至２７のいずれか１項に記載の方法に従って、カラー文書のコンパクトな表現を自動的に生成するためのコンピュータプログラムを記録したことを特徴とするコンピュータ可読媒体。
【請求項３０】
複数の画素を含むデジタル画像を解析する方法であって、
前記デジタル画像をオブジェクトにセグメント化するステップであり、前記セグメント化が３つ以上のラベルにより表現されるステップと、
各オブジェクトに対してプロパティのセットを提供するステップと、
前記オブジェクトのサブセットに対して、境界線を共有する隣接するオブジェクト間に親子関係が存在するか判定するために包含の尺度を使用するステップと、
オブジェクトプロパティに基づいて、親を共有するオブジェクトのグループを形成するステップと、
プロパティのセット及びグループの形成に従ってオブジェクトを分類するステップと、を備えることを特徴とする方法。
【請求項３１】
前記包含は、各オブジェクトの周囲のバウンディングボックス及びオブジェクト間の接触関係を示す情報を用いて判定されることを特徴とする請求項３０に記載の方法。
【請求項３２】
２つのオブジェクトが境界線で接触し且つオブジェクトのバウンディングボックスが他のオブジェクトのバウンディングボックスを完全に含む場合、前記オブジェクトは前記他のオブジェクトを含むことを特徴とする請求項３１に記載の方法。
【請求項３３】
前記グループを形成するステップは、
共通の親の子リストから子オブジェクトの対を検索するステップと、
前記オブジェクトプロパティを使用して、各対がグループ化されるべきかを判定するステップと、を備えることを特徴とする請求項３０に記載の方法。
【請求項３４】
同一の親を有する子オブジェクトのリストのうち隣接するオブジェクトのみがグループ化に対して検索されることを特徴とする請求項３３に記載の方法。
【請求項３５】
オブジェクトは、バウンディングボックス及び色情報に基づいてグループ化されることを特徴とする請求項３３に記載の方法。
【請求項３６】
オブジェクトのグループは、前記グループ内の前記オブジェクトのテキストと同様の品質のテストに従ってテキストとして分類されることを特徴とする請求項３０に記載の方法。
【請求項３７】
テキストと同様の品質の前記テストは、
前記オブジェクトの配置を表す各オブジェクトに対する単一の値を識別するステップと、
前記値のヒストグラムを形成するステップと、
前記ヒストグラムのプロパティによりテキストを識別するステップと、を含むことを特徴とする請求項３６に記載の方法。
【請求項３８】
親子プロパティに関わらず、プロパティに従ってオブジェクトのテキスト分類されたグループに更なるオブジェクトを追加するステップを更に含むことを特徴とする請求項３０に記載の方法。
【請求項３９】
文書ページの複数の画素を含むデジタル画像を解析する方法であって、
前記画像に基づいてオブジェクトを形成するために前記デジタル画像をセグメント化するステップと、
前記オブジェクトのグループを形成するステップと、
前記オブジェクトの前記グループの各々がテキストを表すか判定するステップとを備え、前記判定するステップは、
前記ページ上の前記オブジェクトの配置に依存して、各オブジェクトに対する単一の値を識別するステップと、
前記値のヒストグラムを形成するステップと、
前記ヒストグラムのプロパティによりテキストを識別するステップと、を含むことを特徴とする方法。
【請求項４０】
前記ヒストグラムの前記プロパティは、指定された数より多いオブジェクトを有する前記ヒストグラムのビンのオブジェクトの総数であることを特徴とする請求項３９に記載の方法。
【請求項４１】
前記プロパティは、前記ヒストグラムのカウントの２乗和であることを特徴とする請求項３９に記載の方法。
【請求項４２】
前記オブジェクトの前記配置を表す各オブジェクトに対する前記単一の値は、前記オブジェクトのバウンディングボックスのエッジであることを特徴とする請求項３９に記載の方法。
【請求項４３】
請求項３９乃至４２のいずれか１項に記載の方法に従って、複数の画素を含むデジタル画像を解析するプロセッサと、メモリと、を備えることを特徴とする装置。
【請求項４４】
請求項３９乃至４２のいずれか１項に記載の方法に従って、複数の画素を含むデジタル画像を解析するためのコンピュータプログラムを記録したことを特徴とするコンピュータ可読媒体。
【請求項４５】
複数の画素を含むデジタル画像をセグメント化する方法であって、
前記デジタル画像から複数の画素のブロックを生成するステップと、
前記画素のブロックを使用して、各ブロックに対して少なくとも１つの連結成分を作成するステップとを備え、前記作成するステップは、
各々が空間的に連結しかつセマンティカリーに関連する画素のグループを含む少なくとも１つの連結成分に、画素のブロックをセグメント化するステップと、
前記ブロックの少なくとも１つの連結成分を、少なくとも１つの他のブロックからセグメント化された少なくとも１つの連結成分と、マージするステップと、
前記ブロックの前記連結成分の前記画像における配置に関する情報を格納するステップと、
備えることを特徴とする方法。
【国際調査報告】
2008524728.tif 000071
2008524728.tif 000072
2008524728.tif 000073