GDAL庫三個讀取Jpeg2000格式驅動測試

0、目的

GDAL庫中提供了四五種讀取Jpeg2000的驅動,但是各個驅動讀取數據的效率各不相同,下面就針對三種讀取jpeg2000的效率進行測試。
GDAL庫中提供的讀取Jpeg2000的驅動有下面六個,具體的說明請移步GDAL官網查看。地址爲:http://www.gdal.org/formats_list.html

  1. JPEG2000 — Implementation of the JPEG-2000 part 1
  2. JP2ECW – ERDAS JPEG2000 (.jp2)
  3. JP2KAK – JPEG-2000 (based on Kakadu)
  4. JP2OpenJPEG — JPEG2000 driver based on OpenJPEG library
  5. JPIPKAK - JPIP Streaming
    以上的所有的庫默認編譯都是沒有的,都需要第三方庫的支持,由於我只找到了1、2、4,所以就對這三種的讀取效率進行測試。

1、 測試方式

使用一個全球1km的DEM數據(globaldem2.jp2)進行測試,經過Jpeg2000壓縮後的大小爲52MB。使用的測試工具爲gdalinfo,爲了能夠體現數據讀取的效率,添加了-checksum來計算圖像的檢驗碼,並且爲了防止顯示的內容過多而禁止輸出元數據和柵格屬性表內容。在測試的過程中,需要將另外的驅動進行禁用,這裏使用CPL_SKIP進行設置。具體代碼如下,同時爲了能夠顯示處理時間,增加了輸出時間的命令:

echo  %date% %time%
gdalinfo.exe -checksum -nomd -norat globaldem2.jp2 --config CPL_SKIP "JP2ECW JP2OpenJPEG"
echo  %date% %time%

2、測試步驟

2.1、檢查驅動

使用gdalinfo.exe –formats輸出支持的驅動,檢查是否能夠正常加載上述三種驅動。輸出的內容如下,爲了便於查找,我在三種Jpeg2000的驅動結尾加了****進行標識。

