Перейти к содержимому

Что такое цветовая субдискретизация

Запись 4:4:4, 4:2:2 и 4:2:0, разница в объёме данных и причина, по которой красный текст на скриншоте расплывается после сохранения в JPEG.

Строка «4:2:0» в свойствах видео или в настройках кодировщика описывает, сколько данных о цвете сохраняется относительно данных о яркости. Это самый дешёвый способ выбросить треть или половину информации из изображения так, чтобы человек этого не заметил, — и одновременно причина нескольких хорошо узнаваемых дефектов.

Разделение яркости и цвета

Перед сжатием изображение переводится из RGB в цветоразностное пространство YCbCr: Y — яркость, Cb и Cr — отклонения по синему и красному. Разделение имеет физиологический смысл. Сетчатка человека содержит около 120 миллионов палочек, отвечающих за яркость, и порядка 6 миллионов колбочек, различающих цвет, поэтому пространственное разрешение зрения по цвету заметно ниже, чем по яркости.

Из этого следует практический приём: канал яркости хранить полностью, а цветовые каналы — с прореженной сеткой. Запись J:a:b описывает блок шириной 4 и высотой 2 пикселя. 4:4:4 — цвет для каждого пикселя, прореживания нет. 4:2:2 — цвет берётся через один пиксель по горизонтали, объём цветовых данных вдвое меньше, суммарный — на треть. 4:2:0 — цвет прореживается и по горизонтали, и по вертикали: один отсчёт Cb и Cr на четыре пикселя, вдвое меньше данных суммарно.

Где это видно

На фотографии 4:2:0 практически незаметно: границы цветовых областей в природных сценах и без того размыты. Дефект проявляется там, где цвет меняется резко и совпадает по яркости с фоном. Классический пример — красный или синий текст на белом: контур букв расплывается, вокруг появляется цветная бахрома, тонкие штрихи теряют насыщенность. Тот же эффект даёт цветная тонкая линия на схеме и субтитры поверх видео.

Отсюда практическое следствие для конвертации: скриншоты, схемы и любые изображения с текстом не следует сохранять в JPEG с настройками по умолчанию — там почти всегда включено 4:2:0. Для такого материала берут PNG, WebP без потерь либо JPEG в режиме 4:4:4, если кодировщик позволяет его задать.

Видео, монтаж и захват экрана

Практически всё бытовое видео — записи с камер и телефонов, потоки с площадок, файлы H.264 и HEVC в MP4 — хранится в 4:2:0. Профессиональный тракт использует 4:2:2 (ProRes 422, форматы вещания) и 4:4:4 там, где предстоит цветокоррекция и кеинг по хромакею: при 4:2:0 маска по зелёному фону получается ступенчатой, поскольку строится по вчетверо более грубой цветовой сетке.

Захват экрана — отдельный случай. Запись интерфейса в 4:2:0 делает мелкий цветной шрифт нечитаемым; для скринкастов имеет смысл кодировать в 4:4:4, если целевой плеер это поддерживает, либо увеличивать разрешение записи, чтобы прореживание приходилось на менее значимые детали. При обратном переводе из 4:2:0 в 4:4:4 отброшенные отсчёты не восстанавливаются — интерполируются, а вырастет только размер файла.

Что открыть после статьи

Все материалы раздела «Технические разборы»