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

Replacement for ippiRotate_32f_C1R

ChristinaLabay
Beginner
1,262 Views

We have recently updated our ippi version, and need to replace ippiRotate_32f_C1R. I have found this post, https://community.intel.com/t5/Intel-Integrated-Performance/How-to-replace-ipp-functions-ippiRotate-32f-C1R-and/td-p/1082539, but the links listed are no longer valid. From my understanding, we will need to use a combination of ippiWarpAffine functions and the ippiRotateTranslate functions. I found a sample document for ippiRotate_8u_C3R (attached), and attempted to implement a solution from that, but we are getting different results than our previous version.

This is what we have written as our replacement:

    IppStatus status;
    IppiWarpSpec* pSpec = 0;
    double coeffs[2][3] = {0};
    int specSize = 0, initSize = 0, bufSize = 0;
    Ipp32f* pBuffer  = 0;
    IppiPoint dstOffset = {00};
    Ipp64f pBorderValue[1] = {0};

    status = ippiGetRotateTransform (angle, xShift, yShift, (double(*)[3])coeffs);
    if(status != ippStsNoErr)
      return status;
    status = ippiWarpAffineGetSize(srcSize, dstSize, ipp32f, coeffs, ippLinear, ippWarpForward, ippBorderRepl, &specSize, &initSize);
    if(status != ippStsNoErr)
      return status;
    pSpec = (IppiWarpSpec*)ippsMalloc_32f(specSize);
    status = ippiWarpAffineLinearInit(srcSize, dstSize, ipp32f, coeffs, ippWarpForward, 1, ippBorderRepl, pBorderValue, 0, pSpec);
    if(status != ippStsNoErr)
    {
      ippsFree(pSpec);
      return status;
    }

    status = ippiWarpGetBufferSize(pSpec, dstSize, &bufSize);
    if(status != ippStsNoErr)
      return status;
    pBuffer = ippsMalloc_32f(bufSize);

    status = ippiWarpAffineLinear_32f_C1R(pSrc, srcStep, pDst, dstStep, dstOffset, dstSize, pSpec, pBuffer);

    ippsFree(pSpec);
    ippsFree(pBuffer);
0 Kudos
3 Replies
ArpitaP_Intel
Moderator
1,241 Views

Hi ChristinaLabay,


Thanks for reaching out to us.


We are working on it internally. We will get back to you.


Regards,

Arpita


0 Kudos
Abhinav_S_Intel
Moderator
1,218 Views

Hi Christina,

For ippiRotate_32f_C1R replacement, I am attaching a sample file Rotate.c to help you understand the usage of APIs.

We have a reference manual on how to substitute deprecated IPP functions:
https://software.intel.com/content/www/us/en/develop/documentation/ipp-dev-reference/top/volume-2-image-processing/appendix-c-removed-functions-for-image-and-video-processing.html

Let us know about your results.

-

Abhinav

 

0 Kudos
AbhishekD_Intel
Moderator
1,109 Views

Hi,


Hope the provided solution worked for you. We will no longer monitor this thread. If you require any additional assistance from Intel, please start a new thread. 

Any further interaction in this thread will be considered community only.


Warm Regards,

Abhishek


0 Kudos
Reply