Problems with SSE2 in OpenCV
When I tried to use some methods from OpenCV library (for example CvResize()) in my MS Visual Studio 2005 project I encountered with errors in cxtypes.h header file near
#if CV_SSE2 __m128d t = _mm_load_sd( &value ); int i = _mm_cvtsd_si32(t); return i - _mm_movemask_pd(_mm_cmplt_sd(t,_mm_cvtsi32_sd(t,i))); #else ....
These errors were related with SSE2. The problem is that my AMD Sempron 2200+ family 6 (x86 family 6 model 8 ) processor do not support SSE2 instructions. SSE – Streaming SIMD Extensions 2 are extends on MMX instructions to operate on special registers to increase computational speed in some cases.
To fix these problems you need to set CV_SSE2 variable to 0 in cxcore’s cxtypes.h (near 65 line).
For example like here:
// #if defined WIN32 && (!defined WIN64 || defined EM64T) && // (_MSC_VER >= 1400 || defined CV_ICC) // || (defined __SSE2__ && defined __GNUC__ && __GNUC__ >= 4) // #include // #define CV_SSE2 1 // #else #define CV_SSE2 0 // #endif
Tuesday, January 6th, 2009