Кодирование графических данных

 

Существует два основных способа кодирования графической информации: растровый и векторный.

Растровый способ кодирования характеризуется тем, что все изображение по вертикали и горизонтали разбивается на достаточно мелкие прямоугольники – так называемые элементы изображения, или пиксели (от англ. pixel – picture element). Чем меньше прямоугольники, тем больше разрешение (resolution), т. е. тем более мелкие детали изображения можно закодировать. Этот параметр измеряется в dpi (dots per inch – точек на дюйм). В зависимости от того, на какое графическое разрешение экрана настроена операционная система компьютера, на экране могут размещаться изображения 640х480, 800х600, 1024х768 и более.

У растровых изображений два основных недостатка. Во-первых, очень большие объемы данных. Для активных работ с большеразмерными иллюстрациями типа журнальной полосы требуются компьютеры с большими размерами оперативной памяти (128 Мбайт и выше). Во-вторых, растровые изображения невозможно значительно увеличить без серьезных искажений. Эффект искажения при увеличении точек растра называется пикселизацией.

Для каждого пикселя хранится информация о его цвете и координатах. За цвет пикселя принимается некоторое усредненное значение цвета в прямоугольнике. Цвет пикселя кодируется определенным количеством битов. Глубина цвета (Color Depth) это- количество бит, приходящихся на один пиксель. В разных системах кодирования под цвет пикселя отводится от 1 до 24 бит. Нетрудно сообразить, что если под цвет отводится всего один бит, мы получим черно-белое изображение. При использовании 8 бит число возможных цветов достигает 256, 16 бит – 65 536 цветов, 24 бит – 16 777 216 цветов.

Способ разделения цвета на составляющие называется цветовой моделью. В настоящее время разработано множество цветовых моделей: RGB, CMYK, HSB, Lab и т. д., каждая из которых имеет свою область практического применения.

Рассмотрим более подробно RGB-модель, наиболее часто применяемую в компьютерной графике. При этом способе кодирования любой цвет представляется в виде комбинации трех цветов: красного (Red), зеленого (Green) и синего (Blue), взятых с разной интенсивностью. Интенсивность каждого цвета кодируется 8 битами. Таким образом, для каждого основного цвета существует 256 различных значений интенсивности.

Видимый человеком свет имеет длину волны в довольно узком диапазоне — от 0,38 мкм до 0,72 мкм. А человеческий глаз имеет специальные рецепторы (называемые колбочками), чувствительные именно к цвету. При этом каждая из колбочек «специализируется» уже на своем, совсем узком, диапазоне длин волн.

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

Количество различных цветов и количество бит, необходимых для их кодировки связаны между собой формулой:

 

N = 2I

 

Где N – количество цветов, I- число бит, отводимых в видеопамяти под каждый пиксель (глубина цвета).

 

Если для кодирования яркости каждой из основных составляющих использовать по 256 значений (восемь двоичных разрядов или 28), как это принято для полутоновых черно-белых изображений, то на кодирование цвета одной точки надо затратить 24 разряда (8 бит красного + 8 бит зеленого + 8 бит синего).

При этом система кодирования обеспечивает однозначное определение 16,5 млн. различных цветов (224), что близко к чувствительности человеческого глаза. Режим представления цветной графики с использованием 24 двоичных разрядов называют полноцветным(True Color).

Графические файлы, в которых применяется цветовая система RGB, представляют каждый пиксель в виде цветового триплета – трех числовых величин (R, G, В), соответствующих интенсивностям красного, зеленого исинего цветов (рис. 1).

Конкретные цвета в RGB-модели получаются смешением основных цветов. Таким образом, для описания любого цвета достаточно 3 байт, которые часто записывают тремя парами 16-ричных чисел.

Так, например, белый цвет можно описать как FFFFFF, черный – 000000, желтый – FFFF00.

Метод получения нового оттенка суммированием яркостей составляющих компонент называется аддитивным. Он применяется всюду, где цвета изображения рассматриваются в проходящем цвете, т.е. на просвет: в мониторах, слайд-проекторах и т.п.

Кроме RGB, другими популярными системами кодирования цветных изображений являются CMY и HSB.

