摘 要: 提出一種高效的編解碼實(shí)現(xiàn)方案。在時(shí)頻分析模塊中,利用MDCT 的對(duì)稱(chēng)性和奇偶性,快速得到MDCT 變換輸出值,節(jié)省運(yùn)算時(shí)間和計(jì)算資源提高編碼效率。在量化/熵編碼模塊中,采用非線(xiàn)性量化和Huffman編碼來(lái)壓縮數(shù)據(jù),使量化的循環(huán)迭代次數(shù)減少,在保證量化誤差最小化的前提下,提高編碼速度。
關(guān)鍵詞: 電子防震;時(shí)頻分析;量化編碼;MDCT
電子防震ESP(Electronic Shock Protection)系統(tǒng)在便攜式或者車(chē)載伺服播放器等設(shè)備中應(yīng)用非常廣泛,防止這些設(shè)備由于遭受機(jī)械震動(dòng)的影響而導(dǎo)致音頻數(shù)據(jù)不能正常連續(xù)播放,電子防震時(shí)間是其中最重要的指標(biāo)。電子防震系統(tǒng)的防震時(shí)間由DRAM容量和音頻編碼算法的壓縮率決定,電子防震系統(tǒng)對(duì)音頻編解碼算法有3個(gè)方面的要求:(1)音質(zhì)基本無(wú)損失;(2)壓縮比越高,相同容量的DRAM支持的防震時(shí)間越長(zhǎng),或者相同防震時(shí)間下所需的DRAM更小,成本更低,一般要求達(dá)到4∶1以上的壓縮率;(3)由于在峰值處理階段,ESP系統(tǒng)需要并行完成2次編碼運(yùn)算和1次解碼運(yùn)算,如果采用軟件實(shí)現(xiàn),要求其編解碼算法的運(yùn)算復(fù)雜度較低。
傳統(tǒng)的電子防震系統(tǒng)一般采用自適應(yīng)差分脈沖編碼調(diào)制(ADPCM)進(jìn)行音頻編解碼。但是ADPCM編碼器有2個(gè)顯著的缺點(diǎn):(1)ADPCM編解碼算法采用逐點(diǎn)計(jì)算的結(jié)構(gòu),運(yùn)算量大,只能使用專(zhuān)用集成電路(ASIC)實(shí)現(xiàn),不適合軟件實(shí)時(shí)實(shí)現(xiàn),采用這種方案就需要在系統(tǒng)中添加專(zhuān)用ESP芯片,導(dǎo)致成本增加;(2)ADPCM編碼器的壓縮效率較低,高于4∶1的壓縮率會(huì)導(dǎo)致音質(zhì)明顯惡化。
目前還有一種技術(shù)提出了采用MPEG1音頻編解碼算法作為ESP的編解碼算法,能夠在音質(zhì)基本沒(méi)有損失的條件下提高壓縮比。但由于該方法采用心理聲學(xué)模型并且使用混合型的濾波器組進(jìn)行時(shí)頻分析和逆時(shí)頻分析,運(yùn)算復(fù)雜度高,硬件成本開(kāi)銷(xiāo)大。
為了解決上述問(wèn)題,本文提出了一種新的高效編解碼方法,它具有計(jì)算復(fù)雜度低、編碼速度快和適合軟件實(shí)現(xiàn)的優(yōu)點(diǎn),能夠有效地延長(zhǎng)電子防震時(shí)間。在時(shí)頻分析模塊中,利用改進(jìn)型離散余弦變換MDCT(Modified Discrete Cosine Transform)的對(duì)稱(chēng)性和奇偶性,快速得到MDCT變換輸出值,節(jié)省運(yùn)算時(shí)間和計(jì)算資源,提高編碼效率。在量化/熵編碼模塊中,采用非線(xiàn)性量化和Huffman編碼來(lái)壓縮數(shù)據(jù),使量化的循環(huán)迭代次數(shù)減少,在保證量化誤差最小化的前提下,提高編碼速度。
1 系統(tǒng)及編解碼器架構(gòu)
常用的ESP系統(tǒng)架構(gòu)如圖1所示,包含了ESP編碼器,DRAM緩沖器和ESP解碼器。其工作機(jī)制是,當(dāng)開(kāi)啟ESP系統(tǒng)時(shí),音頻樣點(diǎn)依次通過(guò)ESP編碼器進(jìn)行編碼,編碼后的碼流存儲(chǔ)在DRAM緩沖器中,DRAM緩沖區(qū)中的碼流經(jīng)ESP解碼器解碼輸出,從而實(shí)現(xiàn)一定時(shí)間的電子防震效果。

