(57)【特許請求の範囲】
【請求項１】
入力画像データに、該入力画像データの値に応じて異なる係数を乗じて補正入力画像データを出力する補正手段と、
前記補正入力画像データに対して誤差拡散処理を施した誤差補正値に閾値処理を施して出力画像データを出力する閾値処理手段と、
前記補正値と前記出力画像データとの差から誤差信号を出力する減算手段と、
前記誤差信号を拡散マトリクスの値に応じた配分誤差データに変換するエラーフィルタ手段と、
前記配分誤差データを前記補正入力画像データ中の注目画素の周囲画素に分配して前記誤差補正値を出力する誤差拡散手段と
を具備することを特徴とする画像処理装置。
【請求項２】
入力画像データに対して誤差拡散処理を施した誤差補正値に閾値処理を施して出力画像データを出力する閾値処理手段と、
前記補正値と前記出力画像データとの差から誤差信号を出力する減算手段と、
前記誤差信号を拡散マトリクスの値に応じた配分誤差データに変換するエラーフィルタ手段と、
前記配分誤差データを前記入力画像データ中の注目画素の周囲画素に分配して前記誤差補正値を出力する誤差拡散手段と、
前記出力画像データに、該出力画像データの値に応じて異なる係数を乗じて補正出力画像データを出力する補正手段と
を具備することを特徴とする画像処理装置。
【請求項３】
入力画像データに、該入力画像データ中の注目画素の周囲画素の値に応じて異なる係数を乗じて補正入力画像データを出力する補正手段と、
前記補正入力画像データに対して誤差拡散処理を施した誤差補正値に閾値処理を施して出力画像データを出力する閾値処理手段と、
前記補正値と前記出力画像データとの差から誤差信号を出力する減算手段と、
前記誤差信号を拡散マトリクスの値に応じた配分誤差データに変換するエラーフィルタ手段と、
前記配分誤差データを前記補正入力画像データ中の注目画素の周囲画素に分配して前記誤差補正値を出力する誤差拡散手段と
を具備することを特徴とする画像処理装置。
【請求項４】
入力画像データに対して誤差拡散処理を施した誤差補正値に閾値処理を施して出力画像データを出力する閾値処理手段と、
前記補正値と前記出力画像データとの差から誤差信号を出力する減算手段と、
前記誤差信号を拡散マトリクスの値に応じた配分誤差データに変換するエラーフィルタ手段と、
前記配分誤差データを前記入力画像データ中の注目画素の周囲画素に分配して前記誤差補正値を出力する誤差拡散手段と、
前記出力画像データに、該出力画像データ中の注目画素の周囲画素の値に応じて異なる係数を乗じて補正出力画像データを出力する補正手段と
を具備することを特徴とする画像処理装置。
【請求項５】
入力画像データに対して誤差拡散処理を施した誤差補正値に閾値処理を施して出力画像データを出力する閾値処理手段と、
前記出力画像データが最高濃度を示す値の場合に、該出力画像データに１より大きな係数を乗じて補正出力画像データを出力する補正手段と、
前記補正値と前記補正出力画像データとの差から誤差信号を出力する減算手段と、
前記誤差信号を拡散マトリクスの値に応じた配分誤差データに変換するエラーフィルタ手段と、
前記配分誤差データを前記入力画像データ中の注目画素の周囲画素に分配して前記誤差補正値を出力する誤差拡散手段と
を具備することを特徴とする画像処理装置。
【請求項６】
入力画像データに対して誤差拡散処理を施した誤差補正値に閾値処理を施して出力画像データを出力する閾値処理手段と、
前記補正値と前記出力画像データとの差から誤差信号を出力する減算手段と、
前記出力画像データが最高濃度を示す値の場合に、前記誤差信号に１より大きな係数を乗じて補正誤差信号を出力する補正手段と、
前記補正誤差信号を拡散マトリクスの値に応じた配分誤差データに変換するエラーフィルタ手段と、
前記配分誤差データを前記入力画像データ中の注目画素の周囲画素に分配して前記誤差補正値を出力する誤差拡散手段と
を具備することを特徴とする画像処理装置。
【請求項７】
入力画像データに対して誤差拡散処理を施した誤差補正値に閾値処理を施して出力画像データを出力する閾値処理手段と、
前記補正値と前記出力画像データとの差から誤差信号を出力する減算手段と、
前記誤差信号を拡散マトリクスの値に応じた配分誤差データに変換するエラーフィルタ手段と、
前記出力画像データが最高濃度を示す値の場合に、前記配分誤差データに１より大きな係数を乗じて補正配分誤差データを出力する補正手段と、
前記補正配分誤差データを前記入力画像データ中の注目画素の周囲画素に分配して前記誤差補正値を出力する誤差拡散手段と
を具備することを特徴とする画像処理装置。
【請求項８】
入力画像データに対して誤差拡散処理を施した誤差補正値に閾値処理を施して出力画像データを出力する閾値処理手段と、
前記補正値と前記閾値処理手段が出力する出力画像データとの差から誤差信号を出力する減算手段と、
前記誤差補正値と前記誤差信号とのいずれかに基づいて、複数の拡散マトリクスから１の拡散マトリクスを選択する選択手段と、
前記減算手段が出力する誤差信号を、前記選択手段により選択された拡散マトリクスの値に応じた配分誤差データに変換するエラーフィルタ手段と、
前記エラーフィルタ手段が出力する配分誤差データを前記入力画像データ中の注目画素の周囲画素に分配して前記誤差補正値を出力する誤差拡散手段と
を具備することを特徴とする画像処理装置。
【請求項９】
入力画像データに対して誤差拡散処理を施した誤差補正値に閾値処理を施して出力画像データを出力する閾値処理手段と、
前記出力画像データに、前記入力画像データの値に応じて異なる係数を乗じて補正出力画像データを出力する補正手段と、
前記補正値と前記補正出力画像データとの差から誤差信号を出力する減算手段と、
前記減算手段が出力する誤差信号を拡散マトリクスの値に応じた配分誤差データに変換するエラーフィルタ手段と、
前記エラーフィルタ手段が出力する配分誤差データを前記入力画像データ中の注目画素の周囲画素に分配して前記誤差補正値を出力する誤差拡散手段と
を具備することを特徴とする画像処理装置。
【請求項１０】
前記入力画像データ中の注目画素およびその周辺画素からなるウィンドウ内の画素データが全て最高濃度又は全て最低濃度の場合に、前記誤差信号を０に設定して該ウィンドウ内での誤差拡散処理を禁止する処理禁止手段をさらに具備することを特徴とする請求項１乃至９のいずれかに記載の画像処理装置。
【請求項１１】
前記補正手段または前記エラーフィルタ手段を、環境に応じて制御する制御手段をさらに具備することを特徴とする請求項１乃至１０のいずれかに記載の画像処理装置。
【請求項１２】
前記入力画像データのビットをＬＳＢ方向へシフトして処理されるビット数を減少させる減少手段をさらに具備することを特徴とする請求項１乃至１１のいずれかに記載の画像処理装置。
【請求項１３】
前記補正回路または前記エラーフィルタ手段のパラメータを設定する設定手段をさらに具備することを特徴とする請求項１乃至１２のいずれかに記載の画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は画像処理装置に係り、特に画像データに対して疑似中間調処理を施す誤差拡散処理に補正を加える構成の画像処理装置に関する。
従来のプリンタは、特に文字の再現性を重視して設計されていた。しかし、近年では、パーソナルコンピュータ等で画像を処理する機会も多いため、プリンタにおいても自然画やグラフィック等の画像を忠実な再現性を持って印刷することが望まれている。
【０００２】
【従来の技術】
文字の再現性を重視して設計されたプリンタでは、１ドットの大きさを１ドットピッチより大きく設定している。例えば、ドットの直径は、１ドットピッチの１．４〜２．０倍の範囲内で設定される。このような設定により、文字のコントラストと視認性が向上する。つまり、ドットの直径を１ドットピッチの例えば１．８倍に設定することにより、文字や線画の再現性が向上する。
【０００３】
他方、自然画やグラフィック等の画像の場合には、面積階調処理を行って画像を印刷することが一般的である。面積階調処理の方式としては、各種方式が提案されているが、その中でも誤差拡散方式が注目されている。誤差拡散方式によれば、入力画像濃度と出力画像濃度との差をその周囲の画素に対して分配するので、画像全体としての濃度が保存され、解像度がかなり高い状態に保たれる。このため、誤差拡散方式は、低解像度のプリンタに適用されても、他の面積階調処理方式と比べて良い画質の画像を印刷することができる。
【０００４】
【発明が解決しようとする課題】
しかし、自然画等を印刷する場合に、１ドットの大きさを１ドットピッチより大きく設定すると、各ドットが本来のドット面積より大きな面積で印刷されてしまうため、画像全体の濃度が高めに印刷されてしまい、中間レベル以上では飽和してしまうという問題があった。又、上記の問題は、特に誤差拡散方式を用いて印刷を行う場合に顕著であった。
【０００５】
そこで、本発明は、１ドットの大きさが１ドットピッチより大きく設定されていても、誤差拡散方式に補正を加えることで、画像の高い濃度における濃度の飽和を防止して、より忠実な階調性の再現を可能とする画像処理装置を提供することを目的とする。
【０００６】
【課題を解決するための手段】
上述した目的を達成するため、請求項１の発明は、入力画像データに、該入力画像データの値に応じて異なる係数を乗じて補正入力画像データを出力する補正手段と、前記補正入力画像データに対して誤差拡散処理を施した誤差補正値に閾値処理を施して出力画像データを出力する閾値処理手段と、前記補正値と前記出力画像データとの差から誤差信号を出力する減算手段と、前記誤差信号を拡散マトリクスの値に応じた配分誤差データに変換するエラーフィルタ手段と、前記配分誤差データを前記補正入力画像データ中の注目画素の周囲画素に分配して前記誤差補正値を出力する誤差拡散手段とを具備することを特徴とする。
【０００７】
また、請求項２の発明は、入力画像データに対して誤差拡散処理を施した誤差補正値に閾値処理を施して出力画像データを出力する閾値処理手段と、前記補正値と前記出力画像データとの差から誤差信号を出力する減算手段と、前記誤差信号を拡散マトリクスの値に応じた配分誤差データに変換するエラーフィルタ手段と、前記配分誤差データを前記入力画像データ中の注目画素の周囲画素に分配して前記誤差補正値を出力する誤差拡散手段と、前記出力画像データに、該出力画像データの値に応じて異なる係数を乗じて補正出力画像データを出力する補正手段とを具備することを特徴とする。
また、請求項３の発明は、入力画像データに、該入力画像データ中の注目画素の周囲画素の値に応じて異なる係数を乗じて補正入力画像データを出力する補正手段と、前記補正入力画像データに対して誤差拡散処理を施した誤差補正値に閾値処理を施して出力画像データを出力する閾値処理手段と、前記補正値と前記出力画像データとの差から誤差信号を出力する減算手段と、前記誤差信号を拡散マトリクスの値に応じた配分誤差データに変換するエラーフィルタ手段と、前記配分誤差データを前記補正入力画像データ中の注目画素の周囲画素に分配して前記誤差補正値を出力する誤差拡散手段とを具備することを特徴とする。
また、請求項４の発明は、入力画像データに対して誤差拡散処理を施した誤差補正値に閾値処理を施して出力画像データを出力する閾値処理手段と、前記補正値と前記出力画像データとの差から誤差信号を出力する減算手段と、前記誤差信号を拡散マトリクスの値に応じた配分誤差データに変換するエラーフィルタ手段と、前記配分誤差データを前記入力画像データ中の注目画素の周囲画素に分配して前記誤差補正値を出力する誤差拡散手段と、前記出力画像データに、該出力画像データ中の注目画素の周囲画素の値に応じて異なる係数を乗じて補正出力画像データを出力する補正手段とを具備することを特徴とする。
【０００８】
また、請求項５の発明は、入力画像データに対して誤差拡散処理を施した誤差補正値に閾値処理を施して出力画像データを出力する閾値処理手段と、前記出力画像データが最高濃度を示す値の場合に、該出力画像データに１より大きな係数を乗じて補正出力画像データを出力する補正手段と、前記補正値と前記補正出力画像データとの差から誤差信号を出力する減算手段と、前記誤差信号を拡散マトリクスの値に応じた配分誤差データに変換するエラーフィルタ手段と、前記配分誤差データを前記入力画像データ中の注目画素の周囲画素に分配して前記誤差補正値を出力する誤差拡散手段とを具備することを特徴とする。
また、請求項６の発明は、入力画像データに対して誤差拡散処理を施した誤差補正値に閾値処理を施して出力画像データを出力する閾値処理手段と、前記補正値と前記出力画像データとの差から誤差信号を出力する減算手段と、前記出力画像データが最高濃度を示す値の場合に、前記誤差信号に１より大きな係数を乗じて補正誤差信号を出力する補正手段と、前記補正誤差信号を拡散マトリクスの値に応じた配分誤差データに変換するエラーフィルタ手段と、前記配分誤差データを前記入力画像データ中の注目画素の周囲画素に分配して前記誤差補正値を出力する誤差拡散手段とを具備することを特徴とする。
【０００９】
また、請求項７の発明は、入力画像データに対して誤差拡散処理を施した誤差補正値に閾値処理を施して出力画像データを出力する閾値処理手段と、前記補正値と前記出力画像データとの差から誤差信号を出力する減算手段と、前記誤差信号を拡散マトリクスの値に応じた配分誤差データに変換するエラーフィルタ手段と、前記出力画像データが最高濃度を示す値の場合に、前記配分誤差データに１より大きな係数を乗じて補正配分誤差データを出力する補正手段と、前記補正配分誤差データを前記入力画像データ中の注目画素の周囲画素に分配して前記誤差補正値を出力する誤差拡散手段とを具備することを特徴とする。
また、請求項８の発明は、入力画像データに対して誤差拡散処理を施した誤差補正値に閾値処理を施して出力画像データを出力する閾値処理手段と、前記補正値と前記閾値処理手段が出力する出力画像データとの差から誤差信号を出力する減算手段と、前記誤差補正値と前記誤差信号とのいずれかに基づいて、複数の拡散マトリクスから１の拡散マトリクスを選択する選択手段と、前記減算手段が出力する誤差信号を、前記選択手段により選択された拡散マトリクスの値に応じた配分誤差データに変換するエラーフィルタ手段と、前記エラーフィルタ手段が出力する配分誤差データを前記入力画像データ中の注目画素の周囲画素に分配して前記誤差補正値を出力する誤差拡散手段とを具備することを特徴とする。
【００１０】
また、請求項９の発明は、入力画像データに対して誤差拡散処理を施した誤差補正値に閾値処理を施して出力画像データを出力する閾値処理手段と、前記出力画像データに、前記入力画像データの値に応じて異なる係数を乗じて補正出力画像データを出力する補正手段と、前記補正値と前記補正出力画像データとの差から誤差信号を出力する減算手段と、前記減算手段が出力する誤差信号を拡散マトリクスの値に応じた配分誤差データに変換するエラーフィルタ手段と、前記エラーフィルタ手段が出力する配分誤差データを前記入力画像データ中の注目画素の周囲画素に分配して前記誤差補正値を出力する誤差拡散手段とを具備することを特徴とする。
【００１１】
また、請求項１０の発明は、請求項１乃至９のいずれかの発明において、前記入力画像データ中の注目画素およびその周辺画素からなるウィンドウ内の画素データが全て最高濃度又は全て最低濃度の場合に、前記誤差信号を０に設定して該ウィンドウ内での誤差拡散処理を禁止する処理禁止手段をさらに具備することを特徴とする。
また、請求項１１の発明は、請求項１乃至１０のいずれかの発明において、前記補正手段または前記エラーフィルタ手段を、環境に応じて制御する制御手段をさらに具備することを特徴とする。
【００１２】
また、請求項１２の発明は、請求項１乃至１１のいずれかの発明において、前記入力画像データのビットをＬＳＢ方向へシフトして処理されるビット数を減少させる減少手段をさらに具備することを特徴とする。
また、請求項１３の発明は、請求項１乃至１２のいずれかの発明において、前記補正回路または前記エラーフィルタ手段のパラメータを設定する設定手段をさらに具備することを特徴とする。
【００１３】
請求項１及び３記載の発明によれば、高い濃度における濃度の飽和現象を防止することができ、忠実な階調性の再現が可能であると共に、処理が簡単であるため、データの高速処理が可能である。また、入力画像データに応じて係数を決定するので、きめの細かい処理が可能となり、微妙なトーンカーブも再現可能となる。
【００１４】
請求項２、４、５及び６記載の発明によれば、補正回路で行う処理を画像処理装置が適用される装置の特性に合わせて調整することもできる。請求項７記載の発明によれば、分散した値に対して補正を施すため、特別なオーバーフロー対策を行わなくてもオーバーフローによる問題が発生しにくい。請求項８記載の発明によれば、高い濃度における濃度の飽和現象を防止することができ、忠実な階調性の再現が可能であると共に、処理が簡単であるため、データの高速処理が可能である。又、例えばドットの形状に応じてきめの細かい誤差の拡散を行うことができ、微妙なトーンカーブも再現可能となる。
【００１５】
請求項９記載の発明によれば、高い濃度における濃度の飽和現象を防止することができ、忠実な階調性の再現が可能であると共に、処理が簡単であるため、データの高速処理が可能である。更に、入力画像データに応じた補正を行うため、微妙なトーンカーブも再現可能となる。
請求項１０記載の発明によれば、誤差計算処理を行わない部分ができるので、データの処理速度が更に向上する。
【００１６】
請求項１１記載の発明によれば、環境が変化した場合でも、常に安定した濃度を得ることができる。
請求項１２記載の発明によれば、処理を要するビット数を減少させることで、計算精度の著しい低下を伴うことなく、データの処理速度を向上することができる。
【００１７】
請求項１３記載の発明によれば、画像処理装置の特性或いは画像処理装置が接続されるホスト装置の要求に合わせて補正に使用する各種パラメータを自由に設定することができる。
従って、本発明によれば、高い濃度における濃度の飽和現象を防止することができ、忠実な階調性の再現が可能であると共に、処理が簡単であるため、データの高速処理が可能である。
【００１８】
【発明の実施の形態】
本発明になる画像処理装置では、１ドットの大きさが１ドットピッチより大きく設定されていても、誤差拡散方式に補正を加えることで、画像の高い濃度における濃度の飽和を防止して、より忠実な階調性の再現を可能とする。
具体的には、誤差拡散処理系の入力画像データ又は出力画像データに係数を乗算する。
【００１９】
或いは、誤差拡散処理系の減算回路の入力側、減算回路の出力側又はエラーフィルタの出力側で、出力画像データの値に応じて異なる処理を行う。
更に、誤差拡散処理系において、誤差信号を、入力画像データ、誤差信号又は補正値に基づいた拡散マトリクスの値に応じた配分誤差データとして、入力画像データの注目画素の周囲画素に分配しても良い。
【００２０】
又、誤差拡散処理系において、出力画像データを入力画像データに応じて補正しても良い。
以下、実施例により本発明の詳細を説明する。
【００２１】
【実施例】
先ず、本発明になる画像処理装置の第１実施例を説明する。図１は、本実施例が適用されるコンピュータシステムの概略構成を示すブロック図であり、図２は、プリンタシステムのコントローラの概略構成を示すブロック図である。本実施例では、本発明がプリンタシステムに適用されている。
【００２２】
図１に示すコンピュータシステムは、大略プリンタシステム１と、ネットワーク４によりプリンタシステム１と接続された複数の端末装置５−１〜５−Ｎとからなる。プリンタシステム１は、エンジン２とコントローラ３とからなる。本実施例では、端末装置５−１〜５−Ｎは、夫々プリンタドライバ６−１〜６−Ｎを含むコンピュータである。
【００２３】
プリンタシステム１のコントローラ３は、図２に示すように、大略プリンタコントローラ部３−１と、メカコントローラ部３−２とからなる。プリンタコントローラ部３−１は、ネットワークインタフェース（ＩＦ）１１、ワークＲＡＭ１２、フォントメモリ１３、シリアルインタフェース（ＩＦ）１４、ＣＰＵ１５、プログラムＲＯＭ１６、ハードディスク（ＨＤ）接続機構１７、ハードディスク（ＨＤ）ユニット１８、ページバッファ１９、露光制御回路２０及びバス２１からなる。
【００２４】
ネットワークＩＦ１１は、プリンタコントローラ部３−１をネットワーク４のネットワークケーブル４−１を介して端末装置５−１〜５−Ｎに接続する。ワークＲＡＭ１２は、ＣＰＵ１５が処理するデータや計算時の中間データ等を格納する。フォントメモリ１３は、フォントに関するフォントデータを格納する。シリアルＩＦ１４は、メカコントローラ部３−２のシリアルＩＦ２５と接続されている。ＣＰＵ１４は、プリンタコントローラ部３−１全体の制御を行う。プログラムＲＯＭ１６は、ＣＰＵ１５が実効するプログラム等を格納する。ＨＤ接続機構１７は、データを格納するＨＤユニット１８をバス２１に接続する。ページバッファ１９は、データを一時的に格納するために設けられており、ＨＤユニット１８と比較すると高速なデータアクセスが可能である。ネットワークケーブル４−１及びネットワークＩＦ１１を介して得られるデータは、一端ページバッファ１９に格納されてからＨＤ接続機構１７を介してＨＤユニット１８に格納される。又、プリンタコントローラ部３−１から出力されるデータも、一端ＨＤユニット１８から読み出されてページバッファ１９に格納される。露光制御回路２０は、ページバッファ１９からのデータに基づいて、ビデオデータをメカコントローラ部３−２のビデオＩＦ２８に供給する。又、バス２１は、ＣＰＵ１５とネットワークＩＦ１１、ワークＲＡＭ１２、フォントメモリ１３、シリアルＩＦ１４、プログラムＲＯＭ１６、ＨＤ接続機構１７及びページバッファ１９とを接続する。
【００２５】
他方、メカコントローラ部３−２は、シリアルＩＦ２５、入出力（ＩＯ）ポート２６、ワークＲＡＭ２７、ビデオＩＦ２８、ＣＰＵ２９、プログラムＲＯＭ３０、入出力（ＩＯ）ポート３１及びバス３２からなる。
シリアルＩＦ２５は、シリアルＩＦ１４を介してデータの送受信をプリンタコントローラ部３−１と行う。ＩＯポート２６は、プリンタシステム１の表示器２３と接続されており、バス３２上の表示データを表示器２３に供給する。ワークＲＡＭ２７は、ＣＰＵ２９が処理するデータや計算時の中間データ等を格納する。ビデオＩＦ２８は、プリンタコントローラ部３−１の露光制御回路２０からのビデオデータを受信して、周知のレーザ光学系（図示せず）にビデオデータを供給する。ＣＰＵ２９は、メカコントローラ部３−２全体の制御を行う。プログラムＲＯＭ３０は、ＣＰＵ２９が実効するプログラム等を格納する。ＩＯポート３１は、バス３２上のデータ等をプリンタシステム１の周知のプリンタメカ部分（図示せず）に供給すると共に、プリンタメカ部分からの信号をバス３２を介してＣＰＵ２９に供給する。プリンタメカ部分としては、例えばモータ、ソレノイド、電源、スイッチ、センサ等が含まれる。バス３２は、ＣＰＵ２９とシリアルＩＦ２５、ＩＯポート２６、ワークＲＡＭ２７、プログラムＲＯＭ３０及びＩＯポート３１とを接続する。
【００２６】
尚、プリンタシステム１の構成は、上記説明の構成に限定されるものではなく、各種周知の構成のプリンタシステムにも本発明は適用可能である。本発明は、特にコントローラ３内の処理、特にプリンタコントローラ部３−１内のＣＰＵ１５の処理に関するものである。
図３は、第１実施例の要部を示すブロック図である。図３は、図２に示すプリンタコントローラ部３−１内のＣＰＵ１５の動作を機能的に示すもので、逆に言えば、ＣＰＵ１５の代わりに図３に示す構成を用いることで第１実施例の動作を実現できる。
【００２７】
図３において、画像処理装置の誤差拡散処理系は、大略演算器（データ補正回路）４１と、加算器４２と、閾値処理回路４３と、減算器４４と、エラーフィルタ４５とからなる。誤差拡散処理系の概略動作を説明すると、以下のステップ（ｉ）〜（ｖｉｉ）からなる。ステップ（ｉ）は、例えば端末装置５−１からの入力画像データから、注目画素に関する注目画素データを取り出す。ステップ（ｉｉ）は、既に処理された他の画素から注目画素に拡散された誤差値を注目画素データに加え、入力補正データとする。ステップ（ｉｉｉ）は、入力補正データと閾値とを比較する。ステップ（ｉｖ）は、ステップ（ｉｉｉ）での比較の結果、入力補正データの濃度が閾値以上の場合には、注目画素データを黒とし、入力補正データの濃度が閾値より小さい場合には、注目画素データを白とする。ステップ（ｖ）は、入力補正データの値と注目画素データの値との差を示す誤差信号を計算する。ステップ（ｖｉ）は、誤差信号に拡散マトリクスの値を乗算した配分誤差データを、注目画素の周囲の画素に分配する。ステップ（ｖｉｉ）は、分配誤差データをページバッファ１９等の記憶手段に保存して次の順番の画素に対する処理を行う。
【００２８】
上記ステップ（ｉ）は図３に示す以外のＣＰＵ１５の機能を使って行われ、ステップ（ｉｉ）は加算器４２で行われる。ステップ（ｉｉｉ）及び（ｉｖ）は閾値処理回路４３で行われ、ステップ（ｖ）は減算器４４で行われる。ステップ（ｖｉ）及び（ｖｉｉ）はエラーフィルタ４５で行わる。尚、ステップ（ｖｉｉ）は図３に示す以外のＣＰＵ１５の機能を使って行っても良い。
【００２９】
本実施例では、上記ステップ（ｉ）とステップ（ｉｉ）との間に、注目画素データに係数１／Ａを乗算するステップ（Ｓ）を設けたことを特徴とする。このステップ（Ｓ）は、図３に示す演算器４１で行われる。これにより、注目画像データの画素データの値を変化させて、ドットの個数を調整することで画像の濃度を調整することができる。
【００３０】
ここで、説明の便宜上、入力画像データが白を０、黒を２５５とする８ビットのビットマップデータとし、閾値処理回路４３から出力される２値の出力画像データが白の場合０で黒の場合１であるものとすると、Ａ＝２の場合の図３に示す誤差拡散処理系の処理は図４に示す如くとなる。図４中、左側は図３に示す演算器４１を設けない場合の処理を示し、右側は図３に示す演算器４１が設けられている場合の処理を示す。又、図４中、（ａ）は注目画素データ、即ち、入力画素データの値が１４０の場合、（ｂ）は入力画素データの値が８０の場合を示す。
【００３１】
先ず、演算器４１が設けられない場合の処理を説明する。この場合、図４（ａ）の左側に示すように、入力画素データの値が１４０であり、エラーフィルタ４５から出力されるエラー値が２０であると、加算器４２が出力する入力補正データの値は１６０（＝１４０＋２０）となる。エラー値は、周囲画素から注目画素に対して拡散された誤差値の和である。閾値が１２８で閾値処理回路４３の出力画素データの値が１（黒）であると、減算器４４が出力する誤差信号の値は−９５（＝１６０−２５５）となる。この誤差信号は、エラーフィルタ４５の拡散マトリクスの値に応じた配分誤差データとして周囲画素に分配される。
【００３２】
次に、演算器４１が設けられる本実施例の場合の処理を説明する。この場合、図４（ａ）の右側に示すように、入力画素データの値が１４０であり、エラーフィルタ４５から出力されるエラー値が２０であると、演算器４１は入力画素データの値に係数１／２を乗算するので、演算器４１の出力画素データの値は７０（＝１４０÷２）となり、加算器４２が出力する入力補正データの値は９０（＝７０＋２０）となる。閾値が６４（＝１２８÷２）で閾値処理回路４３の出力画素データの値が１（黒）であると、減算器４４が出力する誤差信号の値は−１６５（＝９０−２５５）となる。この誤差信号は、拡散マトリクスの値に応じた配分誤差データとして周囲画素に分配される。例えば、図５中「＊」印で示す注目画素の周囲画素に対する配分が同図に示すように設定されていると、注目画素の右下の画素に対する分配は−１６５×（１／１６）≒−１０．３となり、注目画素の下の画素に対する分配は−１６５×（５／１６）≒−５１．６となる。
【００３３】
このように、演算器４１を設けない場合には誤差信号の値が−１０５であるのに対し、本実施例によれば、演算器４１を設けることにより誤算信号の値が−１６５となり、演算器４１を設けない場合に比べてより大きなマイナスの誤差が周囲画素に拡散される。従って、本実施例によれば、黒画素になるドットを減少させることができ、ドットの直径が大きいことによる濃度の過度な増加が抑さえられ、本来求めたかった画像の濃度を得ることができる。
【００３４】
尚、演算器４１が設けられない場合、図４（ｂ）の左側に示すように、入力画素データの値が８０であり、エラーフィルタ４５から出力されるエラー値が２０であると、加算器４２が出力する入力補正データの値は１００（＝８０＋２０）となる。閾値が１２８で閾値処理回路４３の出力画素データの値が０（白）であると、減算器４４が出力する誤差信号の値は１００（＝１００−０）となる。この誤差信号は、エラーフィルタ４５の拡散マトリクスの値に応じた配分誤差データとして周囲画素に分配される。
【００３５】
又、演算器４１が設けられる場合、図４（ｂ）の右側に示すように、入力画素データの値が８０であり、エラーフィルタ４５から出力されるエラー値が２０であると、演算器４１は入力画素データの値に係数１／２を乗算するので、演算器４１の出力画素データの値は４０（＝８０÷２）となり、加算器４２が出力する入力補正データの値は６０（＝４０＋２０）となる。閾値が６４（＝１２８÷２）で閾値処理回路４３の出力画素データの値が０（白）であると、減算器４４が出力する誤差信号の値は６０（＝６０−０）となる。この誤差信号は、拡散マトリクスの値に応じた配分誤差データとして周囲画素に分配される。
【００３６】
このように、演算器４１を設けない場合には誤差信号の値が１００であるのに対し、本実施例によれば、演算器４１を設けることにより誤算信号の値が６０となり、演算器４１を設けない場合に比べてより小さなプラスの誤差が周囲画素に拡散される。従って、本実施例によれば、白画素になるドットを増加させることができ、ドットの直径が大きいことによる濃度の過度な増加が抑さえられ、本来求めたかった画像の濃度を得ることができる。
【００３７】
図６は、入力補正データの値を変えた場合のドット数の変化を、係数Ａが１，１．２，１．４，１．６，１．８，２，２．５，３の場合について示す図である。説明の便宜上、同図は入力画像データを１６×１６ドットの範囲で注目して処理を行った場合の処理結果を示す。同図中、縦軸はドット数、横軸は注目画素データ、即ち、入力画素データの値を示す。
【００３８】
又、図７は、本実施例に基づいて誤差拡散方式による処理を行った画像データをプリンタシステム（レーザプリンタ）により印刷したサンプル画像の階調特性を示す図である。同図中、縦軸はＣＩＥＬＡＢ色空間のＬ＊，ａ＊，ｂ＊軸のうちＬ＊軸（明度）を示し、横軸は注目画素データ、即ち、入力画素データの値（輝度、濃度）を示す。又、黒丸印は演算器４１が設けられており係数１／Ａ＝１／２の場合の階調特性を示し、白丸印は演算器４１が設けられない場合の階調特性を示す。
【００３９】
本実施例では、Ａ＝２の場合を例に取って説明したが、Ａの値は勿論２に限定されるものではない。しかし、Ａ＝２の場合は、演算器４１において２値のデータを１ビットシフトすることで簡単に演算を行うことができるので、高速なデータ処理が可能である。
又、データの処理の高速化を実現するため、演算器４１を２のべき乗で除算を行った後に加算を行う構成とすることにより、演算時間を短縮することができる。つまり、係数１／Ａが例えば１２０／２５６の場合、１２０は１２８−８で表せるので、１２０／２５６を１２０／２５６−８／２５６に分解する。入力画素データの値を１ビット右（ＬＳＢ方向）へシフトすると、入力画素データの１２８／２５６倍の値Ｂが得られ、入力画素データの値を５ビット右（ＬＳＢ方向）へシフトすると、入力画素データの８／２５６倍の値Ｃが得られる。そこで、Ｂ−Ｃを計算することで、入力画素データの１２０／２５６倍の画素データを得ることができる。このように、シフト演算、加算及び減算を行うと、乗算及び除算を行う場合と比べて短時間で演算が行え、データの高速処理が可能となる。
【００４０】
尚、演算器４１で用いる係数１／Ａは、プリンタシステム１のエンジン２の特性等に応じて予め設定すれば良く、図６等に基づいて設定することもできる。
図８は、演算器４１の構成の一実施例を示すブロック図である。演算器４１は、図８に示す如く接続された比較器４１１と、閾値テーブル４１２と、係数テーブル４１３と、係数決定回路４１４と、演算回路４１５とからなる。注目画素データ、即ち、入力画素データは、比較器４１１及び演算回路４１５に供給される。比較器４１１は、入力画素データの値と、閾値テーブル４１２に格納されている複数の閾値とを比較し、比較結果を係数決定回路４１４に供給する。係数テーブル４１３は、閾値テーブル４１２に格納されている複数の閾値に対応する複数の係数を格納しており、閾値テーブル４１２から比較器４１１に供給される閾値に対応する係数が係数テーブル４１３から係数決定回路４１４に供給される。係数決定回路４１４は、比較器４１１からの比較結果が所定範囲内であると、係数テーブル４１３からの係数を演算回路４１５に供給する。これにより、演算回路４１５は、入力画素データに係数決定回路４１４により決定された係数を乗算した結果を出力する。つまり、図８に示す構成によれば、入力画素データの値に応じて、乗算される係数が自動的に最適値に切り替えられる。
【００４１】
尚、係数は、入力画素データの値に応じて切り替える代わりに、例えば、注目画素の周辺画素に関する画素データの値又はそれらの平均値に応じて切り替える構成としても良い。
次に、本発明になる画像処理装置の第２実施例を説明する。図９は、第２実施例の要部を示すブロック図である。同図中、図３と実質的に同じ機能を有する部分は同一符号で示し、その説明は省略する。
【００４２】
図９において、画像処理装置の誤差拡散処理系は、大略加算器４２と、閾値処理回路４３と、減算器４４と、エラーフィルタ４５と、データ補正回路４６とからなる。本実施例では、上記ステップ（ｖ）において、入力補正データの値と注目画素データの値との差を示す誤差信号を計算する際に、データ補正回路４６により補正を加えることを特徴とする。具体的には、データ補正回路４６は、閾値処理回路４３が出力する画素データの値に係数Ｂを乗算する。
【００４３】
ここで、説明の便宜上、入力画像データが白を０、黒を２５５とする８ビットのビットマップデータとし、閾値処理回路４３から出力される２値の出力画像データが白の場合０で黒の場合１であるものとすると、Ｂ＝２の場合の図９に示す誤差拡散処理系の処理は図１０に示す如くとなる。図１０中、左側は図９に示すデータ補正回路４６を設けない場合の処理を示し、右側は図９に示すデータ補正回路４６が設けられている場合の処理を示す。又、図１０中、（ａ）は注目画素データ、即ち、入力画素データの値が１４０の場合、（ｂ）は入力画素データの値が８０の場合を示す。
【００４４】
先ず、データ補正回路４６が設けられない場合の処理を説明する。この場合、図１０（ａ）の左側に示すように、入力画素データの値が１４０であり、エラーフィルタ４５から出力されるエラー値が２０であると、加算器４２が出力する入力補正データの値は１６０（＝１４０＋２０）となる。エラー値は、周囲画素から注目画素に対して拡散された誤差値の和である。閾値が１２８で閾値処理回路４３の出力画素データの値が１（黒）であると、減算器４４が出力する誤差信号の値は−９５（＝１６０−２５５）となる。この誤差信号は、エラーフィルタ４５の拡散マトリクスの値に応じた配分誤差データとして周囲画素に分配される。
【００４５】
次に、データ補正回路４６が設けられる本実施例の場合の処理を説明する。この場合、図１０（ａ）の右側に示すように、入力画素データの値が１４０であり、エラーフィルタ４５から出力されるエラー値が２０であると、加算器４２が出力する入力補正データの値は１６０（＝１４０＋２０）となる。閾値が１２８で閾値処理回路４３の出力画素データの値が１（黒）であると、データ補正回路４６は、黒を示す出力画素データの値である１を２５５に補正すると共に、この補正値２５５に係数Ｂ＝２を乗算する。これにより、データ補正回路４６は、出力補正値５１０（＝２５５×２）を減算器４４に供給する。従って、この場合に減算器４４が出力する誤差信号の値は−３５０（＝１６０−５１０）となる。この誤差信号は、拡散マトリクスの値に応じた配分誤差データとして周囲画素に分配される。例えば、図５中「＊」印で示す注目画素の周囲画素に対する配分が同図に示すように設定されていると、注目画素の右下の画素に対する分配は−３５０×（１／１６）≒−２１．９となり、注目画素の下の画素に対する分配は−３５０×（５／１６）≒−１０９．４となる。
【００４６】
このように、データ補正回路４６を設けない場合には誤差信号の値が−９５であるのに対し、本実施例によれば、データ補正回路４６を設けることにより誤算信号の値が−３５０となり、データ補正回路４６を設けない場合に比べてより大きなマイナスの誤差が周囲画素に拡散される。従って、本実施例によれば、黒画素になるドットを減少させることができ、ドットの直径が大きいことによる濃度の過度な増加が抑さえられ、本来求めたかった画像の濃度を得ることができる。
【００４７】
尚、データ補正回路４６が設けられない場合、図１０（ｂ）の左側に示すように、入力画素データの値が８０であり、エラーフィルタ４５から出力されるエラー値が２０であると、加算器４２が出力する入力補正データの値は１００（＝８０＋２０）となる。閾値が１２８で閾値処理回路４３の出力画素データの値が０（白）であると、減算器４４が出力する誤差信号の値は１００（＝１００−０）となる。この誤差信号は、エラーフィルタ４５の拡散マトリクスの値に応じた配分誤差データとして周囲画素に分配される。
【００４８】
又、データ補正回路４６が設けられる場合、図１０（ｂ）の右側に示すように、入力画素データの値が８０であり、エラーフィルタ４５から出力されるエラー値が２０であると、加算器４２が出力する入力補正データの値は１００（＝８０＋２０）となる。閾値が１２８で閾値処理回路４３の出力画素データの値が０（白）であると、データ補正回路４６は、白を示す出力画素データの値である０に係数Ｂ＝２を乗算する。これにより、データ補正回路４６は、出力補正値０（＝０×２）を減算器４４に供給する。従って、この場合も減算器４４が出力する誤差信号の値は１００（＝１００−０）となる。この誤差信号は、エラーフィルタ４５の拡散マトリクスの値に応じた配分誤差データとして周囲画素に分配される。
【００４９】
本実施例では、画像の濃度を予め変換して得た画像データを加算器４２に供給する必要がないため、データの処理が簡単であり、データの高速処理が可能となる。更に、データ補正回路４６で用いる係数Ｂは、プリンタシステム１のエンジン２の特性等に応じて予め設定すれば良い。
次に、本発明になる画像処理装置の第３実施例を説明する。図１１は、第３実施例の要部を示すブロック図である。同図中、図９と実質的に同じ機能を有する部分は同一符号で示し、その説明は省略する。
【００５０】
図１１において、画像処理装置の誤差拡散処理系は、大略加算器４２と、閾値処理回路４３と、減算器４４と、エラーフィルタ４５と、データ補正回路４７とからなる。本実施例では、上記ステップ（ｖ）において、入力補正データの値と注目画素データの値との差を示す誤差信号を計算する際に、データ補正回路４７により補正を加えることを特徴とする。具体的には、データ補正回路４７は、閾値処理回路４３が出力する画素データの値が１であるか０であるかに応じて、減算器４４が出力する誤差信号の値に乗算する係数を切り替える。つまり、閾値処理回路４３が出力する画素データの値が黒を示す１である場合、減算器４４の出力する誤差信号の値がマイナスであるため、データ補正回路４７は誤差信号の値に１より大きな係数Ｃを乗算して出力する。他方、閾値処理回路４３が出力する画素データの値が白を示す０である場合、減算器４４の出力する誤差信号の値がプラスであるため、データ補正回路４７は誤差信号の値をそのまま、即ち、係数１を乗算して出力する。
【００５１】
本実施例においても、上記第２実施例と同様の効果を得ることができる。
次に、本発明になる画像処理装置の第４実施例を説明する。図１２は、第４実施例の要部を示すブロック図である。同図中、図９と実質的に同じ機能を有する部分は同一符号で示し、その説明は省略する。
図１２において、画像処理装置の誤差拡散処理系は、大略加算器４２と、閾値処理回路４３と、減算器４４と、エラーフィルタ４５と、データ補正回路４８とからなる。本実施例では、上記ステップ（ｖｉ）において、誤差信号に拡散マトリクスの値を乗算した配分誤差データを、注目画素の周囲の画素に分配する際に、データ補正回路４８により補正を加えることを特徴とする。具体的には、データ補正回路４８は、エラーフィルタ４５が出力するエラー値がマイナスであるかプラスであるかに応じて、エラーフィルタ４５が出力するエラー値に乗算する係数を切り替える。つまり、閾値処理回路４３が出力する画素データの値が黒を示す１である場合、減算器４４が出力する誤差信号の値及びエラーフィルタ４５の出力するエラー値が夫々マイナスであるため、データ補正回路４８はエラー値に１より大きな係数Ｃを乗算して出力する。他方、閾値処理回路４３が出力する画素データの値が白を示す０である場合、減算器４４の出力する誤差信号の値及びエラーフィルタ４５の出力するエラー値が夫々プラスであるため、データ補正回路４８はエラー値をそのまま、即ち、係数１を乗算して出力する。
【００５２】
本実施例においても、上記第２実施例と同様の効果を得ることができる。更に、本実施例では、誤差信号に拡散マトリクスの値を乗算した配分誤差データを、注目画素の周囲の画素に分配してから補正を加えるため、特別なオーバーフロー対策を取らなくても、オーバーフローによる問題が発生しにくいというメリットもある。
【００５３】
次に、本発明になる画像処理装置の第５実施例を説明する。図１３は、第５実施例の要部を示すブロック図である。同図中、図９と実質的に同じ機能を有する部分は同一符号で示し、その説明は省略する。
図１３において、画像処理装置の誤差拡散処理系は、大略加算器４２と、閾値処理回路４３と、減算器４４と、エラーフィルタ５１，５２と、切り換え器５３とからなる。本実施例では、上記ステップ（ｖｉ）において、誤差信号に拡散マトリクスの値を乗算した配分誤差データを、注目画素の周囲の画素に分配する際に、閾値処理回路４３が出力する画素データの値が黒を示すが白を示すかに応じて異なる拡散マトリクスを用いることを特徴とする。具体的には、減算器４４の出力する誤差信号は、エラーフィルタ５１，５２及び切り換え器５３に供給される。エラーフィルタ５１は、閾値処理回路４３の出力する画素データの値が黒を示す１の場合、即ち、減算器４４の出力する誤差信号の値がマイナスの場合に適した拡散マトリクスを用いて配分誤差データを注目画素の周囲の画素に分配する。他方、エラーフィルタ５２は、閾値処理回路４３の出力する画素データの値が白を示す０の場合、即ち、減算器４４の出力する誤差信号の値がプラスの場合に適した拡散マトリクスを用いて配分誤差データを注目画素の周囲の画素に分配する。エラーフィルタ５１，５２の出力エラー値は、切り換え器５３に供給される。切り換え器５３は、減算器４４からの誤差信号の値がマイナスの場合はエラーフィルタ５１の出力エラー値を加算器４２に供給し、減算器４４からの誤差信号の値がプラスの場合はエラーフィルタ５２の出力エラー値を加算器４２に供給するように、誤差信号により切り換えられる。
【００５４】
本実施例によれば、例えばドットの形状に応じて、エラーフィルタ５１，５２の構成、即ち、使用する拡散マトリクス等を変更することで、きめの細かい誤差拡散を行えるというメリットがある。
次に、本発明になる画像処理装置の第６実施例を説明する。図１４は、第６実施例の要部を示すブロック図である。同図中、図１３と実質的に同じ機能を有する部分は同一符号で示し、その説明は省略する。本実施例では、上記第５実施例を更に拡張している。
【００５５】
図１４において、画像処理装置の誤差拡散処理系は、大略加算器４２と、閾値処理回路４３と、減算器４４と、エラーフィルタ５４〜５７と、誤差信号弁別器５８と、切り換え器５９とからなる。本実施例では、上記ステップ（ｖｉ）において、誤差信号に拡散マトリクスの値を乗算した配分誤差データを、注目画素の周囲の画素に分配する際に、減算器４４が出力する誤算信号のレベルに応じて異なる拡散マトリクスを用いることを特徴とする。具体的には、減算器４４の出力する誤差信号は、エラーフィルタ５４〜５７に供給されると共に、誤算信号弁別器５８にも供給される。エラーフィルタ５４〜５７は、減算器４４の出力する誤差信号の値の４つの範囲に夫々に適しており、且つ、互いに異なる拡散マトリクスを用いて配分誤差データを注目画素の周囲の画素に分配する。エラーフィルタ５４〜５７の出力エラー値は、切り換え器５９に供給される。切り換え器５９には、誤差信号のレベルに応じた切り換え信号が補正値弁別器５８より供給されている。これにより、切り換え器５９は誤差信号弁別器５８からの切り換え信号に基づいて、誤差信号の値の範囲に適した拡散マトリクスを使用するエラーフィルタの出力エラー値を選択出力するように切り換えられる。
【００５６】
本実施例によれば、上記第５実施例より更にきめの細かい誤差拡散を行えるというメリットがある。又、誤差信号のレベルに応じて誤差拡散処理を換えることができるので、微妙なトーンカーブの再現も可能となる。
次に、本発明になる画像処理装置の第７実施例を説明する。図１５は、第７実施例の要部を示すブロック図である。同図中、図１４と実質的に同じ機能を有する部分は同一符号で示し、その説明は省略する。本実施例では、上記第５実施例を上記第６実施例とは異なる手法を用いて更に拡張している。
【００５７】
図１５において、画像処理装置の誤差拡散処理系は、大略加算器４２と、閾値処理回路４３と、減算器４４と、エラーフィルタ５４〜５７と、切り換え器５９と、補正値弁別器６０とからなる。本実施例では、上記ステップ（ｖｉ）において、誤差信号に拡散マトリクスの値を乗算した配分誤差データを、注目画素の周囲の画素に分配する際に、加算器４２が出力する補正値のレベルに応じて異なる拡散マトリクスを用いることを特徴とする。具体的には、減算器４４の出力する誤差信号は、エラーフィルタ５４〜５７に供給され、加算器４２の出力する補正値は、補正値弁別器６０に供給される。エラーフィルタ５４〜５７は、減算器４４の出力する誤差信号の値の４つの範囲に夫々に適しており、且つ、互いに異なる拡散マトリクスを用いて配分誤差データを注目画素の周囲の画素に分配する。エラーフィルタ５４〜５７の出力エラー値は、切り換え器５９に供給される。切り換え器５９には、補正値のレベルに応じた切り換え信号が補正値弁別器６０より供給されている。これにより、切り換え器５９は補正値弁別器６０からの切り換え信号に基づいて、誤差信号の値の範囲に適した拡散マトリクスを使用するエラーフィルタの出力エラー値を選択出力するように切り換えられる。
【００５８】
本実施例によれば、上記第５実施例より更にきめの細かい誤差拡散を行えるというメリットがある。又、補正値のレベルに応じて誤差拡散処理を換えることができるので、微妙なトーンカーブの再現も可能となる。
次に、本発明になる画像処理装置の第８実施例を説明する。図１６は、第８実施例の要部を示すブロック図である。同図中、図３と実質的に同じ機能を有する部分は同一符号で示し、その説明は省略する。本実施例では、上記第５実施例を上記第７実施例とは異なる手法を用いて更に拡張している。
【００５９】
図１６において、画像処理装置の誤差拡散処理系は、大略加算器４２と、閾値処理回路４３と、エラーフィルタ４５と、補正値算出回路６３と、減算器６４とからなる。本実施例では、上記ステップ（ｖ）の代わりに、補正値算出回路６３及び減算器６４による処理を行うことを特徴とする。具体的には、補正値算出回路６３は、閾値処理回路４３の出力画素データを、入力画素データに基づいて補正し、補正値データを減算器６４に供給する。減算器６４は、入力画素データから補正値算出回路６３の出力補正値データを減算することで、誤差信号を生成してエラーフィルタ４５に供給する。
【００６０】
図１７は、補正値算出回路６３の動作を説明する図である。同図中、縦軸は補正値算出回路６３から出力される補正値を任意単位で示し、横軸は補正値算出回路６３に入力される入力値、即ち、閾値処理回路４３の出力画素データを、任意単位で示す。同図（Ａ）は、入力値と補正値との関係を階段状とした場合を示し、同図（Ｂ）は、入力値と補正値との関係を折れ線状とした場合を示す。
【００６１】
本実施例によれば、入力画像データのレベルに応じて誤差拡散処理を換えることができるので、微妙なトーンカーブの再現も可能となる。
次に、本発明になる画像処理装置の第９実施例を説明する。図１８は、第９実施例の要部を示すブロック図である。同図中、図９と実質的に同じ機能を有する部分は同一符号で示し、その説明は省略する。
【００６２】
図１８において、画像処理装置は、ウィンドウ切り出し回路７１と、データ判定回路７２と、図９同様な誤差拡散処理系７３とからなる。ウィンドウ切り出し回路７１は、入力画像データから所定範囲のウィンドウを切り出して、注目画素及びその周囲画素に関する画素データを抽出してデータ判定回路７２に供給する。例えば、説明の便宜上、ウィンドウ切り出し回路７１が３×３ドットのウィンドウを切り出すものとすると、このウィンドウの中央に位置する注目画素の画素データ及び注目画素の周囲に存在する８つの周囲画素に関する画素データが抽出されてデータ判定回路７２に供給される。データ判定回路７２は、計９つの注目及び周囲画素データが全て同じ値であるか否かに応じて、画素データをそのまま２値データに変換して出力するか、或いは、後段の誤差拡散処理系７３にて処理するかを判定する。つまり、ウィンドウ内の画素データが全て黒又は全て白を示している場合、ウィンドウ内では黒ベタ又は白ベタの印刷が行われるので、誤差拡散処理系７３による誤差拡散処理は行わずに、画素データをそのまま１又は０の２値データに変換してデータ判定回路７２から出力画素データとして出力する。他方、ウィンドウ内の画素データが全て黒又は全て白を示していない場合、即ち、ウィンドウ内で１つでも他の画素と異なるデータ値の画素が存在する場合には、画素データはデータ判定回路７２から誤差拡散処理系７３に供給され、上記第２実施例と同様な誤差拡散処理が行われ、処理された結果が出力画素データとして出力される。
【００６３】
本実施例によれば、補正値によっては黒ベタの部分でも濃度が上がりきらない問題を解決することができる。又、黒ベタ又は白ベタの部分では、誤差拡散処理を行わないので、全体としてもデータ処理速度が向上する。
図１９は、上記第９実施例の処理をＣＰＵ１５で行う場合のＣＰＵ１５の動作を説明するためのフローチャートである。同図中、破線Ｓで囲まれたステップＳ１１〜Ｓ２０の処理は、図１８に示す誤差拡散処理系７３の処理に対応している。
【００６４】
プリンタシステム１に入力画像データが供給されると、図１９に示すステップＳ０で入力画像データが入力バッファ（図示せず）に蓄積される。この入力バッファは、例えば図２に示すプリンタコントローラ部３−１内のページバッファ１９であっても良い。この状態で、図１８に示す画像処理装置の処理が開始される。
【００６５】
ステップＳ１は、入力バッファから読み出した入力画像データのうち、注目画素を中心とする３×３ドットのウィンドウ内の画素データを切り出す。ステップＳ２は、ウィンドウ内の画素データの値が全て０であるか否かを判定し、判定結果がＹＥＳであると、ステップＳ３で出力画素データの値を０に変換し、処理は後述するステップＳ４へ進む。他方、ステップＳ２の判定結果がＮＯであると、ステップＳ５は、ウィンドウ内の画素データの値が全て２５５であるか否かを判定し、判定結果がＹＥＳであると、ステップＳ６で出力画素データの値を１に変換し、処理はステップＳ４へ進む。ステップＳ４は、誤差信号の値を０に設定し、処理は後述するステップＳ１６へ進む。尚、ステップＳ３又はＳ６の後、処理は後述するステップＳ１３へも平行して進む。
【００６６】
ステップＳ５の判定結果がＮＯであると、ステップＳ１１は、入力画素データと既に計算された誤差信号との和を求めて補正信号（入力補正値）を生成する。ステップＳ１２は、閾値処理回路４３の処理に対応する閾値処理を行い、処理はステップＳ１３へ進む。ステップＳ１３は、出力画像データを例えばページバッファ１９に書き込むことにより、出力画像データの保存を行う。ステップＳ１４は、データ補正回路４６の処理に対応する補正処理を行い、ステップＳ１５は、出力画素データと補正信号との差から誤差信号を求める。
【００６７】
ステップＳ１６は、誤差信号に拡散マトリクスの値を乗算した配分誤差データを、注目画素の周囲の画素に分配する。つまり、ステップＳ１６は、エラーフィルタ４５の係数に応じて周囲画素に分配する値を計算して保持する。ステップＳ１７は、入力画像データが示す画像のラインが最後のラインであるか否かを判定し、判定結果がＮＯであると、ステップＳ１８で処理の対象となる次の画素に移動して、処理はステップＳ１へ戻る。他方、ステップＳ１７の判定結果がＹＥＳであると、ステップＳ１９で入力画像データが示す画像の最後の画素に達したか否かを判定し、判定結果がＹＥＳであると処理は終了する。ステップＳ１９の判定結果がＮＯであると、ステップＳ２０は処理の対象となる次のラインに移動して、処理はステップＳ１へ戻る。
【００６８】
次に、本発明になる画像処理装置の第１０実施例を説明する。図２０は、第１０実施例の要部を示すブロック図である。同図中、図１及び図９と実質的に同じ機能を有する部分は同一符号で示し、その説明は省略する。
本実施例では、データ補正回路７６が、エンジン２から得られる環境変動に関するデータに基づいて誤差拡散処理のデータ補正を行うことを特徴とする。つまり、環境変動に対する印刷特性の変動を予め測定して対応する補正データを作成しておくことで、環境が変動しても対応する補正データを用いてデータ補正を制御することにより、常に安定した濃度で印刷を行うことができる。
【００６９】
環境変動には、例えば、温度変化、湿度変化、印刷に使用する記録紙を変更することに伴う記録紙の特性変化等が含まれる。本実施例では、説明の便宜上、環境変動が温度変化である場合を例に取って説明するが、環境変動は温度変化に限定されるものではない。
図２１は、レーザ光学系の感光体のうち、レーザ光により露光された部分の表面電位（以下、明部電位）ＶＬと温度との関係を示す図である。又、図２２は、ドット径と温度との関係を夫々任意単位で示す図である。従って、図２１及び図２２から、温度に対するデータ補正値を予め作成しておくことができる。図２３は、温度センサから得られる電圧データＶ１〜ＶＭと対応するデータ補正値Ｃ１〜ＣＭとを格納するテーブルを示す図である。データ補正回路７６は、温度センサから得られる電圧データに基づいて、図２３に示す如きテーブルを使用して対応するデータ補正値、即ち、検出された温度に最適なデータ補正値を読み出してデータ補正を行うことで、環境変動（この場合は温度変化）に対しての印刷特性（ドット径）の変動を補正して、安定な階調特性を再現することができる。
【００７０】
図２４は、本実施例で使用し得る温度センサの一実施例を示す図である。温度センサは、同図に示す如く接続されたサーミスタ８１と、抵抗Ｒ１〜Ｒ７と、オペアンプ８２と、アナログ／デジタル（ＡＤ）コンバータ８３とからなる。サーミスタ８１で検出された温度データは、抵抗及びオペアンプ８２を介してＡＤコンバータ８３に供給され、検出された温度に対応するデジタル電圧データに変換される。ＡＤコンバータ８３が出力するデジタル電圧データは、図１に示すコントローラ３のプリンタコントローラ部３−１に、具体的には図２に示すネットワークＩＦ１１及びバス２１を介してＣＰＵ１５に供給される。
【００７１】
尚、本実施例は、上記第１〜第９実施例において、乗算に使用する係数やエラーフィルタの係数等を環境変動に応じたデータ補正値で補正することにより、組み合わせてプリンタシステムに適用することも可能である。
次に、本発明になる画像処理装置の第１１実施例を図２５と共に説明する。本実施例における誤差拡散処理系は、図３に示す第１実施例と同様の構成を使用できるので、その図示及び説明は省略する。本実施例は、演算器４１で乗算する係数の値を、入力画素データの値に応じて切り換えることを特徴とする。
【００７２】
図２５は、本実施例の処理をＣＰＵ１５で行う場合のＣＰＵ１５の動作を説明するためのフローチャートである。図２５中、図１９と実質的に同じステップには同一符号を付し、その説明は省略する。尚、図２５中、破線ＳＡで囲まれたステップＳ１１Ａ〜Ｓ２０の処理は、図３に示す誤差拡散処理系の処理に対応しており、破線１２Ａで囲まれたステップＳ１２Ａ−１〜１２Ａ−３は、図１９に示すステップＳ１２に対応している。
【００７３】
プリンタシステム１に入力画像データが供給されると、図２５に示すステップＳ０で入力画像データが入力バッファ（図示せず）に蓄積される。この状態で、図１８に示す画像処理装置の処理が開始される。
ステップＳ４０は、入力バッファから入力画素データを読み出し、ステップＳ４１は、入力画素データが閾値ＴＨ１より小さいか否かを判定する、ステップＳ４１の判定結果がＮＯであると、ステップＳ４２は、入力画素データが閾値ＴＨ２より小さいか否かを判定する。ステップＳ４２の判定結果がＮＯであると、以下同様な処理が行われ、ステップＳ４ｎは、入力画素データが閾値ＴＨｎより小さいか否かを判定する。ステップＳ５１は、ステップＳ４１の判定結果がＹＥＳであると、入力画素データに係数Ｋ１を乗算する。ステップＳ５２は、ステップＳ４２の判定結果がＹＥＳであると、入力画素データに係数Ｋ２を乗算する。以下同様な処理が行われ、ステップＳ４ｎの判定結果がＹＥＳであると、ステップＳ５ｎは入力画素データに係数Ｋｎを乗算する。又、ステップＳ４ｎの判定結果がＮＯであると、ステップＳ５ｎ＋１は入力画素データに係数Ｋｎ＋１を乗算する。
【００７４】
ステップＳ５１〜Ｓ５ｎ＋１のうちいずれかの後、処理はステップＳ１１Ａへ進む。ステップＳ１１Ａは、入力画素データと既に拡散されているエラー値との和、即ち、既に計算された誤差信号との和を求めて補正信号（入力補正値）を生成する。ステップＳ１２Ａは、閾値処理回路４３の処理に対応する閾値処理を行い、処理はステップＳ１５へ進む。ステップＳ１２Ａでは、ステップＳ１２Ａ−１が入力補正値が閾値より小さいか否かを判定し、判定結果がＹＥＳであると、ステップＳ１２Ａ−２で出力画素データを白画素とし、処理はステップＳ１５へ進む。他方、ステップＳ１２Ａ−１の判定結果がＮＯであると、ステップＳ１２Ａ−３が出力画素データを黒画素とし、処理がステップＳ１５へ進む。ステップＳ１５は、出力画素データと補正信号との差から誤差信号を求める。ステップＳ１５以降の処理は、図１９の場合と実質的に同じである。
【００７５】
本実施例では、入力画素データの値に応じて乗算器４１で乗算に用いる係数の値を切り換えるので、濃度を細かく制御し、特に高い濃度での濃度の飽和現象を防止することができる。尚、ステップＳ４１〜Ｓ４ｎで使用する閾値ＴＨ１〜ＴＨｎの数が比較的大きい場合には、先ず入力画素データの値が取り得る範囲の中心付近の閾値と入力画素データとを比較し、次に前回の比較に使用した範囲の中心付近の閾値と入力画素データとを比較することを繰り返すことで、平均の比較回数を少なくし、全体としてのデータ処理時間を短縮することができる。
【００７６】
次に、本発明になる画像処理装置の第１２実施例を説明する。上記第１〜第１１実施例において、入力画素データが８ビットであっても、誤差拡散処理は１６ビットのデータで行うと、誤差の計算精度が向上する。しかし、処理速度の面から見ると、データのビット数が大きい程処理時間が長くなってしまう。そこで、本実施例では、計算精度を著しく低下させることなく処理速度を向上する手段を設ける。
【００７７】
つまり、例えば上記第２実施例におけるデータ補正回路４６によるデータ補正を行わない場合には誤差信号の値が２５５程度までであるが、上記第２実施例の場合、データ補正回路４６によるデータ補正により誤差信号の値は５００程度にまでなる。このため、８ビットでデータ処理を行うことは困難である。そこで、本実施例では、入力画素データの値を例えば２ビットＬＳＢ方向へシフトすることで、値を１／４に変換する処理を行う。この変換処理は、上記第１実施例の場合は、演算器４１の前段又は演算器４１内で行え、シフト処理には例えばシフトデジスタ等を使用できる。演算器４１内で変換処理を行う場合、例えば図８において、比較器４１１の入力段にシフトレジスタ４１１Ａを設けても良い。このような変換処理を行うことで、誤差拡散処理系全体の計算を８ビットで行うことができ、処理速度の低下を防止することができる。尚、上記変換処理により計算精度は若干低下するが、実用上問題はない。
【００７８】
上記変換処理は、上記第２〜第１１実施例で行う夫々の処理に応じた位置で行えば良い。
次に、本発明になる画像処理装置の第１３実施例を説明する。図２６は、本実施例を説明するためのブロック図であり、同図中、図１と同一部分には同一符号を付し、その説明は省略する。
【００７９】
プリンタシステム１のエンジン２は、ホスト装置（ホストコンピュータ）９１と接続されている。エンジン２のパネル（図示せず）で設定された値は、ホスト装置９１へ送られる。これにより、ホスト装置９１は、プリンタシステム１で設定された各種条件や情報を認識することができる。そこで、本実施例では、エンジン２のパネルで演算器４１で用いる係数、データ補正回路４６〜４８，７６で用いる係数、エラーフィルタ４５，５１，５２，５４〜５７で用いる係数、補正値算出回路６３で用いる入力値対補正値特性等のパラメータを設定し、ホスト装置９１にこれらのパラメータを送ることで、ホスト装置９１側でもこれらのパラメータに基づいてプリンタシステム１側と同じ条件で誤差拡散処理を行うことができる。これにより、ホスト装置９１側で処理された画像データと、プリンタシステム１側で処理された画像データとの間で互換性があり、ホスト装置９１を含むシステム全体の統一性が保たれる。
【００８０】
又、同様にして、ホスト装置９１からパラメータを設定してプリンタシステム１に送ることで、ホスト装置９１により演算器４１で用いる係数、データ補正回路４６〜４８，７６で用いる係数、エラーフィルタ４５，５１，５２，５４〜５７で用いる係数、補正値算出回路６３で用いる入力値対補正値特性等を切り換え設定することも可能である。
【００８１】
ところで、本発明はプリンタへの適用に限定されるものではなく、例えばファクシミリ装置を含む各種画像処理装置に適用可能であることは言うまでもない。以上、本発明を実施例により説明したが、本発明は上記実施例に限定されるものではなく、種々の変形及び改良が本発明の範囲内で可能である。
【００８２】
【発明の効果】
請求項１及び３記載の発明によれば、高い濃度における濃度の飽和現象を防止することができ、忠実な階調性の再現が可能であると共に、処理が簡単であるため、データの高速処理が可能である。また、入力画像データに応じて係数を決定するので、きめの細かい処理が可能となり、微妙なトーンカーブも再現可能となる。
【００８３】
請求項２、４、５及び６記載の発明によれば、補正回路で行う処理を画像処理装置が適用される装置の特性に合わせて調整することもできる。請求項７記載の発明によれば、分散した値に対して補正を施すため、特別なオーバーフロー対策を行わなくてもオーバーフローによる問題が発生しにくい。請求項８記載の発明によれば、高い濃度における濃度の飽和現象を防止することができ、忠実な階調性の再現が可能であると共に、処理が簡単であるため、データの高速処理が可能である。又、例えばドットの形状に応じてきめの細かい誤差の拡散を行うことができ、微妙なトーンカーブも再現可能となる。
【００８４】
請求項９記載の発明によれば、高い濃度における濃度の飽和現象を防止することができ、忠実な階調性の再現が可能であると共に、処理が簡単であるため、データの高速処理が可能である。更に、入力画像データに応じた補正を行うため、微妙なトーンカーブも再現可能となる。
請求項１０記載の発明によれば、誤差計算処理を行わない部分ができるので、データの処理速度が更に向上する。
【００８５】
請求項１１記載の発明によれば、環境が変化した場合でも、常に安定した濃度を得ることができる。
請求項１２記載の発明によれば、処理を要するビット数を減少させることで、計算精度の著しい低下を伴うことなく、データの処理速度を向上することができる。
【００８６】
請求項１３記載の発明によれば、画像処理装置の特性或いは画像処理装置が接続されるホスト装置の要求に合わせて補正に使用する各種パラメータを自由に設定することができる。
従って、本発明によれば、高い濃度における濃度の飽和現象を防止することができ、忠実な階調性の再現が可能であると共に、処理が簡単であるため、データの高速処理が可能である。
【図面の簡単な説明】
【図１】第１実施例が適用されるコンピュータシステムの概略構成を示すブロック図である。
【図２】プリンタシステムのコントローラの概略構成を示すブロック図である。
【図３】第１実施例の要部を示すブロック図である。
【図４】第１実施例の動作を説明する図である。
【図５】注目画素の周囲画素に対する配分を説明する図である。
【図６】入力補正データの値を変えた場合のドット数の変化を各係数について示す図である。
【図７】第１実施例に基づいて誤差拡散処理を行った画像データをプリンタシステムにより印刷したサンプル画像の階調特性を示す図である。
【図８】第１実施例の演算器の構成の一実施例を示すブロック図である。
【図９】第２実施例の要部を示すブロック図である。
【図１０】第２実施例の動作を説明する図である。
【図１１】第３実施例の要部を示すブロック図である。
【図１２】第４実施例の要部を示すブロック図である。
【図１３】第５実施例の要部を示すブロック図である。
【図１４】第６実施例の要部を示すブロック図である。
【図１５】第７実施例の要部を示すブロック図である。
【図１６】第８実施例の要部を示すブロック図である。
【図１７】第８実施例の補正値算出回路の動作を説明する図である。
【図１８】第９実施例の要部を示すブロック図である。
【図１９】第９実施例の動作を説明するフローチャートである。
【図２０】第１０実施例の要部を示すブロック図である。
【図２１】明部電位対温度特性を示す図である。
【図２２】ドット径対温度特性を示す図である。
【図２３】第１０実施例のデータ補正回路が用いるテーブルを説明する図である。
【図２４】第１０実施例における温度センサを示す図である。
【図２５】第１１実施例の動作を説明するフローチャートである。
【図２６】第１３実施例の要部を示すブロック図である。
【符号の説明】
１      プリンタシステム
２      エンジン
３      コントローラ
３−１      プリンタコントローラ部
１５，２９      ＣＰＵ
１９      ページバッファ
４１      演算器
４２      加算器
４３      閾値処理回路
４４，６４      減算器
４５，５１，５２，５４〜５７      エラーフィルタ
４６〜４８，７６      データ補正回路
５３，５９      切り換え器
５８      誤差信号弁別器
６０      補正値弁別器
６３      補正値算出回路
７１      ウィンドウ切り出し回路
７２      データ判定回路
７３      誤差拡散処理系
９１      ホスト装置
【図１】
0003644183.tif 000002
【図２】
0003644183.tif 000003
【図３】
0003644183.tif 000004
【図４】
0003644183.tif 000005
【図５】
0003644183.tif 000006
【図６】
0003644183.tif 000007
【図７】
0003644183.tif 000008
【図８】
0003644183.tif 000009
【図９】
0003644183.tif 000010
【図１０】
0003644183.tif 000011
【図１１】
0003644183.tif 000012
【図１２】
0003644183.tif 000013
【図１３】
0003644183.tif 000014
【図１４】
0003644183.tif 000015
【図１５】
0003644183.tif 000016
【図１６】
0003644183.tif 000017
【図１７】
0003644183.tif 000018
【図１８】
0003644183.tif 000019
【図１９】
0003644183.tif 000020
【図２０】
0003644183.tif 000021
【図２１】
0003644183.tif 000022
【図２２】
0003644183.tif 000023
【図２３】
0003644183.tif 000024
【図２４】
0003644183.tif 000025
【図２５】
0003644183.tif 000026
【図２６】
0003644183.tif 000027