Сағындықова А.А., Турсынова Н.A

Казахский национальный исследовательский технический университет имени К.И Сатпаева, Казахстан, Алматы

Abzalbekkyzy.alek@mail.ru, nazzarina@inbox.ru

 

Обзор методов и алгоритмов обработки изображений

 

Аннотация. В данной статье описан обзор методов и алгоритмов обработки изображений. Обозначены виды рендеринга. Рассмотрен рендеринг с использованием рендер-фермы.  Дано описание параллельного рендеринга. Выделены параллельные алгоритмы построения изображений.

Ключевые слова: Изображение, рендеринг, визуализация, рендер-ферма, параллельный рендеринг, sort-first, sort-middle, sort-last.

На сегодняшний день важным вопросом в области моделирования какого – либо проекта является качественная визуализация данных. При этом критичным оказывается, как качество картинки, так и время, которое тратится на построение изображения. Если объект или процесс, который требуется визуализировать, является довольно сложным, а требования к качеству картинки довольно высоки, то процесс построения изображений требует значительных вычислительных ресурсов. По этой причине в настоящее время наиболее оптимальным вариантом является применение методов параллельного построения изображений.

Конечные пользователи неоднократно поражались красивыми пейзажами в компьютерных играх и анимационных 3D-фильмах, спецэффектам в кино и креативным решениям в рекламе. Все они создаются при помощи такой современной технологии, как рендеринг. Рендеринг - это процесс создания плоского изображения (картинки) по разработанной 3D-модели. Или, проще говоря, получение фотографического изображения посредством просчёта освещения (т.е. создание теней, отражений и преломлений света, наложения бликов) предметов, что придаёт им большую реалистичность.
Процесс рендеринга - непростая задача. Одна из основных задач рендеринга - создание изображения, максимально приближенного к действительности. Понятно, что для этого компьютер должен учитывать все законы реального мира. По этой причине количество вычислений может быть достаточно большим. При заключительном рендеринге компьютер учитывает все факторы для достижения максимально реалистичной сцены, поэтому расчёт может растянуться на долгие часы. На продолжительность рендеринга влияет не только мощность процессора, но также и количество, и сложность учитываемых факторов.

Существуют несколько видов рендеринга [1]:

­             Реалистический рендеринг (realistic rendering) – техника, создания «реалистического» цветного видеоизображения, учитывающая, в частности, эффекты излучения, отражения и преломления света, является частью компьютерной анимации. Средства реализации реалистического рендеринга представляют собой компьютерную имитацию использования обычных художественных средств и методов (X-методов или Natural Media), как бы «без помощи компьютера». Эти средства обеспечивают создание и модификацию источников света, закраску поверхности объектов, наложение на них нужной текстуры (например, различного рода шероховатостей), искажение поверхностей, внесение эффектов полупрозрачности объектов.

­             Нереалистический рендеринг (NPR, Non-photorealistic rendering) – тип компьютерной генерации изображений, не ставящий целью достижение фотореализма; обычно означает компьютерное моделирование различных художественных средств и методов.

­             Живописный рендеринг (Painterly Rendering) – термин, используемый для компьютерных графических работ, имитирующих работу, выполненную вручную. Большинство программ для реализации живописного рендеринга ориентированы на обработку изобразительного материала, заранее подготовленного другими средствами. Такие программы имеют в своем составе специальные алгоритмы и инструментарий, позволяющие вводить различные эффекты и производить их настройку (в том числе закраску, штриховку, оконтуривание, затенение).

Для процесса ускорения рендеринга и получения качественных визуальных данных, рассмотрим:

­             рендеринг с использование рендер – фермы;

­             параллельный рендеринг.

Рендер ферма – это группа компьютеров, объединенных в единую сеть, используемая для преобразования 3D сцены в 2D изображения. Зачем нужна рендер ферма? Рендеринг может длится очень долго, особенно если это анимация или изображения высокого разрешения и качества. Иногда не хватает собственных ресурсов, вычислительной мощности и времени, для рендеринга сцен. Использование рендер фермы позволяет значительно ускорить процессы рендера, созданными в 3d-редакторах.

Вычислительная мощность рендер фермы измеряется в ГГц. Эта характеристика определяется по тестам производительности при рендеринге и не равна сумме частот процессоров ячеек рендер фермы. Т.к. рендеринг является легко распараллеливаемым процессом и загружает все ядра процессоров, существенную роль на вычислительную мощность оказывает число потоков/ядер процессора. Время рендеринга для большого количества кадров практически линейно зависит от числа ячеек рендер фермы, но менее линейно зависит от количества ядер в процессоре. Объём оперативной памяти ячеек также влияет на скорость рендеринга. На скорость рендеринга также влияет разрешение изображения и частота кадров.

Рендер-фермы могут работать в двух режимах – online и offline.
Online рендер-ферма работает круглосуточно и позволяет независимо от оператора фермы загружать сцены и отслеживать ход рендеринга. Все процессы на online рендер-ферме автоматизированы. Однако такая ферма не позволяет прогнозировать время завершения рендеринга. Так, например, одна сцена может простоять в очереди несколько часов или суток, так как перед вашей задачей окажется очень тяжёлый проект.

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

