Skip to main content

Processing high ISO night images with RawTherapee

Earlier this year i did some videos (here and here) regarding how to remove the noise from high ISO raw images. I decided to write down the work flow with text and pictures to avoid the seeking the video in different parts.

The original file is available here: https://discuss.pixls.us/t/playraw-high-iso-challenge/2778 and the image is taken by PkmXDec using a Sony A6000 + Canon FD 85mm f/1.8 S.S.C. + Lens Turbo II wide open.

Out of the box, the picture shows a lot of noise and the color is too warm if we press the "Auto Levels". This happens because he ISO is 12800 and the lighting available: sodium light. In addition, the color noise has a specific noise pattern, as shown in the uniform part of the picture on the left.

Initial raw image conversion using the default options.
Initial RAW image conversion using the default options.
1. Our first approach is to change the Demosaicing method from the "RAW" tab. The "RAW" tab contains all the options responsible from converting the image from the RAW format to actual picture. This is the first step of process flow before applying any advanced filter or changing the color temperature. In this tab, we change  the AMaZE to LMMSE method. We also change the enhancement steps to 6. The image now has slightly better color noise. An alternative method to use in high noise pictures is the IGV.

RAW image after using the LMMSE method. Notice the reduction of color noise.
RAW image after using the LMMSE method.
Notice the reduction of color noise.
Moreover, Chromatic Aberration in the same tab (Demosaicing) can fix possible chromatics aberrations in the picture. We select "Auto-Correction". Finally, we can also enable the "Hot pixel filter" and the "Dead pixel filter" under the "Preprocessing" set of options.

Demosaicing method options of  the RawTherapee when processing high ISO images.
Demosaicing method options of
the RawTherapee when processing
high ISO images.
2. Next we have to fix the white balance from the color tab. We decrease the temperature to 2451 and we enable the vibrance with a small value (13) to improve the unsaturated colors. We may improve the color in the final phase of our editing.

White balance of the RawTherapee.
White balance of the RawTherapee.
3. The next important step is the noise reduction from the Detail tab. There are two noise reduction methods: The normal and the impulse. We initially enable the "Impulse Noise Reduction" with the default settings. We expect to see a small improvement in random white and black pixels appearing.

Next we enable the "Noise Reduction". We change the Mode from "Conservative" to "Aggressive".  We will notice the difference in color noise, but we have to modify the luminance reduction to achieve better results. We change the "Luminance control" to "Curve". Now we can decide how much noise reduction we want depending on the light available. As generic rule, the dark parts of the
picture contain more noise, so we have to increase the noise reduction. We also increase the "Detail recovery" to improve the details of the picture and decrease the impact of noise reduction.
Noise reduction options of  RawTherapee for high ISO RAW images.
Noise reduction options of
RawTherapee for high ISO
RAW images.
Now even with enough noise reduction, we still have some artifacts. To remove them, we can apply the "Median Filter" from the same tab. Due to high noise of this picture, we select "5x5" Median type and "Weighted" Median method to eliminate also the remaining color artifacts.
Median Filter options for the noise reduction of the  RawTherapee for High ISO RAW images.
Median Filter options for the noise reduction of the
RawTherapee for High ISO RAW images.
4. With noise reduction, we also loosing vital information of the image and we decrease the overall clarity of the picture. To fix this we enable the "Contrast by Detail Levels" from the same tab.  We have to add a bit only to avoid the artifact generation in the picture.

Contrast by Detail Levels of  the RawTherapee.
Contrast by Detail Levels of
the RawTherapee.
5. Finally, we adjust the light and the contrast of the picture. The produced histogram show that the image needs more contrast. In this particular photo we decrease the shadows, we decrease the Exposure compensation to 1.2 and increase the "Black" value to 980 to emphasize the black in the picture.

Final image after processing with RawTherapee.
Final image after processing with RawTherapee.

Popular posts from this blog

Static linking with gcc and g++

In this tutorial, we will explain what the static linking is, how this affect the size of final binary, and why statically linking with g++ sometimes is pain. By definition, a statically compiled binary is a group of programmer ‘s routines, external functions, and variables which are packed into the final binary executable. The compiler or the linker produces the final object and embeds all the functions and variables and the linking phase.  There are two reasons of using dynamic linking and shared libraries: 1) Avoid creating a huge binary, if all the programs use a standard set of libraries why not having the operating system providing to them 2) Compatibility on operating system and machine dependant characteristics: sometimes the libraries must be implemented based on the architecture or the operating system and using dynamic linking is an easy way to avoid this catch. On the other hand, static linking is the ideal way of distributing one software product, pay...

Processing Milky Way in RawTherapee

This text is an analysis of a video I did some months ago how to process photos of our Milky Way in RawTherapee. You can find the picture here . The photo was taken by wiegemalt. This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. Editing: Step 1: Fixing lighting The first thing someone notices when opening the picture is the extreme noise due to high ISO used (1600 - check the picture on the right). The first thought is to de-noise the picture, however, if you do that you are going to loose the details of the night sky. The main reason for the high noise is the additional exposure Rawtherapee adds when the 'Auto' button is pressed. In particular, the RT adds +2.4 EV to equalize the picture. This is Wrong! What we want is to keep the noise down and at the same time bring the stars up. That's why we are going to play with the Tone Curve of the RT. To adjust the light properly we increase the cont...

Auto - Vectorization with little help from GCC!

This tutorial helps the programmers to benefit the progress of the auto-vectorization algorithms that are implemented in modern compilers, such as gcc. Before you start playing with the vectorization of your code i assume that you don't have any bottleneck in you code (like dynamic memory allocation etc) in the critical path. In this tutorial we will use the gcc 4.4.1, but the same steps can be applied to newer or older versions.  First of all there are two issues with auto vectorization:  1) gcc must know the architecture (eg what SIMD instructions are available)  2) The data structures must by properly aligned in memory The first step is to find the architecture of your processor and point it to gcc using the flags -mtune=... / -march=... you specify the architecture.  For example, my laptop is core2Duo so i put -march=core2. You can find more more information  here .  The next problem we must solve is knowledge of memory alignment. ...