Кодирование графической информации
Кодирование растровых изображений
Изображение на экране компьютера (или при печати с помощью принтера) составляется из маленьких "точек" - пикселов. Их так много, и они настолько малы, что человеческий глаз воспринимает картинку как непрерывную. Естественно, качество изображения будет тем выше, чем "плотнее" расположены пикселы (т.е. чем больше разрешение устройства вывода), и чем точнее закодирован цвет каждого из них.
Разрешение обычно измеряют в "точках на дюйм" (dpi). Для разных устройств эта величина примерно следующая:
монитор - около 75 dpi;
матричный принтер - около 150 dpi (в режиме повышенного качества);
струйный принтер - 300 dpi и более;
лазерный принтер - 300 dpi, 600 dpi и более;
фотонаборный аппарат - 1200 dpi и выше.
Цвет пикселов кодируется следующим образом. В простейшем случае каждый пиксел может быть или черным, или белым. Значит, для его кодирования достаточно одного бита. Однако, в этом случае полутона приходится имитировать, чередуя черные и белые пикселы (примерно так формируют полутоновое изображение на принтерах и при типографской печати). Чтобы получить реальные полутона, для хранения каждого пиксела нужно отводить большее количество разрядов. В этом случае черный цвет по-прежнему будет представлен нулем, а белый - максимально возможным числом. Например, при восьмибитном кодировании получится 256 разных значений яркости - 256 полутонов.
Сложнее обстоит дело с цветными изображениями. Ведь здесь нужно закодировать не только яркость, но и оттенок пиксела. Изображение на мониторе формируется путем сложения в различных пропорциях трех основных цветов: красного, зеленого и синего (цветовая модель RGB). Таким образом, просто нужно хранить информацию о яркости каждой из этих составляющих.
Для получения наивысшей точности цветопередачи достаточно иметь по 256 значений для каждого из основных цветов (вместе это дает 2563- более 16 миллионов оттенков). Во многих случаях можно обойтись несколько меньшей точностью цветопередачи. Если использовать для представления каждой составляющей по 5 бит (а тогда для хранения данных пиксела будет нужно не 3, а 2 байта), удастся закодировать 32768 оттенков.
Естественно, на практике встречаются (и нередко) ситуации, когда нам гораздо важнее не идеальная точность, а минимальный размер файла; бывают и изображения, где изначально используется небольшое количество цветов. В таких случаях поступают вот как: собирают все нужные оттенки в таблицу и нумеруют их, после чего хранят уже не полный код цвета каждого пиксела, а номера цветов в таблице (индексы). Чаще всего используют 256-цветные таблицы. Поскольку в разных компьютерах могут быть приняты разные стандартные таблицы цветов, не исключено, что, открыв полученный от кого-нибудь графический файл, вы увидите совершенно немыслимую картинку.
Кстати, именно поэтому при создании страниц в Web стараются использовать так называемую "безопасную палитру" Netscape, включающую 216 цветов, правильно отображаемых в разных системах.
При печати на бумаге используется несколько иная цветовая модель: если монитор испускал свет, оттенок получался в результате сложения цветов, то краски - поглощают свет, цвета вычитаются. Поэтому в качестве основных используют голубую, сиреневую и желтую краски. Кроме того, из-за неидеальности красителей, к ним обычно добавляют четвертую – черную (цветовая модель CMYK). Для хранения информации о каждой краске и в этом случае чаще всего используется 1 байт.
Нужно отметить, что цветовая модель - не единственное отличие принтера и монитора. При печати в большинстве случаев нет возможности изменять яркость точки. Поэтому разные оттенки приходится имитировать, с помощью растрирования: изображение разбивают на квадратики и, в зависимости от необходимого отенка, в большей или меньшей степени заполняют эту "растровую точку" точками краски. В результате реальное разрешение напечатанной фотографии (его измеряют в "линиях на дюйм" - lpi - и называют линиатурой) оказывается гораздо ниже, чем значение разрешения в dpi, указанное в паспорте принтера.
Растровые изображения очень хорошо передают реальные образы. Они замечательно подходят для фотографий, картин и в других случаях, когда требуется максимальная "естественность". Такие изображения легко выводить на монитор или принтер, поскольку эти устройства тоже основаны на растровом принципе. Однако, есть у них и ряд недостатков. Растровое изображение высокого качества (с высоким разрешением и большой глубиной цвета) может занимать десятки, и даже сотни мегабайт памяти. Для обработки их нужны мощные компьютеры (но и они нередко "задумываются" на десятки минут). Любое изменение размеров неизбежно приводит к ухудшению качества: при увеличении пикселы не могут появиться "из ничего", при уменьшении - часть пикселов будет просто выброшена.
|