Grok 10.0.5
grk::grk::TileProcessor Struct Reference

#include <TileCache.h>

Public Member Functions

 TileProcessor (uint16_t index, CodeStream *codeStream, BufferedStream *stream, bool isCompressor, StripCache *stripCache)
 
 ~TileProcessor ()
 
bool init (void)
 
bool createWindowBuffers (const GrkImage *outputImage)
 
void deallocBuffers ()
 
bool preCompressTile (void)
 
bool canWritePocMarker (void)
 
bool writeTilePartT2 (uint32_t *tileBytesWritten)
 
bool doCompress (void)
 
bool decompressT2T1 (GrkImage *outputImage)
 
bool ingestUncompressedData (uint8_t *p_src, uint64_t src_length)
 
bool needsRateControl ()
 
void ingestImage ()
 
bool cacheTilePartPackets (CodeStreamDecompress *codeStream)
 
void generateImage (GrkImage *src_image, Tile *src_tile)
 
GrkImagegetImage (void)
 
void release (GRK_TILE_CACHE_STRATEGY strategy)
 
void setCorruptPacket (void)
 
PacketTrackergetPacketTracker (void)
 
grk_rect32 getUnreducedTileWindow (void)
 
TileCodingParamsgetTileCodingParams (void)
 
uint8_t getMaxNumDecompressResolutions (void)
 
BufferedStreamgetStream (void)
 
uint32_t getPreCalculatedTileLen (void)
 
bool canPreCalculateTileLen (void)
 
uint16_t getIndex (void) const
 
void incrementIndex (void)
 
TilegetTile (void)
 
SchedulergetScheduler (void)
 
bool isCompressor (void)
 
uint64_t getTilePartDataLength (void)
 
bool subtractMarkerSegmentLength (uint16_t markerLen)
 
bool setTilePartDataLength (uint16_t tilePart, uint32_t tilePartLength, bool lastTilePartInCodeStream)
 
uint64_t getNumProcessedPackets (void)
 
void incNumProcessedPackets (void)
 
void incNumProcessedPackets (uint64_t numPackets)
 
uint64_t getNumDecompressedPackets (void)
 
void incNumDecompressedPackets (void)
 
 TileProcessor (uint16_t index, CodeStream *codeStream, BufferedStream *stream, bool isCompressor, StripCache *stripCache)
 
 ~TileProcessor ()
 
bool init (void)
 
bool createWindowBuffers (const GrkImage *outputImage)
 
void deallocBuffers ()
 
bool preCompressTile (void)
 
bool canWritePocMarker (void)
 
bool writeTilePartT2 (uint32_t *tileBytesWritten)
 
bool doCompress (void)
 
bool decompressT2T1 (GrkImage *outputImage)
 
bool ingestUncompressedData (uint8_t *p_src, uint64_t src_length)
 
bool needsRateControl ()
 
void ingestImage ()
 
bool cacheTilePartPackets (CodeStreamDecompress *codeStream)
 
void generateImage (GrkImage *src_image, Tile *src_tile)
 
GrkImagegetImage (void)
 
void release (GRK_TILE_CACHE_STRATEGY strategy)
 
void setCorruptPacket (void)
 
PacketTrackergetPacketTracker (void)
 
grk_rect32 getUnreducedTileWindow (void)
 
TileCodingParamsgetTileCodingParams (void)
 
uint8_t getMaxNumDecompressResolutions (void)
 
BufferedStreamgetStream (void)
 
uint32_t getPreCalculatedTileLen (void)
 
bool canPreCalculateTileLen (void)
 
uint16_t getIndex (void) const
 
void incrementIndex (void)
 
TilegetTile (void)
 
SchedulergetScheduler (void)
 
bool isCompressor (void)
 
uint64_t getTilePartDataLength (void)
 
bool subtractMarkerSegmentLength (uint16_t markerLen)
 
bool setTilePartDataLength (uint16_t tilePart, uint32_t tilePartLength, bool lastTilePartInCodeStream)
 
uint64_t getNumProcessedPackets (void)
 
void incNumProcessedPackets (void)
 
