A new (experimental) Fast Export mode for RawTherapee

Hello all, and sorry in advance for the length of the post!

In the last couple of weeks I’ve been playing with a new feature for the “Fast Export” mode of RT.

I’ve always liked the idea of a fast mode that trades speed for quality, but I’ve never been very happy about the current fast export mode. In my opinion, it gives up too much in features in order to achieve a (reasonable) speed advantage compared to the normal mode.

So, inspired by the --hq flag of DarkTable (its description, I haven’t looked at the code), I started experimenting with a “special” processing pipeline to be used for the Fast Export mode. The idea is that of resizing the image as early as possible, and run the rest of the processing steps on the resized image. So, the more you scale down the output, the more you gain. This of course means that you also lose quality, but that is part of the “contract” of Fast Export: if you use it, you are ready to sacrifice some quality for speed.

I think that the feature is now in a usable state. This doesn’t mean it is bug free, but it should be stable enough that people who are interested might give it a try and provide feedback :slight_smile:

There is a new option in the Fast Export Tab that enables the new pipeline (see the screenshot). If you enable it, the idea is that you can then get a reasonable performance boost (depending on how much you resize, of course) while at the same time obtaining an output that is much closer to the “normal” one.

In order to give you a feeling of what to expect, I have processed some of the RAW files that have been posted on the forum. For each of them, I’m showing you the jpeg output of the “normal” and the new “fast” pipelines of RT, when rescaling to 1920 pixels on the long edge. The pp3 files are also attached, toghether with the execution times (on a Thinkpad T460s with 4 2.6GHz i7-6600 cores and 20Gb of RAM – YMMV, depending on the machine you use).

To make things a bit more fun, I’m not telling you which is which, though. I think it should be pretty obvious for a couple of shots, but I’m still curious to hear what people think…

I tried to get a reasonable varied sample of pictures to show the behaviour under different conditions, but of course this is not exhaustive, especially because there are tools in RawTherapee that I never use. So, if you:

  1. find this interesting, and

  2. would like to help

I would be very interested in seeing pictures (with pp3 files, if possible) for which the two pipelines produce significantly different results. However, any other kind of feedback is also welcome!

The code is at https://github.com/agriggio/RawTherapee/tree/simpleprocess-fast-export-test (in the simpleprocess-fast-export-test branch)

Sample files are below.

And thank you for having read until here! :slight_smile:

V1

V2

V1

V2

V1

V2

V1

V2

V1

V2

V1

V2

V1

V2

4 Likes

A compiled test version for Windows (x64. Gtk3.22) can be downloaded from here:
https://filebin.net/06syncqi0898wn5k (updated, see below)

No installer included. Extract the folder “RawTherapee-fast-export” to e.g. your Desktop and run “rawtherapee.exe” inside this folder.
Cache and settings are saved into “localappdata\Rawtherapee-fast-export”. It leaves your existing installation untouched.

2 Likes

Found a GUI issue.
After start of RT the processing steps are enabled. Switching between “Dedicated” and “Standard” and back to “Dedicated” disables the processing steps.

Thanks! should work now

This is awesome. I’m using RawTherapee for some automation that converts hundreds of 100MP IIQ files from a PhaseOne camera into smaller JPGs, so processing time is of the essence.

Question: can I enable the Fast Export mode through the RawTherapee command line option? Since the processing options appear in the GUI but don’t appear to be specifiable in the .pp3 file, is there a way for me to tell rawtherapee.exe to obey the Fast Export settings?

Thanks a million - this work is going to save me literally days of compute time :slight_smile:

hello @sheimend, and thanks for the feedback! yes, there’s a new flag -f to use the new pipeline from the command line :slight_smile:

I tested on a batch of different raw format files. If I downsize to a 1200x1200, its about 3 times faster than full processing.
Much more usable as before as I didn’t know what processing to discard.
Sure it is not for pixel peepers due to downsizing but it is overall very similar to full size image.
Useful for slideshow, web…

Note for those who use cli, @Hombre develops a rt-cli branch that is faster to load (available here).
Is this new feature also included in rt-cli?

Thank you
André

rt-cli will be merged into the main RT branch soon. after that, I will also incorporate the feature. hopefully, also the new fast export will be part of the official RT eventually, but I don’t know when.

@agriggio rt-cli has been merged to dev just now.

@Hombre great! I’ll try to integrate it ASAP then

Slightly OT:
would be very useful (I think) put a chain link button between Max width and Max height, because very often they are the same value

@agriggio It doesn’t build, I’m working on it actually, so maybe you could wait a little bit ? Let’s discuss this in issue 3691 ( cli version to speedup start time / rt-cli branch · Issue #3691 · Beep6581/RawTherapee · GitHub )