(57)【要約】      （修正有）【課題】トラッピングのためのフレーム・バッファー・ピクセルの識別を可能にする。【解決手段】フレーム・バッファーにおけるピクセルと関連したフラグは、トラッピングのためのピクセルの表示を与えるために使用されることができる。ピクセルに関連したフラグにおける第1ビットは、ピクセルがペイントされる場合に設定されることができる。前記方法は、フラグに関連したピクセルがオブジェクト境界にあるかどうかを決定するためにフラグの第2ビットの値を設定する。前記ピクセルは、少なくとも一つのフラグの値に基づいてトラッピングの候補として識別される。【選択図】なし【特許請求の範囲】
【請求項１】
少なくとも１つのフレーム・バッファー・ピクセルに少なくとも１のフラグを関連させることにより、少なくとも１つのディスプレイリストオブジェクトに関連した少なくとも１つのフレーム・バッファー・ピクセルをトラッピングの候補として識別する方法において、
フレーム・バッファーに少なくとも１つのフレーム・バッファー・ピクセルをレンダリングする場合、少なくとも１つのフラグの第１ビットを設定する工程と、
少なくとも１つのフレーム・バッファー・ピクセルがディスプレイリストオブジェクトの境界ピクセルである場合、少なくとも１つのフラグの第２ビットを設定し、
少なくとも１つのディスプレイリストオブジェクトが不透明であり、且つ、少なくとも１つのフレーム・バッファー・ピクセルがディスプレイリストオブジェクトの非境界ピクセルである場合、少なくとも１つのフラグの第２ビットを再設定し、
少なくとも１つのディスプレイリストオブジェクトが非不透明であり、且つ、少なくとも１つのフレーム・バッファー・ピクセルがディスプレイリストオブジェクトの非境界ピクセルである場合、少なくとも１つのフラグの第２ビットの現在値および論理的な「０」値を使用して、論理的な「OR」演算を行なう、
ことにより少なくとも１つのフラグの第2ビットの値を計算する工程と、
少なくとも１つのフラグの値に基づいてトラッピングの候補として少なくとも１つのフレーム・バッファー・ピクセルを識別する工程と
から構成されることを特徴とする方法。
【請求項２】
少なくとも一つのフラグがフラグ・バッファーに格納されていることを特徴とする請求項１記載の方法。
【請求項３】
フラグにおいて第１及び第２ビット両方が設定された場合、フレーム・バッファー・ピクセルがトラッピングの候補として識別されることを特徴とする請求項１記載の方法。
【請求項４】
少なくとも一つのフレーム・バッファー・ピクセルが非定値の色ピクセルであるかどうかを少なくとも一つのフラグの第２ビットが示すことを特徴とする請求項１記載の方法。
【請求項５】
フラグ・バッファーが少なくとも一つの２次元アレイとして実行されることを特徴とする請求項２記載の方法。
【請求項６】
フラグ・バッファーがフレーム・バッファーと同じジオメトリーで構成されることを特徴とする請求項２記載の方法。
【請求項７】
フラグ・バッファーがフレーム・バッファーと論理上離れていることを特徴とする請求項２記載の方法。
【請求項８】
フラグ・バッファーにおける少なくとも一つのフラグがフレーム・バッファーにおけるピクセルとの間で一対一対応であることを特徴とする請求項２記載の方法。
【請求項９】
前記方法は少なくとも一つのディスプレイリストオブジェクトのラスタ化の間に実行されることを特徴とする請求項１記載の方法。
【請求項１０】
前記方法は、フレーム・バッファーへの少なくとも一つのディスプレイリストオブジェクトのレンダリングに関連して実行されることを特徴とする請求項１記載の方法。
【請求項１１】
前記方法は、コンピューター及び印刷装置の1以上に対して実行されることを特徴とする請求項１記載の方法。
【請求項１２】
少なくとも１つのフレーム・バッファー・ピクセルに少なくとも１のフラグを関連させることにより、少なくとも１つのディスプレイリストオブジェクトに関連した少なくとも１つのフレーム・バッファー・ピクセルをトラッピングの候補として識別する方法における工程を実行するプロセッサにより実行される命令を記憶するコンピューター読取可能な媒体であって、
前記方法が、
フレーム・バッファーに少なくとも１つのフレーム・バッファー・ピクセルをレンダリングする場合、少なくとも１つのフラグの第１ビットを設定する工程と、
少なくとも１つのフレーム・バッファー・ピクセルが境界ピクセルである場合、少なくとも１つのフラグの第２ビットを設定し、
少なくとも１つのディスプレイリストオブジェクトが不透明であり、且つ、少なくとも１つのフレーム・バッファー・ピクセルが非境界ピクセルである場合、少なくとも１つのフラグの第２ビットを再設定し、
少なくとも１つのディスプレイリストオブジェクトが非不透明であり、且つ、少なくとも１つのフレーム・バッファー・ピクセルがディスプレイリストオブジェクトの非境界ピクセルである場合、少なくとも１つのフラグの第２ビットの現在値および論理的な「０」を使用して、論理的な「OR」演算を行なう、
ことにより少なくとも１つのフラグの第2ビットの値を計算する工程と、
少なくとも１つのフラグの第2ビットの第２の値に基づいてトラッピングの候補として少なくとも１つのフレーム・バッファー・ピクセルを識別する工程と
から構成されることを特徴とするコンピューター読取可能な媒体。
【請求項１３】
少なくとも一つのフラグがフラグ・バッファーに格納されていることを特徴とする請求項１１記載のコンピューター読取可能な媒体。
【請求項１４】
フラグにおいて第１及び第２ビットの両方が設定された場合、フレーム・バッファー・ピクセルがトラッピングの候補として識別されることを特徴とする請求項１１記載のコンピューター読取可能な媒体。
【請求項１５】
前記方法は少なくとも一つのディスプレイリストオブジェクトのラスタ化の間に実行されることを特徴とする請求項１１記載のコンピューター読取可能な媒体。
【請求項１６】
前記方法は、フレーム・バッファーへの少なくとも一つのディスプレイリストオブジェクトのレンダリングに関連して実行されることを特徴とする請求項１１記載のコンピューター読取可能な媒体。
【請求項１７】
少なくとも１つのフレーム・バッファー・ピクセルに少なくとも１のフラグを関連させることにより、少なくとも１つのディスプレイリストオブジェクトに関連した少なくとも１つのフレーム・バッファー・ピクセルをトラッピングの候補として識別する方法における工程を実行するプロセッサを制御する命令を格納するコンピューター読取可能なメモリであって、
前記方法が、
フレーム・バッファーに少なくとも１つのフレーム・バッファー・ピクセルをレンダリングする場合、少なくとも１つのフラグの第１ビットを設定する工程と、
少なくとも１つのフレーム・バッファー・ピクセルが境界ピクセルである場合、少なくとも１つのフラグの第２ビットを設定し、
少なくとも１つのディスプレイリストオブジェクトが不透明であり、且つ、少なくとも１つのフレーム・バッファー・ピクセルが非境界ピクセルである場合、少なくとも１つのフラグの第２ビットを再設定し、
少なくとも１つのディスプレイリストオブジェクトが非不透明であり、且つ、少なくとも１つのフレーム・バッファー・ピクセルがディスプレイリストオブジェクトの非境界ピクセルである場合、少なくとも１つのフラグの第２ビットの現在値および論理的な「０」を使用して、論理的な「OR」演算を行なう、
ことにより少なくとも１つのフラグの第2ビットの値を計算する工程と、
少なくとも１つのフラグの第2ビットの第２の値に基づいてトラッピングの候補として少なくとも１つのフレーム・バッファー・ピクセルを識別する工程と
から構成されることを特徴とするコンピューター読取可能な媒体。
【請求項１８】
少なくとも一つのフラグがフラグ・バッファーに格納されていることを特徴とする請求項１６記載のコンピューター読取可能なメモリ。
【請求項１９】
少なくとも一つのフレーム・バッファー・ピクセルが非定値の色ピクセルであるかどうかを少なくとも一つのフラグの第２ビットが示すことを特徴とする請求項１６記載のコンピューター読取可能なメモリ。
【請求項２０】
フラグにおいて第１及び第２ビット両方が設定された場合、フレーム・バッファー・ピクセルがトラッピングの候補として識別されることを特徴とする請求項１６記載のコンピューター読取可能なメモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリント分野に関係し、特に、プリントデバイスにおけるトラッピング領域の検索を最小限にする方法に関する。
【背景技術】
【０００２】
カラープリンタにより典型的に生成されたピクセル（画素）は、マルチプルカラープレーンの色から構成される。例えば、シアン、マジェンタ、イエロー、及びブラック（“ＣＭＹＫ”）を用いるカラープリンタにおいて、シングルピクセルは、４つのカラープレーンの１以上の色から構成される。構成するカラープレーンの色が異なる強度で結合する場合、色の幅範囲はプリンターによりもたらされるだろう。一つの単一ピクセルを構成するその色成分は、理想的には、お互いの上に、又は、とても近くにプリントされる。しかしながら、プリントエンジン・ミスアラインメントによって引き起こされた誤った位置決め、紙伸び、そして他の機械的な不正確さの故に、一つの単一ピクセルを構成するその色成分は、ページ上の異なる色がつけられた領域間の不体裁な小さな白いギャップ、あるいは黒領域への有色のエッジに起因して十分にオーバーラップしないかもしれない。誤った位置決めを是正するために、白いギャップおよび／またはグラフィック・オブジェクト間の有色のエッジを除去するために、有色の領域をわずかに拡張するか収縮するトラッピングと呼ばれるテクニックを使用することが一般的である。トラッピングは、色の領域を色分解へ導き、誤った位置決めの目に見える影響を隠す。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
潜在的にマルチプルカラープレーンを測るフレーム・バッファーにおけるデータを使用してオブジェクト境界を見つける計算上高価な工程を含んでいるトラッピングは、ラスターベース・トラッピングを使用して、しばしば実行される。大部分において、トラッピングはピクセル単位で行なわれるかもしれないので、計算上のコストが発生する。例えば、ＣＭＹＫカラーモデルを使用して、幅＝高さ＝１の比較的小さな３×３ピクセル領域に実行されたラスターベース・トラッピングは、３６以上の（４つのプレーンにわたって９ピクセル）メモリ位置を含んでいる。計算上のコストが畜力供給ピクセル単位アプローチに大きく関係しているので、計算上のコストの著しい減少は、潜在的トラッピング候補として処理されたピクセル数を減じることにより達成されるかもしれない。したがって、トラッピング領域のための検索領域を減じることによりトラッピング機能性をあたえることに関連した計算上のコストを減少させるシステムおよび方法の必要がある。
【課題を解決するための手段】
【０００４】
提示された実施例で整合性がとれている、少なくとも１つのフレーム・バッファー・ピクセルをトラッピングの候補として識別する方法が示される。いくつかの実施例では、少なくとも１つのディスプレイリストオブジェクトに関連した少なくとも１つのフレーム・バッファー・ピクセルをトラッピングの候補として識別する方法は、ピクセルに少なくとも１のフラグを関連させる工程及びフレーム・バッファーにピクセルをレンダリングする場合フラグの第１ビットを設定する工程からなる。ピクセルが境界ピクセルである場合、フラグの第２ビットの値を設定し、ディスプレイリストオブジェクトが不透明であり、且つ、少なくとも１つのフレーム・バッファー・ピクセルが非境界ピクセルである場合、フラグの第２ビットを再設定し、少なくとも１つのディスプレイリストオブジェクトが非不透明であり、且つ、そのピクセルが非境界ピクセルである場合、フラグの第２ビットの現在値および論理的な「０」を使用して、論理的な「OR」演算（オペレーション）を行なうことにより計算される。ピクセルは、フラグの第２ビットの値に基づいてトラッピングの候補として識別されることができる。
【０００５】
実施例は、さらに、ソフトウェア、ファームウェアおよびコンピューター読取可能な媒体あるいはコンピューター読取可能なメモリを使用してプロセッサによって作成され、格納され、アクセスされ、あるいは修正されたプログラム命令に関係する。記述された方法は、コンピューターおよび／またはプリントデバイス上で行なわれてもよい。
【０００６】
これらおよび他の実施例は、次の図に関してさらに以下説明される。 
【図面の簡単な説明】
【０００７】
【図１】図１は、本発明のいくつかの実施例と一致するドキュメントの印刷のために典型的なシステムでの成分を示す図である。
【図２】図２は、典型的なプリンターの高級ブロック図を示す。
【図３】図３は、ラスタ画像処理装置によって利用されたフレーム・バッファーのデータ上でトラッピングを実行するための従来方式の工程を示す典型的なフローチャートを示す。
【図４】図４は、トラッピングを実行するための典型的な方法における工程を図示するフローチャートを示す。
【図５】図５は、フレーム・バッファーにおけるピクセルに関連したフラグを設定する典型的な方法を図示するフローチャートを示す。
【図６】図６a、６bおよび６cは、不透明、非不透明なオペレーションがグラフィック・オブジェクト上で行なわれるとき、ピクセルとピクセルに関連したフラグへの変更を図示する。
【図７】図７は、ピクセルに関連したフラグを分析する典型的な方法を図示するフローチャートを示す。
【発明を実施するための形態】
【０００８】
本発明の様々な特徴を反映する実施例に従って、第１の印刷可能なデータから生成された印刷可能なデータの第２あるいは中間フォームを使用してトラッピングを実施するシステム及び方法が示される。いくつかの実施例で、第１の印刷可能なデータは、ドキュメントのPDL記述のフォーム及び中間の印刷可能なデータのフォームを採用してもよい。データは、PDL記述から生成されたオブジェクトのディスプレイリストのフォームを使用してもよい。
【０００９】
図１は、ドキュメントの印刷のための典型的なシステムにおける構成を示す図である。図１に示されるように、トラッピングを実行するためのアプリケーションは、従来の通信プロトコルおよび／またはデータポート・インターフェースを使用して情報が交換されることを可能にする通信リンクによって接続されるコンピューターとプリントデバイスのネットワーク上で展開することができる。
【００１０】
図１に示されるように、典型的なシステム１００はコンピューティング装置１１０およびサーバー１３０を含むコンピューターを含んでいる。さらに、コンピューティング装置１１０およびサーバー１３０は、ネットワーク１４０経由で通る接続１２０上で通信することができる。コンピューティング装置１１０は、コンピューター・ワークステーション、デスクトップコンピューター、ラップトップ・コンピューターまたはネットワーク化された環境の中で使用することができる他のコンピューティング装置でもよい。サーバー１３０は、コンピューティング装置１１０および(示されない)他のデバイスに接続することができるプラットホームでありえる。コンピューティング装置１１０およびサーバー１３０は、プリンター１７０を使用して、ドキュメントの印刷を許可する(示されない)ソフトウェアを実行することができてもよい。
【００１１】
コンピューティング装置１１０および／またはサーバー１３０上で実行されるドキュメントプロセシングソフトウエアは、ユーザーに、ドキュメントの閲覧、編集、処理および格納を便利に可能にすることができる。ドキュメントの印刷するページは、ページ記述言語（「PDL」）で記述されることができる。PDLはPostScript（登録商標）、Adobe（登録商標）PDF、HP（登録商標）PCL、Microsoft（登録商標）XPS、およびそれらの変形を含んでいてもよい。ドキュメントのPDL記述は、ドキュメントにおける各ページの高級記述を提供する。ドキュメントが印刷されている場合、このPDL記述は、一連の低級プリンター特定コマンドにしばしば変換される。
【００１２】
PDLから低級プリンター特定コマンドまでの変換過程は複雑で、典型的なプリンター１７０によって提示された特徴と能力に依存するかもしれない。例えば、プリンター１７０はそのデータを段階的に処理することができる。第一段では、プリンター１７０はPDLコマンドを解析し、高級命令を原始関数と呼ばれる１セットの低級命令に分解することができる。これらの原始関数は、ページ上のどこにマークを置くか決めるためにそれらを使用する典型的なプリンター１７０の後段に供給されることができる。いくつかのインスタンスでは、それが生成されるとともに、原始関数はそれぞれ処理されることができる。他のシステムでは、原始関数の大きなセットは生成され、格納され、次に、処理されることができる。例えば、シングルページについて記述するために必要とされる原始関数は生成され、リストに格納され、次に、処理されることができる。１セットの格納された原始関数は中間リストまたはディスプレイリストと称される。
【００１３】
一般に、プリンター１７０は、レーザープリンターおよびLEDプリンター、インクジェットプリンター、サーマルプリンター、レーザー・イメージャーおよびオフセット・プリンターのような、電子写真プリンターを含んでいるが、これに制限されることはない。電子化データから物理的なドキュメントを提示するように構成することができるあらゆるデバイスでありえる。プリンター１７０は、ファクシミリ装置およびディジタル・コピアにインストールされるような、画像送受信機能、画像走査機能、および/または、複写機能を有してもよい。典型的なプリンター１７０は、さらに、接続１２０上のコンピューティング装置１１０またはサーバー１３０から受け取られたドキュメントを直接印刷することができてもよい。コンピューティング装置１１０あるいはサーバー１３０による追加処理で(あるいは追加処理なしで)ドキュメントの直接印刷を許可することができる配置であるいくつかの実施例では、テキスト、グラフィックスおよび画像の１以上を含んでいてもよいドキュメントの処理が分配されることができる。したがって、プリンター１７０によってドキュメントが物理的に印刷される前に、コンピューティング装置１１０、サーバー１３０および/またはプリンターは、ハーフトーン処理、カラーマッチング、および/または他の加工処理のようなドキュメント印刷処理の部分を行なってもよい。
【００１４】
コンピューティング装置１１０はさらにリムーバブル媒体ドライブ１５０を含んでいる。リムーバブル媒体ドライブ１５０は、例えば、３.５インチのフロッピードライブ、CD-ROMドライブ、DVD ROMドライブ、CD±RWあるいはDVD±RWドライブ、USBフラッシュ・ドライブおよび／または他のリムーバブル媒体ドライブを含んでいてもよい。アプリケーションの部分はリムーバブル媒体上で存在し、システム１００によって動作する前にリムーバブル媒体ドライブ１５０を使用して、コンピューティング装置１１０によって読まれることができる。
【００１５】
接続１２０はコンピューティング装置１１０、サーバー１３０およびプリンター１７０を連結し、従来の通信プロトコルおよび/またはデータポート・インターフェースを使用する、有線あるいは無線接続として実行されることができる。一般に、接続１２０は装置間のデータ伝送を許可するあらゆる通信チャネルであってよい。１つの実施例では、例えば、デバイス（装置）には、適切な接続によるデータ伝送のためのパラレルポート、シリアルポート、イーサネット、USB（登録商標）、SCSI、FIREWIRE（登録商標）および/または同軸ケーブルポートのような従来のデータポートが提供されることができる。
【００１６】
ネットワーク１４０は、ローカルエリア・ネットワーク(LAN)、ワイドエリア・ネットワーク(WAN)またはインターネットを含むことができる。いくつかの実施例では、ネットワーク１４０上に送られた情報は送信されているデータのセキュリティを保証するために暗号化されてもよい。プリンター１７０は接続１２０を経由してネットワーク１４０へ接続されることができる。典型的なプリンター１７０は、コンピューティング装置１１０および/またはサーバー１３０に直接接続されることができる。システム１００はさらに(示されない)他の周辺機器を含んでいてもよい。図１で示されるように、プリントデバイスのためのトラッピングを実行するアプリケーションは、１以上の典型的なコンピューターまたはプリンター上で展開されることができる。例えば、コンピューティング装置１１０は、サーバー１３０から直接ダウンロードされることができるソフトウェアを実行してもよい。また、アプリケーションの部分は、典型的なプリンター１７０によって実行されてもよい。
【００１７】
図２は、典型的なプリンター１７０の高級ブロック図を示す。典型的なプリンター１７０は、ＣＰＵ１７６、ファームウェア１７１、メモリ１７２、入出力ポート１７５、プリントエンジン１７７および補助記憶装置１７３を連結するバス１７４を含んでいることができる。典型的なプリンター１７０は、さらに、ドキュメントを印刷するか処理するためにアプリケーションの部分を実行することができる、他の特定用途向けIC(ASIC)、および/またはフィールドプログラマブルゲートアレイ(FPGA)１７８を含んでいることができる。典型的なプリンター１７０は、さらにI/Oポート１７５および接続１２０を使用して、コンピューティング装置１１０の補助記憶装置あるいは他のメモリにアクセスすることができてもよい。いくつかの実施例では、プリンター１７０が、さらにプリンター・オペレーティングシステムおよび他の適切なアプリケーション・ソフトを含むソフトウェアを実行することができてもよい。典型的なプリンター１７０は、ユーザー設定できる他のオプションから、用紙サイズ、アウトプット・トレー、色選択、印刷分解能を許可してもよい。
【００１８】
典型的なＣＰＵ １７６は、メインプロセッサー、特別目的プロセッサまたは埋込み型プロセッサであってもよい。ＣＰＵ１７６は、メモリ１７２および/またはファームウェア１７１で、制御情報および命令を含むデータを交換することができる。メモリ１７２はSDRAMまたはRDRAMのような任意のタイプのダイナミックランダムアクセスメモリ（「DRAM」）であってもよい。しかし、これらに制限されない。ファームウェア１７１は、ブーツ・アップ・シーケンス、画像処理用のルーチンを含む所定のルーチン、トラッピング、ドキュメント処理および他のコードを含む命令およびデータを保持できる。しかし、これらに限定されない。いくつかの実施例では、ファームウェア１７１のコードおよびデータは、ＣＰＵ１７６によって動作する前にメモリ１７２にコピーされてもよい。ファームウェア１７１のルーチンは、コンピューティング装置１１０から受信したページ記述をディスプレイリストへ変換するためにコードを含んでいてもよい。いくつかの実施例では、ファームウェア１７１は、ディスプレイリストの表示コマンドを適切なラスターライズされたビットマップに変換し、かつメモリ１７２にビットマップを格納するためにラスタ化ルーチンを含んでいてもよい。ファームウェア１７１は、さらに、圧縮、トラッピングおよびメモリ管理ルーチンを含んでいてもよい。コンピューター１１０、ネットワーク１４０、プリンター１７０につながれたリムーバブル媒体および/または補助記憶装置１７３の１つ以上を使用して、ファームウェア１７１のデータおよび命令はアップグレード可能であってもよい。
【００１９】
典型的なＣＰＵ１７６は、命令とデータに従って動作し、印刷されたドキュメントを生成するためにASIC/FPGA １７８およびプリントエンジン１７７に制御とデータを供給することができる。ASIC/FPGA １７８は、さらに、プリントエンジン１７７に制御とデータを供給することができる。FPGA/ASIC １７８は、さらに、変換、トラッピング、圧縮およびラスタ化アルゴリズムの１以上を実行することができる。
【００２０】
典型的なコンピューティング装置１１０は、書類データを第１の印刷可能なデータに変換することができる。いくつかの実施例では、第１の印刷可能なデータはドキュメントのPDL記述に相当してもよい。その後、第１の印刷可能なデータは中間の印刷可能なデータへ変換のためにプリンター１７０に送信されることができる。いくつかの実施例では、ドキュメントのPDL記述から、一連の低級プリンター特定コマンドから構成される、最終の印刷可能なデータへの変換過程は、オブジェクトのディスプレイリストから構成される中間の印刷可能なデータの生成を含んでいてもよい。ディスプレイリストは、テキスト、グラフィックスおよび画像データオブジェクトの１つ以上を保持することができる。また、ディスプレイリストの１つ以上のタイプのデータオブジェクトはユーザー・ドキュメントのオブジェクトに相当してもよい。
【００２１】
最終の印刷可能なデータの生成を支援することができるディスプレイリストは、メモリ１７２または補助記憶装置１７３に格納されることができる。典型的な補助記憶装置１７３は、内部または外部ハードディスク、メモリースティックあるいはシステム２００によって使用されることができる他の記憶装置であってよい。いくつかの実施例では、ディスプレイリストは、存在し、プリンター１７０、コンピューティング装置１１０、およびドキュメント処理がどこに生じるかに依存するサーバー１３０の１つ以上の間で転送されてもよい。ディスプレイリストを記憶するメモリは、専用メモリ、または、汎用メモリのフォームの部分、あるいはそれのある組合せでもよい。いくつかの実施例では、ディスプレイリストを保持するメモリは、必要に応じて、ダイナミックに割り付けられ、管理され、リリースされてもよい。プリンター１７０は中間の印刷可能なデータを印刷可能なデータの最終フォームに変換し、この最終フォームによって印刷することができる。
【００２２】
図３は、ラスタ画像処理装置によって利用されたフレーム・バッファーのデータ上でトラッピングを実行するための従来方式の工程を示す典型的なフローチャート３００を示す。そのプロセスは、プリントジョブの開始と共にステップ３１０で開始することができる。ステップ３２０において、プリントジョブデータ３１５は言語処理されることができる。いくつかの実施例では、言語処理は言語サーバーによって行なわれてもよい。例えば、言語サーバーはPDL言語水準オブジェクト使用し、言語水準オブジェクトをデータ、画像、テキストおよびグラフィック・オブジェクトに変換し、ディスプレイリスト３２５にこれらのオブジェクトを加えることができる。
【００２３】
典型的なディスプレイリスト３２５は、実際の印刷に先立ってデータ処理の中間工程であってもよく、後のフォームへの変換の前に解析されてもよい。ディスプレイリスト表現から物理媒体上に印刷するのに適したフォームへの変換処理は、データのラスタ化またはラスタ化と称されるだろう。ディスプレイリスト３２５は、色、不透明度、境界情報およびディスプレイリストオブジェクト用深さのような情報を含んでいてもよい。例えば、基礎的なラスタ化は、多角形を使用して記述された３次元シーンをとることおよび２次元表面上に３次元シーンをレンダリングすることにより典型的に遂行されることができる。多角形は、三角形の集合として表わすことができる。三角形は３つの頂点によって３次元のスペースで表わされることができる。２つのエッジが会うところで、頂点は、ポイント、エッジの端点あるいは多角形のコーナーを定義する。したがって、基礎的なラスタ化は、頂点のストリームを対応する２次元ポイントに変換し、変換された２次元三角形で埋められる。ラスタ化に際して、ラスタ化されたデータは、メモリ１７２に物理的に位置する、典型的なフレーム・バッファー３５０のようなフレーム・バッファーに格納されることができる。プリントエンジン１７７は、フレーム・バッファー３５０においてラスタ化されたデータを処理することができ、紙のような印刷媒体上でページの印刷可能な画像を形成することができる。
【００２４】
ステップ３３０において、ラスタ画像処理(RIP)モジュールは、ディスプレイリスト３２５のオブジェクトを処理し、フレーム・バッファー３５０においてラスタ化された該当物を生成することができる。いくつかの実施例では、ラスタ画像処理は、プリンター１７０によって行なわれることができる。例えば、ラスタ画像処理は、ＣＰＵ １７６、ASIC/FPGA １７８、メモリ１７２および/または補助記憶装置１７３の１つ以上を使用して、プリンター１７０によって行なわれることができる。ラスタ画像処理は、ソフトウェア、ファームウェアおよび/またはASIC/FPGA １７８のような特定のハードウェアのある組合せを使用して、プリンター１７０によって行なわれることができる。フレーム・バッファー３５０は、プリントエンジン１７７によって印刷媒体上に印刷するのに適したフォームにおいて印刷オブジェクトの表現を保持することができる。
【００２５】
その後、フレーム・バッファー３５０のデータは、ステップ３６０においてトラッピングされることができる。いくつかの周知のトラッピングアルゴリズムのうちのいずれもトラッピングを行なうために使用されてもよい。その後、トラッピングされたフレーム・バッファー３５５は、ステップ３７０において任意の追加処理の対象とされることができる。例えば、プリントエンジン１７７は、更なる処理の後に印刷媒体上にトラッピングされたフレーム・バッファー３５５をレンダリングすることができる。ピクセル単位でピクセルに対して行なわれるとき、従来のトラッピングアルゴリズムが計算上高価になりえるので、トラッピング領域の検索の最適化は、計算量の減少を許容することができる。
【００２６】
図４は、トラッピング領域の検索を最適化する方法における工程を示す典型的なフローチャート４００を示す。いくつかの実施例では、フローチャート４００において示される方法が、ステップ３３０においてラスタ画像処理モジュールを使用して行なわれてもよい。いくつかの実施例では、オブジェクトの境界に関連したピクセル(境界ピクセル)は、「非定値の」色領域のピクセルであると識別されてもよい。境界ピクセルは、オーバーレイまたは少なくとも１つの異なる色であってもよい隣接の他のオブジェクトの可能性があるので、それらは、トラッピング候補として当初は識別されることができる。同様に、オブジェクトの内部のピクセル、即ち、非境界ピクセルは、それらが他の色のピクセルに隣接しそうでないので、「一定の色」領域のピクセルとして考慮されることができる。
【００２７】
いくつかの実施例では、図４に示される典型的な方法は、トラッピング領域の検索領域を最適化するために、与えられたディスプレイリストのオブジェクトの適当な非定値の色領域に関する情報を利用することができる。一定の色領域は通常トラッピングされない。したがって、トラッピング検索領域から一定色の領域を除去することは、トラッピングのためにチェックされるピクセル数を減少することができる。いくつかの実施例中で、トラッピング候補の検索領域の削減を可能にするトラッピングアルゴリズムに先立って、非定値の(あるいは一定の)色領域を識別する機構は、トラッピング領域を示すために使用されることができる。いくつかの実施例では、１以上のフラグが、１つのピクセルに関係してもよく、且つ、ピクセルがトラッピングの候補として含まれている尤度を増加させるか減少させるピクセル特性を示すために使用されることができる。例えば、１つの実施例では、ピクセルが非定値又は一定の色であるかどうか示すために、フラグが使用されることができる。
【００２８】
典型的なフローチャート４００のステップ４３０において、フラグ・セッティング・ルーチンは、ラスタ化の際に１つの実施例において、または、フレーム・バッファー３５０におけるデータのラスタ化の直前に他の実施例において、実行されることができる。ステップ４３０において、ディスプレイリスト３２５のオブジェクトは処理されることができる。また、値はオブジェクトに対応するピクセルに関連したフラグのためにセットされることができる。いくつかの実施例では、各フラグはユニークなピクセルに関係していてもよい。また、各フラグは、ソース、(テキスト、グラフィックス、グラディエント、画像、etc.のような)クラスタイプ、ペイントされ(あるいはペイントされていない)、一定の(あるいは非定値の)色、または、そのピクセルに関する他のそのような情報(しかし、これらに制限されない)のような情報を示すために使用されることができる。
【００２９】
いくつかの実施例では、各フラグは、ピクセルに関連した情報を含めるように各ビットが使用されることができる複数のビットをさらに含むことができる。例えば、各フラグは、２ビット(b１b０)を含むことができる。b０はピクセルがペイントされた(またはペイントされていない)かどうかを示すことができ、b１はピクセルが非定値の色(あるいは一定の色)であるかどうか示すことができる。各オブジェクトがステップ４３０で処理されるとき、ペイントされた場合そのオブジェクトに対応するピクセルにフラグを立てることができ、対応するペイントされたフラグb０は真として設定されることができる。同様に、オブジェクトにおいて境界ピクセルに関連したフラグの適切なビットは、それらが非定値の色フラグb１を真に設定することにより示されることができる非定値の色を有することを示すために最初に設定されることができる。
フラグにおいてビットを再設定することはビットの値にロジック「０」を割り当てる一方で、フラグにおいてビットを設定することはロジック「１」をビットの値に割り当てる。一般に、複数のマルチ・ビット・フラグは、様々な他の条件、およびオブジェクト関連パラメーターを示すために、与えられたピクセルに関係していることができる。しかしながら、記述の容易さのために、実施例はフレーム・バッファーにおけるピクセルがオブジェクトに関係しているかどうかを示すペイントされたフラグおよび異なる色の少なくとも１つのピクセルにピクセルが隣接するかどうかを示すことができる非定値のフラグに関して記述される。「ペイントされた」ビットを設定することは、フラグに関連したピクセルがペイントされたことを示すことができる。同様に、「非定値の」ビットを設定することは、フラグに関連したピクセルが非定値の色の領域内に存在することまたは非定値の色の領域に隣接して存在することを示すことができる。いくつかの実施例では、フレーム・バッファーにおける各ピクセルは別個のペイントされたフラグおよびピクセルに関係した別個の非定値のフラグを有することができる。
【００３０】
いくつかの実施例に、各オブジェクトがステップ４３０で処理されるとき、オブジェクトに対応するピクセルに関連したフラグは、メモリ１７２に物理的に配置される典型的なオブジェクトフラグバッファー４５５のようなオブジェクトフラグバッファーに格納されることができる。いくつかの実施例では、フラグ・バッファー４５５におけるフラグとフレーム・バッファー３５０におけるピクセルとの間で一対一対応であることができる。いくつかの実施例では、フラグ・バッファー４５５は１以上の２次元アレイとして実行されることができる。いくつかの実施例では、フラグ・バッファー４５５は、フレーム・バッファー３５０における位置がフラグ・バッファー４５５における位置と直接関連することができるように、フレーム・バッファー３５０と同じジオメトリーで構成されてもよい。いくつかの実施例では、フラグ・バッファー４５５は、フレーム・バッファー３５０と論理上離れていてもよい。また、各ピクセルはフラグ・バッファー４５５において適切な位置に書き込まれたフラグが割り当てられてもよい。
【００３１】
前に説明されたように、ディスプレイリスト３２５は複数のオブジェクトを含んでいてもよい。ディスプレイリスト３２５における各オブジェクトがラスタ化されるとき、ステップ４３０において、オブジェクトに対応するピクセルに関連した(フラグ・バッファー４５５における)ペイントされたフラグは真としてセットされることができる。さらに、オブジェクト境界上にあるピクセルに関連した非定値の色フラグは、「１」または(非定値の色を示す)真として設定されることができる。また、オブジェクト境界(非境界ピクセル)に関連しなかったピクセルの非定値の色フラグは、論理的な「０」または(一定の色を示す)偽を割り当てられることができる。
【００３２】
フレーム・バッファー３５０におけるピクセルに関連したフラグの典型的な図表の実例は、図４において示される。図４に示されるように、グラフィック・オブジェクト４６０はフレーム・バッファー３５０においてペイントされる。オブジェクト４６０の境界上にあるピクセルに関連した非定値の色フラグは、フラグ・バッファー４５５において、暗い隣接した領域４７０によって示されたように、真に設定される。図４において示されるように、領域４７０は、オブジェクト４６０に関連した「一定の色」としてフラグが立てられたピクセル間の１つのピクセル境界を形成することができ、且つ、任意の他の外部表示はオブジェクト４６０のすぐ近くに隣接しているかもしれないオブジェクトに関連した任意のピクセルをリストすることができる。さらに、フラグ・バッファー４５５において、ライター・インテリア領域４７５で示されるように、非境界ピクセルに関連した非定値の色フラグは論理的な「０」あるいは「偽」の値を割り当られることができる。
【００３３】
ある場合には、オブジェクトがフレーム・バッファー３５０に配置される場合、オブジェクトに関連したピクセルは、フレーム・バッファー３５０における１以上のオブジェクトの部分へすぐ近くに隣接し、または、フレーム・バッファー３５０における１以上のオブジェクトの部分を既にオーバーラップしてもよい。いくつかの実施例において、現在処理されているオブジェクトがフレーム・バッファー３５０において他の以前に処理されたオブジェクトとオーバーラップする場合、２つのオーバーラップするオブジェクトと関係のあるピクセルに関連したフラグが変更されてもよい。フラグ変更の性質は、生じるオーバーラップのタイプに依存してもよい。
【００３４】
例えば、非透明または不透明なオブジェクトが、フレーム・バッファー３５０における１以上の先のオブジェクト上に覆われる場合、新しく置かれたオブジェクトのピクセルが任意の下にあるオーバーラップするピクセルも完全に不透明にするので、オペレーションは不透明なオペレーションと名付けられる。言いかえれば、それがフレーム・バッファー３５０に書き込まれているとき、オブジェクトに共通のすべてのピクセルは、カレントオブジェクトのピクセル値になるであろう。同様に透明オブジェクトが、フレーム・バッファー３５０における１以上の先のオブジェクト上に覆われる場合、オペレーションは非不透明なオペレーションと名付けられる。非不透明なオペレーションでは、任意の共通のピクセルの終値がピクセル値の畳み込みであるように、ピクセル値は混合される。いくつかの実施例では、ディスプレイリスト３２５は、オブジェクトが不透明か非不透明かどうか示す情報を含むことができる。
【００３５】
いくつかの実施例では、任意のオーバーラップするピクセルに関連したフラグ値は、フレーム・バッファー３５０に置いたオブジェクトが不透明または非不透明であるかに依存する異なる値をとってもよい。いくつかの実施例では、ステップ４３０のフラグ・セッティング・ルーチンは、オブジェクトに関係する不透明および/または非不透明な情報を利用し、対応するピクセルに適切に関連したフラグを修正することができる。いくつかの実施例では、不透明なオペレーション中に、オーバーラップするオブジェクトと関係するピクセルに関連したフラグは、新しい(覆う)不透明なオブジェクトに関連したピクセルの対応するフラグ値で上書きされることができる。いくつかの実施例では、非不透明なオペレーション中に、新しい(覆う)オブジェクトと関係するピクセルに関連したフラグ値は、フラグ・バッファー４５５においてそれらのピクセルに関連した、任意の対応する先のフラグ値で論理上「OR」されることができる。
【００３６】
いくつかの実施例では、フレーム・バッファー３５０へディスプレイリスト３２５からのオブジェクトをレンダリングするときに、オブジェクトによってペイントされたピクセルに関連したフラグは処理され、それらの値はフラグ・バッファー４５５において設定されてもよい。例えば、オブジェクトをレンダリングする場合、座標(x、y)でのピクセルがフレーム・バッファー３５０においてペイントされれば、その後、フラグ・バッファー４５５における対応するフラグ(x、y)は、ピクセルに関連したフラグ値に設定されることができる。オブジェクトが不透明な場合、その後、フラグ(x、y)がオブジェクトに関連したフラグの値をとってもよい。オブジェクトが非不透明な場合、フラグ(x、y)が、「(新しい)フラグ(x、y)=(既存)フラグ(x、y) OR (オブジェクト)フラグ(x、y)」として、得られてもよい。ここで、「OR」は、論理的な「OR」演算子である。
【００３７】
ステップ４４０において、フラグ解析ルーチンはトラッピングに対する候補であるピクセルを識別するためにフラグ・バッファー４５５およびフレーム・バッファー３５０を解析するために使用されることができる。トラッピングの候補として識別されたピクセルは、標準トラッピングアルゴリズムを使用して、ステップ３６０で処理されることができる。いくつかの実施例では、ステップ４４０のフラグ解析ルーチンはステップ３６０おけるトラッピングアルゴリズムの一部として含まれていてもよい。
【００３８】
図５は、フレーム・バッファー３５０におけるピクセルに関連したフラグを設定する典型的な方法を図示するフローチャート５００を示す。いくつかの実施例では、フローチャート５００における方法は、ステップ４３０のフラグ・セッティング・ルーチンの一部として実行されてもよい。アルゴリズムは、ディスプレイリスト３２５に由来したオブジェクトストリームからのオブジェクトの処理により、ステップ５１０で始まることができる。
【００３９】
ステップ５２０において、オブジェクトに対応するピクセルに関連したフラグ(ペイントされたフラグと非定値のフラグの両方)の値は設定されることができる。いくつかの実施例では、ステップ５２０において、オブジェクトに対応するピクセルに関連した、ペイントされたフラグは、ピクセルがペイントされたことを示す真として設定されることができる。さらに、非定値の色を示す真として、オブジェクトに関連した境界ピクセルの非定値のフラグは設定されることができる。次に、(一定の色を示す偽として、非境界ピクセルに関連した非定値のフラグは設定されることができる。
【００４０】
ステップ５３０において、オブジェクトに関連したパラメーターはオブジェクトが不透明かどうか判断するために、チェックされることができる。オブジェクトが不透明な場合(「YES」)、その後、ステップ５４０において、(図４で説明されたような)不透明なオペレーションが行なわれ、オブジェクトに対応するピクセルに関連したフラグはフラグ・バッファー４５５に書き込まれることができる。ステップ５３０において、オブジェクトが非不透明である場合(「NO」)、その後、ステップ５５０において、(図４で既に説明されたような)非不透明なオペレーションが行なわれ、オブジェクトに対応するピクセルに関連したフラグがフラグ・バッファー４５５に書き込まれることができる。ステップ５６０において、オブジェクトはフレーム・バッファー３５０にレンダリングされることができる。
【００４１】
図６a、６bおよび６cは、不透明オペレーション、非不透明オペレーションがグラフィック・オブジェクト上で行なわれるとき、ピクセルに関連したフラグへの変更の典型的な図である。図６aで示されるように、一定の色オブジェクト６１０は、フレーム・バッファー３５０の空き領域でペイントされる。オブジェクト６１０の境界上にあるピクセルに関連した非定値の色フラグは、フラグ・バッファー４５５において、暗い隣接した領域６１５によって示されたように、真に設定される。さらに、非境界ピクセルに関連した非定値の色フラグは、フラグ・バッファー４５５におけるライター・インテリア領域６１７によって示されるように、「偽」として割り当てられることができる。図６aで示されるように、領域６１５は、オブジェクト６１０に関連した一定の色ピクセル間の１つのピクセル境界またはすぐ近くに隣接し若しくはオブジェクト６１０の部分を覆うかもれない他のディスプレイリストオブジェクトに関連した一定の色ピクセルを形成することができる。
【００４２】
図６bは、フレーム・バッファー３５０において、オブジェクト６１０の上に置かれた新しい不透明な一定の色オブジェクト６２０に関連したピクセルを表す。オブジェクト６１０および６２０のオーバーラップはオーバーラップする共通領域６３０を作る。
図６bにおいて示されたように、オブジェクト６２０の境界上にあるピクセルに関連した非定値の色フラグは、フラグ・バッファー４５５中の暗い隣接した領域６２５によって示されたように、真に設定される。さらに、図６bにおいて示されるように、非境界ピクセルに関連した非定値の色フラグは、フラグ・バッファー４５５におけるライター・インテリア領域６２７によって示されたように、再設定されることができる。「非定値」として以前にマークされた(つまり、非定値のフラグがセットされた)領域６２７におけるいくつかのピクセルが、不透明なオブジェクト６２０を覆う内部にあるピクセルに相当するとき、再設定されていることに注目してください。
図６bに示されるように、領域６１５および６２５はオブジェクト６１０に関連した一定の色ピクセルと、オブジェクト６２０に関連した一定の色ピクセルとの間の１つのピクセル境界を形成する。さらに、領域６３０におけるピクセルに関連したフラグ値は、新しく置かれた不透明なオブジェクト６２０に関連したフラグ値の使用により得られて、任意の先の値に上書きされることができる。
【００４３】
図６cはフレーム・バッファー３５０において、オブジェクト６１０上に置かれ、フラグ・バッファー４５５においてフラグ値に関連している非不透明な一定の色オブジェクト６４０を表す。図６cにおいて示されるように、フラグ・バッファー４５５において、暗い隣接した領域６１５および６４５によって示されたように、一方のオブジェクト上の境界に関連したピクセルのフラグ値が設定される。さらに、非境界ピクセルに関連した非定値の色フラグは、フラグ・バッファー４５５におけるライター・インテリア領域６１７および６４７によって示されたように、論理的な「０」値が割り当てられる。ピクセルに関連したフラグ値は、フレーム・バッファーにおいて、対応するピクセルの既存のフラグ値に新しく置かれたオブジェクトにおけるピクセルに関連したフラグ値を論理的に「OR」することによって、非不透明なオペレーション中に保存されてもよい。
【００４４】
図７は、いくつかの開示された実施例と一致するステップ４４０において実行されることができるフラグ解析ルーチンに含まれるステップを図示する典型的なフローチャート７００を示す。アルゴリズムは、フレーム・バッファー３５０およびフラグ・バッファー４５５においてデータへアクセスすることにより、ステップ７１０で始まることができる。ステップ７２０において、フレーム・バッファー３５０におけるピクセルに関連したフラグは読込まれることができる。ステップ７２５において、ピクセルに関連したペイントされたフラグはチェックされることができる。ステップ７２０において、ペイントされたフラグが偽の場合、新しいピクセルに関連したフラグはフラグ・バッファー４５５から読込まれることができる。ピクセルに関連したペイントされたフラグがセットされていない場合、その後、そのピクセルは、フレーム・バッファー３５０におけるどのオブジェクトにも相当せず、それ故に、トラッピング目的のために無視されてもよい。
【００４５】
ステップ７２５において、ペイントされたフラグが真の場合、その後、ステップ７３０において、ピクセルの非定値のフラグはチェックされることができる。ピクセルの非定値のフラグが真の場合、 ステップ７５０において、ピクセルは、トラッピングの候補として選択されることができる。ステップ７３０において、非定値のフラグが偽として設定される場合、その後、ステップ７２０において、新しいピクセルに関連したフラグが、フラグ・バッファー４５５から読込まれる。いくつかの実施例では、ステップ７５０で選択されたピクセルは、ステップ３６０のトラッピングアルゴリズムに送られてもよく、トラッピングは選択されたピクセルのためにのみ計算されることができる。
【００４６】
いくつかの実施例では、上記のプロセスを導くためのプログラムは、コンピューター読取可能な媒体１５０またはコンピューター読取可能なメモリ上で記録されることができる。これらは、セキュアディジタル(SD)メモリーカード、コンパクトフラッシュ（登録商標）、スマートメディア（登録商標）、メモリースティック（登録商標）および同種のもののような、読み取り専用メモリ(ROM)、プログラマブル読み取り専用メモリ(PROM)、フラッシュ・メモリー、不揮発性ランダムアクセスメモリ(NVRAM)またはディジタルメモリ・カードを含んでいるが、これらに制限されない。いくつかの実施例では、１つ以上のタイプのコンピューター読取可能な媒体はプリンター１７０につながれてもよい。ある実施例では、システム、方法および開示された構造を実行するプログラムの部分は、ネットワーク１４０上に伝えられてもよい。
【００４７】
本発明の他の実施例は、ここに開示された発明の１以上の実施例の仕様および手段の考察から当業者に明らかになるであろう。以下のクレームによって示されている発明の真の範囲および精神で、典型的なものとしてだけ仕様と例が考慮されることが意図される。
【図１】
2010089503.tif 000002
【図２】
2010089503.tif 000003
【図３】
2010089503.tif 000004
【図３Ａ】
2010089503.tif 000005
【図３Ｂ】
2010089503.tif 000006
【図３Ｃ】
2010089503.tif 000007
【図４】
2010089503.tif 000008
【図５】
2010089503.tif 000009
【図６ａ】
2010089503.tif 000010
【図６ｂ】
2010089503.tif 000011
【図６ｃ】
2010089503.tif 000012
【図７】
2010089503.tif 000013
【外国語明細書】
2010089503000001.pdf
2010089503000002.pdf
2010089503000003.pdf
2010089503000004.pdf