專利名稱::一種計(jì)算反量化公式中的非線性函數(shù)的方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及音頻壓縮算法領(lǐng)域,特別是涉及一種計(jì)算反量化公式中的非線性函數(shù)的方法。
背景技術(shù):
:AAC(AdvancedAudioCoding)是ISOMPEG組織在MPEG-2壓縮標(biāo)準(zhǔn)中制定的一項(xiàng)新的音頻壓縮算法,后來在MPEG-4標(biāo)準(zhǔn)對(duì)該算法進(jìn)行了進(jìn)一步的增強(qiáng)。AAC同MP3算法不是互相兼容的,同MP3算法相比,AAC采用了一些新的編碼工具,因此在相同的壓縮質(zhì)量下,AAC比MP3的壓縮比更高。當(dāng)在硬件設(shè)備上實(shí)現(xiàn)AAC解碼器時(shí),由于功耗和成本的原因,通常設(shè)備只支持定點(diǎn)操作,不支持浮點(diǎn)操作。圖1給出了AAC解碼器的結(jié)構(gòu)圖,當(dāng)在定點(diǎn)設(shè)備上實(shí)現(xiàn)解碼器時(shí),由于AAC解碼器中的反量化公式中涉及非線性函數(shù),定點(diǎn)設(shè)備并不支持這些非線性函數(shù),因此需要尋找快速的定點(diǎn)實(shí)現(xiàn)。通常,AAC解碼器中的反量化采用一種非線性的浮點(diǎn)量化策略。其中,AAC解碼器中的量化公式為Xquant(k)=sign(X(k)).int{(|X(k)·21/4·(scf-globalgain))3/4+MAGIC_NUMBER}(1)其中Xquant(k)表示量化后的譜系數(shù);X(k)表示量化前的譜系數(shù);scf和globalgain分別是尺度因子和全局增益因子;MAGIC_NUMBER定義的是常數(shù)0.4054。AAC解碼器中的反量化公式為Xinquant(k)=sign(Xquant(k))·|Xquant(k)|4/3·21/4·(gloabalgain-scf)(2)其中Xinquant(k)表示重建的譜系數(shù);Xinquant(k)同X(k)的差異稱之為量化誤差。由反量化公式(2)可見,這里涉及兩個(gè)非線性的冪操作。一個(gè)是|Xquant(k)|4/3,其中|Xquant|的范圍0~8191;另一個(gè)是21/4(globalgain-scf)。當(dāng)需要在定點(diǎn)DSP上實(shí)現(xiàn)AAC解碼器,由于定點(diǎn)設(shè)備并不支持這些非線性的浮點(diǎn)操作。我們通常需要采用以下幾種方式對(duì)上述非線性的冪操作進(jìn)行處理(1)查找表法(lookuptable)用一張表保存著這些數(shù)學(xué)函數(shù)f(x)在各個(gè)離散點(diǎn)的函數(shù)值。此方法的缺點(diǎn)是,消耗太多的內(nèi)存。優(yōu)點(diǎn)是,節(jié)省計(jì)算量。這方法比較適合自變量動(dòng)態(tài)范圍不是很大的情況。(2)查找表+插值法(interpolatedLUT)相對(duì)于方法1,用一張小表保存少數(shù)離散點(diǎn)的函數(shù)值,如果函數(shù)自變量的值落在表中的兩點(diǎn)之間,則采用插值的方法。此方法是在內(nèi)存和計(jì)算量之間的折衷,缺點(diǎn)是插值精度較差。(3)多項(xiàng)式近似(Polynomialapproximation)使用x的冪級(jí)數(shù)近似非線性的函數(shù)。如f(x)=a0+a1·x+a2·x2+a3·x3+a4·x4+...(3)多項(xiàng)式近似的優(yōu)點(diǎn)在于(1)適合并行計(jì)算結(jié)構(gòu),特別適合支持SIMD(singleinstructionmultipledata)或是MIMD(multipleinstructionmultipledata)(2)很小的內(nèi)存開銷。只需保存多項(xiàng)式系數(shù)。(3)具有理論基礎(chǔ)的。Weierstrass近似理論如果f[a,b]→R是定義在閉區(qū)間[a,b]的一個(gè)連續(xù)函數(shù),ε>0,則存在一個(gè)多項(xiàng)式函數(shù)Pε(x),使得|f(x)-Pε(x)|<εx∈[a,b]多項(xiàng)式近似缺點(diǎn)在于當(dāng)多項(xiàng)式的階數(shù)較高時(shí),計(jì)算開銷較大。因此,亟待提出一種更優(yōu)的計(jì)算反量化公式中的非線性函數(shù)的方法。
發(fā)明內(nèi)容有鑒于此,本發(fā)明的目的在于提出一種結(jié)合查找表法和多項(xiàng)式近似兩種方法來計(jì)算反量化公式中的非線性函數(shù)。為了達(dá)到上述目的,本發(fā)明提供一種計(jì)算反量化公式中的非線性函數(shù)的方法,其包括步驟一,統(tǒng)計(jì)碼流中,量化的譜系數(shù)的分布概率;步驟二在量化的譜系數(shù)出現(xiàn)概率相對(duì)集中的范圍內(nèi),對(duì)非線性函數(shù)采用查表法來計(jì)算,其中B點(diǎn)的值可以根據(jù)用戶的要求設(shè)定;步驟三在譜系數(shù)出現(xiàn)概率相對(duì)非集中的[B~8191]范圍內(nèi)的,對(duì)非線性函數(shù)通過多項(xiàng)近似來計(jì)算。優(yōu)選的,所述非線性函數(shù)為P(x)=X4/3,其中X為量化的譜系數(shù),且0≤X≥8191。優(yōu)選的,其特征為所述反量化公式是AAC解碼器中的反量化公式或是MP3壓縮標(biāo)準(zhǔn)中使用的反量化公式。進(jìn)一步優(yōu)選的,設(shè)定B點(diǎn)的值時(shí)需要考慮的因素包括冪函數(shù)值Y的精確度、需要儲(chǔ)存的譜系數(shù)X的個(gè)數(shù)及出現(xiàn)在范圍內(nèi)的譜系數(shù)X概率。進(jìn)一步優(yōu)選的,B點(diǎn)的值的范圍確定為[13,17]。進(jìn)一步優(yōu)選的,B點(diǎn)的值為15。進(jìn)一步優(yōu)選的,步驟三中對(duì)非線性函數(shù)通過多項(xiàng)式近似來計(jì)算具體包括a根據(jù)對(duì)精度和計(jì)算量的要求,確定多項(xiàng)式及多項(xiàng)式的階數(shù)和系數(shù);b根據(jù)確定出來的多項(xiàng)式計(jì)算出非線性函數(shù)的值。進(jìn)一步優(yōu)選的,步驟a中采用minimaxpolynomial法來獲得多項(xiàng)式,。進(jìn)一步優(yōu)選的,采用Remez算法來計(jì)算P(x)=x4/3函數(shù)的minimax多項(xiàng)式,當(dāng)多項(xiàng)式的階數(shù)為6時(shí),X的區(qū)間選取為時(shí),多項(xiàng)式系數(shù)為a[7]={-0.014840828668,0.503176802784,0.879620120995,-0.649533912857,0.417397714480,-0.164851058049,0.029031186561}對(duì)應(yīng)的多項(xiàng)式為P(x)=a+a[1]·x+a[2]·x2+a[3]·x3+a[4]·x4+a[5]·x5+a[6]·x6。進(jìn)一步優(yōu)選的,步驟b可分為以下幾步計(jì)算B1.將多項(xiàng)式的系數(shù)采用Q31的定點(diǎn)數(shù)來表示;B2.將自變量X的范圍由[16,8191]歸一化到區(qū)間,得到新變量X′;X′=X·2NN為X中除了最高位的符號(hào)位外,剩余的符號(hào)位的個(gè)數(shù)。N值的計(jì)算可用定點(diǎn)DSP的專用指令完成。乘法可用移位操作完成。此時(shí)得到的X′為Q31的定點(diǎn)數(shù);B3.利用多項(xiàng)式P(x)來計(jì)算P(X′);B4.由X′的冪值P(X′)來恢復(fù)X的冪值X4/3本發(fā)明提出結(jié)合查找表法和多項(xiàng)式近似來計(jì)算AAC解碼器的反量化中的非線性函數(shù),可以在內(nèi)存消耗很小的前提下,既保證很少的計(jì)算量,同時(shí)又能保證很高的精度。圖1是現(xiàn)有技術(shù)中AAC解碼器的結(jié)構(gòu)圖。具體實(shí)施例方式由公式(2)可以知道,在AAC反量化公式中涉及兩個(gè)非線性函數(shù),一個(gè)是|Xquant(k)|4/3,其中|Xquant|的范圍0~8191;另一個(gè)是21/4·(globalgain-scf)。其中21/4*x函數(shù)的計(jì)算比較簡(jiǎn)單,可采用下面方法計(jì)算Y=21/4*x采用浮點(diǎn)量化的策略,將Y的結(jié)果表示成兩部分尾數(shù)部分Yfract(|Yfract|≤1,采用二進(jìn)制的小數(shù)表示)和2的指數(shù)部分Yexp(采用二進(jìn)制的整數(shù)表示),則Y=Yfract*2Yexp=(Yfract)<<Yexp]]>通常我們只需要將20/4,21/4,22/4,23/4這四個(gè)指數(shù)值保存到表中table[4](數(shù)組下標(biāo)從0開始),當(dāng)x采用二進(jìn)制補(bǔ)碼表示時(shí),Yfract=table[x&0x3],Yexp=x>>2.例如2^(4/4)=2^(1)*2^(0/4)2^(5/4)=2^(1)*2^(1/4)明顯這種方法實(shí)現(xiàn)只需保存四個(gè)指數(shù)值,所涉及的計(jì)算量也很小,只有一個(gè)查表操作,一個(gè)“位與”操作和2個(gè)移位操作。針對(duì)AAC反量化公式中非線性x4/3函數(shù)(x∈的整數(shù))的計(jì)算,本發(fā)明提出結(jié)合查找表法和多項(xiàng)式近似來計(jì)算AAC解碼器的反量化中的非線性函數(shù),可以在內(nèi)存消耗很小的前提下,既保證很少的計(jì)算量,同時(shí)又能保證很高的精度。此外,由于AAC和MP3采用類似的量化策略,本發(fā)明提出的方法也適用于MP3解碼器的反量化中非線性函數(shù)的計(jì)算。下面以AAC反量化公式中非線性x4/3函數(shù)為例,來說明本發(fā)明計(jì)算反量化公式中的非線性函數(shù)的方法,其包括如下步驟步驟一統(tǒng)計(jì)AAC碼流中,量化的譜系數(shù)X的分布概率以及采用32位定點(diǎn)數(shù)(1位符號(hào)位)來保存冪函數(shù)值Y時(shí)的精度,其中Y=X4/3。下表中統(tǒng)計(jì)了AAC碼流中,量化的譜系數(shù)X的分布概率以及采用32位定點(diǎn)數(shù)(1位符號(hào)位)來保存冪函數(shù)值Y時(shí)的精度。步驟二在X出現(xiàn)概率相對(duì)集中的范圍內(nèi),對(duì)非線性x4/3函數(shù)采用查表法來計(jì)算,其中B點(diǎn)的值可以根據(jù)用戶的要求設(shè)定。該步驟具體如下從表中譜系數(shù)X的分布可以看出,量化后的譜系數(shù)X大部分分布在范圍內(nèi),因此在譜系數(shù)X的范圍內(nèi)即B為15時(shí),對(duì)非線性x4/3函數(shù)采用查表法來計(jì)算。此時(shí),只需在表中保存16個(gè)譜系數(shù)X的冪值Y,由于大部分的譜系數(shù)的冪值可以通過查表來獲得,因此這種策略在大量節(jié)省內(nèi)存的情況下,計(jì)算量也沒有大的增加,同時(shí)有能保證很高的精度。需要注意的是,由于B值得選取可以影響冪函數(shù)值Y的精確度、需要儲(chǔ)存的譜系數(shù)X的個(gè)數(shù)及出現(xiàn)在范圍內(nèi)的譜系數(shù)X概率,所以,在其他的是實(shí)例中,一般可以根據(jù)用戶對(duì)上述因素的要求在15附近選取B值,比如13、14、16、17等。步驟三在譜系數(shù)X出現(xiàn)概率相對(duì)非集中的[B~8191]范圍內(nèi)的,對(duì)非線性x4/3函數(shù)可以通過多項(xiàng)近似來計(jì)算。下面介紹如何通過多項(xiàng)式近似來計(jì)算Y=X4/3,步驟一的特定實(shí)施例中B取值15,所以此步驟X屬于[16,8191]區(qū)間上的整數(shù)。步驟a根據(jù)對(duì)精度和計(jì)算量的要求,確定多項(xiàng)式的階數(shù)和系數(shù)。從實(shí)現(xiàn)角度考慮,一方面我們希望多項(xiàng)式的階數(shù)越小越好,這樣既可以減少需要保存的多項(xiàng)式系數(shù){ai},同時(shí)也可以節(jié)省計(jì)算量;但另一方面我們希望多項(xiàng)式近似的精度越高越好;因此我們需要尋找一組多項(xiàng)式系數(shù){ai},希望在最小階數(shù)下保持最大的精度。在實(shí)際應(yīng)用中,我們通常尋找滿足給定精度準(zhǔn)則(accuracycriterion)下具有最小階數(shù)的多項(xiàng)式。通常采用的幾個(gè)精度準(zhǔn)則有(1)最小化最大的絕對(duì)誤差(Minimizemaximumabsoluteerror)(2)最小化平均的絕對(duì)誤差(Minimizemeanabsoluteerror)(3)最小化均方誤差(Minimizemeansquarederror)在實(shí)際應(yīng)用中,一般要考慮最壞情況下的近似誤差,因此通常采用精度準(zhǔn)則1,即最小化最大的絕對(duì)誤差。通常把這種方法獲得多項(xiàng)式近似稱之為minimaxpolynomial法。在一個(gè)特定的實(shí)施例中,采用Remez算法來計(jì)算P(x)=x4/3函數(shù)的minimax多項(xiàng)式。Remez遞推算法的交錯(cuò)點(diǎn)初值選取的是切比雪夫多項(xiàng)式(Chebyshev)的交錯(cuò)點(diǎn)。當(dāng)多項(xiàng)式的階數(shù)為6時(shí),X的區(qū)間選取為時(shí),最大絕對(duì)誤差為2.6×10-8。此時(shí)的多項(xiàng)式系數(shù)為a[7]={-0.014840828668,0.503176802784,0.879620120995,-0.649533912857,0.417397714480,-0.164851058049,0.029031186561}對(duì)應(yīng)的多項(xiàng)式為P(x)=a+a[1]·x+a[2]·x2+a[3]·x3+a[4]·x4+a[5]·x5+a[6]·x6步驟b根據(jù)確定出來的多項(xiàng)式計(jì)算出非線性x4/3函數(shù)的值。可分為以下幾步計(jì)算((假設(shè)整數(shù)采用二進(jìn)制補(bǔ)碼表示,字長(zhǎng)32位)(1)6階多項(xiàng)式的系數(shù)可采用Q31的定點(diǎn)數(shù)來表示;(2)將自變量X的范圍由[16,8191]歸一化到區(qū)間,得到新變量X′;X′=X·2NN為X中除了最高位的符號(hào)位外,剩余的符號(hào)位的個(gè)數(shù)。N值的計(jì)算可用定點(diǎn)DSP的專用指令完成。乘法可用移位操作完成。此時(shí)得到的X′為Q31的定點(diǎn)數(shù)。(3)利用多項(xiàng)式P(x)來計(jì)算P(X′)。最快的實(shí)現(xiàn)需要6個(gè)乘法操作和6個(gè)加法操作。在實(shí)際應(yīng)用中,根據(jù)計(jì)算精度和計(jì)算量考慮可以適當(dāng)調(diào)整多項(xiàng)式的階數(shù)。下表列出了多項(xiàng)式近似的計(jì)算量和存儲(chǔ)量同多項(xiàng)式階數(shù)的關(guān)系。(4)由X′的冪值P(X′)來恢復(fù)X的冪值X4/3X4/3=(X·2N-31·231-N)4/3=(X·2N-31)4/3·2(31-N)·4/3前一項(xiàng)對(duì)應(yīng)的定點(diǎn)數(shù)就是P(X′),后一項(xiàng)計(jì)算可采用查表來獲得。由于16≤X≤8191,18≤N≤26,因此只需保存table[i]=2(13-i)·4/30≤i=N-18≤8。具體實(shí)現(xiàn)時(shí),為了保證精度,通常采用偽浮點(diǎn)來保存table[i]的值,table_frac[I]保存Q31格式尾數(shù),table_exp[I]保存對(duì)應(yīng)的指數(shù)(以2為底)。因此恢復(fù)X的冪值X4/3,只需要1個(gè)乘法和1個(gè)移位操作和兩次查表操作。此外,需要額外的存儲(chǔ)量18word來保存table_frac和table_exp。由上述計(jì)算過程可見,本文提出的采用多項(xiàng)式近似計(jì)算x4/3方法,當(dāng)多項(xiàng)式階數(shù)為6時(shí),在很小的內(nèi)存消耗(25個(gè)word),既保持很高的精度(2.6×10-8),又只有很少的計(jì)算量(6個(gè)加法,7個(gè)乘法,2個(gè)移位,2個(gè)查表操作,1個(gè)DSP專用指令)。由此可見,針對(duì)AAC反量化公式中非線性x4/3函數(shù)(x∈的整數(shù))的計(jì)算,本發(fā)明提出結(jié)合查找表法和多項(xiàng)式近似來計(jì)算AAC解碼器的反量化中的非線性函數(shù),具體來說即在X出現(xiàn)概率相對(duì)集中的范圍內(nèi)對(duì)非線性x4/3函數(shù)采用查表法來計(jì)算、在譜系數(shù)X出現(xiàn)概率相對(duì)非集中的[B~8191]范圍內(nèi)的,對(duì)非線性x4/3函數(shù)通過多項(xiàng)近似來計(jì)算,可以在內(nèi)存消耗很小的前提下,既保證很少的計(jì)算量,同時(shí)又能保證很高的精度。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。權(quán)利要求1.一種計(jì)算反量化公式中的非線性函數(shù)的方法,其包括步驟一,統(tǒng)計(jì)碼流中,量化的譜系數(shù)的分布概率;步驟二在量化的譜系數(shù)出現(xiàn)概率相對(duì)集中的范圍內(nèi),對(duì)非線性函數(shù)采用查表法來計(jì)算;步驟三在譜系數(shù)出現(xiàn)概率相對(duì)非集中的范圍內(nèi)的,對(duì)非線性函數(shù)通過多項(xiàng)近似來計(jì)算。2.根據(jù)權(quán)利要求1所述的方法,其特征為所述非線性函數(shù)為P(x)=X4/3其中X為量化的譜系數(shù),且0≤X≥8191,其中量化的譜系數(shù)出現(xiàn)概率相對(duì)集中的范圍是指,譜系數(shù)出現(xiàn)概率相對(duì)非集中的范圍是指[B~8191],其中B點(diǎn)的值可以根據(jù)用戶的要求設(shè)定。3.根據(jù)權(quán)利要求2所述的方法,其特征為設(shè)定B點(diǎn)的值時(shí)需要考慮的因素包括冪函數(shù)值Y的精確度、需要儲(chǔ)存的譜系數(shù)X的個(gè)數(shù)及出現(xiàn)在范圍內(nèi)的譜系數(shù)X概率。4.根據(jù)權(quán)利要求2所述的方法,其特征為B點(diǎn)的值的范圍確定為[13,17]。5.根據(jù)權(quán)利要求2所述的方法,其特征為B點(diǎn)的值為15。6.根據(jù)權(quán)利要求2或5所述的方法,其特征為步驟三中對(duì)非線性函數(shù)通過多項(xiàng)近似來計(jì)算具體包括a根據(jù)對(duì)精度和計(jì)算量的要求,確定多項(xiàng)式及多項(xiàng)式的階數(shù)和系數(shù);b根據(jù)確定出來的多項(xiàng)式計(jì)算出非線性函數(shù)的值。7.根據(jù)權(quán)利要求6所述的方法,其特征為步驟a中采用minimaxpolynomial法來獲得多項(xiàng)式,。8.根據(jù)權(quán)利要求7所述的方法,其特征為采用Remez算法來計(jì)算P(x)=x4/3函數(shù)的minimax多項(xiàng)式,當(dāng)多項(xiàng)式的階數(shù)為6時(shí),X的區(qū)間選取為時(shí),多項(xiàng)式系數(shù)為a[7]={-0.014840828668,0.503176802784,0.879620120995,-0.649533912857,0.417397714480,-0.164851058049,0.029031186561}對(duì)應(yīng)的多項(xiàng)式為P(x)=a+a[1]·x+a[2]·x2+a[3]·x3+a[4]·x4+a[5]·x5+a[6]·x6。9.根據(jù)權(quán)利要求6所述的方法,其特征為步驟b可分為以下幾步計(jì)算B1.將多項(xiàng)式的系數(shù)采用Q31的定點(diǎn)數(shù)來表示;B2.將自變量X的范圍由[16,8191]歸一化到區(qū)間,得到新變量X′;X′=X·2NN為X中除了最高位的符號(hào)位外,剩余的符號(hào)位的個(gè)數(shù)。N值的計(jì)算可用定點(diǎn)DSP的專用指令完成。乘法可用移位操作完成。此時(shí)得到的X′為Q31的定點(diǎn)數(shù);B3.利用多項(xiàng)式P(x)來計(jì)算P(X′);B4.由X′的冪值P(X′)來恢復(fù)X的冪值X4/3。10.根據(jù)權(quán)利要求1所述的方法,其特征為所述反量化公式是AAC解碼器中的反量化公式或是MP3壓縮標(biāo)準(zhǔn)中使用的反量化公式。全文摘要本發(fā)明公開了一種計(jì)算反量化公式中的非線性函數(shù)的方法,其包括步驟一,統(tǒng)計(jì)碼流中,量化的譜系數(shù)的分布概率;步驟二在量化的譜系數(shù)出現(xiàn)概率相對(duì)集中的范圍內(nèi),對(duì)非線性函數(shù)采用查表法來計(jì)算,其中B點(diǎn)的值可以根據(jù)用戶的要求設(shè)定;步驟三在譜系數(shù)出現(xiàn)概率相對(duì)非集中的[B~8191]范圍內(nèi)的,對(duì)非線性函數(shù)通過多項(xiàng)近似來計(jì)算。本發(fā)明提出結(jié)合查找表法和多項(xiàng)式近似來計(jì)算AAC解碼器的反量化中的非線性函數(shù),可以在內(nèi)存消耗很小的前提下,既保證很少的計(jì)算量,同時(shí)又能保證很高的精度。文檔編號(hào)G10L19/00GK1741394SQ200510102980公開日2006年3月1日申請(qǐng)日期2005年9月16日優(yōu)先權(quán)日2005年9月16日發(fā)明者馮宇紅,鄧昊申請(qǐng)人:北京中星微電子有限公司