前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Intel发布图像处理工具:开放式图像降噪

Intel发布图像处理工具:开放式图像降噪

作者头像
通信行业搬砖工
发布2023-07-09 11:22:14
6000
发布2023-07-09 11:22:14
举报
文章被收录于专栏:网络虚拟化

英特尔开放式图像降噪是一个开源库,其中包含高性能、高质量的去噪滤波器,适用于使用光线追踪渲染的图像。

代码语言:javascript
复制
#官方说法
Intel® Open Image Denoise:
High-Performance Denoising Library for Ray Tracing

英特尔开放式图像降噪是英特尔® oneAPI 渲染工具包的一部分,在宽松的 Apache 2.0 许可下发布。

英特尔开放式图像降噪的目的是提供一个开放、高质量、高效且易于使用的去噪库,从而显著减少基于光线追踪的渲染应用中的渲染时间。它过滤掉了路径追踪等随机光线追踪方法固有的蒙特卡罗噪声,将每个像素的必要样本量减少了多个数量级(取决于所需的接近地面真实值)。简单但灵活的 C/C++ API 可确保库可以轻松集成到大多数现有或新的渲染解决方案中。

英特尔开放式图像降噪库的核心是一系列基于深度学习的高效去噪滤波器,这些滤波器经过训练,可处理从 1 spp 到几乎完全收敛的各种每像素样本 (spp)。因此,它适用于预览和最终帧渲染。滤镜可以仅使用嘈杂的颜色(美颜)缓冲区对图像进行降噪,或者为了保留尽可能多的细节,还可以选择使用辅助特征缓冲区(例如反照率、正常)。大多数渲染器都支持此类缓冲区作为任意输出变量 (AOV),或者通常可以轻松实现。

尽管库附带了一组预先训练的筛选器模型,但并不强制使用这些模型。为了针对特定渲染器、样本计数、内容类型、场景等优化过滤器,可以使用随附的训练工具包和用户提供的图像数据集来训练模型。


支持说明

Intel Open Image Denoise supports a wide variety of CPUs and GPUs from different vendors:

英特尔开放式图像降噪支持来自不同供应商的各种 CPU 和 GPU:

  • Intel® 64 architecture compatible CPUs (with at least SSE4.1)
  • Apple Silicon CPUs
  • Intel Xe architecture GPUs, both dedicated and integrated, including Intel® Arc™ A-Series Graphics, Intel® Data Center GPU Flex Series (Xe-HPG microarchitecture), Intel® Data Center GPU Max Series (Xe-HPC), 11th-13th Gen Intel® Core™ processor graphics, and related Intel Pentium® and Celeron® processors (Xe-LP)
  • NVIDIA GPUs with Volta, Turing, Ampere, Ada Lovelace, and Hopper architectures
  • AMD GPUs with RDNA2 (Navi 21 only) and RDNA3 (Navi 3x) architectures

它可以在大多数机器上运行,从笔记本电脑到HPC系统中的工作站和计算节点。它足够高效,不仅适用于离线渲染,而且根据所使用的硬件,也适用于交互式甚至实时光线追踪。

英特尔开放式图像降噪利用现代指令集,如 CPU 上的英特尔 SSE4、AVX2 和 AVX-512、英特尔 GPU 上的英特尔 Xe 矩阵扩展(英特尔®® XMX)以及 NVIDIA GPU 上的张量内核,以实现高降噪性能。


系统要求:

您需要支持 SSE4.1 或 Apple Silicon 的 CPU 来运行英特尔开放式图像降噪,并且还需要 64 位 Windows、Linux 或 macOS 操作系统。

对于英特尔 GPU 支持,请同时安装最新的英特尔显卡驱动程序:

Windows:英特尔显卡驱动程序 31.0.101.4314 或更高版本,适用于英特尔®®锐炫™显卡、第 11-13 代智能英特尔酷睿™处理器显卡以及相关的英特尔®奔腾®和赛扬®处理器

Linux:面向通用 GPU 功能的英特尔®软件发布 20230323 或更高版本

不支持使用较旧的驱动程序版本,英特尔开放映像降噪可能仅以有限的功能运行,性能欠佳或可能不稳定。此外,如果在 Linux 上运行,则必须在英特尔专用 GPU 的 BIOS 中启用可调整大小的 BAR,如果在 Windows 上运行,强烈建议使用。

對於 NVIDIA GPU 支援,請同時安裝最新的 NVIDIA 繪圖驅動程序:

代码语言:javascript
复制
Windows:版本 522.06 或更高版本
Linux:版本 520.61.05 或更高版本
对于 AMD GPU 支持,请同时安装最新的 AMD 显卡驱动程序:
Windows:AMD 软件:肾上腺素版 23.4.3 驱动程序版本 22.40.51.05 或更高版本
Linux:Radeon Software for Linux 版本 22.40.5 或更高版本

