音視頻--音頻入門


音頻入門

聲音三要素

  • 音調

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

  • 音量

    聲音震動的幅度。

  • 音色

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

人類聽覺範圍

在進行音頻壓縮時,對於特定赫茲的數據(好比超聲波和次聲波),能夠選擇忽略。


音頻的量化與編碼

量化的過程

五張圖表明不一樣的階段:html

  1. 截取一個音頻片斷ide

  2. 對音頻振幅進行採樣編碼

    若干次橫向均份量化3d

  3. 對音頻高度進行量化code

    若干次縱向均分orm

  4. 對片斷進行編碼cdn

    將量化的音頻信息進行二進制轉化視頻

  5. 數字信號轉化htm

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

  • 採樣大小

一個振幅高度採樣用多少位(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.7十一、G.72二、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幀格式及編碼介紹

相關文章
相關標籤/搜索