语音 : H.323

了解编解码器:复杂性、硬件支持、MOS和协商

2015 年 8 月 28 日 - 机器翻译
其他版本: PDFpdf | 英语 (2015 年 4 月 22 日) | 反馈


目录


简介

本文提供不同的编码器译码器(编码)的概述与Cisco IOS VoIP网关一起使用。在 Cisco IOS 软件版本 12.0(5)T 以前的版本中,VoIP 网关只支持 G.729 和 G.711 编解码器且每个数字信号处理器 (DSP) 只能处理一个语音/传真中继呼叫。引入 Cisco IOS 软件版本 12.0(5)T 之后,Cisco VoIP 网关可支持大量的编解码器和 DSP 模块。Cisco VoIP 网关还支持每个 DSP 处理高达四个语音/传真中继呼叫。

有关 DSP 的详细信息,请参阅语音硬件:C542 和 C549 数字信号处理器 (DSP)

DSP Calculator 工具仅限注册用户)可确定 Cisco 1751、1760、2600XM、2691、2800、3700 和 3800 系列路由器平台的 DSP 需求,并可输出 PVDM 设置建议。该工具根据作为输入内容提供的接口模块、编解码器配置、代码转换信道以及会议会话计算 DSP 需求。该工具支持适用于 Cisco 1751、1760、2600XM、2691、2800、3700 和 3800 平台的不同 Cisco IOS 软件版本。

先决条件

要求

本文档没有任何特定的要求。

使用的组件

本文档不限于特定的软件和硬件版本。

规则

有关文档规则的详细信息,请参阅 Cisco 技术提示规则

编解码器复杂性

一些编解码器压缩技术需要更强大的处理能力。编解码器复杂性分为两类:中等复杂性和高度复杂性。

  • 中等复杂性允许每个 C549 DSP 处理最多四个语音/传真中继呼叫,并允许每个 C5510 DSP 处理最多八个语音/传真中继呼叫。

  • 高度复杂性允许每个 C549 DSP 处理最多两个语音/传真中继呼叫,并允许每个 C5510 DSP 处理最多六个语音/传真中继呼叫。

中等复杂性(4 个呼叫/DSP) 高度复杂性(2 个呼叫/DSP)
G.711(a-law 和 m-law) G.728
G.726(所有版本) G.723(所有版本)
G.729a、G.729ab (G.729a AnnexB) G.729、G.729b (G.729 AnnexB)
传真中继 传真中继

注意: 中等和高度复杂性编解码器之间的区别在于处理编码算法所使用的CPU数量不同,因此单个DSP能够支持语音信道的数量。因此,所有中等复杂性编解码器也可以在高度复杂性模式下运行,但只有较少(通常为半数)信道可用于每个 DSP。

注意: 传真中继(2400 bps、4800 bps、7200 bps、9600 bps、12 kbps 和 14.4 kbps)可以使用中等或高度复杂性编解码器。

在支持 C549 DSP 技术的平台上,编解码器的复杂性在语音卡(例如,2600/3600/VG-200 高密度语音网络模块)下配置。一些平台只支持高度复杂性,因为它们有足够的内置 DSP,能够支持所有使用高度复杂性模式的 T1/E1 信道。要根据使用的编解码器标准指定呼叫密度和编解码器复杂性,请在语音卡配置模式下使用 codec complexity 命令。

复杂性配置示例显示如下:

Cisco-router #configure terminal
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

在支持 C5510 DSP 技术的平台上,提供额外的 flex complexity 选项。如果使用 flex complexity,每个 DSP 能够完成高达十六个呼叫。根据用于呼叫的编解码器的不同,可支持的呼叫数从六到十六不等。

配置示例显示如下:

Cisco-router#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Cisco-router(config)#voice-card 1
Cisco-router(config-voicecard)#codec complexity ?
  flex    Set codec complexity Flex.  Flex complexity, higher call density.
  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 flex

以下内容摘自 show running-config 命令的输出,该命令用于确定配置了哪种复杂性:

