【转】深入剖析iLBC的丢包补偿技术(PLC)
? ? ?丟包補(bǔ)償技術(shù)(Packet?Loss?Concealment——PLC)是iLBC?Codec中非常重要的一項(xiàng)技術(shù),更是VOIP?Codec應(yīng)用中不可缺少的組成部分。iLBC的PLC只是在解碼端進(jìn)行封包補(bǔ)償處理。在解碼端根據(jù)收到的bitstream逐幀進(jìn)行解碼的過程中,iLBC?decoder首先拿到每幀的?bitstream?要判斷當(dāng)前幀是否完整,如果沒有問題則按照正常的iLBC?解碼流程重建語音信號(hào),見《深入剖析iLBC?解碼器原理》;如果發(fā)生了語音封包丟失,那么就進(jìn)入PLC單元進(jìn)行處理。PLC主要根據(jù)前一幀的解碼信息,利用基音同步重復(fù)的方法近似替代當(dāng)前的丟失幀,以達(dá)到丟包補(bǔ)償。?
?
一、PLC?unit?的幾種情形
?
1、過去幀、當(dāng)前幀都接收正確
??????進(jìn)入正常的iLBC?decoder解碼流程,需要保存當(dāng)前幀的狀態(tài)信息,這些狀態(tài)信息包括LPC信息、解碼后的殘差信號(hào)等。如果下一幀的比特率丟失的話,就要用到這些保存的信息。
?
2、僅當(dāng)幀發(fā)生丟包
??????如果當(dāng)前幀沒有丟失,那么進(jìn)入PLC?unit重建LPC系數(shù)和殘差信號(hào)。后面會(huì)詳細(xì)介紹LPC和殘差信號(hào)的補(bǔ)償方法。?
?
3、連續(xù)多幀發(fā)生丟包
?????如果發(fā)生連續(xù)多幀丟包,那么就需要多次進(jìn)入PLC?unit,并且需要利用經(jīng)過補(bǔ)償?shù)膸瑺顟B(tài)信息。值得注意的是,越靠后面丟失的幀越難以精確的重建,所以對(duì)連續(xù)丟包的增益采用逐幀遞減,以避免引入更大的信號(hào)失真。?
?
4、過去幀經(jīng)過PLC處理,需要與當(dāng)前幀平滑處理
?????為了使經(jīng)過PLC補(bǔ)償?shù)膸c接下來沒有丟包的幀保持語音連續(xù)而需要進(jìn)行平滑,主要根據(jù)前后幀的相關(guān)性處理。?
?
二、PLC重建LPC系數(shù)
??????iLBC?的PLC對(duì)于丟失LPC的補(bǔ)償是采用了過去幀的最后一個(gè)子幀的LPC系數(shù)來簡(jiǎn)單的重建。這個(gè)方法是顯然的,因?yàn)闊o論從空間上還是時(shí)間上最后一個(gè)子幀都與當(dāng)前丟失的LPC具有最大相關(guān)性。但是這種簡(jiǎn)單的復(fù)制當(dāng)處理連續(xù)多幀時(shí)也顯然會(huì)引入更大的失真。
?
三、PLC重建殘差信號(hào)
??????激勵(lì)信號(hào)(殘差信號(hào))通??梢苑譃閮刹糠纸M成:準(zhǔn)周期成分和類噪聲成分。因此PLC實(shí)際上首先需要重建這兩個(gè)部分,準(zhǔn)周期成分可以根據(jù)測(cè)量前一幀的基音周期來近似得到,類噪聲成分則可以通過產(chǎn)生隨機(jī)噪聲得到,二者的能量比例也可以借鑒前一幀的比例關(guān)系。所以首先要對(duì)前一幀進(jìn)行基音檢測(cè),然后以基音同步的方式重建丟失幀的話音部分,然后利用相關(guān)性得到類噪聲的增益,最后進(jìn)行混合以重建整個(gè)殘差信號(hào)。
??????在連續(xù)丟幀的情況下,為了減少各個(gè)補(bǔ)償幀之間的相關(guān)性,會(huì)將能量進(jìn)行逐幀遞減,但依然會(huì)產(chǎn)生一定的聽覺噪聲。如果采用內(nèi)插的方法,雖然可能音質(zhì)會(huì)好些,但是卻會(huì)引入更大的延時(shí)。
?
四、iLBC?PLC的缺點(diǎn)
?
??????在連續(xù)丟幀的情況下,PLC所補(bǔ)償?shù)母鱾€(gè)語音幀具有相同的頻譜特性(相同的LPC造成)和基音頻率,非常容易引入一種可察覺的噪聲,尤其是當(dāng)基音頻率較高的時(shí)候,這種因?yàn)檫^分的周期性所引起的。通過適當(dāng)?shù)膬?nèi)插可以緩解這一問題,但往往引入更大的延時(shí)。
?
參考資料:
1、IETF:RFC3951.txt
2、潘搏勝《iLBC解碼程序進(jìn)階處理之研究》
轉(zhuǎn)載于:https://www.cnblogs.com/tkppain/archive/2013/06/07/3123387.html
總結(jié)
以上是生活随笔為你收集整理的【转】深入剖析iLBC的丢包补偿技术(PLC)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Cisco BFD双向转发检测技术部署案
- 下一篇: ECSHOP系统纯静态网页的生成