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

Deprecation of ippiMorphReconstructGetBufferSize

Taylor__Alex
Beginner
505 Views

I am in the process of upgrading an existing application from IPP 7.0 to IPP 8.1. I make use of the routine ippiMorphReconstructDilate in my application. My question is, when I attempt to compile my application, I get a compilation warning that the symbol "ippiMorphReconstructGetBufferSize_" has been deprecated as of IPP 7.1.

ippreconstruct.cpp:37:5: error: ‘IppStatus ippiMorphReconstructGetBufferSize_8u_C1(IppiSize, int*)’ is deprecated (declared at ../../../../../../toolbox/shared/ipp/include/glnxa64/ippcv.h:1545): is deprecated. This function is obsolete and will be removed in one of the future IPP releases. Use the following link for details: http://software.intel.com/en-us/articles/intel-ipp-71-deprecated-features/ [-Werror=deprecated-declarations]

If you look at the IPP 8.1 documentation:

https://software.intel.com/sites/default/files/managed/13/8d/ippi.pdf

the example for ippiMorphReconstructDilate still makes use of ippiMorphReconstructGetBufferSize to determine the size of the buffer that is still a required input argument of the  ippiMorphReconstructDilate interface.

My questions are:

My question(s) are:

1) Why is ippiMorphReconstructGetBufferSize deprecated, and was

MorphReconstructDilate also intended to be put on deprecation?

2) If MorphReconstructDilate is not supposed to be deprecated, how am I supposed to allocate the argument "pBuf", the second to last input argument:

IPPAPI(IppStatus, ippiMorphReconstructDilate_8u_C1IR, (const Ipp8u* pSrc,int srcStep,Ipp8u* pSrcDst, int srcDstStep, IppiSize roiSize, Ipp8u *pBuf,IppiNorm norm))

3) Is there another routine that I'm supposed to use to allocate the buffer required by ippiMorphReconstructDilate? Is there an example where I can see this being done?

 

 

0 Kudos
4 Replies
Igor_A_Intel
Employee
505 Views

Hi Alex,

please use IPPAPI(IppStatus, ippiMorphReconstructGetBufferSize,(IppiSize roiSize, IppDataType dataType, int numChannels, int *pBufSize))
function that replaces the deprecated ones for different data types.

before these functions removal the example in the manual will be updated accordingly.

Regards, Igor

0 Kudos
Taylor__Alex
Beginner
505 Views

Igor,

Thank you very much for your help. I'm still confused though. When I look at the headers that come with IPP 8.1, the API you are describing does not appear to be defined:

grep ippiMorphReconstructGetBufferSize *.h

ippcv.h://  Name: ippiMorphReconstructGetBufferSize_8u_C1,    ippiMorphReconstructGetBufferSize_16u_C1
ippcv.h://        ippiMorphReconstructGetBufferSize_32f_C1,   ippiMorphReconstructGetBufferSize_64f_C1
ippcv.h:IPPAPI(IppStatus, ippiMorphReconstructGetBufferSize_8u_C1, (IppiSize roiSize, int *pSize))
ippcv.h:IPPAPI(IppStatus, ippiMorphReconstructGetBufferSize_16u_C1,(IppiSize roiSize, int *pSize))
ippcv.h:IPPAPI(IppStatus, ippiMorphReconstructGetBufferSize_32f_C1,(IppiSize roiSize, int *pSize))
ippcv.h:IPPAPI(IppStatus, ippiMorphReconstructGetBufferSize_64f_C1,(IppiSize roiSize, int *pSize))

Am I missing something, or did Intel deprecate the type specific APIs (e.g. ippiMorphReconstructGetBufferSize_8u_C1) without providing the replacement API  IPPAPI(IppStatus, ippiMorphReconstructGetBufferSize,(IppiSize roiSize, IppDataType dataType, int numChannels, int *pBufSize)) that you recommended?

 

0 Kudos
Igor_A_Intel
Employee
505 Views

Sorry Alex,

I took a look into headers from trunk - yes, you are right, this function is not available in the public release yet, it will be available in the next major IPP release (guess it will be 8.2 somewhere in the Autumn). So please use deprecated one for a while - the substitution will be available soon.

regards, Igor

0 Kudos
Taylor__Alex
Beginner
505 Views

Thanks Igor, I appreciate the help.

0 Kudos
Reply