
摘 要:隨著我國“高分專項”系統的進一步推進,高分辨率對地觀測系統得到廣泛應用,影像分辨率逐步提高,而影像大小隨之增大,數據壓縮技術亟需改進。文章基于開源影像處理庫GDAL中自帶函數進行開發實現,為對比分析其不同影像壓縮方法提高效率。
關鍵詞:GDAL;影像壓縮;開源GIS
隨著航空航天遙感技術快速發展,衛星傳感器空間分辨率逐步提高,遙感應用研究逐漸普及,獲取的影像數據量也呈幾何級數地增大[1]。目前高清遙感影像被廣泛應用于基礎地理信息數據生產、第三次國土調查等測繪地理信息項目[2-3],因此,發展高效的遙感影像圖像壓縮技術,成為遙感圖像處理亟待解決的重要課題,并將對我國高分辨率衛星遙感觀測技術的發展起到決定性的作用。
本文采用開源遙感影像處理庫GDAL對測繪地理信息生產使用的遙感數據進行壓縮處理,并從多方面比較不同壓縮方法的壓縮效率,分析并總結最為高效的影像壓縮處理方法,為測繪地理信息生產提供最優的影像壓縮方案。
1 ? ?GDAL影像壓縮相關技術介紹
1.1 ?GDAL開源庫介紹
Geospatial Data Abstraction Library(GDAL)是使用C/C++語言編寫的用于讀寫空間數據的一套跨平臺開源庫,它支持幾乎所有常見的通用圖像文件格式和遙感與地理信息系統(Geographic Information System,GIS)專用圖像文件格式,也支持幾乎所有常見的投影方式[4]。現有的大部分GIS或者遙感平臺,不論是商業軟件ArcGIS,ENVI,還是開源軟件GRASS,QGIS,都使用了GDAL作為底層構建庫。目前最新的GDAL版本為3.0.4,其支持超過200種柵格數據格式,是為當前最流行的遙感影像處理庫,被廣泛用于GIS與遙感影像處理中。
1.2 ?GDAL數據集
在GDAL模型里面,有3個重要的概念:數據集、柵格波段與顏色表。數據集(Dataset,由GDAL:Dataset類表示)是相關的柵格波段和一些相關信息的集合,表示一個柵格數據(使用抽象類GDALDataset表示),一個dataset包含了對于柵格數據的波段、空間參考以及元數據等信息。數據集本身也包括元數據,也就是以字符串形式表示的一個名字與值的清單。
1.3 ?GDALDriver類
GDAL為每種格式提供了一個文件格式驅動類GDALDriver,它對每種對應的格式進行管理(讀取、創建、刪除、重命名、復制、從已有數據創建數據集等)。
2 ? ?軟件實現與分析
2.1 ?代碼實現
GDAL支持的創建數據集有兩種方式,其中一種為Create()方法,另一種用CreateCopy()方法。所有支持創建新文件的驅動都支持CreateCopy方法,但只有少數支持Create方法。本文主要利用GDALDriver::CreateCopye()這個函數,通過創建復制新遙感影像過程實現對影像的壓縮處理,核心代碼如下:
(1)指明需要壓縮的遙感影像文件以及壓縮后影像的保存路徑。
gdal.AllRegister() //要讀取某種類型的數據,必須要先載入數據驅動,也就是初始化一個對象,讓它“知道”某種數據結構。
const char* pszSrcFileName = "C:\\...\\processGFimage.img";
const char* pszDstFileName = "C:\\....\\resultGFimage.img";
GDALDataset *poSrcDS = (GDALDataset *) GDALOpen( pszSrcFileName, GA_ReadOnly );
(2)當需要傳入更多的參數(建立金字塔和壓縮方法等)可以進行設置,如下:
char **papszOptions = NULL;
papszOptions = CSLSetNameValue( papszOptions, "TILED", "YES" ); //建立金字塔
papszOptions = CSLSetNameValue( papszOptions, "COMPRESS" ,"PACKBITS" ); ?//設置遙感影像壓縮方法
poDstDS = poDriver->CreateCopy( pszDstFileName, poSrcDS, FALSE, papszOptions, GDALTermProgress, NULL);
2.2 ?壓縮效率分析
為對比分析GDAL影像處理庫中不同影像壓縮方法的效率,本文選取某一區縣不同大小的高清遙感影像、RGB柵格TIFF格式影像,像素大小為10 m,投影坐標系為:CSGS200。本文僅對GDAL自帶的壓縮方(LZW/JPEG/DEFLATE/ZSTD/ WEBP/ LERC/LERC_DEFLATE/LERC_ZSTD)進行測試,主要在硬件相同情況下從壓縮率和壓縮耗時等方面進行評定(見表1)。
根據測試結果可以看出,GDAL自帶的8種壓縮方法對TIFF格式效果各有優勢,影像較小時,LZW壓縮耗時最短,但壓縮比最小;ZSTD壓縮比最大,但耗時較長;而DEFLATE兩項參數均在中等水平。但當影像較大時,LZW壓縮耗時比其他兩種壓縮方法優勢明顯,且壓縮比也較好;而ZSTD壓縮方法的壓縮比和耗時都有所衰減,且優勢不再明顯。
3 ? ?結語
GDAL是當前最為流行的開源遙感影像處理庫,其自帶的影像壓縮方法均為主流的、常用的壓縮方法,在保證影像紋理、色彩等質量前提下,能很好地降低遙感影像的存儲大小,從而實現減少影像存儲空間占用、提高影像傳輸和使用效率等目標。在實際生產中,可以根據自身條件和使用目的選擇合適的壓縮手段。結合GDAL自帶的影像壓縮方法各自特點以及影像壓縮的效率和質量等因素,給出以下兩點使用建議:
(1)壓縮1 GB以下影像時,GDAL自帶的LZW和ZSTD表現較為突出,分別在耗時和壓縮比方面存在優勢;
(2)壓縮較大影像時,LZW壓縮方法在壓縮效率上表現較好,特別是耗時方面優勢明顯,而其他壓縮方法均不突出。
[參考文獻]
[1]吳洪濤,張秀.ECW、MrSID、eYaImage三種壓縮技術對比與分析[J].城市勘測,2013(3):127-132.
[2]孫禧勇,苗菁,王錦,等.高分遙感影像在第三次全國國土調查中的應用潛力評價—以重慶市為例[J].河南科學,2018(11):98-108.
[3]王忠武,劉順喜,尤淑撐.影像壓縮技術在土地遙感中的應用潛力分析[J].河北師范大學學報(自然科學版),2012(36):639-642.
[4]GDAL官方網站.GDAL[EB/OL].(2020-04-15)[2020-05-20].https://gdal.org/api/index.html.
作者簡介:陳瑤(1987— ),女,浙江永康人,助理工程師,學士;研究方向:攝影測量與遙感,地理信息系統工程,互聯網地圖服務,測繪信息化。