语音 : 语音质量

IP 语音 - 每个呼叫的带宽占用量

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


目录


简介

当您建立分组语音网络时,要考虑的最重要因素之一就是适当的容量规划。在容量规划中,带宽计算是在设计和排除分组语音网络故障以提供良好语音质量时需考虑的重要因素。

本文档解释使用 IP 语音 (VoIP) 时的语音编解码带宽计算以及修改或保存带宽的功能。

注意: 作为本文档的补充,您可以使用 TAC 语音带宽编解码计算器仅限注册用户)工具。此工具提供有关如何计算分组语音呼叫所需带宽的信息。

先决条件

要求

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

使用的组件

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

规则

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

VoIP - 每呼叫带宽

以下协议报头假设用于计算:

  • IP(20 字节)/用户数据报协议 (UDP)(8 字节)/实时传输协议 (RTP)(12 字节)报头的 40 字节。

  • 压缩实时协议 (cRTP) 将 IP/UDP/RTP 报头减少到 2 字节或 4 字节(以太网不提供 cRTP)。

  • 多链路点对点协议 (MP) 或帧中继论坛 (FRF).12 第 2 层 (L2) 报头的 6 字节。

  • MP 和帧中继帧上帧结尾标记的 1 字节。

  • 以太网 L2 报头的 18 字节,包括 4 字节的帧校验序列 (FCS) 或循环冗余校验 (CRC)。

注意: 此表只包含默认语音有效载荷大小的计算在Cisco CallManager或思科IOS�软件H.323网关。对于其他计算,包括不同语音有效载荷大小及其他协议,例如帧中继语音 (VoFR) 和 ATM 语音 (VoATM) 等,请使用 TAC 语音带宽编解码计算器仅限注册用户)工具。

注意: 

编解码信息 带宽计算
编解码比特率 (Kbps) 编解码样本大小(字节) 编解码采样间隔(毫秒) 平均意见评分 (MOS) 语音有效载荷大小(字节) 语音有效载荷大小(毫秒) 每秒数据包数 (PPS) 带宽 MP 或 FRF.12 (Kbps) 带宽 w/cRTP MP 或 FRF.12 (Kbps) 带宽以太网 (Kbps)
G.711 (64 Kbps) 80 字节 10 毫秒 4.1 160 字节 20 毫秒 50 82.8 Kbps 67.6 Kbps 87.2 Kbps
G.729 (8 Kbps) 10 字节 10 毫秒 3.92 20 字节 20 毫秒 50 26.8 Kbps 11.6 Kbps 31.2 Kbps
G.723.1 (6.3 Kbps) 24 字节 30 毫秒 3.9 24 字节 30 毫秒 33.3 18.9 Kbps 8.8 Kbps 21.9 Kbps
G.723.1 (5.3 Kbps) 20 字节 30 毫秒 3.8 20 字节 30 毫秒 33.3 17.9 Kbps 7.7 Kbps 20.8 Kbps
G.726 (32 Kbps) 20 字节 5 毫秒 3.85 80 字节 20 毫秒 50 50.8 Kbps 35.6 Kbps 55.2 Kbps
G.726 (24 Kbps) 15 字节 5 毫秒   60 字节 20 毫秒 50 42.8 Kbps 27.6 Kbps 47.2 Kbps
G.728 (16 Kbps) 10 字节 5 毫秒 3.61 60 字节 30 毫秒 33.3 28.5 Kbps 18.4 Kbps 31.5 Kbps
G722_64k(64 Kbps) 80 字节 10 毫秒 4.13 160 字节 20 毫秒 50 82.8 Kbps 67.6Kbps 87.2 Kbps
ilbc_mode_20(15.2Kbps) 38 字节 20 毫秒 NA 38 字节 20 毫秒 50 34.0Kbps 18.8 Kbps 38.4Kbps
ilbc_mode_30(13.33Kbps) 50 字节 30 毫秒 NA 50 字节 30 毫秒 33.3 25.867 Kbps 15.73Kbps 28.8 Kbps

术语解释

