PREVIOUSLY: Some codec choices
If you don't have the fat pipe required to employ the more bandwidth-hungry VoIP codecs, all is not lost.
VoIP calls travelling over the open internet, such as those from consumer VoIP providers such as Australia's engin and MyNetFone, tend to use highly compressed, low bandwidth codecs to compensate for customer bandwidth limitations and the unreliability of the internet. VoIP calls travelling over a Virtual Private Network can also benefit from the use of a low bandwidth codec.
Some fancy mathematics comes into play as VoIP streams are compressed below 16 kbps, but they come at the expense of call quality, with the following codecs offering some insight into the tricks needed to deliver voice in low-bandwidth environments.
- ITU G.726 & ITU G.727: 16, 24, 32 or 40 kbps
Uses an 8 kHz sampling frequency and employs Adaptive Differential Pulse Code Modulation to encode PCM values as differences between the current and the previous value. While the more bandwidth intensive codecs use 8-bit PCM sampling, G.726 reduces this to 2, 3, 4 or 5-bit. It is the standard codec used in DECT wireless phone systems. G.726 replaced G.721 (32 kbps) and G.723 (24 and 40 kbps). G.727 offers the same bit rates as G.726 but is optimised for Packet Circuit Multiplex Equipment.
- ITU G.728: 16 kbps
Uses an 8 kHz sampling frequency and employs a Low-Delay version of Code Excited Linear Prediction - an algorithm designed specifically for low bit rate speech compression. It is favoured for some video, cellular and satellite applications.
- Internet Low Bitrate Codec (iLBC): 13.33 or 15.2 kbps
Uses an 8 kHz sampling frequency and employs Block-Independent Linear-Predictive Coding. iLBC is free to use but not open source.
- ITU G.729: 8 kbps
Uses an 8 kHz sampling frequency and employs Conjugate Structure Algebraic-Code Excited Linear Prediction to squeeze a VoIP call into 8 kbps. G.729 is the codec of choice for consumer VoIP providers running over the open internet, as Australia's engin and MyNetFone. G.729A is compatible with G.729 but requires less computation, while G.729B uses Discontinuous Transmission (DTX), Voice Activity Detection (VAD) and Comfort Noise Generation (CNG) to reduce bandwidth usage during silence in a call.
- ITU G.723.1: 5.3/6.3 kbps
Uses an 8 kHz sampling frequency and employs Algebraic Code Excited Linear Prediction to achieve 5.3 kbps or Multipulse LPC with Maximum Likelihood Quantization to achieve 6.3 kbps.