CMY (Cyan, Magenta, Yellow — голубой, пурпурный, желтый) — цветовая система, применяемая для получения цветных изображений на белой поверхности. Эта система используется в большинстве устройств вывода, таких как лазерные и струйные принтеры, Всегда для получения твердых копий краски наносятся на белую бумагу. При освещении каждый из трех основных цветов поглощают дополняющий его цвет; голубой цвет поглощает красный, пурпурный — зеленый, а желтый — синий. Например, если увеличить количество желтой краски, то интенсивность синего цвета в изображении уменьшится.

 

Рис. 2.3. Цветовая система RGB

 

Новые цвета в системе CMY получают вычитанием цветовых составляющих из белого цвета. Они имеют длину волны отраженного света, не поглощенного основными цветами CMY. Например, в результате поглощения голубого и пурпурного цветов образуется желтый, т. е. можно сказать, что желтый цвет является результатом «вычитания» из отраженного света голубой и пурпурной составляющих. Если все составляющие CMY будут вычтены (или поглощены), то результирующим цветом станет черный. На практике же получить идеальный черный цвет без дорогостоящих красителей в системе CMY весьма сложно.

Существует более практичный вариант CMY — система CMYK, в которой символ К означает черный цвет. Введение в эту цветовую систему черного цвета в качестве независимой основной цветовой переменной позволяет использовать недорогие красители. Систему CMYK часто называют четырехцветной, а результат ее применения — четырехцветной печатью. Во многих моделях точка, окрашенная в составной цвет, группируется из четырех точек, каждая из которых окрашена в один из основных цветов CMYK.

Данные в системе CMYK представляются либо цветовым триплетом, аналогичным RGB, либо четырьмя величинами. Если данные представлены цветовым триплетом, то отдельные цветовые величины противоположны величинам RGB. Так, для 24-битового пиксельного значения триплет (255,255,255) соответствует черному цвету, а триплет (0,0,0) — белому. Однако в большинстве случаев для представления цветов в системе CMYK используется последовательность четырех величин.

Как правило, четыре цветовые составляющие CMYK задаются в процентах в диапазоне от 0 до 100.

Модель HSB (Hue, Saturation, Brightness — оттенок, насыщенность, яркость цвета) — одна из многих цветовых систем, в которых при представлении новых цветов не смешивают основные цвета, а изменяют их свойства. Оттенок — это «цвет» в общеупотребительном смысле этого слова, например красный, оранжевый, синий и т. д. Насыщенность (также называемая цветностью) определяется количеством белого в оттенке. В полностью насыщенном (100%) оттенке не содержится белого, такой оттенок считается чистым. Частично насыщенный оттенок светлее по цвету. Красный оттенок с 50%-ной насыщенностью соответствует розовому. Яркость определяет интенсивность свечения цвета. Оттенок с высокой интенсивностью является очень ярким, а с низкой — темным.

Модель HSB напоминает принцип, используемый художниками для получения нужных цветов, — смешивание белой, черной и серой с чистыми красками для получения различных тонов и оттенков (tint, shade и tone). Оттенок tint является чистым, полностью насыщенным цветом, смешанным с белым, а оттенок shade — полностью насыщенным цветом, смешанным с черным. Тон (tone) — это полностью насыщенный цвет, к которому добавлены черный и белый цвета (серый). Если рассматривать систему HSB cточки зрения смеси этих цветов, то насыщенность будет представлять собой количество белого, яркость — количество черного, а оттенок — тот цвет, к которому добавляются белый и черный.

Режим, когда для кодирования цвета каждой точки используется 32 двоичных разряда, так же как и рассмотренный выше с использованием 24 разрядов; называют полноцветным (True Color). Если уменьшить количество двоичных разрядов, используемых для кодирования цвета каждой точки, то можно сократить объем данных, но при этом диапазон кодируемых цветов заметно сокращается. Кодирование цветной графики 16-разрядными двоичными чистками называют режимом High Color.

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

 

 

Рис.2.4. Геометрические примитивы векторной графики

 

Для полного описания изображения необходимо знать вид и базовые координаты каждой фигуры. Например, для окружности такими координатами являются координаты центра и диаметр окружности, для сплайна – координаты точек, через которые проходит кривая. Кроме того, описываются цвета каждой фигуры, в том числе цвета границы и цвета внутренней области.

Векторное кодирование чрезвычайно широко распространено. В частности, оно используется в современных шрифтах TrueType и PostScript, в системах автоматизированного проектирования.