2 編解碼算法 2 048中選取。 本文所提出的算法能夠在使CD播放器音質(zhì)基本無(wú)損失的情況下,舍棄了心理聲學(xué)模型,用較小的運(yùn)算量,實(shí)現(xiàn)較高的壓縮率從而達(dá)到較長(zhǎng)的防震時(shí)間,提高動(dòng)態(tài)隨機(jī)存儲(chǔ)器的使用效率,延長(zhǎng)防震時(shí)間。同時(shí)算法采用基于塊的運(yùn)算結(jié)構(gòu),適合軟件實(shí)現(xiàn),運(yùn)算復(fù)雜度低,有利于降低系統(tǒng)主頻,從而降低系統(tǒng)功耗并提高系統(tǒng)的穩(wěn)定性。該技術(shù)適合軟件實(shí)現(xiàn),能有效延長(zhǎng)防震時(shí)間。
現(xiàn)行的ESP編碼器一般都采用心理聲學(xué)模型,并且使用混合型的濾波器組進(jìn)行時(shí)頻分析和逆時(shí)頻分析,導(dǎo)致ESP編碼器運(yùn)算效率降低。本文提出的ESP編碼器舍棄了心理聲學(xué)模型,直接采用時(shí)頻分析模塊和量化/熵編碼模塊(或增加封裝模塊)架構(gòu),其結(jié)構(gòu)框圖如圖2所示。音頻樣點(diǎn)輸入時(shí)頻分析模塊后轉(zhuǎn)換為頻率系數(shù),頻率系數(shù)經(jīng)過(guò)量化/熵編碼模塊壓縮成比特流,比特流輸出到DRAM緩沖器。
ESP編碼器架構(gòu)還可以進(jìn)一步擴(kuò)展,增加封裝模塊,其架構(gòu)如圖3所示:
與ESP編碼器結(jié)構(gòu)類(lèi)似,ESP解碼器的結(jié)構(gòu)框圖如圖4所示,從DRAM緩沖器中讀取1個(gè)比特塊長(zhǎng)度的比特流,然后將比特塊長(zhǎng)度的比特流送入熵解碼/反量化模塊的輸入緩沖區(qū),進(jìn)行熵解碼和反量化運(yùn)算后得到重建的頻率系數(shù)送入逆時(shí)頻分析模塊,進(jìn)行逆改進(jìn)型離散余弦變換IMDCT(Inverse Modified Discrete Cosine Transform)變換,重建時(shí)域信號(hào)并輸出播放。
2.1 編碼算法原理
ESP系統(tǒng)中編碼步驟包括:
(1)音頻樣點(diǎn)通過(guò)時(shí)頻分析轉(zhuǎn)換為頻率系數(shù);
(2)頻率系數(shù)經(jīng)過(guò)量化/熵編碼壓縮成比特流。
2.1.1 時(shí)頻分析
時(shí)頻分析模塊采用MDCT變換,該變換是基于時(shí)域混迭消除TDAC(Time-domain Aliasing Cancellation) 技術(shù)的改進(jìn)型DCT,變換以幀為單位,相鄰幀間有一半的樣點(diǎn)重疊,能夠很好地消除分幀引起的時(shí)間域混疊,降低邊界效應(yīng),被廣泛應(yīng)用于數(shù)字音頻編碼系統(tǒng)的分析濾波器組中。因此,快速的MDCT實(shí)現(xiàn)算法是提高實(shí)時(shí)編碼的關(guān)鍵技術(shù)之一。
本文提出的MDCT算法定義如下[1]:

2.1.2 量化/熵編碼
量化編碼模塊采用循環(huán)結(jié)構(gòu),根據(jù)壓縮率的要求,采用非線(xiàn)性量化和Huffman編碼來(lái)壓縮數(shù)據(jù),在保證音質(zhì)的條件下,至少能夠達(dá)到5∶1的壓縮率。具體實(shí)現(xiàn)步驟如下:
(1)時(shí)頻分析模塊輸出的頻率系數(shù)乘以定標(biāo)因子(Scaling Factor);
(2)對(duì)定標(biāo)后的頻率系數(shù)進(jìn)行非線(xiàn)性量化;
(3)將量化后的頻率系數(shù)兩兩組合成頻率系數(shù)對(duì)(每幀共N/4個(gè)頻率系數(shù)對(duì));
(4)選取Huffman碼表,用該碼表對(duì)頻率系數(shù)對(duì)進(jìn)行Huffman編碼,生成比特流;
(5)判斷Huffman編碼產(chǎn)生的比特?cái)?shù)是否超出指定壓縮率的要求,如果超出就縮小定標(biāo)因子,跳轉(zhuǎn)到步驟(1),直至滿(mǎn)足壓縮率的要求退出迭代。
步驟(2)所述量化公式可以為:y=int[x3/4],式中的int[.]函數(shù)表示取整數(shù)部分。步驟(4)所述碼表可以選取為1個(gè)固定的碼表。
2.1.3 封裝
本文提出的ESP編碼器還可以包括封裝模塊。一方面由于音頻信號(hào)本質(zhì)上是非平穩(wěn)的,在一段時(shí)間內(nèi)(10 ms量級(jí))可以看作是短時(shí)平穩(wěn)信號(hào),不同幀經(jīng)量化編碼輸出的比特?cái)?shù)有很大變化,通過(guò)將M幀音頻信號(hào)量化編碼后的比特流封裝在1個(gè)比特塊中,可以降低峰值比特流的影響;另一方面由于比特塊的長(zhǎng)度固定,ESP解碼器很容易確定每個(gè)比特塊的起始位置,無(wú)需費(fèi)時(shí)地進(jìn)行比特塊同步搜索,減小了系統(tǒng)的運(yùn)算開(kāi)銷(xiāo)。
該模塊將量化/熵編碼模塊輸出的M幀比特流依次封裝到1個(gè)固定長(zhǎng)度的比特塊中,然后再輸出到DRAM緩沖器。若M幀比特流的長(zhǎng)度之和小于比特塊的固定長(zhǎng)度,比特塊的剩余部分可以用零填充??紤]到存儲(chǔ)空間、編解碼延遲、比特率平滑要求,M可在2~16間選取。
2.2 解碼器算法原理
ESP系統(tǒng)中解碼步驟包括:
(1)將1個(gè)比特塊長(zhǎng)度的比特流進(jìn)行熵解碼/反量化,得到重建的頻率系數(shù)。
(2)對(duì)頻率系數(shù)進(jìn)行逆時(shí)頻IMDCT分析,得到重建后的時(shí)域信號(hào)并輸出播放。
2.2.1 熵解碼/反量化
同量化/熵編碼過(guò)程相反,熵解碼/反量化模塊的具體實(shí)現(xiàn)步驟如下:
(1)使用與ESP編碼器相同的碼表對(duì)輸入緩沖區(qū)的1個(gè)比特塊的比特流進(jìn)行Huffman解碼,解碼得到M×N/4個(gè)頻率系數(shù)對(duì),其中每個(gè)頻率系數(shù)對(duì)包含2個(gè)頻率系數(shù),共M×N/2個(gè)頻率系數(shù),以及M個(gè)反定標(biāo)因子ISF[m](m=1,…,M),其中每幀1個(gè)反定標(biāo)因子。
(2)對(duì)解碼得到的M×N/2個(gè)頻率系數(shù)進(jìn)行反量化處理,得到線(xiàn)性的頻率系數(shù)。
(3)使用第(1)步解碼得到的反定標(biāo)因子ISF[m](m=1,…,M),對(duì)第(2)步得到的線(xiàn)性頻率系數(shù)進(jìn)行反定標(biāo)(二者相乘),得到反定標(biāo)后的頻率系數(shù)。
(4)將M×N/2個(gè)反定標(biāo)后的頻率系數(shù),依次分為M幀,每幀N/2個(gè)頻率系數(shù),輸出至逆時(shí)頻分析模塊。
參考文獻(xiàn)
[1] CHENG Mu Huo. Fast IMDCT and MDCT algorithms a matrix approach[J]. IEEE Transactions on Signal Processing, 2003,51(1).
[2] BYCOND G L. A new algorithm to compute the discrete cosine transform[J]. IEEE Transactions on Acoustics. Speech,and Signal Processing.1984,32(6):1243-1245.
