音視頻入門-5-音頻編碼原理、編碼器、ADTS格式


 

1.  概念

音頻壓縮技術指的是對原始數字音頻信號流(PCM編碼)運用的數字信號處理技術。

 

2. 背景 和 壓縮的必要性

研究發現,直接采用PCM碼流進行存儲和傳輸存在非常大的冗余度。

以CD為例,其采樣率為44.1KHz,量化精度為16比特,則1分鍾的立體聲音頻信號需占約10M字節的存儲容量,也就是說,一張CD唱盤的容量只有1小時左右。

事實上,在無損的條件下對聲音至少可進行4:1壓縮,即只用25%的數字量保留所有的信息,而在視頻領域壓縮比甚至可以達到幾百倍。

 

3. 注: 消除冗余信息是有損編碼

 

 

4.  有損編碼, 可以采用消除冗余信息的思路

 

 

使用傅里葉變換得到頻域信息,看着該頻域信息圖,我們來進行遮蔽效應的概念解釋:

划紅線處的藍色音源,威力很大,能把其他頻率的信息覆蓋,這是遮蔽源。

你可以把這個藍色的音源理解為一個愛吵架的女生,音調很高,1KHz, 嗓門很大(即聲音強度大概在70dB)。

這個女生一扯嗓子,就能把別人的聲音遮蔽掉,

那么這個女生扯嗓子時候最容易把誰的聲音遮蔽掉呢?

這就需要科學來解釋了,上面這張圖就是科學規律的總結。

頻率相近的三個棕色的音源是最容易被遮蔽掉的音源了,上圖也標識出了這些是被遮蔽的聲音。

那是不是只要嗓門(聲音強度)沒這個女生大的音源,都會被覆蓋呢?並不是!

 

上圖中紅圓圈所示的音源,頻率大概在0.25KHz,聲音強度超過了10dB, 但聲音強度遠遠不及70dB,  你可以把這理解為一個聲音低沉且嗓門也不大的魅力男嗓。

從上圖可以看出,該男嗓未處在愛吵架女生聲音的遮罩門檻內,

且同時也未處在靜音門檻內(一些冰箱、電風扇工作時發出的聲音可能處在靜音門檻范圍內,所以也被遮蔽了),

所以該男嗓的聲音強度雖然不及該女生,但是卻不會被遮蔽。

這就是頻域遮蔽效應的特點了。

 

在同一個時間點,誰的聲音強度小,就會被遮蔽。

 

既然我們知道存在這個遮蔽效應這條科學規律,我們就可以通過一定的算法分析出哪些聲音信息是會被遮蔽的,這就是消除冗余信息,是有損編碼的一種實現思路。

 

5. 無損編碼

熵編碼是無損編碼,具體的編碼方式有很多,如下圖

哈夫曼編碼(Huffman Coding),又稱霍夫曼編碼,是一種編碼方式,哈夫曼編碼是可變字長編碼(VLC)的一種。

Huffman於1952年提出一種編碼方法,該方法完全依據字符出現概率來構造異字頭的平均長度最短的碼字,

有時稱之為最佳編碼,一般就叫做Huffman編碼(有時也稱為霍夫曼編碼)。

 

6. 音頻編碼過程

 

7. 常見的音頻編解碼器

注:Speex包含回音消除功能。

 

 

 

8. AAC編碼器介紹

 

 

9. ADTS格式頭

 AAC前面有個數據頭,一般是ADTS格式的頭。

對於直播系統,一般使用AAC,我們使用的都是ADTS格式。

 注意,讀出來Audio Object Types值還需要加1,才是對應的類型。

如果讀出來Audio Object Types值是1,那么對應的是AAL LC類型。

 

 

ADTS頭解析網站

 

PS:

1. 有時候我們無法播放一段AAC數據,可能是缺少了ADTS頭信息,這是我們就需要想辦法加上這個頭信息。

2. 我們在使用ffmpeg時,雖然ADTS這些信息都會被封裝在其內部,但是我們需要具備基本的音視頻知識,以便更好地解決各類可能出現的麻煩問題。

 

 

10. 

 

 

 

 

.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM