Как кодирование YCbCr полезно для представления изображений в градациях серого?

Мне любопытна цветовая модель YCbCr для представления изображений в градациях серого.

Может ли кто-нибудь предоставить подробное объяснение того, как данные изображения кодируются как YCbCr, когда они могут использоваться в другом формате кодирования и какие дополнительные возможности они могут предлагать по сравнению с другими форматами кодирования?

Извините, но у меня проблемы с пониманием этого. Вы имеете в виду «Как изображения в градациях серого кодируются в YCbCr?»
Было бы также полезно, если бы вы могли объяснить ситуацию, в которой вы столкнулись с этой проблемой.
Википедия, кажется, дает разумное резюме en.wikipedia.org/wiki/YCbCr . Быстрое сканирование показывает, что это в первую очередь способ сжатия данных изображения / видео ...
@Flimzy (и Имре): вы улучшили структуру предложения, но я не уверен, что смысл вопроса прояснен. В исходном тексте было «если мы преобразуем в YCBCR, у нас не будет цветного изображения, как это?», и я не уверен, что «Если мы преобразуем в YCBCR, у нас не будет цветного изображения» точно отражает это (а также не имеет никакого смысла).
Я переформулировал заголовок и вопрос. Надеюсь, я ничего не потерял из оригинала, сделав вопрос более полезным.

Ответы (1)

Модель YCbCr имеет несколько вариаций в различных контекстах приложений, но по существу все они представляют собой некоторое аффинное (линейное) преобразование цветовых данных RGB. Если вы представляете пространство RGB с точки зрения трехмерного куба, стороны которого представляют оси R, G и B (для JPEG их диапазон обычно составляет от 0 до 255), то каждый пиксель вашего изображения соответствует трехмерному кубу. точка внутри куба, где значения компонентов цвета являются координатами точки. Это формирует «облако» точек внутри куба.

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

Первая координата несет значение интенсивности пикселя, а две другие координаты соответствуют информации о цвете пикселя. Грубо говоря, они составляют компоненты Y (яркость, интенсивность), Cb и Cr (цветность) представления YCbCr цвета пикселя в изображении.

Из этого есть пара выводов. Во-первых, вы можете взять канал Y и напрямую отобразить его как изображение в градациях серого. Затем, как прокомментировал @forsvarir, мы можем отказаться от некоторой информации о цвете и по-прежнему иметь приемлемое качество изображения, что помогает нам получить лучшие коэффициенты сжатия.

Истоки этого вида представления пикселей восходят к временам перехода от черно-белого к цветному телевещанию, когда требовалась обратная совместимость, чтобы люди, которые не обновляли свои телевизоры, могли смотреть цветные программы в черно-белом режиме. Решение состояло в том, чтобы остаться с сигналом интенсивности (то есть черно-белым) и наложить на него некоторые цветовые компоненты. Таким образом, черно-белый тюнер все еще мог использовать вещательный сигнал с некоторым приемлемым уровнем искажений.

Обратите внимание, что на самом деле в этом представлении есть нечто большее, чем то, что я описал. Но в двух словах это должно дать хорошее обоснование для этой модели.
как можно сгенерировать всю информацию о цвете с помощью компонентов Cb, Cr? и как можно отказаться от некоторой информации о цвете, пожалуйста, дайте мне пример?
@reem, какое программное обеспечение вы используете и что пытаетесь сделать?