深入剖析iLBC的丟包補償技術(PLC)

來源:互聯網
上載者:User

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

 

一、PLC unit 的幾種情形

 

1、過去幀、當前幀都接收正確

      進入正常的iLBC decoder解碼流程,需要儲存當前幀的狀態資訊,這些狀態資訊包括LPC資訊、解碼後的殘差訊號等。如果下一幀的位元速率丟失的話,就要用到這些儲存的資訊。

 

2、僅當幀發生丟包

      如果當前幀沒有丟失,那麼進入PLC unit重建LPC係數和殘差訊號。後面會詳細介紹LPC和殘差訊號的補償方法。 

 

3、連續多幀發生丟包

     如果發生連續多幀丟包,那麼就需要多次進入PLC unit,並且需要利用經過補償的幀狀態資訊。值得注意的是,越靠後面丟失的幀越難以精確的重建,所以對連續丟包的增益採用逐幀遞減,以避免引入更大的訊號失真。 

 

4、過去幀經過PLC處理,需要與當前幀平滑處理

     為了使經過PLC補償的幀與接下來沒有丟包的幀保持語音連續而需要進行平滑,主要根據前後幀的相關性處理。 

 

二、PLC重建LPC係數

      iLBC 的PLC對於丟失LPC的補償是採用了過去幀的最後一個子幀的LPC係數來簡單的重建。這個方法是顯然的,因為無論從空間上還是時間上最後一個子幀都與當前丟失的LPC具有最大相關性。但是這種簡單的複製當處理連續多幀時也顯然會引入更大的失真。

 

三、PLC重建殘差訊號

      激勵訊號(殘差訊號)通常可以分為兩部分組成:准周期成分和類雜訊成分。因此PLC實際上首先需要重建這兩個部分,准周期成分可以根據測量前一幀的基音周期來近似得到,類雜訊成分則可以通過產生隨機雜訊得到,二者的能量比例也可以借鑒前一幀的比例關係。所以首先要對前一幀進行基音檢測,然後以基音同步的方式重建丟失幀的話音部分,然後利用相關性得到類雜訊的增益,最後進行混合以重建整個殘差訊號。

      在連續丟幀的情況下,為了減少各個補償幀之間的相關性,會將能量進行逐幀遞減,但依然會產生一定的聽覺雜訊。如果採用插入的方法,雖然可能音質會好些,但是卻會引入更大的延時。

 

四、iLBC PLC的缺點

 

      在連續丟幀的情況下,PLC所補償的各個語音幀具有相同的頻譜特性(相同的LPC造成)和基音頻率,非常容易引入一種可察覺的雜訊,尤其是當基音頻率較高的時候,這種因為過分的周期性所引起的。通過適當的插入可以緩解這一問題,但往往引入更大的延時。

 

參考資料:

1、IETF:RFC3951.txt

2、潘搏勝《iLBC解碼程式進階處理之研究》

 

一家之言,歡迎討論!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.