Vocoders by Adaptive Digital

G.711, G.711 appendix1, & G.711 appendix2

G.711 C54x , C55x , C64x , ARM9


Waveform Coder

G.711 is, by far, the most commonly supported voice companding algorithm used in telephony. It has become the de facto standard used to ensure interoperability in voice over Internet protocol (VoIP) applications. Compression is performed on a per sample basis with each uniformly quantized sample producing an 8-bit pulse code modulated (PCM) or companded value. In addition to companding, appendices have been added to the G.711 standard that allow telephony equipment to reduce network traffic by transmitting minimal data during periods of silence and to improve playback quality by synthesizing speech during periods when data has been lost or corrupted.

Adaptive Digital’s G.711 waveform coder is a bit exact implementation of the ITU G.711 PCM standard. Adaptive Digital’s G.711 coder converts between 8-bit mu-law (American standard) or a-law (European standard) companded values and 16-bit uniformly quantized values. Although many DSPs support G.711 conversion via hardware interface to TDM highways, it is often necessary to perform G.711 conversion in software, particularly when voice and signaling applications share a common line.

Unlike the G.711 companding standard, the two G.711 appendices are not bit-exact. As a result, not all implementations perform identically.

G.711 Appendix 1 (optional) is a highly effective algorithm for concealing lost packets of G.711 data. Voice signals are synthesized during the periods when data is unavailable for real-time playback. Using Adaptive Digital’s implementation of G.711 Appendix 1, speech remains intelligible even under conditions where up to 30% of the packets are lost.

G.711 Appendix 2 (optional) provides voice activity detection (VAD), discontinuous transmission (DTX), and comfort noise generation (CNG). When combined, these algorithms provide an efficient method for reducing packet bandwidth during portions of a conversation when no voice activity is present. During silence periods, only the bits necessary to model the background noise characteristics are transmitted. Adaptive Digital’s implementation of G.711 Appendix 2 characterizes background noise in terms of both amplitude and spectral content. By transmitting this information at a very low bit rate to the receive side of the link, the synthesizer at that end is able to recreate comfort noise that mirrors both the amplitude and spectral characteristics of the original background noise. By doing so, the synthesized signal achieves a seamless, natural sound during transitions between speech and quiet portions of a conversation.

Data sheet - .pdf

FEATURES

  1. Mu-law and a-law support

  2. ITU G.711 Compliant

  3. Optional voice activity detection (VAD) with discontinuous transmission (DTX) and comfort noise generation (CNG) for bandwidth reduction

  4. Robust packet loss concealment for improved voice quality during periods of missing packets

  5. Multi-channel capable

  6. Functions are C-callable

  1. C64x xDM Compliant: ensures easy codec implementation and integration for DaVinci™ Technology

AVAILABILITY

ADT G.711 is available on the TMS320™ DSP Family

C54x™DSP, C55x™DSP, & C64x™DSP Generations

ARM7 .pdf

SPECIFICATIONS


G.711 C54x

All Memory usage is given in units of 16-bit word.

Function
MIPS
Program Memory
Data Memory
Per-Channel Data Memory
Mu-law Encode
0.4
--
--
--
Mu-law Decode
0.1
--
--
--
A-Law Encode
0.25
--
--
--
A-Law Decode
0.1
--
--
--
G.711 Common/Tables
--
136
512
--
G.711 Appendix 1
0.37
1490
49
836
VAD - G.711Appendix 2
3.2
4935
1447
434
CNG - G.711Appendix 2
1.3
877
181
210

Last update: 08/28/2003

G.711 C55x

All Memory usage is given in units of byte.

Function
MIPS
Program Memory
Data Memory
Per-Channel Data Memory
Mu-law Encode
0.14
--
--
--
Mu-law Decode
0.07
--
--
--
A-Law Encode
0.14
--
--
--
A-Law Decode
0.07
--
--
--
G.711 Common/Tables
--
260
1032
--
G.711 Appendix 1
0.27
2162
98
1680
VAD - G.711Appendix 2
2.9
10388
3464
1352
CNG - G.711Appendix 2
0.9
1942
682
568

Last update: 08/28/2003

G.711 C64x

All Memory usage is given in units of byte.

Function
MIPS
Program Memory
Data Memory
Per-Channel Data Memory
Mu-law Encode
0.05
--
--
--
Mu-law Decode
0.02
--
--
--
A-Law Encode
0.05
--
--
--
A-Law Decode
0.02
--
--
--
G.711 Common/Tables
--
1696
1024
--
G.711 Appendix 1
0.36
4990
98
1680
VAD - G.711Appendix 2
1.73
16032
1548
1628
CNG - G.711Appendix 2
0.44
3584
272
88

Last update: 02/27/2004


G.711 ARM9

All Memory usage is given in units of 16-bit word.

Function
Per Sample
Cycles
Program Memory
Data Memory
Per-Channel Data Memory
Mu-law Encode
29
--
--
--
Mu-law Decode
13
--
--
--
A-Law Encode
30
--
--
--
A-Law Decode
13
--
--
--
G.711 Common/Tables
0.23
356
1024
--
G.711 Appendix 1
1.3
22700
2886
3412
VAD - G.711Appendix 2
7.1
CNG - G.711Appendix 2
1.1

Last update: 04/23/2008

API function call summary

Standard functions

G711_Encode( … ) Performs G.711 encode function

G711_Decode( … ) Performs G.711 decode function

Appendix 1 (concealment) functions

G711ErasureInit(….) Initializes data structures for per channel packet loss concealment

G711A1Decode(….) Generates synthesized voice samples to cover missing data.

Appendix 2 (voice activity/comfort noise) functions

Vad_ADT_Init( … ) Initializes data structures for voice activity detection

Cng_ADT_Init( … ) Initializes data structures for comfort noise generation

Vad_ADT_Run( … ) Detects voice or silence and returns comfort noise parameters during silence periods

Cng_ADT_Run( … ) Generate comfort noise based upon received parameters

Integrated functions (appendix 1 and 2)

G711_ADT_initEnc( … ) Initializes data structures for appendices 1 and 2 encoding

G711_ADT_encode( … ) Encodes voice into PCM or comfort noise parameters

G711_ADT_initDec( … ) Initializes data structures for appendices 1 and 2 decoding

G711_ADT_decode( … ) Decodes PCM or comfort noise parameters for playout

 

 

PRODUCTS