Hi, Is there any comparison made between Speex and iLBC free codec? How would they compare in terms of quality, bitrate and CPU utilization? Thanks, Joe -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.xiph.org/pipermail/speex-dev/attachments/20050610/b79a3f46/attachment.htm
Hi, First, you can see a comparison of the codec features at http://www.speex.org/comparison.html As for quality/bitrate, the first thing is that Speex supports a lot more settings (from 4 to 42 kbps) and does wideband (16 kHz sampling), which iLBC doesn't do. I've only tested iLBC once, but I've found that Speex has a better quality for the same bit-rate (or lower bit-rate for the same quality). This is mainly due to the fact that iLBC is designed to encode frames independently (more on this below). Even from their site, you see that even at 13.3 or 15 kbps (they don't specify which), they have the same quality as G.729A at 8 kbps. Now, their point is that since each frame is independent, the codec is more robust to packet losses which is good for VoIP. However, in my opinion (and that of others) is that the price in terms of bit-rate is too high and you might as well just add redundancy by transmitting some packets more than once (as proposed in http://www.icassp2004.com/Papers/viewpapers.asp?papernum=3280 ). For instance, if it goes to 20% packet loss, then transmitting 8 kbps Speex packets twice (4% effective loss) will be much better than iLBC at 15 kbps. Regarding CPU utilization, I have no idea what iLBC requires. For a PC I don't think it actually matters and for embedded systems, then you have to pay for a fixed-point iLBC license (Speex includes the fixed-point in the same code). Jean-Marc P.S. Of course you can say I'm biased since I'm the author of Speex, but since you posted to speex-dev, you probably expected that anyway. Le vendredi 10 juin 2005 ? 09:35 +0800, Joe T a ?crit :> Hi, > > Is there any comparison made between Speex and iLBC free codec? > How would they compare in terms of quality, bitrate and CPU > utilization? > > Thanks, > Joe > > _______________________________________________ > Speex-dev mailing list > Speex-dev@xiph.org > http://lists.xiph.org/mailman/listinfo/speex-dev-- Jean-Marc Valin <Jean-Marc.Valin@USherbrooke.ca> Universit? de Sherbrooke
Dear Jean-Marc, Thanks and appreciate the explanation. I am asking this because it is believed that Skype is using some iLBC and iSAC since GlobalIPSound listed Skype as a partner. Thanks, Joe -----Original Message----- From: Jean-Marc Valin [mailto:Jean-Marc.Valin@USherbrooke.ca] Sent: Friday, June 10, 2005 12:24 PM To: joe_anny@yahoo.com.sg Cc: speex-dev@xiph.org Subject: Re: [Speex-dev] Comparison Hi, First, you can see a comparison of the codec features at http://www.speex.org/comparison.html As for quality/bitrate, the first thing is that Speex supports a lot more settings (from 4 to 42 kbps) and does wideband (16 kHz sampling), which iLBC doesn't do. I've only tested iLBC once, but I've found that Speex has a better quality for the same bit-rate (or lower bit-rate for the same quality). This is mainly due to the fact that iLBC is designed to encode frames independently (more on this below). Even from their site, you see that even at 13.3 or 15 kbps (they don't specify which), they have the same quality as G.729A at 8 kbps. Now, their point is that since each frame is independent, the codec is more robust to packet losses which is good for VoIP. However, in my opinion (and that of others) is that the price in terms of bit-rate is too high and you might as well just add redundancy by transmitting some packets more than once (as proposed in http://www.icassp2004.com/Papers/viewpapers.asp?papernum=3280 ). For instance, if it goes to 20% packet loss, then transmitting 8 kbps Speex packets twice (4% effective loss) will be much better than iLBC at 15 kbps. Regarding CPU utilization, I have no idea what iLBC requires. For a PC I don't think it actually matters and for embedded systems, then you have to pay for a fixed-point iLBC license (Speex includes the fixed-point in the same code). Jean-Marc P.S. Of course you can say I'm biased since I'm the author of Speex, but since you posted to speex-dev, you probably expected that anyway. Le vendredi 10 juin 2005 ? 09:35 +0800, Joe T a ?crit :> Hi, > > Is there any comparison made between Speex and iLBC free codec? > How would they compare in terms of quality, bitrate and CPU > utilization? > > Thanks, > Joe > > _______________________________________________ > Speex-dev mailing list > Speex-dev@xiph.org > http://lists.xiph.org/mailman/listinfo/speex-dev-- Jean-Marc Valin <Jean-Marc.Valin@USherbrooke.ca> Universit? de Sherbrooke Send instant messages to your online friends http://asia.messenger.yahoo.com
I'm not an expert either, but I see people choosing iLBC over speex all the time with asterisk; partly it's because they have more market share in hardphones, and partly it's because of marketing and such. (another reason is that iLBC source is included in asterisk, and speex is only compiled in if you have the speex development stuff on your machine when you compile asterisk [i.e. the speex-devel package]). Some comments below: On Jun 10, 2005, at 12:24 AM, Jean-Marc Valin wrote:> Hi, > > First, you can see a comparison of the codec features at > http://www.speex.org/comparison.html > > As for quality/bitrate, the first thing is that Speex supports a lot > more settings (from 4 to 42 kbps) and does wideband (16 kHz sampling),There's a wideband version of iLBC, but it's not free(as in beer). Skype uses this. (Actually I'm not 100% sure it's called speex, but GIPS makes it, and it's probably closely related).> which iLBC doesn't do. I've only tested iLBC once, but I've found that > Speex has a better quality for the same bit-rate (or lower bit-rate > for > the same quality). This is mainly due to the fact that iLBC is > designed > to encode frames independently (more on this below). Even from their > site, you see that even at 13.3 or 15 kbps (they don't specify which), > they have the same quality as G.729A at 8 kbps.The two different bitrates are just the difference between 30ms and 20ms frame sizes; you use a bit more bps with the 20ms frames.> > Now, their point is that since each frame is independent, the codec is > more robust to packet losses which is good for VoIP. However, in my > opinion (and that of others) is that the price in terms of bit-rate is > too high and you might as well just add redundancy by transmitting > some > packets more than once (as proposed in > http://www.icassp2004.com/Papers/viewpapers.asp?papernum=3280 ). For > instance, if it goes to 20% packet loss, then transmitting 8 kbps > Speex > packets twice (4% effective loss) will be much better than iLBC at 15 > kbps.I think you'd have to look at how Speex (using PLC) compares to iLBC (using PLC) to make an accurate comparison here..> Regarding CPU utilization, I have no idea what iLBC requires. For a > PC I > don't think it actually matters and for embedded systems, then you > have > to pay for a fixed-point iLBC license (Speex includes the fixed- > point in > the same code).since there's so many speex options, it depends on the options you choose. Asterisk presently has poor defaults, and most people link against speex-1.0 code. If you use the latest speex code, and use SSE optimizations, and complexity 2, you get very comparably performance from speex as compared to iLBC. The iLBC reference code is not well optimized, though. -SteveK