説明

画素に基づくラスタトラッピングの最適化のシステム及び方法

【課題】フレームバッファ画素に関連付けられたフラグの第一ビットよりトラッピングするフレームバッファ画素の特定が可能になる。
【解決手段】フレームバッファの画素710に関連付けられるフラグ720を用いることによって、トラッピングする画素の指標となりうる。画素が色付きである場合(725のYes)、画素の明度値が明度閾値を超えなければ、画素に関連付けられるフラグのビットは設定されうる。当該方法はラスタライゼーション処理を通じてビットの数値を書き換える処理を開示する。画素は、トラッピング時の少なくとも一つのビットの数値に基づいて、トラッピング候補として特定されうる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は印刷の分野に関し、特に、印刷装置においてトラッピングの最適化を実行するためのシステム及び方法に関する。
【背景技術】
【0002】
カラープリンタによって生成される画素は通常複数のカラープレーンからの色によって構成される。例えば、シアン、マゼンタ、イエロー及びブラック(「CMYK」)を用いるカラープリンタの場合、一つの画素は四つのカラープレーンのうちの一以上のものからの色を含むことができる。構成するカラープレーンの色を異なる強度で組み合わせることによりプリンタにおいて幅広く色を作成することができる。画素を構成する色成分は互いに重ねて又は非常に近接して印刷されることが理想的である。しかし、プリントエンジンのずれ、用紙の伸張、又はその他の機械的な精度不足に起因する位置ずれにより、一つの画素を構成する構成カラープレーンは適切に重ならず、その結果、ページ上の異なる色の領域の間に見苦しい小さな白い隙間、又は黒領域に色エッジが生じる。位置ずれを修正するにはトラッピングと称される技術を用いることが一般的であり、トラッピングとは色の領域をわずかに拡大又は縮小することによって白い隙間及び/又は図形オブジェクトの間の色エッジをなくすことである。トラッピングにより色が分離した部分に色の領域が挿入され、位置ずれによる視覚上の影響が隠される。
【発明の概要】
【発明が解決しようとする課題】
【0003】
トラッピングは多くの場合ラスタに基づくトラッピングを用いて実行されるが、このような処理には複数のカラープレーンに潜在的に及ぶフレームバッファのデータを用いてオブジェクトの境界を検出するという計算コストの高い工程が含まれる。計算上のコストが生じる主な理由は、トラッピングが画素毎に行われることによる。トラッピングが実行される場合、色は通常トラッピング領域内のより高い明度の画素から当該領域のより低い明度の画素へ流れる。よって、画素の明度とトラッピング領域内における画素の色への寄与を判断するのに大幅な中間処理が行われうる。
【0004】
例えば、CMYK色モデルを用いた横=縦=1の比較的小さな3×3ピクセルの領域におけるラスタに基づくトラッピングの実行でさえ、少なくとも36ピクセル値(4つの平面上の9ピクセル)のメモリの場所を確認し比較することが必要となる。計算上のコストは画素毎の総当りでのアプローチと大きく関係するため、潜在的なトラッピング候補として処理される画素数を減らすことによって、計算コストの大幅な減少を実現しうる。よって、画素に基づくラスタトラッピングの最適化を提供することによりトラッピングに関する計算上のコストを減らすシステム及び方法が必要となる。
【課題を解決するための手段】
【0005】
本発明による実施形態には、少なくとも一つのフレームバッファ画素をトラッピング候補として特定する方法が開示される。いくつかの実施形態においては、少なくとも一つのディスプレイリストオブジェクトと関連付けられる少なくとも一つのフレームバッファ画素をトラッピング候補として特定する方法において、少なくとも一つのフラグをフレームバッファ画素と関連付け、フレームバッファ画素をフレームバッファにレンダリングする際にフラグの第一ビットの数値を算出しうる。算出にはフレームバッファ画素の明度値が明度閾値を超えずかつオブジェクトが不透明である場合に、フラグの第一ビットを設定することを含みうる。フレームバッファ画素の明度値が明度閾値を超えかつオブジェクトが不透明である場合に、フラグの第一ビットを再設定しうる。非不透明ディスプレイリストオブジェクトについては、フレームバッファ画素の混合された明度値が明度閾値を超えない場合はフラグの第一ビットは設定され、フレームバッファ画素の混合された明度値が明度閾値を超える場合はフラグの第一ビットは再設定されうる。少なくとも一つのフレームバッファ画素に関連付けられたフラグの第一ビットが設定された場合、当該フレームバッファ画素はトラッピング候補として特定されうる。
【0006】
また、実施例は、コンピュータ読取可能なメディア又はコンピュータ読取可能なメモリを用いるプロセッサによって作成、格納、アクセス、又は修正されるソフトウェア、ファームウェア及びプログラム命令に関する。説明される方法はコンピュータ及び/又は印刷装置上で実行しうる。
【0007】
これら及びその他の実施例について添付の図面を参照しながら詳細に説明する。
【図面の簡単な説明】
【0008】
【図1】図1は、本発明のいくつかの実施形態に基づく文書を印刷するシステムの構成要素を示すブロック図を図示している。
【図2】図2は、例示的なプリンタの高水準ブロック図を図示している。
【図3】図3は、ラスタイメージプロセッサによって用いられるフレームバッファのデータに実行されるトラッピングの従来の方法におけるステップを示す例示的なフローチャートを図示している。
【図4】図4は、トラッピング最適化の方法におけるステップを示す例示的なフローチャートを図示している。
【図5】図5は、フレームバッファの画素に関連付けられるフラグを設定する例示的な方法を示すフローチャートを図示している。
【図6】図6A、図6B、図6C及び図6Dは、図形オブジェクトに不透明及び非不透明処理が実行される場合、画素に関連付けられた色付きフラグへの変更を例示的に図示している。
【図7】図7は、画素に関連付けられたフラグを解析する例示的方法を示すフローチャートを図示している。
【発明を実施するための形態】
【0009】
本発明の様々な特徴が反映される実施形態に基づいて、第一印刷可能データから生成された第二印刷可能データ又は中間形式の印刷可能データを用いてトラッピングを実行するシステム及び方法が提供される。いくつかの実施形態においては、第一印刷可能データは文書のPDL記述の形式を取り、中間印刷可能データは当該PDL記述から生成されたオブジェクトのディスプレイリストの形式を取ることができる。
【0010】
図1は、例示的な文書印刷システムにおける構成要素を示すブロック図である。トラッピングを実行するアプリケーションは、図1に示すような、従来からの通信プロトコル及び/又はデータポートインターフェイスを用いて情報をやりとりする通信リンクを通じて接続されるコンピュータと印刷装置のネットワークに導入することができる。
【0011】
図1に示すように、例示的なシステム100は、コンピューティングデバイス110と、サーバ130とを備えるコンピュータを含む。コンピューティングデバイス110とサーバ130は接続120を通じて通信することができ、これはネットワーク140を介することができる。コンピューティングデバイス110は、コンピュータワークステーション、デスクトップパソコン、ノートパソコン、又はネットワーク化された環境で用いることができるその他のあらゆるコンピューティングデバイスにより構成することができる。サーバ130は、コンピューティングデバイス110及びその他のデバイス(図示せず)に接続することができるプラットフォームにより構成することができる。コンピューティングデバイス110及びサーバ130はプリンタ170を用いて文書を印刷するためのソフトウェア(図示せず)を実行することができる。
【0012】
コンピューティングデバイス110及び/又はサーバ130で実行される文書処理ソフトウェアによって、ユーザは文書を便利に閲覧、編集、処理及び保存することができる。文書内の印刷されるページはページ記述言語(PDL)によって記述することができる。PDLには、PostScript(登録商標)、Adobe(登録商標)PDF、HP(登録商標)PCL、Microsoft(登録商標)XPS、及びこれらの変形例が含まれうる。文書のPDL記述によって、文書内の各ページについて高水準の記述が提供される。多くの場合、このPDL記述は文書が印刷される際に各プリンタ固有のより低水準の一連のコマンドに翻訳される。
【0013】
PDLからより低水準のプリンタ固有のコマンドへの翻訳処理は、複雑である場合があるが、例示的プリンタ170によって提供される特徴及び性能次第である。例えば、プリンタ170は、データを段階的に処理しうる。第一段階では、プリンタ170においてPDLコマンドをパースし、高水準の命令を基本命令と称されるより低水準の命令に分解することができる。これらの基本命令は、例示的プリンタ170において続く段階へと送られ、これらを用いてページ上のマークを置く位置を決定することができる。場合によっては、各基本命令を生成すると同時に、処理しうる。他のシステムにおいては、多数の基本命令を生成、保存してから、処理しうる。例えば、ある一つのページを記述するのに必要な基本命令を生成し、リストに保存してから、処理することができる。保存された基本命令は中間リスト又はディスプレイリストと称する。
【0014】
一般に、プリンタ170は、電子データから物理的文書を作成するように構成される装置を含み、このような装置にはレーザープリンタやLEDプリンタ等の電子写真式プリンタ、サーマルプリンタ、レーザ撮像装置及びオフセットプリンタが含まれるが、これらに限定されない。プリンタ170はファクシミリ機やデジタルコピー機が備えるような画像送受信機能、画像スキャナ機能、及び/又はコピー機能を有しうる。例示的プリンタ170は、接続120を介してコンピューティングデバイス110又はサーバ130から受信した文書を直接印刷することができる。いくつかの実施形態においては、このような構成を用いて、コンピューティングデバイス110又はサーバ130による追加処理を行った上で(又は行わずに)、文書を直接印刷しうる。テキスト、図形、及び画像のうち、一以上を含む文書の処理は分散することができる。したがって、プリンタ170が文書を物理的に印刷する前に、コンピューティングデバイス110、サーバ130及び/又はプリンタは、ハーフトーニング、カラーマッチング、及び/又はその他の処理等の文書の印刷処理の一部を実行することができる。
【0015】
コンピューティングデバイス110は取り外し可能なメディアドライブ150を有する。取り外し可能なメディアドライブ150には、例えば3.5インチフロッピーディスクドライブ、CD−ROMドライブ、DVD ROMドライブ、CD±RWもしくはDVD±RWドライブ、USBフラッシュドライブ、及び/又はその他のあらゆる取り外し可能なメディアドライブが含まれる。アプリケーションの一部が取り外し可能な媒体に置かれており、システム100に従った動作に先立って、取り外し可能なメディアドライブ150を用いてコンピューティングデバイス110によって読み出される。
【0016】
接続120はコンピューティングデバイス110、サーバ130及びプリンタ170を接続し、従来からの通信プロトコル及び/又はデータポートインターフェイスを用いた有線又は無線での接続によって実現することができる。一般に、接続120には各装置間のデータの送受信を行うあらゆる通信回線を用いることができる。ある実施形態においては、適切な接続を介したデータの送受信を行うため、例えば各装置に従来からあるデータポートを設け、このようなデータポートにはパラレルポート、シリアルポート、Ethernet、USB(登録商標)、SCSI、FIREWIRE(登録商標)、及び/又は同軸ケーブルポート等が含まれる。
【0017】
ネットワーク140には、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、又はインターネットが含まれうる。いくつかの実施形態においては、ネットワーク140上で送信される情報を暗号化して、送信されるデータのセキュリティを確保しうる。プリンタ170は接続120を介してネットワーク140に接続しうる。また、例示的プリンタ170はコンピューティングデバイス110及び/又はサーバ130に直接接続しうる。システム100はその他の周辺機器(図示せず)を含みうる。印刷装置におけるトラッピングを実現するためのアプリケーションは、図1に示すように、例示的なコンピュータ又はプリンタのうちの一以上に置くことができる。例えば、コンピューティングデバイス110が、サーバ130から直接ダウンロードしたソフトウェアを実行して、そのアプリケーションの一部を例示的プリンタ170によって実行しうる。
【0018】
図2は、例示的プリンタ170を示す高水準ブロック図である。例示的プリンタ170は、CPU176と、ファームウェア171と、メモリ172と、入出力ポート175と、プリントエンジン177と、二次記憶装置173と、を備え、各部はバス174を介して互いに接続される。また、例示的プリンタ170は、文書の印刷又は処理のアプリケーションの一部が実行可能なその他の特定用途向けIC(ASIC)及び/又はフィールドプログラマブルゲートアレイ(FPGA)178を有しうる。例示的プリンタ170はI/Oポート175及び接続120を用いてコンピューティングデバイス110の二次記憶装置又はその他のメモリにアクセスすることができる。いくつかの実施形態においては、プリンタ170はプリンタオペレーティングシステム及びその他の適切なアプリケーションソフトウェアを含むソフトウェアを実行することができる。例示的プリンタ170において、他のオプションのうち、用紙サイズ、出力トレイ、色の選択、及び印字解像度については、ユーザ設定可能とすることができる。
【0019】
例示的CPU176は、汎用プロセッサ、専用プロセッサ、又は組み込みプロセッサであることできる。CPU176は、メモリ172及び/又はファームウェア171と制御情報及び制御命令を含むデータのやりとりをすることができる。メモリ172は、あらゆる種類のダイナミックランダムアクセスメモリ(DRAM)であることができ、SDRAM又はRDRAM等が含まれるがこれらに限定されない。ファームウェア171は命令及びデータを含むことができ、これらには起動シーケンス、画像処理、トラッピング、及び文書処理に関するルーチン等のあらかじめ設定されたルーチン、並びにその他のコードが含まれるがこれらに限定されない。いくつかの実施形態においては、CPU176によって実行される前に、ファームウェア171のコード及びデータはメモリ172にコピーされてもよい。ファームウェア171のルーチンには、コンピューティングデバイス110から受信したページ記述をディスプレイリストに翻訳するコードが含まれうる。いくつかの実施形態においては、ファームウェア171はディスプレイリストのディスプレイコマンドを適切にラスタライズされたビットマップに変換して、当該ビットマップをメモリ172に保存するラスタライゼーションルーチンを含むことができる。ファームウェア171は、圧縮、トラッピング及びメモリ管理ルーチンを含むことができる。ファームウェア171に含まれるデータ及び命令は、コンピュータ110、ネットワーク140、プリンタ170に接続された取り外し可能な媒体、及び/又は二次記憶装置173のうち一つ以上を用いてアップグレードすることができる。
【0020】
例示的CPU176は命令及びデータに従って動作し、ASIC/FPGA178及びプリントエンジン177を制御し、これらにデータを提供して、印刷された文書を生成しうる。また、ASIC/FPGA178はプリントエンジン177を制御し、これにデータを提供しうる。FPGA/ASIC178は翻訳、トラッピング、圧縮及びラスタライゼーションアルゴリズムのうちの一以上を実行しうる。
【0021】
例示的コンピューティングデバイス110において、文書データを第一印刷可能データに変換しうる。いくつかの実施形態においては、第一印刷可能データは文書のPDL記述に対応しうる。そして、第一印刷可能データはプリンタ170に送信されて、中間印刷可能データに変換することができる。いくつかの実施形態においては、文書のPDL記述から一連の低水準のプリンタ固有のコマンドを含む最終的な印刷可能データへの変換処理には、オブジェクトのディスプレイリストを含む中間印刷可能データの生成を含みうる。ディスプレイリストはテキスト、図形及び画像データオブジェクトのうちの一以上を有し、ディスプレイリストの一以上の種類のデータオブジェクトはユーザ文書内のオブジェクトに対応しうる。
【0022】
最終的な印刷可能データの生成を支援しうるディスプレイリストは、メモリ172又は二次記憶装置173に保存しうる。例示的二次記憶装置173は、内蔵もしくは外付けハードディスク、メモリスティック又はシステム200で用いることができる、その他のあらゆる記憶装置でありうる。いくつかの実施形態においては、文書処理を行う場所に応じて、ディスプレイリストをプリンタ170、コンピューティングデバイス110、及びサーバ130のうちの一以上に置いて、これらの間で転送することができる。ディスプレイリストを保存するメモリは、専用メモリであるか、もしくは汎用メモリの一部を構成するか、又はこれらの組合せでありうる。いくつかの実施形態において、ディスプレイリストを有するメモリは、必要に応じて動的に割り当て、管理、及び開放しうる。プリンタ170は、中間印刷可能データを最終的な形式の印刷可能データに変換して、この最終的な形式に基づいて、印刷しうる。
【0023】
図3はラスタイメージプロセッサにおいて利用されるフレームバッファのデータに、トラッピングを実行するための従来の方法のステップを図示する、例示的フローチャート300を示す。処理はステップ310において、プリントジョブの開始によって始めうる。ステップ320において、プリントジョブデータ315に対して言語処理を実行することができる。いくつかの実施形態においては、言語処理は言語サーバによって実行しうる。例えば、言語サーバはPDL言語レベルのオブジェクトを用いて、これらの言語レベルのオブジェクトをデータ、画像、テキスト、及び図形オブジェクトに変換し、これらのオブジェクトをディスプレイリスト325に追加しうる。
【0024】
例示的ディスプレイリスト325は、実際の印刷に先立つデータ処理の中間段階であり、次の形式への変換の前にパースしうる。ディスプレイリストによる表現から物理媒体への印刷に適切な形式への変換処理はデータのラスタライズ又はラスタライゼーションと呼びうる。ディスプレイリスト325はディスプレイリストオブジェクトについて、色、不透明度、明度、境界情報及び深度等の情報を含みうる。例えば、基本的なラスタライゼーションは、一般にポリゴンを用いて記述される三次元シーンを用いて、当該三次元シーンを二次元平面にレンダリングすることによって実現しうる。ポリゴンは三角形の集合体で表現することができる。三角形は三次元空間の三つの頂点で表現することができる。頂点はポイント、辺の終点、又は二辺が交差するポリゴンの角を定義する。よって、基本的なラスタライゼーションによって一連の頂点を、対応する二次元のポイントに変換し、変換された二次元の三角形を塗りつぶしうる。ラスタライゼーションの際には、ラスタライズされたデータは例示的フレームバッファ350等のフレームバッファに保存し、物理的にメモリ172に置きうる。プリントエンジン177はフレームバッファ350のラスタライズされたデータを処理して、用紙等の印刷媒体に当該ページの印刷可能画像を形成しうる。
【0025】
ステップ330では、ラスタイメージ処理(RIP)モジュールはディスプレイリスト325のオブジェクトを処理し、フレームバッファ350にラスタライズされたその相当物を生成しうる。いくつかの実施形態においては、ラスタイメージ処理をプリンタ170において実行しうる。例えば、CPU176、ASIC/FPGA178、メモリ172及び/又は二次記憶装置173のうちの一以上を用いてラスタイメージ処理をプリンタ170において実行しうる。ソフトウェア、ファームウェア、及び/又はASIC/FPGA178等の専用ハードウェアの何らかの組合せを用いて、ラスタイメージ処理をプリンタ170において実行しうる。フレームバッファ350は、プリントエンジン177によって印刷媒体に印刷するのに適切な形式で、プリントオブジェクトの表現を保持しうる。
【0026】
フレームバッファ350のデータには続いてステップ360においてトラッピングが施されうる。いくつかの公知のトラッピングアルゴリズムのうちのいずれかを用いてトラッピングを実行しうる。トラッピングされたフレームバッファ355には次にステップ370においてあらゆる追加の処理を施しうる。例えば、プリントエンジン177はさらに処理を実行した後にトラッピングされたフレームバッファ355を印刷媒体にレンダリングしうる。従来のトラッピングアルゴリズムは通常画素毎に実行されて計算コストが高くなりうるため、最適化により、計算の複雑性が低減しうる。本明細書に開示されるいくつかの実施形態においては、トラッピング領域の検索を最適化するアルゴリズムにより画素及び/又はオブジェクト特性に基づいて画素にフラグを関連付けし、画素のフラグ値を用いて、トラッピング候補を決定しうる。
【0027】
図4はトラッピング最適化の方法の各ステップを示す例示的フローチャート400を図示する。いくつかの実施形態においては、フローチャート400に示される方法はステップ330においてラスタイメージ処理モジュールを用いて実行しうる。
【0028】
いくつかの実施形態においては、何らかの色のオブジェクトと関連付けられた画素は「色付き画素」として識別されうる。いくつかの実施形態においては、第一ビット又はフラグを用いてある画素が色付き画素か色無し画素とされるかを示して、第二ビット又はフラグを用いて、一以上の画素特性の数値に基づいて当該画素がトラッピング目的で色付き画素か色無し画素とされるかを示しうる。よって、ある標識の数値に基づいて色付き(カラーオブジェクトと関連付けられる)とされる画素は他の標識の数値に基づいてトラッピング目的では色無しと判断されうる。例えば、本明細書に開示される最適化により第一フラグでは当該画素が色付きと示されるのに対し、第二フラグでは当該画素がトラッピング目的で色無しと示される画素について、トラッピング候補として画素を除外するのに用いうる。
【0029】
注目すべき点は、トラッピングアルゴリズムでは通常、印刷ページの「白」又は空白部分に対応する色無しとされる画素を考慮しない点である。トラッピング候補は色付き画素から挙がるので、トラッピングアルゴリズムにおいて色無しと示される画素は無視され、これによりトラッピングにおいて確認される画素数を減らしうる。いくつかの実施形態においては、トラッピングアルゴリズムにおいて色無しとされる色領域が示されることによってトラッピング候補を検索する領域を減らすことができる。いくつかの実施形態においては、一以上のフラグが画素特性及び/又は画素に関連付けられたオブジェクトの特性に基づいて画素に関連付けられて、当該画素がトラッピング候補に含まれる可能性を増加又は減少させる画素の特徴を示すのに用いられうる。例えば、ある実施形態においては、トラッピングアルゴリズム目的でフラグを用いて画素が「色付き」又は「色無し」とされるかを示しうる。
【0030】
例示的フローチャート400のステップ430では、ある実施形態において、フレームバッファ350内のデータのラスタライゼーションの際又は別の実施形態においてフレームバッファ350内のデータのラスタライゼーションの直前にフラグ設定ルーチンを実行しうる。ステップ430では、ディスプレイリスト325のオブジェクトは処理されて、画素に関連付けられた一以上のフラグについての数値が設定されうる。いくつかの実施形態においては、フラグは複数のビットを含み、フラグのいくらかの割合のビットを用いて画素に関連する情報を含めうる。例えば、フラグ内のビットの一つを用いて画素が色付き(又は色無し)であることを示して、他のビットを用いて(これらに限定されないが)ソース、クラスタイプ(テキスト、図形、階調度、画像、等)、トラッピング目的での色付き(又は色無し)等を示す情報及び/又は画素についてのその他の情報を示しうる。
【0031】
説明の便宜上、「色付き」及び「色無し」という用語は以下、トラッピング目的での画素の分類を示すために用いられる。各オブジェクトはステップ430において処理されるので、当該オブジェクトに対応する画素は指定された画素特性に基づいて色付きとしてフラグが付され、対応する色付きフラグは真として設定しうる。例えば、フラグにビットの設定をすることによってビットの数値に論理「1」が割り当てられ、フラグにビットの再設定をすることによってビットの数値に論理「0」が割り当てられうる。一般に、複数のマルチビットフラグがあらゆる画素に関連付けられて、様々な条件、画素特性及びオブジェクトに関連するパラメータを示しうる。しかし、説明の便宜上、実施形態においては色付きフラグについて説明がされ、当該フラグはフレームバッファの画素がトラッピングアルゴリズム目的でオブジェクトと関連付けられるとされるか否かを示す。いくつかの実施形態においては、フレームバッファ内の各画素は、画素に関連付けられた明確な色付きフラグを有しうる。
【0032】
いくつかの実施形態においては、ステップ430で各オブジェクトは処理されると、当該オブジェクトに対応する各画素に関連付けられるフラグは、物理的にメモリ172に位置しうる例示的オブジェクトフラグバッファ455等のオブジェクトフラグバッファに格納されうる。いくつかの実施形態においては、フラグバッファ455のフラグとフレームバッファ350の画素との間で一対一の対応関係が見られうる。いくつかの実施形態においては、フラグバッファ455は一以上の二次元配列で実現しうる。いくつかの実施形態においては、フレームバッファ350の各位置とフラグバッファ455の各位置が直接相関関係を有するように、フラグバッファ455はフレームバッファ350と同じ配列で構成されうる。いくつかの実施形態においては、フラグバッファ455はフレームバッファ350と論理上異なり、各画素にはフラグが割り当てられ、フラグバッファ455の適切な場所に書き込まれうる。
【0033】
ディスプレイリスト325の各オブジェクトがラスタライズされると、ステップ430でオブジェクトに対応する画素に関連付けられた(フラグバッファ455内の)色付きフラグは当該画素に関連付けられた条件に基づいて真として設定することができる。通常ラスタバッファの画素に基づくトラッピングにおいて、色の寄与又は色の流れの方向はより高い明度の領域からより低い明度の領域に向かう。しかし、白い領域にある画素はトラッピングアルゴリズムにより無視されうる。例えば、シアン、マゼンタ、イエロー及びブラックの数値が(C,M,Y,K)=(0,0,0,0)に対応する画素P1は色無しとされ、画素P1に関連付けられた色付きフラグは書き換えられて画素P1は色無しであると示しうる。よって、画素P1は続くトラッピングアルゴリズムにおいてトラッピング候補として選択されないことがありうる。よって、画素P1は他の周辺の画素に色を寄与せず、又その周辺から色の寄与を受けないことがありうる。
【0034】
しかし、人間の視覚の観点からは、人間の視覚では白と区別することが難しい高い明度値の範囲が存在する。よって、明度閾値を用いて白に知覚的に相当すると考えることができる画素を特定しうる。一般に、画素の明度値が明度閾値を超える場合、画素に関連付けられたフラグ又はその他の標識は書き換えられて、当該画素はトラッピングアルゴリズムにおいて色無しとされることを示しうる。他方、画素の明度が明度閾値を超えない場合、画素に関連付けられたフラグ又はその他の標識は書き換えられて、画素がトラッピングアルゴリズムにおいて色付きとされることを示しうる。いくつかの実施形態においては、明度閾値は予め定義され及び/又は指定された数値の範囲内でユーザが選択しうる。
【0035】
いくつかの実施形態においては、画素に関連付けられた色付きフラグの数値は明度に基づいて変更されうるが、画素の色値は変更されないままのことがありうる。例えば、ラスタライゼーションの際に、色付きの画素の明度値がある明度閾値を超えるとされる場合に当該画素の色値は保持したままで、当該画素に関連付けられた色付きフラグは偽(又はトラッピング目的で色無しとされていることを示す「0」)に再設定することができる。
【0036】
いくつかの実施形態においては、トラッピングアルゴリズムにおいて色付きフラグの数値を用いることによって、ある画素がトラッピング候補かを決定しうる。いくつかの実施形態においては、色無しと印されたフラグが関連付けられた画素はトラッピングアルゴリズムにより無視され、これによりトラッピング候補として考慮される画素数を減らしうる。トラッピングが実行される場合、トラッピングの判断において用いられる色付きフラグの数値を確認し、これを用いて当該画素がトラッピング候補か決定しうる。例えば、トラッピングの判断において用いられる色付きフラグが偽(「0」)である場合、つまり画素が色無しであることを示している場合、当該画素はトラッピングアルゴリズムにおいて無視しうる。よって、明度の計算(色の流れの方向を判断するため)及びトラッピングにおける寄与(色の寄与の量子を判断するため)の間に処理される画素数を減らすことができる。
【0037】
いくつかの場合においては、フレームバッファ350にオブジェクトが置かれると、当該オブジェクトに関連付けられた画素がフレームバッファ350にすでに存在する一以上のオブジェクトの各部分に重ねられうる。他のオブジェクトに重ねられるオブジェクトは不透明又は非不透明でありうる。いくつかの実施形態においては、ディスプレイリスト325はオブジェクトが不透明か非不透明かを示す情報を含みうる。いくつかの実施形態においては、現在処理されているオブジェクトがフレームバッファ350の他の先に処理されているオブジェクトに重ねられる場合、二つの重ねられたオブジェクトに関連する画素に関連付けられたフラグも修正されうる。フラグ修正の内容はオブジェクト間の重なりの内容に依存しうる。
【0038】
例えば、透明ではない又は不透明なオブジェクトがフレームバッファ350の一以上のすでに存在するオブジェクトに重ねられる場合、このような処理は不透明処理と称され、なぜなら新たに置かれるオブジェクトの画素により下に横たわる重ねられた画素が完全に覆い隠されることになるからである。言い換えると、現在のオブジェクトがフレームバッファ350に書き込まれると、各オブジェクトに共通するすべての画素は現在のオブジェクトの画素値を採用することになる。いくつかの実施形態においては、不透明処理の際に、下に横たわるオブジェクトに関する画素に関連付けられたフラグは、新たな(上に重ねられる)不透明オブジェクトに関連付けられた画素の対応するフラグ値により上書きされうる。例えば、以前色付きと印された画素が上に重ねられるオブジェクトの画素の明度値が明度閾値を超える場合には今度は色無しと印されうる。
【0039】
同様に、透明又は部分的に透明なオブジェクトがフレームバッファ350の一以上の先のオブジェクトに重ねられた場合、このような処理は非不透明処理と称される。このような非不透明処理においては、共通する画素の最終値が重なり合う各オブジェクトの画素値の畳み込みとなるように画素値は混合される。いくつかの実施形態においては、非不透明処理の間、重ねられた画素に関連付けられたフラグ値は混合後の明度値に基づいて修正されうる。よって、混合処理の後の重ねられた画素の明度値は明度閾値と比較され、これを用いて画素に関連付けられた色付きフラグに数値を割り当てうる。
【0040】
ステップ440において、フラグ解析ルーチンを用いてフラグバッファ455及びフレームバッファ350を解析し、トラッピング候補となる画素を特定しうる。トラッピング候補として特定される画素は、通常のトラッピングアルゴリズムを用いてステップ360において処理しうる。いくつかの実施形態においては、ステップ440のフラグ解析ルーチンはステップ360におけるトラッピングアルゴリズムの一部として含まれうる。
【0041】
図5はフレームバッファ350の画素に関連付けられたフラグを設定する例示的な方法を図示するフローチャート500を示す。いくつかの実施形態においては、フローチャート500の方法はステップ430におけるフラグ設定ルーチンの一部として実施されうる。当該アルゴリズムはステップ510において開始され、ディスプレイリスト325から抽出される一連のオブジェクトからのオブジェクトを処理しうる。いくつかの実施形態においては、フレームバッファ350の画素に関連付けられたフラグバッファ455の色付きフラグの数値は「0」または色無しに初期化されうる。
【0042】
ステップ520において現在処理されているオブジェクトに対応する画素に関連付けられた色付きフラグ(及びその他のフラグ)の数値を設定することができる。いくつかの実施形態においては、ステップ520において、明度閾値を超えない、オブジェクトに対応する画素に関連付けられた色付きフラグを真と設定して、画素が色付きであり、現在トラッピングの候補であることを示すことができる。
【0043】
ステップ530において、オブジェクトに関連するパラメータを確認してオブジェクトが不透明か否かを判断しうる。オブジェクトが不透明の場合(「YES」)、次に、ステップ540において不透明処理が実行され、オブジェクトに対応する画素に関連付けられた色付きフラグはフラグバッファ455に書き込まれうる。
【0044】
ステップ530において、オブジェクトが非不透明である場合(「NO」)、次にステップ550において、非不透明処理が実行され、各オブジェクトの間の重なりに対応する画素に関連付けられたフラグは重なる画素の混合後の明度値に基づいてフラグバッファ455に書き込まれうる。フレームバッファ350に予め存在するオブジェクトに関連付けられる重ならない画素のフラグ値は元の数値を保持する。現在のオブジェクトに関連付けられた重ならない画素のフラグ値は現在のオブジェクトの画素の明度値に基づいて書き換えられる。ステップ560において、オブジェクトはフレームバッファ350にレンダリングすることができる。
【0045】
図6A、図6B、図6C及び図6Dは不透明処理及び非不透明処理が図形オブジェクトに実行された場合に、画素に関連付けられた色付きフラグの変更を例示的に図示している。フレームバッファ350の図形オブジェクトの画素に関連付けられたフラグの例示的な図形の図示600が図6Aに示されている。図6Aに示されているように、図形オブジェクト510は空きフレームバッファ350において色付きとされ、図形オブジェクト510を表す画素に関連付けられたフラグ610はフラグバッファ455において書き換えられうる。フレームバッファ455のフラグ610は色付きフラグ又は色付きビットを有しうる。図6Aに示すように、オブジェクト510に関連付けられた画素の明度値は明度閾値を超えないので、オブジェクト510に対応する画素に関連付けられた領域610の色付きフラグは数値「1」(色付き)を保持する。
【0046】
図6Bは元々存在するオブジェクト515の上に置かれた新しい例示的な非不透明カラーオブジェクト520に関連付けられた、フレームバッファ350の画素及び対応するフレームバッファ455のフラグを表す図示605を示す。オブジェクト515と非不透明オブジェクト520を重ねることによって、重畳共通領域530が発生する。図6Bに示すように、オブジェクト515、520及び530の画素に関連付けられた色付きフラグ領域はそれぞれ615、620及び630である。図6Bに示すように、領域615のフラグの数値は重畳領域530の外にあるオブジェクト515に関連付けられた画素の明度値に基づくのに対し、領域620(点線で示す)のフラグの数値はオブジェクト520に関連付けられた、重ねられていない画素の明度値に基づく。オブジェクト520に関連付けられた画素の明度値は明度閾値を超えるため、フラグバッファ455の領域620のフラグは色無しと印される。重畳領域530のフラグの数値は、オブジェクト515及び520の混合処理が完了した後の画素の明度値に基づく。
【0047】
図6Cは元々存在するオブジェクト540の上に置かれた新しい例示的な不透明カラーオブジェクト550に関連付けられたフレームバッファ350の例示的画素及び対応するフレームバッファ455のフラグを表す図示615を示す。図6Cに示すように、オブジェクト540に関連付けられた、重ねられていない画素の明度値は明度閾値を超える。よって、フラグバッファ455の領域640(点線で示す)に対応するこれらの画素のフラグ値は色無しと印される。また、図6Cに示すように、不透明オブジェクト550に関連付けられた画素の明度値は明度閾値を超えない。よって、フラグバッファ455の領域650に対応するこれらの画素のフラグ値は色付きと印される。
【0048】
図6Dは元々存在するオブジェクト560の上に置かれた新しい例示的な不透明カラーオブジェクト570に関連付けられたフレームバッファ350の例示的な画素及び対応するフレームバッファ455のフラグを表す図示665を示す。図6Dに示すように、オブジェクト570に関連付けられた画素の明度値は明度閾値を超える。よって、フラグバッファ455の領域670(点線で示す)に対応するこれらの画素のフラグ値は色無しと印される。また、図6Dに示すように、不透明オブジェクト560に関連付けられた、重ねられていない画素の明度値は明度閾値を超えない。よって、フラグバッファ455の領域660に対応するこれらの画素のフラグ値は色付きと印される。
【0049】
図7はいくつかの開示される実施形態に基づく、ステップ440において実行されうるフラグ解析ルーチンに関する各ステップを図示する例示的フローチャート700を示す。当該アルゴリズムはステップ710において、まずフレームバッファ350及びフラグバッファ455のデータにアクセスすることによって開始される。ステップ720において、フレームバッファ350の画素に関連付けられるフラグが読み出されうる。ステップ725において、画素に関連付けられた色付きフラグが確認されうる。色付きフラグが偽である場合、次にステップ720において、新たな画素に関連付けられたフラグがフラグバッファ455から読み出されうる。画素に関連付けられた色付きフラグが設定されていない場合、当該画素はフレームバッファ350のいずれのオブジェクトにも対応しないか、又は明度閾値を超える明度値を有するのでトラッピングを目的とする場合無視されうるかである。
【0050】
ステップ725において、色付きフラグが真である場合、ステップ750において当該画素はトラッピング候補として選択される。ステップ720において、次の画素に関連付けられるフラグがフラグバッファ455から読み出される。いくつかの実施形態においては、ステップ750において選択された画素は、例えばステップ360のトラッピングアルゴリズム等のトラッピングアルゴリズムにおいて用いられ、トラッピングアルゴリズムパラメータに基づいて、トラッピングを選択された画素に適用することができる。
【0051】
いくつかの実施形態においては、上述の処理を実施するプログラムをコンピュータ読取可能な媒体150又はコンピュータ読取可能メモリに記録することができる。これらには、読み出し専用メモリ(ROM)、プログラマブル読み出し専用メモリ(PROM)、フラッシュメモリ、不揮発性ランダムアクセスメモリ(NVRAM)、又はセキュアデジタル(SD)メモリカード、コンパクトフラッシュ(登録商標)、スマートメディア(登録商標)、メモリスティック(登録商標)等のデジタルメモリカード等を含むが、これらに限定されない。いくつかの実施形態においては、コンピュータ読取可能な媒体のうちの一以上の種類をプリンタ170に接続することができる。特定の実施形態においては、本明細書に開示されるシステム、方法及び構成を実施するためのプログラムの一部はネットワーク140を介して配信することができる。
【0052】
本発明のその他の実施形態は、本明細書に開示される、詳細な説明の検討及び本発明の一以上の実施形態の実施によって当業者にとって明らかとなるであろう。本明細書と実施例は例示とすることのみを意図しており、本発明の真の範囲や意図は請求項において示される。



