- •1. Предмет кг. Области применения кг. Совр. Тенденции развития кг.
- •2. История развития кг. Современные тенденции развития кг.
- •3. Основные понятия кг. Аппаратное обеспечение кг. Принципы формирования изображения.
- •4. Растровые графические дисплеи с регенерацией изображения.
- •5. Устройство электронно-лучевой трубки. Устройство цветной растровой элт. Системы с телевизионным растром.
- •7. Вывод изображения. Система черезстрочной развертки.
- •8. Мультимедиа.
- •9. Оборудование для компьютерной графики.
- •10. Аппаратные решения в компьютерной графике.
- •11. Архитектура рабочих станций. Графический ускоритель. Арi.
- •12. Архитектура графических рабочих станций. Технологии 3d графики.
- •13. Архитектура графических рабочих станций. Принципы конвейерной архитектуры.
- •14. Общие положения алгоритмов сжатия изображений.
- •15. Алгоритмы архивации без потерь: rle, lz/lzw, Хаффман.
- •16. Алгоритмы архивации с потерями, проблемы алгоритмов архивации с потерями. Основные идеи алгоритмов jpeg, фрактальный, волновой.
- •17. Геометрическое моделирование и решаемые им задачи.
- •18. Представление геометрических моделей. Полигональные сетки.
- •19. Аффинные преобразования, их свойства, однородные координаты.
- •20. Аффинные преобразования на плоскости.
- •21. Аффинные преобразования в пространстве. Использование матричного представления. Составные аффинные преобразования в пространстве.
- •22. Проецирование. Общий вид преобразований в пространстве. Виды проекций.
- •23. Этапы создания графического объекта. Преобразование положения объекта. Понятие камеры. Особенности матричных преобразований.
- •24. Понятие растрового алгоритма. Понятие связности. Основные требования, предъявляемые к растровым алгоритмам.
- •25. Растровое представление отрезка: постановка задачи, простейший алгоритм, алгоритм цда.
- •26. Растровое представление отрезка: постановка задачи, алгоритм Брезенхейма.
- •27. Растровое представление отрезка: построение сглаженной линии (метод Флойда-Стейнберга, модификация алгоритма Брезенхейма, сглаживание всей сцены).
- •28. Растровое представление окружности: постановка задачи, простой алгоритм, алгоритм Брезенхейма.
- •29. Алгоритм закраски области, заданной цветом границы.
- •30. Nvidia cuda. Понятие gpgpu.
- •31. История расчётов на gpu. Области применения параллельных расчётов на gpu. История развития cuda.
- •32. Возможности nvidia cuda.
- •33. Преимущества и ограничения cuda.
- •34. Решения с поддержкой nvidia cuda.
- •35. Состав nvidia cuda.
- •36. Оптимизация программ на cuda.
15. Алгоритмы архивации без потерь: rle, lz/lzw, Хаффман.
Алгоритм RLE.
Изображение в нем вытягивается в цепочку байт по строкам растра. Само сжатие в RLE происходит за счет того, что в исходном изображении встречаются цепочки одинаковых байт. Замена их на пары <счетчик повторений, значение> уменьшает избыточность данных. В данном алгоритме признаком счетчика служат единицы в двух верхних битах считанного файла. Оставшиеся 6 бит расходуются на счетчик, который может принимать значения от 1 до 64. Строку из 64 повторяющихся байтов мы превращаем в два байта, т.е. сжимаем в 32 раза. Алгоритм рассчитан на деловую графику – изображения с большими областями повторяющегося цвета. Ситуация, когда файл увеличивается, для этого простого алгоритма не так уж редка, например, при обработке цветных фотографий. Для того чтобы изображение увеличилось в два раза, в нем значения всех пикселей должны быть больше двоичного 11000000 и подряд попарно не повторяться. Второй вариант этого алгоритма имеет больший максимальный коэффициент архивации и меньше увеличивает в размерах исходный файл. Признаком повтора в данном алгоритме является единица в старшем разряде соответствующего байта. В лучшем случае этот алгоритм сжимает файл в 64 раза, в худшем увеличивает на 1/128.
Алгоритм LZ/LZW.
Сжатие в нем в отличие от RLE осуществляется уже за счет одинаковых цепочек байт. Существует довольно большое семейство LZ-подобных алгоритмов. Один из достаточно простых вариантов этого алгоритма, например, предполагает, что во входном потоке идет либо пара <счетчик, смещение относительно текущей позиции>, либо просто <счетчик> пропускаемых байт и сами значения байтов. При разархивации для пары <счетчик, смещение> копируются <счетчик> байт из выходного массива, полученного в результате разархивации, на <смещение> байт раньше, а <счетчик> (т.е. число равное счетчику) значений “пропускаемых” байт просто копируются в выходной массив из входного потока. Данный алгоритм является несимметричным по времени, поскольку требует полного перебора буфера при поиске одинаковых подстрок. В результате сложно задать большой буфер из-за резкого возрастания времени компрессии. Однако потенциально построение алгоритма, в котором на <счетчик> и на <смещение> будет выделено по 2 байта (старший бит старшего байта счетчика – признак повтора строки / копирования потока), даст нам возможность сжимать все повторяющиеся подстроки размером до 32Кб в буфере размером 64Кб. В пределе, поскольку максимальное сжатие мы получаем, превращая 32Кб буфера в 4 байта, а буфер такого размера будет накоплен не сразу. Однако минимальная подстрока для которой выгодно проводить сжатие, должна состоять в общем случае минимум из 5 байт, что и определяет малую ценность данного алгоритма.
В алгоритмах семейства LZW может использоваться дерево для представления и хранения цепочек. Процесс сжатия выглядит достаточно просто. Последовательно считываются символы входного потока и проверяются, есть ли в созданной таблице строк такая строка. Если строка есть, то считывается следующий символ, а если строки нет, то заносится в поток код для предыдущей найденной строки, строка помещается в таблицу, и поиск начинается снова.
Алгоритм Хаффмана – один из классических алгоритмов. Использует только частоту появления одинаковых байт в изображении. Сопоставляет символам входного потока, которые встречаются большее число раз, цепочку бит меньшей длины, и, напротив, встречающимся редко – цепочку большей длины. Для сбора статистики требует двух проходов по изображению. Классический алгоритм Хаффмана требует записи в файл таблицы соответствия кодируемых символов и кодирующих цепочек.