Open Image Denoise, an open source image denoise library

Intel Open Image

Intel Open Image Denoise is an open source library of high-quality, high-performance denoising filters for ray-traced rendered images

Nowadays there are a lot of applications and libraries that are focused towards imagesOf the best known we have Photoshop, GIMP, Krita, paint, among others, although it is clear that the first two are the most complete.

However for specific cases of work it is not necessary to use so many resources for the execution of any of these, say for example only crop images, change size, appearance, format, handle some minor tweaks, among others.

The point of this is that I recently came across a excellent library that caught my attention, since it is focused on noise removal in images and that above all it is open source and is developed hand in hand with Intel.

When we talk about noise in images, no, it's not in reference to sound/audio (which doesn't make sense if we're talking about images), but digital noise is:

The random variation of brightness or color in digital images produced by the input device is basically those "grains" or pixels that do not match the color. 

And well returning to the point of the library that we will talk about today is «Open Image Denoise» that develops a collection of filters to eliminate noise from images prepared with ray tracing rendering systems.

About Open Image Denoise

Open Image Denoise is being developed as part of a larger oneAPI Rendering Toolkit project aimed at developing software visualization tools for scientific calculations including the Embree ray tracing library, the GLuRay photorealistic rendering system, the OSPRay distributed ray tracing platform, and the OpenSWR software rasterization system.

The objective of the project is provide high-quality, efficient, and easy-to-use denoising features that can be applied to improve the quality of ray tracing results. The proposed filters allow, based on the result of a shorter ray tracing cycle, to obtain a final level of quality comparable to the result of a more expensive and slower detailed rendering process.

Open Image Denoise filters out random noise, such as Monte Carlo numerical integration ray tracing (MCRT). To achieve high-quality rendering in such algorithms, large numbers of rays are required to be tracked; otherwise, noticeable artifacts appear in the resulting image in the form of random noise.

Using Open Image Denoise allows to reduce the number of calculations required by several orders of magnitude when calculating each pixel. As a result, it is possible to generate a noisy image initially much faster, but then bring it down to acceptable quality using fast noise reduction algorithms. With the right equipment, the proposed tools can even be used for interactive ray tracing with denoising on the fly.

Open Image Denoise recently received its new version 2.0 in which the following changes stand out:

  • Support for speeding up noise reduction operations using the GPU. Implemented support for GPU offloading with SYCL, CUDA, and HIP systems that can be used with GPUs based on Intel Xe architecture, AMD RDNA2, AMD RDNA3, NVIDIA Volta, NVIDIA Turing, NVIDIA Ampere, NVIDIA Ada Lovelace, and NVIDIA Hopper.
  • Added a new buffer management API, which allows you to select storage type, copy host data, and import external buffers from graphics APIs like Vulkan and Direct3D 12.
  • Added support for asynchronous execution mode (oidnExecuteFilterAsync and oidnSyncDevice functions).
  • Added an API to send requests to physical devices present in the system.
  • Added the oidnNewDeviceByID function to create a new device based on the physical device id, such as UUID or PCI address.
  • Added features for portability with SYCL, CUDA and HIP.
  • Added new device scan options (systemMemorySupported,
  • ManagedMemorySupported, externalMemoryTypes).
  • Added a parameter to set the quality level of the filters.

Open Image Denoise can be used on various classes of devices, from laptops and PCs to clustered nodes. The implementation is optimized for various classes of 64-bit Intel CPUs. If you want to know the requirements to be able to run Open Image Denoise as well as its installation method, you can consult the following link.

The code is written in C++ and released under the Apache 2.0 license.


Leave a Comment

Your email address will not be published. Required fields are marked with *

*

*

  1. Responsible for the data: AB Internet Networks 2008 SL
  2. Purpose of the data: Control SPAM, comment management.
  3. Legitimation: Your consent
  4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
  5. Data storage: Database hosted by Occentus Networks (EU)
  6. Rights: At any time you can limit, recover and delete your information.