Codec Complexity
Codec Complexity
Contents
Introduction
Prerequisites
Requirements
Components Used
Conventions
Codec Complexity
Codec Mean Opinion Score (MOS)
G.729 Codec Issues
Cisco pre-IETF G.729 and Standardized G.729 implementation
High Complexity: G.729, G729 Annex-B & Medium Complexity: G.729A, G.729A Annex-B
G.723.1 Codec Issues
Codec Negotiation
Related Error Messages
%DSPRM-5-SETCODEC:
Related Information
Introduction
This document provides an overview to the different coder-decoders (codecs) used with Cisco IOS® Voice over IP (VoIP)
gateways. Prior to Cisco IOS Software Release 12.0(5)T, VoIP gateways only supported the G.729 and G.711 codecs and only
one voice/fax-relay call per digital signal processor (DSP). With the introduction of Cisco IOS 12.0(5)T, Cisco VoIP gateways
support a larger number of codecs and DSP modules. They can also support up to four voice/fax-relay calls per DSP.
For more information on DSPs, refer to the Voice Hardware: C542 and C549 Digital Signal Processor (DSP) document.
Prerequisites
Requirements
There are no specific requirements for this document.
Components Used
This document is not restricted to specific software and hardware versions.
Conventions
For more information on document conventions, see the Cisco Technical Tips Conventions.
Codec Complexity
Some codec compression techniques require more processing power than others. Codec complexity is broken into two categories,
medium and high complexity.
● Medium complexity allows the C549 DSPs to process up to four voice/fax-relay calls per DSP.
● High complexity allows the C549 DSPs to process up to two voice/fax-relay calls per DSP.
Medium Complexity (4
High Complexity ( 2 calls / dsp)
calls / dsp)
G.711 (a-law and m
G.728
-law)
G.726 (all versions) G.723 (all versions)
G.729a, G.729ab
G.729, G.729b (G.729-AnnexB)
(G.729a AnnexB)
Fax-relay Fax-relay
Medium Complexity codecs (see
Note 1)
Note: The difference between medium and high complexity codecs is the amount of CPU utilization necessary to process the
codec algorithm, and therefore, the number of voice channels that can be supported by a single DSP. For this reason, all the
medium complexity codecs can also be run in high complexity mode, but fewer (usually half) of the channels are available per
DSP.
Note: Fax-relay (2400 bps, 4800 bps, 7200 bps, 9600 bps, 12 kbps, and 14.4 kbps) can use medium or high complexity codecs.
On platforms which support the C549 DSP technology, the codec complexity is configured under the voice-card (for example, the
2600/3600/VG-200 High Density Voice Network Module). Some platforms only support high complexity because they have
enough DSPs onboard to support all T1/E1 channels using the high complexity mode.
An example of the complexity configuration is shown below:
Cisco-router #config t
Enter configuration commands, one per line. End with CNTL/Z.
Cisco-router(config)#voice-card 1
Cisco-router(config-voicecard)#codec complexity ?
high Set codec complexity high. High complexity, lower call density.
medium Set codec complexity medium. Mid range complexity and call density.
<cr>
Cisco-router(config-voicecard)#codec complexity high
The following is an excerpt from the show running-config output to determine which complexity is configured:
!voice-card 1
codec complexity high
!
26xx/36xx 26xx/36xx AS5300 AS5350
Codec 1750 3810 7200 7500
NM-1V/2V NM-HDV AS5800 AS5400
G.711
a-law &
12.0.5XQ1 Yes 12.0.5XK1 12.0.7XK Yes Yes 12.0.5XE3 12.1.3T
u-law PCM
(64 kbps)
G.726
ADPCM
12.1.2T 12.0.5T 12.0.5XK1 12.0.7XK Yes No 12.0.5XE3 12.1.3T
(32, 24,16
kbps)
G.728
LD-CELP No 12.0.5T 12.0.5XK1 12.0.7XK7 Yes No 12.0.5XE3 12.1.3T
(16 kbps)
G.729
CS-ACELP 12.1.2T Yes 12.0.5XK1 12.0.7XK Yes No 12.0.5XE3 12.1.3T
(8 kbps)
G.729a Negotiated
CS-ACELP 12.0.5XQ1 (see Note 12.0.5XK1 12.0.7XK Yes Yes 12.0.5XE3 12.1.3T
(8 kbps) 4)
G.729
Annex-B
No 12.0.5T 12.0.5XK1 12.0.7XK7 Yes No 12.0.5XE3 12.1.3T
(8 kbps)
[VAD]
G.729a Negotiated
Annex-B No (see Note 12.0.5XK1 12.0.7XK7 Yes Yes 12.0.5XE3 12.1.3T
(8 kbps) 4)
G.723.1
MP-MLQ 12.1.2T 12.0.5T 12.0.5XK1 12.0.7XK7 Yes Yes 12.0.5XE3 12.1.3T
(6.3 kbps)
G.723.1
ACELP 12.1.2T 12.0.5T 12.0.5XK1 12.0.7XK7 Yes Yes 12.0.5XE3 12.1.3T
(5.3 kbps)
G.723.1
Annex-A
12.1.2T 12.0.5T 12.0.5XK1 12.0.7XK7 Yes Yes 12.0.5XE3 12.1.3T
MP-MLQ
(6.3 kbps)
G.723.1
Annex-A
12.1.2T 12.0.5T 12.0.5XK1 12.0.7XK7 Yes Yes 12.0.5XE3 12.1.3T
ACELP
(5.3 kbps)
Codec Compression Method
PCM = Pulse Code Modulation
ADPCM = Adaptive Differential Pulse Code Modulation
LDCELP = Low-Delay Code Excited Linear Prediction
CS-ACLEP = Conjugate-Structure Algebraic-Code-Excited
Linear-Prediction
MP-MLQ = Multi-Pulse, Multi-Level Quantization
ACELP = Algebraic Code Excited Linear Prediction
Although it might seem logical from a financial standpoint to convert all calls to low-bit rate codecs to save on infrastructure
costs, you should exercise additional care when designing voice networks with low-bit rate compression. There are drawbacks to
compressing voice. One of the main drawbacks is signal distortion due to multiple encodings (called tandem encodings). For
example, when a G.729 voice signal is tandem encoded three times, the MOS score drops from 3.92 (very good) to 2.68
(unacceptable). Another drawback is codec-induced delay with low bit-rate codecs.
High Complexity: G.729, G729 Annex-B & Medium Complexity: G.729A, G.729A
Annex-B
G.729 is a high complexity algorithm, and G.729A (also known as G.729 Annex-A) is a medium complexity variant of G.729
with slightly lower voice quality. All platforms that support G.729 also support G.729A.
On Cisco IOS gateways, the variant to use (G.729 or G.729A) is related to the codec complexity configuration on the voice card,
and it does not show up explicitly in the Cisco IOS command line interface (CLI) codec choice. For example, the CLI will not
show g729ar8 ("a" code) as a codec option, but if the voice-card is defined as medium-complexity, then the g729r8 option is the
G.729A codec.
Note: For the MC3810, prior to Cisco IOS Software Release 12.0.7XK, there is an explicit CLI choice between 24 channels of
G729A or 12 channels of G729.
G.729 Annex-B is a high complexity algorithm, and G.729A Annex-B is a medium complexity variant of G.729 Annex-B with
slightly lower voice quality. The difference between the G.729 and G.729 Annex-B codec is that the G.729 Annex-B codec
provides built-in IETF voice activity detection (VAD) and Comfort Noise Generation (CNG).
The following G.729 codec combinations interoperate:
● G.729 and G.729A
● G.729 and G.729
● G.729A and G.729A
● G.729 Annex-B and G.729A Annex-B
● G.729 Annex-B and G.729 Annex-B
● G.729A Annex-B and G.729A Annex-B
Note: There is no explicit way to configure G.729A on the Cisco 2600/3600/VG-200 NM-1V and NM-2V (voice network
module) since these voice modules do not support the "codec complexity" configuration supported on the NM-HDV (High
Density Voice Network Module). However, if a G.729A call is set up by another endpoint terminating on the NM-1V/2V, the call
will be successfully connected.
!--- These commands define the preferred codec list using 1,2,3, and 4 to set the
preference.
Cisco-router(config-dial-peer)#destination-pattern 4723155
Cisco-router(config-dial-peer)#session target ipv4:192.168.100.1
Related Information
● Voice Hardware: C542 and C549 Digital Signal Processor (DSP)s
● Voice over IP - Per Call Bandwidth Consumption
● Voice Technologies
● Voice, Telephony and Messaging Devices
● Voice Software
● Technical Support - Cisco Systems
All contents are Copyright © 1992-2003 Cisco Systems, Inc. All rights reserved. Important Notices and Privacy Statement.