What Is Atkinson Dithering? The Exact Settings That Make It Work
Atkinson dithering spreads only 3/4 of the quantization error across six neighbors. The exact matrix, the threshold to set, and where it bands on skin tones.
01/ ARTICLE
What Is Atkinson Dithering?
Atkinson dithering is an error-diffusion algorithm designed by Bill Atkinson at Apple Computer. It spreads only three-quarters of each pixel's quantization error to six neighboring pixels, trading tonal smoothness for higher local contrast. It shipped on the original Macintosh, and it's still the reference point for the classic 1-bit Mac look — the grainy, high-contrast texture you'll recognize from early MacPaint files and Obra Dinn.
Designers reach for it ahead of any generic dither because the contrast bias reads as a deliberate illustration choice, not a compression artifact. Floyd-Steinberg tries to preserve every shade of gray it can. Atkinson does the opposite: it pushes toward pure black and white and holds it there. That's exactly what you want when the goal is a graphic, punchy look instead of a faithful grayscale reproduction.
How Does Atkinson's Error Diffusion Matrix Work?
Every algorithm in this family works the same basic way. Convert a pixel to black or white, measure how far off that guess was — the quantization error — and push it onto pixels you haven't processed yet, so the image as a whole still averages out to the right brightness. What separates Atkinson from the rest is exactly how much error it pushes forward, and to where.
The Atkinson matrix spreads error to six neighbors: two pixels to the right, one below-left, one directly below, one below-right, and one two rows down. Each one carries exactly 1/8 of the current pixel's error. Six neighbors at 1/8 apiece sums to 6/8, or three-quarters of the total. The remaining quarter just gets dropped.
That's the whole mechanism — and the whole tradeoff. Floyd-Steinberg diffuses 100% of the error across four neighbors (7/16, 3/16, 5/16, 1/16, values landed on by trial and error so a 50% gray field comes out as a clean checkerboard). Atkinson keeps less of that error moving forward. The dither localizes, contrast goes up, and you lose detail in near-white and near-black regions — exactly where that discarded quarter would have mattered most.
Atkinson vs. Floyd-Steinberg vs. Bayer Dithering: Which Should You Use?
Atkinson and Floyd-Steinberg are both error-diffusion algorithms. They differ in how much error they carry forward, not whether they diffuse it at all. Ordered (Bayer) dithering skips diffusion entirely — it tiles a fixed threshold map across the image instead, which gives you a characteristic crosshatch pattern rather than the more organic texture either error-diffusion method produces.
| Algorithm | Error diffused | Neighbors | Visual character | Best for |
|---|---|---|---|---|
| Atkinson | 3/4 (6 × 1/8) | 6, each 1/8 | High local contrast, crisp, graphic | Illustration-style looks, the classic 1-bit Mac aesthetic |
| Floyd-Steinberg | 4/4 (16/16) | 4 (7/16, 3/16, 5/16, 1/16) | Smooth gradients, closer to true grayscale | Photographic work, portraits, skin tones |
| Bayer (ordered) | none — fixed threshold map, no diffusion | tiled matrix, not neighbor-based | Deterministic crosshatch pattern | Video and animation, where frame-to-frame pattern stability matters |
Pick Atkinson when the source doesn't need to hold a smooth gradient and you want the result to read as a deliberate graphic treatment: logos, high-contrast portraits, the Obra Dinn look. Pick Floyd-Steinberg when there's continuous tone you actually need to preserve — diffusing the full error keeps mid-tones intact instead of collapsing them toward black or white. Pick Bayer for a moving image. Because it applies the same fixed threshold map to every frame instead of diffusing error pixel-by-pixel, the pattern doesn't crawl or shimmer between frames the way an error-diffusion dither can — that matters for VJ output and anything applied to video rather than a single still.
What Threshold Should You Use for Atkinson Dithering?
In practical Atkinson implementations, the threshold is the one setting you actually touch — the diffusion matrix itself never changes. Real-world tooling exposes it as a single black/white cutoff: everything above the threshold renders black, everything below renders white. Default is 0.5, or 128 on a 0-255 scale.
Moving the threshold doesn't change how error diffuses, only where the black/white line falls. Nudge it down toward 0.35-0.40 and you'll keep more white space, lightening the whole image. Push it up toward 0.60-0.65 and you'll hold more shadow detail, darkening it. Neither direction fixes the algorithm's tonal-range limitations. It's a global brightness knob, layered on top of the same six-neighbor diffusion — nothing more.
One thing catches people off guard: apply any contrast or sharpness boost to the source image before the dither pass, not after. Boost contrast on an already-dithered image and you change which pixels are sitting at pure black or pure white, which undoes the balance the diffusion pass just worked out.
Where Does Atkinson Dithering Fail? Banding and Skin Tones
The same design choice that gives Atkinson its contrast — discarding a quarter of the error instead of carrying it forward — is exactly what breaks it on smooth gradients. That quarter never reaches the neighboring pixels, so subtle tonal transitions don't get the correction they need. Atkinson will visibly band or break apart a gradient that Floyd-Steinberg renders as a clean, continuous dither.
Skin tones are the sharpest version of this problem. They sit in a narrow tonal range, and the eye is highly sensitive to abrupt jumps there — precisely the kind of transition Atkinson's partial error diffusion handles worst. The result reads as blotchy or blocked-up, where Floyd-Steinberg holds the same transition cleanly.
So here's the practical rule for a designer's workflow: reach for Floyd-Steinberg on continuous-tone or portrait work where the skin needs to read naturally. Save Atkinson for subjects and compositions where you actually want that high-contrast, graphic bias — architectural shots, high-key portraits shot for the effect, logos, anything meant to look like a deliberate illustration rather than a faithful photograph.
Frequently Asked Questions
What is Atkinson dithering?
Atkinson dithering is an error-diffusion algorithm designed by Bill Atkinson at Apple that spreads only three-quarters of each pixel's quantization error to six neighboring pixels, trading tonal smoothness for higher local contrast. It shipped on the original Macintosh and is still the reference for the classic 1-bit Mac look.
What threshold should I use for Atkinson dithering?
0.5 (128 on a 0-255 scale) is the standard default cutoff — pixel values above it render black, below it render white. Nudge it down toward 0.35-0.40 to keep more white space and lighten the result, or up toward 0.60-0.65 to darken it and hold more shadow detail, without touching the diffusion matrix itself.
Why does Atkinson dithering band on skin tones?
Because only 3/4 of the quantization error is diffused forward, the narrow tonal range that makes up skin gets discarded instead of carried to neighboring pixels, so smooth gradients break apart into visible bands or blotches. Floyd-Steinberg, which diffuses the full error, holds that same range more smoothly.
Is Atkinson dithering better than Floyd-Steinberg?
Neither wins outright — they're tuned for different jobs. Atkinson's partial error diffusion produces a punchier, more graphic look that suits illustration-style output; Floyd-Steinberg's full error diffusion holds continuous-tone detail better, which is what you want for photographic work and portraits.
Where can I try Atkinson dithering on my own image?
Open a photo in the kott studio with the Atkinson effect preloaded, sweep the threshold slider, and compare it side by side against Floyd-Steinberg and Bayer on the same source image before you commit to a setting.
02/ OUT
Every setting described above is a real control. Open your own image and sweep it.
All journal entries