Hello,
first of all welcome and kudos for all participating in development of ML! That's a great work!
The Dual ISO feature was the most exciting one, wanting me try ML out. Unfortunately, years ago I had an unsupported 450D and now I'm still quite unlucky with both of my actual bodies (700D & 70D) which should theoretically be supported.
700DThe camera was bought late 2016. Its S/N starts with 42*, so it's
most probably manufactured June 2016 and thus it's a late production model. Originally delivered with FW 1.1.4, later updated to 1.1.5. I was using ML versions for both firmware versions.
On all versions of ML for FW 1.1.4 - 1.1.5, activating the Dual ISO leads to an immediate error "ISOless PH err(x)". Like in
https://bitbucket.org/hudson/magic-lantern/issues/2427/700d-dual_iso-isoless-ph-err-15 but with a different error number (can't recollect now and the camera is away but I can reproduce it anytime if it helps). Trying to restart camera, change mode (M, Av, P...), altering settings in the original firmware did not help. I tried a dozen of times during the 1,5 year of when the camera is in my possession. Never made it working.
Does anyone feel fond of digging in (A1ex?)? How could I support you? Should I prepare ROM and RAM dumps?
70DSerial number starts with 26*, so the camera is probably from February 2015. Much newer than when porting to 70D started. Two versions of ML for 70D, now merged into one build, were developed for cameras manufactured in 2013 (S/N were starting with 0* and 12*).
Here it seems to work on the camera level fine. The problem appears when converting the cr2 into dng using the
provided cr2hdr. I have tried builds 18 and 27. Both behave the same.
The file after conversion seems to be the bright frame only. All highlights, which are clearly visible in the cr2 are gone in dng. I am using ACR 10 in my workflow but tried also LR 6 with the same result (including usage of LR plugin). However, FastStone Viewer does not show this behaviour, it opens the dng file preserving both highlights and shadows, so it made me think that maybe ACR interprets the file differently. But... you all seem to use ACR or LR, so it
should work. I tried also some dual iso cr2 samples from different forums, converting them on my own with cr2hdr and they opened fine, so it seemed to be related to my camera.
Original CR2 from my 70D with AFAIR 100/1600 Dual ISO (1:1 crop):
Final DNG after processing with cr2hdr build 27 with default settings. The highlights are missing.
Here final DNG after darkening in ACR. You can already recognize artifacts due to reduced resolution and... again the missing highlights.
Fun fact: when running cr2hdr with --debug-blend the
fullres_smooth.dng looks perfect (it seems to include the highlights from dark frame and shadows from bright frame). I believe the only difference between
fullres_smooth and
final dng should be the lack of EXIF in
fullres_smooth. So, I tried stripping the final dng of the complete EXIF (exiftool -all= xxx.dng; btw awesome manual but tl;dr) and... yes, now this file opens in ACR fine, same as
fullres_smooth. Here my full appreciation, the hack is gorgeous! I am pleased to see the significant improvement in shadows pushed by +4EV whereas the partial loss of vertical resolution is for me a low price to pay, having a 20Mpx sensor. Finally my camera can compete with my wife's Pentax K3 in the noise category.
Here fullres_smooth.dng (or final with stripped down EXIF). All data is in!
The next step could be analyzing what fields are set in EXIF and track the one property down, which causes ACR to cut the highlights. I believe maybe there is something about the bit depth, causing ACR to overflow in the bitdepth it is using?
Summary: the problem is camera specific, as other dual iso cr2, which I downloaded from internet (e.g. from 650D) are opening after conversion with my toolchain properly. My 70D is, however, affected.
Could you please have a look at the problem, so the converter works out of the box, preventing the others falling into the same issue as me?
Attachments:
original CR2 [removed, PM if you need it]
final DNG processed with cr2hdr build 27 [removed, PM if you need it]conversion log:
c:\PortableApps\MagicLanternDualISO>cr2hdr IMG_3925.CR2
cr2hdr: a post processing tool for Dual ISO images
Last update: 06fae84 on 2017-12-03 23:53:11 UTC by alex:
cr2hdr: experiment - yet another exposure matching algorithm
Active options:
--amaze-edge : use a temporary demosaic step (AMaZE) followed by edge-directed interpol
ation (default)
--cs2x2 : apply 2x2 chroma smoothing in noisy and aliased areas (default)
--wb=graymax : set AsShotNeutral by maximizing the number of gray pixels (default)
Input file : IMG_3925.CR2
Camera : Canon EOS 70D
Full size : 5568 x 3708
Active area : 5496 x 3670
Black borders : 72 left, 38 top
Black level : 2048
ISO pattern : dBBd RGGB
White levels : 13485 12090
Noise levels : 6.48 11.06 11.45 6.39 (14-bit)
Linear fit : y = 8.1888*x - 1.39
Linear fit : y = 8.1838*x - 1.25
Linear fit : y = 8.1826*x - 1.25
Linear fit : y = 8.1817*x - 1.24
Linear fit : y = 8.1806*x - 1.24
ISO difference : 3.03 EV (818)
Black delta : 4.33
Black adjust : -0.0
Dynamic range : 10.81 (+) 9.78 => 12.81 EV (in theory)
Looking for hot/cold pixels...
Hot pixels : 63
Cold pixels : 10379
AMaZE interpolation ...
Amaze took 2.24 s
Edge-directed interpolation...
Semi-overexposed: 29.70%
Deep shadows : 55.25%
Horizontal stripe fix...
38: offset too large (18327)
3707: offset too large (-8555)
Full-res reconstruction...
ISO overlap : 4.8 EV (approx)
Half-res blending...
Chroma smoothing...
Building alias map...
Filtering alias map...
Smoothing alias map...
Final blending...
Noise level : 71.72 (20-bit), ideally 71.59
Dynamic range : 13.32 EV (cooked)
Black adjust : -0.0
AsShotNeutral : 0.49 1 0.60, 5222K/g=0.96 (gray max)
Output file : IMG_3925.DNG (already exists, overwriting)
IMG_3925.DNG : copying EXIF from IMG_3925.CR2