專利名稱::一種基于先進音頻編碼器的碼流合成方法
技術領域:
:本發明涉及MPEG-4(運動圖像專家組制定的一種動態圖像標準)的先進音頻編碼(AdvancedAudioCoding,AAC),具體地說涉及一種基于先進音頻編碼器的碼流合成方法。
背景技術:
:音頻編碼技術是諸如數字音頻廣播,互聯網的傳播音樂和音頻通訊等多媒體應用技術的核心,這些應用極大地受益于音頻編碼器壓縮性能的提高。感知音頻編碼器作為有損變換域編碼的一種,是現代的主流音頻編碼器。感知音頻編碼器依賴于人耳的聽覺感知特性研究,對編碼噪聲進行感知整形,以較高的編碼壓縮比獲得較低感知質量下降的編碼效果。在感知音頻編碼算法中,音頻信號的變換域譜經過量化后,需要使用熵編碼器對量化譜進行編碼,以減少信息冗余。作為一種感知音頻編碼器,在MPEG-4AAC中,量化以子帶為單位,子帶中的MDCT(改進的離散余弦變換)譜經量化后得到整數量化譜,整數量化譜以子帶為單位使用霍夫曼碼書進行熵編碼。MPEG-4AAC中霍夫曼碼書包含碼字碼書HW^和碼長碼書HLpA代表碼書序號,取l到ll,代表ll種不同性質的霍夫曼碼書,它們列于表l中。對碼字碼書檢索得到霍夫曼碼字,對碼長碼書檢索得到霍夫曼碼字的長度,即碼長。表1MPEG-4AAC中霍夫曼碼書及其性質<table>tableseeoriginaldocumentpage4</column></row><table>表1中,有符號代表該碼書直接對整數量化譜編碼;無符號代表該碼書僅對整數量化譜的絕對值編碼。"維碼書代表w個整數量化譜對應一個霍夫曼碼字;最大絕對值代表能使用該碼書編碼的子帶中整數量化譜最大絕對值。對熵編碼碼長進行檢索,首先求得子帶中整數量化譜的最大絕對值zmax,依次將子帶中相鄰的四個整數量化譜組成四維矢量[q~,3"]作為索引去查找,累加求得不同碼書熵編碼所需碼長的總數,其中,有符號碼書的索引要加上最大絕對值作為偏移,而無符號碼書的索引則加上l,四維碼書使用["/2G"]作為每一維的索引檢索,二維碼書使用hw分別檢索兩次。傳統的檢索碼書的流程根據Lx判斷如下fmax=l,檢索1,2,3,4,5,6,7,8,9,10,11號碼書/max=2,檢索3,4,5,6,7,8,9,10,11號碼書2<maxD4,檢索5,6,7,8,9,10,11號碼書4<,max□7,檢索7,8,9,10,11號碼書7<fmax012,檢索9,10,11號碼書12<^max□",檢索11號碼書16£、ax,檢索ll號碼書,啟動溢出保護機制其中的溢出保護機制,在^_316時先以16替代大于16的整數譜d乍為索引進行檢索,然后在這個霍夫曼碼字后面,為大于等于16的索引依次添加逃避序列。逃避序列(escapesequence)由以下三部分組成[escape—separator][escape—word]其中[escape—prefix]是w個T,[escape—separator]是一個'0,,[escape—word]是一個w+4比特的無符號整型數,/滿足f=2W+4+[escape—word],增力卩比特數為2int卩og2(,+1)+l]-5。通過檢索碼—長得到第"子帶整數量化譜使用m號碼書的比特消耗參考值,并以碼書號和整數量化譜的子帶號為行列參數,將比特消耗參考值記錄在參考比特消耗矩陣reffiits(/n,w)中。reffiits作為確定每個子帶最終使用的碼書序號的依據。AAC的碼流合成需要額外的比特存儲每個子帶使用的碼書序號,從第一個子帶開始,它用4個比特表示碼書序號,用5個比特表示連續使用該序號碼書的子帶數,如果連續使用該序號碼書的子帶數達到或超過31,那么再增加5個比特用于表示連續子帶數減去31的數值。這樣,通常情況下,只增加9比特用于表示碼書序號的開銷。實際上,因為子帶量化譜最大值不盡相同,且同子帶使用不同碼書,其量化譜熵編碼消耗的比特數差別很大,子帶使用同一個碼書不能在碼流合成時節約比特開銷,確定每個子帶的最優子帶序號,對使用同一個碼書的連續子帶進行合并,是一個復雜的優化過程。傳統的做法有,不考慮優化,為每個子帶選擇比特消耗最小的碼書;固定長度碼書合并,強制另相鄰的三個或多個子帶使用比特消耗最少的同一個碼書等。這些方法消耗的比特數仍較多,影響了熵編碼的效率。
發明內容本發明所要解決的技術問題是提供一種基于先進音頻編碼器的碼流合成方法,能夠更好的優化碼書合并過程,從而提高碼流合成效果,進而提高整個音頻編碼器的性能。為了解決上述技術問題,本發明采用如下技術方案一種基于先進音頻編碼器的碼流合成方法,包含如下步驟A、量化編碼對待編碼的碼流進行量化編碼處理,得到多個編碼子帶;B、碼書合并計算各編碼子帶使用不同碼書時的參考比特消耗值,確定各編碼子帶使用的碼書按編碼順序,對于第一個編碼子帶,選擇各碼書中參考比特消耗值最小的碼書作為使用碼書;對于第一個編碼子帶之后的每一個編碼子帶,若當前編碼子帶的量化譜不全為0,選擇各碼書中使當前編碼子帶與上一編碼子帶的總參考比特消耗值最小的碼書作為使用碼書;C、碼流合成對各編碼子帶,選擇步驟B中確定的使用碼書進行編碼,完成碼流合成處理。所述步驟B中第一個編碼子帶之后的每一個編碼子帶選擇碼書是通過如下原則確定獲取當前編碼子帶使用各碼書的參考比特消耗值,若參考比特消耗值最小的碼書與上一編碼子帶使用的碼書相同,當前編碼子帶使用該碼書,否則,按以下三種方式分別計算當前編碼子帶與上一編碼子帶的總參考比特消耗值并按照使當前編碼子帶與上一編碼子帶的總參考比特消耗值最小的方式選擇使用碼書1)取上一編碼子帶已選碼書作為當前編碼子帶的候選碼書,總參考比特消耗值等于兩個編碼子帶的參考比特消耗值之和;2)在除上一編碼子帶己選碼書外的其他所有碼書中,選擇使得兩個編碼子帶的參考比特消耗值之和最小的碼書作為當前編碼子帶和上一編碼子帶的共同候選碼書,總參考比特消耗值等于兩個編碼子帶的參考比特消耗值之和,如果上一編碼子帶和上上一編碼子帶使用的是同一碼書,總參考比特消耗值等于兩個編碼子帶的參考比特消耗值之和加上碼書切換開銷。3)選擇當前編碼子帶參考比特消耗值最小的碼書作為候選碼書,總參考比特消耗值等于上一編碼子帶和當前編碼子帶的參考比特消耗值之和加上碼書切換開銷。所述步驟B的碼書合并過程中,若一個編碼子帶或多個連續編碼子帶的量化譜全為o,統計該編碼子帶或該多個連續編碼子帶采用前一個不全為0的編碼子帶使用的碼書進行編碼的參考比特消耗值或參考比特消耗值之和,若該參考比特消耗值或參考比特消耗值之和大于碼書切換開銷,所述編碼子帶或多個連續編碼子帶使用0號碼書編碼;否則,使用前一個不全為0的編碼子帶使用的碼書編碼。所述參考比特消耗值預存于二維數組reffiits(附,")中,數組中的每一值表示第n子帶的整數量化譜使用m號碼書的參考比特消耗值,reffiits(m,w)的初始值置為最大65535。若當前編碼子帶的整數量化譜全為0,該子帶對應的碼書參考比特消耗值為reffiits(m,""bw^(n)*C『0(>),其中,bw砂(n)為編碼子帶n的帶寬,C『。(m)為用碼書m編碼0值的整數量化譜所消耗的每譜線比特數。還包括數組預處理,所述數組預處理利用如下公式進行若re仿its(m,"+1)=65535,貝(Jre仿its(m,")=refflits(附,")+C,其中re仿its(w,w)為當前編碼子帶的參考比特消耗值,reffiitS(m,"+l)為下一編碼子帶的參考比特消耗值,C為碼書切換開銷。所述用碼書m編碼0值的整數量化譜所消耗的每譜線比特數CW。(附)=。所述碼書為霍夫曼碼書,包含ll個序號的碼書。所述參考比特消耗值是通過以編碼子帶的整數量化譜為索引檢索所述霍夫曼碼書得到的。本發明通過保證編碼時總參考比特消耗值最小的原則,對每一個編碼子帶,都選擇其與前一編碼子帶的總參考比特消耗值最小時使用的碼書確定各編碼子帶使用的碼書,利用這種一階回溯的方式優化了碼流合成中的碼書合并過程,從而減少了比特開銷,提高了碼流合成的效果,進而提高了先進音頻編碼器的編碼效率。進一步的,在編碼子帶的整數量化譜全為0時,比較編碼子帶采用前一編碼子帶使用的碼書和采用0號碼書兩種情況下的不同總參考比特消耗值,并選擇使總參考比特消耗值更小的碼書作為整數量化譜全為0的編碼子帶編碼時所采用的碼書。更進一步的,對參考比特消耗值數組進行預處理,對后向孤立的數組單元(即后列為65535)加上碼書切換開銷,通過考慮了一階后向的情況,提高了碼書合并的優化效果。圖1是本發明具體實施方式的處理流程圖2是在100幀80kbps立體聲編碼下,現有技術中的各種碼書合并方法與本發明具體實施方式采用的碼書合并方法相對于最小值比特消耗的比特消耗比較效果;圖3是在100幀128kbps立體聲編碼下,現有技術中的各種碼書合并方法與本發明具體實施方式采用的碼書合并方法相對于最小值比特消耗的比特消耗比較效果;圖4是在100幀192kbps立體聲編碼下,現有技術中的各種碼書合并方法與本發明具體實施方式采用的碼書合并方法相對于最小值比特消耗的比特消耗比較效果;圖5是在100幀256kbps立體聲編碼下,現有技術中的各種碼書合并方法與本發明具體實施方式采用的碼書合并方法相對于最小值比特消耗的比特消耗比較效果;圖6是不同比特多種類型音頻編碼下,現有技術中的各種碼書合并方法與本發明具體實施方式采用的碼書合并方法相對于最小值比特消耗的比特消耗比較效果。具體實施例方式下面對照附圖結合具體實施方式對本發明作詳細說明。如圖l,MPEG-4AAC的碼流合成,需要對待編碼的碼流進行量化處理后形成的多個編碼子帶選擇不同的碼書進行編碼,這稱為碼書合并過程。碼書合并是否優化,直接影響到碼流合成的效果,從而影響到整個編碼器的編碼效率。本方法的具體實施方式的處理過程包括一、量化編碼對待編碼的碼流進行量化編碼處理,得到多個編碼子帶;二、碼書合并1、預置二維數組reffiits(m,"),n表示待編碼的碼流量化編碼后得到的整數量化譜的第w個編碼子帶,m表示編碼時各編碼子帶使用的碼書序號;reffiits(m,w)代表第n子帶的整數量化譜使用m號碼書的參考比特消耗值;數組中的各值的初始值置為最大值65535。本實施例中采用霍夫曼碼書,包括ll個序號的碼書。2、計算所有編碼子帶在各碼書中的參考比特消耗值并將其存放于二維數組reffiits(m,w)。3、當某子帶不用編碼時(即該子帶的量化譜全為0),該子帶對應的碼書參考比特消耗值為reffiits(m,"—bwsys(n)*C『。(/n),其中,bw^(n)為當前編碼子帶n的帶寬,C『。(m)為用碼書m編碼O值的整數量化譜所消耗的每譜線比特數,這稱為零子帶跳躍規避原則。4、對數組進行預處理,考慮碼書切換需要增加C比特的開銷。預處理的方去是若re仿its(附,"+1)=65535,貝ljrefflits(m,")=reffiits(附,")+C。即若后面的子帶沒有用到當前子帶的碼書,當前子帶對應的碼書的參考比特消耗值加C。碼書切換開銷C用4個比特表示碼書序號,用5個比特表示連續使用該序號碼書的子帶數。5、通過一階回溯碼書合并方法,選擇比特開銷最小的碼書組合。5.1按編碼順序,對于第一個編碼子帶,在霍夫曼碼書的ll個序號的碼書中選擇參考比特消耗值最小的碼書。5.2對于第一個編碼子帶之后的每一個編碼子帶,分量化譜全為0與不全為0兩種情況;5.3當前子帶k的量化譜不全為0的情況5.3.1若各序號碼書中使得當前子帶參考比特消耗值最小的碼書與上一子帶取的碼書相同,則選擇該序號碼書作為當前子帶使用的碼書。5.3.2否則,計算以下三種候選方式的當前子帶和上一子帶的總參考比特消耗值,選擇其中總參考比特消耗值最小的一種方式5.3.2.1取上一個子帶已經選擇的碼書作為當前子帶的候選碼書(兩個子帶用同一個碼書),總參考比特消耗值等于兩個子帶的參考比特消耗值之和。5.3.2.2當前子帶與上一個子帶取同一個候選碼書,遍歷除了上一個子帶已選的碼書外的所有其他序號的碼書,選擇他們兩個參考比特消耗值之和最小的碼書作為兩個子帶的共同候選碼書(兩個子帶用同一個碼書)。此種情況下,上一子帶使用的候選碼書發生了改變,所以若上一個子帶與上上一個子帶用的是同一個碼書,總參考比特消耗值還要加上碼書切換的開銷C。5.3.2.3在各序號碼書中選擇使當前子帶參考比特消耗值最小的碼書作為候選碼書(兩個子帶用不同碼書),總參考比特消耗值等于上一子帶的參考比特消耗值加上當前子帶的最小參考比特消耗值,再加上碼書切換開銷C。5.4當前子帶k的量化譜全為0的情況5.4.1對于此種情況,現有技術中一般直接采用0號碼書,但這樣的選擇造成碼書切換,從而增加了碼書切換開銷。而本實施例采用前一個子帶(量化譜不全為0)的碼書以避免碼書切換。用前一個子帶的碼書量化O值的整數譜所消耗的比特數作為當前子帶的參考比,消耗值,zeroBits二refBits[Booklndex(H),k],Booklndex(H)表示前一子帶的碼書。5.4.2若隨后子帶k+l的量化譜還是0,還是拿前一個量化譜不全為0的子帶的碼書來量化,用該碼書量化0值的整數譜所消耗的比特數作為當前子帶的參考比特消耗值。同時累加參考比特消耗值,即計算連續多個量化譜為0的編碼子帶的參考比特消耗值之和。zeroBits=zeroBits十refBits[BooklndexU:-1),k+l]。zeroBits是用k-1子帶的碼書來對隨后連續的量化譜全為0的子帶進行編碼的總參考比特消耗值。5.4.3重復5.4.2步直到子帶的量化譜不全為0。5.4.4若zeroBits〉C,用0號碼書對量化譜全為0的子帶進行編碼,C為碼書切換的開銷比特。5.4.5若zeroBits〈=C,用k-1子帶的碼書來對隨后連續的量化譜全為0的子帶進行編碼。5.4.6若子帶k+l的量化譜不全為0,即只是當前子帶k一個編碼子帶的量化譜全為0,則若當前子帶k的參考比特消耗值大于碼書切換開銷,當前子帶k使用0號碼書編碼;否則,使用前一個不全為0的編碼子帶使用的碼f^碼。5.5重復5.3步,直到所有子帶完成熵編碼。三、碼流合成對各編碼子帶,選擇步驟B中確定的使用碼書進行編碼,完成碼流合成處理。下面對上述步驟中的幾個處理步驟作進一步說明。a、計算參考比特消耗值本發明實施例中,使用霍夫曼碼書進行各編碼子帶的參考比特消耗值的計算。AAC中的霍夫曼碼書一共有11個,其規格如表1,另外有0號碼書用來表示量化譜全為0時使用的碼書,所謂0號碼書,實質上是一虛擬碼書,用來指代該子帶不進行編碼。計算量化譜的比特消耗,計算過程為首先求得子帶中整數量化譜的最大絕對值^^,依次將子帶中相鄰的四個整數量化譜組成四維矢量t,z2,3W作為索引去査找,累加求得不同碼書熵編碼所需碼長的總數,其中,有符號碼書的索引要加上最大絕對值作為偏移,而無符號碼書的索引則加上l。檢索方法為cwfe丄e"l=Huf—Lenl[Zl+l]|>2+l][f3+l][M+l]c。&丄朋2=Huf_Len2[fl+l][。+l](>3+l]["+l]coA丄e"5=Huf_Len5(>l+4][z2+4]+Huf—Len503+4][,4+4]co^丄ew6=HufJLen6[fl+4][(2+4]+Huf—Len6[f3+4][M+4]fl=|l|,/2—2|,,3=|。|,叫;4|Zera=M+!!f2+!!/3+!!"cocfe丄eM3二Huf—Len3[fl][f2]iy3][M]+w;g""丄ew(1)co(fe丄ew4=Huf—Len4[,l][f2]I>3]|>4]+*"仏cc^/e丄ew7=Huf_Len7|>l]|>2]+Huf_Len7[。]|>4]+w'gM丄ewcocfeie8=Huf—Len8[fl][f2]+Huf_Len8,|>4]+cwfeZe"9=Huf_Len9(yi][z2]+Huf—Len9(>3][/4]+i7g"Zewc油丄ew10=Huf—Lenl0[fl]|>2]+Huf—Lenl0|>3][,4]+牟Zewcw/e丄e"l1=Huf_Lenll|>l][/2]+Huf_Lenll[3][f4]+w'g"丄e"!!運算符的運算原則是若〃0,!k=l,若,=0,W=0;檢索碼書的流程根據Z,判斷如下:_,max=1,檢索1,2,3,4,5,6,7,8,9,10,11號碼書隨=2,檢索3,4,5,6,7,8,9,10,11號碼書2<,max□4,檢索5,6,7,8,9,10,11號碼書4<Lax□7,檢索7,8,9,10,11號碼書7<、ax口12,檢索9,10,11號碼書12<、ax口15,檢索ll號碼書16£、ax,檢索ll號碼書,啟動溢出保護機制溢出保護機制,U16時先以16替代大于16的整數譜d乍為索引進行檢索,然后在這個霍夫曼碼字后面,為大于等于16的索引依次添加逃避序列。逃避序列(escapesequence)由以下三部分組成[escape_prefix][escape—separator][escape—word]其中[escape—prefix]是iV個T,[escape—separator]是一個'0,,[escape_worZ]是一個A^4比特的無符號整型數,f滿足,=2〃+4+[escape—word],增力口比特數為2int卩og2(/+1)+]-5。檢索碼長得到的第w子帶整數量化譜使用m號碼書的比特消耗參考值,記錄在參考比特消耗矩陣reffiits(m,w)中,沒有計算到的記為65535。當前子帶的參考比特消耗值為sfbbit(w)二sfLen(w)+min(reffiits(7n,")),m=1,2',11(2)b、零子帶跳躍規避為避免在不進行編碼的子帶發生多次碼書序號切換,增加額外開銷,在不需要對當前子帶量化譜編碼時,reffiits相應的那一列的11個碼書的參考比特消耗值為bw砂(k)x,上述值為査找碼表所得,并在參考碼書索弓lbooklndex中記錄booklndex(A:hO,其余子帶的參考碼書索引均為12。如表2中,其中第12、13子帶的對應例為8x,其中,8為第12、13子帶的帶寬值。c.參考比特消耗值的預處理對reffiits做預處理,如果reffiits單元后向孤立(后列是65535),那該單元加上9(短塊編碼為7,長短塊指AAC處理加窗的長短)。以表2為例,第2列的1、2、3、4行,第10列3、4行,第3列5、6、7、8行和第8列5、6、7、8行屬于后向孤立單元。處理后的reffiits見表3,表中經過加黑處理的數值對應的行號為各子帶使用不同序號的碼書進行編碼時參考比特消耗值最少的碼書的對應序號。表2碼書的比特開銷數<table>tableseeoriginaldocumentpage12</column></row><table>d.—階回溯碼書合并預處理后,從第一個子帶開始,碼書索引為最小值的行號(若有相同,取行號大者),艮卩Booklndex(l)二/z,refBits[島7]=min(refBits[lltol,l]),如表3,Booklndex(l)=6。如前述原則,子帶C2應用規則5.3.1,取Booklndex(2)=6,子帶C3應用規則5.3.2.2,取Booklndex(3)二6,子帶C4應用規則5.3.2.2,取Booklndex(4)二10,并把Booklndex(3)修改成10、C5應用規則5.3.1,,Booklndex(5)=10,對于子帶12、13,根據步驟5.4,用0號碼書進行編碼Booklndex(12)=0,Booklndex(13)=0。按照以上步驟確定了各編碼子帶使用的碼書后,對各編碼子帶進行熵編碼,完成碼流合成。本發明基于一階回溯技術,以簡單高效的碼書合并方法求得優化的子帶的碼書序號,從而可以減少熵編碼時的比特開銷,提高了碼流合成的效果,進而提高了整個音頻編碼器的編碼效率。以MegalAAC編碼器作為測試平臺來驗證本發明的有效性,MegalAAC編碼器為應用本發明的碼流合成方法實現的MPEG-4AAC編碼器。測試對8段44100Hz采樣,16比特量化的立體聲剪輯進行,每段剪輯持續11.63秒,剪輯曲目見表3,每次測試結果取8段剪輯的平均值。測試在載有一顆主頻為1.86GHz的IntelE6300處理器的工作站上進行。編碼測^的平均碼率設定為80kbps,128kbps,192kbps,256kbps共4組。分別采用全部選取最小值合并,強制3子帶合并,強制6子帶合并,強制9子帶合并和本實施例的碼書合并分別計算每一幀的熵編碼消耗值,其中提供給碼書合并算法的參考比特消耗值是相同的。表4測試剪輯<table>tableseeoriginaldocumentpage13</column></row><table>圖2,3,4,5分別為剪輯1的前100幀分別在80kbps,128kbps,192kbps,256kbps碼率編碼時,強制3子帶合并,強制6子帶合并,強制9子帶合并和本方法分這四種碼書合并算法相對于最小值合并比特消耗的每一幀之比。圖6是這8個剪輯分別在80kbps,128kbps,192kbps,256kbps碼率編碼時,強制3子帶合并,強制6子帶合并,強制9子帶合并和本實施例這四種碼書合并算法相對于最小值比特消耗之比的平均值。從實驗數據可以得到本實施例相對于各種碼書合并算法提高編碼器的效率達10%到15%,這在中低碼率尤為明顯。權利要求1、一種基于先進音頻編碼器的碼流合成方法,其特征在于,包含如下步驟A、量化編碼對待編碼的碼流進行量化編碼處理,得到多個編碼子帶;B、碼書合并計算各編碼子帶使用不同碼書時的參考比特消耗值,確定各編碼子帶使用的碼書按編碼順序,對于第一個編碼子帶,選擇各碼書中參考比特消耗值最小的碼書作為使用碼書;對于第一個編碼子帶之后的每一個編碼子帶,若當前編碼子帶的量化譜不全為0,選擇各碼書中使當前編碼子帶與上一編碼子帶的總參考比特消耗值最小的碼書作為使用碼書;C、碼流合成對各編碼子帶,選擇步驟B中確定的使用碼書進行編碼,完成碼流合成處理。2、如權利要求1所述的碼流合成方法,其特征在于,所述步驟B中第一個編碼子帶之后的每一個編碼子帶選擇碼書是通過如下原則確定獲取當前編碼子帶使用各碼書的參考比特消耗值,若參考比特消耗值最小的碼書與上一編碼子帶使用的碼書相同,當前編碼子帶使用該碼書,否則,按以下三種方式分別計算當前編碼子帶與上一編碼子帶的總參考比特消耗值并按照使當前編碼子帶與上一編碼子帶的總參考比特消耗值最小的方式選擇使用碼書1)取上一編碼子帶已選碼書作為當前編碼子帶的候選碼書,總參考比特消耗值等于兩個編碼子帶的參考比特消耗值之和;2)在除上一編碼子帶已選碼書外的其他所有碼書中,選擇使得兩個編碼子帶的參考比特消耗值之和最小的碼書作為當前編碼子帶和上一編碼子帶的共同候選碼書,總參考比特消耗值等于兩個編碼子帶的參考比特消耗值之和,如果上一編碼子帶和上上一編碼子帶使用的是同一碼書,總參考比特消耗值等于兩個編碼子帶的參考比特消耗值之和加上碼書切換開銷。3)選擇當前編碼子帶參考比特消耗值最小的碼書作為候選碼書,總參考比特消耗值等于上一編碼子帶和當前編碼子帶的參考比特消耗值之和加上碼書切換開銷。3、如權利要求2所述的碼流合成方法,其特征在于,所述步驟B的碼書合并過程中,若一個編碼子帶或多個連續編碼子帶的量化譜全為O,統計該編碼子帶或該多個連續編碼子帶采用前一個不全為0的編碼子帶使用的碼書進行編碼的參考比特消耗值或參考比特消耗值之和,若該參考比特消耗值或參考比特消耗值之和大于碼書切換開銷,所述編碼子帶或多個連續編碼子帶使用0號碼書編碼;否則,使用前一個不全為0的編碼子帶使用的碼書編碼。4、如權利要求1至3任一所述的碼流合成方法,其特征在于,所述參考比特消耗值預存于二維數組reffiits(m,")中,數組中的每一值表示第n子帶的整數量化譜使用m號碼書的參考比特消耗值,reffiits(m,w)的初始值置為最大65535。5、如權利要求4所述的碼流合成方法,其特征在于,若當前編碼子帶的整數量化譜全為0,該子帶對應的碼書參考比特消耗值為reffiits(m,""bw禍(n"C『。(w),其中,bw砂(n)為編碼子帶n的帶寬,C^(附)為用碼書m編碼0值的整數量化譜所消耗的每譜線比特數。6、如權利要求5所述的碼流合成方法,其特征在于,還包括數組預處理,所述數組預處理利用如下公式進行若1"6仿"<附,"+1)=65535,則reffiits(m,")=reffiits(m,M)+C,其中reffiits(附,w)為當前編碼子帶的參考比特消耗值,reffiits(m,"+l)為下一編碼子帶的參考比特消耗值,C為碼書切換開銷。7、如權利要求6所述的碼流合成方法,其特征在于,所述用碼書m編碼0值的整數量化譜所消耗的每譜線比特數CW。一)=。8、如權利要求1至3任一所述的碼流合成方法,其特征在于,所述碼書為霍夫曼碼書,包含ll個序號的碼書。9、如權利要求8所述的碼流合成方法,其特征在于,所述參考比特消耗值是通過以編碼子帶的整數量化譜為索引檢索所述霍夫曼碼書得到的。全文摘要本發明公開了一種基于先進音頻編碼器的碼流合成方法,包含如下步驟A.量化編碼對待編碼的碼流進行量化編碼處理,得到多個編碼子帶;B.碼書合并計算各編碼子帶使用不同碼書時的參考比特消耗值,確定各編碼子帶使用的碼書按編碼順序,對于第一個編碼子帶,選擇各碼書中參考比特消耗值最小的碼書作為使用碼書;對于第一個編碼子帶之后的每一個編碼子帶,若當前編碼子帶的量化譜不全為0,選擇各碼書中使當前編碼子帶與上一編碼子帶的總參考比特消耗值最小的碼書作為使用碼書;C.碼流合成對各編碼子帶,選擇步驟B中確定的使用碼書進行編碼,完成碼流合成處理。本發明減少了熵編碼的比特開銷,提高了先進音頻編碼器的編碼效率。文檔編號G10L19/00GK101308657SQ20071014845公開日2008年11月19日申請日期2007年8月21日優先權日2007年5月16日發明者晟吳,邱小軍,黎家力申請人:中興通訊股份有限公司