濮建福,裴加軍,張 寧,沈 霽,馮書誼,田 野
(1.上海航天電子技術(shù)研究所,上海 201109;2.上海機(jī)電工程研究所,上海 201109)
目前,高光譜圖像無損壓縮方法多采用對(duì)每譜段單獨(dú)進(jìn)行壓縮,如JPEG-LS壓縮方法。此類壓縮方法只考慮了譜內(nèi)的空間相關(guān)性,而忽略了譜間相關(guān)性,壓縮性能不理想。2012年,CCSDS首次發(fā)布了高光譜無損壓縮標(biāo)準(zhǔn)CCSDS-123.0-B-1,該標(biāo)準(zhǔn)是在基于預(yù)測(cè)編碼的方法基礎(chǔ)上制訂的,其壓縮性能較高、計(jì)算簡單、適應(yīng)性較強(qiáng),適于航天工程應(yīng)用[1-4]。CCSDS壓縮算法采用空譜聯(lián)合預(yù)測(cè)的方式去除空間和譜間冗余。CCSDS標(biāo)準(zhǔn)只規(guī)定了編碼方法,并未給出實(shí)現(xiàn)過程,為滿足航天工程應(yīng)用需求,本文對(duì)CCSDS標(biāo)準(zhǔn)硬件設(shè)計(jì)和實(shí)現(xiàn)方法進(jìn)行了研究。
CCSDS壓縮算法包括兩個(gè)功能模塊:一是預(yù)測(cè)器,用于去除高光譜圖像數(shù)據(jù)冗余,另一是編碼器,用于對(duì)去除冗余后的數(shù)據(jù)進(jìn)行編碼,如圖1所示。
圖1 CCSDS壓縮算法主要模塊Fig.1 Main module of CCSDS compression algorithm
CCSDS高光譜壓縮預(yù)測(cè)器模型如圖2所示,從預(yù)測(cè)采 樣 值 {Sz,y,x}預(yù) 測(cè) 殘 差 {δz,y,x}集 合 的 計(jì)算[5]。在采樣點(diǎn)Sz,y,x處計(jì)算預(yù)測(cè)采樣點(diǎn)值和無符號(hào)整型δ,一般通過當(dāng)前采樣點(diǎn)的周邊值和P個(gè)相鄰譜段的值進(jìn)行計(jì)算。此處:P為用戶自定義參數(shù),范圍為0~15。
每個(gè)譜段內(nèi),預(yù)測(cè)器計(jì)算周邊的采樣值“局部和”,每個(gè)局部和用于計(jì)算“局部差分”。通過當(dāng)前譜段的局部和以及當(dāng)前譜段與之前譜段間的局部差分計(jì)算預(yù)測(cè)的采樣值。計(jì)算中所用的權(quán)重按每個(gè)被預(yù)測(cè)的采樣值的計(jì)算結(jié)果自適應(yīng)更新。每個(gè)預(yù)測(cè)的殘差,即當(dāng)前指定的采樣值和對(duì)應(yīng)的s^之差,將映射至δ而得到預(yù)測(cè)殘差。原始高光譜圖像經(jīng)預(yù)測(cè)器消除空間和譜間冗余信息,再進(jìn)行熵編碼輸出。
圖2 CCSDS空譜聯(lián)合預(yù)測(cè)模型Fig.2 Spatial spectral joint forecast model of CCSDS
圖3 CCSDS FPGA模塊總體組成Fig.3 CCSDS FPGA module
定義局部和是當(dāng)前譜段,當(dāng)前像素的相鄰像素求和。局部和的計(jì)算分為五種情況,如圖4所示。圖中:
圖4 局部和的計(jì)算Fig.4 Calculation of partial summation
表示當(dāng)前像素周邊值之和。根據(jù)當(dāng)前像素所在位置的關(guān)系,有
式中:NCOL為圖像列數(shù)。
算出真實(shí)值與預(yù)測(cè)值之差后,對(duì)預(yù)測(cè)器進(jìn)行自適應(yīng)調(diào)整。預(yù)測(cè)值與當(dāng)前像素所在位置之前的各譜段有一定相關(guān)性,故權(quán)重更新向量選擇當(dāng)前像素之前數(shù)幀譜段作為更新權(quán)向量的依據(jù)。根據(jù)CCSDS自適應(yīng)預(yù)測(cè)方法,選擇符號(hào)自適應(yīng)預(yù)測(cè)。
當(dāng)使用定制權(quán)重初始化方法時(shí),對(duì)每個(gè)譜段的初始化權(quán)重向量Wz(t)將被用于定義權(quán)重初始化向量i,組成Cz個(gè)Q-bit整型元素。此處:Cz為譜段z上用于預(yù)測(cè)的局部差的個(gè)數(shù)。權(quán)重初始化分辨率Q滿足3≤Q≤Ω+3b。此處:Ω為權(quán)重值分辨率,取 值 4~19???用Wz(1)=2Ω+3-Q+|2Ω+3-Q-1|算得Wz(1)[5]。此處:為z的權(quán)重初始化向量。
在計(jì)算中心差的權(quán)向量過程中,幀序號(hào)不同,權(quán)向量初始值各異。針對(duì)FPGA邏輯實(shí)現(xiàn),本文對(duì)中心差權(quán)向量更新計(jì)算進(jìn)行優(yōu)化,用符號(hào)函數(shù)和乘加運(yùn)算可更改權(quán)值w。其中:第一幀無中心差;第二幀的中心差的權(quán)向量初值為(1)= [2Ω];第三幀的中心差權(quán)向量初始值為;第四幀的中心差權(quán)向量初始值為;其余幀的中心差權(quán)向量初始值為
由此可知:在權(quán)向量更新過程中,使用了當(dāng)前數(shù)據(jù)的預(yù)測(cè)誤差的符號(hào)。用“-”、“+”符號(hào)進(jìn)行權(quán)向量更新,計(jì)算中應(yīng)可能減少輸入信號(hào)與預(yù)測(cè)中心局部差與預(yù)測(cè)誤差計(jì)算間的時(shí)延。在計(jì)算中心局部差和權(quán)向量更新過程中,涉及的乘法計(jì)算較多,如用Slice實(shí)現(xiàn),需消耗大量Slice資源,且延時(shí)較大。本文用FPGA芯片內(nèi)部DSP48E實(shí)現(xiàn)乘法計(jì)算,輸出延時(shí)僅為1個(gè)時(shí)鐘周期,顯著縮短了乘法計(jì)算的時(shí)鐘周期。
預(yù)測(cè)器FPGA實(shí)現(xiàn)的邏輯結(jié)構(gòu)如圖5所示。各譜段局部和并行計(jì)算,再計(jì)算方向局部差和中心局部差,最后與更新的權(quán)重向量相乘得到預(yù)測(cè)值。在計(jì)算預(yù)測(cè)值的同時(shí)進(jìn)行權(quán)重向量更新,更新結(jié)果暫存在FPGA內(nèi)部寄存器中,等待下次使用。原始值與預(yù)測(cè)值相減得到預(yù)測(cè)殘差,然后進(jìn)行Rice編碼,組織碼流輸出[6]。
圖5 預(yù)測(cè)器邏輯結(jié)構(gòu)Fig.5 Logical structure of predictor
用多幅高光譜圖像源測(cè)試算法,分別用CCSDS,ICER-3D,差分JPEG-LS和二維JPEG-LS壓縮算法進(jìn)行處理,壓縮結(jié)果見表1。CCSDS平均無損壓縮碼率為5.14b/p,與二維JPEG-LS相比碼率減少2.38b/p。局部和、局部差的 ModelSim仿真結(jié)果如圖6所示。圖中:a表示CLK;b表示RSTn;c表示FLAG_FRAME為幀有效信號(hào);d表示FLAG_ROW為行有效信號(hào);e表示DIN為輸入的圖像數(shù)據(jù);f表示LOCAL_SUM 為局部和數(shù)據(jù);g表示FLAG_SUM 為局部和有效信號(hào);h,i,j分別表示LOCAL_SUBNW,LOCAL_SUBN,LOCAL_SUBW為局部差;k表示LOCAL_SUB;l表示FLAG_SUB為局部差有效信號(hào)。更新權(quán)向量ModelSim的仿真結(jié)果如圖7所示。圖中:a表示CLK;b表示 RSTn;c表示nFRAME;d表示 LOCAL_SUBN;e表示LOCAL_SUBW;f表示LOCAL_SUBNW;g,h,i,j分別表示 LOCAL_SUB1、2、3、4為權(quán)向量更新信號(hào);k表示FLAG_SUB;l表示FLAG_PCE;m表示PREDICTED_CE。預(yù)測(cè)器實(shí)現(xiàn)過程采用流水線結(jié)構(gòu)設(shè)計(jì),圖6中局部和與局部差的計(jì)算結(jié)果較輸入數(shù)據(jù)延遲1個(gè)時(shí)鐘周期(12.5ns),局部和和局部差同時(shí)輸出。FPGA采用XC5VFX130T,經(jīng)實(shí)驗(yàn)仿真,工作時(shí)鐘可達(dá)80MHz以上,圖像源為量化位數(shù)16b的高光譜圖像,預(yù)測(cè)器平均吞吐率為1.69Gb/s。
表1 四種壓縮算法結(jié)果Tab.1 Results of four compression algorithms
圖6 局部和和局部差仿真結(jié)果Fig.6 Simulation results of partial summation and difference simulation
圖7 權(quán)向量更新仿真結(jié)果Fig.7 Simulation results of weight vector updating
本文對(duì) CCSDS發(fā)布的 CCSDS-123.0-B-1高光譜圖像壓縮空譜聯(lián)合預(yù)測(cè)模型進(jìn)行了研究。給出了預(yù)測(cè)模型和FPGA模塊設(shè)計(jì),簡化了局部和局部差計(jì)算過程,對(duì)權(quán)重向量更新進(jìn)行優(yōu)化,給出預(yù)測(cè)器實(shí)現(xiàn)的邏輯結(jié)構(gòu)。實(shí)驗(yàn)結(jié)果表明:使用該預(yù)測(cè)器平局壓縮碼率為5.14b/p,工作時(shí)鐘可達(dá)80MHz以上,平均吞吐率1.69Gb/s。
[1] CCSDS.Lossless data compression:recommendation for space data systems standards[A]:CCSDS121.0-B-2,b1ue book[M].2ndEd.Washington DC:CCSDS,2012.
[2] CCSDS.Image data compression:report concering space data system standards[A]:CCSDS 120.1-G-1,green book[M].Walshinton DC:CCSDS,2007.
[3] 張忠偉,安軍社,呂良慶,等.螢火一號(hào)火星探測(cè)器在軌圖像處理技術(shù)[J].上海航天,2013,30(4):211-214.
[4] 陳裕華,顧曉東,張忠偉,等.最新Ccsds圖像壓縮算法研究與實(shí)現(xiàn)[J].空間科學(xué)學(xué)報(bào),2007,27(6):519-522.
[5] CCSDS.Lossless multispectral & hyperspectral image compression:recommendation for space data systems standards[A]:CCSDS 123.0-B-1,Blue Book[M].Washington DC:CCSDS,2012.
[6] 陳永紅,史澤林,趙懷慈,等.空譜聯(lián)合預(yù)測(cè)高光譜圖像無損壓縮Rice算法[J].儀器儀表學(xué)報(bào),2010,31(1):105-110.