Color bars are among the most recognizable images in television engineering. Their apparent simplicity, however, can conceal important differences in amplitude, coding range, colorimetry, and intended use.
While developing GEN-B as a professional test-signal generator and display-analysis platform, Precision Broadcast Engineering encountered one of those differences in the EBU color-bar family. A small discrepancy between the 75% and 100% patterns appeared in the vectorscope: the angular positions required close examination, while several color vectors did not reach the expected target boxes.
What initially looked like a minor display-calibration issue led to a deeper investigation of EBU nomenclature, Rec.709 component mathematics, studio-legal code values, and vectorscope gain normalization. The result was not a visual approximation or a manually selected correction. It was a pattern-aware mathematical calibration derived from the signal itself.
This Engineering Note documents that investigation.
A familiar pattern from a different engineering tradition
Engineers working primarily in the United States are naturally more familiar with SMPTE color bars and the 525/60 engineering tradition from which they evolved. EBU color bars are historically associated with European 625/50 television practice. Their formal nomenclature is defined by ITU-R BT.471, while ITU-T J.65 recommended a 100/0/75/0 signal as the conventional loading test signal for 625/50 analogue television channels.
That historical purpose matters. The pattern was not created merely to put recognizable colors on a monitor. It was intended to exercise luminance and chrominance through a television chain with a standardized and representative signal.
In modern digital systems, the familiar EBU names remain in use, but the pattern must be interpreted within a defined colorimetry and coding range. For HD work, that normally means Rec.709 coefficients and studio-legal digital levels.
Reading the four-number nomenclature
The expression 100/0/75/0 is frequently described too casually as “75% saturation bars.” That description is incomplete and can be misleading.
ITU-R BT.471 defines the four values as R′G′B′ component levels, expressed relative to reference white:
- The primary-component level in the white bar.
- The primary-component level in the black bar.
- The maximum primary-component level in the colored bars.
- The minimum primary-component level in the colored bars.
Therefore:
- EBU 75%: 100/0/75/0
- EBU 100%: 100/0/100/0
The white bar remains at 100% in both patterns. In the 75% pattern, the active R′, G′, or B′ components of the colored bars are reduced to 75%, while the inactive components remain at black.
This is why “75% saturation” is not the best mathematical description. A yellow bar constructed with R′ and G′ active and B′ at black remains on the fully saturated yellow axis. Its component amplitude—and therefore its chroma-vector length—is reduced.
The vectorscope question
A vectorscope presents two related but different properties:
- Angle represents hue or chroma phase.
- Distance from the center represents chroma magnitude.
Under ideal continuous Rec.709 mathematics, reducing a color bar from 100% to 75% scales both chroma components by the same factor. The vector becomes shorter but should remain on the same radial hue axis.
For Rec.709:
Y′ = 0.2126R′ + 0.7152G′ + 0.0722B′
Cb = (B′ − Y′) / 1.8556
Cr = (R′ − Y′) / 1.5748
The vector magnitude and angle are:
|C| = √(Cb² + Cr²)
θ = atan2(Cb, Cr)
If both chroma components are multiplied by the same factor, the magnitude changes but the angle does not. Small angular differences can still appear after integer quantization, code-value rounding, image conversion, or measurement from decoded assets. Those differences are typically fractions of a degree; they are not an intentional EBU hue rotation.
The systematic discrepancy GEN-B revealed was radial: four vectors in the EBU 100% pattern appeared slightly inside the graticule targets even though the Rec.709 coefficients, phase remapping, PNG sampling, RGB Parade, and waveform processing were correct.
That observation redirected the investigation from phase to gain.
The hidden assumption inside a single constant
The vectorscope pipeline originally used a fixed reference magnitude of approximately 0.502. That number was not arbitrary, but it was not universal either.
For full-range Rec.709 yellow:
(R′, G′, B′) = (1, 1, 0)
Y′ = 0.9278, Cb = −0.5000, Cr = +0.045847
|C|yellow, full, 100 = 0.502098
The original 0.502 value was therefore the chroma magnitude of a full-range 100% yellow bar. In software, it acted as the denominator of the vectorscope’s XY gain.
That calibration was correct for a full-range pattern. It was not correct for an EBU pattern encoded with studio-legal RGB values.
Full range and studio legal are not interchangeable
In 8-bit representation, full-range RGB uses the interval 0–255. Studio-legal RGB uses nominal black at code 16 and nominal white at code 235. The active excursion is therefore:
235 − 16 = 219 code values
Compared with full range:
219 / 255 = 0.858824
The same scale factor appears in the Rec.709 chroma magnitude:
0.502098 × (219 / 255) = 0.431213
The nominal yellow references used in the investigation were:
| Pattern construction | Nominal 8-bit R′G′B′ yellow | Rec.709 chroma magnitude |
|---|---|---|
| Full-range 100% | 255, 255, 0 | 0.502098 |
| Studio-legal EBU 100% | 235, 235, 16 | 0.431213 |
| Studio-legal EBU 75% | 180, 180, 16 | 0.322918 |
Using 0.502098 to normalize EBU 100% under-gained its vectors by approximately 14%. The error was not in the pattern and not in the Rec.709 matrix. The gain reference belonged to a different coding range.
Why EBU 75% is close to—but not exactly—0.7500
There was a second important detail.
If the EBU 75% pattern were represented by infinitely precise floating-point values, its active excursion would be exactly 75% of the 100% excursion. But a digital pattern is constructed from integer code values.
Using the nominal 8-bit studio values:
(180 − 16) / (235 − 16) = 164 / 219 = 0.748858…
Consequently:
0.322918 / 0.431213 ≈ 0.7489
The difference is small, but a professional measuring instrument should not assume that “75%” always means multiplying a previously quantized value by exactly 0.75. The correct reference should be derived from the actual nominal RGB values of the active pattern.
This also explains why small phase differences may appear when independently quantized Cb and Cr code values are measured. Quantization can move the calculated point by a fraction of a degree, even though the ideal hue axis has not changed.
The engineering correction in GEN-B
GEN-B’s EBU bars were generated mathematically from defined component values. After validation, the algorithmic images were converted into PNG assets to reduce runtime memory and processing requirements. That optimization did not remove the need for exact mathematics; it made it even more important that the analysis pipeline understand the coding range and bar percentage represented by each asset.
The fixed reference was replaced with a Rec.709-derived, pattern-aware computation:
- Identify the active coding range: full or studio legal.
- Identify the bar percentage: 75% or 100%.
- Construct the nominal yellow R′G′B′ values for that pattern.
- Calculate Y′ using the Rec.709 coefficients.
- Calculate Cb and Cr.
- Calculate the reference magnitude using √(Cb² + Cr²).
- Normalize the measured vectors using the matching reference.
Conceptually:
referenceMagnitude = yellowChromaReference(
codingRange: full | studioLegal,
percentage: 75 | 100
)No manually selected correction factor is required. The same Rec.709 equations generate both the signal reference and the vectorscope normalization.
Validation
After the correction:
- EBU 100% vectors aligned with the appropriate graticule targets.
- EBU 75% vectors aligned with the 75% targets.
- The expected hue axes were preserved.
- SMPTE behavior remained unchanged.
- RGB Parade and waveform results were unaffected.
- The PNG-based analysis path remained intact.
- No fixed empirical constant remained in the EBU calibration path.
The important engineering result was not simply that the dots moved into their boxes. It was that the correction came from the signal definition itself and remained valid across both percentage and coding-range changes.
What this investigation taught us
Professional test signals cannot be validated by appearance alone. Two patterns may look correct on a display and still require different measurement references. Conversely, two vectors may appear to indicate different colors when the real problem is a gain normalization inherited from another coding range.
The investigation also reinforced several principles:
- A familiar decimal constant may contain an undocumented assumption.
- Percentage, saturation, component amplitude, coding range, and vectorscope gain are not interchangeable concepts.
- Phase and magnitude must be investigated independently.
- Integer code values matter when building reference signals.
- A stored PNG can be a precise professional test asset when its generation and analysis paths are mathematically controlled.
- A professional generator must reproduce and measure the intended electrical signal—not merely display a recognizable image.
For engineers accustomed primarily to SMPTE practice, the EBU patterns provide an instructive example of how regional broadcast history remains embedded in modern digital test signals. Building GEN-B required us to study those details beyond their visual form. The vectorscope discrepancy was not an inconvenience; it was the observation that exposed the hidden assumption and ultimately produced a more accurate instrument.
References
- ITU-R BT.471-1 — Nomenclature and description of colour bar signals
- ITU-T J.65 — Standard test signal for conventional loading of a television channel
- ITU-R BT.709-6 — Parameter values for HDTV standards
- ITU-R BT.1729 — Common digital television reference test pattern
- EBU Tech 3325 — Performance Measurement of Studio Monitors
GEN-B is a professional Full HD test-signal generator and display-analysis platform developed by Precision Broadcast Engineering.
Precision Broadcast Engineering Engineering Notes
Precision Broadcast Engineering Engineering Notes document the engineering principles, design decisions, and technologies behind PBE products and professional broadcast workflows.
GEN-B Engineering Note
EBU Color Bars: The Hidden Mathematics Behind 75% and 100%
How a vectorscope discrepancy led PBE to replace a fixed normalization value with pattern-aware Rec.709 calibration