编解码比特率 (Kbps) 根据编解码,这是为提供语音呼叫而需要传输的每秒比特数。(编解码比特率 = 编解码样本大小/编解码采样间隔)。
编解码样本大小(字节) 根据编解码,这是数字信号处理器在每编解码采样间隔捕获的字节数 (DSP)。例如,G.729 编码器以 10 毫秒的采样间隔运行,与比特率为 8 Kbps 时每样本 10 字节 (80 位) 对应。(编解码比特率 = 编解码样本大小/编解码采样间隔)。
编解码采样间隔(毫秒) 这是编解码器运行的采样间隔。例如,G.729 编码器以 10 毫秒的采样间隔运行,与比特率为 8 Kbps 时每样本 10 字节 (80 位) 对应。(编解码比特率 = 编解码样本大小/编解码采样间隔)。
MOS MOS 是对电话连接语音质量进行评分的系统。使用 MOS,各监听程序可判断语音样本的质量,质量等级从 1(差)到 5(非常好)。各得分进行平均所得的结果即为该编解码的 MOS。
语音有效载荷大小(字节) 语音有效载荷大小指填充到数据包的字节(或位)数。语音有效载荷大小必须是多个编解码样本大小。例如,G.729 数据包可以使用 10、20、30、40、50 或者 60 字节的语音有效载荷。
语音有效载荷大小(毫秒) 语音有效载荷大小也可表示为编解码采样。例如,语音有效载荷为20毫秒(二个10毫秒编码示例)的G.729语音表示语音有效载荷为20字节[ (20 字节 * 8) / (20 ms) = 8 Kbps ]。
PPS PPS 表示为提供编码解码器比特率而每秒需要传输的数据包数量。例如,对于每数据包语音有效载荷大小为 20 字节(160 位)的 G.729 呼叫,每秒需要传输 50 个数据包 [50 pps = (8 Kbps)/(160 位/数据包)]

带宽计算公式

使用以下计算:

  • 数据包总大小 = (L2 报头:MP 或 FRF.12 或以太网)+(IP/UDP/RTP 报头)+(语音有效载荷大小)

  • PPS = (编解码比特率)/(语音有效载荷大小)

  • 带宽 = 数据包总大小 * PPS

计算示例

例如,带 cRTP、MP 且语音有效载荷为默认 20 字节的 G.729 呼叫(8 Kbps 编码解码器比特率)的所需带宽为:

  • 数据包总大小(字节)=(6 字节的 MP 报头)+(2 字节的压缩 IP/UDP/RTP 报头)+(20 字节的语音有效载荷)= 28 字节

  • 数据包总大小(位)=(28 字节)* 8 位/字节 = 224 位

  • PPS =(8 Kbps 编解码比特率)/(160 位)= 50 pps

    注意: 160 位 = 20 字节(默认语音有效载荷)* 8 位/字节

  • 每呼叫的带宽 = 语音数据包大小(224 位)* 50 pps = 11.2 Kbps

在 Cisco CallManager 和 IOS 网关中配置语音有效载荷大小

每数据包的语音有效载荷大小均可在 Cisco CallManager 和 Cisco IOS 网关中配置。

注意: 如果 Cisco IOS 网关作为媒体网关控制协议 (MGCP) 网关配置在 Cisco CallManager 中,则所有编解码信息(编解码类型、有效载荷大小、语音活动检测等)都由 Cisco CallManager 控制。

在 Cisco CallManager 中,每数据包的语音有效载荷大小在整个系统中都是可配置的。此属性在 Cisco CallManager 管理中 (Service > Service Parameters > select_server > Cisco CallManager) 用以下三个服务参数设置:

  • PreferredG711MillisecondPacketSize -(默认设置:20 毫秒,可用设置:10、20 和 30 毫秒。)

  • PreferredG729MillisecondPacketSize -(默认设置:20 毫秒,可用设置:10、20、30、40、50 和 60 毫秒。)

  • PreferredG723MillisecondPacketSize -(默认设置:30 毫秒,可用设置:30 和 60 毫秒。)

在 Cisco CallManager 中,语音有效载荷大小根据毫秒 (ms) 采样而配置。根据编解码,下表将部分毫秒采样映射到实际有效载荷大小(单位为字节)。

编码 语音有效载荷大小(毫秒) 语音有效载荷大小(字节) 备注
G.711 20 毫秒(默认) 160 字节 注意,始终保持编解码比特率。例如:G.711 编解码 = [240 字节 * 8(位/字节)]/30 毫秒 = 64 Kbps
30 毫秒 240 字节
G.729 20 毫秒(默认) 20 字节
30 毫秒 30 字节
G.723 30 毫秒(默认)

在 Cisco IOS 网关中,Cisco IOS 软件版本 12.0(5)T 新增了一项功能,该功能允许通过命令行界面 (CLI) 更改 VoIP 数据包的语音有效载荷大小(单位为字节)。新命令语法如下:

Cisco-Router(config-dial-peer)#codec g729r8 bytes ?

Each codec sample produces 10 bytes of voice payload.

Valid sizes are:
10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120,
130, 140, 150, 160, 170, 180, 190, 200, 210, 220, 230

Any other value within the range will be rounded down to nearest valid size.

<10-230> Choose a voice payload size from the list above

更改语音有效载荷大小的影响

每数据包的编解码样本数是确定 VOIP 呼叫带宽和延迟的另一个因素。编解码规定样本的大小,但数据包中存储的样本总数将影响每秒发送的数据包数。

