説明

印刷装置におけるトラッピングのシステム及び方法

【課題】オブジェクトIDプレーンに保存されるディスプレイリストオブジェクト情報をフレームバッファのピクセルデータと相互に関連付けることによって、フレームバッファのトラッピング対象の候補を特定するシステム及び方法を提供する。
【解決手段】いくつかの実施形態においては、ディスプレイリストオブジェクトは、文書のPDL記述から生成することができる。いくつかの実施形態においては、オブジェクトIDプレーンのオブジェクトに固有の識別子を割り当て、形態学的技法を用いてオブジェクトの境界を特定することによって、オブジェクトの境界を算出することができる。次に、オブジェクトの境界情報を利用してフレームバッファのピクセルにトラッピングが実行される。説明された方法は、コンピュータ及び/又は印刷装置で実行することができ、ハードウェア、ソフトウェア及び/又はファームウェアの一以上の組合せを用いて実施することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は印刷の分野に関する。特に、印刷装置においてトラッピングを実現するシステム及び方法に関する。
【背景技術】
【0002】
カラープリンタによって生成されるピクセルは通常複数のカラープレーンから成る色で構成される。例えば、シアン、マゼンタ、イエロー及びブラック(「CMYK」)を用いるカラープリンタにおいて、一つのピクセルは四種類のカラープレーンのうち、一以上のカラープレーンから成る色で構成することができる。プリンタにおいて、各色を構成するカラープレーンを異なる濃度で組み合わせることで、幅広い範囲の色を生成することができる。ピクセルを構成する色要素は、互いに重ねて又は非常に近接して印刷されることが望ましい。しかし、プリントエンジンによるずれ、用紙の伸張又はその他の機械的な精度不足による重ね合わせ不良から、一つのピクセルを構成するカラープレーンが適切に重ねられず、その結果、ページ上の異なる色の領域の間に見苦しい小さな白い隙間や黒領域に色エッジがみられることがある。重ね合わせ不良を是正するには、トラッピングと呼ばれる技術が通常用いられている。トラッピングとは、色領域をわずかに拡大又は縮小することによって、図形オブジェクト間の白い隙間及び/又は色エッジを解消することをいう。トラッピングによって、色の境界部分にある色の領域が挿入されて、重ね合わせ不良による目に見える影響が隠される。
【0003】
いくつかのソフトウェアアプリケーションでは、トラッピングデータを直接プリントジョブで生成する。あるページ全体のトラッピング機能を出力過程の遅い段階に移すことによって、トラッピングの実行中にデバイスで使用可能な着色剤とリソースを正確に把握することができる。
【0004】
トラッピングは、一般に(i)ディスプレイリストオブジェクトを修正若しくは追加又は(ii)ラスタイメージプロセッサ(RIP)のフレームバッファのデータを直接修正することによって実行される。ここで、第一の方法をRIP内トラッピング、第二の方法をラスタに基づくトラッピングと称する。RIP内トラッピングでは、柔軟性がもたらされるが、比較的多くのトラッピングパラメータやディスプレイリストオブジェクトをトラックする必要があるので、実行するには複雑である。第二の方法については、実行するのはより単純である。しかし、より正確性に欠け、潜在的に複数のカラープレーンにまたがるフレームバッファのデータを用いて、オブジェクトの境界を検出するという、計算コストの高い手順が含まれる。
【発明の開示】
【発明が解決しようとする課題】
【0005】
従って、実行コスト及び計算コストは低いものでありながら、トラッピングされた印刷出力の質が保持されるトラッピング機能を提供するシステム及び方法が必要とされている。
【課題を解決するための手段】
【0006】
本発明に適合する実施形態には、印刷可能データに含まれるオブジェクト情報を用いてトラッピングを実行するシステムと方法が含まれる。印刷可能データは、文書のページ記述言語記述から導き出すディスプレイリストにより表すことができる。ある実施形態においては、方法は、前記印刷可能データをラスタライズし、その結果ラスタライズされたデータを、フレームバッファにおける複数のカラープレーンのうちの少なくとも一つに保存するステップと、前記印刷可能データを用いて少なくとも一つのオブジェクトの境界を決定するステップと、前記オブジェクトの境界のデータを用いてトラッピング対象の候補オブジェクトを選択するステップと、トラッピング対象として選択された候補オブジェクトに対応する前記少なくとも一つのカラープレーンのピクセルを修正するステップとを備える。
【0007】
オブジェクトの境界を決定するステップは、前記印刷可能データに含まれる前記オブジェクトにオブジェクトIDを割り当てるステップと、前記オブジェクトの形状に従って前記オブジェクトIDプレーンに前記オブジェクトIDを保存するステップと、前記オブジェクトIDプレーンに保存されたデータを用いてオブジェクトの境界を算出するステップと、をさらに備える。前記オブジェクトIDプレーンは、前記オブジェクトを、前記フレームバッファの前記少なくとも一つのカラープレーンにおけるピクセルに関連付けるオブジェクトID情報を保存する。前記オブジェクトIDプレーンにおいてオブジェクトの境界を算出するステップは、拡張されたオブジェクトと元のオブジェクトとの間のセット毎の差を計算するステップと、差分カーネルを用いてオブジェクトIDプレーンのオブジェクトをコンボリューションすることによって得られた結果からゼロではない値を検出するステップと、のうち、少なくとも一つをさらに備える。
【0008】
いくつかの実施形態においては、前記オブジェクトIDプレーンは、前記フレームバッファと同じ構成の二次元配列で実現される。他の実施形態においては、前記オブジェクトのIDプレーンに保存されたオブジェクトID情報は、圧縮された形式で保持される。ある実施形態においては、第二印刷可能データに含まれる前記オブジェクトに割り当てられた前記オブジェクトIDは、前記オブジェクトを一意的に識別する。他の実施形態においては、前記少なくとも一つのオブジェクトに割り当てられた前記オブジェクトIDは、隣接しないオブジェクトのオブジェクトIDと重複する。
【0009】
本発明の実施形態はまた、コンピュータ読取可能な媒体又はコンピュータ読取可能なメモリを用いるプロセッサによって作成、保存、アクセス又は修正されたソフトウェア、ファームウェア又はプログラム命令に関する。
【発明を実施するための最良の形態】
【0010】
以下において、これら及びその他の実施形態について、添付の図面を参照しながら詳細に説明する。
【0011】
本発明の様々な特徴が反映される実施形態に基づいて、第一印刷可能データから生成された第二印刷可能データ又は中間形式の印刷可能データを用いてトラッピングを実行するシステム及び方法が提供される。いくつかの実施形態においては、第一印刷可能データは文書のPDL記述の形式を取り、中間印刷可能データは当該PDL記述から生成されたオブジェクトのディスプレイリストの形式を取ることができる。
【0012】
図1は、例示的な文書印刷システムにおける構成要素を示すブロック図である。トラッピングを実行するアプリケーションは、図1に示すような、従来からの通信プロトコル及び/又はデータポートインターフェイスを用いて情報をやりとりする通信リンクを通じて相互接続されるコンピュータと印刷装置のネットワークに導入することができる。
【0013】
図1に示すように、例示的なシステム100は、コンピューティングデバイス110と、サーバ130とを含むコンピュータを含む。コンピューティングデバイス110とサーバ130は接続120を通じて通信することができ、これはネットワーク140を介することができる。コンピューティングデバイス110は、コンピュータワークステーション、デスクトップパソコン、ノートパソコン又はネットワーク化された環境で用いることができるその他のあらゆるコンピューティングデバイスにより構成することができる。サーバ130は、コンピューティングデバイス110及びその他のデバイス(図示せず)に接続することができるプラットフォームにより構成することができる。コンピューティングデバイス110及びサーバ130はプリンタ170を用いて文書を印刷するためのソフトウェア(図示せず)を実行することができる。
【0014】
コンピューティングデバイス110及び/又はサーバ130で実行される文書処理ソフトウェアによって、ユーザは文書を便利に閲覧、編集、処理及び保存することができる。文書内の印刷されるページはページ記述言語(PDL)によって記述することができる。PDLには、PostScript、Adobe PDF、HP PCL、Microsoft XPS及びこれらの変形例が含まれうる。文書のPDL記述によって、文書内の各ページについて高レベルの記述が提供される。文書が印刷される際、このPDL記述は多くの場合、より低レベルのプリンタ固有の一連のコマンドに変換される。
【0015】
PDLからより低レベルのプリンタ固有のコマンドへの変換処理は、複雑である場合があり、例示的プリンタ170が提供する特徴及び性能による。例えば、プリンタ170はデータを段階的に処理することがある。第一段階では、プリンタ170においてPDLコマンドを解析し、高レベルの命令を、基本命令と呼ばれるより低レベルの命令に分解することができる。これらの基本命令は、プリンタ170において次の段階へと送られ、これらを用いてページ上のマークを置く位置を決定することができる。場合によっては、各基本命令を生成すると同時に処理してもよい。他のシステムにおいては、多数の基本命令を生成、保存してから処理してもよい。例えば、ある一つのページを記述するのに必要な基本命令を生成し、リストに保存してから処理することができる。保存された基本命令は中間リスト又はディスプレイリストと称する。
【0016】
例示的プリンタ170は、電子データから物理的文書を作成する装置を含み、このような装置にはレーザープリンタ、インクジェットプリンタ、LEDプリンタ、プロッタ、ファクシミリ装置及びデジタルコピー機が含まれるが、これらに限定されない。例示的プリンタ170は、接続120を介してコンピューティングデバイス110又はサーバ130から受信した文書を直接印刷することができる。いくつかの実施形態においては、このような構成を用いて、コンピューティングデバイス110又はサーバ130による追加処理を行った上で(又は行わずに)、文書を直接印刷してもよい。テキスト、グラフィック及びイメージのうち、一以上を含む文書の処理は分散することができる。従って、プリンタ170が文書を物理的に印刷する前に、コンピューティングデバイス110、サーバ130及び/又はプリンタは、ハーフトーニング、カラーマッチング及び/又はマニピュレーション等の文書の印刷処理の一部を実行することができる。
【0017】
コンピューティングデバイス110は取り外し可能なメディアドライブ150を有する。取り外し可能なメディアドライブ150には、例えば3.5インチフロッピーディスクドライブ、CD−ROMドライブ、DVD ROMドライブ、CD±RW若しくはDVD±RWドライブ、USBフラッシュドライブ及び/又はその他のあらゆる取り外し可能なメディアドライブが含まれる。アプリケーションの一部が取り外し可能な媒体に置かれており、システム100に従った動作に先立って、取り外し可能なメディアドライブ150を用いてコンピューティングデバイス110によって読み出される。
【0018】
接続120はコンピューティングデバイス110、サーバ130及びプリンタ170を接続し、従来からの通信プロトコル及び/又はデータポートインターフェイスを用いた有線又は無線での接続によって実現することができる。一般に、接続120には各装置間のデータの送受信を行うあらゆる通信回線を用いることができる。ある実施形態においては、適切な接続を介したデータの送受信を行うため、例えば各装置に従来からあるデータポートを設ける。このようなデータポートにはパラレルポート、シリアルポート、Ethernet(登録商標)、USB、SCSI、FIREWIRE及び/又は同軸ケーブルポート等が含まれる。
【0019】
ネットワーク140には、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)又はインターネットが含まれうる。いくつかの実施形態においては、ネットワーク140上で送信される情報を暗号化して、送信されるデータのセキュリティを確保することができる。プリンタ170は接続120を介してネットワーク140に接続することができる。また、例示的プリンタ170はコンピューティングデバイス110及び/又はサーバ130に直接接続することができる。システム100はその他の周辺機器を含むことができる(図示せず)。印刷装置におけるトラッピングを実現するためのアプリケーションは、図1に示すように、一以上の例示的なコンピュータ又はプリンタに置くことができる。例えば、コンピューティングデバイス110が、サーバ130から直接ダウンロードしたソフトウェアを実行して、そのアプリケーションの一部を例示的プリンタ170によって実行することができる。
【0020】
図2は、例示的プリンタ170を示す高レベルブロック図である。例示的プリンタ170は、CPU176と、ファームウェア171と、メモリ172と、入出力ポート175と、プリントエンジン177と、二次記憶装置173と、を備え、各部はバス174を介して互いに接続される。また、例示的プリンタ170は、文書の印刷又は処理のアプリケーションの一部が実行可能なその他の特定用途向けIC(ASIC)及び/又はフィールドプログラマブルゲートアレイ(FPGA)178を含むことができる。例示的プリンタ170はI/Oポート175及び接続120を用いてコンピューティングデバイス110の二次記憶装置又はその他のメモリにアクセスすることができる。いくつかの実施形態においては、プリンタ170はプリンタオペレーティングシステム及びその他の適切なアプリケーションソフトウェアを含むソフトウェアを実行することができる。例示的プリンタ170において、他のオプションのうち、用紙サイズ、出力トレイ、色の選択及び印字解像度については、ユーザ設定可能とすることができる。
【0021】
例示的CPU176は、汎用プロセッサ、専用プロセッサ又は組み込みプロセッサであることできる。CPU176は、メモリ172及び/又はファームウェア171と制御情報及び制御命令を含むデータのやりとりをすることができる。メモリ172は、あらゆる種類のダイナミックランダムアクセスメモリ(DRAM)であることができ、SDRAM又はRDRAM等が含まれるがこれらに限定されない。ファームウェア171は命令及びデータを含むことができ、これらには起動シーケンス、画像処理、トラッピング及び文書処理に関するルーチン等のあらかじめ設定されたルーチン、並びにその他のコードが含まれるがこれらに限定されない。いくつかの実施形態においては、CPU176によって実行される前に、ファームウェア171のコード及びデータはメモリ172にコピーされてもよい。ファームウェア171のルーチンには、コンピューティングデバイス110から受信したページ記述をディスプレイリストに変換するコードを含めることができる。いくつかの実施形態においては、ファームウェア171はディスプレイリストのディスプレイコマンドを適切にラスタライズされたビットマップに変換して、当該ビットマップをメモリ172に保存するラスタライゼーションルーチンを含むことができる。ファームウェア171は、圧縮、トラッピング及びメモリ管理ルーチンを含むことができる。ファームウェア171に含まれるデータ及び命令は、コンピュータ110、ネットワーク140、プリンタ170に接続された取り外し可能な媒体及び/又は二次記憶装置173のうち一つ以上を用いてアップグレードすることができる。
【0022】
例示的CPU176は命令及びデータに従って動作し、ASIC/FPGA178及びプリントエンジン177を制御し、これらにデータを提供して、印刷された文書を生成することができる。また、ASIC/FPGA178はプリントエンジン177を制御し、これにデータを提供することができる。FPGA/ASIC178は一以上の変換、トラッピング、圧縮又はラスタライゼーションアルゴリズムを実行することができる。
【0023】
例示的コンピューティングデバイス110において、文書データを第一印刷可能データに変換することができる。いくつかの実施形態においては、第一印刷可能データは文書のPDL記述に対応することができる。そして、第一印刷可能データはプリンタ170に送信されて、中間印刷可能データに変換することができる。いくつかの実施形態においては、文書のPDL記述から一連の低レベルのプリンタ固有のコマンドを含む最終的な印刷可能データへの変換処理には、オブジェクトのディスプレイリストを含む中間印刷可能データの生成を含むことができる。ディスプレイリストは一以上のテキスト、グラフィック及びイメージのデータオブジェクトを有することができ、ディスプレイリストの一以上の種類のデータオブジェクトはユーザ文書内のオブジェクトに対応することができる。中間印刷可能データの生成を支援することができるディスプレイリストは、メモリ172又は二次記憶装置173に保存することができる。例示的二次記憶装置173は、内蔵若しくは外付けハードディスクドライブ、メモリスティック又はシステム200で用いることができる、その他のあらゆる記憶装置であることができる。いくつかの実施形態においては、文書処理を行う場所に応じて、ディスプレイリストを一以上のプリンタ170、コンピューティングデバイス110又はサーバ130の何れかに置いて、これらの間で転送することができる。ディスプレイリストを保存するメモリは、専用メモリであるか、若しくは汎用メモリの一部を構成するか又はこれらの組合せであることができる。いくつかの実施形態において、ディスプレイリストを有するメモリは、必要に応じて動的に割り当て、管理及び開放をすることができる。プリンタ170は、中間印刷可能データを最終的な形式の印刷可能データに変換して、この最終的な形式に基づいて、印刷する。
【0024】
図3はラスタイメージプロセッサにおいて利用されるフレームバッファのデータに、トラッピングを実行するための従来の方法のステップを示す、例示的フローチャート300である。処理はステップ300において、プリントジョブの開始によって始めることができる。ステップ310において、プリントジョブデータ315に対して言語処理を実行することができる。いくつかの実施形態においては、言語処理は言語サーバによって実行することができる。例えば、言語サーバはPDL言語レベルのオブジェクトを用いることができ、これらの言語レベルのオブジェクトをデータ、イメージ、テキスト及びグラフィックのオブジェクトに変換し、これらをディスプレイリスト325に追加することができる。例示的ディスプレイリスト325は、実際の印刷に先立つデータ処理の中間段階にあってもよく、次の形式へと変換する前に解析されてもよい。ディスプレイリストの描出から物理媒体への印刷に適した形式への変換の過程は、データのラスタライズ又はラスタライゼーションと呼ぶことができる。この画像の各ポイントは色や濃度等の情報を含む。例えば、基本的なラスタライゼーションは、一般にポリゴンを用いて描画される三次元シーンを用いることによって、また当該三次元シーンを二次元表面にレンダリングすることによって実現される。ポリゴンは三角形の集合体で表現することができる。三角形は三次元空間の三つの頂点で表現することができる。頂点は点、辺の終点又は二辺が交差するポリゴンの角を定義する。よって、基本的なラスタライゼーションでは、頂点のストリームを対応する二次元の点に変換し、変換された二次元の三角形を塗りつぶす。ラスタライゼーションの際には、ラスタライズされたデータは例示的フレームバッファ350等のフレームバッファに保存することができ、これは物理的にメモリ172に置くことができる。プリントエンジン177はフレームバッファ350のラスタライズされたデータを処理して、用紙等の印刷媒体に当該ページの印刷可能画像を形成することができる。
【0025】
ステップ330では、RIPはディスプレイリスト325にあるデータオブジェクトを処理し、ラスタライズされたその相当物をフレームバッファ350に生成することができる。いくつかの実施形態においては、ラスタイメージ処理をプリンタ170において実行することができる。例えば、一以上のCPU176、ASIC/FPGA178、メモリ172及び/又は二次記憶装置173を用いて、ラスタイメージ処理をプリンタ170において実行することができる。ソフトウェア、ファームウェア及び/又はASIC/FPGA178等の専用ハードウェアの何らかの組合せを用いて、ラスタイメージ処理をプリンタ170において実行することができる。フレームバッファ350は、プリントエンジン177によって印刷媒体に印刷するのに適した形式で、プリントオブジェクトの描画を保持することができる。
【0026】
トラッピングを実行する従来の方法においては、ステップ340において、エッジ情報をフレームバッファ350にあるデータから抽出することができる。従来のエッジ検出は、いくつかの周知のアルゴリズム及びそれらの変形物によって実行することができ、これらには、Infinite Symmetric Exponentialフィルタ(ISEF)、Cannyエッジ検出法(JohnF.Cannyによる)、Marr−Hildreth法(D.MarrとE.C.Hildrethによる)、Sobel法(I.Sobelによる)、Kirch法及びLaplacian法等が含まれる。フレームバッファ350のデータには、通常複数のカラープレーンのデータが含まれる。例えば、フレームバッファ350のCMYKプリンタデータには、シアン、マゼンタ、イエロー及びブラックのカラープレーンからのデータが含まれる。複数のカラープレーンの存在が、従来のエッジ検出処理をさらに複雑化させる。これにより、従来のエッジ検出アルゴリズムにおいて追加の計算が必要となって、処理の計算コストを増加させる。その性質上、従来のエッジ検出アルゴリズムは、エッジを検出するためにそのアルゴリズムが実行されるデータに関する仮定に依拠することから、概算となる。よって、このようなアルゴリズムは時折誤ってエッジを検出したり、エッジを検出しそこねたりすることがある。また、オブジェクト固有の情報がフレームバッファに存在しないので、従来のエッジ検出アルゴリズムではオブジェクト内のエッジとオブジェクトの間のエッジとを区別することができない。例えば、フレームバッファ350のデータに対して実行する従来のエッジ検出アルゴリズムでは、イメージのオブジェクト内部のエッジと、当該イメージのオブジェクトとそれに隣接する別のオブジェクトとの間のエッジとを、区別することができないことがある。
【0027】
一旦、各カラープレーン345についてのエッジ情報がフレームバッファ350から抽出されると、ステップ360では、フレームバッファ350内のデータに対してトラッピングを実行することができる。いくつかの周知のトラッピングアルゴリズムのうち、あらゆるものを用いてトラッピングを実行することができる。続いてステップ370では、トラッピングされたフレームバッファ355に対しあらゆる追加の処理を実行することができる。例えば、プリントエンジン177が追加の処理後に、トラッピングされたフレームバッファ355を印刷媒体にレンダリングすることとしてもよい。
【0028】
図4は、本発明のいくつかの実施形態に基づく、データにトラッピングを実行する方法のステップを示す例示的フローチャート400である。アルゴリズムはステップ410において、プリントジョブの開始によって始めることができる。図3の説明において述べたように、ステップ320において、プリントジョブデータ315に言語処理を施すことができる。例えば、言語処理は言語サーバによって実行することができる。言語サーバはPDL言語レベルのオブジェクトを用いて、これらの言語レベルのオブジェクトをデータ及びグラフィックのオブジェクトに変換し、これらをディスプレイリスト325に追加することができる。
【0029】
例示的フローチャートのステップ430において、ディスプレイリスト325にさらに処理を行ってオブジェクトIDデータを生成することができる。各ディスプレイリストオブジェクトについて、固有のオブジェクトIDを生成することができる。オブジェクトIDを用いることによって、あるページを構成する様々なグラフィックのオブジェクトを識別することができる。いくつかの実施形態においては、オブジェクトIDの保存にオブジェクトIDプレーン455を利用することができる。例えば、オブジェクトIDプレーンは一以上の二次元配列として実現することができる。いくつかの実施形態においては、オブジェクトIDプレーン455はフレームバッファ350と同じ構成とすることができる。例えば、以下に詳述するように、オブジェクトIDプレーン455は、フレームバッファ350とは論理的に別個の、追加のデータプレーンとして実現することができ、各オブジェクトに関連オブジェクトIDを割り当て、これをオブジェクトIDプレーン455に書き込むことができる。オブジェクトIDは、数字、文字、シンボルを用いてもよいし、ディスプレイリストオブジェクトを識別する同様の方法であればその他のあらゆる方法であってもよい。一般に、オブジェクトIDは、当該システムのニーズや性能に従ったビット幅で構成することができる。例えば、オブジェクトIDを16ビットとすれば、これにより216−1個の固有オブジェクトの識別が可能となる。一般に、ビット幅が大きくなればなるほど、より多くのディスプレイリストオブジェクトに固有識別子を割り当てることが可能となる。従って、メモリ172のサイズに基づいて又は所定のプリンタのタイプやモデルにおいて標準的なページのディスプレイリストに存在する個々のオブジェクトの数に基づいて、設計時にビット幅を選択することができる。例えば、装置の通常の又は意図された使用形態によれば、いくつかのプリンタモデルでは4ビットのオブジェクトIDで十分でありうる。
【0030】
いくつかの実施形態においては、ページの最初では1に初期化され、新しい言語レベルのオブジェクトの処理を始めるたびにインクリメントされるbビットカウンタを用いて、オブジェクトIDを実現することができる。ディスプレイリストオブジェクトはプリントジョブの各種言語命令に従って生成することができるが、各ディスプレイリストオブジェクトはその生成時のbビットカウンタの値と関連付けることができる。いくつかの実施形態においては、bビットの範囲を超えてカウンタをインクリメントすると1にセットされる。例えば、b=4でカウンタが15である場合(バイナリ1111)、1だけインクリメントするとカウンタは1にセットされる(バイナリ0001)。当該ページの言語レベルオブジェクトの数が15より少ない場合、これらはすべて固有のオブジェクトIDを有することになる。他方、言語レベルオブジェクトの数が15を超える場合、いくつかのオブジェクトは同じオブジェクトIDを有することがある。
【0031】
ステップ435において、ラスタイメージ処理はディスプレイリストオブジェクト及びオブジェクトIDデータ433に対して実行することができる。図3の説明において述べたように、ディスプレイリスト325のオブジェクトはフレームバッファ350にレンダリングすることができる。いくつかの実施形態においては、ディスプレイリスト325のオブジェクトをフレームバッファ350にレンダリングすると同時に、当該オブジェクトに関連するオブジェクトIDをオブジェクトIDプレーン455に書き込んで、その構成をフレームバッファ350における当該オブジェクトの構成と同じ構成としてもよい。例えば、オブジェクトをレンダリングする場合、フレームバッファ350に座標(x,y)のピクセルが記録されている場合、オブジェクトIDプレーンの対応するピクセル(x,y)が当該オブジェクトに関連付けられているオブジェクトIDの値にセットされる。
【0032】
図4は、例示的オブジェクトIDプレーン455を示す図である。例示的オブジェクトIDプレーン455は、(i)特定のパスを色で塗りつぶす、(ii)「L」という文字を当該ページに描く、という二つの指示から構成されるプリントジョブについて生成することができる。上述の二つの指示を伴うプリントジョブにおいて、パスを色で塗りつぶすのに用いられるディスプレイリストオブジェクトのオブジェクトIDは、1という数値を有する。他方、「L」という文字を描くのに用いられるディスプレイリストオブジェクトのオブジェクトIDは、2という数値を有することができる。よって、上述の例においては、ラスタイメージ処理のステップ435の後、オブジェクトIDプレーンは、パスによって記述され、色が塗られた領域であって1の数値で埋められた領域と、低レベルの命令が及ぶ文字「L」の領域であって、2の数値で埋められた領域とで構成される。いくつかの実施形態においては、オブジェクトIDプレーンのデータを圧縮することができる。例えば、データのスキャンラインにはランレングスコーディングを用いることができる。このような場合、オブジェクトIDプレーンは順序対のリストで構成された配列によって表現することができ、各リストはスキャンラインに対応し、各順序対は当該スキャンラインと交差するオブジェクトに対応する。順序対を用いてスキャンラインのピクセルの繰り返しを表現することができる。いくつかの実施形態においては、他の圧縮技術を用いてオブジェクトIDプレーンに利用されるメモリを減らすことができる。圧縮技術を用いる際には、好適なメモリ管理技術を用いてメモリの割り当て、開放及び管理をすることができる。
【0033】
ステップ440において、オブジェクトIDプレーン455のデータを用いてエッジを抽出することができる。次に、オブジェクトIDプレーン455においてエッジ検出アルゴリズムを用いて、トラッピング及び/又はエッジ強調に適したピクセルを検出することができる。このようなエッジ検出アルゴリズムの例には、オブジェクトIDプレーン455の各オブジェクトを拡張した後に、拡張されたオブジェクトと元のオブジェクトとの間のセット毎の差を計算する等の形態学的技法が含まれる。他のエッジ検出の技法には、差分カーネルを用いてオブジェクトIDプレーン455のオブジェクトをコンボリューションした後に、その結果から正の値又は負の値を検出することが含まれる。オブジェクトIDプレーン455は、オブジェクトと当該オブジェクトに対応するフレームバッファ350のピクセルとの関連を保存するので、オブジェクトIDプレーン455のデータを用いて、あるページの各オブジェクトに属する正確なピクセルのセットを明確に識別することができる。あるページの二つの隣接するピクセルが、オブジェクトIDプレーン455において異なるオブジェクトIDを有する場合、これらのピクセルは異なるオブジェクトに属することになり、よってトラッピングの候補となる。
【0034】
ある実施形態においては、より小さいビット幅(つまりより少ないビット数)を用いてオブジェクトIDを割り当てることが有利である場合がある。このような場合において、あるページのオブジェクトの数が当該ビット幅で記述することができる固有オブジェクトの数を超える場合は、オブジェクトIDが重複することがある。しかし、隣接するオブジェクトに固有オブジェクトIDが与えられさえすれば、ステップ440で用いるエッジ検出アルゴリズムによってオブジェクトの境界を検出し続けることができる。例えば、フレームバッファ350に各オブジェクトをレンダリングする前に、新しいオブジェクトが表示される領域又はその計算上の境界を調べ、既に使用されているオブジェクトIDのリストを作成することができる。当該リストに存在しないオブジェクトIDを新しいオブジェクトに割り当てることができる。いくつかの実施形態においては、図4を参照しながら説明したエッジ検出方法に、図3を参照しながら説明した従来のエッジ検出アルゴリズムを一以上組み合わせて用いることができる。
【0035】
いくつかの実施形態において、エッジ検出を、後に別個のステップとして実行するのではなく、ディスプレイリスト325のオブジェクトをレンダリングすると同時に実行することができる。レンダリングと同時に、ディスプレイリスト325のオブジェクトにエッジ検出を適用する場合、その境界を容易に算出できるオブジェクトに対して適用することが可能である。例えば、矩形のオブジェクト及び/又はオブジェクト同士の重なりが最小限となっている、若しくは重なりが存在しない場合が挙げられる。いくつかの実施形態においては、オブジェクトの境界についてオブジェクトプレーンに保存された記録を変更することによって、重なり合うオブジェクトについてもレンダリングの際にエッジ検出を実行することができる。オブジェクトID及びオブジェクトIDプレーンを使用するのは、オブジェクトデータをフレームバッファにおけるカラープレーンのピクセルに関連付ける一つの構成である。上述の方法が適用される状況や環境の詳細によっては、他のアプローチを用いることができる。例えば、オブジェクトの境界がレンダリングの際に決定される場合には、トラッピング対象の候補ピクセルを特定することができ、これらのピクセルに関する情報のみを保存すれば足りる。
【0036】
ステップ460において、標準的なトラッピングのアルゴリズムは、トラッピング対象として選択された候補に対応するカラープレーンのピクセルに適用することができる。フレームバッファ350は複数のカラープレーンで構成されることがあるので、候補のカラープレーンを構成するピクセルを修正することができる。トラッピングを実施するいくつかの技術は、PostScriptリファレンスマニュアル、第三版、1999、アドビ社、に説明されており、これを全体として参照することによりその説明が援用される。具体的には§§6.3〜6.4参照。ここで注目すべき点は、オブジェクトとピクセルとの関連が保存されるので、オブジェクト内部のエッジに対するトラッピングをアルゴリズムが防ぐことができることである。例えば、イメージのオブジェクト内部のエッジはトラッピングされず、これによって通常良質な出力が導かれる。ある実施形態においてはテキストのオブジェクトにエッジ強調を適用することができる。他の実施形態においては、特定のフォントサイズより小さいテキストのオブジェクトに対してはトラッピングを実行しないことができる。
【0037】
いくつかの実施形態においては、上述の処理を実施するためのプログラムを、コンピュータ読取可能な媒体150又はコンピュータ読取可能メモリに記録することができる。これらには、読み出し専用メモリ(ROM)、プログラム可能な読み出し専用メモリ(PROM)、フラッシュメモリ、不揮発性ランダムアクセスメモリ(NVRAM)又はセキュアデジタル(SD)メモリカード、コンパクトフラッシュ(登録商標)、スマートメディア(登録商標)、メモリスティック(登録商標)等のデジタルメモリカード等を含むが、これらに限定されない。いくつかの実施形態においては、一種類以上のコンピュータ読取可能な媒体をプリンタ170に接続することができる。特定の実施形態においては、本明細書に開示されるシステム、方法及び構成を実施するためのプログラムの一部は、ネットワーク140を介して配信することができる。
【0038】
本発明のその他の実施形態は、本明細書に開示される、詳細な説明の検討及び本発明の一以上の実施形態の実施によって当業者にとって明らかとなるであろう。本明細書と実施例は例示とすることのみを意図しており、本発明の真の範囲や真の意図は請求項において示される。
【図面の簡単な説明】
【0039】
【図1】本発明のいくつかの実施形態に基づく、例示的な文書印刷システムにおける構成要素を示すブロック図である。
【図2】例示的プリンタを示す高レベルブロック図である。
【図3】ラスタイメージプロセッサにおいて利用されるフレームバッファのデータにトラッピングを実行する従来の方法のステップを示す例示的フローチャートである。
【図4】フレームバッファの例示的オブジェクトとオブジェクトIDプレーンのデータとの間の対応関係を示す図である。

