= Stephen Estrop
{c}
<Stephen Estrop> coauthored Microsoft's <Recommended 8-Bit YUV Formats for Video Rendering by Gary Sullivan and Stephen Estrop> with <Gary Sullivan>. The article is dated April2002, updated November2008, and specifies sample grids and memory layouts for eight-bit video rendering.<Recommended 8-Bit YUV Formats for Video Rendering by Gary Sullivan and Stephen Estrop>[Byline; YUV Sampling; Surface Definitions]{ref}
An original address calculation illustrates why a <pixel format> needs more than a sample count. Stipulate an <NV12> image of width 10 and height 6, with <framebuffer stride> 16 bytes in both planes. Let the first <luma (video)> byte have address 2000, and place the interleaved colour-difference plane immediately after the six stored luma rows. Its base is $2000+6(16)=2096$. The allocation holds $96+48=144$ <bytes>, although active samples require only $60+30=90$ bytes.
At zero-based row 5, column 9, the luma byte is at $2000+5(16)+9=2089$. Its associated subsampled grid cell is row 2, column 4, whose Cb and Cr bytes are at $2096+2(16)+2(4)=2136$ and 2137. Counting active samples as if they were the allocation size would give the wrong plane base. The shared technical article defines NV12's component order; the chosen dimensions, padding and addresses here are illustrative.<Recommended 8-Bit YUV Formats for Video Rendering by Gary Sullivan and Stephen Estrop>[Surface Definitions, Stride; NV12]{ref}
These calculations locate stored samples. Reconstructing colour additionally requires <chroma sample location>, <chroma reconstruction> and the specified <YCbCr> conversion. The article's joint byline does not identify which coauthor designed an individual format.
Back to article page