專利名稱::一種基于先進(jìn)音頻編碼器的量化器碼率失真控制方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種基于先進(jìn)音頻編碼(AdvancedAudioCoding,AAC)的量化器碼率失真控制方法。
背景技術(shù):
:AAC是變換域編碼的一種,它的目標(biāo)是在一定的比特約束之下將失真的某種度量最優(yōu)化。失真是由量化過(guò)程引起的,在量化過(guò)程中,碼率失真控制為量化編碼器的參數(shù)賦值,以獲得準(zhǔn)確的比特消耗數(shù),從而能夠?qū)⒘炕д婵刂圃诟兄萑痰姆秶鷥?nèi),以便保證編碼的質(zhì)量和效率。AAC編碼使用了非均勻的量化器和變長(zhǎng)編碼,這使得量化算法的設(shè)計(jì)變得非常困難。首先,非均勻量化器無(wú)法根據(jù)感知容忍噪聲來(lái)制定編碼器參數(shù),并且,因?yàn)樽冮L(zhǎng)編碼的原因,比特消耗數(shù)只能通過(guò)量化結(jié)果計(jì)算獲得。為控制量化失真和比特消耗,需要恰當(dāng)?shù)剡x擇量化器的量化階(scalefactor)等參數(shù)以保證碼率失真控制有效i也控制量化失真和碼率。雙循環(huán)嵌套搜索(TLS)算法是目前使用得比較廣泛的R-D控制算法,它是AAC標(biāo)準(zhǔn)推薦的算法,但這種算法在進(jìn)行強(qiáng)制搜索最優(yōu)解時(shí)會(huì)帶來(lái)算法的不可實(shí)現(xiàn)性,它的復(fù)雜度為0((6(Tu廣)(60種量化階的可能性,11個(gè)碼書(shū),49個(gè)獨(dú)立的子帶)。為了降低R-D算法的復(fù)雜度,數(shù)種修正方法被提出,其中有設(shè)置最大循環(huán)次數(shù),縮小量化階搜索范圍,使用統(tǒng)計(jì)線性模型預(yù)測(cè)比特消耗,使用上一幀的參數(shù)作為當(dāng)前幀的初始值等等,但均未取得良好效果。
發(fā)明內(nèi)容有鑒于此,本發(fā)明所要解決的技術(shù)問(wèn)題在于,提供一種基于先進(jìn)音頻編碼的量化器碼率失真控制方法,該方法可以降低5馬率失真控制的復(fù)雜度,提高編碼器的編碼質(zhì)量和效率。為了實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案如下一種基于先進(jìn)音頻編碼器的量化器碼率失真控制方法,包含如下處理過(guò)程A、由待編碼的碼流獲得子帶可分配比特?cái)?shù)的預(yù)測(cè)值,根據(jù)子帶可分配比特?cái)?shù)的預(yù)測(cè)值計(jì)算子帶平均采樣可分配比特?cái)?shù);B、由上述子帶平均采樣可分配比特?cái)?shù)通過(guò)預(yù)定原則確定谷帶量化階選取系數(shù);由待編碼的碼流的改進(jìn)離散余弦變換譜和谷帶量化階選取系數(shù)計(jì)算得到谷帶量化階;C、以上述谷帶量化階為參數(shù)進(jìn)行碼率失真控制,得到最終參考比特消耗數(shù)。所述步驟B中的由待編碼的碼流的改進(jìn)離散余弦變換譜和谷帶量化階選取系數(shù)計(jì)算得到谷帶量化階通過(guò)下式實(shí)現(xiàn)假設(shè)量化公式用如下函數(shù)表述c=G(x(vv),D),x(w)為待編碼的碼流的改進(jìn)離散余弦變換譜,D為量階,c為量化值。令c=v"/fe^^e,G"()為量化函數(shù)e()的逆函數(shù),則求得的量階D就是谷帶量化階,表達(dá)式為va〃e_y=g-1(x(w),va〃ey6a化),特別的,如果在AAC中,表達(dá)式為max(lx(w)卜)其中,v。/—為谷帶量化階,x(vv)為待編碼的碼流的改進(jìn)離散余弦變換譜,^//^^化為谷帶量化階選取系數(shù)。所述步驟B中確定谷帶量化階選取系數(shù)的預(yù)定原則為若to尸enSW,/ep<1.5,v"http://^yZase=1;若1.5StoPenS薩j7/<2.5,=2;若2.5S6zYPenS謹(jǐn)p/ep<3.5,v"〃^y6a化=4;若3.5Sto尸enS扁//^<4.7,va/一6"化=7;若4.7S6"尸en&,/ep<6,va/fej^ose=12;若6^6"尸eriSfl,/,v"〃^Zos^=15;其中,w/一^e為谷帶量化階選取系數(shù),toPeWamp為子帶平均采樣可分配比特?cái)?shù)。所述子帶平均采樣可分配比特?cái)?shù)通過(guò)下式計(jì)算得到6腐—p=sfbAvailableW+。.l5[l。g2(bW)-2],其中,toi^&邵、為子帶平均采樣可分配比特?cái)?shù),sfbAvailable("為當(dāng)前子帶可分配比特?cái)?shù),bw""為當(dāng)前子帶帶寬。所述當(dāng)前子帶可分配比特?cái)?shù)通過(guò)下式計(jì)算得到sfbAvailable("=sfbAvailable(A:-1)-sfbCost(A:—1)+0.7sfbBits(A0sfbAvailable(A:5=max(0.95sfb6its(i),sfbAvailable〖A:》,其中,sfbAvailable(fc)為當(dāng)前子帶可分配比特?cái)?shù),sfbBits("為所述步驟A中得到的子帶可分配比特?cái)?shù)的預(yù)測(cè)值,sfbCost(ll)為上一子帶的參考比特消耗數(shù),所述參考比特消耗數(shù)通過(guò)谷帶量化階按預(yù)定方式計(jì)算得到。所述預(yù)定方式是利用谷帶量化階對(duì)子帶進(jìn)行量化,得到整數(shù)量化譜,并以整數(shù)量化譜為索引檢索霍夫曼碼書(shū)。所述的量化器碼率失真控制方法,步驟C中還包括對(duì)谷帶量化階的修正處理71)通過(guò)下式計(jì)算得到量化階修正幅度因子y^ctorC7a"ge=int+0.5其中>T^cfo廠c^a"gg為:、0.19,化階修正幅度因子,int為取整運(yùn)算符,to&nfomp為子帶平均采樣可分配比特?cái)?shù),toPen&附^/、,為子帶平均采樣參考比特消耗數(shù),由下式計(jì)算得到=£^^,其中,sfbbit("為當(dāng)前子帶參考比特消耗數(shù),bw彿("為當(dāng)前子帶帶寬;72)利用量化階修正幅度因子按預(yù)定原則對(duì)谷帶量化階進(jìn)行修正。所述步驟72)中谷帶量化階修正的預(yù)定原則為-若量化階修正幅度因子^cC^"ge小于-4,且谷帶量化階選取系數(shù)為1,放棄當(dāng)前子帶信息,不進(jìn)行編碼;若量化階修正幅度因子/"cC^"ge大于等于-4,小于0,且谷帶量化階選取系數(shù)為l,子帶帶寬大于4,將谷帶量化階增加l內(nèi)c^C^"ge卜若量化階修正幅度因子/""orCA朋ge大于等于0,小于等于1,或者量化階修正幅度因子力ctoK^朋ge小于0且子帶帶寬為4,谷帶量化階不變;若量化階修正幅度因子/actorC/^"ge大于1,或者/actorC/朋ge小于0且子帶帶寬大于4,進(jìn)行窗口搜索,選擇子帶內(nèi)加權(quán)量化誤差最小的谷帶量化階作為當(dāng)前子帶的谷帶量化階。當(dāng)量化階修正采用窗口搜索方式時(shí),包括如下步驟91)確定窗口范圍以[sear/^啤,化arc緣e/+1,…,5earc緣e/+化arcWVw附]作為量化階搜索的窗口范圍,其中,=max(化arc/ziS啤,va〃^y—附ox5te/+1)<formula>formulaseeoriginaldocumentpage9</formula>,式中,iW^y為谷帶量化階,x(w)為待編碼的碼流的改進(jìn)離散余弦變換譜,w/^6c^為谷帶量化階選取系數(shù),/actorOz朋ge為量化階修正幅度因子,bw("為子帶k的帶寬;92)計(jì)算子帶內(nèi)加權(quán)量化誤差-sfbhigh(A)Error—(&)=藝rate(w)(0.06416aO)4+0.5948a(3+1.775a(w)2》其中,Error^W為子帶內(nèi)加權(quán)量化誤差,w是譜序號(hào),sfblow(^,sfbhigh^)分別為子帶A的上界和下界,ot(w)為相對(duì)取整誤差,由下式計(jì)算得到-mt16'saclefactor(A)—x(w)卩x216'saclefactor(&)x(w)4x2其中l(wèi)x(w)l:x2—f,是量化后未取整的譜,saclefactorW為子帶k進(jìn)行窗口搜索時(shí)的候選量化階;rate(w)為加權(quán)系數(shù),由下式計(jì)算得到x(w)2x(w)4.rate(vv)=0.1sfbhigh(/t)w=sfblow(A;)+0,993)選擇子帶內(nèi)加權(quán)量化誤差最小的谷帶量化階作為當(dāng)前子帶的谷帶量化階。所述量化器碼率失真控制方法,步驟C中的子帶參考比特消耗數(shù)可以直接用谷帶量化階,或者更精確地用通過(guò)對(duì)谷帶量化階調(diào)整得到的量化階對(duì)編碼子帶進(jìn)行量化(如果沒(méi)有調(diào)整,無(wú)需重新量化),得到整數(shù)量化譜,并以整數(shù)量化譜為索引檢索霍夫曼碼書(shū)得到的。所述的量化器碼率失真控制方法,還包括利用幅度畸變因子對(duì)量化階的再修正處理若i<0.8,saclefactor=saclefactor(A:)+1;若0.8S"1.25,不做修正;若i>1.25,saclefactor=saclefactor(A:)-1;其中,saclefactor為再修正后的量化階,saclefactor(A:)為再修正前的量化階,R為幅度畸變因子,通過(guò)下式計(jì)算得到<formula>formulaseeoriginaldocumentpage10</formula>其中,sfblow(",sfbhigh("分別為子帶A:的上界和下界,x(w)為待編碼的碼流的改進(jìn)離散余弦變換譜,vv為譜序號(hào),m"g/c為量化跳躍點(diǎn),取值0.4054。本發(fā)明的有益效果在于,改進(jìn)了量化階的確定方法,以此方法確定的量化階作為碼率失真控制方法的參數(shù),有效地降低了碼率失真控制的復(fù)雜度,并因此降低了量化編碼時(shí)的運(yùn)算量,從而提高了編碼器的編碼質(zhì)量和效率。圖1是運(yùn)用本發(fā)明所述方法的MegalAAC編碼器的結(jié)構(gòu)框圖;圖2是本發(fā)明具體實(shí)施方式的流程圖3是圖1所示MegalAAC編碼器與另兩種現(xiàn)有的編碼器的ODG指標(biāo)比較示意圖4是圖1所示MegalAAC編碼器與另兩種現(xiàn)有的編碼器的麗R指標(biāo)比較示意圖5是圖1所示MegalAAC編碼器與另兩種現(xiàn)有的編碼器的0DG分布示意圖6是圖1所示MegalAAC編碼器與另兩種現(xiàn)有的編碼器的麗R分布示意圖。具體實(shí)施例方式下面對(duì)照附圖結(jié)合具體實(shí)施方式對(duì)本發(fā)明作詳細(xì)說(shuō)明。圖1是運(yùn)用本發(fā)明所述方法的MegalAAC編碼器的結(jié)構(gòu)框圖,主要包括心理聲學(xué)模型處理模塊、譜處理模塊、量化編碼模塊和碼流合成模塊,其中,量化編碼模塊中采用了本發(fā)明所述的量化器碼率失真控制方法,以便降低量化編碼時(shí)的運(yùn)算量。本發(fā)明具體實(shí)施方式的所述方法的流程參看圖2,包含如下步驟1.獲取谷帶量化階進(jìn)行量化編碼處理,需要先確定量化階;本發(fā)明確定的量化階,稱為谷帶量化階,其計(jì)算步驟如下la)計(jì)算子帶平均采樣可分配比特?cái)?shù)對(duì)于待編碼的碼流的編碼處理是一個(gè)連續(xù)的過(guò)程,通常以一幀為單位,并將每一幀數(shù)據(jù)分為若干子帶進(jìn)行處理。設(shè)子帶可分配比特?cái)?shù)的預(yù)測(cè)值為sfbBits(",該預(yù)測(cè)值可以通過(guò)AAC標(biāo)準(zhǔn)提供的傳統(tǒng)心理聲學(xué)模型算法由待編碼的碼流計(jì)算得出。一般公式為子帶可分配比特?cái)?shù)的預(yù)測(cè)值=子帶感知熵x當(dāng)前幀可用的比特?cái)?shù)/所有子帶感知熵和。其中,如編碼是定比特率編碼(CBR),那么當(dāng)前幀可用的比特?cái)?shù)是一個(gè)定值,等于比特率X1024/采樣率;如果是隨著使用情況變化,那么就是可變比特率編碼(VBR),這種情況下的當(dāng)前幀可用的比特?cái)?shù)一般由幀間比特控制算法提供。將該預(yù)測(cè)值減去邊帶信息所占據(jù)的一部分比特?cái)?shù)比例,該比例通常在0.05到0.5之間,本實(shí)施例取0.3。若上一子帶的參考比特消耗數(shù)為sfbCost(A-l),上一子帶可分配比特?cái)?shù)的預(yù)測(cè)值為sfbAvailable(;t-l),那么當(dāng)前子帶可分配比特?cái)?shù)為<formula>formulaseeoriginaldocumentpage11</formula>式(1)中,0.95是比特控制的一個(gè)系數(shù),可取0.5到1之間的數(shù),本實(shí)施例取(下式例取0.95;再利用子帶帶寬bw^修正獲得子帶平均采樣可分配比特?cái)?shù),如<formula>formulaseeoriginaldocumentpage11</formula>lb)谷帶量化階選取系數(shù)的確定谷帶量化階選取系數(shù)按如下原則確定<table>tableseeoriginaldocumentpage12</column></row><table>其中,將^//^6。^=1時(shí)的谷帶量化階稱為第一谷帶量化階,等于2時(shí)的谷帶量化階稱為第二谷帶量化階,等于4時(shí)的谷帶量化階稱為第四谷帶量化階,余者類推。做//^6"化為谷帶量化階選取系數(shù)。在本實(shí)施例應(yīng)用于AAC中,根據(jù)AAC的量化公式,以谷帶量化階選取系數(shù)作為量化的結(jié)果,由待編碼的碼流的改進(jìn)離散余弦變換(MDCT)譜反推計(jì)算出谷帶量化階,其具體通過(guò)下式得到max(lx(w)卜)(3)其中,v"/—為谷帶量化階,x(w)為待編碼的碼流的改進(jìn)離散余弦變換(MDCT)譜,當(dāng)然,.在本發(fā)明應(yīng)用于其他的音頻編碼器時(shí),由于量化公式的不同,式(3)也相應(yīng)有所區(qū)別。2.利用谷帶量化階進(jìn)行量化,得到參考比特消耗數(shù)2a)使用谷帶量化階進(jìn)行量化,獲得參考量化譜AAC中的參考量化譜是由式(4)產(chǎn)生,其中scalefactor[/t]為子帶A;的量化階,m"g/c為量化跳躍點(diǎn),AAC的標(biāo)準(zhǔn)推薦為0.4054,x(w)為MDCT譜,w為譜序號(hào),滿足條件sfbLow("《w《sfbHigh(",sfbLow(A)和sfbfflgh("分別是子帶it的下界和上界。|2■--scalefactor[A:]X("VV)4X216+m喂'c(4)以式(3)獲得的谷帶量化階^//^作為當(dāng)前子帶的量化階,利用式(4)獲得當(dāng)前子帶的參考量化譜。2b)子帶參考比特消耗數(shù)的計(jì)算子帶的參考比特消耗數(shù)需要使用參考量化譜查找碼書(shū)來(lái)獲得。本實(shí)施例中的碼書(shū),使用霍夫曼碼書(shū),AAC中的霍夫曼碼書(shū)一共有13個(gè),其規(guī)格如表i,其中o號(hào)碼書(shū)用來(lái)表示量化譜數(shù)據(jù)全為0,1到11號(hào)碼書(shū)用來(lái)對(duì)量化譜進(jìn)行編碼,縮放因子碼書(shū)用來(lái)對(duì)縮放因子進(jìn)行編碼。表lAAC中的霍夫曼碼書(shū)<table>tableseeoriginaldocumentpage13</column></row><table>計(jì)算量化階的消耗碼長(zhǎng),具體過(guò)程為獲得上一子帶的量化階scalefactor[Ll]和當(dāng)前子帶的量化階scalefactor[it],量化階使用差分編碼,HUf_SfLen是縮放因子的碼長(zhǎng)表,由下式確定量化階的消耗碼長(zhǎng)=scalefactor[A:_1]_scalefactor[A:]⑤sfLen("=Huf—sfLe爭(zhēng)/+60]量化譜的消耗碼長(zhǎng)的計(jì)算過(guò)程為首先求得子帶中整數(shù)量化譜的最大絕對(duì)值、^依次將子帶中相鄰的四個(gè)整數(shù)量化譜組成四維矢量["Z2^,4]作為索引去查找,累加求得不同碼書(shū)編碼所需碼長(zhǎng)的總數(shù),其中,有符號(hào)碼書(shū)的索引要加上最大絕對(duì)值作為偏移,而無(wú)符號(hào)碼書(shū)的索引則加上1。檢索方法為corfe丄e"l=HufJLenl[d+1]|>2+1]|>3+1]["+1]cocfe丄e"2=Huf—Len2[fl+1]|>2+1][。+l][f4+1]coffe丄ew5=Huf—Len5[d+4]|>2+4]+Huf—Len5[f3+4][,4+4]a^e丄e"6=Huf_Len6|>l+4][f2+4]+Huf—Len6[,3+4][f4+4]n=|,l|,,2,|,f3=|,3|,M=|M|Ze"=!W+!!f2+!W+!!M^e£e4=Huf—Len4[fl]02]03][M]+WgwZewcocfe丄ew7=HufJLen7[f1]02]+Huf—Len7[f3]04]+w'gw丄ewcwfe丄ew8=Huf—Len8[>l]|>2]+Huf—Len8[。][M]+s/gw丄ewcocfe丄e"9=Huf—Len9|>l][/2]+Huf—Len9[f3][f4]+cocfeZew10=Huf_LenlO[Yl][>2]+Huf—LenlO[。][M]+cocfe丄e"l1=Huf—Lenll[>l][f2]+Huf—Lenll[f3][74]+w'g"丄e"其中符號(hào)!!的運(yùn)算原則為若r0,!!Z檢索碼書(shū)的流程根據(jù)/_判斷如下1,,ax=1,檢索1,2,3,4,5,6,7,8,9,10,11號(hào)碼書(shū)"ax=2,檢索3,4,5,6,7,8,9,10,11號(hào)碼書(shū)2</maxC]4,檢索5,6,7,8,9,10,11號(hào)碼書(shū)4<、ax□,檢索7,8,9,10,11號(hào)碼書(shū)7<,max012,檢索9,10,11號(hào)碼書(shū)I2<、ax□",檢索11號(hào)碼書(shū)16£L,檢索ll號(hào)碼書(shū),啟動(dòng)溢出保護(hù)機(jī)制(6)7=0,!!,=0。其中,溢出保護(hù)機(jī)制,在U16時(shí)先以16替代大于16的整數(shù)譜d乍為索引進(jìn)行檢索,然后在這個(gè)霍夫曼碼字后面,為等于16的索引依次添加逃避序列。逃避序列(escapesequence)由以下三部分組成[escape_prefix][escape—separator][escape—word]其中[escape—prefix]是;v個(gè)'1,,[escape—separator]是一個(gè)'0,,[escape_word]是一個(gè)w+4比特的無(wú)符號(hào)整型數(shù),,滿足f=+[escape—word],增力卩比年寺數(shù)為2int[log2(f+1)+l]-5。檢索碼長(zhǎng)碼書(shū),得到第《子帶整數(shù)量化譜使用m號(hào)碼書(shū)的參考比特消耗值,將其記錄在參考比特消耗矩陣reffiits(m,"中,沒(méi)有計(jì)算到的則在矩陣相應(yīng)位置記為65535。當(dāng)前子帶k的參考比特消耗數(shù)為sfbbit("=sfLen(A:)+min(reffiits(m,A:)),m=1,2...,11(7)為了進(jìn)一步提高碼率失真控制的效果,本發(fā)明具體實(shí)施方式還包括對(duì)量化階的修正處理步驟,在此,將前述步驟中出現(xiàn)的沒(méi)有經(jīng)過(guò)修正處理的谷帶量化階稱為初始谷帶量化階,而將此后出現(xiàn)的經(jīng)過(guò)修正處理的量化階稱為最終谷帶量化階。2c)量化階修正幅度因子計(jì)算計(jì)算子帶平均采樣參考比特消耗數(shù)sfbbit("計(jì)算量化階修正幅度因子(8)_/^ctorC%a"ge=int0.19+0.5(9)int為取整運(yùn)算符,to/^&^^、為子帶平均采樣可分配比特?cái)?shù)。2d)谷帶量化階修正判斷1)若/"c^C/^"ge小于-4,并且初始谷帶量化階是第一谷帶量化階,那么當(dāng)前子帶信息被放棄,不進(jìn)行編碼;2)若力c^C/w"ge大于等于-4,小于O,并且初始谷帶量化階是第一谷帶量化階且子帶帶寬大于4,那么,在初始谷帶量化階的基礎(chǔ)上增加|/aC^O^ge|,以此作為最終谷帶量化階;3)若/actorCA朋ge大于等于0,小于等于l,或者/flCO^"ge小于0且?guī)挒?,那么以初始谷帶量化階作為最終谷帶量化階;4)若/actorC/w"ge大于1,或者/fl"orOw"ge小于0且?guī)挻笥?,那么進(jìn)行窗口搜索,修正判斷決定進(jìn)行窗口搜索時(shí),首先確定窗口范圍,過(guò)程如下searc/ziS啤=ra/——y^ctorC7a"ge+int+0.(10)化flrc/ziS啤=max—"rcM啤,va〃ey—附ox5V^p+1)其中mw&印起到量化譜最大值限制的作用,由下式得到:p16,,xS鄉(xiāng)=ylog22435max'(lx(w)卩)化arc/L/Vw附=min24bw()t)十mm乂乂6,afo(j^加/^awg^)cos(ii)A2-2001450,(12)以[searc/^e/,sewc/^e;+1,,saan^iSVe;+sea/rAM/附]作為量<七卩介,叟索的齒口范圍,計(jì)算帶內(nèi)加權(quán)量化誤差,過(guò)程為計(jì)算相對(duì)取整余差inta(w)=—l|一--saclefactor(t)||_---(13)i,2--saclefactor("Ix(w)卜x216其中|X(w)|*x2-》她—"是量化后未取整的譜,saclefactor("為子帶k搜索時(shí)的候選量化階。加權(quán)系數(shù)為—=0.lstbhigy2+,4(14)帶內(nèi)加權(quán)誤差為sfbhigh(A)Error^(A:)=藝rateO)(0.06416otO)4+0.5948a(w)3+1.775a(2)其中sfblow(/t),sfbhigh(/t)分別為子帶it的上界和下界,x(w)為MDCT譜,w為譜序號(hào)。對(duì)于需要進(jìn)行窗口范圍量化階搜索的子帶,進(jìn)行sewcM^n+1次帶內(nèi)加權(quán)量化誤差計(jì)算后,選擇其中帶內(nèi)加權(quán)量化誤差最小的量化階作為當(dāng)前子帶的最終谷帶量化階。2e)經(jīng)過(guò)量化階修正處理后,由初始谷帶量化階得到最終谷帶量化階,使用最終谷帶量化階利用式(4)進(jìn)行最終量化(如果沒(méi)有修正,無(wú)需重新量化),計(jì)算得到最終的子帶參考比特消耗數(shù)。2f)對(duì)最終谷帶量化階進(jìn)行再修正為了解碼器更好的反量化,還可以對(duì)最終谷帶量化階進(jìn)行再修正,再修正后的量階可用于解碼器的反量化。再修正處理首先對(duì)當(dāng)前子帶的量化取整譜計(jì)算其幅度畸變因子<formula>formulaseeoriginaldocumentpage16</formula>若0.8S"1.25,不做修正;若i〉1.25,另卩么saclefactor=sacIefactor(A)—1。其中saclefactor'(it)為再修正后的量化階,saclefactor("為再修正前的量化階,sfblow(",sfbhigh("分別為子帶A的上界和下界,x(w)為MDCT譜,w為譜序號(hào)。確定了初始谷帶量化階后,即可以該量化階為參數(shù)進(jìn)行碼率失真控制。一方面,由初始谷帶量化階獲得子帶參考比特消耗數(shù),可直接作為后續(xù)編碼步驟的輸入,完成熵編碼和碼流合成,最終得到編碼碼流。另一方面,更精確的,子帶參考比特消耗數(shù)可作為反饋提供給量化階確定過(guò)程而對(duì)初始谷帶量化階進(jìn)行修正,以得到更好的碼率失真控制效果,從而最終提升整個(gè)編碼器的整體編碼效率與質(zhì)量。以上公式和數(shù)據(jù)均是通過(guò)實(shí)驗(yàn)結(jié)果或者是綜合待求參數(shù)的相關(guān)影響因素?cái)M合所給出的較優(yōu)值,本發(fā)明并不限于僅使用上述具體數(shù)值。有關(guān)運(yùn)算復(fù)雜度評(píng)估通過(guò)比較未使用本發(fā)明的FreeAdvancedAudioCoder(FAAC)和使用了本發(fā)明的MegalAACEncoder(Megal),在對(duì)44100Hz采樣,16位量化的立體聲音頻進(jìn)行平均比特率編碼的情況下進(jìn)行,參考指標(biāo)為每秒百萬(wàn)操作數(shù),其中FAAC是德國(guó)FraunhoferIIS開(kāi)發(fā)的AAC編碼器,F(xiàn)raunhoferIIS是Mpeg標(biāo)準(zhǔn)的主要制定者,其FAAC編碼器是AAC標(biāo)準(zhǔn)的驗(yàn)證編碼器。表2編碼器的運(yùn)算復(fù)雜度<table>tableseeoriginaldocumentpage17</column></row><table>算消耗比特?cái)?shù)時(shí),僅需調(diào)用碼書(shū)4.35次,相比較FAAC需要61.37次。Megal的量化編碼算法的計(jì)算量為12.8M0PS,其總計(jì)算量為21.2M0PS,相比較FAAC分別為35M0PS和90.8M0PS,分別降低63.4%和76.7%。編碼器的音質(zhì)評(píng)估使用EAQUAL1.3,這是使用感知音頻客觀評(píng)價(jià)標(biāo)準(zhǔn)PEAQ的客觀評(píng)價(jià)程序,PEAQ提供的音質(zhì)評(píng)價(jià)指標(biāo)名稱及其描述見(jiàn)表3。表3eaqual軟件輸出的評(píng)價(jià)指標(biāo)及意義<table>tableseeoriginaldocumentpage18</column></row><table>這里選擇總體指標(biāo)(ODG)和兩個(gè)重要的單項(xiàng)指標(biāo)(BandwidthTest和麗R)作為主要參考指標(biāo)。音質(zhì)評(píng)估使用三種編碼器參照進(jìn)行,對(duì)它們進(jìn)行橫向評(píng)估,這三個(gè)編碼器分別為本發(fā)明的Megal,現(xiàn)有技術(shù)的NCTUAACEncoder(以下簡(jiǎn)稱NCTU)和FAAC。其中NCTU是臺(tái)灣交通大學(xué)感知音頻小組開(kāi)發(fā)的AAC編碼器,音質(zhì)評(píng)估源使用美國(guó)惠威公司提供的音響試音碟的第一張和第二張,剔除了重復(fù)的曲目,選取了其中37支音樂(lè)剪輯,這些剪輯包含了樂(lè)曲的基本類型,它們的名稱以及描述見(jiàn)表4。表4測(cè)試曲目<table>tableseeoriginaldocumentpage18</column></row><table><table>tableseeoriginaldocumentpage19</column></row><table>測(cè)試結(jié)果見(jiàn)表5。表5測(cè)試結(jié)果<table>tableseeoriginaldocumentpage20</column></row><table><table>tableseeoriginaldocumentpage21</column></row><table>從以上測(cè)試數(shù)據(jù)可以得到,NCTU的平均0DG相對(duì)FAAC提高0.163,而使用本發(fā)明的Megal的平均0DG相對(duì)NCTU又提高了0.187;NCTU的平均麗R相對(duì)FAAC降低了1.06dB,而使用本發(fā)明的Megal的平均麗R相對(duì)NCTU又降低了L08dB。類似的結(jié)論可以在關(guān)于MegalAAC編碼器與另兩種編碼器的ODG與麗R指標(biāo)比較和分布的圖3、圖4、圖5和圖6中得到。計(jì)算量評(píng)估與音質(zhì)客觀評(píng)價(jià)都說(shuō)明,本發(fā)明可以使AAC編碼器運(yùn)算量大大降低,而音質(zhì)得到大幅提高,整個(gè)編碼器的質(zhì)量和效率具有顯著的提升。權(quán)利要求1.一種基于先進(jìn)音頻編碼器的量化器碼率失真控制方法,其特征在于,包含如下處理過(guò)程A、由待編碼的碼流獲得子帶可分配比特?cái)?shù)的預(yù)測(cè)值,根據(jù)子帶可分配比特?cái)?shù)的預(yù)測(cè)值計(jì)算子帶平均采樣可分配比特?cái)?shù);B、由上述子帶平均采樣可分配比特?cái)?shù)通過(guò)預(yù)定原則確定谷帶量化階選取系數(shù);由待編碼的碼流的改進(jìn)離散余弦變換譜和谷帶量化階選取系數(shù)計(jì)算得到谷帶量化階;C、以上述谷帶量化階為參數(shù)進(jìn)行碼率失真控制,得到最終參考比特消耗數(shù)。2.如權(quán)利要求1所述的量化器碼率失真控制方法,其特征在于,所述步驟B中的由待編碼的碼流的改進(jìn)離散余弦變換譜和谷帶量化階選取系數(shù)計(jì)算得到谷帶量化階通過(guò)下式實(shí)現(xiàn)max(lx(w)卜)其中,^//^為谷帶量化階,x(w)為待編碼的碼流的改進(jìn)離散余弦變換譜,w/^y^e為谷帶量化階選取系數(shù)。3.如權(quán)利要求1或2所述的量化器碼率失真控制方法,其特征在于,所述步驟B中確定谷帶量化階選取系數(shù)的預(yù)定原則為若6"尸enSa,/<1.5,va/一6a化=1,若1.5S6"尸^S畫(huà)—p<2.5,va/一Z)^e二2若2.5S6"尸e/;Sfl,/ep<3.5,=4若3.5S<4.7,va//ej^xye=7若4.7S6"尸en&,/ep<6,va/一6(xse=12;若6SZzY尸enSWmp/ep,va//ej^as^=15;其中,^//^Z^e為谷帶量化階選取系數(shù),^尸^&,罕為子帶平均采樣可分配比特?cái)?shù)。4.如權(quán)利要求3所述的量化器碼率失真控制方法,其特征在于,所述子帶平均采樣可分配比特?cái)?shù)通過(guò)下式計(jì)算得到<formula>formulaseeoriginaldocumentpage2</formula>其中,toP^Sa,/為子帶平均采樣可分配比特?cái)?shù),sfbAvailable("為當(dāng)前子帶可分配比特?cái)?shù),b("為當(dāng)前子帶帶寬。5.如權(quán)利要求4所述的量化器碼率失真控制方法,其特征在于,所述當(dāng)前子帶可分配比特?cái)?shù)通過(guò)下式計(jì)算得到sfbAvailable("=sfbAvailable(A:-1)-sfbCost(A-1)+0.7sfbBits(A:)sfbAvailable(A^=max(0.95sfbBits(A:),sfbAvailable&)),其中,sfbAvailable("為當(dāng)前子帶可分配比特?cái)?shù),sfbBits("為所述步驟A中得到的子帶可分配比特?cái)?shù)的預(yù)測(cè)值,sfbCost(H)為上一子帶的參考比特消耗數(shù),所述參考比特消耗數(shù)通過(guò)谷帶量化階按預(yù)定方式計(jì)算得到。6.如權(quán)利要求5所述的量化器碼率失真控制方法,其特征在于,所述預(yù)定方式是利用谷帶量化階對(duì)子帶進(jìn)行量化,得到整數(shù)量化譜,并以整數(shù)量化譜為索弓I檢索霍夫曼碼書(shū)。7.如權(quán)利要求6所述的量化器碼率失真控制方法,其特征在于,所述步驟C中還包括對(duì)谷帶量化階的修正處理71)通過(guò)下式計(jì)算得到量化階修正幅度因子<formula>formulaseeoriginaldocumentpage3</formula>其中,々ctorC7j朋ge為:化階修正幅度因子,int為取整運(yùn)算符,to/^&zm;^p為子帶平均采樣可分配比特?cái)?shù),Wi^&m/^^為子帶平均采樣參考比特消耗數(shù),由下式計(jì)算得到to尸enfom;^,=!£^1,其中,sfbb啡)為當(dāng)前子帶參考比特消耗數(shù),b("為當(dāng)前子帶帶寬;72)利用量化階修正幅度因子按預(yù)定原則對(duì)谷帶量化階進(jìn)行修正。8.如權(quán)利要求7所述的量化器碼率失真控制方法,其特征在于,所述步驟72)中谷帶量化階修正的預(yù)定原則為若量化階修正幅度因子^c^CA朋^小于-4,且谷帶量化階選取系數(shù)為放棄當(dāng)前子帶信息,不進(jìn)行編碼;若量化階修正幅度因子/"c^C^wge大于等于-4,小于0,且谷帶量化階選取系數(shù)為l,子帶帶寬大于4,將谷帶量化階增加l/actorC^"gel;若量化階修正幅度因子/"c^C/^ge大于等于0,小于等于1,或者量化階修正幅度因子/"ctorC/^zge小于0且子帶帶寬為4,谷帶量化階不變;若量化階修正幅度因子/"ctorC7^wge大于1,或者/actorOw"ge小于0且子帶帶寬大于4,進(jìn)行窗口搜索,選擇子帶內(nèi)加權(quán)量化誤差最小的谷帶量化階作為當(dāng)前子帶的谷帶量化階。9.如權(quán)利要求8所述的量化器碼率失真控制方法,其特征在于,當(dāng)量化階修正采用窗口搜索方式時(shí),包括如下步驟91)確定窗口范圍以[艦rc緣e;,s匿c雄e/+1,…,s麼c緣e;+,rc研臓]作為量化階搜索的窗口范圍,其中,<formula>formulaseeoriginaldocumentpage4</formula>,式中,^//^為谷帶量化階,x(w)為待編碼的碼流的改進(jìn)離散余弦變換譜,ra〃e_yZ^e為谷帶量化階選取系數(shù),/actorC/2朋ge為量化階修正幅度因子,bw(A:)為子帶k的帶寬;92)計(jì)算子帶內(nèi)加權(quán)量化誤差<formula>formulaseeoriginaldocumentpage4</formula>其中,Error^("為子帶內(nèi)加權(quán)量化誤差,w是譜序號(hào),sfblowW,sfbhigh(。分別為子帶A的上界和下界,(x(vv)為相對(duì)取整誤差,由下式計(jì)算得到<formula>formulaseeoriginaldocumentpage4</formula>其中l(wèi)x(v^x2—)是量化后未取整的譜,saclefactor("為子帶k進(jìn)行窗口搜索時(shí)的候選量化階;rate(w)為加權(quán)系數(shù),由下式計(jì)算得到<formula>formulaseeoriginaldocumentpage4</formula>93)選擇子帶內(nèi)加權(quán)量化誤差最小的谷帶量化階作為當(dāng)前子帶的谷帶量化階。10.如權(quán)利要求9所述的量化器碼率失真控制方法,其特征在于,還包括利用幅度畸變因子對(duì)量化階的再修正處理若/<0.8,saclefactor=saclefactor("+1;若0.8^^1.25,不估嫌正;若>1.25,saclefactor=saclefactor("-1;其中,saclefactor'(/t)為再修正后的量化階,saclefactor(/t)為再修正前的量化階,R為幅度畸變因子,通過(guò)下式計(jì)算得到<formula>formulaseeoriginaldocumentpage5</formula><formula>formulaseeoriginaldocumentpage5</formula><formula>formulaseeoriginaldocumentpage5</formula>其中,sfbkm(",sfbhigh(yt)分別為子帶/t的上界和下界,x(w)為待編碼的碼流的改進(jìn)離散余弦變換譜,w為譜序號(hào),m"g,c為量化跳躍點(diǎn),取值0.4054。全文摘要本發(fā)明公開(kāi)了一種基于先進(jìn)音頻編碼器的量化器碼率失真控制方法,包含如下處理過(guò)程A.由待編碼的碼流獲得子帶可分配比特?cái)?shù)的預(yù)測(cè)值,根據(jù)子帶可分配比特?cái)?shù)的預(yù)測(cè)值計(jì)算子帶平均采樣可分配比特?cái)?shù);B.由上述子帶平均采樣可分配比特?cái)?shù)通過(guò)預(yù)定原則確定谷帶量化階選取系數(shù);由待編碼的碼流的改進(jìn)離散余弦變換譜和谷帶量化階選取系數(shù)計(jì)算得到谷帶量化階;C.以上述谷帶量化階為參數(shù)進(jìn)行碼率失真控制,得到最終參考比特消耗數(shù)。本發(fā)明有效地降低了碼率失真控制的復(fù)雜度,并因此降低了量化編碼時(shí)的運(yùn)算量,從而提高了編碼器的編碼質(zhì)量和效率。文檔編號(hào)H03M7/40GK101308661SQ20071014845公開(kāi)日2008年11月19日申請(qǐng)日期2007年8月21日優(yōu)先權(quán)日2007年5月16日發(fā)明者晟吳,邱小軍,黎家力申請(qǐng)人:中興通訊股份有限公司