説明

印刷データ生成装置、画像形成装置及びプログラム

【課題】複数の演算処理部を用いて簡素な処理で印刷データの生成速度を向上させる。
【解決手段】制御部30は、複数のコア111〜114のうちの1つを含んで構成される。そして、制御部30は、ページ印刷用制御データを入力として複数のオブジェクトのディスプレイリストを、該オブジェクトのビットマップデータの生成順序を特定可能に生成する。そして、制御部30は、複数のオブジェクトのビットマップデータの生成順序に従って複数のオブジェクトの分割位置を決定する。そして、制御部30は、決定した分割位置にて複数のオブジェクトを分割して複数のコア111〜114のそれぞれに割り当てる。そして、制御部30は、ディスプレイリストに基づき、複数のコア111〜114によって、それぞれ割り当てられたオブジェクトの分割ビットマップデータを生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、印刷データ生成装置、画像形成装置及びプログラムに関する。
【背景技術】
【0002】
PC(Personal Computer)等の外部装置で作成されたPS(PostScript:ポストスクリプト(登録商標))データやPDF(Portable Document Format)データ等の印刷データを、LAN等のネットワークを介して受信し、受信したデータを一旦中間形式のデータ(中間データ)に変換し、この中間データをラスタライズしてビットマップデータを生成し、印刷を行うプリンタ、MFP(Multi Function Peripheral)等の画像処理装置が普及している。
【0003】
このような画像処理装置においては、印刷速度の向上を図るため、複数のプロセッサを備えている。そして、この画像処理装置は、ソースファイルに基づいてコマンド・ストリームを生成し、このコマンド・ストリームにおいて関連するコマンドを塊をなすコマンド・シーケンスとして取り扱う。そして、コマンド・シーケンス単位で複数のプロセッサの何れかにラスタライズ処理させるようにしている(特許文献1、2)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平9−114610号公報
【特許文献2】特開平9−114611号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記各特許文献に記載された画像処理装置は、画像の重ね合わせ順を考慮してプロセッサなどの演算処理部へのコマンド・シーケンスの分配を行い、ラスタライズした画像を画像の重ね合わせ順で回収してこれらの合成を行っているので、画像の重ね合わせ順を判断するための複雑な処理が必要で処理負荷が大きいという問題があった。
【0006】
本発明の課題は、複数の演算処理部を用いて簡素な処理で印刷データの生成速度を向上させることである。
【課題を解決するための手段】
【0007】
以上の課題を解決するため、請求項1に記載の発明は、印刷データ生成装置において、
複数の演算処理部と、
前記複数の演算処理部のうちの1つを含んで構成され、ページ印刷用の制御データを入力として複数のオブジェクトの中間データを、該オブジェクトの印刷データの生成順序を特定可能に生成し、前記複数のオブジェクトの印刷データの生成順序に従って前記複数のオブジェクトの分割位置を決定し、該決定した分割位置にて前記複数のオブジェクトを分割して前記複数の演算処理部のそれぞれに割り当て、前記中間データに基づき、前記複数の演算処理部によって、それぞれ割り当てられたオブジェクトの印刷データである分割印刷データを生成し、該生成された複数の分割印刷データを重合して合成印刷データを生成する制御部と、を備えたことを特徴とする。
【0008】
請求項2に記載の発明は、請求項1に記載の印刷データ生成装置において、
前記制御部は、前記複数の演算処理部のうち、印刷データの生成が可能である演算処理部の数を判定し、該判定結果に対応する数だけ前記複数のオブジェクトの分割位置を決定することを特徴とする。
【0009】
請求項3に記載の発明は、請求項1又は2に記載の印刷データ生成装置において、
前記制御部は、前記中間データを生成するときに、前記中間データに基づいて印刷データを生成するための処理時間を求め、該求められた処理時間に基づいて前記複数のオブジェクトの分割を行うことを特徴とする。
【0010】
請求項4に記載の発明は、請求項3に記載の印刷データ生成装置において、
前記複数の演算処理部は、マルチコアCPUに収容された複数のコアであって、
前記制御部は、前記求められた処理時間に基づいて、前記分割印刷データを生成するための処理時間がそれぞれ均等になるように前記複数のオブジェクトを分割して前記複数のコアのそれぞれに割り当てることを特徴とする。
【0011】
請求項5に記載の発明は、請求項1〜4の何れか一項に記載の印刷データ生成装置において、
前記制御部は、前記中間データを生成するときに、所定のライン数のバンド単位に分割してバンド単位でオブジェクトの中間データを生成することを特徴とする。
【0012】
請求項6に記載の発明は、外部機器から入力されたページ印刷用の制御データに基づいて印刷データを生成し、該印刷データに基づいて画像の形成を行う画像形成装置において、
複数の演算処理部と、
前記複数の演算処理部のうちの1つを含んで構成され、前記外部機器より入力された前記ページ印刷用の制御データに基づき、複数のオブジェクトの中間データを、該オブジェクトの印刷データの生成順序を特定可能に生成し、前記複数のオブジェクトの印刷データの生成順序に従って前記複数のオブジェクトの分割位置を決定し、該決定した分割位置にて前記複数のオブジェクトを分割して前記複数の演算処理部のそれぞれに割り当て、前記中間データに基づき、前記複数の演算処理部によって、それぞれ割り当てられたオブジェクトの印刷データである分割印刷データを生成し、該生成された複数の分割印刷データを重合して合成印刷データを生成する制御部と、
前記制御部によって生成された前記合成印刷データに基づいて画像を形成する画像形成部と、を備えたことを特徴とする。
【0013】
請求項7に記載の発明は、請求項6に記載の画像形成装置において、
前記制御部は、前記複数の演算処理部のうち、印刷データの生成が可能である演算処理部の数を判定し、該判定結果に対応する数だけ前記複数のオブジェクトの分割位置を決定することを特徴とする。
【0014】
請求項8に記載の発明は、請求項6又は7に記載の画像形成装置において、
前記制御部は、前記中間データを生成するときに、前記中間データに基づいて印刷データを生成するための処理時間を求め、該求められた処理時間に基づいて前記複数のオブジェクトの分割を行うことを特徴とする。
【0015】
請求項9に記載の発明は、請求項8に記載の画像形成装置において、
前記複数の演算処理部は、マルチコアCPUに収容された複数のコアであって、
前記制御部は、前記求められた処理時間に基づいて、前記分割印刷データを生成するための処理時間がそれぞれ均等になるように前記複数のオブジェクトを分割して前記複数のコアのそれぞれに割り当てることを特徴とする。
【0016】
請求項10に記載の発明は、請求項6〜9の何れか一項に記載の画像形成装置において、
前記制御部は、前記中間データを生成するときに、所定のライン数のバンド単位に分割してバンド単位でオブジェクトの中間データを生成することを特徴とする。
【0017】
請求項11に記載の発明は、プログラムであって、
複数の演算処理部を有するコンピュータを、
前記複数の演算処理部のうちの1つを含んで構成され、ページ印刷用の制御データを入力として複数のオブジェクトの中間データを、該オブジェクトの印刷データの生成順序を特定可能に生成し、前記複数のオブジェクトの印刷データの生成順序に従って前記複数のオブジェクトの分割位置を決定し、該決定した分割位置にて前記複数のオブジェクトを分割して前記複数の演算処理部のそれぞれに割り当て、前記中間データに基づき、前記複数の演算処理部によって、それぞれ割り当てられたオブジェクトの印刷データである分割印刷データを生成し、該生成された複数の分割印刷データを重合して合成印刷データを生成する制御部として機能させることを特徴とする。
【発明の効果】
【0018】
本発明によれば、複数の演算処理部を用いて簡素な処理で印刷データの生成速度を向上させることができる。
【図面の簡単な説明】
【0019】
【図1】画像形成システムのシステム構成図である。
【図2】クライアント端末のブロック図である。
【図3】画像形成装置のブロック図である。
【図4】画像形成処理の処理フローを示す図である。
【図5】画像形成処理を示すフローチャートである。
【図6】印刷データ解析処理を示すフローチャートである。
【図7】ラスタライズ処理を示すフローチャートである。
【図8】ビットマップデータ出力処理を示すフローチャートである。
【図9】ラスタライズ予測時間算出用テーブルを示す図である。
【図10】オブジェクト毎のラスタライズ予測時間について説明する図である。
【図11】ディスプレイリストの構成について説明する図である。
【図12】ビットマップデータの生成過程について説明する図である。
【発明を実施するための形態】
【0020】
以下、図面を参照して、本発明に係る画像処理装置の実施の形態について説明する。なお、発明の範囲は図示例に限定されない。
【0021】
図1に、画像形成システム100のシステム構成を示す。図1に示すように、画像形成システム100は、例えば、画像形成装置10とクライアント端末20とを備えて構成されている。画像形成装置10とクライアント端末20の各装置はLAN(Local Area Network)等の通信ネットワークNを介して、データ通信可能に接続されている。
【0022】
画像形成装置10は、コピー機能、画像読取機能、プリンタ機能を備えた、所謂MFP(Multi-Function Peripheral)である。この画像形成装置10は、例えば、CMYKの各色毎に感光体ドラムを有し、感光体ドラムへの画像形成と同時に用紙を搬送して印刷を行うタンデム式の画像処理装置が適用できる。また、画像形成装置10は、単色の感光体ドラムのみ有するモノクロの画像を形成する画像処理装置であってもよい。画像形成装置10は、クライアント端末20から送信されるプリントジョブデータや、画像形成装置10に備えられているスキャナ等の画像読取部から読み込んだ画像データ等に基づき、用紙に画像を形成する。
【0023】
クライアント端末20は、所謂パーソナルコンピュータであり、画像形成装置10にプリントジョブを送信する機能を有する。クライアント端末20には、プリンタドライバプログラム(以下、単にプリンタドライバと称することがある。)がインストールされている。クライアント端末20は、このプリンタドライバの機能を用いて画像形成時に適用されるプリント条件のデータ(印刷要求データ)、画像データ(ページ印刷用制御データ)等を含んだプリントジョブデータを生成し画像形成装置10に送信する。
【0024】
図2に、クライアント端末20の構成を示す。図2に示すように、クライアント端末20は、例えば、CPU(Central Processing Unit)21、操作部22、表示部23、通信部24、RAM(Random Access Memory)25、HDD(Hard Disk Drive)26を備えて構成されている。
【0025】
CPU21は、操作部22から入力される操作信号(指示信号)又は通信部24により受信される指示信号に応じて、HDD26に記憶されている各種処理プログラムを読み出し、RAM25内に形成されたワークエリアに展開し、当該プログラムとの協働により各種処理を行う。
【0026】
操作部22は、カーソルキー、数字入力キー、及び各種機能キー等を備えたキーボードと、マウスなどのポインティングデバイスを備えて構成され、キーボードに対するキー操作やマウス操作により入力された指示信号をCPU21に出力する。
【0027】
表示部23は、LCD(Liquid Crystal Display)等により構成され、CPU21から入力される表示信号の指示に従って、操作部22からの入力指示やデータ等を表示する。
【0028】
通信部24は、LANアダプタ、ルータ、TA(Terminal Adapter)等を備え、通信ネットワークNを介して接続された画像形成装置10等の外部機器との間でデータの送受信を行う。
【0029】
RAM25は、CPU21により実行される各種処理プログラム及びこれらプログラムに係るデータを一時的に記憶するワークエリアを形成する。
【0030】
HDD26は、記憶装置であり、各種プログラム、設定データ、画像データ等を記憶する。また、HDD26は、プリンタドライバプログラム261を記憶している。
【0031】
CPU21は、当該プリンタドライバプログラム261をHDD26から読み出してRAM25に展開し、当該プログラムとの協働により、画像形成装置10に印刷要求データ及びページ印刷用制御データを送信する。ページ印刷用制御データは、PDL(Page Description Language)データ、PDF(Portable Document Format)データ、XPS(XML Paper Specification)データ等である。
【0032】
図3に、画像形成装置10の構成を示す。図3に示すように、画像形成装置10は、例えば、CPU(Central Processing Unit)11、操作部12、表示部13、画像読取部14、画像形成部15、通信部16、RAM17、ROM(Read Only Memory)18、HDD19を備えて構成されている。
【0033】
CPU11は、操作部12から入力される操作信号(指示信号)又は通信部16により受信される指示信号に応じて、ROM18に記憶されている各種処理プログラムを読み出し、RAM17内に形成されたワークエリアに展開し、当該プログラムとの協働により各種処理を行う。例えば、CPU11は画像形成に関する一連の処理(画像形成処理)を行う。以下、CPU11とRAM17とを合わせて制御部30と称す場合がある。本実施の形態で用いられるCPU11は、複数のコア(第1のコア111〜第4のコア114)を有するマルチコアCPUであって、このマルチコアCPUを用いることにより複数の処理を並列で行うことができる。本実施の形態では、4個のコアを有するマルチコアCPUが使用されるが、2個や3個、あるいは、5個以上のコアを有するCPUやMPU(Micro Processor Unit)を用いてもよい。また、マルチコアCPUにおける複数のコアにより複数の演算処理部を構成することに代え、2個以上のCPUにより複数の演算処理部を構成するようにしてもよい。
【0034】
操作部12は、数字キーやスタートキー、リセットキー等の各種キーを有し、押下されたキーの押下信号をCPU11に出力する。また、操作部12は、表示部13と一体的に形成されたタッチパネルを備えており、ユーザの指先やタッチペン等により当接されたタッチパネル上の位置を検出して、位置信号をCPU11に出力する。
【0035】
画像読取部14は、原稿画像を読み取って画像データを生成する所謂スキャナであり、原稿を載置するプラテンガラス、プラテンガラス上の原稿画像を走査し、これをCCDイメージセンサ上に結像する走査光学系を備えている。画像読取部14は、CCDイメージセンサで読み取った原稿画像に基づいて生成された画像信号をA/D変換して画像信号を生成する。
【0036】
画像形成部15は、電子写真方式、静電記録方式、熱転写方式等の作像プロセスを利用して画像を形成するために必要な構成要素を含む機能部である。例えば、画像形成部15は、感光体ドラム、転写ベルト、定着器、各種搬送ベルト、電子回路、給紙部、排紙部等を備える。画像形成部15は、CPU11の指示に従い、画像読取部14により生成された画像データ又は通信部16により受信されたプリントジョブデータ等に基づいて、給紙部から供給された用紙に画像を形成し、排紙部に搬送する。また、給紙部は給紙トレイを、排紙部は排紙トレイを備える。
【0037】
通信部16は、LANアダプタ、ルータ、TA等を備え、通信ネットワークNを介して接続されたクライアント端末20等の外部機器との間でデータの送受信を行う。例えば、通信部16は、クライアント端末20からプリントジョブデータ(印刷要求データ及びページ印刷用制御データ)を受信する。
【0038】
RAM17は、CPU11により実行される各種処理プログラム及びこれらプログラムに係るデータを一時的に記憶するワークエリアを形成する。また、RAM17は、通信部16によりクライアント端末20から受信されたページ印刷用制御データ(PDLデータ、PDFデータ、XPSデータ)等も記憶する。
【0039】
ROM18は、CPU11で実行される各種処理プログラム、各種データ等を記憶する。これらの各種プログラムは、読み取り可能なプログラムコードの形態で格納され、CPU11は、当該プログラムコードに従った動作を逐次実行する。また、ROM18は、プリンタコントローラプログラム181やフォントデータ等を記憶している。
【0040】
HDD19は、記憶装置であり、画像読取部14により読み取られた画像データ等を記憶する。また、HDD19は、追加フォントデータ等も記憶する。
【0041】
制御部30は、プリンタコントローラプログラム181をROM18から読み出してRAM17に展開し、このプログラムとの協働により、次のように機能する。即ち、制御部30は、通信部16によりクライアント端末20から受信されたページ印刷用制御データを解析して、中間言語データを生成する。そして、制御部30は、中間言語データに基づいてラスタライズ処理を行ってビットマップデータを生成する。そして、制御部30は、生成したビットマップデータを画像形成部15に出力する。
【0042】
以上のように構成される画像形成装置10の制御部30が行う画像形成処理の処理フローについて、図4を参照しながら説明する。本説明では、制御部30が取得するデータとして、ページ印刷用制御データにのみ着目している。
【0043】
制御部30は、クライアント端末20から送信されたページ印刷用制御データを、通信部16を介して取得する。制御部30は、取得したページ印刷用制御データをスプールデータとしてRAM17のスプールバッファに一時的に記憶させる(スプールする)。制御部30は、スプールデータ、即ちページ印刷用制御データをRAM17のスプールバッファから読み出す。そして、制御部30は、印刷データ解析処理を実行し、読み出したページ印刷用制御データに基づき、1ページを複数ラインのバンドに分割して、この分割されたバンド単位でディスプレイリスト(中間言語データ)を生成し、RAM17に保存する。このとき、制御部30は、後述するように、ページ印刷用制御データの解析の際、ディスプレイリストにより特定されたオブジェクトをラスタライズしてビットマップに変換するときの処理に要すると予測される時間(ラスタライズ予測時間)をバンド単位で算出し、RAM17に記憶する。そして、制御部30は、1ページ分のディスプレイリストが完成した時点で、RAM17からディスプレイリストを読み出す。
【0044】
制御部30は、読み出したディスプレイリストに基づいてラスタライズ処理を行い、バンド単位に分割したビットマップデータを生成し、RAM17に順次保存する。即ち、制御部30は、ラスタライズ処理をバンド単位で行う。
【0045】
制御部30は、1ページ分のビットマップデータが完成した時点で、画像形成部15を起動させて印刷動作を開始させた後、RAM17から1バンド分のビットマップデータを読み出し、画像形成部15に出力する。画像形成部15は、出力されたビットマップデータに基づいて、用紙に画像を形成する。制御部30は、RAM17に保存されたバンド単位のビットマップデータを、所定のタイミング毎に順次画像形成部15に出力する。
なお、1ページ分のビットマップデータを画像形成部15に一度に出力するようにしてもよい。
また、制御部30は、予めラスタライズ時間を予測しているため、ラスタライズ時間を逆算して1ページ分のビットマップデータの完成に先行して画像形成部15を起動させ、画像形成部15の起動完了時に1バンド目のビットマップデータに基づく画像形成が行われるようにしてもよい。これにより、画像形成動作開始前に行うモータの回転などの初期化処理によるオーバーヘッドがラスタライズ時間に吸収されて、画像形成時間の短縮が図れるようになる。
【0046】
次に、画像形成装置10の制御部30が行う画像形成処理の具体的な処理内容について図5を用いて説明する。
【0047】
図5は、画像形成処理を示すフローチャートである。本フローチャートでは、画像形成装置10がクライアント端末20から受信するデータとして、ページ印刷用制御データにのみ着目している。
【0048】
まず、制御部30は、通信部16によりクライアント端末20からページ印刷用制御データを受信し、RAM17にスプールする(ステップS1)。そして、制御部30は、スプールしたページ印刷用制御データを読み出し、印刷データ解析処理を行う(ステップS2)。印刷データ解析処理とは、ページ印刷用制御データに含まれるオブジェクトを解析し、ディスプレイリスト(中間言語データ)を生成してRAM17に一時保存する処理である。
【0049】
そして、制御部30は、1ページ分のディスプレイリストが完成した時点で、このディスプレイリストをRAM17から読み出し、ラスタライズ処理を行う(ステップS3)。ラスタライズ処理とは、ディスプレイリストに含まれるオブジェクトを解析し、バンド単位に分割したビットマップデータを生成しRAM17に一時保存する処理である。
【0050】
そして、制御部30は、1ページ分のビットマップデータが完成した時点で、このビットマップデータをRAM17から読み出し、ビットマップデータ出力処理を行う(ステップS4)。ビットマップデータ出力処理とは、画像形成部15にビットマップデータを出力する処理である。
【0051】
画像形成部15は、出力されたビットマップデータに基づいて、用紙に画像を形成する。
なお、本実施の形態の説明において、制御部30によって実行される印刷データ解析処理、ラスタライズ処理及びビットマップデータ出力処理については、説明の便宜により図示された手順に沿って説明しているが、各処理は並行して実行されうるものとする。
【0052】
次に、印刷データ解析処理(図5のステップS2)の具体的な処理内容について図6を用いて説明する。図6は、印刷データ解析処理を示すフローチャートである。
【0053】
図6に示すように、制御部30は、RAM17から読み出したページ印刷用制御データに含まれるオブジェクトを解析し、1ページを複数ライン(例えば、28ライン)のバンドに分割し、ディスプレイリスト(中間言語データ)をバンド単位で生成する(ステップS201)。そして、制御部30は、生成したディスプレイリストをRAM17に一時保存する。
【0054】
そして、制御部30は、上述したように、オブジェクトの解析とともに、ディスプレイリストに基づいてラスタライズ予測時間を算出する(ステップS202)。具体的には、制御部30は、変換するディスプレイリストに格納されるオブジェクトの種類、及びオブジェクトの面積に基づいてラスタライズ予測時間を算出する。なお、オブジェクトの面積は、ディスプレイリストに記述される座標に基づいて算出される。
このディスプレイリストには、テキストデータ、グラフィックスデータ、拡大処理の発生しないイメージデータ、拡大処理の発生するイメージデータ、回転処理の発生するイメージデータ、グラデーションデータ等の種類がある。
ここで、ROM18には、図9に示されるように、単位面積(1000pixel)あたりのラスタライズ予測時間がオブジェクトの種類毎に定義づけられたラスタライズ予測時間算出用テーブルが記憶されており、制御部30は、このラスタライズ予測時間算出用テーブルを参照してオブジェクト毎のラスタライズ予測時間を算出する。
そして、制御部30は、図10に示されるような態様で、予測したラスタライズ時間をオブジェクト毎に対応付けてRAM17に一時保存する。
なお、ラスタライズ予測時間の算出において、下地とパターンデータとの合成が必要なROP(Raster OPeration)処理、透過処理等を考慮してラスタライズ時間の予測精度を高めることもできる。
【0055】
次に、制御部30は、1ページ分のページ印刷用制御データに含まれる全てのオブジェクトの解析が完了したか否かを判定する(ステップS203)。制御部30は、全てのオブジェクトの解析が完了したと判定すると(ステップS203:Y)、印刷データ解析処理を終了する。一方、制御部30は、全てのオブジェクトの解析が完了したと判定しないときは(ステップS203:N)、ステップS201を実行し、1ページ分のページ印刷用制御データに含まれる次のオブジェクトの解析を行う。
【0056】
次に、ラスタライズ処理(図5:ステップS3)の具体的な処理内容について図7を用いて説明する。図7は、ラスタライズ処理を示すフローチャートである。制御部30は、1ページを等分割したバンド単位でラスタライズ処理を実行する。
【0057】
まず、制御部30は、ラスタライズに利用可能なCPU11のコアの数を判定する(ステップS301)。具体的には、制御部30は、他の処理に使用されていないアイドル状態のコアをラスタライズに利用可能なコアとしてその数を判定する。この場合において、印刷データ解析処理等のラスタライズ処理よりも優先度の低い処理を行っているコアについて、現在行っている処理を中断してラスタライズに利用可能なコアに割り当てるようにしてもよい。一方、スキャンやコピーなど、ラスタライズ処理よりも優先度を高く設定している処理を行っているコアについては、継続して現在行っている処理を実行し、ラスタライズに利用可能なコアに割り当てないようにしてもよい。
【0058】
次に、制御部30は、利用可能と判定したコアの数の分だけ、1つのバンドを分割する(S302)。例えば、制御部30は、4つのコアのうちの2つがラスタライズに利用可能と判定した場合、1つのバンドを2つに分割する。本実施の形態において、バンドの分割は、当該バンドにおいて構成される複数のオブジェクトを2以上に分けることにより行う。
【0059】
そして、制御部30は、分割した複数のオブジェクトを、ラスタライズに利用可能と判定したコアにそれぞれ割り当てる(ステップS303)。
【0060】
ここで、分割したオブジェクトの割り当てについて、2つのコアが利用可能と判定され、1つのバンドにおいて構成される複数のオブジェクトを2つに分割した場合を例に、図11を参照しながら説明する。
【0061】
図11は、RAM17上に構成されるディスプレイリストの記憶領域を概念的に表している。図11中、1バンド分のディスプレイリストが記憶されている範囲をAで示し、第1のコア111にてラスタライズされるオブジェクトの範囲をBで示し、第2のコア112にてラスタライズされるオブジェクトの範囲をCで示している。また、各オブジェクトのディスプレイリストは、ラスタライズされる順に記憶されている。すなわち、ディスプレイリストは、オブジェクトのラスタライズ順序を特定可能に生成されている。
【0062】
例えば、制御部30は、図11に示されるように、当該バンドに100個のオブジェクトが格納されている場合、1〜n個目のオブジェクト(B:前半部のオブジェクト群)を第1のコア111に割り当て、n+1〜100個目までのオブジェクト(C:後半部のオブジェクト群)を第2のコア112に割り当てる。すなわち、制御部30は、n個目のオブジェクトとn+1個目のオブジェクトの間を分割位置とし、これにより特定された前半部のオブジェクト群と後半部のオブジェクト群とをそれぞれ2つのコアに割り当てる。
【0063】
このとき、それぞれのコアに割り当てられるオブジェクトの数は、それぞれのコアによるラスタライズの時間が均等となって、それぞれのコアにて同時にラスタライズすることで、当該バンドのラスタライズが最速で実行できるような数に決定される。そのため、制御部30は、印刷データ解析処理において予測した各オブジェクトのラスタライズ予測時間に基づき、各コアに割り当てられたオブジェクトのラスタライズ予測時間の合計が均等になるように分割する。なお、3つ又は4つのコアが利用可能と判定された場合も、各コアに割り当てられたオブジェクトのラスタライズ予測時間が3等分あるいは4等分となるように、複数のオブジェクトを分割する。
【0064】
ここで、各コアに割り当てられたオブジェクトのラスタライズ予測時間の合計が均等とは、ラスタライズ予測時間の合計が全く等しい場合の他、複数のオブジェクトを分割した際に、ラスタライズ予測時間のそれぞれの合計の差が最小となることをも含んでいる。
【0065】
なお、複数のオブジェクトを分割する場合において、2以上のオブジェクトが同時に処理される前述したROP処理や透過処理等により、2以上のオブジェクトを切り離してラスタライズを行うことができない場合がある。その場合には、それらのオブジェクトが分断されない上で、各コアのラスタライズ予測時間が均等となるように、各コアにオブジェクトをそれぞれ割り当てるようにする。
【0066】
次に、制御部30は、各コアにオブジェクトのラスタライズをディスプレイリストにおける配列に従って実行させる(ステップS304)。そして、制御部30は、各コア毎に対応して設けられたビットマップデータ保存用のバンドバッファに、生成した分割ビットマップデータ(分割印刷データ)をそれぞれ保存する(ステップS305)。
【0067】
制御部30は、第1のコア111のバンドバッファに保存された分割ビットマップデータ(前半部のビットマップデータ)に第2のコア112のバンドバッファに保存されていた分割ビットマップデータ(後半部のビットマップデータ)を上書き合成して1バンド分の合成ビットマップデータ(合成印刷データ)を生成する(ステップS306)。
【0068】
次に、制御部30は、ラスタライズ処理の対象となるページにおける全てのバンドについてラスタライズ処理が完了したか否かを判定する(ステップS307)。制御部30は、全てのバンドについてラスタライズ処理が完了したと判定したときは(ステップS307:Y)、当該ページのディスプレイリストを保存していたRAM17の記憶領域を開放して(ステップS308)、この処理を終了する。一方、制御部30は、全てのバンドについてラスタライズ処理が完了したと判定しないときは(ステップS307:N)、ステップS301の処理を実行し、次のバンドについて処理をおこなう。
【0069】
本実施の形態では、上述に示される処理を実行することにより、当該バンドについて1つのCPUにて1〜100個目のオブジェクトまで順番にラスタライズしてビットマップデータを生成したのと同様の結果を得ることができる。すなわち、制御部30は、第1のコア111により前半部のオブジェクト群を順番にラスタライズするとともに、第2のコア112により後半部のオブジェクト群を順番にラスタライズする。そして、制御部30は、後半部のビットマップデータによって前半部のビットマップデータが上書きされるように合成するため、1〜100個目のオブジェクトが順番にラスタライズされたのと同じ結果となる。
【0070】
ここで、上述した処理によって生成されるビットマップデータについて図12を用いて説明する。
【0071】
制御部30は、1つのバンドにおいて構成される複数のオブジェクトを、上述のようにして、前半部のオブジェクトと後半部のオブジェクトに分割する。
【0072】
そして、制御部30は、前半部のオブジェクトを第1のコア111にラスタライズさせて図12(a)に示されるような前半部の分割ビットマップデータを生成し、後半部のオブジェクトを第2のコア112にラスタライズさせて図12(b)に示されるような後半部の分割ビットマップデータを生成する。
【0073】
そして、制御部30は、前半部の分割ビットマップデータに後半部の分割ビットマップデータを上書き合成し、図12(c)に示されるような合成ビットマップデータを生成する。
【0074】
このように、例えば、ディスプレイリストを生成した後に利用可能なコアの数を判定し、その判定結果に基づいてバンドの形成する領域を分割して複数のコアに割り当てるような構成だと、当該バンドについて再度ディスプレイリストを生成しなければならず、処理負荷が大変大きくなるばかりか、画像形成部15へのビットマップデータの出力が間に合わず、プリントオーバーランが生じてしまうおそれがあるため、複数のコアの稼働状況に応じて機動的に処理することができないが、本実施の形態では、ディスプレイリストを生成した後に利用可能なコアの数を判定し、その判定結果に応じて複数のオブジェクトをオブジェクト単位で分割するので、ディスプレイリストを再度生成する必要はなく、また、コアの稼働状況に応じた分割が可能となるので、処理負荷が軽減できるとともに、処理の効率化を図ることができる。
【0075】
次に、ビットマップデータ出力処理(図5のステップS4)の具体的な処理内容について、図8を用いて説明する。図8は、ビットマップデータ出力処理を示すフローチャートである。
【0076】
図8に示すように、制御部30は、RAM17からビットマップデータを読み出し、画像形成部15に出力する(ステップS401)。
【0077】
そして、制御部30は、印刷が完了したか否かを判定する(ステップS402)。具体的には、制御部30は、画像形成部15に出力していないビットマップデータがRAM17に記憶されておらず、且つ画像形成部15から印刷完了信号が入力された場合に、印刷が完了したと判定する。
【0078】
制御部30は、印刷が完了したと判定した場合(ステップS402:Y)、RAM17上に記憶されているビットマップデータを削除し、このビットマップデータが記憶されていた記憶領域を開放する(ステップS403)。
【0079】
一方、制御部30は、印刷が完了していないと判定した場合(ステップS402:N)、ステップS401の処理を実行する。
【0080】
以上説明したように、本実施の形態によれば、制御部30は、複数のコア111〜114のうちの1つを含んで構成される。そして、制御部30は、ページ印刷用制御データを入力として複数のオブジェクトのディスプレイリストを、該オブジェクトのビットマップデータの生成順序を特定可能に生成する。そして、制御部30は、複数のオブジェクトのビットマップデータの生成順序に従って複数のオブジェクトの分割位置を決定する。そして、制御部30は、決定した分割位置にて複数のオブジェクトを分割して複数のコア111〜114のそれぞれに割り当てる。そして、制御部30は、ディスプレイリストに基づき、複数のコア111〜114によって、それぞれ割り当てられたオブジェクトの分割ビットマップデータを生成する。そして、制御部30は、生成された分割ビットマップデータを重合して合成ビットマップデータを生成する。その結果、それぞれのコアにて生成された分割ビットマップデータをそのまま重ね合わせるだけで、印刷するための合成ビットマップデータを生成することができるので、複数のコアを用いて簡素な処理でビットマップデータの生成速度を向上させることができる。
【0081】
また、本発明の実施形態によれば、制御部30は、複数のコア111〜114のうち、ビットマップデータの生成が可能であるコアの数を判定する。そして、制御部30は、該判定結果に対応する数だけ複数のオブジェクトの分割位置を決定する。その結果、コアの稼働状況に応じた複数のオブジェクトの分割を行うことができ、処理効率の向上を図ることができる。
【0082】
また、本発明の実施形態によれば、制御部30は、ディスプレイリストを生成するときに、ディスプレイリストに基づいてビットマップデータを生成するための処理時間を求める。そして、制御部30は、求められた処理時間に基づいて複数のオブジェクトの分割を行う。その結果、各コアの処理能力に応じてオブジェクトの割り当てを行うことができ、処理効率の向上を図ることができる。
【0083】
また、本発明の実施形態によれば、複数のコア111〜114はCPU11に収容されている。そして、制御部30は、求められた処理時間に基づいて、ビットマップデータを生成するための処理時間がそれぞれ均等になるように複数のオブジェクトを分割して複数のコアのそれぞれに割り当てる。その結果、同等の処理能力を持った各コアに対して最も効率のよいオブジェクトの割り当てを行うことができ、処理効率の向上を図ることができる。
【0084】
また、本発明の実施形態によれば、制御部30は、ディスプレイリストを生成するときに、所定のライン数のバンド単位に分割してバンド単位でオブジェクトのディスプレイリストを生成する。その結果、バンド単位で分割してビットマップデータを生成できるので、ビットマップデータの生成の完了したバンドから順次印刷のための処理に回すことができるので、処理速度の向上が図れるとともに、ビットマップデータを生成するためのメモリを少なくすることができ、コストの削減を図ることもできる。
【0085】
また、本発明の実施形態によれば、制御部30は、複数のコア111〜114のうちの1つを含んで構成される。そして、制御部30は、クライアント端末20より入力されたページ印刷用制御データに基づき、複数のオブジェクトのディスプレイリストを、該オブジェクトのビットマップデータの生成順序を特定可能に生成する。そして、制御部30は、複数のオブジェクトのビットマップデータの生成順序に従って複数のオブジェクトの分割位置を決定する。そして、制御部30は、決定した分割位置にて複数のオブジェクトを分割して複数のコア111〜114のそれぞれに割り当てる。そして、制御部30は、ディスプレイリストに基づき、複数のコア111〜114によって、それぞれ割り当てられたオブジェクトの分割ビットマップデータを生成する。そして、制御部30は、生成された分割ビットマップデータを重合して合成ビットマップデータを生成する。そして、画像形成部15は、制御部30によって生成された合成ビットマップデータに基づいて画像を形成する。その結果、それぞれのコアにて生成された分割ビットマップデータをそのまま重ね合わせるだけで、印刷するための合成ビットマップデータを生成することができるので、複数のコアを用いて簡素な処理でビットマップデータの生成速度が向上し、画像形成速度の向上を図ることができる。
【0086】
なお、本実施の形態における記述は、本発明に係る画像形成装置の一例であり、これに限定されるものではない。画像形成装置を構成する各機能部の細部構成及び細部動作に関しても適宜変更可能である。
【0087】
例えば、本実施の形態において、ラスタライズされたビットマップデータを保存するために、2バンド分のビットマップデータが保存可能な2つのバンドバッファをRAM17に備え、先行して出力されるバンドのビットマップデータが画像形成部15への出力を待っている状態、あるいは、出力中であるとき、他方のバンドバッファを使用して後続のバンドのラスタライズを行わせるようにしてもよい。このように構成すれば、後続のバンドのラスタライズを早く開始することができ、プリントオーバーフローが改善される。
【0088】
また、RAM17に3つ以上のバンドバッファを備えるようにしてもよい。このように構成すれば、先行してバンドのラスタライズを行うことができるので、プリントオーバーフローの改善に対してさらに効果がある。この場合、他の処理において、メモリ不足によるメモリオーバーフロー等が発生し、印刷が継続できない事態が生じないように、バンドバッファの数を適切に設定することが好ましい。
また、本実施の形態では、印刷データ、ディスプレイリスト及びビットマップデータをRAM17に保存したが、HDD19やその他の記憶媒体に保存するようにしてもよい。
【0089】
また、本実施の形態において、画像形成の途中に用紙詰まりによる用紙ジャムや、不適切な用紙を装填していたことによる用紙ミスマッチなどのエラーが発生した場合にこれを救済するために、1ページ分の画像形成が完了して用紙が排出されるまで、生成した1ページ分のビットマップデータを別の領域にコピーするようにしてもよい。この場合、エラーが発生したページについて、再度画像形成を行わせるか否かについて、例えば、操作部12や、クライアント端末20によって選択することができるようにしてもよい。
【0090】
また、本実施の形態では、本発明に係るプログラムのコンピュータ読み取り可能な媒体としてハードディスクや半導体の不揮発性メモリ等を使用した例を開示したが、この例に限定されない。その他のコンピュータ読み取り可能な媒体として、CD−ROM等の可搬型記録媒体を適用することが可能である。また、本発明に係るプログラムのデータを通信回線を介して提供する媒体として、キャリアウェーブ(搬送波)も適用される。
【0091】
また、本実施の形態では、1ページを複数のバンドに分割し、バンド単位でラスタライズを行う構成としたが、バンド単位に分割せず、ページ単位でラスタライズする構成としてもよい。
【0092】
また、本実施の形態では、複数のオブジェクトを分割するときに、ラスタライズに利用可能なコアの数を判定し、判定した数だけ分割するようにしたが、分割する数が予め定められたものであってもよい。
【0093】
また、本実施の形態では、ラスタライズ予測時間を求め、その結果に応じて、複数のオブジェクトの分割位置を決定するようにしたが、ラスタライズ予測時間を求めず、予め定められた位置で分割を行う構成としてもよい。
【0094】
また、本実施の形態では、処理能力が同等である複数のコアを有するCPUを用い、ラスタライズ時間がそれぞれ均等になるように複数のオブジェクトを分割するようにしたが、例えば、複数のCPUを使用した場合には、ラスタライズ時間が各CPUの処理能力に応じた配分となるように、複数のオブジェクトを分割することも可能である。
【0095】
また、本実施の形態では、制御部30が複数のコア111〜114を備えて構成し、各コアにて各種処理及びラスタライズを行わせるものとしたが、例えば、複数のコア111〜114のうちの少なくとも1つのコアを制御部30に含ませて構成し、このコアに各種処理及びラスタライズを行わせ、他のコアについてはラスタライズのみ行わせるようにしてもよい。この場合において、制御部30に含まれるコアについては、複数のコア111〜114のうちの何れであってもよく、また、コアを制御部30に固定的に含ませる構成としたり、処理状況に応じて、制御部30に含まれるコアが変更される構成としてもよい。
【符号の説明】
【0096】
10 画像形成装置
11 CPU
111〜114 コア
15 画像形成部
17 RAM
20 クライアント端末
30 制御部