【特許請求の範囲】
【請求項1】
少なくとも一つのフラグを少なくとも一つのフレームバッファ画素と関連付けることによって、トラッピング候補として、少なくとも一つのディスプレイリストオブジェクトに関連付けられた前記少なくとも一つのフレームバッファ画素を特定するコンピュータによって実行される方法で、次のコンピュータによって実行されるステップを含む方法であって、
前記少なくとも一つのフレームバッファ画素をフレームバッファにレンダリングする際に、前記少なくとも一つのフラグの第一ビットの数値を算出するステップで、
前記少なくとも一つのフレームバッファ画素の明度値が明度閾値を超えずかつ前記オブジェクトが不透明である場合に、前記少なくとも一つのフラグの前記第一ビットを設定するステップと、
前記少なくとも一つのフレームバッファ画素の前記明度値が明度閾値を超えかつ前記オブジェクトが不透明である場合に、前記少なくとも一つのフラグの前記第一ビットを再設定するステップと、
前記少なくとも一つのフレームバッファ画素の混合された明度値が明度閾値を超えずかつ前記オブジェクトが非不透明である場合に、前記少なくとも一つのフラグの前記第一ビットを設定するステップと、
前記少なくとも一つのフレームバッファ画素の前記混合された明度値が明度閾値を超えかつ前記オブジェクトが非不透明である場合に、前記少なくとも一つのフラグの前記第一ビットを再設定するステップと、
を含むステップと、
前記少なくとも一つのフレームバッファ画素に関連付けられた前記フラグの前記第一ビットが設定された場合に、前記少なくとも一つのフレームバッファ画素をトラッピング候補として特定するステップと、
を含む方法。
【請求項2】
前記少なくとも一つのフラグは、フラグバッファに格納されている請求項1に記載の方法。
【請求項3】
前記明度閾値は、ユーザにより選択可能である請求項1に記載の方法。
【請求項4】
前記混合された明度値は前記少なくとも一つのフレームバッファ画素の現在値と前記少なくとも一つのディスプレイリストオブジェクトの対応する画素の数値とを畳み込みにより演算する請求項1に記載の方法。
【請求項5】
前記フラグバッファは少なくとも一つの二次元配列として実現される請求項2に記載の方法。
【請求項6】
前記フラグバッファは前記フレームバッファと同じ配列により構成される請求項2に記載の方法。
【請求項7】
前記フラグバッファは前記フレームバッファと論理的に別個である請求項2に記載の方法。
【請求項8】
前記フラグバッファの前記少なくとも一つのフラグは前記フレームバッファの前記少なくとも一つのフレームバッファ画素と一対一の対応関係にある請求項2に記載の方法。
【請求項9】
前記方法は前記少なくとも一つのディスプレイリストオブジェクトのラスタライゼーションの間に実行される請求項1に記載の方法。
【請求項10】
前記方法は前記少なくとも一つのディスプレイリストオブジェクトのフレームバッファへのレンダリングとの協働により実行される請求項1に記載の方法。
【請求項11】
前記方法はコンピュータ及び印刷装置のうちの一以上において実行される請求項1に記載の方法。
【請求項12】
少なくとも一つのフラグを少なくとも一つのフレームバッファ画素と関連付けることによって、トラッピング候補として、少なくとも一つのディスプレイリストオブジェクトに関連付けられた前記少なくとも一つのフレームバッファ画素を特定する方法のステップを実行するプロセッサによって実行される命令を含むコンピュータ読取可能な媒体であって、コンピュータによって実行されるステップを含む前記方法は、
前記少なくとも一つのフレームバッファ画素をフレームバッファにレンダリングする際に、前記少なくとも一つのフラグの第一ビットの数値を算出するステップで、
前記少なくとも一つのフレームバッファ画素の明度値が明度閾値を超えずかつ前記オブジェクトが不透明である場合に、前記少なくとも一つのフラグの前記第一ビットを設定するステップと、
前記少なくとも一つのフレームバッファ画素の前記明度値が明度閾値を超えかつ前記オブジェクトが不透明である場合に、前記少なくとも一つのフラグの前記第一ビットを再設定するステップと、
前記少なくとも一つのフレームバッファ画素の混合された明度値が明度閾値を超えずかつ前記オブジェクトが非不透明である場合に、前記少なくとも一つのフラグの前記第一ビットを設定するステップと、
前記少なくとも一つのフレームバッファ画素の前記混合された明度値が明度閾値を超えかつ前記オブジェクトが非不透明である場合に、前記少なくとも一つのフラグの前記第一ビットを再設定するステップと、
を含むステップと、
前記少なくとも一つのフレームバッファ画素に関連付けられた前記フラグの前記第一ビットが設定された場合に、前記少なくとも一つのフレームバッファ画素をトラッピング候補として特定するステップと、
を含むコンピュータ読取可能な媒体。
【請求項13】
前記少なくとも一つのフラグは、フラグバッファに格納されている請求項12に記載のコンピュータ読取可能な媒体。
【請求項14】
前記フラグバッファは前記フレームバッファと同一の配列により構成される請求項13に記載のコンピュータ読取可能な媒体。
【請求項15】
前記混合された明度値は前記少なくとも一つのフレームバッファ画素の現在値と前記少なくとも一つのディスプレイリストオブジェクトの対応する画素の数値とを畳み込みにより演算する請求項12に記載のコンピュータ読取可能な媒体。
【請求項16】
前記方法は前記少なくとも一つのディスプレイリストオブジェクトのフレームバッファへのレンダリングとの協働により実行される請求項12に記載のコンピュータ読取可能な媒体。
【請求項17】
少なくとも一つのフラグを少なくとも一つのフレームバッファ画素と関連付けることによって、トラッピング候補として、少なくとも一つのディスプレイリストオブジェクトに関連付けられた前記少なくとも一つのフレームバッファ画素を特定する方法のステップを実行するプロセッサを制御する命令を含むコンピュータ読取可能なメモリであって、コンピュータによって実行される前記方法は、
前記少なくとも一つのフレームバッファ画素をフレームバッファにレンダリングする際に、前記少なくとも一つのフラグの第一ビットの数値を算出するステップで、
前記少なくとも一つのフレームバッファ画素の明度値が明度閾値を超えずかつ前記オブジェクトが不透明である場合に、前記少なくとも一つのフラグの前記第一ビットを設定するステップと、
前記少なくとも一つのフレームバッファ画素の前記明度値が明度閾値を超えかつ前記オブジェクトが不透明である場合に、前記少なくとも一つのフラグの前記第一ビットを再設定するステップと、
前記少なくとも一つのフレームバッファ画素の混合された明度値が明度閾値を超えずかつ前記オブジェクトが非不透明である場合に、前記少なくとも一つのフラグの前記第一ビットを設定するステップと、
前記少なくとも一つのフレームバッファ画素の前記混合された明度値が明度閾値を超えかつ前記オブジェクトが非不透明である場合に、前記少なくとも一つのフラグの前記第一ビットを再設定するステップと、
を含むステップと、
前記少なくとも一つのフレームバッファ画素に関連付けられた前記フラグの前記第一ビットが設定された場合に、前記少なくとも一つのフレームバッファ画素をトラッピング候補として特定するステップと、
を含むコンピュータ読取可能なメモリ。
【請求項18】
前記少なくとも一つのフラグは、フラグバッファに格納されている請求項17に記載のコンピュータ読取可能なメモリ。
【請求項19】
前記フラグバッファは前記フレームバッファと同一の配列により構成される請求項18に記載のコンピュータ読取可能なメモリ。
【請求項20】
前記フラグバッファは前記フレームバッファと論理的に別個である請求項18に記載のコンピュータ読取可能なメモリ。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6A】
image rotate

【図6B】
image rotate

【図6C】
image rotate

【図6D】
image rotate

【図7】
image rotate


【公開番号】特開2010−200303(P2010−200303A)
【公開日】平成22年9月9日(2010.9.9)
【国際特許分類】
【外国語出願】
【出願番号】特願2009−284208(P2009−284208)
【出願日】平成21年12月15日(2009.12.15)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.フロッピー
2.ETHERNET
【出願人】(507031918)コニカ ミノルタ システムズ ラボラトリー, インコーポレイテッド (157)
【Fターム(参考)】