views:

95

answers:

3

Hello,

I am developing an application that processes images captured in real time by a Point Grey camera (http://www.ptgrey.com/). The Point Grey SDK is a .net wrapper and can be either 32bit or 64bit.

Then to process the captured images, I'm using a wrapper for openCV called Emgu CV (http://www.emgu.com/) that comes in both 32bit or 64bit flavors as well.

Now, being on Vista64 I went for the 64bit versions of FlyCapture (Point Grey's SDK) and Emgu CV (which includes openCV in its install) hoping to maximize performance.

Recently I've been wanting to call my FlyCapture+Emgu DLL code from XNA, which unfortunately only exists in 32bit, and I realize that I may have to reinstall all those components in 32bit as I don't really want to go through IPC, remoting, etc.

Apart from the obvious limit to memory space inherent to 32bit, is there also a performance loss I should be expecting? How dramatic would that be and why ?

Thanks in advance for any advice or explanation.

+1  A: 

Try it and see!

I can think of reasons why it could go either way (not being very familiar with the software you're using in detail).

Your pointers are half as big in 32bit processes, so that reduces memory pressure. 32bit software has been around longer and may have been better optimized. But, on the other hand, image processing tends to respond well to the larger register size 64bit processes provide.

I would suspect performance will be in the same ball park, perhaps plus or minus 20%. But you can never be sure. If you get order of magnitude type differences, I'd be getting worried then.

+3  A: 

After much testing, it turns out that the x86 openCV + emgu combo performs 1.408 times slower than x64 on a test using a sequence of 14 different typical openCV methods (smoothing, image copying, image format conversion, etc.)

Jelly Amma
A: 

Hi,

We have a simimair situation (PT Grey camera's & the emgu openCV wrapper for our C# application).

Found out too that emgu is even faster under x64 (win 7 compared with win XP x86). First I thought x64 was slower on the rest of my application, but that was in debug mode. In release mode the performance is comparable. It looks like the debug version under VS2010 (x64) is slower as the VS2008 version (x86).

rkrabbenborg