您的位置:首页 > 其它

VoIP技术(3)--G.729-G.723-iLBC-语音编码

2010-08-16 15:48 218 查看
4.4 算法—G.729分析
在VoIP系统中应用最广泛的就是G.729和G.723.1两种。G.729编码是LPC参数编码,线性预测采用的是前馈型前向自适应技术,并使用预视提高合成模型的精度。预测模型系数根据当前帧和部分下一帧话音数据进行更新,G.729帧长为10ms,由2个子帧组成,预视5ms。由于采用的是前向型自适应技术,因此除了传送激励信号外,还需传送预测器系数。为了降低复杂度,G.729标准又制定了一个附件A,称为G.729A,它的复杂度降低了一半。G.729A与G.729比特流兼容。后来又指定了附件B,主要是包含了静音抑制处理。
由第三节关于RTP的介绍,可知RTP分组由RTP头部和净荷数据组成,如何将净荷数据封装到RTP分组中,并由UDP来进行传输,则有多种形式。下面根据典型的语音编码算法—G.729来进行说明。

G.729的编码速率为8kbit/s,帧长为10ms,每帧的大小为80bit,即10个字节。一个RTP分组通常包含两个帧。这样,20ms时间的净荷数据为20字节,加上RTP开销为12字节,UDP开销为8字节,IP开销为20字节,以太网开销为14字节,这样20ms内实际要传输的字节数为:20+12+8+20+14=74,传输速率为:74字节/20ms = 29600bit/s,见表2所示。
由表2可知,而当一个RTP分组仅包含1个帧时,传输速率为 51.2kbit/s,与64Kbit/s已经非常接近;而当一个RTP分组仅包含4个帧时,传输速率为 18.8kbit/s,但有较大的时延。因此一个RTP分组通常包含两个帧。为了降低传输速率,可以利用VAD/CNG 技术,通过引入静音帧来实现。



4.5 算法—G.723.1分析
G.723.1是一个双速率的LPC参数编码,低速率的编码比特率为5.3kbit/s,高速率的编码比特率为6.3kbit/s,线性预测也采用前馈型前向自适应技术,并使用预视。帧长(处理时延)为30ms,分为4个子帧,前视时延7.5ms。
由第三节关于RTP的介绍,可知RTP分组由RTP头部和净荷数据组成,如何将净荷数据封装到RTP分组中,并由UDP来进行传输,则有多种形式。下面根据典型的语音编码算法—G.723.1来进行说明。
G.723.1的编码速率为5.3kbit/s或6.3kbit/s,帧长为30ms,每帧的大小分别为20字节或24字节。一个RTP分组通常包含1个帧。这样,对于5.3kbit/s编码速率,30ms时间的净荷数据为20字节,加上RTP开销为12字节,UDP开销为8字节,IP开销为20字节,以太网开销为14字节,这样30ms内实际要传输的字节数为:20+12+8+20+14=74,传输速率为:74字节/30ms = 19733bit/s,见表3所示。



对于同编码速率,而当一个RTP分组仅包含2个帧时,传输速率为 12.5kbit/s,但有较大的时延。为了降低传输速率,也可以利用VAD/CNG 技术,通过引入静音帧来实现。
4.6 iLBC与G.729/G.723.2/G.711/GSM/T.38比较
iLBC是一种专为包交换网络通信设计的编解码,优于目前流行的G.729、G.723.1,对丢包进行了特有处理,既使在丢包率 相当高的网络环境下,仍可获得非常清晰的语音效果。他的编码输出速率是13.33和15.2kbps两种速率。
由第三节关于RTP的介绍,可知RTP分组由RTP头部和净荷数据组成,如何将净荷数据封装到RTP分组中,并由UDP来进行传输,则有多种形式。下面根据典型的语音编码算法—iLBC来进行说明。
iLBC的帧长速率是13.33kbps时为30ms,即编码速率为13.33kbit/s每帧的大小分别为50字节。模仿4.4节和4.5节的分析方法,并且为了比较各种方法的优劣,得出如下结论(以13.33速率为例):



语音质量一直是VoIP应用的主要难点,如何保证和提高IP网络传输语音的通话效果,是VoIP应用迫切需要解决的问题。“iLBC”编解码的出现,解决了在包交换的IP网络中,传输语音所遇到的网络丢包严重影响通话质量等实际问题,实现了“语音质量的飞跃”。
  下图为在不同的网络丢包环境下,使用iLBC与G.729A、G.723.1编解码的语音质量比较。



图13 iLBC和G.729A/G.723.1的比较
无论在高丢包率条件下还是在没有丢包的条件下,iLBC的语音质量都优于目前流行的G.723.1, G.729A等标准编解码;而且丢包率越大,使用iLBC的语音质量优势越明显。通常情况下,为了衡量IP网络语音质量,将≥5%丢包率的网络情况定义为VoIP的极限网络条件。经过语音质量测试,即使在5%丢包率的情况下,iLBC仍然能够提供相当于GSM手机的语音质量。如下图所示的比较结果:



图14 语音质量比较
4.7 语音传输带宽
在实际的应用过程经常要估算所需要的网络带宽。实际上,主要的网络带宽是用于语音传输,而用于控制数据的只占很小的一部分。

例如:两台中继网关之间传输2E1的语音
若采用的编码算法为G.729,RTP分组的封装长度为20ms。由于网关之间的传输的话路数为60,每路单向所需的网络带宽约为30kbit/s,这样实际所需的总带宽约为1.8Mbit/s。当然,还要考虑传送H.323等协议控制数据的网络带宽,以及一定的网络带宽余量,一般来说2.5~3.0Mbit/s的网络带宽就可以了。
例入:4路媒体网关的接入
安装媒体网关时必须考虑接入网络的带宽。若采用的编码算法为6.3kbit/s的G.723.1,RTP分组的封装长度为30ms,则所需的网络带宽为:4×20.8=83.2kbit/s,一般来说,只要120~150kbit/s的网络带宽即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: