[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