增大语音有效载荷大小时,VoIP 带宽将减少,且整体延迟增加。以下示例演示了这一问题:

  • 语音有效载荷大小为 20 字节(20 毫秒)的 G.729 呼叫:(40 字节的 IP/UDP/RTP 报头 + 20 字节的语音有效载荷)* 8 位/字节 * 50 pps = 24 Kbps

  • 语音有效载荷大小为 40 字节(40 毫秒)的 G.729 呼叫:(40 字节的 IP/UDP/RTP 报头 + 40 字节的语音有效载荷)* 8 位/字节 * 25pps = 16 Kbps

注意: 此计算中没有考虑 L2 报头。

注意: 计算显示,当有效负载翻倍时,每秒所需的信息包数量随后被切成两半。

注意: 正如国际电信联盟电信标准局 (ITU-T) G.114 规格中所定义,建议的单向整体语音延迟为 150 毫秒。对于专用网络,200 毫秒是一个合理的目标,而 250 毫秒必须是最大值。

语音活动检测

使用电路交换语音网络,不管有多少会话处于讲话状态,有多少会话处于沉默状态,所有语音呼叫都使用 64 Kbps 的固定带宽链路。使用 VoIP 网络,所有会话和沉默状态都进行了分组。使用语音活动检测 (VAD),可以抑制无声数据包。

在超时期间以及平均呼叫容量超过 24 次时,VAD 最大可节省 35% 的带宽。这些节省不是在每个单独语音呼叫或任何特定点测量上实现的。就网络设计和带宽工程而言,不必考虑 VAD,特别是在同步传送 24 次以下语音呼叫的链路上时。有多种功能(例如保持音乐和传真)可使 VAD 无效。当针对全语音呼叫带宽设计网络时,VAD 提供的所有节省都可用于数据应用。

VAD 还提供舒适噪声生成 (CNG)。由于您可能弄错断开呼叫的静音,因此 CNG 提供本地生成的白噪声,这样呼叫就看似正常地连接到呼叫双方。G.729 附录 B 和 G.723.1 附录 A 包括集成 VAD 功能,否则分别执行相同的 G.729 和 G.723.1。

在 Cisco CallManager 中,可用以下参数启用 VAD(默认状态下为禁用):

  • SilenceSuppressionSystemWide - 此参数为所有 skinny 终点选择 VAD 设置(例如:Cisco IP 电话和 Skinny 网关)

  • SilenceSuppressionWithGateways - 此参数为所有 MGCP 网关选择 VAD 设置。这对 H.323 网关没有影响。H.323 网关上的 VAD 必须在网关上禁用。

您可以在 Cisco CallManager Administration (Service > Service Parameters > select_server > Cisco CallManager) 下找到这些服务参数。

RTP 报头压缩或压缩的 RTP (cRTP)

http://www.cisco.com/c/dam/en/us/support/docs/voice/voice-quality/7934-bwidth-consume.gif

所有 VoIP 数据包都由两部分组成:语音样本和 IP/UDP/RTP 报头。虽然语音样本由数字信号处理器 (DSP) 压缩并且大小因使用的编解码而异,但这些报头的长度为恒量,即 40 字节。当与默认 G.729 呼叫中的 20 字节语音样本相比时,这些报头产生了相关数量的开销。使用 cRTP,可以将这些报头压缩到 2 字节或 4 字节。此压缩可大幅节省 VoIP 带宽。例如,不使用 cRTP 时,默认 G.729 VOIP 呼叫消耗 24 千字节,而启用 cRTP 时只消耗 12 千字节。

由于 RTP 逐个压缩每个链路上的 VOIP 呼叫,因此 IP 链路的两端需要配置 RTP。

在 Cisco IOS 软件版本 12.0.5T 及早期版本中,cRTP 属于进程交换,由于 CPU 性能原因,极大地限制了 cRTP 解决方案的可扩展性。大多数这些问题已通过在 Cisco IOS 软件版本 12.0.7T 中引进多种 cRTP 性能改进加以解决。以下是历史记录概要。

  • cRTP 在 Cisco IOS 软件版本 12.0.5T 及早期版本中属于进程交换。

  • 在 Cisco IOS 软件版本 12.0.7T 和后续版本 12.1.1T 中,引入了支持 cRTP 的快速交换和 Cisco Express 转发交换功能。

  • 在 Cisco IOS 软件版本 12.1.2T 中,引入了算法性能改进。

将 cRTP 移至快速交换路径将大幅增加 VOIP 网关和中间路由器可以处理的 RTP 会话(VOIP 呼叫)数量。

压缩试探

由于 RTP 自身没有明显的数据包报头,因此可通过试探将 RTP 流(对于 cRTP)与 UDP 流 (cUDP) 区分开来。当前用于检测压缩 RTP 数据包压缩状况的确切试探如下:

  • 目标端口号为偶数。

  • 目标端口号在 16384-32767 或 49152-65535 范围内。

  • RTP 版本字段设置为 2。

  • RTP 分机字段设置为 0。

相关的思科支持社区讨论

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


相关信息


Document ID: 7934