A. 常見的聲音壓縮標准有哪些它們分別採用什麼壓縮方法(試舉3例)
mp3
MP3全稱是動態影像專家壓縮標准音頻層面3(Moving Picture Experts Group Audio Layer III)。是當今較流行的一種數字音頻編碼和有損壓縮格式,它設計用來大幅度地降低音頻數據量,而對於大多數用戶來說重放的音質與最初的不壓縮音頻相比沒有明顯的下降。它是在1991年由位於德國埃爾朗根的研究組織Fraunhofer-Gesellschaft的一組工程師發明和標准化的。
ape
APE是目前流行的數字音樂文件格式之一。與MP3這類有損壓縮方式不同,APE是一種無損壓縮音頻技術,也就是說當你將從音頻CD上讀取的音頻數據文件壓縮成APE格式後,你還可以再將APE格式的文件還原,而還原後的音頻文件與壓縮前的一模一樣,沒有任何損失。APE的文件大小大概為CD的一半,但是隨著寬頻的普及,APE格式受到了許多音樂愛好者的喜愛,特別是對於希望通過網路傳輸音頻CD的朋友來說,APE可以幫助他們節約大量的資源。
wma
WMA的全稱是Windows Media Audio,它是微軟公司推出的與MP3格式齊名的一種新的音頻格式。由於WMA在壓縮比和音質方面都超過了MP3,更是遠勝於RA(Real Audio),即使在較低的采樣頻率下也能產生較好的音質。
在64kbps的數據速率時,在13000-20000Hz頻率段就能保留了大部分信息。
但64kbps的WMA的低頻表現實在有點令人失望,聽上去比較硬,如同加入了哇聲效果般,感覺非常不好,當然比同比特64K的mp3要好感覺聲音更集中。聽覺上64WMA的表現基本接近128kbps mp3的音質水平,但沒有達到。96K的wma略好於128K的mp3,WMA在高於128以上的各種比特率表現相差不大,高頻和泛音都很豐富,一般人聽不出WMA128Kbps以上的音質和音色的差異,總體感覺WMA的聲音偏硬,適合流行搖滾,如果是古典或者純人聲的話,感覺有點生硬,在低於128K時,WMA對於MP3擁有絕對優勢!128以上的WMA相比MP3會有薄的感覺。
在128kbps及以下碼流的試聽中WMA完全超過了MP3格式,低碼流之王不是浪得虛名的。但是當碼流上升到128kbp以後,WMA的音質卻並沒有如MP3一樣隨著碼流的提高而大大提升。
flac
FLAC即是Free Lossless Audio Codec的縮寫,中文可解為無損音頻壓縮編碼。FLAC是一套著名的自由音頻壓縮編碼,其特點是無損壓縮。不同於其他有損壓縮編碼如MP3 及 AAC,它不會破任何原有的音頻資訊,所以可以還原音樂光碟音質。現在它已被很多軟體及硬體音頻產品所支持。
簡而言之,FLAC與MP3相仿,但是是無損壓縮的,也就是說音頻以FLAC方式壓縮不會丟失任何信息。這種壓縮與Zip的方式類似,但是FLAC將給你更大的壓縮比率,因為FLAC是專門針對音頻的特點設計的壓縮方式,並且你可以使用播放器播放FLAC壓縮的文件,就象通常播放你的MP3文件一樣(現在已經有許多汽車播放器和家用音響設備支持FLAC,在FLAC的網站上你可以找到這些設備廠家的連接)。
FLAC是免費的並且支持大多數的操作系統,包括Windows,「unix」 (Linux, *BSD,Solaris,OS X,IRIX),BeOS,OS/2,和Amiga。並且FLAC提供了在開發工具autotools,MSVC,Watcom C,和Project Builder上的build系統。
B. 數字音頻壓縮的主要基本演算法有哪些
WAV:無損
是微軟公司開發的一種聲音文件格式,它符合 PIFFResource Interchange File Format 文件規范,用於保存WINDOWS平台的音頻信息資源,被WINDOWS平台及其應用程序所支持。「*.WAV」格式支持MSADPCM、CCITT A LAW等多種壓縮演算法,支持多種音頻位數、采樣頻率和聲道,標准格式的WAV文件和CD格式一樣,也是44.1K的采樣頻率,速率88K/秒,16位量化位數,看到了吧,WAV格式的聲音文件質量和CD相差無幾,也是目前PC機上廣為流行的聲音文件格式,幾乎所有的音頻編輯軟體都「認識」WAV格式。
這里順便提一下由蘋果公司開發的AIFF(Audio Interchange File Format)格式和為UNIX系統開發的AU格式,它們都和和WAV非常相像,在大多數的音頻編輯軟體中也都支持它們這幾種常見的音樂格式。
MP3:流行
MP3格式誕生於八十年代的德國,所謂的MP3也就是指的是MPEG標准中的音頻部分,也就是MPEG音頻層。根據壓縮質量和編碼處理的不同分為3層,分別對應 「*.mp1"/「*.mp2」/「*.mp3」這3種聲音文件。需要提醒大家注意的地方是:MPEG音頻文件的壓縮是一種有損壓縮,MPEG3音頻編碼具有10:1~12:1的高壓縮率,同時基本保持低音頻部分不失真,但是犧牲了聲音文件中12KHz到16KHz高音頻這部分的質量來換取文件的尺寸,相同長度的音樂文件,用*.mp3格式來儲存,一般只有*.wav文件的1/10,而音質要次於CD格式或WAV格式的聲音文件。由於其文件尺寸小,音質好;所以在它問世之初還沒有什麼別的音頻格式可以與之匹敵,因而為*.mp3格式的發展提供了良好的條件。直到現在,這種格式還是風靡一時,作為主流音頻格式的地位難以被撼動。但是樹大招風,MP3音樂的版權問題也一直是找不到辦法解決,因為MP3沒有版權保護技術,說白了也就是誰都可以用。
MP3格式壓縮音樂的采樣頻率有很多種,可以用64Kbps或更低的采樣頻率節省空間,也可以用320Kbps的標准達到極高的音質。我們用裝有Fraunhofer IIS Mpeg Lyaer3的 MP3編碼器(現在效果最好的編碼器)MusicMatch Jukebox 6.0在128Kbps的頻率下編碼一首3分鍾的歌曲,得到2.82MB的MP3文件。採用預設的CBR(固定采樣頻率)技術可以以固定的頻率采樣一首歌曲,而VBR(可變采樣頻率)則可以在音樂「忙」的時候加大采樣的頻率獲取更高的音質,不過產生的MP3文件可能在某些播放器上無法播放。我們把VBR的級別設定成為與前面的CBR文件的音質基本一樣,生成的VBR MP3文件為2.9MB。
MIDI:作曲家最愛
經常玩音樂的人應該常聽到MIDI(Musical Instrument Digital Interface)這個詞,MIDI允許數字合成器和其他設備交換數據。MID文件格式由MIDI繼承而來。MID文件並不是一段錄制好的聲音,而是記錄聲音的信息,然後在告訴音效卡如何再現音樂的一組指令。這樣一個MIDI文件每存1分鍾的音樂只用大約5~10KB。今天,MID文件主要用於原始樂器作品,流行歌曲的業余表演,游戲音軌以及電子賀卡等。*.mid文件重放的效果完全依賴音效卡的檔次。*.mid格式的最大用處是在電腦作曲領域。*.mid文件可以用作曲軟體寫出,也可以通過音效卡的 MIDI口把外接音序器演奏的樂曲輸入電腦里,製成*.mid文件。
WMA:最具實力
WMA (Windows Media Audio) 格式是來自於微軟的重量級選手,後台強硬,音質要強於MP3格式,更遠勝於RA格式,它和日本YAMAHA公司開發的VQF格式一樣,是以減少數據流量但保持音質的方法來達到比MP3壓縮率更高的目的,WMA的壓縮率一般都可以達到1:18左右,WMA的另一個優點是內容提供商可以通過DRM(Digital Rights Management)方案如Windows Media Rights Manager 7加入防拷貝保護。這種內置了版權保護技術可以限制播放時間和播放次數甚至於播放的機器等等,這對被盜版攪得焦頭亂額的音樂公司來說可是一個福音,另外 WMA還支持音頻流(Stream) 技術,適合在網路上在線播放,作為微軟搶占網路音樂的開路先鋒可以說是技術領先、風頭強勁,更方便的是不用象MP3那樣需要安裝額外的播放器,而 Windows操作系統和Windows Media Player的無縫捆綁讓你只要安裝了windows操作系統就可以直接播放WMA音樂,新版本的Windows Media Player7.0更是增加了直接把CD光碟轉換為WMA聲音格式的功能,在新出品的操作系統Windows XP中,WMA是默認的編碼格式,大家知道Netscape的遭遇,現在「狼」又來了。WMA這種格式在錄制時可以對音質進行調節。同一格式,音質好的可與CD媲美,壓縮率較高的可用於網路廣播。雖然現在網路上還不是很流行,但是在微軟的大規模推廣下已經是得到了越來越多站點的承認和大力支持,在網路音樂領域中直逼*.mp3,在網路廣播方面,也正在瓜分Real打下的天下。因此,幾乎所有的音頻格式都感受到了WMA格式的壓力。
RealAudio:流動旋律
RealAudio主要適用於在網路上的在線音樂欣賞,現在大多數的用戶仍然在使用56Kbps或更低速率的Modem,所以典型的回放並非最好的音質。有的下載站點會提示你根據你的Modem速率選擇最佳的Real文件。現在real的的文件格式主要有這么幾種:有RA(RealAudio)、 RM(RealMedia,RealAudio G2)、RMX(RealAudio Secured),還有更多。這些格式的特點是可以隨網路帶寬的不同而改變聲音的質量,在保證大多數人聽到流暢聲音的前提下,令帶寬較富裕的聽眾獲得較好的音質。
近來隨著網路帶寬的普遍改善,Real公司正推出用於網路廣播的、達到CD音質的格式。如果你的RealPlayer軟體不能處理這種格式,它就會提醒你下載一個免費的升級包。許多音樂網站 提供了歌曲的Real格式的試聽版本。現在最新的版本是RealPlayer 11。
VQF:無人問津
雅馬哈公司另一種格式是*.vqf,它的核心是減少數據流量但保持音質的方法來達到更高的壓縮比,可以說技術上也是很先進的,但是由於宣傳不力,這種格式難有用武之地。*.vqf可以用雅馬哈的播放器播放。同時雅馬哈也提供從*.wav文件轉換到*.vqf文件的軟體。 此文件缺少特點外加缺乏宣傳,現在幾乎已經宣布死刑了。
OGG:新生代音頻格式
ogg格式完全開源,完全免費, 和mp3不相上下的新格式。 與MP3類似,OGGVorbis也是對音頻進行有損壓縮編碼,但通過使用更加先進的聲學模型去減少損失,因此,相同碼率編碼的OGGVorbis比MP3音質更好一些,文件也更小一些。另外,MP3格式是受專利保護的。發布或者銷售MP3編碼器、MP3解碼器、MP3格式音樂作品,都需要付專利使用費。而OGGVorbis就完全沒有這個問題。目前,OGGVorbis雖然還不普及,但在音樂軟體、游戲音效、便攜播放器、網路瀏覽器上都得到廣泛支持。
FLAC:自由無損音頻格式
FLAC即是Free Lossless Audio Codec的縮寫,中文可解為無損音頻壓縮編碼。FLAC是一套著名的自由音頻壓縮編碼,其特點是無損壓縮。不同於其他有損壓縮編碼如MP3 及AAC,它不會破壞任何原有的音頻資訊,所以可以還原音樂光碟音質。現在它已被很多軟體及硬體音頻產品所支持。FLAC是免費的並且支持大多數的操作系統,包括 Windows,基於Unix內核而開發的系統 (Linux, *BSD,Solaris,OSX,IRIX),BeOS,OS/2,Amiga。並且FLAC提供了在開發工具 autotools,MSVC,Watcom C,ProjectBuilder上的build系統。
APE:最有前途的網路無損格式
APE是目前流行的數字音樂文件格式之一。與MP3這類有損壓縮方式不同,APE是一種無損壓縮音頻技術,也就是說當你將從音頻CD上讀取的音頻數據文件壓縮成APE格式後,你還可以再將APE格式的文件還原,而還原後的音頻文件與壓縮前的一模一樣,沒有任何損失。APE的文件大小大概為CD的一半,但是隨著寬頻的普及,APE格式受到了許多音樂愛好者的喜愛,特別是對於希望通過網路傳輸音頻CD的朋友來說,APE可以幫助他們節約大量的資源。
作為數字音樂文件格式的標准,WAV格式容量過大,因而使用起來很不方便。因此,一般情況下我們把它壓縮為MP3或 WMA 格式。壓縮方法有無損壓縮,有損壓縮,以及混成壓縮。MPEG, JPEG就屬於混成壓縮,如果把壓縮的數據還原回去,數據其實是不一樣的。當然,人耳是無法分辨的。因此,如果把 MP3, OGG格式從壓縮的狀態還原回去的話,就會產生損失。
然而APE壓縮格式即使還原,也能毫無損失地保留原有音質。所以,APE可以無損失高音質地壓縮和還原。當然,目前只能把音樂CD中的曲目和未壓縮的WAV文件轉換成APE格式,MP3文件還無法轉換為APE格式。事實上APE的壓縮率並不高,雖然音質保持得很好,但是壓縮後的容量也沒小多少。一個34MB的WAV文件,壓縮為APE格式後,仍有17MB左右。對於一整張CD來說,壓縮省下來的容量還是可觀的。
APE的本質,其實它是一種無損壓縮音頻格式。龐大的WAV音頻文件可以通過Monkey's Audio這個軟體壓縮為APE。很多時候它被用做網路音頻文件傳輸,因為被壓縮後的APE文件容量要比WAV源文件小一半多,可以節約傳輸所用的時間。更重要的是,通過Monkey's Audio解壓縮還原以後得到的WAV文件可以做到與壓縮前的源文件完全一致。所以APE被譽為「無損音頻壓縮格式」,Monkey''s Audio被譽為「無損音頻壓縮軟體」。與採用WinZip或者WinRAR這類專業數據壓縮軟體來壓縮音頻文件不同,壓縮之後的APE音頻文件是可以直接被播放的。Monkey's Audio會向Winamp中安裝一個「in_APE.dll」插件,從而使Winamp也具備播放APE文件的能力。同樣foobar2000,以及千千靜聽也能支持APE的播放。
C. 語音壓縮編碼基本概念
通常把低於 64kbit/s 速率的語音編碼方法稱為語音壓縮編碼技術。
常見的話音壓縮編碼方法有:
僅由前鄰樣值進行預測稱為一階預測;由多個過去樣值進行預測稱為多階預測,預測表達式如下:
一階預測:
多階預測:
顯然多階預測的精度要高一些,但復雜度也高。
1)基本原理
差值脈沖編碼調制 DPCM,是利用語音信號的相關性,對相鄰樣值的差值進行編碼。
其中, 為 時刻的樣值, 為前鄰時刻的樣值。
對相鄰樣值的差值進行編碼,實際是對 樣值 與過去的樣值為基礎得到的 當前樣值的估值(預測值) 之間的差值進行量化編碼的。
2)DPCM的編碼速率
樣值差值的動態范圍比樣值本身的動態范圍小得多,則量化電平較少,在保證話音質量要求下,可降低編碼速率。相比8位碼的1路數碼率為64kbit/s的PCM編碼,DPCM相對差值編4位碼,編碼速率為32kbit/s。
為了容易實現,常採用固定預測器。輸入信號與預測信號的差值大,從而造成 誤差增大,話音質量受影響 。故為了提高DPCM方式的質量選擇採用 自適應 措施。
在DPCM的基礎上增加 自適應預測 和 自適應量化 。
將輸入的音頻信號的頻帶分成若干個連續的頻段,每個頻帶稱為子帶,然後針對各個子帶中的音頻信號採用不同的編碼方案以降低碼率,保證編碼質量,但復雜度偏高。比如對於低頻段採用較多的編碼位數,對於高頻段採用較少的編碼位數,整體上降低碼率。
子帶編碼是波形編碼和頻域編碼的結合,是屬於混合編碼。
將信號分為若干個子帶進行編碼有以下兩個優點:
子帶編碼中,編碼所需要的總速率 I 為
其中, 為第 k 個子帶的抽樣頻率,每個樣值採用 位比特編碼。
比如若設等帶寬子帶寬編碼的編碼速率為
則
若各子帶樣值編碼比特數的平均值為R
則有:
例如,一個4個子帶的SBC系統,子帶分別為[0 800],[800 1600],[1600 2400],[2400 3200],即為等帶寬子帶編碼且每個子帶的帶寬為800Hz,如果忽略同步的邊帶信息,子帶的比特分配分別為3,2,1,0 比特/樣值(即每個子帶的編碼位數 ),則SBC編碼系統總的傳輸速率為
D. 基礎篇_8.音頻編碼MP3\AAC
學習整理的相關章節鏈接:
基礎篇_1.音視頻學習框架
基礎篇_2. 顏色空間模型 RBG、YUV、HSV
基礎篇_3.圖像編碼之Bmp
基礎篇_4.音頻基礎概念
基礎篇_5.音頻數據採集
基礎篇_6.音頻編碼PCM
基礎篇_7.音頻編碼WAV
基礎篇_8.音頻編碼MP3AAC
mp3編碼詳細信息參考如下鏈接
https://www.jianshu.com/p/58df71a19901
AAC是高級音頻編碼(Advanced Audio Coding)的縮寫,出現於1997年,最初是基於MPEG-2的音頻編碼技術。由Fraunhofer IIS、Dolby Laboratories、AT&T、Sony等公司共同開發,目的是取代MP3格式。2000年,MPEG-4標准出台,AAC重新集成了其它技術(PS,SBR),為區別於傳統的MPEG-2 AAC,故含有SBR或PS特性的AAC又稱為MPEG-4 AAC。
AAC是新一代的音頻有損壓縮技術,它通過一些附加的編碼技術(比如PS,SBR等),衍生出了LC-AAC,HE-AAC,HE-AACv2三種主要的編碼,LC-AAC就是比較傳統的AAC,相對而言,主要用於中高碼率(>=80Kbps),HE-AAC(相當於AAC+SBR)主要用於中低碼(<=80Kbps),而新近推出的HE-AACv2(相當於AAC+SBR+PS)主要用於低碼率(<=48Kbps),事實上大部分編碼器設成<=48Kbps自動啟用PS技術,而>48Kbps就不加PS,就相當於普通的HE-AAC
AAC共有9種規格,以適應不同的場合的需要:
MPEG-2 AAC LC 低復雜度規格(Low Complexity)--比較簡單,沒有增益控制,但提高了編碼效率,在中等碼率的編碼效率以及音質方面,都能找到平衡點
MPEG-2 AAC Main 主規格
MPEG-2 AAC SSR 可變采樣率規格(Scaleable Sample Rate)
MPEG-4 AAC LC 低復雜度規格(Low Complexity)------現在的手機比較常見的MP4文件中的音頻部份就包括了該規格音頻文件
MPEG-4 AAC Main 主規格 ------包含了除增益控制之外的全部功能,其音質最好
MPEG-4 AAC SSR 可變采樣率規格(Scaleable Sample Rate)
MPEG-4 AAC LTP 長時期預測規格(Long Term Predicition)
MPEG-4 AAC LD 低延遲規格(Low Delay)
MPEG-4 AAC HE 高效率規格(High Efficiency)-----這種規格適合用於低碼率編碼,有
Nero ACC 編碼器支持
目前使用最多的是 LC和HE(適合低碼率) 。流行的Nero AAC編碼程序只支持LC,HE,HEv2這三種規格,編碼後的AAC音頻,規格顯示都是LC。 HE其實就是AAC(LC)+SBR技術,HEv2就是AAC(LC)+SBR+PS技術;
** Hev1和HEv2用此圖簡單表示:**
** (圖中AAC即指的是原來的AAC-LC)**
** HE:「High Efficiency」(高效性)。 HE-AAC v1(又稱AACPlusV1,SBR),用容器的方法實現了AAC(LC)+SBR技術。 SBR其實代表的是Spectral Band Replication(頻段復制)**。簡要敘述一下,音樂的主要頻譜集中在低頻段,高頻段幅度很小,但很重要,決定了音質。如果對整個頻段編碼,若是為了保護高頻就會造成低頻段編碼過細以致文件巨大;若是保存了低頻的主要成分而失去高頻成分就會喪失音質。SBR把頻譜切割開來,低頻單獨編碼保存主要成分,高頻單獨放大編碼保存音質,「統籌兼顧」了,在減少文件大小的情況下還保存了音質,完美的化解這一矛盾。
** HEv2:**用容器的方法包含了HE-AAC v1和PS技術。PS指「parametric stereo」(參數立體聲)。原來的立體聲文件文件大小是一個聲道的兩倍。但是兩個聲道的聲音存在某種相似性,根據香農信息熵編碼定理,相關性應該被去掉才能減小文件大小。所以PS技術存儲了一個聲道的全部信息,然後,花很少的位元組用參數描述另一個聲道和它不同的地方
(1)AAC是一種 高壓縮比 的音頻壓縮演算法,但它的 壓縮比要遠超過較老的音頻壓縮演算法,如AC-3、MP3 等。並且其 質量可以同未壓縮的CD音質相媲美 。
(2)同其他類似的音頻編碼演算法一樣,AAC也是採用了變換編碼演算法,但AAC使用了解析度更高的濾波器組,因此它可以達到更高的壓縮比。
(3)AAC使用了 臨時雜訊重整、後向自適應線性預測、聯合立體聲技術和量化哈夫曼編碼 等最新技術,這些新技術的使用都使壓縮比得到進一步的提高。
(4)AAC支持 更多種采樣率和比特率、支持1個到48個音軌、支持多達15個低頻音軌、具有多種語言的兼容能力、還有多達15個內嵌數據流 。
(5)AAC支持 更寬的聲音頻率范圍,最高可達到96kHz,最低可達8KHz ,遠寬於MP3的16KHz-48kHz的范圍。
(6)不同於MP3及WMA, AAC幾乎不損失聲音頻率中的甚高、甚低頻率成分 ,並且比WMA在頻譜結構上更接近於原始音頻,因而聲音的保真度更好。專業評測中表明, AAC比WMA聲音更清晰,而且更接近原音 。
(7)AAC採用優化的演算法達到了 更高的解碼效率 ,解碼時只需較少的處理能力。
ADIF : Audio Data Interchange Format 音頻數據交換格式 。這種格式的特徵是 可以確定的找到這個音頻數據的開始 ,不需進行在音頻數據流中間開始的解碼,即 它的解碼必須在明確定義的開始處進行。故這種格式常用在磁碟文件中 。
ADTS : Audio Data Transport Stream 音頻數據傳輸流 。這種格式的特徵是它 是一個有同步字的比特流,解碼可以在這個流中任何位置開始 。它的特徵類似於mp3數據流格式。
簡單說,ADTS可以在任意幀解碼,也就是說它每一幀都有頭信息。ADIF只有一個統一的頭,所以必須得到所有的數據後解碼。且這兩種的header的格式也是不同的,目前一般編碼後的和抽取出的都是ADTS格式的音頻流。兩者具體的組織結構如下所示:
AAC的ADIF格式見下圖:
AAC的ADTS的一般格式見下圖:
圖中表示出了ADTS一幀的簡明結構,其兩邊的空白矩形表示一幀前後的數據。
ADIF 的頭信息:
ADIF頭信息位於AAC文件的起始處,接下來就是連續的 raw data blocks。
組成ADIF頭信息的各個域如下所示:
ADTS 的固定頭信息:
ADTS的可變頭信息:
(1) 幀同步目的在於找出幀頭在比特流中的位置 ,13818-7規定,aac ADTS格式的幀頭同步字為12比特的「1111 1111 1111」.
(2)ADTS的頭信息為兩部分組成,其一為固定頭信息,緊接著是可變頭信息。固定頭信息中的數據每一幀都相同,而可變頭信息則在幀與幀之間可變。
在AAC中,原始數據塊的組成可能有六種不同的元素:
SCE: Single Channel Element單通道元素 。單通道元素基本上只由一個ICS組成。一個原始數據塊最可能由16個SCE組成。
CPE: Channel Pair Element 雙通道元素 ,由兩個可能共享邊信息的ICS和一些聯合立體聲編碼信息組成。
CCE: Coupling Channel Element 藕合通道元素 。代表一個塊的多通道聯合立體聲信息或者多語種程序的對話信息。
LFE: Low Frequency Element 低頻元素 。包含了一個加強低采樣頻率的通道。
DSE: Data Stream Element 數據流元素 ,包含了一些並不屬於音頻的附加信息。
PCE: Program Config Element 程序配置元素 。包含了聲道的配置信息。它可能出現在ADIF 頭部信息中。
FIL: Fill Element 填充元素 。包含了一些擴展信息。如SBR,動態范圍控制信息等。
AAC解碼流程
[圖片上傳失敗...(image-eaf24c-1543569949388)]
如圖:
在主控模塊開始運行後,主控模塊將AAC比特流的一部分放入輸入緩沖區,通過 查找同步字得到一幀的起始 ,找到後,根據ISO/IEC 13818-7所述的語法 開始進行Noisless Decoding(無噪解碼),無噪解碼實際上就是哈夫曼解碼,通過反量化(Dequantize)、聯合立體聲(Joint Stereo),知覺雜訊替換(PNS),瞬時雜訊整形(TNS),反離散餘弦變換(IMDCT),頻段復制 (SBR)這幾個模塊之後,得出左右聲道的PCM碼流 ,再由主控模塊將其放入輸出緩沖區輸出到聲音播放設備。
技術解析:
1.主控模塊:
所謂的主控模塊,它的主要任務是操作輸入輸出緩沖區,調用其它各模塊協同工作。
其中,輸入輸出緩沖區均由DSP控制模塊提供介面。輸出緩沖區中將存放的數據為解碼出來的PCM數據,代表了聲音的振幅。它由一塊固定長度的緩沖區構成,通過調用DSP控制模塊的介面函數,得到頭指針,在完成輸出緩沖區的填充後,調用中斷處理輸出至I2S介面所連接的音頻ADC晶元(立體聲音頻DAC和DirectDrive耳機放大器)輸出模擬聲音。
2.Noisless Decoding(無噪解碼):
無噪編碼就是哈夫曼編碼,它的作用在於進一步減少尺度因子和量化後頻譜的冗餘,
即將尺度因子和量化後的頻譜信息進行哈夫曼編碼。全局增益編碼成一個8位的無符號整數,第一個尺度因子與全局增益值進行差分編碼後再使用尺度因子編碼表進行哈夫曼編碼。後續的各尺度因子都與前一個尺度因子進行差分編碼。量化頻譜的無噪編碼有兩個頻譜系數的劃分。其一為4元組和2元組的劃分,另一個為節劃分。對前一個劃分來說,確定了一次哈夫曼表查找出的數值是4個還是2個。對後一個劃分來說,確定了應該用哪一個哈夫曼表,一節中含有若乾的尺度因子帶並且每節只用一個哈夫曼表。
——分段
無雜訊編碼將輸入的1024個量化頻譜系數分為幾個段(section),段內的各點均使用
同一個哈夫曼表,考慮到編碼效率,每一段的邊界最好同尺度因子帶的邊界重合。所以每一段必段傳送信息應該有:段長度,所在的尺度因子帶,使用的哈夫曼表。
——分組和交替
分組是指忽略頻譜系數所在窗,將連續的,具有相同尺度因子帶的頻譜系數分為一組放在
一起,共享一個尺度因子從而得到更好的編碼效率。這樣做必然會引起交替,即本來是以
c[組][窗][尺度因子帶][ 系數索引]為順序的系數排列,變為將尺度因子帶同的系數放在一起: c[組][尺度因子帶][窗][ 系數索引]
這樣就引起了相同窗的系數的交替。
——大量化值的處理
大量化值在AAC中有兩種處理方法:在哈夫曼編碼表中使用escape標志或使用脈沖
escape方法。前者跟mp3編碼方法相似,在許多大量化值出現時採用專門的哈夫曼表,這個表暗示了它的使用將會在哈夫曼編碼後面跟跟一對escape值及對值的符號。在用脈沖escape方法時,大數值被減去一個差值變為小數值,然後使用哈夫曼表編碼,後面會跟一個脈沖結構來幫助差值的還原.
3.尺度因子解碼及逆量化
在AAC編碼中,逆量化頻譜系數是由一個非均勻量化器來實現的,在解碼中需進行其逆運算。即保持符號並進行4/3次冪運算。在頻域調整量化雜訊的基本方法就是用尺度因子來進行雜訊整形。尺度因子就是一個用來改變在一個尺度因子帶的所有的頻譜系數的振幅增益值。使用尺度因子這種機制是為了使用非均勻量化器在頻域中改變數化雜訊的比特分配。
——尺度因子帶(scalefactor-band)
頻率線根據人耳的聽覺特性被分成多個組,每個組對應若干個尺度因子,這些組就叫做尺度因子帶。為了減少信息含有短窗的邊信息,連續的短窗可能會被分為一組,即將若干個短窗當成一個窗口一起傳送,然後尺度因子將會作用到所有分組後的窗口去。
4.聯合立體聲(Joint Stereo)
聯合立體聲的是對原來的取樣進行的一定的渲染工作,使聲音更」好聽」些。
5.知覺雜訊替換(PNS)
知覺雜訊替換模塊是一種以參數編碼的方式模擬雜訊的模塊。在判別出音頻值中的噪
聲後,將這些雜訊不進行量化編碼,而是採用一些參數告訴解碼器端這是某種雜訊,然後解碼器端將會對這些雜訊用一些隨機的編碼來製造出這一類型的雜訊。
在具體操作上,PNS模塊對每個尺度因子帶偵測頻率4kHz以下的信號成分。如果這個
信號既不是音調,在時間上也無強烈的能量變動,就被認為是雜訊信號。其信號的音調及能量變化都在心理聲學模型中算出。
在解碼中,如果發現使用了哈夫曼表13(NOISE_HCB),則表明使用了PNS。由於M/S立體聲解碼與PNS解碼互斥,故可以用參數ms_used來表明是否兩個聲道都用同樣的PNS。如果 ms_used參數為1,則兩個聲道會用同樣的隨機向量來生成雜訊信號。PNS的能量信號用noise_nrg來表示,如果使用了PNS,則能量信號將會代替各自的尺度因子來傳送。雜訊能量編碼同尺度因子一樣,採用差分編碼的方式。第一個值同樣為全局增益值。它同強度立體聲位置值及尺度因子交替地放在一起,但對差分解碼來說又彼此忽略。即下一個雜訊能量值以上一個雜訊能量值而不是強度立體聲位置或尺度因子為標准差分解碼。隨機能量將會在一個尺度因子帶內產生noise_nrg所計算出的平均能量分布。此項技術只有在MPEG-4 AAC中才會使用。
6.瞬時雜訊整形(TNS)
這項神奇的技術可以通過在頻率域上的預測,來修整時域上的量化噪音的分布。在一
些特殊的語音和劇烈變化信號的量化上,TNS技術對音質的提高貢獻巨大!TNS瞬態雜訊整形用於控制一個轉換窗口內的瞬時雜訊形態。它是用一個對單個通道的濾波過程來實現的。傳統的變換編碼方案常常遇到信號在時域變化非常劇烈的問題,特別是語音信號,這個問題是因為量化後的雜訊分布雖然在頻率域上得到控制,但在時域上卻以一個常數分布在一個轉換塊內。如果這種塊中信號變化得很劇烈卻又不轉向一個短塊去,那這個常數分布的雜訊將會被聽到。TNS的原理利用了時域和頻域的二元性和LPC(線性預測編碼)的時頻對稱性,即在其中的任意一個域上做編碼與在另一域上做預測編碼等效,也就是說,在一個域內做預測編碼可以在另一域內增加其解析度。量化雜訊產生是在頻域產生的,降低了時域的解析度,故在這里是在頻域上做預測編碼。在AACplus中,由於基於AAC profile LC,故TNS的濾波器階數被限制在 12階以內。
7.反離散餘弦變換(IMDCT)
將音頻數據從頻域轉換到時域的過程主要是由將頻域數據填入一組IMDCT濾波器來實現的。在進行IMDCT變換後,輸出數值經過加窗,疊加,最後得到時域數值。
8.頻段復制(SBR)
簡要敘述,音樂的主要頻譜集中在低頻段,高頻段幅度很小,但很重要,決定了
音質。如果對整個頻段編碼,若是為了保護高頻就會造成低頻段編碼過細以致文件巨大;若是保存了低頻的主要成分而失去高頻成分就會喪失音質。SBR把頻譜切割開來,低頻單獨編碼保存主要成分,高頻單獨放大編碼保存音質,「統籌兼顧」了,在減少文件大小的情況下還保存了
音質,完美的化解這一矛盾。
9.參數立體聲(PS)
對於之前的立體聲文件來說,其文件大小是單聲道的兩倍,但是兩個聲道的聲音存在
某種相似性,根據香農信息熵編碼定理,相關性應該被去掉才能減小文件大小。所以PS技術存儲了一個聲道的全部信息,之後,用很少的位元組當作參數來描述另一個聲道和它不同的地方。
E. 音視頻入門-音頻壓縮技術(二)
音頻壓縮技術是保證信號在聽覺不失真的前提碼咐襪下,對音頻數據信號進行盡可能大的壓縮
壓縮的主要方簡和法就是去除採集到的冗餘信息,所謂冗餘信息就是超出人耳聽覺范圍的音頻信號和被遮蔽掉的音頻信號
遮蔽的音頻信號包括 頻域遮蔽 和 時域遮蔽
熵編碼:哈夫曼編碼、算術編碼、香農編碼
常見的遲激音頻編碼器包括:OPUS(文件小、壓縮率高)、AAC(運用最廣泛的音頻編碼器,IOS、Android 嵌入式)Ogg、Speex(解決了迴音消除,在AAC之前比較受歡迎的音頻編碼器)、iLBC、AMR、G.711
編解碼器總結:不同的場景使用的音頻編碼器可能不一樣,一般情況下,AAC在直播系統中使用比較廣泛、OPUS是比較新的編碼器,WebRTC默認使用的是OPUS音頻編碼器、固話使用的是G.711系列
AAC(Advanced Audio Coding)由Fraunhofer IIS、杜比實驗室、AT&T、Sony等公司共同開發、目前是取代MP3格式
最開始是基於MPEG-2的音頻解碼技術,MPEG-4標准出現後,AAC重新集成其特性,加入了SBR技術和PS技術
目前常用的規格有:AAC LC、AAC HE V1和AAC HE V2
AAC LC:(LOW Complexity)低復雜度規格,碼流是128K,音質好
AAC HE V1:AAC LC + SBR(Spectral Band Replication),其核心思想是按頻譜分保存,低頻編碼保存主要成分,高頻單獨放大編碼保存音質
碼率在64K左右
AAC HE V2:AAC LC + SBR + PS(Parametric Stereo)其核心思想是雙聲道中的聲音存在某種相似性,只需要存儲一個聲道的全部信息,然後,花很少的位元組用描述另一個聲道在不同的地方
這種格式的特性是可以確定找到這個音頻數據的開始,只能從頭開始解碼,不能從音頻數據流的中間開始,這種格式常用在磁碟文件中
這種格式的特性是每一幀都有一個同步字,所以可以在音頻流的任意位置開始解碼,它類似於數據流格式
ADTS由7/9個位元組組成 ADTS格式查詢
-i:輸入的多媒體文件
-vn:v表示的是video ,n表示的no 意思是過濾掉視頻數據
-c:a : c表示的是codecs編碼器,a表示的是audio,也就是指定的音頻編碼器
-ar:表示的是音頻的采樣率
-channels:聲道數
-profile:對fdk-aac編碼器設置了參數,對應的是a,也就是對音頻的參數
最後3.aac也就是輸出的aac格式的文件名稱