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