Skip to content

Technical

Tips, Tricks and Technical Information

VVQ Patterns Overview

QCTest Pattern Generator features an optional range of visual video quality motion patterns.

These patterns provide specific tests to help troubleshoot signal chain issues, and to confirm good known workflows.

This article explains what each tile on each of the motion-pattern frames actually is, how it behaves over time, how to measure it, and what to change when it fails.

Overview

Shared Conventions

Signal format

Every VVQ pattern is 10-bit narrow-range Y'CbCr: luma 64...940, chroma 64...960 nominal, data range 1...1019. 64 is nominal black, 940 is nominal white, 512 is neutral chroma. Anything below 64 or above 940 is headroom and only survives on a chain that is in full range – so the headroom tiles are simultaneously a range test.

Two Kinds of Element

    • Code witnesses (EncodedCode) are written straight into the 10-bit code space and bypass all conversion: the 1-code rails, sub-black and super-white tabs, PLUGE, the white/black clip ladders, bit-truncation, the field box, chroma siting, and the QR code. They carry byte-identical codes on SDR, HLG and PQ. That invariance is the test - a code witness proves the chain carries the code, not that the chain converted it. If one of these reads wrong, the fault is in quantization, range mapping, or transport, never in color science.
    • Signal-domain elements (NonlinearRgb / SceneLinearRgb / DisplayLinearRgb) resolve through the active signal, so the same declared step is correct on Rec.709 and on Rec.2020 without a second table. The color tiles are in this class.

Motion contract

Position is a pure function of the absolute frame id, and speed is declared in active-screen widths per second, never pixels per frame. So a statement like "at frame 30 the bar is at 1/4 width" is true at any rate and any raster, HD and UHD included, and the same frame ID always yields the same picture – which is what makes these usable as golden captures.

Identity

The footer prints FRAME, EVENT, CONFIG <hash>; the QR encodes the pattern id. The config hash is FNV-1a over the canonical little-endian config bytes. Disable text, capture, and compare the hash to prove a link is bit-exact.

HLG and PQ Variants - What Actually Changes

Only the three canvas designs (Orchestra, Console, Ring) and the Overview have HDR siblings, and they are not "the SDR picture brightened". Each design is drawn from declared domains and converted once through the active signal's own OETF and the Rec.2020 matrix. There is no per-signal special case in the design code – the signal is a parameter, not a variant.

EBU A/V sync, Field Motion and the Motion pair are SDR only – there is no HLG or PQ version of the EBU 1, EBU 2, FieldMotion, VVQ Motion, or VVQ Motion interlaced patterns.

The HDR Transfers are Genuinely Different

 

HLG (Hybrid Log Gamma)

PQ (ST 2094)

Domain Relative, scene-referred Absolute, display-referred
Signal means A relative signal level N in [0,1] An absolute luminance L in cd/m2, 0...10000
OETF N = sqrt(3E) for E <= 1/12, else a*ln(12E - b) + c N = [(c1 + c2*l^m1)/(1 + c3*l^m1)]^m2, l = L/10000
Constants a = 0.17883277, b = 1 - 4a, c = 0.5 - a*ln(4a) m1 = 2610/16384, m2 = 2523/32, c1 = 3424/4096, c2 = 2413/128, c3 = 2392/128
Code scale (10-bit narrow) Y = 64 + 876*N Y = 64 + 876*N(L)
Reference white Signal-relative 203 cd/m2 (BT.2408 HDR reference white for a 1000-nit display)
Backwards compatible Yes - an HLG display shows it correctly on an SDR display No
Metadata None Normally carries mastering display color volume

The practical consequence: on PQ, a level label is a number of nits you can check against a meter. On HLG, a level label is a signal value, and the brightness you see depends on the display's assumed peak. That is the single biggest difference in how you use the two.

What is Identical, and Why That is the Point

Code witnesses do not change. The 1-code rails, sub-black and super-white tabs, PLUGE, the clip ladders, bit truncation, the field box, chroma siting and the QR code carry the same 10-bit codes on all three signals. The element library states this as the contract: "a code witness must prove the chain carries the code, not that the chain converted it."

