(57)【要約】【課題】  プリンタエンジンのサイクルダウンが発生すると再度印刷が可能になるまでに長時間必要なため、生産性が大きく低下する。【解決手段】  プリントデータのページ並列によるＲＩＰ処理を行う際に次ページ以降の処理状況を監視し、サイクルダウンに入る制限時間を適応的に延長制御する【選択図】  図５
2012218178.tif 000002
【特許請求の範囲】
【請求項１】
印刷データを基に中間データをページ単位で生成する処理を行う第１の実行手段と、
印刷データを基に中間データをページ単位で生成する処理を、前記第１の実行手段と並行して行う第２の実行手段と、
前記第１の実行手段、または前記第２の実行手段の何れか１つの実行手段により生成された中間データを基に１ページ分のイメージデータを描画するレンダラと、
前記レンダラにより描画されたページのイメージデータを記録媒体に形成し、かつ該イメージデータを形成後、サイクルダウン制限時間を経過しても該ページの次のページに対応するイメージデータの形成指示がなかった場合にエンジン内部の各ユニットを停止させるプリンタエンジンと、
前記第１の実行手段が所定のページの中間データを生成中の際、前記第２の実行手段が生成した該所定のページ以降のページの中間データに対応する描画済みイメージデータのページ数を基に、前記プリンタエンジンに設定されている前記サイクルダウン制限時間の延長を要求する要求手段と、を有し、
前記プリンタエンジンは、前記延長の要求により制限時間が延びたサイクルダウン制限時間に従いエンジン内部の各ユニットを停止させることを特徴とする画像形成装置。
【請求項２】
前記プリンタエンジンは、前記サイクルダウン制限時間を経過する前に前記次のページに対応するイメージデータの形成指示があった場合はエンジン内部の各ユニットを停止することなくイメージデータを形成するプリンタエンジンであって、
前記サイクルダウン制限時間を経過しているか否かを確認するための経過時間をリセットし、前記サイクルダウン制限時間を経過しているか否かを確認することを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記要求手段は、前記描画済みイメージデータのページ数に応じて延長を要求する時間を変更することを特徴とする請求項１または２に記載の画像形成装置。
【請求項４】
前記要求手段は、前記描画済みイメージデータのページ数が該所定のページ以降の全ページ分であった場合は、サイクルダウン制限時間の最大延長を要求することを特徴とする請求項１乃至３の何れか１項に記載の画像形成装置。
【請求項５】
前記要求手段は、前記描画済みイメージデータのページ数が規定値以上であった場合は、サイクルダウン制限時間の中程度の延長を要求することを特徴とする請求項１乃至４の何れか１項に記載の画像形成装置。
【請求項６】
前記要求手段は、前記描画済みイメージデータのページが１ページ以上連続して描画済みである場合は、サイクルダウン制限時間の小程度の延長を要求することを特徴とする請求項１乃至５の何れか１項に記載の画像形成装置。
【請求項７】
前記要求手段は、前記描画済みイメージデータの数が該所定のページ以降の全ページ分ではなく、かつ前記描画済みイメージデータの数が規定値以上ではなく、かつ前記描画済みイメージデータが１ページ以上連続して描画済み出ない場合は、サイクルダウン制限時間の延長を要求しないことを特徴とする請求項６に記載の画像形成装置。
【請求項８】
印刷データを基に中間データをページ単位で生成する処理を行う実行手段と、
前記実行手段により生成された中間データを基にイメージデータを描画するレンダラと、
前記レンダラにより描画されたページのイメージデータを記録媒体に形成し、かつ該イメージデータを形成後、サイクルダウン制限時間を経過しても該ページの次のページに対応するイメージデータの形成指示がなかった場合に後回転に入るプリンタエンジンと、
実行手段が生成したページの中間データに対応する描画済みイメージデータのページ数を基に、前記プリンタエンジンに設定されている前記サイクルダウン制限時間の延長を要求する際、前記ページ数を基に延長を要求する時間が異なるように要求する要求手段と、を有し、
前記プリンタエンジンは、前記延長の要求に応じた時間分だけ制限時間が延びたサイクルダウン制限時間に従い後回転に入る動作を遅延させることを特徴とする画像形成装置。
【請求項９】
第１の実行手段は、印刷データを基に中間データをページ単位で生成する処理を行い、
第２の実行手段は、前記第１の実行手段と並行して印刷データを基に中間データをページ単位で生成する処理を行い、
レンダラは、前記第１の実行手段、または前記第２の実行手段の何れか１つの実行手段により生成された中間データを基に１ページ分のイメージデータを描画し、
プリンタエンジンは、前記レンダラにより描画されたページのイメージデータを記録媒体に形成し、かつ該イメージデータを形成後、サイクルダウン制限時間を経過しても該ページの次のページに対応するイメージデータの形成指示がなかった場合にエンジン内部の各ユニットを停止させ、
要求手段は、前記第１の実行手段が所定のページの中間データを生成中の際、前記第２の実行手段が生成した該所定のページ以降のページの中間データに対応する描画済みイメージデータのページ数を基に、前記プリンタエンジンに設定されている前記サイクルダウン制限時間の延長を要求し、
更に、前記プリンタエンジンは、前記延長の要求により制限時間が延びたサイクルダウン制限時間に従いエンジン内部の各ユニットを停止させることを特徴とする画像形成装置を制御する制御方法。
【請求項１０】
請求項９に記載の制御方法をプリンタエンジンを有する画像形成装置に実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、その制御方法及びプログラムに関するものである。
【背景技術】
【０００２】
複写機、レーザプリンタ等の画像形成装置は、ホストコンピュータからのプリントデータを受け取り、そのデータの解析及び画像処理を行い、印字するためのイメージデータを生成するコントローラを備える。また、コントローラと通信可能に接続され、コントローラからのイメージデータに応じて画像形成動作を行うエンジン（プリンタエンジン）を備える。コントローラはエンジンに対し、画像形成に関する様々な指示をコマンドとして送信する。エンジンはコントローラに対してエンジンの内部状態をステータスとして返送する。
【０００３】
ホストコンピュータからのプリントデータを受信すると、コントローラはプリントデータを解析し、イメージデータに展開する処理を開始する。最初にコントローラはエンジンに対し、プリント準備要求コマンドを送信する。そして、エンジンはその状態をスタンバイ状態から印字動作可能なプリント状態へ遷移させる。エンジンはスタンバイ状態からプリント状態へ遷移する際に、記録媒体の搬送用の駆動源であるモータ等の各種アクチュエータの立ち上げを行う。また、電子写真プロセスに必要な帯電、露光、現像、転写、定着といった各種ユニットの立ち上げもあわせて行う。これらは印字動作前に行う前処理工程であり、この前処理工程を前回転と呼ぶ。また、コントローラは画像処理が終了した時点で、エンジンに対してプリント開始要求コマンドを送る。エンジンはプリント開始要求コマンドを受信すると、印字動作を開始する。
【０００４】
そして、プリントデータ中の全ページの印字が完了すると、コントローラはプリント完了コマンドを送信する。プリント完了コマンドを受信して、エンジンは全ての印字動作が終了したと判断する。そして、再びスタンバイ状態へ遷移すべく、各種アクチュエータや各種ユニットを停止させていく。これらは印字動作後に行う後処理工程であり、この後処理工程を後回転と呼ぶ。この前回転及び後回転に要する時間は、プリンタエンジンの種類によって異なり、およそ数秒程度のものから数十秒程度に及ぶものまで存在する。
【０００５】
また、エンジンはプリント完了コマンドを受信しなくても、最後のプリント開始要求コマンドの受信から所定の時間が経過すると、印字動作が終了したと判断し後回転を始める。しかし、その直後にコントローラから新たなプリント開始要求コマンドが送られてきた場合に問題が生じる。エンジンは一旦、後回転を開始すると、途中で中止することが困難であり、後回転を最後まで実行する。そして、エンジンはコントローラからの新たなプリント開始の指示に従い、再び前回転を実行する。つまり、画像形成装置のユーザは後回転と前回転の両方を実行する時間分だけ余計に出力を待たなければならない。最後のプリント開始要求コマンドの受信から所定の時間が経過してもイメージデータを形成できなった場合に後回転に入る、この動作をサイクルダウンと呼ぶ。また、後回転に入った後から前回転に入るまでの待ち時間をダウンタイムと呼ぶ。
【０００６】
このようなダウンタイムの発生を解決するために、様々な方式が提案されている。特許文献１には、次ページのプリント開始に相当するコマンドの送信が遅れてもエンジンが後回転に入らないようにするため、プリント開始が遅れることを通知するコマンドを用意する方式が提案されている。そして、このコマンド（プリント開始遅延コマンド）をコントローラから受信していた場合、エンジンは後回転に入るタイミングを延長する。
【０００７】
一方、エンジンのスループットを満たすべく、コントローラにおけるプリントデータのＲＩＰ処理時間を短縮する方法も提案されている。近年、ＣＰＵクロックの向上が頭打ちとなり、複数のコアを単一パッケージに格納したマルチコア化が進んでいる。マルチコア化したＣＰＵの性能をフルに引き出すためにはＲＩＰ処理の並列化が必要であり、幾つかの方法が考案されている。例えば、複数ジョブを複数のコアで同時並行してＲＩＰ処理するジョブ並列処理方式がある。ジョブ並列処理方式では大量のジョブを処理する場合には、全体の生産性を向上することができる。また、別の方法として、単一ジョブ内の複数ページを複数のコアで同時並行してＲＩＰ処理するページ並列処理方式がある。ページ並列処理方式では単一ジョブに対しても高速化が見込める。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００６−０１５５１５
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、プリントデータのＲＩＰ処理に並列処理を採用したとしても、並列処理時にかかる時間がエンジンスループットに間に合わないケースは未だに散見される。これは、ホストコンピュータの性能向上に伴うプリントデータの複雑化と、エンジンの高速化が主な要因である。印刷物の生産性を考えた場合、エンジンがサイクルダウンに入らないようにプリント待機状態を保たせることが考えられるが、感光ドラムや定着機などの部品寿命と消費電力の観点で好ましくない。
【００１０】
そこで、本発明は、同時並行してページを処理している際に、次に処理されるべきページ以降の処理状況を考慮して、エンジンがサイクルダウンに入る時間を延長させる仕組みを設けることを目的とする。
【課題を解決するための手段】
【００１１】
本発明の一実施系に係る画像形成装置は、印刷データを基に中間データをページ単位で生成する処理を行う第１の実行手段と、印刷データを基に中間データをページ単位で生成する処理を、前記第１の実行手段と並行して行う第２の実行手段と、前記第１の実行手段、または前記第２の実行手段の何れか１つの実行手段により生成された中間データを基に１ページ分のイメージデータを描画するレンダラと、前記レンダラにより描画されたページのイメージデータを記録媒体に形成し、かつ該イメージデータを形成後、サイクルダウン制限時間を経過しても該ページの次のページに対応するイメージデータの形成指示がなかった場合にエンジン内部の各ユニットを停止させるプリンタエンジンと、前記第１の実行手段が所定のページの中間データを生成中の際、前記第２の実行手段が生成した該所定のページ以降のページの中間データに対応する描画済みイメージデータのページ数を基に、前記プリンタエンジンに設定されている前記サイクルダウン制限時間の延長を要求する要求手段と、を有し、前記プリンタエンジンは、前記延長の要求により制限時間が延びたサイクルダウン制限時間に従いエンジン内部の各ユニットを停止させることを特徴とする。
【発明の効果】
【００１２】
同時並行して処理される次のページ以降の処理状況を考慮して、サイクルダウンに入る時間を延長することにより、より効率的な制御が可能となる。このように制御することのメリットは、並列処理により印刷物の生産性を高めつつも、印刷機の部材寿命を維持することができるという点である。
【図面の簡単な説明】
【００１３】
【図１】画像形成装置の概略断面図
【図２】制御部全体のブロック図
【図３】コントローラにおけるソフトウェアブロック図
【図４】コントローラにおけるプリント処理のフローチャート
【図５】コントローラにおけるプリントドライバ処理のフローチャート
【図６】エンジン制御部におけるプリント処理のフローチャート
【発明を実施するための形態】
【００１４】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【実施例１】
【００１５】
図１は、本実施形態における画像形成装置の概略断面図である。画像形成装置は、印刷装置、複写機、レーザプリンタ、ファクシミリまたは複合機（ＭＦＰ）などとして実現される。
【００１６】
プリンタエンジン１０１は、画像を形成するための各種のハードウェア機構を備えている。コントローラ１０３は、画像形成装置全体を制御するための制御ユニットである。エンジン制御部１０４は、コントローラ１０３から受信した制御コマンドと画像データに従ってプリンタエンジン１０１に画像形成を実行させる制御ユニットである。また、エンジン制御部１０４は、プリンタエンジン１０１の状態等をコントローラ１０３へ通知する。
【００１７】
作像ユニット１０５、１０６、１０７および１０８は、感光ドラム、一次帯電器、レーザー露光装置、現像スリーブ、ドラムクリーナーなどを有している。各作像ユニットは、それぞれＹ、Ｍ、Ｃ、Ｋの各色の作像と中間転写ベルト（ＩＴＢ）１０９への一次転写とを実行する。
中間転写ベルト１０９の表面は、作像ユニット１０５〜１０８により順次各色の現像剤像が重畳され、最終的に１つのカラー画像が形成される。中間転写ベルト１０９は、図１において時計周りに回転する。パターン検知センサ１１３は、調整処理（例：オートレジストレーションや濃度調整など）のためのテストパターンを検知する。パターン検知センサ１１３は、図１のように作像ユニットの下流に配置される。
二次転写ローラー１１４は、中間転写ベルト１０９上のカラー画像を記録媒体上に二次転写する。ベルトクリーナー１１５は、二次転写後の中間転写ベルト１０９を清掃する。
【００１８】
給紙ユニット１３１、１３２や手差しトレイ１３７から給紙された記録媒体は、レジ前ローラー１１６によって搬送され、レジセンサ１１７により先端が検出されると、レジローラー１１８に突き当てられるようにして一旦停止される。その後、中間転写ベルト１０９上の画像が二次転写位置に到着するタイミングと同期して、レジローラー１１８とレジ前ローラー１１６により記録媒体が搬送される。そして、二次転写ローラー１１４によって、中間転写ベルト１０９上のカラー画像が記録媒体へと二次転写される。二次転写後搬送ベルト１１９は、二次転写後の記録媒体を定着器１２０へ搬送する。定着器１２０は、未定着のカラー画像を記録媒体へと定着させる。
給紙カセット１２８、１２９に搭載されている記録媒体は、ピックアップローラなどの給紙ユニット１３１、１３２により、縦パスローラー１３５、１３６に向けて給紙される。給紙された記録媒体は、縦パスローラー１３５、１３６によって、上述したレジ前ローラー１１６へ搬送される。
【００１９】
図２は、本実施形態における制御部のブロック図である。１０３はコントローラであり、画像信号やデバイス情報の入出力を制御する。ＣＰＵ２０１はＲＯＭ２０３あるいはＨＤＤ２０４に記憶されたプログラムをＲＡＭ２０２に読み出し、実行する。さらに、システムバス２００に接続される各デバイスをＣＰＵ２０１が統括的に制御する。ＣＰＵ２０１は内部に二つのコアを有するデュアルコアプロセッサであり、二つの制御プログラムを同時並列に実行可能である。なお、本実施例では、１つのＣＰＵに２つのコアを内蔵するＣＰＵを採用したが、１つのコアを有する複数のＣＰＵで構成したとしても良い。ＲＡＭ２０２は、ＣＰＵ２０１の主メモリ、ワークエリアとして機能する。ＲＯＭ２０３には電源ＯＮ時に実行されるブートプログラムが格納され、ＨＤＤ２０４にはオペレーティングシステムと本装置の制御プログラム本体が格納される。また、ＨＤＤ２０４は画像データやプリントデータ等の大容量データを一時的あるいは長期的に保持する目的でも使用される。
【００２０】
Ｎｅｔｗｏｒｋ２０５はローカルエリアネットワークに接続し、印刷データやデバイス情報の入出力を担う。操作部Ｉ／Ｆ２０６は操作部２０７とのインターフェース部で、操作部２０７に表示する画像データを操作部２０７に対して出力する。また、操作部２０７から本装置の使用者が入力した情報を、ＣＰＵ２０１に伝える役割をする。操作部２０７は、出力器として液晶パネルと音源を備え、入力器としてタッチパネルとハードキーを備えるものである。
【００２１】
コントローラ１０３はエンジンＩ／Ｆ２１２を介して、エンジン制御部１０４に接続される。エンジンＩ／Ｆ２１２はＣＰＵ２０１の指示に基づき、画像信号の送出、デバイス動作指示、デバイス情報の受信を行う。Ｒａｓｔｅｒ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｏｒ（ＲＩＰ）２０８は中間データであるディスプレイリストをイメージデータに展開する専用ハードウェアである。ＲＩＰ２０８はＣＰＵ２０１によりＲＡＭ２０２上に生成されたディスプレイリストを高速かつ、ＣＰＵ２０１の実行と並列に、処理するものである。プリンタ画像処理部２０９は、プリント出力画像データに対して、画像補正、ハーフトーニング等を行う。画像回転部２１１は画像データの回転を行う。画像圧伸部２１０は、多値画像データはＪＰＥＧ、２値画像データはＪＢＩＧ、ＭＭＲ、ＭＨの圧縮伸張処理を行う。
【００２２】
１０４はエンジン制御部であり、電子写真プロセスに必要な帯電、露光、現像、転写、定着、紙搬送といった各種ユニットの制御を担う。ＣＰＵ２１３は、プリンタエンジン１０１の中心的な制御ユニットである。ＲＯＭ２１４はプリンタエンジン１０１の制御プログラムを格納する記憶ユニットである。ＲＡＭ２１５は、プリンタエンジン１０１を制御する際のワーク領域として利用される記憶ユニットである。不揮発メモリ２１６は、各種の調整値を格納したりする記憶ユニットである。コントローラＩ／Ｆ２１８は、コントローラ１０３とのコマンドの送受信や、コントローラ１０３からの画像データの受信を行う通信ユニットである。上述したように、作像ユニット１０５〜１０８は、コントローラＩ／Ｆ２１８を経由して転送された画像データを用いて作像を実行する。
【００２３】
Ｖｓｙｎｃ発生部２１７は、画像の同期信号ＶＳＹＮＣを発生させ、これをコントローラＩ／Ｆ２１８を経由してコントローラ１０３へ送信する。コントローラ１０３は、ＶＳＹＮＣに同期して画像データをエンジン制御部１０４へ転送する。これにより、プリンタエンジン１０１とコントローラ１０３間の同期がとられる。
調整部２１９は、画質を維持するための各種の調整処理を実行するための制御ユニットである。例えば、オートレジストレーションに関して、調整部２１９は、パターン検知センサ１１３が検知した信号とＣＰＵ２１３からの指示に従って、ＶＳＹＮＣと画像データとの関係を調整することで、色ずれの発生を低減する。テストパターンの発生部２２３は、各作像ユニットに対して、調整処理に使用されるテストパターンの画像データを発生して送出する。
ＩＴＢ制御部２２０は、中間転写ベルト１０９の駆動制御を実行する。定着器制御部２２２は、定着器１２０の駆動と温度調節を実行する。駆動系制御部２２２は、記録媒体の搬送や二次転写を実行するために各モータやソレノイドを制御する。
プリンタエンジン１０４は、レンダラにより描画されたページのイメージデータを記録媒体に形成し、かつ該イメージデータを形成後、サイクルダウン制限時間を経過しても該ページの次のページに対応するイメージデータの形成指示がなかった場合にエンジン内部の各ユニットを停止させるプリンタエンジンに相当する。なお、各ユニットの停止とは、作像ユニットに含まれるポリゴンミラー駆動モータや感光ドラム等の回転の作像ユニットに含まれるポリゴンミラー駆動モータや感光ドラム等の回転の停止を意味する。
【００２４】
図３は、本実施形態におけるコントローラのソフトウェアブロック図である。図３に記載した各ソフトウェアモジュールは、プログラムとしてＨＤＤ２０４に格納され、ＲＡＭ２０２にロードされＣＰＵ２０１により実行されるものである。より具体的には、各ソフトウェアモジュールはＣＰＵ２０１上で動作するＯＳ（オペレーティングシステム）によりＲＡＭ２０２にロードされ、スレッド単位で実行権を付与され、実行されるものである。データ受信部３０１はホストから送信されたプリントデータを受信し、受信したデータはジョブ制御部３０２を介してジョブデータ管理部３０７で保持される。ジョブ制御部３０２はデータ受信から印刷までのジョブ制御の全般を司る。ＰＤＬインタプリタ３０３はプリントデータであるページ記述言語データ（ＰＤＬデータ）を解釈して、中間データであるディスプレイリストを生成する。生成されたディスプレイリストはジョブ制御部３０２を介してジョブデータ管理部３０７で保持される。なお、本実施例におけるＰＤＬインタプリタ３０３は、マルチスレッドにより複数個存在することになる。即ち、２つのコアが夫々、ＰＤＬインタプリタを実現するためのプログラムを実行することでＰＤＬインタプリタ３０３が実現する。夫々のスレッドが、印刷データを基に中間データをページ単位で生成する処理を行う。
【００２５】
レンダラ３０４はディスプレイリストからイメージデータを生成するモジュールであり、多くの処理は専用ハードウェアＲＩＰ２０８により実行される。レンダラ３０４は、上述の複数のＰＤＬインタプリタ３０３の内、何れか１つのＰＤＬインタプリタにより生成された中間データを基に１ページ分のイメージデータを描画するレンダラに相当する。生成されたイメージデータはジョブ制御部３０２を介してジョブデータ管理部３０７で保持される。本実施例におけるＰＤＬインタプリタ３０３、およびレンダラ３０４は、夫々、１ページ分ずつ中間データの生成、１ページ分ずつ描画を行ったが、ページ単位で行うことが必須ではない。例えば、１ページにおける一定の描画領域分ずつ中間データを生成したり、描画を行う形態であっても良い。
プリントドライバ３０５はエンジンＩ／Ｆ２１２を介してプリンタエンジンへの印刷指示とイメージデータの送出を行う。ユーザインターフェース３０６は操作部Ｉ／Ｆ２０６を介して、操作部２０７を制御するモジュールである。主に操作部２０７の液晶パネルに表示するデータを生成し、タッチパネルからの入力に従い液晶パネルの表示を更新する。また、タッチパネルからの入力が何らかのジョブ実行指示であった場合は、ジョブ制御部３０２に指示を伝達する。ジョブデータ管理部３０７はプリントデータ、ディスプレイリスト、イメージデータのそれぞれを一時的もしくは長期的に保持管理するデータベースである。なお、本実施例におけるレンダリングとは、ＰＤＬデータを解釈しディスプレイリストを作成し、作成したディスプレイリストを基にイメージデータを生成する処理をレンダリングと呼ぶ。
【００２６】
図４は、コントローラにて実行される基本プリントフローをあらわすフローチャートである。なお、本説明では図３の各ソフトウェアモジュールによって実行されるように記述する。また、本フローチャートはＨＤＤ２０４に記憶された図３の各ソフトウェアモジュール内の各プログラムがＲＡＭ２０２に読み出され、ＣＰＵ２０１により実行されることにより実現される。本フローチャートではスレッドＡ、スレッドＢ１、スレッドＢ２、スレッドＣの四つのスレッドが並列に実行される。各スレッドはＯＳにより時分割され、ＣＰＵ２０１内の二つのコアに順番にその実行権が割り振られる。時分割の単位は十分に小さいため、四つのスレッドは並列動作すると見なすことができる。しかしながら、ある一時点に着目すると同時に実行されるスレッドは二つである。これは、ＣＰＵ２０１が前述の通り２コアのデュアルコアプロセッサであることが理由である。オペレーティングシステムによるマルチスレッディング処理は一般に広く知られる技術であるため、詳細は省略する。スレッドＡがプリント処理のメインスレッドであり、スレッドＢ１、スレッドＢ２はスレッドＡにより実行時に動的生成されるインタプリタスレッドである。スレッドＣは本画像形成装置の起動時にＯＳにより生成される常駐スレッドである。なお、本実施例ではスレッドＢ１が第１の実行手段に相当し、スレッドＢ２が第２の実行手段に相当するが、各スレッドに対する実行手段が逆であっても良い。
【００２７】
スレッドＡでは最初にステップＳ４００１において、データ受信部３０１はプリントデータを受信し、ジョブ制御部３０２を介してジョブデータ管理部３０７に保持させる。次にステップＳ４００２において、ジョブ制御部３０２はプリントドライバ３０５を介してエンジンに対してプリント準備要求コマンドを送信する。
【００２８】
次にステップＳ４００３において、ジョブ制御部３０２はディスプレイリストの生成が完了したページがあるか否かを判定する。図４のフローを開始した当初はディスプレイリストの生成は完了していないので、Ｎｏとなる。Ｎｏの場合はステップＳ４００４へ進み、ジョブ制御部３０２は全ページのディスプレイリスト生成依頼が完了したか判定する。後述するように、各ページのディスプレイリスト生成処理は別スレッドに依頼して行う。図４のフローを開始した当初は全ページのディスプレイリスト生成依頼は完了していないためＮｏとなる。Ｎｏの場合はステップＳ４００５へ進み、ジョブ制御部３０２はＰＤＬデータから、次ページのＰＤＬデータを取りだす。ページが各スレッドに割り振られていない場合は、１ページ目が取り出されることになる。
【００２９】
そして、ステップＳ４００６へ進み、その時点におけるディスプレイリスト生成依頼中のページは二つか否か判定する。Ｎｏの場合はステップＳ４００８へ進み、ジョブ制御部３０２はページに対応するＰＤＬデータのディスプレイリスト生成依頼をＰＤＬインタプリタ３０３に通知する。ここでジョブ制御部３０２は新たなスレッドＢを生成し、ＰＤＬインタプリタ３０３にディスプレイリスト生成を実行させる。ステップＳ４００６でＹｅｓの場合は、ステップＳ４００７へ進み、ジョブ制御部３０２はいずれかのページのディスプレイリスト生成処理が完了するまで待つ。なお、図４ではスレッドＢ１、スレッドＢ２と二つのスレッドを図示しているが、スレッドはページの数分だけ動的生成される。ただし、ステップＳ４００６、ステップＳ４００７の制御により同時に実行されるスレッドは二つに限定されるため、便宜的にスレッドＢ１、スレッドＢ２と表記する。ステップＳ４００７では、スレッドＢ１もしくはＢ２との同期制御が行われ、スレッドＢ１もしくはＢ２の処理が完了すると次のステップＳ４００８に進む。なお、ステップＳ４００６でページ数の判定値を２としているのは、ＣＰＵコアが二つであることに対応している。さらに多数のＣＰＵコアを有する実施形態では判定値をその数に合わせて変更すれば良い。ステップＳ４００８の処理が終了すると、ステップＳ４００３へ戻り、処理を繰り返す。
【００３０】
ステップＳ４００３でＹｅｓの場合はステップＳ４０１０へ進み、ジョブ制御部３０２はレンダリングを行い、そしてビットマップを生成する。次にステップＳ４０１１において、ジョブ制御部３０２はビットマップをジョブデータ管理部３０７に保存し、プリントドライバ３０５にプリントを依頼する。プリントの依頼はプリントドライバ３０５に対してレンダリング終了通知を送信することにより実行される。プリントドライバ３０５はエンジン同期して処理を実行するために、スレッドＣとしてスレッドＡとは別スレッドで実行される。依頼を受けたプリントドライバ３０５はステップＳ４２０１において、エンジンに対してプリント開始要求コマンドを送信し、画像転送する。また、プリントドライバ３０５はステップＳ４２０１においてサイクルダウン制限時間の経過通知の処理も実行する。なお、ステップＳ４２０１の詳細は別途後述する。また、サイクルダウン制限時間とは、エンジンがサイクルダウンに入るまでの時間であり、サイクルダウン制限時間を超えてもレンダリング済みページが来ない場合、エンジンはサイクルダウンに入る。
【００３１】
次にステップＳ４０１２へ進み、ジョブ制御部３０２は全ページのレンダリングが完了したか判定する。Ｙｅｓの場合は、図４のフローを終了する。Ｎｏの場合は、ステップＳ４００３へ戻り、処理を繰り返す。ステップＳ４００４でＹｅｓの場合はステップＳ４００９へ進み、ジョブ制御部３０２はいずれかのページのディスプレイリスト生成が完了するまで待つ。この制御フローは、全てのページのディスプレイリスト生成依頼が完了し、スレッドＢ１もしくはＢ２での処理待ちの状態になった際に発生する。
【００３２】
スレッドＢ１、スレッドＢ２のステップＳ４１０１において、ＰＤＬインタプリタ３０３は当該ページに対応するＰＤＬデータを解釈し、ディスプレイリストを生成する。ＰＤＬインタプリタ３０３のディスプレイリスト生成処理はリエントラントな構成となっており、同時に二つのＰＤＬデータを処理することが可能である。スレッドＢ１、スレッドＢ２の処理時間は解釈するＰＤＬデータの量と複雑度に大きく依存するため、終了タイミングは事前に予測できない。従って、ディスプレイリストの生成が完了するタイミングはページ順になるとは限らない。即ち、各スレッドが実現するＰＤＬインタプリタは、割り当てられたページのサイズや構成オブジェクトにより生成時間が変化するため、ページ順を保った状態でディスプレイリストが生成されるとは限らない。プリント時のページ順への並び替えはプリントドライバ３０５により実行される。なお、スレッドＡとスレッドＣは同期の為の待ち時間が非常に多い（スレッドＣに関しては後述）。結果として、ＣＰＵ２０１の二つのコアにおける実行時間の大半がスレッドＢ１とスレッドＢ２に割り当てられることになる。
【００３３】
図５は、プリントドライバ３０５により実行される画像転送処理とサイクルダウン制限時間経過通知を受信した際の処理をあらわすフローチャートである。また、図４のステップＳ４２０１を詳細化したフローチャートである。最初にステップＳ５００１において、プリントドライバ３０５はレンダリング終了通知とサイクルダウン制限時間経過通知のいずれかを受信するまで待つ。レンダリング終了通知は、前述したように、ジョブ制御部３０２によりステップＳ４０１１で送信されるものである。また、サイクルダウン制限時間経過通知はエンジン制御部１０４からコントローラ１０３に通知される。サイクルダウン制限時間経過通知はエンジン制御部１０４において前ページのプリントから所定の時間が経過した為にエンジン停止して良いか確認する問い合わせである。二つの通知のうちいずれかを受信したところで、ステップＳ５００１の処理は終了する。
【００３４】
次にステップＳ５００２において、プリントドライバ３０５は通知がレンダリング終了通知であるか否か判定する。Ｙｅｓであれば、Ｓ５００３へ進む。Ｓ５００３において、プリントドライバ３０５はレンダリング済みのページがジョブの先頭ページか、もしくは前ページの印字出力が完了しているか判定する。Ｎｏの場合は、前のページのレンダリング完了を待つために、ステップＳ５００１に戻る。前述したように、各ページのレンダリングは非同期に並列して実行されるため、完了がページ順になるとは限らない。ステップＳ５００３でＹｅｓの場合は、ステップＳ５００４へ進み、プリントドライバ３０５はエンジンに対してプリント開始要求コマンドを送信し、画像を転送する。即ち、イメージデータと、イメージデータの形成指示をエンジンに送信する。なお、ステップＳ５００４において、プリントドライバ３０５はエンジン制御部１０４との同期処理も行う。プリンタエンジンは所定のスピード以上では出力できない。コントローラ１０３はそのＲＩＰ処理が速すぎる場合にエンジン制御部１０４の印字出力を待つ必要がある。
【００３５】
次にステップＳ５００５において、プリントドライバ３０５は次ページがレンダリング済みか否か判定する。Ｙｅｓであれば、ステップＳ５００６に進み、プリントドライバ３０５はエンジンと同期して、プリント開始要求コマンドを送信し、画像を転送する。そして、再びステップＳ５００５に戻り同様の処理を繰り返す。ステップＳ５００５、Ｓ５００６の処理により、先にレンダリング済みのページが全て出力される。ステップＳ５００５でＮｏの場合は、ステップＳ５００７へ進み、プリントドライバ３０５は全ページの画像転送が完了したか否か判定する。Ｙｅｓの場合は、ステップＳ５００８へ進み、プリントドライバ３０５はエンジン制御部１０４に対してプリント完了要求コマンドを送信する。Ｎｏ場合は、ステップＳ５００１へ戻り、処理を繰り返す。
【００３６】
ステップＳ５００２でＮｏの場合、即ち通知がサイクルダウン制限時間経過通知であった場合は、ステップＳ５００９へ進む。ステップＳ５００９において、プリントドライバ３０５は次にプリントされるべき現在レンダリング中のページ以降に何ページ連続してレンダリング済みのページがあるか数える。これを具体的に説明する。例えば、２ページ目までが印刷済みで、プリントエンジンがプリント待機状態だったとする。そして、エンジンがプリント待機してからの経過時間がサイクルダウン制限時間を経過したと仮定する。このとき、サイクルダウン制限時間経過通知をプリントドライバ３０５  は受信するであろう。そして、スレッドＢ１が３ページ目の中間データを生成中の際、プリントドライバ３０５は、もう一方のスレッドＢ２が生成した３ページ目以降のページの中間データに対応する描画済みイメージデータのページ数を確認する。この描画済みイメージデータのページ数の確認結果を基に、プリントドライバ３０５は、サイクルダウン制限時間の延長を要求する他、延長時間の程度を変更、または延長時間の要求を行わないと言った処理を切り替えて行う。
【００３７】
次に、ステップＳ５０１０へ進み、プリントドライバ３０５は残りの全ページのレンダリングが終了しているか否か判定する。即ち、現在レンダリング中のページ以降のページにおいて、全ページ分の中間データがレンダリング済みであるか否かの判定が行われる。Ｙｅｓであれば、ステップＳ５０１１に進み、プリントドライバ３０５はエンジン制御部１０４に対してサイクルダウン制限時間の最大延長を要求するコマンドを送信する。そしてステップＳ５００１に戻り、処理を繰り返す。
【００３８】
ステップＳ５０１０でＮｏの場合は、ステップＳ５０１２においてプリントドライバ３０５はレンダリング未終了のページ数が規定値以下か否か判定する。即ち、現在レンダリング中のページ以降のページにおいて、規定値以上のページ数の中間データがレンダリング済みであるか否かの判定が行われる。Ｙｅｓの場合はステップＳ５０１３へ進み、プリントドライバ３０５はエンジン制御部１０４に対してサイクルダウン制限時間の中程度の延長を要求するコマンドを送信する。そしてステップＳ５００１に戻り、処理を繰り返す。ステップＳ５０１２でＮｏの場合は、ステップＳ５０１４においてプリントドライバ３０５は１ページ以上連続してレンダリングが終了しているか否か判定する。Ｙｅｓの場合はステップＳ５０１５へ進み、プリントドライバ３０５はエンジン制御部１０４に対してサイクルダウン制限時間の小程度の延長を要求するコマンドを送信する。そしてステップＳ５００１に戻り、処理を繰り返す。ステップＳ５０１４でＮｏの場合もステップＳ５００１に戻り、処理を繰り返す。ステップＳ５０１４の場合、サイクルダウン制限時間の延長を要求しないように制御する。なお、サイクルダウン制限時間の延長程度（最大、中程度、小程度）はコマンドのパラメータとしてエンジン制御部１０４に通知されるものである。本フローチャートのステップＳ５００３〜Ｓ５００７を実行中に、プリントドライバ３０５はサイクルダウン制限時間経過通知を受信することができない。しかし、Ｓ５００３〜Ｓ５００７ではエンジンスループットで印字動作中のため、サイクルダウン制限時間経過通知は基本的に発生しない。
【００３９】
図６はエンジン制御部にて実行される基本プリントフローをあらわすフローチャートである。ステップＳ６００１において、ＣＰＵ２１３はコントローラ１０３からプリント準備要求を受信したか否か判定する。受信すると、ステップＳ６００２へ進み、ＣＰＵ２１３はプリント準備処理を開始する。プリント準備処理としては、例えば、作像ユニットに含まれるポリゴンミラー駆動モータや感光ドラム等の回転の開始などがある。より具体的には、ＣＰＵ２１３が、作像ユニット１０５、ＩＴＢ制御部２２１、定着器制御部２２２および駆動系制御部２２３にプリント準備を指示し、前回転処理を実行させる。その後、エンジンは、レンダリング済みのページを印刷し後回転処理に入る。そして、後回転処理に入った時から、経過時間のカウントが始まり、経過時間がサイクルダウン制限時間を超えるか否かの判定が始まる。
【００４０】
次にステップＳ６００３において、ＣＰＵ２１３は前回プリントからサイクルダウン制限時間分の時間が経過したか否かを判定する。Ｎｏの場合は、ステップＳ６００４へ進み、ＣＰＵ２１３はコントローラ１０３からプリント開始要求コマンドを受信したか否かを判定する。Ｎｏの場合は、ステップＳ６００３に戻り、処理を繰り返す。Ｙｅｓの場合は、ステップＳ６００５に進み、ＣＰＵ２１３はプリントを実行する。具体的に述べると、ＣＰＵ２１３は給紙ユニット１３１を駆動させるよう駆動系制御部２２２に指示する。ＣＰＵ２１３は搬送された記録媒体に対してコントローラ１０３より受信したビットマップ画像を形成するよう、各ユニットを制御する。即ち、イメージデータの形成指示があった場合は、プリントエンジンはエンジン内部の各ユニットを停止することなくイメージデータを形成する。
【００４１】
次に、ステップＳ６０１３へ進み、ＣＰＵ２１３はコントローラ１０３よりプリント完了要求コマンドを受信したか否か判定する。Ｙｅｓの場合は、ステップＳ６０１４へ進みＣＰＵ２１３は各ユニットに対して停止を指示し、後回転処理を実行させ、エンジンを停止する。Ｎｏの場合はステップＳ６００３に戻り、処理を繰り返す。
【００４２】
ステップＳ６００３でＹｅｓの場合、即ち、イメージデータの形成指示がサイクルダウン制限時間の時間分だけ経過してもなかった場合は、ステップＳ６００６へ進み、ＣＰＵ２１３はプリント準備後に発生したサイクルダウン回数が規定値未満か否かを判定する。Ｎｏの場合は、ステップＳ６０１０へ進み、ＣＰＵ２１３は各ユニットに対して停止を指示し、後回転処理を実行させ、エンジンを停止する。次にステップＳ６０１１へ進み、ＣＰＵ２１３はプリント開始要求コマンドを受信したか否か判定する。受信すると、ステップＳ６０１２へ進み、ＣＰＵ２１３はプリント準備後にプリントを実行する。ステップＳ６０１２では、ステップＳ６００２、Ｓ６００５と同様の処理が順番に実行される。そして、ステップＳ６０１３へ進む。
【００４３】
ステップＳ６００６でＹｅｓの場合は、ステップＳ６００７へ進み、ＣＰＵ２１３はコントローラ１０３に対してサイクルダウン制限時間経過通知を送信する。次に、ステップＳ６００８においてＣＰＵ２１３はコントローラ１０３からサイクルダウン制限時間の延長要求コマンドを受信したか否かを判定する。Ｙｅｓの場合はステップＳ６００９に進み、ＣＰＵ２１３はサイクルダウン制限時間を延長する。エンジン制御部は、延長の要求により制限時間が延びたサイクルダウン制限時間に従いエンジン内部の各ユニットを停止させる。
【００４４】
なお、制限時間の延長量はサイクルダウン制限時間の延長要求コマンドのパラメータにより決定する。延長程度が最大の場合には２．０倍に、中程度の場合は１．５倍に、小程度の場合は１．３倍に制限時間を延長する。本画像形成装置におけるサイクルダウン制限時間は実験的に４秒と設定されており、延長程度が最大、中程度、小程度はそれぞれ８．０秒、６．０秒、５．２秒となる。延長は当初の制限時間に対して行われるものであり、再延長は行わない。ただし、延長程度のより大きな要求を受けた場合は当初制限時間に対する延長を行う。例えば、中程度の延長がされた状態で最大の延長が要求された場合は、当初制限時間の２．０倍まで制限時間を延長する。なお、延長した制限時間も当該ページをプリントした直後に当初の値にリセットされる。また、プリント待機時間の経過時間も、プリントした直後にリセットされ、初期値からカウントが始まる。次に、ステップＳ６００３へ戻り、処理を繰り返す。ステップＳ６００８でＮｏの場合は、ステップＳ６０１０へ進む。
【００４５】
このように、同時並行して処理される次のページ以降の処理状況を考慮して、後回転に入る動作を遅延させることにより、より効率的な制御が可能となる。具体的には部材寿命と消費エネルギー量の悪化なく、生産性を高めることができる。ただし、本実施形態で示した制限時間の延長を行わない形態における制限時間に比較して、サイクルダウン制限時間の初期値は小さくする必要がある。たとえ制限時間を小さくしたとしても、本実施形態における制限時間の適応制御を行うことにより、トータルでは生産性を高めることができる。
【００４６】
まず、単一のプリントジョブに対してサイクルダウン回数が規定回数以上発生している場合は、その後も高い確率でサイクルダウンが発生すると予想されるので、制限時間の延長を行わない。そして、次ページのレンダリングが終了している場合には、少なくとも次のページでサイクルダウン発生することは無いので、制限時間を小程度延長する。そして、次ページ以降の全てのページのレンダリングが終了している場合には、当該ページにおけるサイクルダウンさえ回避すれば、残りのページでサイクルダウンは発生しない。この場合には、制限時間を最大程度延長する。そして、レンダリング未終了のページ数が規定値以下と少ない場合には、当該ページおけるサイクルダウンを回避すれば、残りのページでサイクルダウンが発生する確率は低い。この場合には、制限時間を中程度延長する。前述したように各ページのＲＩＰ処理時間はＰＤＬデータの量や複雑度に依存する。これら複数の制御を組み合わせて、ＰＤＬデータの傾向に合わせた適応制御を行うことにより、最大限の効果を得ることができる。
【符号の説明】
【００４７】
３０１  データ受信部
３０２  ジョブ制御部
３０３  ＰＤＬインタプリタ
３０４  レンダラ
３０５  プリントドライバ
３０６  ユーザインターフェース
３０７  ジョブデータ管理部
【図１】
2012218178.tif 000003
【図２】
2012218178.tif 000004
【図３】
2012218178.tif 000005
【図４】
2012218178.tif 000006
【図５】
2012218178.tif 000007
【図６】
2012218178.tif 000008