美國空間數據系統咨詢(xún)委員會(huì )(簡(jiǎn)稱(chēng)CCSDS)于2005年推出一套適用于空間領(lǐng)域的圖像壓縮標準,標準使用了離散小波變換為核心算法,推薦使用9/7整數離散小波變換實(shí)現無(wú)損圖像壓縮,由于該算法結構簡(jiǎn)單,易于硬件設計實(shí)現,因此可以用FPGA來(lái)實(shí)現提升小波算法。 1 CCSDS圖像壓縮標準中的小波變換 CCSDS圖像壓縮算法主要包括兩個(gè)功能模塊:前一部分是對遙感圖像數據進(jìn)行離散小波變換,去除圖像數據之間的冗余;后一部分是對去相關(guān)后的圖像數據進(jìn)行位平面壓縮編碼,如圖1所示。 CCSDS標準推薦使用9/7離散小波濾波器對圖像數據進(jìn)行變換,即濾波器的低通系數為9個(gè),濾波器的高通系數為7個(gè)。對于長(cháng)度為2N待變換圖像的原始數據Xk(k=0,1,2,…,2N-1),其整形小波變換公式如式(1)~式(6)所示。 其中,[]為對數據進(jìn)行下取整操作;Cj為低通小波系數輸出;Dj為高通小波系數輸出。為了避免乘法器運算的繁瑣,對公式進(jìn)行了變形,采用加法器和移位操作實(shí)現公式的運算,提高了運算速度。 2 9/7二維離散小波變換的系統設計過(guò)程 本文在Xilinx公司提供的ISE7.1集成設計軟件環(huán)境下,采用VHDL語(yǔ)言設計實(shí)現9/7二維離散小波變換系統,首先進(jìn)行小波行變換,行變換后的數據按照行數輸入內部RAM緩存,然后對行變換后的數據再進(jìn)行列變換,最后將低頻系數dLLl輸入RAM緩存,其余高頻系數dLHl,dHLl,dHHl輸出到外掛RAM中緩存,系統設計流程,如圖2所示。 2.1 行變換過(guò)程 首先,使用7個(gè)移位寄存器來(lái)實(shí)現對數據的讀寫(xiě)傳輸,每到來(lái)一個(gè)時(shí)鐘控制信號(clk),就往移位寄存器中讀寫(xiě)一個(gè)數據,數據在移位寄存器中的傳輸過(guò)程,如圖3所示。 當輸入第5個(gè)數據時(shí),就可以根據式(1)和式(5)分別計算出第一個(gè)高通系數值D0和第一個(gè)低通系數值C0,下一個(gè)時(shí)鐘控制信號讀入第6個(gè)數據時(shí),不進(jìn)行操作,當控制讀入第7個(gè)數據時(shí),根據式(2)和式(6)分別計算出第2個(gè)高通系數值Dj和第2個(gè)低通系數值Cj,小波行變換后的高通系數D和低通系數C采用地址傳輸的方式交叉存儲到6個(gè)內部RAM當中,如圖4所示。 2.2 列變換過(guò)程 由于列變換是針對行變換后的數據進(jìn)行的,即對上面6片RAM中存儲的行變換后的數據進(jìn)行列變換,為了提高運行速度,本文采用基于行的列變換方法,即當小波變換進(jìn)行到第5行時(shí),列變換也同時(shí)進(jìn)行,第5行行變換結束時(shí),也完成了針對第5行數據的列變換,當第6行進(jìn)行小波變換時(shí),不進(jìn)行列變換操作,直到第7行小波行變化數據輸入時(shí),再同時(shí)進(jìn)行列變換計算操作,依次完成小波列變換。對于列小波變換后的低頻數據dLLl,要輸入RAM緩存以進(jìn)行下一級變換,對于其他的高頻數據(dLHl,dHLl,dHHl)可以直接輸出到片外存儲器中。 下面是設計的一級二維小波變換的集成模塊,如圖5所示。 3 仿真與綜合 為了驗證本文設計系統的性能,使用Modlesim6.3仿真軟件對系統進(jìn)行了仿真測試,下面是采用大小為1 024×1 024,圖像數據為8位的測試圖像進(jìn)行測試仿真的部分波形圖。 在Xilinx提供的ISE7.1仿真軟件下搭建測試平臺,對設計系統進(jìn)行綜合,結果如圖9所示。 設計系統時(shí)鐘頻率可達到54 MHz,滿(mǎn)足對圖像數據的實(shí)時(shí)處理要求。 4 結束語(yǔ) 本文主要討論了基于FPGA的快速9/7整形離散小波變換系統設計,該結構采用內部RAM的循環(huán)覆蓋的存儲方式,使對存儲器的需求量減小,從而減小了硬件功耗,同時(shí)采用基于行的列變換方式,提高了的系統運行,可實(shí)現對遙感傳輸圖像的快速實(shí)時(shí)處理。 |