梁東云
(商洛學(xué)院 電子信息與電氣工程學(xué)院,陜西 商洛 726000)
離散余弦變換(DCT)是一種常用的信號處理變換,具有很強的“能量集中”特性,而且當信號具有接近馬爾科夫過程的統(tǒng)計特性時,DCT的去相關(guān)性接近K-L變換的性能,因此它被廣泛應(yīng)用于視頻信號處理和音頻信號處理等領(lǐng)域[1-3]。常見的H.264視頻編碼就利用了整數(shù)DCT[4-5]。實際應(yīng)用中,相關(guān)算法的實現(xiàn)需要硬件的支撐?,F(xiàn)代電子設(shè)計自動化(EDA)技術(shù)的迅速發(fā)展,使得常見算法可以通過硬件描述語言并利用現(xiàn)場可編程門陣列(FPGA)的邏輯資源實現(xiàn),但代碼編寫、硬件調(diào)試比較復(fù)雜,開發(fā)周期長[6-8]。使用調(diào)試好的知識產(chǎn)權(quán)(IP)核可顯著減小工作量,但許多IP核需要單獨購買[9]。本文利用DSP Builder平臺,在Simulink工作環(huán)境下采用圖形模型構(gòu)建整數(shù)DCT的蝶形運算模型,并對其進行仿真。由于該模型將多個EDA工具聯(lián)合起來,避開了復(fù)雜的代碼設(shè)計,因此降低了開發(fā)難度。
傳統(tǒng)二維DCT及其逆變換如下所示[3]:
在H.264頻頻編碼過程中,采用了4×4整數(shù)DCT,在不損害圖像精度的前提下,減少了數(shù)據(jù)運算量,避免了傳統(tǒng)浮點運算帶來的數(shù)據(jù)失配問題。4×4整數(shù)DCT的基本變換如下所示[5]:
(1)
可等效為
(2)
(3)
可將式(3)的二維變換改造成2個一維變換。先對數(shù)據(jù)塊矩陣每一行做一維整數(shù)DCT,然后再對結(jié)果的每一列進行一維整數(shù)DCT。每一次一維變換可以借助蝶形算法來快速完成,可減少運算量[10]。一維蝶形運算如圖1所示。
圖1 一維整數(shù)DCT蝶形運算Fig.1 One-dimensional integer DCT butterfly operation
圖1中,x(0)~x(3)代表蝶形運算的輸入數(shù)據(jù),X(0)~X(3)代表蝶形運算的輸出結(jié)果。相對于式(3),蝶形運算減少了計算量。然而,利用代碼實現(xiàn)計算仍然比較復(fù)雜。借助DSP Builder平臺,可以構(gòu)建整數(shù)DCT運算的圖形化模型,避免繁雜的代碼編寫。
本文中搭建的一維整數(shù)DCT蝶形運算的DSP Builder模型如圖2所示。圖2中,In0~In3代表輸入數(shù)據(jù),Out0~Out3代表輸出數(shù)據(jù)。將該模型封裝為子系統(tǒng),構(gòu)建每一行(或列)的運算模型,然后將行、列運算模型級聯(lián),形成完整的二維整數(shù)DCT運算結(jié)構(gòu)。該運算結(jié)構(gòu)還不能直接用于測試,外加相應(yīng)的數(shù)據(jù)輸入及數(shù)據(jù)輸出顯示模塊,才能形成頂層測試模型。
圖2 一維整數(shù)DCT蝶形運算的圖形模型Fig.2 Graphical model of one-dimensional integer DCT butterfly operation
含有輸入輸出數(shù)據(jù)的頂層測試模型如圖3所示。
圖3中x00~x33代表原始圖像數(shù)據(jù),Display模塊顯示輸出結(jié)果,Subsystem和Subsystem1為一維整數(shù)DCT蝶形運算封裝后的子系統(tǒng)。令4×4原始圖像矩陣
仿真測試后從Display模塊中顯示變換后圖像矩陣,如下所示:
經(jīng)Simulink平臺仿真后,運行“Signal Complier”可以將模型轉(zhuǎn)換為硬件描述語言,并產(chǎn)生測試向量文件[10]。利用Modelsim平臺對測試向量文件進行仿真,仿真輸出數(shù)據(jù)如圖4所示。
圖5為直接在Matlab平臺中運行代碼的結(jié)果。通過對比可見,3種方法仿真結(jié)果一致,說明本文模型能夠完成二維整數(shù)DCT的快速蝶形運算,并可通過后續(xù)硬件實現(xiàn)。綜合后的硬件電路圖較大,本文中略過。
本文利用DSP Builder和Simulink平臺,對H.264視頻編碼過程中常用的整數(shù)DCT進行了模型構(gòu)建與仿真。本文以4×4整數(shù)DCT的快速蝶形運算為例,實際中可很容易地推廣至8×8、16×16等分塊情況。同時,整體設(shè)計是基于模型的方式,因此減少了代碼編寫的工作量。在實際的綜合電子實訓(xùn)教學(xué)過程中,將數(shù)字信號處理等課程內(nèi)容綜合起來,逐步推廣模型化電路設(shè)計方式,使學(xué)生能夠快速地體會到信號處理相關(guān)理論的硬件模型實現(xiàn)。
圖3 頂層測試模型Fig.3 Top-level test model
圖4 Modelsim仿真結(jié)果Fig.4 Modelsim simulation results
圖5 Matlab仿真結(jié)果Fig.5 Matlab simulation results