(57)【要約】【課題】バリアブル印刷処理において、印刷データ処理中に発生するキャッシュデータのスワップ回数を少なくするように、キャッシュデータの書き出し優先順位を決定する。【解決手段】バリアブル印刷データに含まれる描画命令に従って生成された画像データをキャッシュデータとしてキャッシュメモリにキャッシュするキャッシュ手段と、キャッシュデータを、キャッシュメモリとは異なる二次記憶媒体に書き出す必要があるか否かを判定する判定手段と、判定手段により、キャッシュデータを二次記憶媒体に書き出す必要があると判定された場合に、二次記憶媒体に対する書き出し及び読みたしの回数が少なくなるように、二次記憶媒体に書き出すキャッシュデータを決定する決定手段と、決定手段により決定されたキャッシュデータを、二次記憶媒体に書き出す書き出し手段と、を有することによって課題を解決する。【選択図】図４
2012148429.tif 000002
【特許請求の範囲】
【請求項１】
バリアブル印刷データを処理する印刷データ処理装置であって、
前記バリアブル印刷データに含まれる描画命令に従って生成された画像データをキャッシュデータとしてキャッシュメモリにキャッシュするキャッシュ手段と、
前記キャッシュデータを、前記キャッシュメモリとは異なる二次記憶媒体に書き出す必要があるか否かを判定する判定手段と、
前記判定手段により、前記キャッシュデータを二次記憶媒体に書き出す必要があると判定された場合に、前記二次記憶媒体に対する書き出し及び読みたしの回数が少なくなるように、前記二次記憶媒体に書き出すキャッシュデータを決定する決定手段と、
前記決定手段により決定されたキャッシュデータを、前記二次記憶媒体に書き出す書き出し手段と、
を有することを特徴とする印刷データ処理装置。
【請求項２】
前記キャッシュメモリにキャッシュされている各キャッシュデータが次に利用されるまでのページ数を取得するページ数取得手段を更に有し、
前記決定手段は、前記ページ数取得手段により取得されたページ数が多いキャッシュデータを優先的に前記二次記憶媒体に書き出すと決定することを特徴とする請求項１に記載の印刷データ処理装置。
【請求項３】
前記バリアブル印刷データの処理速度に関する情報を取得する情報取得手段を更に有し、
前記ページ数取得手段は、前記情報取得手段により取得された情報に応じて定められたページ間における、各キャッシュデータが次に利用されるまでのページ数を取得することを特徴とする請求項２に記載の印刷データ処理装置。
【請求項４】
前記情報取得手段により取得された情報に応じて定められたページ間は、前記バリアブル印刷データの処理速度が速いほど長く、前記バリアブル印刷データの処理速度が遅いほど短いことを特徴とする請求項３に記載の印刷データ処理装置。
【請求項５】
前記情報取得手段は、印刷を実行するプリンタエンジンの速度、及び、前記バリアブル印刷データを処理するコントローラユニットの処理速度のうち少なくとも１つを取得することを特徴とする請求項３又は４に記載の印刷データ処理装置。
【請求項６】
前記キャッシュメモリにキャッシュされている各キャッシュデータの使用しているメモリ量を取得するメモリ量取得手段を更に有し、
前記決定手段は、前記メモリ量取得手段により取得されたメモリ量が大きいキャッシュデータを優先的に前記二次記憶媒体に書き出すと決定することを特徴とする請求項１に記載の印刷データ処理装置。
【請求項７】
バリアブル印刷データを処理する印刷データ処理装置が実行するキャッシュ処理方法であって、
前記バリアブル印刷データに含まれる描画命令に従って生成された画像データをキャッシュデータとしてキャッシュメモリにキャッシュするキャッシュステップと、
前記キャッシュデータを、前記キャッシュメモリとは異なる二次記憶媒体に書き出す必要があるか否かを判定する判定ステップと、
前記判定ステップにより、前記キャッシュデータを二次記憶媒体に書き出す必要があると判定された場合に、前記二次記憶媒体に対する書き出し及び読みたしの回数が少なくなるように、前記二次記憶媒体に書き出すキャッシュデータを決定する決定ステップと、
前記決定ステップにより決定されたキャッシュデータを、前記二次記憶媒体に書き出す書き出しステップと、
を含むことを特徴とするキャッシュ処理方法。
【請求項８】
バリアブル印刷データを処理するコンピュータに、
前記バリアブル印刷データに含まれる描画命令に従って生成された画像データをキャッシュデータとしてキャッシュメモリにキャッシュするキャッシュステップと、
前記キャッシュデータを、前記キャッシュメモリとは異なる二次記憶媒体に書き出す必要があるか否かを判定する判定ステップと、
前記判定ステップにより、前記キャッシュデータを二次記憶媒体に書き出す必要があると判定された場合に、前記二次記憶媒体に対する書き出し及び読みたしの回数が少なくなるように、前記二次記憶媒体に書き出すキャッシュデータを決定する決定ステップと、
前記決定ステップにより決定されたキャッシュデータを、前記二次記憶媒体に書き出す書き出しステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷データ処理装置、キャッシュ処理方法及びプログラムに関する。
【背景技術】
【０００２】
近年、顧客一人ひとりのニーズにあったデータを印刷するバリアブル印刷（ＶＤＰ）の需要が拡大している。デジタル印刷におけるＶＤＰには、ＰＰＭＬ、ＰＤＦ／ＶＴといった規格（ＶＤＰ言語）が策定されている。これらのＶＤＰ言語では、印刷データ中の画像を、複数回使用される再利用オブジェクトと、そうでないオブジェクトに分類できる。これによって、再利用オブジェクトに対して、画像データを何らかの形でキャッシュし、次に使われるときに再利用できるように設計されている。再利用オブジェクトのデータをキャッシュし再利用することで、印刷処理を高速化できることがＶＤＰ言語の特長である。例えばＶＤＰ言語の一つであるＰＰＭＬでは、再利用オブジェクトをリユーザブルオブジェクト、そうでないオブジェクトをバリアブルオブジェクトと分類できる。
上述したバリアブル印刷における再利用オブジェクトのキャッシュデータの保存には、通常、印刷データ処理装置に搭載されたＲＡＭ等のメモリが使われる。しかし、処理装置のメモリ容量は有限であり、キャッシュデータ量がこのメモリ容量を超えてしまう場合がある。この場合には、現在メモリ上にあるキャッシュデータを、処理装置に搭載されたハードディスク等の二次記憶媒体に書き出して退避させることが行われる。また、二次記憶媒体に退避させたキャッシュデータを利用する場合には、二次記憶媒体からメモリ上へと読み出す処理が必要な場合がある。
【０００３】
このような二次記憶媒体の書き出しの処理と読み出しの処理とは、一般的なスワップ処理技術を用いることで可能となる。しかし、二次記憶媒体の処理時間はメモリの処理時間に比べて低速であるため、スワップが行われる回数が多いと、印刷データ処理にかかる時間が増大する。
このため、バリアブル印刷データ処理の効率化のためには、キャッシュデータを二次記憶媒体にスワップする回数を低減するような手法が必要である。
この課題を解決するための手段として、特許文献１の先行技術がある。この先行技術では、スワップ回数やメモリ領域の圧迫を小さくするように、バリアブル印刷データのレコードの処理順序を決定する。ここで、バリアブル印刷におけるレコードとは、印刷データをまとめる単位である。例えば、顧客単位で印刷を行う場合には、１顧客分の印刷データにより１レコードが構成される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−８８１０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した従来の技術では、スワップ回数の低減による高速化は見込めるものの、その代償としてレコードを印刷して出力する順序が入れ替わってしまう。ＶＤＰに限らず、印刷データ処理装置に入力された印刷データの順序は、ユーザの意図どおりに出力することが望ましい場合が多い。レコードの印刷順序を保持しないと不都合が生じる例としては、印刷処理の後工程に影響がある場合が挙げられる。例えば、従業員向けの配布物に社員番号を印字したものをＶＤＰで印刷し、配布を容易にするために社員番号順に出力したい場合に、１レコードが一人の社員に対応していれば、レコード順序を変更することはできない。また、ダイレクトメールをＶＤＰで印刷し、後工程で検品機を用いて住所や氏名が正しく印字されているか検品したい場合、多くの場合、検品機に入力する正解データの順序と印刷された出力物の順序とが一致していることが求められる。このような場合には、レコードの順序を変更せずに出力することが求められるため、上述の先行技術を適用してバリアブル印刷を高速化することは困難である。
印刷物の出力順序を保持したまま処理を高速化するための手段として、再利用オブジェクトのキャッシュデータをスワップする順序を制御することが挙げられる。キャッシュデータのスワップ優先順位の決定方法は、印刷データ処理におけるスワップ回数に影響するため、スワップ優先順位の決定方法が適切でないと、スワップ回数が増加し、印刷データ処理にかかる時間が増大する、という課題がある。
この課題に対して、現在メモリ上にあるキャッシュデータのうち、どのデータを二次記憶媒体に書き出すか、という優先順位を決定する手段を適正化することで、処理の高速化を図ることができる。
【０００６】
本発明はこのような問題点に鑑みなされたもので、バリアブル印刷処理において、印刷データ処理中に発生するキャッシュデータのスワップ回数を少なくするように、キャッシュデータの書き出し優先順位を決定する仕組みを提供することを目的とする。
【課題を解決するための手段】
【０００７】
そこで、本発明は、バリアブル印刷データを処理する印刷データ処理装置であって、前記バリアブル印刷データに含まれる描画命令に従って生成された画像データをキャッシュデータとしてキャッシュメモリにキャッシュするキャッシュ手段と、前記キャッシュデータを、前記キャッシュメモリとは異なる二次記憶媒体に書き出す必要があるか否かを判定する判定手段と、前記判定手段により、前記キャッシュデータを二次記憶媒体に書き出す必要があると判定された場合に、前記二次記憶媒体に対する書き出し及び読みたしの回数が少なくなるように、前記二次記憶媒体に書き出すキャッシュデータを決定する決定手段と、前記決定手段により決定されたキャッシュデータを、前記二次記憶媒体に書き出す書き出し手段と、を有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、バリアブル印刷処理において、印刷データ処理中に発生するキャッシュデータのスワップ回数を少なくするように、キャッシュデータの書き出し優先順位を決定する仕組みを提供することができる。
【図面の簡単な説明】
【０００９】
【図１】印刷データ処理装置の一例であるプリンタ（コンピュータ）のハードウェア構成の一例を示す図である。
【図２Ａ】印刷データ処理装置のソフトウェアモジュール構成の一例を示す図である。
【図２Ｂ】図１のＰＤＬインタプリタをより詳細に記したソフトウェアモジュール構成の一例を示す図である。
【図３】ＰＰＭＬデータの印刷処理の一例を示すフローチャートである。
【図４】ＰＰＭＬデータ解釈処理の一例を示すフローチャートである。
【図５】再利用オブジェクトのキャッシュ処理の一例を示すフローチャートである。
【図６】スワップ優先順位の決定処理一例を示すフローチャートである。
【図７】プリンタエンジン及びコントローラユニットのＣＰＵの処理速度からページ数を決定するための表の一例を示す図である。
【図８】実施形態１のキャッシュ制御部が取得する情報の一例を示す図である。
【図９】実施形態１の算出された無効キャッシュ量の一例を示す図（その１）である。
【図１０】実施形態１の算出された無効キャッシュ量の一例を示す図（その２）である。
【図１１】実施形態２のキャッシュ制御部が取得する情報の一例を示す図である。
【図１２】実施形態２の算出された無効キャッシュ量の一例を示す図である。
【図１３】中綴じ印刷におけるページ数算出方法の一例を説明するための図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について図面に基づいて説明する。
【００１１】
＜実施形態１＞
図１は、印刷データ処理装置の一例であるプリンタ（コンピュータ）１００のハードウェア構成の一例を示す図である。なお、本実施形態では印刷データ処理装置単体の構成を用いて説明するが、ネットワークを介して接続させるホストコンピュータ上に多くの処理を分離実行させる構成も可能である。
コントローラユニット２００は、画像信号やデバイス情報の入出力を制御する。ＣＰＵ１は、ＲＯＭ３或いはＨＤＤ４に記憶されたプログラムをＲＡＭ２に読み出し、実行する。更に、システムバス５に接続される各デバイスをＣＰＵ１が統括的に制御する。ＲＡＭ２は、ＣＰＵ１の主メモリ、ワークメモリとして機能する。ＲＯＭ３には電源ＯＮ時に実行されるブートプログラムが格納され、ＨＤＤ４にはオペレーティングシステムと本装置の制御プログラム本体が格納される。また、ＨＤＤ４は、画像データやプリントデータ等の大容量データを一時的或いは長期的に保持する目的でも使用される。Ｎｅｔｗｏｒｋ６は、ローカルエリアネットワーク１１に接続し、プリンタ外部とのプリントデータやデバイス情報の入出力を担う。操作部Ｉ／Ｆ７は、操作部１２とのインターフェース部で、操作部１２に表示する画像データを操作部１２に対して出力する。また、操作部Ｉ／Ｆ７は、操作部１２から本装置の使用者が入力した情報を、ＣＰＵ１に伝える役割をする。操作部１２は、出力器として液晶パネルと音源を備え、入力器としてタッチパネルとハードキーを備えるものである。コントローラユニット２００は、デバイスＩ／Ｆ８を介して、プリンタエンジン１３に接続される。デバイスＩ／Ｆ８は、ＣＰＵ１の指示に基づき、画像信号の送出、デバイス動作指示、デバイス情報の受信を行う。プリンタエンジン１３は、コントローラユニット２００からの画像信号を媒体上に出力する出力機であり、電子写真方式、インクジェット方式の何れでも構わない。Ｒａｓｔｅｒ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｏｒ（ＲＩＰ）９は、中間プリントデータをラスタイメージに展開する専用ハードウェアである。ＲＩＰ９は、ＣＰＵ１によりＲＡＭ２上に生成された中間プリントデータを高速、かつ、ＣＰＵ１の実行と並列に、処理するものである。プリンタ画像処理部１０は、プリント出力画像データに対して、画像補正、ハーフトーニング等を行う。画像圧伸部１４は、画像データの圧縮・伸張処理を行う。
ＣＰＵ１がプログラムに基づき処理を実行することによって、後述するソフトウェア構成、及びフローチャートの処理が実現される。
プリンタ１００は、バリアブル印刷データを処理する。
【００１２】
図２Ａは、印刷データ処理装置（プリンタ１００）のソフトウェアモジュール構成の一例を示す図である。
データ受信部２０１は、ホストから送信されたプリントデータを受信する。受信したデータは、ジョブ制御部２０２を介してジョブデータ管理部２０７で保持される。ジョブ制御部２０２は、データ受信から印刷までのジョブ制御の全般を司る。ＰＤＬインタプリタ２０３は、プリントデータを解釈して、中間データであるディスプレイリストを生成する。生成されたディスプレイリストは、ジョブ制御部２０２を介してジョブデータ管理部２０７で保持される。レンダラ２０４は、ディスプレイリストからビットマップイメージまでを生成するモジュールであり、多くの処理は専用ハードウェアであるＲＩＰ９により実行される。生成されたビットマップイメージは、ジョブ制御部２０２を介してジョブデータ管理部２０７で保持される。プリンタドライバ２０５は、デバイスＩ／Ｆ８を介してプリンタエンジンへの印刷指示とビットマップイメージの送出を行う。ユーザインターフェース２０６は、操作部Ｉ／Ｆ７を介して、操作部１２を制御するモジュールである。ユーザインターフェース２０６は、主に操作部１２の液晶パネルに表示するデータを生成し、タッチパネルからの入力に従い液晶パネルの表示を更新する。また、ユーザインターフェース２０６は、タッチパネルからの入力が何らかのジョブ実行指示であった場合は、ジョブ制御部２０２に指示を伝達する。ジョブデータ管理部２０７は、プリントデータ、ディスプレイリスト、ビットマップイメージのそれぞれを一時的若しくは長期的に保持管理するデータベースである。
【００１３】
図２Ｂは、図１のＰＤＬインタプリタ２０３をより詳細に記したソフトウェアモジュール構成の一例を示す図である。なお、本実施形態では印刷データに含まれるページ記述言語（ＰＤＬ）はＰＰＭＬであるとして説明するが、ＰＤＦ／ＶＴ等他のＶＤＰ言語のインタプリタを備える構成も可能である。また、本実施形態ではＰＰＭＬデータのコンテンツＰＤＬとしてＰｏｓｔＳｃｒｉｐｔ（登録商標）（以後、ＰＳと略記する）、ＰＤＦ、ＪＰＥＧ、ＴＩＦＦの４種類であるとして説明するが、コンテンツＰＤＬの組み合わせはこれ以外を用いることも可能である。ＰＰＭＬインタプリタ２０８は、ＰＰＭＬデータの解釈を行う。ＰＳ／ＰＤＦインタプリタ２０９は、ＰＳデータ及びＰＤＦデータの解釈を行う。ＪＰＥＧ／ＴＩＦＦインタプリタ２１０は、ＪＰＥＧデータ及びＴＩＦＦデータの解釈を行う。また、ＰＳ／ＰＤＦインタプリタ２０９とＪＰＥＧ／ＴＩＦＦインタプリタ２１０とは、ＤＬビルダ２１２により中間データであるディスプレイリストを出力する。キャッシュ制御部２１１は、描画オブジェクトをビットマップイメージ、若しくはディスプレイリストの形式でキャッシュする。ＰＰＭＬデータで描画オブジェクトの再利用が指示された場合は、ＰＰＭＬインタプリタ２０８は、キャッシュ制御部２１１と連動して描画オブジェクトの再利用を行う。ＰＰＭＬインタプリタ２０８は、ページ記述言語処理部の一例である。
【００１４】
次に、ＰＰＭＬデータの印刷処理の概要を、図３のフローチャートを用いて説明する。図３は、ＰＰＭＬデータの印刷処理の一例を示すフローチャートである。
最初にＳ１００１において、データ受信部２０１は、ホストコンピュータよりネットワークを介して送信されたＰＰＭＬデータを受信し、ジョブ制御部２０２に対してジョブ投入通知を行う。そして、ジョブ制御部２０２は、受信したＰＰＭＬデータをジョブデータ管理部２０７にスプールする。次にＳ１００２において、ジョブ制御部２０２は、ＰＰＭＬインタプリタ２０８に対してＰＰＭＬデータの解釈を指示する。ＰＰＭＬインタプリタ２０８は、ＰＰＭＬデータを解釈し、ＰＳ／ＰＤＦインタプリタ２０９、ＪＰＥＧ／ＴＩＦＦインタプリタ２１０、ＤＬビルダ２１２、キャッシュ制御部２１１と協調して中間データであるディスプレイリストを生成する。ジョブ制御部２０２は、生成されたディスプレイリストをジョブデータ管理部２０７に一時的に保持する。
【００１５】
次にＳ１００３にて、ジョブ制御部２０２は、前記ディスプレイリストをビットマップ化するようにレンダラ２０４に指示する。レンダラ２０４は、ＲＩＰ９を用いて前記ディスプレイリストをビットマップイメージ化する。次にＳ１００４で、ジョブ制御部２０２は、生成されたビットマップイメージを画像圧伸部１４により圧縮し、ジョブデータ管理部２０７に一時的に保持する。なお、ビットマップ化が終了したディスプレイリストは、ジョブ制御部２０２により、ジョブデータ管理部２０７から削除される。
次に、Ｓ１００５でジョブ制御部２０２は、プリンタドライバ２０５にビットマップイメージのプリントエンジンへの送信を指示する。プリンタドライバ２０５は、プリンタエンジン１３と同期を取りながらビットマップイメージを送信する。また、プリンタドライバ２０５は、送信する前に画像圧伸部１４によりビットマップイメージの伸張処理を行う。プリンタドライバ２０５は、プリンタエンジン１３への送信が終了したビットマップイメージをジョブデータ管理部２０７から削除する。なお、Ｓ１００２からＳ１００５までの処理は全ページ分のデータに対する一括処理を行うようにも、ページ毎の逐次処理を行うようにも構成することができる。ページ毎の逐次処理を行うようにした場合は、Ｓ１００２からＳ１００５までの処理はパイプライン化され、各処理は並列実行されるようになる。
【００１６】
次に、ＰＰＭＬインタプリタ２０８における画像データの描画とキャッシュとに関して、図３のＳ１００２の詳細を、図４を用いて説明する。図４は、ＰＰＭＬデータ解釈処理の一例を示すフローチャートである。
まず、ＰＰＭＬデータ内に画像データの描画命令がある場合、ＰＰＭＬインタプリタ２０８は、Ｓ１１０１において前記画像データがリユーザブルオブジェクトであるか否かを判定する。リユーザブルオブジェクトでない場合、即ち再利用されない画像データである場合には、ＰＰＭＬインタプリタ２０８は、Ｓ１１０２に進む。Ｓ１１０２において、ＰＰＭＬインタプリタ２０８は、前記画像データを処理すべきＰＤＬインタプリタに対して描画命令を解釈して部分ディスプレイリストを生成するよう命令し、何れかのインタプリタが前記処理を実行する。前記画像データを処理すべきＰＤＬインタプリタとは、本実施形態の場合、コンテンツＰＤＬがＰＳ又はＰＤＦであればＰＳ／ＰＤＦインタプリタ２０９、ＪＰＥＧ又はＴＩＦＦであればＪＰＥＧ／ＴＩＦＦインタプリタ２１０である。ここで、部分ディスプレイリストとは、１ページ分の中間データであるディスプレイリストを構成する中間データである。部分ディスプレイリストは、印刷データ内の画像データそれぞれに対して生成される。例えば、印刷データのあるページにＰＳデータが一つとＪＰＥＧデータが一つ配置されている。このとき、このページのディスプレイリストは、ＰＳデータに対応する部分ディスプレイリストとＪＰＥＧデータに対応する部分ディスプレイリストとで構成される。なお、一つの画像データに対して、部分ディスプレイリストは複数対応してもよい。
【００１７】
前記画像データがリユーザブルオブジェクトである場合には、ＰＰＭＬインタプリタ２０８は、まず前記リユーザブルオブジェクトのキャッシュデータが既に生成されているかを判定する。本実施形態では、リユーザブルオブジェクトのキャッシュデータとして、上述の部分ディスプレイリストを使用するものとする。よって、前記画像データがリユーザブルオブジェクトである場合には、Ｓ１１０３において、ＰＰＭＬインタプリタ２０８は、キャッシュ制御部２１１と連動して前記画像データの部分ディスプレイリストが既にキャッシュされているかを判定する。キャッシュ済みでない場合には、ＰＰＭＬインタプリタ２０８は、Ｓ１１０４に進む。
Ｓ１１０４において、Ｓ１１０２と同様にＰＰＭＬインタプリタ２０８からＰＳ／ＰＤＦインタプリタ２０９又はＪＰＥＧ／ＴＩＦＦインタプリタ２１０に対して部分ディスプレイリストの生成が命令され、何れかのインタプリタがこれを実行する。次に、Ｓ１１０５において、ＰＰＭＬインタプリタ２０８は、キャッシュ制御部２１１と連動してＳ１１０４において生成された部分ディスプレイリストをキャッシュメモリに格納する。
【００１８】
Ｓ１１０３において既に前記画像データがキャッシュ済みであると判定された場合は、ＰＰＭＬインタプリタ２０８は、Ｓ１１０６に進む。Ｓ１１０６において、ＰＰＭＬインタプリタ２０８は、キャッシュ制御部２１１と連動してキャッシュデータがＨＤＤ４にスワップされているか否かを判定する。本実施形態では、ハードディスク等の二次記憶媒体上にあるデータを使用する場合は、ＲＡＭ等のメモリ上に読み出す処理が必要であるとする。したがって、キャッシュデータがＨＤＤ４にスワップされている場合は、ＰＰＭＬインタプリタ２０８は、Ｓ１１０７に進む。Ｓ１１０７において、ＰＰＭＬインタプリタ２０８は、前記リユーザブルオブジェクトの部分ディスプレイリストをＨＤＤ４から取り出してキャッシュメモリに格納する処理を行う。
以上の制御により、何れの場合においても前記画像データの部分ディスプレイリストが生成若しくはロードできる。
Ｓ１１０８において、前記部分ディスプレイリストは、これを生成したＰＳ／ＰＤＦインタプリタ２０９、ＪＰＥＧ／ＴＩＦＦインタプリタ２１０、これを取り出したキャッシュ制御部２１１の何れかにより、ディスプレイリスト本体に追加される。Ｓ１１０９において全ての画像データの描画が終了したかをＰＰＭＬインタプリタ２０８が判定し、終了していない場合は繰り返し処理を続行する。
【００１９】
リユーザブルオブジェクトの部分ディスプレイリストのキャッシュにおけるスワップ処理について、図５を用いて説明する。このスワップ処理は、リユーザブルオブジェクトに対応した部分ディスプレイリストを生成してキャッシュメモリに格納するとき、及びＨＤＤ４にスワップされた部分ディスプレイリストを取り出してキャッシュメモリに格納するときに行われる。即ち、図４におけるＳ１１０５とＳ１１０７との処理中に随時行われる。図５は、再利用オブジェクトのキャッシュ処理の一例を示すフローチャートである。
キャッシュすべき部分ディスプレイリストを生成した後、及びスワップされた部分ディスプレイリストをキャッシュメモリにロードする際、まずＳ１２０１において、キャッシュ制御部２１１は、キャッシュメモリ容量に空きがあるかを判定する。即ち、キャッシュ制御部２１１は、キャッシュメモリの空き容量が、前記部分ディスプレイリストが使用するメモリ容量以上であるかを判定する。キャッシュメモリに空き容量が不足している場合、キャッシュ制御部２１１は、Ｓ１２０２に進む。Ｓ１２０２において、キャッシュ制御部２１１は、現在キャッシュメモリ上にある部分ディスプレイリストを１つ選び、ハードディスクへと書き出す。次にＳ１２０３において、キャッシュ制御部２１１は、必要な空き容量が確保されたか否かを判定し、確保されていなければハードディスクへの書き出し処理を繰り返し行う。
【００２０】
キャッシュ制御部２１１は、上記のような処理を行い、部分ディスプレイリストの格納に必要なメモリ容量が確保された後、Ｓ１２０４へ進む。Ｓ１２０４において、キャッシュ制御部２１１は、ＰＰＭＬインタプリタ２０８、ＰＳ／ＰＤＦインタプリタ２０９、ＪＰＥＧ／ＴＩＦＦインタプリタ２１０と連動して前記部分ディスプレイリストをキャッシュメモリへと格納する。前述したように、一つの画像データに対応する部分ディスプレイリストは複数あってもよい。したがって、一つのリユーザブルオブジェクトに対して、キャッシュデータとして保存する部分ディスプレイリストは複数に分かれる場合がある。このような場合に対応するため、Ｓ１２０５において、キャッシュ制御部２１１は、格納したい部分ディスプレイリストが全てキャッシュメモリへと格納されたか否かを判定し、そうでない場合、前記の処理を繰り返し行う。
【００２１】
次に、スワップ処理の優先順位を決定する処理について説明する。この処理は、部分ディスプレイリストをハードディスクへとスワップする処理、即ち図５のＳ１２０２において随時行われる。なお、スワップ処理の優先順位を決定するための基準量で、各部分ディスプレイリストがもつ値を、以後、無効キャッシュ量と記述する。
本実施形態では、キャッシュメモリ上にある部分ディスプレイリストに対して、そのメモリ使用量と次に利用されるまでのページ数とから無効キャッシュ量を算出し、無効キャッシュ量の大きい順に優先順位を決定する。
無効キャッシュ量の算出方法を、図６に示したフローチャートを用いてより具体的に例を挙げて説明する。図６は、スワップ優先順位の決定処理一例を示すフローチャートである。
まず、Ｓ１３０１及びＳ１３０２において、キャッシュ制御部２１１は、プリンタエンジン１３の処理速度とコントローラユニット２００の処理速度とを取得する。ここでは、プリンタエンジンの処理速度は１分間に印刷できるページ数を表す単位であるＰＰＭ（Ｐａｇｅｓ  Ｐｅｒ  Ｍｉｎｉｔｅ）で、コントローラユニットの処理速度はＣＰＵ１のクロック周波数で表すものとする。Ｓ１３０１及び/又はＳ１３０２の処理は、情報取得の処理の一例である。
次に、Ｓ１３０３において、キャッシュ制御部２１１は、Ｓ１３０１及びＳ１３０２において取得した情報を基に無効キャッシュ量の算出に用いるページ数を決定する。本実施形態では図７に示した表を基にプリンタエンジン及びコントローラユニットのＣＰＵの処理速度からページ数を決定することとする。図７は、プリンタエンジン及びコントローラユニットのＣＰＵの処理速度からページ数を決定するための表の一例を示す図である。ここで決定されるページ数は、各部分ディスプレイリストが次に使われるまでのページ数をキャッシュ制御部２１１が検索する処理（Ｓ１３０５）において、検索するページ数の上限値として用いられる。本実施形態でこのような上限値を設定することとした背景は次の通りである。
【００２２】
ＶＤＰにおいて、印刷データに多くのページが含まれる場合があり、例えば一つの印刷データに数千のページが含まれることも珍しくない。このような場合に、各部分ディスプレイリストが次に使われるまでのページ数を算出する際、印刷データの最後まで検索するような算出方法は、処理の効率の面から望ましくない。そこで本実施形態では、キャッシュデータが次に使われるまでのページ数（つまり、ページ間）を、一定ページ数先までの情報を基に算出することとする。更に、本実施形態では、この一定ページ数を、図７に示したようにプリンタエンジン及びコントローラユニットの処理速度に基づき可変とする。即ち、キャッシュ制御部２１１は、プリンタエンジンの処理速度が所定の速度より高速であれば一定ページ数を所定の数より小さく、コントローラユニットの処理速度が所定の速度より高速であれば一定ページ数を所定の数より大きくする。これは次のような理由による。プリンタエンジンの処理速度が所定の速度より高速であるとき、プリンタエンジンの処理にコントローラユニットの処理が追いつかれないようにするためには、コントローラユニットが各ページの処理に割ける時間は短くなる。したがって、一定ページ数を小さくすることが有効である。一方、コントローラユニットの処理速度が所定の速度より高速であるとき、同じ時間でコントローラユニットはより先のページまで情報の検索を行える。したがって、一定ページ数を大きくすることが有効である。
Ｓ１３０３において、検索するページ数の上限値を決定した後、キャッシュ制御部２１１は、Ｓ１３０４及びＳ１３０５において、キャッシュされた各部分ディスプレイリストの使用メモリ量と次に使われるまでのページ数とを取得する。Ｓ１３０４の処理は、メモリ量取得の一例である。Ｓ１３０５の処理は、ページ数取得の一例である。
ここでは、図８のように、キャッシュ制御部２１１は、現在キャッシュメモリ上にある部分ディスプレイリストに対して、キャッシュデータを識別する名称、使用しているメモリ量、次に前記部分ディスプレイリストが使用されるまでのページ数を取得する。図８は、実施形態１のキャッシュ制御部２１１が取得する情報の一例を示す図である。なお、次回使用されるまでのページ数が、Ｓ１３０３で決定したページ数の上限を超えると判明した場合には、キャッシュ制御部２１１は、前記部分ディスプレイリストが次回使用されるまでのページ数はＳ１３０３で決定したページ数の上限に等しいものとする。次に、Ｓ１３０６において、キャッシュ制御部２１１は、無効キャッシュ量の算出とキャッシュデータのスワップとを行う。本実施形態では、キャッシュ制御部２１１は、無効キャッシュ量を（使用しているメモリ量）×（次に使用されるまでのページ数）で求めるものとする。したがって、図８に示した状況における無効キャッシュ量は図９のとおりである。図９は、実施形態１の算出された無効キャッシュ量の一例を示す図（その１）である。
【００２３】
キャッシュ制御部２１１は、この無効キャッシュ量の一番大きいものから順にハードディスクへと書き出す処理を行う。即ち、スワップ優先順位はｏｂｊｅｃｔ０２、ｏｂｊｅｃｔ０１−０１、ｏｂｊｅｃｔ０１−０２、ｏｂｊｅｃｔ０３−０１、ｏｂｊｅｃｔ０３−０２、ｏｂｊｅｃｔ０１−０３の順となる。なお、無効キャッシュ量の算出方法はこれに限らない。例えば、次に使用されるまでのページ数をそのまま無効キャッシュ量とする方法、（使用しているメモリ量）×（次に使用されるまでのページ数−１）を無効キャッシュ量とする方法等がある。これらの方法で算出された無効キャッシュ量の例を図１０のＡ、Ｂ列にそれぞれ示す。図１０は、実施形態１の算出された無効キャッシュ量の一例を示す図（その２）である。
本実施形態のように、スワップ優先順位の決定に必要な情報の検索を、可変なページ数先までにとどめることにより、キャッシュ制御の効率化と印刷データ処理装置においてコントローラユニットの処理時間を増大させないこととを両立させることができる。なお、本実施形態では簡便な例として図７のようにページ数を決定する方法を述べた。そのため、本実施形態を実施するにあたっては、プリンタエンジン及びコントローラユニットの処理速度を取得するのは、ジョブの開始時に一度だけ行うか、制御プログラム本体に直接書き込んでもよい。但し、より有効な例として、プリンタエンジン及びコントローラユニットのハードウェアスペックではなく、実際に当該印刷データを処理しているときの処理速度の実測値を用いる場合には、印刷データ処理の実行中に動的に情報を取得する必要がある。
なお、一定ページ数先までの間に再利用されない部分ディスプレイリストのページ数の代わりに印刷データの処理が終了するまでの間に再利用されない部分ディスプレイリストのページ数を用いるようにしてもよい。
また、本実施形態では、使用メモリ量×ページ数の大きい順にスワップする例を用いて説明したが、使用メモリ量の大きい順にスワップするようにしてもよいし、ページ数の大きい順にスワップするようにしてもよい。つまり、キャッシュ制御部２１１は、ページ数が多いキャッシュデータを優先的にスワップするようにしてもよいし、使用メモリ量（メモリ量）が大きいキャッシュデータを優先的にスワップするようにしてもよい。
【００２４】
＜実施形態２＞
本実施形態では、実施形態１とは異なる無効キャッシュ量の算出手法を説明する。
本実施形態では、キャッシュ制御部２１１が取得する情報は図１１に挙げた項目とする。図１１は、実施形態２のキャッシュ制御部２１１が取得する情報の一例を示す図である。即ち、キャッシュ制御部２１１は、キャッシュメモリ上にある各部分ディスプレイリストに対して、部分ディスプレイリストを識別する名称、使用しているメモリ量、及び、一定ページ先までの間に前記部分ディスプレイリストが使用されないページ数を取得する。キャッシュ制御部２１１が取得したこれらの情報を基に、図１２のような無効キャッシュ量が算出される。図１２は、実施形２の算出された無効キャッシュ量の一例を示す図である。図１２のＡ列は、一定ページ先までの間に前記部分ディスプレイリストが使用されないページ数をそのまま無効キャッシュ量とした場合を示す。図１２のＢ列は、各部分ディスプレイリストに対して、（使用しているメモリ量）×（一定ページ先までの間に前記部分ディスプレイリストが使用されないページ数）で無効キャッシュ量を算出した場合を示す。何れの場合も、無効キャッシュ量が大きい順に部分ディスプレイリストのスワップ優先順位を高く設定するものとする。
【００２５】
＜実施形態３＞
バリアブル印刷においては、印刷データを面付けして出力することに対するニーズがある。このような面付け処理を印刷データ処理装置内で行う場合、印刷データ処理装置に入力される印刷データにおけるページの順序と実際に処理されるページの順序とは異なる。例えば、８ページの印刷データを両面、中綴じ印刷する場合、印刷データ処理装置で処理されるページ番号の順序は、中綴じの内側で用紙の左側のページから処理する場合、４、５、６、３、２、７、８、１のようになる。このような場合、部分ディスプレイリストが使用されるまでのページ数や一定ページ先までの出現回数は、印刷データにおけるページ番号を基準にするより、実際に印刷データ処理装置で処理されるページの順序を基準に算出するほうが望ましい。本実施形態では、この算出処理について説明する。
図１３のように、キャッシュメモリ上に３つの部分ディスプレイリストがキャッシュされており、各部分ディスプレイリストが出現するページ番号は図の第２列の通りであるとする。どの部分ディスプレイリストをスワップするかを、実施形態１に挙げたように次に使われるまでのページ数を基に決定する場合に関して説明する。図１３は、中綴じ印刷におけるページ数算出方法の一例を説明するための図である。印刷ジョブのページ数は８ページであり、現在処理中のページ番号が６であるとする。この場合、次に使われるまでのページ数は、表の第３列の通りになる。しかしながら、この値はキャッシュデータ制御の観点から適切でない。例えば、ｏｂｊｅｃｔ１は実際の処理順序にしたがうと２ページ後に再利用されるはずだが、印刷データのページ番号を基準にすると使用されないことになってしまうからである。このような場合、図１３の第４列の通り、実際に処理されるページ番号順を基準にしてキャッシュデータを制御することが望ましい。本実施形態では、キャッシュ制御部２１１は、面付け処理等の場合には実際に処理されるページ順序にしたがってスワップ優先順位を定める。
【００２６】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００２７】
以上、上述した各実施系他によれば、バリアブル印刷処理において、印刷データ処理中に発生するキャッシュデータのスワップ回数を少なくするように、キャッシュデータの書き出し優先順位を決定する仕組みを提供することができる。
【００２８】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図１】
2012148429.tif 000003
【図２Ａ】
2012148429.tif 000004
【図２Ｂ】
2012148429.tif 000005
【図３】
2012148429.tif 000006
【図４】
2012148429.tif 000007
【図５】
2012148429.tif 000008
【図６】
2012148429.tif 000009
【図７】
2012148429.tif 000010
【図８】
2012148429.tif 000011
【図９】
2012148429.tif 000012
【図１０】
2012148429.tif 000013
【図１１】
2012148429.tif 000014
【図１２】
2012148429.tif 000015
【図１３】
2012148429.tif 000016