# format mode compression status notes
# GENERATED by tools/support_matrix.py from docs/support/*.tsv — do not edit.
3FR Hasselblad lossless JPEG hasselblad verified H3D, H4D-60, CFV-16, CF-22, CFV-50c: decode
3FR uncompressed 16-bit uncompressed verified X1D, X1D II, CFV II 50C, X2D, CFV 100C: decode; masked-area black
ARI ARRI ALEXA (Mini) 12-bit msb32 packed verified decodes
ARQ arq uncompressed verified 4-shot pixel shift (4 samples/pixel); 16-shot layout follows the same path, no sample
ARW 12bit-packed uncompressed verified A850/A900 12-bit LSB packing; 14-bit levels scaled
ARW 8-bit other unsupported 8-bit ARW variants are rejected with an error
ARW Hasselblad Lunar/Stellar/HV sony partial delegated to the Sony decoder
ARW arw1 sony-arw1 verified 9 corpus files (A100–A390 Huffman column stream), sequential
ARW arw2 sony-arw2 verified 114 corpus files (cooked 8-bit delta blocks + tone curve), row-parallel
ARW arw6 other verified 4 corpus files (ILCE-7M5 compressed / compressed HQ), wavelet codec, parallel
ARW lossless sony-lossless verified 19 corpus files, lossless JPEG tiles (L sizes, crop modes), tile-parallel
ARW lossless-ycbcr sony-lossless verified 19 corpus files, S/M sizes: 4:2:0 and 4:2:2 YCbCr tiles converted to RGB (4 samples/pixel)
ARW uncompressed uncompressed verified 38 corpus files, 12/14-bit data in 16-bit containers incl. APS-C and S35 crops
CAM Casio QV-11 / QV-5000SX - unsupported processed CAM image format, not sensor data
CR2 raw lossless-jpeg verified All CR2 generations (20D..5DS/1D X II/M100/G1 X III), sliced and unsliced; 108 corpus files decode, regression-hashed; corruption tests
CR2 sRaw1/sRaw2 (sRAW/mRAW) canon-sraw verified YCbCr 4:2:0/4:2:2 -> linear RGB (cpp=3), both colour-conversion generations; 31 corpus files decode, regression-hashed
CR3 burst/dual-pixel canon-crx partial First frame / first image only
CR3 craw canon-crx verified C-RAW wavelet (CMP1 0x100 per-line QP, 0x200 QP maps), multi-tile; 51 files decode
CR3 enc3 canon-crx experimental Encoding type 3 colour planes / rounded near-lossless lines: implemented from the format structure, no samples
CR3 raw canon-crx verified Lossless CRX; 59 corpus files decode incl. dual-pixel/crop, regression-hashed
CRW Canon A620 Portulaca_1216.CRW - unsupported file is a bzip2 archive, not a raw
CRW canon600-10bit uncompressed experimental PowerShot 600; no sample
CRW compressed-10bit canon-crw verified G1, G2, S30, S40; regression-hashed
CRW compressed-12bit canon-crw verified EOS D30/D60/10D/300D, G3/G5/G6, Pro1, S45-S70 (low-bit plane); regression-hashed
CRW packed-10bit uncompressed verified PowerShot Pro70 decodes (CMYG 8x2 CFA); A5/A50 share the path but are untested
CRW/CR2 CHDK headerless uncompressed unsupported Headerless CHDK dumps go through the generic file-size path (misc), not the Canon decoders
DCR 65000 CFA kodak-65000 verified DCS Pro 14N/14nx/SLR/c/SLR/n, DCS760C: decode; linearisation curve applied; parallel rows
DCR 65000 RGB / YCbCr kodak-rgb, kodak-ycbcr experimental decoded to 3-sample RGB; no corpus sample
DCR compression 262 - unsupported no sample
DCS 8-bit + curve uncompressed verified DCS460D, EOS DCS 1, EOS DCS 3
DCS lossless JPEG + curve lossless-jpeg verified DCS520C, DCS560C
DNG CFA GoPro VC-5 (compression 9, GPR) verified 17/17 corpus files decode, regression-hashed
DNG CFA / LinearRaw / mono, 8-16 bit uncompressed (strips, tiles; MSB-packed 10/12/14) verified all corpus files decode (Leica, Pentax, Ricoh, Sigma fp, smartphones, converter-produced DNGs); StripByteCounts understatement tolerated (DJI)
DNG CFA / LinearRaw, 1-4 components lossless JPEG (predictors 1-7, restart markers, 2-component tile rows) verified all corpus files decode incl. smartphones with per-row restarts and Pentax Pixel Shift (frame 0)
DNG CFA, 12-bit SOF1 12-bit DCT tiles (Blackmagic) verified bit-exact with the scalar float IDCT
DNG CFA, float 16/24/32 deflate + floating-point predictors 3/34894/34895 verified merged-HDR files; RawU16 output: when max(white, data maximum) lies outside 4096..32767 it is scaled to 16383, then clamped at 0 and truncated; big-endian files whose WhiteLevel LONG holds the bits of 1.0f and whose samples are little-endian (one HDR-merge writer) are read little-endian with white 1.0; float data whose integer Black/WhiteLevel tags are in another unit than the samples (e.g. samples below 0.08 with white 1023) decode as stored and render dark
DNG CFALayout 2-5 staggered layouts A-D experimental converted SuperCCD (S2Pro) files: raw outputs return the samples as stored with the stored-grid CFA (`SensorLayout::OtherCfa`, extra `cfa_layout`), like native SuperCCD buffers; RGB outputs are resampled to square pixels (half-photosite stagger, DefaultScale pitch); synthetic tests, no corpus sample
DNG CFALayout 6-9 staggered layouts E-H unsupported no samples; `CameraUnsupported` error
DNG LinearRaw lossy JPEG (34892) verified converter-produced lossy files
DNG any deflate + integer predictors 1/2/34892/34893 verified
DNG any JPEG XL (52546, DNG 1.7) experimental `jpegxl` feature; samples scaled to BitsPerSample (a codestream may use fewer bits); corpus samples verified visually only
DNG opcode lists OpcodeList1/2/3 supported applied by default, each list in its stage (1: stored values; 2: normalised active area; 3: demosaiced camera RGB): GainMap, MapTable, MapPolynomial, per-row/column delta and scale, FixBadPixelsConstant/List, FixVignetteRadial; geometric opcodes (WarpRectilinear, WarpFisheye, TrimBounds) are reported, not applied; `DecodeOptions::apply_opcodes = false` / `--no-opcodes` disables
ERF 12-bit padded packed (32769) uncompressed verified R-D1, R-D1s, R-D1x: decode; maker-note black and WB
FFF Hasselblad lossless JPEG hasselblad verified H4D-40/50, H5D-40/50c, H6D-100c MS (1-shot), CFV-50/50c, X1D II, X2D: decode
FFF Imacon/Flexcolor (Imacon tags 0xB4C3) - unsupported Ixpress Imacon-tag container; no sample
FFF multi-shot (4/6-shot) - unsupported several samples per pixel; no sample
GPR GoPro HERO5-HERO11, FUSION (DNG compression 9) vc5 verified 17/17 corpus files decode
IA Sinar IA container - unsupported no sample
IIQ IIQ L (formats 3, 5) phaseone verified 14-bit; 33 corpus files (P20+..IQ4, Leaf Credo) decode; parallel rows
IIQ IIQ L 16-bit (format 8) phaseone verified IQ3/IQ4 16-bit captures decode
IIQ IIQ S (format 6) phaseone-s verified 9 corpus files decode; parallel rows
IIQ achromatic backs phaseone experimental monochrome layout from firmware string; no corpus sample
IIQ all - partial vendor sensor calibration (tag 0x110 block) not applied to the buffer; black reported as row/column deltas, not subtracted
IIQ uncompressed (format 0) uncompressed verified H 25 TIFF sample decodes
IIQ uncompressed scrambled (formats 1, 2) uncompressed experimental key unscrambling implemented; no corpus sample
JPEG+BRCM Raspberry Pi IMX219 (RAW10) mipi raw10 verified decodes; WB from maker note
JPEG+BRCM Raspberry Pi IMX477 (RAW12) raw12 verified decodes
JPEG+BRCM Raspberry Pi OV5647 (RAW10) mipi raw10 verified decodes (2611-sample rows)
JPEG+BRCM Raspberry Pi RAW8/RAW14/RAW16 modes raw8/14/16 experimental no corpus sample
KDC 12-bit packed uncompressed verified EasyShare Z981/Z990/Z1015, P712, P880
KDC DC120 kodak-dc120 verified 2 samples
KDC DC120 JPEG raw - unsupported JPEG-compressed raw data not decoded
KDC RADC (DC40/DC50) other verified DC50 sample decodes
LRI Light L16 - unsupported multi-module container with proprietary packing
MDC Minolta RD-175 rd175 interleave verified decodes
MDC rd175 uncompressed verified RD-175 three-CCD dump
MEF 12-bit packed uncompressed verified Mamiya ZD sample decodes
MOS Leaf banded uncompressed (leaf_hdr) uncompressed experimental no corpus sample
MOS Leaf lossless JPEG leaf verified Aptus 22/75, AFi-II 12 (incl. interleaved rows); restart intervals decoded in parallel
MOS Leaf uncompressed 16-bit uncompressed verified Aptus 22
MOS multi-shot (Sinar/Leaf 4-shot) - unsupported several samples per pixel; no sample to validate
MRW DiMAGE G / Konica KD JPEG-embedded other unsupported not implemented
MRW packed minolta-packed verified 9 corpus files (DiMAGE A1/A2/A200, Dynax/Maxxum/Alpha 5D and 7D)
MRW unpacked uncompressed verified 4 corpus files (DiMAGE 5, 7, 7i, 7Hi)
MRW z2-headerless minolta-packed verified DiMAGE Z2 headerless dump (identified by size and tail)
NEF 12bit-compressed nikon-huffman (lossy, lossless, split trees, curves) verified 108/108 corpus files decode (D1X..Z 6_2, Nikon 1); truncated files decode with missing data zero-filled
NEF 12bit-uncompressed packed MSB / LSB / padded rows / D100 pad bytes / E-series fields verified 31/31 decode
NEF 14bit-compressed nikon-huffman (lossy, lossless, split trees, curves) verified 84/84 decode (D3..Z 9, Z6III, Z50II, Z5II lossless)
NEF 14bit-uncompressed 16-bit words / Z+D6 14-bit LSB padded rows verified 22/22 decode
NEF coolscan uncompressed RGB 8/16-bit verified 3 samples/pixel
NEF high-efficiency TicoRAW (JPEG XS based) unsupported detected; decode returns UnsupportedCompression (proprietary codec)
NEF sNEF YCbCr 4:2:2 → RGB verified converted to RGB, 3 samples/pixel
NRW 12bit-uncompressed packed Msb32 / 16-bit words verified 12/12 decode (Coolpix P/B/A1000)
ORF 12bit-packed uncompressed verified 12-bit in 32-bit LE words and MSB-first bytes
ORF 12bit-packed-interlaced uncompressed verified C-/SP-series even/odd row fields
ORF 12bit-packed-padded uncompressed verified E-300/E-330/E-500 and E-M5 II / PEN-F high-res (pad byte per 10 samples)
ORF C-740UZ/C-770UZ headerless other unsupported size-identified dumps without TIFF structure
ORF compressed olympus verified 90 corpus files incl. 14-bit and 50/80 MP high-res; entropy/prediction pipelined on two threads
ORF compressed (non-standard coder tags) olympus experimental generic coder path, unit-tested against a bit-at-a-time scalar decoder only
ORF uncompressed uncompressed verified E-1, E-10/E-20 (big-endian, 10-bit), E-400
ORI compressed olympus verified ORI base frames of high-res shots (same decoder)
PEF compressed pentax-huffman (makernote 0x220 table / default table) verified 34/34 corpus files decode (K10D..K-3 III, 645D/645Z, K-1, monochrome)
PEF pixel-shift pentax-huffman, first frame partial first of the four frames is decoded; frame merging is not provided
PEF uncompressed 12-bit packed (32773/1), 16-bit words verified 8/8 decode (*ist D family, K100D, K110D, Samsung GX-1L)
RAF 12-bit compressed fuji-compressed experimental Same code path as 14/16-bit; no corpus sample
RAF 12-bit packed LSB uncompressed verified EXR bodies, X10/X-S1/XF1, X100, X-Pro1/X-E1/X-M1/X-A1/X-A2, X20/X30/XQ1/XQ2; corpus files decode
RAF 12-bit packed MSB32 uncompressed verified HS10, S1, SL1000; corpus files decode
RAF 14-bit packed MSB32 uncompressed verified X-A3/A5/A7/A10, X-T100/T200, XF10; 6 files decode
RAF Bayer lossless compressed (GFX) fuji-compressed verified 14/16-bit GFX 50/100 series; 13 files decode
RAF Bayer lossy compressed (GFX) fuji-compressed verified 14/16-bit; 9 files decode
RAF DBP for GX680 tiled uncompressed verified 8 vertical big-endian tiles; 1 file decodes; reported unrotated as Bayer BGGR
RAF SuperCCD 16-bit words uncompressed partial S2/S3/S5 Pro, S5000-S9600, S6000/S6500fd, S100FS, E550/E900: 14 files decode; raw outputs: stored (unrotated) buffer with true 2x4/4x2 CFA; RGB outputs resampled from the 45-degree lattice to square pixels (aspect and orientation of the camera JPEG)
RAF SuperCCD SR dual frame (F700/S20Pro) uncompressed partial Main frame decoded (1 file); second (dark) frame not exposed
RAF X-Trans lossless compressed fuji-compressed verified 14-bit X-Trans III-V; 25 corpus files decode, regression-hashed; stripes decoded in parallel; truncation/corruption tests
RAF X-Trans lossy compressed fuji-compressed verified Per-line quantiser + flat-area tables; 13 files decode
RAF second frame uncompressed unsupported Dual-exposure SuperCCD SR second frame not exposed; the main frame is decoded
RAF uncompressed 16-bit words uncompressed verified X-Trans/GFX uncompressed and older Bayer bodies; 44 files decode
RAW 12MP / KAI-0340 dumps uncompressed experimental size-identified; no sample
RAW C330/C603 CFA dumps uncompressed verified 8-bit through stored or gamma curve
RAW C330/C603 YRGB dumps kodak-ycbcr verified YCbCr converted to RGB (cpp 3)
RAW Canon CHDK headerless CRW (CHDK sizes, e.g. IXY 220F) uncompressed packed verified decodes
RAW Canon CHDK headerless CRW (file-size table sizes) packed 10/12-bit verified 26 corpus files decode; black from optical-black columns
RAW Canon PowerShot G7 X CHDK packed 12-bit experimental no verified sample; geometry/black from the camera's CHDK DNG
RAW DC20/DC25/DCS200 dumps - unsupported no sample
RAW GITUP GIT2/GIT2P, SJCAM M20/SJ6, Xiaomi Yi (16-bit) uncompressed 16-bit verified decodes
RAW Gitup G3 Duo 24000000 bytes (same size as a Samsung WB550 entry) uncompressed 16-bit verified decodes
RAW ImBack ImB35mm uncompressed 8-bit verified decodes
RAW Kodak C330 YRGB (4:2:2, optional 32-row gaps) kodak-ycbcr verified decodes
RAW Kodak C603/C643 CFAI/CCDI 8-bit uncompressed 8-bit + curve verified file curve or a fixed gamma curve
RAW Kodak C603/C643 YRGB kodak-ycbcr verified decodes
RAW Paralenz Dive Camera / + uncompressed 16-bit verified decodes
RAW Pentax Optio S4 packed 12-bit verified decodes
RAW SJCAM SJ6 LEGEND 12-bit (18325296 / 15972480 bytes) uncompressed LSB packed verified decodes
RAW SJCam 5000X Elite 12-bit (18000000 bytes, Kodak "12MP" size told apart by the data) uncompressed LSB packed verified decodes (no colour matrix)
RAW Xiro Xplorer V uncompressed LSB packed 10-bit verified decodes
RAW other file-size table entries (AVT, Agfa, Android dumps, Casio, Nikon, Sony, ...) per table experimental same loaders; no corpus sample
RW2 RawFormat 4 (4:3/3:2/16:9/1:1) panasonic-v4 verified 341 RW2 + 20 Leica RWL decode, regression-hashed; packet-parallel decoding; truncation/corruption tests
RW2 RawFormat 5 (12/14-bit) panasonic-v5 verified GH5S, G9 high-res; 10 files decode
RW2 RawFormat 6 (12/14-bit) panasonic-v6 verified S1/S1R/S1H/S5, GH5 II; 8 files decode
RW2 RawFormat 7 (14-bit) panasonic-v7 verified S1R/S5 high-res; 3 files decode; 12-bit variant implemented, no sample
RW2 RawFormat 8 (12/14/16-bit) panasonic-v8 verified GH6/GH7/G9 II/S5 II/S9/S1 II/S1R II...; 35 files decode; strips decoded in parallel
RW2 RawFormat 8 high-res tile grid panasonic-v8 partial 2-D strip grids of pixel-shift shots; 1 file decoded, seams verified continuous
RW2 unversioned (0x111 payload) panasonic-v4/uncompressed experimental Early layouts (packed stream without block split, or 16-bit words >> 4); no corpus sample
RWL Leica (D-LUX, V-LUX, C-Lux, C Typ 112) panasonic-v4 verified Same container; Leica models aliased to their Panasonic twins for colour/black tables; 20 files decode
SR2 uncompressed uncompressed verified DSC-R1 big-endian samples; SR2Private decryption for black/WB
SRF srf uncompressed verified DSC-F828 (RGBE CFA, measured black); DSC-V3 implemented, no sample
SRW compressed samsung-v0 (32770 + row offsets) verified 5/5 corpus files decode (NX300/NX300M/NX30/NX2000/EK-GN120)
SRW compressed samsung-v1 (32772) verified 3/3 decode (NX mini, NX3000, NX3300)
SRW compressed samsung-v2 (32773) verified 5/5 decode (NX1, NX500 12/14-bit)
SRW uncompressed 12-bit packed MSB/LSB (32770), 16-bit words (32769) verified 14/14 decode (NX5/10/11/100/20/200/210/1000/1100, EX1, EX2F, WB2000)
STI Sinar 16-bit uncompressed verified Sinarback eVolution 75 sample decodes
STI Sinar four-shot - unsupported no sample
TIF EOS D2000C lossless-jpeg verified Kodak-built: linearisation curve, Kodak-IFD black/WB; 1 file decodes
TIF EOS-1D/1Ds raw lossless-jpeg verified Raw located via maker note 0x0081; 2 files decode
TIFF TIFF/EP CFA from unknown makes uncompressed / lossless JPEG experimental standards-based fallback; no corpus sample reaches it with a CFA pattern
X3F 1/1e TRUE II Merrill (DP1/2/3 Merrill, SD1 Merrill) sigma-x3f verified corpus files decode; planes decode in parallel
X3F 1/23 TRUE III Quattro (dp0..dp3 Quattro) sigma-x3f verified 3-sample layout incl. AF-pixel repair and 2x2 replication of the lower layers
X3F 1/25 TRUE III sd Quattro sigma-x3f verified as above
X3F 1/27 TRUE III sd Quattro H sigma-x3f verified as above
X3F 1/29 TRUE III sd Quattro H (APS-C crop) sigma-x3f experimental same code path as 1/27; no corpus sample
X3F 3/1e TRUE I/II (DP1, DP1s, SD15) sigma-x3f verified corpus files decode; planes decode in parallel
X3F 3/5 uncompressed 10-bit words (Polaroid x530) sigma-x3f verified R/B swapped to RGB order
X3F 3/6 10-bit Huffman (SD9, SD10, SD14) sigma-x3f verified rows decode in parallel; negative running sums offset
X3F CAMF calibration - verified as-shot white balance, colour matrix and dark-shield black areas (types 2/4/5); spatial colour shading not applied
X3F Huffman thumbnail (2/b), Quattro thumbnail (2/19) - unsupported JPEG and RGB thumbnails are exposed as previews
X3F half/2-3 size raws (SD14/SD15/DP/Merrill/Quattro) sigma-x3f experimental geometry from the camera database; no corpus sample