(57)【要約】【課題】プロセス間通信を行うことなく、並列動作する複数の変換モジュール間のキャッシュ効率の低下を防ぐ。【解決手段】ＲＩＰモジュール制御部２００は、ＲＩＰモジュール３００を１つのプロセスとして起動する。ＲＩＰモジュール３００は、内部で複数のページ変換処理スレッド３１２−１，３１２−２，…３１２−Ｎを走らせ、それら各スレッドにより複数のページを並列的にＲＩＰ処理する。ページ割り当て部３１４は、各ページ変換処理スレッド３１２に対して、印刷文書データのうちのそれぞれ異なるページを割り当てる。複数のページ変換処理スレッド３１２は、同じメモリ空間内にある共有キャッシュ３２０を利用することで、プロセス間通信を行うことなく、共有キャッシュ３２０内にある他のページ変換処理スレッド３１２の変換結果を再利用する。【選択図】図３
2011230470.tif 000002
【特許請求の範囲】
【請求項１】
ページ記述言語で記述された複数の処理単位からなる印刷文書データをビットマップ画像形式又は中間言語形式の印刷画像データに変換するための変換処理を行う変換モジュールを、プロセスとして起動する変換モジュール起動手段、を備え、
前記変換モジュールは、
前記印刷文書データの前記処理単位をビットマップ画像形式又は中間言語形式の印刷画像データに変換するための変換処理スレッドを複数起動するスレッド起動手段と、
前記印刷文書データの前記各処理単位を、前記スレッド起動手段により起動された前記各変換処理スレッドに対して割り当て、処理させる割当手段と、
前記各変換処理スレッドにより共有される共有キャッシュと、
を備え、前記各変換処理スレッドは、割り当てられた前記処理単位に含まれるオブジェクトのビットマップ画像形式又は中間言語形式への変換結果が前記共有キャッシュに記憶されている場合には、前記オブジェクトを変換して前記変換結果を得る代わりに、前記共有キャッシュに記憶された変換結果を取得する、
ことを特徴とする印刷文書変換装置。
【請求項２】
前記印刷文書データの前記処理単位をビットマップ画像形式又は中間言語形式の印刷画像データに変換するための変換処理プロセスを複数起動し、前記印刷文書データの前記各処理単位を、前記変換処理プロセス起動手段により起動された前記各変換処理プロセスに対して割り当てて処理させる割当プロセスを起動し、前記各変換処理プロセスにより共有される第２の共有キャッシュを管理するキャッシュ管理プロセスを起動し、前記各変換処理プロセスが、前記キャッシュ管理プロセスとプロセス間通信を行い、割り当てられた前記処理単位に含まれるオブジェクトのビットマップ画像形式又は中間言語形式への変換結果が前記第２の共有キャッシュに記憶されている場合には、前記オブジェクトを変換して前記変換結果を得る代わりに、前記第２の共有キャッシュに記憶された変換結果をプロセス間通信により取得する第１モード処理を行う第１モード処理手段と、
変換処理の対象である前記印刷文書データが、キャッシュ操作コマンドを含んだ第１のページ記述言語で記述されているか、キャッシュ操作コマンドを含まない第２のページ記述言語で記述されているかを判別する判別手段と、
前記印刷文書データが前記第１のページ記述言語で記述されていると判別された場合は前記第１モード処理手段を動作させ、前記印刷文書データが前記第２のページ記述言語で記述されていると判別された場合は前記変換モジュール起動手段を動作させる動作制御手段と、
を更に備える請求項１に記載の印刷文書変換装置。
【請求項３】
コンピュータを、
ページ記述言語で記述された複数の処理単位からなる印刷文書データをビットマップ画像形式又は中間言語形式の印刷画像データに変換するための変換処理を行う変換モジュールを、プロセスとして起動する変換モジュール起動手段、
として機能させるためのプログラムであって、
前記変換モジュールは、
前記印刷文書データの前記処理単位をビットマップ画像形式又は中間言語形式の印刷画像データに変換するための変換処理スレッドを複数起動するスレッド起動手段と、
前記印刷文書データの前記各処理単位を、前記スレッド起動手段により起動された前記各変換処理スレッドに対して割り当て、処理させる割当手段と、
前記各変換処理スレッドにより共有される共有キャッシュと、
を備え、前記各変換処理スレッドは、割り当てられた前記処理単位に含まれるオブジェクトのビットマップ画像形式又は中間言語形式への変換結果が前記共有キャッシュに記憶されている場合には、前記オブジェクトを変換して前記変換結果を得る代わりに、前記共有キャッシュに記憶された変換結果を取得する、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷文書変換装置およびプログラムに関する。
【背景技術】
【０００２】
ＰｏｓｔＳｃｒｉｐｔ（登録商標）やＰＤＦ( Portable Data Format: ISO 32000-1) などのページ記述言語（以下、ＰＤＬと呼ぶ。ＰＤＬはPage Description Languageの略）で記述された印刷データは、ＲＩＰ( Raster Image Processor)と呼ばれる変換モジュールによりラスター画像（ビットマップ画像）に変換され、プリンタにより印刷される。変換モジュールは、ＰＤＬの解釈という言語系の処理を行う必要があるため、一般にはソフトウエアで実現されている。また、ＰＤＬデータを直接ラスター画像に変換する方式の他に、ＰＤＬデータを、ＰＤＬコマンドよりは粒度の小さいディスプレイリスト等の中間言語データに変換してバッファし、バッファした中間言語データをラスター画像に変換するという２段階の変換を行うシステムもよく知られている。
【０００３】
従来、ＰＤＬデータからラスター画像又は中間言語データへの変換を、ページ単位などのあらかじめ定められた単位ごとに、複数の変換モジュールで並列的に実行するシステムも知られている。
【０００４】
また、従来、ＰＤＬコマンドをラスター画像又は中間言語データへ変換処理した場合に、その処理結果のデータをそのコマンドの識別情報と対応づけてキャッシュし、後で同じコマンドに遭遇した場合には、キャッシュされたデータを使用することで、変換処理を省略することも行われている。
【０００５】
従来、並列動作する複数の変換モジュールは、それぞれ異なる個別のプロセスとしてコンピュータ上で実行されていた。並列動作させる複数の変換モジュールをそれぞれ異なる別々のプロセスとしてコンピュータ上で起動する場合、各プロセスにはそれぞれ異なったメモリ空間が割り当てられるので、プロセスごとにキャッシュを管理することが一般的である。
【０００６】
特許文献１に開示された装置では、マスタープロセッサが、異なる各頁の描画処理を順次異なるスレーブプロセッサに割当てる際、コマンドバッファ内の複数頁にわたる印刷コマンド列を読み、実際の描画（実描画）を行なうことなく各頁の描画属性パラメータの設定を行なう空描画を実行し、該空描画の終了した頁について当該設定された描画属性パラメータに従って印刷コマンド列に基づき各スレーブプロセッサで実描画を実行する。この装置では、マスタープロセッサと各スレーブプロセッサとの間で、共有メモリを介して印刷コマンド列等の連絡内容をやりとりしている。
【０００７】
特許文献２に開示された装置は、印刷文書を並列処理可能とするため、ページ記述言語の印刷データを解析して状態の区切り目を検出してブロックとし、各ブロックをＲＩＰソフトに割り当てる。この場合、各ブロックの初期値が同じブロックは、ＲＩＰソフトを並列処理させる。各ブロックの最終的な内部状態は次のブロックに引き継ぐ。
【０００８】
特許文献３に開示された装置は、カラープリンタの印刷作業の効率化を図るために、マルチスレッド方式を採用する。この装置では、マルチスレッド制御手段は、マルチスレッド対象タスクである色別解析処理１〜４（７〜１０）の生成、色別解析処理１からの色別解析処理２へのタスクローテーションなどの制御をする。色別解析処理１〜４（７〜１０）は、それぞれのマルチスレッド対象タスクであり、受信メモリ分配手段５により分配された印刷対象データを解析し、それぞれページデータ１〜４（１１〜１４）を生成する。色別解析処理において、与えられたブロックの容量分、データの解析を終了すると、マルチスレッド制御手段により、次の色別解析処理へのローテーションが行われる。
【０００９】
特許文献４に開示された装置は、複数の描画プロセッサにより印刷データの描画処理を並列して行うプリンタ制御装置において、印刷文書をフォーム（定型部分）と本文とに分け、各描画プロセッサにて描画処理されたフォーム等のビットマップデータを、印刷機構制御プロセッサ内の共通のキャッシュメモリにてキャッシュする。各描画プロセッサは、共通のキャッシュメモリにキャッシュされたフォームを、個別の本文と合成することで、印刷画像を生成する。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開平５−２０１０７７号公報
【特許文献２】特開平１１−２５９６４４号公報
【特許文献３】特開２０００−１４１７７１号公報
【特許文献４】特開２０００−３３５０２２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
並列動作する複数のプロセスがそれぞれ個別にキャッシュを管理する場合、ある第１のプロセスが処理しようとするコマンドの処理結果（変換結果）が別の第２のプロセスのキャッシュに存在していたとしても、第１のプロセスはメモリ空間が異なる第２のプロセスのキャッシュ内の処理結果を使用することはできない。このため、変換対象のＰＤＬデータを、並列処理せずに単一の変換モジュールが先頭から順に変換していく場合と比べて、キャッシュの効率が悪くなる。
【００１２】
キャッシュの効率を高めるために、それら複数のプロセスの間でキャッシュの共有化を図ることも考えられる。しかし、この方式では、共有キャッシュの管理のためのプロセスが必要になってコンピュータのメモリ等の資源を圧迫する。また、印刷データの変換のための各変換処理プロセスがその共有キャッシュに対してデータの読み書きを行うにはプロセス間通信が必要となり、この通信の負荷等のために変換処理のための各プロセスの処理性能が低下する。
【００１３】
本発明は、プロセス間通信を行うことなく、並列動作する複数の変換モジュール間のキャッシュ効率の低下を防ぐことを目的とする。
【課題を解決するための手段】
【００１４】
請求項１に係る発明は、ページ記述言語で記述された複数の処理単位からなる印刷文書データをビットマップ画像形式又は中間言語形式の印刷画像データに変換するための変換処理を行う変換モジュールを、プロセスとして起動する変換モジュール起動手段、を備え、前記変換モジュールは、前記印刷文書データの前記処理単位をビットマップ画像形式又は中間言語形式の印刷画像データに変換するための変換処理スレッドを複数起動するスレッド起動手段と、前記印刷文書データの前記各処理単位を、前記スレッド起動手段により起動された前記各変換処理スレッドに対して割り当て、処理させる割当手段と、前記各変換処理スレッドにより共有される共有キャッシュと、を備え、前記各変換処理スレッドは、割り当てられた前記処理単位に含まれるオブジェクトのビットマップ画像形式又は中間言語形式への変換結果が前記共有キャッシュに記憶されている場合には、前記オブジェクトを変換して前記変換結果を得る代わりに、前記共有キャッシュに記憶された変換結果を取得する、ことを特徴とする印刷文書変換装置である。
【００１５】
請求項２に係る発明は、前記印刷文書データの前記処理単位をビットマップ画像形式又は中間言語形式の印刷画像データに変換するための変換処理プロセスを複数起動し、前記印刷文書データの前記各処理単位を、前記変換処理プロセス起動手段により起動された前記各変換処理プロセスに対して割り当てて処理させる割当プロセスを起動し、前記各変換処理プロセスにより共有される第２の共有キャッシュを管理するキャッシュ管理プロセスを起動し、前記各変換処理プロセスが、前記キャッシュ管理プロセスとプロセス間通信を行い、割り当てられた前記処理単位に含まれるオブジェクトのビットマップ画像形式又は中間言語形式への変換結果が前記第２の共有キャッシュに記憶されている場合には、前記オブジェクトを変換して前記変換結果を得る代わりに、前記第２の共有キャッシュに記憶された変換結果をプロセス間通信により取得する第１モード処理を行う第１モード処理手段と、変換処理の対象である前記印刷文書データが、キャッシュ操作コマンドを含んだ第１のページ記述言語で記述されているか、キャッシュ操作コマンドを含まない第２のページ記述言語で記述されているかを判別する判別手段と、前記印刷文書データが前記第１のページ記述言語で記述されていると判別された場合は前記第１モード処理手段を動作させ、前記印刷文書データが前記第２のページ記述言語で記述されていると判別された場合は前記変換モジュール起動手段を動作させる動作制御手段と、を更に備える請求項１に記載の印刷文書変換装置である。
【００１６】
請求項３に係る発明は、コンピュータを、ページ記述言語で記述された複数の処理単位からなる印刷文書データをビットマップ画像形式又は中間言語形式の印刷画像データに変換するための変換処理を行う変換モジュールを、プロセスとして起動する変換モジュール起動手段、として機能させるためのプログラムであって、前記変換モジュールは、前記印刷文書データの前記処理単位をビットマップ画像形式又は中間言語形式の印刷画像データに変換するための変換処理スレッドを複数起動するスレッド起動手段と、前記印刷文書データの前記各処理単位を、前記スレッド起動手段により起動された前記各変換処理スレッドに対して割り当て、処理させる割当手段と、前記各変換処理スレッドにより共有される共有キャッシュと、を備え、前記各変換処理スレッドは、割り当てられた前記処理単位に含まれるオブジェクトのビットマップ画像形式又は中間言語形式への変換結果が前記共有キャッシュに記憶されている場合には、前記オブジェクトを変換して前記変換結果を得る代わりに、前記共有キャッシュに記憶された変換結果を取得する、ことを特徴とするプログラムである。
【発明の効果】
【００１７】
請求項１又は３に係る発明によれば、並列動作する複数の変換処理スレッドは、共有キャッシュにある他の変換処理スレッドの変換結果を取得して用いることができると共に、共有キャッシュの利用のためにプロセス間通信を行う必要がない。
【００１８】
請求項２に係る発明によれば、マルチスレッド処理に適さない、キャッシュ操作コマンドを含んだページ記述言語で記述された印刷文書データも、並列処理することができる。
【図面の簡単な説明】
【００１９】
【図１】実施形態の装置が実装される印刷システムのハードウエア構成の一例を示す図である。
【図２】実施形態の装置が実装される、コントローラを複数備える印刷システムのハードウエア構成の別の一例を示す図である。
【図３】実施形態の印刷データ変換装置の概略構成を示す機能ブロック図である。
【図４】実施形態のシステムの機能構成の例を示す機能ブロック図である。
【図５】コントローラを複数備えるシステム例の機能ブロック図である。
【図６】図５のシステムに、複数のコントローラが共有する二次共有キャッシュを設けたシステム例を示す図である。
【図７】変形例の印刷データ変換装置の概略構成を示す機能ブロック図である。
【図８】並列処理のモード切り替え機能を備える印刷データ変換装置の例を示す機能ブロック図である。
【発明を実施するための形態】
【００２０】
以下、図面を参照して、本発明の実施形態を説明する。各図において、互いに同一又は類似の構成要素には、同一の符号を付す。
【００２１】
まず、図１を参照して、実施形態の装置が実装されるシステムの一例を説明する。このシステムは、印刷データ変換装置１００，ホストコンピュータ１４０，印刷制御装置１６０及びプリンタエンジン１７０を備える。
【００２２】
印刷データ変換装置１００は、ＰＤＬで記述された印刷文書データを、プリンタエンジン１７０が取扱可能なラスター画像等の印刷画像データに変換する装置である。ホストコンピュータ１４０は、ＬＡＮ（ローカルエリアネットワーク）１３０等のネットワークを介して印刷データ変換装置１００に対して印刷文書データを送り、その印刷文書データの印刷を指示する。
【００２３】
印刷データ変換装置１００は、コントローラ１１０を備える。コントローラ１１０は、ローカルバス１２２を介して相互に通信可能に接続された通信制御部１１２，マルチＣＰＵ１１４，ローカルメモリ１１６，二次記憶装置１１８，及び通信制御部１２０を備える。通信制御部１１２は、ＬＡＮ１３０を介してホストコンピュータ１４０とデータ通信を行う装置である。通信制御部１１２は、例えば、ホストコンピュータ１４０から印刷指示及び印刷文書データを受信したり、印刷制御のための情報をホストコンピュータ１４０との間でやりとりしたりする。マルチＣＰＵ１１４は、複数のＣＰＵコアを搭載したプロセッサパッケージである。ローカルメモリ１１６は、マルチＣＰＵ１１４の各ＣＰＵコアが例えば作業用領域として使用する一次記憶であり、例えばランダムアクセスメモリなどから構成されている。二次記憶装置１１８は、ハードディスク装置又はＥＥＰＲＯＭ(Electrically Erasable Programmable Read Only Memory)などの比較的大容量の不揮発性記憶装置であり、マルチＣＰＵ１１４が実行するプログラムや、ホストコンピュータ１４０から受信した印刷文書データなどを記憶する。後述する実施形態の機能モジュールを記述した制御プログラムが、例えばこの二次記憶装置１１８に記憶され、マルチＣＰＵ１１４により実行される。制御プログラムのうちの一部は、マルチＣＰＵ１１４の複数のＣＰＵコアにより並列実行可能となっている。マルチＣＰＵ１１４は、制御プログラムを実行することにより、印刷文書データを各ページの印刷画像データへと変換する。通信制御部１２０は、システム内ネット１５０と呼ぶネットワークを介して印刷制御装置１６０とデータ通信を行う装置である。この例では、印刷データ変換装置１００と印刷制御装置１６０（及びプリンタエンジン１７０）とはシステム内ネット１５０を介して相互接続されることで１つの印刷システムを構成している。マルチＣＰＵ１１４の処理により生成された各ページの印刷画像データは、通信制御部１２０及びシステム内ネット１５０を介して印刷制御装置１６０に送信される。
【００２４】
図示は省略したが、コントローラ１１０は、色空間変換、又は画像の拡大・縮小、又は画像回転等といった画像処理を高速に実行するグラフィックアクセラレータなどのコプロセッサを備えていてもよい。この場合、例えば、マルチＣＰＵ１１４で実行されるＲＩＰ処理プログラム（後述するＲＩＰモジュール３００）は、このコプロセッサに画像処理又は数値演算処理などを依頼し、その処理結果を受け取ってページ画像データの作成に用いる。
【００２５】
プリンタエンジン１７０は、印刷画像データが表す画像をインクやトナーなどの色材を用いて用紙に対して印刷する印刷ハードウエアである。印刷制御装置１６０は、プリンタエンジン１７０を制御する装置であり、通信制御部１６２，ページ制御部１６４及びエンジン制御部１６６を備える。通信制御部１６２は、システム内ネット１５０を介して印刷データ変換装置１００と通信し、各ページの印刷画像データを受信したり、印刷制御のために必要な各種の制御情報をやりとりしたりする。ページ制御部１６４は、受信された各ページの印刷画像データを蓄積し、印刷順序に従ってエンジン制御部１６６に送る。エンジン制御部１６６は、受け取ったページの印刷画像データをプリンタエンジン１７０に供給する。プリンタエンジン１７０は、受け取った印刷画像データを用紙に印刷する。
【００２６】
図２に、実施形態の装置が実装されるシステムの別の例を示す。図２の例では、印刷データ変換装置１００が複数のコントローラ１１０を備えており、それら複数のコントローラ１１０が印刷文書データに含まれる複数のページの変換処理を分担して並列的に実行する。この例では、複数のコントローラ１１０のうちの１台がメインコントローラ１１０Ｍであり、ホストコンピュータ１４０からの印刷文書データを通信制御部１１２により受信し、その印刷文書データのうちの各ページをｎ個のサブコントローラ１１０Ｓ１〜１１０Ｓｎに対して割り当てる制御を行う。このページ割り当てのための機能モジュールを備える以外は、メインコントローラ１１０Ｍは図１の例のコントローラ１１０と同様のハードウエア及びソフトウエアを備えていればよい。サブコントローラ１１０Ｓ１〜１１０Ｓｎは、ホストコンピュータ１４０との通信のための機構（例えば通信制御部１１２）を必要としない点を除けば、メインコントローラ１１０Ｍと同様のハードウエア及びソフトウエアを備えていればよい。１つの実装例では、メインコントローラ１１０Ｍは、印刷データ変換装置１００を構成するコンピュータ装置のマザーボードであり、各サブコントローラ１１０Ｓ１〜１１０Ｓｎは、そのマザーボードに接続可能な増設ボードである。この実装例では、印刷データ変換装置１００はスケーラブルであり、増設するサブコントローラの数により印刷データ変換装置１００の処理速度を変更できる。
【００２７】
この図２の例でも、各コントローラ１１０Ｍ，１１０Ｓ１〜１１０Ｓｎは画像処理等のためのコプロセッサを搭載していてもよい。
【００２８】
次に、図３を参照して、実施形態の印刷データ変換装置１００の機能モジュール構成の一例を説明する。図３に例示する機能モジュール構成は、コントローラ１１０のマルチＣＰＵ１１４が制御プログラムを実行することにより実現される。
【００２９】
図３において、ＲＩＰモジュール制御部２００は、ＲＩＰモジュール３００を起動するための制御を行う。この例では、ＲＩＰモジュール制御部２００は、ＲＩＰモジュール３００を１つのプロセスとして起動する。ＲＩＰモジュール制御部２００は、例えば、制御プログラム中のプログラムコードをＣＰＵが実行することにより実現されるものである。このプログラムコードは、例えば、プロセスを生成し、そのプロセスにてＲＩＰモジュール３００を表す関数を呼び出す処理を表すものでよい。
【００３０】
システム制御情報２１０は、ＲＩＰモジュール制御部２００が制御に用いる制御情報であり、例えばＲＩＰモジュール３００内で起動するページ変換処理スレッド３１２の数Ｎなどの情報を含んでいる。数Ｎは、生成したＲＩＰモジュール３００に対してＲＩＰモジュール制御部２００が与えてもよいし、生成されたＲＩＰモジュール３００がシステム制御情報２１０を参照して取得してもよい。
【００３１】
印刷文書格納部２２０は、ホストコンピュータ１４０から受信されたＰＤＬの印刷文書データを格納する。この例では、格納される印刷文書データは、ページ独立、かつ、キャッシュを操作するコマンドを含まないＰＤＬ（例えばＰＤＦ）で記述されたデータである。ここで、ページ独立とは、ページの印刷画像データを記述する情報が当該ページについてのＰＤＬデータのみで表されており、他のページについてのＰＤＬデータに依存しないことをいう。なお、ＰｏｓｔＳｃｒｉｐｔは、ページ独立でない（ページ非独立）ＰＤＬであり、キャッシュを操作するコマンドを含んでいる。
【００３２】
ＲＩＰモジュール３００は、印刷文書データをラスター画像等の印刷画像データに変換するＲＩＰ処理を担うソフトウエアモジュールである。この実施形態では、ＲＩＰモジュール３００は、ＲＩＰモジュール制御部２００によりマルチＣＰＵ１１４上で１つのプロセスとして起動され、実行される。しかし、この１プロセスのＲＩＰモジュール３００は、内部で複数のページ変換処理スレッド３１２−１，３１２−２，…３１２−Ｎを走らせ、それら各スレッドにより複数のページを並列的にＲＩＰ処理する。
【００３３】
このためにＲＩＰモジュール３００は、スレッド制御部３１０，ページ割り当て部３１４を含む。スレッド制御部３１０は、システム制御情報２１０に規定される数Ｎに従い、Ｎ個のページ変換処理スレッド３１２−１，３１２−２，…３１２−Ｎ（以下、区別する必要がない場合はページ変換処理スレッド３１２と総称する）を起動する。例えば、マルチＣＰＵ１１４の各ＣＰＵコアにてそれぞれ１つのページ変換処理スレッド３１２を走らせ、各スレッド３１２がそれぞれ１つのＣＰＵコアを占有してＲＩＰ処理を実行するようにしてもよい。これに限らず、いずれか１つ以上のＣＰＵコアが、２以上のスレッド３１２を実行するようにしてもよい。なお、スレッド制御部３１０やページ割り当て部３１４は、マルチＣＰＵ１１４内のいずれかのＣＰＵコアにて実行される。
【００３４】
ページ割り当て部３１４は、各ページ変換処理スレッド３１２に対して、印刷文書データのうちのそれぞれ異なるページを割り当てる。割り当ての仕方は特に限定されない。例えば、ページ変換処理スレッド３１２の番号に従って先頭ページから順に固定的に割り当てる方式でもよいし、ページの変換処理が終了したスレッド３１２から順に動的にページを割り当てる方式でもよい。ページのこの割り当ては、ページ割り当て部３１４からページ変換処理スレッド３１２に対して、例えば、割り当て対象のページ番号を通知することにより行えばよい。
【００３５】
ページ変換処理スレッド３１２は、印刷文書格納部２２０に格納された印刷文書データのうち、ページ割り当て部３１４から指定されたページの部分のデータを印刷画像データへと変換する。すなわち、ページ変換処理スレッド３１２は、指定されたページのＰＤＬデータを先頭から順に解釈し、ページメモリ上に描画（ラスタライズ）することで、そのページの印刷画像データを生成する。なお、ＰＤＦフォーマットの印刷文書データの場合、その文書が含む各ページのＰＤＬデータのインデックス情報を含んでいる。各ページ変換処理スレッド３１２は、印刷文書格納部２２０に格納された印刷文書データ内のそのインデックス情報を参照することで、ページ割り当て部３１４から指定されたページ番号に対応するページのＰＤＬデータを取得すればよい。
【００３６】
ページ変換処理スレッド３１２は、ＰＤＬデータをページの先頭から順に解釈していく中で、フォント、イメージ、フォームなどの画像オブジェクトを描画する描画コマンドを検出すると、その描画コマンドに対応する描画処理を実行する前に、その画像オブジェクトが共有キャッシュ３２０内にキャッシュされているかどうかを共有キャッシュ管理部３２２に問い合わせる。共有キャッシュ管理部３２２は、問い合わせられた画像オブジェクトの変換結果（印刷画像データ）がフォント、イメージ、フォーム等の各共有キャッシュ３２４ａ、３２４ｂ、３２４ｃにキャッシュされているかどうかを調べる。
【００３７】
この結果、キャッシュされていればその変換結果データをページ変換処理スレッド３１２に返す。この場合、ページ変換処理スレッド３１２は、共有キャッシュ管理部３２２から返された印刷画像データをその画像オブジェクトに対応する画像としてページ画像メモリ（図示省略）上に書き込む。この場合、ページ変換処理スレッド３１２は描画コマンドを実行しなくてよい。
【００３８】
一方、描画しようとする画像オブジェクトが共有キャッシュ３２０内にキャッシュされていない場合は、共有キャッシュ管理部３２２はその旨をページ変換処理スレッド３１２に返す。この返信を受けたページ変換処理スレッド３１２は、その描画コマンドを実行することで、ＰＤＬで記述されたその画像オブジェクトを印刷画像データへと変換し、ページ画像メモリ上に書き込む。そして、ページ変換処理スレッド３１２は、変換結果の画像データをその画像オブジェクトの識別情報と対応づけてキャッシュするよう、共有キャッシュ管理部３２２に依頼する。画像オブジェクトの識別情報としては、例えば、その画像オブジェクトの属性情報（例えば、オブジェクト種類、データサイズ等の組。これは例えば当該オブジェクトの描画を指示する描画コマンドとのその引数により表される）のハッシュ値などを用いることができるが、これに限定されるものではない。ページ変換処理スレッド３１２から共有キャッシュ管理部３２２への問合せは、例えばこの識別情報を提示することにより行う。共有キャッシュ管理部３２２は、問い合わせられた識別情報をキーとして共有キャッシュ３２４ａ、３２４ｂ、３２４ｃを検索すればよい。
【００３９】
ページ変換処理スレッド３１２は、例えば、スレッド制御部３１０がスレッドを起動し、このスレッドにて上述のような機能を記述した関数（プログラム）を呼び出すことにより実現される。
【００４０】
なお、コントローラ１１０がグラフィックアクセラレータ等のコプロセッサを搭載している態様では、ページ変換処理スレッド３１２がその処理の中の一部（例えば色空間変換等の画像処理）をコプロセッサに依頼してもよい。
【００４１】
共有キャッシュ管理部３２２は、共有キャッシュ３２４ａ、３２４ｂ、３２４ｃを管理するモジュールであり、ページ変換処理スレッド３１２からの要求に応じてそれら共有キャッシュに対してデータを読み書きする。共有キャッシュ管理部３２２は、ＲＩＰモジュール３００内に、例えばスレッド又はライブラリルーチンとして実装される。なお、図示例では、検索性の向上などのために共有キャッシュをフォント、イメージ、フォームといったオブジェクトの種類ごとに分けて管理しているが、他の管理の仕方も考えられる。
【００４２】
各ページ変換処理スレッド３１２（及び共有キャッシュ管理部３２２）は、１つのプロセスであるＲＩＰモジュール３００内のスレッド（又はライブラリルーチン）であるためメモリ空間を共有しているので、プロセス間通信を行うことなく、共有キャッシュ３２４ａ、３２４ｂ、３２４ｃを介してキャッシュデータを共有できる。
【００４３】
各ページ変換処理スレッド３１２は、１ページ分のＰＤＬデータの変換処理を終えると、ページ画像メモリ上に形成された当該ページの印刷画像データを印刷制御装置１６０（図３では省略）経由でプリンタエンジン１７０に供給する。
【００４４】
以上に説明したように、この実施形態では、共有キャッシュ３２０には全てのページ変換処理スレッド３１２が担当したページ内のオブジェクトの変換結果データがキャッシュされ、それらキャッシュされたデータが全てのページ変換処理スレッド３１２で再利用されるので、キャッシュの利用効率がよい。また、各ページ変換処理スレッド３１２が共有キャッシュ３２０に変換結果をキャッシュしたり、共有キャッシュ３２０はそれら複数のページ変換処理スレッド３１２とメモリ空間を共有しているので、共有キャッシュ３２０にデータをキャッシュしたりキャッシュされたデータを取得したりするのに、ＣＰＵ負荷の大きいプロセス間通信を行わなくてよい。
【００４５】
次に、図４を参照して、システム全体の構成の一例を説明する。
【００４６】
この例では、印刷データ変換装置１００は、ホストコンピュータ１４０から印刷文書データを受信する印刷文書受信部２３０を備える。また、プロセスとして起動されるＲＩＰモジュール３００は、ページ検出部３１６を備える。ページ検出部３１６は、印刷文書格納部２２０に格納された印刷文書データを構成する各ページを検出し、ページ割り当て部３１４に通知する。ページの検出は、例えば印刷文書データがＰＤＦ形式の場合、印刷文書データに含まれるページのインデックス情報を参照して行えばよい。ページ割り当て部３１４は、ページ検出部３１６から通知された各ページの番号を、各ページ変換処理スレッド３１２に対して指示する。他の機能モジュールの動作は、図３の例の場合と同様である。図４では、システム制御情報２１０や通信制御部１６２の図示を省略しているが、ＲＩＰモジュール３００や印刷制御装置１６０はそれらのモジュールを備えている。
【００４７】
次に、図５を参照して、複数のコントローラを備える印刷データ変換装置の機能構成の例を説明する。
【００４８】
この例では、印刷データ変換装置は３つのコントローラ１〜３を備える。コントローラの数が３個なのはあくまで一例に過ぎない。印刷データ変換装置は、２個又は４個以上のコントローラを備えていてもよい。
【００４９】
ここで、一例として、コントローラ１はそれぞれ図２に例示したメインコントローラ１１０Ｍに該当し、残りの２つのコントローラ１，２，３はサブコントローラ１１０Ｓ１〜１１０Ｓｎに該当するとする。各コントローラ１〜３のマルチＣＰＵは、ＲＩＰモジュール制御部２００−１〜２００−３、及びＲＩＰモジュール３００−１〜３００−３をそれぞれ実行する。ＲＩＰモジュール制御部２００−１〜２００−３、及びＲＩＰモジュール３００−１〜３００−３は、図３又は図４に例示したＲＩＰモジュール制御部２００及びＲＩＰモジュール３００と同様の機能モジュールを備える。
【００５０】
印刷文書格納部２２０及び印刷文書受信部２３０は、メインコントローラ１のみが備えていればよい。また、メインコントローラ１は、ページ検出部２４０及びページ指示部２４２を有する。ページ検出部２４０は、前述したＲＩＰモジュール３００内のページ検出部３１６（図４参照）と同様、印刷文書格納部２２０に格納された印刷文書データを構成する各ページを検出する。ページ指示部２４２は、前述したＲＩＰモジュール３００内のページ割り当て部３１４（図４参照）と同様、ページ検出部２４０が検出した各ページを、それぞれ各コントローラ１〜３に割り当てる。すなわち、検出したページの識別情報（例えばページ番号）をコントローラ１〜３のページ待ち行列２０２−１〜２０２−３に送る、コントローラ１〜３へのページの割り当ての仕方は、コントローラ１〜３の番号に従って先頭ページから順に固定的に割り当てる方式でもよいし、各コントローラ１〜３のページ待ち行列２０２−１〜２０２−３に空きができるごとにその空いた待ち行列にページ識別情報を動的に割り当てる方式でもよい。また、ページ指示部２４２は、ページ待ち行列２０２−１〜２０２−３のうち、保持するページの数が最も少ないものから優先的にページを割り当てるようにしてもよい。
【００５１】
各コントローラ１〜３は、ページ指示部２４２から指示される処理対象ページの識別情報（例えばページ番号）を保持するページ待ち行列２０２−１〜２０２−３をそれぞれ有する。ページ待ち行列２０２−１〜２０２−３は、それぞれあらかじめ定められた数のページ識別情報を先入れ先出し方式で保持する。
【００５２】
各コントローラ１〜３内のページ割り当て部３１４−１〜３１４−３は、対応するページ待ち行列２０２−１〜２０２−３の先頭から順にページ識別情報を取得し、各ページ変換処理スレッドに割り当てていく。
【００５３】
このように、図５の例は、メインコントローラ１により実行されるページ指示部２４２が、各コントローラ１〜３のＲＩＰモジュール３００−１〜３００−３にページを分配し、各ＲＩＰモジュール３００−１〜３００−３内のページ割り当て部３１４−１〜３１４−３がそれら割り当てられたページを当該モジュール内の複数のページ変換処理スレッドに分配するという２段階構成を採っている。なお、この構成では、印刷文書データが含む各ページはページ検出部２４０により検出済なので、各ＲＩＰモジュール３００−１〜３００−３内のページ検出部３１６−１〜３１６−３の機能は使用しない。したがって、図５の構成の場合は、ＲＩＰモジュール３００−１〜３００−３はページ検出部３１６−１〜３１６−３を有しなくてもよい。また、ＲＩＰモジュール３００−１〜３００−３が有するページ検出部３１６−１〜３１６−３の機能を無効化する設定を行ってもよい。
【００５４】
なお、図５に示した２段階構成は、コントローラを１つしか用いない場合にも適用可能である。
【００５５】
また、図５の構成では、コントローラ内のページ待ち行列２０２−１〜２０２−３をＲＩＰモジュール３００−１〜３００−３の外に設けたが、ページ待ち行列２０２−１〜２０２−３はＲＩＰモジュール３００−１〜３００−３の中に設けてもよい。
【００５６】
なお、図５の構成に関する以上の説明では、印刷文書格納部２２０及び印刷文書受信部２３０は、コントローラ１が備えていたが、これは一例に過ぎない。この代わりに、例えば、印刷データ変換装置全体を制御するマザーボード上のＣＰＵが印刷文書格納部２２０及び印刷文書受信部２３０を管理し、そのマザーボード上に増設された各コントローラ１〜３に各ページを分配する構成でもよい。
【００５７】
図示は省略したが、図５の構成では、各コントローラ１〜３内の個々のＲＩＰモジュール３００−１〜３００−３内の共有キャッシュ３２０は、それぞれ当該モジュール内の複数のページ変換処理スレッド３１２により共有される。したがって、各コントローラ１〜３内で走る各ページ変換処理スレッド３１２は、他のコントローラ内の共有キャッシュ３２０内にあるオブジェクトは利用できない。そこで、図６に示すように、各コントローラ１〜３が共有する二次共有キャッシュ２５０を設けてもよい。二次共有キャッシュ２５０を管理する二次共有キャッシュ管理部２５２は、コントローラ１〜３のいずれかのＣＰＵ又は印刷データ変換装置のメインＣＰＵにて、プロセスとして実行される。各コントローラ１〜３のＲＩＰモジュール３００−１〜３００−３内の共有キャッシュ管理部３２２−１〜３２２−３は、ページ変換処理スレッド３１２から問い合わせられたオブジェクトが自分の管理する共有キャッシュ３２０内にない場合には、そのオブジェクトの有無を二次共有キャッシュ管理部２５２に問い合わせる。二次共有キャッシュ２５０内にそのオブジェクトがあれば、二次共有キャッシュ管理部２５２がそのオブジェクトを問合せ元の共有キャッシュ管理部３２２に供給する。また、共有キャッシュ管理部３２２−１〜３２２−３は、ページ変換処理スレッド３１２からオブジェクトの変換結果のデータのキャッシュを要求された場合は、その変換結果データを自分の管理する共有キャッシュ３２０にキャッシュすると共に、同じ変換結果データをライトスルー方式又はライトバック方式で二次共有キャッシュ管理部２５２に送ってキャッシュさせる。
【００５８】
次に、図７を参照して、実施形態の変形例を説明する。
【００５９】
図７の変形例では、図３〜図６の例におけるページ変換処理スレッド３１２を、構文解析スレッド３３０と描画実行処理スレッド３３４とに分割している。すなわち、ページ変換処理スレッド３１２は、ＰＤＬデータを構文解析（パーズ）してディスプレイリストなどの中間言語データに変換する処理と、その中間言語データを用いてラスター画像を描画する処理の両方を行っていたが、この変形例では、構文解析と描画処理とを別々のスレッドに分けている。
【００６０】
１つの構文解析スレッド３３０に対して複数の描画実行処理スレッド３３４（図示例では２つ）を走らせるようにしてもよい。スレッド制御部３１０が起動する構文解析スレッド３３０の数Ｎと、１つの構文解析スレッド３３０に対して起動する描画実行処理スレッド３３４の数は、システム制御情報２１０に設定しておけばよい。
【００６１】
この変形例では、構文解析はページ単位で行い、描画処理はバンド分割で行ってもよい。すなわち、構文解析スレッド３３０が１ページの構文解析を実行し、これに対応する各描画実行処理スレッド３３４が、そのページの中の各バンドの描画処理を実行するようにしてもよい。例えば、構文解析スレッド３３０は、ＰＤＬデータをバンドごとの中間言語データ３３２を生成し、各描画実行処理スレッド３３４はそのバンドごとの中間言語データを読み込んで描画を実行すればよい。なお、バンドとは、ページを副走査方向にあらかじめ定められたライン数ずつ区切った帯状の領域である。１つの構文解析スレッド３３０に対応する描画実行処理スレッド３３４の数と、１ページのバンド分割数とは対応していなくてよい。例えば１ページを８つのバンドに分割し、それら８つのバンドを２つの描画実行処理スレッド３３４で並列的に順番に処理していってもよい。描画実行処理スレッド３３４は、中間言語データ３３２の描画処理の一部又は全部をグラフィックアクセラレータなどのコプロセッサに依頼してもよい。
【００６２】
図７の変形例では、共有キャッシュ３２０は、ＲＩＰモジュール３００内の全ての構文解析スレッド３３０及び全ての描画実行処理スレッド３３４により共有される。すなわち、共有キャッシュ３２０には、ＰＤＬの変換結果である中間言語データと、中間言語データの変換結果である印刷画像データとがキャッシュされる。共有キャッシュ３２０には、構文解析スレッド３３０により、例えば、ＰＤＬのコマンドが規定する画像オブジェクトの識別情報に対応づけてそのオブジェクトを表す中間言語データが登録される。また、共有キャッシュ３２０には、描画実行処理スレッド３３４により、例えば、中間言語データのコマンドが規定する画像オブジェクトの識別情報に対応づけてそのオブジェクトの印刷画像データが登録される。構文解析スレッド３３０は、あるオブジェクトを表すＰＤＬデータを解析する前に、まず共有キャッシュ３２０に同じオブジェクトの中間言語データがあるかどうかを問い合わせ、あればその中間言語データを読み出して用いる。描画実行処理スレッド３３４も同様に、あるオブジェクトの印刷画像データが共有キャッシュ３２０内にあれば、描画処理を行う代わりに、キャッシュされたその印刷画像データを読み出して使用する。
【００６３】
以上の実施形態及び変形例は、印刷文書データが、キャッシュ操作コマンドを含まないＰＤＬ（例えばＰＤＦ）により記述されている場合の例である。一方、印刷文書データがキャッシュ操作コマンドを含むＰｏｓｔＳｃｒｉｐｔなどのＰＤＬで記述されている場合、印刷データ変換装置１００は、１プロセスのＲＩＰモジュール３００の中に複数のページ変換処理スレッド３１２を実行する上述の方式の代わりに、図８に示すように、ＲＩＰモジュール３０２を複数実行する方式を採用する。各ＲＩＰモジュール３０２は、上述の例におけるページ変換処理スレッド３１２と同様、割り当てられたページのＰＤＬデータを印刷画像データに変換するものであり、上述の例のＲＩＰモジュール３００が備えるスレッド制御部３１０及びページ割り当て部３１４等は含まない。上述の例のページ変換処理スレッド３１２と図８の例におけるＲＩＰモジュール３０２との相違点は、前者がスレッドとして実行されるのに対し、後者がプロセスとして実行される点である。したがって、各ＲＩＰモジュール３０２は互いに異なるメモリ空間にて処理を実行する。
【００６４】
印刷文書格納部２２０、印刷文書受信部２３０の機能は、上述の例（例えば図３〜図５を参照）と同様でよい。印刷文書データがＰｏｓｔＳｃｒｉｐｔなどのページ非独立のＰＤＬで記述されている場合、ページ検出部２４０は、その印刷文書データを先頭から順に空読み（描画処理などは行わず、ページの区切りの検出に必要な構文解析などのみを行う処理）してページを検出する。また、ページ検出部２４０は、このような解析を行わず、単にページ番号を生成し、ページ指示部２４２に与えてもよい。ページ指示部２４２は、ページ検出部２４０が検出したページを、各ＲＩＰモジュール３０２に割り当てる。
【００６５】
印刷文書データがページ非独立のＰＤＬで記述されている場合、一つの例では、各ＲＩＰモジュール３０２は、それぞれその印刷文書データを先頭から順に構文解析し、その解析結果に応じて自分の内部状態（例えば、描画の環境や条件を規定する変数や、保持しているフォント等の印刷リソース）を更新していく。このとき、各ＲＩＰモジュール３０２は、自分に割り当てられたページ以外のページについては描画処理は行わず、構文解析のみを実行する。そして、ページ指示部２４２から割り当てられたページについては、そのような構文解析だけでなく、描画処理も実行する。なお、各ＲＩＰモジュール３０２は、自分に割り当てられたページ以外のページについての構文解析を、当該モジュールの内部状態を変更するＰＤＬコマンドについてのみ実行するようにしてもよい（例えば、本出願人による特開２００８−０１５６０５号公報の段落００４３参照）。
【００６６】
図示は省略したが、各ＲＩＰモジュール３０２は、それぞれ自分自身のメモリ空間内に当該モジュール３０２固有の一次キャッシュを有していてもよい。例えば印刷文書データ内にキャッシュを操作するコマンドが含まれていたとしても、そのコマンドは個々のＲＩＰモジュール３０２内の固有の一次キャッシュを操作するだけであり、他のＲＩＰモジュール３０２内の一次キャッシュには影響を及ぼさない。
【００６７】
ここで複数のＲＩＰモジュール３０２が並列動作する場合、順番が後のページが前のページよりも先に処理される場合がある。このような場合、例えば仮に順番が前のページを処理するＲＩＰモジュール３０２が後のページの処理結果を反映したキャッシュを参照すると、正しいＲＩＰ処理が実行できなくなる。しかし、図８の例では各ＲＩＰモジュール３０２は自分の一次キャッシュを参照するので、そのような問題は生じない。
【００６８】
また、図８の例では、印刷データ変換装置１００内に、それら複数のＲＩＰモジュール３０２により共有される共有キャッシュ３５４ａ、３５４ｂ、３５４ｃを設けてもよい。図示の例では、フォント用、イメージ用、及びフォーム用にそれぞれ共有キャッシュ３５４ａ、３５４ｂ、及び３５４ｃを設けているが、このようにキャッシュを分割管理することは必須ではない。これら共有キャッシュ３５４ａ〜３５４ｃは、各ＲＩＰモジュール３０２内の一次キャッシュから見れば、二次（レベル２）キャッシュである。
【００６９】
これら共有キャッシュ３５４ａ〜３５４ｃは、共有キャッシュ管理プロセス３５２により管理される。各ＲＩＰモジュール３０２は、ＰＤＬデータ内のオブジェクトを印刷画像に変換する際、自モジュール３０２内の一次キャッシュにそのオブジェクトの変換結果がキャッシュされているかどうかを調べ、キャッシュされている場合には、そのオブジェクトのＰＤＬデータを変換（ＲＩＰ処理）する代わりに、キャッシュされている変換結果を用いる。また、そのオブジェクトの変換結果が一次キャッシュにキャッシュされていない場合は、ＲＩＰモジュール３０２は、共有キャッシュ３５４ａ〜３５４ｃにそのオブジェクトの変換結果がキャッシュされているかを、プロセス間通信により共有キャッシュ管理プロセス３５２に問い合わせる。そして、キャッシュされていれば、キャッシュされている変換結果を取得して利用する。また、そのオブジェクトの変換結果が共有キャッシュ３５４ａ〜３５４ｃにもキャッシュされていない場合は、ＲＩＰモジュール３０２はそのオブジェクトの変換を実行し、変換結果を一次キャッシュ及び共有キャッシュ３５４ａ〜３５４ｃにキャッシュする。
【００７０】
ここで、ＰｏｓｔＳｃｒｉｐｔの場合、同じ描画コマンドを実行しても、その描画コマンドが実行される時のＲＩＰモジュール３０２の内部状態が異なれば、生成される画像は異なったものとなる（あるいは適切な内部状態でない場合には描画できなくなる）。このため、ＲＩＰモジュール３０２があるオブジェクトを変換しようとする時に、一次キャッシュ又は共有キャッシュ３５４ａ〜３５４ｃにそのオブジェクトの変換結果がキャッシュされていたとしても、現時点（当該オブジェクトを変換しようとする時点）でのＲＩＰモジュール３０２の内部状態が、キャッシュされた変換結果が生成された時点でのＲＩＰモジュール３０２の内部状態と異なっていれば、キャッシュされた変換結果を用いたのでは正しい画像が生成できない。
【００７１】
そこで、図８の例では、一次キャッシュ及び共有キャッシュ３５４ａ〜３５４ｃにキャッシュする変換結果データは、その変換結果データが生成された時点のＲＩＰモジュール３０２の内部状態を反映した識別情報と対応づけて、それらキャッシュに登録する。例えば、そのオブジェクトの描画を指示するコマンドやその引数だけでなく、そのコマンドの実行時点でのＲＩＰモジュールの内部状態も含んだ情報のハッシュをとるなどの方法で生成する。そして、ＲＩＰモジュール３０２は、ＰＤＬデータ内のオブジェクトを印刷画像データに変換する時に、そのオブジェクトの描画を指示するコマンド及びその引数、その時点のＲＩＰモジュールの内部状態から識別情報を生成し、その識別情報に対応する変換結果を一次キャッシュ又は共有キャッシュから探せばよい。
【００７２】
そして、図８の例では、モード判別部２０４が、ホストコンピュータ１４０から受信した印刷文書データが、キャッシュ操作コマンドを含んだＰＤＬで記述されたものか否かを判別する。すなわち、モード判別部２０４は、その印刷文書データが、ＰｏｓｔＳｃｒｉｐｔのデータか（キャッシュ操作コマンドあり）、ＰＤＦのデータ（キャッシュ操作コマンドなし）かを判別する。この判別は、例えば、印刷文書データのファイル識別子やヘッダ情報などに基づき行えばよい。そして、印刷文書データが、キャッシュ操作コマンドを含んだＰＤＬで記述されたものであると判別された場合、ＲＩＰモジュール制御部２００は、第１モードとして、図８に例示するように、複数のＲＩＰモジュール３０２をそれぞれプロセスとして起動する。一方、印刷文書データが、キャッシュ操作コマンドを含まないＰＤＬで記述されたものであると判別された場合は、ＲＩＰモジュール制御部２００は、第２モードとして、例えば図４に例示するように、ＲＩＰモジュール３００をプロセスとして起動し、そのＲＩＰモジュール３００の中で複数のページ変換処理スレッド３１２−１〜３１２−Ｎを起動する。このように、並列処理のモード切り替え機能を持たせることで、印刷データ変換装置１００は、キャッシュ操作コマンドを含むＰＤＬで記述された印刷文書データも、キャッシュ操作コマンドを含まないＰＤＬで記述された印刷文書データも、共に取扱可能となる。
【００７３】
以上の各例では、ページ変換処理スレッド３１２及びＲＩＰモジュール３０２に対して、ページ単位で変換処理を割り当てたが、割り当ての単位はページに限られるものではなく、バンドなどといったページ以外の単位であってもよい。
【符号の説明】
【００７４】
１００  印刷データ変換装置、１１０  コントローラ、１４０  ホストコンピュータ、１６０  印刷制御装置、１７０  プリンタエンジン、２００  ＲＩＰモジュール制御部、２１０  システム制御情報、２２０  印刷文書格納部、２３０  印刷文書受信部、３００  ＲＩＰモジュール、３１２−１〜３１２−Ｎ  ページ変換処理スレッド、３１４  ページ割り当て部、３２０  共有キャッシュ、３２２  共有キャッシュ管理部。
【図１】
2011230470.tif 000003
【図２】
2011230470.tif 000004
【図３】
2011230470.tif 000005
【図４】
2011230470.tif 000006
【図５】
2011230470.tif 000007
【図６】
2011230470.tif 000008
【図７】
2011230470.tif 000009
【図８】
2011230470.tif 000010