Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

## Template Matching function questions

Beginner
501 Views

Hi,

I have trouble finding the difference between SqrDistanceFull_Norm/SqrDistanceSame_Norm/SqrDistanceValid_Norm, as well as CrossCorFull_Norm/CrossCorSame_Norm/CrossCorValid_Norm, as well as CrossCorFull_NormLevel/CrossCorSame_NormLevel/CrossCorValid_NormLevel.

What exactly is the difference between Full/Same/Valid versions?

All of these functions are marked as deprectated, but nowhere can I find the name of a replacement function. Which function(s) replace the deprecated ones?

I must also say that the documentation is really hard to read. All these variants of function descriptions seem to share the same documentation (at least 99% is the same), making it very very hard to spot differences.

Best regards

Peter

11 Replies
Valued Contributor II
501 Views
Please take a look at ippi.h header file: //... // ippiSqrDistanceValid_Norm_8s32f_AC4R. // // Purpose: Computes normalized Euclidean distance, or Sum of Squared // Distance (SSD) of an image and a template (another image). // The SSD values are image similarity measures: the smaller // value of SSD at a particular pixel, the more similarity between // the template and the image in the neighborhood of the pixel. // If IppiSize's of image and template are Wa * Ha and // Wb * Hb correspondingly, then the IppiSize of the resulting // matrix with normalized SSD coefficients will be // a) in case of 'Full' suffix: // ( Wa + Wb - 1 )*( Ha + Hb - 1 ). // b) in case of 'Same' suffix: // ( Wa )*( Ha ). // c) in case of 'Valid' suffix: // ( Wa - Wb + 1 )*( Ha - Hb + 1 ). // Notice: // suffix 'R' (ROI) means only scanline alignment (srcStep), in // 'Same' and 'Full' cases no any requirements for data outstand // the ROI - it's assumed that template and source images are zero padded. //...
Beginner
501 Views

Thanks for the explanation.

All of these functions are marked as deprectated, but nowhere can I find the name of a replacement function. Which function(s) replace the deprecated ones?

Valued Contributor II
501 Views
Please take a look at a thread: Intel® Integrated Performance Primitives 7.1 Deprecation Information software.intel.com/en-us/forums/topic/327960 for more information. Also, it was already discussed many times that older and newer versions of IPP library could be used at the same time in the same application. Even if functions you've mentioned are removed from IPP library in the future you could continue using older version of IPP.
Valued Contributor II
501 Views
Here is a collection of different links to articles and documentation of IPP library: software.intel.com/en-us/articles/intel-ipp-71-library-release-notes IPP knowledge base software.intel.com/en-us/articles/intel-ipp-kb/all software.intel.com/en-us/articles/intel-ipp-70-library-install-guide IPP code samples software.intel.com/en-us/articles/code-samples-for-intel-integrated-performance-primitives-intel-ipp-library-71 software.intel.com/en-us/articles/intel-integrated-performance-primitives-code-samples Others software.intel.com/en-us/articles/intel-integrated-performance-primitives-faq software.intel.com/en-us/articles/intel-integrated-performance-primitives-documentation software.intel.com/en-us/articles/ipp-crypto-guide software.intel.com/en-us/articles/download-ipp-cryptography-libraries software.intel.com/en-us/articles/boosting-cryptography-performance-with-intel-libraries software.intel.com/en-us/articles/intel-integrated-performance-primitives-intel-ipp-understanding-cpu-optimized-code-used-in-intel-ipp software.intel.com/en-us/articles/threading-and-intel-integrated-performance-primitives Note: However, in 99% of cases I use IPP documentation in Pdf format.
Beginner
501 Views

Please excuse, I still need to come back to the deprecation issue, because it just does not make sense in my head yet.

Are you saying that these template matching functions may be removed and no replacement might be available in newer IPP versions?

Valued Contributor II
501 Views
Any comments from Intel software engineers on the last question? Thanks in advance.
Valued Contributor II
501 Views
I agree with Peter because deprecation message doesn't say anything about replacements of these functions in future versions of IPP library. From ippi.h from IPP version 7.1.1: ... IPP_DEPRECATED("is deprecated. API of this function is obsolete and will be changed in one of the future IPP releases. Use the following link for details: software.intel.com/en-us/articles/intel-ipp-71-deprecated-features/")\ IPPAPI( IppStatus, ippiCrossCorrFull_Norm_32f_C1R, ( const Ipp32f* pSrc, int srcStep, IppiSize srcRoiSize, const Ipp32f* pTpl, int tplStep, IppiSize tplRoiSize, Ipp32f* pDst, int dstStep )) ...
Beginner
501 Views

I was also a bit shocked to read that convolution would be removed from IPP.... If only the API is going to be modified, I can then breathe normal!

Moderator
501 Views

Hello Thomas and Peter,

Deprecation does not mean immediate removal, but it does begin the process and collect the feedback for these function. If you notice some function is important, please feel free to provide your feedback in the following site:
http://software.intel.com/sites/products/ipp-deprecated-features-feedback/

Regards,
Chao

Employee
501 Views

Hi all,

Full, Same an Valid notations have the same meaning as in MatLab. Regarding deprecation: in IPP 8.0 the new APIs for these functionalities will introduced, so deprecation message will be changed with a reccomendation to use the new one. Your feedback on new APIs will be appreciated.

regards, Igor

Employee
501 Views

Hi all,

Full, Same an Valid notations have the same meaning as in MatLab. Regarding deprecation: in IPP 8.0 the new APIs for these functionalities will introduced, so deprecation message will be changed with a reccomendation to use the new one. Your feedback on new APIs will be appreciated.

regards, Igor