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](https://github.com/bjdodson/iLBC-Android)?,同時code.google([http://code.google.com/p/android-ilbc/](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](http://download.csdn.net/detail/xyz_lmn/4594662)
參考:
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
5、http://www.cocoachina.com/bbs/read.php?tid=114755