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