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