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