Repeated the experiment with
DUAL7605.CR2 as overexposed image (considered ground truth for shadows), and the previous one (
DUAL7603.CR2) as the underexposed image. This example is a bit closer to reality, no more deep shadows, no more bit problems. I'm showing 100% crops.
Ground truth (overexposed image), and another one underexposed by 4 stops with shutter (so the overlap is similar to 100/1600, but the noise difference is roughly 1 stop larger):

Interpolations:
nearest neighbour (half of the lines from overexposed images), mean23, amaze-edge:

(notice the detail reconstructed by amaze-edge from only half of the lines)
Full-res and half-res blending:

Full-res simply combines both exposures after scaling and offseting them to match. Notice some more detail recovered, at the expense of noise. This is the worst case performance regarding DR.
Half-res blending is a weighted average between the two exposures (after interpolation with amaze-edge), as described in the PDF, figure 6. The noise is much better, at the expense of aliasing and lost detail.
And the final output is basically a weighted average between the last two:

ufraw-batch --temperature=4000 --exposure=4.5 DUAL7603.CR2 --out-type=ppm --output=- | convert - -crop 900x600+1400+1360 underexposed.jpg
ufraw-batch --temperature=4000 --exposure=0.5 DUAL7605.CR2 --out-type=ppm --output=- | convert - -crop 900x600+1400+1360 ground-truth.jpg
ufraw-batch --temperature=4000 --exposure=1.5 nointerp.dng --out-type=ppm --output=- | convert - -crop 900x600+1400+1360 nointerp.jpg
ufraw-batch --temperature=4000 --exposure=1.5 amaze-edge.dng --out-type=ppm --output=- | convert - -crop 900x600+1400+1360 amaze-edge.jpg
ufraw-batch --temperature=4000 --exposure=1.5 mean23.dng --out-type=ppm --output=- | convert - -crop 900x600+1400+1360 mean23.jpg
ufraw-batch --temperature=4000 --exposure=5.5 fullres.dng --out-type=ppm --output=- | convert - -crop 900x600+1400+1360 fullres.jpg
ufraw-batch --temperature=4000 --exposure=5.5 halfres.dng --out-type=ppm --output=- | convert - -crop 900x600+1400+1360 halfres.jpg
ufraw-batch --temperature=4000 --exposure=5.5 final-output.dng --out-type=ppm --output=- | convert - -crop 900x600+1400+1360 final-output.jpg
Caveats:
- This was a fake dual ISO, done with shutter bracketing, not ISO (if you have a similar bracket with ISO, let me know)
- Still, the results are valid regarding resolution and noise recovery (how close it can get to the overexposed image?)
- I'm only showing the shadow performance (relevant for noise); feel free to experiment with highlights, but I think aliasing it's the same
- For some reason, my DNG files in ufraw are rendered 1 stop darker than CR2's with the exact same content (figure out why; for now I added 1 stop of exposure compensation when developing the DNGs)
My conclusions:
- deep shadows will benefit from more bits or floating point output (from previous post)
- there is room for improvement regarding noise in low-detail areas (compare final output with half-res blending)
- resolution loss is noticeable at 1:1, so it's not a substitute for tripod bracketing (compare final output with ground truth)
- however, resolution loss in
worst case should not be obvious in practice (compare amaze-edge with ground truth; note that amaze-edge interpolates from half of the lines). Also compare amaze-edge with final output and notice how resolution improves in midtones.
- when you have to underexpose in order to capture the highlights, go ahead and use it (compare final output with underexposed)