iLBC 是为专为提供稳健的 IP 语音通信而开发的语音 codec,以窄带语音为设计基础,具有 8 kHz 的采样率。iLBC codec 支持两种基本的帧长度:13.3 kbps 比特率下编码帧长度为 30 ms;而 15.2 kbps比特率下编码帧长度则为 20 ms。

采用 iLBC 算法可以获得一个具有丢包响应控制的语音编码系统。iLBC 对每一个数据包的处理都能够独立于其它数据包来进行,是数据包通信的理想选择。即使 IP 丢包和/或延迟现象的恶化,这种 codec 的语音质量下降情况也不会太差。这与基于 CEIP 模型的一般 codec 的行为不同,这类 codec 最先是为交换电路网络或无线网络而设计的,是设计来恢复位错误而非丢包的。

丢包现象发生时,语音 codec 的一项相关基准是从单个丢包情况下恢复过来所需的帧/包数量。在 iLBC 的情况中,数量是零。在丢包之后的第一个数据包总仍能按原本安排的被精确解码。

iLBC 是一种窄带语音 codec,使用了整个 4kHz 频带,而大多数标准低比特率 codec 只利用从 300 Hz 到 3400 Hz 的频带。这一点对音质的影响是相当明显的。此外,iLBC 语音编码的频谱特性精确模拟了原始信号的特性,其语音比标准低比特率 codec 的更自然清晰。

总而言之,iLBC 算法为数据包网络实现了尖端的固定比特率编码,在质量与比特率之间取得了非常出色的平衡。

iLBC算法也是开源算法,在GitHub可以下载到,源地址如下https://github.com/bjdodson/iLBC-Android ,同时code.google(http://code.google.com/p/android-ilbc/)上也有一份,code.google.上的比较清晰,这一篇主要参

考了android-ilbc。

git下android-ilbc工程,导入到eclipse中,jni部分使用cygwin编译。git对有些开发者还不方便,我在csdn的资源模块

上传了一份编译好的,地址如下:http://download.csdn.net/detail/xyz_lmn/4594662

/**
* @author 张兴业
*  iOS入门群:83702688
*  android开发进阶群:241395671
*  我的新浪微博:@张兴业TBOW
*/

参考:

1、http://www.cnblogs.com/huaping-audio/archive/2008/11/23/1339527.html  iLBC编解码相关知识

2、http://code.google.com/p/android-ilbc/source/browse/jni/ilbc-codec.c?r=35e61e06caa30a46c41885c37b380acd61577f5c

3、https://github.com/lukeweber/iLBC-Android

4、http://www.ilbcfreeware.org/software.html

***********************************************************************

/**
* @author 张兴业
*  iOS入门群:83702688
*  android开发进阶群:241395671
*  我的新浪微博:@张兴业TBOW
*/

*

***********************************************************************

05-16 02:08