[Asterisk-Users] Low Bit Rate Codecs

Steve Underwood steveu at coppice.org
Sat May 8 21:21:56 MST 2004


Craig wrote:

>Greetings all,
>
>I have searched all over and have found bits and pieces on low bit rate
>codecs, however I have found it very difficult to compare apples with
>apples.
>
>The conclusions I have come to are as follows, I would appreciate if
>anyone has some feedback, or point me to where I might find this sort of
>comparison in black and white....
>
>G723.1 
>very low bit rate
>used commercially, not avail for * 
>(I am currently using this codec in another commercial application and
>therefore it is my reference point)
>  
>
G.723.1 is pretty much obsolete. You don't see it being used on anything 
new. Most people do VoIP using RTP. The overhead of RTP is so huge, a 
small saving on the codec makes little difference. People generally go 
for G,729 now, which sounds considerably better. If you compare the 
total bit rate for G.723.1 vs G.729 in RTP G.723.1 often comes out 
considerably lower. This is because it works in 30ms blocks - you only 
have 33 RTP packet overheads per second. You can choose to pack more 
G.729 data into each RTP packet and even this up.

The patent licencing for G.723.1 is a PITA, which hasn't helped it 
achieve widespread use. There are two variants of G.723.1, with 
different bit rates. The lower bite rate (5.something kbps) sounds 
nasty. The higher rate (6.something kbps) sounds more reasonable. Using 
30ms blocks, it is not so compatible with *, which is geared to 20ms 
block processing. A lost packet causes a 30ms hole, so it tends to be 
less tolerant of packet loss than something working in smaller blocks. 
It sounds awful for anything but a single pure voice.

>G729a
>low bit rate
>slightly higher bandwidth usage than 723.1 ???
>avail as a low cost add-on for *
>better quality that g723.1 ???
>  
>
Definitely better quality than G.723.1. This is definitely the 
mainstream right now for VoIP. It is heavily patented, so free codecs 
are not possible. There are several bit rate options, but almost 
everyone uses the 8kbps variant. This sounds pretty good for its bit 
rate, though I think there have been better codecs. In telephony you 
need use something compatible with the far end, and G.729 seems to be 
the current common ground. It is rather intolerant of packet loss. Some 
people pack several G.729 blocks into a single RTP packet, to decrease 
the RTP overhead. That makes it even less tolerant of packet loss. It 
sounds awful for anything but a single pure voice.

>iLBC
>Low bit rate
>slightly higher bandwidth usage than 723.1 and 729a ???
>open source, no additional cost for *
>quality comparable to G729a
>stands up better ip paths suffering from latency and jitter ???
>  
>
iLBC has a much higher bit rate than G.729, but the voice quality is 
about the same. Why does that make it interesting? Well, it is designed 
to be much more tolerant of packet loss, and that makes it take more 
bandwidth. The design of RTP makes that take so much overhead that the 
total bit rate using iLBC isn't a huge jump from using G.729. However, 
if you use a more efficient streaming mechanism - say IAX, or an RTP 
like format with many calls packed in a packet - the total bit rate 
difference starts to look wider. There, the increase in bits is so great 
its quite likely to be the *cause* of packet loss, by clogging up the 
channel. :-)

Good old GSM 06.10 is worthy of consideration. Free of patents (at least 
ones being actively pursued). Low compute requirements. Reasonable voice 
quality. Somewhat more tolerant of background noise than the codecs 
above. Although GSM networks don't use it much these days (they mostly 
use the newer EFR and half rate codecs) it's still a very servicable 
codec. Its bit rate lies between G.729 and iLBC. On a pure voice it 
gives poorer quality than G.729. Add some background noise and it can 
beat G.729. Its tolerance of packet loss is probably similar to G.729.

Regards,
Steve




More information about the asterisk-users mailing list