!voice-card 1
  codec complexity high
!

下表列出了各种 Cisco 路由器平台支持的编解码器技术。

编码 1751/1760 26xx/36xx NM-1V/2V 26xx/36xx NM-HDV 3700 3810 AS5300 AS5800 AS5350 AS5400 7200 7500 CMM 24FXS CMM 6T1/E1
G.711 a-law 和 u-law PCM (64 kbps) 12.0.5XQ1 12.0.5XK1 12.0.7XK 12.0.5XE3 12.1.3T
G.726 ADPCM(32 kbps、24 kbps、16 kbps) 12.1.2T 12.0.5T 12.0.5XK1 12.0.7XK 12.0.5XE3 12.1.3T
G.728 LD-CELP (16 kbps) 12.0.5T 12.0.5XK1 12.0.7XK 12.0.5XE3 12.1.3T
G.729 CS-ACELP (8 kbps) 12.1.2T 12.0.5XK1 12.0.7XK 12.0.5XE3 12.1.3T
G.729a CS-ACELP (8 kbps) 12.0.5XQ1 12.0.5XK1 12.0.7XK 12.0.5XE3 12.1.3T
G.729 Annex-B (8 kbps) [VAD] 12.0.5T 12.0.5XK1 12.0.7XK 12.0.5XE3 12.1.3T
G.729a Annex-B (8 kbps) 12.0.5XK1 12.0.7XK 12.0.5XE3 12.1.3T
G.723.1 MP-MLQ (6.3 kbps) 12.1.2T 12.0.5T 12.0.5XK1 12.0.7XK 12.0.5XE3 12.1.3T
G.723.1 ACELP (5.3 kbps) 12.1.2T 12.0.5T 12.0.5XK1 12.0.7XK 12.0.5XE3 12.1.3T
G.723.1 Annex-A MP-MLQ (6.3 kbps) 12.1.2T 12.0.5T 12.0.5XK1 12.0.7XK 12.0.5XE3 12.1.3T
G.723.1 Annex-A ACELP (5.3 kbps) 12.1.2T 12.0.5T 12.0.5XK1 12.0.7XK 12.0.5XE3 12.1.3T
纯信道 12.3(2)XF、12.3(11)T 12.3(11)T    

编解码器压缩方法
PCM = 脉冲编码调制
ADPCM = 自适应差分脉冲编码调制
LDCELP = 低延迟码激励线性预测
CS-ACELP = 共轭代数码本激励线性预测
MP-MLQ = 多种脉冲,多重量子化
ACELP = 代数码激励线性预测

编解码器平均意见得分 (MOS)

每个编解码器都提供某种程度的语音质量。传送的语音的质量由监听程序的主观响应来确定。用于确定由特定编解码器所产生的声音质量的一个常用基准是平均意见得分 (MOS)。使用 MOS,大范围的监听程序可以判断语音示例(对应于特定的编解码器)的质量,质量等级从 1(差)到 5(非常好)。各个得分进行平均所得的结果即为该语音示例的 MOS。下表显示了编解码器和 MOS 评分之间的关系。

压缩方法 比特率 (kbps) MOS 评分 压缩延迟(毫秒)
G.711 PCM 64 4.1 0.75
G.726 ADPCM 32 3.85 1
G.728 LD-CELP 16 3.61 3 到 5
G.729 CS-ACELP 8 3.92 10
G.729 x 2 编码 8 3.27 10
G.729 x 3 编码 8 2.68 10
G.729a CS-ACELP 8 3.7 10
G.723.1 MP-MLQ 6.3 3.9 30
G.723.1 ACELP 5.3 3.65 30

虽然从财务角度来看,把所有呼叫转换成低比特率编解码器以节约基础设施成本是合理的,但是设计带有低比特率压缩的语音网络时,您应当格外小心。压缩语音也有一些缺点。其中一个主要缺点是多重编码(称为纵排编码)造成的信号失真。例如,对 G.729 语音信号进行三次纵排编码时,MOS 得分将从 3.92(非常好)下降到 2.68(不可接受)。另一个缺点是低比特率编解码器导致的延迟。

