Denoise Module Use (v1.4-v1.6)
Posted: Wed Nov 23, 2016 8:15 am
Here are some notes relating to using the Denoise module.
They relate to StarTools version 1.4,1.5 and 1.6
Please let me know if anyone sees any errors or has any additional advice they think helpful.
I will update this as needed.
For a downloadable PDF version see this external link to PDF.
For an index of similar notes on the other StarTools modules see StarTools Main Window Use.
Denoise Module
Purpose:
To get rid of different types of noise while preserving detail.
Description
For a general overview see De-Noise: Detail Aware Wavelet-based Noise Reduction.
Noise reduction is applied at the very end when Tracking is switched off. Due to StarTools' noise evolution Tracking noise reduction will be much more targeted.
Useful Sources
The StarTools video tutorial 'A simple processing workflow tutorial with imperfect real-world data' includes the use of the Denoise module. This relates to StarTools v1.5 but is still relevant for v1.6.
The processing video M8 in Color with modest data has a demonstration of the Denoise module between 8m16s and 9m43s.
When to use:
AutoDev-{Band/Lens}-Bin-Crop-Wipe-AutoDev(or Develop)-{Decon/Sharp/Contrast/HDR/Flux/Life}-Color-{Entropy/Filter}-Denoise-{Layer/Shrink/Heal/Repair/Synth}
Key: {...} optional modules
Method:
This is a way of using the module which should give good results in most cases:
Selecting optimum noise reduction settings
In cases where you are struggling to find the right noise settings this approach may help.
- This is experimental - please let me know how well this works for you.
This is a technique for finding the optimum 'Non-linear Response <' (Read Noise Compensation) setting. It is described here.
Use this in cases where with Denoise on its own does not protect the detail enough - perhaps in high noise situations.
See also M45: Advanced Processing in StarTools 1.3 Part 2.
The trick with colour data is to apply heavy noise reduction. The human eye is much less sensitive to loss of colour detail than it is to loss of luminance detail. Since, with LRGB, all the luminance detail will come from our luminance frame, we can be heavy handed with our noise reduction. Often this data set also has had a much shorter total exposure time allocated to RGB, so it is quite noisy.
In Denoise Module:
Screen 1 - Select filter type and grain size
Filter Type:
Select the noise filter type which will form the basis of noise reduction:
Specifies the maximum size of the noise grain that is visible in the image.
Identifying and protecting detail
For general instructions on using masks see Mask.
See also the description for Grain Size above.
Defines how hard the noise reduction is done for different sizes of noise.
Usually, when there is a correlation between image elements over multiple scales it indicates important detail in an image. This is how Denoise identifies detail. It can then provide the control to protect this detail from the denoising algorithm.
For every scale, the scale correlation algorithm looks at the immediate neighboring scales to see if detail in that scale exists. If detail in the neighboring scale exists, this is taken into account when determining how much noise reduction is applied. The Scale Correlation parameter specifies how many neighboring scales are evaluated. For example, if the Scale Correlation is set to 2 then it will look at scales +/- 2 from the current scale.
This controls how any detail identified using Scale Correlation is smoothed.
This allows you to eliminate noise (and signal) below the noise floor - the point below which noise no longer has a 1:1 linear relationship with signal due to the predominance of noise which is not signal-related (e.g. read noise). Noise reduction below this level is done differently.
This allows you to control noise (and signal) below the noise floor.
This balances noise reduction with detail loss in brightness. Larger values will do more aggressive noise reduction possibly causing some detail loss. Smaller values will reduce noise reduction. 0% is no noise reduction.
This balances noise reduction with detail loss in colour. Larger values will do more aggressive noise reduction possibly causing some colour loss.
If a mask is used, Mask Fuzz controls the blending of the transition between masked and non-masked parts of the image.
StarTools denoise techniques
StarTools looks for inter-scale pattern/structure correlation to identify image detail.
See also this Wikipedia article on Image Noise
Here is a very good video: Craig Stark: What do all great shots have in common?. Discusses noise sources and SNR clearly.
Shot Noise
Salt and Pepper Noise
They relate to StarTools version 1.4,1.5 and 1.6
Please let me know if anyone sees any errors or has any additional advice they think helpful.
I will update this as needed.
For a downloadable PDF version see this external link to PDF.
For an index of similar notes on the other StarTools modules see StarTools Main Window Use.
Denoise Module
Purpose:
To get rid of different types of noise while preserving detail.
Description
For a general overview see De-Noise: Detail Aware Wavelet-based Noise Reduction.
Noise reduction is applied at the very end when Tracking is switched off. Due to StarTools' noise evolution Tracking noise reduction will be much more targeted.
- Separates Brightness and Colour - this allows separate control of brightness and colour noise.
- Uses information gained while Tracking was on to help target the noise.
- Tracking identifies the areas of higher noise.
- Scale Correlation techniques are used to identify detail.
Useful Sources
The StarTools video tutorial 'A simple processing workflow tutorial with imperfect real-world data' includes the use of the Denoise module. This relates to StarTools v1.5 but is still relevant for v1.6.
The processing video M8 in Color with modest data has a demonstration of the Denoise module between 8m16s and 9m43s.
When to use:
- Final Denoise is usually done after the Color module.
- (before v1.6.392) When turning 'Track' off select the option to 'Stop tracking, do final noise reduction'.
- (v1.6.392+) When turning 'Track' off select the option to 'Grain removal'.
- The Denoise module can also be used in 'Preview Only' mode at any time when Tracking is on.
- This allows you to see the effect the Denoise module will have when Tracking is switched off based on the current image.
- It can show when you have overdone something (like the final Develop/AutoDev module stretch was too aggressive) and too much noise will remain visible even after applying the Denoise module.
- It can show you need to go back and redo a step, or do further noise-reduction steps, prior to turning Tracking off and final Denoise. - Also, try using the Life modules' 'Isolate' preset with no mask set just before using the Color module then final Denoise module - this will help to push back the noise. Watch out for halos around the stars though.
AutoDev-{Band/Lens}-Bin-Crop-Wipe-AutoDev(or Develop)-{Decon/Sharp/Contrast/HDR/Flux/Life}-Color-{Entropy/Filter}-Denoise-{Layer/Shrink/Heal/Repair/Synth}
Key: {...} optional modules
Method:
This is a way of using the module which should give good results in most cases:
- Select Filter Type - try 'Gaussian Noise Diffusion' if the image is noisy - otherwise use the default.
- Select Grain Size so the noise grain and clumps can no longer be seen - as described below. Structures larger than the Grain Size are considered detail, not noise.
- Click 'Next' - StarTools will do its initial attempt using that grain size with other settings at their default values. When complete screen 2 is shown.
- Select an area to sample to speed up the processing while you adjust the parameters.
- Adjust the Smoothness - this sets how much structures that have been identified as detail can be smoothed to reduce noise.
- In many cases the remaining parameters can be left at their default values. However, if further adjustment is needed then experiment with the following controls:
- Adjust Brightness Detail Loss and Color Detail Loss - to balance detail loss and noise reduction.
- To control the balance between detail retention and noise reduction within the subject adjust the Scales (e.g. consider using Scale 5), Scale Correlation, and Smoothness.
- Scale Correlation identifies how much of the smaller structure is considered detail.
- Smoothness defines how much the structures identified as detail can be smoothed to reduce noise. - If there is any remaining mottled appearance in the dark background, try adjusting 'Non-linear Response <' (Read Noise Compensation) to remove it.
- Toggle top "Pre Tweak/Post Tweak" button to see effect of last adjustment if needed (StarTools v1.5+).
- Press 'Full' to apply the effect to the full Image.
- If you make a mistake, the 'Reset' button discards all the changes since you started using the module.
- Press Keep to exit, keeping the results.
- Background noise should be greatly reduced or eliminated without affecting detail significantly.
- Check stars to see if they have a blurry halo around them - if so the 'Non-linear Response <' (Read Noise Compensation) setting may need to be reduced.
- Look out for any remaining noise blotches - if found go back and check the Grain Dispersion and Smoothness settings.
- Look out for any reductions in the detail - if found try reducing Smoothness, Brightness Detail Loss or Color Detail Loss.
- Use the 'Before'/'After' button to see the effect of the module.
- Improve the Signal-to-Noise ratio (SNR) of the original image - by taking more subs. Also, make sure the subs are long enough.
- With light polluted data you will need many more subs to get equivalent results.
- If you have pattern noise try Dithering if you don't already.
- Make sure you have used the Bin module to reduce the resolution (and improve the SNR) if the image is oversampled.
- Try using the Life module 'Isolate' preset with no mask set just before using Color and Denoise modules - to help push back the noise.
- If there is background colour noise this may be de-emphasised by using the Dark Saturation control in the Color module.
- If the background noise cannot be controlled successfully in Denoise - it may be necessary to go back and redo Develop/AutoDev to control the final stretch a little to limit the noise to a level Denoise can handle. To do this use the Restore - 'Linear, Wiped' button.
- Save the image and finish - or apply one of the modules not available when Tracking is on i.e: Heal, Magic, Repair or Synth as needed.
Selecting optimum noise reduction settings
In cases where you are struggling to find the right noise settings this approach may help.
- This is experimental - please let me know how well this works for you.
- Select an area which includes background and large scale structures.
- Set 'Non-linear Response <' (Read Noise Compensation) as described below.
- Reduce Smoothness to 10%, increase Brightness Detail Loss to 30%, and reduce Scale Correlation to 2 - this allows us to see the effects of our changes.
- Increase Grain Grain Dispersion from 4.5 in increments until there is no further discernable smoothing of the background noise.
- Increase Scale Correlation from 2 to 6 to see the increase in detail in the larger structures - stop when the level of detail is about right.
- Reduce the Brightness Detail Loss - making sure the background noise is smoothed enough.
- Increase Smoothness until the larger scale structures are smoothed the correct amount - you may need to adjust the Scale Correlation a little to get the right balance.
- Keep the result.
This is a technique for finding the optimum 'Non-linear Response <' (Read Noise Compensation) setting. It is described here.
- Create a preview area that has both background and DSO.
- Turn off noise reduction completely (set Brightness Detail Loss to 0%).
- Increase 'Non-linear Response <' (Read Noise Compensation) until it affects the background and almost starts affecting the DSO.
- Increase Brightness Detail Loss to denoise the rest of the DSO and adjust other settings as normal.
Use this in cases where with Denoise on its own does not protect the detail enough - perhaps in high noise situations.
- Create a Mask - To just protect the central parts of the object and let the outer extremities be denoised:
- For a well defined object use one of these methods:
a) 'Flood Fill Darker Pixels' selects the darker background easily - and the fainter extremities of the object. Grow a little.
b) 'Flood Fill Lighter Pixels' defines the brighter core of the object easily but any fainter extremities are not selected - Invert. - For long thin wisps (e.g. the veil) - create a trail of individual green pixels over the detail (using the 'Single Pixel Toggle' Brush Mode) and then use 'Grow' until they merge.
- For a well defined object use one of these methods:
- Do further changes to make sure that all the areas which you want denoised are green.
- Use the Denoise module as normal.
- Increase 'Mask Fuzz' until the transition between masked and unmasked areas looks natural.
- 'Keep' the result when done.
See also M45: Advanced Processing in StarTools 1.3 Part 2.
The trick with colour data is to apply heavy noise reduction. The human eye is much less sensitive to loss of colour detail than it is to loss of luminance detail. Since, with LRGB, all the luminance detail will come from our luminance frame, we can be heavy handed with our noise reduction. Often this data set also has had a much shorter total exposure time allocated to RGB, so it is quite noisy.
In Denoise Module:
- Set all Scale settings 1-5 to 100%.
- Set Brightness Detail Loss to 100%.
- Set Color Detail Loss to 100%.
- 'Keep' the result.
- Merge this with the luminance frame.
Screen 1 - Select filter type and grain size
Filter Type:
Select the noise filter type which will form the basis of noise reduction:
- Gaussian Noise Diffusion - Yields good results when there is a lot of noise.
- Distance Weighted Outlier Rejection - Yields very good results if there is not too much noise.
- Median - Very good at preserving edges when there is low to moderate noise.
- Default is Distance Weighted Outlier Rejection.
Specifies the maximum size of the noise grain that is visible in the image.
- Once set tells module that anything larger in scale than this is not noise.
- Specifies over how large an area it spreads the energy that was contained in pixels that are smoothed.
- Default is 4.5 pixels. Range is 1.0 to 30.9 pixels.
- Experiment until you find a value which causes the noise grain and clumps to be dispersed so that can no longer be seen at any scale. Values up to 15-30 are fairly common with noisy data.
- Do not exceed what is needed so as to preserve large scale detail as much as possible.
- Concentrate on the noise and don't worry about the detail. This is a visual representation to help find the right setting and the signal is not being affected.
Identifying and protecting detail
- Structures larger than the Grain Grain Dispersion are not considered to be noise.
- Scale Correlation identifies how much the smaller structures are analysed when looking for detail.
- Smoothness defines how much structures identified as detail are affected by the denoise algorithm.
For general instructions on using masks see Mask.
- If parts of the image will not benefit from noise reduction it helps to mask these off.
- If a mask is used set Mask Fuzz to control the blending of the transition between masked and non-masked parts of the image.
See also the description for Grain Size above.
- The Grain Dispersion influences the noise reduction of all the other controls apart from:
- Scale Correlation and Smoothness - which define how parts of the image are protected from noise reduction.
- Read Noise Reduction (Non-linear Response <)- which uses a different algorithm to deal with noise below the noise floor.
- Defaults to Grain Size value set previously. Range is 1.0 to 30.9 pixels.
- Structures larger than the Grain Dispersion are considered detail, not noise.
- Defines a surface area over which it can safely redistribute energy that was taken away (denoised).
- Typical values <30 pixels - there will be a value beyond which there will be little effect - don't exceed the maximum size needed.
Defines how hard the noise reduction is done for different sizes of noise.
- Scales do not have absolute limits to the range - its is more like a particular scale brings detail of a certain size into focus - and that other size detail is out of focus to varying degrees depending on its size.
- The following are broad guidelines:
- The largest scale (Scale 5) is approximately 100-120 pixels.
- The smallest size (Scale 1) is around one pixel.
- The intervening scale sizes increase exponentially.
- Increase the scale value if noise is noticeable at that scale. Decrease it if detail is being affected.
- For Scales 1-4 the default is 90%. For Scale 5 the default is 0%. Range is 0% to 100%.
- Scale 5 may need to be increased if there is large scale noise. If there is noise at this scale it has often been introduced artificially during debayering or subsequent processing and is not from natural Poisson noise sources. This type of noise can show scale correlation too - so we need to reduce the Scale Correlation (from the default of 6 to 4 - 2) to avoid the algorithm mistakenly identifying noise for signal.
- Values up to 90% aren't unusual.
- Scale 1 - This controls the extent of noise reduction in fine detail - such as single pixels.
- Scale 2 - This controls the extent of noise reduction in small to medium detail.
- Scale 3 - This controls the extent of noise reduction in medium detail.
- Scale 4 - This controls the extent of noise reduction in medium to large detail.
- Scale 5 - This controls the extent of noise reduction of large noise blotches/grain.
Usually, when there is a correlation between image elements over multiple scales it indicates important detail in an image. This is how Denoise identifies detail. It can then provide the control to protect this detail from the denoising algorithm.
For every scale, the scale correlation algorithm looks at the immediate neighboring scales to see if detail in that scale exists. If detail in the neighboring scale exists, this is taken into account when determining how much noise reduction is applied. The Scale Correlation parameter specifies how many neighboring scales are evaluated. For example, if the Scale Correlation is set to 2 then it will look at scales +/- 2 from the current scale.
- Defines how much Denoise identifies smaller scale features as being detail that correlates with large scale detail that contains it. The scale correlation value controls how far the correlation propagates to other scale levels.
- Default value is 6. The range is 0 to 6.
- Certain types of noise can have scale correlation that makes them look like detail. To avoid this mis-identification in noisy images the Scale Correlation value can be reduced so it doesn't search for correlation in the smaller elements. This can be a problem when:
- There are too few sub-frames taken when using an OSC or DSLR or when using drizzle, or
- Using insufficient dithering.
- The noise has been introduced artificially during debayering or subsequent processing and not from natural Poisson noise sources.
- Larger values mean smaller elements of a larger structure are searched for to identify detail.
- Smaller values means that more of the smaller elements of detail will not be identified and so will not have the additional control over the denoise process.
This controls how any detail identified using Scale Correlation is smoothed.
- Default value is 75%. Range is 0% to 100%.
- Reducing this lessens the amount of smoothing done to the detail - keeping intact more of the small detail that was correlated with the larger structure.
- Increasing this allows greater smoothing, removing noise but potentially losing detail as well.
This allows you to eliminate noise (and signal) below the noise floor - the point below which noise no longer has a 1:1 linear relationship with signal due to the predominance of noise which is not signal-related (e.g. read noise). Noise reduction below this level is done differently.
- Use this after having used other parameters to eliminate as much of the noise as possible. This should remove any mottled appearance in the dark background if there is any.
- Default is Off. Range is Off (0.00%) to 100.00%.
- Change if the image shows a definite noise floor beyond which the signal is overwhelmed by noise. However, first try using other parameters to eliminate as much of the noise as possible. This value should be kept as low as possible.
- Typical values 0-15% but can be as high as 40%.
- If you increase Read Noise Compensation too much the stars will get a blurry halo around them - so check for this when adjusting.
This allows you to control noise (and signal) below the noise floor.
- Replaces Read Noise Compensation control of StarTools v1.4.
- Improved algorithm.
- Default is Off. Range is Off (0.00%) to 100.00%.
This balances noise reduction with detail loss in brightness. Larger values will do more aggressive noise reduction possibly causing some detail loss. Smaller values will reduce noise reduction. 0% is no noise reduction.
- Default is 12%. Range is 0% to 200%.
- Reducing to 0% turns off noise reduction completely.
This balances noise reduction with detail loss in colour. Larger values will do more aggressive noise reduction possibly causing some colour loss.
- Default is 12%. Range is 0% to 200%.
If a mask is used, Mask Fuzz controls the blending of the transition between masked and non-masked parts of the image.
- Default is 1.0 pixels. Range is 1.0 to 40.0 pixels.
StarTools denoise techniques
- By doing denoise late in the workflow - Tracking has had time to follow noise evolution over most of process and identify areas prone to noise, allowing noise reduction to target these areas.
- The traditional method of identifying detail in an image is to use a mask - either based on luminance or created manually. To avoid this Startools identifies detail automatically by using a technique called Scale Correlation.
- Usually, when there is a correlation between image elements over multiple scales it indicates important detail in an image. This is how the Denoise module identifies detail. It can then provide the control to protect this detail from the denoising algorithm.
- By making the Denoise module scale aware it allows the comparison of elements at different scales. Looking for correlation between elements at different scales enables identification of likely detail.
- The number of scale levels which the algorithm tries to correlate dictates the smallest detail that is identified - and therefore may be protected. If the scale is too small it is possible, under certain conditions, that you start to protect noise that is mistaken for detail. That is why we control the depth of the search for detail in the scale levels.
- Wavelet scale extraction - classifies features and structures into 5 different size scales.
- Noise removal is done by an enhanced wavelet denoiser - removes features (such as noise) based on their size.
- Noise grain caused by shot noise exists at all scale levels - becoming less noticeable as size increases.
- Denoise aggressiveness at each scale is adjustable using the Scale parameter.
- Global noise reduction (i.e. not scale-specific) is done by the Brightness/Colour detail loss setting.
StarTools looks for inter-scale pattern/structure correlation to identify image detail.
- Correlation is higher in areas that look 'busy' - this is normally associated with image detail.
- Correlation is low in areas that have little change such as large, smooth, gas clouds.
- Scale Correlation removes the need for a mask to protect image detail from noise reduction.
- Smoothness defines how much this 'detail' is smoothed to reduce noise.
- Where noise does not exhibit a Poisson distribution it may exhibit scale correlation - which can cause noise to be mistaken for detail.
- To avoid this, reduce the depth of correlation using the Scale Correlation parameter.
See also this Wikipedia article on Image Noise
Here is a very good video: Craig Stark: What do all great shots have in common?. Discusses noise sources and SNR clearly.
Shot Noise
- Caused by the random arrival of photons.
- Proportional to the square root of the intensity of light falling on the pixel.
- Independent of other pixels.
- Poisson distribution.
- Reduced by stacking multiple sub-frames.
- Caused by random varations in the current in the equipment electronics.
- Mainly thermal noise - temperature dependent.
- Independent of the amount of light falling on the pixels.
- Gaussian distribution.
- Dominant at low intensities.
- Reduced by stacking multiple sub-frames.
- Noise reduction of (Gaussian) Read Noise is done differently from the noise reduction of the (Poisson) Shot noise.
- Caused by the dark current - which increases linearly with time and exponentially with temperature.
- Poisson distribution.
- Independent of the amount of light falling on the pixels.
- Reduced by cooling of the sensor.
- Derived from quantisation error in A-D converter.
- Depends on the number of bits.
- Can be intensity dependent.
- Small for A-D converters of 12 bits or more.
Salt and Pepper Noise
- Descriptive of noise where there are bright pixels in dark regions (salt) and dark pixels in bright regions (pepper).
- Random errors of large variation.
- Caused by bit errors, A-D errors, electronic interference.
- Normally removed by use of dark frames or median filtering.
- Descriptive of noise which is distributed in a fixed pattern.
- e.g. Row or column patterns.
- May be caused by small differences in the characteristics of pixels.
- May be due to debayering issues in colour cameras.
- Normally removed by using bias frames or dithering.