64 bool update(uint8_t resno, uint64_t bitIndex)
67 throw std::out_of_range(
"Resolution index out of range");
70 chunkMap[resno] =
new std::unordered_map<size_t, uint8_t*>();
73 uint64_t byteIndex = bitIndex >> 3;
79 if(!chunks.contains(chunkIndex))
82 auto include = chunks[chunkIndex] + chunkOffset;
83 uint8_t bit = (bitIndex & 7);
84 uint8_t val = *include;
85 if(((val >> bit) & 1) == 0)
87 *include = (uint8_t)(val | (1 << bit));
105 delete[] chunk.second;
135 bool update(uint16_t layno, uint8_t resno, uint16_t compno, uint64_t precno)
149 layerBuf =
include->operator[](layno);
156 uint64_t bitIndex = compno * numprecs + precno;
158 return layerBuf->
update(resno, bitIndex);
184 std::unordered_map<uint16_t, LayerIncludeBuffers*>*
include;
202 uint8_t newTilePartProgressionPosition);
237 Rect32 tileBounds, uint64_t max_precincts,
238 uint8_t max_res, uint32_t dx_min, uint32_t dy_min,
261 uint16_t tileno,
Rect32* tileBounds, uint32_t* dx_min, uint32_t* dy_min,
262 IncludeTracker* includeTracker, uint64_t* max_precincts, uint8_t* max_res,
263 uint32_t** componentPrecinctInfo);
Stores header and data for an image.
Definition GrkImage.h:54
Rect32 getTileBounds(void)
Definition PacketManager.cpp:103
static void updateCompressTcpProgressions(TileCodingParams *tcp, uint16_t num_comps, Rect32 tileBounds, uint64_t max_precincts, uint8_t max_res, uint32_t dx_min, uint32_t dy_min, bool poc)
Updates the coding parameters.
Definition PacketManager.cpp:216
static void updateCompressParams(const GrkImage *image, CodingParams *p_cp, TileCodingParams *tcp, uint16_t tile_no)
Updates the compressing parameters of the codec.
Definition PacketManager.cpp:239
IncludeTracker * includeTracker_
Definition PacketManager.h:267
ITileProcessor * getTileProcessor(void)
Definition PacketManager.cpp:123
CodingParams * getCodingParams(void)
Definition PacketManager.cpp:107
T2_MODE getT2Mode(void)
Definition PacketManager.cpp:111
uint16_t tileIndex_
Definition PacketManager.h:266
GrkImage * getImage()
Definition PacketManager.cpp:99
IncludeTracker * getIncludeTracker(void)
Definition PacketManager.cpp:254
static void getParams(const GrkImage *image, CodingParams *p_cp, TileCodingParams *tcp, uint16_t tileno, Rect32 *tileBounds, uint32_t *dx_min, uint32_t *dy_min, IncludeTracker *includeTracker, uint64_t *max_precincts, uint8_t *max_res, uint32_t **componentPrecinctInfo)
Get the compression parameters needed to update the coding parameters and all the pocs.
Definition PacketManager.cpp:134
virtual ~PacketManager()
Definition PacketManager.cpp:90
void enable_tile_part_generation(uint32_t prog_iter_num, bool first_poc_tile_part, uint8_t newTilePartProgressionPosition)
Modify the packet iterator for enabling tile part generation.
Definition PacketManager.cpp:127
uint32_t getNumProgressions(void)
Definition PacketManager.cpp:115
CodingParams * cp_
Definition PacketManager.h:265
PacketIter * getPacketIter(uint32_t poc) const
Definition PacketManager.cpp:119
GrkImage * image_
Definition PacketManager.h:264
PacketManager(bool compression, GrkImage *img, CodingParams *cparams, uint16_t tilenumber, T2_MODE t2_mode, ITileProcessor *tileProc)
Definition PacketManager.cpp:50
Rect32 tileBounds_
Definition PacketManager.h:271
PacketIter * pi_
Definition PacketManager.h:268
T2_MODE t2Mode_
Definition PacketManager.h:269
ITileProcessor * tileProcessor_
Definition PacketManager.h:270
#define GRK_MAXRLVLS
Definition grok.h:336
ResWindow.
Definition CompressedChunkCache.h:36
T2_MODE
Definition PacketIter.h:26
Rect< uint32_t > Rect32
Definition geometry.h:64
constexpr size_t GRK_INCLUDE_TRACKER_CHUNK_SIZE
Chunk size for chunked resolution include buffer.
Definition PacketManager.h:26
Coding parameters.
Definition CodingParams.h:402
Interface for managing tile compression/decompression.
Definition ITileProcessor.h:37
Definition PacketManager.h:121
~IncludeTracker()
Definition PacketManager.h:129
IncludeTracker(void)
Definition PacketManager.h:122
void updateNumPrecinctsPerRes(uint8_t resno, uint64_t numPrecincts)
Definition PacketManager.h:174
std::unordered_map< uint16_t, LayerIncludeBuffers * > * include
Definition PacketManager.h:184
uint64_t numPrecinctsPerRes[GRK_MAXRLVLS]
Definition PacketManager.h:181
bool update(uint16_t layno, uint8_t resno, uint16_t compno, uint64_t precno)
Definition PacketManager.h:135
uint16_t currentLayer
Definition PacketManager.h:182
void clear()
Definition PacketManager.h:161
void resetNumPrecinctsPerRes(void)
Definition PacketManager.h:168
LayerIncludeBuffers * currentLayerIncludeBuf
Definition PacketManager.h:183
Include buffers for all resolutions in a given layer.
Definition PacketManager.h:35
LayerIncludeBuffers()
Construct a new LayerIncludeBuffers object.
Definition PacketManager.h:40
~LayerIncludeBuffers()
Destroy the LayerIncludeBuffers object.
Definition PacketManager.h:50
bool update(uint8_t resno, uint64_t bitIndex)
Get the byte object Lazily get or allocate a resolution's specific byte within its include buffer's m...
Definition PacketManager.h:64
std::unordered_map< size_t, uint8_t * > * chunkMap[GRK_MAXRLVLS]
Lazily allocated maps of chunks for each resolution.
Definition PacketManager.h:117
void clear()
Clears all chunks and chunkMaps.
Definition PacketManager.h:98
Iterates through JPEG 2000 packets following a progression order.
Definition PacketIter.h:240
Tile coding parameters : this structure is used to store coding/decoding parameters common to all til...
Definition CodingParams.h:124