Hi Steve,
I replied to someone else about this workflow so let me copy paste the response below.
I might do a series on denoising on youtube at some point. There are many ways of squeezing details out of renders in comp.
Ok both of these are more centered around compositor tasks using Nuke, Fusion or Natron. Blenders built in compositor doesn’t support log-space but it can be hacked.
Often when dealing with high contrast HDRI / float images and doing 2d transforms or reposition in comp you want to reduce the amount of filter hits as much as possible to avoid any unnecessary degradation in the image. Most 2d transform filters (lancos, bicubic etc) were not developed with float values in mind, so if you convert a linear float image to a log, perform the transform and a log2lin back again you often get much nicer and gentle filtering (if you know what to look for).
In terms of the conversation on denoisers, we’ve had some minor success in creating an even sharper result by doing the same thing, expose down, gamma up, denoise, then gamma down and expose back up. You then force the denoiser to look at the image in another way.
In terms of temporal denoising, its actually super easy. You can do this in blenders compositor or natron but I use fusion and nuke.
What you need to do is match the previous frame and next frame to the current frame, so basically a timeoffset of -1 and +1 frame.
For both of these offset frames you want to 2d displace it with the vector pass, instead of adding motion blur you “push” the pixels into the current frame using the displace node in 2d. And in terms of the +1 frame you push it back into the current frame.
So you now have something that almost looks like 3 identical images, and if you now perform an average of them (frame-1 + current frame + frame+1 / 3) or a median you get basically 3 times the samples pr frame (excluding the very first and last frame of the sequence since you’re missing -1 frames at the very first frame). (this is all assuming youre rendering with different seed values for the noise pr frame, doesnt work with static noise)
Not only is there much less noise but its also temporally more stable. If you increase the frame count to 5 frames you can get super smooth results.
This works really really well, we’ve been using it on feature film vfx for decades now in some way or another.
It breaks down when you have fast moving objects (but at that point you can denoise using motionblur, which is another technique) and it breaks down when there aren’t motion vectors available (for instance things in reflections etc)
Hope that helps