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

What dll should be deployed for application software?

Nick_T_1
Beginner
270 Views

The application software we developed is installed on customers' machine. Our software uses IPP for some image processing routines. Now we got error message when the application software is started, which says no dll found. If we copy all IPP dlls to the executable folder of the application software, the error is gone, but we don't really want to do so because of the large size of all dlls. So we are wondering how do we know the minimun number of dlls that are necessary to put on the machine on which our application software is installed? And who are these IPP dlls exactly?

Right now, we are only using functions from ippi.h; And 3 dlls are already put in the application software folder: ippcore-7.0.dll, ippi-7.0.dll, and libiomp5md.dll, they are at the same location as the executable.

I apologize that my previous thread is similar to this. I guess I understand more when I keep digging.

Any thoughts, comments are highly appreciated.--Nick

PS:

I am also pasting our IPP code here:

void ResizeImage(char * pSource, long srcWidth, long srcHeight, char * pDestination, long dstWidth, long dstHeight)
{
    IppiSize size  = {srcWidth, srcHeight};
    IppiRect srect = {0, 0, srcWidth, srcHeight};
    IppiRect drect = {0, 0, dstWidth, dstHeight};

    double Xscale = static_cast<double>(dstWidth) / static_cast<double>(srcWidth);
    double Yscale = static_cast<double>(dstHeight) / static_cast<double>(srcHeight);

    int nChannel  = 1;    

    int INTERPOLATIONMODE = IPPI_INTER_CUBIC2P_CATMULLROM;

     /* interploation options:
09           IPPI_INTER_NN||IPPI_INTER_LINEAR|| IPPI_INTER_CUBIC
10           IPPI_INTER_CUBIC2P_BSPLINE||IPPI_INTER_CUBIC2P_CATMULLROM||PPI_INTER_CUBIC2P_B05C03
11           IPPI_INTER_SUPER||IPPI_INTER_LANCZOS */
    char * buf;
    int bufSize;

    // calculation of work buffer size
    ippiResizeGetBufSize( srect, drect, nChannel, INTERPOLATIONMODE, &bufSize );
    //ippiResizeGetBufSize( srect, drect, 1, IPPI_INTER_CUBIC2P_CATMULLROM, &bufsize );

    // memory allocate
     buf = (char*)malloc( bufSize );

    IppStatus status = ippStsErr;

    // function call
    if( NULL != buf )
        status = ippiResizeSqrPixel_16u_C1R((Ipp16u*)pSource, size, srcWidth*sizeof(Ipp16u), srect, (Ipp16u*)pDestination, dstWidth*sizeof(Ipp16u), drect, Xscale, Yscale, 0, 0, INTERPOLATIONMODE, (Ipp8u*)buf );
    
}

0 Kudos
2 Replies
Gennady_F_Intel
Moderator
270 Views
In that case you can try to create your owner custom dll which would contains only needed functions from IPP. The size of custom dll would be very small and you can easy to distribute this dll with your application. You can find the example how to create the custom dll into IPP examples and / or IPP Articles.
0 Kudos
SergeyKostrov
Valued Contributor II
270 Views
>>...we are wondering how do we know the minimun number of dlls that are necessary to put on the machine on which our application >>software is installed? And who are these IPP dlls exactly? >>... >>...when the application software is started, which says no dll found... Was it an error message "No DLL found for waterfall procedure" or something else? If Yes, please take a look at a similar thread: Forum topic: Waterfall issue again on a deployed machine Forum web-link: http://software.intel.com/en-us/forums/topic/339742
0 Kudos
Reply