(57)【特許請求の範囲】
【請求項１】
第一の印刷ジョブおよび第二の印刷ジョブを受信する受信手段と、
前記受信が完了した第一の印刷ジョブおよび第二の印刷ジョブについて、前記第一の印刷ジョブの印刷に要する時間の予測処理に要する時間が所定時間を経過する前は、第一の印刷ジョブの印刷に要する時間の予測値が求まった後、第二の印刷ジョブの印刷に要する時間の予測値を求める予測処理を順番で行ない、前記第一の印刷ジョブの印刷に要する時間の予測処理に要する時間が所定時間を経過した後は、前記第二の印刷ジョブの印刷に要する時間の予測処理の前記順番を変更して、前記第一の印刷ジョブの印刷に要する時間の予測が求まるよりも先に実行する予測手段と、
前記受信された第一および第二の印刷ジョブの識別情報と、当該印刷ジョブについての前記予測値とを、互いに対応付けて表示可能な表示手段と、
を有し、
前記表示手段は、前記第一の印刷ジョブに対する前記予測処理が終了する前後に関わらず、当該第一の印刷ジョブ及び第二の印刷ジョブの識別情報を表示可能であることを特徴とする画像処理装置。
【請求項２】
前記表示手段は、前記印刷ジョブに対する前記予測処理によって前記予測値が求められた場合に、既に表示されている当該第一の印刷ジョブの識別情報に加えて、当該予測値を当該識別情報に対応付けて表示可能であることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記表示手段は、
前記受信手段によって受信された複数の印刷ジョブそれぞれの識別情報を一覧表示可能であって、
前記それぞれの識別情報が一覧表示されている複数の印刷ジョブのうちの前記第一の印刷ジョブに対する前記予測処理が終了する前においても、当該複数の印刷ジョブのうちの、前記予測処理によって前記予測値が求められた前記第二の印刷ジョブについて、前記識別情報と前記予測値とを互いに対応付けて表示可能であることを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記予測手段は、前記受信手段によって受信された第一の印刷ジョブに対する前記予測処理が終了する前において、当該第一の印刷ジョブの識別情報と、当該印刷ジョブに対する前記予測処理が終了していないことを示す情報とを、互いに対応付けて表示可能であることを特徴とする請求項１乃至３の何れか１項に記載の画像処理装置。
【請求項５】
前記予測手段は、前記受信手段によって受信された印刷ジョブに対する前記予測処理が完了せずに終了した場合に、当該第一の印刷ジョブの識別情報と、当該第一の印刷ジョブに対する前記予測処理が終了していないことを示す前記情報とは異なる情報とを、互いに対応付けて表示可能であることを特徴とする請求項４に記載の画像処理装置。
【請求項６】
ユーザーからの操作を受け付ける受付手段を有し、
前記表示手段は、前記受付手段が前記ユーザーから所定の操作を受け付けたことに基づいて、前記受信手段によって受信された印刷ジョブの識別情報と当該印刷ジョブについての前記予測値とを互いに対応付けて表示可能であり、かつ、前記第一の印刷ジョブに対する前記予測処理が終了する前においても、当該第一の印刷ジョブの識別情報を表示可能であることを特徴とする請求項１乃至５の何れか１項に記載の画像処理装置。
【請求項７】
画像処理装置の制御方法であって、
第一の印刷ジョブおよび第二の印刷ジョブを受信する受信工程と、
前記受信が完了した第一の印刷ジョブおよび第二の印刷ジョブについて、前記第一の印刷ジョブの印刷に要する時間の予測処理に要する時間が所定時間を経過する前は、第一の印刷ジョブの印刷に要する時間の予測値が求まった後、第二の印刷ジョブの印刷に要する時間の予測値を求める予測処理を順番で行ない、前記第一の印刷ジョブの印刷に要する時間の予測処理に要する時間が所定時間を経過した後は、前記第二の印刷ジョブの印刷に要する時間の予測処理の前記順番を変更して、前記第一の印刷ジョブの印刷に要する時間の予測が求まるよりも先に実行する予測工程と、
前記受信された第一および第二の印刷ジョブの識別情報と、当該印刷ジョブについての前記予測値とを、互いに対応付けて表示部に表示させる表示工程と、
を有し、
前記表示工程は、前記第一の印刷ジョブに対する前記予測処理が終了する前後に関わらず、当該第一の印刷ジョブ及び第二の印刷ジョブの識別情報を表示可能であることを特徴とする画像処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷ジョブの印刷に要する時間の予測値を求める技術に関する。
【背景技術】
【０００２】
特許文献１は、印刷ジョブを受け付けた順にその印刷ジョブの印刷に要する時間（印刷時間）の予測値を求める印刷装置を開示する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１９３８０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
印刷ジョブに膨大な数の描画命令が含まれていると、その印刷ジョブに対する印刷時間の予測値を算出する処理（予測処理）に時間が多くかかる。このような膨大な数の描画命令を含む印刷ジョブを印刷装置が受け付けた場合に、１つの印刷ジョブの予測処理によって計算リソース（例えばＣＰＵやメモリなどのハードウェアリソース）が占有されてしまう。そのため、そのような予測処理の実行中に、印刷ジョブの印刷処理などの他の処理の実行が指示された場合に、該他の処理に利用できる計算リソースが限られてしまう。
【０００５】
またあるいは、膨大な数の描画命令を含む印刷ジョブを印刷装置が受け付けた後にその印刷装置が続けて別の印刷ジョブを受け付けた場合に、次のようなことが起こりうる。先に受け付けられた印刷ジョブの予測処理に時間がかかり過ぎて、後から受け付けた印刷ジョブの予測処理が始められない。
【０００６】
特許文献１に開示される印刷装置は、１つの印刷ジョブの印刷時間の予測値を求め終わるまで予測処理を継続し続けるため、上記の不都合を解決する手段を開示してはいない。
【０００７】
本発明の課題は、上記事情による不都合の少なくとも１つを解決することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の画像処理装置は、印刷ジョブを受信する受信手段と、前記受信された第一の印刷ジョブおよび第二の印刷ジョブに対して、前記第一の印刷ジョブの印刷に要する時間の予測処理に要する時間が所定時間を経過する前は、第一の印刷ジョブの印刷に要する時間の予測値が求まった後、第二の印刷ジョブの印刷に要する時間の予測値を求める予測処理を行ない、前記第一の印刷ジョブの印刷に要する時間の予測処理に要する時間が所定時間を経過した後は、前記第二の印刷ジョブの印刷に要する時間の予測処理を、前記第一の印刷ジョブの印刷に要する時間の予測が求まるよりも先に実行する予測手段と、前記受信された第一および第二の印刷ジョブの識別情報と、当該印刷ジョブについての前記予測値とを、互いに対応付けて表示可能な表示手段と、を有し、前記表示手段は、前記第一の印刷ジョブに対する前記予測処理が終了する前においても、当該第一の印刷ジョブ及び第二の印刷ジョブの識別情報を表示可能であることを特徴とする画像処理装置であることを特徴とする。
【発明の効果】
【０００９】
印刷ジョブに対する予測処理に要している時間がかかり過ぎることによる不都合を解決する。
【図面の簡単な説明】
【００１０】
【図１】実施例の画像処理装置のハードウェア構成を示すブロック図。
【図２】実施例の画像処理装置のソフトウェア構成を示すブロック図。
【図３】印刷ジョブの予測処理を説明する図。
【図４】印刷ジョブリストおよび処理キューの遷移を示す図。
【図５】実施例１の印刷ジョブに対する予測処理の処理フローを示す図。
【図６】印刷ジョブの予測時間を表示する画面を示す図。
【図７】実施例３の印刷ジョブに対する予測処理の処理フローを示す図。
【発明を実施するための形態】
【００１１】
（実施例１）
図１は、画像処理装置の一例としての画像形成装置１のハードウェア構成を示すブロック図である。画像形成装置１は、コントローラ１００、プリンタエンジン１１０、操作パネル１１２を有する。コントローラ１００は、画像形成装置１の動作を統括的に制御する。プリンタエンジン１１０は、コントローラ１００から送信された画像データに基づいて画像を紙などのシート上に印刷する。操作パネル１１２は、コントローラ１００から送信された画像データに基づいて画像を表示する。なおプリンタエンジン１１０は、電子写真方式のものでも、インクジェット方式のものでも、その他方式のものでも、シートに画像を印刷できる機構をもつものであれば何でも良い。また操作パネル１１２は、液晶ディスプレイなどの一般的なディスプレイであり、ユーザーによるタッチ操作を検出可能なタッチスクリーンであっても良い。
【００１２】
図２も用いて各ハードウェア資源について説明する。
【００１３】
コントローラ１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０３、ネットワークＩ／Ｆ（Ｉｎｔｅｒｆａｃｅ）１０４、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０６、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１０７、ＲＩＰ（Ｒａｓｔｅｒ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｏｒ）１０８、デバイスＩ／Ｆ１０９、操作パネルＩ／Ｆ１１１をハードウェア資源として有する。
【００１４】
ＲＯＭ１０６には、図２のブロック図で示されるソフトウェア構成を実現するためのコンピュータプログラムが記憶されており、そのコンピュータプログラムをＣＰＵ１０２がＲＡＭ１０３上で実行することで、そのソフトウェア構成が実現される。そのコンピュータプログラムに従って動作を実行するＣＰＵ１０２が、各部の動作を統括的に制御する。
【００１５】
ネットワークＩ／Ｆ１０４は、ネットワークＮ１と接続し、そのネットワークＮ１を介してホストＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）などの外部装置からＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）データを受信する。ネットワークＩ／Ｆ１０４は、受信されたＰＤＬデータを印刷ジョブとしてＨＤＤ１０７へ記憶する。これらの処理は、受信部２００がＰＤＬデータを外部装置から受信し、記憶部２０１に印刷ジョブとして記憶することに相当する。
【００１６】
なおプログラムに従って動作するＣＰＵ１０２およびＲＡＭ１０３によって実現される解釈部２０２、ＤＬ生成部（中間データ生成部）２０３は、この記憶された印刷ジョブを処理することでＤＬ（Ｄｉｓｐｌａｙ  Ｌｉｓｔ）と呼ばれる中間データを生成する。すなわち、解釈部２０２は、印刷ジョブとしてのＰＤＬデータに含まれる１つまたは複数の描画命令を解釈し、その解釈結果をＤＬ生成部２０３に受け渡す。そしてＤＬ生成部２０３は、解釈部２０２から受け渡された解釈結果からＤＬを生成し、生成されたＤＬを後述のビットマップ生成部２０４に受け渡す。この受け渡しはＤＬ生成部２０３として機能するＣＰＵ１０２が、ＤＬをＲＡＭ１０３上で生成し、そのＲＡＭ１０３上のＤＬをＲＩＰ１０８に受け渡すことに相当する。
【００１７】
ＲＩＰ１０８は、受け渡されたＤＬをラスタライズすることで、ページのビットマップ形式の画像データ（ビットマップ画像）を生成する。そしてＲＩＰ１０８は、生成された画像データをデバイスＩ／Ｆ１０９を介してプリンタエンジン１１０へ送信する。この処理は、ビットマップ生成部２０４がＤＬ生成部２０３から受け取ったＤＬからビットマップの画像データを生成してプリンタエンジン１１０に送信する処理に相当する。
【００１８】
なお、プログラムに従って動作するＣＰＵ１０２およびＲＡＭ１０３は、図２の予測処理部２０５として機能する。この予測処理部２０５は、上記で説明した印刷ジョブの印刷の前に、予測処理を行う。
【００１９】
具体的には、予測処理部２０５は、記憶部２０１に記憶されている印刷前の印刷ジョブであってまだ予測処理が行われていない印刷ジョブに対して予測処理を行う。特に予測処理部２０５は、予測処理が行われていない印刷ジョブを記憶部２０１から取得して処理キュー２０７に追加する取得部２０６と、処理キュー２０７に追加された順に印刷ジョブに対して予測処理を印刷ジョブごとに実行する処理部２０８を有する。なお処理キュー２０７はＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）構造のキューとして実現されており、予測処理の実行対象となる印刷ジョブを記憶する。そして予測処理部２０５は、予測処理が完了したことで求められる印刷ジョブの予測時間を示す情報を、記憶部２０１に記憶されている対応する印刷ジョブに関連付けて記憶部２０１に記憶する。予測処理の詳しい方法は、図３を用いて後述する。
【００２０】
また、プログラムに従って動作するＣＰＵ１０２、およびそのＣＰＵ１０２に制御された操作パネルＩ／Ｆ１１１は、図２の予測時間表示部２０９として機能する。この予測時間表示部２０９は、記憶部２０１に記憶されている印刷ジョブを示す情報（例えばジョブ名）と、その印刷ジョブに関連付けられて記憶されている予測時間を示す情報（例えば秒数）とに基づいて操作パネル１１２に表示させる画像データを生成する。そして予測時間表示部２０９は、その画像データを操作パネルＩ／Ｆ１１１を介して操作パネル１１２に送信して、その印刷ジョブとその予測時間とが関連付けられた画像を操作パネル１１２上に表示させる。
【００２１】
以上が、画像形成装置１のハードウェアおよびソフトウェア構成についての説明である。このような構成を持つ画像形成装置１が、印刷ジョブに対する予測処理を実行する様子を以下で説明する。特徴的なのは、ある印刷ジョブに対する予測処理に要している時間が閾値時間（タイムアウト時間）を越えたことを検知して、その印刷ジョブに対する予測処理がキャンセル（中止）されて後続の印刷ジョブに対する予測処理が開始されることである。
【００２２】
まずは予測処理部２０５が印刷ジョブの予測時間を求める方法について図３を用いて説明する。図３は、印刷ジョブの処理の流れを示した図であり、処理の内容は前述した通りである。すなわち、印刷ジョブの処理は４つの処理（ＰＤＬ解釈、ＤＬ生成、ビットマップ生成、印刷）に分けて考えることができる。予測処理部２０５は、大別された各処理に要する時間の予測値（予測時間）を求める。まず、処理部２０８は、取得部２０６によって処理キュー２０７に記憶された印刷ジョブのうち、処理キュー２０７の先頭の印刷ジョブに対して予測処理を開始する。具体的には、処理部２０８は、対象の印刷ジョブのＰＤＬデータの各描画命令を実際に解釈し、その解釈にかかった実時間を予測時間Ｔ１とする。またこの際に処理部２０８は、各解釈結果を保持しておく。
【００２３】
次に処理部２０８は、ＤＬ生成処理の予測時間Ｔ２を、保持された解釈結果に基づいて求める。例えば解釈結果の数の合計に係数を乗じたものを予測時間Ｔ２とする。
【００２４】
次に処理部２０８は、ビットマップ生成処理の予測時間Ｔ３を、保持された解釈結果に基づいて求める。例えば処理部２０８は、各解釈結果に対応するオブジェクト（例えば図形やビットマップイメージなど）が互いに重なっている場合の互いに重なっているオブジェクトの数に係数を乗じた値（値１）を求める。また処理部２０８は、オブジェクトがビットマップイメージである場合のイメージを構成する画素数に別の係数を乗じた値（値２）を求める。そして処理部２０８は、値１と値２との合計値を求める。そしてＲＩＰ１０８の性能に対応する計数を、合計値に乗じたものを予測時間Ｔ３とする。
【００２５】
そして処理部２０８は、印刷ジョブによって印刷されるシート枚数と、プリンタエンジン１１０のエンジンスピードの係数とに基づいて、印刷処理の予測時間Ｔ４を求める。エンジンスピードの係数とは例えば１枚のシートの印刷にかかる時間である。例えば、印刷されるシート枚数に、エンジンスピードの係数を乗じたものが予測時間Ｔ４となる。
【００２６】
そして処理部２０８は、予測時間Ｔ１〜Ｔ４の合計値を最終的な予測時間として求める。
【００２７】
以上が、本実施例の予測処理の説明であるが、予測時間を求める方法であれば上記の予測処理に限らず他の公知の方法でも良い。
【００２８】
次に図４を用いて、予測処理における、記憶部２０１に記憶されている印刷ジョブのリスト（印刷ジョブリスト）および、その印刷ジョブリストに対する処理キュー２０７の様子を説明する。
【００２９】
図４（ａ）は、受信部２００が受信した順に記憶部２０１に記憶した印刷ジョブのリストを左に示し、記憶部２０１に記憶された印刷ジョブのうちで予測処理がまだ行われていない印刷ジョブが追加された処理キュー２０７を右に示す。印刷ジョブリストは１レコードに以下の４項目を含む。印刷ジョブの受信順、その印刷ジョブの識別子（例えば印刷ジョブ名）、その印刷ジョブの予測時間（あるいはそれを示す情報）、その印刷ジョブの予測処理がキャンセルされたかを示すフラグである。予測時間の「Ｎ／Ａ（Ｎｏｔ  Ａｖａｉｌａｂｌｅ）」は、その印刷ジョブの最終的な予測時間が求められていないことを示す。キャンセルフラグの「ＦＡＬＳＥ」は、その印刷ジョブの予測処理が１度もキャンセルされていないことを示し、逆に「ＴＲＵＥ」は、その印刷ジョブの予測処理が少なくとも１度はキャンセルされたことを示す。
【００３０】
図４（ａ）の印刷ジョブリストは、印刷ジョブＡ、Ｂ、Ｃが受信された直後を示す。すなわち、ジョブＡ、Ｂ、Ｃが順に受信され、各印刷ジョブの予測時間がまだ求められておらず、なおかつ、一度も予測処理がキャンセルされていないことを示す。すなわち、各印刷ジョブは、まだ予測処理が行われていない。そこで、取得部２０６は、印刷ジョブリストを参照して、「予測時間」の項目が、予測時間がまだ求められていないことを示す「Ｎ／Ａ」である印刷ジョブを、受信順に処理キュー２０７に追加する。その追加後の様子が図４（ａ）の右に示される。まず処理部２０８は、処理キュー２０７の先頭にある印刷ジョブＡに対して予測処理を開始する。
【００３１】
図４（ｂ）は、印刷ジョブＡの予測処理が閾値時間（例えば１８０秒）以内に完了した後の様子を示す。印刷ジョブリストの印刷ジョブＡのレコードには予測処理によって求められた予測時間「２０秒」が含まれ、処理キュー２０７には予測処理が完了した印刷ジョブＡが削除された様子を示す。この状態になると処理部２０８は、処理キュー２０７の先頭にある印刷ジョブＢに対して予測処理を開始する。すると、ここで印刷ジョブＢに含まれる描画命令数が膨大であるために、印刷ジョブＢに対する予測処理に要している時間が閾値時間を越えてしまったとする。この場合に、処理部２０８は、印刷ジョブＢに対する予測処理をキャンセルし、印刷ジョブリストの印刷ジョブＢのレコードのキャンセルフラグをＴＲＵＥに設定する。そして処理部２０８は、処理キュー２０７の先頭から印刷ジョブＢを削除する。この処理の結果得られる印刷ジョブリストと処理キュー２０７を図４（ｃ）に示す。
【００３２】
図４（ｃ）のような状態になると、処理部２０８は、処理キュー２０７の先頭の印刷ジョブＣに対して予測処理を行う。その結果、処理部２０８は、印刷ジョブＣの予測時間を求め、印刷ジョブリストの印刷ジョブＣのレコードに設定し、印刷ジョブＣを処理キュー２０７から削除する。この結果を図４（ｄ）に示す。
【００３３】
以上によって、時間がかかり過ぎている印刷ジョブＢに対する予測処理をキャンセル（タイムアウト）することで、後続の別の印刷ジョブＣに対して予測処理を行うことができる。また後続に予測処理を行うべき別の印刷ジョブがないとしても、印刷ジョブＢに対する予測処理に消費されているＣＰＵ１０２のリソース（演算能力）を、他の処理（例えば別の印刷ジョブの印刷処理）に回すことができる。
【００３４】
この一連の処理を実現するための処理フローを図５に示す。図５は、予測処理部２０５によって実行される。
【００３５】
ステップＳ５０１では、取得部２０６が印刷ジョブリストを参照して記憶部２０１に記憶されている印刷ジョブのうちの新たに受信・記憶された印刷ジョブを、処理キュー２０７に追加する。具体的には、取得部２０６が印刷ジョブリストの各レコードの「予測時間」の項目と、「キャンセルフラグ」の項目を確認し、「予測時間」の項目が「Ｎ／Ａ」且つ「キャンセルフラグ」の項目が「ＦＡＬＳＥ」を示すレコードの印刷ジョブを見つける。そして取得部２０６は、見つけた各印刷ジョブを印刷ジョブリストの受信順に、処理キュー２０７に追加する。これは図４（ａ）の状況に対応する。
【００３６】
ステップＳ５０２では、処理部２０８は、処理キュー２０７の先頭の印刷ジョブに対して予測処理を開始する。
【００３７】
ステップＳ５０３では、処理部２０８は、現在の印刷ジョブに対する予測処理が完了したかを判定し、完了していれば処理をステップＳ５０４へ進め、そうでなければ処理をステップＳ５０５へ進める。なおステップＳ５０３の判定処理は、例えば印刷ジョブに含まれる描画命令を一定数処理する毎のタイミングで行われる。また別の例ではステップＳ５０３の判定処理は、予め設定されている時間間隔毎のタイミングで行われても良く、以上述べたタイミングだけに限定されない。
【００３８】
ステップＳ５０４では、処理部２０８は、予測処理によって求められた予測時間を、印刷ジョブリストにおける現在の印刷ジョブのレコードの「予測時間」の項目に設定する。そして、処理部２０８は、その印刷ジョブを処理キュー２０７の先頭から削除する。そして処理はステップＳ５０１へ戻る。これは図４（ｂ）の状況に対応する。
【００３９】
一方ステップＳ５０５では、処理部２０８は、現在の印刷ジョブに対する予測処理に要している時間（これまでに掛かっている時間）が閾値時間（例えば１８０秒）を越えたかどうかを判定する。越えていれば処理はステップＳ５０６へ進み、そうでなければ処理はＳ５０３へ戻る。
【００４０】
ステップＳ５０６では、処理部２０８は、現在の印刷ジョブに対する予測処理を中止（キャンセル）し、その印刷ジョブを処理キュー２０７から削除する。このとき処理部２０８は、印刷ジョブリストにおける現在の印刷ジョブのレコードの「キャンセルフラグ」の項目に「ＴＲＵＥ」を設定する。そして、処理はステップＳ５０１へ戻る。以上の処理によって、予測処理に時間がかかりすぎる印刷ジョブについては、予測処理をタイムアウトさせ、後続の印刷ジョブがあればその後続の印刷ジョブの予測処理を開始可能にする。これは図４（ｃ）の状況に対応する。
【００４１】
以上の処理フローによって求められた各印刷ジョブの予測時間は、図６のような画面で操作パネル１１２に表示される。具体的には、予測時間表示部２０９は、操作パネル１１２を介して各ジョブの予測時間を表示する指示をユーザーから受け付ける。予測時間表示部２０９は、そのユーザー指示を受け付けたことに応じて、印刷ジョブリストに含まれる各印刷ジョブの情報に基づいて画像データを生成する。特に予測時間表示部２０９は、印刷ジョブの識別子である印刷ジョブ名、印刷ジョブの予測時間の情報をもとに、画像データを生成する。そして予測時間表示部２０９は、生成された画像データを操作パネル１１２へ送信し、操作パネル１１２がその画像データに基づいて図６のような画面を表示するように操作パネル１１２を制御する。生成される画像データのフォーマットは特定のものに限定されない。重要なのは、どの印刷ジョブがどれくらいの予測時間となっているのかがユーザーにとって理解できる情報を、操作パネル１１２に表示することである。例えば、表示される画像において、１レコードに印刷ジョブ名と予測時間とが対応していればよい。
【００４２】
この予測時間表示部２０９による表示の別の例として次のようなものも考えられる。例えば、予測時間表示部２０９は、上記のユーザー指示を受け付けたことに応じて、上記の印刷ジョブの識別子である印刷ジョブ名、印刷ジョブの予測時間の情報の他に、キャンセルフラグの情報も、印刷ジョブリストから取得する。そして予測時間表示部２０９は、各印刷ジョブについて、予測時間が求められているかを確認し、予測時間が既に求められていればその予測時間がその印刷ジョブ名と対応付いた画像データを生成する。この際に、予測時間表示部２０９は、予測時間の情報が「Ｎ／Ａ」であることが確認された場合に、さらに印刷ジョブの「キャンセルフラグ」の項目を確認する。そして「キャンセルフラグ」の項目が「ＴＲＵＥ」であれば、その印刷ジョブがタイムアウトによって予測時間が求められていないので、予測時間表示部２０９は、その印刷ジョブ名と「Ｎ／Ａ」とが対応づいた画像データを生成する。そうではなく、「キャンセルフラグ」の項目が「ＦＡＬＳＥ」であれば、その印刷ジョブに対する予測処理がまだ行われていないということなので、予測時間表示部２０９は、その印刷ジョブ名と「予測中」という表示とが対応づいた画像データを生成する。最後に予測時間表示部２０９は、生成された画像データを前述のように操作パネル１１２へ送信することで、予測時間の画面を操作パネル１１２に表示させる。
【００４３】
（実施例２）
実施例１では、印刷時間の予測処理に時間がかかりすぎる印刷ジョブについて、予測処理をキャンセルし、後続の印刷ジョブに対する予測処理が開始可能な状況を作り出した。これによって、なるべく多くの印刷ジョブの予測時間を短時間で多く求めることができるようになるが、以前に予測処理をキャンセルした印刷ジョブについても予測処理を再度開始できるようにすれば便利である。この要求を満たす１つの方法は、１度も予測処理が行われていない印刷ジョブが存在しない状況に限って、処理部２０８は、予測処理が以前にキャンセルされた印刷ジョブを処理キュー２０７へ追加する。具体的には図５のステップＳ５０１の処理の際、処理部２０８は、前述の処理に加えてさらに次の処理を行う。印刷ジョブリストにおける「キャンセルフラグ」が「ＦＡＬＳＥ」である全レコードに予測時間が設定されている場合、「キャンセルフラグ」が「ＴＲＵＥ」であるレコードの印刷ジョブのうち１つを処理キュー２０７に追加する。この追加される印刷ジョブは、例えば受信順が最も早い印刷ジョブである。
【００４４】
さらに、ステップＳ５０５の判定を、次のように変更する。印刷ジョブに対する予測処理に要している時間が閾値時間を越え、且つ、その印刷ジョブのレコードの「キャンセルフラグ」が「ＦＡＬＳＥ」であれば、処理をステップＳ５０６へ進め、そうでなければ、処理をＳ５０３へ戻す。
【００４５】
このように図５のフローチャートを変更することで、以前に予測処理がタイムアウトした印刷ジョブについても再度予測処理を走らせ、完了させることができる。
【００４６】
（実施例３）
実施例２では、以前にキャンセルされた印刷ジョブに対して予測処理を再度開始すると、その完了まで他の印刷ジョブの予測処理を開始することができない。本実施例では、再予測処理を行っている際に、新たな印刷ジョブが受信されているならば、その印刷ジョブに対する予測処理を優先させるように制御する。なおこの制御は、印刷ジョブのキャンセルフラグの監視および処理キュー２０７内での印刷ジョブのソートによって実行される。
【００４７】
図７に示されるフローチャートは、新たな印刷ジョブに対する予測処理を、以前に予測処理がキャンセルされた印刷ジョブに対する予測処理よりも優先させつつも、以前に予測処理がキャンセルされた印刷ジョブに対する予測処理の再度の実行を可能とする。
【００４８】
ステップＳ７０１では、取得部２０６が図５のステップＳ５０１と同様の処理を行う。
【００４９】
ステップＳ７０２では、予測処理がまだ行われていない印刷ジョブがあるかが判定される。つまり処理部２０８は、印刷ジョブリストの「キャンセルフラグ」に「ＦＡＬＳＥ」が設定されている印刷ジョブが処理キュー２０７に含まれているかを判定する。そのような印刷ジョブが処理キュー２０７に含まれていれば、処理はステップＳ７０３に進み、そうでなければ処理はステップＳ７０５に進む。ここでステップＳ７０５に進む理由は、以前に予測処理がキャンセルされた印刷ジョブに対して、予測処理を再度実行するためである。
【００５０】
ステップＳ７０３およびステップＳ７０４では、予測処理がまだ行われていない印刷ジョブに対して予測処理を優先的に実行するために、そのような印刷ジョブを処理キューの先頭にソートするための処理が行われる。
【００５１】
具体的にはステップＳ７０３では、処理部２０８は、処理キュー２０７の先頭の印刷ジョブが以前に予測処理が行われた印刷ジョブであるかを判定する。この判定処理は処理キュー２０７の先頭の印刷ジョブの「キャンセルフラグ」が「ＴＲＵＥ」であるか否かを判定することで行われる。「キャンセルフラグ」が「ＴＲＵＥ」であればその印刷ジョブは以前に予測処理が実行されているので、ステップＳ７０４にて処理部２０８はその印刷ジョブを処理キュー２０７の最後に移し替える。そうでなければ、処理キュー２０７の先頭には予測処理が行われていない印刷ジョブがあるので、その印刷ジョブに予測処理を行うべく処理をステップＳ７０５へ進める。
【００５２】
ステップＳ７０５、Ｓ７０６、Ｓ７０７、Ｓ７０８では、処理部２０８は、図５のステップＳ５０２、Ｓ５０３、Ｓ５０４、Ｓ５０５と同様の処理を行う。
【００５３】
ここでステップＳ７０８において予測処理のタイムアウトが発生した場合に、処理部２０８は、予測処理がまだ実行されていない印刷ジョブが新たに受信されているのかを確認するための処理を、ステップＳ７０９、Ｓ７１０にて行う。具体的には、ステップＳ７０９において処理部２０８は、ステップＳ７０１と同様の処理を行う。そして処理部２０８は、ステップＳ７１０において、処理キュー２０７に、予測処理がまだ行われていない印刷ジョブがあるかを判定する。処理内容はステップＳ７０２と同様である。処理キュー２０７に予測処理がまだ行われていない印刷ジョブがなければ、処理はステップＳ７１１へ移行する。そうでなければ（つまり処理キュー２０７に予測処理がまだ行われていない印刷ジョブが存在すれば）、処理はステップＳ７１２へ進む。
【００５４】
ステップＳ７１１では、処理部２０８は、現在の印刷ジョブに対する予測処理で用いられる閾値時間を所定時間分だけ増やす。これによって、処理部２０８は、予測処理を継続させる。このようにして増やされた閾値時間は、ステップＳ７０７にて現在の印刷ジョブが処理キュー２０７から削除される際、あるいは、ステップＳ７１２にて現在の印刷ジョブが処理キュー２０７の最後に移される際に、初期値の閾値時間に戻される。なお予測処理の継続させるための制御方法はこれだけに限られず、例えば予測処理に要している時間を「ゼロ（０）」にリセットしても良い。
【００５５】
ステップＳ７１２では、処理部２０８は、現在の印刷ジョブに対する予測処理をキャンセルし、印刷ジョブリストにおける現在の印刷ジョブのレコードの「キャンセルフラグ」に「ＴＲＵＥ」を設定する。そして処理部２０８は、現在の印刷ジョブを処理キュー２０７の最後の印刷ジョブの後に移し替える。すなわち、ステップＳ７０９、Ｓ７１０、Ｓ７１２の一連の処理の目的は、現在の印刷ジョブの予測処理中に新たな印刷ジョブが受信された場合、その印刷ジョブに対して予測処理を優先的に行うべく、現在の印刷ジョブの予測処理をキャンセルすることである。そして、現在の印刷ジョブを処理キュー２０７の最後に移し替えることで予測処理の再度の開始を可能にすることである。
【００５６】
以上のフローに従うことで、予測処理がまだ行われていない印刷ジョブに対して、優先的に予測処理を実行でき、且つ、以前に予測処理がキャンセルされた印刷ジョブであっても予測処理の再度の開始を保証することができる。これにより、できるだけ早く、多くの印刷ジョブの予測時間をユーザーに提示することを可能にし、且つ、全ての印刷ジョブの予測時間をユーザーに提示できる。
【００５７】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
0006545144.tif 000002
【図２】
0006545144.tif 000003
【図３】
0006545144.tif 000004
【図４】
0006545144.tif 000005
【図５】
0006545144.tif 000006
【図６】
0006545144.tif 000007
【図７】
0006545144.tif 000008