YCoCg

Цветовая модель YCoCg представляет собой цветовое пространство, образованное из простого преобразования связанного цветового пространства RGB в значение яркости (обозначаемое как Y) и два значения цветности, называемых цветными зелеными (Cg) и оранжевыми цветными (Co). Он поддерживается в проектах сжатия видео и изображений, таких как H.264 / MPEG-4 AVC, HEVC, JPEG XR и Dirac, поскольку он прост в вычислении, обладает хорошим коэффициентом кодирования преобразования и может быть без потерь преобразован в RGB и из RGB с меньшим количеством бит, чем требуется с другими цветовыми моделями.

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

Конвертация с цветовой моделью RGB
Три значения цветовой модели YCoCg вычисляются следующим образом из трех значений цвета цветовой модели RGB:


Значения Y находятся в диапазоне от 0 до 1, а Cg и Co находятся в диапазоне от -0,5 до 0,5, что характерно для цветных моделей YCC, таких как YCbCr.Например, чистый красный цвет выражается в системе RGB как (1, 0, 0) и в системе YCgCo как (1/4, — 1/4, 1/2 ). Однако, поскольку коэффициенты матрицы преобразования являются простыми двоичными дробями, их легче вычислить, чем другие преобразования YCC. Для сигналов RGB с битовой глубиной n либо результирующие сигналы затем округлялись до n бит или обычно составляли n + 2 бита при обработке данных в этой форме (хотя для Co было бы достаточно n + 1 бит).

Обратная матрица преобразует из цветовой модели YCoCg обратно в цветную модель RGB:


Чтобы выполнить обратное преобразование, необходимы только два дополнения и два вычитания без вещественных коэффициентов, реализуя его как:

tmp = Y — Cg;
R = tmp + Co;
G = Y + Cg;
B = tmp — Co;

Перемещение YCoCg-R на подъеме
Масштабированная версия преобразования, иногда называемая YCoCg-R (где «-R» относится к обратимости), может быть эффективно реализована с уменьшенной глубиной бит. Масштабированная версия использует схему подъема, чтобы сделать ее полностью обратимой при минимизации глубины бита трех компонентов цвета. Для сигналов RGB с битовой глубиной n битовая глубина сигнала Y при использовании YCoCg-R будет равна n, а битовая глубина Co и Cg будет равна n + 1, в отличие от обычного YCoCg, для которого потребуется n + 2 бита для Y и Cg и n + 1 бит для компании

Здесь возможные значения для Y все еще находятся в [0, 1], а возможные значения для Co и Cg теперь находятся в [-1, 1].

Преобразование из RGB в YCoCg-R:

Co = R — B;
tmp = B + Co / 2;
Cg = G — tmp;
Y = tmp + Cg / 2;
Преобразование из YCoCg-R в RGB следующее:

tmp = Y — Cg / 2;
G = Cg + tmp;
B = tmp — Co / 2;
R = B + Co;