(57)【特許請求の範囲】
【請求項１】
再利用オブジェクトと一時利用オブジェクトとを含むバリアブル印刷データに基づいて、印刷装置で処理可能な印刷出力用画像データを生成する印刷制御装置であって、
前記バリアブル印刷データを解釈して、前記再利用オブジェクト及び前記一時利用オブジェクトを抽出し、抽出した前記再利用オブジェクト及び前記一時利用オブジェクトをラスタライズして画像データを生成するバリアブル印刷データ解析部と、
一次記憶装置により構成されるキャッシュメモリ及び二次記憶装置としての外部記憶装置と、
前記キャッシュメモリの使用状況に応じて、各々の前記再利用オブジェクトの画像データを、圧縮形式で保存するか非圧縮形式で保存するか、及び、前記キャッシュメモリに保存するか前記外部記憶装置に保存するか、を判定し、判定結果に応じて、各々の前記再利用オブジェクトの画像データを再利用するために保存する保存形態判定部と、
前記再利用オブジェクト及び前記一時利用オブジェクトの画像データを取得し、圧縮形式の画像データを解凍した後、当該画像データに基づく画像を合成して、印刷出力用画像データを生成する画像合成処理部と、
前記印刷出力用画像データを前記印刷装置に転送する印刷出力用画像データ転送部と、
を少なくとも備え、
前記保存形態判定部は、全ての前記再利用オブジェクトの画像データを非圧縮形式で前記キャッシュメモリに保存可能な場合は、非圧縮形式で前記キャッシュメモリに保存し、全ての前記再利用オブジェクトの画像データを非圧縮形式で前記キャッシュメモリに保存できない場合は、少なくとも一部の前記再利用オブジェクトの画像データを圧縮して前記キャッシュメモリに保存し、前記少なくとも一部の前記再利用オブジェクトの画像データを圧縮しても前記キャッシュメモリに保存できない場合は、前記少なくとも一部の前記再利用オブジェクトの画像データを圧縮して前記外部記憶装置に保存する、ことを特徴とする印刷制御装置。
【請求項２】
前記バリアブル印刷データに基づいて、各々の前記再利用オブジェクトの利用頻度を計算する再利用オブジェクト利用頻度計算部を備え、
前記保存形態判定部は、各々の前記再利用オブジェクトを前記利用頻度に基づいて重み付けし、前記キャッシュメモリに保存できなくなるまで、前記利用頻度が高い順に、前記再利用オブジェクトの画像データを前記キャッシュメモリに保存し、前記キャッシュメモリに保存できない前記再利用オブジェクトの画像データは、前記外部記憶装置に保存するか若しくは再利用するための保存はしない、ことを特徴とする請求項１に記載の印刷制御装置。
【請求項３】
前記保存形態判定部は、前記キャッシュメモリに既に保存されている再利用オブジェクトよりも利用頻度が高い再利用オブジェクトがある場合に、前記既に保存されている再利用オブジェクトの画像データを前記外部記憶装置に待避させる、ことを特徴とする請求項２に記載の印刷制御装置。
【請求項４】
一次記憶装置により構成されるキャッシュメモリ及び二次記憶装置としての外部記憶装置を備え、再利用オブジェクトと一時利用オブジェクトとを含むバリアブル印刷データに基づいて、印刷装置で処理可能な印刷出力用画像データを生成する装置で動作する印刷制御プログラムであって、
前記装置を、
前記バリアブル印刷データを解釈して、前記再利用オブジェクト及び前記一時利用オブジェクトを抽出し、抽出した前記再利用オブジェクト及び前記一時利用オブジェクトをラスタライズして画像データを生成するバリアブル印刷データ解析部、
前記キャッシュメモリの使用状況に応じて、各々の前記再利用オブジェクトの画像データを、圧縮形式で保存するか非圧縮形式で保存するか、及び、前記キャッシュメモリに保存するか前記外部記憶装置に保存するか、を判定し、判定結果に応じて、各々の前記再利用オブジェクトの画像データを再利用するために保存する保存形態判定部、
前記再利用オブジェクト及び前記一時利用オブジェクトの画像データを取得し、圧縮形式の画像データを解凍した後、当該画像データに基づく画像を合成して、印刷出力用画像データを生成する画像合成処理部、
前記印刷出力用画像データを前記印刷装置に転送する印刷出力用画像データ転送部、
として機能させ、
前記保存形態判定部は、全ての前記再利用オブジェクトの画像データを非圧縮形式で前記キャッシュメモリに保存可能な場合は、非圧縮形式で前記キャッシュメモリに保存し、全ての前記再利用オブジェクトの画像データを非圧縮形式で前記キャッシュメモリに保存できない場合は、少なくとも一部の前記再利用オブジェクトの画像データを圧縮して前記キャッシュメモリに保存し、前記少なくとも一部の前記再利用オブジェクトの画像データを圧縮しても前記キャッシュメモリに保存できない場合は、前記少なくとも一部の前記再利用オブジェクトの画像データを圧縮して前記外部記憶装置に保存する、ことを特徴とする印刷制御プログラム。
【請求項５】
前記装置を、更に、
前記バリアブル印刷データに基づいて、各々の前記再利用オブジェクトの利用頻度を計算する再利用オブジェクト利用頻度計算部、として機能させ、
前記保存形態判定部は、各々の前記再利用オブジェクトを前記利用頻度に基づいて重み付けし、前記キャッシュメモリに保存できなくなるまで、前記利用頻度が高い順に、前記再利用オブジェクトの画像データを前記キャッシュメモリに保存し、前記キャッシュメモリに保存できない前記再利用オブジェクトの画像データは、前記外部記憶装置に保存するか若しくは再利用のための保存はしない、ことを特徴とする請求項４に記載の印刷制御プログラム。
【請求項６】
前記保存形態判定部は、前記キャッシュメモリに既に保存されている再利用オブジェクトよりも利用頻度が高い再利用オブジェクトがある場合に、前記既に保存されている再利用オブジェクトの画像データを前記外部記憶装置に待避させる、ことを特徴とする請求項５に記載の印刷制御プログラム。
【請求項７】
一次記憶装置により構成されるキャッシュメモリ及び二次記憶装置としての外部記憶装置を備え、再利用オブジェクトと一時利用オブジェクトとを含むバリアブル印刷データに基づいて、印刷装置で処理可能な印刷出力用画像データを生成する装置における印刷制御方法であって、
前記装置は、
前記バリアブル印刷データを解釈して、前記再利用オブジェクト及び前記一時利用オブジェクトを抽出し、抽出した前記再利用オブジェクト及び前記一時利用オブジェクトをラスタライズして画像データを生成するバリアブル印刷データ解析処理と、
前記キャッシュメモリの使用状況に応じて、各々の前記再利用オブジェクトの画像データを、圧縮形式で保存するか非圧縮形式で保存するか、及び、前記キャッシュメモリに保存するか前記外部記憶装置に保存するか、を判定し、判定結果に応じて、各々の前記再利用オブジェクトの画像データを再利用するために保存する保存形態判定処理と、
前記再利用オブジェクト及び前記一時利用オブジェクトの画像データを取得し、圧縮形式の画像データを解凍した後、当該画像データに基づく画像を合成して、印刷出力用画像データを生成する画像合成処理と、
前記印刷出力用画像データを前記印刷装置に転送する印刷出力用画像データ転送処理と、
を実行し、
前記保存形態判定処理では、全ての前記再利用オブジェクトの画像データを非圧縮形式で前記キャッシュメモリに保存可能な場合は、非圧縮形式で前記キャッシュメモリに保存し、全ての前記再利用オブジェクトの画像データを非圧縮形式で前記キャッシュメモリに保存できない場合は、少なくとも一部の前記再利用オブジェクトの画像データを圧縮して前記キャッシュメモリに保存し、前記少なくとも一部の前記再利用オブジェクトの画像データを圧縮しても前記キャッシュメモリに保存できない場合は、前記少なくとも一部の前記再利用オブジェクトの画像データを圧縮して前記外部記憶装置に保存する、ことを特徴とする印刷制御方法。
【請求項８】
前記装置は、更に、
前記バリアブル印刷データに基づいて、各々の前記再利用オブジェクトの利用頻度を計算する再利用オブジェクト利用頻度計算処理を実行し、
前記保存形態判定処理では、各々の前記再利用オブジェクトを前記利用頻度に基づいて重み付けし、前記キャッシュメモリに保存できなくなるまで、前記利用頻度が高い順に、前記再利用オブジェクトの画像データを前記キャッシュメモリに保存し、前記キャッシュメモリに保存できない前記再利用オブジェクトの画像データは、前記外部記憶装置に保存するか若しくは再利用のための保存はしない、ことを特徴とする請求項７に記載の印刷制御方法。
【請求項９】
前記保存形態判定処理では、前記キャッシュメモリに既に保存されている再利用オブジェクトよりも利用頻度が高い再利用オブジェクトがある場合に、前記既に保存されている再利用オブジェクトの画像データを前記外部記憶装置に待避させる、ことを特徴とする請求項８に記載の印刷制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷制御装置及び印刷制御プログラムに関し、特に、バリアブル印刷データから印刷出力用画像データを生成する印刷制御装置及び当該印刷制御装置で動作する印刷制御プログラムに関する。
【背景技術】
【０００２】
近年、月次の請求書や利用明細書のドキュメントに取引情報とプロモーション広告を組み合わせて印刷し郵送する手法（Transaction Mail Promotion：いわゆるトランスプロモ）が普及してきており、トランスプロモにはバリアブル印刷が用いられる。このバリアブル印刷では、再利用する文字や図形、写真などのオブジェクトをラスタライズし、ラスタライズしたオブジェクトの画像をキャッシュし、キャッシュした画像を再構成して印刷出力用画像データを生成することでラスタライズ時間の短縮を図っている。
【０００３】
このように、バリアブル印刷では、再利用するオブジェクト（以下、再利用オブジェクトと呼ぶ。）はキャッシュメモリに保持されるが、一般的にキャッシュメモリの容量には制限が有るため、バリアブル印刷の構成によっては、全ての再利用オブジェクトをキャッシュメモリに保存できない場合が生じる。
【０００４】
この問題に対して、例えば、下記特許文献１では、メモリ使用量を低減するために、全ての再利用オブジェクトを圧縮してキャッシュメモリに保存するようにしている。また、下記特許文献２では、再利用される可能性の低いファイルか否かを判断し、再利用される可能性が低いファイルはキャッシュバッファを利用しないようにしている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許６１３４０１８号
【特許文献２】特開２００７−３３４６８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
キャッシュメモリの容量の制限によって、再利用オブジェクトがキャッシュメモリに保存できない場合は、インターフェースを介してＣＰＵに接続される外部記憶装置（例えば、ＨＤＤ：Hard Disk Drive）に保存することになる。しかしながら、再利用オブジェクトをＨＤＤに退避させると、印刷出力用画像データを生成する際に、再利用オブジェクトをＨＤＤからメモリ上に読み出さなければならないため、再利用オブジェクトをキャッシュメモリに保存する場合よりもバリアブル印刷の処理に時間がかかるという問題が生じる。
【０００７】
この問題に対して、特許文献１では、再利用オブジェクトを圧縮することによってキャッシュメモリに保存できるようにしているが、再利用オブジェクトの数が多いと、全ての再利用オブジェクトをキャッシュメモリに保存することができない場合が生じるため、上記問題を解決することができず、特に、ＨＤＤに退避させた再利用オブジェクトの利用頻度が高いと、上記問題が顕著に現れてしまう。また、キャッシュメモリに余裕がある場合でも、全ての再利用オブジェクトは圧縮して保存されるため、圧縮した再利用オブジェクトを展開する処理が必要になり、特に、圧縮して保存した再利用オブジェクトに中に利用頻度の高いものが含まれていると、何度も展開処理を行うことによってバリアブル印刷の処理に時間がかかってしまう。
【０００８】
また、特許文献２では、再利用される可能性が低いファイルはキャッシュバッファを利用しないようにしているが、圧縮すればキャッシュメモリに保存できる場合やキャッシュメモリに余裕がある場合でも、再利用される可能性が低いオブジェクトはＨＤＤに保存されるため、バリアブル印刷処理を効率的に実行することができない。
【０００９】
本発明は、上記問題点に鑑みてなされたものであって、その主たる目的は、再利用オブジェクトを効率的にキャッシュメモリに保存することによって、バリアブル印刷処理を迅速に実行することができる印刷制御装置及び印刷制御プログラムを提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、本発明は、再利用オブジェクトと一時利用オブジェクトとを含むバリアブル印刷データに基づいて、印刷装置で処理可能な印刷出力用画像データを生成する印刷制御装置であって、前記バリアブル印刷データを解釈して、前記再利用オブジェクト及び前記一時利用オブジェクトを抽出し、抽出した前記再利用オブジェクト及び前記一時利用オブジェクトをラスタライズして画像データを生成するバリアブル印刷データ解析部と、一次記憶装置により構成されるキャッシュメモリ及び二次記憶装置としての外部記憶装置と、前記キャッシュメモリの使用状況に応じて、各々の前記再利用オブジェクトの画像データを、圧縮形式で保存するか非圧縮形式で保存するか、及び、前記キャッシュメモリに保存するか前記外部記憶装置に保存するか、を判定し、判定結果に応じて、各々の前記再利用オブジェクトの画像データを再利用するために保存する保存形態判定部と、前記再利用オブジェクト及び前記一時利用オブジェクトの画像データを取得し、圧縮形式の画像データを解凍した後、当該画像データに基づく画像を合成して、印刷出力用画像データを生成する画像合成処理部と、前記印刷出力用画像データを前記印刷装置に転送する印刷出力用画像データ転送部と、を少なくとも備え、前記保存形態判定部は、全ての前記再利用オブジェクトの画像データを非圧縮形式で前記キャッシュメモリに保存可能な場合は、非圧縮形式で前記キャッシュメモリに保存し、全ての前記再利用オブジェクトの画像データを非圧縮形式で前記キャッシュメモリに保存できない場合は、少なくとも一部の前記再利用オブジェクトの画像データを圧縮して前記キャッシュメモリに保存し、前記少なくとも一部の前記再利用オブジェクトの画像データを圧縮しても前記キャッシュメモリに保存できない場合は、前記少なくとも一部の前記再利用オブジェクトの画像データを圧縮して前記外部記憶装置に保存するものである。
【００１１】
また、本発明は、一次記憶装置により構成されるキャッシュメモリ及び二次記憶装置としての外部記憶装置を備え、再利用オブジェクトと一時利用オブジェクトとを含むバリアブル印刷データに基づいて、印刷装置で処理可能な印刷出力用画像データを生成する装置で動作する印刷制御プログラムであって、前記装置を、前記バリアブル印刷データを解釈して、前記再利用オブジェクト及び前記一時利用オブジェクトを抽出し、抽出した前記再利用オブジェクト及び前記一時利用オブジェクトをラスタライズして画像データを生成するバリアブル印刷データ解析部、前記キャッシュメモリの使用状況に応じて、各々の前記再利用オブジェクトの画像データを、圧縮形式で保存するか非圧縮形式で保存するか、及び、前記キャッシュメモリに保存するか前記外部記憶装置に保存するか、を判定し、判定結果に応じて、各々の前記再利用オブジェクトの画像データを再利用するために保存する保存形態判定部、前記再利用オブジェクト及び前記一時利用オブジェクトの画像データを取得し、圧縮形式の画像データを解凍した後、当該画像データに基づく画像を合成して、印刷出力用画像データを生成する画像合成処理部、前記印刷出力用画像データを前記印刷装置に転送する印刷出力用画像データ転送部、として機能させ、前記保存形態判定部は、全ての前記再利用オブジェクトの画像データを非圧縮形式で前記キャッシュメモリに保存可能な場合は、非圧縮形式で前記キャッシュメモリに保存し、全ての前記再利用オブジェクトの画像データを非圧縮形式で前記キャッシュメモリに保存できない場合は、少なくとも一部の前記再利用オブジェクトの画像データを圧縮して前記キャッシュメモリに保存し、前記少なくとも一部の前記再利用オブジェクトの画像データを圧縮しても前記キャッシュメモリに保存できない場合は、前記少なくとも一部の前記再利用オブジェクトの画像データを圧縮して前記外部記憶装置に保存するものである。また、本発明は、一次記憶装置により構成されるキャッシュメモリ及び二次記憶装置としての外部記憶装置を備え、再利用オブジェクトと一時利用オブジェクトとを含むバリアブル印刷データに基づいて、印刷装置で処理可能な印刷出力用画像データを生成する装置における印刷制御方法であって、前記装置は、前記バリアブル印刷データを解釈して、前記再利用オブジェクト及び前記一時利用オブジェクトを抽出し、抽出した前記再利用オブジェクト及び前記一時利用オブジェクトをラスタライズして画像データを生成するバリアブル印刷データ解析処理と、前記キャッシュメモリの使用状況に応じて、各々の前記再利用オブジェクトの画像データを、圧縮形式で保存するか非圧縮形式で保存するか、及び、前記キャッシュメモリに保存するか前記外部記憶装置に保存するか、を判定し、判定結果に応じて、各々の前記再利用オブジェクトの画像データを再利用するために保存する保存形態判定処理と、前記再利用オブジェクト及び前記一時利用オブジェクトの画像データを取得し、圧縮形式の画像データを解凍した後、当該画像データに基づく画像を合成して、印刷出力用画像データを生成する画像合成処理と、前記印刷出力用画像データを前記印刷装置に転送する印刷出力用画像データ転送処理と、を実行し、前記保存形態判定処理では、全ての前記再利用オブジェクトの画像データを非圧縮形式で前記キャッシュメモリに保存可能な場合は、非圧縮形式で前記キャッシュメモリに保存し、全ての前記再利用オブジェクトの画像データを非圧縮形式で前記キャッシュメモリに保存できない場合は、少なくとも一部の前記再利用オブジェクトの画像データを圧縮して前記キャッシュメモリに保存し、前記少なくとも一部の前記再利用オブジェクトの画像データを圧縮しても前記キャッシュメモリに保存できない場合は、前記少なくとも一部の前記再利用オブジェクトの画像データを圧縮して前記外部記憶装置に保存するものである。
【発明の効果】
【００１２】
本発明の印刷制御装置及び印刷制御プログラムによれば、キャッシュメモリの使用状況に応じて、再利用オブジェクトを圧縮しないでキャッシュメモリに保存するか、圧縮してキャッシュメモリに保存するか、圧縮してＨＤＤに保存するかを判定するため、キャッシュメモリを有効に利用することができ、バリアブル印刷処理を迅速に実行することができる。
【００１３】
また、利用頻度が高い順に、再利用オブジェクトの画像データが、可能な限りキャッシュメモリに保存されるため、更に、キャッシュメモリを有効に利用することができ、バリアブル印刷処理を迅速に実行することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施例に係る印刷制御システムの構成を模式的に示すブロック図である。
【図２】本発明の第１の実施例に係る印刷制御装置のプログラム構成を示すブロック図である。
【図３】オブジェクトを圧縮する場合と圧縮しない場合のキャッシュメモリ上のイメージを示す図である。
【図４】キャッシュメモリ上のオブジェクト形式による処理の違いを示す図である。
【図５】圧縮状態でキャッシュされたオブジェクトを合成する例を示す図である。
【図６】非圧縮状態でキャッシュされたオブジェクトを合成する例を示す図である。
【図７】ＨＤＤにキャッシュされたオブジェクトを合成する例を示す図である。
【図８】オブジェクトの保存形態をメモリ内で変更する例（メモリ遷移）を示す図である。
【図９】オブジェクトの保存形態をメモリとＨＤＤ間で変更する例（ＨＤＤ遷移）を示す図である。
【図１０】再利用オブジェクトを管理・利用する例を示す図である。
【図１１】本発明の第１の実施例に係る印刷制御装置の処理（全体処理）を示すフローチャート図である。
【図１２】本発明の第１の実施例に係る印刷制御装置の処理（メモリの使用状況に応じたキャッシュ処理）を示すフローチャート図である。
【図１３】本発明の第１の実施例に係る印刷制御装置の処理（再利用オブジェクトの取り出し処理）を示すフローチャート図である。
【図１４】本発明の第２の実施例に係る印刷制御装置のプログラム構成を示すブロック図である。
【図１５】バリアブル印刷データの構成と再利用オブジェクトのキャッシュ保持状態を示す図である。
【図１６】キャッシュメモリが非効率に使用される例を示す図である。
【図１７】再利用オブジェクトの利用率による重み付けの例を示す図である。
【図１８】キャッシュしないで別の方法で再利用する例を示す図である。
【図１９】ＰＰＭＬデータの再利用オブジェクト利用率算出の前処理を示す図である。
【図２０】再利用オブジェクトの利用率算出の処理概要を示す図である。
【図２１】本発明の第２の実施例に係る印刷制御装置の処理（全体処理）を示すフローチャート図である。
【図２２】本発明の第２の実施例に係る印刷制御装置の処理（再利用オブジェクトの重み付け処理）を示すフローチャート図である。
【図２３】本発明の第２の実施例に係る印刷制御装置の処理（利用頻度に応じたキャッシュ処理）を示すフローチャート図である。
【図２４】本発明の第２の実施例に係る印刷制御装置の処理（再利用オブジェクトの取り出し処理）を示すフローチャート図である。
【図２５】本発明の第３の実施例に係る印刷制御装置の処理（全体処理）を示すフローチャート図である。
【図２６】本発明の第３の実施例に係る印刷制御装置の処理（利用頻度及びメモリの使用状況に応じたキャッシュ処理）を示すフローチャート図である。
【発明を実施するための形態】
【００１５】
背景技術で示したように、バリアブル印刷では、再利用オブジェクトを一次記憶装置（主記憶装置）により構成されるキャッシュメモリに保存して処理の効率化を図っているが、キャッシュメモリの容量には制限があるため、キャッシュメモリに保存できない場合は、二次記憶装置としての外部記憶装置（例えば、ＨＤＤ）に保存しなければならない。しかしながら、再利用オブジェクトをＨＤＤに退避させると、印刷出力用画像データを生成する際に、再利用オブジェクトをＨＤＤからメモリ上に読み出さなければならないため、バリアブル印刷の処理に時間がかかる。
【００１６】
ここで、再利用オブジェクトの保存形態を、処理性能が高い順に列挙すると、（１）キャッシュメモリ上に非圧縮で保存、（２）キャッシュメモリ上に圧縮して保存、（３）ＨＤＤに圧縮して保存となるが、占有容量が低い順に列挙すると、（１）キャッシュメモリ上に圧縮して保存／ＨＤＤに圧縮して保存、（２）キャッシュメモリ上に非圧縮で保存となる。従って、キャッシュメモリを有効に利用し、バリアブル印刷の処理時間を短縮するためには、キャッシュメモリの使用状況に応じて、各々の再利用オブジェクトの保存形態を設定することが好ましい。
【００１７】
また、バリアブル印刷では、１度しか使用されない部品であっても、再利用オブジェクトとして指定されると、ジョブが終了するまでその再利用オブジェクトはキャッシュメモリに保存される。従って、キャッシュメモリを有効に利用するためには、何度も使用される再利用オブジェクトを優先的にキャッシュメモリに保存することが好ましい。
【００１８】
そこで、本発明の一実施の形態では、現在のキャッシュメモリの使用状況（空き容量）に応じて、再利用オブジェクトを圧縮しないでキャッシュメモリに保存するか、圧縮してキャッシュメモリに保存するか、圧縮してＨＤＤに保存するかを判定する。更に、バリアブル印刷データに基づいて再利用オブジェクトの利用頻度（利用率、利用回数）を算出し、その利用頻度に応じて各再利用オブジェクトを重み付けし、利用頻度が高い順に、再利用オブジェクトを可能な限りキャッシュメモリに保存し、キャッシュメモリに保存できない再利用オブジェクトは、ＨＤＤに保存するか、利用する度にＲＩＰ（Raster Image Processing）処理を行うようにする。これにより、キャッシュメモリを有効に利用することができ、バリアブル印刷処理を迅速に実行することができる。
【００１９】
以下、第１の実施例では、キャッシュメモリの使用状況（空き容量）に応じて再利用オブジェクトを保存する方法について記載し、第２の実施例では、利用頻度に応じて再利用オブジェクトを保存する方法について記載し、第３の実施例では、それらを組み合わせた方法について記載する。
【実施例１】
【００２０】
まず、本発明の第１の実施例に係るバリアブル印刷における印刷制御装置及び印刷制御プログラムについて、図１乃至図１３を参照して説明する。
【００２１】
バリアブル印刷では、ページ間で共通する部品（再利用オブジェクト）とページ間で変化する部品（以下、一時利用オブジェクトと呼ぶ。）とを用い、再利用オブジェクトを圧縮して保存しておき、合成に際して、再利用オブジェクトを展開（伸張）し、展開（伸張）した再利用オブジェクトと一時利用オブジェクトとを合成することによってページ毎の印刷出力用画像データが生成されるが、バリアブル印刷の処理効率の観点から考えると、再利用オブジェクトの展開（伸張）処理が大きな割合を占めている。その原因は、カラーのバリアブル印刷処理では、再利用オブジェクトの容量が大きくなるため、全ての再利用オブジェクトを圧縮してキャッシュメモリに保存した場合、圧縮した再利用オブジェクトを展開する処理を再利用回数分繰り返す必要があるからである。
【００２２】
ここで、バリアブル印刷データの構成に依存するが、全ての再利用オブジェクトを圧縮して保存する必要は無く、例えば、再利用オブジェクト数が少ない（キャッシュメモリの使用容量が少ない）場合は、再利用オブジェクトを圧縮する必要はない。また、全ての再利用オブジェクトを非圧縮でキャッシュメモリに保存できない場合は、キャッシュメモリから溢れた再利用オブジェクトは、インターフェースを介してＣＰＵに接続される外部記憶装置（本明細書の実施例では、ＨＤＤとする。）に退避させることになるが、本願発明者の実験によれば、一部を非圧縮でキャッシュメモリに保存し、残りをＨＤＤに保存するよりも、全部を圧縮してキャッシュメモリに保存した方が処理の効率が良くなる。また、ＨＤＤに退避させる場合は、非圧縮でＨＤＤに保存するよりも、圧縮した状態で退避させてＨＤＤにアクセスする時間（Ｉ／Ｏ時間）を出来るだけ少なくした方が性能に与える影響を最小限に抑えることができる。
【００２３】
そこで、本実施例では、上記知見に基づいて、キャッシュメモリの使用状況に応じて再利用オブジェクトの保存形態を適宜、動的に変更することで、バリアブル印刷の処理効率を高めるようにする。以下、図面を参照して詳細に説明する。
【００２４】
図１に示すように、本実施例の印刷制御システム１０は、バリアブル印刷データを生成するバリアブル印刷データ生成装置２０と、バリアブル印刷データを解析してページ毎の印刷出力用画像データを生成する印刷制御装置３０と、ページ毎の印刷出力用画像データに基づいて印刷を実行し、印刷物５０を出力する出力装置４０などで構成される。バリアブル印刷データ生成装置２０と印刷制御装置３０は、ＬＡＮ（Local Area Network）やＷＡＮ（Wide Area Network）などのネットワークで接続されており、印刷制御装置３０と出力装置４０は、専用のインターフェースで接続されている。
【００２５】
バリアブル印刷データ生成装置２０は、ＣＰＵ（Central Processing Unit）２１、ＲＯＭ（Read Only Memory）２２、ＲＡＭ（Random Access Memory）２３、ＮＩＣ（Network Interface Card）２４、ＨＤＤ２５等から構成され、ＲＯＭ２２やＨＤＤ２５に記憶されたプログラムをＲＡＭ２３に展開し、ＣＰＵ２１で実行する。ＨＤＤ２５には、バリアブル印刷におけるオブジェクトのレイアウトを規定する配置ファイルと再利用オブジェクト及び一時利用オブジェクトの画像データとを備えている。ＮＩＣ２４は、印刷制御装置３０との通信処理を行う。
【００２６】
印刷制御装置（コントローラ）３０は、ＣＰＵ３１、ＲＯＭ３２、ＲＡＭ３３、ＮＩＣ３４、ＨＤＤ３５等から構成され、ＲＯＭ３２やＨＤＤ３５に記憶されたプログラム（図２の印刷制御プログラム）をＲＡＭ３３に展開し、ＣＰＵ３１で実行する。ＲＡＭ３３には、再利用オブジェクトを格納するキャッシュメモリ、圧縮した再利用オブジェクトを展開するワークメモリ、画像合成を行うページ合成メモリがある。ＲＡＭ３３もしくはＨＤＤ３５には、各ページに配置されるオブジェクトを規定するページ構成リスト、再利用オブジェクトリスト、一時利用オブジェクトリスト、キャッシュされているオブジェクトを管理するためのキャッシュ管理テーブルなどが保存される。
【００２７】
出力装置４０は、ネットワークプリンタや複合機（ＭＦＰ：Multi-Function Peripheral）などの画像形成装置である。
【００２８】
なお、図１では、印刷制御装置３０と出力装置４０とを別々の装置としているが、これらは１つの装置としてもよい。また、図１では、印刷制御システム１０にバリアブル印刷データ生成装置２０を含めているが、印刷制御装置３０のＨＤＤ３５などに予め記憶されたバリアブル印刷データを利用してバリアブル印刷を実行する場合は、バリアブル印刷データ生成装置２０を省略することもできる。
【００２９】
次に、印刷制御装置３０で動作する印刷制御プログラムについて説明する。
【００３０】
図２は、印刷制御装置３０のプログラム構成図であり、印刷制御プログラムは、印刷制御装置３０を、バリアブル印刷データ解析部３０ａ、保存形態判定部３０ｂ、再利用オブジェクト管理部３０ｃ、画像合成処理部３０ｄ、印刷出力用画像データ転送部３０ｅなどとして機能させる。
【００３１】
バリアブル印刷データ解析部３０ａは、クライアントのコンピュータ装置から送られてきたバリアブル印刷データを解析し、再利用オブジェクト及び一時利用オブジェクトを抽出し、抽出した再利用オブジェクト及び一時利用オブジェクトをラスタライズして画像データを生成すると共にイメージ合成指示を解釈する。
【００３２】
保存形態判定部３０ｂは、キャッシュメモリの使用状況（空き容量）を取得すると共に、再利用オブジェクトの非圧縮時のサイズ及び圧縮時のサイズを取得し、それらを比較することによって、再利用オブジェクトを、圧縮しないでキャッシュメモリに保存するか、圧縮してキャッシュメモリに保存するか、圧縮してＨＤＤに保存するかを判定し、判定結果に従って、ラスタライズ後の再利用オブジェクト（再利用オブジェクトの画像データ）を保存（必要に応じて圧縮して保存）する。また、再利用オブジェクトをキャッシュするために、既にキャッシュメモリに保存されているどの再利用オブジェクトの保存形態を変更するか（例えば、ＨＤＤに待避させるか）を判定し、判定結果に従って、再利用オブジェクトの保存形態を変更する。
【００３３】
再利用オブジェクト管理部３０ｃは、再利用オブジェクトの画像データの保存場所や利用時の画像データの取り出し方法を管理し、キャッシュメモリやＨＤＤから再利用オブジェクトの画像データを取り出し、画像合成処理部３０ｄに渡す。
【００３４】
画像合成処理部３０ｄは、バリアブル印刷データ解析部３０ａで解釈されたイメージ合成指示に従い、適宜、再利用オブジェクト管理部３０ｃから再利用オブジェクトの画像データを受け取り、再利用オブジェクト及び一時利用オブジェクトの画像データに基づく画像を合成（圧縮されている場合は展開後に合成）して印刷出力用画像データを生成する。
【００３５】
印刷出力用画像データ転送部３０ｅは、画像合成処理部３０ｄで生成した印刷出力用画像データをエンジン（出力装置４０）に転送する。
【００３６】
以下、従来のバリアブル印刷の問題点について説明した後、本実施例の印刷制御装置３０の動作を説明する。なお、キャッシュメモリやＨＤＤに保存されるのはラスタライズ後の再利用オブジェクト（再利用オブジェクトの画像データ）であるが、本実施例においては、単に、再利用オブジェクトと呼ぶ。
【００３７】
図３は、再利用オブジェクトを圧縮する場合と圧縮しない場合のキャッシュメモリ上のイメージを示した図である。同一のオブジェクトでも、圧縮した状態でキャッシュメモリに保存されるとメモリの使用容量が少なくなり、同一のメモリ容量ならば、より多くの再利用オブジェクトをキャッシュメモリ上に保存できることを示している。従って、キャッシュメモリの容量の観点からは、圧縮形式で再利用オブジェクトを保存した方が良いことになる。
【００３８】
図４は、キャッシュメモリ上の再利用オブジェクトの保存形式による画像合成処理のステップ数の違いを示した図である。再利用オブジェクトがキャッシュメモリ上に圧縮形式で保存された場合、ステップ１で展開（非圧縮状態にDECODE）し、ステップ２で展開した再利用オブジェクトを合成することになる。一方、再利用オブジェクトがキャッシュメモリ上に非圧縮形式で保存された場合、展開ステップなしで合成ステップが行えるため、処理時間が短くなる。従って、処理時間の観点からは、非圧縮形式で再利用オブジェクトを保存した方がよいことになる。
【００３９】
図５は、圧縮形式でキャッシュされた再利用オブジェクトを合成する例を示した図である。キャッシュメモリに圧縮形式で保存された再利用オブジェクトは、一旦ワークメモリで非圧縮状態に展開され、その展開された画像をページ合成メモリ上で合成する。この例では、圧縮Ｏｂｊ１はキャッシュメモリに圧縮状態で保存されており、このＯｂｊ１をページ合成するために、ワークメモリで圧縮状態から非圧縮状態に展開し、展開したＯｂｊ１をページ合成メモリに配置する。ページの印刷出力用画像データを完成させるために、ページを構成している他のオブジェクトＯｂｊ２、Ｏｂｊ３に対しても同様の処理を行う。このように、オブジェクトを圧縮形式で保存することによってキャッシュメモリの使用容量を少なくすることができるが、圧縮形式で保存された再利用オブジェクトを展開するステップをオブジェクトの数だけ行う必要があるため、処理時間が長くなる。
【００４０】
図６は、非圧縮形式でキャッシュされた再利用オブジェクトを合成する例を示した図である。図５と異なり、再利用オブジェクトは圧縮されていないため、キャッシュメモリ上にある再利用オブジェクトをそのままページ合成メモリ上に貼り付けることができる。この例では、非圧縮Ｏｂｊ１はキャッシュメモリに非圧縮状態で保存されており、そのままページ合成メモリに配置する。ページの印刷出力用画像データを完成させるため、ページを構成している他のオブジェクトＯｂｊ２，Ｏｂｊ３に対しても同様の処理を行う。このように、オブジェクトを非圧縮形式で保存することによって処理を簡略化することができるが、圧縮形式で保存するよりもキャッシュメモリの使用容量が多くなる。
【００４１】
図７は、ＨＤＤに圧縮形式でキャッシュされた再利用オブジェクトを合成する例を示した図である。ＨＤＤに圧縮形式で保存されたオブジェクトをワークメモリにロードし、ワークメモリ上でロードしたオブジェクトを非圧縮に展開する。展開後にページ合成メモリ上にオブジェクトを貼り付ける。この例では、圧縮されたＯｂｊ１はキャッシュメモリに保存できなくなったのでＨＤＤにキャッシュされている。このＨＤＤに保存されている圧縮Ｏｂｊ１をページ合成する場合は、圧縮Ｏｂｊ１をＨＤＤからワークメモリに読み込み、圧縮Ｏｂｊ１を非圧縮状態に展開した後、ページ合成メモリに配置する。キャッシュメモリに保存されている圧縮Ｏｂｊ２、Ｏｂｊ３は、ワークメモリで圧縮状態から非圧縮状態に展開した後、ページ合成メモリに配置する。このように、一部の再利用オブジェクトがＨＤＤにキャッシュされた場合は、ＨＤＤとメモリ間のデータ通信が必要になり、その分、処理時間が長くなる。
【００４２】
このように、キャッシュメモリの容量の観点からは、再利用オブジェクトを圧縮形式でキャッシュメモリに保存することが好ましく、処理時間を短くする観点からは、再利用オブジェクトを非圧縮形式でキャッシュメモリに保存することが好ましく、全ての再利用オブジェクトをキャッシュメモリに保存できない場合は、溢れた再利用オブジェクトを圧縮形式でＨＤＤに保存することが好ましい。従って、キャッシュメモリを有効に利用するためには、キャッシュメモリの使用状況（空き容量）に応じて、圧縮形式でキャッシュメモリに保存するか、非圧縮形式でキャッシュメモリに保存するか、圧縮形式でＨＤＤに保存するかを判定する制御を行う必要がある。
【００４３】
図８は、上記制御に基づいて、オブジェクトの保存形態をメモリ内で変更する例を示している。この例では、非圧縮Ｏｂｊ４をキャッシュメモリに保存しようとしているが、キャッシュメモリ上には既にＯｂｊ１とＯｂｊ２とＯｂｊ３が有り、Ｏｂｊ４を保存する容量が残っていない。そこで、本実施例では、Ｏｂｊ１（好ましくは、利用頻度が低いオブジェクト）を圧縮して、キャッシュメモリの空き容量を増やし、Ｏｂｊ４をキャッシュメモリに保存できるようする。このように、一部のオブジェクトを圧縮形式に変更することにより、全ての再利用オブジェクトをキャッシュメモリ上に保存することができるため、キャッシュメモリから溢れたオブジェクトをＨＤＤに保存する場合や、全ての再利用オブジェクトを圧縮してキャッシュメモリに保存する場合に比べて、キャッシュメモリを有効に利用し、バリアブル印刷の処理時間を短縮することができる。
【００４４】
図９は、上記制御に基づいて、オブジェクトの保存形態をメモリとＨＤＤ間で変更する例を示している。この例では、圧縮Ｏｂｊ４をキャッシュメモリに保存しようとしているが、キャッシュメモリ上には既にＯｂｊ１とＯｂｊ２とＯｂｊ３が有り、Ｏｂｊ４を保存する容量が残っていない。また、全てのオブジェクトは圧縮形式であり、既存のオブジェクトを圧縮してキャッシュメモリを空き容量を増やすこともできない。そこで、本実施例では、Ｏｂｊ１（好ましくは、利用頻度が低いオブジェクトやサイズが小さいオブジェクト）をＨＤＤにキャッシュし、キャッシュメモリの容量を空けることで、圧縮Ｏｂｊ４をキャッシュメモリ上に保存できるようする。このように、相対的に利用頻度が低いオブジェクトや相対的にサイズが小さいオブジェクトを圧縮形式でＨＤＤにキャッシュすることにより、キャッシュメモリ上には相対的に利用頻度が高いオブジェクトを保存することができるため、ＨＤＤとメモリ間のデータ通信の負荷を減らして、バリアブル印刷の処理時間を短縮することができる。
【００４５】
図１０は、再利用オブジェクトを管理・利用する例を示した図である。キャッシュされる再利用オブジェクトはキャッシュ管理テーブルによって管理される。このキャッシュ管理テーブルには、キャッシュされているオブジェクト数とオブジェクトＩＤが記述されており、そのオブジェクトＩＤには、オブジェクトのサイズ、圧縮／非圧縮の区別、圧縮時のオブジェクトサイズ、保存場所などの属性情報が関連付けられている。キャッシュされた再利用オブジェクトを利用する場合は、キャッシュ管理テーブルを参照して、対象となる再利用オブジェクトの属性情報を取得し、その属性情報に基づいて動作を変更する。
【００４６】
例えば、再利用オブジェクトが圧縮形式で、保存場所がメモリの場合は、圧縮形式から非圧縮形式に変換して、イメージ合成メモリに配置するようにする。また、オブジェクトが圧縮形式で、保存場所がＨＤＤの場合は、オブジェクトをＨＤＤからワークメモリに読み込み、読み込んだオブジェクトを圧縮形式から非圧縮形式に変換した後にイメージ合成メモリに配置する。また、オブジェクトが非圧縮形式の場合は、オブジェクトをそのままイメージ合成メモリに配置する。
【００４７】
以下、本実施例の印刷制御装置３０の処理について説明する。図１１は、印刷制御装置３０の全体処理を示すフローチャート図である。
【００４８】
バリアブル印刷データが入力されると処理がスタートし、バリアブル印刷データ解析部３０ａは、そのバリアブル印刷データを先頭から逐次解釈し、各オブジェクトをラスタライズする（Ｓ１１０）。
【００４９】
次に、バリアブル印刷データ解析部３０ａは、ラスタライズしたオブジェクトが再利用オブジェクトかどうか判定し（Ｓ１２０）、再利用オブジェクトの場合は、メモリの使用状況に応じたキャッシュ処理をコールする（Ｓ１３０）。このキャッシュ処理の詳細は後述する。次に、バリアブル印刷データ解析部３０ａは、ページの最後か判定し（Ｓ１４０）、ページの最後でないならば、次のバリアブル印刷データの解析とラスタライズを行う。
【００５０】
ページの最後ならば、再利用オブジェクト管理部３０ｃは、ページの合成処理を行うために再利用オブジェクトの取り出し処理を行う（Ｓ１５０）。この取り出し処理の詳細は後述する。そして、画像合成処理部３０ｄが１ページ分の画像合成を行ったら、印刷出力用画像データをエンジンに転送する（Ｓ１６０）。バリアブル印刷データがまだ有る場合（Ｓ１７０のＮｏ）は、Ｓ１１０に戻ってバリアブル印刷データの解析とラスタライズの処理を行い、この処理をジョブの終了まで繰り返す。
【００５１】
［メモリの使用状況に応じたキャッシュ処理］
図１２は、保存形態判定部３０ｂが実行する、メモリの使用状況に応じたキャッシュ処理を示すフローチャート図であり、図１１のＳ１３０の詳細を示している。
【００５２】
まず、キャッシュメモリの使用状況を確認する（Ｓ１３１）。そして、キャッシュメモリに非圧縮形式の再利用オブジェクトのサイズ分以上の空き領域がある場合（Ｓ１３２のＹｅｓ）は、非圧縮でキャッシュメモリに保存すべきと判定し、再利用オブジェクトを非圧縮でキャッシュメモリに保存する（Ｓ１３５）。
【００５３】
再利用オブジェクトのサイズ分以上の空き領域がない場合は、圧縮後の再利用オブジェクトのサイズを計算する（Ｓ１３３）。キャッシュメモリに圧縮後の再利用オブジェクトのサイズの空きがある場合（Ｓ１３４のＹｅｓ）は、圧縮してキャッシュメモリに保存すべきと判定し、再利用オブジェクトを圧縮してキャッシュメモリに保存する（Ｓ１３６）。一方、キャッシュメモリに圧縮後の再利用オブジェクトのサイズの空きがない場合（Ｓ１３４のＮｏ）は、圧縮してＨＤＤに保存すべきと判定し、オブジェクトを圧縮してＨＤＤに保存する（Ｓ１３７）。
【００５４】
［再利用オブジェクトの取り出し処理］
図１３は、再利用オブジェクト管理部３０ｃが実行する、再利用オブジェクトの取り出し処理を示すフローチャート図であり、図１１のＳ１５０の詳細を示している。
【００５５】
取り出し要求がされている再利用オブジェクト（要求オブジェクトと呼ぶ。）がキャッシュされているかを判定し（Ｓ１５１）、要求オブジェクトがキャッシュされていない場合は、オブジェクトが無いとしてＮＵＬＬを画像合成処理部３０ｄに通知する（Ｓ１５２）。
【００５６】
要求オブジェクトがキャッシュされている場合は、オブジェクトが非圧縮形式か圧縮形式かを判定する（Ｓ１５３）。非圧縮形式の場合は、キャッシュメモリから取り出した要求オブジェクトをそのまま画像合成処理部３０ｄに渡す（Ｓ１５４）。一方、圧縮形式の場合は、要求オブジェクトの保存場所がＨＤＤかを判定し（Ｓ１５５）、保存場所がＨＤＤの場合は、要求オブジェクトをワークメモリに読み込み（Ｓ１５６）、圧縮された要求オブジェクトを展開するなど、要求オブジェクトを再利用できる形式に変換した後（Ｓ１５７）、変換した要求オブジェクトを画像合成処理部３０ｄに渡す（Ｓ１５８）。
【００５７】
以上説明したように、キャッシュメモリの使用状況（空き容量）に応じて、圧縮形式でキャッシュメモリに保存するか、非圧縮形式でキャッシュメモリに保存するか、圧縮形式でＨＤＤに保存するかを判定するため、再利用オブジェクトを効率的にキャッシュメモリに保存することができ、バリアブル印刷処理を迅速に実行することができる。
【実施例２】
【００５８】
次に、本発明の第２の実施例に係るバリアブル印刷における印刷制御装置及び印刷制御プログラムについて、図１４乃至図２４を参照して説明する。
【００５９】
前述したように、バリアブル印刷では、ページ間で共通する部品（再利用オブジェクト）とページ間で変化する部品（以下、一時利用オブジェクトと呼ぶ。）とを用いるが、再利用オブジェクトには、利用頻度の高いものもあれば、利用頻度の低いものもある。
【００６０】
ここで、利用頻度の低い再利用オブジェクトが最初にキャッシュメモリに登録され、ジョブの後半に利用頻度の高い再利用オブジェクトが登録される場合、キャッシュメモリに双方の再利用オブジェクトを保存できる空き容量がないと、利用頻度の高い再利用オブジェクトがキャッシュメモリから溢れてＨＤＤに保存されることになる。そして、利用頻度の高い再利用オブジェクトがＨＤＤに保存されると、ＨＤＤからメモリへのデータ転送が再利用回数分繰り返されることになり、これによってバリアブル印刷の処理に時間がかかるという問題が生じる。
【００６１】
そこで、本実施例では、バリアブル印刷データに基づいて、再利用オブジェクトの利用頻度（利用率、利用回数）を算出し、利用頻度に応じて再利用オブジェクトを重み付けする。そして、利用頻度が高い順に、再利用オブジェクトを可能な限り（キャッシュメモリに保存できなくなるまで）キャッシュメモリに保存し、キャッシュメモリに保存できない再利用オブジェクトはＨＤＤに保存したり、キャッシュせずに利用する度にＲＩＰ処理を行ったりするようにする。
【００６２】
この場合、印刷制御システム１０の基本構成は前記した第１の実施例の図１と同様であるが、印刷制御装置３０で動作する印刷制御プログラムは、図１４に示すようになり、印刷制御装置３０を、再利用オブジェクト利用頻度計算部３０ｆ、バリアブル印刷データ解析部３０ａ、保存形態判定部３０ｂ、再利用オブジェクト管理部３０ｃ、画像合成処理部３０ｄ、印刷出力用画像データ転送部３０ｅなどとして機能させる。
【００６３】
再利用オブジェクト利用頻度計算部３０ｆは、バリアブル印刷データの配置ファイルを利用し、各々の再利用オブジェクトの出現回数に基づいて利用頻度を算出し、配置ファイルに算出した利用頻度（利用率）を付加する。
【００６４】
バリアブル印刷データ解析部３０ａは、クライアントのコンピュータ装置から送られてきたバリアブル印刷データを解析し、再利用オブジェクト及び一時利用オブジェクトを抽出し、抽出した再利用オブジェクト及び一時利用オブジェクトをラスタライズして画像データを生成すると共にイメージ合成指示を解釈する。また、配置ファイルに付加された利用頻度と再利用オブジェクトの属性情報（名称やＩＤ、サイズ、圧縮／非圧縮の区別、保存場所など）とを取り出し、それらの情報を保存形態判定部３０ｂに渡す。
【００６５】
保存形態判定部３０ｂは、バリアブル印刷データ解析部３０ａで取り出した再利用オブジェクトの利用頻度及び属性情報に基づいて、再利用オブジェクトをキャッシュメモリに保存するか否かを判定し、その判定結果に従って、ラスタライズ後の再利用オブジェクト（再利用オブジェクトの画像データ）を保存（必要に応じて圧縮して保存）する。また、再利用オブジェクトをキャッシュするために、既にキャッシュメモリに保存されているどの再利用オブジェクトの保存形態を変更するか（例えば、ＨＤＤに待避させるか）を判定し、判定結果に従って、再利用オブジェクトの保存形態を変更する。
【００６６】
再利用オブジェクト管理部３０ｃは、再利用オブジェクトの画像データの保存場所や利用時の画像データの取り出し方法を管理し、キャッシュメモリやＨＤＤから再利用オブジェクトの画像データを取り出し、画像合成処理部３０ｄに渡す。
【００６７】
画像合成処理部３０ｄは、バリアブル印刷データ解析部３０ａで解釈されたイメージ合成指示に従い、適宜、再利用オブジェクト管理部３０ｃから再利用オブジェクトの画像データを受け取り、再利用オブジェクト及び一時利用オブジェクトの画像データに基づく画像を合成（圧縮されている場合は展開後に合成）して印刷出力用画像データを生成する。
【００６８】
印刷出力用画像データ転送部３０ｅは、画像合成処理部３０ｄで生成した印刷出力用画像データをエンジン（出力装置４０）に転送する。
【００６９】
以下、従来のバリアブル印刷の問題点について説明した後、本実施例の印刷制御装置３０の動作を説明する。なお、キャッシュメモリやＨＤＤに保存されるのはラスタライズ後の再利用オブジェクト（再利用オブジェクトの画像データ）であるが、以下の説明においても、単に、再利用オブジェクトと呼ぶ。
【００７０】
図１５は、バリアブル印刷データの構成と再利用オブジェクトのキャッシュ保持状態を示した図である。ここでは、１００ページで構成されるバリアブル印刷データを仮定する。このバリアブル印刷データには、再利用される部品があり、その部品を再利用オブジェクトＡ（図の網掛け部）とする。再利用オブジェクトＡは１ページ目と２ページ目に利用されており、３ページ目以降には再利用されていない。
【００７１】
１ページ目の印刷出力用画像データが生成されるとき、再利用オブジェクトＡはキャッシュメモリに保存されており、キャッシュされたデータを使用して印刷出力用画像データが生成される。２ページ目も１ページ目と同様に、キャッシュメモリに保存された再利用オブジェクトＡを使用して印刷出力用画像データが生成される。３ページ目以降、再利用オブジェクトＡは使用されないが、ジョブの最後までキャッシュメモリ上に保存される。このように、再利用オブジェクトＡは、ページの最初に再利用されているため、最も先にキャッシュメモリに保存され、その後の再利用の有無に関係無く、ジョブの最後までキャッシュメモリを占有してしまうことになる。
【００７２】
図１６は、キャッシュメモリが非効率に使用される例を示した図である。印刷出力用画像データを生成するとき、ページを構成する再利用オブジェクトがキャッシュメモリに無ければならないため、ジョブをシーケンシャルに処理している過程で、キャッシュメモリが非効率になる場合が発生する。
【００７３】
具体的に説明すると、１００ページで構成されるバリアブル印刷データがあり、そのバリアブル印刷データには再利用オブジェクトが複数あるとする。再利用オブジェクトＡは１ページ目と２ページ目に利用されており、３ページ目以降には再利用されていない。再利用オブジェクトＢは４ページ目に使用されており、それ以降は使用されていない。再利用オブジェクトＢがキャッシュメモリに保存された時にキャッシュメモリの容量がフルになるとすると、それ以降の再利用オブジェクトは、ＨＤＤに保存される。
【００７４】
ここで、５１ページ目以降から再利用オブジェクトＣが使用され、５１ページ目以降全てのページで再利用オブジェクトＣが使用されるとする。この場合、再利用オブジェクトＣは５１ページ目から１００ページまで５０回再利用されるが、ＨＤＤに保存されているため、５０回分のＨＤＤアクセス（ＨＤＤとメモリ間のデータ通信）が必要になり、性能が著しく劣化する。一方、再利用オブジェクトＡは２回しか再利用されず、再利用オブジェクトＢは１回しか再利用されないにも関わらず、キャッシュメモリに保存されている。本来であれば、最も利用頻度が高い再利用オブジェクトＣがキャッシュメモリに保存され、最も利用頻度が低い再利用オブジェクトＢがＨＤＤに保存される方が効率的である。
【００７５】
図１７は、再利用オブジェクトの利用頻度（利用率）による重み付けの例を示した図である。図１６のようにキャッシュメモリが非効率に使用される場合に、キャッシュメモリに保存するべきか、ＨＤＤに保存するべきか、他の方法で再利用するべきかを決定するために、再利用オブジェクトを利用率に従って重み付けする。
【００７６】
具体的には、図１６の構成を前提として、まず、バリアブル印刷データから再利用オブジェクトＡ、Ｂ、Ｃを取り出し、使用されている回数から利用率を算出する。再利用オブジェクトＡは１００ページ中２ページで使用されているため、利用率は２％になる。再利用オブジェクトＢは１００ページ中１ページしか使用されていないため、利用率は１％になる。再利用オブジェクトＣは１００ページ中５０ページに使用されているため、利用率は５０％になる。
【００７７】
そして、利用率が高い順に、再利用オブジェクトをキャッシュメモリに保存し、利用率が最も低い再利用オブジェクトＢをＨＤＤに保存することで、キャッシュメモリが非効率に使用される状態を回避することができる。また、再利用オブジェクトＡは２％の利用率であり、再利用オブジェクトとしては低い利用率である。そこで、ジョブの中で利用率が高い再利用オブジェクトがキャッシュされる場合は、再利用オブジェクトＡをＨＤＤに保存し、再利用オブジェクトＡより利用率が高い再利用オブジェクトをキャッシュメモリに保存するようにする。つまり、利用頻度（利用率）に応じて、再利用オブジェクトのキャッシュ形態を変えたり、キャッシュせずに他の方法で再利用したりする方が、全体効率を上げることができる。
【００７８】
図１７では、利用率の最も低い再利用オブジェクトをＨＤＤに保存したが、ＨＤＤに保存する以外の方法を用いることもできる。図１８は、キャッシュしないで別の方法で再利用する例を示した図である。
【００７９】
１００ページで構成されるバリアブル印刷データがあり、そのバリアブル印刷データには再利用オブジェクトが複数あるとする。その中の再利用オブジェクトＤは１ページ目と１００ページ目に利用されており、それ以外では再利用されていない。再利用オブジェクトＤは面積（占有容量）が大きく、利用頻度も低い。このような場合は、キャッシュ機構を使用しないで、一時利用オブジェクトと同様に、利用する度に再利用オブジェクトＤをラスタライズすることもできる。
【００８０】
図１９は、再利用オブジェクトの利用率を算出するための前処理を示した図である。バリアブル印刷データがPPML（Personalized Print Markup Language）で記述されているとする。PPMLデータは外部の画像データと配置ファイル（PPMLファイル）を別にしたものと、画像データと配置ファイルを同一ファイル内に持ったものとがある。それらのファイルはZIP形式でアーカイブされていても良い。さらに、画像データと配置ファイルを別に持つ形式では、１つ１つの画像データをファイルとして保持する形式（EXTERNAL_DATA）と、PDF（Portable Document Format）などの外部ファイルで複数の画像データを保持する形式（EXTERNAL_DATA_ARRAY）とが有る。画像データと配置ファイルを同一ファイル内に持った形式（INTERNAL_DATA）は、画像データをUUENCODEした文字として配置ファイル内に保存したものである。
【００８１】
再利用オブジェクトの利用率を算出するために前処理として、それぞれの形式を統一する。まず、ZIPアーカイブされている場合は解凍する。解凍した状態で、EXTERNAL_DATA形式とEXTERNAL_DATA_ARRAY形式は、再利用オブジェクトの利用率を算出できる状態である。INTRNAL_DATA形式も利用率を算出できるが、画像データがファイルに含まれているため、膨大なデータを処理しなければいけない。そのため、INTRNAL__DATA形式の場合は、画像データを取り出し、取り出した画像データを外部ファイル形式に変換し、EXTERNAL_DATA形式に書き換える。そして、入力されたバリアブル印刷データをEXTERNAL_DATA形式とEXTERNAL_DATA_ARRAY形式に統一した後、再利用オブジェクトの利用率の計算処理を行う。
【００８２】
図２０は、再利用オブジェクトの利用率を算出する処理の概要を示した図である。EXTERNAL_DATA形式とEXTERNAL_DATA_ARRAY形式に統一されたデータに対して、XML(Extensible Markup Language)のスキーマーチェック（データ構造のチェック）を行う。スキーマーチェックが終わったら、再利用オブジェクト定義から再利用オブジェクト名を取り出し、再利用オブジェクトリストを作成する。配置ファイルで規定される再利用オブジェクトが出現したら、その再利用オブジェクトのカウンターに１を加算する。この処理をバリアブル印刷データの最後まで繰り返す。なお、スキーマーチェックと同時に再利用オブジェクトをカウントしても良い。
【００８３】
以下、本実施例の印刷制御装置３０の処理について説明する。図２１は、印刷制御装置３０の全体処理を示すフローチャート図である。
【００８４】
バリアブル印刷データが入力されると処理がスタートし、再利用オブジェクト利用頻度計算部３０ｆは、再利用オブジェクトの重み付け処理を行う（Ｓ２１０）。この重み付け処理の詳細は後述する。再利用オブジェクトの重み付け処理が終わると、配置ファイルに利用頻度が付加されたバリアブル印刷データが生成されるので、バリアブル印刷データ解析部３０ａは、そのバリアブル印刷データを先頭から逐次解釈し、各オブジェクトをラスタライズする（Ｓ２２０）。
【００８５】
そして、バリアブル印刷データ解析部３０ａは、ラスタライズしたオブジェクトが再利用オブジェクトかどうか判定し（Ｓ２３０）、再利用オブジェクトの場合は、利用頻度に応じたキャッシュ処理をコールする（Ｓ２４０）。このキャッシュ処理の詳細は後述する。次に、バリアブル印刷データ解析部３０ａは、ページの最後かを判定し（Ｓ２５０）、ページの最後でないならば、次のバリアブル印刷データの解析とラスタライズを行う。
【００８６】
ページの最後ならば、再利用オブジェクト管理部３０ｃは、ページの合成処理を行うために再利用オブジェクトの取り出し処理を行う（Ｓ２６０）。この取り出し処理の詳細は後述する。そして、画像合成処理部３０ｄが１ページ分の画像合成を行ったら、印刷出力用画像データをエンジンに転送する（Ｓ２７０）。バリアブル印刷データがまだ有る場合（Ｓ２８０のＮｏ）は、Ｓ２２０に戻ってバリアブル印刷データの解析とラスタライズの処理を行い、この処理をジョブの終了まで繰り返す。
【００８７】
［再利用オブジェクトの重み付け処理］
図２２は、再利用オブジェクト利用頻度計算部３０ｆが実行する、再利用オブジェクトの重み付け処理を示すフローチャート図であり、図２１のＳ２１０の詳細を示している。
【００８８】
まず、バリアブル印刷データがZIPアーカイブされているかを確認する（Ｓ２１１）。バリアブル印刷データがZIPアーカイブされている場合は、UNZIPしてアーカイブされたバリアブル印刷データを解凍する（Ｓ２１２）。次に、解凍したバリアブル印刷データの配置ファイル（PPMLファイル）の中にINTERNAL_DATAエレメントが含まれているか判定する（Ｓ２１３）。INTERNAL_DATAエレメントが含まれている場合は、INTERNAL_DATAエレメントに指定されている画像データをUUDECODEし、画像データを外部ファイル形式に変換する。そして、PPMLファイルのINTERNAL_DATAエレメントを取り除き、EXTERNAL_DATAエレメントに置き換えて、外部ファイルとして作成した画像ファイルを指定する（Ｓ２１４）。
【００８９】
次に、EXTERNAL_DATAエレメント及びEXTERNAL_DATA_ARRAYエレメントに変換されたPPMLファイルに対して、スキーマーチェックを行い、再利用オブジェクト名を取り出し、再利用オブジェクトリストを作成する（Ｓ２１５）。次に、バリアブル印刷データを先頭からサーチし、再利用オブジェクトが参照されているかを判定する（Ｓ２１６）。再利用オブジェクトが参照されている場合は、該当する再利用オブジェクトの再利用数をカウントアップし（Ｓ２１７）、この処理をジョブの最後まで繰り返す（Ｓ２１８）。そして、ジョブの最後に来たら、再利用オブジェクトリストによって重み付けした配置ファイルを出力する（Ｓ２１９）。
【００９０】
［利用頻度に応じたキャッシュ処理］
図２３は、保存形態判定部３０ｂが実行する、利用頻度に応じたキャッシュ処理を示すフローチャート図であり、図２１のＳ２４０の詳細を示している。なお、再利用オブジェクトは、キャッシュメモリには非圧縮で保存し、ＨＤＤには圧縮して保存する構成とするが、圧縮／非圧縮は変更可能である。
【００９１】
まず、キャッシュメモリに再利用オブジェクトの容量分の空き容量があるかを確認する（Ｓ２４１）。キャッシュメモリに空き容量がある場合は、今キャッシュしようとしている再利用オブジェクトをキャッシュメモリに保存する（Ｓ２４６）。
【００９２】
キャッシュメモリに空き容量が無い場合は、キャッシュメモリに比較対象（保存されている再利用オブジェクト）があるかを確認する（Ｓ２４２）。保存されている再利用オブジェクトがある場合は、その再利用オブジェクトの利用頻度を取り出し、キャッシュメモリ上に保存されている再利用オブジェクトと今キャッシュしようとしている再利用オブジェクトの利用頻度を比較する（Ｓ２４３）。今キャッシュしようとしている再利用オブジェクトの利用頻度がキャッシュメモリ上に保存されている再利用オブジェクトの利用頻度よりも高い場合（Ｓ２４４のＹｅｓ）は、キャッシュメモリ上に保存されている再利用オブジェクトをＨＤＤに移動する（Ｓ２４５）。その際、キャッシュメモリ上に保存されている再利用オブジェクトが圧縮されている場合は、そのままＨＤＤに移動し、圧縮されていない場合は、圧縮してＨＤＤに保存する。その後、Ｓ２４１に戻って、再度、キャッシュメモリに空き容量があるかを判定する。
【００９３】
一方、キャッシュメモリ上に比較対象（保存されている再利用オブジェクト）が無い場合（Ｓ２４２のＮｏ）や、今キャッシュしようとしている再利用オブジェクトの利用頻度がキャッシュメモリ上に保存されている再利用オブジェクトの利用頻度以下の場合（Ｓ２４４のＮｏ）は、今キャッシュしようとしている再利用オブジェクトを圧縮してＨＤＤに保存するか、若しくは、キャッシュしないで利用する度にＲＩＰ処理を行うようにする（Ｓ２４７）。
【００９４】
［再利用オブジェクトの取り出しの処理］
図２４は、再利用オブジェクト管理部３０ｃが実行する、再利用オブジェクトの取り出し処理を示すフローチャート図であり、図２１のＳ２６０の詳細を示している。
【００９５】
取り出し要求がされている再利用オブジェクト（ここでは要求オブジェクトと呼ぶ。）がキャッシュされているかを判定し（Ｓ２６１）、要求オブジェクトがキャッシュされていない場合は、要求オブジェクトをラスタライズして画像データを生成する（Ｓ２６２）。そして、生成した画像データを画像合成処理部３０ｄに渡す（Ｓ２６８）。
【００９６】
要求オブジェクトがキャッシュされている場合は、その要求オブジェクトがキャッシュメモリにあるかを判定し（Ｓ２６３）、キャッシュメモリにある場合は、要求オブジェクトをキャッシュメモリから取り出す（Ｓ２６４）。ここでは、要求オブジェクトはキャッシュメモリには圧縮しないで保存されているため、キャッシュメモリから取り出した要求オブジェクトをそのまま画像合成処理部３０ｄに渡す（Ｓ２６８）。
【００９７】
一方、キャッシュメモリにない場合は、要求オブジェクトがＨＤＤに保存されているかを判定し（Ｓ２６５）、ＨＤＤに保存されている場合は、要求オブジェクトをＨＤＤからワークメモリに読み込み（Ｓ２６６）、圧縮された要求オブジェクトを展開するなど、要求オブジェクトを再利用できる形式に変換した後（Ｓ２６７）、変換した要求オブジェクトを画像合成処理部３０ｄに渡す（Ｓ２６８）。
【００９８】
以上説明したように、再利用オブジェクトの利用頻度（利用率）を算出し、利用頻度が高い順に、再利用オブジェクトを可能な限りキャッシュメモリに保存することにより、キャッシュメモリを有効に利用することができ、ＨＤＤへのアクセス回数を減らして、バリアブル印刷処理を迅速に実行することができる。
【実施例３】
【００９９】
次に、本発明の第３の実施例に係るバリアブル印刷における印刷制御装置及び印刷制御プログラムについて、図２５及び図２６を参照して説明する。
【０１００】
前記した第１の実施例では、キャッシュメモリの使用状況に応じて再利用オブジェクトの画像データを非圧縮でキャッシュメモリに保存するか、圧縮してキャッシュメモリに保存するか、圧縮してＨＤＤに保存するかを判定し、第２の実施例では、利用頻度に応じて再利用オブジェクトの画像データをキャッシュメモリに保存したが、本実施例では、これらを組み合わせて、キャッシュメモリの使用状況及び利用頻度に応じて再利用オブジェクトの画像データをどのように保存するかを制御する。
【０１０１】
以下、本実施例の印刷制御装置３０の処理について説明する。図２５は、印刷制御装置３０の全体処理を示すフローチャート図である。なお、キャッシュメモリやＨＤＤに保存されるのはラスタライズ後の再利用オブジェクト（再利用オブジェクトの画像データ）であるが、本実施例においても、単に、再利用オブジェクトと呼ぶ。
【０１０２】
バリアブル印刷データが入力されると処理がスタートし、再利用オブジェクト利用頻度計算部３０ｆは、再利用オブジェクトの重み付け処理を行う（Ｓ３１０）。この重み付け処理は前記した第１の実施例と同様である。再利用オブジェクトの重み付け処理が終わると、配置ファイルに利用頻度が付加されたバリアブル印刷データが生成されるので、バリアブル印刷データ解析部３０ａは、そのバリアブル印刷データを先頭から逐次解釈し、各オブジェクトをラスタライズする（Ｓ３２０）。
【０１０３】
そして、バリアブル印刷データ解析部３０ａは、ラスタライズしたオブジェクトが再利用オブジェクトかどうか判定し（Ｓ３３０）、再利用オブジェクトの場合は、利用頻度及びキャッシュメモリの使用状況に応じたキャッシュ処理をコールする（Ｓ３４０）。このキャッシュ処理の詳細は後述する。次に、バリアブル印刷データ解析部３０ａは、ページの最後かを判定し（Ｓ３６０）、ページの最後でないならば、次のバリアブル印刷データの解析とラスタライズを行う。
【０１０４】
ページの最後ならば、再利用オブジェクト管理部３０ｃは、ページの合成処理を行うために再利用オブジェクトの取り出し処理を行う（Ｓ３７０）。この取り出し処理は前記した第１の実施例及び第２の実施例と同様である。そして、画像合成処理部３０ｄが１ページ分の画像合成を行ったら、印刷出力用画像データをエンジンに転送する（Ｓ３８０）。バリアブル印刷データがまだ有る場合（Ｓ３９０のＮｏ）は、Ｓ３２０に戻ってバリアブル印刷データの解析とラスタライズの処理を行い、この処理をジョブの終了まで繰り返す。
【０１０５】
［利用頻度及びキャッシュメモリの使用状況に応じたキャッシュ処理］
図２６は、保存形態判定部３０ｂが実行する、利用頻度及びキャッシュメモリの使用状況に応じたキャッシュ処理を示すフローチャート図であり、図２５のＳ３４０の詳細を示している。
【０１０６】
まず、キャッシュメモリに非圧縮形式の再利用オブジェクトの容量分の空き容量があるかを確認する（Ｓ３４１）。キャッシュメモリに非圧縮形式の再利用オブジェクトの容量分の空き容量がある場合は、今キャッシュしようとしている再利用オブジェクトを非圧縮形式でキャッシュメモリに保存する（Ｓ３４９）。
【０１０７】
キャッシュメモリに非圧縮形式の再利用オブジェクトの容量分の空き容量が無い場合は、キャッシュメモリに比較対象（保存されている再利用オブジェクト）があるかを確認する（Ｓ３４２）。保存されている再利用オブジェクトがある場合は、その再利用オブジェクトの利用頻度を取り出し、キャッシュメモリ上に保存されている再利用オブジェクトと今キャッシュしようとしている再利用オブジェクトの利用頻度を比較する（Ｓ３４３）。今キャッシュしようとしている再利用オブジェクトの利用頻度がキャッシュメモリ上に保存されている再利用オブジェクトの利用頻度よりも高い場合（Ｓ３４４のＹｅｓ）は、キャッシュメモリ上に保存されている再利用オブジェクトを圧縮してＨＤＤに移動するか、若しくは、圧縮してキャッシュメモリに戻す（Ｓ３４５）。その後、Ｓ３４１に戻って、再度、キャッシュメモリに非圧縮形式の再利用オブジェクトの容量分の空き容量があるかを判定する。
【０１０８】
一方、キャッシュメモリ上に比較対象（保存されている再利用オブジェクト）が無い場合（Ｓ３４２のＮｏ）や、今キャッシュしようとしている再利用オブジェクトの利用頻度がキャッシュメモリ上に保存されている再利用オブジェクトの利用頻度よりも低い場合（Ｓ３４４のＮｏ）は、キャッシュメモリの使用状況を確認し（Ｓ３４６）、圧縮後の再利用オブジェクトのサイズを計算する（Ｓ３４７）。キャッシュメモリに圧縮後の再利用オブジェクトのサイズの空きがある場合（Ｓ３４８のＹｅｓ）は、圧縮してキャッシュメモリに保存すべきと判定し、再利用オブジェクトを圧縮してキャッシュメモリに保存する（Ｓ３５０）。一方、キャッシュメモリに圧縮後の再利用オブジェクトのサイズの空きがない場合（Ｓ３４８のＮｏ）は、圧縮してＨＤＤに保存すべきと判定し、オブジェクトを圧縮してＨＤＤに保存する（Ｓ３５１）。
【０１０９】
このように、本実施例によれば、再利用オブジェクトの利用頻度（利用率）を算出し、利用頻度の高い再利用オブジェクトを、非圧縮形式でキャッシュメモリに保存し、非圧縮形式でキャッシュメモリに保存できない場合は、圧縮形式でキャッシュメモリに保存し、圧縮形式でキャッシュメモリに保存できない場合は、圧縮形式でＨＤＤに保存することにより、キャッシュメモリを有効に利用することができ、バリアブル印刷処理を迅速に実行することができる。
【０１１０】
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨を逸脱しない限りにおいて、その構成や制御は適宜変更可能である。例えば、上記各実施例では、再利用オブジェクトをキャッシュメモリに保存できない場合にＨＤＤに保存する構成としたが、保存先はＨＤＤに限らず、インターフェースを介してＣＰＵに接続される任意の外部記憶装置に適用することができる。
【産業上の利用可能性】
【０１１１】
本発明は、バリアブル印刷データを解析してページ毎の印刷出力用画像データを生成する印刷制御装置を含むシステム及び当該印刷制御装置で動作する印刷制御プログラムに利用可能である。
【符号の説明】
【０１１２】
１０  印刷制御システム
２０  バリアブル印刷データ生成装置
２１  ＣＰＵ
２２  ＲＯＭ
２３  ＲＡＭ
２４  ＮＩＣ
２５  ＨＤＤ
３０  印刷制御装置
３０ａ  再利用オブジェクト利用頻度計算部
３０ｂ  バリアブル印刷データ解析部
３０ｃ  保存形態用判定部
３０ｄ  再利用オブジェクト管理部
３０ｅ  画像合成処理部
３０ｆ  印刷出力用画像データ転送部
３１  ＣＰＵ
３２  ＲＯＭ
３３  ＲＡＭ
３４  ＮＩＣ
３５  ＨＤＤ
４０  出力装置
５０  印刷物
【図１】
0005574242.tif 000002
【図２】
0005574242.tif 000003
【図３】
0005574242.tif 000004
【図４】
0005574242.tif 000005
【図５】
0005574242.tif 000006
【図６】
0005574242.tif 000007
【図７】
0005574242.tif 000008
【図８】
0005574242.tif 000009
【図９】
0005574242.tif 000010
【図１０】
0005574242.tif 000011
【図１１】
0005574242.tif 000012
【図１２】
0005574242.tif 000013
【図１３】
0005574242.tif 000014
【図１４】
0005574242.tif 000015
【図１５】
0005574242.tif 000016
【図１６】
0005574242.tif 000017
【図１７】
0005574242.tif 000018
【図１８】
0005574242.tif 000019
【図１９】
0005574242.tif 000020
【図２０】
0005574242.tif 000021
【図２１】
0005574242.tif 000022
【図２２】
0005574242.tif 000023
【図２３】
0005574242.tif 000024
【図２４】
0005574242.tif 000025
【図２５】
0005574242.tif 000026
【図２６】
0005574242.tif 000027