,,
1. 中國民航大學 計算機科學與技術學院,天津 300300 2. 中國科學院 國家空間科學中心,北京 100190
近年來,隨著國防與國民經濟的發展需求,航天光學遙感技術在理論與工程技術上發展迅速,新的在軌光學遙感載荷不斷涌現,空間分辨率、時間分辨率、光譜分辨率及輻射分辨率等性能指標大幅提升,使得光學遙感圖像的信息量呈指數增長[1-2],對應的實時數據傳輸速率已高達數吉比特每秒。然而利用目前的通信技術進行星地圖像傳輸,傳輸率僅為500 Mbit/s左右[3],星地圖像傳輸帶寬與遙感圖像數據量之間存在著巨大的差距和矛盾,而且差距呈現出擴大趨勢,嚴重制約了高分辨率光學遙感技術的應用。遙感圖像信源數據量增大,而傳輸帶寬不變,這就需要增大對信源的壓縮倍數。然而對于現有的圖像有損壓縮算法來講,隨著圖像壓縮比的增大,圖像的質量會急劇下降。所以直接利用現有的圖像壓縮方法不能很好的解決這個矛盾。地球上平均有1/3~1/2的地區覆蓋著云層。大部分遙感圖像中含有一定的云。對非氣象類遙感衛星而言,由于云的遮擋,這部分幾乎不具備任何可用信息或可用信息較少,但占用了有限的星上存儲空間與星地傳輸帶寬。在壓縮過程中充分考慮并合理設計云剔除策略,減少甚至消除云無效區域的編碼消耗,可以提高壓縮性能,緩解數傳帶寬壓力。
對于包含無效區域的圖像的壓縮問題,處理策略主要分成3大類。第1類是基于預處理的填充方法,在壓縮之前按照有利于壓縮的方式填充圖像中的無效區域,不改變后續的壓縮算法。這類填充方法復雜度低,而且輸出碼流遵循原壓縮標準。無效區域的填充值的選取對于壓縮性能有很大影響,填充值的計算主要有Phagocyte[4]和ADR[5]兩種方法。Phagecyte利用指定區域窗口內像素的算數平均迭代填充無效區域,算法簡單,在一定程度上提到了壓縮性能,并成功應用于商業GIS產品中,但最終的無效區域并非單一的灰度值,無效區域的壓縮編碼仍消耗較高。由Jorge Gonalez Conejero等人提出的ADR方法利用計算出的某個單一值填充整個無效區域,降低了無效區域的壓縮編碼消耗,但該方法以整個有效數據區域像素的算數平均作為平均值,這個值并不能精確反映填充部分的邊緣信息,所以在小波變化后,填充的邊緣部分會產生較多的高頻信息,壓縮編碼消耗較高。第2類是基于感興趣區域(Region Of Interest,ROI)的方法,此類方法通常應用于基于小波變換的圖像壓縮算法中,在小波變換之后通過提升感興趣區域的位平面達到優先編碼的目的,如JPEG2000 part1中的MaxShift方法[6-8]。在輸出碼率不變的情況下,可以有效提高感興趣區域的壓縮性能。由于提升后的感興趣區域(可以看作有效區域)邊緣處的小波系數在恢復時丟失了一部分信息,所以會造成解壓縮后有效區域邊緣區域的圖像質量較差。第3類是針對此類問題設計專用的壓縮算法。這類算法大多是通過改進主流壓縮算法流程中的某些環節,達到降低無效區域編碼消耗的目的。文獻[9]改進SPIHT算法,采用集合劃分策略,在編碼階段直接丟棄無效區域信息。文獻[10]改進EBCOT編碼方法,改進后算法可以編碼圖像內的任意區域。這類算法一般會在編碼過程中直接跳過無效區域,這樣無效區域的編碼消耗幾乎為0,編碼性能較高。但此類算法都是通用壓縮方法,并未針對遙感圖像壓縮設計,算法設計時并未考慮空間應用特殊性及在軌成像特點,而且復雜度較高。
針對遙感圖像壓縮,空間數據系統咨詢委員會(Consultative Committee for Space Data System, CCSDS)推出了基于小波變換的圖像壓縮標準CCSDS-122.0-B-1(又稱CCSDS-IDC)[11-13]。標準針對空間任務圖像采集特點及應用的特殊性,在現有壓縮方法的基礎上,綜合考慮算法的壓縮性能與算法復雜度,具有復雜度較低、壓縮性能較高、功能全面、性能優異、實用性強等特點。所以本文在CCSDS-IDC標準基礎上,針對含云圖像壓縮問題,提出了形狀自適應CCSDS-IDC算法,改進后,含云遙感圖像壓縮性能得到了較大提高。
CCSDS-IDC壓縮算法模型與傳統基于DWT的壓縮算法類似,如圖1所示,其壓縮性能與當前效果最好的JPEG2000方法相當。主要包含離散小波變換(DWT)和比特平面編碼(BPE)兩個部分。離散小波變換將圖像變換到小波域,去除圖像像素間的相關性,比特平面編碼根據重要程度掃描和編碼小波系數。
9/7浮點DWT的兩組濾波器系數為:
{h-4,h-3,h-2,h-1,h0,h1,h2,h3,h4}
{g-3,g-2,g-1,g0,g1,g2,g3}
系數如表1所示。變換公式為:
(1)
(2)
式中:j=1,2…,N,Cj和Dj分別為第j個低頻和高頻系數。

