(57)【特許請求の範囲】
【請求項１】
描画オブジェクトのラスタライズ結果がキャッシュされているか否かを判定する判定手段と、
前記判定手段により描画オブジェクトのラスタライズ結果がキャッシュされていないと判定された場合、描画オブジェクトからイメージと前記イメージのマスクを生成し、生成されたイメージとマスクをキャッシュに格納するキャッシュ手段と、
前記判定手段により描画オブジェクトのラスタライズ結果がキャッシュされていると判定された場合、キャッシュからイメージとマスクを取り出し、取り出されたマスク以外の部分に背景イメージが残るように、取り出されたマスクの部分に取り出されたイメージを描画する描画手段と、
描画オブジェクトが背景オブジェクトと重なりがあるか否かを判別する判別手段とを有し、
前記キャッシュ手段は、前記判定手段により描画オブジェクトのラスタライズ結果がキャッシュされていないと判定され、前記判別手段により描画オブジェクトが背景オブジェクトと重なりがあると判別された場合、描画オブジェクトからイメージと前記イメージのマスクを生成し、生成されたイメージとマスクをキャッシュに格納し、前記判定手段により描画オブジェクトのラスタライズ結果がキャッシュされていないと判定され、前記判別手段により描画オブジェクトが背景オブジェクトと重なりがないと判別された場合、前記イメージのマスクを生成することなく、描画オブジェクトからイメージを生成し、生成されたイメージをキャッシュに格納することを特徴とする描画装置。
【請求項２】
前記判別手段は、描画オブジェクトの領域情報と背景オブジェクトの領域情報とに基づき交差があると判定された場合、描画オブジェクトが背景オブジェクトと重なりがあると判別することを特徴とする請求項１記載の描画装置。
【請求項３】
描画オブジェクトが再利用されるものか否かを判断する判断手段を有し、
前記判定手段は、前記判断手段により描画オブジェクトが再利用されるものであると判断された場合、描画オブジェクトのラスタライズ結果がキャッシュされているか否かを判定することを特徴とする請求項１記載の描画装置。
【請求項４】
前記キャッシュ手段は、前記判定手段により描画オブジェクトのラスタライズ結果がキャッシュされていると判定された場合、キャッシュされているイメージのマスクがキャッシュされているか判別し、イメージのマスクがキャッシュされていないと判別された場合、描画オブジェクトが背景オブジェクトと重なりがあるか否かを判別し、描画オブジェクトが背景オブジェクトと重なりがないと判別された場合、前記イメージのマスクを生成することなく、描画オブジェクトが背景オブジェクトと重なりがあると判別された場合、生成されたマスクをキャッシュに格納することを特徴とする請求項１記載の描画装置。
【請求項５】
描画オブジェクトのラスタライズ結果がキャッシュされているか否かを判定する判定ステップと、
前記判定ステップにより描画オブジェクトのラスタライズ結果がキャッシュされていないと判定された場合、描画オブジェクトからイメージと前記イメージのマスクを生成し、生成されたイメージとマスクをキャッシュに格納するキャッシュステップと、
前記判定ステップにより描画オブジェクトのラスタライズ結果がキャッシュされていると判定された場合、キャッシュからイメージとマスクを取り出し、取り出されたマスク以外の部分に背景イメージが残るように、取り出されたマスクの部分に取り出されたイメージを描画する描画ステップと、
描画オブジェクトが背景オブジェクトと重なりがあるか否かを判別する判別ステップを有し、
前記キャッシュステップは、前記判定ステップにより描画オブジェクトのラスタライズ結果がキャッシュされていないと判定され、前記判別ステップにより描画オブジェクトが背景オブジェクトと重なりがあると判別された場合、描画オブジェクトからイメージと前記イメージのマスクを生成し、生成されたイメージとマスクをキャッシュに格納し、前記判定ステップにより描画オブジェクトのラスタライズ結果がキャッシュされていないと判定され、前記判別ステップにより描画オブジェクトが背景オブジェクトと重なりがないと判別された場合、前記イメージのマスクを生成することなく、描画オブジェクトからイメージを生成し、生成されたイメージをキャッシュに格納することを特徴とする描画方法。
【請求項６】
前記判別ステップは、描画オブジェクトの領域情報と背景オブジェクトの領域情報とに基づき交差があると判定された場合、描画オブジェクトが背景オブジェクトと重なりがあると判別することを特徴とする請求項５記載の描画方法。
【請求項７】
描画オブジェクトが再利用されるものか否かを判断する判断ステップを有し、
前記判定ステップは、前記判断ステップにより描画オブジェクトが再利用されるものであると判断された場合、描画オブジェクトのラスタライズ結果がキャッシュされているか否かを判定することを特徴とする請求項５記載の描画方法。
【請求項８】
前記キャッシュステップは、前記判定ステップにより描画オブジェクトのラスタライズ結果がキャッシュされていると判定された場合、キャッシュされているイメージのマスクがキャッシュされているか判別し、イメージのマスクがキャッシュされていないと判別された場合、描画オブジェクトが背景オブジェクトと重なりがあるか否かを判別し、描画オブジェクトが背景オブジェクトと重なりがないと判別された場合、前記イメージのマスクを生成することなく、描画オブジェクトが背景オブジェクトと重なりがあると判別された場合、生成されたマスクをキャッシュに格納することを特徴とする請求項５記載の描画方法。
【請求項９】
コンピュータを、
描画オブジェクトのラスタライズ結果がキャッシュされているか否かを判定する判定手段と、
前記判定手段により描画オブジェクトのラスタライズ結果がキャッシュされていないと判定された場合、描画オブジェクトからイメージと前記イメージのマスクを生成し、生成されたイメージとマスクをキャッシュに格納するキャッシュ手段と、
前記判定手段により描画オブジェクトのラスタライズ結果がキャッシュされていると判定された場合、キャッシュからイメージとマスクを取り出し、取り出されたマスク以外の部分に背景イメージが残るように、取り出されたマスクの部分に取り出されたイメージを描画する描画手段と、
コンピュータを描画オブジェクトが背景オブジェクトと重なりがあるか否かを判別する判別手段として機能させ、
前記キャッシュ手段は、前記判定手段により描画オブジェクトのラスタライズ結果がキャッシュされていないと判定され、前記判別手段により描画オブジェクトが背景オブジェクトと重なりがあると判別された場合、描画オブジェクトからイメージと前記イメージのマスクを生成し、生成されたイメージとマスクをキャッシュに格納し、前記判定手段により描画オブジェクトのラスタライズ結果がキャッシュされていないと判定され、前記判別手段により描画オブジェクトが背景オブジェクトと重なりがないと判別された場合、前記イメージのマスクを生成することなく、描画オブジェクトからイメージを生成し、生成されたイメージをキャッシュに格納することを特徴とするプログラム。
【請求項１０】
前記判別手段は、描画オブジェクトの領域情報と背景オブジェクトの領域情報とに基づき交差があると判定された場合、描画オブジェクトが背景オブジェクトと重なりがあると判別することを特徴とする請求項９記載のプログラム。
【請求項１１】
コンピュータを、描画オブジェクトが再利用されるものか否かを判断する判断手段として機能させ、
前記判定手段は、前記判断手段により描画オブジェクトが再利用されるものであると判断された場合、描画オブジェクトのラスタライズ結果がキャッシュされているか否かを判定することを特徴とする請求項９記載のプログラム。
【請求項１２】
前記キャッシュ手段は、前記判定手段により描画オブジェクトのラスタライズ結果がキャッシュされていると判定された場合、キャッシュされているイメージのマスクがキャッシュされているか判別し、イメージのマスクがキャッシュされていないと判別された場合、描画オブジェクトが背景オブジェクトと重なりがあるか否かを判別し、描画オブジェクトが背景オブジェクトと重なりがないと判別された場合、前記イメージのマスクを生成することなく、描画オブジェクトが背景オブジェクトと重なりがあると判別された場合、生成されたマスクをキャッシュに格納することを特徴とする請求項９記載のプログラム。
【請求項１３】
描画オブジェクトのラスタライズ結果がキャッシュされているか否かを判定する判定手段と、
前記判定手段により描画オブジェクトのラスタライズ結果がキャッシュされていないと判定された場合、描画オブジェクトからイメージと前記イメージのマスクを生成し、生成されたイメージとマスクをキャッシュに格納するキャッシュ手段と、
前記判定手段により描画オブジェクトのラスタライズ結果がキャッシュされていると判定された場合、キャッシュからイメージとマスクを取り出し、取り出されたマスク以外の部分に背景イメージが残るように、取り出されたマスクの部分に取り出されたイメージを描画する描画手段と、
前記描画手段により描画されたイメージを印刷する印刷手段と、
描画オブジェクトが背景オブジェクトと重なりがあるか否かを判別する判別手段とを有し、
前記キャッシュ手段は、前記判定手段により描画オブジェクトのラスタライズ結果がキャッシュされていないと判定され、前記判別手段により描画オブジェクトが背景オブジェクトと重なりがあると判別された場合、描画オブジェクトからイメージと前記イメージのマスクを生成し、生成されたイメージとマスクをキャッシュに格納し、前記判定手段により描画オブジェクトのラスタライズ結果がキャッシュされていないと判定され、前記判別手段により描画オブジェクトが背景オブジェクトと重なりがないと判別された場合、前記イメージのマスクを生成することなく、描画オブジェクトからイメージを生成し、生成されたイメージをキャッシュに格納することを特徴とする印刷装置。
【請求項１４】
前記キャッシュ手段は、前記判定手段により描画オブジェクトのラスタライズ結果がキャッシュされていると判定された場合、キャッシュされているイメージのマスクがキャッシュされているか判別し、イメージのマスクがキャッシュされていないと判別された場合、描画オブジェクトが背景オブジェクトと重なりがあるか否かを判別し、描画オブジェクトが背景オブジェクトと重なりがないと判別された場合、前記イメージのマスクを生成することなく、描画オブジェクトが背景オブジェクトと重なりがあると判別された場合、生成されたマスクをキャッシュに格納することを特徴とする請求項１３記載の印刷装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子ドキュメント内の共通描画オブジェクトを効率的に処理するための描画装置、印刷装置、描画方法、及びプログラムに関するものである。
【背景技術】
【０００２】
デジタル印刷の進展と共に、その特色を生かした形態としてのバリアブルデータ印刷が注目されて久しい。印刷物の一部を可変データとして部毎に変更するなどの印刷形態は、電子写真などのデジタルプリンタの特性を最大限に発揮するものである。バリアブル印刷ではこれまで各社各様のＶＤＰ言語が使われていたが、標準言語としてのＰＰＭＬが定義され、さらなる普及が期待されている。ＰＰＭＬではページを描画する要素として、繰り返しの利用が想定されるリユーサブルオブジェクトと、一度限りの利用が想定されるローカルオブジェクトの二つがある。リユーサブルオブジェクトはページ内、ページ間、ジョブ間を問わず、同一のソース描画データから複数の箇所に同一の描画をする場合に用いられる。通常ローカルオブジェクトやリユーサブルオブジェクト等の描画オブジェクトはソース描画データとしてＰｏｓｔＳｃｒｉｐｔ（登録商標）やＰＤＦを用いる。これらのソース描画データはＲＩＰ処理を経てラスタイメージ化された後にページ上に配置される。ＰＰＭＬのリユーサブルオブジェクトのように再利用されることが明確な場合は、ソース描画データからＲＩＰ処理した結果のラスタイメージをキャッシュする。その結果、非常に高速な描画処理が可能となる。但し、ラスターイメージデータは高解像度かつ高階調のカラーデータでは非常に大きなサイズとなる。その為、大量のメモリが必要となる。そこでラスタイメージに変換する手前の中間データをソース描画データから生成し、これをキャッシュするという方法も考えられる。ＲＩＰ処理のため時間は必要となるが、キャッシュに必要なメモリ容量を大幅に削減することが可能で、メモリ容量と性能のバランスを考慮した折衷案といえる。
【０００３】
従来より、類似の形態としてフォームという概念を有するＰＤＬが存在している。しかし、複数箇所で再利用されるフォームを一般のプリンタドライバ等のＰＤＬ生成ソフトウェアで生成することは比較的難易度が高い。１回目のデータ走査で描画オブジェクトの共通性を検知し、２回目のデータ走査でＰＤＬデータ生成を行うという、２パス構成が必要となる。もしくは、アプリケーション上で描画オブジェクトの共通性を検知する方法や、ユーザに共通であることを指定させる方法も考えられる。一般にＶＤＰでは専用の編集アプリケーションを用いて、描画データの共通性を明示的に指定する。そのため、リユーサブルオブジェクトや共通フォームといったＶＤＰに最適な特性を持つプリントデータを容易に生成可能となっている。従って、ＶＤＰに特化したアプリケーションとＰＰＭＬなどのＶＤＰ言語が処理可能なプリンタとの組み合わせが望ましい。
【０００４】
また、ＰＰＭＬ等のＶＤＰにおける原稿チェックの為のプリフライトに関する技術も知られている（特許文献１参照）。ＶＤＰドキュメントから背景としての共通オブジェクトと各ページに固有の前景オブジェクトを抽出し、印刷時の重なり等をチェックするものである。
【特許文献１】特開２００６−１７２２０３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
前述したように、リユーサブルオブジェクトをＲＩＰ処理して生成されるラスターイメージデータをキャッシュすることにより、ＲＩＰ時間の大幅な短縮が可能となる。しかしながら、単純なＲＩＰ済みのラスターイメージデータをキャッシュするだけでは正しい描画が実現できない場合がある。ＰＰＭＬではリユーサブルオブジェクトを含む複数の描画オブジェクトの重なりが許されている。ここで、重なった領域では前景の描画オブジェクトにより描画が行われていない領域は背景の描画を残す必要がある。しかし、単純なラスターイメージデータでは描画オブジェクトで描画をした領域と描画していない領域の区別がつかない。ラスターイメージデータはピクセル毎の濃度もしくは輝度の階調情報を集めたもので、ピクセル毎の塗るもしくは塗らないの指定ができない。
【０００６】
図８を用いて、具体的に説明する。３８０１は背景ページであり、３８０４のテキストオブジェクトが配置されている。３８０２は前景ページであり、３８０５のグラフィックスオブジェクトが配置されている。３８０５は破線で囲まれたバウンディングボックスを有する。３８０３が期待される合成結果を表す。図８の（Ｂ）は単純に合成した結果であり、３８０９の合成結果によると、グラフィックスオブジェクトの背景部分が白で塗り潰されてしまっている。３８１０はグラフィックスオブジェクトをレンダリングして、さらに２値化した結果であり、この時点では白で塗り潰す部分と塗らない部分の区別がつかない。そのため、単純に合成すると白で塗り潰すものとして合成されることになる。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明の描画装置は、
描画オブジェクトのラスタライズ結果がキャッシュされているか否かを判定する判定手段と、
前記判定手段により描画オブジェクトのラスタライズ結果がキャッシュされていないと判定された場合、描画オブジェクトからイメージと前記イメージのマスクを生成し、生成されたイメージとマスクをキャッシュに格納するキャッシュ手段と、
前記判定手段により描画オブジェクトのラスタライズ結果がキャッシュされていると判定された場合、キャッシュからイメージとマスクを取り出し、取り出されたマスク以外の部分に背景イメージが残るように、取り出されたマスクの部分に取り出されたイメージを描画する描画手段と、
描画オブジェクトが背景オブジェクトと重なりがあるか否かを判別する判別手段とを有し、
前記キャッシュ手段は、前記判定手段により描画オブジェクトのラスタライズ結果がキャッシュされていないと判定され、前記判別手段により描画オブジェクトが背景オブジェクトと重なりがあると判別された場合、描画オブジェクトからイメージと前記イメージのマスクを生成し、生成されたイメージとマスクをキャッシュに格納し、前記判定手段により描画オブジェクトのラスタライズ結果がキャッシュされていないと判定され、前記判別手段により描画オブジェクトが背景オブジェクトと重なりがないと判別された場合、前記イメージのマスクを生成することなく、描画オブジェクトからイメージを生成し、生成されたイメージをキャッシュに格納することを特徴とする。
【発明の効果】
【０００８】
本発明によって、前景の描画オブジェクトが描画されない部分に背景の描画イメージを残しつつ、前景の描画オブジェクトを高速に描画することが可能となる。
【発明を実施するための最良の形態】
【０００９】
（実施例１）
以下、本発明にかかる実施形態について、図面を参照して詳細に説明する。
【００１０】
図１は、描画装置の構成を説明するブロック図である。Ｃｏｎｔｒｏｌｌｅｒ  Ｕｎｉｔ  ２０００は画像情報やデバイス情報の入出力を行う為のコントローラである。コントローラは画像入力デバイスであるスキャナ２０７０や画像出力デバイスであるプリンタ２０９５、ＬＡＮ２０１１や公衆回線（ＷＡＮ）２０５１と接続される。ＲＡＭ２００２はＣＰＵ２００１が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。ＲＯＭ２００３はブートＲＯＭであり、システムのブートプログラムが格納されている。ＨＤＤ２００４はハードディスクドライブで、システムソフトウェア、画像データを格納する。操作部Ｉ／Ｆ２００６は操作部（ＵＩ）２０１２とインターフェース部で、操作部２０１２に表示する画像データを操作部２０１２に対して出力する。
【００１１】
また、操作部２０１２から本システム使用者が入力した情報を、ＣＰＵ２００１に伝える役割をする。Ｎｅｔｗｏｒｋ２０１０はＬＡＮ２０１１に接続し、情報の入出力を行う。Ｍｏｄｅｍ２０５０は公衆回線２０５１に接続し、情報の入出力を行う。以上のデバイスがシステムバス２００７上に配置される。Ｉｍａｇｅ  Ｂｕｓ  Ｉ／Ｆ２００５はシステムバス２００７と画像データを高速で転送する画像バス２００８を接続し、データ構造を変換するバスブリッジである。画像バス２００８は、ＰＣＩバスまたはＩＥＥＥ１３９４で構成される。画像バス２００８上には以下のデバイスが配置される。イメージプロセッサ（ＲＩＰ）２０６０はディスプレイリストをラスタイメージに展開する。デバイスＩ／Ｆ部２０２０は、画像入出力デバイスであるスキャナ２０７０やプリンタ２０９５とコントローラ２０００を接続し、画像データの同期系／非同期系の変換を行う。スキャナ画像処理部２０８０は、入力画像データに対し補正、加工、編集を行う。プリンタ画像処理部  ２０９０は、プリント出力画像データに対して、プリンタの補正、解像度変換、ハーフトーニング等を行う。画像回転部２０３０は画像データの回転を行う。画像圧縮部２０４０は、多値画像データはＪＰＥＧ、２値画像画像データはＪＢＩＧ、ＭＭＲ、ＭＨの圧縮伸張処理を行う。
【００１２】
描画装置外観を図２に示す。画像入力デバイスであるスキャナ部２０７０は、原稿となる紙上の画像を照明し、ＣＣＤラインセンサ（図示せず）を走査することで、ラスターイメージデータ２０７１として電気信号に変換する。原稿用紙は原稿フィーダ２０７２のトレイ２０７３にセットされる。装置使用者が操作部２０１２から読み取り起動指示することにより、コントローラＣＰＵ２００１がスキャナ２０７０に指示を与える（２０７１）。フィーダ２０７２は原稿用紙を１枚ずつフィードし原稿画像の読み取り動作を行う。画像出力デバイスであるプリンタ部２０９５は、ラスターイメージデータ２０９６を用紙上の画像に変換する部分である。その方式は感光体ドラムや感光体ベルトを用いた電子写真方式、微少ノズルアレイからインクを吐出して用紙上に直接画像を印字するインクジェット方式等がある。プリント動作の起動は、コントローラＣＰＵ２００１からの指示２０９６によって開始する。プリンタ部２０９５には、異なる用紙サイズまたは異なる用紙向きを選択できるように複数の給紙段を持ち、それに対応した用紙カセット２１０１、２１０２、２１０３がある。また、排紙トレイ２１１１は印字し終わった用紙を受けるものである。
【００１３】
操作部２０１２の構成を図３に示す。ＬＣＤ表示部２０１３は、ＬＣＤ上にタッチパネルシート２０１９が貼られており、システムの操作画面およびソフトキーを表示するとともに、表示してあるキーが押されるとその位置情報をコントローラＣＰＵ２００１に伝える。スタートキー２０１４は原稿画像の読み取り動作を開始する時などに用いる。スタートキー２０１４中央部には、緑と赤の２色ＬＥＤ２０１８があり、その色によってスタートキー２０１４が使える状態にあるかどうかを示す。ストップキー２０１５は稼働中の動作を止める働きをする。ＩＤキー２０１６は、使用者のユーザＩＤを入力する時に用いる。リセットキー２０１７は操作部からの設定を初期化する時に用いる。
【００１４】
図４は、本発明の実施例を示す描画装置のソフトウェアブロック図である。図４に記載のソフトウェアはＨＤＤ２００４に格納され、ＲＡＭ２００２にロードされた後に、ＣＰＵ２００１により実行されるものである。
【００１５】
１５０１はＵＩ即ちユーザインターフェースを司るものであり、オペレータが本描画装置の各種操作・設定を行う際、機器との仲介を行うモジュールである。本モジュールは、オペレータの操作に従い、後述の各種モジュールに入力情報を転送し処理の依頼、或いはデータの設定等を行う。
【００１６】
１５０４はＵｎｉｖｅｒｓａｌ−Ｓｅｎｄ即ち、データの配信を司るモジュールであり、ＵＩ  １５０１によりオペレータに指示されたデータを、同様に指示された通信（出力）先に配布するものである。また、オペレータにより、本機器のスキャナ機能を使用し配布データの生成が指示された場合は、後述のＣｏｎｔｒｏｌ−ＡＰＩ  １５１９を介して機器を動作させ、データの生成を行う。
【００１７】
１５０９はＰＤＬモジュールであり、本描画装置の外部から送信されたＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）文書を、本描画装置のプリント機能を使用してプリントする機能を実現する。１５０９  ＰＤＬ内部の１５３１はＪｏｂ−Ｔｉｃｋｅｔ−Ｐａｒｓｅｒであり、ＰＤＬデータと一緒に受信したＪｏｂ−Ｔｉｃｋｅｔデータを解釈するモジュールである。Ｊｏｂ−Ｔｉｃｋｅｔでは印刷メディアや部数、後処理、各種色処理、画像処理方法が指定可能である。これらの情報は、まず、１５３１  Ｊｏｂ−Ｔｉｃｋｅｔ−Ｐａｒｓｅｒで解析される。その次に、Ｃｏｎｔｒｏｌ−ＡＰＩ  １５１９を介して、１５２０  Ｊｏｂ−Ｍａｎａｇｅｒ、１５２６  Ｐｒｉｎｔ−Ｍａｎａｇｅｒ、１５２７  ＰＤＬ−Ｉｎｔｅｒｐｒｅｔｅｒに伝達される。また、ＰＤＬモジュール１５０９は１５１２  ＨＴＴＰモジュールを使用して外部のＷｅｂサーバに格納された電子文書を取り出しプリントする機能も提供するものである。
【００１８】
１５１０はＣｏｐｙモジュールであり、本描画装置のプリンタ機能とスキャナ機能を使用し、ＵＩの指示に基づいてＣｏｐｙ動作を実行するものである。
【００１９】
１５１１はボックスモジュール（Ｂｏｘ）である。スキャン画像もしくはＰＤＬプリント画像をＨＤＤに格納し、格納した画像のプリンタ機能による印刷が可能である。また、Ｕｎｉｖｅｒｓａｌ−Ｓｅｎｄ機能による送信、ＨＤＤに格納した文書の削除、グルーピング（個別ＢＯＸへの格納）、ＢＯＸ間移動、ＢＯＸ間コピーなどの管理機能を提供する。ボックスは長期保存を目的としたものであるが、短期保存を目的とした類似の機構であるジョブホールド機能が前述のボックスモジュールにより実現される。ジョブホールドでは、ボックスとは異なり、グルーピング（個別ＢＯＸへの格納）、ＢＯＸ間移動、ＢＯＸ間コピー等はできないが、印刷属性の変更と再印刷が容易となっている。
【００２０】
１５１２は本描画装置がＨＴＴＰにより通信する際に使用されるモジュールであり、後述のＴＣＰ／ＩＰ１５１６モジュールにより前述のＰＤＬ  １５０９モジュールに通信を提供するものである。１５１４はＳＭＴＰモジュールであり、後述のＴＣＰ／ＩＰ  １５１７モジュールにより前述のＵｎｉｖｅｒｓａｌ−Ｓｅｎｄ１５０４に通信を提供するものである。１５１６はＬＰＤモジュールであり、後述のＴＣＰ／ＩＰ  １５１７  モジュールにより、前述のＰＤＬ  １５０９  モジュールに通信を提供するものである。１５１７はＴＣＰ／ＩＰ通信モジュールであり、前述の各種モジュールに後述のＮｅｔｗｏｒｋ−Ｄｒｉｖｅｒによりネットワーク通信を提供するものである。１５１８はネットワークドライバであり、ネットワークに物理的に接続される部分を制御するものである。
【００２１】
１５１９はＣｏｎｔｒｏｌ−ＡＰＩである。Ｕｎｉｖｅｒｓａｌ−Ｓｅｎｄ  １５０４、ＰＤＬ  １５０９、Ｃｏｐｙ  １５１０、Ｂｏｘ  １５１１等の上位モジュールに対し、後述のＪｏｂ−Ｍａｎａｇｅｒ  １５２０等の下位モジュールとのインターフェースを提供する。上位、及び下位のモジュール間の依存関係を軽減しそれぞれの流用性を高めるものである。
【００２２】
１５２０はＪｏｂ−Ｍａｎａｇｅｒであり、前述の各種モジュールよりＣｏｎｔｒｏｌ−ＡＰＩ  １５１９を介して指示される処理を解釈し、後述の各モジュールに指示を与えるものである。また、本モジュールは、本描画装置内で実行されるハード的な処理を一元管理するものである。１５２１はＣＯＤＥＣ−Ｍａｎａｇｅｒであり、Ｊｏｂ−Ｍａｎａｇｅｒ１５２０が指示する処理の中でデータの各種圧縮・伸長を管理・制御するものである。１５２２はＦＢＥ−Ｅｎｃｏｄｅｒであり、Ｊｏｂ−Ｍａｎａｇｅｒ  １５２０、Ｓｃａｎ−Ｍａｎａｇｅｒ  １５２５により実行されるスキャン処理により読み込まれたデータをＦＢＥフォーマットにより圧縮するものである。１５２３はＪＰＥＧ−ＣＯＤＥＣである。Ｊｏｂ−Ｍａｎａｇｅｒ１５２０、Ｓｃａｎ−Ｍａｎａｇｅｒ１５２５により実行されるスキャン処理、及びＰｒｉｎｔ−Ｍａｎａｇｅｒ  １５２６により実行される印刷処理において、画像データが読み込まれる。ＪＰＥＧ−ＣＯＤＥＣ  １５２３は読み込まれたデータのＪＰＥＧ圧縮及び印刷データのＪＰＥＧ展開処理を行うものである。１５２４はＭＭＲ−ＣＯＤＥＣであり、画像データのＭＭＲ圧縮及び印刷データのＭＭＲ伸長処理を行うものである。画像データはＪｏｂ−Ｍａｎａｇｅｒ  １５２０、Ｓｃａｎ−Ｍａｎａｇｅｒ  １５２５により実行されるスキャン処理、及びＰｒｉｎｔ−Ｍａｎａｇｅｒ  １５２６により実行される印刷処理において、読み込まれる。
【００２３】
１５２５はＳｃａｎ−Ｍａｎａｇｅｒであり、Ｊｏｂ−Ｍａｎａｇｅｒ１５２０が指示するスキャン処理を管理・制御するものである。１５２８はＳｃａｎｎｅｒ  Ｉ／Ｆであり、Ｓｃａｎ−Ｍａｎａｇｅｒ  １５２４と本描画装置が内部的に接続しているスキャナ部とのＩ／Ｆを提供するものである。
【００２４】
１５２６はＰｒｉｎｔ−Ｍａｎａｇｅｒであり、Ｊｏｂ−Ｍａｎａｇｅｒ１５１９が指示する印刷処理を管理・制御するものである。１５２９はＥｎｇｉｎｅ−Ｉ／Ｆドライバであり、Ｐｒｉｎｔ−Ｍａｎａｇｅｒ１５２６と印刷部とのＩ／Ｆを提供するものである。
【００２５】
１５２７はＰＤＬ  Ｉｎｔｅｒｐｒｅｔｅｒであり、ＰＤＬもしくは電子文書フォーマットの種別によらない共通の表現形式であるディスプレイリストを生成するものである。Ｊｏｂ−Ｍａｎａｇｅｒ  １５２０の指示により、ＬＩＰＳ、ＰｏｓｔＳｃｒｉｐｔ、ＰＣＬ、ＰＤＦ、ＳＶＧ、ＰＰＭＬなどのＰＤＬもしくは電子文書フォーマットを解釈し、ディスプレイリストを生成する。
【００２６】
１５３０はＲｅｎｄｅｒであり、ＰＤＬ  Ｉｎｔｅｒｐｒｅｔｅｒ  １５２７により生成されたディスプレイリストを、Ｐｒｉｎｔ−Ｍａｎａｇｅｒ  １５２０の指示により、イメージプロセッサを用いてラスタイメージメモリに展開するものである。
【００２７】
次に、図５を用いてＰＰＭＬインタプリタとその周辺モジュールの構成および処理の流れについて説明する。なお、レンダを除いた図５に含まれる各モジュールは図４のＰＤＬ  Ｉｎｔｅｒｐｒｅｔｅｒ１５２７を構成するコンポーネントとなる。図５の処理フローを実行するプログラムはＨＤＤ２００４に格納され、ＲＡＭ２００２にロードされた後に、ＣＰＵ２００１により実行されるものである。
【００２８】
ＰＰＭＬインタプリタ３１０３はＰＰＭＬデータを解釈し、各ページのラスタイメージを生成するモジュールである。３１０４は生成されるラスタイメージを格納するためのフレームバッファである。ＰＰＭＬはＸＭＬ形式のデータフォーマットであり、そのパーサ部分にはＸＭＬパーサを用いる。ＰＰＭＬはページのレイアウトを記述するのみであり、実際の描画命令はＰＳやＰＤＦなどのＰＤＬ言語に依存する。従って、ＰＰＭＬジョブはＰＰＭＬ形式のファイルとＰＳやＰＤＦ等の描画コマンドを含むファイルのアーカイブ形式で投入される。ＰＰＭＬインタプリタはこのアーカイブ形式のファイルを解凍して、各ファイルを一旦スプールする。次にＰＰＭＬデータの解釈を始める。そして、ＰＰＭＬファイル内からＰＳやＰＤＦファイルへの参照を発見すると、そのＲＩＰ処理のために各インタプリタを起動する。ＰＳインタプリタ３１０５はＰＳデータを解釈し中間データを生成するモジュールである。
【００２９】
また、ＰＤＦインタプリタ３１０６はＰＤＦデータを解釈し中間データを生成するモジュールである。ＰＳインタプリタ３１０５、ＰＤＦインタプリタ３１０６いずれもレンダ３１０７を用いて、ラスタイメージを生成する。ＰＳデータやＰＤＦデータによって表現されるＰＰＭＬ内の描画オブジェクトには２種類が存在する。一つは繰り返しの利用が想定されるリユーサブルオブジェクトである。そして、もう一つは一度限りの利用が想定されるローカルオブジェクトである。リユーサブルオブジェクトはページ内、ページ間、ジョブ間を問わず、同一のソース描画データから複数の箇所に同一の描画をする場合に用いられる。ＰＰＭＬインタプリタ３１０３は描画オブジェクトがローカルオブジェクトである場合は、フレームバッファ３１０４のアドレスと描画位置情報をＰＳインタプリタ３１０５、ＰＤＦインタプリタ３１０６に渡す。して各インタプリタはフレームバッファ３１０４上の指定された領域に直接ラスタイメージを生成する。
【００３０】
一方、描画オブジェクトがリユーサブルオブジェクトである場合にＰＰＭＬインタプリタ３１０３は生成したラスタイメージを返却するように各インタプリタに対して要求する。各インタプリタは当該描画オブジェクトを描画するために必要最低限のメモリを確保し、その領域に描画を行う。そして、描画した領域のアドレスをＰＰＭＬインタプリタ３１０３に返却する。ＰＰＭＬインタプリタ３１０３は描画済みのラスタライズイメージをフレームバッファ３１０４に書き込む。さらに、描画済みのラスタイメージをリユーサブルオブジェクトマネージャ３１０１に渡す。リユーサブルオブジェクトマネージャ３１０１は描画済みのラスタイメージのキャッシュを担当するモジュールである。描画済みラスタイメージの格納、検索、取り出し、消去等の機能を有する。ＰＰＭＬインタプリタ３１０３はリユーサブルオブジェクトを描画する前にリユーサブルオブジェクトマネージャ３１０１が当該オブジェクトの描画済みラスタイメージを持っているか調べる。リユーサブルオブジェクトマネージャ３１０１は描画済みラスタイメージをメモリとＨＤＤ３１０２のいずれかに保存する。メモリが空いている場合は、メモリ上に保持し、空きが無くなった場合にＨＤＤに保存する。また、取り出せることが少ない描画済みラスタイメージはメモリ上からＨＤＤ上に自動的に移す（スワップアウトする）。
【００３１】
次に、図６を用いてページ記述言語を解釈し画像形成を行うＲＩＰ処理の流れに関して説明する。図６の処理フローを実行するプログラムはＨＤＤ２００４に格納され、ＲＡＭ２００２にロードされた後に、ＣＰＵ２００１により実行されるものである。
【００３２】
ＰｏｓｔＳｃｒｉｐｔインタプリタ３００１は図４のＰＤＬ  Ｉｎｔｅｒｐｒｅｔｅｒ１５２７の一つで、ＰｏｓｔＳｃｒｉｐｔ言語で記述されたデータを解釈し中間言語データであるディスプレイリスト３０１２を生成する。
【００３３】
なお、ＰｏｓｔＳｃｒｉｐｔインタプリタ３００１内の各モジュールはパイプライン実行されるものである。描画オブジェクト毎に３００４から３００８までの各モジュールが繰り返し実行され、同一ページ内の全描画オブジェクトに対する処理が終了した時点で１ページ分のディスプレイリストが生成される。
【００３４】
ＲＩＰ詳細パラメータ３０１１はＪｏｂ  Ｔｉｃｋｅｔにより指定された情報のうちＲＩＰ処理時に適用されるパラメータ群である。ここで与えられるパラメータとしては、出力カラーモード、ＲＧＢソースプロファイル、ＣＭＹＫシミュレーションプロファイル、出力プロファイルなどがある。また、ＰＰＭＬインタプリタから起動された場合にはＲＩＰを行うページ番号やページ内の位置が指定される。ＪｏｂＴｉｃｋｅｔは、前述したように、図４のＪｏｂ−Ｔｉｃｋｅｔ−Ｐａｒｓｅｒ１５３１によって解釈される。
【００３５】
言語処理部３００３はＰｏｓｔＳｃｒｉｐｔ言語データを解釈し、描画オペレータに応じて文字処理部３００４、グラフィックス処理部３００５、イメージ処理部３００６の各描画処理部へ描画要求を出すものである。
【００３６】
文字処理部３００４は指定されたフォントから文字ビットマップを生成するものである。グラフィックス処理部３００５はベクタグラフィックス描画を制御するものである。イメージ処理部３００６はイメージデータを共通の内部データ形式に変換する処理等を行うものである。
【００３７】
ＣＭＳエンジン３００７はカラーマネージメントを行うモジュールであり、入力色を絶対色空間に変換後、プリンタエンジン固有の出力色（Ｇｒａｙ）を生成するものである。ＰｏｓｔＳｃｒｉｐｔ言語ではＤｅｖｉｃｅ色空間、ＣＩＥＢａｓｅｄ色空間、特殊色空間など多様な色空間が規定されている。Ｄｅｖｉｃｅ色空間で指定された入力色に関しては、ＲＧＢソースプロファイル、ＣＭＹＫシミュレーションプロファイルなどの予め用意されたＩＣＣプロファイル群のうち指定されたものを用いて色変換を行う。ＣＩＥＢａｓｅｄ色空間で指定された入力色に関してはその色空間で指定された変換テーブル、変換関数、変換マトリックスに従い色変換を行う。絶対色空間からプリンタエンジン固有の色空間への変換は出力プロファイルもしくは、ＰｏｓｔＳｃｒｉｐｔで規定されたＣｏｌｏｒ  Ｒｅｎｄｅｒｉｎｇ  Ｄｉｃｔｉｏｎａｒｙを用いて行う。
【００３８】
ディスプレイリストジェネレータ３００８は中間言語データであるディスプレイリスト３０１２を生成するものである。また、ディスプレイリスト内には、各オブジェクトの属性フラグが含まれており、オブジェクトがグラフィックス、イメージ、文字の何れであるかが識別される。各属性は文字処理部３００４、グラフィックス処理部３００５、イメージ処理部３００６から通知されたものがそのまま使用される。属性フラグはレンダを経て後段の画像処理に使用される。また、ディスプレイリスト内には、各オブジェクトのラスタオペレーション情報が含まれており、ラスタオペレーション処理が必要なオブジェクトか否かが識別される。
【００３９】
レンダ３００２はディスプレイリストを解釈し、２値ビットマップ３０１３を生成するものである。レンダではＭａｓｋ（ｒｅｓｕｌｔ＝ｓｒｃ＆ｄｅｓｔ）、Ｃｏｐｙ（ｒｅｓｕｌｔ＝ｓｒｃ）、Ｍｅｒｇｅ（ｒｅｓｕｌｔ＝ｓｒｃ｜ｄｅｓｔ）などのラスタオペレーションモードを備えている。描画オブジェクト毎に指定されたラスタオペレーションモードに従い、既に描画済の描画オブジェクト（背景、ｄｅｓｔ）と次に描画する描画オブジェクト（前景、ｓｒｃ）との間でラスタオペレーション処理を実行する。そして、レンダは描画結果（ｒｅｓｕｌｔ）をページメモリ上に展開する。ハーフトーニング３００９はオブジェクト属性マップを参照してオブジェクト属性毎に異なるハーフトーニングを適用するものである。グラフィックス属性の画像領域に対しては解像度優先の高線数スクリーンが適用される。また、イメージ属性の画像領域に対しては諧調優先の低解像度スクリーンが、文字属性の画像領域に対しては誤差拡散が適用される。こうして、生成された２値ビットマップ３０１３が図４のＥｎｇｉｎｅ  Ｉ／Ｆ  １５２９を介してプリンタエンジンに転送され、所望のメディアに印字出力されるものである。
【００４０】
図７はＰＰＭＬインタプリタにおけるリユーサブルオブジェクト（再利用されるオブジェクト）とローカルオブジェクト（再利用されない通常のオブジェクト）の処理方法を説明するフローチャートである。図７に記載のフローチャートを実行するプログラムはＨＤＤ２００４に格納され、ＲＡＭ２００２にロードされた後に、ＣＰＵ２００１により実行されるものである。Ｓ２００１から処理を開始して、ＰＰＭＬインタプリタ処理を開始する。描画オブジェクトを判別するとＳ２００１で描画オブジェクトがリユーサブルか否か判断する。なお、ＰＰＭＬの場合は各描画オブジェクトにリユーサブルオブジェクトであれば＜ＲＥＵＳＡＢＬＥ  ＯＢＪＥＣＴ＞であることを示す情報、リユーサブルオブジェクトを参照するための識別子が含まれているので判定することができる。また、上記ＰＰＭＬのような情報が含まれない描画オブジェクトの場合は、全ての描画オブジェクトを解析し、再利用されるか判定することによっても判定することができる。Ｎｏの場合、即ちローカルオブジェクトの場合はＳ２００９に進む。Ｓ２００９ではローカルオブジェクトをページフレームバッファに直接描画する。前述したように、ＰＰＭＬでは一般的に描画オブジェクトはＰｏｓｔＳｃｒｉｐｔやＰＤＦによって記述される。ＰＰＭＬファイル内の各描画オブジェクトはＰｏｓｔＳｃｒｉｐｔやＰＤＦへのファイル参照を含む。ＰＰＭＬインタプリタは描画オブジェクトから参照されるＰｏｓｔＳｃｒｉｐｔファイルやＰＤＦファイルをＰｏｓｔＳｃｒｉｐｔインタプリタ又はＰＤＦインタプリタによって描画処理させる。また、ＰＰＭＬファイル内の各描画オブジェクトにはページ内のどの位置に描画するかの座標情報が含まれる。ＰＰＭＬインタプリタはこの座標情報をＰｏｓｔＳｃｒｉｐｔインタプリタ又はＰＤＦインタプリタに渡す。ＰｏｓｔＳｃｒｉｐｔインタプリタ又はＰＤＦインタプリタはこの座標情報を使用して、ページフレームバッファの所定の位置に描画を行う。さらにＳ２０１１に進み、ページ内の全てのオブジェクト処理が終了したか判定する。Ｎｏの場合はＳ２００１に進み、同様の処理を繰り返す。Ｙｅｓの場合はここで処理を終了する。
【００４１】
一方、Ｓ２００１でＹｅｓの場合は、Ｓ２００２へ進み、リユーサブルオブジェクトに関連する処理を行う。Ｓ２００２では当該描画オブジェクトのラスタライズ結果（ＲＩＰ結果）がキャッシュ済みかどうか判定する。この処理はＰＰＭＬインタプリタからリユーサブルオブジェクトマネージャへの問い合せという形式で実行される。Ｓ２００２でＮｏの場合は、Ｓ２００３で当該描画オブジェクトと背景オブジェクトと重なりがあるかどうか判定する。Ｓ２００３でＮｏの場合はＳ２００４へ進み、ＲＩＰ済みイメージを生成してキャッシュに格納する。ここでも、ＲＩＰ処理は前述のＰｏｓｔＳｃｒｉｐｔインタプリタ又はＰＤＦインタプリタによって行われる。また、ＲＩＰ済みイメージの格納はＰＰＭＬインタプリタを経由してリユーサブルオブジェクトマネージャにデータ転送することにより実行される。これらの処理を実行した後にＳ２０１０へ進む。
【００４２】
Ｓ２００３でＹｅｓの場合は、Ｓ２００５へ進み、ＲＩＰ済みイメージとステンシルマスクを生成してキャッシュに格納する。ここでも、ＲＩＰ処理は前述のＰｏｓｔＳｃｒｉｐｔインタプリタ又はＰＤＦインタプリタによって行われる。また、ステンシルマスクも同様に前述のＰｏｓｔＳｃｒｉｐｔインタプリタ又はＰＤＦインタプリタによって生成される。ステンシルマスクはオリジナルで塗られているピクセルは１、塗られていないピクセル０になる。即ち、ＣＰＵ２００１はＲＩＰ済みのピクセル値が０以外の場合はステンシルマスクの対応するピクセル値を１にする。また、ＣＰＵ２００１はＲＩＰ済みのピクセル値が０の場合はステンシルマスクの対応するピクセル値を０にする。さらに、キャッシュへの格納はＰＰＭＬインタプリタを経由してリユーサブルオブジェクトマネージャにデータ転送することにより実行される。これらの処理を実行した後にＳ２０１０へ進む。
【００４３】
Ｓ２００２でＹｅｓの場合はＳ２００６へ進み、ステンシルマスクをキャッシュ済みかどうか判定する。ここで、Ｙｅｓの場合はＳ２０１０へ進み、Ｎｏの場合はＳ２００７へ進む。Ｓ２００７では当該描画オブジェクトと背景オブジェクトの間に重なりがあるかどうか判定する。Ｙｅｓの場合はＳ２００８へ進みステンシルマスクを生成してキャッシュに格納する。ここでも、ステンシルマスクの生成は前述のＰｏｓｔＳｃｒｉｐｔインタプリタ又はＰＤＦインタプリタによって行われる。ステンシルマスクはオリジナルで塗られているピクセルは１、塗られていないピクセル０になる。即ち、ＣＰＵ２００１はＲＩＰ済みのピクセル値が０以外の場合はステンシルマスクの対応するピクセル値を１にする。また、ＣＰＵ２００１はＲＩＰ済みのピクセル値が０の場合はステンシルマスクの対応するピクセル値を０にする。さらに、キャッシュへの格納はＰＰＭＬインタプリタを経由してリユーサブルオブジェクトマネージャにデータ転送することにより実行される。次にＳ２０１０へ進む。Ｓ２００７でＮｏの場合もＳ２０１０へ進む。
【００４４】
Ｓ２０１０ではキャッシュから当該オブジェクトのデータを取り出してフレームバッファに描画を行う。このとき、当該オブジェクトに対するステンシルマスクデータがキャッシュに格納されているか否かによって描画方法が異なる。ステンシルマスクがキャッシュに格納されていない場合は、取り出したＲＩＰ済みイメージを直接フレームバッファに書き込む。ステンシルマスクが存在する場合はＲＩＰ済みイメージをステンシルマスクで型抜きしながらフレームバッファに書き込む。ここまでの処理で、背景オブジェクトと重なりがある場合はステンシルマスクが必ず生成されている。従って、前景オブジェクトで描画されない部分は背景オブジェクトが残されることになる。Ｓ２０１０の処理を終了すると、Ｓ２０１１へ進み、ページ内の全てのオブジェクトに対する処理が終了するまで処理を繰り返す。
【００４５】
本フローチャットに示した処理の流れでは、必要になるまでステンシルマスクデータを生成しないようにしている。これは、ステンシルマスクを生成する時間とメモリを節約する為である。なお、本フローチャートは１ページ内の処理を示したものである。しかし、複数ページの場合も同様の処理を繰り返すだけであり、本質的な差異は無い。但し、複数ページの場合ページ間でオブジェクトキャッシュは保持される。従って、前ページでＲＩＰ処理したオブジェクトがキャッシュに残されているケースも有り得る。
【００４６】
図９は、図８の（Ａ）で例示したケースにおける具体的な処理方法を示したものである。３９０１の背景に対して、３９０２の前景を合成する場合、前景のグラフィックスオブジェクトは背景のテキストオブジェクトに重なる。従って、前景のグラフィックスオブジェクトからＲＩＰ済みイメージ３９０４とステンシルマスク３９０５の両方を生成する。ＲＩＰ済みイメージ３９０４は２値化済みイメージであり、中間調は黒ピクセルと白ピクセルの分布により表現される。即ち、ピクセルレベルで見るとオリジナルデータでは中間調の塗りがあっても、ＲＩＰ済みイメージでは白塗りとなるピクセルが存在する。ステンシルマスク３９０５は塗られているピクセルがビット１、塗られていないピクセルがビット０で表現される２値データである。そして、３９０４のＲＩＰ済みイメージと３９０５のステンシルマスク、ＲＩＰ済み背景ページ３９０６をＲＯＰ３処理で合成する。
【００４７】
ＲＯＰ３処理による合成方法に関して図１０を用いて説明する。ここでは、図１０の（Ａ）で示す３１０１のスキャンラインを例に説明する。図１０の（Ｂ）は３１０１の対応したスキャンラインのピクセル値を示すものである。３１０２はオリジナルの前景グラフィクスオブジェクトにおけるピクセル値である。各ピクセルはグレイ８ビット（即ち２５６階調）である。ここでは、塗られるピクセルの値は７ｆとなっている。前景はグラフィックスオブジェクトなので実際にこのようにピクセル配列で表現されているわけではない。３１０３はＲＩＰ後に２値化されたピクセル値を表す。各ピクセルは１ビットで表現され、塗られるピクセルは１、塗られないピクセルは０で表現される。
【００４８】
３１０２で中間調の値７ｆが指定されたピクセルでも塗られないピクセルにマップされる場合がある。これは、中間調を１と０の分布で表現するためである。次に３１０４はステンシルマスクのピクセル値を表す。オリジナルで塗られているピクセルは１、塗られていないピクセル０になる。即ち、ＲＩＰ済みのピクセル値が０以外の場合はステンシルマスクの対応するピクセル値は１になる。また、ＲＩＰ済みのピクセル値が０の場合はステンシルマスクの対応するピクセル値は０になる。ここでは、３１０２で中間調の値７ｆで塗られているピクセルには１になる。３１０５は背景のテキストオブジェクトをＲＩＰ後２値化したピクセル値になる。最後に３１０６が前景３１０３、ステンシルマスク３１０４、背景３１０５をＲＯＰ３で合成した結果である。この合成処理ではステンシルマスクがビット１のピクセルでは前景ピクセルを採用し、ステンシルマスクがビット０のピクセルでは背景ピクセルを採用する。
【００４９】
この処理により、Ｓ２０１０では、キャッシュからイメージとマスクを取り出し、取り出されたマスク以外の部分に背景イメージが残るように、取り出されたマスクの部分に取り出されたイメージを描画することができる。
【００５０】
図１１は図７のフローチャートにおけるＳ２００３の背景との重なり判定処理をさらに詳細化したフローチャートである。図１１に記載のフローチャートを実行するプログラムはＨＤＤ２００４に格納され、ＲＡＭ２００２にロードされた後に、ＣＰＵ２００１により実行されるものである。ここで背景オブジェクトは個々のオブジェクトのバウンディングボックスをリスト構造により表現したバウンディングボックスリストにより管理される。また、バウンディングボックスリストを内包する最小の矩形としてスーパーバウンディングボックスを管理する。バウンディングボックスリストとスーパーバウンディングボックスはページの先頭でリセットされる。
【００５１】
Ｓ５００１からスタートして、Ｓ５００２で当該描画オブジェクトがスーパーバウンディングボックスと交差するか判定される。Ｎｏの場合はＳ５００３に進み、重なりは無いと判定され終了する。Ｙｅｓの場合はＳ５００４に進み、当該描画オブジェクトがバウンディングボックスリストと交差するかどうか判定する。Ｎｏの場合はＳ５００３に進み、重なりは無いと判定され終了する。Ｙｅｓの場合はＳ５００５へ進む。Ｓ５００５では、当該描画オブジェクトが白塗りだけかどうか判定する。Ｙｅｓの場合はＳ５００６へ進み、白塗りオブジェクトに包含されるバウンディングボックスをバウンディングボックスリストから削除する。Ｎｏの場合はＳ５００７へ進み、当該描画オブジェクトのバウンディングボックスをバウンディングボックスリストに追加する。Ｓ５００６、Ｓ５００７共に次のステップとしてＳ５００８へ進む。Ｓ５００８では、スーパーバウンディングボックスを更新する。Ｓ５００６あるいはＳ５００７におけるバウンディングボックスリストの更新を反映させる。次に、Ｓ５００８へ進み重なりが有りと判定する。
【００５２】
このように描画オブジェクトで定義されている矩形領域情報と背景オブジェクトで定義されている矩形領域情報に基づき交差しているか判別することにより重なり判別処理を軽くできる。なお、精度を高めるため、処理は重くなるが、描画オブジェクトのイメージ部分と背景オブジェクトイメージ部分が重なっているかを判別してもよい。
【００５３】
これまでに説明したように、描画オブジェクトのＲＩＰ済みイメージデータとステンシルマスクデータの両方を使うことにより、正しい描画が可能となる。また、これら二つのデータをキャッシュすることにより、再利用時はＲＩＰを再度行う必要が無いため高速な描画処理が可能となる。また、オブジェクトの重なり判定を行うことにより、ステンシルマスクの生成を必要最小限に制限することができる。ステンシルマスクの生成にも時間がかかる為、その生成を抑制することにより、描画処理全体の高速化に寄与する。即ち、本実施例で示したように正確かつ高速な描画装置を実現することが可能となる。
【００５４】
なお、本発明は、プリンタを含む複数の機器（例えばホストコンピュータ、インターフェース機器、スキャナ、プリンタなど）から構成されるシステムに適用しても、プリンタ単体装置に適用してもよい。また、本発明は描画結果の出力装置を限定するものではなく、プリンタだけでなくディスプレイデバイスでも実施可能である。コンピュータ上の電子ファイルを表示するビューアアプリケーションにおいても容易に実現可能である。
【００５５】
また、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコード自体が前述した実施形態の機能を実現することになる。前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）が、システムあるいは装置に供給される必要がある。そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００５６】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけではない。そのプログラムコードの指示に基づき、コンピュータ上で稼動しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。さらに、以下の処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。まず、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。そして、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行う。
【００５７】
以上説明したように、本発明の実施形態によれば、描画オブジェクトの重なりを正しく処理しつつ、リユーサブルオブジェクトのＲＩＰ済みイメージのキャッシュを実現することができる。例えば、ＰＰＭＬなどのオブジェクトの重なりを許すＶＤＰ言語やＰＤＬであっても、描画仕様に則った高速なＲＩＰ処理が実現可能となる。
【図面の簡単な説明】
【００５８】
【図１】描画装置のコントローラユニット内構成を示す図
【図２】描画装置の入出力デバイス外観図
【図３】描画装置の操作部外観図
【図４】描画装置のソフトウェアブロック図
【図５】ＰＤＬインタプリタ関連モジュールのブロック図
【図６】ＰＤＬインタプリタ内のデータフロー図
【図７】キャッシュアルゴリズムを示すフローチャート
【図８】オブジェクト合成の模式図１
【図９】オブジェクト合成の模式図３
【図１０】合成過程におけるピクセル値を示す図
【図１１】オブジェクトの重なりを判定するフローチャート
【符号の説明】
【００５９】
３１０１  リユーサブルオブジェクトマネージャ
３１０２  ＨＤＤ
３１０３  ＰＰＭＬインタプリタ
３１０４  フレームバッファ
３１０５  ＰＳインタプリタ
３１０６  ＰＤＦインタプリタ
３１０７  レンダ
３００１  ＰｏｓｔＳｃｒｉｐｔインタプリタ
３００２  レンダ
３００３  言語処理部
３００４  文字処理部
３００５  グラフィックス処理部
３００６  イメージ処理部
３００７  ＣＭＳエンジン
３００８  ディスプレイリストジェネレータ
３００９  ハーフトーニング部
３０１０  ＰｏｓｔＳｃｒｉｐｔデータ
３０１１  ＲＩＰ詳細パラメータ
３０１２  ディスプレイリスト
３０１３  ２値ビットマップ
【図１】
0004995057.tif 000002
【図２】
0004995057.tif 000003
【図３】
0004995057.tif 000004
【図４】
0004995057.tif 000005
【図５】
0004995057.tif 000006
【図６】
0004995057.tif 000007
【図７】
0004995057.tif 000008
【図８】
0004995057.tif 000009
【図９】
0004995057.tif 000010
【図１０】
0004995057.tif 000011
【図１１】
0004995057.tif 000012