Аргументами данных функций являются цветовые матрицы в одном представлении, а функции возвращают эквивалентные цветовые матрицы в другом представлении.
Большинство созданных на компьютере цветных изображений выполнены в формате RGB, в котором каждый пиксел представлен тремя числами: интенсивностями красного, зеленого и синего цветов, которые соединяются вместе, создавая цвет пиксела. Однако формат RGB не используется в цветном телевидении. Его заменяют различные стандарты представления цвета, в которых присутствует освещенность или значение яркости (символ Y), используемое в черно-белом телевидении, а также два значения цветности или цвета.
Зрительная система человека более чувствительна к пространственному изменению яркости, чем к пространственному изменению цвета. Поэтому вместо RGB лучше использовать один канал для информации о яркости (сигнал освещенности), а другие два канала для информации о цвете. Для сжатия изображений можно просто субдискретизировать информацию о цвете без особой потери качества восприятия. Используется несколько типов каналов, самыми распространенными из которых являются YIQ и YUV, где Y обозначает сигнал освещенности (или воспринимаемую освещенность), а IQ и UV являются каналами цветности (информация о цвете/освещенности, которая может быть субдискретизирована). В стандартном видеооборудовании, как аналоговом, так и цифровом, используется этот тип сжатия.
В Северной Америке Национальный комитет по телевизионным системам (NTSC) использует стандарт, известный как YIQ, который является линейным преобразованием RGB, следующим образом:
Можно настроить вышеприведенные значения RGB_in и YIQ_in и увидеть, каковы эквивалентные значения выходных данных YIQ и RGB. Обычно рассчитанные значения RGB округляются до ближайшего целого числа.
rgb_to_yiq и yiq_to_rgb
Данные функции используются для преобразования матриц изображения RGB в YIQ и обратно.
1. Прочитайте изображение RGB.
(planet_ppm.bmp)
2. Преобразуйте изображение RGB в YIQ, а затем обратно в RGB, после чего проверьте идентичность результирующего изображения исходному.
(planet_yiq_rgb.bmp)
Стандарт цифрового телевидения CCIR 601
В стандарте CCIR 601 изображения сохраняются в формате YCbCr. Данный формат является линейным преобразованием RGB с более однородным диапазоном выходных данных.
• Можно настроить вышеприведенные значения RGB_in и YCbCr_in и увидеть, каковы эквивалентные значения выходных данных YCbCr и RGB. Обычно значения YCbCr и RGB округляются до ближайшего целого числа.
• Значения RGB лежат в диапазоне от 0 до 255, значения Y лежат в диапазоне от 16 до 235, а значения Cb и Cr — в диапазоне от 16 до 240 (экстремальные значения диапазона используются в сигнале для других целей).
rgb_to_ycbcr и ycbcr_to_rgb
Данные функции используются для преобразования матриц изображения RGB в YCbCr и обратно.
Преобразуйте исходное изображение RGB в YCbCr, а затем обратно в RGB, после чего проверьте идентичность результирующего изображения исходному.