iLBC 技術點

編碼:

iLBC的每frame/block保持獨立編碼,這樣才能保證在丟包的情況下,保持良好的重建語音質量;而CELP模型的codec往往都需要look head buffer 才能對當前幀進行編碼,這樣雖然可以使重建語音連接比較平滑,但是在網絡傳輸中一旦發生丟包,則連續性遭到破壞,解碼語音的質量就會下降。

與傳統的CELP模型的speech codec有較大不同,精髓在於幀內的獨立編碼,同時也利用了長時預測編碼(LPC)去除冗餘信息和語音信號本身準週期性的特徵構造動態碼書。與CELP模型codec相比,在丟包率較高的網絡情況下,語音質量不會下降很快。


解碼:

1、iLBC整個解碼流程的複雜度是編碼端複雜度的1/3~1/2;(參考網上定點iLBC代碼在ARM9上的實現)

2、低延時,較強的抗丟包性能,即在丟包率較高的情況仍然保持較好的語音質量;

3、特有的丟包補償(Packet Loss Concealment)模塊和語音增強(enhancer)模塊,這兩部分是解碼端最大的亮點;


PLC:

丟包補償技術(Packet Loss Concealment——PLC)是iLBC Codec中非常重要的一項技術,更是VOIP Codec應用中不可缺少的組成部分。iLBC的PLC只是在解碼端進行封包補償處理。在解碼端根據收到的bitstream逐幀進行解碼的過程中,iLBC decoder首先拿到每幀的 bitstream 要判斷當前幀是否完整,如果沒有問題則按照正常的iLBC 解碼流程重建語音信號,見《深入剖析iLBC 解碼器原理》;如果發生了語音封包丟失,那麼就進入PLC單元進行處理。PLC主要根據前一幀的解碼信息,利用基音同步重複的方法近似替代當前的丟失幀,以達到丟包補償。


Enhancer:

注:語音增強是指當語音信號被各種各樣的噪聲干擾、甚至淹沒後,從噪聲背景中提取有用的語音信號,抑制、降低噪聲干擾的技術。一句話,從含噪語音中提取儘可能純淨的原始語音

iLBC Enhancer本質上找出當前未增強殘差信號(sub-block)的前後各3個80樣點的週期序列,然後利用這6個基音同步序列來改進當前sub-block的音質,如果當前sub-block是話音部分就適當增加它的週期性,使聲音更加飽滿;如果當前sub-block具有非週期的特性,那麼就減少它的週期性,減少噪聲的影響。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章