説明

印刷文書変換装置及びプログラム

【課題】ソフトウエアでRIPを実行するソフトウエア変換手段がハードウエア画像処理装置に画像処理を依頼することによりソフトウエア変換手段の待ち状態が発生したとしても、ソフトウエア変換手段を実行するプロセッサの処理能力を活用する。
【解決手段】RIPモジュール210は、ページ記述言語で記述された印刷文書データをビットマップ画像形式のページ画像データに変換するためのソフトウエア変換処理を行う。画像処理装置220は、特定の画像処理を実行する。RIPモジュール210−1,210−2は、ソフトウエア変換処理のうち特定の画像処理を画像処理装置220に対して依頼する。RIPモジュール210−1,210−2のうち少なくとも1つが画像処理装置220による画像処理の完了を待つ状態が生じ得る場合、並列処理制御部240は、追加のRIPモジュール210−3を起動する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、印刷文書変換装置及びプログラムに関する。
【背景技術】
【0002】
PostScript(登録商標)やPDF(Portable Data Format: ISO 32000-1) などのページ記述言語(以下、PDLと呼ぶ。PDLはPage Description Languageの略)で記述された印刷データは、RIP(Raster Image Processor)と呼ばれる変換モジュールによりビットマップ画像(ラスター画像とも呼ばれる)に変換され、プリンタにより印刷される。変換モジュールは、PDLの解釈という言語系の処理を行う必要があるため、一般にはソフトウエアで実現されている。
【0003】
しかし、RIPが行う処理の中には、ビットマップ画像オブジェクトに対する画像処理(例えば色空間変換、回転、拡大縮小)などのように、汎用コンピュータによるソフトウエア処理よりは、専用のハードウエア画像処理回路を用いた方が高速に実行できる処理もある。そこで、ソフトウエアRIPモジュールが、ハードウエア画像処理回路に対して画像処理を依頼するシステムが提案されている。
【0004】
特許文献1に開示されたシステムは、印刷文書を中間言語(ディスプレイリスト)に変換するに当たり、図形描画処理をハード向けとソフト向けにそれぞれ振り分けて、ハード向け及びソフト向けの中間言語コードを生成する。そして、ハード向けコードをハードウエア回路に、ソフト向けコードをソフトウエアにそれぞれ供給して並列に処理を実行させる。
【0005】
特許文献2に開示された印刷装置は、ソフトウエアによる描画を行う描画部と、ハードウエアによる描画を行う描画部と、を備え、印刷文書から作成されたディスプレイリストに従った描画処理を行う際に、描画部の負荷状況に応じて、ハードウエアによる描画を行う描画部及びソフトウエアによる描画を行う描画部のいずれによって処理を実行するかを決定する。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2006−007496号公報
【特許文献2】特開2009−269179号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
ところで、近年のプロセッサのマルチコア化により、RIPのためのソフトウエアを複数のプロセッサコアにより並列実行することで、処理の高速化を図ることも考えられる。ここで、RIPソフトウエアが並列実行される数よりもハードウエアの画像処理装置の数が少ない構成では、並列実行されているうちのあるRIPソフトウエアが画像処理装置に画像処理を依頼しても、すべての画像処理装置が既に他の依頼を処理している場合には、その依頼はすぐには処理されない。画像処理装置による処理の完了をRIPソフトウエアが待つ間、当該RIPソフトウエアを実行するプロセッサは処理を行わずに待ち状態となる。
【0008】
本発明は、ソフトウエアでRIPを実行するソフトウエア変換手段がハードウエア画像処理装置に画像処理を依頼することによりソフトウエア変換手段の待ち状態が発生したとしても、ソフトウエア変換手段を実行するプロセッサの処理能力を活用できる印刷文書変換装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
請求項1に係る発明は、ページ記述言語で記述された印刷文書データをビットマップ画像形式のページ画像データに変換するためのソフトウエア変換処理を行う複数のソフトウエア変換手段であって、前記ソフトウエア変換処理のうちの特定の画像処理の実行を、前記特定の画像処理を実行するハードウエア画像処理装置に対して依頼し、この依頼に応じて前記ハードウエア画像処理装置が実行した画像処理の結果を含む前記ページ画像データを生成する複数のソフトウエア変換手段と、前記複数のソフトウエア変換手段のうち少なくとも1つが前記ハードウエア画像処理装置による前記画像処理の完了を待つ状態が生じ得る場合に、前記ソフトウエア変換処理を行う追加のソフトウエア変換手段を起動する制御手段と、を備えることを特徴とする印刷文書変換装置である。
【0010】
請求項2に係る発明は、請求項1に係る発明において、前記制御手段は、前記追加のソフトウエア変換手段が前記特定の画像処理の実行を前記ハードウエア画像処理装置に依頼せずに自身で実行するよう制御する。
【0011】
請求項3に係る発明は、請求項1又は2に係る発明において、前記制御手段は、さらに、前記ハードウエア画像処理装置に対して前記特定の画像処理の実行を依頼する前記ソフトウエア変換手段の数を、前記ハードウエア画像処理装置の処理能力に基づいて定まる数に制限する。
【0012】
請求項4に係る発明は、コンピュータを、ページ記述言語で記述された印刷文書データをビットマップ画像形式のページ画像データに変換するためのソフトウエア変換処理を行う複数のソフトウエア変換手段であって、前記ソフトウエア変換処理のうちの特定の画像処理の実行を、前記特定の画像処理を実行するハードウエア画像処理装置に対して依頼し、この依頼に応じて前記ハードウエア画像処理装置が実行した画像処理の結果を含む前記ページ画像データを生成する複数のソフトウエア変換手段、前記複数のソフトウエア変換手段のうち少なくとも1つが前記ハードウエア画像処理装置による前記画像処理の完了を待つ状態が生じ得る場合に、前記ソフトウエア変換処理を行う追加のソフトウエア変換手段を起動する制御手段、として機能させるためのプログラムである。
【発明の効果】
【0013】
請求項1又は4に係る発明によると、ソフトウエアでRIPを実行するソフトウエア変換手段がハードウエア画像処理装置に画像処理を依頼することによりソフトウエア変換手段の待ち状態が発生したとしても、ソフトウエア変換手段を実行するプロセッサの処理能力を活用できる。
【0014】
請求項2に係る発明によると、追加のソフトウエア変換手段がハードウエア画像処理装置の画像処理の完了待ち状態となることを防止できる。
【0015】
請求項3に係る発明によると、ソフトウエア変換手段によるハードウエア画像処理装置に対する画像処理の依頼を、ハードウエア画像処理装置の処理能力の範囲内に制限できる。
【図面の簡単な説明】
【0016】
【図1】実施形態の装置が実装される印刷システムのハードウエア構成の一例を示す図である。
【図2】実施形態の装置が実装される印刷システムのハードウエア構成の別の一例を示す図である。
【図3】実施形態の印刷データ変換装置の一例を示す機能ブロック図である。
【図4】並列処理制御部の処理の手順の一例を示すフローチャートである。
【図5】RIPモジュールの処理の手順の一例を示すフローチャートである。
【図6】実施形態の印刷データ変換装置の別の一例を示す機能ブロック図である。
【図7】実施形態の印刷データ変換装置のさらに別の一例を示す機能ブロック図である。
【発明を実施するための形態】
【0017】
以下、図面を参照して、本発明の実施形態を説明する。各図において、互いに同一又は類似の構成要素には、同一の符号を付す。
【0018】
まず、図1を参照して、実施形態の印刷データ変換装置が実装されるシステムの一例を説明する。このシステムは、印刷データ変換装置100,ホストコンピュータ140,印刷制御装置160及びプリンタエンジン170を備える。
【0019】
印刷データ変換装置100は、ページ記述言語(以下、PDLと呼ぶ。PDLはPage Description Languageの頭字語)で記述された印刷文書データを、プリンタエンジン170が取扱可能なビットマップ画像等の印刷画像データに変換する装置である。ホストコンピュータ140は、LAN(ローカルエリアネットワーク)130等のネットワークを介して印刷データ変換装置100に対して印刷文書データを送り、その印刷文書データの印刷を指示する。
【0020】
印刷データ変換装置100は、コントローラ110を備える。コントローラ110は、ローカルバス122を介して相互に通信可能に接続された通信制御部112及び120,マルチCPU114,ローカルメモリ116,及び二次記憶装置118を備える。通信制御部112は、LAN130を介してホストコンピュータ140とデータ通信を行う装置である。通信制御部112は、例えば、ホストコンピュータ140から印刷指示や印刷文書データを受信したり、印刷制御のための情報をホストコンピュータ140との間でやりとりしたりする。マルチCPU114は、複数のCPUコアを搭載したプロセッサパッケージである。ローカルメモリ116は、マルチCPU114の各CPUコアが例えば作業用領域として使用する一次記憶であり、例えばランダムアクセスメモリなどから構成されている。二次記憶装置118は、ハードディスク装置又はEEPROM(Electrically Erasable Programmable Read Only Memory)などの比較的大容量の不揮発性記憶装置であり、マルチCPU114が実行するプログラムや、ホストコンピュータ140から受信した印刷文書データなどを記憶する。後述するRIPモジュール210等の各種機能モジュールの処理内容を記述した制御プログラムが、例えばこの二次記憶装置118に記憶され、マルチCPU114により実行される。制御プログラムのうちの一部は、マルチCPU114の複数のCPUコアにより並列実行可能となっている。マルチCPU114は、制御プログラムを実行することにより、印刷文書データを各ページの印刷画像データへと変換する。通信制御部120は、システム内ネット150と呼ぶネットワークを介して印刷制御装置160とデータ通信を行う装置である。この例では、印刷データ変換装置100と印刷制御装置160(及びプリンタエンジン170)とはシステム内ネット150を介して相互接続されることで1つの印刷システムを構成している。マルチCPU114の処理により生成された各ページの印刷画像データは、通信制御部120及びシステム内ネット150を介して印刷制御装置160に送信される。
【0021】
画像処理装置125は、例えばグラフィックアクセラレータなどの、画像処理専用のハードウエア画像処理回路を備えた装置である。このハードウエア画像処理回路は、例えば、色空間変換、画像の拡大・縮小、画像の回転、ハーフトーン処理等といった各種ビットマップ画像処理のうちの1以上を実行するための回路構成を備えている。画像処理装置125は、例えばコントローラ110のローカルバス122上に設けられたスロットに、例えば増設ボードとして接続しても良い。
【0022】
マルチCPU114で実行されるRIP処理プログラム(後述するRIPモジュール210)は、画像処理装置125に画像処理などを依頼し、その処理結果を受け取ってページ画像データの作成に用いることができる。ただし、後述するように、RIPモジュール210自体も、同じ画像処理をソフトウエアで実行することができる。
【0023】
プリンタエンジン170は、印刷画像データが表す画像をインクやトナーなどの色材を用いて用紙に対して印刷する印刷ハードウエアである。印刷制御装置160は、プリンタエンジン170を制御する装置であり、通信制御部162,ページ制御部164及びエンジン制御部166を備える。通信制御部162は、システム内ネット150を介して印刷データ変換装置100と通信し、各ページの印刷画像データを受信したり、印刷制御のために必要な各種の制御情報をやりとりしたりする。ページ制御部164は、受信された各ページの印刷画像データを蓄積し、印刷順序に従ってエンジン制御部166に送る。エンジン制御部166は、受け取ったページの印刷画像データをプリンタエンジン170に供給する。プリンタエンジン170は、受け取った印刷画像データを用紙に印刷する。
【0024】
図2に、実施形態の装置が実装されるシステムの別の例を示す。図1の例では、印刷データ変換装置100内に画像処理装置125が設けられていたのに対し、図2の例では、画像処理装置125が備えるハードウエア画像処理回路と同様の画像処理回路182を備える画像処理装置180が、印刷データ変換装置100の外に設けられている。画像処理装置180は、印刷データ変換装置100が備える通信装置127が接続されたネットワーク186に接続されており、このネットワーク186を介して印刷データ変換装置100から画像処理の依頼を受け取ったり、画像処理の結果を返したりする。ネットワーク186は、システム内ネット150(又はLAN130)と同じネットワークであってもよく、この場合、通信装置127は、通信制御部120(又は112)と同じものでもよい。また、画像処理装置180は、ネットワーク186を介した通信や、印刷データ変換装置100からの依頼の管理などを行う制御部184を備えている。
【0025】
次に、図3を参照して、実施形態の印刷データ変換装置100の機能モジュール構成の一例を説明する。図3に例示する印刷データ変換装置100の機能モジュール構成は、画像処理装置220を除き、コントローラ110のマルチCPU114が制御プログラムを実行することにより実現される。
【0026】
図3において、印刷文書受信部202は、ホストコンピュータ140から印刷文書データを受信する。印刷文書格納部204は、ホストコンピュータ140から受信されたPDLの印刷文書データを格納する。印刷文書データは、一例として、ページ独立のPDL(例えばPDF)で記述されたデータであってもよい(ただし、これに限らない)。ページ独立とは、ページの印刷画像データを記述する情報が当該ページについてのPDLデータのみで表されており、他のページについてのPDLデータに依存しないことをいう。印刷文書格納部204には、複数の印刷文書データを、例えばその印刷順序の情報と共に格納してもよい。印刷文書選択部206は、印刷文書格納部204に格納された印刷文書データの中から、印刷処理の対象とするものを選択する。例えば、印刷順序の情報に従って、実行中の印刷処理が終了するごとに、次の印刷文書データを印刷対象に選択する。
【0027】
ページ割り当て制御部208は、各RIPモジュール210−1〜210−3(以下、区別する必要のない場合はRIPモジュール210と総称する)に対して、印刷文書データのうちのそれぞれ異なるページを割り当てる。割り当ての仕方は特に限定されない。例えば、RIPモジュール210の番号に従って先頭ページから順に固定的に割り当てる方式でもよいし、ページの変換処理が終了したRIPモジュール210から順に動的にページを割り当てる方式でもよい。ページのこの割り当ては、ページ割り当て制御部208からRIPモジュール210に対して、例えば、割り当て対象のページ番号を通知することにより行えばよい。
【0028】
RIPモジュール210は、印刷文書選択部206が選択した印刷処理対象の印刷文書データのうち、ページ割り当て制御部208から指定されたページの部分のデータを印刷画像データへと変換する。すなわち、RIPモジュール210は、指定されたページのPDLデータを先頭から順に解釈し、ページメモリ上に描画(ラスタライズ)することで、そのページの印刷画像データを生成する。なお、PDFフォーマットの印刷文書データの場合、その文書が含む各ページのPDLデータのインデックス情報を含んでいる。各RIPモジュール210は、印刷文書格納部204に格納された印刷文書データ内のそのインデックス情報を参照することで、ページ割り当て制御部208から指定されたページ番号に対応するページのPDLデータを取得すればよい。
【0029】
RIPモジュール210は、PDLで記述された印刷文書データを解釈し、プリンタエンジン170が取扱可能なビットマップ(ラスター)画像に変換するソフトウエアモジュールである。例えば、RIPモジュール210は、割り当てられたページのPDLデータを先頭から順に解釈していく中で、フォント、イメージ、フォームなどの画像オブジェクトを描画する描画コマンドを検出すると、その描画コマンドを実行し、ローカルメモリ116上に確保された各画素の記憶領域にそのコマンドに従って画素値を書き込んでいく。また、RIPモジュール210は、そのようにして形成されたビットマップ画像に対して、PDLデータ内のコマンドや設定に応じて、色空間変換、回転、拡大・縮小、ハーフトーン処理などといった画像処理を実行する機能を有する。
【0030】
各RIPモジュール210−1〜210−3は、上述のような処理内容を記述したプログラム群をマルチCPU114の各CPUコアに実行させることにより、上述の処理内容を実行する装置として実現される。RIPモジュール210−1〜210−3は、それぞれプロセス又はスレッドとしてCPUコアで実行される。典型的な例では、1つのCPUコアが1つのRIPモジュール210を実行するが、これに限らず、1つのCPUコアが複数のRIPモジュール210を実行してもよい。図3では、3つのRIPモジュール210が実行されているが、これは一例に過ぎない。印刷データ変換装置100において実行されるRIPモジュール210の数は、後述の並列処理制御部240により決定される。
【0031】
上述のように、各RIPモジュール210は、それぞれ自身で画像処理を実行することができる。しかし、その画像処理専用のハードウエアである画像処理装置220の方が通常は処理が早いので、基本動作としては、RIP処理の中で画像処理を行う必要が生じると、各RIPモジュール210は画像処理装置220に対して画像処理を依頼する。ただし、後述するように、複数のRIPモジュール210が画像処理をハードウエアの画像処理装置220に依頼すると、これらのRIPモジュール210が画像処理装置220による処理の完了を待つ状態となり、マルチCPU114のCPUコアがRIP処理を実行していない状態になり得る。このような状態のCPUコアを活用するため、本実施形態では、後に詳述するように、画像処理装置220に画像処理を依頼する複数のRIPモジュール210に加えて、追加のRIPモジュール210を起動して実行させる制御を行う。図3では、RIPモジュール210−3が追加で起動されるRIPモジュールの例である。
【0032】
以上で説明したように、この実施形態では、複数のRIPモジュール210により複数のページを並列的にRIP処理する。各RIPモジュール210は、1ページ分のPDLデータの変換処理を終えると、ページ画像メモリ上に形成された当該ページの印刷画像データを印刷制御装置160経由でプリンタエンジン170に供給する。
【0033】
画像処理装置220は、RIPモジュール210のソフトウエア処理による画像処理と同じ画像処理をハードウエア画像処理回路にて実行する装置であり、図1に示した画像処理装置125又は図2に示した画像処理装置180に相当する。図1の例では、画像処理装置220は、RIPモジュール210のソフトウエア処理による画像処理と同様の処理を実行可能なハードウエア画像処理回路を1つだけ備えているものとする。
【0034】
処理実行制御部230は、RIPモジュール210が発する画像処理装置220への画像処理の依頼を受け付け、依頼された画像処理を画像処理装置220に実行させる。また、処理実行制御部230は、画像処理装置220による画像処理が完了すると、その画像処理結果を依頼元のRIPモジュール210に渡す。
【0035】
画像処理装置220はハードウエア処理を行うので、処理速度自体は、RIPモジュール210がソフトウエア処理により同じ処理を行う場合よりも速い。ただし、画像処理装置220において、あるRIPモジュール210から依頼された画像処理を実行している間に他のRIPモジュール210から画像処理の依頼を受けた場合、画像処理装置220は、先に依頼された画像処理が完了してから、後に依頼された画像処理を開始する。このため、複数のRIPモジュール210が画像処理装置220に対して画像処理を依頼したとすると、これらのRIPモジュール210のすべてが画像処理装置220による処理の完了待ち状態となる場合もある。この場合、RIPモジュール210を実行するマルチCPU114のCPUコアは、RIPモジュール210のいずれかが画像処理装置220の画像処理結果を受け取ってRIP処理を再開するまで、RIP処理を実行していない状態となる。追加のRIPモジュール210の起動により、このような場合のCPUコアが活用される。
【0036】
並列処理制御部240は、印刷データ変換装置100において実行するRIPモジュール210の数を決定する。また、並列処理制御部240は、各RIPモジュール210について、画像処理を画像処理装置220に依頼するか自身で実行させるかを制御する。並列処理制御部240の制御は、画像処理装置管理情報232を参照して行われる。
【0037】
画像処理装置管理情報232は、並列処理制御部240による制御の判断材料となる管理情報である。画像処理装置管理情報232は、画像処理装置220の処理能力に関する情報を含む。画像処理装置管理情報232は、例えば、印刷データ変換装置100において利用可能な画像処理装置220の数及び各画像処理装置220が備える画像処理回路の数を含む。ここで、「利用可能な画像処理装置220」とは、RIPモジュール210からの依頼を受けて画像処理を実行可能な画像処理装置であれば、印刷データ変換装置100の内部に設けられていてもよいし(図1の画像処理装置125)、印刷データ変換装置100の外に設けられていてもよい(図2の画像処理装置180)。図1〜図3に示す例では、画像処理装置管理情報232は、利用可能な画像処理装置220の数「1」を含む。また、図1〜図3の例において、1つの画像処理装置220が備える画像処理回路の数「1」も画像処理装置管理情報232に含まれる。さらに、本実施形態の画像処理装置管理情報232は、利用可能な各画像処理装置220に含まれる画像処理回路のそれぞれについて、1つのRIPモジュール210の処理能力に対する当該画像処理回路の処理能力の比を示す画像処理能力指数を含む。ここで、「処理能力」とは、ある単位量の画像データを処理するのに要する時間(つまり、処理速度)を意味する。画像処理能力指数は、画像処理回路がRIPモジュール210の何倍の処理能力を有するかを表す値であるとも言える。例えば、同じ画像処理をRIPモジュール210の1/2の時間で画像処理回路が実行可能な場合、当該画像処理回路の画像処理能力指数は「2」となる。画像処理能力指数は、例えば、画像処理装置220及びRIPモジュール210に対してそれぞれテスト用の画像を処理させてその処理時間を測定する実験などにより求め、印刷データ変換装置100に登録しておけばよい。ここでは、簡単のために、各RIPモジュール210の処理能力は同一であるものと想定するが、同一でない場合は、RIPモジュール210ごとに、画像処理装置220に関する画像処理能力指数を画像処理装置管理情報232に組み込んでおけばよい。図1〜図3を参照する本例では、画像処理装置220が備える1つの画像処理回路の画像処理能力指数を「2」であるとする。なお、画像処理能力指数の値自体を画像処理装置管理情報232に組み込んでおく代わりに、画像処理能力指数の値を求める材料となる情報を画像処理装置管理情報232に組み込んでおいてもよい。画像処理能力指数の値を求める材料となる情報は、例えば、画像処理装置220の各画像処理回路及び各RIPモジュール210の処理能力を表す数値である。これらの数値の比を求めることで画像処理能力指数の値が求められる。
【0038】
上述のような画像処理装置管理情報232を参照して、並列処理制御部240は、利用可能な画像処理装置220中の各画像処理回路の画像処理能力指数の合計を求める。図1〜図3を参照する上述の例では、1つの画像処理回路を備える1つの画像処理装置220を利用可能であり、当該画像処理回路の画像処理能力指数が「2」であることから、画像処理能力指数の合計は2=1(画像処理回路の数)×2(当該画像処理回路の画像処理能力指数)となる。本実施形態では、並列処理制御部240は、画像処理能力指数の合計に相当する数(本例では「2」)のRIPモジュール210を起動することを決定する。画像処理能力指数の合計が整数でなければ、例えば、小数点以下を切り上げ、切捨て、あるいは四捨五入した整数の個数だけRIPモジュール210を起動すればよい。画像処理能力指数の合計は、RIPモジュール210の何個分の処理能力の画像処理回路を印刷データ変換装置100において利用可能であるかを表す値であると捉えられる。このため、当該合計に相当する数のRIPモジュール210を起動して、画像処理装置220に画像処理を依頼させても、この数のRIPモジュール210だけで同じ画像処理を実行する場合と比較して全体の処理完了までの時間が長くなる可能性は低いと考えられる。ただし、画像処理回路1つ当り複数のRIPモジュール210が画像処理を依頼することになるため、上記で説明したように、複数のRIPモジュール210のうち1つ以上が画像処理完了待ち状態となり、RIP処理を実行していないCPUコアが生じる可能性がある。このようなCPUコアの活用のため、並列処理制御部240は、画像処理能力指数の合計に相当する数のRIPモジュール210に加えて、追加で起動するRIPモジュール210の数を決定する。追加のRIPモジュール210の数は、例えば、画像処理回路の数と同じ数とすればよい。あるいは、マルチCPU114が備えるCPUコアの数に基づいて追加のRIPモジュールの数を決定してもよい。例えば、CPUコアの数より少ない数とする。あるいは、例えば、CPUコアの数と同じにしてもよい。こうすれば、画像処理装置を利用可能なすべてのRIPモジュールが画像処理装置に依頼して待ちになっている場合にも、CPUコア能力をフルに活用できる。
【0039】
また、本実施形態の並列処理制御部240は、画像処理能力指数の合計に相当する数のRIPモジュール210については、画像処理を画像処理装置220に依頼するように、追加で起動するRIPモジュール210については、画像処理を画像処理装置220に依頼せずに自身で実行するように制御する。並列処理制御部240は、例えば、画像処理能力指数の合計に相当する数のRIPモジュール210の起動時に、これらのRIPモジュール210に対し、画像処理を画像処理装置220に依頼するよう指示し、追加のRIPモジュール210の起動時には、画像処理を自身で実行するよう指示する。各RIPモジュール210は、このような並列処理制御部240の指示に従って、画像処理を画像処理装置220に依頼するか、あるいは、自身で実行する。以下、画像処理を画像処理装置220に依頼するRIPモジュール210を「ハードウエア利用可能な」RIPモジュールと呼び、画像処理を自身で実行する追加のRIPモジュール210を「ハードウエア利用不可の」RIPモジュールと呼ぶこともある。図3の例では、RIPモジュール210−1,210−2がハードウエア利用可能なRIPモジュールであり、RIPモジュール210−3がハードウエア利用不可のRIPモジュールである。
【0040】
並列処理制御部240において、ハードウエア利用可能なRIPモジュール及びハードウエア利用不可のRIPモジュールの数を上述のように決定して起動すると、ハードウエア利用可能なRIPモジュールが画像処理装置220による画像処理完了待ち状態となっていても、ハードウエア利用不可のRIPモジュールが実行されることから、CPUコアでRIP処理を行わない状態が生じる可能性が低減される。
【0041】
以上、図1〜図3を参照し、実施形態の印刷データ変換装置が実装されるシステムの構成例及び印刷データ変換装置における並列的なRIP処理の制御の様子を説明した。なお、上述の印刷文書選択部206、ページ割り当て制御部208、処理実行制御部230、及び並列処理制御部240は、マルチCPU114内のいずれかのCPUコアにて実行される。以下、印刷データ変換装置100の動作の例を説明する。
【0042】
図4は、並列処理制御部240が行う処理の手順の例を示すフローチャートである。印刷データ変換装置100の電源(図示しない)が投入されて印刷データ変換装置100が起動されると、並列処理制御部240は、図4の例の手順の処理を開始する。
【0043】
まず、並列処理制御部240は、画像処理装置管理情報232を取得する(ステップS10)。図3を参照する上述の例では、ステップS10で、利用可能な画像処理装置220が1つであること、この画像処理装置220が画像処理回路を1つ備えること、及びこの画像処理回路の画像処理能力指数が「2」であることを示す画像処理装置管理情報232が取得される。
【0044】
次に、並列処理制御部240は、ハードウエア利用可能なRIPモジュール210の数を決定し、決定した数のRIPモジュール210を起動する(ステップS12)。このとき、並列処理制御部240は、起動するRIPモジュール210に対し、画像処理を画像処理装置220に依頼するよう指示する。図3を参照する上述の例の場合、ステップS12で、RIPモジュール210−1,210−2が起動される。印刷データ変換装置100がホストコンピュータ140から印刷指示を受けると、ページ割り当て制御部208によって、ステップS12で起動されたRIPモジュール210−1,210−2に対して、印刷文書データのRIP処理を担当するページが割り当てられる。各RIPモジュール210−1,210−2は、担当ページについてRIP処理を行う。このRIP処理において画像処理が必要な場合、各RIPモジュール210−1,210−2は、画像処理装置220に対して画像処理を依頼する。
【0045】
並列処理制御部240は、ステップS12で起動したRIPモジュール210の少なくとも1つが画像処理装置220の画像処理完了待ち状態になるまで、RIPモジュール210の動作を監視する(ステップS14でNOの場合の処理ループ)。
【0046】
ステップS12で起動したRIPモジュール210の少なくとも1つが画像処理装置220の画像処理完了待ち状態になると(ステップS14でYES)、並列処理制御部240は、追加のRIPモジュール210を起動する(ステップS16)。並列処理制御部240は、追加で起動されるRIPモジュール210に対し、画像処理を画像処理装置220に依頼せずに自身で実行させるように制御する。図3に示すRIPモジュール210−3は、ステップS16で起動される追加のRIPモジュールの例である。
【0047】
ステップS16の後、並列処理制御部240の処理は終了する。ページ割り当て制御部208は、ステップS16で起動された追加のRIPモジュールに対してもページを割り当てる。追加のRIPモジュールは、画像処理も含めて、担当ページのRIP処理のすべてを自身で行う。
【0048】
図4の例の手順により、ハードウエア利用可能なRIPモジュールが画像処理待ち状態になったときに起動されるRIPモジュールにおいて、ソフトウエア処理で画像処理を含むRIP処理が行われるため、マルチCPU114のCPUコアでRIP処理を実行していない状態が生じる可能性が低減される。例えば、図3の例において、RIPモジュール210−1〜210−3を実行するマルチCPU114がCPUコアを2つ備え、1つのCPUコアが1つのRIPモジュール210を実行するものとする。この例で、ハードウエア利用可能なRIPモジュール210−1が画像処理を画像処理装置220に依頼して処理待ち状態になり、1つのCPUコアがRIPモジュール210−1のRIP処理を中断しても、当該CPUコアは、追加で起動されるRIPモジュール210−3の実行に利用される。また、さらに、RIPモジュール210−2が画像処理待ち状態となり、これに対応するCPUコアがRIP処理を中断したとしても、RIPモジュール210−3のソフトウエア処理によるRIP処理は継続されるため、マルチCPU114の2つのCPUコアのうち、少なくとも1つは、RIP処理を実行していることになる。
【0049】
図5は、各RIPモジュール210の処理の手順の例を示すフローチャートである。各RIPモジュール210は、並列処理制御部240によって起動されると、図5の例の手順の処理を開始する。
【0050】
RIPモジュール210は、まず、ページ割り当て制御部208からページが割り当てられるまで待機する(ステップS20でNOの場合の処理ループ)。
【0051】
ページが割り当てられると(ステップS20でYES)、RIPモジュール210は、割り当てられた担当ページの印刷文書データを印刷文書格納部204から取得する(ステップS22)。
【0052】
取得した印刷文書データを解釈し、RIP処理において画像処理を行う必要があるか否かを判定する(ステップS24)。
【0053】
画像処理を行う必要がある場合(ステップS24でYES)、さらに、画像処理装置220を利用可能であるか否かを判定する(ステップS26)。ステップS26の判定は、並列処理制御部240から画像処理を画像処理装置220に依頼するよう指示されているか、自身で実行するよう指示されているかを判定することで行う。言い換えると、当該RIPモジュール210がハードウエア利用可能なRIPモジュールとして起動されたか、ハードウエア不可のRIPモジュールとして起動されたかを判定することで行う。
【0054】
画像処理を画像処理装置220に対して依頼するよう並列処理制御部240から指示されていれば(ステップS26でYES)、RIPモジュール210は、画像処理装置220に対し、担当ページのRIP処理において必要な画像処理を依頼する(ステップS28)。この依頼を受けた画像処理装置220における画像処理の完了を待ち、画像処理が完了すると、画像処理装置220から処理結果を取得する(ステップS30)。図3に示すRIPモジュール210−1,210−2の場合、ステップS26でYES判定されてステップS28,S30の処理を行う。
【0055】
画像処理を自身で実行するよう並列処理制御部240から指示されていれば(ステップS26でNO)、RIPモジュール210は、自身で画像処理を実行する(ステップS32)。図3に示すRIPモジュール210−3の場合、ステップS26でNO判定されてステップS32の処理を行う。
【0056】
RIPモジュール210は、ステップS30で画像処理装置から取得した画像処理結果又はステップS32で自身が実行した画像処理の結果を用いて、担当ページの印刷画像データを生成する(ステップS34)。また、担当ページのRIP処理において画像処理が必要ない場合(ステップS24でNO)、RIPモジュール210は、ステップS34で、画像処理を伴わないRIP処理により担当ページの印刷画像データを生成する。ステップS34で生成された印刷画像データは、印刷制御装置160のページ制御部164に渡される。
【0057】
ステップS34の後、処理はステップS20に戻り、RIPモジュール210は、次のページ割り当てを待ち受ける。
【0058】
以上、図1〜図5を参照し、利用可能な画像処理装置220が1つだけであり、画像処理装置220が備える画像処理回路も1つだけである場合を例にとり、本発明の一実施形態を説明した。当然ながら、画像処理装置220の数及び各画像処理装置220が備える画像処理回路の数は上述の例に限定されない。例えば図6に示すように、印刷データ変換装置100は、複数の画像処理装置220を利用可能であってよい。図6は、それぞれ1つの画像処理回路222を有する2つの画像処理装置220−1,220−2を印刷データ変換装置100が利用可能である例を示す。図6の画像処理装置220−1,220−2は、図1〜図3を参照して説明した例と同様、印刷データ変換装置100の内部に設けられていてもよいし、印刷データ変換装置100の外に設けられていてもよい。図6の例において、画像処理装置管理情報232は、画像処理装置220の数「2」、各画像処理装置220が備える画像処理回路222の数「1」、及び各画像処理装置220−1,220−2の画像処理能力指数「2」を含むものとする。本例の場合、画像処理能力指数の合計は「4」となるため、並列処理制御部240は、4個のハードウエア利用可能なRIPモジュール210−1〜210−4を起動する(図6では、RIPモジュール210−2,210−3の図示を省略)。さらに、図6の例で、2つのハードウエア利用不可のRIPモジュール210−5,210−6が起動される。
【0059】
さらに他の例では、図7に示すように、複数の画像処理回路を有する画像処理装置220を利用可能であってもよい。図7は、2つの画像処理回路222−1,222−2を有する1つの画像処理装置220を利用可能である例である。画像処理装置220は、さらに、2つの画像処理回路222−1,222−2への処理の割り当てなどを制御する画像処理制御部224を備える。画像処理制御部224は、処理実行制御部230を介してRIPモジュール210からの画像処理依頼を受け付け、依頼された画像処理を画像処理回路222−1,222−2のいずれかに実行させ、処理結果を処理実行制御部230に返す。図7の例の画像処理装置管理情報232は、利用可能な画像処理装置220の数「1」、画像処理装置220が備える画像処理回路222の数「2」、及び各画像処理回路222の画像処理能力指数「2」を含むとする。本例において、画像処理能力指数の合計は「4」であり、並列処理制御部240は、4個のハードウエア利用可能なRIPモジュール210−1〜210−4(図7では、RIPモジュール210−2,210−3の図示を省略)を起動する。さらに、図7の例では、1つのハードウエア利用不可のRIPモジュール210−5が起動される。
【0060】
図6及び図7のいずれの例でも、並列処理制御部240及び各RIPモジュール210は、図4及び図5を参照して上記で説明したのと同様の手順で処理を行えばよい。
【0061】
以上、図1〜図7を参照して説明した実施形態では、印刷データ変換装置100で実行されるRIPモジュール210のうち、ハードウエア利用可能なRIPモジュールの数が画像処理回路の画像処理能力指数に相当する数に制限される。この数を超えて追加で起動されるRIPモジュール210は、画像処理装置220を利用しない。
【0062】
本発明の実施の形態は、図1〜図7を参照して上記で説明した態様に限定されない。例えば、上述の実施形態の並列処理制御部240は、少なくとも1つのハードウエア利用可能なRIPモジュール210が処理待ち状態になった時点でハードウエア利用不可のRIPモジュール210を追加で起動するが、追加のRIPモジュール210の起動のタイミングは、これと異なっていてよい。一変形例では、2つ以上のハードウエア利用可能なRIPモジュール210が処理待ち状態になった時点で追加のRIPモジュール210を起動してもよい。さらに他の変形例では、ハードウエア利用可能なRIPモジュール210の画像処理待ち状態が実際に発生する前に、追加のRIPモジュール210を起動しておいてもよい。例えば、ハードウエア利用可能なRIPモジュール210とハードウエア利用不可のRIPモジュール210との両方を印刷データ変換装置100の起動時に起動しておく。以上で例示したいずれのタイミングでハードウエア利用不可のRIPモジュール210を起動しても、ハードウエア利用可能なRIPモジュール210が処理待ち状態になることでRIP処理を中断するマルチCPU114のCPUコアは、ハードウエア利用不可のRIPモジュール210のRIP処理の実行に用いられることになる。
【0063】
また、以上で説明した実施形態及び変形例では、追加のRIPモジュール210を起動した後、ページ割り当て制御部208は、追加のRIPモジュール210に対しても、ハードウエア利用可能なRIPモジュール210に対するのと同様にページ割り当てを行う。上述の実施形態及び変形例において、ハードウエア利用可能なRIPモジュール210の画像処理待ち状態の有無に応じて、追加のRIPモジュール210に対するページ割り当てを行うか否かを決定してもよい。例えば、並列処理制御部240又はページ割り当て制御部208においてハードウエア利用可能なRIPモジュール210の動作を監視し、画像処理待ち状態のRIPモジュール210が存在するときには、ページ割り当て制御部208により追加のRIPモジュール210に対する新たなページの割り当てを行い、画像処理待ち状態のRIPモジュール210が存在しないときには、ページ割り当て制御部208により追加のRIPモジュール210に対する新たなページの割り当てを行わないようにする。あるいは、例えば、図4の例の手順において、ハードウエア利用可能なRIPモジュール210で処理待ち状態が発生して追加のRIPモジュール210を起動した後(ステップS16の後)、ハードウエア利用可能なRIPモジュール210の処理待ち状態が解消されると、当該追加のRIPモジュール210を終了させ(削除し)てもよい。この例において、処理待ち状態が解消された時点で追加のRIPモジュール210で実行中のRIP処理があれば、このRIP処理が完了してから当該追加のRIPモジュール210を終了させる。また、この例では、追加のRIPモジュール210を終了させた後、図4のステップS14の判定に戻り、ハードウエア利用可能なRIPモジュール210の処理待ち状態が発生した時点で、再度、追加のRIPモジュール210を起動させればよい。
【符号の説明】
【0064】
100 印刷データ変換装置、110 コントローラ、140 ホストコンピュータ、160 印刷制御装置、170 プリンタエンジン、202 印刷文書受信部、204 印刷文書格納部、206 印刷文書選択部、208 ページ割り当て制御部、210−1〜210−6 RIPモジュール、220 画像処理装置、230 処理実行制御部、232 画像処理装置管理情報、240 並列処理制御部。

