Dithering algorithms, explained

22 algorithms, each rendered on the same image (Hokusai's Great Wave, 1-bit) so you can compare texture directly. Every example was made with the Gridloom dither studio.

What is dithering?

Dithering is the deliberate placement of pixels from a limited palette so that, viewed from a distance, they blend into tones and colours the palette doesn't contain.

Try any of them on your image →

Floyd–Steinberg

Floyd–Steinberg dithering example (1-bit, Great Wave)
Floyd–Steinberg

Origin: Robert Floyd & Louis Steinberg, 1976. How it works: Error diffusion. Each pixel's quantization error is pushed to 4 neighbours with weights 7/16 (right), 3/16 (below-left), 5/16 (below), 1/16 (below-right). Look: Smooth gradients, fine 'worm' texture, all tone preserved. Best for: Photos, general purpose, palettes with many colours.

Atkinson

Atkinson dithering example (1-bit, Great Wave)
Atkinson

Origin: Bill Atkinson, Apple Macintosh (1984). How it works: Error diffusion. 1/8 of the error goes to each of 6 neighbours, so only 6/8 (75%) is diffused and 25% is discarded. Look: Crisp, high contrast; highlights and shadows blow out cleanly. Best for: 1-bit art, retro Mac look, line-heavy images.

Jarvis–Judice–Ninke

Jarvis–Judice–Ninke dithering example (1-bit, Great Wave)
Jarvis–Judice–Ninke

Origin: Jarvis, Judice & Ninke, 1976. How it works: Error diffusion over 12 neighbours across 3 rows, weights summing to 48. Look: Very smooth, less 'wormy' than Floyd–Steinberg, slightly softer. Best for: Detailed photos, large prints.

Stucki

Stucki dithering example (1-bit, Great Wave)
Stucki

Origin: Peter Stucki, 1981. How it works: Error diffusion over 12 neighbours (weights /42), a sharper variant of JJN. Look: Clean and sharp with smooth tone. Best for: Photos where JJN looks too soft.

Burkes

Burkes dithering example (1-bit, Great Wave)
Burkes

Origin: Daniel Burkes, 1988. How it works: Error diffusion over 7 neighbours in 2 rows (weights /32); a faster simplification of Stucki. Look: Close to Stucki, slightly coarser. Best for: Speed-sensitive work with good quality.

Sierra (3-row)

Sierra (3-row) dithering example (1-bit, Great Wave)
Sierra (3-row)

Origin: Frankie Sierra, 1989. How it works: Error diffusion over 10 neighbours in 3 rows (weights /32). Look: Similar to JJN, a touch crisper. Best for: Photos.

Sierra 2-row

Sierra 2-row dithering example (1-bit, Great Wave)
Sierra 2-row

Origin: Frankie Sierra, 1990. How it works: Error diffusion over 7 neighbours in 2 rows (weights /16). Look: Between Floyd–Steinberg and Sierra 3-row. Best for: General use.

Sierra Lite

Sierra Lite dithering example (1-bit, Great Wave)
Sierra Lite

Origin: Frankie Sierra, 1990. How it works: Minimal error diffusion: 2/4 right, 1/4 below-left, 1/4 below. Look: Fast, close to Floyd–Steinberg, a bit grainier. Best for: Real-time and video.

Fan

Fan dithering example (1-bit, Great Wave)
Fan

Origin: Zhigang Fan, Xerox (1990s). How it works: Error diffusion with a 4-neighbour kernel shifted to reduce directional artifacts. Look: Fewer diagonal worms than Floyd–Steinberg. Best for: Flat midtones, skies.

Shiau–Fan

Shiau–Fan dithering example (1-bit, Great Wave)
Shiau–Fan

Origin: Shiau & Fan, Xerox (1990s). How it works: Error diffusion with a 5-neighbour, one-row-below kernel. Look: Even midtone texture. Best for: Midtone-heavy images.

1-D scanline diffusion

1-D scanline diffusion dithering example (1-bit, Great Wave)
1-D scanline diffusion

Origin: classic textbook baseline. How it works: All error goes to the next pixel on the same row. Look: Strong horizontal streaks; a deliberate glitch look. Best for: Stylised, lo-fi effects.

Variable-coefficient (Ostromoukhov-style)

Variable-coefficient (Ostromoukhov-style) dithering example (1-bit, Great Wave)
Variable-coefficient (Ostromoukhov-style)

Origin: after Victor Ostromoukhov, SIGGRAPH 2001. How it works: Error diffusion whose weights change with the grey level to suppress visible patterns. Look: Very even, almost blue-noise texture. Best for: High-quality 1-bit output.

Riemersma

Riemersma dithering example (1-bit, Great Wave)
Riemersma

Origin: Thiadmer Riemersma, 1998. How it works: Diffuses error along a Hilbert space-filling curve with a short decaying history. Look: Organic, no row direction, clustered texture. Best for: Artistic textures, avoiding scanline artifacts.

Bayer (ordered)

Bayer (ordered) dithering example (1-bit, Great Wave)
Bayer (ordered)

Origin: Bryce Bayer, Kodak, 1973. How it works: Ordered dithering. Each pixel is compared with a threshold from a repeating 2×2…16×16 index matrix. Look: Regular cross-hatch grid; the classic retro/console look. Best for: Pixel art, Game Boy style, GIF animation, small files.

Blue noise (void-and-cluster)

Blue noise (void-and-cluster) dithering example (1-bit, Great Wave)
Blue noise (void-and-cluster)

Origin: Robert Ulichney, 1993. How it works: Ordered dithering with a threshold mask that has only high-frequency ('blue') noise. Look: Organic, no visible pattern, stable between frames. Best for: Animation, video, games, e-ink.

White noise (random)

White noise (random) dithering example (1-bit, Great Wave)
White noise (random)

Origin: classic baseline. How it works: Each pixel is compared with a random threshold. Look: Grainy, noisy; the simplest dither. Best for: Grain and stylised noise.

Halftone screen

Halftone screen dithering example (1-bit, Great Wave)
Halftone screen

Origin: print industry, 1880s onward. How it works: Clustered-dot ordered dither: dots grow with darkness on a rotated grid. Look: Newspaper / comic dots. Best for: Print, screen printing, DTF.

Diamond screen

Diamond screen dithering example (1-bit, Great Wave)
Diamond screen

Origin: clustered-dot print screens. How it works: Clustered-dot screen whose cells grow as diamonds. Look: Graphic diamond lattice. Best for: Posters, duotones.

Line screen

Line screen dithering example (1-bit, Great Wave)
Line screen

Origin: engraving / print. How it works: Threshold varies across parallel lines at a chosen angle. Look: Engraving and banknote style. Best for: Etching looks, laser engraving.

Crosshatch

Crosshatch dithering example (1-bit, Great Wave)
Crosshatch

Origin: pen-and-ink hatching. How it works: Two or more line screens at different angles. Look: Hand-hatched illustration. Best for: Illustration, laser engraving.

Radial rings

Radial rings dithering example (1-bit, Great Wave)
Radial rings

Origin: pattern screen. How it works: Threshold from concentric rings. Look: Target / op-art rings. Best for: Posters, op art.

Spiral

Spiral dithering example (1-bit, Great Wave)
Spiral

Origin: pattern screen. How it works: Threshold from a spiral around the centre. Look: Hypnotic spiral texture. Best for: Posters, music art.

FAQ

What is dithering?

Dithering is the deliberate placement of pixels from a limited palette so that, viewed from a distance, they blend into tones and colours the palette doesn't contain.

What are the main types of dithering?

Error diffusion (Floyd–Steinberg, Atkinson, Jarvis–Judice–Ninke, Stucki, Sierra), ordered dithering (Bayer, blue noise), random/white-noise dithering, and clustered-dot or pattern screens (halftone, lines, diamond).

Which dithering algorithm is best?

For faithful photos: Floyd–Steinberg, Jarvis–Judice–Ninke or variable-coefficient. For a crisp retro look: Atkinson. For animation and pixel art: Bayer or blue noise. For print: halftone screens.