RAW development with Vulkan darktable

Configuring the Node Graph

There are two important nodes missing from the default vkdt graph: color saturation tuning and sharpening. To add them to the graph later on, switch to the pipeline config tab (Figure 6). You will see two lists containing modules and nodes. The upper list contains all of the active modules, but not all of them are editing modules. For example, i-raw main is an input module, and display main and display hist are visualization and review modules. Curved arrows connect the active modules to each other.

Figure 6: In pipeline config, you can move, insert, and disable modules.

Expand the llap 01 and filmcurv 01 modules. You will now see several buttons for each of the modules. On the far right you have input and output, where the output from filmcurv 01 is connected to the input for llap 01. To the left, you will see move up and move down. If you click move down on llap 01, the whole module moves down one level to sit below filmcurv 01. There is a disconnect button below move up. This disables modules, which then appear in the disconnected list at the bottom. You will also see the saturate 01, lens 01, and zones 01 modules there.

Expand the saturate 01 module and click insert before. The button turns red, and a new button named before this appears in the top module list for the expanded modules (Figure 7). Click on filmcurv 01. The saturate 01 module now inserts itself between filmcurv 01 and colour 01. Switch back to the tweak all tab, and you'll see saturate 01 there too between colour 01 and filmcurv 01. Expand the module and drag the slider to the right to increase the intensity of the colors.

Figure 7: To insert a module, first click the insert before button and then click before this.

The module used to sharpen photos is named deconv because it uses a deconvolution algorithm. However, it does not initially appear in the disconnected list. You can add the module to the list by selecting it in the pipeline config tab at the very bottom of the drop-down list in module and then clicking add module. Now expand deconv 01, click insert before, and add it under crop 01.

This node is not actually a conventional sharpening filter. It is only intended to counteract any blur of the image during image capture, for example, due to diffraction blur. (Diffraction blur refers to a reduction of sharpness in optical images due to the diffraction of light at the aperture of a camera, telescope, or microscope lens.) This is why the module has two controls. The sigma value lets you specify how pronounced the blur of the image was during image capture, while iterations lets you specify how often vkdt applies the algorithm to the image: the higher the two values, the stronger the sharpening effect.

It is relatively easy to make the vkdt pipeline unusable, so be careful when moving, inserting, and deactivating modules. Not every node can reside at any location. For example, demosaic 01 must not be at the end of the graph because it handles descreening of the RAW image. If you insert an effect in the wrong place, this disables other nodes and the preview image turns black. In this case, you need to reset the graph to the default. To do this, press Esc to return to the management module and select the image for which you want to reset the graph. Then expand the selected images module in the sidebar on the right and click reset history stack. Proceed in the same way if you are dissatisfied with the editing results and want to start all over again.

Removing Image Noise

We have not looked at one important module so far: denoise (01) suppresses image noise. It has two sliders. Use strength to specify the extent to which the module suppresses noise in general and luma to control whether it also removes luminance noise. The further you move this slider to the right, the stronger the noise reduction. Be careful here: If you suppress luminance noise too heavily, you will lose image detail. If the slider is on the far left, luma will only reduce color or chrominance noise.

Noise reduction does not work correctly at first. If you drag strength to the right, the image in the preview window turns black or green, or you see artifacts such as colored dots. This is because you have not yet created noise profiles for your camera. Vkdt uses these profiles because the camera sensor noise depends on several factors, including the brightness of the pixels and the ISO value. Vkdt first examines how much noise different brightness pixels produce for different ISO values.

To create noise profiles use the bash noise-profile.sh script in the vkdt/bin directory. If you installed vkdt from the OBS repository, you will need to do a little customization work. Open the script with a text editor and look for the vkdt-cli string; it appears twice in the script. Now remove ./ in front of vkdt-cli and save the file. Otherwise, the script would look for vkdt-cli in the vkdt/bin/ directory. But because you did not compile the program, it is not there.

Then run the script and use the raw file you are editing as the command line argument (Listing 6). This will create several files. In vkdt/bin, you will find a file with a suffix of nprof.jpg. Its name is composed of your camera's name and the ISO value of the photo. In vkdt/bin/data/ there is a new nprof/ folder that contains a file with the same extension. The program again named this file after your camera and the ISO value of the photo. If you installed vkdt as a DEB package, you need to recopy all these files and folders to /lib/vkdt/.

Listing 6

Noise Profile

$ cd /vkdt/bin/
$ /noise-profile.sh /home/username/Pictures/filename.raw

If you restart vkdt now, noise reduction should work correctly. Once you have created noise profiles, you can use them for other photos. Note, however, that you need a separate profile for each ISO value.

Exporting Photos

After doing all that work, you will want to save the results of your efforts. To do so, press Esc to switch back to the administration module and select the image you want to export. Then expand the export selected module in the sidebar on the right. In the width and height input fields, type the size you want the exported photo to be. Leave the values at 0 if you do not want to change the image size.

For filename, specify the filename of the photo, including the directory path. If you want to save the photo in a lossless format for further editing, select PFM [16] as the format. Finally, click export. Vkdt automatically converts JPEGs to sRGB; it saves PFMs in the linear Rec. 2020 color space. However, the program does not embed color profiles in the files, and PFM files are likely to be upside down.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • Darktable 1.2

    Darktable shines as the most powerful free RAW converter, with impressive new features in the current version 1.2.

  • Perfect Balance

    The current RawTherapee version finally adds selective image editing, among other long-desired features, to help it compete with king of the hill, darktable.

  • ART – Another RawTherapee

    RAW converters are the first tool to use in editing photos, and new solutions and programs have the potential to make users' lives easier. How does ART stack up?

  • Darktable 1.6

    Hardly anything affects the quality of photos more than play of light and shadow, or the brilliance of colors. Darktable fixes incorrect exposure, conceals unfavorable lighting conditions, and ensures harmonious colors.

  • Tutorial – Krita

    Not many people are aware that Krita, the popular open source painting program, is also great for editing photos.

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More