零基礎入門音視頻(二)

音頻編碼

一.爲什麼要做音頻編碼?

之前的文章中,我帶着大家來計算過CD音質的數據採樣,每分鐘需要存儲空間約爲10.1MB.從存儲的角度或者網絡實時傳播的角度.這個數據量都是太大了.對於存儲和傳輸都是非常具有挑戰的.所以我們需要通過壓縮編碼

壓縮編碼的可能性

壓縮編碼的基本指標就是壓縮比,壓縮比通常小於1(如果等於或者大於1,是不是就失去的壓縮的意義了,壓縮目的就是爲了減少數據體量).壓縮算法分爲2種,有損壓縮和無損壓縮.

  • 無損壓縮:解壓後的數據可以完全復原.在常用的壓縮格式中,用的較多的都是有損壓縮.
  • 有損壓縮:解壓後的數據不能完全復原,會丟失一部分信息.壓縮比越小,丟失的信息就會越多,信號還原的失真就會越大.

需要根據不同的場景(考慮因素包括存儲設備,傳輸網絡環境,播放設備等),可以選用不同壓縮編碼算法.

壓縮編碼的原理實際上就是壓縮冗餘的信號.冗餘信號就是指不能被人耳感知的信號.包括人耳聽覺範圍之外的音頻信號以及被掩蓋掉的音頻信號.

  • 拓展小課堂
人耳掩蓋效應
  • 主要表現在頻域掩蓋效應與時域掩蓋效應.無論是在時域還是頻域上,被掩蓋掉的信息都認爲是冗餘信息,不進行編碼處理
  • 掩蔽效應指人的耳朵只對最明顯的聲音反應敏感,而對於不明顯的聲音,反應則較不爲敏感。例如在聲音的整個頻率譜中,如果某一個頻率段的聲音比較強,則人就對其它頻率段的聲音不敏感了。應用此原理,人們發明了mp3等壓縮的數字音樂格式,在這些格式的文件裏,只突出記錄了人耳朵較爲敏感的中頻段聲音,而對於較高和較低的頻率的聲音則簡略記錄,從而大大壓縮了所需的存儲空間。在人們欣賞音樂時,如果設備對高頻響應得比較好,則會使人感到低頻響應不好,反之亦然。

常用壓縮編碼格式

WAV編碼

WAV編碼的一種實現方式(其實它有非常多實現方式,但都是不會進行壓縮操作).就是在源PCM數據格式的前面加上44個字節.分別用來描述PCM的採樣率,聲道數,數據格式等信息.

  • 特點:音質非常好,大量軟件都支持其播放
  • 適合場合:多媒體開發的中間文件,保存音樂和音效素材
MP3編碼

MP3編碼具有不錯的壓縮比,而且聽感也接近於WAV文件,當然在不同的環境下,應該調整合適的參數來達到更好的效果.

  • 特點:音質在128Kbit/s以上表現不錯,壓縮比比較高.大量軟件和硬件都支持.兼容性高.
    適合場合:高比特率下對兼容性有要求的音樂欣賞.
AAC編碼

AAC是目前比較熱門的有損壓縮編碼技術,並且衍生了LC-AAC,HE-AAC,HE-AAC v2 三種主要編碼格式.

  • LC-AAC 是比較傳統的AAC,主要應用於中高碼率的場景編碼(>= 80Kbit/s)
  • HE-AAC 主要應用於低碼率場景的編碼(<= 48Kbit/s)
  • 特點:在小於128Kbit/s的碼率下表現優異,並且多用於視頻中的音頻編碼
  • 適合場景:於128Kbit/s以下的音頻編碼,多用於視頻中的音頻軌的編碼
Ogg編碼

Ogg編碼是一種非常有潛力的編碼,在各種碼率下都有比較優秀的表現.尤其在低碼率場景下.Ogg除了音質好之外,Ogg的編碼算法也是非常出色.可以用更小的碼率達到更好的音質.128Kbit/s的Ogg比192Kbit/s甚至更高碼率的MP3更優質.但目前由軟件還是硬件支持問題,都沒法達到與MP3的使用廣度.

  • 特點:可以用比MP3更小的碼率實現比MP3更好的音質,高中低碼率下均有良好的表現,兼容不夠好,流媒體特性不支持.
  • 適合場景:語言聊天的音頻消息場景

總結

簡單介紹了爲什麼需要做音頻編碼?音頻壓縮編碼的可能性來自哪裏?音頻的數據冗餘信息以及壓縮編碼格式的使用場景.

給大家推薦一個優秀的iOS交流平臺,平臺裏的夥伴們都是非常優秀的iOS開發人員,我們專注於技術的分享與技巧的交流,大家可以在平臺上討論技術,交流學習。歡迎大家的加入(想要進入的可加微信)。 18174412518

轉載鏈接:https://www.jianshu.com/p/e2a63dfcff1a

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章