void incNumProcessedPackets (uint64_t numPackets)
 
uint64_t getNumDecompressedPackets (void)
 
void incNumDecompressedPackets (void)
 

Public Attributes

bool first_poc_tile_part_
 Compression Only true for first POC tile part, otherwise false.
 
uint8_t tilePartCounter_
 Compressing Only index of tile part being currently coding.
 
uint32_t pino
 Compression Only Current packet iterator number.
 
GrkImageheaderImage
 
grk_plugin_tilecurrent_plugin_tile
 
CodingParamscp_
 
PLCache packetLengthCache
 

Private Member Functions

bool isWholeTileDecompress (uint16_t compno)
 Returns whether a tile component should be fully decompressed, taking into account win_* members.
 
bool needsMctDecompress (uint16_t compno)
 
bool needsMctDecompress (void)
 
bool mctDecompress (FlowComponent *flow)
 
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 finalAttempt)
 
bool pcrdBisectFeasible (uint32_t *p_data_written)
 
void makeLayerFeasible (uint32_t layno, uint16_t thresh, bool finalAttempt)
 
bool isWholeTileDecompress (uint16_t compno)
 
bool needsMctDecompress (uint16_t compno)
 
bool needsMctDecompress (void)
 
bool mctDecompress (FlowComponent *flow)
 
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 finalAttempt)
 
bool pcrdBisectFeasible (uint32_t *p_data_written)
 
void makeLayerFeasible (uint32_t layno, uint16_t thresh, bool finalAttempt)
 

Private Attributes

Tiletile
 
Schedulerscheduler_
 
uint64_t numProcessedPackets
 
std::atomic< uint64_t > numDecompressedPackets
 
uint64_t tilePartDataLength
 
uint16_t tileIndex_
 index of tile being currently compressed/decompressed
 
PacketTracker packetTracker_
 
BufferedStreamstream_
 
bool corrupt_packet_
 
uint32_t newTilePartProgressionPosition
 position of the tile part flag in progression order
 
TileCodingParamstcp_
 
bool truncated
 
GrkImageimage_
 
bool isCompressor_
 
grk_rect32 unreducedImageWindow
 
uint32_t preCalculatedTileLen
 
mctmct_
 

Constructor & Destructor Documentation

◆ TileProcessor() [1/2]

grk::TileProcessor::TileProcessor ( uint16_t index,
CodeStream * codeStream,
BufferedStream * stream,
bool isCompressor,
StripCache * stripCache )
explicit

◆ ~TileProcessor() [1/2]

grk::TileProcessor::~TileProcessor ( )

◆ TileProcessor() [2/2]

grk::grk::TileProcessor::TileProcessor ( uint16_t index,
CodeStream * codeStream,
BufferedStream * stream,
bool isCompressor,
StripCache * stripCache )
explicit

◆ ~TileProcessor() [2/2]

grk::grk::TileProcessor::~TileProcessor ( )

Member Function Documentation

◆ cacheTilePartPackets() [1/2]

◆ cacheTilePartPackets() [2/2]

bool grk::grk::TileProcessor::cacheTilePartPackets ( CodeStreamDecompress * codeStream)

◆ canPreCalculateTileLen() [1/2]

bool grk::TileProcessor::canPreCalculateTileLen ( void )

References cp_, and tileIndex_.

◆ canPreCalculateTileLen() [2/2]

bool grk::grk::TileProcessor::canPreCalculateTileLen ( void )

◆ canWritePocMarker() [1/2]

bool grk::TileProcessor::canWritePocMarker ( void )

◆ canWritePocMarker() [2/2]

bool grk::grk::TileProcessor::canWritePocMarker ( void )

◆ createWindowBuffers() [1/2]

◆ createWindowBuffers() [2/2]

bool grk::grk::TileProcessor::createWindowBuffers ( const GrkImage * outputImage)

◆ dcLevelShiftCompress() [1/2]

bool grk::TileProcessor::dcLevelShiftCompress ( )
private

References compno, headerImage, tcp_, and tile.

◆ dcLevelShiftCompress() [2/2]

