ドキュメントのマルチラスタコンテンツ(MRC)表現についてのセグメント化方法及びシステム
【課題】MRC表現の利点を利用して、画像を効率的に一組のプレーンに分離する。
【解決手段】画像信号を一組の画像プレーンに分離するシステムは、最小最大モジュールと、ダイナミックしきい値モジュールと、分離モジュールとを備える。最小最大モジュールは、画像信号を受信し、該画像信号における現在のピクセル上に中心を置く少なくとも1つのウィンドウ内で最小及び最大を探索する。ダイナミックしきい値モジュールは、ウィンドウについて、最小最大モジュールから受信した最小及び最大の各々、及び現在のピクセルに基づいて、該現在のピクセルの距離及び方向をそれぞれのしきい値プレーンに対して表す指標のそれぞれを計算し、該指標に基づいて制御信号を出力する。分離モジュールは、現在のピクセルの表現を画像プレーンの少なくとも1つに含ませることにより、制御信号にしたがって、画像信号を一組の画像プレーンに分離する。
【解決手段】画像信号を一組の画像プレーンに分離するシステムは、最小最大モジュールと、ダイナミックしきい値モジュールと、分離モジュールとを備える。最小最大モジュールは、画像信号を受信し、該画像信号における現在のピクセル上に中心を置く少なくとも1つのウィンドウ内で最小及び最大を探索する。ダイナミックしきい値モジュールは、ウィンドウについて、最小最大モジュールから受信した最小及び最大の各々、及び現在のピクセルに基づいて、該現在のピクセルの距離及び方向をそれぞれのしきい値プレーンに対して表す指標のそれぞれを計算し、該指標に基づいて制御信号を出力する。分離モジュールは、現在のピクセルの表現を画像プレーンの少なくとも1つに含ませることにより、制御信号にしたがって、画像信号を一組の画像プレーンに分離する。
【発明の詳細な説明】
【背景技術】
【0001】
ドキュメントのMRC(マルチ又は混合ラスタコンテンツ)表現は汎用性がある。これは、カラー画像、及びカラー又は白黒テキストのいずれも表す能力を提供する。MRC表現は、ドキュメント内容を表すために、多数の「プレーン」を用いることを可能にする。MRC表現は、市場においてますます重要になってきている。これは既に、主要なカラーファックスの標準として確立されている。
【0002】
MRC表現において、画像は1つ以上のプレーンにより表される。ドキュメントのMRC表現の主要な利点は、大きなデジタルカラードキュメントを格納し、送信したり、操作するための効果的な方法を提供することである。この方法は、コントラストの高いエッジ(縁)がある場合には小さな色の変化を識別する能力が大幅に低減される、という人間の視覚システムの特性を利用するものである。エッジの情報は、通常、滑らかに変化する色の情報から分けられ、セレクタプレーンと呼ばれるプレーンの1つにおいて(可能であれば、ピクセル当たり2ビット以上の高い解像度で)コード化される。慎重な分離に続き、種々のプレーンを良好な圧縮及び高い品質をもつ標準的な圧縮方式(JPEG及びG4のような)を用いて独立して圧縮することができる。
【発明の概要】
【発明が解決しようとする課題】
【0003】
MRC表現の利点を十分に利用して、画像を効率的に一組のプレーンに分離するための方法及びシステムが必要とされる。
【課題を解決するための手段】
【0004】
画像信号を一組の画像プレーンに分離するための方法及びシステムを開示する。システムは、最小最大モジュールと、ダイナミックしきい値モジュールと、分離モジュールとを備える。最小最大モジュールは、画像信号を受信し、該画像信号における現在のピクセル上に中心を置く少なくとも1つのウィンドウ内で最小及び最大を探索する。ダイナミックしきい値モジュールは、ウィンドウについて、最小最大モジュールから受信した最小及び最大の各々、及び現在のピクセルに基づいて、該現在のピクセルの距離及び方向をそれぞれのしきい値プレーンに対して表す指標のそれぞれを計算し、該指標に基づいて制御信号を出力する。分離モジュールは、現在のピクセルの表現を画像プレーンの少なくとも1つに含ませることにより、制御信号にしたがって、画像信号を一組の画像プレーンに分離する。
【0005】
本発明は、画像信号を一組の画像プレーンに分離する方法及びシステムを提供する。画像信号は、デジタル走査されたドキュメントを表す。画像プレーンは、デジタル走査されたドキュメントの混合ラスタコンテンツ(MRC)表現に適当である。
【図面の簡単な説明】
【0006】
【図1】ドキュメントについてのMRC構造を示す図である。
【図2】セグメントモジュールのブロック図である。
【図3】走査セグメントモジュールのブロック図である。
【図4】依存最小最大モジュールのブロック図である。
【図5】依存最小最大モジュールの作動を示す図である。
【図6】ダイナミックしきい値モジュールのブロック図である。
【図7】バイナリ・スケール・モジュールのブロック図である。
【図8】バイナリ・スケール・モジュールの作動を示す図である。
【図9】パックされたセレクタのフォーマットを示す図である。
【図10】マークエッジモジュールのブロック図である。
【図11】マークエッジモジュールの作動を示す図である。
【図12】バックグラウンド及びフォアグラウンドを定義する決定範囲を示す図である。
【図13】PDLのMRCセグメント化モジュールのブロック図である。
【図14】PDLセグメント化モジュールのクラスを示す表である。
【図15】FG/BGクリーンアップモジュールのブロック図である。
【図16】フォアグラウンドのエローションを示すブロック図である。
【発明を実施するための形態】
【0007】
図1は一般的なMRC表現を示す。この表現は、4つの独立したプレーン、すなわち、フォアグラウンド(FG)、バックグラウンド(BG)、セレクタ(SEL)、及びレンダリングヒント(HINTS)を含む。最も一般的な場合においては、より高レベルで、多数のフォアグラウンド及びセレクタの対があり得る。しかしながら、多くの適用例においては、この表現は、3つ又は4つのプレーンに限定される。バックグラウンドプレーンは、典型的には、ピクチャ及び/又は滑らかに変化する背景カラーのような連続階調情報を格納するために用いられる。セレクタプレーンは、通常は、他のエッジ情報(例えば線画図)と併せてテキスト画像(バイナリ)を保持する。フォアグラウンドプレーンは、通常は、対応するテキスト及び/又は線画のカラーを保持する。しかしながら、MRC表現は、プレーン、及びそれに関連する圧縮方法のみを指定する。それは、他の方法によりプレーンの各々のコンテンツを制限したり実行したりはしない。プレーンの各々のコンテンツは、MRC表現の実行により適切に定義することができる。
【0008】
MRC構造はさらに、ドキュメントのコンテンツについての付加的な情報を伝達するために用いられる4番目のプレーン、すなわちレンダリングヒントプレーンを考慮する。例えば、レンダリングヒントプレーンは、ページ上の種々の対象に最適なカラー整合方法を識別するICC(国際カラーコンソーシアム)のカラーヒントを実行することができる。
【0009】
フォアグラウンド及びバックグラウンドプレーンは、2つのフルカラー(L、a、b)又はYCCプレーンと定義される。セレクタプレーンは、バイナリ(1ビットの深さ)プレーンと定義される。1つの例示的なMRC表現は、フォアグラウンド及びバックグラウンドがJPEG圧縮されるように、しかもセレクタプレーンがITU−G4圧縮(標準のグループ4のファクシミリ圧縮)されるように指定する。レンダリングヒントプレーンは任意であると考えられるが、それが用いられる場合には、Lempel−Ziv−Welch方式と同様の圧縮方式をその圧縮に用いることができる。一般に、フォアグラウンド、バックグラウンド、セレクタ、及びレンダリングヒントプレーンは全て異なる解像度であってよく、それらはオリジナルのソース入力解像度を維持する必要はない。
【0010】
「セグメント化された」MRC画像を、その構成要素(例えばプレーン)から戻すように組み立てる方法は、フォアグラウンドカラーを、セレクタプレーンの「マスク」を通してバックグラウンドプレーンの上に「注ぎ」、これにより、これらの位置において、バックグラウンドプレーンの前のコンテンツに上書きするようにすることによるものである。換言すると、この組み立ては、セレクタプレーンのバイナリ制御信号に基づいて、ピクセル毎に、フォアグラウンド情報及びバックグラウンド情報の間で多重化することにより達成される。例えば、セレクタの値が1である場合には、フォアグラウンドのコンテンツが用いられ、そうでない場合(すなわち、セレクタの値=0の場合)には、バックグラウンドのコンテンツが用いられる。そのマルチプレクシング操作は、全ての出力ピクセルが定義されるまで、ピクセル毎に繰り返される。
【0011】
ドキュメントのMRC表現の主な利点は、大きなデジタルカラードキュメントを格納し、送信し、及び操作するための効果的な方法を提供することである。この方法は、コントラストの高いエッジがある場合には、小さなカラー変化を識別する能力が大幅に低減される、という人間の視覚システムの特性を利用するものである。エッジの情報は、通常、滑らかに変化するカラー情報から分けられ、セレクタプレーンにおいて(多分、ソースピクセル当たり1セレクタサンプルより高い解像度で)コード化される。慎重な分離に続き、種々のプレーンを良好な圧縮及び高い品質をもつ標準的な圧縮方式(JPEG及びG4のような)を用いて独立して圧縮することができる。
【0012】
セグメントモジュールは、セグメント化されるべきフルカラーの入力画像を取り込み、3つのMRCプレーン、すなわちフォアグラウンドプレーンFG、バックグラウンドプレーンBG、及びセレクタプレーンSelについて3つの別々の出力、並びに幾つかの付加的な信号を生成する。セグメントモジュールのブロック図は図2に示される。セグメントモジュールは、セグメント化ステージ24の後に、MRCスケール及びタイルタグ生成ステージ44が続く2つのステージで構成される。セグメント化ステージ24は、2つの相互に排他的なモード(走査セグメント化24又はPDLセグメント化26)の1つにより作動することができる。
【0013】
走査セグメント化モジュール24に対する一次入力はSrc20である。これは更に、本出願人の係属中の米国特許出願D/A3011に詳述される8ビットのスクリーン・マグニチュード推定信号SCM22を利用する。走査セグメント化モジュール24は、フルカラー(生すなわち未処理)のフォアグラウンドプレーン出力Fgr30及びバックグラウンドプレーン出力Bgr28、及びモジュール24によりエクスポートされた(モジュール24によりスーパーサンプルされた可能性がある)Sel出力32を出力する。
【0014】
PDLモード40において、PDLセグメント化モジュール26はSCM22を用いないが、代わりに、ヒント情報をPDLインタープリタからキャプチャする信号Rht34を用いることができ、CEFヒントプレーンHnt38にコード化される。PDLセグメント化モジュール26からの出力は、フルカラー(生すなわち未処理)のフォアグラウンドプレーンFgr30及びバックグラウンドプレーンBgr28、バイナリのセレクタプレーンSel32、及びヒントがある場合にはヒントプレーンHnt38を含む。上に示されるように、ヒントプレーンは1ビット又は8ビット深さとすることができる。
【0015】
走査モード42及びPDLモード40についてのSrc画像は、典型的には、異なって処理されたものである。走査セグメントモジュール24は、デ・スクリーンされている入力に依存する。このことは、PDLソースから直接生成されるクリーンでノイズのない画像については必要とされない。
【0016】
走査処理において、ソース入力画像Src20のクロマ成分は、高速走査方向(x:XCSS)において、係数2によりサブサンプルされると仮定される。セグメンタにより生成された如何なるカラー画像もXCSSを用いない。ソース画像のクロマサンプルがアクセスされた場合には、如何なる「調整」フィルタ作用も必要とされない。すなわち、4つのサンプルXCSS象限、L0A0L1B1についてであり、ピクセル0は、L0A0B1であり、ピクセル1は、L1A0B1、である。
【0017】
セレクタプレーンSelの出力はバイナリ(1ビット深さ)であり、パックされたセレクタプレーンSpkは、2×2のバイナリの隣接するセレクタピクセル(4ビット)を互いにパックする。
【0018】
PDL処理においては、ソース入力Src20は、フルカラー画像であると仮定され、ここでクロマチャネルは典型的にはサブサンプルされず、したがって、輝度チャネルと同じ解像度である。
【0019】
一般に、エクスポートされたフォアグラウンド、バックグラウンド、及びセレクタプレーンはすべて、入力画像に対して異なる解像度であってよい。例えば、フォアグラウンド及びバックグラウンドプレーンは、典型的には、ダウンサンプルされ、セレクタプレーンは元の入力解像度からアップサンプルされることがある。アップ又はダウンサンプリングの量は、ソフトウェア制御の下でプログラム可能である。
【0020】
MRCスケール及びタイルタグ生成モジュール44は、最初(生:未処理)のバックグラウンドBgr28、フォアグラウンドFgr30、セレクタSel32、及び存在する場合には(PDLモードのみ)、任意に、ヒントHnt38を読み込む。これは、「ホール」すなわち生(未処理)の画像において前もって指定されていないピクセルをサブサンプルし塗ることにより、最終カラーMRC層、すなわちバックグラウンドBgd46及びフォアグラウンドFgdを生成する。さらに、MRCスケール及びタイルタグ生成モジュール44は、バックグラウンドTtb50、フォアグラウンドTtf52、セレクタTts53、及び存在する場合には(PDLモードのみ)、任意にレンダリングヒントTth54についての4つの関連するタイルタグ信号を生成する。タイルタグは、タイル(又はストリップ)当たり1バイナリビットであり、現在のタイル全体を省くことができるかどうかを示す。このことは更に、全体のファイルの大きさを減らす。欠けているタイルは、各々のプレーンについて自動的に既定のデフォルトカラーに塗られる。
【0021】
走査セグメント化モジュール24は、走査されたドキュメントについて、3つのプレーンにMRCセグメント化を行う役割のものである。走査セグメント化モジュール24に対する入力は、入力カラー信号Src20及び8ビットのスクリーン・マグニチュード推定信号SCM22を含む。走査セグメント化モジュール24は、フルカラー(生:未処理)のフォアグラウンドプレーンFgr28及びバックグラウンドプレーンBgr30、及びセレクタSel32プレーンを出力する。
【0022】
走査セグメント化モジュール24のブロック図は図3に示される。以下は、走査セグメント化モジュール24を構成する種々のモジュールについての簡単な説明である。カラー入力信号Src20は、関心のある現在のピクセル上に中心が置かれた7×7ウィンドウにおいて、動的(ダイナミック)しきい値処理のために、最小Min及び最大Maxカラー値を探索する依存最小最大モジュール60に転送される。
【0023】
最小Min61及び最大Max63値は、ダイナミックしきい値モジュール62及び走査MRCモジュール64に転送される。ダイナミックしきい値モジュール62はさらに、入力カラー画像Src20及び8ビットのスクリーン・マグニチュード推定信号SCM22を用いる。ダイナミックしきい値モジュール62は、モノクロの8ビット信号Grr55を出力し、そのバイアスされたゼロ交差は、セレクタプレーンにおけるエッジの位置を表す。また、ダイナミックしきい値モジュール62はさらに、セグメント化が適用される場合には、ピクセル毎に走査MRC分離モジュール64に通信するように用いられ、その場合には、どれだけの付加的な増強が適用されるかを通信する8ビットのセグメント増強制御Enh59を生成する。
【0024】
ブロックスムージング(平滑化)ユニット56の目的は、弱い(「偽」とも言われる)エッジを強いエッジから離れるように移動させて、フォアグラウンド及びバックグラウンドのJPEG最小コード化ユニット(MCU)ブロック内でコントラストの高い遷移を阻止するようにすることである。近くに如何なる強いエッジもない場合には、弱いエッジはJPEGブロックから近くのブロックの間の境界に押し出される。この方法は、JPEGブロック内での不必要な急激な遷移を排除し、このようにして、圧縮及び質全体が増加されることになる。ブロックスムージングユニット56からの出力は、入ってくる信号Grr55の平滑化された(フィルタ処理された)形態を表す8ビットの平滑化されたGrs57信号である。
【0025】
フォアグラウンドエローション(erosion)ユニット200は、線形YCCセグメント化を用いて、薄い(しかし壊れてはいない)テキストの要求事項に対処するように用いられる。一定の値がグレイセレクタから引かれ、これによりフォアグラウンドが薄くなる/エローションされる。このことは、近くの試験が、以下にさらに完全に詳述されるように、薄くすることが破線をもたらさないことを実証する場合にのみ行われる。
【0026】
バイナリスケールユニット66は、ブロックスムージング56の出力からもたされた平滑化されたグレイセレクタ信号Grs57をスーパーサンプルする能力を与える。通常の1:1モードにおいては、Grs57信号はしきい値にされて、バイナリのセレクタプレーン出力Sel32が生成されるようになる。しかしながら、高品質のテキスト及び線画の再現においては、セレクタプレーンを、入力解像度の2倍でスーパーサンプルすることがある(例えば、600dpiの入力について1200dpiで)。セレクタ信号のスーパーサンプル処理は、しきい値化の前にサンプル処理周波数を2倍にすることにより行われる。その結果もたらされるより高い解像度のセレクタピクセルは、隣接する4つが一度にパックされて、パックされたセレクタ信号Spk122にされる。
【0027】
マークエッジ処理モジュール58は、パックされた高解像度のセレクタ出力Spk122を取り込み、関心のある現在の(低解像度)ピクセル上に中心を置く5×5(高解像度)ウィンドウにおけるオン及びオフのピクセル数をカウントする。マークエッジ処理モジュール58からの出力は2ビットの信号See142である。See信号142は、5×5ウィンドウの内側のすべての入力ピクセルがオフである場合には0に設定される(3×3の一定のバックグラウンド区域に対応する)。同様に、See信号142は、ウィンドウの内側のすべての入力ピクセルがオンである場合には3に設定される(3×3の一定のフォアグラウンド区域に対応する)。更に、See出力は、5×5ウィンドウが、ほとんどバックグラウンドであるか又はほとんどフォアグラウンドのそれぞれである場合には、1又は2に設定される。
【0028】
最後に、走査MRC分離モジュール64は、セグメント化されるべきフルカラーのソース信号Src20、並びに、依存(dependent)最小最大モジュール60からのカラーの最小及び最大(Min、Max)を取り込む。更に、MRC分離モジュール24はマークエッジ処理モジュール58からのSee信号142、及びダイナミックしきい値モジュール62からセグメント化及び増強信号Enh59を用いる。MRC分離モジュール64は、実際は、2つのフルカラーの出力Fgr24及びBgr30を、フォアグラウンド及びバックグラウンドプレーンのそれぞれについての粗い推定値として生成する。ここで、走査セグメント化モジュールの種々のモジュールが以下に述べられる。
【0029】
依存最小最大モジュールのブロック図が図4に示される。依存最小最大モジュール60は、Src信号20を入力し、関心のあるピクセル80上に中心を置く7×7ウィンドウを調査して、最大L及び最小Lピクセルを見出し、ここでLは輝度チャネルである。最大出力68は最大L72を有するピクセルである。最小出力70は最小L74を有するピクセルである。最小出力70は最小L74を有するピクセルである。その結果もたらされるクロマ値はしたがって、極値が見出された位置に依存する。
【0030】
依存最小最大モジュール60の作動が図5に示される。この作動は2つの段階で進められる。第1の段階において、依存最小最大モジュール60は、輝度成分Lの最も大きな68及び最も小さな70サンプルをウィンドウにわたって探索する。最小輝度値74及び最大輝度値72の位置が見出されると、それらは、これらの位置におけるクロマ成分(A、B)と併せて出力される。Src信号20がXサブサンプルされたクロマ成分と共にこのモジュールに到達した場合でも、これが、Xクロマサブサンプル処理が中断される点である。すなわち、最大及び最小カラー信号は、Xサブサンプルされたクロミナンスをもたない。
【0031】
このフィルタ作用工程は分離可能である。例えば、個々の列の最小/最大を最初に計算して、次に、最小Lを有する列最小ピクセルを見出すことにより最終の最小74を計算することができる。このことは、Src画像にわたって実行されるウィンドウとして必要とされる段階的な作業が、最小及び最大出力の両方について、1つの高さ7の列と、1つの幅7の行とを計算することになる。
【0032】
図6を参照すると、ダイナミックしきい値モジュール62は、適応しきい値化を入ってくるカラーソース信号Src20に適用して、ゼロ交差がセレクタプレーンの遷移を表す生の符号付8ビットのグレイセレクタ信号Grr出力114を生成する。グレイセレクタ値≧0は、セレクタ値が1であるピクセルをマークし、フォアグラウンドに置かれる。グレイセレクタ値<0は、バックグラウンドに置かれるピクセルをマークする。図6に示されるように、ダイナミックしきい値モジュール60は、依存最小最大モジュール60からの一対の依存最小/最大(Min、Max)90及び92のそれぞれ、並びにスクリーン推定モジュール(SEM)からの8ビットのスクリーン・マグニチュード推定信号Scm22を利用する。ダイナミックしきい値モジュール62はさらに、8ビットの信号Enh118を生成する。Enh信号118は、走査MRC分離モジュール64に通信されて、ピクセルがバックグラウンド及び/又はフォアグラウンドプレーンに置かれたときに、どれだけの増強が適用されるかを判断するようにする。
【0033】
ダイナミックしきい値モジュール62は、ダイナミックしきい値、静的しきい値、及びフォアグラウンドに対する力という3つのセグメント化モジュールで作動する。静的しきい値化は、画像が平滑である(変化しない)場合に適用される。このモードにおいては、DefautThr76より大きいか又は等しい輝度値をもったピクセルがバックグラウンドに割り当てられ(Grr==127=−1)、DefaultThrより少ない輝度値をもったピクセルがフォアグラウンドに割り当てられる(Gr==129=+1)。127及び129(+−1)は、Grr114についての小さなマグニチュード値を表す。これらは、近くにある強い決定の位置及び極性を考慮することによって、後続するブロックスムージングモジュール56により修正することができる弱い決定を表す。前記の強い決定は、符号付Grrマグニチュード>1(符号化された値<127、又は>129)により表される。強い決定はダイナミックしきい値モードにおいてのみ生成され、強い決定だけが非ゼロEnhコードを有することができる。静的しきい値化及びフォアグラウンドに対する力のモードの両方は、弱い決定しか生成しない。
【0034】
幾つかの構成においては、フォアグラウンドに対する力のモードは、ハーフトーン画像についてイネーブルにされ、このモードは、HTFGScmThr84を256より少ない或る値に設定することによりイネーブルにされる。Scm22がHTFGScmThr84に等しいか又はこれより大きい場合にはいつでも、Grr114は129(=±1)という最小フォアグラウンド値にさせられ、Enh118はゼロに設定される。
【0035】
フォアグラウンドに対する力が優先されない場合には、セグメント化は、弱い静的しきい値の決定の生成と強いダイナミックしきい値の決定の生成との間でアクティブに切り換わる。信号EnhEnは、強い決定を示し、EhFVsScm関数の出力をEnhにゲート制御する。EhFVsScm関数は、スクリーン・マグニチュード推定Scmをドメイン値として用いる。真である場合、EnhEnはさらに、符号付き8ビットの信号GSelをGrrの符号化のためのソースとして選択する。以下にさらに詳細に述べられるGSelは、ドット積モジュールの一次出力である。図6に示されるように、フォアグラウンドに対する力(HTFGEn)が優先されない場合には、ドット積ユニットの他の2つの出力、Ccc及びCc0(以下に述べられる)が試験され、その結果が互いにORedされて、EnhEnが計算されるようになる。
【0036】
Ccc≧EhClrConThrVsMin関数の出力である場合には、EnhEnがイネーブルにされる。或いは、Cc0≧EhLumConThrVsMax関数及びEhLumConThrVsScm関数の最大である場合には、EnhEnがイネーブルにされる。EhClrConThrVsMin関数及びEhLumConThrVsMax関数についての入力信号が、Min及びMax信号それぞれの輝度成分である場合には、EhLumConThrVsScm関数についての入力信号はScmである。
【0037】
ドット積ユニット82(図6の左上から2つ目のブロック)は、フルカラーの入力信号Src20、並びに、依存最小最大ユニットからのフルカラーの最小92及び最大90(Min、Max)を用いる。これらの値は、輝度の極値、及び関心のある現在のピクセル上に中心が置かれた(7×7)ウィンドウ内に見出される対応するクロマ値を表す。このブロックの作動は、主に、2つのベクトルのドット積乗算を行うことである。
[数1]
GSel=最小(127、最大(−127(<X、Y>>/256)))
ここで、<X、Y>は2つのベクトルX及びYの間のドット積演算である
[数2]
<X、Y>=(XL、XA、XB)(YL、YA、YB)1=XLYL+XAYA+XBYB
ここで、Xは、下記数式3の通りであり、
【数3】
及びYは下記数式4の通りである。
【数4】
【0038】
さらに改善するための実施形態としては、LMN==0である場合に、数式4における輝度成分値はLMX/2からLMX/4に変化する。これは、前の鮮明化ステージにより生成されるのが普通である輝度のアンダーシュートを調整する一次の試みである。これは、薄いテキスト特徴がセグメント化工程により拡大されるのを阻止することを助ける。すなわち、以下の数式5に表される。
【数5】
【0039】
数式4又は5における(L、A、B)値は、入ってくる信号Src20の対応するカラー成分である。数式3におけるXベクトルは、(Min、Max)の最大及び最小の間のベクトル差である。数式4におけるYベクトルは、入ってくる信号Src20から最小及び最大平均を引いたものである。これら2つのベクトルのドット積を取ることにより、出力は、Xベクトルに対して垂直であり、それを途中まで沿って交差するプレーンからの相対的な距離と比例するようになる。{XA、XB、YL、YA、YB}並びに最終出力GSelは負になることがある。数式1におけるドット積出力の絶対マグニチュードは、ゼロ交差を識別することほどは重要ではないため、この結果は単純に256により割られて(8だけ右にシフトする)、8ビット範囲に嵌まるように換算し戻される。(ドット積の正規化は、ベクトルのマグニチュードにより割ることを必要とする)。しかしながら、出力は、多くの場合、依然として8ビット範囲を桁あふれすることがあるため(おおよそ3又は最大1.5ビットの係数だけ)、これがさらに大きくなりすぎる場合には、出力マグニチュードを127に制限する論理を加えることが必要になる。ドット積82出力は、図6においては、符号付8ビット信号GSel又はグレイセレクタ出力として示される。ドット積乗数の大きさを8ビットに制限するために、X及びYの両方の成分を1/2によりあらかじめ換算し、最終除数を64に変更することができる。
【0040】
ドット積ユニット82はさらに、輝度及びクロマ・コントラスト・マグニチュードを測定する2つの8ビットの信号を出力する。輝度部分Cc0106はベクトルXの第1成分により表される。
[数6]
Cc0=XL=L最大−L最小
【0041】
全体のクロマ・コントラスト・マグニチュードCcc104についてのスカラー尺度はさらに、ベクトルXの2つのクロマ成分の絶対値を互いに加えることにより生成される。
【数7】
輝度成分における絶対値は、Lが正の範囲[0...255]に制限されるために無視することができ、最大は常に最小より大きい。
【0042】
図6の左部分における決定論理関数91は、デフォルトとアクティブなセグメント化モードとの間での切り換えを管理する。各々の関数は、区分的線形関数を表す小さな組の(x、y)点の対により表される。最初のx値より小さいx値については、出力は最初のy値である。x値>最後のx値については、出力は最後のy値である。
【0043】
上記の論理の重要性は、アクティブなセグメント化モードの下で作動するためには、ドット積輝度コントラスト又はドット積クロマコントラストのいずれかが十分に大きくなくてはならないことである。クロマコントラストは、(7×7)ウィンドウにおいて見出される最小輝度の関数より大きくなくてはならない。同様に、輝度コントラストは、同じウィンドウ内に見出される最大輝度の関数より大きくなくてはならず、またさらに、スクリーン・マグニチュードScmの関数より大きくなくてはならない。エクスポート前に、HTFGEn及びENhEnによりゲート制御された符号付きグレイセレクタの出力は、128を加えることにより、符号なし8ビット信号Grrとして符号化される。
【0044】
ブロックスムージングユニット56の目的は、弱い(別名「偽」)エッジをできるだけ強いエッジから遠くに離すように移動させることである。このことは、JPEGプレーンにおけるパルス幅を増加させ(周波数を減らし)、これにより圧縮された大きさ及び圧縮ノイズが減ることになる。これを遮断する如何なる強いエッジもない場合には、弱いエッジはブロックから完全に掃引して出される。弱いエッジが2つの強いエッジの間でトラップされた場合には、2つの間の途中に再配置されることになる。この方法はさらに、3つのプレーンすべてにおける圧縮を改善する多数の弱いエッジの遷移を合体させる/取り除く。
【0045】
ブロックスムージングユニット56に対する入力は、しきい値化工程からの8ビットの生のグレイセレクタ出力Gr.である(アクティブ又はデフォルトのセグメント化のいずれかの下での)。ブロックスムージングユニット56からの出力は、入力信号Grの平滑化された(フィルタされた)形態を表す8ビットの平滑化されたグラス信号である。
【0046】
ブロックスムージングユニット56の一番最初の段階は、Gr.’を符号付の数にするために、128のバイアスを引くことである(Ms.をトグルする)。次に、(Gr.−128)の範囲が調査される。これが−1又は1と等しい場合には、弱いエッジBG又はFGのそれぞれであると考えられる。−1又は1より大きいすべてのものは、強いBG又はFGエッジのいずれかであると考えられる。
【0047】
ブロックスムージング工程は、Bgd及びFgdプレーンについてのJPEG最小符号化ユニット(MCU)の大きさを表す正方形の一時的な格納区域(Tm[Sm][sz]において4つのパスを含む。例えば、Bgd及びFgdがJPEC圧縮のために係数4によりサブサンプルされる場合には、さらにクロミナンス・成分が付加的に係数2によりサブサンプルされる場合には、MCUは16×16となる。このブロックスムージングアルゴリズムに必要なTmpブロックは、Tmp[64][64]の寸法にされる。実施における制約はこのブロックの大きさをより小さくすることを要求し、この場合は32×32が適するであろう。現在のパイプライン構成は、1/4の縮小を適用するときにはクロマのサブサンプリングが用いられないために、32×32ブロックしか必要としない。
【0048】
第1のパスにおいて(Grr−128)ピクセルは、各々の行が独立したTmpの中に左から右へ処理される。強いエッジがある場合にはいつでも、対応するTmpの位置が+/−K(あらかじめ定義された定数==2*Tmp−1の寸法)に初期化される。符号はGrr−128と同じである。或いは、弱いエッジについては、Tmpはマグニチュードが1だけ減らされた前のTmp値で書かれる。第1のパスが左から右に移動しているため、前のTmp値はちょうど左側にあるTmp値である。行における第1の値の前の値は、0になるように定義される。マグニチュードを1だけ減らすことは、+4を+3に、−2をー1に、及び0を0に変換する。さらに、このパスにおいては、すべての弱い値、+1、−1の蓄積(WeakCnt)が計算される(Grrが弱いところだけ)。
【0049】
第2のパスにおいては、Tmpの各々の行は、右から左に旋回し、今回は、マグニチュードが減った前の値が現在の値と比較される。最も大きなマグニチュードをもった値は、現在の位置に置かれる。再び、右側にある第1の値についての前の値は0と仮定される。パス1及び2の行は独立しているため、パス2は、パス1と交互配置することができる。パス3及び4は、方向が上から下及び下から上であることを除いては、パス2と同じである。
【0050】
4番目のパスの後、最終的な平滑化された結果がTmpを調査することにより生成される。Tmp値が最大マグニチュード(+K又は−K)を有する場合には、用いられる値はGrrからの元の強いエッジの値である。或いは、弱いフォアグラウンド又はバックグラウンドについてのコード(128+1又は128−1)が、Tmp値が正であるか又は負であるかによって用いられる。
【0051】
図7を参照すると、バイナリ・スケール・モジュール66は、8ビットのグレイスケールセレクタの入力Grs120を、バイナリのセレクタプレーンの出力Sel32に変換する。高品質テキスト及び線画においては、バイナリのセレクタ出力Sel32はSrc20より高い解像度で維持することができる。例えば、現在の設計は、各々の方向において2倍の解像度を用いることを可能にするため(SEG_Sel_ScaleUp)、標準的な600dpiのスキャナについては、バイナリのSel信号の出力解像度は1200dpiになることがある。セレクタ論理モジュールは、グレイセレクタGrs入力をより高い解像度に補間し、その後信号をしきい値にしてバイナリの出力Sel32を生成するようにする役割のものである。冗長なSel(Spk)のパックされたコピーがさらにSrc20解像度で生成される。
【0052】
バイナリ・スケール・モジュール66のブロック図が図8に示される。8ビットのグレイセレクタ入力信号Grs120が、最初に、2Dの双一次補間124を用いて、各々の方向で、係数2によりグレイドメインにおいて補間される。双一次補間からの出力は、補間された(スーパーサンプルされた)セレクタを用いるか又はSrcと同じ解像度である通常のバイナリのものを用いるかを選択するために乗算器126を通過させられる。最後に、グレイ出力がしきい値ユニット128を用いてバイナリに変換されて、セレクタ信号Sel32が生成されるようになる。
【0053】
2xの補間係数については、バイナリのSel出力データ転送速度は、各々の方向において、ソース信号Srcの2倍だけ速いことに注目されたい。このことは、8ビットの入力Grs毎に、バイナリ・スケール・モジュールは4つのバイナリ出力Selサンプルを生成することを意味する。Sel出力の第2のパックされた形態(Spk)122は、図9に示されるように、4つのバイナリのセレクタビットが互いパックされるように生成される。セレクタ出力140は、より高い出力解像度を示すためにベクトル表記法を用いることに注目することが重要である。出力は依然としてバイナリであると考えられるが(すなわち、値が0又は1のいずれかのみであると仮定する)、各々の入ってくる信号Grs入力は、出力において4つのセレクタビットを生成する(2x補間係数を仮定する)。4つのバイナリピクセルは、上に示されるように、8ビットのパックされた信号Spk122にパックされる。補間係数が1だけである場合には、すべての4つのビットは同じである。
【0054】
図10を参照すると、マークエッジモジュール58は、パックされた高解像度のセレクタの形態Spk122を取り、関心のある現在のピクセル80上に中心を置く5×5の[高解像度]ウィンドウ155におけるオン及びオフのピクセル数をカウントする。マークエッジモジュール58からの出力は、4値信号See142である。ウィンドウの内側のすべての入力ピクセルが0である場合には(一定のバックグラウンド区域に対応して)、See信号142は0に設定される。同様に、ウィンドウの内側のすべての入力ピクセルがオンである場合には(一定のフォアグラウンド区域に対応して)、See信号142は3に設定される。さらに、ウィンドウのコンテンツがほとんど後面グランドであるか又はほとんどフォアグランドである場合には、See出力142は1又は2のいずれかに設定される。Seeは4つの値のみであり、2ビットで符号化することができる。
【0055】
マークエッジモジュール58の作動が図11に示される。ユニットの作動は以下の通りである。エッジ処理モジュール58への入力は、Srcと同じ解像度であるパックされたバイナリのセレクタ信号Spkである。エッジ処理モジュール58は、関心のある現在のピクセル上に中心が置かれた3×3ピクセルのコンテクストウィンドウを維持する(元の入力解像度で)。論理的には、パックされたセレクタ(Spk)セレクタは、図11に示されるように、3×3ピクセルウィンドウにおける各々のSrc解像度ピクセルについて4つのバイナリのセレクタピクセルを含む。より太いラインは、高解像度ドメインにおける6×6ピクセルのコンテクストウィンドウに対応する元のSrc解像度を表す。しかしながら、5×5高解像度ピクセル区域の内側のコンテンツだけが用いられ、図11の影が付けられた区域はカウントにおいては除外される。
【0056】
5×5高解像度のコンテクストは、関心のある現在のピクセルに近接した潜在的なエッジを「検知する」ために設計されたものである。ウィンドウパターンは、現在のピクセルの上から又は左に1つだけ下に及び右に延びる2つの[高解像度]ピクセルの完全なコンテクストを用いる。独自のウィンドウパターンは、多数の(低解像度)ピクセルに関連した如何なるエッジも近くのピクセルと重なり合わないように、すなわち、如何なる潜在的なエッジの位置も1回以上検知(すなわち共有)できないようにされる。関心のある現在のウィンドウ内にある4×4=16の可能性のあるエッジの位置がさらに図11に示される。
【0057】
マークエッジモジュール58は5×5高解像度区域において現在オンにされた高解像度ピクセルの数をカウントする。この数は、0から25までとすることができる。これは、以下のようにマークエッジモジュール58から出力信号Seeにマップされる。
See=0 5×5カウントが0である(如何なるフォアグラウンドピクセルも見出されなかった)場合
See=1 カウントが[1...12]の範囲にある(ほとんどがバックグラウンドピクセル)の場合
See=2 カウントが[13...24]の範囲にある(ほとんどがフォアグラウンドピクセル)の場合
See=3 カウントが25である(フォアグラウンドピクセルだけが見出された)場合
【0058】
再び図3を参照すると、出力信号Seeは、走査MRC分離モジュール64に転送される。See信号は元の入力解像度(典型的に600dpi)である。走査MRC分離モジュール64は、入ってくるソース信号Srcをフォアグラウンド及びバックグラウンドプレーンに分割する役割のものである。このモジュールは、依存最小最大モジュールからのフルカラーの最小及び最大(Min、Max)出力並びにマークエッジモジュールからのマークされたセレクタエッジカウント信号Seeを用いる。さらに、走査MRC分離モジュールは、ダイナミックしきい値モジュールからのセグメント増強制御信号Enhを介して、エッジの上昇を増強する能力を有する。
【0059】
走査MRC分離モジュール64は、フォアグラウンド出力Fgr30及びバックグラウンド出力Bgr28のそれぞれの2つのフルカラーの生:未処理の推定値を出力する。追跡モジュール、MRCスケール、及びタイルタグ生成モジュールは、次に、さらに最終のフォアグラウンドFgd及びバックグラウンドBgd出力のそれぞれを生成するようにFgr及びBfrを処理する。
【0060】
走査MRC分離モジュール64は、セグメント化されるべきフルカラーのソース信号Srcを取り込み、Fgr及びBgr出力の1つ又は時には両方についての値を生成する。走査MRC分離モジュールは、フォアグラウンドFgr又はバックグラウンドBgr出力のいずれかにおける空の(求められていない)ピクセルを示すように、ゼロ輝度及びクロマ(L=a=b=0)の特別なコードを備える。ページにわたりこの工程が継続すると、幾つかのフォアグラウンド及びバックグラウンドピクセルが求められないまま残る。MRCスケール及びタイルタグ生成モジュールは、次に、これらの求められていないピクセルについての値を慎重に塗られて、圧縮を低く維持し、付加的なJPEGのリンギングによるアーチファクトを阻止するようにする。
【0061】
走査MRC分離モジュール64は、マークエッジモジュールからのセレクタエッジカウント信号Seeの値を用いて、増強されたSrcピクセルをバックグラウンド、フォアグラウンド、又は両方のいずれにコピーするかを判断するようにする。決定範囲は図12に示される。基本的には、増強されたSrcピクセルは、
【数8】
である場合にはフォアグラウンドにコピーされ、
【数9】
である場合にはバックグラウンドにコピーされる。したがって、See==0である場合にはフォアグラウンドは未定義としてマークされ、See==3である場合にはバックグラウンドが未定義としてマークされる。
【0062】
最初に、増強係数Enhf1は、ちょうど1だけ増分された信号Enhであるため、最大値は255ではなく256である。
[数12]
Enhf=Enh
[数13]
Enhf1=Enhf+1
【0063】
次に、以下のフォアグラウンド及びバックグラウンドの2つのフルカラーの増強された形態を定義する(この目的は以下に述べられる)。
[数14]
enhFG=LIM[Src+(Min−Src)(Enhf1/256)]
[数15]
enhBG=LIM[Src+(Max−Src)(Enhf1/256)]
実施メモ。最終のBgd及びFgdの出力がXCss(Xクロマによりサブサンプルされ)であるか又はスケールダウンされた場合には、enhFG及びenhBGはXCSSとなることがある。
【0064】
数式14及び15において、Srcはフルカラーの入力信号であり、Min及びMaxは依存最小最大モジュールからの依存最小及び最大のカラー出力である。制限関数LIMは、成分の各々についての結果が8ビットの範囲[1...255]に制限されるようにするものであり、これにより未定義のピクセルをマークするように備えられた特別なゼロのコードが排除されるようになる。Src及びMin及びMaxはフルカラー(L、A、B)のベクトルであるため、作動は3D空間にある。
【0065】
フォアグラウンドが定義されている場合においては、すなわち、
See={1、2、又は3}
である場合には、出力Fgr値は、
[数16]
SEE={1、2、3}である場合、Fgr=enhFG
[数17]
SEE=0である場合、Fgr=0
であるように求められる。
【0066】
フォアグラウンドが用いられていない場合(すなわち、See=0)には、フォアグラウンド値は、その値を数式16にしたがって、特別なコードFgr=0に設定することにより(3つの成分すべてについて)、未定義であるとしてマークされる。メモ:この実施は、Enhfを9ビット表現に拡張し、その値は255ではなく256による正規化が可能になるように1だけ増分される(Enhf1)。
【0067】
数式14の厳密な検査は、Enhf1により表されるセグメント増強量によって、出力フォアグラウンドFgr値は、現在の入力信号値Srcと依存最小最大モジュールの最小Minとの間で補間される(3D空間において)ことを明らかにする。Enhf=0である場合には、如何なる増強も行われず、出力は入力信号Fgr=Srcに設定される。このことは、(7×7)ウィンドウにおいて十分なコントラスト活動がない限り、通常の例となる。Enhf1=256(最大の増強)である場合には、出力は、最小信号Fgr=Minに設定される。このことは、エッジのすぐ近くにあるピクセルの例を表し、ここでは、近くの最小値により与えられるように(0=黒)、フォアグラウンドをできるだけ暗く塗ることによりエッジを増強することが有利となる。しかしながら、一般に、セグメント増強Enhfは上記の2つの極値の間で変化することができ、出力フォアグラウンド値は、Src及びMin値の間で対応して重み付けされる。
【0068】
同様に、セグメント化においてバックグラウンドを用いる場合、
すなわちSee={0、1、2}である場合においては、出力Bgr値は、
[数18]
See={0、1、2}である場合、Bgr=enhBG
[数19]
See=3である場合、Bgr=0
により求められる。
【0069】
前のように、出力Bgr値は、数式15により与えられるように、セグメント増強量Enhf1に比例して、入力Src及びMax値の間で変化する。数式18は、最小Minの代わりに最大Maxを用いること及びSeeの範囲が異なることを除いては、数式16と同様である。Bgr出力についてMaxを用いることは、フォアグラウンドを用いた場合と同じように、暗くなるのではなく明るくなるようになる。
【0070】
さらに、数式19により示され、数式17と対応して、バックグラウンド又はフォアグラウンドのそれぞれが用いられない場合(すなわち、See=3)には、(see=0)のそれぞれ又はバックグラウンド値が、その値を特別なコードBgr=0に設定することにより(3つの成分すべてについて)、未定義であるとしてマークされる。
【0071】
MRC分離モジュールからの出力は、2つの部分的に塗られたフルカラーのプレーンFgr及びBgrである。セレクタプレーンのエッジから離れたところにおいては、それが明るいか又は暗いかによって、典型的には、フォアグラウンド又はバックグラウンドの出力の1つだけが、現在のピクセルの[増強された]カラーを含む。しかしながら、近くのエッジ情報は、フォアグラウンド及びバックグラウンドチャネルの両方に同時に支持されることがある。
【0072】
図2を参照すると、PDLセグメント化モジュール26は、MRCセグメント化を3つのPDLドキュメントにおけるプレーンに実行する役割のものである。PDLのMRCセグメント化モジュール26への入力は、入力カラー信号Src20及びPDL分解器により供給することができる如何なるレンダリングヒントRht34をも含むことができる。
【0073】
PDLのMRCセグメント化モジュール26は、フルカラーのフォアグラウンド及びバックグラウンドプレーンFgr28及びBgr30、バイナリのセレクタプレーンSel32を出力し、多分8ビットのヒントプレーンHntにおいて幾らかのPDLヒントを保存する。
【0074】
PDLのMRCセグメント化モジュール25のブロック図が図13に示される。左から始まり、PDLセグメンタは、入力カラー信号Src20及びPDLインタープリタからの8ビットのレンダリングヒントRhtを読み込む。PDLセグメンタ26は、走査処理により用いられたものと機能が同様である8ビットのグレイセレクタ信号Grrを生成する。さらに、PDLセグメンタは、幾らかのPDLヒントをMRCヒントHntとして出力する。
【0075】
PDLのMRCセグメント化モジュール25からのグレイセレクタ信号Grrは、ブロックスムージングユニット56を通して処理されて、バイナリスケールユニット66に転送される平滑化されたグレイセレクタ信号Grsが生成される。バイナリスケールユニット66は、バイナリのセレクタ信号Selを生成するようにGrs信号をしきい値にする。PDLデータの質はスーパーサンプル処理により改良されないため、バイナリスケールユニットにより生成されたセレクタは常にSrc解像度にある。ブロックスムージングユニット及びバイナリスケールユニットの作動はそれぞれ上述される。
【0076】
最後に、PDLのMRC分離モジュール25は、入ってくるソース信号Src20を、フォアグラウンド及びバックグラウンドプレーンFgr30及びBgr28のそれぞれに分割する役割のものである。この分離はバイナリのセレクタプレーンSel32に基づくものである。
【0077】
PDLセグメント化モジュール26は、入力カラー信号Src20を取り込み、8ビットのグレイセレクタ信号Grr66を生成する役割のものである。さらに、PDLセグメント化モジュール26は幾らかの8ビットのPDLインタープリタヒントRhtを、ヒントプレーン上の8ビットのPRCヒントとして保存する。
【0078】
PDLセグメント化モジュールの作動は、上述の走査処理とは異なる。走査セグメント化工程は依存最小/最大分析に基づくものであり、その後にダイナミックしきい値処理が続く。しかしながら、クリーンなPDLデータについては、セグメント化は、関心のある現在のピクセル上に中心が置かれた3×3ウィンドウにおけるピクセルのコンテンツの分類に基づくものである。この分類は、現在のピクセルがフォアグラウンドFgr又はバックグラウンドBgrプレーンのいずれと関連しているかを判断する一組の法則として優先される。
【0079】
入ってくるSrcピクセルの各々について、このピクセルの周りの3×3ウィンドウのコンテンツが分析され、図14の表に示される1つ又はそれ以上の後続するクラス158に分類される。3×3ウィンドウの試験は、図14において最も左側の列に示されるように優先順位が付けられている。したがって、例えば、PDLインタープリタにより画像ピクセルになるようにタグ付けされた中心ピクセルは、黒、白、又はテキストとしてタグ付けされた中心ピクセルのような如何なる他の組み合わせにも優先する。
【0080】
図14の表における第2の列は、Cコードシミュレーションにおけるクラス名をリスト表示する。第3の列は、クラスの意味についての簡単な説明及びそれがどのように試験されるのかを示す。最後に、最後の列は、クラスがどのようにフォアグラウンド又はバックグラウンドプレーンと関連付けられる(すなわち、セグメント化される)かを示す。3×3ウィンドウの試験についての1つの例外は、クラス6及び7の場合である。これらのクラスについての方法は、以下の通りである。
【0081】
1.第1に、中心ピクセルにNEARでなく、さらに該中心ピクセルからFARでもないあらゆる外側ピクセルがBADピクセルとして分類される。ここでNEAR及びFARの意味は、マンハッタン距離DMに基づくものである。
すなわち、
(DM<PDLEqualDistLim)である場合はNEAR
【数20】
ここで、PDLEqualDistLim及びPDLOtlDistThrは2つの構成のしきい値である。
2.遭遇する中心ピクセルにNEARでなく、さらに該中心ピクセルからFARである第1のBadではない外側ピクセルは、OTHERクラスについての基準となる。
3.次に遭遇する中心ピクセルにNEARではなく、さらに(該中心ピクセルからFARではないか、又は、上のOTHER基準ピクセルにNEARではない)ピクセルがBadピクセルとして分類される。
4.最後に、OTHERクラス6及び7は、遭遇するウィンドウ内のBadではないピクセルに依存する。クラス6(OthDark)又は7(OthLite)は基準のOTHERピクセルのカラー値に基づいて差別化される。
【0082】
PDL分離モジュールは、入ってくるソース信号Srcをフォアグラウンド及びバックグラウンドプレーンFgr及びBgrのそれぞれに分割する役割のものである。この分離は、バイナリのセレクタプレーンSelに基づくものである。分離工程は、用いられていないピクセルを示すように、特別に備えられたゼロのコード(L=a=b=0)をもったフォアグラウンド及びバックグラウンドプレーンを初期化することにより開始される。
【0083】
次に、入ってくるカラーSrc値が、「用いられていない」特別に備えられたコードとの混乱が阻止されるように、ゼロから離れるように移動される。
Val=Max(1、Src)
最大関数は、Valがそのプレーンのいずれにおいても決してゼロにはならないことを保証する。分離工程は、直接的に継続する。
(Sel=1)である場合には、Fgd=Val、或いはBgd=Val
【0084】
すなわち、各々の入ってくるカラーピクセルは、フォアグラウンド又はバックグラウンドのいずれかに置かれる。走査されたドキュメントの場合とは異なり、この情報は、両方のプレーンに置かれることはなく、エッジの近くにさえも置かれることはない。したがって、分離方式は、走査の場合に対して大幅に単純化されている。
【0085】
図15を参照すると、MRCスケール及びタイルタグ生成モジュールは、粗いフォアグラウンド及びバックグラウンドの推定値Fgr及びBgrに付加的な処理を適用して、最終のフォアグラウンド及びバックグラウンド出力Fgd及びBgdを生成するようにする。MRCスケール及びタイルタグ生成モジュールにより行われる処理は、最初に、未定義のピクセルは無視しながら、フォアグラウンド及びバックグラウンド値をサブサンプルするものである。次に、この結果を係数8によりサブサンプルして、ブロック平均を計算するようにする(やはり定義されていないピクセルは無視する)。第3の段階は、計算されたブロック平均を未定義のピクセルに挿入することである。この目的は、未定義のピクセルをブロック平均で塗られることにより、JPEG圧縮のリンギングによるアーチファクトを減らすことである。
【0086】
MRCスケール及びタイルタグ生成モジュールの内側の付加的な論理はさらに、一定の黒だけの又は白だけのタイルを検知しフラグを立てるように、フォアグラウン度及びバックグラウンドの出力値を監視する。同様の論理は、セレクタ及びヒントがゼロであるときに検知する。MRCスケール及びタイルタグ生成モジュールのブロック図が図17に示される。
【0087】
サブサンプル処理モジュールの4つのすべての例が同様の方法により作動する。N×N区域におけるすべてのピクセルの合計が計算されて、valid=notZeroであるピクセル数の別々のカウントが維持される。次に、この合計が有効なピクセルのカウントにより正規化されて、出力が生成されるようになる。サブサンプル処理の第1のステージは、典型的には、Fgd及びBgdのサブサンプル処理の程度全体を表す4×4の区域に渡る。サブサンプル処理の量は、パラメータ:Seg_Fdg_ScaleDn:SEG_Bgd_ScaleDn:SEG_Fgd_Dst_Css:及びSEG_Bgd_Dst_Cssにより特定される。
【0088】
Cssパラメータは、クロマサンプルが付加的に係数2によりサブサンプルされたかどうかを制御する。第2のステージは、必ず、サブサンプルされた解像度でJPEGブロックの大きさを表す8×8の区域にわたりサブサンプルする。サブサンプルされた出力の最終の正規化は、合計重量の値に依存する。しかしながら、可能性のある合計重量値について多数の選択肢をもった所定の乗算表を用いることにより、数式において割り算を避けるようにすることが依然として可能である。
【0089】
穴埋めブロックはブロック平均Fga及びBgaをFgx及びBgxに挿入して、すべての未定義のピクセルを置き換え、最終のフォアグラウンドFgd及びバックグラウンドBgd信号を生成するようにする。穴埋めブロックはさらに、CEFファイルがエクスポートされたときに、圧縮を最適化するように用いることができるタイル又はストリップ当たり1ビットの非常に低い帯域出力Tgb/Tgbを生成する。各々の穴埋めブロックは、タイルにおける各々のピクセルを監視して、すべてのピクセルが輝度及びクロミナンスサンプルについて設定された制限内にあるかどうかを試験するようにする。すべてのタイルのピクセルが試験に通った場合には、タイルタグのビットが設定される。各々のピクセルには、3つの試験が行われる。
LumRef−L <=TileLumErr{ここでLumRefはBgdについては255、Fgdについては0である}
abs(128−A) <=TileChrmErr
abs(128−B) <=TileChrmErr
Sel及びHntのタイルタグモジュールは、1つのタイルブロックにおいて作動している大きなNORゲートの均等物に過ぎない。これらは、タイルにおけるバイナリのピクセルすべてが0である場合には1を生成する。タイルの大きさはプログラム可能であるが、典型的な値は64×64から512×512ピクセルで変化する。
【0090】
再び図3を参照すると、フォアグラウンドエローションユニット200は、線形YCCセグメント化を用いて、薄い(しかし壊れていない)カンジの要求事項に対処するように用いられる。一定の値がグレイセレクタから引かれ、これによりフォアグラウンドが薄くなる/エローションされる。ピクセルがフォアグラウンドからバックグラウンドに変換される場合には、このことは、近くの試験が、薄くなることが破線をもたらさないことを実証した場合においてのみ行われる。図16を参照すると、図は、このモジュール200の作動を示している。フォアグラウンドエローションユニット200は、幾つかのテンプレートに適合することを試みる。適合が見出された場合には、調整が行われる。図16は2つのパターンを示す。斜線がひかれたブロック210はバックグラウンドを表し、斜線がひかれたブロック214は調整より大きい強いフォアグラウンドを表す。斜線がひかれたブロック216は、調整が引かれた場合にはバックグラウンドに変わる弱いフォアグラウンドを表す。ブロック212は特定されていない。弱いフォアグラウンド216は、図16に示される2つのパターンの1つが適合する場合にのみ、バックグラウンド210に切り換わることが可能である(各々が4つの可能性のある方位を有する)。
【背景技術】
【0001】
ドキュメントのMRC(マルチ又は混合ラスタコンテンツ)表現は汎用性がある。これは、カラー画像、及びカラー又は白黒テキストのいずれも表す能力を提供する。MRC表現は、ドキュメント内容を表すために、多数の「プレーン」を用いることを可能にする。MRC表現は、市場においてますます重要になってきている。これは既に、主要なカラーファックスの標準として確立されている。
【0002】
MRC表現において、画像は1つ以上のプレーンにより表される。ドキュメントのMRC表現の主要な利点は、大きなデジタルカラードキュメントを格納し、送信したり、操作するための効果的な方法を提供することである。この方法は、コントラストの高いエッジ(縁)がある場合には小さな色の変化を識別する能力が大幅に低減される、という人間の視覚システムの特性を利用するものである。エッジの情報は、通常、滑らかに変化する色の情報から分けられ、セレクタプレーンと呼ばれるプレーンの1つにおいて(可能であれば、ピクセル当たり2ビット以上の高い解像度で)コード化される。慎重な分離に続き、種々のプレーンを良好な圧縮及び高い品質をもつ標準的な圧縮方式(JPEG及びG4のような)を用いて独立して圧縮することができる。
【発明の概要】
【発明が解決しようとする課題】
【0003】
MRC表現の利点を十分に利用して、画像を効率的に一組のプレーンに分離するための方法及びシステムが必要とされる。
【課題を解決するための手段】
【0004】
画像信号を一組の画像プレーンに分離するための方法及びシステムを開示する。システムは、最小最大モジュールと、ダイナミックしきい値モジュールと、分離モジュールとを備える。最小最大モジュールは、画像信号を受信し、該画像信号における現在のピクセル上に中心を置く少なくとも1つのウィンドウ内で最小及び最大を探索する。ダイナミックしきい値モジュールは、ウィンドウについて、最小最大モジュールから受信した最小及び最大の各々、及び現在のピクセルに基づいて、該現在のピクセルの距離及び方向をそれぞれのしきい値プレーンに対して表す指標のそれぞれを計算し、該指標に基づいて制御信号を出力する。分離モジュールは、現在のピクセルの表現を画像プレーンの少なくとも1つに含ませることにより、制御信号にしたがって、画像信号を一組の画像プレーンに分離する。
【0005】
本発明は、画像信号を一組の画像プレーンに分離する方法及びシステムを提供する。画像信号は、デジタル走査されたドキュメントを表す。画像プレーンは、デジタル走査されたドキュメントの混合ラスタコンテンツ(MRC)表現に適当である。
【図面の簡単な説明】
【0006】
【図1】ドキュメントについてのMRC構造を示す図である。
【図2】セグメントモジュールのブロック図である。
【図3】走査セグメントモジュールのブロック図である。
【図4】依存最小最大モジュールのブロック図である。
【図5】依存最小最大モジュールの作動を示す図である。
【図6】ダイナミックしきい値モジュールのブロック図である。
【図7】バイナリ・スケール・モジュールのブロック図である。
【図8】バイナリ・スケール・モジュールの作動を示す図である。
【図9】パックされたセレクタのフォーマットを示す図である。
【図10】マークエッジモジュールのブロック図である。
【図11】マークエッジモジュールの作動を示す図である。
【図12】バックグラウンド及びフォアグラウンドを定義する決定範囲を示す図である。
【図13】PDLのMRCセグメント化モジュールのブロック図である。
【図14】PDLセグメント化モジュールのクラスを示す表である。
【図15】FG/BGクリーンアップモジュールのブロック図である。
【図16】フォアグラウンドのエローションを示すブロック図である。
【発明を実施するための形態】
【0007】
図1は一般的なMRC表現を示す。この表現は、4つの独立したプレーン、すなわち、フォアグラウンド(FG)、バックグラウンド(BG)、セレクタ(SEL)、及びレンダリングヒント(HINTS)を含む。最も一般的な場合においては、より高レベルで、多数のフォアグラウンド及びセレクタの対があり得る。しかしながら、多くの適用例においては、この表現は、3つ又は4つのプレーンに限定される。バックグラウンドプレーンは、典型的には、ピクチャ及び/又は滑らかに変化する背景カラーのような連続階調情報を格納するために用いられる。セレクタプレーンは、通常は、他のエッジ情報(例えば線画図)と併せてテキスト画像(バイナリ)を保持する。フォアグラウンドプレーンは、通常は、対応するテキスト及び/又は線画のカラーを保持する。しかしながら、MRC表現は、プレーン、及びそれに関連する圧縮方法のみを指定する。それは、他の方法によりプレーンの各々のコンテンツを制限したり実行したりはしない。プレーンの各々のコンテンツは、MRC表現の実行により適切に定義することができる。
【0008】
MRC構造はさらに、ドキュメントのコンテンツについての付加的な情報を伝達するために用いられる4番目のプレーン、すなわちレンダリングヒントプレーンを考慮する。例えば、レンダリングヒントプレーンは、ページ上の種々の対象に最適なカラー整合方法を識別するICC(国際カラーコンソーシアム)のカラーヒントを実行することができる。
【0009】
フォアグラウンド及びバックグラウンドプレーンは、2つのフルカラー(L、a、b)又はYCCプレーンと定義される。セレクタプレーンは、バイナリ(1ビットの深さ)プレーンと定義される。1つの例示的なMRC表現は、フォアグラウンド及びバックグラウンドがJPEG圧縮されるように、しかもセレクタプレーンがITU−G4圧縮(標準のグループ4のファクシミリ圧縮)されるように指定する。レンダリングヒントプレーンは任意であると考えられるが、それが用いられる場合には、Lempel−Ziv−Welch方式と同様の圧縮方式をその圧縮に用いることができる。一般に、フォアグラウンド、バックグラウンド、セレクタ、及びレンダリングヒントプレーンは全て異なる解像度であってよく、それらはオリジナルのソース入力解像度を維持する必要はない。
【0010】
「セグメント化された」MRC画像を、その構成要素(例えばプレーン)から戻すように組み立てる方法は、フォアグラウンドカラーを、セレクタプレーンの「マスク」を通してバックグラウンドプレーンの上に「注ぎ」、これにより、これらの位置において、バックグラウンドプレーンの前のコンテンツに上書きするようにすることによるものである。換言すると、この組み立ては、セレクタプレーンのバイナリ制御信号に基づいて、ピクセル毎に、フォアグラウンド情報及びバックグラウンド情報の間で多重化することにより達成される。例えば、セレクタの値が1である場合には、フォアグラウンドのコンテンツが用いられ、そうでない場合(すなわち、セレクタの値=0の場合)には、バックグラウンドのコンテンツが用いられる。そのマルチプレクシング操作は、全ての出力ピクセルが定義されるまで、ピクセル毎に繰り返される。
【0011】
ドキュメントのMRC表現の主な利点は、大きなデジタルカラードキュメントを格納し、送信し、及び操作するための効果的な方法を提供することである。この方法は、コントラストの高いエッジがある場合には、小さなカラー変化を識別する能力が大幅に低減される、という人間の視覚システムの特性を利用するものである。エッジの情報は、通常、滑らかに変化するカラー情報から分けられ、セレクタプレーンにおいて(多分、ソースピクセル当たり1セレクタサンプルより高い解像度で)コード化される。慎重な分離に続き、種々のプレーンを良好な圧縮及び高い品質をもつ標準的な圧縮方式(JPEG及びG4のような)を用いて独立して圧縮することができる。
【0012】
セグメントモジュールは、セグメント化されるべきフルカラーの入力画像を取り込み、3つのMRCプレーン、すなわちフォアグラウンドプレーンFG、バックグラウンドプレーンBG、及びセレクタプレーンSelについて3つの別々の出力、並びに幾つかの付加的な信号を生成する。セグメントモジュールのブロック図は図2に示される。セグメントモジュールは、セグメント化ステージ24の後に、MRCスケール及びタイルタグ生成ステージ44が続く2つのステージで構成される。セグメント化ステージ24は、2つの相互に排他的なモード(走査セグメント化24又はPDLセグメント化26)の1つにより作動することができる。
【0013】
走査セグメント化モジュール24に対する一次入力はSrc20である。これは更に、本出願人の係属中の米国特許出願D/A3011に詳述される8ビットのスクリーン・マグニチュード推定信号SCM22を利用する。走査セグメント化モジュール24は、フルカラー(生すなわち未処理)のフォアグラウンドプレーン出力Fgr30及びバックグラウンドプレーン出力Bgr28、及びモジュール24によりエクスポートされた(モジュール24によりスーパーサンプルされた可能性がある)Sel出力32を出力する。
【0014】
PDLモード40において、PDLセグメント化モジュール26はSCM22を用いないが、代わりに、ヒント情報をPDLインタープリタからキャプチャする信号Rht34を用いることができ、CEFヒントプレーンHnt38にコード化される。PDLセグメント化モジュール26からの出力は、フルカラー(生すなわち未処理)のフォアグラウンドプレーンFgr30及びバックグラウンドプレーンBgr28、バイナリのセレクタプレーンSel32、及びヒントがある場合にはヒントプレーンHnt38を含む。上に示されるように、ヒントプレーンは1ビット又は8ビット深さとすることができる。
【0015】
走査モード42及びPDLモード40についてのSrc画像は、典型的には、異なって処理されたものである。走査セグメントモジュール24は、デ・スクリーンされている入力に依存する。このことは、PDLソースから直接生成されるクリーンでノイズのない画像については必要とされない。
【0016】
走査処理において、ソース入力画像Src20のクロマ成分は、高速走査方向(x:XCSS)において、係数2によりサブサンプルされると仮定される。セグメンタにより生成された如何なるカラー画像もXCSSを用いない。ソース画像のクロマサンプルがアクセスされた場合には、如何なる「調整」フィルタ作用も必要とされない。すなわち、4つのサンプルXCSS象限、L0A0L1B1についてであり、ピクセル0は、L0A0B1であり、ピクセル1は、L1A0B1、である。
【0017】
セレクタプレーンSelの出力はバイナリ(1ビット深さ)であり、パックされたセレクタプレーンSpkは、2×2のバイナリの隣接するセレクタピクセル(4ビット)を互いにパックする。
【0018】
PDL処理においては、ソース入力Src20は、フルカラー画像であると仮定され、ここでクロマチャネルは典型的にはサブサンプルされず、したがって、輝度チャネルと同じ解像度である。
【0019】
一般に、エクスポートされたフォアグラウンド、バックグラウンド、及びセレクタプレーンはすべて、入力画像に対して異なる解像度であってよい。例えば、フォアグラウンド及びバックグラウンドプレーンは、典型的には、ダウンサンプルされ、セレクタプレーンは元の入力解像度からアップサンプルされることがある。アップ又はダウンサンプリングの量は、ソフトウェア制御の下でプログラム可能である。
【0020】
MRCスケール及びタイルタグ生成モジュール44は、最初(生:未処理)のバックグラウンドBgr28、フォアグラウンドFgr30、セレクタSel32、及び存在する場合には(PDLモードのみ)、任意に、ヒントHnt38を読み込む。これは、「ホール」すなわち生(未処理)の画像において前もって指定されていないピクセルをサブサンプルし塗ることにより、最終カラーMRC層、すなわちバックグラウンドBgd46及びフォアグラウンドFgdを生成する。さらに、MRCスケール及びタイルタグ生成モジュール44は、バックグラウンドTtb50、フォアグラウンドTtf52、セレクタTts53、及び存在する場合には(PDLモードのみ)、任意にレンダリングヒントTth54についての4つの関連するタイルタグ信号を生成する。タイルタグは、タイル(又はストリップ)当たり1バイナリビットであり、現在のタイル全体を省くことができるかどうかを示す。このことは更に、全体のファイルの大きさを減らす。欠けているタイルは、各々のプレーンについて自動的に既定のデフォルトカラーに塗られる。
【0021】
走査セグメント化モジュール24は、走査されたドキュメントについて、3つのプレーンにMRCセグメント化を行う役割のものである。走査セグメント化モジュール24に対する入力は、入力カラー信号Src20及び8ビットのスクリーン・マグニチュード推定信号SCM22を含む。走査セグメント化モジュール24は、フルカラー(生:未処理)のフォアグラウンドプレーンFgr28及びバックグラウンドプレーンBgr30、及びセレクタSel32プレーンを出力する。
【0022】
走査セグメント化モジュール24のブロック図は図3に示される。以下は、走査セグメント化モジュール24を構成する種々のモジュールについての簡単な説明である。カラー入力信号Src20は、関心のある現在のピクセル上に中心が置かれた7×7ウィンドウにおいて、動的(ダイナミック)しきい値処理のために、最小Min及び最大Maxカラー値を探索する依存最小最大モジュール60に転送される。
【0023】
最小Min61及び最大Max63値は、ダイナミックしきい値モジュール62及び走査MRCモジュール64に転送される。ダイナミックしきい値モジュール62はさらに、入力カラー画像Src20及び8ビットのスクリーン・マグニチュード推定信号SCM22を用いる。ダイナミックしきい値モジュール62は、モノクロの8ビット信号Grr55を出力し、そのバイアスされたゼロ交差は、セレクタプレーンにおけるエッジの位置を表す。また、ダイナミックしきい値モジュール62はさらに、セグメント化が適用される場合には、ピクセル毎に走査MRC分離モジュール64に通信するように用いられ、その場合には、どれだけの付加的な増強が適用されるかを通信する8ビットのセグメント増強制御Enh59を生成する。
【0024】
ブロックスムージング(平滑化)ユニット56の目的は、弱い(「偽」とも言われる)エッジを強いエッジから離れるように移動させて、フォアグラウンド及びバックグラウンドのJPEG最小コード化ユニット(MCU)ブロック内でコントラストの高い遷移を阻止するようにすることである。近くに如何なる強いエッジもない場合には、弱いエッジはJPEGブロックから近くのブロックの間の境界に押し出される。この方法は、JPEGブロック内での不必要な急激な遷移を排除し、このようにして、圧縮及び質全体が増加されることになる。ブロックスムージングユニット56からの出力は、入ってくる信号Grr55の平滑化された(フィルタ処理された)形態を表す8ビットの平滑化されたGrs57信号である。
【0025】
フォアグラウンドエローション(erosion)ユニット200は、線形YCCセグメント化を用いて、薄い(しかし壊れてはいない)テキストの要求事項に対処するように用いられる。一定の値がグレイセレクタから引かれ、これによりフォアグラウンドが薄くなる/エローションされる。このことは、近くの試験が、以下にさらに完全に詳述されるように、薄くすることが破線をもたらさないことを実証する場合にのみ行われる。
【0026】
バイナリスケールユニット66は、ブロックスムージング56の出力からもたされた平滑化されたグレイセレクタ信号Grs57をスーパーサンプルする能力を与える。通常の1:1モードにおいては、Grs57信号はしきい値にされて、バイナリのセレクタプレーン出力Sel32が生成されるようになる。しかしながら、高品質のテキスト及び線画の再現においては、セレクタプレーンを、入力解像度の2倍でスーパーサンプルすることがある(例えば、600dpiの入力について1200dpiで)。セレクタ信号のスーパーサンプル処理は、しきい値化の前にサンプル処理周波数を2倍にすることにより行われる。その結果もたらされるより高い解像度のセレクタピクセルは、隣接する4つが一度にパックされて、パックされたセレクタ信号Spk122にされる。
【0027】
マークエッジ処理モジュール58は、パックされた高解像度のセレクタ出力Spk122を取り込み、関心のある現在の(低解像度)ピクセル上に中心を置く5×5(高解像度)ウィンドウにおけるオン及びオフのピクセル数をカウントする。マークエッジ処理モジュール58からの出力は2ビットの信号See142である。See信号142は、5×5ウィンドウの内側のすべての入力ピクセルがオフである場合には0に設定される(3×3の一定のバックグラウンド区域に対応する)。同様に、See信号142は、ウィンドウの内側のすべての入力ピクセルがオンである場合には3に設定される(3×3の一定のフォアグラウンド区域に対応する)。更に、See出力は、5×5ウィンドウが、ほとんどバックグラウンドであるか又はほとんどフォアグラウンドのそれぞれである場合には、1又は2に設定される。
【0028】
最後に、走査MRC分離モジュール64は、セグメント化されるべきフルカラーのソース信号Src20、並びに、依存(dependent)最小最大モジュール60からのカラーの最小及び最大(Min、Max)を取り込む。更に、MRC分離モジュール24はマークエッジ処理モジュール58からのSee信号142、及びダイナミックしきい値モジュール62からセグメント化及び増強信号Enh59を用いる。MRC分離モジュール64は、実際は、2つのフルカラーの出力Fgr24及びBgr30を、フォアグラウンド及びバックグラウンドプレーンのそれぞれについての粗い推定値として生成する。ここで、走査セグメント化モジュールの種々のモジュールが以下に述べられる。
【0029】
依存最小最大モジュールのブロック図が図4に示される。依存最小最大モジュール60は、Src信号20を入力し、関心のあるピクセル80上に中心を置く7×7ウィンドウを調査して、最大L及び最小Lピクセルを見出し、ここでLは輝度チャネルである。最大出力68は最大L72を有するピクセルである。最小出力70は最小L74を有するピクセルである。最小出力70は最小L74を有するピクセルである。その結果もたらされるクロマ値はしたがって、極値が見出された位置に依存する。
【0030】
依存最小最大モジュール60の作動が図5に示される。この作動は2つの段階で進められる。第1の段階において、依存最小最大モジュール60は、輝度成分Lの最も大きな68及び最も小さな70サンプルをウィンドウにわたって探索する。最小輝度値74及び最大輝度値72の位置が見出されると、それらは、これらの位置におけるクロマ成分(A、B)と併せて出力される。Src信号20がXサブサンプルされたクロマ成分と共にこのモジュールに到達した場合でも、これが、Xクロマサブサンプル処理が中断される点である。すなわち、最大及び最小カラー信号は、Xサブサンプルされたクロミナンスをもたない。
【0031】
このフィルタ作用工程は分離可能である。例えば、個々の列の最小/最大を最初に計算して、次に、最小Lを有する列最小ピクセルを見出すことにより最終の最小74を計算することができる。このことは、Src画像にわたって実行されるウィンドウとして必要とされる段階的な作業が、最小及び最大出力の両方について、1つの高さ7の列と、1つの幅7の行とを計算することになる。
【0032】
図6を参照すると、ダイナミックしきい値モジュール62は、適応しきい値化を入ってくるカラーソース信号Src20に適用して、ゼロ交差がセレクタプレーンの遷移を表す生の符号付8ビットのグレイセレクタ信号Grr出力114を生成する。グレイセレクタ値≧0は、セレクタ値が1であるピクセルをマークし、フォアグラウンドに置かれる。グレイセレクタ値<0は、バックグラウンドに置かれるピクセルをマークする。図6に示されるように、ダイナミックしきい値モジュール60は、依存最小最大モジュール60からの一対の依存最小/最大(Min、Max)90及び92のそれぞれ、並びにスクリーン推定モジュール(SEM)からの8ビットのスクリーン・マグニチュード推定信号Scm22を利用する。ダイナミックしきい値モジュール62はさらに、8ビットの信号Enh118を生成する。Enh信号118は、走査MRC分離モジュール64に通信されて、ピクセルがバックグラウンド及び/又はフォアグラウンドプレーンに置かれたときに、どれだけの増強が適用されるかを判断するようにする。
【0033】
ダイナミックしきい値モジュール62は、ダイナミックしきい値、静的しきい値、及びフォアグラウンドに対する力という3つのセグメント化モジュールで作動する。静的しきい値化は、画像が平滑である(変化しない)場合に適用される。このモードにおいては、DefautThr76より大きいか又は等しい輝度値をもったピクセルがバックグラウンドに割り当てられ(Grr==127=−1)、DefaultThrより少ない輝度値をもったピクセルがフォアグラウンドに割り当てられる(Gr==129=+1)。127及び129(+−1)は、Grr114についての小さなマグニチュード値を表す。これらは、近くにある強い決定の位置及び極性を考慮することによって、後続するブロックスムージングモジュール56により修正することができる弱い決定を表す。前記の強い決定は、符号付Grrマグニチュード>1(符号化された値<127、又は>129)により表される。強い決定はダイナミックしきい値モードにおいてのみ生成され、強い決定だけが非ゼロEnhコードを有することができる。静的しきい値化及びフォアグラウンドに対する力のモードの両方は、弱い決定しか生成しない。
【0034】
幾つかの構成においては、フォアグラウンドに対する力のモードは、ハーフトーン画像についてイネーブルにされ、このモードは、HTFGScmThr84を256より少ない或る値に設定することによりイネーブルにされる。Scm22がHTFGScmThr84に等しいか又はこれより大きい場合にはいつでも、Grr114は129(=±1)という最小フォアグラウンド値にさせられ、Enh118はゼロに設定される。
【0035】
フォアグラウンドに対する力が優先されない場合には、セグメント化は、弱い静的しきい値の決定の生成と強いダイナミックしきい値の決定の生成との間でアクティブに切り換わる。信号EnhEnは、強い決定を示し、EhFVsScm関数の出力をEnhにゲート制御する。EhFVsScm関数は、スクリーン・マグニチュード推定Scmをドメイン値として用いる。真である場合、EnhEnはさらに、符号付き8ビットの信号GSelをGrrの符号化のためのソースとして選択する。以下にさらに詳細に述べられるGSelは、ドット積モジュールの一次出力である。図6に示されるように、フォアグラウンドに対する力(HTFGEn)が優先されない場合には、ドット積ユニットの他の2つの出力、Ccc及びCc0(以下に述べられる)が試験され、その結果が互いにORedされて、EnhEnが計算されるようになる。
【0036】
Ccc≧EhClrConThrVsMin関数の出力である場合には、EnhEnがイネーブルにされる。或いは、Cc0≧EhLumConThrVsMax関数及びEhLumConThrVsScm関数の最大である場合には、EnhEnがイネーブルにされる。EhClrConThrVsMin関数及びEhLumConThrVsMax関数についての入力信号が、Min及びMax信号それぞれの輝度成分である場合には、EhLumConThrVsScm関数についての入力信号はScmである。
【0037】
ドット積ユニット82(図6の左上から2つ目のブロック)は、フルカラーの入力信号Src20、並びに、依存最小最大ユニットからのフルカラーの最小92及び最大90(Min、Max)を用いる。これらの値は、輝度の極値、及び関心のある現在のピクセル上に中心が置かれた(7×7)ウィンドウ内に見出される対応するクロマ値を表す。このブロックの作動は、主に、2つのベクトルのドット積乗算を行うことである。
[数1]
GSel=最小(127、最大(−127(<X、Y>>/256)))
ここで、<X、Y>は2つのベクトルX及びYの間のドット積演算である
[数2]
<X、Y>=(XL、XA、XB)(YL、YA、YB)1=XLYL+XAYA+XBYB
ここで、Xは、下記数式3の通りであり、
【数3】
及びYは下記数式4の通りである。
【数4】
【0038】
さらに改善するための実施形態としては、LMN==0である場合に、数式4における輝度成分値はLMX/2からLMX/4に変化する。これは、前の鮮明化ステージにより生成されるのが普通である輝度のアンダーシュートを調整する一次の試みである。これは、薄いテキスト特徴がセグメント化工程により拡大されるのを阻止することを助ける。すなわち、以下の数式5に表される。
【数5】
【0039】
数式4又は5における(L、A、B)値は、入ってくる信号Src20の対応するカラー成分である。数式3におけるXベクトルは、(Min、Max)の最大及び最小の間のベクトル差である。数式4におけるYベクトルは、入ってくる信号Src20から最小及び最大平均を引いたものである。これら2つのベクトルのドット積を取ることにより、出力は、Xベクトルに対して垂直であり、それを途中まで沿って交差するプレーンからの相対的な距離と比例するようになる。{XA、XB、YL、YA、YB}並びに最終出力GSelは負になることがある。数式1におけるドット積出力の絶対マグニチュードは、ゼロ交差を識別することほどは重要ではないため、この結果は単純に256により割られて(8だけ右にシフトする)、8ビット範囲に嵌まるように換算し戻される。(ドット積の正規化は、ベクトルのマグニチュードにより割ることを必要とする)。しかしながら、出力は、多くの場合、依然として8ビット範囲を桁あふれすることがあるため(おおよそ3又は最大1.5ビットの係数だけ)、これがさらに大きくなりすぎる場合には、出力マグニチュードを127に制限する論理を加えることが必要になる。ドット積82出力は、図6においては、符号付8ビット信号GSel又はグレイセレクタ出力として示される。ドット積乗数の大きさを8ビットに制限するために、X及びYの両方の成分を1/2によりあらかじめ換算し、最終除数を64に変更することができる。
【0040】
ドット積ユニット82はさらに、輝度及びクロマ・コントラスト・マグニチュードを測定する2つの8ビットの信号を出力する。輝度部分Cc0106はベクトルXの第1成分により表される。
[数6]
Cc0=XL=L最大−L最小
【0041】
全体のクロマ・コントラスト・マグニチュードCcc104についてのスカラー尺度はさらに、ベクトルXの2つのクロマ成分の絶対値を互いに加えることにより生成される。
【数7】
輝度成分における絶対値は、Lが正の範囲[0...255]に制限されるために無視することができ、最大は常に最小より大きい。
【0042】
図6の左部分における決定論理関数91は、デフォルトとアクティブなセグメント化モードとの間での切り換えを管理する。各々の関数は、区分的線形関数を表す小さな組の(x、y)点の対により表される。最初のx値より小さいx値については、出力は最初のy値である。x値>最後のx値については、出力は最後のy値である。
【0043】
上記の論理の重要性は、アクティブなセグメント化モードの下で作動するためには、ドット積輝度コントラスト又はドット積クロマコントラストのいずれかが十分に大きくなくてはならないことである。クロマコントラストは、(7×7)ウィンドウにおいて見出される最小輝度の関数より大きくなくてはならない。同様に、輝度コントラストは、同じウィンドウ内に見出される最大輝度の関数より大きくなくてはならず、またさらに、スクリーン・マグニチュードScmの関数より大きくなくてはならない。エクスポート前に、HTFGEn及びENhEnによりゲート制御された符号付きグレイセレクタの出力は、128を加えることにより、符号なし8ビット信号Grrとして符号化される。
【0044】
ブロックスムージングユニット56の目的は、弱い(別名「偽」)エッジをできるだけ強いエッジから遠くに離すように移動させることである。このことは、JPEGプレーンにおけるパルス幅を増加させ(周波数を減らし)、これにより圧縮された大きさ及び圧縮ノイズが減ることになる。これを遮断する如何なる強いエッジもない場合には、弱いエッジはブロックから完全に掃引して出される。弱いエッジが2つの強いエッジの間でトラップされた場合には、2つの間の途中に再配置されることになる。この方法はさらに、3つのプレーンすべてにおける圧縮を改善する多数の弱いエッジの遷移を合体させる/取り除く。
【0045】
ブロックスムージングユニット56に対する入力は、しきい値化工程からの8ビットの生のグレイセレクタ出力Gr.である(アクティブ又はデフォルトのセグメント化のいずれかの下での)。ブロックスムージングユニット56からの出力は、入力信号Grの平滑化された(フィルタされた)形態を表す8ビットの平滑化されたグラス信号である。
【0046】
ブロックスムージングユニット56の一番最初の段階は、Gr.’を符号付の数にするために、128のバイアスを引くことである(Ms.をトグルする)。次に、(Gr.−128)の範囲が調査される。これが−1又は1と等しい場合には、弱いエッジBG又はFGのそれぞれであると考えられる。−1又は1より大きいすべてのものは、強いBG又はFGエッジのいずれかであると考えられる。
【0047】
ブロックスムージング工程は、Bgd及びFgdプレーンについてのJPEG最小符号化ユニット(MCU)の大きさを表す正方形の一時的な格納区域(Tm[Sm][sz]において4つのパスを含む。例えば、Bgd及びFgdがJPEC圧縮のために係数4によりサブサンプルされる場合には、さらにクロミナンス・成分が付加的に係数2によりサブサンプルされる場合には、MCUは16×16となる。このブロックスムージングアルゴリズムに必要なTmpブロックは、Tmp[64][64]の寸法にされる。実施における制約はこのブロックの大きさをより小さくすることを要求し、この場合は32×32が適するであろう。現在のパイプライン構成は、1/4の縮小を適用するときにはクロマのサブサンプリングが用いられないために、32×32ブロックしか必要としない。
【0048】
第1のパスにおいて(Grr−128)ピクセルは、各々の行が独立したTmpの中に左から右へ処理される。強いエッジがある場合にはいつでも、対応するTmpの位置が+/−K(あらかじめ定義された定数==2*Tmp−1の寸法)に初期化される。符号はGrr−128と同じである。或いは、弱いエッジについては、Tmpはマグニチュードが1だけ減らされた前のTmp値で書かれる。第1のパスが左から右に移動しているため、前のTmp値はちょうど左側にあるTmp値である。行における第1の値の前の値は、0になるように定義される。マグニチュードを1だけ減らすことは、+4を+3に、−2をー1に、及び0を0に変換する。さらに、このパスにおいては、すべての弱い値、+1、−1の蓄積(WeakCnt)が計算される(Grrが弱いところだけ)。
【0049】
第2のパスにおいては、Tmpの各々の行は、右から左に旋回し、今回は、マグニチュードが減った前の値が現在の値と比較される。最も大きなマグニチュードをもった値は、現在の位置に置かれる。再び、右側にある第1の値についての前の値は0と仮定される。パス1及び2の行は独立しているため、パス2は、パス1と交互配置することができる。パス3及び4は、方向が上から下及び下から上であることを除いては、パス2と同じである。
【0050】
4番目のパスの後、最終的な平滑化された結果がTmpを調査することにより生成される。Tmp値が最大マグニチュード(+K又は−K)を有する場合には、用いられる値はGrrからの元の強いエッジの値である。或いは、弱いフォアグラウンド又はバックグラウンドについてのコード(128+1又は128−1)が、Tmp値が正であるか又は負であるかによって用いられる。
【0051】
図7を参照すると、バイナリ・スケール・モジュール66は、8ビットのグレイスケールセレクタの入力Grs120を、バイナリのセレクタプレーンの出力Sel32に変換する。高品質テキスト及び線画においては、バイナリのセレクタ出力Sel32はSrc20より高い解像度で維持することができる。例えば、現在の設計は、各々の方向において2倍の解像度を用いることを可能にするため(SEG_Sel_ScaleUp)、標準的な600dpiのスキャナについては、バイナリのSel信号の出力解像度は1200dpiになることがある。セレクタ論理モジュールは、グレイセレクタGrs入力をより高い解像度に補間し、その後信号をしきい値にしてバイナリの出力Sel32を生成するようにする役割のものである。冗長なSel(Spk)のパックされたコピーがさらにSrc20解像度で生成される。
【0052】
バイナリ・スケール・モジュール66のブロック図が図8に示される。8ビットのグレイセレクタ入力信号Grs120が、最初に、2Dの双一次補間124を用いて、各々の方向で、係数2によりグレイドメインにおいて補間される。双一次補間からの出力は、補間された(スーパーサンプルされた)セレクタを用いるか又はSrcと同じ解像度である通常のバイナリのものを用いるかを選択するために乗算器126を通過させられる。最後に、グレイ出力がしきい値ユニット128を用いてバイナリに変換されて、セレクタ信号Sel32が生成されるようになる。
【0053】
2xの補間係数については、バイナリのSel出力データ転送速度は、各々の方向において、ソース信号Srcの2倍だけ速いことに注目されたい。このことは、8ビットの入力Grs毎に、バイナリ・スケール・モジュールは4つのバイナリ出力Selサンプルを生成することを意味する。Sel出力の第2のパックされた形態(Spk)122は、図9に示されるように、4つのバイナリのセレクタビットが互いパックされるように生成される。セレクタ出力140は、より高い出力解像度を示すためにベクトル表記法を用いることに注目することが重要である。出力は依然としてバイナリであると考えられるが(すなわち、値が0又は1のいずれかのみであると仮定する)、各々の入ってくる信号Grs入力は、出力において4つのセレクタビットを生成する(2x補間係数を仮定する)。4つのバイナリピクセルは、上に示されるように、8ビットのパックされた信号Spk122にパックされる。補間係数が1だけである場合には、すべての4つのビットは同じである。
【0054】
図10を参照すると、マークエッジモジュール58は、パックされた高解像度のセレクタの形態Spk122を取り、関心のある現在のピクセル80上に中心を置く5×5の[高解像度]ウィンドウ155におけるオン及びオフのピクセル数をカウントする。マークエッジモジュール58からの出力は、4値信号See142である。ウィンドウの内側のすべての入力ピクセルが0である場合には(一定のバックグラウンド区域に対応して)、See信号142は0に設定される。同様に、ウィンドウの内側のすべての入力ピクセルがオンである場合には(一定のフォアグラウンド区域に対応して)、See信号142は3に設定される。さらに、ウィンドウのコンテンツがほとんど後面グランドであるか又はほとんどフォアグランドである場合には、See出力142は1又は2のいずれかに設定される。Seeは4つの値のみであり、2ビットで符号化することができる。
【0055】
マークエッジモジュール58の作動が図11に示される。ユニットの作動は以下の通りである。エッジ処理モジュール58への入力は、Srcと同じ解像度であるパックされたバイナリのセレクタ信号Spkである。エッジ処理モジュール58は、関心のある現在のピクセル上に中心が置かれた3×3ピクセルのコンテクストウィンドウを維持する(元の入力解像度で)。論理的には、パックされたセレクタ(Spk)セレクタは、図11に示されるように、3×3ピクセルウィンドウにおける各々のSrc解像度ピクセルについて4つのバイナリのセレクタピクセルを含む。より太いラインは、高解像度ドメインにおける6×6ピクセルのコンテクストウィンドウに対応する元のSrc解像度を表す。しかしながら、5×5高解像度ピクセル区域の内側のコンテンツだけが用いられ、図11の影が付けられた区域はカウントにおいては除外される。
【0056】
5×5高解像度のコンテクストは、関心のある現在のピクセルに近接した潜在的なエッジを「検知する」ために設計されたものである。ウィンドウパターンは、現在のピクセルの上から又は左に1つだけ下に及び右に延びる2つの[高解像度]ピクセルの完全なコンテクストを用いる。独自のウィンドウパターンは、多数の(低解像度)ピクセルに関連した如何なるエッジも近くのピクセルと重なり合わないように、すなわち、如何なる潜在的なエッジの位置も1回以上検知(すなわち共有)できないようにされる。関心のある現在のウィンドウ内にある4×4=16の可能性のあるエッジの位置がさらに図11に示される。
【0057】
マークエッジモジュール58は5×5高解像度区域において現在オンにされた高解像度ピクセルの数をカウントする。この数は、0から25までとすることができる。これは、以下のようにマークエッジモジュール58から出力信号Seeにマップされる。
See=0 5×5カウントが0である(如何なるフォアグラウンドピクセルも見出されなかった)場合
See=1 カウントが[1...12]の範囲にある(ほとんどがバックグラウンドピクセル)の場合
See=2 カウントが[13...24]の範囲にある(ほとんどがフォアグラウンドピクセル)の場合
See=3 カウントが25である(フォアグラウンドピクセルだけが見出された)場合
【0058】
再び図3を参照すると、出力信号Seeは、走査MRC分離モジュール64に転送される。See信号は元の入力解像度(典型的に600dpi)である。走査MRC分離モジュール64は、入ってくるソース信号Srcをフォアグラウンド及びバックグラウンドプレーンに分割する役割のものである。このモジュールは、依存最小最大モジュールからのフルカラーの最小及び最大(Min、Max)出力並びにマークエッジモジュールからのマークされたセレクタエッジカウント信号Seeを用いる。さらに、走査MRC分離モジュールは、ダイナミックしきい値モジュールからのセグメント増強制御信号Enhを介して、エッジの上昇を増強する能力を有する。
【0059】
走査MRC分離モジュール64は、フォアグラウンド出力Fgr30及びバックグラウンド出力Bgr28のそれぞれの2つのフルカラーの生:未処理の推定値を出力する。追跡モジュール、MRCスケール、及びタイルタグ生成モジュールは、次に、さらに最終のフォアグラウンドFgd及びバックグラウンドBgd出力のそれぞれを生成するようにFgr及びBfrを処理する。
【0060】
走査MRC分離モジュール64は、セグメント化されるべきフルカラーのソース信号Srcを取り込み、Fgr及びBgr出力の1つ又は時には両方についての値を生成する。走査MRC分離モジュールは、フォアグラウンドFgr又はバックグラウンドBgr出力のいずれかにおける空の(求められていない)ピクセルを示すように、ゼロ輝度及びクロマ(L=a=b=0)の特別なコードを備える。ページにわたりこの工程が継続すると、幾つかのフォアグラウンド及びバックグラウンドピクセルが求められないまま残る。MRCスケール及びタイルタグ生成モジュールは、次に、これらの求められていないピクセルについての値を慎重に塗られて、圧縮を低く維持し、付加的なJPEGのリンギングによるアーチファクトを阻止するようにする。
【0061】
走査MRC分離モジュール64は、マークエッジモジュールからのセレクタエッジカウント信号Seeの値を用いて、増強されたSrcピクセルをバックグラウンド、フォアグラウンド、又は両方のいずれにコピーするかを判断するようにする。決定範囲は図12に示される。基本的には、増強されたSrcピクセルは、
【数8】
である場合にはフォアグラウンドにコピーされ、
【数9】
である場合にはバックグラウンドにコピーされる。したがって、See==0である場合にはフォアグラウンドは未定義としてマークされ、See==3である場合にはバックグラウンドが未定義としてマークされる。
【0062】
最初に、増強係数Enhf1は、ちょうど1だけ増分された信号Enhであるため、最大値は255ではなく256である。
[数12]
Enhf=Enh
[数13]
Enhf1=Enhf+1
【0063】
次に、以下のフォアグラウンド及びバックグラウンドの2つのフルカラーの増強された形態を定義する(この目的は以下に述べられる)。
[数14]
enhFG=LIM[Src+(Min−Src)(Enhf1/256)]
[数15]
enhBG=LIM[Src+(Max−Src)(Enhf1/256)]
実施メモ。最終のBgd及びFgdの出力がXCss(Xクロマによりサブサンプルされ)であるか又はスケールダウンされた場合には、enhFG及びenhBGはXCSSとなることがある。
【0064】
数式14及び15において、Srcはフルカラーの入力信号であり、Min及びMaxは依存最小最大モジュールからの依存最小及び最大のカラー出力である。制限関数LIMは、成分の各々についての結果が8ビットの範囲[1...255]に制限されるようにするものであり、これにより未定義のピクセルをマークするように備えられた特別なゼロのコードが排除されるようになる。Src及びMin及びMaxはフルカラー(L、A、B)のベクトルであるため、作動は3D空間にある。
【0065】
フォアグラウンドが定義されている場合においては、すなわち、
See={1、2、又は3}
である場合には、出力Fgr値は、
[数16]
SEE={1、2、3}である場合、Fgr=enhFG
[数17]
SEE=0である場合、Fgr=0
であるように求められる。
【0066】
フォアグラウンドが用いられていない場合(すなわち、See=0)には、フォアグラウンド値は、その値を数式16にしたがって、特別なコードFgr=0に設定することにより(3つの成分すべてについて)、未定義であるとしてマークされる。メモ:この実施は、Enhfを9ビット表現に拡張し、その値は255ではなく256による正規化が可能になるように1だけ増分される(Enhf1)。
【0067】
数式14の厳密な検査は、Enhf1により表されるセグメント増強量によって、出力フォアグラウンドFgr値は、現在の入力信号値Srcと依存最小最大モジュールの最小Minとの間で補間される(3D空間において)ことを明らかにする。Enhf=0である場合には、如何なる増強も行われず、出力は入力信号Fgr=Srcに設定される。このことは、(7×7)ウィンドウにおいて十分なコントラスト活動がない限り、通常の例となる。Enhf1=256(最大の増強)である場合には、出力は、最小信号Fgr=Minに設定される。このことは、エッジのすぐ近くにあるピクセルの例を表し、ここでは、近くの最小値により与えられるように(0=黒)、フォアグラウンドをできるだけ暗く塗ることによりエッジを増強することが有利となる。しかしながら、一般に、セグメント増強Enhfは上記の2つの極値の間で変化することができ、出力フォアグラウンド値は、Src及びMin値の間で対応して重み付けされる。
【0068】
同様に、セグメント化においてバックグラウンドを用いる場合、
すなわちSee={0、1、2}である場合においては、出力Bgr値は、
[数18]
See={0、1、2}である場合、Bgr=enhBG
[数19]
See=3である場合、Bgr=0
により求められる。
【0069】
前のように、出力Bgr値は、数式15により与えられるように、セグメント増強量Enhf1に比例して、入力Src及びMax値の間で変化する。数式18は、最小Minの代わりに最大Maxを用いること及びSeeの範囲が異なることを除いては、数式16と同様である。Bgr出力についてMaxを用いることは、フォアグラウンドを用いた場合と同じように、暗くなるのではなく明るくなるようになる。
【0070】
さらに、数式19により示され、数式17と対応して、バックグラウンド又はフォアグラウンドのそれぞれが用いられない場合(すなわち、See=3)には、(see=0)のそれぞれ又はバックグラウンド値が、その値を特別なコードBgr=0に設定することにより(3つの成分すべてについて)、未定義であるとしてマークされる。
【0071】
MRC分離モジュールからの出力は、2つの部分的に塗られたフルカラーのプレーンFgr及びBgrである。セレクタプレーンのエッジから離れたところにおいては、それが明るいか又は暗いかによって、典型的には、フォアグラウンド又はバックグラウンドの出力の1つだけが、現在のピクセルの[増強された]カラーを含む。しかしながら、近くのエッジ情報は、フォアグラウンド及びバックグラウンドチャネルの両方に同時に支持されることがある。
【0072】
図2を参照すると、PDLセグメント化モジュール26は、MRCセグメント化を3つのPDLドキュメントにおけるプレーンに実行する役割のものである。PDLのMRCセグメント化モジュール26への入力は、入力カラー信号Src20及びPDL分解器により供給することができる如何なるレンダリングヒントRht34をも含むことができる。
【0073】
PDLのMRCセグメント化モジュール26は、フルカラーのフォアグラウンド及びバックグラウンドプレーンFgr28及びBgr30、バイナリのセレクタプレーンSel32を出力し、多分8ビットのヒントプレーンHntにおいて幾らかのPDLヒントを保存する。
【0074】
PDLのMRCセグメント化モジュール25のブロック図が図13に示される。左から始まり、PDLセグメンタは、入力カラー信号Src20及びPDLインタープリタからの8ビットのレンダリングヒントRhtを読み込む。PDLセグメンタ26は、走査処理により用いられたものと機能が同様である8ビットのグレイセレクタ信号Grrを生成する。さらに、PDLセグメンタは、幾らかのPDLヒントをMRCヒントHntとして出力する。
【0075】
PDLのMRCセグメント化モジュール25からのグレイセレクタ信号Grrは、ブロックスムージングユニット56を通して処理されて、バイナリスケールユニット66に転送される平滑化されたグレイセレクタ信号Grsが生成される。バイナリスケールユニット66は、バイナリのセレクタ信号Selを生成するようにGrs信号をしきい値にする。PDLデータの質はスーパーサンプル処理により改良されないため、バイナリスケールユニットにより生成されたセレクタは常にSrc解像度にある。ブロックスムージングユニット及びバイナリスケールユニットの作動はそれぞれ上述される。
【0076】
最後に、PDLのMRC分離モジュール25は、入ってくるソース信号Src20を、フォアグラウンド及びバックグラウンドプレーンFgr30及びBgr28のそれぞれに分割する役割のものである。この分離はバイナリのセレクタプレーンSel32に基づくものである。
【0077】
PDLセグメント化モジュール26は、入力カラー信号Src20を取り込み、8ビットのグレイセレクタ信号Grr66を生成する役割のものである。さらに、PDLセグメント化モジュール26は幾らかの8ビットのPDLインタープリタヒントRhtを、ヒントプレーン上の8ビットのPRCヒントとして保存する。
【0078】
PDLセグメント化モジュールの作動は、上述の走査処理とは異なる。走査セグメント化工程は依存最小/最大分析に基づくものであり、その後にダイナミックしきい値処理が続く。しかしながら、クリーンなPDLデータについては、セグメント化は、関心のある現在のピクセル上に中心が置かれた3×3ウィンドウにおけるピクセルのコンテンツの分類に基づくものである。この分類は、現在のピクセルがフォアグラウンドFgr又はバックグラウンドBgrプレーンのいずれと関連しているかを判断する一組の法則として優先される。
【0079】
入ってくるSrcピクセルの各々について、このピクセルの周りの3×3ウィンドウのコンテンツが分析され、図14の表に示される1つ又はそれ以上の後続するクラス158に分類される。3×3ウィンドウの試験は、図14において最も左側の列に示されるように優先順位が付けられている。したがって、例えば、PDLインタープリタにより画像ピクセルになるようにタグ付けされた中心ピクセルは、黒、白、又はテキストとしてタグ付けされた中心ピクセルのような如何なる他の組み合わせにも優先する。
【0080】
図14の表における第2の列は、Cコードシミュレーションにおけるクラス名をリスト表示する。第3の列は、クラスの意味についての簡単な説明及びそれがどのように試験されるのかを示す。最後に、最後の列は、クラスがどのようにフォアグラウンド又はバックグラウンドプレーンと関連付けられる(すなわち、セグメント化される)かを示す。3×3ウィンドウの試験についての1つの例外は、クラス6及び7の場合である。これらのクラスについての方法は、以下の通りである。
【0081】
1.第1に、中心ピクセルにNEARでなく、さらに該中心ピクセルからFARでもないあらゆる外側ピクセルがBADピクセルとして分類される。ここでNEAR及びFARの意味は、マンハッタン距離DMに基づくものである。
すなわち、
(DM<PDLEqualDistLim)である場合はNEAR
【数20】
ここで、PDLEqualDistLim及びPDLOtlDistThrは2つの構成のしきい値である。
2.遭遇する中心ピクセルにNEARでなく、さらに該中心ピクセルからFARである第1のBadではない外側ピクセルは、OTHERクラスについての基準となる。
3.次に遭遇する中心ピクセルにNEARではなく、さらに(該中心ピクセルからFARではないか、又は、上のOTHER基準ピクセルにNEARではない)ピクセルがBadピクセルとして分類される。
4.最後に、OTHERクラス6及び7は、遭遇するウィンドウ内のBadではないピクセルに依存する。クラス6(OthDark)又は7(OthLite)は基準のOTHERピクセルのカラー値に基づいて差別化される。
【0082】
PDL分離モジュールは、入ってくるソース信号Srcをフォアグラウンド及びバックグラウンドプレーンFgr及びBgrのそれぞれに分割する役割のものである。この分離は、バイナリのセレクタプレーンSelに基づくものである。分離工程は、用いられていないピクセルを示すように、特別に備えられたゼロのコード(L=a=b=0)をもったフォアグラウンド及びバックグラウンドプレーンを初期化することにより開始される。
【0083】
次に、入ってくるカラーSrc値が、「用いられていない」特別に備えられたコードとの混乱が阻止されるように、ゼロから離れるように移動される。
Val=Max(1、Src)
最大関数は、Valがそのプレーンのいずれにおいても決してゼロにはならないことを保証する。分離工程は、直接的に継続する。
(Sel=1)である場合には、Fgd=Val、或いはBgd=Val
【0084】
すなわち、各々の入ってくるカラーピクセルは、フォアグラウンド又はバックグラウンドのいずれかに置かれる。走査されたドキュメントの場合とは異なり、この情報は、両方のプレーンに置かれることはなく、エッジの近くにさえも置かれることはない。したがって、分離方式は、走査の場合に対して大幅に単純化されている。
【0085】
図15を参照すると、MRCスケール及びタイルタグ生成モジュールは、粗いフォアグラウンド及びバックグラウンドの推定値Fgr及びBgrに付加的な処理を適用して、最終のフォアグラウンド及びバックグラウンド出力Fgd及びBgdを生成するようにする。MRCスケール及びタイルタグ生成モジュールにより行われる処理は、最初に、未定義のピクセルは無視しながら、フォアグラウンド及びバックグラウンド値をサブサンプルするものである。次に、この結果を係数8によりサブサンプルして、ブロック平均を計算するようにする(やはり定義されていないピクセルは無視する)。第3の段階は、計算されたブロック平均を未定義のピクセルに挿入することである。この目的は、未定義のピクセルをブロック平均で塗られることにより、JPEG圧縮のリンギングによるアーチファクトを減らすことである。
【0086】
MRCスケール及びタイルタグ生成モジュールの内側の付加的な論理はさらに、一定の黒だけの又は白だけのタイルを検知しフラグを立てるように、フォアグラウン度及びバックグラウンドの出力値を監視する。同様の論理は、セレクタ及びヒントがゼロであるときに検知する。MRCスケール及びタイルタグ生成モジュールのブロック図が図17に示される。
【0087】
サブサンプル処理モジュールの4つのすべての例が同様の方法により作動する。N×N区域におけるすべてのピクセルの合計が計算されて、valid=notZeroであるピクセル数の別々のカウントが維持される。次に、この合計が有効なピクセルのカウントにより正規化されて、出力が生成されるようになる。サブサンプル処理の第1のステージは、典型的には、Fgd及びBgdのサブサンプル処理の程度全体を表す4×4の区域に渡る。サブサンプル処理の量は、パラメータ:Seg_Fdg_ScaleDn:SEG_Bgd_ScaleDn:SEG_Fgd_Dst_Css:及びSEG_Bgd_Dst_Cssにより特定される。
【0088】
Cssパラメータは、クロマサンプルが付加的に係数2によりサブサンプルされたかどうかを制御する。第2のステージは、必ず、サブサンプルされた解像度でJPEGブロックの大きさを表す8×8の区域にわたりサブサンプルする。サブサンプルされた出力の最終の正規化は、合計重量の値に依存する。しかしながら、可能性のある合計重量値について多数の選択肢をもった所定の乗算表を用いることにより、数式において割り算を避けるようにすることが依然として可能である。
【0089】
穴埋めブロックはブロック平均Fga及びBgaをFgx及びBgxに挿入して、すべての未定義のピクセルを置き換え、最終のフォアグラウンドFgd及びバックグラウンドBgd信号を生成するようにする。穴埋めブロックはさらに、CEFファイルがエクスポートされたときに、圧縮を最適化するように用いることができるタイル又はストリップ当たり1ビットの非常に低い帯域出力Tgb/Tgbを生成する。各々の穴埋めブロックは、タイルにおける各々のピクセルを監視して、すべてのピクセルが輝度及びクロミナンスサンプルについて設定された制限内にあるかどうかを試験するようにする。すべてのタイルのピクセルが試験に通った場合には、タイルタグのビットが設定される。各々のピクセルには、3つの試験が行われる。
LumRef−L <=TileLumErr{ここでLumRefはBgdについては255、Fgdについては0である}
abs(128−A) <=TileChrmErr
abs(128−B) <=TileChrmErr
Sel及びHntのタイルタグモジュールは、1つのタイルブロックにおいて作動している大きなNORゲートの均等物に過ぎない。これらは、タイルにおけるバイナリのピクセルすべてが0である場合には1を生成する。タイルの大きさはプログラム可能であるが、典型的な値は64×64から512×512ピクセルで変化する。
【0090】
再び図3を参照すると、フォアグラウンドエローションユニット200は、線形YCCセグメント化を用いて、薄い(しかし壊れていない)カンジの要求事項に対処するように用いられる。一定の値がグレイセレクタから引かれ、これによりフォアグラウンドが薄くなる/エローションされる。ピクセルがフォアグラウンドからバックグラウンドに変換される場合には、このことは、近くの試験が、薄くなることが破線をもたらさないことを実証した場合においてのみ行われる。図16を参照すると、図は、このモジュール200の作動を示している。フォアグラウンドエローションユニット200は、幾つかのテンプレートに適合することを試みる。適合が見出された場合には、調整が行われる。図16は2つのパターンを示す。斜線がひかれたブロック210はバックグラウンドを表し、斜線がひかれたブロック214は調整より大きい強いフォアグラウンドを表す。斜線がひかれたブロック216は、調整が引かれた場合にはバックグラウンドに変わる弱いフォアグラウンドを表す。ブロック212は特定されていない。弱いフォアグラウンド216は、図16に示される2つのパターンの1つが適合する場合にのみ、バックグラウンド210に切り換わることが可能である(各々が4つの可能性のある方位を有する)。
【特許請求の範囲】
【請求項1】
画像信号を一組の画像プレーンに分離する方法であって、
(a)最小最大モジュールを介して、前記画像信号における現在のピクセル上に中心を置く少なくとも1つのウィンドウ内の最小及び最大を探索し、
(b)ダイナミックしきい値モジュールを介して、前記少なくとも1つのウィンドウについて、前記最小最大モジュールから受信した前記最小及び最大の各々、及び前記現在のピクセルに基づいて、前記現在のピクセルの距離及び方向を、各々のしきい値プレーンに対して表す各々の指標を計算し、前記指標に基づいて制御信号を出力し、
(c)前記画像信号を一組の画像プレーンにサプサンプル処理し、
(d)分離モジュールを介して、前記現在のピクセルの表現を前記画像プレーンの少なくとも1つに含ませることにより、前記制御信号にしたがって、前記画像信号を一組の前記画像プレーンに分離する、
諸操作を含む方法。
【請求項2】
画像信号を一組の画像プレーンに分離するシステムであって、
(a)画像信号を受信し、前記画像信号における現在のピクセル上に中心を置く少なくとも1つのウィンドウ内の最小及び最大について探索する最小最大モジュールと、
(b)前記最小最大モジュールと通信し、少なくとも1つのウィンドウについて、前記最小最大モジュールから受信した前記最小及び最小の各々、及び前記現在のピクセルに基づいて、前記現在のピクセルの距離及び方向を、各々のしきい値プレーンに対して表す各々の指標を計算し、前記指標に基づいて制御信号を出力するダイナミックしきい値モジュールと、
(c)前記画像信号を画像プレーンにサブサンプル処理するサブサンプル処理モジュールと、
(d)前記ダイナミックしきい値モジュールと通信し、前記現在のピクセルの表現を前記画像プレーンの少なくとも1つに含ませることにより、前記制御信号にしたがって前記画像信号を一組の前記画像プレーンに分離する分離モジュールと、
を備えることを特徴とするシステム。
【請求項3】
画像信号を動的(ダイナミック)にしきい値処理する方法であって、
(a)計算ブロックにおいて、前記画像信号及び該画像信号における現在のピクセル上に中心を置く一組のウィンドウの各々の中の最小及び最大を受信し、
(b)前記ウィンドウの各々について、前記現在のピクセル及び前記最小及び最大のそれぞれに基づき、それぞれのしきい値プレーンに対する前記現在のピクセルの距離及び方向を表すそれぞれの指標を計算し、
(c)前記指標に基づいて制御信号を出力する、
諸操作を含む前記方法。
【請求項4】
画像信号を動的(ダイナミック)にしきい値処理するシステムであって、
前記画像信号及び該画像信号における現在のピクセル上に中心を置く一組のウィンドウの各々の中の最小及び最大を受信し、前記ウィンドウの各々について、前記現在のピクセル及び前記最小及び最大のそれぞれに基づき、それぞれのしきい値プレーンに対する前記現在のピクセルの距離及び方向を表すそれぞれの指標を計算し、前記指標に基づいて制御信号を出力する、計算ブロックを備えることを特徴とするシステム。
【請求項5】
制御信号にしたがって画像信号を一組の画像プレーンに分離する方法であって、
(a)プログラム可能な量により画像信号をサブサンプル処理し、
(b)前記制御信号を受信し、セレクタモジュールを介してセレクタ信号を生成し、
(c)前記セレクタ信号を受信し、エッジ処理モジュールを介して決定信号を生成し、
(d)前記サブサンプル処理された画像信号及び前記決定信号を受信し、フォアグラウンド/バックグラウンド分離モジュールを介して、フォアグラウンド信号及びバックグラウンド信号を出力し、前記画像信号の前記現在のピクセルの表現が、前記決定信号にしたがって、前記フォアグラウンド信号及びバックグラウンド信号の少なくとも1つに含まれるようにする、
諸操作を含む前記方法。
【請求項6】
制御信号にしたがって画像信号を一組の画像プレーンに分離するシステムであって、
前記制御信号を受信し、セレクタ信号を生成するセレクタモジュールと、
前記セレクタ信号を受信し、決定信号を生成するエッジ処理モジュールと、
前記画像信号及び前記決定信号を受信し、フォアグラウンド信号及びバックグラウンド信号を出力するフォアグラウンド/バックグラウンド分離モジュールとを備え、
前記画像信号の前記現在のピクセルの表現が、前記決定信号にしたがって、前記フォアグラウンド信号及びバックグラウンド信号の少なくとも1つに含まれるようになった
ことを特徴とするシステム。
【請求項7】
制御信号にしたがって画像信号を一組の画像プレーンに分離するシステムであって、
(a)プログラム可能な量により画像信号をサブサンプル処理するための手段と、
(b)前記制御信号を受信し、セレクタモジュールを介してセレクタ信号を生成するための手段と、
(c)前記セレクタ信号を受信し、エッジ処理モジュールを介して決定信号を生成するための手段と、
(d)前記サブサンプル処理された画像信号及び前記決定信号を受信し、フォアグラウンド/バックグラウンド分離モジュールを介して、フォアグラウンド信号及びバックグラウンド信号を出力し、前記画像信号の前記現在のピクセルの表現が、前記決定信号にしたがって、前記フォアグラウンド信号及びバックグラウンド信号の少なくとも1つに含まれるようにするための手段と、
を備えることを特徴とするシステム。
【請求項8】
2値化されたときに位相(トポロジー)的特徴を保存するグレイ画像を薄くするか又はエローションする方法であって、
近くの試験が、薄くすること/エローションが、結果としてもたらされるバイナリ画像における薄い特徴を壊すことはないと保証する場合においてのみ、一定の値を前記グレイ画像から引く、
ことを含む方法。
【請求項9】
2値化されたときに位相特徴を保存するグレイ画像を薄くするか又はエローションするシステムであって、
近くの試験が、薄くすること/エローションが、結果としてもたらされるバイナリ画像における薄い特徴を壊すことはないと保証する場合においてのみ、一定の値を前記グレイ画像から引くための手段、
を備えることを特徴とするシステム。
【請求項10】
2値化されたときに位相特徴を保存するグレイ画像を薄くするか又はエローションする方法であって、
近くの試験が成功した場合に、薄くすること/エローションが、結果としてもたらされるバイナリ画像における薄い特徴を壊すことはないと保証する場合においてのみ、一定の値を前記グレイ画像から引くことを含み、
前記引くことは、前記中心ピクセルがフォアグラウンドからバックグラウンドに変換されない場合に行われ、
前記引くことは、前記中心ピクセルがフォアグラウンドからバックグラウンドに変換されず、2つのテンプレートのどちらかが適合する場合に行われる、
ことを特徴とする方法。
【請求項1】
画像信号を一組の画像プレーンに分離する方法であって、
(a)最小最大モジュールを介して、前記画像信号における現在のピクセル上に中心を置く少なくとも1つのウィンドウ内の最小及び最大を探索し、
(b)ダイナミックしきい値モジュールを介して、前記少なくとも1つのウィンドウについて、前記最小最大モジュールから受信した前記最小及び最大の各々、及び前記現在のピクセルに基づいて、前記現在のピクセルの距離及び方向を、各々のしきい値プレーンに対して表す各々の指標を計算し、前記指標に基づいて制御信号を出力し、
(c)前記画像信号を一組の画像プレーンにサプサンプル処理し、
(d)分離モジュールを介して、前記現在のピクセルの表現を前記画像プレーンの少なくとも1つに含ませることにより、前記制御信号にしたがって、前記画像信号を一組の前記画像プレーンに分離する、
諸操作を含む方法。
【請求項2】
画像信号を一組の画像プレーンに分離するシステムであって、
(a)画像信号を受信し、前記画像信号における現在のピクセル上に中心を置く少なくとも1つのウィンドウ内の最小及び最大について探索する最小最大モジュールと、
(b)前記最小最大モジュールと通信し、少なくとも1つのウィンドウについて、前記最小最大モジュールから受信した前記最小及び最小の各々、及び前記現在のピクセルに基づいて、前記現在のピクセルの距離及び方向を、各々のしきい値プレーンに対して表す各々の指標を計算し、前記指標に基づいて制御信号を出力するダイナミックしきい値モジュールと、
(c)前記画像信号を画像プレーンにサブサンプル処理するサブサンプル処理モジュールと、
(d)前記ダイナミックしきい値モジュールと通信し、前記現在のピクセルの表現を前記画像プレーンの少なくとも1つに含ませることにより、前記制御信号にしたがって前記画像信号を一組の前記画像プレーンに分離する分離モジュールと、
を備えることを特徴とするシステム。
【請求項3】
画像信号を動的(ダイナミック)にしきい値処理する方法であって、
(a)計算ブロックにおいて、前記画像信号及び該画像信号における現在のピクセル上に中心を置く一組のウィンドウの各々の中の最小及び最大を受信し、
(b)前記ウィンドウの各々について、前記現在のピクセル及び前記最小及び最大のそれぞれに基づき、それぞれのしきい値プレーンに対する前記現在のピクセルの距離及び方向を表すそれぞれの指標を計算し、
(c)前記指標に基づいて制御信号を出力する、
諸操作を含む前記方法。
【請求項4】
画像信号を動的(ダイナミック)にしきい値処理するシステムであって、
前記画像信号及び該画像信号における現在のピクセル上に中心を置く一組のウィンドウの各々の中の最小及び最大を受信し、前記ウィンドウの各々について、前記現在のピクセル及び前記最小及び最大のそれぞれに基づき、それぞれのしきい値プレーンに対する前記現在のピクセルの距離及び方向を表すそれぞれの指標を計算し、前記指標に基づいて制御信号を出力する、計算ブロックを備えることを特徴とするシステム。
【請求項5】
制御信号にしたがって画像信号を一組の画像プレーンに分離する方法であって、
(a)プログラム可能な量により画像信号をサブサンプル処理し、
(b)前記制御信号を受信し、セレクタモジュールを介してセレクタ信号を生成し、
(c)前記セレクタ信号を受信し、エッジ処理モジュールを介して決定信号を生成し、
(d)前記サブサンプル処理された画像信号及び前記決定信号を受信し、フォアグラウンド/バックグラウンド分離モジュールを介して、フォアグラウンド信号及びバックグラウンド信号を出力し、前記画像信号の前記現在のピクセルの表現が、前記決定信号にしたがって、前記フォアグラウンド信号及びバックグラウンド信号の少なくとも1つに含まれるようにする、
諸操作を含む前記方法。
【請求項6】
制御信号にしたがって画像信号を一組の画像プレーンに分離するシステムであって、
前記制御信号を受信し、セレクタ信号を生成するセレクタモジュールと、
前記セレクタ信号を受信し、決定信号を生成するエッジ処理モジュールと、
前記画像信号及び前記決定信号を受信し、フォアグラウンド信号及びバックグラウンド信号を出力するフォアグラウンド/バックグラウンド分離モジュールとを備え、
前記画像信号の前記現在のピクセルの表現が、前記決定信号にしたがって、前記フォアグラウンド信号及びバックグラウンド信号の少なくとも1つに含まれるようになった
ことを特徴とするシステム。
【請求項7】
制御信号にしたがって画像信号を一組の画像プレーンに分離するシステムであって、
(a)プログラム可能な量により画像信号をサブサンプル処理するための手段と、
(b)前記制御信号を受信し、セレクタモジュールを介してセレクタ信号を生成するための手段と、
(c)前記セレクタ信号を受信し、エッジ処理モジュールを介して決定信号を生成するための手段と、
(d)前記サブサンプル処理された画像信号及び前記決定信号を受信し、フォアグラウンド/バックグラウンド分離モジュールを介して、フォアグラウンド信号及びバックグラウンド信号を出力し、前記画像信号の前記現在のピクセルの表現が、前記決定信号にしたがって、前記フォアグラウンド信号及びバックグラウンド信号の少なくとも1つに含まれるようにするための手段と、
を備えることを特徴とするシステム。
【請求項8】
2値化されたときに位相(トポロジー)的特徴を保存するグレイ画像を薄くするか又はエローションする方法であって、
近くの試験が、薄くすること/エローションが、結果としてもたらされるバイナリ画像における薄い特徴を壊すことはないと保証する場合においてのみ、一定の値を前記グレイ画像から引く、
ことを含む方法。
【請求項9】
2値化されたときに位相特徴を保存するグレイ画像を薄くするか又はエローションするシステムであって、
近くの試験が、薄くすること/エローションが、結果としてもたらされるバイナリ画像における薄い特徴を壊すことはないと保証する場合においてのみ、一定の値を前記グレイ画像から引くための手段、
を備えることを特徴とするシステム。
【請求項10】
2値化されたときに位相特徴を保存するグレイ画像を薄くするか又はエローションする方法であって、
近くの試験が成功した場合に、薄くすること/エローションが、結果としてもたらされるバイナリ画像における薄い特徴を壊すことはないと保証する場合においてのみ、一定の値を前記グレイ画像から引くことを含み、
前記引くことは、前記中心ピクセルがフォアグラウンドからバックグラウンドに変換されない場合に行われ、
前記引くことは、前記中心ピクセルがフォアグラウンドからバックグラウンドに変換されず、2つのテンプレートのどちらかが適合する場合に行われる、
ことを特徴とする方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【公開番号】特開2010−220250(P2010−220250A)
【公開日】平成22年9月30日(2010.9.30)
【国際特許分類】
【出願番号】特願2010−130685(P2010−130685)
【出願日】平成22年6月8日(2010.6.8)
【分割の表示】特願2004−28656(P2004−28656)の分割
【原出願日】平成16年1月5日(2004.1.5)
【出願人】(596170170)ゼロックス コーポレイション (1,961)
【氏名又は名称原語表記】XEROX CORPORATION
【Fターム(参考)】
【公開日】平成22年9月30日(2010.9.30)
【国際特許分類】
【出願日】平成22年6月8日(2010.6.8)
【分割の表示】特願2004−28656(P2004−28656)の分割
【原出願日】平成16年1月5日(2004.1.5)
【出願人】(596170170)ゼロックス コーポレイション (1,961)
【氏名又は名称原語表記】XEROX CORPORATION
【Fターム(参考)】
[ Back to top ]