Доступна библиотека устранения шума на изображениях Open Image Denoise 2.1

Компания Intel опубликовала выпуск проекта oidn 2.1 (Open Image Denoise), развивающего коллекцию фильтров для устранения шумов на изображениях, подготовленных с использованием систем рендеринга на основе трассировки лучей. Open Image Denoise развивается как часть более крупного проекта oneAPI Rendering Toolkit, нацеленного на разработку средств программной визуализации научных расчётов (SDVis (Software Defined Visualization), включающих библиотеку трассировки лучей Embree, систему фотореалистичной отрисовки GLuRay, платформу распределённой трассировки лучей OSPRay и систему программной растеризации OpenSWR. Код написан на языке С++ и опубликован под лицензией Apache 2.0.

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

Open Image Denoise обеспечивает отсеивание случайного шума, возникающего, например, при трассировке лучей на основе численного интегрирования по методу Монте-Карло (MCRT). Для достижения высокого качества рендеринга в подобных алгоритмах требуется проведение трассировки очень большого числа лучей, иначе на результирующем изображении появляются заметные артефакты в виде случайного шума.

Применение Open Image Denoise позволяет на несколько порядков сократить количество необходимых вычислений при расчёте каждого пикселя. В итоге, можно значительно быстрее сгенерировать изначально зашумлённое изображение, но затем довести его до приемлемого качества при помощи быстрых алгоритмов подавления шумов. При наличии соответствующего оборудования предложенный инструментарий можно применять даже для интерактивной трассировки лучей c устранением шумов на лету.

Библиотека может применяться на различных классах устройств, от ноутбуков и ПК, до узлов в кластерах. Реализация оптимизирована для различных классов 64-разрядных CPU Intel с поддержкой инструкций SSE4, AVX2, AVX-512 и XMX (Xe Matrix Extensions), чипов Apple Silicon и систем с GPU Intel Xe (серии Arc, Flex и Max), NVIDIA (на базе архитектур Volta, Turing, Ampere, Ada Lovelace и Hopper) и AMD (на базе архитектур RDNA2 (Navi 21) и RDNA3 (Navi 3x)). В качестве минимального требования заявлена поддержка SSE4.1.




Основные изменения в выпуске Open Image Denoise 2.1:

  • Добавлена поддержка устранения шумов на изображениях с одним (прозрачность) или двумя (прозрачность и данные о глубине) дополнительными каналами.
  • Добавлена поддержка произвольного сочетания типов данных во входном изображении. Например, OIDN_FORMAT_FLOAT3 для цветов и OIDN_FORMAT_HALF3 для альбедо.
  • Проведена оптимизация производительности для большинства архитектур GPU.
  • Восстановлена поддержка сборочной опции OIDN_STATIC_LIB в CMake-сценариях, позволяющей собирать статические (только CPU) и гибридные (для CPU и GPU) библиотеки.
  • В объекты C++ API (DeviceRef, BufferRef, FilterRef) добавлен метод release().
  • Ценой снижения производительности решена проблема с более низким уровнем качества на интегрированных GPU Intel.
  • Добавлена поддержка компилятора Intel oneAPI DPC++/C++ Compiler 2024.0 и совместимых с ним открытых версий.

Release. Ссылка here.