【特許請求の範囲】
【請求項1】
印刷可能データに含まれるオブジェクト情報を用いてトラッピングを実行する方法であって、
前記印刷可能データをラスタライズし、その結果ラスタライズされたデータを、フレームバッファにおける複数のカラープレーンのうちの少なくとも一つに保存するステップと、
前記印刷可能データを用いて、少なくとも一つのオブジェクトの境界を決定するステップと、
前記オブジェクトの境界のデータを用いて、トラッピング対象の候補オブジェクトを選択するステップと、
トラッピング対象として選択された候補オブジェクトに対応する前記少なくとも一つのカラープレーンのピクセルを修正するステップと、
を備える方法。
【請求項2】
前記印刷可能データはディスプレイリストにより表される請求項1に記載の方法。
【請求項3】
前記印刷可能データを用いて前記少なくとも一つのオブジェクトの境界を決定するステップは、
前記印刷可能データに含まれる前記オブジェクトにオブジェクトIDを割り当てるステップと、
前記オブジェクトの形状に従って前記オブジェクトIDプレーンに前記オブジェクトIDを保存するステップと、
前記オブジェクトIDプレーンに保存されたデータを用いてオブジェクトの境界を算出するステップと、
をさらに備える請求項1に記載の方法。
【請求項4】
前記オブジェクトIDプレーンは、前記オブジェクトを、前記フレームバッファの前記少なくとも一つのカラープレーンにおけるピクセルに関連付けるオブジェクトID情報を保存する請求項3に記載の方法。
【請求項5】
前記オブジェクトIDプレーンは、前記フレームバッファと同じ構成の二次元配列で実現される請求項3に記載の方法。
【請求項6】
前記オブジェクトIDプレーンに保存されたオブジェクトID情報は、圧縮された形式で保持される請求項4に記載の方法。
【請求項7】
前記圧縮形式としてランレングスエンコーディングが用いられる請求項5に記載の方法。
【請求項8】
前記印刷可能データに含まれる前記オブジェクトに割り当てられた前記オブジェクトIDは、前記オブジェクトを一意的に識別する請求項3に記載の方法。
【請求項9】
前記少なくとも一つのオブジェクトに割り当てられた前記オブジェクトIDは、隣接しないオブジェクトのオブジェクトIDと重複する請求項3に記載の方法。
【請求項10】
前記オブジェクトIDプレーンにおいてオブジェクトの境界を算出するステップは、
拡張されたオブジェクトと元のオブジェクトとの間のセット毎の差を算出するステップと、
差分カーネルを用いてオブジェクトIDプレーンのオブジェクトをコンボリューションすることによって得られた結果からゼロではない値を検出するステップと、
のうち、少なくとも一つをさらに備える請求項3に記載の方法。
【請求項11】
コンピュータと、
印刷装置と、
のうち、少なくとも一つにおいて実行される請求項1に記載の方法。
【請求項12】
プロセッサが実行することによって、印刷可能データに含まれるオブジェクト情報を用いてトラッピング方法の以下のステップが実行される命令を記憶するコンピュータ読取可能な媒体であって、
前記印刷可能データをラスタライズし、その結果ラスタライズされたデータを、フレームバッファにおける複数のカラープレーンのうちの少なくとも一つに保存するステップと、
前記印刷可能データを用いて少なくとも一つのオブジェクトの境界を決定するステップと、
前記オブジェクトの境界のデータを用いてトラッピング対象の候補オブジェクトを選択するステップと、
トラッピング対象として選択された候補オブジェクトに対応する前記少なくとも一つのカラープレーンのピクセルを修正するステップと、
を備えるコンピュータ読取可能な媒体。
【請求項13】
前記印刷可能データを用いて前記少なくとも一つのオブジェクトの境界を決定するステップは、
前記印刷可能データに含まれる前記オブジェクトにオブジェクトIDを割り当てるステップと、
前記オブジェクトの形状に従って前記オブジェクトIDプレーンに前記オブジェクトIDを保存するステップと、
前記オブジェクトIDプレーンに保存されたデータを用いてオブジェクトの境界を算出するステップと、
をさらに備える請求項12に記載のコンピュータ読取可能な媒体。
【請求項14】
前記オブジェクトIDプレーンは、前記オブジェクトを、前記フレームバッファの前記少なくとも一つのカラープレーンにおけるピクセルに関連付けるオブジェクトID情報を保存する請求項13に記載のコンピュータ読取可能な媒体。
【請求項15】
前記オブジェクトIDプレーンに保存されたオブジェクトID情報は、圧縮された形式で保持される請求項13に記載の方法。
【請求項16】
前記オブジェクトIDプレーンにおいてオブジェクトの境界を算出するステップは、
拡張されたオブジェクトと元のオブジェクトとの間のセット毎の差を算出するステップと、
差分カーネルを用いてオブジェクトIDプレーンのオブジェクトをコンボリューションすることによって得られた結果からゼロではない値を検出するステップと、
のうち、少なくとも一つをさらに備える請求項13に記載のコンピュータ読取可能な媒体。
【請求項17】
プロセッサを制御して、印刷可能データに存在するオブジェクト情報を用いてトラッピング方法の以下のステップを実行させる命令を記憶するコンピュータ読取可能な記憶装置であって、
前記印刷可能データをラスタライズし、その結果ラスタライズされたデータをフレームバッファにおける複数のカラープレーンのうちの少なくとも一つに保存するステップと、
前記印刷可能データを用いて少なくとも一つのオブジェクトの境界を決定するステップと、
前記オブジェクトの境界のデータを用いてトラッピング対象の候補オブジェクトを選択するステップと、
トラッピング対象として選択された候補オブジェクトに対応する前記少なくとも一つのカラープレーンのピクセルを修正するステップと、
を備えるコンピュータ読取可能な記憶装置。
【請求項18】
前記印刷可能データを用いて前記少なくとも一つのオブジェクトの境界を決定するステップは、
前記印刷可能データに含まれる前記オブジェクトにオブジェクトIDを割り当てるステップと、
前記オブジェクトの形状に従って前記オブジェクトIDプレーンに前記オブジェクトIDを保存するステップと、
前記オブジェクトIDプレーンに保存されたデータを用いてオブジェクトの境界を算出するステップと、
をさらに備える請求項17に記載のコンピュータ読取可能な記憶装置。
【請求項19】
前記オブジェクトIDプレーンは、前記オブジェクトを、前記フレームバッファの前記少なくとも一つのカラープレーンにおけるピクセルに関連付けるオブジェクトID情報を保存する請求項18に記載のコンピュータ読取可能な記憶装置。
【請求項20】
前記オブジェクトIDプレーンにおいてオブジェクトの境界を算出するステップは、
拡張されたオブジェクトと元のオブジェクトとの間のセット毎の差を算出するステップと、
差分カーネルを用いてオブジェクトIDプレーンのオブジェクトをコンボリューションすることによって得られた結果からゼロではない値を検出するステップと、
のうち、少なくとも一つをさらに備える、請求項17に記載のコンピュータ読取可能な記憶装置。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2009−49978(P2009−49978A)
【公開日】平成21年3月5日(2009.3.5)
【国際特許分類】
【外国語出願】
【出願番号】特願2008−166668(P2008−166668)
【出願日】平成20年6月26日(2008.6.26)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.フロッピー
【出願人】(507031918)コニカ ミノルタ システムズ ラボラトリー, インコーポレイテッド (157)
【Fターム(参考)】