You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: source/elements/oneART/source/oidn-spec.rst
+14-14Lines changed: 14 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
-
Intel Open Image Denoise API
2
-
============================
1
+
Open Image Denoise API
2
+
======================
3
3
4
-
Intel Open Image Denoise provides a C99 API (also compatible with C++) and a C++11 wrapper API as well. For simplicity, this document mostly refers to the C99 version of the API.
4
+
Open Image Denoise provides a C99 API (also compatible with C++) and a C++11 wrapper API as well. For simplicity, this document mostly refers to the C99 version of the API.
5
5
6
6
The API is designed in an object-oriented manner, e.g. it contains device objects (``OIDNDevice`` type), buffer objects (``OIDNBuffer`` type), and filter objects (``OIDNFilter`` type). All objects are reference-counted, and handles can be released by calling the appropriate release function (e.g. ``oidnReleaseDevice``) or retained by incrementing the reference count (e.g. ``oidnRetainDevice``).
7
7
@@ -20,7 +20,7 @@ To have a quick overview of the C99 and C++11 APIs, see the following simple exa
@@ -55,7 +55,7 @@ To have a quick overview of the C99 and C++11 APIs, see the following simple exa
55
55
56
56
#include <OpenImageDenoise/oidn.hpp>
57
57
...
58
-
// Create an Intel Open Image Denoise device
58
+
// Create an Open Image Denoise device
59
59
oidn::DeviceRef device = oidn::newDevice();
60
60
device.commit();
61
61
@@ -79,7 +79,7 @@ To have a quick overview of the C99 and C++11 APIs, see the following simple exa
79
79
Device
80
80
------
81
81
82
-
Intel Open Image Denoise supports a device concept, which allows different components of the application to use the Open Image Denoise API without interfering with each other. An application first needs to create a device with
82
+
Open Image Denoise supports a device concept, which allows different components of the application to use the Open Image Denoise API without interfering with each other. An application first needs to create a device with
83
83
84
84
::
85
85
@@ -134,7 +134,7 @@ Parameters supported by all devices.
134
134
135
135
Additional parameters supported only by CPU devices.
136
136
137
-
Note that the CPU device heavily relies on setting the thread affinities to achieve optimal performance, so it is highly recommended to leave this option enabled. However, this may interfere with the application if that also sets the thread affinities, potentially causing performance degradation. In such cases, the recommended solution is to either disable setting the affinities in the application or in Intel Open Image Denoise, or to always set/reset the affinities before/after each parallel region in the application (e.g., if using TBB, with ``tbb::task_arena`` and ``tbb::task_scheduler_observer``).
137
+
Note that the CPU device heavily relies on setting the thread affinities to achieve optimal performance, so it is highly recommended to leave this option enabled. However, this may interfere with the application if that also sets the thread affinities, potentially causing performance degradation. In such cases, the recommended solution is to either disable setting the affinities in the application or in Open Image Denoise, or to always set/reset the affinities before/after each parallel region in the application (e.g., if using TBB, with ``tbb::task_arena`` and ``tbb::task_scheduler_observer``).
138
138
139
139
Once parameters are set on the created device, the device must be committed with
140
140
@@ -148,7 +148,7 @@ This device can then be used to construct further objects, such as buffers and f
148
148
149
149
void oidnReleaseDevice(OIDNDevice device);
150
150
151
-
Note that Intel Open Image Denoise uses reference counting for all object types, so this function decreases the reference count of the device, and if the count reaches 0 the device will automatically get deleted. It is also possible to increase the reference count by calling
151
+
Note that Open Image Denoise uses reference counting for all object types, so this function decreases the reference count of the device, and if the count reaches 0 the device will automatically get deleted. It is also possible to increase the reference count by calling
152
152
153
153
::
154
154
@@ -183,7 +183,7 @@ to get notified when errors occur. Only a single callback function can be regist
183
183
184
184
When the device construction fails, ``oidnNewDevice`` returns ``NULL`` as device. To detect the error code of a such failed device construction, pass ``NULL`` as device to the ``oidnGetDeviceError`` function. For all other invocations of ``oidnGetDeviceError``, a proper device handle must be specified.
185
185
186
-
The following errors are currently used by Intel Open Image Denoise:
186
+
The following errors are currently used by Open Image Denoise:
@@ -202,7 +202,7 @@ Possible error codes, i.e., valid constants of type ``OIDNError``.
202
202
Buffer
203
203
------
204
204
205
-
Large data like images can be passed to Intel Open Image Denoise either via pointers to memory allocated and managed by the user (this is the recommended, often easier and more efficient approach, if supported by the device) or by creating buffer objects (supported by all devices). To create a new data buffer with memory allocated and owned by the device, holding ``byteSize`` number of bytes, use
205
+
Large data like images can be passed to Open Image Denoise either via pointers to memory allocated and managed by the user (this is the recommended, often easier and more efficient approach, if supported by the device) or by creating buffer objects (supported by all devices). To create a new data buffer with memory allocated and owned by the device, holding ``byteSize`` number of bytes, use
206
206
207
207
::
208
208
@@ -273,7 +273,7 @@ Supported data formats, i.e., valid constants of type ``OIDNFormat``.
273
273
Filter
274
274
------
275
275
276
-
Filters are the main objects in Intel Open Image Denoise that are responsible for the actual denoising. The library ships with a collection of filters which are optimized for different types of images and use cases. To create a filter object, call
276
+
Filters are the main objects in Open Image Denoise that are responsible for the actual denoising. The library ships with a collection of filters which are optimized for different types of images and use cases. To create a filter object, call
277
277
278
278
::
279
279
@@ -338,7 +338,7 @@ Filters support a progress monitor callback mechanism that can be used to report
338
338
OIDNProgressMonitorFunction func,
339
339
void* userPtr);
340
340
341
-
Only a single callback function can be registered per filter, and further invocations overwrite the previously set callback function. Passing ``NULL`` as function pointer disables the registered callback function. Once registered, Intel Open Image Denoise will invoke the callback function multiple times during filter operations, by passing the payload as set at registration time (``userPtr`` argument), and a ``double`` in the range [0, 1] which estimates the progress of the operation (``n`` argument). When returning ``true`` from the callback function, Intel Open Image Denoise will continue the filter operation normally. When returning ``false``, the library will cancel the filter operation with the ``OIDN_ERROR_CANCELLED`` error code.
341
+
Only a single callback function can be registered per filter, and further invocations overwrite the previously set callback function. Passing ``NULL`` as function pointer disables the registered callback function. Once registered, Open Image Denoise will invoke the callback function multiple times during filter operations, by passing the payload as set at registration time (``userPtr`` argument), and a ``double`` in the range [0, 1] which estimates the progress of the operation (``n`` argument). When returning ``true`` from the callback function, Open Image Denoise will continue the filter operation normally. When returning ``false``, the library will cancel the filter operation with the ``OIDN_ERROR_CANCELLED`` error code.
342
342
343
343
After setting all necessary parameters for the filter, the changes must be commmitted by calling
344
344
@@ -356,7 +356,7 @@ Finally, an image can be filtered by executing the filter with
356
356
357
357
which will read the input image data from the specified buffers and produce the denoised output image.
358
358
359
-
In the following we describe the different filters that are currently implemented in Intel Open Image Denoise.
359
+
In the following we describe the different filters that are currently implemented in Open Image Denoise.
360
360
361
361
RT
362
362
~~
@@ -490,7 +490,7 @@ Parameters supported by the ``RTLightmap`` filter.
490
490
Training
491
491
========
492
492
493
-
The Intel Open Image Denoise source distribution includes a Python-based neural network training toolkit (located in the ``training`` directory), which can be used to train the denoising filter models with image datasets provided by the user. This is an advanced feature of the library which usage requires some background knowledge of machine learning and basic familiarity with deep learning frameworks and toolkits (e.g. PyTorch or TensorFlow, TensorBoard).
493
+
The Open Image Denoise source distribution includes a Python-based neural network training toolkit (located in the ``training`` directory), which can be used to train the denoising filter models with image datasets provided by the user. This is an advanced feature of the library which usage requires some background knowledge of machine learning and basic familiarity with deep learning frameworks and toolkits (e.g. PyTorch or TensorFlow, TensorBoard).
494
494
495
495
The training toolkit consists of the following command-line scripts:
0 commit comments