(57)【特許請求の範囲】
【請求項１】
動作モードとして、高速に中間データを生成する高速モードの設定、または当該高速モードの設定に比べて低消費電力で中間データを生成する省エネモードの設定を切り替えて、受信した印刷データから中間データを生成し、前記動作モードに応じた格納タイミングで当該中間データを記憶手段に格納する生成手段と、
前記記憶手段に格納された前記中間データを、前記格納タイミングとは異なる読み出しタイミングで読み出し、プリンタエンジンで処理が可能なデータに展開する展開手段と、
前記生成手段により生成された前記中間データを前記記憶手段に格納した場合に、予め設定されている格納可能な中間データの最大数を超えるか否かを判定する判定手段と、を備え、
前記生成手段は、前記判定手段の判定結果に基づき、前記動作モードの切り替えを行うことを特徴とする印刷装置。
【請求項２】
前記判定手段により、前記中間データのデータ数が、前記最大数を超えないと判定される場合、前記生成手段は、前記高速モードの設定により前記中間データを生成することを特徴とする請求項１に記載の印刷装置。
【請求項３】
前記判定手段により、前記中間データのデータ数が、前記最大数を超えると判定される場合、前記生成手段は、前記動作モードとして設定されている前記高速モードを前記省エネモードの設定に切り替えて前記中間データを生成することを特徴とする請求項２に記載の印刷装置。
【請求項４】
前記判定手段は、前記展開手段による読み出しにより前記記憶手段に格納されている前記中間データのデータ数が予め設定されている下限数を下回るか否かを更に判定し、
前記判定手段により、前記中間データのデータ数が、前記下限数を下回ると判定される場合、前記生成手段は、前記動作モードとして設定されている省エネモードを前記高速モードの設定に切り替えて前記中間データを生成することを特徴とする請求項３に記載の印刷装置。
【請求項５】
受信手段と、生成手段と、展開手段と、判定手段と、を有する印刷装置の制御方法であって、
前記受信手段が、印刷データを受信する受信工程と、
前記生成手段が、動作モードとして、高速に中間データを生成する高速モードの設定、または当該高速モードの設定に比べて低消費電力で中間データを生成する省エネモードの設定を切り替えて、受信した印刷データから中間データを生成し、前記動作モードに応じた格納タイミングで当該中間データを記憶手段に格納する生成工程と、
前記展開手段が、前記記憶手段に格納された前記中間データを、前記格納タイミングとは異なる読み出しタイミングで読み出し、プリンタエンジンで処理が可能なデータに展開する展開工程と、
前記判定手段が、前記生成工程により生成された前記中間データを前記記憶手段に格納した場合に、予め設定されている格納可能な中間データの最大数を超えるか否かを判定する判定工程と、を有し、
前記生成工程では、前記判定工程の判定結果に基づき、前記動作モードの切り替えを行うことを特徴とする印刷装置の制御方法。
【請求項６】
前記判定工程により、前記中間データのデータ数が、前記最大数を超えないと判定される場合、前記生成工程では、前記高速モードの設定により前記中間データを生成することを特徴とする請求項５に記載の印刷装置の制御方法。
【請求項７】
前記判定工程により、前記中間データのデータ数が、前記最大数を超えると判定される場合、前記生成工程では、前記動作モードとして設定されている前記高速モードを前記省エネモードの設定に切り替えて前記中間データを生成することを特徴とする請求項６に記載の印刷装置の制御方法。
【請求項８】
前記判定工程では、前記展開工程による読み出しにより前記記憶手段に格納されている前記中間データのデータ数が予め設定されている下限数を下回るか否かを更に判定し、
前記判定工程により、前記中間データのデータ数が、前記下限数を下回ると判定される場合、前記生成工程は、前記動作モードとして設定されている省エネモードを前記高速モードの設定に切り替えて前記中間データを生成することを特徴とする請求項７に記載の印刷装置の制御方法。
【請求項９】
コンピュータを、請求項１乃至４のいずれか１項に記載の印刷装置の各手段として機能させるためのプログラム。
【請求項１０】
請求項９に記載のプログラムを格納したことを特徴とするコンピュータ可読の記憶媒体。
【請求項１１】
動作モードとして、中間データを生成する高速モード、または当該高速モードに比べて低速で低消費電力で中間データを生成する省エネモードを切り替えて、受信した印刷データから中間データを生成する生成手段と、
前記生成手段により生成された中間データが格納された記憶手段から中間データを読み出し、プリンタエンジンで処理が可能なデータに展開する展開手段と、
前記記憶手段に格納された中間データの量に応じて、前記生成手段の動作モードを切り替える切り替え手段と、
を備えることを特徴とする印刷装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、低消費電力の印刷装置、印刷装置の制御技術に関するものである。
【背景技術】
【０００２】
通常、印刷装置は、ホスト機器等で生成された印刷データを受け、印刷データをプリンタエンジンで印刷可能な構成のデータ形式に変換する。そして、印刷装置は、変換後のデータをプリンタエンジンへ送出することによって印刷を実行している。
【０００３】
従来から、これら印刷装置において消費電力を押さえるための技術はいくつか提案されている。例えば、特許文献１では、複数のＣＰＵを搭載するＰＤＬデータを処理可能なプリンタ装置において、求められる処理能力に応じて使用するＣＰＵを切り替える制御を行う手法等が提案されている。また、特許文献２では、ＰＤＬ系の処理とラスター系の処理という分類で動作を切り替える手法が提案されている。
【特許文献１】特開2007-105917号公報
【特許文献２】特開2007-108861号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の手法では、制御の範囲が大まかに区切られており、例えば、ＣＰＵのユニットという単位であったりしたために、ジョブの状況の変化に応じた制御が難しいなど、効果的に消費電力を削減することが難しかった。また、特許文献２にあるような提案では、ＰＤＬ系の印刷が主たる印刷の対象となるようなワークフローでは効果的な消費電力の削減が実質的に困難であった。更には、上記の特許文献１、２の他、多くの提案では、低消費電力であることのみに注力した技術が複数提案されているが、印刷速度（パフォーマンス）を同時に考慮して印刷処理の効率の向上を図った提案はない。
【課題を解決するための手段】
【０００５】
上記の課題に鑑みて、本発明は、印刷装置における消費電力と印刷速度とを考慮した、処理効率の優れた印刷技術の提供を目的とする。
【０００６】
上記の目的を達成する本発明にかかる印刷装置は、動作モードとして、高速に中間データを生成する高速モードの設定、または当該高速モードの設定に比べて低消費電力で中間データを生成する省エネモードの設定を切り替えて、受信した印刷データから中間データを生成し、前記動作モードに応じた格納タイミングで当該中間データを記憶手段に格納する生成手段と、
前記記憶手段に格納された前記中間データを、前記格納タイミングとは異なる読み出しタイミングで読み出し、プリンタエンジンで処理が可能なデータに展開する展開手段と、
前記生成手段により生成された前記中間データを前記記憶手段に格納した場合に、予め設定されている格納可能な中間データの最大数を超えるか否かを判定する判定手段と、を備え、
前記生成手段は、前記判定手段の判定結果に基づき、前記動作モードの切り替えを行うことを特徴とする。
【発明の効果】
【０００７】
本発明によれば、印刷装置における消費電力と印刷速度とを考慮した、処理効率の優れた印刷技術の提供が可能になる。
【発明を実施するための最良の形態】
【０００８】
以下、図面を参照して、本発明の好適な実施形態を例示的に詳しく説明する。ただし、この実施の形態に記載されている構成要素はあくまで例示であり、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。
【０００９】
図１は、印刷装置の処理を概略的に説明する図である。不図示の情報処理装置（ホストコンピュータ）等で生成された印刷ジョブは、印刷データ101として印刷装置に入力される。印刷データ101には、描画コマンドや文字、図形等の情報が含まれる。
【００１０】
スプールデータ生成部102は、印刷データ101に含まれる各情報を解析し、印刷処理に適したデータ（中間データ）に変換する処理を行う。スプールデータ生成部102は、動作モードとして、高速に中間データを生成する高速モードの設定、または高速モードの設定に比べて低消費電力で中間データを生成する省エネモードの設定を切り替えて、受信した印刷データから中間データを生成する。そして、スプールデータ生成部102は、動作モードに応じた格納タイミングで中間データを格納する。
【００１１】
また、スプールデータ生成部102は、例えば、図形の重なり等で下層に隠れてしまう描画オブジェクトの有無を判別する。下層に隠れる描画オブジェクトは、印刷する際に不要となる描画オブジェクトであるため、スプールデータ生成部102は、かかる描画オブジェクトを削除する等の処理も行う。
【００１２】
スプールデータ103は、スプールデータ生成部102により生成された中間データであり、ハードディスクなどの記憶装置やメモリ104（以下、単に「メモリ」という）に一時的に格納される。
【００１３】
スプールデータ展開部105は、メモリ104に格納された中間データを、格納タイミングとは異なる読み出しタイミングで読み出し、プリンタエンジンで処理が可能なデータに展開する。スプールデータ展開部105は、データの展開処理により、プリンタエンジンで処理が可能なピクセルデータを生成する。生成されたピクセルデータは、エンジンデータ106として、不図示のプリンタエンジンに転送される。
【００１４】
スプール数判定部107は、スプールデータ生成部102により生成された中間データをメモリ104に格納した場合に、メモリ104に対して予め設定されている格納可能な中間データの最大数を超えるか否かを判定する。印刷処理の開始後に、スプール数判定部107は、スプールデータ展開部105による読み出しによりメモリ104に格納されている中間データのデータ数が予め設定されている下限数を下回るか否かを更に判定する。
【００１５】
スプール数判定部107は、この判定結果をスプールデータ生成部102に通知する。スプールデータ生成部102は、スプール数判定部107からの通知を受けて、スプールデータを生成する際の動作モードを切り替えて、中間データを生成することが可能である。
【００１６】
例えば、スプール数判定部107により、中間データのデータ数が、最大数を超えないと判定される場合、スプールデータ生成部102は、高速モードの設定により中間データを生成することが可能である。。
【００１７】
あるいは、スプール数判定部107により、中間データのデータ数が、最大数を超えると判定される場合、スプールデータ生成部102は、動作モードとして設定されている高速モードを省エネモードの設定に切り替えて中間データを生成することが可能である。。
【００１８】
あるいは、スプール数判定部107により、中間データのデータ数が、下限数を下回ると判定される場合、スプールデータ生成部102は、動作モードとして設定されている省エネモードを高速モードの設定に切り替えて中間データを生成することが可能である。
【００１９】
動作モードには、スプールデータを高速に生成する高速モードと、高速モードに比べて印刷装置の消費電力を抑制した省エネモードとがある。
【００２０】
ここで、高速モード、および省エネモードの処理の違いを簡単に説明する。一般的に、印刷（レンダリング）処理のためのアルゴリズムは複数のものが考えられる。実際に動作させてみると処理速度が異なっていることがわかるが、あるデータ処理には有効な処理でも、別のデータでは不利になっている場合等、一概には決められない状態である。そのような中で、設計のポリシーとして処理速度のみに重点を置いて設計されたアルゴリズム（プログラム）を用いるとする。この場合、プロセッサ等の最適化をそれに合わせて設計（コンフィギュラブルプロセッサにおける最適化処理、例えば、命令セットのカスタマイズ等）を実施した場合、消費電力の低減は難しくなる。一方で、設計のポリシーとして省エネルギー性（消費電力の低減）のみに重点を置いて設計されたアルゴリズム（プログラム）を用いるとする。この場合、プロセッサ等の最適化をそれに合わせて設計（コンフィギュラブルプロセッサにおける最適化処理、同様に、命令セットのカスタマイズ等）を実施した場合、処理速度の向上を望むことは難しい。これらは背反する条件であるために、２つの動作を設けてこれを適宜切り替えることとする。
【００２１】
次に、本発明の実施形態にかかる印刷装置の印刷速度の特性について、図２の概念図を使って説明する。図２のａに示すグラフの横軸は印刷ジョブの複雑さの度合いを示す値であり、左から右にかけて複雑さが増すことをあらわしている。ここでいう「ジョブの複雑さ」とは、例えば、図形の数や、図形の形状（更にいえば曲線で構成されており、その曲線自体も複雑さを持つ）自体が複雑ということで考えれば良い。
【００２２】
図２のａに示すグラフの縦軸は、印刷処理(レンダリング)にかかる処理時間を示している。図２のａに示すグラフ上の水平線２０４はプリンタエンジンが一枚の印刷処理に要する時間を示している。図２のａに示すグラフ上の線２０３は、印刷装置における印刷処理（レンダリング）に要する時間を示しており、ジョブの複雑さが増えると処理時間が増えるということをあらわしている。線２０３上の点Aの付近では、印刷（レンダリング）処理にかかる時間は、プリンタエンジンの処理時間（水平線２０４により示される処理時間）よりも短い。点Bの付近では、印刷（レンダリング）処理にかかる時間と、プリンタエンジンの処理時間は同じである。点Cの付近では、印刷（レンダリング）処理にかかる時間はプリンタエンジンの処理時間よりも長くなる。
【００２３】
ところで、印刷ジョブの複雑さということに関して別の視点から考察を与えてみると、以下の結論を導き出される。「印刷ジョブの複雑さ」を考えた時に、それ自体はいくつかの定義が考えられる。たとえば、単なるオブジェクトの数の総数でも良いし、または一様に直線や、それを構成する点の数という定義も出来る。または、図形が重なった状態を示す尺度（重なりの数や面積等）も考えられるし、それらの組み合わせとして定義することも出来る。
【００２４】
印刷ジョブの処理時間と印刷ジョブの複雑さとを結びつけて考えるにあたり、ジョブの複雑さの定義がいずれであっても一般に分布しているジョブの複雑さは一様であり、印刷ジョブの度数は度数分布にマッピング出来る（図２のｂ）。このように捉えるとすれば、印刷ジョブを処理する上で、スプールされる印刷データの数は、印刷（レンダリング）処理時間がプリンタエンジンの処理速度よりも十分に短い場合には、スプールデータ数は平均して増加する傾向にあるといえる（図２のｃ）。この場合、稀にきわめて複雑な印刷データが存在しうるが、その場合には、印刷（レンダリング）処理にかかる時間がプリンタエンジンの処理時間よりも長くなってしまうため、スプールされるデータ数は減少する。しかし、その状態は長く続かないために全体としてはスプール数が増加する傾向にあるといって良い。
【００２５】
図３（ａ）、（ｂ）は、スプール数の変化の例を説明する図である。ここでは、スプーラにデータをPUT(格納)する時間は平均で印刷ページ一枚につき１秒である。図１でいえばスプールデータ生成部102での処理時間である。ただし、ここでの処理時間は入力される印刷ジョブに対して依存性がある。すなわち、先に述べたようにジョブの複雑さの度合いにより、処理時間が前後するという特性がある。
【００２６】
一方、スプーラからデータをGET(獲得)する時間は平均で０．５秒である。つまり、２秒に一枚という速度で処理を行う。図１でいえば、スプールデータ展開部105での処理時間である。ここでの処理時間はジョブの依存性はなく処理時間は安定している。
【００２７】
図３（ａ）の左端は、処理開始からの秒数（SEC）が記されている。処理開始、０秒から１秒の時間で最初のスプールページが生成され、メモリ104（スプーラ）に格納（PUT）される。図３（ａ）のPUT(A)欄以下にある数字は、スプーラに格納（PUT）されたページ番号であり、処理開始後１秒では１である。図３（ａ）のget(B)欄以下にある数字はスプーラから取得（GET）されたページ番号であり、これも１である。図３（ａ）のspool欄以下にある数字は、スプールされているページを示している。処理開始時においてスプーラは空(empty：０)となっている。PUT(格納)された印刷ページは即、スプールデータ展開部105によってGET(獲得)され、スプーラはすぐに空(empty)となる。図３（ａ）のspool欄以下の文字列は説明の便宜上記載したものであって、スプーラにおけるスプールページ数および、データの出し入れの状態を示したものである。
【００２８】
以下、代表的なSpool欄の表示を時間の経過に従って説明する。
【００２９】
0 emptyは、スプール数が０で、emptyは初期状態を示す。
【００３０】
0 swapは、スプール数が０で、スプーラにPUTとGETが同時に発生したことを示す。
【００３１】
1 inは、スプール数が１、スプーラにPUTのみが発生したことを示す。
【００３２】
1swapは、スプール数が１、スプーラにPUTとGETが同時に発生したことを示す。
【００３３】
2inは、スプール数が２、スプーラにPUTのみが発生したことを示す。
【００３４】
2swapは、スプール数が２、スプーラにPUTとGETが同時に発生したことを示す。
【００３５】
図３（ａ）に示す例では安定して約1秒程度でスプール用の印刷ジョブのページデータが生成されていくため、約２秒に一枚（１ページ）の割合でスプール数が増えていく。ここでスプール可能なページ数には限度があり、この例では１５ページとしている。よって、処理を開始してから３０秒でスプール数は１５ページに達する。この時のスプーラの状態は、15inとなる。
【００３６】
処理開始後３１秒の時点において、スプールデータ生成部102は、生成した３１ページ目のデータを、スプールデータ展開部105が１６ページ目のデータをスプーラから取得した後に、直ちに格納することが出来る。この時のスプーラの状態は、15 swap となる。
【００３７】
しかし、次の３２秒の時点では、スプールデータ生成部102は、生成したデータをスプールをすることは出来なくなり、スプールデータ生成部102の処理は待ち状態になる。この時のスプーラの状態は、15 full (wait)となる。約１秒待たされた後に、再び、スプールデータ展開部105が１７ページ目のデータをスプーラから取得するので、その後、スプールデータ生成部102は、直ちに待ち状態になっているデータのスプール処理を行い、次のページの処理を開始する。このように、スプーラがフルになると適宜、待ち状態がつくられていく。
【００３８】
図３（ｂ）は、複雑な印刷ジョブが投入された場合におけるデータのスプール処理を例示的に説明する図である。PUT(A)、get(B)、spoolの表記は、図３（ａ）と同様である。図３（ｂ）において、時間の経過は０秒から３４秒までは図３（ａ）と同様とし、０秒から３２秒までの表示を割愛している。
【００３９】
図３（ｂ）に示すように、処理開始後３５秒で、複雑なジョブが入力された場合、スプール数は減少に転じることとなる。例えば、スプールデータ生成部102が３４ページ目の処理に４秒かかったとすると、処理開始後３５秒の時点で１５ページあったスプール数は、３７秒の時点で１４に減少する(ここではスプーラの状態は14outとなる)。図３（ｂ）の例では３５ページ目も同様に４秒の時間がかかるため、処理開始後４３秒までの期間におけるスプール数は１３まで減少することになる。３６ページ目以降は再び、約１秒の時間でスプールデータが生成されるため、スプール数は増加に転じる。この例では３８ページでジョブが終了するので４７秒以降は、スプーラ数が単調に減少していく。
【００４０】
図４は処理速度と、消費エネルギー（消費電力）の関係を例示的に示す図である。一般に速度をあげると消費エネルギーは増えるが、その増え方は線形ではなくより多くエネルギーを消費するようになってしまう。Ｖ１を高速モードの処理速度、Ｖ２を省エネモードの処理速度とすると、高速モードにおいて必要とされる消費電力は、ｓ１＋ｓ２で求められる。ここで、ｓ２は省エネモードの消費電力でもある。高速モードから省エネモードに切り替えることにより、ｓ１で示される消費電力分を節約することができる。よって、処理の都合に応じて、処理速度を調整する等の工夫をすれば、より効率的にエネルギー利用することが出来るようになる。
【００４１】
印刷装置のスプールデータ生成部102は、メモリ104（スプーラ）にデータをスプールすることが可能なスプール数の最大数を超えるまでは高速モードでスプールデータの生成を行う。スプール数判定部107は、メモリ104（スプーラ）に格納されているスプールデータ数を監視する。メモリ104に格納されるデータがスプール可能な最大数に達した場合、スプール数判定部107は、この判定結果をスプールデータ生成部102に通知する。スプールデータ生成部102は、スプール数判定部107からの通知を受けて、スプールデータを生成する際の動作モードを切り替える。
【００４２】
例えば、スプールデータのデータ数が最大数に達した後、スプールデータ生成部102は、動作モードを、高速モードから省エネモードに切り替えて、省エネモードでスプールデータの生成を行う。スプール数判定部107は、スプール数を監視しており、スプール数が、予め定められた下限数を切る場合、再度、この判定結果をスプールデータ生成部102に通知する。この通知を受けたスプールデータ生成部102は、動作モードを省エネモードから高速モードに切り替え、高速モードによるスプールデータの生成を行う。
【００４３】
図５は、印刷装置のメモリ104にスプールされるスプールデータのスプール数の変化を例示的に示す図であり、横軸は時間軸を示し、縦軸にスプール数を示している。右側に向かって時間が進むよう記載されている。
【００４４】
時刻t1では、スプール数は７であり、スプール可能な最大数（スプール最大数）１５に対してまだスプール可能な状態である。時刻ｔ１において、スプールデータ生成部102は高速モードでスプールデータの生成処理を行う。
【００４５】
時刻t2では、スプール数は１５であり、スプール最大数１５に達した状態である。これ以降、スプールデータ生成部102は、動作モードを高速モードから省エネモードに切り替えてスプールデータの生成処理を行う。
【００４６】
スプール数が、予め定められた下限数を下回るまで、スプールデータ生成部102は、省エネモードでスプールデータの生成処理を行う。
【００４７】
時刻ｔ3では、スプール数は１４であり、スプールデータ生成部102は、スプールデータの生成処理を省エネモードで続行する。
【００４８】
時間t4では、スプール数は９となっている。これ以上省エネモードを続行するとスプール数が更に減少しプリンタエンジンの動作が停止状態となる可能性が生じるため、本実施形態では、省エネモードの設定でスプールデータの生成を続行する際の下限数を設定している。プリンタエンジンの動作が一旦停止状態になった後、再起動する場合には、動作状態が連続する場合に比べて余分なエネルギ（電力）が必要となる。この観点からエンジンの動作が停止状態となるのを防ぐため下限数を設定している。この下限数は任意に設定することが可能である。ここで下限数を１０と設定すると、スプール数が９の場合、予め定められた下限数を下回ることとなり、スプールデータ生成部102は、動作モードを省エネモードの設定から高速モードの設定に切り替える。
【００４９】
時刻t5では、スプール数は１２であり、スプール最大数１５に対してまだスプール可能な状態である。時刻ｔ5において、スプールデータ生成部102は高速モードの設定でスプールデータの生成処理を行う。
【００５０】
以上のような動作を繰り返しながら、スプールデータ生成部102は動作モードを切り替える。
【００５１】
図６は、本実施形態にかかる印刷装置の制御の流れを説明するフローチャートである。本処理は、印刷装置の全体的な動作を司るＣＰＵ（不図示）の制御の下、スプールデータ生成部102、スプールデータ展開部105、スプール数判定部107により実行される。
【００５２】
まず、ステップＳ６０１において、スプールデータ生成部102は、フラグ(flag)に０をセットする。このフラグは上述した処理モード、すなわち、高速モードと、省エネモードを切り替えるために利用する。
【００５３】
次のステップＳ６０２において、スプールデータ生成部102は、スプール数判定部107からの通知に基づき、スプールの状況を確認するためにスプール数の判定結果を示すステータスを取得する。
【００５４】
次に、ステップＳ６０３において、スプールデータ生成部102は、フラグの値を検査し、フラグの値が０の場合はステップＳ６０４へ、フラグがそれ以外の値の場合はステップＳ６０７へ処理を進める。
【００５５】
ステップＳ６０４において、スプール数判定部107は、スプール数が最大値を超えていないかを判断し、超えていなければステップＳ６０５へ、越えていればステップＳ６０６へ処理を進める。
【００５６】
ステップＳ６０５において、スプールデータ生成部102は、高速モードでスプールデータを生成する。高速モードでのスプールデータの生成は、例えば、コンフィギュラブルプロセッサにおける動作の切り替え（ＩＰコアの起動）、または処理プログラムの切り替えにより実現することが可能である。
【００５７】
一方、ステップＳ６０４において、スプール数が最大値を超えていると判定される場合（Ｓ６０４−Ｎｏ）、処理はステップＳ６０６に進められ、スプールデータ生成部102は、フラグ(flag)に１をセットする。
【００５８】
その後、ステップＳ６０９において、スプールデータ生成部102は、省エネモードでスプールデータ生成を行う。高速モードと同様に、これはコンフィギュラブルプロセッサにおける動作の切り替え（ＩＰコアの起動）、または処理プログラムの切り替えにより実現することが可能である。
【００５９】
一方、ステップＳ６０３において、フラグの値が０でないと判定される場合（Ｓ６０３−Ｎｏ）、処理はステップＳ６０７に進められ、スプール数判定部107は、スプール数が下限数を下回っているか否かを判定する。下限数を下回っていない場合は（Ｓ６０７−Ｙｅｓ）ステップＳ６０９へ処理を進め、スプールデータ生成部102は、省エネモードでスプールデータ生成を行う。
【００６０】
一方、Ｓ６０７の判定で、スプール数が下限数を下回っている場合は（Ｓ６０７−Ｎｏ）、ステップＳ６０８に処理は進められる。スプールデータ生成部102は、フラグを０にセットした後に、ステップＳ６０５において、高速モードの設定でスプールデータを生成する。
【００６１】
ステップＳ６１０において、スプール数判定部107は、メモリ104に格納されているスプールデータ数を取得する。
【００６２】
ステップＳ６１１において、スプール数判定部107は、スプール数が最大値を超えていない場合（Ｓ６１１−Ｙｅｓ）、処理はステップＳ６１３に進められ、スプールデータ生成部102は、メモリ104にスプールデータの書き込みを行う（Ｓ613）。
【００６３】
ステップＳ６１１の判定で、スプール数が最大値を超えている場合（Ｓ６１１―Ｎｏ）、処理はステップＳ６１２に進められる。
【００６４】
ステップＳ６１２において、スプールデータ生成部102は、ループ（ステップＳ６１０、Ｓ６１１、Ｓ６１２）の回数に応じて、ハッシュ関数（または乱数等）を用いながらウェイト値を生成する。生成されたウェイト値に応じて、一定期間のウェイティング（待機）状態に入る。設定された待機時間が経過した後、再びステップＳ６１０へ戻る。
【００６５】
ステップＳ６１１において、スプール数が最大値を下回ったとスプール数判定部107により判定される場合、スプール数判定部107は、この状態変化をスプールデータ生成部102に通知する。
【００６６】
ステップＳ613において、スプールデータ生成部102は、メモリ104に、待機状態となっていたスプールデータの書き込みを行う。
【００６７】
ステップＳ６１４ではジョブの終了判定を行い、処理を終了する場合は（Ｓ６１４−Ｙｅｓ）、一連の処理を終了する。一方、処理を終了しない場合は（Ｓ614-Ｎｏ）、ステップＳ602に処理を戻し、同様の処理を繰り返す。
【００６８】
図７は、先の図６のフローチャートで説明した処理を実行した際のスプール数の変化を例示的に示す図である。図３の説明と同様に、メモリ104（スプーラ）にデータを格納（PUT）する時間は平均で印刷ページ一枚につき１秒である。また、スプーラからデータを獲得（GET)する時間は平均で０．５秒としている。処理開始、０秒から３０秒の時間までは先の説明と同様なので割愛する。
【００６９】
図７（ａ）に示すように処理を開始してから３０秒でスプールのページ数は１５ページに達する。従って、処理開始から３１秒の時点から、スプールデータ生成部１０２の動作モードは、高速モードから省エネモードに切り替えられる。ここでは説明の便宜上、省エネモードでは高速モードの約２倍程度の時間がかかることとする。そして、処理開始から３３秒の時点で、スプールデータ展開部１０５が１７ページ目のデータをスプーラから取得するタイミングで、３２ページ目のスプールデータがスプールデータ生成部１０２により生成される。
【００７０】
以下、同様に高速モードの２倍程度の時間でスプールデータが生成されていく。スプーラにデータを格納（PUT）する時間と、スプーラからデータを獲得（GET）する時間が拮抗していればスプール数に変化がない状態が続く。
【００７１】
しかし、図７（ｂ）に示すように、処理開始後、３５秒以降にあるように、複雑なジョブが入力された場合は、スプーラ数は大きく減少に転じることとなる。例えば、３４ページの処理時間が高速モードで４秒かかっていたとすると、省エネモードでは、８秒を要することになる。３５秒の時点で１５ページあったスプール数は、４３秒の時点で１２へ、４９秒の時点では９まで減少する。スプール数の下限数（ここで、下限数を１０とする）を割り込んだ状態（３６ページ以降）になると、動作モードは、省エネモードから高速モードに切り替わり、再度、高速モードでスプールデータが生成される。
【００７２】
本実施形態によれば、印刷装置における消費電力と、印刷速度と、を考慮した、処理効率の優れた印刷技術の提供が可能になる。
【００７３】
例えば、スプールデータのデータ数が、スプール可能な最大値を超えない場合は、高速モードの設定に、スプール数が最大値を超える場合、低消費電力モードの設定に動作モードを切り替えて、消費する電力をトータルで押さえることが可能になる。
【００７４】
（他の実施形態）
なお、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録したコンピュータ可読の記憶媒体を、システムあるいは装置に供給することによっても、達成されることは言うまでもない。また、システムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムを読出し実行することによっても、達成されることは言うまでもない。
【００７５】
この場合、記憶媒体から読出されたプログラム自体が前述した実施形態の機能を実現することになり、そのプログラムを記憶した記憶媒体は本発明を構成することになる。
【００７６】
プログラムを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【００７７】
また、コンピュータが読出したプログラムを実行することにより、前述した実施形態の機能が実現される。また、プログラムの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００７８】
【図１】本発明の実施形態にかかる印刷装置の処理を概略的に説明する図である。
【図２】本発明の実施形態にかかる印刷装置の印刷速度の特性を説明する図である。
【図３】スプール数の変化の例を説明する図である。
【図４】処理速度と、消費エネルギー（消費電力）の関係を例示的に示す図である。
【図５】印刷装置のメモリ104にスプールされるスプールデータのスプール数の変化を例示的に示す図である。
【図６】本発明の実施形態にかかる印刷装置の制御の流れを説明するフローチャートである。
【図７】図６のフローチャートで説明した処理を実行した際のスプール数の変化を例示的に示す図である。
【符号の説明】
【００７９】
１０２    スプールデータ生成部
１０５    スプールデータ展開部
１０７    スプール数判定部１０７
【図１】
0005049831.tif 000002
【図２】
0005049831.tif 000003
【図３】
0005049831.tif 000004
【図４】
0005049831.tif 000005
【図５】
0005049831.tif 000006
【図６】
0005049831.tif 000007
【図７】
0005049831.tif 000008