F:\RsSrcDir\binX64>gdalinfo.exe --formats
Supported Formats:
  ECW (rov): ERDAS Compressed Wavelets (SDK 4.2)
  JP2ECW (rov): ERDAS JPEG2000 (SDK 4.2) ******
  HDF4 (ros): Hierarchical Data Format Release 4
  HDF4Image (rw+): HDF4 Dataset
  HDF5 (ros): Hierarchical Data Format Release 5
  HDF5Image (ro): HDF5 Dataset
  MG4Lidar (ro): MrSID Generation 4 / Lidar (.sid)
  MrSID (rov): Multi-resolution Seamless Image Database (MrSID)
  JP2MrSID (rov): MrSID JPEG2000
  netCDF (rw+s): Network Common Data Format
  GMT (rw): GMT NetCDF Grid Format
  VRT (rw+v): Virtual Raster
  GTiff (rw+vs): GeoTIFF
  NITF (rw+vs): National Imagery Transmission Format
  RPFTOC (rovs): Raster Product Format TOC format
  ECRGTOC (rovs): ECRG TOC format
  HFA (rw+v): Erdas Imagine Images (.img)
  SAR_CEOS (rov): CEOS SAR Image
  CEOS (rov): CEOS Image
  JAXAPALSAR (rov): JAXA PALSAR Product Reader (Level 1.1/1.5)
  GFF (rov): Ground-based SAR Applications Testbed File Format (.gff)
  ELAS (rw+v): ELAS
  AIG (rov): Arc/Info Binary Grid
  AAIGrid (rwv): Arc/Info ASCII Grid
  GRASSASCIIGrid (rov): GRASS ASCII Grid
  SDTS (rov): SDTS Raster
  DTED (rwv): DTED Elevation Raster
  PNG (rwv): Portable Network Graphics
  JPEG (rwv): JPEG JFIF
  MEM (rw+): In Memory Raster
  JDEM (rov): Japanese DEM (.mem)
  GIF (rwv): Graphics Interchange Format (.gif)
  BIGGIF (rov): Graphics Interchange Format (.gif)
  ESAT (rov): Envisat Image Format
  FITS (rw+): Flexible Image Transport System
  BSB (rov): Maptech BSB Nautical Charts
  XPM (rwv): X11 PixMap Format
  BMP (rw+v): MS Windows Device Independent Bitmap
  DIMAP (rov): SPOT DIMAP
  AirSAR (ro): AirSAR Polarimetric Image
  RS2 (ros): RadarSat 2 XML Product
  PCIDSK (rw+v): PCIDSK Database File
  PCRaster (rw): PCRaster Raster File
  ILWIS (rw+v): ILWIS Raster Map
  SGI (rw+): SGI Image File Format 1.0
  SRTMHGT (rwv): SRTMHGT File Format
  Leveller (rw+): Leveller heightfield
  Terragen (rw+): Terragen heightfield
  ISIS3 (rov): USGS Astrogeology ISIS cube (Version 3)
  ISIS2 (rw+v): USGS Astrogeology ISIS cube (Version 2)
  PDS (rov): NASA Planetary Data System
  TIL (rov): EarthWatch .TIL
  ERS (rw+v): ERMapper .ers Labelled
  JP2OpenJPEG (rwv): JPEG-2000 driver based on OpenJPEG library******
  L1B (rovs): NOAA Polar Orbiter Level 1b Data Set
  FIT (rwv): FIT Image
  GRIB (rov): GRIdded Binary (.grb)
  JPEG2000 (rwv): JPEG-2000 part 1 (ISO/IEC 15444-1)******
  RMF (rw+v): Raster Matrix Format
  WCS (rovs): OGC Web Coverage Service
  WMS (rwvs): OGC Web Map Service
  MSGN (ro): EUMETSAT Archive native (.nat)
  RST (rw+v): Idrisi Raster A.1
  INGR (rw+v): Intergraph Raster
  GSAG (rwv): Golden Software ASCII Grid (.grd)
  GSBG (rw+v): Golden Software Binary Grid (.grd)
  GS7BG (rw+v): Golden Software 7 Binary Grid (.grd)
  COSAR (ro): COSAR Annotated Binary Matrix (TerraSAR-X)
  TSX (rov): TerraSAR-X Product
  COASP (ro): DRDC COASP SAR Processor Raster
  R (rwv): R Object Data Store
  MAP (rov): OziExplorer .MAP
  PNM (rw+v): Portable Pixmap Format (netpbm)
  DOQ1 (rov): USGS DOQ (Old Style)
  DOQ2 (rov): USGS DOQ (New Style)
  ENVI (rw+v): ENVI .hdr Labelled
  EHdr (rw+v): ESRI .hdr Labelled
  GenBin (rov): Generic Binary (.hdr Labelled)
  PAux (rw+): PCI .aux Labelled
  MFF (rw+): Vexcel MFF Raster
  MFF2 (rw+): Vexcel MFF2 (HKV) Raster
  FujiBAS (ro): Fuji BAS Scanner Image
  GSC (rov): GSC Geogrid
  FAST (rov): EOSAT FAST Format
  BT (rw+v): VTP .bt (Binary Terrain) 1.3 Format
  LAN (rw+v): Erdas .LAN/.GIS
  CPG (ro): Convair PolGASP
  IDA (rw+): Image Data and Analysis
  NDF (rov): NLAPS Data Format
  EIR (rov): Erdas Imagine Raw
  DIPEx (rov): DIPEx
  LCP (rwv): FARSITE v.4 Landscape File (.lcp)
  GTX (rw+v): NOAA Vertical Datum .GTX
  LOSLAS (rov): NADCON .los/.las Datum Grid Shift
  NTv2 (rw+vs): NTv2 Datum Grid Shift
  CTable2 (rw+v): CTable2 Datum Grid Shift
  ACE2 (rov): ACE2
  SNODAS (rov): Snow Data Assimilation System
  KRO (rw+v): KOLOR Raw
  ARG (rwv): Azavea Raster Grid format
  RIK (ro): Swedish Grid RIK (.rik)
  USGSDEM (rwv): USGS Optional ASCII DEM (and CDED)
  GXF (ro): GeoSoft Grid Exchange Format
  HTTP (ro): HTTP Fetching Wrapper
  NWT_GRD (rov): Northwood Numeric Grid Format .grd/.tab
  NWT_GRC (rov): Northwood Classified Grid Format .grc/.tab
  ADRG (rw+vs): ARC Digitized Raster Graphics
  SRP (rovs): Standard Raster Product (ASRP/USRP)
  BLX (rw): Magellan topo (.blx)
  Rasterlite (rws): Rasterlite
  SAGA (rw+v): SAGA GIS Binary Grid (.sdat)
  KMLSUPEROVERLAY (rwv): Kml Super Overlay
  XYZ (rwv): ASCII Gridded XYZ
  HF2 (rwv): HF2/HFZ heightfield raster
  PDF (rw): Geospatial PDF
  OZI (rov): OziExplorer Image File
  CTG (rov): USGS LULC Composite Theme Grid
  E00GRID (rov): Arc/Info Export E00 GRID
  ZMap (rwv): ZMap Plus Grid
  NGSGEOID (rov): NOAA NGS Geoid Height Grids
  MBTiles (rov): MBTiles
  21At MBTiles (rov): 21At MBTiles
  IRIS (rov): IRIS data (.PPI, .CAPPi etc)
  WMTS (rwv): OGC Web Mab Tile Service
  CNSDTF (rwv): China Geospatial Data Transfer Grid Format (.grd)
  LANDSAT (rov): LANDSAT 7/8 GeoTiff with Metadata

