(57)【特許請求の範囲】
【請求項１】
印刷可能データに含まれるオブジェクト情報を用いてトラッピングを実行する方法であって、
前記印刷可能データをラスタライズし、その結果ラスタライズされたデータを、フレームバッファにおける複数のカラープレーンのうちの少なくとも一つに保存するステップと、
前記印刷可能データに含まれる前記オブジェクトのそれぞれに当該オブジェクトに固有のオブジェクトＩＤを割り当てるステップと、
前記オブジェクトの形状に従ってオブジェクトＩＤプレーンに前記オブジェクトＩＤを保存するステップと、
前記オブジェクトＩＤプレーンに保存されたデータを用いてオブジェクトの境界を算出するステップと、
前記オブジェクトの境界のデータを用いて、トラッピング対象の候補オブジェクトを選択するステップと、
トラッピング対象として選択された候補オブジェクトに対応する前記少なくとも一つのカラープレーンのピクセルを修正するステップと、
を備える方法。
【請求項２】
前記印刷可能データはディスプレイリストにより表される請求項１に記載の方法。
【請求項３】
前記オブジェクトＩＤプレーンは、前記オブジェクトを、前記フレームバッファの前記少なくとも一つのカラープレーンにおけるピクセルに関連付けるオブジェクトＩＤを保存する請求項１又は２に記載の方法。
【請求項４】
前記オブジェクトＩＤプレーンは、前記フレームバッファと同じ構成の二次元配列で実現される請求項１〜３の何れか一項に記載の方法。
【請求項５】
前記オブジェクトＩＤプレーンに保存されたオブジェクトＩＤは、圧縮された形式で保持される請求項１〜４の何れか一項に記載の方法。
【請求項６】
前記圧縮形式としてランレングスエンコーディングが用いられる請求項５に記載の方法。
【請求項７】
前記印刷可能データに含まれる前記オブジェクトに割り当てられた前記オブジェクトＩＤは、前記オブジェクトを一意的に識別する請求項１〜６の何れか一項に記載の方法。
【請求項８】
前記少なくとも一つのオブジェクトに割り当てられた前記オブジェクトＩＤは、隣接しないオブジェクトのオブジェクトＩＤと重複する請求項１〜６の何れか一項に記載の方法。
【請求項９】
前記オブジェクトＩＤプレーンにおいてオブジェクトの境界を算出するステップは、
拡張されたオブジェクトと元のオブジェクトとの間のセット毎の差を算出するステップと、
差分カーネルを用いてオブジェクトＩＤプレーンのオブジェクトをコンボリューションすることによって得られた結果からゼロではない値を検出するステップと、
のうち、少なくとも一つをさらに備える請求項１〜８の何れか一項に記載の方法。
【請求項１０】
コンピュータと、
印刷装置と、
のうち、少なくとも一つにおいて実行される請求項１〜９の何れか一項に記載の方法。
【請求項１１】
プロセッサが実行することによって、印刷可能データに含まれるオブジェクト情報を用いてトラッピング方法の以下のステップが実行される命令を記憶するコンピュータ読取可能な媒体であって、
前記印刷可能データをラスタライズし、その結果ラスタライズされたデータを、フレームバッファにおける複数のカラープレーンのうちの少なくとも一つに保存するステップと、
前記印刷可能データに含まれる前記オブジェクトのそれぞれに当該オブジェクトに固有のオブジェクトＩＤを割り当てるステップと、
前記オブジェクトの形状に従ってオブジェクトＩＤプレーンに前記オブジェクトＩＤを保存するステップと、
前記オブジェクトＩＤプレーンに保存されたデータを用いてオブジェクトの境界を算出するステップと、
前記オブジェクトの境界のデータを用いてトラッピング対象の候補オブジェクトを選択するステップと、
トラッピング対象として選択された候補オブジェクトに対応する前記少なくとも一つのカラープレーンのピクセルを修正するステップと、
を備えるコンピュータ読取可能な媒体。
【請求項１２】
前記オブジェクトＩＤプレーンは、前記オブジェクトを、前記フレームバッファの前記少なくとも一つのカラープレーンにおけるピクセルに関連付けるオブジェクトＩＤを保存する請求項１１に記載のコンピュータ読取可能な媒体。
【請求項１３】
前記オブジェクトＩＤプレーンに保存されたオブジェクトＩＤは、圧縮された形式で保持される請求項１１又は１２に記載のコンピュータ読取可能な媒体。
【請求項１４】
前記オブジェクトＩＤプレーンにおいてオブジェクトの境界を算出するステップは、
拡張されたオブジェクトと元のオブジェクトとの間のセット毎の差を算出するステップと、
差分カーネルを用いてオブジェクトＩＤプレーンのオブジェクトをコンボリューションすることによって得られた結果からゼロではない値を検出するステップと、
のうち、少なくとも一つをさらに備える請求項１１〜１３の何れか一項に記載のコンピュータ読取可能な媒体。
【請求項１５】
プロセッサを制御して、印刷可能データに存在するオブジェクト情報を用いてトラッピング方法の以下のステップを実行する装置であって、
前記印刷可能データをラスタライズし、その結果ラスタライズされたデータをフレームバッファにおける複数のカラープレーンのうちの少なくとも一つに保存するステップと、
前記印刷可能データに含まれる前記オブジェクトのそれぞれに当該オブジェクトに固有のオブジェクトＩＤを割り当てるステップと、
前記オブジェクトの形状に従ってオブジェクトＩＤプレーンに前記オブジェクトＩＤを保存するステップと、
前記オブジェクトＩＤプレーンに保存されたデータを用いてオブジェクトの境界を算出するステップと、
前記オブジェクトの境界のデータを用いてトラッピング対象の候補オブジェクトを選択するステップと、
トラッピング対象として選択された候補オブジェクトに対応する前記少なくとも一つのカラープレーンのピクセルを修正するステップと、
を実行する装置。
【請求項１６】
前記オブジェクトＩＤプレーンは、前記オブジェクトを、前記フレームバッファの前記少なくとも一つのカラープレーンにおけるピクセルに関連付けるオブジェクトＩＤを保存する請求項１５に記載の装置。
【請求項１７】
前記オブジェクトＩＤプレーンにおいてオブジェクトの境界を算出するステップは、
拡張されたオブジェクトと元のオブジェクトとの間のセット毎の差を算出するステップと、
差分カーネルを用いてオブジェクトＩＤプレーンのオブジェクトをコンボリューションすることによって得られた結果からゼロではない値を検出するステップと、
のうち、少なくとも一つをさらに備える、請求項１５又は１６に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は印刷の分野に関する。特に、印刷装置においてトラッピングを実行する方法、コンピュータ読取可能な媒体及び装置に関する。
【背景技術】
【０００２】
カラープリンタによって生成されるピクセルは通常複数のカラープレーンから成る色で構成される。例えば、シアン、マゼンタ、イエロー及びブラック（「ＣＭＹＫ」）を用いるカラープリンタにおいて、一つのピクセルは四種類のカラープレーンのうち、一以上のカラープレーンから成る色で構成することができる。プリンタにおいて、各色を構成するカラープレーンを異なる濃度で組み合わせることで、幅広い範囲の色を生成することができる。ピクセルを構成する色要素は、互いに重ねて又は非常に近接して印刷されることが望ましい。しかし、プリントエンジンによるずれ、用紙の伸張又はその他の機械的な精度不足による重ね合わせ不良から、一つのピクセルを構成するカラープレーンが適切に重ねられず、その結果、ページ上の異なる色の領域の間に見苦しい小さな白い隙間や黒領域に色エッジがみられることがある。重ね合わせ不良を是正するには、トラッピングと呼ばれる技術が通常用いられている。トラッピングとは、色領域をわずかに拡大又は縮小することによって、図形オブジェクト間の白い隙間及び／又は色エッジを解消することをいう。トラッピングによって、色の境界部分にある色の領域が挿入されて、重ね合わせ不良による目に見える影響が隠される。
【０００３】
いくつかのソフトウェアアプリケーションでは、トラッピングデータを直接プリントジョブで生成する。あるページ全体のトラッピング機能を出力過程の遅い段階に移すことによって、トラッピングの実行中にデバイスで使用可能な着色剤とリソースを正確に把握することができる。
【０００４】
トラッピングは、一般に（ｉ）ディスプレイリストオブジェクトを修正若しくは追加又は（ｉｉ）ラスタイメージプロセッサ（ＲＩＰ）のフレームバッファのデータを直接修正することによって実行される。ここで、第一の方法をＲＩＰ内トラッピング、第二の方法をラスタに基づくトラッピングと称する。ＲＩＰ内トラッピングでは、柔軟性がもたらされるが、比較的多くのトラッピングパラメータやディスプレイリストオブジェクトをトラックする必要があるので、実行するには複雑である。第二の方法については、実行するのはより単純である。しかし、より正確性に欠け、潜在的に複数のカラープレーンにまたがるフレームバッファのデータを用いて、オブジェクトの境界を検出するという、計算コストの高い手順が含まれる。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従って、実行コスト及び計算コストは低いものでありながら、トラッピングされた印刷出力の質が保持されるトラッピング機能を提供するシステム及び方法が必要とされている。
【課題を解決するための手段】
【０００６】
本発明に適合する実施形態には、印刷可能データに含まれるオブジェクト情報を用いてトラッピングを実行するシステムと方法が含まれる。印刷可能データは、文書のページ記述言語記述から導き出すディスプレイリストにより表すことができる。ある実施形態においては、方法は、前記印刷可能データをラスタライズし、その結果ラスタライズされたデータを、フレームバッファにおける複数のカラープレーンのうちの少なくとも一つに保存するステップと、前記印刷可能データに含まれる前記オブジェクトのそれぞれに当該オブジェクトに固有のオブジェクトＩＤを割り当てるステップと、前記オブジェクトの形状に従ってオブジェクトＩＤプレーンに前記オブジェクトＩＤを保存するステップと、前記オブジェクトＩＤプレーンに保存されたデータを用いてオブジェクトの境界を算出するステップと、前記オブジェクトの境界のデータを用いてトラッピング対象の候補オブジェクトを選択するステップと、トラッピング対象として選択された候補オブジェクトに対応する前記少なくとも一つのカラープレーンのピクセルを修正するステップとを備える。
【０００７】
前記オブジェクトＩＤプレーンは、前記オブジェクトを、前記フレームバッファの前記少なくとも一つのカラープレーンにおけるピクセルに関連付けるオブジェクトＩＤを保存する。前記オブジェクトＩＤプレーンにおいてオブジェクトの境界を算出するステップは、拡張されたオブジェクトと元のオブジェクトとの間のセット毎の差を計算するステップと、差分カーネルを用いてオブジェクトＩＤプレーンのオブジェクトをコンボリューションすることによって得られた結果からゼロではない値を検出するステップと、のうち、少なくとも一つをさらに備える。
【０００８】
いくつかの実施形態においては、前記オブジェクトＩＤプレーンは、前記フレームバッファと同じ構成の二次元配列で実現される。他の実施形態においては、前記オブジェクトのＩＤプレーンに保存されたオブジェクトＩＤは、圧縮された形式で保持される。ある実施形態においては、前記印刷可能データに含まれる前記オブジェクトに割り当てられた前記オブジェクトＩＤは、前記オブジェクトを一意的に識別する。他の実施形態においては、前記少なくとも一つのオブジェクトに割り当てられた前記オブジェクトＩＤは、隣接しないオブジェクトのオブジェクトＩＤと重複する。
【０００９】
本発明の実施形態はまた、コンピュータ読取可能な媒体又はコンピュータ読取可能なメモリを用いるプロセッサによって作成、保存、アクセス又は修正されたソフトウェア、ファームウェア又はプログラム命令に関する。
【発明を実施するための最良の形態】
【００１０】
以下において、これら及びその他の実施形態について、添付の図面を参照しながら詳細に説明する。
【００１１】
本発明の様々な特徴が反映される実施形態に基づいて、第一印刷可能データから生成された第二印刷可能データ又は中間形式の印刷可能データを用いてトラッピングを実行するシステム及び方法が提供される。いくつかの実施形態においては、第一印刷可能データは文書のＰＤＬ記述の形式を取り、中間印刷可能データは当該ＰＤＬ記述から生成されたオブジェクトのディスプレイリストの形式を取ることができる。
【００１２】
図１は、例示的な文書印刷システムにおける構成要素を示すブロック図である。トラッピングを実行するアプリケーションは、図１に示すような、従来からの通信プロトコル及び／又はデータポートインターフェイスを用いて情報をやりとりする通信リンクを通じて相互接続されるコンピュータと印刷装置のネットワークに導入することができる。
【００１３】
図１に示すように、例示的なシステム１００は、コンピューティングデバイス１１０と、サーバ１３０とを含むコンピュータを含む。コンピューティングデバイス１１０とサーバ１３０は接続１２０を通じて通信することができ、これはネットワーク１４０を介することができる。コンピューティングデバイス１１０は、コンピュータワークステーション、デスクトップパソコン、ノートパソコン又はネットワーク化された環境で用いることができるその他のあらゆるコンピューティングデバイスにより構成することができる。サーバ１３０は、コンピューティングデバイス１１０及びその他のデバイス（図示せず）に接続することができるプラットフォームにより構成することができる。コンピューティングデバイス１１０及びサーバ１３０はプリンタ１７０を用いて文書を印刷するためのソフトウェア（図示せず）を実行することができる。
【００１４】
コンピューティングデバイス１１０及び／又はサーバ１３０で実行される文書処理ソフトウェアによって、ユーザは文書を便利に閲覧、編集、処理及び保存することができる。文書内の印刷されるページはページ記述言語（ＰＤＬ）によって記述することができる。ＰＤＬには、ＰｏｓｔＳｃｒｉｐｔ、Ａｄｏｂｅ  ＰＤＦ、ＨＰ  ＰＣＬ、Ｍｉｃｒｏｓｏｆｔ  ＸＰＳ及びこれらの変形例が含まれうる。文書のＰＤＬ記述によって、文書内の各ページについて高レベルの記述が提供される。文書が印刷される際、このＰＤＬ記述は多くの場合、より低レベルのプリンタ固有の一連のコマンドに変換される。
【００１５】
ＰＤＬからより低レベルのプリンタ固有のコマンドへの変換処理は、複雑である場合があり、例示的プリンタ１７０が提供する特徴及び性能による。例えば、プリンタ１７０はデータを段階的に処理することがある。第一段階では、プリンタ１７０においてＰＤＬコマンドを解析し、高レベルの命令を、基本命令と呼ばれるより低レベルの命令に分解することができる。これらの基本命令は、プリンタ１７０において次の段階へと送られ、これらを用いてページ上のマークを置く位置を決定することができる。場合によっては、各基本命令を生成すると同時に処理してもよい。他のシステムにおいては、多数の基本命令を生成、保存してから処理してもよい。例えば、ある一つのページを記述するのに必要な基本命令を生成し、リストに保存してから処理することができる。保存された基本命令は中間リスト又はディスプレイリストと称する。
【００１６】
例示的プリンタ１７０は、電子データから物理的文書を作成する装置を含み、このような装置にはレーザープリンタ、インクジェットプリンタ、ＬＥＤプリンタ、プロッタ、ファクシミリ装置及びデジタルコピー機が含まれるが、これらに限定されない。例示的プリンタ１７０は、接続１２０を介してコンピューティングデバイス１１０又はサーバ１３０から受信した文書を直接印刷することができる。いくつかの実施形態においては、このような構成を用いて、コンピューティングデバイス１１０又はサーバ１３０による追加処理を行った上で（又は行わずに）、文書を直接印刷してもよい。テキスト、グラフィック及びイメージのうち、一以上を含む文書の処理は分散することができる。従って、プリンタ１７０が文書を物理的に印刷する前に、コンピューティングデバイス１１０、サーバ１３０及び／又はプリンタは、ハーフトーニング、カラーマッチング及び／又はマニピュレーション等の文書の印刷処理の一部を実行することができる。
【００１７】
コンピューティングデバイス１１０は取り外し可能なメディアドライブ１５０を有する。取り外し可能なメディアドライブ１５０には、例えば３．５インチフロッピーディスクドライブ、ＣＤ−ＲＯＭドライブ、ＤＶＤ  ＲＯＭドライブ、ＣＤ±ＲＷ若しくはＤＶＤ±ＲＷドライブ、ＵＳＢフラッシュドライブ及び／又はその他のあらゆる取り外し可能なメディアドライブが含まれる。アプリケーションの一部が取り外し可能な媒体に置かれており、システム１００に従った動作に先立って、取り外し可能なメディアドライブ１５０を用いてコンピューティングデバイス１１０によって読み出される。
【００１８】
接続１２０はコンピューティングデバイス１１０、サーバ１３０及びプリンタ１７０を接続し、従来からの通信プロトコル及び／又はデータポートインターフェイスを用いた有線又は無線での接続によって実現することができる。一般に、接続１２０には各装置間のデータの送受信を行うあらゆる通信回線を用いることができる。ある実施形態においては、適切な接続を介したデータの送受信を行うため、例えば各装置に従来からあるデータポートを設ける。このようなデータポートにはパラレルポート、シリアルポート、Ｅｔｈｅｒｎｅｔ（登録商標）、ＵＳＢ、ＳＣＳＩ、ＦＩＲＥＷＩＲＥ及び／又は同軸ケーブルポート等が含まれる。
【００１９】
ネットワーク１４０には、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）又はインターネットが含まれうる。いくつかの実施形態においては、ネットワーク１４０上で送信される情報を暗号化して、送信されるデータのセキュリティを確保することができる。プリンタ１７０は接続１２０を介してネットワーク１４０に接続することができる。また、例示的プリンタ１７０はコンピューティングデバイス１１０及び／又はサーバ１３０に直接接続することができる。システム１００はその他の周辺機器を含むことができる（図示せず）。印刷装置におけるトラッピングを実現するためのアプリケーションは、図１に示すように、一以上の例示的なコンピュータ又はプリンタに置くことができる。例えば、コンピューティングデバイス１１０が、サーバ１３０から直接ダウンロードしたソフトウェアを実行して、そのアプリケーションの一部を例示的プリンタ１７０によって実行することができる。
【００２０】
図２は、例示的プリンタ１７０を示す高レベルブロック図である。例示的プリンタ１７０は、ＣＰＵ１７６と、ファームウェア１７１と、メモリ１７２と、入出力ポート１７５と、プリントエンジン１７７と、二次記憶装置１７３と、を備え、各部はバス１７４を介して互いに接続される。また、例示的プリンタ１７０は、文書の印刷又は処理のアプリケーションの一部が実行可能なその他の特定用途向けＩＣ（ＡＳＩＣ）及び／又はフィールドプログラマブルゲートアレイ（ＦＰＧＡ）１７８を含むことができる。例示的プリンタ１７０はＩ／Ｏポート１７５及び接続１２０を用いてコンピューティングデバイス１１０の二次記憶装置又はその他のメモリにアクセスすることができる。いくつかの実施形態においては、プリンタ１７０はプリンタオペレーティングシステム及びその他の適切なアプリケーションソフトウェアを含むソフトウェアを実行することができる。例示的プリンタ１７０において、他のオプションのうち、用紙サイズ、出力トレイ、色の選択及び印字解像度については、ユーザ設定可能とすることができる。
【００２１】
例示的ＣＰＵ１７６は、汎用プロセッサ、専用プロセッサ又は組み込みプロセッサであることできる。ＣＰＵ１７６は、メモリ１７２及び／又はファームウェア１７１と制御情報及び制御命令を含むデータのやりとりをすることができる。メモリ１７２は、あらゆる種類のダイナミックランダムアクセスメモリ（ＤＲＡＭ）であることができ、ＳＤＲＡＭ又はＲＤＲＡＭ等が含まれるがこれらに限定されない。ファームウェア１７１は命令及びデータを含むことができ、これらには起動シーケンス、画像処理、トラッピング及び文書処理に関するルーチン等のあらかじめ設定されたルーチン、並びにその他のコードが含まれるがこれらに限定されない。いくつかの実施形態においては、ＣＰＵ１７６によって実行される前に、ファームウェア１７１のコード及びデータはメモリ１７２にコピーされてもよい。ファームウェア１７１のルーチンには、コンピューティングデバイス１１０から受信したページ記述をディスプレイリストに変換するコードを含めることができる。いくつかの実施形態においては、ファームウェア１７１はディスプレイリストのディスプレイコマンドを適切にラスタライズされたビットマップに変換して、当該ビットマップをメモリ１７２に保存するラスタライゼーションルーチンを含むことができる。ファームウェア１７１は、圧縮、トラッピング及びメモリ管理ルーチンを含むことができる。ファームウェア１７１に含まれるデータ及び命令は、コンピュータ１１０、ネットワーク１４０、プリンタ１７０に接続された取り外し可能な媒体及び／又は二次記憶装置１７３のうち一つ以上を用いてアップグレードすることができる。
【００２２】
例示的ＣＰＵ１７６は命令及びデータに従って動作し、ＡＳＩＣ／ＦＰＧＡ１７８及びプリントエンジン１７７を制御し、これらにデータを提供して、印刷された文書を生成することができる。また、ＡＳＩＣ／ＦＰＧＡ１７８はプリントエンジン１７７を制御し、これにデータを提供することができる。ＦＰＧＡ／ＡＳＩＣ１７８は一以上の変換、トラッピング、圧縮又はラスタライゼーションアルゴリズムを実行することができる。
【００２３】
例示的コンピューティングデバイス１１０において、文書データを第一印刷可能データに変換することができる。いくつかの実施形態においては、第一印刷可能データは文書のＰＤＬ記述に対応することができる。そして、第一印刷可能データはプリンタ１７０に送信されて、中間印刷可能データに変換することができる。いくつかの実施形態においては、文書のＰＤＬ記述から一連の低レベルのプリンタ固有のコマンドを含む最終的な印刷可能データへの変換処理には、オブジェクトのディスプレイリストを含む中間印刷可能データの生成を含むことができる。ディスプレイリストは一以上のテキスト、グラフィック及びイメージのデータオブジェクトを有することができ、ディスプレイリストの一以上の種類のデータオブジェクトはユーザ文書内のオブジェクトに対応することができる。中間印刷可能データの生成を支援することができるディスプレイリストは、メモリ１７２又は二次記憶装置１７３に保存することができる。例示的二次記憶装置１７３は、内蔵若しくは外付けハードディスクドライブ、メモリスティック又はシステム２００で用いることができる、その他のあらゆる記憶装置であることができる。いくつかの実施形態においては、文書処理を行う場所に応じて、ディスプレイリストを一以上のプリンタ１７０、コンピューティングデバイス１１０又はサーバ１３０の何れかに置いて、これらの間で転送することができる。ディスプレイリストを保存するメモリは、専用メモリであるか、若しくは汎用メモリの一部を構成するか又はこれらの組合せであることができる。いくつかの実施形態において、ディスプレイリストを有するメモリは、必要に応じて動的に割り当て、管理及び開放をすることができる。プリンタ１７０は、中間印刷可能データを最終的な形式の印刷可能データに変換して、この最終的な形式に基づいて、印刷する。
【００２４】
図３はラスタイメージプロセッサにおいて利用されるフレームバッファのデータに、トラッピングを実行するための従来の方法のステップを示す、例示的フローチャート３００である。処理はステップ３００において、プリントジョブの開始によって始めることができる。ステップ３１０において、プリントジョブデータ３１５に対して言語処理を実行することができる。いくつかの実施形態においては、言語処理は言語サーバによって実行することができる。例えば、言語サーバはＰＤＬ言語レベルのオブジェクトを用いることができ、これらの言語レベルのオブジェクトをデータ、イメージ、テキスト及びグラフィックのオブジェクトに変換し、これらをディスプレイリスト３２５に追加することができる。例示的ディスプレイリスト３２５は、実際の印刷に先立つデータ処理の中間段階にあってもよく、次の形式へと変換する前に解析されてもよい。ディスプレイリストの描出から物理媒体への印刷に適した形式への変換の過程は、データのラスタライズ又はラスタライゼーションと呼ぶことができる。この画像の各ポイントは色や濃度等の情報を含む。例えば、基本的なラスタライゼーションは、一般にポリゴンを用いて描画される三次元シーンを用いることによって、また当該三次元シーンを二次元表面にレンダリングすることによって実現される。ポリゴンは三角形の集合体で表現することができる。三角形は三次元空間の三つの頂点で表現することができる。頂点は点、辺の終点又は二辺が交差するポリゴンの角を定義する。よって、基本的なラスタライゼーションでは、頂点のストリームを対応する二次元の点に変換し、変換された二次元の三角形を塗りつぶす。ラスタライゼーションの際には、ラスタライズされたデータは例示的フレームバッファ３５０等のフレームバッファに保存することができ、これは物理的にメモリ１７２に置くことができる。プリントエンジン１７７はフレームバッファ３５０のラスタライズされたデータを処理して、用紙等の印刷媒体に当該ページの印刷可能画像を形成することができる。
【００２５】
ステップ３３０では、ＲＩＰはディスプレイリスト３２５にあるデータオブジェクトを処理し、ラスタライズされたその相当物をフレームバッファ３５０に生成することができる。いくつかの実施形態においては、ラスタイメージ処理をプリンタ１７０において実行することができる。例えば、一以上のＣＰＵ１７６、ＡＳＩＣ／ＦＰＧＡ１７８、メモリ１７２及び／又は二次記憶装置１７３を用いて、ラスタイメージ処理をプリンタ１７０において実行することができる。ソフトウェア、ファームウェア及び／又はＡＳＩＣ／ＦＰＧＡ１７８等の専用ハードウェアの何らかの組合せを用いて、ラスタイメージ処理をプリンタ１７０において実行することができる。フレームバッファ３５０は、プリントエンジン１７７によって印刷媒体に印刷するのに適した形式で、プリントオブジェクトの描画を保持することができる。
【００２６】
トラッピングを実行する従来の方法においては、ステップ３４０において、エッジ情報をフレームバッファ３５０にあるデータから抽出することができる。従来のエッジ検出は、いくつかの周知のアルゴリズム及びそれらの変形物によって実行することができ、これらには、Ｉｎｆｉｎｉｔｅ  Ｓｙｍｍｅｔｒｉｃ  Ｅｘｐｏｎｅｎｔｉａｌフィルタ（ＩＳＥＦ）、Ｃａｎｎｙエッジ検出法（ＪｏｈｎＦ．Ｃａｎｎｙによる）、Ｍａｒｒ−Ｈｉｌｄｒｅｔｈ法（Ｄ．ＭａｒｒとＥ．Ｃ．Ｈｉｌｄｒｅｔｈによる）、Ｓｏｂｅｌ法（Ｉ．Ｓｏｂｅｌによる）、Ｋｉｒｃｈ法及びＬａｐｌａｃｉａｎ法等が含まれる。フレームバッファ３５０のデータには、通常複数のカラープレーンのデータが含まれる。例えば、フレームバッファ３５０のＣＭＹＫプリンタデータには、シアン、マゼンタ、イエロー及びブラックのカラープレーンからのデータが含まれる。複数のカラープレーンの存在が、従来のエッジ検出処理をさらに複雑化させる。これにより、従来のエッジ検出アルゴリズムにおいて追加の計算が必要となって、処理の計算コストを増加させる。その性質上、従来のエッジ検出アルゴリズムは、エッジを検出するためにそのアルゴリズムが実行されるデータに関する仮定に依拠することから、概算となる。よって、このようなアルゴリズムは時折誤ってエッジを検出したり、エッジを検出しそこねたりすることがある。また、オブジェクト固有の情報がフレームバッファに存在しないので、従来のエッジ検出アルゴリズムではオブジェクト内のエッジとオブジェクトの間のエッジとを区別することができない。例えば、フレームバッファ３５０のデータに対して実行する従来のエッジ検出アルゴリズムでは、イメージのオブジェクト内部のエッジと、当該イメージのオブジェクトとそれに隣接する別のオブジェクトとの間のエッジとを、区別することができないことがある。
【００２７】
一旦、各カラープレーン３４５についてのエッジ情報がフレームバッファ３５０から抽出されると、ステップ３６０では、フレームバッファ３５０内のデータに対してトラッピングを実行することができる。いくつかの周知のトラッピングアルゴリズムのうち、あらゆるものを用いてトラッピングを実行することができる。続いてステップ３７０では、トラッピングされたフレームバッファ３５５に対しあらゆる追加の処理を実行することができる。例えば、プリントエンジン１７７が追加の処理後に、トラッピングされたフレームバッファ３５５を印刷媒体にレンダリングすることとしてもよい。
【００２８】
図４は、本発明のいくつかの実施形態に基づく、データにトラッピングを実行する方法のステップを示す例示的フローチャート４００である。アルゴリズムはステップ４１０において、プリントジョブの開始によって始めることができる。図３の説明において述べたように、ステップ３２０において、プリントジョブデータ３１５に言語処理を施すことができる。例えば、言語処理は言語サーバによって実行することができる。言語サーバはＰＤＬ言語レベルのオブジェクトを用いて、これらの言語レベルのオブジェクトをデータ及びグラフィックのオブジェクトに変換し、これらをディスプレイリスト３２５に追加することができる。
【００２９】
例示的フローチャートのステップ４３０において、ディスプレイリスト３２５にさらに処理を行ってオブジェクトＩＤデータを生成することができる。各ディスプレイリストオブジェクトについて、固有のオブジェクトＩＤを生成することができる。オブジェクトＩＤを用いることによって、あるページを構成する様々なグラフィックのオブジェクトを識別することができる。いくつかの実施形態においては、オブジェクトＩＤの保存にオブジェクトＩＤプレーン４５５を利用することができる。例えば、オブジェクトＩＤプレーンは一以上の二次元配列として実現することができる。いくつかの実施形態においては、オブジェクトＩＤプレーン４５５はフレームバッファ３５０と同じ構成とすることができる。例えば、以下に詳述するように、オブジェクトＩＤプレーン４５５は、フレームバッファ３５０とは論理的に別個の、追加のデータプレーンとして実現することができ、各オブジェクトに関連オブジェクトＩＤを割り当て、これをオブジェクトＩＤプレーン４５５に書き込むことができる。オブジェクトＩＤは、数字、文字、シンボルを用いてもよいし、ディスプレイリストオブジェクトを識別する同様の方法であればその他のあらゆる方法であってもよい。一般に、オブジェクトＩＤは、当該システムのニーズや性能に従ったビット幅で構成することができる。例えば、オブジェクトＩＤを１６ビットとすれば、これにより２１６−１個の固有オブジェクトの識別が可能となる。一般に、ビット幅が大きくなればなるほど、より多くのディスプレイリストオブジェクトに固有識別子を割り当てることが可能となる。従って、メモリ１７２のサイズに基づいて又は所定のプリンタのタイプやモデルにおいて標準的なページのディスプレイリストに存在する個々のオブジェクトの数に基づいて、設計時にビット幅を選択することができる。例えば、装置の通常の又は意図された使用形態によれば、いくつかのプリンタモデルでは４ビットのオブジェクトＩＤで十分でありうる。
【００３０】
いくつかの実施形態においては、ページの最初では１に初期化され、新しい言語レベルのオブジェクトの処理を始めるたびにインクリメントされるｂビットカウンタを用いて、オブジェクトＩＤを実現することができる。ディスプレイリストオブジェクトはプリントジョブの各種言語命令に従って生成することができるが、各ディスプレイリストオブジェクトはその生成時のｂビットカウンタの値と関連付けることができる。いくつかの実施形態においては、ｂビットの範囲を超えてカウンタをインクリメントすると１にセットされる。例えば、ｂ＝４でカウンタが１５である場合（バイナリ１１１１）、１だけインクリメントするとカウンタは１にセットされる（バイナリ０００１）。当該ページの言語レベルオブジェクトの数が１５より少ない場合、これらはすべて固有のオブジェクトＩＤを有することになる。他方、言語レベルオブジェクトの数が１５を超える場合、いくつかのオブジェクトは同じオブジェクトＩＤを有することがある。
【００３１】
ステップ４３５において、ラスタイメージ処理はディスプレイリストオブジェクト及びオブジェクトＩＤデータ４３３に対して実行することができる。図３の説明において述べたように、ディスプレイリスト３２５のオブジェクトはフレームバッファ３５０にレンダリングすることができる。いくつかの実施形態においては、ディスプレイリスト３２５のオブジェクトをフレームバッファ３５０にレンダリングすると同時に、当該オブジェクトに関連するオブジェクトＩＤをオブジェクトＩＤプレーン４５５に書き込んで、その構成をフレームバッファ３５０における当該オブジェクトの構成と同じ構成としてもよい。例えば、オブジェクトをレンダリングする場合、フレームバッファ３５０に座標（ｘ，ｙ）のピクセルが記録されている場合、オブジェクトＩＤプレーンの対応するピクセル（ｘ，ｙ）が当該オブジェクトに関連付けられているオブジェクトＩＤの値にセットされる。
【００３２】
図４は、例示的オブジェクトＩＤプレーン４５５を示す図である。例示的オブジェクトＩＤプレーン４５５は、（ｉ）特定のパスを色で塗りつぶす、（ｉｉ）「Ｌ」という文字を当該ページに描く、という二つの指示から構成されるプリントジョブについて生成することができる。上述の二つの指示を伴うプリントジョブにおいて、パスを色で塗りつぶすのに用いられるディスプレイリストオブジェクトのオブジェクトＩＤは、１という数値を有する。他方、「Ｌ」という文字を描くのに用いられるディスプレイリストオブジェクトのオブジェクトＩＤは、２という数値を有することができる。よって、上述の例においては、ラスタイメージ処理のステップ４３５の後、オブジェクトＩＤプレーンは、パスによって記述され、色が塗られた領域であって１の数値で埋められた領域と、低レベルの命令が及ぶ文字「Ｌ」の領域であって、２の数値で埋められた領域とで構成される。いくつかの実施形態においては、オブジェクトＩＤプレーンのデータを圧縮することができる。例えば、データのスキャンラインにはランレングスコーディングを用いることができる。このような場合、オブジェクトＩＤプレーンは順序対のリストで構成された配列によって表現することができ、各リストはスキャンラインに対応し、各順序対は当該スキャンラインと交差するオブジェクトに対応する。順序対を用いてスキャンラインのピクセルの繰り返しを表現することができる。いくつかの実施形態においては、他の圧縮技術を用いてオブジェクトＩＤプレーンに利用されるメモリを減らすことができる。圧縮技術を用いる際には、好適なメモリ管理技術を用いてメモリの割り当て、開放及び管理をすることができる。
【００３３】
ステップ４４０において、オブジェクトＩＤプレーン４５５のデータを用いてエッジを抽出することができる。次に、オブジェクトＩＤプレーン４５５においてエッジ検出アルゴリズムを用いて、トラッピング及び／又はエッジ強調に適したピクセルを検出することができる。このようなエッジ検出アルゴリズムの例には、オブジェクトＩＤプレーン４５５の各オブジェクトを拡張した後に、拡張されたオブジェクトと元のオブジェクトとの間のセット毎の差を計算する等の形態学的技法が含まれる。他のエッジ検出の技法には、差分カーネルを用いてオブジェクトＩＤプレーン４５５のオブジェクトをコンボリューションした後に、その結果から正の値又は負の値を検出することが含まれる。オブジェクトＩＤプレーン４５５は、オブジェクトと当該オブジェクトに対応するフレームバッファ３５０のピクセルとの関連を保存するので、オブジェクトＩＤプレーン４５５のデータを用いて、あるページの各オブジェクトに属する正確なピクセルのセットを明確に識別することができる。あるページの二つの隣接するピクセルが、オブジェクトＩＤプレーン４５５において異なるオブジェクトＩＤを有する場合、これらのピクセルは異なるオブジェクトに属することになり、よってトラッピングの候補となる。
【００３４】
ある実施形態においては、より小さいビット幅（つまりより少ないビット数）を用いてオブジェクトＩＤを割り当てることが有利である場合がある。このような場合において、あるページのオブジェクトの数が当該ビット幅で記述することができる固有オブジェクトの数を超える場合は、オブジェクトＩＤが重複することがある。しかし、隣接するオブジェクトに固有オブジェクトＩＤが与えられさえすれば、ステップ４４０で用いるエッジ検出アルゴリズムによってオブジェクトの境界を検出し続けることができる。例えば、フレームバッファ３５０に各オブジェクトをレンダリングする前に、新しいオブジェクトが表示される領域又はその計算上の境界を調べ、既に使用されているオブジェクトＩＤのリストを作成することができる。当該リストに存在しないオブジェクトＩＤを新しいオブジェクトに割り当てることができる。いくつかの実施形態においては、図４を参照しながら説明したエッジ検出方法に、図３を参照しながら説明した従来のエッジ検出アルゴリズムを一以上組み合わせて用いることができる。
【００３５】
いくつかの実施形態において、エッジ検出を、後に別個のステップとして実行するのではなく、ディスプレイリスト３２５のオブジェクトをレンダリングすると同時に実行することができる。レンダリングと同時に、ディスプレイリスト３２５のオブジェクトにエッジ検出を適用する場合、その境界を容易に算出できるオブジェクトに対して適用することが可能である。例えば、矩形のオブジェクト及び／又はオブジェクト同士の重なりが最小限となっている、若しくは重なりが存在しない場合が挙げられる。いくつかの実施形態においては、オブジェクトの境界についてオブジェクトプレーンに保存された記録を変更することによって、重なり合うオブジェクトについてもレンダリングの際にエッジ検出を実行することができる。オブジェクトＩＤ及びオブジェクトＩＤプレーンを使用するのは、オブジェクトデータをフレームバッファにおけるカラープレーンのピクセルに関連付ける一つの構成である。上述の方法が適用される状況や環境の詳細によっては、他のアプローチを用いることができる。例えば、オブジェクトの境界がレンダリングの際に決定される場合には、トラッピング対象の候補ピクセルを特定することができ、これらのピクセルに関する情報のみを保存すれば足りる。
【００３６】
ステップ４６０において、標準的なトラッピングのアルゴリズムは、トラッピング対象として選択された候補に対応するカラープレーンのピクセルに適用することができる。フレームバッファ３５０は複数のカラープレーンで構成されることがあるので、候補のカラープレーンを構成するピクセルを修正することができる。トラッピングを実施するいくつかの技術は、ＰｏｓｔＳｃｒｉｐｔリファレンスマニュアル、第三版、１９９９、アドビ社、に説明されており、これを全体として参照することによりその説明が援用される。具体的には§§６．３〜６．４参照。ここで注目すべき点は、オブジェクトとピクセルとの関連が保存されるので、オブジェクト内部のエッジに対するトラッピングをアルゴリズムが防ぐことができることである。例えば、イメージのオブジェクト内部のエッジはトラッピングされず、これによって通常良質な出力が導かれる。ある実施形態においてはテキストのオブジェクトにエッジ強調を適用することができる。他の実施形態においては、特定のフォントサイズより小さいテキストのオブジェクトに対してはトラッピングを実行しないことができる。
【００３７】
いくつかの実施形態においては、上述の処理を実施するためのプログラムを、コンピュータ読取可能な媒体１５０又はコンピュータ読取可能メモリに記録することができる。これらには、読み出し専用メモリ（ＲＯＭ）、プログラム可能な読み出し専用メモリ（ＰＲＯＭ）、フラッシュメモリ、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）又はセキュアデジタル（ＳＤ）メモリカード、コンパクトフラッシュ（登録商標）、スマートメディア（登録商標）、メモリスティック（登録商標）等のデジタルメモリカード等を含むが、これらに限定されない。いくつかの実施形態においては、一種類以上のコンピュータ読取可能な媒体をプリンタ１７０に接続することができる。特定の実施形態においては、本明細書に開示されるシステム、方法及び構成を実施するためのプログラムの一部は、ネットワーク１４０を介して配信することができる。
【００３８】
本発明のその他の実施形態は、本明細書に開示される、詳細な説明の検討及び本発明の一以上の実施形態の実施によって当業者にとって明らかとなるであろう。本明細書と実施例は例示とすることのみを意図しており、本発明の真の範囲や真の意図は請求項において示される。
【図面の簡単な説明】
【００３９】
【図１】本発明のいくつかの実施形態に基づく、例示的な文書印刷システムにおける構成要素を示すブロック図である。
【図２】例示的プリンタを示す高レベルブロック図である。
【図３】ラスタイメージプロセッサにおいて利用されるフレームバッファのデータにトラッピングを実行する従来の方法のステップを示す例示的フローチャートである。
【図４】フレームバッファの例示的オブジェクトとオブジェクトＩＤプレーンのデータとの間の対応関係を示す図である。
【図１】
0005607296.tif 000002
【図２】
0005607296.tif 000003
【図３】
0005607296.tif 000004
【図４】
0005607296.tif 000005