Information on Audio Codecs
Codecs are used to convert an analog voice signal to digitally encoded version. Codecs vary in the sound quality, the bandwidth required, the computational requirements, etc.
Each service, program, phone, gateway, etc typically supports several different codecs, and when talking to each other, negotiate which codec they will use.
X-lite has various audio codecs implemented. The implemented audio codecs of the X-lite 3.0 version are DVI4, G.711 uLaw/aLaw, GSM, iLBC as (narrow band audio codecs) and BV-32, BV FEC, DVI4, L16 PCM (wide band audio codecs). Eyebeam version 1.5 has a wider range of codecs available.
From the User’s Guide for X-Lite and X-PRO (p.34) the following can be said:
"When two VoIP systems are establishing a call, they negotiate an audio compression codec they are going to use. Which audio compression codec to choose depends on many factors: which audio compression codecs are installed on both systems, bandwidth limitations, desired sound quality, etc. During the negotiation, X-Lite/X-PRO offers to the remote system the first audio compression codec from the list. If the remote system rejects the audio compression codec, XLite/X-PRO offers the next one from top to bottom until they both accept the audio compression codec."
G.711A & G.711U
G.711 is a codec primarily used in telephony, released in 1972. It samples the analogue voice input signal using pulse-code modulation (PCM) at a sampling rate of 8000 samples/second.
The G.711 standard has two algorithms: the A-law (mostly used in Europe) and the U-law algorithm (used in North America and Japan).
The G.711 codec encodes the pulse-code modulation samples (sampling rate of 8000 samples/second) to logarithmic 8-bit samples. This will lead to a (8000 times 8-bit=) 64 kbit/s bitstream. Note that this is the datastream without information send in the headers of the packages, so the actual datastream will be higher. Because the sampling rate of 8000 samples/second and the encoding to 8-bit samples are intrinsic properties of the codec, the bitstream can not exceed 64 kbit/s. If one wants to increase the quality of the voice by increasing the used bandwidth (> 64 kbit/s) one has to use another codec.
Various codecs compared
At this site (deutsch however) the different transfer rates as well as the compression method are given:
Codec | Compression method | Transfer rate |
---|---|---|
G.711 | Pulse Code Modulation (PCM) | 64 Kbps |
G.726 | Adaptive Differential Pulse Code Modulation (ADPCM) | 16-40 Kbps |
G.728 | Low Delay Code Excited Linear Prediction (LD-CELP) | 16 Kbps |
G.729/G.729A | Conjugate Structure Algebraic Code Excited Linear Prediction (CD-ACELP) | 8 Kbps |
G.723.1 | Mulptiple Maximum Likehood Quantization (MPMLQ) | 6,3 Kbit/s |
G.723 | ACELP | 5,3 Kbps |
Speex Narrowband | Free patent audio compression | 4-15 Kbps |
Speex Wideband | Free patent audio compression | 10-28 Kbps |
DVI4 | ADPCM | 32 Kbps |
iLBC | Internet Low Bandwidth Codec (free) | 13,3 Kbps |
L16 PCM | PCM | 128 Kbps |
EVCR | Enhanced Variable Rate Codec | 8 Kbps |
From the maximum voice quality point of view, when enough bandwidth is available, the best quality can be obtained by using the L16 PCM codec. This L16 PCM codec is the same as the G.711 codec, however the L16 PCM codec samples to 16 bits samples instead of the 8 bits samples in the case of the G.711 codec.