Grok 20.3.2
CodeStreamDecompress.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2016-2026 Grok Image Compression Inc.
3 *
4 * This source code is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU Affero General Public License, version 3,
6 * as published by the Free Software Foundation.
7 *
8 * This source code is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Affero General Public License for more details.
12 *
13 * You should have received a copy of the GNU Affero General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 */
17
18#pragma once
19
20#include "ConcurrentQueue.h"
21#include "TFSingleton.h"
23#include <map>
24
25namespace grk
26{
27
35class CodeStreamDecompress final : public CodeStream, public IDecompressor
36{
37public:
42 explicit CodeStreamDecompress(IStream* stream);
43
48 {
50 decompressQueue_->close();
51 if(decompressConsumer_.joinable())
53 if(decompressWorker_.joinable())
54 decompressWorker_.join();
55 TFSingleton::get().wait_for_all();
56 }
57
58 void init(grk_decompress_parameters* param) override;
59
60 void setBandCallback(grk_io_band_callback callback, void* user_data) override;
62 {
63 return ioBandCallback_;
64 }
65 void* getBandUserData() const override
66 {
67 return ioBandUserData_;
68 }
69
70 grk_progression_state getProgressionState(uint16_t tile_index) override;
71
72 bool setProgressionState(grk_progression_state state) override;
73
79 ITileProcessor* getTileProcessor(uint16_t tile_index);
80
85 void initTilesToDecompress(Rect16 region);
86
87 void setNumComponents(uint16_t numComps);
88
93 bool initDefaultTCP();
94
95 bool readHeader(grk_header_info* header_info) override;
96
101 bool needsHeaderRead(void) const;
102
103 GrkImage* getImage(uint16_t tile_index, bool wait) override;
104
105 GrkImage* getImage(void) override;
106
108
115
116 bool decompress(grk_plugin_tile* tile) override;
117
118 bool decompressTile(uint16_t tile_index) override;
119
126 bool postProcess(GrkImage* img);
127
128 void dump(uint32_t flag, FILE* outputFileStream) override;
129
130 void wait(grk_wait_swath* swath) override;
131
132 void scheduleSwathCopy(const grk_wait_swath* swath, grk_swath_buffer* buf) override;
133
134 void waitSwathCopy() override;
135
141 void setPostPostProcess(std::function<bool(GrkImage*)> func);
142
143protected:
150 bool setDecompressRegion(RectD region);
151
157 bool decompressImpl(std::set<uint16_t> pendingTiles);
158
159 bool decompressTileImpl(uint16_t tile_index);
160
165 void dumpMainHeader(FILE* outputFileStream);
166
174 void dumpImageHeader(GrkImage* image, bool dev_dump_flag, FILE* outputFileStream);
175
183 void dumpTileHeader(TileCodingParams* defaultTile, uint32_t numcomps, FILE* outputFileStream);
184
192 void dumpImageComponentHeader(grk_image_comp* comp, bool dev_dump_flag, FILE* outputFileStream);
193
194private:
195 void postReadHeader(void);
196
197 void onRowCompleted(uint16_t tileIndexBegin);
198 void scheduleTileBatch();
199 static constexpr int32_t maxRowsAhead_ = 2;
200
201 void wait(uint16_t tile_index);
207
208 bool schedule(ITileProcessor* tileProcessor, bool multiTile);
209
215 bool sequentialParseAndSchedule(bool multiTile);
216
223 bool readUNK(void);
224
230 void differentialUpdate(GrkImage* scratch);
231
238 bool readCBD(uint8_t* headerData, uint16_t headerSize);
239
245 bool readHeaderProcedure(void);
249 bool readSOC();
256 bool readSIZ(uint8_t* headerData, uint16_t headerSize);
263 bool readCAP(uint8_t* headerData, uint16_t headerSize);
264
271 bool readCRG(uint8_t* headerData, uint16_t headerSize);
278 bool readTLM(uint8_t* headerData, uint16_t headerSize);
285 bool readPLM(uint8_t* headerData, uint16_t headerSize);
286
293 bool readPPM(uint8_t* headerData, uint16_t headerSize);
294
301 bool readSOT(uint8_t* headerData, uint16_t headerSize);
302
308 bool mergePpm(CodingParams* p_cp);
309
318 bool activateScratch(bool singleTile, GrkImage* scratch);
319
326 std::function<void()> postMultiTile(ITileProcessor* tileProcessor);
327 std::function<void()> postMultiTile(void);
328
329 std::function<void()> postSingleTile(ITileProcessor* tileProcessor);
330
331 std::function<bool()>
333 const std::shared_ptr<TPFetchSeq>& tilePartFetchSeq,
334 Rect32 unreducedImageBounds,
335 std::function<std::function<void()>(ITileProcessor*)> postGenerator);
336
337 void decompressSequential(const std::set<uint16_t>& pendingTiles);
338 void decompressTLM(const std::set<uint16_t>& pendingTiles);
339
340 bool startTLMDecompress(std::set<uint16_t>& pendingTiles);
341 bool startSequentialDecompress(std::set<uint16_t>& pendingTiles);
342
343 bool doTileBatching(void);
344
349
354
358 std::unique_ptr<MarkerCache> markerCache_;
359
365
367 int32_t currTileIndex_ = -1;
368
375 std::unique_ptr<TileCodingParams> defaultTcp_;
376
380 bool headerError_ = false;
384 bool headerRead_ = false;
385
391 std::unique_ptr<GrkImage, RefCountedDeleter<GrkImage>> multiTileComposite_;
392
398
399 std::function<void()> postMulti_;
400
404 std::unique_ptr<TileCache> tileCache_;
405
411
416 void* ioUserData_ = nullptr;
417
422 void* ioBandUserData_ = nullptr;
423
424 // band ordering for incremental writes
425 std::mutex bandOrderMutex_;
426 std::condition_variable bandDrainCV_;
427 uint16_t nextBandTileY_ = 0;
429 {
430 uint32_t yBegin, yEnd;
431 uint16_t tileX0, numCols;
432 };
433 std::map<uint16_t, PendingBand_> pendingBands_;
434
440
445 std::function<bool(GrkImage*)> postPostProcess_;
446
452
458
459 std::shared_ptr<TPFetchSeq> tilePartFetchFlat_;
460 std::shared_ptr<std::unordered_map<uint16_t, std::shared_ptr<TPFetchSeq>>> tilePartFetchByTile_;
461 std::vector<std::future<bool>> fetchByTileFutures_;
462
463 bool fetchByTile(std::set<uint16_t>& slated, Rect32 unreducedImageBounds,
464 std::function<std::function<void()>(ITileProcessor*)> postGenerator);
465
470 std::unique_ptr<GrkImage, RefCountedDeleter<GrkImage>> scratchImage_;
471
472 std::unique_ptr<GrkImage, std::function<void(GrkImage*)>> activeImage_;
473
478 std::atomic<bool> success_{true};
479
484 std::atomic<uint32_t> numTilesDecompressed_{0};
485
491
492 std::vector<std::unique_ptr<MarkerParser>> tileMarkerParsers_;
493
498 bool isHT_ = false;
499
500 std::unique_ptr<TileCompletion> tileCompletion_;
501
502 std::thread decompressWorker_;
503
504 std::function<bool(std::set<uint16_t>&)> decompressStart_;
505
506 std::shared_ptr<ChunkBuffer<>> chunkBuffer_;
507
508 // Compressed chunk cache: stores fetched compressed data for re-decompression
509 std::unique_ptr<CompressedChunkCache> compressedChunkCache_;
510
511 // Tile batching
512
514 std::condition_variable batchTileQueueCondition_;
516 uint16_t batchTileNextRows_ = 2;
517 uint16_t batchTileHeadroomIncrement(uint16_t numRows, uint16_t tilesLeft);
518
519 // batch TLM
520 std::queue<uint16_t> batchTileQueueTLM_;
521
522 // producer-consumer decompression pipeline
523 void startDecompressConsumer(uint16_t maxInFlight);
524 std::unique_ptr<ConcurrentQueue<std::function<void()>>> decompressQueue_;
527 std::condition_variable decompressThrottleCV_;
530
531 // Row-based fetch throttle: highest tile row that has been fully fetched
532 std::atomic<int32_t> maxFetchedTileRow_{-1};
533
534 // batch sequential
535 bool batchDequeueSequential(void);
536 std::queue<ITileProcessor*> batchTileQueueSequential_;
539 int32_t batchTileScheduledRows_ = 0; // Highest row index we've scheduled up to
540};
541
542} // namespace grk
static tf::Executor & get(void)
Gets current instance of the Singleton (creates with full hardware concurrency if null).
Definition TFSingleton.h:54
Definition TileFutureManager.h:29
bool postProcess(GrkImage *img)
Post processes decompressed image.
Definition CodeStreamDecompress.cpp:1099
std::queue< uint16_t > batchTileQueueTLM_
Definition CodeStreamDecompress.h:520
bool readCBD(uint8_t *headerData, uint16_t headerSize)
Reads a CBD marker (Component bit depth definition).
Definition CodeStreamDecompress_ReadMarkers.cpp:412
bool readPLM(uint8_t *headerData, uint16_t headerSize)
Reads a PLM marker (Packet length, main header marker).
Definition CodeStreamDecompress_ReadMarkers.cpp:335
bool readCAP(uint8_t *headerData, uint16_t headerSize)
Reads a CAP marker.
Definition CodeStreamDecompress_ReadMarkers.cpp:516
bool readUNK(void)
Reads unknown marker.
Definition CodeStreamDecompress_ReadMarkers.cpp:463
uint16_t decompressInFlight_
Definition CodeStreamDecompress.h:528
uint16_t nextBandTileY_
Definition CodeStreamDecompress.h:427
std::unique_ptr< TileCodingParams > defaultTcp_
Default TileCodingParams.
Definition CodeStreamDecompress.h:375
bool readSOT(uint8_t *headerData, uint16_t headerSize)
Read SOT (Start of tile part) marker.
Definition CodeStreamDecompress_ReadMarkers.cpp:357
grk_io_band_callback getBandCallback() const override
Definition CodeStreamDecompress.h:61
void startDecompressConsumer(uint16_t maxInFlight)
Definition CodeStreamDecompress.cpp:1641
bool headerRead_
true if main header was successfully read
Definition CodeStreamDecompress.h:384
std::atomic< int32_t > maxFetchedTileRow_
Definition CodeStreamDecompress.h:532
void dumpImageComponentHeader(grk_image_comp *comp, bool dev_dump_flag, FILE *outputFileStream)
Dumps a component image header structure.
Definition CodeStreamDecompress_Dump.cpp:181
void * ioUserData_
io user data
Definition CodeStreamDecompress.h:416
std::function< bool()> genDecompressTileTLMTask(ITileProcessor *tileProcessor, const std::shared_ptr< TPFetchSeq > &tilePartFetchSeq, Rect32 unreducedImageBounds, std::function< std::function< void()>(ITileProcessor *)> postGenerator)
Definition CodeStreamDecompress.cpp:638
uint16_t batchTileInitialRows_
Definition CodeStreamDecompress.h:515
bool readTLM(uint8_t *headerData, uint16_t headerSize)
Reads a TLM marker (Tile Length Marker).
Definition CodeStreamDecompress_ReadMarkers.cpp:449
uint16_t batchTileNextRows_
Definition CodeStreamDecompress.h:516
void dumpTileHeader(TileCodingParams *defaultTile, uint32_t numcomps, FILE *outputFileStream)
Dumps tile info to file.
Definition CodeStreamDecompress_Dump.cpp:54
std::unique_ptr< MarkerCache > markerCache_
MarkerCache
Definition CodeStreamDecompress.h:358
uint16_t batchTileHeadroomIncrement(uint16_t numRows, uint16_t tilesLeft)
Definition CodeStreamDecompress.cpp:1357
void waitSwathCopy() override
Wait for all in-flight swath copy tasks to complete.
Definition CodeStreamDecompress.cpp:1558
std::function< void()> postMultiTile(void)
Final post-processing lambda, executed by wait(nullptr) after all tiles complete.
Definition CodeStreamDecompress.cpp:1118
CodeStreamDecompress(IStream *stream)
Constructs a CodeStreamDecompress.
Definition CodeStreamDecompress.cpp:67
std::shared_ptr< ChunkBuffer<> > chunkBuffer_
Definition CodeStreamDecompress.h:506
void dumpMainHeader(FILE *outputFileStream)
Dumps main header info to file.
Definition CodeStreamDecompress_Dump.cpp:143
std::queue< ITileProcessor * > batchTileQueueSequential_
Definition CodeStreamDecompress.h:536
bool mergePpm(CodingParams *p_cp)
Merges all PPM markers read (Packed headers, main header).
Definition CodeStreamDecompress_ReadMarkers.cpp:352
bool readSIZ(uint8_t *headerData, uint16_t headerSize)
Reads a SIZ marker (image and tile size).
Definition CodeStreamDecompress_ReadMarkers.cpp:552
uint16_t batchTileUnscheduledSequential_
Definition CodeStreamDecompress.h:538
TileFutureManager swathCopyFutureManager_
futures for swath copy tasks scheduled via scheduleSwathCopy()
Definition CodeStreamDecompress.h:457
bool readHeaderProcedure(void)
Reads header - all markers until first SOT.
Definition CodeStreamDecompress_ReadMarkers.cpp:76
TileWindow tilesToDecompress_
TileWindow
Definition CodeStreamDecompress.h:353
void * ioBandUserData_
Definition CodeStreamDecompress.h:422
std::map< uint16_t, PendingBand_ > pendingBands_
Definition CodeStreamDecompress.h:433
CoderPool coderPool_
pool of ICoder
Definition CodeStreamDecompress.h:490
GrkImage * getImage(void) override
Gets composite GrkImage for all tiles in decompress region.
Definition CodeStreamDecompress.cpp:1873
std::unique_ptr< GrkImage, std::function< void(GrkImage *)> > activeImage_
Definition CodeStreamDecompress.h:472
void differentialUpdate(GrkImage *scratch)
Updates differential decompress state.
Definition CodeStreamDecompress.cpp:1765
grk_io_pixels_callback ioBufferCallback_
callback for io pixels
Definition CodeStreamDecompress.h:410
GrkImage * getCompositeNoWait(void)
Definition CodeStreamDecompress.cpp:1879
std::condition_variable bandDrainCV_
Definition CodeStreamDecompress.h:426
std::function< bool(GrkImage *)> postPostProcess_
post post-decompress method
Definition CodeStreamDecompress.h:445
static constexpr int32_t maxRowsAhead_
Definition CodeStreamDecompress.h:199
std::thread decompressWorker_
Definition CodeStreamDecompress.h:502
int32_t currTileIndex_
Definition CodeStreamDecompress.h:367
int32_t batchTileScheduledRows_
Definition CodeStreamDecompress.h:539
std::unique_ptr< TileCompletion > tileCompletion_
Definition CodeStreamDecompress.h:500
void setPostPostProcess(std::function< bool(GrkImage *)> func)
Sets the Post Post Process object.
Definition CodeStreamDecompress.cpp:1760
bool needsHeaderRead(void) const
Checks if header needs to be read.
Definition CodeStreamDecompress_ReadMarkers.cpp:311
std::atomic< bool > success_
track success of scheduled tile decompression
Definition CodeStreamDecompress.h:478
TileFutureManager decompressTileFutureManager_
futures for scheduled tiles
Definition CodeStreamDecompress.h:451
uint16_t batchTileScheduleHeadroomSequential_
Definition CodeStreamDecompress.h:537
bool fetchByTile(std::set< uint16_t > &slated, Rect32 unreducedImageBounds, std::function< std::function< void()>(ITileProcessor *)> postGenerator)
Definition CodeStreamDecompress.cpp:1662
std::mutex bandOrderMutex_
Definition CodeStreamDecompress.h:425
MarkerParser markerParser_
MarkerParser
Definition CodeStreamDecompress.h:348
void setBandCallback(grk_io_band_callback callback, void *user_data) override
Sets a band-completion callback for incremental writing.
Definition CodeStreamDecompress.cpp:157
std::function< void()> postSingleTile(ITileProcessor *tileProcessor)
Definition CodeStreamDecompress.cpp:1080
bool activateScratch(bool singleTile, GrkImage *scratch)
Activates scratch image.
Definition CodeStreamDecompress.cpp:1771
bool batchDequeueSequential(void)
Definition CodeStreamDecompress.cpp:1362
std::condition_variable batchTileQueueCondition_
Definition CodeStreamDecompress.h:514
ITileProcessor * getTileProcessor(uint16_t tile_index)
Gets tile processor for specified tile index.
Definition CodeStreamDecompress.cpp:1837
std::mutex decompressThrottleMutex_
Definition CodeStreamDecompress.h:526
uint16_t maxDecompressInFlight_
Definition CodeStreamDecompress.h:529
grk_io_band_callback ioBandCallback_
callback invoked when a tile-row band is ready for incremental writing
Definition CodeStreamDecompress.h:421
void init(grk_decompress_parameters *param) override
Initializes decompressor.
Definition CodeStreamDecompress.cpp:134
bool isHT_
global HT flag
Definition CodeStreamDecompress.h:498
Rect32 region_
Holds unreduced unsubsampled decompress region , if set.
Definition CodeStreamDecompress.h:397
bool decompress(grk_plugin_tile *tile) override
Decompresses image / image region.
Definition CodeStreamDecompress.cpp:165
bool decompressTileImpl(uint16_t tile_index)
Definition CodeStreamDecompress.cpp:932
TilePartInfo currTilePartInfo_
Definition CodeStreamDecompress.h:366
std::unique_ptr< CompressedChunkCache > compressedChunkCache_
Definition CodeStreamDecompress.h:509
bool readHeader(grk_header_info *header_info) override
Reads header.
Definition CodeStreamDecompress_ReadMarkers.cpp:208
std::vector< std::future< bool > > fetchByTileFutures_
Definition CodeStreamDecompress.h:461
bool readCRG(uint8_t *headerData, uint16_t headerSize)
Reads a CRG marker (Component registration).
Definition CodeStreamDecompress_ReadMarkers.cpp:316
grk_progression_state getProgressionState(uint16_t tile_index) override
Gets the grk_progression_state for a tile.
Definition CodeStreamDecompress.cpp:1755
bool setProgressionState(grk_progression_state state) override
Sets the grk_progression_state for a tile.
Definition CodeStreamDecompress.cpp:1751
std::shared_ptr< std::unordered_map< uint16_t, std::shared_ptr< TPFetchSeq > > > tilePartFetchByTile_
Definition CodeStreamDecompress.h:460
std::vector< std::unique_ptr< MarkerParser > > tileMarkerParsers_
Definition CodeStreamDecompress.h:492
void onRowCompleted(uint16_t tileIndexBegin)
Definition CodeStreamDecompress.cpp:1563
std::unique_ptr< ConcurrentQueue< std::function< void()> > > decompressQueue_
Definition CodeStreamDecompress.h:524
std::unique_ptr< GrkImage, RefCountedDeleter< GrkImage > > scratchImage_
Scratch GrkImage for decompressor This image may composite multiple tiles, if needed.
Definition CodeStreamDecompress.h:470
std::condition_variable decompressThrottleCV_
Definition CodeStreamDecompress.h:527
void postReadHeader(void)
Definition CodeStreamDecompress_ReadMarkers.cpp:186
grk_io_register_reclaim_callback grkRegisterReclaimCallback_
callback to reclaim io buffers
Definition CodeStreamDecompress.h:439
std::unique_ptr< GrkImage, RefCountedDeleter< GrkImage > > multiTileComposite_
multi tile composite GrkImage Used to composite multiple tiles - subsampled and reduced for region de...
Definition CodeStreamDecompress.h:391
bool startTLMDecompress(std::set< uint16_t > &pendingTiles)
Definition CodeStreamDecompress.cpp:509
std::thread decompressConsumer_
Definition CodeStreamDecompress.h:525
void decompressSequential(const std::set< uint16_t > &pendingTiles)
Definition CodeStreamDecompress.cpp:677
bool sequentialParseAndSchedule(bool multiTile)
Parses next slated tile.
Definition CodeStreamDecompress.cpp:764
void decompressSequentialPrepare(void)
Prepares to read first slated tile part.
Definition CodeStreamDecompress.cpp:667
bool readPPM(uint8_t *headerData, uint16_t headerSize)
Reads a PPM marker (Packed headers, main header).
Definition CodeStreamDecompress_ReadMarkers.cpp:344
void wait(grk_wait_swath *swath) override
Wait for tile decompression to complete.
Definition CodeStreamDecompress.cpp:1429
std::atomic< uint32_t > numTilesDecompressed_
number of decompressed tiles
Definition CodeStreamDecompress.h:484
bool initDefaultTCP()
Initializes default TileCodingParams.
Definition CodeStreamDecompress.cpp:1746
std::shared_ptr< TPFetchSeq > tilePartFetchFlat_
Definition CodeStreamDecompress.h:459
~CodeStreamDecompress()
Destroys a CodeStreamDecompress.
Definition CodeStreamDecompress.h:47
bool setDecompressRegion(RectD region)
Sets the decompress region.
Definition CodeStreamDecompress.cpp:1220
void dump(uint32_t flag, FILE *outputFileStream) override
Dumps image tags to file.
Definition CodeStreamDecompress_Dump.cpp:110
ITileProcessor * currTileProcessor_
Tile processor currently being parsed.
Definition CodeStreamDecompress.h:364
void dumpImageHeader(GrkImage *image, bool dev_dump_flag, FILE *outputFileStream)
Dumps an image header structure.
Definition CodeStreamDecompress_Dump.cpp:152
void setNumComponents(uint16_t numComps)
Definition CodeStreamDecompress.cpp:1742
void decompressTLM(const std::set< uint16_t > &pendingTiles)
Definition CodeStreamDecompress.cpp:588
void scheduleTileBatch()
Definition CodeStreamDecompress.cpp:1581
std::function< void()> postMulti_
Definition CodeStreamDecompress.h:399
std::mutex batchTileQueueMutex_
Definition CodeStreamDecompress.h:513
void scheduleSwathCopy(const grk_wait_swath *swath, grk_swath_buffer *buf) override
Schedule SIMD-accelerated tile-to-swath copies for decoded tiles.
Definition CodeStreamDecompress.cpp:1520
void initTilesToDecompress(Rect16 region)
Initializes tile completeness set.
Definition CodeStreamDecompress.cpp:1738
bool schedule(ITileProcessor *tileProcessor, bool multiTile)
Definition CodeStreamDecompress.cpp:559
bool doTileBatching(void)
Definition CodeStreamDecompress.cpp:1352
bool decompressImpl(std::set< uint16_t > pendingTiles)
Decompresses all tiles.
Definition CodeStreamDecompress.cpp:386
bool headerError_
true if there was an error reading the main header
Definition CodeStreamDecompress.h:380
GrkImage * getHeaderImage(void)
Gets header GrkImage (where main and tile header information is stored).
Definition CodeStreamDecompress_ReadMarkers.cpp:307
void * getBandUserData() const override
Definition CodeStreamDecompress.h:65
std::unique_ptr< TileCache > tileCache_
TileCache
Definition CodeStreamDecompress.h:404
bool decompressTile(uint16_t tile_index) override
Single Tile ////////////////////////////////////////////////////.
Definition CodeStreamDecompress.cpp:900
bool readSOC()
Reads a SOC marker (Start of Codestream).
Definition CodeStreamDecompress_ReadMarkers.cpp:499
bool startSequentialDecompress(std::set< uint16_t > &pendingTiles)
Definition CodeStreamDecompress.cpp:529
std::function< bool(std::set< uint16_t > &)> decompressStart_
Definition CodeStreamDecompress.h:504
CodeStream(IStream *stream)
Definition CodeStream.cpp:38
Thread-safe unbounded queue with blocking pop and close signal.
Definition ConcurrentQueue.h:38
Stores header and data for an image.
Definition GrkImage.h:54
Stores state of rectangular window of tiles slated for decompression Each tile's slated or completely...
Definition TileWindow.h:34
void(* grk_io_register_reclaim_callback)(grk_io_init io_init, grk_io_callback reclaim_callback, void *io_user_data, void *reclaim_user_data)
Grok IO register reclaim callback.
Definition grok.h:502
bool(* grk_io_pixels_callback)(uint32_t worker_id, grk_io_buf buffer, void *user_data)
Grok IO pixels callback.
Definition grok.h:512
bool(* grk_io_band_callback)(uint32_t yBegin, uint32_t yEnd, grk_image *image, void *user_data)
Callback invoked when a horizontal band of the decompressed image is ready for writing.
Definition grok.h:647
ResWindow.
Definition CompressedChunkCache.h:36
Rect< uint32_t > Rect32
Definition geometry.h:64
Rect< uint16_t > Rect16
Definition geometry.h:65
Rect< double > RectD
Definition geometry.h:67
Definition CodeStreamDecompress.h:429
uint32_t yEnd
Definition CodeStreamDecompress.h:430
uint16_t numCols
Definition CodeStreamDecompress.h:431
uint16_t tileX0
Definition CodeStreamDecompress.h:431
uint32_t yBegin
Definition CodeStreamDecompress.h:430
Definition CoderPool.h:53
Coding parameters.
Definition CodingParams.h:402
Decompress interface.
Definition IDecompressor.h:29
Definition IStream.h:60
Interface for managing tile compression/decompression.
Definition ITileProcessor.h:37
Definition MarkerParser.h:61
Tile coding parameters : this structure is used to store coding/decoding parameters common to all til...
Definition CodingParams.h:124
Definition ITileProcessor.h:24
Decompression parameters.
JPEG 2000 header info.
Image component.
Plugin tile.
Stores progression state information Note: limited to 256 components.
User-managed output buffer for asynchronous swath tile copy-and-convert.
Definition grok.h:974
Specify swath region to wait on during asynchronous decompression.
Definition grok.h:1004