画像処理装置、プログラム、画像形成装置、画像処理方法
【課題】描画処理が読み出すメモリに書き込みエラーが生じた場合に異常画像などの印刷を抑制できる画像処理装置を提供する。
【解決手段】メモリ110に書き込まれた描画コマンドを解析して階調処理後の画像データをメモリに書き込む画像処理装置100であって、描画コマンドを解析する描画コマンド解析手段106と、全ての前記描画コマンドが登録された描画コマンドテーブル120と、エラー処理コマンドが記憶されたエラー処理コマンド記憶手段と、メモリから読み出した描画コマンドが前記描画コマンドテーブルに登録されていないコマンドエラーを前記描画コマンド解析手段が、検出した場合、前記エラー処理コマンド記憶手段に記憶されたエラー処理コマンドを実行してエラー処理を実行するエラー処理実行手段107と、を有する。
【解決手段】メモリ110に書き込まれた描画コマンドを解析して階調処理後の画像データをメモリに書き込む画像処理装置100であって、描画コマンドを解析する描画コマンド解析手段106と、全ての前記描画コマンドが登録された描画コマンドテーブル120と、エラー処理コマンドが記憶されたエラー処理コマンド記憶手段と、メモリから読み出した描画コマンドが前記描画コマンドテーブルに登録されていないコマンドエラーを前記描画コマンド解析手段が、検出した場合、前記エラー処理コマンド記憶手段に記憶されたエラー処理コマンドを実行してエラー処理を実行するエラー処理実行手段107と、を有する。
【発明の詳細な説明】
【技術分野】
【0001】
メモリに書き込まれた描画コマンドを解析して階調処理後の画像データをメモリに書き込む画像処理装置に関する。
【背景技術】
【0002】
デジタル複写機やプリンタなどの画像形成装置は、PC(Personal Computer)から送信された印刷データに多くの画像処理プロセスを施して用紙などの記録媒体に出力する。
【0003】
図1は一般的な画像処理プロセスを説明する図の一例である。
1.PC上のアプリケーションがOSやプリンタドライバを利用してPDL(ページ記述言語)を生成しメモリに書き込むプロセス
2.画像形成装置のCPU(ソフトウェア)がPDLの印刷データを解析して中間言語で記述された描画コマンドを生成しメモリに書き込むプロセス
3.描画装置が描画コマンドを解析し、階調処理後(2値化された)の画像データ(バンドデータ)をメモリへ書き込むプロセス
4.符号化装置が、2値画像を圧縮アルゴリズム(JBIGなど)により符号化しメモリに書き込むプロセス、
5.復号装置が、メモリから符号化された画像データを読み込み復号し、C,M,Y,Kの各版に対応するラスタデータをプリンタエンジンに転送するプロセス
このような画像処理プロセスは、解像度の増加やカラー化が進むにつれ、また、印刷時間を短縮するという要求に伴い、さらなる高速化が求められており、高速化を図った技術が提案されている(例えば、特許文献1参照。)。特許文献1には、描画ワードX幅のハーフトンパターンをハーフトンパターンのY幅分記憶しておくことで、高速化する画像処理装置が開示されている。同じ階調値である描画オブジェクトに対して効率よくハーフトンパターンを使用することができるので、画像処理を高速化できる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の描画装置は、画像処理中に生じ得るエラーを検出する手段がなく、ソフトウェアが機器を停止するなどのエラー制御ができないという問題がある。
【0005】
画像形成装置はプリンタ機能だけでなく、スキャナ機能、コピー機能、ファクシミリ機能等、複数の機能を搭載する多機能化が進んでおり、各機能のジョブを受け付けるアプリが搭載されている。このため、例えば、プリンタアプリが印刷している間に、コピーアプリが起動されるなど、複数のアプリが並行に実行されることがある。各アプリがジョブを実行する際、競合しないようにソフト・ハードのリソースの使用権限が調停される。しかし、例えば複数のアプリのメモリへの書き込みタイミング等により、ソフトウェアが描画コマンドをメモリに書き込む際に、描画コマンドがデータ化けするおそれがあることが知られている。
【0006】
また、メモリへの書き込みにソフトウェアはポインタの示すアドレスを使用するが、ポインタの不整合などにより、本来書き込むべき領域(アドレス)でない領域にソフトウェアが描画コマンドを書き込むおそれがある。
【0007】
描画装置は、ソフトウェアが誤ってデータ化けさせた描画コマンドを解析して階調処理したり、ソフトウェアが想定外の領域に描画処理コマンドを書き込んだことを検出する手段を有しておらず、画像処理を継続してしまう。この場合、画像形成装置が異常画像をプリントアウトすることになる。
【0008】
図2(a)(b)は異常画像を模式的に説明する図の一例である。例えば、印刷データが"A"という文字の場合、エラーが発生しなければ、図2(a)の左の図のように"A"という文字が印刷される。これに対し、例えば図示する位置でエラーが発生した場合、本来、斜めに描画されるラインがエラー発生時の位置から直線になるなどの印刷結果が得られる場合がある。
【0009】
また、例えば、印字データが文章の場合、エラーが発生しなければ、図2(a)の左の図のように印刷データに従った文字や記号が印刷される。これに対し、何らかのエラーが発生した場合、一部に文脈からは明らかにおかしい文字や記号が印刷される。大部分の文章は異常がないため、図2(b)のような異常画像はユーザも気付きにくく、後になって再印刷が必要であることに気付くという事態が起こる。
【0010】
本発明は、上記課題に鑑み、描画処理が読み出すメモリに書き込みエラーが生じた場合に異常画像などの印刷を抑制できる画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【0011】
上記課題を解決するため、本発明は、 メモリに書き込まれた描画コマンドを解析して画像データに階調処理を施す画像処理装置であって、描画コマンドを解析する描画コマンド解析手段と、全ての前記描画コマンドが登録された描画コマンドテーブルと、エラー処理コマンドが記憶されたエラー処理コマンド記憶手段と、メモリから読み出した描画コマンドが前記描画コマンドテーブルに登録されていないコマンドエラーを前記描画コマンド解析手段が検出した場合、前記エラー処理コマンド記憶手段に記憶されたエラー処理コマンドを実行してエラー処理を実行するエラー処理実行手段と、を有することを特徴とする。
【発明の効果】
【0012】
描画処理が読み出すメモリに書き込みエラーが生じた場合に異常画像などの印刷を抑制できる画像処理装置を提供することができる。
【図面の簡単な説明】
【0013】
【図1】一般的な画像処理プロセスを説明する図の一例である。
【図2】異常画像を模式的に説明する図の一例である。
【図3】描画装置の概略的な特徴を説明する図の一例である。
【図4】画像形成装置の構成図の一例である。
【図5】画像形成装置の概略的なハードウェア構成図の一例である。
【図6】PDLの印刷データがプリンタエンジンに送出されるまでの流れを説明する図の一例である。
【図7】描画コマンドのリスト例を示す図である。
【図8】描画コマンドのフォーマット例を示す図である。
【図9】エラー処理コマンドの一例を説明する図の一例である。
【図10】描画装置の構成図の一例である。
【図11】CPUが実行するソフトウェアの機能ブロック図の一例である。
【図12】描画装置がバンドデータを描画する手順を示すフローチャート図の一例である。
【図13】描画装置がエラーを検出した場合に印刷される出力例を示す図である。
【図14】描画装置の概略的な特徴を説明する図の一例である(実施例2)。
【図15】描画装置の構成図の一例である(実施例2)。
【図16】描画装置がバンドデータを描画する手順を示すフローチャート図の一例である(実施例2)。
【発明を実施するための形態】
【0014】
以下、本発明を実施するための形態について図面を参照しながら説明する。
【実施例1】
【0015】
図3は、本実施例の描画装置の概略的な特徴を説明する図の一例である。
【0016】
S1.上述したように、CPUはソフトウェアを実行してPDL(Page Description Language)フォーマットの印刷データを解析して中間言語で記述された描画コマンドをメインメモリ110の中間言語メモリ領域に書き込む。
【0017】
S2.描画装置100は、描画コマンドが書き込まれたメインメモリ110のアドレスをCPUから取得する。そして、描画コマンド解析装置は描画コマンドを解析する前に、描画コマンドがコマンドテーブルに搭載されているか否かを判定する。描画コマンドの種類は有限なので、コマンドテーブルに全ての描画コマンドをリストアップしておくことができる。したがって、コマンドテーブルの描画コマンドと一致しない描画コマンドは、中間言語メモリ領域に書き込まれる際にエラーが生じていると判断できる。
【0018】
S3.描画コマンド解析装置は、中間言語メモリ領域から読み出した描画コマンドがコマンドテーブルのコマンドと一致しない場合、エラー処理コマンド制御装置に通知する。 S4.エラー処理コマンド制御装置は、メインメモリ110のエラー処理コマンド領域からエラー処理コマンドを読み出して実行することで、白データを印刷するなどのエラー処理を行う。
【0019】
このように、中間言語メモリ領域に書き込まれた描画コマンドがコマンドテーブルに登録されているか否かを判断することで、エラーの発生を検出でき、異常画像をそのまま印刷することを防止でき、復帰制御など適切な対応を取ることが可能になる。
【0020】
〔構成例〕
図4は、画像形成装置200の構成図の一例を示す。画像形成装置200は、4つのトナーボトル11Y、11C、11M、11K(以下、区別しない場合トナーボトル11という)、4つの画像形成ユニット14Y、14C、14M、14K(以下、区別しない場合画像形成ユニット14という)、光書込装置18、中間転写ベルト12、給紙トレイ19、定着ユニット22等を有する。
【0021】
光書込装置18は、後述する描画装置100が生成した画像データを主走査方向の1ラインずつ取り出して、レーザ駆動部に出力する。レーザ駆動部は1ライン分の画像データによりレーザを変調して半導体レーザを駆動することで、感光体16にレーザ光を照射する。光書込装置18から照射されたレーザ光は感光体16の円筒の軸方向(主走査方向)を走査するので、感光体16の外周面に画像データに応じた静電潜像が書き込まれる。本実施例の描画装置100は、光書込装置18に画像データを供給するものである。
【0022】
画像形成ユニット14は、それぞれ中間転写ベルト12に各色のトナー画像を形成する。各画像形成ユニット14は、矢印方向へ回転駆動される感光体16Y、16C、16M、16K(以下、区別しない場合、感光体16という)の周囲に配置された帯電部27、現像部28、クリーニング部17等を有する。
【0023】
帯電部27は、ローラ状に形成された導電性部材を有し、この帯電部27にバイアス電圧が電源装置から供給されることにより感光体16の外周面が一様に帯電される。感光体16は、不図示のモータにより中間転写ベルト12と同じ表面速度に回転駆動される。
【0024】
現像部28は、感光体16へトナーボトル11が供給するトナーを感光体16の外周面に付着させることにより、感光体16上の静電潜像をトナー画像として顕像化する。
【0025】
中間転写ベルト12は、樹脂フィルム又はゴムを基体として形成されたループ状の無端ベルトである。中間転写ベルト12は、ローラにより支持されてローラを駆動するモータにより回転駆動される。中間転写ベルト12の内周面側には、各感光体16と対向する位置に4個の転写ローラ15Y、15C、15M、15Kが配置されている。
【0026】
中間転写ベルト12と感光体16Kは常時接触しているが、中間転写ベルト12と感光体16Y、16C、16Mは、不図示の接離機構により、接続状態と離間状態が制御される。転写ローラ15は、電源装置から供給される電力により転写電圧により電位差を生じさせ、各色のトナー画像を中間転写ベルト12上に転写させる。各色のトナー画像が中間転写ベルト12上に順次転写されることにより、中間転写ベルト12上にはカラーのトナー画像が担持される。
【0027】
クリーニング部18は感光体16から中間転写ベルト12にトナー画像が転写された後に残留したトナーを除去する。また、中間転写ベルト12の外周面側には転写媒体にカラーのトナー画像が転写された後に、残留したトナーや紙粉等をクリーニングするクリーニング装置13が配置されている。
【0028】
画像形成装置200の下方には、転写媒体(印刷用紙)を積層する給紙トレイ19が配置されている。給紙トレイ19内に積層されている転写媒体は、給紙ローラ20により最上位のものから順に分離給紙される。また、画像形成装置200の右側面には、開閉式の給紙トレイ19が設けられており、手差しされた転写媒体を積層するために使用される。
【0029】
給紙トレイ19又は開閉式の給紙トレイ19から分離給紙された転写媒体は搬送経路を搬送され、ニップ部29、定着ユニット22、及び、排紙トレイ23へと搬送される。
【0030】
レジストローラ30は、所定のタイミングで間欠的に回転駆動されるローラである。レジストローラ30は、レジストローラ30の位置まで搬送された転写媒体を、中間転写ベルト12上のトナー画像がニップ部29に到着するタイミングで、ニップ部29へ搬送する。転写媒体がニップ部29を通過する過程において、二次転写ローラ21が圧力と静電力により中間転写ベルト上12のトナー画像を転写媒体に転写する。
【0031】
定着ユニット22は、内部に定着ヒータ25を備えた定着ローラ24と、加圧ローラ9を有し、トナー画像が転写された転写媒体に対して熱と圧力を加えてトナーを溶融し、トナー画像を転写媒体に定着させる。定着ローラ24の表面の温度がサーミスタ26により検出されている。定着ユニット22を通過した転写媒体は、画像形成装置200の上面部に形成されている排紙トレイ23に排紙される。
【0032】
図4では、電子写真方式の画像形成装置200を例に説明したが、インクジェット方式の画像形成装置200も描画コマンドから階調処理された画像データを生成する点では同じなので、インクジェット方式の画像形成装置200に本実施例の描画装置100を適用できる。
【0033】
図5は、画像形成装置200の概略的なハードウェア構成図の一例を示す。図では、メインメモリ110へのアクセスを行うメモリコントローラ48に、CPU44、プリンタエンジン54、描画装置100、及び、メインメモリ110等が接続されている。この他、メインメモリ110にはパネル41、符号化装置52、及び、通信コントローラ47が接続されている。
【0034】
パネル41はユーザが画像形成装置200を操作する操作部とメニューを含む画面を表示するUIである。パネル41はユーザの操作を受け付けてパネルコントローラ42に通知する。パネルコントローラ42はユーザの操作に応じて予め定められた遷移順にパネル41に表示する画面を切り換える。また、パネルコントローラ42はパネル41が受け付けたユーザの操作をローカルI/F45に通知する。ローカルI/F45は割り込みなどの仕組みを利用して操作内容をCPU44に通知する。
【0035】
ローカルI/F45にはROM43が接続されている。ROM43には画像形成装置200の起動時に不図示のHDDからメインのプログラムを読み出してメインメモリ110に書き込むためのブートローダや、静的なパラメータ等が記憶されている。なお、ROM43にメインのプログラムを記憶しておくこともできる。
【0036】
CPU44はメインのプログラムを実行して、画像形成装置200の全体の制御を行う。本実施例のCPU44は少なくとも、PDLの印刷データを解析して描画コマンドをメインメモリ110に書き込む処理、及び、エラーの発生時に描画装置100から通知を受け取って印刷の停止・再開処理を行う。CPU I/F46はCPU44とメモリコントローラ48を切り離し、CPU44とメモリコントローラ48が通信する際に、CPU44とメモリコントローラ48が応答待ちなどにより待機状態とならないよう、互いの通信部分を司る。
【0037】
符号化装置52は、メインメモリ110に記憶されたバンドデータをJBIGなどの符号化方法で符号化し、メモリコントローラ48を介して、メインメモリ110の符号ページメモリ領域へ符号データを書き込む。復号装置51は、符号化装置52により符号化され書き込まれた符号データを、メモリコントローラ48を介して読み出し、復号する。復号装置51にはエンジンコントローラ53が接続されており、エンジンコントローラ53は、復号装置51で復号された画像データを受けとり、プリンタエンジン54へ転送する。エンジンコントローラ53は例えば図2の光書込装置18を画像データに応じて制御する。
【0038】
メモリコントローラ48は、ローカルI/F45、CPU I/F46、通信コントローラ47、復号装置51、符号化装置52、描画装置100、及び、メインメモリ110との間で、アクセス要求を調停しながら各種のデータの書き込み、読み出しを行う。メインメモリ110については次述するが、メインメモリ110にはPDLの印刷データ、描画コマンド、バンドデータ、符号化ページデータ、及び、メインのプログラム等が記憶される。
【0039】
描画装置100は、描画コマンドを解析して画像データに階調処理を施すことで2値化された画像データをメインメモリ110に書き込む。以下、この画像データをバンドデータという。描画装置100について詳細は後述する。
【0040】
画像形成装置200はPC300とネットワーク50を介して接続されている。通信コントローラ47は、ネットワーク50に接続してPC300から受信したPDLの印刷データを取得し、メインメモリ110に書き込む。通信コントローラ47は例えばイーサネットカードを挙げることができる。ネットワーク50は、ルータやL3スイッチを超えないLAN(VLANを含む)、ルータやL3スイッチを介してLAN同士が接続されたWAN、及び、インターネットを含むネットワークのいずれでもよい。また、有線接続、無線接続を問わない。
【0041】
〔画像処理手順〕
図6は、PDLの印刷データがプリンタエンジン54に送出されるまでの流れを説明する図の一例である。画像形成装置200は画像処理のステップ毎にメインメモリ110にアクセスしながら処理を進めていく。
【0042】
メインメモリ110は、予めいくつかの領域に区分されている。メインメモリ110は、例えば、SDRAMである。メモリコントローラ48は、1つのステップでは1つの種類のデータにアクセスするので、同種のデータは連続した領域に記憶された方が、アクセス効率が向上する。このため、メインメモリ110は、原則的に(何らかのエラー生じなければ)領域毎に記憶されるデータが固定されている。
【0043】
メインメモリ110の各領域は、例えばPDLメモリ領域、中間言語メモリ領域、バンドメモリ領域、符号ページメモリ領域、プログラム領域、ワーク領域、及び、その他の領域である。そして、本実施例の場合、余裕をもって用意されているその他の領域にエラー処理コマンド領域を有する。エラー処理コマンド領域は、描画装置100がエラーを検出した場合に、描画装置100が実行するコマンドである。
【0044】
なお、プログラム領域には、CPU44が実行するメインのプログラムが記憶され、ワーク領域には、CPU44などによる処理の中間結果が記憶される。
【0045】
PC上で動作しているアプリケーションが印刷する場合、プリンタドライバがPDL(ページ記述言語)で記述された印刷データを生成し、ネットワーク50を介して画像形成装置に送信する。画像形成装置200の通信コントローラ47は、PDLの印刷データを受け取り、メインメモリ110のPDLメモリ領域へ格納する。メモリコントローラ48は印刷データを記憶したこと及び先頭アドレスと印刷データのサイズを、CPU44に割り込みすることで通知する。
【0046】
CPU44はメインのプログラムを実行しており、印刷データを受信したことを検知すると、印刷データの印刷を開始する。まず、メインメモリ110のPDLメモリ領域からPDLの印刷データを読み出し解析して、中間言語による印刷データ(描画コマンド)を生成する。CPU44は生成した描画コマンドをメインメモリ110の中間言語メモリ領域に記憶する。CPU44は描画コマンドを生成したこと、及び、描画コマンドの先頭アドレスと描画コマンドのサイズを描画装置100に通知する。
【0047】
描画装置100は、メインメモリ110の描画コマンドを読み込み、描画コマンドを解析してバンドデータを生成する。描画装置100はバンドデータをメインメモリ110のバンドメモリ領域に書き込む。バンドメモリ領域は、1ページ分を副走査方向に8〜16等分したバンドサイズのメモリ容量を有する。描画コマンドについては後述するが、描画コマンドの実行により四角形、三角形等が描かれ、また、階調処理が行われ2値化されたバンドデータが生成される。描画装置100は、処理の状態をステータスレジスタでCPU44に通知する。
【0048】
CPU44はステータスレジスタによりバンドデータの書き込みの進捗を監視して、符号化装置52にバンドデータの符号化を要求する。符号化装置52は、メインメモリ110のバンドメモリ領域からバンドデータを読み出して、JBIGなどの2値画像の圧縮アルゴリズムにより符号化し、符号ページメモリ領域に記憶する。符号化装置52は、CPU44に要求されたバンドデータの符号化が終了するとCPU44に通知する。符号化ページメモリ領域は1ページ分の容量又は1バンド分以上の容量を有する。
【0049】
CPU44は1ページ分の符号化が終了すると、復号装置51に復号を要求する。復号装置51は、メインメモリ110に記憶されたバンドごとの符号からなる1ページ分の符号化データを読み込んで復号し、エンジンコントローラ53へ転送する。エンジンコントローラ53は、プリンタエンジン54を制御してプリンタエンジン54で印刷データの印刷を行う。
【0050】
〔描画コマンド〕
図7は、描画コマンドのリスト例を、図8は描画コマンドのフォーマット例を、それぞれ示す。
【0051】
4色カラープリンタの場合、4つのトナー画像が重畳して1つのカラー画像が生成されるため、描画コマンドはC、M、Y、Kの各色毎に用意される。
バンド初期化コマンド:バンドの先頭アドレスとバンドの高さと幅を定義している。
バンド初期化コマンドは1つが4×32bitのコマンド長であり、バンド初期化コマンドヘッダ、バンド先頭アドレス、バンド高さ、及び、バンド幅を有する。なお、NOP(No Operation)は何もしない命令を意味する。
描画階調定義コマンド:ハーフトンしきい値アドレス、描画階調値を定義している。
描画階調定義コマンドは1つが3×32bitのコマンド長であり、ハーフトンしきい値アドレス、及び、描画階調値を有する。
しきい値テーブルセットコマンド:ハーフトンパターンのX幅、Y幅と各画素ごとのしきい値テーブルのアドレスを定義している。
しきい値テーブルセットコマンドは、1つが3×32bitのコマンド長であり、しきい値テーブルセットコマンドヘッダ、ハーフトンパターンX幅、ハーフトンパターンY幅、及び、しきい値テーブルアドレスを有する。
四角形描画コマンド:指定された四角形の左上の座標から右下の座標までの四角形を定義する。
四角形描画コマンドは、1つが3×32bitのコマンド長であり、左上X座標、左上Y座標、右下X座標、及び、右下Y座標を有する。
三角形描画コマンド:指定された三角形の各端点座標の3角形を定義する。
三角形描画コマンドは、1つが4×32bitのコマンド長であり、3組の「端点X座標、端点Y座標」を有する。
バンド終了コマンド:バンドの終了を定義する。
バンド終了コマンドは、1つが1×32bitのコマンド長であり、バンド終了コマンドヘッダを有する。
【0052】
後述する、本実施例のコマンドテーブルには描画装置100が解析可能な全ての描画コマンドのコマンドヘッダが登録されている。なお、1つのバンドについて最初の描画コマンドはバンド初期化コマンドであり、最後の描画コマンドはバンド終了コマンドである。
【0053】
図9は、エラー処理コマンドの一例を説明する図の一例である。エラー処理コマンドは、例えば、以下の3つがある。
(1)白データ出力コマンド
図9(a)は白データ出力コマンドの一例を示す。白データ出力コマンドは、エラー検出後のバンドを白データとして出力するコマンドである。白データ出力コマンドは、1つが1×32bitのコマンド長である。
(2)反転データ出力コマンド
図9(b)は反転データ出力コマンドの一例を示す。反転データ出力コマンドは、描画中のバンドの白黒を反転して出力するコマンドである。反転データ出力コマンドは、1つが1×32bitのコマンド長である。
(3)エラー情報出力コマンド
図9(c)はエラー情報出力コマンドの一例を示す。エラー情報出力コマンドは、描画中のバンドにエラーメッセージを出力するコマンドである。エラー情報出力コマンドは、1つが2×32bitのコマンド長であり、エラー情報開始アドレス、及び、エラー情報終了アドレスを有する。エラー情報開始アドレスはエラー処理コマンド領域に記憶されているエラーメッセージの描画コマンドの先頭アドレスであり、エラー情報終了アドレスはエラーメッセージの描画コマンドの終了アドレスである。
【0054】
〔描画装置〕
図10は、描画装置100の構成図の一例である。描画装置100は、コントローラ108、エラー処理コマンド制御装置107、描画コマンド解析装置106、水平ライン変換装置105、水平ライン描画装置104、パラメータ記憶装置103、ハーフトンしきい値記憶装置102、及び、メモリコントローラI/F101を有する。
【0055】
メモリコントローラI/F101は、メモリコントローラ48と描画装置100との間のインタフェースである。メモリコントローラI/F101には、CPUから描画コマンドのアドレスが通知される。
【0056】
メインメモリ110からPDLの印刷データを読み出す際、メモリコントローラI/F101は、メモリリクエストをメモリコントローラ48に出力する。メモリコントローラ48は、メモリアクセスを調停して描画装置100がメインメモリ110にアクセスできるようになるとメモリアックをメモリI/Fに返す。
【0057】
メモリコントローラI/F101は、R/W信号で読み出し(R)を指定し、PDLの印刷データのメモリアドレスをメモリコントローラ48に出力する。
【0058】
メモリコントローラ48はメインメモリ110の指定されたアドレスからPDLの印刷データを読み出して、メモリコントローラI/F101に出力する。
【0059】
また、メインメモリ110にバンドデータを書き込む際、メモリコントローラI/F101は、メモリリクエストをメモリコントローラ48に出力する。メモリコントローラ48は、メモリアクセスを調停して描画装置100がメインメモリ110にアクセスできるようになるとメモリアックをメモリI/Fに返す。
【0060】
メモリコントローラI/F101は、R/W信号で書き込み(W)を指定し、バンドデータのメモリアドレスをメモリコントローラ48に出力する。メモリコントローラ48はメインメモリ110の指定されたアドレスにバンドデータを書き込む。
【0061】
コントローラ108は、描画装置100の処置手順の全体を制御する。本実施例では、描画コマンド解析装置106がエラーを検出した場合に、コントローラ108はCPU44に割り込みして通知する。また、コントローラ108は、ページカウンタ130を有する。ページカウンタ130は、描画したバンド数をカウントして、予め既知の1ページ分に相当するバンド数のバンドの描画が完了する毎にページ数を1つインクリメントする。これにより、エラーの生じたページを特定できるようになる。
【0062】
描画コマンド解析装置106は、メモリコントローラI/F101がメインメモリ110から取得した描画コマンドを解析し、描画コマンドに応じた処理を行う。
・バンド初期化コマンドを取得した場合、描画コマンド解析装置106は、バンド先頭アドレス、バンド高さ及びバンド幅をパラメータ記憶装置103へ記憶させる。
・描画階調定義コマンドを取得した場合、描画コマンド解析装置106は、描画階調値をパラメータ記憶装置103へ記憶させ、ハーフトンしきい値アドレスで指定されたハーフトンしきい値記憶装置102に出力する。水平ライン描画装置104は、ハーフトンしきい値記憶装置102からハーフトンしきい値を読み込み、描画階調値で2値化する。
・しきい値テーブルセットコマンドを取得した場合、描画コマンド解析装置106は、ハーフトンパターンのX幅、Y幅をパラメータ記憶装置103へ記憶し、しきい値テーブルアドレスの示すメインメモリ110のワーク領域のしきい値テーブルを読み込み、ハーフトンしきい値記憶装置102へ書き込む。
・四角形描画コマンドヘッダを取得した場合、描画コマンド解析装置106は、四角形コマンドと四角形の左上X座標、Y座標、右下のX座標、Y座標を水平ライン変換装置105に出力する。
・三角形描画コマンドヘッダを取得した場合、描画コマンド解析装置106は、三角形コマンドと三角形の3つの端点の座標を水平ライン変換装置105に出力する。
・バンド終了コマンドを取得した場合、描画コマンド解析装置106は、バンドの描画を終了する。
【0063】
描画コマンド解析装置106は、描画コマンドが適正か否かを判定するため、コマンドテーブル120を有している。コマンドテーブル120には、描画装置100が解析可能な全ての描画コマンドのコマンドヘッダが登録されている。コマンドテーブル120は、ROM43又は不図示のHDDに記憶されており、画像形成装置200の起動時に、例えばメインのプログラムが初期設定として描画コマンド解析装置106のレジスタに書き込む。
【0064】
水平ライン変換装置105は、描画コマンド解析装置106から描画コマンドを取得して水平ラインへ変換し、水平ラインのパラメータである水平ラインY値、水平ライン始点値及び水平ライン終点値を水平ライン描画装置104へ出力する。
【0065】
水平ライン描画装置104は、水平ライン変換装置105から取得した水平ラインのパラメータに基づき、水平ラインを描画する。水平ライン描画装置104は、ハーフトンしきい値記憶装置102からハーフトンしきい値を読み込み、描画階調値で2値化しハーフトンパターンを生成する。このハーフトンパターンと、パラメータにより指示される水平ラインの描画マスクとのAND計算を行い、描画パターンを生成する。この描画パターンがバンドデータとなる。
【0066】
描画コマンド解析装置106は、描画コマンドの解析の1つとして、メモリコントローラI/F101が取得した描画コマンドがコマンドテーブル120に登録されているか否かを判定する。メインメモリ110から読み出した描画コマンドがコマンドテーブル120に登録されていない場合、エラー処理コマンド制御装置107にエラー検出を通知する。また、描画コマンド解析装置106は、メインメモリ110から読み出した描画コマンドがコマンドテーブル120に登録されていない場合、エラー情報を例えばパラメータ記憶装置103に記憶しておく。エラー情報は、
・エラーを検出した描画コマンド
・中間言語メモリ領域のアドレス
・エラーの種類(この場合はコマンドエラー)
などである。
【0067】
エラー情報を記憶しておくことで、後にCPU44がエラー情報を読み出し、どのようなエラーが生じたのかをHDD等に記録することができる。また、エラーの種類は、実施例2のエラーの検出方法により検出されたエラーと区別するための情報であり、どのようなエラーが検出されたかを後に解析することを可能にする。
【0068】
エラー検出の通知を受けると、エラー処理コマンド制御装置107は、エラー処理コマンド領域のエラー処理コマンドを読み出し、エラー処理を実行する。
(1)白データ出力コマンド
白データ出力コマンドを読み出した場合、エラー処理コマンド制御装置107は、バンドの全体又はバンドのエラー検出後の領域を白画素に設定する。具体的には、前者の場合、すでにメインメモリ110のバンドメモリ領域に書き込んだバンドデータを含め、バンドの全体に白画素"1"を上書きする。後者の場合、すでにメインメモリ110のバンドメモリ領域に書き込んだバンドデータの末尾から、バンド高さに相当するアドレスまで、白画素"1"を書き込む。
(2)反転データ出力コマンド
反転データ出力コマンドを読み出した場合、エラー処理コマンド制御装置107は、バンドの全体又はバンドのエラー検出までの領域の白黒を反転する。具体的には、前者の場合、エラー検出の後も、描画コマンド解析装置106は描画コマンドの解析とバンドメモリ領域へのバンドデータの書き込みを継続する。描画コマンド解析装置106がバンド終了コマンドヘッダを読み出すと、エラー処理コマンド制御装置107はバンドメモリ領域から書き込んだバンドデータを順次、読み出し、白画素"1"を黒画素"0"に、黒画素"0"を白画素"1"にそれぞれ反転する。
【0069】
後者の場合、エラー処理コマンド制御装置107は、すでにメインメモリ110のバンドメモリ領域に書き込んだバンドデータを、バンドメモリ領域から順次、読み出し、白画素"1"を黒画素"0"に、白画素"0"を黒画素"1"にそれぞれ反転する。エラー検出後からバンド領域の残りの領域には白画素"1"を書き込む。
(3)エラー情報出力コマンド
エラー情報出力コマンドを読み出した場合、エラー処理コマンド制御装置107は、エラー情報開始アドレスから描画コマンドを読み出し、描画コマンド解析装置106に描画処理を要求する。エラー情報開始アドレスからエラー情報終了アドレスまで描画コマンドを読み出し、水平ライン変換装置105,水平ライン描画装置104が描画処理することで、エラーメッセージが描画される。
【0070】
エラー処理コマンド制御装置107は、エラー処理を終了するとコントローラ108に通知する。コントローラ108はCPU44に割り込み、エラー発生を通知する。
【0071】
〔ソフトウェアの機能ブロック〕
図11はCPU44が実行するソフトウェアの機能ブロック図の一例を示す。描画制御部441は、PDLの印刷データの印刷から出力までの一連の処理を制御する。すなわち、PDLの印刷データがメインメモリ110に書き込まれると、描画制御部441は印刷を開始する。まず、描画制御部441は、描画コマンド生成部442に処理を要求する。
【0072】
描画コマンド生成部442はメインメモリ110に記憶されたPDLの印刷データを解析して描画コマンドを生成し、メインメモリ110に書き込む。描画コマンド生成部442は、バンド幅分以上の中間言語の印刷データを生成すると、描画装置100にバンドデータの生成を要求する。
【0073】
この後、描画制御部441は、ステータスレジスタにより描画装置100の描画処理の進捗を監視し、描画コマンド生成部442に中間言語メモリ領域を更新させたり、符号化装置52にバンドデータの符号化を要求する。描画制御部441は、PDLの印刷データを全て読み出し、描画コマンドの生成、バンドデータの生成、符号化、復号、及び、印刷までの処理が終了すると終了する。
【0074】
また、描画制御部441は、描画装置100からエラー検出が通知されると、描画停止部443に描画を停止させる。描画停止部443は描画装置100の所定のポートをHレベルにしたり、描画装置100のコントローラに命令を書き込むなどして描画を停止させる。
【0075】
また、描画制御部441は、描画装置100からエラー検出が通知されると、エラー情報読み取り部444に、描画装置100からエラー情報を読み取るように要求する。エラー情報読み取り部444は描画装置100のパラメータ記憶装置103からエラー情報を読み取り、HDDなどの不揮発メモリに記録する。こうすることで、画像形成装置200の電源が落ちたり再起動しても、エラー情報を保持できる。
【0076】
描画制御部441は、エラー情報読み取り部444がエラー情報を読み出すと、印刷再開部445に印刷の再開を要求する。印刷再開部445は、描画装置100のコントローラ108からエラーの生じたページ番号を取得して、描画制御部441に通知する。描画制御部441は描画コマンド生成部442に対し、エラーの生じたページのPDLの印刷データから、再度、描画コマンドを生成させる。これによりエラーの生じたページから印刷を再開できる。
【0077】
〔動作手順〕
図12は、描画装置がバンドデータを描画する手順を示すフローチャート図の一例を示す。
【0078】
描画装置100はメインメモリ110から描画コマンドを読み出す(S10)。描画コマンドは1つずつ読み出してもよいし、複数個をまとめて読み出してもよい。複数個読み出された場合は、不図示のバッファにキューイングされる。
【0079】
描画コマンド解析装置106は、読み出した描画コマンドがコマンドテーブル120に登録されているか否かを判定する(S20)。読み出した描画コマンドがコマンドテーブル120に登録されている場合(S20のYes)、描画コマンド解析装置106は描画コマンドを解析して従来どおりの処理を行う(S30)。
【0080】
読み出した描画コマンドがコマンドテーブル120に登録されていない場合(S20のNo)、描画コマンド解析装置106はパラメータ記憶装置103にエラー情報を書き込む(S40)。また、描画コマンド解析装置106はエラー処理コマンド制御装置107にエラー検出を通知する。
【0081】
エラー処理コマンド制御装置107は、エラー処理コマンドをメインメモリ110から読み出してエラー処理を実行する(S50)。エラー処理コマンドは白データ出力コマンド、反転データ出力コマンド、エラー情報出力コマンドのいずれかであるが、白データ出力コマンドに続けてエラー情報出力コマンドを実行するなど、適宜組み合わせることもできる。
【0082】
次に、エラー処理コマンド制御装置107はコントローラ108にエラー検出を通知するので、コントローラ108がCPU44に割り込みする(S60)。この後、描画装置100の動作は、CPU44により制御される。
【0083】
CPU44は割込みにより描画停止部443を動作させる(S110)。
【0084】
描画停止部443は、描画装置100の描画処理を停止させる(S120)。
【0085】
また、CPU44はエラー検出の割込みにより、1ページの途中までであってもバンドデータが得られている範囲で、印刷までの工程を行う。このため、描画制御部441は、符号化装置52にバンドデータの符号化を要求し、符号化が終了すると復号装置51に復号を要求して、用紙に画像データを印刷する。
【0086】
次に、エラー情報読み取り部444は描画装置100からエラー情報を読み取る(S130)。CPU44はエラー情報を不図示のHDD等に記憶する。
【0087】
また、印刷再開部445は、描画装置100からページ番号を読み出して、印刷を再開する(S140)。すなわち、描画コマンド生成部442は、エラーの生じたページのPDLの印刷データから、再度、描画コマンドを生成する。なお、描画停止部443は、描画装置100に対し描画処理の停止を解除する。これにより、メインメモリに書き込まれる際にエラーが生じたページから印刷が再開される。
【0088】
〔エラー処理による出力例〕
図13は、描画装置100がエラーを検出した場合に印刷される出力例を示す図である。図13(a)は白データ出力コマンドによる出力例を、図13(b)は反転データ出力コマンドによる出力例を、図13(c)はエラー情報出力コマンドによる出力例を、それぞれ示す。
【0089】
エラー処理コマンドが白データ出力コマンドの場合、バンドの全体を白データとして出力するコマンドであるとすると、エラーが検出されたバンドには何も印字されない。
【0090】
エラー処理コマンドが反転データ出力コマンドの場合、エラーが検出されたバンドの全体の白黒を反転させて出力するコマンドであるとすると、エラーが検出されたバンドは白黒が反転して印字される。図13(b)では、PCから送信された印刷データに含まれない"#"が印字されているが、このようなわずかなエラー(文字化け)はユーザも気付きにくい。しかし、図13(b)のように白黒反転して印字することで、ユーザはエラーが発生したことを一目で把握でき、どのようなエラーが生じたかを確認できる。
【0091】
エラー処理コマンドがエラー情報出力コマンドの場合、エラーが生じたバンドにエラーメッセージが印字される。図13(c)では「Error」と印字されているが、エラーが生じたことを示すメッセージであればよい。また、言葉や単語で印字するのでなく、「1234」のようなエラーコードを印字してもよい。この場合、ユーザがエラーコードを画像形成装置200の販売店やサポートセンタに連絡すれば、サポートセンタがどのようなエラーが発生したかを解析できる。
【0092】
以上説明したように、本実施例の描画装置100は、中間言語メモリ領域に書き込まれた描画コマンドがコマンドテーブル120に登録されているか否かを判断することで、エラーの発生を検出できる。エラーの発生が検出された場合、用紙に形成される画像を制御し、印刷を停止するのでユーザはエラーが発生したことを把握できる。また、エラー情報を記録するので、どのようなエラーが生じたか後に解析することができる。また、エラーの発生したページから印刷を再開するので利便性を向上できる。
【実施例2】
【0093】
実施例1にて説明したように、描画装置100にエラーが生じる場合、CPU44が中間言語メモリ領域に書き込む描画コマンドが本来のものと異なることが多い。しかし、このような現象以外に、CPU44が中間言語メモリ領域に書き込むべき描画コマンドを別の領域(例えば、PDLメモリ領域や符号ページメモリ領域)に跨って書き込んだり、全く別のメモリ領域に書き込む現象が発生する場合がある。例えば、CPU44が参照するポインタが正しくないような場合、CPU44がアクセスするメインメモリ110のアドレスが想定外のものとなることがある。中間言語メモリ領域外に描画コマンドが書き込まれと、描画コマンドがメインメモリの他のデータにより破壊されたり、逆にメインメモリの他のデータが描画コマンドにより破壊されるおそれがあり、異常画像が印刷されるおそれがある。
【0094】
そこで、本実施例ではCPU44が中間言語メモリ領域外に描画コマンドを書き込んだことを検出できる描画装置100について説明する。
【0095】
図14は、本実施例の描画装置100の概略的な特徴を説明する図の一例である。中間言語メモリ領域は固定なので、描画装置100に中間言語メモリ領域の開始アドレスと終了アドレスを設定しておけば、描画装置100は描画コマンドが中間言語メモリ領域に書き込まれたか否かを判定できる。例えば、画像形成装置200の起動時に、メインのプログラムが初期設定としてメモリコントローラI/F101に中間言語メモリ領域の開始アドレスと終了アドレスを設定しておく。
【0096】
上記のように、CPU44は、描画装置100に描画コマンドの解析を要求する際、描画コマンドの先頭アドレスを通知する。
(i) したがって、メモリコントローラI/F101は、描画コマンドの先頭アドレスが中間言語メモリ領域の開始アドレスと終了アドレス内か否かにより、中間言語メモリ領域外に描画コマンドが書き込まれたか否かを検出できる。
(ii) また、メモリコントローラI/F101は、メモリコントローラ48に出力するメモリアドレスが、中間言語メモリ領域か否かに基づき、中間言語メモリ領域外に描画コマンドが書き込まれたか否かを検出できる。メモリコントローラI/F101は、CPU44が描画装置100に通知した描画コマンドの先頭アドレスから、バンド終了コマンドヘッドまで描画コマンドを読み出す。したがって、メモリコントローラI/F101は、メモリコントローラ48に出力するメモリアドレスが、中間言語メモリ領域か否かに基づき、エラーの発生を検出することができる。この場合、メモリコントローラI/F101はメモリコントローラ48に読み出しを要求する毎にエラーが発生したか否かを判定することができる。
【0097】
図15は、本実施例の描画装置100の構成図の一例である。図15において図10と同一部には同一の符号を付しその説明は省略する。図15の描画装置100が有するブロックは図10と同様であるが、メモリコントローラI/F101が開始アドレスと終了アドレスを記憶している。また、メモリコントローラI/F101とエラー処理コマンド制御装置107,及び、パラメータ記憶装置103が接続されている。
【0098】
メモリコントローラI/F101は、エラーを検出すると、エラー情報を例えばパラメータ記憶装置103に記憶しておく。エラー情報は、
・中間言語メモリ領域のアドレス
・エラーの種類(この場合はアドレスエラー)
などである。
【0099】
エラー情報を記憶しておくことで、後にCPU44がエラー情報を読み出し、どのようなエラーが生じたのかを記録することができる。また、エラーの種類により、描画コマンド解析装置106が検出したコマンドエラーが検出されたのか、メモリコントローラI/F101が検出したアドレスエラーが検出されたのかを、サポートセンタなどが解析時に判別できる。
【0100】
また、メモリコントローラI/F101はエラーを検出すると、エラー処理コマンド制御装置107にエラー検出を通知する。
【0101】
エラー処理コマンド制御装置107は、エラー処理コマンド領域のエラー処理コマンドを読み出し、エラー処理を実行する。エラー処理は、上記の(1)〜(3)と同様である。ただし、エラーの種類を印刷された用紙から判定するため、コマンドエラーとアドレスエラーにより、エラー処理を替えてもよい。例えば、コマンドエラーの場合は(1)をエラー処理とし、アドレスエラーの場合は(2)をエラー処理とする。または、コマンドエラー及びアドレスエラーをいずれも(3)をエラー処理とするが、コマンドエラーかアドレスエラーかによってメッセージを切り換える。こうすることで、サポートセンタなどはどのようエラーが発生したかを容易に判別できる。
【0102】
図16は、描画装置がバンドデータを描画する手順を示すフローチャート図の一例を示す。図16の手順はステップS5が追加されている以外は、図12とほぼ同様である。
【0103】
すなわち、メモリコントローラI/F101は、描画コマンドを読み出すために、メモリコントローラ48に出力するメモリアドレスが、中間言語メモリ領域内に記憶されているか否かを判定する(S5)。
【0104】
中間言語メモリ領域内の場合(S5のYes)、図12と同様に描画コマンドが読み出され、コマンドエラーの検出等の処理が実行される。
【0105】
中間言語メモリ領域内でない場合(S5のNo)、処理はステップS40に進み実施例1と同様に処理される。すなわち、メモリコントローラI/F101はエラー情報を書き込む(S40)。エラー処理コマンド制御装置107は、エラー処理コマンドをメインメモリ110から読み出してエラー処理を実行する(S50)。エラー処理コマンド制御装置107はコントローラ108にエラー検出を通知するので、コントローラ108がCPU44に割り込みする(S60)。この後、描画装置100の動作は、CPU44により制御される。
【0106】
なお、本実施例では実施例1のコマンドエラーと組み合わせて説明したが、アドレスエラーの検出機能のみを描画装置100に搭載することもできる。
【0107】
以上説明したように、本実施例の描画装置100によれば、実施例1の効果に加え、エラーの検出範囲を拡大することができる。
【符号の説明】
【0108】
44 CPU
47 通信コントローラ
48 メモリコントローラ
51 復号装置
52 符号化装置
53 エンジンコントローラ
54 プリンタエンジン
100 描画装置
110 メインメモリ
101 メモリコントローラI/F
106 描画コマンド解析装置
107 エラー処理コマンド制御装置
108 コントローラ
200 画像形成装置
300 PC
【先行技術文献】
【特許文献】
【0109】
【特許文献1】特開2006−121437号公報
【技術分野】
【0001】
メモリに書き込まれた描画コマンドを解析して階調処理後の画像データをメモリに書き込む画像処理装置に関する。
【背景技術】
【0002】
デジタル複写機やプリンタなどの画像形成装置は、PC(Personal Computer)から送信された印刷データに多くの画像処理プロセスを施して用紙などの記録媒体に出力する。
【0003】
図1は一般的な画像処理プロセスを説明する図の一例である。
1.PC上のアプリケーションがOSやプリンタドライバを利用してPDL(ページ記述言語)を生成しメモリに書き込むプロセス
2.画像形成装置のCPU(ソフトウェア)がPDLの印刷データを解析して中間言語で記述された描画コマンドを生成しメモリに書き込むプロセス
3.描画装置が描画コマンドを解析し、階調処理後(2値化された)の画像データ(バンドデータ)をメモリへ書き込むプロセス
4.符号化装置が、2値画像を圧縮アルゴリズム(JBIGなど)により符号化しメモリに書き込むプロセス、
5.復号装置が、メモリから符号化された画像データを読み込み復号し、C,M,Y,Kの各版に対応するラスタデータをプリンタエンジンに転送するプロセス
このような画像処理プロセスは、解像度の増加やカラー化が進むにつれ、また、印刷時間を短縮するという要求に伴い、さらなる高速化が求められており、高速化を図った技術が提案されている(例えば、特許文献1参照。)。特許文献1には、描画ワードX幅のハーフトンパターンをハーフトンパターンのY幅分記憶しておくことで、高速化する画像処理装置が開示されている。同じ階調値である描画オブジェクトに対して効率よくハーフトンパターンを使用することができるので、画像処理を高速化できる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の描画装置は、画像処理中に生じ得るエラーを検出する手段がなく、ソフトウェアが機器を停止するなどのエラー制御ができないという問題がある。
【0005】
画像形成装置はプリンタ機能だけでなく、スキャナ機能、コピー機能、ファクシミリ機能等、複数の機能を搭載する多機能化が進んでおり、各機能のジョブを受け付けるアプリが搭載されている。このため、例えば、プリンタアプリが印刷している間に、コピーアプリが起動されるなど、複数のアプリが並行に実行されることがある。各アプリがジョブを実行する際、競合しないようにソフト・ハードのリソースの使用権限が調停される。しかし、例えば複数のアプリのメモリへの書き込みタイミング等により、ソフトウェアが描画コマンドをメモリに書き込む際に、描画コマンドがデータ化けするおそれがあることが知られている。
【0006】
また、メモリへの書き込みにソフトウェアはポインタの示すアドレスを使用するが、ポインタの不整合などにより、本来書き込むべき領域(アドレス)でない領域にソフトウェアが描画コマンドを書き込むおそれがある。
【0007】
描画装置は、ソフトウェアが誤ってデータ化けさせた描画コマンドを解析して階調処理したり、ソフトウェアが想定外の領域に描画処理コマンドを書き込んだことを検出する手段を有しておらず、画像処理を継続してしまう。この場合、画像形成装置が異常画像をプリントアウトすることになる。
【0008】
図2(a)(b)は異常画像を模式的に説明する図の一例である。例えば、印刷データが"A"という文字の場合、エラーが発生しなければ、図2(a)の左の図のように"A"という文字が印刷される。これに対し、例えば図示する位置でエラーが発生した場合、本来、斜めに描画されるラインがエラー発生時の位置から直線になるなどの印刷結果が得られる場合がある。
【0009】
また、例えば、印字データが文章の場合、エラーが発生しなければ、図2(a)の左の図のように印刷データに従った文字や記号が印刷される。これに対し、何らかのエラーが発生した場合、一部に文脈からは明らかにおかしい文字や記号が印刷される。大部分の文章は異常がないため、図2(b)のような異常画像はユーザも気付きにくく、後になって再印刷が必要であることに気付くという事態が起こる。
【0010】
本発明は、上記課題に鑑み、描画処理が読み出すメモリに書き込みエラーが生じた場合に異常画像などの印刷を抑制できる画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【0011】
上記課題を解決するため、本発明は、 メモリに書き込まれた描画コマンドを解析して画像データに階調処理を施す画像処理装置であって、描画コマンドを解析する描画コマンド解析手段と、全ての前記描画コマンドが登録された描画コマンドテーブルと、エラー処理コマンドが記憶されたエラー処理コマンド記憶手段と、メモリから読み出した描画コマンドが前記描画コマンドテーブルに登録されていないコマンドエラーを前記描画コマンド解析手段が検出した場合、前記エラー処理コマンド記憶手段に記憶されたエラー処理コマンドを実行してエラー処理を実行するエラー処理実行手段と、を有することを特徴とする。
【発明の効果】
【0012】
描画処理が読み出すメモリに書き込みエラーが生じた場合に異常画像などの印刷を抑制できる画像処理装置を提供することができる。
【図面の簡単な説明】
【0013】
【図1】一般的な画像処理プロセスを説明する図の一例である。
【図2】異常画像を模式的に説明する図の一例である。
【図3】描画装置の概略的な特徴を説明する図の一例である。
【図4】画像形成装置の構成図の一例である。
【図5】画像形成装置の概略的なハードウェア構成図の一例である。
【図6】PDLの印刷データがプリンタエンジンに送出されるまでの流れを説明する図の一例である。
【図7】描画コマンドのリスト例を示す図である。
【図8】描画コマンドのフォーマット例を示す図である。
【図9】エラー処理コマンドの一例を説明する図の一例である。
【図10】描画装置の構成図の一例である。
【図11】CPUが実行するソフトウェアの機能ブロック図の一例である。
【図12】描画装置がバンドデータを描画する手順を示すフローチャート図の一例である。
【図13】描画装置がエラーを検出した場合に印刷される出力例を示す図である。
【図14】描画装置の概略的な特徴を説明する図の一例である(実施例2)。
【図15】描画装置の構成図の一例である(実施例2)。
【図16】描画装置がバンドデータを描画する手順を示すフローチャート図の一例である(実施例2)。
【発明を実施するための形態】
【0014】
以下、本発明を実施するための形態について図面を参照しながら説明する。
【実施例1】
【0015】
図3は、本実施例の描画装置の概略的な特徴を説明する図の一例である。
【0016】
S1.上述したように、CPUはソフトウェアを実行してPDL(Page Description Language)フォーマットの印刷データを解析して中間言語で記述された描画コマンドをメインメモリ110の中間言語メモリ領域に書き込む。
【0017】
S2.描画装置100は、描画コマンドが書き込まれたメインメモリ110のアドレスをCPUから取得する。そして、描画コマンド解析装置は描画コマンドを解析する前に、描画コマンドがコマンドテーブルに搭載されているか否かを判定する。描画コマンドの種類は有限なので、コマンドテーブルに全ての描画コマンドをリストアップしておくことができる。したがって、コマンドテーブルの描画コマンドと一致しない描画コマンドは、中間言語メモリ領域に書き込まれる際にエラーが生じていると判断できる。
【0018】
S3.描画コマンド解析装置は、中間言語メモリ領域から読み出した描画コマンドがコマンドテーブルのコマンドと一致しない場合、エラー処理コマンド制御装置に通知する。 S4.エラー処理コマンド制御装置は、メインメモリ110のエラー処理コマンド領域からエラー処理コマンドを読み出して実行することで、白データを印刷するなどのエラー処理を行う。
【0019】
このように、中間言語メモリ領域に書き込まれた描画コマンドがコマンドテーブルに登録されているか否かを判断することで、エラーの発生を検出でき、異常画像をそのまま印刷することを防止でき、復帰制御など適切な対応を取ることが可能になる。
【0020】
〔構成例〕
図4は、画像形成装置200の構成図の一例を示す。画像形成装置200は、4つのトナーボトル11Y、11C、11M、11K(以下、区別しない場合トナーボトル11という)、4つの画像形成ユニット14Y、14C、14M、14K(以下、区別しない場合画像形成ユニット14という)、光書込装置18、中間転写ベルト12、給紙トレイ19、定着ユニット22等を有する。
【0021】
光書込装置18は、後述する描画装置100が生成した画像データを主走査方向の1ラインずつ取り出して、レーザ駆動部に出力する。レーザ駆動部は1ライン分の画像データによりレーザを変調して半導体レーザを駆動することで、感光体16にレーザ光を照射する。光書込装置18から照射されたレーザ光は感光体16の円筒の軸方向(主走査方向)を走査するので、感光体16の外周面に画像データに応じた静電潜像が書き込まれる。本実施例の描画装置100は、光書込装置18に画像データを供給するものである。
【0022】
画像形成ユニット14は、それぞれ中間転写ベルト12に各色のトナー画像を形成する。各画像形成ユニット14は、矢印方向へ回転駆動される感光体16Y、16C、16M、16K(以下、区別しない場合、感光体16という)の周囲に配置された帯電部27、現像部28、クリーニング部17等を有する。
【0023】
帯電部27は、ローラ状に形成された導電性部材を有し、この帯電部27にバイアス電圧が電源装置から供給されることにより感光体16の外周面が一様に帯電される。感光体16は、不図示のモータにより中間転写ベルト12と同じ表面速度に回転駆動される。
【0024】
現像部28は、感光体16へトナーボトル11が供給するトナーを感光体16の外周面に付着させることにより、感光体16上の静電潜像をトナー画像として顕像化する。
【0025】
中間転写ベルト12は、樹脂フィルム又はゴムを基体として形成されたループ状の無端ベルトである。中間転写ベルト12は、ローラにより支持されてローラを駆動するモータにより回転駆動される。中間転写ベルト12の内周面側には、各感光体16と対向する位置に4個の転写ローラ15Y、15C、15M、15Kが配置されている。
【0026】
中間転写ベルト12と感光体16Kは常時接触しているが、中間転写ベルト12と感光体16Y、16C、16Mは、不図示の接離機構により、接続状態と離間状態が制御される。転写ローラ15は、電源装置から供給される電力により転写電圧により電位差を生じさせ、各色のトナー画像を中間転写ベルト12上に転写させる。各色のトナー画像が中間転写ベルト12上に順次転写されることにより、中間転写ベルト12上にはカラーのトナー画像が担持される。
【0027】
クリーニング部18は感光体16から中間転写ベルト12にトナー画像が転写された後に残留したトナーを除去する。また、中間転写ベルト12の外周面側には転写媒体にカラーのトナー画像が転写された後に、残留したトナーや紙粉等をクリーニングするクリーニング装置13が配置されている。
【0028】
画像形成装置200の下方には、転写媒体(印刷用紙)を積層する給紙トレイ19が配置されている。給紙トレイ19内に積層されている転写媒体は、給紙ローラ20により最上位のものから順に分離給紙される。また、画像形成装置200の右側面には、開閉式の給紙トレイ19が設けられており、手差しされた転写媒体を積層するために使用される。
【0029】
給紙トレイ19又は開閉式の給紙トレイ19から分離給紙された転写媒体は搬送経路を搬送され、ニップ部29、定着ユニット22、及び、排紙トレイ23へと搬送される。
【0030】
レジストローラ30は、所定のタイミングで間欠的に回転駆動されるローラである。レジストローラ30は、レジストローラ30の位置まで搬送された転写媒体を、中間転写ベルト12上のトナー画像がニップ部29に到着するタイミングで、ニップ部29へ搬送する。転写媒体がニップ部29を通過する過程において、二次転写ローラ21が圧力と静電力により中間転写ベルト上12のトナー画像を転写媒体に転写する。
【0031】
定着ユニット22は、内部に定着ヒータ25を備えた定着ローラ24と、加圧ローラ9を有し、トナー画像が転写された転写媒体に対して熱と圧力を加えてトナーを溶融し、トナー画像を転写媒体に定着させる。定着ローラ24の表面の温度がサーミスタ26により検出されている。定着ユニット22を通過した転写媒体は、画像形成装置200の上面部に形成されている排紙トレイ23に排紙される。
【0032】
図4では、電子写真方式の画像形成装置200を例に説明したが、インクジェット方式の画像形成装置200も描画コマンドから階調処理された画像データを生成する点では同じなので、インクジェット方式の画像形成装置200に本実施例の描画装置100を適用できる。
【0033】
図5は、画像形成装置200の概略的なハードウェア構成図の一例を示す。図では、メインメモリ110へのアクセスを行うメモリコントローラ48に、CPU44、プリンタエンジン54、描画装置100、及び、メインメモリ110等が接続されている。この他、メインメモリ110にはパネル41、符号化装置52、及び、通信コントローラ47が接続されている。
【0034】
パネル41はユーザが画像形成装置200を操作する操作部とメニューを含む画面を表示するUIである。パネル41はユーザの操作を受け付けてパネルコントローラ42に通知する。パネルコントローラ42はユーザの操作に応じて予め定められた遷移順にパネル41に表示する画面を切り換える。また、パネルコントローラ42はパネル41が受け付けたユーザの操作をローカルI/F45に通知する。ローカルI/F45は割り込みなどの仕組みを利用して操作内容をCPU44に通知する。
【0035】
ローカルI/F45にはROM43が接続されている。ROM43には画像形成装置200の起動時に不図示のHDDからメインのプログラムを読み出してメインメモリ110に書き込むためのブートローダや、静的なパラメータ等が記憶されている。なお、ROM43にメインのプログラムを記憶しておくこともできる。
【0036】
CPU44はメインのプログラムを実行して、画像形成装置200の全体の制御を行う。本実施例のCPU44は少なくとも、PDLの印刷データを解析して描画コマンドをメインメモリ110に書き込む処理、及び、エラーの発生時に描画装置100から通知を受け取って印刷の停止・再開処理を行う。CPU I/F46はCPU44とメモリコントローラ48を切り離し、CPU44とメモリコントローラ48が通信する際に、CPU44とメモリコントローラ48が応答待ちなどにより待機状態とならないよう、互いの通信部分を司る。
【0037】
符号化装置52は、メインメモリ110に記憶されたバンドデータをJBIGなどの符号化方法で符号化し、メモリコントローラ48を介して、メインメモリ110の符号ページメモリ領域へ符号データを書き込む。復号装置51は、符号化装置52により符号化され書き込まれた符号データを、メモリコントローラ48を介して読み出し、復号する。復号装置51にはエンジンコントローラ53が接続されており、エンジンコントローラ53は、復号装置51で復号された画像データを受けとり、プリンタエンジン54へ転送する。エンジンコントローラ53は例えば図2の光書込装置18を画像データに応じて制御する。
【0038】
メモリコントローラ48は、ローカルI/F45、CPU I/F46、通信コントローラ47、復号装置51、符号化装置52、描画装置100、及び、メインメモリ110との間で、アクセス要求を調停しながら各種のデータの書き込み、読み出しを行う。メインメモリ110については次述するが、メインメモリ110にはPDLの印刷データ、描画コマンド、バンドデータ、符号化ページデータ、及び、メインのプログラム等が記憶される。
【0039】
描画装置100は、描画コマンドを解析して画像データに階調処理を施すことで2値化された画像データをメインメモリ110に書き込む。以下、この画像データをバンドデータという。描画装置100について詳細は後述する。
【0040】
画像形成装置200はPC300とネットワーク50を介して接続されている。通信コントローラ47は、ネットワーク50に接続してPC300から受信したPDLの印刷データを取得し、メインメモリ110に書き込む。通信コントローラ47は例えばイーサネットカードを挙げることができる。ネットワーク50は、ルータやL3スイッチを超えないLAN(VLANを含む)、ルータやL3スイッチを介してLAN同士が接続されたWAN、及び、インターネットを含むネットワークのいずれでもよい。また、有線接続、無線接続を問わない。
【0041】
〔画像処理手順〕
図6は、PDLの印刷データがプリンタエンジン54に送出されるまでの流れを説明する図の一例である。画像形成装置200は画像処理のステップ毎にメインメモリ110にアクセスしながら処理を進めていく。
【0042】
メインメモリ110は、予めいくつかの領域に区分されている。メインメモリ110は、例えば、SDRAMである。メモリコントローラ48は、1つのステップでは1つの種類のデータにアクセスするので、同種のデータは連続した領域に記憶された方が、アクセス効率が向上する。このため、メインメモリ110は、原則的に(何らかのエラー生じなければ)領域毎に記憶されるデータが固定されている。
【0043】
メインメモリ110の各領域は、例えばPDLメモリ領域、中間言語メモリ領域、バンドメモリ領域、符号ページメモリ領域、プログラム領域、ワーク領域、及び、その他の領域である。そして、本実施例の場合、余裕をもって用意されているその他の領域にエラー処理コマンド領域を有する。エラー処理コマンド領域は、描画装置100がエラーを検出した場合に、描画装置100が実行するコマンドである。
【0044】
なお、プログラム領域には、CPU44が実行するメインのプログラムが記憶され、ワーク領域には、CPU44などによる処理の中間結果が記憶される。
【0045】
PC上で動作しているアプリケーションが印刷する場合、プリンタドライバがPDL(ページ記述言語)で記述された印刷データを生成し、ネットワーク50を介して画像形成装置に送信する。画像形成装置200の通信コントローラ47は、PDLの印刷データを受け取り、メインメモリ110のPDLメモリ領域へ格納する。メモリコントローラ48は印刷データを記憶したこと及び先頭アドレスと印刷データのサイズを、CPU44に割り込みすることで通知する。
【0046】
CPU44はメインのプログラムを実行しており、印刷データを受信したことを検知すると、印刷データの印刷を開始する。まず、メインメモリ110のPDLメモリ領域からPDLの印刷データを読み出し解析して、中間言語による印刷データ(描画コマンド)を生成する。CPU44は生成した描画コマンドをメインメモリ110の中間言語メモリ領域に記憶する。CPU44は描画コマンドを生成したこと、及び、描画コマンドの先頭アドレスと描画コマンドのサイズを描画装置100に通知する。
【0047】
描画装置100は、メインメモリ110の描画コマンドを読み込み、描画コマンドを解析してバンドデータを生成する。描画装置100はバンドデータをメインメモリ110のバンドメモリ領域に書き込む。バンドメモリ領域は、1ページ分を副走査方向に8〜16等分したバンドサイズのメモリ容量を有する。描画コマンドについては後述するが、描画コマンドの実行により四角形、三角形等が描かれ、また、階調処理が行われ2値化されたバンドデータが生成される。描画装置100は、処理の状態をステータスレジスタでCPU44に通知する。
【0048】
CPU44はステータスレジスタによりバンドデータの書き込みの進捗を監視して、符号化装置52にバンドデータの符号化を要求する。符号化装置52は、メインメモリ110のバンドメモリ領域からバンドデータを読み出して、JBIGなどの2値画像の圧縮アルゴリズムにより符号化し、符号ページメモリ領域に記憶する。符号化装置52は、CPU44に要求されたバンドデータの符号化が終了するとCPU44に通知する。符号化ページメモリ領域は1ページ分の容量又は1バンド分以上の容量を有する。
【0049】
CPU44は1ページ分の符号化が終了すると、復号装置51に復号を要求する。復号装置51は、メインメモリ110に記憶されたバンドごとの符号からなる1ページ分の符号化データを読み込んで復号し、エンジンコントローラ53へ転送する。エンジンコントローラ53は、プリンタエンジン54を制御してプリンタエンジン54で印刷データの印刷を行う。
【0050】
〔描画コマンド〕
図7は、描画コマンドのリスト例を、図8は描画コマンドのフォーマット例を、それぞれ示す。
【0051】
4色カラープリンタの場合、4つのトナー画像が重畳して1つのカラー画像が生成されるため、描画コマンドはC、M、Y、Kの各色毎に用意される。
バンド初期化コマンド:バンドの先頭アドレスとバンドの高さと幅を定義している。
バンド初期化コマンドは1つが4×32bitのコマンド長であり、バンド初期化コマンドヘッダ、バンド先頭アドレス、バンド高さ、及び、バンド幅を有する。なお、NOP(No Operation)は何もしない命令を意味する。
描画階調定義コマンド:ハーフトンしきい値アドレス、描画階調値を定義している。
描画階調定義コマンドは1つが3×32bitのコマンド長であり、ハーフトンしきい値アドレス、及び、描画階調値を有する。
しきい値テーブルセットコマンド:ハーフトンパターンのX幅、Y幅と各画素ごとのしきい値テーブルのアドレスを定義している。
しきい値テーブルセットコマンドは、1つが3×32bitのコマンド長であり、しきい値テーブルセットコマンドヘッダ、ハーフトンパターンX幅、ハーフトンパターンY幅、及び、しきい値テーブルアドレスを有する。
四角形描画コマンド:指定された四角形の左上の座標から右下の座標までの四角形を定義する。
四角形描画コマンドは、1つが3×32bitのコマンド長であり、左上X座標、左上Y座標、右下X座標、及び、右下Y座標を有する。
三角形描画コマンド:指定された三角形の各端点座標の3角形を定義する。
三角形描画コマンドは、1つが4×32bitのコマンド長であり、3組の「端点X座標、端点Y座標」を有する。
バンド終了コマンド:バンドの終了を定義する。
バンド終了コマンドは、1つが1×32bitのコマンド長であり、バンド終了コマンドヘッダを有する。
【0052】
後述する、本実施例のコマンドテーブルには描画装置100が解析可能な全ての描画コマンドのコマンドヘッダが登録されている。なお、1つのバンドについて最初の描画コマンドはバンド初期化コマンドであり、最後の描画コマンドはバンド終了コマンドである。
【0053】
図9は、エラー処理コマンドの一例を説明する図の一例である。エラー処理コマンドは、例えば、以下の3つがある。
(1)白データ出力コマンド
図9(a)は白データ出力コマンドの一例を示す。白データ出力コマンドは、エラー検出後のバンドを白データとして出力するコマンドである。白データ出力コマンドは、1つが1×32bitのコマンド長である。
(2)反転データ出力コマンド
図9(b)は反転データ出力コマンドの一例を示す。反転データ出力コマンドは、描画中のバンドの白黒を反転して出力するコマンドである。反転データ出力コマンドは、1つが1×32bitのコマンド長である。
(3)エラー情報出力コマンド
図9(c)はエラー情報出力コマンドの一例を示す。エラー情報出力コマンドは、描画中のバンドにエラーメッセージを出力するコマンドである。エラー情報出力コマンドは、1つが2×32bitのコマンド長であり、エラー情報開始アドレス、及び、エラー情報終了アドレスを有する。エラー情報開始アドレスはエラー処理コマンド領域に記憶されているエラーメッセージの描画コマンドの先頭アドレスであり、エラー情報終了アドレスはエラーメッセージの描画コマンドの終了アドレスである。
【0054】
〔描画装置〕
図10は、描画装置100の構成図の一例である。描画装置100は、コントローラ108、エラー処理コマンド制御装置107、描画コマンド解析装置106、水平ライン変換装置105、水平ライン描画装置104、パラメータ記憶装置103、ハーフトンしきい値記憶装置102、及び、メモリコントローラI/F101を有する。
【0055】
メモリコントローラI/F101は、メモリコントローラ48と描画装置100との間のインタフェースである。メモリコントローラI/F101には、CPUから描画コマンドのアドレスが通知される。
【0056】
メインメモリ110からPDLの印刷データを読み出す際、メモリコントローラI/F101は、メモリリクエストをメモリコントローラ48に出力する。メモリコントローラ48は、メモリアクセスを調停して描画装置100がメインメモリ110にアクセスできるようになるとメモリアックをメモリI/Fに返す。
【0057】
メモリコントローラI/F101は、R/W信号で読み出し(R)を指定し、PDLの印刷データのメモリアドレスをメモリコントローラ48に出力する。
【0058】
メモリコントローラ48はメインメモリ110の指定されたアドレスからPDLの印刷データを読み出して、メモリコントローラI/F101に出力する。
【0059】
また、メインメモリ110にバンドデータを書き込む際、メモリコントローラI/F101は、メモリリクエストをメモリコントローラ48に出力する。メモリコントローラ48は、メモリアクセスを調停して描画装置100がメインメモリ110にアクセスできるようになるとメモリアックをメモリI/Fに返す。
【0060】
メモリコントローラI/F101は、R/W信号で書き込み(W)を指定し、バンドデータのメモリアドレスをメモリコントローラ48に出力する。メモリコントローラ48はメインメモリ110の指定されたアドレスにバンドデータを書き込む。
【0061】
コントローラ108は、描画装置100の処置手順の全体を制御する。本実施例では、描画コマンド解析装置106がエラーを検出した場合に、コントローラ108はCPU44に割り込みして通知する。また、コントローラ108は、ページカウンタ130を有する。ページカウンタ130は、描画したバンド数をカウントして、予め既知の1ページ分に相当するバンド数のバンドの描画が完了する毎にページ数を1つインクリメントする。これにより、エラーの生じたページを特定できるようになる。
【0062】
描画コマンド解析装置106は、メモリコントローラI/F101がメインメモリ110から取得した描画コマンドを解析し、描画コマンドに応じた処理を行う。
・バンド初期化コマンドを取得した場合、描画コマンド解析装置106は、バンド先頭アドレス、バンド高さ及びバンド幅をパラメータ記憶装置103へ記憶させる。
・描画階調定義コマンドを取得した場合、描画コマンド解析装置106は、描画階調値をパラメータ記憶装置103へ記憶させ、ハーフトンしきい値アドレスで指定されたハーフトンしきい値記憶装置102に出力する。水平ライン描画装置104は、ハーフトンしきい値記憶装置102からハーフトンしきい値を読み込み、描画階調値で2値化する。
・しきい値テーブルセットコマンドを取得した場合、描画コマンド解析装置106は、ハーフトンパターンのX幅、Y幅をパラメータ記憶装置103へ記憶し、しきい値テーブルアドレスの示すメインメモリ110のワーク領域のしきい値テーブルを読み込み、ハーフトンしきい値記憶装置102へ書き込む。
・四角形描画コマンドヘッダを取得した場合、描画コマンド解析装置106は、四角形コマンドと四角形の左上X座標、Y座標、右下のX座標、Y座標を水平ライン変換装置105に出力する。
・三角形描画コマンドヘッダを取得した場合、描画コマンド解析装置106は、三角形コマンドと三角形の3つの端点の座標を水平ライン変換装置105に出力する。
・バンド終了コマンドを取得した場合、描画コマンド解析装置106は、バンドの描画を終了する。
【0063】
描画コマンド解析装置106は、描画コマンドが適正か否かを判定するため、コマンドテーブル120を有している。コマンドテーブル120には、描画装置100が解析可能な全ての描画コマンドのコマンドヘッダが登録されている。コマンドテーブル120は、ROM43又は不図示のHDDに記憶されており、画像形成装置200の起動時に、例えばメインのプログラムが初期設定として描画コマンド解析装置106のレジスタに書き込む。
【0064】
水平ライン変換装置105は、描画コマンド解析装置106から描画コマンドを取得して水平ラインへ変換し、水平ラインのパラメータである水平ラインY値、水平ライン始点値及び水平ライン終点値を水平ライン描画装置104へ出力する。
【0065】
水平ライン描画装置104は、水平ライン変換装置105から取得した水平ラインのパラメータに基づき、水平ラインを描画する。水平ライン描画装置104は、ハーフトンしきい値記憶装置102からハーフトンしきい値を読み込み、描画階調値で2値化しハーフトンパターンを生成する。このハーフトンパターンと、パラメータにより指示される水平ラインの描画マスクとのAND計算を行い、描画パターンを生成する。この描画パターンがバンドデータとなる。
【0066】
描画コマンド解析装置106は、描画コマンドの解析の1つとして、メモリコントローラI/F101が取得した描画コマンドがコマンドテーブル120に登録されているか否かを判定する。メインメモリ110から読み出した描画コマンドがコマンドテーブル120に登録されていない場合、エラー処理コマンド制御装置107にエラー検出を通知する。また、描画コマンド解析装置106は、メインメモリ110から読み出した描画コマンドがコマンドテーブル120に登録されていない場合、エラー情報を例えばパラメータ記憶装置103に記憶しておく。エラー情報は、
・エラーを検出した描画コマンド
・中間言語メモリ領域のアドレス
・エラーの種類(この場合はコマンドエラー)
などである。
【0067】
エラー情報を記憶しておくことで、後にCPU44がエラー情報を読み出し、どのようなエラーが生じたのかをHDD等に記録することができる。また、エラーの種類は、実施例2のエラーの検出方法により検出されたエラーと区別するための情報であり、どのようなエラーが検出されたかを後に解析することを可能にする。
【0068】
エラー検出の通知を受けると、エラー処理コマンド制御装置107は、エラー処理コマンド領域のエラー処理コマンドを読み出し、エラー処理を実行する。
(1)白データ出力コマンド
白データ出力コマンドを読み出した場合、エラー処理コマンド制御装置107は、バンドの全体又はバンドのエラー検出後の領域を白画素に設定する。具体的には、前者の場合、すでにメインメモリ110のバンドメモリ領域に書き込んだバンドデータを含め、バンドの全体に白画素"1"を上書きする。後者の場合、すでにメインメモリ110のバンドメモリ領域に書き込んだバンドデータの末尾から、バンド高さに相当するアドレスまで、白画素"1"を書き込む。
(2)反転データ出力コマンド
反転データ出力コマンドを読み出した場合、エラー処理コマンド制御装置107は、バンドの全体又はバンドのエラー検出までの領域の白黒を反転する。具体的には、前者の場合、エラー検出の後も、描画コマンド解析装置106は描画コマンドの解析とバンドメモリ領域へのバンドデータの書き込みを継続する。描画コマンド解析装置106がバンド終了コマンドヘッダを読み出すと、エラー処理コマンド制御装置107はバンドメモリ領域から書き込んだバンドデータを順次、読み出し、白画素"1"を黒画素"0"に、黒画素"0"を白画素"1"にそれぞれ反転する。
【0069】
後者の場合、エラー処理コマンド制御装置107は、すでにメインメモリ110のバンドメモリ領域に書き込んだバンドデータを、バンドメモリ領域から順次、読み出し、白画素"1"を黒画素"0"に、白画素"0"を黒画素"1"にそれぞれ反転する。エラー検出後からバンド領域の残りの領域には白画素"1"を書き込む。
(3)エラー情報出力コマンド
エラー情報出力コマンドを読み出した場合、エラー処理コマンド制御装置107は、エラー情報開始アドレスから描画コマンドを読み出し、描画コマンド解析装置106に描画処理を要求する。エラー情報開始アドレスからエラー情報終了アドレスまで描画コマンドを読み出し、水平ライン変換装置105,水平ライン描画装置104が描画処理することで、エラーメッセージが描画される。
【0070】
エラー処理コマンド制御装置107は、エラー処理を終了するとコントローラ108に通知する。コントローラ108はCPU44に割り込み、エラー発生を通知する。
【0071】
〔ソフトウェアの機能ブロック〕
図11はCPU44が実行するソフトウェアの機能ブロック図の一例を示す。描画制御部441は、PDLの印刷データの印刷から出力までの一連の処理を制御する。すなわち、PDLの印刷データがメインメモリ110に書き込まれると、描画制御部441は印刷を開始する。まず、描画制御部441は、描画コマンド生成部442に処理を要求する。
【0072】
描画コマンド生成部442はメインメモリ110に記憶されたPDLの印刷データを解析して描画コマンドを生成し、メインメモリ110に書き込む。描画コマンド生成部442は、バンド幅分以上の中間言語の印刷データを生成すると、描画装置100にバンドデータの生成を要求する。
【0073】
この後、描画制御部441は、ステータスレジスタにより描画装置100の描画処理の進捗を監視し、描画コマンド生成部442に中間言語メモリ領域を更新させたり、符号化装置52にバンドデータの符号化を要求する。描画制御部441は、PDLの印刷データを全て読み出し、描画コマンドの生成、バンドデータの生成、符号化、復号、及び、印刷までの処理が終了すると終了する。
【0074】
また、描画制御部441は、描画装置100からエラー検出が通知されると、描画停止部443に描画を停止させる。描画停止部443は描画装置100の所定のポートをHレベルにしたり、描画装置100のコントローラに命令を書き込むなどして描画を停止させる。
【0075】
また、描画制御部441は、描画装置100からエラー検出が通知されると、エラー情報読み取り部444に、描画装置100からエラー情報を読み取るように要求する。エラー情報読み取り部444は描画装置100のパラメータ記憶装置103からエラー情報を読み取り、HDDなどの不揮発メモリに記録する。こうすることで、画像形成装置200の電源が落ちたり再起動しても、エラー情報を保持できる。
【0076】
描画制御部441は、エラー情報読み取り部444がエラー情報を読み出すと、印刷再開部445に印刷の再開を要求する。印刷再開部445は、描画装置100のコントローラ108からエラーの生じたページ番号を取得して、描画制御部441に通知する。描画制御部441は描画コマンド生成部442に対し、エラーの生じたページのPDLの印刷データから、再度、描画コマンドを生成させる。これによりエラーの生じたページから印刷を再開できる。
【0077】
〔動作手順〕
図12は、描画装置がバンドデータを描画する手順を示すフローチャート図の一例を示す。
【0078】
描画装置100はメインメモリ110から描画コマンドを読み出す(S10)。描画コマンドは1つずつ読み出してもよいし、複数個をまとめて読み出してもよい。複数個読み出された場合は、不図示のバッファにキューイングされる。
【0079】
描画コマンド解析装置106は、読み出した描画コマンドがコマンドテーブル120に登録されているか否かを判定する(S20)。読み出した描画コマンドがコマンドテーブル120に登録されている場合(S20のYes)、描画コマンド解析装置106は描画コマンドを解析して従来どおりの処理を行う(S30)。
【0080】
読み出した描画コマンドがコマンドテーブル120に登録されていない場合(S20のNo)、描画コマンド解析装置106はパラメータ記憶装置103にエラー情報を書き込む(S40)。また、描画コマンド解析装置106はエラー処理コマンド制御装置107にエラー検出を通知する。
【0081】
エラー処理コマンド制御装置107は、エラー処理コマンドをメインメモリ110から読み出してエラー処理を実行する(S50)。エラー処理コマンドは白データ出力コマンド、反転データ出力コマンド、エラー情報出力コマンドのいずれかであるが、白データ出力コマンドに続けてエラー情報出力コマンドを実行するなど、適宜組み合わせることもできる。
【0082】
次に、エラー処理コマンド制御装置107はコントローラ108にエラー検出を通知するので、コントローラ108がCPU44に割り込みする(S60)。この後、描画装置100の動作は、CPU44により制御される。
【0083】
CPU44は割込みにより描画停止部443を動作させる(S110)。
【0084】
描画停止部443は、描画装置100の描画処理を停止させる(S120)。
【0085】
また、CPU44はエラー検出の割込みにより、1ページの途中までであってもバンドデータが得られている範囲で、印刷までの工程を行う。このため、描画制御部441は、符号化装置52にバンドデータの符号化を要求し、符号化が終了すると復号装置51に復号を要求して、用紙に画像データを印刷する。
【0086】
次に、エラー情報読み取り部444は描画装置100からエラー情報を読み取る(S130)。CPU44はエラー情報を不図示のHDD等に記憶する。
【0087】
また、印刷再開部445は、描画装置100からページ番号を読み出して、印刷を再開する(S140)。すなわち、描画コマンド生成部442は、エラーの生じたページのPDLの印刷データから、再度、描画コマンドを生成する。なお、描画停止部443は、描画装置100に対し描画処理の停止を解除する。これにより、メインメモリに書き込まれる際にエラーが生じたページから印刷が再開される。
【0088】
〔エラー処理による出力例〕
図13は、描画装置100がエラーを検出した場合に印刷される出力例を示す図である。図13(a)は白データ出力コマンドによる出力例を、図13(b)は反転データ出力コマンドによる出力例を、図13(c)はエラー情報出力コマンドによる出力例を、それぞれ示す。
【0089】
エラー処理コマンドが白データ出力コマンドの場合、バンドの全体を白データとして出力するコマンドであるとすると、エラーが検出されたバンドには何も印字されない。
【0090】
エラー処理コマンドが反転データ出力コマンドの場合、エラーが検出されたバンドの全体の白黒を反転させて出力するコマンドであるとすると、エラーが検出されたバンドは白黒が反転して印字される。図13(b)では、PCから送信された印刷データに含まれない"#"が印字されているが、このようなわずかなエラー(文字化け)はユーザも気付きにくい。しかし、図13(b)のように白黒反転して印字することで、ユーザはエラーが発生したことを一目で把握でき、どのようなエラーが生じたかを確認できる。
【0091】
エラー処理コマンドがエラー情報出力コマンドの場合、エラーが生じたバンドにエラーメッセージが印字される。図13(c)では「Error」と印字されているが、エラーが生じたことを示すメッセージであればよい。また、言葉や単語で印字するのでなく、「1234」のようなエラーコードを印字してもよい。この場合、ユーザがエラーコードを画像形成装置200の販売店やサポートセンタに連絡すれば、サポートセンタがどのようなエラーが発生したかを解析できる。
【0092】
以上説明したように、本実施例の描画装置100は、中間言語メモリ領域に書き込まれた描画コマンドがコマンドテーブル120に登録されているか否かを判断することで、エラーの発生を検出できる。エラーの発生が検出された場合、用紙に形成される画像を制御し、印刷を停止するのでユーザはエラーが発生したことを把握できる。また、エラー情報を記録するので、どのようなエラーが生じたか後に解析することができる。また、エラーの発生したページから印刷を再開するので利便性を向上できる。
【実施例2】
【0093】
実施例1にて説明したように、描画装置100にエラーが生じる場合、CPU44が中間言語メモリ領域に書き込む描画コマンドが本来のものと異なることが多い。しかし、このような現象以外に、CPU44が中間言語メモリ領域に書き込むべき描画コマンドを別の領域(例えば、PDLメモリ領域や符号ページメモリ領域)に跨って書き込んだり、全く別のメモリ領域に書き込む現象が発生する場合がある。例えば、CPU44が参照するポインタが正しくないような場合、CPU44がアクセスするメインメモリ110のアドレスが想定外のものとなることがある。中間言語メモリ領域外に描画コマンドが書き込まれと、描画コマンドがメインメモリの他のデータにより破壊されたり、逆にメインメモリの他のデータが描画コマンドにより破壊されるおそれがあり、異常画像が印刷されるおそれがある。
【0094】
そこで、本実施例ではCPU44が中間言語メモリ領域外に描画コマンドを書き込んだことを検出できる描画装置100について説明する。
【0095】
図14は、本実施例の描画装置100の概略的な特徴を説明する図の一例である。中間言語メモリ領域は固定なので、描画装置100に中間言語メモリ領域の開始アドレスと終了アドレスを設定しておけば、描画装置100は描画コマンドが中間言語メモリ領域に書き込まれたか否かを判定できる。例えば、画像形成装置200の起動時に、メインのプログラムが初期設定としてメモリコントローラI/F101に中間言語メモリ領域の開始アドレスと終了アドレスを設定しておく。
【0096】
上記のように、CPU44は、描画装置100に描画コマンドの解析を要求する際、描画コマンドの先頭アドレスを通知する。
(i) したがって、メモリコントローラI/F101は、描画コマンドの先頭アドレスが中間言語メモリ領域の開始アドレスと終了アドレス内か否かにより、中間言語メモリ領域外に描画コマンドが書き込まれたか否かを検出できる。
(ii) また、メモリコントローラI/F101は、メモリコントローラ48に出力するメモリアドレスが、中間言語メモリ領域か否かに基づき、中間言語メモリ領域外に描画コマンドが書き込まれたか否かを検出できる。メモリコントローラI/F101は、CPU44が描画装置100に通知した描画コマンドの先頭アドレスから、バンド終了コマンドヘッドまで描画コマンドを読み出す。したがって、メモリコントローラI/F101は、メモリコントローラ48に出力するメモリアドレスが、中間言語メモリ領域か否かに基づき、エラーの発生を検出することができる。この場合、メモリコントローラI/F101はメモリコントローラ48に読み出しを要求する毎にエラーが発生したか否かを判定することができる。
【0097】
図15は、本実施例の描画装置100の構成図の一例である。図15において図10と同一部には同一の符号を付しその説明は省略する。図15の描画装置100が有するブロックは図10と同様であるが、メモリコントローラI/F101が開始アドレスと終了アドレスを記憶している。また、メモリコントローラI/F101とエラー処理コマンド制御装置107,及び、パラメータ記憶装置103が接続されている。
【0098】
メモリコントローラI/F101は、エラーを検出すると、エラー情報を例えばパラメータ記憶装置103に記憶しておく。エラー情報は、
・中間言語メモリ領域のアドレス
・エラーの種類(この場合はアドレスエラー)
などである。
【0099】
エラー情報を記憶しておくことで、後にCPU44がエラー情報を読み出し、どのようなエラーが生じたのかを記録することができる。また、エラーの種類により、描画コマンド解析装置106が検出したコマンドエラーが検出されたのか、メモリコントローラI/F101が検出したアドレスエラーが検出されたのかを、サポートセンタなどが解析時に判別できる。
【0100】
また、メモリコントローラI/F101はエラーを検出すると、エラー処理コマンド制御装置107にエラー検出を通知する。
【0101】
エラー処理コマンド制御装置107は、エラー処理コマンド領域のエラー処理コマンドを読み出し、エラー処理を実行する。エラー処理は、上記の(1)〜(3)と同様である。ただし、エラーの種類を印刷された用紙から判定するため、コマンドエラーとアドレスエラーにより、エラー処理を替えてもよい。例えば、コマンドエラーの場合は(1)をエラー処理とし、アドレスエラーの場合は(2)をエラー処理とする。または、コマンドエラー及びアドレスエラーをいずれも(3)をエラー処理とするが、コマンドエラーかアドレスエラーかによってメッセージを切り換える。こうすることで、サポートセンタなどはどのようエラーが発生したかを容易に判別できる。
【0102】
図16は、描画装置がバンドデータを描画する手順を示すフローチャート図の一例を示す。図16の手順はステップS5が追加されている以外は、図12とほぼ同様である。
【0103】
すなわち、メモリコントローラI/F101は、描画コマンドを読み出すために、メモリコントローラ48に出力するメモリアドレスが、中間言語メモリ領域内に記憶されているか否かを判定する(S5)。
【0104】
中間言語メモリ領域内の場合(S5のYes)、図12と同様に描画コマンドが読み出され、コマンドエラーの検出等の処理が実行される。
【0105】
中間言語メモリ領域内でない場合(S5のNo)、処理はステップS40に進み実施例1と同様に処理される。すなわち、メモリコントローラI/F101はエラー情報を書き込む(S40)。エラー処理コマンド制御装置107は、エラー処理コマンドをメインメモリ110から読み出してエラー処理を実行する(S50)。エラー処理コマンド制御装置107はコントローラ108にエラー検出を通知するので、コントローラ108がCPU44に割り込みする(S60)。この後、描画装置100の動作は、CPU44により制御される。
【0106】
なお、本実施例では実施例1のコマンドエラーと組み合わせて説明したが、アドレスエラーの検出機能のみを描画装置100に搭載することもできる。
【0107】
以上説明したように、本実施例の描画装置100によれば、実施例1の効果に加え、エラーの検出範囲を拡大することができる。
【符号の説明】
【0108】
44 CPU
47 通信コントローラ
48 メモリコントローラ
51 復号装置
52 符号化装置
53 エンジンコントローラ
54 プリンタエンジン
100 描画装置
110 メインメモリ
101 メモリコントローラI/F
106 描画コマンド解析装置
107 エラー処理コマンド制御装置
108 コントローラ
200 画像形成装置
300 PC
【先行技術文献】
【特許文献】
【0109】
【特許文献1】特開2006−121437号公報
【特許請求の範囲】
【請求項1】
メモリに書き込まれた描画コマンドを解析して画像データに階調処理を施す画像処理装置であって、
描画コマンドを解析する描画コマンド解析手段と、
全ての前記描画コマンドが登録された描画コマンドテーブルと、
エラー処理コマンドが記憶されたエラー処理コマンド記憶手段と、
メモリから読み出した描画コマンドが前記描画コマンドテーブルに登録されていないコマンドエラーを前記描画コマンド解析手段が検出した場合、前記エラー処理コマンド記憶手段に記憶されたエラー処理コマンドを実行してエラー処理を実行するエラー処理実行手段と、
を有する画像処理装置。
【請求項2】
描画コマンドを生成してメモリに書き込んだ外部装置から描画コマンドのアドレスを取得し、該アドレスの描画コマンドを読み出すメモリアクセス手段を有し、
前記メモリアクセス手段は、描画コマンドのアドレスが予め登録されている描画コマンド記憶領域の範囲外のアドレスであるアドレスエラーを検出した場合、前記エラー処理実行手段にエラー検出を通知する、
ことを特徴とする請求項1記載の画像処理装置。
【請求項3】
コマンドエラー又はアドレスエラーが検出された場合、前記エラー処理実行手段は、前記エラー処理コマンド記憶手段に記憶されたエラー処理コマンドを実行して、階調処理後の画像データを白画素で置き換える、階調処理後の画像データの白黒を反転させる、又は、エラーメッセージを形成する画素をメモリに書き込む、のいずれかを行う、
ことを特徴とする請求項2記載の画像処理装置。
【請求項4】
コマンドエラー又はアドレスエラーが検出された場合、
コマンドエラー又はアドレスエラーの識別情報、及び、描画コマンドが記憶されているメモリのアドレス、を含むエラー情報を記憶するエラー情報記憶手段を有する、
ことを特徴とする請求項2記載の画像処理装置。
【請求項5】
コマンドエラーが検出された場合、
前記エラー情報記憶手段は、さらに、コマンドエラーが検出された描画コマンドを記憶する、
ことを特徴とする請求項4記載の画像処理装置。
【請求項6】
描画処理を実行中のページのページ番号をカウントするページ番号カウント手段と、
コマンドエラー又はアドレスエラーが検出された場合、外部装置にエラー検出を通知するエラー通知手段を有し、
該外部装置からの指示によって、コマンドエラー又はアドレスエラーが検出されたページから、階調処理を再開する、
ことを特徴とする請求項2記載の画像処理装置。
【請求項7】
メモリに書き込まれた描画コマンドを解析する描画コマンド解析手段と、
全ての前記描画コマンドが登録された描画コマンドテーブルと、
エラー処理コマンドが記憶されたエラー処理コマンド記憶手段と、
メモリから読み出した描画コマンドが前記描画コマンドテーブルに登録されていないうコマンドエラーを前記描画コマンド解析手段が検出した場合、前記エラー処理コマンド記憶手段に記憶されたエラー処理コマンドを実行してエラー処理を実行するエラー処理実行手段と、
コマンドエラーが検出された場合、コマンドエラーの識別情報、及び、描画コマンドが記憶されているメモリのアドレス、を含むエラー情報を記憶するエラー情報記憶手段と、
階調処理後の画像データをメモリに書き込む階調処理手段とを有する、画像処理装置と接続されたCPUに、
前記画像処理装置からエラーの検出の通知を受け付けるステップと、
エラーの検出を受け付けた場合、前記画像処理装置のエラー情報記憶手段からエラー情報を読み出すステップと、
を実行させるプログラム。
【請求項8】
請求項1〜6いずれか1項記載の画像処理装置と、
印刷データを送信する端末とネットワークを介して通信する通信手段と、
前記通信手段が受信した印刷データから描画コマンドを生成し、メモリに書き込む外部装置と、
前記画像処理装置がメモリに書き込んだ階調処理後の画像データを読み出して、プリンタエンジンを制御するエンジンコントローラと、
画像データを記録媒体に形成するプリンタエンジンと、
を有する画像形成装置。
【請求項9】
メモリに書き込まれた描画コマンドを解析して画像データに階調処理を施す画像処理方法であって、
描画コマンド解析手段が、描画コマンドを解析する描画コマンド解析ステップと、
メモリから読み出した描画コマンドが、全ての前記描画コマンドが登録された描画コマンドテーブルに登録されているか否かを判定するステップと、
前記描画コマンド解析手段が、メモリから読み出した描画コマンドが前記描画コマンドテーブルに登録されていないコマンドエラーを検出した場合、
エラー処理実行手段が、エラー処理コマンドが記憶されたエラー処理コマンド記憶手段からエラー処理コマンドを読み出し実行してエラー処理を実行するエラー処理実行ステップと、
を有する画像処理方法。
【請求項1】
メモリに書き込まれた描画コマンドを解析して画像データに階調処理を施す画像処理装置であって、
描画コマンドを解析する描画コマンド解析手段と、
全ての前記描画コマンドが登録された描画コマンドテーブルと、
エラー処理コマンドが記憶されたエラー処理コマンド記憶手段と、
メモリから読み出した描画コマンドが前記描画コマンドテーブルに登録されていないコマンドエラーを前記描画コマンド解析手段が検出した場合、前記エラー処理コマンド記憶手段に記憶されたエラー処理コマンドを実行してエラー処理を実行するエラー処理実行手段と、
を有する画像処理装置。
【請求項2】
描画コマンドを生成してメモリに書き込んだ外部装置から描画コマンドのアドレスを取得し、該アドレスの描画コマンドを読み出すメモリアクセス手段を有し、
前記メモリアクセス手段は、描画コマンドのアドレスが予め登録されている描画コマンド記憶領域の範囲外のアドレスであるアドレスエラーを検出した場合、前記エラー処理実行手段にエラー検出を通知する、
ことを特徴とする請求項1記載の画像処理装置。
【請求項3】
コマンドエラー又はアドレスエラーが検出された場合、前記エラー処理実行手段は、前記エラー処理コマンド記憶手段に記憶されたエラー処理コマンドを実行して、階調処理後の画像データを白画素で置き換える、階調処理後の画像データの白黒を反転させる、又は、エラーメッセージを形成する画素をメモリに書き込む、のいずれかを行う、
ことを特徴とする請求項2記載の画像処理装置。
【請求項4】
コマンドエラー又はアドレスエラーが検出された場合、
コマンドエラー又はアドレスエラーの識別情報、及び、描画コマンドが記憶されているメモリのアドレス、を含むエラー情報を記憶するエラー情報記憶手段を有する、
ことを特徴とする請求項2記載の画像処理装置。
【請求項5】
コマンドエラーが検出された場合、
前記エラー情報記憶手段は、さらに、コマンドエラーが検出された描画コマンドを記憶する、
ことを特徴とする請求項4記載の画像処理装置。
【請求項6】
描画処理を実行中のページのページ番号をカウントするページ番号カウント手段と、
コマンドエラー又はアドレスエラーが検出された場合、外部装置にエラー検出を通知するエラー通知手段を有し、
該外部装置からの指示によって、コマンドエラー又はアドレスエラーが検出されたページから、階調処理を再開する、
ことを特徴とする請求項2記載の画像処理装置。
【請求項7】
メモリに書き込まれた描画コマンドを解析する描画コマンド解析手段と、
全ての前記描画コマンドが登録された描画コマンドテーブルと、
エラー処理コマンドが記憶されたエラー処理コマンド記憶手段と、
メモリから読み出した描画コマンドが前記描画コマンドテーブルに登録されていないうコマンドエラーを前記描画コマンド解析手段が検出した場合、前記エラー処理コマンド記憶手段に記憶されたエラー処理コマンドを実行してエラー処理を実行するエラー処理実行手段と、
コマンドエラーが検出された場合、コマンドエラーの識別情報、及び、描画コマンドが記憶されているメモリのアドレス、を含むエラー情報を記憶するエラー情報記憶手段と、
階調処理後の画像データをメモリに書き込む階調処理手段とを有する、画像処理装置と接続されたCPUに、
前記画像処理装置からエラーの検出の通知を受け付けるステップと、
エラーの検出を受け付けた場合、前記画像処理装置のエラー情報記憶手段からエラー情報を読み出すステップと、
を実行させるプログラム。
【請求項8】
請求項1〜6いずれか1項記載の画像処理装置と、
印刷データを送信する端末とネットワークを介して通信する通信手段と、
前記通信手段が受信した印刷データから描画コマンドを生成し、メモリに書き込む外部装置と、
前記画像処理装置がメモリに書き込んだ階調処理後の画像データを読み出して、プリンタエンジンを制御するエンジンコントローラと、
画像データを記録媒体に形成するプリンタエンジンと、
を有する画像形成装置。
【請求項9】
メモリに書き込まれた描画コマンドを解析して画像データに階調処理を施す画像処理方法であって、
描画コマンド解析手段が、描画コマンドを解析する描画コマンド解析ステップと、
メモリから読み出した描画コマンドが、全ての前記描画コマンドが登録された描画コマンドテーブルに登録されているか否かを判定するステップと、
前記描画コマンド解析手段が、メモリから読み出した描画コマンドが前記描画コマンドテーブルに登録されていないコマンドエラーを検出した場合、
エラー処理実行手段が、エラー処理コマンドが記憶されたエラー処理コマンド記憶手段からエラー処理コマンドを読み出し実行してエラー処理を実行するエラー処理実行ステップと、
を有する画像処理方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【公開番号】特開2013−42291(P2013−42291A)
【公開日】平成25年2月28日(2013.2.28)
【国際特許分類】
【出願番号】特願2011−177026(P2011−177026)
【出願日】平成23年8月12日(2011.8.12)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.イーサネット
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】
【公開日】平成25年2月28日(2013.2.28)
【国際特許分類】
【出願日】平成23年8月12日(2011.8.12)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.イーサネット
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】
[ Back to top ]