Skip to content

Noise Reduction ​

Step: Finish

Smooths away the grainy noise in the background and in faint nebulosity while keeping stars and sharp edges. The module splits the image into layers of fine to coarse structure, removes the small values in each layer, which are almost all noise, and puts the layers back together. Stars, dust lanes and the edges of a galaxy carry large values in these layers, which are hardly touched.

Parameters ​

ParameterRangeDefaultEffect
Strength0…10.5How much of the noise is removed. 0 leaves the image exactly as it is. 1 removes everything that is within three times the typical noise of a layer. Higher values give a smoother, but also more "plastic" background.
Layers1…64How many layers are denoised, from the finest upwards. Layer 1 holds structures of one or two pixels, every further layer twice the size: 2 to 4 pixels, 4 to 8, and so on. One layer removes only pixel-to-pixel grain; more layers also remove the mottled, blotchy noise that is several pixels wide.
TargetAll channels, Luminance only, Chrominance onlyAll channelsAll channels denoises each color channel on its own. Luminance only denoises the brightness and leaves the color differences untouched. Chrominance only denoises the color differences and leaves the brightness untouched. On a mono image, All channels and Luminance only do the same; Chrominance only is not possible and shows an error.

When to use it ​

Use it on the linear image, before stretching. In linear data the noise is still evenly spread and the module can measure it reliably; after a stretch the noise differs from place to place and the measurement is off. A good order is Gradient Removal first, then Noise Reduction, then the stretch.

  • For a first try keep the defaults and look at the background at 100 %. Raise Strength until the grain is gone, and stop before the faint nebulosity starts to look smeared.
  • Color blotches in the background that look like mottled patches of red and green are mostly chrominance noise. Chrominance only with 5 or 6 layers and a high strength removes them without touching the brightness detail. Follow with Luminance only at a gentler setting for the grain.
  • The live preview works on a reduced copy of the image, in which the noise is already averaged down. Judge the final strength on the full-size result.

How it works ​

  1. Layers. The image is smoothed repeatedly with the small kernel [1 4 6 4 1] / 16, applied along rows and then columns. At each step the taps of the kernel are spread twice as far apart as at the step before (the "à trous" algorithm, "with holes"), so every step looks at structures twice as large. The difference between two successive smoothings is one detail layer w₁, w₂, …; what is left after the last step is the smooth residual. Detail layers plus residual add up to the original image exactly. This is the starlet transform with the B3-spline kernel. At the image border the image is mirrored.

  2. Noise measurement. The noise is read from the finest layer, where noise dominates: the median of |w₁| divided by 0.6745 is the standard deviation of that layer's noise. The median ignores the few large values from stars. The noise in every coarser layer follows from the finest one by known factors for white noise: about 0.89, 0.20, 0.086, 0.041, 0.020 and 0.010 of the original noise for layers 1 to 6.

  3. Shrinking. In every selected layer, values closer to zero than the threshold t become zero. Larger values w are pulled towards zero by a small amount that gets smaller the larger the value is (the "non-negative garrote"):

    w' = w − t² / w     if |w| > t,      w' = 0     otherwise
    t = Strength · 3 · (noise of this layer)

    At Strength 1 the threshold is three times the noise of the layer, at which pure noise almost never passes. A value only just above the threshold is cut down strongly, a value ten times the threshold loses 1 % of its size. Stars and edges therefore keep their height and their flux, which the often used "soft thresholding" (subtract t from every large value) does not: it flattens edges and lifts the faint rim around stars.

  4. Reconstruction. The shrunk layers and the untouched residual are added up.

The residual, and every layer beyond the number you choose, are never changed, so the large-scale brightness of the image stays as it is.

Luminance and chrominance. For a color image the module works on three planes: the luminance L = (R + G + B) / 3 and the two color differences R − L and B − L. The planes convert back exactly (R = L + (R − L), B = L + (B − L), G = L − (R − L) − (B − L)), so a target that is not selected comes out unchanged apart from rounding.

Pixels without data. Pixels without a value (for example the borders left by stacking) stay without a value. For the calculation they are filled with the median of the image and they are left out of the noise measurement, so they do not spread into their surroundings. In Luminance only and Chrominance only, a pixel that has no value in one color channel is left completely as it was.

The file information (exposure time, filter and so on) is kept.

Things to know ​

  • The shrinking keeps stars close to what they were: with the defaults, the flux of a star whose peak is 50 times the noise changes by about 4 %, and that of a bright star by 1 % or less. Faint stars near the noise level are partly removed with the noise, as with any denoising. Keep the Strength moderate if you need the photometry to stay true.
  • Isolated noise values that are more than three times the noise of a layer are not removed: with the garrote they are cut down only a little. At very high Strength this can leave a few single bright or dark pixels; a second pass with a lower Strength, or more Layers, handles them.
  • Very high strengths remove faint real structure together with the noise, and flat areas look smooth and "plastic". This is a trade-off, not an error.
  • The measurement assumes noise that is independent from pixel to pixel. Images that were binned, scaled or debayered with interpolation have a spatially correlated noise that is partly seen as structure; raise Layers for such images.
  • A noise-free (constant) image is returned unchanged.

Errors ​

  • The image is an undebayered mosaic; noise reduction would blend its colors. The color pattern of the sensor would be smoothed away. Run Debayer first.
  • A mono image has no color to denoise. Target Chrominance only needs a color image. Choose All channels or Luminance only.

Sources ​

  • J.-L. Starck, F. Murtagh, Astronomical Image and Data Analysis, 2nd edition, Springer, 2006 (wavelet filtering, noise estimation from the finest layer, thresholding).
  • L. Breiman, "Better subset regression using the nonnegative garrote", Technometrics 37(4), 373–384, 1995, and H.-Y. Gao, "Wavelet shrinkage denoising using the non-negative garrote", Journal of Computational and Graphical Statistics 7(4), 469–488, 1998 (the shrinkage rule).
  • J.-L. Starck, J. Fadili, F. Murtagh, "The undecimated wavelet decomposition and its reconstruction", IEEE Transactions on Image Processing 16(2), 297–309, 2007 (the starlet transform and its B3-spline kernel).