G.729 编解码器问题

以下两个部分阐明了与 G.729 (8 kbps) 编解码器实施相关的许多常见兼容性问题。

Cisco pre-IETF G.729 和标准化 G.729 实施

在对 G.729 编解码器进行标准化之前,Cisco 发布了 G.729 pre-Internet Engineering Task Force (IETF) 编解码器实施。从 Cisco IOS 12.0(5)T 版本开始,G.729 编解码器的默认位排序就从 pre-IETF 标准更改为 IETF 标准化格式。两种格式不能互操作,否则会产生让终端用户难以理解的“吞音”。

为兼容其他供应商的 G.729 实施方案,Cisco IOS 软件版本 12.0.5T 和更新版本默认使用 G.729 的标准化实施方案。要后向兼容 Cisco IOS 软件版本 12.0.5T 以前的 Cisco IOS 软件版本,使用以下命令启用 pre-IETF G.729 实施方案:

maui-vgw-01(config)#dial-peer voice 100 voip
maui-vgw-01(config-dial-peer)#codec g729r8 pre-ietf

Cisco IOS 版本 12.2 和更新版本不支持此命令中的 pre-ietf 选项。

高度复杂性:G.729、G729 Annex-B;中等复杂性:G.729A、G.729A Annex-B

G.729 是一种高度复杂性算法,而 G.729A(亦称 G.729 Annex-A)则是 G.729 的中等复杂性变体,其语音质量稍低。所有支持 G.729 的平台都支持 G.729A。

在 Cisco IOS 网关上,使用 G.729 还是 G.729A 与语音卡上的编解码器复杂性配置有关。它不会明确出现在 Cisco IOS 命令行界面 (CLI) 中的编解码器选项中。例如,CLI 不会将 g729ar8(“a”代码)显示为编解码器选项。然而,如果语音卡被定义为中等复杂性,那么 g729r8 选项则是 G.729A 编解码器。

注意: 对于 MC3810,在 Cisco IOS 软件版本 12.0.7XK 以前的版本中,可在 CLI 中明确选择 G.729A 的 24 条信道或 G.729 的 12 条信道。

G.729 Annex-B 是一种高度复杂性算法,而 G.729A Annex-B 则是 G.729 Annex-B 的中等复杂性变体,其语音质量稍低。G.729 和 G.729 Annex-B 编解码器之间的区别在于 G.729 Annex-B 编解码器提供内置 IETF 语音活动检测 (VAD) 和舒适噪音生成 (CNG)。

以下 G.729 编解码器组合能够实现互操作:

  • G.729 和 G.729A

  • G.729 和 G.729

  • G.729A 和 G.729A

  • G.729 Annex-B 和 G.729A Annex-B

  • G.729 Annex-B 和 G.729 Annex-B

  • G.729A Annex-B 和 G.729A Annex-B

注意: 在 Cisco 2600/3600/VG-200 NM-1V 和 NM-2V(语音网络模块)上配置 G.729A 并没有明确的方法,因为这些语音模块不支持 NM-HDV(高密度语音网络模块)所支持的“编解码器复杂性”配置。然而,如果一个 G.729A 呼叫由另一个在 NM-1V/2V 上终止的终点进行设置,则该呼叫将成功连接。

G.723.1 编解码器问题

G.723.1 有两个版本,称为 Annex-A 和非 Annex-A。这两个版本不能互操作。G.723.1 Annex-A 包括内置的 IETF VAD 算法和 CNG。

此外,从 Cisco IOS 软件版本 12.0(5)T 开始,G.723.1 编解码器支持 5.3 kbps 和 6.3 kbps 的速率。当 Cisco VoIP 网关在使用 G723.1 的设备之间建立呼叫时,将只考虑远端设备使用的是否是 G.723.1。两端都不会考虑另一端支持的是 5.3 kbps 还是 6.3 kbps 的连接速率。这意味着,虽然让两端都支持同一速率是非常有利的,但很有可能一端的传输速率为 5.3 kbps,而另一端的传输速率为 6.3 kbps。可使用 show call active voice brief 命令查看所使用的速率,如下所示:

