Evaluates sum of absolute difference between current and reference 4x4xN and 4x4xNI blocks.
IppStatus ippiSAD4x4xN_8u16u_C1R(const Ipp8u* pSrc, Ipp32s srcStep, const Ipp8u* pRef, Ipp32s refStep, Ipp16u* pSAD, Ipp32s numSAD);
IppStatus ippiSAD4x4xNI_8u16u_C1R(const Ipp16u* pSrc, Ipp32s srcStep, const Ipp16u* pRef, Ipp32s refStep, Ipp16u* pSAD, Ipp32s numSAD, Ipp32u* pMinSADIndex);
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. |
These functions are declared in the ippvc.h header file. The functions ippiSAD4x4xN_8u16u_C1R and ippiSAD4x4xNI_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 Figure "Operation of ippiSAD16x16xN_8u16u_C1R and ippiSAD16x16xNI_8u16u_C1R" that illustrates operation of the functions similar to ippiSAD4x4xN_8u16u_C1R and ippiSAD4x4xNI_8u16u_C1R.
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. |
Copyright © 2000 - 2010, Intel Corporation. All rights reserved.