JP3770291B2 - 画像処理方法および画像処理装置 - Google Patents
画像処理方法および画像処理装置 Download PDFInfo
- Publication number
- JP3770291B2 JP3770291B2 JP04948598A JP4948598A JP3770291B2 JP 3770291 B2 JP3770291 B2 JP 3770291B2 JP 04948598 A JP04948598 A JP 04948598A JP 4948598 A JP4948598 A JP 4948598A JP 3770291 B2 JP3770291 B2 JP 3770291B2
- Authority
- JP
- Japan
- Prior art keywords
- quantization level
- value
- threshold
- input data
- error
- 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.)
- Expired - Fee Related
Links
Images
Description
【発明の属する技術分野】
本発明は、階調を持つ画像情報の入力データを擬似中間調処理して複数の量子化レベルに多値化する画像処理方法および画像処理装置に関するものである。
【0002】
【従来の技術】
入力データを擬似中間調処理して階調を表現する方法の一つとして、誤差拡散法がある。この方法は、着目画素の入力濃度信号に周辺の画素から渡される誤差信号を加算し、閾値と比較して2値化出力信号を得る。さらに、閾値との誤差信号を誤差配分係数を乗じて周辺の複数画素へ配分させていくものである。このような処理によって、2値しか表現できない記録装置でも、高品質の階調が表現できるという特徴を持つ。例えば特開平3−241971号公報には、この2値の誤差拡散法の改良に関する記載がある。
【0003】
このような2値表現への変換を行なう誤差拡散法を、多値表現が可能なように展開した多値誤差拡散法も提案されている。例えば、昭和53年電子通信学会通信部門全国大会,1978,加藤ほか,504「平均誤差最小法の多値化について」,P.504などに記載されている。この多値誤差拡散法は、数階調程度の濃淡表示が可能な記録装置に対して適応され、複数の閾値を設けて、記録階調に相当する量子化レベルに対応する出力データに割り当てるものである。
【0004】
図2は、従来の4値の誤差拡散法によって量子化された各濃度のドット占有率と入力信号との関係を示すグラフ、図3は、同じく閾値、量子化レベルに対応する出力データ、誤差配分係数の一例の説明図である。ここでは入力信号として8ビット(0〜255)の信号が入力されるものとし、4値の誤差拡散法によってそれぞれの画素の値を0,濃度1,濃度2,濃度3のいずれかの値に量子化する。図2において、すべての画素が濃度1となったとき、画像は大局的には濃度D1となる。同様に、すべての画素が濃度2となったとき、画像は大局的には濃度D2となり、すべての画素が濃度3の値となったとき、画像の大局的な濃度は255となる。
【0005】
各画素ごとに、これらの濃度(0,濃度1,濃度2,濃度3)のいずれにするかを決定するため、図3(A)に示すようにそれらの濃度値に基づいて閾値1(TH1)、閾値2(TH2)、閾値3(TH3)が設定されている。各画素における入力信号の値と、周囲の画素を処理した際に発生する誤差との和と、これらの閾値1〜3を比較することによって、量子化された濃度値(0,濃度1,濃度2,濃度3のいずれか)を決定する。
【0006】
例えば量子化された濃度値が決定されたとき、その画素の値と周囲の画素からの誤差との和と、決定された濃度値との間に誤差が生じる。その誤差を図3(B)に示すように近隣の画素(ここではその後に画素値を決定する周囲の画素)に配分する。例えば右隣の画素には誤差の7/16を配分する。右隣の画素の画素値を決定する際には、その画素の画素値と、周囲の画素から配分された誤差値の和をもとに、閾値との比較を行なって量子化された濃度値を決定する。
【0007】
このようにして各画素における量子化された濃度値を決定してゆく。例えば閾値2(TH2)に近い濃度の画像では、ある画素で濃度2に量子化されると負の誤差値が近隣の画素に配分され、例えば隣接する画素では濃度1に量子化される。このようにして、濃度2と濃度1の画素が交錯した画像が形成される。形成された画像の濃度は、大局的には濃度2と濃度1の中間のほぼ閾値2(TH2)に近い濃度となる。
【0008】
このように、量子化された濃度値0,濃度1,濃度2,濃度3の画素の占有率を入力信号に応じて変化させることによって、入力信号に対応した濃度の画像を得ることができる。図2において、入力信号が0から大きくなるに従い、濃度1の画素の占有率が増加し、入力信号がD1のとき、濃度1の画素の占有率が100%、すなわち、すべての画素が濃度1となる。さらに、入力信号が濃度D1より大きくなると、濃度1のドット占有率が減少し、濃度2のドット占有率が増加する。そして、入力信号が濃度D2のとき、濃度2のドット占有率が100%、すなわち、すべての画素が濃度2となる。以下、同様に濃度3の場合も説明できる。
【0009】
図4は、入力信号の値と従来の4値の誤差拡散法によって量子化された各画素の濃度値との関係の説明図である。上述のように、入力信号の値Inが0,D1,D2,255のとき、各画素の量子化された濃度値はすべて0,濃度1,濃度2,濃度3となる。その中間では、0<In<D1のときは各画素の量子化された濃度値は0または濃度1となり、D1<In<D2のときは各画素の量子化された濃度値は濃度1または濃度2となり、D2<In<255のときは各画素の量子化された濃度値は濃度2または濃度3となる。図4では、入力信号の値Inに応じて量子化後に存在する濃度値に○印を付して示している。
【0010】
このように、4値の誤差拡散法を行なった場合、濃度値D1,D2を境に量子化された濃度値の構成が変わるため、この濃度値D1,D2の位置に擬似輪郭が発生するという問題がある。入力信号の値inが濃度値D1,D2およびその近傍の場合には、画素値は濃度1または濃度2のみの一様なパターンとなり、他の入力信号値の場合の複数の濃度値の画素が混交するパターンとは異なったパターンとなる。そのため、この濃度値D1,D2の部分に擬似輪郭が発生するなどの画質低下が見られる。
【0011】
これらを改善するものとして、いくつかの方法が提案されている。例えば、画像電子学会誌、第24巻、第1号、1995、越智宏、「階調化処理による高品質多値誤差拡散法」、P.10〜17に記載されている方法では、まず、通常の2値誤差拡散法の処理を行ない、第1階層の2値画像を得る。続いて、原画信号レベルと第1階層の出力レベルとの差分値を、第1階層の処理における量子化レベルの中間量子化レベルで誤差拡散を行ない、第1階層の画像出力レベルに加えることにより第2階層の3値画像を得る。以下、同様に処理し、多値の画像出力を得るというものである。この方法によれば、中間量子化レベル付近でも一様なパターンとはならず、擬似輪郭の発生を抑えることができる。しかしながらこの方法では、処理が複雑で処理時間が長くなるばかりでなく、粒状性が悪化し、画像にノイズが目立つようになるという欠点を有している。
【0012】
また、例えば特開平9−107472号公報に記載されている方法では、入力信号に対して誤差係数を用いて補正処理することによって、中間量子化レベルにおいても量子化レベルが均一にならないようにし、擬似輪郭の発生を防いでいる。
【0013】
これとは別の方法として、例えば特開平3−16379号公報には、閾値をディザマトリクスや乱数等を使用して変動させて多値の画像出力を得る技術が開示されている。しかし、ディザマトリクスのような周期的な変動を用いた場合、モアレの発生などの欠点を有している。また、乱数等を使用する場合、特に画素値の小さい白色部分において乱数によるノイズが目立つ画像になるという欠点がある。
【0014】
【発明が解決しようとする課題】
本発明は、上述した事情に鑑みてなされたもので、擬似輪郭の発生を防止し、構成が簡単で、ノイズの目立たない画像処理装置および画像処理方法を提供することを目的とするものである。
【0015】
【課題を解決するための手段】
本発明は、多値誤差拡散法を用いて入力データを複数の量子化レベルに対応した出力データに多値化する画像処理方法および画像処理装置において、多値化の際に用いる閾値と量子化レベルの両方の変動範囲を入力データに応じて設定し、設定された変動範囲内で、閾値と量子化レベルの両方を変動させる。このような閾値と量子化レベルの変動によって、入力データが量子化レベルあるいはその近傍の値を取る場合であっても誤差変動が生じ、擬似輪郭の発生を防止することができる。
【0016】
本発明ではさらに、入力データに応じて閾値と量子化レベルの変動範囲を変化させる。例えば入力データがある値より大きい場合は一定にし、ある値より小さくなるに従って変動範囲を小さくしたり、あるいは、入力データが大きい場合には変動範囲が大きく、小さくなるに従って変動範囲が小さくなるようにしたり、さらには入力データがある値より小さい場合は変動範囲を一定(例えば0)にする。これによって、入力データが小さい場合に特に目障りとなるノイズを減少させることができ、全体としてノイズの目立たない画像を形成することができる。さらには、変動範囲を入力データが閾値に近い領域の場合には大きく、離れた領域になるに従って小さくしてもよい。
【0017】
さらに、このような閾値や量子化レベルの変動によって、入力データが最高濃度であっても最高の量子化レベルに対応した出力データとならなかったり、入力データが最低濃度であっても最低の量子化レベルに対応した出力データとならない場合の不具合を想定し、入力データが最高濃度に対応する場合は量子化レベルに対応した出力データを強制的に最高濃度に対応する値とし、入力データが最低濃度に対応する場合は量子化レベルに対応した出力データを強制的に最低濃度に対応する値とするように処理してもよい。
【0018】
【発明の実施の形態】
図1は、本発明の実施の一形態を示すブロック図である。図中、1は閾値/量子化レベル設定器、2は誤差バッファメモリ、3は加算器、4は比較器、5は誤差演算器、6は誤差配分演算器、11は入力データ、12は累積誤差、13は誤差加算信号、14は出力データ、15は量子化レベル、16は誤差信号である。
【0019】
閾値/量子化レベル設定器1は、入力データ11に応じて閾値および量子化レベルを設定し、比較器4に出力する。このとき、後述するように、閾値あるいは閾値と量子化レベルの両方を、入力データに応じて設定した変動範囲内で変動させる。誤差バッファメモリ2は、各画素ごとに周囲の画素から配分される誤差の累計を格納する。なお、画像すべてについてこの誤差の累計値(累積誤差)を保持する必要はなく、例えば図3(B)に示すような範囲に誤差を配分するのであれば1ライン+1画素分の容量があればよい。加算器3は、注目画素の入力データと、誤差バッファメモリ2に格納されている注目画素に配分された誤差の累計(累積誤差12)との和を算出し、誤差加算信号13として出力する。比較器4は、加算器3からの誤差加算信号13と、閾値/量子化レベル設定器1からの閾値とを比較し、同じく閾値/量子化レベル設定器1からの量子化レベルのいずれに該当するかを決定する。決定した量子化レベルを誤差演算器5に出力するとともに、決定した量子化レベルに対応した値を出力データ14として出力する。誤差演算器5は、比較器4からの量子化レベル15と、加算器3からの誤差加算信号13との差を算出し、誤差信号16として出力する。誤差配分演算器6は、誤差演算器5からの誤差信号16を予め設定された係数により注目画素の周囲の画素に配分し、誤差バッファメモリ2に格納されている各画素の累積誤差に配分した誤差を加算して、誤差バッファメモリ2に格納する。
【0020】
以下の説明では具体例として、入力データ11として0〜255(8ビット)の画像情報が入力され、出力データ14として0、濃度1、濃度2、濃度3の4値に変換する場合を示している。なお、値は0が白、255が黒であるものと仮定する。また、このように4値に変換するため、閾値/量子化レベル設定器1では、閾値TH1,TH2,TH3と、量子化レベル0,D1,D2,255を設定する。もちろん、量子化レベル0および255は設定しなくてもよい。また、比較器4では出力データ14として、量子化レベル0,D1,D2,255にそれぞれ対応した出力データ0、濃度1、濃度2、濃度3を出力する。出力データ14は、例えば0〜3(2ビット)のデータとすることができる。なお、閾値/量子化レベル設定器1によって量子化レベルD1,D2は変化するが、対応する出力データ14は固定した値を出力するように構成できる。
【0021】
この具体例に基づいて本発明の実施の一形態における動作の一例を説明する。0〜255(8ビット)の画像情報を持つ入力データ11が入力されると、入力データに応じて、閾値/量子化レベル設定器1において閾値TH1,TH2,TH3、量子化レベル0,D1,D2,255がそれぞれ決定される。
【0022】
一方、入力データ11は、誤差バッファメモリ2に格納されている当該画素の累積誤差12と加算器3で加算され、誤差加算信号13が生成される。誤差加算信号13は、比較器4に入力され、閾値TH1,TH2,TH3と比較される。誤差加算信号13が閾値TH1より小さい場合は“00”、閾値TH1と閾値TH2の間の場合は“01”、閾値TH2と閾値TH3の間の場合は“10”、閾値TH3より大きい場合は“11”を出力データ14として出力する。なお、“”内は2進数である。また同様に、誤差加算信号13が閾値TH1より小さい場合は0、閾値TH1と閾値TH2の間の場合はD1、閾値TH2と閾値TH3の間の場合はD2、閾値TH3より大きい場合は255を量子化レベル15として誤差演算器5に出力する。
【0023】
加算器3から出力された誤差加算信号13と、比較器4から出力された量子化レベル15は、その差が誤差演算器5により演算され、誤差信号16として出力される。出力された誤差信号16は、誤差配分演算器6により予め設定された誤差配分係数を用いて周辺の画素における誤差の配分値が演算され、誤差バッファメモリ2に格納されている周辺の画素の積算誤差と加算し、加算された新たな積算誤差を改めて格納する。
【0024】
本発明では上述のように、閾値/量子化レベル設定器1によって設定する閾値または閾値と量子化レベルの両方を変動させる。これによって、入力データが量子化レベルあるいはその近傍の値を取っても誤差が不均一になり、ばらつく。そのため、例えば入力データが量子化レベルD1付近の値であっても、誤差の配分によって、ある場合には量子化レベルが0になったり、あるいはD2になったりする。そのため、量子化レベルD1付近でも各種の量子化レベルの画素が現われ、擬似輪郭の発生を防止することができる。
【0025】
しかし入力データに関係なく変動させると、従来の技術において発生していたように、濃度の低い領域(白領域)においてノイズが顕著となるという不具合が発生する。そのため、本発明では入力データに応じて閾値もしくは閾値と量子化レベルの変動範囲を決定し、その変動範囲内で変動させることによって、ノイズの発生を防止している。以下、ノイズの発生を防止するための閾値、量子化レベルの生成方法についていくつか例を示す。
【0026】
図5、図6は、閾値/量子化レベル設定器1で設定する閾値および量子化レベルの第1の例の説明図である。上述の具体例のように4値化する場合には、図3(A)でも説明したように3つの閾値TH1,TH2,TH3を用い、図5(A)に示すように量子化レベル0,D1,D2,255のいずれかに量子化するものとする。これは以降の各例において同様である。
【0027】
この第1の例では、閾値TH1,TH2,TH3と量子化レベルD1,D2を変動させる。そして、入力データが42より大きい場合にはその変動範囲を一定幅とするとともに、入力データが30以下の場合にはその変動範囲を0とし、入力データが30より大きく42以下の場合には入力データの値に従った変動範囲を設定する例を示している。なお、図6では閾値TH1を42として示し、変動範囲にはハッチングを施して示している。
【0028】
具体的には、図5(B)に示すように、入力データInが30以下のとき、閾値および量子化レベルの変動範囲の幅は0であり、閾値と量子化レベル0/TH1/D1/TH2/D2/TH3/255は、それぞれ、0/42/84/127/170/212/255とする。
【0029】
入力データInが42より大きいとき、量子化レベル0,255はそのままとし、閾値および量子化レベルの変動範囲の幅を±12として、入力データが30以下の閾値と量子化レベル42/84/127/170/212をこの変動範囲内で変化させる。変化のさせ方は任意であり、例えばこの範囲内の乱数を発生させ、発生した乱数を加減算して閾値および量子化レベルを得てもよい。ここでは簡便な方法として、予め4つの値を用意しておき、いずれの値を選択するかを乱数で決定している。具体的には、閾値と量子化レベルTH1/D1/TH2/D2/TH3の値として、54/96/139/182/224、42/84/127/170/212、30/72/115/158/200、42/84/127/170/212の各組み合わせのいずれかを、入力データInに応じて乱数により選択する。もちろん、各閾値および各量子化レベルごとに乱数によっていずれかの値を選択してもよい。
【0030】
入力データが30より大きく42以下の時、量子化レベル0,255はそのままで、閾値と量子化レベルTH1/D1/TH2/D2/TH3の変動範囲を、入力データが大きくなるにつれて幅が大きくなるように設定する。ここでは直線的に変動範囲の幅が広がるように設定し、入力データが30のときに0、42のときに±12となるようにしている。すなわち入力データInの値に応じて、閾値TH1の変動範囲は54−(42−In)〜30+(42−In)、量子化レベルD1の変動範囲は96−(42−In)〜72+(42−In)、閾値TH2の変動範囲は139−(42−In)〜115+(42−In)、量子化レベルD2の変動範囲は182−(42−In)〜158+(42−In)、閾値TH3の変動範囲は224−(42−In)〜200+(42−In)となる。変化のさせ方は任意であり、例えば入力データInから決まる変動範囲内の値を乱数で決定してもよいが、ここでは、予め4つの値を用意しておき、いずれの値を選択するかを乱数で決定している。
【0031】
具体的には、閾値と量子化レベルTH1/D1/TH2/D2/TH3の値として、54−(42−In)/96−(42−In)/139−(42−In)/182−(42−In)/224−(42−In)、42/84/127/170/212、30+(42−In)/72+(42−In)/115+(42−In)/158+(42−In)/200+(42−In)、42/84/127/170/212の値の組のいずれかを乱数によって選択し、入力データInによって各閾値および量子化レベルを決定している。
【0032】
このようにして入力データに応じて決定された閾値および量子化レベルが比較器4に出力される。入力データが小さい場合には閾値および量子化レベルを変動させないようにして白領域にノイズが乗るのを防止するとともに、入力データが大きい領域では閾値および量子化レベルを変動させ、擬似輪郭の発生を防止することができる。またその間の領域では、閾値および量子化レベルの変動幅を入力データが大きくなるほど広くなるように設定し、変動幅の切り替えによる擬似輪郭の発生を防いでいる。
【0033】
なお、比較器4には入力データ11がそのまま入力されるわけではなく、加算器3によって累積誤差12が加算された誤差加算信号13が入力される。そのため、例えば入力データが閾値TH2の近傍のデータであったとしても、比較器4に入力される誤差加算信号13はいずれの値であるかは累積誤差12によるので、比較器4は閾値TH2および量子化レベルD1,D2が必要なだけではなく、閾値/量子化レベル設定器1で設定されるすべての閾値および量子化レベルが必要である。
【0034】
図7、図8は、閾値/量子化レベル設定器1で設定する閾値および量子化レベルの第2の例の説明図である。この第2の例では、閾値TH1,TH2,TH3と量子化レベルD1,D2を変動させることとし、入力データが30以下の場合に変動幅を0とし、入力データが30より大きい場合に、入力データが大きくなるに従ってその変動幅が大きくなるように設定する例を示している。
【0035】
具体的には、入力データが30以下のとき、閾値と量子化レベル0/TH1/D1/TH2/D2/TH3/255は、それぞれ、0/42/84/127/170/212/255である。
【0036】
入力データが30より大きいとき、量子化レベル0,255はそのままで、閾値と量子化レベルTH1/D1/TH2/D2/TH3の変動範囲を、入力データが30のときに0、255のときに最大の変動幅である±12となるように、入力データが大きくなるにつれて直線的に変動範囲の幅が大きくなるように設定する。すなわち入力データInの値に応じて、閾値TH1の変動範囲は54−(255−In)×12/255(=TH1h)〜30+(255−In)×12/255(=TH1l)、量子化レベルD1の変動範囲は96−(255−In)×12/255(=D1h)〜72+(255−In)×12/255(=D1l)、閾値TH2の変動範囲は139−(255−In)×12/255(=TH2h)〜115+(255−In)×12/255(=TH2l)、量子化レベルD2の変動範囲は182−(255−In)×12/255(=D2h)〜158+(255−In)×12/255(=D2l)、閾値TH3の変動範囲は224−(255−In)×12/255(=TH3h)〜200+(255−In)×12/255(=TH3l)となる。変化のさせ方は任意であり、例えば入力データInから決まる変動範囲内の値を乱数で決定してもよいが、ここでは、予め4つの値を用意しておき、いずれの値を選択するかを乱数で決定している。
【0037】
具体的には、閾値と量子化レベルTH1/D1/TH2/D2/TH3の値は、TH1h/D1h/TH2h/D2h/TH3h、42/84/127/170/212、TH1l/D1l/TH2l/D2l/TH3l、42/84/127/170/212の値の組のいずれかを乱数によって選択し、入力データInによって各閾値および量子化レベルを決定している。
【0038】
この第2の例においても、入力データが小さい場合には閾値および量子化レベルを変動させないようにして白領域にノイズが乗るのを防止するとともに、入力データが大きい領域では閾値および量子化レベルを変動させ、擬似輪郭の発生を防止することができる。
【0039】
図9は、閾値/量子化レベル設定器1で設定する閾値および量子化レベルの第3の例の説明図である。この第3の例においても、閾値TH1,TH2,TH3と量子化レベルD1,D2を変動させる。そして、入力データがある値以下の場合に変動幅を0とし、閾値と量子化レベル0/TH1/D1/TH2/D2/TH3/255は、それぞれ一定の値とする。入力データがある値より大きいとき、量子化レベル0,255はそのままとし、閾値と量子化レベルTH1/D1/TH2/D2/TH3は、入力データが閾値TH1,TH2,TH3に近い領域では変動幅が大きく、閾値から離れる領域では変動幅が小さくなるように、入力データInに応じて変動幅を設定している。そしてその変動幅内で、閾値と量子化レベルTH1/D1/TH2/D2/TH3の値を乱数により変動させている。すなわち、入力データがある値より大きい時、入力データがTH1,TH2,TH3の時は変動幅が最大となり、それらの中間で変動幅が最小となる。
【0040】
図10は、閾値/量子化レベル設定器1で設定する閾値および量子化レベルの第4の例の説明図である。この第4の例においても、閾値TH1,TH2,TH3と量子化レベルD1,D2を変動させ、入力データがある値以下の場合に変動幅を0とし、閾値と量子化レベル0/TH1/D1/TH2/D2/TH3/255は、それぞれ一定の値とする。また、入力データがある値より大きいとき、量子化レベル0,255はそのままとし、閾値と量子化レベルTH1/D1/TH2/D2/TH3は、入力データが閾値TH1,TH2,TH3に近い領域では変動幅が大きく、閾値から離れる領域では変動幅が小さくなるように、入力データInに応じて変動幅を設定している。さらにこの第4の例においては、全体の傾向として上述の第2の例と同様に入力データが大きくなるにつれて変動幅が大きくなるようにしている。そのため、入力データがTH1,TH2,TH3の時は変動幅が極大となるが、変動幅はTH1の時よりもTH2の時の方が大きく、さらにTH3の時の方が大きくなっている。また、それらの中間で変動幅が極小となるが、その極小値も入力データの大きい方が大きくなっている。そしてこのような変動幅内で、閾値と量子化レベルTH1/D1/TH2/D2/TH3の値を乱数により変動させる。
【0041】
これらの第3、第4の例においても、入力データが小さい場合には閾値および量子化レベルを変動させないようにして白領域にノイズが乗るのを防止するとともに、入力データが大きい領域では閾値および量子化レベルを変動させ、擬似輪郭の発生を防止することができる。
【0042】
図11ないし図14は、閾値/量子化レベル設定器1で設定する閾値および量子化レベルの第5ないし第8の例の説明図である。上述の第1ないし第4の例においては、入力データに応じて閾値TH1,TH2,TH3および量子化レベルD1,D2を変動させる例を示したが、閾値TH1,TH2,TH3のみ変動させるようにしてもよい。上述の第1ないし第4の例に対応して、閾値のみ変動させた例をそれぞれ第5ないし第8の例として、図11ないし図14に示している。
【0043】
これらの第5ないし第9の例においても、入力データが小さい場合には閾値および量子化レベルを変動させないようにして白領域にノイズが乗るのを防止するとともに、入力データが大きい領域では閾値および量子化レベルを変動させ、擬似輪郭の発生を防止することができる。
【0044】
図15は、本発明の実施の一形態において4値の誤差拡散法を使用した場合の量子化された各濃度のドット占有率と入力データとの関係を示すグラフ、図16は、入力データと同じく量子化された各画素の濃度値との関係の説明図である。図16において、○△印はその濃度の画素の多少を示し、△印は、○印に比べて画素が少ないことを示している。
【0045】
上述の各例に示したように、入力データに応じて閾値および量子化レベルを設定し、その設定された閾値と誤差加算信号を比較して量子化レベルおよび出力データを決定する。入力データが0から大きくなるに従い、出力データは濃度1の画素のドット占有率が増加し、入力データが量子化レベルD1より少し小さいレベルから濃度2のドット占有率が増加する。入力データが量子化レベルD1の時、濃度1のドット占有率は最大となるが、100%にはならず、少し小さいドット占有率となる。このとき、濃度1の画素とともに、濃度2の画素が少し混在している。また、画素値が0の画素もまだ存在している。
【0046】
入力データが量子化レベルD1より大きくなると、濃度2のドット占有率は増加するが、濃度1のドット占有率が減少する。入力データが量子化レベルD2より少し小さいレベルから濃度3のドット占有率が増加する。入力データが量子化レベルD2の時、濃度2のドット占有率は最大となるが、100%にはならず、少し小さいドット占有率となる。このとき、濃度1および濃度3の画素も少し混在している。
【0047】
入力データが量子化レベルD2より大きくなると、濃度3のドット占有率は増加するが、濃度2のドット占有率が減少し、また濃度1の画素はなくなる。入力データが255のとき、濃度2の画素はなくなり、濃度3の画素のみとなる。
【0048】
このように、入力データが量子化レベルD1,D2およびその近傍の値であっても単一のデータが出力されることはなく、擬似輪郭の発生を防止することができる。また、入力データが0あるいは0に近い値の場合には閾値や量子化レベルを変動させないので、ドット占有率はほぼ0%となり、ノイズの発生を抑えることができる。
【0049】
なお、上述のように閾値や量子化レベルを変動させたとき、例えば入力データが最高濃度に対応する場合でも、出力データは濃度3になるとは限らず、最高濃度が表現できない場合が発生する。このような場合に対処するため、図1に破線で示したように、比較部4は入力データを参照し、入力データが最高濃度に対応する値の場合には、出力データとして最大の値を強制的に出力するように構成してもよい。同様に、入力データが最低濃度の場合に出力データに濃度1以上の画素が出力されないように、入力データが最低濃度に対応する値の場合には、出力データとして最低の値を強制的に出力するように構成してもよい。
【0050】
図17は、本発明の実施の一形態において出力された出力データに従って多値記録を行なう場合の記録形態の一例の説明図である。本発明の実施の一形態によって例えば上述の具体例のように4値の多値誤差拡散を行ない、0〜255の入力データを0、濃度1、濃度2、濃度3の出力データに変換して出力した場合、この出力データに従って記録装置において多値記録を行なうことにより、画像全体として多階調の画像を記録することができる。
【0051】
例えば図17(A)に示した例では、出力データが0の場合には印字せず、出力データが濃度1の場合に1度打ち、濃度2の場合に2度打ち、濃度3の場合に3度打ちの重ね印字を行なうことによって、各画素ごとに4値の階調記録が実現できる。また、例えば図17(B)に示した例では、出力データによって記録するドット径を変え、出力データが濃度1の場合に小ドット、濃度2の場合に中ドット、濃度3の場合に大ドットを印字することによって、各画素ごとに4値の階調記録が実現できる。あるいはドットの大きさの代わりに、万線スクリーン処理によって各画素の記録幅を出力データによって変化させてもよい。さらに別の例として、図17(C)に示した例では、出力データによって記録に用いるインクの濃度を変え、出力データが濃度1の場合に淡インクを用い、濃度2の場合に中濃度のインクを用い、濃度3の場合に濃インクを用いて印字することによって、各画素ごとに4値の階調記録が実現できる。もちろん、他の方法で多階調の記録を行なうこともできるし、また、これらの記録方法を組み合わせて用いてもよい。
【0052】
このような多階調の記録方法では、たかだか数階調しか記録できないが、本発明の画像処理方法または画像処理装置と組み合わせることによって、多階調の画像を形成することが可能となる。このとき、擬似輪郭の発生は防止されており、またノイズの発生も抑えられているので、高画質の画像を形成することが可能である。
【0053】
【発明の効果】
以上の説明から明らかなように、本発明によれば、多値誤差拡散法において閾値、あるいは閾値と量子化レベルの両方を変動させることによって、量子化レベルに対応する出力データが緩やかに入り交じり、入力データが量子化レベルまたはその近傍の場合に発生する擬似輪郭を低減することができる。このとき、変動範囲を入力データが閾値に近い領域の場合には大きく、離れた領域になるに従って小さくすることによって、より一層低減することができる。
【0054】
本発明ではさらに、閾値、あるいは閾値と量子化レベルの両方を変動させる際に、変動範囲を入力データがある値より大きい場合は一定にし、ある値より小さくなるに従って小さくしたり、変動範囲を入力データが大きい場合には大きく、小さくなるに従って小さくしたり、あるいは、入力データが小さい範囲では変動範囲を一定(例えば変動幅を0)とすることによって、画像濃度が薄くなるに従って目立ちやすい誤差拡散特有のテクスチャと呼ばれるノイズも低減することができるという効果がある。
【図面の簡単な説明】
【図1】 本発明の実施の一形態を示すブロック図である。
【図2】 従来の4値の誤差拡散法によって量子化された各濃度のドット占有率と入力信号との関係を示すグラフである。
【図3】 従来の4値の誤差拡散法における閾値、量子化レベル、誤差配分係数の一例の説明図である。
【図4】 入力信号の値と従来の4値の誤差拡散法によって量子化された各画素の濃度値との関係の説明図である。
【図5】 閾値/量子化レベル設定器で設定する閾値および量子化レベルの第1の例の説明図である。
【図6】 閾値/量子化レベル設定器で設定する閾値および量子化レベルの第1の例を示すグラフである。
【図7】 閾値/量子化レベル設定器で設定する閾値および量子化レベルの第2の例の説明図である。
【図8】 閾値/量子化レベル設定器で設定する閾値および量子化レベルの第2の例を示すグラフである。
【図9】 閾値/量子化レベル設定器で設定する閾値および量子化レベルの第3の例のグラフである。
【図10】 閾値/量子化レベル設定器で設定する閾値および量子化レベルの第4の例のグラフである。
【図11】 閾値/量子化レベル設定器で設定する閾値および量子化レベルの第5の例のグラフである。
【図12】 閾値/量子化レベル設定器で設定する閾値および量子化レベルの第6の例のグラフである。
【図13】 閾値/量子化レベル設定器で設定する閾値および量子化レベルの第7の例のグラフである。
【図14】 閾値/量子化レベル設定器で設定する閾値および量子化レベルの第8の例のグラフである。
【図15】 本発明の実施の一形態において4値の誤差拡散法を使用した場合の量子化された各濃度のドット占有率と入力データとの関係を示すグラフである。
【図16】 入力データと本発明の実施の一形態において4値の誤差拡散法を使用した場合の量子化された各画素の濃度値との関係の説明図である。
【図17】 本発明の実施の一形態において出力された出力データに従って多値記録を行なう場合の記録形態の一例の説明図である。
【符号の説明】
1…閾値/量子化レベル設定器、2…誤差バッファメモリ、3…加算器、4…比較器、5…誤差演算器、6…誤差配分演算器、11…入力データ、12…累積誤差、13…誤差加算信号、14…出力データ、15…量子化レベル、16…誤差信号。
Claims (10)
- 階調を持つ画像の入力データに配分された誤差の累計を該入力データに加算手段で加算し、該加算値を閾値/量子化レベル設定手段で設定された閾値と比較手段で比較し、該比較結果に従って前記閾値/量子化レベル設定手段によって設定された量子化レベルおよび前記量子化レベルに対応した出力データを出力し、該出力データに多値化する際に発生する誤差をあらかじめ設定された係数により誤差配分演算手段が周辺の画素へ配分してゆき、前記入力データを前記出力データに多値化する画像処理方法において、前記閾値と前記量子化レベルの変動範囲を、入力データがある値より大きい場合は一定とし、ある値より小さくなるに従って小さくなるように設定し、設定された変動範囲内で前記閾値と前記量子化レベルを変動させることを特徴とする画像処理方法。
- 階調を持つ画像の入力データに配分された誤差の累計を該入力データに加算手段で加算し、該加算値を閾値/量子化レベル設定手段で設定された閾値と比較手段で比較し、該比較結果に従って前記閾値/量子化レベル設定手段によって設定された量子化レベルおよび前記量子化レベルに対応した出力データを出力し、該出力データに多値化する際に発生する誤差をあらかじめ設定された係数により誤差配分演算手段が周辺の画素へ配分してゆき、前記入力データを前記出力データに多値化する画像処理方法において、前記閾値と前記量子化レベルの変動範囲を、入力データが大きい場合には大きく、小さくなるに従って小さくなるように設定し、設定された変動範囲内で前記閾値と前記量子化レベルを変動させることを特徴とする画像処理方法。
- 階調を持つ画像の入力データに配分された誤差の累計を該入力データに加算手段で加算し、該加算値を閾値/量子化レベル設定手段で設定された閾値と比較手段で比較し、該比較結果に従って前記閾値/量子化レベル設定手段によって設定された量子化レベルおよび前記量子化レベルに対応した出力データを出力し、該出力データに多値化する際に発生する誤差をあらかじめ設定された係数により誤差配分演算手段が周辺の画素へ配分してゆき、前記入力データを前記出力データに多値化する画像処理方法において、前記閾値と前記量子化レベルの変動範囲を、入力データが閾値に近い領域の場合には大きく、離れた領域になるに従って小さくなるように設定し、設定された変動範囲内で前記閾値と前記量子化レベルを変動させることを特徴とする画像処理方法。
- 前記変動範囲は、入力データがある値より小さい場合は一定にすることを特徴とする請求項1ないし請求項3のいずれか1項に記載の画像処理方法。
- 入力データが最高濃度に対応する場合は量子化レベルに対応した出力データを強制的に最高濃度に対応する値とし、入力データが最低濃度に対応する場合は量子化レベルに対応した出力データを強制的に最低濃度に対応する値とすることを特徴とする請求項1ないし請求項4のいずれか1項に記載の画像処理方法。
- 各画素ごとに周囲の画素の多値化に際して発生する誤差の配分値の累計を格納する誤差記憶手段と、注目画素の入力データと前記誤差バッファメモリに格納されている該注目画素に配分された誤差の累計との和を算出する加算手段と、入力データに応じて閾値および量子化レベルを設定する閾値/量子化レベル設定手段と、前記加算手段によって算出された値と前記閾値/量子化レベル設定手段によって設定された閾値とを比較し該比較結果に従って前記閾値/量子化レベル設定手段によって設定された量子化レベルおよび前記量子化レベルに対応した出力データを出力する比較手段と、該比較手段から出力される量子化レベルと前記加算手段で算出された値とから誤差を算出する誤差演算手段と、該誤差演算手段で算出された誤差を予め設定された係数により注目画素の周囲の画素における配分値を演算して前記誤差記憶手段に格納されている値に加算して格納する誤差配分演算手段を有し、前記閾値/量子化レベル設定手段は、前記閾値と前記量子化レベルの変動範囲を、入力データがある値より大きい場合は前記変動範囲を一定とし、ある値より小さくなるに従って小さくなるように設定し、設定された変動範囲内で前記閾値と前記量子化レベルを変動させることを特徴とする画像処理装置。
- 各画素ごとに周囲の画素の多値化に際して発生する誤差の配分値の累計を格納する誤差記憶手段と、注目画素の入力データと前記誤差バッファメモリに格納されている該注目画素に配分された誤差の累計との和を算出する加算手段と、入力データに応じて閾値および量子化レベルを設定する閾値/量子化レベル設定手段と、前記加算手段によって算出された値と前記閾値/量子化レベル設定手段によって設定された閾値とを比較し該比較結果に従って前記閾値/量子化レベル設定手段によって設定された量子化レベルおよび前記量子化レベルに対応した出力データを出力する比較手段と、該比較手段から出力される量子化レベルと前記加算手段で算出された値とから誤差を算出する誤差演算手段と、該誤差演算手段で算出された誤差を予め設定された係数により注目画素の周囲の画素における配分値を演算して前記誤差記憶手段に格納されている値に加算して格納する誤差配分演算手段を有し、前記閾値/量子化レベル設定手段は、前記閾値と前記量子化レベルの変動範囲を、入力データが大きい場合には大きく、入力データが小さくなるに従って小さくなるように設定し、設定された変動範囲内で前記閾値と前記量子化レベルを変動させることを特徴とする画像処理装置。
- 各画素ごとに周囲の画素の多値化に際して発生する誤差の配分値の累計を格納する誤差記憶手段と、注目画素の入力データと前記誤差バッファメモリに格納されている該注目画素に配分された誤差の累計との和を算出する加算手段と、入力データに応じて閾値および量子化レベルを設定する閾値/量子化レベル設定手段と、前記加算手段によって算出された値と前記閾値/量子化レベル設定手段によって設定された閾値とを比較し該比較結果に従って前記閾値/量子化レベル設定手段によって設定された量子化レベルおよび前記量子化レベルに対応した出力データを出力する比較手段と、該比較手段から出力される量子化レベルと前記加算手段で算出された値とから誤差を算出する誤差演算手段と、該誤差演算手段で算出された誤差を予め設定された係数により注目画素の周囲の画素における配分値を演算して前記誤差記憶手段に格納されている値に加算して格納する誤差配分演算手段を有し、前記閾値/量子化レベル設定手段は、前記閾値と前記量子化レベルの変動範囲を、入力データが閾値に近い領域の場合には大きく、離れた領域になるに従って小さくなるように設定し、設定された変動範囲内で前記閾値と前記量子化レベルを変動させることを特徴とする画像処理装置。
- 前記閾値/量子化レベル設定手段は、入力データがある値より小さい場合は前記変動範囲を一定にすることを特徴とする請求項6ないし請求項8のいずれか1項に記載の画像処理装置。
- 前記比較器は、入力データが最高濃度に対応する場合は量子化レベルに対応する出力データを強制的に最高濃度に対応する値とし、入力データが最低濃度に対応する場合は量子化レベルに対応する出力データを強制的に最低濃度に対応する値とすることを特徴とする請求項6ないし請求項9のいずれか1項に記載の画像処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP04948598A JP3770291B2 (ja) | 1998-03-02 | 1998-03-02 | 画像処理方法および画像処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP04948598A JP3770291B2 (ja) | 1998-03-02 | 1998-03-02 | 画像処理方法および画像処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11252364A JPH11252364A (ja) | 1999-09-17 |
JP3770291B2 true JP3770291B2 (ja) | 2006-04-26 |
Family
ID=12832470
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP04948598A Expired - Fee Related JP3770291B2 (ja) | 1998-03-02 | 1998-03-02 | 画像処理方法および画像処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3770291B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE60001143T2 (de) * | 1999-10-29 | 2003-10-16 | Ricoh Kk | Bildverarbeitungsvorrichtung und -verfahren und Aufzeichnungsmedium |
JP3708465B2 (ja) * | 2001-01-22 | 2005-10-19 | 松下電器産業株式会社 | 画像処理方法および画像処理用プログラム |
JP4016743B2 (ja) | 2002-07-01 | 2007-12-05 | ブラザー工業株式会社 | 多値出力装置、プログラム及び記録媒体 |
JP4501607B2 (ja) * | 2003-09-12 | 2010-07-14 | ブラザー工業株式会社 | 画像処理装置、画像処理方法、および画像処理プログラム |
JP4834582B2 (ja) * | 2007-03-14 | 2011-12-14 | キヤノン株式会社 | 画像処理装置およびその方法 |
-
1998
- 1998-03-02 JP JP04948598A patent/JP3770291B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH11252364A (ja) | 1999-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5086484A (en) | Image processing apparatus with fixed or variable threshold | |
US5394250A (en) | Image processing capable of handling multi-level image data without deterioration of image quality in highlight areas | |
JP3961736B2 (ja) | 画像処理装置 | |
US6373990B1 (en) | Image processing utilizing luminance-density conversion | |
US4366507A (en) | Shaded picture signal processing system and method | |
US5289294A (en) | Image processing apparatus | |
JPH11164146A (ja) | 画像データ処理システム及び画像データ処理方法 | |
US5577136A (en) | Image processing apparatus | |
JP3770291B2 (ja) | 画像処理方法および画像処理装置 | |
US5825940A (en) | Image processing method and apparatus for binary-coding multivalue image data | |
JP3119150B2 (ja) | 画像処理装置および画像処理方法 | |
JP4241441B2 (ja) | 画像処理装置、画像処理方法及び画像処理プログラム | |
JPH0998290A (ja) | 画像記録装置及び画像記録方法 | |
JP5312158B2 (ja) | 画像処理装置及び画像処理方法 | |
JP2882531B2 (ja) | 画像処理装置 | |
JP3124589B2 (ja) | 画像処理装置 | |
JP3560265B2 (ja) | 疑似中間調処理方法 | |
JP4412213B2 (ja) | 画像処理装置、画像処理方法およびプログラム | |
JPH0350960A (ja) | 画像信号処理装置 | |
JP2738865B2 (ja) | 画像処理装置 | |
JP2792581B2 (ja) | 画像処理装置 | |
JPH11225273A (ja) | 画像処理方法および画像処理装置 | |
JP2008078733A (ja) | 画像処理装置、画像処理方法、プログラム及び情報記録媒体 | |
JP2004260700A (ja) | 画像処理装置及び方法 | |
JPH0758953A (ja) | 2値化装置及びこれを用いた装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050418 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050518 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050715 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060118 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060131 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |