(57)【要約】【課題】  本発明の目的は、マルチコアのＣＰＵを搭載した画像形成装置に、１ページに複数ページを割り当てた印刷データの中間コードを生成させる際においても、より高速な印刷データ生成を行わせることである。【解決手段】  前記予測手段により予測された時間が、画像形成装置が１枚を印刷する時間よりも長い場合、前記第１のプロセッサは第１の印刷用紙に印刷される所定の論理ページの印刷データを中間コードに変換し、前記第２のプロセッサは第１の印刷用紙に印刷される所定の論理ページ以外の論理ページの印刷データを中間コードに変換する（Ｓ３１１）。【選択図】  図３
2011098500.tif 000002
【特許請求の範囲】
【請求項１】
入力された印刷データを中間コードに変換する第１のプロセッサと、
前記印刷データを中間コードに変換する、前記第１のプロセッサとは異なる第２のプロセッサと、
複数の論理ページが１枚の用紙に印刷されるＮｕｐレイアウトが前記印刷データに設定されているかを判定する判定手段と、
前記判定手段により、Ｎｕｐレイアウトが設定されていると判定された場合、第１の印刷用紙に印刷される複数の論理ページの印刷データを前記第１のプロセッサが中間コードへ変換する際に要する時間を予測する予測手段とを有し、
前記予測手段により予測された時間が、画像形成装置が１枚の印刷用紙を印刷する時間よりも長い場合、前記第１のプロセッサは、第１の印刷用紙に印刷される所定の論理ページの印刷データを中間コードに変換し、前記第２のプロセッサは、第１の印刷用紙に印刷される所定の論理ページ以外の論理ページの印刷データを中間コードに変換し、前記予測手段により予測された時間が、前記画像形成装置が１枚の印刷用紙を印刷する時間よりも短い場合、前記第１のプロセッサは、第１の印刷用紙に印刷される複数の論理ページの印刷データを中間コードに変換し、前記第２のプロセッサは、第２の印刷用紙に印刷される複数の論理ページの印刷データを中間コードに変換することを特徴とする画像形成装置。
【請求項２】
前記第１のプロセッサが第１の印刷用紙に印刷される所定の論理ページの印刷データを中間コードに変換する際に要する時間と、前記第２のプロセッサが第１の印刷用紙に印刷される所定の論理ページ以外の論理ページの印刷データを中間コードに変換する際に要する時間との差が少ないことを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記第１のプロセッサは、第１の印刷用紙に印刷される所定の論理ページの印刷データを中間コードに変換し、前記第２のプロセッサは、第１の印刷用紙に印刷される所定の論理ページ以外の論理ページの印刷データを中間コードに変換する場合において、
前記第１のプロセッサが変換を行った中間コードのサイズが閾値以上である場合、前記第２のプロセッサが印刷データを中間コードへ変換し終えるのを待たず、前記第１のプロセッサが生成した中間コードを基に描画処理を開始し、前記第２のプロセッサによる印刷データの変換が終了し中間コードが生成された際に、前記第２のプロセッサが生成した中間コードを基に描画処理を開始する描画手段と、
前記描画手段による描画処理が終了した場合、前記第１のプロセッサが生成した中間コードを基に描画された第１のラスタイメージと、前記第２のプロセッサが生成した中間コードを基に描画された第２のラスタイメージとを合成するラスタイメージ合成手段と、
前記合成手段により合成されたラスタイメージを基に出力を行うプリントエンジンとを有することを特徴とする請求項１または２に記載の画像形成装置。
【請求項４】
前記第１のプロセッサが印刷データを中間コードへ変換し終えた場合、前記第２のプロセッサが印刷データを中間コードへ変換し終えるために要する残り時間を予測し、予測した残り時間が閾値以下である場合、前記第１のプロセッサが変換した中間コードを描画せずに前記第２のプロセッサによる中間コードへの変換が終了するのを待ち、前記第２のプロセッサによる中間コードへの変換が終了した際に、前記第１のプロセッサが変換した中間コードと前記第２のプロセッサが変換した中間コードとを合成する中間コード合成手段を有することを特徴とする請求項１乃至３の何れか１項に記載の画像形成装置。
【請求項５】
Ｎｕｐレイアウトが前記印刷データに設定されており、かつスタンプも設定されている場合、前記第１のプロセッサ、または前記第２のプロセッサの内、論理ページの印刷データを先に中間コードへ変換し終えた何れか１つのプロセッサは、スタンプの印刷データを中間コードへ変換することを特徴とする請求項１乃至４の何れか１項に記載の画像形成装置。
【請求項６】
第１のプロセッサに入力された印刷データを中間コードに変換させ、
前記第１のプロセッサとは異なる第２のプロセッサに前記印刷データを中間コードに変換させ、
前記判定手段に、複数の論理ページが１枚の用紙に印刷されるＮｕｐレイアウトが前記印刷データに設定されているかを判定させ、
前記予測手段に、前記判定手段によりＮｕｐレイアウトが設定されていると判定された場合、第１の印刷用紙に印刷される複数の論理ページの印刷データを前記第１のプロセッサが中間コードへ変換する際に要する時間を予測させ、
前記予測手段により予測された時間が、画像形成装置が１枚の印刷用紙を印刷する時間よりも長い場合、前記第１のプロセッサに第１の印刷用紙に印刷される所定の論理ページの印刷データを中間コードに変換させ、前記第２のプロセッサに第１の印刷用紙に印刷される所定の論理ページ以外の論理ページの印刷データを中間コードに変換させ、前記予測手段により予測された時間が、前記画像形成装置が１枚の印刷用紙を印刷する時間よりも短い場合、前記第１のプロセッサに第１の印刷用紙に印刷される複数の論理ページの印刷データを中間コードに変換させ、前記第２のプロセッサに第２の印刷用紙に印刷される複数の論理ページの印刷データを中間コードに変換させることを特徴とする画像形成装置制御方法。
【請求項７】
第１のプロセッサに入力された印刷データを中間コードに変換させ、
前記第１のプロセッサとは異なる第２のプロセッサに前記印刷データを中間コードに変換させ、
前記判定手段に、複数の論理ページが１枚の用紙に印刷されるＮｕｐレイアウトが前記印刷データに設定されているかを判定させ、
前記予測手段に、前記判定手段によりＮｕｐレイアウトが設定されていると判定された場合、第１の印刷用紙に印刷される複数の論理ページの印刷データを前記第１のプロセッサが中間コードへ変換する際に要する時間を予測させ、
前記予測手段により予測された時間が、画像形成装置が１枚の印刷用紙を印刷する時間よりも長い場合、前記第１のプロセッサに第１の印刷用紙に印刷される所定の論理ページの印刷データを中間コードに変換させ、前記第２のプロセッサに第１の印刷用紙に印刷される所定の論理ページ以外の論理ページの印刷データを中間コードに変換させ、前記予測手段により予測された時間が、前記画像形成装置が１枚の印刷用紙を印刷する時間よりも短い場合、前記第１のプロセッサに第１の印刷用紙に印刷される複数の論理ページの印刷データを中間コードに変換させ、前記第２のプロセッサに第２の印刷用紙に印刷される複数の論理ページの印刷データを中間コードに変換させることを特徴とする画像形成装置制御方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、および画像形成装置制御方法、およびプログラムに関するものである。
【背景技術】
【０００２】
マルチコアのＣＰＵを用いて、ＰＤＬをページ並列で処理する従来技術として特許文献１がある。特許文献１は、１つのページを描画領域の印刷情報から、複数のバンド領域に分割し、その分割されたバンド単位で各描画装置に対して順次並列に割り当て、画像形成装置がバンド単位で描画する方法が開示されている。
【０００３】
また、近年、プリントジョブにおいて、アプリケーションなどで作られた複数ページを出力用紙１枚に印刷するために、複数ページを１ページに配置する印刷レイアウト設定が頻繁に使われるようになっている。１ページに割り当てるページ数を複数ページとすると、その１ページにおける印刷データは複雑になり、言語解釈やレンダリング処理が負荷となり時間がかかりやすい。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０９−００１８７１
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１には、マルチコアのＣＰＵを用いて印刷データを中間コードへ変換する方法が開示されていない。そのため、マルチコアのＣＰＵを活かした高速な中間コード変換が行えず、中間コード変換に時間を要する。特に、１ページに複数ページが割り当てられている複雑な印刷データを中間コードへ変換する場合は、より時間を要する。
【０００６】
本発明の目的は、マルチコアのＣＰＵを搭載した画像形成装置に、１ページに複数ページを割り当てた印刷データの中間コードを生成させる際においても、より高速な中間コード生成を行わせることである。
【課題を解決するための手段】
【０００７】
本発明の一実施形態に係る装置は、入力された印刷データを中間コードに変換する第１のプロセッサと、前記印刷データを中間コードに変換する、前記第１のプロセッサとは異なる第２のプロセッサと、複数の論理ページが１枚の用紙に印刷されるＮｕｐレイアウトが前記印刷データに設定されているかを判定する判定手段と、前記判定手段により、Ｎｕｐレイアウトが設定されていると判定された場合、第１の印刷用紙に印刷される複数の論理ページの印刷データを前記第１のプロセッサが中間コードへ変換する際に要する時間を予測する予測手段とを有し、前記予測手段により予測された時間が、画像形成装置が１枚の印刷用紙を印刷する時間よりも長い場合、前記第１のプロセッサは、第１の印刷用紙に印刷される所定の論理ページの印刷データを中間コードに変換し、前記第２のプロセッサは、第１の印刷用紙に印刷される所定の論理ページ以外の論理ページの印刷データを中間コードに変換し、前記予測手段により予測された時間が、前記画像形成装置が１枚の印刷用紙を印刷する時間よりも短い場合、前記第１のプロセッサは、第１の印刷用紙に印刷される複数の論理ページの印刷データを中間コードに変換し、前記第２のプロセッサは、第２の印刷用紙に印刷される複数の論理ページの印刷データを中間コードに変換することを特徴とする。
【発明の効果】
【０００８】
マルチコアのＣＰＵを搭載した画像形成装置に、１ページに複数ページを割り当てた印刷データの中間コードを生成させる際においても、より高速な中間コード生成を行うことが可能となる。
【図面の簡単な説明】
【０００９】
【図１】実施例１における画像形成装置１０２のシステム構成の一例を示した図。
【図２】実施例１における画像形成装置１０２のモジュール構成の一例を示した図。
【図３】実施例１におけるＰＤＬ処理の並列化のフローチャートを示した図。
【図４】実施例１における画像形成装置１０２のモジュール構成の一例を示した図。
【図５】実施例１におけるＰＤＬ処理時間の一例を示した図。
【図６】実施例１におけるプリントデータの一例を示した図。
【図７】実施例２におけるレンダリング処理の並列化のフローチャートを示した図。
【図８】実施例２における画像形成装置１０２のモジュール構成の一例を示した図。
【図９】実施例２におけるレンダリング処理時間の一例を示した図。
【図１０】実施例３における画像形成装置１０２のモジュール構成の一例を示した図。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【実施例１】
【００１１】
図１は、本発明における画像形成装置１０２のシステム構成の一例を示す図である。１０２は画像形成装置であり、２０２は外部デバイスと情報の入出力を行うためのネットワークＩ／Ｆであり、外部デバイスから送信された印刷データを受信する。２０３は様々な情報を一時格納するＲＡＭである。ＲＡＭ２０３は、受信バッファ２０４、ワークメモリ２０５、フレームバッファ２０６、ラスタメモリ２０７、共有メモリ２２０からなる。受信バッファ２０４は、ネットワークＩ／Ｆ２０２を介して受信した印刷データを格納するメモリである。２０５は、入力されたデータ、例えば、ＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）を中間コードに変換するときに一時的に使用するワークメモリである。２０６は、プリンタ内部の中間コードなどを格納するフレームバッファである。２０７は、中間コードをラスタイメージへと展開したデータを格納するラスタメモリである。２２０は、ＣＰＵ１  ２１８、またはＣＰＵ２  ２１９で動作するＲＯＭ２０８内のプログラムからアクセス可能な共有メモリである。
【００１２】
ＲＯＭ２０８は、画像形成装置１０２におけるＣＰＵ１  ２１８またはＣＰＵ２  ２１９の制御コードを格納するＲＯＭである。ＲＯＭ２０８は、ＰＤＬ解析部２０９、ＤＬ（中間コード）生成部２１０、展開処理部２１４、ページスケジューラ２１５からなる。ＰＤＬ解析部２０９は、受信バッファ２０４から読み出したデータが、複数種のＰＤＬのどのＰＤＬかを特定し、ＰＤＬデータを解析し、所定の処理に振り分けるＰＤＬ解析部である。ＤＬ生成部２１０は、ＰＤＬ解析部２０９において解析したデータから中間コードを生成し（中間コードへ変換し）、フレームバッファ２０６に格納するＤＬ生成部である。展開処理部２１４は、フレームバッファ２０６に格納された中間コードを展開したビットマップをラスタメモリ２０７に格納する展開処理部である。ページスケジューラ２１５は、ＣＰＵ２１８とＣＰＵ２１９で動作するＰＤＬ解析部２０９、ＤＬ生成部２１０に、ＰＤＬデータの各ページの処理を依頼するページスケジューラである。
【００１３】
第１のプロセッサであるＣＰＵ１  ２１８、第２のプロセッサであるＣＰＵ２  ２１９は画像形成装置２０１の演算処理や制御を行う中央演算処理装置（ＣＰＵ）である。エンジンＩ／Ｆ２１２はプリントエンジン２１３との信号の入出力を行うエンジンＩ／Ｆである。２１３はイメージデータに基づいて、周知の電子写真プロセスによって感光ドラム上に潜像を形成し、用紙に転写して定着し印字出力を行うプリントエンジンである。なお、本発明の実施例１における画像形成装置２０１は、毎分６０枚の印刷を行うものであり、１秒間に１枚印刷できるものとする。また、プリントエンジンの情報は、画像形成装置２０１のファームウェア（不図示）により判断することができる。
【００１４】
図２は、本発明における画像形成装置１０２のモジュール図の一例を示す図である。
３０２は、ＣＰＵ１  ２１８上で動作するモジュールを示しており、ＰＤＬ解析部２０９とＤＬ生成部２１０が動作することを示す。３０３は、ＣＰＵ２  ２１９上で動作するモジュールを示しており、ＰＤＬ解析部２０９とＤＬ生成部２１０が動作することを示す。なお、ページスケジューラは、ＣＰＵ１  ２１８、またはＣＰＵ２  ２１９、またはそれ以外のＣＰＵである第３のＣＰＵで実行されるものとする。
【００１５】
３１０は、ページスケジューラからＣＰＵ１  ２１８のＰＤＬ解析部２０９への制御を示す。３１１は、ページスケジューラからＣＰＵ２  ２１９のＰＤＬ解析部２０９への制御を示す。３２０は、ページスケジューラからＣＰＵ１  ２１８のＤＬ生成部２１０への制御を示す。３２１は、ページスケジューラからＣＰＵ２  ２１９のＤＬ生成部２１０への制御を示す。これらの制御については、関数コール、プロセス間通信等により行う。ＣＰＵ１  ２１８で動作するＰＤＬ解析部２０９は、ページスケジューラ２１５からの制御３１０に従い、受信バッファ２０４に格納されたＰＤＬデータを読み込み処理を実行する。ＣＰＵ１  ２１８で動作するＤＬ生成部２１０は、ページスケジューラ２１５からの制御３２０とＰＤＬ解析部２０９から渡されたデータにより処理を実行し、フレームバッファ２０６にＤＬを格納する。ＣＰＵ２  ２１８のＰＤＬ解析部２０９、ＤＬ生成部２１０も同様の処理を行う。このようなモジュール構成により、ＰＤＬのページ並列処理を実現している。なお、ＰＤＬ処理とは、ＰＤＬを中間コードに変換する処理のことであり、ＲＩＰ処理とは、中間コードを基にラスタイメージを描画する処理のことである。
【００１６】
図３は、本実施例における印刷処理のフローチャートを示す図である。以下の処理は、ページスケジューラによって行われる画像形成装置制御方法である。
【００１７】
まず、ステップＳ３０１で、ネットワーク２０４に接続されたＰＣ等から送信されたデータ（例えば、ＰＤＬ）をネットワーク２０４経由して、ネットワークＩ／Ｆ２０２が受信し、受信バッファ２０４に格納する（Ｓ３０１）。次に、ステップＳ３０３において、ページスケジューラ２１５は、受信したデータにおいて、レイアウト設定があるかどうか判定（確認）する（Ｓ３０３）。レイアウト設定があるデータ（印刷データ）とは、複数の論理ページを１枚の印刷用紙（物理ページ）に印刷するために、１ページに複数の論理ページが収まるよう、複数の論理ページを１ページに配置したデータである。このレイアウト設定を、Ｎｕｐレイアウト設定と呼ぶ。例えば、Ｎｕｐレイアウト設定があるデータを印刷した場合、図６の５０１、５０２で示されたような印刷を行うことができる。
【００１８】
受信したデータにおいて、レイアウト設定がない場合は、特に並列化処理を行わず、通常の印刷処理として取り扱う。受信したデータにおいて、レイアウト設定がある場合は、ステップＳ３０４に進み、受信したデータにおけるレイアウト設定情報を取得する（Ｓ３０４）。次に、ステップＳ３０５に進み、レイアウト設定に基づいてＰＤＬ内部で既にページ配置を処理済みかどうか判定する（Ｓ３０５）。具体的には、アプリケーションレベルで４つのページを１つのページ割り当てて印刷するジョブにおいて、ホストＰＣ側でＰＤＬデータを生成時に既にページ割り当てをしている場合、ＰＤＬ内部でページを配置済みとする。画像形成装置１０２にて４つのページを１つのページに配置する場合は、ＰＤＬ内部でページを配置済みでないとしている。
【００１９】
ＰＤＬ内部でページを配置済みでない場合は、ステップＳ３０８に進む。ステップＳ３０８では、ページ単位にランダムアクセス可能なＰＤＬかどうかを判定する（Ｓ３０８）。ランダムアクセス可能でない場合は、特に並列化処理を行わず、通常の印刷処理として取り扱う。なぜなら、各ページの切れ目（各ページの先頭）がデータからは解読できないので、レイアウト設定を設定できないためである。ランダムアクセス可能な場合は、ステップＳ３０６に進み、各論理ページの切れ目を検出する。
【００２０】
次に、ステップＳ３０７に進み、各論理ページの処理の重みを算出する。即ち、各論理ページを処理する際、ＣＰＵ２１８、またはＣＰＵ２１９がＰＤＬを中間コードへ変換するのに要する時間の予測値を算出する。次に、ステップＳ３０９に進み、物理ページのＰＤＬ処理速度が、本実施例における印刷装置のエンジンスピードを到達予定かどうか判定する。ＰＤＬ処理速度が、印刷装置のエンジンスピードに満たすと予測した場合、ステップＳ３１０に進み、各ＣＰＵにて物理ページレベルで並列処理を行い、並列処理を終了させる。一方、ＰＤＬ処理速度が、印刷装置のエンジンスピードに満たさないと予測した場合、ＰＤＬ処理速度の高速化が必要なので、ステップＳ３１１に進み、論理ページの並列処理をＰＤＬ処理時間の予測値によって振り分ける。
【００２１】
例えば図６のようなプリントデータにおいて、５０１や５０２はページ内に描画されたオブジェクト数が少なく、コマンド自体も比較的簡易なものである。したがって、ＰＤＬ処理速度が４ページ分の論理ページを合わせても、１秒かからず終了すると予測される。エンジンスピード（１ページ分のラスタイメージを１枚の印刷用紙に印刷するのに１秒かからない）より速くＰＤＬ処理が終了するため、プリントエンジンを待たせることがない。即ち、予測値の方が、プリントエンジンが１枚印刷するのに要する時間よりも短いということである。よって、ステップＳ３１０に進むケースとなり、論理ページ単位ではなく物理ページ単位で並列化し、必要以上のＣＰＵを占有しないようにすることで、後半ページのＰＤＬ処理に備える。物理ページ単位で並列化とは、例えば、Ｎｕｐレイアウトが設定されている印刷データにおいて、第１の印刷用紙に印刷される１ページ目（物理ページ）を第１のプロセッサであるＣＰＵ２１８に振り分ける。また、第２の印刷用紙に印刷される２ページ目（物理ページ）を第２のプロセッサであるＣＰＵ２１９に振り分けることである。
【００２２】
一方、例えば、５０３や５０４のように、文字、グラフィック、イメージなどの複雑なオブジェクトを複数有するデータの場合、ＰＤＬ処理速度が４ページ分の論理ページを合わせると、１０秒以上かかる。このような（１ページ分のラスタイメージを１枚の印刷用紙に印刷するのに１秒かかる）データの場合、ページスケジューラ２１５が、ＰＤＬ解析部の処理時間がエンジン速度より遅いと判断する。そのため、論理ページ単位でＰＤＬ処理の並列化を行うステップＳ３１１に進むケースとなる。即ち、予測値の方が、プリントエンジンが１枚印刷するのに要する時間よりも長いということである。こうすることで、プリントエンジン２１３のスピードをＰＤＬ解析部２０９の処理が遅くて妨げることがなく、ページ出力できる。そして、ステップＳ３１２に進み、各ＣＰＵにて、論理ページ単位でＰＤＬ処理を並列に処理する。以上がＰＤＬ処理の並列化における一連の処理である。
【００２３】
図４を用いて、論理ページ単位でＰＤＬ処理を並列に処理する方法について説明する。図４は、実施例１における画像形成装置１０２のモジュール構成の一例を示した図である。ページスケジューラ２１５は、プロセッサ１またはプロセッサ２、または、プロセッサ１、２以外の中央演算装置で動作し、ページの区切りとページ処理のＰＤＬ処理時間の予測値を検出する。３１０は、ページスケジューラからプロセッサ１  ２１８のＰＤＬ解析部２０９への制御を示す。３１１は、ページスケジューラからプロセッサ２  ２１９のＰＤＬ解析部２０９への制御を示す。
【００２４】
プロセッサ１  ２１８で動作するＰＤＬ解析部２０９は、ページスケジューラ２１５からの制御３１０に従い、ページ処理のＰＤＬ処理時間の予測値が高いと判定された所定の論理ページである２ページ目の解釈を行う。受信バッファ２０４に格納されたＰＤＬデータを読み込み処理を実行する。プロセッサ１  ２１８で動作するＤＬ生成部２１０は、ページスケジューラ２１５からの制御３２０とＰＤＬ解析部２０９から渡されたデータにより処理を実行し、フレームバッファ２０６にＤＬを格納する。プロセッサ２  ２１９のＰＤＬ解析部２０９、ＤＬ生成部２１０も同様の処理を行う。
【００２５】
プロセッサ１およびプロセッサ２は、同じフレームバッファ２０６に格納し、展開処理部２１４にてイメージ展開後、２０７のイメージバッファに格納する。プロセッサ２は、ページスケジューラ２１５からの制御３１１に従い、プロセッサ１に振り分けた論理ページ以外の論理ページ（１ページ目、３ページ目、４ページ目）を処理するよう制御している。例えば、図５に示した図のように、論理ページ処理全体で処理時間がプロセッサ毎に平均化する（差が少なくなるよう）ようになっている。即ち、処理時間が略均等になっている。このようなモジュール構成により、ＰＤＬのページ並列処理を実現している。
【００２６】
図５は、実施例１におけるＰＤＬ処理時間の一例を示した図である。４０１は、単純に物理ページ単位で、ページ処理をプロセッサ１およびプロセッサ２に割り振ったときの処理時間の例である。ＲＩＰ処理は、ディスプレイリストのイメージ展開は、プロセッサ１によりディスプレイリストの生成処理が終了してから開始される。４０２は、本実施例のように、論理ページ単位で、ページ処理をプロセッサ１およびプロセッサ２に割り振ったときの処理時間の例である。ページ処理を論理ページ単位で振り分ける処理により、プロセッサ１および２に、物理ページ１のページ解釈処理を振り分けることができる。これにより、ディスプレイリストのイメージ展開（描画処理）は、ディスプレイリストの生成処理の終了が高速化され、プリントパフォーマンスが向上する。
【００２７】
図６は、実施例１におけるプリントデータの一例である。５０１および５０２は、実施例１のように、論理ページの描画コマンド自体が比較的簡易のため、ページ解釈処理自体の負荷がそれほど大きくなく、論理ページ分割しないでもエンジン速度が出るデータである。このようなデータでは、論理ページで分割せず、単純に物理ページで分割、各プロセッサを振り分けるような処理を行う。５０３および５０４は、論理ページの描画コマンド自体が比較的複雑なため、論理ページ分割により効果が出るデータである。本発明は、５０３のページ解釈は、プロセッサ１を、５０４のページ解釈には、プロセッサ２を割り当てるようなロジックとなる。
【００２８】
一方、５０５のようなデータ（スタンプが設定されている印刷データ）は、ページスケジューラ２１５が、論理ページ数を検知した後、付加データとして、別の論理ページとして算出する。例えば、４つの論理ページがひとつの物理ページに割り当てられたレイアウトの場合、このような付加データ（スタンプデータ）は５つめの最終ページの論理ページデータとみなして、取り扱う。この５０５のようなデータの場合、５０３をプロセッサ１  ２１８に、５０４をプロセッサ２  ２１９に割り当て、先にＤＬ生成処理が終わったプロセッサ１  ２１８に、５０６のページ処理を割り当てる必要がある。その後、ＤＬを２０６にて合成し、物理ページのレンダリングを展開処理部２１４にて行う。
【実施例２】
【００２９】
図７は、本実施例における印刷処理のフローチャートを示す図である。以下の処理は、ページスケジューラ２１５によって処理される。まず、ステップＳ４０１で、ＰＤＬのページ解釈処理を行う。次に、ステップＳ４０２において、１プロセスのＰＤＬ処理が終了するのをトリガーとしてステップＳ４０３へ進む。この際、１プロセス以外のプロセス（例えば、第２のプロセッサ）は印刷データを中間コードへ変換している最中である。ステップＳ４０３において、終了したプロセスがＰＤＬを解釈して生成したディスプレイリストのサイズが内部的に保有する閾値以上かどうか判定する。閾値を越えるとフォールバックが発生するため、第１のプロセッサが変換した中間コードに対し２回描画を行うことになるので描画時間が増大してしまう。
【００３０】
閾値以上の場合は、プロセッサ２が生成するディスプレイリストと合成すると、格納可能なバッファ領域のサイズを超える可能性があるため、先行してステップＳ４０５にてＲＩＰ処理を行う。これにより、同じディスプレイリストを基に２回レンダリングを行う必要がなくなる。
【００３１】
閾値以内の場合は、ステップＳ４０４へ進み、各プロセスの終了残り予測時間が閾値以上かどうかを判定する。閾値以上の場合（エンジンスピードに描画が間に合わない場合）は、プロセス終了待ち時間が大きく、待ち時間がロスとなるため、ロスを無くすためにステップＳ４０５へ進み、先行してＲＩＰ処理（描画処理）を開始する。先行してＲＩＰ処理され描画されたラスタイメージを第１のラスタイメージとする。次にステップＳ４０６に進み、他のプロセスによりＲＩＰ処理の終了を待つ。印刷データにスタンプが設定されていれば、待っている間、第１のプロセッサはスタンプの印刷データを中間コードへ変換する処理を行っても良い。
【００３２】
他のプロセスによるＲＩＰ処理が終わったことをトリガーに、ステップＳ４０７へ進み、全論理ページのＲＩＰ処理が終了したかどうかを判定する。全論理ページのＲＩＰ処理が終了していない場合は、ステップＳ４０６へ戻り、さらに他のプロセスがＲＩＰ処理を終了するのを待つ。他のプロセス（例えば、プロセッサ２）により生成された中間コードを基に描画されたラスタイメージを第２のラスタイメージとする。
【００３３】
全論理ページのＲＩＰ処理が終了した場合は、ステップＳ４０８へ進む。ステップＳ４０８において、第１のラスタイメージと第２のラスタイメージとの２つのラスタイメージ合成をして、一連のＲＩＰの並列処理を終了する。ステップＳ４０４において、終了残り予測時間が閾値以上でない場合（閾値以下）は、ステップＳ４０９へ進み、他のプロセスによるＰＤＬ処理の終了を待つ。
【００３４】
次に、ステップＳ４１０に進み、全論理ページのＰＤＬ処理が終了したかどうかを判定する。全論理ページの処理が終了していない場合は、ステップＳ４０９へ戻り、他のプロセスにおけるＰＤＬ処理の終了を待つ（１のプロセスが変換した中間コードを描画せずに待つ）。全論理ページの処理が終了した場合は、ステップＳ４１１へ進み、２つのプロセッサが変換した２つのディスプレイリスト（中間コード）の中間コード合成を行う。次にまとめて物理ページレベルでＲＩＰを行うことで、一連の並列処理を終了する。なお、他のプロセスにおけるＰＤＬ処理の終了を待っている間、スタンプが印刷データに設定されているのであれば、第１のプロセッサはスタンプの中間コードを変換しても良い。
【００３５】
ディスプレイリストを合成する処理を行う理由として、先行して描画した第１のラスタイメージと第２のラスタイメージとを合成しラスタイメージを生成する処理よりも早くラスタイメージを生成することができるからである。しかし、残り終了予測時間が閾値を越えるのであれば（エンジンスピードに描画が間に合わないのであれば）、多少時間をロスしても印刷に間に合うようにラスタイメージを先行して描画するのである。
【００３６】
図８は、実施例２における画像形成装置１０２のモジュール構成の一例を示した図である。ページスケジューラ２１５は、プロセッサ１またはプロセッサ２、または、プロセッサ１、２以外の中央演算装置で動作し、ページの区切りとページ処理のＰＤＬ処理時間の予測値を検出する。３１０は、ページスケジューラからプロセッサ１  ２１８のＰＤＬ解析部２０９への制御を示す。３１１は、ページスケジューラからプロセッサ２  ２１９のＰＤＬ解析部２０９への制御を示す。プロセッサ１  ２１８で動作するＰＤＬ解析部２０９は、ページスケジューラ２１５からの制御３１０に従い、論理ページにおける１ページ目の解釈を行う。受信バッファ２０４に格納されたＰＤＬデータを読み込み処理を実行する。プロセッサ１  ２１８で動作するＤＬ生成部２１０は、ページスケジューラ２１５からの制御３２０とＰＤＬ解析部２０９から渡されたデータにより処理を実行し、フレームバッファ２０６にＤＬを格納する。プロセッサ２  ２１９のＰＤＬ解析部２０９、ＤＬ生成部２１０も同様の処理を行う。プロセッサ１  ２１８によって、ＤＬ生成が終わった時点で、ＤＬのサイズが閾値以上かどうかを判定する。閾値以上の場合は、論理ページの１ページ目だけ先行して、展開処理部  ２１４にてレンダリング処理を行い、イメージバッファ  ２０７に格納する。続いて、プロセッサ２  ２１９にて、ＤＬ生成が終了し次第、論理ページの８ページ目を、展開処理部  ２１４にてレンダリング処理を行い、イメージバッファ  ２０７にてラスタイメージ合成を行う。
【００３７】
図９は、実施例２におけるＲＩＰ処理時間の一例を示した図である。８０１は、単純に各プロセッサからＤＬが生成されるのを待った状態で、物理ページでまとめてイメージ展開処理を行った。８０２は、物理ページごとに先行して、ＲＩＰ処理を行った場合の処理時間の一例である。各プロセッサでの終了時間差が大きい、または、ひとつのプロセッサが生成したＤＬサイズが閾値以上の場合は、ＤＬ生成を待たずして、先行して、論理ページをＲＩＰすることにより、待ち時間が短縮され、プリントパフォーマンスが向上する。
【実施例３】
【００３８】
図１０は、実施例３における画像形成装置１０２のモジュール構成の一例を示した図である。ページスケジューラ２１５は、ホストＰＣの中央演算装置である５０１において、ドライバーアプリケーションとして動作する。ホストＰＣ上のページスケジューラ２１５は、まず、ページ分割をして並列処理をコントローラーで行うかどうかを判定する。
【００３９】
一方、例えば、５０３や５０４のように、文字、グラフィック、イメージなどの複雑なオブジェクトを複数有するデータの場合、ＰＤＬ処理速度が４ページ分の論理ページを合わせると、１０秒以上かかる。このようなデータの場合、ページスケジューラ２１５が、ＰＤＬ解析部の処理時間がエンジン速度より遅いと判断するため、論理ページ単位でＰＤＬ処理の並列化を行うステップＳ３１１に進むケースとなる。次に、論理ページ単位でページ並列を行うと判定した場合、ホストＰＣ上で行うか、コントローラー上で行うかの判定を行う。
【００４０】
判定条件は、ホストＰＣとコントローラーのマシンのスペック比および、ホストＰＣおよびコントローラーのタスク稼働率から判定する。ホストＰＣのほうが、マシン性能が高く、他のタスクが稼動していない場合は、ホストＰＣ側でページ分割を行う。この際、ページの区切りとページ処理のＰＤＬ処理時間の予測値を検出し、レイアウトされたページを分割する単位と、コントローラーの各プロセッサにどの論理ページを割り当てるかを計算する。
【００４１】
３１０は、ページスケジューラからプロセッサ１  ２１８のＰＤＬ解析部２０９への制御を示す。３１１は、ページスケジューラからプロセッサ２  ２１９のＰＤＬ解析部２０９への制御を示す。この３１０および３１１の制御指令は、物理境界をまたがって行われる。プロセッサ１  ２１８で動作するＰＤＬ解析部２０９は、ページスケジューラ２１５からの制御３１０に従い、ページ処理のＰＤＬ処理時間の予測値が大きいと判定された論理ページにおける２ページ目の解釈を行う。受信バッファ２０４に格納されたＰＤＬデータを読み込み処理を実行する。
【００４２】
プロセッサ１  ２１８で動作するＤＬ生成部２１０は、ページスケジューラ２１５からの制御３２０とＰＤＬ解析部２０９から渡されたデータにより処理を実行し、フレームバッファ２０６にＤＬを格納する。プロセッサ２  ２１９のＰＤＬ解析部２０９、ＤＬ生成部２１０も同様の処理を行う。プロセッサ１およびプロセッサ２は、同じフレームバッファ２０６に格納し、展開処理部２１４にてイメージ展開後、２０７のイメージバッファに格納する。
【００４３】
プロセッサ２は、ページスケジューラ２１５からの制御３１１に従い、プロセッサ１に割り当てたページ以外の論理ページを処理するよう制御している。論理ページ処理全体で、処理時間がプロセッサ毎に平均化するようになっている。このようなモジュール構成により、ＰＤＬのページ並列処理を実現している。
【００４４】
なお、以上説明した各実施例では、２つのプロセッサにより解析部を２つ実現したが、それ以上実現しても良い。その場合、第１のプロセッサと第２のプロセッサ以外の第３のプロセッサが必要となる。
【００４５】
また、以上説明した各実施例では、ＣＰＵを２つ用いて解析部を２つ実現したが、マルチコアプロセッサのＣＰＵを１つ用いて解析プログラムを２つ実行しても良い。この場合、夫々の解析プログラムは、コアプロセッサを１つずつ用いて実行される。なお、コアプロセッサとは、プロセッサの中にある命令発行器や演算器などを組み合わせて動作する集合体のことであり、マルチコアプロセッサとは、コアプロセッサを複数有するプロセッサのことである。
【００４６】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００４７】
２０９  ＰＤＬ解析部
２１０  ＤＬ生成部
２１４  展開処理部
２１５  ページスケジューラ
２１８  ＣＰＵ１
２１９  ＣＰＵ２
【図１】
2011098500.tif 000003
【図２】
2011098500.tif 000004
【図３】
2011098500.tif 000005
【図４】
2011098500.tif 000006
【図５】
2011098500.tif 000007
【図６】
2011098500.tif 000008
【図７】
2011098500.tif 000009
【図８】
2011098500.tif 000010
【図９】
2011098500.tif 000011
【図１０】
2011098500.tif 000012