在IP通信系统中,SIP通信目前是最流行的一种协议,SIP通信语音编码是用于把话音转换成数据方式来传输,传输协议中包括了 RTP,UDP,与IP 一起成为一个完整的语音协议。我们不难想象,传输中包头也占传输的一个重要部分,在20ms 的语音封包长度,包头可以占40字节,实际语音只有20字节,这文章主要是讨论语音压缩编码对VoIP话音与传输的各种影响。至于包头的压缩,则不在这讨论范围。
在IPV4里,IP包占20字节,UDP包占8字节,RTP包头占12字节,共占40字节,此外,以太网占14字节,在每秒20msec 的负荷和以G.729编码为例,实际要传输的字节数为20+12+8+20+14=74;传输速度应为:74字节/20msec=29.6K; 在相对的环境下,G.711编码却需要85.6K/sec的带宽。
带宽与语音编码
在实际的应用过程中,用户真正的关心并不是算法的原理以及采用的压缩技术,而是每种算法的使用特点,下面列出4种VoIP系统最常用的算法来进行比较。
表一 SIP电话编码算法与性能比较
编码类型 |
G.711 |
G.723.1 |
G.729A |
GSM |
iLBC |
语音编码速率(kbps) |
64 |
5.3 |
8 |
13 |
13.3 |
RTP封包长度(ms) |
20 |
30 |
20 |
20 |
30 |
净语音数据(bytes) |
160 |
20 |
20 |
33 |
50 |
分组包总长度(bytes) |
54+160 |
54+20 |
54+20 |
54+33 |
54+50 |
实际总速率(kbps) |
85.6 |
19.7 |
29.6 |
34.8 |
27.7 |
CPU需求 (MIPS) |
- |
16 |
18 |
~10 |
19 |
语音质量(PESQ MOS) |
4.5 |
3.7 |
3.9 |
3.4 |
4.0 |
iLBC - SIP电话一种新的编码协议
语音质量一直是VoIP应用的主要难点,如何保证和提高IP网络传输语音的通话效果,是VoIP应用迫切需要解决的问题。"iLBC"编解码的出现,解决了在包交换的IP网络中,传输语音所遇到的网络丢包严重影响通话质量等实际问题,实现了"语音质量的飞跃"。
在不同的网络丢包环境下,使用iLBC与G.729A、G.723.1编解码的语音质量比较。
无论在高丢包率条件下还是在没有丢包的条件下,iLBC的语音质量都优于目前流行的G.723.1, G.729A等标准编解码;而且丢包率越大,使用iLBC的语音质量优势越明显。通常情况下,为了衡量IP网络语音质量,将≥5%丢包率的网络情况定义为VoIP的极限网络条件。经过语音质量测试,即使在5%丢包率的情况下,iLBC仍然能够提供相当于GSM手机的语音质量。
对IP-PBX的编码要求
由表一可以看到,不同的语音编码协议有各种不同的带宽、话音质量、CPU处理要求,因此上述几种编码协议也没有一种是绝对可以取代其他的能力。G.711是胜于相对与今天内线TDM话音质量,而且无需任何CPU的处理;G.729是胜于相对占小的带宽,在同一Internet的带宽上,可以容下3倍的话音通道;但却需要更多CPU的处理能力,话音则质量逊于G.711;iLBC 类似G.729,但在有掉包率及延时的情况下,iLBC 比其他的编码都优胜。
因为以上原因,重庆申欧的IP-PBX 都能支持以上几种重要的语音编码协议。在局域网的环境里,有充足的带宽,所有的IP电话,语音网关都使用G.711协议,这样能达到最理想的话音效果;话音一旦进入了讯时捷IPX服务器后,讯时捷在往Internet传输话音时,便可以根据管理员的选择,对不同的连接点,自动转换成各种指定的压缩编码,达到节省带宽,高话音质量的目的。