音視頻學習從零到整(1)
音視頻學習從零到整(2)
音視頻學習從零到整(3)
音頻編碼
一.為什么要做音頻編碼?
之前的文章中,我帶著大家來計算過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更好的音質,高中低碼率下均有良好的表現,兼容不夠好,流媒體特性不支持.
- 適合場景:語言聊天的音頻消息場景
總結
簡單介紹了為什么需要做音頻編碼?音頻壓縮編碼的可能性來自哪里?音頻的數據冗余信息以及壓縮編碼格式的使用場景.