bool grk::grk::TileProcessor::dcLevelShiftCompress ( )
private

◆ deallocBuffers() [1/2]

void grk::TileProcessor::deallocBuffers ( )

References compno, and tile.

◆ deallocBuffers() [2/2]

void grk::grk::TileProcessor::deallocBuffers ( )

◆ decompressT2T1() [1/2]

◆ decompressT2T1() [2/2]

bool grk::grk::TileProcessor::decompressT2T1 ( GrkImage * outputImage)

◆ doCompress() [1/2]

◆ doCompress() [2/2]

bool grk::grk::TileProcessor::doCompress ( void )

◆ dwt_encode() [1/2]

bool grk::TileProcessor::dwt_encode ( )
private

References compno, tcp_, tile, and w.

◆ dwt_encode() [2/2]

bool grk::grk::TileProcessor::dwt_encode ( )
private

◆ encodeT2() [1/2]

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

◆ encodeT2() [2/2]

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

◆ generateImage() [1/2]

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

◆ generateImage() [2/2]

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

◆ getImage() [1/2]

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

◆ getImage() [2/2]

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

◆ getIndex() [1/2]

uint16_t grk::TileProcessor::getIndex ( void ) const

◆ getIndex() [2/2]

uint16_t grk::grk::TileProcessor::getIndex ( void ) const

◆ getMaxNumDecompressResolutions() [1/2]

uint8_t grk::TileProcessor::getMaxNumDecompressResolutions ( void )

◆ getMaxNumDecompressResolutions() [2/2]

uint8_t grk::grk::TileProcessor::getMaxNumDecompressResolutions ( void )

◆ getNumDecompressedPackets() [1/2]

uint64_t grk::TileProcessor::getNumDecompressedPackets ( void )

◆ getNumDecompressedPackets() [2/2]

uint64_t grk::grk::TileProcessor::getNumDecompressedPackets ( void )

◆ getNumProcessedPackets() [1/2]

uint64_t grk::TileProcessor::getNumProcessedPackets ( void )

References numProcessedPackets.

◆ getNumProcessedPackets() [2/2]

uint64_t grk::grk::TileProcessor::getNumProcessedPackets ( void )

◆ getPacketTracker() [1/2]

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

References packetTracker_.

◆ getPacketTracker() [2/2]

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

◆ getPreCalculatedTileLen() [1/2]

uint32_t grk::TileProcessor::getPreCalculatedTileLen ( void )

References preCalculatedTileLen.

◆ getPreCalculatedTileLen() [2/2]

uint32_t grk::grk::TileProcessor::getPreCalculatedTileLen ( void )

◆ getScheduler() [1/2]

Scheduler * grk::TileProcessor::getScheduler ( void )

References scheduler_.

◆ getScheduler() [2/2]

Scheduler * grk::grk::TileProcessor::getScheduler ( void )

◆ getStream() [1/2]

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

References stream_.

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

◆ getStream() [2/2]

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

◆ getTile() [1/2]

Tile * grk::TileProcessor::getTile ( void )

References tile.

◆ getTile() [2/2]

Tile * grk::grk::TileProcessor::getTile ( void )

◆ getTileCodingParams() [1/2]

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

References cp_, and tileIndex_.

◆ getTileCodingParams() [2/2]

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

◆ getTilePartDataLength() [1/2]

uint64_t grk::TileProcessor::getTilePartDataLength ( void )

References tilePartDataLength.

◆ getTilePartDataLength() [2/2]

uint64_t grk::grk::TileProcessor::getTilePartDataLength ( void )

◆ getUnreducedTileWindow() [1/2]

grk_rect32 grk::TileProcessor::getUnreducedTileWindow ( void )

◆ getUnreducedTileWindow() [2/2]

grk_rect32 grk::grk::TileProcessor::getUnreducedTileWindow ( void )

◆ incNumDecompressedPackets() [1/2]

void grk::TileProcessor::incNumDecompressedPackets ( void )

◆ incNumDecompressedPackets() [2/2]

void grk::grk::TileProcessor::incNumDecompressedPackets ( void )

