陳 俊,王國(guó)裕,龔 敏
(四川大學(xué)物理科學(xué)與技術(shù)學(xué)院微電子技術(shù)四川省重點(diǎn)實(shí)驗(yàn)室,成都 610064)
相較于傳統(tǒng)的模擬廣播,數(shù)字音頻廣播(DAB)具有音質(zhì)好、頻譜利用率高、抗干擾能力強(qiáng)等特點(diǎn),DAB的普及已經(jīng)成為一種趨勢(shì)。DAB標(biāo)準(zhǔn)頒布后,其音頻編解碼方案一直采用MPEG Audio Layer II,出于進(jìn)一步提高數(shù)據(jù)壓縮率、提高頻譜資源利用率的目的,國(guó)際DAB組織在2007年將壓縮比高的MPEG-4 HE-AAC v2引入了DAB音頻標(biāo)準(zhǔn),稱為DAB+。
MPEG-2/4 AAC作為新一代的音頻編解碼標(biāo)準(zhǔn),以其高壓縮比、重建音頻質(zhì)量好等優(yōu)點(diǎn)廣泛應(yīng)用于移動(dòng)通訊、數(shù)字廣播等數(shù)字多媒體領(lǐng)域。作為一種感知音頻編解碼方案,編碼過(guò)程中在頻域產(chǎn)生的瞬時(shí)量化噪聲,在解碼過(guò)程中會(huì)在時(shí)域變換塊內(nèi)均勻擴(kuò)散。當(dāng)一個(gè)變換塊包含瞬變信號(hào)時(shí),量化噪聲在時(shí)域的擴(kuò)散尤為突出,會(huì)超過(guò)人耳聽覺心理聲學(xué)模型中的時(shí)域掩蔽閾區(qū)間[2],造成人耳能夠聽到的噪聲即預(yù)回聲現(xiàn)象,預(yù)回聲是對(duì)音質(zhì)的一種嚴(yán)重傷害。為了避免預(yù)回聲現(xiàn)象,在編解碼過(guò)程中必須充分考慮量化噪聲的時(shí)域特性,盡可能的將其置于語(yǔ)音信號(hào)時(shí)域掩蔽閾區(qū)間之內(nèi)。增加瞬態(tài)信號(hào)編碼位元、自適應(yīng)窗切換、增益控制等技術(shù)被廣泛的應(yīng)用于各種感知音頻編解碼方案中,以消除預(yù)回聲現(xiàn)象[2,3],但這些技術(shù)在編碼效率、音頻重建質(zhì)量等方面都難以達(dá)到最優(yōu)化。而時(shí)域噪聲整形(TNS)技術(shù)只需在標(biāo)準(zhǔn)編解碼器中加入一個(gè)處理模塊,通過(guò)對(duì)頻域數(shù)據(jù)進(jìn)行線性預(yù)測(cè)編解碼,控制量化噪聲在時(shí)域的分布,從而有效地抑制預(yù)回聲現(xiàn)象,編碼效率、音頻重建質(zhì)量都能達(dá)到最優(yōu)化。
TNS作為AAC音頻編解碼方案的一個(gè)重要工具,能夠顯著提高解碼音頻質(zhì)量,特別是一些變化劇烈的語(yǔ)音信號(hào)。針對(duì)DAB接收機(jī)中DSP軟件AAC+解碼器功耗大的問題,文獻(xiàn)[1]給出了低功耗的AAC LC解碼器的ASIC設(shè)計(jì)方案,本文在此基礎(chǔ)上以極低的硬件資源實(shí)現(xiàn)了TNS全硬件解碼。AAC解碼器中TNS的實(shí)現(xiàn)多采用軟硬件協(xié)同的方式[5,6],而本文將討論TNS原理、算法以及解碼端全硬件實(shí)現(xiàn)、驗(yàn)證方案。
TNS是通過(guò)對(duì)頻域參數(shù)進(jìn)行開環(huán)線性預(yù)測(cè)編解碼來(lái)控制量化噪聲的時(shí)域分布,使得量化噪聲能跟隨原始語(yǔ)音信號(hào)的頻譜包絡(luò)變化,并將其置于時(shí)域掩蔽區(qū)間之內(nèi),使人耳感覺不到噪聲的存在,從而消除預(yù)回聲現(xiàn)象。其原理主要基于以下兩種思想:
(1)頻譜包絡(luò)與時(shí)域包絡(luò)的時(shí)/頻對(duì)偶性:頻域變化劇烈的信號(hào),可對(duì)其時(shí)域信號(hào)進(jìn)行預(yù)測(cè)編碼;同理,時(shí)域變化劇烈的信號(hào),可對(duì)其頻譜信號(hào)進(jìn)行預(yù)測(cè)編碼;
(2)利用頻域開環(huán)線性預(yù)測(cè)編碼(LPC)進(jìn)行時(shí)域量化噪聲整形,使解碼端的量化噪聲自適應(yīng)于原始語(yǔ)音信號(hào)[2,3]。下面給出利用預(yù)測(cè)編解碼整形量化噪聲的原理。
圖1給出了TNS利用開環(huán)線性預(yù)測(cè)整形量化噪聲的原理圖,x[k]為編碼端輸入頻譜值,y[k]為解碼端輸出頻譜值,定義重建誤差為r[k],h為線性預(yù)測(cè)參數(shù)。
定義d[k]為頻譜預(yù)測(cè)殘差,q[k]為量化誤差,則:
由(4)式可看出,量化噪聲在Z域被傳輸函數(shù)為H[Z]的反向?yàn)V波器所整形,使其自適應(yīng)于原始輸入信號(hào)包絡(luò)[3],從而將量化噪聲置于語(yǔ)音信號(hào)時(shí)域掩蔽區(qū)間之內(nèi)。
圖1 預(yù)測(cè)編解碼整形量化噪聲原理圖
在編碼端,分析濾波器組之后對(duì)頻譜值進(jìn)行線性預(yù)測(cè)編碼,得到預(yù)測(cè)殘差信號(hào)以及邊界控制信息,如:濾波器級(jí)數(shù)、處理頻譜范圍等。在解碼端,根據(jù)相應(yīng)控制信息對(duì)預(yù)測(cè)殘差進(jìn)行TNS反向(全極點(diǎn))濾波,濾波器類型為IIR,其輸出方程及傳輸函數(shù)如式(5)和式(6)所示。其中,lpc為濾波器系數(shù),k為濾波器級(jí)數(shù),均由編碼端決定。
針對(duì)TNS解碼算法以及AAC LC核心解碼器整體硬件結(jié)構(gòu)的特點(diǎn)[1],為實(shí)現(xiàn)合理利用硬件資源、降低復(fù)雜度、提高解碼效率、保證系統(tǒng)低功耗的目的,在TNS解碼硬件設(shè)計(jì)中主要基于以下方法完成設(shè)計(jì):
(1)為提高硬件利用率,減小電路規(guī)模,設(shè)計(jì)如圖2所示的TNS解碼硬件模塊整體框架。TNS解碼模塊與 HE-AAC v2核心解碼器其他模塊一起共用兩個(gè)大小為4096×18bits的RAM、大小為9405×18bits的ROM以及可綜合的專用DSP模塊DSPC。RAM作為各模塊間數(shù)據(jù)交換的中樞,能有效避免復(fù)雜的連線,RAM0與RAM1分別用于存儲(chǔ)左右聲道頻譜值以及解碼過(guò)程中一些中間參數(shù)。ROM存放解碼過(guò)程中所有需要調(diào)用的表格以及常數(shù)。DSPC是根據(jù)音頻解碼器特點(diǎn)而專門設(shè)計(jì)的一個(gè)可綜合的DSP引擎,采用流水線結(jié)構(gòu),包括輸入緩沖單元、乘法器、加/減運(yùn)算單元以及移位寄存器,總線寬度為24bit,能在一個(gè)時(shí)鐘周期內(nèi)同時(shí)完成乘法、加/減以及移位操作,大大提高了運(yùn)算速度,同時(shí)24bit的數(shù)據(jù)寬度也保障了運(yùn)算精度,功能由存儲(chǔ)的ROM中的運(yùn)算指令所配置,其結(jié)構(gòu)圖如圖3。
圖2 TNS解碼模塊整體框圖
(2)由于在TNS解碼模塊中所有運(yùn)算數(shù)據(jù)均為浮點(diǎn)數(shù),為簡(jiǎn)化系統(tǒng)復(fù)雜度、節(jié)省硬件開銷,同時(shí)保證運(yùn)算精度,在硬件設(shè)計(jì)前用Matlab進(jìn)行了浮點(diǎn)、定點(diǎn)模擬并計(jì)算出采用不同精度的信噪比,設(shè)定點(diǎn)解碼結(jié)果為fix(x),浮點(diǎn)解碼結(jié)果為float(x),系統(tǒng)信噪比SNR計(jì)算如式(7)所示,我們將頻譜值、濾波器參數(shù)等數(shù)據(jù)都轉(zhuǎn)換為寬度為18bit的定點(diǎn)數(shù),其系統(tǒng)信噪比可達(dá)98dB以上,完全滿足要求。
圖3 DSPC結(jié)構(gòu)圖
(3)TNS解碼模塊包含以下三個(gè)部分:TNS碼流解析、濾波器參數(shù)計(jì)算以及TNS反向(全極點(diǎn))濾波器。碼流解析模塊從傳輸碼流Stream_buf中解出TNS解碼相應(yīng)參數(shù),包括:濾波器級(jí)數(shù)、待處理頻段范圍、反射系數(shù)等,并將其存入RAM0/1中。濾波器參數(shù)計(jì)算主要包括量化參數(shù)的反量化以及l(fā)pc參數(shù)的計(jì)算。反量化涉及正弦以及移位除法運(yùn)算,在硬件設(shè)計(jì)中采取查表的方法實(shí)現(xiàn),所有反量化結(jié)果僅占用32個(gè)ROM地址,相關(guān)參數(shù)組合作為ROM地址偏移量。
(4)在lpc參數(shù)計(jì)算過(guò)程中,會(huì)出現(xiàn)絕對(duì)值大于1的溢出情況,解碼結(jié)果會(huì)出現(xiàn)嚴(yán)重的失真。我們近似地將整個(gè)反量化表右移1位,可保證所有計(jì)算過(guò)程不會(huì)出現(xiàn)溢出情況,如圖4所示的實(shí)驗(yàn)結(jié)果表明,這種近似處理與標(biāo)準(zhǔn)算法解碼結(jié)果基本一致,且避免了由于溢出所造成的噪音情況。
(5)在濾波器參數(shù)計(jì)算以及TNS反向?yàn)V波模塊中,主要涉及乘加運(yùn)算,結(jié)合DSPC的特點(diǎn),合理設(shè)計(jì)運(yùn)算指令,計(jì)算所需參數(shù)直接從RAM或ROM中送至DSPC的輸入緩沖模塊。TNS反向?yàn)V波器(見式(5))完成一個(gè)頻譜值的運(yùn)算僅需order+6(order為濾波器級(jí)數(shù))個(gè)時(shí)鐘周期,所有運(yùn)算均采用同址運(yùn)算,DSPC輸出結(jié)果覆蓋原始RAM地址的頻譜值。對(duì)于AAC LC,TNS濾波器級(jí)數(shù)0<o(jì)rder≤12,針對(duì)不同級(jí)數(shù)分別設(shè)計(jì)TNS濾波器顯然是不現(xiàn)實(shí)的,設(shè)計(jì)中我們采用狀態(tài)機(jī)的方式,能夠根據(jù)輸入控制信息,完成所有級(jí)數(shù)的TNS濾波處理。
經(jīng)FPGA綜合,該TNS解碼硬件模塊,僅占用873個(gè)邏輯單元以及少許的存儲(chǔ)單元,系統(tǒng)時(shí)鐘達(dá)到16.384MHz,具有低硬件資源、高解碼效率等特點(diǎn)。選取TNS作用效果明顯的測(cè)試矢量(單聲道、采樣率24k、比特率40kbps),進(jìn)行了硬件仿真結(jié)果與軟件解碼結(jié)果對(duì)比。如圖4所示,該硬件解碼結(jié)果(下)與采用標(biāo)準(zhǔn)算法的軟件解碼結(jié)果(中)差別細(xì)微,主觀音質(zhì)無(wú)差異,相對(duì)于不進(jìn)行TNS解碼處理的解碼結(jié)果(上)量化噪聲的均勻分布,其量化噪聲自適應(yīng)于原始語(yǔ)音信號(hào),都能夠很好地抑制預(yù)回聲現(xiàn)象。
圖4 標(biāo)準(zhǔn)軟件算法與硬件解碼結(jié)果對(duì)比
該TNS解碼模塊作為DAB+基帶芯片信源解碼的一部分,選取TNS作用效果明顯的DAB+節(jié)目作為測(cè)試矢量進(jìn)行FPGA驗(yàn)證與測(cè)試,本文采用用兩套驗(yàn)證測(cè)試方案:
(1)測(cè)試矢量來(lái)自SD卡,經(jīng)MCU送入音頻解碼器,對(duì)音頻解碼模塊進(jìn)行單獨(dú)測(cè)試;
(2)基于DAB接收機(jī)整機(jī)方案,利用實(shí)驗(yàn)室自建的DAB發(fā)射系統(tǒng)發(fā)射DAB+節(jié)目,接收DAB信號(hào)進(jìn)行實(shí)時(shí)解碼。
FPGA驗(yàn)證測(cè)試方案如圖5所示,采用Altera EP3C120 FPGA開發(fā)板以及片外MCU、RF芯片、SD卡等組建驗(yàn)證測(cè)試系統(tǒng),并設(shè)置按鍵作為TNS解碼模塊的開關(guān)信號(hào)。實(shí)驗(yàn)結(jié)果表明,TNS對(duì)于一些變化劇烈的語(yǔ)音信號(hào)音質(zhì)提高發(fā)揮了很大的作用,硬件解碼音質(zhì)令人滿意。
圖5 FPGA驗(yàn)證測(cè)試方案
本文所設(shè)計(jì)的TNS硬件解碼模塊在DAB+基帶芯片信源解碼器中成功實(shí)現(xiàn),充分利用了已有硬件資源,實(shí)現(xiàn)充分共享,在保證了其提高音質(zhì)功能的同時(shí),又從硬件資源、解碼效率等方面實(shí)現(xiàn)了硬件系統(tǒng)的低功耗。較之文獻(xiàn)[5,6]所采用的軟硬件協(xié)同方式實(shí)現(xiàn)TNS解碼,本設(shè)計(jì)不但采用全硬件方式實(shí)現(xiàn),且所占用硬件資源更少;文獻(xiàn)[4]所提出的AAC解碼器純ASIC設(shè)計(jì)將TNS解碼模塊作為HSSP(硬件共享處理器)的一部分,與M/S、IS等四個(gè)模塊實(shí)現(xiàn)充分共享乘法器、加法器等硬件資源,而本文所提出的整體結(jié)構(gòu)與HE-AAC v2所有功能模塊共享存儲(chǔ)單元、DSPC等硬件資源,整體上更具優(yōu)越性,進(jìn)一步提高了硬件資源利用率,由于所有解碼運(yùn)算均共享DSPC,從而大大節(jié)省了乘法、加法器資源。
[1]陸明瑩,張麗麗,王國(guó)裕,等.低功耗、便攜式數(shù)字音頻廣播接收機(jī)中AAC LC解碼器的設(shè)計(jì)優(yōu)化[J].電子信息學(xué)報(bào),2011,33(5):1229-1232.
[2]Ted Painter,Andreas Spanias,etc.Perceptual Coding of Digital Audio[J].Procedings of the IEEE,2000,88(4): 451-515.
[3]Chi-MinLiu,Han-WenHsu,etc.Compression Artifacts in Perceptual Audio Coding[J].IEEE Transactions on Audio,2008,16:681-695.
[4]Tsung-Han Tsai,Chun-Nan Liu.Low-Power System Design for MPEG-2/4 AAC Audio Decoder Using Pure ASIC Approach[J].IEEE Transactions on Circuits and Systems,2009,56(1):144-155.
[5]趙喜林,林濤.AAC音頻解碼器中TNS模塊的設(shè)計(jì)及其ASIC實(shí)現(xiàn)[J].微電子學(xué)與計(jì)算機(jī), 2006.
[6]徐生俊,周玉潔.TNS解碼在AAC解碼SOC系統(tǒng)中的實(shí)現(xiàn)與優(yōu)化[J].信息技術(shù),2005.