版本历史:

Changes in v2.0.0:

  • 为英特尔 Xe 架构 GPU(Xe-LP、Xe-HPG 和 Xe-HPC)添加了 SYCL 设备
  • 为 NVIDIA Volta、Turing、Ampere、Ada Lovelace 和 Hopper 架构 GPU 添加了 CUDA 设备
  • 为 AMD RDNA2(仅 Navi 21)和 RDNA3(Navi 3x)架构 GPU 添加了 HIP 设备
  • 删除了 oidnMapBufferoidnUnmapBuffer 函数
  • 增加了对异步执行的支持
  • 增加了物理设备 API,用于查询系统中支持的设备
  • 增加了从物理设备 ID、UUID、LUID 或 PCI 地址创建设备的功能
  • 增加了 SYCL、CUDA 和 HIP 互操作性 API 函数
  • 增加了用于查询设备类型的 type 设备参数
  • 增加了 systemMemorySupportedmanagedMemorySupported 设备参数,用于查询设备所支持的内存分配
  • 添加了 externalMemoryTypes 设备参数,用于查询支持的外部内存处理类型
  • 增加了 quality 过滤器参数,用于设置过滤质量模式
  • 删除了 OIDN_STATIC_LIBOIDN_STATIC_RUNTIME CMake 选项,原因是技术限制 更多详细信息请参考intel官方描述。

Changes in v1.4.3:

  • Fixed hardcoded library paths in installed macOS binaries
  • Disabled VTune profiling support of oneDNN kernels by default, can be enabled using CMake options if required (DNNL_ENABLE_JIT_PROFILING and DNNL_ENABLE_ITT_TASKS)
  • Upgraded to oneTBB 2021.5.0 in the official binaries

Changes in v1.4.2:

  • Added support for 16-bit half-precision floating-point images
  • Added oidnGetBufferData and oidnGetBufferSize functions
  • Fixed performance issue on x86 hybrid architecture CPUs (e.g. Alder Lake)
  • Fixed build error when using OpenImageIO 2.3 or later
  • Upgraded to oneTBB 2021.4.0 in the official binaries

Changes in v1.4.1:

  • Fixed crash when in-place denoising images with certain unusual resolutions
  • Fixed compile error when building for Apple Silicon using some unofficial builds of ISPC

Changes in v1.4.0:

  • Improved fine detail preservation
  • Added the cleanAux filter parameter for further improving quality when the auxiliary feature (albedo, normal) images are noise-free
  • Added support for denoising auxiliary feature images, which can be used together with the new cleanAux parameter for improving quality when the auxiliary images are noisy (recommended for final frame denoising)
  • Normals are expected to be in the [-1, 1] range (but still do not have to be normalized)
  • Added the oidnUpdateFilterData function which must be called when the contents of an opaque data parameter bound to a filter (e.g. weights) has been changed after committing the filter
  • Added the oidnRemoveFilterImage and oidnRemoveFilterData functions for removing previously set image and opaque data parameters of filters
  • Reduced the overhead of oidnCommitFilter to zero in some cases (e.g. when changing already set image buffers/pointers or the inputScale parameter)
  • Reduced filter memory consumption by about 35%
  • Reduced total memory consumption significantly when using multiple filters that belong to the same device
  • Reduced the default maximum memory consumption to 3000 MB
  • Added the OIDN_FILTER_RT and OIDN_FILTER_RTLIGHTMAP CMake options for excluding the trained filter weights from the build to significantly decrease its size
  • Fixed detection of static TBB builds on Windows
  • Fixed compile error when using future glibc versions
  • Added oidnBenchmark option for setting custom resolutions
  • Upgraded to oneTBB 2021.2.0 in the official binaries

Changes in v1.3.0:

  • Improved denoising quality
    • Improved sharpness of fine details / less blurriness
    • Fewer noisy artifacts
  • Slightly improved performance and lowered memory consumption
  • Added directional (e.g. spherical harmonics) lightmap denoising to the RTLightmap filter
  • Added inputScale filter parameter which generalizes the existing (and thus now deprecated) hdrScale parameter for non-HDR images
  • Added native support for Apple Silicon and the BNNS library on macOS (currently requires rebuilding from source)
  • Added OIDN_NEURAL_RUNTIME CMake option for setting the neural network runtime library
  • Reduced the size of the library binary
  • Fixed compile error on some older macOS versions
  • Upgraded release builds to use oneTBB 2021.1.1
  • Removed tbbmalloc dependency
  • Appended the library version to the name of the directory containing the installed CMake files
  • Training:
    • Faster training performance
    • Added mixed precision training (enabled by default)
    • Added efficient data-parallel training on multiple GPUs
    • Enabled preprocessing datasets multiple times with possibly different options
    • Minor bugfixes

