(57)【特許請求の範囲】
【請求項１】
文書要素のページ記述言語データを解釈して得られた解釈結果から当該文書要素についての第１形式のデータである第１形式データを生成し、生成した前記第１形式データを第１記憶手段に記憶する第１生成手段であって、同じ文書要素についての前記第１形式データが前記第１記憶手段に既に記憶されている場合は、当該文書要素については前記第１形式データの生成を省略する第１生成手段と、
前記第１記憶手段に記憶された前記文書要素についての前記第１形式データから、前記第１形式データよりも多くの描画パラメータが適用された第２形式のデータである第２形式データを生成し、生成した前記第２形式データを、再利用に備えて当該文書要素と前記描画パラメータの組合せに対応する識別情報と対応付けて第２記憶手段に記憶させる第２生成手段であって、当該組合せに対応する識別情報に対応付けられた前記第２形式データが前記第２記憶手段に既に記憶されている場合は、当該組合せについての前記第２形式データの生成を省略する第２生成手段と、
を含むデータ処理装置。
【請求項２】
入力された文書要素が、その文書要素から生成された前記第２形式データを前記第２記憶手段に記憶させる対象の文書要素に該当するか否かを判定し、この判定の結果が肯定の場合は前記文書要素を前記第１生成手段及び前記第２生成手段に処理させる判定手段と、
前記判定手段の判定の結果が否定の場合に、前記文書要素のページ記述言語データを解釈して得られた解釈結果から前記文書要素についての前記第１形式データを生成し、生成した前記第１形式データを第３記憶手段に記憶する第３生成手段であって、同じ文書要素についての前記第１形式データが前記第３記憶手段に既に記憶されている場合は、当該文書要素については前記第１形式データの生成を省略し、前記第３記憶手段に記憶された前記第１形式データから前記第２形式データを生成し、生成した前記第２形式データを出力する、第３生成手段と、
を更に含むことを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記第１記憶手段と前記第３記憶手段とは共通のメモリ上に設けられており、
前記第１記憶手段又は前記第３記憶手段の空き容量が不足した場合、前記第１生成手段が生成した前記第１形式データを、前記第３生成手段が記憶した前記第１形式データよりも優先して前記共通の記憶手段から削除する削除手段、
を更に含む請求項２に記載のデータ処理装置。
【請求項４】
前記第１記憶手段と前記第３記憶手段を共通の記憶手段としたことを特徴とする請求項２に記載のデータ処理装置。
【請求項５】
前記共通の記憶手段の空き容量が不足した場合、前記第１生成手段が生成した前記第１形式データを、前記第３生成手段が記憶した前記第１形式データよりも優先して前記共通の記憶手段から削除する削除手段、
を更に含む請求項４に記載のデータ処理装置。
【請求項６】
入力された文書要素が、前記第２形式データを再利用に備えて前記第２記憶手段に記憶させる対象である再利用対象の文書要素、に該当するか否かを判定する判定手段、
を更に含み、
前記第２生成手段は、前記判定手段の判定の結果が肯定の場合には、生成した前記第２形式データを前記第２記憶手段に記憶させ、前記判定手段の判定の結果が否定の場合には、生成した前記第２形式データを前記第２記憶手段に記憶させずに出力する、
ことを特徴とする請求項１に記載のデータ処理装置。
【請求項７】
前記第１記憶手段の空き容量が不足した場合に、前記再利用対象に該当する文書要素に対応する前記第１形式データを、前記再利用対象に該当しない文書要素に対応する前記第１形式データよりも優先して前記共通の記憶手段から削除する削除手段、
を更に含む請求項６に記載のデータ処理装置。
【請求項８】
コンピュータを、
文書要素のページ記述言語データを解釈して得られた解釈結果から当該文書要素についての第１形式のデータである第１形式データを生成し、生成した前記第１形式データを第１記憶手段に記憶する第１生成手段であって、同じ文書要素についての前記第１形式データが前記第１記憶手段に既に記憶されている場合は、当該文書要素については前記第１形式データの生成を省略する第１生成手段、
前記第１記憶手段に記憶された前記文書要素についての前記第１形式データから、前記第１形式データよりも多くの描画パラメータが適用された第２形式のデータである第２形式データを生成し、生成した前記第２形式データを、再利用に備えて当該文書要素と前記描画パラメータの組合せに対応する識別情報と対応付けて第２記憶手段に記憶させる第２生成手段であって、当該組合せに対応する識別情報に対応付けられた前記第２形式データが前記第２記憶手段に既に記憶されている場合は、当該組合せについての前記第２形式データの生成を省略する第２生成手段、
として機能させるためのプログラム。
【請求項９】
文書要素のページ記述言語データを解釈し、その解釈結果にあらかじめ定められた１以上の描画パラメータを適用することで外部形式データを生成し、生成した前記外部形式データを、再利用に備えて当該文書要素と前記描画パラメータの組合せに対応する識別情報と対応付けて外部データ記憶手段に記憶する第１手段であって、同じ文書要素についての前記外部形式データが前記外部データ記憶手段に既に記憶されている場合は、当該文書要素については前記外部形式データの生成を省略する第１手段と、
文書要素のページ記述言語データを解釈し、その解釈結果にあらかじめ定められた１以上の描画パラメータを適用することで外部形式データを生成し、生成した前記外部形式データを、前記外部データ記憶手段に記憶せずに出力する第２手段と、
入力された文書要素が、その文書要素から生成された前記外部形式データを前記外部データ記憶手段に記憶させる対象の文書要素に該当するか否かを判定し、この判定の結果が肯定の場合は前記文書要素を前記第１手段に処理させ、否定の場合は前記文書要素を前記第２生成手段に処理させる判定手段と、
を含み、
前記第２手段は、
前記文書要素のページ記述言語データについての前記解釈結果から、前記外部形式データよりも適用される描画パラメータが少ない内部形式データを生成し、生成した前記内部形式データを内部データ記憶手段に記憶させる内部データ生成手段であって、前記文書要素についての前記内部形式データが前記内部データ記憶手段に既に記憶されている場合は、当該文書要素については前記内部形式データの生成を省略する内部データ生成手段と、
前記文書要素についての前記内部形式データに対して更に描画パラメータを適用することで、前記文書要素についての前記外部形式データを生成する手段と、
を有する、ことを特徴とするデータ処理装置。
【請求項１０】
コンピュータを、
文書要素のページ記述言語データを解釈し、その解釈結果にあらかじめ定められた１以上の描画パラメータを適用することで外部形式データを生成し、生成した前記外部形式データを、再利用に備えて当該文書要素と前記描画パラメータの組合せに対応する識別情報と対応付けて外部データ記憶手段に記憶する第１手段であって、同じ文書要素についての前記外部形式データが前記外部データ記憶手段に既に記憶されている場合は、当該文書要素については前記外部形式データの生成を省略する第１手段、
文書要素のページ記述言語データを解釈し、その解釈結果にあらかじめ定められた１以上の描画パラメータを適用することで外部形式データを生成し、生成した前記外部形式データを、前記外部データ記憶手段に記憶せずに出力する第２手段、
入力された文書要素が、その文書要素から生成された前記外部形式データを前記外部データ記憶手段に記憶させる対象の文書要素に該当するか否かを判定し、この判定の結果が肯定の場合は前記文書要素を前記第１手段に処理させ、否定の場合は前記文書要素を前記第２生成手段に処理させる判定手段、
として機能させるためのプログラムであって、
前記第２手段は、
前記文書要素のページ記述言語データについての前記解釈結果から、前記外部形式データよりも適用される描画パラメータが少ない内部形式データを生成し、生成した前記内部形式データを内部データ記憶手段に記憶させる内部データ生成手段であって、前記文書要素についての前記内部形式データが前記内部データ記憶手段に既に記憶されている場合は、当該文書要素については前記内部形式データの生成を省略する内部データ生成手段と、
前記文書要素についての前記内部形式データに対して更に描画パラメータを適用することで、前記文書要素についての前記外部形式データを生成する手段と、
を有する、ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置及びプログラムに関する。
【背景技術】
【０００２】
ページ記述言語（ＰＤＬ：Page Description Language）で記述された文書データ（以下「ＰＤＬデータ」と呼ぶ）から印刷装置に供給するラスター（ビットマップ）形式の画像データ（以下「ラスターデータ」と呼ぶ）を生成するシステムの中には、ＰＤＬデータをいったん中間データに変換し、その中間データをラスターデータに変換する２段階変換方式を用いるものがある。ＰＤＬデータ内で記述された個々のオブジェクトは、そのオブジェクトに適用される回転や拡大縮小等の操作や、物理的な印刷装置の特性（例えば解像度や色空間等）などの描画条件（それら操作や特性の総称。描画パラメータともいう）に依存しないという意味で抽象度が高い。逆にラスターデータは、それら描画条件が反映され、その具体的な印刷装置でほぼそのまま印刷に利用できるという意味で、抽象度が低いといえる。これに対して中間データの形式には、ＰＤＬ寄りのものから印刷装置で印刷されるラスターデータ寄りのものまで、抽象度が異なる様々なものが存在する。システムの設計思想により、どのような抽象度レベルの中間データ形式を用いるかが選択されている。
【０００３】
また従来の印刷データ処理システムには、ＰＤＬデータを解釈して生成したオブジェクト（文書を構成する文書要素）の中間データ又はラスター画像データをキャッシュに記憶し、再度同じオブジェクトが現れた場合にはキャッシュに記憶したデータを再利用することで、そのデータの生成処理を省略し、処理の高速化を図るものがある。
【０００４】
特許文献１には、フォーム等の特定の種類のオブジェクトの中間データをフォームキャッシュに保存し、再利用するシステムが開示されている。また特許文献１には、キャッシュに記憶する中間データの形式として、回転や拡大縮小等のための座標変換や、線幅等の描画属性、クリップ情報、カラー情報等の、印刷のための各種描画パラメータが適用された、抽象度がかなり低いものを用いる例が開示されている。
【０００５】
特許文献２には、並列動作する複数のＲＩＰ（Raster Image Processor）が、いったん生成した中間データ又はラスターデータを共通のキャッシュに記憶し、再利用するシステムが開示されている。このシステムでは、ＲＩＰは、処理しようとするオブジェクトの中間データ又はラスターデータが既に自分又は他のＲＩＰにより生成され、キャッシュ内に記憶されていれば、キャッシュ内のデータを用いることで、生成処理を省略する。
【０００６】
特許文献３に開示される装置では、並列動作する複数のＲＩＰがそれぞれ個別にキャッシュを有しており、制御部は、オブジェクト毎の文書データ中での登場回数の計数を行うことで、その文書データ内での総登場回数分の登場を終えたオブジェクトについてはそれらキャッシュからデータを削除する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１４−０９３０４５号公報
【特許文献２】特開２０１２−１１６０７８号公報
【特許文献３】特開２０１２−２０６３１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ラスターデータやこれに近い抽象度の低い中間データを記憶して再利用するシステムは、記憶したデータと同じ描画パラメータ群が適用する文書要素については、既に記憶済みのデータを再利用することができる。この場合、抽象度が高いＰＤＬデータから抽象度が低いその記憶したデータまでの変換に要する処理を再度行う必要がないので、処理高速化の効果が高い。しかし、例えば形状は同じだが回転角度が少しずつ異なる文書要素を複数印刷する場合、回転角度という描画パラメータが異なるため、回転角度に関する描画パラメータを適用済みの抽象度が低いデータ（中間データ又はラスターデータ）を記憶して再利用するシステムでは、記憶したデータを再利用できない。この場合、それら文書要素間で共通する部分が多いにもかかわらず、ＰＤＬデータをその抽象度が低いレベルのデータに変換する処理を文書要素毎に繰り返すことになり、処理速度向上の効果が得られない。
【０００９】
本発明は、描画パラメータが適用済みのラスターデータや中間データ等のデータを記憶して再利用するシステムにおいて、描画パラメータが異なるためそのデータを再利用できない文書要素についてページ記述言語データから処理し直す場合よりも、処理を高速化することを目的とする。
【課題を解決するための手段】
【００１０】
請求項１に係る発明は、文書要素のページ記述言語データを解釈して得られた解釈結果から当該文書要素についての第１形式のデータである第１形式データを生成し、生成した前記第１形式データを第１記憶手段に記憶する第１生成手段であって、同じ文書要素についての前記第１形式データが前記第１記憶手段に既に記憶されている場合は、当該文書要素については前記第１形式データの生成を省略する第１生成手段と、前記第１記憶手段に記憶された前記文書要素についての前記第１形式データから、前記第１形式データよりも多くの描画パラメータが適用された第２形式のデータである第２形式データを生成し、生成した前記第２形式データを、再利用に備えて当該文書要素と前記描画パラメータの組合せに対応する識別情報と対応付けて第２記憶手段に記憶させる第２生成手段であって、当該組合せに対応する識別情報に対応付けられた前記第２形式データが前記第２記憶手段に既に記憶されている場合は、当該組合せについての前記第２形式データの生成を省略する第２生成手段と、を含むデータ処理装置である。
【００１１】
請求項２に係る発明は、入力された文書要素が、その文書要素から生成された前記第２形式データを前記第２記憶手段に記憶させる対象の文書要素に該当するか否かを判定し、この判定の結果が肯定の場合は前記文書要素を前記第１生成手段及び前記第２生成手段に処理させる判定手段と、前記判定手段の判定の結果が否定の場合に、前記文書要素のページ記述言語データを解釈して得られた解釈結果から前記文書要素についての前記第１形式データを生成し、生成した前記第１形式データを第３記憶手段に記憶する第３生成手段であって、同じ文書要素についての前記第１形式データが前記第３記憶手段に既に記憶されている場合は、当該文書要素については前記第１形式データの生成を省略し、前記第３記憶手段に記憶された前記第１形式データから前記第２形式データを生成し、生成した前記第２形式データを出力する、第３生成手段と、を更に含むことを特徴とする請求項１に記載のデータ処理装置である。
【００１２】
請求項３に係る発明は、前記第１記憶手段と前記第３記憶手段とは共通のメモリ上に設けられており、前記第１記憶手段又は前記第３記憶手段の空き容量が不足した場合、前記第１生成手段が生成した前記第１形式データを、前記第３生成手段が記憶した前記第１形式データよりも優先して前記共通の記憶手段から削除する削除手段、を更に含む請求項２に記載のデータ処理装置である。
【００１３】
請求項４に係る発明は、前記第１記憶手段と前記第３記憶手段を共通の記憶手段としたことを特徴とする請求項２に記載のデータ処理装置である。
【００１４】
請求項５に係る発明は、前記共通の記憶手段の空き容量が不足した場合、前記第１生成手段が生成した前記第１形式データを、前記第３生成手段が記憶した前記第１形式データよりも優先して前記共通の記憶手段から削除する削除手段、を更に含む請求項４に記載のデータ処理装置である。
【００１５】
請求項６に係る発明は、入力された文書要素が、前記第２形式データを再利用に備えて前記第２記憶手段に記憶させる対象である再利用対象の文書要素、に該当するか否かを判定する判定手段、を更に含み、前記第２生成手段は、前記判定手段の判定の結果が肯定の場合には、生成した前記第２形式データを前記第２記憶手段に記憶させ、前記判定手段の判定の結果が否定の場合には、生成した前記第２形式データを前記第２記憶手段に記憶させずに出力する、ことを特徴とする請求項１に記載のデータ処理装置である。
【００１６】
請求項７に係る発明は、前記第１記憶手段の空き容量が不足した場合に、前記再利用対象に該当する文書要素に対応する前記第１形式データを、前記再利用対象に該当しない文書要素に対応する前記第１形式データよりも優先して前記共通の記憶手段から削除する削除手段、を更に含む請求項６に記載のデータ処理装置である。
【００１７】
請求項８に係る発明は、コンピュータを、文書要素のページ記述言語データを解釈して得られた解釈結果から当該文書要素についての第１形式のデータである第１形式データを生成し、生成した前記第１形式データを第１記憶手段に記憶する第１生成手段であって、同じ文書要素についての前記第１形式データが前記第１記憶手段に既に記憶されている場合は、当該文書要素については前記第１形式データの生成を省略する第１生成手段、前記第１記憶手段に記憶された前記文書要素についての前記第１形式データから、前記第１形式データよりも多くの描画パラメータが適用された第２形式のデータである第２形式データを生成し、生成した前記第２形式データを、再利用に備えて当該文書要素と前記描画パラメータの組合せに対応する識別情報と対応付けて第２記憶手段に記憶させる第２生成手段であって、当該組合せに対応する識別情報に対応付けられた前記第２形式データが前記第２記憶手段に既に記憶されている場合は、当該組合せについての前記第２形式データの生成を省略する第２生成手段、として機能させるためのプログラムである。
【００１８】
請求項９に係る発明は、文書要素のページ記述言語データを解釈し、その解釈結果にあらかじめ定められた１以上の描画パラメータを適用することで外部形式データを生成し、生成した前記外部形式データを、再利用に備えて当該文書要素と前記描画パラメータの組合せに対応する識別情報と対応付けて外部データ記憶手段に記憶する第１手段であって、同じ文書要素についての前記外部形式データが前記外部データ記憶手段に既に記憶されている場合は、当該文書要素については前記外部形式データの生成を省略する第１手段と、文書要素のページ記述言語データを解釈し、その解釈結果にあらかじめ定められた１以上の描画パラメータを適用することで外部形式データを生成し、生成した前記外部形式データを、前記外部データ記憶手段に記憶せずに出力する第２手段と、入力された文書要素が、その文書要素から生成された前記外部形式データを前記外部データ記憶手段に記憶させる対象の文書要素に該当するか否かを判定し、この判定の結果が肯定の場合は前記文書要素を前記第１手段に処理させ、否定の場合は前記文書要素を前記第２生成手段に処理させる判定手段と、を含み、前記第２手段は、前記文書要素のページ記述言語データについての前記解釈結果から、前記外部形式データよりも適用される描画パラメータが少ない内部形式データを生成し、生成した前記内部形式データを内部データ記憶手段に記憶させる内部データ生成手段であって、前記文書要素についての前記内部形式データが前記内部データ記憶手段に既に記憶されている場合は、当該文書要素については前記内部形式データの生成を省略する内部データ生成手段と、前記文書要素についての前記内部形式データに対して更に描画パラメータを適用することで、前記文書要素についての前記外部形式データを生成する手段と、を有する、ことを特徴とするデータ処理装置である。
【００１９】
請求項１０に係る発明は、コンピュータを、文書要素のページ記述言語データを解釈し、その解釈結果にあらかじめ定められた１以上の描画パラメータを適用することで外部形式データを生成し、生成した前記外部形式データを、再利用に備えて当該文書要素と前記描画パラメータの組合せに対応する識別情報と対応付けて外部データ記憶手段に記憶する第１手段であって、同じ文書要素についての前記外部形式データが前記外部データ記憶手段に既に記憶されている場合は、当該文書要素については前記外部形式データの生成を省略する第１手段、文書要素のページ記述言語データを解釈し、その解釈結果にあらかじめ定められた１以上の描画パラメータを適用することで外部形式データを生成し、生成した前記外部形式データを、前記外部データ記憶手段に記憶せずに出力する第２手段、入力された文書要素が、その文書要素から生成された前記外部形式データを前記外部データ記憶手段に記憶させる対象の文書要素に該当するか否かを判定し、この判定の結果が肯定の場合は前記文書要素を前記第１手段に処理させ、否定の場合は前記文書要素を前記第２生成手段に処理させる判定手段、として機能させるためのプログラムであって、前記第２手段は、前記文書要素のページ記述言語データについての前記解釈結果から、前記外部形式データよりも適用される描画パラメータが少ない内部形式データを生成し、生成した前記内部形式データを内部データ記憶手段に記憶させる内部データ生成手段であって、前記文書要素についての前記内部形式データが前記内部データ記憶手段に既に記憶されている場合は、当該文書要素については前記内部形式データの生成を省略する内部データ生成手段と、前記文書要素についての前記内部形式データに対して更に描画パラメータを適用することで、前記文書要素についての前記外部形式データを生成する手段と、を有する、ことを特徴とするプログラムである。
【発明の効果】
【００２０】
請求項１または８に係る発明によれば、描画パラメータが適用済みの第２形式データを記憶して再利用するシステムにおいて、描画パラメータが異なるため記憶した第２形式データを再利用できない文書要素についてページ記述言語データから処理し直す場合よりも、処理を高速化することができる。
【００２１】
請求項２、６に係る発明によれば、第２形式データの再利用が行われない文書要素についても、第１形式データの再利用による処理の高速化が可能となる。
【００２２】
請求項３、５または７に係る発明によれば、再利用のために記憶した第１形式データのうち、記憶から削除すると処理の高速化に悪影響を与えるものはできるだけ削除しないようにすることができる。
【００２３】
請求項４に係る発明によれば、第１生成手段と第３生成手段が互いに相手が生成した第１形式データを再利用することが可能になる。
【００２４】
請求項９または１０に係る発明によれば、外部形式データの再利用が行われない文書要素について、ページ記述言語データから外部形式データを生成する処理を効率化することができる。
【図面の簡単な説明】
【００２５】
【図１】実施形態のＲＩＰモジュールが適用される印刷システムの例を示す図である。
【図２】ＲＩＰモジュールの実施形態の一例を示す図である。
【図３】実施形態のＲＩＰモジュールの処理手順の一例を示す図である。
【図４】キャッシュ機構の処理手順の例を示す図である。
【図５】第１の変形例のＲＩＰモジュールの構成の例を示す図である。
【図６】第１の変形例のＲＩＰモジュールの処理手順の例を示す図である。
【図７】第２の変形例のＲＩＰモジュールの構成の例を示す図である。
【図８】第３の変形例のＲＩＰモジュールの処理手順の例を示す図である。
【図９】第３の変形例のＲＩＰモジュールの構成の例を示す図である。
【図１０】第３の変形例のＲＩＰモジュールの構成の別の例を示す図である。
【図１１】第４の変形例のＲＩＰモジュールの構成の例を示す図である。
【図１２】第４の変形例で用いられるキャッシュエントリ表のデータ内容の例を示す図である。
【図１３】第４の変形例のキャッシュ機構の処理手順の例を示す図である。
【図１４】キャッシュ管理部の処理手順の例を示す図である。
【図１５】第５の変形例のＲＩＰモジュールの構成の例を示す図である。
【図１６】第５の変形例のＲＩＰモジュールの処理手順の例を示す図である。
【発明を実施するための形態】
【００２６】
図１を参照して、本実施形態のＲＩＰモジュール１００が適用される印刷システムの例を説明する。
【００２７】
図１に例示する印刷システムは、フロントエンド装置１０、スプール２０、外部リソース記憶部２５、バックエンド装置３０及び印刷装置４０を含んでいる。
【００２８】
フロントエンド装置１０は、パーソナルコンピュータ（ＰＣ）等のクライアント装置から入力される印刷ジョブすなわちＰＤＬデータを中間データに変換する装置である。フロントエンド装置１０は、ジョブ入力部１２及び１以上のＲＩＰモジュール１００を有する。典型的な例では、フロントエンド装置１０は、１つのコンピュータであり、ジョブ入力部１２や個々のＲＩＰモジュール１００は、そのコンピュータが実行している別々のプロセスである。
【００２９】
ジョブ入力部１２は、クライアント装置からＰＤＬデータを受け取り、そのＰＤＬデータの処理をＲＩＰモジュール１００に依頼する。フロントエンド装置１０内にＲＩＰモジュール１００が複数存在する場合には、ジョブ入力部１２は、ＰＤＬデータの処理を出力単位毎に各ＲＩＰモジュール１００に割り当てて実行させる。出力単位は、例えばページやバンド（１ページを副走査方向に沿って複数に分割した帯状領域）等である。
【００３０】
ＲＩＰモジュール１００は、ジョブ入力部１２から割り当てられたＰＤＬデータを解釈して中間データを生成し、後段にあるスプール２０に出力する。ＲＩＰモジュール１００がスプール２０に出力する中間データは、例えば比較的多くの描画パラメータが適用された（言い換えれば抽象度が比較的低い）中間データ形式のものである。
【００３１】
ここで「描画パラメータ」とは、印刷装置用のラスターデータ上でのオブジェクトの描画状態を決めるパラメータである。描画パラメータは複数存在する。描画パラメータの例としては、例えば座標変換行列、様々な描画属性、クリップ情報、カラー情報等がある。座標変換行列は、ＰＤＬデータでの画像の座標系を印刷装置での画像の座標系に変換する行列である。ＰＤＬが表す画像を印刷の際に回転したり拡大又は縮小したりする場合、その回転や拡大・縮小の成分が、座標変換行列に反映される。描画属性には、例えば、線幅、ラインキャップ、ラインジョイン、マイターリミット、線の形状、ストローク調整、描画方式、論理演算モード、パターン情報等がある。クリップ情報は、画像の一部分をクリップ（切り抜き）して印刷する場合の、その部分を規定するパスやマスク等の情報である。例えばＰＤＬとしてＰｏｓｔＳｃｒｉｐｔ（登録商標）を用いる場合、ＰｏｓｔＳｃｒｉｐｔの「グラフィック状態」に含まれる各パラメータは、本実施形態における描画パラメータの例である。なお、以上に例示した描画パラメータはあくまで例示的なものに過ぎない。
【００３２】
このようにＲＩＰモジュール１００がスプール２０に出力する、比較的多くの描画パラメータが適用されたデータの形式のことを、以下では、ＲＩＰモジュール１００の「外部」に出力するデータの形式という意味で便宜上「外部形式」と呼ぶ。なお、後述するように、本実施形態のＲＩＰモジュール１００は、自モジュール内部での処理結果の再利用のために、内部的なキャッシュメモリ１２４（図２参照）を有する。内部的なキャッシュメモリ１２４には、外部形式よりも抽象度が高い中間データを記憶する。「抽象度が高い」とは、適用された描画パラメータの数が外部形式よりも少ないことを意味する。すなわち、キャッシュメモリ１２４に記憶される中間データは、対応する外部リソースに適用されている描画パラメータのうちの一部しか適用されていないか、又は描画パラメータが１つも適用されていない。このキャッシュメモリ１２４に記憶する中間データのデータ形式を「内部形式」と呼び、外部形式と区別する。なお、キャッシュメモリ１２４の利用を含む、本実施形態のＲＩＰモジュール１００の詳細については、後で図２等を参照して詳しく説明する。
【００３３】
なお、これに限定されるものではないが、一例として、内部形式と外部形式とは、オブジェクトの粒度は同じ（すなわち前者のオブジェクトと後者のオブジェクトが一対一に対応する）であるが、抽象度が異なるものであってよい。
【００３４】
ＲＩＰモジュール１００は、フォーム等のように文書の中で繰り返し使用される（再利用される機会が多い）特定の種類のオブジェクトについて生成した外部形式の中間データを、外部リソースとして外部リソース記憶部２５に出力する機能を有する。「外部リソース」の「外部」は、「外部形式」の「外部」と同じ意味合いである。ＲＩＰモジュール１００は、ＰＤＬデータから検出したその特定の種類のオブジェクトについて、対応する外部リソースが外部リソース記憶部２５に記憶されていなければ、そのオブジェクトについて外部形式の中間データを作成し、その外部リソースを識別する識別情報（「外部リソースＩＤ」と呼ぶ）と対応付けて外部リソース記憶部２５に登録する。ＰＤＬデータから検出したその特定の種類のオブジェクトについて、対応する外部リソースが外部リソース記憶部２５に記憶されている場合は、ＲＩＰモジュール１００はそのオブジェクトについて外部形式の中間データの作成（及び外部リソース記憶部２５への登録）は行わない。
【００３５】
ＲＩＰモジュール１００は、ＰＤＬデータの各ページ（論理ページ）について外部形式の中間データを生成し、生成した中間データをＲＩＰモジュール１００の外にあるスプール２０に出力する。このとき、ページの中に含まれる外部リソース化対象の特定種類のオブジェクトについては、そのオブジェクトを表す外部形式のデータの代わりに、そのオブジェクトに対応する外部リソースを参照する外部形式のコマンド（参照オブジェクト）を出力する。この参照オブジェクトは、例えば、その外部リソースを特定する外部リソースＩＤを含む。
【００３６】
なお、ＰＤＬよりも中間データの方が一般にオブジェクトの粒度が細かいので、ＰＤＬのオブジェクトが外部形式の中間データでは複数のオブジェクトに分かれる場合がある。この場合、ＲＩＰモジュール１００は、そのＰＤＬのオブジェクトの変換結果である複数の外部形式のオブジェクトを１つのグループとし、そのＰＤＬオブジェクトに対応して生成した外部リソースＩＤに対応付けてそのグループを外部リソース記憶部２５に登録する。これにより、外部リソースＩＤから、必要な複数の外部形式のオブジェクトが検索できる。
【００３７】
バックエンド装置３０は、スプール２０に蓄積された印刷対象の文書の各ページの中間データ（外部形式）を先頭から順に処理することで、その文書の各ページについて印刷装置４０が取扱可能な印刷画像データ（一般的にはラスターデータ）を生成する。このときバックエンド装置３０は、ページの中間データの中から外部リソースを呼び出す参照オブジェクトを検出した場合、その参照オブジェクトに含まれる外部リソースＩＤに対応する外部リソースを外部リソース記憶部２５から読み出し、その外部リソース（これは外部形式の中間データである）を処理することで、その外部リソースに対応する印刷画像データを生成する。バックエンド装置３０は、このように生成した各ページの印刷画像データを順に印刷装置４０に出力する。なお、バックエンド装置３０の機能は、特許文献１に開示した従来技術のものと同様でよいので、これ以上の説明は省略する。
【００３８】
次に図２及び図３を参照して、本実施形態のＲＩＰモジュール１００の機能構成及び動作について説明する。
【００３９】
図２に示すように、ＲＩＰモジュール１００は、解釈部１０２、変換部１０４、リソースＩＤ生成部１０８、後処理部１１０、参照オブジェクト生成部１１２、キャッシュ判定部１２０、キャッシュ作成部１２２、キャッシュメモリ１２４、キャッシュ利用変換部１２６、変換部１２８を含む。
【００４０】
解釈部１０２は、ジョブ入力部１２から処理対象の出力単位の割り当てを受けると、その出力単位のＰＤＬデータの先頭から順にコマンドを読み込み（図３のＳ１０）、読み込んだコマンドを解析する（Ｓ１２）。この解釈処理では、読み込んだコマンドのＰＤＬデータに対して字句解析、構文解析等の言語解析を行い、その解析結果を後段の処理モジュールに振り分ける。解釈部１０２は、コマンド（オブジェクト）の解析結果に従って、そのコマンドが外部リソース化の対象（フォーム等）であるか否かを判定する（Ｓ１４）。そのコマンドが外部リソース化の対象であると判定された場合、そのオブジェクトについての解析結果はリソースＩＤ生成部１０８に渡される（Ｓ２０へ）。逆に、そのコマンドが外部リソース化の対象でないと判定された場合、そのコマンドについての解析結果は通常処理パスにある変換部１０４に渡される（Ｓ１６へ）。ここでは、外部リソースについての処理を特別の処理と考え、それ以外のコマンドについての処理を通常処理と呼んでいる。
【００４１】
変換部１０４は、解釈部１０２から受け取った外部リソース以外の通常のコマンドについての言語解析結果に従い、そのコマンドを外部形式の中間データに変換し、その変換結果の中間データをスプール２０に出力する（Ｓ１６）。この変換部１０４の処理は従来と同様のものでよい。この後、割り当てられたＰＤＬデータの最後まで処理が完了したかどうかを判定し（Ｓ１８）、完了していなければ、Ｓ１０に戻ってＰＤＬデータから次のコマンドを読み込む。
【００４２】
リソースＩＤ生成部１０８は、解釈部１０２から受け取った外部リソース化対象のオブジェクトの解析結果を用いて、そのオブジェクトに対応する外部リソースＩＤを生成する（Ｓ２０）。
【００４３】
外部リソース化対象のあるオブジェクトに対応する外部リソースＩＤは、ＰＤＬデータ中に含まれるそのオブジェクトのＩＤ（例えばＰｏｓｔＳｃｒｉｐｔにおけるフォームＩＤ）と、外部リソース化のためにそのオブジェクトに適用される描画パラメータ群と、の組合せから生成する。例えば、フォームＩＤの後にそのフォームオブジェクトに適用される描画パラメータ群をあらかじめ定めた順序で付加したデータを作成し、このデータのハッシュ値を求め、このハッシュ値を外部リソースＩＤとする。このように生成される外部リソースＩＤは、同じオブジェクト（フォーム）に対して同じ描画パラメータ群を適用して生成される外部リソースについては、同じ値となる。すなわち、ＰＤＬデータの記述がまったく同じオブジェクト（フォーム）であっても、そのオブジェクトを外部形式へ変換する際のＲＩＰモジュール１００の内部状態（この内部状態は、ＰＤＬデータを先頭から順に解釈して行くにつれて変化する）によって、変換結果の中間データ（外部形式）は異なったものとなるが、この内部状態を構成する描画パラメータ群も、外部リソースＩＤに反映されるようにしておくことで、異なる外部リソースＩＤが割り当てられることになる。なお、外部リソースＩＤとしてハッシュ値を用いるのは、適切なデータ量のＩＤとするための便宜上の方策にすぎない。システムの処理能力が許すならば、ハッシュ値をとる前の元データ（フォームＩＤに描画パラメータ群を付加したもの）を外部リソースＩＤとしてもよい。
【００４４】
またリソースＩＤ生成部１０８は、生成した外部リソースＩＤに対応する外部リソースが外部リソース記憶部２５に記憶されているかどうかを判定する（Ｓ２２）。この判定は例えば外部リソース記憶部２５にその外部リソースＩＤの登録の有無を問い合わせることにより行えばよい。また、外部リソース記憶部２５の記憶容量が十分に大きく、１つのジョブの印刷処理の中でいったん登録した外部リソースは外部リソース記憶部２５から削除されない場合には、当該ジョブの処理の中で生成された外部リソースＩＤを内部的なデータベースに記憶しておき、新たに生成した外部リソースＩＤがそのデータベースにあれば、その外部リソースは外部リソース記憶部２５に存在すると判定してもよい。
【００４５】
Ｓ２２の判定結果が肯定（Ｙｅｓ）である場合、処理は外部リソース再利用パスに進む。外部リソース再利用パスでは、同じ外部リソースを再度作成することはせず、既に外部リソース記憶部２５に記憶されている外部リソースを再利用する。すなわち、この場合、リソースＩＤ生成部１０８は、生成した外部リソースＩＤを参照オブジェクト生成部１１２に渡す。参照オブジェクト生成部１１２は、その外部リソースＩＤを参照する外部形式のコマンド（参照オブジェクト）を生成し、スプール２０へ出力する（Ｓ２４）。その後処理はＳ１８に進み、ＰＤＬデータの最後まで処理が完了していなければ、Ｓ１０に戻る。
【００４６】
Ｓ２２の判定結果が否定（Ｎｏ）である場合、処理は外部リソース生成パスに進む。外部リソース生成パスでは、当該オブジェクトに対応する外部リソースを新たに生成し、外部リソース記憶部２５に登録する。この場合、リソースＩＤ生成部１０８は、これから生成される外部リソースに付加する参照ヘッダを生成する（Ｓ２６）。この参照ヘッダには外部リソースＩＤが含まれる。生成された外部リソースは、参照ヘッダが付加された上で外部リソース記憶部２５に登録されることで、外部リソースＩＤをキーとした検索が可能となる。
【００４７】
また、外部リソース生成パスの処理では、キャッシュ判定部１２０〜変換部１２８により、内部キャッシュを利用した外部リソースの生成処理（Ｓ３０）が行われる。外部リソース生成パスでは、キャッシュ作成部１２２がＰＤＬデータの解釈結果から外部リソースよりも抽象度が高い内部形式の中間データを作成し、キャッシュ利用変換部１２６がその内部形式の中間データに更に描画パラメータを適用することで外部リソースを生成する、という２段階の生成手順を採る。そして、キャッシュ作成部１２２が生成したその内部形式の中間データをキャッシュデータとしてキャッシュメモリ１２４に記憶し、再利用することで、外部リソース生成パスの処理を効率化を図る。生成された外部リソースは後処理部１１０に渡される。
【００４８】
後処理部１１０は、受け取った外部リソース（参照ヘッダ付き）を外部リソース記憶部２５に登録する（Ｓ２８）。またこのとき、その外部リソースのＩＤを内部的な検索用のデータベース（リソースＩＤ生成部１０８が外部リソース生成済みかを判定するために参照するもの）に登録してもよい。そして、後処理部１１０は、その外部リソースＩＤを参照オブジェクト生成部１１２に渡す。参照オブジェクト生成部１１２は、その外部リソースＩＤを参照する参照オブジェクトを生成し、スプール２０へ出力する（Ｓ２４）。このとき出力された参照オブジェクトをバックエンド装置３０が処理する時点では、外部リソース記憶部２５にはＳ２８で登録された外部リソースが記憶されているので、その参照オブジェクトは正しく解決される。Ｓ２４の後、処理はＳ１８に進み、ＰＤＬデータの最後まで処理が完了していなければ、Ｓ１０に戻る。
【００４９】
次に図２及び図４を参照して、キャッシュ判定部１２０〜変換部１２８の機能と、それらモジュールにより実行されるＳ３０（内部キャッシュ利用の外部リソース生成処理）の処理の例を説明する。
【００５０】
先に概説したとおり、本実施形態では、キャッシュ作成部１２２が、内部形式の中間データを作成する。内部形式は、外部形式よりも抽象度が高い、すなわち適用される描画パラメータの数がより少ない中間データの形式である。典型的な例では、内部形式は、描画パラメータが１つも適用されない中間データの形式である。この例では、キャッシュ作成部１２２は、処理対象のＰＤＬ形式のオブジェクトを分割し、分割の結果得られた個々のオブジェクトを中間データの言語で表現する。別の例では、外部形式に適用されている描画パラメータのうちのあらかじめ定められた一部のもののみを適用した中間データを、内部形式の中間データとして生成する。例えば、外部リソースには適用されている複数の描画パラメータのうち座標変換行列だけを適用した中間データを、内部形式の中間データとして生成する。キャッシュ作成部１２２が作成した中間形式の中間データは、ＲＩＰモジュール１００の内部的なキャッシュデータ（「内部キャッシュ」）としてキャッシュメモリ１２４に記憶される。
【００５１】
内部キャッシュは、外部リソースよりも抽象度が高いので、再利用される可能性が外部リソースよりも高い。例えば、あるオブジェクト（ＰＤＬ）に対応する内部キャッシュに描画パラメータが１つも適用されていない場合、そのオブジェクトにどのような描画パラメータが適用される場合でも、その内部キャッシュを利用して外部リソースを生成することができる。これに対し、外部リソースは、既に描画パラメータ群が適用済みなので、その適用済みの描画パラメータ群と一致する描画パラメータ群が適用されるオブジェクトに対して再利用される。
【００５２】
内部キャッシュ利用の外部リソース生成処理において、キャッシュ判定部１２０は、リソースＩＤ生成部１０８から処理対象として指示されたオブジェクトに対応する内部キャッシュがキャッシュメモリ１２４内にあるかどうかを判定する（Ｓ３２）。
【００５３】
Ｓ３２の判定結果が否定（Ｎｏ）の場合、キャッシュ作成部１２２が、そのオブジェクトのＰＤＬ解析結果を処理することで内部キャッシュを作成し（Ｓ３４）、作成した内部キャッシュをキャッシュメモリ１２４に記憶する。
【００５４】
ここで、内部キャッシュは、例えば元のオブジェクトのＰＤＬデータの解析結果から取得されるフォームＩＤ、又はそのフォームＩＤから生成される識別情報、をインデックス（「キャッシュＩＤ」と呼ぶ）として、キャッシュメモリ１２４に格納される。なお、ＰＤＬのオブジェクトが内部形式の複数のオブジェクトに変換される場合には、キャッシュメモリ１２４には、例えば、それら内部形式の複数のオブジェクトを１つのグループとし、そのグループをキャッシュＩＤに対応付けて格納すればよい。Ｓ３２の判定は、オブジェクトのＰＤＬデータの解析結果から分かるキャッシュＩＤに対応するエントリがキャッシュメモリ１２４内に存在するかを調べることで実行される。
【００５５】
なお、ＲＩＰモジュール１００の処理にあたっては、元のオブジェクトのＰＤＬデータの実体（例えばそのオブジェクトの名前やオブジェクト辞書）がメモリ空間上に置かれ、その実体へのポインタは、ＰＤＬレベルで同じオブジェクトについては一致する。このポインタを、そのオブジェクトに対応する内部キャッシュのキャッシュＩＤとして用いてもよい。この方式によれば、ＰＤＬデータ内にフォームＩＤが記述されていないオブジェクトについても、そのオブジェクトの内部キャッシュを、識別可能な状態でキャッシュメモリ１２５に記憶することができる。
【００５６】
さて、Ｓ３４の内部キャッシュの作成・記憶が成功した場合（Ｓ３５の判定結果がＹｅｓ）、キャッシュ利用変換部１２６がその内部キャッシュを参照し、その内部キャッシュに対して必要な描画パラメータ群（すなわち外部リソースには適用されているべき描画パラメータのうち、内部キャッシュには未適用のもの）を適用することで、外部リソースを生成する（Ｓ３６）。生成された外部リソースは、後処理部１１０に渡される。外部リソースを受け取った後の後処理部１１０及びその後続の機能モジュールの処理は、既に説明したとおりである。
【００５７】
キャッシュ作成部１２２による内部キャッシュの作成は、例えばキャッシュメモリ１２４の空き容量不足等の理由により失敗する場合がある。内部キャッシュの作成が失敗した場合、キャッシュ利用変換部１２６による外部リソースの生成は実行できない。この場合（Ｓ３５の判定結果がＮｏ）、図２の例では、変換部１２８が、解釈部１０２からのＰＤＬデータの解析結果を直接、外部形式の中間データへと変換する（Ｓ３８）。この変換を「直接描画変換」と呼ぶ。この直接描画変換の処理は、通常処理パス上の変換部１０４が実行する処理と同じである。直接描画変換により生成された外部リソースは、後処理部１１０に渡される。後処理部１１０以降の処理は、既に説明したとおりである。
【００５８】
Ｓ３２の判定結果が肯定（Ｙｅｓ）、すなわちキャッシュ判定部１２０でキャッシュがヒットした場合は、キャッシュ利用変換部１２６が、当該オブジェクトに対応する内部キャッシュをキャッシュメモリ１２４から読み出し、その内部キャッシュに対して描画パラメータを更に適用することで、外部リソースを生成し、その外部リソースを後処理部１１０に出力する（Ｓ３６）。
【００５９】
以上、本発明の一実施形態を説明した。この実施形態では、入力されたオブジェクトに対応する外部リソースが外部リソース記憶部２５にない場合でも、そのオブジェクトに対応する内部キャッシュがキャッシュメモリ１２４にあれば、内部キャッシュが再利用できるので、その内部キャッシュを再度作成する場合よりも処理負荷が軽減される。内部キャッシュは外部リソースよりも抽象度が高いため、ヒットしやすい。例えば、同じオブジェクトを小さい角度ずつ回転させて異なる場所に複数配置した印刷画像を生成する場合、前のオブジェクトについて生成された外部リソースは、回転角度（これは描画パラメータの１つ）が異なる後のオブジェクトの画像の生成の際には再利用できない。しかし、回転角度を反映していない内部キャッシュであれば、後のオブジェクトの描画に利用できる。すなわちこの場合、内部キャッシュに対して、後のオブジェクトについての回転角度を適用することで、そのオブジェクトについての外部リソース（ひいてはラスターデータ）を生成することができる。
【００６０】
また、本実施形態では、キャッシュ作成部１２２が内部キャッシュの作成に失敗しても、変換部１２８で外部リソースが生成されるので、外部リソースの再利用は可能となる。
【００６１】
＜第１の変形例＞
次に、図５及び図６を参照して、第１の変形例について説明する。図５はこの変形例におけるＲＩＰモジュール１００の構成例を示し、図６はこの変形例におけるＲＩＰモジュール１００の処理手順の例を示す。
【００６２】
図５から分かるように、この変形例のＲＩＰモジュール１００は、図２に示した上記実施形態のＲＩＰモジュール１００に対して、判定部１０６と直接描画パス（変換部１３０）を追加したものである。
【００６３】
直接描画パスは、外部リソース化対象のオブジェクトのうちある条件を満たすものについては、外部リソースを作らず、したがって外部リソースの再利用も行わない場合の処理経路である。直接描画パスに進む条件としては、例えば次の２つが考えられる。
（ア）面積やデータサイズが、あらかじめ定めた閾値よりも小さい。
（イ）ＰＤＬデータ中にそのオブジェクトの識別情報（フォームＩＤ等）が含まれていない。
【００６４】
条件（ア）は、特許文献１の段落００５８に記載された、「キャッシュ対象としないフォーム」の条件と同じものである。条件（ア）を満たすオブジェクトについては、外部リソースを作成して外部リソース記憶部２５に登録し再利用するのに要する計算コストが、再利用により得られる利益よりも高いと考えられるため、外部リソースを作成しない。
【００６５】
条件（イ）を満たすオブジェクトは、そのオブジェクトについての外部リソースのための外部リソースＩＤの作成が困難であるため、外部リソースを作成しない。先に例示した外部リソースＩＤは、フォームＩＤ等のＰＤＬデータ上でのオブジェクトの識別情報と、描画パラメータ群とを組み合わせて作成するので、ＰＤＬデータからオブジェクトの識別情報が得られない場合には、その外部リソースＩＤは生成できない。ＰＤＬデータにオブジェクトの識別情報が含まれていない場合でも、最悪そのオブジェクトのＰＤＬの記述全部を識別情報とするなどの方法で、外部リソースＩＤの元になるオブジェクトの識別情報を用意することが考えられるが、このような方法は計算コストが高くなる。
【００６６】
判定部１０６は、解釈部１０２から得た外部リソース化対象のオブジェクトの解析結果から、そのオブジェクトが上に例示した条件（ア）又は（イ）の少なくとも１つを満たした場合、そのオブジェクトを直接描画パスに振り分ける。条件（ア）及び（イ）のどちらも満たさないオブジェクトは、図２の実施形態同様、リソースＩＤ生成部１０８に送られ、外部リソース再利用パス又は外部リソース生成パスに振り分けられる。
【００６７】
直接描画パスでは、変換部１３０が、受け取ったオブジェクトの解析結果を外部形式の中間データへと直接変換する（直接描画変換）。この変換部１３０の変換処理は、通常処理パスの変換部１０４の処理と同様でよい。
【００６８】
図６に示すこの変形例の処理手順は、図３に示した実施形態の処理手順に、直接描画パスのためのステップＳ４０、Ｓ４２、Ｓ４４を追加したものである。この手順では、解釈部１０２が外部リソース化の対象と判定（Ｓ１４の判定結果がＹｅｓ）したオブジェクトについて、判定部１０６は、そのオブジェクトが外部リソースの作成を取りやめる条件（例えば上記条件（ア）及び（イ））を満たすかどうかをチェックする（Ｓ４０）。このチェックの結果、その条件を満たさないオブジェクト（Ｓ４２の判定結果がＹｅｓ）については、Ｓ２０に進み、上記実施形態の処理と同様、外部リソースの作成を行う。これに対し、その条件を満たすオブジェクト（Ｓ４２の判定結果がＮｏ）については、変換部１３０が外部形式へと直接変換する（Ｓ４４）。この変換結果は、スプール２０へと出力される。
【００６９】
この第１の変形例では、外部リソースを作成して再利用するとかえって計算負荷が増大する可能性が高い場合に、外部リソースを作成しないことにより、負荷増大を抑制している。
【００７０】
＜第２の変形例＞
次に、図７及び図８を参照して、第２の変形例について説明する。図７はこの変形例におけるＲＩＰモジュール１００の構成例を示し、図８はこの変形例におけるＲＩＰモジュール１００の処理手順の例を示す。
【００７１】
図７から分かるように、この変形例のＲＩＰモジュール１００は、図５に示した第１の変形例の直接描画パス上の変換部１３０の代わりに、外部リソース生成パス上のキャッシュ機構と同様のキャッシュ機構（キャッシュ判定部１３１〜変換部１３８）を設けたものである。キャッシュ判定部１３１、キャッシュ作成部１３２、キャッシュメモリ１３４、キャッシュ利用変換部１３６、及び変換部１３８の機能は、外部リソース生成パス上のキャッシュ判定部１２０、キャッシュ作成部１２２、キャッシュメモリ１２４、キャッシュ利用変換部１２６、及び変換部１２８の機能とそれぞれ同じである。
【００７２】
図８に示すこの変形例の処理手順は、図６に示した第１の変形例の処理手順のステップＳ４４をＳ４６に置き換えたものである。Ｓ４６は、ＰＤＬデータの解釈結果を、内部キャッシュを利用して外部形式に変換する処理であり、Ｓ４６では、キャッシュ判定部１３１〜変換部１３８が、図４に示したステップＳ３２〜Ｓ３８の手順と同様の処理を行う。
【００７３】
この第２の変形例では、外部リソース生成パスの対象のオブジェクトだけで無く、直接描画パスの対象となったオブジェクトについても、内部キャッシュを利用した処理の効率化が図られている。
【００７４】
＜第３の変形例＞
次に、図９を参照して、第３の変形例について説明する。
【００７５】
上述した第２の変形例では、外部リソース生成パスと直接描画パスのそれぞれに対して個別に、内部キャッシュ用のキャッシュメモリ１２４と１３４を設けていた。それに対してこの第３の変形例では、それら両パスで１つのキャッシュメモリ１２５を共有する。すなわち、キャッシュ作成部１２２及び１３２は、作成した内部キャッシュを共通のキャッシュメモリ１２５に登録し、キャッシュ利用変換部１２６及び１３６は、その共通のキャッシュメモリ１２５から内部キャッシュを読み出して再利用する。
【００７６】
この変形例では、外部リソース生成パスと直接描画パスのいずれか一方で内部キャッシュがいったん生成されると、他方のパスでの変換にもその内部キャッシュ再利用することができる。例えば、ＰＤＬデータ内のあるオブジェクトの内部キャッシュを外部リソース生成パス上のキャッシュ作成部１２２が作成した後で、ＰＤＬデータ上の後続の同じオブジェクトが直接描画パスに流れた場合、キャッシュ利用変換部１３６は、外部リソース生成パスで生成されキャッシュメモリ１２５に登録されているその内部キャッシュを利用して、外部形式の中間データを生成する。
【００７７】
例えば、ＰＤＬデータ内のオブジェクトＡの記述とオブジェクトＢの記述がまったく同じ（すなわちＰＤＬレベルでは両者は同一）でも、オブジェクトＡを変換するときとオブジェクトＢを変換するときのＲＩＰモジュール１００の内部状態（例えば拡大・縮小率やクリッピング設定）の違い等から、オブジェクトＡは面積が閾値以上なので外部リソース生成パスに進む一方、オブジェクトＢは面積が閾値より小さいので直接描画パスに進むことがあり得る。このような場合、この変形例では、オブジェクトＡの変換のために外部リソース生成パス上のキャッシュ作成部１２２が生成した内部キャッシュが、共通のキャッシュメモリ１２５を介して、後でオブジェクトＢを変換する直接描画パス上のキャッシュ作成部１３２により利用される。この場合、キャッシュ作成部１３２の負荷が、内部キャッシュ作成処理の分だけ低減される。
【００７８】
図１０は、図９の構成と同様の機能を提供する別の構成を示す。図９の構成は、外部リソース生成パスと直接描画パスのそれぞれにキャッシュ機構を設けていたのに対し、図１０の構成はキャッシュ機構を一組（キャッシュ判定部１２０〜変換部１２８）しか持たない。その代わりに、直接描画パスとして、リソースＩＤ生成部１０８を迂回してキャッシュ判定部１２０に至る迂回経路と、後処理部１１０及び参照オブジェクト生成部１１２を迂回してスプール２０に至る迂回経路を設けている。
【００７９】
判定部１０６ａは、オブジェクトを処理するパスの選択のために「direct」フラグを管理する。「direct」フラグは値「０」と値「１」を取り得る。「direct」フラグが「１」の場合は直接描画パスを選択され、「０」の場合は直接描画パスでない経路が選択される。判定部１０６ａが新たなオブジェクトについて判定を開始する際、「direct」フラグは「０」にリセットされる。判定部１０６ａは、第１の変形例（図５参照）の判定部１０６と同じ判定処理により、オブジェクトを直接描画パスに送るか否かを判定し、直接描画パスに送ると判定した場合は「direct」フラグの値を「１」にセットする。「direct」フラグが「１」の場合、リソースＩＤ生成部１０８及び後処理部１１０が迂回されるので、外部リソースは生成されない。
【００８０】
図１０の構成は、図９の構成よりもＲＩＰモジュール１００のフットプリントを小さく（ＲＩＰモジュール１００を実装するために要するメモリ等の計算機資源を節約）できる。
【００８１】
＜第４の変形例＞
次に、図１１〜図１４を参照して、第４の変形例について説明する。図１１から分かるように、この変形例は、図９に示した第３の変形例に対して、直接描画パスのキャッシュ機構内にキャッシュ管理部１３３を追加したものである。
【００８２】
キャッシュ管理部１３３は、新たなオブジェクトの内部キャッシュを作成するために必要な空き容量を確保するために、キャッシュメモリ１２５から古いデータを削除する処理を行う。この削除処理では、外部リソース生成パスと直接描画パスの共有のキャッシュメモリ１２５に記憶された内部キャッシュのうち、外部リソース生成パスで生成された内部キャッシュを優先的に削除する。すなわち、どちらのパスで生成されたか以外の条件が同一であれば、外部リソース生成パスで生成された内部キャッシュの方を直接描画パスで生成された内部キャッシュよりも先に削除する。外部リソース生成パスで生成された内部キャッシュは仮に削除したとしても、その内部キャッシュから作成した外部リソースが外部リソース記憶部２５に記憶されており、後のオブジェクトの処理においてこの外部リソースの再利用が可能である。これに対して直接描画パスで生成された内部キャッシュには対応する外部リソースが存在しないので、その内部キャッシュを削除してしまうと、後のオブジェクトの処理においてその内部キャッシュに関係するデータの再利用ができない。このように、直接描画パスで生成した内部キャッシュを削除する方が、外部リソース生成パスで生成した内部キャッシュを削除するよりも、生成したデータの再利用に関する不利益（ペナルティ）が大きい。このため、この変形例では、外部リソース生成パスで生成した内部キャッシュを優先的に削除するのである。
【００８３】
この削除制御のために、ＲＩＰモジュール１００は、キャッシュメモリ１２５内の内部キャッシュを管理するキャッシュエントリ表（図１２参照）を作成し、管理する。図１２に例示するキャッシュエントリ表は、内部キャッシュのエントリ毎に、エントリ番号（エントリＮｏ．）、キャッシュＩＤ、キャッシュサイズ、パスＩＤの４つの項目のデータを保持している。エントリ番号は、当該内部キャッシュを作成した順の連番であり、この番号が小さいエントリほど作成順が古い。キャッシュサイズは、当該内部キャッシュのデータサイズである。パスＩＤは、その内部キャッシュを作成したパスの識別情報であり、この例ではパスＩＤ「１」は外部リソース生成パスを示し、パスＩＤ「２」は直接描画パスを示す。
【００８４】
図１３を参照して、この変形例における直接描画パスのキャッシュ機構の処理手順の例を説明する。
【００８５】
この手順では、キャッシュ判定部１３１は、判定部１０６から入力されたオブジェクトに対応する内部キャッシュがキャッシュメモリ１２５内にあるかどうかを判定する（Ｓ３２）。Ｓ３２の判定結果がＹｅｓの場合、キャッシュ利用変換部１３６が、当該オブジェクトに対応する内部キャッシュをキャッシュメモリ１２５から読み出し、その内部キャッシュに対して描画パラメータを更に適用することで、外部リソースを生成し、その外部リソースを後処理部１１０に出力する（Ｓ３６）。
【００８６】
Ｓ３２の判定結果が否定（Ｎｏ）の場合、キャッシュ作成部１３２が、そのオブジェクトの内部キャッシュを記憶するのに必要な容量の空きがあるかどうかを判定する（Ｓ３３）。例えば、そのオブジェクトのＰＤＬの解析結果から、そのオブジェクトを構成するＰＤＬコマンドの数やそのオブジェクトの画像としての面積等を示す情報が得られるので、それらの情報からそのオブジェクトの内部キャッシュのデータ量を見積もることができる。キャッシュメモリ１２５の空き容量がその見積もった値より多ければ、Ｓ３３ではメモリ不足とは判定されず（Ｎｏ）、この場合キャッシュ作成部１３２は内部キャッシュをキャッシュメモリ１２５内に作成する（Ｓ３４）。そして、キャッシュ利用変換部１３６がその内部キャッシュに描画パラメータ群を適用して外部リソースを生成する（Ｓ３６）。図１３の例では、キャッシュメモリ１２５の空き容量が十分ならば内部キャッシュの作成（Ｓ３４）は失敗しないとみなしているが、空き容量が十分でも失敗する場合がある場合には、図４の手順と同様、Ｓ３４の後にキャッシュ作成の失敗、成功を確認するステップＳ３５を設け、失敗した場合には直接描画変換（Ｓ３８）を行うようにしてもよい。
【００８７】
Ｓ３４でキャッシュメモリ１２５の空き容量が不足していると判定された場合（Ｓ３３の判定結果がＹｅｓ）、キャッシュ管理部１３３がキャッシュメモリ１２５内のいくつかの内部キャッシュを削除して、必要な空き容量の確保を試みる（Ｓ５０）。そしてキャッシュ管理部１３３は、内部キャッシュの削除により必要な空き容量ができたかどうかを判定する（Ｓ３９）。Ｓ３９で必要な空き容量ができたと判定された場合（Ｙｅｓ）、Ｓ３４に進み、キャッシュ作成部１３２が当該オブジェクトの内部キャッシュを作成する。Ｓ３９で、削除可能な内部キャッシュを全て削除しても必要な空き容量ができないと判定された場合（Ｎｏ）、当該オブジェクトについては内部キャッシュの作成をあきらめ、変換部１３８が、解釈部１０２からのＰＤＬデータの解析結果を直接、外部形式の中間データへと変換する（Ｓ３８）。
【００８８】
Ｓ５０の詳細な処理の例を、図１４を参照して説明する。図１４の処理では、キャッシュ管理部１３３は、キャッシュエントリ表（図１２参照）からエントリＮｏ．の順に次のエントリを取得する（Ｓ５２）。次のエントリを取得できなければ（Ｓ５４の判定結果がＮｏ）、処理結果を「失敗」としてキャッシュ削除の処理を終了する。次エントリを取得できた場合（Ｓ５４の判定結果がＹｅｓ）、そのエントリのパスＩＤが「１」（外部リソース生成パスで生成）であるかどうかを判定する（Ｓ５６）。この判定の結果がＹｅｓの場合は、そのエントリのデータをキャッシュメモリ１２５からの削除対象として記録する（Ｓ５８）（この時点ではまだ実際には削除しなくてよい）。そして、キャッシュメモリ１２５の空き容量に、削除対象としたそのエントリのキャッシュサイズ（図１２参照）を加算する。これにより、そのエントリを削除した場合の空き容量が計算できる。そして、計算により求めた空き容量が、当該オブジェクトの内部キャッシュのデータ量の見積もり値以上となったかどうかを判定する（Ｓ６０）。Ｓ６０の判定結果がＮｏの場合、Ｓ５２に戻る。Ｓ６０の判定結果がＹｅｓの場合、そのときまでに削除対象として記録した内部キャッシュを、キャッシュメモリ１２５から削除し、キャッシュエントリ表からも削除し、処理を終了する。
【００８９】
図１４の手順は、あくまで一例に過ぎない。このほかにも、ＬＲＵ(Least Recently Used)等の従来の削除キャッシュ選択方式により削除対象のキャッシュエントリを選択する際、パスＩＤを考慮に入れることで、外部リソース生成パスで生成された内部キャッシュが優先的に削除対象に選ばれるようにしてもよい。
【００９０】
図１１の例では、直接描画パスにのみキャッシュ管理部１３３を設けたが、その代わりに、同様のキャッシュ管理部を外部リソース生成パスのキャッシュ機構内に設けてもよいし、両方のパスにそれぞれキャッシュ管理部を設けてもよい。
【００９１】
図１１の例は、外部リソース生成パスと直接描画パスとで共有のキャッシュメモリ１２５を用いた場合であるが、この変形例の制御は、それら両パスに別々のキャッシュメモリ１２４及び１３４を設ける場合（図７参照）にも適用可能である。それら両パスのキャッシュメモリ１２４及び１３４が、ＲＩＰモジュール１００を実行しているコンピュータの同じメインメモリ上に確保される場合、メインメモリの空き容量が少なくなると、それらキャッシュメモリの空きも少なくなり、新たな内部キャッシュが記憶できなくなる。この場合に、それら２つのキャッシュメモリ１２４又は１３４に記憶された内部キャッシュを削除すれば、メインメモリの空き容量が増えることでキャッシュメモリの空き容量が増え、新たな内部キャッシュの記憶が可能になる。この例では、キャッシュエントリ表は、それら２つのキャッシュメモリで共通の図１２と同様のものとし、各キャッシュ作成部１２２及び１３２は、内部キャッシュをそれぞれのキャッシュメモリ１２４及び１３４に登録した場合、そのキャッシュエントリ表にその内部キャッシュの情報を登録する。そして、キャッシュ管理部１３３は、キャッシュメモリ１３４の空き容量が不足していると判断した場合（図１３のＳ３３）、上述と同様の判定方法で削除対象の内部キャッシュを判定し、判定した削除対象の内部キャッシュを記憶しているキャッシュメモリ１２４又は１３４からその内部キャッシュを削除する。
【００９２】
またこの変形例の制御と同様の制御は、図１０に示したＲＩＰモジュール１００にも適用可能である。この場合、キャッシュ作成部１２２は、内部キャッシュを生成する際の「direct」フラグの値をその内部キャッシュのパスＩＤの値としてキャッシュエントリ表（図１２参照）に登録すればよい。
【００９３】
＜第５の変形例＞
次に、図１５及び図１６を参照して、第５の変形例について説明する。
【００９４】
図１５を図７と比較すると分かるように、この変形例では、外部リソース生成パス上にはキャッシュ機構を設けず、その代わりに変換部１４０を設け、直接描画パス上にキャッシュ機構を設けている。
【００９５】
外部リソース生成パス上の変換部１４０は、変換部１０４と同様の処理を行うことで、ＰＤＬの解析結果を外部形式のデータ（外部リソース）へと直接変換する。変換部１４０が生成した外部リソースは、リソースＩＤ生成部１０８が生成した外部リソースＩＤと対応付けて、後処理部１１０により外部リソース記憶部２５に登録される。また、参照オブジェクト生成部１１２は、その外部リソースＩＤを参照する旨を示す外部形式の参照オブジェクトを生成し、スプール２０へ出力する。
【００９６】
直接描画パス上のキャッシュ機構（キャッシュ判定部１３１〜変換部１３８）の機能は、図７を参照して説明した上記第２の変形例のキャッシュ機構（キャッシュ判定部１３１〜変換部１３８）と同じである。
【００９７】
図１６に、この変形例のＲＩＰモジュール１００の処理手順の例を示す。図１６の手順のうち、図８に示した第２の変形例の手順と同様のステップには同一符号を付し、説明を省略する。
【００９８】
図１６の手順では、図８の手順のうち外部リソース生成パスでのキャッシュ機構を利用した処理（Ｓ３０）が、変換部１４０によるＰＤＬから外部形式への描画変換（Ｓ２７）に置き換えられている。直接描画パスでは、図８の手順と同様、キャッシュ機構（キャッシュ判定部１３１〜変換部１３８）を利用した変換（Ｓ４６）が行われることで、ＰＤＬから内部形式への変換結果（内部キャッシュ）の再利用が図られる。
【００９９】
外部リソース生成パスと直接描画パスにそれぞれ相当する部分で、内部キャッシュを記憶し再利用するキャッシュ機構を用いずに、ＰＤＬから外部形式への変換を行うシステムは従来存在する。このようなシステムは、例えば、特許文献１に示されている。特許文献１に示されたシステムでは、フォーム等の特定の種類のオブジェクトの処理を行うパス（処理経路）（「第１パス」と呼ぶ）では回転や拡大縮小等のための座標変換や、線幅等の描画属性、クリップ情報、カラー情報等の、印刷のための各種描画パラメータが適用された、抽象度がかなり低い形式（「外部形式」に相当）の中間データをキャッシュに記憶して再利用すると共に、そのような再利用による利益がそのためのコストに見合わないと判定されるオブジェクトについては別の処理パス（「第２パス」と呼ぶ）を用意し、第２パスではオブジェクトを単に外部形式に変換するだけで、キャッシュへの記憶や再利用のための処理は行わない。第１パスは「外部リソース生成パス」に相当し、第２パスは「直接描画パス」に相当する。特許文献１のシステムでは、第１パス及び第２パスのいずれでも、その処理の途中段階のデータをキャッシュに記憶し、再利用することは行っていない。このようなシステムでは、第２生成パスでは処理結果のデータをキャッシュに記憶して再利用を図っているが、第２パスについては、その処理の途中及び最後で得られるデータ（中間データ等）のいずれについても再利用がまったく行われていない。このため、第２パスに振り分けられるオブジェクトが多い場合、システム全体の処理効率がよくない。
【０１００】
これに対し、この第５の変形例のシステムでは、直接描画パス上でＰＤＬから内部形式、内部形式から外部形式の２段階の変換を行い、処理途中の内部形式のデータをキャッシュ機構に記憶して再利用する。このため、この変形例では、例えば直接描画パスに割り振られるオブジェクトが多い場合でも、処理効率の低下が抑制される。
【０１０１】
以上、本発明の実施形態及び変形例を説明した。それら実施形態及び変形例では、外部形式は中間データ形式の一種であったが、ラスターデータを外部形式として用いる場合にもそれら実施形態及び変形例の手法は適用可能である。
【０１０２】
上記実施形態及び変形例のフロントエンド装置１０（特にその中のＲＩＰモジュール１００）は、例えば、当該装置を構成する各機能モジュールの処理を表すプログラムをコンピュータに実行させることにより実現される。ここで、コンピュータは、例えば、ハードウエアとして、ＣＰＵ等のマイクロプロセッサ、ランダムアクセスメモリ（ＲＡＭ）およびリードオンリメモリ（ＲＯＭ）等のメモリ（一次記憶）、ＨＤＤ（ハードディスクドライブ）を制御するＨＤＤコントローラ、各種Ｉ／Ｏ（入出力）インタフェース、ローカルエリアネットワークなどのネットワークとの接続のための制御を行うネットワークインタフェース等が、たとえばバスを介して接続された回路構成を有する。また、そのバスに対し、例えばＩ／Ｏインタフェース経由で、ＣＤやＤＶＤなどの可搬型ディスク記録媒体に対する読み取り及び／又は書き込みのためのディスクドライブ、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体に対する読み取り及び／又は書き込みのためのメモリリーダライタ、などが接続されてもよい。上に例示した各機能モジュールの処理内容が記述されたプログラムがＣＤやＤＶＤ等の記録媒体を経由して、又はネットワーク等の通信手段経由で、ハードディスクドライブ等の固定記憶装置に保存され、コンピュータにインストールされる。固定記憶装置に記憶されたプログラムがＲＡＭに読み出されＣＰＵ等のマイクロプロセッサにより実行されることにより、上に例示した機能モジュール群が実現される。なお、それら機能モジュール群のうちの一部又は全部を、専用ＬＳＩ(Large Scale Integration)、ＡＳＩＣ（Application Specific Integrated Circuit、特定用途向け集積回路）、ＦＰＧＡ（Field Programmable Gate Array）、又はＤＲＰ（Dynamic Reconfigurable Processor）等のハードウエア回路として構成してもよい。
【符号の説明】
【０１０３】
１０  フロントエンド装置、１２  ジョブ入力部、２０  スプール、２５  外部リソース記憶部、３０  バックエンド装置、４０  印刷装置、１００  ＲＩＰモジュール、１０２  解釈部、１０４  変換部、１０６，１０６ａ  判定部、１０８  リソースＩＤ生成部、１１０  後処理部、１１２  参照オブジェクト生成部、１２０  キャッシュ判定部、１２２  キャッシュ作成部、１２４，１２５  キャッシュメモリ、１２６  キャッシュ利用変換部、１２８，１３０  変換部、１３１  キャッシュ判定部、１３２  キャッシュ作成部、１３３  キャッシュ管理部、１３４  キャッシュメモリ、１３６  キャッシュ利用変換部、１３８，１４０  変換部。
【図１】
0006432438.tif 000002
【図２】
0006432438.tif 000003
【図３】
0006432438.tif 000004
【図４】
0006432438.tif 000005
【図５】
0006432438.tif 000006
【図６】
0006432438.tif 000007
【図７】
0006432438.tif 000008
【図８】
0006432438.tif 000009
【図９】
0006432438.tif 000010
【図１０】
0006432438.tif 000011
【図１１】
0006432438.tif 000012
【図１２】
0006432438.tif 000013
【図１３】
0006432438.tif 000014
【図１４】
0006432438.tif 000015
【図１５】
0006432438.tif 000016
【図１６】
0006432438.tif 000017