表1 CCSDS-IDC小波變換系數
與此對應的小波反變換公式為:
(3)
(4)
式中:q和p分別為綜合濾波器低通和高通系數。
CCSDS-IDC算法的小波變換為3級,由于小波系數的對稱性,二維小波變換可以按照行、列分別進行。變換后,圖像的低頻子帶包含了圖像的大部分信息。編碼時為低頻子帶和高頻子帶間分配不同比例的碼字,起到壓縮的效果。3級二維變換示意如圖2所示。
位平面編碼將低頻子帶和各高頻子帶中對應的64個系數組成一組,即一個塊。如圖3所示,包含1個直流系數(DC),63個交流系數(AC)(3個父系數、12個兒子系數和48個孫子系數)。
CCSDS-IDC標準中,BPE編碼包含DC編碼和AC編碼兩部分。DC編碼采用CCSDS-RICE算法進行;AC是BPE編碼的核心所在,按照比特平面的重要程度,掃描編碼一個塊中的63個交流小波系數。
掃描編碼過程中,BPE共包含Stage0~Stage4的5個階段。Stage0對直流系數進行RICE編碼,Stage1按比特平面掃描編碼3個父系數,Stage2按比特平面掃描編碼12個子系數,Stage3按比特平面掃描編碼48個孫子系數,Stage4掃描量化編碼比特平面中的非重要系數。編碼順序示意如圖4所示。
CCSDS-IDC算法未給出針對無效區域的編碼方法。本文為了提高包含無效區域(云區域)遙感圖像的壓縮性能,對CCSDS-IDC的DWT和BPE進行改進,提出形狀自適應CCSDS-IDC(SA-CCSDS-IDC)方法來盡量減少無效區域壓縮成本。改進后得到的SA-CCSDS-IDC算法流程示意如圖5所示。首先根據掩膜圖像信息對原始圖像中有效區域像素進行3級形狀自適應小波變換(Shape Adaptive Discrete Wavelet Transform, SA-DWT),為了標識小波變換后有效區域內各個小波系數的位置信息,對掩膜圖像進行Lazy小波變換,并用變換后的結果指導形狀自適應位平面編碼(Shape Adaptive Bit Plane Encoding,SA-BPE),在掃描和編碼過程直接跳過無效區域。為了解碼時正確恢復各個像素之間的位置關系,對二值的掩膜圖像利用鏈碼進行形狀編碼,并將編碼后的結果與SA-BPE有效區域編碼信息融合到一起,最終形成壓縮碼流并輸出。圖像解壓縮過程中,首先通過解碼形狀信息恢復云掩膜,然后根據掩膜解碼比特平面信息,將結果進行形狀自適應小波反變換,最終恢復出原始圖像的有效區域部分。
經過云剔除后的遙感圖像中的有效區域不再是規則的矩形,為提高壓縮性能,利用形狀自適應小波變換,在小波變換階段直接跳過無效的云區域像素點。SA-DWT的基本思想是:進行一維小波變換時,利用云掩膜信息,對圖像一行中連續的任意長度像素段進行小波變換,變換時,主要考慮以下兩個問題:1)經過SA-DWT后的小波系數個數不能增加,應該與原有有效區域的像素個數相同。2)SA-DWT應該保留原始DWT中影響編碼性能的一些特性,如空間相關性,變換的局部特性及子帶間的自相似性等。相比傳統DWT,SA-DWT主要包含兩個特性:邊緣擴展和采樣策略。
(1)邊緣擴展
(9,7)小波是一種奇對稱雙正交小波,在進行變換時,為保證無損重建,圖像的邊緣處可采用鏡像擴展方式,如圖6所示。當連續的像素段比較短時,擴展時開始像素與結尾像素會相互影響,需要從開始像素到結束像素遞歸交替地擴展邊緣處的像素點。所以邊界擴展更為復雜,需要特殊處理。圖7給了當連續像素段的長度為2時的擴展實例。
(2)下采樣策略
對任意長度的像素段進行小波變換后,產生低通和高通兩個子帶系數。不同的采樣系數方式,會產生不同的效果。SA-DWT的采樣方式主要有兩種:局部下采樣和全局下采樣,如圖8所示。對于局部下采樣來講,同一行中的每一個單獨的連續像素段,從起始像素開始進行偶采樣或奇采樣,而對于全局下采樣, 總是從當前行的由于連續像素段的長起始像素開始進行采樣。度是不固定的,有可能是奇數,也有可能是偶數。當長度為奇數時,如果進行全局下采樣, 有可能造成高通系數比低通系數多,這樣更多小波系數信息位于高頻系數中,這非常不利于壓縮編碼,但這種方式可以保持小波系數間的相位關系不變。根據文獻[14],利用局部下采樣策略可以得到更優的編碼壓縮性能。故本文為提高剔除云后的有效區域的壓縮性能,采用局部下采樣策略。
除了對DWT進行形狀自適應的改進外,BPE階段同樣需要改進。在編碼過程中,改進后的SA-BPE直接跳過無效區域的小波系數,可以大大提高編碼的效率。CCSDS-IDC編碼過程中,將DWT后的小波系數按照子帶分成多個塊,并在各個塊之間進行獨立掃描和處理。改進后的BPE,跳過無效區域,直接編碼有效區域,如圖9所示。
原CCSDS-IDC算法對位平面掃描后得到掃描字和轉義字,這些掃描結果和小波系數位置關系有關,而且長度是固定的(3 bit或者4 bit)。但是經過SA-DWT后,高頻系數個數不再和低頻系數個數相同,這樣每個家族塊中的小波系數有可能缺失。本文SA-BPE在塊內掃描時,對缺失的小波填充0來處理。在對這些掃描結果進行熵編碼時,由于熵編碼本身算法復雜度較高,CCSDS為折中算法復雜度和算法壓縮性能,統計了大量遙感圖像的位平面掃描數據,依據統計編碼結果給出了固定的編碼表,及利用查找編碼表代替熵編碼計算進行掃描結果的編碼,大大降低了算法復雜度。但本文SA-BPE掃描過程中,人為地在缺失像素的位置添加了0,使掃描結果的統計特性發成了變化,這樣原CCSDS-IDC的編碼表不在是統計上最優的。所以本文對123幅含云遙感圖像的SA-BPE的掃描結果進行統計,利用Huffman編碼重新設計了轉義字及掃描字的編碼查找表。
對于SA-CCSDS-IDC算法,經過云檢測后的地物區域的形狀往往是不規則的,需要在編碼過程中編碼地物區域邊緣所圍成的區域形狀信息。輪廓像素編碼后,就可以在解碼時定位該區域,精確恢復地物的形狀信息。
鏈碼是一種簡單有效的輪廓信息編碼方法[15]。鏈碼的編碼流程如下:以輪廓上的任意一點(x,y)為起點開始掃描編碼,將相鄰輪廓點的相對位置關系用0~7的8個數字,每種位置關系用3比特表示,分別是000~111,如圖10所示。然后順序掃描編碼其他輪廓點。這種編碼輪廓的方法可以精確的表示輪廓,并起到壓縮的作用。若需要進一步提高壓縮性能,可以首先將輪廓進行修正,增加拐點位置的輪廓像素,使輪廓的8鄰域轉化成4鄰域,這樣位置關系就可以用2比特表示。這在一定程度上造成了原輪廓的失真。本文結合以上兩種方式,采用一個改進的鏈碼來編碼輪廓信息。相鄰的3個輪廓點之間有一定的約束關系,已知前2個輪廓點,第3個輪廓點的可能鄰域信息只有4個不同的鏈碼。這樣就可以在保證無失真的編碼輪廓的同時,只采用2比特來編碼圖像邊緣輪廓。
目前高分辨率光學遙感衛星的主要成像載荷是推掃式被動光學傳感器,探測器陣列橫向排列于光學焦平面上即垂直于衛星運動方向,在衛星完成向前飛行的過程中縱向對地面掃描,從而得到地面目標的一個二維條帶狀圖像,在軌壓縮處理也是按照條帶完成的。以當前在軌商業光學遙感衛星QuickBird及OrbView遙感全色圖像為基礎,通過插值、采樣等變換后,得到條帶狀的模擬測試圖像。圖像測試集包括不同場景、不同云量的共計123張測試圖。圖11列出了部分典型測試圖像的原圖及其云區域掩膜圖像,包括Cloud_1、Cloud_2、Cloud_3、Cloud_4及Cloud_5,其中云區域掩膜中黑色代表地物區域,白色代表云無效區域。表2給出了部分測試集中圖像的一些參數,包括圖像分辨率、無效區域占比、灰度均值、灰度方差。灰度方差在一定程度上可以反應圖像的復雜程度,灰度方差越大,圖像場景越復雜。
利用以上測試圖像集,測試和比較了本文給出的針對含云遙感圖像壓縮的SA-CCSDS-IDC方法相比未經云剔除的原始CCSDS-IDC算法、JPEG2000算法和經過ADR填充后的CCSDS-IDC算法的壓縮性能,表3~表7給出了Cloud_1 ~ Cloud_5典型測試圖像的壓縮性能測試結果。

