画像の 2 値化における誤差拡散法の改良
2011SE309 吉原比奈子
指導教員：大石泰章

はじめに1

写真などの多階調の画像をプリンタで出力するとき，画像を量子化して少ない階調にすることが必要となる．画像

2 値化は，画像の濃淡レベルを多値から 2 値へと変換する処理であり，メモリの低減や，処理の高速化を図るために用いられている．しかし単純に閾値を決めて 2 値化するだけでは画像の細部が潰れ，画質が悪くなる．そこで従来，画像の劣化を防ぎつつ 2 値化する様々な方法が提案されてきた．その代表的なものが誤差拡散法である [2]．
図1

本研究では，従来の誤差拡散法を実装し，元画像と処理画像とを比較してその効果と限界を示す．さらに従来の誤差拡散法の問題点を克服する手法の提案を行い，また左 : 濃淡画像

右 : 単純 2 値化画像

左 : 256×256 の濃淡画像を, 各画素 0〜255 に規格化した画像
右 : 元画像を閾値 128 で単純 2 値化した画像

Peak-Signal to Noise Ratio（以下 PSNR 値）を使って手法の優劣を客観的に評価する．

において発生する誤差 e(i, j) = u(i, j) − v(i, j) を隣接す
る 4 ピクセルに

2

誤差拡散法

2.1

画像の取り扱い方と単純 2 値化

u(i, j + 1) := u(i, j + 1) + p1 e(i, j)，

縦 N 個，横 M 個の長方形に並んだピクセルが表す画

u(i + 1, j − 1) := u(i + 1, j − 1) + p2 e(i, j)，

像は u(i, j)(i = 1, 2, · · · , N ; j = 1, 2, · · · , M ) と表せる．
ただし，u(i, j) は画像の上端から i 個目，左端から j 個目

u(i + 1, j) := u(i + 1, j) + p3 e(i, j)，のピクセルの輝度を表し，その値は 0 から 255 までの整数である．u(i, j) = 0 が黒を表し，u(i, j) = 255 が白を表

u(i + 1, j + 1) := u(i + 1, j + 1) + p4 e(i, j)，す．図 1 の左の画像の u(i, j) に対して{v(i, j) =0255(if u(i, j) < 128)
(if u(i, j) ≧ 128)

(p1 ，p2 ，p3 ，p4 ) = ((1)の処理をして得られる画像 v(i, j) を 128 を閾値とする
単純 2 値化画像といい，具体的には図 1 の右図のようになる．このような単純 2 値化を行った場合， 輝度値 0 と 127が同じ 0 に変換される．このように大きな誤差 127 が生じることが，原画像と比べて画像が非常に劣化する原因とな

7 3 5 1， ， ， )16 16 16 16と拡散することにより，誤差を軽減することができる．以上をすべての (i, j) に対して繰り返すことにより，得られた画像が図 3 である．また Floyd-Steinberg 法において拡散係数である pn (n = 1, 2, 3, 4) は注目ピクセルからの距離に対応した重みに基づき配分されている．

る．この誤差を周囲のピクセルに拡散させることを考え，従来ディザ法, 誤差拡散法が提案されている．本研究では，誤差拡散法について考える．
誤差拡散法は，各ピクセルにおける 2 値化で生じた誤差をピクセル間の距離に対応した重み付けを行い，周囲の未処理ピクセルに足しあわせる．

2.2

図 2 Floyd-Steinberg 法の拡散係数

誤差拡散法

ここでは，誤差拡散法の中でも代表的な Floyd-Steinberg法を考える [2]．Floyd-Steinberg 法では図 2 のような拡散

2.3

誤差拡散法の欠点

誤差拡散法の欠点として，画像のエッジ部分が誤差拡散係数を用いて，注目ピクセルで発生した誤差を拡散させる． のために平滑化されてぼけるという点，画像の階調が緩やすなわち，変換前の画像を u(i, j)，変換後の画像を v(i, j)かに変化する領域においてワームノイズが発生する点が挙とするとき，注目ピクセルが (i, j) であるとすると，まずげられる．図 3 の画像の上部に発生している画像の乱れが式（1）によって v(i, j) を定める．次に注目ピクセル (i, j)ワームノイズである．

図 3 Floyd-Steinberg 法による誤差拡散画像

3

誤差拡散法の改良

3.1

誤差拡散法の改良

図43.2

提案手法による誤差拡散法画像

画像の評価

元画像と処理画像との比較において, 客観的な評価尺度

本研究では誤差拡散法の欠点である平滑化によるぼけとして以下 PSNR 値がよく用いられる:を，減少させることを考える．このぼけの原因は図 2 の1NMクセル間の輝度値の変化が大きい場合も小さい場合も一様に使われているためである．提案手法では注目ピクセ
ル u(i, j) とその右隣とのピクセル (i, j + 1) の輝度値の差|u(i, j) − u(i, j + 1)| = d に応じて拡散係数 p1 ，p2 ，p3 ，p4を表 1 のように変化させていく．
注目ピクセルとその右隣のピクセルの輝度値の差が小(255)2

PSNR 値 = 10 log10ような拡散係数が画像全体に対して変化することなく，ピN ∑M∑∥u(i, j) − v(i, j)∥．
(2)
2

i=1 j=1

で あ る ．Floyd-Steinberg 法 と 提 案 手 法 を 比 較 す る と ，PSNR 値は図 3 では 6.597[dB]，図 4 は 6.628[dB] であった．隣の画素との輝度値の差を求めながら誤差を拡散させるために，処理時間は従来の方法と比べて若干長くなるが，さいとき，右隣にはあまり誤差を拡散させず，差が大きPSNR 値は高い方が画質が良好となるため，提案手法は有
いときは右隣への誤差を拡散させる比率を大きくする． 用であることがわかる．
そのため p1 は d が小さいほど小さく d が大きいほど大きく選んでいることに注意する．また p2 ，p3 ，p4 の比はFloyd-Steinberg 法の拡散係数の比と等しく選んでいる．

193 ≦ d < 224

p221729361572318972
336372

p3357215362572
5181572536572

p4772336572
118372136172225 ≦ d < 256100065 ≦ d < 9697 ≦ d < 128
129 ≦ d < 160
161 ≦ d < 192

上記の拡散係数を使って得られた画像が図 4 である．図3 の画像と比べて，画像のぼけが改善され細かい濃淡が表現されていることが確認できる．

本研究では，従来の誤差拡散法の実装を行い、誤差拡散誤差拡散法と比較して提案手法の実装により PSNR 値を

p1
1814381258347833 ≦ d < 64

おわりに法の問題点を克服するための手法を提案した．特に従来の表 1 提案手法の拡散係数0 ≦ d < 324向上させることができた．今後の課題は PSNR 値を高くする拡散係数 Pn の最適値を求めることである．

参考文献[1] 高井信勝：『MATLAB 画像処理入門』．工学社，東京，
2013.
[2] 南祐樹，東俊一，杉江俊治：ハーフトーニング画像処理：画像の量子化による情報圧縮．計測と制御，49-11，2010.
[3] 貴家仁志：『よくわかるディジタル画像処理』．CQ 出版社，東京，1996.