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

#include <TileProcessor.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)
 

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 disableRateControl)
 
bool layerNeedsRateControl (uint32_t layno)
 
bool makeSingleLosslessLayer ()
 
void makeLayerFinal (uint32_t layno)
 
bool pcrdBisectSimple (uint32_t *p_data_written, bool disableRateControl)
 
void makeLayerSimple (uint32_t layno, double thresh, bool finalAttempt)
 

Private Attributes

Tiletile
 
Schedulerscheduler_
 
uint64_t numProcessedPackets
 
std::atomic< uint64_tnumDecompressedPackets
 
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()

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

◆ ~TileProcessor()

grk::TileProcessor::~TileProcessor ( )

Member Function Documentation

◆ cacheTilePartPackets()

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

◆ canPreCalculateTileLen()

bool grk::TileProcessor::canPreCalculateTileLen ( void )

◆ canWritePocMarker()

bool grk::TileProcessor::canWritePocMarker ( void )

◆ createWindowBuffers()

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

◆ dcLevelShiftCompress()

bool grk::TileProcessor::dcLevelShiftCompress ( )
private

◆ deallocBuffers()

void grk::TileProcessor::deallocBuffers ( )

◆ decompressT2T1()

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

◆ 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 image_.

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

◆ getIndex()

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

◆ getMaxNumDecompressResolutions()

uint8_t grk::TileProcessor::getMaxNumDecompressResolutions ( void )

◆ getNumDecompressedPackets()

uint64_t grk::TileProcessor::getNumDecompressedPackets ( void )

References numDecompressedPackets.

Referenced by decompressT2T1().

◆ getNumProcessedPackets()

uint64_t grk::TileProcessor::getNumProcessedPackets ( void )

◆ getPacketTracker()

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

◆ getPreCalculatedTileLen()

uint32_t grk::TileProcessor::getPreCalculatedTileLen ( void )

◆ getScheduler()

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

References scheduler_.

◆ getStream()

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

References stream_.

◆ getTile()

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

◆ getTileCodingParams()

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

◆ getTilePartDataLength()

uint64_t grk::TileProcessor::getTilePartDataLength ( void )

◆ getUnreducedTileWindow()

grk_rect32 grk::TileProcessor::getUnreducedTileWindow ( void )

◆ incNumDecompressedPackets()

void grk::TileProcessor::incNumDecompressedPackets ( void )

◆ incNumProcessedPackets() [1/2]

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

◆ incNumProcessedPackets() [2/2]

void grk::TileProcessor::incNumProcessedPackets ( void )

◆ incrementIndex()

void grk::TileProcessor::incrementIndex ( 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 )

◆ isCompressor()

bool grk::TileProcessor::isCompressor ( void )

◆ isWholeTileDecompress()

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 grk::TileComponentWindowBase< T >::bounds(), grk::Tile::comps, grk::TileComponent::getWindow(), grk::grk_read(), grk::grk_rect< T >::intersection(), and tile.

Referenced by decompressT2T1().

◆ layerNeedsRateControl()

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

◆ makeLayerFinal()

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

◆ makeLayerSimple()

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

◆ makeSingleLosslessLayer()

bool grk::TileProcessor::makeSingleLosslessLayer ( )
private

◆ mct_encode()

bool grk::TileProcessor::mct_encode ( )
private

◆ mctDecompress()

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

◆ needsMctDecompress() [1/2]

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

References needsMctDecompress().

◆ needsMctDecompress() [2/2]

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

◆ needsRateControl()

bool grk::TileProcessor::needsRateControl ( )

◆ pcrdBisectSimple()

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

◆ preCompressTile()

bool grk::TileProcessor::preCompressTile ( void )

◆ rateAllocate()

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

References grk::grk_read(), and pcrdBisectSimple().

Referenced by doCompress().

◆ release()

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

◆ setCorruptPacket()

void grk::TileProcessor::setCorruptPacket ( void )

◆ setTilePartDataLength()

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

◆ subtractMarkerSegmentLength()

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

◆ t1_encode()

void grk::TileProcessor::t1_encode ( )
private

◆ writeTilePartT2()

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

Member Data Documentation

◆ corrupt_packet_

bool grk::TileProcessor::corrupt_packet_
private

◆ cp_

CodingParams* grk::TileProcessor::cp_

◆ current_plugin_tile

grk_plugin_tile* grk::TileProcessor::current_plugin_tile

◆ first_poc_tile_part_

bool grk::TileProcessor::first_poc_tile_part_

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

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

◆ headerImage

GrkImage* grk::TileProcessor::headerImage

◆ image_

GrkImage* grk::TileProcessor::image_
private

Referenced by generateImage(), getImage(), and release().

◆ isCompressor_

bool grk::TileProcessor::isCompressor_
private

◆ mct_

mct* grk::TileProcessor::mct_
private

◆ newTilePartProgressionPosition

uint32_t grk::TileProcessor::newTilePartProgressionPosition
private

position of the tile part flag in progression order

Referenced by encodeT2(), and pcrdBisectSimple().

◆ numDecompressedPackets

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

◆ numProcessedPackets

uint64_t grk::TileProcessor::numProcessedPackets
private

◆ packetLengthCache

PLCache grk::TileProcessor::packetLengthCache

◆ packetTracker_

PacketTracker grk::TileProcessor::packetTracker_
private

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

◆ pino

uint32_t grk::TileProcessor::pino

Compression Only Current packet iterator number.

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

◆ preCalculatedTileLen

uint32_t grk::TileProcessor::preCalculatedTileLen
private

◆ scheduler_

Scheduler* grk::TileProcessor::scheduler_
private

◆ stream_

BufferedStream* grk::TileProcessor::stream_
private

◆ tcp_

TileCodingParams* grk::TileProcessor::tcp_
private

◆ tile

Tile* grk::TileProcessor::tile
private

◆ tileIndex_

uint16_t grk::TileProcessor::tileIndex_
private

◆ tilePartCounter_

uint8_t 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 canWritePocMarker(), preCompressTile(), grk::CodeStreamCompress::writeTilePart(), grk::CodeStreamCompress::writeTileParts(), and writeTilePartT2().

◆ tilePartDataLength

uint64_t grk::TileProcessor::tilePartDataLength
private

◆ truncated

bool grk::TileProcessor::truncated
private

◆ unreducedImageWindow

grk_rect32 grk::TileProcessor::unreducedImageWindow
private

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