Colour Signalling — HDR10 (PQ, BT.2020, 10-bit)
HDR10 signalling: BT.2020 primaries with the SMPTE ST 2084 perceptual quantiser, 10-bit. Be clear about what this fixture is — the picture is ordinary SDR content TAGGED as HDR, so it is a test of metadata handling and tone-mapping paths, not a reference for HDR image quality. A player that ignores the transfer function will render it washed out and far too dark, which is precisely the failure worth reproducing. Every clip in this group carries the SAME picture and differs only in its colour signalling, so any difference in how a player renders them is entirely a metadata-handling difference.

Rendered preview of the mkv file (25.7 KB). Download above for the original.
Specifications
- Resolution
- 640x360
- Fps
- 24
- Codec
- HEVC (libx265)
- Container
- Matroska
- Bit Depth
- 10
- Colour Primaries
- bt2020
- Transfer
- smpte2084 (PQ)
- Matrix
- bt2020nc
- Mastering Display
- signalled in the bitstream
- Note
- the PIXELS are SDR — only the signalling is HDR
Testing contract
Expected to pass- Scenario
- Probe the colour signalling and the mastering-display metadata, then decide how to tone-map the file.
- Expected result
- It signals HDR10: bt2020 primaries, smpte2084 (PQ) transfer, bt2020nc matrix, 10-bit, with mastering-display metadata in the bitstream. The pixels themselves are SDR - only the signalling is HDR - so this fixture tests the metadata path without requiring an HDR display, and a tone-mapper must act on the signalling rather than on measured pixel values.
What is a .mkv file?
MKV (Matroska) is an open, codec-agnostic multimedia container that holds unlimited video, audio, subtitle, chapter, and attachment tracks in one file. Its structure is EBML, a binary tree of length-prefixed elements, and its attachments typically carry the fonts an ASS subtitle track needs. Because it constrains nothing about the streams inside, the extension says nothing about whether a player can decode them. Steve Lhomme started the project in 2002; WebM is the restricted profile of it that browsers accept.
How to use this file
Use an example MKV to test EBML parsing and multi-track demuxing, subtitle and chapter extraction, and remux pipelines, checking that per-track language and default flags survive, that font attachments are preserved, and that a remux to MP4 reports the tracks MP4 cannot carry instead of dropping them silently.
How to use this file for testing
“Colour Signalling — HDR10 (PQ, BT.2020, 10-bit)” is a deterministic Novus Examples fixture for Video codecs, Compression artefacts, Video QA. One source encoded as H.264, HEVC, AV1, VP9, MJPEG, and a ProRes-compatible mezzanine, across 8/10/12-bit and 4:2:0/4:2:2/4:4:4, for testing decoder support, transcode pipelines, and container remuxing.
Documented properties for this file: 10-bit · 24 fps. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.
Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such, expect parsers to fail loudly rather than silently accept them.
Media fixtures are short and synthetic by design. Prefer waveform or transcript ground truth in the same group when measuring ASR, trim, upscale, or sync tools; do not assume broadcast-quality masters.
Code examples
<video controls preload="metadata" width="640" src="hdr10.mkv"></video>Related files
- mp4Compression Input — detail-chart at CRF 28The detail-chart plate at CRF 28 — mild artefacts. Encoded from the original frames rather than transcoded from the reference, so it carries exactly one generation of loss and the comparison is clean. On this plate the fine wedges collapse first, showing exactly which spatial frequencies the quantiser discarded.

- mp4Compression Input — detail-chart at CRF 36The detail-chart plate at CRF 36 — clearly visible artefacts. Encoded from the original frames rather than transcoded from the reference, so it carries exactly one generation of loss and the comparison is clean. On this plate the fine wedges collapse first, showing exactly which spatial frequencies the quantiser discarded.

- mp4Compression Input — detail-chart at CRF 44The detail-chart plate at CRF 44 — severe artefacts. Encoded from the original frames rather than transcoded from the reference, so it carries exactly one generation of loss and the comparison is clean. On this plate the fine wedges collapse first, showing exactly which spatial frequencies the quantiser discarded.

- mp4Compression Input — detail-chart at CRF 51The detail-chart plate at CRF 51 — extreme — the codec's limit artefacts. Encoded from the original frames rather than transcoded from the reference, so it carries exactly one generation of loss and the comparison is clean. On this plate the fine wedges collapse first, showing exactly which spatial frequencies the quantiser discarded.

- mp4Compression Input — gradient-sky at CRF 28The gradient-sky plate at CRF 28 — mild artefacts. Encoded from the original frames rather than transcoded from the reference, so it carries exactly one generation of loss and the comparison is clean. On this plate the damage shows as banding across the smooth gradient, which is the artefact viewers notice first and metrics score most poorly.

- mp4Compression Input — gradient-sky at CRF 36The gradient-sky plate at CRF 36 — clearly visible artefacts. Encoded from the original frames rather than transcoded from the reference, so it carries exactly one generation of loss and the comparison is clean. On this plate the damage shows as banding across the smooth gradient, which is the artefact viewers notice first and metrics score most poorly.

Generated by generation/video_streaming_wave.py. Free for any use, no attribution required, license.