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

opencv and IPP 5.3.3.082

rohit_patnaik
Beginner
1,106 Views

I am evaluating IPP 5.3.3.082 in conjunction with opencv 1.0. I was using opencv before and I have installed IPP now. Iwrote asmall Cprogram for opencv based on some stuff I saw on the web and I tried to check if IPP is getting loaded but it appears that it is not. The print out shows I am loading the opencv libraries but no IPP libraries. I found out that the problem might be related to a old cxswitcher.cpp that was not updated for 5.3 and I got the new one but it did not make any difference. Here is the code snippet I am using - any ideas?

const char* opencv_info= 0;
const char* plugin_info= 0;
cvGetModuleInfo(0, &opencv_info, &plugin_info);

if (plugin_info != 0 && strstr(plugin_info,"ipp")!=0)
printf("IPP is used plugin_info=%s opencv=%s ", plugin_info, opencv_info);
else
printf("Opencv is used %s ", opencv_info);

How can I resolve my problem?

0 Kudos
14 Replies
Vladimir_Dudnik
Employee
1,106 Views

Hello,

this is known issue, please take a look on IPP technical support page for workaround

OpenCV does not detect Intel IPP 5.3

Regards,
Vladimir

0 Kudos
rohit_patnaik
Beginner
1,106 Views

Hi Vladmir,

I already tried that workaround. I am using Windows Visual C++ 2003 and I already downloaded the file cxswitcher.cpp (from a windows link) and recompiled the opencv libraries. Unless there is more that, itdid not help. Any other ideas? Thanks

Rohit

0 Kudos
Vladimir_Dudnik
Employee
1,106 Views

Hi Rohit,

this work for other customers. Could you pleasego throughdebugger to see what is the reason in your case?

Regards,
Vladimir

0 Kudos
mulla7
Beginner
1,106 Views
Hello Vladimir
I seem to have a similar problem as rohit.
May I ask you where to debug in the OpenCV Code for the IPP loading stuff?
Thank you

Regards
Andreas
0 Kudos
mulla7
Beginner
1,106 Views
I found the problem, there were simply laying some old OpenCV libs around and I didn't adjust all the paths properly. Sorry for the inconvenience.

But, whatever the reason is, there is no performance improvement.

cvGetModuleInfo reports:
cxcore: 1.0.0, cv: 1.0.0
ippcv-5.3.dll, ippi-5.3.dll, ipps-5.3.dll, ippvm-5.3.dll, ippcc-5.3.dll

I use cvMinMaxLoc, cvThreshold and cvMorphologyEx (Closing).

Is there anything I have to mind? I use VS2005 with the original compiler and linker
0 Kudos
hunta_kirua
Beginner
1,106 Views
Hello mulla7,

I have the same problem : ipp is not detected (I use the fixed cxswitcher.cpp, Path is ok and directories under vs2005 are updated)... How do you exactly do to fix the problem ?

Thanks by advance.
0 Kudos
mulla7
Beginner
1,106 Views
Hi Hunta Kirua
I used the fixed cxswitcher.cpp to recompile OpenCV, but I missed to replace the existing OpenCV DLLs in the windows/system32 folder.
After replacing these DLLs, OpenCV detected the IPP modules.

But unfortunately I got no noticeable speedup...

Regards
Andreas
0 Kudos
hunta_kirua
Beginner
1,106 Views
Thanks Andreas. It's ok now !

Best regards,
Hunta
0 Kudos
drjones
Beginner
1,106 Views

I'm having the same problems (IPP evaluation 5.3 Update 4 for Intel IA 32. Intel Core 2 Duo processor. Windows XP. IDE: MS Visual Studio .NET 2008 Standard Edition).

I exchanged the cxswitcher.cpp by a newer one (as supposed/proposed in another thread), rebuild the OpenCV library and still the following code indicates, that no IPP support is available:

//find out, if IPP is used
int numOptimizedFuncCalls = cvUseOptimized(1);
char buffer[100];
sprintf(buffer, "numOptimizedFuncCalls = %d", numOptimizedFuncCalls);
OutputDebugString(buffer);
const char* plugin_info = 0;
cvGetModuleInfo(0,0,&plugin_info);
bool ipp_is_used = plugin_info != 0 && strstr(plugin_info,"ipp") != 0;
sprintf(buffer, "is IPP used: %d", ipp_is_used);
OutputDebugString(buffer);

Output:

numOptimizedFuncCalls = 0

is IPP used: 0

In the system32 folder there are no OpenCV libraries. I've got the OpenCV bin directory as well as the IPP bin directory in my PATH system variable.

Debugging of cxcoretest (part of OpenCV build project) told, that in cvUseOptimized the LoadLibrary call doesn't return a valid handle - even for the ippcv-5.3.dll, which is definitely in the IPP bin directory.

Is there any #define/preprocessor definition I have to add in order to get IPP support?

0 Kudos
drjones
Beginner
1,106 Views

I reinstalled the IPP evaluation version 5.3.4.087 and now debugging cxcoretest project/application of OpenCV shows, that the IPP *5.3.dlls are loaded at runtime correctly.

Nevertheless my other application (which consists of several OpenCV calls like cvConvertScale, cvResize, cvFilter2D, cvErode, cvFindContours etc.) doesn't load IPP dlls.

My project builds a dll, which is embedded in another host application. Is there anything I have to do for using IPP functions instead of simple OpenCV functions in this case (I still want to call the functions using the OpenCV syntax and OpenCV shall internally choose the IPP implementation)?

0 Kudos
drjones
Beginner
1,106 Views

Ok, the problem was that the host application couldn't find the IPP dlls (although the IPP bin directory is part of my PATH system variable). I had to start the runtime installer in the IPP installation directory IntelIPP5.3.4.087ia32toolsruntimeinstaller, which copies the dlls into the system32 folder. Now my host application uses the IPP dlls and the output of the previously mentioned code snippet is:

numOptimizedFuncCalls = 384

is IPP used: 1

Hope that helps others as well... (though I still don't understand, why the dlls couldn't be found in first place...)

0 Kudos
drjones
Beginner
1,106 Views

Ah, I've forgotten: my host application had some OpenCV dlls in its directory and after rebuilding OpenCV I had forgotten to replace them - that's why the host exe used the old OpenCV dlls which didn't know anything about the version "5.3"... so no IPP was used...

0 Kudos
zhongliangz
Beginner
1,106 Views
Quoting - vdudnik

Hello,

this is known issue, please take a look on IPP technical support page for workaround

OpenCV does not detect Intel IPP 5.3

Regards,
Vladimir

hello,
how can i get IPP 5.3.3.082? now i need something about ipp**.dll series. thanks!
Micheal.

0 Kudos
Vladimir_Dudnik
Employee
1,106 Views
I think you just need a regular DLLs from IPP 5.3 package you have. It might be 5.3 update 3 (5.3.3.082) or it might be IPP 5.3 update 4 or it might be IPP 6.0 or whatever.
Vladimir

0 Kudos
Reply