|
Grok 20.3.2
|
Per-image pool of per-thread scratch buffers for the 5/3 wavelet. More...
#include <WaveletPoolData.h>
Classes | |
| struct | AlignedDeleter |
Public Member Functions | |
| WaveletPoolData ()=default | |
| ~WaveletPoolData ()=default | |
| WaveletPoolData (const WaveletPoolData &)=delete | |
| WaveletPoolData & | operator= (const WaveletPoolData &)=delete |
| bool | alloc (size_t maxDim) |
| Allocate per-thread horiz/vert scratch buffers. | |
| uint8_t * | getHoriz (size_t threadIndex) const |
| uint8_t * | getVert (size_t threadIndex) const |
| bool | isAllocated () const |
Private Types | |
| using | BufferPtr = std::unique_ptr<uint8_t[], AlignedDeleter> |
Private Attributes | |
| std::unique_ptr< BufferPtr[]> | horizData_ |
| std::unique_ptr< BufferPtr[]> | vertData_ |
| bool | isAllocated_ = false |
| size_t | allocatedMaxDim_ = 0 |
Per-image pool of per-thread scratch buffers for the 5/3 wavelet.
Replaces the former static pool in WaveletReverse so that multiple images can decompress concurrently without sharing scratch memory.
|
private |
|
default |
Referenced by operator=(), and WaveletPoolData().
|
default |
|
delete |
References WaveletPoolData().
| bool grk::WaveletPoolData::alloc | ( | size_t | maxDim | ) |
Allocate per-thread horiz/vert scratch buffers.
If already allocated with sufficient size, this is a no-op.
| maxDim | maximum image dimension (width or height) |
References allocatedMaxDim_, grk::get_PLL_COLS_53(), grk::grk_aligned_free(), grk::grk_aligned_malloc(), horizData_, isAllocated_, TFSingleton::num_threads(), and vertData_.
|
inline |
References horizData_.
|
inline |
References vertData_.
|
inline |
References isAllocated_.
|
delete |
References WaveletPoolData().
|
private |
Referenced by alloc().
|
private |
Referenced by alloc(), and getHoriz().
|
private |
Referenced by alloc(), and isAllocated().
|
private |