Grok 15.1.0
grk::ResWindow< T > Struct Template Reference

ResWindow. More...

#include <ResWindow.h>

Public Types

typedef grk_buf2d< T, AllocatorAlignedBuf2dAligned

Private Member Functions

 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)
 ~ResWindow ()
void genSplitWindowBuffers (Buf2dAligned **resWindowBufferSplit, Buf2dAligned *resWindowBuffer, Buf2dAligned *bandWindowsBuffersPaddedXL, Buf2dAligned *bandWindowsBuffersPaddedXH, bool absolute)
bool alloc (bool clear)
grk_buf2d_simple< int32_t > getResWindowBufferSimple (void) const
grk_buf2d_simple< float > getResWindowBufferSimpleF (void) const
void disableBandWindowAllocation (void)
Buf2dAlignedgetResWindowBufferSplitREL (eSplitOrientation orientation) const
const grk_rect32getBandWindowPadded (eBandOrientation orientation) const
const Buf2dAlignedgetBandWindowBufferPaddedREL (eBandOrientation orientation) const
const grk_buf2d_simple< int32_t > getBandWindowBufferPaddedSimple (eBandOrientation orientation) const
const grk_buf2d_simple< float > getBandWindowBufferPaddedSimpleF (eBandOrientation orientation) const
Buf2dAlignedgetResWindowBufferREL (void) const

Static Private Member Functions

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)

Private Attributes

bool allocated_
uint32_t filterWidth_
ResSimple tileCompAtRes_
ResSimple tileCompAtLowerRes_
Buf2dAlignedresWindowBuffer_
Buf2dAlignedresWindowBufferSplit_ [SPLIT_NUM_ORIENTATIONS]
std::vector< Buf2dAligned * > bandWindowsBuffersPadded_
std::vector< grk_rect32bandWindowsBoundsPadded_
Buf2dAlignedresWindowBufferHighestResREL_
Buf2dAlignedresWindowBufferREL_
Buf2dAlignedresWindowBufferSplitREL_ [SPLIT_NUM_ORIENTATIONS]
std::vector< Buf2dAligned * > bandWindowsBuffersPaddedREL_

Friends

struct TileComponentWindowBase< T >
struct TileComponentWindow< T >

Detailed Description

template<typename T>
struct grk::ResWindow< T >

ResWindow.

Manage all buffers for a single DWT resolution. This class stores a buffer for the resolution (in REL coordinates), and also buffers for the 4 sub-bands generated by the DWT transform (in Canvas coordinates).

Note: if highest resolution window is set, then only this window allocates memory, and all other ResWindow buffers attach themselves to the highest resolution buffer

Member Typedef Documentation

◆ Buf2dAligned

template<typename T>
typedef grk_buf2d<T, AllocatorAligned> grk::ResWindow< T >::Buf2dAligned

Constructor & Destructor Documentation

◆ ResWindow()

◆ ~ResWindow()

Member Function Documentation

◆ alloc()

◆ disableBandWindowAllocation()

template<typename T>
void grk::ResWindow< T >::disableBandWindowAllocation ( void )
inlineprivate

◆ genSplitWindowBuffers()

template<typename T>
void grk::ResWindow< T >::genSplitWindowBuffers ( Buf2dAligned ** resWindowBufferSplit,
Buf2dAligned * resWindowBuffer,
Buf2dAligned * bandWindowsBuffersPaddedXL,
Buf2dAligned * bandWindowsBuffersPaddedXH,
bool absolute )
inlineprivate

◆ getBandWindowBufferPaddedREL()

template<typename T>
const Buf2dAligned * grk::ResWindow< T >::getBandWindowBufferPaddedREL ( eBandOrientation orientation) const
inlineprivate

◆ getBandWindowBufferPaddedSimple()

template<typename T>
const grk_buf2d_simple< int32_t > grk::ResWindow< T >::getBandWindowBufferPaddedSimple ( eBandOrientation orientation) const
inlineprivate

◆ getBandWindowBufferPaddedSimpleF()

template<typename T>
const grk_buf2d_simple< float > grk::ResWindow< T >::getBandWindowBufferPaddedSimpleF ( eBandOrientation orientation) const
inlineprivate

◆ getBandWindowPadded()

