進階音訊編碼

進階音訊編碼（Advanced Audio Coding，AAC）是有損音訊壓縮的專利數位音訊編碼標準，由Fraunhofer IIS、杜比實驗室、貝爾實驗室、Sony、Nokia等公司共同開發。出現於1997年，為一種基於MPEG-2的標準，2000年，MPEG-4標準在原本的基礎上加上了PNS（Perceptual Noise Substitution）等技術，並提供了多種擴展工具。為了區別於傳統的MPEG-2 AAC又稱為MPEG-4 AAC。其作為MP3的後繼者而被設計出來，在相同的位元速率之下，AAC相較於MP3通常可以達到更好的聲音品質。

AAC由國際標準化組織及國際電工委員會標準化為MPEG-2及MPEG-4規格的一部分。部分的AAC、HE-AAC(AAC+)為MPEG-4音訊的一部分，並且被採用在數位聲音廣播、世界數位廣播兩個數位廣播標準中以及DVB-H、ATSC-M/H兩個移動電視標準中。

AAC支援包含一個串流中48個最高至96 kHz的全頻寬聲道，加上16個120 Hz的低頻聲道(LFE)、不多於16個耦合聲道及資料串流。在joint stereo模式下，要使立體聲的品質達到可接受的程度僅需96 kbps的位元速率，若要達到Hi-fi則最少需要在可變位元速率下128 kbps。

AAC被YouTube、iPhone、iPod、 iPad、任天堂DSi、任天堂3DS、iTunes、DivX、PlayStation 3和多款Nokia 40系列、Sony Ericsson手機採用為預設的音訊編碼格式，並且被PlayStation Vita、Wii、Sony Walkman MP3系列及隨後的Android、BlackBerry等行動作業系統支援。

## 副檔名

AAC編碼的主要副檔名有三種：

- .aac - 使用MPEG-2 Audio Transport Stream（ADTS，參見MPEG-2）容器，區別於使用MPEG-4容器的MP4/M4A格式，屬於傳統的AAC編碼（FAAC默認的封裝，但FAAC亦可輸出MPEG-4封裝的AAC）。
- .mp4 - 使用了MPEG-4 Part 14（第14部分）的簡化版即3GPP Media Release 6 Basic（3gp6，參見3GP）進行封裝的AAC編碼（Nero AAC編碼器僅能輸出MPEG-4封裝的AAC）。
- .m4a - 為了區別純音頻MP4文件和包含影片的MP4文件而由蘋果（Apple）公司使用的副檔名，Apple iTunes對純音頻MP4文件採用了".m4a"命名。M4A的本質和音頻MP4相同，故音訊MP4文件亦可直接更改副檔名為M4A。Sony Ericsson於2006年後發表的手機原廠鈴聲幾乎都慢慢改為M4A文件。

## 技術概覽

AAC作為一種高壓縮比的音訊壓縮演算法，壓縮比通常為18：1，也有資料說為20：1；在音質方面，由於採用多聲道，和使用低複雜性的描述方式，使其比幾乎所有的傳統編碼方式在同規格的情況下更勝一籌。

AAC是一種寬頻音訊編碼演演算法，主要利用以下兩種編碼策略來大幅減少儲存高品質數位音訊所需要的資料量：

- 捨去與感知上無關的訊號成分
- 去除編碼後訊號的冗餘部分

實際的編碼流程包含以下步驟：

- 利用改進的離散餘弦變換(MDCT)將訊號由時域轉換至頻域：選取適當的時域取樣點數由濾波器組將其轉換至頻域
- 基於心理聲學將頻域訊號量化及編碼
- 加入內部的錯誤更正碼
- 儲存或傳輸訊號
- 為避免損壞的取樣點，對每幀使用模N的Luhn演算法作為校驗

在MPEG-4中並沒有定義一個單一的高效率壓縮流程，而是一組複雜的工具來達成從低編碼速率的語音編碼到高品質音訊壓縮、音樂合成等廣泛的操作。

- MPEG-4音訊編碼演算法家族橫跨了從低位元速率的語音編碼(最低至2 kbps)到高品質音訊編碼(每聲道64 kbps或更高)
- AAC提供了低至8 kHz高至96 kHz的多種取樣頻率、更高的位元深度(8, 16, 24, 32 bit)，並且支援1到48之間的任何聲道數
- 相較於MP3使用的混和濾波器組，AAC使用MDCT搭配增加至1024或960點的窗長度

AAC編碼器可以動態的在單一的1024點MDCT區塊或8個128點區塊之間切換(或960及120點)

- 在有暫態的訊號變化時，選擇使用8個較短的128/120點區塊以達到更好的時域解析度
- 在預設的情況下則使用較長的1024/960點區塊以增加頻域的解析度，因為如此可以運用更複雜的心理聲學模型來達成更好的編碼效率

