Grok  9.5.0
Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
grk::TileProcessor Struct Reference

Tile processor for decompression and compression. More...

#include <TileProcessor.h>

Public Member Functions

 TileProcessor (CodeStream *codeStream, IBufferedStream *stream, bool isCompressor, bool isWholeTileDecompress)
 
 ~TileProcessor ()
 
bool init (void)
 
bool allocWindowBuffers (const GrkImage *outputImage)
 
void deallocBuffers ()
 
bool preCompressTile (void)
 
bool canWritePocMarker (void)
 
bool writeTilePartT2 (uint32_t *tileBytesWritten)
 
bool doCompress (void)
 
bool decompressT1 (void)
 
bool decompressT2 (SparseBuffer *srcBuf)
 
bool decompressT2T1 (TileCodingParams *tcp, GrkImage *outputImage, bool multiTile, bool doPost)
 
bool ingestUncompressedData (uint8_t *p_src, uint64_t src_length)
 
bool needsRateControl ()
 
void ingestImage ()
 
bool prepareSodDecompress (CodeStreamDecompress *codeStream)
 
void generateImage (GrkImage *src_image, Tile *src_tile)
 
GrkImagegetImage (void)
 
void setCorruptPacket (void)
 
PacketTrackergetPacketTracker (void)
 
grkRectU32 getUnreducedTileWindow (void)
 
TileCodingParamsgetTileCodingParams (void)
 
uint8_t getMaxNumDecompressResolutions (void)
 
IBufferedStreamgetStream (void)
 
uint32_t getPreCalculatedTileLen (void)
 
bool canPreCalculateTileLen (void)
 

Public Attributes

uint16_t m_tileIndex
 index of tile being currently compressed/decompressed More...
 
bool m_first_poc_tile_part
 Compressing Only true for first POC tile part, otherwise false. More...
 
uint8_t m_tilePartIndexCounter
 Compressing Only index of tile part being currently coding. More...
 
uint32_t tilePartDataLength
 
uint8_t numTilePartsTotal
 Compressing Only Total number of tile parts of the tile. More...
 
uint32_t pino
 Compressing Only Current packet iterator number. More...
 
Tiletile
 
GrkImageheaderImage
 
grk_plugin_tilecurrent_plugin_tile
 
bool wholeTileDecompress
 
CodingParamsm_cp
 
PacketLengthCache packetLengthCache
 

Private Member Functions

bool isWholeTileDecompress (uint32_t compno)
 Returns whether a tile component should be fully decompressed, taking into account win_* members. More...
 
bool needsMctDecompress (uint32_t compno)
 
bool mctDecompress ()
 
bool dcLevelShiftDecompress ()
 
bool dcLevelShiftCompress ()
 
bool mct_encode ()
 
bool dwt_encode ()
 
void t1_encode ()
 
bool encodeT2 (uint32_t *packet_bytes_written)
 
bool rateAllocate (uint32_t *allPacketBytes)
 
bool layerNeedsRateControl (uint32_t layno)
 
bool makeSingleLosslessLayer ()
 
void makeLayerFinal (uint32_t layno)
 
bool pcrdBisectSimple (uint32_t *p_data_written)
 
void makeLayerSimple (uint32_t layno, double thresh, bool final)
 
bool pcrdBisectFeasible (uint32_t *p_data_written)
 
void makeLayerFeasible (uint32_t layno, uint16_t thresh, bool final)
 

Private Attributes

PacketTracker m_packetTracker
 
IBufferedStreamm_stream
 
bool m_corrupt_packet
 
uint32_t newTilePartProgressionPosition
 position of the tile part flag in progression order More...
 
TileCodingParamsm_tcp
 
bool truncated
 
GrkImagem_image
 
bool m_isCompressor
 
grkRectU32 unreducedTileWindow
 
uint32_t preCalculatedTileLen
 

Detailed Description

Tile processor for decompression and compression.

Constructor & Destructor Documentation

◆ TileProcessor()

grk::TileProcessor::TileProcessor ( CodeStream codeStream,
IBufferedStream stream,
bool  isCompressor,
bool  isWholeTileDecompress 
)
explicit

◆ ~TileProcessor()

grk::TileProcessor::~TileProcessor ( )

Member Function Documentation

◆ allocWindowBuffers()

bool grk::TileProcessor::allocWindowBuffers ( const GrkImage outputImage)

◆ canPreCalculateTileLen()

bool grk::TileProcessor::canPreCalculateTileLen ( void  )

◆ canWritePocMarker()

bool grk::TileProcessor::canWritePocMarker ( void  )

◆ dcLevelShiftCompress()

bool grk::TileProcessor::dcLevelShiftCompress ( )
private

◆ dcLevelShiftDecompress()

bool grk::TileProcessor::dcLevelShiftDecompress ( )
private

◆ deallocBuffers()

void grk::TileProcessor::deallocBuffers ( void  )

◆ decompressT1()

bool grk::TileProcessor::decompressT1 ( void  )

◆ decompressT2()

bool grk::TileProcessor::decompressT2 ( SparseBuffer srcBuf)

◆ decompressT2T1()

bool grk::TileProcessor::decompressT2T1 ( TileCodingParams tcp,
GrkImage outputImage,
bool  multiTile,
bool  doPost 
)

◆ doCompress()

bool grk::TileProcessor::doCompress ( void  )

◆ dwt_encode()

bool grk::TileProcessor::dwt_encode ( )
private

◆ encodeT2()

bool grk::TileProcessor::encodeT2 ( uint32_t *  packet_bytes_written)
private

◆ generateImage()

void grk::TileProcessor::generateImage ( GrkImage src_image,
Tile src_tile 
)

◆ getImage()

GrkImage * grk::TileProcessor::getImage ( void  )

References m_image.

Referenced by grk::CodeStreamDecompress::getImage().

◆ getMaxNumDecompressResolutions()

uint8_t grk::TileProcessor::getMaxNumDecompressResolutions ( void  )

◆ getPacketTracker()

PacketTracker * grk::TileProcessor::getPacketTracker ( void  )

◆ getPreCalculatedTileLen()

uint32_t grk::TileProcessor::getPreCalculatedTileLen ( void  )

◆ getStream()

IBufferedStream * grk::TileProcessor::getStream ( void  )

References m_stream.

Referenced by grk::SOTMarker::write().

◆ getTileCodingParams()

TileCodingParams * grk::TileProcessor::getTileCodingParams ( void  )

◆ getUnreducedTileWindow()

grkRectU32 grk::TileProcessor::getUnreducedTileWindow ( void  )

◆ ingestImage()

void grk::TileProcessor::ingestImage ( )

◆ ingestUncompressedData()

bool grk::TileProcessor::ingestUncompressedData ( uint8_t *  p_src,
uint64_t  src_length 
)

◆ init()

bool grk::TileProcessor::init ( void  )

◆ isWholeTileDecompress()

bool grk::TileProcessor::isWholeTileDecompress ( uint32_t  compno)
private

Returns whether a tile component should be fully decompressed, taking into account win_* members.

Parameters
compnoComponent number
Returns
true if the tile component should be fully decompressed

References grk::TileComponentWindowBuffer< T >::bounds(), grk::Tile::comps, grk::TileComponent::getBuffer(), grk::grkRect< T >::intersection(), grk::shift, and tile.

Referenced by decompressT2().

◆ layerNeedsRateControl()

bool grk::TileProcessor::layerNeedsRateControl ( uint32_t  layno)
private

◆ makeLayerFeasible()

void grk::TileProcessor::makeLayerFeasible ( uint32_t  layno,
uint16_t  thresh,
bool  final 
)
private

◆ makeLayerFinal()

void grk::TileProcessor::makeLayerFinal ( uint32_t  layno)
private

◆ makeLayerSimple()

void grk::TileProcessor::makeLayerSimple ( uint32_t  layno,
double  thresh,
bool  final 
)
private

◆ makeSingleLosslessLayer()

bool grk::TileProcessor::makeSingleLosslessLayer ( )
private

◆ mct_encode()

bool grk::TileProcessor::mct_encode ( )
private

◆ mctDecompress()

bool grk::TileProcessor::mctDecompress ( )
private

◆ needsMctDecompress()

bool grk::TileProcessor::needsMctDecompress ( uint32_t  compno)
private

◆ needsRateControl()

bool grk::TileProcessor::needsRateControl ( )

◆ pcrdBisectFeasible()

bool grk::TileProcessor::pcrdBisectFeasible ( uint32_t *  p_data_written)
private

◆ pcrdBisectSimple()

bool grk::TileProcessor::pcrdBisectSimple ( uint32_t *  p_data_written)
private

◆ preCompressTile()

bool grk::TileProcessor::preCompressTile ( void  )

◆ prepareSodDecompress()

bool grk::TileProcessor::prepareSodDecompress ( CodeStreamDecompress codeStream)

◆ rateAllocate()

bool grk::TileProcessor::rateAllocate ( uint32_t *  allPacketBytes)
private

◆ setCorruptPacket()

void grk::TileProcessor::setCorruptPacket ( void  )

◆ t1_encode()

void grk::TileProcessor::t1_encode ( )
private

◆ writeTilePartT2()

bool grk::TileProcessor::writeTilePartT2 ( uint32_t *  tileBytesWritten)

Member Data Documentation

◆ current_plugin_tile

grk_plugin_tile* grk::TileProcessor::current_plugin_tile

◆ headerImage

GrkImage* grk::TileProcessor::headerImage

◆ m_corrupt_packet

bool grk::TileProcessor::m_corrupt_packet
private

Referenced by decompressT2T1(), and setCorruptPacket().

◆ m_cp

CodingParams* grk::TileProcessor::m_cp

◆ m_first_poc_tile_part

bool grk::TileProcessor::m_first_poc_tile_part

Compressing Only true for first POC tile part, otherwise false.

Referenced by encodeT2(), preCompressTile(), and grk::CodeStreamCompress::writeTileParts().

◆ m_image

GrkImage* grk::TileProcessor::m_image
private

◆ m_isCompressor

bool grk::TileProcessor::m_isCompressor
private

Referenced by allocWindowBuffers(), and init().

◆ m_packetTracker

PacketTracker grk::TileProcessor::m_packetTracker
private

Referenced by doCompress(), getPacketTracker(), and init().

◆ m_stream

IBufferedStream* grk::TileProcessor::m_stream
private

◆ m_tcp

TileCodingParams* grk::TileProcessor::m_tcp
private

◆ m_tileIndex

uint16_t grk::TileProcessor::m_tileIndex

◆ m_tilePartIndexCounter

uint8_t grk::TileProcessor::m_tilePartIndexCounter

Compressing Only index of tile part being currently coding.

m_tilePartIndexCounter holds the total number of tile parts encoded thus far while the compressor is compressing the current tile part.

Referenced by canWritePocMarker(), preCompressTile(), grk::SOTMarker::write(), grk::CodeStreamCompress::writeTilePart(), grk::CodeStreamCompress::writeTileParts(), and writeTilePartT2().

◆ newTilePartProgressionPosition

uint32_t grk::TileProcessor::newTilePartProgressionPosition
private

position of the tile part flag in progression order

Referenced by encodeT2(), pcrdBisectFeasible(), pcrdBisectSimple(), and TileProcessor().

◆ numTilePartsTotal

uint8_t grk::TileProcessor::numTilePartsTotal

Compressing Only Total number of tile parts of the tile.

Referenced by preCompressTile().

◆ packetLengthCache

PacketLengthCache grk::TileProcessor::packetLengthCache

◆ pino

uint32_t grk::TileProcessor::pino

Compressing Only Current packet iterator number.

Referenced by encodeT2(), and grk::CodeStreamCompress::writeTileParts().

◆ preCalculatedTileLen

uint32_t grk::TileProcessor::preCalculatedTileLen
private

◆ tile

Tile* grk::TileProcessor::tile

◆ tilePartDataLength

uint32_t grk::TileProcessor::tilePartDataLength

◆ truncated

bool grk::TileProcessor::truncated
private

Referenced by decompressT1(), and decompressT2().

◆ unreducedTileWindow

grkRectU32 grk::TileProcessor::unreducedTileWindow
private

◆ wholeTileDecompress

bool grk::TileProcessor::wholeTileDecompress

Referenced by decompressT1(), decompressT2(), and init().


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