音視頻編解碼技術(二):AAC 音頻編碼技術

1、AAC編碼概述

AAC是高級音頻編碼(Advanced Audio Coding)的縮寫,出現於1997年,最初是基於MPEG-2的音頻編碼技術,目的是取代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。優化

2、AAC編碼規格簡述

AAC共有9種規格,以適應不一樣的場合的須要:網站

      MPEG-2 AAC LC 低複雜度規格(Low Complexity) 注:比較簡單,沒有增益控制,但提升了編碼效率,在中等碼率的編碼效率以及音質方面,都能找到平衡點編碼

      MPEG-2 AAC Main 主規格.net

      MPEG-2 AAC SSR 可變採樣率規格(Scaleable Sample Rate)3d

      MPEG-4 AAC LC 低複雜度規格(Low Complexity)---如今的手機比較常見的MP4文件中的音頻部份就包括了該規格音頻文件orm

      MPEG-4 AAC Main 主規格   注:包含了除增益控制以外的所有功能,其音質最好blog

      MPEG-4 AAC SSR 可變採樣率規格(Scaleable Sample Rate)ci

      MPEG-4 AAC LTP 長時期預測規格(Long Term Predicition)get

      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技術;

這裏再說明一下HE和HEv2的相關內容:

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技術存儲了一個聲道的所有信息,而後,花不多的字節用參數描述另外一個聲道和它不一樣的地方。

3、AAC編碼的特色

 (1). AAC是一種高壓縮比的音頻壓縮算法,但它的壓縮比要遠超過較老的音頻壓縮算法,如AC-三、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採用優化的算法達到了更高的解碼效率,解碼時只需較少的處理能力。

4、AAC音頻文件格式

1. ACC 音頻文件格式類型

AAC的音頻文件格式有ADIF & ADTS:

ADIF:Audio Data Interchange Format 音頻數據交換格式。這種格式的特徵是能夠肯定的找到這個音頻數據的開始,不需進行在音頻數據流中間開始的解碼,即它的解碼必須在明肯定義的開始處進行。故這種格式經常使用在磁盤文件中。

ADTS:Audio Data Transport Stream 音頻數據傳輸流。這種格式的特徵是它是一個有同步字的比特流,解碼能夠在這個流中任何位置開始。它的特徵相似於mp3數據流格式。

簡單說,ADTS能夠在任意幀解碼,也就是說它每一幀都有頭信息。ADIF只有一個統一的頭,因此必須獲得全部的數據後解碼。這兩種的header的格式也是不一樣的,通常編碼後的和抽取出的都是ADTS格式的音頻流。

AAC的ADIF文件格式以下圖:

AAC的ADTS文件中一幀的格式以下圖:

其兩邊的空白矩形表示一幀先後的數據。

2. ADIF 的 Header 結構

ADIF 的頭信息以下圖:

ADIF頭信息位於AAC文件的起始處,接下來就是連續的 Raw Data Blocks。

組成ADIF頭信息的各個域以下所示:

3. ADTS 的 Header 頭結構

 ADTS 的固定頭信息:

ADTS的可變頭信息:

(1)幀同步目的在於找出幀頭在比特流中的位置,13818-7規定,AAC ADTS格式的幀頭同步字爲12比特的「1111 1111 1111」.

(2)ADTS的頭信息爲兩部分組成,其一爲固定頭信息,緊接着是可變頭信息。固定頭信息中的數據每一幀都相同,而可變頭信息則在幀與幀之間可變。

4. AAC 元素信息

 在AAC中,原始數據塊的組成可能有六種不一樣的元素:

       SCE: Single Channel Element單通道元素。單通道元素基本上只由一個ICS組成。一個原始數據塊最可能由16個SCE組成。

       CPE: Channel Pair Element 雙通道元素,由兩個可能共享邊信息的ICS和一些聯合立體聲編碼信息組成。一個原始數據塊最多可能由16個SCE組成。

       CCE: Coupling Channel Element 藕合通道元素。表明一個塊的多通道聯合立體聲信息或者多語種程序的對話信息。

       LFE: Low Frequency Element 低頻元素。包含了一個增強低採樣頻率的通道。

       DSE: Data Stream Element 數據流元素,包含了一些並不屬於音頻的附加信息。

       PCE: Program Config Element 程序配置元素。包含了聲道的配置信息。它可能出如今 ADIF 頭部信息中。

       FIL: Fill Element 填充元素。包含了一些擴展信息。如SBR,動態範圍控制信息等。

5. AAC文件處理流程

     (1). 判斷文件格式,肯定爲ADIF或ADTS

       (2). 若爲ADIF,解ADIF頭信息,跳至第6步。

       (3). 若爲ADTS,尋找同步頭。

       (4). 解ADTS幀頭信息。

       (5). 如有錯誤檢測,進行錯誤檢測。

       (6). 解塊信息。

       (7). 解元素信息。

5、開源AAC解碼器

a). 開源AAC解碼器faad官方網站:http://www.audiocoding.com/

b). faad2源代碼(VC工程)下載地址:http://download.csdn.net/detail/leixiaohua1020/6374877

相關文章
相關標籤/搜索