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

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

2.1.2 量化/熵編碼
量化編碼模塊采用循環(huán)結構,根據壓縮率的要求,采用非線性量化和Huffman編碼來壓縮數據,在保證音質的條件下,至少能夠達到5∶1的壓縮率。具體實現步驟如下:
(1)時頻分析模塊輸出的頻率系數乘以定標因子(Scaling Factor);
(2)對定標后的頻率系數進行非線性量化;
(3)將量化后的頻率系數兩兩組合成頻率系數對(每幀共N/4個頻率系數對);
(4)選取Huffman碼表,用該碼表對頻率系數對進行Huffman編碼,生成比特流;
(5)判斷Huffman編碼產生的比特數是否超出指定壓縮率的要求,如果超出就縮小定標因子,跳轉到步驟(1),直至滿足壓縮率的要求退出迭代。
步驟(2)所述量化公式可以為:y=int[x3/4],式中的int[.]函數表示取整數部分。步驟(4)所述碼表可以選取為1個固定的碼表。
2.1.3 封裝
本文提出的ESP編碼器還可以包括封裝模塊。一方面由于音頻信號本質上是非平穩(wěn)的,在一段時間內(10 ms量級)可以看作是短時平穩(wěn)信號,不同幀經量化編碼輸出的比特數有很大變化,通過將M幀音頻信號量化編碼后的比特流封裝在1個比特塊中,可以降低峰值比特流的影響;另一方面由于比特塊的長度固定,ESP解碼器很容易確定每個比特塊的起始位置,無需費時地進行比特塊同步搜索,減小了系統(tǒng)的運算開銷。
該模塊將量化/熵編碼模塊輸出的M幀比特流依次封裝到1個固定長度的比特塊中,然后再輸出到DRAM緩沖器。若M幀比特流的長度之和小于比特塊的固定長度,比特塊的剩余部分可以用零填充。考慮到存儲空間、編解碼延遲、比特率平滑要求,M可在2~16間選取。
2.2 解碼器算法原理
ESP系統(tǒng)中解碼步驟包括:
(1)將1個比特塊長度的比特流進行熵解碼/反量化,得到重建的頻率系數。
(2)對頻率系數進行逆時頻IMDCT分析,得到重建后的時域信號并輸出播放。
2.2.1 熵解碼/反量化
同量化/熵編碼過程相反,熵解碼/反量化模塊的具體實現步驟如下:
(1)使用與ESP編碼器相同的碼表對輸入緩沖區(qū)的1個比特塊的比特流進行Huffman解碼,解碼得到M×N/4個頻率系數對,其中每個頻率系數對包含2個頻率系數,共M×N/2個頻率系數,以及M個反定標因子ISF[m](m=1,…,M),其中每幀1個反定標因子。
(2)對解碼得到的M×N/2個頻率系數進行反量化處理,得到線性的頻率系數。
(3)使用第(1)步解碼得到的反定標因子ISF[m](m=1,…,M),對第(2)步得到的線性頻率系數進行反定標(二者相乘),得到反定標后的頻率系數。
(4)將M×N/2個反定標后的頻率系數,依次分為M幀,每幀N/2個頻率系數,輸出至逆時頻分析模塊。
參考文獻
[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.