【特許請求の範囲】
【請求項1】
ページ記述言語で記述された印刷文書データをビットマップ画像形式のページ画像データに変換するためのソフトウエア変換処理を行う複数のソフトウエア変換手段であって、前記ソフトウエア変換処理のうちの特定の画像処理の実行を、前記特定の画像処理を実行するハードウエア画像処理装置に対して依頼し、この依頼に応じて前記ハードウエア画像処理装置が実行した画像処理の結果を含む前記ページ画像データを生成する複数のソフトウエア変換手段と、
前記複数のソフトウエア変換手段のうち少なくとも1つが前記ハードウエア画像処理装置による前記画像処理の完了を待つ状態が生じ得る場合に、前記ソフトウエア変換処理を行う追加のソフトウエア変換手段を起動する制御手段と、
を備えることを特徴とする印刷文書変換装置。
【請求項2】
前記制御手段は、前記追加のソフトウエア変換手段が前記特定の画像処理の実行を前記ハードウエア画像処理装置に依頼せずに自身で実行するよう制御する、
ことを特徴とする請求項1に記載の印刷文書変換装置。
【請求項3】
前記制御手段は、さらに、前記ハードウエア画像処理装置に対して前記特定の画像処理の実行を依頼する前記ソフトウエア変換手段の数を、前記ハードウエア画像処理装置の処理能力に基づいて定まる数に制限する、
ことを特徴とする請求項1又は2に記載の印刷文書変換装置。
【請求項4】
コンピュータを、
ページ記述言語で記述された印刷文書データをビットマップ画像形式のページ画像データに変換するためのソフトウエア変換処理を行う複数のソフトウエア変換手段であって、前記ソフトウエア変換処理のうちの特定の画像処理の実行を、前記特定の画像処理を実行するハードウエア画像処理装置に対して依頼し、この依頼に応じて前記ハードウエア画像処理装置が実行した画像処理の結果を含む前記ページ画像データを生成する複数のソフトウエア変換手段、
前記複数のソフトウエア変換手段のうち少なくとも1つが前記ハードウエア画像処理装置による前記画像処理の完了を待つ状態が生じ得る場合に、前記ソフトウエア変換処理を行う追加のソフトウエア変換手段を起動する制御手段、
として機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2012−22503(P2012−22503A)
【公開日】平成24年2月2日(2012.2.2)
【国際特許分類】
【出願番号】特願2010−159619(P2010−159619)
【出願日】平成22年7月14日(2010.7.14)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】