52struct TileComponentWindow;
54struct TileComponentWindowBase;
71 friend struct TileComponentWindowBase<T>;
72 friend struct TileComponentWindow<T>;
77 ResSimple tileCompAtRes, ResSimple tileCompAtLowerRes, grk_rect32 resWindow,
78 grk_rect32 tileCompWindowUnreduced, grk_rect32 tileCompUnreduced,
79 uint32_t FILTER_WIDTH)
90 grk_rect32 resWindowPadded;
91 for(uint8_t orient = 0; orient < ((
resno) > 0 ? BAND_NUM_ORIENTATIONS : 1); orient++)
95 getPaddedBandWindow(numDecomps, orient, tileCompWindowUnreduced, tileCompUnreduced,
96 2 * FILTER_WIDTH, resWindowPadded);
101 bandWindow.setOrigin(band,
true);
102 assert(bandWindow.intersection(band).setOrigin(bandWindow,
true) == bandWindow);
115 for(uint8_t orient = 0; orient < BAND_NUM_ORIENTATIONS; orient++)
133 !tileCompAtLowerRes.numTileBandWindows);
144 auto band = grk_rect32(tileCompBand);
148 for(uint8_t i = 0; i < SPLIT_NUM_ORIENTATIONS; i++)
179 Buf2dAligned* bandWindowsBuffersPaddedXH,
bool absolute)
184 bandWindowsBuffersPaddedXL->toRelative();
185 bandWindowsBuffersPaddedXH->toRelative();
189 auto splitResWindowBounds =
grk_rect32(resWindowBuffer->x0, bandWindowsBuffersPaddedXL->y0,
190 resWindowBuffer->x1, bandWindowsBuffersPaddedXL->y1);
201 bandWindowsBuffersPaddedXL->toAbsolute();
202 bandWindowsBuffersPaddedXH->toAbsolute();
205 bool alloc(
bool clear)
281 if(!b->alloc2d(clear))
326 grk_rect32 unreducedTileCompWindow,
327 grk_rect32 unreducedTileComp, uint32_t padding,
328 grk_rect32& paddedResWindow)
334 return unreducedTileCompWindow.grow_IN_PLACE(padding).intersection(&unreducedTileComp);
336 paddedResWindow = unreducedTileCompWindow;
337 auto oneLessDecompTile = unreducedTileComp;
340 paddedResWindow = ResSimple::getBandWindow(numDecomps - 1, 0, unreducedTileCompWindow);
341 oneLessDecompTile = ResSimple::getBandWindow(numDecomps - 1, 0, unreducedTileComp);
343 paddedResWindow.grow_IN_PLACE(2 * padding).clip_IN_PLACE(&oneLessDecompTile);
344 paddedResWindow.setOrigin(oneLessDecompTile,
true);
346 return ResSimple::getBandWindow(1,
orientation, paddedResWindow);
349 grk_buf2d_simple<int32_t> getResWindowBufferSimple(
void)
const
353 grk_buf2d_simple<float> getResWindowBufferSimpleF(
void)
const
357 void disableBandWindowAllocation(
void)
373 const grk_buf2d_simple<int32_t>
374 getBandWindowBufferPaddedSimple(eBandOrientation
orientation)
const
378 const grk_buf2d_simple<float>
379 getBandWindowBufferPaddedSimpleF(eBandOrientation
orientation)
const
uint8_t resno
Definition BlockExec.h:53
uint8_t numresolutions
number of resolutions
Definition CodingParams.h:58
Buf2dAligned * resWindowBufferHighestResREL_
Definition ResWindow.h:403
Buf2dAligned * resWindowBufferREL_
Definition ResWindow.h:404
uint32_t filterWidth_
Definition ResWindow.h:388
std::vector< grk_rect32 > bandWindowsBoundsPadded_
Definition ResWindow.h:401
grk_buf2d< T, AllocatorAligned > Buf2dAligned
Definition ResWindow.h:73
std::vector< Buf2dAligned * > bandWindowsBuffersPadded_
Definition ResWindow.h:395
ResSimple tileCompAtLowerRes_
Definition ResWindow.h:391
Buf2dAligned * resWindowBufferSplit_[SPLIT_NUM_ORIENTATIONS]
Definition ResWindow.h:394
ResSimple tileCompAtRes_
Definition ResWindow.h:390
std::vector< Buf2dAligned * > bandWindowsBuffersPaddedREL_
Definition ResWindow.h:406
bool allocated_
Definition ResWindow.h:387
Buf2dAligned * resWindowBuffer_
Definition ResWindow.h:393
Buf2dAligned * resWindowBufferSplitREL_[SPLIT_NUM_ORIENTATIONS]
Definition ResWindow.h:405
grk_rect< uint32_t > grk_rect32
Definition TileCache.h:61
@ BAND_ORIENT_HH
Definition TileCache.h:28
@ BAND_ORIENT_LH
Definition TileCache.h:27
@ BAND_ORIENT_HL
Definition TileCache.h:26
@ SPLIT_L
Definition TileCache.h:47
@ SPLIT_H
Definition TileCache.h:48
@ SPLIT_NUM_ORIENTATIONS
Definition TileCache.h:49
Copyright (C) 2016-2023 Grok Image Compression Inc.
Definition ICacheable.h:20
eSplitOrientation
Definition ResWindow.h:45
@ SPLIT_H
Definition ResWindow.h:47
@ SPLIT_L
Definition ResWindow.h:46
@ SPLIT_NUM_ORIENTATIONS
Definition ResWindow.h:48
uint8_t orientation
Definition plugin_interface.h:42
T y0
Definition TileCache.h:124