Changes between Version 69 and Version 70 of rfc24_progressive_data_support


Ignore:
Timestamp:
Apr 8, 2009, 4:57:49 PM (15 years ago)
Author:
normanb
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • rfc24_progressive_data_support

    v69 v70  
    6161[[Image(gdalsequence.PNG)]]
    6262
    63  1. GDALGetDatasetDriver
     631. GDALGetDatasetDriver
    6464
    65    Fetch the driver to which this dataset relates.
    66  1. Open
     65Fetch the driver to which this dataset relates.
    6766
    68    If the filename contained in the GDALOpenInfo object has a case insensitive URI scheme of jpip or jpips the JPIPKAKDataset is created and initialised, otherwise NULL is returned.
    69  1. Initialize
     672. Open
    7068
    71    Initialisation involves making an initial connection to the JPIP Server to establish a session and to retrieve the initial metadata about the image (ref. JPIP Sequence Diagram).[[BR]]
    72    If the connection fails, the function returns false and the Open function returns NULL indicating that opening the dataset with this driver failed.[[BR]]
    73    If the connection is successful, then subsequent requests to the JPIP server are made to retrieve all the available metadata about the image. Metadata items are set using the GDALMajorObject->SetMetadataItem in the "JPIP" domain.[[BR]]
    74    If the metadata returned from the server includes GeoJP2 UUID box, or a GMLJP2 XML box then this metadata is parsed and sets the geographic metadata of this dataset.
    75  1. GDALGetMetadata
     69If the filename contained in the GDALOpenInfo object has a case insensitive URI scheme of jpip or jpips the JPIPKAKDataset is created and initialised, otherwise NULL is returned.
    7670
    77    C API to JPIPKAKDataset->GetMetadata
    78  1. GetMetadata
     713. Initialize
     72
     73Initialisation involves making an initial connection to the JPIP Server to establish a session and to retrieve the initial metadata about the image (ref. JPIP Sequence Diagram).
     74
     75If the connection fails, the function returns false and the Open function returns NULL indicating that opening the dataset with this driver failed.
     76
     77If the connection is successful, then subsequent requests to the JPIP server are made to retrieve all the available metadata about the image. Metadata items are set using the GDALMajorObject->SetMetadataItem in the "JPIP" domain.
     78
     79If the metadata returned from the server includes GeoJP2 UUID box, or a GMLJP2 XML box then this metadata is parsed and sets the geographic metadata of this dataset.
     80
     814. GDALGetMetadata
     82
     83C API to JPIPKAKDataset->GetMetadata
     84
     855. GetMetadata
     86
    7987returns metadata for the "JPIP" domain, keys are "JPIP_NQUALITYLAYERS", "JPIP_NRESOLUTIONLEVELS", "JPIP_NCOMPS" and "JPIP_SPRECISION"
    80  1. GDALEndAsyncRasterIO
     88
     896. GDALEndAsyncRasterIO
     90
    8191If the asynchronous raster IO is active and not required, the C API calls JPIPKAKDataset->EndAsyncRasterIO
    82  1. EndAsyncRasterIO
     92
     937. EndAsyncRasterIO
     94
    8395The JPIPKAKAsyncRasterIO object is deleted
    84  1. delete
    85  1. GDALBeginAsyncRasterIO
     96
     978. delete
     98
     999. GDALBeginAsyncRasterIO
     100
    86101C API to JPIPKAKDataset->BeginAsyncRasterIO
    87  1. BeginAsyncRasterIO
     102
     10310. BeginAsyncRasterIO
     104
    88105The client has set the requested view window at 1:1 and have optionally set the discard level, quality layers and thread priority metadata items.
    89  1. Create
     106
     10711. Create
     108
    90109Creates a JPIPKAKAsyncRasterIO Object
    91  1. Start
     110
     11112. Start
     112
    92113Configures the kakadu machinery and starts a background thread (if not already running) to communicate to the server the current view window request. The background thread results in the kdu_cache object being updated until the JPIP server sends an "End Of Response" (EOR) message for the current view window request.
    93  1. GDALLockBuffer
     114
     11513. GDALLockBuffer
     116
    94117C API to LockBuffer
    95  1. LockBuffer
     118
     11914. LockBuffer
     120
    96121Not implemented in JPIPKAKAsyncRasterIO, a lock is acquired in JPIPKAKAsyncRasterIO->GetNextUpdatedRegion
    97  1. GDALGetNextUpdatedRegion
     122
     12315. GDALGetNextUpdatedRegion
     124
    98125C API to GetNextUpdatedRegion
    99  1. GetNextUpdatedRegion
     126
     12716. GetNextUpdatedRegion
     128
    100129The function decompresses the available data to generate an image (according to the dataset buffer type set in JPIPKAKDataset->BeginAsyncRasterIO) The window width, height (at the requested discard level) decompressed is returned in the region pointer and can be rendered by the client. The status of the rendering operation is one of GARIO_PENDING, GARIO_UPDATE, GARIO_ERROR, GARIO_COMPLETE from the GDALAsyncStatusType structure. GARIO_UPDATE, GARIO_PENDING require more reads of GetNextUpdatedRegion to get the full image data, this is the progressive rendering of JPIP. GARIO_COMPLETE indicates the window is complete.
    101130
     
    103132
    104133The region passed into this function is passed by reference, and the caller can read this region when the result returns to find the region that has been decompressed. The image data is packed into the buffer, e.g. RGB if the region requested has 3 components.
    105  1. GDALUnlockBuffer
     134
     13517. GDALUnlockBuffer
     136
    106137C Api to UnlockBuffer
    107  1. UnlockBuffer
     138
     13918. UnlockBuffer
     140
    108141Not implemented in JPIPKAKAsyncRasterIO, a lock is acquired in JPIPKAKAsyncRasterIO->GetNextUpdatedRegion
    109  1. Draw
     142
     14319. Draw
     144
    110145Client renders image data
    111  1. GDALLockBuffer
    112  1. LockBuffer
    113  1. GDALGetNextUpdatedRegion
    114  1. GetNextUpdatedRegion
    115  1. GDALUnlockBuffer
    116  1. UnlockBuffer
    117  1. Draw
     146
     14720. GDALLockBuffer
     148
     14921. LockBuffer
     150
     15122. GDALGetNextUpdatedRegion
     152
     15323. GetNextUpdatedRegion
     154
     15524. GDALUnlockBuffer
     156
     157# UnlockBuffer
     158
     159# Draw