




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、AAC解碼算法原理詳解原作者:龍帥 (loppp138) 此文章為便攜式多媒體技術(shù)中心提供,未經(jīng)站長(zhǎng)授權(quán),嚴(yán)禁轉(zhuǎn)載,但歡迎鏈接到此地址。本文詳細(xì)介紹了符合ISO/IEC 13818-7(MPEG2 AAC audio codec) , ISO/IEC 14496-3(MPEG4 Audio Codec AAC Low Complexity)進(jìn)行壓縮的的AAC音頻的解碼算法。1、程序系統(tǒng)結(jié)構(gòu)下面是AAC解碼流程圖:AAC解碼流程圖 在主控模塊開(kāi)始運(yùn)行后,主控模塊將AAC比特流的一部分放入輸入緩沖區(qū),通過(guò)查找同步字得到一幀的起始,找到后,根據(jù)ISO/IEC 13818-7所述的語(yǔ)法開(kāi)始進(jìn)
2、行Noisless Decoding(無(wú)噪解碼),無(wú)噪解碼實(shí)際上就是哈夫曼解碼,通過(guò)反量化(Dequantize)、聯(lián)合立體聲(Joint Stereo),知覺(jué)噪聲替換(PNS),瞬時(shí)噪聲整形(TNS),反離散余弦變換(IMDCT),頻段復(fù)制(SBR)這幾個(gè)模塊之后,得出左右聲道的PCM碼流,再由主控模塊將其放入輸出緩沖區(qū)輸出到聲音播放設(shè)備。2. 主控模塊主控模塊的主要任務(wù)是操作輸入輸出緩沖區(qū),調(diào)用其它各模塊協(xié)同工作。其中,輸入輸出緩沖區(qū)均由DSP控制模塊提供接口。輸出緩沖區(qū)中將存放的數(shù)據(jù)為解碼出來(lái)的PCM數(shù)據(jù),代表了聲音的振幅。它由一塊固定長(zhǎng)度的緩沖區(qū)構(gòu)成,通過(guò)調(diào)用DSP控制模塊的接口函數(shù),
3、得到頭指針,在完成輸出緩沖區(qū)的填充后,調(diào)用中斷處理輸出至I2S接口所連接的音頻ADC芯片(立體聲音頻DAC和DirectDrive耳機(jī)放大器)輸出模擬聲音。3. 同步及元素解碼同步及元素解碼模塊主要用于找出格式信息,并進(jìn)行頭信息解碼,以及對(duì)元素信息進(jìn)行解碼。這些解碼的結(jié)果用于后續(xù)的無(wú)噪解碼和尺度因子解碼模塊。AAC的音頻文件格式有以下兩種:ADIF:Audio Data Interchange Format 音頻數(shù)據(jù)交換格式。這種格式的特征是可以確定的找到這個(gè)音頻數(shù)據(jù)的開(kāi)始,不需進(jìn)行在音頻數(shù)據(jù)流中間開(kāi)始的解碼,即它的解碼必須在明確定義的開(kāi)始處進(jìn)行。故這種格式常用在磁盤文件中。ADTS:Audi
4、o Data Transport Stream 音頻數(shù)據(jù)傳輸流。這種格式的特征是它是一個(gè)有同步字的比特流,解碼可以在這個(gè)流中任何位置開(kāi)始。它的特征類似于mp3數(shù)據(jù)流格式。AAC的ADIF格式見(jiàn)下圖: 3.1 ADIF的組織結(jié)構(gòu) AAC的ADTS的一般格式見(jiàn)下圖:3.2 ADTS的組織結(jié)構(gòu) 圖中表示出了ADTS一幀的簡(jiǎn)明結(jié)構(gòu),其兩邊的空白矩形表示一幀前后的數(shù)據(jù)。ADIF和ADTS的header是不同的。它們分別如下所示: 3.3 ADIF的頭信息3.4 ADTS的固定頭信息
5、60; ADTS的可變頭信息 3.5 幀同步幀同步目的在于找出幀頭在比特流中的位置,13818-7規(guī)定,aac ADTS格式的幀頭為12比特的“1111 1111 1111”. 3.6 頭信息解碼ADTS的頭信息為兩部分組成,其一為固定頭信息,緊接著是可變頭信息。固定頭信息中的數(shù)據(jù)每一幀都相同,而可變頭信息則在幀與幀之間可變。3.7 元素信息解碼在AAC中,原始數(shù)據(jù)塊的組成可能有六種不同的元素。它們分別是SCE: Single Channel Eleme
6、nt單通道元素。單通道元素基本上只由一個(gè)ICS組成。一個(gè)原始數(shù)據(jù)塊最可能由16個(gè)SCE組成。CPE: Channel Pair Element 雙通道元素,由兩個(gè)可能共享邊信息的ICS和一些聯(lián)合立體聲編碼信息組成。一個(gè)原始數(shù)據(jù)塊最多可能由16個(gè)SCE組成。CCE: Coupling Channel Element 藕合通道元素。代表一個(gè)塊的多通道聯(lián)合立體聲信息或者多語(yǔ)種程序的對(duì)話信息。LFE: Low Frequency Element 低頻元素。包含了一個(gè)加強(qiáng)低采樣頻率的通道。DSE: Data Stream Element 數(shù)據(jù)流元素,包含了一些并不屬于音頻的附加信息。PCE: Progr
7、am Config Element 程序配置元素。包含了聲道的配置信息。它可能出現(xiàn)在ADIF 頭部信息中。FIL: Fill Element 填充元素。包含了一些擴(kuò)展信息。如SBR,動(dòng)態(tài)范圍控制信息等。3.8 處理流程(1).判斷文件格式,確定為ADIF或ADTS(2).若為ADIF,解ADIF頭信息,跳至第6步。(3).若為ADTS,尋找同步頭。(4).解ADTS幀頭信息。(5).若有錯(cuò)誤檢測(cè),進(jìn)行錯(cuò)誤檢測(cè)。(6).解塊信息。(7).解元素信息。4.無(wú)噪聲解碼無(wú)噪編碼就是哈夫曼編碼,它的作用在于進(jìn)一步減少尺度因子和量化后頻譜的冗余,即將尺度因子和量化后的頻譜信息進(jìn)行哈夫曼編碼。全局增益編碼成
8、一個(gè)8位的無(wú)符號(hào)整數(shù),第一個(gè)尺度因子與全局增益值進(jìn)行差分編碼后再使用尺度因子編碼表進(jìn)行哈夫曼編碼。后續(xù)的各尺度因子都與前一個(gè)尺度因子進(jìn)行差分編碼。量化頻譜的無(wú)噪編碼有兩個(gè)頻譜系數(shù)的劃分。其一為4元組和2元組的劃分,另一個(gè)為節(jié)劃分。對(duì)前一個(gè)劃分來(lái)說(shuō),確定了一次哈夫曼表查找出的數(shù)值是4個(gè)還是2個(gè)。對(duì)后一個(gè)劃分來(lái)說(shuō),確定了應(yīng)該用哪一個(gè)哈夫曼表,一節(jié)中含有若干的尺度因子帶并且每節(jié)只用一個(gè)哈夫曼表。4.1 分段無(wú)噪聲編碼將輸入的1024個(gè)量化頻譜系數(shù)分為幾個(gè)段(section),段內(nèi)的各點(diǎn)均使用同一個(gè)哈夫曼表,考慮到編碼效率,每一段的邊界最好同尺度因子帶的邊界重合。所以每一段必段傳送信息應(yīng)該有:段長(zhǎng)度,
9、所在的尺度因子帶,使用的哈夫曼表。4.2 分組和交替分組是指忽略頻譜系數(shù)所在窗,將連續(xù)的,具有相同尺度因子帶的頻譜系數(shù)分為一組放在一起,共享一個(gè)尺度因子從而得到更好的編碼效率。這樣做必然會(huì)引起交替,即本來(lái)是以c組窗尺度因子帶 系數(shù)索引為順序的系數(shù)排列,變?yōu)閷⒊叨纫蜃訋南禂?shù)放在一起:c組尺度因子帶窗 系數(shù)索引這樣就引起了相同窗的系數(shù)的交替。4.3大量化值的處理大量化值在AAC中有兩種處理方法:在哈夫曼編碼表中使用escape標(biāo)志或使用脈沖escape方法。前者跟mp3編碼方法相似,在許多大量化值出現(xiàn)時(shí)采用專門的哈夫曼表,這個(gè)表暗示了它的使用將會(huì)在哈夫曼編碼后面跟跟一對(duì)escape值及對(duì)值的符
10、號(hào)。在用脈沖escape方法時(shí),大數(shù)值被減去一個(gè)差值變?yōu)樾?shù)值,然后使用哈夫曼表編碼,后面會(huì)跟一個(gè)脈沖結(jié)構(gòu)來(lái)幫助差值的還原。無(wú)噪解碼的流程圖如下:無(wú)噪聲解碼流程圖5.尺度因子解碼及逆量化在aac編碼中,逆量化頻譜系數(shù)是由一個(gè)非均勻量化器來(lái)實(shí)現(xiàn)的,在解碼中需進(jìn)行其逆運(yùn)算。即保持符號(hào)并進(jìn)行4/3次冪運(yùn)算。在頻域調(diào)整量化噪聲的基本方法就是用尺度因子來(lái)進(jìn)行噪聲整形。尺度因子就是一個(gè)用來(lái)改變?cè)谝粋€(gè)尺度因子帶的所有的頻譜系數(shù)的振幅增益值。使用尺度因子這種機(jī)制是為了使用非均勻量化器在頻域中改變量化噪聲的比特分配。5.1 尺度因子帶(scalefactor-band)頻率線根據(jù)人耳的聽(tīng)覺(jué)特性被分成多個(gè)組,每個(gè)
11、組對(duì)應(yīng)若干個(gè)尺度因子,這些組就叫做尺度因子帶。為了減少信息含有短窗的邊信息,連續(xù)的短窗可能會(huì)被分為一組,即將若干個(gè)短窗當(dāng)成一個(gè)窗口一起傳送,然后尺度因子將會(huì)作用到所有分組后的窗口去。5.2 反量化公式:x_invquant = sign(x_quant) * | x_quant| (4/3)其中x_invquant 表示反量化的結(jié)果sign (x)表示取x的符號(hào) 表示冪運(yùn)算5.3 應(yīng)用尺度因子公式:x_rescal = x_invquant * gaingain = 2 (0.25 * (sf SF_OFFSET)其中x_rescal 為應(yīng)用了尺度因子公式之后的值gain為一個(gè)增益sf 為尺度
12、因子值SF_OFFSET為一個(gè)常數(shù),設(shè)為1006、聯(lián)合立體聲解碼聯(lián)合立體聲有兩種,M/S stereo(中間旁道立體聲)和intensity stereo(強(qiáng)度立體聲) 6.1 M/S stereo在M_S立體聲模式中,傳送的是規(guī)格化的中間/旁邊聲道的信息,計(jì)算公式如下:其中,l, r表示轉(zhuǎn)換后的左右聲道值m表示中間聲道值s表示旁邊聲道值 6.2 Intensity stereo在強(qiáng)度立體聲模式中,左聲道傳的是幅值,右聲道的scalefactor傳的是立體聲的位置is_pos。如果僅在一個(gè)指定了common_window為1的CPE中的右通道中指定哈夫曼表為INTENSITY_HC
13、B或INTENSITY_HCB2,則解碼時(shí)使用強(qiáng)度立體聲模式。其計(jì)算公式如下:is_pos += dpcm_is_posscale = invert_intensity * 0.5 (0.25 * ispos)r_spec = scale * l_spec從完全備份中還原從完全備份中還原數(shù)據(jù)庫(kù)非常簡(jiǎn)單,在9.3.2節(jié)中會(huì)詳細(xì)地is_pos是右聲道傳送的scalefactordpcm_is_pos是上一個(gè)is_pos,初值為0scale 為強(qiáng)度因子invert_intensity為是否反轉(zhuǎn)哈夫曼表(表14和表15)這個(gè)變量由ms_used指定,關(guān)系為:invert_intensity = 1 2
14、 * ms_used,另外,當(dāng)ms_mask_present為0時(shí),invert_intensity恒為1。6.3 處理流程聯(lián)合立體聲解碼流程圖7、PNSPNS(Perceptual Noise Substitution) 知覺(jué)噪聲替換模塊是一種以參數(shù)編碼的方式模擬噪聲的模塊。在判別出音頻值中的噪聲后,將些噪聲不進(jìn)行量化編碼,而是采用一些參數(shù)告訴解碼器端這是某種噪聲,然后解碼器端將會(huì)對(duì)這些噪聲用一些隨機(jī)的編碼來(lái)制造出這一類型的噪聲。在具體操作上,PNS模塊對(duì)每個(gè)尺度因子帶偵測(cè)頻率4kHz以下的信號(hào)成分。如果這個(gè)信號(hào)既不是音調(diào),在時(shí)間上也無(wú)強(qiáng)烈的能量變動(dòng),就被認(rèn)為是噪聲信號(hào)。其信號(hào)的音調(diào)及能量變
15、化都在心理聲學(xué)模型中算出。在解碼中,如果發(fā)現(xiàn)使用了哈夫曼表13(NOISE_HCB),則表明使用了PNS。由于M/S立體聲解碼與PNS解碼互斥,故可以用參數(shù)ms_used來(lái)表明是否兩個(gè)聲道都用同樣的PNS。如果ms_used參數(shù)為1,則兩個(gè)聲道會(huì)用同樣的隨機(jī)向量來(lái)生成噪聲信號(hào)。PNS的能量信號(hào)用noise_nrg來(lái)表示,如果使用了PNS,則能量信號(hào)將會(huì)代替各自的尺度因子來(lái)傳送。噪聲能量編碼同尺度因子一樣,采用差分編碼的方式。第一個(gè)值同樣為全局增益值。它同強(qiáng)度立體聲位置值及尺度因子交替地放在一起,但對(duì)差分解碼來(lái)說(shuō)又彼此忽略。即下一個(gè)噪聲能量值以上一個(gè)噪聲能量值而不是強(qiáng)度立體聲位置或尺度因子為標(biāo)準(zhǔn)
16、差分解碼。隨機(jī)能量將會(huì)在一個(gè)尺度因子帶內(nèi)產(chǎn)生noise_nrg所計(jì)算出的平均能量分布。7.1 處理流程PNS解碼流程圖8、TNSTNS瞬態(tài)噪聲整形用于控制一個(gè)轉(zhuǎn)換窗口內(nèi)的瞬時(shí)噪聲形態(tài)。它是用一個(gè)對(duì)單個(gè)通道的濾波過(guò)程來(lái)實(shí)現(xiàn)的。傳統(tǒng)的變換編碼方案常常遇到信號(hào)在時(shí)域變化非常劇烈的問(wèn)題,特別是語(yǔ)音信號(hào),這個(gè)問(wèn)題是因?yàn)榱炕蟮脑肼暦植茧m然在頻率域上得到控制,但在時(shí)域上卻以一個(gè)常數(shù)分布在一個(gè)轉(zhuǎn)換塊內(nèi)。如果這種塊中信號(hào)變化得很劇烈卻又不轉(zhuǎn)向一個(gè)短塊去,那這個(gè)常數(shù)分布的噪聲將會(huì)被聽(tīng)到。TNS的原理利用了時(shí)域和頻域的二元性和LPC(線性預(yù)測(cè)編碼)的時(shí)頻對(duì)稱性,即在其中的任意一個(gè)域上做編碼與在另一域上做預(yù)測(cè)編碼等
17、效,也就是說(shuō),在一個(gè)域內(nèi)做預(yù)測(cè)編碼可以在另一域內(nèi)增加其解析度。量化噪聲產(chǎn)生是在頻域產(chǎn)生的,降低了時(shí)域的解析度,故在這里是在頻域上做預(yù)測(cè)編碼。在AACplus中,由于基于AAC profile LC,故TNS的濾波器階數(shù)被限制在12階以內(nèi)。8.1 處理流程TNS解碼流程圖9. IMDCT將音頻數(shù)據(jù)從頻域轉(zhuǎn)換到時(shí)域的過(guò)程主要是由將頻域數(shù)據(jù)填入一組IMDCT濾波器來(lái)實(shí)現(xiàn)的。在進(jìn)行IMDCT變換后,輸出數(shù)值經(jīng)過(guò)加窗,疊加,最后得到時(shí)域數(shù)值。9.1 IMDCT公式for 0<= n <N其中n為采樣點(diǎn)索引值i為窗索引值k為頻譜系數(shù)索引值N為窗函數(shù)的長(zhǎng)度,全為短窗N = 256,其余情況為20
18、48n0=(N/2 +1)/29.2 塊型由于長(zhǎng)塊的頻域分辨率較高而短塊的時(shí)域分辨率較高,故長(zhǎng)塊較適合相對(duì)平穩(wěn)的時(shí)域信號(hào),而短塊較適合變化相對(duì)較快的時(shí)域信號(hào)。長(zhǎng)塊長(zhǎng)度為2048個(gè)點(diǎn),短塊長(zhǎng)度為256個(gè)點(diǎn)。9.3 加窗AAC用到兩種窗函數(shù),分別為Kaiser-Bessel 類(KBD)窗和正弦窗。KBD窗如下所示:其定義為: for 0 <= n <= N/2其中 使用KBD窗時(shí),window_shape 為1正弦窗如下所示:其定義為使用正弦窗時(shí),window_shape 為0另定義:對(duì)應(yīng)于四種不同的窗序列分別進(jìn)行不同的加窗變換:1.) 僅有長(zhǎng)塊:window_shape 為 1:window_shape 為0:加窗后,時(shí)域信號(hào)可用w(n)表示為:2.) 長(zhǎng)開(kāi)始?jí)K:window_shape 為 1:window_shape 為0:加窗后,時(shí)域信號(hào)可用w(n)表示為:3.) 只有短塊:window_shape 為 1:window_shape 為0:加窗后,時(shí)域信號(hào)可用w(n)表示為:2.) 長(zhǎng)結(jié)束塊:window_shape 為 1:window_shape 為0:加窗后,時(shí)域信號(hào)可用w(n)表示為:9.4 覆蓋疊加在加窗完成后得到的時(shí)域信號(hào)值z(mì)經(jīng)過(guò)前后
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國(guó)科學(xué)服務(wù)行業(yè)發(fā)展分析及前景趨勢(shì)與投資潛力研究報(bào)告
- 2025-2030年中國(guó)睫毛生長(zhǎng)血清行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2025-2030年中國(guó)目錄郵件列表和其他發(fā)布者行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2025-2030年中國(guó)盆景行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2025-2030年中國(guó)電陶瓷窯行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2025-2030年中國(guó)電腦投影儀行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2025-2030年中國(guó)電子出版物行業(yè)市場(chǎng)深度調(diào)研及競(jìng)爭(zhēng)格局與投資研究報(bào)告
- 應(yīng)急演練及知識(shí)培訓(xùn)課件
- 2025-2030年中國(guó)生活垃圾處理行業(yè)市場(chǎng)深度調(diào)研及發(fā)展趨勢(shì)與投資前景研究報(bào)告
- 2025-2030年中國(guó)珠線行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- (二模)2025年5月濟(jì)南市高三高考針對(duì)性訓(xùn)練生物試卷(含答案)
- 2025年電工操作資格證考試復(fù)習(xí)考試題庫(kù)(共583題)(含答案)
- 2025年攝影師職業(yè)技能鑒定試卷:攝影現(xiàn)場(chǎng)拍攝光線與色彩協(xié)調(diào)技巧試題
- 臨床面試專業(yè)真題及答案
- 2025年公共事務(wù)管理師考試試卷及答案
- 醫(yī)藥職業(yè)道德課程課件
- 2025-2030中國(guó)鈹行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略研究報(bào)告
- 2025屆河北省“五個(gè)一”名校聯(lián)盟高三下學(xué)期4月聯(lián)考物理試題(含答案)
- logo保密合同協(xié)議
- 網(wǎng)格員考試題及答案重慶
- 網(wǎng)絡(luò)安全知識(shí)手冊(cè)
評(píng)論
0/150
提交評(píng)論