Feature #8940

Improve chroma denoise possibilities

Added by Rick Gabriel over 7 years ago.

Start date:
Due date:
% Done:


Estimated time:
Affected Version:
hardware architecture:


Implement a wavelet algorithm for chroma noise reduction. The open source Wavelet plugin for Aftershot Pro is the best tool for eliminating chroma noise that I have used. The library is open source. Current chroma noise reduction options in Darktable do not work sufficiently for high ISO images. Even setting all modules (Eq & NLM - raw denoise and BL destroy image detail too much) to maximum, lots of chroma noise remains that the ASP Wavelet plugin would have caught. It is also good at not destroying too much fine color detail. I think improvements in noise reduction or integration with something like NoiseNinja would make a lot of users very happy.

5D3L8006 ASP Noise Reduction.jpg (2.66 MB) 5D3L8006 ASP Noise Reduction.jpg Rick Gabriel, 09/23/2012 03:21 PM
5D3L8006 DT Max Noise Reduction.jpg (2.52 MB) 5D3L8006 DT Max Noise Reduction.jpg Rick Gabriel, 09/23/2012 03:21 PM
5D3L8006 ASP.jpg (409 KB) 5D3L8006 ASP.jpg Rick Gabriel, 09/27/2012 03:08 AM
5D3L8006 DT.jpg (309 KB) 5D3L8006 DT.jpg Rick Gabriel, 09/27/2012 03:08 AM


#1 Updated by Simon Spannagel over 7 years ago

  • Status changed from New to Closed: invalid

You can do wavelet denoising with our equalizer, too. There is no need to pack everything in a separate iop - it's the same algorithm after all. Again, see here:

#2 Updated by Rick Gabriel over 7 years ago

Sorry I wasn't clear. I'm not suggesting that you implement a separate module. In fact, I love the Eq! My main goal is to get noise reduction at least on the same level as the competition (Aftershot Pro for example). Please take a look at the attached files. The only thing I did to the raw file was noise reduction. I have the levels tweaked to about 60% in ASP and I don't really mind luma noise. However, the DT version has everything set to max chroma reduction including Eq, NLM, and I added some raw denoise as well. As you can see, lots of chroma noise is still evident in the DT version and the details have been destroyed much more than the ASP one. There is also a salt & pepper speckle effect in the DT version that is not present in the ASP one.

Lastly, why is the color and contrast so different with no effects applied?

Can you please reopen this issue or should I make a new one for improved noise reduction?

#3 Updated by Simon Spannagel over 7 years ago

  • % Done changed from 0 to 20
  • Status changed from Closed: invalid to Incomplete
  • Subject changed from Wavelet Chroma Denoise to Improve chroma denoise possibilities

I'm not sure you are using optimal settings for this image here. Could you be a bit more specific concerning the presets you are using e.g. in the Eq? It might help to provide the RAW file somewhere if you don't mind (file hoster) so we can check what we can get out of it.

Rick Gabriel wrote:

Lastly, why is the color and contrast so different with no effects applied?

Color and contrast is always pure interpretation. darktable usually tries to emulate the camera's interpretation by cross-checking and calibrating with in-camera jpegs. We built quite a database with "enhanced color matrices". For your Canon 5D Mark III this should be the case, using the "Canon base curve" in the "base curve module", you might want to check this one.

Can you please reopen this issue or should I make a new one for improved noise reduction?

Renamed and reopened.


#4 Updated by Simon Spannagel over 7 years ago

raw file here:
Canon 5D Mark III, ISO 25600

#5 Updated by Pascal de Bruijn over 7 years ago

I think it's the unequal green channels and the resulting demosaicing artifacts that's tripping up our denoising algo's.

(use a recent dcraw, repos tend to lag behind):
./dcraw -v -w -M -H 2 -o 0 -f -m 1 -4 -T 5D3L8006.CR2

Then load that into Darktable, set basecurve to canon alternate (in git master) and colorin to standard color matrix

Then enable nlmeans at default with patch size 1.

#6 Updated by Rick Gabriel over 7 years ago

As discussed on IRC, a combination of everything including BL noise reduction seems to work best in this case, but it's still far from the quality of wavelet denoise in ASP and it destroys way too much detail. The noise reduction in DT doesn't seem to produce usable results for higher ISO images whereas ASP does it very simply. You can find the raw file here if you want to test:

#7 Updated by Rick Gabriel over 7 years ago

Thanks for the workaround suggestion, but I process too many images to add even more steps after tweaking 5 different modules for noise reduction. I love most everything about DT and it's superior to other software in many ways, but the noise reduction is a showstopper for me. Processing software needs to do at least as good as in-camera JPGs on noise reduction. The quality of the end result is what my clients will see. Even after brainstorming some ways to improve the noise reduction slightly, it's still significantly worse than ASP and in-camera JPGs. I would suggest that a better noise reduction solution is needed, especially for chroma. Here is a link to the plugin that works best in ASP. I think they use an open source library that you may be able to include. I also suggest simplifying noise reduction into a single module or the Eq.

