SAD16x16xN, SAD16x16xNI

Evaluates sum of absolute difference between current and reference 16x16xN and 16x16xNI blocks.

Syntax

IppStatus ippiSAD16x16xN_8u16u_C1R(const Ipp8u* pSrc, Ipp32s srcStep, const Ipp8u* pRef, Ipp32s refStep, Ipp16u* pSAD, Ipp32s numSAD);

IppStatus ippiSAD16x16xNI_8u16u_C1R(const Ipp16u* pSrc, Ipp32s srcStep, const Ipp16u* pRef, Ipp32s refStep, Ipp16u* pSAD, Ipp32s numSAD, Ipp32u* pMinSADIndex);

Parameters

pSrc

Pointer to the current block of specified size.

srcStep

Distance in bytes between starts of the consecutive lines in the source image.

pRef

Pointer to the reference block of specified size.

refStep

Distance in bytes between starts of the consecutive lines in the reference image.

pSAD

Pointer to an array of numSAD size to store calculated results.

numSAD

Number of SAD to calculate; should be a product of 8.

pMinSADIndex

Index of the minimal SAD value in pSAD array.

Description

These functions are declared in the ippvc.h header file. The functions ippiSAD16x16xN_8u16u_C1R and ippiSAD16x16xNI_8u16u_C1R calculate a series of sums of absolute difference between all the elements in the current block and the corresponding elements in the reference block and store the results in the given array. The functions use the SSE4.1 instructions to enhance motion estimation.

Optimization Notice

The Intel® Integrated Performance Primitives (Intel® IPP) library contains functions that are more highly optimized for Intel microprocessors than for other microprocessors. While the functions in the Intel® IPP library offer optimizations for both Intel and Intel-compatible microprocessors, depending on your code and other factors, you will likely get extra performance on Intel microprocessors.

While the paragraph above describes the basic optimization approach for the Intel® IPP library as a whole, the library may or may not be optimized to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include Intel® Streaming SIMD Extensions 2 (Intel® SSE2), Intel® Streaming SIMD Extensions 3 (Intel® SSE3), and Supplemental Streaming SIMD Extensions 3 (Intel® SSSE3) instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors.

Intel recommends that you evaluate other library products to determine which best meets your requirements.

See below for a figure that illustrates operation of the functions.

Operation of ippiSAD16x16xN_8u16u_C1R and ippiSAD16x16xNI_8u16u_C1R



Return Values

ippStsNoErr

Indicates no error.

ippStsNullPtrErr

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

ippStsStepErr

Indicates an error if the number of SADs to produce is not a product of 8.


Submit feedback on this help topic

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