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