© М.Е. Крекин, 1999, 2002
Глава 4 Два способа кодирования изображения
Эта глава посвящена растровому и векторному представлению графики.
§4.1
Как вы знаете, изображение на экране компьютера (или при печати с помощью принтера) составляется из маленьких "точек" -- пикселов. Их так много, и они настолько малы, что человеческий глаз воспринимает картинку как непрерывную. Естественно, качество изображения будет тем выше, чем "плотнее" расположены пикселы (т.е. чем больше разрешение устройства вывода), и чем точнее закодирован цвет каждого из них.
Разрешение обычно измеряют в "точках на дюйм" (dpi)8. Для разных устройств эта величина примерно следующая:
- монитор -- около 75 dpi;
- матричный принтер -- около 150 dpi (в режиме повышенного качества);
- струйный принтер -- 300 dpi и более;
- лазерный принтер -- 300 dpi, 600 dpi и более;
- фотонаборный аппарат -- 1200 dpi и выше.
Как кодируется цвет пикселов? В простейшем случае каждый пиксел может быть или черным, или белым. Значит, для его кодирования достаточно одного бита. Однако, в этом случае полутона приходится имитировать, чередуя черные и белые пикселы (заметим, что примерно так формируют полутоновое изображение на принтерах и при типографской печати). Чтобы получить реальные полутона, для хранения каждого пиксела нужно отводить большее количество разрядов. В этом случае черный цвет по прежнему будет представлен нулем, а белый -- максимально возможным числом. Например, при восьмибитном кодировании получится 256 разных значений яркости -- 256 полутонов.
Сложнее обстоит дело с цветными изображениями. Ведь здесь нужно закодировать не только яркость, но и оттенок пиксела. Изображение на мониторе формируется путем сложения в различных пропорциях трех основных цветов: красного, зеленого и синего9. Значит, нам просто нужно хранить информацию о яркости каждой из этих составляющих.
Для получения наивысшей точности цветопередачи достаточно иметь по 256 значений для каждого из основных цветов (вместе это дает 2563 -- более 16 миллионов оттенков)10. Во многих случаях можно обойтись несколько меньшей точностью цветопередачи. Если использовать для представления каждой составляющей по 5 бит (а тогда для хранения данных пиксела будет нужно не 3, а 2 байта), удастся закодировать 32768 оттенков11.
Естественно, на практике встречаются (и нередко) ситуации, когда нам гораздо важнее не идеальная точность, а минимальный размер файла; бывают и изображения, где изначально используется небольшое количество цветов. В таких случаях поступают вот как: собирают все нужные оттенки в таблицу и нумеруют их, после чего хранят уже не полный код цвета каждого пиксела, а номера цветов в таблице (индексы)12. Чаще всего используют 256-цветные таблицы. Поскольку в разных компьютерах могут быть приняты разные стандартные таблицы цветов, не исключено, что открыв полученный от кого-нибудь графический файл, вы увидите совершенно немыслимую картинку.
Кстати, именно поэтому при создании страниц в Web стараются использовать так называемую "безопасную палитру" Netscape, включающую 216 цветов, правильно отображаемых в разных системах.
|
При печати на бумаге используется несколько иная цветовая модель: если монитор испускал свет, оттенок получался в результате сложения цветов, то краски -- поглощают свет, цвета вычитаются. Поэтому в качестве основных используют голубую, сиреневую и желтую краски. Кроме того, из-за неидеальности красителей, к ним обычно добавляют четвертую -- черную13. Для хранения информации о каждой краске и в этом случае чаще всего используется 1 байт.
Нужно отметить, что цветовая модель -- не единственное отличие принтера и монитора. При печати в большинстве случаев нет возможности изменять яркость точки. Поэтому разные оттенки приходится имитировать, с помощью растрирования: изображение разбивают на квадратики и, в зависимости от необходимого отенка, в большей или меньшей степени заполняют эту "растровую точку" точками краски. В результате реальное разрешение напечатанной фотографии (его измеряют в "линиях на дюйм" -- lpi -- и называют линиатурой) оказывается гораздо ниже, чем значение разрешения в dpi, указанное в паспорте принтера.
Контрольные вопросы
- От каких характеристик изображения (при одном и том же его размере в миллиметрах) зависит объем занимаемой им памяти?
- Определите, сколько памяти будет занимать изображение размером 800х600 пиксел при различной глубине цвета (для моделей RGB и CMYK).
Примечания
- Dot Per Inch. 1 дюйм = 25,4 мм
- RGB = Red-Green-Blue
- True color (англ.) -- истинный цвет
- High color (англ.) -- высококачественный цвет
- Indexed color (англ.) -- индексированный (табличный) цвет
- CMYK = Cyan-Magenta-Yellow-blacK
|