
- •Глава 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
- •Фрактальное сжатие изображений
Сжатие изображения по стандарту jpeg
Название алгоритма получило происхождение от английской аббревиатуры «Joint Photografic Experts Group» — «объединенная группа экспертов по обработке фотографий». Данный алгоритм обеспечивает уменьшение размера файла в 25-100 раз. Разработан он Международной организацией по стандартизации (ISO). Такое сжатие достигается за счет сжатия с потерями. Достаточно сложен с вычислительной точки зрения, так как занимает много процессорного времени.
Первоначальное и восстановленное изображения не одно и то же. Но информация усекается не просто так. Некоторую информацию можно исключить, и большинство людей этого не заметят. Кроме того, пользователь может контролировать уровень потерь, указывая степень сжатия в зависимости от того, что для него важнее — качество изображения или экономия памяти.
Кодирование изображения по алгоритму JPEG подразделяется на несколько этапов:
Преобразование цветового пространства из RGB в YUV. Канал Y содержит информацию о яркости, U и V— о цвете. Система зрения человека особенно чувствительна к Y компоненте и менее чувствительна к U и V.
Y-компонента — это цветные изображение, показанное на черно-белом телевизоре.
U-компонента — информация о синем цвете.
V-компонента — информация о красном цвете.
Поэтому Y-компонента будет сжиматься в меньшей степени, чем U и V.
Прореживание. Отбрасываются в U и V - компонентах строки или столбци пикселов с определенными номерами. Например, при прореживании с коэффициентами 2:1:1 будет отбрасываться информация о цвете для каждой 2-ой строки и каждого 2-го столбца, в результате чего будет потерено 75% данных цветности. Коэффициента 1:1:1 — прореживания нет. На Y-компоненту прореживание не отражается.
Дискретное косинусное преобразование (ДКП). Это удивительная математическая операция, которая позволяет прдставить значения цвета в удобном для последующего сжатия виде (рис.16.1).
Рис. 16.1 Этапы сжатия
ДКП выполняется отдельно для Y, U и V-компонент. Изображение разбивается на блоки размером 88 пикселов. Такой участок с большой вероятностью содержит пикселы близкого цвета. При ДКП информация о 64 пикселах преобразуется в матрицу из 64 коэффициентов, которые характеризуют «энергию» исходных пикселов. Максимальные значения коэффициентов концентрируются в левом верхнем углу матрицы 88, минимальные — в правом нижнем. Первый коэффициент передает подавляющую часть «энергии», а количество «энергии», представляемой остальными коэффициентами, быстро убывает. Таким образом большая часть информации исходной матрицы 88 пикселов представляется первым элементом матрицы, преобразованной по ДКП. На этом этапе происходит некоторая потеря информации, связанная с принципиальной невозможностью точного обратного преобразования. Однако, она незначительна по сравнению с потерями на следующем этапе.
Квантование. Применяется для сокращения разрядности коэффициентов и заключается в делении имеющихся значений на какое-либо число. После отбрасываются малые изменения коэффициентов. Здесь происходит значительная потеря информации.Поэтому после восстановления изображения получаются уже другие значения пикселов. (Для U и V компонентов квантование более грубое).
Полученные данные сжимаются по RLE, LZW-алгоритму или алгоритму Хаффмана для достижения еще большей компрессии. Помимо применяемого кодирования наиболее часто встречающихся символов, последние нули в конце строки могут быть заменены символом «конец блока», а так как все блоки имеют одинаковый размер, всегда известно, сколько нулей было опущено.
При восстановлении изображения шаги выполняются в обратном порядке.
Изображения, в которых соседние пикселы мало отличаются друг от друга, лучше поддаются сжатию. Однако чем меньше размер выходного файла, тем меньше степень «аккуратности» при работе программы-конвертора и, соответственно, ниже качество выходного изображения. Обычно в программах, позволяющих сохранять растровые данные, есть возможность некоторого компромисса между объемом выходного файла и качеством изображения (рис. 16.2). При лучшем качестве объем выходного файла в 3-5 раз меньше исходного незапакованного. При качестве похуже – меньше исходника в десятки раз, но, как правило, при этом качество изображения уже не позволяет использовать в ответственных задачах. Данный формат предназначен для хранения в основном фотографических изображений с большим количеством оттенков и цветовых переходов и почти не подходит для хранения однотонных изображений типа кадров из мультфильмов, скриншотов (сжатие будет слишком низким или качество картинки достигнет критической отметки). Этот метод сжатия графических данных используется в файлах формата PDF, PostScript, собственно в JPEG и других.
Сглаживание в процессе восстановления изображения. Из-за потери информации на границах между блоками (88 пикселов ) могут возникать разрывы. Поэтому необходимо сглаживание.