Grok 20.3.2
grk::IDecompressor Struct Referenceabstract

Decompress interface. More...

#include <IDecompressor.h>

Inheritance diagram for grk::IDecompressor:
grk::CodeStreamDecompress grk::FileFormatJP2Decompress grk::FileFormatMJ2Decompress

Public Member Functions

virtual ~IDecompressor ()=default
 Destroys the IDecompressor object.
virtual bool readHeader (grk_header_info *header_info)=0
 Reads header.
virtual GrkImagegetImage (uint16_t tile_index, bool wait)=0
 Gets GrkImage for specified tile.
virtual GrkImagegetImage (void)=0
 Gets composite GrkImage for all tiles in decompress region.
virtual void wait (grk_wait_swath *swath)=0
 Waits for asynchronous decompression to complete.
virtual void init (grk_decompress_parameters *param)=0
 Initializes decompressor.
virtual void setBandCallback (grk_io_band_callback callback, void *user_data)
 Sets a band-completion callback for incremental writing.
virtual grk_progression_state getProgressionState (uint16_t tile_index)=0
 Gets the grk_progression_state for a tile.
virtual bool setProgressionState (grk_progression_state state)=0
 Sets the grk_progression_state for a tile.
virtual bool decompress (grk_plugin_tile *tile)=0
 Decompresses image / image region.
virtual bool decompressTile (uint16_t tile_index)=0
 Decompresses a single tile.
virtual void dump (uint32_t flag, FILE *outputFileStream)=0
 Dumps image tags to file.
virtual uint32_t getNumSamples (void)
virtual bool decompressSample (uint32_t sampleIndex)
virtual GrkImagegetSampleImage (uint32_t sampleIndex)
virtual GrkImagegetSampleTileImage (uint32_t sampleIndex, uint16_t tileIndex)
virtual void scheduleSwathCopy (const grk_wait_swath *swath, grk_swath_buffer *buf)
 Schedule Taskflow copy tasks for tiles in a completed swath.
virtual void waitSwathCopy ()
 Wait for all in-flight swath copy tasks to complete.

Detailed Description

Decompress interface.

Constructor & Destructor Documentation

◆ ~IDecompressor()

virtual grk::IDecompressor::~IDecompressor ( )
virtualdefault

Destroys the IDecompressor object.

Member Function Documentation

◆ decompress()

virtual bool grk::IDecompressor::decompress ( grk_plugin_tile * tile)
pure virtual

Decompresses image / image region.

Parameters
tilegrk_plugin_tile
Returns
true if successful

Implemented in grk::CodeStreamDecompress, grk::FileFormatJP2Decompress, and grk::FileFormatMJ2Decompress.

Referenced by decompressSample().

◆ decompressSample()

virtual bool grk::IDecompressor::decompressSample ( uint32_t sampleIndex)
inlinevirtual

Reimplemented in grk::FileFormatMJ2Decompress.

References decompress().

◆ decompressTile()

virtual bool grk::IDecompressor::decompressTile ( uint16_t tile_index)
pure virtual

Decompresses a single tile.

Parameters
tile_indextile index
Returns
true if successful

Implemented in grk::CodeStreamDecompress, grk::FileFormatJP2Decompress, and grk::FileFormatMJ2Decompress.

◆ dump()

virtual void grk::IDecompressor::dump ( uint32_t flag,
FILE * outputFileStream )
pure virtual

Dumps image tags to file.

Parameters
flagflag indicating main header, tile header etc.
outputFileStreamFILE stream

Implemented in grk::CodeStreamDecompress, grk::FileFormatJP2Decompress, and grk::FileFormatMJ2Decompress.

◆ getImage() [1/2]

virtual GrkImage * grk::IDecompressor::getImage ( uint16_t tile_index,
bool wait )
pure virtual

Gets GrkImage for specified tile.

Parameters
tile_indextile index
Returns
GrkImage

Implemented in grk::CodeStreamDecompress, grk::FileFormatJP2Decompress, and grk::FileFormatMJ2Decompress.

References wait().

◆ getImage() [2/2]

virtual GrkImage * grk::IDecompressor::getImage ( void )
pure virtual

Gets composite GrkImage for all tiles in decompress region.

Returns
GrkImage

Implemented in grk::CodeStreamDecompress, grk::FileFormatJP2Decompress, and grk::FileFormatMJ2Decompress.

Referenced by getSampleImage(), and getSampleTileImage().

◆ getNumSamples()

virtual uint32_t grk::IDecompressor::getNumSamples ( void )
inlinevirtual

Reimplemented in grk::FileFormatMJ2Decompress.

◆ getProgressionState()

virtual grk_progression_state grk::IDecompressor::getProgressionState ( uint16_t tile_index)
pure virtual

◆ getSampleImage()

virtual GrkImage * grk::IDecompressor::getSampleImage ( uint32_t sampleIndex)
inlinevirtual

Reimplemented in grk::FileFormatMJ2Decompress.

References getImage().

◆ getSampleTileImage()

virtual GrkImage * grk::IDecompressor::getSampleTileImage ( uint32_t sampleIndex,
uint16_t tileIndex )
inlinevirtual

Reimplemented in grk::FileFormatMJ2Decompress.

References getImage().

◆ init()

virtual void grk::IDecompressor::init ( grk_decompress_parameters * param)
pure virtual

◆ readHeader()

virtual bool grk::IDecompressor::readHeader ( grk_header_info * header_info)
pure virtual

Reads header.

Parameters

ref grk_header_info

Returns
true if read succeeds

Implemented in grk::CodeStreamDecompress, grk::FileFormatJP2Decompress, and grk::FileFormatMJ2Decompress.

◆ scheduleSwathCopy()

virtual void grk::IDecompressor::scheduleSwathCopy ( const grk_wait_swath * swath,
grk_swath_buffer * buf )
inlinevirtual

Schedule Taskflow copy tasks for tiles in a completed swath.

For each tile in swath, submits a Taskflow task to the shared executor that converts the int32_t planar tile data into buf via Highway SIMD. Tiles that are still in-flight (decompressed ahead of the current swath) have their copy deferred via a Taskflow continuation.

Reimplemented in grk::CodeStreamDecompress, and grk::FileFormatJP2Decompress.

◆ setBandCallback()

virtual void grk::IDecompressor::setBandCallback ( grk_io_band_callback callback,
void * user_data )
inlinevirtual

Sets a band-completion callback for incremental writing.

Must be called after readHeader() but before decompress().

Reimplemented in grk::CodeStreamDecompress, grk::FileFormatJP2Decompress, and grk::FileFormatMJ2Decompress.

◆ setProgressionState()

virtual bool grk::IDecompressor::setProgressionState ( grk_progression_state state)
pure virtual

Sets the grk_progression_state for a tile.

Parameters
stategrk_progression_state
Returns
true if successful

Implemented in grk::CodeStreamDecompress, grk::FileFormatJP2Decompress, and grk::FileFormatMJ2Decompress.

◆ wait()

virtual void grk::IDecompressor::wait ( grk_wait_swath * swath)
pure virtual

Waits for asynchronous decompression to complete.

Implemented in grk::CodeStreamDecompress, grk::FileFormatJP2Decompress, and grk::FileFormatMJ2Decompress.

Referenced by getImage().

◆ waitSwathCopy()

virtual void grk::IDecompressor::waitSwathCopy ( )
inlinevirtual

Wait for all in-flight swath copy tasks to complete.

Reimplemented in grk::CodeStreamDecompress, and grk::FileFormatJP2Decompress.


The documentation for this struct was generated from the following file: