- •Компьютерная графика
- •0915 “Компьютерная инженерия”
- •Чернигов чгту 2008
- •Задание бкс по безье
- •Сплайны
- •3 Алгоритмы вычислительной геометрии. Геометрия на плоскости План раздела
- •Отсечение отрезков по окну
- •Отсечение многоугольника по окну
- •Задача триангуляции
- •Условие Делоне
- •Алгоритм триангуляции Делоне
- •4 Трехмерная вычислительная геометрия план раздела
- •Описание плоскости через точку и нормаль
- •Описание плоскости через три инцидентные ей точки
- •Описание плоскости через вершины полигона
- •Точка встречи плоскости и прямой
- •5 Описание перемещений и деформаций объектов план раздела
- •Перенос, масштабирование и поворот двумерной точки Обычный линейный перенос…
- •Масштабирование координат
- •Поворот (вокруг начала координат)
- •Неоднородность описаний
- •Как перемещение описать умножением?
- •Однородные координаты
- •Формальный подход
- •Но, к счастью…
- •Пример: отображение окна в окно Постановка задачи
- •Решение
- •Октарные и бинарные деревья
- •Дополнительные условия
- •Проверка правильности задания граничного представления
- •Итоги раздела
- •7 Понятие о видеоконвейере
- •Исходное состояние
- •Результат шага 1
- •Что видит и чего не видит наблюдатель?
- •Результат шага 2
- •Результат шага 3
- •Результат:
- •8 Видовое преобразование
- •План раздела
- •Исходное состояние
- •Вычисление базиса ск камеры
- •Стратегия видового преобразования
- •Принцип относительности движений
- •9 Особенности отсечения по видимому объему
- •План раздела
- •Суть действия «отсечения»
- •Различные формы видимых объемов
- •Выпуклые оболочки граней
- •Метод Коэна-Сазерленда в применении к трехмерному случаю
- •Результат быстрой селекции граней
- •Объекты, которые отсекаются в трехмерном случае
- •Общая схема действий по отсечению
- •Как задается видимый объем
- •Дополнительные проблемы отсечения при центральном проецировании
- •Повышение эффективности проверок при центральном проецировании
- •10 Удаление невидимых граней, ребер и вершин
- •План раздела
- •Общая классификация методов удаления невидимого
- •Алгоритмическая основа удаления невидимых примитивов
- •Неустранимое противоречие
- •Классификация методов удаления невидимых примитивов
- •Замечание о трудоемкости методов
- •Алгоритм робертса
- •«Матрица тела»
- •Учет видового преобразования
- •Алгоритм z-буфера
- •Алгоритм заполнения z-буфера
- •Пример работы с z-буфером
- •Достоинства алгоритма z-буфера
- •Простота и универсальность.
- •Он нечувствителен к сложности сцены.
- •Недостаток алгоритма z-буфера
- •Повышенный расход оперативной памяти.
- •11Построение проекций план раздела
- •Общая классификация проекций Понятие «проекция»
- •12Рендеринг по освещенности план раздела
- •Модели локального освещения объектов
- •Ограничения локальной модели освещения объектов сцены
- •Рассеянное освещение
- •Диффузное отражение света
- •Зеркальное отражение света
- •«Краевой эффект» Маха(Mach Bound Effect)
- •Модель затенения Гуро (h.Gouraud)
- •Модель затенения Фонга (Phong)
- •Модификации модели затенения Фонга
- •Иллюстрация методов шейдинга для сравнения
- •Алгоритмы получения высокореалистических изображений общие замечания
- •Классическая прямая трассировка лучей
- •Обратная трассировка лучей
- •Вторичные лучи обратной трассировки
- •Дерево вторичных лучей обратной трассировки
- •Достоинства и недостатки метода обратной трассировки световых лучей
- •Распределенная (стохастическая) трассировка лучей (рстл)
- •О сэмплинге
- •Так почему трассировка здесь называется «распределенная»?
- •И просто несколько красивых картинок…
- •13 Растровые изображения План раздела
- •Растровый документ: Представление слоями
- •Смешение цветов в слоях
- •Алгоритм брезенхема – предпосылки-1
- •Предпосылки-2
- •Проблемы яркости отрезка
- •Компенсация алиасинга яркостью
- •Растеризация окружности – подходы
- •Заливка областей постоянным цветом
- •Классификация областей
- •Классификация областей Итог и примеры
- •Простейший рекурсивный алгоритм заливки
- •Примерный вид текстурированной грани
- •Неочевидные применения текстур
- •Быстрый приближенный «шейдинг по способу Фонга»
- •Быстрое приближенное построение отражений
- •А. Теория цвета и цветоизмерение свет и цвет
- •Феномен составных цветов
- •«Уравновешивание» цветов
- •Странности сине-зеленого цвета
- •«Отрицательный» красный цвет
- •Диаграммы уравновешивания цветов
- •Измерение цвета
- •Цветовой охват
- •Б. Воспроизведение цветов
- •Технология светоизлучения (суммирующая)
- •Реализация модели rgb
- •«Цветовой куб» модели rgb
- •Изохромы
- •Технология цветопоглощения (вычитающая)
- •Субтрактивная цветовая модель cmyk
- •Как задается цвет в модели cmyk
- •Проблемы преобразования цвета
- •«Техническая» цветовая модель l*a*b
- •Использование модели l*a*b
- •«Художественная» цветовая модель hsl
- •Проблемы правильной передачи цвета
- •16Сжатие графических файлов план раздела
- •Перечисление методов точного сжатия
- •Кодирование однородных серий
- •44 44 44 11 11 11 11 11 01 33 Ff 22 22 - исходная последовательность байтов
- •Алгоритм лемпела–зива-велча ( Lempel- Ziev-Welch, lzw )
- •Битовые коды переменной длины (метод хаффмана)
- •Методы энтропийнного сжатия
- •Индексирование цвета
- •7. Седьмое преобразование:
- •Проектор экранный микрозеркальный (устройство)
- •Дискретное микрозеркальное устройство
- •B. Устройства получения твердых копий струйные принтеры
- •Технология электрографического копирования
- •Устройство черно-белого лазерного принтера
- •Устройство цветного лазерного принтера
- •Итоги раздела
- •Джойстик
- •Дискретный
- •Плавный
- •Содержание
Алгоритм лемпела–зива-велча ( Lempel- Ziev-Welch, lzw )
Суть метода в том, что сначала методами дискретной математики по исходной последовательности строится так называемая библиотека подпоследовательностей, причем никакой более короткий элемент библиотеки не является началом никакого более длинного элемента.
Далее строится выходной (сжатый) файл, в котором обнаруженные в исходном файле подпоследовательности – элементы библиотеки заменяются их смещениями в библиотеке.
Рассмотрим нестрогий пример, построенный на предельно упрощенной последовательности.
Исходная последовательность: ломмолотоклопаталомломкиркалопаталомлопаталопата
1) Справочник (смещение-элемент): 0-лом,3-молоток,10-лопата,16-кирка
2) Ссылки на элементы справочника:
0,3,10,0,0,16,10,0,10,10
Модель сжатого файла: 0-лом,3-молоток,10-лопата,16-кирка#0,3,10,0,0,16,10,0,10,10
Степень сжатия: средняя (около 2).
Битовые коды переменной длины (метод хаффмана)
Этот метод использует тот факт, что байты с разными значениями встречаются в исходной последовательности с разной частотой. Исходная последовательность рассматривается как сплошной массив битов. Предлагается получить сжатие за счет того, что наиболее частые байты изображаются в выходной последовательности не восемью битами, а меньшим их количеством.
Метод не даст никакого сжатия, если все значения байтов встретятся одинаковое число раз. В этом случае изображение любого байта должно будет занять восемь бит, что означает отсутствие выигрыша по объему хранения.
Рассмотрим пример некоторого условного файла:
Результат работы алгоритма Хаффмана приведен на следующем рисунке. Видно, что наиболее часто встречающиеся байты изображаются в выходном файле двух- и трехбитными последовательностями.
Для сравнения приведем фрагмент исходной последовательности байтов и возможное ее представление после сжатия.
Степень сжатия: выше средней (до 3).
Методы энтропийнного сжатия
(Сжатие с потерями)
Как мы видели выше, методы точного сжатия обеспечивают таковое в среднем в 2 – 2,5 раза, что, объективно говоря, немного. Вместе с тем, растровые изображения несут в себе много избыточной информации, которая зрением человека воспринимается плохо или не воспринимается вообще. Отсюда возникает идея поступиться при сжатии частью качества картинки, но получить за счет этого много большую эффективность сжатия. Причем жертвуют в данных обычно той частью, которая наименее важна для человеческого зрения.
Индексирование цвета
Индексирование цвета состоит в том, что в пикселах картинки хранят не описание цвета, а номер этого цвета в палитре, сохраняемой вместе с растром картинки.
Исходная картинка – это RGB-изображение, описанное в модели 24 бита на пиксел.
На
этом рисунке виден результат сжатия
картинки за счет применения палитры из
всего четырех цветов. Сильное сжатие
достигается тем, что номер цвета тут
кодируется всего двумя битами.
Здесь
палитра из 16 цветов, индекс (номер) цвета
4хбитный. Объем сжатого файла больше,
чем в первом случае, но и качество
картинки выше.
Здесь
палитра из 128 цветов, индекс семибитный,
качество картинки на глаз практически
неотличимо от исходной.
УПРОЩЕННАЯ СТРУКТУРА ФАЙЛА ТИПА .GIF
Метод сжатия за счет применения индексации цветов применяется в форматах GIF и PNG. Ниже приводится схематичное описание структура файла формата GIF.
АЛГОРИТМ JPEG СЖАТИЯ РАСТРОВОГО ИЗОБРАЖЕНИЯ
Это НЕ ФОРМАТ файлов, а АЛГОРИТМ СЖАТИЯ растровых изображений.
Предложен Joint Photographic Expert Group в 1991 г.
Идея алгоритма базируется на том наблюдении, что зрение человека лучше всего воспринимает яркость пикселов (примерно 80%информации) и много хуже – цветовую компоненту изображения.
Алгоритм JPEG cостоит из нескольких последовательно применяемых к изображению преобразований.
0. ИСХОДНАЯ ТОЧКА:
Изображение в формате ВМР. Каждый пиксел = 3 байта (R, G, B).
1. ПЕРВОЕ ПРЕОБРАЗОВАНИЕ:
Из модели RGB картинку переводят в модель Y Cb Cr, в которой яркостная компонента Y отделена от цветовых координат Cr и Cb:
2. ВТОРОЕ ПРЕОБРАЗОВАНИЕ:
Изображение разбивается на блоки 8 х 8 пикселов.
Дальше вся работа делается С КАЖДЫМ БЛОКОМ В ОТДЕЛЬНОСТИ.
3. ТРЕТЬЕ ПРЕОБРАЗОВАНИЕ:
Прореживаются и совмещаются цветовые каналы. Это схематично показано на рисунке ниже:
4. ЧЕТВЕРТОЕ ПРЕОБРАЗОВАНИЕ:
Блоки Y[0..7,0..7] и CrCb[0..7,0..7] (каждый в отдельности) подвергаются ДИСКРЕТНОМУ КОСИНУСНОМУ ПРЕОБРАЗОВАНИЮ (ДКП) и затем КВАНТОВАНИЮ. Результат – 2 матрицы по 64 байта, в которых МНОГО НУЛЕЙ. Например:
5. ПЯТОЕ ПРЕОБРАЗОВАНИЕ:
Блоки Y[0..7,0..7] и CrCb[0..7,0..7] (каждый в отдельности) РАЗВОРАЧИВАЮТСЯ В ЛИНЕЙНЫЙ МАССИВ способом «перечисления вдоль диагоналей» (способ Коши):
30, 0, -7, -11,8,0,0,1,6,-5,-7,-3,0,1,0,0,0,1,0,-3,-4,-1,4,2,0,0,0,0,0,0,0,0,0,0,-3, …
6. ШЕСТОЕ ПРЕОБРАЗОВАНИЕ:
Каждый из массивов Y[0..63] и CrCb[0..63] ПРОРЕЖИВАЕТСЯ: оставляют лишь первый из каждых 4х элементов:
Из каждого массива в 64 байта вроде такого
30,0,-7,-11,8,0,0,1,6,-5,-7,-3,0,1,0,0,0,1,0,-3,-4,-1,4,2,0,0,0,0,0,0,0,0,0,0,-3, . . .
делают такой, размером 16 байт:
30, 8, 6, 0, 0,-4, 0, 0, 0, 0,-3, 0, 0, 0, 0, 0
ИТАК, из начального описания блока 64*3 = 192 байта остались 2 массива по 16 байт, то есть 32 байта. Уже сжали в 6 раз.
Но и это еще не всё.
