閆建新,王 磊
(數(shù)字音頻編解碼技術(shù)國(guó)家工程實(shí)驗(yàn)室,廣東 深圳 518057)
在分層音頻編碼上,國(guó)外已經(jīng)研究了幾種精細(xì)分層的有損數(shù)字音頻編碼方法及無(wú)損音頻編碼,主要包括:1)ISO/IEC 14496-3 MPEG-4 BSAC(Bit Sliced Arithme?tic Coding)比特片算術(shù)編碼[1],在這種編碼算法中,基于對(duì)MDCT(修正離散余弦變換)變換后的變換域系數(shù)(頻譜系數(shù))被量化為整數(shù)后,從低頻到高頻分成多個(gè)組,每個(gè)組譜系數(shù)從高位到低位形成比特片方式進(jìn)行算術(shù)編碼,因此可以實(shí)現(xiàn)非常精細(xì)的分層(或者伸縮)編碼。2)在MPEG-4第三部分和MPEG-2第七部分中都提供了可伸縮采樣率編碼算法AAC-SSR(Advanced Audio Coding-Scalable Sampling Rate),首先是由Sony提出的,編碼架構(gòu)也類(lèi)似于其獨(dú)有的ARTAC(Adaptive Transform Acoustic Coding)編碼。其基本算法是:首先將輸入的數(shù)字音頻信號(hào)通過(guò)4帶的多相正交濾波器組(Polyphase Quadrature Filter,PQF)分割成4個(gè)頻帶,然后這4個(gè)頻帶分別進(jìn)行1個(gè)256點(diǎn)MDCT(512樣點(diǎn)窗長(zhǎng))或8個(gè)32點(diǎn)(64樣點(diǎn)窗長(zhǎng))MDCT。這種技術(shù)的好處在于每個(gè)頻帶內(nèi)可以獨(dú)立選擇長(zhǎng)塊或短塊MDCT,因此對(duì)高頻可使用短塊編碼增強(qiáng)時(shí)間分辨率;而對(duì)低頻使用長(zhǎng)塊編碼獲得高頻率分辨率。3)MPEG-4 SLS(Scalable Lossless Coding)有兩種方式。一種是有損音頻編碼層(如AAC)和無(wú)損誤差增強(qiáng)層,這樣就保證了與原來(lái)有損編碼的后向兼容。另外一種是沒(méi)有有損編碼層,僅僅無(wú)損增強(qiáng)層。在這兩種方式中,無(wú)損增強(qiáng)層能夠?qū)崿F(xiàn)精細(xì)分層,提供低質(zhì)量、高質(zhì)量以及無(wú)損質(zhì)量。
第一種分層編碼算法為了實(shí)現(xiàn)精細(xì)分層,需要考慮限制頻譜分區(qū)長(zhǎng)度等,而導(dǎo)致需要較多額外開(kāi)銷(xiāo)降低了編碼效率;第二種分層編碼算法由于應(yīng)用了4個(gè)PQF,造成帶間存在混迭,因此相鄰部分的變換域系數(shù)編碼效率會(huì)下降;而第三種分層也是一種極其精細(xì)的分層編碼技術(shù),同樣存在需要較多額外開(kāi)銷(xiāo)的問(wèn)題。
中國(guó)數(shù)字音頻(調(diào)頻)廣播(CDR)系統(tǒng)已經(jīng)分別頒布了信道標(biāo)準(zhǔn)[2]和復(fù)用標(biāo)準(zhǔn),其中在信道傳輸技術(shù)規(guī)范中,調(diào)制技術(shù)支持粗分層調(diào)制,且信道編碼支持不等錯(cuò)保護(hù)技術(shù),因此數(shù)字音頻信源編碼技術(shù)最好能夠適配信道傳輸技術(shù),而上述的幾種分層編碼技術(shù)不太合適,同時(shí)已頒布的我國(guó)多聲道數(shù)字音頻編碼技術(shù)規(guī)范DRA[3]也不支持分層方式。為此本文提出了一種新的基于DRA分層編碼方法,簡(jiǎn)稱(chēng)為DRA+L,在使用很小額外開(kāi)銷(xiāo)的條件下提供2層的幀結(jié)構(gòu),同時(shí)保證了與原DRA兼容。
圖1給出了DRA基本幀結(jié)構(gòu)示意圖[3],在幀頭信息中有1 bit指明是否在幀尾存在輔助數(shù)據(jù)部分,其目的就是為以后應(yīng)用需求而進(jìn)行功能及性能增強(qiáng)所保留的擴(kuò)展單元,這樣也確保了增強(qiáng)后的編碼算法仍與原DRA兼容。另外需要注意的是,DRA幀頭信息中的幀長(zhǎng)度信息的計(jì)算并不包含輔助數(shù)據(jù)部分,因此輔助數(shù)據(jù)部分需要獨(dú)立定義自身的長(zhǎng)度,便于解碼器拆分輔助數(shù)據(jù)單元,并且易于快速同步。
輔助數(shù)據(jù)結(jié)構(gòu)示意圖如圖2所示,其中DRA幀頭信息中的幀長(zhǎng)信息是以32比特(4 byte)為單位。輔助數(shù)據(jù)中每個(gè)數(shù)據(jù)塊下面小括號(hào)內(nèi)的數(shù)字表示其占用的長(zhǎng)度,單位為bit。X1,Xn分別為第1個(gè)和第n個(gè)輔助類(lèi)型的數(shù)據(jù)長(zhǎng)度,單位為byte。在輔助數(shù)據(jù)的開(kāi)始是輔助數(shù)據(jù)的長(zhǎng)度指示,當(dāng)輔助數(shù)據(jù)比較短時(shí)(小于256 byte),直接使用8 bit基本長(zhǎng)度信息描述;否則輔助數(shù)據(jù)長(zhǎng)度通過(guò)16 bit擴(kuò)展長(zhǎng)度與前面的8 bit基本長(zhǎng)度共同描述,即在256基礎(chǔ)上累加16 bit無(wú)符號(hào)二進(jìn)制數(shù)所表示的數(shù)值作為整個(gè)輔助數(shù)據(jù)長(zhǎng)度。
每種輔助數(shù)據(jù)的類(lèi)型由三部分組成:第一部分是本類(lèi)型附屬數(shù)據(jù)的長(zhǎng)度,用12 bit描述(以byte為單位);第二部分為本類(lèi)型附屬數(shù)據(jù)的具體類(lèi)型,以4 bit表示,最后一部分是本類(lèi)型輔助數(shù)據(jù)的有效載荷。
圖2 輔助數(shù)據(jù)的結(jié)構(gòu)示意圖
DRA分層編碼就是在國(guó)標(biāo)DRA算法的基礎(chǔ)上通過(guò)分層編碼輔助數(shù)據(jù)的增強(qiáng)擴(kuò)展而實(shí)現(xiàn)的。分層編碼可根據(jù)編碼的聲道數(shù)進(jìn)一步分為單聲道/立體聲的分層和5.1環(huán)繞聲分層,其碼流結(jié)構(gòu)分別如圖3和圖4所示的兩層結(jié)構(gòu)(即基本層和增強(qiáng)層)。
1)單聲道/立體聲分層幀結(jié)構(gòu)
在單聲道/立體聲分層編碼模式時(shí),分層編碼的基本層就是在它所分配的碼率限制下通過(guò)國(guó)標(biāo)DRA編碼單聲道或立體聲;分層編碼的增強(qiáng)層首先是輔助數(shù)據(jù)的總長(zhǎng)度,輔助數(shù)據(jù)內(nèi)部?jī)H包含一種輔助數(shù)據(jù)類(lèi)型,即分層編碼類(lèi)型。分層編碼類(lèi)型包括:12 bit分層編碼類(lèi)型長(zhǎng)度、4 bit分層編碼類(lèi)型指示和分層編碼擴(kuò)展的有效載荷。在有效載荷的開(kāi)始,通2 bit聲道模式“00”用于表示當(dāng)前DRA分層編碼是是單聲道/立體聲分層編碼;有效載荷的其他部分則為單聲道/立體聲殘差的DRA編碼信息。
2)環(huán)繞聲分層編碼幀結(jié)構(gòu)
在5.1環(huán)繞聲分層編碼模式時(shí),分層編碼的基本層就是前置左右聲道對(duì)的DRA編碼;增強(qiáng)層的結(jié)構(gòu)與單聲道/立體聲分層的增強(qiáng)層相似,但有效載荷的開(kāi)始2 bit聲道模式置為“10”,并且有效載荷的其他部分為其余聲道(中央聲道、超重低音及左右環(huán)繞聲道對(duì))的DRA編碼信息。
3)低碼率DRA分層編碼幀結(jié)構(gòu)
當(dāng)在數(shù)字音頻(調(diào)頻)廣播等應(yīng)用中,有時(shí)需要在一個(gè)模擬調(diào)頻節(jié)目?jī)?nèi)傳輸多路數(shù)字立體聲信號(hào)或環(huán)繞聲信號(hào),因此要求DRA可提供更高編碼效率而降低碼率,這時(shí)需要在
DRA算法的基礎(chǔ)上增加一些增強(qiáng)編碼工具,例如帶寬擴(kuò)展及參數(shù)立體聲等,實(shí)現(xiàn)低碼率DRA編碼算法。參照DRA分層編碼結(jié)構(gòu)圖3和圖4,可以通過(guò)簡(jiǎn)單修改給出低碼率DRA分層編碼結(jié)構(gòu)。
(1)單聲道/立體聲低碼率DRA分層
單聲道低碼率DRA分層:基本層包括單聲道低頻部分的DRA編碼、輔助信息長(zhǎng)度信息、帶寬擴(kuò)展類(lèi)型輔助數(shù)據(jù)(包括帶寬擴(kuò)展輔助數(shù)據(jù)的長(zhǎng)度、類(lèi)型及數(shù)據(jù));增強(qiáng)層包括圖3中輔助信息長(zhǎng)度之后的所有部分(其中殘差DRA編碼也是編碼單聲道的低頻部分的殘差信號(hào))。
立體聲低碼率DRA分層:當(dāng)不采用參數(shù)立體聲時(shí),基本層包括立體聲對(duì)低頻部分的DRA編碼、輔助信息長(zhǎng)度信息、帶寬擴(kuò)展類(lèi)型輔助數(shù)據(jù);增強(qiáng)層包括圖3中輔助信息長(zhǎng)度之后的所有部分。當(dāng)采用參數(shù)立體聲時(shí),基本層包括立體聲對(duì)下混為單聲道后的單聲道低頻部分DRA編碼、輔助信息長(zhǎng)度信息、帶寬擴(kuò)展類(lèi)型輔助數(shù)據(jù)(在數(shù)據(jù)內(nèi)部包含參數(shù)立體聲編碼數(shù)據(jù));增強(qiáng)層包括圖3中輔助信息長(zhǎng)度之后的所有部分。
(2)環(huán)繞聲低碼率DRA分層
基本層包括左右立體聲對(duì)低碼率DRA編碼信息(包括左右立體聲對(duì)低頻部分的DRA編碼或者下混后的單聲道低頻部分的DRA編碼、輔助信息長(zhǎng)度和帶寬擴(kuò)展類(lèi)型輔助數(shù)據(jù));增強(qiáng)層為圖4輔助信息長(zhǎng)度之后的所有部分(其中中央聲道C采用低碼率DRA單聲道編碼方法,左右環(huán)繞聲道對(duì)采用低碼率DRA聲道對(duì)編碼方法)。
圖5給出了單聲道/立體聲分層編碼的原理框圖,其中基本層為單聲道或立體聲的DRA編碼(圖中虛線框內(nèi)的兩個(gè)模塊帶寬擴(kuò)展(BWE)編碼和參數(shù)立體聲(PS)編碼是低碼率DRA編碼的增強(qiáng)單元),其中DRA完全符合國(guó)家標(biāo)準(zhǔn)規(guī)范的壓縮算法;增強(qiáng)層則是對(duì)殘差信號(hào)的編碼,用于進(jìn)一步改善解碼信號(hào)的精度。下面主要介紹3個(gè)部分:DRA殘差信號(hào)的計(jì)算、DRA殘差信號(hào)量化和DRA殘差信號(hào)的碼書(shū)編碼。
1)DRA殘差信號(hào)的計(jì)算
GB/T 22726—2008國(guó)標(biāo)中實(shí)現(xiàn)DRA的標(biāo)準(zhǔn)算法簡(jiǎn)單示意圖如圖6所示(為了清晰,特將解碼端也做了簡(jiǎn)單描述,其中解碼端模塊見(jiàn)圖6的虛線框圖)。時(shí)域數(shù)據(jù)x[n]經(jīng)過(guò)MDCT變換到頻域得到譜系數(shù)X[k],將頻域系數(shù)分成多個(gè)子帶,對(duì)其中屬于子帶b的譜系數(shù)除以一個(gè)量化步長(zhǎng) Δb,然后取整(nint)得到量化后的譜系數(shù)X?[k],其中每個(gè)量化步長(zhǎng) Δb和譜系數(shù) X?[k]通過(guò)各種方式傳輸?shù)浇獯a端。在解碼端對(duì)量化后譜系數(shù)X?[k]乘以量化步長(zhǎng)Δb,得到逆量化的譜系數(shù)X?[k],對(duì)其做IMDCT得到解碼后的時(shí)域系數(shù)x?[n]。
DRA分層算法簡(jiǎn)單示意圖如圖7所示的中間模塊。由圖7可以看到,基本層和圖6的編碼端完全一致,也即完全兼容。增強(qiáng)層包括:取整得到的量化后的譜系數(shù)X?[k]在增強(qiáng)層乘以量化步長(zhǎng)Δb恢復(fù)出量化后的譜系數(shù)X?[k],然后用原始譜系數(shù)X[k]減去量化后的譜系數(shù)X?[k],得到殘差譜系數(shù)E[k]。將殘差譜系數(shù)E[k]分成多個(gè)子帶,對(duì)其中屬于子帶e的譜系數(shù)除以一個(gè)殘差譜系數(shù)量化步長(zhǎng) Δe,取整(nint)得到量化后的殘差譜系數(shù)E?[k]。增強(qiáng)層需要傳輸殘差譜系數(shù)量化步長(zhǎng)Δe和量化后的殘差譜系數(shù)E?[k]。在解碼端對(duì)量化后譜系數(shù)X?[k]乘以量化步長(zhǎng)Δb,得到逆量化的譜系數(shù)X?[k];對(duì)量化后殘差譜系數(shù)E?[k]乘以殘差譜系數(shù)量化步長(zhǎng)Δe,得到逆量化的殘差譜系數(shù)E?[k]。最后將基本層得到的逆量化的譜系數(shù)X?[k]和增強(qiáng)層得到的逆量化的殘差譜系數(shù)E?[k]相加,并對(duì)和做IMDCT得到解碼后的時(shí)域系數(shù)x?[n]。
2)殘差信號(hào)的量化
由于殘差信號(hào)的概率分布與原始音頻信號(hào)的概率分布不同,特別是0附近的小信號(hào)概率明顯增大,因此殘差信號(hào)的量化算法是對(duì)DRA量化算法的改進(jìn),主要是重新定義了量化碼書(shū)1和2的都為4維Huffman編碼(其他碼書(shū)相同),分別對(duì)應(yīng)量化頻譜系數(shù)的絕對(duì)值在1和2的情況,并且重新訓(xùn)練并編制了新的Huffman碼書(shū),提高了編碼效率。
殘差信號(hào)的量化步長(zhǎng)采用差分編碼Huffman編碼方式表示(第一個(gè)量化步長(zhǎng)用7 bit絕對(duì)值表示),而DRA標(biāo)準(zhǔn)是量化步長(zhǎng)絕對(duì)值Huffman編碼方式。
3)殘差信號(hào)的碼書(shū)選擇及應(yīng)用范圍
不同于DRA編碼規(guī)范中固定用5 bit表示碼書(shū)段個(gè)數(shù),殘差信號(hào)的碼數(shù)段個(gè)數(shù)對(duì)平穩(wěn)幀仍用5 bit,但對(duì)瞬態(tài)幀僅用4 bit。
碼書(shū)的應(yīng)用范圍劃分進(jìn)一步簡(jiǎn)化,并且從Huffman編碼改為游程編碼。如果是平穩(wěn)幀時(shí),每16個(gè)譜線為1個(gè)編碼子帶,即每16個(gè)譜線用1個(gè)Huffman碼書(shū)。所以1 024個(gè)譜線有64個(gè)編碼子帶。碼書(shū)的應(yīng)用范圍先用5 bit表示最多32個(gè)編碼子帶,如果應(yīng)用范圍大于32個(gè)編碼子帶,則再用5 bit,這時(shí)最多可以表示64個(gè)編碼子帶;如果是瞬態(tài)幀,每8×nBlockNum(nBlockNum取值可參考文獻(xiàn)[3])個(gè)譜線為一個(gè)編碼子帶,即每8×nBlockNum個(gè)譜線用一個(gè)Huffman碼書(shū)。所以128×nBlockNum個(gè)譜線有16個(gè)編碼子帶。碼書(shū)的應(yīng)用范圍先用3 bit表示最多8個(gè)編碼子帶,如果應(yīng)用范圍大于8個(gè)編碼子帶,則再用3 bit,這時(shí)最多可以表示16個(gè)編碼子帶。
對(duì)每個(gè)碼書(shū)段的碼書(shū)索引量化方式由Huffman編碼改為更簡(jiǎn)單的哥倫布編碼。
與立體聲分層編碼算法相比,圖8所示的DRA環(huán)繞聲分層編碼算法比較簡(jiǎn)單。基本層是對(duì)左(L)和右(R)聲道對(duì)進(jìn)行DRA編碼;增強(qiáng)層是對(duì)中央聲道(C)進(jìn)行DRA編碼,對(duì)超重低音(LFE)聲道進(jìn)行DRA編碼,以及對(duì)左環(huán)繞(Ls)和右環(huán)繞(Rs)聲道對(duì)進(jìn)行DRA編碼。聲道在編碼時(shí)可能開(kāi)啟和差立體聲模塊,一般不使用強(qiáng)度立體聲工具。
當(dāng)?shù)痛a率DRA環(huán)繞聲分層編碼時(shí),其中的DRA編碼替換為低碼率DRA編碼即可,其中聲道對(duì)編碼可能開(kāi)啟參數(shù)立體聲編碼模塊,提高低碼率(例如低于128 kbit/s環(huán)繞聲情況)下的編碼效率和主觀聲音質(zhì)量。
DRA環(huán)繞聲分層編碼是在DRA環(huán)繞聲分層編碼算法的基礎(chǔ)上通過(guò)簡(jiǎn)單調(diào)整各聲道編碼數(shù)據(jù)實(shí)現(xiàn)分層的,僅僅引入了很少的額外輔助數(shù)據(jù),占整幀數(shù)據(jù)的比例很小,因此環(huán)繞聲分層編碼的總聲音質(zhì)量和DRA環(huán)繞聲相當(dāng),環(huán)繞聲分層編碼基本層的主觀聲音質(zhì)量與相應(yīng)碼率的DRA立體聲質(zhì)量一樣;而DRA單聲道/立體聲分層編碼采用殘差方式,與原DRA編碼差別較大,下面將重點(diǎn)分析這種情況下的聲音質(zhì)量比較。而低碼率DRA分層編碼的性能可對(duì)照DRA分層編碼結(jié)果,本文不再累述。
由于單聲道/立體聲分層編碼主要通過(guò)殘差方式實(shí)現(xiàn),因此這里主要分層環(huán)繞聲分層編碼的額外開(kāi)銷(xiāo)問(wèn)題,表1給出了48 kHz采樣率下不同典型碼率時(shí)環(huán)繞聲分層編碼額外開(kāi)銷(xiāo)情況。由于DRA幀長(zhǎng)是32比特的倍數(shù),以及基本層和增強(qiáng)層具有同樣的長(zhǎng)度,同時(shí)應(yīng)用中實(shí)際比特率一般應(yīng)低于典型設(shè)置的比特率,因此表1中給出了實(shí)際比特率。
表1 DRA環(huán)繞聲分層編碼額外開(kāi)銷(xiāo)
考慮到DRA分層編碼屬于感覺(jué)音頻編碼技術(shù),因此基于心理聲學(xué)模型的客觀測(cè)試軟件能夠較準(zhǔn)確地衡量這種編碼算法。主要測(cè)試條件及內(nèi)容如下:
1)測(cè)試軟件:本文采用基于ITU-R BS.1387標(biāo)準(zhǔn)[4]的商用客觀測(cè)試軟件CRC-SEAQ。
2)測(cè)試音頻片段:12個(gè)48 kHz和16 bit量化的MPEG立體聲測(cè)試序列。
3)碼率:DRA分層@64 kbit/s基本層+64 kbit/s增強(qiáng)層和DRA分層@64 kbit/s基本層。
4)輸出:客觀差別分ODG(數(shù)值越接近0越好)。
測(cè)試結(jié)果如圖9所示,其中前12列分別對(duì)應(yīng)12個(gè)不同的MPEG測(cè)試序列,最后一列為12個(gè)測(cè)試序列得分的平均值。上面的折線表示DRA分層編碼ODG分?jǐn)?shù),下面的折線為DRA分層編碼中僅僅解碼基本層所獲得的ODG分?jǐn)?shù)。可以看到僅解碼DRA分層編碼的基本層可提供基本的收聽(tīng)質(zhì)量,通過(guò)增強(qiáng)層解碼可提高約1分的平均分,能夠進(jìn)一步明顯提高總的主觀聲音質(zhì)量。
在數(shù)字音頻(調(diào)頻)廣播應(yīng)用中,DRA分層編碼應(yīng)用如圖10所示,通過(guò)DRA粗分層音頻編碼算法將輸入的數(shù)字音頻信號(hào)編碼分為基本層和增強(qiáng)層兩組數(shù)據(jù),通過(guò)非等錯(cuò)信道編碼可對(duì)基本層給予強(qiáng)誤碼保護(hù),對(duì)增強(qiáng)層給予弱保護(hù);或者通過(guò)分層調(diào)制技術(shù)使得基本層和增強(qiáng)層有不同的抗干擾能力;最后通過(guò)發(fā)射機(jī)播出。由于(調(diào)頻)廣播信道一般為無(wú)線信道,除了隨著距離增加信號(hào)自然衰減之外,還受到各種衰落、遮擋、電磁干擾等,在接收端通常無(wú)法完全正確解調(diào)被干擾的信號(hào),可用功信道解碼降低誤碼率。如圖中用戶(hù)1的情況,接收環(huán)境比較差,只能正確解碼基本層,如果廣播的是環(huán)繞聲節(jié)目,則用戶(hù)1可收聽(tīng)高質(zhì)量的立體聲部分;如果廣播的是立體聲節(jié)目,用戶(hù)1將接收到基本質(zhì)量的立體聲信號(hào)。用戶(hù)2有良好的接收環(huán)境,可完全解碼基本層和增強(qiáng)層,這樣用戶(hù)2可收聽(tīng)高質(zhì)量環(huán)繞聲廣播或者高質(zhì)量立體聲廣播。
本文提出的DRA分層編碼是基于DRA技術(shù)而開(kāi)發(fā)的一種新的編碼算法,主要特點(diǎn)是DRA分層編碼提供了一種新的粗分層碼流結(jié)構(gòu),并且由于DRA環(huán)繞聲分層編碼僅僅是通過(guò)引入小于1%的額外開(kāi)銷(xiāo)控制多聲道編碼數(shù)據(jù)重新組織而實(shí)現(xiàn)了分層,保證了環(huán)繞聲分層編碼質(zhì)量基本無(wú)下降;DRA單聲道/立體聲分層采用殘差再編碼的技術(shù)實(shí)現(xiàn)的分層,客觀測(cè)試表明DRA單聲道/立體聲分層編碼可在基本層的ODG分?jǐn)?shù)上通過(guò)增強(qiáng)層進(jìn)一步明顯改善大約1分。由于DRA分層編碼是通過(guò)DRA編碼算法中輔助數(shù)據(jù)的擴(kuò)展來(lái)實(shí)現(xiàn),因此DRA分層編碼與DRA編碼兼容,DRA編碼可完全解析基本層數(shù)據(jù)。DRA分層編碼特別適用于數(shù)字音頻廣播,可與非等錯(cuò)信道編碼和分層調(diào)制技術(shù)完美結(jié)合,提供最佳的收聽(tīng)效果。
:
[1]ISO/IEC 14496-3,Information technology-coding of audio-visual objects-part 3:audio[S].2004.
[2]GY/T 268.1,調(diào)頻頻段數(shù)字音頻廣播第1部分:數(shù)字廣播信道幀結(jié)構(gòu)、信道編碼和調(diào)制[S].2013.
[3]GB/T 22726—2008,多聲道數(shù)字音頻編解碼技術(shù)規(guī)范[S].2008.
[4]ITU-R BS.1387-1,Method for objective measurements of perceived audio quality[S].2012.