= Chroma interpolation filter
A \b[chroma interpolation filter] combines retained colour-difference samples to estimate values at the output locations required by <chroma upsampling>. It acts on the components of <YCbCr> separately from full-resolution <luma (video)>. The filter coefficients and the assumed <chroma sample location> jointly determine the reconstruction. Microsoft's primary conversion guide gives a four-sample interpolation example and states its progressive-scan and edge-handling assumptions.<Recommended 8-Bit YUV Formats for Video Rendering by Gary Sullivan and Stephen Estrop>[Converting 4:2:0 YUV to 4:2:2 YUV; Converting 4:2:2 YUV to 4:4:4 YUV]{ref}
For an original one-dimensional <linear interpolation> rule, let retained samples $c_k$ lie at positions $x=2k$. Define output samples by
$$
y_{2k}=c_k,\qquad y_{2k+1}=\frac{c_k+c_{k+1}}2.
$$
The two coefficient sets, one for each output parity, both sum to one. A constant input is therefore reproduced at every output position. With $c_0=40$, $c_1=120$ and $c_2=80$, the outputs through $x=4$ are $40,80,120,100,80$. The values at odd-integer positions are estimates, while the retained even-integer positions are unchanged.
Higher-order interpolation need not remain between neighbouring input values. As an original exact-arithmetic illustration, take a half-position rule with coefficients $(-1,9,9,-1)/16$ applied to four consecutive samples. Their sum is one, so constants are preserved. But the sample sequence $0,200,200,0$ yields $225$ between the two central samples; $200,0,0,200$ yields $-25$. Negative coefficients permit overshoot. Quantization and clipping then change the result further. The primary Microsoft example uses these interpolation coefficients with integer rounding and clipping.<Recommended 8-Bit YUV Formats for Video Rendering by Gary Sullivan and Stephen Estrop>[four-sample Cout formula and subsequent interpolation discussion]{ref}
The same numerical coefficients can produce spatially misplaced colour if their assumed input grid is wrong. <Centered chroma> and <co-sited chroma> require their actual coordinates to be respected. At image boundaries, missing neighbours require an explicit extension rule. No choice of <chroma interpolation filter> can uniquely recover arbitrary colour variation discarded by <chroma subsampling>.
Back to article page