Представьте себе, что прямоугольную фотографию разлиновали горизонтальными и вертикальными прямыми линиями, другими словами - наложили мелкую сетку (растр). В результате картинка разбилась на ячейки. Каждая ячейка окрашена в один цвет и называется точкой (или пикселом). Цвет можно закодировать, то есть поставить ему в соответствие уникальное целое число. И тогда изображение превращается в набор целых чисел. Закодированное таким образом изображение, называется растровым.
Введем обозначения:
К - количество разных цветов, используемых при кодировании изображения;
п - число битов, необходимое для кодирования цвета одной точки изображения.
Между К и п существует связь: К = 2n.
Пользуясь этой формулой, можно рассчитать, сколько битов необходимо для кодирования цвета одной точки, если известно количество разных цветов, с помощью которых может быть представлено изображение:
п = log2K
Количество битов, необходимое для хранения одной точки изображения, называется глубиной цвета.
|
|
Примеры типов изображений и их кодирование
Тип изображения | Количество цветов | Кодировка |
Черно-белое изображение | К = 2: черный, белый | 2n = 2, т. е. n=1, что означает: для кодирования цвета достаточно одного бита. Например: 0 - черный, 1 - белый |
Изображение из 3-х цветов | К = 3, например, черный, белый, красный. | 2n = 3. Одного бита недостаточно для кодирования трех цветов, поэтому берем ближайшее целое с избытком - 2. Например: 00,01,11 |
Изображение из 4-х цветов | К = 4, например, черный, темно-серый, светло-серый, белый | 2n = 4, т. е. n= 2. Например: 00, 01, 10, 11 |
Рассмотрим, как представляется цвет на экране монитора. Окраска одного пикселя экрана формируется с помощью трех базовых цветов: красного, зеленого, синего. Эти три цвета являются основой цветовой модели RGB (RGB - Red, Green, Blue). С их помощью можно получить 8 = 23 разных цветов. В данном случае для кодирования каждого из трех базовых цветов достаточно 1 бита: либо этот цвет присутствует в окраске одного пиксела, либо его нет. Двоичный код восьмицветной палитры представлен в таблице:
Красный | Зеленый | Синий | Получаемый цвет | |
Черный | ||||
Синий | ||||
Зеленый | ||||
Голубой | ||||
Красный | ||||
Розовый | ||||
Желтый | ||||
Белый |
Однако каждый цвет базовой модели характеризуется не только его наличием, но и яркостью (интенсивностью).
Яркость каждого цвета кодируется восьмиразрядным двоичным числом, то есть глубина цвета = 8. Следовательно, число оттенков одного базового цвета равно 28 = 256 (256 оттенков красного, 256 оттенков зеленого и 256 оттенков синего). Из трех базовых цветов можно получить 256 х 256 х 256 = (256)3 = (28)3 = 224 = 16 777 216 цветов и их оттенков. Информация о каждом пикселе в видеопамяти займет п = 8 х 3 = 24 бита = 3 байта.
|
|
Таким образом, для хранения одного образа экрана потребуется объем памяти, равный произведению ширины экрана (в пикселах) на высоту экрана (в пикселах) и на п (глубину цвета). Например, при размере экрана 1280 х 720 формула примет вид: 1280 х 720 х 24.
В общем случае объем памяти, необходимый для хранения растрового изображения, рассчитывается по формуле:
V = W × H × n (битов).
где W— ширина изображения в точках (пикселах);
Н - высота изображения в точках (пикселах);
V - объем памяти, необходимый для хранения изображения.
1. Рассчитайте объем видеопамяти, необходимой для хранения растрового изображения, занимающего весь экран монитора с разрешающей способностью 640 х 480 пикселов, если используется палитра из 65536 цветов.
Решение. Глубина цвета рассчитывается по формуле п = log2K = l og2 65536 = 16 бит. Следовательно, для хранения одного пиксела изображения потребуется 16/8 = 2 байта видеопамяти.
Таким образом, для хранения всего изображения потребуется 2 х 640 х 480 = 614400 байт = 600 Кбайт.
_________________________________________________________________________________
Ответ: 600 Кбайт.
2. Для хранения растрового изображения размером 320x400 пикселов потребовалось 125 Кбайт памяти. Определите количество цветов в палитре.
Решение. Изображение состоит из 320 х 400 = 128000 точек. Для хранения этого изображения отводится 125 х 1024 х 8 = 1024000 бит памяти. Следовательно, для хранения одной точки нужно 1024000 / 128000 * 8 бит памяти. Таким образом, n = 8 бит, а палитра содержит К = 2" = 28 = 256 цветов.
_________________________________________________________________________________
Ответ: 256 цветов.
3. (Демо-версия 2009 г., задача А15)
Для кодирования цвета фона страницы Интернет используется атрибут bgcolor= «#FFFFFF», где в кавычках задаются шестнадцатеричные значения интенсивности цветовых компонент в 24-битной RGB-модели. Какой цвет будет у страницы, заданной тэгом <body bgcolor=«#FFFFFF»>? 1) белый 2) зеленый 3) красный 4) синий
Решение. При описании Интернет-страницы на языке HTML допускается описывать цвет в виде 16-ричного числа, состоящего ровно из 6 цифр. Правила таковы: под каждый цвет модели RGB (как уже отмечалось, в этой модели представляется цвет на экране монитора) отводится 2 цифры. Чтобы узнать вклад каждого базового цвета, последовательность «FFFFFF» делим на 3 группы по две цифры в каждой:
FF - красный FF - зеленый FF - синий.
Другими словами, запись «FFFFFF» мы представили как «RRGGBB».
Числа, закодированные двумя 16-ричными цифрами, означают яркость цвета. FF16 = 25510, что означает максимальную яркость. При максимальной яркости каждого цвета модели RGB получаем белый цвет.
___________________________________________________________________________________
Ответ: белый цвет.
При переводе в рассматриваемое представление базовых цветов правила таковы:
• яркость данного цвета должны быть максимальной (25510 или FF16);
• остальные цвета модели отсутствуют, то есть их яркость минимальна
(0016 или 010).
Далее в таблице приведены примеры известных цветов и их представление в 16-ричном виде.
Название цвета | 16-ричиое представление | |||
Красный (R) | Зеленый (G) | Синий (В) | ||
Белый | FF | FF | FF | |
Красный | FF | |||
Зеленый | FF | |||
Синий | FF | |||
Черный |
Помимо растровых существуют и другой тип изображения - векторный. Векторные изображения представлены набором линий (как прямых, так и криволинейных) и элементарных фигур. Каждая линия или фигура описывается математической формулой с указанием ее характеристик (цвет, толщина и др.). Такое описание занимает меньше места в памяти, чем аналогичное изображение в векторном виде. Более того, при масштабировании объектов векторной графики качество изображения не изменяется.
|
|