What is the basic idea of denoising? When doing random sampling, you can get noisy results if you don't use enough samples like in the shadows below.

I know that if you use high frequency noise (aka blue noise), the noise pattern can be high frequency content only, which can then be low pass filtered (aka blur) to remove the high frequencies and leave just the lower frequency content which would be less noisy.

Is denoising ALWAYS about doing a low pass filter / blur? Or are there other ideas and techniques for removing noise?
Is denoising ALWAYS about doing a low pass filter / blur?


No, but this is the most obvious technique. A good denoiser isn't just a filter that runs on the image, but actually performs the reconstruction; i.e. it's a function from random samples to an image, not a function from an image to an image.


  Or are there other ideas and techniques for removing noise?


Yes. For years, the main family of denoise techniques worked in two parts. First, a line detection algorithm would detect the true edges in the image. Then, the output in this would set weights in a filter kernel to perform some kind of guided blur, so that the blur would be strongest (i.e. remove more frequencies) where there are no edges, and weakest (i.e. allow high frequencies) where there were edges. This would remove more noise from gradients while preserving edges.

Nowadays, deep learning has provided a new family of techniques. Using the same technique that's producing the noise (i.e. path tracing if you want to denoise path-tracer renders), produce lots of image pairs where one has high noise (few samples) and one has low noise (high sample rate). Feed these pairs into a convolutional network, to train it to produce the low-noise images from the high-noise images. Then feed your high-noise image into the trained network, and enjoy the low-noise output. Variations on this technique include having the network produce a filter kernel for each image patch, instead of learning the output image directly; or classifying an image patch according to its structure (what edges are present), so similar patches can be handled similarly. Some networks can even take the raw samples as input and directly produce a denoised image; others can guide your adaptive sampling algorithm.