(57)【特許請求の範囲】
【請求項１】
ページ記述言語で記述された印刷文書データをビットマップ画像形式のページ画像データに変換するためのソフトウエア変換処理を行う複数のソフトウエア変換手段であって、前記ソフトウエア変換処理のうちの特定の画像処理の実行を、前記特定の画像処理を実行するハードウエア画像処理装置に対して依頼し、この依頼に応じて前記ハードウエア画像処理装置が実行した画像処理の結果を含む前記ページ画像データを生成する複数のソフトウエア変換手段と、
前記複数のソフトウエア変換手段のうち少なくとも１つが前記ハードウエア画像処理装置による前記画像処理の完了を待つ状態が生じ得る場合に、前記ソフトウエア変換処理を行う追加のソフトウエア変換手段を起動する制御手段と、
を備え、
前記制御手段は、前記追加のソフトウエア変換手段の数を予め設定された上限を超えないように制御する、
ことを特徴とする印刷文書変換装置。
【請求項２】
前記上限より多い数の前記ソフトウエア変換手段を備える、
ことを特徴とする請求項１に記載の印刷文書変換装置。
【請求項３】
前記複数のソフトウエア変換手段の数は、前記ハードウエア画像処理装置の処理能力に基づいて定められる、
ことを特徴とする請求項１又は２に記載の印刷文書変換装置。
【請求項４】
コンピュータを、
ページ記述言語で記述された印刷文書データをビットマップ画像形式のページ画像データに変換するためのソフトウエア変換処理を行う複数のソフトウエア変換手段であって、前記ソフトウエア変換処理のうちの特定の画像処理の実行を、前記特定の画像処理を実行するハードウエア画像処理装置に対して依頼し、この依頼に応じて前記ハードウエア画像処理装置が実行した画像処理の結果を含む前記ページ画像データを生成する複数のソフトウエア変換手段、
前記複数のソフトウエア変換手段のうち少なくとも１つが前記ハードウエア画像処理装置による前記画像処理の完了を待つ状態が生じ得る場合に、前記ソフトウエア変換処理を行う追加のソフトウエア変換手段を起動する制御手段であって、前記追加のソフトウエア変換手段の数を予め設定された上限を超えないように制御する制御手段、
として機能させるためのプログラム。
【請求項５】
ページ記述言語で記述された印刷文書データをビットマップ画像形式のページ画像データに変換するためのソフトウエア変換処理を行う複数のソフトウエア変換手段であって、前記ソフトウエア変換処理のうちの特定の画像処理の実行を、前記特定の画像処理を実行するハードウエア画像処理装置に対して依頼し、この依頼に応じて前記ハードウエア画像処理装置が実行した画像処理の結果を含む前記ページ画像データを生成する複数のソフトウエア変換手段と、
前記複数のソフトウエア変換手段による前記ソフトウエア変換処理に必要な演算を実行する演算手段と、
前記複数のソフトウエア変換手段のうち少なくとも１つが前記ハードウエア画像処理装置による前記画像処理の完了を待つ状態が生じ得る場合に、前記ソフトウエア変換処理を行う追加のソフトウエア変換手段を起動する制御手段と、
を備え、
前記制御手段は、さらに、前記印刷文書データ中のある単位量のデータについての前記ソフトウエア変換処理を前記複数のソフトウエア変換手段及び前記追加のソフトウエア変換手段のいずれか１つに割り当てる制御であって、前記単位量のデータを割り当てられたソフトウエア変換手段のうち、前記ハードウエア画像処理装置による前記画像処理の完了を待っている状態のソフトウエア変換手段の他のソフトウエア変換手段の数が、前記演算手段の処理能力に基づいて予め設定された上限を超えないように割り当てる制御を行う、
ことを特徴とする印刷文書変換装置。
【請求項６】
コンピュータを、
ページ記述言語で記述された印刷文書データをビットマップ画像形式のページ画像データに変換するためのソフトウエア変換処理を行う複数のソフトウエア変換手段であって、前記ソフトウエア変換処理のうちの特定の画像処理の実行を、前記特定の画像処理を実行するハードウエア画像処理装置に対して依頼し、この依頼に応じて前記ハードウエア画像処理装置が実行した画像処理の結果を含む前記ページ画像データを生成する複数のソフトウエア変換手段、
前記複数のソフトウエア変換手段による前記ソフトウエア変換処理に必要な演算を実行する演算手段、
前記複数のソフトウエア変換手段のうち少なくとも１つが前記ハードウエア画像処理装置による前記画像処理の完了を待つ状態が生じ得る場合に、前記ソフトウエア変換処理を行う追加のソフトウエア変換手段を起動する制御手段であって、さらに、前記印刷文書データ中のある単位量のデータについての前記ソフトウエア変換処理を前記複数のソフトウエア変換手段及び前記追加のソフトウエア変換手段のいずれか１つに割り当てる制御であって、前記単位量のデータを割り当てられたソフトウエア変換手段のうち、前記ハードウエア画像処理装置による前記画像処理の完了を待っている状態のソフトウエア変換手段の他のソフトウエア変換手段の数が、前記演算手段の処理能力に基づいて予め設定された上限を超えないように割り当てる制御を行う制御手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷文書変換装置及びプログラムに関する。
【背景技術】
【０００２】
ＰｏｓｔＳｃｒｉｐｔ（登録商標）やＰＤＦ( Portable Data Format: ISO 32000-1) などのページ記述言語（以下、ＰＤＬと呼ぶ。ＰＤＬはPage Description Languageの略）で記述された印刷データは、ＲＩＰ( Raster Image Processor)と呼ばれる変換モジュールによりビットマップ画像（ラスター画像とも呼ばれる）に変換され、プリンタにより印刷される。変換モジュールは、ＰＤＬの解釈という言語系の処理を行う必要があるため、一般にはソフトウエアで実現されている。
【０００３】
しかし、ＲＩＰが行う処理の中には、ビットマップ画像オブジェクトに対する画像処理（例えば色空間変換、回転、拡大縮小）などのように、汎用コンピュータによるソフトウエア処理よりは、専用のハードウエア画像処理回路を用いた方が高速に実行できる処理もある。そこで、ソフトウエアＲＩＰモジュールが、ハードウエア画像処理回路に対して画像処理を依頼するシステムが提案されている。
【０００４】
特許文献１に開示されたシステムは、印刷文書を中間言語（ディスプレイリスト）に変換するに当たり、図形描画処理をハード向けとソフト向けにそれぞれ振り分けて、ハード向け及びソフト向けの中間言語コードを生成する。そして、ハード向けコードをハードウエア回路に、ソフト向けコードをソフトウエアにそれぞれ供給して並列に処理を実行させる。
【０００５】
特許文献２に開示された印刷装置は、ソフトウエアによる描画を行う描画部と、ハードウエアによる描画を行う描画部と、を備え、印刷文書から作成されたディスプレイリストに従った描画処理を行う際に、描画部の負荷状況に応じて、ハードウエアによる描画を行う描画部及びソフトウエアによる描画を行う描画部のいずれによって処理を実行するかを決定する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−００７４９６号公報
【特許文献２】特開２００９−２６９１７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、近年のプロセッサのマルチコア化により、ＲＩＰのためのソフトウエアを複数のプロセッサコアにより並列実行することで、処理の高速化を図ることも考えられる。ここで、ＲＩＰソフトウエアが並列実行される数よりもハードウエアの画像処理装置の数が少ない構成では、並列実行されているうちのあるＲＩＰソフトウエアが画像処理装置に画像処理を依頼しても、すべての画像処理装置が既に他の依頼を処理している場合には、その依頼はすぐには処理されない。画像処理装置による処理の完了をＲＩＰソフトウエアが待つ間、当該ＲＩＰソフトウエアを実行するプロセッサは処理を行わずに待ち状態となる。
【０００８】
本発明は、ソフトウエアでＲＩＰを実行するソフトウエア変換手段がハードウエア画像処理装置に画像処理を依頼することによりソフトウエア変換手段の待ち状態が発生したとしても、ソフトウエア変換手段を実行するプロセッサの処理能力を活用すると共に、当該プロセッサに過剰な処理負荷がかかる可能性を低減できる印刷文書変換装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
請求項１に係る発明は、ページ記述言語で記述された印刷文書データをビットマップ画像形式のページ画像データに変換するためのソフトウエア変換処理を行う複数のソフトウエア変換手段であって、前記ソフトウエア変換処理のうちの特定の画像処理の実行を、前記特定の画像処理を実行するハードウエア画像処理装置に対して依頼し、この依頼に応じて前記ハードウエア画像処理装置が実行した画像処理の結果を含む前記ページ画像データを生成する複数のソフトウエア変換手段と、前記複数のソフトウエア変換手段のうち少なくとも１つが前記ハードウエア画像処理装置による前記画像処理の完了を待つ状態が生じ得る場合に、前記ソフトウエア変換処理を行う追加のソフトウエア変換手段を起動する制御手段と、を備え、前記制御手段は、前記追加のソフトウエア変換手段の数を予め設定された上限を超えないように制御する、ことを特徴とする印刷文書変換装置である。
【００１０】
請求項２に係る発明は、請求項１に係る発明において、前記上限より多い数の前記ソフトウエア変換手段を備える。
【００１１】
請求項３に係る発明は、請求項１又は２に係る発明において、前記複数のソフトウエア変換手段の数は、前記ハードウエア画像処理装置の処理能力に基づいて定められる。
【００１２】
請求項４に係る発明は、コンピュータを、ページ記述言語で記述された印刷文書データをビットマップ画像形式のページ画像データに変換するためのソフトウエア変換処理を行う複数のソフトウエア変換手段であって、前記ソフトウエア変換処理のうちの特定の画像処理の実行を、前記特定の画像処理を実行するハードウエア画像処理装置に対して依頼し、この依頼に応じて前記ハードウエア画像処理装置が実行した画像処理の結果を含む前記ページ画像データを生成する複数のソフトウエア変換手段、前記複数のソフトウエア変換手段のうち少なくとも１つが前記ハードウエア画像処理装置による前記画像処理の完了を待つ状態が生じ得る場合に、前記ソフトウエア変換処理を行う追加のソフトウエア変換手段を起動する制御手段であって、前記追加のソフトウエア変換手段の数を予め設定された上限を超えないように制御する制御手段、として機能させるためのプログラムである。
【００１３】
請求項５に係る発明は、ページ記述言語で記述された印刷文書データをビットマップ画像形式のページ画像データに変換するためのソフトウエア変換処理を行う複数のソフトウエア変換手段であって、前記ソフトウエア変換処理のうちの特定の画像処理の実行を、前記特定の画像処理を実行するハードウエア画像処理装置に対して依頼し、この依頼に応じて前記ハードウエア画像処理装置が実行した画像処理の結果を含む前記ページ画像データを生成する複数のソフトウエア変換手段と、前記複数のソフトウエア変換手段による前記ソフトウエア変換処理に必要な演算を実行する演算手段と、前記複数のソフトウエア変換手段のうち少なくとも１つが前記ハードウエア画像処理装置による前記画像処理の完了を待つ状態が生じ得る場合に、前記ソフトウエア変換処理を行う追加のソフトウエア変換手段を起動する制御手段と、を備え、前記制御手段は、さらに、前記印刷文書データ中のある単位量のデータについての前記ソフトウエア変換処理を前記複数のソフトウエア変換手段及び前記追加のソフトウエア変換手段のいずれか１つに割り当てる制御であって、前記単位量のデータを割り当てられたソフトウエア変換手段のうち、前記ハードウエア画像処理装置による前記画像処理の完了を待っている状態のソフトウエア変換手段の他のソフトウエア変換手段の数が、前記演算手段の処理能力に基づいて予め設定された上限を超えないように割り当てる制御を行う、ことを特徴とする印刷文書変換装置である。
【００１４】
請求項６に係る発明は、コンピュータを、ページ記述言語で記述された印刷文書データをビットマップ画像形式のページ画像データに変換するためのソフトウエア変換処理を行う複数のソフトウエア変換手段であって、前記ソフトウエア変換処理のうちの特定の画像処理の実行を、前記特定の画像処理を実行するハードウエア画像処理装置に対して依頼し、この依頼に応じて前記ハードウエア画像処理装置が実行した画像処理の結果を含む前記ページ画像データを生成する複数のソフトウエア変換手段、前記複数のソフトウエア変換手段による前記ソフトウエア変換処理に必要な演算を実行する演算手段、前記複数のソフトウエア変換手段のうち少なくとも１つが前記ハードウエア画像処理装置による前記画像処理の完了を待つ状態が生じ得る場合に、前記ソフトウエア変換処理を行う追加のソフトウエア変換手段を起動する制御手段であって、さらに、前記印刷文書データ中のある単位量のデータについての前記ソフトウエア変換処理を前記複数のソフトウエア変換手段及び前記追加のソフトウエア変換手段のいずれか１つに割り当てる制御であって、前記単位量のデータを割り当てられたソフトウエア変換手段のうち、前記ハードウエア画像処理装置による前記画像処理の完了を待っている状態のソフトウエア変換手段の他のソフトウエア変換手段の数が、前記演算手段の処理能力に基づいて予め設定された上限を超えないように割り当てる制御を行う制御手段、として機能させるためのプログラムである。
【発明の効果】
【００１５】
請求項１、４、５、又は６に係る発明によると、ソフトウエアでＲＩＰを実行するソフトウエア変換手段がハードウエア画像処理装置に画像処理を依頼することによりソフトウエア変換手段の待ち状態が発生したとしても、ソフトウエア変換手段を実行するプロセッサの処理能力を活用すると共に、当該プロセッサに過剰な処理負荷がかかる可能性を低減できる。
【００１６】
請求項２に係る発明によると、プロセッサの処理能力に基づく上限の数のソフトウエア変換手段を備える場合よりも多くのソフトウエア変換手段により並列的にＲＩＰを実行できる。
【００１７】
請求項３に係る発明によると、ハードウエア画像処理装置の処理能力に応じた数のソフトウエア変換手段により並列的にＲＩＰを実行できる。
【図面の簡単な説明】
【００１８】
【図１】実施形態の装置が実装される印刷システムのハードウエア構成の一例を示す図である。
【図２】実施形態の装置が実装される印刷システムのハードウエア構成の別の一例を示す図である。
【図３】実施形態の印刷データ変換装置の一例を示す機能ブロック図である。
【図４】ＲＩＰモジュール管理情報に含まれる情報の一例を示す図である。
【図５】並列処理制御部の処理の手順の一例を示すフローチャートである。
【図６】実施形態の印刷データ変換装置の別の一例を示す機能ブロック図である。
【図７】実施形態の印刷データ変換装置のさらに別の一例を示す機能ブロック図である。
【発明を実施するための形態】
【００１９】
以下、図面を参照して、本発明の実施形態を説明する。各図において、互いに同一又は類似の構成要素には、同一の符号を付す。
【００２０】
まず、図１を参照して、実施形態の印刷データ変換装置が実装されるシステムの一例を説明する。このシステムは、印刷データ変換装置１００，ホストコンピュータ１４０，印刷制御装置１６０及びプリンタエンジン１７０を備える。
【００２１】
印刷データ変換装置１００は、ページ記述言語（以下、ＰＤＬと呼ぶ。ＰＤＬはPage Description Languageの頭字語）で記述された印刷文書データを、プリンタエンジン１７０が取扱可能なビットマップ画像等の印刷画像データに変換する装置である。ホストコンピュータ１４０は、ＬＡＮ（ローカルエリアネットワーク）１３０等のネットワークを介して印刷データ変換装置１００に対して印刷文書データを送り、その印刷文書データの印刷を指示する。
【００２２】
印刷データ変換装置１００は、コントローラ１１０を備える。コントローラ１１０は、ローカルバス１２２を介して相互に通信可能に接続された通信制御部１１２及び１２０，マルチＣＰＵ１１４，ローカルメモリ１１６，及び二次記憶装置１１８を備える。通信制御部１１２は、ＬＡＮ１３０を介してホストコンピュータ１４０とデータ通信を行う装置である。通信制御部１１２は、例えば、ホストコンピュータ１４０から印刷指示や印刷文書データを受信したり、印刷制御のための情報をホストコンピュータ１４０との間でやりとりしたりする。マルチＣＰＵ１１４は、複数のＣＰＵコアを搭載したプロセッサパッケージである。ローカルメモリ１１６は、マルチＣＰＵ１１４の各ＣＰＵコアが例えば作業用領域として使用する一次記憶であり、例えばランダムアクセスメモリなどから構成されている。二次記憶装置１１８は、ハードディスク装置又はＥＥＰＲＯＭ(Electrically Erasable Programmable Read Only Memory)などの比較的大容量の不揮発性記憶装置であり、マルチＣＰＵ１１４が実行するプログラムや、ホストコンピュータ１４０から受信した印刷文書データなどを記憶する。後述するＲＩＰモジュール２１０等の各種機能モジュールの処理内容を記述した制御プログラムが、例えばこの二次記憶装置１１８に記憶され、マルチＣＰＵ１１４により実行される。制御プログラムのうちの一部は、マルチＣＰＵ１１４の複数のＣＰＵコアにより並列実行可能となっている。マルチＣＰＵ１１４は、制御プログラムを実行することにより、印刷文書データを各ページの印刷画像データへと変換する。通信制御部１２０は、システム内ネット１５０と呼ぶネットワークを介して印刷制御装置１６０とデータ通信を行う装置である。この例では、印刷データ変換装置１００と印刷制御装置１６０（及びプリンタエンジン１７０）とはシステム内ネット１５０を介して相互接続されることで１つの印刷システムを構成している。マルチＣＰＵ１１４の処理により生成された各ページの印刷画像データは、通信制御部１２０及びシステム内ネット１５０を介して印刷制御装置１６０に送信される。
【００２３】
画像処理装置１２５は、例えばグラフィックアクセラレータなどの、画像処理専用のハードウエア画像処理回路を備えた装置である。このハードウエア画像処理回路は、例えば、色空間変換、画像の拡大・縮小、画像の回転、ハーフトーン処理等といった各種ビットマップ画像処理のうちの１以上を実行するための回路構成を備えている。画像処理装置１２５は、例えばコントローラ１１０のローカルバス１２２上に設けられたスロットに、例えば増設ボードとして接続しても良い。
【００２４】
マルチＣＰＵ１１４で実行されるＲＩＰ処理プログラム（後述するＲＩＰモジュール２１０）は、画像処理装置１２５に画像処理などを依頼し、その処理結果を受け取ってページ画像データの作成に用いることができる。ただし、後述するように、ＲＩＰモジュール２１０自体も、同じ画像処理をソフトウエアで実行することができる。
【００２５】
プリンタエンジン１７０は、印刷画像データが表す画像をインクやトナーなどの色材を用いて用紙に対して印刷する印刷ハードウエアである。印刷制御装置１６０は、プリンタエンジン１７０を制御する装置であり、通信制御部１６２，ページ制御部１６４及びエンジン制御部１６６を備える。通信制御部１６２は、システム内ネット１５０を介して印刷データ変換装置１００と通信し、各ページの印刷画像データを受信したり、印刷制御のために必要な各種の制御情報をやりとりしたりする。ページ制御部１６４は、受信された各ページの印刷画像データを蓄積し、印刷順序に従ってエンジン制御部１６６に送る。エンジン制御部１６６は、受け取ったページの印刷画像データをプリンタエンジン１７０に供給する。プリンタエンジン１７０は、受け取った印刷画像データを用紙に印刷する。
【００２６】
図２に、実施形態の装置が実装されるシステムの別の例を示す。図１の例では、印刷データ変換装置１００内に画像処理装置１２５が設けられていたのに対し、図２の例では、画像処理装置１２５が備えるハードウエア画像処理回路と同様の画像処理回路１８２を備える画像処理装置１８０が、印刷データ変換装置１００の外に設けられている。画像処理装置１８０は、印刷データ変換装置１００が備える通信装置１２７が接続されたネットワーク１８６に接続されており、このネットワーク１８６を介して印刷データ変換装置１００から画像処理の依頼を受け取ったり、画像処理の結果を返したりする。ネットワーク１８６は、システム内ネット１５０（又はＬＡＮ１３０）と同じネットワークであってもよく、この場合、通信装置１２７は、通信制御部１２０（又は１１２）と同じものでもよい。また、画像処理装置１８０は、ネットワーク１８６を介した通信や、印刷データ変換装置１００からの依頼の管理などを行う制御部１８４を備えている。
【００２７】
次に、図３を参照して、実施形態の印刷データ変換装置１００の機能モジュール構成の一例を説明する。図３に例示する印刷データ変換装置１００の機能モジュール構成は、画像処理装置２２０を除き、コントローラ１１０のマルチＣＰＵ１１４が制御プログラムを実行することにより実現される。
【００２８】
図３において、印刷文書受信部２０２は、ホストコンピュータ１４０から印刷文書データを受信する。印刷文書格納部２０４は、ホストコンピュータ１４０から受信されたＰＤＬの印刷文書データを格納する。印刷文書データは、一例として、ページ独立のＰＤＬ（例えばＰＤＦ）で記述されたデータであってもよい（ただし、これに限らない）。ページ独立とは、ページの印刷画像データを記述する情報が当該ページについてのＰＤＬデータのみで表されており、他のページについてのＰＤＬデータに依存しないことをいう。印刷文書格納部２０４には、複数の印刷文書データを、例えばその印刷順序の情報と共に格納してもよい。印刷文書選択部２０６は、印刷文書格納部２０４に格納された印刷文書データの中から、印刷処理の対象とするものを選択する。例えば、印刷順序の情報に従って、実行中の印刷処理が終了するごとに、次の印刷文書データを印刷対象に選択する。
【００２９】
並列処理制御部２０８は、印刷文書選択部２０６が選択した印刷文書データをＲＩＰモジュール２１０により並列処理させる制御を行う。並列処理制御部２０８は、起動するＲＩＰモジュール２１０の数を決定し（図３の例では、３つ）、各ＲＩＰモジュール２１０−１〜２１０−３（以下、区別する必要のない場合はＲＩＰモジュール２１０と総称する）に対して、印刷文書データのうちのそれぞれ異なるページを割り当てる。ページのこの割り当ては、並列処理制御部２０８からＲＩＰモジュール２１０に対して、例えば、割り当て対象のページ番号を通知することにより行えばよい。並列処理制御部２０８が行う制御の具体的な内容については後に詳述する。
【００３０】
ＲＩＰモジュール２１０は、ＰＤＬで記述された印刷文書データを解釈し、プリンタエンジン１７０が取扱可能なビットマップ（ラスター）画像に変換するソフトウエアモジュールである。例えば、ＲＩＰモジュール２１０は、割り当てられたページのＰＤＬデータを先頭から順に解釈していく中で、フォント、イメージ、フォームなどの画像オブジェクトを描画する描画コマンドを検出すると、その描画コマンドを実行し、ローカルメモリ１１６上に確保された各画素の記憶領域にそのコマンドに従って画素値を書き込んでいく。また、ＲＩＰモジュール２１０は、そのようにして形成されたビットマップ画像に対して、ＰＤＬデータ内のコマンドや設定に応じて、色空間変換、回転、拡大・縮小、ハーフトーン処理などといった画像処理を実行する機能を有する。
【００３１】
各ＲＩＰモジュール２１０−１〜２１０−３は、上述のような処理内容を記述したプログラム群をマルチＣＰＵ１１４の各ＣＰＵコアに実行させることにより、上述の処理内容を実行する装置として実現される。ＲＩＰモジュール２１０−１〜２１０−３は、それぞれプロセス又はスレッドとしてＣＰＵコアで実行される。典型的な例では、１つのＣＰＵコアが１つのＲＩＰモジュール２１０を実行するが、これに限らず、１つのＣＰＵコアが複数のＲＩＰモジュール２１０を実行してもよい。図３では、３つのＲＩＰモジュール２１０が実行されているが、これは一例に過ぎない。印刷データ変換装置１００において実行されるＲＩＰモジュール２１０の数は、前述のように並列処理制御部２０８により決定される。
【００３２】
上述のように、各ＲＩＰモジュール２１０は、それぞれ自身で画像処理を実行することができる。しかし、その画像処理専用のハードウエアである画像処理装置２２０の方が通常は処理が早いので、基本動作としては、ＲＩＰ処理の中で画像処理を行う必要が生じると、各ＲＩＰモジュール２１０は画像処理装置２２０に対して画像処理を依頼する。
【００３３】
以上で説明したように、この実施形態では、複数のＲＩＰモジュール２１０により複数のページを並列的にＲＩＰ処理する。各ＲＩＰモジュール２１０は、１ページ分のＰＤＬデータの変換処理を終えると、ページ画像メモリ上に形成された当該ページの印刷画像データを印刷制御装置１６０経由でプリンタエンジン１７０に供給する。
【００３４】
画像処理装置２２０は、ＲＩＰモジュール２１０のソフトウエア処理による画像処理と同じ画像処理をハードウエア画像処理回路にて実行する装置であり、図１に示した画像処理装置１２５又は図２に示した画像処理装置１８０に相当する。図１の例では、画像処理装置２２０は、ＲＩＰモジュール２１０のソフトウエア処理による画像処理と同様の処理を実行可能なハードウエア画像処理回路を１つだけ備えているものとする。
【００３５】
処理実行制御部２３０は、ＲＩＰモジュール２１０が発する画像処理装置２２０への画像処理の依頼を受け付け、依頼された画像処理を画像処理装置２２０に実行させる。また、処理実行制御部２３０は、画像処理装置２２０による画像処理が完了すると、その画像処理結果を依頼元のＲＩＰモジュール２１０に渡す。
【００３６】
画像処理装置２２０はハードウエア処理を行うので、処理速度自体は、ＲＩＰモジュール２１０がソフトウエア処理により同じ処理を行う場合よりも速い。ただし、画像処理装置２２０において、あるＲＩＰモジュール２１０から依頼された画像処理を実行している間に他のＲＩＰモジュール２１０から画像処理の依頼を受けた場合、画像処理装置２２０は、先に依頼された画像処理が完了してから、後に依頼された画像処理を開始する。このため、複数のＲＩＰモジュール２１０が画像処理装置２２０に対して画像処理を依頼したとすると、これらのＲＩＰモジュール２１０のすべてが画像処理装置２２０による処理の完了待ち状態となる場合もある。この場合、ＲＩＰモジュール２１０を実行するマルチＣＰＵ１１４のＣＰＵコアは、ＲＩＰモジュール２１０のいずれかが画像処理装置２２０の画像処理結果を受け取ってＲＩＰ処理を再開するまで、ＲＩＰ処理を実行していない状態となる。
【００３７】
本実施形態の例では、並列処理制御部２０８において、各ＲＩＰモジュール２１０の処理の実行状態を監視し、マルチＣＰＵ１１４の処理能力から定められる上限を超えない範囲で可能な限り多くのＲＩＰモジュール２１０にページを割り当ててＲＩＰ処理を並列的に実行させる。この制御により、マルチＣＰＵ１１４のＣＰＵコアでＲＩＰ処理を実行していない状態が発生する可能性が低減される。並列処理制御部２０８の制御は、ＲＩＰモジュール管理情報２３２を参照して行われる。
【００３８】
ＲＩＰモジュール管理情報２３２は、並列処理制御部２０８による制御の判断材料となる管理情報である。ＲＩＰモジュール管理情報２３２は、例えば、ローカルメモリ１１６に格納される。ＲＩＰモジュール管理情報２３２は、ＲＩＰモジュール２１０を実行するマルチＣＰＵ１１４及びＲＩＰモジュール２１０から画像処理を依頼される画像処理装置２２０の処理能力に関する情報を含む。本実施形態の例では、マルチＣＰＵ１１４の処理能力に関する情報として、マルチＣＰＵ１１４が備えるＣＰＵコアの数を含む。また、画像処理装置２２０の処理能力に関する情報として、本例では、印刷データ変換装置１００において利用可能な画像処理装置２２０に含まれる画像処理回路２２２の数の合計を含む。ここで、「利用可能な画像処理装置２２０」とは、ＲＩＰモジュール２１０からの依頼を受けて画像処理を実行可能な画像処理装置であれば、印刷データ変換装置１００の内部に設けられていてもよいし（図１の画像処理装置１２５）、印刷データ変換装置１００の外に設けられていてもよい（図２の画像処理装置１８０）。図１〜図３に示す例では、１つの画像処理装置２２０中の１つの画像処理回路２２２を印刷データ変換装置１００において利用可能であるため、ＲＩＰモジュール管理情報２３２は、利用可能な画像処理回路２２２の数の合計として「１」を含む。利用可能な画像処理回路の数の合計は、例えば、印刷データ変換装置１００の初期化の際に、利用可能な各画像処理装置２２０の画像処理回路２２２の数を当該画像処理装置２２０から取得して合計することで得られる。
【００３９】
ＲＩＰモジュール管理情報２３２は、さらに、各ＲＩＰモジュール２１０の処理の実行状態を表す情報を含む。この実行状態を表す情報の一例を図４に示す。図４の例の表は、各ＲＩＰモジュール２１０−１，２１０−２，２１０−３の番号「ＲＩＰモジュール番号」に対応づけて、当該番号のＲＩＰモジュール２１０の「ページ割り当て状況」及び「画像処理装置利用状況」を表す。図４の例では、「ページ割り当て状況」の値として、対応するＲＩＰモジュール２１０の割り当て済みのページの番号（「ページ１」，「ページ２」等）または対応するＲＩＰモジュール２１０にページが割り当てられていないことを表す情報（「なし」等）が示される。図４の例の表は、ＲＩＰモジュール２１０−１に「ページ１」、ＲＩＰモジュール２１０−２に「ページ２」が割り当て済みであり、ＲＩＰモジュール２１０−３には、ページが割り当てられていないことを示す。また、「画像処理装置利用状況」は、対応するＲＩＰモジュール２１０が画像処理装置２２０に対して依頼した画像処理の完了待ち状態であるか否かを示す。図４の例において、ＲＩＰモジュール番号「１」に対応する「画像処理装置利用状況」の値「処理完了待ち」は、ＲＩＰモジュール２１０−１が画像処理装置２２０に対して画像処理を依頼し、その処理結果を待っている状態であることを示す。また、ＲＩＰモジュール番号「２」，「３」に対応する「画像処理装置利用状況」の値「未利用」は、ＲＩＰモジュール２１０−２，２１０−３が画像処理装置２２０に対して現時点では画像処理を依頼していないことを示す。
【００４０】
本実施形態の例において、図４に例示する表の各項目の値は、並列処理制御部２０８及び処理実行制御部２３０により登録及び更新される。例えば、並列処理制御部２０８は、ＲＩＰモジュール２１０を起動すると、起動した各ＲＩＰモジュール２１０の番号をＲＩＰモジュール番号としてＲＩＰモジュール管理情報２３２中に登録する。このとき、各ＲＩＰモジュール番号に対応する「ページ割り当て状況」及び「画像処理装置利用状況」の初期値は、それぞれ、「なし」及び「未利用」に設定しておく。また、各ＲＩＰモジュール番号に対応する「ページ割り当て状況」には、対応するＲＩＰモジュール２１０に並列処理制御部２０８がページを割り当てたときに、並列処理制御部２０８により当該ページのページ番号が設定される。当該ページのＲＩＰ処理が完了すると、並列処理制御部２０８は、対応するＲＩＰモジュール番号の「ページ割り当て状況」を「なし」に戻す。さらに、各ＲＩＰモジュール番号に対応する「画像処理装置利用状況」は、処理実行制御部２３０がＲＩＰモジュール２１０からの画像処理の依頼を受け付けると、処理実行制御部２３０により「処理完了待ち」に設定される。その後、画像処理装置２２０における画像処理が完了し、その結果を依頼元のＲＩＰモジュール２１０に返すと、処理実行制御部２３０は、対応するＲＩＰモジュール番号の「画像処理装置利用状況」を「未利用」に戻す。
【００４１】
以上で説明したようなＲＩＰモジュール管理情報２３２を参照して、並列処理制御部２０８は、起動するＲＩＰモジュール２１０の数を決定すると共に、各ＲＩＰモジュール２１０へのページ割り当てを制御する。例えば、並列処理制御部２０８は、ＲＩＰモジュール２１０を実行するマルチＣＰＵ１１４及びＲＩＰモジュール２１０の依頼を受けて画像処理を実行する画像処理装置２２０の処理能力に基づいて、起動するＲＩＰモジュール２１０の数を決定する。本実施形態の例では、並列処理制御部２０８は、ＲＩＰモジュール管理情報２３２からマルチＣＰＵ１１４のＣＰＵコアの数と利用可能な画像処理装置２２０が備える画像処理回路２２２の数の合計とを取得し、これらの和を、起動するＲＩＰモジュール２１０の数とする。図３は、ＣＰＵコアの数が「２」、画像処理回路２２２の数の合計が「１」である場合の例であり、３つのＲＩＰモジュール２１０−１，２１０−２，２１０−３が起動されている。上述したように、典型的な例の印刷データ変換装置１００では、１つのＣＰＵコアが１つのＲＩＰモジュール２１０を実行する。したがって、本実施形態の例のようにＲＩＰモジュール２１０の数を決定すると、典型的な例の場合と比較して、画像処理回路２２２の数の合計分だけ追加した数のＲＩＰモジュール２１０が起動されることになる。図３に示すＲＩＰモジュール２１０−３は、この追加のＲＩＰモジュール２１０の例である。なお、本実施形態の例において、追加のＲＩＰモジュール２１０−３の機能は、他のＲＩＰモジュール２１０−１，２１０−２と同様である。
【００４２】
さらに、並列処理制御部２０８は、ＲＩＰモジュール管理情報２３２に含まれる、各ＲＩＰモジュール２１０の処理の実行状態を表す情報（図４）を参照して、各ＲＩＰモジュール２１０に対し印刷文書データ中のページの割り当てを行う。本実施形態の例の並列処理制御部２０８は、ＲＩＰ処理（ソフトウエア処理）を実行中であるＲＩＰモジュール２１０の数Ｓｒｕｎが、マルチＣＰＵ１１４の処理能力から定まる最大値Ｓｍａｘを超えないようにページ割り当てを行う。Ｓｒｕｎは、ページ割り当て済みであって画像処理完了待ちでないＲＩＰモジュール２１０の数を数えることで求められる。図４の例の情報を参照する場合、ページ割り当て済みのＲＩＰモジュール２１０の数Ａ＝２から、画像処理完了待ち状態であるＲＩＰモジュール２１０の数Ｗ＝１を減算することで、Ｓｒｕｎ＝１（＝Ａ−Ｗ）と求められる。Ｓｍａｘは、ＲＩＰ処理を同時に実行することが許容されるＲＩＰモジュール２１０の数の上限である。本実施形態の例では、マルチＣＰＵ１１４が備えるＣＰＵコアの数をＳｍａｘとする。このため、本実施形態の例のＳｍａｘは、起動されるＲＩＰモジュール２１０の数（ＣＰＵコアの数と画像処理回路の数の合計との和）より小さい。ＣＰＵコアの数が２つである上述の図３の例では、Ｓｍａｘ＝２である。この例において図４の情報を参照してＳｒｕｎ＝１と求められた場合、Ｓｍａｘ＝２に対してＲＩＰ処理実行中のＲＩＰモジュール２１０の数が１だけ少ない。この状態で新たなページの割り当てが必要になった場合、並列処理制御部２０８は、Ｓｒｕｎ＜Ｓｍａｘであることから、未だページ割り当てされていない１つのＲＩＰモジュール２１０−３に対し、当該新たなページを割り当てる。他の具体例として、図３のＲＩＰモジュール２１０−１，２１０−２がＲＩＰ処理実行中であり、ＲＩＰモジュール２１０−３にページが割り当てられていないとすると、Ｓｒｕｎ＝Ｓｍａｘ＝２である。この状態で新たなページの割当が必要になっても、並列処理制御部２０８は、ＲＩＰモジュール２１０−３に当該新たなページを割り当てない。その後、時間が経過してＲＩＰモジュール２１０−１，２１０−２の少なくとも一方が画像処理完了待ち状態になるか、あるいは、ＲＩＰ処理が完了することでＳｒｕｎ＜Ｓｍａｘ＝２となると、並列処理制御部２０８は、当該新たなページをＲＩＰモジュール２１０−３に割り当てる。
【００４３】
以上、図１〜図４を参照し、実施形態の印刷データ変換装置が実装されるシステムの構成例及び並列処理制御部による制御の様子の例を説明した。なお、上述の印刷文書選択部２０６、並列処理制御部２０８、及び処理実行制御部２３０は、マルチＣＰＵ１１４内のいずれかのＣＰＵコアにて実行される。
【００４４】
以下、印刷データ変換装置１００の動作の例を説明する。図５は、並列処理制御部２０８が行う処理の手順の例を示すフローチャートである。印刷データ変換装置１００の電源（図示しない）が投入されて印刷データ変換装置１００が起動されると、並列処理制御部２０８は、図５の例の手順の処理を開始する。
【００４５】
まず、並列処理制御部２０８は、ＲＩＰモジュール管理情報２３２を取得し（ステップＳ１０）、取得したＲＩＰモジュール管理情報から定められる数のＲＩＰモジュール２１０を起動する（ステップＳ１２）。図３を参照する上述の例の場合、並列処理制御部２０８は、ＲＩＰモジュール管理情報２３２に含まれるＣＰＵコアの数「２」及び画像処理回路２２２の数の合計「１」の和「３」を求め、３つのＲＩＰモジュール２１０−１，２１０−２，２１０−３を起動する。
【００４６】
その後、並列処理制御部２０８は、割り当て対象のページを含む印刷文書データを選択した旨を印刷文書選択部２０６から通知されるまで待機する（ステップＳ１４でＮＯの場合の処理ループ）。
【００４７】
印刷文書データの選択の通知を受けた（つまり、割り当ての対象のページが存在する）場合（ステップＳ１４でＹＥＳ）、並列処理制御部２０８は、ＲＩＰモジュール管理情報２３２を参照し、割り当てページなしのＲＩＰモジュール２１０の有無を確認する（ステップＳ１６）。
【００４８】
起動されたすべてのＲＩＰモジュール２１０にページが割り当て済みであって、割り当てページなしのＲＩＰモジュール２１０が存在しない場合（ステップＳ１６でＮＯ）、並列処理制御部２０８は、いずれかのＲＩＰモジュール２１０のＲＩＰ処理が完了して割り当てページなしのＲＩＰモジュール２１０が生じるまで（ステップＳ１６でＹＥＳと判定されるまで）、ステップＳ１６の判定を繰り返す。ステップＳ１６の判定は、ＲＩＰモジュール管理情報２３２において、図４の例の表の各ＲＩＰモジュール番号に対応する「ページ割り当て状況」の値を確認することで行えばよい。
【００４９】
割り当てページなしのＲＩＰモジュール２１０が存在すれば（ステップＳ１６でＹＥＳ）、並列処理制御部２０８は、ＲＩＰ処理実行中のＲＩＰモジュール２１０の数Ｓｒｕｎを求める（ステップＳ１８）。ステップＳ１８では、例えば、図４を参照して上記で説明したように、ＲＩＰモジュール管理情報２３２を参照し、ページ割り当て済みのＲＩＰモジュール２１０の数Ａから、画像処理完了待ち状態のＲＩＰモジュール２１０の数Ｗを減算した値をＳｒｕｎとして求める。ある印刷文書データに関して最初にステップＳ１８の処理を行う場合、ページ割り当て済みのＲＩＰモジュールの数Ａ及び画像処理完了待ち状態のＲＩＰモジュール２１０の数Ｗはいずれも「０」であり、Ｓｒｕｎ＝０となる。
【００５０】
ステップＳ１８で求めたＳｒｕｎが同時にＲＩＰ処理実行を許可される最大数Ｓｍａｘ以上であれば（ステップＳ２０でＮＯ）、ステップＳ１８に戻り、再度、現在ソフトウエア処理を実行中のＲＩＰモジュール２１０の数Ｓｒｕｎを求め、ステップＳ２０の判定を行う。時間の経過により、ＲＩＰ処理実行中のＲＩＰモジュール２１０で処理が完了してＳｒｕｎの値が減少し、Ｓｍａｘより小さくなれば、ステップＳ２０でＹＥＳ判定される。
【００５１】
ステップＳ１８で求めたＳｒｕｎがＳｍａｘよりも小さい場合（ステップＳ２０でＹＥＳ）、割り当てページなしのＲＩＰモジュール２１０のうちの１つに対し１ページを割り当てる（ステップＳ２２）。例えば、並列処理制御部２０８は、割り当てた１ページのページ番号を当該ＲＩＰモジュール２１０に対して通知する。
【００５２】
ステップＳ２２の後、処理は、割り当て対象のページの有無の判定（ステップＳ１４）に戻る。
【００５３】
以上、図５を参照し、並列処理制御部２０８によるページ割り当ての制御の手順の例を説明した。なお、ページ割り当ての基本的な方針は、特に限定されない。例えば、ＲＩＰモジュール２１０の番号に従って先頭ページから順に固定的に割り当ててもよいし、ページの変換処理が終了したＲＩＰモジュール２１０から順に動的にページを割り当ててもよい。いずれの方針で割り当てる場合であっても、並列処理制御部２０８は、各ページを割り当てる際に図５のステップＳ１８，Ｓ２０を実行し、Ｓｒｕｎ＜Ｓｍａｘであることを確認してから、割り当て対象のページ番号をＲＩＰモジュール２１０に通知する。
【００５４】
ここで、図３に例示するＲＩＰモジュール２１０−１，２１０−２，２１０−３に対し、図５の例の手順でページ割り当てを行う場合の具体例を、［１］画像処理完了待ちが発生する場合及び［２］画像処理完了待ちが発生しない場合に分けて説明する。［１］，［２］のいずれの場合も、図５のステップＳ１２までの処理により、ＲＩＰモジュール２１０−１，２１０−２，２１０−３が起動される。また、Ｓｍａｘ＝２であるとする。
【００５５】
［１］画像処理完了待ちが発生する場合
まず、割り当て対象のページのうち１ページ目を割り当てるときには、ＲＩＰモジュール２１０−１，２１０−２，２１０−３のすべてが割り当てページなしであり（ステップＳ１６でＹＥＳ）、ＲＩＰ処理実行中のＲＩＰモジュール２１０の数Ｓｒｕｎ＝０＜Ｓｍａｘなので（ステップＳ２０でＹＥＳ）、ステップＳ２２で、並列処理制御部２０８は、１ページ目をＲＩＰモジュール２１０−１に割り当てたとする。この時点で、ページ割り当て済みのＲＩＰモジュール２１０の数Ａ＝１となる。また、本例では、１ページ目のＲＩＰ処理に画像処理が必要であるとする。よって、ＲＩＰモジュール２１０−１は、画像処理装置２２０に対して画像処理を依頼し、画像処理完了待ち状態となり、画像処理完了待ち状態のＲＩＰモジュール２１０の数Ｗ＝１となる。
【００５６】
次に、２ページ目の割り当てのとき、ＲＩＰモジュール２１０−２，２１０−３が割り当てページなしであり（ステップＳ１６でＹＥＳ）、ステップＳ１８でＳｒｕｎが求められる。ここでは、前述のように、Ａ＝１，Ｗ＝１なので、Ｓｒｕｎ＝Ａ−Ｗ＝０である。よって、Ｓｒｕｎ＜Ｓｍａｘであり（ステップＳ１８でＹＥＳ）、ステップＳ２２で、並列処理制御部２０８は、２ページ目をＲＩＰモジュール２１０−２に割り当てたとする。この時点で、ページ割り当て済みのＲＩＰモジュール２１０の数Ａ＝２となる。また、本例では、２ページ目のＲＩＰ処理においても画像処理が必要であるとし、ＲＩＰモジュール２１０−２は、画像処理を画像処理装置２２０に依頼して、画像処理完了待ち状態となる。このとき、画像処理装置２２０でＲＩＰモジュール２１０−１の依頼による画像処理が完了していなかったとすると、ＲＩＰモジュール２１０−１，２１０−２の両方が画像処理完了待ち状態となり、Ｗ＝２となる。
【００５７】
さらに、３ページ目の割り当てのとき、ＲＩＰモジュール２１０−３が割り当てページなしであり（ステップＳ１６でＹＥＳ）、ステップＳ１８でＳｒｕｎが求められる。この時点では、Ａ＝２，Ｗ＝２なので、Ｓｒｕｎ＝Ａ−Ｗ＝０である。よって、Ｓｒｕｎ＜Ｓｍａｘであり（ステップＳ１８でＹＥＳ）、ステップＳ２２で、並列処理制御部２０８は、３ページ目をＲＩＰモジュール２１０−３に割り当てる。この時点で、ページ割り当て済みのＲＩＰモジュール２１０の数Ａ＝３となる。３ページ目のＲＩＰ処理において画像処理が必要ないとすると、ＲＩＰモジュール２１０−３により３ページ目のＲＩＰ処理が実行される。この場合、ＲＩＰモジュール２１０−１，２１０−２が画像処理完了待ち状態であり、マルチＣＰＵ１１４のＣＰＵコアを利用していなくても、ＲＩＰモジュール２１０−３は、そのＲＩＰ処理のためにＣＰＵコアを利用する。その間、Ｓｒｕｎ＝Ａ−Ｗ＝３−２＝１であり、Ｓｒｕｎ＜Ｓｍａｘ＝２である。
【００５８】
［２］画像処理完了待ちが発生しない場合
１ページ目の割り当ては、上述の［１］の場合の例と同様に行われ、１ページ目がＲＩＰモジュール２１０−１に割り当てられたとする。ただし、本例では、１ページ目のＲＩＰ処理で画像処理が必要なく、ＲＩＰモジュール２１０−１は画像処理完了待ち状態にならない。この時点で、ページ割り当て済みのＲＩＰモジュール２１０の数Ａ＝１、画像処理完了待ち状態のＲＩＰモジュール２１０の数Ｗ＝０である。
【００５９】
２ページ目の割り当ての際には、ＲＩＰモジュール２１０−２，２１０−３が割り当てページなしであり（ステップＳ１６でＹＥＳ）、ステップＳ１８でＳｒｕｎが求められる。ここで、Ａ＝１，Ｗ＝０なので、Ｓｒｕｎ＝１であり、Ｓｒｕｎ＜Ｓｍａｘ＝２なので（ステップＳ１８でＹＥＳ）、ステップＳ２２で、並列処理制御部２０８は、２ページ目をＲＩＰモジュール２１０−２に割り当てたとする。本例では、２ページ目のＲＩＰ処理においても画像処理が必要なく、ＲＩＰモジュール２１０−２は、自身で２ページ目のＲＩＰ処理を実行する。この時点で、Ａ＝２，Ｗ＝０となる。
【００６０】
次に、３ページ目の割り当ての際、ＲＩＰモジュール２１０−３が割り当てページなしであり（ステップＳ１６でＹＥＳ）、ステップＳ１８でＳｒｕｎが求められる。ここでは、Ａ＝２，Ｗ＝０なので、Ｓｒｕｎ＝２となり、Ｓｍａｘ＝２と等しい。したがって、ステップＳ２０でＮＯ判定され、ステップＳ１８，Ｓ２０を含むループ処理が繰り返される。時間が経過してＲＩＰモジュール２１０−１，２１０−２の少なくとも一方のＲＩＰ処理が完了すると、ページ割り当て済みのＲＩＰモジュール２１０の数Ａが「２」から「１」又は「０」に減少し、Ｓｒｕｎも「１」又は「０」となる（Ｗ＝０のまま）。すると、ステップＳ２０でＹＥＳ判定される条件「Ｓｒｕｎ＜Ｓｍａｘ」が満たされる。ここで初めて並列処理制御部２０８は、３ページ目をＲＩＰモジュール２１０−３に割り当てる（ステップＳ２２）。本例において、２つのＲＩＰモジュール２１０−１，２１０−２がマルチＣＰＵ１１４を利用している間は、ＲＩＰモジュール２１０−３に対してページ割り当てが行われない。
【００６１】
上述の具体例［１］，［２］からもわかるように、図５の例のステップＳ１８及びステップＳ２０を含むループ処理によると、Ｓｍａｘ個以上のＲＩＰモジュール２１０がＲＩＰ処理を実行している間は、ＲＩＰモジュール２１０に新たなページが割り当てられることはない。
【００６２】
なお、本実施形態の例において、画像処理完了待ち状態のＲＩＰモジュール２１０が画像処理装置２２０から画像処理結果を受け取ってＲＩＰ処理を再開するタイミングによっては、Ｓｍａｘを超える数のＲＩＰモジュール２１０が同時にＲＩＰ処理を実行する状態が生じ得る。例えば、上述の具体例［１］で、ＲＩＰモジュール２１０−２における２ページ目のＲＩＰ処理に画像処理が必要ないとすると、２ページ目の割り当てが完了した時点で、Ａ＝２，Ｗ＝１（ＲＩＰモジュール２１０−１が画像処理完了待ち状態）となる。この場合、Ｓｒｕｎ＝２−１＝１＜Ｓｍａｘ＝２であることから、３ページ目がＲＩＰモジュール２１０−３に割り当てられ、Ａ＝３，Ｗ＝１となる。ここで、Ｓｒｕｎ＝３−１＝２＝Ｓｍａｘである。ＲＩＰモジュール２１０−２，２１０−３におけるＲＩＰ処理の完了の前に、ＲＩＰモジュール２１０−１が画像処理装置２２０に依頼した画像処理が完了し、ＲＩＰモジュール２１０−１のＲＩＰ処理が再開された場合、３つのＲＩＰモジュール２１０−１，２１０−２，２１０−３がＲＩＰ処理実行中となる（Ｓｒｕｎ＝３＞Ｓｍａｘ）。ただし、画像処理完了待ち状態からＲＩＰ処理を再開したＲＩＰモジュール２１０−１においては、割り当てページのＲＩＰ処理のうち最も負荷の高い（時間のかかる）画像処理がすでに完了していることから、ＲＩＰ処理は比較的短時間で完了すると考えられる。さらに、Ｓｒｕｎ＜Ｓｍａｘ＝２となるまでは、新たなページの割り当ては行われない。したがって、印刷文書データの全体のＲＩＰ処理の開始から完了までの間でＳｒｕｎ＞Ｓｍａｘとなる期間は、例えば図５の例の手順でステップＳ１８，Ｓ２０の処理を省略した場合と比較して短くなる。
【００６３】
以上、図１〜図５を参照し、利用可能な画像処理装置２２０が１つだけであり、画像処理装置２２０が備える画像処理回路２２２も１つだけである場合を例にとり、本発明の一実施形態を説明した。当然ながら、画像処理装置２２０の数及び各画像処理装置２２０が備える画像処理回路２２２の数は上述の例に限定されない。
【００６４】
例えば、図６に示すように、印刷データ変換装置１００は、複数の画像処理装置２２０を利用可能であってよい。図６は、それぞれ１つの画像処理回路２２２を有する２つの画像処理装置２２０−１，２２０−２を印刷データ変換装置１００が利用可能である例を示す。図６の画像処理装置２２０−１，２２０−２は、図１〜図３を参照して説明した例と同様、印刷データ変換装置１００の内部に設けられていてもよいし、印刷データ変換装置１００の外に設けられていてもよい。また、図６の例では、マルチＣＰＵ１１４のＣＰＵコアの数が「４」であるとする。図６の例において、並列処理制御部２０８は、ＣＰＵコアの数に対応する４つのＲＩＰモジュール２１０−１〜２１０−４（図６では、ＲＩＰモジュール２１０−２，２１０−３の図示を省略）及び画像処理回路２２２の数の合計「２」に対応する２つのＲＩＰモジュール２１０−５，２１０−６を起動する。
【００６５】
さらに他の例では、図７に示すように、複数の画像処理回路を有する画像処理装置２２０を利用可能であってもよい。図７は、２つの画像処理回路２２２−１，２２２−２を有する１つの画像処理装置２２０を利用可能である例である。画像処理装置２２０は、さらに、２つの画像処理回路２２２−１，２２２−２への処理の割り当てなどを制御する画像処理制御部２２４を備える。画像処理制御部２２４は、処理実行制御部２３０を介してＲＩＰモジュール２１０からの画像処理依頼を受け付け、依頼された画像処理を画像処理回路２２２−１，２２２−２のいずれかに実行させ、処理結果を処理実行制御部２３０に返す。図７の画像処理装置２２０も、印刷データ変換装置１００の内部及び外部のいずれに設けられていてもよい。また、図７の例においても、マルチＣＰＵ１１４のＣＰＵコアの数は「４」とする。図７の例でも、並列処理制御部２０８は、ＣＰＵコアの数に対応する４つのＲＩＰモジュール２１０−１〜２１０−４（図７では、ＲＩＰモジュール２１０−２，２１０−３の図示を省略）及び画像処理回路２２２の数の合計「２」に対応する２つのＲＩＰモジュール２１０−５，２１０−６を起動する。
【００６６】
図６及び図７のいずれの例でも、並列処理制御部２０８及び各ＲＩＰモジュール２１０は、図３から図５を参照して説明したのと同様の処理を行えばよい。
【００６７】
以上、図１〜図７を参照して説明した実施形態の例では、マルチＣＰＵ１１４のコアＣＰＵの数に対して利用可能な画像処理装置２２０の画像処理回路２２２の数の合計分を追加した数のＲＩＰモジュール２１０を起動して、印刷文書データの各ページのＲＩＰ処理を並列的に行う。その際、同時にマルチＣＰＵ１１４を利用してＲＩＰ処理を実行するＲＩＰモジュール２１０の数がコアＣＰＵの数以下に制限されるように、ＲＩＰモジュール２１０に対するページの割当が行われる。
【００６８】
なお、上述の実施形態の例では、ＲＩＰモジュール管理情報２３２の登録及び更新を並列処理制御部２０８及び処理実行制御部２３０が行う。一変形例では、ＲＩＰモジュール管理情報２３２の登録及び更新の一部を、各ＲＩＰモジュール２１０が行ってもよい。例えば、各ＲＩＰモジュール２１０の処理の実行状態を表す情報を、ＲＩＰモジュール２１０自身が登録及び更新してもよい。また、各画像処理装置２２０が備える画像処理回路２２２の数は、画像処理装置２２０自身がＲＩＰモジュール管理情報２３２中に登録してもよいし、処理実行制御部２３０が特定してＲＩＰモジュール管理情報２３２中に登録してもよい。
【００６９】
また、ＲＩＰモジュール管理情報２３２においてＲＩＰモジュール２１０の処理の実行状態を表す情報の具体的な態様は、図４に例示する態様に限られない。例えば、図４の「画像処理装置の利用状況」では、「処理完了待ち」及び「未利用」の２種類の値が登録される。一変形例では、各ＲＩＰモジュール２１０の処理状況として、「画像処理完了待ち状態」，「ＲＩＰ処理実行中」，「ページ割り当て待機中（つまり、割り当てページなし）」の３種類の状態を表す値をＲＩＰモジュール管理情報２３２に登録しておいてもよい。この例の場合、図４の例の表の「ページ割り当て状況」の項目を省略してもよい。処理状況において「画像処理完了待ち状態」又は「ＲＩＰ処理実行中」であるＲＩＰモジュール２１０の数を、ページ割り当て済みのＲＩＰモジュール２１０の数Ａとして図５の例の手順の処理を実行すればよい。
【００７０】
上述の実施形態及び変形例では、起動された複数のＲＩＰモジュール２１０のすべてが画像処理装置２２０に画像処理を依頼する。一変形例では、並列処理制御部２０８は、ＲＩＰモジュール２１０のうちの一部が画像処理を画像処理装置２２０に依頼せずに自身で実行させるよう制御してもよい。例えば、複数のＲＩＰモジュール２１０のうち、マルチＣＰＵコア１１４のＣＰＵコアの数に対する追加分のＲＩＰモジュール２１０（例：図３のＲＩＰモジュール２１０−３、図６，図７のＲＩＰモジュール２１０−５，２１０−６）については、画像処理を自身で実行するように制御してもよい。本変形例でも、並列処理制御部２０８によるページ割り当ての制御の手順は、図５の例と同様であってよい。
【００７１】
また、上述の実施形態及び変形例では、印刷データ変換装置１００の起動時に、コアＣＰＵの数と画像処理回路２２２の数の合計との和に相当する個数のＲＩＰモジュール２１０を起動する。一変形例では、並列処理制御部２０８は、まずコアＣＰＵの数のＲＩＰモジュール２１０を起動して印刷文書データの各ページのＲＩＰ処理を実行させ、これらのＲＩＰモジュール２１０が画像処理完了待ち状態になった時点で、画像処理回路２２２の数の合計分のＲＩＰモジュール２１０を起動してもよい。本変形例において、起動されるＲＩＰモジュール２１０の個数は、コアＣＰＵの数と画像処理回路の数との和に制限される。また、本変形例において、並列処理制御部２０８によるページ割り当ての制御は、その時点で起動されているＲＩＰモジュール２１０を対象として、図５の例の手順により行なえばよい。
【００７２】
また、さらに他の変形例では、起動されるＲＩＰモジュール２１０の個数を、マルチＣＰＵ１１４のコアＣＰＵの数に関係なく、利用可能な画像処理装置２２０の処理能力に関する情報だけに基づいて決定してもよい。例えば、利用可能な画像処理装置２２０が備える画像処理回路２２２のそれぞれについて、１つのＲＩＰモジュール２１０の処理能力に対する当該画像処理回路の処理能力の比を示す画像処理能力指数をＲＩＰモジュール管理情報２３２中に登録しておき、この画像処理能力指数に基づいて、起動するＲＩＰモジュール２１０の個数を決定する。ここでの「処理能力」とは、ある単位量の画像データを処理するのに要する時間（つまり、処理速度）を意味する。画像処理能力指数は、画像処理回路がＲＩＰモジュール２１０の何倍の処理能力を有するかを表す値であるとも言える。例えば、同じ画像処理をＲＩＰモジュール２１０の１／２の時間で画像処理回路が実行可能な場合、当該画像処理回路の画像処理能力指数は「２」となる。画像処理能力指数は、例えば、画像処理装置２２０及びＲＩＰモジュール２１０に対してそれぞれテスト用の画像を処理させてその処理時間を測定する実験などにより求め、印刷データ変換装置１００に登録しておけばよい。並列処理制御部２０８は、例えば、利用可能な画像処理装置２２０の各画像処理回路２２２の画像処理能力指数の合計を、起動するＲＩＰモジュール２１０の個数とする。あるいは、この画像処理能力指数の合計よりも大きな値の個数のＲＩＰモジュール２１０を起動してもよい。画像処理能力指数の合計を用いてＲＩＰモジュール２１０の個数を決定する変形例においても、図５の例の手順の処理によってページ割り当ての制御を行うことにより、同時にＲＩＰ処理を実行するＲＩＰモジュール２１０の数は、マルチＣＰＵ１１４の処理能力に基づいて設定されるＳｍａｘに制限される。
【符号の説明】
【００７３】
１００  印刷データ変換装置、１１０  コントローラ、１４０  ホストコンピュータ、１６０  印刷制御装置、１７０  プリンタエンジン、２０２  印刷文書受信部、２０４  印刷文書格納部、２０６  印刷文書選択部、２０８  並列処理制御部、２１０−１〜２１０−６  ＲＩＰモジュール、２２０  画像処理装置、２３０  処理実行制御部、２３２  ＲＩＰモジュール管理情報。
【図１】
0005482528.tif 000002
【図２】
0005482528.tif 000003
【図３】
0005482528.tif 000004
【図４】
0005482528.tif 000005
【図５】
0005482528.tif 000006
【図６】
0005482528.tif 000007
【図７】
0005482528.tif 000008