JP2020026107A - 画像処理装置、画像処理装置の制御方法、及びプログラム - Google Patents
画像処理装置、画像処理装置の制御方法、及びプログラム Download PDFInfo
- Publication number
- JP2020026107A JP2020026107A JP2018152820A JP2018152820A JP2020026107A JP 2020026107 A JP2020026107 A JP 2020026107A JP 2018152820 A JP2018152820 A JP 2018152820A JP 2018152820 A JP2018152820 A JP 2018152820A JP 2020026107 A JP2020026107 A JP 2020026107A
- Authority
- JP
- Japan
- Prior art keywords
- processors
- processor
- sub
- data
- image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Accessory Devices And Overall Control Thereof (AREA)
- Record Information Processing For Printing (AREA)
- Facsimiles In General (AREA)
Abstract
【課題】ジョブキャンセル時のユーザビリティを向上させることができる。【解決手段】印刷ジョブに含まれる画像データに対して複数のプロセッサを用いて描画処理を行い、前記描画処理により得られた画素データを後段のハードウェアに出力する描画処理手段と、前記描画処理手段を制御する制御手段と、を備え、前記制御手段は、前記印刷ジョブに対するキャンセル要求を受け付けると、前記描画処理手段に対して前記描画処理を中断させるための指示を行い、前記描画処理手段は、前記指示に応じて前記複数のプロセッサを停止させる際に、前記複数のプロセッサのうち前記ハードウェアに接続されたプロセッサに、所定の画素値の画素データを未処理の画素数分出力させる。【選択図】図9
Description
本発明は、印刷ジョブのキャンセル処理に関し、特に、プリンタで実行中の印刷ジョブに対してキャンセル要求を受け付けた場合に、その印刷ジョブのレンダリング処理を中止する技術に関する。
ユーザ操作によって印刷ジョブに対するキャンセル要求が発生した場合、プリンタ内部の各モジュールは、現在行っている処理を強制停止する。しかし、モジュールによっては、一通りの処理を終えてからでないと停止することができないものがある。そのようなモジュールが処理の途中で強制停止された場合、該モジュールは、停止後の新たな印刷ジョブおいて適切に処理を行うことができなくなる。例えば、強制停止により処理されずに残った未処理のデータにより、新たに実行される印刷処理において定着器による裏写りが発生する可能性がある。
そこで、ジョブキャンセル要求を受け付けた場合に、画素データを生成する描画部が、未描画の画素データについて所定の色値(例えば白色)のデータを後段の画像処理部に送信する方法が提案されている(特許文献1参照)。
しかし、特許文献1に記載の方法では、1スキャンライン分送信し終えるごとに、ジョブキャンセル要求が発生しているかどうか判定しているので、ジョブキャンセル要求が検知されるまでにタイムラグが生じる場合がある。それにより、キャンセル終了待ち時間を発生させ、ユーザビリティを低下させる可能性がある。また、1スキャンライン上に存在する描画オブジェクトの数が多くなると、それに伴い1スキャンライン分の画素データを送信し終える時間が増加する。そのため、ユーザビリティをさらに低下させる可能性がある。
そこで、本発明は、ジョブキャンセル時のユーザビリティを向上させることができる画像処理装置を提供することを目的とする。
本発明による画像処理装置は、印刷ジョブに含まれる画像データに対して複数のプロセッサを用いて描画処理を行い、前記描画処理により得られた画素データを後段のハードウェアに出力する描画処理手段と、前記描画処理手段を制御する制御手段と、を備え、前記制御手段は、前記印刷ジョブに対するキャンセル要求を受け付けると、前記描画処理手段に対して前記描画処理を中断させるための指示を行い、前記描画処理手段は、前記指示に応じて前記複数のプロセッサを停止させる際に、前記複数のプロセッサのうち前記ハードウェアに接続されたプロセッサに、所定の画素値の画素データを未処理の画素数分出力させることを特徴とする。
本発明によれば、ジョブキャンセル時のユーザビリティを向上させることができる。
以下、本発明を実施するための形態について図面を用いて説明する。なお、以下の実施の形態に記載されている構成要素は、本発明の例としての形態を示すものであり、本発明の範囲をそれらのみに限定するものではない。また、各図において、同一の構成要素については同一の参照番号を付し、重複する説明は省略する。
<第1実施形態>
以下、第1実施形態について図面を用いて説明する。図1は、第1実施形態にかかる画像形成装置110を含む印刷システムの構成の一例を示すブロック図である。図1に示すように、第1実施形態にかかる画像形成装置110は、ホストコンピュータであるPC101とLAN102を介して接続されている。ユーザは、印刷するページ情報を示すPDLデータをPC101において生成し、PC101からLAN102を介して画像形成装置110に送信する。本実施形態における画像形成装置110は、MFP(Multi Function Printer)であっても、SFP(Single Function Printer)であってもよい。また、画像形成装置110は、MFPやSFP以外のプリンタであってもよい。
以下、第1実施形態について図面を用いて説明する。図1は、第1実施形態にかかる画像形成装置110を含む印刷システムの構成の一例を示すブロック図である。図1に示すように、第1実施形態にかかる画像形成装置110は、ホストコンピュータであるPC101とLAN102を介して接続されている。ユーザは、印刷するページ情報を示すPDLデータをPC101において生成し、PC101からLAN102を介して画像形成装置110に送信する。本実施形態における画像形成装置110は、MFP(Multi Function Printer)であっても、SFP(Single Function Printer)であってもよい。また、画像形成装置110は、MFPやSFP以外のプリンタであってもよい。
[画像形成装置におけるハードウェア構成]
図1を用いて、第1実施形態の画像形成装置110におけるハードウェア構成を説明する。図1に示すように、画像形成装置110は、CPU220、ROM221、RAM222、記憶装置223、操作部I/F225、ネットワークI/F226、及びこれらの構成要素を接続するシステムバス227を備える。ネットワークI/F226には、LAN102を介してPC101が接続されている。操作部I/F225には、操作部113が接続されている。また、画像形成装置110は、RIP(ラスタイメージプロセッサ)231、画像編集部232、画像圧縮部233、画像伸長部234、デバイスI/F235、及びこれらの構成要素間で画像データを高速に転送する画像バス230を備える。デバイスI/F235にはプリンタ部111が接続されていて、画像形成装置110は、PC101からLAN102を介して取得したPDLデータ(ページ記述言語で記述された印刷データ)に従って、プリンタ部111に印刷を実行させる。さらに、画像形成装置110は、イメージバスI/F228を備える。イメージバスI/F228は、システムバス227と画像バス230とを接続するためのインタフェースであり、データ構造を変換するバスブリッジである。なお、操作部113及びプリンタ部111は、画像形成装置110の外部に設置されていてもよい。以下において、操作部113及びプリンタ部111を含まない画像形成装置110を、画像処理装置と呼ぶ場合がある。また、デバイスI/F235には、プリンタ部116以外の画像出力デバイスが接続されていてもよい。
図1を用いて、第1実施形態の画像形成装置110におけるハードウェア構成を説明する。図1に示すように、画像形成装置110は、CPU220、ROM221、RAM222、記憶装置223、操作部I/F225、ネットワークI/F226、及びこれらの構成要素を接続するシステムバス227を備える。ネットワークI/F226には、LAN102を介してPC101が接続されている。操作部I/F225には、操作部113が接続されている。また、画像形成装置110は、RIP(ラスタイメージプロセッサ)231、画像編集部232、画像圧縮部233、画像伸長部234、デバイスI/F235、及びこれらの構成要素間で画像データを高速に転送する画像バス230を備える。デバイスI/F235にはプリンタ部111が接続されていて、画像形成装置110は、PC101からLAN102を介して取得したPDLデータ(ページ記述言語で記述された印刷データ)に従って、プリンタ部111に印刷を実行させる。さらに、画像形成装置110は、イメージバスI/F228を備える。イメージバスI/F228は、システムバス227と画像バス230とを接続するためのインタフェースであり、データ構造を変換するバスブリッジである。なお、操作部113及びプリンタ部111は、画像形成装置110の外部に設置されていてもよい。以下において、操作部113及びプリンタ部111を含まない画像形成装置110を、画像処理装置と呼ぶ場合がある。また、デバイスI/F235には、プリンタ部116以外の画像出力デバイスが接続されていてもよい。
CPU220は、画像形成装置110全体を制御するための中央処理部である。RAM222は、CPU220が動作するためのシステムワークメモリである。また、RAM222は、PC101から受信されたPDLデータや、画像形成処理のために生成される中間データ、画像形成処理に使用される画像データなどを一時的に格納するためのメモリでもある。また、RAM222は、レンダリング処理を行う際の作業領域としても利用される。ROM221は、例えばブートROMであり、システムのブートプログラムが格納されている。記憶装置223は、例えばハードディスクドライブであり、各種処理のためのシステムソフトウェアおよびPDLデータを格納する。プリンタ部111は、デバイスI/F235と接続され、CPU220で生成された画像データをシート(紙)に出力する処理を行う。
操作部113は、各種メニューや印刷データ情報等を表示するための表示部を有し、操作部I/F225は、操作部113に対して操作画面を表示するためのデータを出力する。また、操作部I/F225は、ユーザが操作部113を介して入力した情報を、CPU220に伝える。ネットワークI/F226は、LAN102を介して外部装置(例えばPC101)との間で情報のやり取りを行うためのインタフェースである。
RIP231は、CPU220からの指示に基づき、PDLデータや中間データ(ディスプレイリスト(DL))を解析し、ラスタ形式の画像データに展開する。画像編集部232は、RIP231によって展開された画像データに対し、色空間変換や輪郭補正といった画像編集を行う。画像圧縮部233は、RIP231のイメージ展開で得られる画像データを圧縮し、圧縮して得られた画像データを画像バスI/F228を通してRAM222に格納する。画像伸長部234は、RAM222に格納された画像データを伸長し、伸長された画像データを画像バス230を通してRIP231やデバイスI/F235に転送する。画像圧縮部233と画像伸長部234は、ユーザによってボックス保存が指定されている場合には、RIP231によって展開されたラスタ形式の画像データを保存する。保存された画像データは、ユーザの指示に応じて印刷が行われる際に使用される。また、画像圧縮部233と画像伸長部234は、RIP231による展開処理がプリンタ部111の印刷処理よりも処理時間が短い場合に、展開後のラスタ形式の画像データを一時的に保存するために使用される場合もある。デバイスI/F235は、プリンタ部111にデータを送信するためのインタフェースである。
[用語の定義]
ここで、本明細書で使用する、「ディスプレイリスト」「エッジ」「スキャンライン」「スパン」「レベル」「フィル」の各用語について説明する。
ここで、本明細書で使用する、「ディスプレイリスト」「エッジ」「スキャンライン」「スパン」「レベル」「フィル」の各用語について説明する。
ディスプレイリストとは、各種PDLデータを変換して得られる、RIP231が処理できる共通フォーマットの中間データである。ディスプレイリストには、インストラクションと呼ばれる所定の座標にオブジェクトを描画するための描画命令と各オブジェクトに関係するエッジ情報や、レベル情報や、レベル情報に関係するフィル情報などが記載されている。
エッジとは、ページ内に描画するオブジェクトとオブジェクトとの境目、またはオブジェクトと背景との境目を指す。オブジェクトは左右(スキャンラインにおける上流下流)のエッジにより形状が形成される。
ここで、スキャンラインに沿ってスキャン処理が実行される。1スキャンラインの2次元平面における高さは1ピクセルとなっている。また、複数のスキャンラインを束ねたものをバンドと呼ぶ。
スパンとは、単一のスキャンラインにおいて、エッジ間の区間を指す。この区間のことを閉領域とも呼ぶ。
レベルとは、ページ内に描画するオブジェクト同士の上下関係を示す情報(番号)であり、必ずオブジェクト毎にレベル(番号)が割り振られている。レベルは、Zオーダーとも呼ばれ、ページの背面から前面に向かう方向(ページの描画範囲をXY平面で表現した際のXY平面に直交する方向:Z軸方向)に沿ったオブジェクトの並び順を表す。なお、上記のとおりオブジェクトは左右のエッジにより形状が形成されるので、ページ内に描画するエッジ同士の上下関係もレベルによって示されることとなる。
フィルとは、スパンに対する塗り情報であり、ビットマップ画像やシェーディングのように1ピクセル毎に異なる色値を有するフィルや、ベタ塗りのようにスパン中で色値の変化がないフィルが存在する。
[ディスプレイリストのレンダリング処理]
図2は、ディスプレイリストのレンダリング処理を説明するためのブロック図である。図2に示すレンダリング処理は、スキャンラインレンダリング処理と呼ばれる。図2に示す処理は、画像形成装置110のCPU220が、記憶装置223等に格納されているスキャンラインレンダリング処理用のプログラムをRAM222にロードし、該プログラムをRIP231が実行することにより行われる。
図2は、ディスプレイリストのレンダリング処理を説明するためのブロック図である。図2に示すレンダリング処理は、スキャンラインレンダリング処理と呼ばれる。図2に示す処理は、画像形成装置110のCPU220が、記憶装置223等に格納されているスキャンラインレンダリング処理用のプログラムをRAM222にロードし、該プログラムをRIP231が実行することにより行われる。
スキャンラインレンダリング処理は、エッジ処理、レベル処理、フィル処理、及びコンポジット処理の4つの処理に大別される。なお、RIP231は、この4つの処理を担当する複数のサブプロセッサを内部に有し、各サブプロセッサが処理を分担するパイプライン処理の構成をとる。パイプライン状に接続された4つのサブプロセッサのうち、第1サブプロセッサがエッジ処理を担当し、第2サブプロセッサがレベル処理を担当し、第3サブプロセッサがフィル処理を担当し、第4サブプロセッサがコンポジット処理を担当する。
図3(a)は、1枚のページ画像データを示す。オブジェクト301は、オブジェクト301〜303のうちで最背面のオブジェクトである。したがって、オブジェクト301には、最背面にあることを示すレベル番号が割り当てられている。オブジェクト301の上(図における前面)にオブジェクト302が重なり、さらにオブジェクト302の上にオブジェクト303が重なっている。これら3つのオブジェクトはすでにディスプレイリスト化されている。このようなページ画像データに対してスキャンライン毎にスキャンラインレンダリング処理が行われる。
次に、図3(a)に示すオブジェクト301〜303を描画するためのDLについて、図3(b)と図3(c)を用いて説明する。図3(b)には、各オブジェクト301〜303を構成するエッジの概念図が示されている。オブジェクト301は、左右のエッジ311とエッジ312とから構成される。同様に、オブジェクト302は、左右のエッジ313とエッジ314とから構成され、オブジェクト303は、左右のエッジ315とエッジ316とから構成される。図3(c)には、DLの構成の一例が示されている。図3(c)に示すDLは、オブジェクト301を描画するためのエッジ情報#1(単にエッジ#1と記す)を含む。エッジ#1は、図3(b)に示すエッジ311とエッジ312とに相当するセグメント#1〜#4のパス点列情報を含む。また、エッジ#1には、レベル情報#1(単にレベル#1と記す)が紐づいていて、レベル#1には、フィル情報#1(単にフィル#1と記す)が紐づいている。これは、オブジェクト301を描画するために左右のエッジ(エッジ#311,#312)間をレベル#1に紐づくフィル#1の色値で描画することを示す。同様に、オブジェクト302は、エッジ#2とそれに紐づくレベル#2及びフィル#2とによって描画され、オブジェクト303は、エッジ#3によって描画される。このとき、オブジェクト302とオブジェクト303とが同じ色値で描画されるオブジェクトであった場合、両オブジェクトが異なるレベルであっても、図3(c)に示すように同じフィル情報(ここでは、フィル#2)が参照される。
ここで、図3に示すディスプレイリストを用いて、図2に示す各処理を説明する。
[エッジ処理]
エッジ処理は、5つの処理に大別される。5つの処理とは、エッジロード処理、エッジ削除処理、X座標算出処理、エッジソート処理、及びエッジトラッキング処理である。エッジロード処理とは、DLメモリに格納されているDLから、オブジェクトのアウトラインを示すエッジデータをメインメモリ上にロードする処理をいう。なお、エッジロード処理は、エッジデータをリンクリストとして管理すべく、エッジデータをエッジリストにロードする処理とも言える。図3に示す例では、エッジ#1〜#3が順にロードされる。
エッジ処理は、5つの処理に大別される。5つの処理とは、エッジロード処理、エッジ削除処理、X座標算出処理、エッジソート処理、及びエッジトラッキング処理である。エッジロード処理とは、DLメモリに格納されているDLから、オブジェクトのアウトラインを示すエッジデータをメインメモリ上にロードする処理をいう。なお、エッジロード処理は、エッジデータをリンクリストとして管理すべく、エッジデータをエッジリストにロードする処理とも言える。図3に示す例では、エッジ#1〜#3が順にロードされる。
X座標算出処理とは、ロードされたエッジデータをもとに、スキャンライン毎に、エッジの傾きや塗りルールに基づいてエッジの位置を示すX座標を算出する処理である。このとき処理中のスキャンラインに現れるエッジを、リンクリスト(エッジリスト)によって、スキャンライン毎にエッジリストの先頭からエッジのX座標昇順でソートする。
なお、スキャンラインが変わってエッジのX座標の前後が逆転した場合、新たにエッジが出現した場合、またはエッジが消滅した場合などに、エッジリストのリンク構造を更新する必要が生じる。このようにエッジリストを更新する処理をエッジソート処理と呼ぶ。
エッジソート処理が施されたエッジリストは、X座標昇順でレベル処理部に渡される。この処理をエッジトラッキング処理と呼ぶ。最後に、描画が終了したエッジは、メモリから削除される。この処理をエッジ削除処理と呼んでいる。
[レベル処理]
レベル処理は、3つの処理に大別される。3つの処理とは、レベル追加処理、レベル削除処理、及びレベルソート処理である。
レベル処理は、3つの処理に大別される。3つの処理とは、レベル追加処理、レベル削除処理、及びレベルソート処理である。
レベル追加処理において、エッジ処理から送られてきたエッジデータに含まれるエッジの向きやクリップ情報に基づいてエッジが描画対象のエッジであるか否かが判定される。エッジが描画対象であると判定された場合、リンクリスト(レベルリスト)に、該当するレベルデータが追加される。レベル削除処理は、レベル追加処理と逆の処理である。レベル削除処理において、エッジの向きやクリップ情報に基づいてそれまで描画対象だったエッジが描画対象でなくなったと判定された場合、レベルリストから該当するレベルデータが削除される。レベルリストはレベル番号昇順に常にソートされていて、レベル追加処理やレベル削除処理があった場合、レベルソート処理と呼ばれるレベルリストのソート処理が行われる。レベル追加処理、レベル削除処理、及びレベルソート処理が施されたレベルデータは、スパン単位でフィル処理に渡される。
[フィル処理]
フィル処理は、3つの処理に大別される。3つの処理とは、画像拡縮処理、画像回転処理、及びピクセル生成処理である。画像拡縮処理は、ディスプレイリストに含まれているビットマップ画像に拡大率が指定されていた場合に、指定された拡大率に従って各ピクセルの色値を生成する処理である。画像回転処理は、ディスプレイリストに含まれているビットマップ画像に回転情報が指定されていた場合に、指定された回転情報に従って各ピクセルの色値を生成する処理である。ピクセル生成処理は、ディスプレイリストにおいて、ある色値をある色値に変化させる変化情報が指定されていた場合に、指定された変化情報に従って各ピクセルの色値を生成する処理である。
フィル処理は、3つの処理に大別される。3つの処理とは、画像拡縮処理、画像回転処理、及びピクセル生成処理である。画像拡縮処理は、ディスプレイリストに含まれているビットマップ画像に拡大率が指定されていた場合に、指定された拡大率に従って各ピクセルの色値を生成する処理である。画像回転処理は、ディスプレイリストに含まれているビットマップ画像に回転情報が指定されていた場合に、指定された回転情報に従って各ピクセルの色値を生成する処理である。ピクセル生成処理は、ディスプレイリストにおいて、ある色値をある色値に変化させる変化情報が指定されていた場合に、指定された変化情報に従って各ピクセルの色値を生成する処理である。
[コンポジット処理]
コンポジット処理とは、レベル処理で確定したレベルの上下関係及びフィル処理で生成したピクセル値に基づいて実行される、ディスプレイリストに指定されている重ね合わせ処理である。
コンポジット処理とは、レベル処理で確定したレベルの上下関係及びフィル処理で生成したピクセル値に基づいて実行される、ディスプレイリストに指定されている重ね合わせ処理である。
[パイプライン処理]
上記各処理は、スパン単位でパイプライン処理される。ここで、図4と図5を用いてパイプライン処理を説明する。図4は、RIP231のハードウェア構成の一例を示すブロック図である。RIP231は、サブプロセッサ405,407,409,411と、バッファ404,406,408,410,412と、リードDMAC403と、ライトDMAC413とを有する。サブプロセッサ405,407,409,411は、RIP内部バス402に接続される。RIP内部バス402は、バスI/F401に接続される。バスI/F401は、RIP内部バス402と画像バス230とを接続するためのインタフェースであり、データ構造を変換するバスブリッジである。
上記各処理は、スパン単位でパイプライン処理される。ここで、図4と図5を用いてパイプライン処理を説明する。図4は、RIP231のハードウェア構成の一例を示すブロック図である。RIP231は、サブプロセッサ405,407,409,411と、バッファ404,406,408,410,412と、リードDMAC403と、ライトDMAC413とを有する。サブプロセッサ405,407,409,411は、RIP内部バス402に接続される。RIP内部バス402は、バスI/F401に接続される。バスI/F401は、RIP内部バス402と画像バス230とを接続するためのインタフェースであり、データ構造を変換するバスブリッジである。
各サブプロセッサは、RIP内部バス402を介して、RAM222にアクセスすることができる。CPU220は、システムバス227を介して、各サブプロセッサの内部レジスタにアクセスすることができる。CPU220は、各サブプロセッサの内部レジスタにアクセスすることで、各サブプロセッサに対して、予めRAM222に展開したプログラムのロードや、リセット、リセット解除、プログラムの実行開始指示、割込みメッセージの送信などを行うことができる。
また、各サブプロセッサは、データ入出力ポートを有し、データ入出力ポートを介して図4に示すように2つのバッファに接続される。各サブプロセッサは、2つのバッファのうち一方のバッファに対して、データ読み込み要求信号を出力してデータの読み込みを行い、他方のバッファに対してデータ書き出し要求信号を出力してデータの書き出しを行う。このように、各サブプロセッサは、各サブプロセッサ間に設けられたバッファを経由してデータ転送を行う。図中の片矢印はデータが転送される方向を示す。
リードDMAC403は、RIP内部バス402を介してRAM222からデータを読み出し、バッファ404に対してデータ書き込み要求信号を出力してデータの書き込みを行うDMAコントローラである。ライトDMAC413は、バッファ412に対してデータ読み出し要求信号を出力してデータの読み出しを行い、RIP内部バス402を介してRAM222に対してデータの書き込みを行うDMAコントローラである。
バッファ404,406,408,410,412は、各サブプロセッサと各DMACの間でデータ転送を行う際に使用されるデータバッファである。各バッファはSRAMを有し、該SRAMにデータを既定数保持することができる。各バッファは、サブプロセッサまたはDMACと接続され、サブプロセッサまたはDMACからデータ書き込み要求信号と共にデータ(書き込みデータと呼ぶ)を受信すると、該データを内部のSRAMに格納する。このとき、内部のSRAMに既定数のデータがすでに書き込まれている場合には、各バッファは、要求元のサブプロセッサまたはDMACに対して、データ書き込み要求に応じず書き込みデータを受信しないことを通知するためのFULL信号を出力する。FULL信号を入力したサブプロセッサまたはDMACは、FULL信号が入力されている間、データの書き込みを完了せずに停止させて、待機する。
また、各バッファは、サブプロセッサまたはDMACからデータ読み出し要求信号を受信すると、要求元のサブプロセッサまたはDMACに対してデータ(読み出しデータと呼ぶ)を送信する。このとき、内部のSRAMにデータが一つも格納されていない場合には、各バッファは、要求元のサブプロセッサまたはDMACに対して、データ読み出し要求には応じず読み出しデータを送信しないことを通知するためのEMPTY信号を出力する。EMPTY信号を入力したサブプロセッサまたはDMACは、EMPTY信号がなくなるまでデータの読み出しを完了せずに停止させて、待機する。
本実施形態におけるパイプライン処理では、サブプロセッサ405がエッジ処理を担当し、サブプロセッサ407がレベル処理を担当し、サブプロセッサ409がフィル処理を担当し、サブプロセッサ411がコンポジット処理を担当する。図5は、第1実施形態のパイプライン処理を説明するための図である。図5(a)には、RIP231の各サブプロセッサが図3に示すディスプレイリストをパイプライン処理する様子が模式的に示されている。図5(a)に示すようにスキャンラインA上にはオブジェクトが存在しないため、スキャンラインAについてはスパンA−1を処理単位として処理が実行される。一方、スキャンラインB上にはオブジェクト(図3(a)に示すオブジェクト302)が存在し、そのオブジェクトの輪郭である2つのエッジ(図3(b)に示すエッジ313,314)が検出される。よって、スキャンラインBについてはスパンB−1,B−2,B−3を処理単位として処理が実行される。そして、各スキャンラインのスパンは、図5(b)に示されるように、エッジ処理、レベル処理、フィル処理、コンポジット処理の順でパイプライン処理される。具体的には、まず、スキャンラインAのスパンA−1が、サブプロセッサ405によってエッジ処理され、エッジ処理後のスパンA−1がサブプロセッサ407に渡される。そして、エッジ処理後のスパンA−1がサブプロセッサ407によってレベル処理され、その間にスキャンラインBのスパンB−1がサブプロセッサ405によってエッジ処理される。以下同様にして、各処理を担当するサブプロセッサによって各スパンが並列に処理される。
[パイプライン処理中のキャンセル処理]
上記パイプライン処理の実行中にユーザが操作部113を介して、画像形成装置110に対して印刷処理のキャンセ指示を行う場合がある。CPU220は、操作部113に入力された情報(指示)を操作部I/F225を介して受け取り、該指示に応じた処理を実行する。従来は、RIP231のメッセージ送受信レジスタを介してCPU220からの指示(メッセージ)を判断していた。また、RIP231内のサブプロセッサのうち、エッジ処理を担当するサブプロセッサ405が、CPU220からのメッセージを判断し処理を切り替えていた。しかし、PC101が生成する各種PDLデータにおいて、1ページ内に含むことができる描画オブジェクトの数と描画位置に制限がなく、PDLデータから生成されるDLも同一スキャンライン上の描画オブジェクト数に制限がない。したがって、スパン単位、あるいはエッジロード単位でメッセージを判断すると描画オブジェクト数によってオーバーヘッドが大きくなってしまう。そこで上述した特許文献1に記載の技術では、次のスキャンラインに処理を進める際にキャンセル要求の有無を判断するようにして、スキャンライン単位でメッセージを判断する構成がとられている。さらに、キャンセル要求ありと判断した場合には、未処理のスキャンラインについては、新たにエッジをロードすることなく所定のピクセルを出力する構成がとられている。
上記パイプライン処理の実行中にユーザが操作部113を介して、画像形成装置110に対して印刷処理のキャンセ指示を行う場合がある。CPU220は、操作部113に入力された情報(指示)を操作部I/F225を介して受け取り、該指示に応じた処理を実行する。従来は、RIP231のメッセージ送受信レジスタを介してCPU220からの指示(メッセージ)を判断していた。また、RIP231内のサブプロセッサのうち、エッジ処理を担当するサブプロセッサ405が、CPU220からのメッセージを判断し処理を切り替えていた。しかし、PC101が生成する各種PDLデータにおいて、1ページ内に含むことができる描画オブジェクトの数と描画位置に制限がなく、PDLデータから生成されるDLも同一スキャンライン上の描画オブジェクト数に制限がない。したがって、スパン単位、あるいはエッジロード単位でメッセージを判断すると描画オブジェクト数によってオーバーヘッドが大きくなってしまう。そこで上述した特許文献1に記載の技術では、次のスキャンラインに処理を進める際にキャンセル要求の有無を判断するようにして、スキャンライン単位でメッセージを判断する構成がとられている。さらに、キャンセル要求ありと判断した場合には、未処理のスキャンラインについては、新たにエッジをロードすることなく所定のピクセルを出力する構成がとられている。
図6は、操作部の構成の一例を示す図である。図6に示すように、操作部113には、表示部601、ジョブキャンセルボタン602、メニューボタン603、及び選択ボタン604が配置されている。表示部601は、ユーザに対し画像形成装置110の状態や設定項目についての情報を表示する。表示部601に「プリント可能」と表示されているときに、ユーザがメニューボタン603を押下すると、ユーザが設定できる項目及びユーザが確認できる画像形成装置110内部の情報を選択できるようになる。ユーザは、メニューボタン603を押下した後に、表示部601に表示されるメニューの中で所望の項目を、選択ボタン604を用いて選択することができる。これにより、ユーザからの指示を受け付ける受付手段が実現される。図6(b)に示すように表示部601に「現在、プリント中」と表示されているときに、ユーザがジョブキャンセルボタン602を押下して印刷ジョブのキャンセル要求(ジョブキャンセル要求)を行うと、画像形成装置110は、実行中の処理を停止する。
図7は、第1実施形態の画像形成装置110における印刷処理の開始から終了までのシーケンスを示す図である。期間701は、CPU220が駆動している期間を示している。期間701においてまず、プリンタ部111が処理を実行できる状態にするため、CPU220が、デバイスI/F235を介してプリンタ部111にメッセージ702を送信する。メッセージの送信とは、所定のレジスタあるいは所定のメモリに所定の値を書き込むことを意味する。なお、ここでは、プリンタ部111のレジスタではなく、デバイスI/F235のレジスタに値を書き込むことを意味する。プリンタ部111は、メッセージ702に応じて定着器を昇温させるなど、受け取った画像データをシート(紙)に出力する準備を開始する。期間703は、プリンタ部111が処理を開始してから終了するまでの期間を示している。
CPU220は、プリンタ部111にメッセージ702を送信した後、画像編集部232にメッセージ704を送信する。これにより、画像編集部232は、RIP231から受け付けたピクセルデータ(画素データ)をハーフトーンのピクセルデータ(画素データ)に変換できる状態になる。期間705は、この変換処理が実行可能な期間を示している。
最後に、RIP231は、CPU220からメッセージ706を受け付けると、前述したレンダリング処理を開始する。メッセージ706は、図4に示す各サブプロセッサに対して送信される。メッセージ706は、各サブプロセッサが担当する処理を開始させるためのメッセージである。期間707は、RIP231がメッセージを受け取ってから1ページ分のピクセルを出力し終えるまでの期間を示している。RIP231は、1ページ分のピクセルを出力し終えると、CPU220に対してメッセージ708を送信する。CPU220に対するメッセージ送信も同様に、所定のレジスタあるいは所定のメモリに所定の値を書き込むことを意味する。メッセージ708は、RIP231内のサブプロセッサ各々からCPU220に対して送信される。画像編集部232も同様に、処理終了時にメッセージ709をCPU220に対して送信する。プリンタ部111も同様に、処理終了時にメッセージ710をCPU220に対して送信する。
以上のように、RIP231がメッセージを受け付けて処理を開始する前に、RIP231が出力するピクセルを受け取るハードウェア(画像編集部232及びプリンタ部111)にメッセージが送信され、該ハードウェアが先行して処理開始可能な状態となる。また、RIP231が処理を停止する際には、RIP231が所定数のピクセルを出力し終えた後に、順次他のハードウェアが処理を終了する。したがって、画像形成装置110がユーザからのキャンセル要求を受け付けた場合、RIP231のみが実行中の処理を所定数のピクセルを出力する処理に切り替えればよく、他のハードウェアはキャンセルに応じた処理を実行する必要がなくなる。
次いで、本実施形態におけるRIP231のみがキャンセル時に処理を切り替える具体的な方法を詳述する。図8は、図7に示す期間707におけるRIP内部の第1実施形態におけるシーケンスを示す図である。図8には、CPU220がRIP231に対し中断指示を含むメッセージを送信してからRIP231が所定のピクセルを送信し終えるまでのシーケンスが示されている。なお、図8における×印は、各サブプロセッサがリセット状態になったことを表している。
CPU220がRIP231内の各サブプロセッサに対して中断指示を含むメッセージ802,804,806,808を送信する。すると、RIP231内の各サブプロセッサにおいて、メッセージ内容を取得するための割込みハンドラが呼び出され、期間803,805,807,809において以下の処理が行われる。
サブプロセッサ405,407,409では、呼び出された割込みハンドラがバッファ404,406,408に対しデータ読み出し要求信号を出力する。バッファ404,406,408は、データ読み出し要求信号を受信すると、要求元のサブプロセッサまたはDMACに対して読み出しデータを送信する。サブプロセッサ405、407.409は、バッファ404,406,408から送信されたデータを受け取ると、次のデータ読み出し要求信号を出力する。この処理が繰り返されて、各バッファ内部のSRAMからデータがなくなると、各バッファは、要求元にEMPTY信号を出力する。EMPTY信号を入力したサブプロセッサまたはDMACは、上述したように、EMPTY信号がなくなるまでデータの読み出しを完了せずに停止状態になる。
サブプロセッサ411では、呼び出された割込みハンドラが、バッファ412のレジスタあるいはメモリから、1ページ分の出力に必要なピクセル数(画素数)と、出力チャネル数と、既に出力したピクセル数とを取得する。そして、サブプロセッサ411では、取得したこれらの情報に基づいて、残りのピクセルを出力する。残りのピクセルの出力を終えると、サブプロセッサ411は他のプロセッサと同様に、バッファ410に対して、バッファ410内部のSRAMにデータがなくなるまでデータ読み出し要求信号を繰り返し出力する。バッファ410内部のSRAMにデータがなくなると、バッファ410は、サブプロセッサ411にEMPTY信号を出力する。サブプロセッサ411は、EMPTY信号がなくなるまでデータの読み出しを完了せずに停止状態になる。パイプライン処理中のキャンセル処理は以上のようにして行われる。
CPU220は、キャンセル処理が終了した後、新たにRIP231に処理の開始を指示する際に、各サブプロセッサに対し再起動メッセージを送信する。より具体的には、CPU220は、各サブプロセッサが有するリセットレジスタを用いて各サブプロセッサをリセットしたのち、各サブプロセッサが有するリセット解除レジスタを用いて各サブプロセッサをリセット解除する。このとき、各バッファ内部のSRAMにはデータが存在しないので、キャンセル後の処理において、各サブプロセッサは不要なデータを読み込むことなく処理を開始できる。
図9は、第1実施形態の画像形成装置110の印刷処理を示すフローチャートである。図9には、ユーザからの印刷指示を受け付けた際のCPU220の処理が示されている。操作部113が図6(a)に示す状態であるとき、CPU220は、ユーザからの指示を待ち続ける(S901)。そして、ユーザからの指示を受け付けると、CPU220は、受け付けた指示が印刷指示であるか否かを判断する(S902)。受け付けた指示が印刷指示でない場合(S902のNO)、CPU220はS901の処理に戻る。受け付けた指示が印刷指示である場合(S902のYES)、CPU220は、RIP231に対して描画処理の開始を指示する(S903)。この指示は、図7に示すメッセージ702,704,706に相当する。このとき、操作部113は図6(b)に示す状態となる。次いで、CPU220は、ユーザからの中断指示があったか確認する(S904)。
中断指示がない場合(S904のNO)、CPU220は、RIP231から描画終了通知を受け付けたか確認する(S905)。この通知は、ユーザからのキャンセル要求がないまま1ページ分の描画処理が終了した場合にRIP231から送信される、図7に示すメッセージ708に相当する。描画終了通知を受け付けている場合(S905のYES)、CPU220は処理を終了する。描画終了通知を受け付けていない場合(S905のNO)、CPU220はS904の処理に戻る。
中断指示があった場合(S904のYES)、CPU220は、RIP231の各サブプロセッサに対し中断指示を出力する(S906)。この中断指示は、図8に示すメッセージ802,804,806,808に相当する。S906の後、CPU220は、サブプロセッサ411から描画終了通知を受け付けたか確認する(S907)。この通知は、図8に示すメッセージ813に相当する。描画終了通知を受け付けていない場合(S907のNO)、CPU220はS907の処理を繰り返す。描画終了通知を受け付けている場合(S907のYES)、CPU220は、バッファ410内部のSRAMのデータが無くなりサブプロセッサ411が待機状態になるまで待つ(S908)。このとき、CPU220は、バッファ410の内部SRAMの全領域にデータが格納されているときに該SRAM内のデータをすべて読み出すのに要する時間、すなわち該SRAM内のデータの読み出しに要する最長時間分だけ待つものとする。
次に、ユーザからの印刷指示を受け付けた際のRIP231の各サブプロセッサの処理を説明する。まず、図10を用いて、スキャンライン単位で中断指示の有無を判断する従来のサブプロセッサの動作を説明する。なお、ここではサブプロセッサ405の動作を例にして説明する。また、図10に示す処理は、CPU220が従来のスキャンラインレンダリングのプログラムをRAM222に展開し、サブプロセッサ405をリセット解除し、サブプロセッサ405に上記プログラムを実行させるメッセージを送信することで開始される。
サブプロセッサ405は、リセット解除されると、CPU220からの指示を待つ(S1001)。CPU220からの指示を受け付けると、サブプロセッサ405は、受け付けた指示が開始指示であるか否かを判断する(S1002)。この開始指示は、図7に示すメッセージ706に相当する。受け付けた指示が開始指示である場合(S1002のYES)、サブプロセッサ405は内部状態を待機中状態から処理中状態に遷移させる(S1003)。次いで、サブプロセッサ405は、RIP中にCPU220からの中断指示があったか否か確認する(S1004)。
中断指示がない場合(S1004のNO)、サブプロセッサ405は、RAM222に格納されているディスプレイリストから描画命令を読み込み(S1005)、読み込んだ描画命令が描画終了を示すか否かを確認する(S1006)。描画命令が描画終了を示す場合(S1006のYES)、サブプロセッサ405は、内部状態を処理中状態から待機中状態に遷移させ(S1011)、処理を終了する。描画命令が描画終了以外を示す場合(S1006NO)、サブプロセッサ405は、担当する描画処理(エッジ処理)を1スキャンライン分実行する(S1007)。エッジ処理実行後、サブプロセッサ405は、描画処理が完了したスキャンライン数をカウントし(S1008)、S1004の処理に戻る。なお、S1008の処理は、サブプロセッサ405が処理すべきカレントスキャンラインを更新する処理でもある。
中断指示があった場合(S1004のYES)、サブプロセッサ405は、S1008でカウントしたスキャンライン数から描画処理が未完了であるスキャンライン数を導出する(S1009)。そして、サブプロセッサ405は、予め定められた色値をS1009で導出したスキャンライン数分だけ出力するための命令を、サブプロセッサ407に送信する(S1010)。具体的には、サブプロセッサ405は、スキャンライン長分のスパンに、背景色、あるいは、背景色と同色の色に対応するレベル情報を付与し、サブプロセッサ407に送信する。こうして、サブプロセッサ407,409,411は、スキャンライン長が指定されたスパン内に、指定された色を描画するように動作する。S1010の後、サブプロセッサ405は、内部状態を処理中状態から待機中状態に遷移させ(S1011)、処理を終了する。
次に、図11を用いて、本実施形態のサブプロセッサの動作を説明する。なお、ここではサブプロセッサ405の動作を例にして説明する。図11(a)には、本実施形態におけるサブプロセッサ405が実行する処理が示されている。図11に示す処理は、CPU220が本実施形態にかかるスキャンラインレンダリングのプログラムをRAM222に展開し、サブプロセッサ405をリセット解除し、サブプロセッサ405に上記プログラムを実行させるメッセージを送信することで開始される。
サブプロセッサ405は、リセット解除されると、CPU220から割込みメッセージが送信された際に呼び出される割込みハンドラ関数を登録する(S1101)。なお、本実施形態では、図8に示すように、CPU220は、S906において中断指示を出力する際に各サブプロセッサに対して割込みメッセージを送信する。
S1104の後、サブプロセッサ405は、図10におけるS1004に相当する処理(中断指示があったか否かを確認する処理)を行なわい。これは、CPU220がS906において中断指示を出力する際に送信する割込みメッセージによって、S1101で登録された割込みハンドラを呼び出すようにしているので、S1004に相当する処理が不要となるためである。S1104の後、サブプロセッサ405は、図10におけるS1005〜S1008,S1011と同様の処理を実行する(S1105〜S1108,S1109)。
次に、図11(b)を用いて、S1101で登録される割込みハンドラについて説明する。図11(b)には、サブプロセッサ405が割込みハンドラで実行する処理が示されている。サブプロセッサ405は、CPU220の割り込みメッセージを取得すると(S1111)、割込みメッセージの種別を判定し、割り込みメッセージが中断指示であるか否かを確認する(S1112)。割り込みメッセージが中断指示以外である場合(S1112のNO)、処理は終了する。中断指示である場合(S1112のYES)、サブプロセッサ405は、内部状態を処理中状態から待機中状態に遷移させ(S1113)、バッファ404に対しデータ読み出し要求信号を出力する(S1114)。上述したように、バッファ404は、データ出力側に接続されたサブプロセッサまたはDMACからデータ読み出し要求信号を受信すると、読み出しデータを要求元のサブプロセッサまたはDMACに送信する。サブプロセッサ405は、バッファ404から送信されるデータを受け取ると、次のデータ読み出し要求信号をバッファ404に対し出力する。サブプロセッサ405は、S1114の処理を繰り返す。そして、バッファ404内部のSRAMにデータがなくなると、バッファ404は、サブプロセッサ405にEMPTY信号を出力する。サブプロセッサ405は、EMPTY信号がなくなるまでデータの読み出しを完了せずに停止状態を維持する。
サブプロセッサ407,409,411においても同様に、図11(a),(b)に示す処理が行われる。ただし、サブプロセッサ411が割り込みハンドラで実行する処理は、図11(c)に示すように他のプロセッサと異なる。図11(c)には、サブプロセッサ411が割込みハンドラで実行する処理が示されている。なお、S1121,S1122,S1127,S1128の処理は、図11(b)におけるS1111,S1112,S1113,S1114の処理と同様であるため説明を省略する。
S1122の処理の後、サブプロセッサ411は、出力する色空間を取得する(S1123)。さらに、サブプロセッサ411は、出力済みのピクセル数を取得し(S1124)、該出力済みのピクセル数から、出力する必要がある残りのピクセル数を導出する(S1125)。サブプロセッサ411は、S1123〜S1125の処理で得られた情報をもとに、所定の画素値のピクセルを残りのピクセル数分出力する(S1126)。
[第1実施形態の効果]
従来は、RIP231内のサブプロセッサは、スキャンライン毎の処理が終わる際に中断指示を確認して処理を切り替えていた。そのため、処理中のスキャンライン上に存在するオブジェクト数に応じて処理が切り替わるまでの時間が不定となっていた。
従来は、RIP231内のサブプロセッサは、スキャンライン毎の処理が終わる際に中断指示を確認して処理を切り替えていた。そのため、処理中のスキャンライン上に存在するオブジェクト数に応じて処理が切り替わるまでの時間が不定となっていた。
一方、本実施形態では、CPU220が中断指示を出力する際に割込みメッセージを送信して割り込みハンドラを呼び出すようにしている。したがって、RIP231の各サブプロセッサは、CPU220からの中断指示を即時に受け付けることができ、描画処理を一定の時間以内に高速に強制停止させることが可能となる。よって、本実施形態によれば、ユーザからのジョブキャンセル要求に対して、画像形成装置が即時に対応することが可能となる。それにより、MFP等のプリンタのユーザビリティを向上させることができる。加えて、RIP231が画素データ生成中に中断指示を検知する処理(S1004の処理に相当)が不要になるので、各サブプロセッサにおける描画処理を高速化できるという副次的効果も得られる。
また、本実施形態では、パイプライン処理中のキャンセル処理において、後段のハードウェア(プリンタ部111や画像編集部232)に対して所定の画素値のピクセルを未処理の画素数分出力するようにしている。したがって、それらのハードウェアを安全に停止させることができる。また、本実施形態では、後段のハードウェアに接続されるサブプロセッサ(末尾のサブプロセッサ411)に所定の画素値のピクセルを出力させているので、該ピクセルを後段のハードウェアに即時に出力することができる。またそれにより、ユーザの待ち時間が低減され、ユーザビリティをさらに向上させることができる。
さらに、本実施形態では、RIP231は、内部に有する各バッファ内からデータを削除してから描画処理を終了するようにしているので、次の処理を開始する際に不要なデータがバッファから読み出されることがない。
<第2実施形態>
以下、第2実施形態について図面を用いて説明する。第2実施形態にかかる画像形成装置110の構成は、図1に示される第1実施形態の構成と同様である。第2実施形態にかかる画像形成装置110のRIP231内部の構成は、図4に示される第1実施形態の構成と同様である。また、本実施形態のRIP231が実行するパイプライン処理は、図2及び図3を用いて説明した第1実施形態のパイプライン処理と同様である。また、本実施形態の画像形成装置110における印刷処理の開始から終了までのシーケンスは、図7に示す第1実施形態のシーケンスと同様である。
以下、第2実施形態について図面を用いて説明する。第2実施形態にかかる画像形成装置110の構成は、図1に示される第1実施形態の構成と同様である。第2実施形態にかかる画像形成装置110のRIP231内部の構成は、図4に示される第1実施形態の構成と同様である。また、本実施形態のRIP231が実行するパイプライン処理は、図2及び図3を用いて説明した第1実施形態のパイプライン処理と同様である。また、本実施形態の画像形成装置110における印刷処理の開始から終了までのシーケンスは、図7に示す第1実施形態のシーケンスと同様である。
図12は、図7に示す期間707におけるRIP内部の第2実施形態におけるシーケンスを示す図である。図12には、CPU220がRIP231に対し中断指示を含むメッセージを送信してからRIP231が所定のピクセルを送信し終えるまでの第2実施形態におけるシーケンスが示されている。なお、図12における×印は、各サブプロセッサや各バッファがリセット状態になったことを表している。
メッセージ1202は、リセットレジスタへのアクセスである。CPU220がメッセージ1202を送信すると、サブプロセッサ405は期間1203を経てリセット状態になる。同様にCPU220がメッセージ1204,1206,1208を送信すると、サブプロセッサ407,409は期間1205,1207,1209を経てリセット状態になる。実際には、期間1203,1205,1207,1209の間に各サブプロセッサが処理することはなく、即座にリセット状態になる。
次に、CPU220は、メッセージ1210により、RAM222の所定領域に新たにサブプロセッサ411に実行させるプログラムを展開する。CPU220は期間1211において上記プログラムを展開すると、サブプロセッサ411に対して、リセット解除して上記プログラムを実行させるためのメッセージ1212を送信する。サブプロセッサ411はメッセージ1212を受け付けると、期間1213において、バッファ412のレジスタあるいはメモリから、1ページ分の出力に必要なピクセル数と、出力チャネル数と、既に出力したピクセル数とを取得する。そして、サブプロセッサ411は、取得したこれらの情報に基づき残りのピクセルを出力する。残りのピクセルの出力を終えると、サブプロセッサ411は、CPU220に処理の終了を示すメッセージ1214を送信する。メッセージ1215は、リセットレジスタへのアクセスである。CPU220がメッセージ1215を送信すると、サブプロセッサ411は期間1216を経てリセット状態になる。その後、CPU220はメッセージ1217により、RAM222の所定領域にサブプロセッサ411に実行させる元のプログラムを展開する。期間1218は、CPU220がメッセージ1217を受け付けてから所定領域に上記元のプログラムを展開するまでの期間を示している。元のプログラムとは、サブプロセッサ411に本来実行させるべき、描画処理(コンポジット処理)用のプログラムである。
最後に、CPU220は、各バッファに対して、リセットレジスタへのアクセスを意味するメッセージ1219,1221,1223,1225,1227を送信する。すると、すべてのバッファが、期間1220,1222,1224,1226,1228を経てリセット状態になる。このとき、各バッファは、内部のSRAMに残っているデータをすべて削除する。したがって、本実施形態では、各バッファ内部のSRAMにあるデータを空にする処理(第1実施形態におけるS1114,S1128に相当する処理)が不要となる。
図13は、第2実施形態の画像形成装置110の印刷処理を説明するための図である。図13(a)には、第2実施形態の画像形成装置110の印刷処理を示すフローチャートが示されている。なお、S1301〜S1305の処理は、図9に示すS901〜S905の処理と同様である。
S1304にてキャンセル要求があったと判断した場合(S1304のYES)、CPU220は、RIP231に対する停止処理を行う(S1306)。具体的には、各サブプロセッサにおける描画処理を停止させるため、各サブプロセッサのリセットレジスタにアクセスして、各サブプロセッサをリセット状態にする。次いで、CPU220は、RAM222の所定領域に、新たにサブプロセッサ411に実行させる所定ピクセル出力用のプログラムを展開する(S1307)。そして、CPU220は、サブプロセッサ411をリセット解除し、サブプロセッサ411に前述したプログラムを実行させる(S1308)。S1308の後、CPU220は、サブプロセッサ411から描画終了通知を受け付けたか確認する(S1309)。描画終了通知を受け付けていない場合(S1309のNO)、CPU220はS1309の処理を繰り返す。描画終了通知を受け付けている場合(S1309のYES)、CPU220は、サブプロセッサ411で実行されている、所定ピクセル出力用のプログラムによる描画処理を停止させる(S1310)。具体的には、CPU220は、サブプロセッサ411のリセットレジスタにアクセスし、サブプロセッサ411をリセット状態にする。最後に、CPU220は、RAM222の所定領域にサブプロセッサ411に実行させる元のプログラムを展開する(S1317)。これにより、CPU220が、次の描画開始を指示する際にサブプロセッサ411をリセット解除することで、サブプロセッサ411に元のプログラムを実行させることができる。
図13(b)には、サブプロセッサ411で実行される、所定ピクセル出力用のプログラムによる描画処理が示されている。図13(b)に示す処理は、前述したように、CPU220がS1308でサブプロセッサ411をリセット解除することにより実行される。図13(b)に示す処理は、第1実施形態の図11(c)に示す処理と同様である。ただし、本実施形態では、上述したようにS1128に相当する処理は行われない。また、本実施形態ではサブプロセッサの処理の切り替えを割込みメッセージで行っていないため、S1121,S1122に相当する処理は行われない。
[第二実施形態の効果]
本実施形態では、第1実施形態と同様にRIP231が一定の時間以内に高速に強制停止させることが可能となる。そのため、本実施形態によれば、第1実施形態と同様の効果が得られる。
本実施形態では、第1実施形態と同様にRIP231が一定の時間以内に高速に強制停止させることが可能となる。そのため、本実施形態によれば、第1実施形態と同様の効果が得られる。
また、本実施形態では、各バッファのリセットレジスタにアクセスすることにより、各バッファの内部に残っているデータを削除するようにしている。よって、各サブプロセッサは、処理を終了する際に各バッファの内部に残っているデータをすべて読み出す処理を行う必要がない。したがって、本実施形態によれば、より高速に且つより安全にRIP231を停止させることができる。なお、第1実施形態においても、本実施形態のように各バッファのリセットレジスタにアクセスして、各バッファの内部に残っているデータを削除するようにしてもよい。その場合には、S1114,S1128の処理が不要になる。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
Claims (10)
- 印刷ジョブに含まれる画像データに対して複数のプロセッサを用いて描画処理を行い、前記描画処理により得られた画素データを後段のハードウェアに出力する描画処理手段と、
前記描画処理手段を制御する制御手段と、を備え、
前記制御手段は、前記印刷ジョブに対するキャンセル要求を受け付けると、前記描画処理手段に対して前記描画処理を中断させるための指示を行い、
前記描画処理手段は、前記指示に応じて前記複数のプロセッサを停止させる際に、前記複数のプロセッサのうち前記ハードウェアに接続されたプロセッサに、所定の画素値の画素データを未処理の画素数分出力させる
ことを特徴とする画像処理装置。 - 前記制御手段は、前記複数のプロセッサに割り込みメッセージを送信することにより前記指示を行う
ことを特徴とする請求項1に記載の画像処理装置。 - 前記制御手段は、
前記複数のプロセッサをリセットすることにより前記指示を行い、
前記所定の画素値の画素データを未処理の画素数分出力させるためのプログラムをメモリ上に展開してから前記リセットを解除し、
前記ハードウェアに接続された前記プロセッサは、前記リセットが解除されると、前記プログラムに従って前記所定の画素値の画素データを出力する
ことを特徴とする請求項1に記載の画像処理装置。 - 前記複数のプロセッサは、前記描画処理に含まれる複数の処理を分担するようにパイプライン状に接続されていて、
前記描画処理手段は、
パイプライン状に接続された前記複数のプロセッサのうち末尾のプロセッサに、前記所定の画素値の画素データを未処理の画素数分出力させる
ことを特徴とする請求項1から請求項3のうちのいずれか1項に記載の画像処理装置。 - 前記複数のプロセッサは、各プロセッサ間に設けられたバッファを経由してデータの送受信を行い、
前記指示に応じて前記複数のプロセッサが停止する際に、前記バッファに格納されているデータが削除される
ことを特徴とする請求項1から請求項4のうちのいずれか1項に記載の画像処理装置。 - 前記描画処理手段は、
前記指示に応じて前記複数のプロセッサを停止させる際に、前記複数のプロセッサに、前記バッファに格納されているデータを読み出す処理を実行させて、前記バッファから前記データを削除する
ことを特徴とする請求項5に記載の画像処理装置。 - 前記制御手段は、
前記印刷ジョブに対するキャンセル要求を受け付けると、前記バッファをリセットさせて、前記バッファに格納されているデータを削除する
ことを特徴とする請求項5に記載の画像処理装置。 - 前記ハードウェアが、前記描画処理手段により得られた画素データに従って画像を形成するデバイスであって、且つ、前記画像の形成が完了するまで停止状態に移行できないデバイスであり、
前記描画処理手段は、
前記指示を受け付けると、前記デバイスに既に出力した画素数と、形成すべき前記画像の画素数とから、前記未処理の画素数を導出する
ことを特徴とする請求項1から請求項7のうちのいずれか1項に記載の画像処理装置。 - 印刷ジョブに含まれる画像データに対して複数のプロセッサを用いて描画処理を行い、前記描画処理により得られた画素データを後段のハードウェアに出力する描画処理手段と、
前記描画処理手段を制御する制御手段と、を備える画像処理装置の制御方法であって、
前記制御手段が、前記印刷ジョブに対するキャンセル要求を受け付けると、前記描画処理手段に対して前記描画処理を中断させるための指示を行うステップと、
前記描画処理手段が、前記指示に応じて前記複数のプロセッサを停止させる際に、前記複数のプロセッサのうち前記ハードウェアに接続されたプロセッサに、所定の画素値の画素データを未処理の画素数分出力させるステップと、を含む
ことを特徴とする制御方法。 - コンピュータを、請求項1から請求項8のうちのいずれか1項に記載の画像処理装置として機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018152820A JP2020026107A (ja) | 2018-08-15 | 2018-08-15 | 画像処理装置、画像処理装置の制御方法、及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018152820A JP2020026107A (ja) | 2018-08-15 | 2018-08-15 | 画像処理装置、画像処理装置の制御方法、及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020026107A true JP2020026107A (ja) | 2020-02-20 |
Family
ID=69620928
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018152820A Pending JP2020026107A (ja) | 2018-08-15 | 2018-08-15 | 画像処理装置、画像処理装置の制御方法、及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2020026107A (ja) |
-
2018
- 2018-08-15 JP JP2018152820A patent/JP2020026107A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7602392B2 (en) | Image processing device, method, and storage medium which stores a program | |
US10762401B2 (en) | Image processing apparatus controlling the order of storing decompressed data, and method thereof | |
JP2011070337A (ja) | 画像処理システム及び画像処理プログラム | |
JP2008276407A (ja) | 画像処理装置及びその方法 | |
JP2012148429A (ja) | 印刷データ処理装置、キャッシュ処理方法及びプログラム | |
JP6748445B2 (ja) | 画像形成装置、画像形成装置の制御方法、および、プログラム | |
US20070101330A1 (en) | Data processing apparatus and method | |
JP6904697B2 (ja) | 情報処理装置及び通信制御方法 | |
JP2012200956A (ja) | 画像処理システムおよび画像処理プログラム | |
JP6904717B2 (ja) | 画像処理装置、その制御方法、およびプログラム | |
JP2020026107A (ja) | 画像処理装置、画像処理装置の制御方法、及びプログラム | |
US10325189B2 (en) | Image processing apparatus and image processing method that perform, in units of band areas, rasterization based on second intermediate data stored in a first memory area and compressed raster data stored in a second memory area | |
US10089561B2 (en) | Generating a raster image region by rendering in parallel plural regions of smaller height and segmenting the generated raster image region into plural regions of smaller width | |
JP4964219B2 (ja) | 画像処理装置、方法及びプログラム | |
JP3715749B2 (ja) | 画像処理システム及び画像処理方法 | |
US10579316B2 (en) | Image processing apparatus that performs rendering processing, method of rendering processing, and storage medium | |
JP2016206934A (ja) | 画像処理装置、画像処理方法及びプログラム | |
JP5759511B2 (ja) | 描画命令を処理する装置、方法及びプログラム | |
JP2007122621A (ja) | 情報処理装置、情報処理方法 | |
US11205242B2 (en) | Memory error recovery for complex page RIP | |
JP6886338B2 (ja) | 画像形成装置とその制御方法、及びプログラム | |
JP2006031160A (ja) | グラフィックオブジェクト処理方法 | |
JP5766059B2 (ja) | 画像形成装置、画像形成装置の制御方法、及びプログラム | |
JP2022030549A (ja) | 情報処理置、情報処理方法、画像形成装置、及びプログラム | |
JP2012221195A (ja) | 画像処理システム |