52struct TileComponentWindow;
54struct TileComponentWindowBase;
79 uint32_t FILTER_WIDTH)
89 (resno == 0) ? (uint8_t)(numresolutions - 1U) : (uint8_t)(numresolutions - resno);
96 2 * FILTER_WIDTH, resWindowPadded);
102 assert(bandWindow.intersection(band).setOrigin(bandWindow,
true) == bandWindow);
179 Buf2dAligned* bandWindowsBuffersPaddedXH,
bool absolute)
189 auto splitResWindowBounds =
grk_rect32(resWindowBuffer->
x0, bandWindowsBuffersPaddedXL->
y0,
190 resWindowBuffer->
x1, bandWindowsBuffersPaddedXL->
y1);
281 if(!b->alloc2d(clear))
327 grk_rect32 unreducedTileComp, uint32_t padding,
333 assert(orientation == 0);
336 paddedResWindow = unreducedTileCompWindow;
337 auto oneLessDecompTile = unreducedTileComp;
344 paddedResWindow.
setOrigin(oneLessDecompTile,
true);
Copyright (C) 2016-2022 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
grk_rect< uint32_t > grk_rect32
Definition: geometry.h:61
eBandOrientation
Definition: ResSimple.h:23
@ BAND_ORIENT_HH
Definition: ResSimple.h:27
@ BAND_ORIENT_HL
Definition: ResSimple.h:25
@ BAND_NUM_ORIENTATIONS
Definition: ResSimple.h:28
@ BAND_ORIENT_LH
Definition: ResSimple.h:26
@ BAND_ORIENT_LL
Definition: ResSimple.h:24
Definition: ResSimple.h:43
grk_rect32 tileBand[BAND_NUM_INDICES]
Definition: ResSimple.h:110
uint8_t numTileBandWindows
Definition: ResSimple.h:111
static grk_rect32 getBandWindow(uint8_t numDecomps, uint8_t orientation, grk_rect32 tileCompWindowUnreduced)
Get band window (in tile component coordinates) for specified number of decompositions.
Definition: ResSimple.h:77
ResWindow.
Definition: ResWindow.h:70
void genSplitWindowBuffers(Buf2dAligned **resWindowBufferSplit, Buf2dAligned *resWindowBuffer, Buf2dAligned *bandWindowsBuffersPaddedXL, Buf2dAligned *bandWindowsBuffersPaddedXH, bool absolute)
Definition: ResWindow.h:177
uint32_t filterWidth_
Definition: ResWindow.h:388
grk_buf2d_simple< float > getResWindowBufferSimpleF(void) const
Definition: ResWindow.h:353
ResSimple tileCompAtRes_
Definition: ResWindow.h:390
ResWindow(uint8_t numresolutions, uint8_t resno, Buf2dAligned *resWindowHighestResREL, ResSimple tileCompAtRes, ResSimple tileCompAtLowerRes, grk_rect32 resWindow, grk_rect32 tileCompWindowUnreduced, grk_rect32 tileCompUnreduced, uint32_t FILTER_WIDTH)
Definition: ResWindow.h:76
const grk_rect32 * getBandWindowPadded(eBandOrientation orientation) const
Definition: ResWindow.h:365
Buf2dAligned * resWindowBufferSplit_[SPLIT_NUM_ORIENTATIONS]
Definition: ResWindow.h:394
bool allocated_
Definition: ResWindow.h:387
Buf2dAligned * resWindowBufferHighestResREL_
Definition: ResWindow.h:403
std::vector< Buf2dAligned * > bandWindowsBuffersPadded_
Definition: ResWindow.h:395
const grk_buf2d_simple< float > getBandWindowBufferPaddedSimpleF(eBandOrientation orientation) const
Definition: ResWindow.h:379
~ResWindow()
Definition: ResWindow.h:163
const grk_buf2d_simple< int32_t > getBandWindowBufferPaddedSimple(eBandOrientation orientation) const
Definition: ResWindow.h:374
Buf2dAligned * resWindowBufferSplitREL_[SPLIT_NUM_ORIENTATIONS]
Definition: ResWindow.h:405
grk_buf2d_simple< int32_t > getResWindowBufferSimple(void) const
Definition: ResWindow.h:349
Buf2dAligned * getResWindowBufferSplitREL(eSplitOrientation orientation) const
Definition: ResWindow.h:361
Buf2dAligned * resWindowBufferREL_
Definition: ResWindow.h:404
void disableBandWindowAllocation(void)
Definition: ResWindow.h:357
std::vector< grk_rect32 > bandWindowsBoundsPadded_
Definition: ResWindow.h:401
ResSimple tileCompAtLowerRes_
Definition: ResWindow.h:391
static grk_rect32 getPaddedBandWindow(uint8_t numDecomps, uint8_t orientation, grk_rect32 unreducedTileCompWindow, grk_rect32 unreducedTileComp, uint32_t padding, grk_rect32 &paddedResWindow)
Get band window (in tile component coordinates) for specified number of decompositions (with padding)
Definition: ResWindow.h:325
Buf2dAligned * resWindowBuffer_
Definition: ResWindow.h:393
bool alloc(bool clear)
Definition: ResWindow.h:205
Buf2dAligned * getResWindowBufferREL(void) const
Definition: ResWindow.h:383
grk_buf2d< T, AllocatorAligned > Buf2dAligned
Definition: ResWindow.h:73
const Buf2dAligned * getBandWindowBufferPaddedREL(eBandOrientation orientation) const
Definition: ResWindow.h:369
std::vector< Buf2dAligned * > bandWindowsBuffersPaddedREL_
Definition: ResWindow.h:406
Definition: TileComponentWindow.h:54
Definition: TileComponentWindow.h:160
void attach(T *buffer, uint32_t strd)
Definition: buffer.h:293
bool alloc2d(bool clear)
Definition: buffer.h:271
grk_buf2d_simple< float > simpleF(void) const
Definition: buffer.h:252
grk_buf2d_simple< T > simple(void) const
Definition: buffer.h:248
T width() const
Definition: geometry.h:335
T y1
Definition: geometry.h:124
grk_rect< T > & setOrigin(T origx, T origy, bool absolute)
Definition: geometry.h:126
T x0
Definition: geometry.h:124
grk_rect< T > intersection(const grk_rect< T > rhs) const
Definition: geometry.h:281
grk_rect< T > & toRelative(void)
Definition: geometry.h:156
T x1
Definition: geometry.h:124
T height() const
Definition: geometry.h:339
bool valid(void) const
Definition: geometry.h:185
grk_rect< T > & toAbsolute(void)
Definition: geometry.h:166
grk_rect< T > & clip_IN_PLACE(const grk_rect< T > &rhs)
Definition: geometry.h:301
grk_rect< T > & grow_IN_PLACE(T boundary)
Definition: geometry.h:368
void setRect(grk_rect< T > *rhs)
Definition: geometry.h:228
T y0
Definition: geometry.h:124