Dithering algorithm comparison

The same image, the same 1-bit palette, seven algorithms. Use this to pick the right one in seconds.

Floyd–Steinberg dithering example (1-bit, Great Wave)
Floyd–Steinberg
Atkinson dithering example (1-bit, Great Wave)
Atkinson
Jarvis–Judice–Ninke dithering example (1-bit, Great Wave)
Jarvis–Judice–Ninke
Bayer (ordered) dithering example (1-bit, Great Wave)
Bayer (ordered)
Blue noise (void-and-cluster) dithering example (1-bit, Great Wave)
Blue noise (void-and-cluster)
Halftone screen dithering example (1-bit, Great Wave)
Halftone screen
Riemersma dithering example (1-bit, Great Wave)
Riemersma
AlgorithmTypeDetailAnimation stability
Floyd–SteinbergError diffusionHighPoor (crawls)
AtkinsonError diffusionMedium-high, crispPoor
Jarvis–Judice–NinkeError diffusionVery highPoor
Bayer (ordered)OrderedMedium, regular gridExcellent
Blue noise (void-and-cluster)Ordered (blue noise)High, organicExcellent
Halftone screenClustered dotLow-medium, printGood
RiemersmaSpace-filling curveMedium, organicPoor

Atkinson vs Floyd–Steinberg?

Floyd–Steinberg diffuses 100% of the error for accurate tone; Atkinson diffuses 75% for higher contrast and cleaner highlights.

Ordered vs error diffusion?

Ordered dithering (Bayer, blue noise) uses a fixed threshold per pixel — fast and stable in animation. Error diffusion propagates error between pixels — more detail but patterns shift when the image changes.

Dither vs halftone?

Halftone is a kind of clustered-dot ordered dither: dots grow in size on a fixed grid, which suits printing. Dispersed dithers (Bayer, Floyd–Steinberg) use single scattered pixels, which suits screens.

Open the dither studio →