まず、図1を参照して、実施形態の印刷システムの全体構成の一例を説明する。図1に例示する印刷システムは、中間データ生成装置10、ラスタライズ装置20及び印刷装置30を含む。
中間データ生成装置10には、クライアントコンピュータ(図示省略)からネットワークを介して、あるいはCD−R等の可搬型の記憶媒体を介して、PDLデータが入力される。PDLデータは、印刷対象の各ページの画像をページ記述言語(PDL)で記述したデータである。PDLの種類は特に限定されない。PDF(Portable Document Format)のように印刷可能な画像を表すデータ形式も、PDLの一種と捉えることができる。
中間データ生成装置10は、入力されたPDLデータを解釈して、中間データを生成する。中間データは、PDLデータが表す各ページの画像を中間データ形式で表現したデータである。中間データ形式は、ページ記述言語とラスター形式の中間の粒度で画像を表現するデータ形式である。一般に、中間データ形式では、PDLで記述された画像オブジェクトを更に単純な形状の微小要素に細分化して表現する。中間データ形式の例としては、例えばディスプレイリストがよく知られている。また、中間データ形式の別の例として、本出願人による特開2011−150535号公報に記載されたものや、本出願人による特願2013−129948号明細書に記載されたものもある。中間データ生成装置10が行うPDLから中間データ形式への変換処理としては、従来からあるものを用いればよいので、ここでは説明を省略する。
ラスタライズ装置20は、中間データ生成装置10から入力される中間データをラスタライズ(ラスター形式への変換)することで、印刷対象の各ページについて、印刷装置30が受け入れ可能なラスター形式の画像データを生成する。以下では、印刷装置30に供給するラスター形式の画像データのことを印刷画像データと呼ぶ。ラスタライズ装置20は、生成した各ページの印刷画像データを印刷装置30に入力する。また、ラスタライズ装置20は、印刷装置30と情報のやりとりを行うことで、印刷装置30における印刷の実行を制御する。
印刷装置30は、ラスタライズ装置20から入力された印刷画像データを用紙等の媒体上に印刷する。この例では、印刷装置30は、電子写真方式で印刷を行う。すなわち、印刷装置30は、感光体上にレーザービーム等により形成された潜像を、現像器から供給されるトナーにより現像し、現像されたトナー像を用紙に転写する。
印刷装置30は、用紙への印刷を適切に行うために、画像形成プロセスの各要素の状態を監視したり、その監視の結果や印刷対象の印刷画像データに関する情報等に基づいて、画像形成プロセスの各要素を制御する。制御対象の画像形成プロセスの要素の1つとして、トナー補給状態がある。画像形成プロセスの制御の一例としてのトナー補給制御では、現像器内のトナーの量が適切な量となるようトナーカートリッジから現像器へとトナーの補給を制御する。現像器へのトナー補給の制御は、様々なセンサや解析処理の結果に基づいて総合的に行われるが、本実施形態では、特に、印刷対象の画像の像密度(あるいは画素数、濃度等、像密度に等価な指標。以下、像密度と総称する)に基づくトナー補給制御(ディスペンス制御とも呼ばれる)について焦点を当てる。また、画像形成プロセスの制御の別の例として、定着器の温度制御がある。適切な定着を実現するために、用紙に付与されるトナーの量に応じて定着器の温度を制御する処理である。トナーの量は、印刷対象のページの像密度に対応しているので、定着器の温度制御にも像密度の情報が利用される。また、画像形成プロセスの制御の更に別の例として、面内ムラの補正や画像のレジストレーション等がある。これらについては、後述するページ内のエリア(ページの分割結果の個々の領域)毎の像密度が利用可能である。例えば面内ムラの補正の場合、エリア毎の像密度が分かれば、その像密度に応じてエリア毎に適切に補正パラメータを調整することが可能である。
ここで、像密度とは、用紙の表面全体の面積のうち、トナーが載っている部分の面積の占める割合のことである。電子写真方式の場合、印刷対象の画像をハーフトーン処理することで、多値の濃度を有する画素を複数の二値のサブ画素に分け、画素の濃度をそれら複数のサブ画素のうちのオン(すなわちトナーを載せる)画素の数で表現する。したがって、ページの像密度は、そのページの画素の濃度の平均とほぼ同等である。また、従来技術の欄で説明したICDC方式において計数する画素数は1ページ中の、オンとなっているサブ画素の数なので、ページの面積が既知であることを考え合わせると、像密度と等価な指標である。
この像密度に基づくトナー補給制御のために、ラスタライズ装置20は、印刷対象の画像の像密度を計算し、印刷装置30に供給する(詳細は後述)。
図1に例示する構成では、中間データ生成装置10及びラスタライズ装置20は、少なくとも論理的には別々の装置として構成されている。中間データ生成装置10とラスタライズ装置20とは、物理的に完全に別々のコンピュータ装置にインストールされていてもよいし、同一のコンピュータ装置に対して別々のプログラムとしてインストールされていてもよい。中間データ生成装置10とラスタライズ装置20とを論理的に分けることで、例えば中間データの生成の負荷が高い場合に中間データ生成装置10を複数設けて並列動作させ、それら複数の中間データ生成装置10の出力を1つのラスタライズ装置20に供給するなどといった、柔軟なシステム構築が可能となる。中間データ生成装置10とラスタライズ装置20とを物理的に別々の装置として構成する場合、それら両者は例えばローカルエリアネットワーク等のデータ通信ネットワークを介して接続される。また、ラスタライズ装置20と印刷装置30とは、専用の通信ケーブルを介して接続されていてもよいし、データ通信ネットワークを介して接続されていてもよい。
(第1の実施形態)
図2に、本実施形態のラスタライズ装置20の内部構成の一例を示す。図2に示すように、ラスタライズ装置20は、データ制御部202、印刷装置制御部204、モード判定部206、ユーザ設定部208、通常処理部210、像密度先行判定部230を有する。
データ制御部202は、中間データ生成装置10から各ページの中間データを受け取り、受け取った中間データを通常処理部210に、あるいは通常処理部210と像密度先行判定部230の両方に、提供する。中間データを通常処理部210のみに提供するか、通常処理部210と像密度先行判定部230の両方に提供するかは、モード判定部206の判定結果に応じて制御する。
印刷装置制御部204は、印刷装置30に対するインタフェースのためのユニットであり、ラスタライズ装置20が生成したラスター形式の印刷画像データや像密度情報を印刷装置30に転送する。また、印刷装置制御部204は、印刷装置30の性能情報(例えばその印刷装置の印刷速度)を印刷装置30から取得してもよい。
モード判定部206は、トナー補給制御等の画像形成プロセス制御のための指標値である像密度を、通常処理部210内の像密度算出部224で従来通りに算出するか、本実施形態にて新たに設けた像密度先行判定部230により算出するか、を判定する。この判定については、後で詳しく説明する。
ユーザ設定部208は、ラスタライズ装置20に対するユーザの設定を受け付ける手段である。特に、本実施形態では、モード判定部206の判定についてのユーザ設定を受け付ける。例えば、ユーザ設定部208は、その判定についての選択肢を提示したUI(ユーザインタフェース)画面をユーザに提供し、ユーザに選択を行わせる。提示する選択肢としては、例えば(1)像密度先行判定を使用する、(2)像密度先行判定を使用しない(従来どおりの方式で像密度を算出)、(3)像密度先行判定を使用するか否かを自動判定する、等がある。UI画面は、ラスタライズ装置20に付属する表示装置に表示してもよいし、ネットワークを介してクライアントコンピュータの表示装置に表示するようにしてもよい。
通常処理部210は、入力された中間データに対して、従来と同様の通常のラスタライズ処理を行う部分である。すなわち、通常処理部210は、中間データから印刷装置30に提供する印刷画像データを生成する従来の装置と同様の機能を有する。
より詳しくは、通常処理部210は、前処理部212、ラスタライザ218、後処理部220、像密度算出部224を有する。
前処理部212は、中間データに対してラスタライズのための前処理を行う。この前処理は、印刷のために中間データに対して行うべき付加的処理の一種である。図示例では、前処理の例として、面付け処理、及び拡大縮小処理を示している。
面付け処理部214は、中間データが表す論理的なページを、物理的なページである用紙の面に割り付ける。例えば、1つの物理ページ上にn(nは2以上の整数)ページの論理ページを並べて印刷する、いわゆるn−up印刷を行う場合、1つの物理ページ上にn個の論理ページを面付けすることになる。両面印刷を行う場合には、各論理ページを用紙のおもて、うらのいずれかに割り当てる。また、印刷結果を製本する場合には、論理ページ群を製本等を考慮した順序に並び替え、並び替えた順序に従って用紙(製本分野で言うところの「折り」)のおもて及びうらの各場所に割り付けることになる。面付け処理部214は、ユーザから指定された面付け条件に従って、論理ページを物理ページに面付けする。
拡大縮小処理部216は、中間データ形式の各論理ページに対して拡大又は縮小を行う。すなわち、拡大縮小処理部216は、例えば、中間データ形式で表される論理ページの画像を、ユーザが指定した倍率又はサイズになるように、又は用紙のサイズや面付けのパターンに合わせて、拡大又は縮小する。
第1の実施形態では、面付け処理及び拡大縮小処理は、中間データの段階で行っている。例えばディスプレイリスト形式や前述した特開2011−150535号公報や特願2013−129948号明細書に記載された中間データ形式は、中間データのまま面付け処理や拡大縮小処理を行うことができる。他の中間データ形式の中にも、面付け処理や拡大縮小が可能なものがある。なお、図2の例では面付けや拡大縮小を中間データの段階で行ったが、面付けや拡大縮小の一方又は両方を、ラスタライズ後の各ページのラスター画像に対する後処理として行ってもよい。
また、図2ではラスタライズの前処理として面付け及び拡大縮小を例示したが、これら以外の前処理を行ってももちろんよい。例えば、論理ページの一部分を印刷対象範囲として切り取る「クリップ」処理を、前処理として行ってもよい。A3サイズの論理ページの半分(A4サイズの範囲)をクリップして印刷したり、ある論理ページを拡大し、拡大結果の中の一部分をクリップするなどがその例である。
面付け条件、拡大縮小のパラメータ(倍率等)、クリップ処理のパラメータ(論理ページのどの範囲を切り出すか等)は、ラスタライズ装置20又はこれを含む印刷システムのユーザインタフェースに対し、ユーザ(印刷システムを管理するオペレータ等)が入力する。
ラスタライザ218は、中間データをラスタライズし、ラスター画像データを生成する。図示例では、ラスタライザ218は、前処理部212で前処理を施された中間データをラスタライズし、各物理ページ(例えば製本の場合の「折り」)のラスター画像データを生成する。
後処理部220は、ラスタライザ218が生成したラスター画像データに対して後処理を行う。後処理は、印刷のためにラスター画像データに対して行うべき付加的処理の一種である。前処理を経た中間データをラスタライズし、そのラスタライズ結果のラスター画像データに対して後処理を施すことで、印刷装置30に供給する印刷画像データが生成される。図示例では、後処理の一例として、カラー処理を例示している。カラー処理は、印刷画像データの各画素の値を印刷装置30の色再現特性に合わせて調整する処理である。カラー処理部222が行うカラー処理には、例えば、PDLデータの色空間、色特性(一般にはPDLデータの作成環境の色空間、色特性)で表された色値を、固定的なルックアップテーブル等を用いて、印刷装置30の色空間、色特性に応じた色値に変換する色空間変換がある。また、カラー処理では、テスト用のカラーパッチの形成及び読み取りにより検出した印刷装置30の色再現特性の経時的な変化をトーン再現カーブなどを用いて補正する処理を行ってもよい。
ここでは、説明を簡潔にするために、中間データの色を表現する色空間は、印刷装置30の色空間と同じ原色(例えばCMYK)を用いているものとする。なお、中間データで用いている原色が印刷装置30の原色と異なる場合は、ラスタライザ232の前又は後ろで、中間データの色表現を、印刷装置30の原色を用いた場合の表現に変換する(例えばRGBをCMYKに変換するなど)。
第1の実施形態では、色空間変換をラスタライズの後処理として実行したが、中間データの段階で色変換を行うことも考えられる。また、色空間変換以外の処理を後処理として印刷画像データに対して実行してもよい。
像密度算出部224は、ラスタライズ及び色空間変換を経た各物理ページの印刷画像データから、それら各物理ページの像密度を算出する。像密度は、印刷装置30が用いるトナーの色(例えば、C(シアン)、M(マゼンタ)、Y(イエロー)、K(ブラック))毎に求める。像密度算出部224は、色毎に、例えば物理ページの印刷画像データにおける各画素のその色の値を累計し、その累計値をその物理ページの面積(あるいはそのページの総画素数)で割ることで、像密度を求める。また、色空間変換後の印刷画像データをハーフトーン処理し、ハーフトーン処理後の画像データに含まれる各色のサブ画素の数を色毎に累計し、その色毎の累計値をページの面積で割ることで像密度を求めてもよい。求められた物理ページ毎かつ色毎の像密度の情報は、印刷装置制御部204から印刷装置30に通知され、印刷装置30にて、それぞれ対応する物理ページの、対応する色についての画像形成の制御に用いられる。
本実施形態では、ラスタライズ及び色空間変換を経た印刷画像データをいったん保持するバッファメモリ226を通常処理部210に設けてもよい。バッファメモリ226は、半導体ベースのランダムアクセスメモリ等のように、(ハードディスク等の二次記憶装置よりも)高速に読み書きが可能なメモリを用いて構成される。バッファメモリ226には、物理ページの印刷画像データを先入れ先出し方式で書き込む。すなわち、まずバッファメモリ226に空き容量があるうちは、ラスタライザ218等により生成された印刷画像データがバッファメモリ226に生成順に書き込まれる。一方、印刷装置30が新たな物理ページを受け入れ可能になる度に、バッファメモリ226から先頭(すなわち書き込まれた順番が最も古い)の物理ページの印刷画像データが取り出され、印刷装置30に供給される。書き込まれた印刷画像データでバッファメモリ226が満杯になると、バッファメモリ226に空き容量ができるまで、ラスタライザ218等による印刷画像データの生成は一時停止される。バッファメモリ226の上流側の装置(中間データ生成装置10やラスタライザ218等)による物理ページの印刷画像データの生成速度が、印刷装置30の印刷速度を上回る場合、このような状況が生じる場合がある。なお、印刷画像データの生成速度が印刷速度以下の場合は、バッファメモリ226はなくてよく、この場合は生成された印刷画像データが即座に印刷装置30に供給される。
バッファメモリ226は、前述した半導体のランダムアクセスメモリのように、高速に読み書き可能なメモリである。ラスタライズ装置20のメインメモリの一部をバッファメモリ226として用いてもよいし、メインメモリとは別に印刷画像データ保持専用のバッファメモリ226をラスタライズ装置20に設けてもよい。コスト削減のためにメインメモリの容量が小さかったり、専用のバッファメモリ226として小容量のものが用いられている場合には、バッファメモリ226内のそれほど多くの物理ページの印刷画像データを保持することはできない。
第1の実施形態では、ラスタライズ装置20内に確保可能なバッファメモリ226の容量に応じて、像密度算出モードを切り換える。大略的に言えば、確保可能なバッファメモリ226の容量が十分大きい場合には、通常処理部210の像密度算出部224により従来どおり印刷画像データから像密度を算出し、そうでない場合には、像密度先行判定部230により印刷画像データを用いずに簡易的に像密度を算出する。ここで、バッファメモリ226の容量が「十分大きい」とは、バッファメモリ226の容量が「先行ページ数」分の印刷画像データのデータ量の合計よりも大きいことである。ここでいう「先行ページ数」は、ある物理ページについての画像形成プロセスの制御を成り立たせるために、印刷装置30に対して、その物理ページの印刷画像データよりも何ページ分先行して像密度を印刷装置30に供給する必要があるか、を表すページ数のことである。例えば現像器に対するトナー補給の制御の場合、印刷中の物理ページよりも先行ページ数分だけ先の物理ページの像密度を印刷装置30に供給することにより、印刷装置30は、ある物理ページを印刷する時点での現像器内のトナー量が、それ以前の物理ページからその物理ページを経て後続の物理ページ群へと至る間の像密度の変化傾向を考慮に入れた上で、その物理ページの画像形成時に適切な量となっているようにすることが可能になる。なお、印刷装置30が高速機である場合、バッファメモリ226が「十分大きい」と見なされるための容量は膨大なものとなる(例えば100ページ分を保持可能な容量とする場合数十ギガバイト)のは前述の通りである。
先行ページ数の数値は、印刷ジョブの出力先の印刷装置30の性能に依存する。ラスタライズ装置20またはこれを含む印刷制御システムが、出力先の印刷装置30の性能の情報を取得し、その情報に基づいて先行ページ数を決定してもよい。また、印刷装置30から印刷制御システムに先行ページ数を通知するようにしてもよい。
通常処理部210は、ソフトウエアとして構成することができる。すなわち、ラスタライズ装置20はいわゆるソフトウエアRIP(Raster Image Processing)方式を採用している。
像密度先行判定部230は、1つの例では、ラスタライズ装置20内に「十分大きい」バッファメモリ226を確保できない場合に、通常処理部210の像密度算出部224に代わって、各ページの像密度を算出する。像密度先行判定部230はラスタライザ232及び像密度算出部234を有する。
ラスタライザ232は、通常処理部210のラスタライザ218と同じく、中間データのラスタライズ処理を実行する。ただし、像密度先行判定部230には、前処理部212が含まれないので、ラスタライザ232は、前処理を経ていない、各論理ページの中間データをラスタライズする。
像密度算出部234は、ラスタライザ232から出力されるラスター形式の画像データから、像密度を算出する。像密度の算出方式は、通常処理部210の像密度算出部224の算出方式と同様でよい。なお、ラスタライザ232が生成するラスター画像データは、前処理部212による拡大縮小などを経たラスタライザ218からのラスター画像とは、論理ページ1ページあたりの画素数(解像度)が異なる。このため、像密度算出部234が算出する像密度は、通常処理部210の像密度算出部224が算出する像密度とは完全には一致しない。しかし、制御の目的上十分な近似値として利用できる場合がある。なお、画像制御プロセスの制御に高い精度を求める場合において、拡大縮小等が指示されている場合には、像密度先行判定部230を使用しないように制御するようにしてもよい(後で詳細な例を挙げる)。
また、ラスタライザ232から出力されるのは論理ページ毎のラスター画像データなので、単純に算出したのでは、論理ページの像密度が求められることになり、通常処理部210の像密度算出部224が求める物理ページ毎の像密度とは意味合いが異なったものとなってしまう。そこで、像密度算出部234は、ユーザが入力した面付け条件(面付け処理部214で用いられるのと同じ条件)に従って、同じ物理ページに面付けされる複数の論理ページのラスター画像データの各画素の値からその物理ページの像密度を計算するようにしてもよい。例えばn−up印刷の場合、像密度算出部234は、先頭の論理ページから順に、nページごとに像密度を計算すればよい。この場合、nページの論理ページの各画素の画素値を色毎に累計し、その色毎の累計値をそれらnページの総面積(あるいは総画素数)で割ることで、物理ページ1ページ分の像密度を求めることができる。
また、通常処理部210で製本のための面付けが行われる場合、像密度先行判定部230の像密度算出部234は、面付け条件に基づき、同じ物理ページ上に面付けされる論理ページ群を特定し、それら論理ページ群の像密度の平均を計算してもよい。この場合、その平均がその物理ページの像密度情報として出力される。
なお、前処理部212でクリップ処理を行う場合は、クリップにより論理ページから切り出された画像は、元の論理ページと画素分布が大きく異なることが一般的である。したがって、クリップ処理を行う場合は、像密度先行判定部230により求められる論理ページの像密度は、クリップされた部分からなる印刷画像(物理ページ)の像密度とは異なったものとなる。このため、高精度な制御が求められる場合に、クリップが指定されている場合には、像密度先行判定部230を使用しないように制御してもよい(後で詳細な例を挙げる)。
像密度先行判定部230を構成するラスタライザ232及び像密度算出部234は、ソフトウエアにより実装することができる。
像密度先行判定部230は、中間データをラスタライズするものの、前処理部212及び後処理部220の処理を行わない。したがって、像密度先行判定部230は、前処理及び後処理を行わない分だけ、通常処理部210よりもページあたりの処理速度が速い。この処理速度の差により、像密度先行判定部230は通常処理部210よりも先のページを処理することになる。処理が進むにつれて、像密度先行判定部230と通常処理部210との間のページ処理の進捗の差は広がる。このページ差が、前述の先行ページ数に到達すると、これ以上像密度先行判定部230がページ処理を先行させる必要がなくなる。したがって、その到達の時点以降は、像密度先行判定部230は、印刷装置30が1ページを印刷する毎(このペースは原理上は通常処理部210が物理ページ1ページの印刷画像データを生成するペースに等しい)に、1物理ページ分の像密度を算出する定常状態に移行すればよい。この定常状態でのペース合わせのために、像密度先行判定部230は、印刷装置制御部204等から、物理ページごとの印刷の開始や終了のタイミング情報を得るようにしてもよい。
なお、印刷開始から上述した定常状態に達するまでの間は、像密度先行判定部230が通常処理部210に対して先行するページ数は、像密度に基づいて画像形成プロセスを適切に制御できるようにするための前述の先行ページ数より少ない。したがって、この期間はトナー補給制御等の画像形成プロセスの制御の精度が幾分低いものとなる可能性がある。これを避けるために、例えば、像密度先行判定部230が先行ページ数分の像密度の計算を終えるまで、通常処理部210から印刷装置30への印刷画像データの出力を待たせるようにしてもよい。
この場合、像密度先行判定部230は印刷ジョブの先頭から順に各物理ページの像密度を算出し、算出した像密度の情報を印刷装置30に送信する。これに対し、通常処理部210は、印刷ジョブの先頭から順に各物理ページの印刷画像データを生成するが、生成した印刷画像データは印刷装置30には送らずにバッファメモリ226に蓄積する。そして、像密度先行判定部230が先行ページ数分の物理ページの像密度を印刷装置30に送信した時点で、バッファメモリ226に蓄積された印刷画像データの印刷装置30への出力を開始する。これにより、印刷ジョブの先頭の物理ページから、先行ページ数分先までの物理ページ群の像密度を考慮に入れて適切に画像形成プロセスを制御することが可能になる。
第1の実施形態では、バッファメモリ226は、像密度先行判定部230がジョブの先頭から先行ページ数分の物理ページの像密度を求める間に通常処理部210が生成する印刷画像データを格納できるだけの容量を持っている必要がある。しかし、この容量は、先行ページ数分の物理ページの印刷画像データの量よりも少なくて済む。なぜなら、少なくとも前処理や後処理を行わない分だけ像密度先行判定部230の方が通常処理部210よりも1物理ページあたりの処理時間が短いため、その時間に生成される印刷画像データのページ数が少ないからである。バッファメモリ226は、像密度先行判定部230が先行ページ数分の像密度を算出する間に通常処理部210が生成する印刷画像データを格納できるだけの容量があればよい。なお、バッファメモリ226がそれだけの容量を持たない場合などには、通常処理部210が生成した印刷画像データ(すなわち後処理部220の処理結果)をハードディスクやSSD(ソリッドステートディスク)等の二次記憶装置にスプールしてもよい。二次記憶装置に蓄積された各ページの印刷画像データは、例えば印刷装置30からの次ページの要求に応じて順に1ページずつ、印刷装置30に供給される。このように印刷画像データを二次記憶装置にスプールする構成では、例えば、像密度先行判定部230がジョブの先頭から先行ページ数分の像密度を計算し終えるまで(言い換えればジョブの先頭から先行ページ数分の印刷画像データの生成が終わるまで)は、印刷装置30への印刷画像データの供給を待機する。そして、先行ページ数分の像密度が計算できた時点で、二次記憶装置から印刷装置30への印刷画像データの出力を開始する。
なお、バッファメモリ226や二次記憶装置に格納する前に印刷画像データをデータ圧縮してもよい。この場合、バッファメモリ226等から読み出した圧縮データを伸張してから印刷装置30に供給する。
像密度先行判定部230は、像密度算出のために中間データを論理ページ毎にラスタライズするので、1つの例では、論理ページ1ページ分のラスター画像データを保持するためのメモリ容量が必要である。しかし、この1ページ分のメモリ容量は、先行ページ数分の印刷画像データをバッファメモリ226に蓄積する場合に必要なバッファメモリ226の容量(例えば100ページ以上に相当)に比べてはるかに小さい。したがって、バッファメモリ226として大容量が確保できないコンピュータ装置でも、像密度先行判定部230を用いた像密度算出は可能である。
また、像密度先行判定部230は、ラスタライズ処理の単位のラスター画像データを保持するメモリ容量があれば、その容量のメモリ上に展開された画像から像密度を算出できる。したがって、処理対象の中間データが、論理ページより小さい単位でラスタライズが可能なデータ構造を持つものであれば、像密度先行判定部230に必要なメモリ容量は更に少なくて済む。例えば、中間データが1ライン(主走査線)単位でラスタライズ可能であれば、像密度先行判定部230は1ライン分のラスター画像のデータ量に相当するメモリ領域を確保できればよい。また、バンド(論理ページを副走査線方向に等分してできる帯状領域)単位やタイル(論理ページを主走査線方向及び副走査線方向の両方について等分してできる矩形領域)単位でラスタライズ可能な中間データの場合、1バンド分又は1タイル分のメモリ容量を確保できればよい。なお、ある単位でラスタライズが可能とは、中間データを先頭から順に処理していくと、その単位毎にラスター画像が生成されるということであり、その単位の後に現れる中間データはその単位のラスター画像に影響を与えない。
次に、図3を参照して、本実施形態のラスタライズ装置20の処理手順の一例を示す。ここでは、この手順を開始する前に、ユーザが、ユーザ設定部208に対して、(1)像密度先行判定を使用する、(2)像密度先行判定を使用しない、又は(3)使用するか否かを自動判定する、の3つの選択肢のうちの1つを選択済みであるとする。
この手順では、例えば印刷ジョブの実行が指示されると、モード判定部206は、ユーザ設定部208に対してなされたユーザ設定の情報を取得する(S10)。そして、そのユーザ設定情報が、上記(1)、(2)のいずれであるかを判定する(S12、S16)。(1)の場合(S12の判定結果がYes)、モード判定部206は、像密度の先行判定を行うか否かを表す先行判定フラグを「有効」(先行判定を行う)に設定する(S14)。(2)の場合(S16の判定結果がYes)、モード判定部206は、先行判定フラグを「無効」(先行判定を行わない)に設定する(S18)。
一方、S12及びS16の判定結果が共にNoの場合、ユーザ設定は上述の(3)(自動判定)である。この場合、モード判定部206は、ラスタライズ装置20において、バッファメモリ226として確保可能なメモリ領域のサイズ(容量)を、ラスタライズ装置20を管理するオペレーティングシステム等から取得する。そして、このメモリ領域サイズが、先行ページ数分のデータ容量(図3の例では、物理ページ100ページ分の容量)以上であるかどうかを判定する(S20)。S20の判定結果がNoの場合、すなわちバッファメモリ226として先行ページ数分を収容可能な十分な容量を確保できない場合、モード判定部206は、先行判定フラグを「有効」に設定する(S22)。これにより、像密度先行判定部230にて像密度算出が行われることになる。この逆にS20の判定結果がYesの場合、モード判定部206は、先行判定フラグを「無効」に設定する(S24)。これにより、像密度の算出は、通常処理部210で行われることになる。
なお、S20の判定の際、モード判定部206が、印刷装置30(あるいは印刷装置30の性能情報を保持している他の装置)から当該印刷装置30の印刷速度の情報を取得し、取得した印刷速度に応じてS20の判定閾値として用いる先行ページ数を算出してもよい。一般に、印刷速度が速くなるほど、S20の判定閾値は大きくする必要がある。
S14、S18、S22、又はS24の後、モード判定部206は、先行判定フラグが「有効」となっているか否かを判定する(S26)。この判定の結果がYesの場合、モード判定部206は、像密度先行判定部230を有効化する(S28)。S28では、例えば、像密度先行判定部230の機能を記述したプログラムを実行することで、像密度先行判定部230の機能を起動する。このとき、モード判定部206は、通常処理部210の像密度算出部224を無効化する(あるいは起動しない)ことで、ラスタライズ装置20のCPUの処理負荷を低減するようにしてもよい。また、この代わりに、通常処理部210の像密度算出部224を動作させておくが、像密度算出部224が求めた像密度を印刷装置30に通知しないという制御を行ってもよい。また、モード判定部206は、データ制御部202に対し、像密度先行判定部230と通常処理部210の両方に中間データを供給するよう指示する。この指示に応じ、データ制御部202から像密度先行判定部230及び通常処理部210にそれぞれ中間データが供給される。これにより、像密度先行判定部230により像密度の算出が行われ、算出された像密度が印刷装置30へ通知(S30)されると共に、通常処理部210により中間データのラスタライズ(前処理、後処理も含む)が実行され、印刷画像データが生成される(S32)。この場合、生成された印刷画像データは、すぐに印刷装置30に出力するようにしてもよいし、確保したバッファメモリ226にいったん格納し、例えば印刷装置30からの次ページの要求が到来する毎に、先入れ先出し方式で出力するようにしてもよい。
S26の判定結果がNoの場合、通常処理部210は、S20の判定閾値(先行ページ数)に相当する容量のバッファメモリ226を確保し、処理を開始する。また、モード判定部206は、データ制御部202に対して、中間データを通常処理部210に供給し、像密度先行判定部230には供給しないよう指示してもよい。またこのとき、通常処理部210の像密度算出部224を有効化してもよい(通常処理部210が動作している間、像密度算出部224も動作する仕様の場合、有効化は不要)。これにより、通常処理部210が、データ制御部202から供給される中間データに対して前処理、ラスタライズ、及び後処理を実行し、各物理ページの印刷画像データが生成される(S32)。生成された印刷画像データは、バッファメモリ226に格納される。
また、通常処理部210は、先行判定フラグが「無効」であるかどうかを判定し(S34)、「無効」であれば、通常処理部210の像密度算出部224が求めた像密度情報を印刷装置30に通知する(S36)。印刷装置30が次のページの像密度を必要とするタイミングが到来する毎に、像密度算出部224が求めたそのページの像密度情報が印刷装置30に通知される。一方、後処理部220の処理により完成したあるページの印刷画像データは、印刷装置30がそのページを印刷するタイミングに合わせて、印刷装置30に送信される(S38)。印刷ジョブの開始からある程度時間が経過した後の定常状態では、ある物理ページの像密度を印刷装置30に通知した時点から、先行ページ数分の物理ページを印刷するのに要する時間が経過したタイミングで、その物理ページの印刷画像データがバッファメモリ226から読み出され、印刷装置30へ送付される。S34の判定結果がNoの場合は、像密度先行判定部230により像密度が印刷装置30に提供されているので、S36はスキップされ、印刷画像データがページ順に印刷装置30に送付される(S38)。
図2及び図3を用いて説明した方式では、像密度を通常処理部210の像密度算出部224及び像密度先行判定部230のどちらで求めるかを、ラスタライズ装置20が実装されるコンピュータが持つメモリの容量に応じて動的に判定する。したがって、この方式を実現したソフトウエアは、メモリ容量の異なる様々なコンピュータで実行可能である。
以上、本発明の実施形態のシステム構成及び処理内容を例示したが、上記実施形態はあくまで一例に過ぎず、本発明の範囲内で様々な変形が可能である。
例えば、第1の実施形態では、像密度先行判定部230内の像密度算出部234は、ラスタライザ232が生成したラスター画像データのすべての画素を調べることで像密度を算出したが、これは必須ではない。この代わりに、そのラスター画像データの画素を例えば一定間隔でサンプリングすることで、もとのラスター画像よりも低解像度の画像を生成し、その低解像度画像の像密度を算出してもよい。また、ラスター画像を複数のブロックに分割してブロック毎に画素値の平均を求め、そのブロックを画素とする低解像度画像を生成し、その低解像度画像から像密度を求めてもよい。ラスタライザ232がラスタライズを行うプロセスの中で、そのようなサンプリング又は平均演算を行ってもよい。また、サンプリングまたは平均演算で生成した各物理ページの低解像度画像を印刷装置30に送付し、印刷装置30にてそれら低解像度画像を、印刷中のページの概要を表す画像などとして画面表示できるようにしてもよい。
(第2の実施形態)
また、印刷画像データに対応する、より低解像度の画像データから像密度を求める例として、図4に示す例もある。なお、上述の実施形態では、PDLデータから印刷画像データを生成するための機構が中間データ生成装置10とラスタライズ装置20とに分かれていたが、図4の例では、その機構を1つの装置でまかなう。図4では、図2に示した構成に含まれる構成要素と同様の機能を持つ構成要素に対し、図2での当該構成要素の符号に1000を加えた符号を付した。
図4に示す印刷制御システムは、サムネイル生成部1050、表示部1060、データ制御部1202、印刷装置制御部1204、モード判定部1206、ユーザ設定部1208、印刷画像データ生成部1210、像密度算出部1234を有する。
データ制御部1202は、外部からこの印刷システムに入力された印刷データを受け取り、受け取った印刷データをサムネイル生成部1050及び印刷画像データ生成部1210に供給する。
サムネイル生成部1050は、PDLで記述された印刷データから、印刷される各ページの表示用の低解像度画像(サムネイル)を生成する。サムネイル生成部1050が生成した各ページのサムネイルは、例えば、この印刷制御システムのユーザインタフェースを担う表示部1060(例えば液晶ディスプレイ)に表示される。このサムネイル表示は、例えば、印刷制御システムのオペレータが印刷データの画像内容を確認するために用いられる。また、GUI(グラフィカルユーザインタフェース)に表示したサムネイルの順序を入れ替える等の操作により、印刷ページ順の修正などの簡単なジョブ編集を行うことも考えられる。
サムネイル生成部1050は、中間データ生成部1010a、ラスタライザ1232、及びサムネイル管理部1052を有する。中間データ生成部1010aは、データ制御部1202から受け取った印刷データを中間データへと変換する。ラスタライザ1232は、中間データ生成部1010aが生成した中間データをラスタライズする。このラスタライズ処理では、印刷用の高解像度の画像データ(印刷画像データ)よりも低解像度である、予め定められたサムネイル解像度のラスター画像(以下「サムネイル画像」と呼ぶ)を生成する。ここで、サムネイル解像度は、印刷データが表す画像を表示部1060にサムネイルとして表示する際の解像度であり、印刷画像データの解像度より低い。生成されたサムネイル画像は、サムネイル管理部1052に保存され、管理される。サムネイル管理部1052は、保存した各ページのサムネイル画像を、表示部1060に表示されるGUI等に対するユーザからの指示入力に応じて、表示部1060に表示する。また、GUI上に各ページのサムネイル画像を表示し、そのGUI上でユーザからそれらページの印刷順序の変更指示を受け付けるなどといった他の利用例も考えられる。また、生成した各ページのサムネイル画像を後段の印刷装置30に供給し、印刷装置30に設けられた画面にサムネイル画像を表示させることも考えられる(例えば印刷装置30が現在印刷中のページのサムネイル画像を表示するなど)。
像密度算出部1234は、図2の例での像密度先行判定部230の像密度算出部234に対応する機能モジュールである。
第2の実施形態では、中間データ生成部1010aが生成した中間データは、面付け等の前処理を受けることなくラスタライザ1232に入力される。またラスタライザ1232が生成したサムネイル画像は、色変換等の後処理を受けることなく、サムネイル管理部1052及び像密度算出部1234に入力される。したがって、像密度算出部1234は、図2の例の場合と同様、前処理及び後処理を経ないサムネイル画像から像密度を計算するので、前処理及び後処理を経た印刷画像データから像密度を計算する後述の像密度算出部1224よりも、像密度の算出に要する時間が短くて済む。また、ラスタライザ1232が生成するサムネイル画像は、印刷される印刷画像データよりも解像度が低い、すなわち画素数が少ないので、像密度を求めるための画素値のカウント回数が少なくて済む。この点も、像密度の算出時間の短縮効果をもたらす。この低解像度の利点と前述した前処理及び後処理の省略の効果とが相まって、像密度算出部1234での像密度計算は、印刷画像データから像密度を計算する像密度算出部1224よりも、高速処理が可能になる。
この像密度算出部1234が生成した像密度は、印刷装置制御部1204を介して印刷装置30に供給される。
印刷画像データ生成部1210は、印刷データから、印刷用の高解像度の画像データである印刷画像データを生成するモジュールであり、図2の例の通常処理部210に対応する。ただし、中間データ生成部1010bを有する点で、通常処理部110とは異なる。
中間データ生成部1010bは、データ制御部1202から入力された印刷データを中間データに変換し、その中間データを前処理部1212に入力する。以降、前処理部1212(面付け処理部1214及び拡大縮小処理部1216)、ラスタライザ1218、後処理部1220(カラー処理部1222)、像密度算出部1224及びバッファメモリ1226は、図2の例の対応要素と同様の処理を行う。したがって、ラスタライザ1218は、前処理を経た中間データから印刷用の高い解像度の印刷画像データを生成し、後処理部1220は、その高解像度の印刷画像データに対して後処理を行う。そして、像密度算出部1224は、前処理及び後処理を経た高解像度の印刷画像データから像密度を算出する。このようなことから、像密度算出部1224での像密度の計算に要する時間は、前述の像密度算出部1234の場合よりも長くなる。
モード判定部1206は、図2のモード判定部206と同様、ユーザ設定部1208から入力されたユーザの設定情報等に従い、像密度算出部1224及び1234のどちらの求めた像密度を印刷装置30に供給するかを判定する。
以上に説明したように、第2の実施形態(図4を参照)による装置は、低解像度のラスタライズ処理を実行するラスタライザ1232を、画面表示のサムネイル画像の生成と像密度の先行算出とに兼用している。
さて、中間データの形式として解像度に依存しないデータ形式を用いる場合、図4の構成において、サムネイル用の中間データ生成部1010aと印刷画像データ用の中間データ生成部1010bとを1つにまとめてもよい。この場合、共通の中間データ生成部が印刷データから生成した中間データが、サムネイル生成部1050のラスタライザ1232と印刷画像データ生成部1210の前処理部1212に供給されることになる。ここで、一般にサムネイル生成部1050の方が印刷画像データ生成部1210よりも処理が速いので、その分だけサムネイル生成部1050の方が先のページを処理する。そこで、共通の中間データ生成部で生成された中間データを、印刷画像データ生成部1210が処理するまで、メモリに記憶(バッファリング)しておくようにしてもよい。中間データはラスター画像データよりもデータ量が大幅に少ないので、その中間データ保持用のメモリの容量は、印刷画像データ用のバッファメモリ1226よりも大幅に少ない容量のものでよい。
また、以上の例では、サムネイル生成部1050のラスタライザ1232は、固定のサムネイル解像度のラスター画像を生成するとした。ここで、ページ中には画像オブジェクトとしてビットマップ画像も含まれ得るが、このようにビットマップ画像を含むページについては、ラスタライザ1232は、サムネイル解像度ではなく、そのビットマップ画像の解像度でラスタライズを行うようにしてもよい。これは、ページ中のビットマップ画像の解像度をサムネイル解像度へと変換する解像度変換処理の負荷がかなり高いため、ページ全体をビットマップ画像の解像度に合わせた方がページ全体としての処理負荷が低くなるからである。
(第1の変形例)
次に、図5を参照して、上記実施形態の第1の変形例について説明する。図5に示した要素のうち、図2に示した要素と同様の要素には同一符号を付し、重複する説明は省略する。
図5に示す第1の変形例では、印刷データを複数部数印刷する場合に、1部目は像密度先行判定部230で求めた像密度情報を印刷装置30に提供し、2部目以降は通常処理部210で求めた像密度情報を印刷装置30に提供する。このために、図5の変形例のラスタライズ装置20は、通常処理部210の像密度算出部224が算出した像密度を記憶する像密度記憶部225を有する。
第1の変形例では、通常処理部210の像密度算出部224は、印刷データの1部目の印刷実行時に、像密度先行判定部230が有効化されている場合でも、後処理部220から出力される各物理ページの印刷画像データから像密度を求め、求めた像密度を各物理ページの識別情報(例えばページ番号)と対応付けて像密度記憶部225に記憶する。このとき像密度算出部224が求めた像密度は、印刷装置30には送らない。像密度先行判定部230が求めた同じページの像密度が既に印刷装置30に送信済みだからである。
像密度記憶部225に記憶される各物理ページの像密度情報は、前処理及び後処理を経た印刷画像データから求めたものであり、正確な情報である。これに対し、像密度先行判定部230が求める像密度は、前処理や後処理を経ない画像から求めたものであり、相応の誤差を含んでいる。言い換えれば、像密度記憶部225に記憶される、印刷画像データから算出された像密度は、像密度先行判定部230が求める像密度よりも高精度である。
第1の変形例では、1部目の印刷時には、印刷を早めることを優先して像密度先行判定部230が求めた像密度を印刷装置30に供給する。2部目の印刷を開始する時点では、既に全物理ページの正確な像密度情報が像密度記憶部225に蓄積されているので、その正確な像密度情報を印刷装置30に供給する。2部目以降は、像密度先行判定部230は動作させる必要がない。
より詳しくは、データ制御部202は、1部目の印刷時には、印刷装置30への像密度情報の供給を像密度先行判定部230に担当させると共に、通常処理部210には像密度算出部224が算出した像密度情報を像密度記憶部225に記憶させる。そして、データ制御部202は、印刷装置30における印刷の進捗状況(何部目の何ページ目を印刷しているかなど)を印刷装置制御部204から取得し、1部目の残りページ数(例えば、ジョブの総物理ページ数から現在印刷しているページ番号を引いた結果)が、先行ページ数に達すると、像密度記憶部225に、当該ジョブの先頭の物理ページの像密度情報を印刷装置30へと出力させる。以降、データ制御部202は、印刷装置30が1ページを印刷する毎に、次の物理ページの像密度情報を像密度記憶部225から印刷装置30へ供給する。これにより、印刷装置30は、画像形成プロセスの制御に対し、常に、現在印刷中のページよりも先行ページ数分先までの物理ページ群の像密度情報を反映させることが可能となる。
なお、2部目以降の各部の印刷の際、データ制御部202は、通常処理部210に当該ジョブの印刷データのライスタライズ(前処理及び後処理を含む)を再度実行させ、これにより生成された印刷画像データを印刷装置30に供給させるようにしてもよい。このようにすれば、印刷装置30が1ジョブの全物理ページの印刷画像データを保持可能な容量のメモリや二次記憶装置を持たない場合にも対応できる。
また、1部目の印刷の際に生成された印刷画像データを、ラスタライズ装置20内の二次記憶装置(ハードディスク等)に蓄積し、2部目以降は二次記憶装置に蓄積された印刷画像データを読み出して印刷装置30に供給してもよい。二次記憶装置に蓄積する印刷画像データはデータ圧縮してもよい。この場合、二次記憶装置から読み出された圧縮データは、ラスタライズ装置20又は供給先の印刷装置30で伸張すればよい。
以上では、図2に示したラスタライズ装置20(第1の実施形態)に対する変形の例を説明したが、図4に例示した中間データ生成機能とラスタライズ機能とを一体化したシステム(第2の実施形態)に対しても、以上に説明した第1の変形例と同様の変形が可能である。
(第2の変形例)
次に、図6を参照して、別の変形例を説明する。図6に示した要素のうち、図2(第1の実施形態)に示した要素と同様の要素には同一符号を付し、重複する説明は省略する。
図6に示す第2の変形例では、印刷ジョブを初めて実行した場合に、通常処理部210の像密度算出部224で求めたその印刷ジョブの各ページの像密度情報を保存しておく。そして、後で同じ印刷ジョブの実行が指示された場合には、像密度先行判定部230や通常処理部210で像密度を算出する代わりに、その保存しておいたそれら各ページの像密度情報を印刷装置30に供給する。
第2の変形例によるラスタライズ装置20は、履歴記憶部240を有している。履歴記憶部240は、実行したジョブについての履歴情報を記憶する手段である。記憶される履歴情報には、例えばジョブのID(識別情報)、実行日時、実行時に発生したエラーの情報(もしあれば)などの項目が含まれるが、この変形例では、更に当該ジョブの各ページの像密度情報(通常処理部210が求めたもの)が含まれることになる。
第2の変形例では、データ制御部202は、印刷ジョブの実行を開始する際、履歴記憶部240内にそのジョブのIDに対応する履歴情報があるかどうかを調べる。そのような履歴情報がない場合、データ制御部202は、上記実施形態と同様の手順(図3参照)に従って、像密度の算出・送信及びジョブの実行を行う。すなわち、像密度先行判定が有効と判定される場合には、像密度先行判定部230が求めた像密度を印刷装置30に提供し、無効と判定される場合には、通常処理部210が求めた像密度を印刷装置30に提供する。ここで、像密度先行判定部230を有効化している場合でも、通常処理部210の像密度算出部224に像密度算出を行わせ、この結果求められる各ページの像密度情報を履歴記憶部240内の当該ジョブの履歴情報に組み込む。
一方、実行しようとする印刷ジョブのIDに対応する履歴情報が履歴記憶部240内にあれば、そのジョブの実行の際、その履歴情報に含まれる像密度情報を印刷装置30へ供給する。このとき、通常処理部210及び像密度先行判定部230の像密度算出部224及び234は動作させなくてよい。
ここで、印刷装置30に履歴記憶部240から像密度情報を供給する場合の処理の流れは、例えば以下のようになる。印刷ジョブの印刷を開始しようとする際、まず、履歴記憶部240内のそのジョブの履歴情報に含まれる先頭ページから先行ページ数分の像密度情報を、ページ順に印刷装置30に送信する。この先行ページ数分の像密度情報の送信後、通常処理部210から印刷装置30への印刷画像データの供給を開始する。その後は、印刷装置30が1ページ印刷する毎に、次のページの像密度情報を履歴記憶部240から印刷装置30に供給する。
このように第2の変形例では、同じジョブが再度印刷される場合に、そのジョブの最初の実行の際に印刷画像データから求めた高精度な像密度情報が印刷装置30に供給される。第2の変形例も、第1の変形例と同様、図4に示した第2の実施形態のシステム構成にも適用可能である。
(第3の変形例)
これまでに説明した実施形態及び変形例では、像密度先行判定を有効とするか否かを、像密度先行判定の利用の有無についてのユーザの指示や、システムが有するメモリの容量に応じて判定した。これに対し、次に説明する第3の変形例では、別の判定基準に基づいて判定を行う。
判定基準の1つとして、印刷ジョブの実行形態がある。印刷システムにおける印刷ジョブの実行形態には、例えば、ラスタライズしたものをすぐに印刷する形態(「オンザフライ」モードと呼ぶ)と、ラスタライズのみを行い、生成した印刷画像データを印刷せずにハードディスク等にスプールする形態(「スプール」モードと呼ぶ)がある。スプールモードでジョブを実行する場合、印刷装置30に対して各物理ページの像密度情報を早く通知する必要はないので(印刷装置30が像密度情報を必要とするのは、後で印刷指示が発せられた時である)、像密度先行判定を無効とする。この場合、通常処理部210でのラスタライズ等による各物理ページの印刷画像データの生成と並行して、像密度算出部224が生成された印刷画像データの像密度を算出し、生成した印刷画像データをスプールすると共に、算出した各ページの像密度情報を保存する。そして、スプールした印刷画像データに対する印刷を実行する際に、保存した各物理ページの像密度情報を印刷装置30に提供する。
また、別の判定基準として、ユーザから指定される印刷属性の一つである印刷画質レベルがある。例えば、指定された印刷画質レベルがあらかじめ定められている基準画質レベルより高い場合には、像密度先行判定を無効とし、通常処理部210の像密度算出部224が求めた像密度情報を印刷装置30に供給する。
更に別の判定基準として、印刷ジョブのPDLデータが表す画像に対して、拡大・縮小又はクリップ処理等のように画像内容の変更を伴う印刷属性がユーザから指示されているか否か、がある。クリップ処理とは、画像の一部を切り出す(したがって他の部分は削除する)処理のことであり、元の画像と、クリップ処理により切り出された画像とは、全体としてみた場合に画像内容が異なる。拡大・縮小の場合は、元の画像と拡大・縮小後の画像とは相似形であるが、画素同士は一対一に対応しないので画像内容は異なる。これらの場合、PDLデータが表す画像の一部分のみが印刷されたり、その画像を含むより広い範囲が印刷されたりすることで、PDLデータが表す画像と印刷される画像が異なったものとなる。このため、PDLデータが表す画像と印刷される画像との間で像密度が大きく異なってくる可能性がある。そこで、そのような印刷属性が指示されている場合には、像密度先行判定を無効とし、通常処理部210の像密度算出部224が求めた像密度情報を印刷装置30に供給する。
ここでは拡大・縮小及びクリップを例示したが、PDLデータをラスタライズして得られる画像と実際に印刷される物理ページの画像とで像密度に大きな差が出る印刷属性一般についても同様である。拡大・縮小、クリップ以外でも、この条件に該当する印刷属性が指示された場合には、像密度先行判定を無効化することが考えられる。
図7は、第3の変形例におけるモード判定部206(図2等の構成の場合)又は1206(図4の構成の場合)の処理手順の一例を示す。この手順では、まずモード判定部206又は1206(図2等又は図4を参照)は、ユーザ設定部208又は1208から、実行対象の印刷ジョブに対するユーザの指定内容の情報を受け取る(S40)。次に、その指定内容におけるスプールモードの指示の有無(S42)、高画質印刷指示の有無(例えば指定された画質レベルを閾値と比較することで判定)(S44)、拡大・縮小又はクリップ指示の有無(S46)を判定する。そして、S42〜S46のいずれかの判定結果が肯定(Yes)であれば像密度先行判定のフラグを「無効」にセットし(S48)、それらすべての判定結果が否定(No)であればそのフラグを「有効」にセットする(S49)。S48又はS49の後、ラスタライズ装置20は、例えば図3のS26以下の処理を実行すればよい。
なおS46では、ユーザからの印刷指示が、拡大・縮小及びクリップ指示だけでなく、PDLの印刷データをラスタライズして得られる画像と実際に印刷される物理ページの画像とで像密度に大きな差が出る他の種類の印刷属性に該当するか否かを判定してもよい。
また、第3の変形例におけるS42〜S46の判定を、図3の手順におけるS12、S16及びS20の判定に加えて用いるようにしてもよい。第3の変形例の方式は、上に説明した実施形態及び変形例のいずれにも適用可能である。
(第4の変形例)
以上の実施形態及び変形例では、いったん像密度先行判定が有効又は無効と判定されると、その後はその判定結果がジョブの最後まで維持される。これに対し、ジョブの実行の進捗に応じて像密度先行判定を有効から無効に切り換える第4の変形例を以下に説明する。第4の変形例は、上に説明したすべての実施形態及び変形例にて適用可能である。
第4の変形例では、図7の手順のS42〜S46の判定の結果像密度先行判定が有効とされた場合、印刷ジョブの最初の方では、印刷装置30は像密度先行判定部230が求めた像密度情報を用いて画像形成プロセス(例えばトナー補給)の制御を行う。ここで、通常処理部210における印刷画像データの生成速度が印刷装置30の印刷速度よりも速い場合、生成した印刷画像データを蓄積する容量(バッファメモリ、二次記憶装置等)がラスタライズ装置20内に十分あれば、印刷装置30が印刷しているページよりも先行ページ数分先のページまで印刷画像データを生成し、蓄積することができる。印刷中のページよりも先行ページ数分先のページまで蓄積するまでの間は、印刷装置30が像密度先行判定部230からの像密度情報に従って画像形成プロセスの制御を行う一方、通常処理部210の像密度算出部224が、生成した各ページの印刷画像データから像密度を算出し、ページの識別情報と対応づけて(例えば図5の例の像密度記憶部225に)記憶する。そして、印刷中のページよりも先行ページ数分先のページまで印刷画像データを蓄積した段階で、像密度先行判定部230を無効化し、記憶したページの像密度情報を印刷装置30に提供する。その後は、新たなページの印刷画像データが生成される毎に、その印刷画像データからそのページの像密度が算出されて記憶され、記憶された像密度は、順番が来ると印刷装置30に送信される。
ラスタライズ装置20内での印刷画像データの蓄積は、バッファメモリ226の容量が先行ページ数分の印刷画像データのデータ量以上の場合は、バッファメモリ226に対して行えばよい。そうでない場合、ラスタライズ装置20が印刷画像データのスプール機能を持っているのであれば、生成した印刷画像データを、ハードディスク等の二次記憶装置にスプールする形で蓄積すればよい。
第4の変形例では、モード判定部206又は1206は、印刷ジョブの開始時には図7の手順を実行し、S48又はS49の後、図8の手順に進む。図8の手順では、まず像密度先行判定のフラグが「有効」又は「無効」のいずれとなっているかを判定し(S50)、「有効」であれば像密度先行判定部230(図2等の例)又は像密度算出部1234(図4の例)を有効化し(S52)、S54に進む。像密度先行判定のフラグが「無効」を示す場合、S52は飛ばしてS54に進む。S54では、通常処理部210が印刷ジョブのPDLデータを先頭から順にラスタライズ(前処理及び後処理も含む)していく。以上に説明したS50〜S54の処理は、図3の手順におけるS26、S28及びS32の処理と同様である。ラスタライズにより生成された各物理ページの印刷画像データは、バッファメモリ226又は二次記憶装置(以下、「バッファ等」と総称する)に蓄積される(S56)。また、通常処理部210の像密度算出部224が、生成された印刷画像データの像密度を算出し、算出した像密度を当該印刷画像データと対応づけて(例えば当該印刷画像データのページ番号と対応づけて)記憶する(S58)。PDLデータの最後に達するまで、S56及びS58の処理が繰り返される。この繰り返しが続いている間、例えば印刷装置30から次ページの送信要求が来る都度、印刷装置30に対して順に各ページの印刷画像データが送信される。
ここで、通常処理部210が印刷画像データを生成する速度(単位時間あたりに生成する物理ページの数)が印刷装置30の印刷速度よりも高い場合、バッファ等からの読み出しよりもバッファ等への書き込みの方が速いということなので、バッファ等に蓄積される印刷画像データのページ数が増えていく。バッファ等に蓄積されたページの数が先行ページ数に達した時点では、ラスタライズ装置20内に記憶される、印刷画像データから求めた高精度な像密度情報のページ数が、印刷装置30が現在印刷中のページよりも先行ページ数分だけリードしている。印刷画像データの生成速度が印刷速度より速ければ、このリードはそれ以降も維持される。したがって、その時点以降は、像密度先行判定部230が求めた像密度情報に代えて、印刷画像データから求めた高精度な像密度情報を、印刷中のページよりも先行ページ数分のリードを保ちつつ印刷装置30に提供することが可能になる。
そこで、第4の変形例では、例えば通常処理部210が、バッファ等に蓄積されている印刷画像データのページ数を監視し、そのページ数が先行ページ数に達したかどうかを判定する(S60)。バッファ等に蓄積された印刷画像データのページ数は、例えば、通常処理部210が生成した印刷画像データのページ数(物理ページの数)から、通常処理部210から印刷装置30に送信した印刷画像データのページ数を減算することで求めればよい。この判定は、定期的に、あるいは印刷画像データが生成される都度、のように、あらかじめ定められた規則に従って繰り返す。
そして、S60にて、バッファ等に蓄積されている印刷画像データのページ数が先行ページ数に達したと判定されると、モード判定部206(又は1206)が、像密度先行判定のフラグを「無効」に切り換える(S62)。
図9に、第4の変形例での、ラスタライズ装置20から印刷装置30への像密度情報の送信処理の手順を示す。この手順は、例えば印刷装置制御部204又は1204が実行する。
図9の手順では、次ページの像密度情報の送信タイミングが到来するのを待つ(S70)。
いったん印刷中のページよりも先行ページ数分先までの像密度情報を印刷装置30が得た後の定常状態では、印刷装置30が1ページの印刷を完了する毎に次ページの像密度情報の送信タイミングが到来する。すなわち、この定常状態では、例えば印刷装置30から1ページの印刷完了を示す通知又は次のページの印刷画像データの送信要求が到来するのに応じて、像密度情報(その「次のページ」よりも先行ページ数分先のページのもの)を送信するようにすればよい。
一方、印刷ジョブの開始時点から、印刷中のページよりも先行ページ数分先までの像密度情報を印刷装置30が得るまでの間は、先行ページ数分の像密度情報ができるだけ早く印刷装置30に供給されるようにする。このために、例えば、新たなページの像密度情報が算出される都度、S70で送信タイミング到来と判定し、そのページの像密度情報を印刷装置30に送信するようにしてもよい。
S70で次の送信タイミングが到来したと判定すると、ラスタライズ装置20(例えばその中の印刷装置制御部204又は1204)は、像密度先行判定のフラグを調べる(S72)。そのフラグが「有効」であれば、ラスタライズ装置20は、像密度先行判定部230が求めた像密度情報を印刷装置30に送信する(S74)。一方、S72でフラグが「無効」と判定された場合は、ラスタライズ装置20は、通常処理部210の像密度算出部224が求めた精密な像密度情報(像密度記憶部225に記憶された未送信のページの像密度情報のうちページ番号が最も若いもの)を印刷装置30に送信する(S76)。
図8及び図9の手順によれば、ラスタライズ装置20による印刷画像データの生成が印刷装置30で印刷よりも先行ページ数分のリードを得るまでは像密度先行判定部230が求めた像密度が、リードを得た後は通常処理部210が求めた、より高精度な像密度が、印刷装置30に供給されることとなる。
なお、図8及び図9の処理と並行して、印刷装置制御部204は、印刷装置30が1ページ印刷する毎に、次のページの印刷画像データを印刷装置30に送信する。ここで、印刷ジョブの最初のページの印刷画像データの送信は、その最初のページから先行ページ数分の像密度情報を印刷装置30に提供し終えた後に開始するようにしてもよい。これにより、印刷ジョブの最初の物理ページの印刷から、先行ページ数分の像密度を考慮して画像形成プロセスを制御することが可能になる。像密度先行判定が「有効」であれば、像密度は「無効」の場合よりも高速に算出されるので、最初のページの印刷開始を先行ページ数分の像密度の送信完了まで待機するとしても、待機の時間は「無効」の場合より短くて済む。なお、バッファメモリ226の容量が先行ページ数分の印刷画像データより少ない場合は、先行ページ数分の像密度の送信完了までに生成した印刷画像データをハードディスク等にスプールしてもよい。
上述の図8の手順では、ラスタライズの速度が印刷速度より速い場合にバッファ等に蓄積される印刷画像データのページ数が増えていくことを利用して、像密度先行判定フラグの切り替えを制御した。別の例として、例えばPDLの印刷データを中間データに変換する際のデータ解析の結果からその印刷データのラスタライズ処理の処理負荷又は処理速度を概算し、概算結果と印刷装置30の印刷速度との比較に基づいて、上述のフラグの切り替えを制御してもよい。すなわち、PDLの印刷データの解析の際に、印刷データに含まれるオブジェクトの数や形状の複雑さ、カラーか白黒か、透明効果の有無、オーバープリントの有無などといった、通常処理部210又は印刷画像データ生成部1210でのラスタライズ等の処理の負荷に影響を及ぼす情報が得られる。これら情報からラスタライズ処理(前処理や後処理を含む)の処理負荷が概算でき、その処理負荷と通常処理部210等の演算性能等から、ラスタライズ処理等の処理速度が概算できる。例えば、概算したラスタライズ処理等の速度が印刷装置30の印刷速度よりも大きいか否かを判定し、大きければ像密度先行判定のフラグを「無効」とし、そうでなければ「有効」とする。また、このような単純比較に代えて、ラスタライズ処理等の速度を、印刷速度に対して1より大きいあらかじめ定めた定数を乗じた結果と比較するようにしてもよい。
以上に説明した実施形態及び変形例では、印刷装置30に供給する印刷画像データから像密度を算出する方式(「精度優先方式」と呼ぶ)よりも高速に像密度を算出する方式として、前処理及び後処理の両方を省略したラスタライズ結果から像密度を求める方式(「速度優先方式」と呼ぶ)を例示した。しかし、これは一例にすぎない。これら両者の中間的な方式、すなわち前処理及び後処理のうちの一方を省略した場合のラスタライズ結果から像密度を算出する方式でも、印刷画像データから像密度を算出する場合よりも高速な像密度算出が可能である。
また、上記実施形態及び変形例の図3や図7〜図9の処理において、像密度先行判定のフラグが「有効」である場合の処理方式として、速度優先方式に代えてその中間的な方式を用いるようにしてもよい。
(第5の変形例)
また、速度優先方式、中間的な方式、精度優先方式の3方式を、ユーザからの指定や印刷ジョブの進捗に応じて切り換えるようにしてもよい。例えば、印刷ジョブの開始時にはユーザの指定(例えばそれら3方式に対するユーザからの明示的な選択、スプールモードや画質の指定など。図7参照)から速度優先方式が選択された場合、図8の手順と同様、バッファ等に蓄積された印刷画像データの量(ページ数)が第1の閾値以上になれば中間的な方式に切り換え、第1の閾値よりも大きい第2の閾値以上になれば精度優先方式に切り換える等の手順が考えられる。第2の閾値としては、前述の先行ページ数を用いてもよい。これら3方式のいずれを用いるのかの判定は、モード判定部206又は1206が行えばよい。
また、図7の手順のS46にて拡大・縮小やクリップ、または面付けの指示があると判定した場合、S48(像密度先行判定が「無効」=精度優先方式)の代わりに、中間的な方式のうち特に前処理を行う方式を選択するようにしてもよい。拡大・縮小等の前処理を経たラスタライズ結果から像密度を求めることで、速度優先方式よりも精度の高い像密度を求めることができ、かつ、後処理を省略することで、精度優先方式よりも高速に像密度を求めることができる。なお、この場合も、図8の手順のように、バッファ等に先行ページ数分以上の印刷画像データが蓄積された時点で、精度優先方式に切り換えてもよい。
速度優先方式、中間的な方式、精度優先方式の3方式を切り換え利用するシステム構成を実現するには、例えば、図10に示すように、サムネイル生成部1050に前処理部1070及び後処理部1072を設ければよい。図10に示す要素のうち図4(第2の実施形態)に示した要素と同様の要素には、同一符号を付し、説明を省略する。
前処理部1070及び後処理部1072は、印刷画像データ生成部1210の前処理部1212及び後処理部1220とそれぞれ同様の処理を行うモジュールである。サムネイル生成部1050は、モード判定部1206からの指示に従い、前処理部1070又は後処理部1072の一方又は両方を選択的に無効化する。例えば速度優先方式(像密度先行判定=「有効」)を選択した場合、モード判定部1206は、サムネイル生成部1050に前処理部1070及び後処理部1072の無効化を指示し、像密度算出部1234を有効化する。これにより、像密度算出部1234は、前処理部1070及び後処理部1072を経ないラスタライズ結果をラスタライザ1232から受け取り、そのラスタライズ結果から像密度を算出する。また、モード判定部1206は、指定された印刷属性等に基づいて前処理のみを行う中間的な方式を選択した場合、サムネイル生成部1050に前処理部1070を有効化し、後処理部1072を無効化する指示を行うと共に、像密度算出部1234を有効化する。これにより、指定された印刷属性(例えば拡大・縮小や面付け)に従って前処理部1070で処理された中間データがラスタライザ1232でラスタライズされ、像密度算出部1234はそのラスタライズの結果得られた画像データから像密度を算出する。また、モード判定部1206は、精度優先方式を選択した場合は、像密度算出部1234を無効化することで、サムネイルに基づいた高速な像密度算出を行わないようにする。この場合は、印刷画像データ生成部1210の像密度算出部1224が算出した像密度情報が印刷装置30に提供される。
第5の変形例は、図4の構成(サムネイル生成部1050を用いる第2の実施形態)に中間的な方式を追加したものであったが、図2に示した構成(像密度先行判定部230を用いる第1の実施形態)にも同様の拡張が可能である。
(第6の変形例)
次に、第6の変形例として、物理ページ毎の像密度に加え、物理ページ内のエリア毎の像密度も求める例を示す。ここでいうエリアは、物理ページの一部分の領域のことである。例えば、物理ページを複数のエリアに分割し、像密度算出部224及び234(並びに1224及び1234)にて、それらエリア毎の像密度も算出し、印刷装置30に通知する。印刷装置30は、物理ページの像密度と、その物理ページ内のエリア毎の像密度とに基づき、画像形成プロセスを制御する。エリア毎の像密度の情報は、電子写真方式における面内ムラの補正、画像のレジストレーションの制御、定着の制御等に利用される。
エリア毎の像密度情報を印刷装置30に送信する構成の場合、例えばユーザから印刷属性として製本用の面付けが指定されると、像密度算出の方式として速度優先方式が選ばれないようにしてもよい。製本用の面付けの場合、物理ページ(「折り」の一面)上への論理ページの割り付け順序がページ順と異なり、更に上下反転して割り付けられる論理ページもあるため、個々のエリアにどの論理ページのどの部分が含まれるのかを求めることが難しい。したがって、速度優先方式(この方式では、面付け処理を行わない)で求めた論理ページ群の像密度から物理ページ内の各エリアの像密度を求めることは、不可能もしくはきわめて困難である。製本用の面付けが指定された場合は、前処理部1070等で論理ページ群の面付けを行ってから各エリアの像密度を求める方が、処理が容易である。
以上の各実施形態及び各変形例では、像密度算出部234又は1234と、通常処理部の像密度算出部224又は1224と、を状況に応じて使い分けていたが、像密度算出部224又は1224を省き、どのような場合でも像密度算出部234又は1234により像密度を高速に算出するシステム構成も可能である。
また以上の各実施形態及び各変形例では中間データをラスタライズする装置で像密度を算出したが、本実施形態の手法は、PDLデータをラスタライズする装置で像密度の算出するシステム構成にも適用可能である。ただし、中間データをラスタライズする方がPDLを直接ラスタライズする場合よりもCPU等の処理負荷が低いので、中間データを用いる場合の方が、通常処理部210と像密度先行判定部230の両方でラスタライザ218及び232を動作させても処理速度への悪影響は少ない。特に、ラスタライズの負荷が低い中間データ形式を用いる場合には、ラスタライザを2つ並列動作させてもさほどCPUの負担にはならず、むしろ像密度に基づく画像形成プロセスの制御を成立させるためのメモリ容量への要求が低くなることによる利益がそれに勝る。
また、以上の各実施形態及び各変形例では、印刷装置30は電子写真方式のものであった。しかし、本実施形態の制御は、トナー以外の色材を用いる印刷装置30、例えばインクジェット方式の装置、にも適用可能である。
以上に例示したラスタライズ装置20又は印刷制御システムは、例えば、汎用のコンピュータに当該装置の各機能モジュールの処理を表すプログラムを実行させることにより実現される。ここで言うコンピュータは、例えば、ハードウエアとして、CPU等のマイクロプロセッサ、ランダムアクセスメモリ(RAM)およびリードオンリメモリ(ROM)等のメモリ(一次記憶)、HDD(ハードディスクドライブ)やSSD(ソリッドステートドライブ)、フラッシュメモリ等の二次記憶を制御する二次記憶コントローラ、各種I/O(入出力)インタフェース、無線又は有線のネットワークとの接続のための制御を行うネットワークインタフェース等が、たとえばバスを介して接続された回路構成を有する。また、そのバスに対し、例えばI/Oインタフェース経由で、CDやDVD、ブルーレイディスクなどの可搬型ディスク記録媒体に対する読み取り及び/又は書き込みのためのディスクドライブ、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体に対する読み取り及び/又は書き込みのためのメモリリーダライタ、などが接続されてもよい。上に例示した各機能モジュールの処理内容が記述されたプログラムがCDやDVD等の記録媒体を経由して、又はネットワーク等の通信手段経由で、フラッシュメモリ等の二次記憶装置に保存され、コンピュータにインストールされる。二次記憶装置に記憶されたプログラムがRAMに読み出されCPU等のマイクロプロセッサにより実行されることにより、上に例示した機能モジュール群が実現される。