Blender V5.0
denoiser_oidn.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2011-2022 Blender Foundation
2 *
3 * SPDX-License-Identifier: Apache-2.0 */
4
5#pragma once
6
8#include "util/thread.h"
9
11
12/* Implementation of a CPU based denoiser which uses OpenImageDenoise library. */
13class OIDNDenoiser : public Denoiser {
14 public:
15 /* Forwardly declared state which might be using compile-flag specific fields, such as
16 * OpenImageDenoise device and filter handles. */
17 class State;
18
19 OIDNDenoiser(Device *denoiser_device, const DenoiseParams &params);
20
21 bool denoise_buffer(const BufferParams &buffer_params,
22 RenderBuffers *render_buffers,
23 const int num_samples,
24 bool allow_inplace_modification) override;
25
26 protected:
27 uint get_device_type_mask() const override;
28
29 /* We only perform one denoising at a time, since OpenImageDenoise itself is multithreaded.
30 * Use this mutex whenever images are passed to the OIDN and needs to be denoised. */
32};
33
unsigned int uint
Denoiser(Device *denoiser_device, const DenoiseParams &params)
Definition denoiser.cpp:211
bool denoise_buffer(const BufferParams &buffer_params, RenderBuffers *render_buffers, const int num_samples, bool allow_inplace_modification) override
OIDNDenoiser(Device *denoiser_device, const DenoiseParams &params)
uint get_device_type_mask() const override
static thread_mutex mutex_
#define CCL_NAMESPACE_END
uiWidgetBaseParameters params[MAX_WIDGET_BASE_BATCH]
std::mutex thread_mutex
Definition thread.h:27