<br><br><div><span class="gmail_quote">On 4/16/06, <b class="gmail_sendername">Tzafrir Cohen</b> <<a href="mailto:tzafrir.cohen@xorcom.com">tzafrir.cohen@xorcom.com</a>> wrote:</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
><br>> Questions:<br>><br>> 1) Does the iLBC codec code in Asterisk perform Packet Loss<br>> Concealment (PLC)? If so, is it being done in the most optimal way?<br>> Is it just in IAX2 or in SIP as well? (there was an answer on this
<br>> by Zoa, but it still isn't clear.)<br>><br>> 2) Are the higher bitrate patches I've seen scurrying around the SVN<br>> branch mailing list currently in TRUNK or still in "experimental test<br>> phase"? (see oej's "test-this-branch", and bug #5084, which really
<br>> just seems to support G.722 passthrough, and is not a codec<br>> implementation)<br>><br>> 3) Is this all a moot point until more end devices support iLBC and<br>> better PLC? (Hint: I don't think so, since I'd love to terminate all
<br>> my LD minutes to an Asterisk server with high-bitrate,<br>> loss-concealing iLBC instead of just using G.711 like I do today.<br>> Bitrates are not my problem; sound quality is my problem, but if I<br>> get better than 64kbps for better sound quality then that's a bonus.)
<br><br>4-6. Basically The above questions, with s/iLBC/speex/ .</blockquote><div><br>My basic understanding of questions 4 and 6 is - 4) pretty darn good, and 6, well, there are a ton of speex enabled softphones out there, but few are doing things "right". Nearly every [expletive deleted] iaxclient based softphone bundles it's own obsolete version of speex, and none to my knowledge support wideband.... according to the message below libspeex should really be optimized on a per processor type and quality settings basis....
<br></div><br>---------- Forwarded message ----------<br><span class="gmail_quote">From: <b class="gmail_sendername">Jean-Marc Valin</b> <<a href="mailto:Jean-Marc.Valin@usherbrooke.ca">Jean-Marc.Valin@usherbrooke.ca</a>
><br>Date: Apr 16, 2006 4:57 AM<br>Subject: Re: speex performance & asterisk<br>To: Mike Taht <<a href="mailto:mike.taht@gmail.com">mike.taht@gmail.com</a>><br><br></span>Hi Mike,<br><br>I've heard some complaints about the performance of Speex and I think
<br>the main reason is simply sub-optimal compiling/old version. First, I<br>strongly recommend using the unstable branch (1.1.x), which is much<br>better and faster than 1.0.x. The most important thing to do is to<br>configure with --enable-sse and you'll get a big improvement right
<br>there. Also, I recommend the following gcc options:<br>-O3, -ffast-math, -fprofile-generate (first compilation) with<br>-fprofile-use (to get final binary), and possibly (YMMV)<br>-ftree-vectorize.<br><br>Have a look at slide 16 of
<a href="http://people.xiph.org/~jm/LCA_Speex.pdf">http://people.xiph.org/~jm/LCA_Speex.pdf</a> to<br>see what kind of performance to expect. To give you an idea, at<br>complexity 1 (almost as good quality as the default of 2), it's possible
<br>to encode at 8kbps 120x faster than real-time (i.e. 0.8% CPU) on a 2.1<br>GHz Pentium-M. Given the extra 8 registers it has, the Opteron, should<br>be really fast at encoding/decoding Speex.<br><br></div><br clear="all">
<br>-- <br>Mike Taht<br>PostCards From the Bleeding Edge<br><a href="http://the-edge.blogspot.com">http://the-edge.blogspot.com</a>