Practically: if a code tile differs between your SDR, HLG and PQ captures, you have found a real fault – a range-mapping, quantization or transport bug – not a color difference.

What Does Change

Element Class

SDR

HLG

PQ

Color bars, hue strip, saturation pairs, border quad R'G'B' at a declared E' fraction through the 709 matrix Signal-domain level amp * hue[ch] through the HLG OETF + 2020 matrix (hlg2020SignalHue) Absolute nits through the PQ EOTF + 2020 matrix (pq2020NitsHue)
Neutral staircase 11 steps at E' = k/10 6 signal anchors: 0, 1/4, 1/2, 3/4, 9/10, 1 (hlgAnchorCode) 8 nit rungs: 0, 1, 10, 100, 203, 1000, 4000, 10000 cd/m2 (pqAnchorNitsCode)
Gamut spokes Scene-linear at L = .25 Scene-linear light through the HLG OETF 2020 primaries, absolute
Skin/flesh tones primitiveRgb (709) primitiveSignalRgb - the same display color through the 2020 matrix, so the same appearance, different codes Same
Palette chrome (backgrounds, panels, captions) E' fractions Signal-domain E' fractions, chosen so captions stay as readable in HLG as in SDR Absolute nits: background 0.20, panel 0.50, edge 20, grid 8, caption foreground 203
Converging wedge, Siemens star, zone plates, line gauge, castellation, hairline grid Unchanged – these are structural or code-domain Unchanged – these are structural or code-domain Unchanged – these are structural or code-domain

Note the skin tones row specifically: the comment in the element library explains that on HDR these are declared in the signal's own nonlinear domain – "this is a display-referred appearance reference, not a camera rendition, so it must NOT go through the OETF". The result is the same appearance with different 10-bit codes, which is precisely what you want when comparing SDR to HDR rendition.

The PQ Reference-White Trap

kPqRefWhite = 203.0L is the load-bearing constant. The code comments on it directly: PQ levels are absolute, so any element expressed as a fraction needs a declared reference white. Passing the bare fraction would put a "75 % bar" at 0.75 cd/m2 – invisible. "A good illustration of a value that is technically exact and practically useless."

So a PQ 75 % bar sits at 152 cd/m2, not 0.75 cd/m2, and the SDR and PQ versions of the same element sit at comparable relative levels.

How to Analyze the HDR Variants

    1. Code tiles first, and compare across signals. They must be identical. Any difference is a bug, not a transfer characteristic.
    2. Then read the level ladders. On PQ, check each rung against a nit meter within tolerance – the ladder is absolute, so this is a real measurement. On HLG, check the signal code against the 709 ladder and reason about display brightness separately.
    3. Color tiles last. Wide-gamut behavior under a 2020 matrix is what these are for; judge them on a compliant display.

What the HDR Variants are Not

They are signal verification, not display certification. No peak metadata is claimed by the Overview; the canvas designs draw no metadata. If you need to confirm a display's peak brightness or its tone-mapping behavior, that is the HDR Exposure design (2009/2010) - a controlled measurement window with a known exact area, exact nits and a known surround, which is a different job from "prove the chain carries 2020 color correctly".

Choosing the Right Pattern

If You Want To...

Use:

Verify code values, range and bit depth Overview. It is the only one where every region is a probe target with a known answer.
Measure geometry precisely Ring. The circle is the fastest aspect/pixel-aspect verdict.
Measure a specific instrument without crowding Console. Room, and captions outside the samples.
Survey many faults at once Orchestra. Coverage over precision.
Test motion, cadence or chroma lag VVQ Motion/Interlaced. Progressive vs interlaced, side by side.
Check interlace / field order VVQ Motion Interlaced, or the field box on Overview, Console or Ring.
Check A/V sync direction EBU 1/2 for a quick eyeball, VVQ Motion's event ruler for a calibrated scale.
Verify 2020 color or HDR levels The HLG/PQ siblings, and compare code tiles across signals.
Verify a display's peak or tone mapping HDR Exposure patterns:
  VVQ_HDR_HLG
  VVQ_HDR_PQ
