
- •Глава 9. Описание и характеристика поверхностей 3
- •Глава 14. Трассировка лучей 82
- •Глава 15. Цвет в компьютерной графике 90
- •Глава 16. Сжатие графических изображений 96
- •Глава 9. Описание и характеристика поверхностей
- •9.1. Описание поверхностей
- •Параметрическое описание
- •Описание неявными функциями
- •Поточечное описание
- •Фрактальное описание
- •9.2. Характеристики поверхностей
- •Поверхности 1-го порядка
- •Поверхности 2-го порядка
- •Фрактальные поверхности
- •9.3. Моделирование деформации трехмерных полигональных поверхностей в режиме реального времени
- •Метод деформации на основе использования неявного задания поверхности объекта
- •Метод деформации плоских протяженных объектов
- •Метод деформации тела, заданного полигональной сеткой
- •9.4. Триангуляция поверхностей
- •Уровень детализации (lod)
- •Глава 10. Получение реалистичных изображений
- •10.1. Методы создания реалистических изображений
- •Перспективные проекции
- •Передача глубины яркостью
- •10.2. Перспективные изображения
- •Глава 11. Проецирование
- •11.1. Основные виды проекций
- •Параллельные проекции
- •Центральные проекции
- •11.2. Математическое описание прямоугольных проекций
- •11.3. Математическое описание косоугольных проекций
- •11.4. Математическое описание перспективной проекции
- •11.5. Задание произвольных проекций. Видовое преобразование.
- •Глава 12. Алгоритмы удаления скрытых линий и поверхностей
- •12.1. Общие сведения об удалении скрытых линий и поверхностей
- •12.2. Алгоритм сортировки по глубине (оп)
- •12.3. Алгоритм, использующий z-буфер (пи)
- •12.4. Алгоритм построчного сканирования (пи)
- •12.5. Алгоритм разбиения области
- •12.6. Алгоритм плавающего горизонта
- •12.8. Алгоритм трассировки лучей
- •12.9. Иерархический z—буфер (смешанный тип)
- •Глава 13. Свет в компьютерной графике
- •13.1. Общие сведения о свете.
- •13.2. Модель освещения.
- •Свойства объектов
- •Отражение диффузное
- •Зеркальное отражение
- •Пропускание света (прозрачность)
- •13.3. Закраска полигональных сеток
- •Однотонная закраска
- •Интерполяция интенсивностей (метод Гуро)
- •Интерполяция векторов нормали (метод Фонга)
- •13.4. Тени
- •Источник света в бесконечности
- •Локальный источник
- •13.5. Фактура. Нанесение узора.
- •Нанесение узора на поверхность. Регулярная текстура.
- •Нанесение узора на поверхность. Стохастическая текстура.
- •13.6. Создание неровностей на поверхности.
- •Использование карт высот
- •Метод возмущения нормали
- •Использование фрактальных поверхностей
- •13.7. Фильтрация текстур
- •13.8. Полутоновые изображения
- •Глава 14. Трассировка лучей
- •14.1 Метод прямой трассировки
- •14.2 Метод обратной трассировки
- •Глава 15. Цвет в компьютерной графике
- •15.1. Ахроматический и хроматический цвета
- •15.2. Цветовые модели
- •Системы смешивания основных цветов
- •Цветовая модель hsv
- •Модель hls
- •Цилиндрическая цветовая модель
- •Глава 16. Сжатие графических изображений
- •16.1. Графические форматы
- •16.2. Основные сведения о сжатии изображений
- •16.3. Алгоритмы сжатия файлов без потерь
- •Алгоритм Хаффмана
- •Алгоритм Лемпеля—Зива (lzw)
- •Алгоритм rle (Run Length Encoding)
- •Обрезание хвостов
- •16.4. Сжатие с потерями цветных и полутоновых файлов
- •Сжатие изображения по стандарту jpeg
- •Новый стандарт jpeg 2000
- •Фрактальное сжатие изображений
16.2. Основные сведения о сжатии изображений
Сжатие информации делится на архивацию и компрессию. Первое происходит без потери качества, второе – с потерями. Разница между этими способами в том, что при втором не происходит полного восстановления исходного сохраненного изображения в полном качестве. Но каким бы не был алгоритм компрессии данных, для работы с ним файл нужно проанализировать и распаковать, т.е. вернуть данные в исходный незапакованный вид для их быстрой обработки (обычно это происходит незаметно для пользователя).
Архивация, или сжатие графических данных, используется как для растровой, так и для векторной графики. При этом способе уменьшения данных, программа анализирует наличие в сжимаемых данных некоторых одинаковых последовательностей данных, и исключает их, записывая вместо повторяющегося фрагмента ссылку на предыдущий такой же (для последующего восстановления). Такими одинаковыми последовательностями являются пикселы одного цвета, повторяющиеся текстовые символы, или некая информация, которая в рамках массива данных повторяется несколько раз. Например, растровый файл, имеющий фон строго одного цвета (например, синий), имеет в своей структуре очень много повторяющихся фрагментов.
Компрессия данных – это способ сохранения данных таким образом, при использовании которого не гарантируется полное восстановление исходных графических данных. При таком способе хранения данных обычно графическая информация немного теряется по сравнению с оригинальной, но этими искажениями вполне можно пренебречь и управлять. Обычно файлы, сохраненные с использованием этого способа хранения, занимают значительно меньше дискового пространства, чем файлы, сохраненные с использованием простой архивации. Суть методов сжатия с потерей качества – используя особенности восприятия графической инфрмации человеком, отбросить часть инфомации безвозвратно. Чем выше степень компрессии, тем больше ущерб качеству. Оптимальное решение выбирается для конкретного случая с учетом применения.
Компрессия нужна не всегда. Уменьшить размер графических данных можно, проанализировав имеющийся файл и удалив из него избыточный размер, цветность или разрешение. Результат тот же - уменьшение размера.
16.3. Алгоритмы сжатия файлов без потерь
Как известно, любой файл, не взирая на то, какая информация в нем хранится, состоит из символов и, возможно, «невидимых» кодов управления печатью. Каждый символ в кодах ASCII представляется 1 байтом. Ниже рассмотрены несколько алгоритмов архивации.
Алгоритм Хаффмана
Символы заменяются кодовыми последовательностями разной длины. Чем чаще используется символ, тем короче код (например, буквы а, е, и, с — 3 бита, щ, х, э, ю — 8 бит). Могут использоваться готовые кодовые таблицы, или они могут строиться на основе статистического анализа конкретного файла. Гарантируется возможность декодирования, хотя кодовые последовательности имеют разную длину. Сжатие до 50%.
Алгоритм Лемпеля—Зива (lzw)
Алгоритм сжатия данных LZW основан на поиске и замене в исходном файле одинаковых последовательностей данных для их исключения и уменьшения размера исходного файла В отличие от предыдущего рассмотренного метода сжатия, он более разборчиво просматривает сжимаемые данные. Это приводит к лучшему результату.
Данный алгоритм основан на сведении к минимуму избыточности. Вместо кодирования каждого символа кодируются часто встречающие последовательности символов (например, слова «который», «также»). Имена же собственные, встречающиеся один раз не кодируются.
Программа алгоритма просматривает файл с текстом или байтами графической информации и выполняет статистический анализ для построения кодовой таблицы.
Если заменить 60-70% текста символами, длина которых меньше половины от первоначальной, можно добиться сжатия примерно 50%.
При применении этого алгоритма к загрузочным файлам (*.exe, *.com), результат составляет 10-20%, так как избыточность кода, создаваемого компиляторами, меньше избыточности текста на естественном языке.
Файлы баз данных тоже архивируются мало, так как могутт содержать редко повторяющуюся информацию (имена, номера телефонов, адрес).
Графические контурные файлы архивируются хорошо, так как обладают большой избыточностью (фон).
Полутоновые и цветные изображения тоже можно архивировать, но с меньшим успехом.
Данный тип сжатия не вносит искажений в исходный графический файл и подходит для обработки растровых данных любого типа - монохромных, черно-белых или полноцветных. Наилучшие результаты получаются при компрессии изображений с большими областями одинакового цвета или изображений с повторяющимися одинаковыми структурами. Этот метод демонстнрирует самые поразительные результаты степени сжатия (среди других существующих методов сжатия графических данных) при полном отсутствии потерь или искажений в исходных файлах. Используется в файлах формата TIFF, PDF, GIF, PostScript и других.