Converts ten YCrCb422 half-macroblocks into YCrCb422 half-macroblocks.
IppStatus ippiYCrCb422ToYCbCr422_10HalvesMB16x8_DV100_16s8u_P3C2R(const Ipp16s* pSrc, Ipp8u* pDst[10], Ipp32s dstStep);
pSrc |
Pointer to decompressed DV100 video segment consisting of five macroblocks. |
pDst |
Array of pointers to ten destinations, where half-macroblocks should be stored. |
dstStep |
Distance in bytes between starts of the consecutive lines in the destination image. |
This function is declared in the ippvc.h header file. The ippiYCrCb422ToYCbCr422_10HalvesMB16x8_DV100_16s8u_P3C2R function is intended to be used in DV100 video decoder. It converts ten YCrCb422 half-macroblocks of size 16x8 to YCbCr422 half-macroblocks of the same size. Specifically, the function transfers macroblocks of uncompressed DV data after IDCT processing from the internal format (YUV422) to the destination buffer in YUY2 format with saturation.
There are two types of macro blocks in DV100 standard: normal and bottom macroblock. "DV 100 Macroblocks" depicts these two types. A bottom macroblock is obtained from a normal macroblock by moving its bottom half to the right.
The ippiYCrCb422ToYCbCr422_10HalvesMB16x8_DV100_16s8u_P3C2R function can process both types of macroblocks by specifying ten destination pointers that are passed to the function through pDst argument. Each pair of pointers (even and odd) is the places on the destination image where two halves of the corresponding macroblock should be stored. For normal macroblock, the odd pointer should refer to the point 8 pixels below the point the even pointer refers to. For the bottom macroblock, the odd pointer should refer to the point 16 pixels to the right of the point the even pointer refers to.
pSrc is the pointer to uncompressed DV100 video segment, which consists of 40 DCT blocks following one after another: 4 luma and 4 color difference DCT blocks for each of 5 macro blocks. Each DCT block consists of 64 elements. DCT blocks in each macroblock are arranged in the following order:
Y0, Y1, Y2, Y3, Cr0, Cr1, Cb0, Cb1.
ippStsNoErr |
Indicates no error. |
ippStsNullPtrErr |
Indicates an error when at least one of the pointers is NULL. |
Copyright © 2000 - 2011, Intel Corporation. All rights reserved.