41struct ResIncludeBuffers
57 IncludeTracker(uint16_t numcomponents)
59 include(
new std::map<uint16_t, ResIncludeBuffers*>())
69 uint8_t* get_include(uint16_t layerno, uint8_t
resno)
71 ResIncludeBuffers* resBuf =
nullptr;
80 resBuf =
new ResIncludeBuffers;
81 include->operator[](layerno) = resBuf;
85 resBuf =
include->operator[](layerno);
95 assert(
len <= std::numeric_limits<size_t>::max());
96 buf =
new uint8_t[(size_t)
len];
97 memset(
buf, 0, (
size_t)
len);
102 bool update(uint16_t
layno, uint8_t
resno, uint16_t
compno, uint64_t precno)
106 uint64_t index =
compno * numprecs + precno;
107 uint64_t include_index = (index >> 3);
108 uint32_t
shift = (index & 7);
110 if(((
val >> shift) & 1) == 0)
112 include[include_index] = (uint8_t)(
val | (1 << shift));
130 std::map<uint16_t, ResIncludeBuffers*>*
include;
140struct ResPrecinctInfo
143 bool init(uint8_t
resno, uint8_t decomplevel, grk_rect32 tileBounds, uint32_t
dx, uint32_t
dy,
144 bool windowed, grk_rect32 tileWindow);
221 void init(PacketManager* packetMan, uint32_t
pino, TileCodingParams* tcp,
grk_rect32 tileBounds,
222 bool compression, uint8_t max_res, uint64_t max_precincts,
223 uint32_t* resolutionPrecinctGrid, uint32_t** precinctByComponent);
225 void printStaticState(
void);
226 void printDynamicState(
void);
234 void enableTilePartGeneration(uint32_t
pino,
bool first_poc_tile_part, uint32_t tppos);
236 bool genPrecinctInfoOPT();
237 void genPrecinctInfo();
238 void genPrecinctInfo(PiComp* comp, PiResolution* res, uint8_t resNumber);
240 uint8_t* get_include(uint16_t layerIndex);
241 bool update_include(
void);
242 void destroy_include(
void);
248 bool next(SparseBuffer* src);
250 uint16_t getCompno(
void)
const;
251 uint8_t getResno(
void)
const;
252 uint64_t getPrecinctIndex(
void)
const;
253 uint16_t getLayno(
void)
const;
269 void update_dxy(
void);
270 bool checkForRemainingValidProgression(int32_t
prog, uint32_t
pino,
const char* progString);
287 bool genPrecinctY0Grid(ResPrecinctInfo* rpInfo);
288 bool genPrecinctX0Grid(ResPrecinctInfo* rpInfo);
289 void genPrecinctY0GridRPCL_OPT(ResPrecinctInfo* rpInfo);
290 void genPrecinctX0GridRPCL_OPT(ResPrecinctInfo* rpInfo);
291 bool genPrecinctX0GridPCRL_OPT(ResPrecinctInfo* rpInfo);
292 bool genPrecinctY0GridPCRL_OPT(ResPrecinctInfo* rpInfo);
293 bool precInfoCheck(ResPrecinctInfo* rpInfo);
294 void generatePrecinctIndex(
void);
295 bool validatePrecinct(
void);
296 void update_dxy_for_comp(PiComp* comp,
bool updateActive);
297 bool isWholeTile(
void);
303 bool next_cprl(SparseBuffer* src);
304 bool next_cprlOPT(SparseBuffer* src);
310 bool next_pcrl(SparseBuffer* src);
311 bool next_pcrlOPT(SparseBuffer* src);
317 bool next_lrcp(SparseBuffer* src);
318 bool next_lrcpOPT(SparseBuffer* src);
323 bool next_rlcp(SparseBuffer* src);
324 bool next_rlcpOPT(SparseBuffer* src);
329 bool next_rpcl(SparseBuffer* src);
330 bool next_rpclOPT(SparseBuffer* src);
332 bool skipPackets(SparseBuffer* src, uint64_t numPackets);
uint8_t buf
Definition BitIO.h:84
uint64_t precinctIndex
Definition BlockExec.h:78
uint8_t resno
Definition BlockExec.h:53
uint32_t y
Definition BlockExec.h:39
uint32_t x
Definition BlockExec.h:38
uint32_t len
Definition Codeblock.h:38
uint32_t precWidthExp[GRK_J2K_MAXRLVLS]
precinct width (power of 2 exponent, < 16)
Definition CodingParams.h:85
uint8_t numresolutions
number of resolutions
Definition CodingParams.h:58
uint32_t precHeightExp[GRK_J2K_MAXRLVLS]
precinct height (power of 2 exponent, < 16)
Definition CodingParams.h:87
grk_rect32 tileBoundsPrecPRJ
Definition PacketIter.h:163
grk_rect32 winPrecGrid
Definition PacketIter.h:166
bool incrementInner
Definition PacketIter.h:276
uint32_t px0grid_
Definition PacketIter.h:284
uint32_t resInPrecGridX0
Definition PacketIter.h:159
PiResolution * resolutions
Definition PacketIter.h:210
uint64_t numPrecinctsPerRes[GRK_J2K_MAXRLVLS]
Definition PacketIter.h:124
uint8_t resno_
Definition PacketIter.h:161
bool valid
Definition PacketIter.h:172
uint32_t dyActive
Definition PacketIter.h:268
uint64_t innerPrecincts_
Definition PacketIter.h:167
uint64_t precWidthPRJ
Definition PacketIter.h:152
uint64_t winPrecinctsLeft_
Definition PacketIter.h:168
uint64_t winPrecinctsBottom_
Definition PacketIter.h:171
uint32_t py0grid_
Definition PacketIter.h:285
uint64_t precHeightPRJMinusOne
Definition PacketIter.h:155
uint64_t dxPRJ
Definition PacketIter.h:157
ResPrecinctInfo * precinctInfoOPT_
Definition PacketIter.h:282
uint32_t dy
Definition PacketIter.h:208
uint64_t precWidthPRJMinusOne
Definition PacketIter.h:153
uint32_t resInPrecGridY0
Definition PacketIter.h:160
uint32_t precWidthExpPRJ
Definition PacketIter.h:148
PacketManager * packetManager
Definition PacketIter.h:278
uint64_t precHeightPRJ
Definition PacketIter.h:154
uint64_t dyPRJ
Definition PacketIter.h:158
ResIncludeBuffers * currentResBuf
Definition PacketIter.h:129
uint64_t winPrecinctsTop_
Definition PacketIter.h:170
uint16_t currentLayer
Definition PacketIter.h:128
uint32_t dx
component sub-sampling
Definition PacketIter.h:207
grk_rect32 tileBoundsPrecGrid
Definition PacketIter.h:164
uint32_t dxActive
Definition PacketIter.h:268
uint8_t decompLevel_
Definition PacketIter.h:162
grk_rect32 winPrecPRJ
Definition PacketIter.h:165
uint32_t resOffsetY0PRJ
Definition PacketIter.h:151
uint32_t precHeightExpPRJ
Definition PacketIter.h:149
grk_progression prog
Definition PacketIter.h:260
std::map< uint16_t, ResIncludeBuffers * > * include
Definition PacketIter.h:130
uint8_t * buffers[GRK_J2K_MAXRLVLS]
Definition PacketIter.h:53
uint64_t numPrecincts_
Definition PacketIter.h:156
uint8_t maxNumDecompositionResolutions
Definition PacketIter.h:279
bool singleProgression_
Definition PacketIter.h:280
bool compression_
Definition PacketIter.h:281
uint16_t layno
Definition PacketIter.h:259
uint64_t winPrecinctsRight_
Definition PacketIter.h:169
uint32_t resOffsetX0PRJ
Definition PacketIter.h:150
bool skippedLeft_
Definition PacketIter.h:286
ResPrecinctInfo * precinctInfo
Definition PacketIter.h:192
uint32_t precinctGridHeight
Definition Resolution.h:35
uint32_t precinctGridWidth
Definition Resolution.h:35
uint32_t pino
Compression Only Current packet iterator number.
Definition TileProcessor.h:121
T val[N]
Definition WaveletCommon.h:65
enum _GRK_PROG_ORDER GRK_PROG_ORDER
Progression order.
grk_rect< uint32_t > grk_rect32
Definition TileCache.h:61
Copyright (C) 2016-2023 Grok Image Compression Inc.
Definition ICacheable.h:20
const double shift
Definition RateControl.cpp:165
J2K_T2_MODE
Definition PacketIter.h:36
@ FINAL_PASS
Function called in rate allocation process.
Definition PacketIter.h:38
@ THRESH_CALC
Definition PacketIter.h:37
uint16_t compno
Definition plugin_interface.h:43
Progression order change.
Definition grok.h:135