/ / Existuje nejaká výhoda v používaní 64bitovej verzie openCV + Emgu namiesto 32bit? - c #, opencv, 32bit-64bit, výkon, emgucv

Existuje výkonnosť výhodou pri použití 64bitovej verzie openCV + Emgu namiesto 32bit? - c #, opencv, 32bit-64bit, výkon, emgucv

Vyvíjam aplikáciu, ktorá spracováva snímky zachytené v reálnom čase fotoaparátom typu Point Grey (http://www.ptgrey.com/). Point Grey SDK je .net wrapper a môže byť buď 32bit alebo 64bit.

Potom spracovávam zachytené obrázky, ja som pomocou obalu pre openCV s názvom Emgu CV (http://www.emgu.com/), ktorý prichádza v 32bitových aj 64bitových príchutiach.

Teraz, keď som bol na Vista64, išiel som pre 64bitové verzie FlyCapture (SDK bodového sivého) a Emgu CV (ktorý obsahuje openCV vo svojej inštalácii) a dúfal, že maximalizuje výkon.

Nedávno som chcel volať mojeFlyCapture + Emgu DLL kód z XNA, ktorý bohužiaľ existuje len v 32bit, a ja si uvedomujem, že možno budem musieť preinštalovať všetky tieto komponenty v 32bit ako som don "t naozaj chcete ísť cez IPC, remoting, atď

Okrem zrejmého limitu pre pamäťový priestor, ktorý je vlastný pre 32bit, je tu aj strata výkonu, ktorú by som mal očakávať? Aké by to bolo dramatické a prečo?

Ďakujeme vopred za akúkoľvek radu alebo vysvetlenie.

odpovede:

1 pre odpoveď č. 1

Skúste to a uvidíte!

Môžem premýšľať o dôvodoch, prečo by to mohlo ísť v oboch smeroch (nie je veľmi oboznámený so softvérom, ktorý "používate podrobne).

Vaše ukazovatele sú polovične veľké v 32bitových procesoch,tak, aby sa znížil tlak pamäte. 32bitový softvér bol dlhší a mohol byť lepšie optimalizovaný. Na druhej strane, spracovanie obrazu má tendenciu dobre reagovať na väčšie 64bitové procesy v registroch, ktoré poskytujú.

Podozril by som, že výkon bude v tom istom plesovom parku, možno plus alebo mínus 20%. Ale nikdy si nie ste istí. Ak dostanete poradie rozdielov typu veľkosti, potom by som sa potom bála.


6 pre odpoveď č. 2

Po mnohých testoch sa ukázalo, že x86 openCV + emgu combo vykonáva 1,408 krát pomalšie ako x64 pri teste s použitím postupnosti 14 rôznych typických metód openCV (vyhladzovanie, kopírovanie obrázkov, konverzia obrazového formátu atď.)


1 pre odpoveď č. 3

Máme simimair situáciu (PT šedá kamera s & emgu openCV wrapper pre našu aplikáciu C #).

Zistilo sa tiež, že emgu je ešte rýchlejšie pod x64(vyhrajte 7 v porovnaní s výhrou XP x86). Najprv som si myslel, že x64 bol pomalší na zvyšok mojej aplikácie, ale to bolo v režime ladenia. V režime uvoľnenia je výkon porovnateľný. Vyzerá to, že verzia ladenia pod VS2010 (x64) je pomalšia ako verzia VS2008 (x86).