音視訊–音訊入門

kirito_song發表於2018-12-18
音視訊–音訊入門

音訊入門

聲音三要素

  • 音調

    聲音震動的頻率。高音低音、女聲男生。

音視訊–音訊入門
  • 音量

    聲音震動的幅度。

音視訊–音訊入門
  • 音色

    取決於材質,本質是諧波。

人類聽覺範圍

音視訊–音訊入門

在進行音訊壓縮時,對於特定赫茲的資料(比如超聲波和次聲波),可以選擇忽略。


音訊的量化與編碼

量化的過程

音視訊–音訊入門

五張圖代表不同的階段:

  1. 擷取一個音訊片段

  2. 對音訊振幅進行取樣

    若干次橫向均分量化

  3. 對音訊高度進行量化

    若干次縱向均分

  4. 對片段進行編碼

    將量化的音訊資訊進行二進位制轉化

  5. 數字訊號轉化

    在二進位制1位置時進行發聲

  • 取樣大小

一個振幅高度取樣用多少位(bit)存放。通常是16位(bit)

  • 取樣率

在音訊中,每秒採集的高度資訊次數。8k、16k、32k、44.1k、48k

不同的編碼方式有不同的取樣率,比如AAC使用的是44.1k取樣率。

  • 聲道數

單聲道,雙聲道,多聲道

位元速率計算

取樣率×取樣大小×聲道數

音視訊–音訊入門

AAC編碼壓縮後可以大概128kb/s,AAC HE V2編碼可以達到32kb/s。


音訊壓縮

有失真壓縮技術

消除冗餘資料

關於冗餘資訊:

  1. 超出人類聽覺範圍
  2. 被遮蔽掉的音訊訊號
    • 頻域遮蔽
    • 時域遮蔽
  • 頻域遮蔽效應

一個聲音會掩蓋另一個聲音(圖中橫向為頻率,總想為分貝)。

紅色聲源會掩蓋其他紫色聲源而無法掩蓋綠色聲源

白色區域雖然在人耳聽覺範圍之內,但是由於音量不夠,也是聽不到的。

音視訊–音訊入門
  • 時域遮蔽效應

當一個高分貝的聲音出現時,其前後一定時間內的低分貝聲音會被遮蔽

該圖橫向為毫秒,縱向為分貝

音視訊–音訊入門

編碼過程

音視訊–音訊入門

無失真壓縮

哈夫曼無損編碼


音訊編解碼器

常見的音訊編解碼器:OPUS、ACC、Vorbis、Speex、iLBC、AMR、G.711

OPUS

當前十分流行的音訊編解碼器。內部具有基於口(速度快)、耳(高保真)兩個編解碼模型。

AAC

也是一種流行的音訊編解碼器。具有高保真的特性,由於RTMP協議的支援性良好,主要應用於直播業務中。

Speex

在AAC與OPUS之前的主流音訊編解碼器。包括迴音消除,降噪等等輔助模組。

G.711

固話的編解碼器

解碼器的比較

網上的測評結果中:OPUS>
ACC>
Vorbis

音視訊–音訊入門

上圖中橫軸是音訊編碼位元速率,縱軸是音訊頻帶資訊。從圖中我們可以獲得如下幾方面資訊。

  (1)對於固定位元速率的編碼標準,如G.711或者G.722,圖中採用單點表示,說明這兩個編碼標準是固定位元速率編碼標準。其他如Opus、Speex,它們的曲線是連續的,說明這類編碼標準是可變位元速率的編碼標準。

  (2)從頻帶方面看,G.711、G.722、AMR和iLBC等標準適用於narrowband(8khz取樣率)和wideband(16khz取樣率)範圍,針對普通的語音通話場景。AAC和MP3適用於fullband(48khz取樣率)範圍,針對特殊的音樂場景。而Opus適用於整個頻帶,可以進行最大範圍的動態調節,適用範圍最廣。

  (3)從標準的收費情況看,適用於網際網路傳輸的iLBC、Speex和Opus都是免費且開源的;適用於音樂場景的MP3和AAC,需要license授權,而且不開源。


AAC編解碼器

應用範圍廣

  1. 大部分的直播系統。
  2. RTMP傳輸協議支援ACC與Speex,但並不支援OPUS。
  3. 音訊編碼可以做到高保真。

產生的目的

取代MP3格式

MP3使用的是MPEG-2編解碼規範的有失真壓縮。而AAC使用的是MPEG-4規範,壓縮率更高,損耗更小。

常用規格

AAC LCAAC HE V1AAC HE V2

對應關係如下所示

音視訊–音訊入門
  • AAC LC (Low Complexity)

低複雜度,碼流128kb/s

  • AAC HE V1

AAC LC的基礎上增加了SBR(Spectral Band Replication),碼流64kb/s左右

SBR指的是頻段複製

簡要敘述一下,音樂的主要頻譜集中在低頻段,高頻段幅度很小,但很重要,決定了音質。

SBR把頻譜切割開來,降低低頻波段的取樣率以減少檔案大小,提高高頻波段的取樣率以提高音質。

  • AAC HE V2

AAC HE V1的基礎上增加了Parametric Stereo),碼流32kb/s左右

PS指的是引數立體聲

原來的立體聲檔案檔案大小是一個聲道的兩倍。

但是兩個聲道的聲音存在某種相似性,根據夏農資訊熵編碼定理,相關性應該被去掉才能減小檔案大小。所以PS技術儲存了一個聲道的全部資訊,然後,花很少的位元組用引數描述另一個聲道和它不同的地方。

AAC音訊檔案解析

  • ADIF

Audio Data Interchange Format 音訊資料交換格式

這種格式的特徵是可以確定的找到這個音訊資料的開始,不需進行在音訊資料流中間開始的解碼,即它的解碼必須在明確定義的開始處進行。故這種格式常用在磁碟檔案中。

  • ADTS

Audio Data Transport Stream 音訊資料傳輸流

種格式的特徵是它的每一幀頭部都包含一個同步字,解碼可以在這個流中任何位置開始。它的特徵類似於mp3資料流格式。

  • 二者區別

簡單說,ADTS可以在任意幀解碼,也就是說它每一幀都有頭資訊。ADIF只有一個統一的頭,所以必須得到所有的資料後解碼。

目前一般編碼後的和抽取出的都是ADTS格式的音訊流。

二者的頭部資訊以及組織結構也有區別,具體可以參閱《AAC幀格式及編碼介紹》


AAC的編解碼庫

Libfdk_AAC >
ffmpeg AAC >
libfaac >
libvo_aacenc

其中最常用的是Libfdk_AAC


AAC檔案處理流程

1. 判斷檔案格式,確定為ADIF或ADTS。

2. 若為ADIF,解ADIF頭資訊,跳至第6步。

3. 若為ADTS,尋找同步頭。

4. 解ADTS幀頭資訊。

5. 若有錯誤檢測,進行錯誤檢測。

6. 解塊資訊。

7. 解元素資訊。


參考資料

慕課網

網易視訊雲技術分享:音訊處理與壓縮技術漫談

AAC幀格式及編碼介紹

來源:https://juejin.im/post/5c175014e51d452b0b7bbf3d

相關文章