李 進,金龍旭,韓雙麗,郝賢鵬,呂曾明,陶宏江
(1.中國科學(xué)院長春光學(xué)精密機械與物理研究所,吉林 長春 130033;2.中國科學(xué)院研究生院,北京 100039)
責任編輯:魏雨博
隨著空間TDICCD相機空間分辨率和覆蓋寬度指標不斷提高,導(dǎo)致CCD相機圖像數(shù)據(jù)量呈指數(shù)增加,現(xiàn)有機載存儲器容量有限,數(shù)傳系統(tǒng)帶寬受限,無法適應(yīng)空間CCD圖像的海量數(shù)據(jù)[1-4]。因此,必須要對CCD圖像進行壓縮。JPEG2000是目前圖像壓縮性能最好的壓縮方法,是各種圖像壓縮應(yīng)用場合的首選方案[5-6]。然而,由于JPEG2000整體算法計算復(fù)雜、占用大量內(nèi)存,難于硬件實現(xiàn),不適于空間CCD相機的應(yīng)用。為了使JPEG2000應(yīng)用于空間CCD相機中,需要對其各部分進行改進。
JPEG2000中占用資源和耗時最大的是最優(yōu)截斷嵌入式塊編碼(EBCOT)單元,這是由于EBCOT內(nèi)在是比特級的處理算法,它不同于小波變換單元(字節(jié)級的處理方案),因此計算十分復(fù)雜,花費了JPEG2000編碼系統(tǒng)的主要時間。EBCOT的Tier-1算法可分為兩部分:比特平面編碼器(BPC)和二進制算術(shù)編碼器(BAC)。BPC是EBCOT最核心的技術(shù),國內(nèi)外學(xué)者對其進行了大量的研究以減少塊編碼的時間。文獻[7-8]主要集中減少塊編碼所要求的狀態(tài)變量數(shù)目和設(shè)計高效的掃描機制,但是這些方法效率仍然很低,占用大量的存儲資源,難以滿足空間相機的應(yīng)用。
本文在參考國內(nèi)外相關(guān)技術(shù)的基礎(chǔ)上,根據(jù)項目背景需求,結(jié)合TDICCD圖像特點,提出一種適于空間TDICCD相機圖像壓縮的新的BPC結(jié)構(gòu)。
BPC是EBCOT中Tier-1的第一步,它將存儲在碼塊(CB)存儲器中量化后的小波系數(shù)進行BPC編碼后,生成上下文信息(CX)和比特位的值(D)。每個數(shù)字的比特被分割,具有相同二進制權(quán)重的比特被獨立存儲在1個緩沖中形成1個比特平面。在比特平面內(nèi)每4行形成1個Strip。在1個比特平面中,掃描順序是從頂端到底端逐Strip進行的。在每個Strip中數(shù)據(jù)掃描是按照從頂端到底端逐比特,從左到右逐列進行的。
BPC有3種主要的編碼通道:重要傳播通道SPP,幅值細化通道MRP和清除通道CUP。這些通道被應(yīng)用于1個CB的每個比特平面中,除了最重要比特(MSB)平面,都使用CUP。這是由于初始條件MSB平面所有比特在SPP和MRP中將不會被編碼,其他比特平面使用SPP,MRP和CUP按順序?qū)痪幋a。
每個Strip在垂直掃描模式中被作為一個獨立的實體。在這種模式的Strip周圍被“0”填補,如圖1所示。
圖1 Strip周圍填補“0”
BPC處理是從第0行0列開始,然后移到第1行,依次進行,在處理完第3行后,下一個處理的元素是右邊下一列的第0行,按照此規(guī)律依次進行,直到Strip末端。這種運算原理表明這是一種滑動窗口結(jié)構(gòu)。按照窗口的滑動,鄰近的位置將會被改變。圖2中的前6個數(shù)據(jù)元素的鄰近窗口如表1所示。傳統(tǒng)鑒定一幀鄰近關(guān)系按照圖2所示的方法進行。為了便于分析,將表1內(nèi)容按照表2重新組織。
圖2 掃描的元素和它的鄰近元素
表1 圖2中的前6個數(shù)據(jù)元素的鄰近窗口
表2 幀交織中的鄰近元素以及在SIPO中的位置
比較表1和表2中Strip數(shù)據(jù)行,可以觀察到標號為1~9的元素表示圖2中的Strip第1幀,4~12的元素形成第2幀,7~15的元素形成第3幀,依次類推,10~18形成最后一幀。表2中開始和結(jié)尾的3個元素被標為“0”,這是由于它們始終為0。因此,它們并不需要硬件實現(xiàn),這也為使用4個3串行比特實現(xiàn)數(shù)據(jù)路徑提供了可能性(詳見文中第2節(jié))。
提出的BPC結(jié)構(gòu)如圖3所示。DWT引擎產(chǎn)生13 bit,它被組織和存儲在CB存儲器中,提出的結(jié)構(gòu)CB大小為32×32×14。在CB寫操作的同時符合比特信息被分離并存儲到符合平面中,狀態(tài)變量(δ,δ′和η)存儲到狀態(tài)變量平面中。在數(shù)據(jù)通道1和2中生成處理任何幅值比特的鄰近窗口。在執(zhí)行條件被生成的基礎(chǔ)上,BPC控制器決定哪個通道被執(zhí)行,選擇一個特殊的編碼原始元素,并存儲在上下文緩存中的上下文數(shù)據(jù)。
圖3 BPC結(jié)構(gòu)
圖3中2個不同的數(shù)據(jù)路徑是用來從選擇的Strip中讀取數(shù)據(jù)。由于符合和幅值比特沒有變化,因此這些平面并沒有被更新,而基于特定條件狀態(tài)變量更新和新的值必須被存儲以便將來被處理。因此,數(shù)據(jù)通道2和數(shù)據(jù)通道1略不相同。由1.2節(jié)知在4個3 bit SIPO、模5行計算器及9個4∶1多路復(fù)合器下當前鄰近窗口可被得到,如圖4所示為本文提出的數(shù)據(jù)通道2的VLSI結(jié)構(gòu)。
圖4 數(shù)據(jù)路徑結(jié)構(gòu)
BPC一次處理1個幅值比特,為了減少存儲器訪問,數(shù)據(jù)讀寫對于每列執(zhí)行1次。為了處理第i列,第i+1列被讀并存儲在標記為M,Q,T和W的SIPO元素中。第i列和第i-1列數(shù)據(jù)將分別在SIPO的L,P,S,V和K,N,R,U元素中。這種方法4個SIPO容納相應(yīng)3列的12個數(shù)據(jù)比特。這些比特輸入到9個4∶1多路復(fù)合器中,多路復(fù)合器一次輸出9 bit形成當前的鄰近窗口。一個模5計數(shù)器用來選擇一個特定的以便準備進行處理的行,同時用來控制多路復(fù)合器鏈的選擇行。該計數(shù)器的前4個狀態(tài)對應(yīng)一列中的行,而第5個狀態(tài)用來預(yù)獲取下一個列和存儲更新的變量。
為了驗證本文提出的BPC結(jié)構(gòu)可行性,提出的結(jié)構(gòu)在ISE8.2使用Verilgo HDL實現(xiàn),硬件電路FPGA器件選用XC2V1000-BG575,壓縮算法其他模塊采用傳統(tǒng)JPEG2000算法。整個算法編寫調(diào)試過程使用Modelsim XE 6.3仿真軟件進行輔助設(shè)計。同時為了驗證本文提出的BPC結(jié)構(gòu)是否可行使用自主研發(fā)的圖像模擬源設(shè)備,圖像模擬源發(fā)送測試圖像,壓縮系統(tǒng)對圖像進行壓縮,并將壓縮碼率傳輸?shù)浇鈮嚎s系統(tǒng)中,重構(gòu)的圖像經(jīng)Camer-Link傳輸?shù)接嬎銠C上進行分析,圖5為原始圖像和重構(gòu)圖像。
由圖5可知本文設(shè)計的BPC能夠正常工作。
表3為本文設(shè)計的BPC結(jié)構(gòu)性能參數(shù)結(jié)果。
圖5 測試圖像壓縮結(jié)果(截圖)
表3 BPC實現(xiàn)結(jié)果
由表3知,本文提出的BPE工作頻率達到75 MHz,滿足設(shè)計指標要求。
為了測試設(shè)計壓縮系統(tǒng)性能,地面檢測系統(tǒng)向壓縮系統(tǒng)發(fā)送各種測試圖像進行實驗,并與傳統(tǒng)方法進行比較,平均PSNR實驗結(jié)果如表4所示(壓縮比為8∶1)。
表4 PSNR實驗結(jié)果 dB
由表4知,本文壓縮系統(tǒng)平均PSNR達到40 dB,比傳統(tǒng)方法提高了0.91 dB。
針對目前JPEG2000中最優(yōu)截斷嵌入式塊編碼器硬件實現(xiàn)效率低且占用大量資源問題,本文提出一種適于空間TDICCD相機圖像壓縮的JPEG2000比特平面編碼器(BPC)。本文提出的BPC結(jié)構(gòu)思想是基于數(shù)據(jù)路徑詳細分析來獲得上下文窗口的。另外,使用自主研發(fā)的地面檢測設(shè)備對采用本文提出的BPC結(jié)構(gòu)設(shè)計的JPEG2000圖像壓縮系統(tǒng)進行實驗。實驗結(jié)果表明,使用本文提出的BPC結(jié)構(gòu)CCD圖像壓縮系統(tǒng)可以穩(wěn)定可靠地工作,BPC具有較高的工作性能,工作頻率達到75 MHz。壓縮系統(tǒng)與傳統(tǒng)方法相比較,平均PSNR提高了0.91 dB。非常適于空間TDICCD相機的應(yīng)用。為空間CCD相機圖像壓縮提供了一種很好的解決方案。
[1]李彬,張建華,吳增印.一種適合星載多光譜圖像的壓縮算法研究[J].航天返回與遙感,2011,32(1):28-32.
[2]王建軍,劉波.適于硬件實現(xiàn)的無損圖像壓縮[J].光學(xué)精密工程,2011,19(4):922-928.
[3]王磊,吳家驥,白靜.基于整型可逆時域交疊變換的遙感圖像壓縮[J].光子學(xué)報,2010,39(12):2251-2256.
[4]ALBERT L,CHANG C F.Implementation of CCSDS data compression for remote sensing image[C]//Proc.SPIE 7810,Satellite Data Compression,Communications and Processing VI,2010.San Diego,California:[s.n.],2010:1-10.
[5]SON C H,KIM J W,SONG S G,et al.Low complexity embedded compression algorithm for reduction of memory size and bandwidth requirements in the JPEG2000 encoder[J].IEEE Trans.Computer electronics,2010,56(4):2421-2429.
[6]劉永征,劉學(xué)武,胡炳樑,等.基于ADV212的JPEG2000靜態(tài)圖像壓縮系統(tǒng)設(shè)計[J].電子器件,2009,32(3):504-508.
[7]GANGADHAR M,BHATIA D.FPGA based EBCOT architecture for JPEG 2000[J].Microprocessors and Microsystems,2005,29(11):363-373.
[8]LI Y J,BAYOUMI M.A three-level parallel high-speed low-power architecture for EBCOT of JPEG2000[J].IEEE Trans.Circuits and Systems for Video Technology,2006 ,16(9):1153-1163.
[9]MINSOO R,PARK I.Memory-less bit-plane coder architecture for JPEG2000 with concurrent column-stripe coding[C]//Proc.IEEE International Conference,2009 .[S.l.]:IEEE Press,2009:2673-2676.
[10]LI Baofeng,DOU Yong.Subblock-based BPE scheme to conquer mismatch in memory access pattern[C]//Proc.Intelligent Information Hiding and Multimedia Signal Processing,2008.[S.l.]:IEEE Press,2008:814-817.