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
* iOS入门群:83702688
* android开发进阶群:241395671
*/
参考:
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
***********************************************************************
*转载务必在明显处注明:http://blog.csdn.net/xyz_lmn *
* 作者:张兴业 *
* 邮箱:xy-zhang#163.com *
***********************************************************************
分享到:
相关推荐
综合以上分析,这个项目源码实现了一个基本的Android即时通讯应用,具备两端语音通话功能,利用ILBC编解码技术优化了在不稳定网络环境下的语音质量。开发者可以在这个基础上进行扩展,增加文本聊天、视频通话等功能...
在Android平台上实现ILBC编解码,通常涉及以下步骤: 1. **导入库**:首先,需要在Android项目中导入ILBC的库文件,这通常是通过添加依赖项或者将ILBC的源代码集成到项目中完成的。 2. **编解码接口**:ILBC提供了...
3. **简单高效**:ILBC算法相对简单,编解码器实现的复杂度较低,适合在资源有限的移动设备上运行。 4. **回声抑制**:ILBC具有一定的回声抑制功能,减少回声对通话质量的影响。 5. **跨平台兼容**:ILBC是IETF标准...
ILBC的源代码在Android平台上用于实现音频编码和解码功能,尤其在移动通信环境中,它能够有效地处理网络丢包和抖动,从而保证通话质量。 1. **ILBC编码原理** ILBC采用了一种称为“块编码”的技术,将语音信号分割...
- 对端接收到ILBC数据后,同样通过JNI调用ILBC解码库将数据还原成原始音频流。 - 使用AudioTrack类将解码后的音频数据播放出来,完成通话的接收部分。 - 为了实现双向通话,需要设置一个监听器来处理接收的数据,...
在深入研究这个源代码时,可以学习到如何在Android平台上集成和实现SIP服务,包括用户认证、会话管理、媒体编码解码以及网络适应策略。此外,对于开发者来说,这将是一个宝贵的资源,帮助他们理解如何利用上述库构建...
通过Java Native Interface (JNI),可以在Android应用中集成第三方编解码库,如Opus、iLBC、Speex和FFmpeg等。Speex因其免费、无专利限制且专注于语音处理的特点,成为本文系统的理想选择。 在系统实现过程中,首先...
SILK是针对IP网络实时语音的编解码器。提供可变码率,可变复杂度。和speex类似,有NB(Narrowband)和MB(Mediumband)模式。从原理上看SILK像iBLC和speex的混合体。 SILK编码器由skype开发的SVOPC编解码器而来,是...
- **音频编解码**:如Opus、G.722、iLBC等,确保不同设备间的音频流畅传输。 - **视频编解码**:如H.264、VP8等,用于视频通话的编码和解码。 - **网络传输**:使用UDP或TCP进行数据传输,同时支持ICE...
Linphone(英语Linux电话的简称)是一个免费的VoIP及SIP...音频编解码器支持: Speex、G.711(µ-law、A-law)、GSM、Opus和iLBC(透过插件) 运行于Linux(GNOME)上的Linphone原始版本之一的用户界面 Linphone运
729,AMR和Opus语音编解码器,以及ZRTP和(DTLS)SRTP媒体封装。 出于对不依赖第三方推送通知服务的Android安全SIP用户代理的需求。 如果您需要进行视频通话,并且拥有支持LEVEL3上Camera2 API的Android 7.0或更...
这些应用的实现面临一系列技术挑战,包括跨平台支持(如Android、iOS、Windows和Mac),视频和音频编解码(如VP8、VP9、H264、H265、Opus、SILK和iLBC),信号处理(如回声消除AEC、自动增益控制AGC、噪声抑制NS和...
- **iLBC**:互联网低比特率编解码器,适用于窄带语音,具有抗丢包能力。 - **NetEQ**:网络语音均衡器,能处理网络抖动和丢包,保证音质的同时减少延迟。 - **AEC**:回声消除器,消除麦克风捕捉到的扬声器回声...
**MediaStreamer2 入门详解** ...其灵活的滤镜和图结构,以及对多种编解码格式的支持,使得它在实时通信领域有着广泛的应用价值。开发者可以通过理解其内部工作原理和数据流程,进行二次开发以满足特定需求。
Engine,当前主要支持Windows和Android,Linux/MAC/iOS也在开发中, 支持如下功能: 1. 音频采集(支持Windows Wave和Windows core),编码(当前主要支持ISAC, iLBC, PCM, g722等,可以扩展支持729,723等),...
5. **编解码器**: WebRTC在Chrome中通过VP8提供视频编解码支持,在音频方面则支持iSAC、iLBC、G.711和DTMF,默认情况下使用iSAC。 #### 五、WebRTC的未来发展计划 谷歌在博客中公布了WebRTC未来的几个关键发展方向...
1. **音视频引擎**:Libjingle提供了强大的音视频编解码能力,支持多种编码格式,如H.264、VP8等视频编码和Opus、iLBC等音频编码。它还包含了网络适应算法,以确保在网络条件不稳定时也能保持良好的通话质量。 2. *...
GIPS VoiceEngine提供了多种编码格式,如G.711、G.729、iLBC等,这些编码方式能在保证音质的同时,尽可能减少数据量,适应不同网络环境。 2. **回声消除**:在双向通信中,声音可能会通过扬声器反射回来,形成回声...