|
Grok 20.3.2
|
Computes strip geometry for cascade DWT at a given resolution. More...
#include <StripPartitioner.h>
Static Public Member Functions | |
| static std::vector< StripGeometry > | partition (uint32_t resHeight, uint32_t sn, uint32_t dn, uint32_t parity, uint32_t stripeInterleaved=64, uint32_t halo=4) |
| Compute strip geometries for a resolution level. | |
| static void | findOverlappingBlocks (uint32_t bandY0, const SubbandRange &range, const std::vector< uint32_t > &blockY0s, const std::vector< uint32_t > &blockHeights, std::vector< uint32_t > &blockIndices) |
| Find code blocks (by sub-band-relative y range) that overlap a sub-band range. | |
Computes strip geometry for cascade DWT at a given resolution.
Given the resolution height, number of L/H sub-band rows, parity, and strip height, produces StripGeometry for each strip. This drives which code blocks need to be decoded for each strip.
|
inlinestatic |
Find code blocks (by sub-band-relative y range) that overlap a sub-band range.
| bandY0 | Band origin in canvas coordinates | |
| range | Sub-band row range needed by the strip | |
| blockY0s | Sorted list of code block y-starts (canvas coords) | |
| blockHeights | Corresponding heights of each code block | |
| [out] | blockIndices | Indices of overlapping blocks |
References grk::SubbandRange::hi, and grk::SubbandRange::lo.
|
inlinestatic |
Compute strip geometries for a resolution level.
| resHeight | Total interleaved height of the resolution |
| sn | Number of L (low-pass) sub-band rows |
| dn | Number of H (high-pass) sub-band rows |
| parity | V-DWT parity (0 = even rows are L, 1 = even rows are H) |
| stripeInterleaved | Strip height in interleaved rows (default 64) |
| halo | Sub-band halo rows on each side (default 4 for 9/7) |
References grk::StripGeometry::extFirst, grk::StripGeometry::extLast, grk::SubbandRange::hi, grk::SubbandRange::lo, grk::StripGeometry::localParity, grk::StripGeometry::outCount, grk::StripGeometry::outputStartInStripe, grk::StripGeometry::outStart, grk::StripGeometry::rangeH, and grk::StripGeometry::rangeL.