PAL/NTSC burst phase error
A misplaced colour reference rotates NTSC colour, alternates the error in simple PAL, and reduces colour strength after ideal PAL line averaging.
Visible effect
The picture colour is measured against the wrong axes
A colour burst is a short reference outside the visible picture. Shift its phase while leaving picture chroma unchanged, and the receiver decodes colour against misplaced axes. In NTSC, colour patches change hue together; neutral grey stays neutral and edges stay in place.
PAL reverses one transmitted colour axis on alternate lines. Without line averaging, the same reference error produces alternating colour. With ideal averaging on a region whose adjacent lines have equal colour, the alternating terms cancel and colour strength falls instead.
Compare the three decoder presets at +30°. The vector view separates a rotated colour from a shorter vector; the waveform shows a shifted reference with unchanged amplitude. This is different from burst amplitude error, chroma delay at edges, or differential phase whose error varies with picture level.
Physics
A reference-path phase error becomes a decoding error
The encoder inserts burstA short reference waveform in the blanking interval that lets a PAL or NTSC decoder recover colour-subcarrier phase and amplitude. on the back porch, the blank interval between horizontal sync and active picture. Phase specifies where an oscillation is within its cycle; a phase advance moves its peaks earlier relative to the unchanged active-picture colour subcarrier.
A phase offset in its reference path can move burst relative to active chroma. The receiver’s phase-locked loop, an oscillator held in step with the received reference, then follows that incorrect phase. Its two perpendicular demodulation axes move together.
The two axes recover U, a scaled blue-minus-luma difference, and V, a scaled red-minus-luma difference. Luma is the brightness-related encoded signal. Their angular offset mixes one colour difference into the other.
The fault is assigned to transmitter video formation; its visible consequence occurs during reception. This experiment shifts burst alone. A phase shift shared equally by burst and active chroma leaves their relative angle correct. It also differs from differential phaseA change in chroma phase caused by the underlying luma level, decoded as a luma-dependent hue error in a QAM colour system.: here the error is constant, rather than depending on picture level.
1 · Encoder reference fault
Burst advances +30°. Its amplitude and the active-picture chroma remain unchanged. Dashed: nominal. Solid: faulty burst.
2 · Receiver axes advance
The oscillator follows burst: its axes advance +30°. Dashed: correct axes. Solid: shifted axes. The dotted input vector stays fixed.
3 · NTSC: rotated colour
(U, V) = (0.30, 0) becomes (0.260, −0.150). Its length remains 0.30. Dashed: input and its magnitude circle. Solid: recovered colour.
4 · PAL: opposite line errors
Solid: even line (0.260, −0.150). Dotted: odd line (0.260, +0.150). Thick horizontal: equal-colour average (0.260, 0), 86.6% of input.
NTSC uses the same axes on successive lines. PAL (Phase Alternating Line) reverses the transmitted V axis and restores its sign in the decoder. The cross terms then have opposite signs on adjacent lines. Simple PAL retains them; ideal delay-line PAL cancels them when adjacent colours match. This experiment holds line identification correct and assumes settled lock, nominal burst amplitude and ideal luma/chroma separation.
The existing colour-systems article explains quadrature encoding and PAL alternation. The signal-path article locates the reference inside a complete line.
Mathematics
Advance the reference, then restore the line sign
Use encoded components Y′ = 0.299R′ + 0.587G′ + 0.114B′, U = 0.493(B′ − Y′), V = 0.877(R′ − Y′). These rounded scaled colour differences define the teaching coordinate system. NTSC can be expressed in these quadrature (90°-separated) axes as well as its customary I/Q axes, an alternative orientation of the same colour plane. This model omits NTSC’s unequal I/Q bandwidths and does not convert between regional RGB primaries.
Write active chroma as U sin θ + sV cos θ. Here θ is carrier phase; s = +1 for NTSC, and s = (−1)ⁿ for PAL row n. A positive burst offset δ advances both recovered reference axes to θ + δ. Multiplying by 2 sin(θ + δ) and 2 cos(θ + δ), low-pass filtering and restoring PAL’s V sign gives:
Uₒ and Vₒ are the recovered colour differences; the subscript o means output. In the next equation, bold C is the pair (U, V), i means input, and +/− select adjacent PAL line signs. δ is in radians in these equations; the control and function accept degrees and convert internally. On an NTSC line, this is a clockwise rotation by δ in the U-horizontal, V-vertical diagram. Vector length and encoded luma are preserved before display clipping. At δ = 0 the transform is exactly the identity.
A line-delay decoder combines current chroma with chroma stored for one line period. For identical adjacent colours, the sine cross terms above are equal and opposite, leaving the cosine terms. At ±30°, ideal PAL leaves 0.866× chroma; at ±60°, 0.5×. Opposite offsets rotate NTSC in opposite directions but give the same PAL factor. This expression assumes equal adjacent colour; it is not the complete delay-line operation at horizontal colour boundaries.
Reconstruct R′ = Y′ + Vₒ/0.877 and B′ = Y′ + Uₒ/0.493, then solve G′ = (Y′ − 0.299R′ − 0.114B′)/0.587. This keeps the same encoded luma even when channels leave [0,1]. The display subsequently clips them.
Shader
One sample, one colour transform
The complete shared function accepts encoded RGB, reference advance in degrees, decoder mode (0 NTSC, 1 simple PAL, 2 ideal equal-neighbour averaging) and a non-negative integer row. It returns unclipped RGB. The runtime makes one aspect-fill source read, calls this function, blends by Effect mix and writes the normalized framebuffer.
// WHAT: Shift NTSC colour or reveal PAL's response to a wrong burst phase.
// HOW: Demodulate against advanced axes, restore PAL's alternating V sign,
// or cancel cross terms assuming equal colour on two neighbouring lines.
// WHY: Burst sets the angular reference, while active-picture chroma is unchanged.
// Inputs: encoded RGB, reference advance in degrees (-60 to +60), decoder mode
// (0 NTSC, 1 simple PAL, 2 ideal equal-neighbour averaging), non-negative row.
// Output: unclipped encoded RGB; no spatial delay filter or reference PLL.
vec2 recoverBurstPhaseChroma(vec2 chroma, float phaseDegrees, float decoder, float row) {
float phase = radians(phaseDegrees);
float cosine = cos(phase);
float sine = sin(phase);
if (decoder > 1.5) return chroma * cosine;
float lineSign = decoder > 0.5 && mod(row, 2.0) > 0.5 ? -1.0 : 1.0;
// chroma.x = U, chroma.y = V. Restore V's line sign after demodulation.
return vec2(chroma.x * cosine + lineSign * chroma.y * sine,
chroma.y * cosine - lineSign * chroma.x * sine);
}
vec3 applyBurstPhaseError(vec3 rgb, float phaseDegrees, float decoder, float row) {
if (phaseDegrees == 0.0) return rgb;
float luma = dot(rgb, vec3(0.299, 0.587, 0.114));
// Scaled colour differences, not linear-light RGB or unscaled RGB residuals.
vec2 chroma = vec2(0.493 * (rgb.b - luma), 0.877 * (rgb.r - luma));
vec2 recovered = recoverBurstPhaseChroma(chroma, phaseDegrees, decoder, row);
float red = luma + recovered.y / 0.877;
float blue = luma + recovered.x / 0.493;
// Solve the same luma equation for green: preserve Y′ before display clipping.
float green = (luma - 0.299 * red - 0.114 * blue) / 0.587;
return vec3(red, green, blue);
}- Source textureGamma-coded video
- Locked receiver phase responseOne fullscreen pass · one texture read per pixel
- Read encoded RGB
- Convert to luma and scaled colour differences
- Rotate decoded axes or apply equal-neighbour PAL averaging
- Reconstruct with unchanged luma
- Mix and display with RGB clipping
- Display output
- Convert to scaled U/V before rotating: an unscaled RGB residual has different axes.
- Use one consistent positive-reference-advance sign in the waveform, diagram and decoder.
- Restore PAL’s alternating V sign before comparing decoded colours; this reverses the cross terms.
- For equal-neighbour PAL, use the cosine result directly. No neighbouring texture sample or temporal history is implied.
- Reconstruct green from the luma equation and leave clipping until display output.
Simple PAL uses 144 enlarged teaching rows across source height: n = floor(144·y), where source y runs downward from the top after aspect-fill mapping. This is a visibility aid, not a 525/625-line raster. Row parity stays tied to source coordinates when the display is resized.
Notes
- This is the steady-state component response of a locked receiver to a burst-only transmitter fault. It does not sample composite video, recover RF, simulate oscillator acquisition or change subcarrier frequency.
- PAL averaging assumes locally identical colour on adjacent lines, including when applied to photographs or video. Vertical edge mixing, delay mismatch, motion and adaptive decoding are outside this approximation.
- The ±60° range is illustrative, not a receiver tolerance. Large burst offsets can disturb PAL identification, lock or colour suppression in real equipment; those behaviours are held out of the model.
- The waveform uses nominal-relative phase, equal amplitude and six illustrative cycles. It omits PAL’s correct alternating nominal burst phases and does not specify a standard’s absolute reference angle or burst duration.
- Neutral grey and encoded luma are invariant before clipping. Physical luminance, perceived saturation and displayed hue are not guaranteed invariant at gamut limits.
- Simple PAL’s enlarged alternating rows illustrate the line error, rather than reproducing the visibility of Hanover bars on a particular CRT.
- Effect mix interpolates original and recovered RGB. Partial mix can shorten rotated vectors; it is a comparison aid, not a smaller physical phase error. The waveform still shows the full transmitted offset.
- SECAM’s line-sequential FM colour has a different reference mechanism and is outside this effect. Compare burst amplitude error for the independent gain-reference fault.
References
ITU-R BT.1700 — composite analogue television signals — defines NTSC/PAL colour axes, scaling, burst phase and PAL reference alternation; the experiment uses a nominal-relative phase offset.
EBU Technical Review 256 (1993) — video encoders and decoders, §2.4.1 — contrasts simple PAL with delay-line PAL, including alternating colour errors, cosine saturation loss and vertical-colour limitations.
Cirrus Logic — US7330217B1, chroma phase error correction — documents quadrature demodulation, burst-referenced oscillator recovery, NTSC colour shift, and the constant-colour limitation of PAL line averaging.