## 相較於MP3的改進

AAC是作為MP3的後繼者被設計出來，在1990年代後期的雙盲試驗中顯示在相同的位元速率下，AAC比MP3表現出更好的聲音品質。

AAC相較於MP3的改進包含：

- 更多的取樣頻率選擇(8 kHz至96 kHz，MP3為16 kHz至48 kHz)
- 更高的聲道數上限(48個，MP3在MPEG-1模式下為最多雙聲道，MPEG-2模式下5.1聲道)
- 任意的位元速率和可變的幀長度
- 更高效率及更單純的濾波器組(AAC使用純粹的MDCT，MP3則使用較複雜的混和濾波器組)
- 對平穩的訊號有更高的編碼效率(AAC使用較長的1024/960點區塊長度，MP3則為576點)
- 對暫態變化的訊號有更高的編碼準確度(AAC使用較短的128/120點區塊長度，MP3則為192點)
- 可選擇使用凱澤窗函數，以較大的主瓣(main lobe)為代價，消除頻譜洩漏效應(spectral leakage)
- 對於頻率在16 kHz的聲音訊號成分有更好的處理
- 有額外的模組如雜訊移頻(noise shaping)、反向預測(backward prediction)、感知上的雜訊替代(perceptual noise substitution)等，可結合這些模組建構出各種不同的編碼規格

整體而言，AAC格式相較於MP3給予開發者在設計編碼上更大的彈性，並且修正許多在MPEG-1音訊規格上的設計選擇，這些增加的彈性使得更多的編碼策略可以同時存在，進而達成更高的壓縮效率。儘管如此，若要論及AAC是否比MP3好，AAC並沒有完全的決定性的優勢，MP3雖然較為古老且有相當的瑕疵，卻也被證實是意外的堅固耐用。在低位元速率的情況下(通常低於128 kbps)，AAC及HE-AAC則因為更好的立體聲編碼、純粹的MDCT及更好的窗函數長度，優於MP3，尤其在極低位元速率的情況下優勢更為顯著。

MP3作為最早數年音樂開始在網路上傳播、分享所被使用的格式，擁有最為普遍的軟體及硬體支援，AAC則由於一些產業界持續堅定的支持，成為MP3一個有力的競爭對手，另一個競爭對手是開源產業界支持的IETF標準開放格式Opus (音訊格式)。

## 低碼率規格

高效AAC（HE-AAC，High-Efficiency AAC）為有損數據壓縮技術，是對進階音訊編碼（AAC）的擴展。HE-AAC v1使用頻段複製（SBR，Spectral Band Replication）提高頻域的壓縮效率，適用於低碼率（64kbps以下）。HE-AAC v2結合使用SBR和參數立體聲（PS，Parametric Stereo）提高立體聲信號的壓縮效率。HE-AAC v2進一步降低了對碼率的需求（接近於50%），被應用於類似於DAB等碼率資源很有限的領域。

HE-AAC之另一常見名稱aacPlus（aac+），為開發SBR之公司 Coding Technologies的註冊商標。MPEG組織於2003年五月將aac+納入ISO／IEC 14496-3（MPEG-4 Part 3）。HE-AAC適合於在低位元率（low bitrates）的應用，如：網路電台、數位電視等，其宣稱在48kbps的音質可以比128kbps的MP3還好，主要的競爭對象是無專利的IETF標準開放格式Opus。

### 版本

HE-AAC之不同版本：

版本｜別稱｜編碼功能｜標準

HE-AAC v1｜aacPlus v1, eAAC, AAC+, CT-aacPlus｜AAC LC + SBR｜ISO/IEC 14496-3:2001/Amd 1:2003

HE-AAC v2｜aacPlus v2, eAAC+, AAC++, Enhanced AAC+｜AAC LC + SBR + PS｜ISO/IEC 14496-3:2005/Amd 2:2006

## 規格一覽

因為AAC是一個龐大家族，他們共分為9種規格，以適應不同場合的需要，也正是由於AAC的規格（Profile）繁多，導致普通電腦使用者感覺十分困擾：

- 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）

上述的規格中，主規格（Main）包含了除增益控制之外的全部功能，其音質最好，而低複雜度規格（LC）則是比較簡單，沒有了增益控制，但提高了編碼效率，至「SSR」對「LC」規格大體是相同，但是多了增益的控制功能，另外，MPEG-4 AAC/LTP/LD/HE，都是用在低位元率下編碼，特別是「HE」是有Nero AAC編碼器支援，是近來常用的一種編碼器，不過通常來說，Main規格和LC規格的音質相差不大，因此目前使用最多的AAC規格多數是「LC」規格，因為要考慮手機目前的記憶體能力未達合理水準。