Cisco-router# show call active voice brief
47 : 494514hs.1 +473 pid:0 Answer active
tx:210/5040 rx:219/4380
IP 5.5.0.1:16534 rtt:3ms pl:890/0ms lost:0/0/0 delay:70/70/70ms g723r63
47 : 494514hs.2 +473 pid:1 Originate 4750001 active
  TX:230/1840 rx:230/8280
  Tele 2/0:0 (35): TX:6870/2290/0ms g723r63

  !--- In this example the G.723.1 is operating at 6.3 kbps. 

  noise:0 acom:0 i/0:-79/-5 dBm 

在呼叫过程中,G.723.1 标准允许站点在 6.3 kbps 和 5.3 kbps 的速率之间进行切换,以适应网络流量负载。Cisco VoIP 网关不支持此功能。但其可以识别远程设备(如 Cisco IP 电话)的传输速率是否与最初协商的速率相同。

以下 G.723.1 编解码器组合能够实现互操作:

  • G.723.1 (5.3 kbps) 和 G.723.1 (6.3 kbps)

  • G.723.1 (5.3 kbps) 和 G.723.1 (5.3 kbps)

  • G.723.1 (6.3 kbps) 和 G.723.1 (6.3 kbps)

  • G.723.1 Annex-A (5.3 kbps) 和 G.723.1 Annex-A (6.3 kbps)

  • G.723.1 Annex-A (5.3 kbps) 和 G.723.1 Annex-A (5.3 kbps)

  • G.723.1 Annex-A (6.3 kbps) 和 G.723.1 Annex-A (6.3 kbps)

编解码器协商

引入 Cisco IOS 软件版本 12.0(5)T 之后,Cisco VoIP 网关支持编解码器协商功能。此功能可以让 Cisco VoIP 网关连接到其他 VoIP 设备,而无需知道哪个编解码器用于呼叫建立。并且,此功能使 Cisco VoIP 网关能够动态适应远程设备上的变化。只要远程 VoIP 设备使用的编解码器匹配 Cisco VoIP 网关的功能列表,VoIP 呼叫便可完成。C542 和 C549 DSP 均支持编解码器协商功能。要指定一组在拨号对等体上使用的首选编解码器,请在语音类配置模式下使用 codec preference 命令。

以下示例显示了如何配置编解码器协商:

Cisco-router# configure terminal
Cisco-router(config)# voice class codec 1

!--- This sets up class 1 to be assigned to the dial peer.

Cisco-router(config-class)#codec preference 1 g723r63
Cisco-router(config-class)#codec preference 2 g729br8
Cisco-router(config-class)#codec preference 3 g711ulaw
Cisco-router(config-class)#codec preference 4 g726r32 bytes 240

!--- These commands define the preferred codec list using 1,2,3, 
!--- and 4 to set the preference.


Cisco-router(config)#dial-peer voice 1 voip
Cisco-router(config-dial-peer)#voice-class codec 1

!--- This assigns voice-class codec 1 to the dial-peer

Cisco-router(config-dial-peer)#destination-pattern 4723155
Cisco-router(config-dial-peer)#session target ipv4:192.168.100.1

相关错误消息

%DSPRM-5-SETCODEC :

%DSPRM-5-SETCODEC 错误的发生原因为:VoIP 拨号对等体上配置了高度复杂性编解码器,而语音卡仍然设置为默认的中等复杂性。要解决此问题,您必须从控制器中删除 ds0-group 配置,此配置会导致语音端口被删除。删除 ds0-group 后,按照本文档前面部分所述的步骤来更改复杂性。

相关的思科支持社区讨论

思科支持社区是您提问、解答问题、分享建议以及与工作伙伴协作的论坛。


相关信息


Document ID: 14069