Способы кодирования цвета при записи и воспроизведении изображений
Способы представления цвета имеют свою теоретическую и практическую историю. Согласно современным понятиям свет является электромагнитным излучением, причем человеческий глаз воспринимаем лучи с длиной волны приблизительно от 40010 -6 мм (фиолетовый) до 70010-6 мм (красный). Данная шкала является непрерывной, а понятие цвета относится всего лишь к определенной части этой шкалы (от синего к красному согласно повышению длины волны).
Человеческий глаз различает сотни цветовых оттенков (известное зрение художника, якобы могущее воспринимать многие тысячи цветов, скорее всего является следствием чрезмерной эмоциональности в суждениях). Открытый И.Ньютоном способ разложения цвета на 7 составляющих оказался чрезмерно сложным для практической реализации. Согласно трехкомпонентной теории цветового зрения (не единственной из существующих) цвет представляется в виде суперпозиции трех основных цветов — красного (R), зеленого (G) и синего (B). В 1931г. решением Международной Комиссии по Освещению (CIE,Commision International de l‘Eclairage) были стандартизированы монохроматические цвета цветового излучения с длинами волн соответственно : красный цвет — 70010 -6 , синий — 546,110 -6 и красный — 435,810 -6 мм.
На рис.1 схематично показана схема современной модели цвета — RGB
Рис.1 Модель RGB
Модель RGB (Red, Green, Blue) является, пожалуй, наиболее простой и естественной из существующих. Здесь цвет представляется суммой интенсивностей трех составляющих цвета, при этом смешение трех цветов в одинаковой пропорции дает белый (при максимальной интенсивности составляющих) или серый (при меньшей, но равной, интенсивности составляющих; при нулевой интенсивности составляющих имеем черный цвет). Эта модель именуется аддитивной(основанной на сложении трех составляющих цвета) и напрямую реализуется в современных сканерах и электроннолучевых трубках мониторов. В Windows модель RGB поддерживается широко — известны системные функции получения полного цвета по его составляющим RGB(Red,Green,Blue) и выделения интенсивности N-ной компоненты (N[R,G,B]) цвета GetNValue(RGB_Value); при этом интенсивность каждого из цветов Red, Green, Blue кодируется целым числом от 0 до 255.
Модель RGB имеет и недостатки — цвета на экране монитора могут отличаться от полученных цветоделением, существует взаимозависимость цветовых каналов (при увеличении яркости одного канала в других каналах яркость уменьшается). Развитием RGB-модели является RGBA (Red, Green, Blue, Alpha), позволяющая учитывать прозрачность элементов изображения (канал Alpha).
Модель RGB совершенно неприменима при цветной печати, когда цвета фактически не суммируются, а вычитаются из белого цвета бумаги (при печати суммирование трех красок равной интенсивности дает не белый, а наоборот — близкий к черному — цвет).
В модели CMYK используются дополнительные к RGB цвета — голубой (Cyan), пурпурный (Magenta) и желтый (Yellow), модель получила название субтрактивной. Для получения серых оттенков приходится давать избыток голубой составляющей, интенсивность Cyan на 1020% больше, чем пурпурной и желтой. В реальных цветных принтерах используется дополнительная емкость с черной краской, так как смешение CMY при их полной интенсивности все же не позволяет получить истинно черный цвет (отсюда символ K, см. рис.2).
Недостатки цветовой модели CMYK — узкий цветовой диапазон, неточное отображение цветов CMYK на мониторе и больший (по сравнению с RGB) расход памяти при реализации.
Рис.2 Сравнение моделей RGB и CMYK
Самым широким охватом обладает и наиболее точно описывает параметры цвета модель Lab(рис.3). Ее достоинством является полное разделение информации о цвете и яркости, модель часто используется в качестве внутренней во многих программных продуктах для пересчета при переводе цветов из одной модели в другую. Современные пакеты работы с изображениями обязательно позволяет учитывать качество реальных устройств воспроизведения и корректировать цветопередачу (при этом используется понятие цветовой температуры — величины, тесно связанной с амплитудно-частотной характеристикой данного устройства в диапазоне видимого цвета).
Рис.3 Модель Lab
HSB — модель, которая в принципе является аналогом RGB, она основана на её цветах, но отличается системой координат.
Любой цвет в этой модели характеризуется тоном (Hue), насыщенностью (Saturation) и яркостью (Brightness). Тон — это собственно цвет. Насыщенность — процент добавленной к цвету белой краски. Яркость — процент добавленной чёрной краски. Итак, HSB — трёхканальная цветовая модель. Любой цвет в HSB получается добавлением к основному спектру чёрной или белой, т.е. фактически серой краски. Модель HSB не является строгой математической моделью. Описание цветов в ней не соответствует цветам, воспринимаемых глазом. Дело в том, что глаз воспринимает цвета, как имеющие различную яркость. Например, спектральный зелёный имеет большую яркость, чем спектральный синий. В HSB все цвета основного спектра (канала тона) считаются обладающими 100%-й яркостью. На самом деле это не соответствует действительности.
Хотя модель HSB декларирована как аппаратно-независимая, на самом деле в её основе лежит RGB. В любом случае HSB конвертируется в RGB для отображения на мониторе и в CMYK для печати,а любая конвертация не обходится без потерь.
В некоторых случаях профессионалы предпочитают работать с системой HSV, название которой является аббревиатурой терминов оттенок(Hue) —насыщенность(Saturation) — яркость(Value).
Множественность моделей говорит о сложности попыток представления цвета; несмотря на явные достижения и практическое использование работа в этом направлении продолжается в связи с постоянным повышением требований к качеству воспроизведения изображений при экранной демонстрации и получении печатной продукции.
Источник
18.Кодирование графической информации
Кодирование графической информации
Общие подходы к кодированию графической информации
Обработка и хранение графической информации требуют значительных вычислительных ресурсов, которые появились только у компьютеров четвёртого поколения.
Пространство непрерывно, а это значит, что в любой его области содержится бесконечное множество точек. Чтобы абсолютно точно сохранить изображение, необходимо запомнить информацию о каждой его точке. Иначе говоря, компьютерное представление некоторого изображения (например, полотна В. И. Сурикова «Боярыня Морозова») должно содержать информацию о бесконечном количестве точек, для сохранения которой потребовалось бы бесконечно много памяти. Но память любого компьютера конечна. Чтобы компьютер мог хранить и обрабатывать изображения, необходимо ограничиться выделением конечного количества объектов пространства (областей или точек), информация о которых будет сохранена. Информация обо всех остальных точках пространства будет утрачена.
Пространственная дискретизация — способ выделения конечного числа пространственных элементов, информация о которых будет сохранена в памяти компьютера.
Цвет и яркость — характеристики, присущие каждому элементу (точке, области) изображения. Их можно измерять, т. е. выражать в числах. И цвет, и яркость — непрерывные величины, результаты измерения которых следует выражать вещественными числами. Но вам известно, что вещественные числа не могут быть представлены в компьютере точно.
Квантование — процедура преобразования непрерывного диапазона всех возможных входных значений измеряемой величины в дискретный набор выходных значений.
При квантовании диапазон возможных значений измеряемой величины разбивается на несколько поддиапазонов. При измерении определяется поддиапазон, в который попадает значение, и в компьютере сохраняется только номер поддиапазона.
Дискретизация и квантование всегда приводят к потере некоторой доли информации.
Векторная и растровая графика
В зависимости от способа формирования графических изображений выделяют векторный и растровый методы кодирования графических изображений.
Векторное изображение строится из отдельных базовых объектов — графических примитивов: отрезков, многоугольников, кривых, овалов. Способ создания векторных изображений напоминает аппликацию (рис. 3.6).
Графические примитивы характеризуются цветом и толщиной контура, цветом и способом заливки внутренней области, размером и т. д. При сохранении векторного изображения в память компьютера заносится информация о составляющих его графических примитивах.
Например, для построения окружности необходимо сохранить такие исходные данные, как координаты её центра, значение радиуса, цвет и толщину контура, цвет заполнения. При этом и большая, и маленькая окружности будут описаны одним и тем же набором данных, т. е. реальные размеры объекта не оказывают никакого влияния на размер сохраняемых о нём данных.
Фактически векторное представление — это описание, в соответствии с которым происходит построение требуемого изображения. Такого рода описания представляются в компьютере как обычная текстовая информация.
Растровое графическое изображение состоит из отдельных маленьких элементов — пикселей (pixel — аббревиатура от англ, picture element — элемент изображения). Оно похоже на мозаику (рис. 3.7), изготовленную из одинаковых по размеру объектов (разноцветных камешков, кусочков стекла, эмали и др.).
Растр — организованная специальным образом совокупность пикселей, представляющая изображение. Координаты, форма и размер пикселей задаются при определении растра. Изменяемым атрибутом пикселей является цвет.
В прямоугольном растре пиксели составляют прямоугольную матрицу, её основными параметрами являются количество столбцов и строк, составленных из пикселей.
Главное преимущество прямоугольных растров заключается в том, что положение каждого пикселя на изображении (или на экране) не надо задавать — его легко вычислить, зная размеры растровой матрицы, плотность размещения пикселей, которую обычно указывают в количестве точек на дюйм (dpi, от англ. dots per inch), и правила перечисления пикселей (например, слева направо и сверху вниз: сначала слева направо нумеруются все пиксели в верхней строке, затем нумерация продолжается на следующей строке, лежащей ниже, и т. д.).
Итак, мы выяснили, как происходит пространственная дискретизация, позволяющая выделить конечное число пространственных элементов, информация о которых будет сохранена в памяти компьютера.
Остаётся рассмотреть вопросы кодирования цвета каждого пространственного элемента.
Кодирование цвета
Из курса физики вам известно, что цвет — это ощущение, которое возникает у человека при воздействии на его зрительный аппарат электромагнитного излучения с длиной волны в диапазоне от 380 до 760 нм 1 . В табл. 3.11 показана зависимость цвета от длины волны видимого спектра.
1 Нанометр (нм) — единица измерения длины в Международной системе единиц (СИ), равная одной миллиардной части метра (т. е. 10 -9 м).
Учёным долгое время не удавалось объяснить процесс цветовосприятия. Первые серьёзные результаты в этой области были получены Исааком Ньютоном (1643-1727), который описал составную природу белого света, выделив в его спектре семь основных (наиболее заметных) цветов — красный, оранжевый, жёлтый, зелёный, голубой, синий, фиолетовый.
Позднее, в 1756 году, выдающийся русский учёный М. В. Ломоносов (1711-1765), исследуя вопросы окрашивания стёкол, обнаружил, что для придания стеклу любого цветового оттенка достаточно использовать всего три основные краски, смешивая их в определённых пропорциях. Спустя столетие эти факты были теоретически обобщены немецким учёным Германом Грассманом (1809-1877), сформулировавшим законы синтеза цвета. Наиболее важными из них для понимания сути цветовоспроизведения и цветового кодирования являются следующие два закона.
Закон трёхмерности: с помощью трёх линейно независимых цветов можно однозначно выразить любой цвет. Цвета считаются линейно независимыми, если никакой из них нельзя получить путём смешения остальных.
Закон непрерывности: при непрерывном изменении пропорции, в которой взяты компоненты цветовой смеси, получаемый цвет также меняется непрерывно.
На основании законов Грассмана можно сделать вывод, что любому цвету однозначно соответствует определённая точка трёхмерного пространства. Действительно, каждая цветовая модель задаёт некоторую систему координат, в которой основные цвета модели играют роль осей, а цвета можно рассматривать как точки или векторы в трёхмерном цветовом пространстве.
В компьютерной технике чаще всего используются следующие цветовые модели:
- RGB (Red — Green — Blue, красный — зелёный — синий);
- HSB (Hue — Saturation — Brightness, цветовой оттенок — насыщенность — яркость);
- CMYK (Cyan — Magenta — Yellow — blacK, голубой — пурпурный — жёлтый — чёрный).
Цветовая модель RGB
Для синтеза цвета на экранах компьютеров, телевизоров, смартфонов и других устройств отображения графической информации выбраны красный, зелёный и синий цвета. Смешением трёх основных цветов синтезируются все остальные цвета. Такая модель называется аддитивной (аддитивный — получаемый путём сложения, от лат. additio — прибавление).
Выбор этих цветов неслучаен и кроется в физиологии человеческого зрения. Действительно, в сетчатке глаза человека есть три типа колбочек, максимумы чувствительности которых приходятся на красный, зелёный и синий участки спектра (табл. 3.12).
Модель RGB (рис. 3.8) определяет пространство цветов в виде единичного куба с осями R (красная компонента), G (зелёная компонента), В (синяя компонента).
Рассмотрим эту модель подробно.
1. Любая точка куба (r; g; b) определяет некоторый цвет.
2. Точка (0; 0; 0) соответствует чёрному цвету; точка (1; 1; 1) соответствует белому цвету; линия (0; 0; 0)—(1; 1; 1) описывает все градации серого от чёрного до белого.
3. При движении по прямой от точки (0; 0; 0) к точке (r; g; b) получаем все градации яркости цвета (r; g; b) — от самого тёмного до самого яркого.
4. На гранях куба (r = 0), (g = 0) и (b = 0) расположены самые насыщенные цвета. Чем ближе точка к главной диагонали (0; 0; 0)-(1; 1; 1), тем менее насыщен соответствующий цвет. Если все три координаты точки (r; g; b) ненулевые, то цвет — ненасыщенный.
Мы уже упоминали о квантовании. Благодаря ему в компьютере интенсивность цветовых компонент определяется не вещественными (из интервала [0; 1]), а целыми числами. Для этого «единичные» отрезки на «красной», «зелёной» и «синей» осях разбивают на несколько поддиапазонов, каждый из которых получает свой номер. Цвет пикселя изображения, которое будет выведено на экран, задаётся тремя целыми неотрицательными числами — номерами поддиапазонов, в которые «попадает» этот цвет. Качество цветопередачи зависит от количества выделяемых поддиапазонов.
15.4. Цветовая модель RGB
В современных компьютерах для сохранения информации о цвете каждой точки цветного изображения в модели RGB обычно отводится 3 (режим True Color) или 2 (режим High Color) байта.
В первом случае на кодирование градаций яркости каждого из основных цветов отводится 1 байт: код 00000000 (00) показывает, что данной составляющей нет вообще, код 11111111 (FF) соответствует наибольшей интенсивности соответствующей цветовой компоненты. Всего можно закодировать 256 (от 0 до 255) градаций яркости каждой цветовой компоненты, что обеспечивает возможность представления 256 • 256 • 256 = 2 8+8+8 = 2 24 = 16 777 216 цветов. Человеческий глаз не может различить большего разнообразия цветов. Это позволяет считать видеорежим True Color (истинный цвет) абсолютно соответствующим цветам реального мира.
В режиме High Color цвет каждой точки кодируется 16 битами. На кодирование красной и синей составляющих при этом отводится по 5 бит, на кодирование зелёной составляющей — 6 бит. Пять бит позволяют представить по 32 градации яркости красного и синего цветов. Поскольку человеческий глаз наиболее чувствителен к зелёной составляющей цвета, под её шкалу отведено 6 бит, что позволяет сохранить 64 градации яркости этого цвета. Всего в рассматриваемом режиме можно представить 2 5+6+5 = 2 16 = 65 536 цветов. Цвета изображений, сохранённых в режиме High Color также вполне реалистичны и «комфортны» для человеческого глаза. При этом размеры соответствующих файлов в 1,5 раза меньше, чем при использовании режима True Color.
Глубина цвета (i) — количество бит, используемое для хранения и представления цвета при кодировании одного пикселя растровой графики или видеоизображения.
Палитра (N) — количество цветов, которые могут быть использованы для воспроизведения изображения.
Справедливо соотношение: N = 2 i .
Пример Имеется канал связи, обеспечивающий передачу информации со скоростью 16 000 бит/с. Выясним, сколько секунд потребуется для передачи по этому каналу 256-цветного растрового изображения размером 800 х 600 пикселей.
Зная палитру — количество цветов, используемых для воспроизведения изображения, вычислим глубину цвета — количество бит для представления цвета одного пикселя.
256 = 2 i , i = 8 (бит).
Размер файла с изображением равен: 800 • 600 • 8 (бит).
Вычислим время передачи данного файла:
Цветовая модель HSB
Модель RGB проста и понятна. Её применяют всегда, когда изображение подготавливают для воспроизведения на экране. Если изображение (например, цифровая фотография) проходит компьютерную обработку в графическом редакторе, то его тоже следует представить в этой модели.
В тех графических редакторах, которые ориентированы не на обработку готовых изображений, а на их создание своими руками, удобнее применять цветовую модель HSB. Человеку гораздо проще не синтезировать цвет из отдельных составляющих, а выбирать его, ориентируясь на более естественные параметры: цветовой оттенок (Что это за цвет?), насыщенность (Насколько цвет насыщенный?), яркость (Насколько цвет светлый или тёмный?). Именно эти три параметра и стали основой для модели HSB (Hue — Saturation — Brightness).
Цветовой оттенок (Hue) — один из цветов спектра. Конкретный цветовой оттенок кодируется либо величиной угла, либо длиной дуги на цветовом круге (рис. 3.9).
Насыщенность цвета (Saturation) характеризуется степенью разбавления его белым цветом. Например, если ярко-красную (насыщенную) краску разбавить белой, то её цветовой оттенок останется прежним, изменится только насыщенность. Чем больше добавляется белого цвета, тем меньше насыщенность конкретного цветового оттенка, а с увеличением насыщенности цвет становится «сочнее».
Яркость цвета (Brightness) зависит от добавления к нему чёрного цвета — чем больше чёрного цвета, тем меньше яркость.
Пространство цветов модели HSB может быть представлено в форме вложенных концентрических конусов с общей вершиной и общей осью симметрии (рис. 3.10).
По окружности в основании конуса расположены цветовые оттенки. Цвета с одинаковым оттенком расположены в полуплоскости, проходящей через ось симметрии конуса.
Величина угла между осью конуса и образующей определяет насыщенность цвета. Насыщенность цвета возрастает с увеличением этого угла (т. е. с отдалением от оси конуса). Цвета с одинаковой насыщенностью расположены на конической поверхности с определённым углом при основании.
Ось конуса — это ось яркости. Вершина конуса соответствует чёрному цвету. Яркость цвета возрастает — с приближением к его основанию. Цвета с одинаковой яркостью расположены по КРУГУ — сечению конуса плоскостью, перпендикулярной его оси.
Цветовая модель CMYK
Когда мы смотрим на изображение на экране монитора, мы видим излучаемый свет, а когда рассматриваем картинки на бумаге, то видим свет отражённый. Именно поэтому если смешать краски красного и зелёного цветов, то получится тёмно-коричневая краска, а не жёлтая, как это предполагается в RGB-модели.
Если под микроскопом рассмотреть цветные иллюстрации в книге, то можно увидеть, что они напечатаны очень маленькими, частично перекрывающимися цветными точками — офсетами. Офсеты хорошо видны на границах цветной печати и в местах с бледной краской.
Для подготовки печатных изображений используется цветовая модель CMYK (Cyan — Magenta — Yellow — blacK), базовыми цветами которой являются голубой, пурпурный и жёлтый цвета. Основные цвета этой модели подобраны так, чтобы соответствующие краски поглощали свет в достаточно узкой области спектра: голубая краска сильно поглощает красный цвет, пурпурная — зелёный, а жёлтая — синий.
Можно сказать, что цветовые компоненты модели CMYK получаются в результате вычитания основных цветов из белого:
- голубой = белый — красный = зелёный + синий (0; 255; 255);
- пурпурный = белый — зелёный = красный + синий (255; 0; 255);
- жёлтый = белый — синий = красный + зелёный (255; 255; 0).
Эти три цвета называются дополнительными, потому что они дополняют основные цвета до белого. Сама же модель CMYK называется субтрактивной (вычитающей) моделью.
Пространство цветовой модели CMYK также можно представить единичным кубом, где плотность закраски (или яркость базовых цветов) — это вещественные числа в диапазоне от 0 до 1 (рис 3.11).
Самое главное
Графическая информация, так же как числовая и текстовая, хранится в памяти компьютера в двоичном коде. Для представления графического изображения в памяти компьютера предварительно его необходимо подвергнуть пространственной дискретизации и квантованию, что неизбежно приведёт к потере некоторой доли информации.
Векторный метод кодирования графической информации основывается на выделении в процессе дискретизации конечного количества областей пространства — графических примитивов (отрезков, многоугольников, кривых, овалов, дуг и др.).
Растровый метод кодирования графической информации основывается на выделении в процессе дискретизации конечного количества точек пространства — пикселей.
Для каждого элемента пространства (области, точки) сохраняется информация о его цвете. Всё многообразие цветов может быть получено с помощью трёх независимых цветов, взятых в некоторой пропорции.
В компьютерной технике чаще всего используются следующие цветовые модели:
- RGB (Red — Green — Blue, красный — зелёный — синий) — для компьютерной обработки имеющихся изображений, при подготовке изображений для воспроизведения на экране;
- HSB (Hue — Saturation — Brightness, цветовой оттенок — насыщенность — яркость) — при создании изображений с помощью инструментов графического редактора;
- CMYK (Cyan — Magenta — Yellow — blасК, голубой — пурпурный — жёлтый — чёрный) — для подготовки печатных изображений.
Для сохранения информации о цвете каждой точки цветного изображения в модели RGB отводится 24 (режим True Color) или 16 бит (режим High Color).
Количество бит, используемое для хранения и представления цвета при кодировании одного пикселя растровой графики или видеоизображения, называется глубиной цвета (i). Палитра (N) — количество цветов, которые могут быть использованы для воспроизведения изображения. Справедливо соотношение: N = 2 i .
В режиме High Color может быть представлено 65 536 разных цветов, а в режиме True Color — 16 777 216. Такие цветовые палитры вполне реалистичны и «комфортны» для человеческого глаза.
Рассмотрим особенности модели CMYK:
- любая точка куба (с; m; у) определяет некоторый цвет;
- точка (0; 0; 0) соответствует белому цвету, точка (1; 1; 1) — чёрному, а линия (0; 0; 0)—(1; 1; 1) описывает все оттенки серого цвета от белого до чёрного;
- при движении по прямой от (0; 0; 0) к точке (с; m; у) получаем все градации яркости цвета (с; m; у) — от самой яркой до самой тёмной.
В идеальном случае голубого, пурпурного и жёлтого цветов было бы достаточно для формирования на бумаге любого цвета. Однако реально существующие краски не идеальны, они не могут поглотить цветовые компоненты полностью. Если нанести все три краски на бумагу, то вместо чёрного получится тёмно-серый цвет. Поэтому, чтобы скорректировать цветовую гамму, используют четвёртую краску — чёрную. Именно поэтому в название цветовой модели CMYK добавлена буква К (blасК).
Источник