配列ディザリング
人間の目は明色の階調差よりも暗色の階調差の方をより正確に認識するため、「ほとんど白に近いグレー」を白飛びさせて暗色の階調差に割り振るのは、むしろ望ましいディザリング結果になるとすら言える。一方で、色数の特に少ないカラーパレットや任意の色で構成されたカラーパレットを使用してディザリングを行った場合は、元画像と全然違った見た目の画像が生成されることになるため、アルゴリズムを組む人は面倒がらずに適切な正規化を行った方が良い。
逆の目線で言うと、アルゴリズムは、すべてのピクセルの各カラーチャンネル「c」に対して次の変換を実行する。
c ′ = n e a r e s t _ p a l e t t e _ c o l o r ( c + r × ( M ( x mod n , y mod n ) − 1 2 ) ) {\displaystyle c'=\mathrm {nearest\_palette\_color} {\mathopen {}}\left(c+r\times \left(M(x{\bmod {n}},y{\bmod {n}})-{\frac {1}{2}}\right){\mathclose {}}\right)}
ここで、「M(i, j)」はi番目の行とj番目の列のしきい値マップ、「c′」は変換された色、「r」は色空間における広がりの量である。