Глубина цвета
До сих пор, говоря о переводе изображений в цифровую форму, мы не касались способа кодировки цвета, отделываясь замечанием о том, что компьютер "запоминает цвета". В действительности вопрос кодирования принципиально важен и требует более подробного рассмотрения. Способ кодирования информации о цвете и количество этой информации напрямую определяют место, требующееся на хранение изображений, и скорость их обработки. Максимальное количество цветов, которое может быть использовано в изображении данного типа, получило название глубина цвета.
Самый простой случай это монохромное или черно-белое изображение (bitmap). Поскольку каждая точка изображения может иметь только два цвета, для кодирования цветовой информации хватит одного бита. Зная это, нетрудно рассчитать, сколько места требуется для хранения любого изображения такого типа. Например, если размер изображения 800х600 пикселов, то оно займет в памяти 800 пикселовхбОО пикселовх! бит = 480 000 бит = = 58,6 Кбайт.
Бит — наименьшая из единиц измерения количества информации, которая может принимать всего 21 =2 значения или состояния (да/нет, 1/0, черное/белое и т. п.). Восемь битов составляют один байт. Байтом можно закодировать 28 = 256 состояний. Десятичные приставки, используемые для этих единиц, несколько отличаются от традиционных. В килобайте (Кбайт, Кб) 1024 байта, а в мегабайте (Мбайт, Мб) — 1024 Кбайт, или 1 048 576 байтов.
Этот самый экономный тип изображений прекрасно подходит для штриховых иллюстраций, чертежей, гравюр, простых логотипов и т. п. Изображения этого типа можно получить непосредственно сканируя изображения в режиме Black and White или Line Art (в программном обеспечении различных сканеров этот режим называется по-разному). Глубина цвета монохромных изображений равна 2.
Изображения, состоящие из оттенков серого цвета, соответствуют полутоновым изображениям. Каждая точка полутонового изображения может иметь один из 256 оттенков серого: от черного (0) до белого (255). Нетрудно догадаться, что для хранения информации об одной точке при этом требуется ровно 1 байт памяти компьютера. Таким образом, изображение займет в восемь раз больше места в памяти, чем монохромное. Если вновь обратиться к нашему примеру с изображением 800х600 пикселов, то полутоновое изображение этого размера займет 468,4 Кбайт.
Полутоновые изображения широко используются для хранения черно-белых (в традиционном, фотографическом смысле) фотографий и в тех случаях, когда без других цветов можно обойтись. Приведенный простой расчет показывает, что использование полутонового типа для хранения штриховых изображений не увеличит их качества, а приведет к пустой трате времени и памяти компьютера. Глубина цвета полутоновых изображений равна 256.
Для полноцветных изображений требуется еще больше ресурсов. Как уже отмечалось в главе 4, цвета в компьютерных программах задаются указанием количества базовых цветовых компонентов для конкретной цветовой модели. Это справедливо и для точечных изображений. Они, как правило, могут быть созданы и сохранены в одной из трех цветовых моделей: RGB, Lab и CMYK. CorelXARA может импортировать изображения в любой из этих моделей. Полноцветное изображение состоит из цветовых каналов, соответствующих базовым цветам модели изображения. Канал представляет собой полутоновое изображение, яркость пикселов которого равна количеству соответствующего базового цвета в изображении. Например, если пиксел цветного изображения имеет оранжевый цвет R=255, G=128, B=0, то соответствующий пиксел в красном канале будет белым (255), в зеленом канале 50% серым (128), а в синем — черным (0).
Объем памяти, занимаемой полноцветным изображением, зависит от количества каналов, которое оно содержит. Изображения RGB и Lab содержат по три канала, каждый из которых является полутоновым, т. е. восьмибитным, изображением. Следовательно, такие изображения занимают в три раза больше места в памяти, чем полутоновые того же размера. Изображения CMYK имеют четыре канала, и занимаемая ими память в четыре раза больше, чем память, требующаяся для полутоновых изображений того же размера. Например, изображение RGB размером 800х600 пикселов будет занимать 1,37 Мбайт, а изображение CMYK — 1,83 Мбайт. Поскольку каждый пиксел такого изображения описывается 8х3 = 24 битами, глубина цвета составит 224 = 16,8 млн цветов.
Изображения всех основных типов широко используются при изготовлении оригинал-макетов, предназначенных для тиражирования любыми способами. Кроме перечисленных, существует еще один тип цветных изображений, который до недавнего времени имел сугубо историческое значение. До широкого распространения видеоадаптеров с большим объемом видеопамяти и мониторов SVGA, большинство компьютеров были способны одновременно отображать на экране не более 256 цветов. Более старые мониторы ограничивали это количество до 64 или 16. Наиболее рациональным способом кодировки в таких условиях являлось их индексирование. Идея кодирования состояла в том, что каждому из цветов изображения присваивался порядковый номер, который использовался для описания всех пикселов изображения, имеющих этот цвет. Поскольку для разных изображений оптимален разный набор цветов, этот набор хранился в памяти компьютера вместе с изображением. Набор цветов, использованных в изображении, получил название палитры, а способ кодирования цвета — индексированный цвет (indexed color).
Объем памяти, занимаемый индексированным изображением, зависит от количества цветов в его палитре. Так, для описания 256 цветов требуется 1 байт (восемь битов), для 64 цветов нужно 6 битов, для 16 цветов — 4 бита, и т. д. В худшем случае, для изображения с палитрой из 256 цветов, требуется столько же памяти, сколько и для полутонового. Очевидно, что глубина цвета индексированных изображений совпадает с размером их палитры.
Столь низкое ограничение на количество отображаемых цветов вызвало появление различных способов имитации отсутствующих в палитре цветов за счет имеющихся. Например, расположив рядом пикселы более темного и более светлого оттенков одного цвета, можно передать отсутствующий промежуточный цвет. Это всего лишь один из многочисленных и, порой весьма сложных, приемов сглаживания (dithering) индексированных цветов.
С развитием компьютерных видеосистем индексированные цвета перестали использоваться столь широко. Даже современные офисные компьютеры способны отображать на экране 65536 (режим High Color) или 16,8 млн цветов (режим True Color). Тем не менее, для индексированных изображений нашлась своя экологическая ниша — World Wide Web. Подробное рассмотрение подготовки графики для Internet мы отложим до главы 10, а сейчас перейдем к форматам графических файлов.