Владимир Вуль - Электронные издания
С точки зрения живописности и реалистичности изображения векторная графика имеет весьма ограниченные возможности, поэтому в издательском деле шире используется растровое представление. В случае применения векторной графики определенные трудности возникают и с автоматизацией ввода графического изображения в компьютер или оцифровкой изображения. Сканеры, цифровые фото– и видеокамеры хранят оцифрованное изображение в растровых форматах.
Точечная или растровая графика исторически стала применяться гораздо раньше векторной. К ней можно отнести художественные изображения мозаичного типа: смальта, мозаика и даже вышивка. Таким образом, к растровой графике относят изображения, полученные из мельчайших отдельных элементов, каждый из которых неделим и характеризуется постоянством тона на всем своем протяжении. Такие элементы принято называть пикселами (это понятие мы уже упоминали во 2-ой главе). Каждый такой пиксел формально независим от соседних пикселов, т. е. может иметь различные характеристики: яркость, цветовой тон, насыщенность цвета и прочее.
К достоинствам точечной графики можно отнести следующие факторы:
1. Простота и легкость ввода (оцифровки) изображений.
2. Удобство технической реализации вывода информации (на монитор, лазерный или струйный принтер и так далее).
3. Реалистичность изображения.
4. Возможность получения тонких живописных эффектов, таких как туман, тонкие цветовые переходы и нюансы цвета, перспектива изображения, размытость и нерезкость и пр.
Однако и недостатки точечной графики существенны. К основным из них относятся:
1. Необходимость точных установок параметров до начала создания графического изображения. Следует задать количество точек на единицу длины изображения, размер изображения по каждой координате, а также глубину цвета – количество бит для представления каждого отдельного пиксела.
1. Большой информационный объем получаемого графического файла, который определяется произведением трех величин: площади изображения, разрешающей способности и глубины цвета в согласованных единицах измерения. Например, максимальное разрешение в пакете PhotoShop составляет 10000 пиксел на дюйм при максимальном значении 30000 пикселов по каждой координате, чему соответствуют размеры файлов до нескольких сотен Мбайт.
3. Неизбежное появление искажений при трансформациях изображения, т. е. когда при повороте и других трансформациях изображения, входящие в его состав горизонтальные и вертикальные линии превращаются в ступенчатые.
Важной характеристикой любого изображения, в частности растрового, является глубина цвета. Самое простое изображение использует 2 уровня серого, т. е. черный и белый цвета. На цветовое описание элемента такого изображения (пиксела) требуется лишь 1 бит. Следующий вариант использует множество уровней серого, обычно 256, в результате чего каждый элемент изображения кодируется 1 байтом (28 = 256). Цветные изображения также могут быть различных типов.
В некоторых графических файлах используют так называемые индексированные цвета. В этом случае количество цветовых оттенков обычно не превышает 256, причем все они хранятся в самом графическом файле в виде палитры цветовых оттенков и каждый возможный цветовой тон в изображении соответствует одному из элементов этой палитры. Общее разнообразие или глубина цвета равна, как и в предыдущем случае, 8 битам или 1 байту. Кстати, индексированные цвета используются и в оболочке Windows в виде встроенной палитры цветов, с которой мы еще не раз встретимся в рамках данной книги.
Наконец, так называемое полноцветное изображение (True color) чаще всего работает в RGB-цветовом пространстве и использует 1 байт на каждый из 3-х основных цветовых компонент (красная, зеленая и синяя), т. е. общая глубина цвета равна 24 битам или 3 байтам. При таком представлении количество различных цветовых оттенков превышает 16 миллионов. В некоторых графических файлах используется даже 48-битная глубина цвета. В этом случае каждый основной цвет представляется 16 битами или 65576 различными уровнями, а общее число различных цветовых оттенков выражается фантастической величиной, превышающей 2,6×1014 .
RGB – это аббревиатура от Red, Green и Blue (красный, зеленый и красный). Цветовая модель RGB чаще всего используется для показа изображений на экране монитора или с помощью широкоформатных проекторов.
3.3.2. Сжатие графических данных
Для электронных изданий, зачастую распространяемых по сетям, объем занимаемый файлом представляет собой очень важную характеристику. Понятно поэтому стремление использовать векторные форматы или же специальные растровые форматы с внутренним сжатием информации для представления графических файлов. Кратко остановимся на методах и средствах сжатия изображений.
Существует 2 группы методов сжатия изображений: без потерь и с потерями. В первом случае при распаковке сжатого графического файла полностью восстанавливается вся исходная информация, в том числе, цветовой оттенок каждого отдельного пиксела. Во втором же – часть информации теряется, т. е. изображение становится несколько менее качественным, некоторые мелкие его детали утрачиваются. Во многих случаях это вполне допустимо, так как человеческий глаз различает, в лучшем случае, лишь несколько тысяч оттенков цвета. Кроме того, он не реагирует на мелкие детали изображения (разрешение глаза близко к одной угловой минуте, откуда при нормальном расстоянии до изображения в 25—30 см можно подсчитать величину линейного разрешения глаза, которая близка к 90—100 мкм).
Большинство методов сжатия без потерь основано на варианте группового кодирования RLE (Run-Length Encoding). Идея такого метода заключается в том, что последовательности повторяющихся значений заменяются на пару чисел, первое из которых дает количество повторяющихся значений, а второе – само это значение. В описаниях многоцветных изображений очень часто соседние пикселы характеризуются одними и теми же тоновыми и цветовыми характеристиками, что и обеспечивает эффективность такого сжатия [29].
Схема сжатия без потерь Лемпела-Зива-Велча (LZW) в последние годы используется все шире и шире. Она позволяет работать с данными любого типа, обеспечивая достаточно быстрое сжатие и распаковку данных. Этот алгоритм называют алгоритмом подстановок или алгоритмом сжатия словарного типа. На основе входного потока данных алгоритм формирует словарь данных (его также называют переводной таблицей или таблицей строк). Образцы новых данных сравниваются с записями словаря. Если они там не представлены, то создается новая кодовая фраза. Если строка повторно встречается во входном потоке, то в выходной поток записывается ссылка на соответствующую строку словаря, которая имеет меньшую величину, чем исходный фрагмент данных. Так реализуется сжатие информации.
Декодирование LZW-данных производится в обратном порядке. Декомпрессор читает код из потока данных и, если этого кода еще нет в словаре, добавляет его туда. Затем этот код переводится в строку, которую он представляет, и заносится в выходной поток несжатых данных. Ряд графических форматов, в том числе и один из базовых – TIFF – используют в современных своих версиях встроенное LZW-сжатие. В частности, этот формат использован для представления рисунков в данной книге. Достоинством этого метода для графических файлов является хорошее сжатие данных для любой глубины представления цвета, начиная со штриховых и кончая полноцветными изображениями. В частности, такое сжатие успешно используется в формате GIF с индексированными цветами (глубина цвета 8 бит). Оба эти формата будут описаны в данном разделе.
В других случаях используется сжатие с регулируемой величиной потерь и переменным коэффициентом сжатия. Чем больше величина потерь, тем больше и коэффициент сжатия. Программа сжатия обычно делит все изображение на блоки размером 8 × 8 пикселов каждый: Уменьшение сжимаемого фрагмента позволяет уменьшить пропорционально квадрату его линейных размеров время обработки, т. е. деление на фрагменты эффективно увеличивает скорость преобразования. Далее к значениям пикселов применяется формула, называемая дискретным косинусным преобразованием. Оно преобразует матрицу пикселов в матрицу значений амплитуд пространственного спектра изображения.
Значения элементов полученной матрицы характеризуют различные составляющие спектра: левый верхний угол результирующей матрицы соответствует самым низким частотам пространственного спектра, а правый нижний – самым высоким. Коэффициент качества преобразования, введенный предварительно пользователем, используется при получении значений элементов матрицы квантования. Чем ниже коэффициент качества, тем большие будут значения у элементов последней матрицы. Далее каждый элемент матрицы амплитуд делится на соответствующий элемент матрицы квантования. Полученные в итоговой матрице значения округляются до ближайшего целого числа. В результате таких операций в правой нижней части итоговой матрицы будет тем больше нулевых элементов, чем ниже заданный пользователем коэффициент качества. Затем программа сжатия кодирует элементы последней матрицы, начиная от левого верхнего по строке до правого нижнего одним из методов кодирования без потерь, причем чем больше нулей в последней матрице, тем меньше окажется информационный объем сжатого файла. Величина коэффициента сжатия для этого метода изменяется в пределах от 10 до 100 в зависимости от заданного значения коэффициента качества.