(57)【要約】【課題】  印刷処理の停止を抑制しつつ、効率的に画像処理の終了時間の予測を行う。【解決手段】  ジョブデータの画像処理にかかる時間を予測する予測結果と画像処理による処理結果の内、少なくとも一方の結果に基づいて、予測手段による予測の実行を行うかを判断する。【選択図】  図４
2015199222.tif 000002
【特許請求の範囲】
【請求項１】
ジョブデータの画像処理にかかる時間を予測する予測手段と、
前記画像処理による処理結果及び前記予測手段による予測結果の内、少なくとも一方の結果に基づいて、前記予測手段による予測の実行を行うかを判断する判断手段と
を備えることを特徴とする処理装置。
【請求項２】
前記判断手段は、画像処理済のデータのデータ量に基づいて、前記予測手段による予測の実行を行うか判断する
ことを特徴とする請求項１に記載の処理装置。
【請求項３】
前記予測手段の状態を管理する管理手段を更に備え、
前記判断手段は、前記管理手段が管理する前記予測手段の状態に応じて異なる閾値、及び画像処理済のデータのデータ量に基づいて、前記予測手段による予測の実行を行うか判断する
ことを特徴とする請求項２に記載の処理装置。
【請求項４】
前記予測手段の予測停止中で用いる閾値は、前記予測手段の予測実行中で用いる閾値よりも大きい
ことを特徴とする請求項３に記載の処理装置。
【請求項５】
前記判断手段は、ジョブデータの前記予測手段による予測結果に基づいて、当該ジョブデータの画像処理の実行中に前記予測手段による他のジョブデータの予測の実行を行うか判断する
ことを特徴とする請求項１乃至４のいずれか１項に記載の処理装置。
【請求項６】
前記判断手段は、前記予測結果がない場合には、画像処理済のデータのデータ量に基づいて、前記予測手段による予測の実行を行うか判断する
ことを特徴とする請求項１乃至５のいずれか１項に記載の処理装置。
【請求項７】
ジョブデータの画像処理にかかる時間を予測する予測工程と、
前記画像処理による処理結果及び前記予測工程における予測結果の内、少なくとも一方の結果に基づいて、前記予測手段による予測の実行を行うかを判断する判断工程と
を備えることを特徴とする処理方法。
【請求項８】
コンピュータを、請求項１乃至６のいずれか１項に記載の処理装置の各手段として機能させるための、または請求項７に記載の処理方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像を形成するための処理を行う処理技術に関するものである。
【背景技術】
【０００２】
プリンタ等に代表される印刷装置において、ＰＤＬ等のデータ記述言語で記述されたデータに対しレンダリング処理を行って画像を生成してから印刷出力する方法が広く知られている。データのレンダリング時間は、データの複雑度やデータサイズ、レンダリング時の画像処理内容によってまちまちである。このレンダリング時間を予測する手法やレンダリング処理が印刷に間に合わなくなるオーバーランが起きるかどうかを予測する手法が提案されている（特許文献１参照）。
【０００３】
特許文献１は、印刷データを仮ラスタライズし、そのラスタ展開時間を計測することで正確な予測を行う技術を開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−２２８９８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１では、出力予測時間をホスト装置側に転送した後、画像を出力するものであり、画像処理を実行しつつ、レンダリング時間を予測することができない。尚、正確な予測を行うためには実レンダリング処理に近い処理をしなければならず負荷がかかってしまう。そのため、レンダリング処理と並行して予測処理を行うと、レンダリング処理が遅くなってしまい、印刷に間に合わないことがあった。
【０００６】
本発明は上記課題を鑑みてなされたものであり、印刷処理の停止を抑制しつつ、効率的に画像処理の終了時間の予測を行うことができる処理技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記の目的を達成するための本発明による処理装置は以下の構成を備える。即ち、
ジョブデータの画像処理にかかる時間を予測する予測手段と、
前記画像処理による処理結果及び前記予測手段による予測結果の内、少なくとも一方の結果に基づいて、前記予測手段による予測の実行を行うかを判断する判断手段と
を備える。
【発明の効果】
【０００８】
本発明によれば、印刷処理の停止を抑制しつつ、効率的に画像処理の終了時間の予測を行うことができる処理技術を提供できる。
【図面の簡単な説明】
【０００９】
【図１】画像形成装置の全体構成を示す断面図である。
【図２】画像形成装置における制御構成を示すブロック図である。
【図３】コントロール部でのジョブ実行処理を示すフローチャートである。
【図４】コントロール部でのレンダリング時間予測処理を示すフローチャートである。
【図５】予測実行判断部での予測可否判断処理を示すフローチャートである。
【図６】予測実行判断部での予測可否判断処理を示すフローチャートである。
【図７】予測実行判断部での予測可否判断処理を示すフローチャートである。
【図８】ジョブ実行の状況を示す説明図である。
【図９】ジョブ実行の状況を示す説明図である。
【図１０】ジョブ実行の状況を示す説明図である。
【発明を実施するための形態】
【００１０】
＜実施形態１＞
以下、添付図面を参照して本発明の好適な実施形態を例示的に詳細に説明する。但し、この実施形態に記載されている構成要素の相対配置、装置形状等は、あくまで例示であり、この発明の範囲をそれらのみに限定する趣旨のものではない。
【００１１】
本明細書において、「印刷装置」とは、印刷機能に特化した専用機に限らず、印刷機能とその他の機能を複合した複合機や、記録紙上に画像やパターンを形成する製造装置等の装置も含むものとする。
【００１２】
図１は、記憶媒体であるロールシート（搬送方向において印刷単位の長さよりも長い連続した連続シート）を用いる画像形成装置１００の全体構成断面図である。印刷装置として機能する画像形成装置１００は、ロールシートユニット１０１、搬送ユニット１０２、搬送用エンコーダ１０３、回転ローラ１０４、ヘッドユニット１０５、印刷ヘッド１０６、スキャナユニット１０７、制御装置１０８、インクタンク１０９、カッタユニット１１０、裏面印刷ユニット１１１、乾燥ユニット１１２、シート巻取りユニット１１３、仕分けユニット１１４、操作部ユニット１１５を備え、これらの各種構成要素が画像形成装置１００の筐体内に配置されている。
【００１３】
制御装置１０８は、コントローラやユーザインタフェース、各種Ｉ／Ｏインタフェースを備えた制御部を内蔵し、装置全体の各種制御を司る。詳しくは、制御装置１０８は、内部に、ＣＰＵ、ＲＡＭ、ＲＯＭを備える。ＲＯＭには、後述するフローチャートで示す処理を含む各種処理を実行するためのプログラムが格納されており、ＣＰＵは、ＲＯＭに格納されているプログラムをＲＡＭ上に読み出し実行することで、各種処理を実行する。
【００１４】
ロールシートユニット１０１は、上段シートカセット１０１ａと下段シートカセット１０１ｂの２基のカセットユニットを備える。ユーザは、ロールシート（以下、シート）をマガジンに装着して、画像形成装置１００本体に正面から挿入して装着する。上段シートカセット１０１ａから引き出されたシートは図中ａ方向に、下段シートカセット１０１ｂから引き出されたシートは図中ｂ方向に搬送される。いずれのカセットユニットからのシートも図中ｃ方向に進行して搬送ユニット１０２に到達する。搬送ユニット１０２は、複数の回転ローラ１０４を通して印刷中にシートを図中ｄ方向（水平方向）に搬送する。
【００１５】
搬送ユニット１０２の上方にはヘッドユニット１０５が対向して配置されている。ヘッドユニット１０５では複数色（実施形態では、７色）分の独立した印刷ヘッド１０６がシートの搬送方向に沿って保持されている。搬送ユニット１０２によるシートの搬送に同期して、印刷ヘッド１０６からインクを吐出してシート上に画像を形成する。これら搬送ユニット１０２、ヘッドユニット１０５、印刷ヘッド１０６で印刷ユニットが構成されている。
【００１６】
インクタンク１０９は、各色のインクを独立して貯蔵する。インクタンク１０９からはチューブによって各色に対応して設けられたサブタンクまでインクが供給され、サブタンクから各印刷ヘッド１０６までチューブでインクが供給される。印刷ヘッド１０６は、印刷時の搬送方向ｄ方向に沿って各色（実施形態では、７色）のラインヘッドが並んでいる。各色のラインヘッドは、継ぎ目無く単一のノズルチップで形成されたものであってもよいし、分割されたノズルチップが一列又は千鳥配列のように規則的に並べられたものであってもよい。本実施形態では、使用する最大シートの印刷幅をカバーする範囲にノズルが並んでいる所謂フルマルチヘッドである。ノズルからインクを吐出するインクジェット方式は、発熱素子を用いた方式、ピエゾ素子を用いた方式、静電素子を用いた方式、ＭＥＭＳ素子を用いた方式等を採用することができる。印刷データに基づいて各印刷ヘッド１０６のノズルからインクが吐出され、吐出のタイミングは搬送用エンコーダ１０３の出力信号によって決定される。
【００１７】
尚、図１のプリンタとして機能する画像形成装置１００は、インクジェット方式のプリンタに限定されず、サーマルプリンタ（昇華型、熱転写型等）、ドットインパクトプリンタ、ＬＥＤプリンタ、レーザープリンタ等、様々な印刷方式に適用可能である。
【００１８】
シートに画像形成後、そのシートを搬送ユニット１０２からスキャナユニット１０７まで搬送する。スキャナユニット１０７では、印刷画像や特殊パターンを読み取って印刷画像に問題がないかの確認や装置の状態確認を行う。本実施形態では、画像の確認方法において、印刷ヘッド１０６の状態を確認するパターンを読み込む方法でもよいし、元画像との比較を行う方法等を選択することが可能である。
【００１９】
スキャナユニット１０７から搬送されたシートはｅ方向に搬送され、カッタユニット１１０に導入される。カッタユニット１１０では、シートを所定の印刷単位の長さ毎に切断する。印刷する画像サイズに応じて所定の印刷単位の長さは異なる。例えば、Ｌ版写真では搬送方向の長さは１３５ｍｍ、Ａ４サイズでは搬送方向の長さは２９７ｍｍとなる。
【００２０】
カッタユニット１１０から搬送されたシートは、図中ｆ方向に搬送され、裏面印刷ユニット１１１に搬送される。裏面印刷ユニット１１１は、印刷画像毎の情報（例えば、オーダー管理用番号等）を印刷させるためのユニットである。
【００２１】
裏面印刷ユニット１１１から搬送される乾燥ユニット１１２は、インクが付与されたシートを短時間で乾燥させるために、図中ｇ方向に通過するシートを温風で加熱する。印刷単位長さに切断されたシートは１枚ずつ乾燥ユニット１１２内を通過して、図中ｈ方向に搬送されて仕分けユニット１１４に搬送される。仕分けユニット１１４では、図中ｉ方向に通過するシートを、センサで確認しながら印刷画像毎に設定されたトレー番号に積載する。仕分けユニット１１４では、複数の給紙段であるトレー（実施形態では、２２段）を保持しており、印刷単位の長さに応じて積載先のトレーを分別する。また、仕分けユニット１１４では、積載中や積載完了等の状態表示を用いて行う（例えば、ＬＥＤで表示）。仕分けユニット１１４の詳細については後述する。
【００２２】
シート巻取りユニット１１３は、両面印刷の際に、まず、表面画像形成から行い、カッタユニット１１０で切断せず、図中ｊ方向に通過するシートを、シート巻取りユニット１１３で巻き取る。シート巻取りユニット１１３は、すべての表面画像形成終了後、再度、巻き取ったシートを、図中ｋ方向に搬送して裏面画像形成を行わせる。
【００２３】
操作部ユニット１１５は、画像形成装置１００の各種操作の指示を受け付けるためのユーザインタフェースを提供し、このユーザインタフェースに対するユーザからの指示によって各種処理を実行する。この操作部ユニット１１５は、例えば、タッチパネルディスプレイで構成される。ユーザは、この操作部ユニット１１５により、指定のオーダー画像はどこのトレーに積載されているか、あるいは印刷中、印刷終了等のオーダー毎の印刷状況の確認、インク残量や紙の残量等の装置状態の確認、ヘッドクリーニング等の装置メンテナンスの実施を行うための操作／確認を行うことができる。
【００２４】
図２は画像形成装置１００における制御構成を示すブロック図である。画像を形成（印刷）する画像形成装置１００においては、ＰＣ等の情報処理装置からなる外部装置２０１からのジョブデータを処理し、記憶媒体に印刷を行う。ここで、ジョブデータは、ＰＤＬ等のデータ記述言語で記述されたデータであり、レンダリング処理によって画像が生成される。ここで、レンダリング処理とは、データを構成するデータ記述言語を解釈して画像を生成する処理である。
【００２５】
画像形成装置１００では、その制御を行うための主要な構成として、コントロール部２０３、レンダリング部２０４、ユーザインタフェース部２０５、及びプリンタエンジン部２０６を含んでいる。これらの構成要素はそれぞれ、例えば、図１の制御装置１０８に実装されるハードウェアとして実現されても良いし、ハードウェアとソフトウェアと協働して実現されても良い。
【００２６】
コントロール部２０３は、外部装置２０１からの受信データであるジョブデータを解析し、その解析結果やユーザインタフェース部２０５からの指示に基づき、レンダリング部２０４に送信するためのコマンドやデータを作成する。そして、コントロール部２０３は、レンダリング部２０４からレンダリング後のデータを受信し、プリンタエンジン部２０６へ送信して印刷を行う。
【００２７】
レンダリング部２０４は、コントロール部２０３から送信されたコマンドやデータに基づきレンダリング処理を行い印刷用ビットマップデータを生成する。その後、レンダリング部２０４は、その印刷用ビットマップデータをコントロール部２０３へ送信する。
【００２８】
ユーザインタフェース部２０５は、操作指示の受付や装置状態の表示を行う。プリンタエンジン部２０６は、コントロール部２０３から送信されたビットマップデータに対して色変換等の画像処理を施した後、記憶媒体への印刷（画像形成）を行う。
【００２９】
コントロール部２０３は、受信部２０７と、ジョブ管理部２０８と、ジョブ解析部２０９と、レンダリング管理部２１０と、予測実行判断部２１４と、ユーザインタフェース制御部２１５と、スプール部２１６と、を含む。コントロール部２０３において、受信部２０７は、外部装置２０１からジョブデータを受信し格納する。ジョブ管理部２０８は、受信したジョブデータをレンダリング部２０４に指示する単位（例えば、ページ単位）に分割して分割ジョブデータを生成し、その印刷順序を決定する。ジョブ解析部２０９は、その分割ジョブデータが必要とする処理内容を解析し、ジョブ管理部２０８に通知する。レンダリング管理部２１０は、ジョブ管理部２０８により指示された印刷順序に従ってレンダリング部２０４の画像補正処理部２１１とラスタライズ処理部２１２における処理の実行指示を行う。また、レンダリング管理部２１０は、予測実行判断部２１４に、レンダリング時間の予測実行の可否判断を指示し、その判断結果によって、レンダリング時間予測部２１３へ予測指示を行う。
【００３０】
予測実行判断部２１４は、レンダリング管理部２１０の指示で、レンダリング時間予測部２１３での予測対象の分割ジョブデータのレンダリング時間の予測実行の可否を判断する。予測方法については後述する。ユーザインタフェース制御部２１５は、各分割ジョブデータのステータスをユーザインタフェース部２０５に表示するための制御を行う。
【００３１】
スプール部２１６は、レンダリング時間予測結果保持部（第１の保持部）として機能し、レンダリング時間予測部２１３による予測対象の分割ジョブデータのレンダリング時間とその予測結果とを関連付けて、レンダリング予測時間情報として保持する。また、同時に、スプール部２１６は、レンダリング済データ保持部（第２の保持部）として機能し、レンダリング結果であるビットマップデータとそのビットマップデータに関するステータス情報を保持する。
【００３２】
レンダリング部２０４では、コントロール部２０３からのレンダリング指示に基づき、画像補正処理部２１１、ラスタライズ処理部２１２で処理を行う。画像補正処理部２１１では、分割ジョブデータ中の画像データに対してコマンドで指定された画像補正処理を行う。ラスタライズ処理部２１２では、論理描画等の処理を行い、ビットマップデータとそれに関するステータス情報の作成を行う。ステータス情報は、分割ジョブデータが正常にレンダリングされたか、エラーが発生したか等を示す情報であり、ユーザインタフェース部２０５上のジョブステータス表示に使用する。また、レンダリング部２０４では、コントロール部２０３からのレンダリング時間予測指示に基づき、レンダリング時間予測部２１３でレンダリング時間予測処理を行う。予測方法については解像度を下げて仮レンダリングを行う方法や、分割ジョブデータを解析して分割ジョブデータに含まれている画像の数や大きさ等から予測する方法があるが、特に限定しない。
【００３３】
尚、レンダリング部２０４では、コントロール部２０３からプリンタエンジン部２０６での印刷単位（例えば、Ａ４サイズのシート１ページに対応するページ単位）に対応する分割ジョブデータを受信する。そして、レンダリング部２０４では、この分割ジョブデータに対するレンダリング処理を実行することで、その処理結果である１ページ分のページデータ（ビットマップデータ）をコントロール部２０３へ送信する。
【００３４】
次に、コントロール部２０３でのジョブ実行処理を図３のフローチャートを用いて説明する。
【００３５】
尚、図３に示すフローチャートに示す処理に対応するプログラムが制御装置１０８のＲＯＭに格納されており、コントロール部２０３が制御装置１０８のＲＡＭ上でこのプログラムを実行することで、図３に示す処理が実現される。
【００３６】
まず、Ｓ３０１で、コントロール部２０３は、受信部２０７で外部装置２０１からジョブデータを受信し、ジョブ管理部２０８で分割された分割ジョブデータをジョブ解析部２０９で解析する。Ｓ３０２で、コントロール部２０３は、レンダリング管理部２１０からレンダリング部２０４に対してレンダリング指示を発行し、レンダリング処理を行う。Ｓ３０３で、コントロール部２０３は、レンダリング処理の結果であるビットマップデータとそのステータス情報をレンダリング管理部２１０で受信し、スプール部２１６に保持する。Ｓ３０４で、コントロール部２０３は、ジョブ管理部２０８でスプール部２１６から印刷されるべき順序でビットマップデータを取得して、プリンタエンジン部２０６へ送信し、印刷を指示する。
【００３７】
次に、コントロール部２０３でのレンダリング時間予測処理を図４のフローチャートを用いて説明する。
【００３８】
尚、図４に示すフローチャートに示す処理に対応するプログラムが制御装置１０８のＲＯＭに格納されており、コントロール部２０３が制御装置１０８のＲＡＭ上でこのプログラムを実行することで、図４に示す処理が実現される。
【００３９】
まず、Ｓ４０１で、コントロール部２０３は、レンダリング管理部２１０が予測する分割ジョブデータがあるか否かを判断する。この判断は、受信部２０７が受信し、分割した分割ジョブデータで、まだ、レンダリング部２０４にレンダリング時間予測指示もレンダリング指示も発行していない分割ジョブデータがある場合に予測する分割ジョブデータ（予測対象のジョブデータ）があると判断する。予測対象のジョブデータがないと判断した場合（Ｓ４０１でＮＯ）、Ｓ４０２で、コントロール部２０３は、その状態を予測を行っていない状態（予測停止中）に設定し、そのことを示す状態情報を保持して、処理を終了する。
【００４０】
一方、予測対象のジョブデータがあると判断した場合（Ｓ４０１でＹＥＳ）、Ｓ４０３で、コントロール部２０３は、レンダリング時間を予測する予測対象のジョブデータを決定する。受信部２０７が受信し、分割した分割ジョブデータにおいて、まだ、レンダリング部２０４にレンダリング時間予測指示もレンダリング指示も発行していない分割ジョブデータの中で一番早くプリンタエンジン部２０６へ送信すべきジョブデータを予測対象のジョブデータに決定する。Ｓ４０４で、コントロール部２０３は、予測実行判断部２１４で、分割ジョブデータのレンダリング時間を予測できるタイミングであるか否かを判断する予測可否判断処理を実行する。この予測可否判断処理の詳細については後述する。
【００４１】
Ｓ４０５で、コントロール部２０３は、予測実行判断部２１４での判断結果を元にレンダリング管理部２１０でレンダリング時間を予測できるか否かを判断する。予測できない場合（Ｓ４０５でＮＯ）、Ｓ４０６で、コントロール部２０３は、その状態を予測を行っていない状態（予測停止中）に設定し、そのことを示す状態情報を保持し、その後、Ｓ４０１に戻る。前回のＳ４０１における判定後に、新たに外部装置２０１からジョブデータが投入された場合や、レンダリング部２０４からレンダリング結果を受信した場合、Ｓ４０１やＳ４０４の判断結果が変わる可能性があるからである。
【００４２】
一方、予測できる場合（Ｓ４０５でＹＥＳ）、Ｓ４０７で、コントロール部２０３は、その状態を予測を行っている状態（予測実行中）に設定し、そのことを示す状態情報を保持する。Ｓ４０８で、コントロール部２０３は、レンダリング時間予測部２１３で予測対象のジョブデータのレンダリング時間の予測を行い、その予測結果をレンダリング管理部２１０に通知し、その後、Ｓ４０１へ戻る。
【００４３】
次に、予測実行判断部２１４による予測可否判断処理の詳細を、図５のフローチャートを用いて説明する。
【００４４】
尚、図５に示すフローチャートに示す処理に対応するプログラムが制御装置１０８のＲＯＭに格納されており、コントロール部２０３が制御装置１０８のＲＡＭ上でこのプログラムを実行することで、図５に示す処理が実現される。
【００４５】
まず、Ｓ５０１で、コントロール部２０３は、予測実行判断部２１４の状態が予測実行中であるか予測停止中であるかを判断する。この判断は、図４のＳ４０２、Ｓ４０６、及びＳ４０７で保持した状態情報に基づいて判断する。尚、Ｓ４０２、Ｓ４０６、Ｓ４０７のどのステップも経由していない場合や何らかの理由で状態情報が存在しない場合は、予測停止中と判断する。
【００４６】
Ｓ５０３の判断の結果、予測停止中である場合、Ｓ５０２で、コントロール部２０３は、スプール部２１６に保持された、レンダリング済で、かつプリンタエンジン部２０６へ未送信のページデータがＭページ以上あるか否かを判断する。Ｍページ以上ある場合（Ｓ５０２でＹＥＳ）、Ｓ５０４で、コントロール部２０３は、予測対象のジョブデータのレンダリング時間を予測できると判断して、処理を終了する。一方、Ｍページ以上ない場合（Ｓ５０２でＮＯ）、Ｓ５０５で、コントロール部２０３は、予測対象のジョブデータのレンダリング時間を予測できないと判断して、処理を終了する。
【００４７】
一方、Ｓ５０３の判断の結果、予測実行中である場合、Ｓ５０３で、コントロール部２０３は、スプール部２１６に保持されたレンダリング済で、かつプリンタエンジン部２０６へ未送信のページデータがＮページ以上あるか否かを判断する。Ｎページ以上ある場合（Ｓ５０３でＹＥＳ）、Ｓ５０４で、コントロール部２０３は、予測対象のジョブデータのレンダリング時間を予測できると判断して、処理を終了する。一方、Ｎページ以上ない場合（Ｓ５０３でＮＯ）、Ｓ５０５で、コントロール部２０３は、予測対象のジョブデータのレンダリング時間を予測できないと判断して、処理を終了する。尚、Ｓ５０２の第１の閾値である「Ｍ」とＳ５０３の第２の閾値である「Ｎ」の間には、Ｎ＜Ｍの関係が成り立つように決定される。また、ＭとＮの値は、画像形成装置１００の処理能力やメモリの記憶容量等のデバイス情報に基づいて予め決定されている。
【００４８】
以上の処理により、ある一定ページ以上のレンダリング済みのデータが存在する場合、すなわち、ある一定ページ以上のスプール済のビットマップデータが蓄積された場合、レンダリング時間を予測できると判断し、予測が行われ始めた後でスプール済のビットマップデータが減ってもすぐには予測をやめず連続して予測が実行できるようになる。
【００４９】
次に、図３、図４、及び図５のフローチャートによる、分割ジョブデータの実行と予測の一例を図８を用いて説明する。図８は左から右に時間の経過を表している。
【００５０】
列８０１は、レンダリング部２０４でレンダリングした分割ジョブデータ（ＲＩＰ１、ＲＩＰ２、．．．、ＲＩＰ１３）を矢印で示している。列８０２は、プリンタエンジン部２０６で印刷した分割ジョブデータ（印刷１、印刷２、．．．、印刷１０）を矢印で示している。列８０３は、レンダリング時間予測部２１３でレンダリング時間を予測したジョブデータ（予測５、予測６、．．．、予測１９）を矢印で示している。
【００５１】
８０１、８０２、８０３の各矢印の番号は同一ジョブを表しており、例えば、ＲＩＰ５と印刷５と予測５は、ジョブデータ５のそれぞれレンダリング、印刷、レンダリング時間予測を表している。全てのジョブデータは、１ページ分のビットマップデータで、ジョブデータ５以外のジョブデータは全て同一のレンダリング負荷であり、ジョブデータ５のみ、他のジョブデータのレンダリング時間に比べてレンダリング時間がかかるジョブデータであるとする。また、図８に示す全ての分割ジョブデータが受信部２０７で受信済であるとする。
【００５２】
図３のフローチャートに沿って、ジョブデータ１、ジョブデータ２、ジョブデータ３と順番にレンダリングを行う。そして、分割ジョブデータのレンダリングがある程度終了したときに（図３ではジョブデータ３のレンダリング終了したときに）、印刷を開始する。ジョブデータ１の印刷がジョブデータ３のレンダリング後に行われる理由は、ある程度、スプール部２１６にビットマップデータが格納されてから印刷を開始するためである。このように構成することにより、あるページにおいてレンダリングに時間がかかってしまうことによる印刷処理の停止するのを抑制することができる。
【００５３】
また、分割ジョブデータのレンダリングがある程度終了したときに（図３ではジョブデータ３のレンダリング終了したときに）、レンダリング時間の予測を開始する。ジョブデータ４、５、９、１０、１１、１２、１３のレンダリングが、他のジョブデータに比べて長くなっているのは同じ時間にレンダリング時間の予測処理が行われているためである。
【００５４】
図８は、図５のＳ５０２の「Ｍ」を「３」、Ｓ５０３の「Ｎ」を「２」に設定して処理を行った場合のそれぞれの処理の実行タイミングを示している。
【００５５】
ジョブデータ１のレンダリング開始からジョブデータ３のレンダリング終了までは、Ｓ５０２の判定でレンダリング済のビットマップデータが３ページに満たないため、Ｓ５０５で、分割ジョブデータのレンダリング時間を予測できないと判断する。その後、ジョブデータ３のレンダリング終了時点でレンダリング済のビットマップデータが３ページになるため、Ｓ５０２の判断で、分割ジョブデータのレンダリング時間を予測できると判断する。これにより、Ｓ４０７で予測実行中に設定する。そして、Ｓ４０８でジョブデータ５のレンダリング時間の予測を開始する。この時点では、ジョブデータ３までのレンダリングは終了しており、ジョブデータ４のレンダリング指示が発行されており、ジョブデータ５は、まだ、レンダリング部２０４にレンダリング時間予測指示もレンダリング指示も発行していないためである（Ｓ４０１、Ｓ４０３）。
【００５６】
続けて、ジョブデータ９までのレンダリング時間の予測を行う。Ｓ４０８でジョブデータ９のレンダリング時間の予測が終了し、Ｓ４０１、Ｓ４０３、Ｓ４０４、Ｓ５０１、及びＳ５０３を実行する。ジョブデータ５のレンダリング時間が長いため、このタイミングではジョブデータ５がレンダリング中であり、ジョブデータ３が印刷中である。従って、レンダリング済で、かつプリンタエンジン部２０６へ未送信のページデータはジョブデータ４のページデータのみになる。これにより、Ｓ５０３で、レンダリング済のページデータが２ページ以上ないため、Ｓ５０５の判断で、分割ジョブデータのレンダリング時間を予測できないと判断し、Ｓ４０６で予測停止中に設定する。
【００５７】
再度、レンダリング時間の予測が始まるのは、ジョブデータ８のレンダリングが終了した直後である。この時点では、レンダリング済で、かつプリンタエンジン部２０６へ未送信のページデータは、ジョブデータ６、ジョブデータ７、及びジョブデータ８の３つとなり、Ｓ５０２の判断で、レンダリング済のページデータが３ページ以上あると判断し、Ｓ５０４へ遷移する。
【００５８】
以上説明したように、実施形態１によれば、予測を行うタイミングをレンダリング済のデータ量により判断し、判断の結果、レンダリング済のデータが少ない時には予測を行わず、レンダリング処理を優先して行う。そして、レンダリング済のデータが多い時にはレンダリング時間の予測を実行する。このようなレンダリング時間予測処理を実行することで、レンダリング処理が遅くなり印刷に間に合わなくなることを防止しつつ、レンダリング時間の予測を実行することができる。このように、レンダリング処理に余裕ができたタイミングで、レンダリング時間の予測を実行することにより、並列して実行するレンダリング処理の処理速度が低下しても、印刷が間に合わなくなることがない。
【００５９】
上述したように、実施形態１によれば、印刷時間に影響を与えずに、レンダリング時間の予測を行うことができる。
【００６０】
尚、レンダリング時間の予測は、各分割ジョブデータのレンダリングの終了時刻の予測であってもよいし、各分割ジョブデータのレンダリングの終了に必要な時間の予測であってもよい。また、レンダリング時間の予測結果は、ユーザ等に表示や音声等により通知できるようにすればよい。
【００６１】
＜実施形態２＞
実施形態２では、実施形態１の予測可否判断処理の変形例について説明する。そこで、実施形態２における予測実行判断部２１４による予測可否判断処理の詳細を、図６のフローチャートを用いて説明する。その他の構成は実施形態１と同じであるため説明を省略する。
【００６２】
尚、図６に示すフローチャートに示す処理に対応するプログラムが制御装置１０８のＲＯＭに格納されており、コントロール部２０３が制御装置１０８のＲＡＭ上でこのプログラムを実行することで、図６に示す処理が実現される。
【００６３】
まず、Ｓ６０１で、コントロール部２０３は、レンダリング中の分割ジョブデータのレンダリング時間の予測結果があるか否かを判断する。この判断は、Ｓ３０２においてレンダリングを行っているジョブデータのレンダリング時間の予測結果がスプール部２１６にあるかどうかを確認することで行う。レンダリング時間の予測結果がない場合（Ｓ６０１でＮＯ）、Ｓ６０４で、コントロール部２０３は、予測対象のジョブデータのレンダリング時間を予測できると判断して、処理を終了する。
【００６４】
一方、レンダリング時間の予測結果がある場合（Ｓ６０１でＹＥＳ）、Ｓ６０２で、コントロール部２０３は、レンダリング中のジョブデータのレンダリング時間の予測結果が一定時間Ｐ以上であるか否かを判断する。予測結果が一定時間Ｐ以上である場合（Ｓ６０２でＹＥＳ）、Ｓ６０３で、コントロール部２０３は、予測対象のジョブデータのレンダリング時間を予測できないと判断して、処理を終了する。一方、予測結果が一定時間Ｐ以上でない場合（Ｓ６０２でＮＯ）、Ｓ６０４で、コントロール部２０３は、予測対象のジョブデータのレンダリング時間を予測できると判断して、処理を終了する。尚、Ｐは、
適宜設定することができる。
【００６５】
次に、図３、図４、及び図６のフローチャートによる、分割ジョブデータの実行と予測の一例を図９を用いて説明する。図９は左から右に時間の経過を表している。
【００６６】
列９０１は、レンダリング部２０４でレンダリングしたジョブデータ（ＲＩＰ１、ＲＩＰ２、．．．、ＲＩＰ１３）を矢印で示している。列９０２は、プリンタエンジン部２０６で印刷したジョブデータ（印刷１、印刷２、．．．、印刷１０）を矢印で示している。列９０３は、レンダリング時間予測部２１３でレンダリング時間を予測したジョブデータ（予測２、予測６、．．．、予測２４）を矢印で示している。
【００６７】
９０１、９０２、９０３の各矢印の番号は同一ジョブを表しており、例えば、ＲＩＰ５と印刷５と予測５は、ジョブデータ５のそれぞれレンダリング、印刷、レンダリング時間予測を表している。全てのジョブデータは、１ページ分のビットマップデータで、ジョブデータ５以外のジョブデータは全て同一のレンダリング負荷で、そのレンダリング時間は１秒であるのに対し、ジョブデータ５のみレンダリング時間は４秒であるとする。また、図９に示す全てのジョブデータが受信部２０７で受信済みであるとする。
【００６８】
図３のフローチャートに沿って、ジョブデータ１、ジョブデータ２、ジョブデータ３と順番にレンダリングを行い、図４及び図６のフローチャートに沿ってレンダリング時間予測処理を行う。また、図６のＳ６０２における一定時間Ｐを３秒とする。
【００６９】
ジョブデータ１のレンダリング中は、Ｓ６０１においてジョブデータ１のレンダリング時間の予測結果がないため、Ｓ６０４において予測できると判断する。そして、Ｓ４０８で、ジョブデータ２のレンダリング時間の予測を開始する。この時点では、ジョブデータ１のレンダリング指示が発行されており、ジョブデータ２は、まだ、レンダリング部２０４にレンダリング時間予測指示もレンダリング指示も発行していないためである（Ｓ４０１，Ｓ４０３）。
【００７０】
図９に示すように、ジョブデータ１のレンダリング中に、ジョブデータ２、ジョブデータ３のレンダリング時間の予測結果が得られ、ジョブデータ２のレンダリング中に、ジョブデータ４のレンダリング時間の予測結果が得られる。したがって、ジョブデータ２、ジョブデータ３、及びジョブデータ４のレンダリング中は、Ｓ６０１においてジョブデータ２、ジョブデータ３、及びジョブデータ４のレンダリング時間の予測結果があるため、Ｓ６０２に遷移する。Ｓ６０２で、ジョブデータ２、ジョブデータ３、及びジョブデータ４のレンダリング時間の予測結果はそれぞれ１秒であるため、Ｓ６０４において、予測できると判断する。そして、Ｓ４０８で、ジョブデータ２、ジョブデータ３、及びジョブデータ４のレンダリング中は、レンダリング時間の予測を実行する。
【００７１】
ジョブデータ５のレンダリング中は、Ｓ６０１においてジョブデータ５のレンダリング時間の予測結果があるため、Ｓ６０２に遷移する。Ｓ６０２で、ジョブデータ５のレンダリング時間の予測結果は４秒であるため、Ｓ６０３において、予測できないと判断する。そして、Ｓ４０６で、予測停止中に設定する。ジョブデータ６以降のレンダリング中は、ジョブデータ２、ジョブデータ３、及びジョブデータ４のレンダリング中と同様である。
【００７２】
以上説明したように、実施形態２によれば、レンダリング時間の予測を行うタイミングをレンダリング中の分割ジョブデータのレンダリング時間の予測結果に基づいて判断する。具体的には、レンダリング中の分割ジョブデータのレンダリング時間の予測結果が示す時間が長い場合は、当該ジョブデータのレンダリング中は予測を行わず、レンダリング処理を優先して行う。このようなレンダリング時間予測処理を実行することで、レンダリング処理が遅くなり印刷に間に合わなくなるようなタイミングを避けて、レンダリング時間の予測を実行することができる。
【００７３】
＜実施形態３＞
実施形態３では、実施形態１の予測可否判断処理の変形例について説明する。そこで、実施形態３における予測実行判断部２１４による予測可否判断処理の詳細を、図７のフローチャートを用いて説明する。その他の構成は実施形態１と同じであるため説明を省略する。
【００７４】
尚、図７に示すフローチャートに示す処理に対応するプログラムが制御装置１０８のＲＯＭに格納されており、コントロール部２０３が制御装置１０８のＲＡＭ上でこのプログラムを実行することで、図７に示す処理が実現される。
【００７５】
まず、Ｓ７０１で、コントロール部２０３は、レンダリング中の分割ジョブデータのレンダリング時間の予測結果があるか否かを判断する。この判断は、Ｓ３０２においてレンダリングを行っている分割ジョブデータのレンダリング時間の予測結果がスプール部２１６にあるかどうかを確認することで行う。レンダリング時間の予測結果がない場合（Ｓ７０１でＮＯ）、Ｓ７０３で、コントロール部２０３は、予測実行判断部２１４の状態が予測実行中であるか停止中であるかを判断する。この判断は、図４のＳ４０２、Ｓ４０６、及びＳ４０７で保持した状態情報に基づいて判断する。尚、Ｓ４０２、Ｓ４０６、Ｓ４０７のどのステップも経由していない場合や何らかの理由で状態情報が存在しない場合は、予測停止中と判断する。
【００７６】
Ｓ７０３の判断の結果、予測停止中である場合、Ｓ７０４で、コントロール部２０３は、スプール部２１６に保持された、レンダリング済み（画像処理済み）で、プリンタエンジン部２０６へ未送信のページデータがＭページ以上あるか否かを判断する。Ｍページ以上ある場合（Ｓ７０４でＹＥＳ）、Ｓ７０７で、コントロール部２０３は、予測対象のジョブデータのレンダリング時間を予測できると判断して、処理を終了する。一方、Ｍページ以上ない場合（Ｓ７０４でＮＯ）、Ｓ７０６で、コントロール部２０３は、予測対象のジョブデータのレンダリング時間を予測できないと判断して、処理を終了する。
【００７７】
一方、Ｓ７０３の判断の結果、予測実行中である場合、Ｓ７０５で、コントロール部２０３は、スプール部２１６に保持されたレンダリング済で、かつプリンタエンジン部２０６へ未送信のページデータがＮページ以上あるか否かを判断する。Ｎページ以上ある場合（Ｓ７０５でＹＥＳ）、Ｓ７０７で、コントロール部２０３は、予測対象のジョブデータのレンダリング時間を予測できると判断して、処理を終了する。一方、Ｎページ以上ない場合（Ｓ７０５でＮＯ）、Ｓ７０６で、コントロール部２０３は、予測対象のジョブデータのレンダリング時間を予測できないと判断して、処理を終了する。尚、Ｓ７０４の「Ｍ」とＳ７０５の「Ｎ」の間にはＮ＜Ｍの関係が成り立つように適宜設定する。また、ＭとＮの値は、画像形成装置１００の処理能力やメモリの記憶容量等のデバイス情報に基づいて予め決定されている。
【００７８】
以上の処理により、ある一定ページ以上のスプール済のビットマップデータが蓄積された後、レンダリング時間を予測できると判断し、予測が行われ始めた後でスプール済みのビットマップデータが減ってもすぐには予測をやめず連続して予測が実行できるようになる。
【００７９】
Ｓ７０１の判断の結果、レンダリング時間の予測結果がある場合（Ｓ７０１でＹＥＳ）、Ｓ７０２で、コントロール部２０３は、レンダリング中の分割ジョブデータの予測結果が一定時間Ｐ以上であるか否かを判断する。予測結果が一定時間Ｐ以上である場合（Ｓ７０２でＹＥＳ）、Ｓ７０６で、コントロール部２０３は、予測対象のジョブデータのレンダリング時間を予測できないと判断して、処理を終了する。一方、予測結果が一定時間Ｐ以上でない場合（Ｓ７０２でＮＯ）、Ｓ７０７で、コントロール部２０３は、予測対象のジョブデータのレンダリング時間を予測できると判断して、処理を終了する。
【００８０】
次に、図３、図４、及び図７のフローチャートによる、分割ジョブデータの実行と予測の一例を図１０を用いて説明する。図１０は左から右に時間の経過を表している。
【００８１】
列１００１は、レンダリング部２０４でレンダリングしたジョブデータ（ＲＩＰ１、ＲＩＰ２、．．．、ＲＩＰ１３）を矢印で示している。列１００２は、プリンタエンジン部２０６で印刷したジョブデータ（印刷１、印刷２、．．．、印刷１０）を矢印で示している。列１００３は、レンダリング時間予測部２１３でレンダリング時間を予測したジョブデータ（予測２、予測６、．．．、予測２２）を矢印で示している。
【００８２】
１００１、１００２、１００３の各矢印の番号は同一ジョブを表しており、例えば、ＲＩＰ５と印刷５と予測５は、ジョブデータ５のそれぞれレンダリング、印刷、レンダリング時間予測を表している。全てのジョブデータは、１ページ分のビットマップデータで、ジョブデータ５以外のジョブデータは全て同一のレンダリング負荷で、そのレンダリング時間は１秒であるのに対し、ジョブデータ５のみレンダリング時間は４秒であるとする。また、図１０に示す全てのジョブデータが受信部２０７で受信済みであるとする。
【００８３】
図３のフローチャートに沿って、ジョブデータ１、ジョブデータ２、ジョブデータ３と順番にレンダリングを行い、図４及び図７のフローチャートに沿ってレンダリング時間予測処理を行う。また、図７のＳ７０２における一定時間Ｐを３秒、Ｓ７０４のＭを３、Ｓ７０５のＮを２とする。
【００８４】
ジョブデータ１では、Ｓ７０１においてジョブデータ１のレンダリング時間の予測結果がないため、Ｓ７０３に遷移する。Ｓ７０３で、まだ、予測を始めていないため、Ｓ７０４に遷移する。Ｓ７０４の判断で、レンダリング済のビットマップデータが３ページに満たないため、Ｓ７０６において、予測できないと判断する。ジョブデータ２のレンダリング開始からジョブデータ３のレンダリングの終了時点までは同様である。ジョブデータ３のレンダリング終了時点で、レンダリング済のビットマップデータが３ページになるため、Ｓ７０７において、予測できると判断する。これにより、Ｓ４０７で、予測実行中に設定する。そして、Ｓ４０８で、ジョブデータ５のレンダリング時間の予測を開始する。
【００８５】
ジョブデータ５のレンダリング中は、Ｓ７０１においてジョブデータ５のレンダリング時間の予測結果があるため、Ｓ７０２に遷移する。Ｓ７０２で、ジョブデータ５のレンダリング時間の予測結果は４秒であるため、Ｓ７０６に遷移する。Ｓ７０６において、予測できないと判断する。そして、Ｓ４０６で、予測停止中に設定する。すなわち、ジョブデータ５のレンダリング中は、レンダリング時間の新たな予測は行わない。ジョブデータ６以降のレンダリング中は、レンダリングしている分割ジョブデータのレンダリング時間の予測結果があるため、Ｓ７０１からＳ７０２に遷移し、レンダリング時間の予測結果が１秒であるため、Ｓ７０７において、予測できると判断する。
【００８６】
以上説明したように、実施形態３によれば、レンダリング中のジョブデータのレンダリング時間の予測結果がある場合、レンダリング時間の予測を行うタイミングを、その予測結果により判断する。一方、レンダリング時間の予測結果がない場合、レンダリング時間の予測を行うタイミングを、レンダリング済のデータ量により判断する。このようなレンダリング時間予測処理を実行することで、レンダリング処理が遅くなり印刷に間に合わなくなるようなタイミングを避けて予測を実行することができる。
【００８７】
尚、上述した実施形態では、１つのジョブデータを複数の印刷単位（ページ単位）に分割する場合を例に挙げて説明したが、これに限定されるものではない。例えば、ジョブデータを分割せずに、ジョブ単位でレンダリングの予測時間を特定する場合にも適用することができる。例えば、複数のジョブデータをコントロール部が受信した場合、予測実行判断部２１４がジョブ単位でレンダリングの時間を予測するか否かを判断するようにしてもよい。この場合は、Ｓ５０３、Ｓ７０５では、レンダリング済のジョブデータがＮ以上あるか、Ｓ５０２、Ｓ７０４では、レンダリング済のジョブデータがＭ以上あるか判断すればよい。そして、Ｓ６０２、Ｓ７０２では、レンダリング中のジョブデータのレンダリング時間の予想時間がＰ以上か判断すればよい。
【００８８】
尚、以上の実施形態の機能は以下の構成によっても実現することができる。つまり、本実施形態の処理を行うためのプログラムコードをシステムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）がプログラムコードを実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することとなり、またそのプログラムコードを記憶した記憶媒体も本実施形態の機能を実現することになる。
【００８９】
また、本実施形態の機能を実現するためのプログラムコードを、１つのコンピュータ（ＣＰＵ、ＭＰＵ）で実行する場合であってもよいし、複数のコンピュータが協働することによって実行する場合であってもよい。さらに、プログラムコードをコンピュータが実行する場合であってもよいし、プログラムコードの機能を実現するための回路等のハードウェアを設けてもよい。またはプログラムコードの一部をハードウェアで実現し、残りの部分をコンピュータが実行する場合であってもよい。また、ＣＰＵも１つのＣＰＵで全ての処理を行うものに限らず、複数のＣＰＵが適宜連携をしながら処理を行うものとしてもよい。
【符号の説明】
【００９０】
１００：画像処理装置、２０３：コントロール部、２０４：レンダリング部、２０５：ユーザインタフェース部、２０６：プリンタエンジン部
【図１】
2015199222.tif 000003
【図２】
2015199222.tif 000004
【図３】
2015199222.tif 000005
【図４】
2015199222.tif 000006
【図５】
2015199222.tif 000007
【図６】
2015199222.tif 000008
【図７】
2015199222.tif 000009
【図８】
2015199222.tif 000010
【図９】
2015199222.tif 000011
【図１０】
2015199222.tif 000012