(57)【特許請求の範囲】
【請求項１】
第１単位データに基づいて中間データの生成処理とレンダリング処理とを行う第１レンダリング部と、前記第１単位データと異なる第２単位データに基づいて前記中間データの生成処理とレンダリング処理とを行う第２レンダリング部と、を含む複数のレンダリング部と、
前記第１単位データ及び前記第２単位データに含まれる複数の描画オブジェクトそれぞれの処理状態を管理する管理手段と、を備え、
前記第１単位データ及び前記第２単位データのいずれにも、第１描画オブジェクトと、前記第１描画オブジェクトと異なる第２描画オブジェクトと、が含まれている場合において、
前記第２レンダリング部は、前記第１描画オブジェクトに基づく前記中間データの生成処理と前記第２描画オブジェクトに基づく前記中間データの生成処理とがいずれも処理済の状態であることを示す応答を前記管理手段から取得した場合、前記第１レンダリング部において処理済の前記第１描画オブジェクトに基づく中間データと前記第２描画オブジェクトに基づく中間データとを前記第２レンダリング部においても利用するよう、前記第１描画オブジェクトに基づく中間データと前記第２描画オブジェクトに基づく中間データとを取得し、
前記第２レンダリング部は、前記第１描画オブジェクトに基づく前記中間データの生成処理が処理中の状態であることを示し、前記第２描画オブジェクトに基づく前記中間データの生成処理が未処理の状態であることを示す応答を前記管理手段から取得した場合には、前記第１レンダリング部で処理中の状態の前記第１描画オブジェクトに基づく前記中間データの生成処理が処理済となることを待たずに、未処理の状態の前記第２描画オブジェクトに基づく前記中間データの生成処理を開始する、
ことを特徴とする印刷装置。
【請求項２】
前記第２レンダリング部は、前記管理手段から取得した応答に前記中間データの生成処理が未処理の状態であることが含まれているかを判定し、当該判定の結果、含まれていると判定した場合、前記第１レンダリング部で処理中の状態の前記第１描画オブジェクトに基づく前記中間データの生成処理が処理済となることを待たずに、前記未処理の状態の前記第２描画オブジェクトに基づく前記中間データの生成処理を開始することを特徴とする請求項１に記載の印刷装置。
【請求項３】
前記管理手段は、前記複数のレンダリング部それぞれが処理済の状態の描画オブジェクトに基づく中間データを取得するためのアクセス情報をさらに管理することを特徴とする請求項１又は２に記載の印刷装置。
【請求項４】
前記管理手段は、前記第１描画オブジェクトと前記第２描画オブジェクトそれぞれの処理の経過に応じて、管理している該各描画オブジェクトの処理状態を更新することを特徴とする請求項３に記載の印刷装置。
【請求項５】
前記複数のレンダリング部それぞれにおいて、前記中間データの生成処理により生成された中間データが削除される場合、前記管理手段は、対応する描画オブジェクトの処理状態を更新することを特徴とする請求項４に記載の印刷装置。
【請求項６】
前記管理手段は、前記複数のレンダリング部それぞれからの描画オブジェクトの問い合わせの予約をさらに管理し、
前記複数のレンダリング部それぞれは、前記中間データの生成処理により生成された中間データを格納するキャッシュの容量が足りていない場合、前記管理手段により管理されている描画オブジェクトについての前記予約の有無に基づいて、前記キャッシュから前記中間データの生成処理により生成された中間データを削除する、
ことを特徴とする請求項１乃至５のいずれか１項に記載の印刷装置。
【請求項７】
第１単位データに基づいて中間データの生成処理とレンダリング処理とを行う第１レンダリング部と、前記第１単位データと異なる第２単位データに基づいて前記中間データの生成処理とレンダリング処理とを行う第２レンダリング部と、を含む複数のレンダリング部を備える印刷装置において実行される処理方法であって、
前記第１単位データ及び前記第２単位データに含まれる複数の描画オブジェクトそれぞれの処理状態を管理する管理工程、を有し、
前記第１単位データ及び前記第２単位データのいずれにも、第１描画オブジェクトと、前記第１描画オブジェクトと異なる第２描画オブジェクトと、が含まれている場合において、
前記第２レンダリング部では、前記第１描画オブジェクトに基づく前記中間データの生成処理と前記第２描画オブジェクトに基づく前記中間データの生成処理とがいずれも処理済の状態であることを示す応答を前記管理工程で取得した場合、前記第１レンダリング部において処理済の前記第１描画オブジェクトに基づく中間データと前記第２描画オブジェクトに基づく中間データとを前記第２レンダリング部においても利用するよう、前記第１描画オブジェクトに基づく中間データと前記第２描画オブジェクトに基づく中間データとを取得し、
前記第２レンダリング部では、前記第１描画オブジェクトに基づく前記中間データの生成処理が処理中の状態であることを示し、前記第２描画オブジェクトに基づく前記中間データの生成処理が未処理の状態であることを示す応答を前記管理工程で取得した場合には、前記第１レンダリング部で処理中の状態の前記第１描画オブジェクトに基づく前記中間データの生成処理が処理済となることを待たずに、未処理の状態の前記第２描画オブジェクトに基づく前記中間データの生成処理を開始する、
ことを特徴とする処理方法。
【請求項８】
コンピュータを、請求項１乃至６のいずれか１項に記載の印刷装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部装置から受信するデータから画像を生成するための処理技術に関するものである。
【背景技術】
【０００２】
デジタル印刷の進展に伴い、その特色を活かした形態としてのバリアブルデータ印刷（Ｖａｒｉａｂｌｅ  Ｄａｔａ  Ｐｒｉｎｔ、以後、ＶＤＰと略す）が注目されている。印刷物の一部を可変データとして部毎に変更する印刷形態は、電子写真等のデジタルプリンタの特性を最大限に発揮するものである。初期のＶＤＰでは、プリンタ記述言語として、様々なＶＤＰ言語が使用されていたが、現在では、標準言語としてのＰＰＭＬが規定され、広く利用されている。
【０００３】
ＰＰＭＬでは、ページを描画する要素として、繰り返し参照されるリユーサブルオブジェクトと、一度限り参照されるローカルオブジェクトの二つがある。リユーサブルオブジェクトは、ページ内、ページ間、あるいはジョブ間で、単一の描画オブジェクトを複数箇所に配置する場合に用いられる。通常、ローカルオブジェクトやリユーサブルオブジェクト等の描画オブジェクトは、ソース描画データとしてＰｏｓｔＳｃｒｉｐｔ（登録商標、以後、ＰＳと略記する）やＰＤＦにより記述される。
【０００４】
これらのソース描画データは、ＲＩＰ処理を経てラスタイメージ化された後にページ上に配置される。ＰＰＭＬのリユーサブルオブジェクトのように再利用されることが明確な場合は、ソース描画データからＲＩＰ処理した結果のラスタイメージをキャッシュする。その結果、非常に高速な描画処理が可能となる。但し、ラスタイメージは高解像度かつ高階調のカラーデータの場合、非常に大きなサイズとなる。そのため、大容量のメモリが必要となる。そこで、ラスタイメージに変換する前のディスプレイリスト（中間データ）をソース描画データから生成し、これをキャッシュするという方法もある。この方法は、ディスプレイリストをレンダリングするための時間は必要とされる一方で、キャッシュに必要なメモリ容量を大幅に削減することが可能である。
【０００５】
ところで、複数のＣＰＵコアを単一パッケージに集積したＣＰＵを用いて、複数ジョブを同時並行してＲＩＰ処理するジョブ並列処理方式が知られている。しかしながら、単一ジョブだけをみると、ＲＩＰ処理時間はシングルコアで実行した場合と変わらない。
【０００６】
また、別の方法として、単一ジョブ内の複数ページを同時並行してＲＩＰ処理するページ並列処理方式が知られている。特許文献１では、ＶＤＰに特化した並列処理方式として、ジョブをＶＤＰで定義されたレコード毎に分割して、レコード毎に同時並行してＲＩＰ処理するレコード並列処理方式が提案されている。尚、ＶＤＰの目的として、Ｏｎｅ  ｔｏ  Ｏｎｅマーケティングを実現するためのパーソナライズされた印刷物を製造する際の一人分のＶＤＰデータをレコードと呼ぶ。また、特許文献２では、ページ並列方式でもキャッシュメモリ等の記憶装置の利用効率を向上させるために、一つの機器内のキャッシュメモリを共用する方法が提案されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００９−１７２９１３号公報
【特許文献２】特開２０１２−２００９５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１の方法では、ある一つのリユーサブルオブジェクトを、同時並行でＲＩＰ処理する複数のページで同時に参照していると効率が低下する。これは、リユーサブルオブジェクトを複数の印刷制御装置で重複して中間データを生成する処理を実行する可能性があるからである。
【０００９】
また、特許文献２では、キャッシュメモリが不足する可能性が高くなる。その結果、中間データの削除と再生成、他の記憶装置への退避に時間がかかってしまい、全体のＲＩＰ処理時間がかかってしまう。
【００１０】
本発明は上記の課題を鑑みてなされたものであり、データの描画処理を効率的に実行することができる処理技術を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記の目的を達成するための本発明による印刷装置は、
第１単位データに基づいて中間データの生成処理とレンダリング処理とを行う第１レンダリング部と、前記第１単位データと異なる第２単位データに基づいて前記中間データの生成処理とレンダリング処理とを行う第２レンダリング部と、を含む複数のレンダリング部と、
前記第１単位データ及び前記第２単位データに含まれる複数の描画オブジェクトそれぞれの処理状態を管理する管理手段と、を備え、
前記第１単位データ及び前記第２単位データのいずれにも、第１描画オブジェクトと、前記第１描画オブジェクトと異なる第２描画オブジェクトと、が含まれている場合において、
前記第２レンダリング部は、前記第１描画オブジェクトに基づく前記中間データの生成処理と前記第２描画オブジェクトに基づく前記中間データの生成処理とがいずれも処理済の状態であることを示す応答を前記管理手段から取得した場合、前記第１レンダリング部において処理済の前記第１描画オブジェクトに基づく中間データと前記第２描画オブジェクトに基づく中間データとを前記第２レンダリング部においても利用するよう、前記第１描画オブジェクトに基づく中間データと前記第２描画オブジェクトに基づく中間データとを取得し、
前記第２レンダリング部は、前記第１描画オブジェクトに基づく前記中間データの生成処理が処理中の状態であることを示し、前記第２描画オブジェクトに基づく前記中間データの生成処理が未処理の状態であることを示す応答を前記管理手段から取得した場合には、前記第１レンダリング部で処理中の状態の前記第１描画オブジェクトに基づく前記中間データの生成処理が処理済となることを待たずに、未処理の状態の前記第２描画オブジェクトに基づく前記中間データの生成処理を開始することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、データの描画処理を効率的に実行することができる。
【図面の簡単な説明】
【００１３】
【図１】印刷装置における制御の構成を説明するためのブロック図である。
【図２】コントロール部でのジョブ処理を示すフローチャートである。
【図３】レンダリング部でのレンダリング処理を示すフローチャートである。
【図４】印刷ジョブに対応する印刷データの例を示す図である。
【図５】レンダリング処理の状況を示す説明図である。
【図６】レンダリング処理途中の通信応答とレンダリング処理後に保持する情報を示す図である。
【図７】オブジェクト調停部でのオブジェクトの予約回数を更新する処理を示すフローチャートである。
【図８】レンダリング部での予約回数を元にディスプレイリストを削除する処理を示すフローチャートである。
【図９】レンダリング処理中に保持する情報を示す図である。
【発明を実施するための形態】
【００１４】
以下、添付図面を参照して本発明の好適な実施形態を例示的に詳細に説明する。但し、この実施形態に記載されている構成要素の相対配置、装置形状等は、あくまで例示であり、この発明の範囲をそれらのみに限定する趣旨のものではない。
【００１５】
本明細書において「印刷装置」とは、印刷機能に特化した専用機に限らず、印刷機能とその他の機能を複合した複合機や、記録紙上に画像やパターンを形成する製造装置等の機器も含むものとする。
【００１６】
＜実施形態１＞
図１は印刷装置における制御の構成を説明するためのブロック図である。
印刷装置１０２は、コントロール部１０３と、複数のレンダリング部１０４と、オブジェクト調停部１１５と、ユーザインタフェース部１０５と、プリンタエンジン部１０６とを含む。画像を印刷する印刷装置１０２では、情報処理装置であるパーソナルコンピュータ等の外部装置１０１からのジョブデータを処理し、ロールシート等の記録媒体に印刷を行う。
【００１７】
コントロール部１０３は、受信部１０７と、分割部１０８と、レンダリング管理部１０９と、ＣＰＵ１１８と、メモリ１１９と、スプール部１１０とを含む。コントロール部１０３は、外部装置１０１からの受信データであるジョブデータを解析し、その解析結果やユーザインタフェース部１０５からの指示に基づき、レンダリング部１０４に送信するためのコマンドやデータを作成する。また、コントロール部１０３は、レンダリング部１０４からレンダリング処理後のデータを受信して、プリンタエンジン部１０６へ送信して印刷を行う。
【００１８】
ＣＰＵ１１８は、印刷装置１０２の各種構成要素を制御する。メモリ１１９は、プログラムメモリ、ワークメモリ、及びフラッシュメモリを含んでいる。プログラムメモリは、ＣＰＵ１１８が読み出すプログラムコード等のデータを格納するＲＯＭ等のメモリである。また、ワークメモリは、印刷装置１０２の各種処理実行時に使用する画像データ等のデータを一時格納したり、バッファリングしたりするためのＲＡＭ等のメモリである。フラッシュメモリは、受信部１０７が受信したジョブデータの送信元情報を格納可能な不揮発性メモリである。ＣＰＵ１１８は、プログラムメモリに格納されているプログラムをワークメモリ上で実行することにより、後述する各種の処理を実現することができる。
【００１９】
ユーザインタフェース部１０５は、操作指示の受付や装置状態の表示を行う。ユーザインタフェース部１０５は、例えば、表示部と操作部を有する。ＬＣＤ等の表示装置で構成され、操作部は、ユーザからの各種操作を受け付けるためのスイッチやタッチパネルで構成される。
【００２０】
プリンタエンジン部１０６は、コントロール部１０３から送信されたレンダリング処理後のデータ（ここでは、ビットマップデータ）に対して色変換等の画像処理を施した後、ロールシート等の被記録媒体へ印刷を行う。このプリンタエンジン部１０６の印刷方式としては、インクジェット方式、電子写真方式、熱転写方式等の各種印刷方式を利用することができる。
【００２１】
コントロール部１０３において、受信部１０７は、外部装置１０１からジョブデータを受信し格納する。この受信部１０７は、例えば、ＵＳＢ等のシリアルインタフェースで実現されても良いし、有線ネットワーク／無線ネットワークのネットワークインタフェースで実現されても良い。また、ジョブデータは、例えば、ページ記述言語であるＰＤＬデータによって構成されている。
【００２２】
分割部１０８は、受信されたジョブデータを解析し、レンダリング部１０４に指示する所定の単位データ（例えば、ページデータ）に分割し、その印刷順序を決定する。より詳しくは、分割部１０８は、例えば、ページデータ単位の並列処理のために、複数のレンダリング部１０４に対して担当ページデータの振り分けを行い、それぞれのページデータを含む印刷データを対応するレンダリング部１０４へ転送する。この場合、分割部１０８は、その印刷データの先頭ページデータから順に、各ページデータの処理をそれぞれ別々のレンダリング部１０４に振り分ける。
【００２３】
この振り分けは、予め定められた固定的な順序で各レンダリング部１０４にページデータを振り分ける方式であってもよい。また、振り分けられたページデータの処理が終了する毎にレンダリング部１０４が分割部１０８にその旨を通知し、その通知に応じて分割部１０８が未処理の先頭のページデータを通知元のレンダリング部１０４に振り分けるという制御でもよい。尚、これらはあくまで一例に過ぎず、他の振り分け方式を用いてもよい。
【００２４】
この分割部１０８は、外部装置１０１に内蔵（例えば、プログラムとしてインストール）されていてもよいし、これら複数のレンダリング部１０４とは別のコンピュータ装置上に構築されていてもよい。
【００２５】
本実施形態では、レンダリング部１０４は複数個存在し、各レンダリング部１０４によってレンダリング処理を並列処理することができる。各レンダリング部１０４は、レンダリング制御部１１１と、オブジェクトＩＤ生成部１１２と、ＰＤＬインタプリタ１１３と、キャッシュ保存部１１４と、問合せ結果保持部１１６と、レンダラ１１７と、を含む。
【００２６】
レンダリング管理部１０９は、分割部１０８により指示された印刷順序に従ってレンダリング部１０４のレンダリング制御部１１１にレンダリング処理の指示を行う。このレンダリング管理部１０９は、外部装置１０１に内蔵（例えば、プログラムとしてインストール）されていてもよいし、他の外部装置上に構築されていてもよい。レンダリング制御部１１１は、ＰＤＬインタプリタ１１３にジョブデータの解釈を指示し、描画オブジェクトの一覧を取得する。レンダリング制御部１１１は、オブジェクトＩＤ生成部１１２に、描画オブジェクトの一覧に含まれる各オブジェクトを識別する情報であるオブジェクトＩＤの生成を指示し、描画オブジェクトのＩＤ一覧を取得する。オブジェクトＩＤの生成方法については後述する。
【００２７】
オブジェクトＩＤ生成部１１２は、レンダリング制御部１１１の指示に応じて、各オブジェクトを識別する情報として、オブジェクトＩＤを生成する。
【００２８】
レンダリング制御部１１１は、描画オブジェクトのＩＤ一覧を使用して、描画オブジェクトの中間データであるディスプレイリストを生成するか否かを、キャッシュ保存部１１４及びオブジェクト調停部１１５へ問い合わせて判定する。レンダリング制御部１１１は、オブジェクト調停部１１５からの問い合わせ結果を問い合わせ結果保持部１１６に保持させる。レンダリング制御部１１１は、描画オブジェクトを生成する場合にはジョブデータの解釈を行い、ディスプレイリストを生成する。
【００２９】
キャッシュ保存部１１４は、描画オブジェクトをディスプレイリストの形式でキャッシュする。描画オブジェクトの再利用が可能である場合は、キャッシュ保存部１１４またはオブジェクト調停部１１５と連動して描画オブジェクトの再利用を行う。レンダリング制御部１１１における判定方法及び描画オブジェクトの再利用方法については後述する。レンダリング制御部１１１では、必要なディスプレイリストが揃ったらレンダラ１１７にビットマップデータの生成を指示する。
【００３０】
オブジェクト調停部１１５は、オブジェクトＩＤ生成部１１２で生成されたオブジェクトＩＤ毎に処理状態を管理する。即ち、各オブジェクトの処理状態を管理する。ここで、処理状態とは、未処理、処理中、処理済み等である。このオブジェクト調停部１１５は、外部装置１０１に内蔵（例えば、プログラムとしてインストール）されていてもよいし、他の外部装置上に構築されていてもよい。問い合わせ結果保持部１１６は、オブジェクト調停部１１５からの問い合わせ結果を保持する。
【００３１】
レンダラ１１７では、レンダリング制御部１１１からのビットマップデータの生成指示に基づき、処理対象のジョブデータに対して、画像補正やラスタライズ処理を含むレンダリング処理を実行する。これにより、レンダラ１１７は、ビットマップデータとビットマップデータに関するステータス情報を作成する。ステータス情報は、ジョブデータが正常にレンダリングされたか、エラーが発生したか等の状態を示す情報である。このステータス情報は、ユーザインタフェース部１０５上のジョブステータス表示に使用することができる。また、同時に、スプール部１１０は、レンダリング済データ保持部として、レンダリング処理結果であるビットマップデータと該ビットマップデータに関するステータス情報を保持する。
【００３２】
外部装置１０１は、ＣＰＵ２０１、ディスク装置２０２、外部ディスク読取装置２０３、メモリ２０４、表示部２０５、操作部２０６、ネットワーク通信部２０７、及びＵＳＢ通信部２０８を含んでいる。外部装置１０１は、例えば、汎用ＰＣ等の情報処理装置に所定のソフトウェアをインストールすることによって、各種の処理を実現可能である。
【００３３】
ＣＰＵ２０１は、信号線２０９を介して相互に接続される、外部装置１０１の各種構成要素を制御する。ディスク装置２０２は、ＣＰＵ２０１が読み出すアプリケーションプログラムやＯＳ（Ｏｐｅｒａｔｉｏｎ  Ｓｙｓｔｅｍ）等のプログラムをインストールし、また、各種ファイル等のデータを格納する。外部ディスク読取装置２０３は、ＣＤ−ＲＯＭ等の外部記憶媒体の内容を読み出すための装置である。メモリ２０４は、ＣＰＵ２０１が必要に応じてデータの一時的格納、バッファリング等の処理を行うためのメモリである。ＣＰＵ２０１は、ディスク装置２０２に格納されている各種プログラムをメモリ２０４上で実行することにより、各種の処理を実現することができる。
【００３４】
ＣＰＵ２０１は、外部装置１０１から印刷装置１０２を利用するためのソフトウェアのセットアッププログラムを実行することにより、各種プログラムが外部装置１０１にインストールされる。ディスク装置２０２に格納される各種プログラムには、印刷装置１０２を利用するためのプリンタドライバ等の各種デバイスドライバが含まれる。また、更に印刷装置１０２の状態（イベントの有無等）を問い合わせるためのポーリングアプリケーション、印刷装置１０２の状態（ステータス）を管理する管理ソフトウェア（ボタンモニター）等の各種アプリケーションが含まれる。
【００３５】
表示部２０５は、ＬＣＤ等を含む表示装置で構成され、各種情報を表示する。操作部２０６は、キーボードやマウス、またタッチパネル等の入力装置で構成され、ユーザからの操作を受け付ける。ネットワーク通信部２０７は、外部装置１０１をネットワークに接続して各種通信を行う。ネットワーク通信部２０７は、有線ネットワークと無線ネットワークの内、少なくともいずれかに対応する。具体的な形態は、印刷装置１０２に内蔵の受信部１０７に対応するネットワークに応じて必要な機能及び形態をとる。ＵＳＢ通信部２０８は、各種周辺装置とＵＳＢインタフェースを介して通信する。
【００３６】
このように、印刷装置１０２と外部装置１０１をネットワークを介して接続した処理システムとして構成することができる。このネットワークには、例えば、Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＬＡＮ）がある。また、以降の説明では、有線ネットワークケーブルであるネットワークから構成されるネットワークについて扱うが、これに限定されない。ネットワークの態様は、無線ネットワークであっても、有線ネットワークと無線ネットワークが混在するネットワークであっても同様である。
【００３７】
次に、コントロール部１０３でのジョブ処理を、図２のフローチャートを用いて説明する。この処理は、印刷装置１０２のＣＰＵ１１８の指示により、コントロール部１０３がメモリ１１９に記憶されているプログラムを読み出し実行することにより実現される。
【００３８】
まず、Ｓ２０１で、受信部１０７は、外部装置１０１からジョブデータを受信し、分割部１０８は、そのジョブデータを解析し、１つ又は複数のレンダリング部１０４に指示する単位に分割し、その印刷順序を決定する。Ｓ２０２で、レンダリング管理部１０９は、レンダリング部１０４に対してレンダリング処理の実行を指示し、レンダリング処理を実行する。Ｓ２０３で、レンダリング管理部１０９は、レンダリング処理結果であるビットマップデータとステータス情報を受信し、スプール部１１０に保持する。Ｓ２０４で、レンダリング管理部１０９は、スプール部１１０からビットマップデータを印刷順序で取得して、プリンタエンジン部１０６へ送信して、印刷を指示する。
【００３９】
レンダリング部１０４でのレンダリング処理を、図３のフローチャートを用いて説明する。この処理は、印刷装置１０２のＣＰＵ１１８の指示により、コントロール部１０３がメモリ１１９に記憶されているプログラムを読み出し実行することで、レンダリング部１０４を制御することにより実現される。
【００４０】
まず、Ｓ３０１で、レンダリング制御部１１１は、レンダリング管理部１０９からレンダリング処理の指示を受信し、ＰＤＬインタプリタ１１３でジョブデータの描画オブジェクトの一覧を取得する。Ｓ３０２で、レンダリング制御部１１１は、オブジェクトＩＤ生成部１１２に、描画オブジェクトの一覧に含まれる各オブジェクトのオブジェクトＩＤの生成を指示し、描画オブジェクトのＩＤ一覧を取得する。
【００４１】
尚、このオブジェクトＩＤは、同一のＰＤＬデータから生成したジョブデータ内のオブジェクトは同一であると判定できるものであり、また、異なるオブジェクトには異なるものが与えられる。分割部１０８でＰＤＬデータの内容を変更する場合には、分割部１０８がジョブデータを分割する際に、分割前のＰＤＬデータを識別する情報と、分割前のＰＤＬデータ内のオブジェクトを識別する情報を与える。
【００４２】
分割前のＰＤＬデータを識別する情報は、ＰＤＬデータに対してＭＤ５（Ｍｅｓｓａｇｅ  Ｄｉｇｅｓｔ  Ａｌｇｏｒｉｔｈｍ  ５）やＳＨＡ−１（Ｓｅｃｕｒｅ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ  １）のようなハッシュ関数から算出したハッシュ値でもよい。または、分割前のＰＤＬデータを識別する情報は、ジョブデータを識別する情報であるジョブＩＤであってもよい。更には、分割前のＰＤＬデータ内のオブジェクトを識別する情報は、ＰＤＬデータ内で使用されているオブジェクトＩＤであってもよい。尚、これらの情報は、あくまで一例に過ぎず、他の情報を用いてもよい。
【００４３】
Ｓ３０３で、レンダリング制御部１１１は、該当ジョブデータの描画オブジェクトのディスプレイリストがキャッシュ保存部１１４に格納済であるか否かを判定する。格納済である場合（Ｓ３０３でＹＥＳ）、Ｓ３０４で、レンダリング制御部１１１は、キャッシュ保存部１１４から格納済のディスプレイリストを取り出す。その後、Ｓ３０５に遷移する。
【００４４】
一方、格納済でない場合（Ｓ３０３でＮＯ）、Ｓ３０５で、レンダリング制御部１１１は、該当ジョブデータのすべての描画オブジェクト分の処理が完了したか否かを判定する。すべての描画オブジェクト分の処理が完了していない場合（Ｓ３０５でＮＯ）、Ｓ３０６で、レンダリング制御部１１１は、該当ジョブデータの描画オブジェクトの状態についてオブジェクト調停部１１５に問い合わせを行う。これにより、レンダリング制御部１１１は、該当ジョブデータの描画オブジェクトについての状態をオブジェクト調停部１１５から取得する。
【００４５】
Ｓ３０７で、レンダリング制御部１１１は、問い合わせに対する応答に「未処理」の描画オブジェクトが含まれるか否かを判定する。「未処理」の描画オブジェクトが含まれる場合（Ｓ３０７でＹＥＳ）、Ｓ３０８で、レンダリング制御部１１１は、「未処理」の描画オブジェクトを１つ取り出す。Ｓ３０９で、レンダリング制御部１１１は、オブジェクト調停部１１５に指示して、取り出した描画オブジェクトの状態を「処理中」に設定する。Ｓ３１０で、レンダリング制御部１１１は、ＰＤＬインタプリタ１１３にて、取り出した描画オブジェクトに対応するディスプレイリストを生成する。
【００４６】
Ｓ３１１で、レンダリング制御部１１１は、生成したディスプレイリストをキャッシュ保存部１１４に格納する。尚、Ｓ３１１で、キャッシュ保存部の容量が不足してディスプレイリストの保存を実行できない場合、レンダリング制御部１１１は、他のディスプレイリストを削除する。そして、レンダリング制御部１１１は、削除したディスプレイリストに対応する描画オブジェクトの状態を「未処理」に設定することをオブジェクト調停部１１５に指示する。
【００４７】
Ｓ３１２で、レンダリング制御部１１１は、オブジェクト調停部１１５に指示して、他のレンダリング部から描画オブジェクトを取り出すためのアクセス情報とともに、Ｓ３０９で取り出した描画オブジェクトの状態を「処理済」に設定する。その後、Ｓ３０５に遷移する。
【００４８】
尚、他のレンダリング部から描画オブジェクトを取り出すためのアクセス情報は、ＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）であったり、ＩＰアドレスやポート情報であってもよい。これらはあくまで一例に過ぎず、他の情報を用いてもよい。オブジェクト調停部１１５は、描画オブジェクトの状態と他のレンダリング部から描画オブジェクトを取り出すためのアクセス情報を紐づけて管理する。
【００４９】
Ｓ３０７で、応答に「未処理」の描画オブジェクトが含まれない場合（Ｓ３０７でＮＯ）、Ｓ３１３で、レンダリング制御部１１１は、その応答に「処理済」の描画オブジェクトが含まれるか否かを判定する。「処理済」の描画オブジェクトが含まれる場合（Ｓ３１３でＹＥＳ）、Ｓ３１４で、レンダリング制御部１１１は、Ｓ３０６の問い合わせの結果として「処理済」の描画オブジェクトと他のレンダリング部から描画オブジェクトを取り出するための情報を取得する。これにより、レンダリング制御部１１１は、他のレンダリング部から「処理済」の描画オブジェクトのディスプレイリストを取り出す。その後、Ｓ３０５に遷移する。
【００５０】
応答に「処理済」の描画オブジェクトが含まれない場合（Ｓ３１３でＮＯ）、Ｓ３１５で、レンダリング制御部１１１は、その応答に「処理中」の描画オブジェクトが含まれるか否かを判定する。「処理中」の描画オブジェクトが含まれる場合（Ｓ３１５でＹＥＳ）、Ｓ３１６で、レンダリング制御部１１１は、「処理中」の描画オブジェクトを１つ取り出す。Ｓ３１７で、レンダリング制御部１１１は、取り出した描画オブジェクトの状態が「処理済」になるのを待機する。その後、「処理済」になれば、Ｓ３１４に遷移する。
【００５１】
尚、この待機は、レンダリング制御部１１１が一定時間経過後に、オブジェクト調停部１１５に対して、描画オブジェクトの状態を問い合わせる方式であってもよい。また、オブジェクト調停部１１５に対し監視を依頼し、オブジェクトの状態が変更されたらオブジェクト調停部１１５がレンダリング制御部１１１にその旨を通知する方式であってもよい。これらの方式は、あくまで一例に過ぎず、他の待機方法を用いてもよい。
【００５２】
一方、応答に「処理中」の描画オブジェクトが含まれない場合（Ｓ３１５でＮＯ）、Ｓ３０５に遷移する。
【００５３】
すべての描画オブジェクト分の処理が完了した場合（Ｓ３０５でＹＥＳ）、Ｓ３１８で、レンダリング制御部１１１は、レンダラ１１７にてレンダリング処理を実行して、ディスプレイリストからビットマップデータを作成する。
【００５４】
図４は、ジョブデータによる印刷ジョブに対応する印刷データの例である。図４（ａ）に示すように、印刷ジョブ４００は、ジョブを固有に識別する情報であるＪｏｂＩＤが「１」に設定されている。印刷ジョブ４００は、印刷データを構成する複数（ここでは、２つ）のレコード４１０及び４２０を含んでいる。レコード４１０は、複数（ここでは、３ページ）のページ（ページ４１１、ページ４１２、ページ４１３）を含んでいる。レコード４２０は、複数（ここでは、３ページ）のページ（ページ４２１、ページ４２２、ページ４２３）を含んでいる。ＯｂｊｅｃｔＡ４３１、ＯｂｊｅｃｔＢ４３２、ＯｂｊｅｃｔＣ４３３、及びＯｂｊｅｃｔＤ４３４は、ページに含まれる描画オブジェクトを示している。ページ４１２は、ＯｂｊｅｃｔＡ４３１、ＯｂｊｅｃｔＢ４３２、及びＯｂｊｅｃｔＣ４３３を含んでいる。ページ４２２は、ＯｂｊｅｃｔＡ４３１、ＯｂｊｅｃｔＢ４３２、及びＯｂｊｅｃｔＤ４３４を含んでいる。このように、複数のページ間で、共有／共用される描画オブジェクトが存在する。
【００５５】
図４（ｂ）は、図４（ａ）の印刷データを表すデータ構造の例である。ジョブデータは、ジョブヘッダ部４４１とドキュメントデータ部４４２に分かれる。ジョブヘッダ部４４１では、印刷の指示内容やＪｏｂＩＤ等の情報が含まれる。ドキュメントデータ部４４２では、ＰＤＬデータが含まれており、例えば、ＰＤＦフォーマットでは、更に、ヘッダ４４３、ボディ４４４、クロスリファレンス・テーブル４４５、及びトレイラ４４６を含んでいる。
【００５６】
ヘッダ４４３では、ＰＤＦドキュメントに準拠するＰＤＦ仕様のバージョン等の情報が含まれる。ボディ４４４では、描画オブジェクトやページ内の情報が含まれ、各々のオブジェクトは一意なＯｂｊｅｃｔＩＤによって管理される。クロスリファレンス・テーブル４４５では、各オブジェクトのファイル内位置情報が含まれる。トレイラ４４６では、カタログと呼ばれるドキュメントの構造情報を格納するオブジェクトやクロスリファレンス・テーブル４４５のファイル内位置情報が含まれる。４４７では、Ｐａｇｅ１０２がＯｂｊｅｃｔＡ、ＯｂｊｅｃｔＢ及びＯｂｊｅｃｔＣを参照していることを示している。４４８では、Ｐａｇｅ２０２がＯｂｊｅｃｔＡ、ＯｂｊｅｃｔＢ及びＯｂｊｅｃｔＤを参照していることを示している。４４９では、ＯｂｊｅｃｔＡ、ＯｂｊｅｃｔＢ、ＯｂｊｅｃｔＣ及びＯｂｊｅｃｔＤのファイル内の位置を表している。
【００５７】
次に、図３のフローチャートと図４の印刷データでレンダリング処理を行う場合の一例を、図５を用いて説明する。図５は左から右に時間の経過を示している。
【００５８】
５０１は、ページ４１２を処理するレンダリング制御部１１１（第１のレンダリング制御部）内での処理内容であり、このレンダリング制御部１１１は、複数のレンダリング部１０４の内の第１のレンダリング部に属している。
【００５９】
列５０２は、５０１のレンダリング制御部１１１が該当ジョブデータの描画オブジェクトの状態についてオブジェクト調停部１１５に問い合わせを行うタイミングを水平方向の矢印で示している。列５０３は、ＯｂｊｅｃｔＡ４３１に関する処理のタイミングを水平方向の矢印で示している。列５０４は、ＯｂｊｅｃｔＢ４３２に関する処理のタイミングを水平方向の矢印で示している。列５０５は、ＯｂｊｅｃｔＣ４３３に関する処理のタイミングを水平方向の矢印で示している。
【００６０】
５０６は、オブジェクト調停部１１５内への通信を垂直方向の矢印で示している。
【００６１】
５１１は、５０１とは別のレンダリング制御部１１１であって、ページ４２２を処理するレンダリング制御部１１１（第２のレンダリング制御部）内での処理内容である。この別のレンダリング制御部１１１は、複数のレンダリング部１０４の内の第２のレンダリング部に属している。
【００６２】
列５１２は、５１１のレンダリング制御部１１１が該当ジョブデータの描画オブジェクトの状態についてオブジェクト調停部１１５に問い合わせを行うタイミングを水平方向の矢印で示している。列５１３は、ＯｂｊｅｃｔＡ４３１に関する処理のタイミングを水平方向の矢印で示している。列５１４は、ＯｂｊｅｃｔＢ４３２に関する処理のタイミングを水平方向の矢印で示している。列５１５は、ＯｂｊｅｃｔＤ４３４に関する処理のタイミングを水平方向の矢印で示している。
【００６３】
まず、タイミング５４１にて、ページ４１２の処理とページ４２２の処理を開始する。タイミング５４１では、キャッシュ保存部１１４には何も格納されていない状態であり、かつオブジェクト調停部１１５に何も情報がない状態である。このとき、図４のフローチャートに沿って、第１のレンダリング制御部（５０１）によって、Ｓ３０６にて、問い合わせ５２１が行われる。タイミング５４２で、問い合わせ５２１の問い合わせ結果が問い合わせ結果保持部１１６にて保持される。図６（ａ）は、問い合わせ５２１の後の問い合わせ結果保持部１１６の内容を示している。６０１から６０３は、データフィールドである。６０１は、オブジェクトＩＤ生成部１１２にて生成したオブジェクトＩＤである。６０２は、描画オブジェクトの状態である。６０３は、他のレンダリング部から描画オブジェクトを取り出すためのＵＲＬである。問い合わせ５２１の問い合わせ結果は、すべての描画オブジェクト（ＯｂｊｅｃｔＡ〜Ｃ）の状態は「未処理」となっている。そのため、ＯｂｊｅｃｔＡに対しＳ３０８〜Ｓ３１１によるディスプレイリストの生成５２２を開始し、特に、Ｓ３０９にて、オブジェクト調停部１１５のＯｂｊｅｃｔＡの状態を「未処理」から「処理中」へと変更する。
【００６４】
次に、第２のレンダリング制御部（５１１）によって、Ｓ３０６にて、問い合わせ５２３が行われる。タイミング５４３で、問い合わせ５２３の問い合わせ結果が問い合わせ結果保持部１１６にて保持される。図６（ｂ）は、問い合わせ５２３の後の問い合わせ結果保持部１１６の内容を示している。問い合わせ５２３の問い合わせ結果は、ＯｂｊｅｃｔＡの状態が「処理中」、ＯｂｊｅｃｔＢとＯｂｊｅｃｔＣの状態がそれぞれ「未処理」となっている。そのため、ＯｂｊｅｃｔＢに対しＳ３０８〜Ｓ３１１のディスプレイリストの生成５２４を開始し、特に、Ｓ３０９にて、オブジェクト調停部１１５のＯｂｊｅｃｔＢの状態を「未処理」から「処理中」へと変更する。
【００６５】
次に、第１のレンダリング制御部（５０１）は、ディスプレイリストの生成５２２が完了すると、Ｓ３１２にて、オブジェクト調停部１１５のＯｂｊｅｃｔＡの状態を「処理中」から「処理済」へと変更する。更に、第１のレンダリング制御部（５０１）は、他のレンダリング部から描画オブジェクトを取り出すためのＵＲＬを記録する。次に、問い合わせ５２５が行われ、タイミング５４４で、その問い合わせ結果が問い合わせ結果保持部１１６にて保持される。図６（ｃ）は、問い合わせ５２５の後の問い合わせ結果保持部１１６の内容を示している。問い合わせ５２５の問い合わせ結果は、ＯｂｊｅｃｔＣの状態が「未処理」となっている。そのため、ＯｂｊｅｃｔＣに対しＳ３０８〜Ｓ３１１のディスプレイリストの生成５２６を開始し、特に、３０９にて、オブジェクト調停部１１５のＯｂｊｅｃｔＣの状態を「未処理」から「処理中」へと変更する。
【００６６】
本実施形態では、問合せ対象とする描画オブジェクトのうち処理済みの描画オブジェクトは、問合せ結果保持部１１６から削除するものとした。尚、問い合わせ対象とする描画オブジェクトは、照会時にすべての描画オブジェクトから、第１のレンダリング制御部（５０１）で、ディスプレイリストを生成した描画オブジェクトを除外する方法であってもよい。また、照会時にすべての描画オブジェクトに対して問い合わせを行い、その応答時に、第１のレンダリング制御部（５０１）で、ディスプレイリストを生成した描画オブジェクトを除外する方法であってもよい。
【００６７】
次に、第２のレンダリング制御部（５１１）は、ディスプレイリストの生成５２４が完了すると、Ｓ３１２にて、オブジェクト調停部１１５のＯｂｊｅｃｔＢの状態を「処理中」から「処理済」へと変更する。更に、第２のレンダリング制御部（５１１）は、他のレンダリング部から描画オブジェクトを取り出すためのＵＲＬを記録する。次に、問い合わせ５２７が行われ、タイミング５４５で、その問い合わせ結果が問い合わせ結果保持部１１６にて保持される。図６（ｄ）は、問い合わせ５２７の後の問い合わせ結果保持部１１６の内容を示している。問い合わせ５２７の問い合わせ結果は、ＯｂｊｅｃｔＤの状態が「未処理」となっている。そのため、ＯｂｊｅｃｔＤに対しＳ３０８〜Ｓ３１１のディスプレイリストの生成５２８を開始し、特に、Ｓ３０９にて、オブジェクト調停部１１５のＯｂｊｅｃｔＤの状態を「未処理」から「処理中」へと変更する。
【００６８】
次に、第１のレンダリング制御部（５０１）は、ディスプレイリストの生成５２６が完了すると、Ｓ３１２にて、オブジェクト調停部１１５のＯｂｊｅｃｔＣの状態を「処理中」から「処理済」へと変更する。更に、第１のレンダリング制御部（５０１）は、オブジェクト調停部１１５に他のレンダリング部から描画オブジェクトを取り出すためのＵＲＬを記録する。次に、問い合わせ５２９が行われ、タイミング５４６で、その問い合わせ結果が問い合わせ結果保持部１１６にて保持される。図６（ｅ）は、問い合わせ５２９の後の問い合わせ結果保持部１１６の内容を示している。問い合わせ５２９の問い合わせ結果は、ＯｂｊｅｃｔＢの状態が「処理済」となっている。そのため、ＯｂｊｅｃｔＢに対しＳ３１３〜Ｓ３１４のディスプレイリストの取出５３０を行う。次に、Ｓ３０５にて、すべての描画オブジェクトが処理されたと判定されるため、Ｓ３１８にて、ビットマップデータが生成される。
【００６９】
次に、第２のレンダリング制御部（５１１）は、ディスプレイリストの生成５２８が完了すると、Ｓ３１２にて、オブジェクト調停部１１５のＯｂｊｅｃｔＤの状態を「処理中」から「処理済」へと変更する。更に、第２のレンダリング制御部（５１１）は、オブジェクト調停部１１５に他のレンダリング部から描画オブジェクトを取り出すためのＵＲＬを記録する。次に、問い合わせ５３１が行われ、タイミング５４７で、その問い合わせ結果が問い合わせ結果保持部１１６にて保持される。図６（ｆ）は、問い合わせ５３１の後の問い合わせ結果保持部１１６の内容を示している。問い合わせ５３１の問い合わせ結果は、ＯｂｊｅｃｔＡの状態が「処理済」の状態となっている。そのため、ＯｂｊｅｃｔＡに対しＳ３１３〜Ｓ３１４のディスプレイリストの取出５３２を行う。次に、Ｓ３０５にて、すべての描画オブジェクトが処理されたと判定されるため、Ｓ３１８にて、ビットマップデータが生成される。
【００７０】
図６における一連の処理が完了したタイミング５４８では、オブジェクト調停部１１５は、図６（ｇ）に示す情報を保持している。
【００７１】
以上説明したように、実施形態１によれば、印刷ジョブ内の各描画オブジェクトが他のレンダリング部で処理済であれば、その処理結果を利用し、描画オブジェクトが未処理であれば処理を実行して、その処理結果を他のレンダリング部から利用可能にする。これにより、共通なデータの処理を重複して実行することを防ぐことが可能となり処理効率を上げることができる。
【００７２】
また、印刷ジョブ内の描画オブジェクトを他のレンダリング部が処理中であれば、他の描画オブジェクトを優先して処理するよう制御する。これにより、他のレンダリング部の処理結果を待つ間にも他の描画オブジェクトの処理することが可能となり処理効率を上げることができる。
【００７３】
更に、描画オブジェクトの処理結果を単一のレンダリング部で保持するのではなく、複数のレンダリング部で分散して保持する。これにより、大量の処理結果を保持することが可能となり描画オブジェクトを処理せずに利用する確率を上げることができる。
【００７４】
このように、複数のレンダリング部でオブジェクトやページの処理状況と処理結果を共有し、共通なデータの処理を重複して実行することを防止することで処理効率を上げることができる。更に、複数のレンダリング部で処理結果を分散して保持することで大量の処理結果を保持することが可能となる。
【００７５】
＜実施形態２＞
実施形態２では、実施形態１と同様な構成で、描画オブジェクトの問い合わせの回数を規定する予約回数を保持する場合の処理の一例を説明する。尚、実施形態１と同様の構成については、説明を省略する。図７は、オブジェクト調停部１１５での描画オブジェクトの予約回数を更新する処理を示すフローチャートであり、図３のレンダリング部１０４でのレンダリング処理のＳ３０６に対して、オブジェクト調停部１１５が実行する処理である。
【００７６】
まず、図３のＳ３０６にて、レンダリング制御部１１１は、該当ジョブデータの描画オブジェクトの状態についてオブジェクト調停部１１５に問い合わせを予約するためのフラグをオンにして送信する。
【００７７】
これを受けて、Ｓ７０１で、オブジェクト調停部１１５は、レンダリング制御部１１１から描画オブジェクトの状態の問い合わせを受信する。Ｓ７０２で、オブジェクト調停部１１５は、受信した問い合わせの予約のためのフラグがオンであるか否かを判定する。予約のためのフラグがオンでない場合（Ｓ７０２でＮＯ）、処理を終了する。一方、予約のためのフラグがオンである場合（Ｓ７０２でＹＥＳ）、Ｓ７０３で、オブジェクト調停部１１５は、受信したすべての描画オブジェクトから描画オブジェクトを一つ取り出す。
【００７８】
Ｓ７０４で、オブジェクト調停部１１５は、取り出した描画オブジェクトの予約データフィールドに、問い合わせ元のレンダリング制御部１１１が含まれているか否かを判定する。予約データフィールドに問い合わせ元のレンダリング制御部１１１が含まれている場合（Ｓ７０４でＹＥＳ）、Ｓ７０５に遷移する。
【００７９】
一方、予約データフィールドに問い合わせ元のレンダリング制御部１１１が含まれていない場合（Ｓ７０４でＮＯ）、Ｓ７０６で、オブジェクト調停部１１５は、問い合わせ元のレンダリング制御部１１１を予約データフィールドに追加する。その後、Ｓ７０５に遷移する。
【００８０】
Ｓ７０５で、オブジェクト調停部１１５は、すべての問い合わせ中の描画オブジェクト分の処理が完了したか否かを判定する。完了していない場合（Ｓ７０５でＮＯ）、Ｓ７０３に戻る。一方、完了している場合（Ｓ７０５でＹＥＳ）、Ｓ７０７で、オブジェクト調停部１１５は、レンダリング制御部１１１にすべての問い合わせ中の描画オブジェクトの状態を返信する。
【００８１】
また、図３のＳ３１４において、レンダリング制御部１１１が他のレンダリング部から「処理済」の描画オブジェクトのディスプレイリストを取り出す場合には、次の処理を実行する。つまり、レンダリング制御部１１１は、取り出す描画オブジェクトの予約データフィールドからレンダリング制御部の情報を削除するようにオブジェクト調停部１１５に指示する。
【００８２】
同様に、図３のＳ３１２においても、レンダリング制御部１１１がディスプレイリストを生成した際に、生成した描画オブジェクトの予約データフィールドからレンダリング制御部１１１を削除するようにオブジェクト調停部１１５に指示する。
【００８３】
図８はレンダリング制御部１１１での予約回数を元にディスプレイリストを削除する処理を示すフローチャートであり、図３のレンダリング部１０４でのレンダリング処理のＳ３１１に対応する処理である。
【００８４】
Ｓ８０１で、レンダリング制御部１１１は、生成したディスプレイリストをキャッシュ保存部１１４に保存するために必要な容量が足りているか否かを判定する。容量が足りている場合（Ｓ８０１でＹＥＳ）、Ｓ８０２で、レンダリング制御部１１１は、生成したディスプレイリストをキャッシュ保存部１１４に格納する。
【００８５】
一方、容量が足りていない場合（Ｓ８０１でＮＯ）、Ｓ８０３で、レンダリング制御部１１１は、オブジェクト調停部１１５に、保存しているすべてのディスプレイリストの描画オブジェクトの状態について予約のためのフラグをオフにして問い合わせる。Ｓ８０４で、レンダリング制御部１１１は、問い合わせに対する応答から、予約データフィールドにレンダリング制御部が含まれていない描画オブジェクトが存在するか否かを判定する。描画オブジェクトが存在する場合（Ｓ８０４でＹＥＳ）、Ｓ８０５で、レンダリング制御部１１１は、キャッシュ保存部１１４から予約データフィールドにレンダリング制御部が含まれていない描画オブジェクトのディスプレイリストをすべて削除する。一方、描画オブジェクトが存在しない場合（Ｓ８０４でＮＯ）、Ｓ８０６で、レンダリング制御部１１１は、描画オブジェクトのディスプレイリストを１つ削除する。
【００８６】
Ｓ８０７で、レンダリング制御部１１１は、オブジェクト調停部１１５に指示して、Ｓ８０５またはＳ８０６にて削除したディスプレイリストの描画オブジェクトの状態を「未処理」に設定する。その後、Ｓ８０１に遷移する。
【００８７】
図９は図５における問い合わせ５４５時のオブジェクト調停部１１５が保持する情報（管理テーブル）を示している。９０１から９０４は、データフィールドである。９０１は、オブジェクトＩＤ生成部１１２にて生成したオブジェクトＩＤである。９０２は、描画オブジェクトの状態である。９０３は、他のレンダリング部から描画オブジェクトを取り出すためのＵＲＬである。９０４は、予約情報を格納する予約データフィールドであり、これは複数のレンダリング制御部を識別するための情報を格納する。レンダリング制御部を識別するための情報は、ＩＰアドレスであってもよいし、また、ＭＡＣアドレスであってもよい。尚、これらはあくまで一例に過ぎず、他の情報を用いてもよい。
【００８８】
図９では、予約データフィールドにレンダリング制御部が含まれているオブジェクトは、ＯｂｊｅｃｔＡとなっている。予約データフィールドにレンダリング制御部が含まれていないオブジェクトは、ＯｂｊｅｃｔＢ、ＯｂｊｅｃｔＣ、及びＯｂｊｅｃｔＤとなっている。そのため、レンダリング制御部であるｒｅｎｄｅｒｅｒ１においてキャッシュ保存部１１４に保存するのに必要な容量が足りない場合にはＯｂｊｅｃｔＢのディスプレイリストを削除することになる。
【００８９】
以上説明したように、実施形態２によれば、レンダリング部にて処理結果を保持する容量が不足した場合に、他のレンダリング部が使用する予定がない処理結果を優先して削除する。これにより、使用する予定の処理結果を削除する確率を下げることが可能となり、描画オブジェクトを処理せずに利用する確率を上げることができる。
【００９０】
（他の実施形態）
本発明の基本的構成は上述したものに限定されるものではない。例えば、上述した実施形態では、印刷装置は１台とし、複数のレンダリング部を備えるものとしたが、複数台の印刷装置を備えるものであってもよい。例えば、各印刷装置が１以上のレンダリング部を備えるものであってもよい。この場合も、複数の印刷装置で、オブジェクトやページの処理状況と処理結果を共有することで、共通なデータの処理を重複して実行することを抑制することができる。複数台の印刷装置に、キャッシュデータを分散させることで、１台あたりのキャッシュデータのメモリ量を小さくすることができ、また、大きな容量のデータを保持することもできる。
【００９１】
尚、以上の実施形態の機能は以下の構成によっても実現することができる。つまり、本実施形態の処理を行うためのプログラムコードをシステムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）がプログラムコードを実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することとなり、またそのプログラムコードを記憶した記憶媒体も本実施形態の機能を実現することになる。
【００９２】
また、本実施形態の機能を実現するためのプログラムコードを、１つのコンピュータ（ＣＰＵ、ＭＰＵ）で実行する場合であってもよいし、複数のコンピュータが協働することによって実行する場合であってもよい。更に、プログラムコードをコンピュータが実行する場合であってもよいし、プログラムコードの機能を実現するための回路等のハードウェアを設けてもよい。またはプログラムコードの一部をハードウェアで実現し、残りの部分をコンピュータが実行する場合であってもよい。
【符号の説明】
【００９３】
１０１：外部装置、１０２：印刷装置、１０３：コントロール部、１０４：レンダリング部、１０５：ユーザインタフェース部、１０６：プリンタエンジン部、１１５：オブジェクト調停部
【図１】
0006539022.tif 000002
【図２】
0006539022.tif 000003
【図３】
0006539022.tif 000004
【図４】
0006539022.tif 000005
【図５】
0006539022.tif 000006
【図６】
0006539022.tif 000007
【図７】
0006539022.tif 000008
【図８】
0006539022.tif 000009
【図９】
0006539022.tif 000010