48 bool alloc(
size_t len,
size_t padding)
55 grklog.error(
"data size overflow");
120 uint8_t numres, uint8_t qmfbid, uint32_t maxDim,
bool wholeTileDecompress,
122 bool cascadeSynthesis =
false);
147 void load_h_p0_53(int32_t* scratch,
const uint32_t width,
const int32_t* bandL,
148 const int32_t* bandH, int32_t* dest);
150 void load_h_p1_53(int32_t* scratch,
const uint32_t width,
const int32_t* bandL,
151 const int32_t* bandH, int32_t* dest);
162 void v_p0_53(int32_t* scratch,
const uint32_t height, int32_t* bandL,
const uint32_t strideL,
163 int32_t* bandH,
const uint32_t strideH, int32_t* dest,
const uint32_t strideDest);
165 void v_p1_53(int32_t* scratch,
const uint32_t height, int32_t* bandL,
const uint32_t strideL,
166 int32_t* bandH,
const uint32_t strideH, int32_t* dest,
const uint32_t strideDest);
187 const int16_t* bandH, int16_t* dest);
190 const int16_t* bandH, int16_t* dest);
201 void v_p0_16_53(int16_t* scratch,
const uint32_t height, int16_t* bandL,
const uint32_t strideL,
202 int16_t* bandH,
const uint32_t strideH, int16_t* dest,
const uint32_t strideDest);
204 void v_p1_16_53(int16_t* scratch,
const uint32_t height, int16_t* bandL,
const uint32_t strideL,
205 int16_t* bandH,
const uint32_t strideH, int16_t* dest,
const uint32_t strideDest);
250 bool h_97(uint8_t res, uint32_t num_threads,
size_t dataLength,
258 bool v_97(uint8_t res, uint32_t num_threads,
size_t dataLength,
304 bool cascade_97(uint8_t res, uint32_t num_threads,
size_t dataLength,
331 template<
typename T,
typename S>
336 uint32_t indexMin, uint32_t indexMax)
358 template<
typename ST, u
int32_t FILTER_WIDTH, u
int32_t VERT_PASS_WIDTH,
typename D>
#define GRK_RESTRICT
Definition CodingParams.cpp:32
#define SIZE_MAX
Definition MemManager.h:37
An abstract class that can execute T1 phase of codec by running a tf::Executor.
Definition CodecScheduler.h:72
Definition ISparseCanvas.h:42
Stub — freebyrd thread pool has been removed.
Definition SchedulerFreebyrd.h:48
Per-image pool of per-thread scratch buffers for the 5/3 wavelet.
Definition WaveletPoolData.h:40
uint16_t compno_
Definition WaveletReverse.h:138
std::unique_ptr< dwt_scratch< int32_t >[]> horizPool_
Definition WaveletReverse.h:182
bool cascadeSynthesis_
Definition WaveletReverse.h:324
void v_53(uint8_t res, TileComponentWindow< int32_t > *buf, uint32_t resWidth)
dwt_scratch< vec4f > cascade97_h
Definition WaveletReverse.h:319
void v_16_53(uint8_t res, TileComponentWindow< int16_t > *buf, uint32_t resWidth)
void h_strip_16_53(const dwt_scratch< int16_t > *scratch, uint32_t hMin, uint32_t hMax, Buffer2dSimple< int16_t > winL, Buffer2dSimple< int16_t > winH, Buffer2dSimple< int16_t > winDest)
dwt_scratch< int32_t > horiz_
Definition WaveletReverse.h:180
void v_p1_53(int32_t *scratch, const uint32_t height, int32_t *bandL, const uint32_t strideL, int32_t *bandH, const uint32_t strideH, int32_t *dest, const uint32_t strideDest)
bool partial_tile(ISparseCanvas< int32_t > *sa, std::vector< PartialTaskInfo< ST, dwt_scratch< ST > > * > &tasks)
WaveletReverse(CodecScheduler *scheduler, TileComponent *tilec, uint16_t compno, Rect32 window, uint8_t numres, uint8_t qmfbid, uint32_t maxDim, bool wholeTileDecompress, WaveletPoolData *poolData, DcShiftParam dcShift={}, bool cascadeSynthesis=false)
void h_53(uint8_t res, TileComponentWindow< int32_t > *scratch, uint32_t resHeight)
bool h_97(uint8_t res, uint32_t num_threads, size_t dataLength, dwt_scratch< vec4f > &GRK_RESTRICT horiz, const uint32_t resHeight, Buffer2dSimple< float > winL, Buffer2dSimple< float > winH, Buffer2dSimple< float > winDest)
dwt_scratch< vec4f > vert97
Definition WaveletReverse.h:318
void load_h_p1_53(int32_t *scratch, const uint32_t width, const int32_t *bandL, const int32_t *bandH, int32_t *dest)
bool wholeTileDecompress_
Definition WaveletReverse.h:143
void v_p0_16_53(int16_t *scratch, const uint32_t height, int16_t *bandL, const uint32_t strideL, int16_t *bandH, const uint32_t strideH, int16_t *dest, const uint32_t strideDest)
CodecScheduler * scheduler_
Definition WaveletReverse.h:136
dwt_scratch< vec4f > cascade97_v
Definition WaveletReverse.h:320
bool tile_97_cascade(void)
void v_16_97(uint8_t res, TileComponentWindow< int16_t > *buf, uint32_t resWidth)
dwt_scratch< int32_t > vert_
Definition WaveletReverse.h:181
void load_h_53(const dwt_scratch< int32_t > *scratch, int32_t *bandL, int32_t *bandH, int32_t *dest)
std::unique_ptr< dwt_scratch< int16_t >[]> horizPool16_
Definition WaveletReverse.h:240
uint8_t numres_
Definition WaveletReverse.h:140
dwt_scratch< int16_t > horiz16_
Definition WaveletReverse.h:238
void h_strip_16_97(const dwt_scratch< int16_t > *scratch, uint32_t hMin, uint32_t hMax, Buffer2dSimple< int16_t > winL, Buffer2dSimple< int16_t > winH, Buffer2dSimple< int16_t > winDest)
void load_h_p0_16_53(int16_t *scratch, const uint32_t width, const int16_t *bandL, const int16_t *bandH, int16_t *dest)
static void step_97(dwt_scratch< vec4f > *GRK_RESTRICT dwt)
Rect32 unreducedWindow_
Definition WaveletReverse.h:139
uint8_t qmfbid_
Definition WaveletReverse.h:141
void load_h_p0_53(int32_t *scratch, const uint32_t width, const int32_t *bandL, const int32_t *bandH, int32_t *dest)
void v_p1_16_53(int16_t *scratch, const uint32_t height, int16_t *bandL, const uint32_t strideL, int16_t *bandH, const uint32_t strideH, int16_t *dest, const uint32_t strideDest)
std::vector< PartialTaskInfo< int32_t, dwt_scratch< int32_t > > * > partialTasks53_
Definition WaveletReverse.h:363
void v_53(const dwt_scratch< int32_t > *scratch, Buffer2dSimple< int32_t > winL, Buffer2dSimple< int32_t > winH, Buffer2dSimple< int32_t > winDest, uint32_t nb_cols, DcShiftParam dcShift)
void h_16_53(uint8_t res, TileComponentWindow< int16_t > *scratch, uint32_t resHeight)
bool v_97(uint8_t res, uint32_t num_threads, size_t dataLength, dwt_scratch< vec4f > &GRK_RESTRICT vert, const uint32_t resWidth, const uint32_t resHeight, Buffer2dSimple< float > winL, Buffer2dSimple< float > winH, Buffer2dSimple< float > winDest)
void v_strip_53(const dwt_scratch< int32_t > *scratch, uint32_t wMin, uint32_t wMax, Buffer2dSimple< int32_t > winL, Buffer2dSimple< int32_t > winH, Buffer2dSimple< int32_t > winDest, DcShiftParam dcShift)
std::unique_ptr< dwt_scratch< int32_t >[]> vertPool_
Definition WaveletReverse.h:183
void load_h_p1_16_53(int16_t *scratch, const uint32_t width, const int16_t *bandL, const int16_t *bandH, int16_t *dest)
dwt_scratch< vec4f > horiz97
Definition WaveletReverse.h:317
void v_p0_53(int32_t *scratch, const uint32_t height, int32_t *bandL, const uint32_t strideL, int32_t *bandH, const uint32_t strideH, int32_t *dest, const uint32_t strideDest)
static bool allocCascadeScratch97(dwt_scratch< vec4f > &scratch, size_t dataLength)
Allocate DWT scratch buffer with platform-appropriate size for 9/7.
WaveletPoolData * poolData_
Definition WaveletReverse.h:135
void v_strip_16_53(const dwt_scratch< int16_t > *scratch, uint32_t wMin, uint32_t wMax, Buffer2dSimple< int16_t > winL, Buffer2dSimple< int16_t > winH, Buffer2dSimple< int16_t > winDest, DcShiftParam dcShift)
bool cascade_97(uint8_t res, uint32_t num_threads, size_t dataLength, dwt_scratch< vec4f > &GRK_RESTRICT hScratch, dwt_scratch< vec4f > &GRK_RESTRICT vScratch, const uint32_t resWidth, const uint32_t resHeight, Buffer2dSimple< float > winLL, Buffer2dSimple< float > winHL, Buffer2dSimple< float > winLH, Buffer2dSimple< float > winHH, Buffer2dSimple< float > tempDest, Buffer2dSimple< float > realDest, std::shared_ptr< std::vector< float > > tempBufMem)
uint32_t maxDim_
Definition WaveletReverse.h:142
void v_strip_16_97(const dwt_scratch< int16_t > *scratch, uint32_t wMin, uint32_t wMax, Buffer2dSimple< int16_t > winL, Buffer2dSimple< int16_t > winH, Buffer2dSimple< int16_t > winDest, DcShiftParam dcShift)
void v_16_53(const dwt_scratch< int16_t > *scratch, Buffer2dSimple< int16_t > winL, Buffer2dSimple< int16_t > winH, Buffer2dSimple< int16_t > winDest, uint32_t nb_cols, DcShiftParam dcShift)
void v_strip_97(dwt_scratch< vec4f > *GRK_RESTRICT vert, const uint32_t resWidth, const uint32_t resHeight, Buffer2dSimple< float > winL, Buffer2dSimple< float > winH, Buffer2dSimple< float > winDest, DcShiftParam dcShift)
DcShiftParam dcShift_
Definition WaveletReverse.h:144
friend class StripDecompressor
Definition WaveletReverse.h:116
void h_16_97(uint8_t res, TileComponentWindow< int16_t > *scratch, uint32_t resHeight)
TileComponent * tilec_
Definition WaveletReverse.h:137
void cascade_strip_97(dwt_scratch< vec4f > *GRK_RESTRICT hScratch, dwt_scratch< vec4f > *GRK_RESTRICT vScratch, const uint32_t resWidth, Buffer2dSimple< float > winLL, Buffer2dSimple< float > winHL, Buffer2dSimple< float > winLH, Buffer2dSimple< float > winHH, Buffer2dSimple< float > winDest, DcShiftParam dcShift)
std::vector< PartialTaskInfo< vec4f, dwt_scratch< vec4f > > * > partialTasks97_
Definition WaveletReverse.h:366
bool decompressPartial()
Definition WaveletReversePartial.cpp:802
void h_strip_53(const dwt_scratch< int32_t > *scratch, uint32_t hMin, uint32_t hMax, Buffer2dSimple< int32_t > winL, Buffer2dSimple< int32_t > winH, Buffer2dSimple< int32_t > winDest)
void load_h_16_53(const dwt_scratch< int16_t > *scratch, int16_t *bandL, int16_t *bandH, int16_t *dest)
dwt_scratch< int16_t > vert16_
Definition WaveletReverse.h:239
void h_strip_97(dwt_scratch< vec4f > *GRK_RESTRICT horiz, const uint32_t resHeight, Buffer2dSimple< float > winL, Buffer2dSimple< float > winH, Buffer2dSimple< float > winDest)
void v_16_97(const dwt_scratch< int16_t > *scratch, Buffer2dSimple< int16_t > winL, Buffer2dSimple< int16_t > winH, Buffer2dSimple< int16_t > winDest, uint32_t nb_cols, DcShiftParam dcShift)
friend class SchedulerFreebyrd
Definition WaveletReverse.h:115
std::unique_ptr< dwt_scratch< int16_t >[]> vertPool16_
Definition WaveletReverse.h:241
ResWindow.
Definition CompressedChunkCache.h:36
void * grk_aligned_malloc(size_t bytes)
Definition MemManager.h:308
ILogger & grklog
Definition Logger.cpp:24
Line< uint32_t > Line32
Definition geometry.h:60
Rect< uint32_t > Rect32
Definition geometry.h:64
uint32_t grk_make_aligned_width(uint32_t width)
Definition MemManager.h:46
void grk_aligned_free(void *ptr)
Definition MemManager.h:324
Definition WaveletReverse.h:106
int32_t min
Definition WaveletReverse.h:108
int32_t max
Definition WaveletReverse.h:109
int32_t shift
Definition WaveletReverse.h:107
bool enabled
Definition WaveletReverse.h:110
Stores sub-sampled, unreduced tile component dimensions, along with reduction information.
Definition TileComponent.h:37
Definition TileComponentWindow.h:197
Definition WaveletReverse.h:333
Buffer2dSimple< T > winHH
Definition WaveletReverse.h:351
~PartialTaskInfo(void)
Definition WaveletReverse.h:343
PartialTaskInfo(S data, uint32_t indexMin, uint32_t indexMax)
Definition WaveletReverse.h:340
uint32_t indexMax_
Definition WaveletReverse.h:355
Buffer2dSimple< T > winLL
Definition WaveletReverse.h:348
PartialTaskInfo(S data, Buffer2dSimple< T > winLL, Buffer2dSimple< T > winHL, Buffer2dSimple< T > winLH, Buffer2dSimple< T > winHH, Buffer2dSimple< T > winDest, uint32_t indexMin, uint32_t indexMax)
Definition WaveletReverse.h:334
uint32_t indexMin_
Definition WaveletReverse.h:354
Buffer2dSimple< T > winHL
Definition WaveletReverse.h:349
S data
Definition WaveletReverse.h:347
Buffer2dSimple< T > winDest
Definition WaveletReverse.h:352
Buffer2dSimple< T > winLH
Definition WaveletReverse.h:350
Definition WaveletReverse.h:31
uint32_t outputCount
Definition WaveletReverse.h:102
uint8_t resno
Definition WaveletReverse.h:98
bool ownsData_
Definition WaveletReverse.h:92
ST * memL
Definition WaveletReverse.h:90
size_t paddingBytes_
Definition WaveletReverse.h:88
void clear(void)
Definition WaveletReverse.h:71
uint32_t outputStart
Definition WaveletReverse.h:101
dwt_scratch(void)=default
ST * allocatedMem
Definition WaveletReverse.h:86
Line32 win_h
Definition WaveletReverse.h:97
~dwt_scratch(void)
Definition WaveletReverse.h:40
uint32_t parity
Definition WaveletReverse.h:95
dwt_scratch(const dwt_scratch &rhs)
Definition WaveletReverse.h:34
size_t lenBytes_
Definition WaveletReverse.h:87
uint32_t dn
Definition WaveletReverse.h:94
uint32_t sn
Definition WaveletReverse.h:93
Line32 win_l
Definition WaveletReverse.h:96
bool alloc(size_t len, size_t padding)
Definition WaveletReverse.h:48
ST * mem
Definition WaveletReverse.h:89
void release(void)
Definition WaveletReverse.h:77
bool alloc(size_t len)
Definition WaveletReverse.h:44
ST * memH
Definition WaveletReverse.h:91