誤差拡散法 【error diffusion】
概要
誤差拡散法(error diffusion)とは、画像の色数や階調数を減らす際に擬似的に中間色を表現するディザリング手法の一つで、ある点を減色する際に元の色との誤差を近傍の点の色情報に上乗せする方式。例えば、256階調のモノクロ画像を白黒二値の画像に変換する場合、黒(明るさ0)と白(255)の間の灰色を、例えば127以下は黒、128以上は白とすることで各画素の色を白と黒のいずれかに決定することができる。しかし、この単純な変換法では相対的に暗い部分が黒く塗りつぶされ、明るい部分が白く飛んでしまったような表現となってしまう。
誤差拡散法では、ある画素を白または黒に変換する際に生じる元の色との誤差(例えば明るさ30の暗灰色を黒にした時は+30、明るさ240のオフホワイトを白にした時は-15)を、隣接する複数の画素の色情報に上乗せし、周囲の画素は上乗せされた色情報を元に変換を行う。
端から順番に画素を処理していくと、その都度生じる誤差が周囲の画素に引き継がれ拡散していく。これにより、明るい部分が白一色に塗りつぶされるといった事態を防ぎ、その部分の明るさの度合いに応じて適度に黒い点が混じる。これが中間色のような役割を果たし、画像全体としては誤差の総和が限りなくゼロに近づく。
誤差を周囲のどの画素にどのような割合で分配するかについて様々なアルゴリズムが考案されており、中でも1976年にロバート・フロイド(Robert W. Floyd)氏とルイス・スタインバーグ(Louis Steinberg)氏が考案したフロイド・スタインバーグ法(Floyd-Steinberg dithering)は画像処理ソフトなどで広く応用されている。
(2019.1.25更新)