There’s something that does NOT smell good here. The JPEG at the end is 98.7% of the data and is NOT raw (although it could be lossless compressed). I’ve identified the mdat with isobmffdump (available on GitHub)
749 rmills@rmillsmbp:~/gnu/github/isobmff/pyke369/isobmffdump $ isobmffdump ~/Downloads/canon_eos_m50_01.cr3
@0 | ftyp [24]
@24 | moov [28440]
@32 | uuid [26216]
@26248 | mvhd [108]
@26356 | trak [484]
...
@28464 | uuid [65560]
@94024 | uuid [416007]
@510031 | mdat [38025680] <------ the is the BIG JPEG
@38535711 | end
750 rmills@rmillsmbp:~/gnu/github/isobmff/pyke369/isobmffdump $
I’ve extracted the mdat/jpeg from the image (bytes 510,031+16 for 38025680-16) bytes (16 = length of UUID itself).
513 rmills@rmillsmbp:~/gnu/github $ dd bs=1 skip=$((510031+16)) count=$((38025680-16)) if=~/Downloads/canon_eos_m50_01.cr3 > foo.jpg
38025664+0 records in
38025664+0 records out
38025664 bytes (38 MB) copied, 418.962 s, 90.8 kB/s
514 rmills@rmillsmbp:~/gnu/github $ exiv2 -pR foo.jpg
STRUCTURE OF JPEG FILE: foo.jpg
address | marker | length | data
0 | 0xffd8 SOI
2 | 0xffdb DQT | 132
136 | 0xffc0 SOF0 | 17
155 | 0xffc4 DHT | 418
575 | 0xffda SOS
515 rmills@rmillsmbp:~/gnu/github $ ls -alt ~/Downloads/canon_eos_m50_01.cr3 foo.jpg
-rw-r--r--@ 1 rmills staff 38025664 4 Mar 18:45 foo.jpg
-rw-r--r--@ 1 rmills staff 38535711 3 Mar 12:17 /Users/rmills/Downloads/canon_eos_m50_01.cr3
516 rmills@rmillsmbp:~/gnu/github $ calc "38025664/38535711"
0.986764302856641
517 rmills@rmillsmbp:~/gnu/github $
It’s a plain JPEG of 4000x6000 pixels:
522 rmills@rmillsmbp:~/gnu/github $ calc "4000*6000*3/(1024*1024)"
68.66455078125
523 rmills@rmillsmbp:~/gnu/github $
It must be compressed. It isn’t raw! However the compression could be lossless and therefore a raw equivalent.
I believe I read that the CR3 image is 14 bits/channel. There isn’t enough data for 5 bits/channel.