Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gamut-dng-samples

Real camera DNG files used to validate gamut-dng against images that cameras — not test harnesses — actually wrote.

Consumed as a git submodule at third_party/gamut-dng-samples, by the workspace-excluded conformance crate tooling/gamut-dng-real-conformance. See gamut issue #174.

Licence

Every image here is CC0-1.0 (public domain dedication), sourced from raw.pixls.us, whose contributors dedicate their samples to the public domain. MANIFEST.toml records each file's upstream URL and SHA-256 so provenance stays checkable. The repository text (this README, MANIFEST.toml) is CC0 as well — see LICENSE.

Nothing here is Adobe-authored: gamut already gates against the Adobe DNG SDK's own sample_files corpus, which ships inside the SDK ZIP. This repository exists for the cases that corpus cannot cover — vendor quirks, real MakerNotes, and the layouts real firmware emits.

The corpus

Six files, chosen so that each one is the only member exercising something:

Path Camera What it is the only file to prove
apple/iphone-12-pro/IMG_1361.DNG iPhone 12 Pro (ProRAW) Big-endian; tiled (504×378, 64 tiles) 12-bit LinearRaw; LinearizationTable; ProfileGainTableMap; a semantic-mask sub-IFD; a real 1268-byte MakerNote
adobe-dng-converter/canon-5d3/uncompressed.DNG Canon EOS 5D Mark III Compression = 1, a single 5920×3950 16-bit CFA strip
adobe-dng-converter/canon-5d3/lossless.DNG Canon EOS 5D Mark III Compression = 7 CFA, tiled 256×256 over 384 tiles
adobe-dng-converter/canon-5d3/lossy.DNG Canon EOS 5D Mark III Compression = 34892 (lossy JPEG) — a deliberate gamut deferral, and the only file whose NewRawImageDigest uses the compressed-chunk rule
leica/m-monochrom/L1000622.DNG Leica M Monochrom DNG 1.0.0.0; monochrome LinearRaw at 1 sample/pixel; carries no as-shot white balance at all
leica/m10/f5381888.dng Leica M10 Raw living in IFD0 itself rather than a sub-IFD; three preview sub-IFDs with no RowsPerStrip; a 4096-byte MakerNote

Total ≈ 178 MiB. They are deliberately kept whole: cropping or re-encoding them would destroy the byte-completeness and stored-digest properties that make them worth testing against.

MANIFEST.toml

One [[sample]] block per file carrying provenance (source, sha256, license) and an [sample.expect] table of what gamut-dng must observe. The conformance harness iterates the manifest, so adding a sample needs no Rust change.

Verify the corpus against its manifest at any time:

sha256sum -c <(awk -F'"' '/^path/{p=$2} /^sha256/{print $2"  "p}' MANIFEST.toml)

Adding a sample

  1. Confirm the upstream file is CC0 (raw.pixls.us marks non-CC0 samples explicitly — those are not eligible).
  2. Add it under <make>/<model>/, keeping the file byte-identical to upstream.
  3. Add a [[sample]] block with source, sha256, license, and the expect table.
  4. Say in the table above what it is the only file to prove. If nothing, it is not worth 178 MiB of everyone's bandwidth.

About

Real camera DNG files (CC0) used to validate gamut-dng against images cameras actually wrote

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors