(57)【要約】【課題】    本発明によれば、レンダリングに要する負荷を実質的に均等に分散することが可能になり、且つ、１つの印刷ジョブの全ページの印刷を高速に完了させる。【解決手段】  マスタプリンタは、受信した印刷データを解釈し、中間データであるディスプレイリストデータをページ単位に生成していき、全ページの中間データの生成が完了すると、それをスレーブプリンタに転送する。マスタプリンタはページ番号１、２の昇順にレンダリング（ＲＩＰ）処理を行ない、スレーブプリンタは最終ページから降順にレンダリングする。そして、全ページのレンダリングが完了したとき、マスタプリンタが保持しているレンダリング結果のページ数が、全ページの半分に満たない場合、該当するページ分のレンダリング結果をスレーブプリンタから受信する。この後、それぞれのプリンタで実質的に同じページ数の印刷処理を行なう。【選択図】  図１２
2007213234.tif 000002
【特許請求の範囲】
【請求項１】
それぞれがネットワーク通信手段を有し、少なくとも２台の印刷装置で構成される印刷システムであって、
一方の印刷装置が複数ページの印刷ジョブに関連する第１ページ群のデータの変換処理を行ない、他方の印刷装置が前記複数ページの印刷ジョブに関連する第２ページ群のデータの変換処理を行ない、前記複数ページの印刷ジョブに関連する全ページの印刷データを生成するデータ変換手段と、
前記データ変換手段によって、全ページの変換処理が終了する場合、それぞれの印刷装置が、それぞれの印刷装置の印刷速度に応じた配分ページ数分の印刷データを保持するため、配分ページ数を超過するページ数の印刷データを保持している印刷装置から、配分ページ数に満たない印刷データを保持している印刷装置に前記印刷データを転送する印刷データ配分手段と、
該印刷データ配分手段による印刷データの配分後、それぞれの印刷装置に割り当てられたページ数の印刷を、それぞれの印刷装置が保持する印刷データに基づき行なう印刷手段と
を備えることを特徴とする印刷システム。
【請求項２】
前記データ変換手段は、一方の印刷装置が昇順、他方の印刷装置が降順にページ単位の変換処理を行ない、それぞれの印刷装置で変換処理するページが互いに隣り合うまで繰り返して前記全ページの印刷データを生成することを特徴とする請求項１に記載の印刷システム。
【請求項３】
ネットワークから印刷ジョブを受信した印刷装置がマスタ印刷装置として機能し、
前記マスタ印刷装置は、前記印刷ジョブに基づいて前記第１ページ群のデータ及び前記第２ページ群のデータからなる中間データを生成する中間データ生成手段と、
スレーブ印刷装置として機能する前記他方の印刷装置に前記中間データを送信する中間データ分配手段を備えることを特徴とする請求項１又は２に記載の印刷システム。
【請求項４】
前記中間データ分配手段は、前記中間データ生成手段が前記印刷ジョブの全ページの中間データを生成した後に、前記スレーブ印刷装置に前記全ページの中間データを送信することを特徴とする請求項３に記載の印刷システム。
【請求項５】
前記中間データ分配手段は、前記中間データ生成手段が前記印刷ジョブの１ページ分の中間データを生成する度に、前記スレーブ印刷装置に前記１ページ分の中間データを送信することを特徴とする請求項３に記載の印刷システム。
【請求項６】
前記印刷ジョブが、ページ独立型のページ記述言語で記述されている場合、前記一方の印刷装置が前記第１ページ群のデータを生成し、前記他方の印刷装置が前記第２ページ群のデータを生成することを特徴とする請求項１又は２に記載の印刷システム。
【請求項７】
前記印刷装置は、前記複数ページの印刷ジョブを生成するためのイメージスキャナを備えることを特徴とする請求項１乃至６のいずれか１項に記載の印刷システム。
【請求項８】
ネットワークと通信するネットワーク通信手段を有し、他の印刷装置と前記ネットワークを介して接続される印刷装置であって、
前記ネットワーク通信手段を介してデータを受信する受信手段と、
該受信手段で受信したデータが印刷ジョブ発生源からの印刷ジョブであるか、他の印刷装置から転送されてきた中間データであるかに応じて、マスタ印刷装置、スレーブ印刷装置のいずれとして機能するかを識別する識別手段と、
該識別手段でマスタ印刷装置として機能すると識別した場合、受信した印刷ジョブから中間データを生成する中間データ生成手段と、
該中間データ生成手段で生成された中間データを、スレーブ印刷装置として機能する相手先印刷装置に転送する転送手段と、
前記識別手段がマスタ印刷装置として機能すると識別した場合は前記中間データ生成手段が生成した中間データを変換処理して印刷データを生成し、前記識別手段がスレーブ印刷装置として機能すると識別した場合は前記受信手段が受信した中間データを変換処理して印刷データを生成するデータ変換手段と、
該データ変換手段で変換処理するページに関する情報を記述したメッセージを相手先印刷装置に送信すると共に、前記相手先印刷装置から前記相手先印刷装置が変換処理するページに関する情報が記述されたメッセージを受信するメッセージ通信手段と、
前記メッセージ通信手段が受信する受信メッセージに基づき、前記データ変換手段で次に変換処理しようとするページが前記相手印刷装置で変換処理している、或いは、変換処理が完了しているか否かを判定することで、マスタ印刷装置とスレーブ印刷装置の両方によって全ページの変換処理が終了するか否かを判断する判断手段と、
該判断手段が全ページの変換処理が終了すると判断した場合、自身の印刷速度と相手先印刷装置の印刷速度の比率に応じて決定される配分ページ数と、前記データ変換手段が変換処理して生成した印刷データの変換ページ数とを比較し、前記変換ページ数が前記配分ページ数を超える場合には超過分のページ数の印刷データを相手先印刷装置に送信し、前記変換ページ数が前記配分ページ数に満たない場合には、不足分の印刷データを相手先印刷装置より受信する印刷データ通信手段と、
該印刷データ通信手段による通信した後、自身に割り当てられたページ数分の印刷データに基づき印刷処理する印刷手段と
を備えることを特徴とする印刷装置。
【請求項９】
前記データ変換手段は、前記識別手段がマスタ印刷装置として機能すると識別した場合は前記中間データ生成手段が生成した中間データを昇順にページ単位で変換処理し、前記識別手段がスレーブ印刷装置として機能すると識別した場合は前記受信手段が受信した中間データを降順にページ単位で変換処理し、それぞれの印刷装置で変換処理するページが互いに隣り合うまで繰り返して前記全ページの印刷データを生成することを特徴とする請求項８に記載の印刷装置。
【請求項１０】
前記転送手段は、前記中間データ生成手段によって前記印刷ジョブにかかる全ページの中間データが生成された後に、前記全ページの中間データをスレーブ印刷装置に転送することを特徴とする請求項８又は９に記載の印刷装置。
【請求項１１】
前記中間データ生成手段は、先頭ページから昇順に１ページ単位の中間データを生成し、
前記データ変換手段は、自身がマスタ印刷装置として機能する場合には、最終ページから降順にページ単位の変換処理を行ない、自身がスレーブ印刷装置として機能する場合には、先頭ページから昇順にページ単位の変換処理を行なう
ことを特徴とする請求項８又は９に記載の印刷装置。
【請求項１２】
前記受信手段で受信した印刷ジョブがページ独立型のページ記述言語で記述された印刷データであるか否かを判断する第２の判断手段と、
該第２の判断手段で、ページ独立型のページ記述言語の印刷ジョブを受信したと判断し、且つ、前記識別手段でマスタ印刷装置として機能すると判断した場合、受信した印刷ジョブをスレーブ印刷装置に転送すると共に、前記転送手段による転送を中止する第２の転送手段と、
該第２の判断手段で、ページ独立型のページ記述言語の印刷ジョブを受信したと判断し、且つ、前記識別手段でスレーブ印刷装置として機能すると判断した場合、受信した印刷ジョブから中間データを生成する第２の中間データ生成手段と
を備えることを特徴とする請求項８又は９に記載の印刷装置。
【請求項１３】
ネットワークと通信するネットワーク通信手段を有し、他の印刷装置と前記ネットワークを介して接続される印刷装置の制御方法であって、
前記ネットワーク通信手段を介してデータを受信する受信工程と、
該受信工程で受信したデータが印刷データ発生源からの印刷ジョブであるか、他の印刷装置から転送されてきた中間データであるかに応じて、マスタ印刷装置、スレーブ印刷装置のいずれとして機能するかを識別する識別工程と、
該識別工程でマスタ印刷装置として機能すると識別した場合、受信した印刷ジョブから中間データを生成する中間データ生成工程と、
該生成工程で生成された中間データを、スレーブ印刷装置として機能する相手先印刷装置に転送する転送工程と、
前記識別工程でマスタ印刷装置として機能すると識別した場合は前記中間データ生成工程にて生成した中間データを変換処理して印刷データを生成し、前記識別工程でスレーブ印刷装置として機能すると識別した場合は前記受信工程にて受信した中間データを変換処理して印刷データを生成するデータ変換工程と、
該データ変換工程で変換処理するページに関する情報を記述したメッセージを相手先印刷装置に送信すると共に、前記相手先印刷装置から前記相手先印刷装置が変換処理するページに関する情報が記述されたメッセージを受信するメッセージ通信工程と、
前記メッセージ通信工程が受信する受信メッセージに基づき、前記データ変換工程で次に変換処理しようとするページが前記相手印刷装置で変換処理している、或いは、変換処理が完了しているか否かを判定することで、マスタ印刷装置とスレーブ印刷装置の両方によって全ページの変換処理が終了するか否かを判断する判断工程と、
該判断工程で全ページの変換処理が終了すると判断した場合、自身の印刷速度と相手先印刷装置の印刷速度の比率に応じて決定される配分ページ数と、前記データ変換工程にて変換処理により生成された変換ページ数とを比較し、前記変換ページ数が前記配分ページ数を超える場合には超過分のページ数の印刷データを相手先印刷装置に送信し、前記変換ページ数が前記配分ページ数に満たない場合には、不足分の印刷データを相手先印刷装置より受信する印刷データ通信工程と、
該印刷データ通信工程による通信した後、自身に割り当てられたページ数分の印刷データに基づき印刷処理する印刷工程と
を備えることを特徴とする印刷装置の制御方法。
【請求項１４】
ネットワークと通信するネットワーク通信手段を有し、他の印刷装置と前記ネットワークを介して接続される印刷装置であって、
印刷ジョブを前記ネットワーク通信手段を介して受信する受信手段と、
受信した印刷ジョブから中間データを生成する中間データ生成手段と、
該中間データ生成手段で生成された中間データを、前記他の印刷装置に転送する転送手段と、
前記中間データ生成手段が生成した中間データを変換処理して印刷データを生成するデータ変換手段と、
該データ変換手段で変換処理するページに関する情報を記述したメッセージを前記他の印刷装置に送信すると共に、前記他の印刷装置から前記他の印刷装置が変換処理するページに関する情報が記述されたメッセージを受信するメッセージ通信手段と、
該メッセージ通信手段が受信する受信メッセージに基づき、前記データ変換手段で次に変換処理しようとするページが前記他の印刷装置で変換処理している、或いは、変換処理が完了しているか否かを判定することで、自身と前記他の印刷装置の両方によって全ページの変換処理が終了するか否かを判断する判断手段と、
該判断手段で全ページの変換処理が終了すると判断した場合、自身の印刷速度と前記他の印刷装置の印刷速度の比率に応じて決定される配分ページ数と、前記データ変換手段が変換処理して生成した印刷データの変換ページ数とを比較し、前記変換ページ数が前記配分ページ数を超える場合には超過分のページ数の印刷データを前記他の印刷装置に送信し、前記変換ページ数が前記配分ページ数に満たない場合には、不足分の印刷データを前記他の印刷装置より受信する印刷データ通信手段と、
該印刷データ通信手段による通信した後、自身に割り当てられたページ数分の印刷データに基づき印刷処理する印刷手段と
を備えることを特徴とする印刷装置。
【請求項１５】
前記データ変換手段は、前記中間データ生成手段が生成した中間データを昇順にページ単位で変換処理し、自身と前記他の印刷装置で変換処理するページが互いに隣り合うまで繰り返して前記全ページの印刷データを生成することを特徴とする請求項１４に記載の印刷装置。
【請求項１６】
ネットワークと通信するネットワーク通信手段を有し、他の印刷装置と前記ネットワークを介して接続される印刷装置の制御方法であって、
印刷ジョブを前記ネットワーク通信手段を介して受信する受信工程と、
受信した印刷ジョブから中間データを生成する中間データ生成工程と、
該中間データ生成工程で生成された中間データを、前記他の印刷装置に転送する転送工程と、
前記中間データ生成手段が生成した中間データを変換処理して印刷データを生成するデータ変換工程と、
該データ変換工程で変換処理するページに関する情報を記述したメッセージを前記他の印刷装置に送信すると共に、前記他の印刷装置から前記他の印刷装置が変換処理するページに関する情報が記述されたメッセージを受信するメッセージ通信工程と、
該メッセージ通信工程が受信する受信メッセージに基づき、前記データ変換工程で次に変換処理しようとするページが前記他の印刷装置で変換処理している、或いは、変換処理が完了しているか否かを判定することで、自身と前記他の印刷装置の両方によって全ページの変換処理が終了するか否かを判断する判断工程と、
該判断工程で全ページの変換処理が終了すると判断した場合、自身の印刷速度と前記他の印刷装置の印刷速度の比率に応じて決定される配分ページ数と、前記データ変換工程が変換処理して生成した印刷データの変換ページ数とを比較し、前記変換ページ数が前記配分ページ数を超える場合には超過分のページ数の印刷データを前記他の印刷装置に送信し、前記変換ページ数が前記配分ページ数に満たない場合には、不足分の印刷データを前記他の印刷装置より受信する印刷データ通信工程と、
該印刷データ通信工程による通信した後、自身に割り当てられたページ数分の印刷データに基づき印刷処理する印刷工程と
を備えることを特徴とする印刷装置の制御方法。
【請求項１７】
ネットワークと通信するネットワーク通信手段を有し、他の印刷装置と前記ネットワークを介して接続される印刷装置であって、
前記他の印刷装置より、前記他の印刷装置が印刷ジョブから生成した中間データを受信する受信手段と、
前記受信手段が受信した中間データを変換処理して印刷データを生成するデータ変換手段と、
該データ変換手段で変換処理するページに関する情報を記述したメッセージを前記他の印刷装置に送信すると共に、前記他の印刷装置から前記他の印刷装置が印刷処理するページに関する情報が記述されたメッセージを受信するメッセージ通信手段と、
該メッセージ通信手段が受信する受信メッセージに基づき、前記データ変換手段で次に変換処理しようとするページが前記他の印刷装置で変換処理している、或いは、変換処理が完了しているか否かを判定することで、自身と前記他の印刷装置の両方によって全ページの変換処理が終了するか否かを判断する判断手段と、
該判断手段で全ページの変換処理が終了すると判断した場合、自身の印刷速度と前記他の印刷装置の印刷速度の比率に応じて決定される配分ページ数と、前記データ変換手段が変換処理して生成した印刷データの変換ページ数とを比較し、前記変換ページ数が前記配分ページ数を超える場合には超過分のページ数の印刷データを前記他の印刷装置に送信し、前記変換ページ数が前記配分ページ数に満たない場合には、不足分の印刷データを前記他の印刷装置より受信する印刷データ通信手段と、
該印刷データ通信手段による通信した後、自身に割り当てられたページ数分の印刷データに基づき印刷処理する印刷手段と
を備えることを特徴とする印刷装置。
【請求項１８】
ネットワークと通信するネットワーク通信手段を有し、他の印刷装置と前記ネットワークを介して接続される印刷装置であって、
前記他の印刷装置より、前記他の印刷装置が印刷ジョブから生成した中間データを受信する受信工程と、
前記受信工程にて受信した中間データを変換処理して印刷データを生成する変換工程と、
該データ変換工程で変換処理するページに関する情報を記述したメッセージを前記他の印刷装置に送信すると共に、前記他の印刷装置から前記他の印刷装置が印刷処理するページに関する情報が記述されたメッセージを受信するメッセージ通信工程と、
該メッセージ通信工程にて受信される受信メッセージに基づき、前記データ変換工程で次に変換処理しようとするページが前記他の印刷装置で変換処理している、或いは、変換処理が完了しているか否かを判定することで、自身と前記他の印刷装置の両方によって全ページの変換処理が終了するか否かを判断する判断工程と、
該判断工程で全ページの変換処理が終了すると判断した場合、自身の印刷速度と前記他の印刷装置の印刷エンジンの処理速度の比率に応じて決定される印刷配分ページ数と、前記データ変換工程にて変換処理して生成した印刷データの変換ページ数とを比較し、前記変換ページ数が前記配分ページ数を超える場合には超過分のページ数の印刷データを前記他の印刷装置に送信し、前記変換ページ数が前記配分ページ数に満たない場合には、不足分の印刷データを前記他の印刷装置より受信する印刷データ通信工程と、
該印刷データ通信工程による通信した後、自身に割り当てられたページ数分の印刷データに基づき印刷処理する印刷工程と
を備えることを特徴とする印刷装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の印刷装置で１つの印刷ジョブを分散印刷する技術に関するものである。
【背景技術】
【０００２】
従来より複数のプリンタを用いて分散印刷を実行することにより、印刷完了時間を早めるクラスタシステムが多数存在している。プリンタの出力速度にも上限があり、また、１台の高価な高速プリンタよりも複数の安価なプリンタを使用する方がコスト的に有利に働く場合があることがその理由である。
【０００３】
分散の単位としては複数部数の印刷が指定されたプリントジョブの部数を複数のプリンタで分担して出力する技術が知られている。また、単一部数のプリントジョブ中の複数ページを複数のプリンタで分担して出力する技術も知られている。
【０００４】
クラスタシステムの構成としては、プリントデータのＲＩＰ（ラスターイメージ処理）を行い、複数のプリンタにＲＩＰ済みのイメージデータを分配する専用のクラスタサーバを用いる構成がある。また、プリンタで受信したプリントデータに対してＲＩＰを行うマスタプリンタと、ＲＩＰ済みのイメージデータをマスタープリンタから受信し出力するスレブプリンタとで構成する場合がある。
【０００５】
専用のクラスタサーバを用いる場合は高性能なホストコンピュータにより高速なＲＩＰを実現することが容易である。しかし、プリンタの数＋クラスタサーバ分の設置スペースが必要となり、省スペースの点で問題がある。また、ネットワーク上には全ページ分のイメージデータ転送のトラフィックが発生する。また、クラスタサーバは高速な処理能力を有するものが求められるので、コスト的にも問題が残る。
【０００６】
後者の構成に近いものとして、マスタプリンタは受信したプリントデータに対してページ解釈を行って中間データであるディスプレイリストデータを生成し、他のプリンタにそのディスプレイリストデータを転送する技術が存在する（例えば、特許文献１参照）。この構成によれば、ディスプレイリストデータを受信する側のプリンタは、ディスプレイリストデータからイメージデータへ変換すれば良いので、処理が簡略化され、高速な印刷が可能になる。プリントデータとして広く使われているページ記述言語（ＰＤＬ）はページ独立性がない場合があり並列処理には向かない。その点、ディスプレイリストデータはページ間の依存関係が無いため並列処理を行うことが容易であり、効率的なページ分散クラスタを実現することができる。また、ディスプレイリストデータはイメージデータに比べて、データサイズが小さくなる場合が多く、データ転送のトラフィックの問題も軽減できる。
【特許文献１】特開２００４−２８８０７１公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、ディスプレイリストデータからイメージデータへの変換時間、すなわちＲＩＰに要する時間はページ毎に異なる。これは、ページ毎に描画オブジェクトの個数や複雑度が大きく異なるからである。従って、Ｎページで構成される或る文書を印刷するため、２つのプリンタそれぞれＮ／２ページの印刷データを分散して印刷を行なわせても、各プリンタが自身に割り当てられたＮ／２ページページの印刷処理が完了するタイミングが同じにはならない。むしろ、描画オブジェクトの個数や複雑度が大きいページを多く含むディスプレイリストデータに印刷するプリンタの印刷完了するタイミングが、他のプリンタのそれよりも随分と遅くなることが多い。
【０００８】
本発明は上記問題点を解決するためになされたものである。そして、本発明の１つの目的は、複数の印刷装置を用いて１つの印刷ジョブに基づく分散印刷を行なう場合に、複数の印刷装置の印刷処理が完了するタイミングの差を更に縮めることで、１つの印刷処理が完了するまでに要する時間を更に縮める技術を提供しようとするものである。
【課題を解決するための手段】
【０００９】
この課題を解決するため、例えば本発明の印刷システムは以下の構成を備える。すなわち、
それぞれがネットワーク通信手段を有し、少なくとも２台の印刷装置で構成される印刷システムであって、
一方の印刷装置が複数ページの印刷ジョブに関連する第１ページ群のデータの変換処理を行ない、他方の印刷装置が前記複数ページの印刷ジョブに関連する第２ページ群のデータの変換処理を行ない、前記複数ページの印刷ジョブに関連する全ページの印刷データを生成するデータ変換手段と、
前記データ変換手段によって、全ページの変換処理が終了する場合、それぞれの印刷装置が、それぞれの印刷装置の印刷速度に応じた配分ページ数分の印刷データを保持するため、配分ページ数を超過するページ数の印刷データを保持している印刷装置から、配分ページ数に満たない印刷データを保持している印刷装置に前記印刷データを転送する印刷データ配分手段と、
該印刷データ配分手段による印刷データの配分後、それぞれの印刷装置に割り当てられたページ数の印刷を、それぞれの印刷装置が保持する印刷データに基づき行なう印刷手段とを備える。
【発明の効果】
【００１０】
本発明によれば、複数ページの印刷ジョブの各ページのデータ変換処理に要する負荷を、複数の印刷装置を用いて実質的に均等に分散することが可能になり、且つ、１つの印刷ジョブの全ページの印刷を高速に完了させることが可能になる。
【発明を実施するための最良の形態】
【００１１】
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。
【００１２】
図１は、本発明の実施例を示す印刷システムの全体の構成を説明するシステム構成図である。本画像形成装置２００は、画像入力デバイスであるスキャナ部２０７０、画像出力デバイスであるプリンタ部２０９５、コントロールユニット２０００、ユーザインターフェースである操作部２０１２から構成される。スキャナ部２０７０、プリンタ部２０９５、操作部２０１２は、それぞれコントロールユニット２０００に接続される。コントロールユニット２０００は、ＬＡＮ２０１１などのネットワーク伝送手段（ネットワークインタフェース）に接続されている。なお、ＬＡＮは有線、無線を問わない。また、ＬＡＮ２０１１には、画像形成装置２００と同様の構成を持つ他の画像形成装置２２０、２３０が接続されている。画像形成装置２２０は、スキャナ部２２７０、プリンタ部２２９５、操作部２２１２を持ち、それらがコントロールユニット２２００に接続されている。また、画像形成装置２３０も、スキャナ部２３７０、プリンタ部２３９５、操作部３２１２を持ち、それらがコントロールユニット２３００に接続されている。
【００１３】
また、ＬＡＮ２０１１には、パーソナルコンピュータ等で代表されるホストコンピュータ２１００が接続されている。
【００１４】
なお、図示では、１台のホストコンピュータ２１００、３台の画像形成装置２００、２２０、２３０がＬＡＮ２０１１に接続されている例を示しているが、それらの数は問わない。また、ＬＡＮ２０１１には他のネットワークデバイスが接続されていても構わない。
【００１５】
図２は、画像形成装置２００の構成を説明するブロック図である。他の画像形成装置２２０、２３０も同様の構成を有するものとし、その説明は省略する。
【００１６】
コントロールユニット２０００は画像入力デバイスであるスキャナ部２０７０や画像出力デバイスであるプリンタ部２０９５と接続する。また、このコントロールユニット２０００はＬＡＮ２０１１や公衆回線(WAN)２０５１と接続することで、画像情報やデバイス情報の入出力を行うＣＰＵ２００１は画像形成装置２０００全体を制御するコントローラである。ＲＡＭ２００２はＣＰＵ２００１が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリとしても利用される。ＲＯＭ２００３はブートＲＯＭであり、システムのブートプログラムが格納されている。ＨＤＤ２００４はハードディスクドライブで、システムソフトウェア、画像データを格納する。なお、実施形態では、ＨＤＤ２００４を例にしているが、記憶容量の大きければ、他のストレージデバイスであても構わない。
【００１７】
操作部Ｉ／Ｆ２００６は操作部(ＵＩ)２０１２と通信するためのインターフェースである。この操作部Ｉ／Ｆは、操作部２０１２が有する液晶表示器等の表示装置に表示すべき画像データを出力したり、ユーザによる操作部２０１２が有する各種スイッチ、ボタン、タッチパネルへの入力をＣＰＵ２００１に伝える役割を有する。
【００１８】
ネットワークＩ／Ｆ２０１０はＬＡＮ２０１１と通信するためのインタフェースである。Modem２０５０は公衆回線２０５１に接続し、情報の入出力を行う。以上のデバイスがシステムバス２００７上に配置される。イメージバスI/F２００５はシステムバス２００７と画像データを高速で転送するイメージバス２００８を接続し、データ構造を変換するバスブリッジである。イメージバス２００８は、ＰＣＩバスまたはＩＥＥＥ１３９４で構成される。
【００１９】
イメージバス２００８上には以下のデバイスが配置される。
【００２０】
イメージプロセッサ(RIP)２０６０はディスプレイリストをラスタイメージに展開する。デバイスＩ／Ｆ２０２０は、画像入出力デバイスであるスキャナ部２０７０やプリンタ部２０９５とイメージバス２００８とを信号線２０７１、２０９６を介して接続するインタフェースである。
【００２１】
スキャナ画像処理部２０８０は、スキャナ部２０８０からの画像データをデバイスＩ／Ｆ２０２０を介して入力し、その画像データに対し補正、加工、編集を行う。プリンタ画像処理部 ２０９０は、プリント出力画像データに対して、プリンタの補正、解像度変換、ハーフトーニング等を行い、デバイスＩ／Ｆ２０２０からプリンタ部２０９５に出力する処理を行なう。
【００２２】
画像回転部２０３０は画像データの回転を行う。画像圧縮部２０４０は、多値画像データはＪＰＥＧ、２値画像画像データはＪＢＩＧ、MMR、MHの圧縮伸張処理を行う。
【００２３】
画像形成装置２００の外観を図３に示す。画像入力デバイスであるスキャナ部２０７０は、原稿となる紙上の画像を照明し、ＣＣＤラインセンサ(図示せず)を走査することで、ラスターイメージデータ２０７１として電気信号に変換する。原稿用紙は原稿フィーダ２０７２のトレイ２０７３にセットされる。装置使用者が操作部２０１２から読み取り起動指示することにより、コントローラＣＰＵ２００１がスキャナ部２０７０に指示を与える。この結果、フィーダ２０７２は原稿用紙を１枚ずつフィードし、原稿読み取り面に原稿用紙を搬送する。これにより、原稿の画像を読取ることになる。
【００２４】
画像出力デバイスであるプリンタ部２０９５は、ラスターイメージデータ２０９６を用紙上に画像を形成する。この形成する際の方式は感光体ドラムや感光体ベルトを用いた電子写真方式、微少ノズルアレイからインクを吐出して用紙上に直接画像を印字するインクジェット方式等があるが、どの方式でも構わない。プリント動作の起動は、コントローラＣＰＵ２００１からの指示を信号線２０９６を介して出力することで開始する。プリンタ部２０９５には、異なる用紙サイズまたは異なる用紙向きを選択できるように複数の給紙段を持ち、それに対応した用紙カセット２１０１、２１０２、２１０３がある。また、排紙トレイ２１１１は印字し終わった用紙を受けるものである。
【００２５】
操作部２０１２の構成を図４に示す。ＬＣＤ表示部２０１３は、ＬＣＤ上にタッチパネルシート２０１９が貼られており、システムの操作画面およびソフトキーを表示するとともに、表示してあるキーが押されるとその位置情報をコントローラＣＰＵ２００１に伝える。スタートキー２０１４は原稿画像の読み取り動作を開始する時などに用いる。スタートキー２０１４の中央部には、緑と赤の２色ＬＥＤ２０１８があり、いずれか一方を点灯することで、スタートキー２０１４が使える状態にあるかどうかを報知する。ストップキー２０１５は稼働中の動作を止める働きをする。ＩＤキー２０１６は、使用者のユーザＩＤを入力する時に用いる。リセットキー２０１７は操作部からの設定を初期化する時に用いる。
【００２６】
図５は、実施形態における画像形成装置のソフトウェアブロック構成図である。
【００２７】
１５０１はＵＩ即ちユーザインターフェースを司るものであり、オペレータが本画像形成装置の各種操作・設定を行う際、機器との仲介を行うモジュールである。本モジュールは、オペレータの操作に従い、後述の各種モジュールに入力情報を転送し処理の依頼、或いはデータの設定等を行う。
【００２８】
１５０２はAddress-Book即ちデータの送付先、通信先等を管理するデータベースモジュールである。Address-Bookの内容は、UI １５０１からの操作によりデータの追加、削除、取得が行われ、オペレータの操作により後述の各モジュールにデータの送付・通信先情報を与えるものとして使用されるものである。
【００２９】
１５０４はUniversal-Send即ち、データの配信を司るモジュールであり、UI １５０１によりオペレータに指示されたデータを、同様に指示された通信（出力）先に配布するものである。また、オペレータにより、本機器のスキャナ機能を使用し配布データの生成が指示された場合は、後述のControl-API １５１９を介して機器を動作させ、データの生成を行う。１５０５はUniversal-Send １５０４内で出力先にプリンタが指定された際に実行されるモジュールである。１５０６はUniversal-Send １５０４内で通信先にE-mailアドレスが指定された際に実行されるモジュールである。１５０７はUniversal-Send １５０４内で出力先にデータベースが指定された際に実行されるモジュールである。１５０８はUniversal-Send １５０４内で出力先に本機器と同様の画像形成装置が指定された際に実行されるモジュールである。
【００３０】
１５０９はPDLモジュールであり、本画像形成装置の外部から送信されたPDL(Page Description Language)文書を、本画像形成装置のプリント機能を使用してプリントする機能を実現する。１５０９ PDL内部の１５３１はJob-Ticket-Parserであり、PDLデータと一緒に受信したJob-Ticketデータを解釈するモジュールである。Job-Ticketでは印刷メディアや部数、後処理、各種色処理、画像処理方法が指定可能である。これらの情報はJob-Ticket-Parser１５３１で解析された後に、後述のControl-API １５１９を介して、後述のJob-Manager１５２０、Print-Manager１５２６、PDL-Interpreter１５２７に伝達される。また、１５１２ HTTPモジュールを使用して外部のWebサーバに格納された電子文書を取り出しプリントする機能も提供するものである。
【００３１】
１５１０はCopyモジュールであり、本画像形成装置のプリンタ機能とスキャナ機能を使用し、UIの指示に基づいてCopy動作を実行するものである。
【００３２】
１５１１はボックスモジュール（Box）である。このボックスモジュール１５１１は、スキャン画像もしくはPDLプリント画像をHDDに格納し、格納した画像のプリンタ機能による印刷、Universal-Send機能による送信、HDDに格納した文書の削除、グルーピング（個別BOXへの格納）、BOX間移動、BOX間コピーなどの管理機能を提供する。
【００３３】
１５１２は本画像形成装置がHTTPにより通信する際に使用されるモジュールである。このモジュール１５１２は、後述のTCP/IP１５１６モジュールにより前述のPDL １５０９モジュールに通信を提供する。１５１３はlprモジュールであり、後述のTCP/IP １５１７モジュールにより前述のUniversal-Send１５０４内のプリンタモジュール１５０５に通信を提供するものである。１５１４はSMTPモジュールであり、後述のTCP/IP １５１７モジュールにより前述のUniversal-Send１５０４内のE-mailモジュール１５０６に通信を提供するものである。１５１５はSLM即ちSalutation-Managerモジュールであり、後述のTCP/IP １５１７モジュールにより前述のUniversal-Send１５０４内のデータベースモジュール１５１７、DPモジュール１５１８に通信を提供するものである。１５１６はLPDモジュールであり、後述のTCP/IP １５１７ モジュールにより、前述のPDL １５０９ モジュールに通信を提供するものである。１５１７はTCP/IP通信モジュールであり、前述の各種モジュールに後述のNetwork-Driverによりネットワーク通信を提供するものである。１５１８はネットワークドライバであり、ネットワークに物理的に接続される部分を制御するものである。
【００３４】
１５１９はControl-APIであり、Universal-Send１５０４、PDL１５０９、Copy１５１０、Box１５１１等の上位モジュールに対し、後述のJob-Manager１５２０等の下位モジュールとのインターフェースを提供する。これにより、Control-API１５１９は上位、及び下位のモジュール間の依存関係を軽減しそれぞれの流用性を高める。
【００３５】
１５２０はJob-Managerであり、前述の各種モジュールよりControl-API １５１９を介して指示される処理を解釈し、後述の各モジュールに指示を与えるものである。また、本モジュールは、本画像形成装置内で実行されるハード的な処理を一元管理するものである。１５２１はCODEC-Managerであり、Job-Manager１５２０が指示する処理の中でデータの各種圧縮・伸長を管理・制御するものである。１５２２はFBE-Encoderであり、Job-Manager １５２０、Scan-Manager １５２５により実行されるスキャン処理により読み込まれたデータをFBEフォーマットにより圧縮するものである。１５２３はJPEG-CODECであり、Job-Manager１５２０、Scan-Manager１５２５により実行されるスキャン処理、及びPrint-Manager １５２６により実行される印刷処理において、読み込まれたデータのJPEG圧縮及び印刷データのJPEG展開処理を行うものである。１５２４はMMR-CODECであり、Job-Manager １５２０、Scan-Manager １５２５により実行されるスキャン処理、及びPrint-Manager １５２６により実行される印刷処理において、読み込まれたデータのMMR圧縮及び印刷データのMMR伸長処理を行うものである。
【００３６】
１５２５はScan-Managerであり、Job-Manager１５２０が指示するスキャン処理を管理・制御するものである。１５２８はScanner I/Fであり、Scan-Manager １５２４と本画像形成装置が内部的に接続しているスキャナ部とのI/Fを提供するものである。
【００３７】
１５２６はPrint-Managerであり、Job-Manager１５１９が指示する印刷処理を管理・制御するものである。１５２９はEngine-I/Fドライバであり、Print-Manager１５２６と印刷部とのI/Fを提供するものである。
【００３８】
１５２７はPDL Interpreterである。このPDL Interpreter１５２７は、Job-Manager１５２０の指示により、LIPS、PostScript、PCL、PDF、SVGなどのPDLもしくは電子文書フォーマットを解釈し、PDLもしくは電子文書フォーマットの種別によらない共通の表現形式であるディスプレイリストを生成する。
【００３９】
１５３０はRenderであり、PDL Interpreter １５２７により生成されたディスプレイリストを、Print-Manager １５２０の指示により、イメージプロセッサを用いてラスタイメージメモリに展開するものである。
【００４０】
次に、図６を用いてページ記述言語を解釈し画像形成を行うRIP処理の流れに関して説明する。
【００４１】
PostScriptインタプリタ３００１は図５のPDL Interpreter１５２７に含まれるモジュールの１つで、PostScript言語で記述されたデータを解釈し中間言語データであるディスプレイリスト３０１７を生成する。
【００４２】
なお、PostScriptインタプリタ３００１内の各モジュールはパイプライン実行する。そして、描画オブジェクト毎に３００４から３０１１までの各モジュールが繰り返し実行され、同一ページ内の全描画オブジェクトに対する処理が終了した時点で１ページ分のディスプレイリストが生成される。
【００４３】
RIP詳細パラメータ３０１６はJob Ticketにより指定された情報のうちRIP処理時に適用されるパラメータ群である。ここで与えられるパラメータとしては、出力カラーモード、RGBソースプロファイル、CMYKシミュレーションプロファイル、出力プロファイルがある。Job Ticketは、前述したように、図５のJob-Ticket-Parser１５３１によって解釈される。
【００４４】
図６のRIP処理の流れでは、各ページに含まれる描画オブジェクトの色によってページ全体がカラーかモノクロかを決定する、出力カラーモード設定Autoを前提に説明する。
【００４５】
言語処理部３００４はPostScript言語データを解釈し、その解釈結果に応じてPostScript言語データを文字処理部３００５、グラフィックス処理部３００６、イメージ処理部３００７のいずれかに出力する。
【００４６】
文字処理部３００５は指定されたフォントから文字ビットマップを生成し、レンダリング処理に対処するための、描画座標、色を含めた所定のフォーマットのデータを生成する。グラフィックス処理部３００６は、コンピュータグラフィックス等の命令を、やはり、レンダリング処理が高速にするための所定形式（色を含む）のデータに変換する。イメージ処理部３００７はイメージデータを共通の内部データ形式に変換する処理を行う。
【００４７】
CMSエンジン３００８はカラーマネージメントを行うモジュールであり、入力色を絶対色空間に変換後、プリンタエンジン固有の出力色（CMYK）を生成するものである。PostScript言語ではDevice色空間、CIEBased色空間、特殊色空間など多様な色空間が規定されている。Device色空間で指定された入力色に関しては、RGBソースプロファイル、CMYKシミュレーションプロファイルなどの予め用意されたICCプロファイル群のうち指定されたものを用いて色変換を行う。CIEBased色空間で指定された入力色に関してはその色空間で指定された変換テーブル、変換関数、変換マトリックスに従い色変換を行う。絶対色空間からプリンタエンジン固有の色空間への変換は出力プロファイルもしくは、PostScriptで規定されたColor Rendering Dictionaryを用いて行う。出力プロファイルに関してはグレイスケールがK単色で表現されることを優先したグレイ補償プロファイルと、グレイスケールをCMYK４色で表現するノーマルプロファイルの二つが選択的に使用可能である。Separation色空間、もしくはDeviceN色空間などで指定された特色についてはNamed ICCプロファイルを用いてプロセスカラー（CMYK）に変換する。
【００４８】
色判定部３００９はCMSエンジンの出力値であるCMYK色を調べ、現在処理中のページがカラーページかモノクロページか判定するものである。色判定はRIP詳細パラメータの出力カラーモードによりAutoが指定された場合にのみ実行される。出力カラーモードにはその他に、カラーとモノクロが指定可能であるが、カラーもしくはモノクロが指定された場合には色判定は実行されない。
【００４９】
ディスプレイリストジェネレータ３０１１は中間言語データであるディスプレイリスト３０１７を生成するものである。また、ディスプレイリスト内には、各オブジェクトの属性フラグが含まれており、オブジェクトがグラフィックス、イメージ、文字の何れであるかが識別される。各属性は文字処理部３００７、グラフィックス処理部３００８、イメージ処理部３００９から通知されたものがそのまま使用される。属性フラグはレンダを経て後段の画像処理に使用される。また、ディスプレイリスト内には、各オブジェクトのラスタオペレーション情報が含まれており、ラスタオペレーション処理が必要なオブジェクトか否かが識別される。
【００５０】
レンダ３００２は、図２のＲＩＰ２０６０に対応する。ＲＩＰ２０６０には、深度８ビット（２５６階調）を有するＣ（シアン）、Ｍ（マゼンタ）、Ｙ（イエロー）、Ｋ（ブラック）のビットマップイメージを格納するための４つのプレーンメモリと、深度２ビットの属性プレーンメモリを有する。
【００５１】
レンダ３００２は、ディスプレイリストを解釈し、４つのプレーンメモリに描画するためのＣ、Ｍ、Ｙ、Ｋのビットマップイメージ３０１８を生成する。言い換えれば、レンダ３００２は、ディスプレイリストからビットマップイメージ（プリンタ部２０９５が印刷処理可能な印刷データ）へのデータ変換処理を実行する。この生成処理は図２のＲＩＰ２０６０を使用して大半の処理が行われる。レンダ３００２ではMask（result = src ＆ dest)、Copy(result = src)、Merge(result = src | dest)などのラスタオペレーションモードを備えている。すなわち、レンダ３００２は、描画オブジェクト毎に指定されたラスタオペレーションモードに従い、既に描画済の描画オブジェクト（背景、dest）と次に描画すべき描画オブジェクト（前景、src）との間でラスタオペレーション処理を実行し、描画結果（result）をページメモリ上に展開する。
【００５２】
また、レンダ３００２はディスプレイリスト３０１７に含まれる属性フラグを元に各デバイスピクセル単位に属性を示す、オブジェクト属性マップ３０１９を５枚目の属性プレーンメモリに書き込む。この属性プレーンメモリは、上記のようにピクセル毎に２ビットの深度を持ち、グラフィックスの画素の場合には“０１”、イメージ（自然画）の画素であれば“１０”、文字／線画の画素であれば“１１”が書き込まれる。
【００５３】
次に、CMYKビットマップ３０１８、オブジェクト属性マップ３０１９は画像処理プロセッサ３００３に送られる。
【００５４】
なおディスプレイリストの作成後に続いてレンダリングが行われるかどうかは、Job Manager１５２０およびPrintManager１５２６による制御に依存する。直ぐにレンダリングが行われない場合は作成した各ページのディスプレイリストは順次ハードディスク２００４の所定の位置に格納される。
【００５５】
画像処理プロセッサ３００３は図５のPrint Manager１５２６の制御下で、レンダ３００２により生成されたCMYKビットマップ３０１８に対して、濃度・カラーバランス調整３０１２、出力ガンマ補正３０１３、ハーフトーニング３０１４などの画像処理を行う。
【００５６】
ハーフトーニング３０１４はオブジェクト属性マップ３０１９を参照してオブジェクト属性毎に異なるハーフトーニングを適用する。例えば、ハーフトーニング３０１４はグラフィックス属性の画像領域に対しては解像度優先の高線数スクリーンを、イメージ属性の画像領域に対しては諧調優先の低解像度スクリーンを、文字属性の画像領域に対しては誤差拡散を適用した処理を行なう。
【００５７】
色判定部３００９で注目ページがモノクロページと判定された場合には、レンダ３００２で作成されたCMYKビットマップ３０１８のうちＫ成分のビットマップのみが画像処理プロセッサ３００４に送られ、最終出力で使用されるKビットマップ３０２１が生成される。また、色判定部３００９で注目ページがカラーページと判定された場合には、レンダ３００２で生成されたCMYKビットマップ３０１８がそのまま画像処理プロセッサ３００２に送られ、最終出力で使用されるCMYKビットマップ３０２０が生成される。こうして、画像処理プロセッサ３００３により生成されたCMYKビットマップ３０２０もしくはKビットマップ３０２１が図５のEngine I/F １５２９を介してプリンタエンジンに転送され、記録紙等の所望の記録メディアに印刷出力されるものである。
【００５８】
なお、本印刷装置は２つの印刷モードを有する。１つは、生成されたCMYKビットマップ３０２０もしくはKビットマップ３０２１の印刷処理と、次のページのページ解釈もしくはレンダリング処理とを並列処理するＲＩＰ・印刷並列モードである。もう１つは、１つのジョブ中の全ページのレンダリング後に、順次印刷処理を行なうＲＩＰ・印刷シーケンシャルモードである。ＲＩＰ・印刷並列モードでは、ページ解釈もしくはレンダリングに時間がかかった場合に、エンジン速度で出力できない可能性がある。一方、ＲＩＰ・印刷シーケンシャルモードの場合は複数ページをエンジン速度で出力することが可能である。これら２つのモードの選択は、ジョブチケットで指定可能であるが、本印刷装置ではＲＩＰ・印刷シーケンシャルモードをデフォルトの動作とする。
【００５９】
以上、実施形態におけるハードウェア／ソフトウェアそれぞれの構成と、各構成要素の機能を説明した。次に、実施形態におけるクラスタ（分散）印刷処理について説明する。
【００６０】
説明を簡単なものとするため、画像形成装置２００、２２０、２３０は同じ機能を有し、且つ、それぞれのプリンタ部の単位時間当たりの印刷枚数は同じであるものとする。そして、ここでは、ここでは画像形成装置２００を例にして説明する。
【００６１】
なお、クラスタ印刷処理では、マスタプリンタとスレーブプリンタとの協動処理が行われる。このときのホストコンピュータ２１００がプリントデータの出力先して指定された画像形成装置がマスタとなり、マスタプリンタが受信したジョブチケット内に記述されたネットワークアドレスで特定される画像形成装置がスレーブとなる。従って、各画像形成装置２００、２２０、２３０はそれぞれがマスタとなり得るし、それぞれがスレーブとなり得る点に注意されたい。
【００６２】
また、以下の説明で「ページ番号」という表現を用いるが、このページ番号は印刷すべき論理ページ番号を示すものであって、ホストコンピュータ２１００が印刷指示した文書の物理ページ番号を意味するものではない。例えば、ホストコンピュータで２００ページの文書を編集していて、そのうちの１０１ページから２００ページを印刷するジョブを発行した場合、実施形態における画像形成装置は論理的に１００ページの文書を印刷するものとして処理する。すなわち、以下の説明での「ページ番号」が“１”は、上記の場合、ユーザが望む文書の１００ページ目を意味することになる。
【００６３】
以下、図７乃至図１１を用いて、クラスタプリント処理の処理手順を説明する。図７乃至図１１のフローチャートに示されるプログラムは図５のJob Manager １５２０とPrint Manager１５２６によって実行されるものである。また、クラスタプリントを行うか否かの指示、及びクラスタプリントを行う場合のスレーブプリンタの指定は、上記の通り、ジョブチケットにより行われる。つまり、Job Ticket Parser１５３１によるジョブチケットの解釈結果がControl API １５１９を介してJob Manager１５２０に通知される。
【００６４】
先ず、ステップＳ１において、ホストコンピュータ（印刷データ発生源）２１００よりクラスタプリントジョブを受信したか否か、すなわち、クラスタプリントのマスタとして機能する要求を受信したか否かを判断する。
【００６５】
クラスタプリントのマスタプリンタの要求を受けたと判断した場合には、ステップＳ２に進み、PostScriptインタプリタを起動し全ページの解釈を行う。この結果、全ページのディスプレイリストデータが生成される。生成されたディスプレイリストデータはＨＤＤ２００４に格納する。なお、この処理によって印刷すべき全ページ数が判明するので、その全ページ数をＰmaxと定義する。
【００６６】
次いで、ステップＳ３に進んで、生成された全ページ分のディスプレイリストデータをスレーブプリンタに転送する。このとき転送するディスプレイリストにはスレーブプリンタとして動作することを指示するJob Ticketが付加される。また、転送したディスプレイリストはマスタープリンタ上でも消去されずに残す。なお、ステップＳ３の処理までは、Job Manager１５２０によって実行される。Job Manager１５２０はPostScriptインタプリタを起動して、ページ解釈のみを実行させることになる。
【００６７】
詳細は後述するが、スレーブプリンタは、ディスプレイリストデータを受信すると、そのレンダリング処理を開始することになる。マスタプリンタにおけるレンダリング処理順序は以下の説明から明らかになるように、ページ番号１、２、…と昇順である。これに対し、スレーブプリンタのレンダリングする順序は、ページ番号Ｐmax,Ｐmax-1、Ｐmax-2の順、すなわち、マスタプリンタのそれとは逆の降順にレンダリングを行なう。そして、スレーブプリンタは、現在、レンダリング中のページ番号をマスタプリンタにメッセージと情報として通知してくる。また、マスタプリンタのスレーブプリンタからのレンダリング処理中のページ番号の通知を受信する処理は、別タスクで行なっているものとする。この別タスクでは、スレーブプリンタからレンダリングページ番号を示すメッセージを受信する度に、ＲＡＭ２００２内の予め設定されたアドレス位置にその情報を上書き（更新）していくものとする。
【００６８】
図１１はマスタプリンタが有する上記の別タスクの処理手順を示している。
【００６９】
先ず、ステップＳ４１では、スレーブプリンタからレンダリング処理中のページ番号を示すメッセージを受信するのを待つ。そのメッセージを受信すると、ステップＳ４２に進んで、メッセージ中のページ番号をＲＡＭ２００２に確保された変数Ｋのアドレス位置にその番号を上書きする。
【００７０】
なお、スレーブプリンタのマスタプリンタからのレンダリング処理中のページ番号の受信、並びに、更新処理も、スレーブプリンタにおけるレンダリング処理とは別タスクであるが、図１１と実質的に同じである。
【００７１】
説明を図７のフローチャートに戻す。全ページ分のディスプレイリストデータのスレーブプリンタへの転送が完了すると、処理はステップＳ４に進んで、変数ｉに初期値として“１”を代入する。そして、ステップＳ５に進んで、ページ番号ｉのレンダリング処理中であることを示すメッセージを生成し、スレーブプリンタに通知（送信）する。この通知を終えると、ステップＳ６に進み、ＨＤＤ２００４に格納されたディスプレイリストデータ中のｉ番目のページのディスプレイリストデータを読み込みレンダリングを行なう。注目しているｉ番目のページのレンダリングが完了すると、処理はステップＳ７に進み、そのレンダリング結果であるビットマップイメージデータをＨＤＤ２００４に格納する。
【００７２】
次いで、ステップＳ８に進んで、スレーブプリンタの現在レンダリング中のページ番号Ｋを、上記ＲＡＭ２００２から取得する。
【００７３】
そして、ステップＳ９において、次にレンダリングすべきページ番号ｉと、スレーブプリンタでレンダリング中のページ番号Ｋから“１”を減じた値を比較し、「ｉ＜Ｋ−１」であるか否かを判断する。これは、スレーブプリンタが次にレンダリングしようとするページが、マスタプリンタ側で既にレンダリングが完了しているか否かを判断していることに他ならない。また、マスタプリンタが次にレンダリングしようとするページが、スレーブプリンタにてレンダリングを開始している、或いは、スレーブプリンタで既にレンダリングが完了しているか否かを判断すると言い換えても良い。
【００７４】
なお、ステップＳ９を、「ｉ＝Ｋ−１？」とせず、「ｉ＜Ｋ−１？」としたのは、一方のプリンタで１ページのレンダリング中に、他方のプリンタでは２ページ以上のレンダリング可能になる場合があるからである。
【００７５】
さて、ステップＳ９の判断が“Ｙｅｓ”の場合、マスタプリンタが次にレンダリングすべきページは、少なくともスレーブプリンタ側ではレンダリングが未着手状態であることになるので、ステップＳ１０に進む。このステップＳ１０では変数ｉとＰmaxと等しいか否か、すなわち、最終ページのレンダリングが完了したか否かを判断する。「ｉ＜Pmax」であると判断した場合には、ステップＳ１１に進んで、変数ｉを“１”だけインクリメントし、ステップＳ５以降の処理を繰り返す。
【００７６】
一方、ステップＳ９において「Ｎｏ」、すなわち、マスタプリンタ側で次にレンダリングすべきページが、スレーブプリンタ側で既にレンダリング処理中、或いは、レンダリングが完了していると判断した場合には、ステップＳ１２に処理を進める。また、ステップＳ１０でＮｏと判断された場合も処理をステップＳ１２に進める。
【００７７】
ここで注意したい点は、ステップＳ１２に処理が進んだ場合、全ページのレンダリングデータが、マスタ、スレーブプリンタそれぞれのレンダリングした結果を足し合わせることで得られる点である。
【００７８】
そこで、ステップＳ１２では、マスタプリンタによってレンダリングしたページ数が、スレーブプリンタによってレンダリングしたページ数と実質的に等しいか否かを判断する。
【００７９】
等しいと判断した場合には、マスタ、スレーブプリンタがレンダリングしたページ数はそれぞれ全ページ数Ｐmaxの半分であることになる。また、実施形態では、マスタ、スレーブプリンタのそれぞれプリンタ部は同じ印刷速度としている。従って、マスタ、スレーブプリンタは実質的に同じ時間で印刷が完了することが約束されることになる。そのため、処理はステップＳ１６に進み、ＨＤＤ２００４に格納されたレンダリング結果のうち、ページ１、２、…の順にビットマップイメージデータを読み込み、ページ１、２、…の順に印刷処理を行ない、一連のクラスタプリント処理を終了する。
【００８０】
また、ステップＳ１２にて「Ｎｏ」と判断された場合、処理はステップＳ１３に進む。ここでは、マスタプリンタでレンダリングしたページ数（変数ｉの値）が、全ページ数の半分を超えているか否かを判断する。
【００８１】
ステップＳ１３にて、マスタプリンタのレンダリングしたページ数が全ページ数の半分を超えていると判断した場合、処理はステップＳ１４に進み、全ページ数の半分を超えたページ数分のレンダリング結果をスレーブプリンタに転送する。転送対象は、マスタプリンタが保持する最終ページから先頭ページに向かうレンダリングデータである。例えば、Ｐmax＝１００であり、マスタプリンタがページ番号「５５」までレンダリングした場合には、ページ番号５１、５２、５３、５４、５５のレンダリング結果をスレーブプリンタに転送する。
【００８２】
また、ステップＳ１３の判断がＮｏの場合、マスタプリンタのレンダリングしたページ数が全ページ数の半分に満たないことになる。そこで、ステップＳ１５にて、マスタプリンタ内のレンダリングしたページ数が、全ぺージ数の半分とすため、不足分をスレーブプリンタから受信し、ＨＤＤ２００４に格納する。受信するのは、スレーブプリンタが保持する先頭ページから最終ページに向かうレンダリングデータである。例えば、Ｐmax＝１００であり、マスタプリンタがページ番号「４５」までレンダリングした場合には、ページ番号４６、４７、４８、４９、５０のレンダリングデータをスレーブプリンタから受信する。
【００８３】
ステップＳ１４、或いは、ステップＳ１５の処理の結果、マスタプリンタのＨＤＤ２００４には、少なくとも、先頭ページから全ページの半分の位置にあるページ数までのレンダリングデータが存在することになる。そこで、ステップＳ１６にて、全ページの前半の印刷処理を行ない、一連のクラスタプリント処理を終了する。
【００８４】
なお、全ページ数Ｐmaxが奇数の場合について補足説明する。全ページ数が奇数の場合、マスタ、スレーブプリンタのいずれか一方は、他方よりも１ページ分だけ多く印刷せざるをえない。
【００８５】
従って、ステップＳ１２では、全ページ数を示すＰmaxが奇数の場合では、マスタ、スレーブプリンタそれぞれのレンダリングしたページ数の差が“１”以下であるかを判断すればよい。マスタプリンタでレンダリングしたページ数は変数ｉで示され、スレーブプリンタでレンダリングしたページ数は「Ｐmax−Ｋ＋１」で示されるので、ステップＳ１２は、実際には、
条件：｜ｉ−（Ｐmax−Ｋ＋１）｜≦１
であるか否かを判断すれば良いことになる（｜ｘ｜はｘの絶対値を意味する）。
【００８６】
また、ステップＳ１４或いはＳ１５での、レンダリングデータの送信データ量は少ないことが望ましい。
【００８７】
例えば、Ｐmax＝１０１であり、マスタプリンタがページ番号「５５」までレンダリングした場合には、ステップＳ１４では、ページ番号５２、５３、５４、５５のレンダリング結果をスレーブプリンタに転送する。
【００８８】
また、Ｐmax＝１０１であり、マスタプリンタがページ番号「４５」までレンダリングした場合には、ステップＳ１５ではページ番号４６、４７、４８、４９、５０のレンダリングデータをスレーブプリンタから受信する。
【００８９】
要するに、全ページ数Ｐmaxが奇数の場合、半分を超えるページ数をレンダリングしたプリンタが、他方のプリンタより１ページ分多く印刷するものとした。
【００９０】
さて、実施形態における画像形成装置２００は、スレーブプリンタとしても機能することは既に説明した。このスレーブプリンタとしての処理は、マスタとなる他の画像形成装置からディスプレイリストデータとスレーブとして機能する指示情報を記述したジョブチケットを受信した場合となる。すなわち、図７においてステップＳ１でＮｏと判断されて図９のステップＳ２０に進み、そのステップＳ２０にてＹｅｓと判断された場合になる。なお、ステップＳ２０でもＮｏと判断した場合には、通常の単独の印刷処理になるので、ステップＳ２１に進んで、該当する処理を行なうことになる。
【００９１】
画像形成装置２００のスレーブプリンタとしての処理は、ステップＳ２０でＹｅｓと判断された後のステップＳ２２以降の処理となる。
【００９２】
先に説明したように、各画像形成装置２００、２２０、２３０それぞれは同じ機能を持つものとしている。また、これまでの図７、図８の説明は、画像形成装置２００がマスタプリンタとして機能する場合を説明しているから、ステップＳ２２以降の処理は画像形成装置２００以外の画像形成装置の処理として説明すると技術的に分かりやすいであろう。それ故、ステップＳ２２以降の処理は、スレーブプリンタとして指示された画像形成装置２２０（勿論、画像形成装置２３０でも構わない）が行なうものとして説明することとする。
【００９３】
先ず、ステップＳ２２にて、スレーブプリンタはマスタプリンタ（画像形成装置２００）より全ページのディスプレイリストデータを受信し、それをＨＤＤに格納する。そして、レンダリングするページ番号を示す変数ＫにＰmaxを設定する。すなわち、最初にレンダリングする対象を最終ページとして設定する。
【００９４】
次いで、ステップＳ２４にて、Ｋ番目のページをレンダリングすることをマスタプリンタに通知する。そしてステップＳ２５にて、Ｋ番目のページのレンダリングを行ない、ステップＳ２６にて、ページ番号ＫのビットマップデータとしてＨＤＤに格納する。そして、ステップＳ２７にて、マスタプリンタの現在レンダリング中のページ番号ｉを取得する。マスタプリンタからのページ番号の受信、並びに、更新処理は別タスクとする点は既に説明した。
【００９５】
次いで、ステップＳ２８に進んで、「Ｋ＞ｉ＋１」を満たすか否かを判断する。要するに、マスタプリンタが次にレンダリングしようとするページが、スレーブプリンタ側で既にレンダリングが完了しているか否かを判断していることに他ならない。また、スレーブプリンタが次にレンダリングしようとするページが、マスタプリンタにてレンダリングを開始している、或いは、マスタプリンタで既にレンダリングが完了しているか否かを判断すると言い換えても良い。
【００９６】
さて、ステップＳ２８の判断が“Ｙｅｓ”になるのは、スレーブプリンタが次にレンダリングすべきページは、少なくともマスタプリンタ側ではレンダリングが未着手状態であることを意味する。そこで、ステップＳ２９に進み、変数Ｋと“１”との関係が「Ｋ＞１」であるか否か、すなわち、先頭ページのレンダリングが完了したか否かを判断する。「Ｋ＞１」であると判断した場合には、ステップＳ３０に進んで、変数Ｋを“１”だけディクリメントし、ステップＳ２４以降の処理を繰り返す。
【００９７】
一方、ステップＳ２８において「Ｎｏ」、すなわち、スレーブプリンタ側で次にレンダリングすべきページが、マスタプリンタ側で既にレンダリング処理中、或いは、レンダリングが完了していると判断した場合には、図１０のステップＳ３１に処理を進める。また、ステップＳ２９でＮｏと判断された場合も処理をステップＳ３１に進める。
【００９８】
ステップＳ３１では、マスタプリンタによってレンダリングしたページ数が、スレーブプリンタによってレンダリングしたページ数と実質的に等しいか否かを判断する。この判定は、先に説明したステップＳ１２の処理を同じである。
【００９９】
等しいと判断した場合には、マスタ、スレーブプリンタがレンダリングしたページ数はそれぞれ全ページ数Ｐmaxの半分であることになる。従って、処理はステップＳ３５に進み、ＨＤＤに格納されたレンダリング結果のうち、全ページの後半のページを昇順に印刷する。
【０１００】
例えば、Ｐmaxが＝１００（偶数）の場合であり、且つ、ステップＳ３１からステップＳ３５に進んだ場合には、ＨＤＤに格納されたページ番号５１、５２、…の順にレンダリングデータを読出し、ページ番号５１、５２、…の順に印刷を行なう。
【０１０１】
また、Ｐmax＝１０１、Ｋ＝５１の場合には、ページ番号５１、５２、…１０１の順に印刷する（印刷ページ数は「５１」）。また、Ｐmax＝１０１で、Ｋ＝５２の場合には、ページ番号、ページ番号５２、５３、…、１０１の順に印刷する（総ページ数は「５０」）。
【０１０２】
また、ステップＳ３１にて「Ｎｏ」と判断された場合、処理はステップＳ３３に進む。ここでは、スレーブプリンタでレンダリングしたページ数（Ｐmax−Ｋ＋１）が、全ページ数の半分を超えているか否かを判断する。
【０１０３】
ステップＳ３１にて、スレーブプリンタのレンダリングしたページ数が全ページ数の半分を超えていると判断した場合、処理はステップＳ３４に進み、全ページ数の半分を超えたページ数分のレンダリング結果をマスタプリンタに転送する。転送対象は、スレーブタプリンタが保持する先頭ページから最終ページに向かうレンダリングデータである。例えば、Ｐmax＝１００であり、スレーブプリンタがページ番号「４５」までレンダリングした場合には、ページ番号４５、４６、４７、４８、４９、５０のレンダリング結果をマスタプリンタに転送する。
【０１０４】
また、Ｐmax=１０１であり、スレーブプリンタがページ番号「４５」までレンダリングした場合にも、ページ番号４５、４６、４７、４８、４９、５０のレンダリング結果をマスタプリンタに転送する。ページ番号「５１」のレンダリング結果を転送しないのは、転送データ量を減らすためである。
【０１０５】
また、ステップＳ３３の判断がＮｏの場合、スレーブプリンタのレンダリングしたページ数が全ページ数の半分に満たないことになる。そこで、ステップＳ３４にて、スレーブプリンタ内のレンダリングしたページ数が、全ぺージ数の半分とすため、不足分をマスタプリンタから受信し、ＨＤＤに格納する。受信するのは、マスタプリンタが保持する最終ページから先頭ページに向かうレンダリングデータである。
【０１０６】
例えば、Ｐmax＝１００であり、スレーブプリンタがページ番号「５５」までレンダリングした場合には、ページ番号５１、５２、５３、５４のレンダリングデータをマスタプリンタから受信する。
【０１０７】
また、Ｐmax=１０１であり、スレーブプリンタがページ番号「５５」までレンダリングした場合には、ページ番号５２、５３、５４のレンダリング結果をマスタプリンタに転送する。ページ番号「５１」のレンダリング結果を受信しないのは転送データ量を減らすためである。
【０１０８】
ステップＳ３３、或いは、ステップＳ３４の処理の結果、スレーブプリンタのＨＤＤには、少なくとも、全ページの後半部分のページ数のレンダリングデータが存在することになる。そこで、ステップＳ３５にて、全ページの前半の印刷処理を行ない、一連のクラスタプリント処理を終了する。
【０１０９】
以上であるが、図１２は、図７乃至図１１で説明したクラスタプリントを実行した際のマスタ、スレーブプリンタのタイミングシーケンスである。
【０１１０】
この例では、６ページ中の１ページ目と２ページ目のRIP処理が重たいため、マスタープリンタで先頭の２ページのＲＩＰ処理を行い、スレーブプリンタで後の４ページのＲＩＰ処理を行った例を示している。これに伴い、スレーブプリンタは３ページ目のＲＩＰ済みイメージをマスタープリンタへ転送することにより、印刷ページ数をマスタープリンタ、スレーブプリンタで同じにしている。その結果、マスタ、スレーブプリンタそれぞれの印刷完了タイミングはほぼ同じにすることが可能になる。
【０１１１】
なお、図１２では、印刷ジョブが６ページの例を示しているが、数百、数千ページのプリンタデータではさらに大きな効果がもたらされることが明らかである。また、印刷ジョブが奇数ページの場合には、２つのプリンタの印刷完了するタイミングの差は最大でも１ページ印刷時間とすることが可能になる。
【０１１２】
また、実施形態ではＰｏｓｔＳｃｒｉｐｔを例にして説明したが、他のページ記述言語でもも構わない。レンダリング処理（或いはＲＩＰ処理）する際に適合した中間データ（ディスプレイリストデータ）にまで変換できれば良いからである。
【０１１３】
また、実施形態では、マスタプリンタのレンダリング順序を昇順、スレーブプリンタのそれを降順とする例を説明したが、逆でも構わない。
【０１１４】
また、一方のプリンタから他方のプリンタにレンダリングデータを転送する場合には、その転送前に圧縮符号化処理を行なうようにしても良い。この場合の圧縮符号化は当然可逆符号化が望ましい。
【０１１５】
以上説明したように、本実施形態によれば、クラスタプリントを行なう場合、各プリンタに割り当てられたページ数の印刷が完了するタイミングの差を最小限にすることが可能になる。
【０１１６】
なお、上記実施形態では、各画像形成装置２００、２２０、２３０のプリンタ部の単位時間当たりの印刷枚数（印刷速度）は同じであるものとして説明した。しかし、マスタの印刷速度を“１”としたとき、スレーブプリンタのそれが“２”の場合には、マスタプリンタで印刷するページ数と、スレーブプリンタで印刷するページ数の比を１：２となるようにすればよい。すなわち、全ページ数をＰmaxとしたとき、マスタプリンタはＰmax／３のページ数分のレンダリングデータを持ち、スレーブプリンタはＰmax×２／３のページ数分のレンダリングデータを持つように処理すればよい。これを実現するには、ジョブチケットに、マスタプリンタとスレーブプリンタのプリンタ部の速度比、或いは、それぞれのプリンタで印刷すべきページ数を記述する。スレーブプリンタもこの速度比や配分数を知る必要がある。このためには、マスタプリンタからスレーブプリンタにディスプレイリストデータを転送する際に、その速度比や配分数に関する情報を記述すれば良いであろう。
【０１１７】
＜第２の実施形態＞
上記実施形態（第１の実施形態）による印刷システムでは、生成した全ページ分のディスプレイリストデータをマスタープリンタからスレーブプリンタに転送することによりＲＩＰの負荷分散を実行した。しかし、ディスプレイリストデータをページ毎に転送する方法によりＲＩＰの負荷分散を図ることも可能である。この例を第２の実施形態として説明する。
【０１１８】
詳細は、第１の実施形態で説明しているので、ここでは、マスタ、スレーブそれぞれの処理手順の概要を図１２、図１３のフローチャートに従って説明する。
【０１１９】
先ず、本第２の実施形態におけるマスタープリンタの処理手順を図１２のフローチャートに従って説明する。同図のフローチャートに示されるプログラムは図５のJob Manager １５２０とPrint Manager１５２６によって実行されるものである。また、第１の実施形態で説明したように、クラスタプリントを行うか否かの指示、及びクラスタプリントを行う場合の従プリンタの指定はJob Ticketにより行われる。Job Ticket Parser１５３１で解釈された結果がControl API １５１９を介してJob Manager１５２０に通知される。
【０１２０】
まず、ステップＳ５１乃至Ｓ５３のループ処理を実行する。このループ処理では、PostScriptインタプリタを起動し１ページ分のページ解釈を行い、生成されたディスプレイリストデータをスレーブプリンタに転送する処理を、先頭ページから最終ページまで繰り返す。なお転送したディスプレイリストデータは破棄せずにマスタープリンタ上のＨＤＤにスプールする。また、ステップＳ５３迄はJob Manager１５２０によって実行される。
【０１２１】
次にステップＳ５４乃至Ｓ５８のループ処理を行なう。ここでは、１ページ分のディスプレイリストからレンダリングの処理と、レンダリング中のページ番号のスレーブプリンタへの通知処理を、最終ページから先頭ページに向かって繰り返し行なう。また、レンダリング処理中に、次にレンダリングすべきページがスレーブプリンタでレンダリング処理中であるか否かを判断し、次ページがスレーブプリンタで処理中であると判断したら、このループから抜ける。
【０１２２】
なお、スレーブプリンタでレンダリングが開始されているかどうかの確認は第１の実施形態と同様、スレーブプリンタとのネットワークを介したメッセージ通信により行われる。
【０１２３】
さて、ステップＳ５９に処理が進むと、マスタプリンタとスレーブプリンタのレンダリングしたページ数が実質的に等しいか否かを判断する。この判定は、第１の実施形態のステップＳ１２、Ｓ３１と同様である。等しいと判断した場合には、ステップＳ６３に進んで、ＨＤＤに格納されたレンダリング済みのデータに基づき、その先頭のページから印刷処理を行なう。より詳しくは、印刷ジョブの全１００ページの場合、ＨＤＤにはページ５１以降のレンダリング済みデータが格納されているので、ページ５１、５２、…の順に印刷することになる。
【０１２４】
ステップＳ５９で、マスタ、スレーブプリンタそれぞれのレンダリングしたページ数が異なると判断した場合には、ステップＳ６０に進む。このステップＳ６０では、マスタープリンタでレンダリングしたページ数が全ページの半分を超えるかどうか判断する。この判断がＹｅｓの場合には、ステップＳ６１に進み、ＮｏであればステップＳ６２に進む。
【０１２５】
ステップＳ６１に処理が進んだ場合には、印刷ジョブの全ページの半分を超えたページ分のレンダリング済みのイメージデータをスレーブプリンタに転送する。第２の実施形態におけるマスタプリンタの各ページのレンダリング順序は、降順である。従って、印刷ジョブのページ数が１００ページであり、マスタプリンタで４５ページ目までレンダリングしている場合は、ページ４５、４６、４７、４８、４９、５０のレンダリング結果をスレーブプリンタに送信する。
【０１２６】
また、ステップＳ６２に進んだ場合には、印刷ジョブの全ページの半分となるための不足分のレンダリング済みのイメージデータがスレーブプリンタより送られてくるので、それを受信する。印刷ジョブのページ数が１００ページであり、マスタプリンタで５５ページ目までレンダリングしている場合は、ページ５１、５２、５３、５４のレンダリング結果をスレーブプリンタから受信し、ＨＤＤに格納する。
【０１２７】
このステップＳ６１、Ｓ６２の処理の結果、少なくともマスタプリンタのＨＤＤには、印刷ジョブで示される全ページ中の後半部分のページのレンダリングデータが格納されていることになる。従って、ステップＳ６３に進み、後半のページを昇順に印刷する。
【０１２８】
なお、ステップＳ５４からステップＳ６３の処理はPrint Manager１５２６によって実行されるものである。また、ステップＳ５９ではマスタ、スレーブプリンタのレンダリングしたページ数が等しいか否か、ステップＳ６０ではレンダリング済みのページ数が半分に達したか否かを調べるものであった。これは、マスタープリンタとスレーブプリンタのプリンタエンジンの出力速度が同速である場合を仮定しているためである。マスタープリンタとスレーブプリンタのエンジン速度が異なる場合には、それら２つのプリンタのエンジン速度比に応じてレンダリングページ数を変更すれば良い。
【０１２９】
次に図１４を用いて、本第２の実施形態におけるスレーブプリンタの処理手順を説明する。同図のフローチャートに示されるプログラムは図５のPrint Manager１５２６によって実行されるものである。また、クラスタプリントのスレーブプリンタとしての動作指示はJob Ticketにより行われ、Job Ticket Parser１５３１で解釈された結果がControl API１５１９を介してJob Manager１５２０、PrintManager１５２６と通知される。
【０１３０】
先ず、ステップＳ７１乃至Ｓ７５のループ処理では、マスタプリンタより受信したディスプレイリストデータに従ったレンダリング処理、レンダリング中のページ番号のマスタプリンタへの通知処理を繰り返す。マスタプリンタからは、先頭ページから後方に向かってディスプレイリストデータが転送されてくるので、レンダリング順序はページ１、２、…と昇順となる。また、このループ処理では、スレーブプリンタが次にレンダリングしようとしているページが、マスタプリンタにてレンダリングを開始しているか否かを判断する処理も行なう。次にレンダリングしようとしているページがマスタプリンタでレンダリングを開始していると判断した場合、或いは、最終ページまでレンダリングを行なった場合にはこのループ処理から抜ける。
【０１３１】
なお、マスタープリンタでレンダリングが開始されているかどうかの確認はマスタープリンタとのネットワークを介したメッセージ通信により行われる。
【０１３２】
ステップＳ７１乃至Ｓ７５のループ処理を抜けると、処理はステップＳ７６に進む。ここでは、マスタプリンタとスレーブプリンタのレンダリングしたページ数が実質的に等しいか否かを判断する。この判定は、第１の実施形態のステップＳ１２、Ｓ３１と同様である。等しいと判断した場合には、ステップＳ８０に進んで、ＨＤＤに格納されたレンダリング済みのデータに基づき、その先頭のページから印刷処理を行なう。より詳しくは、印刷ジョブの全１００ページの場合、ＨＤＤにはページ１、２…５０のレンダリング済みデータが格納されているので、ページ１、２、…の順に印刷することになる。
【０１３３】
また、ステップＳ７６で、マスタ、スレーブプリンタそれぞれのレンダリングしたページ数が異なると判断した場合には、ステップＳ７７に進む。このステップＳ７７では、スレーブプリンタでレンダリングしたページ数が全ページの半分を超えるかどうか判断する。この判断がＮｏの場合には、ステップＳ７８に進み、ＹｅｓであればステップＳ７９に進む。
【０１３４】
ステップＳ７８に処理は進んだ場合には、スレーブプリンタが有するレンダリング結果が、印刷ジョブの全ページの半分に満たないことを意味する。その不足分のレンダリング済みのイメージデータがマスタプリンタより送られてくるので、それを受信する。印刷ジョブのページ数が１００ページであり、スレーブプリンタが４５ページ目までレンダリングしている場合は、ページ４６、４７、４８、４９、５０のレンダリング結果をマスタプリンタから受信し、ＨＤＤに格納する。
【０１３５】
ステップＳ７９に処理が進んだ場合には、印刷ジョブの全ページの半分を超えたページ分のレンダリング済みのイメージデータをマスタプリンタに転送する。第２の実施形態におけるマスタプリンタの各ページのレンダリング順序は、降順である。従って、印刷ジョブのページ数が１００ページであり、マスタプリンタで５５ページ目までレンダリングしている場合は、ページ５１、５２、５３、５４のレンダリング結果をマスタプリンタに送信する。
【０１３６】
このステップＳ７８、Ｓ７９の処理の結果、少なくともスレーブプリンタのＨＤＤには、印刷ジョブで示される全ページ中の前半部分のページのレンダリングデータが格納されていることになる。従って、ステップＳ８０に進み、前半のページを昇順に印刷する。
【０１３７】
このように、マスタープリンタで解釈を実行し生成されたディスプレイリストデータをページ毎にスレーブプリンタに転送しレンダリングを行うことにより、マスタープリンタとスレーブプリンタによるパイプライン処理が可能となる。また、マスタープリンタでページ解釈が終了した後にはマスタープリンタも最終ページからレンダリングを開始する。従って、２つのプリンタでレンダリングするページ番号が連続したろことで、それぞれのレンダリング処理が終了することによりさらに効率的にRIPの負荷分散が行える。また、さらにＲＩＰ済みのイメージデータの配分を調整することにより、印刷の負荷分散も効率的に行うことができる。
【０１３８】
図１５は図１３および図１４のフローチャートにより説明したクラスタプリントを実行した際のシーケンス例である。この例では、マスタープリンタのページ解釈処理とスレーブプリンタのレンダリング処理が並列実行する状態となる。図示では、６ページ中の５ページ目までをスレーブプリンタでRIP処理を行っている。最後の６ページ目に関してはマスタープリンタでRIP処理を行い、４ページ目と５ページ目のRIP済みイメージをスレーブプリンタからマスタープリンタへ転送している。これにより印刷ページ数をマスタープリンタ、スレーブプリンタともに３ページに揃え印刷の負荷分散を実行している。説明の都合上、数ページのプリンタデータを例に説明しているが、数千ページのプリンタデータではさらに大きな効果がもたらされることが明らかである。
【０１３９】
＜第３の実施形態＞
第１の実施形態による印刷システムでは、生成した全ページ分のディスプレイリストデータをマスタープリンタからスレーブプリンタに転送することによりRIPの負荷分散を実行した。ページ独立なＰＤＬ（ページ記述言語）であれば、そのＰＤＬデータを転送する方法によりＲＩＰの負荷分散を図ることも可能である。これを第３の実施形態として説明する。なお、第３の実施形態では、ページ独立なＰＤＬデータの代表としてＰＤＦを例にして説明する。
【０１４０】
図１６を用いて、本第３の実施形態におけるマスタープリンタの処理手順を説明する。同図のフローチャートに示されるプログラムは図５のJob Manager １５２０とPrint Manager１５２６によって実行されるものである。また、クラスタプリントを行うか否かの指示、及びクラスタプリントを行う場合の従プリンタの指定はJob Ticketにより行われ、Job Ticket Parser１５３１で解釈された結果がControl API １５１９を介してJob Manager１５２０に通知される。
【０１４１】
まず、ステップＳ９１では、受信したＰＤＦデータをスレーブプリンタに転送する。転送したＰＤＦデータはマスタープリンタのＨＤＤ上から削除されずに、そのまま残る。
【０１４２】
次いでステップＳ９２乃至Ｓ９６のループ処理を実行する。このループ処理では、ＰＤＦインタプリタによる１ページ分の解釈してディスプレイリストデータの生成と、レンダリングを連続して実行する。この処理を先頭ページから後方ページに向かって順次行なう。また、このループ処理中、解釈及びレンダリング中のページ番号のスレーブプリンタへの通知処理を行なう。更に、レンダリング処理中に、次にレンダリングすべきページがスレーブプリンタでレンダリング処理中であるか否かを判断し、次ページがスレーブプリンタで処理中であると判断したら、このループから抜ける。また、マスタプリンタでのレンダリング処理したページが最終ページであった場合も、この処理を抜ける。
【０１４３】
なお、ＰＤＦインタプリンタの処理に関しては、図６を用いて説明したPostScriptインタプリタの処理と言語処理部の処理が異なる程度でそれほど大きな違いは無いため、その説明は省略する。
【０１４４】
ステップＳ９２乃至Ｓ９６のループを抜けると、処理はステップＳ９７に進む。ここでは、マスタプリンタとスレーブプリンタのレンダリングしたページ数が実質的に等しいか否かを判断する。この判定は、第１の実施形態のステップＳ１２、Ｓ３１と同様である。等しいと判断した場合には、ステップＳ１０１に進んで、ＨＤＤに格納されたレンダリング済みのデータに基づき、その先頭のページから印刷処理を行なう。より詳しくは、印刷ジョブの全１００ページの場合、ＨＤＤにはページ１、２…５０のレンダリング済みデータが格納されているので、ページ１、２、…の順に印刷することになる。
【０１４５】
また、ステップＳ９７で、マスタ、スレーブプリンタそれぞれのレンダリングしたページ数が異なると判断した場合には、ステップＳ９８に進む。このステップＳ９８では、マスタプリンタでレンダリングしたページ数が全ページの半分を超えるかどうか判断する。この判断がＮｏの場合には、ステップＳ９９に進み、ＹｅｓであればステップＳ１００に進む。
【０１４６】
ステップＳ９９に処理は進んだ場合には、マスタプリンタが有するレンダリング結果が、印刷ジョブの全ページの半分に満たないことを意味する。その不足分のレンダリング済みのイメージデータがスレーブプリンタより送られてくるので、それを受信する。印刷ジョブのページ数が１００ページであり、スレーブプリンタが４５ページ目までレンダリングしている場合は、ページ４６、４７、４８、４９、５０のレンダリング結果をスレーブプリンタから受信し、ＨＤＤに格納する。
【０１４７】
また、ステップＳ１００に処理が進んだ場合には、印刷ジョブの全ページの半分を超えたページ分のレンダリング済みのイメージデータをスレーブプリンタに転送する。スレーブプリンタの各ページのレンダリング順序は、降順である。従って、印刷ジョブのページ数が１００ページであり、マスタプリンタが５５ページ目までレンダリングしている場合は、ページ５１、５２、５３、５４のレンダリング結果をスレーブプリンタに送信する。
【０１４８】
このステップＳ９９、１００の処理の結果、少なくともマスタプリンタのＨＤＤには、印刷ジョブで示される全ページ中の前半部分のページのレンダリングデータが格納されていることになる。従って、ステップＳ１０１進み、前半のページを昇順に印刷する。
なお、ステップＳ９７はマスタ、スレーブプリンタのレンダリングしたページ数が等しいか否か、ステップＳ９８はレンダリング済みのページ数が半分に達したか否かを調べるものであった。これは、マスタープリンタとスレーブプリンタのプリンタエンジンの出力速度が同速である場合を仮定しているためである。マスタープリンタとスレーブプリンタのエンジン速度が異なる場合には、それら２つのプリンタのエンジン速度比に応じてレンダリングページ数を変更すれば良い。
【０１４９】
次に図１７を用いて、本第３の実施形態におけるスレーブプリンタの処理手順を説明する。同図のフローチャートに示されるプログラムは図５のJob Manager １５２０とPrint Manager１５２６によって実行されるものである。また、クラスタプリントのスレーブプリンタとしての動作指示はJob Ticketにより行われる。Job Ticket Parser１５３１で解釈された結果がControl API １５１９を介してJob Manager１５２０、PrintManager１５２６と通知される。
【０１５０】
先ず、ステップＳ１１１乃至Ｓ１１５のループ処理では、マスタプリンタより受信したＰＤＦデータに従ったページ解釈、及び、レンダリング処理をページ単位に行なう。このときの処理順序は、最終ページから先頭ページに向かう降順である。また、レンダリング中のページ番号のマスタプリンタへの通知処理もこのループで行なう。また、マスタプリンタからは、スレーブプリンタが次にレンダリングしようとしているページが、マスタプリンタにてレンダリングを開始しているか否かを判断する処理も行なう。次にレンダリングしようとしているページがマスタプリンタでレンダリングを開始していると判断した場合、或いは、先頭ページまでレンダリングを行なった場合にはこのループ処理から抜ける。
【０１５１】
ステップＳ１１１乃至Ｓ１１５の処理を抜けると、ステップＳ１１６の処理を実行する。このステップＳ１１６では、マスタプリンタとスレーブプリンタのレンダリングしたページ数が実質的に等しいか否かを判断する。この判定は、第１の実施形態のステップＳ１２、Ｓ３１と同様である。等しいと判断した場合には、ステップＳ１２０に進んで、ＨＤＤに格納されたレンダリング済みのデータに基づき、その先頭のページから印刷処理を行なう。より詳しくは、印刷ジョブの全１００ページの場合、ＨＤＤにはページ５１、５２…１００のレンダリング済みデータが格納されているので、ページ５１、５２、…の順に印刷することになる。
【０１５２】
また、ステップＳ１１６において、マスタ、スレーブプリンタそれぞれのレンダリングしたページ数が異なると判断した場合には、ステップＳ１１７に進む。このステップＳ１１７では、スレーブプリンタでレンダリングしたページ数が全ページの半分を超えるかどうか判断する。この判断がＮｏの場合には、ステップＳ１１８に進み、ＹｅｓであればステップＳ１１９に進む。
【０１５３】
ステップＳ１１８に処理は進んだ場合には、スレーブプリンタが有するレンダリング結果が、印刷ジョブの全ページの半分に満たないことを意味する。その不足分のレンダリング済みのイメージデータがマスタプリンタより送られてくるので、それを受信する。印刷ジョブのページ数が１００ページであり、スレーブプリンタが５５ページ目までレンダリングしている場合は、ページ５１、５２、５３、５４のレンダリング結果をマスタプリンタから受信し、ＨＤＤに格納する。
【０１５４】
また、ステップＳ１１９に処理が進んだ場合には、印刷ジョブの全ページの半分を超えたページ分のレンダリング済みのイメージデータをマスタプリンタに転送する。マスタプリンタの各ページのレンダリング順序は、昇順である。従って、印刷ジョブのページ数が１００ページであり、マスタプリンタが４５ページ目までレンダリングしている場合は、ページ４６、４７、４８、４９、５０のレンダリング結果をマスタプリンタに送信する。
【０１５５】
このステップＳ１１８、１１９の処理の結果、少なくともスレーブプリンタのＨＤＤには、印刷ジョブで示される全ページ中の後半部分のページのレンダリングデータが格納されていることになる。従って、ステップＳ１２０進み、後半のページを昇順に印刷する。
【０１５６】
以上説明したように本第３の実施形態によれば、ページ毎に独立したＰＤＬデータの場合には、レンダリングのみならず、ページ解釈処理についても負荷を２つのプリンタに分担させることが可能になり、効率的なクラスタプリントを行なうことが可能になる。
【０１５７】
図１８は、図１６および図１７のフローチャートにより説明したクラスタプリントを実行した際のシーケンスの例である。この例では、６ページ中の１ページ目と２ページ目のＲＩＰ処理が重たいため、マスタープリンタで前２ページのＲＩＰ処理を行い、スレーブプリンタで残りの４ページのRIP処理を行うことによりRIPの負荷分散を実行している。また、３ページ目のRIP済みイメージをスレーブプリンタからマスタープリンタへ転送することにより、印刷ページ数をマスタープリンタ、スレーブプリンタともに３ページに揃え印刷の負荷分散を実行している。説明の都合上、数ページのプリンタデータを例に説明しているが、数千ページのプリンタデータではさらに大きな効果がもたらされる。ページ解釈処理もマスタープリンタとスレーブプリンタで分散することができるため、第１の実施形態よりも効率的なRIPの負荷分散が可能である。また、第２の実施形態に比べて転送するイメージの数も少なくなる傾向があるので、最も効率的な負荷分散印刷が可能となる。
【０１５８】
なお、第１、第２の実施形態ではページ記述言語としてPostScriptを例にしたが、他のページ記述言語でも構わない。なぜなら、これらの実施形態では、ページ記述言語とは独立した中間データ（ディスプレイリストデータ）に変換した結果を２つのプリンタが共有し、レンダリングを行なえば良いからである。また、第３の実施形態では、ページ独立言語としてＰＤＦを例にしたが、ページ単位に独立している言語であれば良いので、ＰＤＦに限定されない。
【０１５９】
＜第４の実施形態＞
上記第１乃至第３の実施形態では、２台の画像形成装置によりクラスタプリントを行なう例を説明したが、３台、或いはそれ以上でクラスタプリントを行なうようにしても構わない。説明を簡単にするため、第１の実施形態を適用し、３台のプリンタでクラスタプリントを行なうものとする。また、３台の画像形成装置が搭載しているプリンタ部の印刷能力（単位時間当たりの印刷枚数）が同じであるとする。
【０１６０】
また、ホストコンピュータ２１００は、ジョブチケットにスレーブプリンタＡ、Ｂとなる画像形成装置のネットワークアドレスを記述したジョブチケットをマスタとなる画像形成装置に出力するものとする。ここで、主従関係はマスタ、スレーブＡ、スレーブＢの順番とする。つまり、スレーブプリンタＡはマスタプリンタスのスレーブプリンタとして機能すると共に、スレーブプリンタＢに対するマスタプリンタとして機能する。
【０１６１】
マスタプリンタは、印刷ジョブのディスプレイリストデータを生成した際、スレーブプリンタＢ、Ｃにそれを転送する。以下はこの転送が完了した場合の各プリンタの動作である。
【０１６２】
今、印刷ジョブによる全ページ数が９９ページであるものとして説明する。
【０１６３】
マスタプリンタは、図１９に示すように、ページ１、２、３の順番（昇順）にレンダリングを行なう。そして、次にレンダリングするページ番号が、スレーブプリンタＡでのレンダリングしているページ番号と一致するまで繰り返す。
【０１６４】
スレーブプリンタＢは、図１９に示すように、ページ番号９９、９８、９７、…の順番（降順）にレンダリングを行なう。そして、次にレンダリングするページ番号が、スレーブプリンタＡでのレンダリングしているページ番号と一致するまで繰り返す。
【０１６５】
マスタ、スレーブプリンタＢとの中間に位置するスレーブプリンタＡは、図１９に示すように処理を行なう。具体的には次の通りである。
【０１６６】
先ず、印刷ジョブの全ページの中央のページ番号「４９」（＝９９／２の整数）を最初にレンダリングするとして決定する。そして、原則として次のような順番でレンダリングを行なう。
ページ４９、５０、４８、５１、４７、５２…
【０１６７】
つまり、レンダリングするページ番号を、初期値「４９」から始め、昇順と降順に交互に切り替えて行なう（昇順レンダリング用の変数ｉと、降順レンダリング用の変数Ｋを持つ）。降順レンダリングの工程で、次にレンダリングしようとするページ番号が、マスタプリンタがレンダリング中のページ番号と同じになったら、降順のレンダリングを終了する。また、昇順レンダリング工程で、次にレンダリングしようとするページ番号がスレーブプリンタＢがレンダリング中のページ番号と同じになったら、昇順のレンダだリングを終了する。
【０１６８】
以上の結果、３台のプリンタによって全ページのレンダリングが完了すると、［マスタ：スレーブプリンタＡ］間、及び、［スレーブプリンタＡ、Ｂ］間でのレンダリング結果の送受信を行なう。すなわち、マスタプリンタはページ番号１乃至３３のレンダリング結果を保持し、スレーブプリンタＡはページ番号３４乃至６６のレンダリング結果を保持し、スレーブプリンタはページ番号６７乃至９９のレンダリング結果を保持する。
【０１６９】
この後の処理は、各プリンタでは、自身に割り当てられたページを昇順に印刷すればよい。
【０１７０】
なお、上記の処理だけでは、３台のプリンタのレンダリングが同時に終了するとは限らない。例えば、マスタプリンタとスレーブプリンタＡとの間で前半の５０ページ分のレンダリングが完了したとき、スレーブプリンタＡとＢ間での後半の５０ページのレンダリングが未完の場合もあり得る。そこで、中間に位置するスレーブプリンタＡは次のように処理を行なう。
【０１７１】
スレーブプリンタＡは、マスタ、スレーブプリンタＢから、それぞれのレンダリングしているページの番号の通知を受けている。つまり、どちらのプリンタの進捗が遅いかを検出することができる。そこで、進捗の遅い方に併せて、レンダリングするページ番号を決定する。
【０１７２】
具体的には、マスタプリンタとスレーブプリンタＡとの間での未レンダリングページ数（ＮＰ１という）と、スレーブプリンタＡとＢとの間での未レンダリングページ数（ＮＰ２という）との差を求める。そして、その差の絶対値（＝｜ＮＰ１−ＮＰ２｜）が、予め定められた閾値以下の場合、上記のように、昇順、降順のレンダリング処理を繰り返す。
【０１７３】
一方、｜ＮＰ１−ＮＰ２｜が閾値を超える場合、進捗の遅い方を優先的にレンダリングを行なう。
【０１７４】
例えば、ＮＰ１＝１０、ＮＰ２＝２０で、閾値が“３”とするなら、スレーブプリンタＡは、昇順のレンダリング処理を優先する。そして、この判断処理とレンダリング順序を決定する処理、１ページのレンダリングを行なう毎に行なう。
【０１７５】
以上の結果、各プリンタは実質的に同じタイミングでレンダリングを完了することになる。
【０１７６】
この後は、マスタプリンタとスレーブプリンタＡとの間では、２：１の割合でレンダリング結果を保持するように、互いに不足分のレンダリング結果を補う。一方、スレーブプリンタＡとＢとの間では、１：２の割合でレンダリング結果を保持するように、互いに不足分のレンダリング結果を補う。
【０１７７】
以上説明したように本第４の実施形態によれば、３台でのプリンタでクラスタプリントを行なうことが可能になる。なお、４台以上のプリンタでクラスタプリントを行なう場合、すなわち、マスタ、スレーブＡ，Ｂ，Ｃで印刷を行なう場合、各プリンタで印刷されるページ数が全ページ数の１／４となる。また、スレーブプリンタＡ，Ｂが中間に位置するプリンタとして機能するだけであるので、説明するまでもないであろう。
【０１７８】
なお、第４の実施形態では、第１の実施形態に適用する例を説明したが、第２、第３の実施形態に適用しても構わないのは、上記説明から容易に理解できよう。
【０１７９】
以上本発明に係る実施形態を説明した。上記実施形態では、レンダリング結果を受けて印刷する場合、各プリンタでは、自身に割り当てられたページ範囲の先頭から印刷するものとして説明した。しかし、これによって本発明が限定されるものではない。画像形成装置に接続されたフィニッシャ装置がフェースダウン排出機能を持たない場合、各プリンタでは、自身に割り当てられたページ範囲の最終ページから降順に排出することが望ましい。
【図面の簡単な説明】
【０１８０】
【図１】実施形態におけるシステムの全体構成を示す図である。
【図２】実施形態における画像形成装置のコントローラユニット内構成を示す図である。
【図３】画像形成装置の外観図である。
【図４】画像形成装置の操作部の外観図である。
【図５】画像形成装置のソフトウェアブロック図である。
【図６】画像形成装置の処理順序とデータフローを示す図である。
【図７】実施形態における画像形成装置のクラスタプリント時の処理手順を示すフローチャートである。
【図８】実施形態における画像形成装置のクラスタプリント時の処理手順を示すフローチャートである。
【図９】実施形態における画像形成装置のクラスタプリント時の処理手順を示すフローチャートである。
【図１０】実施形態における画像形成装置のクラスタプリント時の処理手順を示すフローチャートである。
【図１１】実施形態における画像形成装置の他の画像形成装置からレンダリング処理中のページ番号を含むメッセージの受信処理を示すフローチャートである。
【図１２】第１の実施形態における２台のプリンタの処理のシーケンスを示す図である。
【図１３】第２の実施形態における画像形成装置がマスタープリンタとして機能する場合の処理手順を示すフローチャートである。
【図１４】第２の実施形態における画像形成装置がスレーブプリンタとして機能する場合の処理手順を示すフローチャートである。
【図１５】第２の実施形態における２台のプリンタの処理のシーケンスを示す図である。
【図１６】第３の実施形態における画像形成装置がマスタープリンタとして機能する場合の処理手順を示すフローチャートである。
【図１７】第３の実施形態における画像形成装置がスレーブプリンタとして機能する場合の処理手順を示すフローチャートである。
【図１８】第３の実施形態における２台のプリンタの処理のシーケンスを示す図である。
【図１９】第４の実施形態におけるレンダリングのシーケンスを示す図である。
【図１】
2007213234.tif 000003
【図２】
2007213234.tif 000004
【図３】
2007213234.tif 000005
【図４】
2007213234.tif 000006
【図５】
2007213234.tif 000007
【図６】
2007213234.tif 000008
【図７】
2007213234.tif 000009
【図８】
2007213234.tif 000010
【図９】
2007213234.tif 000011
【図１０】
2007213234.tif 000012
【図１１】
2007213234.tif 000013
【図１２】
2007213234.tif 000014
【図１３】
2007213234.tif 000015
【図１４】
2007213234.tif 000016
【図１５】
2007213234.tif 000017
【図１６】
2007213234.tif 000018
【図１７】
2007213234.tif 000019
【図１８】
2007213234.tif 000020
【図１９】
2007213234.tif 000021
【手続補正書】
【提出日】平成18年12月20日(2006.12.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
印刷処理を実行する少なくとも２台の印刷装置で構成される印刷システムであって、 
外部装置から受信した印刷ジョブに基づいて複数ページの中間データを生成する中間データ生成手段と、
第１の印刷装置にて第１ページ範囲の前記中間データを前記印刷処理に利用可能な画像データに変換処理する第１変換部と、第２の印刷装置にて第２ページ範囲の前記中間データを前記印刷処理に利用可能な画像データに変換処理する第２変換部とを備え、複数ページの画像データを生成するデータ変換手段と、
前記データ変換手段により生成された複数ページの画像データに基づく印刷処理を実行する際に、前記第１の印刷装置にて印刷処理すべき画像データのページ数と、前記第２の印刷装置にて印刷処理すべき画像データのページ数との配分を設定する設定手段と、
前記設定手段が設定した配分と、前記第１ページ範囲のページ数と前記第２ページ範囲のページ数の配分が異なる場合、前記設定手段が設定した配分を超過するページ数の画像データを保持している印刷装置から他の印刷装置に画像データを送信する画像データ送信手段と、 
前記第１の印刷装置が保持する画像データに基づいて印刷処理を実行する第１印刷部と、前記第２の印刷装置が保持する画像データに基づいて印刷処理を実行する第２印刷部とを備える印刷手段と、
を備えることを特徴とする印刷システム。 
【請求項２】
前記データ変換手段は、前記第１変換部が前記中間データをページ順に変換処理し、前記第２変換部が前記ページ順の逆順に変換処理し、前記第１変換部が変換処理したページと前記第２変換部が変換処理したページが互いに隣り合うまで繰り返して前記全ページの画像データを生成することを特徴とする請求項１に記載の印刷システム。 
【請求項３】
前記中間データ生成手段は、前記第１の印刷装置にて前記中間データを生成し、 
前記中間データ生成手段が生成した前記中間データを、前記第２の印刷装置に送信する中間データ送信手段を備えることを特徴とする請求項１又は２に記載の印刷システム。 
【請求項４】
前記中間データ送信手段は、前記中間データ生成手段が前記印刷ジョブの全ページの中間データを生成した後に、前記第２の印刷装置に前記全ページの中間データを送信することを特徴とする請求項３に記載の印刷システム。 
【請求項５】
前記中間データ送信手段は、前記中間データ生成手段が前記印刷ジョブの１ページ分の中間データを生成する度に、前記第２の印刷装置に前記１ページ分の中間データを送信することを特徴とする請求項３に記載の印刷システム。 
【請求項６】
前記中間データ生成手段は、前記第１の印刷装置にて前記第１ページ範囲の中間データを生成する第１中間データ生成部と、前記第２の印刷装置にて前記第２ページ範囲の中間データを生成する第２中間データ生成部とを備えることを特徴とする請求項１又は２に記載の印刷システム。 
【請求項７】
前記設定手段は、前記第１の印刷装置の印刷処理速度と、前記第２の印刷装置の印刷処理速度とに基づいて前記配分を設定することを特徴とする請求項１乃至６のいずれか１項に記載の印刷システム。
【請求項８】
他の印刷装置とネットワークを介して接続される印刷装置であって、
外部装置から印刷ジョブを受信する受信手段と、
前記受信手段が受信した印刷ジョブに基づいて複数ページの中間データを生成する中間データ生成手段と、
前記中間データ生成手段が生成した中間データを前記他の印刷装置に送信する中間データ送信手段と、 
前記中間データ生成手段が生成した第１ページ範囲の中間データを変換処理して印刷処理に利用可能な画像データを生成するデータ変換手段と、 
前記データ変換手段により生成された複数ページの画像データに基づく印刷処理を実行する際に、前記自装置にて印刷処理すべき画像データのページ数と、前記他の印刷装置にて印刷処理すべき画像データのページ数との配分を設定する設定手段と、
前記設定手段が設定した配分と、前記第１ページ範囲のページ数と前記第２ページ範囲のページ数との配分が異なる場合、前記第１ページ範囲のページ数が前記設定手段により自装置に配分されたページ数を超える場合には超過するページに対応する画像データを前記他の印刷装置に送信し、前記第１ページ範囲のページ数が前記設定手段により自装置に配分されたページ数に満たない場合には不足するページに対応する画像データを前記他の印刷装置から受信する画像データ通信手段と、 
前記印刷データ通信手段による通信が行われた後、自装置に配分された画像データに基づき印刷処理する印刷手段と、
を備えることを特徴とする印刷装置。 
【請求項９】
前記データ変換手段は、前記中間データ生成手段が生成した中間データをページ順に変換処理するとともに、該変換処理を、前記データ変換手段が変換処理したページと前記他の印刷装置が変換処理したページが互いに隣り合うまで繰り返すことを特徴とする請求項８に記載の印刷装置。 
【請求項１０】
前記中間データ送信手段は、前記中間データ生成手段が前記印刷ジョブに対応する全ページの中間データを生成した後に、前記他の印刷装置に前記全ページの中間データを送信することを特徴とする請求項８又は９に記載の印刷装置。 
【請求項１１】
前記中間データ送信手段は、前記中間データ生成手段が前記印刷ジョブの１ページ分の中間データを生成する度に、前記他の印刷装置に前記１ページ分の中間データを送信することを特徴とする請求項８又は９に記載の印刷装置。 
【請求項１２】
前記設定手段は、前記自装置の印刷処理速度と、前記他の印刷装置の印刷処理速度とに基づいて前記配分を設定することを特徴とする請求項８乃至１１のいずれか１項に記載の印刷装置。
【請求項１３】
印刷処理を実行する少なくとも２台の印刷装置で構成される印刷システムにおける印刷方法であって、 
外部装置から受信した印刷ジョブに基づいて複数ページの中間データを生成する中間データ生成工程と、 
第１の印刷装置にて第１ページ範囲の前記中間データを前記印刷処理に利用可能な画像データに変換処理する第１変換工程と、第２の印刷装置にて第２ページ範囲の前記中間データを前記印刷処理に利用可能な画像データに変換する第２変換工程とを備え、複数ページの画像データを生成するデータ変換工程と、 
前記データ変換工程により生成された複数ページの画像データに基づく印刷処理を実行する際に、前記第１の印刷装置にて印刷処理すべき画像データのページ数と、前記第２の印刷装置にて印刷処理すべき画像データのページ数との配分を設定する設定工程と、
前記設定工程が設定した配分と、前記第１ページ範囲のページ数と前記第２ページ範囲のページ数の配分が異なる場合、前記設定工程が設定した配分を超過するページ数の画像データを保持している印刷装置から他の印刷装置に画像データを送信する画像データ送信工程と、 
前記第１の印刷装置が保持する画像データに基づいて印刷処理を実行するとともに、前記第２の印刷装置が保持する画像データに基づいて印刷処理を実行する印刷工程と、
を備えることを特徴とする印刷方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
この課題を解決するため、例えば本発明の印刷システムは以下の構成を備える。すなわち、
印刷処理を実行する少なくとも２台の印刷装置で構成される印刷システムであって、 
外部装置から受信した印刷ジョブに基づいて複数ページの中間データを生成する中間データ生成手段と、
第１の印刷装置にて第１ページ範囲の前記中間データを前記印刷処理に利用可能な画像データに変換処理する第１変換部と、第２の印刷装置にて第２ページ範囲の前記中間データを前記印刷処理に利用可能な画像データに変換処理する第２変換部とを備え、複数ページの画像データを生成するデータ変換手段と、
前記データ変換手段により生成された複数ページの画像データに基づく印刷処理を実行する際に、前記第１の印刷装置にて印刷処理すべき画像データのページ数と、前記第２の印刷装置にて印刷処理すべき画像データのページ数との配分を設定する設定手段と、
前記設定手段が設定した配分と、前記第１ページ範囲のページ数と前記第２ページ範囲のページ数の配分が異なる場合、前記設定手段が設定した配分を超過するページ数の画像データを保持している印刷装置から他の印刷装置に画像データを送信する画像データ送信手段と、 
前記第１の印刷装置が保持する画像データに基づいて印刷処理を実行する第１印刷部と、前記第２の印刷装置が保持する画像データに基づいて印刷処理を実行する第２印刷部とを備える印刷手段とを備える。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
本発明によれば、印刷ジョブの各ページのデータ変換処理に要する負荷と、変換処理により生成された画像データに基づく印刷処理に要する負荷を、複数の印刷装置を用いて実質的に均等に分散することが可能となる。