Существуют различные алгоритмы рендеринга, но традиционно выделяют четыре группы методов визуализации:

1) сканирование строк, при котором получение изображения проводится без учета положения наблюдателя;

2) бросание лучей, при котором сцена рассматривается как наблюдаемая из определенной точки;

3) глобальная иллюминация, которая позволяет симулировать диффузное отражение света от поверхностей, что позволяет достичь эффекта мягкого освещения;

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

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

На сегодняшний день считаются наиболее мощными и универсальными методами создания реалистичны изображений – это методы трассировки лучей. Существуют много примеров реализации алгоритмов трассировки для качественного отображения самых сложных трехмерных сцен. Универсальность методов трассировки обусловлена тем, что в их основе лежат простые и ясные понятия, отражающие человеческий опыт восприятия окружающего мира. Будем полагать, что окружающие объекты обладают по отношению к свету следующими свойствами: излучают; отражают и поглощают; пропускают сквозь себя. Каждое из этих свойств можно описать набором характеристик. Например, излучение можно охарактеризовать интенсивностью, направленностью, спектром. В методе обратной трассировки лучи света рассчитываются и трассируются в обратном направлении. Через каждый пиксель экрана в направлении от наблюдателя проводится луч и трассируется до пересечения с объектом сцены. Далее рассчитывается отраженный луч (в направлении на источник света), чтобы учесть световую энергию, которая может быть принесена в направлении наблюдателя. Отраженный луч анализируется аналогично. Для определения цвета пикселя изображения нужно учитывать свойства объекта, а также то, какое световое излучение приходится на соответствующую точку объекта. Если объект зеркальный (хотя бы частично), испускается отраженный луч и трассируется рекурсивно. Результат трассировки отраженного луча учитывается при определении цветов пикселя пропорционально коэффициенту отражения. Когда выяснится, что текущий луч обратной трассировки не пересекает какой-либо объект, а уходит в свободное пространство, то на этом трассировка для этого луча заканчивается [2].

Классификация параллельных методов получения изображений является общепринятой. Суть задачи получения графического изображения — вычисление воздействия каждого примитива на каждый пиксель. В результате примитивы могут попасть на экран или нет. Следовательно, построение изображения может рассматриваться как проблема сортировки примитивов.

Таким образом, предлагается классификация по тому, в каком месте параллельного графического конвейера происходят сортировки. Во время геометрической обработки – «sort-first» сортировки выполняются вначале, в естественной точке разрыва конвейера – «sort-middle» в середине, во время растеризации – «sort-last» в конце. Выбор каждого из этих классов приводит к разным параллельным алгоритмам построения изображений с различными свойствами [3].

­             Sort-first подход заключается в распределении примитивов на самом раннем этапе графического конвейера – во время геометрической обработки. Область экрана разбивается на части, количество которых совпадает с количеством процессоров, и каждый процессор занимается построением одной области конечного изображения. Данный алгоритм состоит из следующих шагов: 1) объекты распределяются по вычислительным узлам произвольным образом; 2) каждый узел вычисляет области экрана, куда попадают соответствующие ему объекты; 3) происходит перераспределение данных на нужные процессоры; 4) выполняется геометрическая обработка и растеризация [2].

­             Sort-middle в алгоритме объекты перераспределяются в середине графического конвейера, т.е. между геометрической обработкой и растеризацией. Таким образом, перед перераспределением объекты переведены в экранные координаты и готовы к растеризации. Геометрическая обработка и растеризация обычно выполняются на разных процессорах. Геометрические процессоры производят необходимые вычисления с объектами, после чего классифицируют их по расположению на экране. Плоские объекты распределяются соответствующим образом между процессорами, где происходит их дальнейшая обработка. Данный алгоритм считается основным, потому что перераспределение данных происходит в естественном месте графического конвейера [2].

­             Soft-last алгоритм случайным образом распределяет объекты между всеми вычислительными узлами. Каждый узел строит растровое изображение своего подмножества объектов независимо от того, в какой области экрана они будут расположены. Полученное изображение пересылается на специальный процессор, который совмещает все частично отрисованные кадры в один. Последний шаг алгоритма является очень трудоемким, т.к. требует обработки огромных пиксельных данных [2]. Существует два различных метода реализации последнего шага алгоритма: 1) Передавать только ту часть изображения, которая участвовала в растеризации; 2) передавать изображение целиком. Преимущество данного подхода состоит в том, что совмещение регулярных данных может быть легко реализовано на аппаратном уровне.

 

 

Список литературы

 

1.Элементы Технологии видео  http://www.gpntb.ru/win/book/4/Doc35.HTML  

2.Новиков К., Джосан О. Метод параллельного построения изображений при визуалицазии на bluegene/p // Труды Международной суперкомпьютерной конференции "Научный сервис в сети Интернет: суперкомпьютерные центры и задачи" (20-25 сентября 2010 г., г. Новороссийск). – Издательство Московского университета, 2010. – С. 164–168.

3.Манаков Д. Анализ параллельных визуальных технологий // Вычислительные технологии 2007, Том 12, № 1. – С.45–60