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.
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.