2.2、測試JPEG2000 — Implementation of the JPEG-2000 part 1

使用上面的代碼,需要先將另外兩種驅動禁用,整個批處理的代碼如下:

echo  %date% %time%
gdalinfo.exe -checksum -nomd -norat globaldem2.jp2 --config CPL_SKIP "JP2ECW JP2OpenJPEG"
echo  %date% %time%

處理截圖如圖1所示:
JPEG2000處理耗時

2.3、測試JP2ECW – ERDAS JPEG2000 (.jp2)

修改上面的代碼,禁用其他兩種驅動,整個批處理的代碼如下

echo  %date% %time%
gdalinfo.exe -checksum -nomd -norat globaldem2.jp2 --config CPL_SKIP "JPEG2000 JP2OpenJPEG"
echo  %date% %time%

處理截圖如圖2所示:
JP2ECW

2.4、測試JP2OpenJPEG — JPEG2000 driver based on OpenJPEG library

修改上面的代碼,禁用其他兩種驅動,整個批處理的代碼如下:

echo  %date% %time%
gdalinfo.exe -checksum -nomd -norat globaldem2.jp2 --config CPL_SKIP "JP2ECW JP2OpenJPEG"
echo  %date% %time%

處理截圖如圖3所示:
JP2OpenJPEG
通過上面的測試發現,上述三個驅動均可以讀取到圖像的大小,空間參考等信息,前兩種讀取成功,第三種讀取圖像像素值的時候失敗(今天在別的電腦測試可以讀取成功,耗時非常大,本來這篇博客想比較這個庫的處理速度的,結果在自己的電腦居然讀取失敗…………)。
還有一個就是ECW庫讀取的時候內存佔用很少,而另外兩個基本上內存有多少就佔用多少,我使用的64bit的系統,8GB內存,這兩個驅動處理的時候基本內存在5.5GB左右。

發佈了154 篇原創文章 · 獲贊 96 · 訪問量 125萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章