4.3. Форматы графических и геометрических файлов
Обмен оригинальными файлами моделей в форматах DWG может быть непрактичным по ряду причин. Одна из них — это защита интеллектуальной собственности. Любой, кто получит файл в собственном формате программ (AutoCAD, Autodesk Inventor и т. п.), может изменить данные в нем или несанкционированно использовать их в своей разработке. Кроме того, стоимость программ типа AutoCAD, Autodesk Inventor, плата за установку этих программ и обучение каждого сотрудника работе с такими сложными приложениями может быть очень высокой. Использование DWF-формата помогает избежать этих трудностей. DWF-файлы занимают меньший объем, их быстрее и безопаснее распространять, чем DWG-файлы. В то же время в них полностью представлена вся проектная графическая информация. Пользователи САПР могут выполнять публикацию чертежей, карт или других графических моделей в DWF-формат. Лица, просматривающие DWF-файлы, всегда четко видят предназначенную для них информацию. Кроме того, DWF-формат поддерживает публикацию многолистовых наборов чертежей и упрощает просмотр и печать таких наборов. Компания Autodesk предоставляет набор функций для чтения и записи файлов в DWF-формате. Например, функции из набора DWF 6 Toolkit позволяют работать с многолистовыми DWF-файлами.
4.3.2. Форматы растровых данных
Растровый формат представляет собой прямоугольную матрицу (bitmap), разделенную на пикселы. Различают два типа растровых файлов: предназначенные для вывода на экран и для печати.
Разрешение файлов таких форматов, как GIF, JPEG, BMP, зависит от видеосистемы компьютера. Растровые форматы, предназначенные исключительно для вывода на экран, имеют только экранное разрешение, т. е. один пиксел в файле соответствует одному экранному пикселу. На печать они выводятся с экранным разрешением.
Растровые файлы, предназначенные для допечатной подготовки изданий, имеют подобно большинству векторных форматов параметр Print Size — размер для вывода на печать. С ним связано понятие печатного разрешения, которое представляет собой соотношение количества пикселов на один квадратный дюйм страницы (ppi, pixels per inch или dpi — dots per inch). Печатное разрешение бывает от 130 (газеты) до 300 dpi (высококачественная печать).
Конкретные растровые форматы отличаются друг от друга способностью нести дополнительную информацию: различные цветовые модели, векторы, альфа-каналы или каналы платковых (вро^-цветов, слои различных типов, анимацию, возможности сжатия и многое другое.
Формат BMP (Windows Device Independent Bitmap) — это формат Windows. Он поддерживается всеми графическими редакторами, работающими под управлением этой операционной системы. Применяется для хранения растровых изображений, предназначенных для использования в Windows и, по сути, боль-
4. Методы, алгоритмы и форматы файлов компьютерной графики
ше ни на что не пригоден. Способен хранить как индексированный (до 256 цветов), так и RGB-цвет (16 700 000 оттенков). Формат BMP используется только в Windows.
Формат GIF (CompuServe Graphics Interchange Format) — не зависящий от аппаратного обеспечения способ представления растровых данных, разработанный в 1987 г. (GIF87a) фирмой CompuServe. В 1989 г. формат был модифицирован (GIF89a), в него были добавлены поддержка прозрачности и анимации. GIF использует LZW-компрессию, что позволяет хорошо сжимать файлы, в которых много однородных заливок (логотипы, надписи, схемы).
Метод сжатия LZW (Lempel—Ziv—Welch), разработанный израильтянами Лемпелом и Зивом в 1978 г., позднее был доработан в США. Этод метод сжимает данные путем поиска одинаковых последовательностей (они называются фразы) во всем файле. Выявленные последовательности сохраняются в таблице, им присваиваются более короткие маркеры (ключи). Так, если в изображении имеются наборы из розового, оранжевого и зеленого пикселов, повторяющиеся 50 раз, LZW выявляет это, присваивает данному набору отдельное число (например, 7) и затем сохраняет эти данные 50 раз в виде числа 7. Метод сжатия LZW лучше действует на участках однородных, свободных от шума цветов, при сжатии произвольных графических данных, но процесс кодирования и распаковки происходит медленно.
Формат GIF позволяет записывать изображение через строчку (Interlaced), благодаря чему имея только часть файла, можно увидеть изображение целиком, но с меньшим разрешением. Это достигается за счет записи, а затем подгрузки, сначала 1, 5, 10 и т. д. строчек пикселов и растягивания данных между ними, вторым проходом следуют 2, 6, 11 строчки, разрешение изображения в интернетовском браузере увеличивается. Таким образом, задолго до окончания загрузки файла пользователь может понять, что внутри, и решить, стоит ли ждать, когда загрузится весь файл.
В формате GIF можно назначить один или более цветов прозрачными, они станут невидимыми в интернетовских браузерах и некоторых других программах. Прозрачность обеспечивается за счет дополнительного alpha-канала, сохраняемого вместе с файлом. Кроме того, файл GIF может содержать не одну, а несколько растровых картинок, которые браузеры могут подгружать одну за другой с указанной в файле частотой. Так достигается иллюзия движения (GIFанимация).
Основное ограничение формата GIF состоит в том, что цветное изображение может быть записано только в режиме 256 цветов. В ряде случаев этого недостаточно.
Формат JPEG (Joint Photographic Experts Group) — один из самых распространенных растровых форматов. Строго говоря, JPEG называется не формат, а алгоритм сжатия, основанный не на поиске одинаковых элементов, как в LZW, a на разнице между пикселами. Кодирование данных происходит в несколько этапов. Сначала графические данные конвертируются в цветовое пространство
4.3. Форматы графических и геометрических файлов
LAB, затем отбрасывается половина или три четверти информации о цвете (в зависимости от реализации алгоритма). Далее анализируются блоки 8 x 8 пикселов. Для каждого блока формируется набор чисел. Первые несколько чисел представляют цвет блока в целом, в то время как последующие числа отражают тонкие делали. Спектр деталей базируется на зрительном восприятии человека, поэтому крупные детали более заметны. На следующем этапе в зависимости от выбранного уровня качества отбрасывается определенная часть чисел, представляющих тонкие детали. На последнем этапе используется кодирование методом Хаффмана для более эффективного сжатия конечных данных. Восстановление данных происходит в обратном порядке.
Цветовое пространство LAB представляет цвет в трех каналах: один канал выделен для значений яркости (L — Lightnes) и два других для цветовой информации (А и В). Цветовые каналы соответствуют шкале, а не какому-нибудь одному цвету. Канал А представляет непрерывный спектр от зеленого до красного, канал В — от синего до желтого. Средние значения для каналов Аи В соответствуют реальным оттенкам серого.
Метод сжатия Хаффмана (Huffman), разработанный в 1952 г., используется как составная часть в ряде других схем сжатия, таких как LZW, JPEG. В методе Хаффмана, чтобы определить частоту каждого символа, анализируется набор символов. Затем для наиболее часто встречающихся символов используется представление в виде минимально возможного количества битов. Например, буква «е» чаще всего встречается в английских текстах. Используя кодировку Хаффмана, можно представить букву «е» всего лишь двумя битами (1 и 0) вместо восьми битов, необходимых для представления буквы «е» в кодировке ASCII.
Таким образом, чем выше уровень компрессии, тем больше данных отбрасывается, тем ниже качество. Используя JPEG, можно получить файл в 500 раз меньше, чем BMP. Формат аппаратно независим, полностью поддерживается на PC и Macintosh, однако он относительно нов и не понимается старыми программами (до 1995 г.). JPEG не поддерживает индексированные палитры цветов. Первоначально в спецификациях формата не было и CMYK, фирма Adobe добавила поддержку цветоделения, однако поддержка CMYK JPEG во многих программах имеет проблемы. Лучшим решением является использование JPEGсжатия в Photoshop EPS-файлах фирмы Adobe, которое описывается ниже.
Существуют подформаты JPEG. Например, JPEG Baseline Optimized разработан специально для Интернет, его поддерживают все основные браузеры.
Формат JPEG лучше сжимает растровые картинки фотографического качества, чем логотипы или схемы — в них больше полутоновых переходов, среди однотонных заливок же появляются нежелательные помехи. Лучше сжимаются и с меньшими потерями большие изображения для Web или изображения с высоким разрешением (200-300 и более dpi), чем с низким (72-150 dpi), поскольку в каждом квадрате 8x8 пикселов переходы получаются более мягкие за счет того, что их (квадратов) в таких файлах больше. Нежелательно сохранять с JPEG-сжатием изображения, в которых важны все особеннности цветопередачи,
4. Методы, алгоритмы и форматы файлов компьютерной графики
так как во время сжатия происходит отбрасывание части цветовой информации. В JPEG следует сохранять только конечный вариант работы, потому что каждое дополнительное сохранение приводит ко все новым потерям (отбрасыванию) цветовых данных.
Формат PNG (Portable Network Graphics) — относительно новый формат, призванный заменить устаревший формат GIF. Этот формат использует сжатие без потерь (Deflate), сходное с LZW. Сжатые индексированные PNG-файлы, как правило, меньше аналогичных GIF-файлов, RGB PNG-файлы меньше соответствующих файлов в формате TIFF, рассматриваемом далее.
Глубина цвета может быть любой до 48 бит. Используется двухмерная запись изображения через строчку (interlacing не только строк, но и столбцов), который так же, как и в формате GIF, увеличивает размер файла. В отличие от формата GIF, где прозрачность либо есть, либо нет, формат PNG поддерживает также полупрозрачные пикселы, т. е. в диапазоне прозрачности от 0 до 99 %, за счет альфа-канала с 256 градациями серого.
В файл формата PNG записывается информация о гамма-коррекции. Поскольку гамма-коррекция — это некое число, характеризующее зависимость яркости свечения экрана монитора от напряжения на электродах кинескопа, то это число, считанное из файла, позволяет ввести поправку яркости при отображении. Оно необходимо для того, чтобы изображение выглядело одинаково на разных графических аппаратных средствах. Таким образом, гамма-коррекция помогает реализации основной цели передачи изображений в Интернет — одинакового отображения информации независимо от аппаратуры пользователя.
Формат TIFF (Tagged Image File Format) — аппаратно независимый формат, на сегодняшний день является одним из самых распространенных и надежных, его поддерживают практически все программы, так или иначе связанные с графикой. TIFF является лучшим форматом для импорта растровой графики в векторные графические программы и издательские системы. Ему доступен весь диапазон цветовых моделей от монохромной до RGB, CMYK и дополнительных цветов Pantone. TIFF может сохранять обтравочные контуры, альфа-каналы, другие дополнительные данные. В формате TIFF может быть использовано LZWсжатие.
4.3.3. Язык Adobe PostScript
Язык PostScript — средство описания страниц фирмы Adobe. Был создан в 1980-х годах для реализации принципа WYSIWYG (What You See is What You Get— что ты видишь, то ты и получаешь). Файлы этого формата фактически представляют из себя программу с командами для вывода на печать. Они имеют расширение .ps или, реже, .ргп и получаются с помощью функции Print to file графических программ при использовании драйвера PostScript-принтера. Такие файлы содержат в себе сам документ (только то, что располагалось на страницах), все связанные файлы (как растровые, так и векторные), использованные шрифты, а
4.3. Форматы графических и геометрических файлов
также другую информацию: цветоделение, полутоновые растры, линиатуру растра и другие данные для устройства вывода на печать. Если файл закрыт правильно, то не имеет значения, на какой платформе он делался, какие были использованы шрифты и т. п.
Растровые данные, как правило, записываются в двоичной кодировке (Binary). Бинарный код занимает вдвое меньше места, чем ASCII. Это относится ко всем форматам, основанным на языке PostScript: EPS и PDF, которые описываются далее.
Формат EPS (Encapsulated PostScript) можно назвать самым надежным и универсальным способом хранения данных. Он использует упрощенную версию PostScript: не может содержать в одном файле более одной страницы, не сохраняет ряд установок для принтера. Как и в файлы печати PostScript, в EPS записывают конечный вариант работы, хотя такие программы, как Adobe Illustrator и Adobe Photoshop, могут использовать его как рабочий. EPS предназначен для передачи векторных и растровых данных в издательские системы и создается почти всеми программами, работающими с графикой. Использовать его имеет смысл только тогда, когда вывод осуществляется на PostScript-устройстве. EPS поддерживает все необходимые для качественной печати цветовые модели, среди них такая, как Duotone; этот формат содержит данные RGB, данные обтравочного контура, информацию о растрах, о внедренных шрифтах.
Вместе с файлом можно сохранить эскиз файла (image header, preview). Это копия низкого разрешения в формате PICT, TIFF, JPEG или WMF, которая сохраняется вместе с файлом EPS и позволяет увидеть общее содержимое файла. Такой эскиз выводится на печать на принтере, не поддерживающем PostScript.
Изначально EPS разрабатывался как векторный формат, позднее появилась его растровая разновидность — Photoshop EPS. Кроме типа эскиза (TIFF, PICT, JPEG) Photoshop EPS позволяет выбрать способ кодирования данных. Photoshop EPS позволяет сжимать растровые данные с помощью алгоритма JPEG. Adobe доработала этот способ сжатия. JPEG в исполнении Photoshop EPS поддерживает CMYK и сжимает лучше, чем JPEG, полностью соответствуя первоначальным спецификациям JPEG.
Формат EPS имеет много разновидностей, что зависит от программысоздателя. Самые надежные EPS-файлы создают программы производства фирмы Adobe Systems: Photoshop, Illustrator и др.
Формат PDF (Portable Document Format) предложен фирмой Adobe как независимый от платформы формат для создания электронной документации, презентаций, передачи оригинал-макетов и графики по сети Интернет.
PDF первоначально проектировался как компактный формат электронной документации. Поэтому все данные в нем могут сжиматься, причем к разного типа информации применяются разные, наиболее подходящие для них типы сжатия: JPEG, CCITT,ZIP.
Метод сжатия CCITT (International Telegraph and Telephone Committie) был разработан для факсимильной передачи и приема. Он является более узкой вер-
4. Методы, алгоритмы и форматы файлов компьютерной графики
сией кодирования методом Хаффмана. CCITT Group 3 идентичен формату сообщений по факсу, CCITT Group 4 •— это формат факсов, но без специальной управляющей информации.
Файл PDF может быть оптимизирован. Из него можно удалять повторяющиеся элементы, устанавливая постраничный порядок загрузки страниц через Интернет, с приоритетом передачи сначала для текста, потом графики и, наконец, шрифтов.
Поскольку в настоящее время наиболее актуальной становится передача данных через Интернет, то следует выделить формат DWF для передачи векторных графических данных, форматы GIF, JPEG, PNG для передачи растровых графических данных и формат PDF для передачи документации.
Вопросы для самоконтроля
1.Перечислите основные алгоритмы для обработки растровых изображений.
2.В чем заключается основная идея преобразования Хоха?
3.Представьте геометрическую иллюстрацию алгоритма Брезенхема.
4.Назовите основные типы ограничений при параметризации плоских контуров и приведите соответствующие геометрические иллюстрации.
5.В чем состоит основная идея алгоритмов, использующих г-буфер, и алгоритма построчного сканирования?
6.Дайте геометрическую иллюстрацию метода рейтресинга.
7.Какие эффекты фотореалистической визуализации трехмерных моделей нельзя получить по методу Фонга?
8.В любой доступной вам системе трехмерного геометрического моделирования (3DMax, Maya, Inventor, Solid Works, КОМПАС 3D, T-Flex 3D и т. п.) создайте сцену из плоскости, на которой разместите примитивные тела (параллелепипеды, сферы, конусы, цилиндры, эллипсоиды вращения и т. п.), задайте три разных источника освещения и разместите их так, чтобы в сцене присутствовали тени и взаимные отражения света от созданных объектов. Проверьте качество визуализации следующих эффектов: наложение разных материалов на поверхности тел, мягкие тени, прозрачность, зеркальные взаимные отражения света.
9.Что такое система ключевых кадров?
10.Перечислите основные форматы файлов для передачи растровых данных.
СПИСОКЛИТЕРАТУРЫ
1.Computer Graphics: principle and Practice Second Edition. J. Foley, A. van Dam, et al. Addison-Wesley, 1996.
2.www.ixbt.com.
3.www.spec.org.
4.www.top500.org.
5.Абламейко СВ., Лагуновский Д.М. Обработка изображений: технология, методы, применение. — Минск: Амалфея, 2000.
6.Хери Я., Бейкер X. Компьютерная графика: Пер. с англ. — М: Вильяме, 2005.
7.Гуревич М.М. Цвет и его измерение. — М.-Л.: Мир, 1950.
8.Ивенс Р.М: Введение в теорию цвета: Пер. с англ. — М.: Мир, 1964.
9.Каган Б.М. Электронные вычислительные машины и системы. — М.: Энергоатомиздат, 1991.
10.Королев Л.Н. Архитектура процессоров электронных вычислительных машин. — М.: Издательский отдел факультета Вычислительной Математики и Кибернетики МГУ им. М.В. Ломоносова, 2003.
11.Линдли К. Практическая обработка изображений на языке Си: Пер. с англ. — М.: Мир, 1996.
12.Медведев A. DX Current. Настоящее аппаратного ускорения графики. — www.ixbt.com.
13.Медведев A. Longhom Microsoft улучшает графику на 55 %. — www.ixbt.com.
14.Методы компьютерной обработки изображений / Под ред. В.А. Сойфера. — М.: ФИЗМАТ ЛИТ, 2003.
15.Мураховский В.И. Железо ПК. Новые возможности. — СПб.: Питер, 2005.
16.Никулин Е.А. Компьютерная геометрия и алгоритмы машинной графики. — СПб: БХВ-Петербург, 2003.
17.Поляков А.Ю. Методы и алгоритмы компьютерной графики в примерах на Visual C++. — СПб.: БХВ-Петербург, 2002.
18.Пэрент Р. Компьютерная анимация: Пер. с англ. — М.: КУДИЦ-ОБРАЗ, 2004.
19.Роджерс Д. Алгоритмические основы машинной графики: Пер. с англ. — М.: Мир, 1989.
20.Роджерс Д., Адаме Дж. Математические основы машинной графики: Пер. с англ. — М.: Мир, 2001.
21.Цветков В.Я. Геоинформационные системы и технологии. — М.: Финансы и статистика, 1998.
22.Шикин А.В., Боресков А.В. Компьютерная графика. Полигональные модели. — М.: ДИАЛОГ-МИФИ, 2001.
Информатика в техническом университете
А.Н. Божко, Д.М. Жук, В.Б. Маничев
Рис. 1. Пример цветовой иллюзии
Желтый
Красный Желтый
Белый^Н
Турпурный Голубой
Рис. 2. Аддитивное (а) и еубтрактивное (б) смешение цветов
Red |
Green |
Blue |
Red |
Green |
Blue |
Red |
Green |
Blue |
|
|
|
|
\ / |
\ |
/ |
|
|
|
|
|
|
|
|
( V |
Yellow |
|
|
|
|
|
|
|
|
Белая бумага |
) |
|
|
|
Red |
Green |
Blue |
Red |
Green |
Blue |
Red |
Green |
Blue |
|
|
4 \ |
\ |
\ |
\ |
\ |
4 |
|
|
|
|
|
|
|
|
|
|
|
|
Yellow |
|
|
|
|
|
|
|
|
|
( Белая бумага |
J |
Рис. З. Формирование основных оттенков в субтрактивной модели