Как видео сжимает цвет, почти не трогая яркость

В каждом кадре можно условно разделить информацию на две части: яркость — где светлее и темнее, — и цвет. Глаз особенно чувствителен к мелким перепадам яркости: именно они помогают различать тонкие границы и текстуры. Цветовые переходы зрение обычно замечает хуже, особенно если изображение быстро движется или показано на небольшом экране.

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

Меньше данных — не обязательно заметно хуже

Цветовые значения занимают место в потоке данных. Если хранить их реже, файл или передаваемое видео могут стать компактнее. На обычной сцене разница часто малозаметна: контуры предметов остаются четкими, а небольшие изменения оттенка зритель может не распознать.

Но экономия не бесплатна. На насыщенных цветных границах — например, в мелком красном тексте на синем фоне — могут появиться размытые края или цветные ореолы. Поэтому такое сжатие особенно хорошо работает для естественных сцен и хуже подходит для графики с тонкими контрастными цветами.

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