李 進(jìn),金龍旭,韓雙麗,郝賢鵬,呂曾明,陶宏江
(1.中國(guó)科學(xué)院長(zhǎng)春光學(xué)精密機(jī)械與物理研究所,吉林 長(zhǎng)春 130033;2.中國(guó)科學(xué)院研究生院,北京 100039)
責(zé)任編輯:魏雨博
隨著空間TDICCD相機(jī)空間分辨率和覆蓋寬度指標(biāo)不斷提高,導(dǎo)致CCD相機(jī)圖像數(shù)據(jù)量呈指數(shù)增加,現(xiàn)有機(jī)載存儲(chǔ)器容量有限,數(shù)傳系統(tǒng)帶寬受限,無(wú)法適應(yīng)空間CCD圖像的海量數(shù)據(jù)[1-4]。因此,必須要對(duì)CCD圖像進(jìn)行壓縮。JPEG2000是目前圖像壓縮性能最好的壓縮方法,是各種圖像壓縮應(yīng)用場(chǎng)合的首選方案[5-6]。然而,由于JPEG2000整體算法計(jì)算復(fù)雜、占用大量?jī)?nèi)存,難于硬件實(shí)現(xiàn),不適于空間CCD相機(jī)的應(yīng)用。為了使JPEG2000應(yīng)用于空間CCD相機(jī)中,需要對(duì)其各部分進(jìn)行改進(jìn)。
JPEG2000中占用資源和耗時(shí)最大的是最優(yōu)截?cái)嗲度胧綁K編碼(EBCOT)單元,這是由于EBCOT內(nèi)在是比特級(jí)的處理算法,它不同于小波變換單元(字節(jié)級(jí)的處理方案),因此計(jì)算十分復(fù)雜,花費(fèi)了JPEG2000編碼系統(tǒng)的主要時(shí)間。EBCOT的Tier-1算法可分為兩部分:比特平面編碼器(BPC)和二進(jìn)制算術(shù)編碼器(BAC)。BPC是EBCOT最核心的技術(shù),國(guó)內(nèi)外學(xué)者對(duì)其進(jìn)行了大量的研究以減少塊編碼的時(shí)間。文獻(xiàn)[7-8]主要集中減少塊編碼所要求的狀態(tài)變量數(shù)目和設(shè)計(jì)高效的掃描機(jī)制,但是這些方法效率仍然很低,占用大量的存儲(chǔ)資源,難以滿足空間相機(jī)的應(yīng)用。
本文在參考國(guó)內(nèi)外相關(guān)技術(shù)的基礎(chǔ)上,根據(jù)項(xiàng)目背景需求,結(jié)合TDICCD圖像特點(diǎn),提出一種適于空間TDICCD相機(jī)圖像壓縮的新的BPC結(jié)構(gòu)。
BPC是EBCOT中Tier-1的第一步,它將存儲(chǔ)在碼塊(CB)存儲(chǔ)器中量化后的小波系數(shù)進(jìn)行BPC編碼后,生成上下文信息(CX)和比特位的值(D)。每個(gè)數(shù)字的比特被分割,具有相同二進(jìn)制權(quán)重的比特被獨(dú)立存儲(chǔ)在1個(gè)緩沖中形成1個(gè)比特平面。在比特平面內(nèi)每4行形成1個(gè)Strip。在1個(gè)比特平面中,掃描順序是從頂端到底端逐Strip進(jìn)行的。在每個(gè)Strip中數(shù)據(jù)掃描是按照從頂端到底端逐比特,從左到右逐列進(jìn)行的。
BPC有3種主要的編碼通道:重要傳播通道SPP,幅值細(xì)化通道MRP和清除通道CUP。這些通道被應(yīng)用于1個(gè)CB的每個(gè)比特平面中,除了最重要比特(MSB)平面,都使用CUP。這是由于初始條件MSB平面所有比特在SPP和MRP中將不會(huì)被編碼,其他比特平面使用SPP,MRP和CUP按順序?qū)?huì)被編碼。
每個(gè)Strip在垂直掃描模式中被作為一個(gè)獨(dú)立的實(shí)體。在這種模式的Strip周圍被“0”填補(bǔ),如圖1所示。

