舒 銳,武少林,龔 偉,陳 陽,張?zhí)煨?/p>
(1.上海衛(wèi)星工程研究所,上海 200240;2.華中科技大學 人工智能與自動化學院,湖北 武漢 430074;3.武漢工程大學 電氣信息學院,湖北 武漢 430062)
JPEG-LS(Joint Photographic Experts Group-Lossless)是圖像無損壓縮領(lǐng)域中最經(jīng)典的、基于預測的算法,于2000 年由聯(lián)合圖像專家小組JPEG 所提出,其核心是LOCO-I(Low Complexity Lossless Compression,LOCO-I)算 法。JPEG-LS 算法先利用周圍左邊、左上邊及上邊的3 個像素值做一個簡單的中值邊界檢測預測,然后通過上下文模型修正預測值,最后轉(zhuǎn)化為Golomb-rice 編碼輸出。JPEGLS 算法以較低的復雜度達到了當年(2000 年)的最高壓縮比。LOCO-I 算法僅為單通道的灰度圖像設(shè)計,SHAWN 等[1]于2004年將LOCO-I 推廣到了 高光譜圖像壓縮,提出了LOCO-3D 算法,壓縮比提高了約0.2。2015 年,在C-DPCM 算法的基礎(chǔ)上,WU等[2]發(fā)現(xiàn)剔除原始高光譜圖像數(shù)據(jù)中的異常像素值后,預測的準確率提升了,此附帶局部光譜異常數(shù)據(jù)剔除的算法被稱為C-DPCM-RLSO(C-DPCMRemoval of Local Spectral Outliers)。人工智能的研究熱潮將神經(jīng)網(wǎng)絡技術(shù)帶到了各行各業(yè)中,LUO等[3]于2019 年提出了C-DPCM-RNN(C-DPCMRecurrent Neural Networks)方法,將C-DPCM 中的線性預測器替換為循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network,RNN),該方法在矯正的機載可見光/紅外成像光譜儀(Airborne Visible Infrared Imaging Spectrometer,AVIRIS)公開高光譜測試集上取得目前本領(lǐng)域內(nèi)最高的壓縮比。目前,現(xiàn)存的很多高光譜圖像壓縮算法的通用性不強,很多算法采取單一的上下文模型,這類固定的上下文建模算法存在明顯的弊端,容易產(chǎn)生偏好現(xiàn)象。例如,JPEG 算法在醫(yī)學圖像上的壓縮性能表現(xiàn)明顯優(yōu)于其他類型圖像,JPEG 2000 算法偏向于場景過度平滑的自然照片[4]。此外,有些算法需要調(diào)優(yōu)參數(shù)才能達到較好的壓縮性能。例如,C-DPCM 類算法雖然取得目前本領(lǐng)域內(nèi)最好的壓縮效果,但是算法需要提前給定圖像聚類數(shù)目[5],顯然,不同類型的圖像的最優(yōu)聚類數(shù)目是不同的,不恰當?shù)膱D像聚類數(shù)目會降低算法的壓縮性能。
針對上述目前很多算法存在的通用性與實用性方面不足的問題,本文從消除譜間信息冗余、譜內(nèi)空間信息冗余這兩個角度展開研究,綜合了基于變換和基于預測的壓縮技術(shù),提出了一種基于KLT(Karhunen-Loève Transform)和自由無損圖像格式(Free Lossless Image Format,F(xiàn)LIF)算法的通用型高光譜圖像無損壓縮算法。
KLT,也稱為主成分分析(Principal Components Analysis,PCA)變換,是一種能有效提取關(guān)鍵圖像信息以及消除冗余的工具[6]。KLT 是一種線性變換,通過旋轉(zhuǎn)坐標系讓原始圖像數(shù)據(jù)盡可能地落在新的坐標軸上,算法原理是通過旋轉(zhuǎn)坐標系使得原始數(shù)據(jù)的協(xié)方差矩陣對角化。KLT 后的圖像數(shù)據(jù)譜間將會不具備相關(guān)性。
本方案首先對高光譜圖像進行可逆整數(shù)KLT,去除譜間相關(guān)性;再對可逆整數(shù)KLT 后的高光譜圖像逐通道計算圖像均勻性指標SR;對較均勻的圖像通道采用FLIF 壓縮器編碼,對均勻性差的圖像通道切換到哈夫曼編碼器。通過對高光譜圖像做一個可逆的整數(shù)KLT 變換來去除其譜間相關(guān)性,降低了原始數(shù)據(jù)的信息熵,去除了譜間的冗余信息,然后采取FLIF 壓縮編碼來消除譜內(nèi)空間信息冗余,從而取得高壓縮比。為了優(yōu)化方案算法的壓縮速度,本方案還提出了根據(jù)圖像特點靈活切換壓縮系統(tǒng)的策略,針對均勻圖像(高SR 值)使用FLIF 算法壓縮編碼,針對非均勻圖像(低SR 值)切換到簡單的哈夫曼編碼以加快壓縮速度。本方法的算法流程如圖1 所示。
圖1 高光譜圖像無損壓縮總體方案流程圖Fig.1 Flow chart of the overall scheme for lossless compression of hyperspectral images
FLIF 壓縮算法的工作流程圖如圖2 所示。FLIF 算法采取逐行逐個像素掃描的工作方式,像素首先經(jīng)過1 個固定的預測模板得到殘差值,殘差進一步分解為近零符號編碼表示。后續(xù)MANIAC 決策樹將計算出上下文環(huán)境屬性值,決策樹根據(jù)屬性標簽值自頂向下遍歷為該像素值選出最優(yōu)的上下文環(huán)境,隨后更新所有相關(guān)上下文環(huán)境,并對決策節(jié)點進行調(diào)整,調(diào)整決策樹有助于提高下個輸入像素的預測準確度。最后,算術(shù)編碼器根據(jù)上下文環(huán)境提供的概率分布信息完成編碼,并輸出壓縮碼流。
圖2 FLIF 算法的工作流程Fig.2 Flow chart of the FLIF algorithm
圖中,X表示待預測位置的像素,T表示X的上方像素,L表示X左邊的像素,TL表示左上角的像素,可以根據(jù)T、L、TL像素值來預測X的值。
近零符號編碼由零位(ZERO)、符號位(SIGN)、指數(shù)位(EXP(k,sign))和尾數(shù)位MANT(k)這幾個部分組成。
MANIAC(Meta-Adaptive Near-zero Integer Arithmetic Coding)即元自適應近零整數(shù)算術(shù)編碼。
KLT 的第1 步是計算原始高光譜圖像數(shù)據(jù)的協(xié)方差矩陣COV:
式 中:cov(pi,pj)為 第i個譜段和 第j個譜段的 協(xié)方差。
KLT 的目的是去除譜間圖像的相關(guān)性,可以將去除譜間數(shù)據(jù)相關(guān)性的問題轉(zhuǎn)化為將協(xié)方差矩陣COV中的元素cov(pi,pj)置 為0(i≠j),即為任意兩個譜段數(shù)據(jù)的協(xié)方差為0。KLT 變換的原理是把協(xié)方差矩陣COV對角化。假設(shè)存在矩陣P,使得滿足
式中:Λ為對角矩陣。
KLT 是一種線性變換,為了使變換后的新坐標系相互垂直,必須對上面的變換矩陣P進行正交化,正交化后的矩陣P即為KLT 矩陣。
求解正交變換矩陣P的方法分為兩步:首先將協(xié)方差矩陣COV對角化得到變換矩陣P;然后再對矩陣P正交化。矩陣對角化的詳細步驟如下所述。
通過求解下面的線性方程組
式中:λ為特征值;E為單位向量
對式(1)運用線性代數(shù)的方法,能解出p個特征值與p個相應的特征向量。再把特征向量按照特征值從大到小的順序重新排列,得到變換矩陣為
式中:p1為最大的特征值λ1所對應的特征向量;以此類推,pn為最大的特征值λn所對應的特征向量。
對式(4)得到矩陣P依次進行正交化與單位化,使得矩陣P滿足
采用施密特正交化方法規(guī)范化向量p1,p2,…,pr。正交化的過程如下:
最后,將向量組β1β2…βr單位化,具 體方法如下:
式中:|β1|為向量β1的模。
聯(lián)立式(10)求得單位化后的向量,KLT 矩陣即為所求,記 做AT=[ε1ε2…εn],(n=1,2,…,P),那么A為
上面就是KLT 的全部步驟,使用變換矩陣A去譜間相關(guān)性的公式如下,假設(shè)輸入的高光譜圖像數(shù)據(jù)如下公式的形式,依舊記為X,記去譜間相關(guān)性后的數(shù)據(jù)記為Y,變換公式為
近零符號編碼是FLIF 算法數(shù)據(jù)存儲塊(包含像素值數(shù)據(jù))的一種數(shù)據(jù)表示形式[7]。任意整型數(shù)據(jù)都能用近零符號編碼表示,近零符號編碼由零位、符號位、指數(shù)位和尾數(shù)位這幾個部分組成,其中,指數(shù)位部分采取簡單的一元編碼(Unary Code)。所謂一元編碼,即使用n-1 個二進制數(shù)據(jù)1 與末位尾數(shù)0(或者使用n-1 個二進制數(shù)據(jù)0 與末位尾數(shù)1)來表示存儲正整數(shù)n。在FLIF 里的近零符號編碼中,一元編碼只用于表示指數(shù)位數(shù)據(jù)部分[8]。對于任意整數(shù)數(shù)據(jù)x,所需的指數(shù)位二進制比特數(shù)目為:e=(結(jié)果如果有小數(shù),往上取整)。因此,假設(shè)采取一元編碼表示16 位的圖像數(shù)據(jù),近零符號編碼的指數(shù)位部分二進制長度有上限,即最多需要16 個bpp(bit per pixel)。
近零符號編碼表示的每個bpp 都有它自己的上下文環(huán)境,所以每個bpp 的概率相互隔離,能夠自動適應數(shù)據(jù)。在FLIF 里的近零符號編碼中,指數(shù)位數(shù)據(jù)部分bpp 的概率不僅取決于它們所在的位置,還取決于它們的符號。
近零符號編碼針對每個bpp 都建立獨立的上下文環(huán)境,每個bpp 的可能值只能是要么為0,要么為1。由于FLIF 的核心是算術(shù)編碼,近零符號編碼使用一個12 位的整型數(shù)據(jù)存儲每個bpp 的概率。12位的無符號(概率不可能為負數(shù))整型數(shù)據(jù)能表示的整數(shù)范圍是0~4 095,所以概率值為1 時表示該bpp 為1 的概率接近于零(該bpp 為1 幾乎是不可能事件),當概率值為4 095 時表示該bpp 為1 的概率接近于1(該bpp 為1 是必然事件)。
FLIF 首先對該通道的圖像數(shù)據(jù)逐行從左向右掃描得到預測誤差值,掃描時比較存儲當前通道圖像預測誤差值的最大值與最小值。在獲得該通道圖像預測誤差值的最大值與最小值之后,這時我們就能確定k的上限值為
式中:[x]為向下取整,注意這里x一定取的是絕對值最大的值。
為了說明近零符號編碼表示指數(shù)位的方法,下面以正整數(shù)1 000 為例說明,假設(shè)kmax=12,先計算k=[log21 000]=10,因 此 exp(k,sign)(k=0,1,…,9) 這 10 個 bbp 都置為 1,同 時exp(k,sign)(k>9)也就是剩下的bpp 都置為0。其實近零符號編碼表示指數(shù)位exp(k,sign)的本質(zhì)是記錄數(shù)據(jù)有二進制位的長度,假如kmax=12,說明該通道圖像的預測誤差值最多有12 位。根據(jù)實際的像素預測經(jīng)驗情況,預測誤差值范圍通常為正太分布,預測誤差值的典型值一般為幾百左右,到exp(6,sign)即誤差值為128,此時概率值達到最大值2 800。相反exp(k,sign)高位的概率值一般給較小的值(認為預測誤差特別小的發(fā)生概率小),到從表3 的初始概率值可以看出,exp(k,sign)從高位(k=0)到低位(k=kmax)的初始概率值基本上是先逐漸增加然后減小的趨勢。
近零符號編碼的尾數(shù)部分用MANT(k),k=1,2,3,…表示,正如上所述近零符號編碼表示的指數(shù)部分記錄數(shù)據(jù)的二進制長度,所以數(shù)據(jù)的最高位必為1,數(shù)據(jù)尾數(shù)用MANT(k) 表示,尾數(shù)MANT(k)中的k值一定比數(shù)據(jù)的二進制長度少一位,故近零符號編碼的尾數(shù)部分MANT(k)中的k值等于指數(shù)部分exp(k,sign)中的k減1 位。即:kmant=kexp-1。
MANIAC(Meta-Adaptive Near-zero Integer Arithmetic Coding)即元自適應近零整數(shù)算術(shù)編碼[9]。所謂元自適應,是指FLIF 編碼器的上下文模型能夠自動適應數(shù)據(jù)的特點。
FLIF 算法使用CABAC(Context-Adaptive Binary Arithmetic Coding)的一種變種方法作為其核心編碼器[10]。因此,本文先簡要地介紹CABAC 方法的核心原理。CABAC 算法的基礎(chǔ)也是算術(shù)編碼器,其中的概率模型是自適應的。CABAC 算法逐bpp 壓縮圖像數(shù)據(jù),所以其中的算術(shù)編碼器針對bbp進行建立概率模型,bpp 只有兩種可能值1 或0,CABAC 算法對bpp 的初始概率各賦值為50%,即認為bpp1 或0 位出現(xiàn)的概率相等。CABAC 每壓縮一個bpp,其概率模型就會相應地更新。這種概率隨著壓縮進程動態(tài)調(diào)整的策略有利于模型學習到數(shù)據(jù)的真實概率分布情況,從而提升算法的壓縮性能。
CABAC 算法本質(zhì)上還是只有一個上下文環(huán)境模型,如果有多個上下文環(huán)境模型信息,那么就能給每個上下文環(huán)境分配一個獨立的概率模型[11]。參考FFV1 中的靜態(tài)上下文環(huán)境設(shè)計,其上下文環(huán)境的數(shù)量為屬性域的乘積,所以很難得到一個合適的上下文環(huán)境數(shù)量值。過多的上下文環(huán)境不利于壓縮,因為模型的自適應能力是有限的(假設(shè)極限情況,一個或幾個像素共用一個上下文環(huán)境)。同理,過少的上下文也不利于壓縮,因為處于不同環(huán)境條件下的像素,其像素值的分布規(guī)律不同卻共用同一個上下文環(huán)境也是不科學的。此外,固定數(shù)量的上下文環(huán)境數(shù)量會導致很多上下文環(huán)境被閑置,完全沒被利用上。
與CABAC 算法相比,F(xiàn)LIF 使用一種動態(tài)數(shù)據(jù)結(jié)構(gòu)作為其核心上下文環(huán)境模型。這種動態(tài)數(shù)據(jù)結(jié)構(gòu)的本質(zhì)是一顆決策樹,決策樹會隨著壓縮過程不斷地生長。典型的MANIAC 樹示意圖如圖3 所示,MANIAC 樹內(nèi)部節(jié)點與葉子節(jié)點的放大圖如圖4 所示。MANIAC 樹的每個內(nèi)部節(jié)點(非葉子節(jié)點)都有一個測試條件:判斷一個上下文屬性值(FLIF 含有多個)是否大于(或小于等于)閾值。類似二叉樹的數(shù)據(jù)結(jié)構(gòu),MANIAC 樹的內(nèi)部節(jié)點也有左右兩個分支。在壓縮圖像數(shù)據(jù)過程中,每個葉子節(jié)點包含一個實際的上下文環(huán)境,同時葉子節(jié)點還包括很多屬性條件,每條屬性擁有兩個虛擬的上下文環(huán)境。而在解壓圖像數(shù)據(jù)的過程中,F(xiàn)LIF 只會用到實際的上下文環(huán)境。
圖3 典型的MANIAC 樹示意圖Fig.3 Schematic diagram of a typical MANIAC tree
圖4 MANIAC 樹內(nèi)部節(jié)點與葉子節(jié)點的放大圖Fig.4 Enlarged view of the internal nodes and leaf nodes of the MANIAC tree
所謂自適應MANIAC 樹,下面詳細說明MANIAC 樹的動態(tài)調(diào)整生長過程,也即自適應過程[12]。對于每個輸入的待壓縮像素數(shù)據(jù),F(xiàn)LIF 首先計算每條屬性條件值,結(jié)合計算好的每條屬性值開始遍歷MANIAC 樹直到抵達葉子節(jié)點。葉子節(jié)點包含一個實際的上下文環(huán)境,利用其輸出壓縮比特流,以及一個損失值(輸出bbp 的個數(shù))。FLIF 取每條屬性值的平均值作為其比較閾值,該條屬性下小于閾值的有一個虛擬的上下文環(huán)境,而大于等于閾值的也有一個虛擬的上下文環(huán)境。壓縮完一個像素值后,每條屬性下的兩個虛擬的上下文環(huán)境會分別更新各自的概率表與損失值。損失值也含義是該上下文環(huán)境壓縮了多少個像素值。
MANIAC 屬性向量組成了FLIF 算法的上下文環(huán)境,MANIAC 樹里葉子節(jié)點所包含的上下文環(huán)境的主要成分也是這些MANIAC 屬性組。假設(shè)當前待壓縮的像素為X,X周圍像素值的位置關(guān)系如圖5所示。
圖5 像素X 周圍像素的位置關(guān)系Fig.5 Positional relationship of pixels around pixel X
FLIF 定義了一些屬性條件,見表1,這些屬性條件構(gòu)成了FLIF 算法至關(guān)重要的上下文環(huán)境。
表1 MANIAC 屬性表Tab.1 Attribute table of MANIAC
上表中Mni為像素預測使用哪個預測器,因為像素預測最終取的是(L+T-T,L,T)3 個值的中值,故Mni定義為
計算上下文環(huán)境里的損失值其實是在評估哪條屬性對壓縮任務幫助最大。如果該條屬性是無關(guān)緊要的,那么該屬性下的兩個虛擬上下文環(huán)境的損失值之和就會大于等于實際上下文環(huán)境的損失值。相反,如果該條屬性十分關(guān)鍵,那么使用兩個不同上下文環(huán)境來編碼數(shù)據(jù)將會更有利于壓縮。通過比較葉子節(jié)點中實際上下文環(huán)境的損失值與屬性下兩個虛擬上下文環(huán)境的損失值,當某個屬性下兩個損失值的差值大于某個閾值的時候,此葉子節(jié)點就變成為一個決策節(jié)點,此決策節(jié)點的測試條件就是本屬性。上述的葉子節(jié)點轉(zhuǎn)變決策節(jié)點的過程,其實也是MANIAC 樹生長的過程,如圖6 所示,葉子節(jié)點一分為二,裂變?yōu)閮蓚€新的葉子節(jié)點。
圖6 MANIAC 樹生長過程示意圖Fig.6 Schematic diagram of the growth process of the MANIAC tree
考慮到KLT 能分離出大部分噪聲數(shù)據(jù)的特點,這里提出了針對FLIF 壓縮器的優(yōu)化加速方法。FILF 壓縮器屬于復雜壓縮系統(tǒng),壓縮性能強,但是內(nèi)部算法復雜度高,耗時長;而哈夫曼編碼器屬于簡單壓縮系統(tǒng),速度快,但是壓縮能力弱。本文提出了根據(jù)圖像均勻程度靈活地在FILF 壓縮器與哈夫曼編碼器之間切換的策略,對均勻圖像應該選擇FILF 壓縮器以提升壓縮能力;但是對于噪聲大的非均勻圖像FILF 壓縮器與哈夫曼編碼器性能相當,此時選擇更快的哈夫曼編碼器以縮短壓縮時間。本文綜合圖像行間相關(guān)性與列間相關(guān)性作為圖像均勻性指標,圖像行間相關(guān)性與列間相關(guān)性的權(quán)重各取一半(即50%)。計算出圖像所有相鄰行之間的相關(guān)系數(shù)并取均值作為全圖的行間相關(guān)性,運用相同的方法計算出全圖的列相關(guān)系數(shù)。定義圖像均勻度指標SR 為(+)/2,其最小值 為0,最大值為1,根據(jù)統(tǒng)計學知識,一般認為相關(guān)系數(shù)0.8 以上表明具有強的相關(guān)性;相關(guān)系數(shù)0.3~0.8 之間認為數(shù)據(jù)間具有一定的相關(guān)性;而相關(guān)系數(shù)0.3以下則認為數(shù)據(jù)間沒有相關(guān)性。相關(guān)系數(shù)區(qū)間含義如下:
本文通過靈活地切換復雜壓縮器(FLIF)與簡單壓縮器(哈夫曼編碼器)來加速壓縮過程,關(guān)于切換壓縮器的時機如何選擇的問題,結(jié)合上述的相關(guān)系數(shù)區(qū)間含義,本文設(shè)置圖像均勻度指標SR 的閾值為0.3。當圖像均勻度指標SR 大于0.3 時,說明圖像具備較強的空間相關(guān)性的特點,故采取FLIF 壓縮這類圖像;當圖像均勻度指標SR 小于0.3 時,說明圖像受噪聲污染嚴重,故切換到哈夫曼編碼器來壓縮這類圖像以縮短壓縮時間。
哈夫曼編碼屬于變長編碼技術(shù),能夠有效地消除數(shù)據(jù)的編碼冗余,是一種基于二叉樹的實現(xiàn)輸出最短二進制碼長度的方法。哈夫曼編碼需要數(shù)據(jù)分概率的先驗信息,故要先統(tǒng)計圖像所有像素值的頻率,為了節(jié)省存儲空間,頻率信息使用一個無符號的16 位整型數(shù)據(jù)存儲,16 位無符號整型數(shù)據(jù)所能表示的范圍僅為0~65 535,因為可能存在頻率超過65 535 的情況,頻率表最后會統(tǒng)一歸一化到0~65 535 之間。為了減少先驗頻率分布信息的體積,本文僅對該圖像存在的值存儲統(tǒng)計的頻率分布信息,即僅存儲像素值最小值到最大值之間的頻率分布信息。有了數(shù)據(jù)頻率分布之后,先建立哈夫曼編碼樹(數(shù)據(jù)結(jié)構(gòu)是一顆二叉樹),再遍歷哈夫曼樹得出每個數(shù)據(jù)的二進制編碼,哈夫曼樹會為高頻率的數(shù)據(jù)分配較短的編碼,進而實現(xiàn)最優(yōu)編碼過程,接下來根據(jù)編碼表對待壓縮像素重新生成二進制碼,消除編碼冗余。解碼方法跟上述的壓縮過程基本相同,也是先建立哈夫曼樹,然后根據(jù)壓縮碼流逐位讀取遍歷哈夫曼樹直到遍歷到葉子節(jié)點便恢復出一個像素數(shù)據(jù),接著繼續(xù)取壓縮碼流重復遍歷過程直到讀盡壓縮碼流(或者恢復出最后一個像素)便停止。
本文的實驗數(shù)據(jù)來自高分五號衛(wèi)星高光譜數(shù)據(jù),數(shù)據(jù)分兩部分:可見光近紅外(VN)和短波紅外(SW)。VN 有150 個波段,SW 有180 個波段,總共330 個波段。
VN 波段范圍0.39~1.03 μm 左右,5 nm 一個間隔。SW 波段范圍1.0~2.5 μm 左右,10 nm 一個間隔??臻g分辨率30 m。試驗數(shù)據(jù)選取北京某機場,選取6 組數(shù)據(jù),分別為VN①~VN③,SW①~SW③,如圖7 所示。
圖7 VN①(第50、60、70 波段合成)高光譜實驗測試圖像Fig.7 Hyperspectral experimental test image for VN ①(integrated 50th,60th,and 70th waveband)
壓縮結(jié)果指標統(tǒng)一采取每個像素所占的bpp 指標,本文對多組高光譜圖像測試用例進行壓縮實驗,見表2。
表2 高光譜測試圖像的無損壓縮實驗的bpp 結(jié)果Tab.2 The bpp results of the lossless compression experiment of hyperspectral test images
本文提出的RKLT-FLIF 方案的另一個優(yōu)點是能夠根據(jù)圖像的均勻程度(噪聲情況)在復雜FLIF與簡單哈夫曼編碼器之間切換,從而加快壓縮速度,縮短壓縮時間。本文增加了一個對照實驗組來分析自適應切換壓縮器策略的效果,對照實驗組禁用了哈夫曼編碼器。針對上述的高光譜圖像測試樣本,在相同的測試實驗平臺上,本文做了相關(guān)實驗統(tǒng)計出了RKLT-FLIF 方案與RKLT-FLIF(無哈夫曼編碼)方案完成壓縮所耗費的時間,見表3。
表3 高光譜測試圖像的壓縮實驗耗時結(jié)果Tab.3 Time-consuming results of the compression experiment for hyperspectral test images
通過表2 中的bpp 結(jié)果,實驗結(jié)果表明,針對可見光bpp 達到4.16,短波紅外bpp 達到4.15。據(jù)文獻[13]顯示,本文算法相比于C-DPCM 更具通用性。C-DPCM 算法的原理是先對高光譜bpp 圖像進行聚類,聚類算法通常是k-Means 或LBG 聚類算法,再針對不同的類別的圖像塊分別進行預測壓縮[14]。然而,圖像聚類算法有個明顯的缺陷,難以確定合適的類別數(shù),過多或過少的類別都會降低壓縮性能,C-DPCM(order 20)括號里的order 20 表明算法的聚類數(shù)目為20[15],20 類的數(shù)量是經(jīng)過多次試參才確定的,這意味著若更換測試樣本,C-DPCM 類算法性能可能會出現(xiàn)下滑,與C-DPCM 類算法相比,本算法的優(yōu)點是無須根據(jù)輸入圖像特點手動調(diào)整任何參數(shù),通用性更強。
本文提出的RKLT-FLIF 方案的另一個優(yōu)點是能夠根據(jù)圖像的均勻程度(噪聲情況),在復雜FLIF與簡單哈夫曼編碼器之間切換,從而加快壓縮速度,縮短壓縮時間。本文增加了一個對照實驗組來分析自適應切換壓縮器策略的效果,對照實驗組禁用了哈夫曼編碼器。針對上述的高光譜圖像測試樣本,在相同的測試實驗平臺上,本文做了相關(guān)實驗統(tǒng)計出了RKLT-FLIF 方案與RKLT-FLIF(無哈夫曼編碼)方案完成壓縮所耗費的時間,見表3。從表3 可以看出:針對可見光波段圖像,RKLT-FLIF(無哈夫曼編碼)的耗時平均值接近于RKLT-FLIF的5 倍;針對短波紅外波段圖像,RKLT-FLIF(無哈夫曼編碼)的耗時平均值接近于RKLT-FLIF 的1.14 倍。因此,實驗結(jié)果表明,自適應切換壓縮器策略的加速效果可以,加快了壓縮速度,同時又沒有降低壓縮質(zhì)量。
本論文提出了基于KLT 和FLIF 算法的高光譜圖像無損壓縮方法,高光譜圖像先經(jīng)過可逆整數(shù)KLT 去除圖像的譜間冗余信息,再由譜內(nèi)壓縮器FLIF 去除圖像空間冗余信息得到壓縮碼流。FLIF算法中的MANIAC 決策樹能夠在壓縮過程中適應輸入圖像的特征,MANIAC 決策樹的每個葉子節(jié)點都維護著一個實際上下文環(huán)境和兩個虛擬上下文環(huán)境,每編碼完一個像素便更新一次上下文環(huán)境,葉子節(jié)點隨著壓縮進度逐漸分裂從而增加了上下文環(huán)境的數(shù)量,譜間去相關(guān)變換與多上下文環(huán)境的設(shè)計使得方案取得的實驗結(jié)果還是不錯的。C-DPCM 類算法需調(diào)參確定合適聚類數(shù)目,而多上下文環(huán)境設(shè)計的自適應能力使得本算法更具通用性和實用性。本文還提出了多壓縮器靈活切換的策略,通過逐通道計算圖像均勻性指標SR,針對高SR 圖像使用復雜的FLIF 壓縮器,對低SR 圖像切換到簡單的哈夫曼編碼器,在可見光波段將壓縮時間平均縮短為原來的1/5。