Содержание урока:
24.1. Компьютерная графика и её виды
24.2. Форматы графических файлов
Формат графического файла — это способ представления графических данных на внешнем носителе.
Различают растровые и векторные форматы графических файлов. Среди них, в свою очередь, выделяют собственные (оригинальные) форматы графических приложений и универсальные графические форматы, которые «понимаются» всеми приложениями, работающими с растровой (векторной) графикой.
Для всех растровых форматов общей проблемой является большой объём данных. Для её решения применяют различные методы сжатия данных.
Под сжатием (упаковкой, компрессией) данных понимается применение алгоритмов преобразования данных, производимое с целью уменьшения их объёма. Обратная процедура называется восстановлением данных (распаковкой, декомпрессией).
Различают две основные группы:
• методы сжатия без потерь, позволяющие восстановить исходные данные без каких-либо изменений;
• методы сжатия с потерями, восстанавливающие данные с отличиями, допустимыми с точки зрения дальнейшего их использования.
BMP (от англ. Bit МаР image — битовая карта изображения). В этом формате можно хранить только однослойные растры. На каждый пиксель в разных типах файлов может приходиться разное количество бит (глубина цвета): 1, 2, 4, 8, 16, 24, 32, 48 и 64. Изображения в этом универсальном формате в большинстве случаев хранятся в файлах попиксельно, без сжатия, потому размеры таких файлов достаточно большие.
Сколько бит может приходиться на глубину цвета в файлах с расширением bmp, созданных в графическом редакторе Paint?
Для глубины цвета 4 и 8 бит формат BMP допускает RLE- кодирование, которое может уменьшить размер файлов.
Алгоритм RLE (от англ. Run Length Encoding — кодирование длин серий) — один из простейших методов сжатия изображений. Его основной идеей является поиск цепочек одинаковых элементов и замена их на пары «число повторений — значение», что в определённых случаях существенно уменьшает избыточность данных.
Например, состоящая из 39 символов строка AAAAAABBCCCCCCCDEEEEEEAAAAAAAAAAAAAAAAA
будет закодирована следующим образом: 6A2B7C1D6E17A. Полученная последовательность состоит из 13 символов. Данные оказались сжаты в 39/13 = 3 раза.
Алгоритм в первую очередь рассчитан на изображения с большими областями одного цвета (деловая графика, схемы, рисунки и т. п.). При его использовании в других ситуациях (например, при сохранении цветных фотографий) вместо уменьшения размера файла может происходить его увеличение.
Возьмём строку, в которой нет большого количества цепочек одинаковых элементов и достаточно часто встречаются символы, идущие без повторов: ABCDBCABCDDDFFFFFF. После сжатия методом RLE она будет выглядеть так: 1A1B1C1D1B1C1A1B1C3D6F. Исходная строка состоит из 18 символов, а результат сжатия — из 22. Размер данных увеличился в 22/18 ≈ 1,22 раза.
Рассмотрим внимательно исходную строку: среди её первых девяти элементов нет цепочек из идущих подряд одинаковых символов (ABCDBCABC), затем записаны 3 символа «D» и наконец — 6 символов «F». Если для записи длины цепочки идущих подряд одинаковых символов использовать положительные числа, а для записи количества следующих друг за другом различных символов использовать отрицательные числа, то можно записать: -9ABCDBCABC3D6F.
Исходная строка состоит из 18 символов, а сжатая — из 15. Размер данных уменьшился в 18/15 = 1,2 раза.
Для сжатия сложных изображений зачастую применяется алгоритм словарей или алгоритм LZW — Лемпеля-Зива-Велча, названный так по именам его разработчиков Авраама Лемпеля, Якоба Зива и Терри Велча. В его основе лежит идея замены наиболее часто встречающихся последовательностей в исходном потоке данных ссылками на «образцы», хранящиеся в специально создаваемой таблице (словаре).
Этот способ активно применяется при сжатии самых разных данных, в том числе и графических. Такой способ сжатия применяется в графических форматах GIF, PNG, TIFF. Рассмотрим эти форматы подробнее.
GIF (от англ. Graphics Interchange Format — формат обмена графикой) обладает высокой степенью сжатия, дающей возможность уменьшить размеры файлов в несколько раз. Этот формат предназначен для хранения статичных и анимированных изображений, которые содержат до 256 цветов (например, рисованные иллюстрации). GIF-анимация представляет собой последовательность из нескольких статичных кадров, а также информацию о том, сколько времени каждый кадр должен быть показан на экране. В цикличных анимациях вслед за последним кадром начинается воспроизведение первого кадра и т. д. Долгое время GIF был одним из наиболее распространённых форматов в Интернете. Стандартное расширение имён файлов данного типа — gif.
PNG (от англ. Portable Network Graphic — портативная сетевая графика) — универсальный формат графических файлов, специально спроектированный для замены устаревшего и более простого формата GIF. Формат PNG имеет высокую степень сжатия данных без потерь и предназначен, прежде всего, для применения в сетевых приложениях. Он даёт возможность использовать гораздо больше цветов, чем формат GIF, поэтому может использоваться и для редактирования графики. Стандартное расширение имён файлов данного типа — png.
TIFF (от англ. Tagged Image File Format — формат файла размеченного изображения). Большая глубина цвета в файлах этого формата позволяет хранить изображение с высоким качеством. Поэтому формат широко используется при сканировании изображений, отправке факсов, распознавании текста, в полиграфии, широко поддерживается графическими приложениями. Но, как и файлы формата bmp, файлы этого формата имеют большие размеры. Стандартное расширение имён файлов — tif или tiff.
Как известно, в фотоизображениях практически не встречаются точно повторяющиеся последовательности точек. Поэтому рассмотренные выше форматы и используемые в них алгоритмы сжатия малопригодны для хранения такого рода изображений.
Для решения этой проблемы группой специалистов был разработан специальный формат и способ сжатия, получивший название JPEG (от англ. Joint Photographic Expert Group — объединённая группа экспертов в области фотографии).
Алгоритм JPEG подразумевает сжатие с потерей качества, основанное на особенностях человеческого зрения (небольшие изменения цвета слабо распознаются глазом человека — это позволяет удалять часть информации о цвете). Его достоинство в том, что «силу» сжатия можно указать изначально и таким образом найти компромисс между качеством и объёмом изображения. Алгоритм JPEG — один из базовых алгоритмов сжатия изображений. Его широкое распространение позволило резко расширить возможности и сферу применения цифровых методов обработки изображения. Данный формат целесообразно использовать для хранения многоцветных изображений с плавными переходами между цветами, где потеря качества малозаметна. Для файлов этого формата стандартное расширение — jpg или jpeg.
В векторной графике почти каждый векторный графический редактор использует свой собственный формат хранения изображений.
WMF (от англ. Windows MetaFile — метафайл Windows) — универсальный формат для программ, которые работают в ОС Windows. Используется для хранения коллекции графических изображений Microsoft Clip Gallery. Возможные расширения имён файлов — wmf, emf, wmz, emz.
CGM (от англ. Computer Graphic Metafile — метафайл компьютерной графики) — используется для представления графических объектов, преимущественно, в конструкторских, авиационных и других технических областях. Стандартное расширение имён файлов — cgm.
SVG (от англ. Scalable Vector Graphics — масштабируемая векторная графика) — универсальный формат, который даёт возможность с высоким качеством хранить в файле текст, графическое изображение и анимацию. Широкое применение получил в инженерной графике и при разработке веб-сайтов. Стандартное расширение имён файлов — svg.
CDR (от англ. CorelDRaw files — файлы CorelDraw) — собственный формат файлов векторного графического редактора CorelDraw. Изображение в файле может иметь несколько страниц, даёт возможность хранить не только векторную графику, но и текст, и растровые изображения. Файлы данного формата могут иметь расширение имени cdr или cdt.
AI (от англ. Adobe Illustrator files — файлы Adobe Illustrator) — собственный формат файлов редактора векторной графики Adobe Illustrator.
Совместимость форматов векторной графики очень низкая. Сложность преобразования данных из одного векторного формата в другой заключается в использовании разными программами разных алгоритмов построения графических примитивов.
Среди всего разнообразия форматов нет того идеального, который бы удовлетворял всем возможным требованиям пользователей. Поэтому графические редакторы предоставляют пользователю возможность самостоятельно выбирать формат файла, в котором будет сохранено изображение, в зависимости от целей работы с ним и последующего использования. Вот только некоторые рекомендации, которые могут вам пригодиться:
• записывать изображение в формате, использующем сжатие с потерями, следует только после окончания редактирования, т. к. многие манипуляции с изображением могут умножить дефекты сжатия;
• если вы собираетесь работать с графическим изображением только в одном графическом редакторе, целесообразно выбрать тот формат, который редактор предлагает по умолчанию. Если же последующая обработка данных предполагается в разных программах, стоит использовать один из универсальных форматов;
• для файлов, которые передаются по сети Интернет, очень важен небольшой размер, поскольку от этого зависит время передачи данных. Основной недостаток цифровых растровых изображений — их большой размер. Поэтому растровые фотографии и рисунки сохраняются в сжатом виде в различных графических форматах. Выбор формата зависит от типа изображения и способа его использования. Для размещения полноцветных фотографий в Интернете оптимальным является формат jpeg, а для чертежей, символьных и текстовых структур больше подходят форматы png или gif.