Why some GIFs look good and others don't: palettes and dithering, measured

A GIF can only hold 256 colours per frame. Whether it looks like the video or like a bad photocopy comes down to two choices most converters hide from you: which 256 colours, and how the gaps between them are filled.

The palette is everything

A GIF stores every frame with a palette of at most 256 colours. A converter that uses a fixed, generic palette (the same 256 colours for every video ever) wastes most of them on shades the clip never contains and has too few for the ones it does. The result is banding in skies, blotches in shadows, and skin tones that turn orange.

The fix is a two-pass encode: the first pass studies the whole clip and builds a palette that fits this footage; the second pass encodes with it. Simple GIF Maker always works this way. The app’s own quality-comparison set shows the difference on a gradient test pattern:

Generic palette vs two-pass palette
Two versions of a colour-gradient animation side by side: the naive single-pass GIF on the left shows visible banding and blotches, the two-pass palette version on the right is smooth
Left: a generic-palette encode. Right: the app’s two-pass palette. Same clip, same 256 colours.

A good palette often makes a slightly larger file than a bad one, because smooth dithering compresses less well than flat blotches: on this gradient test, 2.77 MB against 1.59 MB. Quality per byte is the point, and the app’s size target handles the bytes.

Three palette modes

  • Auto (per scene), the default: a new palette whenever the footage changes character, for example a cut from a forest to a sky.
  • Single: one palette for the whole clip. Slightly smaller files; best for clips that stay in one place.
  • Per frame: a fresh 256 colours for every frame. The best colour fidelity on clips with many cuts; slower to encode.

Dithering, measured

Dithering scatters pixels of neighbouring palette colours to fake the shades in between. It’s what makes a 256-colour image look like more, and it’s also noise that costs bytes. We measured the app’s four options on a 10-second Big Buck Bunny clip (Blender Foundation, CC BY 3.0) at 480 px, 15 fps, 256 colours, 16 Sep 2026, using the app’s encoder pipeline:

DitheringSizeLook
Sierra (the app’s default)13.6 MBSmooth; fine scattered pattern in gradients
Floyd–Steinberg13.2 MBVery close to Sierra; slightly different grain
Bayer, scale 311.7 MBOrdered crosshatch pattern; compresses better; can look “screen-door” on soft areas
None11.6 MBBanding in gradients; cleanest on flat interface captures
Sierra against Bayer, enlarged 3×. Bayer’s regular pattern is what saves the bytes.

Rules of thumb the app makes easy to follow: video and photos get Sierra; flat interface captures get None with a lower colour count; Bayer is the compromise when a video GIF must lose 15% and you’d rather keep the width. All four are in the app’s Advanced (palette and dithering) panel, and the preview updates with the real encode, so you see the grain before you export.

Simple GIF Maker · GIF preview
Simple GIF Maker's GIF preview tab showing an encoded 960 by 540 fractal animation of 150 frames at 36.8 MB, with the note 'Size: 36.8 MB (from preview)'
The preview tab shows the real two-pass encode, palette and dithering included.

Why the preview matters

Most tools show you the source video and hope for the best. Simple GIF Maker’s preview is the encoded GIF, with the same palette, dithering and loop as the export, so the size it reports is the size you get and the grain you see is the grain you ship. Combined with the size target, that means one export instead of five.