フロイド-スタインバーグ・ディザリング
毎回の量子化誤差は隣接するピクセル群に分配されるが、既に量子化が済んだピクセルの値は変更しない。これにより、あるピクセルの値が量子化によって切り下げられたら、次のピクセルにその誤差が反映されて切り上げられることになり、全体として量子化誤差がゼロに近づくことになる。
実装によっては、水平のスキャン方向を毎回逆にすることもある(蛇行式または牛耕式)。
以下に擬似コードを示す。
元のピクセル値が発色可能な色と色のちょうど中間だった場合、誤差拡散係数は市松模様のようなパターンを生成するように設定されている。例えば50%の灰色は白と黒の市松模様となる。最適なディザリングにするには、丸め誤差が結果に影響することを防止するため、量子化誤差を十分な精度で求める必要がある。
例えばグレースケールにおいて色深度を16ビットから8ビットにする場合、find_closest_palette_color() は次のように単純な丸めをすればよい。