(not any of these nine)

Cross-Pattern Reference

Audio. The 1020 Hz guard tone at -18 dBFS is on the VVQ SDR overview only. Motion, HDR and Exposure patterns are AUDIO: none by contract – if you hear a tone on them, the source is wrong, not the tone.

Range. Headroom (nominal BT.1886, the default) or full range, selected explicitly per context, and the output is labeled accordingly. Full range is how you verify a chain carries the sub-black and above-white witnesses. Never wrap-around.

Bit depth. 8-bit (v202), 10-bit native (v210), 12-bit (v12c), 4:2:0 at 8/10/12-bit with left or centered siting, and 4:4:4 16-bit (SDR only). The 1-code rails and bit-truncation tiles make quantization and truncation directly visible at each depth.

The bit-exact loop test. Disable text, capture, and compare the printed staticHashHi / configHashHi against a clean re-run of the same context. If they differ, the link is not bit-exact.

What these are not. Not a calibration suite, not a codec scorer, not an A/V offset meter, and not an HDR certification – by design. They give you exact references; the verdicts come from your scopes, meters and eyes.

Trademarks, Registered Trademarks, and Copyrights

 

Trademarks, Registered Trademarks, and Copyrights

AJA Video Systems, Inc. - AJA® is a registered trademark of AJA Video Systems, Inc. AJA™ is a trademark of AJA Video Systems, Inc. Corvid Ultra®, KONA®, IO®, KUMO®, U-Tap®, and T-Tap® are registered trademarks of AJA Video Systems, Inc.
Avid Technology, Inc. - Avid Media Composer®, Avid MediaCentral®, Avid Interplay®, ProTools®, and Avid NewsCutter® are either trademarks or registered trademarks of Avid Technology, Inc. or its subsidiaries in the United States and/or other countries.
Blackmagic Design Pty. Ltd. - DaVinci Resolve, DaVinci Fusion, UltraStudio, DeckLink, Intensity Pro 4K, UltraScope, and RED are either trademarks or registered trademarks of Blackmagic Design Pty. Ltd. or its subsidiaries in the United States and/or other countries.
Bluefish Technologies - Bluefish444, IngeSTore, Symmetry, Kronos, Epoch, Epoch:Neutron, Fury, Lust, Vengeance HD, Deepblue, Envy SD, and Epoch:SuperNova are trademarks of Bluefish Technologies
Bridge Technologies Co AS - Bridge Technologies is a trademark of Bridge Technologies Co AS
Dolby Laboratories – Dolby, Dolby Vision, the double-D symbol, and Millicast are registered trademarks of Dolby Laboratories.
Drastic Technologies, Ltd. – trademarks specified here.
DTS - DTS, the Symbol, and DTS and the Symbol together are registered trademarks of DTS, Inc.
Epic Games, Inc. - UNREAL ENGINE is a trademark of Epic Games, Inc..
Lynx Technik AG - LYNX TECHNIK AG is a trademark of LYNX TECHNIK AG.
Matrox Electronic Systems, Ltd - Matrox and Matrox product names are registered trademarks and/or trademarks of Matrox Electronic Systems, Ltd.
Society of Motion Picture and Television Engineers - SMPTE is a trademark of Society of Motion Picture and Television Engineers.
SRI International - SARNOFF CORPORATION is a trademark of SRI INTERNATIONAL.
Tektronix, Inc. - Tektronix® and all identified Tektronix trademarks and logos are the property of Tektronix, Inc. or its wholly-owned subsidiaries
Image

For more than three decades, Drastic™ has been developing cutting edge digital video solutions for television, post production and sports broadcasting, from real time web delivery to 8K broadcast.

We offer standalone software for the end user or enterprise, integrated solutions for automated workflows, and OEM tools for custom applications or branded devices.

Contact Us

Address: 

523 The Queensway, Suite 201

Toronto, ON

M8Y 1J7, Canada

Phone: +1 (416) 255 5636

Email: sales@drastictech.com

Fax: + 1 (416) 255 8780

Follow us

on Social Media

bluesky facebook

 

© Drastic Technologies Ltd. 2026