Intel publikuje bibliotekę Open Image Denoise 2.0 Image Denoise

Firma Intel opublikowała wydanie projektu oidn 2.0 (Open Image Denoise), w ramach którego rozwijana jest kolekcja filtrów do odszumiania obrazów przygotowanych przy użyciu systemów renderowania opartych na ray tracingu. Open Image Denoise jest rozwijany jako część większego projektu oneAPI Rendering Toolkit, którego celem jest opracowanie narzędzi do wizualizacji oprogramowania naukowego (SDVis (Software Defined Visualization)), w tym biblioteki ray tracingu Embree, systemu renderowania fotorealistycznego GLuRay, platformy rozproszonego ray tracingu OSPRay , oraz system rasteryzacji oprogramowania OpenSWR. Kod napisany w C++ i opublikowany na licencji Apache 2.0.

Celem projektu jest zapewnienie wysokiej jakości, wydajnych i łatwych w użyciu funkcji odszumiania, które można zastosować w celu poprawy jakości wyników ray tracingu. Zaproponowane filtry pozwalają na podstawie wyniku skróconego cyklu ray tracingu uzyskać finalny poziom jakości porównywalny do wyniku kosztowniejszego i bardziej czasochłonnego procesu szczegółowego renderowania.

Open Image Denoise odfiltrowuje przypadkowe szumy, takie jak ray tracing metodą Monte Carlo Numerical Integration (MCRT). Aby uzyskać wysokiej jakości rendering w takich algorytmach, wymagane jest śledzenie bardzo dużej liczby promieni, w przeciwnym razie na obrazie wynikowym pojawią się zauważalne artefakty w postaci przypadkowego szumu.

Użycie Open Image Denoise pozwala zredukować liczbę niezbędnych obliczeń o kilka rzędów wielkości podczas obliczania każdego piksela. Dzięki temu możliwe jest znacznie szybsze generowanie początkowo zaszumionego obrazu, ale następnie doprowadzenie go do akceptowalnej jakości za pomocą szybkich algorytmów redukcji szumów. Przy odpowiednim wyposażeniu proponowane narzędzia mogą być nawet wykorzystywane do interaktywnego ray tracingu z eliminacją szumów w locie.

Z biblioteki można korzystać na różnych klasach urządzeń, od laptopów i komputerów PC po węzły w klastrach. Implementacja jest zoptymalizowana pod kątem różnych klas 64-bitowych procesorów Intel z obsługą instrukcji SSE4, AVX2, AVX-512 i XMX (Xe Matrix Extensions), układów Apple Silicon i systemów z procesorami graficznymi Intel Xe (serie Arc, Flex i Max), NVIDIA (oparte na architekturach Volta, Turing, Ampere, Ada Lovelace i Hopper) oraz AMD (oparte na architekturach RDNA2 (Navi 21) i RDNA3 (Navi 3x)). Wsparcie dla SSE4.1 jest zadeklarowane jako minimalne wymaganie.

Intel publikuje bibliotekę Open Image Denoise 2.0 Image Denoise
Intel publikuje bibliotekę Open Image Denoise 2.0 Image Denoise

Kluczowe zmiany w wydaniu Open Image Denoise 2.0:

  • Wsparcie dla przyspieszenia operacji redukcji szumów za pomocą GPU. Zaimplementowano obsługę odciążania GPU za pomocą systemów SYCL, CUDA i HIP, które mogą być używane z procesorami graficznymi opartymi na architekturze Intel Xe, AMD RDNA2, AMD RDNA3, NVIDIA Volta, NVIDIA Turing, NVIDIA Ampere, NVIDIA Ada Lovelace i NVIDIA Hopper.
  • Dodano nowy interfejs API do zarządzania buforami, który umożliwia wybór typu pamięci masowej, kopiowanie danych z hosta i import zewnętrznych buforów z graficznych interfejsów API, takich jak Vulkan i Direct3D 12.
  • Dodano obsługę trybu wykonywania asynchronicznego (funkcje oidnExecuteFilterAsync i oidnSyncDevice).
  • Dodano API do wysyłania zapytań do fizycznych urządzeń obecnych w systemie.
  • Dodano funkcję oidnNewDeviceByID do tworzenia nowego urządzenia na podstawie fizycznego identyfikatora urządzenia, takiego jak UUID lub adres PCI.
  • Dodano funkcje przenośności z SYCL, CUDA i HIP.
  • Dodano nowe opcje skanowania urządzeń (systemMemorySupported, ManagedMemorySupported, externalMemoryTypes).
  • Dodano parametr do ustawiania poziomu jakości filtrów.

Źródło: opennet.ru

Dodaj komentarz