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

 

1.  概念算法

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

 

2. 背景 和 壓縮的必要性編碼

研究發現,直接採用PCM碼流進行存儲和傳輸存在很是大的冗餘度。spa

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

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

 

 

 

 

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

 

 

 

4.  有損編碼, 能夠採用消除冗餘信息的思路get

 

 

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

 

 

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

你能夠把這個藍色的音源理解爲一個愛吵架的女生,音調很高,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. 

 

 

 

.

相關文章
相關標籤/搜索