Noise reduction in Darktable
Last updated: 4 November 2018
Table of contents:
- Method suggested in documentation
- Comparison video by Robert Hutton
- Denoising styles from William Ferguson
- Denoising presets of His Dudeness
- Denoising style from Aurelien Pierre
- Chroma denoising technique using Lowpass module
- Other variations
- Comparison with RawTherapee
- Tutorial video by Bruce Williams
Reducing noise in a photograph can be a complex task. Some applications offer one-size-fits-all solutions to keep user choices (and possible confusion) limited. Darktable seems to offer a range of modules suitable for the task. Using them efficiently can feel a bit daunting:
- Denoise – profiled
- Denoise – non local means
- Denoise – bilateral
- Raw denoise
Some photographers include other modules as part of their noise reduction procedure too:
- Demosaic - changing parameters can impact especially chroma noise.
- Hot Pixels - with aggressive parameters can help remove outlier pixels.
- Lowpass - to reduce chroma noise, see denoising styles from William Ferguson and this video.
- Sharpen - to help recover detail lost in denoising process. See video by Robert Hutton. Section on this module starts at 12:38. It is important to adjust parameter Threshold.
- Dithering - see denoising style from Aurelien Pierre.
- Grain - after applying aggressive noise reduction images often lack detail and can look cartoonish. By adding grain we can create an illusion of more detail in the image.
Intention of this article is to provide some useful pointers in one place.
Method suggested in documentation
Quoting from official Darktable documentation talking about Denoise – profiled module:
This module can eliminate noise with two different core algorithms. “non-local means” is a bit better suited to tackle luma (lightness) noise; “ wavelet” has its strength in eliminating chroma (color) noise. If needed you can apply two instances of this module (see Section 3.2.4, “Multiple instances”). The “non-local means” instance should be combined with blend mode “lightness” or “HSV lightness”; the “wavelet” instance with blend mode “color” or “HSV color”. For more information on blend modes have a look at Section 3.2.6, “Blending operators”.
I have setup in my Darktable two new presets for Denoise – profiled module as per the description above. Using presets is faster then setting things up every time. I named them step 1 - wavelets / color and step 2 - non-local means / lighten. It is worth mentioning that the order of the modules in the processing pixelpipe matters in this case, so you can experiment which order works better for you. I also found this ticket in Darktable's issue tracking system asking for a method to process these steps in parallel, without influencing each other. But at least for now we need two steps:
I found it useful to add some aggressive settings for hot pixels removal too:
I have tested this method on one of my photos taken with Nikon D7100 at ISO 1600. You can download the raw file if you want to experiment yourself. Here are small samples at 100% magnification. Click on any of them to get a larger cut:
|Original||Denoised||Plus Hot Pixels|
Comparison video by Robert Hutton
See it below or on Robert's website. Demonstrates use of the method suggested in the documentation and gives brief overview of the other available denoising modules. He even compares it to proprietary NoiseNinja used in AfterShot Pro:
Denoising styles from William Ferguson
Darktable modules settings can be combined into and applied using styles. Here a Darktable user shared his personal noise reduction styles (scroll down on that page to his .dtstyle files, there are 4 files to download). You can try them as a starting point for your own images or styles.
In his post he described his workflow:
I usually shoot in manual, so all my exposures are pretty much the same. I denoise one image, then copy the history stack and paste it to the rest of the images. If I was changing exposure settings, then I denoise one image per group, and copy the history stack to the rest of the group.
I have imported these files in my Darktable styles and renamed them so that they all start with "Denoise". This way they show all together among my other styles (to rename a style use edit function):
I have tested the styles on one of my photos taken with Nikon D7100 at ISO 1600. Here are small samples at 100% magnification. Click on any of them to get a larger cut:
|Original||Low ISO||Medium ISO||High ISO||Very High ISO|
Bill also shared another useful trick:
When you denoise a very high ISO image, the loss of detail gets pretty bad sometimes. I've found if you add some grain in, it helps trick the eye into thinking there's more detail there than there really is.
Denoising presets of His Dudeness
A user on DP Review Forums documented his presets, see details here. They include following tips:
- Using module Equalizer, Chroma tab - for not too heavy chroma noise reduction.
- Using module Denoise - Profiled in non-local means mode, patch size 4, blend mode average, and parametric mask effecting shadows more than highlights. He suggests this is suitable for normal and moderate luminance noise. Should also remove some chroma noise.
- Using module Denoise - Profiled in wavelets mode, blend mode average, 75% opacity, and parametric mask effecting shadows more than highlights. He suggests this is suitable for stronger luminance noise.
- His last tip is identical to my step 1 as per the method described in official documentation.
Denoising style from Aurelien Pierre
Referred from this DP Review forum thread, the style can be downloaded from here. The original thread is in French. You can get automatic translation to English here. Aurelien Pierre is one of the Darktable developers with interest in maths for image processing (based on his forum profile).
The style seems rather elaborate and slows image processing. It includes 9 module instances:
Chroma denoising technique using Lowpass module
Here David LaCivita explains another technique of removing chroma noise using two Lowpass module instances with blending modes Lab a-channel and Lab b-channel. This is then combined together with the method described in official documentation. The first part of that video talks about Haze Removal module if you are interested in.
Jack Bowling suggests to use Denoise – profiled module with blend mode multiply and adjust opacity to taste.
Comparison with RawTherapee
I noticed some claims that noise reduction in RawTherapee is superior to that in Darktable (see for example here). I wanted to do a brief comparison myself. So I processed my test shot reasonably close in both and applied noise reduction with out-of-the-box parameters. For Darktable side I used 3 different methods, again without any parameter tweaks for simplicity:
- Method suggested in the documentation plus Hot Pixels.
- Style from Aurelien Pierre plus Hot Pixels.
- Medium ISO style from William Ferguson.
- I used AMaZE demosaic method in both cases.
- RawTherapee has by default following setting turned on: Raw > Sensor with Bayer Matrix > Chromatic Aberration > Auto-correction. This seemingly reduces chroma noise while altering colour cast of some parts of the image. To get a closer comparison, I have turned it off.
- Noise reduction in RawTherapee included both Impulse Noise Reduction and Noise Reduction.
Small cuts in 100% magnification to compare are below. Please click on each to get larger area:
|RT base||RT with NR||DT base||DT NR #1||DT NR #2||DT NR #3|
Conclusion: My example didn't show any dramatic advantages of RawTherapee's noise reduction. Though it is always a matter of taste as well as fluency with a particular tool. RawTherapee certainly makes it more accessible out-of-the-box, while getting good results with Darktable requires at least to read the documentation.
Tutorial video by Bruce Williams
Bruce in this video goes over 6 different methods of noise reduction in Darktable. Some of the noise he describes is hard to see in the compressed youtube video but you get the idea from his description. His favourite to tackle noise in photos shot at high ISO is combination of modules denoise (profiled) and denoise (bilateral filter):
Please let me know if you notice any issues in this article.
Noise reduction in Darktable by Tomas Sobek is licensed under a Creative Commons Attribution 4.0 International License.