以下、本発明の実施の形態について図面を参照しつつ説明する。
図1は、本実施の形態にかかる画像形成システムの全体構成を示すブロック図である。
この画像形成システムは、用紙などの印刷媒体上に画像形成を行うための比較的大規模なシステムであり、ユーザが印刷要求を行なう複数台のクライアント端末2と、クライアント端末2とネットワーク3で接続され、ユーザが行った印刷要求に含まれている印刷文書を印刷データとなるラスタデータ等に変換する印刷制御装置となるコントローラ4と、コントローラ4と接続され、コントローラ4が出力する印刷データであるラスタデータに基づいて電子写真方式、やインクジェット方式、又はその他の方式により印刷媒体上に画像形成する画像形成処理手段一例となるプリンタエンジン5と、を備えている。
図2は、コントローラ4の電気的な接続を示すブロック図である。
コントローラ4は、各種演算を行い、各部を集中的に制御するCPU11と、CPU11が実行する各種の制御プログラム12その他のデータを記憶しているROM13と、CPU11の作業エリアとなるRAM14と、各種データを記憶する磁気記憶装置15と、ネットワーク3やプリンタエンジン5と通信を行う通信制御装置16と、表示装置17と、入力装置18とを備えている。なお、表示装置17は、報知手段の一例として用いられている。
制御プログラム12は、コントローラ4の製造当初からセットアップされていても良いが、後発的に制御プログラム12を記憶した記憶媒体から記憶媒体の読取装置により読み取って、磁気記憶装置15などの記憶装置にセットアップし、あるいは、インターネットなどからダウンロードして磁気記憶装置15などの記憶装置にセットアップするようにしても良い。
図3は、制御プログラム12に基づいてコントローラ4が実行する処理の機能ブロック図である。
通信手段21は、クライアント端末2から印刷要求を受信し、これを磁気記憶装置15の一定領域に用意された記憶手段22に記憶する。なお、通信手段21は、印刷データを受信する受信手段の一例として用いられている。
変換手段23は、クライアント端末2からの印刷要求に含まれているページ記述言語で記述された印刷文書をページごとにラスタデータ(ビットマップデータ)に変換し、又は、印刷文書とラスタデータとの中間的なデータ形式である中間データ(オブジェクトリストなど)に変換する。なお、変換手段23において行われる処理は、ラスタライズ処理の一例として用いられている。
制御手段24は、プリンタエンジン5の駆動を制御し、変換手段23で変換後のラスタデータをページごとにプリンタエンジン5に送信し、また、変換手段23で変換後の中間データはページごとに合成手段25によりラスタデータに変換した上でプリンタエンジン5に送信する。
マーカー25は、コントローラ4からプリンタエンジン5に送信するデータのページシーケンスの制御を行う。すなわち、両面印刷を行う場合などはプリンタエンジン5で行う画像形成はページ順序どおりにはならないので、ページデータの出力シーケンスを適切に制御する。
図4は、コントローラ4が行う一連の処理について説明する説明図である。また、図5は、図4の処理に対する比較例の説明図である。
図4、図5中で符号31はページごとのラスタデータを示し、符号32はページごとの中間データを示す。各ページには1ページから順に、「1」「2」「3」「4」…の番号を付している。コントローラ4とプリンタエンジン5との間では、プリンタエンジン5からコントローラ4に対して次のページのラスタデータを送信するように要求し、この要求に答えてコントローラ4がプリンタエンジン5に目的のページのラスタデータを送信するというやり取りが、各ページについて行われる。
ここで、プリンタエンジン5からコントローラ4に次のページのラスタデータ31を要求してから予め定められた規定時間(固定)が経過するまでにコントローラ4がラスタデータ31を転送しないと画像形成処理はフォルトになってしまう。この時間を図4、図5中に「規定時間」として示している。この「規定時間」内に該当ページのラスタデータ31をプリンタエンジン5に転送する時間である「ラスタデータ転送時間」を「規定時間」から引いても、図5に示すように、残りの規定時間には「余裕時間」がある場合が通例である。
図5の比較例では、印刷文書の全てのページを変換手段23でラスタデータ31まで変換する。そして、制御手段24は、このラスタデータ化済みの各ページのデータを1ページずつプリンタエンジン5に転送する。
これに対して、図4に示す本実施形態の処理では、印刷文書の各ページについて「ラスタデータ転送時間」を「規定時間」から引いた残り時間に、中間データ32を合成手段25によりラスタデータ31に変換する余裕時間的があるか否か判断する。この余裕時間があるときは、当該ページについては変換手段23で中間データ32に変換するのにとどめ、合成手段25で中間データ32をラスタデータ31に変換した上でプリンタエンジン5に転送する。「ラスタデータ転送時間」を「規定時間」から引いた残り時間に、中間データ32を合成手段25によりラスタデータ31に変換する余裕時間的がないときは、当該ページについては変換手段23でラスタデータ31に変換し、合成手段25は使用せずに、このラスタデータ31をプリンタエンジン5に転送する。この場合は、図5の処理と同様になる。なお、合成手段25において行われる処理は、ラスタライズ処理の一例として用いられている。
ここで、ラスタライズ処理とは、ページ記述言語で記述されたデータから異なるコードデータである中間コードに変換する処理や中間コードからビットマップ形式のデータに変換する処理を含み、ページ記述言語で記述されたデータからビットマップ形式のデータに変換される過程における処理の一部又は全部の処理をいう。
図4の処理については、印刷文書の少なくとも一部のページについては印刷文書をラスタデータ31ではなく中間データ32に変換するにとどめることができれば、変換手段23での処理負荷が軽減し、1つの印刷文書を変換手段23で処理するのに要する時間は、図5の比較例のように全ページをラスタデータ31に変換する場合に比べて短くなる。
以下では、コントローラ4が実行する処理について詳細に説明する。
図6は、変換手段23が実行する処理のフローチャートである。
まず、変換手段23では、印刷文書の各ページについて、印刷文書であるページ記述言語を解釈して順次中間データを生成する(ステップS1)。次に、印刷文書の各ページについて、中間データを合成してラスタデータを生成する際の難易度を判定する合成難易度判定処理(詳細は後述)を行い(ステップS2)、その結果から、後段の合成手段25でラスタデータを合成するようにしても前述の規定時間に間に合うか否かを判定する(ステップS3)。
後段の合成手段25でラスタデータを合成するのでも前述の規定時間に間に合う場合は(ステップS3のY)、例外にあたるか否かを判断する(ステップS4)。ここでいう例外とは、例えば、A4ページ2枚をA3ページ1ページにはめ込む面付け処理など、ラスタデータに変換しないと処理できない場合である。時間を要する処理を必要とするか否かである。例外に当たるときは(ステップS4のY)、中間データの合成処理によりラスタデータを作成する(ステップS6)。例外でないときはステップS7に進む。
後段の合成手段25でラスタデータを合成するのでは前述の規定時間に間に合わない場合は(ステップS3のN)、例外にあたるか否かを判断する(ステップS5)。ここでいう例外とは、例えば、印刷文書の最初のページである場合など、規定時間を遵守しなくてよい場合などである。例外に当たるときは(ステップS5のY)、ステップS7に進み、例外でないときは(ステップSのN)、中間データの合成処理によりラスタデータを作成する(ステップS6)。
ラスタデータまでの合成は行わなかったときは(ステップS4のN,S5のY)、印刷文書のラスタデータ等の作成が前頁に亘って完了した旨、当該印刷要求を行なったユーザのクライアント端末2に対して報知するとともに、表示装置17上にも報知する(ステップS8)。なお、本実施の形態では、クライアント端末2と表示装置17の両方に対して報知を行っているが、片方のみ報知を行うようにしてもよい。
次に、合成難易度判定処理(ステップS2)について説明する。
合成難易度判定処理は、印刷文書、コントローラ4、プリンタエンジン5の構成から図7の例示するようなパラメータを抽出し、この各パラメータに予め定められた重み付けをしてその合計値を求めることにより行うことができる。そして、ステップS3では、その合計値が予め定められた閾値以上であれば、合成手段25でラスタデータを合成するのでは前述の規定時間内に間に合わないと判断し、予め定められた閾値未満であれば、合成手段25でラスタデータを合成しても前述の規定時間内に間に合うと判断する。
図7において、「プリンタエンジンの種類」は、プリンタエンジン5がカット紙用のものであるか連帳紙用のものであるかなどの種類である。「スキップピッチ」はプリンタエンジン5で紙送りするタイミングの調整ピッチである。「最大搬送用紙枚数」はプリンタエンジン5の搬送経路内などに滞留しうる用紙の最大枚数である。「印刷速度」はプリンタエンジン5が画像形成する際の速度である。「ページサイズ」は画像形成する用紙のA3,A4などのサイズである。「イメージ数」は1ページ中の画像の数である。「イメージサイズ」は1ページ中の画像のサイズである。「オブジェクトの数と種類」は当該ページ中の画像、文字などのオブジェクトの数と種類である。「オブジェクトの重なり数」は当該ページ中の画像、文字などのオブジェクトの重なりの数である。「塗りつぶしの有無と数」は当該ページ中に塗りつぶした画像があるか否かとその数である。「オペレータ数」とはページ記述言語で記述された印刷文書中の命令となるオペレータの数である。「CPUスペックと数」はCPU11のスペックと数である。「メモリサイズ」はRAM14の容量である。バス幅はコントローラ4のバス幅である。
次に、合成難易度判定処理(ステップS2)の精度を向上させる処理について説明する。
図8は、合成難易度判定処理の精度を向上させるための変換手段23が行う処理のフローチャートである。
まず、変換手段23は、印刷文書の1ページ分について処理を開始する(ステップS11)。そして、当該ページについて前述のとおり中間データを作成する(ステップS12)。また、印刷文書の特徴(図7に示すパラメータ)を抽出する(ステップS13)。そして、抽出した印刷文書の特徴も参照して、前述のパラメータに予め定められた重み付けをしてその合計値を求めることにより、その合計値の大きさにより中間データからラスタデータを合成するのに要する時間を予測する(ステップS14)。そして、その予測値が予め定められた許容値以上であれば(ステップS15のY)、前述の規定時間には中間データからラスタデータを合成する処理が間に合わないものとして、前述のとおり中間データからラスタデータを合成する処理を行い(ステップS16)、許容値未満であれば(ステップS15のN)、後段の合成手段25で合成するものと判断する(ステップS17)。
中間データからラスタデータを合成する処理を行なったときには(ステップS16)、現実に印刷文書からラスタデータを合成するのに実際に要した時間がわかるので、その実際の時間とステップS14で予測した時間を比較して、前述のパラメータに用いる重み付けの値を実際の時間に近づくように調整する予測パラメータ調整を行ない(その詳細は後述)(ステップS18)、次のページの処理を開始する(ステップS11)。すなわち、重み付けの値の実測値と予測値とのギャップを常時フィードバックし、合成難易度判定処理の精度を向上させる。なお、パラメータに用いる重み付けの初期値は予め適切と思われる値を与えておく。また、ステップS3の処理はステップS1開始前に実施しておいてもよい。
図9、図10は、合成難易度判定処理の精度を向上させるための変換手段23が行う処理の他例のフローチャートである。
この処理では、図9の通常モードと図10の学習モードとの切り替えを行う。まず、通常モードについて説明する。変換手段23は、印刷文書の1ページ分について処理を開始する(ステップS21)。そして、当該ページについて前述のとおり中間データを作成する(ステップS22)。また、印刷文書の特徴(図7に示すパラメータ)を抽出する(ステップS23)。そして、抽出した印刷文書の特徴も参照して、前述のパラメータに予め定められた重み付けをしてその合計値を求めることにより、その合計値の大きさにより中間データからラスタデータを合成するのに要する時間を予測する(ステップS24)。そして、その予測値が予め定められた許容値以上であれば(ステップS25のY)、前述の規定時間には中間データからラスタデータを合成する処理が間に合わないものとして、前述のとおり中間データからラスタデータを合成する処理を行い(ステップS26)、許容値未満であれば(ステップS25のN)、後段の合成手段25で合成するものと判断する(ステップS27)。
そして、ステップS24で予測した時間(予測値)と現実に印刷文書からラスタデータを合成するのに実際に要した時間(実測値)とのズレが予め定められた許容範囲内であれば(ステップS28のY)、ステップS1に戻って次のページの処理を開始して、通常モードを維持する。
許容範囲内になければ(ステップS28のN)、学習モードに移行する。なお、学習モードに移行するに際して、処理待ちの中間データが存在する場合は、ステップS34から学習モードを開始し、そうでない場合はステップS31から学習モードを開始する。
学習モードにおいて、変換手段23は、印刷文書の1ページ分について処理を開始する(ステップS31)。そして、当該ページについて前述のとおり中間データを作成する(ステップS32)。また、印刷文書の特徴(図7に示すパラメータ)を抽出する(ステップS33)。そして、抽出した印刷文書の特徴も参照して、前述のパラメータに予め定められた重み付けをしてその合計値を求めることにより、その合計値の大きさにより中間データからラスタデータを合成するのに要する時間を予測する(ステップS34)。この場合は、一律に、前述の規定時間には中間データからラスタデータを合成する処理が間に合わないものとして、前述のとおり中間データからラスタデータを合成する処理を行なう(ステップS35)。
そして、ステップS34で予測した時間(予測値)と現実に印刷文書からラスタデータを合成するのに実際に要した時間(実測値)とのズレが予め定められた許容範囲内でなければ(ステップS36のN)、現実に印刷文書からラスタデータを合成するのに実際に要した時間がわかるので、その実際の時間とステップS34で予測した時間を比較して、前述のパラメータに用いる重み付けの値を実際の時間に近づくように調整する予測パラメータ調整を行なう(その詳細は後述)(ステップS37)。
予測値と実測値とのズレが予め定められた許容範囲内であれば(ステップS36のY)、当該印刷文書の過去のページにおいて予測値と実測値とのズレがなかった回数(予測合致回数)が予め定められた閾値以上であるか否かを判断し(ステップS38)、閾値以上である場合は(ステップS38のY)、前述の通常モードに移行し、閾値未満である場合は(ステップS38のN)、ステップS31に戻り、学習モードで次のページの処理を開始する。すなわち、ステップS37,S38の判断により、予測値と実測値とのズレに基づいて予測値を求める手法(前述のパラメータへの重み付け)を変更する必要があるときは学習モードとし、その必要がないときは通常モードとする。なお、通常モードで図8の処理のように予測パラメータ調整を行うようにしてもよい。
このように図9の通常モードと図10の学習モードとの切り替えを行うようにすると、図8の処理に比べて処理が高速になる。
図11は、ステップS14,S24,S34の合成時間予測処理とステップS18,S37の予測パラメータ調整の例について詳細に説明する説明図である。
1.まず、ページ記述言語で記述された印刷文書33から特徴を抽出し、オペレータ数、オブジェクト数などのパラメータを取得する。また、コントローラ4、プリンタエンジン5の構成からもパラメータを取得する。
2.次に、各パラメータに予め定められた値(α,β,γ,…など)を乗算して重み付けをする。
3.そして、各パラメータに重み付けして合計した結果に予め定められた係数aを掛けて中間データを合成してラスタデータにするのに要する時間の予測値が求められる。
4.次に、この予測値と、中間データを合成してラスタデータにするのに要した実際の処理時間との差をとり、実際の処理時間の内訳(パーセンテージ)により、前述の各重みの値を変更する。例えば、I/Oに時間を要した分は「イメージサイズ」の重みへ、重なったオブジェクトのクリッピングに時間を要した分は「オブジェクト数」「オペレータ数」「イメージ数」などに分散させて重みを変更する。
図12は、ステップS14,S24,S34の合成時間予測処理とステップS18,S37の予測パラメータ調整の他例について詳細に説明する説明図である。
この例では、ページ記述言語で記述された印刷文書33から特徴を抽出し、オペレータ数、オブジェクト数などのパラメータを取得する。また、コントローラ4、プリンタエンジン5の構成からもパラメータを取得する。そして、周知の三層ニューラルネットワークにより各パラメータに分散させて各パラメータの重みを変更する。この場合に中間データを合成してラスタデータにするのに要した実際の処理時間を教師信号として使用する。
図13は、合成難易度判定処理の処理精度、処理速度を向上させるための変換手段23が行う処理の他の例のフローチャートである。
前述のとおり、画像形成を行うためには印刷文書をラスタデータに変換する必要があるが、同様の変換処理により印刷文書から印刷用のラスタデータより低解像度でデータ量の少ない表示用のラスタデータも作成する場合がある。この表示用のラスタデータは表示装置17に表示するために使用する画像データである。この処理は、表示用のラスタデータの作成処理を利用して合成難易度判定処理(ステップS2)を行うものである。
まず、変換手段23は、1ページ分の処理を開始し(ステップS41)、前述の印刷用のラスタデータを作成する手法により印刷文書から表示用のラスタデータを作成する(ステップS42)。この表示用のラスタデータは印刷用のラスタデータと同じ印刷文書から作成されるが、解像度が印刷用のラスタデータ(この例で600dpi)より低い(この例で72dpi)。次に、同一の印刷文書から中間データを作成する(ステップS43)。そして、ステップS41で表示用のラスタデータの作成に実際に要した時間が予め定められた閾値以内であるか否かを判断し(ステップS44)、閾値以内であれば(ステップ44SのY)、前述の規定時間に余裕時間があるものと判断して、ステップS43で作成した中間データをそのままにし、ラスタデータへの合成は行わない(ステップS45)。この場合は合成手段25でラスタデータへの合成が行われる。
閾値より大きければ(ステップ44SのN)、前述の規定時間に余裕時間がないものと判断して、ステップS43で作成した中間データを合成してラスタデータとする(ステップS46)。
その後は、ステップS41に戻り次の1ページの処理を開始する。
図14〜図16は、印刷文書を解釈して中間データを生成し最終的に印刷データを合成するまでの具体例を段階を追って説明する説明図である。
まず、この例で、印刷文書から最終的に合成される印刷データの1ページ分のイメージが図14に示すものであった場合に、図15(1)に示すように印刷文書の当該ページの各オブジェクトのリストであるオブジェクトリストが1〜8番まで存在していた場合、まず、このオブジェクトリストをソートし、重なりのあるオブジェクト同士のオブジェクトリストごとにグループ化する。図15(2)にそのソート後の各オブジェクトを示しているが、オブジェクトの重なりなし、重なり数2、重なり数3、バックグランドフォームにそれぞれグループ化するようにソートされた中間データが生成されている。このようにオブジェクトの重なりがあるものがまとめられているので、その後の合成が処理しやすくなる。オブジェクトの重なりは、そのオブジェクトの境界領域間を互いに比較することにより判断する。
次に、ソート後の中間データにおいて、オブジェクトの重なり数の多いもの同士を合成して重なりをなくす。図15(3)では、重なり数の最も多い重なり数3のオブジェクトを合成して重なりをなしにしている。図15(3)の中間データは重なりをなしにした部分についてはラスタデータ化されていることになる。
図16(3)の状態は図15(3)の状態を示している。この状態から次にオブジェクトの重なり数の多いもの同士を合成して重なりをなくす。図16(4)では、重なり数が次に多い重なり数2のオブジェクトを合成して重なりをなしにしている。図16(4)の中間データも重なりをなしにした部分についてはラスタデータ化されていることになる。
このようにして、オブジェクトの重なりをなくした後、その重なりのないオブジェクト同士を合成し(図16(5))、さらに背景を合成することにより、印刷文書から最終的に合成される印刷データが生成される(図16(6))。
このように、印刷文書を最終的に印刷データ(ビットマップデータ)に変換するためには、段階的な処理が必要であり、中間データといっても最終的な印刷データへの近さにより様々な段階がある。
前述の例では、変換手段23で中間データの生成にとどめるといっても、その中間データがどの段階の中間データであるかは一義的に定められている。この中間データが最終的な印刷データから遠い場合、すなわち、変換手段23における処理をあまりおこなわないものである場合には、変換手段23の処理負担は軽減され、変換手段23での処理時間の短縮を図ることができる。
以下では、変換手段23での中間データの生成について、どの程度の中間データを生成するかをユーザが設定できるようにした例について説明する。
図17は、変換手段23が行う処理の他例のフローチャートである。
まず、変換手段23は、印刷文書の1ページ分について処理を開始する(ステップS51)。そして、当該ページについて前述のとおり中間データを作成する(ステップS52)。また、印刷文書の特徴(図7に示すパラメータ)を抽出する(ステップS53)。そして、抽出した印刷文書の特徴も参照して、前述のパラメータに予め定められた重み付けをしてその合計値を求めることにより、その合計値の大きさにより中間データからラスタデータを合成するのに要する時間を予測する(ステップS54)。そして、その予測値が予め定められた許容値以上であれば(ステップS55のY)、前述の規定時間には中間データからラスタデータを合成する処理が間にあわないものとして、前述のとおり中間データからラスタデータを合成する処理を行い(ステップS56)、許容値未満であれば(ステップS55のN)、中間データの部分合成を行う(後述)(ステップS57)。
中間データからラスタデータを合成する処理を行なったときには(ステップS56)、現実に印刷文書からラスタデータを合成するのに実際に要した時間がわかるので、その実際の時間とステップS14で予測した時間を比較して、前述のパラメータに用いる重み付けの値を実際の時間に近づくように調整する予測パラメータ調整を行ない(前述のとおり)(ステップS58)、次のページの処理を開始する(ステップS51)。
中間データの部分合成(ステップS57)では、ユーザの設定により印刷文書から完全なラスタデータまでのどの段階の中間データを生成するかをユーザが予め設定できるようにして、その設定に応じた段階の中間データを生成するようにしている。
図18は、中間データの部分合成(ステップS57)における中間データの生成について説明するフローチャートである。
まず、ステップS52で生成した中間データを取得し(ステップS61)、その中間データを解析して(ステップS62)、N個以上が重なっている部分(オブジェクト)を取り出して合成する(ステップS63)。ここでは、ユーザが予めNの値を設定している。すなわち、時間の予測値が小さいと思われるほど、すなわち、前述の規定時間に余裕があると思われるほど、Nの値を小さくしてオブジェクトを取り出して合成する処理をより多く変換手段23で行うようにする。そして、その合成された部分を中間データにマージする(ステップS64)。この処理では、中間データにおける重なりの上限値を決めるので、この処理に続くラスタデータ作成のためのプロセスでラスタデータの合成に必要となる時間が簡単な計算で求められる。
図19は、中間データの部分合成(ステップS57)における中間データの生成の別例について説明するフローチャートである。
まず、ステップS52で生成した中間データを取得し(ステップS71)、その中間データを解析して(ステップS72)、N個以上が重なっている部分(オブジェクト)を取り出して合成する(ステップS73)。ここでは、ユーザが予めNの値を設定している。すなわち、時間の予測値が小さいと思われるほど、すなわち、前述の規定時間に余裕があると思われるほど、Nの値を小さくしてオブジェクトを取り出して合成する処理をより多く変換手段23で行うようにする。
そして、オブジェクトの総数がM以上であれば(ステップS74のY)、オブジェクトの総数がMの値より小さくなるかオブジェクトの重なりがなくなるまでさらに合成する(ステップS75)。ここでは、ユーザが予めMの値を設定している。すなわち、時間の予測値が小さいと思われるほど、すなわち、前述の規定時間に余裕があると思われるほど、Mの値を小さくしてオブジェクトを取り出して合成する処理をより多く変換手段23で行うようにする。
以上の各例では、合成手段25の処理負荷が大きくなると、プリンタエンジン5での印刷処理に合成手段25でのラスタデータの合成処理が間に合わなくなる事態も考えられる。一方で、変換手段23は、1つの印刷要求について印刷文書全体の処理を終了し、次の印刷要求の処理要求がないときは遊休状態となる。
そこで、変換手段23が遊休状態にあるときは、変換手段23で処理終了後の印刷文書でも、完全なラスタデータに変換されていないページを含んでいるときは、完全なラスタデータにするために必要な処理の少なくとも一部を合成手段25にやらせず、変換手段23で行うようにすれば、合成手段25の処理負荷が軽減できて、プリンタエンジン5での印刷処理に合成手段25でのラスタデータの合成処理が間に合わなくなる事態を防止することができる。以下では、かかる処理について説明する。
図20は、変換手段23が遊休中に行う処理について説明するフローチャートである。
まず、変換手段23は遊休中か否かを判断する(ステップS81)。変換手段23が遊休中か否かは、変換手段23の処理を行っているCPU11の処理負荷が予め定められた基準値を上回っているか否かにより判断することができる。
遊休中であるときは(ステップS81のY)、変換手段23で処理済であるがプリンタエンジン5での印刷待ちになっている印刷要求があるか否かを判断する(ステップS82のY)。このような印刷要求があるときは(ステップS82のY)、その印刷要求の印刷文書を記憶手段22から取得し(ステップS83)、先行合成対象ページがあるか否か、すなわち、中間データのままになっていて合成手段25での処理対象となるページがあるか否かを判断する(ステップS84)。このようなページがあるときは(ステップS84のY)、中間データのままになっているページの少なくとも一部を先行して合成する(詳細は後述)(ステップS85)。すなわち、中間データのままになっているページの少なくとも一部を完全なラスタデータにするか、又は完全なラスタデータにより近い中間データにする。
変換手段23に新たな印刷要求の印刷文書の処理要求がなされ、変換手段23の負荷が高まった場合はステップS85の処理はただちに終了し、その新たな印刷要求の印刷文書の処理を実行する。ステップS85の処理の対象はプリンタエンジン5で画像形成中の印刷文書も対象としてよい。
図21は、先行合成処理(ステップS85)の一例について示すフローチャートである。
まず、対象となる印刷文書で中間データのままになっているページのうち、ラスタデータに合成するのが最も難しいページを取得する(ステップS91)。この判断は、変換手段23の処理終了後においても合成時間の予測値(ステップS14)をページごとに記録しておき、この予測値が最も大きいページはラスタデータに合成するのが最も難しいページであると判断する。そして、このラスタデータに合成するのが最も難しいページについて変換手段23で再度処理してラスタデータを作成する(ステップS92)。
図22は、先行合成処理(ステップS85)の他例について示すフローチャートである。
この処理例では、対象となる印刷文書で中間データのままになっているページのうち、プリンタエンジンで最初に処理されるページのデータを取得し(ステップS101)、このページについて変換手段23で再度処理してラスタデータを作成する(ステップS102)。
図23は、先行合成処理(ステップS85)の他例について示すフローチャートである。
この処理例では、まず、対象となる印刷文書で中間データのままになっているページのうち1ページを取得し(ステップS111)、これが中間データ形式であれば(ステップS112のY)、1ステップ分の合成処理を実施し(ステップS113)、予定していた単位処理量を処理し終われば(ステップS114のY)、一連の処理を終了し、処理し終わっていなければ(ステップS114のN)、処理中の印刷文書に次のページが存在すれば(ステップS115のY)、ステップS1に戻り、存在しなければ(ステップS115のN)、
一連の処理を終了する。この処理は、中間データのままになっている各ページについて1ステップずつ処理を進めるもので、1ステップ分の処理としては、オブジェクトリストを1つ減らす、オブジェクトリストが予め定めた枚数となるまで合成する、などの処理が考えられる。変換手段23に新たな印刷要求の印刷文書の処理要求がなされ、変換手段23の負荷が高まった場合はステップS85の処理はただちに終了し、その新たな印刷要求の印刷文書の処理を実行する。ステップS114の単位処理量としては、ページ数、処理時間、画像形成待ちのページ数に対する割合、などが考えられる。ページをステップS111で取得する順番としては、画像形成を行う順番、ラスタデータへの合成の難易度などを判断条件とすることができる。
以上の処理により、合成手段25でラスタデータ化する場合であっても、通常は、前述の「規定時間」内にラスタデータを合成し、プリンタエンジン5に送信することが可能である。
しかし、コントローラ4で使用しているOS(オペレーティングシステム)の負荷が過大になっている場合などには、前述の処理によっても前述の「規定時間」内にラスタデータを合成し、プリンタエンジン5に送信することが間に合わず、プリンタエンジン5の画像形成がフォルトになって停止してしまう可能性も考えられる。以下では、前述の処理によってもプリンタエンジン5の画像形成がフォルトになって停止してしまった場合のリカバリー処理について説明する。
図24は、リカバリー処理について説明するフローチャートである。
かかる処理は、印刷文書の各ページをコントローラ4で処理して各ページのラスタデータをプリンタエンジン5に出力する処理の最中に実行する。この処理の最中に前述の「規定時間」内にラスタデータを合成し、プリンタエンジン5に送信することに不成功のページが発生したときは(ステップS191のY)、プリンタエンジン5の画像形成がフォルトになって停止してしまう。
このような場合は、そのエラーページについて前述のステップS2で判定した合成難易度(値を“a”とする)を取得し(ステップS192)、この合成難易度aの値に基づいて当該エラーページについてリカバリーは容易か否かを判断する(ステップS193)。具体的には、エラーページの合成難易度aとステップS3の判断で用いた閾値との差分が予め定められた一定値以上あればリカバリーは容易と判断し、一定値未満ならリカバリーは困難と判断することが考えられる。
リカバリーは容易であるときは(ステップS193のY)、エラーページを合成手段25で再度ラスタデータ化して制御手段24でプリンタエンジン5に出力する(ステップS194)。リカバリーは容易でないときは(ステップS193のN)、変換手段23で中間データをラスタデータ化して(ステップS195)、後続ページ処理(後述)を行ない(ステップS196)、これを制御手段24でプリンタエンジン5に出力する(ステップS194)。
図25は、後続ページ処理(ステップS196)のサブルーチンのフローチャートである。
リカバリーは容易でないときは(ステップS193のN)、エラーページの後続のページでも、「規定時間」内にラスタデータを合成し、プリンタエンジン5に送信することが不成功となる可能性が高まるので、後続ページ処理(ステップS196)では、その対策を講じる。
まず、印刷文書のnページ目で中間データからラスタデータを合成するのに失敗したときは(ステップS201のY)、後述の処理を行うページ番号を特定する値「i」の初期値を0として(ステップS202)、nページ目の全後続ページの処理を終了するまでは以下の処理を行う(ステップS203のN)。
すなわち、n+iページ目が中間データのままであれば(ステップS204のY)、合成難易度(値を“b”とする)を前述の手法で判定し(ステップS205)、合成難易度aとbとにより、印刷文書のnページ目とn+iページ目とが、中間データからラスタデータを合成するのに失敗する失敗しやすさという点で類似しているか否かを判断する(ステップS206)。そして、類似していない(ステップS206のY)、すなわち、n+iページ目は中間データからラスタデータを合成するのに失敗する可能性は低いと判断したときは、中間データを合成手段25でラスタデータに変換し(ステップS207)、「i」の値に1を加算して(i=i+1)(ステップS208)、ステップS203に戻る。
ステップS206では、合成難易度aとbとにより、印刷文書のnページ目を中間データからラスタデータに変換するのに要する時間に影響を与える要素(前述のパラメータ)と、n+iページ目を中間データからラスタデータに変換するのに要する時間に影響を与える要素(前述のパラメータ)とを比較することにより、中間データからラスタデータを合成するのに失敗する失敗しやすさという点で類似しているか否かを判断する。
より具体的には、nページ目の合成難易度aのうち最も値が大きいパラメータと、n+iページ目の合成難易度bのうち最も値が大きいパラメータとが同じであれば、類似していると判断することができる。
あるいは、nページ目の合成難易度aのうち最も値が大きいパラメータと、n+iページ目の合成難易度bのうち最も値が大きいパラメータとを比較し、n+iページ目の当該パラメータの方が等しいか大きい場合は、類似していると判断することができる。
次に、画像形成システム1の保存印刷要求モードについて説明する。この保存印刷要求モードは、ユーザがクライアント端末2から保存印刷要求を行うと、保存印刷要求に含まれる印刷文書を変換手段23で処理するが、この処理後の印刷文書を記憶手段22に保存し、ただちには画像形成を行わず、後ほど記憶手段に保存された当該印刷文書の印刷要求がユーザからなされたときに当該印刷文書を記憶手段22から呼び出してプリンタエンジン5で画像形成を行うというモードである。
図26、図27は、保存印刷要求モードの処理を説明するフローチャートである。
図26は、保存印刷要求がユーザからなされた場合の処理であり、保存印刷要求に含まれる印刷文書のページを変換手段23で中間データに変換し(ステップS141)、前述のステップS2の同様の処理により合成難易度判定を行い(ステップS142)、この合成難易度判定の結果を当該ページにつけて記憶手段22に保存する(ステップS143)。以上の処理はすべてのページについて行う(ステップS144)。
図27は、図26の処理により保存された印刷文書の画像形成を行う処理であり、記憶手段22に保存されていて印刷要求がなされた印刷文書のページの中間データの合成難易度(値を“n”とする)を取得し(ステップS151)、この合成難易度nを予め定められた閾値aと比較して(ステップS152)、閾値aより合成難易度nが大きければ(ステップS152のY)、変換手段23でラスタデータに変換し(ステップS153)、制御手段24でプリンタエンジン5に送信する(ステップS154)。合成難易度nが閾値a以下であれば(ステップS152のN)、(合成手段25でラスタデータに変換した上で)、制御手段24でプリンタエンジン5に送信する(ステップS154)。以上の処理はすべてのページについて行う(ステップS155)。
図28、図29は、保存印刷要求モードの処理を説明するフローチャートである。
図28は、保存印刷要求がユーザからなされた場合の処理であり、保存印刷要求に含まれる印刷文書のページを変換手段23で中間データに変換し(ステップS161)、前述のステップS2の同様の処理により合成難易度判定(値を“n”とする)を行い(ステップS162)、この合成難易度nを予め定められた閾値bと比較する(ステップS163)。合成難易度nが閾値bより大きいときは(ステップS163のY)、当該ページが複雑でラスタデータ化に時間を要すると判断して、変換手段23でページの中間データからラスタデータを作成し(ステップS164)、記憶手段22に保存する(ステップS165)。合成難易度nが閾値b未満のときは(ステップS163のY)、当該ページのラスタデータ化にあまり時間は要しないと判断して、中間データのまま記憶手段22に保存する(ステップS165)。以上の処理はすべてのページについて行う(ステップS166)。
図29は、図28の処理により保存された印刷文書の画像形成を行う処理であり、記憶手段22に保存されていて印刷要求がなされた印刷文書のページの中間データの属性、すなわち中間データからラスタデータかの情報を取得し(ステップS171)、ページが中間データであれば合成手段25でラスタデータに合成の上で(ステップS173)、制御手段24がプリンタエンジン5にページのデータを送信し(ステップS174)、ページがラスタデータであればそのまま制御手段24がプリンタエンジン5にページのデータを送信する(ステップS174)。以上の処理はすべてのページについて行う(ステップS175)。
図30は、図28の処理の他例を示すフローチャートである。
すなわち、図30は、保存印刷要求がユーザからなされた場合の処理であり、保存印刷要求に含まれる印刷文書のページを変換手段23で中間データに変換し(ステップS181)、この中間データのサイズ(データ量)を検出する(ステップS182)。そして、そのページのページサイズから当該中間データを合成してラスタデータにした場合のラスタデータサイズ(データ量)を計算する(ステップS183)。そして、検出した中間データのサイズと計算したラスタデータのサイズを比較し(ステップS184)、ラスタデータの方がデータサイズ小さければ当該ページの中間データからラスタデータを作成して記憶手段22に保存し(ステップS185)。中間データの方がデータサイズ小さければ当該ページを中間データのまま記憶手段22に保存する(ステップS186)。以上の処理はすべてのページについて行う(ステップS187)。
次に、本発明の別の実施の形態について説明する。
この実施の形態についても画像形成システム1のハードウェア構成は図1、図2を参照して説明した前述の実施の形態と同様であり、詳細な説明は省略する。
図31は、本実施の形態のコントローラ4が制御プログラム12に基づいて実施する処理の機能ブロック図である。
図31において図3と同一符号の機能ブロック等は図3のものと同様であるため、詳細な説明は省略する。本実施の形態においては、合成手段25が制御手段24と独立しており、印刷文書をラスタデータに変換する処理を変換手段23と合成手段25とで2段階に行っている。
図32は、変換手段23が実施する処理について説明する説明図である。
図32において、符号41は、一つの印刷文書の各ページデータを示しており、最も右のものが1ページ目のデータであり、順次左にいくほどページ番号が多くなる。
前述の実施の形態では、合成難易度判定処理(ステップS2)を行い、ラスタデータを合成するのに時間を要しないページについては変換手段23では中間データの作成にとどめ、制御手段24に用意された合成手段25で中間データをラスタデータに変換していた。
本実施の形態では、このようにページごとにラスタデータを合成するのに時間を要するか否かを判断して、ラスタデータを作成するか、中間データの作成にとどめるかの処理を分けるようにはしない。別の手法により変換手段23で中間データの作成にとどめるページを設けるようにして、変換手段23での処理を早期に終了させるようにしている。
すなわち、本実施の形態では、予め設定した「先行合成ページ数」のページ数分だけの印刷文書の冒頭のページについては(図32の(1)の各ページ)、一律に変換手段23でラスタデータに変換する。そして、その「先行合成ページ数」のページ数分だけのページに続くページについては予め設定した「先行合成ページ間隔」ごとに1ページ分(図32の(2)のページ)だけラスタデータに変換する処理を行い、そのラスタデータに変換するページとページとの間に挟まれている他のページ(図32の(3)の各ページ)については中間データに変換する。図32の例では、「先行合成ページ数」が4、「先行合成ページ間隔」が4である。「先行合成ページ数」分をラスタデータとするのは、印刷の初期において印刷データをプリンタエンジン5に送信するための十分な時間的余裕を作るためである。
図33は、先行合成ページ数及び先行合成ページ数の入力画面の説明図である。
コントローラ4では、この入力画面(先行合成ページ設定画面)を表示装置17に表示させ、ユーザが入力装置18を操作することにより、「先行合成ページ数」「先行合成ページ間隔」を様々に設定することができる。
図34は、合成手段25で実行する処理を説明するフローチャートである。
この処理では、変換手段23で処理後の印刷文書を処理する。まず、処理する印刷文書の現在のページのページ番号を示す「i」の値を初期値にし(i=0)、印刷文書のラスタデータ化に要する合計時間である「totalTime」を初期値にし(totalTime=0)、印刷文書のラスタデータ化に要する平均時間である「aveTime」を初期値にし(aveTime=0)、ラスタデータ化したページ数を示す「count」の値を初期値にし(count=0)する(ステップS121)。また、「pNum」は印刷文書のページ数を示し、「preAssm」は「先行合成ページ数」を示し、「intv」は「先行合成ページ間隔」を示す。
次に、「i」の値に1を加算し(i=i+1)(ステップS122)、現在のページ番号iが最終ページより大きくなっていれば(pNum<i)(ステップS123のN)、プリンタエンジン4での印刷開始を指示する(ステップS124)。
現在のページ番号が最終ページでなければ(pNum≧i)(ステップS123のY)、現在のページ番号iのページのデータが中間データであるか否かを判断する(ステップS125)。すでに変換手段23でラスタデータ化されていれば(ステップS125のN)、ステップS122に戻り、中間データであれば(ステップS125のY)、「count」の値に1加算し(count=count+1)、当該iページ目のデータをラスタデータに変換し、このページのラスタデータへの変換に要した時間(変換時間)を「totalTime」に加算し、「totalTime/count」により「aveTime」を求める(ステップS126)。
次に、iページ目が「先行合成ページ数」より少ないか否かを判断し(preAssm>i)(ステップS127)、iページ目が「先行合成ページ数」より少ないときは(ステップS127のY)、ステップS122に戻り、iページ目が「先行合成ページ数」以上であるときは(ステップS127のN)、ステップS128以下の処理を行う。
すなわち、制御手段がページのラスタデータをプリンタエンジン5に転送しなければならない前述の「規定時間」とページのラスタデータをプリンタエンジン5に転送するのにようする時間である「転送時間」との差分時間を「短縮時間」とすると、「余裕時間」を“preAssm*短縮時間”として求める。例えば、「短縮時間」は「規定時間」が200ms、「転送時間」が50msとすると、150msになる。この「余裕時間」は、「先行合成ページ数」分を変換手段23でラスタデータに変換済みであることにより生じる制御手段24のラスタデータ転送のためのゆとり時間である。また、“(aveTime+転送時間)−規定時間”により、「超過時間」を求める。「超過時間」は、1ページ分の中間データをラスタデータに変換すると制御手段24でのプリンタエンジン5へのラスタデータの転送に生じる超過時間である。さらに、“(超過時間*印刷未了中間データページ数)−(短縮時間*印刷未了ラスタデータページ数)”により、「予測不足時間」を求める。「印刷未了中間データページ数」は印刷されていない中間データのページ数であり、「印刷未了ラスタデータページ数」は印刷されていないラスタデータのページ数である。「予測不足時間」は、制御手段24でのプリンタエンジン5へのラスタデータの転送における不足時間とゆとり時間との差分であり、全体として、制御手段24でのプリンタエンジン5へのラスタデータの転送に生じる不足時間である(ステップS128)。
そして、「予測不足時間」が「余裕時間」を下回っていれば(ステップS129のN)、制御手段24でのプリンタエンジン5へのラスタデータの転送にはゆとりがあるため、プリンタエンジン4での印刷開始を指示する(ステップS124)。「予測不足時間」が「余裕時間」を上回っていれば(ステップS129のY)、制御手段24でのプリンタエンジン5へのラスタデータの転送には時間が不足するので、次に説明する追加ラスタライズ処理を行う(ステップS130)。
図35は、追加ラスタライズ処理(ステップS130)のサブルーチンのフローチャートである。
まず、「先行合成ページ間隔」を1減らす(intv=intv−1)(ステップS131)。そして、「先行合成ページ間隔」が1以上であれば(ステップS132のY)、「印刷未了中間データページ数」についてページ間隔を「intv」ごとに中間データをラスタデータに変換し、ラスタデータへの変換済みページ数を表す「preAssm」の値を更新し、中間データからラスタデータへの平均の変換時間を表す「aveTime」の値を更新する。
図36は、追加ラスタライズ処理について説明する説明図である。
図36において、上段は「先行合成ページ間隔」が4の場合を示し、下段は「先行合成ページ間隔」を1減らして3にした場合を示している。「先行合成ページ間隔」が4の場合は、ラスタデータ1ページ分、中間データ3ページ分が交互に連続して現れる。これに対して、「先行合成ページ間隔」を1減らして3にした場合は、ラスタデータ1ページ分、中間データ2ページ分が交互に連続して現れるので、ラスタデータと中間データとの割合はラスタデータの割合が多くなるように変更されることになる。よって、合成手段25でのラスタデータ合成の処理負担は軽減されることになる。