[Speex-dev] High CPU usage
Mark Schilling
mark_schilling at gmx.de
Wed Jun 13 11:41:07 PDT 2012
Hi Tanmay,
>Does compiling speex API with DISABLE_FLOAT_API and DISABLE_VBR solve the
>problem?
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-assists-in-ia-32-flush-to-zero-ftz-and-denormals-are-zero-daz/
__m128 state[32];
__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.
Mark
--
NEU: FreePhone 3-fach-Flat mit kostenlosem Smartphone!
Jetzt informieren: http://mobile.1und1.de/?ac=OM.PW.PW003K20328T7073a
More information about the Speex-dev
mailing list