89 static std::vector<StripGeometry>
partition(uint32_t resHeight, uint32_t sn, uint32_t dn,
90 uint32_t parity, uint32_t stripeInterleaved = 64,
96 uint32_t numStripes = (resHeight + stripeInterleaved - 1) / stripeInterleaved;
97 uint32_t haloInterleaved = 2 * halo;
99 std::vector<StripGeometry> strips;
100 strips.reserve(numStripes);
102 for(uint32_t s = 0; s < numStripes; ++s)
105 sg.
outStart = s * stripeInterleaved;
138 strips.push_back(sg);
154 const std::vector<uint32_t>& blockY0s,
155 const std::vector<uint32_t>& blockHeights,
156 std::vector<uint32_t>& blockIndices)
158 blockIndices.clear();
159 for(uint32_t i = 0; i < blockY0s.size(); ++i)
161 uint32_t relY0 = blockY0s[i] - bandY0;
162 uint32_t relY1 = relY0 + blockHeights[i];
164 if(relY1 > range.
lo && relY0 < range.
hi)
165 blockIndices.push_back(i);
Computes strip geometry for cascade DWT at a given resolution.
Definition StripPartitioner.h:76
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.
Definition StripPartitioner.h:153
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.
Definition StripPartitioner.h:89
ResWindow.
Definition CompressedChunkCache.h:36
Geometry for a single cascade DWT strip at a given resolution.
Definition StripPartitioner.h:47
uint32_t extFirst
Definition StripPartitioner.h:53
SubbandRange rangeL
Definition StripPartitioner.h:57
uint32_t localParity
Definition StripPartitioner.h:61
uint32_t outStart
Definition StripPartitioner.h:49
uint32_t outputStartInStripe
Definition StripPartitioner.h:64
SubbandRange rangeH
Definition StripPartitioner.h:58
uint32_t extLast
Definition StripPartitioner.h:54
uint32_t outCount
Definition StripPartitioner.h:50
Sub-band row range needed by a strip (inclusive begin, exclusive end).
Definition StripPartitioner.h:31
uint32_t hi
Definition StripPartitioner.h:33
uint32_t count() const
Definition StripPartitioner.h:34
uint32_t lo
Definition StripPartitioner.h:32