#8 Updated by Tobias Ellinghaus over 7 years ago

  • Target version set to Candidate for next minor release
  • Status changed from Incomplete to Triaged

I guess what Pascal wanted to say is that we need to fix our denoising and not that you should add another program to your workflow.

#9 Updated by Rick Gabriel over 7 years ago

Ah, I understand. Do you have any suggestions for noise reduction software and how to add it to a workflow with DT? My alternative is to go back to using ASP until the next minor release of DT but there are also problems with that software that are cumbersome.

#10 Updated by Rick Gabriel over 7 years ago

Is it possible to make this a higher priority? This seems like the biggest obstacle for me to switch to DarkTable 100% for image processing and I'm sure others are affected as well. Other important issues but not showstoppers for me include: better luma noise reduction (less watercolor effect) and output sharpening/styles.

I have sent a message to the author of the Wavelet Denoise plugin for ASP. That is the plugin responsible for the chroma noise reduction in the attached ASP example and seems better than NoiseNinja and DT for chroma. I'm hoping he will be open to helping us or pointing us in the right direction.

#11 Updated by Rick Gabriel over 7 years ago

From the Wavelet Denoise ASP plugin author:
"Wavelet Denoise for ASP is an adapted version of (Which originates in dcraw, too) crossbred with the denoising of dcraw and some optimizations (i.e. there was no point in the original code to use doubles, as floats are more than precise enough for 16 bit data, and some adaptions i made myself (i.e. a filter that avoids denoising edges in L*, and a salt and pepper filter). i posted you a source ball at:

also, the whole stuff is actually mislabeled as wavelet, as it doesn't perform a real wavelet transformation. but well. that's the name dcraw introduced"

#12 Updated by Simon Spannagel over 7 years ago

  • Priority changed from Medium to High

Well, developers usually don't care about ticket priority. But: high. :)

#13 Updated by Rick Gabriel over 7 years ago

haha of course :)

I also thought of a workaround until this can be implemented/improved. Can you just increase the scale or magnitude of the chroma noise reduction in eq and nlm by a lot? At lesser values, the results from Wavelet Denoise in ASP look a lot like DT. However, the values can go much higher in ASP. Even with the current algorithms, if you increase the scale so that we can apply more noise reduction before capping out, that will probably go a long way and will let me and others use DT until a better noise reduction solution is in place. See Feature #8942.

Hopefully the scale could be increased in only a few minutes and pushed out in a nightly build soon. What do you think?

#14 Updated by Rick Gabriel over 7 years ago

So apparently I don't know what I'm talking about and chroma noise reduction in DT rocks. (see attached exampled) Sorry about the confusion. I thought I was using the Eq correctly, but I guess there was more depth than I originally saw, even after reading the manual and everything I could find online. Anyway, after much tweaking in the Eq, I was able to get better chroma noise reduction in DT than ASP. I'm going to have to make some presets though because it took forever to get everything just right in Eq. It's a little confusing how Eq sharpening works with the other two tabs, but it's very powerful and I do love the Eq.

Still, some better, different, or easier methods of chroma noise reduction might be useful in the future - but I have a workaround for now.

When comparing the JPG from ASP to the one from DT, there is a noticeable difference in sharpness and detail. I suspect that's because ASP is using Noise Ninja for luma reduction and perhaps DT's noise reduction isn't as good yet? Also, I still can't seem to get proper sharpening working well in DT. Either it's way too strong and applied everywhere or it's too weak to be noticed much besides causing speckles in the noise. Any ideas how to get the same sharpness and detail out of DT that I'm getting from Noise Ninja / ASP?

By the way, not only did I discover that DT's chroma NR is better, DT also has way more accurate white balance, better colors, etc. I'm very impressed overall. :)

#15 Updated by Johannes Hanika over 7 years ago

re: sharpness. the picture doesn't look like you've fully explored the potential of this yet?

(you'd need to be on an unstable/git repo or wait for the upcoming release though, 1.0.x doesn't have it)

#16 Updated by Rick Gabriel over 7 years ago

Johannes, see my most recent comment. You are correct that I wasn't using the full potential of the Eq module when I first opened this ticket, but I seem to be getting the hang of it now. Still, it might be nice to have an easier way to apply chroma noise reduction or perhaps some additional presets. Splitting presets in the Eq module so that luma, chroma, and sharpness can have separate presets would be nice (or some other equivalent feature). Also, the other chroma reduction modules (NLM and bilateral) don't seem useful in their present state.

#17 Updated by Rick Gabriel over 7 years ago

I uploaded new test images comparing luma and chroma noise reduction in Darktable to in-camera JPG, NoiseNinja (via ASP), and Lightroom 4.2. The resulting JPGs are here:

More information about the tests and results have been posted to issue #8941. Let me know if there is anything I can do to help get these resolved. Thanks!

Also available in: Atom PDF

Go to top