Changes between Initial Version and Version 1 of FDORfc65


Ignore:
Timestamp:
Oct 12, 2012, 12:53:02 PM (12 years ago)
Author:
trevorwekel
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • FDORfc65

    v1 v1  
     1= FDO RFC 62 - Implement Resampling for GDAL Provider =
     2
     3This page contains a request for comments document (RFC) for the FDO Open Source project. 
     4More FDO RFCs can be found on the [wiki:FDORfcs RFCs] page.
     5
     6== Status ==
     7 
     8||RFC Template Version||(1.1)|| 
     9||Submission Date||(Oct 12, 2012)||
     10||Last Modified||(Trevor Wekel - Oct 12, 2012)||
     11||Author||(Trevor Wekel)||
     12||RFC Status||(draft)||
     13||Implementation Status||(In progress)||
     14||Proposed Milestone||(3.8)||
     15||Assigned PSC guide(s)||||
     16||'''Voting History'''||(vote date)||
     17||+1||||
     18||+0||||
     19||-0||||
     20||-1||||
     21 
     22== Overview ==
     23
     24This proposal adds GDAL resampling support using a layered approach over the existing GDAL Provider.  This maintains nearly identical behaviour with the current provider implementation if resampling is not turned on while still providing access to GDAL library resampling capabilities for cases where it is useful.
     25
     26== Motivation ==
     27
     28The GDAL Provider defaults to nearest neighbour resampling.  This resampling method is problematic for imagery with embedded symbology or text.
     29
     30== Proposed Solution ==
     31
     32A new class FdoRfpStreamReaderByTileResample is introduced to implement resampling behaviour.  It maintains a member instance of the existing FdoRfpStreamReaderByTile to perform the reading and resampling from the GDAL library.  The member reader samples at 2x the required pixel density.  This data is then downsampled to the required pixel density using one of resampling methods supported by GDAL warp:
     33 * Bilinear - Bilinear resampling
     34 * Cubic - Cubic resampling
     35 * CubicSpline - Cubic spline resampling
     36 * Lanczos - Lanczos windowed sinc resampling
     37
     38The resampling method is specified by a new "ResamplingMethod" parameter in the connection string for the provider.
     39{{{
     40m_connection->SetConnectionString(L"DefaultRasterFileLocation=../../TestData/pci_eg/acea.tif;ResamplingMethod=bilinear");
     41}}}
     42
     43The internal reader uses a memory buffer to supply the GDAL warp operation with data.  This eliminates any performance issues caused by writing temporary data to disk.
     44
     45The FdoRfpStreamReaderByTileResample reader automatically upgrades all bit depths and color to 32 bit RGBA.  A 32 bit color space is generally required to accurately display the blended pixels resulting from the resampling.
     46
     47== Implications ==
     48
     49Current performance of the provider is unaffected when using the default nearest neighbour behaviour.  Performance will be slower when any of the resampling methods is employed.  Requesting 30+ megapixel views (5600x5600 pix) could lead to out of memory conditions on a 32 bit platform.
     50
     51== Test Plan ==
     52
     53A single unit test will be created to validate that the resampling is functioning and generating 32bit RGBA imagery.
     54
     55== !Funding/Resources ==
     56
     57OTX Systems is developing this feature with support from Linknode.