Here’s a new noise reduction filter for the plugin to test. You can find it in Testing>Iain Fergusson>Iain nr 2019
I think it gives good results and is quite quick compared to some other GMIC denoising filters.
Still a work in progress and I have a much slower version I am working on.
Short description of controls:
HF recover: The plugin runs a 5x5 median filter and the recovers the details from the noise it has removed. This controls the amount of recovery
MF and LF Smooth: For coarser details, a bilateral filter is used for the smoothing before the detail recovery, these control the bilateral strength
Chroma: This controls how much additional smoothing the bilateral filter does on the chroma noise.
Recovery Amount: This control the recovery amount for the coarser details.
Gamma: This allows you to adjust the noise reduction in the shadows or highlights
The filter does spatial filtering (median or bilateral) and then applies a frequency domain filter on the difference between the filtered and original image. This is applied at 3 scales.
The frequency domain filtering is interesting. Once the difference between the spatial filtering and original is obtained, the filter does a local normalisation so that the noise level is consistent across the image. From there the filter split the normalised difference image into tiles, and tiles an FFT is applied to each tile. The filter takes the median of all the tiles to find the average level of noise at each frequency.
The noise level tile is then multiplied by the ‘recovery amount’ set by the user. This level is then subtracted from each tile. In addition, the recovery amount sets a threshold at which allows high levels to pass through untouched.
Once the tiles have been processed in this manner and converted back to a full spatial domain image, the local normalisation is reversed and the details are added back into the spatial filter image.
The advanced of this method is that it requires very little input from the user. When the spatial filter is a median filter there is no threshold needed to be set by the user for the spatial filtering, the only threshold is for the detail recovery. This does have the drawback of losing some small impulsive details, but I think the speed and simplicity make up for that.
A median filter is not appropriate for the coarser levels because the impulsive details that are lost are much more noticeable. This is why I have used a bilateral filter for the coarser levels. At coarser levels, the processing is done on a smaller version of the image so the speed penalty for using a bilateral filter is minimised.
Edit: Forgot to mention that the output layer name is the processing time in seconds.