Each image is a test chart drawn by a Python script: colour bars, grey steps, smooth ramps, a zone plate, line pairs, skin-tone patches and labels naming the file and its properties. The script then encodes it with libheif and the x265 HEVC encoder. No photographs or third-party images are used. The Display P3 ICC profile in display-p3-10bit.heic was also written by the script, from the published P3 primaries and white point.
libheif wrote most files as they are. A few needed small changes at box level afterwards, made with a short parser that rebuilds the item offsets:
- generic-mif1-brand.heif: major brand changed from
heic to mif1. - thumbnail-embedded.heic: the thumbnail libheif generated was replaced with a separately encoded one that carries the banner.
- depth-map.heic: libheif wrote the depth map as an alpha image; its type was then changed from
auxid:1 (alpha) to auxid:2 (depth). - image-sequence.heics: FFmpeg encoded the track with libx265; it was moved into a HEIF file beside a libheif-encoded cover image, its handler set to
pict and a coding-constraints (ccst) box added. - The broken files: cut short, or with the ftyp brands zeroed, from a copy of the basic file.
A second script then checks every file: it decodes each one with libheif (Pillow with libavif for the AVIF and JPEG files), reads the boxes, compares the pixels with the source charts where that makes sense, confirms that the broken files are refused, and stops if anything fails. The sequence track is checked with FFmpeg, because the pillow-heif release we used does not expose libheif's sequence functions. The viewer check ran in Chromium 141.0.7390.37 (Playwright, headless) on 11 October 2026.
The scripts are in the source folder of the ZIP. To rebuild and re-check the set:
python3 generate.py # renders the charts and writes the files
python3 verify.py # decodes, checks, writes previews, SHA256SUMS and the ZIP
Encoder builds differ, so a rebuild may not be byte-identical. The SHA-256 values on this page belong to the published files. manifest.json has every measured property in machine-readable form.