G.711 Speech Codec with Appendices 1 & 2
AVAILABILITY
ADT G.711 Appendices 1 is available on the following Platforms: Other configurations are available upon request.
| Product Number | Platform |
| ADT_g711a1_arm9e | ARM9E |
| ADT_g711a1_arm11 | ARM11 |
ADT G.711 Appendices 1 & 2 is available on the following Platforms: Other configurations are available upon request.
| Product Number | Platform |
| ADT_g711a1a2_arm9e | ARM9E |
| ADT_g711a1a2_arm11 | ARM11 |
| ADT_g711a1a2_armA8 | ARM Cortex A8 |
| ADT_g711a1a2_armA9 | ARM Cortex A9 |
| ADT_g711a1a2_armA15 | ARM Cortex A15 |
| ADT_g711a1a2_armM3 | ARM Cortex M3 |
| ADT_g711a1a2_armM4 | ARM Cortex M4 |
DESCRIPTION
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.
FEATURES
-
Mu-law and a-law support
-
ITU G.711 Compliant
-
Optional voice activity detection (VAD) with discontinuous transmission (DTX) and comfort noise generation (CNG) for bandwidth reduction
-
Robust packet loss concealment for improved voice quality during periods of missing packets
-
Multi-channel capable
-
Functions are C-callable
SPECIFICATIONS
ARM® DEVICESG.711 ARM9E / ARM11
CPU UTILIZATION & MEMORY REQUIREMENTSAll Memory usage is given in units of byte.
| Function | MIPS | 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 |
G.711 ARM Cortex-M3 / Cortex-A8/A9
CPU UTILIZATION & MEMORY REQUIREMENTSAll Memory usage is given in units of byte.
| Function | MIPS | Program Memory | Data Memory | Per-Channel Data Memory | |
| M3 | A8 | ||||
| G.711A1A2 Encode | 7.33 | 3.56 | -- | -- | 1636 |
| G.711A1A2 Decode | 2.5 | 1.64 | -- | -- | 1776 |
| Encode / Decode | 9.83 | 5.2 | 22700 | 2886 | 3412 |
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