COLOR SCIENCE
Signal Range Explorer: Full vs. Limited
THE CODE-VALUE SCALE · 8-BIT (REC.601 ORIGINAL)
0 1–15
FOOTROOM 16–235 · PICTURE (REF BLACK → REF WHITE) 236–254
HEADROOM 255
FOOTROOM 16–235 · PICTURE (REF BLACK → REF WHITE) 236–254
HEADROOM 255
MISMATCH SIMULATOR: RAMP & PLUGE PATCHES THROUGH THE CHAIN
THE MAPPING: SOURCE CODE IN → DISPLAYED LEVEL OUT
SOURCE SIGNAL ENCODES
DISPLAY INTERPRETS AS
CORRECT MATCH: BROADCAST CHAIN
Code 16 lands on reference black, 235 on reference white. Footroom and headroom pass through for overshoots and PLUGE alignment.
SCALE BIT DEPTH
DEEP DIVE
Why 16–235? The analog inheritance+
Analog video carried more than picture: sync pulses lived below black, and NTSC parked black itself at 7.5 IRE "setup" above blanking. When Rec.601 digitized studio video in 1982, the 8-bit scale inherited that thinking. Codes 0 and 255 were reserved outright as timing references (they flag SAV/EAV packets in SDI). Black went to 16 and white to 235, leaving footroom (1–15) and headroom (236–254) for the overshoot and ringing that analog filtering produces at sharp transitions; a signal that swung to exactly 0 or 255 would have been indistinguishable from sync. Chroma got 16–240, centered on 128. None of this was waste; it was engineering margin for a mixed analog/digital world.
The numbers at every bit depth+
Limited range scales with bit depth by shifting left two bits per step: LUMACHROMA 8-bit16–23516–240 10-bit64–94064–960 12-bit256–3760256–3840 That's 219 luma steps in 8-bit against 255 for full range; about 0.22 bit of resolution given up. The naming zoo all means the same two things: limited = video = narrow = legal = broadcast = MPEG range; full = PC = data = extended = JPEG range.
Sub-black & super-white+
The margins still earn their keep. Filtering and codec ringing push transients below code 16 and above 235 in ordinary legal footage; clipping them at the sensor or in the codec would ring worse. Cameras have long recorded super-white highlights (100–109%), and PLUGE alignment patterns deliberately include a sub-black bar: you set brightness until it just disappears. Broadcast delivery then runs a legalizer that soft-clips everything back inside 16–235. If your monitor path drops sub-black, you cannot set up a PLUGE correctly; one of the quiet reasons reference monitoring cares about range handling.
Where each range lives today+
SDI and everything broadcast: always limited, non-negotiable. HDMI: YCbCr defaults to limited; RGB can be either, and TVs, consoles, and GPUs each guess ("HDMI black level", "PC mode", "Full/Limited" toggles exist because auto-negotiation via AVI InfoFrames is routinely wrong). Desktop/sRGB, still images, and most game rendering: full. Video files: range is a metadata flag in the codec (default limited for video codecs); players that ignore it produce exactly the mismatches simulated here. HDR10 and HLG: 10-bit limited, 64–940, even though PQ is "absolute". DCI cinema: full-swing 12-bit X′Y′Z′. The rule that survives all of it: the range is a property of the interface agreement, not of the content.
The two failure modes+
Limited signal read as full: code 16 displays at 6% instead of 0% and code 235 at 92% instead of 100%; blacks turn gray, whites go dim, the image looks flat and washed out, but nothing is destroyed; it's reversible. Full signal read as limited: everything below code 16 slams to black and everything above 235 clips to white; shadow and highlight detail are gone, irreversibly, and the middle is stretched. Double conversions (expand then compress again) quantize the ramp and band it. Try all four combinations above and watch the near-black and near-white patches: a correct chain shows the patch steps distinctly; each failure mode eats them from one end.
In practice: matching the chain+
Every link (player, processor, LED wall controller, display) must agree on range, and each conversion should happen exactly once. Verification is simple with patterns: a ramp shows stretching or banding instantly; PLUGE confirms reference black lands at black; a super-white patch reveals whether headroom survives or clips. On a calibrated chain, code 16 measures at the display's black, 235 at reference white, and grayscale tracking stays intact across the whole picture range. Range errors masquerade as "bad contrast" or "crushed grade" constantly: measure before you touch a control. Book a calibration →
IF IT ISN'T MEASURED, IT ISN'T CALIBRATED. · Transfer Function Explorer · Color Volume Explorer