Кодирование изображений

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

Введем обозначения:

К - количество разных цветов, используемых при кодировании изобра­жения;

п - число битов, необходимое для кодирования цвета одной точки изо­бражения.

Между К и п существует связь: К = 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
Черный        

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  




Подборка статей по вашей теме: