即时通讯音视频开发(七):音频基础及编码原理入门
前言
即時通訊應用中的實時音視頻技術,幾乎是IM開發中的最后一道高墻。原因在于:實時音視頻技術 = 音視頻處理技術 + 網絡傳輸技術 的橫向技術應用集合體,而公共互聯網不是為了實時通信設計的。
系列文章
- 《即時通訊音視頻開發(五):認識主流視頻編碼技術H.264》
- 《即時通訊音視頻開發(六):如何開始音頻編解碼技術的學習》
基礎概念
比特率:
表示經過編碼(壓縮)后的音頻數據每秒鐘需要用多少個比特來表示,單位常為kbps。
響度和強度:
聲音的主觀屬性響度表示的是一個聲音聽來有多響的程度。響度主要隨聲音的強度而變化,但也受頻率的影響。總的說,中頻純音聽來比低頻和高頻純音響一些。
采樣和采樣率:
采樣是把連續的時間信號,變成離散的數字信號。采樣率是指每秒鐘采集多少個樣本。
常見音頻格式
1.?WAV格式,是微軟公司開發的一種聲音文件格式,也叫波形聲音文件,是最早的數字音頻格式,被Windows平臺及其應用程序廣泛支持,壓縮率低。
2.?MIDI是Musical Instrument Digital Interface的縮寫,又稱作樂器數字接口,是數字音樂/電子合成樂器的統一國際標準。它定義了計算機音樂程序、數字合成器及其它電子設備交換音樂信號的方式,規定了不同廠家的電子樂器與計算機連接的電纜和硬件及設備間數據傳輸的協議,可以模擬多種樂器的聲音。MIDI文件就是MIDI格式的文件,在MIDI文件中存儲的是一些指令。把這些指令發送給聲卡,由聲卡按照指令將聲音合成出來。
3.?MP3全稱是MPEG-1 Audio Layer 3,它在1992年合并至MPEG規范中。MP3能夠以高音質、低采樣率對數字音頻文件進行壓縮。應用最普遍。
4.?MP3Pro是由瑞典Coding科技公司開發的,其中包含了兩大技術:一是來自于Coding科技公司所特有的解碼技術,二是由MP3的專利持有者法國湯姆森多媒體公司和德國Fraunhofer集成電路協會共同研究的一項譯碼技術。MP3Pro可以在基本不改變文件大小的情況下改善原先的MP3音樂音質。它能夠在用較低的比特率壓縮音頻文件的情況下,最大程度地保持壓縮前的音質。
5.?WMA?(Windows Media Audio)是微軟在互聯網音頻、視頻領域的力作。WMA格式是以減少數據流量但保持音質的方法來達到更高的壓縮率目的,其壓縮率一般可以達到1:18。此外,WMA還可以通過DRM(Digital Rights Management)保護版權。
6.?RealAudio是由Real Networks公司推出的一種文件格式,最大的特點就是可以實時傳輸音頻信息,尤其是在網速較慢的情況下,仍然可以較為流暢地傳送數據,因此RealAudio主要適用于網絡上的在線播放。現在的RealAudio文件格式主要有RA(RealAudio)、RM(RealMedia,RealAudio G2)、RMX(RealAudio Secured)等三種,這些文件的共同性在于隨著網絡帶寬的不同而改變聲音的質量,在保證大多數人聽到流暢聲音的前提下,令帶寬較寬敞的聽眾獲得較好的音質。
7.?Audible擁有四種不同的格式:Audible1、2、3、4。Audible.com網站主要是在互聯網上販賣有聲書籍,并對它們所銷售商品、文件通過四種Audible.com 專用音頻格式中的一種提供保護。每一種格式主要考慮音頻源以及所使用的收聽的設備。格式1、2和 3采用不同級別的語音壓縮,而格式4采用更低的采樣率和MP3相同的解碼方式,所得到語音吐辭更清楚,而且可以更有效地從網上進行下載。Audible 所采用的是他們自己的桌面播放工具,這就是Audible Manager,使用這種播放器就可以播放存放在PC或者是傳輸到便攜式播放器上的Audible格式文件。
8.?AAC實際上是高級音頻編碼的縮寫。AAC是由Fraunhofer IIS-A、杜比和AT&T共同開發的一種音頻格式,它是MPEG-2規范的一部分。AAC所采用的運算法則與MP3的運算法則有所不同,AAC通過結合其他的功能 來提高編碼效率。AAC的音頻算法在壓縮能力上遠遠超過了以前的一些壓縮算法(比如MP3等)。它還同時支持多達48個音軌、15個低頻音軌、更多種采樣率和比特率、多種語言的兼容能力、更高的解碼效率。總之,AAC可以在比MP3文件縮小30%的前提下提供更好的音質。
9.?Ogg Vorbis?是一種新的音頻壓縮格式,類似于MP3等現有的音樂格式。但有一點不同 的是,它是完全免費 、開放和沒有專利限制的。Vorbis 是這種音頻壓縮機制的名字,而Ogg則是一個計劃的名字,該計劃 意圖設計 一個完全開放性的多媒體系統。VORBIS也是有損壓縮,但通過使用更加先進的聲學模型去減少損失,因此,同樣位速率(Bit Rate)編碼的OGG與MP3相比聽起來更好一些。
10.?APE是一種無損壓縮音頻格式,在音質不降低的前提下,大小壓縮到傳統無損格式 WAV 文件的一半。
11.?FLAC即是Free Lossless Audio Codec的縮寫,是一套著名的自由音頻無損壓縮編碼,其特點是無損壓縮。
(與以上用于存儲和回放非實時壓縮協議的標準不同,常見的實時音頻通訊的編碼標準具體請見:《即時通訊音視頻開發(八):常見的實時音頻通訊編碼標準》)
音頻編碼的基本原理講解
?
1概述
語音編碼致力于:降低傳輸所需要的信道帶寬,同時保持輸入語音的高質量。
語音編碼的目標在于:設計低復雜度的編碼器以盡可能低的比特率實現高品質數據傳輸。
?
2靜音閾值曲線
指在安靜環境下,人耳在各個頻率能聽到聲音的閾值。
臨界頻帶
由于人耳對不同頻率的解析度不同,MPEG1/Audio將22khz內可感知的頻率范圍,依不同編碼層,不同取樣頻率,劃分成23~26個臨界頻帶。下圖列出理想臨界頻帶的中心頻率與頻寬。圖中可看到,人耳對低頻的解析度較好。
頻域上的掩蔽效應
幅值較大的信號會掩蔽頻率相近的幅值較小的信號,如下圖:
時域上的遮蔽效應
在一個很短的時間內,若出現了2個聲音,SPL(sound pressure level)較大的聲音會掩蔽SPL較小的聲音。時域掩蔽效應分前向掩蔽(pre-masking)和后向掩蔽(post-masking),其中post-masking的時間會比較長,約是pre-masking的10倍。
編碼基本手段(1):量化和量化器
基本概念:
- 量化和量化器:量化是把離散時間上的連續信號,轉化成離散時間上的離散信號。
- 常見的量化器有:均勻量化器,對數量化器,非均勻量化器。
- 量化過程追求的目標是:最小化量化誤差,并盡量減低量化器的復雜度(這2者本身就是一個矛盾)。
常見的量化器的優缺點:
- (a)均勻量化器:最簡單,性能最差,僅適應于電話語音。
- (b)對數量化器:比均勻量化器復雜,也容易實現,性能比均勻量化器好。
- (c)非均勻(Non-uniform)量化器:根據信號的分布情況,來設計量化器。信號密集的地方進行細致的量化,稀疏的地方進行粗略量化。
?
編碼基本手段(2):語音編碼器
?
1基本概念
語音編碼器分為三種類形:(a)波形編器 、(b)聲碼器 、(c)混合編碼器 。
波形編碼器以構造出背景噪單在內的模擬波形為目標。作用于所有輸入信號,因此會產生高質量的樣值并且耗費較高的比特率。 而聲碼器 (vocoder)不會再生原始波形。這組編碼器 會提取一組參數 ,這組參數被送到接收端,用來導出語音產生模形。聲碼器語音質量不夠好。混合編碼器,它融入了波形編碼器和聲器的長處。
?
2波形編碼器
波形編碼器的設計常獨立于信號。所以適應于各種信號的編碼而不限于語音。
時域編碼:
- a)PCM:pulse code modulation,是最簡單的編碼方式。僅僅是對信號的離散和量化,常采用對數量化。
- b)DPCM:differential pulse code modulation,差分脈沖編碼,只對樣本之間的差異進行編碼。前一個或多個樣本用來預測當前樣本值。用來做預測的樣本越多,預測值越精確。真實值和預測值之間的差值叫殘差,是編碼的對象。
- c)ADPCM:adaptive differential pulse code modulation,自適應差分脈沖編碼。即在DPCM的基礎上,根據信號的變化,適當調整量化器和預測器,使預測值更接近真實信號,殘差更小,壓縮效率更高。
頻域編碼:
? ?? ?? ? 頻域編碼是把信號分解成一系列不同頻率的元素,并進行獨立編碼。
- a)sub-band coding:子帶編碼是最簡單的頻域編碼技術。是將原始信號由時間域轉變為頻率域,然后將其分割為若干個子頻帶,并對其分別進行數字編碼的技術。它是利用帶通濾波器(BPF)組把原始信號分割為若干(例如m個)子頻帶(簡稱子帶)。將各子帶通過等效于單邊帶調幅的調制特性,將各子帶搬移到零頻率附近,分別經過BPF(共m個)之后,再以規定的速率(奈奎斯特速率)對各子帶輸出信號進行取樣,并對取樣數值進行通常的數字編碼,其設置m路數字編碼器。將各路數字編碼信號送到多路復用器,最后輸出子帶編碼數據流。對不同的子帶可以根據人耳感知模型,采用不同量化方式以及對子帶分配不同的比特數。
- b)transform coding:DCT編碼。
?
3聲碼器
channel vocoder: 利用人耳對相位的不敏感。
homomorphic vocoder:能有效地處理合成信號。
formant vocoder: 以用語音信號的絕大部分信息都位于共振峰的位置與帶寬上。
linear predictive vocoder:最常用的聲碼器。
?
4混合編碼器
波形編碼器試圖保留被編碼信號的波形,能以中等比特率(32kbps)提供高品質語音,但無法應用在低比特率場合。聲碼器試圖產生在聽覺上與被編碼信號相似的信號,能以低比特率提供可以理解的語音,但是所形成的語音聽起來不自然。
混合編碼器結合了2者的優點:
- RELP:?在線性預測的基礎上,對殘差進行編碼。機制為:只傳輸小部分殘差,在接受端重構全部殘差(把基帶的殘差進行拷貝)。
- MPC:?multi-pulse coding,對殘差去除相關性,用于彌補聲碼器將聲音簡單分為voiced和unvoiced,而沒有中間狀態的缺陷。
- CELP:?codebook excited linear prediction,用聲道預測其和基音預測器的級聯,更好逼近原始信號。
- MBE:?multiband excitation,多帶激勵,目的是避免CELP的大量運算,獲得比聲碼器更高的質量。
網易云信,你身邊的即時通訊和音視頻技術專家,了解我們,請戳網易云信官網
想要行業洞察和技術干貨,請關注網易云信博客
本文轉載自52im,作者:JackJiang
總結
以上是生活随笔為你收集整理的即时通讯音视频开发(七):音频基础及编码原理入门的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 即时通讯音视频开发(六):如何开始音频编
- 下一篇: 即时通讯音视频开发(八):常见的实时语音