Термин
Chroma (Cb, Cr)
Цветовые компоненты пикселя YCbCr, кодирующие отклонение по синему (Cb) и красному (Cr). В 4:2:0 имеют меньшее разрешение, чем luma.
Chroma – цветовая часть пикселя, отделённая от яркости. В формате YCbCr, который любой современный видеокодек использует внутри себя, каждый пиксель описан тремя числами: Y – яркость (`luma`), Cb – «насколько это синее относительно серого», Cr – «насколько это красное относительно серого». Cb и Cr вместе восстанавливают полный цвет; по отдельности они ничего не говорят о яркости.
Зачем нужно это разделение – краеугольный камень того, как реально работает видеосжатие. Зрение человека гораздо чувствительнее к изменениям яркости, чем к изменениям цвета – вы заметите крошечную тень, но с трудом отличите два похожих зелёных. Отделение chroma от luma даёт кодекам возможность хранить chroma с меньшим разрешением (`chroma-subsampling`: 4:2:2, 4:2:0), а вы этого не заметите. Это одно решение обычно ополовинивает сырые данные видео ещё до основного сжатия.
Для продуктовых команд chroma – невидимый механизм за несколькими видимыми решениями. Chroma subsampling (использует ваш пайплайн 4:4:4, 4:2:2 или 4:2:0) напрямую влияет на полосу и качество на цветонасыщенном контенте. Chroma keying (композитинг зелёного фона) требует достаточного chroma-разрешения для чистой работы – 4:2:0 обычно не подходит, 4:2:2 – production-минимум. Chroma-артефакты вроде «blocking» в красных областях или цветных краёв вокруг текста – признаки либо пере-сжатия chroma-каналов, либо неподходящего subsampling для типа контента. Ни одна из этих задач не требует прямой манипуляции chroma – это следствия решений уровнем выше.
Считаете параметры для своего продукта?
Поможем собрать энкодер-леддер и посчитать стоимость доставки – до старта разработки.