表2 典型測試圖像參數

表3 典型測試圖像參數Cloud_1不同方案不同壓縮倍數下的壓縮性能PSNR
通過對比分析以上結果,可以得出以下結論:
1)在所有壓縮倍數下,本文SA-CCSDS-IDC方法相比未經云剔除處理的CCSDS-IDC、JPEG2000方法及經過ADR填充后的CCSDS-IDC方法解壓后的圖像質量均有提高。對于Cloud_1圖像,在壓縮倍數為4、8、16、32、64、128、256下,相比原始CCSDS-IDC算法,解壓縮后圖像PSNR分別提高了5.87 dB、5.88 dB、4.16 dB、3.50 dB、2.73 dB、2.75 dB、2.50 dB,圖像壓縮性能得到了很大的提升。
2)在壓縮質量相當的情況下,SA-CCSDS-IDC方法可以在一定程度上提高圖像的壓縮倍數。對于Cloud_2圖像,JPEG2000在壓縮32倍時的PSNR為38.81 dB,而SA-CCSDS-IDC方法在壓縮64倍時的PSNR為39.40 dB,這說明圖像質量相當的情況下,壓縮倍數可以極大地提高,圖像壓縮后的數據量為之前的1/2。經過整個圖像測試集進行測算,在圖像質量固定的條件下,對于地物探測場景,壓縮比平均提高75%,數傳數據量減少42%(云占比平均43%),可以有效減輕數傳帶寬壓力。衛星每軌下行數傳總量固定,隨著數據量的減小,單軌成像時間延長75%,衛星將可獲得更多有價值數據,有效提升遙感衛星工作效能。

