Термин
YCbCr / YUV
Цветовое пространство, разделяющее яркость (Y) и две цветовые компоненты (Cb, Cr). Позволяет chroma subsampling и совпадает с человеческим зрением; дефолт для кодеков.
YCbCr – формат цвета, в котором внутри работает любой видеокодек: Netflix, YouTube, Zoom, broadcast-ТВ, камера вашего телефона. Вместо хранения пикселя как red/green/blue (`rgb`), YCbCr хранит его как одно значение яркости (Y) и два значения цветовой разницы (Cb и Cr). Информация та же, просто переупакованная.
Зачем? По двум причинам, которые в сумме дают огромный выигрыш в сжатии. Первая: разделение «яркость/цвет» совпадает с тем, как работает человеческое зрение – мы гораздо чувствительнее к изменениям яркости, чем цвета. Вторая: это разделение позволяет кодекам использовать `chroma-subsampling` и резать цветовое разрешение пополам (или на 75 %) так, что вы не заметите – в RGB чистое сделать это нельзя. Итог: уже на старте, до основной компрессии, YCbCr экономит примерно половину сырых данных по сравнению с RGB.
В обиходе «YUV» и «YCbCr» часто пишут как синонимы. Строго говоря, YUV – это аналоговая версия (старое ТВ), YCbCr – цифровая, но в современной работе это одно и то же. Что стоит запомнить: камеры и экраны думают в RGB, кодеки – в YCbCr, и конвертация между ними автоматическая и без потерь, если у файла указан правильный `color-space` (BT.709, BT.2020). Решений про YCbCr вы не принимаете – принимаете решения о chroma subsampling, битовой глубине и color space, которые «сидят сверху».
Считаете параметры для своего продукта?
Поможем собрать энкодер-леддер и посчитать стоимость доставки – до старта разработки.