Bug #12598

demosaicing process

Added by Pascal Grataloup 2 months ago. Updated 2 months ago.

Closed: invalid
Start date:
Due date:
% Done:


Affected Version:
git master branch
hardware architecture:


it seems that any new photo opened in the darkroom is interpolated in PPG although in the preferences, the slow complete mode is defined.
This is the case for any new photo processed the first time in the darkroom and it's as if the settings were ignored.

Pb demaricage dt 260-1.jpg (64.9 KB) Pascal Grataloup, 02/11/2019 02:20 PM


#1 Updated by Aurélien PIERRE 2 months ago

  • Status changed from New to Closed: invalid

The global preference is applied on the preview (in-software) when the zoom factor is < 100 %, for performance reasons. During export and when the preview is zoomed at 100 % or more, the setting from the module takes precedence.

#2 Updated by Pascal Grataloup 2 months ago

I do not understand this answer. You seem to say that it is normal for the global preference to be applied to the thumbnail (which is visually unverifiable) but not in the module if the zoom factor is <100% (which is always the case when opening in darkroom).
Moreover, you say that during the export (also unverifiable) and when the zoom factor is at 100% or more, it is the parameter of the module and not that of the global preferences which is applied: so it's always PPG which is applied and not the complete method of the global preferences as long as it has not been manually modified in the module. So each time we have to modify it in the module and, in this case, what is the purpose of the global preferences parameter? In fact, it seems to be useless.
For me, this is a problem, either of analysis or of writing, or both ...

#3 Updated by Aurélien PIERRE 2 months ago

Demosaicing is essentially an expensive high-tech interpolation to fill the blanks left by the Bayer array. If you zoom-out on the picture (< 100 %), you are doing another cheap interpolation (to resize) on top of it. So, using your high-tech interpolation becomes not only useless, but also slows down the software for nothing because the second interpolation is smoothing much stronger all the artifacts the demoisacing is supposed to correct without loss of sharpness.

For this reason, the global preference allows you to bypass the module setting when it is overkill, to save some performance, because you won't see the difference anyway.

If you want Amaze applied by default in the module (and thus at export and 100 % zoom), you need to create a preset in the module with Amaze enabled, and have it auto-applied.

If you want to check which algo is actually running, you can start darktable in console with `darktable -d perf -d opencl` and you will see which variant runs in the output.

Also, PPG is a complete demosaicing method. Amaze can perform slightly better in some cases, but is several times slower and has no OpenCL GPU variant. Quite frankly, displaying a 24 Mpix picture on a modern 2 K screen almost doesn't need any smart-ass demosaicing at all. A regular bilinear interpolation would work just as good. It's another matter when you export in high-res to print…

Also available in: Atom PDF