template<typename T>
const grk_rect32 * grk::ResWindow< T >::getBandWindowPadded ( eBandOrientation orientation) const
inlineprivate

◆ getPaddedBandWindow()

template<typename T>
grk_rect32 grk::ResWindow< T >::getPaddedBandWindow ( uint8_t numDecomps,
uint8_t orientation,
grk_rect32 unreducedTileCompWindow,
grk_rect32 unreducedTileComp,
uint32_t padding,
grk_rect32 & paddedResWindow )
inlinestaticprivate

Get band window (in tile component coordinates) for specified number of decompositions (with padding)

Note: if numDecomps is zero, then the band window (and there is only one) is equal to the unreduced tile component window (with padding)

References grk::BAND_NUM_ORIENTATIONS, grk::grk_rect< T >::clip_IN_PLACE(), grk::ResSimple::getBandWindow(), grk::grk_rect< T >::grow_IN_PLACE(), grk::grk_rect< T >::intersection(), and grk::grk_rect< T >::setOrigin().

Referenced by ResWindow().

◆ getResWindowBufferREL()

template<typename T>
Buf2dAligned * grk::ResWindow< T >::getResWindowBufferREL ( void ) const
inlineprivate

References resWindowBufferREL_.

◆ getResWindowBufferSimple()

template<typename T>
grk_buf2d_simple< int32_t > grk::ResWindow< T >::getResWindowBufferSimple ( void ) const
inlineprivate

References resWindowBuffer_.

◆ getResWindowBufferSimpleF()

template<typename T>
grk_buf2d_simple< float > grk::ResWindow< T >::getResWindowBufferSimpleF ( void ) const
inlineprivate

References resWindowBuffer_.

◆ getResWindowBufferSplitREL()

template<typename T>
Buf2dAligned * grk::ResWindow< T >::getResWindowBufferSplitREL ( eSplitOrientation orientation) const
inlineprivate

◆ TileComponentWindow< T >

template<typename T>
friend struct TileComponentWindow< T >
friend

◆ TileComponentWindowBase< T >

template<typename T>
friend struct TileComponentWindowBase< T >
friend

Member Data Documentation

◆ allocated_

template<typename T>
bool grk::ResWindow< T >::allocated_
private

Referenced by alloc(), and ResWindow().

◆ bandWindowsBoundsPadded_

template<typename T>
std::vector<grk_rect32> grk::ResWindow< T >::bandWindowsBoundsPadded_
private

Referenced by getBandWindowPadded(), and ResWindow().

◆ bandWindowsBuffersPadded_

template<typename T>
std::vector<Buf2dAligned*> grk::ResWindow< T >::bandWindowsBuffersPadded_
private

◆ bandWindowsBuffersPaddedREL_

template<typename T>
std::vector<Buf2dAligned*> grk::ResWindow< T >::bandWindowsBuffersPaddedREL_
private

◆ filterWidth_

template<typename T>
uint32_t grk::ResWindow< T >::filterWidth_
private

Referenced by alloc(), and ResWindow().

◆ resWindowBuffer_

template<typename T>
Buf2dAligned* grk::ResWindow< T >::resWindowBuffer_
private

◆ resWindowBufferHighestResREL_

template<typename T>
Buf2dAligned* grk::ResWindow< T >::resWindowBufferHighestResREL_
private

◆ resWindowBufferREL_

template<typename T>
Buf2dAligned* grk::ResWindow< T >::resWindowBufferREL_
private

◆ resWindowBufferSplit_

template<typename T>
Buf2dAligned* grk::ResWindow< T >::resWindowBufferSplit_[SPLIT_NUM_ORIENTATIONS]
private

Referenced by alloc(), ResWindow(), and ~ResWindow().

◆ resWindowBufferSplitREL_

template<typename T>
Buf2dAligned* grk::ResWindow< T >::resWindowBufferSplitREL_[SPLIT_NUM_ORIENTATIONS]
private

◆ tileCompAtLowerRes_

template<typename T>
ResSimple grk::ResWindow< T >::tileCompAtLowerRes_
private

◆ tileCompAtRes_

template<typename T>
ResSimple grk::ResWindow< T >::tileCompAtRes_
private

Referenced by ResWindow().


The documentation for this struct was generated from the following file: