画像形成装置、制御方法、及びプログラム
【課題】描画処理モジュールと強制停止できない画像処理モジュールが直列に接続されている構成では、プリント中で描画処理モジュールと画像処理モジュールが処理の実行中は、ユーザからのジョブキャンセル要求に応じて強制停止させることができない。そのため、ユーザのジョブキャンセルに対して、プリンタがジョブキャンセルを完了させるのに多大な時間が掛かることがあり、利便性が損なわれているという課題がある。
【解決手段】描画処理中の強制停止要求に対し、後段の画像処理モジュールが停止可能か否かを判定する出力先停止可否判断手段を設ける。出力先停止可否判定手段にて判定した結果、停止不可の場合は、画像処理モジュールによる画像処理を完了させるために必要な個数の予め決められた色値のピクセルデータを送信する。一方で停止可の場合は、直ちに描画処理モジュールを停止させる。
【解決手段】描画処理中の強制停止要求に対し、後段の画像処理モジュールが停止可能か否かを判定する出力先停止可否判断手段を設ける。出力先停止可否判定手段にて判定した結果、停止不可の場合は、画像処理モジュールによる画像処理を完了させるために必要な個数の予め決められた色値のピクセルデータを送信する。一方で停止可の場合は、直ちに描画処理モジュールを停止させる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像形成装置、制御方法、及びプログラムに関する。特に、プリンタでのプリントジョブ実行中に、そのプリントジョブを強制停止させる強制停止方法に関する。
【背景技術】
【0002】
ユーザからジョブキャンセルの要求がプリンタに送信されると、プリンタ内部の各モジュールは、現在行っている処理の強制停止を行う。このとき、一部の画像処理モジュールにおいては強制停止の実行に伴い、制御モジュールは既に出力した画像データが格納されているメモリ領域の初期化をしなければならない。そのため強制停止用に新たな制御シーケンスを作成する必要があり、その分だけプリンタの特にメモリ管理に関わる制御が煩雑になりプリンタの制御モジュールの保守性が低下してしまう可能性がある。
【0003】
上述したような背景において、ユーザからジョブキャンセルの要求がプリンタに送信されても強制停止をさせずに、一通りの処理を実行させる強制停止不可な画像処理モジュールがプリンタ内部に存在する。強制停止不可のモジュールの停止方法として、特許文献1では、画像処理モジュールが強制停止不可かつ、後段の装置が停止済みの場合に画像処理モジュール内部で廃却処理をする。しかしこの技術では、描画部とその後段に画像処理モジュールが直列に接続されている構成の場合、描画部による中間データに従った描画処理が完了するまで画像処理モジュールは停止することができない。更に描画処理モジュールの処理に掛かる時間は、中間データにて定義された処理に依存している。ユーザはプリントデータの処理に時間がかかるほどジョブキャンセルを実行する可能性が高い。つまり、このようなジョブキャンセルが実行される可能性が高いジョブほど、ジョブキャンセルが完了するまでの時間も掛かってしまうという問題がある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2003−256179号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
描画処理モジュールと強制停止できない画像処理モジュールが直列に接続されている構成では、プリント処理の際に描画処理モジュールと画像処理モジュールとが実行中の場合、ユーザからのジョブキャンセル要求に応じて強制停止させることができない。そのため、ユーザのジョブキャンセル要求に対して、プリンタがジョブキャンセルを完了させるのに多大な時間が掛かることがある。これにより、ユーザの利便性が損なわれるという課題がある。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本発明は以下の構成を有する。すなわち、プリントデータに基づいて画素データを生成する描画部と、該画素データに対して画像処理を行う画像処理部とを有する画像形成装置であって、前記描画部および前記画像処理部による処理を行っている際に、制御部から当該処理に対する停止指示を受けた場合において、前記描画部が生成する画素データの出力先である前記画像処理部が停止可能か否かを判定する判定手段と、前記判定手段によって停止不可と判定された場合に、前記描画部による当該画素データを生成する処理において未処理の画素の数だけ予め定められた色値の画素データを前記画像処理部に送信する送信手段とを有し、前記画像処理部は、前記送信手段により送信された前記予め定められた色値の画素データを用いて画像処理を行う。
【0007】
また、本発明は別の構成として、以下の構成を有する。すなわち、プリントデータに基づいて画素データを生成する描画部と、該画素データに対して画像処理を行う画像処理部とを有する画像形成装置であって、前記描画部および前記画像処理部による処理を行っている際に、制御部から当該処理に対する停止指示を受けた場合において、前記停止指示を受けた時点での前記描画部における前記プリントデータに対する処理の進行状況に応じて、当該処理を停止するか否かを判定する第一判定手段と、前記第一判定手段により停止すると判定された場合に、前記描画部が生成する画素データの出力先である前記画像処理部が停止可能か否かを判定する第二判定手段と、前記第二判定手段によって停止不可と判定された場合に、前記描画部による当該画素データを生成する処理において未処理の画素の数だけ予め定められた色値の画素データを前記画像処理部に送信する送信手段とを有し、前記画像処理部は、前記送信手段により送信された前記予め定められた色値の画素データを用いて画像処理を行う。
【0008】
また、本発明は別の構成として、以下の構成を有する。すなわち、プリントデータに基づいて画素データとして描画する描画部と、該画素データに対して画像処理を行う画像処理部とを有する画像形成装置であって、前記描画部および前記画像処理部による処理を行っている際に、制御部から当該処理に対する一時停止指示を受けた場合において、前記一時停止指示を受信する直前までに処理済みの画素データ、および、前記描画部による当該画素データを生成する処理において未処理の画素の位置情報を保持する保持手段と、前記一時停止指示を受けた場合において、前記描画部が生成する画素データの出力先である前記画像処理部が停止可能か否かを判定する判定手段と、前記判定手段によって停止不可と判定された場合に、前記描画部による当該画素データを生成する処理において未処理の画素の数だけ予め定められた色値の画素データを前記画像処理部に送信する第一送信手段と、当該画像形成装置が一時停止から復帰した後に、前記保持手段によって保持された描画処理済みのプリントデータに含まれる画素の数だけ前記予め定められた色値を前記画像処理部に送信する第二送信手段とを有し、前記描画部は、当該画像形成装置が一時停止から復帰した後に、前記保持手段によって保持された前記位置情報を元に、描画処理を続行する。
【発明の効果】
【0009】
本発明により、描画部がある一定の時間以内に高速に強制停止を完了させることが可能となる。そのため、ユーザからのジョブキャンセル要求に対して、即時に対応することができ、プリンタの利便性が向上する。
【図面の簡単な説明】
【0010】
【図1】本発明に係る印刷システムの概要を示したブロック図。
【図2】本発明に係るプリントコントローラ内部の概要を示したブロック図。
【図3】本発明に係る描画処理の概要を示したブロック図。
【図4】本発明に係るパネル操作部の一例を示した図
【図5】本発明に係る描画部の開始から終了までの概要を示したシーケンス図。
【図6】本発明に係る描画処理に関する制御処理手順を示したフローチャート。
【図7】本発明に係る描画処理手順を示したフローチャート。
【図8】第一実施形態に係る処理の概要を示した図。
【図9】第一実施形態に係る描画処理の開始から強制停止の完了までの概要を示したシーケンス図。
【図10】第一実施形態に係る描画処理の制御処理を示したフローチャート。
【図11】第一実施形態に係る描画処理を示したフローチャート。
【図12】第二実施形態に係る処理の概要を示した図。
【図13A】第二実施形態に係る描画処理の制御処理を示したフローチャート。
【図13B】第二実施形態に係る描画処理の制御処理を示したフローチャート。
【図14】第二実施形態に係る描画処理を示したフローチャート。
【図15A】第三実施形態に係る処理の概要を示した図。
【図15B】第三実施形態に係る処理の概要を示した図。
【図16A】第三実施形態に係る描画処理の制御処理を示したフローチャート。
【図16B】第三実施形態に係る描画処理の制御処理を示したフローチャート。
【図17】第三実施形態に係る描画処理を示したフローチャート。
【発明を実施するための形態】
【0011】
[システム構成]
以下、本発明を実施するための形態について図面を用いて説明する。図1は、本発明に適用される印刷システムの一例を示している。印刷システムにおいて、情報処理装置であるホストPC101、LAN(Local Area Network)102、画像形成装置であるプリンタ103を有する。ホストPC101とプリンタ103は、LAN102を介して接続されている。なお、図1には、示されていないが、印刷システムは他の装置を含んでいても構わない。ユーザがホストPC101からLAN102経由で送信したプリントデータに従って、プリンタ103で印刷処理が行われる。プリンタ103はユーザインタフェースであるパネル操作部104を備え、パネル操作部104にて、プリントジョブのキャンセル、給紙段の選択などをユーザが指示することができる。プリントコントローラ部105は、ホストPC101を介したユーザからの印刷指示を受けると、印刷指示と共に送られるプリントデータに対して画像を形成するための画像処理を行い、画像データの形成を行う。このとき形成された画像データは、プリントエンジン部106に送られる。プリントエンジン部106では、画像データを元にトナーを紙媒体に定着させ、排紙処理を行う。なお、ここでのプリントデータは、ホストPC101から受信する構成に限られず、例えば、他の装置にて保持されているデータをユーザの印刷指示に基づいて取得しても構わない。また、本実施形態において、プリントデータは、PDL(Print description Language)形式で定義されているものとして説明するが、これに限定されるものではない。
【0012】
図2は、プリンタ103が有するプリントコントローラ部105の構成の一例を示している。まず、プリントコントローラ部105内部の各種モジュールはシステムバス201で相互に接続されている。そして、外部モジュールとのデータの入出力を取り扱うI/Fとして、プリントエンジンI/F203、ユーザI/F203、ネットワークI/F204が存在する。プリントエンジンI/F202は、プリントエンジン部106とプリントコントローラ部105との間におけるデータ通信のI/Fである。プリントコントローラ部105で生成した画像データは、プリントエンジンI/F202を経由してプリントエンジン部106に送られる。ユーザI/F203は、パネル操作部104とプリントコントローラ部105との間におけるデータ通信のI/Fである。ユーザがパネル操作部104で指定した命令内容は、ユーザI/F203を経由してプリントコントローラ部105に送られる。ネットワークI/F203は、LAN102を経由したホストPC101とプリンタコントローラとの間におけるデータ通信のI/Fである。ユーザがホストPC101で指定した印刷命令は、ネットワークI/F204を経由してプリントコントローラ部105の内部に送られる。
【0013】
CPU(Central Processor Unit)205は、プリントコントローラ部105において、一部ないし全体の制御処理及び画像処理を担っている。またジョブ制御部206は、ネットワークI/F204からプリントコントローラ部105内部に送られて来たプリントデータを元にプリントエンジンI/F202に画像データを渡すまでの一連のプリントジョブの制御を担っている。プリントコントローラ部105では、ネットワークI/F204からプリントデータが送られたとき、ジョブ制御部206は、まずPDL解釈部207でプリントデータの内容解釈を行わせる。PDL解釈部207で解釈したプリントデータの内容は、中間データ生成部208に送られる。中間データ生成部208は、PDL解釈部207で行ったプリントデータの解釈結果に基づいて、描画部211が解釈可能な描画処理に必要な中間データの生成を行い、中間データ格納部213に順次格納する。
【0014】
中間データ格納部213に1ページ分の中間データが格納されたら、ジョブ制御部206は、描画部211に中間データ格納部213に格納された中間データを元にコントーン画像データ(連続的な階調の画像データ)の生成を行わせる。描画処理制御部209及び描画部211で生成された画像データは、基本的に画像処理部である画像処理H/W212を介してハーフトーン画像データ格納部215に格納される。また、例外的にコントーン画像データ格納部214に格納される場合もある。コントーン画像データ格納部214に描画部211で生成された画像データが格納される場合は、描画部211が縮退描画処理を行う場合である。
【0015】
ここで、縮退描画処理とは、中間データ生成部208が生成する中間データのデータ量が中間データ格納部213の容量の上限値に達した際に、既に中間データ格納部213に格納済みの中間データを対象にコントーン画像データの生成を行う描画処理のことである。縮退描画処理を行うことで、中間データ格納部213に格納されていた中間データがコントーン画像データとなり、コントーン画像データ格納部214に格納される。このため、中間データ格納部213に空きができ、中間データ生成部208が中間データの生成を続行することが可能となる。また、縮退描画処理にて生成された画像は、コントーン画像データ格納部214に格納された後、縮退描画処理発生後に生成される中間データに組み込まれる。このように縮退描画処理で生成された画像データは、再び描画処理に利用されるのでコントーン画像で保持する必要があり、コントーン画像データ格納部214に保持される。以降、コントーン画像データを生成する際において、縮退描画処理と区別するために、縮退描画処理でない描画処理を“正常描画処理”と表現する。
【0016】
また、コントーン画像データ格納部214及びハーフトーン画像データ格納部215に画像データを格納するとき、ページサイズ分の画像を縦方向において一定の高さで幾つかに分割したバンド単位で保持する。バンドは複数のスキャンラインからなり、1バンドあたりのスキャンライン数(高さ)は予め定義されているものとする。これは、画像処理H/W212が一回の画像処理で扱う処理単位がバンド単位であること及び、メモリ上に1ページ分の連続した領域を確保できない場合などへの対処することに起因する。なお、描画部211がどちらに出力するかは、縮退描画を実施するか否かの情報が出力先指定情報格納部217に格納され、出力先指定情報格納部217に格納された情報によって決められる。
【0017】
また、描画部211は、専用H/Wで構成され、描画部211を制御するために描画処理制御部209が存在する。また同様に画像処理H/W212を制御するために画像処理H/W制御部210が存在する。また、システム制御部216は、プリントコントローラ部105をシステムとして機能させるための基礎的な部分であり、OS(Operating System)を指す場合が多い。例えば時刻の取得を行いたい場合などは、システム制御部216から取得することになる。また、プリンタ103自体をCPU205とメモリ以外のハードウェアへの電力の供給を抑える省電力モードに移行させるか否かの制御なども行っている。
【0018】
強制停止回避情報格納部218は、詳細は後述するが、ユーザI/F203を介して取得したパネル操作部104からユーザが設定した情報を格納する。描画済みスキャンライン数格納部219は、1ページあたりの描画処理において、既に描画済みのスキャンライン数を数え上げるカウント情報が格納されている。バンド情報格納部220は、1バンド当たりの高さを示す情報が格納されている。また図2において、RAM(不図示)上に展開されCPU205で動くS/WモジュールとH/Wモジュールが分断された配置で示しているが、物理的にこの構成に限定するものではない。
【0019】
[描画部における処理の流れ]
図3は、描画部211で実施される処理の流れの概要を示している。描画部211では、中間データ格納部213から中間データを入力データとして、命令解釈部301、輪郭書き出し部302、重なり整列部303、色塗り部304、色合成部305を経て画像データのピクセル出力を行っている。つまり、画素データ(ピクセルデータ)を生成する。命令解釈部301では、中間データの内容に従って、描画部211がこれから実行するべき命令の内容を判断する。例えば、命令解釈部301が解釈して判断する内容には、次のスキャンラインの描画処理を実行する命令、描画処理自体を終了する命令などがある。ここでスキャンラインとは、描画部211にて輪郭書き出し部302から色合成部305までの1回の描画処理で実行できる処理単位を表している。つまり、ページサイズは、1以上のスキャンラインからなる。またスキャンラインの値が1の場合、ページサイズの画像データに対して、高さが1で、ページと同じ幅をもつイメージを指す。
【0020】
命令解釈部301が中間データに記載される命令を次のスキャンラインの描画処理を実行する命令と判断すると、輪郭書き出し部302から色合成部305までの処理が続いて実行される。輪郭書き出し部302は、中間データに含まれる描画オブジェクトから輪郭情報を取得する。ここで、輪郭情報とは、描画オブジェクトの輪郭の開始位置及び輪郭幅の2つの情報を指す。輪郭書き出し部302で取得された輪郭の情報が画像データの1スキャンライン分揃ったら、輪郭書き出し部302は、輪郭座標の情報を重なり整列部303に送る。重なり整列部303では、輪郭座標の情報と描画オブジェクト同士の重なりの上下関係を元に紙面に対して描画オブジェクトが正しい順番で並ぶように整列処理を行う。重なり整列部303で生成された整列済みの輪郭情報は、画像データの1スキャンライン分揃ったら、色塗り部304へ送られる。
【0021】
色塗り部304では、整列済みの輪郭情報に対して、輪郭で区切られる一つ一つの区間に対して色情報を付加する。また、輪郭で区切られた区間に色ではなく、写真データが付加される場合も、その写真データは、色塗り部で展開される。色塗り部304で生成された色情報が付加された整列済みの輪郭情報は、1スキャンライン分揃ったら、色合成部305へ送られる。色合成部305では、色情報が付加された整列済みの輪郭情報を元に輪郭で区切られた領域かつ、その区切られた領域のうち他の輪郭で区切られた領域と重なっている部分同士に対して、中間データに従った重なりルールを適用する。
【0022】
重なりルールとは、ROP(Raster OPerator)とアルファブレンドがある。ROPとは、領域同士が重なっている部分における、前面側と背面側の色値を表現するbit同士で行われる論理演算である。重なりルールとしてROPが指定された場合、前面側と背面側の領域を表現する色値の間で論理演算が行われた結果が出力される。アルファブレンドとは、輪郭で区切られた領域同士で重なっている部分に対して、重なっている両者のうち前面側及び背面側の色を混ぜて得られる色を出力する際において、その混ぜる前面側と背面側との色値の割合比の指定である。
【0023】
色合成部305では、重なりルールを適用し、重なっている領域における前面と背面との領域の色値からどのような色を出力するか決定する。色合成部305で行われた結果は、画像データの一つ一つのピクセルとして出力される。また前述のように描画部211の出力先には、コントーン画像データ格納部214及び画像処理H/W212及びのいずれかが選択される。すなわち、縮退描画処理による描画処理済みのピクセルを出力する場合は、描画部211の出力先はコントーン画像データ格納部214となり、縮退ではない正常描画処理による描画処理済みのピクセルを出力する場合は、画像処理H/W212となる。
【0024】
[パネル操作部]
図4(A)は、パネル操作部104の一例である。表示部401では、ユーザにプリンタ103に設定されている情報やユーザがプリンタに設定したい項目の表示し、ユーザに対して視覚的に提供する。表示部401に“プリント中”と表示されている際に、ユーザがジョブキャンセルボタン402を押下することにより、プリンタ103にて現時点で処理されているプリントジョブに強制停止を行うことができる。ユーザがメニューボタン403を押下することで、表示部401にユーザが設定できる項目及び、ユーザが確認できるプリンタ103内部の情報を選択できるようになる。ユーザは、メニューボタン403を押下した後に、表示部401に表示されるメニューの中で所望の項目を、選択ボタン404を用いて選択することができる。これにより、ユーザからの指示を受け付ける受付手段を実現する。
【0025】
[正常描画処理および画像処理シーケンス]
図5は、描画部211での正常描画処理の開始から終了まで及び、画像処理H/W212での画像処理の開始から終了までのシーケンスを示した図である。期間501は、CPU205が駆動している期間を示している。プリンタ103が正常描画処理を行うとき、期間501においてまず、画像処理H/W212に画像処理を実行可能な状態にするため、CPU205から画像処理H/W212へメッセージ502を送信する。ここでメッセージの送信とは、具体的には所定のレジスタあるいは、メモリに所定の値を書き込むことを意味している。
【0026】
CPU205から画像処理H/W212へのメッセージ送信により画像処理H/W212は、実行可能な状態となり描画部211からコントーンのピクセルデータを受け付け、ハーフトーンのピクセルデータを出力できるようになる。期間503は、画像処理H/Wが画像処理を実行可能な状態の期間を示している。画像処理H/W212は、描画部211から送られる最後のコントーンのピクセルデータを受け付け、ハーフトーンのピクセルデータを出力することで画像処理が完了する。
【0027】
CPU205は、画像処理H/W212が画像処理を完了したことを画像処理H/W212からメッセージ508を受信することで検知する。ここでメッセージの受信とは、具体的には所定のレジスタあるいは、メモリから所定の値が読み込めることを意味している。
【0028】
CPU205は、画像処理H/W212にメッセージ502を送信した後に、描画部211に中間データの描画開始のメッセージ504を送信する。これにより、描画部211にて描画処理が行われる。期間505は、描画部211が描画処理を実行している期間を示している。描画部211は、中間データから描画終了を読みことでその処理を完了させる。CPU205は、描画部211が描画処理を完了させたことを描画部211からメッセージ507を受信することで検知する。期間506は、CPU205が描画処理の完了待ちをしている期間である。CPU205は、ハーフトーン画像データ格納部215に画像が格納しきったことにより、プリントエンジン部106にハーフトーン画像を渡す。そのため、描画処理の完了待ちをしている期間は、CPU205がメッセージ504を送信した時点からメッセージ508を受信した時点までとなる。
【0029】
[正常描画処理および画像処理フロー]
図6は、描画部211での正常描画処理の開始から終了まで及び、画像処理H/W212での画像処理の開始から終了までのCPU205で実行される処理のフローチャートである。なお、図に示すフローチャートにおいて、破線矢印は別の図に示す処理との対応を示す。
【0030】
S601でジョブ制御部206は、これから実行される描画処理が縮退描画処理か否かを判断する。縮退描画処理か否かを判断するための情報は、中間データ生成部208が中間データ格納部213に1回分の描画処理で使用される中間データの生成を完了したときに、中間データ生成部208からジョブ制御部206に通知される。S601にて、ジョブ制御部206が縮退描画処理と判断した場合(S601にてYES)、S602からS603までの処理が実行される。一方で、縮退描画処理では無い正常描画処理の場合(S601にてNO)、S604からS606までの処理が実行される。
【0031】
S602では、画像処理H/W制御部210は、描画部211の出力先指定情報格納部217に、出力先がコントーン画像データ格納部214であることを書き込む。S603で画像処理H/W制御部210は、画像処理H/W212からCPU205へのメッセージが書き込まれる画像処理H/Wメッセージ受信レジスタに「処理完了」を書き込む。これは、縮退描画処理を行う場合、画像処理H/W212には描画部211からコントーンのピクセルデータか送信されないため、後述のS610でデッドロックが発生させないための処置である。その後、S607へ進む。
【0032】
S604では、画像処理H/W制御部210は、出力先指定情報格納部217に描画部211の出力先が画像処理H/W212であることを書き込む。S605では、画像処理H/W制御部210は、画像処理H/Wメッセージ送信レジスタに「開始」を書き込む。S605における処理が図5に示したメッセージ502の処理に相当し、これにより画像処理H/W212が画像処理を実行可能な状態となる。S606では、画像処理H/W制御部210は、画像処理H/Wメッセージ受信レジスタに「待機中」を書き込む。その後、S607へ進む。
【0033】
S607では、描画処理制御部209は、描画部メッセージ送信レジスタに「開始」を書き込む。S607における処理が図5に示したメッセージ504に相当し、これにより描画部211は、描画処理を開始する。S608では、描画処理制御部209は、描画部メッセージ受信レジスタに「待機中」を書き込む。S609では、描画処理制御部209は、描画処理メッセージ受信レジスタの値が「処理完了」となるまで待機する。S609にて、描画部メッセージ受信レジスタの値が「処理完了」となったことを確認すると、S610に処理が進む。S609にて「待機中」から「処理完了」に切り替わるタイミングが、図5に示すメッセージ507が実行されたタイミングとなる。S610にて画像処理H/W制御部210は、画像処理H/Wメッセージ受信レジスタの値が「処理完了」となるまで待機する。S610にて、画像処理H/Wメッセージ受信レジスタの値が「処理完了」となったことを確認すると、S611に処理が進む。S610にて「待機中」から「処理完了」に切り替わるタイミングが、図5に示すメッセージ508に相当する。
【0034】
S611にて、ジョブ制御部206は、出力先指定情報格納部217に格納された値を参照する。参照した結果、値が「コントーン画像データ格納部」であった場合、先ほどまで実施された描画処理が“縮退描画処理”であったと判断し(S611にてYES)、S612でジョブ制御部は、PDL解釈部207及び中間データ生成部208の処理を再開させる。一方で、参照した値が「ハーフトーン画像データ格納部」であった場合は、“正常描画処理”であったと判断し(S611にてNO)、S613でジョブ制御部206は、ハーフトーン画像データ格納部215に格納された画像データをプリントエンジンI/F202に渡す。
【0035】
なお以降の図の説明において、描画処理制御部メッセージ受信レジスタと描画処理制御部メッセージ送信レジスタはそれぞれ、描画部メッセージ送信レジスタと描画部メッセージ受信レジスタとそれぞれ同じものを指し示していることとする。これは、図の説明においてCPU205側がその中心に置かれているか、あるいは描画部211がその中心に置かれているかによって、使い分けることにする。
【0036】
[描画処理フロー]
図7は、描画部211で描画処理の開始から終了までに実行される処理のフローチャートである。なお、図に示すフローチャートにおいて、破線矢印は別の図に示す処理との対応を示す。
【0037】
S701で描画部211は、描画処理制御部メッセージ受信レジスタに格納されている値が「開始」となるまで待機する。描画処理制御部メッセージ受信レジスタに格納されている値が「開始」となったら、S702へ進む。S701にて、描画処理制御部メッセージ受信レジスタに格納されている値が「開始」となるタイミングが描画部211における図5に示すメッセージ504に相当する。S702では、描画部211は、変数RipEndに“FALSE”を書き込む。S703は、ループ制御で変数RipEndに“TRUE”が書き込まれるまで、S704からS707まで処理を繰り返す。
【0038】
S704にて、描画部211は、命令解釈部301による処理、すなわち中間データの解釈を行う。命令を解釈した結果、中間データの指示が次のスキャンラインの描画であった場合、S705に進む。S705にて、描画部211は、ページ当たりの1スキャンラインに対して輪郭書き出し部302から色合成部305までの処理を実行する。一方でS704にて、命令を解釈した結果、描画終了と解釈された場合、S706に進む。S706にて、描画部211は、描画処理制御部メッセージ送信レジスタに「処理完了」を書き込む。S706は、図5に示すメッセージ507に相当し、これによりCPU205は、描画部211の描画処理が完了したこと検知する。S707にて、描画部211は、変数RipEndに“TRUE”を書き込み、S704によるループから抜け出す。以上により、本処理フローを終了する。
【0039】
<第一実施形態>
以下、本発明を実施するための第一実施形態について図面を用いて説明する。図4(B)は、図4(A)と同様にプリンタ103のパネル操作部104を示している。表示部801に「現在、プリント中」と表示されているときは、プリントコントローラ部105では、プリントジョブが実行中であることを示している。このように表示部801に「現在、プリント中」という表示がされているときにジョブキャンセルボタン802を押下することで、パネル操作部104からユーザI/F203を介してジョブ制御部206にジョブキャンセルの指示(停止指示)が送信される。ジョブ制御部206にてジョブキャンセルが受信されると直ちに現在実施されているプリントジョブの強制停止が実行される。
【0040】
図8は、プリントジョブに対して強制停止が掛かるタイミングが正常描画処理である場合における処理の様子を示している。画像データ901は、描画部211にて描画されるコントーンの画像データを示している。画像データ901は、ページ幅がW、ページ高さがHであり、y=1からy=(H1−1)までのスキャンラインまで描画処理が済んでいる。そして、y=H1のスキャンライン902に対して描画処理を実施している最中である。描画部211がy=H1のスキャンライン902の描画処理を実施している最中に、ジョブ制御部206から描画部211に強制停止が掛かると、描画部211は、y=H1のスキャンラインは、中間データに従って描画処理が実行される。しかしながら、y=(H1+1)からy=HまでのH2分のスキャンラインについては、中間データの内容に関係なく、予め定められた色値を有する(H2*W)個分のピクセルデータを画像処理H/W212に出力する。画像処理H/W212は前述の通り途中で停止させることはできないため、現在処理しているスキャンラインの次のスキャンラインから予め決められた色値のピクセルデータを画像処理H/W212を止めるために必要な数だけ出力する。つまり、中間データに対して、未処理の画素の数だけ予め決められた色値を出力することとなる。この色値に関しては、未処理であることが明確に判定できる値を設定しても良い。このとき、色値は、通常は色値として設定され得ない値を設定してもよい。
【0041】
[画像処理シーケンス]
図9は、描画部211での正常描画処理の途中で強制停止を行った場合における画像処理H/W212での画像処理の開始から終了までのシーケンスを示した図である。基本的な構成は図5と同一である。具体的には、図5および図9において、期間1001と期間501、メッセージ1003とメッセージ502、期間1004と期間503、メッセージ1006とメッセージ504、期間1007と期間505、メッセージ1010とメッセージ507、メッセージ1012とメッセージ508は同じものを意味している。
【0042】
CPU205から描画部211への強制停止のメッセージは、必ず、CPU205から描画部211への描画開始のメッセージ1006と描画部211からCPU205への処理完了のメッセージ1010の間の期間にて発行されるものとする。強制停止のメッセージを描画部211が受け付けると、図8で説明した通りの挙動を描画部211は実施する。なお、停止指示は、ユーザがパネル操作部104を介して指示した際に行われても良いし、装置内のエラー等により、行われても良い。
【0043】
[強制停止時の描画処理および画像処理フロー]
図10は、第一実施形態における描画部211で実施される描画処理が途中で強制停止されるときの描画部211による描画開始から画像処理H/W212の処理終了までのCPU205で実行される処理のフローチャートである。なお、図に示すフローチャートにおいて、破線矢印は別の図に示す処理との対応を示す。
【0044】
S1101からS1107までの処理は、図6に示すS601からS607までの処理と同様のため省略する。S1108で描画処理制御部209は、描画部211の状態を示す変数RipStateに「描画」を書き込む。変数RipStateに描画部211の状態を書き込むことで描画部211からの「処理完了」のメッセージによって、描画処理が完了したのか、強制停止が完了したのかをCPU205側で判断することが可能となる。S1109にて、描画処理制御部209は、描画処理メッセージ受信レジスタに「待機中」を書き込む。S1110にて、ジョブ制御部206がユーザI/F203からジョブキャンセルの要求を受信する。
【0045】
S1111にて描画処理制御部209は、変数RipStateに「強制停止」を書き込む。そして、S1112にて描画処理制御部209は、描画処理メッセージ送信レジスタに「強制停止」を書き込む。S1112は、図9に示したメッセージ1009に相当し、これによって、描画部211は強制停止ための処理に移行することができる。S1113、S1114の処理は、図6に示すS609、S610と同様なので省略する。
【0046】
S1115では、描画処理変数RipStateの値をジョブ制御部206が参照する。変数RipStateの値が「強制停止」の場合、S1116へ進む。S1116では、ジョブ制御部206は、ジョブキャンセルが完了したことをユーザI/F203に通知する。S1115にて、変数RipStateの値が「描画」であった場合、S1117からS1119の処理を行う。S1117からS1119の処理は、図6に示すS611からS613までの処理と同様のため省略する。
【0047】
[強制停止時の描画処理フロー]
図11は、第一実施形態における描画部211で実施される描画処理が途中で強制停止されるときの描画部211のフローチャートである。なお、図に示すフローチャートにおいて、破線矢印は別の図に示す処理との対応を示す。
【0048】
S1201からS1203の処理は、図7に示すS701からS703までの処理と同様のため省略する。S1204にて、描画部211は、描画処理制御部メッセージ受信用レジスタに格納されている値を確認する。確認した結果、格納されている値が「開始」であれば、S1205からS1208までの処理を行う。S1205からS1208までの処理は、図7に示したS705からS708までの処理と同様のため省略する。描画処理制御部メッセージ受信用レジスタに格納されている値が「強制停止」であれば、S1209へ進む。
【0049】
S1209にて、描画部211は、出力先指定情報格納部217を参照する。出力先指定情報格納部217に格納された出力先がコントーン画像データ格納部214であった場合、画像処理H/W212は画像処理実行可能状態になっていないため、S1207へ進む。つまり、画像処理H/W212は停止可能であるとみなす。一方で、出力先指定情報格納部217に格納された出力先が画像処理H/W212であった場合、S1210からS1212までの処理を行う。つまり、出力先指定情報格納部217に格納された出力先が画像処理H/W212の場合は、画像処理H/W212が停止不可であるとみなす。
【0050】
S1210では、描画部211は、現時点で未生成のピクセル総数PixNumを計算する。計算方法として、中間データからページの高さH、及びページのスキャンライン幅Wを取得し、描画済みスキャンライン数格納部219に格納されたスキャンライン数H1を元に以下の式1を用いて求める。
【0051】
PixNum=W*(H−H1)・・・・・(式1)
S1211はループ制御でS1212をPixNum回実施することを制御している。S1212では、描画部211は、画像処理H/W212に予め決められた色値のピクセルを出力する。
【0052】
以上により、描画処理モジュールと画像処理モジュールとが直列に接続されている構成において、プリント処理の際に描画処理モジュールと画像処理モジュールとが実行中の場合でも、ユーザからのジョブキャンセル要求に応じて強制停止させることができる。これにより、ユーザのジョブキャンセル要求に対して、早期に処理を強制停止させることができる。よって、ユーザの利便性を向上させることができる。
【0053】
<第二実施形態>
以下、本発明を実施するための第二実施形態について図面を用いて説明する。図4(C)は、図4(A)および図4(B)と同様にプリンタ103のパネル操作部104を示している。ユーザが、メニューボタン1302を押下することによってプリンタ103の設定変更を行うためのメニューが表示される。ユーザは、選択ボタン1303を操作することによって、所望の設定を行うことができる。表示部1301には、プリントジョブのキャンセルの設定変更を行うためのメニュー画面の一例が示されている。プリンタ103でプリントジョブ実行中にユーザがジョブキャンセルボタン1304を押下してジョブキャンセルを実行したときのジョブキャンセル方法をユーザが選択することができる。
【0054】
メニュー画面に示されている選択項目のうち、「1.プリントジョブをすぐに停止させる」をユーザが選択した場合、第一実施形態にて述べた方法で描画部211に強制停止が掛かる。一方で「2.プリントジョブが終わりそうなら、プリント続行する」を選択した場合、ユーザがジョブキャンセルを実行したタイミングで描画処理が終了しそうであれば、描画処理を完了させて排紙を行わせる。これによって、ユーザが諦めてジョブキャンセルを実行さえしなければ、あとわずかな時間で描画処理が完了し排紙出力されるようなプリントデータを出力することが可能となる。そのため、ジョブキャンセルによるユーザのプリント出力の機会損失を軽減させられる。ここで、“ジョブが終わりそう”とは、予め定義された条件に基づいて、ジョブの処理が終了することを意味し、条件の詳細については以下で述べる。
【0055】
図12は、プリントジョブに対してどのような場合に強制停止を行わずにプリントジョブを実行させるかを説明した図である。画像データ1401は、描画部211にて描画されるコントーンの画像データを示している。画像データ1401は、ページ幅がW、ページ高さがHであり、y=1からy=(H1−1)までのスキャンラインまで描画処理が済んでいる。そして、y=H1のスキャンライン1402に対して描画処理の最中である。描画部211がy=H1のスキャンライン1402の描画処理の最中に、ジョブ制御部206がユーザからのジョブキャンセル要求を受け取る。すると、描画処理制御部209が描画部211の描画処理の進行状況と1スキャンラインあたりに掛かる平均描画処理時間とについて確認処理を行う。
【0056】
描画処理制御部209は、上記2点で強制停止を描画部211に送信するか、否かを判定する。描画処理がどの程度進行しているかは、ページ高さHと描画済みスキャンライン数H1と予め決められた閾値Th1との間で以下の条件を満たすか否かで判定する。
【0057】
(H1/H)>Th1・・・・・(式2)
上記式2を満たさない場合、描画処理制御部209は、描画部211に対して強制停止を送信する。なお、閾値Th1の値は装置ごとに固定値を有しても良いし、画像形成装置の管理者が設定できるようにしても構わない。
【0058】
また、1スキャンラインあたりの平均描画時間は、以下の流れで求められる。まず、描画処理制御部209が描画部211に描画開始のメッセージを送信する直前にシステム制御部216からプリンタ103内部の時刻t1を取得しておく。更に描画処理制御部209は、ジョブ制御部がユーザI/F203からジョブキャンセル要求を受けた直後の時刻t2を取得する。t1、t2、及び描画済みのスキャンラインの個数(H1−1)と予め定められた閾値Th2との間で以下の条件を満たすか否かで判定する。
【0059】
(t2−t1)/H1<Th2・・・・・(式3)
上記式3を満たさない場合、描画処理制御部209は、描画部211に対して強制停止指示を送信する。そして、上記2つの条件式(式2および式3)をいずれも満たすことができた場合のみ、描画部211の強制停止を行わず、中間データに従った描画処理を続行させる。なお、閾値Th2の値は装置ごとに固定値を有しても良いし、画像形成装置の管理者が設定できるようにしても構わない。
【0060】
[強制停止時の描画処理および画像処理フロー]
図13Aおよび図13Bは、第二実施形態における描画部211による描画開始から画像処理H/W212の処理終了までのCPU205で実行される処理のフローチャートである。ただし、パネル操作部104にて「プリントジョブが終わりそうなら、プリント続行する」が設定され、かつ、描画処理中にジョブキャンセル要求をジョブ制御部206が受けるという場合のフローチャートである。なお、図に示すフローチャートにおいて、破線矢印は別の図に示す処理との対応を示す。
【0061】
S1501からS1506までの処理は、図10に示すS1101からS1106までの処理と同様のため説明を省略する。S1507にて、描画処理制御部209は、システム制御部216から現在の時刻t1を取得する。S1508からS1511までの処理は、図10に示すS1107からS1110までの処理と同様のため、省略する。S1512にて、ジョブ制御部206は、強制停止回避情報格納部218を参照する。強制停止回避情報格納部218に格納されている値が「OFF」である場合、S1519へ進む。一方で、強制停止回避情報格納部218に格納されている値が「ON」である場合、S1513へ進む。
【0062】
S1513では、描画処理制御部209は、描画済みスキャンライン数格納部219から描画済みのスキャンライン数H1を取得する。S1514にて、描画処理制御部209は、中間データからページ高さHを取得する。S1515にて、描画処理制御部209は、(H1/H)と予め決められた閾値Th1の間での大小比較を行う。(H1/H)の値がTh1以下の場合は(S1515にてNO)、S1519へ進む。一方で(H1/H)の値がTh1より大きい場合は(S1515にてYES)、S1516へと進む。
【0063】
S1516では、描画処理制御部209は、システム制御部216から現在の時刻t2を取得する。S1517にて、描画処理制御部209は、1スキャンラインあたりの平均描画時間Tを以下の式4を用いて計算する。
【0064】
T=((t2−t1)/H1)・・・・・(式4)
S1518では、S1517にて求められた平均描画時間Tと予め決めた閾値Th2との間で大小比較を行う。TがTh2より小さい場合(S1518にてYES)、S1521へ進む。一方で、TがTh2以上の場合(S1518にてNO)、S1519へ進む。つまり、式3および式4に基づく判定を行うS1515およびS1518により、第一判定手段を実現する。S1519からS1527までの処理は、図10にて示したS1111からS1119までの処理と同様のため、説明を省略する。
【0065】
[強制停止時の描画処理フロー]
図14は、第二実施形態における描画部211による描画開始から終了までの描画部211で実行される処理のフローチャートである。なお、図に示すフローチャートにおいて、破線矢印は別の図に示す処理との対応を示す。
【0066】
S1601からS1602までの処理は、図11に示すS1201からS1202までの処理と同様のため省略する。S1603にて、描画部211は、描画済みスキャンライン数格納部219に“0”を書き込む。S1604からS1607までは、図11に示すS1203からS1206までの処理と同様のため省略する。
【0067】
S1608にて、描画部211は、描画済みスキャンライン数カウンタに格納されている値に+1加える。S1609からS1614までは、図11に示すS1207からS1212までの処理と同様のため省略する。なお、S1611にて第二判定手段を実現する。
【0068】
以上により、第一実施形態の効果に加え、処理の終了が間近である場合には処理を停止させずに継続するようにユーザは選択できるようになる。これにより、更なるユーザの利便性が向上できる。
【0069】
<第三実施形態>
システム制御部216の判断によりプリンタ103が省電力モードに移行すると、プリンタ103では、CPU205と一部のメモリを除くすべてのH/Wへの電力の供給が省電力モードから復帰するまで断たれてしまう。このことに伴って、描画部211が描画処理中にシステム制御部216が省電力モードに移行してしまう場合、描画部211は強制停止が実行されてしまう。そして、省電力モードからの復帰後に、強制停止が実行される直前に実行されていた描画処理を最初からやり直すことになる。そのため、ユーザがプリンタ103でプリントジョブを実行している最中にプリンタ103が省電力モードに移行してしまうと、省電力モードから復帰後に描画処理をゼロからやり直しが必要なため、ユーザに余計な時間が取らせてしまう。そこで描画処理の強制停止に関連して本実施形態では、省電力モードなどで描画処理を一旦中断したあと、同じ中間データを用いて描画処理を再開する場合に、中断する直前の状態から描画処理を続行する方法について述べる。以下、本発明を実施するための第三実施形態について図面を用いて説明する。
【0070】
図15Aおよび図15Bは、描画部211が描画処理の途中で省電力モードに入るとき、及び省電力モードから省電力モードからの復帰後の正常描画の様子を示す図である。ここでは、省電力モードに切り替わる際に、一時停止指示が行われる。
【0071】
図15Aにおいて、画像データ1701は、ページ高さ(総スキャンライン数)H、ページ幅(スキャンライン幅)W、バンド高さをHbとして示している。スキャンライン1702は、現在、描画部211が処理しているスキャンラインを示している。描画部211がスキャンライン1702を処理している最中に、描画部211から省電力モードに入るため「一時停止」を受信すると、描画部211は、バンドの切れ目まで中間データに基づいて描画処理を行う。すなわち、着目バンドであるスキャンライン1702が含まれるMバンド目(y=H2)までを、描画部211は、中間データの従って描画処理を行う。そして、描画部211は、(M+1)バンド目からは予め決められた色値のピクセルを画像処理H/W212に出力する。つまり、(M+1)バンド以降の中間データに含まれる画素の数だけ、予め決められた色値を出力することとなる。
【0072】
一方で、省電力モードから復帰後は、図15Bに示す画像データ1703のように、1バンド目からMバンド目までは、予め定められた色値のピクセルを画像処理H/W212に出力する。そして、描画部211は、(M+1)バンド目(y=H2+1)からは中間データに従って、描画処理を行う。このように描画処理を行うことで、描画処理の途中で省電力モードへの移行及び復帰を挟む場合において、中間データに基づく描画処理にて同一のピクセルを2回以上処理することが無くなる。そのため、描画処理の途中で省電力モードへの移行及び復帰を挟む場合における、描画処理の効率が望める。
【0073】
[一時停止時の描画処理および画像処理フロー]
図16Aおよび16Bは、第三実施形態において、描画処理制御部209と画像処理H/W制御部210による描画画像処理H/W212の処理終了までを検知するまでのCPU205で実行される処理のフローチャートである。なお、図に示すフローチャートにおいて、破線矢印は別の図に示す処理との対応を示す。
【0074】
S1801では、ジョブ制御部206は、変数RipPauseの値を参照する。変数RipPauseは、初期値として、“0”が格納されているものとする。RipPauseの値が“1”の場合、省電力モードに入る直前まで行われていた描画処理の続きを実行するものと判断し、S1825へ処理が進む。一方、RipPauseの値が“0”の場合、継続する描画処理はない場合と判断し、S1802へ処理が進む。S1802からS1810までの処理は、図10に示すS1101からS1109までの処理と同様のため、省略する。
【0075】
S1811では、ジョブ制御部206がシステム制御部216から省電力モード移行の要求を受信する。S1812では、描画処理制御部209は、変数RipStateに「一時停止」を書き込む。S1813では、描画処理制御部209は、描画部メッセージ送信レジスタに「一時停止」を書き込む。S1814からS1815までは、図10に示すS1113からS1114までの処理と同様であるため、省略する。
【0076】
S1816では、ジョブ制御部206が、変数RipStateの値を参照する。そして、RipStateの値が「一時停止」の場合は、S1822へ進む。一方、RipStateの値が「描画」の場合は、S1818へ進む。S1818からS1820は、図10に示すS1117からS1119までの処理と同様のため、省略する。S1819もしくはS1820の処理の後、S1821へ進む。S1821では、描画処理制御部209は、変数RipPauseに“0”を書き込む。そして、本処理フローを終了する。
【0077】
S1822では、描画処理制御部209は、変数RipPauseに“1”を書き込む。S1823ではジョブ制御部206は、システム制御部216に描画部211を一時停止が完了したことを通知する。そして、本処理フローを終了する。
【0078】
S1801にて、変数RipPauseの値が“1”であると判定された後、S1824の処理を行う。S1824からS1832までの処理は、S1802からS1810までの処理と同様であるため、省略する。またS1833から1841までの処理は、S1814からS1823までの処理と同様であるため、省略する。
【0079】
[描画フロー]
図17(A)および(B)は、第三実施形態に係る描画部211の挙動を説明したフローチャートである。なお、図に示すフローチャートにおいて、破線矢印は別の図に示す処理との対応を示す。
【0080】
S1901からS1903までは、図11に示すS1201からS1203までの処理と同じため省略する。
【0081】
S1904では、描画部211は、描画処理制御部メッセージ受信レジスタの値を参照する。そして、描画処理制御部メッセージ受信レジスタの値が「一時停止」の場合はS1906へ、「再開」の場合はS1912へ、「開始」の場合はS1917へと処理が進む。
【0082】
S1906からS1911までは、描画処理を一時停止するための処理である。S1906では、描画済みスキャンライン数格納部219に格納されている値とバンド情報格納部220に格納されている値で割り算を行い、余りがゼロであるか否かを判定する。つまり、現在処理しているスキャンラインが、バンドの最後のラインであるか否かを判定しており、余りがゼロとならない場合は、まだ現在描画しているバンド内に、描画処理が未実施のスキャンラインが残っていることを意味する。そのため、ゼロでない場合(S1906にてNO)、S1917へ進み、次のスキャンラインの描画処理を継続する。一方でゼロの場合(S1906にてYES)、S1907へと処理を進める。
【0083】
S1907では、描画部211は、出力先指定情報格納部217を参照し、出力先がコントーン画像データ格納部214か、画像処理H/W212かを判定する。ここで出力先がコントーン画像データ格納部214と判定された場合、S1911へと処理を進める。一方で、出力先が画像処理H/W212と判定された場合、S1909へと処理を進める。
【0084】
S1909では、描画部211は、出力すべき予め決められた色値のピクセルの総数PixNumを計算する。計算方法は、中間データからページの高さH及びページのスキャンライン幅Wを取得する。そして、描画開始から現時点まで処理したスキャンライン数H1との間で以下の式5を用いて、PixNumを計算する。
【0085】
PixNum=W*(H−H1)・・・・・(式5)
S1910では、描画部211は、予め決められた色値ピクセルを画像処理H/W212へ送信する。S1911では、描画部211は、現在注目している中間データの位置情報であるアドレスを変数RipAddrに格納する。変数RipAddrに現在注目している中間データのアドレスを格納することで、描画処理を再開後に描画部211が描画処理を途中から開始することが可能する。
【0086】
S1912からS1916までは、描画処理を再開するための処理である。S1912では、描画部211は、出力先指定情報格納部217に格納された値を参照する。描画部211の参照した値が「コントーン画像データ格納部」である場合、S1915へと処理を進める。一方で、S1912にて参照した値が「画像処理H/W」である場合、S1913へと処理を進める。S1913では、描画部211が中間データに従って生成する必要の無いピクセルの総数PixNumを計算する。計算方法は、描画済みスキャンライン数格納部219からH1描画済みスキャンライン数H1を取得し、中間データからページのスキャンライン幅Wを取得する。そして、H1とWの間で以下の式6を用いて、PixNumを計算する。
【0087】
PixNum=W*H1・・・・・(式6)
S1914では、予め決められた色値のピクセルを画像処理H/W212へ出力する処理を行う。S1915では、描画部211は、描画処理制御部メッセージ受信レジスタに「開始」を書き込む。S1916では、描画部211は、変数RipAddrに格納された中間データのアドレスを取得する。この位置情報により、中間データの途中から描画処理の再開を行うことが可能となる。S1917からS1921は、図11に示すS1205からS1208までの処理と同様であるため省略する。また、S1910およびS1914における予め決められた色値ピクセルの送信処理であるS1922からS1923までの処理は、図11に示すS1211からS1212までの処理と同様であるため省略する。なお、S1910にて第一送信手段を実現し、S1913にて第二送信手段を実現する。
【0088】
以上により、第一実施形態の効果に加え、一時的に処理が停止された場合においても処理の再開時には、プリントデータの未処理の部分から継続して処理を行うことができる。従って、更なるユーザの利便性、画像形成装置の負荷、処理効率を向上させることができる。
【0089】
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【技術分野】
【0001】
本発明は、画像形成装置、制御方法、及びプログラムに関する。特に、プリンタでのプリントジョブ実行中に、そのプリントジョブを強制停止させる強制停止方法に関する。
【背景技術】
【0002】
ユーザからジョブキャンセルの要求がプリンタに送信されると、プリンタ内部の各モジュールは、現在行っている処理の強制停止を行う。このとき、一部の画像処理モジュールにおいては強制停止の実行に伴い、制御モジュールは既に出力した画像データが格納されているメモリ領域の初期化をしなければならない。そのため強制停止用に新たな制御シーケンスを作成する必要があり、その分だけプリンタの特にメモリ管理に関わる制御が煩雑になりプリンタの制御モジュールの保守性が低下してしまう可能性がある。
【0003】
上述したような背景において、ユーザからジョブキャンセルの要求がプリンタに送信されても強制停止をさせずに、一通りの処理を実行させる強制停止不可な画像処理モジュールがプリンタ内部に存在する。強制停止不可のモジュールの停止方法として、特許文献1では、画像処理モジュールが強制停止不可かつ、後段の装置が停止済みの場合に画像処理モジュール内部で廃却処理をする。しかしこの技術では、描画部とその後段に画像処理モジュールが直列に接続されている構成の場合、描画部による中間データに従った描画処理が完了するまで画像処理モジュールは停止することができない。更に描画処理モジュールの処理に掛かる時間は、中間データにて定義された処理に依存している。ユーザはプリントデータの処理に時間がかかるほどジョブキャンセルを実行する可能性が高い。つまり、このようなジョブキャンセルが実行される可能性が高いジョブほど、ジョブキャンセルが完了するまでの時間も掛かってしまうという問題がある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2003−256179号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
描画処理モジュールと強制停止できない画像処理モジュールが直列に接続されている構成では、プリント処理の際に描画処理モジュールと画像処理モジュールとが実行中の場合、ユーザからのジョブキャンセル要求に応じて強制停止させることができない。そのため、ユーザのジョブキャンセル要求に対して、プリンタがジョブキャンセルを完了させるのに多大な時間が掛かることがある。これにより、ユーザの利便性が損なわれるという課題がある。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本発明は以下の構成を有する。すなわち、プリントデータに基づいて画素データを生成する描画部と、該画素データに対して画像処理を行う画像処理部とを有する画像形成装置であって、前記描画部および前記画像処理部による処理を行っている際に、制御部から当該処理に対する停止指示を受けた場合において、前記描画部が生成する画素データの出力先である前記画像処理部が停止可能か否かを判定する判定手段と、前記判定手段によって停止不可と判定された場合に、前記描画部による当該画素データを生成する処理において未処理の画素の数だけ予め定められた色値の画素データを前記画像処理部に送信する送信手段とを有し、前記画像処理部は、前記送信手段により送信された前記予め定められた色値の画素データを用いて画像処理を行う。
【0007】
また、本発明は別の構成として、以下の構成を有する。すなわち、プリントデータに基づいて画素データを生成する描画部と、該画素データに対して画像処理を行う画像処理部とを有する画像形成装置であって、前記描画部および前記画像処理部による処理を行っている際に、制御部から当該処理に対する停止指示を受けた場合において、前記停止指示を受けた時点での前記描画部における前記プリントデータに対する処理の進行状況に応じて、当該処理を停止するか否かを判定する第一判定手段と、前記第一判定手段により停止すると判定された場合に、前記描画部が生成する画素データの出力先である前記画像処理部が停止可能か否かを判定する第二判定手段と、前記第二判定手段によって停止不可と判定された場合に、前記描画部による当該画素データを生成する処理において未処理の画素の数だけ予め定められた色値の画素データを前記画像処理部に送信する送信手段とを有し、前記画像処理部は、前記送信手段により送信された前記予め定められた色値の画素データを用いて画像処理を行う。
【0008】
また、本発明は別の構成として、以下の構成を有する。すなわち、プリントデータに基づいて画素データとして描画する描画部と、該画素データに対して画像処理を行う画像処理部とを有する画像形成装置であって、前記描画部および前記画像処理部による処理を行っている際に、制御部から当該処理に対する一時停止指示を受けた場合において、前記一時停止指示を受信する直前までに処理済みの画素データ、および、前記描画部による当該画素データを生成する処理において未処理の画素の位置情報を保持する保持手段と、前記一時停止指示を受けた場合において、前記描画部が生成する画素データの出力先である前記画像処理部が停止可能か否かを判定する判定手段と、前記判定手段によって停止不可と判定された場合に、前記描画部による当該画素データを生成する処理において未処理の画素の数だけ予め定められた色値の画素データを前記画像処理部に送信する第一送信手段と、当該画像形成装置が一時停止から復帰した後に、前記保持手段によって保持された描画処理済みのプリントデータに含まれる画素の数だけ前記予め定められた色値を前記画像処理部に送信する第二送信手段とを有し、前記描画部は、当該画像形成装置が一時停止から復帰した後に、前記保持手段によって保持された前記位置情報を元に、描画処理を続行する。
【発明の効果】
【0009】
本発明により、描画部がある一定の時間以内に高速に強制停止を完了させることが可能となる。そのため、ユーザからのジョブキャンセル要求に対して、即時に対応することができ、プリンタの利便性が向上する。
【図面の簡単な説明】
【0010】
【図1】本発明に係る印刷システムの概要を示したブロック図。
【図2】本発明に係るプリントコントローラ内部の概要を示したブロック図。
【図3】本発明に係る描画処理の概要を示したブロック図。
【図4】本発明に係るパネル操作部の一例を示した図
【図5】本発明に係る描画部の開始から終了までの概要を示したシーケンス図。
【図6】本発明に係る描画処理に関する制御処理手順を示したフローチャート。
【図7】本発明に係る描画処理手順を示したフローチャート。
【図8】第一実施形態に係る処理の概要を示した図。
【図9】第一実施形態に係る描画処理の開始から強制停止の完了までの概要を示したシーケンス図。
【図10】第一実施形態に係る描画処理の制御処理を示したフローチャート。
【図11】第一実施形態に係る描画処理を示したフローチャート。
【図12】第二実施形態に係る処理の概要を示した図。
【図13A】第二実施形態に係る描画処理の制御処理を示したフローチャート。
【図13B】第二実施形態に係る描画処理の制御処理を示したフローチャート。
【図14】第二実施形態に係る描画処理を示したフローチャート。
【図15A】第三実施形態に係る処理の概要を示した図。
【図15B】第三実施形態に係る処理の概要を示した図。
【図16A】第三実施形態に係る描画処理の制御処理を示したフローチャート。
【図16B】第三実施形態に係る描画処理の制御処理を示したフローチャート。
【図17】第三実施形態に係る描画処理を示したフローチャート。
【発明を実施するための形態】
【0011】
[システム構成]
以下、本発明を実施するための形態について図面を用いて説明する。図1は、本発明に適用される印刷システムの一例を示している。印刷システムにおいて、情報処理装置であるホストPC101、LAN(Local Area Network)102、画像形成装置であるプリンタ103を有する。ホストPC101とプリンタ103は、LAN102を介して接続されている。なお、図1には、示されていないが、印刷システムは他の装置を含んでいても構わない。ユーザがホストPC101からLAN102経由で送信したプリントデータに従って、プリンタ103で印刷処理が行われる。プリンタ103はユーザインタフェースであるパネル操作部104を備え、パネル操作部104にて、プリントジョブのキャンセル、給紙段の選択などをユーザが指示することができる。プリントコントローラ部105は、ホストPC101を介したユーザからの印刷指示を受けると、印刷指示と共に送られるプリントデータに対して画像を形成するための画像処理を行い、画像データの形成を行う。このとき形成された画像データは、プリントエンジン部106に送られる。プリントエンジン部106では、画像データを元にトナーを紙媒体に定着させ、排紙処理を行う。なお、ここでのプリントデータは、ホストPC101から受信する構成に限られず、例えば、他の装置にて保持されているデータをユーザの印刷指示に基づいて取得しても構わない。また、本実施形態において、プリントデータは、PDL(Print description Language)形式で定義されているものとして説明するが、これに限定されるものではない。
【0012】
図2は、プリンタ103が有するプリントコントローラ部105の構成の一例を示している。まず、プリントコントローラ部105内部の各種モジュールはシステムバス201で相互に接続されている。そして、外部モジュールとのデータの入出力を取り扱うI/Fとして、プリントエンジンI/F203、ユーザI/F203、ネットワークI/F204が存在する。プリントエンジンI/F202は、プリントエンジン部106とプリントコントローラ部105との間におけるデータ通信のI/Fである。プリントコントローラ部105で生成した画像データは、プリントエンジンI/F202を経由してプリントエンジン部106に送られる。ユーザI/F203は、パネル操作部104とプリントコントローラ部105との間におけるデータ通信のI/Fである。ユーザがパネル操作部104で指定した命令内容は、ユーザI/F203を経由してプリントコントローラ部105に送られる。ネットワークI/F203は、LAN102を経由したホストPC101とプリンタコントローラとの間におけるデータ通信のI/Fである。ユーザがホストPC101で指定した印刷命令は、ネットワークI/F204を経由してプリントコントローラ部105の内部に送られる。
【0013】
CPU(Central Processor Unit)205は、プリントコントローラ部105において、一部ないし全体の制御処理及び画像処理を担っている。またジョブ制御部206は、ネットワークI/F204からプリントコントローラ部105内部に送られて来たプリントデータを元にプリントエンジンI/F202に画像データを渡すまでの一連のプリントジョブの制御を担っている。プリントコントローラ部105では、ネットワークI/F204からプリントデータが送られたとき、ジョブ制御部206は、まずPDL解釈部207でプリントデータの内容解釈を行わせる。PDL解釈部207で解釈したプリントデータの内容は、中間データ生成部208に送られる。中間データ生成部208は、PDL解釈部207で行ったプリントデータの解釈結果に基づいて、描画部211が解釈可能な描画処理に必要な中間データの生成を行い、中間データ格納部213に順次格納する。
【0014】
中間データ格納部213に1ページ分の中間データが格納されたら、ジョブ制御部206は、描画部211に中間データ格納部213に格納された中間データを元にコントーン画像データ(連続的な階調の画像データ)の生成を行わせる。描画処理制御部209及び描画部211で生成された画像データは、基本的に画像処理部である画像処理H/W212を介してハーフトーン画像データ格納部215に格納される。また、例外的にコントーン画像データ格納部214に格納される場合もある。コントーン画像データ格納部214に描画部211で生成された画像データが格納される場合は、描画部211が縮退描画処理を行う場合である。
【0015】
ここで、縮退描画処理とは、中間データ生成部208が生成する中間データのデータ量が中間データ格納部213の容量の上限値に達した際に、既に中間データ格納部213に格納済みの中間データを対象にコントーン画像データの生成を行う描画処理のことである。縮退描画処理を行うことで、中間データ格納部213に格納されていた中間データがコントーン画像データとなり、コントーン画像データ格納部214に格納される。このため、中間データ格納部213に空きができ、中間データ生成部208が中間データの生成を続行することが可能となる。また、縮退描画処理にて生成された画像は、コントーン画像データ格納部214に格納された後、縮退描画処理発生後に生成される中間データに組み込まれる。このように縮退描画処理で生成された画像データは、再び描画処理に利用されるのでコントーン画像で保持する必要があり、コントーン画像データ格納部214に保持される。以降、コントーン画像データを生成する際において、縮退描画処理と区別するために、縮退描画処理でない描画処理を“正常描画処理”と表現する。
【0016】
また、コントーン画像データ格納部214及びハーフトーン画像データ格納部215に画像データを格納するとき、ページサイズ分の画像を縦方向において一定の高さで幾つかに分割したバンド単位で保持する。バンドは複数のスキャンラインからなり、1バンドあたりのスキャンライン数(高さ)は予め定義されているものとする。これは、画像処理H/W212が一回の画像処理で扱う処理単位がバンド単位であること及び、メモリ上に1ページ分の連続した領域を確保できない場合などへの対処することに起因する。なお、描画部211がどちらに出力するかは、縮退描画を実施するか否かの情報が出力先指定情報格納部217に格納され、出力先指定情報格納部217に格納された情報によって決められる。
【0017】
また、描画部211は、専用H/Wで構成され、描画部211を制御するために描画処理制御部209が存在する。また同様に画像処理H/W212を制御するために画像処理H/W制御部210が存在する。また、システム制御部216は、プリントコントローラ部105をシステムとして機能させるための基礎的な部分であり、OS(Operating System)を指す場合が多い。例えば時刻の取得を行いたい場合などは、システム制御部216から取得することになる。また、プリンタ103自体をCPU205とメモリ以外のハードウェアへの電力の供給を抑える省電力モードに移行させるか否かの制御なども行っている。
【0018】
強制停止回避情報格納部218は、詳細は後述するが、ユーザI/F203を介して取得したパネル操作部104からユーザが設定した情報を格納する。描画済みスキャンライン数格納部219は、1ページあたりの描画処理において、既に描画済みのスキャンライン数を数え上げるカウント情報が格納されている。バンド情報格納部220は、1バンド当たりの高さを示す情報が格納されている。また図2において、RAM(不図示)上に展開されCPU205で動くS/WモジュールとH/Wモジュールが分断された配置で示しているが、物理的にこの構成に限定するものではない。
【0019】
[描画部における処理の流れ]
図3は、描画部211で実施される処理の流れの概要を示している。描画部211では、中間データ格納部213から中間データを入力データとして、命令解釈部301、輪郭書き出し部302、重なり整列部303、色塗り部304、色合成部305を経て画像データのピクセル出力を行っている。つまり、画素データ(ピクセルデータ)を生成する。命令解釈部301では、中間データの内容に従って、描画部211がこれから実行するべき命令の内容を判断する。例えば、命令解釈部301が解釈して判断する内容には、次のスキャンラインの描画処理を実行する命令、描画処理自体を終了する命令などがある。ここでスキャンラインとは、描画部211にて輪郭書き出し部302から色合成部305までの1回の描画処理で実行できる処理単位を表している。つまり、ページサイズは、1以上のスキャンラインからなる。またスキャンラインの値が1の場合、ページサイズの画像データに対して、高さが1で、ページと同じ幅をもつイメージを指す。
【0020】
命令解釈部301が中間データに記載される命令を次のスキャンラインの描画処理を実行する命令と判断すると、輪郭書き出し部302から色合成部305までの処理が続いて実行される。輪郭書き出し部302は、中間データに含まれる描画オブジェクトから輪郭情報を取得する。ここで、輪郭情報とは、描画オブジェクトの輪郭の開始位置及び輪郭幅の2つの情報を指す。輪郭書き出し部302で取得された輪郭の情報が画像データの1スキャンライン分揃ったら、輪郭書き出し部302は、輪郭座標の情報を重なり整列部303に送る。重なり整列部303では、輪郭座標の情報と描画オブジェクト同士の重なりの上下関係を元に紙面に対して描画オブジェクトが正しい順番で並ぶように整列処理を行う。重なり整列部303で生成された整列済みの輪郭情報は、画像データの1スキャンライン分揃ったら、色塗り部304へ送られる。
【0021】
色塗り部304では、整列済みの輪郭情報に対して、輪郭で区切られる一つ一つの区間に対して色情報を付加する。また、輪郭で区切られた区間に色ではなく、写真データが付加される場合も、その写真データは、色塗り部で展開される。色塗り部304で生成された色情報が付加された整列済みの輪郭情報は、1スキャンライン分揃ったら、色合成部305へ送られる。色合成部305では、色情報が付加された整列済みの輪郭情報を元に輪郭で区切られた領域かつ、その区切られた領域のうち他の輪郭で区切られた領域と重なっている部分同士に対して、中間データに従った重なりルールを適用する。
【0022】
重なりルールとは、ROP(Raster OPerator)とアルファブレンドがある。ROPとは、領域同士が重なっている部分における、前面側と背面側の色値を表現するbit同士で行われる論理演算である。重なりルールとしてROPが指定された場合、前面側と背面側の領域を表現する色値の間で論理演算が行われた結果が出力される。アルファブレンドとは、輪郭で区切られた領域同士で重なっている部分に対して、重なっている両者のうち前面側及び背面側の色を混ぜて得られる色を出力する際において、その混ぜる前面側と背面側との色値の割合比の指定である。
【0023】
色合成部305では、重なりルールを適用し、重なっている領域における前面と背面との領域の色値からどのような色を出力するか決定する。色合成部305で行われた結果は、画像データの一つ一つのピクセルとして出力される。また前述のように描画部211の出力先には、コントーン画像データ格納部214及び画像処理H/W212及びのいずれかが選択される。すなわち、縮退描画処理による描画処理済みのピクセルを出力する場合は、描画部211の出力先はコントーン画像データ格納部214となり、縮退ではない正常描画処理による描画処理済みのピクセルを出力する場合は、画像処理H/W212となる。
【0024】
[パネル操作部]
図4(A)は、パネル操作部104の一例である。表示部401では、ユーザにプリンタ103に設定されている情報やユーザがプリンタに設定したい項目の表示し、ユーザに対して視覚的に提供する。表示部401に“プリント中”と表示されている際に、ユーザがジョブキャンセルボタン402を押下することにより、プリンタ103にて現時点で処理されているプリントジョブに強制停止を行うことができる。ユーザがメニューボタン403を押下することで、表示部401にユーザが設定できる項目及び、ユーザが確認できるプリンタ103内部の情報を選択できるようになる。ユーザは、メニューボタン403を押下した後に、表示部401に表示されるメニューの中で所望の項目を、選択ボタン404を用いて選択することができる。これにより、ユーザからの指示を受け付ける受付手段を実現する。
【0025】
[正常描画処理および画像処理シーケンス]
図5は、描画部211での正常描画処理の開始から終了まで及び、画像処理H/W212での画像処理の開始から終了までのシーケンスを示した図である。期間501は、CPU205が駆動している期間を示している。プリンタ103が正常描画処理を行うとき、期間501においてまず、画像処理H/W212に画像処理を実行可能な状態にするため、CPU205から画像処理H/W212へメッセージ502を送信する。ここでメッセージの送信とは、具体的には所定のレジスタあるいは、メモリに所定の値を書き込むことを意味している。
【0026】
CPU205から画像処理H/W212へのメッセージ送信により画像処理H/W212は、実行可能な状態となり描画部211からコントーンのピクセルデータを受け付け、ハーフトーンのピクセルデータを出力できるようになる。期間503は、画像処理H/Wが画像処理を実行可能な状態の期間を示している。画像処理H/W212は、描画部211から送られる最後のコントーンのピクセルデータを受け付け、ハーフトーンのピクセルデータを出力することで画像処理が完了する。
【0027】
CPU205は、画像処理H/W212が画像処理を完了したことを画像処理H/W212からメッセージ508を受信することで検知する。ここでメッセージの受信とは、具体的には所定のレジスタあるいは、メモリから所定の値が読み込めることを意味している。
【0028】
CPU205は、画像処理H/W212にメッセージ502を送信した後に、描画部211に中間データの描画開始のメッセージ504を送信する。これにより、描画部211にて描画処理が行われる。期間505は、描画部211が描画処理を実行している期間を示している。描画部211は、中間データから描画終了を読みことでその処理を完了させる。CPU205は、描画部211が描画処理を完了させたことを描画部211からメッセージ507を受信することで検知する。期間506は、CPU205が描画処理の完了待ちをしている期間である。CPU205は、ハーフトーン画像データ格納部215に画像が格納しきったことにより、プリントエンジン部106にハーフトーン画像を渡す。そのため、描画処理の完了待ちをしている期間は、CPU205がメッセージ504を送信した時点からメッセージ508を受信した時点までとなる。
【0029】
[正常描画処理および画像処理フロー]
図6は、描画部211での正常描画処理の開始から終了まで及び、画像処理H/W212での画像処理の開始から終了までのCPU205で実行される処理のフローチャートである。なお、図に示すフローチャートにおいて、破線矢印は別の図に示す処理との対応を示す。
【0030】
S601でジョブ制御部206は、これから実行される描画処理が縮退描画処理か否かを判断する。縮退描画処理か否かを判断するための情報は、中間データ生成部208が中間データ格納部213に1回分の描画処理で使用される中間データの生成を完了したときに、中間データ生成部208からジョブ制御部206に通知される。S601にて、ジョブ制御部206が縮退描画処理と判断した場合(S601にてYES)、S602からS603までの処理が実行される。一方で、縮退描画処理では無い正常描画処理の場合(S601にてNO)、S604からS606までの処理が実行される。
【0031】
S602では、画像処理H/W制御部210は、描画部211の出力先指定情報格納部217に、出力先がコントーン画像データ格納部214であることを書き込む。S603で画像処理H/W制御部210は、画像処理H/W212からCPU205へのメッセージが書き込まれる画像処理H/Wメッセージ受信レジスタに「処理完了」を書き込む。これは、縮退描画処理を行う場合、画像処理H/W212には描画部211からコントーンのピクセルデータか送信されないため、後述のS610でデッドロックが発生させないための処置である。その後、S607へ進む。
【0032】
S604では、画像処理H/W制御部210は、出力先指定情報格納部217に描画部211の出力先が画像処理H/W212であることを書き込む。S605では、画像処理H/W制御部210は、画像処理H/Wメッセージ送信レジスタに「開始」を書き込む。S605における処理が図5に示したメッセージ502の処理に相当し、これにより画像処理H/W212が画像処理を実行可能な状態となる。S606では、画像処理H/W制御部210は、画像処理H/Wメッセージ受信レジスタに「待機中」を書き込む。その後、S607へ進む。
【0033】
S607では、描画処理制御部209は、描画部メッセージ送信レジスタに「開始」を書き込む。S607における処理が図5に示したメッセージ504に相当し、これにより描画部211は、描画処理を開始する。S608では、描画処理制御部209は、描画部メッセージ受信レジスタに「待機中」を書き込む。S609では、描画処理制御部209は、描画処理メッセージ受信レジスタの値が「処理完了」となるまで待機する。S609にて、描画部メッセージ受信レジスタの値が「処理完了」となったことを確認すると、S610に処理が進む。S609にて「待機中」から「処理完了」に切り替わるタイミングが、図5に示すメッセージ507が実行されたタイミングとなる。S610にて画像処理H/W制御部210は、画像処理H/Wメッセージ受信レジスタの値が「処理完了」となるまで待機する。S610にて、画像処理H/Wメッセージ受信レジスタの値が「処理完了」となったことを確認すると、S611に処理が進む。S610にて「待機中」から「処理完了」に切り替わるタイミングが、図5に示すメッセージ508に相当する。
【0034】
S611にて、ジョブ制御部206は、出力先指定情報格納部217に格納された値を参照する。参照した結果、値が「コントーン画像データ格納部」であった場合、先ほどまで実施された描画処理が“縮退描画処理”であったと判断し(S611にてYES)、S612でジョブ制御部は、PDL解釈部207及び中間データ生成部208の処理を再開させる。一方で、参照した値が「ハーフトーン画像データ格納部」であった場合は、“正常描画処理”であったと判断し(S611にてNO)、S613でジョブ制御部206は、ハーフトーン画像データ格納部215に格納された画像データをプリントエンジンI/F202に渡す。
【0035】
なお以降の図の説明において、描画処理制御部メッセージ受信レジスタと描画処理制御部メッセージ送信レジスタはそれぞれ、描画部メッセージ送信レジスタと描画部メッセージ受信レジスタとそれぞれ同じものを指し示していることとする。これは、図の説明においてCPU205側がその中心に置かれているか、あるいは描画部211がその中心に置かれているかによって、使い分けることにする。
【0036】
[描画処理フロー]
図7は、描画部211で描画処理の開始から終了までに実行される処理のフローチャートである。なお、図に示すフローチャートにおいて、破線矢印は別の図に示す処理との対応を示す。
【0037】
S701で描画部211は、描画処理制御部メッセージ受信レジスタに格納されている値が「開始」となるまで待機する。描画処理制御部メッセージ受信レジスタに格納されている値が「開始」となったら、S702へ進む。S701にて、描画処理制御部メッセージ受信レジスタに格納されている値が「開始」となるタイミングが描画部211における図5に示すメッセージ504に相当する。S702では、描画部211は、変数RipEndに“FALSE”を書き込む。S703は、ループ制御で変数RipEndに“TRUE”が書き込まれるまで、S704からS707まで処理を繰り返す。
【0038】
S704にて、描画部211は、命令解釈部301による処理、すなわち中間データの解釈を行う。命令を解釈した結果、中間データの指示が次のスキャンラインの描画であった場合、S705に進む。S705にて、描画部211は、ページ当たりの1スキャンラインに対して輪郭書き出し部302から色合成部305までの処理を実行する。一方でS704にて、命令を解釈した結果、描画終了と解釈された場合、S706に進む。S706にて、描画部211は、描画処理制御部メッセージ送信レジスタに「処理完了」を書き込む。S706は、図5に示すメッセージ507に相当し、これによりCPU205は、描画部211の描画処理が完了したこと検知する。S707にて、描画部211は、変数RipEndに“TRUE”を書き込み、S704によるループから抜け出す。以上により、本処理フローを終了する。
【0039】
<第一実施形態>
以下、本発明を実施するための第一実施形態について図面を用いて説明する。図4(B)は、図4(A)と同様にプリンタ103のパネル操作部104を示している。表示部801に「現在、プリント中」と表示されているときは、プリントコントローラ部105では、プリントジョブが実行中であることを示している。このように表示部801に「現在、プリント中」という表示がされているときにジョブキャンセルボタン802を押下することで、パネル操作部104からユーザI/F203を介してジョブ制御部206にジョブキャンセルの指示(停止指示)が送信される。ジョブ制御部206にてジョブキャンセルが受信されると直ちに現在実施されているプリントジョブの強制停止が実行される。
【0040】
図8は、プリントジョブに対して強制停止が掛かるタイミングが正常描画処理である場合における処理の様子を示している。画像データ901は、描画部211にて描画されるコントーンの画像データを示している。画像データ901は、ページ幅がW、ページ高さがHであり、y=1からy=(H1−1)までのスキャンラインまで描画処理が済んでいる。そして、y=H1のスキャンライン902に対して描画処理を実施している最中である。描画部211がy=H1のスキャンライン902の描画処理を実施している最中に、ジョブ制御部206から描画部211に強制停止が掛かると、描画部211は、y=H1のスキャンラインは、中間データに従って描画処理が実行される。しかしながら、y=(H1+1)からy=HまでのH2分のスキャンラインについては、中間データの内容に関係なく、予め定められた色値を有する(H2*W)個分のピクセルデータを画像処理H/W212に出力する。画像処理H/W212は前述の通り途中で停止させることはできないため、現在処理しているスキャンラインの次のスキャンラインから予め決められた色値のピクセルデータを画像処理H/W212を止めるために必要な数だけ出力する。つまり、中間データに対して、未処理の画素の数だけ予め決められた色値を出力することとなる。この色値に関しては、未処理であることが明確に判定できる値を設定しても良い。このとき、色値は、通常は色値として設定され得ない値を設定してもよい。
【0041】
[画像処理シーケンス]
図9は、描画部211での正常描画処理の途中で強制停止を行った場合における画像処理H/W212での画像処理の開始から終了までのシーケンスを示した図である。基本的な構成は図5と同一である。具体的には、図5および図9において、期間1001と期間501、メッセージ1003とメッセージ502、期間1004と期間503、メッセージ1006とメッセージ504、期間1007と期間505、メッセージ1010とメッセージ507、メッセージ1012とメッセージ508は同じものを意味している。
【0042】
CPU205から描画部211への強制停止のメッセージは、必ず、CPU205から描画部211への描画開始のメッセージ1006と描画部211からCPU205への処理完了のメッセージ1010の間の期間にて発行されるものとする。強制停止のメッセージを描画部211が受け付けると、図8で説明した通りの挙動を描画部211は実施する。なお、停止指示は、ユーザがパネル操作部104を介して指示した際に行われても良いし、装置内のエラー等により、行われても良い。
【0043】
[強制停止時の描画処理および画像処理フロー]
図10は、第一実施形態における描画部211で実施される描画処理が途中で強制停止されるときの描画部211による描画開始から画像処理H/W212の処理終了までのCPU205で実行される処理のフローチャートである。なお、図に示すフローチャートにおいて、破線矢印は別の図に示す処理との対応を示す。
【0044】
S1101からS1107までの処理は、図6に示すS601からS607までの処理と同様のため省略する。S1108で描画処理制御部209は、描画部211の状態を示す変数RipStateに「描画」を書き込む。変数RipStateに描画部211の状態を書き込むことで描画部211からの「処理完了」のメッセージによって、描画処理が完了したのか、強制停止が完了したのかをCPU205側で判断することが可能となる。S1109にて、描画処理制御部209は、描画処理メッセージ受信レジスタに「待機中」を書き込む。S1110にて、ジョブ制御部206がユーザI/F203からジョブキャンセルの要求を受信する。
【0045】
S1111にて描画処理制御部209は、変数RipStateに「強制停止」を書き込む。そして、S1112にて描画処理制御部209は、描画処理メッセージ送信レジスタに「強制停止」を書き込む。S1112は、図9に示したメッセージ1009に相当し、これによって、描画部211は強制停止ための処理に移行することができる。S1113、S1114の処理は、図6に示すS609、S610と同様なので省略する。
【0046】
S1115では、描画処理変数RipStateの値をジョブ制御部206が参照する。変数RipStateの値が「強制停止」の場合、S1116へ進む。S1116では、ジョブ制御部206は、ジョブキャンセルが完了したことをユーザI/F203に通知する。S1115にて、変数RipStateの値が「描画」であった場合、S1117からS1119の処理を行う。S1117からS1119の処理は、図6に示すS611からS613までの処理と同様のため省略する。
【0047】
[強制停止時の描画処理フロー]
図11は、第一実施形態における描画部211で実施される描画処理が途中で強制停止されるときの描画部211のフローチャートである。なお、図に示すフローチャートにおいて、破線矢印は別の図に示す処理との対応を示す。
【0048】
S1201からS1203の処理は、図7に示すS701からS703までの処理と同様のため省略する。S1204にて、描画部211は、描画処理制御部メッセージ受信用レジスタに格納されている値を確認する。確認した結果、格納されている値が「開始」であれば、S1205からS1208までの処理を行う。S1205からS1208までの処理は、図7に示したS705からS708までの処理と同様のため省略する。描画処理制御部メッセージ受信用レジスタに格納されている値が「強制停止」であれば、S1209へ進む。
【0049】
S1209にて、描画部211は、出力先指定情報格納部217を参照する。出力先指定情報格納部217に格納された出力先がコントーン画像データ格納部214であった場合、画像処理H/W212は画像処理実行可能状態になっていないため、S1207へ進む。つまり、画像処理H/W212は停止可能であるとみなす。一方で、出力先指定情報格納部217に格納された出力先が画像処理H/W212であった場合、S1210からS1212までの処理を行う。つまり、出力先指定情報格納部217に格納された出力先が画像処理H/W212の場合は、画像処理H/W212が停止不可であるとみなす。
【0050】
S1210では、描画部211は、現時点で未生成のピクセル総数PixNumを計算する。計算方法として、中間データからページの高さH、及びページのスキャンライン幅Wを取得し、描画済みスキャンライン数格納部219に格納されたスキャンライン数H1を元に以下の式1を用いて求める。
【0051】
PixNum=W*(H−H1)・・・・・(式1)
S1211はループ制御でS1212をPixNum回実施することを制御している。S1212では、描画部211は、画像処理H/W212に予め決められた色値のピクセルを出力する。
【0052】
以上により、描画処理モジュールと画像処理モジュールとが直列に接続されている構成において、プリント処理の際に描画処理モジュールと画像処理モジュールとが実行中の場合でも、ユーザからのジョブキャンセル要求に応じて強制停止させることができる。これにより、ユーザのジョブキャンセル要求に対して、早期に処理を強制停止させることができる。よって、ユーザの利便性を向上させることができる。
【0053】
<第二実施形態>
以下、本発明を実施するための第二実施形態について図面を用いて説明する。図4(C)は、図4(A)および図4(B)と同様にプリンタ103のパネル操作部104を示している。ユーザが、メニューボタン1302を押下することによってプリンタ103の設定変更を行うためのメニューが表示される。ユーザは、選択ボタン1303を操作することによって、所望の設定を行うことができる。表示部1301には、プリントジョブのキャンセルの設定変更を行うためのメニュー画面の一例が示されている。プリンタ103でプリントジョブ実行中にユーザがジョブキャンセルボタン1304を押下してジョブキャンセルを実行したときのジョブキャンセル方法をユーザが選択することができる。
【0054】
メニュー画面に示されている選択項目のうち、「1.プリントジョブをすぐに停止させる」をユーザが選択した場合、第一実施形態にて述べた方法で描画部211に強制停止が掛かる。一方で「2.プリントジョブが終わりそうなら、プリント続行する」を選択した場合、ユーザがジョブキャンセルを実行したタイミングで描画処理が終了しそうであれば、描画処理を完了させて排紙を行わせる。これによって、ユーザが諦めてジョブキャンセルを実行さえしなければ、あとわずかな時間で描画処理が完了し排紙出力されるようなプリントデータを出力することが可能となる。そのため、ジョブキャンセルによるユーザのプリント出力の機会損失を軽減させられる。ここで、“ジョブが終わりそう”とは、予め定義された条件に基づいて、ジョブの処理が終了することを意味し、条件の詳細については以下で述べる。
【0055】
図12は、プリントジョブに対してどのような場合に強制停止を行わずにプリントジョブを実行させるかを説明した図である。画像データ1401は、描画部211にて描画されるコントーンの画像データを示している。画像データ1401は、ページ幅がW、ページ高さがHであり、y=1からy=(H1−1)までのスキャンラインまで描画処理が済んでいる。そして、y=H1のスキャンライン1402に対して描画処理の最中である。描画部211がy=H1のスキャンライン1402の描画処理の最中に、ジョブ制御部206がユーザからのジョブキャンセル要求を受け取る。すると、描画処理制御部209が描画部211の描画処理の進行状況と1スキャンラインあたりに掛かる平均描画処理時間とについて確認処理を行う。
【0056】
描画処理制御部209は、上記2点で強制停止を描画部211に送信するか、否かを判定する。描画処理がどの程度進行しているかは、ページ高さHと描画済みスキャンライン数H1と予め決められた閾値Th1との間で以下の条件を満たすか否かで判定する。
【0057】
(H1/H)>Th1・・・・・(式2)
上記式2を満たさない場合、描画処理制御部209は、描画部211に対して強制停止を送信する。なお、閾値Th1の値は装置ごとに固定値を有しても良いし、画像形成装置の管理者が設定できるようにしても構わない。
【0058】
また、1スキャンラインあたりの平均描画時間は、以下の流れで求められる。まず、描画処理制御部209が描画部211に描画開始のメッセージを送信する直前にシステム制御部216からプリンタ103内部の時刻t1を取得しておく。更に描画処理制御部209は、ジョブ制御部がユーザI/F203からジョブキャンセル要求を受けた直後の時刻t2を取得する。t1、t2、及び描画済みのスキャンラインの個数(H1−1)と予め定められた閾値Th2との間で以下の条件を満たすか否かで判定する。
【0059】
(t2−t1)/H1<Th2・・・・・(式3)
上記式3を満たさない場合、描画処理制御部209は、描画部211に対して強制停止指示を送信する。そして、上記2つの条件式(式2および式3)をいずれも満たすことができた場合のみ、描画部211の強制停止を行わず、中間データに従った描画処理を続行させる。なお、閾値Th2の値は装置ごとに固定値を有しても良いし、画像形成装置の管理者が設定できるようにしても構わない。
【0060】
[強制停止時の描画処理および画像処理フロー]
図13Aおよび図13Bは、第二実施形態における描画部211による描画開始から画像処理H/W212の処理終了までのCPU205で実行される処理のフローチャートである。ただし、パネル操作部104にて「プリントジョブが終わりそうなら、プリント続行する」が設定され、かつ、描画処理中にジョブキャンセル要求をジョブ制御部206が受けるという場合のフローチャートである。なお、図に示すフローチャートにおいて、破線矢印は別の図に示す処理との対応を示す。
【0061】
S1501からS1506までの処理は、図10に示すS1101からS1106までの処理と同様のため説明を省略する。S1507にて、描画処理制御部209は、システム制御部216から現在の時刻t1を取得する。S1508からS1511までの処理は、図10に示すS1107からS1110までの処理と同様のため、省略する。S1512にて、ジョブ制御部206は、強制停止回避情報格納部218を参照する。強制停止回避情報格納部218に格納されている値が「OFF」である場合、S1519へ進む。一方で、強制停止回避情報格納部218に格納されている値が「ON」である場合、S1513へ進む。
【0062】
S1513では、描画処理制御部209は、描画済みスキャンライン数格納部219から描画済みのスキャンライン数H1を取得する。S1514にて、描画処理制御部209は、中間データからページ高さHを取得する。S1515にて、描画処理制御部209は、(H1/H)と予め決められた閾値Th1の間での大小比較を行う。(H1/H)の値がTh1以下の場合は(S1515にてNO)、S1519へ進む。一方で(H1/H)の値がTh1より大きい場合は(S1515にてYES)、S1516へと進む。
【0063】
S1516では、描画処理制御部209は、システム制御部216から現在の時刻t2を取得する。S1517にて、描画処理制御部209は、1スキャンラインあたりの平均描画時間Tを以下の式4を用いて計算する。
【0064】
T=((t2−t1)/H1)・・・・・(式4)
S1518では、S1517にて求められた平均描画時間Tと予め決めた閾値Th2との間で大小比較を行う。TがTh2より小さい場合(S1518にてYES)、S1521へ進む。一方で、TがTh2以上の場合(S1518にてNO)、S1519へ進む。つまり、式3および式4に基づく判定を行うS1515およびS1518により、第一判定手段を実現する。S1519からS1527までの処理は、図10にて示したS1111からS1119までの処理と同様のため、説明を省略する。
【0065】
[強制停止時の描画処理フロー]
図14は、第二実施形態における描画部211による描画開始から終了までの描画部211で実行される処理のフローチャートである。なお、図に示すフローチャートにおいて、破線矢印は別の図に示す処理との対応を示す。
【0066】
S1601からS1602までの処理は、図11に示すS1201からS1202までの処理と同様のため省略する。S1603にて、描画部211は、描画済みスキャンライン数格納部219に“0”を書き込む。S1604からS1607までは、図11に示すS1203からS1206までの処理と同様のため省略する。
【0067】
S1608にて、描画部211は、描画済みスキャンライン数カウンタに格納されている値に+1加える。S1609からS1614までは、図11に示すS1207からS1212までの処理と同様のため省略する。なお、S1611にて第二判定手段を実現する。
【0068】
以上により、第一実施形態の効果に加え、処理の終了が間近である場合には処理を停止させずに継続するようにユーザは選択できるようになる。これにより、更なるユーザの利便性が向上できる。
【0069】
<第三実施形態>
システム制御部216の判断によりプリンタ103が省電力モードに移行すると、プリンタ103では、CPU205と一部のメモリを除くすべてのH/Wへの電力の供給が省電力モードから復帰するまで断たれてしまう。このことに伴って、描画部211が描画処理中にシステム制御部216が省電力モードに移行してしまう場合、描画部211は強制停止が実行されてしまう。そして、省電力モードからの復帰後に、強制停止が実行される直前に実行されていた描画処理を最初からやり直すことになる。そのため、ユーザがプリンタ103でプリントジョブを実行している最中にプリンタ103が省電力モードに移行してしまうと、省電力モードから復帰後に描画処理をゼロからやり直しが必要なため、ユーザに余計な時間が取らせてしまう。そこで描画処理の強制停止に関連して本実施形態では、省電力モードなどで描画処理を一旦中断したあと、同じ中間データを用いて描画処理を再開する場合に、中断する直前の状態から描画処理を続行する方法について述べる。以下、本発明を実施するための第三実施形態について図面を用いて説明する。
【0070】
図15Aおよび図15Bは、描画部211が描画処理の途中で省電力モードに入るとき、及び省電力モードから省電力モードからの復帰後の正常描画の様子を示す図である。ここでは、省電力モードに切り替わる際に、一時停止指示が行われる。
【0071】
図15Aにおいて、画像データ1701は、ページ高さ(総スキャンライン数)H、ページ幅(スキャンライン幅)W、バンド高さをHbとして示している。スキャンライン1702は、現在、描画部211が処理しているスキャンラインを示している。描画部211がスキャンライン1702を処理している最中に、描画部211から省電力モードに入るため「一時停止」を受信すると、描画部211は、バンドの切れ目まで中間データに基づいて描画処理を行う。すなわち、着目バンドであるスキャンライン1702が含まれるMバンド目(y=H2)までを、描画部211は、中間データの従って描画処理を行う。そして、描画部211は、(M+1)バンド目からは予め決められた色値のピクセルを画像処理H/W212に出力する。つまり、(M+1)バンド以降の中間データに含まれる画素の数だけ、予め決められた色値を出力することとなる。
【0072】
一方で、省電力モードから復帰後は、図15Bに示す画像データ1703のように、1バンド目からMバンド目までは、予め定められた色値のピクセルを画像処理H/W212に出力する。そして、描画部211は、(M+1)バンド目(y=H2+1)からは中間データに従って、描画処理を行う。このように描画処理を行うことで、描画処理の途中で省電力モードへの移行及び復帰を挟む場合において、中間データに基づく描画処理にて同一のピクセルを2回以上処理することが無くなる。そのため、描画処理の途中で省電力モードへの移行及び復帰を挟む場合における、描画処理の効率が望める。
【0073】
[一時停止時の描画処理および画像処理フロー]
図16Aおよび16Bは、第三実施形態において、描画処理制御部209と画像処理H/W制御部210による描画画像処理H/W212の処理終了までを検知するまでのCPU205で実行される処理のフローチャートである。なお、図に示すフローチャートにおいて、破線矢印は別の図に示す処理との対応を示す。
【0074】
S1801では、ジョブ制御部206は、変数RipPauseの値を参照する。変数RipPauseは、初期値として、“0”が格納されているものとする。RipPauseの値が“1”の場合、省電力モードに入る直前まで行われていた描画処理の続きを実行するものと判断し、S1825へ処理が進む。一方、RipPauseの値が“0”の場合、継続する描画処理はない場合と判断し、S1802へ処理が進む。S1802からS1810までの処理は、図10に示すS1101からS1109までの処理と同様のため、省略する。
【0075】
S1811では、ジョブ制御部206がシステム制御部216から省電力モード移行の要求を受信する。S1812では、描画処理制御部209は、変数RipStateに「一時停止」を書き込む。S1813では、描画処理制御部209は、描画部メッセージ送信レジスタに「一時停止」を書き込む。S1814からS1815までは、図10に示すS1113からS1114までの処理と同様であるため、省略する。
【0076】
S1816では、ジョブ制御部206が、変数RipStateの値を参照する。そして、RipStateの値が「一時停止」の場合は、S1822へ進む。一方、RipStateの値が「描画」の場合は、S1818へ進む。S1818からS1820は、図10に示すS1117からS1119までの処理と同様のため、省略する。S1819もしくはS1820の処理の後、S1821へ進む。S1821では、描画処理制御部209は、変数RipPauseに“0”を書き込む。そして、本処理フローを終了する。
【0077】
S1822では、描画処理制御部209は、変数RipPauseに“1”を書き込む。S1823ではジョブ制御部206は、システム制御部216に描画部211を一時停止が完了したことを通知する。そして、本処理フローを終了する。
【0078】
S1801にて、変数RipPauseの値が“1”であると判定された後、S1824の処理を行う。S1824からS1832までの処理は、S1802からS1810までの処理と同様であるため、省略する。またS1833から1841までの処理は、S1814からS1823までの処理と同様であるため、省略する。
【0079】
[描画フロー]
図17(A)および(B)は、第三実施形態に係る描画部211の挙動を説明したフローチャートである。なお、図に示すフローチャートにおいて、破線矢印は別の図に示す処理との対応を示す。
【0080】
S1901からS1903までは、図11に示すS1201からS1203までの処理と同じため省略する。
【0081】
S1904では、描画部211は、描画処理制御部メッセージ受信レジスタの値を参照する。そして、描画処理制御部メッセージ受信レジスタの値が「一時停止」の場合はS1906へ、「再開」の場合はS1912へ、「開始」の場合はS1917へと処理が進む。
【0082】
S1906からS1911までは、描画処理を一時停止するための処理である。S1906では、描画済みスキャンライン数格納部219に格納されている値とバンド情報格納部220に格納されている値で割り算を行い、余りがゼロであるか否かを判定する。つまり、現在処理しているスキャンラインが、バンドの最後のラインであるか否かを判定しており、余りがゼロとならない場合は、まだ現在描画しているバンド内に、描画処理が未実施のスキャンラインが残っていることを意味する。そのため、ゼロでない場合(S1906にてNO)、S1917へ進み、次のスキャンラインの描画処理を継続する。一方でゼロの場合(S1906にてYES)、S1907へと処理を進める。
【0083】
S1907では、描画部211は、出力先指定情報格納部217を参照し、出力先がコントーン画像データ格納部214か、画像処理H/W212かを判定する。ここで出力先がコントーン画像データ格納部214と判定された場合、S1911へと処理を進める。一方で、出力先が画像処理H/W212と判定された場合、S1909へと処理を進める。
【0084】
S1909では、描画部211は、出力すべき予め決められた色値のピクセルの総数PixNumを計算する。計算方法は、中間データからページの高さH及びページのスキャンライン幅Wを取得する。そして、描画開始から現時点まで処理したスキャンライン数H1との間で以下の式5を用いて、PixNumを計算する。
【0085】
PixNum=W*(H−H1)・・・・・(式5)
S1910では、描画部211は、予め決められた色値ピクセルを画像処理H/W212へ送信する。S1911では、描画部211は、現在注目している中間データの位置情報であるアドレスを変数RipAddrに格納する。変数RipAddrに現在注目している中間データのアドレスを格納することで、描画処理を再開後に描画部211が描画処理を途中から開始することが可能する。
【0086】
S1912からS1916までは、描画処理を再開するための処理である。S1912では、描画部211は、出力先指定情報格納部217に格納された値を参照する。描画部211の参照した値が「コントーン画像データ格納部」である場合、S1915へと処理を進める。一方で、S1912にて参照した値が「画像処理H/W」である場合、S1913へと処理を進める。S1913では、描画部211が中間データに従って生成する必要の無いピクセルの総数PixNumを計算する。計算方法は、描画済みスキャンライン数格納部219からH1描画済みスキャンライン数H1を取得し、中間データからページのスキャンライン幅Wを取得する。そして、H1とWの間で以下の式6を用いて、PixNumを計算する。
【0087】
PixNum=W*H1・・・・・(式6)
S1914では、予め決められた色値のピクセルを画像処理H/W212へ出力する処理を行う。S1915では、描画部211は、描画処理制御部メッセージ受信レジスタに「開始」を書き込む。S1916では、描画部211は、変数RipAddrに格納された中間データのアドレスを取得する。この位置情報により、中間データの途中から描画処理の再開を行うことが可能となる。S1917からS1921は、図11に示すS1205からS1208までの処理と同様であるため省略する。また、S1910およびS1914における予め決められた色値ピクセルの送信処理であるS1922からS1923までの処理は、図11に示すS1211からS1212までの処理と同様であるため省略する。なお、S1910にて第一送信手段を実現し、S1913にて第二送信手段を実現する。
【0088】
以上により、第一実施形態の効果に加え、一時的に処理が停止された場合においても処理の再開時には、プリントデータの未処理の部分から継続して処理を行うことができる。従って、更なるユーザの利便性、画像形成装置の負荷、処理効率を向上させることができる。
【0089】
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【特許請求の範囲】
【請求項1】
プリントデータに基づいて画素データを生成する描画部と、該画素データに対して画像処理を行う画像処理部とを有する画像形成装置であって、
前記描画部および前記画像処理部による処理を行っている際に、制御部から当該処理に対する停止指示を受けた場合において、前記描画部が生成する画素データの出力先である前記画像処理部が停止可能か否かを判定する判定手段と、
前記判定手段によって停止不可と判定された場合に、前記描画部による当該画素データを生成する処理において未処理の画素の数だけ予め定められた色値の画素データを前記画像処理部に送信する送信手段と
を有し、
前記画像処理部は、前記送信手段により送信された前記予め定められた色値の画素データを用いて画像処理を行うことを特徴とする画像形成装置。
【請求項2】
前記描画部は、前記プリントデータのスキャンラインごとに画素データとして生成することを特徴とする請求項1に記載の画像形成装置。
【請求項3】
プリントデータに基づいて画素データを生成する描画部と、該画素データに対して画像処理を行う画像処理部とを有する画像形成装置であって、
前記描画部および前記画像処理部による処理を行っている際に、制御部から当該処理に対する停止指示を受けた場合において、前記停止指示を受けた時点での前記描画部における前記プリントデータに対する処理の進行状況に応じて、当該処理を停止するか否かを判定する第一判定手段と、
前記第一判定手段により停止すると判定された場合に、前記描画部が生成する画素データの出力先である前記画像処理部が停止可能か否かを判定する第二判定手段と、
前記第二判定手段によって停止不可と判定された場合に、前記描画部による当該画素データを生成する処理において未処理の画素の数だけ予め定められた色値の画素データを前記画像処理部に送信する送信手段と
を有し、
前記画像処理部は、前記送信手段により送信された前記予め定められた色値の画素データを用いて画像処理を行うことを特徴とする画像形成装置。
【請求項4】
前記第一判定手段は、前記プリントデータにおける1ページあたりの総スキャンライン数に対し前記描画部による処理済みのスキャンライン数の割合が所定の閾値より大きく、かつ、前記描画部による1スキャンラインあたりの平均描画処理時間が所定の閾値よりも小さい場合に、当該処理を停止しないと判定することを特徴とする請求項3に記載の画像形成装置。
【請求項5】
ユーザから当該画像形成装置に対する処理の停止指示を受け付ける受付手段を更に有し、
前記受付手段は、ユーザから前記処理の進行状況に応じて処理を停止するか、現時点で処理を強制停止するかの指示を受け付けることを特徴とする請求項4に記載の画像形成装置。
【請求項6】
前記第一判定手段は、前記受付手段にてユーザから現時点で処理を強制停止するとの指示を受け付けた場合、当該処理を停止すると判定することを特徴とする請求項5に記載の画像形成装置。
【請求項7】
プリントデータに基づいて画素データとして描画する描画部と、該画素データに対して画像処理を行う画像処理部とを有する画像形成装置であって、
前記描画部および前記画像処理部による処理を行っている際に、制御部から当該処理に対する一時停止指示を受けた場合において、前記一時停止指示を受信する直前までに処理済みの画素データ、および、前記描画部による当該画素データを生成する処理において未処理の画素の位置情報を保持する保持手段と、
前記一時停止指示を受けた場合において、前記描画部が生成する画素データの出力先である前記画像処理部が停止可能か否かを判定する判定手段と、
前記判定手段によって停止不可と判定された場合に、前記描画部による当該画素データを生成する処理において未処理の画素の数だけ予め定められた色値の画素データを前記画像処理部に送信する第一送信手段と、
当該画像形成装置が一時停止から復帰した後に、前記保持手段によって保持された描画処理済みのプリントデータに含まれる画素の数だけ前記予め定められた色値を前記画像処理部に送信する第二送信手段と
を有し、
前記描画部は、当該画像形成装置が一時停止から復帰した後に、前記保持手段によって保持された前記位置情報を元に、描画処理を続行することを特徴とする画像形成装置。
【請求項8】
前記プリントデータを複数のスキャンラインからなるバンド単位で分割し、
前記描画部は、前記制御部から当該処理に対する一時停止指示を受けた際に処理を行っている着目バンドに対して描画処理が完了するまで当該描画処理を継続し、
前記保持手段は、当該描画部が描画処理を完了させたバンドまでの画素データ、および、未処理のバンドの位置情報を保持する
ことを特徴とする請求項7に記載の画像形成装置。
【請求項9】
プリントデータに基づいて画素データを生成する描画部と、該画素データに対して画像処理を行う画像処理部とを有する画像形成装置における制御方法であって、
判定手段が、前記描画部および前記画像処理部による処理を行っている際に、制御部から当該処理に対する停止指示を受けた場合において、前記描画部が生成する画素データの出力先である前記画像処理部が停止可能か否かを判定する判定工程と、
送信手段が、前記判定工程において停止不可と判定された場合に、前記描画部による当該画素データを生成する処理において未処理の画素の数だけ予め定められた色値の画素データを前記画像処理部に送信する送信工程と
を有し、
前記画像処理部は、前記送信工程において送信された前記予め定められた色値の画素データを用いて画像処理を行うことを特徴とする制御方法。
【請求項10】
コンピュータを、
描画部および画像処理部による処理を行っている際に、制御部から当該処理に対する停止指示を受けた場合において、前記描画部が生成する画素データの出力先である前記画像処理部が停止可能か否かを判定する判定手段、
前記判定手段によって停止不可と判定された場合に、前記描画部による当該画素データを生成する処理において未処理の画素の数だけ予め定められた色値の画素データを前記画像処理部に送信する送信手段
として機能させ、
前記画像処理部を、前記送信手段により送信された前記予め定められた色値の画素データを用いて画像処理を行うように機能させることを特徴とするプログラム。
【請求項1】
プリントデータに基づいて画素データを生成する描画部と、該画素データに対して画像処理を行う画像処理部とを有する画像形成装置であって、
前記描画部および前記画像処理部による処理を行っている際に、制御部から当該処理に対する停止指示を受けた場合において、前記描画部が生成する画素データの出力先である前記画像処理部が停止可能か否かを判定する判定手段と、
前記判定手段によって停止不可と判定された場合に、前記描画部による当該画素データを生成する処理において未処理の画素の数だけ予め定められた色値の画素データを前記画像処理部に送信する送信手段と
を有し、
前記画像処理部は、前記送信手段により送信された前記予め定められた色値の画素データを用いて画像処理を行うことを特徴とする画像形成装置。
【請求項2】
前記描画部は、前記プリントデータのスキャンラインごとに画素データとして生成することを特徴とする請求項1に記載の画像形成装置。
【請求項3】
プリントデータに基づいて画素データを生成する描画部と、該画素データに対して画像処理を行う画像処理部とを有する画像形成装置であって、
前記描画部および前記画像処理部による処理を行っている際に、制御部から当該処理に対する停止指示を受けた場合において、前記停止指示を受けた時点での前記描画部における前記プリントデータに対する処理の進行状況に応じて、当該処理を停止するか否かを判定する第一判定手段と、
前記第一判定手段により停止すると判定された場合に、前記描画部が生成する画素データの出力先である前記画像処理部が停止可能か否かを判定する第二判定手段と、
前記第二判定手段によって停止不可と判定された場合に、前記描画部による当該画素データを生成する処理において未処理の画素の数だけ予め定められた色値の画素データを前記画像処理部に送信する送信手段と
を有し、
前記画像処理部は、前記送信手段により送信された前記予め定められた色値の画素データを用いて画像処理を行うことを特徴とする画像形成装置。
【請求項4】
前記第一判定手段は、前記プリントデータにおける1ページあたりの総スキャンライン数に対し前記描画部による処理済みのスキャンライン数の割合が所定の閾値より大きく、かつ、前記描画部による1スキャンラインあたりの平均描画処理時間が所定の閾値よりも小さい場合に、当該処理を停止しないと判定することを特徴とする請求項3に記載の画像形成装置。
【請求項5】
ユーザから当該画像形成装置に対する処理の停止指示を受け付ける受付手段を更に有し、
前記受付手段は、ユーザから前記処理の進行状況に応じて処理を停止するか、現時点で処理を強制停止するかの指示を受け付けることを特徴とする請求項4に記載の画像形成装置。
【請求項6】
前記第一判定手段は、前記受付手段にてユーザから現時点で処理を強制停止するとの指示を受け付けた場合、当該処理を停止すると判定することを特徴とする請求項5に記載の画像形成装置。
【請求項7】
プリントデータに基づいて画素データとして描画する描画部と、該画素データに対して画像処理を行う画像処理部とを有する画像形成装置であって、
前記描画部および前記画像処理部による処理を行っている際に、制御部から当該処理に対する一時停止指示を受けた場合において、前記一時停止指示を受信する直前までに処理済みの画素データ、および、前記描画部による当該画素データを生成する処理において未処理の画素の位置情報を保持する保持手段と、
前記一時停止指示を受けた場合において、前記描画部が生成する画素データの出力先である前記画像処理部が停止可能か否かを判定する判定手段と、
前記判定手段によって停止不可と判定された場合に、前記描画部による当該画素データを生成する処理において未処理の画素の数だけ予め定められた色値の画素データを前記画像処理部に送信する第一送信手段と、
当該画像形成装置が一時停止から復帰した後に、前記保持手段によって保持された描画処理済みのプリントデータに含まれる画素の数だけ前記予め定められた色値を前記画像処理部に送信する第二送信手段と
を有し、
前記描画部は、当該画像形成装置が一時停止から復帰した後に、前記保持手段によって保持された前記位置情報を元に、描画処理を続行することを特徴とする画像形成装置。
【請求項8】
前記プリントデータを複数のスキャンラインからなるバンド単位で分割し、
前記描画部は、前記制御部から当該処理に対する一時停止指示を受けた際に処理を行っている着目バンドに対して描画処理が完了するまで当該描画処理を継続し、
前記保持手段は、当該描画部が描画処理を完了させたバンドまでの画素データ、および、未処理のバンドの位置情報を保持する
ことを特徴とする請求項7に記載の画像形成装置。
【請求項9】
プリントデータに基づいて画素データを生成する描画部と、該画素データに対して画像処理を行う画像処理部とを有する画像形成装置における制御方法であって、
判定手段が、前記描画部および前記画像処理部による処理を行っている際に、制御部から当該処理に対する停止指示を受けた場合において、前記描画部が生成する画素データの出力先である前記画像処理部が停止可能か否かを判定する判定工程と、
送信手段が、前記判定工程において停止不可と判定された場合に、前記描画部による当該画素データを生成する処理において未処理の画素の数だけ予め定められた色値の画素データを前記画像処理部に送信する送信工程と
を有し、
前記画像処理部は、前記送信工程において送信された前記予め定められた色値の画素データを用いて画像処理を行うことを特徴とする制御方法。
【請求項10】
コンピュータを、
描画部および画像処理部による処理を行っている際に、制御部から当該処理に対する停止指示を受けた場合において、前記描画部が生成する画素データの出力先である前記画像処理部が停止可能か否かを判定する判定手段、
前記判定手段によって停止不可と判定された場合に、前記描画部による当該画素データを生成する処理において未処理の画素の数だけ予め定められた色値の画素データを前記画像処理部に送信する送信手段
として機能させ、
前記画像処理部を、前記送信手段により送信された前記予め定められた色値の画素データを用いて画像処理を行うように機能させることを特徴とするプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13A】
【図13B】
【図14】
【図15A】
【図15B】
【図16A】
【図16B】
【図17】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13A】
【図13B】
【図14】
【図15A】
【図15B】
【図16A】
【図16B】
【図17】
【公開番号】特開2012−86450(P2012−86450A)
【公開日】平成24年5月10日(2012.5.10)
【国際特許分類】
【出願番号】特願2010−234916(P2010−234916)
【出願日】平成22年10月19日(2010.10.19)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成24年5月10日(2012.5.10)
【国際特許分類】
【出願日】平成22年10月19日(2010.10.19)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]