Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры по компьютерной графике [по билетам].doc
Скачиваний:
68
Добавлен:
02.05.2014
Размер:
805.89 Кб
Скачать

7. Общие положения алгоритмов сжатия изображений.

Изображения – это своеобразный тип данных, характеризуемый тремя особенностями:

1) Изображения занимают намного больше места в памяти, чем текст.

2) Человеческое зрение при анализе изображения оперирует контурами, общим переходом цветов и сравнительно нечувствительно к малым изменениям в изображении.

3) При создании алгоритма компрессии графики мы используем особенности структуры изображения – изображение в отличие, например, от текста обладает избыточностью в 2-х измерениях. Т.е., как правило, соседние точки, как по горизонтали, так и по вертикали в изображении близки по цвету.

Для того, чтобы говорить об алгоритмах сжатия изображений, решить несколько важных вопросов:

1) Какие классы изображений существуют?

2) Какие классы приложений, использующие алгоритмы компрессии графики, существуют, и какие требования они предъявляют к алгоритмам?

3) Какие критерии мы можем предложить для сравнения различных алгоритмов?

Под классом изображения будет пониматься совокупность изображений, применение к которой алгоритма архивации дает качественно одинаковые результаты. Так, для одного класса алгоритм дает очень высокую степень сжатия, для другого – почти не сжимает, для третьего – увеличивает файл в размере.

Рассмотрим следующие примеры неформального определения классов изображений:

1. Изображения с небольшим количеством цветов (4-16) и большими областями, заполненными одним цветом. Плавные переходы цветов отсутствуют. (Графики, диаграммы).

2. Изображения с плавными переходами цветов, построенные на компьютере (графика презентаций, эскизные модели в САПР, изображения, построенные по методу Гуро)

3. Фотореалистичные изображения, например отсканированные фотографии.

4. Фотореалистичные изображения с наложением деловой графики, например реклама.

Рассмотрим следующую простую классификацию приложений, использующих алгоритмы компрессии:

1. Характеризуются высокими требованиями ко времени архивации и разархивации.

2. Характеризуется высокими требованиями к степени архивации и времени разархивации.

3. Характеризуются очень высокими требованиями к степени архивации.

Требования к алгоритмам компрессии:

1. Высокая степень компрессии. Некоторые алгоритмы дают лучшее соотношение качества к размеру файла при высоких степенях компрессии, однако проигрывают другим алгоритмам при низких степенях.

2. Высокое качество изображений.

3. Высокая скорость компрессии. Интуитивно понятно, что чем больше времени мы будем анализировать изображение, пытаясь получить наивысшую степень компрессии, тем лучше будет результат.

4. Высокая скорость декомпрессии.

5. Масштабирование изображений (легкость изменения размеров изображения до размеров окна активного приложения).

6. Возможность показать изображение низкого разрешения, используя только начало файла.

7. Устойчивость к ошибкам. Данное требование означает локальность нарушений в изображении при порче фрагмента передаваемого файла.

8. Учет специфики изображения. Более высокая степень архивации для класса изображений, которые статистически чаще будут применяться в приложении.

9. Редактируемость. Под редактируемостью понимается минимальная степень ухудшения качества изображения при его повторном сохранении после редактирования.

10. Небольшая стоимость аппаратной реализации. Эффективность программной реализации.

Чаще всего используются следующие критерии сравнения:

1. Худший, средний и лучший коэффициенты сжатия. Это есть доля, на которую возрастет изображение, если исходные данные будут наихудшими; некий среднестатистический коэффициент для того класса изображений, на который ориентирован алгоритм; и, наконец, лучший коэффициент. Последний необходим лишь теоретически, поскольку показывает степень сжатия наилучшего (как правило, абсолютно черного) изображения, иногда фиксированного размера.

2. Класс изображений, на который ориентирован алгоритм.

3. Симметричность. Отношение характеристики алгоритма кодирования к аналогичной характеристике при декодировании. Характеризует ресурсоемкость процессов кодирования и декодирования. Симметричность по времени – отношение времени кодирования ко времени декодирования. Иногда потребуется симметричность по памяти.

4. Наличие потерь качества. Способы изменения коэффициента архивации.

5. Характерные особенности алгоритма и изображений, к которым его применяют.

Пересечение луча с прямоугольным параллелепипедом. Вопрос33