Changes in v1.2.4:

  • Added OIDN_API_NAMESPACE CMake option that allows to put all API functions inside a user-defined namespace
  • Fixed bug when TBB_USE_GLIBCXX_VERSION is defined
  • Fixed compile error when using an old compiler which does not support OpenMP SIMD
  • Added compatibility with oneTBB 2021
  • Export only necessary symbols on Linux and macOS

Changes in v1.2.3:

  • Fixed incorrect detection of AVX-512 on macOS (sometimes causing a crash)
  • Fixed inconsistent performance and costly initialization for AVX-512
  • Fixed JIT’ed AVX-512 kernels not showing up correctly in VTune

Changes in v1.2.2:

  • Fixed unhandled exception when canceling filter execution from the progress monitor callback function

Changes in v1.2.1:

  • Fixed tiling artifacts when in-place denoising (using one of the input images as the output) high-resolution (> 1080p) images
  • Fixed ghosting/color bleeding artifacts in black regions when using albedo/normal buffers
  • Fixed error when building as a static library (OIDN_STATIC_LIB option)
  • Fixed compile error for ISPC 1.13 and later
  • Fixed minor TBB detection issues
  • Fixed crash on pre-SSE4 CPUs when using some recent compilers (e.g. GCC 10)
  • Link C/C++ runtime library dynamically on Windows too by default
  • Renamed example apps (oidnDenoise, oidnTest)
  • Added benchmark app (oidnBenchmark)
  • Fixed random data augmentation seeding in training
  • Fixed training warning with PyTorch 1.5 and later

Changes in v1.2.0:

  • Added neural network training code
  • Added support for specifying user-trained models at runtime
  • Slightly improved denoising quality (e.g. less ringing artifacts, less blurriness in some cases)
  • Improved denoising speed by about 7-38% (mostly depending on the compiler)
  • Added OIDN_STATIC_RUNTIME CMake option (for Windows only)
  • Added support for OpenImageIO to the example apps (disabled by default)
  • Added check for minimum supported TBB version
  • Find debug versions of TBB
  • Added testing

Changes in v1.1.0:

  • Added RTLightmap filter optimized for lightmaps
  • Added hdrScale filter parameter for manually specifying the mapping of HDR color values to luminance levels

Changes in v1.0.0:

  • Improved denoising quality
    • More details preserved
    • Less artifacts (e.g. noisy spots, color bleeding with albedo/normal)
  • Added maxMemoryMB filter parameter for limiting the maximum memory consumption regardless of the image resolution, potentially at the cost of lower denoising speed. This is internally implemented by denoising the image in tiles
  • Significantly reduced memory consumption (but slightly lower performance) for high resolutions (> 2K) by default: limited to about 6 GB
  • Added alignment and overlap filter parameters that can be queried for manual tiled denoising
  • Added verbose device parameter for setting the verbosity of the console output, and disabled all console output by default
  • Fixed crash for zero-sized images

Changes in v0.9.0:

  • Reduced memory consumption by about 38%
  • Added support for progress monitor callback functions
  • Enabled fully concurrent execution when using multiple devices
  • Clamp LDR input and output colors to 1
  • Fixed issue where some memory allocation errors were not reported

Changes in v0.8.2:

  • Fixed wrong HDR output when the input contains infinities/NaNs
  • Fixed wrong output when multiple filters were executed concurrently on separate devices with AVX-512 support. Currently the filter executions are serialized as a temporary workaround, and a full fix will be included in a future release.
  • Added OIDN_STATIC_LIB CMake option for building as a static library (requires CMake 3.13.0 or later)
  • Fixed CMake error when adding the library with add_subdirectory() to a project

Changes in v0.8.1:

  • Fixed wrong path to TBB in the generated CMake configs
  • Fixed wrong rpath in the binaries
  • Fixed compile error on some macOS systems
  • Fixed minor compile issues with Visual Studio
  • Lowered the CPU requirement to SSE4.1
  • Minor example update

Changes in v0.8.0:

  • Initial beta release
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-05-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 通信行业搬砖工 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Changes in v2.0.0:
  • Changes in v1.4.3:
  • Changes in v1.4.2:
  • Changes in v1.4.1:
  • Changes in v1.4.0:
  • Changes in v1.3.0:
  • Changes in v1.2.4:
  • Changes in v1.2.3:
  • Changes in v1.2.2:
  • Changes in v1.2.1:
  • Changes in v1.2.0:
  • Changes in v1.1.0:
  • Changes in v1.0.0:
  • Changes in v0.9.0:
  • Changes in v0.8.2:
  • Changes in v0.8.1:
  • Changes in v0.8.0:
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档