/ALGORITHM · ATKINSON

Atkinson Dithering

The short answer

Atkinson dithering is an error-diffusion algorithm written by Bill Atkinson at Apple in the mid-1980s for the original Macintosh. It differs from Floyd-Steinberg in one specific way: it passes on only six eighths of each pixel's error instead of all of it, spread over six neighbours rather than four. Throwing away a quarter of the error is what gives it the look people recognise from MacPaint: crisp midtones, and highlights and shadows that blow out to clean white and solid black instead of holding detail.

A photograph dithered with the Atkinson algorithm in one-bit black and white, with blown highlights and crisp midtones
The same photograph, dithered with this algorithm at one-bit mono.

The kernel

Every error-diffusion algorithm is really just a small table saying where the rounding error goes. Atkinson's is six neighbours, each taking one eighth:

        X   1/8  1/8
  1/8  1/8  1/8
       1/8

Compare that with Floyd-Steinberg, where the four weights are 7/16, 3/16, 5/16 and 1/16 and add up to exactly 1. Atkinson's six eighths add up to 0.75. That missing quarter is not a bug or an approximation of the hardware it was written for, it is the entire character of the algorithm. Error that never gets passed on is error that never pulls a neighbouring pixel across the threshold, so bright regions stay bright and dark regions stay dark.

What it actually looks like

Three things give an Atkinson render away:

That combination is why it suits high-contrast source material and struggles with flat, low-contrast photographs, where it will happily eat both ends of the range and leave you a mid-grey mush. If that happens, raise contrast before you dither rather than after.

Where you have seen it

MacPaint and the 1-bit screen of the original 128K Macintosh are the obvious ones. Apple's HyperScan scanning software used it. The Game Boy Camera is often lumped in with it, but that is a different technique: it dithers in hardware against a fixed 4×4 threshold matrix held in the cartridge, which is ordered dithering rather than error diffusion. More recently it has become the default 1-bit aesthetic for album art, zines, poster design and Playdate games, largely because it is the error-diffusion algorithm that most clearly reads as a deliberate style rather than a compression artefact.

Why a quarter, and why eighths

The shape of this kernel is a 1984 engineering decision, not an aesthetic one. Dividing by eight is a three-place right shift, which the 68000 in the original Macintosh did in a single cheap instruction. Dividing by sixteen the way Floyd-Steinberg does is also a shift, but Floyd-Steinberg needs four different multipliers (7, 3, 5, 1) before those shifts; Atkinson needs none, because every neighbour takes exactly the same amount. The whole kernel is "shift right three, add to six places".

So the missing quarter is not a deliberate artistic choice either. It falls out of picking six neighbours at one eighth each rather than eight, and the six were picked because they are the ones reachable without a second row buffer. The look we now copy on purpose started as a way to make a 7.8MHz machine redraw a scanned photograph before the user gave up.

Getting a good Atkinson from a modern photo

The failure mode is specific: flat input goes to mid-grey mush, because the algorithm eats both ends of the range and a flat photo is all middle. The fix is always upstream.

  1. Raise contrast before dithering, not after

    Dithering is a one-way door. Once a pixel is black or white there is no tone left to grade. Push contrast until the source looks slightly too hard on screen.

  2. Give it a subject with a clear silhouette

    Atkinson protects midtones and discards the extremes, so it flatters anything where the shape carries the image: portraits, objects on plain grounds, architecture against sky.

  3. Decide the output size first

    The dot pattern does not scale. Dither at the size you will publish, or the texture either disappears or turns into a moiré when the browser resamples it.

  4. Check the highlights last

    If an area you wanted detail in has gone pure white, that is the algorithm working as designed. Either lower brightness, or accept it and use Floyd-Steinberg, which keeps that detail.

Atkinson or Floyd-Steinberg

A short rule that holds most of the time:

The fastest way to settle it is to load the same image into the tool below and flip between them.

Try it on your own image

Atkinson is already selected. Drop in a photo, or use the example, and switch the algorithm to see the difference against the same source. Everything runs in your browser, nothing is uploaded.

Drop an image here or click to choose one. The file is opened by this page and never uploaded.
Atkinson

Controls

4
100
0

This runs the same kernels and palette values as the full editor. Switch the algorithm above to compare Atkinson against the others on your own image.

Frequently asked questions

What is Atkinson dithering?
An error-diffusion dithering algorithm written by Bill Atkinson at Apple in the mid-1980s for the original Macintosh. It passes six eighths of each pixel's rounding error to six neighbours and discards the remaining quarter, which produces crisp midtones with blown highlights and crushed shadows.
How is Atkinson different from Floyd-Steinberg?
Floyd-Steinberg distributes the full error across four neighbours using weights that sum to 1. Atkinson distributes only six eighths across six neighbours, so a quarter of the error is thrown away. That lost error is why Atkinson pushes highlights to pure white and shadows to solid black while Floyd-Steinberg keeps detail at both ends.
Why does Atkinson dithering blow out highlights?
Because error that is never passed on can never push a neighbouring pixel over the threshold. In a bright region each pixel rounds to white and a quarter of the resulting error simply disappears, so nothing accumulates to force an occasional black pixel. The region goes flat white.
Is Atkinson dithering good for photographs?
For high-contrast photographs, yes, especially portraits, where the tight midtone speckle flatters skin. For flat or low-contrast photographs it tends to crush both ends and leave a mid-grey mush. Raise contrast before dithering rather than after.
What is the Atkinson dithering matrix?
Six neighbours each receiving one eighth of the error: the two pixels to the right on the current row, three pixels on the row below starting one to the left, and one pixel two rows below. The weights sum to 0.75 rather than 1.
Can I use Atkinson dithering for free online?
Yes. The tool above runs the real Atkinson kernel in your browser, against eight palettes, with no signup and no upload. Switching the algorithm dropdown is the quickest way to see what the discarded quarter of the error actually costs you.

Atkinson is one of fifteen dither algorithms in the engine, and the only one that deliberately loses error. If you want the faithful end of the family instead, start with Floyd-Steinberg, or read the complete guide to dithering for the whole set.