基于DSP Builder的JPEG靜態(tài)圖像壓縮算法的實(shí)現(xiàn)
摘 要: 利用Altera公司提供的數(shù)字信號(hào)處理開(kāi)發(fā)工具DSP Builder和現(xiàn)代DSP技術(shù),在Matlab/Simulink環(huán)境中建立了JPEG算法模型,并進(jìn)行了仿真驗(yàn)證,最后將編譯代碼下載到硬件上進(jìn)行了在線調(diào)試。
關(guān)鍵詞: DSP Builder;JPEG;圖像壓縮;FPGA
隨著數(shù)字信號(hào)處理技術(shù)在應(yīng)用領(lǐng)域的迅速發(fā)展,以DSP處理器(如TI的TMS320系列)為應(yīng)用系統(tǒng)核心器件的傳統(tǒng)DSP技術(shù),由于其硬件結(jié)構(gòu)的不可變性和固定的數(shù)據(jù)總線寬度,很難滿足用戶對(duì)DSP系統(tǒng)可重配置性或可定制性的要求。而以大容量、高速度的FPGA為核心器件的現(xiàn)代DSP技術(shù)的出現(xiàn)成功解決了以上問(wèn)題。FPGA內(nèi)嵌有可配置的高速RAM、PLL以及硬件乘法累加器等DSP模塊。因此,用FPGA實(shí)現(xiàn)數(shù)字信號(hào)處理可以很好地解決并行性和速度問(wèn)題,而且其靈活的可配置特性,使得以FPGA為核心器件的DSP系統(tǒng)易于修改、測(cè)試及硬件升級(jí)。
本文利用Altera公司推出的一個(gè)面向DSP開(kāi)發(fā)的系統(tǒng)級(jí)設(shè)計(jì)工具DSP Builder,在深入研究JPEG算法原理的基礎(chǔ)上,設(shè)計(jì)了JPEG算法模型,并在Matalab/Simulink環(huán)境下進(jìn)行了算法級(jí)仿真;最后將算法編譯下載到FPGA硬件上,利用DSP Builder的HIL(Hardware In Loop)功能,由Simulink通過(guò)下載電纜向硬件輸入測(cè)試數(shù)據(jù),然后將測(cè)試結(jié)果送入Simulink中顯示。采用這種方法實(shí)現(xiàn)了硬件級(jí)的仿真驗(yàn)證。
1 DSP Builder介紹
DSP Builder開(kāi)發(fā)工具是Altera公司提供的數(shù)字信號(hào)處理平臺(tái),它是一個(gè)系統(tǒng)級(jí)(或算法級(jí))設(shè)計(jì)工具,架構(gòu)在多個(gè)軟件工具之上,并把系統(tǒng)級(jí)和RTL級(jí)兩個(gè)設(shè)計(jì)領(lǐng)域的設(shè)計(jì)工具連接起來(lái),最大程度地發(fā)揮了兩種工具的優(yōu)勢(shì)。DSP Builder依賴(lài)于MathWorks公司的數(shù)學(xué)分析工具M(jìn)atlab/Simulink,以Simulink的Blockset出現(xiàn),可以在Simulink中進(jìn)行圖形化設(shè)計(jì)和仿真,同時(shí)通過(guò)SignalCompiler把Matlab/Simulink的設(shè)計(jì)文件(.mdl)轉(zhuǎn)成相應(yīng)的硬件描述語(yǔ)言VHDL設(shè)計(jì)文件(.vhd),以及用于控制綜合與編譯的TCL腳本。而對(duì)后者的處理可以由FPGA/CPLD開(kāi)發(fā)工具Quartus II來(lái)完成。
設(shè)計(jì)人員能夠同時(shí)進(jìn)行多個(gè)HDL模型或者QuartusII軟件設(shè)計(jì)工程的設(shè)計(jì),為每一個(gè)模塊生成一個(gè)獨(dú)立的仿真模型,并且能夠在同一設(shè)計(jì)環(huán)境中,以標(biāo)準(zhǔn)Simulink/DSP Builder模型來(lái)仿真HDL模塊。此外,該工具可充分利用和重復(fù)使用現(xiàn)有設(shè)計(jì),從而大大提高產(chǎn)品開(kāi)發(fā)速度。在仿真軟件方面,除了可以利用Simulink的仿真環(huán)境,DSP Builder還提供了與Modelsim的接口,充分利用Modelsim仿真的優(yōu)勢(shì)。以前DSP開(kāi)發(fā)者只能直接使用VHDL或VerilogHDL語(yǔ)言進(jìn)行FPGA的DSP系統(tǒng)設(shè)計(jì),難度比較大?,F(xiàn)在利用基于FPGA的DSP開(kāi)發(fā)工具DSP Builder以及完整的軟件開(kāi)發(fā)平臺(tái),可以使設(shè)計(jì)者遵循一條類(lèi)似于軟件設(shè)計(jì)流程的開(kāi)發(fā)方法進(jìn)行FPGA的DSP設(shè)計(jì),設(shè)計(jì)效率大為提高?;贒SP Builder的系統(tǒng)級(jí)開(kāi)發(fā)流程如圖1所示。
2 JPEG算法原理
JPEG專(zhuān)家組開(kāi)發(fā)了兩種基本的壓縮算法,一種是以離散余弦變換DCT(Discrete Cosine Transform)為基礎(chǔ)的有損壓縮算法;另一種是以預(yù)測(cè)技術(shù)為基礎(chǔ)的無(wú)損壓縮算法。使用有損壓縮算法時(shí),在壓縮比為25:1的情況下,壓縮后還原得到的圖像與原始圖像相比較,非圖像專(zhuān)家難于找出它們之間的區(qū)別,因此得到了廣泛的應(yīng)用。例如,在VCD和DVD-Video電視圖像壓縮技術(shù) 中,就使用JPEG的有損壓縮算法來(lái)取消空間方向上的冗余數(shù)據(jù)。
JPEG壓縮是有損壓縮,它利用了人眼視角系統(tǒng)的特性,使用量化和無(wú)損壓縮編碼相結(jié)合來(lái)去掉視角的冗余信息和數(shù)據(jù)本身的冗余信息。JPEG算法框圖如圖2所示。