朱艷龍
摘 要: 傳統(tǒng)壓縮系統(tǒng)存在壓縮效果差的問題,無法達(dá)到人們的高效壓縮圖像數(shù)據(jù)標(biāo)準(zhǔn),為此,提出多維圖像數(shù)據(jù)的分塊無損壓縮系統(tǒng)設(shè)計(jì)。構(gòu)建壓縮器硬件結(jié)構(gòu)框圖,采用具有層次化模塊設(shè)計(jì)方法,對數(shù)據(jù)緩存元件符號和多維圖像存儲器模型展開分析;針對系統(tǒng)軟件部分設(shè)計(jì),可利用壓縮算法對數(shù)據(jù)進(jìn)行壓縮,并使用解碼器進(jìn)行解碼。根據(jù)具體編碼流程,實(shí)現(xiàn)分塊無損壓縮系統(tǒng)設(shè)計(jì);通過仿真實(shí)驗(yàn),得出結(jié)論。由實(shí)驗(yàn)結(jié)果可知,該系統(tǒng)的設(shè)計(jì)具有良好圖像數(shù)據(jù)壓縮效果。
關(guān)鍵詞: 多維圖像數(shù)據(jù); 分塊無損壓縮; 壓縮器; 層次化模塊; 解碼; 系統(tǒng)設(shè)計(jì)
中圖分類號: TN02?34; TP391.41 文獻(xiàn)標(biāo)識碼: A 文章編號: 1004?373X(2018)17?0067?04
Abstract: The traditional compression system has poor compression effect, and can′t satisfy the standard of high?efficiency compressed image data. Therefore, the design of block lossless compression system for multi?dimensional image data is proposed. The hardware structure of the compressor is constructed. The hierarchical module design method is used to analyze the data cache element symbols and multi?dimensional image memory model. For the design of the system software, the compression algorithm can be used to compress the data, and the decoder is used for data decoding. The design of block lossless compression system is realized according to the specific coding process. The conclusion was obtained with simulation experiment. The experimental results show that the system design has perfect compression effect of image data.
Keywords: multi?dimensional image data; block lossless compression; compressor; hierarchy module; decoding; system design
多維圖像是一種立體圖像,一般可達(dá)到幾百個波段,且每個波段圖像是同一物體在不同波段上的表現(xiàn)形式,并且具有較高的立體分辨率。隨著多維圖像無損壓縮技術(shù)不斷發(fā)展,立體分辨率也得到了提高,因此圖像數(shù)據(jù)量也隨著分辨率的提高不斷增加。正如我國航天局機(jī)載可見光系統(tǒng)一般具有220個通道,其分辨率可達(dá)到15 nm,每個像素可用15 bit表示,數(shù)據(jù)量高達(dá)1.5 Gb/s。圖像數(shù)據(jù)量如此龐大,數(shù)據(jù)存儲便成為了抑制多維圖像數(shù)據(jù)廣泛應(yīng)用的重要因素,因此在多維圖像數(shù)據(jù)信息傳輸前必須進(jìn)行高效壓縮[1]。傳統(tǒng)壓縮系統(tǒng)存在壓縮效果差的問題,無法滿足人們對高效壓縮圖像數(shù)據(jù)標(biāo)準(zhǔn)的需求。
針對上述問題,設(shè)計(jì)了多維圖像數(shù)據(jù)的分塊無損壓縮系統(tǒng)。通過降低壓縮方法的復(fù)雜程度,方便實(shí)現(xiàn)快速、實(shí)時(shí)壓縮;而且傳輸資源有限,因此必須提高編碼效率,以便節(jié)省信道容量以及存儲所占容量,進(jìn)而提高多維圖像數(shù)據(jù)處理效率,對于高光譜圖像數(shù)據(jù)壓縮具有重要意義。通過實(shí)驗(yàn)證明,分塊無損壓縮系統(tǒng)具有良好壓縮性能,為解決FLASH壓縮器壓縮效果差的問題提供有效途徑。
多維圖像數(shù)據(jù)分塊無損壓縮系統(tǒng)硬件結(jié)構(gòu)設(shè)計(jì)如圖1所示。由圖1可知,分塊無損壓縮系統(tǒng)硬件結(jié)構(gòu)設(shè)計(jì)由數(shù)據(jù)采集、單元控制、數(shù)據(jù)存儲以及電源管理等組成。A/D轉(zhuǎn)換器可將模擬輸入信號轉(zhuǎn)換成數(shù)字信號,控制芯片對數(shù)字信號進(jìn)行實(shí)時(shí)分塊無損壓縮。經(jīng)過壓縮后的數(shù)據(jù)需儲存到存儲器中,同時(shí)控制芯片還要對A/D轉(zhuǎn)換器內(nèi)部程序進(jìn)行控制。晶振可為系統(tǒng)設(shè)計(jì)提供壓縮器主頻率,也可為管理芯片提供所需電壓[2]。
本文采用層次化的模塊團(tuán)隊(duì)設(shè)計(jì)方法。在條件比較復(fù)雜情況下,利用該層次化設(shè)計(jì)方法是一種最有效的設(shè)計(jì)方案。在結(jié)構(gòu)設(shè)計(jì)中,通常先依據(jù)設(shè)計(jì)基本需求,將較大設(shè)計(jì)項(xiàng)目方案由上至下進(jìn)行分解,形成若干個較小子模塊,再將子模塊進(jìn)行分解,可形成若干個更小的子模塊,并繼續(xù)分解,直到所有子模塊容易實(shí)現(xiàn)層次化控制為止;然后由底層子模塊執(zhí)行打包程序,底層設(shè)計(jì)可通過打包程序集成模塊電路,提供給上層設(shè)計(jì)隨意調(diào)用,由此完成最終頂層壓縮結(jié)構(gòu)設(shè)計(jì)[3]。本文設(shè)計(jì)的模塊具有個性化、創(chuàng)新性思想。其中最底層利用了VHDL文本設(shè)計(jì)方法,可使圖像壓縮自上而下的每一層設(shè)計(jì)都能滿足用戶需求。而頂層利用了原理圖輸入方法,為開發(fā)者提供了具有創(chuàng)新性的思想。
1.1 輸入數(shù)據(jù)緩存模塊
所有數(shù)據(jù)傳輸與處理都是由控制芯片完成的。為了保證時(shí)鐘與數(shù)據(jù)可同步使用,需設(shè)計(jì)控制芯片的雙口連接功能,利用一個具有雙向接口的芯片對輸入數(shù)據(jù)進(jìn)行傳輸,并由存儲器對數(shù)據(jù)進(jìn)行緩存[4]。A/D轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換后的數(shù)據(jù)為13位,容量大小為1 KB。當(dāng)數(shù)據(jù)讀寫地址一致時(shí),BUSY信號輸出為0,此時(shí)可防止信號溢出,由此可設(shè)計(jì)數(shù)據(jù)緩存元件符號,如圖2所示。
1.2 多維圖像存儲器模塊
1) 多維圖像設(shè)計(jì)
多維圖像數(shù)據(jù)存儲器需要存放圖像的兩個主要因素分別是圖像項(xiàng)編碼和多維數(shù)目。存儲器容量設(shè)計(jì)為1 KB,長度為12位。由于數(shù)據(jù)前綴碼為13位,所有圖像項(xiàng)編碼[5]也為13位。
通常圖像存儲模型可表示為:圖像項(xiàng)編碼?codevalue(index),前綴編碼?precode(index)和當(dāng)前碼?appendcode(index)。
此外,由于存儲器內(nèi)存有限,當(dāng)圖像數(shù)據(jù)存滿時(shí),需對數(shù)據(jù)進(jìn)行初始化處理,此時(shí)耗費(fèi)時(shí)間較長,影響了整體壓縮所耗費(fèi)的時(shí)間。為此,在設(shè)計(jì)時(shí)采用兩個同樣的圖像存儲器進(jìn)行交替工作,可有效提高系統(tǒng)壓縮效率,進(jìn)而縮短壓縮時(shí)間。
2) 多維圖像關(guān)鍵點(diǎn)查找方法
圖像處理中最關(guān)鍵技術(shù)就是對圖像因素的查找。利用哈希表查找技術(shù),首先選擇有利于檢索的關(guān)鍵項(xiàng)編碼,減少沖突,利用硬件邏輯關(guān)系可實(shí)現(xiàn)圖像關(guān)鍵點(diǎn)準(zhǔn)確搜索。構(gòu)建哈希函數(shù),在圖像數(shù)據(jù)存儲位置和關(guān)鍵點(diǎn)之間構(gòu)建明確關(guān)系,促使每個關(guān)鍵點(diǎn)與圖像數(shù)據(jù)中的唯一存儲位置相互對應(yīng)[6]。
1.3 壓縮序列脈沖發(fā)生模塊
壓縮序列脈沖發(fā)生模塊需根據(jù)壓縮算法實(shí)現(xiàn)有限狀態(tài)模塊之間的相互協(xié)調(diào)工作,并進(jìn)行有效壓縮。其是控制模塊核心部分,產(chǎn)生一定序列脈沖信號,可進(jìn)行狀態(tài)壓縮轉(zhuǎn)換,如圖3所示。
2.1 分塊無損壓縮原理
分塊無損壓縮軟件設(shè)計(jì)采用壓縮算法將13位數(shù)據(jù)輸入到存儲器中,進(jìn)行壓縮后可進(jìn)行編碼。為了方便存儲可將并行數(shù)據(jù)轉(zhuǎn)換成8位,并進(jìn)行相應(yīng)解壓[7]。
壓縮解碼原理為:壓縮解碼器首先將多維圖像中前3 021項(xiàng)進(jìn)行初始化處理,并轉(zhuǎn)換為圖像因素表中所有圖像要點(diǎn);然后讀取相應(yīng)數(shù)據(jù)流,其中數(shù)據(jù)流含有具有指向圖像指針,利用指針從圖像中選取具有壓縮要素的關(guān)鍵數(shù)據(jù)輸入到數(shù)據(jù)流中[8]。該部分采用的是同一種編碼器。首先在解碼器中輸入一個方向指針數(shù)據(jù),并取一個數(shù)據(jù)詞條當(dāng)作一個字符串寫進(jìn)解碼器數(shù)據(jù)輸出流之中。將字符串保留在圖像中,雖然字符是未知的,但是可隨時(shí)對下一個圖像中的字符串進(jìn)行讀取,以獲取關(guān)鍵信息。在后續(xù)解碼步驟中,針對解碼器的輸入需取回一個字符串,并把該字符串寫進(jìn)輸出流中,同時(shí)抽取第一個字符,并存儲,然后經(jīng)過解碼器進(jìn)行設(shè)置,開始下一步解碼。
2.2 分塊無損壓縮圖像的解碼
經(jīng)過壓縮后的圖像,需對軟件進(jìn)行解碼,針對傳輸?shù)臒o損壓縮圖像需利用相應(yīng)解碼流程進(jìn)行處理,其中包括圖像解碼、合成與顯示,由于該過程所涉及并不在實(shí)時(shí)范圍之內(nèi),因此可通過軟件進(jìn)行解碼、合成與顯示[9]。
根據(jù)上述混合編碼方法,設(shè)計(jì)具體編碼流程如圖4所示。
多維圖像數(shù)據(jù)分塊無損壓縮的實(shí)現(xiàn)步驟如下:
1) 對搜索到的圖像關(guān)鍵點(diǎn)進(jìn)行整數(shù)小波變換處理,由此獲得小波等長整數(shù)序列數(shù)據(jù)。該方法不會占用太多內(nèi)存,由于變換后的數(shù)據(jù)是具有可逆性的,因此對原始數(shù)據(jù)進(jìn)行輸入可直接被分解成具有尺度系數(shù)數(shù)據(jù)。設(shè)置門限值,將低于門限值的部分設(shè)置為0,并保留小波系數(shù),這樣既保留了信號特征又提高了壓縮效率[10]。
2) 軟件部分實(shí)現(xiàn)需利用改進(jìn)后的壓縮算法,其中數(shù)據(jù)輸入流、編碼流和編碼字符串的合理設(shè)計(jì)具有關(guān)鍵性意義。當(dāng)輸入流流入壓縮數(shù)據(jù)時(shí),輸出編碼可輸出具有索引號的字符表數(shù)據(jù),由此可實(shí)現(xiàn)多維圖像分塊無損數(shù)據(jù)的壓縮。
為了驗(yàn)證多維圖像數(shù)據(jù)的分塊無損壓縮系統(tǒng)設(shè)計(jì)的合理性,采用VC混合編程開發(fā)測試軟件,在已有測試軟件基礎(chǔ)上采用Visual Basic 6.0進(jìn)行修改。
4.1 實(shí)驗(yàn)過程
在壓縮過程中,多維圖像數(shù)據(jù)存入儲存器中進(jìn)行緩存的時(shí)間大約為1 s,隨后數(shù)據(jù)被分塊,大約分成20個大小為4 005×215的子塊,根據(jù)輸入圖像速率要求,以30 MHz寫入,送入每個分塊大小的時(shí)間約為0.038 s,分塊壓縮仿真如圖5所示。
當(dāng)輸入01H后,由壓縮仿真獲得的數(shù)據(jù)地址為00A;當(dāng)這1個地址讀取結(jié)果為100H,那么地址為空,即可表示為字符串無匹配關(guān)系。壓縮器對01H編碼為104H,那么編碼值即為104H。當(dāng)再次處理的字符串為01H時(shí),可通過字符串找到匹配串,進(jìn)而回到輸入字符狀態(tài)。當(dāng)再次輸入01H時(shí),多維圖像存儲數(shù)據(jù)已不存在,那么無需數(shù)據(jù)輸出;如果數(shù)據(jù)依然存在,則需輸入前綴編碼,再用索引號代替字符串輸出,由13位減少為8位,達(dá)到壓縮目的。
4.2 實(shí)驗(yàn)結(jié)果與分析
多維圖像數(shù)據(jù)分塊壓縮的關(guān)鍵在于冗余數(shù)據(jù)數(shù)量,即一個數(shù)據(jù)集中重復(fù)數(shù)據(jù)數(shù)量,查看與運(yùn)行周期是否匹配,根據(jù)不同壓縮效果驗(yàn)證本文設(shè)計(jì)系統(tǒng)的壓縮性能。將傳統(tǒng)壓縮系統(tǒng)與本文壓縮系統(tǒng)的壓縮性能進(jìn)行對比,如表1,表2所示。
由表1,表2可知:當(dāng)文件大小為108 KB時(shí),傳統(tǒng)壓縮系統(tǒng)壓縮后的文件大小為98 KB,而本文設(shè)計(jì)的壓縮系統(tǒng)壓縮后的文件大小為58 KB,兩者之間相差40 KB;當(dāng)文件大小為2 047 KB時(shí),傳統(tǒng)壓縮系統(tǒng)壓縮后的文件大小為1 198 KB,而本文設(shè)計(jì)的壓縮系統(tǒng)壓縮后的文件大小為521 KB,兩者之間相差677 KB。由此可知,本文設(shè)計(jì)的分塊壓縮系統(tǒng)具有良好的壓縮性能。
針對多維圖像做分布式無損壓縮結(jié)果測試,將傳統(tǒng)壓縮系統(tǒng)與本文壓縮系統(tǒng)的波段碼率情況進(jìn)行對比,結(jié)果如圖6所示。
由圖6可知,在均勻信源情況下對比傳統(tǒng)系統(tǒng)與本文系統(tǒng)每個波段的碼率,可以看出,傳統(tǒng)系統(tǒng)碼率要高于本文設(shè)計(jì)的系統(tǒng),主要是因?yàn)樵诙嗑S圖像預(yù)測殘差經(jīng)過分塊壓縮后的二進(jìn)制信息源分布比較均勻,因此,針對實(shí)際多維圖像數(shù)據(jù)的壓縮,采用分塊壓縮系統(tǒng)效果要優(yōu)于傳統(tǒng)壓縮系統(tǒng)。
4.3 實(shí)驗(yàn)結(jié)論
根據(jù)上述實(shí)驗(yàn)內(nèi)容,得出實(shí)驗(yàn)結(jié)論:本文設(shè)計(jì)的分塊壓縮系統(tǒng)具有良好壓縮性能,主要是因?yàn)樵诙嗑S圖像預(yù)測殘差經(jīng)過分塊壓縮后的二進(jìn)制信息源分布比較均勻。因此,針對實(shí)際多維圖像數(shù)據(jù)的壓縮,采用分塊壓縮系統(tǒng)效果要優(yōu)于傳統(tǒng)壓縮系統(tǒng)。
多維圖像數(shù)據(jù)分塊壓縮系統(tǒng)的設(shè)計(jì)是一種實(shí)數(shù)編碼的自適應(yīng)設(shè)計(jì)方法,可適應(yīng)不同數(shù)據(jù)流字符串表的構(gòu)建,實(shí)現(xiàn)多維圖像數(shù)據(jù)的無損壓縮。通過實(shí)驗(yàn)證明,分塊無損壓縮系統(tǒng)具有良好的壓縮性能,為FLASH壓縮器壓縮效果差的問題提供了有效的解決方案。
參考文獻(xiàn)
[1] 黃慶卿,湯寶平,鄧?yán)伲?機(jī)械振動無線傳感網(wǎng)絡(luò)數(shù)據(jù)分塊無損壓縮方法[J].儀器儀表學(xué)報(bào),2015,36(7):1605?1610.
HUANG Qingqing, TANG Baoping, DENG Lei, et al. Data block?based lossless compression for machine vibration wireless sensor networks [J]. Chinese journal of scientific instrument, 2015, 36(7): 1605?1610.
[2] 徐妮妮,張明明,汪劍鳴.純二維5/3小波變換及其在CT圖像無損壓縮中的應(yīng)用[J].電信科學(xué),2016,32(6):73?82.
XU Nini, ZHANG Mingming, WANG Jianming. True 2?D 5/3 wavelet transform and its application for CT image lossless compression [J]. Telecommunications science, 2016, 32(6): 73?82.
[3] 周強(qiáng),胡江濤,王志強(qiáng),等.基于BCS?SPL壓縮感知算法的紙病圖像重構(gòu)[J].中國造紙,2016,35(12):25?30.
ZHOU Qiang, HU Jiangtao, WANG Zhiqiang, et al. Paper disease image reconstruction based on BCS?SPL algorithm [J]. China pulp & paper, 2016, 35(12): 25?30.
[4] 李大偉,劉成,鄭建華,等.適用于探空火箭的圖像采集與壓縮系統(tǒng)[J].國防科技大學(xué)學(xué)報(bào),2017,39(2):71?77.
LI Dawei, LIU Cheng, ZHENG Jianhua, et al. Image capture and compression system for sounding rocket [J]. Journal of National University of Defense Technology, 2017, 39(2): 71?77.
[5] MASMOUDI Atef, PUECH W, MASMOUDI Afif. An improved lossless image compression based arithmetic coding using mixture of non?parametric distributions [J]. Multimedia tools and applications, 2015, 74(23): 10605?10619.
[6] 靖固,楊華宇.基于FPGA+DSP實(shí)時(shí)圖像采集處理系統(tǒng)設(shè)計(jì)[J].哈爾濱理工大學(xué)學(xué)報(bào),2016,21(4):40?44.
JING Gu, YANG Huayu. The real?time image acquisition and processing system design with FPGA and DSP [J]. Journal of Harbin University of Science and Technology, 2016, 21(4): 40?44.
[7] MUTHUKUMARAN N, RAVI R. Hardware implementation of architecture techniques for fast efficient lossless image compression system [J]. Wireless personal communications, 2016, 90(3): 1?25.
[8] 王相海,張智迪,宋傳鳴.四叉樹分塊的高光譜圖像分布式無損編碼[J].中國圖象圖形學(xué)報(bào),2015,20(8):1102?1109.
WANG Xianghai, ZHANG Zhidi, SONG Chuanming. Lossless distributed source coding of hyperspectral images based on quadtree segmentation [J]. Journal of image and graphics, 2015, 20(8): 1102?1109.
[9] TANG Guofei, ZHOU Haifang, TAN Qingping. Design and implementation of space?borne parallel remote sensing image compression system based on multi?core DSP [J]. Journal of computer applications, 2017, 37(5): 1246?1250.
[10] ZHANG Huixin, CAO Aoxiang. A design of real?time image compression system based on FPGA and ADV212 [J]. Chinese journal of electron devices, 2016, 39(2): 483?486.