Find files, editable templates and browser test targets by what you need to make or test. The directory below is cut by format; the two collections under it cut the same library by subject and by workflow.
A one-second DASH media segment, addressed by the manifest's $Number$ template. The same underlying CMAF structure as the HLS segments in the sibling package, which is the whole point of CMAF, and something a fixture set should let you verify rather than take on trust.
An intentionally corrupt DASH manifest whose mediaPresentationDuration is the bare number 14.0 instead of the ISO 8601 form PT14.0S. The XML is well-formed, so it parses cleanly and only fails at schema validation, which most players skip. The usual result is a duration of zero or NaN and a seek bar that never populates, with no error anywhere.
A live DASH manifest: type is dynamic, there is no total duration, and the client must compute which segment is currently available from availabilityStartTime, the wall clock, and the segment duration. Declares a one-minute time-shift buffer and an eight-second presentation delay. The timestamps are fixed so the fixture stays deterministic: a real client will compute a segment number far in the future, which is itself a useful edge case to handle gracefully.
File
MPD · Stream · unbounded: no mediaPresentationDuration
The same content addressed with an explicit SegmentList: every segment URL enumerated rather than derived from a template. Verbose, but it is what older packagers emit and it permits non-uniform segment naming. A DASH client must support both this and SegmentTemplate; the paired template manifest in this group is the direct contrast.
Three DASH periods (content, an ad break, then content again), each with its own initialisation segment. Period boundaries are where players most often break: the decoder must be reset, the buffer cannot span the discontinuity, and rendition selection restarts. Pairs with the VMAP and SCTE-35 fixtures, which describe the same break from the ad-signalling side.
A DASH manifest with separate video and audio adaptation sets, three video representations, and $RepresentationID$/$Number$ segment-template addressing: the standard VOD packaging shape. Served inline as application/dash+xml with permissive CORS, so dash.js can load it cross-origin. A manifest-parsing fixture: it describes segment URLs rather than shipping the segments.
The sharp reference for the detail-chart deblur set. Each blurred clip in this group applies a documented kernel to these exact pixels, so the deconvolution problem has a known answer, including which detail was destroyed outright and therefore cannot be recovered, only invented.
The sharp reference for the text-motion deblur set. Each blurred clip in this group applies a documented kernel to these exact pixels, so the deconvolution problem has a known answer, including which detail was destroyed outright and therefore cannot be recovered, only invented.
Defocus blur, radius 5 applied to the sharp detail-chart plate with a Gaussian kernel: a defocused lens. The kernel is documented, so this supports both blind and non-blind deconvolution: give the algorithm the kernel, or make it estimate one and compare.
Horizontal motion blur, 21 px applied to the sharp detail-chart plate with a uniform horizontal box kernel: a linear camera pan during exposure. The kernel is documented, so this supports both blind and non-blind deconvolution: give the algorithm the kernel, or make it estimate one and compare.
Horizontal motion blur, 9 px applied to the sharp detail-chart plate with a uniform horizontal box kernel: a linear camera pan during exposure. The kernel is documented, so this supports both blind and non-blind deconvolution: give the algorithm the kernel, or make it estimate one and compare.
Defocus blur, radius 5 applied to the sharp text-motion plate with a Gaussian kernel: a defocused lens. The kernel is documented, so this supports both blind and non-blind deconvolution: give the algorithm the kernel, or make it estimate one and compare.
Horizontal motion blur, 21 px applied to the sharp text-motion plate with a uniform horizontal box kernel: a linear camera pan during exposure. The kernel is documented, so this supports both blind and non-blind deconvolution: give the algorithm the kernel, or make it estimate one and compare.
Horizontal motion blur, 9 px applied to the sharp text-motion plate with a uniform horizontal box kernel: a linear camera pan during exposure. The kernel is documented, so this supports both blind and non-blind deconvolution: give the algorithm the kernel, or make it estimate one and compare.
The clean reference for the detail-chart denoise set: no noise added, encoded at CRF 14. Every noisy clip in this group was produced from these exact pixels, so PSNR, SSIM and LPIPS against this file are meaningful rather than approximate.
The clean reference for the gradient-sky denoise set: no noise added, encoded at CRF 14. Every noisy clip in this group was produced from these exact pixels, so PSNR, SSIM and LPIPS against this file are meaningful rather than approximate.
The clean reference for the pan-city denoise set: no noise added, encoded at CRF 14. Every noisy clip in this group was produced from these exact pixels, so PSNR, SSIM and LPIPS against this file are meaningful rather than approximate.
Gaussian σ=15 applied to the detail-chart base plate with seed 9017. Moderate Gaussian noise, roughly a mid-ISO handheld shot. The level most denoise benchmarks use. Paired with the clean ground truth in this group, so denoiser output can be scored numerically. Encoded at CRF 19, where the light noise could otherwise be confused with compression artefacts.
Gaussian σ=30 applied to the detail-chart base plate with seed 9034. Heavy Gaussian noise where fine detail and noise overlap in amplitude, so recovery requires temporal information rather than spatial smoothing alone. Paired with the clean ground truth in this group, so denoiser output can be scored numerically. Encoded at CRF 24 rather than 19: random noise is incompressible, and at this amplitude the codec's own artefacts sit far below the noise floor, so a coarser quantiser saves several megabytes without affecting any measurement.
Gaussian σ=5 applied to the detail-chart base plate with seed 9000. Light sensor noise: the level a modern camera produces at base ISO. Subtle enough that an over-aggressive denoiser does more damage than the noise did. Paired with the clean ground truth in this group, so denoiser output can be scored numerically. Encoded at CRF 19, where the light noise could otherwise be confused with compression artefacts.
Gaussian σ=50 applied to the detail-chart base plate with seed 9051. Severe noise approaching the signal level. Included as the failure case: most denoisers hallucinate structure here, which is exactly what the paired reference exposes. Paired with the clean ground truth in this group, so denoiser output can be scored numerically. Encoded at CRF 24 rather than 19: random noise is incompressible, and at this amplitude the codec's own artefacts sit far below the noise floor, so a coarser quantiser saves several megabytes without affecting any measurement.
Multiplicative speckle applied to the detail-chart base plate with seed 9102. Multiplicative rather than additive noise, so its amplitude scales with local brightness: the pattern seen in ultrasound and radar. Additive-noise models systematically under-correct highlights. Paired with the clean ground truth in this group, so denoiser output can be scored numerically. Encoded at CRF 24 rather than 19: random noise is incompressible, and at this amplitude the codec's own artefacts sit far below the noise floor, so a coarser quantiser saves several megabytes without affecting any measurement.
Poisson shot noise applied to the detail-chart base plate with seed 9119. Photon shot noise, signal-dependent and the physically correct model for low-light capture. Dark regions are proportionally far noisier than bright ones. Paired with the clean ground truth in this group, so denoiser output can be scored numerically. Encoded at CRF 24 rather than 19: random noise is incompressible, and at this amplitude the codec's own artefacts sit far below the noise floor, so a coarser quantiser saves several megabytes without affecting any measurement.
Salt and pepper 2% applied to the detail-chart base plate with seed 9068. Two per cent of pixels forced to pure black or white: impulse noise from sensor faults and transmission errors. Defeats Gaussian-assuming filters, which smear each spike instead of rejecting it. Paired with the clean ground truth in this group, so denoiser output can be scored numerically. Encoded at CRF 19, where the light noise could otherwise be confused with compression artefacts.