GetDiff8x8B

Evaluates difference between current bi-predicted and mean of two reference blocks of 8x8 elements.

Syntax

IppStatus ippiGetDiff8x8B_8u16s_C1(const Ipp8u* pSrcCur, Ipp32s srcCurStep, const Ipp8u* pSrcRefF, Ipp32s srcRefStepF, Ipp32s mcTypeF, const Ipp8u* pSrcRefB, Ipp32s srcRefStepB, Ipp32s mcTypeB, Ipp16s* pDstDiff, Ipp32s dstDiffStep, Ipp32s roundControl);

IppStatus ippiGetDiff8x8B_8u16s_C2P2(const Ipp8u* pSrcCur, Ipp32s srcCurStep, const Ipp8u* pSrcRefF, Ipp32s srcRefStepF, Ipp32s mcTypeF, const Ipp8u* pSrcRefB, Ipp32s srcRefStepB, Ipp32s mcTypeB, Ipp16s* pDstDiffU, Ipp32s dstDiffStepU, Ipp16s* pDstDiffV, Ipp32s dstDiffStepV, Ipp32s roundControl);

Parameters

pSrcCur

Pointer to the block of size 8x8 in the current plane.

For ippiGetDiff8x8B_8u16s_C2P2, pointer to the block of size 8x16 in the current plane in the NV12 format (or 8x8 for each U and V planes):

0 UVUVUVUVUVUVUVUV 1 UVUVUVUVUVUVUVUV ... 7 UVUVUVUVUVUVUVUV

srcCurStep

Step of the current block, specifying width of the plane in bytes.

pSrcRefF

Pointer to the forward block of size 8x8 in the reference plane (for ippiGetDiff8x8B_8u16s_C2P2, pointer to the block of size 8x16 in the reference plane in the NV12 format).

0 UVUVUVUVUVUVUVUV 1 UVUVUVUVUVUVUVUV ... 7 UVUVUVUVUVUVUVUV

srcRefStepF

Step of the forward reference block, specifying width of the plane in bytes.

mcTypeF

Type of the following forward MC type IPPVC_MC_APX.

pSrcRefB

Pointer to the backward block of size 8x8 in the reference plane (for ippiGetDiff8x8B_8u16s_C2P2, pointer to the block of size 8x16 in the reference plane in the NV12 format).

0 UVUVUVUVUVUVUVUV 1 UVUVUVUVUVUVUVUV ... 7 UVUVUVUVUVUVUVUV

srcRefStepB

Step of the backward reference block, specifying width of the block in bytes.

mcTypeB

Type of the following backward MC type IPPVC_MC_APX.

pDstDiff

Pointer to the destination block of specified size containing difference between the current and reference blocks.

pDstDiffU

Pointer to the block of size 8x8 in the destination plane, which contains difference between the current and reference blocks (U plane):
0 UUUUUUUU 1 UUUUUUUU ... 7 UUUUUUUU

pDstDiffV

Pointer to the block of size 8x8 in the destination plane, which contains difference between the current and reference blocks (V plane):
0 VVVVVVVV 1 VVVVVVVV ... 7 VVVVVVVV

dstDiffStep

Step of the destination block, specifying width of the block in bytes.

dstDiffStepU

Step of the destination block, specifying width of the block in bytes (U plane).

dstDiffStepV

Step of the destination block, specifying width of the block in bytes (V plane).

roundControl

Parameter that determines type of rounding for half a pel approximation; may be 0 or 1.

Description

This function is declared in the ippvc.h header file. The function ippiGetDiff8x8B_8u16s evaluates the difference between the current block and the mean of two reference blocks of the specified size. One of the reference blocks is called forward and belongs to the previous frame in accordance with the type of motion compensation. The other block is called backward and belongs to one of the following frames. The result is stored in block pDstDiff (for ippiGetDiff8x8B_8u16s_C1) or blocks pDstDiffu and pDstDiffV (for ippiGetDiff8x8B_8u16s_C2P2). Encoding is performed accurate to half a pel and rounding must be specified.

Return Values

ippStsNoErr

Indicates no error.

ippStsNullPtrErr

Indicates an error when at least one input pointer is NULL.


Submit feedback on this help topic

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