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