The G.711 codec is the most commonly supported voice companding algorithm.
bullet Compression is performed on a per sample basis with each uniformly quantized sample producing an 8-bit pulse code modulated (PCM) or companded value.

search our site

arm G.711 annex 1 and annex 2

Go to specifications

G.711 is the de facto standard used to ensure interoperability in voice over Internet protocol (VoIP) applications.

Give us a listen!

Contact us
  for more information

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

  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

SPECIFICATIONS

ARM® DEVICES

G.711 ARM9E / ARM11

CPU UTILIZATION & MEMORY REQUIREMENTS
All 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 REQUIREMENTS
All 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