Прямоугольный параллелепипед со сторонами, параллельными координатным плоскостям, однозначно определяется любыми двумя своими вершинами, примыкающими к одной из его диагоналей.

Пусть прямоугольный параллелепипед задан вершинами

При l = 0 луч параллелен этим плоскостям и, если X0=x- или X0=x+, не пересекает рассматриваемый прямоугольный па­раллелепипед. Если же луч непараллелен этим плоскостям, то вычисляем отношения:

Можно считать, что t1x <t2x (в противном случае меняем их мес­тами). Положим tnear=t1x, tfar=t2x

Считая, что m не равно нулю, и рассматривая вторую пару плос­костей, несущих грани заданного параллелепипеда, y=y-_ и y=y+, нахо­дим величины

если t1y<tnear , полагаем tnear =t 1y, если t2y >t far, полагаем tfar = t2y, при

tnear >tfar ии при tfar<0 заданный луч проходит мимо прямоугольного параллелепипеда.

Считая, что n не равно нулю, рассматриваем последнюю пару плоскостей z=z- и z=z+ находим величины:

и повторяем предыдущие сравнения.

Если в итоге мы получим, что 0 < tnear <t far или 0 < tfar, то задан­ный луч непременно пересечет исходный параллелепипед со сторо­нами, параллельными координатным осям.

Если луч проходит через прямоугольный параллелепипед (при этом считается, что начальная точка луча лежит вне параллелепипе­да), то расстояние от начала луча до точки его входа в параллелепи­пед равно tnear, а до точки выхода tfar соответственно.

Билет 23

Устройства вывода (Нет)

Удаление скрытых линий и поверхностей: классификация алгоритмов, понятие когерентности, отсечение нелицевых граней, алгоритмы удаления линий.

Классификация по следующим основным параметрам:

1. По выбору удаляемых частей: удаление невидимых линий, ребер, поверхностей, объемов.

2. По порядку обработки элементов сцены: удаление в произ­вольном порядке и в порядке, определяемом процессом ви­зуализации.

3. По системе координат:

- алгоритмы, работающие в пространстве объектов, когда каждая из N граней объекта сравнивается с остальными N-1 гранями;

- алгоритмы, работающие в пространстве изображения, ко­гда для каждого пикселя изображения определяется, какая из N граней объекта видна;

- смешанные методы, использующие работу как в объектном пространстве, так и в картинной плоскости, методы, вы­полняющие часть работы с непрерывными данными, а часть - с дискретными.

коге­рентность (от английского coherenceсвязность). Выделяют не­сколько типов:

• когерентность в картинной плоскости — если данный пиксель соответствует точке грани Р, то скорее всего соседние пиксе­ли также соответствуют точкам той же грани;

• когерентность в пространстве объектов - если данный объект (грань) видим (невидим), то расположенный рядом объект (грань) скорее всего также является видимым (невидимым).

• временная: грани, видимые в данном кадре, ско­рее всего будут видимы и в следующем; аналогично грани, невидимые в данном кадре, скорее всего будут невидимы и в следующем.

Отсечение нелицевых граней

Рассмотрим многогранник, для каждой грани которого задан единичный вектор нормали. Если вектор нормали грани n составляет с вектором l, задающим направление проектирования, тупой угол, то эта грань заведомо не может быть видна. Такие грани называются нелицевыми. Если угол является острым, грань называется лицевой.

Когда объекты невыпуклые или в сцене присут­ствует несколько объектов, они могут частично перекрываться или закрывать друг друга. В та­кой ситуации применяться методы сортировки - можно по удалённости граней от точки зрения расположить их в некотором порядке и после этого изобра­жать эти грани по степени их близости.

Не­лицевые грани всегда не видны. Ребра между нелицевыми гранями также всегда не видны. Ребро между лицевой и нелицевой гранями вполне может быть и видимым.

Алгоритмы удаления линий

Вначале из описания каждого тела удаляются нелицевые плос­кости, а также ребра, образованные пересечением нелицевых граней. Затем каждое из ребер проверяется на закрывание каждой лицевой гранью. Возможны следующие случаи :

• грань ребра не закрывает;

• грань полностью закрывает ребро, тогда она удаляется из списка рассматриваемых;

• грань частично закрывает ребро, в этом случае ребро разбива­ется на несколько частей, видимыми из которых являются не более двух; само ребро удаляется из списка, но в список про­веренных ребер добавляются те его части, которые данной гранью не закрываются.

Билет 24