Gary Sullivan (source code)

= Gary Sullivan
{c}

<Gary Sullivan> coauthored <Recommended 8-Bit YUV Formats for Video Rendering by Gary Sullivan and Stephen Estrop> with <Stephen Estrop>. Their technical article connects <chroma subsampling>, sample storage and conversion between the <RGB color model> and <YCbCr>.<Recommended 8-Bit YUV Formats for Video Rendering by Gary Sullivan and Stephen Estrop>[Byline; Color Space and Chroma Sampling Rate Conversions]{ref}

An original neutral-gray example isolates code range conversion from memory layout. Take eight-bit computer RGB inputs $(R,G,B)=(g,g,g)$, with codes from 0 to 255. Since the three coefficients in the guide's luma combination sum to one, the combined gray value is $g$ regardless of which of its two coefficient sets is selected. For its eight-bit nominal video coding, use
$$
Y=\operatorname{round}\left(16+219\frac{g}{255}\right),\qquad U=V=128.
$$
Thus gray 64 becomes $(Y,U,V)=(71,128,128)$, while gray 192 becomes $(181,128,128)$. The separation of the two stored luma codes is 110 rather than 128. These values follow the stipulated input/output ranges and nearest-integer <rounding>; copying an RGB component directly into the luma slot would implement a different mapping.<Recommended 8-Bit YUV Formats for Video Rendering by Gary Sullivan and Stephen Estrop>[Conversion between RGB and4:4:4 YUV, general formulas, computer-RGB values of Z and S, nominal Y/U/V ranges]{ref}

Changing a <pixel format> can rearrange those same codes without performing this conversion. Conversely, converting every pixel's three components does not itself require <chroma subsampling>. Keeping these operations separate is a practical contribution of the jointly authored guide; no individual authorship of its formulas is inferred.