JP2005229418A - 画像処理装置および画像処理方法 - Google Patents
画像処理装置および画像処理方法 Download PDFInfo
- Publication number
- JP2005229418A JP2005229418A JP2004037081A JP2004037081A JP2005229418A JP 2005229418 A JP2005229418 A JP 2005229418A JP 2004037081 A JP2004037081 A JP 2004037081A JP 2004037081 A JP2004037081 A JP 2004037081A JP 2005229418 A JP2005229418 A JP 2005229418A
- Authority
- JP
- Japan
- Prior art keywords
- value
- error
- pixel
- data
- bits
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title description 3
- 230000010354 integration Effects 0.000 claims abstract description 40
- 238000009792 diffusion process Methods 0.000 claims abstract description 19
- 238000004364 calculation method Methods 0.000 claims description 48
- 238000000034 method Methods 0.000 claims description 25
- 238000006243 chemical reaction Methods 0.000 abstract description 50
- 238000013139 quantization Methods 0.000 abstract description 6
- 239000011159 matrix material Substances 0.000 description 21
- 238000004891 communication Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 10
- 239000000284 extract Substances 0.000 description 4
- 238000010276 construction Methods 0.000 description 3
- 239000003086 colorant Substances 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
Images
Landscapes
- Image Processing (AREA)
- Facsimile Image Signal Circuits (AREA)
Abstract
【課題】 階調変換時の量子化誤差を抑えつつ、効率よく階調変換後のデータを2値化する。
【解決手段】 LUT部11は、画素値を8ビットで表しているデータを、画素値を10ビットで表すデータに変換して画素値の補正を行う。この10ビットのデータうち上位8ビットに誤差データを加算し、誤差が加算されたデータを比較部40で2値化する。一方、積算部30は、10ビットのデータのうち下位2ビットを積算し、積算結果の3ビット目のビット値を出力する。加算部60は、積算部30から出力されるビット値と、2値化により生じた誤差とを加算する。この加算により得られる値を誤差演算部80は誤差拡散して、次の画素値に加算する誤差データを求める。
【選択図】 図4
【解決手段】 LUT部11は、画素値を8ビットで表しているデータを、画素値を10ビットで表すデータに変換して画素値の補正を行う。この10ビットのデータうち上位8ビットに誤差データを加算し、誤差が加算されたデータを比較部40で2値化する。一方、積算部30は、10ビットのデータのうち下位2ビットを積算し、積算結果の3ビット目のビット値を出力する。加算部60は、積算部30から出力されるビット値と、2値化により生じた誤差とを加算する。この加算により得られる値を誤差演算部80は誤差拡散して、次の画素値に加算する誤差データを求める。
【選択図】 図4
Description
本発明は、多値画像から2値画像を生成する技術に関する。
多値画像を2値画像に変換してプリンタ等で出力する際には、多値画像が有する階調を2値画像で再現するために、まず、2値画像を出力する装置の特性に合わせて多値画像に階調補正が施される。そして、この階調補正が施された多値画像に対して2値化処理が施され、2値画像が生成される。
多値画像に対して階調補正を施す方法としては、LUT(Look Up Table)を用いる方法が知られている。通常、階調補正においては、変換前の画素値と変換後の画素値の関係は非線形であるため、補正後の画像においては、補正時の量子化誤差により偽輪郭や、階調が急に変化するといったトーンジャンプと呼ばれる不具合が生じ得る。
特許文献1には、入力されたmビットのデータを、mビットよりビット数が多いnビットのデータに変換することにより、量子化誤差の影響を少なくする技術が提案されている。この技術によれば量子化誤差の影響を少なくすることが可能となるが、階調補正後のデータを扱う回路を全て変換後のデータのビット数に合わせて構成しなければならないため、回路が複雑化してコストアップ等の新たな問題が生じてしまう。
特許文献2には、mビットのデータを、mビットよりビット数が多いnビットのデータに変換し、下位(n−m)ビットのデータと(n−m)ビットのビット数と同じであってランダムに可変する可変データとの比較結果による1ビットデータを、上位mビットの最下位桁に加算し、トーンジャンプや偽輪郭などの問題を解決する技術が記載されている。この技術によれば、1ビットデータを加算する加算手段以降の回路は、扱うビット数を拡張したnビットに合わせて構成する必要がないため、回路の複雑化やコストアップを招かずに済む。
特開2001−144958号公報
特公平7−43763号公報
さて、特許文献2に記載された技術を利用すると、階調補正のために一度拡張したビット数を元のビット数に戻してから2値化を行うという構成をとる。この構成は、階調補正後のデータを扱う回路を全て変換後のデータのビット数に合わせて構成する必要がないため、2値化処理を行う回路において回路が複雑化しないという利点があるが、LUTによる階調変換後のデータをそのまま2値化する構成と比較すると、LUTからの出力をそのまま2値化処理に使用せずに元のビット数に戻す分、効率の面で劣るのが否めない。
本発明は、上述した背景の下になされたものであり、階調変換時の量子化誤差を抑えつつ、効率よく階調変換後のデータを2値化する技術を提供することを目的とする。
上述した課題を解決するために本発明は、画素値をmビット(mは整数)で表した多値画像データを1画素分づつ順次走査し、注目画素に対して誤差拡散処理を行い、次の注目画素に加算する誤差データを求める画像処理装置であって、画素値をmビットで表した多値画像データを走査し、注目画素の画素値を示すmビットの第1多値画素データを生成する第1多値画素データ生成手段と、前記第1多値画素データが示す画素値の補正を行い、補正後の画素値を用いて、画素値をnビット(nは、m<nを満たす整数)で表す第2多値画素データを生成する第2多値画素データ生成手段と、前記第2多値画素データ生成手段により生成された第2多値画素データの上位aビットが示す値と、該注目画素に対応する誤差データとを加算し、加算結果の値を示す誤差加算データを生成する誤差加算手段と、前記誤差加算手段により生成された誤差加算データを閾値により2値化して2値画素データを生成する2値画素データ生成手段と、前記2値画素データ生成手段により生成された2値画素データと、前記誤差加算手段により生成された誤差加算データとを用いて、2値化により生じた誤差値を求める誤差算出手段と、前記第2多値画素データ生成手段により生成された第2多値画素データの下位bビット(bはn−a)が示す値を積算し、b+1ビットの桁のビット値を出力する積算手段と、前記誤差算出手段により求められた誤差値に、前記積算手段から出力されたビット値を加算し、加算結果から、次の注目画素へ加算する誤差データを生成する誤差データ生成手段とを有する画像処理装置を提供する。
本発明によれば、第2多値画素データのうちの上位aビットに誤差データが示す値が加算され、この誤差が加算された値が2値化される。また、第2多値画素データの下位bビットが示す値が積算され、b+1ビットの桁のビット値が誤差値に加算された後、この加算結果から、次の誤差データが求められる。
本発明によれば、第2多値画素データのうちの上位aビットに誤差データが示す値が加算され、この誤差が加算された値が2値化される。また、第2多値画素データの下位bビットが示す値が積算され、b+1ビットの桁のビット値が誤差値に加算された後、この加算結果から、次の誤差データが求められる。
また本発明は、画素値をmビット(mは整数)で表した多値画像データを1画素分づつ順次走査し、注目画素に対して誤差拡散処理を行い、次の注目画素に加算する誤差データを求める画像処理方法であって、画素値をmビットで表した多値画像データを走査し、注目画素の画素値を示すmビットの第1多値画素データを生成する第1多値画素データ生成ステップと、前記第1多値画素データが示す画素値の補正を行い、補正後の画素値を用いて、画素値をnビット(nは、m<nを満たす整数)で表す第2多値画素データを生成する第2多値画素データ生成ステップと、前記第2多値画素データ生成ステップにより生成された第2多値画素データの上位aビットが示す値と、該注目画素に対応する誤差データとを加算し、加算結果の値を示す誤差加算データを生成する誤差加算ステップと、前記誤差加算手段により生成された誤差加算データを閾値により2値化して2値画素データを生成する2値画素データ生成ステップと、前記2値画素データ生成ステップにより生成された2値画素データと、前記誤差加算ステップにより生成された誤差加算データとを用いて、2値化により生じた誤差値を求める誤差算出ステップと、前記第2多値画素データ生成ステップにより生成された第2多値画素データの下位bビット(bはn−a)が示す値を積算し、b+1ビットの桁のビット値を求める積算ステップと、前記誤差算出ステップにより求められた誤差値に、前記積算ステップが求めたビット値を加算し、加算結果から、次の注目画素へ加算する誤差データを生成する誤差データ生成ステップとを有する画像処理方法を提供する。
本発明においても、第2多値画素データのうちの上位aビットに誤差データが示す値が加算され、この誤差が加算された値が2値化される。また、第2多値画素データのうちの下位bビットが示す値が積算され、b+1ビットの桁のビット値が誤差値に加算された後、この加算結果から、次の誤差データが求められる。
本発明においても、第2多値画素データのうちの上位aビットに誤差データが示す値が加算され、この誤差が加算された値が2値化される。また、第2多値画素データのうちの下位bビットが示す値が積算され、b+1ビットの桁のビット値が誤差値に加算された後、この加算結果から、次の誤差データが求められる。
また本発明は、画素値をmビット(mは整数)で表した多値画像データを1画素分づつ順次走査し、注目画素に対して誤差拡散処理を行い、次の注目画素に加算する誤差データを求める画像処理装置において、第1のモードまたは第2のモードのいずれかを選択する選択手段と、画素値をmビットで表した多値画像データを走査し、注目画素の画素値を示すmビットの第1多値画素データを生成する第1多値画素データ生成手段と、前記第1多値画素データが示す画素値の補正を行い、補正後の画素値を用いて、画素値をnビット(nは、m<nを満たす整数)で表す第2多値画素データを生成する第2多値画素データ生成手段と、前記第2多値画素データ生成手段により生成された第2多値画素データの上位aビットが示す値と、該注目画素に対応する誤差データとを加算し、加算結果の値を示す誤差加算データを生成する誤差加算手段と、前記第2多値画素データ生成手段により生成された第2多値画素データの下位bビット(bはn−a)が示す値を積算し、b+1ビットの桁のビット値を出力する積算手段と、前記誤差加算手段により生成された誤差加算データをディザ法により2値化して2値画素データを生成する第1の2値画素データ生成手段と、前記誤差加算手段により生成された誤差加算データを閾値により2値化して2値画素データを生成する第2の2値画素データ生成手段と、前記第2の2値画素データ生成手段により生成された2値画素データと、前記誤差加算手段により生成された誤差加算データとを用いて、2値化により生じた誤差値を求める誤差算出手段と、前記誤差算出手段により求められた誤差値に、前記積算手段から出力されたビット値を加算し、加算結果から、次の注目画素へ加算する誤差データを生成する誤差データ生成手段とを有し、前記選択手段により第1のモードが選択された場合、前記積算手段から出力されたビット値だけから、次の注目画素へ加算する誤差データを生成し、前記選択手段により第2のモードが選択された場合、前記積算手段から出力されたビット値と、前記誤差算出手段により求められた誤差値の加算結果から、次の注目画素へ加算する誤差データを生成することを特徴とする画像処理装置を提供する。
本発明によれば、第2多値画素データのうちの上位aビットに誤差データが示す値が加算され、第1のモードが選択されている場合には、この誤差が加算された値がディザ法により2値化され、第2のモードが選択されている場合には、この誤差が加算された値が閾値と比較されて2値化される。
本発明によれば、第2多値画素データのうちの上位aビットに誤差データが示す値が加算され、第1のモードが選択されている場合には、この誤差が加算された値がディザ法により2値化され、第2のモードが選択されている場合には、この誤差が加算された値が閾値と比較されて2値化される。
また本発明は、画素値をmビット(mは整数)で表した多値画像データを1画素分づつ順次走査し、注目画素に対して誤差拡散処理を行い、次の注目画素に加算する誤差データを求める画像処理装置において、画素値をmビットで表した多値画像データを走査し、注目画素の画素値を示すmビットの第1多値画素データを生成する第1多値画素データ生成手段と、前記第1多値画素データが示す画素値の補正を行い、補正後の画素値を用いて、画素値をnビット(nは、m<nを満たす整数)で表す第2多値画素データを生成する第2多値画素データ生成手段と、前記第2多値画素データ生成手段により生成された第2多値画素データの上位aビットが示す値と、該注目画素に対応する誤差データとを加算し、加算結果の値を示す誤差加算データを生成する誤差加算手段と、前記誤差加算手段により生成された誤差加算データをディザ法により2値化して2値画素データを生成する2値画素データ生成手段と、前記第2多値画素データ生成手段により生成された第2多値画素データの下位bビット(bはn−a)が示す値を積算し、b+1ビットの桁のビット値を出力する積算手段と、前記積算手段から出力されたビット値から、次の注目画素へ加算する誤差データを生成する誤差データ生成手段とを有する画像処理装置を提供する。
本発明によれば、第2多値画素データのうちの上位aビットに誤差データが示す値が加算され、この誤差データが加算された値がディザ法により2値化される。また、第2多値画素データのうちの下位bビットが示す値が積算され、b+1ビットの桁のビット値から、次の誤差データが求められる。
本発明によれば、第2多値画素データのうちの上位aビットに誤差データが示す値が加算され、この誤差データが加算された値がディザ法により2値化される。また、第2多値画素データのうちの下位bビットが示す値が積算され、b+1ビットの桁のビット値から、次の誤差データが求められる。
本発明によれば、階調変換時の量子化誤差を抑えつつ、効率よく階調変換後のデータを2値化することが可能となる。
[A.第1実施形態]
[A−1.第1実施形態の構成]
図1は、本発明の第1実施形態に係わる画像処理装置の構成を示すブロック図である。図1に示したように、画像処理装置の各部はバス1に接続されており、このバスを介して各部間で通信を行う。
[A−1.第1実施形態の構成]
図1は、本発明の第1実施形態に係わる画像処理装置の構成を示すブロック図である。図1に示したように、画像処理装置の各部はバス1に接続されており、このバスを介して各部間で通信を行う。
制御部2は、CPU(Central Processing Unit)2A、ROM(Read Only Memory)2B、RAM(Random Access Memory)2Cを具備している。画像処理装置の電源が入れられると、CPU2Aは、ROM2Bに記憶されているプログラムを読み出し、読出したプログラムをRAM2Cを作業エリアとして実行し、画像処理装置の各部を制御する。
記憶部5は、例えばハードディスク装置などの、データを永続的に記憶する装置(図示略)を有しており、各種画像データを記憶する。
通信部6は、例えば、LAN(Local Area Network)などの通信ネットワークを介して通信を行うための通信インターフェースである。通信部6は、通信ネットワークから送信されたデータを受信してCPU2Aへ供給する一方、CPU2Aから供給されたデータを通信ネットワークを介して通信先となる装置へ送信する。
通信部6は、例えば、LAN(Local Area Network)などの通信ネットワークを介して通信を行うための通信インターフェースである。通信部6は、通信ネットワークから送信されたデータを受信してCPU2Aへ供給する一方、CPU2Aから供給されたデータを通信ネットワークを介して通信先となる装置へ送信する。
出力部9は、例えば、印刷用紙に印刷を行うプリンタ装置を具備しており、後述する2値画像生成部7において生成される2値画像データに従って、2値画像データが示す画像を印刷する。
2値画像生成部7は、入力される多値画像データが示す画像を2値化して、2値画像データを出力するものであり、「Y」、「M」、「C」、「K」の各色毎に、多値画像から2値画像への変換を行う2値変換部8Y,8M,8C,8Kを有している。ここで、多値画像データとは、中間調を有するカラーの画像を示すデータである。この多値画像データにおいては、Y(イエロー)、M(マゼンタ)、C(シアン)、K(ブラック)の各色毎に、個々の画素値が8ビットで表されており、図2に示したように、画素値が例えば0から255の間の値で表現されている。また、2値画像データは、個々の画素値を1ビットで表したデータであり、図3に示したように、「Y」、「M」、「C」、「K」の各色毎に、画素がオンの場合には画素値が「1」、画素がオフの場合には画素値が「0」となる。
2値画像生成部7は、入力された多値画像データを、「Y」、「M」、「C」、「K」の各色毎のデータに分解し、分解されたデータを2値変換部8Y,8M,8C,8Kへ供給する。なお、以下の説明においては、各色に分解された多値画像データについては、「K」、「Y」、「M」、「C」の符号を付して、各色のデータを区別するが、特に区別する必要のない時は、「K」、「Y」、「M」、「C」の符号を付すのを省略する。
<2値変換部の構成>
次に、図4を用いて、2値変換部8K,8Y、8M,8Cの構成について説明する。2値変換部8K,8Y、8M,8Cの構成は、扱う色の成分が異なることを除いて、いずれも同じ構成である。このため、以下の説明においては、2値変換部8K,8Y,8M,8Cの各構成要素については、それぞれ「K」、「Y」、「M」、「C」という符号を付して区別するが、特に区別する必要のない時は、「K」、「Y」、「M」、「C」という符号を付すのを省略する。
次に、図4を用いて、2値変換部8K,8Y、8M,8Cの構成について説明する。2値変換部8K,8Y、8M,8Cの構成は、扱う色の成分が異なることを除いて、いずれも同じ構成である。このため、以下の説明においては、2値変換部8K,8Y,8M,8Cの各構成要素については、それぞれ「K」、「Y」、「M」、「C」という符号を付して区別するが、特に区別する必要のない時は、「K」、「Y」、「M」、「C」という符号を付すのを省略する。
走査部10は、供給された多値画像データが示す画像を順次走査し、走査中の注目画素の画素値を多値画像データから抽出し、抽出した値を示す画素値データD10をLUT部11へ供給する。
LUT部11は、多値画像データが示す画像の階調を補正するものである。LUT部11は、0から255までの間のいずれかの値をとる8ビットの画素値データD10を、少数を含む0から255までの間のいずれかの値をとる10ビットのデータに変換する。具体的には、LUT部11は、図5に示したように、入力される画素値と、出力する画素値との関係を格納した変換テーブルを具備しており、画素値データD10が入力されると、入力されたデータが示す画素値に対応付けて格納されている10ビットのデータを読出す。LUT部11は、読出した10ビットのデータのうち、上位8ビットを、画素値の整数部を示す整数部データD11として誤差加算部20へ供給し、下位2ビットを、画素値の小数部を示す小数部データD12として積算部30へ供給する。
なお、LUT部11に入力されるデータにおいて画素値は8ビットで示されており、変換テーブルから読出されるデータにおいて画素値は10ビットで示されているが、画素値を表すためのビット数は、上述したビット数に限定されるものではない。入力される画素値がaビットで表されており、変換テーブルから読出される画素値がbビットで表されているとした場合(a,bは整数)、a<bの関係が成り立つのであれば、画素値を表すビットの数は、上述した数に限定されず任意の数とすることができる。
誤差加算部20は、整数部データD11が示す画素値に、誤差演算部80から供給される誤差データD80が示す値を加算するものであり、加算により得られた値を示す誤差加算データD20を比較部40と誤差算出部50へ供給する。
積算部30は、小数部データD12が示す値を積算し、積算により得られた値のうち、整数部の値を示す積算データD30を加算部60へ供給する。
比較部40は、誤差加算データD20を、予め定められた閾値を用いて2値化するものである。比較部40は、誤差加算データD20が示す値が、閾値以上である場合には、画素値を「1」とした2値化画素データD40を出力し、誤差加算データD20が示す値が閾値未満の場合には、画素値を「0」とした2値化画素データD40を出力する。
2値画像構成部41は、2値画像データを生成するものである。2値画像構成部41は、走査部10が走査中の注目画素のアドレスで特定される画素の画素値を、比較部40から出力された2値化画素データD40が示す画素値とし、2値画像データを生成する。
誤差算出部50は、誤差加算データD20と2値化画素データD40とを用いて、2値化により生じた誤差を示す2値化誤差データD50を生成する。具体的には、誤差算出部50は、2値化画素データD40が「0」を示す場合には、誤差加算データD20が示す値と「0」との差を差分値としてもとめ、2値化画素データD40が「1」を示す場合には、誤差加算データD20が示す値から「255」を引いた値を差分値としてもとめ、この求めた差分値を示すデータを2値化誤差データD50として加算部60へ供給する。
加算部60は、2値化誤差データD50と、積算部30から供給される積算データD30とを用いて、算出誤差データD60を生成する。具体的には、加算部60は、2値化誤差データD50が示す値に、積算データD30が示す値を加算して、加算結果の値を示す算出誤差データD60を生成し、算出誤差データD60を誤差バッファ70へ供給する。
誤差バッファ70は、例えば、ラインメモリを具備しており、注目画素に加算する誤差の値を記憶する。誤差演算部80は、算出誤差データD60を用いて、注目画素の周辺の画素に分散させる誤差値を求める。具体的には、誤差演算部80は、誤差バッファ70に供給された算出誤差データD60が示す値と、例えば、Floyd&Steinberg型と呼ばれるフィルタを用いて、注目画素の周辺に分散させる誤差値を求める。誤差演算部80は、この求めた値を、誤差バッファ70において、注目画素に隣接する画素の誤差値を格納する領域に分散させ、既に格納されている誤差値に加算させる。誤差演算部80は、誤差値を分散させた後、次の注目画素に加算する誤差値を読出し、この読出した誤差値を示す誤差データD80を、誤差加算部20へ供給する。なお、注目画素の周辺画素に分散させる値を求める際には、Floyd&Steinberg型と呼ばれるフィルタではなく、Jarvis,Judice&Ninke型と呼ばれるフィルタを用いるようにしてもよい。
つまり、誤差算出部50は、誤差加算データD20と2値化画素データD40とを用いて、2値化により生じた誤差値を算出し、この誤差を示す2値化誤差データD50を加算部60へ供給する。一方、積算部30は、変換された画素値の小数部を積算し、積算結果の整数部を積算データD30として加算部60へ供給する。加算部60は、供給される誤差加算データD20と、積算データD30とを加算し、この加算結果の値を示す算出誤差データD60を誤差バッファ70へ供給する、誤差演算部80は、この算出誤差データD60を誤差拡散する。
[A−2.第1実施形態の動作]
次に、本実施形態による画像処理装置の動作について説明する。なお、以下の説明においては、比較部40には2値化を行う際の閾値として予め「128」が定められている場合を想定する。
次に、本実施形態による画像処理装置の動作について説明する。なお、以下の説明においては、比較部40には2値化を行う際の閾値として予め「128」が定められている場合を想定する。
まず、通信部6にて、通信ネットワークを介して送信された多値画像データが受信されると、CPU2Aは、この多値画像データを、一旦、記憶部5に記憶させる。次に、CPU2Aは、この記憶された多値画像データを2値画像生成部7へ供給する。2値画像生成部7は、多値画像データが供給されると、この多値画像データを、「Y」、「M」、「C」、「K」の各色毎のデータに分解し、分解されたデータを各色毎に対応する2値変換部8へ供給する。
2値変換部8においては、供給された多値画像データが走査部10に入力される。走査部10は、供給された多値画像データが示す画像を走査し、走査中の注目画素の画素値を多値画像データから抽出し、抽出した値を示す画素値データD10をLUT部11へ供給する。例えば、多値画像データにおいて画素値が図2に例示したように格納されており、注目画素のアドレスが(0,0)である場合、走査部10が出力する画素値データD10が示す値は「80」となる。
LUT部11は、画素値データD10が供給されると、具備している変換テーブルに従って画素値データD10が示す画素値の変換を行い、変換後の画素値を示す10ビットのデータを変換テーブルから読出す。LUT部11は、変換後の画素値を示すデータのうち、整数部を示す上位8ビットの整数部データD11を誤差加算部20へ供給し、小数部を示す下位2ビットの小数部データD12を積算部30へ供給する。例えば、画素値データD10が示す値が「80」である場合、この画素値を図5に例示した変換テーブルで「80.5」(2進数で「0101000010」)に変換すると、上位8ビットの「01010000」が整数部データD11として誤差加算部20へ供給され、下位2ビットの「0.10」が小数部データD12として積算部30へ供給される。
積算部30においては、供給された小数部データD12が示す値が積算される。最初の画素の画素値が供給された時点では、積算による桁上がりが生じないので、積算部30は「0」を積算データD30として出力する。
一方、誤差加算部20においては、供給された整数部データD11が示す画素値に、誤差演算部80から供給された誤差データD80が示す値が加算される。そして、この加算により得られた値を示す誤差加算データD20が、比較部40と誤差算出部50へ供給される。例えば、アドレスが(0,0)の画素を注目画素とした場合、整数部データD11の値は2進数で「01010000」(10進数で80)となり、誤差データD80の値は最初の画素であるので「0」となるため、誤差加算データD20の値は2進数で「01010000」(10進数で80)となる。
比較部40では、供給された誤差加算データD20と、予め定められた閾値との比較が行われる。誤差加算データD20が示す値「80」と、閾値「128」とを比較すると、誤差加算データD20の値は閾値未満であるため、比較部40は画素値を「0」とした2値化画素データD40を出力する。そして、比較部40から出力された2値化画素データD40が示す画素値は、2値画像構成部41において、図3に例示したように2値化データのうち、注目画素のアドレスに該当する位置に格納される。
また、比較部40から出力された2値化画素データD40は、誤差算出部50に供給される。誤差算出部50は、2値化画素データD40が「0」を示している為、誤差加算データD20が示す値「80」と「0」との差「80」を2値化による誤差値とし、この値を示すデータを2値化誤差データD50として加算部60へ供給する。
加算部60は、積算部30から供給された積算データD30が示す値「0」と、2値化誤差データD50が示す値「80」とを加算し、加算結果を示す算出誤差データD60を誤差バッファ70へ供給する。算出誤差データD60が誤差バッファ70に供給されると、誤差演算部80は、Floyd&Steinberg型と呼ばれるフィルタにより、注目画素の周辺の画素に分散させる誤差値を求め、求めた値を、誤差バッファ70において、注目画素に隣接する画素の誤差値を格納する領域に分散させ、既に格納されている誤差値に加算させる。例えば、算出誤差データD60が示す値が「80」である場合、図6に示したように、次の画素に分散する誤差値は、「80」に7/16を乗じた「35」が誤差値となる。誤差演算部80は、誤差を分散させた後、誤差バッファ70において、次の注目画素に相当する領域に格納されている値「35」を読出し、この読出した値を、次の注目画素に加算する誤差データD80として誤差加算部20へ供給する。
2値変換部8は、図2に例示した多値画像データにおいて、次の注目画素のアドレスを(0,1)とすると、この注目画素の画素値「80」を多値画像データから抽出し、抽出した画素値を示す画素値データD10をLUT部11へ供給する。LUT部11は、画素値データD10が供給されると、注目画素のアドレスが(0,0)の時と同様に、具備している変換テーブルに従って、画素値の変換を行い、整数部データD11「01010000」を誤差加算部20へ供給し、小数部データD12「0.10」を積算部30へ供給する。
積算部30は、最初の小数部データD12が示す値「0.10」と、供給された小数部データD12「0.10」とを積算し、この演算結果として2進数で「1.00」を得る。積算部30は、この演算結果の整数部の値「1」を積算データD30として加算部60へ供給する。
一方、誤差加算部20は、供給された整数部データD11が示す画素値「80」に、誤差データD80が示す値「35」を加算し、加算により得られた値「115」を示す誤差加算データD20を比較部40と誤差算出部50へ供給する。
比較部40では、誤差加算データD20が示す値「115」と、閾値「128」とが比較される。誤差加算データD20の値は閾値未満であるため、比較部40は画素値を「0」とした2値化画素データD40を出力する。そして、比較部40から出力された2値化画素データD40が示す画素値は、2値画像構成部41において、図3に例示したように2値化データのうち、注目画素のアドレスに該当する位置に格納される。
また、比較部40から出力された2値化画素データD40は、誤差算出部50に供給される。誤差算出部50は、2値化画素データD40が「0」を示している為、誤差加算データD20が示す値「115」と「0」との差「115」を2値化による誤差値とし、この値を示すデータを2値化誤差データD50として加算部60へ供給する。
加算部60は、積算部30から供給される積算データD30が示す値「1」と、2値化誤差データD50が示す値「115」とを加算し、加算結果の「116」を示す算出誤差データD60を誤差バッファ70へ供給する。算出誤差データD60が誤差バッファ70に供給されると、誤差演算部80は、注目画素の周辺の画素に分散させる誤差値を求め、求めた値を、誤差バッファ70において、注目画素に隣接する画素の誤差値を格納する領域に分散させ、既に格納されている誤差値に加算させる。ここで、次の画素に分散する誤差の値としては、「115」に7/16を乗じた「50.3125」が誤差として格納される。誤差演算部80は、誤差を分散させた後、誤差バッファ70において、次の注目画素に相当する領域に格納されている値「50.3125」を読出し、この読出した値の小数部を切り捨て、小数部を切り捨てた値「50」を次の注目画素に加算する誤差データD80として誤差加算部20へ供給する。
以下、2値変換部8は多値画像データを順次走査し、上述した動作を繰り返して誤差拡散を行い、2値画像データを生成する。CPU2Aは、2値変換部8において、多値画像データから2値画像データへの変換が終了すると、生成された2値画像データを記憶部5に記憶させる。次にCPU2Aは、2値画像データを出力部9へ供給する。出力部9は、供給された2値画像データに従って、2値画像データが示す画像を印刷用紙に印刷する。
以上説明したように、本実施形態では、LUT部11から出力されたデータに対して、直接、2値化処理を行うので、効率良く2値化が行われる。また、8ビットで表していた画素値を10ビットで表すように拡張し、拡張された2ビットの情報を、誤差拡散により出力の2値画像に反映するようにしたので、拡張された2ビット分の情報が、後に続く画素に反映され、画像の階調再現性が向上する。
[B.第2実施形態]
次に、本発明の第2実施形態について説明する。なお、以下の説明において、上述した第1実施形態と同じ構成の部分については、第1実施形態と同じ符号を付し、その説明を省略する。
次に、本発明の第2実施形態について説明する。なお、以下の説明において、上述した第1実施形態と同じ構成の部分については、第1実施形態と同じ符号を付し、その説明を省略する。
図7は、本実施形態に係わる2値変換部8の構成を示すブロック図である。本実施形態においては、誤差演算部80と積算部30の構成とが、第1実施形態と異なる。
上述した第1実施形態においては、誤差バッファ70から読出された誤差値のうち、小数部の値は切り捨てられ、整数部の値のみが誤差データD80として、誤差加算部20へ供給されている。これに対し本実施形態は、誤差バッファ70から読出された誤差値の小数部の値も誤差拡散に利用する。具体的には、誤差演算部80は、誤差バッファ70から誤差値を読出し、この読出した誤差値のうち、整数部の値を示す整数誤差データD81を誤差加算部20へ供給し、小数部の値を示す小数誤差データD82を積算部30へ供給する。
上述した第1実施形態においては、誤差バッファ70から読出された誤差値のうち、小数部の値は切り捨てられ、整数部の値のみが誤差データD80として、誤差加算部20へ供給されている。これに対し本実施形態は、誤差バッファ70から読出された誤差値の小数部の値も誤差拡散に利用する。具体的には、誤差演算部80は、誤差バッファ70から誤差値を読出し、この読出した誤差値のうち、整数部の値を示す整数誤差データD81を誤差加算部20へ供給し、小数部の値を示す小数誤差データD82を積算部30へ供給する。
積算部30は、LUT部11から供給される小数部データD12と、誤差演算部80から供給される小数誤差データD82とを積算し、積算により得られた値のうち、整数部の値を示す積算データD30を、加算部60へ供給する。
本実施形態によれば、次の画素に加算する誤差値の小数部の値も、誤差拡散により、後に続く画素に反映されるので、画像の階調再現性が向上する。
[C.第3実施形態]
[C−1.第3実施形態の構成]
次に、本発明の第3実施形態について説明する。なお、以下の説明において、上述した第1実施形態と同じ構成の部分については、第1実施形態と同じ符号を付し、その説明を省略する。
[C−1.第3実施形態の構成]
次に、本発明の第3実施形態について説明する。なお、以下の説明において、上述した第1実施形態と同じ構成の部分については、第1実施形態と同じ符号を付し、その説明を省略する。
本実施形態に係わる画像処理装置は、多値画像データを2値画像データに変換する際、2値画像データが示す画像のモードを選択できるようになっている。操作部3は、この2値画像のモードを選択するための「精細モード」キーと、「階調モード」キーとを具備しており、操作部3において、これらのキーが押下されると、押下されたキーを示す信号が操作部3からCPU2Aへ供給される。CPU2Aは、「精細モード」キーまたは「階調モード」キーを示す信号が供給されると、供給された信号に応じて、バス1を介して制御信号C10を2値画像生成部7へ出力する。CPU2Aは、操作部3から「階調モード」キーを示す信号が供給された場合には、Hレベルの制御信号C10を出力し、操作部3から「精細モード」キーを示す信号が供給された場合には、Lレベルの制御信号C10を出力する。
図8は、本実施形態に係わる2値変換部8の構成を例示するブロック図である。
走査部10は、画素値データD10をLUT部11へ供給すると共に、走査中の注目画素のアドレスを示すアドレスデータD90をディザマトリクス部90へ供給する。
走査部10は、画素値データD10をLUT部11へ供給すると共に、走査中の注目画素のアドレスを示すアドレスデータD90をディザマトリクス部90へ供給する。
ディザマトリクス部90は、p×q個の閾値(p、qは整数)を格納したディザマトリクスを具備しており、入力される注目画素のアドレスに従って、ディザマトリクスに格納されている閾値を読出し、読出した閾値をディザ用比較部100−1〜ディザ用比較部100−4へ供給する。図9は、ディザマトリクス部90が具備するディザマトリクスを例示する図である。図9に示したように、ディザマトリクス部90は、6×6のマトリクスを具備しており、図中の実線で示した格子の内部にある4つの閾値が、入力される多値画像データの1画素に対応している。ディザマトリクス部90は、アドレスデータD90が供給されると、このアドレスに対応する4つの閾値データD91〜D94を、この注目画素に対応する2値化閾値として、ディザ用比較部100−1〜100−4へ出力する。なお、ディザマトリクス内に格納される閾値(a1〜a36)は、任意の値をとることができる。また、ディザマトリクスは、6×6に限定されるものではなく、任意の行と列からなるマトリクスであってもよい。
ディザ用比較部100−1〜100−4は、誤差加算部20から供給される誤差加算データD20を、閾値データD91〜D94を用いて2値化するものである。ディザ用比較部100−1は、誤差加算データD20が示す値が、ディザマトリクス部90から供給される閾値データD91以上である場合には、画素値を「1」とした2値化画素データD40−1を出力し、誤差加算データD20が示す値が閾値未満の場合には、画素値を「0」とした2値化画素データD40−1を出力する。なお、ディザ用比較部100−1〜100−4の構成は、入力される閾値データが異なる以外は各々同じであるため、ディザ用比較部100−2〜100−4については、その説明を省略する。また、ディザ用比較部100−1〜100−4は、以下の説明において特に区別する必要のない場合、ディザ用比較部100と称する。
スイッチ110は、誤差加算データD20の供給先を決めるためのスイッチである。スイッチ110は、該スイッチ110に供給される制御信号C10がHレベルである場合には、端子a−b間を接続して誤差加算データD20をディザ用比較部100へ供給し、該スイッチ110に供給される制御信号C10がLレベルである場合には、端子a−c間を接続して誤差加算データD20を比較部40へ供給する。
比較部40は、誤差加算データD20を、予め定められた閾値を用いて2値化し、2値化画素データD40を生成する。比較部40は、供給される制御信号C10がLレベルである場合には2値化画素データD40を出力し、制御信号C10がHレベルである場合には2値化画素データD40を出力しない。
誤差算出部50は、誤差加算部20から供給される誤差加算データD20と、比較部40から供給される2値化画素データD40とを用いて、2値化誤差データD50を生成する。誤差算出部50は、入力される制御信号C10がHレベルである場合には、2値化誤差データD50を出力せず、制御信号C10がLレベルである場合には、2値化誤差データD50を加算部60へ供給する。
加算部60は、制御信号C10がHレベルである場合には、2値化誤差データD50が供給されないので、積算データD30を算出誤差データD60として誤差バッファ70へ供給する。
誤差演算部80は、入力される制御信号C10がLレベルである場合には、第1実施形態と同様の処理を行う。誤差演算部80は、入力される制御信号C10がHレベルである場合には、算出誤差データD60を誤差データD80として出力する。
[C−2.第3実施形態の動作]
次に本実施形態の動作について説明する。以下の説明においては、まず、画像処理装置の使用者が「精細モード」キーを押下した場合の動作について説明し、次に、画像処理装置の使用者が「階調モード」キーを押下した場合の動作について説明する。
次に本実施形態の動作について説明する。以下の説明においては、まず、画像処理装置の使用者が「精細モード」キーを押下した場合の動作について説明し、次に、画像処理装置の使用者が「階調モード」キーを押下した場合の動作について説明する。
<精細モードが選択された場合の動作>
画像処理装置の使用者が、操作部3が具備する「精細モード」キーを押下すると、押下されたキーを示す信号が、操作部3からCPU2Aへ供給される。CPU2Aは、この信号が供給されると、Hレベルの制御信号C10を出力する。
画像処理装置の使用者が、操作部3が具備する「精細モード」キーを押下すると、押下されたキーを示す信号が、操作部3からCPU2Aへ供給される。CPU2Aは、この信号が供給されると、Hレベルの制御信号C10を出力する。
この後、通信部6にて、通信ネットワークを介して送信された多値画像データが受信されると、CPU2Aは、第1実施形態と同様に、この多値画像データを2値画像生成部7へ供給する。2値画像生成部7は、多値画像データが供給されると、この多値画像データを、「Y」、「M」、「C」、「K」の各色毎のデータに分解し、分解されたデータを各色に対応する2値変換部8Y,8M,8C,8Kへ供給する。
2値変換部8においては、供給された多値画像データが走査部10に入力される。走査部10は、供給された多値画像データが示す画像を走査し、注目画素のアドレスを示すアドレスデータD90を、ディザマトリクス部90へ供給する。ディザマトリクス部90は、アドレスデータD90が供給されると、このアドレスに対応する4つの閾値データD91〜D94を、この注目画素に対応する2値化閾値として、ディザ用比較部100−1〜100−4へ出力する。例えば、アドレスデータD90がアドレス(0,0)を示す場合、ディザマトリクス部90は、図9に例示したディザマトリクスを参照して、閾値データD91として「a1」、閾値データD92として「a2」、閾値データD93として「a3」、閾値データD94として「a4」を出力する。
また走査部10は、走査中の注目画素の画素値を多値画像データから抽出し、抽出した値を示す画素値データD10をLUT部11へ供給する。例えば、多値画像データにおいて画素値が図2に例示したように格納されており、注目画素のアドレスが(0,0)である場合、走査部10が出力する画素値データD10が示す値は「80」となる。
LUT部11は、画素値データD10が入力されると、具備している変換テーブルに従って、画素値の変換を行う。例えば、画素値データD10が示す値が「80」である場合、値が「01010000」(10進数で80)である整数部データD11を誤差加算部20へ供給し、値が「0.10」(10進数で0.5)である小数部データD12を積算部30へ供給する。
積算部30においては、供給された小数部データD12が示す値が積算される。最初の画素の画素値が供給された時点では、積算による桁上がりが生じないので、積算部30は「0」を積算データD30として出力する。
一方、誤差加算部20においては、供給された整数部データD11が示す画素値に、誤差演算部80から供給された誤差データD80が示す値が加算される。そして、この加算により得られた値を示す誤差加算データD20が出力される。例えば、アドレスが(0,0)の画素を注目画素とした場合、整数部データD11の値は「01010000」であり、誤差データD80の値は「0」であるため、誤差加算データD20の値は「01010000」となる。
スイッチ110においては、制御信号C10がHレベルであるため、端子a−b間が接続されている。このため、誤差加算部20から出力された誤差加算データD20は、比較部40ではなく、ディザ用比較部100−1〜100−4へ供給される。各々のディザ用比較部100は、誤差加算データD20と、入力される閾値データとを比較して2値化の処理を行い、縦2画素×横2画素の2値化画素データD40−1〜D40−4を出力する。このように、ディザマトリクス部90とディザ用比較部100とにより、1つの多値画素が図10に示したように縦2×横2の4つの2値画素に変換されて解像度の変換が行われる。例えば、600dpiの多値画像データが入力された場合、1つの画素が縦2×横2の2値画素に変化されるため、出力される2値画像データは1200dpiとなる。
一方、制御信号C10がHレベルであり、誤差算出部50から2値化誤差データD50が出力されないので、加算部60は、積算データD30を算出誤差データD60として誤差バッファ70へ供給する。誤差演算部80は、制御信号C10がHレベルであるので、供給された算出誤差データD60を誤差データD80として誤差加算部20へ供給する。
次に2値変換部8は、図2に例示した多値画像データにおいて、次の注目画素のアドレスを(0,1)とすると、走査中の画素の画素値「80」を多値画像データから抽出し、抽出した画素値を示す画素値データD10をLUT部11へ供給する。LUT部11は、画素値データD10が入力されると、注目画素のアドレスが(0,0)の時と同様に、具備している変換テーブルに従って、画素値の変換を行い、整数部データD11を誤差加算部20へ供給し、小数部データD12を積算部30へ供給する。
積算部30においては、最初の小数部データD12が示す値「0.10」と、供給された小数部データD12「0.10」とが積算され、この演算結果として2進数で「1.00」を得る。積算部30は、この整数部の値「1」を示す積算データD30を加算部60へ供給する。
誤差加算部20は、供給された整数部データD11が示す画素値に、誤差データD80が示す値を加算し、誤差加算データD20を出力する。この誤差加算データD20は、ディザ用比較部100−1〜100−4へ供給される。各々のディザ用比較部100は、誤差加算データD20と、入力される閾値データとを比較して2値化の処理を行い、2値化画素データD40−1〜D40−4を出力する。
加算部60は、積算部30から供給される積算データD30を算出誤差データD60として誤差バッファ70へ供給する。算出誤差データD60が誤差バッファ70に供給されると、誤差演算部80は、この算出誤差データD60を誤差データD80として誤差加算部20へ供給する。
以下、2値変換部8は多値画像データを順次走査し、上述した動作を繰り返し、ディザ法による2値化処理を行い、2値画像データを生成する。CPU2Aは、2値変換部8において、多値画像データから2値画像データへの変換が終了すると、生成された2値画像データを記憶部5に記憶させる。次にCPU2Aは、2値画像データを出力部9へ供給する。出力部9は、供給された2値画像データに従って、2値画像データが示す画像を印刷用紙に印刷する。
<階調モードが選択された場合の動作>
画像処理装置の使用者が、操作部3が具備する「階調モード」キーを押下すると、押下されたキーを示す信号が、操作部3からCPU2Aへ供給される。CPU2Aは、この信号が供給されると、Lレベルの制御信号C10を出力する。制御信号C10がLレベルとなると、スイッチ110は、端子a−c間を接続する。これにより、誤差加算部20から出力される誤差加算データD20は、ディザ用比較部100ではなく比較部40へ供給される。比較部40は、制御信号C10がLレベルであるため、誤差加算データD20を予め定められた閾値を用いて2値化し、2値化画素データD40を出力する。また、誤差算出部50は、2値化誤差データD50を生成し、制御信号C10がLレベルであるため、生成した2値化誤差データD50を出力する。このように、「階調モード」キーが押下された場合には、比較部40と誤差算出部50は、第1実施形態と同様に動作し、2値変換部8においては誤差拡散により2値化処理が行われる。
画像処理装置の使用者が、操作部3が具備する「階調モード」キーを押下すると、押下されたキーを示す信号が、操作部3からCPU2Aへ供給される。CPU2Aは、この信号が供給されると、Lレベルの制御信号C10を出力する。制御信号C10がLレベルとなると、スイッチ110は、端子a−c間を接続する。これにより、誤差加算部20から出力される誤差加算データD20は、ディザ用比較部100ではなく比較部40へ供給される。比較部40は、制御信号C10がLレベルであるため、誤差加算データD20を予め定められた閾値を用いて2値化し、2値化画素データD40を出力する。また、誤差算出部50は、2値化誤差データD50を生成し、制御信号C10がLレベルであるため、生成した2値化誤差データD50を出力する。このように、「階調モード」キーが押下された場合には、比較部40と誤差算出部50は、第1実施形態と同様に動作し、2値変換部8においては誤差拡散により2値化処理が行われる。
以上説明したように、本実施形態では、LUT部11から出力されたデータに対して直接、2値化処理を行うので、効率良く2値化が行われる。また、8ビットで表していた画素値を10ビットで表すように拡張し、拡張された2ビットの情報を、誤差拡散により出力の2値画像に反映するようにしたので、拡張された2ビット分の情報が、後に続く画素に反映され、画像の階調再現性が向上する。また、ディザ法で2値化するか誤差拡散法で2値化するか選択できるので、出力する2値画像のモードを選択することができる。
[D.変形例]
以上、本発明の一実施形態について説明したが、本発明は上述した実施形態に限定されることなく、他の様々な形態で実施可能である。例えば、上述の実施形態を以下のように変形して本発明を実施してもよい。
以上、本発明の一実施形態について説明したが、本発明は上述した実施形態に限定されることなく、他の様々な形態で実施可能である。例えば、上述の実施形態を以下のように変形して本発明を実施してもよい。
上述した第3実施形態において、2値変換部8M、8C、8Kは、誤差加算データD20をディザ用比較部100へ供給し、2値変換部8Yは、誤差加算データD20を比較部40へ供給するようにし、M、KおよびKに係わるデータについてはディザ法により2値化処理を行い、Yに係わるデータについては誤差拡散により2値化処理を行うようにしてもよい。
また、上述した第3実施形態において、誤差演算部80は第2実施形態と同様に、整数誤差データD81を誤差加算部20へ供給し、小数誤差データD82を積算部30へ供給するようにしてもよい。また、この態様において積算部30は、小数部データD12と小数誤差データD82とを積算するようにしてもよい。また、第3実施形態において、誤差演算部80は、制御信号C10がHレベルであっても、第1実施形態と同様の動作を行うようにしてもよい。
また、第3実施形態において、2値変換部8の構成を、比較部40と誤差算出部50とを具備しない構成とし、ディザ法による2値化のみを行う構成としてもよい。
また、上述した第3実施形態において、誤差演算部80は第2実施形態と同様に、整数誤差データD81を誤差加算部20へ供給し、小数誤差データD82を積算部30へ供給するようにしてもよい。また、この態様において積算部30は、小数部データD12と小数誤差データD82とを積算するようにしてもよい。また、第3実施形態において、誤差演算部80は、制御信号C10がHレベルであっても、第1実施形態と同様の動作を行うようにしてもよい。
また、第3実施形態において、2値変換部8の構成を、比較部40と誤差算出部50とを具備しない構成とし、ディザ法による2値化のみを行う構成としてもよい。
1・・・バス、2・・・制御部、2A・・・CPU、2B・・・ROM、2C・・・RAM、3・・・操作部、5・・・記憶部、6・・・通信部、7・・・2値画像生成部、8Y,8M,8C,8K・・・2値変換部、9・・・出力部、10・・・走査部、11・・・LUT部、20・・・誤差加算部、30・・・積算部、40・・・比較部、41・・・2値画像構成部、50・・・誤差算出部、60・・・加算部、70・・・誤差バッファ、80・・・誤差演算部、90・・・ディザマトリクス部、100−1〜100−4・・・ディザ用比較部、110・・・スイッチ。
Claims (5)
- 画素値をmビット(mは整数)で表した多値画像データを1画素分づつ順次走査し、注目画素に対して誤差拡散処理を行い、次の注目画素に加算する誤差データを求める画像処理装置において、
画素値をmビットで表した多値画像データを走査し、注目画素の画素値を示すmビットの第1多値画素データを生成する第1多値画素データ生成手段と、
前記第1多値画素データが示す画素値の補正を行い、補正後の画素値を用いて、画素値をnビット(nは、m<nを満たす整数)で表す第2多値画素データを生成する第2多値画素データ生成手段と、
前記第2多値画素データ生成手段により生成された第2多値画素データの上位aビットが示す値と、該注目画素に対応する誤差データとを加算し、加算結果の値を示す誤差加算データを生成する誤差加算手段と、
前記誤差加算手段により生成された誤差加算データを閾値により2値化して2値画素データを生成する2値画素データ生成手段と、
前記2値画素データ生成手段により生成された2値画素データと、前記誤差加算手段により生成された誤差加算データとを用いて、2値化により生じた誤差値を求める誤差算出手段と、
前記第2多値画素データ生成手段により生成された第2多値画素データの下位bビット(bはn−a)が示す値を積算し、b+1ビットの桁のビット値を出力する積算手段と、
前記誤差算出手段により求められた誤差値に、前記積算手段から出力されたビット値を加算し、加算結果から、次の注目画素へ加算する誤差データを生成する誤差データ生成手段と
を有する画像処理装置。 - 画素値をmビット(mは整数)で表した多値画像データを1画素分づつ順次走査し、
注目画素に対して誤差拡散処理を行い、次の注目画素に加算する誤差データを求める
画像処理装置において、
第1のモードまたは第2のモードのいずれかを選択する選択手段と、
画素値をmビットで表した多値画像データを走査し、注目画素の画素値を示すmビットの第1多値画素データを生成する第1多値画素データ生成手段と、
前記第1多値画素データが示す画素値の補正を行い、補正後の画素値を用いて、画素値をnビット(nは、m<nを満たす整数)で表す第2多値画素データを生成する第2多値画素データ生成手段と、
前記第2多値画素データ生成手段により生成された第2多値画素データの上位aビットが示す値と、該注目画素に対応する誤差データとを加算し、加算結果の値を示す誤差加算データを生成する誤差加算手段と、
前記第2多値画素データ生成手段により生成された第2多値画素データの下位bビット(bはn−a)が示す値を積算し、b+1ビットの桁のビット値を出力する積算手段と、
前記誤差加算手段により生成された誤差加算データをディザ法により2値化して2値画素データを生成する第1の2値画素データ生成手段と、
前記誤差加算手段により生成された誤差加算データを閾値により2値化して2値画素データを生成する第2の2値画素データ生成手段と、
前記第2の2値画素データ生成手段により生成された2値画素データと、前記誤差加算手段により生成された誤差加算データとを用いて、2値化により生じた誤差値を求める誤差算出手段と、
前記誤差算出手段により求められた誤差値に、前記積算手段から出力されたビット値を加算し、加算結果から、次の注目画素へ加算する誤差データを生成する誤差データ生成手段とを有し、
前記選択手段により第1のモードが選択された場合、前記積算手段から出力されたビット値だけから、次の注目画素へ加算する誤差データを生成し、
前記選択手段により第2のモードが選択された場合、前記積算手段から出力されたビット値と、前記誤差算出手段により求められた誤差値の加算結果から、次の注目画素へ加算する誤差データを生成することを特徴とする画像処理装置。 - 画素値をmビット(mは整数)で表した多値画像データを1画素分づつ順次走査し、
注目画素に対して誤差拡散処理を行い、次の注目画素に加算する誤差データを求める
画像処理装置において、
画素値をmビットで表した多値画像データを走査し、注目画素の画素値を示すmビットの第1多値画素データを生成する第1多値画素データ生成手段と、
前記第1多値画素データが示す画素値の補正を行い、補正後の画素値を用いて、画素値をnビット(nは、m<nを満たす整数)で表す第2多値画素データを生成する第2多値画素データ生成手段と、
前記第2多値画素データ生成手段により生成された第2多値画素データの上位aビットが示す値と、該注目画素に対応する誤差データとを加算し、加算結果の値を示す誤差加算データを生成する誤差加算手段と、
前記誤差加算手段により生成された誤差加算データをディザ法により2値化して2値画素データを生成する2値画素データ生成手段と、
前記第2多値画素データ生成手段により生成された第2多値画素データの下位bビット(bはn−a)が示す値を積算し、b+1ビットの桁のビット値を出力する積算手段と、
前記積算手段から出力されたビット値から、次の注目画素へ加算する誤差データを生成する誤差データ生成手段と
を有する画像処理装置。 - 前記誤差データ生成手段は、mビットで誤差値を求め、該誤差値の上位aビットを、次の注目画素に加算する誤差データとすると共に、該誤差データの下位bビットを前記積算手段へ供給し、
前記積算手段は、前記第2多値画素データ生成手段により生成された第2多値画素データの下位bビットが示す値と、前記誤差データ生成手段から供給されたbビットのデータが示す値とを積算し、b+1ビットの桁のビット値を出力すること
を特徴とする請求項1乃至3のいずれかに記載の画像処理装置。 - 画素値をmビット(mは整数)で表した多値画像データを1画素分づつ順次走査し、注目画素に対して誤差拡散処理を行い、次の注目画素に加算する誤差データを求める画像処理方法において、
画素値をmビットで表した多値画像データを走査し、注目画素の画素値を示すmビットの第1多値画素データを生成する第1多値画素データ生成ステップと、
前記第1多値画素データが示す画素値の補正を行い、補正後の画素値を用いて、画素値をnビット(nは、m<nを満たす整数)で表す第2多値画素データを生成する第2多値画素データ生成ステップと、
前記第2多値画素データ生成ステップにより生成された第2多値画素データの上位aビットが示す値と、該注目画素に対応する誤差データとを加算し、加算結果の値を示す誤差加算データを生成する誤差加算ステップと、
前記誤差加算手段により生成された誤差加算データを閾値により2値化して2値画素データを生成する2値画素データ生成ステップと、
前記2値画素データ生成ステップにより生成された2値画素データと、前記誤差加算ステップにより生成された誤差加算データとを用いて、2値化により生じた誤差値を求める誤差算出ステップと、
前記第2多値画素データ生成ステップにより生成された第2多値画素データの下位bビット(bはn−a)が示す値を積算し、b+1ビットの桁のビット値を求める積算ステップと、
前記誤差算出ステップにより求められた誤差値に、前記積算ステップが求めたビット値を加算し、加算結果から、次の注目画素へ加算する誤差データを生成する誤差データ生成ステップと
を有する画像処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004037081A JP2005229418A (ja) | 2004-02-13 | 2004-02-13 | 画像処理装置および画像処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004037081A JP2005229418A (ja) | 2004-02-13 | 2004-02-13 | 画像処理装置および画像処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005229418A true JP2005229418A (ja) | 2005-08-25 |
Family
ID=35003783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004037081A Pending JP2005229418A (ja) | 2004-02-13 | 2004-02-13 | 画像処理装置および画像処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005229418A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007110690A (ja) * | 2005-09-14 | 2007-04-26 | Ricoh Co Ltd | 画像処理方法、プログラム、画像処理装置、画像形成装置及び画像形成システム |
JP2010130306A (ja) * | 2008-11-27 | 2010-06-10 | Ricoh Co Ltd | 画像処理装置と画像記録装置とプログラム |
JP2010136237A (ja) * | 2008-12-08 | 2010-06-17 | Ricoh Co Ltd | 画像処理装置、画像記録装置、画像処理方法、画像記録方法、プログラム、及び記憶媒体 |
-
2004
- 2004-02-13 JP JP2004037081A patent/JP2005229418A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007110690A (ja) * | 2005-09-14 | 2007-04-26 | Ricoh Co Ltd | 画像処理方法、プログラム、画像処理装置、画像形成装置及び画像形成システム |
JP2010130306A (ja) * | 2008-11-27 | 2010-06-10 | Ricoh Co Ltd | 画像処理装置と画像記録装置とプログラム |
JP2010136237A (ja) * | 2008-12-08 | 2010-06-17 | Ricoh Co Ltd | 画像処理装置、画像記録装置、画像処理方法、画像記録方法、プログラム、及び記憶媒体 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7043089B2 (en) | Overflow error diffusion | |
US20090154831A1 (en) | Method and apparatus for dithering a pixel value in image | |
JP6029305B2 (ja) | 画像処理装置およびその制御方法 | |
US5436736A (en) | Image processing apparatus | |
JP4371026B2 (ja) | プリントシステムおよびプリンタ | |
JP2007306513A (ja) | 画像データの圧縮方法および装置 | |
JP2005229418A (ja) | 画像処理装置および画像処理方法 | |
JP3223046B2 (ja) | 誤差拡散法2値画像の符号化装置 | |
JP2007312033A (ja) | 画像処理装置及び画像処理方法 | |
JP2003046793A (ja) | 画像処理方法及び装置 | |
JP4172399B2 (ja) | 画像処理装置およびプログラム | |
JP5312158B2 (ja) | 画像処理装置及び画像処理方法 | |
JP5504740B2 (ja) | 画像処理装置 | |
JP3728025B2 (ja) | 画像処理方法及び装置 | |
JP2004274714A (ja) | 画像処理システムおよび画像処理方法 | |
JP3124589B2 (ja) | 画像処理装置 | |
JP4182907B2 (ja) | 画像処理装置およびプログラム | |
JP2011035801A (ja) | 画像処理装置 | |
JP2004230671A (ja) | 画像処理方法 | |
JP3428822B2 (ja) | 画像処理装置及び画像処理方法 | |
JP2006261764A (ja) | 画像処理方法および画像処理装置並びに画像形成装置 | |
JPH0556263A (ja) | プリント装置 | |
JP2002027249A (ja) | ハーフトーン処理装置およびその処理手順を記録した媒体 | |
JP3363721B2 (ja) | ハーフトーン処理方法及び画像処理装置 | |
JP2004260700A (ja) | 画像処理装置及び方法 |