Tiled OIDN Denoising

Discussion related to the Engine functionality, implementations and API.
CodeHD
Posts: 182
Joined: Tue Dec 11, 2018 12:38 pm

Re: Tiled OIDN Denoising

Post by CodeHD » Mon Jun 17, 2019 10:41 am

Oh, nice to see them adopting it :)

No we don't use 128 pixels, I wrote 50 into it. But then again, we do the overlapping with a ramp function to avoid the seam. You didn't write it in your posts there, so I don't know if Attila is aware of it? (I will write a comment there.)

I never noticed any seams in my tests, certainly nothing that would be noticable for an artistic output.
In any case I'm not sure it can be done quite so easily, since usually we don't denoise images that are multiples of 128 pixels in each dimension. You can probably have each tile start at a multiple of 128 from one side. It would add some more processing time.

In the very early tests I did I also noticed that the first row or column (it was then striped denoising) always ended up exactly the same as the full image denoise. But I never investiagted further if that could be used becaues it seemed like the difference was so tiny.

User avatar
Dade
Developer
Developer
Posts: 3270
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: Tiled OIDN Denoising

Post by Dade » Mon Jul 29, 2019 9:25 pm

Intel Oidn v1.0 has been released, with tile denoising and more.
Support LuxCoreRender project with salts and bounties

kintuX
Posts: 474
Joined: Wed Jan 10, 2018 2:37 am

Re: Tiled OIDN Denoising

Post by kintuX » Mon Jul 29, 2019 10:25 pm

Dade wrote:
Mon Jul 29, 2019 9:25 pm
Intel Oidn v1.0 has been released, with tile denoising and more.
Wohowww :D Thanks for the notice!

CodeHD
Posts: 182
Joined: Tue Dec 11, 2018 12:38 pm

Re: Tiled OIDN Denoising

Post by CodeHD » Tue Jul 30, 2019 11:25 am

Their implementation of tiled denoising now exposes it with a "max. memory" input, which is nice so we can now directly expose it as a memory setting instead of number of pixels.
I could give it a try later this week, should be easy enough to implement as far as I see it. Just need to rename the tile size paramter and add one line to the old, non-tiled implementation :lol:

User avatar
Dade
Developer
Developer
Posts: 3270
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: Tiled OIDN Denoising

Post by Dade » Tue Jul 30, 2019 2:52 pm

CodeHD wrote:
Tue Jul 30, 2019 11:25 am
I could give it a try later this week
Sure :!:
Support LuxCoreRender project with salts and bounties

CodeHD
Posts: 182
Joined: Tue Dec 11, 2018 12:38 pm

Re: Tiled OIDN Denoising

Post by CodeHD » Thu Aug 01, 2019 8:46 pm

Ok, I downloaded it today and tried it out. Worked directly, so no broken dependencies or something (I didn't try Blender viewport denoise yet). The change in the code was as easy as I thought.

From a first quick test on the LuxMarkHotel @4K and 20 samples, there is a visible difference between the output from v1.0 and v0.9. The new one looks sharper, but at 20 samples the scene is still quite noisy. I will let a 1000 samples reference render over night and post some more details then.

There is still a numerically measurable difference between a denoising limited to 1GB and non-tiled, but it is a lot smaller than before.

In terms of performance, not much seems to have changed. The non-tiled execution took the same time and memory.

CodeHD
Posts: 182
Joined: Tue Dec 11, 2018 12:38 pm

Re: Tiled OIDN Denoising

Post by CodeHD » Fri Aug 02, 2019 11:12 am

Some test images can be found here:

https://owncloud.gwdg.de/index.php/s/mkgXCBpkoQF0Egz

I only denoised the 16 sample image with OIDN v0.9 for comparison now.

As I said before, the behaviour changed a bit, especially at low samples I noticed some color differences between 0.9 and 1.0 in this scene. I don't know if for the better or for the worse, but I suggest people using it to denoise low-sample videos should test the current performance.

Otherwise I noticed no problems, so I would clean out the code and make a pull request.

Anyone who wants to test it now, just download the new OIDN binaries and replace them. In Blender, set the "Tile Size" setting for OIDN to something large like 16000 to use the new default 6GB memory limit.

User avatar
Dade
Developer
Developer
Posts: 3270
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: Tiled OIDN Denoising

Post by Dade » Mon Aug 19, 2019 11:19 am

I merged CodeHD's patch and now all versions use Intel Oidn v1.0.
Support LuxCoreRender project with salts and bounties

User avatar
Dade
Developer
Developer
Posts: 3270
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: Tiled OIDN Denoising

Post by Dade » Tue Oct 15, 2019 3:25 pm

Intel Oidn v1.1.0 has been released: https://github.com/OpenImageDenoise/oid ... tag/v1.1.0

Nothing new particularly interesting for us.
Support LuxCoreRender project with salts and bounties

Post Reply