[Play_Raw] Dynamic Range Management

If you reread my comments (from 15 days ago by the way) - I surmised that using exposure clipping was potentially causing the haloing (exposure clipping was active in that particular image).

One could argue that the local contrast enhancement operation Pierre used fundamentally violates light-transport consistency. I’ll need to run some tests, but I wouldn’t be surprised that you could cause haloing by abusing it. After all, if you look in darktable source code, “local contrast” is CLAHE, and the original author of the algorithm (Karel Zuiderveld) has stated that CLAHE can cause haloing. Of note, using tone equalizer without that followon step provided extremely unnatural results for me. So it appears that achieving “natural-looking” results requires violating Pierre’s rules somewhere in the pipeline.

I’ve only seen haloing in exposure fusion in three cases:

  1. Any attempt to apply the algorithm to pixels in linear space. (There is a possibility that this is due to a bug lurking somewhere in the darktable blending code for exposure fusion, I’m digging into this, but with the current state of the code, any attempt at blending in linear space fails horribly. I wound up busy with non-darktable stuff last weekend so couldn’t spend time characterizing the original enfuse implementation more.)
  2. Attempting to use exposure clipping - kind of makes sense since this causes a hard edge in the exposure weights
  3. Having excessive EV shift between exposures