(57)【要約】【課題】  階調変換時の量子化誤差を抑えつつ、効率よく階調変換後のデータを２値化する。【解決手段】  ＬＵＴ部１１は、画素値を８ビットで表しているデータを、画素値を１０ビットで表すデータに変換して画素値の補正を行う。この１０ビットのデータうち上位８ビットに誤差データを加算し、誤差が加算されたデータを比較部４０で２値化する。一方、積算部３０は、１０ビットのデータのうち下位２ビットを積算し、積算結果の３ビット目のビット値を出力する。加算部６０は、積算部３０から出力されるビット値と、２値化により生じた誤差とを加算する。この加算により得られる値を誤差演算部８０は誤差拡散して、次の画素値に加算する誤差データを求める。【選択図】      図４
2005229418.tif 000002
【特許請求の範囲】
【請求項１】
画素値をｍビット（ｍは整数）で表した多値画像データを１画素分づつ順次走査し、注目画素に対して誤差拡散処理を行い、次の注目画素に加算する誤差データを求める画像処理装置において、
画素値をｍビットで表した多値画像データを走査し、注目画素の画素値を示すｍビットの第１多値画素データを生成する第１多値画素データ生成手段と、
前記第１多値画素データが示す画素値の補正を行い、補正後の画素値を用いて、画素値をｎビット（ｎは、ｍ＜ｎを満たす整数）で表す第２多値画素データを生成する第２多値画素データ生成手段と、
前記第２多値画素データ生成手段により生成された第２多値画素データの上位ａビットが示す値と、該注目画素に対応する誤差データとを加算し、加算結果の値を示す誤差加算データを生成する誤差加算手段と、
前記誤差加算手段により生成された誤差加算データを閾値により２値化して２値画素データを生成する２値画素データ生成手段と、
前記２値画素データ生成手段により生成された２値画素データと、前記誤差加算手段により生成された誤差加算データとを用いて、２値化により生じた誤差値を求める誤差算出手段と、
前記第２多値画素データ生成手段により生成された第２多値画素データの下位ｂビット（ｂはｎ−ａ）が示す値を積算し、ｂ＋１ビットの桁のビット値を出力する積算手段と、
前記誤差算出手段により求められた誤差値に、前記積算手段から出力されたビット値を加算し、加算結果から、次の注目画素へ加算する誤差データを生成する誤差データ生成手段と
を有する画像処理装置。
【請求項２】
画素値をｍビット（ｍは整数）で表した多値画像データを１画素分づつ順次走査し、
注目画素に対して誤差拡散処理を行い、次の注目画素に加算する誤差データを求める
画像処理装置において、
第１のモードまたは第２のモードのいずれかを選択する選択手段と、
画素値をｍビットで表した多値画像データを走査し、注目画素の画素値を示すｍビットの第１多値画素データを生成する第１多値画素データ生成手段と、
前記第１多値画素データが示す画素値の補正を行い、補正後の画素値を用いて、画素値をｎビット（ｎは、ｍ＜ｎを満たす整数）で表す第２多値画素データを生成する第２多値画素データ生成手段と、
前記第２多値画素データ生成手段により生成された第２多値画素データの上位ａビットが示す値と、該注目画素に対応する誤差データとを加算し、加算結果の値を示す誤差加算データを生成する誤差加算手段と、
前記第２多値画素データ生成手段により生成された第２多値画素データの下位ｂビット（ｂはｎ−ａ）が示す値を積算し、ｂ＋１ビットの桁のビット値を出力する積算手段と、
前記誤差加算手段により生成された誤差加算データをディザ法により２値化して２値画素データを生成する第１の２値画素データ生成手段と、
前記誤差加算手段により生成された誤差加算データを閾値により２値化して２値画素データを生成する第２の２値画素データ生成手段と、
前記第２の２値画素データ生成手段により生成された２値画素データと、前記誤差加算手段により生成された誤差加算データとを用いて、２値化により生じた誤差値を求める誤差算出手段と、
前記誤差算出手段により求められた誤差値に、前記積算手段から出力されたビット値を加算し、加算結果から、次の注目画素へ加算する誤差データを生成する誤差データ生成手段とを有し、
前記選択手段により第１のモードが選択された場合、前記積算手段から出力されたビット値だけから、次の注目画素へ加算する誤差データを生成し、
前記選択手段により第２のモードが選択された場合、前記積算手段から出力されたビット値と、前記誤差算出手段により求められた誤差値の加算結果から、次の注目画素へ加算する誤差データを生成することを特徴とする画像処理装置。
【請求項３】
画素値をｍビット（ｍは整数）で表した多値画像データを１画素分づつ順次走査し、
注目画素に対して誤差拡散処理を行い、次の注目画素に加算する誤差データを求める
画像処理装置において、
画素値をｍビットで表した多値画像データを走査し、注目画素の画素値を示すｍビットの第１多値画素データを生成する第１多値画素データ生成手段と、
前記第１多値画素データが示す画素値の補正を行い、補正後の画素値を用いて、画素値をｎビット（ｎは、ｍ＜ｎを満たす整数）で表す第２多値画素データを生成する第２多値画素データ生成手段と、
前記第２多値画素データ生成手段により生成された第２多値画素データの上位ａビットが示す値と、該注目画素に対応する誤差データとを加算し、加算結果の値を示す誤差加算データを生成する誤差加算手段と、
前記誤差加算手段により生成された誤差加算データをディザ法により２値化して２値画素データを生成する２値画素データ生成手段と、
前記第２多値画素データ生成手段により生成された第２多値画素データの下位ｂビット（ｂはｎ−ａ）が示す値を積算し、ｂ＋１ビットの桁のビット値を出力する積算手段と、
前記積算手段から出力されたビット値から、次の注目画素へ加算する誤差データを生成する誤差データ生成手段と
を有する画像処理装置。
【請求項４】
前記誤差データ生成手段は、ｍビットで誤差値を求め、該誤差値の上位ａビットを、次の注目画素に加算する誤差データとすると共に、該誤差データの下位ｂビットを前記積算手段へ供給し、
前記積算手段は、前記第２多値画素データ生成手段により生成された第２多値画素データの下位ｂビットが示す値と、前記誤差データ生成手段から供給されたｂビットのデータが示す値とを積算し、ｂ＋１ビットの桁のビット値を出力すること
を特徴とする請求項１乃至３のいずれかに記載の画像処理装置。
【請求項５】
画素値をｍビット（ｍは整数）で表した多値画像データを１画素分づつ順次走査し、注目画素に対して誤差拡散処理を行い、次の注目画素に加算する誤差データを求める画像処理方法において、
画素値をｍビットで表した多値画像データを走査し、注目画素の画素値を示すｍビットの第１多値画素データを生成する第１多値画素データ生成ステップと、
前記第１多値画素データが示す画素値の補正を行い、補正後の画素値を用いて、画素値をｎビット（ｎは、ｍ＜ｎを満たす整数）で表す第２多値画素データを生成する第２多値画素データ生成ステップと、
前記第２多値画素データ生成ステップにより生成された第２多値画素データの上位ａビットが示す値と、該注目画素に対応する誤差データとを加算し、加算結果の値を示す誤差加算データを生成する誤差加算ステップと、
前記誤差加算手段により生成された誤差加算データを閾値により２値化して２値画素データを生成する２値画素データ生成ステップと、
前記２値画素データ生成ステップにより生成された２値画素データと、前記誤差加算ステップにより生成された誤差加算データとを用いて、２値化により生じた誤差値を求める誤差算出ステップと、
前記第２多値画素データ生成ステップにより生成された第２多値画素データの下位ｂビット（ｂはｎ−ａ）が示す値を積算し、ｂ＋１ビットの桁のビット値を求める積算ステップと、
前記誤差算出ステップにより求められた誤差値に、前記積算ステップが求めたビット値を加算し、加算結果から、次の注目画素へ加算する誤差データを生成する誤差データ生成ステップと
を有する画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多値画像から２値画像を生成する技術に関する。
【背景技術】
【０００２】
多値画像を２値画像に変換してプリンタ等で出力する際には、多値画像が有する階調を２値画像で再現するために、まず、２値画像を出力する装置の特性に合わせて多値画像に階調補正が施される。そして、この階調補正が施された多値画像に対して２値化処理が施され、２値画像が生成される。
【０００３】
多値画像に対して階調補正を施す方法としては、ＬＵＴ（Look Up Table）を用いる方法が知られている。通常、階調補正においては、変換前の画素値と変換後の画素値の関係は非線形であるため、補正後の画像においては、補正時の量子化誤差により偽輪郭や、階調が急に変化するといったトーンジャンプと呼ばれる不具合が生じ得る。
【０００４】
特許文献１には、入力されたｍビットのデータを、ｍビットよりビット数が多いｎビットのデータに変換することにより、量子化誤差の影響を少なくする技術が提案されている。この技術によれば量子化誤差の影響を少なくすることが可能となるが、階調補正後のデータを扱う回路を全て変換後のデータのビット数に合わせて構成しなければならないため、回路が複雑化してコストアップ等の新たな問題が生じてしまう。
【０００５】
特許文献２には、ｍビットのデータを、ｍビットよりビット数が多いｎビットのデータに変換し、下位（ｎ−ｍ）ビットのデータと（ｎ−ｍ）ビットのビット数と同じであってランダムに可変する可変データとの比較結果による１ビットデータを、上位ｍビットの最下位桁に加算し、トーンジャンプや偽輪郭などの問題を解決する技術が記載されている。この技術によれば、１ビットデータを加算する加算手段以降の回路は、扱うビット数を拡張したｎビットに合わせて構成する必要がないため、回路の複雑化やコストアップを招かずに済む。
【特許文献１】特開２００１−１４４９５８号公報
【特許文献２】特公平７−４３７６３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
さて、特許文献２に記載された技術を利用すると、階調補正のために一度拡張したビット数を元のビット数に戻してから２値化を行うという構成をとる。この構成は、階調補正後のデータを扱う回路を全て変換後のデータのビット数に合わせて構成する必要がないため、２値化処理を行う回路において回路が複雑化しないという利点があるが、ＬＵＴによる階調変換後のデータをそのまま２値化する構成と比較すると、ＬＵＴからの出力をそのまま２値化処理に使用せずに元のビット数に戻す分、効率の面で劣るのが否めない。
【０００７】
本発明は、上述した背景の下になされたものであり、階調変換時の量子化誤差を抑えつつ、効率よく階調変換後のデータを２値化する技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決するために本発明は、画素値をｍビット（ｍは整数）で表した多値画像データを１画素分づつ順次走査し、注目画素に対して誤差拡散処理を行い、次の注目画素に加算する誤差データを求める画像処理装置であって、画素値をｍビットで表した多値画像データを走査し、注目画素の画素値を示すｍビットの第１多値画素データを生成する第１多値画素データ生成手段と、前記第１多値画素データが示す画素値の補正を行い、補正後の画素値を用いて、画素値をｎビット（ｎは、ｍ＜ｎを満たす整数）で表す第２多値画素データを生成する第２多値画素データ生成手段と、前記第２多値画素データ生成手段により生成された第２多値画素データの上位ａビットが示す値と、該注目画素に対応する誤差データとを加算し、加算結果の値を示す誤差加算データを生成する誤差加算手段と、前記誤差加算手段により生成された誤差加算データを閾値により２値化して２値画素データを生成する２値画素データ生成手段と、前記２値画素データ生成手段により生成された２値画素データと、前記誤差加算手段により生成された誤差加算データとを用いて、２値化により生じた誤差値を求める誤差算出手段と、前記第２多値画素データ生成手段により生成された第２多値画素データの下位ｂビット（ｂはｎ−ａ）が示す値を積算し、ｂ＋１ビットの桁のビット値を出力する積算手段と、前記誤差算出手段により求められた誤差値に、前記積算手段から出力されたビット値を加算し、加算結果から、次の注目画素へ加算する誤差データを生成する誤差データ生成手段とを有する画像処理装置を提供する。
本発明によれば、第２多値画素データのうちの上位ａビットに誤差データが示す値が加算され、この誤差が加算された値が２値化される。また、第２多値画素データの下位ｂビットが示す値が積算され、ｂ＋１ビットの桁のビット値が誤差値に加算された後、この加算結果から、次の誤差データが求められる。
【０００９】
また本発明は、画素値をｍビット（ｍは整数）で表した多値画像データを１画素分づつ順次走査し、注目画素に対して誤差拡散処理を行い、次の注目画素に加算する誤差データを求める画像処理方法であって、画素値をｍビットで表した多値画像データを走査し、注目画素の画素値を示すｍビットの第１多値画素データを生成する第１多値画素データ生成ステップと、前記第１多値画素データが示す画素値の補正を行い、補正後の画素値を用いて、画素値をｎビット（ｎは、ｍ＜ｎを満たす整数）で表す第２多値画素データを生成する第２多値画素データ生成ステップと、前記第２多値画素データ生成ステップにより生成された第２多値画素データの上位ａビットが示す値と、該注目画素に対応する誤差データとを加算し、加算結果の値を示す誤差加算データを生成する誤差加算ステップと、前記誤差加算手段により生成された誤差加算データを閾値により２値化して２値画素データを生成する２値画素データ生成ステップと、前記２値画素データ生成ステップにより生成された２値画素データと、前記誤差加算ステップにより生成された誤差加算データとを用いて、２値化により生じた誤差値を求める誤差算出ステップと、前記第２多値画素データ生成ステップにより生成された第２多値画素データの下位ｂビット（ｂはｎ−ａ）が示す値を積算し、ｂ＋１ビットの桁のビット値を求める積算ステップと、前記誤差算出ステップにより求められた誤差値に、前記積算ステップが求めたビット値を加算し、加算結果から、次の注目画素へ加算する誤差データを生成する誤差データ生成ステップとを有する画像処理方法を提供する。
本発明においても、第２多値画素データのうちの上位ａビットに誤差データが示す値が加算され、この誤差が加算された値が２値化される。また、第２多値画素データのうちの下位ｂビットが示す値が積算され、ｂ＋１ビットの桁のビット値が誤差値に加算された後、この加算結果から、次の誤差データが求められる。
【００１０】
また本発明は、画素値をｍビット（ｍは整数）で表した多値画像データを１画素分づつ順次走査し、注目画素に対して誤差拡散処理を行い、次の注目画素に加算する誤差データを求める画像処理装置において、第１のモードまたは第２のモードのいずれかを選択する選択手段と、画素値をｍビットで表した多値画像データを走査し、注目画素の画素値を示すｍビットの第１多値画素データを生成する第１多値画素データ生成手段と、前記第１多値画素データが示す画素値の補正を行い、補正後の画素値を用いて、画素値をｎビット（ｎは、ｍ＜ｎを満たす整数）で表す第２多値画素データを生成する第２多値画素データ生成手段と、前記第２多値画素データ生成手段により生成された第２多値画素データの上位ａビットが示す値と、該注目画素に対応する誤差データとを加算し、加算結果の値を示す誤差加算データを生成する誤差加算手段と、前記第２多値画素データ生成手段により生成された第２多値画素データの下位ｂビット（ｂはｎ−ａ）が示す値を積算し、ｂ＋１ビットの桁のビット値を出力する積算手段と、前記誤差加算手段により生成された誤差加算データをディザ法により２値化して２値画素データを生成する第１の２値画素データ生成手段と、前記誤差加算手段により生成された誤差加算データを閾値により２値化して２値画素データを生成する第２の２値画素データ生成手段と、前記第２の２値画素データ生成手段により生成された２値画素データと、前記誤差加算手段により生成された誤差加算データとを用いて、２値化により生じた誤差値を求める誤差算出手段と、前記誤差算出手段により求められた誤差値に、前記積算手段から出力されたビット値を加算し、加算結果から、次の注目画素へ加算する誤差データを生成する誤差データ生成手段とを有し、前記選択手段により第１のモードが選択された場合、前記積算手段から出力されたビット値だけから、次の注目画素へ加算する誤差データを生成し、前記選択手段により第２のモードが選択された場合、前記積算手段から出力されたビット値と、前記誤差算出手段により求められた誤差値の加算結果から、次の注目画素へ加算する誤差データを生成することを特徴とする画像処理装置を提供する。
本発明によれば、第２多値画素データのうちの上位ａビットに誤差データが示す値が加算され、第１のモードが選択されている場合には、この誤差が加算された値がディザ法により２値化され、第２のモードが選択されている場合には、この誤差が加算された値が閾値と比較されて２値化される。
【００１１】
また本発明は、画素値をｍビット（ｍは整数）で表した多値画像データを１画素分づつ順次走査し、注目画素に対して誤差拡散処理を行い、次の注目画素に加算する誤差データを求める画像処理装置において、画素値をｍビットで表した多値画像データを走査し、注目画素の画素値を示すｍビットの第１多値画素データを生成する第１多値画素データ生成手段と、前記第１多値画素データが示す画素値の補正を行い、補正後の画素値を用いて、画素値をｎビット（ｎは、ｍ＜ｎを満たす整数）で表す第２多値画素データを生成する第２多値画素データ生成手段と、前記第２多値画素データ生成手段により生成された第２多値画素データの上位ａビットが示す値と、該注目画素に対応する誤差データとを加算し、加算結果の値を示す誤差加算データを生成する誤差加算手段と、前記誤差加算手段により生成された誤差加算データをディザ法により２値化して２値画素データを生成する２値画素データ生成手段と、前記第２多値画素データ生成手段により生成された第２多値画素データの下位ｂビット（ｂはｎ−ａ）が示す値を積算し、ｂ＋１ビットの桁のビット値を出力する積算手段と、前記積算手段から出力されたビット値から、次の注目画素へ加算する誤差データを生成する誤差データ生成手段とを有する画像処理装置を提供する。
本発明によれば、第２多値画素データのうちの上位ａビットに誤差データが示す値が加算され、この誤差データが加算された値がディザ法により２値化される。また、第２多値画素データのうちの下位ｂビットが示す値が積算され、ｂ＋１ビットの桁のビット値から、次の誤差データが求められる。
【発明の効果】
【００１２】
本発明によれば、階調変換時の量子化誤差を抑えつつ、効率よく階調変換後のデータを２値化することが可能となる。
【発明を実施するための最良の形態】
【００１３】
［Ａ．第１実施形態］
［Ａ−１．第１実施形態の構成］
図１は、本発明の第１実施形態に係わる画像処理装置の構成を示すブロック図である。図１に示したように、画像処理装置の各部はバス１に接続されており、このバスを介して各部間で通信を行う。
【００１４】
制御部２は、ＣＰＵ（Central Processing Unit）２Ａ、ＲＯＭ（Read Only Memory）２Ｂ、ＲＡＭ（Random Access Memory）２Ｃを具備している。画像処理装置の電源が入れられると、ＣＰＵ２Ａは、ＲＯＭ２Ｂに記憶されているプログラムを読み出し、読出したプログラムをＲＡＭ２Ｃを作業エリアとして実行し、画像処理装置の各部を制御する。
【００１５】
記憶部５は、例えばハードディスク装置などの、データを永続的に記憶する装置（図示略）を有しており、各種画像データを記憶する。
通信部６は、例えば、ＬＡＮ（Local Area Network）などの通信ネットワークを介して通信を行うための通信インターフェースである。通信部６は、通信ネットワークから送信されたデータを受信してＣＰＵ２Ａへ供給する一方、ＣＰＵ２Ａから供給されたデータを通信ネットワークを介して通信先となる装置へ送信する。
【００１６】
出力部９は、例えば、印刷用紙に印刷を行うプリンタ装置を具備しており、後述する２値画像生成部７において生成される２値画像データに従って、２値画像データが示す画像を印刷する。
【００１７】
２値画像生成部７は、入力される多値画像データが示す画像を２値化して、２値画像データを出力するものであり、「Ｙ」、「Ｍ」、「Ｃ」、「Ｋ」の各色毎に、多値画像から２値画像への変換を行う２値変換部８Ｙ，８Ｍ，８Ｃ，８Ｋを有している。ここで、多値画像データとは、中間調を有するカラーの画像を示すデータである。この多値画像データにおいては、Ｙ（イエロー）、Ｍ（マゼンタ）、Ｃ（シアン）、Ｋ（ブラック）の各色毎に、個々の画素値が８ビットで表されており、図２に示したように、画素値が例えば０から２５５の間の値で表現されている。また、２値画像データは、個々の画素値を１ビットで表したデータであり、図３に示したように、「Ｙ」、「Ｍ」、「Ｃ」、「Ｋ」の各色毎に、画素がオンの場合には画素値が「１」、画素がオフの場合には画素値が「０」となる。
【００１８】
２値画像生成部７は、入力された多値画像データを、「Ｙ」、「Ｍ」、「Ｃ」、「Ｋ」の各色毎のデータに分解し、分解されたデータを２値変換部８Ｙ，８Ｍ，８Ｃ，８Ｋへ供給する。なお、以下の説明においては、各色に分解された多値画像データについては、「Ｋ」、「Ｙ」、「Ｍ」、「Ｃ」の符号を付して、各色のデータを区別するが、特に区別する必要のない時は、「Ｋ」、「Ｙ」、「Ｍ」、「Ｃ」の符号を付すのを省略する。
【００１９】
＜２値変換部の構成＞
次に、図４を用いて、２値変換部８Ｋ，８Ｙ、８Ｍ，８Ｃの構成について説明する。２値変換部８Ｋ，８Ｙ、８Ｍ，８Ｃの構成は、扱う色の成分が異なることを除いて、いずれも同じ構成である。このため、以下の説明においては、２値変換部８Ｋ，８Ｙ，８Ｍ，８Ｃの各構成要素については、それぞれ「Ｋ」、「Ｙ」、「Ｍ」、「Ｃ」という符号を付して区別するが、特に区別する必要のない時は、「Ｋ」、「Ｙ」、「Ｍ」、「Ｃ」という符号を付すのを省略する。
【００２０】
走査部１０は、供給された多値画像データが示す画像を順次走査し、走査中の注目画素の画素値を多値画像データから抽出し、抽出した値を示す画素値データＤ１０をＬＵＴ部１１へ供給する。
【００２１】
ＬＵＴ部１１は、多値画像データが示す画像の階調を補正するものである。ＬＵＴ部１１は、０から２５５までの間のいずれかの値をとる８ビットの画素値データＤ１０を、少数を含む０から２５５までの間のいずれかの値をとる１０ビットのデータに変換する。具体的には、ＬＵＴ部１１は、図５に示したように、入力される画素値と、出力する画素値との関係を格納した変換テーブルを具備しており、画素値データＤ１０が入力されると、入力されたデータが示す画素値に対応付けて格納されている１０ビットのデータを読出す。ＬＵＴ部１１は、読出した１０ビットのデータのうち、上位８ビットを、画素値の整数部を示す整数部データＤ１１として誤差加算部２０へ供給し、下位２ビットを、画素値の小数部を示す小数部データＤ１２として積算部３０へ供給する。
【００２２】
なお、ＬＵＴ部１１に入力されるデータにおいて画素値は８ビットで示されており、変換テーブルから読出されるデータにおいて画素値は１０ビットで示されているが、画素値を表すためのビット数は、上述したビット数に限定されるものではない。入力される画素値がａビットで表されており、変換テーブルから読出される画素値がｂビットで表されているとした場合（ａ，ｂは整数）、ａ＜ｂの関係が成り立つのであれば、画素値を表すビットの数は、上述した数に限定されず任意の数とすることができる。
【００２３】
誤差加算部２０は、整数部データＤ１１が示す画素値に、誤差演算部８０から供給される誤差データＤ８０が示す値を加算するものであり、加算により得られた値を示す誤差加算データＤ２０を比較部４０と誤差算出部５０へ供給する。
【００２４】
積算部３０は、小数部データＤ１２が示す値を積算し、積算により得られた値のうち、整数部の値を示す積算データＤ３０を加算部６０へ供給する。
【００２５】
比較部４０は、誤差加算データＤ２０を、予め定められた閾値を用いて２値化するものである。比較部４０は、誤差加算データＤ２０が示す値が、閾値以上である場合には、画素値を「１」とした２値化画素データＤ４０を出力し、誤差加算データＤ２０が示す値が閾値未満の場合には、画素値を「０」とした２値化画素データＤ４０を出力する。
【００２６】
２値画像構成部４１は、２値画像データを生成するものである。２値画像構成部４１は、走査部１０が走査中の注目画素のアドレスで特定される画素の画素値を、比較部４０から出力された２値化画素データＤ４０が示す画素値とし、２値画像データを生成する。
【００２７】
誤差算出部５０は、誤差加算データＤ２０と２値化画素データＤ４０とを用いて、２値化により生じた誤差を示す２値化誤差データＤ５０を生成する。具体的には、誤差算出部５０は、２値化画素データＤ４０が「０」を示す場合には、誤差加算データＤ２０が示す値と「０」との差を差分値としてもとめ、２値化画素データＤ４０が「１」を示す場合には、誤差加算データＤ２０が示す値から「２５５」を引いた値を差分値としてもとめ、この求めた差分値を示すデータを２値化誤差データＤ５０として加算部６０へ供給する。
【００２８】
加算部６０は、２値化誤差データＤ５０と、積算部３０から供給される積算データＤ３０とを用いて、算出誤差データＤ６０を生成する。具体的には、加算部６０は、２値化誤差データＤ５０が示す値に、積算データＤ３０が示す値を加算して、加算結果の値を示す算出誤差データＤ６０を生成し、算出誤差データＤ６０を誤差バッファ７０へ供給する。
【００２９】
誤差バッファ７０は、例えば、ラインメモリを具備しており、注目画素に加算する誤差の値を記憶する。誤差演算部８０は、算出誤差データＤ６０を用いて、注目画素の周辺の画素に分散させる誤差値を求める。具体的には、誤差演算部８０は、誤差バッファ７０に供給された算出誤差データＤ６０が示す値と、例えば、Floyd&Steinberg型と呼ばれるフィルタを用いて、注目画素の周辺に分散させる誤差値を求める。誤差演算部８０は、この求めた値を、誤差バッファ７０において、注目画素に隣接する画素の誤差値を格納する領域に分散させ、既に格納されている誤差値に加算させる。誤差演算部８０は、誤差値を分散させた後、次の注目画素に加算する誤差値を読出し、この読出した誤差値を示す誤差データＤ８０を、誤差加算部２０へ供給する。なお、注目画素の周辺画素に分散させる値を求める際には、Floyd&Steinberg型と呼ばれるフィルタではなく、Jarvis，Judice＆Ninke型と呼ばれるフィルタを用いるようにしてもよい。
【００３０】
つまり、誤差算出部５０は、誤差加算データＤ２０と２値化画素データＤ４０とを用いて、２値化により生じた誤差値を算出し、この誤差を示す２値化誤差データＤ５０を加算部６０へ供給する。一方、積算部３０は、変換された画素値の小数部を積算し、積算結果の整数部を積算データＤ３０として加算部６０へ供給する。加算部６０は、供給される誤差加算データＤ２０と、積算データＤ３０とを加算し、この加算結果の値を示す算出誤差データＤ６０を誤差バッファ７０へ供給する、誤差演算部８０は、この算出誤差データＤ６０を誤差拡散する。
【００３１】
［Ａ−２．第１実施形態の動作］
次に、本実施形態による画像処理装置の動作について説明する。なお、以下の説明においては、比較部４０には２値化を行う際の閾値として予め「１２８」が定められている場合を想定する。
【００３２】
まず、通信部６にて、通信ネットワークを介して送信された多値画像データが受信されると、ＣＰＵ２Ａは、この多値画像データを、一旦、記憶部５に記憶させる。次に、ＣＰＵ２Ａは、この記憶された多値画像データを２値画像生成部７へ供給する。２値画像生成部７は、多値画像データが供給されると、この多値画像データを、「Ｙ」、「Ｍ」、「Ｃ」、「Ｋ」の各色毎のデータに分解し、分解されたデータを各色毎に対応する２値変換部８へ供給する。
【００３３】
２値変換部８においては、供給された多値画像データが走査部１０に入力される。走査部１０は、供給された多値画像データが示す画像を走査し、走査中の注目画素の画素値を多値画像データから抽出し、抽出した値を示す画素値データＤ１０をＬＵＴ部１１へ供給する。例えば、多値画像データにおいて画素値が図２に例示したように格納されており、注目画素のアドレスが（０，０）である場合、走査部１０が出力する画素値データＤ１０が示す値は「８０」となる。
【００３４】
ＬＵＴ部１１は、画素値データＤ１０が供給されると、具備している変換テーブルに従って画素値データＤ１０が示す画素値の変換を行い、変換後の画素値を示す１０ビットのデータを変換テーブルから読出す。ＬＵＴ部１１は、変換後の画素値を示すデータのうち、整数部を示す上位８ビットの整数部データＤ１１を誤差加算部２０へ供給し、小数部を示す下位２ビットの小数部データＤ１２を積算部３０へ供給する。例えば、画素値データＤ１０が示す値が「８０」である場合、この画素値を図５に例示した変換テーブルで「８０．５」（２進数で「0101000010」）に変換すると、上位８ビットの「０１０１００００」が整数部データＤ１１として誤差加算部２０へ供給され、下位２ビットの「０．１０」が小数部データＤ１２として積算部３０へ供給される。
【００３５】
積算部３０においては、供給された小数部データＤ１２が示す値が積算される。最初の画素の画素値が供給された時点では、積算による桁上がりが生じないので、積算部３０は「０」を積算データＤ３０として出力する。
【００３６】
一方、誤差加算部２０においては、供給された整数部データＤ１１が示す画素値に、誤差演算部８０から供給された誤差データＤ８０が示す値が加算される。そして、この加算により得られた値を示す誤差加算データＤ２０が、比較部４０と誤差算出部５０へ供給される。例えば、アドレスが（０，０）の画素を注目画素とした場合、整数部データＤ１１の値は２進数で「０１０１００００」（１０進数で８０）となり、誤差データＤ８０の値は最初の画素であるので「０」となるため、誤差加算データＤ２０の値は２進数で「０１０１００００」（１０進数で８０）となる。
【００３７】
比較部４０では、供給された誤差加算データＤ２０と、予め定められた閾値との比較が行われる。誤差加算データＤ２０が示す値「８０」と、閾値「１２８」とを比較すると、誤差加算データＤ２０の値は閾値未満であるため、比較部４０は画素値を「０」とした２値化画素データＤ４０を出力する。そして、比較部４０から出力された２値化画素データＤ４０が示す画素値は、２値画像構成部４１において、図３に例示したように２値化データのうち、注目画素のアドレスに該当する位置に格納される。
【００３８】
また、比較部４０から出力された２値化画素データＤ４０は、誤差算出部５０に供給される。誤差算出部５０は、２値化画素データＤ４０が「０」を示している為、誤差加算データＤ２０が示す値「８０」と「０」との差「８０」を２値化による誤差値とし、この値を示すデータを２値化誤差データＤ５０として加算部６０へ供給する。
【００３９】
加算部６０は、積算部３０から供給された積算データＤ３０が示す値「０」と、２値化誤差データＤ５０が示す値「８０」とを加算し、加算結果を示す算出誤差データＤ６０を誤差バッファ７０へ供給する。算出誤差データＤ６０が誤差バッファ７０に供給されると、誤差演算部８０は、Floyd&Steinberg型と呼ばれるフィルタにより、注目画素の周辺の画素に分散させる誤差値を求め、求めた値を、誤差バッファ７０において、注目画素に隣接する画素の誤差値を格納する領域に分散させ、既に格納されている誤差値に加算させる。例えば、算出誤差データＤ６０が示す値が「８０」である場合、図６に示したように、次の画素に分散する誤差値は、「８０」に７／１６を乗じた「３５」が誤差値となる。誤差演算部８０は、誤差を分散させた後、誤差バッファ７０において、次の注目画素に相当する領域に格納されている値「３５」を読出し、この読出した値を、次の注目画素に加算する誤差データＤ８０として誤差加算部２０へ供給する。
【００４０】
２値変換部８は、図２に例示した多値画像データにおいて、次の注目画素のアドレスを（０，１）とすると、この注目画素の画素値「８０」を多値画像データから抽出し、抽出した画素値を示す画素値データＤ１０をＬＵＴ部１１へ供給する。ＬＵＴ部１１は、画素値データＤ１０が供給されると、注目画素のアドレスが（０，０）の時と同様に、具備している変換テーブルに従って、画素値の変換を行い、整数部データＤ１１「０１０１００００」を誤差加算部２０へ供給し、小数部データＤ１２「０．１０」を積算部３０へ供給する。
【００４１】
積算部３０は、最初の小数部データＤ１２が示す値「０．１０」と、供給された小数部データＤ１２「０．１０」とを積算し、この演算結果として２進数で「１．００」を得る。積算部３０は、この演算結果の整数部の値「１」を積算データＤ３０として加算部６０へ供給する。
【００４２】
一方、誤差加算部２０は、供給された整数部データＤ１１が示す画素値「８０」に、誤差データＤ８０が示す値「３５」を加算し、加算により得られた値「１１５」を示す誤差加算データＤ２０を比較部４０と誤差算出部５０へ供給する。
【００４３】
比較部４０では、誤差加算データＤ２０が示す値「１１５」と、閾値「１２８」とが比較される。誤差加算データＤ２０の値は閾値未満であるため、比較部４０は画素値を「０」とした２値化画素データＤ４０を出力する。そして、比較部４０から出力された２値化画素データＤ４０が示す画素値は、２値画像構成部４１において、図３に例示したように２値化データのうち、注目画素のアドレスに該当する位置に格納される。
【００４４】
また、比較部４０から出力された２値化画素データＤ４０は、誤差算出部５０に供給される。誤差算出部５０は、２値化画素データＤ４０が「０」を示している為、誤差加算データＤ２０が示す値「１１５」と「０」との差「１１５」を２値化による誤差値とし、この値を示すデータを２値化誤差データＤ５０として加算部６０へ供給する。
【００４５】
加算部６０は、積算部３０から供給される積算データＤ３０が示す値「１」と、２値化誤差データＤ５０が示す値「１１５」とを加算し、加算結果の「１１６」を示す算出誤差データＤ６０を誤差バッファ７０へ供給する。算出誤差データＤ６０が誤差バッファ７０に供給されると、誤差演算部８０は、注目画素の周辺の画素に分散させる誤差値を求め、求めた値を、誤差バッファ７０において、注目画素に隣接する画素の誤差値を格納する領域に分散させ、既に格納されている誤差値に加算させる。ここで、次の画素に分散する誤差の値としては、「１１５」に７／１６を乗じた「５０．３１２５」が誤差として格納される。誤差演算部８０は、誤差を分散させた後、誤差バッファ７０において、次の注目画素に相当する領域に格納されている値「５０．３１２５」を読出し、この読出した値の小数部を切り捨て、小数部を切り捨てた値「５０」を次の注目画素に加算する誤差データＤ８０として誤差加算部２０へ供給する。
【００４６】
以下、２値変換部８は多値画像データを順次走査し、上述した動作を繰り返して誤差拡散を行い、２値画像データを生成する。ＣＰＵ２Ａは、２値変換部８において、多値画像データから２値画像データへの変換が終了すると、生成された２値画像データを記憶部５に記憶させる。次にＣＰＵ２Ａは、２値画像データを出力部９へ供給する。出力部９は、供給された２値画像データに従って、２値画像データが示す画像を印刷用紙に印刷する。
【００４７】
以上説明したように、本実施形態では、ＬＵＴ部１１から出力されたデータに対して、直接、２値化処理を行うので、効率良く２値化が行われる。また、８ビットで表していた画素値を１０ビットで表すように拡張し、拡張された２ビットの情報を、誤差拡散により出力の２値画像に反映するようにしたので、拡張された２ビット分の情報が、後に続く画素に反映され、画像の階調再現性が向上する。
【００４８】
［Ｂ．第２実施形態］
次に、本発明の第２実施形態について説明する。なお、以下の説明において、上述した第１実施形態と同じ構成の部分については、第１実施形態と同じ符号を付し、その説明を省略する。
【００４９】
図７は、本実施形態に係わる２値変換部８の構成を示すブロック図である。本実施形態においては、誤差演算部８０と積算部３０の構成とが、第１実施形態と異なる。
上述した第１実施形態においては、誤差バッファ７０から読出された誤差値のうち、小数部の値は切り捨てられ、整数部の値のみが誤差データＤ８０として、誤差加算部２０へ供給されている。これに対し本実施形態は、誤差バッファ７０から読出された誤差値の小数部の値も誤差拡散に利用する。具体的には、誤差演算部８０は、誤差バッファ７０から誤差値を読出し、この読出した誤差値のうち、整数部の値を示す整数誤差データＤ８１を誤差加算部２０へ供給し、小数部の値を示す小数誤差データＤ８２を積算部３０へ供給する。
【００５０】
積算部３０は、ＬＵＴ部１１から供給される小数部データＤ１２と、誤差演算部８０から供給される小数誤差データＤ８２とを積算し、積算により得られた値のうち、整数部の値を示す積算データＤ３０を、加算部６０へ供給する。
【００５１】
本実施形態によれば、次の画素に加算する誤差値の小数部の値も、誤差拡散により、後に続く画素に反映されるので、画像の階調再現性が向上する。
【００５２】
［Ｃ．第３実施形態］
［Ｃ−１．第３実施形態の構成］
次に、本発明の第３実施形態について説明する。なお、以下の説明において、上述した第１実施形態と同じ構成の部分については、第１実施形態と同じ符号を付し、その説明を省略する。
【００５３】
本実施形態に係わる画像処理装置は、多値画像データを２値画像データに変換する際、２値画像データが示す画像のモードを選択できるようになっている。操作部３は、この２値画像のモードを選択するための「精細モード」キーと、「階調モード」キーとを具備しており、操作部３において、これらのキーが押下されると、押下されたキーを示す信号が操作部３からＣＰＵ２Ａへ供給される。ＣＰＵ２Ａは、「精細モード」キーまたは「階調モード」キーを示す信号が供給されると、供給された信号に応じて、バス１を介して制御信号Ｃ１０を２値画像生成部７へ出力する。ＣＰＵ２Ａは、操作部３から「階調モード」キーを示す信号が供給された場合には、Ｈレベルの制御信号Ｃ１０を出力し、操作部３から「精細モード」キーを示す信号が供給された場合には、Ｌレベルの制御信号Ｃ１０を出力する。
【００５４】
図８は、本実施形態に係わる２値変換部８の構成を例示するブロック図である。
走査部１０は、画素値データＤ１０をＬＵＴ部１１へ供給すると共に、走査中の注目画素のアドレスを示すアドレスデータＤ９０をディザマトリクス部９０へ供給する。
【００５５】
ディザマトリクス部９０は、ｐ×ｑ個の閾値（ｐ、ｑは整数）を格納したディザマトリクスを具備しており、入力される注目画素のアドレスに従って、ディザマトリクスに格納されている閾値を読出し、読出した閾値をディザ用比較部１００−１〜ディザ用比較部１００−４へ供給する。図９は、ディザマトリクス部９０が具備するディザマトリクスを例示する図である。図９に示したように、ディザマトリクス部９０は、６×６のマトリクスを具備しており、図中の実線で示した格子の内部にある４つの閾値が、入力される多値画像データの１画素に対応している。ディザマトリクス部９０は、アドレスデータＤ９０が供給されると、このアドレスに対応する４つの閾値データＤ９１〜Ｄ９４を、この注目画素に対応する２値化閾値として、ディザ用比較部１００−１〜１００−４へ出力する。なお、ディザマトリクス内に格納される閾値（ａ１〜ａ３６）は、任意の値をとることができる。また、ディザマトリクスは、６×６に限定されるものではなく、任意の行と列からなるマトリクスであってもよい。
【００５６】
ディザ用比較部１００−１〜１００−４は、誤差加算部２０から供給される誤差加算データＤ２０を、閾値データＤ９１〜Ｄ９４を用いて２値化するものである。ディザ用比較部１００−１は、誤差加算データＤ２０が示す値が、ディザマトリクス部９０から供給される閾値データＤ９１以上である場合には、画素値を「１」とした２値化画素データＤ４０−１を出力し、誤差加算データＤ２０が示す値が閾値未満の場合には、画素値を「０」とした２値化画素データＤ４０−１を出力する。なお、ディザ用比較部１００−１〜１００−４の構成は、入力される閾値データが異なる以外は各々同じであるため、ディザ用比較部１００−２〜１００−４については、その説明を省略する。また、ディザ用比較部１００−１〜１００−４は、以下の説明において特に区別する必要のない場合、ディザ用比較部１００と称する。
【００５７】
スイッチ１１０は、誤差加算データＤ２０の供給先を決めるためのスイッチである。スイッチ１１０は、該スイッチ１１０に供給される制御信号Ｃ１０がＨレベルである場合には、端子ａ−ｂ間を接続して誤差加算データＤ２０をディザ用比較部１００へ供給し、該スイッチ１１０に供給される制御信号Ｃ１０がＬレベルである場合には、端子ａ−ｃ間を接続して誤差加算データＤ２０を比較部４０へ供給する。
【００５８】
比較部４０は、誤差加算データＤ２０を、予め定められた閾値を用いて２値化し、２値化画素データＤ４０を生成する。比較部４０は、供給される制御信号Ｃ１０がＬレベルである場合には２値化画素データＤ４０を出力し、制御信号Ｃ１０がＨレベルである場合には２値化画素データＤ４０を出力しない。
【００５９】
誤差算出部５０は、誤差加算部２０から供給される誤差加算データＤ２０と、比較部４０から供給される２値化画素データＤ４０とを用いて、２値化誤差データＤ５０を生成する。誤差算出部５０は、入力される制御信号Ｃ１０がＨレベルである場合には、２値化誤差データＤ５０を出力せず、制御信号Ｃ１０がＬレベルである場合には、２値化誤差データＤ５０を加算部６０へ供給する。
【００６０】
加算部６０は、制御信号Ｃ１０がＨレベルである場合には、２値化誤差データＤ５０が供給されないので、積算データＤ３０を算出誤差データＤ６０として誤差バッファ７０へ供給する。
【００６１】
誤差演算部８０は、入力される制御信号Ｃ１０がＬレベルである場合には、第１実施形態と同様の処理を行う。誤差演算部８０は、入力される制御信号Ｃ１０がＨレベルである場合には、算出誤差データＤ６０を誤差データＤ８０として出力する。
【００６２】
［Ｃ−２．第３実施形態の動作］
次に本実施形態の動作について説明する。以下の説明においては、まず、画像処理装置の使用者が「精細モード」キーを押下した場合の動作について説明し、次に、画像処理装置の使用者が「階調モード」キーを押下した場合の動作について説明する。
【００６３】
＜精細モードが選択された場合の動作＞
画像処理装置の使用者が、操作部３が具備する「精細モード」キーを押下すると、押下されたキーを示す信号が、操作部３からＣＰＵ２Ａへ供給される。ＣＰＵ２Ａは、この信号が供給されると、Ｈレベルの制御信号Ｃ１０を出力する。
【００６４】
この後、通信部６にて、通信ネットワークを介して送信された多値画像データが受信されると、ＣＰＵ２Ａは、第１実施形態と同様に、この多値画像データを２値画像生成部７へ供給する。２値画像生成部７は、多値画像データが供給されると、この多値画像データを、「Ｙ」、「Ｍ」、「Ｃ」、「Ｋ」の各色毎のデータに分解し、分解されたデータを各色に対応する２値変換部８Ｙ，８Ｍ，８Ｃ，８Ｋへ供給する。
【００６５】
２値変換部８においては、供給された多値画像データが走査部１０に入力される。走査部１０は、供給された多値画像データが示す画像を走査し、注目画素のアドレスを示すアドレスデータＤ９０を、ディザマトリクス部９０へ供給する。ディザマトリクス部９０は、アドレスデータＤ９０が供給されると、このアドレスに対応する４つの閾値データＤ９１〜Ｄ９４を、この注目画素に対応する２値化閾値として、ディザ用比較部１００−１〜１００−４へ出力する。例えば、アドレスデータＤ９０がアドレス（０，０）を示す場合、ディザマトリクス部９０は、図９に例示したディザマトリクスを参照して、閾値データＤ９１として「ａ１」、閾値データＤ９２として「ａ２」、閾値データＤ９３として「ａ３」、閾値データＤ９４として「ａ４」を出力する。
【００６６】
また走査部１０は、走査中の注目画素の画素値を多値画像データから抽出し、抽出した値を示す画素値データＤ１０をＬＵＴ部１１へ供給する。例えば、多値画像データにおいて画素値が図２に例示したように格納されており、注目画素のアドレスが（０，０）である場合、走査部１０が出力する画素値データＤ１０が示す値は「８０」となる。
【００６７】
ＬＵＴ部１１は、画素値データＤ１０が入力されると、具備している変換テーブルに従って、画素値の変換を行う。例えば、画素値データＤ１０が示す値が「８０」である場合、値が「０１０１００００」（１０進数で８０）である整数部データＤ１１を誤差加算部２０へ供給し、値が「０．１０」（１０進数で０．５）である小数部データＤ１２を積算部３０へ供給する。
【００６８】
積算部３０においては、供給された小数部データＤ１２が示す値が積算される。最初の画素の画素値が供給された時点では、積算による桁上がりが生じないので、積算部３０は「０」を積算データＤ３０として出力する。
【００６９】
一方、誤差加算部２０においては、供給された整数部データＤ１１が示す画素値に、誤差演算部８０から供給された誤差データＤ８０が示す値が加算される。そして、この加算により得られた値を示す誤差加算データＤ２０が出力される。例えば、アドレスが（０，０）の画素を注目画素とした場合、整数部データＤ１１の値は「０１０１００００」であり、誤差データＤ８０の値は「０」であるため、誤差加算データＤ２０の値は「０１０１００００」となる。
【００７０】
スイッチ１１０においては、制御信号Ｃ１０がＨレベルであるため、端子ａ−ｂ間が接続されている。このため、誤差加算部２０から出力された誤差加算データＤ２０は、比較部４０ではなく、ディザ用比較部１００−１〜１００−４へ供給される。各々のディザ用比較部１００は、誤差加算データＤ２０と、入力される閾値データとを比較して２値化の処理を行い、縦２画素×横２画素の２値化画素データＤ４０−１〜Ｄ４０−４を出力する。このように、ディザマトリクス部９０とディザ用比較部１００とにより、１つの多値画素が図１０に示したように縦２×横２の４つの２値画素に変換されて解像度の変換が行われる。例えば、６００ｄｐｉの多値画像データが入力された場合、１つの画素が縦２×横２の２値画素に変化されるため、出力される２値画像データは１２００ｄｐｉとなる。
【００７１】
一方、制御信号Ｃ１０がＨレベルであり、誤差算出部５０から２値化誤差データＤ５０が出力されないので、加算部６０は、積算データＤ３０を算出誤差データＤ６０として誤差バッファ７０へ供給する。誤差演算部８０は、制御信号Ｃ１０がＨレベルであるので、供給された算出誤差データＤ６０を誤差データＤ８０として誤差加算部２０へ供給する。
【００７２】
次に２値変換部８は、図２に例示した多値画像データにおいて、次の注目画素のアドレスを（０，１）とすると、走査中の画素の画素値「８０」を多値画像データから抽出し、抽出した画素値を示す画素値データＤ１０をＬＵＴ部１１へ供給する。ＬＵＴ部１１は、画素値データＤ１０が入力されると、注目画素のアドレスが（０，０）の時と同様に、具備している変換テーブルに従って、画素値の変換を行い、整数部データＤ１１を誤差加算部２０へ供給し、小数部データＤ１２を積算部３０へ供給する。
【００７３】
積算部３０においては、最初の小数部データＤ１２が示す値「０．１０」と、供給された小数部データＤ１２「０．１０」とが積算され、この演算結果として２進数で「１．００」を得る。積算部３０は、この整数部の値「１」を示す積算データＤ３０を加算部６０へ供給する。
【００７４】
誤差加算部２０は、供給された整数部データＤ１１が示す画素値に、誤差データＤ８０が示す値を加算し、誤差加算データＤ２０を出力する。この誤差加算データＤ２０は、ディザ用比較部１００−１〜１００−４へ供給される。各々のディザ用比較部１００は、誤差加算データＤ２０と、入力される閾値データとを比較して２値化の処理を行い、２値化画素データＤ４０−１〜Ｄ４０−４を出力する。
【００７５】
加算部６０は、積算部３０から供給される積算データＤ３０を算出誤差データＤ６０として誤差バッファ７０へ供給する。算出誤差データＤ６０が誤差バッファ７０に供給されると、誤差演算部８０は、この算出誤差データＤ６０を誤差データＤ８０として誤差加算部２０へ供給する。
【００７６】
以下、２値変換部８は多値画像データを順次走査し、上述した動作を繰り返し、ディザ法による２値化処理を行い、２値画像データを生成する。ＣＰＵ２Ａは、２値変換部８において、多値画像データから２値画像データへの変換が終了すると、生成された２値画像データを記憶部５に記憶させる。次にＣＰＵ２Ａは、２値画像データを出力部９へ供給する。出力部９は、供給された２値画像データに従って、２値画像データが示す画像を印刷用紙に印刷する。
【００７７】
＜階調モードが選択された場合の動作＞
画像処理装置の使用者が、操作部３が具備する「階調モード」キーを押下すると、押下されたキーを示す信号が、操作部３からＣＰＵ２Ａへ供給される。ＣＰＵ２Ａは、この信号が供給されると、Ｌレベルの制御信号Ｃ１０を出力する。制御信号Ｃ１０がＬレベルとなると、スイッチ１１０は、端子ａ−ｃ間を接続する。これにより、誤差加算部２０から出力される誤差加算データＤ２０は、ディザ用比較部１００ではなく比較部４０へ供給される。比較部４０は、制御信号Ｃ１０がＬレベルであるため、誤差加算データＤ２０を予め定められた閾値を用いて２値化し、２値化画素データＤ４０を出力する。また、誤差算出部５０は、２値化誤差データＤ５０を生成し、制御信号Ｃ１０がＬレベルであるため、生成した２値化誤差データＤ５０を出力する。このように、「階調モード」キーが押下された場合には、比較部４０と誤差算出部５０は、第１実施形態と同様に動作し、２値変換部８においては誤差拡散により２値化処理が行われる。
【００７８】
以上説明したように、本実施形態では、ＬＵＴ部１１から出力されたデータに対して直接、２値化処理を行うので、効率良く２値化が行われる。また、８ビットで表していた画素値を１０ビットで表すように拡張し、拡張された２ビットの情報を、誤差拡散により出力の２値画像に反映するようにしたので、拡張された２ビット分の情報が、後に続く画素に反映され、画像の階調再現性が向上する。また、ディザ法で２値化するか誤差拡散法で２値化するか選択できるので、出力する２値画像のモードを選択することができる。
【００７９】
［Ｄ．変形例］
以上、本発明の一実施形態について説明したが、本発明は上述した実施形態に限定されることなく、他の様々な形態で実施可能である。例えば、上述の実施形態を以下のように変形して本発明を実施してもよい。
【００８０】
上述した第３実施形態において、２値変換部８Ｍ、８Ｃ、８Ｋは、誤差加算データＤ２０をディザ用比較部１００へ供給し、２値変換部８Ｙは、誤差加算データＤ２０を比較部４０へ供給するようにし、Ｍ、ＫおよびＫに係わるデータについてはディザ法により２値化処理を行い、Ｙに係わるデータについては誤差拡散により２値化処理を行うようにしてもよい。
また、上述した第３実施形態において、誤差演算部８０は第２実施形態と同様に、整数誤差データＤ８１を誤差加算部２０へ供給し、小数誤差データＤ８２を積算部３０へ供給するようにしてもよい。また、この態様において積算部３０は、小数部データＤ１２と小数誤差データＤ８２とを積算するようにしてもよい。また、第３実施形態において、誤差演算部８０は、制御信号Ｃ１０がＨレベルであっても、第１実施形態と同様の動作を行うようにしてもよい。
また、第３実施形態において、２値変換部８の構成を、比較部４０と誤差算出部５０とを具備しない構成とし、ディザ法による２値化のみを行う構成としてもよい。
【図面の簡単な説明】
【００８１】
【図１】本発明の実施形態に係わる画像処理装置の構成を示すブロック図である。
【図２】多値画像データにおける画素値の格納状態を説明するための概念図である。
【図３】２値画像データにおける画素値の格納状態を説明するための概念図である。
【図４】本発明の第１実施形態に係わる２値変換部の構成を示すブロック図である。
【図５】同２値変換部のＬＵＴ部が具備する変換テーブルを例示する図である。
【図６】誤差拡散の動作を説明するための図である。
【図７】本発明の第２実施形態に係る２値変換部の構成を示すブロック図である。
【図８】本発明の第３実施形態に係る画像処理装置の構成を示すブロック図である。
【図９】同実施形態に係わるディザマトリクス部が具備するディザマトリクスを例示する図である。
【図１０】ディザ法により生成される２値画素を例示する図である。
【符号の説明】
【００８２】
１・・・バス、２・・・制御部、２Ａ・・・ＣＰＵ、２Ｂ・・・ＲＯＭ、２Ｃ・・・ＲＡＭ、３・・・操作部、５・・・記憶部、６・・・通信部、７・・・２値画像生成部、８Ｙ，８Ｍ，８Ｃ，８Ｋ・・・２値変換部、９・・・出力部、１０・・・走査部、１１・・・ＬＵＴ部、２０・・・誤差加算部、３０・・・積算部、４０・・・比較部、４１・・・２値画像構成部、５０・・・誤差算出部、６０・・・加算部、７０・・・誤差バッファ、８０・・・誤差演算部、９０・・・ディザマトリクス部、１００−１〜１００−４・・・ディザ用比較部、１１０・・・スイッチ。
【図１】
2005229418.tif 000003
【図２】
2005229418.tif 000004
【図３】
2005229418.tif 000005
【図４】
2005229418.tif 000006
【図５】
2005229418.tif 000007
【図６】
2005229418.tif 000008
【図７】
2005229418.tif 000009
【図８】
2005229418.tif 000010
【図９】
2005229418.tif 000011
【図１０】
2005229418.tif 000012