圖1 Strip周圍填補(bǔ)“0”
BPC處理是從第0行0列開(kāi)始,然后移到第1行,依次進(jìn)行,在處理完第3行后,下一個(gè)處理的元素是右邊下一列的第0行,按照此規(guī)律依次進(jìn)行,直到Strip末端。這種運(yùn)算原理表明這是一種滑動(dòng)窗口結(jié)構(gòu)。按照窗口的滑動(dòng),鄰近的位置將會(huì)被改變。圖2中的前6個(gè)數(shù)據(jù)元素的鄰近窗口如表1所示。傳統(tǒng)鑒定一幀鄰近關(guān)系按照?qǐng)D2所示的方法進(jìn)行。為了便于分析,將表1內(nèi)容按照表2重新組織。

圖2 掃描的元素和它的鄰近元素

表1 圖2中的前6個(gè)數(shù)據(jù)元素的鄰近窗口

表2 幀交織中的鄰近元素以及在SIPO中的位置
比較表1和表2中Strip數(shù)據(jù)行,可以觀察到標(biāo)號(hào)為1~9的元素表示圖2中的Strip第1幀,4~12的元素形成第2幀,7~15的元素形成第3幀,依次類推,10~18形成最后一幀。表2中開(kāi)始和結(jié)尾的3個(gè)元素被標(biāo)為“0”,這是由于它們始終為0。因此,它們并不需要硬件實(shí)現(xiàn),這也為使用4個(gè)3串行比特實(shí)現(xiàn)數(shù)據(jù)路徑提供了可能性(詳見(jiàn)文中第2節(jié))。
提出的BPC結(jié)構(gòu)如圖3所示。DWT引擎產(chǎn)生13 bit,它被組織和存儲(chǔ)在CB存儲(chǔ)器中,提出的結(jié)構(gòu)CB大小為32×32×14。在CB寫(xiě)操作的同時(shí)符合比特信息被分離并存儲(chǔ)到符合平面中,狀態(tài)變量(δ,δ′和η)存儲(chǔ)到狀態(tài)變量平面中。在數(shù)據(jù)通道1和2中生成處理任何幅值比特的鄰近窗口。在執(zhí)行條件被生成的基礎(chǔ)上,BPC控制器決定哪個(gè)通道被執(zhí)行,選擇一個(gè)特殊的編碼原始元素,并存儲(chǔ)在上下文緩存中的上下文數(shù)據(jù)。

圖3 BPC結(jié)構(gòu)
圖3中2個(gè)不同的數(shù)據(jù)路徑是用來(lái)從選擇的Strip中讀取數(shù)據(jù)。由于符合和幅值比特沒(méi)有變化,因此這些平面并沒(méi)有被更新,而基于特定條件狀態(tài)變量更新和新的值必須被存儲(chǔ)以便將來(lái)被處理。因此,數(shù)據(jù)通道2和數(shù)據(jù)通道1略不相同。由1.2節(jié)知在4個(gè)3 bit SIPO、模5行計(jì)算器及9個(gè)4∶1多路復(fù)合器下當(dāng)前鄰近窗口可被得到,如圖4所示為本文提出的數(shù)據(jù)通道2的VLSI結(jié)構(gòu)。

