JP3431778B2 - 閾値マトリックス誤差拡散法による2値化方法およびコンピュータシステム - Google Patents

閾値マトリックス誤差拡散法による2値化方法およびコンピュータシステム

Info

Publication number
JP3431778B2
JP3431778B2 JP30834196A JP30834196A JP3431778B2 JP 3431778 B2 JP3431778 B2 JP 3431778B2 JP 30834196 A JP30834196 A JP 30834196A JP 30834196 A JP30834196 A JP 30834196A JP 3431778 B2 JP3431778 B2 JP 3431778B2
Authority
JP
Japan
Prior art keywords
matrix
threshold
binarization
pixel
density
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
Application number
JP30834196A
Other languages
English (en)
Other versions
JPH10150563A (ja
Inventor
昌史 上田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Brother Industries Ltd
Original Assignee
Brother Industries Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP30834196A priority Critical patent/JP3431778B2/ja
Priority to US08/971,189 priority patent/US6108450A/en
Publication of JPH10150563A publication Critical patent/JPH10150563A/ja
Application granted granted Critical
Publication of JP3431778B2 publication Critical patent/JP3431778B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、閾値マトリックス
誤差拡散法による2値化方法およびこの2値化方法を実
行可能に構成されたコンピュータシステムに関し、特
に、画素濃度と閾値との比較により中間調画像を2値化
するときに生じた誤差を周辺の画素の2値化に反映させ
るに際して、前記閾値として、n(nは2〜閾値マトリ
ックス要素数までの範囲の整数)種類の閾値の分布によ
り構成されている閾値マトリックスから、前記画素位置
に応じて抽出された閾値を用いる閾値マトリックス誤差
拡散法による2値化方法およびその方法を実行可能に構
成されたコンピュータシステムに関する。
【0002】
【従来の技術】フロイド(Floyd:"An Adaptive Algorit
hm for Spatial Gray Scale" SID 17[1976])らによっ
て提唱された誤差拡散法は、豊富な階調から成る自然画
像を良好な2値画像に変換する技法として広く知られて
いる。さらに、この誤差拡散法が持つ紋様の発生という
欠点を防止する手法として以下に記述する手法が知られ
ている。この手法の具体例としては、("On The Error
Diffusion Technique for Electronic Halftoninig" C.
Billotet-Hoffmann and O.Bryngdahl 1983 SID Vol.24/
3)[文献1参照]を挙げることができる。
【0003】まず図32を参照して、上記従来技術の動
作について説明する。まず誤差拡散処理が開始される
と、後述する誤差バッファを0に初期化すると共に、以
下の手順を実行する。S1,S2:2値化処理画素の位
置を判別するための変数x,yを0に初期化する。尚、
変数x,yで示される画素のことを注目画素と呼ぶ。
【0004】S3:画素位置(x,y)に対応する入力
画像の画素濃度値I(0≦I≦255)を読み取る。 S4:注目画素に対応する2値化誤差値e(x,y)を
誤差バッファから読み取り、次式1のごとく2値化誤差
値e(x,y)にて画素濃度値Iを補正して、補正濃度
値I′を求める。
【0005】
【数2】
【0006】S5:予め設定した閾値マトリックスMa
t()から画素位置(x,y)に応じて閾値Tを次式2
のごとく読み取る。
【0007】
【数3】
【0008】尚、Mat()は図33に示す様な2次元
配列のマトリックスであり、この例では8×8要素で構
成されている。各要素には閾値が1つづつ対応付けられ
て記憶されている。また、上式の「%」は除算後の余を
求める演算子であり、x%8はxを8で割つた後の余り
を示すものである。すなわち、x=8ならばx%8=0
であり、x=12ならばx%8=4となる。
【0009】この手順で読み取る閾値は、図33の例に
従えば、x=0,y=0ならば、x%8=0,y%8=
0なので、T=2であり、x=10,y=100なら
ば、x%8=2,y%8=4なので、T=46となる。 S6:S5で読み取った閾値TとS4で求めた補正濃度
値I′を比較し、2値化処理の分岐を行う。
【0010】S7:S6でI′<Tならば(「YE
S」)、出力濃度O=0とする。 S12:S6でI′≧Tならば(「NO」)、出力濃度
O=1とする。 S8:補正濃度値I′と出力濃度Oとに基づいて2値化
誤差値Eを次式3のごとく、算出する。
【0011】
【数4】
【0012】S9:予め設定した誤差分配マトリックス
Bmat()に基づいて、前記誤差値Eを、次式4に示
すごとく、未だ2値化されていない周辺画素の誤差バッ
ファeに分配する。
【0013】
【数5】
【0014】尚、「+=」は既に誤差バッファ内に存在
する値と加算処理して同じ誤差バッファに格納すること
を示す演算子である。Bmat()の具体例は図34に
示す通りであり、i,jは注目画素位置をi=j=0と
し、図示するような値をとる変数である。
【0015】S10:主走査方向(x方向)の2値化処
理が終了したか否かを判定する。 S11:S10にて終了したと判定された場合に(「Y
ES」)、全画素の2値化処理が終了したか否かを判定
する。 S13:S10にて終了していないと判定された場合に
(「NO」)、xに1を加算し、S3に戻る。
【0016】S14:S11にて全画素の2値化処理が
終了していないと判定された場合に(「NO」)、yに
1を加算し、S2に戻る。なお、S11にて全画素の2
値化処理が終了していると判定されると(「YES」)
誤差拡散処理は終了する。このように、閾値マトリック
スを誤差拡散に利用することによって、画質を劣化させ
る、紋様の発生や濃度急変部(エッジ)におけるドット
の偏りを防止することができるようになった。
【0017】
【発明が解決しようとする課題】しかしながら、以下に
記述するように、細線の再現不良やドットの偏りが残る
等の問題があり、未だ十分に画質が向上したとは言えな
かった。図35は2値の閾値マトリックスを構成するそ
れぞれの値がほぼ同じ頻度で発生する2値パターンを示
すものである。この閾値マトリックスは128×128
要素で構成されており、黒く塗りつぶされた要素は閾値
Tとして2(暗部側閾値と呼ぶ)が、白く塗りつぶされ
た要素は閾値Tとして253(明部側閾値と呼ぶ)が対
応付けられているものとする。尚、この例では、中間調
画像上では、白は濃度レベル255が該当し、黒は濃度
レベル0が該当するものとしている。
【0018】図37は、図36の黒文字(x)および白
抜き文字(y)に対し、前記2つの閾値レベルを変動さ
せて誤差拡散処理して2値化した擬似中間調画像の拡大
図である。それぞれ (a)は暗部側閾値: 2、 明部側閾値:253 (b)は暗部側閾値:16、 明部側閾値:253 (c)は暗部側閾値:32、 明部側閾値:253 (d)は暗部側閾値:64、 明部側閾値:253 (e)は暗部側閾値: 2、 明部側閾値:253 (f)は暗部側閾値: 2、 明部側閾値:192 である。
【0019】尚、図38は、暗部領域(濃度127)に
囲まれる明部領域(濃度254)の2値出力結果を示す
ものである。図38における(a)〜(d)の各図は、
図37と同様に2値閾値マトリックスのそれぞれの閾値
を変動させたものである。 (a)は暗部側閾値:64、明部側閾値:192 (b)は暗部側閾値:64、明部側閾値:224 (c)は暗部側閾値:64、明部側閾値:240 (d)は暗部側閾値:64、明部側閾値:253 である。
【0020】図37および図38より以下のことが判明
した。 1.図37より、暗部側の閾値を低く(暗く)するに従
い、黒文字細線のエッジ再現性が悪化する。 2.図37より、明部側の閾値を高く(明るく)するに
従い、白抜き文字のエッジ再現性が悪化する。
【0021】3.図38より、明部側の閾値を低く(暗
く)するに従い、明部におけるドットの偏りが悪化す
る。本発明は、このような細線やエッジでの再現性や、
明部におけるドットの偏りを防止あるいは目立たないよ
うにすることを目的としてなされたものである。
【0022】
【課題を解決するための手段および発明の効果】ここに
は、1つまたはそれ以上の発明が記載され、それぞれ以
下に述べるような構成および効果を有する。本発明の閾
値マトリックス誤差拡散法による2値化方法は、入力画
像の画素濃度と閾値との比較により中間調画像を2値化
するときに生じた誤差を周辺の画素の2値化に反映させ
るに際して、前記閾値として、n(nは2〜閾値マトリ
ックス要素数までの範囲の整数)種類の閾値の分布によ
り構成されている閾値マトリックスから、前記画素位置
に応じて抽出された閾値を用いる閾値マトリックス誤差
拡散法による2値化方法において、入力画素濃度が取り
うる画素濃度が最も低い(暗い)画素濃度S(S≧0)
から最も高い画素濃度L(L>S)の間で表される場合
に、前記閾値マトリックスを構成している2種類の閾値
H1,H2(H2>H1)が個数の上で他の前記閾値マ
トリックスの閾値よりも優勢となるよう構成し、該2種
類の閾値H1,H2の1つづつの合計値Tが、T>Lで
あることを特徴とする。
【0023】前述した図37および図38より以下の関
係が導き出せる。 1.図37より、暗部側の閾値を高く(明るくする)す
るに従い、黒文字細線のエッジ再現性が良好になる。 2.図37より、明部側の閾値を低く(暗くする)する
に従い、白抜き文字のエッジ再現性が良好になる。
【0024】3.図38より、明部側の閾値を高く(明
るく)するに従い、明部におけるドットの偏りが低減す
る。尚、インクジェットのような画像出力装置ではドッ
トゲインという現象が発生する。この現象により、暗部
領域における白点の偏りは事実上視覚的には目立たなく
なる。そのため、図37の反転画像(すなわち、明部領
域に囲まれる暗部領域)に発生する白抜き点の偏りは問
題視していない。また、図37に記載した白抜き文字の
エッジについても、同様の理由により、黒文字のエッジ
に比較すれば悪化の程度は気になりにくい傾向がある。
【0025】以上のような関係に基づいて、以下のよう
な機能を導き出した。図35に示したような2値の閾値
マトリックスを誤差拡散処理に用いた場合、 1.明部側の閾値を高く設定する程、明部のドットの偏
りを低減できる。 2.暗部側の閾値を高く設定する程、黒文字細線のエッ
ジをシャープにすることができる。
【0026】このことから、濃度レベルが0〜255の
場合に、暗部側と明部側とのそれぞれ1つの閾値の和
を、従来のように、ほぼ255にするのではなく、25
5よりも高くすることにより、明部のドットの偏りを低
減でき、かつ黒文字細線のエッジをシャープにすること
ができる。
【0027】したがって、一般化すると、入力画素濃度
が取りうる画素濃度が最も低い(暗い)画素濃度S(S
≧0)から最も高い画素濃度L(L>S)の間で表され
る場合に、前記閾値マトリックスを構成している2種類
の閾値H1,H2(H2>H1)が個数の上で他の前記
閾値マトリックスの閾値よりも優勢となるよう構成し、
該2種類の閾値H1,H2の1つづつの合計値Tが、T
>Lであることにすれば良い。
【0028】特に、黒文字細線のエッジ再現性を良好に
するには、前記閾値H1が、次式で表されるようにする
ことが好ましい。
【0029】
【数6】
【0030】明部のドットの偏りを十分に低減させるた
めには、前記閾値H2が、最も高い画素濃度Lと同じか
わずかに低い値であることが好ましい。前記閾値マトリ
ックスを構成している前記2種類の閾値H1,H2の内
のいずれか一方または両方を調整可能として、所望の値
に設定した後に、前記閾値マトリックス誤差拡散法を実
行するように構成しても良い。このように、調整するこ
とにより、黒文字細線のエッジ再現性、白抜き文字のエ
ッジ再現性あるいは明部におけるドットの偏りを、所望
に調整することができる。
【0031】また、閾値の種類数としては、具体的に
は、n=2が挙げられる。閾値マトリックスの生成方法
としては、次のような方法が挙げられる。前記閾値マト
リックスの閾値の配置が、ブルーノイズマスクの手法に
より形成される方法である。
【0032】ブルーノイズマスクの手法とは、誤差拡散
法とは異なる中間調画像の2値化の手法であるディザマ
トリックスを作成するための1つの手法として知られて
いる。すなわち、ブルーノイズマスクの手法は、所定の
割合で存在する2値からなるマトリックスの2値の分布
を評価して、同一の値が集中しないように2値を分散
し、これに基づいて複数の2値のマトリックスを作成
し、この複数の2値のマトリックスに基づいて多値の閾
値のマトリックスを作成する手法である。
【0033】このブルーノイズマスクの手法は、例え
ば、"The Void & Cluster method fordither array gen
eration" Robert Ulichney SPIE Vol,1913 として知ら
れている手法を利用することができる。ただし、これに
限らず、他のブルーノイズマスクの手法として知られて
いる方法も適用できる。
【0034】ブルーノイズマスクの手法を用いて閾値が
分布された閾値マトリックスを、誤差拡散法に適用する
と、前述の効果に加えて、比較的小さいサイズの誤差分
配マトリックスを用いても、あるいは閾値マトリックス
に配置する閾値の種類が少なくても、画質を劣化させる
紋様の発生や濃度急変部(エッジ)におけるドットの偏
りを防止でき、メモリ容量の不利も解消できる。
【0035】ブルーノイズマスクの手法としては、具体
的には、n=2であって、2種類の閾値をランダムに配
置したマトリックスの各閾値について、その周辺の同一
閾値の期待濃度を求め、各閾値について期待濃度の最大
となる位置の閾値同士を入れ替える処理を所定の閾値分
布状態になるまで繰り返すことにより、閾値マトリック
スを得る方法である。
【0036】この2種類の閾値において、最初に構成割
合を調整することにより、所望の構成割合の2値閾値マ
トリックスが生成できる。更に、このようにして得られ
た閾値マトリックスに対して、2種類の閾値のうち個数
の少ない方の閾値について、該個数の少ない方の閾値が
密に集まる部分の該個数の少ない方の閾値を個数の多い
方の閾値に置き換え、該要素位置に、置き換える前の前
記個数の少ない方の閾値の存在数を閾値として与えるこ
とを繰り返す処理、および、前記個数の少ない方の閾値
が疎に散る部分の前記個数の多い方の閾値の要素位置を
前記個数の少ない方の閾値に置き換え、該要素位置に、
置き換えた後の前記個数の少ない方の閾値の存在数を閾
値として与えることを繰り返す処理、を行って得られた
複数種類の閾値からなる閾値マトリックスを用いて得た
閾値マトリックスでも良い。
【0037】また、前記2つの処理のいずれかを実行す
ることにより、2種類の閾値が所望の構成割合となれ
ば、そこで処理を停止することで、2値の閾値が所望の
構成割合となっている閾値マトリックスを得ることがで
きる。ブルーノイズマスクの手法以外に、次のような手
法で閾値マトリックスを作成しても良い。
【0038】すなわち、前記閾値マトリックスの閾値の
配置が、均一濃度画素マトリックスを、画素濃度と閾値
との比較により2値化する際に生じた誤差を周辺の画素
の2値化に反映させて2値化する誤差拡散法を実行し、
得られた2値化マトリックスの2値にそれぞれ前記2種
類の閾値を対応させてなる配置方法にて行われることを
特徴とする。
【0039】この手法は、閾値マトリックスにおいて、
ブルーノイズマスクとは別個の手法で、好ましい閾値の
配置特性を実現するものであり、同様に、比較的小さい
サイズの誤差分配マトリックスを用いても、あるいは閾
値マトリックスに配置する閾値の種類が少なくても、画
質を劣化させる紋様の発生や濃度急変部(エッジ)にお
けるドットの偏りを防止し、メモリ容量の不利も解消で
きるものとなる。
【0040】最初の均一濃度画素マトリックスの濃度を
調整することにより、あるいはこの誤差拡散法における
閾値の値を調整することにより、所望の構成割合で2値
の閾値が存在する閾値マトリックスを得ることができ
る。また、このようにして得られた2値閾値マトリック
スに対して、ブルーノイズマスクにて述べた前記2つの
処理のいずれかを実行することにより、2種類の閾値が
所望の構成割合となれば、そこで処理を停止すること
で、2値の閾値が所望の構成割合となっている閾値マト
リックスを得ることができる。
【0041】更に、このような誤差拡散により2値を配
置させた閾値マトリックスに対して、前述したブルーノ
イズマスクの手法である、2種類の2値のいずれかの値
の所定個数を、同じ値の密度がほぼ均一になるようにす
る配置方法を実行しても良い。具体的には、閾値マトリ
ックスとして、前記誤差拡散により2値を配置させた閾
値マトリックスの各値について、その周辺の同一値の期
待濃度を求め、期待濃度の最大となる位置の一方の値を
期待濃度の最大となる位置の他方の値と入れ替える処理
を所定の値分布状態になるまで繰り返すことにより得ら
れたマトリックスを用いても良い。
【0042】異なる濃度の均一濃度画素マトリックスに
て既に2値化された2値化マトリックスの2値化状態を
参照しつつ、均一濃度画素マトリックスの各画素を、画
素濃度と閾値との比較により2値化する際に生じた誤差
を周辺の画素の2値化に反映させて2値化する誤差拡散
法を繰り返し、この繰り返しにより得られた、所望濃度
の均一濃度画素マトリックスによる2値化マトリックス
の2値に、それぞれ2種類の閾値を対応させる配置方法
でも良い。最後に処理される均一濃度画素マトリックス
の濃度値により、所望の構成割合の2値閾値マトリック
スを得ることができる。
【0043】このように他の均一濃度画素マトリックス
の2値化結果を考慮して、目的とする濃度の均一濃度画
素マトリックスを2値化すると、2値の分布が適当とな
り、比較的小さいサイズの誤差分配マトリックスを用い
ても、あるいは閾値マトリックスに配置する閾値の種類
が少なくても、画質を劣化させる紋様の発生や濃度急変
部(エッジ)におけるドットの偏りを防止し、メモリ容
量の不利も解消できるものとなる。
【0044】また、2値ばかりでなく、3値以上の多値
の閾値マトリックスを次のように作成しても良い。すな
わち、異なる濃度の均一濃度画素マトリックスにて既に
2値化された2値化マトリックスの2値化状態を参照し
つつ、均一濃度画素マトリックスの各画素を、画素濃度
と閾値との比較により2値化する際に生じた誤差を周辺
の画素の2値化に反映させて2値化する誤差拡散法を繰
り返し、この繰り返しにより得られた2値化マトリック
スのすべてについて同一位置の要素毎に2値を集積し、
この集積結果に基づいて、前記閾値マトリックスにおけ
る各要素の閾値を設定しても良い。
【0045】このような2値化マトリックスの集積によ
り、マトリックスには集積数に応じた数の種類が生じ、
それぞれに閾値を対応させれば、3値以上の閾値マトリ
ックスが作成できる。この場合、複数種類をまとめて一
つの閾値に対応させ、また別の複数種類をまとめてもう
一つの閾値に対応させれば、閾値マトリックスを構成し
ている個数の上で優勢な2種類の閾値H1,H2を設け
ることができる。
【0046】また、2値化状態の参照が、2値化処理し
ようとする均一濃度画素マトリックスに最も近い濃度の
均一濃度画素マトリックスの2値化状態を参照すること
によりなされても良い。更に具体的には、2値化状態の
参照が、2値化処理しようとする均一濃度画素マトリッ
クスに最も近い濃度の均一濃度画素マトリックスによる
2値化マトリックスの要素の内、「1」である要素と同
じ位置は必ず「1」に2値化することにより行われても
良い。
【0047】この場合、最初に、前記所定範囲において
設定された複数の濃度値の内の最低値を全要素の濃度値
とする均一濃度画素マトリックスについて、前記誤差拡
散法にて各要素の濃度値を「1」または「0」のいずれ
かに2値化し、その後、他の濃度値の均一濃度画素マト
リックスを2値化することとしても良い。
【0048】あるいは、最初に、前記所定範囲において
設定された複数の濃度値の内の最高値を全要素の濃度値
とする均一濃度画素マトリックスについて、前記誤差拡
散法にて各要素の濃度値を「1」または「0」のいずれ
かに2値化し、その後、他の濃度値の均一濃度画素マト
リックスを2値化するようにしても良い。
【0049】また、2値化状態の参照が、2値化処理し
ようとする均一濃度画素マトリックスに、濃度が低い側
および濃度が高い側にそれぞれ最も近い濃度の均一濃度
画素マトリックスの2値化状態を参照することとしても
良い。この場合、最初に、前記所定範囲において設定さ
れた複数の濃度値の内の最高値および最低値をそれぞれ
全要素の濃度値とする2つの均一濃度画素マトリックス
について、前記誤差拡散法にて各要素の濃度値を「1」
または「0」のいずれかに2値化し、その後、他の濃度
値の均一濃度画素マトリックスを2値化することとして
も良い。
【0050】具体的には、濃度が高い側の2値化マトリ
ックスにおいて「1」となり、かつ濃度が低い側の2値
化マトリックスにおいても「1」となっている要素位置
と同じ位置は必ず「1」とし、濃度が高い側の2値化マ
トリックスにおいて「0」となり、かつ濃度が低い側の
2値化マトリックスにおいても「0」となっている要素
位置と同じ位置は必ず「0」として誤差拡散処理するこ
とにより2値化することとしても良い。
【0051】2値化マトリックスもそのまま全て用いる
のではなく、最終的に得られた2値化マトリックスの一
部分を構成するマトリックスの2値にそれぞれ2種類の
閾値を対応させてなる配置方法にて行われても良い。こ
のようにすると、濃度急変部(エッジ)におけるドット
の偏りを防止する効果は、より一層、高いものとなる。
【0052】なお、閾値マトリックスの記憶に際して
は、閾値の代りに、該閾値の種類を識別するための、該
閾値よりも記憶容量が小さい識別値にて記憶され、閾値
マトリックスの使用に際しては、該当する要素位置から
読み出された前記識別値から対応する閾値を形成して使
用することとしても良い。
【0053】例えば、実際に用いられる2値が「64」
と「253」である場合、この値を「0」と「1」でそ
れぞれ表して、閾値マトリックスとして記憶しておき、
「0」の識別値が使用される場合は、閾値として「6
4」を用い、「1」の識別値が使用される場合は、閾値
として「253」を用いるようにすれば良い。「64」
と「253」とからなる閾値マトリックスと同等に使用
できる。このように実際の閾値よりも小さい識別値で記
憶することにより、メモリ容量の不利を一層解消でき
る。また、このように識別値であれば、「64」、「2
53」の組み合わせのみでなく、他の値に対応させるこ
ともできることから、一つの閾値マトリックスが、複数
種類の閾値マトリックスに対応することになり、更に一
層メモリ容量の不利を解消できる。
【0054】また、閾値マトリックスの記憶に際して
は、閾値の代りに、該閾値の種類を識別するための識別
値として記憶し、この識別値を、マトリックスの配置で
はなく、その要素位置とともに値順に配置されたテーブ
ルとして記憶しておき、閾値マトリックスの使用に際し
ては、必要な閾値の種類数に応じて、前記テーブルを分
割して、各分割された識別値に対して、該当する要素位
置にそれぞれ閾値を対応させて使用することとしても良
い。
【0055】このようにすると、閾値の値のみでなく、
閾値の種類数をも分割数の調整により任意に変更するこ
とが容易となり、目的に適合させて柔軟に閾値マトリッ
クスの閾値を調整することが容易にできる。したがっ
て、2つの閾値に当てはめる分割ブロックの大きさを他
よりも大きくすることにより、優勢な2つの閾値を形成
することができる。
【0056】なお、このような閾値マトリックス誤差拡
散法による2値化方法を実行する機能は、例えば、コン
ピュータシステム側で起動するプログラムとして備えら
れる。このようなプログラムの場合、例えば、フロッピ
ーディスク、光磁気ディスク、CD−ROM等の記憶媒
体に記憶し、必要に応じてコンピュータシステムにロー
ドして起動することにより用いることができる。この
他、ROMやバックアップRAMを記憶媒体として前記
プログラムを記憶しておき、このROMあるいはバック
アップRAMをコンピュータシステムに組み込んで用い
ても良い。
【0057】
【発明の実施の形態】[実施の形態1] 図1は、上述した発明のいくつかの閾値マトリックス誤
差拡散法による2値化方法が適用された中間調画像デー
タ2値化装置2の概略構成を表すブロック図である。
【0058】この中間調画像データ2値化装置2は、コ
ンピュータを主体として構成され、CPU12、ROM
からなるプログラム記憶部13、RAMからなる閾値マ
トリックス記憶部14、RAMからなる誤差分配マトリ
ックス記憶部15、RAMからなる誤差バッファ16、
RAMからなる入力画像データ記憶部17、RAMから
なる出力画像データ記憶部18およびRAMからなる作
業用メモリ19を備えて、これらがバス20により接続
されて、制御信号やデータ信号を交換可能としている。
【0059】また、中間調画像データ2値化装置2は、
これ以外に、バス20を介して、コンピュータとして必
要なキーボード21やディスプレイ22等の入出力装
置、ハードディスクやフロッピーディスクドライブ等の
外部記憶装置23およびカラープリンタ24が接続され
ている。
【0060】プログラム記憶部13には、コンピュータ
として必要な基本的なプログラム、後述する閾値マトリ
ックスを生成する処理プログラム、中間調画像を閾値マ
トリックス誤差拡散処理により2値化して擬似中間調画
像を形成するプログラム、およびその他の処理のプログ
ラムが格納され、必要に応じてCPU12により実行さ
れる。なお、外部記憶装置23を介して、前記各種プロ
グラムが記憶されたフロッピーディスク、光磁気ディス
ク、CD−ROM等の記憶媒体から、必要に応じて作業
用メモリ19に読み込んで起動することにより実行して
も良い。
【0061】閾値マトリックス記憶部14は、後述する
閾値マトリックス生成処理により生成された閾値マトリ
ックスを記憶するためである。この閾値マトリックス
は、2種類の識別値がブルーノイズマスクの手法により
あるいは類似の手法により分布されているマトリックス
として記憶されている。
【0062】誤差分配マトリックス記憶部15は、誤差
拡散法により算出された出力濃度値と元の濃度値との誤
差を、誤差バッファ16内の周辺画素に分配する際に、
分配対象となる周辺画素およびその分配率を誤差分配マ
トリックスとして記憶している。
【0063】誤差バッファ16は、誤差の分配対象とな
る画素毎に分配される誤差を蓄積している。入力画像デ
ータ記憶部17は外部記憶装置23等から導入された中
間調画像データを記憶している。出力画像データ記憶部
18は、入力画像データ記憶部17に記憶されている中
間調画像データを閾値マトリックス誤差拡散処理により
2値化して得られた擬似中間調画像データを記憶するも
のである。なお、必要に応じてこの擬似中間調画像デー
タは、ディスプレイ22に表示されたり、カラープリン
タ24により記録される。
【0064】次に、CPU12にて実行される図2のフ
ローチャートに示す閾値マトリックス生成処理について
説明する。この処理はブルーノイズマスクの手法の一つ
を用いて閾値マトリックスを生成している。尚、濃度レ
ベルは0〜255の256段階で表現されるものとし、
0が黒を示し255が白を示すものとする。
【0065】処理が開始されると、まず、閾値マトリッ
クスとして必要な大きさM×Nのマトリックス格納用の
メモリが作業用メモリ19に準備され、この作業用メモ
リ19に各要素値J(x,y)に「0」と「1」とのい
ずれかの値をランダムに配置する(S100)。このラ
ンダムな配置は例えば乱数の発生により決定すれば良
い。
【0066】次に、このように「1」,「0」がランダ
ムに配置されているマトリックスの各要素位置(x,
y)について、その期待濃度D(x,y)を算出する
(S110)。この期待濃度D(x,y)は次のように
して算出される。要素(x,y)に隣接する要素(x−
Δx,y−Δy)に与えられた要素値J(x−Δx,y
−Δy)と、別に定める重み関数f(Δx,Δy)とに
基づいて、下記式5に従い期待濃度D(x,y)を算出
する。
【0067】
【数7】
【0068】ここで、−i≦Δx≦i、−j≦Δy≦j
であり、0<i<M、0<j<Nである。ABS[]は
[]内の絶対値を求める関数である。「majority valu
e」は前述のステップS100にてランダムに配置した
「1」,「0」の値内で、数が多い方の値である。逆に
数が少ない方の値は「minority value」で表す。重み関
数f(Δx,Δy)は、距離に応じて小さくなる重み値
を算出する関数であり、種々の関数が使用できるが、例
えば、次式6のような関数を挙げることができる。
【0069】
【数8】
【0070】ここで「∧2」は二乗を表し、d∧2=Δx
∧2+Δy∧2である。また、「S」は調整用の係数であ
り、例えば「1.5」である。ここでのマトリックスは
M×N要素からなる限られた領域のパターンであるた
め、要素位置がマトリックスの周辺近傍に位置する場合
には、図3に示すように、参照すべき近傍の要素がマト
リックスの領域外に存在する場合がある。この場合、マ
トリックスは縦横に繰り返すパターンであると想定する
ことができる。
【0071】すなわち、期待濃度D(x,y)を算出す
るために参照すべき近傍の要素がマトリックスの領域外
にあるときは図3に示したエリアA1,A2,A3を近
傍要素として参照する。このようにして全要素の期待濃
度D(x,y)を算出した後に、要素値J(x,y)=
1である要素の内で最大の要素位置を(xmax,ymax)
とし、要素値J(x,y)=0である要素の内で最小の
要素位置を(xmin,ymin)とする(S120)。
【0072】次に、(xmax,ymax)の要素の値と(x
min,ymin)の要素の値とを入れ替える(S130)。
すなわち、J(xmax,ymax)=0とし、J(xmin,
ymin)=1とする。次に、所定の評価により、マトリ
ックス中に「1」,「0」の値が均一に分散されている
か否かが判定される(S140)。この評価は、ディス
プレイ22やカラープリンタ24にてマトリックスを視
覚的に表現することにより、観察により人が主観的に判
断しても良いし、CPU12による次の処理により客観
的に行っても良い。
【0073】すなわち、ステップS110と同じ処理を
再度行って、全要素について期待濃度D(x,y)を算
出する。そして、要素値J(x,y)=minority value
である要素の内で期待濃度D(x,y)が最大となる期
待濃度Dmaxを求める。更に、要素値J(x,y)=maj
ority valueである要素の内で期待濃度D(x,y)が
最小となる期待濃度Dminを求める。次にDmaxとDmin
との差(Dmax−Dmin)として評価値Evaが求められ
る。この評価値EvaはステップS120,S130の処
理を繰り返す毎に減少し、次第に0に近づくが、評価値
Eva>0にて平衡状態となる。
【0074】この平衡状態に達したと判定したときに、
マトリックス中に「1」,「0」の値が均一に分散され
ていると判定し、平衡に達していないときは均一に分散
されていないと判定する。このような判定にて、ステッ
プS140にて均一に分散されていないと判定された場
合(S140で「NO」)、再度、ステップS110〜
S130を繰り返し、再度、ステップS140の判定を
行う。なお、ステップS140の判定で、ステップS1
10と同じ処理を行った場合は、ステップS140の直
後にステップS110を実行する必要はなく、ステップ
S120,S130のみ繰り返せば良い。
【0075】ステップS140にて均一に分散されてい
ると判定された場合(S140で「YES」)は、
「1」,「0」の2値で表される閾値マトリックスが完
成したので、閾値マトリックス記憶部14に記憶し(S
150)、閾値マトリックス生成処理を終了する。
【0076】この結果、生成した2値閾値マトリックス
(128×128要素)の例を図4に示す。図4におい
ては白ドットが「0」の要素、黒ドットが「1」の要素
を表している。次に、前述した閾値マトリックス生成処
理にて形成された閾値マトリックスを用いてCPU12
にて実行される、閾値マトリックス誤差拡散処理を、図
5,6のフローチャートにより説明する。この処理は、
入力画像データ記憶部17に格納されている中間調画像
を2値化して擬似中間調画像を作成するために行われ
る。
【0077】閾値マトリックス誤差拡散処理が開始され
ると、誤差バッファ16を0に初期化すると共に、以下
の手順を実行する。まず、明部のドットの偏りの低減率
lnを利用者に問う(S200)。この要求は、ディス
プレイ22に図7のようなダイアログボックスの表示に
て行う。
【0078】操作者は、表示された調整ボタン32にマ
ウスカーソルを合わせて、ドラッグすることにより、調
整ボタン32を左右に移動させて、0%から100%と
の間で調整する。調整結果は、数字表示エリア34に数
値として表示される。尚、デフォルトは0%である。
【0079】調整が終了すれば、「OK」ボタン36
に、マウスカーソルを合わせて左クリックすることによ
り、低減率lnは選択された数値に設定され、次の処理
に移行する。尚、キャンセルボタン38を左クリックす
れば、低減率lnはデフォルトの0%が設定される。
【0080】次に、低減率lnに応じて、次式7のごと
く明部側の閾値H2が算出される(S202)。
【0081】
【数9】
【0082】例えば、ステップS200にて、ln=7
0%に設定されていれば、H2=192+63×0.7
=192+44=236となる。次に、暗部側の閾値H
1を値「64」に設定する(S204)。次に、2値化
処理する画素の位置を判別するための変数x,yを0に
初期化する(S210,S220)。尚、変数x,yで
示される画素のことを注目画素と呼ぶことにする。
【0083】画素位置(x,y)に対応する入力画像の
入力濃度I(0≦I≦255)を読み取る(S23
0)。次に、この注目画素に対応する2値化誤差値e
(x,y)を誤差バッファ16から読み取り、次式8の
ごとく2値化誤差値e(x,y)にて画素濃度Iを補正
して、補正濃度I′を求める(S240)。
【0084】
【数10】
【0085】次に、閾値生成処理(S250)が行われ
る。すなわち、閾値マトリックス生成処理にて形成され
た閾値マトリックスは、「1」,「0」の値のみで表さ
れている。この「1」,「0」は閾値の種類を表すため
の識別値であり、実際には、画素の濃度範囲(ここでは
0≦I≦255)に適合させて、予め決めてある適切な
閾値をそれぞれ設定する必要がある。ここでは識別値
「1」には閾値H1(=64)を、識別値「0」には閾
値H2(=236)を対応付る。この対応関係はステッ
プS200〜S204にて設定したものであり、閾値マ
トリックス記憶部14に記憶してある。
【0086】ステップS250では、この対応関係に基
づいて、図6のフローチャートに示すごとくの閾値生成
処理がなされる。まず、前述した閾値マトリックス生成
処理にて形成されている2値閾値マトリックスMat2
()から画素位置(x,y)に応じた要素位置(x%
M,y%N)から識別値tを次式9のごとく読み取る
(S252)。
【0087】
【数11】
【0088】ここで、Mat2()は、図4に示す閾値
マトリックス(M=128,N=128)である。Ma
t2()の各要素には閾値「1」,「0」のいずれかが
記憶されている。また、前記式9の「%」は除算後の余
を求める演算子であり、「x%M」はxをMで割つた後
の余りを示すものであり、「y%N」はyをNで割つた
後の余りを示すものである。すなわち、図4の閾値マト
リックスを用いた場合、x=200ならばx%128=
72であり、x=112ならばx%128=112とな
る。
【0089】この手順で読み取る閾値は、図4の例に従
えば、x=0,y=0ならば、x%128=0,y%1
28=0なので、t=1(黒)であり、x=128,y
=129ならば、x%128=0,y%129=1なの
で、t=0(白)となる。この識別値tを判断し(S2
54)、t=1ならば、閾値TとしてH1(ここでは6
4)が設定され(S258)、t=0ならば閾値Tとし
てH2(ここでは236)が設定される(S256)。
【0090】こうして閾値生成処理が終了すると、次に
ステップS240にて求められた補正濃度I′とステッ
プS250で求められた閾値Tとが比較される(S26
0)。I′<Tであれば(S260で「YES」)、出
力濃度Oとして「0」に設定され(S270)、I′≧
Tであれば(S260で「NO」)、出力濃度Oとして
「1」が設定される(S280)。この出力濃度Oの値
は、出力画像データ記憶部18に2値化画像データとし
て順次蓄積される。
【0091】次に、補正濃度I′と出力濃度Oとに基づ
いて2値化誤差値Eを次式10のごとく算出する(S2
90)。
【0092】
【数12】
【0093】次に、予め設定した誤差分配マトリックス
Bmat()に基づいて、前記誤差値Eを、次式11に
示すごとく、2値化が未処理の周辺画素の誤差バッファ
eに分配する(S300)。
【0094】
【数13】
【0095】尚、「+=」は既に誤差バッファe内に存
在する値と加算処理して同じ誤差バッファeに格納する
ことを示す演算子である。Bmat()の具体例は例え
ば図31に示す通りであり、i,jは注目画素位置をi
=j=0とし、図31に示すごとくの値をとる変数であ
る。
【0096】Bmat()としては、、従来のものであ
る図34に示すBmat()よりも、サイズの小さいも
のを使用している。閾値マトリックスにブルーノイズ特
性を有するものを用いることで、このような従来のもの
より比較的小さなサイズのBmat()を使用しても十
分な画質が得られる。このような小さなサイズのBma
t()を用いれば、2値化の際の演算量が少なくて済む
ため、処理を高速に行える。勿論、従来のようなサイズ
のBmat()を用いれば、より良い画素が得られる。
【0097】次に、主走査方向(x方向)の2値化処理
が終了したか否かを判定する(S310)。終了してい
なければ(S310で「NO」)、注目画素の主走査方
向の位置xを1つ増加させて(S320)、再度ステッ
プS230から処理を繰り返す。
【0098】主走査方向の2値化処理が終了したと判定
された場合(S310で「YES」)には、全画素の2
値化処理が終了したか否かを判定する(S330)。全
画素の処理が終了していなければ(S330で「N
O」)、注目画素の副走査方向の位置yを1つ増加させ
て(S340)、再度ステップS220から処理を繰り
返す。
【0099】全画素の2値化が終了していれば(S33
0で「YES」)、閾値マトリックス誤差拡散処理を終
了する。このときには、出力画像データ記憶部18内に
は、ステップS270またはステップS280にて設定
された出力濃度Oにて各画素が2値化された擬似中間調
画像データが形成されている。
【0100】本実施の形態によれば、2値閾値マトリッ
クスの2種類の閾値H1,H2は、その和が64+23
6=300となり、従来、濃度レベルが0〜255の場
合に使用されている2値の合計値(約255)に比較し
て、十分に高い。このことから、明部のドットの偏りを
低減でき、かつ黒文字細線のエッジをシャープにするこ
とができた。
【0101】また、暗部側の閾値H1は次式12を満足
しているので、黒文字細線のエッジ再現性が良好となっ
た。
【0102】
【数14】
【0103】ここで、S:最も低い(暗い)画素濃度S
(S≧0:ここでは0)、L:最も高い(明るい)画素
濃度L(L>S:ここでは255)である。すなわち、
S+(L−S)/4=0+(255−0)/4≒64で
あり、H1に一致する。ここでは、完全に一致していた
が、ほぼ一致すれば良い。
【0104】また、明部側の閾値H2は、236であ
り、L=255に、かなり近い。明部側の閾値H2とし
ては、好ましくはLの90%〜100%、更に好ましく
は97%〜99%、すなわち閾値H2=248〜254
程度が良い。したがって、明部のドットの偏りを十分に
低減させることができる。尚、ステップS200での利
用者による調整により、閾値H2をもっとLに近づけれ
ば、更に、一層、明部のドットの偏りを低減させること
ができる。
【0105】尚、暗部側の閾値H1を調整可能として、
黒文字細線のエッジ再現性を所望に調整するようにして
も良い。また、閾値マトリックスとして、従来のような
規則的に多種類の閾値が配置されたものでなく、ブルー
ノイズマスクの手法により得られた閾値マトリックスを
用いて誤差拡散法により、中間調画像を擬似中間調画像
に2値化しているので、従来の作成方法で作成された閾
値マトリックスを用いた場合よりも、比較的小さいサイ
ズの誤差分配マトリックスを用いても、擬似中間調画像
において紋様の発生や濃度急変部におけるドットの偏り
を十分に防止できて、高い画質が得られた。また比較的
小さいサイズの誤差分配マトリックスを用いても、閾値
マトリックス記憶部14が小さくて済み、メモリ容量の
不利を招かない。
【0106】また、実際には、閾値は「64」や「23
6」といった8ビットで表さなくてはならない値で閾値
マトリックス記憶部14に記憶されているのではなく、
その識別値である「0」,「1」で記憶されているの
で、各要素を1ビットで表すことができ、その2値閾値
マトリックスも極めて小さいデータで済み。閾値マトリ
ックス記憶部14は非常に小さいメモリしか必要としな
い。
【0107】更に、このように識別値にて2値閾値マト
リックスが記憶されているので、前述した「64」や
「236」以外の値も、識別値に対応付けて閾値として
用いることができるので、複数の閾値マトリックスを記
憶しておく必要がなく、更に一層メモリが節約できる。
【0108】[実施の形態2] 次に、ブルーノイズマスク以外の手法による閾値マトリ
ックス作成処理について説明する。閾値マトリックス生
成処理のフローチャートを図8以下に示す。まず、全画
素が濃度値i=0である均一濃度画素マトリックスと、
全画素が濃度値i=255である均一濃度画素マトリッ
クスとを、誤差拡散法により2値化する(S410)。
この均一濃度画素マトリックスは、図10に示すごと
く、i=0,255の2種類の均一濃度画素マトリック
スD0,D255を作業用メモリ19に読み込んで用い
れば良い。そして、その2つの2値化マトリックスを作
業用メモリ19に保存する(S420)。
【0109】ここでは誤差拡散法は、広い意味で用いて
おり、ある画素を2値化した場合に、2値化によって生
じた誤差を、未だ2値化していない周辺の画素の濃度に
分配する方法(狭い意味の誤差拡散法・文献:Robert
W.Floyd and Louis Steinberg,"An Adaptive Algorithm
for Spatial Greyscale",Proceeding of the S.I.D.Vo
l.17/2,1976等)、あるいは2値化する際に周辺に存在
する既に2値化した画素からその2値化の際に生じた誤
差の所定割合を受け取る方法(平均誤差最小法とも言
う。文献:J.F.Jarvis,C.N.Judice,and W.H.Ninke,"A S
urvey of Techniques for the Display of Continuous
Tone Pictures on Bilevel Displays",Computer Graphi
cs and Image Processing.5,13-40(1976)等)等が良く
知られているので、誤差拡散法自体の詳細な説明は省略
する。
【0110】ステップS410にて行われる濃度値i=
0,255の均一濃度画素マトリックスの誤差拡散法に
よる2値化結果は、i=0の場合は全画素「0」(以下
「オフ」と称する。)、i=255の場合は全画素
「1」(以下「オン」と称する。)となるので、特に誤
差拡散法による計算はせずに、予め全画素がオフの2値
化マトリックスと全画素がオンの2値化マトリックスと
を備えておいて、これらのマトリックスを用いても良
い。
【0111】次に濃度値iに「1」を設定し(S43
0)、全画素が濃度値i=1の均一濃度画素マトリック
スに対して、図9に示す2値化処理を実行する(S44
0)。この均一濃度画素マトリックスは、図10に示し
たごとく、i=1〜254の254種類の均一濃度画素
マトリックスD1〜D254の必要なものを作業用メモ
リ19に読み込んで用いれば良い。
【0112】図9の2値化処理について説明する。ま
ず、2値化済みの濃度値、すなわち既に2値化マトリッ
クスが求められている濃度値の内で、濃度値iを越えて
いて最も濃度値iに近い濃度値の均一濃度画素マトリッ
クスを2値化処理した2値化マトリックス(以下、「最
近上方2値化マトリックスH」と称する。)と、濃度値
i未満で最も濃度値iに近い濃度値の均一濃度画素マト
リックスを2値化処理した2値化マトリックス(以下、
「最近下方2値化マトリックスL」と称する。)とを作
業用メモリ19の内容から検索する(S442)。
【0113】本実施の形態2では、i=1から順次、所
望の濃度まで処理して行くので、最近上方2値化マトリ
ックスHは、常にi=255の2値化マトリックスであ
り、最近下方2値化マトリックスLは、i−1の2値化
マトリックスである。ただし、ここでは、2値閾値マト
リックスとして、識別値「1」,「0」が50%づつと
するので、所望の濃度としてはi=128であり、i=
128の処理で止める。
【0114】次に、濃度値iの均一濃度画素マトリック
スについて、誤差拡散法により2値化し、2値化マトリ
ックスFiを作成する(S446)。ただし、ステップ
S446では、次の条件,の下に2値化される。
最近上方2値化マトリックスHと最近下方2値化マトリ
ックスLとの両者にて共にオンが配置されている画素位
置は、必ずオンとする。
【0115】最近上方2値化マトリックスHと最近下
方2値化マトリックスLとの両者にて共にオフが配置さ
れている画素位置は、必ずオフとする。すなわち、通
常、誤差拡散法においては、周辺の画素から分配された
誤差と自己の濃度とを合計した値を、閾値と比較して、
閾値以上であれば「オン」、閾値未満であれば「オフ」
に2値化しているが、前記またはの条件に該当する
画素の場合には、その画素については閾値との比較をせ
ずに、前記またはの条件通りに、「オン」または
「オフ」に設定する。勿論、この閾値と比較しない設定
の結果も2値化誤差に反映され、周辺画素への分配の対
象となる。
【0116】濃度値iの均一濃度画素マトリックスにつ
いて2値化を終了すると、このようにして得られた2値
化マトリックスを作業用メモリ19に保存し(S45
0)、濃度値i=所望濃度(ここではi=128)か否
かを判定する(S460)。最初は濃度値i=1である
ので(S460で「NO」)、次に濃度値iがインクリ
メントされる(S470)。したがって、次に全画素が
濃度値i=2の均一濃度画素マトリックスを前述のごと
く2値化処理し(S440)、その2値化マトリックス
F2を作業用メモリ19に保存する(S450)。
【0117】以後、順次、濃度値iをインクリメントし
つつ(S470)、該当する濃度値iの均一濃度画素マ
トリックスを2値化し(S440)、その2値化マトリ
ックスFiを作業用メモリ19に保存する(S450)
処理を繰り返す。所望濃度値i=128の均一濃度画素
マトリックスの処理(S440,S450)が終了する
と図11に示すごとく、作業用メモリ19内には、濃度
値i=0〜128,255の130個の2値化マトリッ
クスF0〜F128,F255が形成されている。
【0118】次に濃度値i=128であるので(S46
0で「YES」)、i=128に該当する2値化マトリ
ックスF128を、2値閾値マトリックスとして閾値マ
トリックス記憶部14に保存する(S480)。図12
(a)に、本実施の形態2の手法で2値化した濃度値i
=128の場合の2値閾値マトリックスの一部を画像化
して示す。黒ドットが「1」の要素を表し、白ドットが
「0」の要素を表している。図12(b)は同じく濃度
値i=192まで図8の処理を行って、i=192に該
当する2値化マトリックスF192を2値閾値マトリッ
クスとして生成した場合である。図12(a),(b)
では、「0」と「1」とのドットが適度に分散して分布
し、かつ非周期性である。
【0119】このようにして形成された2値閾値マトリ
ックスを用いて、図5の閾値マトリックス誤差拡散処理
を実行したところ、実施の形態1と同様な効果が得られ
た。本実施の形態2では、濃度値iを順次i=1から1
つ増加させつつ目的の濃度まで2値化処理していたの
で、特に前記の条件は用いる必要はない。また、この
ように順次、濃度値iを+1して行く場合には、前記
の条件を用いずに、単に最近下方2値化マトリックス
Lを参照しつつ、最近下方2値化マトリックスLにてオ
ンとなっている画素位置は必ずオンにする条件にて、2
値化しても良い。すなわち、オンが現れたらそれ以降の
濃度値の2値化においては必ずオンにするとの規則で2
値化しても良い。
【0120】また、本実施の形態2において、i=25
4から順次1つ減少させつつ目的とする濃度まで2値化
処理しても良い。この場合には、前記条件はのみでも
良い。また、このように順次、濃度値iを−1して行く
場合には、前記の条件を用いずに、単に最近上方2
値化マトリックスHを参照しつつ、最近上方2値化マト
リックスHにてオフとなっている画素位置は必ずオフに
する条件にて、2値化しても良い。すなわち、オフが現
れたらそれ以降の濃度値の2値化においては必ずオフに
するとの規則で2値化しても良い。
【0121】更に、i=0とi=255の中間であるi
=128の2値閾値マトリックスを作り、次にi=0と
i=128との中間のi=64、i=128とi=25
5との中間のi=191、……と言うように、既に2値
化した濃度を二分する中間付近を前記条件を用いな
がら2値化しても良い。
【0122】[実施の形態3] 前記実施の形態2では、均一濃度画素マトリックスD0
〜D128,D255あるいはその2値化マトリックス
F0〜F128,F255の大きさと同じ大きさの2値
閾値マトリックスを形成していたが、本実施の形態3で
は、図13に示すごとく、均一濃度画素マトリックスD
0〜D128,D255およびその2値化マトリックス
F0〜F128,F255の大きさが、目的とする2値
閾値マトリックスに比較して非常に大きいものを用いる
とともに、2値化マトリックスF128の特定の領域に
おける2値化結果を抽出して2値閾値マトリックスとし
て生成する。
【0123】本実施の形態3における閾値マトリックス
生成処理について説明する。尚、本閾値マトリックス生
成処理は、前記実施の形態2とは、ステップS440,
S450の処理が異なり、他は同じであるので、異なる
部分のみ図14に示す。ステップS430,S470で
濃度値iが設定された後、濃度値iの均一濃度画素マト
リックスにおける注目画素の濃度(濃度値iに等しい)
を読み込む(S510)。最初の注目画素は原点位置
(0,0)の画素である。
【0124】次に、前記条件の基に注目画素の濃度
値iに周辺画素から分配される2値化誤差を加えた値を
誤差拡散法により2値化する(S520)。すなわち、
条件に該当する場合には、閾値によらず必ずオンに2
値化し、条件に該当する場合には、閾値によらず必ず
オフに2値化し、それ以外は閾値により2値化し、2値
化誤差を求める。
【0125】次に、現在の注目画素が特定領域A1に含
まれているか否かが判定される(S530)。特定領域
A1とは、図13に示したごとく、最終的な2値閾値マ
トリックスM1を形成する領域であり、本実施の形態で
は全ての均一濃度画素マトリックスにおいて同一の位置
に存在する領域である。
【0126】この特定領域A1は、誤差拡散処理におけ
る先頭画素ラインL0部分は含まず、最終画素ラインL
x部分を含んでいる。これは、先頭画素ラインL0部分
では、その前のラインが存在しないため2値化誤差の拡
散において、後方のラインと比較して歪みを生じてお
り、ドットの集中や特定のパターンが生じ易いからであ
り、この2値化誤差拡散の歪みの影響は先頭画素ライン
L0から後方に離れるにしたがって少なくなり、最終画
素ラインLx部分では最も影響が少ないからである。
【0127】現在の注目画素が特定領域A1に含まれて
いると判定されると(S530で「YES」)、注目画
素の2値化値が作業用メモリ19に保存される(S54
0)。現在の注目画素が特定領域A1に含まれていない
と判定されると(S530で「NO」)、注目画素の2
値化値は保存されない。
【0128】次に濃度値iにおいて未処理の画素が有る
か否かが判定されて(S550)、未処理画素が有れば
(S550で「YES」)、再度ステップS510に戻
り、未処理画素を注目画素として上述の処理を続ける。
尚、ステップS550での未処理画素の判定は、特定領
域A1内に未処理画素が有るか否かの判定でも良い。
【0129】ステップS550で「NO」と判定された
後、ステップS460の判定処理に移る。したがって、
ステップS460にて「YES」と判定された時には、
作業用メモリ19には、図13に示した場合と同じよう
に濃度値i毎に特定領域A1に該当する2値化マトリッ
クスF0〜F128,F255が形成されている。
【0130】この内、2値閾値マトリックスとして、2
値化マトリックスF128を閾値マトリックス記憶部1
4に保存する(S480)。こうして、閾値マトリック
ス生成処理を終了する。この2値閾値マトリックスを用
いて、図5に示した閾値マトリックス誤差拡散処理を実
行した結果、前述した実施の形態1,2と同様な効果が
得られた。更に、均一濃度画素マトリックスから、先頭
画素ラインL0を含まず、かつ最終画素ラインLxを含
む特定領域A1の2値化マトリックスF128を求めて
いるため、先頭画素ラインL0部分で生じている誤差分
配の歪みの影響が及びにくく、一層、紋様の発生が抑制
された疑似中間調の2値化画像を生成することができ
た。
【0131】[実施の形態4] 実施の形態3の2値化処理の代わりに、図15のフロー
チャートに示すごとくの処理を実行しても良い。本実施
の形態は、誤差拡散として平均誤差最小法を用いてい
る。
【0132】まず、最初の濃度値i=1の均一濃度画素
マトリックスを2値化処理対象とし、まず、2値化済み
の濃度値、すなわち既に2値化マトリックスが求められ
ている濃度値の内で、濃度値i=1に対する最近上方2
値化マトリックスHと、最近下方2値化マトリックスL
とを作業用メモリ19の内容から検索する(S62
1)。最初の濃度値i=1の場合は、既にステップS4
10にて2値化されている濃度値i=255の均一濃度
画素マトリックスが最近上方2値化マトリックスHに該
当し、濃度値i=0の均一濃度画素マトリックスが最近
下方2値化マトリックスLに該当する。
【0133】次に、誤差バッファ16を初期化する(S
622)。次に、濃度値iの均一濃度画素マトリックス
の画素位置(x,y)の濃度値I(x,y)を読み取る
(S623)。最初の画素位置は均一濃度画素マトリッ
クスの左上隅の原点(0,0)であり、各均一濃度画素
マトリックスのサイズがm×n画素であるとすると、以
後ステップS623が処理される毎に、主走査方向(x
方向)へ順次移動し、x=m−1の次には、副走査方向
(y方向)の次の画素ラインに移動してx=0から主走
査方向へ順次移動して行くように画素位置(x,y)が
指定される。
【0134】尚、この画素位置(x,y)の濃度値I
(x,y)は濃度値iの均一濃度画素マトリックスの全
ての画素において濃度値iと同じ値であるので、特に濃
度値iの均一濃度画素マトリックスから読み取らなくて
も、単にI(x,y)にiを設定するのみでも良い。
【0135】次に、式13のごとく、濃度値iが周辺画
素の2値化誤差和Eにて補正されて補正濃度値I′
(x,y)が算出される(S624)。
【0136】
【数15】
【0137】2値化誤差和Eは、式14のごとく、係数
マトリックスαと周辺画素の2値化誤差eとに基づいて
計算される。
【0138】
【数16】
【0139】係数マトリックスαは、本実施の形態4で
は、次のようなマトリックスが用いられている。αpqは
係数マトリックスαの位置(p,q)の係数を表してい
る。またeabは画素位置(a,b)における2値化誤差
を表している。
【0140】
【数17】
【0141】ここで、*は注目画素の位置を表してい
る。ただし、a,bは次式のようにして設定される。
【0142】
【数18】
【0143】ここで、%はmで割り算した場合の余りを
求める演算子、mは均一濃度画素マトリックスの主走査
方向のサイズ、int{}は{}内の値の整数部分のみ
を取り出す演算子である。また、p,qは、注目画素*
を原点とする係数マトリックスα上の座標位置を示し、
pは横軸座標、qは縦軸座標である。ここで、−2≦q
≦0であり、q=0のとき−2≦p≦−1、q=−1,
−2のとき−2≦p≦2である。
【0144】上述したa,bの設定は、図16に模式的
に示すごとく、均一濃度画素マトリックスを主走査方向
xの先端縁部AEと後端縁部BEとを、後端縁部BEの
画素が、主走査方向xの先端縁部AEの画素の内で副走
査方向yの次の画素ラインの画素へ螺旋状に連続した画
素配置状態で誤差分配されることを表している。
【0145】すなわち、図17に示すごとく通常の座標
で表すと、画素位置P0(m−3,k+1)が注目画素
であった場合、係数マトリックスαの分配係数が適用さ
れる画素は、前記式15,16から、q=0のときはa
=m−5,m−4、b=k+1であり、q=−1のとき
はa=m−5,m−4,m−3,m−2,m−1、b=
kであり、q=−2のときはa=m−5,m−4,m−
3,m−2,m−1、b=k−1である。すなわち、図
示の斜線の部分に該当し、P0の画素はこの斜線部分の
周辺画素から2値化誤差の分配を受ける。
【0146】次の注目画素の画素位置P1(m−2,k
+1)では、係数マトリックスαの分配係数が適用され
る画素は、図18に示すごとく、前記式15,16か
ら、q=0のときはa=m−4,m−3、b=k+1で
あり、q=−1のときはa=m−4,m−3,m−2,
m−1、b=kおよびa=0、b=k+1であり、q=
−2のときはa=m−4,m−3,m−2,m−1、b
=k−1およびa=0、b=kである。すなわち、図示
の斜線の部分に該当し、均一濃度画素マトリックスの主
走査方向xの後端縁部BEからはみ出た誤差分配領域の
一部が、先端縁部AE側で副走査方向yへ1画素ライン
ずれた位置に設定される。P1の画素はこの斜線部分の
周辺画素から2値化誤差の分配を受ける。
【0147】以後同様に、次の注目画素の画素位置P2
(m−1,k+1)では、係数マトリックスαの分配係
数が適用される画素は、図19に斜線で示すごとく、前
記式15,16から、q=0のときはa=m−3,m−
2、b=k+1であり、q=−1のときはa=m−3,
m−2,m−1、b=kおよびa=0,1、b=k+1
であり、q=−2のときはa=m−3,m−2,m−
1、b=k−1およびa=0,1、b=kである。P2
の画素はこの斜線部分の周辺画素から2値化誤差の分配
を受ける。
【0148】先端縁部AEに戻った次の注目画素の画素
位置P3(0,k+2)では、係数マトリックスαの分
配係数が適用される画素は、図20に斜線で示すごと
く、前記式15,16から、q=0のときはa=m−
2,m−1、b=k+1であり、q=−1のときはa=
m−2,m−1、b=kおよびa=0,1,2、b=k
+1であり、q=−2のときはa=m−2,m−1、b
=k−1およびa=0,1,2、b=kである。P3の
画素はこの斜線部分の周辺画素から2値化誤差の分配を
受ける。
【0149】次の注目画素の画素位置P4(1,k+
2)では、係数マトリックスαの分配係数が適用される
画素は、図21に斜線で示すごとく、前記式15,16
から、q=0のときはa=m−1、b=k+1およびa
=0、b=k+2であり、q=−1のときはa=m−
1、b=kおよびa=0,1,2,3、b=k+1であ
り、q=−2のときはa=m−1、b=k−1およびa
=0,1,2,3、b=kである。P4の画素はこの斜
線部分の周辺画素から2値化誤差の分配を受ける。
【0150】次の注目画素の画素位置P5(2,k+
2)では、係数マトリックスαの分配係数が適用される
画素は、図22に斜線で示すごとく、前記式15,16
から、q=0のときはa=0,1、b=k+2であり、
q=−1のときはa=0,1,2,3,4、b=k+1
であり、q=−2のときはa=0,1,2,3,4、b
=kである。P5の画素はこの斜線部分の周辺画素から
2値化誤差の分配を受ける。
【0151】このようにして、均一濃度画素マトリック
スの主走査方向xの後端縁部BEが誤差拡散処理におい
て先端縁部AE側へ螺旋状に連続する誤差分配がなされ
る。このことは、誤差拡散処理による2値化が、均一濃
度画素マトリックスの主走査方向xの後端縁部BEと先
端縁部AEとが螺旋状に連続してなされていることを意
味する。
【0152】このようにして2値化誤差和Eの補正によ
り求められた補正濃度値I′(x,y)は、次の条件
のいずれかに合致しないものが、閾値T(例えばT=
128)と比較されて、I′(x,y)>Tならば、注
目画素をオン(「1」)に2値化し、I′(x,y)≦
Tならば、注目画素をオフ(「0」)に2値化され、条
件のいずれかに合致するものは、その合致した条件
にしたがって2値化される(S625)。
【0153】条件: 最近上方2値化マトリックスH
と最近下方2値化マトリックスLとの両者にて共に
「1」オンが配置されている画素位置。この位置に対応
する2値化マトリックスの要素は、必ず「1」オンとす
る。 条件: 最近上方2値化マトリックスHと最近下方2
値化マトリックスLとの両者にて共に「0」オフが配置
されている画素位置。この位置に対応する2値化マトリ
ックスの要素は、必ず「0」オフとする。
【0154】すなわち、通常、誤差拡散法においては、
周辺の画素から分配された誤差Eと注目画素の濃度値I
(x,y)とを合計した値を、閾値と比較して、閾値以
上であれば「1」オン、閾値未満であれば「0」オフに
2値化しているが、前記またはの条件に該当する画
素の場合には、その画素については閾値との比較をせず
に、前記またはの条件通りに、「1」オンまたは
「0」オフに設定する。尚、条件は、「最近上方2
値化マトリックスHの画素値=最近下方2値化マトリッ
クスLの画素値であるならば、最近上方2値化マトリッ
クスHまたは最近下方2値化マトリックスLのいずれか
の画素値に設定する」と表現することもできる。
【0155】次いで注目画素をオンに2値化した場合、
次式の計算により、注目画素の2値化誤差e(x,y)
が求められ、この2値化誤差e(x,y)が誤差バッフ
ァに記憶される(S626)。
【0156】
【数19】
【0157】また、注目画素をオフに2値化した場合に
は、次式のごとく、注目画素の2値化誤差eにI′
(x,y)が設定される。
【0158】
【数20】
【0159】前記条件により、図23(a)に示す
ごとく、各要素位置において、濃度値の低い方から見る
と、一旦、オンとなると、以後の濃度値iおいては必ず
オンとなる。次に、一つの均一濃度画素マトリックスに
ついて全ての画素の2値化処理が終了したか否かが判定
され(S627)、終了していなければ(S627で
「NO」)、次の画素位置を設定して(S628)、ス
テップS623の処理に戻る。
【0160】全ての画素の2値化が終了すれば(S62
7で「YES」)、ステップ450の処理に移る。この
ようにして形成された2値閾値マトリックスを用いて誤
差拡散法により、中間調のカラー画像を2値化処理した
ところ、実施の形態3の効果とともに、次のような効果
も存在した。
【0161】すなわち、誤差拡散法による2値化処理に
て閾値マトリックスを作成する場合に、誤差拡散法の2
値化処理において、均一濃度画素マトリックスの主走査
方向xの先端縁部AEの画素と後端縁部BEの画素とを
連続した画素配置状態で2値化処理することにより主走
査方向xにおける縁部AE,BE同士の連続性を維持さ
せている。その結果、得られた2値閾値マトリックスに
て、画像データを2値化処理すると、領域の境界での色
むらや明暗むらによる疑似的な境界線の発生も十分に抑
制された。
【0162】特に、本実施の形態では、均一濃度画素マ
トリックスの主走査方向xの後端縁部BEの画素が、主
走査方向xの先端縁部AEの画素の内で副走査方向yの
次の画素ラインの画素へ連続した画素配置状態で2値化
処理すると、すなわち、主走査方向xの画素の配列が螺
旋状にされた状態で2値化処理すると、後端縁部BEの
画素から先端縁部AEの画素へと2値化処理が移行する
場合にも、同一の係数マトリックスαを用いて同じ2値
化誤差分配処理を行えば良いので、簡易な処理になると
共に、2値化処理の連続性が、より良好となり一層疑似
的な境界線の発生を抑制できる。
【0163】更に、本実施の形態では、図15における
2値化において、前記の条件を用いて、既に2値化
されている前後の均一濃度画素マトリックスの2値化状
態を考慮した2値化が行われている。もし、前記の
条件を用いない通常の2値化を行うと、図23(b)に
示すごとく、オンとなった後も同じ要素位置でオフが出
現する。このため、通常の2値化のみでは各要素位置に
おける「1(オン)」,「0(オフ)」の分布が偏る傾
向が有るが、本実施の形態では、適度に分散して好適な
分布となる。したがって、特に、図23(b)に示した
ごとくの各均一濃度画素マトリックス独立に2値化して
いる場合に得られる2値閾値マトリックスに比較して、
図23(a)のごとくに得られた2値閾値マトリックス
は、中間調画像データを閾値マトリックス誤差拡散法に
て2値化する際に用いれば、一層、解像度が向上し、紋
様の抑制が行われる。
【0164】[実施の形態5] 本実施の形態は、前述した各実施の形態にて形成された
2値閾値マトリックスを、更に、マトリックスの主走査
方向xに行くにつれて、各閾値要素列を副走査方向yに
1要素づつずらすことにより、図24に示すごとく、副
走査方向yの先端縁部UTおよび後端縁部DTを主走査
方向xに対して不一致とさせた2値閾値マトリックスM
2として形成している。
【0165】本実施の形態の場合は、2値閾値マトリッ
クスM2の副走査方向yの先端縁部UTおよび後端縁部
DTを斜めにして、主走査方向xに対して所定の角度θ
を有する直線状としているので、2値閾値マトリックス
M2全体は、平行四辺形に形成されている。
【0166】このように形成された2値閾値マトリック
スM2を用いて閾値マトリックス誤差拡散法でなされる
2値化は、図25に示すごとくに、領域EM毎に2値閾
値マトリックスM2が切り替わって2値化処理すること
になる。しかし、斜めの境界部分BTで色むらや明暗む
らが生じたとしても、そのことにより生じる疑似的な境
界線は斜めの状態、すなわち主走査方向xの直線以外の
状態となる。このような方法で2値化処理して見たとこ
ろ、疑似的な境界線は一層目立たなくなった。すなわ
ち、疑似的な境界線の発生を抑制できる。主走査方向x
の境界部分ATについては、前記実施の形態と同様に、
色むらや明暗むらを生じること無く、疑似的な境界線の
発生は無い。
【0167】尚、本実施の形態では、副走査方向yの先
端縁部UTおよび後端縁部DTは、主走査方向xに対し
て所定の角度θを有する直線状としているが、波を打つ
ように凸凹に形成しても良い。またV字形あるいは逆V
字形にしても良い。すなわち、2値閾値マトリックスの
副走査方向yの先端縁部および後端縁部を、主走査方向
xに直線状に配列されている状態から、斜めや凸凹に配
列し直せば、疑似的な境界線は目立たなくなる。すなわ
ち、疑似的な境界線の発生を抑制できる。
【0168】また、図24の閾値マトリックスM2を更
に、図26に示すごとく、図24にて、元の位置より副
走査方向yにずれてはみ出した分Zを、同じ閾値要素列
の上部に移動させることにより、平行四辺形から元の形
と同じ矩形に戻した閾値マトリックスM3としても良
い。このようにすると、閾値マトリックスM3が矩形で
あるので、通常、矩形である画像データに適用し易く、
中間調画像の2値化処理が容易となる。
【0169】[実施の形態6] 前記実施の形態2〜4において、順次、全画素が濃度値
i=1の画像から濃度値を上げつつ2値化して、最終的
にi=128にて2値化したマトリックスを2値閾値マ
トリックスとして閾値マトリックス誤差拡散法に利用し
たが、これを所望の濃度値iまで行って、各濃度値にお
ける複数の2値化マトリックスを求め、このマトリック
スを利用して、複数種類の閾値からなる閾値マトリック
スを求め、閾値マトリックス誤差拡散法に使用しても良
い。
【0170】すなわち、たとえば64種類の閾値からな
る閾値マトリックスを生成したい場合には、i=63の
処理が終了した後に(図8のS460にて「YE
S」)、i=0からi=63までの2値化マトリックス
について、同一要素のオン「1」の数をカウントし、こ
のカウント値を要素とするマトリックスを形成する。
【0171】たとえば、図27に示すごとく、左上隅を
原点(0,0)として横方向をx軸、縦方向をy軸とす
ると、まず、2値化マトリックスF0〜F63の(0,
0)についてオン「1」の数をカウントする。そのカウ
ント結果を、図28に示すごとく作業用メモリ19内に
用意された集積マトリックスM1の同一要素位置に格納
する。このカウント処理を各要素位置について行い、集
積マトリックスM1をすべて埋める。このカウント処理
は、2値化マトリックスの各画素において、オンが
「1」で、オフが「0」で表されていれば、各画素につ
いて値を合計すれば、カウント値が得られる。
【0172】次に、集積マトリックスM1のカウント値
の低い要素位置から、順に閾値マトリックス用の64種
類の閾値をそれぞれ設定することにより、多値からなる
閾値マトリックスを生成し、メモリに保存し、閾値マト
リックス誤差拡散法に使用する。
【0173】この閾値マトリックスは、カウント値を識
別値として、カウント値のままで保存して、閾値化は実
際に中間調画像を2値化する際に行っても良い。このよ
うにすると、小さい値で保存できメモリが節約できる。 [実施の形態7] 前記実施の形態6にては、濃度値i=0から閾値の種類
数nに該当する濃度値i=n−1までの濃度値を2値化
したマトリックスについて集積して3値以上の閾値マト
リックスを生成したが、次のようにしても良い。
【0174】すなわち、濃度値i=0〜最高濃度値i=
255までについてすべての濃度において2値化し、こ
の2値化マトリックスF0〜F255の各要素位置につ
いて実施の形態6と同様にオン「1」の数をカウントす
る。そして、このカウント値の小さい方から大きい方
へ、すなわち、「0」から〜「255」へ、要素位置と
対応づけて並べたテーブルを作成する。なお、カウント
値の大きい方から小さい方に並べても良い。
【0175】このテーブルは、2値化マトリックスが1
28×128の大きさであれば、16384個の数字と
要素位置とのテーブルとなる。そして、閾値マトリック
ス誤差拡散法で、2種類の閾値からなる閾値マトリック
スを使用したいのであれば、テーブルのカウント値の小
さい方の半分(1〜8192番目)に該当する要素位置
に一方の閾値を与え、大きい方の半分(8193〜16
384番目)に該当する要素位置に他方の閾値を与える
ことにより、2値閾値マトリックスが容易に生成でき
る。
【0176】また、16種類の閾値からなる閾値マトリ
ックスを使用したいのであれば、テーブルを16のブロ
ックに分け、そのそれぞれに、16種類の閾値を振り分
けて、該当する要素位置に閾値を配置すれば、16種類
の閾値からなる多値の閾値マトリックスが容易に生成で
きる。
【0177】また、このブロックに分ける際、それぞれ
のブロックに含まれる要素位置の数は同一である必要は
ない。利用する出力装置(カラープリンタ24)等の入
出力特性に合わせて、ブロックに含まれる要素位置の数
を変えれば、より優れた効果を生じさせることができ
る。
【0178】このようにして、必要な閾値の種類数で前
記テーブルを分割し、それぞれの分割ブロックに閾値を
当てはめて、各要素位置にブロックに対応する閾値を配
置すれば、任意の種類の閾値からなる閾値マトリックス
が容易に生成できる。しかもこのように生成された閾値
マトリックスは前述した各実施の形態の閾値マトリック
スと同様な閾値の配置特性を有しており、同様な優れた
効果を生じさせることができる。
【0179】[実施の形態8] 前述の実施の形態1では、「1」,「0」の2値閾値マ
トリックスを作成したが、実施の形態1にて作成した図
4に例示する2値閾値マトリックスをベースにして、図
29,30のフローチャートのようにして多値閾値マト
リックスを作成することができる。
【0180】まず、図29の処理にて、2値閾値マトリ
ックスの全画素について、前記式5に基づいて期待濃度
D(x,y)を計算する(S702)。この内、「mino
rity value」となる要素の内で、期待濃度D(x,y)
が最大の要素は、「minority value」が密に集まる部分
の「minority value」であるとして、「majority valu
e」に変更される(S704)。
【0181】次にステップS704の変更前における
「minority value」の数を閾値として、多値閾値マトリ
ックス内の該当要素位置に設定する(S706)。次
に、終了か否かが判定され(S708)、「minority v
alue」が2値閾値マトリックス中に残っていれば継続す
るので(S708で「NO」)、再度、ステップS70
2〜S706の処理が繰り返される。こうして、1つづ
つ低くした閾値の要素位置が設定される。
【0182】更に、高い方の閾値については、図30の
ように設定される。まず、2値閾値マトリックスの全画
素について、前記式5に基づいて期待濃度D(x,y)
を計算する(S802)。この内、「majority value」
となる要素の内で、前記期待濃度D(x,y)が最小の
要素は、「minority value」が疎に散っている部分の
「majority value」であるとして、「minority value」
に変更される(S804)。
【0183】次にステップS804の変更後における
「minority value」の数を閾値として、多値閾値マトリ
ックス内の該当要素位置に設定する(S806)。次
に、終了か否かが判定され(S808)、「majority v
alue」が2値閾値マトリックス中に残っていれば継続す
るので(S808で「NO」)、再度、ステップS80
2〜S806の処理が繰り返される。こうして、1つづ
つ高くした閾値の要素位置が設定される。
【0184】したがって、図29,30の処理を行うこ
とにより、全要素分の種類数の閾値からなる多値閾値マ
トリックスが完成する。更に、閾値を識別値として捉え
て、小さい方から大きい方へ、または逆に大きい方から
小さい方へ、要素位置と対応づけて並べたテーブルを作
成すれば、実施の形態7と同様に、必要な閾値の種類数
で前記テーブルを分割し、それぞれの分割ブロックに閾
値を当てはめて、各要素位置にブロックに対応する閾値
を配置すれば、任意の種類の閾値からなる閾値マトリッ
クスが容易に生成できる。しかもこのように生成された
閾値マトリックスは前述した実施の形態1の閾値マトリ
ックスと同様にブルーノイズマスクの性質を有してお
り、同様な優れた効果を生じさせることができる。
【0185】[その他] 前記実施の形態2において、所望濃度i=128をステ
ップS430で設定し、ステップS440で2値化処理
した結果を2値化マトリックスF128として閾値マト
リックス記憶部14に保存しても良い。
【0186】前記実施の形態4における2値化は、2値
化時に周辺画素から2値化誤差の分配を受けるタイプの
誤差拡散法、いわゆる平均誤差最小法であったが、前記
実施の形態1〜3のごとく、注目画素を2値化した場合
に2値化の誤差を未だ2値化していない周辺の画素の濃
度に分配する方法による誤差拡散法であっても良い。逆
に、実施の形態1〜3は実施の形態4のごとく平均誤差
最小法であっても良い。
【0187】また、閾値マトリックスは、その各閾値と
2値化処理対象の画素と1:1に対応させていたが、一
つの閾値を近傍同士の複数の画素の閾値として対応させ
ても良い。このような閾値マトリックスをROMに格納
して、レーザプリンタ、インクジェットプリンタあるい
は複写機等の画像形成装置や、イメージスキャナ等の画
像読み取り装置に使用することも可能である。
【図面の簡単な説明】
【図1】 実施の形態1としての閾値マトリックス誤差
拡散法による2値化方法が適用された中間調画像データ
2値化装置の概略構成を表すブロック図である。
【図2】 実施の形態1における閾値マトリックス生成
処理のフローチャートである。
【図3】 実施の形態1における期待濃度算出上参照さ
れる近傍範囲の説明図である。
【図4】 実施の形態1における128×128要素の
2値閾値マトリックスのパターン構成説明図である。
【図5】 実施の形態1における閾値マトリックス誤差
拡散処理のフローチャートである。
【図6】 実施の形態1における閾値生成処理のフロー
チャートである。
【図7】 実施の形態1におけるドット偏り低減を要求
するための画面表示説明図である。
【図8】 実施の形態2における閾値マトリックス生成
処理のフローチャートである。
【図9】 実施の形態2における2値化処理のフローチ
ャートである。
【図10】 実施の形態2における均一濃度画素マトリ
ックスの構成説明図である。
【図11】 実施の形態2における2値化マトリックス
の構成説明図である。
【図12】 実施の形態2における2値化マトリックス
のパターン構成説明図である。
【図13】 実施の形態3における均一濃度画素マトリ
ックスと特定領域との関係を示す説明図である。
【図14】 実施の形態3における2値化マトリックス
作成処理の一部を示すフローチャートである。
【図15】 実施の形態4における2値化マトリックス
作成処理の一部を示すフローチャートである。
【図16】 実施の形態4の2値化処理の連続性説明図
である。
【図17】 実施の形態4の誤差分配説明図である。
【図18】 実施の形態4の誤差分配説明図である。
【図19】 実施の形態4の誤差分配説明図である。
【図20】 実施の形態4の誤差分配説明図である。
【図21】 実施の形態4の誤差分配説明図である。
【図22】 実施の形態4の誤差分配説明図である。
【図23】 実施の形態4の各要素位置のオン・オフ設
定状態の説明図である。
【図24】 実施の形態5の閾値マトリックスの説明図
である。
【図25】 実施の形態5の閾値マトリックスの適用説
明図である。
【図26】 実施の形態5の閾値マトリックスの変形例
説明図である。
【図27】 実施の形態6における2値化マトリックス
の構成説明図である。
【図28】 実施の形態6における集積マトリックスの
構成説明図である。
【図29】 実施の形態8における多値閾値マトリック
ス設定処理1のフローチャートである。
【図30】 実施の形態8における多値閾値マトリック
ス設定処理2のフローチャートである。
【図31】 小さいサイズの誤差分配マトリックスの一
例を示す説明図である。
【図32】 従来技術の誤差拡散処理のフローチャート
である。
【図33】 従来技術の閾値マトリックスの構成説明図
である。
【図34】 誤差分配マトリックスの構成説明図であ
る。
【図35】 従来技術の2値閾値マトリックスのパター
ン説明図である。
【図36】 中間調画像の説明図である。
【図37】 中間調画像変換後の状態説明図である。
【図38】 中間調画像変換後の状態説明図である。
【符号の説明】
2…中間調画像データ2値化装置 12…CPU 13…プログラム記憶部 14…閾値マトリックス記
憶部 15…誤差分配マトリックス記憶部 16…誤差バッ
ファ 17…入力画像データ記憶部 18…出力画像データ
記憶部 19…作業用メモリ 20…バス 21…キーボー
ド 22…ディスプレイ 23…外部記憶装置 24…
カラープリンタ
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平3−149967(JP,A) 特開 平7−57081(JP,A) 特開 平4−107068(JP,A) 特開 平4−107067(JP,A) 特開 平4−299668(JP,A) 特開 平4−54768(JP,A) 特開 平6−70170(JP,A) 特開 平7−73310(JP,A) 特開 平8−279920(JP,A) (58)調査した分野(Int.Cl.7,DB名) H04N 1/40 - 1/409 H04N 1/46 H04N 1/60

Claims (18)

    (57)【特許請求の範囲】
  1. 【請求項1】入力画像の画素濃度と閾値との比較により
    中間調画像を2値化するときに生じた誤差を周辺の画素
    の2値化に反映させるに際して、前記閾値として、n
    (nは2〜閾値マトリックス要素数までの範囲の整数)
    種類の閾値の分布により構成されている閾値マトリック
    スから、前記画素位置に応じて抽出された閾値を用いる
    閾値マトリックス誤差拡散法による2値化方法におい
    て、 入力画素濃度が取りうる画素濃度が最も低い画素濃度S
    (S≧0)から最も高い画素濃度L(L>S)の間で表
    される場合に、前記閾値マトリックスを構成している2
    種類の閾値H1,H2(H2>H1)が個数の上で他の
    前記閾値マトリックスの閾値よりも優勢となるよう構成
    し、該2種類の閾値H1,H2の1つづつの合計値T
    が、T>Lであることを特徴とする閾値マトリックス誤
    差拡散法による2値化方法。
  2. 【請求項2】前記閾値H1が、次式で表されることを特
    徴とする請求項1記載の閾値マトリックス誤差拡散法に
    よる2値化方法。 【数1】
  3. 【請求項3】前記閾値マトリックスを構成している前記
    2種類の閾値H1,H2の内のいずれか一方または両方
    を調整可能として、所望の値に設定した後に、前記閾値
    マトリックス誤差拡散法を実行することを特徴とする請
    求項1又は2記載の閾値マトリックス誤差拡散法による
    2値化方法。
  4. 【請求項4】n=2であることを特徴とする請求項1〜
    3のいずれか記載の閾値マトリックス誤差拡散法による
    2値化方法。
  5. 【請求項5】前記閾値マトリックスの閾値の配置が、ブ
    ルーノイズマスクの手法により形成されていることを特
    徴とする請求項1〜4のいずれか記載の閾値マトリック
    ス誤差拡散法による2値化方法。
  6. 【請求項6】n=2であって、2種類の閾値をランダム
    に配置したマトリックスの各閾値について、その周辺の
    同一閾値の期待濃度を求め、各閾値について期待濃度の
    最大となる位置の閾値同士を入れ替える処理を所定の閾
    値分布状態になるまで繰り返すことにより得られた閾値
    マトリックスが用いられていることを特徴とする請求項
    5記載の閾値マトリックス誤差拡散法による2値化方
    法。
  7. 【請求項7】前記閾値マトリックスとして、 請求項6にて得られた閾値マトリックスに対して、 前記2種類の閾値のうち個数の少ない方の閾値につい
    て、該個数の少ない方の閾値が密に集まる部分の該個数
    の少ない方の閾値を個数の多い方の閾値に置き換え、該
    要素位置に、置き換える前の前記個数の少ない方の閾値
    の存在数を閾値として与えることを繰り返す処理、 および、 前記個数の少ない方の閾値が疎に散る部分の前記個数の
    多い方の閾値の要素位置を前記個数の少ない方の閾値に
    置き換え、該要素位置に、置き換えた後の前記個数の少
    ない方の閾値の存在数を閾値として与えることを繰り返
    す処理、 を行って得られた複数種類の閾値からなる閾値マトリッ
    クスを用いて得ることを特徴とする閾値マトリックス誤
    差拡散法による2値化方法。
  8. 【請求項8】前記閾値マトリックスの閾値の配置が、均
    一濃度画素マトリックスを、画素濃度と閾値との比較に
    より2値化する際に生じた誤差を周辺の画素の2値化に
    反映させて2値化する誤差拡散法を実行し、得られた2
    値化マトリックスの2値にそれぞれ前記2種類の閾値を
    対応させてなる配置方法にて行われることを特徴とする
    請求項4記載の閾値マトリックス誤差拡散法による2値
    化方法。
  9. 【請求項9】異なる濃度の均一濃度画素マトリックスに
    て既に2値化された2値化マトリックスの2値化状態を
    参照しつつ、均一濃度画素マトリックスの各画素を、画
    素濃度と閾値との比較により2値化する際に生じた誤差
    を周辺の画素の2値化に反映させて2値化する誤差拡散
    法を繰り返し、 この繰り返しにより得られた、所望濃度の均一濃度画素
    マトリックスによる2値化マトリックスの2値に、それ
    ぞれ2種類の閾値を対応させる配置方法にて、前記閾値
    マトリックスの閾値の配置が行われることを特徴とする
    請求項4記載の閾値マトリックス誤差拡散法による2値
    化方法。
  10. 【請求項10】異なる濃度の均一濃度画素マトリックス
    にて既に2値化された2値化マトリックスの2値化状態
    を参照しつつ、均一濃度画素マトリックスの各画素を、
    画素濃度と閾値との比較により2値化する際に生じた誤
    差を周辺の画素の2値化に反映させて2値化する誤差拡
    散法を繰り返し、 この繰り返しにより得られた2値化マトリックスのすべ
    てについて同一位置の要素毎に2値を集積し、この集積
    結果に基づいて、前記閾値マトリックスにおける各要素
    の閾値を設定することを特徴とする請求項1〜4のいず
    れか記載の閾値マトリックス誤差拡散法による2値化方
    法。
  11. 【請求項11】前記2値化状態の参照が、2値化処理し
    ようとする均一濃度画素マトリックスに最も近い濃度の
    均一濃度画素マトリックスの2値化状態を参照すること
    を特徴とする請求項9または10記載の閾値マトリック
    ス誤差拡散法による2値化方法。
  12. 【請求項12】前記2値化状態の参照が、2値化処理し
    ようとする均一濃度画素マトリックスに最も近い濃度の
    均一濃度画素マトリックスによる2値化マトリックスの
    要素の内、「1」である要素と同じ位置は必ず「1」に
    2値化することにより行われることを特徴とする請求項
    9〜11のいずれか記載の閾値マトリックス誤差拡散法
    による2値化方法。
  13. 【請求項13】前記2値化状態の参照が、2値化処理し
    ようとする均一濃度画素マトリックスに、濃度が低い側
    および濃度が高い側にそれぞれ最も近い濃度の均一濃度
    画素マトリックスの2値化状態を参照することを特徴と
    する請求項9または10記載の閾値マトリックス誤差拡
    散法による2値化方法。
  14. 【請求項14】濃度が高い側の2値化マトリックスにお
    いて「1」となり、かつ濃度が低い側の2値化マトリッ
    クスにおいても「1」となっている要素位置と同じ位置
    は必ず「1」とし、濃度が高い側の2値化マトリックス
    において「0」となり、かつ濃度が低い側の2値化マト
    リックスにおいても「0」となっている要素位置と同じ
    位置は必ず「0」として誤差拡散処理することにより2
    値化することを特徴とする請求項13記載の閾値マトリ
    ックス誤差拡散法による2値化方法。
  15. 【請求項15】最終的に得られた2値化マトリックスの
    一部分を構成するマトリックスの2値にそれぞれ2種類
    の閾値を対応させてなる配置方法にて行われることを特
    徴とする請求項8〜14のいずれか記載の閾値マトリッ
    クス誤差拡散法による2値化方法。
  16. 【請求項16】前記閾値マトリックスの記憶に際して
    は、閾値の代りに、該閾値の種類を識別するための、該
    閾値よりも記憶容量が小さい識別値にて記憶され、前記
    閾値マトリックスの使用に際しては、該当する要素位置
    から読み出された前記識別値から対応する閾値を形成し
    て使用することを特徴とする請求項4,6,8,9,1
    5のいずれか記載の閾値マトリックス誤差拡散法による
    2値化方法。
  17. 【請求項17】前記閾値マトリックスの記憶に際して
    は、閾値の代りに、該閾値の種類を識別するための識別
    値にて記憶され、前記識別値がその要素位置とともに、
    値順に配置されたテーブルとして記憶され、前記閾値マ
    トリックスの使用に際しては、必要な閾値の種類数に応
    じて、前記テーブルを分割して、各分割された識別値に
    対して、該当する要素位置にそれぞれ閾値を対応させて
    使用することを特徴とする請求項4,6,8,9,15
    のいずれか記載の閾値マトリックス誤差拡散法による2
    値化方法。
  18. 【請求項18】n(nは2〜閾値マトリックス要素数ま
    での範囲の整数)種類の閾値の分布により構成されてい
    る閾値マトリックスを生成する手段と、 前記閾値マトリックスから入力画像の画素位置に応じて
    閾値を抽出して、該入力画像の画素濃度と前記抽出した
    閾値との比較により中間調画像を2値化すると共に、該
    2値化のときに生じた誤差を周辺の画素の2値化に反映
    させる手段と、を備えた、閾値マトリックス誤差拡散法
    による2値化方法を実行するためのコンピュータシステ
    ムにおいて、 前記閾値マトリックスを生成する手段は、入力画素濃度
    が取りうる画素濃度が最も低い画素濃度S(S≧0)か
    ら最も高い画素濃度L(L>S)の間で表される場合
    に、前記閾値マトリックスを構成している2種類の閾値
    H1,H2(H2>H1)が個数の上で他の前記閾値マ
    トリックスの閾値よりも優勢となるよう構成し、該2種
    類の閾値H1,H2の1つづつの合計値Tが、T>Lと
    なるよう前記閾値マトリックスを構成することを特徴と
    するコンピュータシステム。
JP30834196A 1996-11-19 1996-11-19 閾値マトリックス誤差拡散法による2値化方法およびコンピュータシステム Expired - Fee Related JP3431778B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP30834196A JP3431778B2 (ja) 1996-11-19 1996-11-19 閾値マトリックス誤差拡散法による2値化方法およびコンピュータシステム
US08/971,189 US6108450A (en) 1996-11-19 1997-11-17 Threshold matrix-employed error diffusion image conversion method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP30834196A JP3431778B2 (ja) 1996-11-19 1996-11-19 閾値マトリックス誤差拡散法による2値化方法およびコンピュータシステム

Publications (2)

Publication Number Publication Date
JPH10150563A JPH10150563A (ja) 1998-06-02
JP3431778B2 true JP3431778B2 (ja) 2003-07-28

Family

ID=17979902

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30834196A Expired - Fee Related JP3431778B2 (ja) 1996-11-19 1996-11-19 閾値マトリックス誤差拡散法による2値化方法およびコンピュータシステム

Country Status (1)

Country Link
JP (1) JP3431778B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7881553B2 (en) 2005-12-06 2011-02-01 Ricoh Company, Ltd. Image processing apparatus, image processing method, and computer program product

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002049341A1 (fr) * 2000-12-11 2002-06-20 Fujitsu Limited Procede et dispositif de traitement d'images ; support enregistre
US9704074B2 (en) * 2015-01-21 2017-07-11 Canon Kabushiki Kaisha Image processing apparatus and method for quantizing first and second multi-valued data
JP6587552B2 (ja) 2015-02-20 2019-10-09 キヤノン株式会社 画像処理装置および画像処理方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7881553B2 (en) 2005-12-06 2011-02-01 Ricoh Company, Ltd. Image processing apparatus, image processing method, and computer program product

Also Published As

Publication number Publication date
JPH10150563A (ja) 1998-06-02

Similar Documents

Publication Publication Date Title
US20060152767A1 (en) Threshold matrix generation method, threshold matrix generation apparatus, and recording medium
US20020071140A1 (en) Threshold matrix, and method and apparatus of reproducing gray levels using threshold matrix
EP1133162A2 (en) Method and apparatus for gradation reproduction of continuous tone image
JPH1070659A (ja) 誤差拡散方法及びシステム
JP3431778B2 (ja) 閾値マトリックス誤差拡散法による2値化方法およびコンピュータシステム
US6195468B1 (en) Error-distributing image conversion method
JP3431780B2 (ja) 閾値マトリックス誤差拡散法による2値化方法およびコンピュータシステム
US6185006B1 (en) Error-distributing image conversion method
JP3431779B2 (ja) 閾値マトリックス誤差拡散法による2値化方法およびコンピュータシステム
JPH08307680A (ja) 画像処理装置
JPH10191052A (ja) 中間調画像の2値化方法および記憶媒体
JP3399341B2 (ja) 画像処理方法および画像処理装置
JP2018160883A (ja) 画像処理装置、画像形成装置、画像処理方法及び画像処理プログラム
JP2000270210A (ja) 画像処理装置
JP2745527B2 (ja) 中間調画像再現方法
KR100547102B1 (ko) 흑화소 이격에 기반한 적응형 오차 확산 방법
JP3402118B2 (ja) 画像信号処理方法及び画像信号処理装置
JP3740732B2 (ja) ディザマトリックス作成方法
Umemura et al. Multi-level image halftoning technique with genetic algorithms
JP3300582B2 (ja) 画像処理装置
JPH08321949A (ja) 中間調画像の2値化処理方法
JPH1056568A (ja) 画像処理装置
KR100303647B1 (ko) 블루노이즈패턴에서랜덤옵셋생성방법
JP2010171813A (ja) 画像処理装置及びその制御方法
JPH10136205A (ja) 画像処理装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080523

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090523

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090523

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100523

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110523

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120523

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120523

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130523

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130523

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140523

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees