Hi
I import image into DT 4.6.0 and see these artefacts on high contrast edge.
the raw image in Camera, Canon R5, does not show them and when opened with Canon DPP4 it also does not show any artefacts
both images are imports with no processing at 100%
I think itâs the file. I get the same jagged effect when loading it into darktable 4.6, RawTherapee dev and ART 1.21.17 (other CR3s load cleanly). DPP shows it without the jaggies so it must be doing something to âfixâ it. The JPG thumbnail is in AdobeRGB color space, but that should have no bearing on it and I donât see anything strange.
So basically the same thing youâre seeing, but itâs not just darktable.
Thatâs a bug during inverse quantization for CRAW compressed CR3s. As there are no overflow checks in Libraw code, the decoded image is corrupt. Iâve tried to convert the file with dnglab and hit an shl-overflow.
thread âdnglab-tokio-workerâ panicked at rawler/src/decompressors/crx/iquant.rs:143:46:
attempt to shift left with overflow
Do you have more shots from same scene with idendical problems?
If this is the only file, I assume the file itself is corrupt. There are no checksums in CR3. If image data has some corrupt bytes, decompressed output may have artifacts like your DT screenshot.
I belive Canon and Adobe (which uses CRX decoder from Canon) has a recovery routine for such corruptions. If I filter out the invalid quantization values and assume 1, the image in DT looks âokayâ:
Yes I have a couple more shots taken at the same time that show these errors.
I not an expert with Dark Table
I am using a windows executable build of 4.6.0 on a windows 11 laptop
Could it be high ISO (noise) error? The highlight areas have lower resolution than the darker areas (feathers)
Thx for your input
â If I filter out the invalid quantization values and assume 1, the image in DT looks âokayâ:
@Jens-Hanno_Schwalm There is no issue with âunsupported compression formatsâ. There is simply a glitch during IQ. I assume that darktable has changed some compiler-flags or OP is using a build from a compiler where the shift result is 0 instead of 1.
Edit: That explains why users like @Peter donât hit the bug. It just depend on CPU/compiler/flags/whatever.