圖4 數(shù)據(jù)路徑結(jié)構(gòu)
BPC一次處理1個(gè)幅值比特,為了減少存儲(chǔ)器訪問(wèn),數(shù)據(jù)讀寫(xiě)對(duì)于每列執(zhí)行1次。為了處理第i列,第i+1列被讀并存儲(chǔ)在標(biāo)記為M,Q,T和W的SIPO元素中。第i列和第i-1列數(shù)據(jù)將分別在SIPO的L,P,S,V和K,N,R,U元素中。這種方法4個(gè)SIPO容納相應(yīng)3列的12個(gè)數(shù)據(jù)比特。這些比特輸入到9個(gè)4∶1多路復(fù)合器中,多路復(fù)合器一次輸出9 bit形成當(dāng)前的鄰近窗口。一個(gè)模5計(jì)數(shù)器用來(lái)選擇一個(gè)特定的以便準(zhǔn)備進(jìn)行處理的行,同時(shí)用來(lái)控制多路復(fù)合器鏈的選擇行。該計(jì)數(shù)器的前4個(gè)狀態(tài)對(duì)應(yīng)一列中的行,而第5個(gè)狀態(tài)用來(lái)預(yù)獲取下一個(gè)列和存儲(chǔ)更新的變量。
為了驗(yàn)證本文提出的BPC結(jié)構(gòu)可行性,提出的結(jié)構(gòu)在ISE8.2使用Verilgo HDL實(shí)現(xiàn),硬件電路FPGA器件選用XC2V1000-BG575,壓縮算法其他模塊采用傳統(tǒng)JPEG2000算法。整個(gè)算法編寫(xiě)調(diào)試過(guò)程使用Modelsim XE 6.3仿真軟件進(jìn)行輔助設(shè)計(jì)。同時(shí)為了驗(yàn)證本文提出的BPC結(jié)構(gòu)是否可行使用自主研發(fā)的圖像模擬源設(shè)備,圖像模擬源發(fā)送測(cè)試圖像,壓縮系統(tǒng)對(duì)圖像進(jìn)行壓縮,并將壓縮碼率傳輸?shù)浇鈮嚎s系統(tǒng)中,重構(gòu)的圖像經(jīng)Camer-Link傳輸?shù)接?jì)算機(jī)上進(jìn)行分析,圖5為原始圖像和重構(gòu)圖像。
由圖5可知本文設(shè)計(jì)的BPC能夠正常工作。
表3為本文設(shè)計(jì)的BPC結(jié)構(gòu)性能參數(shù)結(jié)果。

圖5 測(cè)試圖像壓縮結(jié)果(截圖)

表3 BPC實(shí)現(xiàn)結(jié)果
由表3知,本文提出的BPE工作頻率達(dá)到75 MHz,滿足設(shè)計(jì)指標(biāo)要求。
為了測(cè)試設(shè)計(jì)壓縮系統(tǒng)性能,地面檢測(cè)系統(tǒng)向壓縮系統(tǒng)發(fā)送各種測(cè)試圖像進(jìn)行實(shí)驗(yàn),并與傳統(tǒng)方法進(jìn)行比較,平均PSNR實(shí)驗(yàn)結(jié)果如表4所示(壓縮比為8∶1)。

表4 PSNR實(shí)驗(yàn)結(jié)果 dB
由表4知,本文壓縮系統(tǒng)平均PSNR達(dá)到40 dB,比傳統(tǒng)方法提高了0.91 dB。
針對(duì)目前JPEG2000中最優(yōu)截?cái)嗲度胧綁K編碼器硬件實(shí)現(xiàn)效率低且占用大量資源問(wèn)題,本文提出一種適于空間TDICCD相機(jī)圖像壓縮的JPEG2000比特平面編碼器(BPC)。本文提出的BPC結(jié)構(gòu)思想是基于數(shù)據(jù)路徑詳細(xì)分析來(lái)獲得上下文窗口的。另外,使用自主研發(fā)的地面檢測(cè)設(shè)備對(duì)采用本文提出的BPC結(jié)構(gòu)設(shè)計(jì)的JPEG2000圖像壓縮系統(tǒng)進(jìn)行實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果表明,使用本文提出的BPC結(jié)構(gòu)CCD圖像壓縮系統(tǒng)可以穩(wěn)定可靠地工作,BPC具有較高的工作性能,工作頻率達(dá)到75 MHz。壓縮系統(tǒng)與傳統(tǒng)方法相比較,平均PSNR提高了0.91 dB。非常適于空間TDICCD相機(jī)的應(yīng)用。為空間CCD相機(jī)圖像壓縮提供了一種很好的解決方案。
[1]李彬,張建華,吳增印.一種適合星載多光譜圖像的壓縮算法研究[J].航天返回與遙感,2011,32(1):28-32.
[2]王建軍,劉波.適于硬件實(shí)現(xiàn)的無(wú)損圖像壓縮[J].光學(xué)精密工程,2011,19(4):922-928.
[3]王磊,吳家驥,白靜.基于整型可逆時(shí)域交疊變換的遙感圖像壓縮[J].光子學(xué)報(bào),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ì)[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.