[Asterisk-biz] $19.95/mo unlimited US IAX termination

Steve Kann stevek at stevek.com
Tue Apr 12 20:09:25 MST 2005


On Apr 12, 2005, at 1:03 AM, Michael Giagnocavo wrote:

>> On Fri, 2005-04-08 at 09:33 -0500, Brian West wrote:
>>> Speex is a CPU whore.  Even more so than g729.
>>
>> How much of a whore are we talking about here? Clock cycles are cheap,
>> so if I can get 7 channels of speex with a dual 900Mhz PIII (my 
>> current
>> system) I'd say it's worth the savings in bandwidth.
>>
>> FWIW, I just spoke to VoicePulse and their engineering department said
>> they will support Speex with IAX termination within 1 to 2 days.
>>
>> -lee
>
> It's about 3 times worse than G729 for encoding and just a tad bit 
> faster on
> decoding. So, from a provider's standpoint, that means reduced 
> capacity per
> machine, which in turn means higher overhead and less profit. Usually 
> when
> you work out rates, you'll get your codecs worked out too. If your 
> provider
> has to do expensive CPU work, expect to pay for it. Then again, if 
> you're
> not running tons of traffic, it might just not make enough difference 
> and
> they probably play the average (considering some use ULAW and some GSM,
> which could balance out your Speex usage).
>
> Just for comparison, here's a complete "show translation" table:
>
>          Translation times between formats (in milliseconds)
>           Source Format (Rows) Destination Format(Columns)
>
>          g723   gsm  ulaw  alaw  g726 adpcm  slin lpc10  g729 speex  
> ilbc
>    g723     -     4     2     2     3     2     1     7    11    31    
> 18
>     gsm    12     -     2     2     3     2     1     7    11    31    
> 18
>    ulaw    12     4     -     1     3     2     1     7    11    31    
> 18
>    alaw    12     4     1     -     3     2     1     7    11    31    
> 18
>    g726    13     5     3     3     -     3     2     8    12    32    
> 19
>   adpcm    12     4     2     2     3     -     1     7    11    31    
> 18
>    slin    11     3     1     1     2     1     -     6    10    30    
> 17
>   lpc10    13     5     3     3     4     3     2     -    12    32    
> 19
>    g729    13     5     3     3     4     3     2     8     -    32    
> 19
>   speex    12     4     2     2     3     2     1     7    11     -    
> 18
>    ilbc    14     6     4     4     5     4     3     9    13    33    
>  -
>
> Speex is definitely the worst performer here, as far as CPU time goes.
> (These numbers from a P4 2.4GHz, using Digium's G729 P4 codec, and 
> Intel's
> G723, 5.3 rate, optimized for P4, and Speex 1.0.4-1, Asterisk
> CVS-HEAD-04/11/05-19:24:17).
>

Try (a) compiling speex with --enable-sse, and (b)  set complexity 2 or 
3, and use =8000 in codecs.conf, and it will probably be comparable to 
g729 in encode, and tons faster in decode.  On P3-500, with complexity 
2 and abr 8000 bps, I get 42ms for speex encode, and 9ms for decode, 
where iLBC is 62/11, respectively, and I don't have --enable-sse for my 
build.  (I'm using Redhat 8 on this box, and the old gcc on that box 
has bugs in the SSE intrinsics).

We should really change the defaults in codecs.conf, and think about 
bunding an optimized speex with asterisk, because it gets a bad rap 
because of these things.

-SteveK





More information about the asterisk-biz mailing list