(57)【特許請求の範囲】
【請求項１】
同一ページに含まれるページ記述言語データの解釈を行う第１のインタプリタおよび第２のインタプリタを有し、
前記第１のインタプリタは、ページ記述言語データの解釈の結果に基づいて当該ページ記述言語データが無彩色であっても複数の有彩色を用いて当該無彩色を表す中間データを生成する第１の処理を、前記同一ページに含まれるページ記述言語データに対して行い、
前記第２のインタプリタは、ページ記述言語データの解釈の結果に基づいて当該ページ記述言語データが無彩色であれば前記複数の有彩色を用いず単一の無彩色によって当該無彩色を表す中間データを生成する第２の処理を、前記同一ページに含まれるページ記述言語データに対して行い、
前記第２のインタプリタはさらに、前記同一ページに有彩色のページ記述言語データが含まれると判別されたことに基づき、前記同一ページに含まれるページ記述言語データの中間データの生成をスキップする画像形成装置。
【請求項２】
前記第２のインタプリタによる中間データの生成がスキップされた後、前記第１のインタプリタと前記第２のインタプリタとのうちの先行するインタプリタに、次のページに対する処理として前記第１の処理を割り振る請求項１記載の画像形成装置。
【請求項３】
無彩色のページが予め定められたページ数以上連続した場合、無彩色のページが連続したことを示す情報を設定し、
該当するページの中間データを生成する際に、前記第１のインタプリタで前記第１の処理を行い、前記第２のインタプリタで前記第２の処理を行うと割り振られていた場合に、前記無彩色のページが連続したことを示す情報が設定されていた場合、前記第１のインタプリタで前記第２の処理を行い、前記第２のインタプリタで前記第１の処理を行うよう割り振りを入れ替える請求項１又は２記載の画像形成装置。
【請求項４】
画像形成装置が実行する情報処理方法であって、
第１のインタプリタおよび第２のインタプリタにより、同一ページに含まれるページ記述言語データの解釈を行うステップと、
前記第１のインタプリタにより、ページ記述言語データの解釈の結果に基づいて当該ページ記述言語データが無彩色であっても複数の有彩色を用いて当該無彩色を表す中間データを生成する第１の処理を、前記同一ページに含まれるページ記述言語データに対して行うステップと、
前記第２のインタプリタにより、ページ記述言語データの解釈の結果に基づいて当該ページ記述言語データが無彩色であれば前記複数の有彩色を用いず単一の無彩色によって当該無彩色を表す中間データを生成する第２の処理を、前記同一ページに含まれるページ記述言語データに対して行うステップと、
前記第２のインタプリタにより、前記同一ページに有彩色のページ記述言語データが含まれると判別されたことに基づき、前記同一ページに含まれるページ記述言語データの中間データの生成をスキップするステップと
を含む情報処理方法。
【請求項５】
前記第２のインタプリタにより、前記中間データの生成がスキップされた後、前記第１のインタプリタと前記第２のインタプリタとのうちの先行するインタプリタにより、次のページに対する処理として前記第１の処理を割り振るステップを更に含む請求項４記載の情報処理方法。
【請求項６】
無彩色のページが予め定められたページ数以上連続した場合、無彩色のページが連続したことを示す情報を設定するステップと、
該当するページの中間データを生成する際に、前記第１のインタプリタで前記第１の処理を行い、前記第２のインタプリタで前記第２の処理を行うと割り振られていた場合に、前記無彩色のページが連続したことを示す情報が設定されていた場合、前記第１のインタプリタで前記第２の処理を行い、前記第２のインタプリタで前記第１の処理を行うよう割り振りを入れ替えるステップを更に含む請求項４又は５記載の情報処理方法。
【請求項７】
請求項４乃至６の何れか１項に記載の情報処理方法の各ステップをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
複写機、レーザプリンタ等の画像形成装置は、ホストコンピュータからのプリントデータを受け取り、そのデータの解釈及び画像処理を行い、印字するための画像データを生成するコントローラを備える。ホストコンピュータのアプリケーションとプリンタドライバとはページ記述言語（ＰＤＬ）により記述されたプリントデータを生成し、ネットワーク等の通信媒体を介してコントローラにデータ送信する。ＰＤＬとしては、キヤノン社のＬＩＰＳ、アドビシステムズ社のＰｏｓｔＳｃｒｉｐｔ（登録商標）、ＨＰ社のＰＣＬ（登録商標）等が知られている。
従来、カラー出力とモノクロ出力とで出力速度が異なるカラープリンタにおいては、印刷処理のトータルスループットを向上させるため、ページ毎にモノクロページかカラーページかを判定する処理が行われている。また、グレイスケールのみで構成されるページをカラー出力すると、ＣＭＹＫの各トナーによる重ね塗りが行われ、印字品位が低下する結果となる場合もあった。
カラー／モノクロ判定を行う方法としては、各ページで使用されるＣＭＹＫ値を調べＣＭＹ値が検出された場合にはカラーと判定する方法がある。別の方法として、各ページで使用される入力ＲＧＢ値が等しい場合にはモノクロと判定する方法もある。しかし、カラー複合機ではカラー出力とモノクロ出力に対して異なる保守料金を設定しているケースがあり、ユーザの予想に反したカウントが行われることがあった。そこで、カラーマネージメント（色変換処理）においてグレイを補償する仕組みを付加的に導入することにより、カラー／モノクロ判定結果をコントロールする方法も存在する。カラーマネージメント後にカラー／モノクロ判定する場合に有効な手法となる。特にＰｏｓｔＳｃｒｉｐｔの場合は、カラーマネージメントを行う前に該ページのカラー／モノクロ判定を行うことが難しく、カラーマネージメント設定に応じたカラー／モノクロ判定を行う方式が考案されている（例えば、特許文献１）。
【０００３】
他方、ホストコンピュータの性能向上、アプリケーションの高機能化に伴い生成されるＰＤＬデータの大容量化、複雑化が進んでいる。全般的なＣＰＵ性能の向上に伴い、コントローラのＰＤＬ処理性能も向上しているが、ＰＤＬ処理がエンジンスループットに間に合わないケースがなお存在する。
近年、ＣＰＵクロックの向上が頭打ちとなり、複数のコアを単一パッケージに格納したマルチコア化が進んでいる。マルチコア化したＣＰＵの性能をフルに引き出すためには、ＰＤＬ処理の並列化が必要であり、幾つかの方法が考案されている。例えば、複数ジョブを複数のコアで同時並行してＰＤＬ処理するジョブ並列処理方式がある。ジョブ並列処理方式では大量のジョブを処理する場合には、全体の生産性を向上することができる。しかしながら、その中の単一ジョブだけをみると、ＰＤＬ処理時間はシングルコアで実行した場合と変わらない。また、別の方法として、単一ジョブ内の複数ページを複数のコアで同時並行してＰＤＬ処理するページ並列処理方式がある。ページ並列処理方式では単一ジョブに対しても高速化が見込める。しかし、プリントデータはページ間の依存関係の無いページ独立なＰＤＬで記述されている必要がある。また、ジョブ中の単一ページだけをみると、ＰＤＬ処理時間はシングルコアで実行した場合と変わらない。複雑な描画がされたページのＰＤＬ処理は時間がかかることが多く、ページ並列処理方式でもボトルネックとなる可能性が残る。更に別の方法として、単一ページ内の複数描画オブジェクトを複数のコアで同時並行してＰＤＬ処理するオブジェクト並列処理方式がある。オブジェクト並列処理方式は単一ページのＰＤＬ処理時間を短縮することも可能であるが、オブジェクトの分割と収集とにかかる計算コストが高いことが知られている。並列処理の効率を考えた場合には、ジョブ並列処理方式、若しくはページ並列処理方式の方が望ましい。
【０００４】
ページ並列処理方式には、完全ページ並列処理方式と部分ページ並列処理方式の二つが存在する。完全ページ並列処理方式はコントローラＣＰＵ上で実行されるＰＤＬ処理をページ単位で完全に並列処理する方式である（例えば、特許文献２）。一方、部分ページ並列処理方式はＰＤＬ処理のうち一部分を並列処理して、残りの部分は重複処理を行うものである（例えば、特許文献３）。ページ間の依存関係があるＰＤＬの場合、ＰＤＬデータを解釈するインタプリタは先頭ページから順番に処理を行う必要がある。前のページ迄の処理結果がインタプリタ内部に状態として蓄積されるためである。しかしながら、インタプリタよりも下層のコンポーネントであるグラフィックライブラリやディスプレイリスト生成部、レンダラはページ間の依存性を取り除くことが比較的容易である。その為、インタプリタは重複処理を行い、それ以下のコンポーネントをページ毎に並列処理することが可能である。部分ページ並列処理は完全ページ並列処理方式よりも並列度が落ちるが、ページ間の依存関係のあるＰＤＬでも並列処理が可能となり有用である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４４２４７１８号公報
【特許文献２】特許第４４１７１５３号公報
【特許文献３】米国特許出願公開第２０１０／０２７７７５７号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００６】
カラーマネージメント後にカラー／モノクロ判定をする場合、元データに忠実に判定しようとすると、出力画像の画質低下を招く場合があった。元データがグレイスケールに見える箇所はカラーマネージメント後にＣＭＹが載らない色変換処理（以後、カラー／モノクロ判定優先モードと呼ぶ）が必要となるからである。ＣＭＹが載らない、つまりＫ単色で出力しようとすると、がさつきやグレイ諧調の潰れ等の画質低下が発生する場合がある。Ｋ単色で一定サイズの領域を塗りつぶすと、ＣＭＹＫの複数色を使った場合よりもがさつきが目立ちやすい。更に、オリジナルデータで高濃度部の諧調をＣＭＹＫの４色で表現していた箇所をＫ単色若しくは少ない載り量で表現する為に諧調潰れが発生する。少ない載り量で表現する理由は元データでグレイに有彩色が混色した場合でもグレイ部分との連続性を保つために全体的にＣＭＹの使用量を落とす必要があるからである。元データがグレイスケールに見える箇所でもカラーマネージメント後にＣＭＹが載る色変換処理（以後、画質優先モードと呼ぶ）の方が画質的には望ましいと言える。つまり、カラー／モノクロ判定の元データに対する忠実度と印刷画質の間にはトレードオフの関係が存在する。
【０００７】
そもそも、カラーマネージメント後にカラー／モノクロ判定をする為に、上記の課題が現れるのであって、カラー／モノクロ判定後にカラーマネージメントを実行する場合は上記の課題は存在しない。カラーと判定された場合に画質優先モード、モノクロと判定された場合にカラー／モノクロ判定優先モードと使い分ければよいからである。しかしながら、カラー／モノクロ判定後にカラーマネージメントを実行しようとすると、性能の劣化を招くことになる。例えば、該当するページのカラー／モノクロ判定をする為に、１ページ分のデータを調べる必要がある場合があり、このような場合、少なくとも１ページ分のデータスプールが必要となるからである。データスプールとしてディスプレイリストやレンダリングイメージを用いる方法もあるが、後段の処理までカラーマネージメントに必要な情報を持ち越す必要があり、これが性能低下要因になる。
【０００８】
本発明はこのような問題点に鑑みなされたもので、性能劣化を最小限に抑えつつ、カラー／モノクロ判定の忠実度とカラー画質との両立を可能にすることを目的とする。
【課題を解決するための手段】
【０００９】
そこで、本発明は、同一ページに含まれるページ記述言語データの解釈を行う第１のインタプリタおよび第２のインタプリタを有し、前記第１のインタプリタは、ページ記述言語データの解釈の結果に基づいて当該ページ記述言語データが無彩色であっても複数の有彩色を用いて当該無彩色を表す中間データを生成する第１の処理を、前記同一ページに含まれるページ記述言語データに対して行い、前記第２のインタプリタは、ページ記述言語データの解釈の結果に基づいて当該ページ記述言語データが無彩色であれば前記複数の有彩色を用いず単一の無彩色によって当該無彩色を表す中間データを生成する第２の処理を、前記同一ページに含まれるページ記述言語データに対して行い、前記第２のインタプリタはさらに、前記同一ページに有彩色のページ記述言語データが含まれると判別されたことに基づき、前記同一ページに含まれるページ記述言語データの中間データの生成をスキップする。
【発明の効果】
【００１０】
本発明によれば、性能劣化を最小限に抑えつつ、カラー／モノクロ判定の忠実度とカラー画質との両立を可能にすることができる。
【図面の簡単な説明】
【００１１】
【図１】画像形成装置のハードウェア構成の一例を示す図である。
【図２Ａ】画像形成装置のソフトウェアモジュール構成の一例を示す図である。
【図２Ｂ】図２ＡのＰＳインタプリタ２０３をより詳細に記したソフトウェアモジュール構成の一例を示す図である。
【図３】ＤＬ生成依頼の内容の一例を示す図である。
【図４】コントローラにて実行される基本プリントフローを表わすフローチャートである。
【図５】プリントドライバ２０５により実行される画像転送処理を表わすフローチャートである。
【図６Ａ】全５ページカラーの特定データのＤＬ生成ありの場合となしの場合の処理時間を表す図である。
【図６Ｂ】図６Ａの特定データに対して、部分ページ並列処理のみを実施した場合のタイミングチャートである。
【図６Ｃ】図６Ａの特定データに対して、図４の基本プリントフローを適用した場合のタイミングチャートである。
【図７】図４の基本プリントフローに対して、モノクロページが連続した場合に先行スレッドと後続スレッドに設定するＣＭＳモードを入れ替える手法を説明したフローチャートである。
【図８Ａ】１ページ目がカラー、かつ、２〜５ページ目がモノクロの特定データのＤＬ生成ありの場合となしの場合との処理時間を表す図である。
【図８Ｂ】図８Ａの特定データに対して、部分ページ並列処理のみを実施した場合のタイミングチャートである。
【図８Ｃ】図８Ａの特定データに対して、図７の基本プリントフローを適用した場合のタイミングチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態について図面に基づいて説明する。なお、以下に示す画像形成装置は、上述した部分ページ並列処理方式の処理を行うものとする。つまり、以下に示す画像形成装置は、ページ記述言語データを解釈して中間データを生成し、前記中間データから画像を生成する処理のうち一部分を並列処理して、残りの部分を重複処理する。
【００１３】
＜実施形態１＞
図１は、画像形成装置のハードウェア構成の一例を示す図である。
なお、本実施形態では画像形成装置単体の構成を用いて説明するが、ネットワークを介して接続させるホストコンピュータ上に多くの処理を分離実行させる構成をとることもできる。
コントローラユニット２００は、画像信号やデバイス情報の入出力を制御する。ＣＰＵ１は、ＲＯＭ３或いはＨＤＤ４に記憶されたプログラムをＲＡＭ２に読み出し、実行する。更に、システムバス５に接続される各デバイスをＣＰＵ１が統括的に制御する。ＣＰＵ１は、内部に二つのコアを有するデュアルコアプロセッサであり、二つの制御プログラムを同時並列に実行可能である。ＲＡＭ２は、ＣＰＵ１の主メモリ、ワークエリアとして機能する。ＲＯＭ３には電源ＯＮ時に実行されるブートプログラムが格納される。ＨＤＤ４にはオペレーティングシステムと本装置の制御プログラム本体が格納される。また、ＨＤＤ４は、画像データやプリントデータ等の大容量データを一時的或いは長期的に保持する目的でも使用される。Ｎｅｔｗｏｒｋ６は、ローカルエリアネットワーク１３に接続し、印刷データやデバイス情報の入出力を担う。操作部Ｉ／Ｆ７は、操作部１４とのインターフェース部で、操作部１４に表示する画像データを操作部１４に対して出力する。また、操作部Ｉ／Ｆ７は、操作部１４から本装置の使用者が入力した情報を、ＣＰＵ１に伝える役割をする。操作部１４は、出力器として液晶パネルと音源を備え、入力器としてタッチパネルとハードキーとを備えるものである。コントローラユニット２００は、デバイスＩ／Ｆ８を介して、プリンタエンジン１５に接続される。デバイスＩ／Ｆ８は、ＣＰＵ１の指示に基づき、画像信号の送出、デバイス動作指示、デバイス情報の受信を行う。プリンタエンジン１５は、コントローラユニット２００からの画像信号を媒体上に出力する出力機であり、電子写真方式、インクジェット方式の何れでもよい。Ｒａｓｔｅｒ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｏｒ（ＲＩＰ）９は、ディスプレイリスト（以後、ＤＬと略記する）をラスタイメージに展開する専用ハードウェアである。ＲＩＰ９は、ＣＰＵ１によりＲＡＭ２上に生成されたＤＬを高速、かつ、ＣＰＵ１の実行と並列に、処理するものである。プリンタ画像処理部１０は、プリント出力画像データに対して、画像補正、ハーフトーニング等を行う。画像回転部１２は、画像データの回転を行う。画像圧伸部１１は、多値画像データはＪＰＥＧ、２値画像データはＪＢＩＧ、ＭＭＲ、ＭＨの圧縮伸張処理を行う。
【００１４】
図２Ａは、画像形成装置のソフトウェアモジュール構成の一例を示す図である。図２Ａに記載した各ソフトウェアモジュールは、プログラムとしてＨＤＤ４に格納され、ＲＡＭ２にロードされＣＰＵ１により実行されるものである。より具体的には、各ソフトウェアモジュールは、ＣＰＵ１上で動作するＯＳ（オペレーティングシステム）によりＲＡＭ２にロードされ、スレッド単位で実行権を付与され、実行されるものである。
データ受信部２０１は、ホストから送信されたプリントデータを受信する。データ受信部２０１によって受信されたデータはジョブ制御部２０２を介してジョブデータ管理部２０８で保持される。ジョブ制御部２０２は、データ受信から印刷までのジョブ制御の全般を司る。ＰＳインタプリタ２０３は、ＰｏｓｔＳｃｒｉｐｔデータを解釈して、中間データであるＤＬを生成する。生成されたＤＬはジョブ制御部２０２を介してジョブデータ管理部２０８で保持される。レンダラ２０４は、ＤＬからビットマップイメージを生成するモジュールであり、多くの処理は専用ハードウェアであるＲＩＰ９により実行される。生成されたビットマップイメージはジョブ制御部２０２を介してジョブデータ管理部２０８で保持される。プリントドライバ２０５は、デバイスＩ／Ｆ８を介してプリンタエンジンへの印刷指示とビットマップイメージの送出とを行う。ユーザインターフェース２０６は、操作部Ｉ／Ｆ７を介して、操作部１４を制御するモジュールである。ユーザインターフェース２０６は、主に操作部１４の液晶パネルに表示するデータを生成し、タッチパネルからの入力に従い液晶パネルの表示を更新する。また、ユーザインターフェース２０６は、タッチパネルからの入力が何らかのジョブ実行指示であった場合は、ジョブ制御部２０２に指示を伝達する。ジョブデータ管理部２０８は、プリントデータ、ＤＬ、ビットマップイメージのそれぞれを一時的若しくは長期的に保持管理するデータベースである。
なお、ビットマップイメージは、画像の一例である。
【００１５】
図２Ｂは、図２ＡのＰＳインタプリタ２０３をより詳細に記したソフトウェアモジュール構成の一例を示す図である。
ＰＳパーサ２０９は、ＰＳデータの解釈を行い、描画命令を抽出して、ＤＬ生成部２１０にＤＬの生成を依頼する。ＤＬ生成部２１０は、ＰＳパーサ２０９からのＤＬ生成依頼を受けて、ＤＬを生成する。ＰＳパーサ２０９とＤＬ生成部２１０とは密結合であり、ＰＳパーサ２０９が描画命令を抽出するたびに、ＤＬ生成部２１０が呼び出される。ＰＳパーサ２０９が発行するＤＬ生成依頼の内容は図３に記載の通りである。切り換え部２１１は、ＰＳパーサ２０９からのＤＬ生成依頼を受け付けるか、無視するかを切り替えるためのモジュールである。ここで、ＰＳパーサ２０９は、ページ依存処理であるのに対して、ＤＬ生成部２１０は、ページ独立処理である。ＰＳデータには前ページで定義したリソースを次ページで参照するケースがあるため、ＰＳパーサ２０９は、ページ順番通りにＰＳデータの解釈を行う必要がある。これに対して、図３のＤＬ生成依頼は何れも前ページの処理に依存するものはなく、ＤＬ生成部２１０はページ順通りに処理する必要はない。また、ＰＳパーサ２０９とＤＬ生成部２１０とはそれぞれリエントラント（Ｒｅｅｎｔｒａｎｔ、再入可能）な構造となっており、多重起動が可能である。一つのスレッド上で一つのＰＳパーサ２０９と一つのＤＬ生成部２１０とが実行される。
なお、ＰＳデータは、ページ記述言語データの一例である。
【００１６】
図４は、コントローラにて実行される基本プリントフローを表わすフローチャートである。なお、本説明では図２の各ソフトウェアモジュールによって実行されるように記述する。また、本フローチャートはＨＤＤ４に記憶された図２の各ソフトウェアモジュールに対応する各プログラムがＲＡＭ２に読み出され、ＣＰＵ１により実行されることにより実現される。本フローチャートではスレッドＡ、スレッドＢ１、スレッドＢ２、スレッドＣの四つのスレッドが並列に実行される。各スレッドは、オペレーティングシステムにより時分割され、ＣＰＵ１内の二つのコアに順番にその実行権が割り振られる。時分割の単位は十分に小さいため、四つのスレッドは並列動作すると見なすことができる。しかしながら、ある一時点に着目すると同時に実行されるスレッドは二つである。これは、ＣＰＵ１が前述の通り２コアのデュアルコアプロセッサであることが理由である。オペレーティングシステムによるマルチスレッディング処理は一般に広く知られる技術であるため、詳細は省略する。スレッドＡがプリント処理のメインスレッドであり、スレッドＢ１、スレッドＢ２は、スレッドＡにより実行時に動的生成されるものである。スレッドＣは、本画像形成装置の起動時にオペレーティングシステムにより生成される常駐スレッドである。
【００１７】
スレッドＡでは最初にステップＳ４００１において、データ受信部２０１は、プリントデータを受信し、ジョブ制御部２０２を介してジョブデータ管理部２０８に保持させる。
次にステップＳ４００２において、ジョブ制御部２０２は、ＰＳインタプリタ２０３がエントリポイントとなる二つのスレッドＢ１、スレッドＢ２を起動する。即ち、ＰＳインタプリタ２０３は、二つのスレッドにマッピングされて二重に起動される。そして、ジョブ制御部２０２は、ＰＳインタプリタ２０３に対して、ジョブデータ管理部２０８に保持したプリントデータを渡し、プリントデータの解釈を指示する。ここで、ＰＳインタプリタ２０３は二重に起動されているため、同一のプリントデータをそれぞれのスレッドで同時に解釈し始めることになる。
次にステップＳ４００３において、ジョブ制御部２０２は、１ページ分のＤＬの生成完了通知、先行スレッドの問い合わせ、の何れかのイベントを受信するまで待つ。何れのイベントも、ＰＳインタプリタ２０３（スレッドＢ１、スレッドＢ２）からジョブ制御部２０２（スレッドＡ）に対して送信されるものである。先行スレッドの問い合わせは、ＰＳインタプリタ２０３の二つのスレッドのうち、問い合わせを行ったスレッドが指定されたページに対して処理が先行しているか否かを問い合わせるものである。ＰＳインタプリタ２０３は、ＰＳデータを解釈して行き、新しいページが開始されると、必ず先行スレッドの問い合わせを行う。
【００１８】
次にステップＳ４００４に進み、ジョブ制御部２０２は、ＤＬの生成完了通知を受信したかどうか判定する。図４のフローを開始した当初はＤＬの生成は完了していないので、Ｎｏとなる。Ｎｏの場合、ジョブ制御部２０２は、ステップＳ４００５へ処理を進める。この場合、受信したイベントは先行スレッドの問い合わせとなる。ジョブ制御部２０２は、指定されたページに対する最初の問い合わせであれば先行スレッドと回答し、二回目の問い合わせであれば先行スレッドでは無いと返信する。ジョブ制御部２０２は、該当するページに対する問い合わせの有無を記憶し、最初の問い合わせか二回目の問い合わせかを判定する。Ｓ４００５の処理が終了すると、ジョブ制御部２０２は、ステップＳ４００３へ処理を戻す。
【００１９】
ステップＳ４００４でＹｅｓの場合、ジョブ制御部２０２は、ステップＳ４００６へ進み、レンダリングを行い、そしてＣＭＹＫビットマップを生成する。次にステップＳ４００７において、ジョブ制御部２０２は、ビットマップをジョブデータ管理部２０８に保存し、プリントドライバ２０５にプリントを依頼する。プリントの依頼はプリントドライバ２０５に対してレンダリング終了通知を送信することにより実行される。プリントドライバ２０５は、エンジン同期して処理を実行するために、スレッドＣとしてスレッドＡとは別スレッドで処理を実行する。依頼を受けたプリントドライバ２０５は、ステップＳ４２０１において、エンジンに対してプリント開始要求コマンドを送信し、画像転送する。なお、ステップＳ４２０１の詳細は別途後述する。
次にステップＳ４００８へ進み、ジョブ制御部２０２は、全ページのレンダリングが完了したか判定する。Ｙｅｓの場合は、ジョブ制御部２０２は、図４のフローを終了する。Ｎｏの場合は、ジョブ制御部２０２は、ステップＳ４００３へ戻り、処理を繰り返す。
【００２０】
スレッドＢ１、スレッドＢ２のステップＳ４１０１において、ＰＳインタプリタ２０３は、現在のスレッドが該当するページの処理を先行して開始するスレッドか否かをジョブ制御部２０２に問い合わせる。先行するスレッドの場合には、ＰＳインタプリタ２０３は、該当スレッドのＣＭＳモードを画質優先モードに設定する。後続のスレッドの場合には、ＰＳインタプリタ２０３は、該当するスレッドのＣＭＳモードをカラー／モノクロ判定優先モードに設定する。ＣＭＳモードは、ＲＡＭ２に記憶されるフラグ変数で、後述の色変換処理を実行する際に参照される。ＣＭＳモードは、スレッドＢ１とスレッドＢ２と用に別々に記憶領域が用意される。スレッドＢ１かスレッドＢ２の何れかが画質優先モード、他方がカラー／モノクロ判定優先モードに設定されるが、どちらのスレッドがどちらのＣＭＳモードになるかは処理の進行状況によって変わる。二つのＣＭＳモードの詳細は後述する。
【００２１】
次にステップＳ４１０２へ進み、ＰＳインタプリタ２０３は、ＰＳコマンドを解釈する。
次にステップＳ４１０３へ進み、ＰＳインタプリタ２０３は、該当するページがカラーと判定済みではなく、該当するＰＳコマンドによる描画がカラー描画か否か判定する。カラー描画か否かは、ＰＳインタプリタ２０３は、色空間がＣＭＹＫのときは、Ｃ≠０又はＭ≠０又はＹ≠０かによって判定する。また、ＰＳインタプリタ２０３は、ＲＧＢのときは、Ｒ＝Ｇ＝Ｂか否かによって判定する。また、ＰＳインタプリタ２０３は、ＣＩＥＢａｓｅｄのときは、Ｌ＊ａ＊ｂ表色系でａ≠０又はｂ≠０かによって判定する。
Ｙｅｓの場合はステップＳ４１０４へ進み、ＰＳインタプリタ２０３は、該当するページをカラーと判定する。カラー／モノクロ判定結果は、ページ毎にカラー、モノクロ、未決定の３値でＲＡＭ２上に記憶される。カラー／モノクロ判定結果は、スレッドＢ１とスレッドＢ２とから共通に参照可能である。したがって、スレッドＢ１かスレッドＢ２の何れか先行するスレッドがカラーと判別された以後は、後続のスレッドでも該当するページがカラーページであると判定される。
次に、ステップＳ４１０５へ進み、ＰＳインタプリタ２０３は、該当するページがカラーと判定済みか否か判定する。ステップＳ４１０５でＹｅｓの場合は、ステップＳ４１０６へ進み、ＰＳインタプリタ２０３は、ＣＭＳモードがカラー／モノクロ判定優先モードか否か判定する。ここでもＹｅｓの場合はステップＳ４１０７へ進み、ＰＳインタプリタ２０３は、該当する描画に対するＤＬ出力をスキップする。前述したように、ＤＬの生成する／しないは、切り換え部２１１でＤＬ生成依頼を受け付けるか／無視するかを切り替えることにより行う。切り換え部２１１でＤＬの生成依頼を無視するように設定した場合、該当するページに対するＤＬ生成処理が実行されないため、処理が高速化される。
【００２２】
ステップＳ４１０５でＮｏ場合、又はステップＳ４１０６でＮｏの場合はステップＳ４１０８へ進み、ＰＳインタプリタ２０３は、ＣＭＳモードに従った色変換処理を実行する。色変換処理は、ＰＳパーサ２０９内部のＣＭＳエンジンによって実行される。ＣＭＳエンジンは、カラーマネージメントを行うモジュールであり、入力色を絶対色空間に変換後、プリンタエンジン固有の出力色（ＣＭＹＫ）を生成するものである。ＰｏｓｔＳｃｒｉｐｔ言語ではＤｅｖｉｃｅ色空間、ＣＩＥＢａｓｅｄ色空間、特殊色空間等多様な色空間が規定されている。Ｄｅｖｉｃｅ色空間で指定された入力色に関しては、ＲＧＢソースプロファイル、ＣＭＹＫシミュレーションプロファイル等の予め用意されたＩＣＣプロファイル群のうち、指定されたものを用いて色変換が行われる。ＣＩＥＢａｓｅｄ色空間で指定された入力色に関してはその色空間で指定された変換テーブル、変換関数、変換マトリックスに従い色変換が行われる。絶対色空間からプリンタエンジン固有の色空間への変換は出力プロファイル若しくは、ＰｏｓｔＳｃｒｉｐｔで規定されたＣｏｌｏｒ  Ｒｅｎｄｅｒｉｎｇ  Ｄｉｃｔｉｏｎａｒｙを用いて行われる。出力プロファイルに関してはグレイスケールがＫ単色で表現されることを優先したグレイ補償プロファイルと、グレイスケールをＣＭＹＫ４色で表現するノーマルプロファイルと、の二つが選択的に使用可能である。Ｓｅｐａｒａｔｉｏｎ色空間、若しくはＤｅｖｉｃｅＮ色空間等で指定された特色についてはＮａｍｅｄ  ＩＣＣプロファイルを用いてプロセスカラー（ＣＭＹＫ）に変換される。ＰＳインタプリタ２０３は、ＣＭＳモードが画質優先モードの場合は出力プロファイルとしてノーマルプロファイルが選択され、カラー／モノクロ判定優先モードの場合はグレイ補償プロファイルが選択される。
【００２３】
次にステップＳ４１０９へ進み、ＰＳインタプリタ２０３は、該当する描画に対するＤＬ出力をする。ディスプレイリスト上では各描画オブジェクトの色値は変換済みのＣＭＹＫ値で表現される。したがって、画質優先モードの場合とカラー／モノクロ判定優先モードの場合とで生成されるディスプレイリストは異なる。
次にステップＳ４１１０へ進み、ＰＳインタプリタ２０３は、１ページ分の処理が完了したか否か判定する。Ｎｏの場合はステップＳ４１０２へ戻り、ＰＳインタプリタ２０３は、処理を繰り返す。ステップＳ４１１０でＹｅｓの場合はステップＳ４１１１へ進み、ＰＳインタプリタ２０３は、該当するページがカラーと判定済みか判定する。ここで、Ｎｏの場合、即ち１ページ分の処理を終えてカラーと判定済みで無いということは、該当するページがモノクロであるということになる。ステップＳ４１１１でＮｏの場合はステップＳ４１１２へ進み、ＰＳインタプリタ２０３は、画質優先側のスレッドであれば、該当するページのＤＬを廃棄する。また、カラー／モノクロ判定優先側のスレッドであれば、ＰＳインタプリタ２０３は、ジョブ制御部２０２に対してＤＬ生成完了を通知する。ステップＳ４１１１でＹｅｓの場合はステップＳ４１１３へ進み、ＰＳインタプリタ２０３は、カラー／モノクロ判定優先側のスレッドであれば、該当するページのＤＬを廃棄する。また、画質優先側のスレッドであれば、ＰＳインタプリタ２０３は、ジョブ制御部２０２に対してＤＬ生成完了を通知する。
【００２４】
ステップＳ４１１２、或いはステップＳ４１１３の処理が終了すると、ステップＳ４１１４へ進み、ＰＳインタプリタ２０３は、全ページの処理が終了したか否か判定する。Ｎｏの場合は、ＰＳインタプリタ２０３は、ステップＳ４１０１へ戻り、処理を繰り返す。Ｙｅｓの場合は、ＰＳインタプリタ２０３は、フローを終了する。ＰＳインタプリタ２０３の処理はリエントラントな構成となっており、同時に二つのＰＳデータを処理することができる。ＰＳデータ解釈処理、及びＤＬ生成処理にかかる時間は、ＰＳデータの各ページのデータ量と複雑度に大きく依存する。したがって、スレッドＢ１、スレッドＢ２における各ページのＤＬの生成が完了するタイミングはページ順になるとは限らない。プリント時のページ順への並び替えはプリントドライバ２０５により実行される。なお、スレッドＡとスレッドＣとは同期の為の待ち時間が非常に多い（スレッドＣに関しては後述）。結果として、ＣＰＵ１の二つのコアにおける実行時間の大半がスレッドＢ１とスレッドＢ２とに割り当てられることになる。
【００２５】
図５は、プリントドライバ２０５により実行される画像転送処理を表わすフローチャートである。また、図４のステップＳ４２０１を詳細化したフローチャートである。最初にステップＳ５００１において、プリントドライバ２０５は、レンダリング終了通知を受信するまで待つ。レンダリング終了通知は、前述したように、ジョブ制御部２０２によりステップＳ４００９で送信されるものである。
次にステップＳ５００２において、プリントドライバ２０５は、レンダリング済みのページがジョブの先頭ページか、若しくは前ページの印字出力が完了しているか判定する。Ｎｏの場合は、前のページのレンダリング完了を待つために、ステップＳ５００１に戻る。前述したように、各ページのレンダリングはページ順に完了するとは限らない。ステップＳ５００２でＹｅｓの場合は、ステップＳ５００３へ進み、プリントドライバ２０５は、エンジンに対してプリント開始要求コマンドを送信し、画像を転送する。なお、ステップＳ５００３において、プリントドライバ２０５は、エンジンとの同期処理も行う。プリンタエンジンは所定のスピード以上では出力できない。コントローラユニット２００は、そのＲＩＰ処理が速すぎる場合にプリンタエンジン１５の印字出力を待つ必要がある。次にステップＳ５００４において、プリントドライバ２０５は、次ページがレンダリング済みか否か判定する。Ｙｅｓであれば、ステップＳ５００５に進み、プリントドライバ２０５は、エンジン同期して、プリント開始要求コマンドを送信し、画像を転送する。そして、プリントドライバ２０５は、再びステップＳ５００４に戻り同様の処理を繰り返す。ステップＳ５００４、Ｓ５００５の処理により、先にレンダリング済みのページが全て出力される。ステップＳ５００４でＮｏの場合は、ステップＳ５００６へ進み、プリントドライバ２０５は、全ページの画像転送が完了したか否か判定する。Ｙｅｓの場合は、ステップＳ５００７へ進み、プリントドライバ２０５は、プリンタエンジン１５に対してプリント完了要求コマンドを送信する。Ｎｏ場合は、ステップＳ５００１へ戻り、プリントドライバ２０５は、処理を繰り返す。
【００２６】
図６は、本実施形態における情報処理の一例をタイミングチャートの形式で示したものである。
図６Ａは、全５ページカラーの特定データのＤＬ生成ありの場合となしの場合の処理時間を表す図である。このデータではＤＬ生成なしの場合、ＤＬ生成ありの場合に比べて半分近くの処理時間で終了する。あくまで、特定データによる例を示すものであり、実際の処理時間はＰＳデータの内容によって変わる。
図６Ｂは、図６Ａの特定データに対して、部分ページ並列処理のみを実施した場合のタイミングチャートである。ページ開始時点で先行するスレッド（Ｂ１かＢ２）にＤＬ生成を割り振る方式を採用している。まず、１ページ目のＤＬ生成がスレッドＢ１に割り振られ、スレッドＢ２はＤＬ生成しないため１ページ目の処理を先に終了する。スレッドＢ２で１ページ目が終了した時点で、２ページ目のＤＬ生成を行っているスレッドは存在しないため、２ページ目のＤＬ生成はスレッドＢ２に割り振られる。次に、２ページ目の処理はスレッドＢ２が先に終了し、３ページ目のＤＬ生成はスレッドＢ２に割り振られる。以後同様に、４ページ目はスレッドＢ１に、５ページ目はスレッドＢ２に割り振られる。
図６Ａと図６Ｂとを比較することにより、部分ページ並列処理を実施することにより、処理時間が短縮されることが明らかである。
【００２７】
図６Ｃは、図６Ａの特定データに対して、図４の基本プリントフローを適用した場合のタイミングチャートである。まず、ページ開始時点（ｔ１）ではＣＭＳモードとしてスレッドＢ１に画質優先モード、スレッドＢ２にカラー／モノクロ判定優先モードが設定される。図４のステップＳ４１０１では先行するスレッドに画質優先モードが設定される。図６Ｃの１ページ目はほぼ同時ではあるが、スレッド起動順序がＢ１→Ｂ２の分だけスレッドＢ１が先行する。仮にＢ２が先行したとしても、図６ＣのスレッドＢ１とＢ２とが入れ替わるだけで、実質的な差異は生じない。なお、図６Ｃのタイミングチャートでは画質優先モードが設定されたページにＱ、カラー／モノクロ判定優先モードが設定された場合にＣを付与して表現している。１ページ目の処理を開始してｔ２の時点で、該当するページをカラーと判別している。１つでもカラーの描画があればカラーページと判定できるので、その直後からカラー／モノクロ判定優先側のＤＬ生成はスキップされる。一般的にカラーのデータはページ内全般でカラー描画が行われることが多く、ページ処理の早期にカラー判別できる確率が高い。スレッドＢ２は１ページ目の途中からＤＬ生成をスキップするので、１ページ目の処理が早く完了し、２ページ目の処理開始（ｔ３）はスレッドＢ２が先行する。したがって、２ページ目はスレッドＢ２に画質優先モードが設定され、スレッドＢ１にカラー／モノクロ判定優先モードが設定される。２ページ目も同様にカラーページであるため、スレッドＢ２が２ページ目の処理を開始して、直ぐにカラーページと判別される。即ち、スレッドＢ１が２ページ目の処理を開始する時点（ｔ４）でカラーページと判別されており、スレッドＢ１では最初からＤＬ生成をスキップする。同様に３〜５ページ目も先行するスレッドが処理開始後直ぐにカラーページと判別する為に、後続のスレッドではＤＬ生成をスキップできる。結果として、ジョブ終了がｔ６の時点となり、図６Ｂの部分ページ並列処理のみを実行した場合の終了時間（ｔ５）と比較して、僅かな遅れのみで済んでいる。
図６ＣのスレッドＢ１は、第１のインタプリタの一例である。図６ＣのスレッドＢ２は、第２のインタプリタの一例である。
【００２８】
図６Ｃのタイミングチャートは全ページカラー、かつ、ページの先頭付近でカラー判定可能という前提に基づいているが、そうならないケースも存在しうる。例えば、モノクロ描画しか行っていないモノクロページの場合はページの最後まで処理しないとモノクロ判定できない。したがって、ＤＬ生成のスキップを行うことができず、並列処理の効果が失われる。しかしながら、カラーデータに比べてモノクロデータは処理負荷が軽いため、処理が遅いとしてもエンジンスループットの中に吸収される可能性が高いといえる。また、モノクロページの中にワンポイントでカラー描画が行われるケースでは、ページ処理の終盤にカラーと判定される可能性がある。しかしながら、そのようなデータは一般的に少ないことと、上記モノクロページの場合と同様の理由で問題にならない。
【００２９】
＜実施形態２＞
実施形態１では、カラーページをページ先頭付近でカラーと判定できる確率が高いことに着目した。しかし、モノクロページの場合はページ末尾までモノクロページと判定することができない。実施形態２では、モノクロページが含まれる場合も並列処理の効果を生かしつつ、カラー／モノクロ判定の忠実度とカラー画質との両立を実現する方法を説明する。
図７は、図４の基本プリントフローに対して、モノクロページが予め定められたページ数以上連続した場合に先行スレッドと後続スレッドに設定するＣＭＳモードを入れ替える手法を説明したフローチャートである。図７においてスレッドＡとスレッドＣとの処理フローは図４と同じであるため、説明は省略する。また、スレッドＢに関しても図４の処理フローと共通部分が多いため、図４と異なる点を中心に説明する。
なお、本実施形態では、予め定められたページ数として２ページを例に説明を行う。
スレッドＢ１、スレッドＢ２のステップＳ７１０１において、ＰＳインタプリタ２０３は、現在のスレッドが該当するページの処理を先行して開始するスレッドか否かをジョブ制御部２０２に問い合わせある。先行するスレッドの場合には、該当するスレッドのＣＭＳモードを画質優先モードに設定する。後続のスレッドの場合には、該当するスレッドのＣＭＳモードをカラー／モノクロ判定優先モードに設定する。
次にステップＳ７１０２へ進み、ＰＳインタプリタ２０３は、モノクロ連続フラグがｔｒｕｅ（真）である場合にＣＭＳモードの画質優先モードとカラー／モノクロ判定優先モードとを入れ替える。モノクロ連続フラグは、該当するページの前ページまでに連続してモノクロページが来ていることを示すフラグであり、ＲＡＭ２に記憶される。また、モノクロ連続フラグは、スレッドＢ１とスレッドＢ２と用に別々に記憶領域が用意される。図７のフローを開始時にはジョブ制御部２０２によってｆａｌｓｅ（偽）に初期化される。また、後述するフローの中でｔｒｕｅ（真）に設定されるものである。
【００３０】
次にステップＳ７１０３へ進み、ＰＳインタプリタ２０３は、ＰＳコマンドを解釈する。次にＳ７１０４へ進み、ＰＳインタプリタ２０３は、該当するページがカラーと判定済みではなく、該当するＰＳコマンドによる描画がカラー描画か否か判定する。Ｙｅｓの場合はステップＳ７１０５へ進み、ＰＳインタプリタ２０３は、該当するページをカラーと判定する。
次に、ステップＳ７１０６へ進み、ＰＳインタプリタ２０３は、該当するページがカラーと判定済みか否か判定する。ステップＳ７１０６でＹｅｓの場合は、ステップＳ７１０７へ進み、ＰＳインタプリタ２０３は、ＣＭＳモードがカラー／モノクロ判定優先モードか否か判定する。ここでもＹｅｓの場合はステップＳ７１０８へ進み、ＰＳインタプリタ２０３は、該当する描画に対するＤＬ出力をスキップする。ステップＳ７１０７でＮｏの場合はステップＳ７１０９へ進み、ＰＳインタプリタ２０３は、ＣＭＳモードに従った色変換処理を実行する。次にステップＳ７１１０へ進み、ＰＳインタプリタ２０３は、該当する描画に対するＤＬ出力をする。ステップＳ７１０６でＮｏの場合は、ステップＳ７１１１へ進み、ＰＳインタプリタ２０３は、該当するページがモノクロと判定済みか否か判定する。Ｎｏの場合、ＰＳインタプリタ２０３は、ステップＳ７１０９へ進む。Ｙｅｓの場合はステップＳ７１１２へ進み、ＰＳインタプリタ２０３は、ＣＭＳモードが画質優先モードか否か判定する。ここで、ＰＳインタプリタ２０３は、Ｙｅｓの場合はステップＳ７１０８へ進み、Ｎｏの場合はステップＳ７１０９へ進む。Ｓ７１１１でＹｅｓと判定されるのは、スレッドＢ１、スレッドＢ２の何れか後続側のスレッドにおいてのみである。先行するスレッドではページが終了して始めてモノクロと判定できるので、Ｓ７１１１には達しない。更にＳ７１１２でＹｅｓになる条件は後続側のスレッドで、かつ、画質優先モードのときのみなので、Ｓ７１０２でＣＭＳモードの入れ替えが行われた場合に限定される。
【００３１】
次にステップＳ７１１３へ進み、ＰＳインタプリタ２０３は、１ページ分の処理が完了したか否か判定する。Ｎｏの場合はステップＳ７１０３へ戻り、ＰＳインタプリタ２０３は、処理を繰り返す。ステップＳ７１１３でＹｅｓの場合はステップＳ７１１４へ進み、ＰＳインタプリタ２０３は、該当するページがカラーと判定済みか判定する。ここで、Ｎｏの場合、即ち１ページ分の処理を終えてカラーと判定済みで無いということは、該当するページがモノクロであるということになる。ステップＳ７１１４でＮｏの場合はステップＳ７１１５へ進み、ＰＳインタプリタ２０３は、画質優先側のスレッドであれば、該当するページのＤＬを廃棄する。また、カラー／モノクロ判定優先側のスレッドであれば、ＰＳインタプリタ２０３は、ジョブ制御部２０２に対してＤＬ生成完了を通知する。ステップＳ７１１４でＹｅｓの場合はステップＳ７１１６へ進み、ＰＳインタプリタ２０３は、カラー／モノクロ判定優先側のスレッドであれば、該当するページのＤＬを廃棄する。また、画質優先側のスレッドであれば、ＰＳインタプリタ２０３は、ジョブ制御部２０２に対してＤＬ生成完了を通知する。
【００３２】
ステップＳ７１１４でカラーでは無い、即ちモノクロと判定された場合、ＰＳインタプリタ２０３は、ステップＳ７１１５へ進み、次にステップＳ７１１７へ進む。ステップＳ７１１７において、ＰＳインタプリタ２０３は、モノクロページが２ページ以上連続したか否か判定する。Ｙｅｓの場合はステップＳ７１１９へ進みＰＳインタプリタ２０３は、モノクロ連続フラグをｔｒｕｅ（真）に設定する。Ｎｏの場合はステップＳ７１１８へ進みＰＳインタプリタ２０３は、モノクロ連続フラグをｆａｌｓｅ（偽）に設定する。ステップＳ７１１８、ステップ７１１９、或いはステップＳ７１１６の処理が終了すると、ステップＳ７１２０へ進み、ＰＳインタプリタ２０３は、全ページの処理が終了したか否か判定する。Ｎｏの場合は、ステップＳ７１０１へ戻り、ＰＳインタプリタ２０３は、処理を繰り返す。Ｙｅｓの場合は、ＰＳインタプリタ２０３は、フローを終了する。
【００３３】
図８の処理例により図７のフローチャートを適用した場合の効果を説明する。図８Ａは、１ページ目がカラー、かつ、２〜５ページ目がモノクロの特定データのＤＬ生成ありの場合となしの場合との処理時間を表す図である。図８Ｂは、図８Ａの特定データに対して、部分ページ並列処理のみを実施した場合のタイミングチャートである。部分ページ並列処理による出力時間の削減効果は図６Ｂの例と同じであるため、説明は省略する。
図８Ｃは、図８Ａの特定データに対して、図７の基本プリントフローを適用した場合のタイミングチャートである。まず、ページ開始時点（ｔ１）ではＣＭＳモードとしてスレッドＢ１に画質優先モード、スレッドＢ２にカラー／モノクロ判定優先モードが設定される。図７のステップＳ７１０１では先行するスレッドに画質優先モードが設定される。また、１ページ目の時点ではモノクロ連続フラグはｆａｌｓｅ（偽）のため、ＣＭＳモードの入れ替えは実行されない。なお、図８Ｃのタイミングチャートでは画質優先モードが設定されたページにＱ、カラー／モノクロ判定優先モードが設定された場合にＣを付与して表現している。１ページ目の処理を開始して直ぐに該当するページをカラーと判別し、その直後からカラー／モノクロ判定優先側のＤＬ生成はスキップされる。スレッドＢ２は１ページ目の途中からＤＬ生成をスキップするので、１ページ目の処理が早く完了し、２ページ目の処理開始はスレッドＢ２が先行する。２ページ目はスレッドＢ２に画質優先モードが設定され、スレッドＢ１にカラー／モノクロ判定優先モードが設定される。ここでも前ページはカラーページ１ページなので、モノクロ連続フラグはｆａｌｓｅ（偽）に設定されたままである。２ページ目はモノクロページであるため、ページ終了までカラー／モノクロ判定は完了しない。したがって、何れのスレッドもＤＬ生成をスキップすることができず、同じだけの処理時間を要する。３ページ目は一つ前のページがモノクロ、二つ前のページがカラーであるために、同様にモノクロ連続フラグはｆａｌｓｅ（偽）に設定されたままである。２ページ目、３ページ目がモノクロであったため、４ページ目ではモノクロ連続フラグがｔｒｕｅ（真）に設定される。ここで、ＣＭＳモードの入れ替えが実行される。即ち、先行するスレッドＢ２にカラー／モノクロ判定優先モードが設定され、後続のスレッドＢ１に画質優先モードが設定される。スレッドＢ２による４ページ目の処理はｔ２の時点で終了し、ここで４ページ目がモノクロであることが判別される。したがって、ｔ２の時点で必要なＤＬ生成は完了しており、スレッドＢ１における画質優先モードのＤＬ生成はスキップされる。同様に５ページ目においても前２ページがモノクロであり、モノクロ連続フラグがｔｒｕｅ（真）となる。ｔ３の時点でモノクロページであることが判別され、スレッドＢ１におけるＤＬ生成はスキップされる。先行するスレッドにカラー／モノクロ優先モードが設定されている場合は、モノクロと判別された時点で後続するスレッドによる画質優先モードのＤＬ生成が不要となる。このようにモノクロページが含まれる場合でも、データ傾向に合わせた適応制御を行うことにより、ＤＬ生成のスキップが可能となる。つまり、モノクロページを含む場合でも、並列処理の効果を生かしつつ、カラー／モノクロ判定の忠実度とカラー画質との両立が実現される。
【００３４】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００３５】
以上、上述した各実施形態によれば、性能劣化を最小限に抑えつつ、カラー／モノクロ判定の忠実度とカラー画質との両立を可能にすることができる。また、上述した各実施形態によれば、部分ページ並列処理方式の制御から大きな改変なく実現可能であり、ソフトウェアの実装・保守工数を比較的少なくすることができる。
【００３６】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図１】
0005901209.tif 000002
【図２Ａ】
0005901209.tif 000003
【図２Ｂ】
0005901209.tif 000004
【図３】
0005901209.tif 000005
【図４】
0005901209.tif 000006
【図５】
0005901209.tif 000007
【図６Ａ】
0005901209.tif 000008
【図６Ｂ】
0005901209.tif 000009
【図６Ｃ】
0005901209.tif 000010
【図７】
0005901209.tif 000011
【図８Ａ】
0005901209.tif 000012
【図８Ｂ】
0005901209.tif 000013
【図８Ｃ】
0005901209.tif 000014