ITU-T(国际电信联盟)的G.729编码方式为例,这是一种8kbit/s的编码算法,该种编码抗随机比特错误的能力与抗随机突发消失帧的能力相同。 在噪声较大的环境下,它能有更好的语音质量。 G.729帧长为 10个八位组(octet),有声段帧格式为:
每帧为10ms。
每帧长10个八位组。
每个 RTP包可以放零个、一个或多个 G.729帧。
抽样率8000Hz。
缺省打包时间段20ms。
Internet话音分组传输技术
在IP网中传输层有两个并列的协议:TCP和UDP。
TCP是面向连接的,它提供高可靠性服务;UCP是无连接的,它提供高效率的服务。
高可靠性的TCP用于一次传输要交换大量报文的情况,高效率的UDP用于一次交换少量的报文或实时性要求较高的信息。
实时 传输协议RTP提供具有实时特征的、端到端的数据传输业务,可以用来传送声音和活动图像数据,在这项数据传输业务中包含了装载数据的标识符、序列号、时戳 以及传送监视。通常RTP的协议数据单元是用UDP分组来承载的。而且为了尽量减少时延,话音净荷通常都很短。图3表示一个IP话音分组的结构,图中 IP,UDP和RTP的控制头都按最小长度计算。 这种IP话音分组的开销很大,约为66%~80%。于是有人提出了组合RTP分组的概念
采用这种组合复用方法的确可以大大提高传输效率,但是目前尚无标准。
如果支持RTP的网络能提供组播功能,则它也可用组播方式将数据送给多个目的用户。
RTP 本身没有提供任何确保及时传送的机制,也没有提供任何传输质量保证的机制,因而业务质量完全由下层网络的质量来决定。同时,RTP不保证数据包按序号传 送,即使下层网络提供可靠性传送,也不能保证数据包的顺序到达。包含在RTP中的序列号就是供接收方重新对数据包排序之用。
与RTP相配套的另一个协议是RTCP协议。RTCP是RTP的控制协议,它用于监视业务质量并与正在进行的会话者传送信息。
因此,我们可以根据这个图3计算出每路G.729编码的带宽占用量:
带宽占用=传输的总字节数 / 传输的总时间
带宽=(20byte(IP头)+8byte(UDP头)+12byte(RTP头)+20byte(数据))/20ms
=60byte/20ms
以上计算公式含义为:每20ms,需要传输的字节数包括20个字节的IP包头,8个字节的UDP包头,12各字节的RTP包头,20字节的语音数据共60字节,结果为:3 byte/ms=3000 byte/s=24000bit/s=24kbit/s。
因此,理论上G.729中每个数据包包含两帧语音的编码方式,占用带宽24kbit/s,而又有封装效率的估算公式为:
封装效率=[(压缩后的语音包× n × 帧长/ 8)] / [(压缩后的语音包× n× 帧长/ 8 )+40] 。
n表示打进n个语音包。
以G.729信源编码为例,如一个RTP包打进一个语音包,则实际传送码流为40kbit/s,时延约为 10 ms;
如打两个语音包,则实际传送码流为24kbit/s,时延约为 20 ms;
如打四个语音包,实际传送码流为16kbit/s,时延为40ms。
为保证编码打包的时延,若将缺省语音包的数量定为两个,实际传送码流即为24kbit/s,而不是8kbit/s。
因此对于语音业务这类实时性要求非常高的业务,要保证语音的质量,根据ITU-T标准语音的全程往返时延应当控制在450ms为宜,编码打包后形成的单位码流通常是在20kbit/s。
由以上论述我们知道,每路G.729编码的IP语音占用约20Kbit/s的带宽,实际占用的总带宽数=语音总路数*20Kbit/s。
语音编解码方式及其所占用的带宽的关系
语 音编码的带宽和实际所占用的带宽是不同的,语音编码的带宽是实际语音包的带宽,而语音包在IP网络上传输时,还需要增加各种包头,如RTP包头、UDP包 头、IP包头。由于语音包本身很小,所以相对而言这些额外的带宽是很可观的。在下表中列出了各种编码方式下的打包时长以及所对应的实际带宽。
实际带宽与语音编码和打包时长的关系:
语音编解码 打包时长 语音数据带宽 实际所占带宽
G.723.1(5.3K) 30ms 5.3K 5.3*(20+40)/20 = 16.2K
G.723.1(5.3K) 60ms 5.3K 5.3*(40+40)/40 = 10.6K
G.723.1(6.3K) 30ms 6.3K 6.3*(24+40)/24 = 16.8K
G.723.1(6.3K) 60ms 6.3K 6.3*(48+40)/48 = 11.6K
G.729 20ms 8K 8*(20+40)/20 = 24K
G.729 60ms 8K 8*(60+40)/60 = 13.3K
由上表可以很明显的看出,打包时间越长,所占用的实际带宽越小,但时延越大。
说明
1、RTP包头:12bytes UDP包头:8bytes IP包头:20bytes。
2、表中的带宽计算中没有包含物理帧头,需根据具体网络而定。
3、表中的带宽计算中,没有考虑静音检测。静音检测的效率按60%计算。
音频:
名称 采样率 采样精度 占用带宽(kbps)
G.723.1 | 8k | 16bit | 5.3 ~ 6.3kbps |
ILBC | 8k | 16bit | 13.33 ~ 15.2kbps |
CCITT A-LAW | 8k | 16bit | 64 ~ 128kbps |
视频:
图像分辨率 —— 帧数 | 占用带宽(kbps) |
160 × 120 —— 5 ~ 30fps |
20 ~ 100kbps |
176 × 144 —— 5 ~ 25fps |
20 ~ 110kbps |
320 × 240 —— 5 ~ 30fps |
40 ~ 200kbps |
352 × 288 —— 5 ~ 25fps |
40 ~ 220kbps |
640 × 480 —— 5 ~ 30fps |
120 ~ 1000kbps |
720 × 576 —— 5 ~ 25fps |
120 ~ 1500kbps |
国际电信联盟 G 系列典型语音压缩标准的参数比较
算法 |
类型 |
码率 (kbit/s) |
算法延时 (ms) |
G.711 |
A-Law / μ -Law |
64 |
0 |
G.722 |
SB-ADPCM |
64/56/48 |
0 |
G.723.1 |
MP-MLQ/ACELP |
6.3/5.3 |
37.5 |
G.726 |
ADPCM |
16/24/32/40 |
0 |
G.727 |
Embedded ADPCM |
16/24/32/40 |
0 |
G.728 |
LD-CELP |
16 |
< 2 |
G.729 |
CS-ACELP |
8 |
15 |