【特許請求の範囲】
【請求項1】
複数の演算処理部と、
前記複数の演算処理部のうちの1つを含んで構成され、ページ印刷用の制御データを入力として複数のオブジェクトの中間データを、該オブジェクトの印刷データの生成順序を特定可能に生成し、前記複数のオブジェクトの印刷データの生成順序に従って前記複数のオブジェクトの分割位置を決定し、該決定した分割位置にて前記複数のオブジェクトを分割して前記複数の演算処理部のそれぞれに割り当て、前記中間データに基づき、前記複数の演算処理部によって、それぞれ割り当てられたオブジェクトの印刷データである分割印刷データを生成し、該生成された複数の分割印刷データを重合して合成印刷データを生成する制御部と、を備えたことを特徴とする印刷データ生成装置。
【請求項2】
前記制御部は、前記複数の演算処理部のうち、印刷データの生成が可能である演算処理部の数を判定し、該判定結果に対応する数だけ前記複数のオブジェクトの分割位置を決定することを特徴とする請求項1に記載の印刷データ生成装置。
【請求項3】
前記制御部は、前記中間データを生成するときに、前記中間データに基づいて印刷データを生成するための処理時間を求め、該求められた処理時間に基づいて前記複数のオブジェクトの分割を行うことを特徴とする請求項1又は2に記載の印刷データ生成装置。
【請求項4】
前記複数の演算処理部は、マルチコアCPUに収容された複数のコアであって、
前記制御部は、前記求められた処理時間に基づいて、前記分割印刷データを生成するための処理時間がそれぞれ均等になるように前記複数のオブジェクトを分割して前記複数のコアのそれぞれに割り当てることを特徴とする請求項3に記載の印刷データ生成装置。
【請求項5】
前記制御部は、前記中間データを生成するときに、所定のライン数のバンド単位に分割してバンド単位でオブジェクトの中間データを生成することを特徴とする請求項1〜4の何れか一項に記載の印刷データ生成装置。
【請求項6】
外部機器から入力されたページ印刷用の制御データに基づいて印刷データを生成し、該印刷データに基づいて画像の形成を行う画像形成装置において、
複数の演算処理部と、
前記複数の演算処理部のうちの1つを含んで構成され、前記外部機器より入力された前記ページ印刷用の制御データに基づき、複数のオブジェクトの中間データを、該オブジェクトの印刷データの生成順序を特定可能に生成し、前記複数のオブジェクトの印刷データの生成順序に従って前記複数のオブジェクトの分割位置を決定し、該決定した分割位置にて前記複数のオブジェクトを分割して前記複数の演算処理部のそれぞれに割り当て、前記中間データに基づき、前記複数の演算処理部によって、それぞれ割り当てられたオブジェクトの印刷データである分割印刷データを生成し、該生成された複数の分割印刷データを重合して合成印刷データを生成する制御部と、
前記制御部によって生成された前記合成印刷データに基づいて画像を形成する画像形成部と、を備えたことを特徴とする画像形成装置。
【請求項7】
前記制御部は、前記複数の演算処理部のうち、印刷データの生成が可能である演算処理部の数を判定し、該判定結果に対応する数だけ前記複数のオブジェクトの分割位置を決定することを特徴とする請求項6に記載の画像形成装置。
【請求項8】
前記制御部は、前記中間データを生成するときに、前記中間データに基づいて印刷データを生成するための処理時間を求め、該求められた処理時間に基づいて前記複数のオブジェクトの分割を行うことを特徴とする請求項6又は7に記載の画像形成装置。
【請求項9】
前記複数の演算処理部は、マルチコアCPUに収容された複数のコアであって、
前記制御部は、前記求められた処理時間に基づいて、前記分割印刷データを生成するための処理時間がそれぞれ均等になるように前記複数のオブジェクトを分割して前記複数のコアのそれぞれに割り当てることを特徴とする請求項8に記載の画像形成装置。
【請求項10】
前記制御部は、前記中間データを生成するときに、所定のライン数のバンド単位に分割してバンド単位でオブジェクトの中間データを生成することを特徴とする請求項6〜9の何れか一項に記載の画像形成装置。
【請求項11】
複数の演算処理部を有するコンピュータを、
前記複数の演算処理部のうちの1つを含んで構成され、ページ印刷用の制御データを入力として複数のオブジェクトの中間データを、該オブジェクトの印刷データの生成順序を特定可能に生成し、前記複数のオブジェクトの印刷データの生成順序に従って前記複数のオブジェクトの分割位置を決定し、該決定した分割位置にて前記複数のオブジェクトを分割して前記複数の演算処理部のそれぞれに割り当て、前記中間データに基づき、前記複数の演算処理部によって、それぞれ割り当てられたオブジェクトの印刷データである分割印刷データを生成し、該生成された複数の分割印刷データを重合して合成印刷データを生成する制御部として機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2011−143576(P2011−143576A)
【公開日】平成23年7月28日(2011.7.28)
【国際特許分類】
【出願番号】特願2010−4674(P2010−4674)
【出願日】平成22年1月13日(2010.1.13)
【出願人】(303000372)コニカミノルタビジネステクノロジーズ株式会社 (12,802)
【Fターム(参考)】