(57)【要約】【課題】メモリ領域の増大及び画像形成速度の低下を抑制して、処理効率よくオーバーランを回避する。【解決手段】制御部３０は、ページ内の何れかのバンドに関し当該バンドについて印刷データの生成が出力間隔内に完了しないと判断したときには、当該バンドの印刷データの生成が当該バンドに対応付けられた出力タイミングに間に合うように、複数のコア１１１，１１２（１１３，１１４）のうちの二以上により一或いは複数のバンドに関するラスタライズ処理を並行して実行し印刷データを生成し、当該生成した印刷データを当該バンドに対応付けられた出力タイミングで出力する。【選択図】図３
2011148242.tif 000002
【特許請求の範囲】
【請求項１】
外部機器から入力されたページ印刷用の制御データに基づいて印刷データを生成し、該印刷データに基づいて画像の形成を行う画像形成装置において、
複数の演算処理部を含む制御部であって、前記ページ印刷用の制御データに基づいてページを所定のライン数で構成されるバンド単位でラスタライズ処理を行うことにより印刷データを生成し、これら生成された前記印刷データを一定の出力間隔で規定された出力タイミングでバンド毎に順次出力する制御部と、
前記制御部より出力された前記印刷データに基づいて画像を形成する画像形成部と、  を備え、
前記制御部は、
ページ内の何れのバンドについても印刷データの生成が前記出力間隔内に完了すると判断したときには、各バンドのラスタライズ処理を前記複数の演算処理部のうちの何れか一つに担当させ、当該担当の演算処理部により各バンドに対するラスタライズ処理を先頭のバンドから前記一定の出力間隔で開始して印刷データを生成して、当該生成した印刷データを当該バンドに対応付けられた出力タイミングで出力し、
ページ内の何れかのバンドに関し当該バンドについて印刷データの生成が前記出力間隔内に完了しないと判断したときには、当該バンドの印刷データの生成が当該バンドに対応付けられた出力タイミングに間に合うように、前記複数の演算処理部のうちの二以上により一或いは複数のバンドに関するラスタライズ処理を並行して実行し印刷データを生成し、当該生成した印刷データを当該バンドに対応付けられた出力タイミングで出力する、
ことを特徴とする画像形成装置。
【請求項２】
前記制御部は、ページ内の何れかのバンドに関し、前記複数の演算処理部のうちの二以上により当該バンドについての印刷データを並行して同時に生成しても前記出力間隔内で完了しないと判断したときには、当該バンドについての印刷データの生成を、前記先頭のバンドに関するラスタライズ処理の前に行うことを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記制御部は、前記ページ印刷用の制御データに基づき、印刷データを生成するための処理時間をバンド毎に求め、前記処理時間が前記出力間隔よりも大きい場合に、印刷データの生成が前記出力間隔内に完了しないと判断することを特徴とする請求項１又は２に記載の画像形成装置。
【請求項４】
前記制御部は、印刷データの生成が前記出力間隔内に完了しないと判断したときに、前記複数の演算処理部のうち印刷データの生成が可能なものを判定し、該判定された複数の演算処理部から少なくとも二以上により、一或いは複数のバンドに関するラスタライズ処理を並行して実行し印刷データを生成することを特徴とする請求項１〜３の何れか一項に記載の画像形成装置。
【請求項５】
前記制御部は、印刷データの生成が前記出力間隔内に完了しないと判断したときには、一の演算処理部における他のバンドの印刷データの生成中に、印刷データの生成が前記出力間隔内に完了しないと判断されたバンドについて、他の一以上の演算処理部によって並列して印刷データの生成を実行可能であることを特徴とする請求項１〜４の何れか一項に記載の画像形成装置。
【請求項６】
複数の演算処理部を有するコンピュータを、
外部機器より入力されたページ印刷用の制御データに基づいてページを所定のライン数で構成されるバンド単位でラスタライズ処理を行うことにより印刷データを生成し、これら生成された前記印刷データを一定の出力間隔で規定された出力タイミングでバンド毎に順次出力し、ページ内の何れのバンドについても印刷データの生成が前記出力間隔内に完了すると判断したときには、各バンドのラスタライズ処理を前記複数の演算処理部のうちの何れか一つに担当させ、当該担当の演算処理部により各バンドに対するラスタライズ処理を先頭のバンドから前記一定の出力間隔で開始して印刷データを生成して、当該生成した印刷データを当該バンドに対応付けられた出力タイミングで出力し、ページ内の何れかのバンドに関し当該バンドについて印刷データの生成が前記出力間隔内に完了しないと判断したときには、当該バンドの印刷データの生成が当該バンドに対応付けられた出力タイミングに間に合うように、前記複数の演算処理部のうちの二以上により一或いは複数のバンドに関するラスタライズ処理を並行して実行し印刷データを生成し、当該生成した印刷データを当該バンドに対応付けられた出力タイミングで出力する制御部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置及びプログラムに関する。
【背景技術】
【０００２】
ＰＣ（Personal Computer）等の外部装置で作成されたＰＳ（PostScript：ポストスクリプト（登録商標））データやＰＤＦ（Portable Document Format）データ等の印刷データを、ＬＡＮ等のネットワークを介して受信し、受信したデータを一旦中間形式のデータ（中間データ）に変換し、この中間データをラスタライズしてビットマップデータを生成し、印刷を行うプリンタ、ＭＦＰ（Multi Function Peripheral）等の画像処理装置が普及している。
【０００３】
このような画像処理装置では、メモリ容量を削減させるために、１ページの印刷データを中間データに変換する際に複数のバンドに分割し、中間データに基づくビットマップデータの生成をバンド毎に実行して、画像形成を行う画像形成部の要求により順次転送することが行われている。
【０００４】
ここで、ラスタライズにかかる処理時間は、中間データの内容の複雑さに依存している。そして、ビットマップデータの転送は、画像形成部における画像の形成とともに所定時間毎に実行されなければならないので、ラスタライズにかかる処理時間が長すぎると、画像形成部の要求するタイミングにビットマップデータの転送が間に合わず、画像の欠落（オーバーラン）が生じてしまう。
【０００５】
すなわち、例えば、図２２に示されるように、１ページの印刷データをディスプレイリスト等の中間データに変換して、これを複数のバンドに分割する。そして、分割されたバンドのうち、１番目のバンドＢ１から４番目のバンドＢ４までは、画像形成部の要求するタイミング（ｔ１〜ｔ４）となるまでにラスタライズが完了してビットマップデータの転送が可能となる。しかしながら、５番目のバンドＢ５は、その中間データの内容が複雑となっており、画像形成部の要求するタイミングまでにラスタライズが完了せず、ビットマップデータの転送が間に合わなくなる。このような場合に、ラスタライズが完了されていないオブジェクトなどの画像が欠落する。
【０００６】
このような問題に鑑み、従来の画像処理装置では、入力データの解析時に各バンドのラスタライズ時間を予測するものがある。そして、この画像処理装置は、画像形成部の要求するタイミングにラスタライズが間に合わないと判断したバンドについては、中間データ構造を再構成し、あるいは、ページ単位でラスタライズを行ってオーバーランを防止するようにしている（特許文献１）。
【０００７】
また、複数のＣＰＵを用いて複数のバンドを並列でラスタライズして処理量を向上させるようにした画像処理装置がある（特許文献２）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平１０−３０７６８９号公報
【特許文献２】特開２００３−５１０１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、上記特許文献１に記載の画像処理装置では、中間データの再構成を行う場合には、処理が増加し、却って画像形成速度の低下につながってしまう。また、１ページ単位のラスタライズに変更した場合には、ビットマップデータを保存するためのメモリ領域が必要となってコストがかかる上に、画像形成部の起動がそれだけ遅くなるため、やはり、画像形成速度の低下につながってしまう。
【００１０】
また、上記特許文献２に記載の画像処理装置では、ラスタライズ化の速度の向上は図れるものの、画像形成部における画像形成速度は一定のため、画像形成部の要求するタイミングよりも必要以上に早くラスタライズしてもパフォーマンスの向上にはつながらない。それどころか、必要以上に早く生成したビットマップデータを保存しておくためのメモリ領域が必要となり、コストがかかってしまう結果となる。
【００１１】
本発明の課題は、メモリ領域の増大及び画像形成速度の低下を抑制して、処理効率よくオーバーランを回避することができる画像処理装置及びプログラムを提供することである。
【課題を解決するための手段】
【００１２】
以上の課題を解決するため、請求項１に記載の発明は、外部機器から入力されたページ印刷用の制御データに基づいて印刷データを生成し、該印刷データに基づいて画像の形成を行う画像形成装置において、
複数の演算処理部を含む制御部であって、前記ページ印刷用の制御データに基づいてページを所定のライン数で構成されるバンド単位でラスタライズ処理を行うことにより印刷データを生成し、これら生成された前記印刷データを一定の出力間隔で規定された出力タイミングでバンド毎に順次出力する制御部と、
前記制御部より出力された前記印刷データに基づいて画像を形成する画像形成部と、  を備え、
前記制御部は、
ページ内の何れのバンドについても印刷データの生成が前記出力間隔内に完了すると判断したときには、各バンドのラスタライズ処理を前記複数の演算処理部のうちの何れか一つに担当させ、当該担当の演算処理部により各バンドに対するラスタライズ処理を先頭のバンドから前記一定の出力間隔で開始して印刷データを生成して、当該生成した印刷データを当該バンドに対応付けられた出力タイミングで出力し、
ページ内の何れかのバンドに関し当該バンドについて印刷データの生成が前記出力間隔内に完了しないと判断したときには、当該バンドの印刷データの生成が当該バンドに対応付けられた出力タイミングに間に合うように、前記複数の演算処理部のうちの二以上により一或いは複数のバンドに関するラスタライズ処理を並行して実行し印刷データを生成し、当該生成した印刷データを当該バンドに対応付けられた出力タイミングで出力する、
ことを特徴とする。
【００１３】
請求項２に記載の発明は、請求項１に記載の画像形成装置において、
前記制御部は、ページ内の何れかのバンドに関し、前記複数の演算処理部のうちの二以上により当該バンドについての印刷データを並行して同時に生成しても前記出力間隔内で完了しないと判断したときには、当該バンドについての印刷データの生成を、前記先頭のバンドに関するラスタライズ処理の前に行うことを特徴とする。
【００１４】
請求項３に記載の発明は、請求項１又は２に記載の画像形成装置において、
前記制御部は、前記ページ印刷用の制御データに基づき、印刷データを生成するための処理時間をバンド毎に求め、前記処理時間が前記出力間隔よりも大きい場合に、印刷データの生成が前記出力間隔内に完了しないと判断することを特徴とする。
【００１５】
請求項４に記載の発明は、請求項１〜３の何れか一項に記載の画像形成装置において、
前記制御部は、印刷データの生成が前記出力間隔内に完了しないと判断したときに、前記複数の演算処理部のうち印刷データの生成が可能なものを判定し、該判定された複数の演算処理部から少なくとも二以上により、一或いは複数のバンドに関するラスタライズ処理を並行して実行し印刷データを生成することを特徴とする。
【００１６】
請求項５に記載の発明は、請求項１〜４の何れか一項に記載の画像形成装置において、
前記制御部は、印刷データの生成が前記出力間隔内に完了しないと判断したときには、一の演算処理部における他のバンドの印刷データの生成中に、印刷データの生成が前記出力間隔内に完了しないと判断されたバンドについて、他の一以上の演算処理部によって並列して印刷データの生成を実行可能であることを特徴とする。
【００１７】
請求項６に記載の発明は、プログラムであって、
複数の演算処理部を有するコンピュータを、
外部機器より入力されたページ印刷用の制御データに基づいてページを所定のライン数で構成されるバンド単位でラスタライズ処理を行うことにより印刷データを生成し、これら生成された前記印刷データを一定の出力間隔で規定された出力タイミングでバンド毎に順次出力し、ページ内の何れのバンドについても印刷データの生成が前記出力間隔内に完了すると判断したときには、各バンドのラスタライズ処理を前記複数の演算処理部のうちの何れか一つに担当させ、当該担当の演算処理部により各バンドに対するラスタライズ処理を先頭のバンドから前記一定の出力間隔で開始して印刷データを生成して、当該生成した印刷データを当該バンドに対応付けられた出力タイミングで出力し、ページ内の何れかのバンドに関し当該バンドについて印刷データの生成が前記出力間隔内に完了しないと判断したときには、当該バンドの印刷データの生成が当該バンドに対応付けられた出力タイミングに間に合うように、前記複数の演算処理部のうちの二以上により一或いは複数のバンドに関するラスタライズ処理を並行して実行し印刷データを生成し、当該生成した印刷データを当該バンドに対応付けられた出力タイミングで出力する制御部として機能させる。
【発明の効果】
【００１８】
本発明によれば、メモリ領域の増大及び画像形成速度の低下を抑制して、処理効率よくオーバーランを回避することができる。
【図面の簡単な説明】
【００１９】
【図１】画像形成システムのシステム構成図である。
【図２】クライアント端末のブロック図である。
【図３】第１の実施形態における画像形成装置のブロック図である。
【図４】画像形成処理の処理フローを示す図である。
【図５】画像形成処理を示すフローチャートである。
【図６】印刷データ解析処理を示すフローチャートである。
【図７】ラスタライズ処理を示すフローチャートである。
【図８】ラスタライズ方法判定処理を示すフローチャートである。
【図９】分割ラスタライズ処理を示すフローチャートである。
【図１０】コア＃２ラスタライズ処理を示すフローチャートである。
【図１１】ビットマップデータ出力処理を示すフローチャートである。
【図１２】ラスタライズ予測時間算出用テーブルを示す図である。
【図１３】オブジェクト毎のラスタライズ予測時間について説明する図である。
【図１４】ディスプレイリストの構成について説明する図である。
【図１５】分割ラスタライズによるビットマップデータの生成過程について説明する図である。
【図１６】コア毎の処理動作について説明する図である。
【図１７】コア毎の処理動作について説明する図である。
【図１８】コア毎の処理動作について説明する図である。
【図１９】第２の実施形態における画像形成装置のブロック図である。
【図２０】第２の実施形態におけるラスタライズ方法判定処理を示すフローチャートである。
【図２１】第２の実施形態における分割ラスタライズ処理を示すフローチャートである。
【図２２】従来の画像処理装置における処理動作について説明する図である。
【発明を実施するための形態】
【００２０】
以下、図面を参照して、本発明に係る画像処理装置の実施の形態について説明する。なお、発明の範囲は図示例に限定されない。
【００２１】
（第１の実施形態）
図１に、第１の実施形態における画像形成システム１００のシステム構成を示す。図１に示すように、画像形成システム１００は、例えば、画像形成装置１０とクライアント端末２０とを備えて構成されている。画像形成装置１０とクライアント端末２０の各装置はＬＡＮ（Local Area Network）等の通信ネットワークＮを介して、データ通信可能に接続されている。
【００２２】
画像形成装置１０は、コピー機能、画像読取機能、プリンタ機能を備えた、所謂ＭＦＰ（Multi-Function Peripheral）である。この画像形成装置１０は、例えば、ＣＭＹＫの色毎に感光体ドラムを有し、感光体ドラムへの画像形成と同時に用紙を搬送して印刷を行うタンデム式の画像処理装置が適用できる。また、画像形成装置１０は、単色の感光体ドラムのみ有するモノクロの画像を形成する画像処理装置であってもよい。画像形成装置１０は、クライアント端末２０から送信されるプリントジョブデータや、画像形成装置１０に備えられているスキャナ等の画像読取部から読み込んだ画像データ等に基づき、用紙に画像を形成する。
【００２３】
クライアント端末２０は、所謂パーソナルコンピュータであり、画像形成装置１０にプリントジョブを送信する機能を有する。クライアント端末２０には、プリンタドライバプログラム（以下、単にプリンタドライバと称することがある。）がインストールされている。クライアント端末２０は、このプリンタドライバの機能を用いて画像形成時に適用されるプリント条件のデータ（印刷要求データ等）、ページ印刷用制御データ（画像データ等）等を含んだプリントジョブデータを生成し画像形成装置１０に送信する。プリントジョブデータは、例えばＰＳ（PostScript：ポストスクリプト（登録商標））や、ＰＣＬ（Printer Control Language）、ＰＤＦ（Portable Document Format）、ＸＰＳ（XML Paper Specification）といったページ記述言語（ＰＤＬ：Page Description Language）のデータである。また、プリント条件のデータは、ＰＪＬ（Print Job Language）等の形式によりプリントチケットとしてプリントジョブデータに含まれていてもよい。
【００２４】
図２に、クライアント端末２０の構成を示す。図２に示すように、クライアント端末２０は、例えば、ＣＰＵ（Central Processing Unit）２１、操作部２２、表示部２３、通信部２４、ＲＡＭ（Random Access Memory）２５、ＨＤＤ（Hard Disk Drive）２６を備えて構成されている。
【００２５】
ＣＰＵ２１は、操作部２２から入力される操作信号（指示信号）又は通信部２４により受信される指示信号に応じて、ＨＤＤ２６に記憶されている各種処理プログラムを読み出し、ＲＡＭ２５内に形成されたワークエリアに展開し、当該プログラムとの協働により各種処理を行う。
【００２６】
操作部２２は、カーソルキー、数字入力キー、及び各種機能キー等を備えたキーボードと、マウスなどのポインティングデバイスを備えて構成され、キーボードに対するキー操作やマウス操作により入力された指示信号をＣＰＵ２１に出力する。
【００２７】
表示部２３は、ＬＣＤ（Liquid Crystal Display）等により構成され、ＣＰＵ２１から入力される表示信号の指示に従って、操作部２２からの入力指示やデータ等を表示する。
【００２８】
通信部２４は、ＬＡＮアダプタ、ルータ、ＴＡ（Terminal Adapter）等を備え、通信ネットワークＮを介して接続された画像形成装置１０等の外部機器との間でデータの送受信を行う。
【００２９】
ＲＡＭ２５は、ＣＰＵ２１により実行される各種処理プログラム及びこれらプログラムに係るデータを一時的に記憶するワークエリアを形成する。
【００３０】
ＨＤＤ２６は、記憶装置であり、各種プログラム、設定データ、画像データ等を記憶する。また、ＨＤＤ２６は、プリンタドライバプログラム２６１を記憶している。
【００３１】
ＣＰＵ２１は、当該プリンタドライバプログラム２６１をＨＤＤ２６から読み出してＲＡＭ２５に展開し、当該プログラムとの協働により、画像形成装置１０に印刷要求データ及びページ印刷用制御データを送信する。
【００３２】
図３に、画像形成装置１０の構成を示す。図３に示すように、画像形成装置１０は、例えば、ＣＰＵ（Central Processing Unit）１１、操作部１２、表示部１３、画像読取部１４、画像形成部１５、通信部１６、ＲＡＭ１７、ＲＯＭ（Read Only Memory）１８、ＨＤＤ（Hard Disk Drive）１９を備えて構成されている。
【００３３】
ＣＰＵ１１は、操作部１２から入力される操作信号（指示信号）又は通信部１６により受信される指示信号に応じて、ＲＯＭ１８に記憶されている各種処理プログラムを読み出し、ＲＡＭ１７内に形成されたワークエリアに展開し、当該プログラムとの協働により各種処理を行う。例えば、ＣＰＵ１１は画像形成に関する一連の処理（画像形成処理）を行う。以下、ＣＰＵ１１とＲＡＭ１７とを合わせて制御部３０と称す場合がある。本実施の形態で用いられるＣＰＵ１１は、複数のコア（第１のコア１１１、第２のコア１１２）を有するマルチコアＣＰＵであって、このマルチコアＣＰＵを用いることにより複数の処理を並列で行うことができる。本実施の形態では、２個のコアを有するマルチコアＣＰＵが使用されるが、３個以上のコアを有するＣＰＵやＭＰＵ（Micro Processor Unit）を用いてもよい。また、マルチコアＣＰＵにおける複数のコアにより複数の演算処理部を構成することに代え、２個以上のＣＰＵにより複数の演算処理部を構成するようにしてもよい。
【００３４】
操作部１２は、数字キーやスタートキー、リセットキー等の各種キーを有し、押下されたキーの押下信号をＣＰＵ１１に出力する。また、操作部１２は、表示部１３と一体的に形成されたタッチパネルを備えており、ユーザの指先やタッチペン等により当接されたタッチパネル上の位置を検出して、位置信号をＣＰＵ１１に出力する。
【００３５】
画像読取部１４は、原稿画像を読み取って画像データを生成する所謂スキャナであり、原稿を載置するプラテンガラス、プラテンガラス上の原稿画像を走査し、これをＣＣＤイメージセンサ上に結像する走査光学系を備えている。画像読取部１４は、ＣＣＤイメージセンサで読み取った原稿画像に基づいて生成された画像信号をＡ／Ｄ変換して画像信号を生成する。
【００３６】
画像形成部１５は、電子写真方式、静電記録方式、熱転写方式等の作像プロセスを利用して画像を形成するために必要な構成要素を含む機能部である。例えば、画像形成部１５は、感光体ドラム、転写ベルト、定着器、各種搬送ベルト、電子回路、給紙部、排紙部等を備える。画像形成部１５は、ＣＰＵ１１の指示に従い、画像読取部１４により生成された画像データ又は通信部１６により受信されたプリントジョブデータ等に基づいて、給紙部から供給された用紙に画像を形成し、排紙部に搬送する。また、給紙部は給紙トレイを、排紙部は排紙トレイを備える。
【００３７】
通信部１６は、ＬＡＮアダプタ、ルータ、ＴＡ等を備え、通信ネットワークＮを介して接続されたクライアント端末２０等の外部機器との間でデータの送受信を行う。例えば、通信部１６は、クライアント端末２０からプリントジョブデータ（印刷要求データ及びページ印刷用制御データ）を受信する。
【００３８】
ＲＡＭ１７は、ＣＰＵ１１により実行される各種処理プログラム及びこれらプログラムに係るデータを一時的に記憶するワークエリアを形成する。また、ＲＡＭ１７は、通信部１６によりクライアント端末２０から受信されたページ印刷用制御データ等も記憶する。
【００３９】
ＲＯＭ１８は、ＣＰＵ１１で実行される各種処理プログラム、各種データ等を記憶する。これらの各種プログラムは、読み取り可能なプログラムコードの形態で格納され、ＣＰＵ１１は、当該プログラムコードに従った動作を逐次実行する。また、ＲＯＭ１８は、プリンタコントローラプログラム１８１やフォントデータ等を記憶している。
【００４０】
ＨＤＤ１９は、記憶装置であり、画像読取部１４により読み取られた画像データ等を記憶する。また、ＨＤＤ１９は、追加フォントデータ等も記憶する。
【００４１】
制御部３０は、プリンタコントローラプログラム１８１をＲＯＭ１８から読み出してＲＡＭ１７に展開し、このプログラムとの協働により、次のように機能する。即ち、制御部３０は、通信部１６によりクライアント端末２０から受信されたページ印刷用制御データを解析して、中間言語データを生成する。そして、制御部３０は、中間言語データに基づいてラスタライズ処理を行ってビットマップデータを生成する。そして、制御部３０は、生成したビットマップデータを画像形成部１５に出力する。
【００４２】
以上のように構成される画像形成装置１０の制御部３０が行う画像形成処理の処理フローについて、図４を参照しながら説明する。本説明では、制御部３０が取得するデータとして、ページ印刷用制御データにのみ着目している。
【００４３】
制御部３０は、クライアント端末２０から送信されたページ印刷用制御データを、通信部１６を介して取得する。制御部３０は、取得したページ印刷用制御データをスプールデータとしてＲＡＭ１７のスプールバッファに一時的に記憶させる（スプールする）。制御部３０は、スプールデータ、即ちページ印刷用制御データをＲＡＭ１７のスプールバッファから読み出す。そして、制御部３０は、印刷データ解析処理を実行し、読み出したページ印刷用制御データに基づき、１ページを複数ラインのバンドに分割して、この分割されたバンド単位でディスプレイリスト（中間言語データ）を生成し、ＲＡＭ１７に保存する。このとき、制御部３０は、後述するように、ページ印刷用制御データの解析の際、ディスプレイリストにより特定されたオブジェクトをラスタライズしてビットマップに変換するときの処理に要すると予測される時間（ラスタライズ予測時間）をバンド単位で算出し、ＲＡＭ１７に記憶する。そして、制御部３０は、１ページ分のディスプレイリストが完成した時点で、ＲＡＭ１７からディスプレイリストを読み出す。
【００４４】
制御部３０は、読み出したディスプレイリストに基づいてラスタライズ処理を行い、バンド単位に分割したビットマップデータを生成し、ＲＡＭ１７に順次保存する。即ち、制御部３０は、ラスタライズ処理をバンド単位で行う。
【００４５】
制御部３０は、先頭の１バンド分のビットマップデータが完成した時点で、画像形成部１５を起動させて印刷動作を開始させた後、ＲＡＭ１７に保存された１バンド目のビットマップデータを画像形成部１５に出力する。制御部３０は、一方で、２バンド目以降のビットマップデータの生成及びＲＡＭ１７への保存を引き続き行う。画像形成部１５は、出力されたビットマップデータに基づいて、用紙に画像を形成する。制御部３０は、ＲＡＭ１７に保存されたバンド単位のビットマップデータを、所定のタイミング毎に順次画像形成部１５に出力する。
また、制御部３０は、予めラスタライズ時間を予測しているため、ラスタライズ時間を逆算して１バンド分のビットマップデータの完成に先行して画像形成部１５を起動させ、画像形成部１５の起動完了時に１バンド目のビットマップデータに基づく画像形成が行われるようにしてもよい。これにより、画像形成動作開始前に行うモータの回転などの初期化処理によるオーバーヘッドがラスタライズ時間に吸収されて、画像形成時間の短縮が図れるようになる。
【００４６】
次に、画像形成装置１０の制御部３０が行う画像形成処理の具体的な処理内容について図５を用いて説明する。
【００４７】
図５は、画像形成処理を示すフローチャートである。本フローチャートでは、画像形成装置１０がクライアント端末２０から受信するデータとして、ページ印刷用制御データにのみ着目している。
【００４８】
まず、制御部３０は、通信部１６によりクライアント端末２０からページ印刷用制御データを受信し、ＲＡＭ１７にスプールする（ステップＳ１）。そして、制御部３０は、スプールしたページ印刷用制御データを読み出し、印刷データ解析処理を行う（ステップＳ２）。印刷データ解析処理とは、ページ印刷用制御データに含まれるオブジェクトを解析し、ディスプレイリスト（中間言語データ）を生成してＲＡＭ１７に一時保存する処理である。
【００４９】
そして、制御部３０は、１ページ分のディスプレイリストが完成した時点で、このディスプレイリストをＲＡＭ１７から読み出し、ラスタライズ処理を行う（ステップＳ３）。ラスタライズ処理とは、ディスプレイリストに含まれるオブジェクトを解析し、バンド単位に分割したビットマップデータを生成しＲＡＭ１７に一時保存する処理である。
【００５０】
そして、制御部３０は、１バンド分のビットマップデータが完成した時点で、このＲＡＭ１７に保存されたビットマップデータを出力するビットマップデータ出力処理を行う（ステップＳ４）。ビットマップデータ出力処理とは、画像形成部１５にビットマップデータを出力する処理である。
【００５１】
画像形成部１５は、出力されたビットマップデータに基づいて、用紙に画像を形成する。
なお、本実施の形態の説明において、制御部３０によって実行される印刷データ解析処理、ラスタライズ処理及びビットマップデータ出力処理については、説明の便宜により図示された手順に沿って説明しているが、各処理は並行して実行され得るものとする。
【００５２】
次に、印刷データ解析処理（図５のステップＳ２）の具体的な処理内容について図６を用いて説明する。図６は、印刷データ解析処理を示すフローチャートであり、この処理は制御部３０の第１のコア１１１、第２のコア１１２のうちの何れかにより実行される。
【００５３】
図６に示すように、制御部３０は、ＲＡＭ１７から読み出したページ印刷用制御データに含まれるオブジェクトを解析し、１ページを複数ライン（例えば、２８ライン）のバンドに分割し、バンド単位でディスプレイリスト（中間言語データ）を生成する（ステップＳ２０１）。そして、制御部３０は、生成したディスプレイリストをＲＡＭ１７に一時保存する。
【００５４】
そして、制御部３０は、上述したように、オブジェクトの解析とともに、ディスプレイリストに基づいてラスタライズ予測時間を算出する（ステップＳ２０２）。具体的には、制御部３０は、ディスプレイリストに格納されるオブジェクトの種類、及びオブジェクトの面積に基づいてラスタライズ予測時間を算出する。なお、オブジェクトの面積は、ディスプレイリストに記述される座標に基づいて算出される。
このディスプレイリストには、テキストデータ、グラフィックスデータ、拡大処理の発生しないイメージデータ、拡大処理の発生するイメージデータ、回転処理の発生するイメージデータ、グラデーションデータ等の種類がある。
ここで、ＲＯＭ１８には、図１２に示されるように、単位面積（1000pixel）あたりのラスタライズ予測時間がオブジェクトの種類毎に定義づけられたラスタライズ予測時間算出用テーブルが記憶されており、制御部３０は、このラスタライズ予測時間算出用テーブルを参照してオブジェクト毎のラスタライズ予測時間を算出する。
そして、制御部３０は、図１３に示されるような態様で、予測したラスタライズ時間をオブジェクト毎に対応付けてＲＡＭ１７に一時保存する。
なお、ラスタライズ予測時間の算出において、下地とパターンデータとの合成が必要なＲＯＰ（Raster OPeration）処理、透過処理等を考慮してラスタライズ時間の予測精度を高めることもできる。
【００５５】
次に、制御部３０は、１ページ分のページ印刷用制御データに含まれる全てのオブジェクトの解析が完了したか否かを判定する（ステップＳ２０３）。制御部３０は、全てのオブジェクトの解析が完了したと判定すると（ステップＳ２０３：Ｙ）、印刷データ解析処理を終了する。一方、制御部３０は、全てのオブジェクトの解析が完了したと判定しないときは（ステップＳ２０３：Ｎ）、ステップＳ２０１を実行し、１ページ分のページ印刷用制御データに含まれる次のオブジェクトの解析を行う。
【００５６】
次に、制御部３０が第１のコア１１１を駆動して実行されるラスタライズ処理（図５：ステップＳ３）の具体的な処理内容について図７〜図９を参照しながら説明する。図７は、ラスタライズ処理を示すフローチャートである。制御部３０は、１ページを等分割したバンド単位でラスタライズ処理を実行する。
【００５７】
先ず、制御部３０は、読み出した対象のバンドについて、印刷データ解析処理において算出されたオブジェクト毎のラスタライズ予測時間に基づき、対象バンドのラスタライズ予測時間を算出し、算出した対象バンドのラスタライズ予測時間がビットマップデータ出力時間よりも大きいか、すなわち、ビットマップデータ出力時間内にラスタライズが間に合わないか否かを判定する（ステップＳ３０１）。ここで、ビットマップデータ出力時間とは、画像形成部１５が起動して画像形成が開始された場合に、前のバンドのビットマップデータを出力してから次のバンドを出力するまでに許容される時間であって、この時間は、画像形成部１５の動作速度に依存する。画像形成部１５は、いったん画像形成動作を開始すると、一定の動作速度により画像形成を行うため、画像形成部１５の動作速度に従って一定のタイミングにてバンド単位でのビットマップデータの出力が必要となってくる。したがって、この一定のタイミングの間隔であるビットマップデータ出力時間以内に当該バンドのラスタライズが完了できなかった場合は、ラスタライズが間に合わなかったオブジェクトが印刷結果から欠損することになる。あるいは、プリントオーバーランなどのエラーにより、画像形成動作を停止させなければならなくなる。
なお、画像形成部１５の動作速度は、用紙の種類や画像形成設定などにより可変する。例えば、画像形成部１５の動作速度は、用紙を普通紙に設定した場合は最高速度となり、厚紙やＯＨＰ用紙などに設定した場合は、トナーを定着させるのにより多くの熱量を要するため、低速となる。そのため、画像形成部１５の動作速度は、特に用紙の種類に依存する。
【００５８】
制御部３０は、対象バンドのラスタライズ予測時間がビットマップデータ出力時間よりも大きいと判定したときは（ステップＳ３０１：Ｙ）、後述するラスタライズ方法判定処理を実行した後（ステップＳ３０２）、ステップＳ３０３の処理に移行する。一方、制御部３０は、対象バンドのラスタライズ予測時間がビットマップデータ出力時間よりも大きいと判定しないときは（ステップＳ３０１：Ｎ）、ステップＳ３０２の処理を実行することなくステップＳ３０３の処理に移行する。
【００５９】
ここで、図８を参照しながら、ラスタライズ方法判定処理について説明する。
【００６０】
図８に示されるように、制御部３０は、対象バンドのラスタライズ予測時間の１／２がビットマップデータ出力時間よりも大きいか否かを判定する（ステップＳ１３０１）。すなわち、制御部３０は、ＣＰＵ１１の２個のコアにて対象バンドのラスタライズを行うことによっても、ビットマップデータ出力時間以内に間に合わないかを判定する。
【００６１】
制御部３０は、対象バンドのラスタライズ予測時間の１／２がビットマップデータ出力時間よりも大きいと判定しないとき、すなわち、２個のコアにて対象バンドのラスタライズを行えば、ビットマップデータ出力時間に間に合うと判定したときは（ステップＳ１３０１：Ｎ）、当該対象バンドについて、分割ラスタライズするバンドとして、第２のコア１１２の処理キューに登録する（ステップＳ１３０２）。そして、制御部３０は、ステップＳ１３０２の処理を実行した後は、この処理を終了する。ここで、分割ラスタライズとは、１つのバンドを２つに分割し、それぞれをＣＰＵの２個のコアにて並行してラスタライズすることをいう。
【００６２】
また、制御部３０は、ステップＳ１３０１において、対象バンドのラスタライズ予測時間の１／２がビットマップデータ出力時間よりも大きいと判定したとき、すなわち、分割ラスタライズが不可能であると判定したときは（ステップＳ１３０１：Ｙ）、並列ラスタライズを行うことで、当該対象バンドのビットマップデータの出力タイミングに間に合うか否かを判定する（ステップＳ１３０３）。ここで、並列ラスタライズとは、ＣＰＵ１１の２個のコアのうち第１のコア１１１により当該対象バンドよりも前のバンドについてラスタライズ処理を実行している最中に、このラスタライズ処理と並行して第２のコア１１２によって対象バンドのラスタライズを先行して行うことをいう。換言すれば、制御部３０は、第１のコア１１１が１番目のバンドから順次ラスタライズするのに並行して、第２のコア１１２にて先行して対象バンドのラスタライズを行い、当該対象バンドのビットマップデータを予め作成しておくことで、当該対象バンドのビットマップデータを画像形成部１５に出力するタイミングに間に合うか否かを判定する。この場合、並列ラスタライズの対象となるバンドが１ページのうちの後の方のバンドになるに従って、ラスタライズに充てられる時間は増えるので、並列ラスタライズのできる可能性は高くなる。
【００６３】
制御部３０は、並列ラスタライズによれば当該対象バンドのビットマップデータの出力タイミングに間に合うと判定したときは（ステップＳ１３０３：Ｙ）、当該対象バンドを、並列ラスタライズを行うバンドとして、第２のコア１１２の処理キューに登録した後（ステップＳ１３０４）、この処理を終了する。
【００６４】
また、制御部３０は、並列ラスタライズによっても当該対象バンドのビットマップデータの出力タイミングに間に合わないと判定するときは（ステップＳ１３０３：Ｎ）、プレレンダリング処理を行う。即ち、制御部３０は、当該対象バンドについてラスタライズを行ってビットマップデータを生成し（ステップＳ１３０５）、生成したビットマップデータをＲＡＭ１７に保存する（ステップＳ１３０６）。そして、制御部３０は、ビットマップデータを保存した後にこの処理を終了する。このように、対象バンドが分割ラスタライズも並列ラスタライズも不可能である場合には、予めビットマップデータを作成し、ＲＡＭ１７に保存しておくことで、当該対象バンドのビットマップデータを画像形成部１５に出力するタイミングでビットマップデータの出力を確実に行うことができるようになる。
【００６５】
図７に戻り、ラスタライズ処理の説明を続けると、制御部３０は、ステップＳ３０３において、１ページの全バンドについて何れの方法によるラスタライズを行うかについての判定処理が行われたか否かについて判定する（ステップＳ３０３）。制御部３０は、全バンドについて処理が行われたと判定しないときは（ステップＳ３０３：Ｎ）、ステップＳ３０１の処理に移行し、次のバンドを対象バンドとして処理をおこなう。一方、制御部３０は、全バンドについて判定が行われたと判定したときは（ステップＳ３０３：Ｙ）、ラスタライズのための前処理（ステップＳ３０１、Ｓ３０２）を終了してステップＳ３０４に移行する。
【００６６】
以上のようにして、制御部３０は、ラスタライズのための前処理として、１ページの各バンドについてラスタライズの方法を決定する。この処理を行うことにより、対象バンドのラスタライズ予測時間がビットマップデータ出力時間よりも大きい場合でも、複数のコアをラスタライズ処理に充てることで、確実にビットマップデータの出力タイミングに間に合うようにビットマップデータを生成することができ、プリントオーバーランを防止することができるようになる。また、プレレンダリングをできるだけ行わないようにして、画像形成部１５の起動時間の遅延を抑制し、画像形成速度の向上を図ることができる。
【００６７】
ステップＳ３０４では、ラスタライズ方法判定処理において他のコア（すなわち、第１のコア以外のコア）の処理キューに並列ラスタライズを行うバンドが登録されているか否かを判定する（ステップＳ３０４）。
【００６８】
次に、制御部３０は、並列ラスタライズを行うバンドが登録されていると判定したときは（ステップＳ３０４：Ｙ）、ＣＰＵ１１の複数のコアで並列してラスタライズを行わせるため、他のコアに対して処理キューに登録されたバンドについてのラスタライズを依頼する（ステップＳ３０５）。一方、制御部３０は、並列ラスタライズを行うバンドがあると判定しないときは（ステップＳ３０４：Ｎ）、他のコアにラスタライズ以外の他のタスクの処理を依頼する（ステップＳ３０６）。他のタスクとは、例えば、上述した印刷データ解析処理などである。
【００６９】
そして、制御部３０は、ページの１バンド目から順番にビットマップデータを生成するために、以下の処理を行う。すなわち、制御部３０は、ビットマップデータを生成するための領域であるバンドバッファが使用可能となるのを待った後（ステップＳ３０７）、ステップＳ３０８の処理に移行する。ここでバンドバッファは、１バンド分のビットマップデータが書き込まれて一時的に保存される領域であって、当該保存された１バンド分のビットマップデータが画像形成装置１５に出力されると開放されるものである。なお、本実施形態では、２バンド分のバンドバッファを備えており、一方のバンドバッファを使用して先行するバンドのビットマップデータが画像形成装置１５に出力されている間に、他方のバンドバッファを使用して次のバンドのビットマップデータの生成を行うことで、続いて生成されるバンドのラスタライズを早く開始することができ、バンドバッファに空きがなく、ラスタライズが待機されるなどによる画像形成処理の遅延の発生のおそれが低減される。また、ここで３つ以上のバンドバッファを備えてより先行してバンドのラスタライズを進めることも可能である。この場合、バンドバッファの数をあまりにも多くすると使用するメモリ領域が増大するため、他の処理でメモリ不足によるメモリオーバーフローなどを考慮して適切な数のバンドバッファを備えることが好ましい。
【００７０】
次に、対象バンドがラスタライズ済みであるか否かを判定する（ステップＳ３０８）。ここで、当該対象バンドのビットマップデータがラスタライズ方法判定処理においてプレレンダリングされているか、あるいは、後述するように、他のコアによって並列ラスタライズされている場合には、この時点でＲＡＭ１７に当該ビットマップデータが既に保存されていることとなる。制御部３０は、対象バンドがラスタライズ済みであると判定したときは（ステップＳ３０８：Ｙ）、ＲＡＭ１７から生成済みのビットマップデータを読み出してバンドバッファに展開した後（ステップＳ３０９）、画像形成部１５に印字依頼を行う（ステップＳ３１０）。この印字依頼により、後述するビットマップデータ出力処理が実行される。
【００７１】
一方、制御部３０は、対象バンドがラスタライズ済みであると判定しないときは（ステップＳ３０８：Ｎ）、当該対象バンドが、分割ラスタライズを行うバンドであるか否かを判定する（ステップＳ３１１）。制御部３０は、対象バンドが分割ラスタライズを行うバンドであると判定したときは（ステップＳ３１１：Ｙ）、当該バンドについて分割ラスタライズを行うための分割ラスタライズ処理を実行した後（ステップＳ３１２）、ステップＳ３１０の処理を実行する。一方、制御部３０は、対象バンドが分割ラスタライズを行うバンドであると判定しないときは（ステップＳ３１１：Ｎ）、当該バンドについて通常のラスタライズ処理によりビットマップデータをバンドバッファ上に生成した後（ステップＳ３１３）、ステップＳ３１０の処理を実行する。
【００７２】
ここで、分割ラスタライズ処理について、図９を参照しながら説明する。
【００７３】
図９に示されるように、制御部３０は、当該バンドを構成する複数のオブジェクトを所定のオブジェクトの配列順序に従って２つに分割し（ステップＳ１３１１）、分割された複数のオブジェクトのうちの後半部に配列されるオブジェクトのラスタライズを第２のコア１１２に依頼する（ステップＳ１３１２）。なお、複数のオブジェクトの分割は、他のタイミングにて行ってもよく、例えば、分割ラスタライズを行うと判定されたタイミングで行うようにしてもよい。
【００７４】
そして、制御部３０は、分割された複数のオブジェクトのうちの前半部に配列されるオブジェクトのビットマップデータをバンドバッファ上に生成し（ステップＳ１３１３）、後述する第２のコア１１２で生成されたビットマップデータをバンドバッファ上に生成されたビットマップデータに上書して合成した後（ステップＳ１３１４）、この処理を終了する。このように、制御部３０は、第２のコア１１２へのラスタライズの依頼を第１のコア１１１によるラスタライズに先駆けて行うことにより、２つのコアにて並行してラスタライズが可能となる。
【００７５】
ここで、オブジェクトの分割について、図１４を参照しながら説明する。
【００７６】
図１４は、ＲＡＭ１７上に構成されるディスプレイリストの記憶領域を概念的に表している。図１４中、１バンド分のディスプレイリストが記憶されている範囲をＡで示し、第１のコア１１１にてラスタライズされるオブジェクトの範囲をＢで示し、第２のコア１１２にてラスタライズされるオブジェクトの範囲をＣで示している。また、各オブジェクトのディスプレイリストは、ラスタライズされる順に記憶されている。すなわち、ディスプレイリストは、オブジェクトのラスタライズ順序を特定可能に生成されている。
【００７７】
例えば、制御部３０は、図１４に示されるように、当該バンドに１００個のオブジェクトが格納されている場合、１〜ｎ個目のオブジェクト（Ｂ：前半部のオブジェクト群）を第１のコア１１１に割り当て、ｎ＋１〜１００個目までのオブジェクト（Ｃ：後半部のオブジェクト群）を第２のコア１１２に割り当てる。すなわち、制御部３０は、ｎ個目のオブジェクトとｎ＋１個目のオブジェクトの間を分割位置とし、これにより特定された前半部のオブジェクト群と後半部のオブジェクト群とをそれぞれ２つのコアに割り当てる。
【００７８】
このとき、それぞれのコアに割り当てられるオブジェクトの数は、それぞれのコアによるラスタライズの時間が均等となって、それぞれのコアにて同時にラスタライズすることで、当該バンドのラスタライズが最速で実行できるような数に決定される。そのため、制御部３０は、印刷データ解析処理において予測した各オブジェクトのラスタライズ予測時間に基づき、各コアに割り当てられたオブジェクトのラスタライズ予測時間の合計が均等になるように分割する。
【００７９】
ここで、各コアに割り当てられたオブジェクトのラスタライズ予測時間の合計が均等とは、ラスタライズ予測時間の合計が全く等しい場合の他、複数のオブジェクトを分割した際に、ラスタライズ予測時間のそれぞれの合計の差が最小となることをも含んでいる。
【００８０】
なお、複数のオブジェクトを分割する場合において、２以上のオブジェクトが同時に処理される前述したＲＯＰ処理や透過処理等により、２以上のオブジェクトを切り離してラスタライズを行うことができない場合がある。その場合には、それらのオブジェクトが分断されない上で、各コアのラスタライズ予測時間が均等となるように、各コアにオブジェクトをそれぞれ割り当てるようにする。
【００８１】
また、分割ラスタライズ処理によって生成されるビットマップデータについて図１５を用いて説明する。
【００８２】
制御部３０は、１つのバンドにおいて構成される複数のオブジェクトを、上述のようにして、前半部のオブジェクトと後半部のオブジェクトに分割する。
【００８３】
そして、制御部３０は、前半部のオブジェクトを第１のコア１１１にラスタライズさせて図１５（ａ）に示されるような前半部のビットマップデータをバンドバッファ上に生成し、後半部のオブジェクトを第２のコア１１２にラスタライズさせて図１５（ｂ）に示されるような後半部のビットマップデータを所定のワークエリアにて生成する。
【００８４】
そして、制御部３０は、前半部のビットマップデータに後半部のビットマップデータを上書き合成し、図１５（ｃ）に示されるようなビットマップデータを生成する。
【００８５】
図７に戻り、ラスタライズ処理の説明を続けると、制御部３０は、ステップＳ３１４において、ラスタライズ処理の対象となるページにおける全てのバンドについてラスタライズ処理が完了したか否かを判定する（ステップＳ３１４）。制御部３０は、全てのバンドについてラスタライズ処理が完了したと判定したときは（ステップＳ３１４：Ｙ）、当該ページのディスプレイリストを保存していたＲＡＭ１７の記憶領域を開放して（ステップＳ３１５）、この処理を終了する。一方、制御部３０は、全てのバンドについてラスタライズ処理が完了したと判定しないときは（ステップＳ３１４：Ｎ）、ステップＳ３０７の処理を実行し、バンドバッファが使用可能となるのを待って、次のバンドを対象バンドとして処理をおこなう。
【００８６】
次に、制御部３０が第２のコア１１２を駆動して実行されるコア＃２ラスタライズ処理の具体的な処理内容について図１０を用いて説明する。図１０は、コア＃２ラスタライズ処理を示すフローチャートである。このコア＃２ラスタライズ処理は、第１のコア１１１からラスタライズ依頼があったときに実行される処理である。なお、第２のコア１１２が駆動して実行される処理は、第１のコア１１１が駆動して実行される処理と並行して同時に行うことが可能である。また、第２のコア１１２は、第２のコア１１２に割り当てられたラスタライズ処理が完了した後、あるいは、第２のコア１１２にラスタライズ処理を行うバンドが割り当てられていないときは、第１のコア１１１より分割ラスタライズの依頼がない限り、印刷データ解析処理を実行して次ページ以降のページ印刷用制御データの解析等を行う。これにより、ジョブ全体での印刷速度を向上することができ、生産性を高めることができる。
【００８７】
先ず、制御部３０は、第１のコア１１１からバンドの分割ラスタライズの依頼があるか否かを判定する（ステップＳ１３２１）。制御部３０は、分割ラスタライズの依頼があると判定したときは（ステップＳ１３２１：Ｙ）、依頼された当該バンドの後半部のオブジェクトのラスタライズを行ってビットマップデータをＲＡＭ１７の所定のワークエリア上に生成する（ステップＳ１３２２）。なお、ビットマップデータを一時的に保存するワークエリアの保存領域は予め定められていてもよいし、制御状態に応じて変更されるものであってもよい。そして、制御部３０は、分割ラスタライズ処理にて実行される第１のコア１１１による当該バンドの前半部のオブジェクトに基づいて生成されたビットマップデータとの合成を待って（ステップＳ１３２３）、当該後半部のオブジェクトに基づいて生成されたワークエリア上のビットマップデータを削除する（ステップＳ１３２４）。一方、制御部３０は、ステップＳ１３２１において、分割ラスタライズの依頼があると判定しないとき（ステップＳ１３２１：Ｎ）、すなわち、分割ラスタライズの依頼のないとき、あるいは、既に分割ラスタライズが行われた後であるときは、ステップＳ１３２２〜ステップＳ１３２４の処理を実行することなくステップＳ１３２５の処理に移行する。
【００８８】
そして、制御部３０は、上述したラスタライズ方法判定処理において並列ラスタライズ処理キューにバンドの登録があるか否かを判定する（ステップＳ１３２５）。すなわち、制御部３０は、並列ラスタライズの対象となったバンドが存在するか、あるいは、未処理の並列ラスタライズを行うバンドが存在するか否かを判定する。制御部３０は、並列ラスタライズ処理キューにバンドの登録があると判定したときは（ステップＳ１３２５：Ｙ）、第２のコア１１２に並列ラスタライズのバンドとして割り当てられたバンドのラスタライズを行い、ビットマップデータを生成する（ステップＳ１３２６）。そして、制御部３０は、生成されたビットマップデータを、後に画像形成部１５に出力するため、ＲＡＭ１７に保存し（ステップＳ１３２７）、ステップＳ１３２８の処理を実行する。一方、制御部３０は、ステップＳ１３２５において、並列ラスタライズ処理キューにバンドの登録があると判定しないときは（ステップＳ１３２５：Ｎ）、ステップＳ１３２６及びステップＳ１３２７の処理を実行することなく、ステップＳ１３２８の処理に移行する。
【００８９】
そして、制御部３０は、第２のコア１１２に割り当てられた全てのバンドについてラスタライズ処理が完了したか否かを判定する（ステップＳ１３２８）。制御部３０は、割り当てられた全てのバンドについてラスタライズ処理が完了したと判定したときは（ステップＳ１３２８：Ｙ）、この処理を終了する。一方、制御部３０は、依頼のあった全てのバンドについてラスタライズ処理が完了したと判定しないときは（ステップＳ１３２８：Ｎ）、ステップＳ１３２１の処理に移行し、未処理のバンドに対して処理をおこなう。
【００９０】
以上のようにして、第２のコア１１２に依頼されたバンドのラスタライズを行う。なお、第２のコア１１２において並行ラスタライズを行っているときに、分割ラスタライズの依頼があった場合には、並行ラスタライズの作業を中断して分割ラスタライズを優先して行うようにしてもよい。
【００９１】
次に、ビットマップデータ出力処理（図５のステップＳ４）の具体的な処理内容について図１１を用いて説明する。図１１は、ビットマップデータ出力処理を示すフローチャートである。このビットマップデータ出力処理は、図７に示されるラスタライズ処理において印字依頼（ステップＳ３１０）が行われることを契機に実行される処理である。すなわち、ビットマップデータ出力処理は、バンド単位でビットマップデータが生成される毎に実行される処理である。
【００９２】
先ず、制御部３０は、１バンド目のビットマップデータの画像形成部１５への出力か否かを判定する（ステップＳ４０１）。制御部３０は、１バンド目のビットマップデータの画像形成部１５への出力であると判定したときは（ステップＳ４０１：Ｙ）、画像形成部１５を起動して感光体ドラムの回転、感光体ドラムに対して走査を行うポリゴンミラーなどの走査部の駆動、定着器の加熱、及び、用紙の搬送等を行い（ステップＳ４０２）、ステップＳ４０３の処理に移行する。一方、制御部３０は、１バンド目のビットマップデータの画像形成部１５への出力であると判定しないとき、すなわち、２バンド目以降のビットマップデータの画像形成部１５への出力であるときは（ステップＳ４０１：Ｎ）、ステップＳ４０２の処理を実行することなくステップＳ４０３の処理に移行する。
【００９３】
次に、制御部３０は、ＲＡＭ１７のバンドバッファから１バンド分のビットマップデータを読み出し、画像形成部１５に出力する（ステップＳ４０３）。
【００９４】
そして、制御部３０は、画像形成部１５へのビットマップデータの出力が完了すると、ＲＡＭ１７のバンドバッファに保存されている当該バンドのビットマップデータを削除し、このビットマップデータが保存されていた領域を開放して（ステップＳ４０４）、この処理を終了する。
【００９５】
以上のように構成された画像処理装置１０において、制御部３０がページ印刷用制御データを受信してからビットマップデータを画像形成部１５に出力するまでのＣＰＵの処理動作について図１６〜図１８を用いて説明する。
【００９６】
なお、図１６〜図１８において、黒塗りの矢印は、ページ毎のディスプレイリストを作成中であることを表し、その作成時間を矢印の長さにて示している。また、白抜きの矢印は、バンド毎のビットマップデータを生成中であることを表し、その生成する時間を矢印の長さにて示している。また、図１６〜図１８では、１バンド目から５バンド目までを取り上げて説明するが、６バンド目以降についても同様の処理が行われるものとする。
【００９７】
図１６は、２番目のバンドＢ２のラスタライズ予測時間の１／２が、ビットマップデータ出力時間よりも大きく、第２のコア１１２を使用して並列ラスタライズを行っても画像形成部１５へのビットマップデータの出力が間に合わない場合の動作を示している。
【００９８】
図１６に示されるように、制御部３０は、ＣＰＵ１１の第１のコア１１１により、１ページ目のディスプレイリストを作成するとともに、１ページを複数のバンドに分割し、オブジェクト毎のラスタライズ予測時間をバンド毎に算出し、ＲＡＭ１７にそれぞれ保存する。次に、制御部３０は、オブジェクト毎のラスタライズ予測時間に基づいて各バンドのラスタライズ予測時間を算出し、各バンドのラスタライズ予測時間とビットマップデータ出力時間との関係についてそれぞれ判定する。
【００９９】
制御部３０は、１番目のバンドＢ１及び３番目のバンドＢ３から５番目のバンドＢ５については何れも、ラスタライズ予測時間がビットマップデータ出力時間以下であると判定され、各バンドのラスタライズ及び画像形成部１５へのビットマップデータの出力を順次行うこととなる（図７：ステップＳ３０１：Ｎ）。ここで、ｔ１１〜ｔ１５は、ビットマップデータを画像形成部１５に出力するタイミングであり、ｔ１１〜ｔ１５の各タイミング間がビットマップデータ出力時間であり、各タイミング間はそれぞれ同一である。一方、制御部３０は、２番目のバンドＢ２については、ラスタライズ予測時間の１／２がビットマップデータ出力時間よりも大きく、かつ、第２のコア１１２によって当該バンドについて並列ラスタライズを行っても画像形成部１５へのビットマップデータの出力が間に合わないと判定し、プレレンダリングを実行する（図８：ステップＳ１３０５〜Ｓ１３０６）。
【０１００】
制御部３０は、分割ラスタライズ及び並列ラスタライズの対象であるバンドがないため、第２のコア１１２に２ページ目及び３ページ目のディスプレイリストを順次作成させてＲＡＭ１７に保存する（図７：ステップＳ３０６）。
【０１０１】
制御部３０は、第１のコア１１１によってバンドＢ１のラスタライズを実行し（図７：ステップＳ３１３）、バンドＢ１のビットマップデータが生成されたときに、ｔ１０のタイミングで画像形成部１５に印字依頼を行い（図７：ステップＳ３１０）、画像形成部１５を起動させる（図１１：ステップＳ４０２）。
【０１０２】
続いて、制御部３０は、ｔ１１のタイミングでバンドＢ１のビットマップデータを画像形成部１５に出力する（図１１：ステップＳ４０３）。その後、制御部３０は、プレレンダリングにより予め生成されたバンドＢ２のビットマップデータをＲＡＭ１７から読み出し、バンドバッファに保存する（図７：ステップＳ３０９）。
【０１０３】
そして、制御部３０は、ｔ１２のタイミングとなると、バンドバッファに保存されているバンドＢ２のビットマップデータを画像形成部１５に出力する（図１１：ステップＳ４０３）。一方で、制御部３０は、バンドＢ１のビットマップデータの生成に使用されたバンドバッファが開放されると（図１１：ステップＳ４０４）、第１のコア１１１によってバンドＢ３のラスタライズを開始する（図７：ステップＳ３１３）。
【０１０４】
その後、制御部３０は、ｔ１３のタイミングでバンドＢ３のビットマップデータを画像形成部１５に出力する。以下、バンドＢ４以降についても同様に行う。
【０１０５】
以上のように、１ページを構成する複数のバンドのうちの一部のバンドのラスタライズ予測時間がビットマップデータ出力時間よりも大きいため、画像形成部１５へのビットマップデータの出力が間に合わなくなる場合には、プレレンダリングを行ってビットマップデータの出力が間に合わないバンドについて予めラスタライズしておくことで、プリントオーバーランの発生を抑制することができる。また、通常のラスタライズ、分割ラスタライズ及び並列ラスタライズを行っても画像形成部１５へのビットマップデータの出力が間に合わないバンドがある場合に限り、当該バンドについてプレレンダリングを行うことにより、画像形成部１５の動作開始が遅れることによる画像形成速度の低下を最小限に抑えることが可能となる。
【０１０６】
図１７は、５番目のバンドＢ５のラスタライズ予測時間の１／２が、ビットマップデータ出力時間よりも大きいが、第２のコア１１２を使用して並列ラスタライズを行えば画像形成部１５へのビットマップデータの転送を行うことができる場合の動作を示している。
【０１０７】
図１７に示されるように、制御部３０は、ＣＰＵ１１の第１のコア１１１により、１ページ目のディスプレイリストを作成するとともに、１ページを複数のバンドに分割し、オブジェクト毎のラスタライズ予測時間をバンド毎に算出し、ＲＡＭ１７にそれぞれ保存する。次に、制御部３０は、オブジェクト毎のラスタライズ予測時間に基づいて各バンドのラスタライズ予測時間を算出し、各バンドのラスタライズ予測時間とビットマップデータ出力時間との関係についてそれぞれ判定する。
【０１０８】
制御部３０は、１番目のバンドＢ１から４番目のバンドＢ４については何れも、ラスタライズ予測時間がビットマップデータ出力時間以下であると判定され、各バンドのラスタライズ及び画像形成部１５へのビットマップデータの出力を順次行うこととなる（図７：ステップＳ３０１：Ｎ）。ここで、ｔ２１〜ｔ２５の各タイミング間はそれぞれ同一である。一方、制御部３０は、５番目のバンドＢ５については、ラスタライズ予測時間の１／２がビットマップデータ出力時間よりも大きいが、第２のコア１１２によって当該バンドについて並列ラスタライズを行えば画像形成部１５へのビットマップデータの出力が間に合うと判定し、バンド５Ｂを、並列ラスタライズを行うバンドとして登録する（図８：ステップＳ１３０４）。
【０１０９】
制御部３０は、並列ラスタライズの対象であるバンドが登録されているため、第２のコア１１２にバンドＢ５のラスタライズを依頼する（図７：ステップＳ３０５）。第２のコア１１２は、これを受けて、バンドＢ５のラスタライズを実行する（図１０：ステップＳ１３２６）。
【０１１０】
一方で、制御部３０は、第２のコア１１２による並列ラスタライズと並行して、第１のコア１１１によってバンドＢ１のラスタライズを実行し（図７：ステップＳ３１３）、バンドＢ１のビットマップデータが生成されたときに、ｔ２０のタイミングで画像形成部１５に印字依頼を行い（図７：ステップＳ３１０）、画像形成部１５を起動させる（図１１：ステップＳ３０９）。
【０１１１】
制御部３０は、ｔ２１のタイミングでバンドＢ１のビットマップデータを画像形成部１５に出力するとともに（図１１：ステップＳ４０３）、第１のコア１１１によってバンドＢ２のラスタライズを開始する（図７：ステップＳ３１３）。
【０１１２】
制御部３０は、ｔ２２のタイミングとなると、バンドＢ２のビットマップデータを画像形成部１５に出力する。以下、バンドＢ３及びバンドＢ４についても同様に行う。
【０１１３】
一方で、制御部３０は、ｔ２２の経過後、第２のコア１１２によるバンドＢ５のラスタライズが完了してビットマップデータが生成されると、そのビットマップデータをＲＡＭ１７に保存する（図１０：ステップＳ１３２７）。その後、制御部３０は、分割ラスタライズ及び並列ラスタライズの対象であるバンドがないので、第２のコア１１２に２ページ目及び３ページ目のディスプレイリストを順次作成させてそれぞれＲＡＭ１７に保存する。
【０１１４】
そして、制御部３０は、ｔ２４のタイミングとなってバンドＢ４のビットマップデータの画像形成部１５への出力が行われた後、並列ラスタライズにより既に生成されてＲＡＭ１７に保存されているバンドＢ５のビットマップデータをＲＡＭ１７から読み出し、バンドバッファに保存する（図７：ステップＳ３０９）。
【０１１５】
その後、制御部３０は、ｔ２５のタイミングとなると、バンドバッファに保存されているバンドＢ５のビットマップデータを画像形成部１５に出力する（図１１：ステップＳ４０３）。
【０１１６】
以上のように、１つのバンドのラスタライズ予測時間がビットマップデータ出力時間よりも大きいが、第１のコア１１１のラスタライズ処理に並行して第２のコア１１２に予めラスタライズさせることにより画像形成部１５へのビットマップデータの出力が間に合う場合には、第２のコア１１２に並列ラスタライズを行わせて当該バンドについて予めラスタライズしておくことで、プレレンダリングを行う場合と比較して早く画像形成部１５を起動させることができ、画像形成の高速化が可能となる。
【０１１７】
図１８は、５番目のバンドＢ５のラスタライズ予測時間がビットマップデータ出力時間よりも大きいが、ラスタライズ予測時間の１／２がビットマップデータ出力時間以下である場合の動作を示している。
【０１１８】
図１８に示されるように、制御部３０は、ＣＰＵ１１の第１のコア１１１により、１ページ目のディスプレイリストを作成するとともに、１ページを複数のバンドに分割し、オブジェクト毎のラスタライズ予測時間をバンド毎に算出し、ＲＡＭ１７にそれぞれ保存する。次に、制御部３０は、オブジェクト毎のラスタライズ予測時間に基づいて各バンドのラスタライズ予測時間を算出し、各バンドのラスタライズ予測時間とビットマップデータ出力時間との関係についてそれぞれ判定する。
【０１１９】
制御部３０は、１番目のバンドＢ１から４番目のバンドＢ４については何れも、ラスタライズ予測時間がビットマップデータ出力時間以下であると判定され、各バンドのラスタライズ及び画像形成部１５へのビットマップデータの出力を順次行うこととなる（図７：ステップＳ３０１：Ｎ）。ここで、ｔ３１〜ｔ３５の各タイミング間はそれぞれ同一である。一方、制御部３０は、５番目のバンドＢ５については、ラスタライズ予測時間がビットマップデータ出力時間よりも大きいが、ラスタライズ予測時間の１／２がビットマップデータ出力時間以下であると判定し、バンドＢ５を、分割ラスタライズを行うバンドとして登録する（図８：ステップＳ１３０２）。
【０１２０】
制御部３０は、並列ラスタライズの対象であるバンドがないため、分割ラスタライズの依頼があるまで、第２のコア１１２に２ページ目及び３ページ目のディスプレイリストを順次作成させてＲＡＭ１７に保存する（図７：ステップＳ３０６）。
【０１２１】
そして、制御部３０は、第１のコア１１１によってバンドＢ１のラスタライズを実行し（図７：ステップＳ３１３）、バンドＢ１のビットマップデータが生成されたときに、ｔ３０のタイミングで画像形成部１５に印字依頼を行い（図７：ステップＳ３１０）、画像形成部１５を起動させる（図１１：ステップＳ４０２）。
【０１２２】
続いて、制御部３０は、ｔ３１のタイミングでバンドＢ１のビットマップデータを画像形成部１５に出力するとともに（図１１：ステップＳ４０３）、第１のコア１１１によってバンドＢ２のラスタライズを開始する（図７：ステップＳ３１３）。
【０１２３】
その後、制御部３０は、ｔ３２のタイミングでバンドＢ２のビットマップデータを画像形成部１５に出力する。以下、バンドＢ３及びバンドＢ４についても同様に行う。
【０１２４】
そして、制御部３０は、ｔ３４のタイミングとなってバンドＢ４のビットマップデータを画像形成部１５に出力すると、バンドＢ５が分割ラスタライズとして登録されているので、当該バンドを構成する複数のオブジェクトを２つに分割する（図９：ステップＳ１３１１）。そして、制御部３０は、分割した２つのオブジェクトのうち、後半部のオブジェクトのラスタライズを第２のコア１１２に依頼する（図９：ステップＳ１３１２）。第２のコア１１２は、これを受けて、バンドＢ５の後半部のオブジェクトのラスタライズを実行する（図１０：ステップＳ１３２２）。そして、制御部３０は、分割した２つのオブジェクトのうち、前半部のオブジェクトを第１のコア１１１によってラスタライズさせて前半部のビットマップデータを生成する（図９：ステップＳ１３１３）。その後、制御部３０は、前半部のビットマップデータに後半部のビットマップデータを合成した後（図９：ステップＳ１３１４）、ｔ３５のタイミングでバンドＢ５の合成後のビットマップデータを画像形成部１５に出力する。
【０１２５】
以上のように、１つのバンドのラスタライズ予測時間がビットマップデータ出力時間よりも大きいが、ラスタライズ予測時間の１／２がビットマップデータ出力時間以下である場合には、当該バンドを構成するオブジェクトを２つに分割し、２つのコアにそれぞれ同時にラスタライズさせることにより、並列ラスタライズを行う場合と比較して、第２のコア１１２に対して印刷データの解析処理を多く行わせることができるなど、処理効率が向上し、より高速な画像形成が可能となる。
【０１２６】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。第２の実施形態では、図１９に示されるように、画像形成装置１０の制御部３０において用いられるＣＰＵ１１として、コアを４つ備えたＣＰＵ１１が用いられている点が第１の実施形態の画像形成装置１０と異なっている。なお、その他の構成については、第１の実施形態における画像形成装置１０と同様であるため、対応する構成には同一の符号を付し、その説明を省略する。また、第３のコア１１３及び第４のコア１１４にて実行されるラスタライズ処理については、第１の実施形態におけるコア＃２ラスタライズ処理と同様であるため、その説明を省略する。
【０１２７】
次に、第２の実施形態において実行されるラスタライズ方法判定処理について、図２０を参照しながら説明する。
【０１２８】
制御部３０は、図７に示されるラスタライズ処理におけるラスタライズ方法判定処理が実行されると、図２０に示されるように、対象バンドのラスタライズ予測時間の１／２がビットマップデータ出力時間よりも大きいか否かを判定する（ステップＳ２３０１）。制御部３０は、対象バンドのラスタライズ予測時間の１／２がビットマップデータ出力時間よりも大きいと判定しないときは（ステップＳ２３０１：Ｎ）、当該対象バンドについて、１つのバンドを２つに分割し、それぞれを第１のコア１１１と第２のコア１１２の２個のコアにて分割ラスタライズするバンドとして、第２のコア１１２の処理キューに登録する（ステップＳ２３０２）。なお、２つのコアにて分割ラスタライズする場合において、使用するコアを第１のコア１１１及び第２のコア１１２に固定せず、４つのコアから何れか２つを選択して使用するようにしてもよい。そして、制御部３０は、ステップＳ２３０２の処理が実行されると、この処理を終了する。
【０１２９】
また、制御部３０は、ステップＳ２３０１において、対象バンドのラスタライズ予測時間の１／２がビットマップデータ出力時間よりも大きいと判定したときは（ステップＳ２３０１：Ｙ）、対象バンドのラスタライズ予測時間の１／３がビットマップデータ出力時間よりも大きいか否かを判定する（ステップＳ２３０３）。すなわち、制御部３０は、ＣＰＵ１１の３個のコアにて対象バンドのラスタライズを行うことによっても、ビットマップデータ出力時間以内に間に合わないかを判定する。
【０１３０】
制御部３０は、対象バンドのラスタライズ予測時間の１／３がビットマップデータ出力時間よりも大きいと判定しないとき、すなわち、３個のコアにて対象バンドのラスタライズを行えば、ビットマップデータ出力時間に間に合うと判定したときは（ステップＳ２３０３：Ｎ）、当該対象バンドについて、１つのバンドを３つに分割し、それぞれを第１のコア１１１、第２のコア１１２及び第３のコア１１３の３個のコアにて分割ラスタライズするバンドとして、第２のコア１１２及び第３のコア１１３の処理キューにそれぞれ登録する（ステップＳ２３０４）。なお、３つのコアにて分割ラスタライズする場合において、使用するコアを第１のコア１１１、第２のコア１１２及び第３のコア１１３に固定せず、４つのコアから何れか３つを選択して使用するようにしてもよい。そして、制御部３０は、ステップＳ２３０４の処理が実行されると、この処理を終了する。
【０１３１】
また、制御部３０は、ステップＳ２３０３において、対象バンドのラスタライズ予測時間の１／３がビットマップデータ出力時間よりも大きいと判定したときは（ステップＳ２３０３：Ｙ）、対象バンドのラスタライズ予測時間の１／４がビットマップデータ出力時間よりも大きいか否かを判定する（ステップＳ２３０５）。すなわち、制御部３０は、ＣＰＵ１１の４個のコアにて対象バンドのラスタライズを行うことによっても、ビットマップデータ出力時間以内に間に合わないかを判定する。
【０１３２】
制御部３０は、対象バンドのラスタライズ予測時間の１／４がビットマップデータ出力時間よりも大きいと判定しないとき、すなわち、４個のコアにて対象バンドのラスタライズを行えば、ビットマップデータ出力時間に間に合うと判定したときは（ステップＳ２３０５：Ｎ）、当該対象バンドについて、１つのバンドを４つに分割し、それぞれを第１のコア１１１、第２のコア１１２、第３のコア１１３及び第４のコア１１４の４個のコアにて分割ラスタライズするバンドとして、第２のコア１１２、第３のコア１１３及び第４のコア１１４の処理キューにそれぞれ登録し（ステップＳ２３０６）、この処理を終了する。
【０１３３】
また、制御部３０は、ステップＳ２３０５において、対象バンドのラスタライズ予測時間の１／４がビットマップデータ出力時間よりも大きいと判定したときは（ステップＳ２３０５：Ｙ）、ＣＰＵ１１の４個のコアのうち第１のコア１１１によるラスタライズ処理に並行して第２のコア１１２により並行ラスタライズを行うことで、当該対象バンドのビットマップデータの出力タイミングに間に合うか否かを判定する（ステップＳ２３０７）。
【０１３４】
制御部３０は、第２のコア１１２での並列ラスタライズによれば、当該対象バンドのビットマップデータの出力タイミングに間に合うと判定したときは（ステップＳ２３０７：Ｙ）、当該対象バンドを、並列ラスタライズを行うバンドとして、第２のコア１１２の処理キューに登録した後（ステップＳ２３０８）、この処理を終了する。
【０１３５】
また、制御部３０は、第２のコア１１２での並列ラスタライズによれば、当該対象バンドのビットマップデータの出力タイミングに間に合うと判定しないときは（ステップＳ２３０７：Ｎ）、第１のコア１１１によるラスタライズ処理に並行して第３のコア１１３により並行ラスタライズを行うことで、当該対象バンドのビットマップデータの出力タイミングに間に合うか否かを判定する（ステップＳ２３０９）。
【０１３６】
制御部３０は、第３のコア１１３での並列ラスタライズによれば、当該対象バンドのビットマップデータの出力タイミングに間に合うと判定したときは（ステップＳ２３０９：Ｙ）、当該対象バンドを、並列ラスタライズを行うバンドとして、第３のコア１１３の処理キューに登録した後（ステップＳ２３１０）、この処理を終了する。
【０１３７】
また、制御部３０は、第３のコア１１３での並列ラスタライズによれば、当該対象バンドのビットマップデータの出力タイミングに間に合うと判定しないときは（ステップＳ２３０９：Ｎ）、第１のコア１１１によるラスタライズ処理に並行して第４のコア１１４により並行ラスタライズを行うことで、当該対象バンドのビットマップデータの出力タイミングに間に合うか否かを判定する（ステップＳ２３１１）。
【０１３８】
制御部３０は、第４のコア１１４での並列ラスタライズによれば、当該対象バンドのビットマップデータの出力タイミングに間に合うと判定したときは（ステップＳ２３１１：Ｙ）、当該対象バンドを、並列ラスタライズを行うバンドとして、第４のコア１１４の処理キューに登録した後（ステップＳ２３１２）、この処理を終了する。
【０１３９】
また、制御部３０は、第４のコア１１４での並列ラスタライズによれば、当該対象バンドのビットマップデータの出力タイミングに間に合うと判定しないときは（ステップＳ２３１１：Ｎ）、当該対象バンドについてプレレンダリングを行う（ステップＳ２３１３）。そして、制御部３０は、生成したビットマップデータをＲＡＭ１７に保存した後（ステップＳ２３１４）、この処理を終了する。
【０１４０】
このように、第２の実施形態では、コアを４つ有するＣＰＵ１１が用いられているので、バンドのラスタライズ時間が大きくなっても分割ラスタライズされる機会が増大するので、プレレンダリングの実行をさらに抑制することができ、効率のよいビットマップデータの生成が行われ、印刷速度が向上する。
【０１４１】
次に、第２の実施形態における分割ラスタライズ処理について、図２１を参照しながら説明する。
【０１４２】
制御部３０は、図７に示されるラスタライズ処理における分割ラスタライズ処理が実行されると、図２１に示されるように、当該バンドについて２つのコアで分割ラスタライズを行うか否か、すなわち、第１のコア１１１及び第２のコア１１２にて分割ラスタライズを行うか否かについて判定する（ステップＳ２３２１）。
【０１４３】
制御部３０は、２つのコアで分割ラスタライズを行うと判定したときは（ステップＳ２３２１：Ｙ）、当該バンドを構成する複数のオブジェクトを所定のオブジェクトの配列順序に従って２つに分割し（ステップＳ２３２２）、分割された複数のオブジェクトのうちの後半部に配列されるオブジェクトのラスタライズを第２のコア１１２に依頼する（ステップＳ２３２３）。
【０１４４】
そして、制御部３０は、分割された複数のオブジェクトのうちの前半部に配列されるオブジェクトのビットマップデータをバンドバッファ上に生成し（ステップＳ２３２４）、第２のコア１１２で生成されたビットマップデータをバンドバッファ上に生成されたビットマップデータに上書して合成するのを待って（ステップＳ２３２５）、第２のコア１１２で生成されたワークエリア上のビットマップデータを削除し（ステップＳ２３２５ａ）、この処理を終了する。
【０１４５】
また、制御部３０は、ステップＳ２３２１において、２つのコアで分割ラスタライズを行うと判定しないときは（ステップＳ２３２１：Ｎ）、当該バンドについて３つのコアで分割ラスタライズを行うか否か、すなわち、第１のコア１１１、第２のコア１１２及び第３のコア１１３にて分割ラスタライズを行うか否かについて判定する（ステップＳ２３２６）。
【０１４６】
制御部３０は、３つのコアで分割ラスタライズを行うと判定したときは（ステップＳ２３２６：Ｙ）、当該バンドを構成する複数のオブジェクトを所定のオブジェクトの配列順序に従って３つに分割し（ステップＳ２３２７）、３つに分割された複数のオブジェクトのうちの２番目に配列されるオブジェクトのラスタライズを第２のコア１１２に依頼する（ステップＳ２３２８）。また、制御部３０は、３つに分割された複数のオブジェクトのうちの３番目に配列されるオブジェクトのラスタライズを第３のコア１１３に依頼する（ステップＳ２３２９）。
【０１４７】
そして、制御部３０は、３つに分割された複数のオブジェクトのうちの１番目に配列されるオブジェクトのビットマップデータをバンドバッファ上に生成し（ステップＳ２３３０）、第２のコア１１２で生成されたビットマップデータ、第３のコア１１３で生成されたビットマップデータの順にそれぞれバンドバッファ上に生成されたビットマップデータに上書して合成するのを待って（ステップＳ２３３１）、第２のコア１１２及び第３のコア１１３で生成されたワークエリア上のビットマップデータを削除し（ステップＳ２３３１ａ）、この処理を終了する。
【０１４８】
また、制御部３０は、ステップＳ２３２６において、３つのコアで分割ラスタライズを行うと判定しないときは（ステップＳ２３２６：Ｎ）、４つのコアで分割ラスタライズを行うことが決定され、当該バンドを構成する複数のオブジェクトを所定のオブジェクトの配列順序に従って４つに分割し（ステップＳ２３３２）、４つに分割された複数のオブジェクトのうちの２番目に配列されるオブジェクトのラスタライズを第２のコア１１２に依頼する（ステップＳ２３３３）。また、制御部３０は、４つに分割された複数のオブジェクトのうちの３番目に配列されるオブジェクトのラスタライズを第３のコア１１３に依頼する（ステップＳ２３３４）。また、制御部３０は、４つに分割された複数のオブジェクトのうちの４番目に配列されるオブジェクトのラスタライズを第４のコア１１４に依頼する（ステップＳ２３３５）。
【０１４９】
そして、制御部３０は、４つに分割された複数のオブジェクトのうちの１番目に配列されるオブジェクトのビットマップデータをバンドバッファ上に生成し（ステップＳ２３３６）、第２のコア１１２で生成されたビットマップデータ、第３のコア１１３で生成されたビットマップデータ、第４のコア１１４で生成されたビットマップデータの順にそれぞれバンドバッファ上に生成されたビットマップデータに上書して合成するのを待って（ステップＳ２３３７）、第２のコア１１２、第３のコア１１３、及び第４のコア１１４で生成されたワークエリア上のビットマップデータを削除し（ステップＳ２３３７ａ）、この処理を終了する。
【０１５０】
このように、第２の実施形態によれば、４個のコアを使用しても第１の実施形態と同様に分割ラスタライズを行うことができる。
【０１５１】
以上説明したように、第１及び第２の実施の形態によれば、制御部３０は、複数のコア１１１，１１２（１１３，１１４）を含んでいる。そして、制御部３０は、クライアント端末２０より入力されたページ印刷用制御データに基づいてページを所定のライン数で構成されるバンド単位でラスタライズ処理を行うことにより印刷データを生成する。そして、制御部３０は、これら生成された印刷データを一定の出力間隔で規定された出力タイミングでバンド毎に順次出力する。そして、制御部３０は、ページ内の何れのバンドについても印刷データの生成が出力間隔内に完了すると判断したときには、各バンドのラスタライズ処理を複数のコア１１１，１１２（１１３，１１４）のうちの何れか一つに担当させ、当該担当のコア１１１，１１２（１１３，１１４）により各バンドに対するラスタライズ処理を先頭のバンドから一定の出力間隔で開始して印刷データを生成して、当該生成した印刷データを当該バンドに対応付けられた出力タイミングで出力する。そして、制御部３０は、ページ内の何れかのバンドに関し当該バンドについて印刷データの生成が出力間隔内に完了しないと判断したときには、当該バンドの印刷データの生成が当該バンドに対応付けられた出力タイミングに間に合うように、複数のコア１１１，１１２（１１３，１１４）のうちの二以上により一或いは複数のバンドに関するラスタライズ処理を並行して実行し印刷データを生成し、当該生成した印刷データを当該バンドに対応付けられた出力タイミングで出力する。そして、画像形成部１５は、制御部３０より出力された印刷データに基づいて画像を形成する。その結果、１つのコアによれば所定の出力間隔でバンド単位での印刷データの出力ができない場合でも、２つ以上のコアによって印刷データの生成を並行して行わせることにより、所定の出力間隔で印刷データの出力が間に合わなくなることが防止できる。また、メモリ領域を必要以上に大きくすることなく実現が可能であり、メモリ領域の増大及び画像形成速度の低下を抑制して、処理効率よくオーバーランを回避することができる。
【０１５２】
また、第１及び第２の実施の形態によれば、制御部３０は、ページ内の何れかのバンドに関し、複数のコア１１１，１１２（１１３，１１４）のうちの二以上により当該バンドについての印刷データを並行して同時に生成しても出力間隔内で完了しないと判断したときには、当該バンドについての印刷データの生成を、先頭のバンドに関するラスタライズ処理の前に行う。その結果、２つ以上のコアによって印刷データの生成を並行して同時に行わせても印刷データの出力が間に合わない場合には、事前に当該バンドの印刷データを作成しておくことで、オーバーランの回避をより確実に行わせることができる。
【０１５３】
また、第１及び第２の実施の形態によれば、制御部３０は、ページ印刷用の制御データに基づき、印刷データを生成するための処理時間をバンド毎に求め、処理時間が出力間隔よりも大きい場合に、印刷データの生成が出力間隔内に完了しないと判断する。その結果、バンド毎の印刷データ生成処理時間を求めることで、印刷データの生成が間に合うか否かについて容易に判断することができる。
【０１５４】
また、第１及び第２の実施の形態によれば、制御部３０は、印刷データの生成が出力間隔内に完了しないと判断したときに、複数のコア１１１，１１２（１１３，１１４）のうち印刷データの生成が可能なものを判定する。そして、制御部３０は、判定された複数のコア１１１，１１２（１１３，１１４）から少なくとも二以上により、一或いは複数のバンドに関するラスタライズ処理を並行して実行し印刷データを生成する。その結果、印刷データの生成に使用するコアを効率よく選択することができるので、２以上のコアによる印刷データの並行生成に際し、処理効率の向上を図ることができる。
【０１５５】
また、第１及び第２の実施の形態によれば、制御部３０は、印刷データの生成が出力間隔内に完了しないと判断したときには、一のコア１１１，１１２（１１３，１１４）における他のバンドの印刷データの生成中に、印刷データの生成が出力間隔内に完了しないと判断されたバンドについて、他の一以上のコア１１１，１１２（１１３，１１４）によって並列して印刷データの生成を実行可能とする。その結果、印刷データの生成が間に合わないと判断されたバンドについて、印刷データの出力タイミングとなるまでに余裕を持って印刷データの生成を行うことができるとともに、画像形成動作を開始させた後に印刷データの生成が可能であるので、速やかに画像形成動作を開始させることができ、画像形成速度を向上させることができる。
【０１５６】
なお、第１及び第２の実施の形態における記述は、本発明に係る画像形成装置の一例であり、これに限定されるものではない。画像形成装置を構成する各機能部の細部構成及び細部動作に関しても適宜変更可能である。
【０１５７】
また、第１及び第２の実施の形態では、１ページにおいて、複数のバンドのうちの１つのバンドについて分割ラスタライズ、並列ラスタライズ又はプレレンダリングを行う例を説明したが、複数のバンドのうちの２以上のバンドについて分割ラスタライズ、並列ラスタライズ又はプレレンダリングを行うことももちろん可能である。
【０１５８】
また、第１及び第２の実施の形態では、複数のコアによる同時ラスタライズの方法として、分割ラスタライズと並列ラスタライズを行うものとしたが、何れか一方のみ行うものであってもよい。
【０１５９】
また、第１及び第２の実施の形態では、バンド毎にラスタライズ予想時間を算出し、これに基づいて、ビットマップデータの出力タイミングに間に合うか否かを判定するようにしているが、他の方法によって判定してもよく、例えば、バンド毎のデータの大きさに基づいて判定するようにしてもよい。
【０１６０】
また、第１及び第２の実施の形態では、通常のラスタライズ処理については、第１のコア１１１にて行うようにしたが、他のコアによって行うようにしてもよい。また、バンド毎にラスタライズを行うコアを変更するようにしてもよく、例えば、２つのコアでラスタライズを行う場合には、１バンド毎、交互にラスタライズを行うコアを変更するようにしてもよい。また、一のコアにてラスタライズを行っているときに、他のコアにてディスプレイリストを作成させている場合において、ディスプレイリストを作成したコアにてラスタライズを行うようにしてもよい。
【０１６１】
また、第１及び第２の実施の形態では、印刷データ、ディスプレイリスト及びビットマップデータをＲＡＭ１７に保存したが、ＨＤＤ１９やその他の記憶媒体に保存するようにしてもよい。
【０１６２】
また、第１及び第２の実施の形態において、画像形成の途中に用紙詰まりによる用紙ジャムや、不適切な用紙を装填していたことによる用紙ミスマッチなどのエラーが発生した場合にこれを救済するために、１ページ分の画像形成が完了して用紙が排出されるまで、生成した１ページ分のビットマップデータを別の領域にコピーするようにしてもよい。この場合、エラーが発生したページについて、再度画像形成を行わせるか否かについて、例えば、操作部１２や、クライアント端末２０によって選択することができるようにしてもよい。
【０１６３】
また、第１及び第２の実施の形態では、本発明に係るプログラムのコンピュータ読み取り可能な媒体としてハードディスクや半導体の不揮発性メモリ等を使用した例を開示したが、この例に限定されない。その他のコンピュータ読み取り可能な媒体として、ＣＤ−ＲＯＭ等の可搬型記録媒体を適用することが可能である。また、本発明に係るプログラムのデータを通信回線を介して提供する媒体として、キャリアウェーブ（搬送波）も適用される。
【符号の説明】
【０１６４】
１００  画像形成システム
１０  画像形成装置
１１  ＣＰＵ
１１１  第１のコア
１１２  第２のコア
１５  画像形成部
１６  通信部
１７  ＲＡＭ
１８  ＲＯＭ
３０  制御部
１１３  第３のコア
１１４  第４のコア
【図１】
2011148242.tif 000003
【図２】
2011148242.tif 000004
【図３】
2011148242.tif 000005
【図４】
2011148242.tif 000006
【図５】
2011148242.tif 000007
【図６】
2011148242.tif 000008
【図７】
2011148242.tif 000009
【図８】
2011148242.tif 000010
【図９】
2011148242.tif 000011
【図１０】
2011148242.tif 000012
【図１１】
2011148242.tif 000013
【図１２】
2011148242.tif 000014
【図１３】
2011148242.tif 000015
【図１４】
2011148242.tif 000016
【図１５】
2011148242.tif 000017
【図１６】
2011148242.tif 000018
【図１７】
2011148242.tif 000019
【図１８】
2011148242.tif 000020
【図１９】
2011148242.tif 000021
【図２０】
2011148242.tif 000022
【図２１】
2011148242.tif 000023
【図２２】
2011148242.tif 000024