An open-source library of high-performance, high-quality denoising filters for ray-traced images using deep learning.
Intel Open Image Denoise is an open-source library that provides high-performance denoising filters for ray-traced images. It uses deep learning models to remove Monte Carlo noise from images rendered with stochastic ray tracing methods like path tracing, allowing for significantly reduced rendering times. The library supports a wide range of CPUs and GPUs, making it suitable for everything from offline rendering to interactive applications.
Developers and researchers working on ray tracing-based rendering applications, including those in visual effects, animation, gaming, and scientific visualization who need efficient noise reduction.
It offers a high-quality, open-source alternative to proprietary denoising solutions, with cross-platform support, the ability to train custom models, and performance optimized for both CPUs and GPUs from multiple vendors.
Intel® Open Image Denoise library
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Exploits modern instruction sets like AVX-512 and AI accelerators on CPUs and GPUs from Intel, NVIDIA, AMD, and Apple, enabling high-speed denoising suitable for interactive ray tracing.
Provides simple C99 and C++11 APIs with object-oriented, reference-counted handles, making integration into existing rendering engines straightforward, as shown in the example code snippets.
Includes a training toolkit to optimize filter models for specific renderers, sample counts, or content types using user-provided datasets, avoiding reliance on pre-trained weights.
Offers high, balanced, and fast quality settings for filters, allowing developers to trade image quality for performance in real-time or preview rendering scenarios.
Compilation requires multiple prerequisites like CMake, ISPC, TBB, and vendor-specific SDKs (e.g., CUDA, ROCm), with separate setup for each GPU backend, increasing integration overhead.
Requires up-to-date graphics drivers (e.g., NVIDIA 528.33 or newer) and specific GPU architectures; features like external memory import may not be supported on all systems, limiting interoperability.
Supports async operations but mandates manual synchronization with oidnSyncDevice and careful error handling, which can be error-prone in multi-threaded applications.