gif.art

Дизеринг: Floyd–Steinberg против Bayer

8 июля 2026 · 3 мин чтения

В GIF не больше 256 цветов на кадр, поэтому плавные градиенты приходится имитировать узором из соседних цветов. Это и есть дизеринг. Способов много, но на практике выбор сводится к двум семействам.

Диффузия ошибки

Floyd–Steinberg, Sierra и родственники распределяют ошибку округления каждого пикселя на соседей. Картинка выглядит максимально близко к оригиналу, но узор получается случайным и меняется от кадра к кадру даже на неподвижных участках.

Для LZW, которым сжимается GIF, это худший случай: повторяющихся последовательностей почти нет, а дрожащий фон ещё и ломает оптимизацию «перерисовываем только изменения».

Упорядоченный дизеринг

Bayer использует фиксированную матрицу порогов. Узор заметнее — та самая «сеточка», — зато он одинаковый в каждом кадре и хорошо сжимается.

Правило, которое у меня прижилось: фото и видео с живой камеры — диффузия; интерфейсы, плоская графика и пиксель-арт — Bayer или вообще без дизеринга.

Цифры

МетодЗапись экрана, 10 сВидео с камеры, 5 с
floyd_steinberg3,1 МБ4,4 МБ
sierra2_4a2,9 МБ4,2 МБ
bayer, scale 31,8 МБ3,6 МБ
none1,2 МБ3,1 МБ (полосы)

На видео с камеры разница меньше и визуально Bayer там проигрывает. На записях экрана — почти двукратный выигрыш без заметной потери.