语音编码占带宽的计算

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

你可能感兴趣的:(数据结构,算法,网络协议,活动,电信)