Convert from RGB to 16-bit per pixel YCbCr with 4:2:2 sampling


FwStatus   fwiRGBToYCbCr422_8u_C3C2R ( const Fw8u * pSrcint srcStepFw8u * pDstint dstStepFwiSize roiSize );
FwStatus   fwiRGBToYCbCr422_8u_P3C2R ( const Fw8u * const pSrc[3]int srcStepFw8u * pDstint dstStepFwiSize roiSize );


dstStep   Destination buffer step size (width of the buffer in bytes).
pDst   Pointer to a location in a destination buffer.
pSrc   Pointer to a location in a source buffer.
pSrc[3]   Pointer to a location in a three-channel planar source buffer (array values point to a location in each plane).
roiSize   Specifies the height and width of an ROI.
srcStep   Source buffer step size (width of the buffer in bytes).


These functions step through an ROI in a source buffer, convert the source data from the RGB color model to the YCbCr color space with 4:2:2 chroma subsampling, and write the converted data to a destination buffer.

A gamma-corrected RGB image (pSrc) is converted to a 16-bit per pixel YCbCr image with 4:2:2 chroma subsampling.

 Y = 0.257*R + 0.504*G + 0.098*B + 16
 Cb = -0.148*R - 0.291*G + 0.439*B + 128
 Cr = 0.439*R - 0.368*G - 0.071*B + 128

The input RGB contains the range [0 to 255].

The output Y nominally contains the range [16 to 235].

The output Cb and Cr contains the range [16 to 240], with 128 corresponding to zero.