[Speex-dev] High CPU usage
ambre.tanmay at gmail.com
Fri Aug 3 06:02:56 PDT 2012
> Hi Tanmay,
> >Does compiling speex API with DISABLE_FLOAT_API and DISABLE_VBR solve the
> I remember that this fixed the problem. But at that time I also needed VBR so
this was not an option.
> As far as I know, it is related to some calculations that involve float
denormals that cause the high CPU usage.
> Today I'm still using the following code before speex_encoder_init and
erverything works great:
> // fix denormals performance issue
> // http://software.intel.com/en-us/articles/x87-and-sse-floating-point-
> __m128 state;
> __int32 temp;
> __asm fxsave state;
> memcpy(&temp, (char*)state + 24, 4);
> temp |= (1 << 11); // UNDERFLOW_EXCEPTION_MASK
> temp |= (1 << 15); // FTZ_BIT
> __asm ldmxcsr temp;
> Tested with Visual Studio 2010 on x86.
> Please let me know if it works for you too.
Your solution worked very well.
I tested it at 8Khz 1 channel input.
More information about the Speex-dev