I'm trying to guess what noise reduction algorithms are used in commercial processors for raw images from digital cameras. I find this fairly easy to do for the sharpening algorithms (most use unsharp mask as at least one option, for example, and this is clear from the behavior and adjustable parameters), but I know next to nothing about noise reduction. I would like to

  1. identify as well as possible the basic algorithms being used (of course there will be some proprietary optimizations), and
  2. identify the corresponding academic papers that derive them, to learn their inner workings and use as a springboard to the contemporary literature (via tracking citations).

The parameters for the noise reduction algorithms in two common processors, Capture One and Lightroom, are shown below. Here are some further clues.

  • They're fast. Each works in about a second or less on my modest laptop on 24 MP raw images.
  • They're old. Lightroom was released in 2007, and I don't think the core options have changed since then.
  • They operate separately on luminance and color noise.
  • I don't think they're wavelet-based, since (as far as I know) these applications do not use wavelets anywhere else.

Question 1: Is there a well-known, industry-standard algorithm that meets this description?

Among all raw processors available, the best noise reduction seems to come from DxO's Photolab. (This is of course debatable, but it consistently places at or near the top of comparisons I've seen.) I'd like to try to understand how it operates. A screenshot of its parameters is attached.

DxO describes it as a local algorithm that works pixel-by-pixel:

“the denoising algorithms (in PRIME) analyze the structure of Raw images in depth: more than a thousand neighboring pixels are surveyed for each pixel. This extensive exploration identifies similar data (for) use (in reconstructing) image information.”

Besides that, we know a few more things:

  • It's relatively new (released 2014).
  • It's slow. Users report it takes a minute or more per photo.
  • It's recommended for very noisy, high ISO photos. DxO and users report no advantage over faster noise reduction techniques for photos with mild noise.

Question 2: What algorithm could DxO plausibly be using?

I realize this is a somewhat unusual question, so thanks in advance for letting me access your expertise.

enter image description hereenter image description here enter image description here


Common Approaches for Commercial Denoisers

Commercial denoisers are different than what you'd see on most papers. While on papers the results are mostly using objective metrics (PSNR / SSIM) and are evaluated vs. Additive White Gaussian Noise (AWGN) with high level of noise real world images are mostly with moderate level of noise with Mixed Poisson Gaussian Distribution with Spatial Correlation. They are also optimized to look good to the human eyes and not the objective metrics.

Most denoisers out there use 2 main approaches which separates them from what you see on denoising papers:

  1. Multi Scale Approach
    The multi scale approach (Commonly done using some Wavelets decomposition but can be done using many non common LPF / HPF Filters or the classic Pyramid Decomposition [Which is a specific case for Wavelets]) is the common way to deal with Spatial Correlation which is common in real world images. The assumption is that for relatively narrow band of the spectrum the noise is white or approximately white which then allows using common denoising methods as seen in papers.

  2. Noise Estimation
    Calibration of the algorithm is the key in commercials denoisers. Most of the estimate the noise using single parameter (Noise STD) but the good ones estimate noise curve (Per Scale) which means the noise std vs. luminosity level. It also assists dealing with non standard distributions of the noise. This step is the key for subjectively good results. You can read on it in Darktable Blog Post - Profiling Sensor and Photon Noise. This is usually used with Variance stabilizing Transform (VST) to deal with non Gaussian Distributions.

  3. Separating Color from Luminosity
    The human eyes sensitivity to noise is different in the Colors vs. Luminosity. We're very sensitive to colored nose and less to "Gray" noise. So it is better do the denoising process on Color Channels separately then Luminosity Channel.

Classic denoisier to see which uses the above approaches would be Neat Image.

Common methods used are based on:

  • Thresholding of a Transformation
    Most common transformations would be Wavelets or DCT / DFT based.
  • Partial Differential Equation Based
    Less common and popular but sometimes effective methods. Their evolution started with the Anisotropic Diffusion where later iterations were based on method with Structural / Directional and Steering Vectors.
  • Non Local Means
    Some variant of the Non Local Means denoising method.

Advanced method is based on the merge of the 2 as can be seen in the Block Matching 3D Transform Denoising (BM3D).

DXO Labs Denoisers

DXO Labs historically has used algorithms developed by Jean Michel Morel's Labs and Students.
First iterations were based on the almost vanilla non Local Means algorithms. Later more advanced tooling were added (Multi Scale approach, Noise Estimation, etc..). More advanced iterations are using the concept of Non Local Bayes denoising.

The current DXO Prime algorithm is based on the ideas in the paper - Secrets of Image Denoising Cuisine.

Topaz Labs Denoisers

Topaz Labs with its classic (Non AI) Topaz Denoise has been using non Local Means. This could be concluded from its very specific "Cleaning Artifacts" which are classic to Non Local Means based methods. It had very effective Noise Profiling to performs very well using this method.
Its AI iteration is based on one of the CNN's Denoising methods as the algorithm can not be tuned to a specific dimensions of the image.

I hope this question will become heavy in details and information from many users of the community.

| improve this answer | |
  • $\begingroup$ Beautiful answer. Thank you! $\endgroup$ – Potato Aug 18 '19 at 4:28
  • $\begingroup$ You're welcome. By the way, any way to contact you? $\endgroup$ – Royi Aug 18 '19 at 6:48
  • $\begingroup$ Certainly, I'd love to talk. You can email me at potatoSE@protonmail.com and it will forward to my academic address. $\endgroup$ – Potato Aug 18 '19 at 8:25
  • $\begingroup$ Hi... I didn’t. Busy day. I will notify here once I send. $\endgroup$ – Royi Aug 18 '19 at 20:45
  • $\begingroup$ Sounds good, thank you. $\endgroup$ – Potato Aug 18 '19 at 20:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.