◆ incNumProcessedPackets() [1/4]

void grk::TileProcessor::incNumProcessedPackets ( uint64_t numPackets)

References numProcessedPackets.

◆ incNumProcessedPackets() [2/4]

void grk::grk::TileProcessor::incNumProcessedPackets ( uint64_t numPackets)

◆ incNumProcessedPackets() [3/4]

void grk::TileProcessor::incNumProcessedPackets ( void )

References numProcessedPackets.

◆ incNumProcessedPackets() [4/4]

void grk::grk::TileProcessor::incNumProcessedPackets ( void )

◆ incrementIndex() [1/2]

void grk::TileProcessor::incrementIndex ( void )

References tileIndex_.

◆ incrementIndex() [2/2]

void grk::grk::TileProcessor::incrementIndex ( void )

◆ ingestImage() [1/2]

void grk::TileProcessor::ingestImage ( )

References grk::ceildiv(), headerImage, tile, and tilec.

◆ ingestImage() [2/2]

void grk::grk::TileProcessor::ingestImage ( )

◆ ingestUncompressedData() [1/2]

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

◆ ingestUncompressedData() [2/2]

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

◆ init() [1/2]

◆ init() [2/2]

bool grk::grk::TileProcessor::init ( void )

◆ isCompressor() [1/2]

bool grk::TileProcessor::isCompressor ( void )

References isCompressor_.

◆ isCompressor() [2/2]

bool grk::grk::TileProcessor::isCompressor ( void )

◆ isWholeTileDecompress() [1/2]

