Convert YCbCr MCU to BGR
SSE2
FwStatus | fwiYCbCr444ToBGRLS_MCU_16s8u_P3C3R | ( | const Fw16s * pSrcMCU[3], Fw8u * pDstBGR, int dstStep ); | |
FwStatus | fwiYCbCr444ToBGR565LS_MCU_16s16u_P3C3R | ( | const Fw16s * pSrcMCU[3], Fw16u * pDstBGR, int dstStep ); | |
FwStatus | fwiYCbCr444ToBGR555LS_MCU_16s16u_P3C3R | ( | const Fw16s * pSrcMCU[3], Fw16u * pDstBGR, int dstStep ); | |
FwStatus | fwiYCbCr422ToBGRLS_MCU_16s8u_P3C3R | ( | const Fw16s * pSrcMCU[3], Fw8u * pDstBGR, int dstStep ); | |
FwStatus | fwiYCbCr422ToBGR565LS_MCU_16s16u_P3C3R | ( | const Fw16s * pSrcMCU[3], Fw16u * pDstBGR, int dstStep ); | |
FwStatus | fwiYCbCr422ToBGR555LS_MCU_16s16u_P3C3R | ( | const Fw16s * pSrcMCU[3], Fw16u * pDstBGR, int dstStep ); | |
FwStatus | fwiYCbCr411ToBGRLS_MCU_16s8u_P3C3R | ( | const Fw16s * pSrcMCU[3], Fw8u * pDstBGR, int dstStep ); | |
FwStatus | fwiYCbCr411ToBGR565LS_MCU_16s16u_P3C3R | ( | const Fw16s * pSrcMCU[3], Fw16u * pDstBGR, int dstStep ); | |
FwStatus | fwiYCbCr411ToBGR555LS_MCU_16s16u_P3C3R | ( | const Fw16s * pSrcMCU[3], Fw16u * pDstBGR, int dstStep ); |
dstStep | Destination buffer step size (width of the buffer in bytes). | |
pDstBGR | Pointer to destination image ROI for BGR image format. | |
pSrcMCU[3] | Array of pointers to source MCU image blocks. |
These functions step through a minimum coded unit in a source buffer, convert the data from the YCbCr color space to the BGR color model, level-shift the signed values to unsigned values, and write the converted data to a destination buffer.
There are functions to convert minimum coded units with 4:4:4, 4:2:2, and 4:1:1 chroma sampling to 8-bit BGR or to 16-bit BGR with 555 or 565 bit-per-channel encoding.
The following formulas are used to convert luminance and chrominance values to blue, green, and red values.
B = Y + 1.772*Cb - 226.816 G = Y - 0.34414*Cb - 0.71414*Cr + 135.45984 R = Y + 1.402*Cr - 179.456