配列ディザリング
RGBの各色が0から255までのオクテットで表された、全「2」色の等間隔な色で構成されるカラーパレットを想定すると、一つの色は通常はこのような形で選択される。
r ≈ 255 N {\displaystyle r\approx {\frac {255}{N}}}
このアルゴリズムは1つ1つのピクセルのみを操作するもので、条件分岐もないため、非常に高速で、リアルタイム変換に適している。さらに、ディザパターンは表示フレームに対して常に同じ位置にあるため、誤差拡散法よりもジッター(いわゆる「カクツキ」「チラツキ」、現代のゲームエンジンのレトロゲーム機風シェーダーでも問題になる)が発生しにくく、アニメーションに適している。誤差拡散法のディザパターンよりも反復的なタイリングであるため、配列ディザリングを使用した画像の圧縮率は高くなる。配列ディザリングは、直線が真っ直ぐに変換され、揺らぎが少ないため、イラストなど線画系の画像に適している(写真などは誤差拡散法の方が奇麗に出る)。
カラーパレットに合わせてしきい値マップを自作する場合、しきい値マップの値同士の差は、カラーパレットの色同士の最小の差と同じ範囲になるようにスケーリングすることが望ましい。
ランダムな値のマトリクスを使う「ランダムディザリング法」も存在するが、綺麗にうまくいくシーンはそれほど多くない)
配列ディザリング法を使う場合は、上記のマトリクスをそのまま使うのが一般的だが、もし任意のサイズのしきい値マップを自力で作りたい場合は、簡単な法則を使って制作できる。まず、各スロットを連続した整数で埋める。次に、マップ内の2つの連続した数同士の平均距離ができるだけ大きくなるように並べ替え、テーブルが端で「折り返される」ようにする。
次元が2の累乗であるしきい値マップの場合、マップは以下の定式で再帰的に生成できる。
M 2 n = 1 ( 2 n ) 2 × [ 4 × M n 4 × M n + 2 4 × M n + 3 4 × M n + 1 ] {\displaystyle \mathbf {M} _{2n}={\frac {1}{(2n)^{2}}}\times {\begin{bmatrix}4\times \mathbf {M} _{n}&4\times \mathbf {M} _{n}+2\\4\times \mathbf {M} _{n}+3&4\times \mathbf {M} _{n}+1\end{bmatrix}}}
再帰式は、ビット演算のみを使用して明示的に計算できる。