MPEG-4 AAC LC（Low Complexity）是最常用的規格，我們叫「低複雜度規格」，我們簡稱「LC-AAC」，這種規格在中等碼率的編碼效率以及音質方面，都能找到平衡點。所謂中等碼率，就是指：96kbps-192kbps之間的碼率。因此，如果要使用LC-AAC規格，請儘可能把碼率控制在之前說的那個區間內。

## 編碼器一覽

由於AAC格式家族比較龐大，要瞭解他，首先要清楚其各有不同的編碼器，目前包括了商業的、免費的AAC格式音訊編碼器，其中幾個主要的編碼器如下：

- FhG：Fraunhofer IIS研發的權威編碼器。
- Nero AAC：同時支持LC-AAC / HE-AAC規格，由Nero公司免費發佈的Nero AAC編碼器。
- QuickTime / iTunes：Apple公司的兩款軟體都提供了AAC編碼功能，其編碼技術來自"Dolby Laboratories"（簡寫為Dolby Labs，杜比實驗室）。
- FAAC（Freeware Advanced Audio Coder）：也是一種很好的命令行編碼器，支持LC/Main/LTP規格，而這個軟體是免費的。FAAC是自由軟體。
- DivX AAC：2009年DivX開發出來的新AAC編碼器，支持LC/HE/HEv2規格。目前正在測試中。

另外還有Psytel（已停止開發），Coding Technologies（已被杜比實驗室收購），HHI/z Plane（Compaact），Dolby AAC等AAC編碼器，而其他如Panasonic、Nokia、AT&T、NEC等公司也都有獨家開發的編碼器，在大家弄清楚這些AAC格式音訊規格和編碼器之後，我們就不難知道為甚麼同一款手機會支持看起來都是AAC格式音訊的諸多文件格式了，比如Nokia 6230i就是既支持AAC格式也支持M4A格式和MP4格式的機型，而這些音訊文件格式其實都是屬於AAC家族成員。

目前聽到用的比較多的應該是LC和HE（適合低碼率）。

HE：「high efficiency」（高效性）。HE-AAC v1（又稱AACPlusV1，SBR)用容器的方法加了原AAC（LC）+SBR技術。SBR其實代表的是Spectral Band Replication（頻段複製）。簡單概括一下，音樂的主要頻譜集中在低頻段，高頻段幅度很小，如果對整個頻段編碼，要麼為了保護高頻造成低頻段編碼過細以致文件巨大，要麼為了保存了低頻的主要成分而失去高頻成分以致喪失音質。SBR把頻譜切割開來，低頻單獨編碼保存主要成分，高頻單獨放大編碼保存音質，在相同音質下降低了檔案大小。

HEv2(又稱為HEPS)它用容器的方法包含了HE-AAC v1和PS技術。PS指「Parametric Stereo」（參數立體聲）。這個其實好理解，原來的立體聲文件，文件大小是一個聲道的兩倍。但是兩個聲道的聲音存在某種相似性，根據香農資訊熵編碼定理，相關性應該被去掉才能減小文件大小。所以PS技術存儲了一個聲道的全部資訊，然後，花很少的字節用參數描述另一個聲道和它不同的地方。

## 許可和專利

使用者不需要許可或付款來流式傳輸或分發AAC格式的內容。這個原因可以使AAC比照其前身的MP3一樣，特別是根據適用於流媒體（如網際網路廣播）分發內容成為更有吸引力的格式。

然而，AAC 編解碼器的所有製造商或開發商都需要專利許可。因此，FFmpeg和FAAC等自由開放原始碼軟體的實現可能僅以源代碼形式分發，以避免專利侵權。

## 外部連結

- 蘋果電腦MPEG-4 AAC
- AAC EE Times文章
- Fraunhofer MPEG-2 AAC資訊
- AAC Licensing
- Open Source AAC codec FAAC（編碼器）與FAAD2（解碼器）
- Roberto's public listening tests - blind, controlled listening tests of lossy compression formats including AAC
- MPEG-4 HE-AAC v2—audio coding for today's digital media world，article in the EBU technical review（01/2006）giving explanations on HE-AAC.
- Coding Technologies的aacPlus介紹

## 基本資料

- 擴展名：MPEG/3GPP container、`.m4a, .mp4, .3gp` Apple container、`.m4a, .m4b, .m4p, .m4r, .m4v` Raw stream、`.aac`
- 擴展名：1
- mime：audio/aac, audio/aacp, audio/3gpp, audio/3gpp2, audio/mp4, audio/mp4a-latm, audio/mpeg4-generic
- 發行日期：1997年
- 標準：ISO/IEC 13818-7、ISO/IEC 14496-3
- 所有者：Fraunhofer IIS、杜比實驗室、貝爾實驗室、Sony、Nokia
- 類型：音訊壓縮, 破壞性資料壓縮
- 使用容器：MPEG-4 Part 14, 3GP and 3G2, ISO base media file format and Audio Data Interchange Format (ADIF)