Developer Reference for Intel® Integrated Performance Primitives
Converts YCbCr image from 4:2:2 sampling format to 4:2:0 format.
Case 1: Operation on planar data
IppStatus ippiYCbCr422ToYCbCr420_8u_P3R(const Ipp8u* pSrc[3], int srcStep[3], Ipp8u* pDst[3], int dstStep[3], IppiSize roiSize);
IppStatus ippiYCbCr422ToYCbCr420_8u_P3P2R(const Ipp8u* pSrc[3], int srcStep[3], Ipp8u* pDstY, int dstYStep, Ipp8u* pDstCbCr, int dstCbCrStep, IppiSize roiSize);
Case 2: Conversion from pixel-order to planar data
IppStatus ippiYCbCr422ToYCbCr420_8u_C2P3R(const Ipp8u* pSrc, int srcStep, Ipp8u* pDst[3], int dstStep[3], IppiSize roiSize);
IppStatus ippiYCbCr422ToYCbCr420_8u_C2P2R(const Ipp8u* pSrc, int srcStep, Ipp8u* pDstY, int dstYStep, Ipp8u* pDstCbCr, int dstCbCrStep, IppiSize roiSize);
ippcc.h
Headers: ippcore.h, ippvm.h, ipps.h, ippi.h
Libraries: ippcore.lib, ippvm.lib, ipps.lib, ippi.lib
pSrc |
Pointer to the ROI in the pixel-order source image. Array of pointers to the ROI in each plane of the planar source image. |
srcStep |
Distance in bytes between starts of consecutive lines in the source image. Array of distance values for the source image planes. |
pDst |
Array of pointers to the ROI in each plane for a three-plane destination image. |
dstStep |
Array of distances in bytes between starts of consecutive lines in each plane for a three-plane destination image. |
pDstY |
Pointer to the ROI in the luminance plane for a two-plane destination image. |
dstYStep |
Distance in bytes between starts of consecutive lines in the luminance plane of a destination image. |
pDstCbCr |
Pointer to the ROI in the interleaved chrominance plane for a two-plane destination image. |
dstCbCrStep |
Distance in bytes between starts of consecutive lines in the chrominance plane of a destination image. |
roiSize |
Size of the ROI in pixels, height and width should be multiple of 2. |
This function operates with ROI (see Regions of Interest in Intel IPP).
This function converts the 4:2:2 image pSrc to the 4:2:0 image. The source image can be two-channel or three-plane , destination image always is planar with two or three planes (see Table “Pixel-Order Image Formats” and Table “Planar Image Formats”). Two-plane image contains luminance samples Y0, Y1, Y2, .. in the first plane pDstY, and interleaved chrominance samples Cb0, Cr0, Cb1, Cr1, ... in the second plane pDstCbCr.
ippStsNoErr |
Indicates no error. Any other value indicates an error. |
ippStsNullPtrErr |
Indicates an error condition if any of the specified pointers is NULL. |
ippStsSizeErr |
Indicates an error condition if any field of the roiSize is less than 2. |
The code example below shows how to use the function ippiYCbCr422ToYCbCr420_8u_C2P3R.
{ Ipp8u* ImageI420[3]; int stepI420[3]; Ipp8u* ImageYUY2; int stepYUY2; IppiSize roiSize = { 1024, 768}; ImageI420[0] = ippiMalloc_8u_C1( roiSize.width, roiSize.height, &(stepI420[0])); ImageI420[1] = ippiMalloc_8u_C1( roiSize.width, roiSize.height, &(stepI420[1])); ImageI420[2] = ippiMalloc_8u_C1( roiSize.width, roiSize.height, &(stepI420[2])); ImageYUY2 = ippiMalloc_8u_C2( roiSize.width, roiSize.height, &stepYUY2 ); ippiYCbCr422ToYCbCr420_8u_C2P3R( ImageYUY2, stepYUY2, ImageI420, stepI420, roiSize); ippiFree(ImageI420[0]); ippiFree(ImageI420[1]); ippiFree(ImageI420[2]); ippiFree(ImageYUY2); }