(57)【要約】      （修正有）【課題】フレームバッファ画素に関連付けられたフラグの第一ビットよりトラッピングするフレームバッファ画素の特定が可能になる。【解決手段】フレームバッファの画素７１０に関連付けられるフラグ７２０を用いることによって、トラッピングする画素の指標となりうる。画素が色付きである場合（７２５のＹｅｓ）、画素の明度値が明度閾値を超えなければ、画素に関連付けられるフラグのビットは設定されうる。当該方法はラスタライゼーション処理を通じてビットの数値を書き換える処理を開示する。画素は、トラッピング時の少なくとも一つのビットの数値に基づいて、トラッピング候補として特定されうる。【選択図】図７
2010200303.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも一つのフラグを少なくとも一つのフレームバッファ画素と関連付けることによって、トラッピング候補として、少なくとも一つのディスプレイリストオブジェクトに関連付けられた前記少なくとも一つのフレームバッファ画素を特定するコンピュータによって実行される方法で、次のコンピュータによって実行されるステップを含む方法であって、
前記少なくとも一つのフレームバッファ画素をフレームバッファにレンダリングする際に、前記少なくとも一つのフラグの第一ビットの数値を算出するステップで、
前記少なくとも一つのフレームバッファ画素の明度値が明度閾値を超えずかつ前記オブジェクトが不透明である場合に、前記少なくとも一つのフラグの前記第一ビットを設定するステップと、
前記少なくとも一つのフレームバッファ画素の前記明度値が明度閾値を超えかつ前記オブジェクトが不透明である場合に、前記少なくとも一つのフラグの前記第一ビットを再設定するステップと、
前記少なくとも一つのフレームバッファ画素の混合された明度値が明度閾値を超えずかつ前記オブジェクトが非不透明である場合に、前記少なくとも一つのフラグの前記第一ビットを設定するステップと、
前記少なくとも一つのフレームバッファ画素の前記混合された明度値が明度閾値を超えかつ前記オブジェクトが非不透明である場合に、前記少なくとも一つのフラグの前記第一ビットを再設定するステップと、
を含むステップと、
前記少なくとも一つのフレームバッファ画素に関連付けられた前記フラグの前記第一ビットが設定された場合に、前記少なくとも一つのフレームバッファ画素をトラッピング候補として特定するステップと、
を含む方法。
【請求項２】
前記少なくとも一つのフラグは、フラグバッファに格納されている請求項１に記載の方法。
【請求項３】
前記明度閾値は、ユーザにより選択可能である請求項１に記載の方法。
【請求項４】
前記混合された明度値は前記少なくとも一つのフレームバッファ画素の現在値と前記少なくとも一つのディスプレイリストオブジェクトの対応する画素の数値とを畳み込みにより演算する請求項１に記載の方法。
【請求項５】
前記フラグバッファは少なくとも一つの二次元配列として実現される請求項２に記載の方法。
【請求項６】
前記フラグバッファは前記フレームバッファと同じ配列により構成される請求項２に記載の方法。
【請求項７】
前記フラグバッファは前記フレームバッファと論理的に別個である請求項２に記載の方法。
【請求項８】
前記フラグバッファの前記少なくとも一つのフラグは前記フレームバッファの前記少なくとも一つのフレームバッファ画素と一対一の対応関係にある請求項２に記載の方法。
【請求項９】
前記方法は前記少なくとも一つのディスプレイリストオブジェクトのラスタライゼーションの間に実行される請求項１に記載の方法。
【請求項１０】
前記方法は前記少なくとも一つのディスプレイリストオブジェクトのフレームバッファへのレンダリングとの協働により実行される請求項１に記載の方法。
【請求項１１】
前記方法はコンピュータ及び印刷装置のうちの一以上において実行される請求項１に記載の方法。
【請求項１２】
少なくとも一つのフラグを少なくとも一つのフレームバッファ画素と関連付けることによって、トラッピング候補として、少なくとも一つのディスプレイリストオブジェクトに関連付けられた前記少なくとも一つのフレームバッファ画素を特定する方法のステップを実行するプロセッサによって実行される命令を含むコンピュータ読取可能な媒体であって、コンピュータによって実行されるステップを含む前記方法は、
前記少なくとも一つのフレームバッファ画素をフレームバッファにレンダリングする際に、前記少なくとも一つのフラグの第一ビットの数値を算出するステップで、
前記少なくとも一つのフレームバッファ画素の明度値が明度閾値を超えずかつ前記オブジェクトが不透明である場合に、前記少なくとも一つのフラグの前記第一ビットを設定するステップと、
前記少なくとも一つのフレームバッファ画素の前記明度値が明度閾値を超えかつ前記オブジェクトが不透明である場合に、前記少なくとも一つのフラグの前記第一ビットを再設定するステップと、
前記少なくとも一つのフレームバッファ画素の混合された明度値が明度閾値を超えずかつ前記オブジェクトが非不透明である場合に、前記少なくとも一つのフラグの前記第一ビットを設定するステップと、
前記少なくとも一つのフレームバッファ画素の前記混合された明度値が明度閾値を超えかつ前記オブジェクトが非不透明である場合に、前記少なくとも一つのフラグの前記第一ビットを再設定するステップと、
を含むステップと、
前記少なくとも一つのフレームバッファ画素に関連付けられた前記フラグの前記第一ビットが設定された場合に、前記少なくとも一つのフレームバッファ画素をトラッピング候補として特定するステップと、
を含むコンピュータ読取可能な媒体。
【請求項１３】
前記少なくとも一つのフラグは、フラグバッファに格納されている請求項１２に記載のコンピュータ読取可能な媒体。
【請求項１４】
前記フラグバッファは前記フレームバッファと同一の配列により構成される請求項１３に記載のコンピュータ読取可能な媒体。
【請求項１５】
前記混合された明度値は前記少なくとも一つのフレームバッファ画素の現在値と前記少なくとも一つのディスプレイリストオブジェクトの対応する画素の数値とを畳み込みにより演算する請求項１２に記載のコンピュータ読取可能な媒体。
【請求項１６】
前記方法は前記少なくとも一つのディスプレイリストオブジェクトのフレームバッファへのレンダリングとの協働により実行される請求項１２に記載のコンピュータ読取可能な媒体。
【請求項１７】
少なくとも一つのフラグを少なくとも一つのフレームバッファ画素と関連付けることによって、トラッピング候補として、少なくとも一つのディスプレイリストオブジェクトに関連付けられた前記少なくとも一つのフレームバッファ画素を特定する方法のステップを実行するプロセッサを制御する命令を含むコンピュータ読取可能なメモリであって、コンピュータによって実行される前記方法は、
前記少なくとも一つのフレームバッファ画素をフレームバッファにレンダリングする際に、前記少なくとも一つのフラグの第一ビットの数値を算出するステップで、
前記少なくとも一つのフレームバッファ画素の明度値が明度閾値を超えずかつ前記オブジェクトが不透明である場合に、前記少なくとも一つのフラグの前記第一ビットを設定するステップと、
前記少なくとも一つのフレームバッファ画素の前記明度値が明度閾値を超えかつ前記オブジェクトが不透明である場合に、前記少なくとも一つのフラグの前記第一ビットを再設定するステップと、
前記少なくとも一つのフレームバッファ画素の混合された明度値が明度閾値を超えずかつ前記オブジェクトが非不透明である場合に、前記少なくとも一つのフラグの前記第一ビットを設定するステップと、
前記少なくとも一つのフレームバッファ画素の前記混合された明度値が明度閾値を超えかつ前記オブジェクトが非不透明である場合に、前記少なくとも一つのフラグの前記第一ビットを再設定するステップと、
を含むステップと、
前記少なくとも一つのフレームバッファ画素に関連付けられた前記フラグの前記第一ビットが設定された場合に、前記少なくとも一つのフレームバッファ画素をトラッピング候補として特定するステップと、
を含むコンピュータ読取可能なメモリ。
【請求項１８】
前記少なくとも一つのフラグは、フラグバッファに格納されている請求項１７に記載のコンピュータ読取可能なメモリ。
【請求項１９】
前記フラグバッファは前記フレームバッファと同一の配列により構成される請求項１８に記載のコンピュータ読取可能なメモリ。
【請求項２０】
前記フラグバッファは前記フレームバッファと論理的に別個である請求項１８に記載のコンピュータ読取可能なメモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は印刷の分野に関し、特に、印刷装置においてトラッピングの最適化を実行するためのシステム及び方法に関する。
【背景技術】
【０００２】
カラープリンタによって生成される画素は通常複数のカラープレーンからの色によって構成される。例えば、シアン、マゼンタ、イエロー及びブラック（「ＣＭＹＫ」）を用いるカラープリンタの場合、一つの画素は四つのカラープレーンのうちの一以上のものからの色を含むことができる。構成するカラープレーンの色を異なる強度で組み合わせることによりプリンタにおいて幅広く色を作成することができる。画素を構成する色成分は互いに重ねて又は非常に近接して印刷されることが理想的である。しかし、プリントエンジンのずれ、用紙の伸張、又はその他の機械的な精度不足に起因する位置ずれにより、一つの画素を構成する構成カラープレーンは適切に重ならず、その結果、ページ上の異なる色の領域の間に見苦しい小さな白い隙間、又は黒領域に色エッジが生じる。位置ずれを修正するにはトラッピングと称される技術を用いることが一般的であり、トラッピングとは色の領域をわずかに拡大又は縮小することによって白い隙間及び／又は図形オブジェクトの間の色エッジをなくすことである。トラッピングにより色が分離した部分に色の領域が挿入され、位置ずれによる視覚上の影響が隠される。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
トラッピングは多くの場合ラスタに基づくトラッピングを用いて実行されるが、このような処理には複数のカラープレーンに潜在的に及ぶフレームバッファのデータを用いてオブジェクトの境界を検出するという計算コストの高い工程が含まれる。計算上のコストが生じる主な理由は、トラッピングが画素毎に行われることによる。トラッピングが実行される場合、色は通常トラッピング領域内のより高い明度の画素から当該領域のより低い明度の画素へ流れる。よって、画素の明度とトラッピング領域内における画素の色への寄与を判断するのに大幅な中間処理が行われうる。
【０００４】
例えば、ＣＭＹＫ色モデルを用いた横＝縦＝１の比較的小さな３×３ピクセルの領域におけるラスタに基づくトラッピングの実行でさえ、少なくとも３６ピクセル値（４つの平面上の９ピクセル）のメモリの場所を確認し比較することが必要となる。計算上のコストは画素毎の総当りでのアプローチと大きく関係するため、潜在的なトラッピング候補として処理される画素数を減らすことによって、計算コストの大幅な減少を実現しうる。よって、画素に基づくラスタトラッピングの最適化を提供することによりトラッピングに関する計算上のコストを減らすシステム及び方法が必要となる。
【課題を解決するための手段】
【０００５】
本発明による実施形態には、少なくとも一つのフレームバッファ画素をトラッピング候補として特定する方法が開示される。いくつかの実施形態においては、少なくとも一つのディスプレイリストオブジェクトと関連付けられる少なくとも一つのフレームバッファ画素をトラッピング候補として特定する方法において、少なくとも一つのフラグをフレームバッファ画素と関連付け、フレームバッファ画素をフレームバッファにレンダリングする際にフラグの第一ビットの数値を算出しうる。算出にはフレームバッファ画素の明度値が明度閾値を超えずかつオブジェクトが不透明である場合に、フラグの第一ビットを設定することを含みうる。フレームバッファ画素の明度値が明度閾値を超えかつオブジェクトが不透明である場合に、フラグの第一ビットを再設定しうる。非不透明ディスプレイリストオブジェクトについては、フレームバッファ画素の混合された明度値が明度閾値を超えない場合はフラグの第一ビットは設定され、フレームバッファ画素の混合された明度値が明度閾値を超える場合はフラグの第一ビットは再設定されうる。少なくとも一つのフレームバッファ画素に関連付けられたフラグの第一ビットが設定された場合、当該フレームバッファ画素はトラッピング候補として特定されうる。
【０００６】
また、実施例は、コンピュータ読取可能なメディア又はコンピュータ読取可能なメモリを用いるプロセッサによって作成、格納、アクセス、又は修正されるソフトウェア、ファームウェア及びプログラム命令に関する。説明される方法はコンピュータ及び／又は印刷装置上で実行しうる。
【０００７】
これら及びその他の実施例について添付の図面を参照しながら詳細に説明する。
【図面の簡単な説明】
【０００８】
【図１】図１は、本発明のいくつかの実施形態に基づく文書を印刷するシステムの構成要素を示すブロック図を図示している。
【図２】図２は、例示的なプリンタの高水準ブロック図を図示している。
【図３】図３は、ラスタイメージプロセッサによって用いられるフレームバッファのデータに実行されるトラッピングの従来の方法におけるステップを示す例示的なフローチャートを図示している。
【図４】図４は、トラッピング最適化の方法におけるステップを示す例示的なフローチャートを図示している。
【図５】図５は、フレームバッファの画素に関連付けられるフラグを設定する例示的な方法を示すフローチャートを図示している。
【図６】図６Ａ、図６Ｂ、図６Ｃ及び図６Ｄは、図形オブジェクトに不透明及び非不透明処理が実行される場合、画素に関連付けられた色付きフラグへの変更を例示的に図示している。
【図７】図７は、画素に関連付けられたフラグを解析する例示的方法を示すフローチャートを図示している。
【発明を実施するための形態】
【０００９】
本発明の様々な特徴が反映される実施形態に基づいて、第一印刷可能データから生成された第二印刷可能データ又は中間形式の印刷可能データを用いてトラッピングを実行するシステム及び方法が提供される。いくつかの実施形態においては、第一印刷可能データは文書のＰＤＬ記述の形式を取り、中間印刷可能データは当該ＰＤＬ記述から生成されたオブジェクトのディスプレイリストの形式を取ることができる。
【００１０】
図１は、例示的な文書印刷システムにおける構成要素を示すブロック図である。トラッピングを実行するアプリケーションは、図１に示すような、従来からの通信プロトコル及び／又はデータポートインターフェイスを用いて情報をやりとりする通信リンクを通じて接続されるコンピュータと印刷装置のネットワークに導入することができる。
【００１１】
図１に示すように、例示的なシステム１００は、コンピューティングデバイス１１０と、サーバ１３０とを備えるコンピュータを含む。コンピューティングデバイス１１０とサーバ１３０は接続１２０を通じて通信することができ、これはネットワーク１４０を介することができる。コンピューティングデバイス１１０は、コンピュータワークステーション、デスクトップパソコン、ノートパソコン、又はネットワーク化された環境で用いることができるその他のあらゆるコンピューティングデバイスにより構成することができる。サーバ１３０は、コンピューティングデバイス１１０及びその他のデバイス（図示せず）に接続することができるプラットフォームにより構成することができる。コンピューティングデバイス１１０及びサーバ１３０はプリンタ１７０を用いて文書を印刷するためのソフトウェア（図示せず）を実行することができる。
【００１２】
コンピューティングデバイス１１０及び／又はサーバ１３０で実行される文書処理ソフトウェアによって、ユーザは文書を便利に閲覧、編集、処理及び保存することができる。文書内の印刷されるページはページ記述言語（ＰＤＬ）によって記述することができる。ＰＤＬには、ＰｏｓｔＳｃｒｉｐｔ（登録商標）、Ａｄｏｂｅ（登録商標）ＰＤＦ、ＨＰ（登録商標）ＰＣＬ、Ｍｉｃｒｏｓｏｆｔ（登録商標）ＸＰＳ、及びこれらの変形例が含まれうる。文書のＰＤＬ記述によって、文書内の各ページについて高水準の記述が提供される。多くの場合、このＰＤＬ記述は文書が印刷される際に各プリンタ固有のより低水準の一連のコマンドに翻訳される。
【００１３】
ＰＤＬからより低水準のプリンタ固有のコマンドへの翻訳処理は、複雑である場合があるが、例示的プリンタ１７０によって提供される特徴及び性能次第である。例えば、プリンタ１７０は、データを段階的に処理しうる。第一段階では、プリンタ１７０においてＰＤＬコマンドをパースし、高水準の命令を基本命令と称されるより低水準の命令に分解することができる。これらの基本命令は、例示的プリンタ１７０において続く段階へと送られ、これらを用いてページ上のマークを置く位置を決定することができる。場合によっては、各基本命令を生成すると同時に、処理しうる。他のシステムにおいては、多数の基本命令を生成、保存してから、処理しうる。例えば、ある一つのページを記述するのに必要な基本命令を生成し、リストに保存してから、処理することができる。保存された基本命令は中間リスト又はディスプレイリストと称する。
【００１４】
一般に、プリンタ１７０は、電子データから物理的文書を作成するように構成される装置を含み、このような装置にはレーザープリンタやＬＥＤプリンタ等の電子写真式プリンタ、サーマルプリンタ、レーザ撮像装置及びオフセットプリンタが含まれるが、これらに限定されない。プリンタ１７０はファクシミリ機やデジタルコピー機が備えるような画像送受信機能、画像スキャナ機能、及び／又はコピー機能を有しうる。例示的プリンタ１７０は、接続１２０を介してコンピューティングデバイス１１０又はサーバ１３０から受信した文書を直接印刷することができる。いくつかの実施形態においては、このような構成を用いて、コンピューティングデバイス１１０又はサーバ１３０による追加処理を行った上で（又は行わずに）、文書を直接印刷しうる。テキスト、図形、及び画像のうち、一以上を含む文書の処理は分散することができる。したがって、プリンタ１７０が文書を物理的に印刷する前に、コンピューティングデバイス１１０、サーバ１３０及び／又はプリンタは、ハーフトーニング、カラーマッチング、及び／又はその他の処理等の文書の印刷処理の一部を実行することができる。
【００１５】
コンピューティングデバイス１１０は取り外し可能なメディアドライブ１５０を有する。取り外し可能なメディアドライブ１５０には、例えば３．５インチフロッピーディスクドライブ、ＣＤ−ＲＯＭドライブ、ＤＶＤ  ＲＯＭドライブ、ＣＤ±ＲＷもしくはＤＶＤ±ＲＷドライブ、ＵＳＢフラッシュドライブ、及び／又はその他のあらゆる取り外し可能なメディアドライブが含まれる。アプリケーションの一部が取り外し可能な媒体に置かれており、システム１００に従った動作に先立って、取り外し可能なメディアドライブ１５０を用いてコンピューティングデバイス１１０によって読み出される。
【００１６】
接続１２０はコンピューティングデバイス１１０、サーバ１３０及びプリンタ１７０を接続し、従来からの通信プロトコル及び／又はデータポートインターフェイスを用いた有線又は無線での接続によって実現することができる。一般に、接続１２０には各装置間のデータの送受信を行うあらゆる通信回線を用いることができる。ある実施形態においては、適切な接続を介したデータの送受信を行うため、例えば各装置に従来からあるデータポートを設け、このようなデータポートにはパラレルポート、シリアルポート、Ｅｔｈｅｒｎｅｔ、ＵＳＢ（登録商標）、ＳＣＳＩ、ＦＩＲＥＷＩＲＥ（登録商標）、及び／又は同軸ケーブルポート等が含まれる。
【００１７】
ネットワーク１４０には、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、又はインターネットが含まれうる。いくつかの実施形態においては、ネットワーク１４０上で送信される情報を暗号化して、送信されるデータのセキュリティを確保しうる。プリンタ１７０は接続１２０を介してネットワーク１４０に接続しうる。また、例示的プリンタ１７０はコンピューティングデバイス１１０及び／又はサーバ１３０に直接接続しうる。システム１００はその他の周辺機器（図示せず）を含みうる。印刷装置におけるトラッピングを実現するためのアプリケーションは、図１に示すように、例示的なコンピュータ又はプリンタのうちの一以上に置くことができる。例えば、コンピューティングデバイス１１０が、サーバ１３０から直接ダウンロードしたソフトウェアを実行して、そのアプリケーションの一部を例示的プリンタ１７０によって実行しうる。
【００１８】
図２は、例示的プリンタ１７０を示す高水準ブロック図である。例示的プリンタ１７０は、ＣＰＵ１７６と、ファームウェア１７１と、メモリ１７２と、入出力ポート１７５と、プリントエンジン１７７と、二次記憶装置１７３と、を備え、各部はバス１７４を介して互いに接続される。また、例示的プリンタ１７０は、文書の印刷又は処理のアプリケーションの一部が実行可能なその他の特定用途向けＩＣ（ＡＳＩＣ）及び／又はフィールドプログラマブルゲートアレイ（ＦＰＧＡ）１７８を有しうる。例示的プリンタ１７０はＩ／Ｏポート１７５及び接続１２０を用いてコンピューティングデバイス１１０の二次記憶装置又はその他のメモリにアクセスすることができる。いくつかの実施形態においては、プリンタ１７０はプリンタオペレーティングシステム及びその他の適切なアプリケーションソフトウェアを含むソフトウェアを実行することができる。例示的プリンタ１７０において、他のオプションのうち、用紙サイズ、出力トレイ、色の選択、及び印字解像度については、ユーザ設定可能とすることができる。
【００１９】
例示的ＣＰＵ１７６は、汎用プロセッサ、専用プロセッサ、又は組み込みプロセッサであることできる。ＣＰＵ１７６は、メモリ１７２及び／又はファームウェア１７１と制御情報及び制御命令を含むデータのやりとりをすることができる。メモリ１７２は、あらゆる種類のダイナミックランダムアクセスメモリ（ＤＲＡＭ）であることができ、ＳＤＲＡＭ又はＲＤＲＡＭ等が含まれるがこれらに限定されない。ファームウェア１７１は命令及びデータを含むことができ、これらには起動シーケンス、画像処理、トラッピング、及び文書処理に関するルーチン等のあらかじめ設定されたルーチン、並びにその他のコードが含まれるがこれらに限定されない。いくつかの実施形態においては、ＣＰＵ１７６によって実行される前に、ファームウェア１７１のコード及びデータはメモリ１７２にコピーされてもよい。ファームウェア１７１のルーチンには、コンピューティングデバイス１１０から受信したページ記述をディスプレイリストに翻訳するコードが含まれうる。いくつかの実施形態においては、ファームウェア１７１はディスプレイリストのディスプレイコマンドを適切にラスタライズされたビットマップに変換して、当該ビットマップをメモリ１７２に保存するラスタライゼーションルーチンを含むことができる。ファームウェア１７１は、圧縮、トラッピング及びメモリ管理ルーチンを含むことができる。ファームウェア１７１に含まれるデータ及び命令は、コンピュータ１１０、ネットワーク１４０、プリンタ１７０に接続された取り外し可能な媒体、及び／又は二次記憶装置１７３のうち一つ以上を用いてアップグレードすることができる。
【００２０】
例示的ＣＰＵ１７６は命令及びデータに従って動作し、ＡＳＩＣ／ＦＰＧＡ１７８及びプリントエンジン１７７を制御し、これらにデータを提供して、印刷された文書を生成しうる。また、ＡＳＩＣ／ＦＰＧＡ１７８はプリントエンジン１７７を制御し、これにデータを提供しうる。ＦＰＧＡ／ＡＳＩＣ１７８は翻訳、トラッピング、圧縮及びラスタライゼーションアルゴリズムのうちの一以上を実行しうる。
【００２１】
例示的コンピューティングデバイス１１０において、文書データを第一印刷可能データに変換しうる。いくつかの実施形態においては、第一印刷可能データは文書のＰＤＬ記述に対応しうる。そして、第一印刷可能データはプリンタ１７０に送信されて、中間印刷可能データに変換することができる。いくつかの実施形態においては、文書のＰＤＬ記述から一連の低水準のプリンタ固有のコマンドを含む最終的な印刷可能データへの変換処理には、オブジェクトのディスプレイリストを含む中間印刷可能データの生成を含みうる。ディスプレイリストはテキスト、図形及び画像データオブジェクトのうちの一以上を有し、ディスプレイリストの一以上の種類のデータオブジェクトはユーザ文書内のオブジェクトに対応しうる。
【００２２】
最終的な印刷可能データの生成を支援しうるディスプレイリストは、メモリ１７２又は二次記憶装置１７３に保存しうる。例示的二次記憶装置１７３は、内蔵もしくは外付けハードディスク、メモリスティック又はシステム２００で用いることができる、その他のあらゆる記憶装置でありうる。いくつかの実施形態においては、文書処理を行う場所に応じて、ディスプレイリストをプリンタ１７０、コンピューティングデバイス１１０、及びサーバ１３０のうちの一以上に置いて、これらの間で転送することができる。ディスプレイリストを保存するメモリは、専用メモリであるか、もしくは汎用メモリの一部を構成するか、又はこれらの組合せでありうる。いくつかの実施形態において、ディスプレイリストを有するメモリは、必要に応じて動的に割り当て、管理、及び開放しうる。プリンタ１７０は、中間印刷可能データを最終的な形式の印刷可能データに変換して、この最終的な形式に基づいて、印刷しうる。
【００２３】
図３はラスタイメージプロセッサにおいて利用されるフレームバッファのデータに、トラッピングを実行するための従来の方法のステップを図示する、例示的フローチャート３００を示す。処理はステップ３１０において、プリントジョブの開始によって始めうる。ステップ３２０において、プリントジョブデータ３１５に対して言語処理を実行することができる。いくつかの実施形態においては、言語処理は言語サーバによって実行しうる。例えば、言語サーバはＰＤＬ言語レベルのオブジェクトを用いて、これらの言語レベルのオブジェクトをデータ、画像、テキスト、及び図形オブジェクトに変換し、これらのオブジェクトをディスプレイリスト３２５に追加しうる。
【００２４】
例示的ディスプレイリスト３２５は、実際の印刷に先立つデータ処理の中間段階であり、次の形式への変換の前にパースしうる。ディスプレイリストによる表現から物理媒体への印刷に適切な形式への変換処理はデータのラスタライズ又はラスタライゼーションと呼びうる。ディスプレイリスト３２５はディスプレイリストオブジェクトについて、色、不透明度、明度、境界情報及び深度等の情報を含みうる。例えば、基本的なラスタライゼーションは、一般にポリゴンを用いて記述される三次元シーンを用いて、当該三次元シーンを二次元平面にレンダリングすることによって実現しうる。ポリゴンは三角形の集合体で表現することができる。三角形は三次元空間の三つの頂点で表現することができる。頂点はポイント、辺の終点、又は二辺が交差するポリゴンの角を定義する。よって、基本的なラスタライゼーションによって一連の頂点を、対応する二次元のポイントに変換し、変換された二次元の三角形を塗りつぶしうる。ラスタライゼーションの際には、ラスタライズされたデータは例示的フレームバッファ３５０等のフレームバッファに保存し、物理的にメモリ１７２に置きうる。プリントエンジン１７７はフレームバッファ３５０のラスタライズされたデータを処理して、用紙等の印刷媒体に当該ページの印刷可能画像を形成しうる。
【００２５】
ステップ３３０では、ラスタイメージ処理（ＲＩＰ）モジュールはディスプレイリスト３２５のオブジェクトを処理し、フレームバッファ３５０にラスタライズされたその相当物を生成しうる。いくつかの実施形態においては、ラスタイメージ処理をプリンタ１７０において実行しうる。例えば、ＣＰＵ１７６、ＡＳＩＣ／ＦＰＧＡ１７８、メモリ１７２及び／又は二次記憶装置１７３のうちの一以上を用いてラスタイメージ処理をプリンタ１７０において実行しうる。ソフトウェア、ファームウェア、及び／又はＡＳＩＣ／ＦＰＧＡ１７８等の専用ハードウェアの何らかの組合せを用いて、ラスタイメージ処理をプリンタ１７０において実行しうる。フレームバッファ３５０は、プリントエンジン１７７によって印刷媒体に印刷するのに適切な形式で、プリントオブジェクトの表現を保持しうる。
【００２６】
フレームバッファ３５０のデータには続いてステップ３６０においてトラッピングが施されうる。いくつかの公知のトラッピングアルゴリズムのうちのいずれかを用いてトラッピングを実行しうる。トラッピングされたフレームバッファ３５５には次にステップ３７０においてあらゆる追加の処理を施しうる。例えば、プリントエンジン１７７はさらに処理を実行した後にトラッピングされたフレームバッファ３５５を印刷媒体にレンダリングしうる。従来のトラッピングアルゴリズムは通常画素毎に実行されて計算コストが高くなりうるため、最適化により、計算の複雑性が低減しうる。本明細書に開示されるいくつかの実施形態においては、トラッピング領域の検索を最適化するアルゴリズムにより画素及び／又はオブジェクト特性に基づいて画素にフラグを関連付けし、画素のフラグ値を用いて、トラッピング候補を決定しうる。
【００２７】
図４はトラッピング最適化の方法の各ステップを示す例示的フローチャート４００を図示する。いくつかの実施形態においては、フローチャート４００に示される方法はステップ３３０においてラスタイメージ処理モジュールを用いて実行しうる。
【００２８】
いくつかの実施形態においては、何らかの色のオブジェクトと関連付けられた画素は「色付き画素」として識別されうる。いくつかの実施形態においては、第一ビット又はフラグを用いてある画素が色付き画素か色無し画素とされるかを示して、第二ビット又はフラグを用いて、一以上の画素特性の数値に基づいて当該画素がトラッピング目的で色付き画素か色無し画素とされるかを示しうる。よって、ある標識の数値に基づいて色付き（カラーオブジェクトと関連付けられる）とされる画素は他の標識の数値に基づいてトラッピング目的では色無しと判断されうる。例えば、本明細書に開示される最適化により第一フラグでは当該画素が色付きと示されるのに対し、第二フラグでは当該画素がトラッピング目的で色無しと示される画素について、トラッピング候補として画素を除外するのに用いうる。
【００２９】
注目すべき点は、トラッピングアルゴリズムでは通常、印刷ページの「白」又は空白部分に対応する色無しとされる画素を考慮しない点である。トラッピング候補は色付き画素から挙がるので、トラッピングアルゴリズムにおいて色無しと示される画素は無視され、これによりトラッピングにおいて確認される画素数を減らしうる。いくつかの実施形態においては、トラッピングアルゴリズムにおいて色無しとされる色領域が示されることによってトラッピング候補を検索する領域を減らすことができる。いくつかの実施形態においては、一以上のフラグが画素特性及び／又は画素に関連付けられたオブジェクトの特性に基づいて画素に関連付けられて、当該画素がトラッピング候補に含まれる可能性を増加又は減少させる画素の特徴を示すのに用いられうる。例えば、ある実施形態においては、トラッピングアルゴリズム目的でフラグを用いて画素が「色付き」又は「色無し」とされるかを示しうる。
【００３０】
例示的フローチャート４００のステップ４３０では、ある実施形態において、フレームバッファ３５０内のデータのラスタライゼーションの際又は別の実施形態においてフレームバッファ３５０内のデータのラスタライゼーションの直前にフラグ設定ルーチンを実行しうる。ステップ４３０では、ディスプレイリスト３２５のオブジェクトは処理されて、画素に関連付けられた一以上のフラグについての数値が設定されうる。いくつかの実施形態においては、フラグは複数のビットを含み、フラグのいくらかの割合のビットを用いて画素に関連する情報を含めうる。例えば、フラグ内のビットの一つを用いて画素が色付き（又は色無し）であることを示して、他のビットを用いて（これらに限定されないが）ソース、クラスタイプ（テキスト、図形、階調度、画像、等）、トラッピング目的での色付き（又は色無し）等を示す情報及び／又は画素についてのその他の情報を示しうる。
【００３１】
説明の便宜上、「色付き」及び「色無し」という用語は以下、トラッピング目的での画素の分類を示すために用いられる。各オブジェクトはステップ４３０において処理されるので、当該オブジェクトに対応する画素は指定された画素特性に基づいて色付きとしてフラグが付され、対応する色付きフラグは真として設定しうる。例えば、フラグにビットの設定をすることによってビットの数値に論理「１」が割り当てられ、フラグにビットの再設定をすることによってビットの数値に論理「０」が割り当てられうる。一般に、複数のマルチビットフラグがあらゆる画素に関連付けられて、様々な条件、画素特性及びオブジェクトに関連するパラメータを示しうる。しかし、説明の便宜上、実施形態においては色付きフラグについて説明がされ、当該フラグはフレームバッファの画素がトラッピングアルゴリズム目的でオブジェクトと関連付けられるとされるか否かを示す。いくつかの実施形態においては、フレームバッファ内の各画素は、画素に関連付けられた明確な色付きフラグを有しうる。
【００３２】
いくつかの実施形態においては、ステップ４３０で各オブジェクトは処理されると、当該オブジェクトに対応する各画素に関連付けられるフラグは、物理的にメモリ１７２に位置しうる例示的オブジェクトフラグバッファ４５５等のオブジェクトフラグバッファに格納されうる。いくつかの実施形態においては、フラグバッファ４５５のフラグとフレームバッファ３５０の画素との間で一対一の対応関係が見られうる。いくつかの実施形態においては、フラグバッファ４５５は一以上の二次元配列で実現しうる。いくつかの実施形態においては、フレームバッファ３５０の各位置とフラグバッファ４５５の各位置が直接相関関係を有するように、フラグバッファ４５５はフレームバッファ３５０と同じ配列で構成されうる。いくつかの実施形態においては、フラグバッファ４５５はフレームバッファ３５０と論理上異なり、各画素にはフラグが割り当てられ、フラグバッファ４５５の適切な場所に書き込まれうる。
【００３３】
ディスプレイリスト３２５の各オブジェクトがラスタライズされると、ステップ４３０でオブジェクトに対応する画素に関連付けられた（フラグバッファ４５５内の）色付きフラグは当該画素に関連付けられた条件に基づいて真として設定することができる。通常ラスタバッファの画素に基づくトラッピングにおいて、色の寄与又は色の流れの方向はより高い明度の領域からより低い明度の領域に向かう。しかし、白い領域にある画素はトラッピングアルゴリズムにより無視されうる。例えば、シアン、マゼンタ、イエロー及びブラックの数値が（Ｃ，Ｍ，Ｙ，Ｋ）＝（０，０，０，０）に対応する画素Ｐ１は色無しとされ、画素Ｐ１に関連付けられた色付きフラグは書き換えられて画素Ｐ１は色無しであると示しうる。よって、画素Ｐ１は続くトラッピングアルゴリズムにおいてトラッピング候補として選択されないことがありうる。よって、画素Ｐ１は他の周辺の画素に色を寄与せず、又その周辺から色の寄与を受けないことがありうる。
【００３４】
しかし、人間の視覚の観点からは、人間の視覚では白と区別することが難しい高い明度値の範囲が存在する。よって、明度閾値を用いて白に知覚的に相当すると考えることができる画素を特定しうる。一般に、画素の明度値が明度閾値を超える場合、画素に関連付けられたフラグ又はその他の標識は書き換えられて、当該画素はトラッピングアルゴリズムにおいて色無しとされることを示しうる。他方、画素の明度が明度閾値を超えない場合、画素に関連付けられたフラグ又はその他の標識は書き換えられて、画素がトラッピングアルゴリズムにおいて色付きとされることを示しうる。いくつかの実施形態においては、明度閾値は予め定義され及び／又は指定された数値の範囲内でユーザが選択しうる。
【００３５】
いくつかの実施形態においては、画素に関連付けられた色付きフラグの数値は明度に基づいて変更されうるが、画素の色値は変更されないままのことがありうる。例えば、ラスタライゼーションの際に、色付きの画素の明度値がある明度閾値を超えるとされる場合に当該画素の色値は保持したままで、当該画素に関連付けられた色付きフラグは偽（又はトラッピング目的で色無しとされていることを示す「０」）に再設定することができる。
【００３６】
いくつかの実施形態においては、トラッピングアルゴリズムにおいて色付きフラグの数値を用いることによって、ある画素がトラッピング候補かを決定しうる。いくつかの実施形態においては、色無しと印されたフラグが関連付けられた画素はトラッピングアルゴリズムにより無視され、これによりトラッピング候補として考慮される画素数を減らしうる。トラッピングが実行される場合、トラッピングの判断において用いられる色付きフラグの数値を確認し、これを用いて当該画素がトラッピング候補か決定しうる。例えば、トラッピングの判断において用いられる色付きフラグが偽（「０」）である場合、つまり画素が色無しであることを示している場合、当該画素はトラッピングアルゴリズムにおいて無視しうる。よって、明度の計算（色の流れの方向を判断するため）及びトラッピングにおける寄与（色の寄与の量子を判断するため）の間に処理される画素数を減らすことができる。
【００３７】
いくつかの場合においては、フレームバッファ３５０にオブジェクトが置かれると、当該オブジェクトに関連付けられた画素がフレームバッファ３５０にすでに存在する一以上のオブジェクトの各部分に重ねられうる。他のオブジェクトに重ねられるオブジェクトは不透明又は非不透明でありうる。いくつかの実施形態においては、ディスプレイリスト３２５はオブジェクトが不透明か非不透明かを示す情報を含みうる。いくつかの実施形態においては、現在処理されているオブジェクトがフレームバッファ３５０の他の先に処理されているオブジェクトに重ねられる場合、二つの重ねられたオブジェクトに関連する画素に関連付けられたフラグも修正されうる。フラグ修正の内容はオブジェクト間の重なりの内容に依存しうる。
【００３８】
例えば、透明ではない又は不透明なオブジェクトがフレームバッファ３５０の一以上のすでに存在するオブジェクトに重ねられる場合、このような処理は不透明処理と称され、なぜなら新たに置かれるオブジェクトの画素により下に横たわる重ねられた画素が完全に覆い隠されることになるからである。言い換えると、現在のオブジェクトがフレームバッファ３５０に書き込まれると、各オブジェクトに共通するすべての画素は現在のオブジェクトの画素値を採用することになる。いくつかの実施形態においては、不透明処理の際に、下に横たわるオブジェクトに関する画素に関連付けられたフラグは、新たな（上に重ねられる）不透明オブジェクトに関連付けられた画素の対応するフラグ値により上書きされうる。例えば、以前色付きと印された画素が上に重ねられるオブジェクトの画素の明度値が明度閾値を超える場合には今度は色無しと印されうる。
【００３９】
同様に、透明又は部分的に透明なオブジェクトがフレームバッファ３５０の一以上の先のオブジェクトに重ねられた場合、このような処理は非不透明処理と称される。このような非不透明処理においては、共通する画素の最終値が重なり合う各オブジェクトの画素値の畳み込みとなるように画素値は混合される。いくつかの実施形態においては、非不透明処理の間、重ねられた画素に関連付けられたフラグ値は混合後の明度値に基づいて修正されうる。よって、混合処理の後の重ねられた画素の明度値は明度閾値と比較され、これを用いて画素に関連付けられた色付きフラグに数値を割り当てうる。
【００４０】
ステップ４４０において、フラグ解析ルーチンを用いてフラグバッファ４５５及びフレームバッファ３５０を解析し、トラッピング候補となる画素を特定しうる。トラッピング候補として特定される画素は、通常のトラッピングアルゴリズムを用いてステップ３６０において処理しうる。いくつかの実施形態においては、ステップ４４０のフラグ解析ルーチンはステップ３６０におけるトラッピングアルゴリズムの一部として含まれうる。
【００４１】
図５はフレームバッファ３５０の画素に関連付けられたフラグを設定する例示的な方法を図示するフローチャート５００を示す。いくつかの実施形態においては、フローチャート５００の方法はステップ４３０におけるフラグ設定ルーチンの一部として実施されうる。当該アルゴリズムはステップ５１０において開始され、ディスプレイリスト３２５から抽出される一連のオブジェクトからのオブジェクトを処理しうる。いくつかの実施形態においては、フレームバッファ３５０の画素に関連付けられたフラグバッファ４５５の色付きフラグの数値は「０」または色無しに初期化されうる。
【００４２】
ステップ５２０において現在処理されているオブジェクトに対応する画素に関連付けられた色付きフラグ（及びその他のフラグ）の数値を設定することができる。いくつかの実施形態においては、ステップ５２０において、明度閾値を超えない、オブジェクトに対応する画素に関連付けられた色付きフラグを真と設定して、画素が色付きであり、現在トラッピングの候補であることを示すことができる。
【００４３】
ステップ５３０において、オブジェクトに関連するパラメータを確認してオブジェクトが不透明か否かを判断しうる。オブジェクトが不透明の場合（「ＹＥＳ」）、次に、ステップ５４０において不透明処理が実行され、オブジェクトに対応する画素に関連付けられた色付きフラグはフラグバッファ４５５に書き込まれうる。
【００４４】
ステップ５３０において、オブジェクトが非不透明である場合（「ＮＯ」）、次にステップ５５０において、非不透明処理が実行され、各オブジェクトの間の重なりに対応する画素に関連付けられたフラグは重なる画素の混合後の明度値に基づいてフラグバッファ４５５に書き込まれうる。フレームバッファ３５０に予め存在するオブジェクトに関連付けられる重ならない画素のフラグ値は元の数値を保持する。現在のオブジェクトに関連付けられた重ならない画素のフラグ値は現在のオブジェクトの画素の明度値に基づいて書き換えられる。ステップ５６０において、オブジェクトはフレームバッファ３５０にレンダリングすることができる。
【００４５】
図６Ａ、図６Ｂ、図６Ｃ及び図６Ｄは不透明処理及び非不透明処理が図形オブジェクトに実行された場合に、画素に関連付けられた色付きフラグの変更を例示的に図示している。フレームバッファ３５０の図形オブジェクトの画素に関連付けられたフラグの例示的な図形の図示６００が図６Ａに示されている。図６Ａに示されているように、図形オブジェクト５１０は空きフレームバッファ３５０において色付きとされ、図形オブジェクト５１０を表す画素に関連付けられたフラグ６１０はフラグバッファ４５５において書き換えられうる。フレームバッファ４５５のフラグ６１０は色付きフラグ又は色付きビットを有しうる。図６Ａに示すように、オブジェクト５１０に関連付けられた画素の明度値は明度閾値を超えないので、オブジェクト５１０に対応する画素に関連付けられた領域６１０の色付きフラグは数値「１」（色付き）を保持する。
【００４６】
図６Ｂは元々存在するオブジェクト５１５の上に置かれた新しい例示的な非不透明カラーオブジェクト５２０に関連付けられた、フレームバッファ３５０の画素及び対応するフレームバッファ４５５のフラグを表す図示６０５を示す。オブジェクト５１５と非不透明オブジェクト５２０を重ねることによって、重畳共通領域５３０が発生する。図６Ｂに示すように、オブジェクト５１５、５２０及び５３０の画素に関連付けられた色付きフラグ領域はそれぞれ６１５、６２０及び６３０である。図６Ｂに示すように、領域６１５のフラグの数値は重畳領域５３０の外にあるオブジェクト５１５に関連付けられた画素の明度値に基づくのに対し、領域６２０（点線で示す）のフラグの数値はオブジェクト５２０に関連付けられた、重ねられていない画素の明度値に基づく。オブジェクト５２０に関連付けられた画素の明度値は明度閾値を超えるため、フラグバッファ４５５の領域６２０のフラグは色無しと印される。重畳領域５３０のフラグの数値は、オブジェクト５１５及び５２０の混合処理が完了した後の画素の明度値に基づく。
【００４７】
図６Ｃは元々存在するオブジェクト５４０の上に置かれた新しい例示的な不透明カラーオブジェクト５５０に関連付けられたフレームバッファ３５０の例示的画素及び対応するフレームバッファ４５５のフラグを表す図示６１５を示す。図６Ｃに示すように、オブジェクト５４０に関連付けられた、重ねられていない画素の明度値は明度閾値を超える。よって、フラグバッファ４５５の領域６４０（点線で示す）に対応するこれらの画素のフラグ値は色無しと印される。また、図６Ｃに示すように、不透明オブジェクト５５０に関連付けられた画素の明度値は明度閾値を超えない。よって、フラグバッファ４５５の領域６５０に対応するこれらの画素のフラグ値は色付きと印される。
【００４８】
図６Ｄは元々存在するオブジェクト５６０の上に置かれた新しい例示的な不透明カラーオブジェクト５７０に関連付けられたフレームバッファ３５０の例示的な画素及び対応するフレームバッファ４５５のフラグを表す図示６６５を示す。図６Ｄに示すように、オブジェクト５７０に関連付けられた画素の明度値は明度閾値を超える。よって、フラグバッファ４５５の領域６７０（点線で示す）に対応するこれらの画素のフラグ値は色無しと印される。また、図６Ｄに示すように、不透明オブジェクト５６０に関連付けられた、重ねられていない画素の明度値は明度閾値を超えない。よって、フラグバッファ４５５の領域６６０に対応するこれらの画素のフラグ値は色付きと印される。
【００４９】
図７はいくつかの開示される実施形態に基づく、ステップ４４０において実行されうるフラグ解析ルーチンに関する各ステップを図示する例示的フローチャート７００を示す。当該アルゴリズムはステップ７１０において、まずフレームバッファ３５０及びフラグバッファ４５５のデータにアクセスすることによって開始される。ステップ７２０において、フレームバッファ３５０の画素に関連付けられるフラグが読み出されうる。ステップ７２５において、画素に関連付けられた色付きフラグが確認されうる。色付きフラグが偽である場合、次にステップ７２０において、新たな画素に関連付けられたフラグがフラグバッファ４５５から読み出されうる。画素に関連付けられた色付きフラグが設定されていない場合、当該画素はフレームバッファ３５０のいずれのオブジェクトにも対応しないか、又は明度閾値を超える明度値を有するのでトラッピングを目的とする場合無視されうるかである。
【００５０】
ステップ７２５において、色付きフラグが真である場合、ステップ７５０において当該画素はトラッピング候補として選択される。ステップ７２０において、次の画素に関連付けられるフラグがフラグバッファ４５５から読み出される。いくつかの実施形態においては、ステップ７５０において選択された画素は、例えばステップ３６０のトラッピングアルゴリズム等のトラッピングアルゴリズムにおいて用いられ、トラッピングアルゴリズムパラメータに基づいて、トラッピングを選択された画素に適用することができる。
【００５１】
いくつかの実施形態においては、上述の処理を実施するプログラムをコンピュータ読取可能な媒体１５０又はコンピュータ読取可能メモリに記録することができる。これらには、読み出し専用メモリ（ＲＯＭ）、プログラマブル読み出し専用メモリ（ＰＲＯＭ）、フラッシュメモリ、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、又はセキュアデジタル（ＳＤ）メモリカード、コンパクトフラッシュ（登録商標）、スマートメディア（登録商標）、メモリスティック（登録商標）等のデジタルメモリカード等を含むが、これらに限定されない。いくつかの実施形態においては、コンピュータ読取可能な媒体のうちの一以上の種類をプリンタ１７０に接続することができる。特定の実施形態においては、本明細書に開示されるシステム、方法及び構成を実施するためのプログラムの一部はネットワーク１４０を介して配信することができる。
【００５２】
本発明のその他の実施形態は、本明細書に開示される、詳細な説明の検討及び本発明の一以上の実施形態の実施によって当業者にとって明らかとなるであろう。本明細書と実施例は例示とすることのみを意図しており、本発明の真の範囲や意図は請求項において示される。
【図１】
2010200303.tif 000003
【図２】
2010200303.tif 000004
【図３】
2010200303.tif 000005
【図４】
2010200303.tif 000006
【図５】
2010200303.tif 000007
【図６Ａ】
2010200303.tif 000008
【図６Ｂ】
2010200303.tif 000009
【図６Ｃ】
2010200303.tif 000010
【図６Ｄ】
2010200303.tif 000011
【図７】
2010200303.tif 000012
【外国語明細書】
2010200303000001.pdf
2010200303000002.pdf
2010200303000003.pdf
2010200303000004.pdf