Linear noise reduction using TGV Denoise (Pixinsight)
Noise reduction in astrophotography is done in many ways using many different tools and techniques. I personally have experimented with many. I've found that different methods/combinations are needed depending upon noise levels/types, target type, and stylistic preference. My plan is to go over many of these methods as part of my blog over the coming weeks/months. For this post, I want to focus on a method that works well for a lot of situations: linear application of TGV Denoise in Pixinsight.
I'll start with a straight SHO combination of a recent project I completed on The Rosette Nebula (Sh2-275). It was acquired with a Celestron Edge HD 8, ASI294MM Pro, and Antlia 3.5nm narrowband filters.
Linear noise reduction should be one of the first processes applied. If you use deconvolution, it should generally be done before linear noise reduction. If you need to do an ABE/DBE to remove light pollution gradients, also do that before linear noise reduction. If you're working on LRGB data, do a color calibration first.
In my case, I don't need to perform an ABE/DBE or need to color calibrate. I'm also going to forego deconvolution on this image, as the stars are fairly tight. Here is my starting image, just after combining into a SHO image and slightly cropping:
To apply TGV Denoise to a linear image, you need two masks: a luminance mask, and a low-contrast luminance mask. Extract the luminance from your image by clicking the "Extract CIE *L component" button at the top left. Next, apply the auto STF to stretch the extracted luminance image, and then duplicate it so that you have two. If you don't know how to do these steps, watch the video - I'll demonstrate there.
Now there are two stretched luminance images. They should both look like this:
Minimize one, and work with the other. This one will be the low-contrast luminance mask. To make it low contrast, open the Curves Transformation process. Select the "RGB/K" curve, and then select "linear interpolation" mode at the bottom right of the process. Move the far right side of the line down to about 0.5, and the far left to around 0.2. It should look something like this:
And when applied to the luminance copy, it should look like this:
This mask will help attenuate the amount of TGV Denoise applied to the image. TGV Denoise is often over-powering when applied to a linear image without masking.
It might be a good idea to change the name of this mask to "low_contrast" to avoid confusion.
Next, apply the low-contrast luminance mask to the linear SHO image, and INVERT THE MASK!! I repeat, invert the mask.
Open TGV Denoise. Select "Local Support", and click the arrow to see options. Select the "Support image" by clicking the folder. Use your ORIGINAL stretched luminance image as the local support image. Everything else in "Local Support" can remain at default.
Now is the part where you'll need to experiment a bit, based on your own image. Generally, I use RGB/K mode in TGV Denoise during linear noise reduction. I also change the exponents of "edge protection" to -5 and "smoothness" to -1. This is a good starting point - it allows me to generally use only the parameter sliders to refine my result.
Create a preview to experiment. Choose an area of the image that has some sharp edges, but also some background noise. Here's my preview:
Here's my current settings for TGV Denoise:
And the result when applied:
This is the point where I ask myself a few questions:
Is it too blurred?
Am I losing details?
Are there any artifacts?
In this case, it's pretty good. For my taste, I'll slightly reduce the blur by reducing the "Strength" slider to 3.35, and bring up the "Smoothness" slider to 0.42 to slightly smooth the background. I'll leave "Edge protection" where it is, since I'm not seeing diffusion over structure edges.
Here's the closeup result:
At this point, it's a good idea to test out your settings in other regions of the image using several previews. Once satisfied, apply the process to the entire image. You may also experiment with increasing "iterations". I find 100 works well, but occasionally bump it as high as 500 depending on the image.
Have fun killing some noise - stay tuned for the next installment on noise reduction!