(57)【特許請求の範囲】
【請求項１】
画像データに基づいて所定の画素数分の画素データを順次生成するべく描画処理を実行し、前記描画処理の実行によって生成された画素データを出力する描画手段と、
前記描画手段によって出力された画素データに対して所定の画像処理を実行する画像処理手段と
を有し、
前記画像処理手段は、前記所定の画素数分の画素データに対して前記所定の画像処理を実行すると、処理停止状態へ移行可能となり、
前記描画手段は、前記描画処理の実行中に前記描画処理の実行の停止指示を受け付けた場合、前記描画処理の実行を停止し、所定の画素値の画素データを、前記画像処理手段が前記所定の画素数分の画素データに対して前記所定の画像処理を実行した後に前記処理停止状態へ移行させるべく、前記描画手段による前記描画処理が未処理の画素数分、前記画像処理手段に出力することを特徴とする画像形成装置。
【請求項２】
前記画像処理手段は、所定の画素数単位で、画素データに対する画像処理を実行することを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記画像処理手段は、前記所定の画像処理の実行を開始してから前記所定の画素数分の画素データに対して前記所定の画像処理を実行し終えることで、前記所定の画像処理の実行が停止された前記処理停止状態に移行することを特徴とする請求項２に記載の画像形成装置。
【請求項４】
前記描画手段による描画処理が未処理の画素数とは、前記画像処理手段が前記処理停止状態に移行するために要する画素数であることを特徴とする請求項１に記載の画像形成装置。
【請求項５】
前記描画手段による描画処理が未処理の画素数とは、前記描画処理の実行中に前記描画処理の実行の停止指示を受け付けた場合における、前記所定の画素数と前記描画処理の実行によって生成された画素データの画素数との差の画素数であることを特徴とする請求項１に記載の画像形成装置。
【請求項６】
前記描画手段による描画処理が未処理の画素数とは、前記描画処理の実行中に前記描画処理の実行の停止指示を受け付けた場合に、当該停止指示を受け付けた際に前記描画処理の実行によって画素データが生成されているスキャンラインの次のスキャンラインからページの最終のスキャンラインまでに含まれる画素数であることを特徴とする請求項５に記載の画像形成装置。
【請求項７】
前記描画手段は、前記描画処理の実行中に前記描画処理の実行の停止指示を受け付けた場合に、当該停止指示を受け付けた際に前記描画処理の実行によって画素データが生成されているスキャンラインについては前記描画処理を実行し続けることを特徴とする請求項６に記載の画像形成装置。
【請求項８】
前記描画処理の実行中とは、前記描画処理の実行による前記所定の画素数分の画素データの生成が未完了の状態のことであることを特徴とする請求項１乃至７のいずれか一項に記載の画像形成装置。
【請求項９】
前記所定の画素数とは、１ページ分の画素数のことであることを特徴とする請求項１乃至８のいずれか一項に記載の画像形成装置。
【請求項１０】
前記画像処理手段は、処理実行可能状態において前記所定の画素数分の画素データに対して前記所定の画像処理を実行すると、処理停止状態に移行可能であり、
前記停止指示は、前記描画処理の実行中、且つ、前記画像処理手段が前記処理実行可能状態である最中に受け付けられることを特徴とする請求項１乃至９のいずれか一項に記載の画像形成装置。
【請求項１１】
前記描画手段による前記描画処理の実行が前記画像データのデータ量を削減するためになされるか否かを判定する判定手段を更に有し、
前記描画手段による前記描画処理の実行が前記画像データのデータ量を削減するためになされると判定された場合、
前記描画手段は、前記描画処理の実行によって生成された画素データを前記画像処理手段ではなく記憶手段に出力し、
前記描画手段は、前記描画処理の実行中に前記描画処理の実行の停止指示を受け付けた場合に、前記描画手段に対して前記描画処理の実行の停止を指示し、かつ、前記所定の画素値の画素データを前記画像処理手段に出力せず、
前記描画手段による前記描画処理の実行が前記画像データのデータ量を削減するためになされると判定されなかった場合、
前記描画手段は、前記描画処理の実行によって生成された画素データを前記画像処理手段に出力し、
前記描画手段は、前記描画処理の実行中に前記描画処理の実行の停止指示を受け付けた場合に、前記描画手段に対して前記描画処理の実行の停止を指示し、かつ、前記所定の画素値の画素データを前記画像処理手段に出力する
ことを特徴とする請求項１乃至１０のいずれか一項に記載の画像形成装置。
【請求項１２】
前記所定の画像処理は、ハーフトーン処理であることを特徴とする請求項１乃至１１のいずれか一項に記載の画像形成装置。
【請求項１３】
前記画像データは、ＰＤＬデータから生成される中間データであることを特徴とする請求項１乃至１２のいずれか一項に記載の画像形成装置。
【請求項１４】
描画手段が、画像データに基づいて所定の画素数分の画素データを順次生成するべく描画処理を実行し、前記描画処理の実行によって生成された画素データを出力する描画工程と、
画像処理手段が、前記描画工程にて出力された画素データに対して所定の画像処理を実行する画像処理工程と
を有し、
前記画像処理手段は、前記所定の画素数分の画素データに対して前記所定の画像処理を実行すると、処理停止状態へ移行可能となり、
前記描画工程において、前記描画処理の実行中に前記描画処理の実行の停止指示を受け付けた場合、前記描画処理の実行を停止し、所定の画素値の画素データを、前記画像処理手段が前記所定の画素数分の画素データに対して前記所定の画像処理を実行した後に前記処理停止状態へ移行させるべく、前記描画工程による前記描画処理が未処理の画素数分、前記画像処理手段に出力することを特徴とする画像形成方法。
【請求項１５】
請求項１乃至１３のいずれか一項に記載の画像形成装置の各手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、制御方法、及びプログラムに関する。特に、プリンタでのプリントジョブ実行中に、そのプリントジョブを強制停止させる強制停止方法に関する。
【背景技術】
【０００２】
ユーザからジョブキャンセルの要求がプリンタに送信されると、プリンタ内部の各モジュールは、現在行っている処理の強制停止を行う。このとき、一部の画像処理モジュールにおいては強制停止の実行に伴い、制御モジュールは既に出力した画像データが格納されているメモリ領域の初期化をしなければならない。そのため強制停止用に新たな制御シーケンスを作成する必要があり、その分だけプリンタの特にメモリ管理に関わる制御が煩雑になりプリンタの制御モジュールの保守性が低下してしまう可能性がある。
【０００３】
上述したような背景において、ユーザからジョブキャンセルの要求がプリンタに送信されても強制停止をさせずに、一通りの処理を実行させる強制停止不可な画像処理モジュールがプリンタ内部に存在する。強制停止不可のモジュールの停止方法として、特許文献１では、画像処理モジュールが強制停止不可かつ、後段の装置が停止済みの場合に画像処理モジュール内部で廃却処理をする。しかしこの技術では、描画部とその後段に画像処理モジュールが直列に接続されている構成の場合、描画部による中間データに従った描画処理が完了するまで画像処理モジュールは停止することができない。更に描画処理モジュールの処理に掛かる時間は、中間データにて定義された処理に依存している。ユーザはプリントデータの処理に時間がかかるほどジョブキャンセルを実行する可能性が高い。つまり、このようなジョブキャンセルが実行される可能性が高いジョブほど、ジョブキャンセルが完了するまでの時間も掛かってしまうという問題がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−２５６１７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
描画処理モジュールと強制停止できない画像処理モジュールが直列に接続されている構成では、プリント処理の際に描画処理モジュールと画像処理モジュールとが実行中の場合、ユーザからのジョブキャンセル要求に応じて強制停止させることができない。そのため、ユーザのジョブキャンセル要求に対して、プリンタがジョブキャンセルを完了させるのに多大な時間が掛かることがある。これにより、ユーザの利便性が損なわれるという課題がある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明は以下の構成を有する。すなわち、画像形成装置であって、画像データに基づいて所定の画素数分の画素データを順次生成するべく描画処理を実行し、前記描画処理の実行によって生成された画素データを出力する描画手段と、前記描画手段によって出力された画素データに対して所定の画像処理を実行する画像処理手段とを有し、前記画像処理手段は、前記所定の画素数分の画素データに対して前記所定の画像処理を実行すると、処理停止状態へ移行可能となり、前記描画手段は、前記描画処理の実行中に前記描画処理の実行の停止指示を受け付けた場合、前記描画処理の実行を停止し、所定の画素値の画素データを、前記画像処理手段が前記所定の画素数分の画素データに対して前記所定の画像処理を実行した後に前記処理停止状態へ移行させるべく、前記描画手段による前記描画処理が未処理の画素数分、前記画像処理手段に出力する。
【発明の効果】
【０００９】
本発明により、描画部がある一定の時間以内に高速に強制停止を完了させることが可能となる。そのため、ユーザからのジョブキャンセル要求に対して、即時に対応することができ、プリンタの利便性が向上する。
【図面の簡単な説明】
【００１０】
【図１】本発明に係る印刷システムの概要を示したブロック図。
【図２】本発明に係るプリントコントローラ内部の概要を示したブロック図。
【図３】本発明に係る描画処理の概要を示したブロック図。
【図４】本発明に係るパネル操作部の一例を示した図
【図５】本発明に係る描画部の開始から終了までの概要を示したシーケンス図。
【図６】本発明に係る描画処理に関する制御処理手順を示したフローチャート。
【図７】本発明に係る描画処理手順を示したフローチャート。
【図８】第一実施形態に係る処理の概要を示した図。
【図９】第一実施形態に係る描画処理の開始から強制停止の完了までの概要を示したシーケンス図。
【図１０】第一実施形態に係る描画処理の制御処理を示したフローチャート。
【図１１】第一実施形態に係る描画処理を示したフローチャート。
【図１２】第二実施形態に係る処理の概要を示した図。
【図１３Ａ】第二実施形態に係る描画処理の制御処理を示したフローチャート。
【図１３Ｂ】第二実施形態に係る描画処理の制御処理を示したフローチャート。
【図１４】第二実施形態に係る描画処理を示したフローチャート。
【図１５Ａ】第三実施形態に係る処理の概要を示した図。
【図１５Ｂ】第三実施形態に係る処理の概要を示した図。
【図１６Ａ】第三実施形態に係る描画処理の制御処理を示したフローチャート。
【図１６Ｂ】第三実施形態に係る描画処理の制御処理を示したフローチャート。
【図１７】第三実施形態に係る描画処理を示したフローチャート。
【発明を実施するための形態】
【００１１】
［システム構成］
以下、本発明を実施するための形態について図面を用いて説明する。図１は、本発明に適用される印刷システムの一例を示している。印刷システムにおいて、情報処理装置であるホストＰＣ１０１、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）１０２、画像形成装置であるプリンタ１０３を有する。ホストＰＣ１０１とプリンタ１０３は、ＬＡＮ１０２を介して接続されている。なお、図１には、示されていないが、印刷システムは他の装置を含んでいても構わない。ユーザがホストＰＣ１０１からＬＡＮ１０２経由で送信したプリントデータに従って、プリンタ１０３で印刷処理が行われる。プリンタ１０３はユーザインタフェースであるパネル操作部１０４を備え、パネル操作部１０４にて、プリントジョブのキャンセル、給紙段の選択などをユーザが指示することができる。プリントコントローラ部１０５は、ホストＰＣ１０１を介したユーザからの印刷指示を受けると、印刷指示と共に送られるプリントデータに対して画像を形成するための画像処理を行い、画像データの形成を行う。このとき形成された画像データは、プリントエンジン部１０６に送られる。プリントエンジン部１０６では、画像データを元にトナーを紙媒体に定着させ、排紙処理を行う。なお、ここでのプリントデータは、ホストＰＣ１０１から受信する構成に限られず、例えば、他の装置にて保持されているデータをユーザの印刷指示に基づいて取得しても構わない。また、本実施形態において、プリントデータは、ＰＤＬ（Ｐｒｉｎｔ  ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）形式で定義されているものとして説明するが、これに限定されるものではない。
【００１２】
図２は、プリンタ１０３が有するプリントコントローラ部１０５の構成の一例を示している。まず、プリントコントローラ部１０５内部の各種モジュールはシステムバス２０１で相互に接続されている。そして、外部モジュールとのデータの入出力を取り扱うＩ／Ｆとして、プリントエンジンＩ／Ｆ２０３、ユーザＩ／Ｆ２０３、ネットワークＩ／Ｆ２０４が存在する。プリントエンジンＩ／Ｆ２０２は、プリントエンジン部１０６とプリントコントローラ部１０５との間におけるデータ通信のＩ／Ｆである。プリントコントローラ部１０５で生成した画像データは、プリントエンジンＩ／Ｆ２０２を経由してプリントエンジン部１０６に送られる。ユーザＩ／Ｆ２０３は、パネル操作部１０４とプリントコントローラ部１０５との間におけるデータ通信のＩ／Ｆである。ユーザがパネル操作部１０４で指定した命令内容は、ユーザＩ／Ｆ２０３を経由してプリントコントローラ部１０５に送られる。ネットワークＩ／Ｆ２０３は、ＬＡＮ１０２を経由したホストＰＣ１０１とプリンタコントローラとの間におけるデータ通信のＩ／Ｆである。ユーザがホストＰＣ１０１で指定した印刷命令は、ネットワークＩ／Ｆ２０４を経由してプリントコントローラ部１０５の内部に送られる。
【００１３】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）２０５は、プリントコントローラ部１０５において、一部ないし全体の制御処理及び画像処理を担っている。またジョブ制御部２０６は、ネットワークＩ／Ｆ２０４からプリントコントローラ部１０５内部に送られて来たプリントデータを元にプリントエンジンＩ／Ｆ２０２に画像データを渡すまでの一連のプリントジョブの制御を担っている。プリントコントローラ部１０５では、ネットワークＩ／Ｆ２０４からプリントデータが送られたとき、ジョブ制御部２０６は、まずＰＤＬ解釈部２０７でプリントデータの内容解釈を行わせる。ＰＤＬ解釈部２０７で解釈したプリントデータの内容は、中間データ生成部２０８に送られる。中間データ生成部２０８は、ＰＤＬ解釈部２０７で行ったプリントデータの解釈結果に基づいて、描画部２１１が解釈可能な描画処理に必要な中間データの生成を行い、中間データ格納部２１３に順次格納する。
【００１４】
中間データ格納部２１３に１ページ分の中間データが格納されたら、ジョブ制御部２０６は、描画部２１１に中間データ格納部２１３に格納された中間データを元にコントーン画像データ（連続的な階調の画像データ）の生成を行わせる。描画処理制御部２０９及び描画部２１１で生成された画像データは、基本的に画像処理部である画像処理Ｈ／Ｗ２１２を介してハーフトーン画像データ格納部２１５に格納される。また、例外的にコントーン画像データ格納部２１４に格納される場合もある。コントーン画像データ格納部２１４に描画部２１１で生成された画像データが格納される場合は、描画部２１１が縮退描画処理を行う場合である。
【００１５】
ここで、縮退描画処理とは、中間データ生成部２０８が生成する中間データのデータ量が中間データ格納部２１３の容量の上限値に達した際に、既に中間データ格納部２１３に格納済みの中間データを対象にコントーン画像データの生成を行う描画処理のことである。縮退描画処理を行うことで、中間データ格納部２１３に格納されていた中間データがコントーン画像データとなり、コントーン画像データ格納部２１４に格納される。このため、中間データ格納部２１３に空きができ、中間データ生成部２０８が中間データの生成を続行することが可能となる。また、縮退描画処理にて生成された画像は、コントーン画像データ格納部２１４に格納された後、縮退描画処理発生後に生成される中間データに組み込まれる。このように縮退描画処理で生成された画像データは、再び描画処理に利用されるのでコントーン画像で保持する必要があり、コントーン画像データ格納部２１４に保持される。以降、コントーン画像データを生成する際において、縮退描画処理と区別するために、縮退描画処理でない描画処理を“正常描画処理”と表現する。
【００１６】
また、コントーン画像データ格納部２１４及びハーフトーン画像データ格納部２１５に画像データを格納するとき、ページサイズ分の画像を縦方向において一定の高さで幾つかに分割したバンド単位で保持する。バンドは複数のスキャンラインからなり、１バンドあたりのスキャンライン数（高さ）は予め定義されているものとする。これは、画像処理Ｈ／Ｗ２１２が一回の画像処理で扱う処理単位がバンド単位であること及び、メモリ上に１ページ分の連続した領域を確保できない場合などへの対処することに起因する。なお、描画部２１１がどちらに出力するかは、縮退描画を実施するか否かの情報が出力先指定情報格納部２１７に格納され、出力先指定情報格納部２１７に格納された情報によって決められる。
【００１７】
また、描画部２１１は、専用Ｈ／Ｗで構成され、描画部２１１を制御するために描画処理制御部２０９が存在する。また同様に画像処理Ｈ／Ｗ２１２を制御するために画像処理Ｈ／Ｗ制御部２１０が存在する。また、システム制御部２１６は、プリントコントローラ部１０５をシステムとして機能させるための基礎的な部分であり、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を指す場合が多い。例えば時刻の取得を行いたい場合などは、システム制御部２１６から取得することになる。また、プリンタ１０３自体をＣＰＵ２０５とメモリ以外のハードウェアへの電力の供給を抑える省電力モードに移行させるか否かの制御なども行っている。
【００１８】
強制停止回避情報格納部２１８は、詳細は後述するが、ユーザＩ／Ｆ２０３を介して取得したパネル操作部１０４からユーザが設定した情報を格納する。描画済みスキャンライン数格納部２１９は、１ページあたりの描画処理において、既に描画済みのスキャンライン数を数え上げるカウント情報が格納されている。バンド情報格納部２２０は、１バンド当たりの高さを示す情報が格納されている。また図２において、ＲＡＭ（不図示）上に展開されＣＰＵ２０５で動くＳ／ＷモジュールとＨ／Ｗモジュールが分断された配置で示しているが、物理的にこの構成に限定するものではない。
【００１９】
［描画部における処理の流れ］
図３は、描画部２１１で実施される処理の流れの概要を示している。描画部２１１では、中間データ格納部２１３から中間データを入力データとして、命令解釈部３０１、輪郭書き出し部３０２、重なり整列部３０３、色塗り部３０４、色合成部３０５を経て画像データのピクセル出力を行っている。つまり、画素データ（ピクセルデータ）を生成する。命令解釈部３０１では、中間データの内容に従って、描画部２１１がこれから実行するべき命令の内容を判断する。例えば、命令解釈部３０１が解釈して判断する内容には、次のスキャンラインの描画処理を実行する命令、描画処理自体を終了する命令などがある。ここでスキャンラインとは、描画部２１１にて輪郭書き出し部３０２から色合成部３０５までの１回の描画処理で実行できる処理単位を表している。つまり、ページサイズは、１以上のスキャンラインからなる。またスキャンラインの値が１の場合、ページサイズの画像データに対して、高さが１で、ページと同じ幅をもつイメージを指す。
【００２０】
命令解釈部３０１が中間データに記載される命令を次のスキャンラインの描画処理を実行する命令と判断すると、輪郭書き出し部３０２から色合成部３０５までの処理が続いて実行される。輪郭書き出し部３０２は、中間データに含まれる描画オブジェクトから輪郭情報を取得する。ここで、輪郭情報とは、描画オブジェクトの輪郭の開始位置及び輪郭幅の２つの情報を指す。輪郭書き出し部３０２で取得された輪郭の情報が画像データの１スキャンライン分揃ったら、輪郭書き出し部３０２は、輪郭座標の情報を重なり整列部３０３に送る。重なり整列部３０３では、輪郭座標の情報と描画オブジェクト同士の重なりの上下関係を元に紙面に対して描画オブジェクトが正しい順番で並ぶように整列処理を行う。重なり整列部３０３で生成された整列済みの輪郭情報は、画像データの１スキャンライン分揃ったら、色塗り部３０４へ送られる。
【００２１】
色塗り部３０４では、整列済みの輪郭情報に対して、輪郭で区切られる一つ一つの区間に対して色情報を付加する。また、輪郭で区切られた区間に色ではなく、写真データが付加される場合も、その写真データは、色塗り部で展開される。色塗り部３０４で生成された色情報が付加された整列済みの輪郭情報は、１スキャンライン分揃ったら、色合成部３０５へ送られる。色合成部３０５では、色情報が付加された整列済みの輪郭情報を元に輪郭で区切られた領域かつ、その区切られた領域のうち他の輪郭で区切られた領域と重なっている部分同士に対して、中間データに従った重なりルールを適用する。
【００２２】
重なりルールとは、ＲＯＰ（Ｒａｓｔｅｒ  ＯＰｅｒａｔｏｒ）とアルファブレンドがある。ＲＯＰとは、領域同士が重なっている部分における、前面側と背面側の色値を表現するｂｉｔ同士で行われる論理演算である。重なりルールとしてＲＯＰが指定された場合、前面側と背面側の領域を表現する色値の間で論理演算が行われた結果が出力される。アルファブレンドとは、輪郭で区切られた領域同士で重なっている部分に対して、重なっている両者のうち前面側及び背面側の色を混ぜて得られる色を出力する際において、その混ぜる前面側と背面側との色値の割合比の指定である。
【００２３】
色合成部３０５では、重なりルールを適用し、重なっている領域における前面と背面との領域の色値からどのような色を出力するか決定する。色合成部３０５で行われた結果は、画像データの一つ一つのピクセルとして出力される。また前述のように描画部２１１の出力先には、コントーン画像データ格納部２１４及び画像処理Ｈ／Ｗ２１２及びのいずれかが選択される。すなわち、縮退描画処理による描画処理済みのピクセルを出力する場合は、描画部２１１の出力先はコントーン画像データ格納部２１４となり、縮退ではない正常描画処理による描画処理済みのピクセルを出力する場合は、画像処理Ｈ／Ｗ２１２となる。
【００２４】
［パネル操作部］
図４（Ａ）は、パネル操作部１０４の一例である。表示部４０１では、ユーザにプリンタ１０３に設定されている情報やユーザがプリンタに設定したい項目の表示し、ユーザに対して視覚的に提供する。表示部４０１に“プリント中”と表示されている際に、ユーザがジョブキャンセルボタン４０２を押下することにより、プリンタ１０３にて現時点で処理されているプリントジョブに強制停止を行うことができる。ユーザがメニューボタン４０３を押下することで、表示部４０１にユーザが設定できる項目及び、ユーザが確認できるプリンタ１０３内部の情報を選択できるようになる。ユーザは、メニューボタン４０３を押下した後に、表示部４０１に表示されるメニューの中で所望の項目を、選択ボタン４０４を用いて選択することができる。これにより、ユーザからの指示を受け付ける受付手段を実現する。
【００２５】
［正常描画処理および画像処理シーケンス］
図５は、描画部２１１での正常描画処理の開始から終了まで及び、画像処理Ｈ／Ｗ２１２での画像処理の開始から終了までのシーケンスを示した図である。期間５０１は、ＣＰＵ２０５が駆動している期間を示している。プリンタ１０３が正常描画処理を行うとき、期間５０１においてまず、画像処理Ｈ／Ｗ２１２に画像処理を実行可能な状態にするため、ＣＰＵ２０５から画像処理Ｈ／Ｗ２１２へメッセージ５０２を送信する。ここでメッセージの送信とは、具体的には所定のレジスタあるいは、メモリに所定の値を書き込むことを意味している。
【００２６】
ＣＰＵ２０５から画像処理Ｈ／Ｗ２１２へのメッセージ送信により画像処理Ｈ／Ｗ２１２は、実行可能な状態となり描画部２１１からコントーンのピクセルデータを受け付け、ハーフトーンのピクセルデータを出力できるようになる。期間５０３は、画像処理Ｈ／Ｗが画像処理を実行可能な状態の期間を示している。画像処理Ｈ／Ｗ２１２は、描画部２１１から送られる最後のコントーンのピクセルデータを受け付け、ハーフトーンのピクセルデータを出力することで画像処理が完了する。
【００２７】
ＣＰＵ２０５は、画像処理Ｈ／Ｗ２１２が画像処理を完了したことを画像処理Ｈ／Ｗ２１２からメッセージ５０８を受信することで検知する。ここでメッセージの受信とは、具体的には所定のレジスタあるいは、メモリから所定の値が読み込めることを意味している。
【００２８】
ＣＰＵ２０５は、画像処理Ｈ／Ｗ２１２にメッセージ５０２を送信した後に、描画部２１１に中間データの描画開始のメッセージ５０４を送信する。これにより、描画部２１１にて描画処理が行われる。期間５０５は、描画部２１１が描画処理を実行している期間を示している。描画部２１１は、中間データから描画終了を読みことでその処理を完了させる。ＣＰＵ２０５は、描画部２１１が描画処理を完了させたことを描画部２１１からメッセージ５０７を受信することで検知する。期間５０６は、ＣＰＵ２０５が描画処理の完了待ちをしている期間である。ＣＰＵ２０５は、ハーフトーン画像データ格納部２１５に画像が格納しきったことにより、プリントエンジン部１０６にハーフトーン画像を渡す。そのため、描画処理の完了待ちをしている期間は、ＣＰＵ２０５がメッセージ５０４を送信した時点からメッセージ５０８を受信した時点までとなる。
【００２９】
［正常描画処理および画像処理フロー］
図６は、描画部２１１での正常描画処理の開始から終了まで及び、画像処理Ｈ／Ｗ２１２での画像処理の開始から終了までのＣＰＵ２０５で実行される処理のフローチャートである。なお、図に示すフローチャートにおいて、破線矢印は別の図に示す処理との対応を示す。
【００３０】
Ｓ６０１でジョブ制御部２０６は、これから実行される描画処理が縮退描画処理か否かを判断する。縮退描画処理か否かを判断するための情報は、中間データ生成部２０８が中間データ格納部２１３に１回分の描画処理で使用される中間データの生成を完了したときに、中間データ生成部２０８からジョブ制御部２０６に通知される。Ｓ６０１にて、ジョブ制御部２０６が縮退描画処理と判断した場合（Ｓ６０１にてＹＥＳ）、Ｓ６０２からＳ６０３までの処理が実行される。一方で、縮退描画処理では無い正常描画処理の場合（Ｓ６０１にてＮＯ）、Ｓ６０４からＳ６０６までの処理が実行される。
【００３１】
Ｓ６０２では、画像処理Ｈ／Ｗ制御部２１０は、描画部２１１の出力先指定情報格納部２１７に、出力先がコントーン画像データ格納部２１４であることを書き込む。Ｓ６０３で画像処理Ｈ／Ｗ制御部２１０は、画像処理Ｈ／Ｗ２１２からＣＰＵ２０５へのメッセージが書き込まれる画像処理Ｈ／Ｗメッセージ受信レジスタに「処理完了」を書き込む。これは、縮退描画処理を行う場合、画像処理Ｈ／Ｗ２１２には描画部２１１からコントーンのピクセルデータか送信されないため、後述のＳ６１０でデッドロックが発生させないための処置である。その後、Ｓ６０７へ進む。
【００３２】
Ｓ６０４では、画像処理Ｈ／Ｗ制御部２１０は、出力先指定情報格納部２１７に描画部２１１の出力先が画像処理Ｈ／Ｗ２１２であることを書き込む。Ｓ６０５では、画像処理Ｈ／Ｗ制御部２１０は、画像処理Ｈ／Ｗメッセージ送信レジスタに「開始」を書き込む。Ｓ６０５における処理が図５に示したメッセージ５０２の処理に相当し、これにより画像処理Ｈ／Ｗ２１２が画像処理を実行可能な状態となる。Ｓ６０６では、画像処理Ｈ／Ｗ制御部２１０は、画像処理Ｈ／Ｗメッセージ受信レジスタに「待機中」を書き込む。その後、Ｓ６０７へ進む。
【００３３】
Ｓ６０７では、描画処理制御部２０９は、描画部メッセージ送信レジスタに「開始」を書き込む。Ｓ６０７における処理が図５に示したメッセージ５０４に相当し、これにより描画部２１１は、描画処理を開始する。Ｓ６０８では、描画処理制御部２０９は、描画部メッセージ受信レジスタに「待機中」を書き込む。Ｓ６０９では、描画処理制御部２０９は、描画処理メッセージ受信レジスタの値が「処理完了」となるまで待機する。Ｓ６０９にて、描画部メッセージ受信レジスタの値が「処理完了」となったことを確認すると、Ｓ６１０に処理が進む。Ｓ６０９にて「待機中」から「処理完了」に切り替わるタイミングが、図５に示すメッセージ５０７が実行されたタイミングとなる。Ｓ６１０にて画像処理Ｈ／Ｗ制御部２１０は、画像処理Ｈ／Ｗメッセージ受信レジスタの値が「処理完了」となるまで待機する。Ｓ６１０にて、画像処理Ｈ／Ｗメッセージ受信レジスタの値が「処理完了」となったことを確認すると、Ｓ６１１に処理が進む。Ｓ６１０にて「待機中」から「処理完了」に切り替わるタイミングが、図５に示すメッセージ５０８に相当する。
【００３４】
Ｓ６１１にて、ジョブ制御部２０６は、出力先指定情報格納部２１７に格納された値を参照する。参照した結果、値が「コントーン画像データ格納部」であった場合、先ほどまで実施された描画処理が“縮退描画処理”であったと判断し（Ｓ６１１にてＹＥＳ）、Ｓ６１２でジョブ制御部は、ＰＤＬ解釈部２０７及び中間データ生成部２０８の処理を再開させる。一方で、参照した値が「ハーフトーン画像データ格納部」であった場合は、“正常描画処理”であったと判断し（Ｓ６１１にてＮＯ）、Ｓ６１３でジョブ制御部２０６は、ハーフトーン画像データ格納部２１５に格納された画像データをプリントエンジンＩ／Ｆ２０２に渡す。
【００３５】
なお以降の図の説明において、描画処理制御部メッセージ受信レジスタと描画処理制御部メッセージ送信レジスタはそれぞれ、描画部メッセージ送信レジスタと描画部メッセージ受信レジスタとそれぞれ同じものを指し示していることとする。これは、図の説明においてＣＰＵ２０５側がその中心に置かれているか、あるいは描画部２１１がその中心に置かれているかによって、使い分けることにする。
【００３６】
［描画処理フロー］
図７は、描画部２１１で描画処理の開始から終了までに実行される処理のフローチャートである。なお、図に示すフローチャートにおいて、破線矢印は別の図に示す処理との対応を示す。
【００３７】
Ｓ７０１で描画部２１１は、描画処理制御部メッセージ受信レジスタに格納されている値が「開始」となるまで待機する。描画処理制御部メッセージ受信レジスタに格納されている値が「開始」となったら、Ｓ７０２へ進む。Ｓ７０１にて、描画処理制御部メッセージ受信レジスタに格納されている値が「開始」となるタイミングが描画部２１１における図５に示すメッセージ５０４に相当する。Ｓ７０２では、描画部２１１は、変数ＲｉｐＥｎｄに“ＦＡＬＳＥ”を書き込む。Ｓ７０３は、ループ制御で変数ＲｉｐＥｎｄに“ＴＲＵＥ”が書き込まれるまで、Ｓ７０４からＳ７０７まで処理を繰り返す。
【００３８】
Ｓ７０４にて、描画部２１１は、命令解釈部３０１による処理、すなわち中間データの解釈を行う。命令を解釈した結果、中間データの指示が次のスキャンラインの描画であった場合、Ｓ７０５に進む。Ｓ７０５にて、描画部２１１は、ページ当たりの１スキャンラインに対して輪郭書き出し部３０２から色合成部３０５までの処理を実行する。一方でＳ７０４にて、命令を解釈した結果、描画終了と解釈された場合、Ｓ７０６に進む。Ｓ７０６にて、描画部２１１は、描画処理制御部メッセージ送信レジスタに「処理完了」を書き込む。Ｓ７０６は、図５に示すメッセージ５０７に相当し、これによりＣＰＵ２０５は、描画部２１１の描画処理が完了したこと検知する。Ｓ７０７にて、描画部２１１は、変数ＲｉｐＥｎｄに“ＴＲＵＥ”を書き込み、Ｓ７０４によるループから抜け出す。以上により、本処理フローを終了する。
【００３９】
＜第一実施形態＞
以下、本発明を実施するための第一実施形態について図面を用いて説明する。図４（Ｂ）は、図４（Ａ）と同様にプリンタ１０３のパネル操作部１０４を示している。表示部８０１に「現在、プリント中」と表示されているときは、プリントコントローラ部１０５では、プリントジョブが実行中であることを示している。このように表示部８０１に「現在、プリント中」という表示がされているときにジョブキャンセルボタン８０２を押下することで、パネル操作部１０４からユーザＩ／Ｆ２０３を介してジョブ制御部２０６にジョブキャンセルの指示（停止指示）が送信される。ジョブ制御部２０６にてジョブキャンセルが受信されると直ちに現在実施されているプリントジョブの強制停止が実行される。
【００４０】
図８は、プリントジョブに対して強制停止が掛かるタイミングが正常描画処理である場合における処理の様子を示している。画像データ９０１は、描画部２１１にて描画されるコントーンの画像データを示している。画像データ９０１は、ページ幅がＷ、ページ高さがＨであり、ｙ＝１からｙ＝（Ｈ１−１）までのスキャンラインまで描画処理が済んでいる。そして、ｙ＝Ｈ１のスキャンライン９０２に対して描画処理を実施している最中である。描画部２１１がｙ＝Ｈ１のスキャンライン９０２の描画処理を実施している最中に、ジョブ制御部２０６から描画部２１１に強制停止が掛かると、描画部２１１は、ｙ＝Ｈ１のスキャンラインは、中間データに従って描画処理が実行される。しかしながら、ｙ＝（Ｈ１＋１）からｙ＝ＨまでのＨ２分のスキャンラインについては、中間データの内容に関係なく、予め定められた色値を有する（Ｈ２＊Ｗ）個分のピクセルデータを画像処理Ｈ／Ｗ２１２に出力する。画像処理Ｈ／Ｗ２１２は前述の通り途中で停止させることはできないため、現在処理しているスキャンラインの次のスキャンラインから予め決められた色値のピクセルデータを画像処理Ｈ／Ｗ２１２を止めるために必要な数だけ出力する。つまり、中間データに対して、未処理の画素の数だけ予め決められた色値を出力することとなる。この色値に関しては、未処理であることが明確に判定できる値を設定しても良い。このとき、色値は、通常は色値として設定され得ない値を設定してもよい。
【００４１】
［画像処理シーケンス］
図９は、描画部２１１での正常描画処理の途中で強制停止を行った場合における画像処理Ｈ／Ｗ２１２での画像処理の開始から終了までのシーケンスを示した図である。基本的な構成は図５と同一である。具体的には、図５および図９において、期間１００１と期間５０１、メッセージ１００３とメッセージ５０２、期間１００４と期間５０３、メッセージ１００６とメッセージ５０４、期間１００７と期間５０５、メッセージ１０１０とメッセージ５０７、メッセージ１０１２とメッセージ５０８は同じものを意味している。
【００４２】
ＣＰＵ２０５から描画部２１１への強制停止のメッセージは、必ず、ＣＰＵ２０５から描画部２１１への描画開始のメッセージ１００６と描画部２１１からＣＰＵ２０５への処理完了のメッセージ１０１０の間の期間にて発行されるものとする。強制停止のメッセージを描画部２１１が受け付けると、図８で説明した通りの挙動を描画部２１１は実施する。なお、停止指示は、ユーザがパネル操作部１０４を介して指示した際に行われても良いし、装置内のエラー等により、行われても良い。
【００４３】
［強制停止時の描画処理および画像処理フロー］
図１０は、第一実施形態における描画部２１１で実施される描画処理が途中で強制停止されるときの描画部２１１による描画開始から画像処理Ｈ／Ｗ２１２の処理終了までのＣＰＵ２０５で実行される処理のフローチャートである。なお、図に示すフローチャートにおいて、破線矢印は別の図に示す処理との対応を示す。
【００４４】
Ｓ１１０１からＳ１１０７までの処理は、図６に示すＳ６０１からＳ６０７までの処理と同様のため省略する。Ｓ１１０８で描画処理制御部２０９は、描画部２１１の状態を示す変数ＲｉｐＳｔａｔｅに「描画」を書き込む。変数ＲｉｐＳｔａｔｅに描画部２１１の状態を書き込むことで描画部２１１からの「処理完了」のメッセージによって、描画処理が完了したのか、強制停止が完了したのかをＣＰＵ２０５側で判断することが可能となる。Ｓ１１０９にて、描画処理制御部２０９は、描画処理メッセージ受信レジスタに「待機中」を書き込む。Ｓ１１１０にて、ジョブ制御部２０６がユーザＩ／Ｆ２０３からジョブキャンセルの要求を受信する。
【００４５】
Ｓ１１１１にて描画処理制御部２０９は、変数ＲｉｐＳｔａｔｅに「強制停止」を書き込む。そして、Ｓ１１１２にて描画処理制御部２０９は、描画処理メッセージ送信レジスタに「強制停止」を書き込む。Ｓ１１１２は、図９に示したメッセージ１００９に相当し、これによって、描画部２１１は強制停止ための処理に移行することができる。Ｓ１１１３、Ｓ１１１４の処理は、図６に示すＳ６０９、Ｓ６１０と同様なので省略する。
【００４６】
Ｓ１１１５では、描画処理変数ＲｉｐＳｔａｔｅの値をジョブ制御部２０６が参照する。変数ＲｉｐＳｔａｔｅの値が「強制停止」の場合、Ｓ１１１６へ進む。Ｓ１１１６では、ジョブ制御部２０６は、ジョブキャンセルが完了したことをユーザＩ／Ｆ２０３に通知する。Ｓ１１１５にて、変数ＲｉｐＳｔａｔｅの値が「描画」であった場合、Ｓ１１１７からＳ１１１９の処理を行う。Ｓ１１１７からＳ１１１９の処理は、図６に示すＳ６１１からＳ６１３までの処理と同様のため省略する。
【００４７】
［強制停止時の描画処理フロー］
図１１は、第一実施形態における描画部２１１で実施される描画処理が途中で強制停止されるときの描画部２１１のフローチャートである。なお、図に示すフローチャートにおいて、破線矢印は別の図に示す処理との対応を示す。
【００４８】
Ｓ１２０１からＳ１２０３の処理は、図７に示すＳ７０１からＳ７０３までの処理と同様のため省略する。Ｓ１２０４にて、描画部２１１は、描画処理制御部メッセージ受信用レジスタに格納されている値を確認する。確認した結果、格納されている値が「開始」であれば、Ｓ１２０５からＳ１２０８までの処理を行う。Ｓ１２０５からＳ１２０８までの処理は、図７に示したＳ７０５からＳ７０８までの処理と同様のため省略する。描画処理制御部メッセージ受信用レジスタに格納されている値が「強制停止」であれば、Ｓ１２０９へ進む。
【００４９】
Ｓ１２０９にて、描画部２１１は、出力先指定情報格納部２１７を参照する。出力先指定情報格納部２１７に格納された出力先がコントーン画像データ格納部２１４であった場合、画像処理Ｈ／Ｗ２１２は画像処理実行可能状態になっていないため、Ｓ１２０７へ進む。つまり、画像処理Ｈ／Ｗ２１２は停止可能であるとみなす。一方で、出力先指定情報格納部２１７に格納された出力先が画像処理Ｈ／Ｗ２１２であった場合、Ｓ１２１０からＳ１２１２までの処理を行う。つまり、出力先指定情報格納部２１７に格納された出力先が画像処理Ｈ／Ｗ２１２の場合は、画像処理Ｈ／Ｗ２１２が停止不可であるとみなす。
【００５０】
Ｓ１２１０では、描画部２１１は、現時点で未生成のピクセル総数ＰｉｘＮｕｍを計算する。計算方法として、中間データからページの高さＨ、及びページのスキャンライン幅Ｗを取得し、描画済みスキャンライン数格納部２１９に格納されたスキャンライン数Ｈ１を元に以下の式１を用いて求める。
【００５１】
ＰｉｘＮｕｍ＝Ｗ＊（Ｈ−Ｈ１）・・・・・（式１）
Ｓ１２１１はループ制御でＳ１２１２をＰｉｘＮｕｍ回実施することを制御している。Ｓ１２１２では、描画部２１１は、画像処理Ｈ／Ｗ２１２に予め決められた色値のピクセルを出力する。
【００５２】
以上により、描画処理モジュールと画像処理モジュールとが直列に接続されている構成において、プリント処理の際に描画処理モジュールと画像処理モジュールとが実行中の場合でも、ユーザからのジョブキャンセル要求に応じて強制停止させることができる。これにより、ユーザのジョブキャンセル要求に対して、早期に処理を強制停止させることができる。よって、ユーザの利便性を向上させることができる。
【００５３】
＜第二実施形態＞
以下、本発明を実施するための第二実施形態について図面を用いて説明する。図４（Ｃ）は、図４（Ａ）および図４（Ｂ）と同様にプリンタ１０３のパネル操作部１０４を示している。ユーザが、メニューボタン１３０２を押下することによってプリンタ１０３の設定変更を行うためのメニューが表示される。ユーザは、選択ボタン１３０３を操作することによって、所望の設定を行うことができる。表示部１３０１には、プリントジョブのキャンセルの設定変更を行うためのメニュー画面の一例が示されている。プリンタ１０３でプリントジョブ実行中にユーザがジョブキャンセルボタン１３０４を押下してジョブキャンセルを実行したときのジョブキャンセル方法をユーザが選択することができる。
【００５４】
メニュー画面に示されている選択項目のうち、「１．プリントジョブをすぐに停止させる」をユーザが選択した場合、第一実施形態にて述べた方法で描画部２１１に強制停止が掛かる。一方で「２．プリントジョブが終わりそうなら、プリント続行する」を選択した場合、ユーザがジョブキャンセルを実行したタイミングで描画処理が終了しそうであれば、描画処理を完了させて排紙を行わせる。これによって、ユーザが諦めてジョブキャンセルを実行さえしなければ、あとわずかな時間で描画処理が完了し排紙出力されるようなプリントデータを出力することが可能となる。そのため、ジョブキャンセルによるユーザのプリント出力の機会損失を軽減させられる。ここで、“ジョブが終わりそう”とは、予め定義された条件に基づいて、ジョブの処理が終了することを意味し、条件の詳細については以下で述べる。
【００５５】
図１２は、プリントジョブに対してどのような場合に強制停止を行わずにプリントジョブを実行させるかを説明した図である。画像データ１４０１は、描画部２１１にて描画されるコントーンの画像データを示している。画像データ１４０１は、ページ幅がＷ、ページ高さがＨであり、ｙ＝１からｙ＝（Ｈ１−１）までのスキャンラインまで描画処理が済んでいる。そして、ｙ＝Ｈ１のスキャンライン１４０２に対して描画処理の最中である。描画部２１１がｙ＝Ｈ１のスキャンライン１４０２の描画処理の最中に、ジョブ制御部２０６がユーザからのジョブキャンセル要求を受け取る。すると、描画処理制御部２０９が描画部２１１の描画処理の進行状況と１スキャンラインあたりに掛かる平均描画処理時間とについて確認処理を行う。
【００５６】
描画処理制御部２０９は、上記２点で強制停止を描画部２１１に送信するか、否かを判定する。描画処理がどの程度進行しているかは、ページ高さＨと描画済みスキャンライン数Ｈ１と予め決められた閾値Ｔｈ１との間で以下の条件を満たすか否かで判定する。
【００５７】
（Ｈ１／Ｈ）＞Ｔｈ１・・・・・（式２）
上記式２を満たさない場合、描画処理制御部２０９は、描画部２１１に対して強制停止を送信する。なお、閾値Ｔｈ１の値は装置ごとに固定値を有しても良いし、画像形成装置の管理者が設定できるようにしても構わない。
【００５８】
また、１スキャンラインあたりの平均描画時間は、以下の流れで求められる。まず、描画処理制御部２０９が描画部２１１に描画開始のメッセージを送信する直前にシステム制御部２１６からプリンタ１０３内部の時刻ｔ１を取得しておく。更に描画処理制御部２０９は、ジョブ制御部がユーザＩ／Ｆ２０３からジョブキャンセル要求を受けた直後の時刻ｔ２を取得する。ｔ１、ｔ２、及び描画済みのスキャンラインの個数（Ｈ１−１）と予め定められた閾値Ｔｈ２との間で以下の条件を満たすか否かで判定する。
【００５９】
（ｔ２−ｔ１）／Ｈ１＜Ｔｈ２・・・・・（式３）
上記式３を満たさない場合、描画処理制御部２０９は、描画部２１１に対して強制停止指示を送信する。そして、上記２つの条件式（式２および式３）をいずれも満たすことができた場合のみ、描画部２１１の強制停止を行わず、中間データに従った描画処理を続行させる。なお、閾値Ｔｈ２の値は装置ごとに固定値を有しても良いし、画像形成装置の管理者が設定できるようにしても構わない。
【００６０】
［強制停止時の描画処理および画像処理フロー］
図１３Ａおよび図１３Ｂは、第二実施形態における描画部２１１による描画開始から画像処理Ｈ／Ｗ２１２の処理終了までのＣＰＵ２０５で実行される処理のフローチャートである。ただし、パネル操作部１０４にて「プリントジョブが終わりそうなら、プリント続行する」が設定され、かつ、描画処理中にジョブキャンセル要求をジョブ制御部２０６が受けるという場合のフローチャートである。なお、図に示すフローチャートにおいて、破線矢印は別の図に示す処理との対応を示す。
【００６１】
Ｓ１５０１からＳ１５０６までの処理は、図１０に示すＳ１１０１からＳ１１０６までの処理と同様のため説明を省略する。Ｓ１５０７にて、描画処理制御部２０９は、システム制御部２１６から現在の時刻ｔ１を取得する。Ｓ１５０８からＳ１５１１までの処理は、図１０に示すＳ１１０７からＳ１１１０までの処理と同様のため、省略する。Ｓ１５１２にて、ジョブ制御部２０６は、強制停止回避情報格納部２１８を参照する。強制停止回避情報格納部２１８に格納されている値が「ＯＦＦ」である場合、Ｓ１５１９へ進む。一方で、強制停止回避情報格納部２１８に格納されている値が「ＯＮ」である場合、Ｓ１５１３へ進む。
【００６２】
Ｓ１５１３では、描画処理制御部２０９は、描画済みスキャンライン数格納部２１９から描画済みのスキャンライン数Ｈ１を取得する。Ｓ１５１４にて、描画処理制御部２０９は、中間データからページ高さＨを取得する。Ｓ１５１５にて、描画処理制御部２０９は、（Ｈ１／Ｈ）と予め決められた閾値Ｔｈ１の間での大小比較を行う。（Ｈ１／Ｈ）の値がＴｈ１以下の場合は（Ｓ１５１５にてＮＯ）、Ｓ１５１９へ進む。一方で（Ｈ１／Ｈ）の値がＴｈ１より大きい場合は（Ｓ１５１５にてＹＥＳ）、Ｓ１５１６へと進む。
【００６３】
Ｓ１５１６では、描画処理制御部２０９は、システム制御部２１６から現在の時刻ｔ２を取得する。Ｓ１５１７にて、描画処理制御部２０９は、１スキャンラインあたりの平均描画時間Ｔを以下の式４を用いて計算する。
【００６４】
Ｔ＝（（ｔ２−ｔ１）／Ｈ１）・・・・・（式４）
Ｓ１５１８では、Ｓ１５１７にて求められた平均描画時間Ｔと予め決めた閾値Ｔｈ２との間で大小比較を行う。ＴがＴｈ２より小さい場合（Ｓ１５１８にてＹＥＳ）、Ｓ１５２１へ進む。一方で、ＴがＴｈ２以上の場合（Ｓ１５１８にてＮＯ）、Ｓ１５１９へ進む。つまり、式３および式４に基づく判定を行うＳ１５１５およびＳ１５１８により、第一判定手段を実現する。Ｓ１５１９からＳ１５２７までの処理は、図１０にて示したＳ１１１１からＳ１１１９までの処理と同様のため、説明を省略する。
【００６５】
［強制停止時の描画処理フロー］
図１４は、第二実施形態における描画部２１１による描画開始から終了までの描画部２１１で実行される処理のフローチャートである。なお、図に示すフローチャートにおいて、破線矢印は別の図に示す処理との対応を示す。
【００６６】
Ｓ１６０１からＳ１６０２までの処理は、図１１に示すＳ１２０１からＳ１２０２までの処理と同様のため省略する。Ｓ１６０３にて、描画部２１１は、描画済みスキャンライン数格納部２１９に“０”を書き込む。Ｓ１６０４からＳ１６０７までは、図１１に示すＳ１２０３からＳ１２０６までの処理と同様のため省略する。
【００６７】
Ｓ１６０８にて、描画部２１１は、描画済みスキャンライン数カウンタに格納されている値に＋１加える。Ｓ１６０９からＳ１６１４までは、図１１に示すＳ１２０７からＳ１２１２までの処理と同様のため省略する。なお、Ｓ１６１１にて第二判定手段を実現する。
【００６８】
以上により、第一実施形態の効果に加え、処理の終了が間近である場合には処理を停止させずに継続するようにユーザは選択できるようになる。これにより、更なるユーザの利便性が向上できる。
【００６９】
＜第三実施形態＞
システム制御部２１６の判断によりプリンタ１０３が省電力モードに移行すると、プリンタ１０３では、ＣＰＵ２０５と一部のメモリを除くすべてのＨ／Ｗへの電力の供給が省電力モードから復帰するまで断たれてしまう。このことに伴って、描画部２１１が描画処理中にシステム制御部２１６が省電力モードに移行してしまう場合、描画部２１１は強制停止が実行されてしまう。そして、省電力モードからの復帰後に、強制停止が実行される直前に実行されていた描画処理を最初からやり直すことになる。そのため、ユーザがプリンタ１０３でプリントジョブを実行している最中にプリンタ１０３が省電力モードに移行してしまうと、省電力モードから復帰後に描画処理をゼロからやり直しが必要なため、ユーザに余計な時間が取らせてしまう。そこで描画処理の強制停止に関連して本実施形態では、省電力モードなどで描画処理を一旦中断したあと、同じ中間データを用いて描画処理を再開する場合に、中断する直前の状態から描画処理を続行する方法について述べる。以下、本発明を実施するための第三実施形態について図面を用いて説明する。
【００７０】
図１５Ａおよび図１５Ｂは、描画部２１１が描画処理の途中で省電力モードに入るとき、及び省電力モードから省電力モードからの復帰後の正常描画の様子を示す図である。ここでは、省電力モードに切り替わる際に、一時停止指示が行われる。
【００７１】
図１５Ａにおいて、画像データ１７０１は、ページ高さ（総スキャンライン数）Ｈ、ページ幅（スキャンライン幅）Ｗ、バンド高さをＨｂとして示している。スキャンライン１７０２は、現在、描画部２１１が処理しているスキャンラインを示している。描画部２１１がスキャンライン１７０２を処理している最中に、描画部２１１から省電力モードに入るため「一時停止」を受信すると、描画部２１１は、バンドの切れ目まで中間データに基づいて描画処理を行う。すなわち、着目バンドであるスキャンライン１７０２が含まれるＭバンド目（ｙ＝Ｈ２）までを、描画部２１１は、中間データの従って描画処理を行う。そして、描画部２１１は、（Ｍ＋１）バンド目からは予め決められた色値のピクセルを画像処理Ｈ／Ｗ２１２に出力する。つまり、（Ｍ＋１）バンド以降の中間データに含まれる画素の数だけ、予め決められた色値を出力することとなる。
【００７２】
一方で、省電力モードから復帰後は、図１５Ｂに示す画像データ１７０３のように、１バンド目からＭバンド目までは、予め定められた色値のピクセルを画像処理Ｈ／Ｗ２１２に出力する。そして、描画部２１１は、（Ｍ＋１）バンド目（ｙ＝Ｈ２＋１）からは中間データに従って、描画処理を行う。このように描画処理を行うことで、描画処理の途中で省電力モードへの移行及び復帰を挟む場合において、中間データに基づく描画処理にて同一のピクセルを２回以上処理することが無くなる。そのため、描画処理の途中で省電力モードへの移行及び復帰を挟む場合における、描画処理の効率が望める。
【００７３】
［一時停止時の描画処理および画像処理フロー］
図１６Ａおよび１６Ｂは、第三実施形態において、描画処理制御部２０９と画像処理Ｈ／Ｗ制御部２１０による描画画像処理Ｈ／Ｗ２１２の処理終了までを検知するまでのＣＰＵ２０５で実行される処理のフローチャートである。なお、図に示すフローチャートにおいて、破線矢印は別の図に示す処理との対応を示す。
【００７４】
Ｓ１８０１では、ジョブ制御部２０６は、変数ＲｉｐＰａｕｓｅの値を参照する。変数ＲｉｐＰａｕｓｅは、初期値として、“０”が格納されているものとする。ＲｉｐＰａｕｓｅの値が“１”の場合、省電力モードに入る直前まで行われていた描画処理の続きを実行するものと判断し、Ｓ１８２５へ処理が進む。一方、ＲｉｐＰａｕｓｅの値が“０”の場合、継続する描画処理はない場合と判断し、Ｓ１８０２へ処理が進む。Ｓ１８０２からＳ１８１０までの処理は、図１０に示すＳ１１０１からＳ１１０９までの処理と同様のため、省略する。
【００７５】
Ｓ１８１１では、ジョブ制御部２０６がシステム制御部２１６から省電力モード移行の要求を受信する。Ｓ１８１２では、描画処理制御部２０９は、変数ＲｉｐＳｔａｔｅに「一時停止」を書き込む。Ｓ１８１３では、描画処理制御部２０９は、描画部メッセージ送信レジスタに「一時停止」を書き込む。Ｓ１８１４からＳ１８１５までは、図１０に示すＳ１１１３からＳ１１１４までの処理と同様であるため、省略する。
【００７６】
Ｓ１８１６では、ジョブ制御部２０６が、変数ＲｉｐＳｔａｔｅの値を参照する。そして、ＲｉｐＳｔａｔｅの値が「一時停止」の場合は、Ｓ１８２２へ進む。一方、ＲｉｐＳｔａｔｅの値が「描画」の場合は、Ｓ１８１８へ進む。Ｓ１８１８からＳ１８２０は、図１０に示すＳ１１１７からＳ１１１９までの処理と同様のため、省略する。Ｓ１８１９もしくはＳ１８２０の処理の後、Ｓ１８２１へ進む。Ｓ１８２１では、描画処理制御部２０９は、変数ＲｉｐＰａｕｓｅに“０”を書き込む。そして、本処理フローを終了する。
【００７７】
Ｓ１８２２では、描画処理制御部２０９は、変数ＲｉｐＰａｕｓｅに“１”を書き込む。Ｓ１８２３ではジョブ制御部２０６は、システム制御部２１６に描画部２１１を一時停止が完了したことを通知する。そして、本処理フローを終了する。
【００７８】
Ｓ１８０１にて、変数ＲｉｐＰａｕｓｅの値が“１”であると判定された後、Ｓ１８２４の処理を行う。Ｓ１８２４からＳ１８３２までの処理は、Ｓ１８０２からＳ１８１０までの処理と同様であるため、省略する。またＳ１８３３から１８４１までの処理は、Ｓ１８１４からＳ１８２３までの処理と同様であるため、省略する。
【００７９】
［描画フロー］
図１７（Ａ）および（Ｂ）は、第三実施形態に係る描画部２１１の挙動を説明したフローチャートである。なお、図に示すフローチャートにおいて、破線矢印は別の図に示す処理との対応を示す。
【００８０】
Ｓ１９０１からＳ１９０３までは、図１１に示すＳ１２０１からＳ１２０３までの処理と同じため省略する。
【００８１】
Ｓ１９０４では、描画部２１１は、描画処理制御部メッセージ受信レジスタの値を参照する。そして、描画処理制御部メッセージ受信レジスタの値が「一時停止」の場合はＳ１９０６へ、「再開」の場合はＳ１９１２へ、「開始」の場合はＳ１９１７へと処理が進む。
【００８２】
Ｓ１９０６からＳ１９１１までは、描画処理を一時停止するための処理である。Ｓ１９０６では、描画済みスキャンライン数格納部２１９に格納されている値とバンド情報格納部２２０に格納されている値で割り算を行い、余りがゼロであるか否かを判定する。つまり、現在処理しているスキャンラインが、バンドの最後のラインであるか否かを判定しており、余りがゼロとならない場合は、まだ現在描画しているバンド内に、描画処理が未実施のスキャンラインが残っていることを意味する。そのため、ゼロでない場合（Ｓ１９０６にてＮＯ）、Ｓ１９１７へ進み、次のスキャンラインの描画処理を継続する。一方でゼロの場合（Ｓ１９０６にてＹＥＳ）、Ｓ１９０７へと処理を進める。
【００８３】
Ｓ１９０７では、描画部２１１は、出力先指定情報格納部２１７を参照し、出力先がコントーン画像データ格納部２１４か、画像処理Ｈ／Ｗ２１２かを判定する。ここで出力先がコントーン画像データ格納部２１４と判定された場合、Ｓ１９１１へと処理を進める。一方で、出力先が画像処理Ｈ／Ｗ２１２と判定された場合、Ｓ１９０９へと処理を進める。
【００８４】
Ｓ１９０９では、描画部２１１は、出力すべき予め決められた色値のピクセルの総数ＰｉｘＮｕｍを計算する。計算方法は、中間データからページの高さＨ及びページのスキャンライン幅Ｗを取得する。そして、描画開始から現時点まで処理したスキャンライン数Ｈ１との間で以下の式５を用いて、ＰｉｘＮｕｍを計算する。
【００８５】
ＰｉｘＮｕｍ＝Ｗ＊（Ｈ−Ｈ１）・・・・・（式５）
Ｓ１９１０では、描画部２１１は、予め決められた色値ピクセルを画像処理Ｈ／Ｗ２１２へ送信する。Ｓ１９１１では、描画部２１１は、現在注目している中間データの位置情報であるアドレスを変数ＲｉｐＡｄｄｒに格納する。変数ＲｉｐＡｄｄｒに現在注目している中間データのアドレスを格納することで、描画処理を再開後に描画部２１１が描画処理を途中から開始することが可能する。
【００８６】
Ｓ１９１２からＳ１９１６までは、描画処理を再開するための処理である。Ｓ１９１２では、描画部２１１は、出力先指定情報格納部２１７に格納された値を参照する。描画部２１１の参照した値が「コントーン画像データ格納部」である場合、Ｓ１９１５へと処理を進める。一方で、Ｓ１９１２にて参照した値が「画像処理Ｈ／Ｗ」である場合、Ｓ１９１３へと処理を進める。Ｓ１９１３では、描画部２１１が中間データに従って生成する必要の無いピクセルの総数ＰｉｘＮｕｍを計算する。計算方法は、描画済みスキャンライン数格納部２１９からＨ１描画済みスキャンライン数Ｈ１を取得し、中間データからページのスキャンライン幅Ｗを取得する。そして、Ｈ１とＷの間で以下の式６を用いて、ＰｉｘＮｕｍを計算する。
【００８７】
ＰｉｘＮｕｍ＝Ｗ＊Ｈ１・・・・・（式６）
Ｓ１９１４では、予め決められた色値のピクセルを画像処理Ｈ／Ｗ２１２へ出力する処理を行う。Ｓ１９１５では、描画部２１１は、描画処理制御部メッセージ受信レジスタに「開始」を書き込む。Ｓ１９１６では、描画部２１１は、変数ＲｉｐＡｄｄｒに格納された中間データのアドレスを取得する。この位置情報により、中間データの途中から描画処理の再開を行うことが可能となる。Ｓ１９１７からＳ１９２１は、図１１に示すＳ１２０５からＳ１２０８までの処理と同様であるため省略する。また、Ｓ１９１０およびＳ１９１４における予め決められた色値ピクセルの送信処理であるＳ１９２２からＳ１９２３までの処理は、図１１に示すＳ１２１１からＳ１２１２までの処理と同様であるため省略する。なお、Ｓ１９１０にて第一送信手段を実現し、Ｓ１９１３にて第二送信手段を実現する。
【００８８】
以上により、第一実施形態の効果に加え、一時的に処理が停止された場合においても処理の再開時には、プリントデータの未処理の部分から継続して処理を行うことができる。従って、更なるユーザの利便性、画像形成装置の負荷、処理効率を向上させることができる。
【００８９】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005739639.tif 000002
【図２】
0005739639.tif 000003
【図３】
0005739639.tif 000004
【図４】
0005739639.tif 000005
【図５】
0005739639.tif 000006
【図６】
0005739639.tif 000007
【図７】
0005739639.tif 000008
【図８】
0005739639.tif 000009
【図９】
0005739639.tif 000010
【図１０】
0005739639.tif 000011
【図１１】
0005739639.tif 000012
【図１２】
0005739639.tif 000013
【図１３Ａ】
0005739639.tif 000014
【図１３Ｂ】
0005739639.tif 000015
【図１４】
0005739639.tif 000016
【図１５Ａ】
0005739639.tif 000017
【図１５Ｂ】
0005739639.tif 000018
【図１６Ａ】
0005739639.tif 000019
【図１６Ｂ】
0005739639.tif 000020
【図１７】
0005739639.tif 000021