(57)【要約】【課題】強制停止できない画像処理モジュールから送信される画素データを受け取らないまま描画処理モジュールが停止すると、未送信の画素データが残り、停止完了後の描画処理において描画不正が発生する。【解決手段】画像形成装置とその制御方法であって、生成手段により生成された、印刷ジョブの印刷データに基づく中間データに基づいて画像を描画するとともに、中間データに基づいて描画した画像データと、画像処理手段で処理された画像データとを合成して出力する。このとき、印刷ジョブの印刷データを受け取って描画する処理を実行中に、生成手段が当該印刷ジョブのキャンセル要求を行ったことに応じて、画像処理手段で処理された画像データを受け取って破棄し、未処理の画像データを所定の画素データを含む画像データで出力した後、描画処理を停止する。【選択図】  図４
2018183897.tif 000002
【特許請求の範囲】
【請求項１】
印刷ジョブの印刷データに基づく中間データを生成する生成手段と、
画像データを処理する画像処理手段と、
前記中間データに基づいて画像を描画するとともに、前記中間データに基づいて描画した画像データと、前記画像処理手段で処理された画像データとを合成して出力する描画手段と、を有し、
前記描画手段は、前記印刷ジョブの印刷データを受け取って描画する処理を実行中に前記生成手段が当該印刷ジョブのキャンセル要求を行ったことに応じて、前記画像処理手段で処理された画像データを受け取って破棄し、未処理の画像データを所定の画素データを含む画像データで出力した後、描画処理を停止することを特徴とする画像形成装置。
【請求項２】
前記画像処理手段は、圧縮された画像データを伸張する伸張手段を有し、
前記描画手段は、前記描画する処理を実行中に前記キャンセル要求を受け付けると、前記伸張手段で伸張された画像データを受け取って破棄し、未処理の画像データを所定の画素データを含む画像データで出力することを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記描画手段から出力される画像データを圧縮する圧縮手段と、
前記圧縮手段により圧縮された画像データを記憶する記憶手段と、を更に有し、
前記伸張手段は、前記記憶手段に記憶された前記圧縮された画像データを、前記描画手段が画像データを描画する単位に応じて伸張することを特徴とする請求項２に記載の画像形成装置。
【請求項４】
前記描画手段は、
前記印刷データに含まれる所定の幅の幅と高さを有する画像データを複数の領域に分割し、前記複数の領域のそれぞれの単位で画像を描画することを特徴とする請求項１乃至３のいずれか１項に記載の画像形成装置。
【請求項５】
前記伸張手段は、前記描画手段からの伸張指示に応じて、前記圧縮された画像データを伸張することを特徴とする請求項２又は３に記載の画像形成装置。
【請求項６】
前記描画手段を複数有し、
前記複数の描画手段のそれぞれは、分割された前記複数の領域のそれぞれを更に分割し、当該分割された領域の単位で描画し、
前記印刷ジョブのキャンセル要求を受け付けると、前記画像処理手段で処理された画像データのうち、それぞれの描画手段が担当する領域の画像データを受け取って破棄し、未処理の画像データを所定の画素データを含む画像データで出力した後、処理を停止することを特徴とする請求項１乃至５のいずれか１項に記載の画像形成装置。
【請求項７】
前記印刷データに含まれる描画命令数を取得する取得手段を更に有し、
前記描画手段は、前記取得手段が取得した前記描画命令数が所定の閾値以下の場合に、前記印刷ジョブのキャンセル要求を受け付けないことを特徴とする請求項１乃至６のいずれか１項に記載の画像形成装置。
【請求項８】
前記画像処理手段は、実行中の処理を強制的に停止できないことを特徴とする請求項１に記載の画像形成装置。
【請求項９】
前記生成手段は、前記キャンセル要求に応じて、生成した中間データを破棄することを特徴とする請求項１に記載の画像形成装置。
【請求項１０】
画像形成装置を制御する制御方法であって、
印刷ジョブの印刷データに基づく中間データを生成する生成工程と、
画像データを処理する画像処理工程と、
前記中間データに基づいて画像を描画するとともに、前記中間データに基づいて描画した画像データと、前記画像処理工程で処理された画像データとを合成して出力する描画工程と、を有し、
前記描画工程は、前記印刷ジョブの印刷データを受け取って描画する処理を実行中に前記生成工程が当該印刷ジョブのキャンセル要求を行ったことに応じて、前記画像処理工程で処理された画像データを受け取って破棄し、未処理の画像データを所定の画素データを含む画像データで出力した後、描画処理を停止することを特徴とする画像形成装置の制御方法。
【請求項１１】
コンピュータを、請求項１乃至９のいずれか１項に記載の画像形成装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置とその制御方法、及びプログラムに関する。
【背景技術】
【０００２】
ホストコンピュータ等から、複数のオブジェクトを含むＰＤＬ（ページ記述言語）データや電子ドキュメント等の電子データを受信し、その電子データに基づいて印刷を行う印刷装置がある。このような印刷装置において、印刷中に、ユーザからジョブのキャンセル要求が入力されると、印刷装置内部のモジュールは、現在行なっている処理を強制的に停止しなければならない。このとき、ユーザからジョブのキャンセル要求が入力されても強制停止させずに、一通りの処理を実行させる強制停止不可な画像処理モジュールが印刷装置に存在する。特許文献１には、強制停止可能な描画処理モジュールと、強制停止できない画像処理モジュールが直に接続されている構成での安全なジョブの停止方法が提案されている。これによれば、強制停止できない画像処理モジュールに対して、予め定められた色値の画素データを送信させることで、その強制停止できない画像処理モジュールを安全に停止させている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−８６４５０公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述の強制停止可能な描画処理モジュールと強制停止できない画像処理モジュールが直に接続されている構成の中には、強制停止できない画像処理モジュールから送信される画素データを描画処理モジュールが受け取る構成もある。このような場合、強制停止できない画像処理モジュールから送信される画素データを受け取らないまま描画処理モジュールが停止すると、未送信の画素データが残り、停止完了後の描画処理において描画不正が発生するという課題があった。
【０００５】
本発明の目的は、上記従来技術の課題を解決することにある。
【０００６】
本発明の目的は、強制停止できない画像処理手段が処理中であっても、印刷ジョブのキャンセル要求に応じて描画処理を停止できる技術を提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するために本発明の一態様に係る画像形成装置は以下のような構成を備える。即ち、
印刷ジョブの印刷データに基づく中間データを生成する生成手段と、
画像データを処理する画像処理手段と、
前記中間データに基づいて画像を描画するとともに、前記中間データに基づいて描画した画像データと、前記画像処理手段で処理された画像データとを合成して出力する描画手段と、を有し、
前記描画手段は、前記印刷ジョブの印刷データを受け取って描画する処理を実行中に前記生成手段が当該印刷ジョブのキャンセル要求を行ったことに応じて、前記画像処理手段で処理された画像データを受け取って破棄し、未処理の画像データを所定の画素データを含む画像データで出力した後、描画処理を停止することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、強制停止できない画像処理手段が処理中であっても、印刷ジョブのキャンセル要求に応じて描画処理を停止でき、停止後の描画処理において描画不正の発生を防止できるという効果がある。
【０００９】
本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。なお、添付図面においては、同じ若しくは同様の構成には、同じ参照番号を付す。
【図面の簡単な説明】
【００１０】
添付図面は明細書に含まれ、その一部を構成し、本発明の実施形態を示し、その記述と共に本発明の原理を説明するために用いられる。
【図１】本発明の実施形態に係る画像形成装置の構成を説明するブロック図。
【図２】実施形態１に係る画像形成装置による像形成処理を説明するフローチャート。
【図３】実施形態１に係る画像形成装置のＲＩＰが割込みメッセージを受信したときの割込みハンドラによる処理を説明するフローチャート。
【図４】図３の割込みハンドラから元の処理に戻った後のＲＩＰ１２０の処理を説明するフローチャート。
【図５】実施形態に係るフォールバック処理時のデータフローを説明する図。
【図６】実施形態１に係る画像形成装置における伸張処理の一例を説明する図。
【図７】実施形態１に係る画像形成装置による画像処理時の停止処理を説明するフローチャート。
【図８】本発明の実施形態２に係る画像形成装置の構成を説明するブロック図。
【図９】実施形態２に係る画像形成装置の第一ＲＩＰと第二ＲＩＰの分担領域を説明する図。
【図１０】実施形態２に係る画像形成装置の第一ＲＩＰによる前述の図２のＳ２０４とＳ２０８の画像生成処理を説明するフローチャート。
【図１１】実施形態２に係る画像形成装置の第二ＲＩＰによる前述の図２のＳ２０４とＳ２０８の画像生成処理を説明するフローチャート。
【図１２】実施形態３に係る画像形成装置のＲＩＰの処理を説明するフローチャート。
【図１３】実施形態３に係る画像形成装置のＲＩＰの割込み処理を説明するフローチャート。
【図１４】実施形態３に係る描画オブジェクトの一例を示す図。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１２】
図１は、本発明の実施形態に係る画像形成装置１００の構成を説明するブロック図である。
【００１３】
この画像形成装置１００は、ＬＡＮ１０２を介してホストコンピュータ１０１と接続されている。ユーザは、印刷するページ情報を示すＰＤＬデータをホストコンピュータ１０１で生成し、ホストコンピュータ１０１からＬＡＮ１０２を介して画像形成装置１００に送信する。実施形態に係る画像形成装置１００は、複合機（ＭＦＰ：Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｒｉｎｔｅｒ）であっても、ＳＦＰ（Ｓｉｎｇｌｅ  Ｆｕｎｃｔｉｏｎ  Ｐｒｉｎｔｅｒ）のうちいずれのプリンタであってもよい。また画像形成装置１００は、ＭＦＰやＳＦＰ以外のプリンタであってもよい。
【００１４】
この画像形成装置１００は、例えば、画像出力デバイスであるプリンタ部（プリントエンジン）１１１を含む。また画像形成装置１００は、ホストコンピュータ１０１からＬＡＮ１０２を介してＰＤＬデータ（ページ記述言語で記述された印刷ジョブ）を受信するとプリンタ部１１１により印刷する。プリンタ部１１１は、デバイスＩ／Ｆ１２３と接続され、ＣＰＵ１１０で生成された画像データをシート（紙）に印刷する。ＣＰＵ１１０は、画像形成装置１００の全体を制御するための中央処理部である。ＲＡＭ１１２は、ＣＰＵ１１０が動作するためのワークメモリとして使用される。またＲＡＭ１１２は、取得したＰＤＬデータや、画像形成処理のために生成される中間データ、レンダリング処理を行う際の作業領域であるワーク領域や、入力された画像データを一時的に格納するためのメモリでもある。ＲＯＭ１１５は例えばブートＲＯＭであり、この装置のブートプログラムを格納している。記憶部１１６は、例えばハードディスクドライブであり、各種処理のためのプログラム、及び取得したＰＤＬデータや画像データ等を格納する。ＣＰＵ１１０は、ＲＯＭ１１５に格納されているブートプログラムを実行して記憶部１１６にインストールされているプログラムをＲＡＭ１１２に展開し、その展開したプログラムを実行することで、この画像形成装置１００の動作を制御する。
【００１５】
操作部Ｉ／Ｆ１１４は、各種メニューや印刷データ等の情報等を表示するための表示部を有する操作部１１３のインターフェース部であり、操作部１１３に対して操作画面データを出力する。また操作部Ｉ／Ｆ１１４は、操作部１１３を介してユーザが入力した情報をＣＰＵ１１０に伝える。尚、ここで操作部１１３はタッチパネル機能を有していても良い。ネットワークＩ／Ｆ１１８は、ＬＡＮ１０２を介して外部装置（例えばホストコンピュータ１０１）との間で情報のやり取りを行うためのインターフェースである。これらＣＰＵ１１０、ＲＯＭ１１５、ＲＡＭ１１２、記憶部１１６、操作部Ｉ／Ｆ１１４およびネットワークＩ／Ｆ１１８は、システムバス１１９に接続されている。
【００１６】
イメージバスＩ／Ｆ１１７は、システムバス１１９と画像データを高速に転送する画像バス１２４とを接続するためのインターフェースであり、データ構造を変換するバスブリッジである。画像バス１２４には、ＲＩＰ（ラスタイメージプロセッサ）１２０、画像圧縮部１２１、画像伸張部１２２、デバイスＩ／Ｆ１２３が接続されている。ＲＩＰ１２０は、ＣＰＵ１１０からの指示に基づき、ＰＤＬデータコードや中間データ（ディスプレイリスト）を解析して画像データに展開する。画像圧縮部１２１は、印刷処理に応じてＲＩＰ１２０により展開された画像データを圧縮し、イメージバスＩ／Ｆ１１７を通してＲＡＭ１１２に格納する。画像伸張部１２２は、ＲＡＭ１１２に格納された画像データを伸張し、印刷処理に応じて画像バス１２４を通してＲＩＰ１２０やデバイスＩ／Ｆ１２３に伸張結果を転送する。デバイスＩ／Ｆ１２３は、プリンタ部１１１にデータを送信するためのインターフェースである。
【００１７】
次に、以下に説明する実施形態における用語の定義について説明する。
【００１８】
スキャンラインとは、画像形成処理において画像データが連続的にメモリ走査される主走査方向のラインであり、スキャンラインの高さは１ピクセルである。そして複数のスキャンラインを束ねたものをバンドと呼ぶ。またこれらバンドを複数の矩形に分割した各矩形領域をブロックと呼ぶ。
【００１９】
次に実施形態１に係る画像形成装置１００による像形成処理を図２と図５、図６を参照して説明する。
【００２０】
図２は、実施形態１に係る画像形成装置１００による像形成処理を説明するフローチャートである。尚、このフローチャートで示す処理は、ＣＰＵ１１０がＲＡＭ１１２に展開したプログラムを実行することにより実現される。
【００２１】
まずＳ２０１でＣＰＵ１１０は、ホストコンピュータ１０１から受信したＰＤＬデータを記憶部１１６に格納し、そのＰＤＬデータの解析を行う。次にＳ２０２に進みＣＰＵ１１０は、解析したＰＤＬデータの情報を基に、ビットマップ画像データを生成するために必要な中間データの生成を行う。このとき通常は、中間データに１ページ分の描画命令が含まれる。しかし、Ｓ２０２で生成中の中間データが、ＲＡＭ１１２に格納しきれないサイズになった場合、或いは、中間データに含まれる描画命令が、格納できる上限値を超える場合がある。このとき、生成した中間データに対してビットマップ画像データを生成する（以降、フォールバック（Ｆａｌｌｂａｃｋ）処理）。そしてＳ２０３でＣＰＵ１１０は、フォールバック処理に入っているかどうかを判定し、その判定結果に応じてそれ以降の処理を切り替える。
【００２２】
Ｓ２０３でＣＰＵ１１０は、フォールバック処理に入っていないと判定するとＳ２０４に処理を進める。Ｓ２０４でＣＰＵ１１０は、生成した中間データに基づいて、ＲＩＰ１２０にラスタライズを指示する。これによりＲＩＰ１２０はビットマップ画像データを生成する。そしてＳ２０５に進みＣＰＵ１１０は、ＲＩＰ１２０が生成したビットマップ画像データを画像圧縮部１２１により圧縮させ、イメージバスＩ／Ｆ１１７を通してＲＡＭ１１２に格納する。次にＳ２０６に進みＣＰＵ１１０は、ＲＡＭ１１２に格納された圧縮画像データを画像伸張部１２２により伸張させ、印刷処理に応じて画像バス１２４を通して、伸張したビットマップ画像データをデバイスＩ／Ｆ１２３に転送する。そしてＳ２０７でＣＰＵ１１０は、プリンタ部１１１により、そのビットマップ画像データに従って印刷させる。
【００２３】
このとき画像圧縮部１２１と画像伸張部１２２は、ＲＩＰ１２０から制御することも、ＣＰＵ１１０から制御することも可能である。また画像伸張部１２２は、圧縮画像データを直ちに伸張しているが、ＲＡＭ１１２に格納された圧縮画像データを一旦記憶部１１６に移動し、ユーザからの指示等に応じて圧縮画像データを伸張して印刷するようにしても良い。
【００２４】
一方、Ｓ２０３でＣＰＵ１１０は、フォールバック処理に入っていると判定するとＳ２０８に進む。Ｓ２０８でＣＰＵ１１０は、生成した中間データに基づいて、ＲＩＰ１２０にラスタライズを指示し、ＲＩＰ１２０はビットマップ画像データを生成する。次にＳ２０９に進みＣＰＵ１１０は、ＲＩＰ１２０が生成したビットマップ画像データを画像圧縮部１２１により圧縮させ、イメージバスＩ／Ｆ１１７を通してＲＡＭ１１２に格納する。次にＳ２１０に進みＣＰＵ１１０は、Ｓ２０９で得られた圧縮画像データを背景画像とし、フォールバック処理に入る前のＳ２０２で中間データに含まれなかった描画命令と合成するような中間データを生成できるよう背景登録処理を行う。従って、Ｓ２１０を実行した後のＳ２０２では、ＲＡＭ１１２に格納された圧縮画像データを伸張して利用する描画命令が、中間データに含まれることになる。
【００２５】
図５は、実施形態に係るフォールバック処理時のデータフローを説明する図である。
【００２６】
図５では、中間データ５０３に画像５００を描画する描画命令があり、圧縮画像５０４には圧縮されたビットマップ画像５０１がある。ＲＩＰ１２０は、画像５００とビットマップ画像５０１とを合成した合成ビットマップ画像５０２を生成する。
【００２７】
次に図２のＳ２０４とＳ２０８の画像生成処理を図３及び図４のフローチャートを参照して説明する。
【００２８】
図３は、実施形態１に係る画像形成装置１００のＲＩＰ１２０が割込みメッセージを受信したときの割込みハンドラによる処理を説明するフローチャートである。ここではＣＰＵ１１０がＲＩＰ１２０にビットマップ画像データの生成の中止を指示した場合の処理とともに後述する。
【００２９】
図４は、図３の割込みハンドラから元の処理に戻った後のＲＩＰ１２０の処理を説明するフローチャートである。
【００３０】
図３において、まずＳ３０１でＲＩＰ１２０は、ＣＰＵ１１０からの割込みメッセージを読み込む。次にＳ３０２に進みＲＩＰ１２０は、ＣＰＵ１１０からの割込みメッセージがキャンセル指示かどうか判定し、キャンセル指示であればＳ３０３に進んでキャンセルフラグをオンにして、キャンセル処理を実行する。Ｓ３０３でＲＩＰ１２０はＲ、ＩＰ１２０内の所定のレジスタ、或いは、ＲＡＭ１１２のキャンセルフラグをオンにする。また、キャンセル指示ではなかった場合は、何も処理せず割込みハンドラから元の処理に戻る。
【００３１】
次に図４のフローチャートを説明する。
【００３２】
先ずＳ４０１でＲＩＰ１２０は、図２のＳ２０２で生成された中間データを読み込む。次にＳ４０２に進みＲＩＰ１２０は、画像圧縮部１２１に対して、生成するビットマップ画像データを圧縮するように指示する。より具体的には、Ｓ４０１で読み込んだ中間データに含まれる指示から、生成するビットマップ画像データの幅、高さ情報、色空間情報、圧縮画像を格納するＲＡＭ１１２のアドレスを画像圧縮部１２１に対して設定する。次にＳ４０３に進みＲＩＰ１２０はキャンセルフラグがオンかどうか判定する。ここでキャンセルフラグがオンであればＳ４０９に進み、そうでないときはＳ４０４に進む。
【００３３】
Ｓ４０４でＲＩＰ１２０は、中間データに背景が登録されているかどうか判定する。図２のＳ２１０後のＳ２０２で生成される中間データの場合は、中間データに背景が登録されている。従って中間データに背景が登録されているときはＳ４０５に進み、ＲＩＰ１２０は、登録された背景を使用できるよう、画像伸張部１２２に、ＲＡＭ１１２に格納された圧縮画像データの伸張を開始するように指示してＳ４０６に進む。またＳ４０４で中間データに背景が登録されていないときはＳ４０６に進む。
【００３４】
Ｓ４０６でＲＩＰ１２０は、Ｓ４０３と同様に、キャンセルフラグがオンかどうか判定し、キャンセルフラグがオフ、即ち、キャンセル指示が無い場合はＳ４０７に進む。Ｓ４０７でＲＩＰ１２０は、中間データに含まれる描画命令と画像伸張部１２２から受け取る伸張結果を合成したビットマップ画像データを生成する。このときＲＩＰ１２０は、画像バス１２４を通して画像伸張部１２２から伸張結果を受け取る。そしてＳ４０８に進みＲＩＰ１２０は、全領域の描画を終了したかどうか判定し、終了していないときはＳ４０６に進む。そして全領域の描画を終了すると、この処理を終了する。従って、画像伸張部１２２は、伸張結果をＲＡＭ１１２には書き出さない。こうしてＲＩＰ１２０は、中間データによって指定される幅と高さの全領域のビットマップ画像データを生成するまでＳ４０６〜Ｓ４０８の処理をくり返す。
【００３５】
また画像伸張部１２２は、Ｓ４０５の伸張指示に従ってＲＩＰ１２０のビットマップ画像データを生成する単位に応じた伸張結果を提供する。例えば、ＲＩＰ１２０が１スキャンライン毎にビットマップ画像データを生成する場合、画像伸張部１２２は同スキャンラインの背景画像を１ピクセル単位、或いは、１スキャンライン単位で伸張結果として提供する。ＲＩＰ１２０が１ブロック単位でビットマップ画像データを生成する場合、画像伸張部１２２は同じブロックの背景画像を１ピクセル単位、或いは、１ブロック単位で伸張してその結果を提供する。ここで画像伸張部１２２は、ＲＩＰ１２０が伸張結果を受け取ってから次の領域の伸張結果を提供する。
【００３６】
図６は、実施形態１に係る画像形成装置１００における伸張処理の一例を説明する図である。
【００３７】
ビットマップ画像データ６１０は、ＲＩＰ１２０が生成するビットマップ画像データであり、この画像データ６１０は、ＲＩＰ１２０が生成するビットマップ画像データのページ幅と高さ、バンド幅と高さ、ブロック幅と高さを示す。このときＲＩＰ１２０は、ブロックの領域毎に順番にビットマップ画像データを生成するものとするが、バンド毎、或いは、ページの上部から１スキャンライン単位で生成することも可能とする。
【００３８】
画像圧縮部１２１は、ＲＩＰ１２０の図３、図４に示す処理によって、ブロックの領域毎に生成されたビットマップ画像データを圧縮し、圧縮した画像データをＲＡＭ１１２に順次格納し、最終的に１ページ分の圧縮画像データが格納される。このとき画像圧縮部１２１は、ＲＡＭ１１２の予め割り当てられた所定の領域に圧縮画像データを格納するが、各ブロックの圧縮画像データの格納先を管理する管理テーブル６２０をＲＡＭ１１２の所定領域に作成する。またこの管理テーブル６２０の先頭には、この管理テーブル６２０で管理されるブロック数が格納される。
【００３９】
画像伸張部１２２は、ＲＡＭ１１２に格納された圧縮画像データをブロック毎に順次伸張する。画像伸張部１２２は、伸張前に、ＲＡＭ１１２の所定領域にある伸張するブロックの管理テーブル６２０の場所（アドレス）をＲＩＰ１２０から設定され、ＲＩＰ１２０の開始指示により伸張を開始する。画像伸張部１２２は、１ブロック毎に圧縮画像データを伸張し、ＲＩＰ１２０が伸張したブロックの受信を完了すると、次のブロックの画像データを伸張し、この処理を管理テーブル６２０で管理されるブロック数だけ繰り返す。これによりＲＩＰ１２０は、中間データからビットマップ画像データを生成する際に、必要な単位（ブロック）の背景画像を、必要とするタイミングで受け取る。
【００４０】
図６の６１１〜６１４は、ビットマップ画像データ６１０の１バンド目のブロック１〜４の画像データの一例を示している。
【００４１】
実施形態に係る画像形成装置１００では、図１に示すようにＲＩＰ１２０と画像伸張部１２２が画像バス１２４で接続されている。いま画像伸張部１２２が画像データを伸張しているときにＲＩＰ１２０が動作を停止すると、画像バス１２４や画像伸張部１２２の内部に、伸張中或いは伸張後の画像データが残ったままになる。これにより、次にＲＩＰ１２０が動作する際に、画像バス１２４や画像伸張部１２２の内部に残っている誤ったデータを受信することになる。
【００４２】
次に、図３及び図４の処理中にＣＰＵ１１０がＲＩＰ１２０にビットマップ画像データの生成中止を指示した場合の処理について図３、図４と図７とを参照して説明する。尚、ＣＰＵ１１０は、ＲＩＰ１２０への割込みメッセージを用いて、ＲＩＰ１２０に対してビットマップ画像データの生成中止を指示する。
【００４３】
図７は、実施形態１に係る画像形成装置１００による画像処理時の停止処理を説明するフローチャートである。尚、このフローチャートで示す処理は、ＣＰＵ１１０がＲＡＭ１１２に展開したプログラムを実行することにより実現される。
【００４４】
先ずＳ７０１でＣＰＵ１１０は、ユーザからのジョブキャンセル指示を受信する。このジョブキャンセル指示は、操作部１１３を介してユーザがジョブキャンセルを指示し、操作部Ｉ／Ｆ１１４を介してＣＰＵ１１０が受信する。或いは、ユーザによってホストコンピュータ１０１からジョブキャンセルが指示され、ＬＡＮ１０２とネットワークＩ／Ｆ１１８を介してＣＰＵ１１０が受信する。そしてＳ７０２に進みＣＰＵ１１０は、そのキャンセルを指示受けたジョブの画像データの生成処理が開始されているか判定する。ここでＲＩＰ１２０が既に動作していて画像データの生成処理が開始されている場合はＳ７０３に進みＣＰＵ１１０は、ＲＩＰ１２０に停止を指示する。これによりＲＩＰ１２０は図３の処理を実行して、ＣＰＵ１１０からの割込みメッセージを受信する。そしてＲＩＰ１２０は、その割込みメッセージを受信すると割込みハンドラにおいてメッセージ内容に応じた処理を実行することになる。尚、このＳ７０３によるＲＩＰ１２０の画像生成の停止処理は、図４のフローチャートを参照して後述する。そしてＳ７０４に進みＣＰＵ１１０は、生成中、或いは生成済みのキャンセルを指示受けたジョブに関するＲＡＭ１１２の中間データを破棄して、この処理を終了する。
【００４５】
図４のＳ４０３及びＳ４０６でＲＩＰ１２０は、ＲＩＰ１２０の所定のレジスタ、或いは、ＲＡＭ１１２のキャンセルフラグがオンかどうか判定する。ここでキャンセルフラグがオンと判定するとＳ４０９に進む。Ｓ４０９でＲＩＰ１２０は、画像伸張部１２２に既に画像データの伸張指示を出しているかどうか判定する。既に伸張指示を出している場合はＳ４１０に進みＲＩＰ１２０は、指示した分の伸張データを全て受信する。このとき、その受信したデータは背景画像として合成することなく破棄してＳ４１１に進む。またＳ４０９でＲＩＰ１２０が画像伸張部１２２に画像データの伸張指示を出していないときもＳ４１１に進む。Ｓ４１１でＲＩＰ１２０は、ページ内の処理が完了していない領域の画素値を、予め決められた色値にして、後段の例えば画像圧縮部１２１等に出力する。
【００４６】
以上説明したように実施形態１によれば、強制停止できない画像処理モジュール（画像伸張部）で処理されたデータに基づいて描画を行う描画処理モジュール（ＲＩＰ）とが処理を実行中にキャンセル指示が入力されたときでも、安全に処理を停止できる。
【００４７】
［実施形態２］
次に本発明の実施形態２に係る画像形成装置１００について説明する。尚、実施形態２に係る画像形成装置１００のハードウェア構成、画像形成装置１００におけるソフトウェア構成について、前述の実施形態１と同じものは、その説明を省略する。
【００４８】
図８は、本発明の実施形態２に係る画像形成装置１００の構成を説明するブロック図である。図８において、前述の図１の構成と同じものは同じ参照番号で示し、それらの説明を省略する。
【００４９】
この画像形成装置１００では、画像バス１２４に、第一ＲＩＰ８０１と第二ＲＩＰ８０２が接続されている点が前述の実施形態１の構成と異なっている。
【００５０】
いずれのＲＩＰも、ＣＰＵ１１０からの指示に基づき、ＰＤＬデータコードや中間データを解析してイメージデータに展開する。第一ＲＩＰ８０１と第二ＲＩＰ８０２は、中間データで指定される幅と高さの１ページ分の担当領域を分担して処理する。実施形態２では、図６に示す各ブロックについて、ブロックの上部領域（幅１０２４×高さ５１２（画素））を第一ＲＩＰ８０１が担当し、ブロックの下部（幅１０２４×高さ５１２（画素））を第二ＲＩＰ８０２が担当する。
【００５１】
図９は、実施形態２に係る画像形成装置１００の第一ＲＩＰ８０１と第二ＲＩＰ８０２の分担領域を説明する図である。
【００５２】
領域９１１と領域９２１は、図６のブロック１に描画される画像領域であり、このブロック１の上部に位置する領域９１１を第一ＲＩＰ８０１が担当し、ブロック１の下部に位置する領域９２１を第二ＲＩＰ８０２が担当する。領域９１２〜９１４，９２２〜９２４も同様に分担し、第一ＲＩＰ８０１と第二ＲＩＰ８０２は、合わせて１ブロックになるように画像データを生成する。
【００５３】
実施形態２に係る画像形成装置１００における画像形成処理のフローチャートは、前述の図２のＳ２０４とＳ２０８の処理以外は図２と同じであるため、その説明を省略する。
【００５４】
図１０は、実施形態２に係る画像形成装置１００の第一ＲＩＰ８０１による前述の図２のＳ２０４とＳ２０８の画像生成処理を説明するフローチャートである。
【００５５】
また図１１は、実施形態２に係る画像形成装置１００の第二ＲＩＰ８０２による前述の図２のＳ２０４とＳ２０８の画像生成処理を説明するフローチャートである。尚、第一ＲＩＰ８０１及び第二ＲＩＰ８０２による割込みメッセージを受信したときの割込みハンドラによる処理は、前述の図３のフローチャートと同じであるため、そのフローチャート及び説明を省略する。
【００５６】
まず図１０を参照して、実施形態２に係る画像形成装置１００の第一ＲＩＰ８０１によるＳ２０４とＳ２０８の画像生成処理を説明する。尚、図１０において、前述の図４と共通する部分は同じ符号で示し、それらの説明を省略する。
【００５７】
Ｓ４０６でキャンセルフラグがオフのときはＳ１００１に進み第一ＲＩＰ８０１は、Ｓ４０１で読み込んだ中間データに基づき、第二ＲＩＰ８０２が担当せず、第一ＲＩＰ８０１が担当する描画領域を求める。次にＳ１００２に進み第一ＲＩＰ８０１は、ビットマップ画像データの生成で合成する背景画像があるか否か判定する。ここで背景画像があると判定するとＳ１００３に進み第一ＲＩＰ８０１は、画像伸張部１２２から伸張結果を受信してＳ１００４に進む。またＳ１００２で背景画像がないと判定するとＳ１００４に進む。
【００５８】
Ｓ１００４で第一ＲＩＰ８０１は、担当する描画領域についての中間データに含まれる描画命令に応じてビットマップ画像データを生成する。このとき第一ＲＩＰ８０１は、画像伸張部１２２に伸張を指示している場合は、画像バス１２４から描画領域に応じた１ブロック分の伸張結果を受信した中の、第一ＲＩＰ８０１が担当しない領域の画像データを破棄する。このとき画像伸張部１２２は、１ブロック内の第一ＲＩＰ８０１が担当する領域分のみの画像データを、画像バス１２４を介して第一ＲＩＰ８０１に渡すようにしても良い。そしてＳ１００５に進み第一ＲＩＰ８０１は、ビットマップ画像データの生成が完了した、第一ＲＩＰ８０１が担当する領域情報を更新する。具体的には、ビットマップ画像データの生成が完了したブロック数をカウントする。そしてＳ１００６に進み第一ＲＩＰ８０１は、全領域の描画を終了したかどうか判定し、中間データによって指定される幅と高さの全領域のビットマップ画像データの生成を完了するまでＳ１００１からＳ１００６の処理を繰り返す。
【００５９】
一方、Ｓ４０６でキャンセルフラグがオンのときはＳ１００７に進み第一ＲＩＰ８０１は、Ｓ１００１と同様に、Ｓ４０１で読み込んだ中間データに基づき、第二ＲＩＰ８０２が担当せず、第一ＲＩＰ８０１が担当する描画領域を求める。次にＳ４０９〜Ｓ４１０で、第一ＲＩＰ８０１は伸張済みのデータを受信して破棄する。そしてＳ４１１で第一ＲＩＰ８０１は、ページ内の処理が完了していない未処理の領域の画素値を、予め決められた色値にして出力する。そしてＳ１００８に進み第一ＲＩＰ８０１は、描画処理が完了した、第一ＲＩＰ８０１が担当する領域情報を更新する。そしてＳ１００９で全領域の描画処理が完了していない判定するとＳ１００７に戻り、中間データによって指定される幅と高さの全領域のビットマップ画像データの生成と破棄を完了するまでＳ１００７からＳ１００６の処理を繰り返す。
【００６０】
図１１は、実施形態２に係る第二ＲＩＰ８０２の処理を説明するフローチャートである。尚、ここでは、画像圧縮部１２１に対し生成するビットマップ画像データを圧縮する指示は第一ＲＩＰ８０１が行っているため第二ＲＩＰ８０２は指示を行わない。同様に、第二ＲＩＰ８０２は画像伸張部１２２に対する伸張指示も行わない。
【００６１】
Ｓ１１０１で第二ＲＩＰ８０２は中間データを読込んでＳ１１０２に進み、第二ＲＩＰ８０２はキャンセルフラグがオンかどうか判定する。ここでオンでないと判定するとＳ１１０３に進み、オンのときはＳ１１１０に進む。Ｓ１１０３で第二ＲＩＰ８０２は、Ｓ１１００１で読み込んだ中間データに基づき、第一ＲＩＰ８０１が担当せず、第二ＲＩＰ８０２が担当する描画領域を求める。次にＳ１１０４に進み第二ＲＩＰ８０２は、Ｓ１１０３で算出した担当する領域の内、これから描画するブロックが、第一ＲＩＰ８０１によって描画済みかどうか判定する。これにより画像伸張部１２２は、第一ＲＩＰ８０１からの指示に応じて渡す伸張結果を、第一ＲＩＰ８０１と第二ＲＩＰ８０２の進捗に合わせることなく、同時に双方に出力できる。また第一ＲＩＰ８０１の画像伸張部１２２への出力に応じて、第二ＲＩＰ８０２は残りの領域を画像伸張部１２２へ出力できる。
【００６２】
そして第一ＲＩＰ８０１によって描画済みと判定するとＳ１１０５に進み第二ＲＩＰ８０２は、ビットマップ画像データの生成で合成する背景画像があるか否か判定する。ここで背景画像があると判定するとＳ１１０６に進み第二ＲＩＰ８０２は、画像伸張部１２２から伸張結果を受信してＳ１１０７に進む。実施形態２では、第二ＲＩＰ８０２は画像バス１２４を介して描画領域に応じた１ブロック分の伸張結果を受信し、そのうち、第二ＲＩＰ８０２が担当しない領域の画像データを破棄する。またＳ１１０５で背景画像がないと判定するとＳ１１０７に進む。Ｓ１１０７で第二ＲＩＰ８０２は、第二ＲＩＰ８０２が担当する描画領域の中間データに含まれる描画命令に応じてビットマップ画像データを生成する。そしてＳ１１０８に進み第二ＲＩＰ８０２は、生成が完了した画像データの内、第二ＲＩＰ８０２が担当する領域情報を更新する。具体的には、生成が完了した画像データのブロック数をカウントする。こうして第二ＲＩＰ８０２は、中間データによって指定される幅と高さの全領域をビットマップ画像の生成を完了するまでＳ１１０２〜Ｓ１１０９の処理をくり返す。
【００６３】
次に図１０〜図１１の処理中にＣＰＵ１１０が第一ＲＩＰ８０１と第二ＲＩＰ８０２にビットマップ画像生成の中止を指示した場合の処理について説明する。
【００６４】
このときのＣＰＵ１１０の処理は、第一ＲＩＰ８０１と第二ＲＩＰ８０２に割込みメッセージを用いてビットマップ画像データの生成の中止を指示する以外、図７のフローチャートと差異が無いため、その説明を省略する。
【００６５】
第一ＲＩＰ８０１と第二ＲＩＰ８０２は、割込みメッセージを受け取ると、それぞれ図１０及び図１１の処理を実行し、完了すると元の処理に戻る。
【００６６】
図１１を参照して第二ＲＩＰ８０２の処理を説明する。
【００６７】
Ｓ１１０２で第二ＲＩＰ８０２は、第二ＲＩＰ８０２内の所定のレジスタ、或いは、メモリのキャンセルフラグがオンかどうか判定する。キャンセルフラグがオンの場合はＳ１１１０に進み担当領域を求める。次にＳ１１１１に進み第二ＲＩＰ８０２は、Ｓ１１１０で算出した担当する領域の内、これから描画するブロックが、第一ＲＩＰ８０１によって描画済みであるか判定する。ここで描画済みと判定するとＳ１１１２に進み第二ＲＩＰ８０２は、第一ＲＩＰ８０１が画像伸張部１２２に既に伸張指示を出しているかどうか判定する。既に伸張指示を出している場合はＳ１１１３に進み、伸張結果を受信してＳ１１１４に進む。このとき、その受信した伸張データは、背景画像として合成することなく破棄する。またＳ１１１２で、伸張指示を出していないときはＳ１１１４に処理を進める。Ｓ１１１４で第二ＲＩＰ８０２は、領域のピクセル分を予め決められた色値で出力する。そしてＳ１１１５に進み第二ＲＩＰ８０２は、上述の処理が完了した、第二ＲＩＰ８０２が担当する領域情報を更新する。具体的には、描画処理が完了したブロック数をカウントする。こうして第二ＲＩＰ８０２は、中間データによって指定される幅と高さの全領域をビットマップ画像データの描画処理を完了するまでＳ１１１０〜Ｓ１１１６の処理をくり返す。
【００６８】
以上説明したように実施形態２によれば、描画処理モジュールを複数有し、それぞれが並行して動作し、かつ、強制停止できない画像処理モジュールからの画像データを処理している場合でも、ジョブキャンセル要求に応じて安全に停止させることができる。
【００６９】
［実施形態３］
本発明に係る第３実施形態の画像形成装置について説明する。実施形態３の装置構成は実施形態１の構成と同じである。また画像形成装置１００におけるソフトウェア構成について実施形態１と同じ箇所については説明を省略する。
【００７０】
図１２は、実施形態３に係る画像形成装置１００のＲＩＰ１２０の処理を説明するフローチャートである。
【００７１】
Ｓ４０１でＲＩＰ１２０は、図２のＳ２０２で生成された中間データを読み込む。次にＳ１２０１に進みＲＩＰ１２０は、中間データ内の描画命令数を取得する。またＳ１２０１以降の処理は、前述の図４の処理と同じであるため、図４と同じ参照番号を用いて、その説明を省略する。
【００７２】
図１２の処理中にＣＰＵ１１０がＲＩＰ１２０にビットマップ画像生成の中止を指示した場合の処理についても、実施形態１と同様にＲＩＰ１２０はＣＰＵ１１０からの割込みメッセージを受けて停止処理を実行する。このとき、ＲＩＰ１２０は割込みメッセージを受けて図１３の処理を実行する。
【００７３】
図１３は、実施形態３に係る画像形成装置１００のＲＩＰ１２０の割込み処理を説明するフローチャートである。
【００７４】
Ｓ１３０１でＲＩＰ１２０は、ＣＰＵ１１０からの割込みメッセージを読み込む。次にＳ１３０２に進みＲＩＰ１２０は、ＣＰＵ１１０からの割込みメッセージがキャンセル指示かどうか判定し、キャンセル指示のときはＳ１３０３に進んで、キャンセル処理を実行する。また、キャンセル指示ではなかった場合、何も処理せず割込みハンドラから元の処理に戻ることになる。Ｓ１３０３でＲＩＰ１２０は、図１２のＳ１２０１で取得した中間データ内の描画命令数が所定の閾値以上かどうか判定する。ここで閾値以上であると判定するとＳ１３０４に進みＲＩＰ１２０は、ＲＩＰ１２０内の所定のレジスタ、或いは、メモリのキャンセルフラグをオンにする。ここで判定に用いる閾値は、具体的には中間データ内の描画オブジェクト数である。
【００７５】
図１４は、実施形態３に係る描画オブジェクトの一例を示す図である。
【００７６】
例えば、図１４に示すように中間データで指定されるページ幅と高さの描画領域１４００と１４０２に、矩形描画オブジェクト１４０１や画像１４０３のみが存在する場合、キャンセルフラグをオンにしない。即ち、描画オブジェクトの数が閾値よりも少ない場合は、キャンセルフラグをオンにしない。この閾値は、ＲＩＰ１２０の性能に応じて所定の値に設定でき、例えば、ＲＩＰ１２０のビットマップ画像データの生成速度が画像圧縮部１２１の性能を上回るような所定の値に設定する。
【００７７】
以上説明したように実施形態３によれば、強制停止できない画像処理モジュールで処理されたデータに基づいて描画を行う描画処理モジュールとが処理を実行中にキャンセル指示が入力されたときでも、安全に処理を停止できる。
【００７８】
更に、中間データの描画命令数が閾値以下のときにジョブキャンセル要求に応じてキャンセル処理を行うため、速やかに安全にジョブを停止できる。
【００７９】
また中間データの描画命令数が閾値以下のときは、ジョブキャンセルが指示された中間データの展開処理が完了しているため、その中間データに対し再度ビットマップ画像データへの展開が要求されても、再度、ビットマップ画像データを生成し直す必要がない。
【００８０】
また上記実施形態では、ＲＩＰは、キャンセル要求に応じて描画処理を停止する前に、画像伸張部１２２からデータを受取って破棄するようにしたが、本発明はこれに限定されない。例えば、ＲＩＰ１２０から画像伸張部１２２をリセットするための専用の信号線を設け、例えば図４のＳ４１０で伸張結果を受信して破棄する代わりに、その信号線により画像伸張部１２２をリセットさせても良い。これによりＲＩＰ１２０が、直ぐに処理を停止しても、画像伸張部１２２に未処理のデータが残ったままになることがなくなる。
【００８１】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。上記実施形態ではユーザからのジョブキャンセル指示を受信したＣＰＵがＲＩＰに停止を指示するが、ＲＩＰへのキャンセル要求の要因は、制限されない。例えば、コピージョブなど優先度の高いジョブの割り込みによるキャンセルでも当然実現可能である。
【００８２】
本発明は上記実施形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。
【符号の説明】
【００８３】
１００…画像形成装置、１０１…ホストコンピュータ、１１０…ＣＰＵ、１１２…ＲＡＭ、１２０…ＲＩＰ、１２１…画像圧縮部、１２２…画像伸張部、８１０…第一ＲＩＰ、８０２…第二ＲＩＰ
【図１】
2018183897.tif 000003
【図２】
2018183897.tif 000004
【図３】
2018183897.tif 000005
【図４】
2018183897.tif 000006
【図５】
2018183897.tif 000007
【図６】
2018183897.tif 000008
【図７】
2018183897.tif 000009
【図８】
2018183897.tif 000010
【図９】
2018183897.tif 000011
【図１０】
2018183897.tif 000012
【図１１】
2018183897.tif 000013
【図１２】
2018183897.tif 000014
【図１３】
2018183897.tif 000015
【図１４】
2018183897.tif 000016