41 explicit Tile(uint16_t numcomps);
53 void init(uint32_t numcomps, uint32_t numres, uint64_t numprec, uint32_t numlayers);
55 void packet_encoded(uint32_t comps, uint32_t res, uint64_t prec, uint32_t layer);
56 bool is_packet_encoded(uint32_t comps, uint32_t res, uint64_t prec, uint32_t layer);
66 uint64_t
get_buffer_len(uint32_t numcomps, uint32_t numres, uint64_t numprec, uint32_t numlayers);
67 uint64_t
index(uint32_t comps, uint32_t res, uint64_t prec, uint32_t layer);
95 void release(uint32_t strategy);
128 bool lastTilePartInCodeStream);
144 bool encodeT2(uint32_t* packet_bytes_written);
145 bool rateAllocate(uint32_t* allPacketBytes,
bool disableRateControl);
150 void makeLayerSimple(uint32_t layno,
double thresh,
bool finalAttempt);
Definition FlowComponent.h:21
Definition CodeStreamDecompress.h:38
Definition CodeStream.h:133
Definition Scheduler.h:22
Copyright (C) 2016-2025 Grok Image Compression Inc.
Definition ICacheable.h:20
const uint16_t maxCompressLayersGRK
Definition CodeStreamLimits.h:43
grk_rect< uint32_t > grk_rect32
Definition geometry.h:61
Definition BufferedStream.h:35
Coding parameters.
Definition CodingParams.h:245
Definition TileProcessor.h:50
uint8_t * bits
Definition TileProcessor.h:59
void init(uint32_t numcomps, uint32_t numres, uint64_t numprec, uint32_t numlayers)
Definition TileProcessor.cpp:1501
uint32_t numres_
Definition TileProcessor.h:62
bool is_packet_encoded(uint32_t comps, uint32_t res, uint64_t prec, uint32_t layer)
Definition TileProcessor.cpp:1546
PacketTracker()
Definition TileProcessor.cpp:1495
uint64_t get_buffer_len(uint32_t numcomps, uint32_t numres, uint64_t numprec, uint32_t numlayers)
Definition TileProcessor.cpp:1528
void clear(void)
Definition TileProcessor.cpp:1523
uint64_t index(uint32_t comps, uint32_t res, uint64_t prec, uint32_t layer)
Definition TileProcessor.cpp:1557
uint64_t numprec_
Definition TileProcessor.h:63
uint32_t numcomps_
Definition TileProcessor.h:61
void packet_encoded(uint32_t comps, uint32_t res, uint64_t prec, uint32_t layer)
Definition TileProcessor.cpp:1535
~PacketTracker()
Definition TileProcessor.cpp:1497
uint32_t numlayers_
Definition TileProcessor.h:64
Tile coding parameters : this structure is used to store coding/decoding parameters common to all til...
Definition CodingParams.h:122
Definition TileComponent.h:28
Definition TileProcessor.h:39
Tile()
Definition TileProcessor.cpp:1479
virtual ~Tile()
Definition TileProcessor.cpp:1491
TileComponent * comps
Definition TileProcessor.h:44
double layerDistoration[maxCompressLayersGRK]
Definition TileProcessor.h:46
uint16_t numcomps_
Definition TileProcessor.h:43
double distortion
Definition TileProcessor.h:45
bool rateAllocate(uint32_t *allPacketBytes, bool disableRateControl)
Definition TileProcessor.cpp:1132
~TileProcessor()
Definition TileProcessor.cpp:36
GrkImage * getImage(void)
Definition TileProcessor.cpp:158
GrkImage * image_
Definition TileProcessor.h:170
uint32_t getPreCalculatedTileLen(void)
Definition TileProcessor.cpp:123
bool corrupt_packet_
Definition TileProcessor.h:164
void t1_encode()
Definition TileProcessor.cpp:802
bool mct_encode()
Definition TileProcessor.cpp:759
bool pcrdBisectSimple(uint32_t *p_data_written, bool disableRateControl)
Definition TileProcessor.cpp:1167
void release(uint32_t strategy)
Definition TileProcessor.cpp:162
uint64_t getNumDecompressedPackets(void)
Definition TileProcessor.cpp:111
PacketTracker packetTracker_
Definition TileProcessor.h:162
TileProcessor(uint16_t index, CodeStream *codeStream, BufferedStream *stream, bool isCompressor)
Definition TileProcessor.cpp:24
bool needsRateControl()
Definition TileProcessor.cpp:1142
Tile * tile
Definition TileProcessor.h:152
TileCodingParams * getTileCodingParams(void)
Definition TileProcessor.cpp:180
bool first_poc_tile_part_
Compression Only true for first POC tile part, otherwise false.
Definition TileProcessor.h:112
void makeLayerSimple(uint32_t layno, double thresh, bool finalAttempt)
Definition TileProcessor.cpp:1333
PacketTracker * getPacketTracker(void)
Definition TileProcessor.cpp:176
GrkImage * headerImage
Definition TileProcessor.h:121
bool dcLevelShiftCompress()
Definition TileProcessor.cpp:716
uint32_t pino
Compression Only Current packet iterator number.
Definition TileProcessor.h:120
bool isWholeTileDecompress(uint16_t compno)
Returns whether a tile component should be fully decompressed, taking into account win_* members.
Definition TileProcessor.cpp:415
Scheduler * getScheduler(void)
Definition TileProcessor.cpp:144
bool truncated
Definition TileProcessor.h:169
void makeLayerFinal(uint32_t layno)
Definition TileProcessor.cpp:1424
bool setTilePartDataLength(uint16_t tilePart, uint32_t tilePartLength, bool lastTilePartInCodeStream)
Definition TileProcessor.cpp:62
void generateImage(GrkImage *src_image, Tile *src_tile)
Definition TileProcessor.cpp:152
void incNumProcessedPackets(void)
Definition TileProcessor.cpp:103
BufferedStream * stream_
Definition TileProcessor.h:163
bool preCompressTile(void)
Definition TileProcessor.cpp:926
bool subtractMarkerSegmentLength(uint16_t markerLen)
Definition TileProcessor.cpp:46
uint16_t getIndex(void) const
Definition TileProcessor.cpp:132
void deallocBuffers()
Definition TileProcessor.cpp:300
uint8_t tilePartCounter_
Compressing Only index of tile part being currently coding.
Definition TileProcessor.h:117
bool canWritePocMarker(void)
Definition TileProcessor.cpp:384
uint32_t preCalculatedTileLen
Definition TileProcessor.h:173
uint64_t getNumProcessedPackets(void)
Definition TileProcessor.cpp:99
Tile * getTile(void)
Definition TileProcessor.cpp:140
bool isCompressor_
Definition TileProcessor.h:171
bool createWindowBuffers(const GrkImage *outputImage)
Definition TileProcessor.cpp:266
Scheduler * scheduler_
Definition TileProcessor.h:153
void setCorruptPacket(void)
bool mctDecompress(FlowComponent *flow)
Definition TileProcessor.cpp:690
bool encodeT2(uint32_t *packet_bytes_written)
Definition TileProcessor.cpp:826
bool doCompress(void)
Definition TileProcessor.cpp:308
uint64_t getTilePartDataLength(void)
Definition TileProcessor.cpp:42
grk_rect32 getUnreducedTileWindow(void)
Definition TileProcessor.cpp:295
bool isCompressor(void)
Definition TileProcessor.cpp:148
uint8_t getMaxNumDecompressResolutions(void)
Definition TileProcessor.cpp:184
bool layerNeedsRateControl(uint32_t layno)
Definition TileProcessor.cpp:1136
mct * mct_
Definition TileProcessor.h:174
bool ingestUncompressedData(uint8_t *p_src, uint64_t src_length)
Definition TileProcessor.cpp:978
std::atomic< uint64_t > numDecompressedPackets
Definition TileProcessor.h:155
bool init(void)
Definition TileProcessor.cpp:201
grk_plugin_tile * current_plugin_tile
Definition TileProcessor.h:122
bool dwt_encode()
Definition TileProcessor.cpp:786
bool writeTilePartT2(uint32_t *tileBytesWritten)
Definition TileProcessor.cpp:391
uint64_t tilePartDataLength
Definition TileProcessor.h:157
bool makeSingleLosslessLayer()
Definition TileProcessor.cpp:1153
TileCodingParams * tcp_
Definition TileProcessor.h:168
grk_rect32 unreducedImageWindow
Definition TileProcessor.h:172
bool cacheTilePartPackets(CodeStreamDecompress *codeStream)
Definition TileProcessor.cpp:1036
bool decompressT2T1(GrkImage *outputImage)
Definition TileProcessor.cpp:431
uint16_t tileIndex_
index of tile being currently compressed/decompressed
Definition TileProcessor.h:159
void incrementIndex(void)
Definition TileProcessor.cpp:136
uint64_t numProcessedPackets
Definition TileProcessor.h:154
BufferedStream * getStream(void)
Definition TileProcessor.cpp:119
void ingestImage()
Definition TileProcessor.cpp:642
bool needsMctDecompress(void)
Definition TileProcessor.cpp:664
CodingParams * cp_
Definition TileProcessor.h:123
bool canPreCalculateTileLen(void)
Definition TileProcessor.cpp:127
PLCache packetLengthCache
Definition TileProcessor.h:124
uint32_t newTilePartProgressionPosition
position of the tile part flag in progression order
Definition TileProcessor.h:166
void incNumDecompressedPackets(void)
Definition TileProcessor.cpp:115