表4 典型測試圖像參數Cloud_2不同方案不同壓縮倍數下的壓縮性能PSNR

表5 典型測試圖像參數Cloud_3不同方案不同壓縮倍數下的壓縮性能PSNR
3)隨著壓縮倍數的提高,本文SA-CCSDS-IDC算法圖像壓縮性能的提高程度呈下降趨勢。

表6 典型測試圖像參數Cloud_4不同方案不同壓縮倍數下的壓縮性能PSNR

表7 典型測試圖像參數Cloud_5不同方案不同壓縮倍數下的壓縮性能PSNR
圖12給出了不同測試圖像組(不同顏色曲線)在不同碼率下的本文方法的PSNR提升情況,可以看出,在較低碼速率下,本文算法在壓縮性能上并不能獲得較大的提高。另外,Cloud_1到Cloud_5這5幅測試圖像的云區域占比是逐漸下降的。通過下圖可以看出,云區域占比的越大,在各個不同壓縮倍數情況下,本文SA-CCSDS-IDC算法的壓縮性能提升程度越大,即壓縮性能提升程度與云區域占比正相關。另外,圖像場景越復雜,本文改進方法性能提升程度越高,由于Cloud_4圖像灰度方差較大,場景復雜,所以經過云剔除處理后壓縮性能提高更多,與Cloud_3接近。
為進一步說明本文兩種改進算法對于壓縮后圖像質量的提升情況,圖13給出了Cloud_2圖像壓縮倍數為4和64情況下,CCSDS-IDC算法、經過ADR填充的CCSDS-IDC算法與本文SA-CCSDS-IDC算法解壓后圖像細節展示??梢钥闯觯趬嚎s4倍的情況下,由于3種方法的PSNR均比較高,主觀視覺上并沒有明顯的區別;在壓縮64倍的情況,CCSDS-IDC的細節丟失明顯,ADR+CCSDS-IDC次之,本文方法圖像質量最高,保留了原圖像中的大部分細節。
遙感圖像中含有大量的云無效區域,占用了大量的數傳帶寬。在壓縮過程中剔除云無效區域,可以進一步提高壓縮性能。本文在CCSDS-IDC算法基礎上,針對云剔除后的遙感圖像形狀不固定的特點,改進了小波變換和位平面編碼,使其能夠根據云掩膜圖像自適應地壓縮編碼圖像中的有效區域。利用圖像測試集,對方法進行了比較分析,試驗結果表明,本文SA-CCSDS-IDC方法壓縮性能明顯優于原CCSDS-IDC方法,適用于含云遙感圖像在軌壓縮應用。下一步擬對算法進行硬件FPGA實現,并在實際空間任務中得到應用。