InterpolateLumaBlock_H264

Performs interpolation for motion estimation of the luma component using entire motion vector.

Syntax

IppStatus ippiInterpolateLumaBlock_H264_8u_P1R(const IppVCInterpolateBlock_8u* interpolateInfo);

IppStatus ippiInterpolateLumaBlock_H264_16u_P1R(const IppVCInterpolateBlock_16u* interpolateInfo);

Parameters

interpolateInfo

Pointer to an instance of the structure holding interpolation parameters. See IppVCInterpolateBlock_8u and IppVCInterpolateBlock_16u structures.

Description

The functions ippiInterpolateLumaBlock_H264_8u_P1R and ippiInterpolateLumaBlock_H264_16u_P1R are declared in the ippvc.h file. These functions perform interpolation (convolution with 6x6 kernel) for motion estimation of the luma component in accordance with 8.4.2.2.1 of [JVTG050]. Unlike InterpolateLuma_H264, the functions use an entire motion vector when they calculate fractional and integer parts of the vectors. The functions also handle cases of overlapping, when the source block pointed to by the motion vector lies out of the source frame. Non-existing samples are cloned from the nearest existing samples.

Interpolation of Luminance Component Block for Motion Estimation



ippiInterpolateLumaBlock_H264_8u_P1R Usage Example 

{
  IppVCInterpolateBlock_8u interpolateInfo;

        interpolateInfo.pSrc[0] = reference_luma_frame;
        interpolateInfo.srcStep = reference_luma_frame_pitch;

        // create vectors & factors
        interpolateInfo.pointVector.x = horizontal_motion_vector;
        interpolateInfo.pointVector.y = vertical_motion_vector;

        // fill parameters
        interpolateInfo.pDst[0] = destination_luma_block;
        interpolateInfo.dstStep = destination_luma_frame_pitch;
        interpolateInfo.sizeFrame = {width_of_luma_frame, height_of_luma_frame};
        interpolateInfo.sizeBlock = { width_of_luma_block, height_of_luma_block};
        interpolateInfo.pointBlockPos.x = x_position_of_current_luma_block;
        interpolateInfo.pointBlockPos.y = y_position_of_current_luma_block;

        ippiInterpolateLumaBlock_H264_8u_P1R(&interpolateInfo);
  }

Return Values

ippStsNoErr

Indicates no error.

ippStsNullPtrErr

Indicates an error condition if at least one of the specified pointers is NULL.

ippStsSizeErr

Indicates an error condition if roi.width or roi.height take values other than {16, 8, 4}.


Submit feedback on this help topic

Copyright © 2000 - 2010, Intel Corporation. All rights reserved.