Что такое субдискретизация цветности? (4:4:4, 4:2:2, 4:2:0)
Почему JPEG хранит цвет в меньшем разрешении, чем яркость, что означают эти соотношения и когда цветовыми деталями можно спокойно пожертвовать.
Человеческий глаз гораздо чувствительнее к яркости, чем к цвету. JPEG этим пользуется: канал яркости хранится в полном разрешении, а два цветовых канала — в пониженном. Это соотношение понижения и есть субдискретизация цветности, записываемая тремя числами.
Как читать запись
Числа описывают, сколько отсчётов цвета приходится на группу отсчётов яркости, в форме J:a:b.
- 4:4:4 — на каждые 4 отсчёта яркости приходится 4 отсчёта цвета. Понижения нет.
- 4:2:2 — 4 отсчёта яркости, 2 отсчёта цвета в строке. Цветовое разрешение уменьшено вдвое по горизонтали. Размер файла обычно падает на 15–25 %.
- 4:2:0 — 4 отсчёта яркости, 2 отсчёта цвета в чередующихся строках. Цвет уменьшен вдвое в обоих направлениях, поэтому выживает лишь четверть исходных цветовых данных. Экономит ещё 10–20 % по сравнению с 4:2:2.
Разница в размере между 4:4:4 и 4:2:0 реальна, но меньше, чем обычно думают, — как правило, менее 35 % от общего объёма.
Когда 4:2:0 не мешает
На естественных фотографиях листвы, неба, облаков и кожи при обычном размере просмотра 4:2:0 трудно отличить. Телевещание десятилетиями работало с 4:2:0.
Когда мешает
- Красные и пурпурные детали. Цветовые каналы несут красную разность, поэтому насыщенные красные тона размываются первыми. Красные цветы, красный текст, предупреждающие знаки.
- Тонкие цветные линии и текст. Цветные скриншоты интерфейсов, диаграммы, карты с цветными границами.
- Плоский цвет с резкими краями. Логотипы, иллюстрации, пиксель-арт, всё синтетическое.
- Любое изображение, которое будут редактировать снова. Потери цветности накапливаются. Два раунда 4:2:0 заметно хуже одного.
Если ваш источник синтетический или сгенерированный — вывод модели изображений, скриншот, векторный экспорт, — он с большой вероятностью 4:4:4, и именно такие изображения страдают от субдискретизации сильнее всего.
Почему «просто поднять качество» это не отменяет
Субдискретизация происходит до квантования. Как только цветовые каналы усреднены и сохранены в половинном разрешении, никакая настройка качества не воссоздаст отброшенные отсчёты. Повышение качества лишь тратит больше битов на уже испорченные данные: файл растёт, а детали не возвращаются.
В этом и весь смысл сохранения исходного режима дискретизации: он стоит нескольких байтов, и эти байты — единственные, что действительно выкупают цветовую информацию.
Проверьте свои файлы
Перетащите JPEG в инструмент выше. Строка под именем файла показывает режим дискретизации, определённый нами в заголовке, а также примерное качество источника и является ли он прогрессивным. Ничего не загружается, так что частные изображения проверять безопасно.