|
Grok 20.3.2
|
Iterates through JPEG 2000 packets following a progression order. More...
#include <PacketIter.h>
Public Member Functions | |
| PacketIter () | |
| Constructs PacketIter. | |
| ~PacketIter () | |
| Destroys PacketIter. | |
| void | init (PacketManager *packetMan, uint32_t pocIndex, TileCodingParams *tcp, Rect32 tileBounds, bool compression, uint8_t max_res, uint64_t max_precincts, uint32_t **componentPrecinctInfo) |
| Initializes PacketItr. | |
| void | printStaticState (void) |
| Prints static debug state of iterator. | |
| void | printDynamicState (void) |
| Prints dynamic debug state of the iterator. | |
| void | enable_tile_part_generation (uint32_t prog_iter_num, bool first_poc_tile_part, uint8_t newTilePartProgressionPosition) |
| Modifies the packet iterator to enable tile part generation. | |
| bool | genPrecinctInfoOPT () |
| Generates optimized precinct information. | |
| void | genPrecinctInfo () |
| Generates non-optimized precinct information. | |
| void | genPrecinctInfo (PacketIterInfoComponent *comp, PacketIterInfoResolution *res, uint8_t resNumber) |
| Generates precinct information. | |
| uint8_t * | get_include (uint16_t layerIndex) |
| Gets point to packet include information i.e. | |
| bool | update_include (void) |
| Updates include state for current packet. | |
| void | destroy_include (void) |
| Clears all include states. | |
| bool | next (SparseBuffer *compressedPackets) |
| Moves to next packet. | |
| GRK_PROG_ORDER | getProgression (void) const |
| Gets current progression order. | |
| uint16_t | getCompno (void) const |
| Gets component number for iterator's current packet. | |
| uint8_t | getResno (void) const |
| Gets resolution number for iterator's current packet. | |
| uint64_t | getPrecinctIndex (void) const |
| Gets precinct index for iterator's current packet. | |
| uint16_t | getLayno (void) const |
| Gets layer number for iterator's current packet. | |
Private Member Functions | |
| void | update_dxy (void) |
| Computes dx/dy step sizes for all components. | |
| bool | checkForRemainingValidProgression (int32_t prog, uint32_t prog_iter_num, const char *progString) |
| Checks if there is a remaining valid progression for tile part generation. | |
| bool | genPrecinctY0Grid (ResPrecinctInfo *rpInfo) |
| Computes py0grid_ for the current (x,y) position (non-OPT path). | |
| bool | genPrecinctX0Grid (ResPrecinctInfo *rpInfo) |
| Computes px0grid_ for the current (x,y) position (non-OPT path). | |
| void | genPrecinctY0GridRPCL_OPT (ResPrecinctInfo *rpInfo) |
| Computes py0grid_ for RPCL OPT path (tile origin at (0,0), no subsampling). | |
| void | genPrecinctX0GridRPCL_OPT (ResPrecinctInfo *rpInfo) |
| Computes px0grid_ for RPCL OPT path. | |
| bool | genPrecinctX0GridPCRL_OPT (ResPrecinctInfo *rpInfo) |
| Computes px0grid_ for PCRL/CPRL OPT path. | |
| bool | genPrecinctY0GridPCRL_OPT (ResPrecinctInfo *rpInfo) |
| Computes py0grid_ for PCRL/CPRL OPT path. | |
| bool | precInfoCheck (ResPrecinctInfo *rpInfo) |
| Validates that the current (compno, resno, x, y) maps to a valid precinct. | |
| void | generatePrecinctIndex (void) |
| Computes precinctIndex from (px0grid_, py0grid_) and precinct grid width. | |
| bool | validatePrecinct (void) |
| Validates the current precinct and computes grid coordinates. | |
| void | update_dxy_for_comp (PacketIterInfoComponent *comp, bool updateActive) |
| Computes dx/dy for a single component and merges into the global minimum. | |
| bool | isWholeTile (void) |
| Returns true if the full tile is being decoded (no windowed sub-region). | |
| bool | next_cprl (SparseBuffer *) |
| Get next packet in component-precinct-resolution-layer order. | |
| bool | next_cprlOPT (SparseBuffer *compressedPackets) |
| bool | next_pcrl () |
| Get next packet in precinct-component-resolution-layer order. | |
| bool | next_pcrlOPT () |
| bool | next_lrcp () |
| Get next packet in layer-resolution-component-precinct order. | |
| bool | next_lrcpOPT () |
| bool | next_rlcp () |
| Get next packet in resolution-layer-component-precinct order. | |
| bool | next_rlcpOPT () |
| bool | next_rpcl (SparseBuffer *) |
| Get next packet in resolution-precinct-component-layer order. | |
| bool | next_rpclOPT (SparseBuffer *compressedPackets) |
| bool | skipPackets (SparseBuffer *compressedPackets, uint64_t numPackets) |
Private Attributes | |
| uint16_t | compno = 0 |
| current component number in iteration | |
| uint8_t | resno = 0 |
| current resolution number in iteration | |
| uint64_t | precinctIndex = 0 |
| current precinct index in iteration | |
| uint16_t | layno = 0 |
| current layer number in iteration | |
| grk_progression | prog |
| progression order and iteration bounds | |
| uint16_t | numcomps = 0 |
| number of image components | |
| PacketIterInfoComponent * | comps = nullptr |
| per-component precinct grid info, length = numcomps | |
| uint64_t | x = 0 |
| current x position in spatial progression (projected coordinates) | |
| uint64_t | y = 0 |
| current y position in spatial progression (projected coordinates) | |
| uint32_t | dx = 0 |
| Minimum horizontal step size across all components/resolutions for spatial progressions (PCRL, RPCL, CPRL). | |
| uint32_t | dy = 0 |
| Minimum vertical step size across all components/resolutions for spatial progressions. | |
| uint32_t | dxActive = 0 |
| active horizontal step (accounts for alignment to current x position) | |
| uint32_t | dyActive = 0 |
| active vertical step (accounts for alignment to current y position) | |
| bool | incrementInner = false |
| PacketManager * | packetManager = nullptr |
| owning packet manager | |
| uint8_t | maxNumDecompositionResolutions = 0 |
| max number of decomposition resolutions to decompress | |
| bool | singleProgression_ = false |
| true if there is exactly one progression (no POC markers) | |
| bool | compression_ = false |
| true when used for compression, false for decompression | |
| ResPrecinctInfo * | precinctInfoOPT_ = nullptr |
| Cached per-resolution precinct info for the optimized iteration path. | |
| uint32_t | px0grid_ = 0 |
| precinct grid x-coordinate of current precinct's top-left corner | |
| uint32_t | py0grid_ = 0 |
| precinct grid y-coordinate of current precinct's top-left corner | |
| bool | skippedLeft_ = false |
| RPCL OPT: tracks whether left-of-window precincts have been skipped for current row. | |
Iterates through JPEG 2000 packets following a progression order.
A JPEG 2000 codestream organizes compressed data into packets, each identified by a (layer, resolution, component, precinct) tuple. The order in which packets appear is determined by the progression order (LRCP, RLCP, RPCL, PCRL, or CPRL).
This iterator generates the packet sequence for a given progression order, supporting both compression and decompression, with optional windowed (sub-region) decode and progression order changes (POC).
When decompressing under common conditions, an optimized code path (methods suffixed with OPT) is used. The OPT path caches all resolution precinct info in precinctInfoOPT_ and avoids per-packet recomputation. The optimization conditions are:
PCRL, RPCL, and CPRL iterate over spatial (x,y) coordinates using step sizes dx/dy computed from component subsampling and precinct dimensions. If all resolution precinct step sizes exceed UINT32_MAX, dx/dy remain 0 and next() returns false immediately to prevent infinite loops.
| grk::PacketIter::PacketIter | ( | ) |
Constructs PacketIter.
References prog.
| grk::PacketIter::~PacketIter | ( | ) |
Destroys PacketIter.
References comps, and precinctInfoOPT_.
|
private |
Checks if there is a remaining valid progression for tile part generation.
Check if there is a remaining valid progression order.
References checkForRemainingValidProgression(), GRK_LRCP, GRK_RLCP, packetManager, and prog.
Referenced by checkForRemainingValidProgression(), and enable_tile_part_generation().
| void grk::PacketIter::destroy_include | ( | void | ) |
Clears all include states.
References packetManager.
| void grk::PacketIter::enable_tile_part_generation | ( | uint32_t | prog_iter_num, |
| bool | first_poc_tile_part, | ||
| uint8_t | newTilePartProgressionPosition ) |
Modifies the packet iterator to enable tile part generation.
| prog_iter_num | packet iterator number |
| first_poc_tile_part | true for first POC tile part |
| newTilePartProgressionPosition | position of tile part flag in the progression order |
References checkForRemainingValidProgression(), grk::CodeStreamCompress::convertProgressionOrder(), grk::FINAL_PASS, GRK_IS_CINEMA, GRK_IS_IMF, GRK_LRCP, GRK_RLCP, packetManager, and prog.
|
private |
Computes precinctIndex from (px0grid_, py0grid_) and precinct grid width.
References compno, comps, precinctIndex, px0grid_, py0grid_, and resno.
Referenced by next_cprl(), next_pcrl(), and next_rpcl().
| void grk::PacketIter::genPrecinctInfo | ( | ) |
Generates non-optimized precinct information.
Try the OPT path first; if preconditions aren't met, fall back to per-component, per-resolution init.
References comps, genPrecinctInfo(), genPrecinctInfoOPT(), and numcomps.
Referenced by genPrecinctInfo(), and init().
| void grk::PacketIter::genPrecinctInfo | ( | PacketIterInfoComponent * | comp, |
| PacketIterInfoResolution * | res, | ||
| uint8_t | resNumber ) |
Generates precinct information.
Non-OPT per-resolution precinct info generation.
| comp | PacketIterInfoComponent |
| res | PacketIterInfoResolution |
| resNumber | resolution number |
Allocates and initializes a ResPrecinctInfo for each non-degenerate resolution. Skipped during compression (precinct info is computed on-the-fly via validatePrecinct).
References compression_, grk::PacketIterInfoComponent::dx, grk::PacketIterInfoComponent::dy, grk::ResPrecinctInfo::init(), isWholeTile(), grk::PacketIterInfoComponent::numresolutions, packetManager, grk::PacketIterInfoResolution::precHeightExp, grk::ResPrecinctInfo::precHeightExp, grk::PacketIterInfoResolution::precinctGridHeight, grk::PacketIterInfoResolution::precinctGridWidth, grk::PacketIterInfoResolution::precinctInfo, grk::PacketIterInfoResolution::precWidthExp, and grk::ResPrecinctInfo::precWidthExp.
| bool grk::PacketIter::genPrecinctInfoOPT | ( | void | ) |
Generates optimized precinct information.
Attempt to use the optimized precinct info path.
Preconditions for OPT:
The OPT path uses per-resolution precinct step sizes for spatial progressions (RPCL), avoiding degenerate iteration when tiles have large dimensions or many resolution levels combined with small global dx/dy.
References compno, compression_, comps, GRK_CPRL, GRK_LRCP, GRK_PCRL, GRK_RLCP, GRK_RPCL, isWholeTile(), numcomps, packetManager, precinctInfoOPT_, prog, resno, and singleProgression_.
Referenced by genPrecinctInfo().
|
private |
Computes px0grid_ for the current (x,y) position (non-OPT path).
References grk::ceildiv(), grk::ResPrecinctInfo::dxPRJ, grk::floordivpow2(), packetManager, grk::ResPrecinctInfo::precWidthExp, grk::ResPrecinctInfo::precWidthPRJ, px0grid_, grk::ResPrecinctInfo::resInPrecGridX0, grk::ResPrecinctInfo::resOffsetX0PRJ, and x.
Referenced by validatePrecinct().
|
private |
Computes px0grid_ for PCRL/CPRL OPT path.
References grk::ceildivpow2(), grk::ResPrecinctInfo::decompLevel_, grk::ResPrecinctInfo::precWidthExp, grk::ResPrecinctInfo::precWidthPRJMinusOne, px0grid_, grk::ResPrecinctInfo::resInPrecGridX0, and x.
Referenced by next_cprlOPT(), and next_pcrlOPT().
|
private |
Computes px0grid_ for RPCL OPT path.
References grk::ceildivpow2(), grk::ResPrecinctInfo::decompLevel_, grk::ResPrecinctInfo::precWidthExp, px0grid_, grk::ResPrecinctInfo::resInPrecGridX0, and x.
Referenced by next_rpclOPT().
|
private |
Computes py0grid_ for the current (x,y) position (non-OPT path).
References grk::ceildiv(), grk::ResPrecinctInfo::dyPRJ, grk::floordivpow2(), packetManager, grk::ResPrecinctInfo::precHeightExp, grk::ResPrecinctInfo::precHeightPRJ, py0grid_, grk::ResPrecinctInfo::resInPrecGridY0, grk::ResPrecinctInfo::resOffsetY0PRJ, and y.
Referenced by validatePrecinct().
|
private |
Computes py0grid_ for PCRL/CPRL OPT path.
References grk::ceildivpow2(), grk::ResPrecinctInfo::decompLevel_, grk::ResPrecinctInfo::precHeightExp, grk::ResPrecinctInfo::precHeightPRJMinusOne, py0grid_, grk::ResPrecinctInfo::resInPrecGridY0, and y.
Referenced by next_cprlOPT(), and next_pcrlOPT().
|
private |
Computes py0grid_ for RPCL OPT path (tile origin at (0,0), no subsampling).
References grk::ceildivpow2(), grk::ResPrecinctInfo::decompLevel_, grk::ResPrecinctInfo::precHeightExp, py0grid_, grk::ResPrecinctInfo::resInPrecGridY0, and y.
Referenced by next_rpclOPT().
| uint8_t * grk::PacketIter::get_include | ( | uint16_t | layerIndex | ) |
Gets point to packet include information i.e.
whether packet has already been generated or not
| layerIndex | layer index |
| uint16_t grk::PacketIter::getCompno | ( | void | ) | const |
Gets component number for iterator's current packet.
References compno.
Referenced by grk::T2Compress::compressPacket(), and grk::T2Compress::compressPacketSimulate().
| uint16_t grk::PacketIter::getLayno | ( | void | ) | const |
Gets layer number for iterator's current packet.
References layno.
Referenced by grk::T2Compress::compressPacket(), and grk::T2Compress::compressPacketSimulate().
| uint64_t grk::PacketIter::getPrecinctIndex | ( | void | ) | const |
Gets precinct index for iterator's current packet.
References precinctIndex.
Referenced by grk::T2Compress::compressPacket(), and grk::T2Compress::compressPacketSimulate().
| GRK_PROG_ORDER grk::PacketIter::getProgression | ( | void | ) | const |
| uint8_t grk::PacketIter::getResno | ( | void | ) | const |
Gets resolution number for iterator's current packet.
References resno.
Referenced by grk::T2Compress::compressPacket(), and grk::T2Compress::compressPacketSimulate().
| void grk::PacketIter::init | ( | PacketManager * | packetMan, |
| uint32_t | pocIndex, | ||
| TileCodingParams * | tcp, | ||
| Rect32 | tileBounds, | ||
| bool | compression, | ||
| uint8_t | max_res, | ||
| uint64_t | max_precincts, | ||
| uint32_t ** | componentPrecinctInfo ) |
Initializes PacketItr.
| packetMan | PacketManager |
| pocIndex | index into array of progression order changes |
| tcp | TileCodingParams |
| tileBounds | tile bounds |
| compression | true if the iterator is for the compressor |
| max_res | maximum number of resolutions across all components |
| max_precints | maximum number of precincts, across all components |
| componentPrecinctInfo | precinct info for each component |
References compno, compression_, comps, genPrecinctInfo(), grk::PacketManager::getImage(), GRK_CPRL, GRK_LRCP, GRK_PCRL, GRK_RLCP, GRK_RPCL, grk::TileCodingParams::hasPoc(), maxNumDecompositionResolutions, numcomps, grk::TileCodingParams::numLayers_, packetManager, precinctInfoOPT_, grk::TileCodingParams::prg_, prog, grk::TileCodingParams::progressionOrderChange_, resno, singleProgression_, grk::TileCodingParams::tccps_, update_dxy(), x, grk::Rect< T >::x0, grk::Rect< T >::x1, y, grk::Rect< T >::y0, and grk::Rect< T >::y1.
|
private |
Returns true if the full tile is being decoded (no windowed sub-region).
References compression_, and packetManager.
Referenced by genPrecinctInfo(), genPrecinctInfoOPT(), next_cprlOPT(), next_pcrlOPT(), next_rpclOPT(), and validatePrecinct().
| bool grk::PacketIter::next | ( | SparseBuffer * | compressedPackets | ) |
Moves to next packet.
| compressedPackets | SparseBuffer holding packet This parameter is only non-null when there are PLT markers |
References dx, dy, GRK_CPRL, GRK_LRCP, GRK_PCRL, GRK_RLCP, GRK_RPCL, next_cprl(), next_cprlOPT(), next_lrcp(), next_lrcpOPT(), next_pcrl(), next_pcrlOPT(), next_rlcp(), next_rlcpOPT(), next_rpcl(), next_rpclOPT(), precinctInfoOPT_, and prog.
|
private |
Get next packet in component-precinct-resolution-layer order.
References compno, comps, dx, dxActive, dy, dyActive, generatePrecinctIndex(), incrementInner, layno, prog, resno, update_dxy_for_comp(), update_include(), validatePrecinct(), x, and y.
Referenced by next().
|
private |
References compno, comps, dx, dy, genPrecinctX0GridPCRL_OPT(), genPrecinctY0GridPCRL_OPT(), incrementInner, isWholeTile(), layno, precinctIndex, precinctInfoOPT_, precInfoCheck(), prog, px0grid_, py0grid_, resno, skipPackets(), x, and y.
Referenced by next().
|
private |
Get next packet in layer-resolution-component-precinct order.
References compno, comps, incrementInner, layno, precinctIndex, prog, resno, and update_include().
Referenced by next().
|
private |
References compno, incrementInner, layno, precinctIndex, precinctInfoOPT_, precInfoCheck(), prog, and resno.
Referenced by next().
|
private |
Get next packet in precinct-component-resolution-layer order.
References compno, dx, dxActive, dy, dyActive, generatePrecinctIndex(), incrementInner, layno, packetManager, prog, resno, singleProgression_, update_include(), validatePrecinct(), x, and y.
Referenced by next().
|
private |
References compno, comps, dx, dy, genPrecinctX0GridPCRL_OPT(), genPrecinctY0GridPCRL_OPT(), incrementInner, isWholeTile(), layno, precinctIndex, precinctInfoOPT_, precInfoCheck(), prog, px0grid_, py0grid_, resno, x, and y.
Referenced by next().
|
private |
Get next packet in resolution-layer-component-precinct order.
References compno, comps, incrementInner, layno, precinctIndex, prog, resno, and update_include().
Referenced by next().
|
private |
References compno, incrementInner, layno, precinctIndex, precinctInfoOPT_, precInfoCheck(), prog, and resno.
Referenced by next().
|
private |
Get next packet in resolution-precinct-component-layer order.
References compno, comps, dx, dxActive, dy, dyActive, generatePrecinctIndex(), incrementInner, layno, prog, resno, update_include(), validatePrecinct(), x, and y.
Referenced by next().
|
private |
References compno, genPrecinctX0GridRPCL_OPT(), genPrecinctY0GridRPCL_OPT(), incrementInner, isWholeTile(), layno, maxNumDecompositionResolutions, precinctIndex, precinctInfoOPT_, precInfoCheck(), prog, px0grid_, py0grid_, resno, skipPackets(), skippedLeft_, x, and y.
Referenced by next().
|
private |
Validates that the current (compno, resno, x, y) maps to a valid precinct.
References comps, resno, and grk::ResPrecinctInfo::valid.
Referenced by next_cprlOPT(), next_lrcpOPT(), next_pcrlOPT(), next_rlcpOPT(), and next_rpclOPT().
| void grk::PacketIter::printDynamicState | ( | void | ) |
Prints dynamic debug state of the iterator.
References compno, grk::grklog, layno, precinctIndex, precinctInfoOPT_, resno, x, and y.
| void grk::PacketIter::printStaticState | ( | void | ) |
Prints static debug state of iterator.
References comps, grk::grklog, precinctInfoOPT_, prog, and resno.
|
private |
References grk::grklog, packetManager, and grk::SparseBuffer::skip().
Referenced by next_cprlOPT(), and next_rpclOPT().
|
private |
Computes dx/dy step sizes for all components.
Compute the minimum spatial step sizes (dx, dy) across all components and resolutions.
These are used as the x/y loop increments in spatial progression orders (PCRL, RPCL, CPRL).
For each resolution, the projected precinct width is: comp->dx * 2^(precWidthExp + numresolutions - 1 - resno)
The global dx is the minimum of all such values that fit in uint32_t. If ALL values exceed UINT_MAX, dx remains 0, which is detected by next() to prevent infinite loops.
References compno, comps, dx, dxActive, dy, dyActive, numcomps, update_dxy_for_comp(), x, and y.
Referenced by init().
|
private |
Computes dx/dy for a single component and merges into the global minimum.
| comp | component info |
| updateActive | if true, also updates dxActive/dyActive |
References dx, grk::PacketIterInfoComponent::dx, dxActive, dy, grk::PacketIterInfoComponent::dy, dyActive, grk::PacketIterInfoComponent::numresolutions, resno, grk::PacketIterInfoComponent::resolutions, x, and y.
Referenced by next_cprl(), and update_dxy().
| bool grk::PacketIter::update_include | ( | void | ) |
Updates include state for current packet.
References compno, layno, packetManager, precinctIndex, resno, and singleProgression_.
Referenced by next_cprl(), next_lrcp(), next_pcrl(), next_rlcp(), and next_rpcl().
|
private |
Validates the current precinct and computes grid coordinates.
Validate that the current (compno, resno, x, y) maps to a real precinct.
On success, sets px0grid_ and py0grid_ for use by generatePrecinctIndex().
References compno, compression_, comps, genPrecinctX0Grid(), genPrecinctY0Grid(), grk::ResPrecinctInfo::init(), isWholeTile(), packetManager, grk::ResPrecinctInfo::precHeightExp, precinctInfoOPT_, grk::ResPrecinctInfo::precWidthExp, and resno.
Referenced by next_cprl(), next_pcrl(), and next_rpcl().
|
private |
current component number in iteration
Referenced by generatePrecinctIndex(), genPrecinctInfoOPT(), getCompno(), init(), next_cprl(), next_cprlOPT(), next_lrcp(), next_lrcpOPT(), next_pcrl(), next_pcrlOPT(), next_rlcp(), next_rlcpOPT(), next_rpcl(), next_rpclOPT(), printDynamicState(), update_dxy(), update_include(), and validatePrecinct().
|
private |
true when used for compression, false for decompression
Referenced by genPrecinctInfo(), genPrecinctInfoOPT(), init(), isWholeTile(), and validatePrecinct().
|
private |
per-component precinct grid info, length = numcomps
Referenced by generatePrecinctIndex(), genPrecinctInfo(), genPrecinctInfoOPT(), init(), next_cprl(), next_cprlOPT(), next_lrcp(), next_pcrlOPT(), next_rlcp(), next_rpcl(), precInfoCheck(), printStaticState(), update_dxy(), validatePrecinct(), and ~PacketIter().
|
private |
Minimum horizontal step size across all components/resolutions for spatial progressions (PCRL, RPCL, CPRL).
Computed as the smallest projected precinct width that fits in uint32_t. Zero if all projected precinct widths exceed UINT_MAX.
Referenced by next(), next_cprl(), next_cprlOPT(), next_pcrl(), next_pcrlOPT(), next_rpcl(), update_dxy(), and update_dxy_for_comp().
|
private |
active horizontal step (accounts for alignment to current x position)
Referenced by next_cprl(), next_pcrl(), next_rpcl(), update_dxy(), and update_dxy_for_comp().
|
private |
Minimum vertical step size across all components/resolutions for spatial progressions.
Same semantics as dx.
Referenced by next(), next_cprl(), next_cprlOPT(), next_pcrl(), next_pcrlOPT(), next_rpcl(), update_dxy(), and update_dxy_for_comp().
|
private |
active vertical step (accounts for alignment to current y position)
Referenced by next_cprl(), next_pcrl(), next_rpcl(), update_dxy(), and update_dxy_for_comp().
|
private |
Referenced by next_cprl(), next_cprlOPT(), next_lrcp(), next_lrcpOPT(), next_pcrl(), next_pcrlOPT(), next_rlcp(), next_rlcpOPT(), next_rpcl(), and next_rpclOPT().
|
private |
current layer number in iteration
Referenced by getLayno(), next_cprl(), next_cprlOPT(), next_lrcp(), next_lrcpOPT(), next_pcrl(), next_pcrlOPT(), next_rlcp(), next_rlcpOPT(), next_rpcl(), next_rpclOPT(), printDynamicState(), and update_include().
|
private |
max number of decomposition resolutions to decompress
Referenced by init(), and next_rpclOPT().
|
private |
number of image components
Referenced by genPrecinctInfo(), genPrecinctInfoOPT(), init(), and update_dxy().
|
private |
owning packet manager
Referenced by checkForRemainingValidProgression(), destroy_include(), enable_tile_part_generation(), genPrecinctInfo(), genPrecinctInfoOPT(), genPrecinctX0Grid(), genPrecinctY0Grid(), init(), isWholeTile(), next_pcrl(), skipPackets(), update_include(), and validatePrecinct().
|
private |
current precinct index in iteration
Referenced by generatePrecinctIndex(), getPrecinctIndex(), next_cprlOPT(), next_lrcp(), next_lrcpOPT(), next_pcrlOPT(), next_rlcp(), next_rlcpOPT(), next_rpclOPT(), printDynamicState(), and update_include().
|
private |
Cached per-resolution precinct info for the optimized iteration path.
Non-null only when all OPT preconditions are met. Length = comps[0].numresolutions.
Referenced by genPrecinctInfoOPT(), init(), next(), next_cprlOPT(), next_lrcpOPT(), next_pcrlOPT(), next_rlcpOPT(), next_rpclOPT(), printDynamicState(), printStaticState(), validatePrecinct(), and ~PacketIter().
|
private |
progression order and iteration bounds
Referenced by checkForRemainingValidProgression(), enable_tile_part_generation(), genPrecinctInfoOPT(), getProgression(), init(), next(), next_cprl(), next_cprlOPT(), next_lrcp(), next_lrcpOPT(), next_pcrl(), next_pcrlOPT(), next_rlcp(), next_rlcpOPT(), next_rpcl(), next_rpclOPT(), PacketIter(), and printStaticState().
|
private |
precinct grid x-coordinate of current precinct's top-left corner
Referenced by generatePrecinctIndex(), genPrecinctX0Grid(), genPrecinctX0GridPCRL_OPT(), genPrecinctX0GridRPCL_OPT(), next_cprlOPT(), next_pcrlOPT(), and next_rpclOPT().
|
private |
precinct grid y-coordinate of current precinct's top-left corner
Referenced by generatePrecinctIndex(), genPrecinctY0Grid(), genPrecinctY0GridPCRL_OPT(), genPrecinctY0GridRPCL_OPT(), next_cprlOPT(), next_pcrlOPT(), and next_rpclOPT().
|
private |
current resolution number in iteration
Referenced by generatePrecinctIndex(), genPrecinctInfoOPT(), getResno(), init(), next_cprl(), next_cprlOPT(), next_lrcp(), next_lrcpOPT(), next_pcrl(), next_pcrlOPT(), next_rlcp(), next_rlcpOPT(), next_rpcl(), next_rpclOPT(), precInfoCheck(), printDynamicState(), printStaticState(), update_dxy_for_comp(), update_include(), and validatePrecinct().
|
private |
true if there is exactly one progression (no POC markers)
Referenced by genPrecinctInfoOPT(), init(), next_pcrl(), and update_include().
|
private |
RPCL OPT: tracks whether left-of-window precincts have been skipped for current row.
Referenced by next_rpclOPT().
|
private |
current x position in spatial progression (projected coordinates)
Referenced by genPrecinctX0Grid(), genPrecinctX0GridPCRL_OPT(), genPrecinctX0GridRPCL_OPT(), init(), next_cprl(), next_cprlOPT(), next_pcrl(), next_pcrlOPT(), next_rpcl(), next_rpclOPT(), printDynamicState(), update_dxy(), and update_dxy_for_comp().
|
private |
current y position in spatial progression (projected coordinates)
Referenced by genPrecinctY0Grid(), genPrecinctY0GridPCRL_OPT(), genPrecinctY0GridRPCL_OPT(), init(), next_cprl(), next_cprlOPT(), next_pcrl(), next_pcrlOPT(), next_rpcl(), next_rpclOPT(), printDynamicState(), update_dxy(), and update_dxy_for_comp().