bool grk::TileProcessor::isWholeTileDecompress ( uint16_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 compno, grk::shift, tile, and tilec.

◆ isWholeTileDecompress() [2/2]

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

◆ layerNeedsRateControl() [1/2]

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

References cp_, layno, and tcp_.

◆ layerNeedsRateControl() [2/2]

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

◆ makeLayerFeasible() [1/2]

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

◆ makeLayerFeasible() [2/2]

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

◆ makeLayerFinal() [1/2]

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

◆ makeLayerFinal() [2/2]

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

◆ makeLayerSimple() [1/2]

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

◆ makeLayerSimple() [2/2]

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

◆ makeSingleLosslessLayer() [1/2]

bool grk::TileProcessor::makeSingleLosslessLayer ( )
private

References tcp_.

◆ makeSingleLosslessLayer() [2/2]

bool grk::grk::TileProcessor::makeSingleLosslessLayer ( )
private

◆ mct_encode() [1/2]

bool grk::TileProcessor::mct_encode ( )
private

References data, headerImage, mct_, tcp_, and tile.

◆ mct_encode() [2/2]

bool grk::grk::TileProcessor::mct_encode ( )
private

◆ mctDecompress() [1/2]

bool grk::TileProcessor::mctDecompress ( FlowComponent * flow)
private

References data, headerImage, mct_, tcp_, and tile.

◆ mctDecompress() [2/2]

bool grk::grk::TileProcessor::mctDecompress ( FlowComponent * flow)
private

◆ needsMctDecompress() [1/4]

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

References compno.

◆ needsMctDecompress() [2/4]

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

◆ needsMctDecompress() [3/4]

bool grk::TileProcessor::needsMctDecompress ( void )
private

References grk::GRK_WARN(), headerImage, tcp_, and tile.

◆ needsMctDecompress() [4/4]

bool grk::grk::TileProcessor::needsMctDecompress ( void )
private

◆ needsRateControl() [1/2]

bool grk::TileProcessor::needsRateControl ( )

References tcp_.

◆ needsRateControl() [2/2]

bool grk::grk::TileProcessor::needsRateControl ( )

◆ pcrdBisectFeasible() [1/2]

◆ pcrdBisectFeasible() [2/2]

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

◆ pcrdBisectSimple() [1/2]

◆ pcrdBisectSimple() [2/2]

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

◆ preCompressTile() [1/2]

bool grk::TileProcessor::preCompressTile ( void )

◆ preCompressTile() [2/2]

bool grk::grk::TileProcessor::preCompressTile ( void )

◆ rateAllocate() [1/2]

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

References cp_.

◆ rateAllocate() [2/2]

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

◆ release() [1/2]

void grk::TileProcessor::release ( GRK_TILE_CACHE_STRATEGY strategy)

◆ release() [2/2]

void grk::grk::TileProcessor::release ( GRK_TILE_CACHE_STRATEGY strategy)

◆ setCorruptPacket() [1/2]

void grk::TileProcessor::setCorruptPacket ( void )

◆ setCorruptPacket() [2/2]

void grk::grk::TileProcessor::setCorruptPacket ( void )

◆ setTilePartDataLength() [1/2]

bool grk::TileProcessor::setTilePartDataLength ( uint16_t tilePart,
uint32_t tilePartLength,
bool lastTilePartInCodeStream )

◆ setTilePartDataLength() [2/2]

bool grk::grk::TileProcessor::setTilePartDataLength ( uint16_t tilePart,
uint32_t tilePartLength,
bool lastTilePartInCodeStream )

◆ subtractMarkerSegmentLength() [1/2]

bool grk::TileProcessor::subtractMarkerSegmentLength ( uint16_t markerLen)

◆ subtractMarkerSegmentLength() [2/2]

bool grk::grk::TileProcessor::subtractMarkerSegmentLength ( uint16_t markerLen)

◆ t1_encode() [1/2]

void grk::TileProcessor::t1_encode ( )
private

◆ t1_encode() [2/2]

void grk::grk::TileProcessor::t1_encode ( )
private

◆ writeTilePartT2() [1/2]

◆ writeTilePartT2() [2/2]

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

Member Data Documentation

◆ corrupt_packet_

bool grk::grk::TileProcessor::corrupt_packet_
private

◆ cp_

CodingParams * grk::grk::TileProcessor::cp_

◆ current_plugin_tile

grk_plugin_tile * grk::grk::TileProcessor::current_plugin_tile

◆ first_poc_tile_part_

bool grk::grk::TileProcessor::first_poc_tile_part_

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

◆ headerImage

GrkImage * grk::grk::TileProcessor::headerImage

◆ image_

GrkImage * grk::grk::TileProcessor::image_
private

◆ isCompressor_

bool grk::grk::TileProcessor::isCompressor_
private

◆ mct_

mct * grk::grk::TileProcessor::mct_
private

◆ newTilePartProgressionPosition

uint32_t grk::grk::TileProcessor::newTilePartProgressionPosition
private

position of the tile part flag in progression order

◆ numDecompressedPackets

std::atomic< uint64_t > grk::grk::TileProcessor::numDecompressedPackets
private

◆ numProcessedPackets

uint64_t grk::grk::TileProcessor::numProcessedPackets
private

◆ packetLengthCache

PLCache grk::grk::TileProcessor::packetLengthCache

◆ packetTracker_

PacketTracker grk::grk::TileProcessor::packetTracker_
private

◆ pino

uint32_t grk::grk::TileProcessor::pino

Compression Only Current packet iterator number.

◆ preCalculatedTileLen

uint32_t grk::grk::TileProcessor::preCalculatedTileLen
private

◆ scheduler_

Scheduler * grk::grk::TileProcessor::scheduler_
private

◆ stream_

BufferedStream * grk::grk::TileProcessor::stream_
private

◆ tcp_

TileCodingParams * grk::grk::TileProcessor::tcp_
private

◆ tile

Tile * grk::grk::TileProcessor::tile
private

◆ tileIndex_

uint16_t grk::grk::TileProcessor::tileIndex_
private

index of tile being currently compressed/decompressed

◆ tilePartCounter_

uint8_t grk::grk::TileProcessor::tilePartCounter_

Compressing Only index of tile part being currently coding.

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

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

◆ tilePartDataLength

uint64_t grk::grk::TileProcessor::tilePartDataLength
private

◆ truncated

bool grk::grk::TileProcessor::truncated
private

◆ unreducedImageWindow

grk_rect32 grk::grk::TileProcessor::unreducedImageWindow
private

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