Note that the functions with _16u_ and _8u_ data types use the following structures respectively:
typedef struct _IppVCInterpolate_16u { const Ipp16u* pSrc; Ipp32s srcStep; Ipp16u* pDst; Ipp32s dstStep; Ipp32s dx; Ipp32s dy; IppiSize roiSize; Ipp32s bitDepth; } IppVCInterpolate_16u;
typedef struct _IppVCInterpolate_8u { const Ipp8u* pSrc; Ipp32s srcStep; Ipp8u* pDst; Ipp32s dstStep; Ipp32s dx; Ipp32s dy; IppiSize roiSize; Ipp32s roundControl; } IppVCInterpolate_8u;
where
pSrc |
Pointer to the source. |
srcStep |
Distance in items between starts of the consecutive lines in the source image. |
pDst |
Pointer to the destination. |
dstStep |
Distance in items between starts of the consecutive lines in the destination image. |
dx, dy |
Fractional parts of the motion vector in 1/4 pel units for luma (0, 1, 2, or 3) and 1/8 pel units for chroma (0, 1, ..., 7) |
roiSize |
Flag that specifies the dimensions of the region of interest. See structure IppiSize. |
roundControl |
Frame level rounding control value as described in section 8.3.7 of [SMPTE421M], should be equal to 0 or 1. (For VC1 only, reserved for H.264.) |
bitDepth |
Number of bits of the plane sample with the range [8.. 14]. |
typedef struct _IppVCBidir_16u { const Ipp16u* pSrc1; Ipp32s srcStep1; const Ipp16u* pSrc2; Ipp32s srcStep2; Ipp16u* pDst; Ipp32s dstStep; IppiSize roi; Ipp32s bitDepth; } IppVCBidir_16u;
typedef struct _IppVCBidir_8u { const Ipp8u* pSrc1; Ipp32s srcStep1; const Ipp8u* pSrc2; Ipp32s srcStep2; Ipp8u* pDst; Ipp32s dstStep; IppiSize roiSize; } IppVCBidir_8u;
where
pSrc1 |
Pointer to the first input block |
srcStep1 |
Distance in items between starts of the consecutive lines in the first input block. |
pSrc2 |
Pointer to the second input block. |
srcStep2 |
Distance in items between starts of the consecutive lines in the second input block. |
pDst |
Pointer to the first output block. |
dstStep |
Distance in items between starts of the consecutive lines in the destination block. |
roiSize |
Flag that specifies the dimensions of the region of interest. See structure IppiSize. |
bitDepth |
Number of bits of the plane sample with range [8.. 14]. |
The InterpolateLumaBlock_H264 and InterpolateChromaBlock_H264 functions use the following structures:
typedef struct _IppVCInterpolateBlock_16u { const Ipp16u* pSrc[2]; /* pointers to reference image planes */ Ipp32s srcStep; /* step of the reference image planes */ Ipp16u* pDst[2]; /* pointers to destination image planes */ Ipp32s dstStep; /* step of the destination image planes */ IppiSize sizeFrame; /* dimensions of the reference image planes */ IppiSize sizeBlock; /* dimensions of the block to be interpolated */ IppiPoint pointBlockPos; /* current position of the block in the image being interpolated */ IppiPoint pointVector; /* relative difference between current position and reference data to be used */ Ipp32s bitDepth /* data capacity depth in range 8..14 */ } IppVCInterpolateBlock_16u;
typedef struct _IppVCInterpolateBlock_8u { const Ipp8u* pSrc[2]; /* pointers to reference image planes */ Ipp32s srcStep; /* step of the reference image planes */ Ipp8u* pDst[2]; /* pointers to destination image planes */ Ipp32s dstStep; /* step of the destination image planes */ IppiSize sizeFrame; /* dimensions of the reference image planes */ IppiSize sizeBlock; /* dimensions of the block to be interpolated*/ IppiPoint pointBlockPos; /* current position of the block in the image being interpolated */ IppiPoint pointVector; /* relative difference between current position and reference data to be used */ } IppVCInterpolateBlock_8u;
where
pSrc |
Array of pointers to reference planes; InterpolateLumaBlock_H264 uses only first pointer of the array, InterpolateChromaBlock_H264 uses both pointers. |
srcStep |
Stride of the reference planes (the distance between the nearest image lines) |
pDst |
Array of pointers to destination buffers; InterpolateLumaBlock_H264 uses only first pointer of the array, InterpolateChromaBlock_H264 uses both pointers. The array should be big enough to hold the interpolated block. |
dstStep |
Stride of the destination buffer (the distance between the nearest image lines) |
sizeFrame |
Dimensions of the reference planes that are pointed to by the source pointers |
sizeBlock |
Dimentions of the block to interpolate |
pointBlockPos |
Current position of the block in the frame under reconstruction |
pointVector |
Motion vector |
bitDepth |
Bit capacity of data that is being processed. |
Copyright © 2000 - 2011, Intel Corporation. All rights reserved.