Go to the documentation of this file.
46 return lossless ? 2 : 4;
50 return T(lossless ? (
sizeof(int32_t)/
sizeof(int32_t)) : (
sizeof(
vec4f) /
sizeof(
float)));
@ BAND_INDEX_LH
Definition: T1Structs.h:53
#define PLL_COLS_53
Number of columns that we can process in parallel in the vertical pass.
Definition: WaveletReverse.cpp:107
Resolution * resolutions
Definition: TileComponent.h:57
uint32_t strideHH
Definition: WaveletReverse.cpp:97
static bool decompress_h_mt_53(uint32_t num_threads, size_t data_size, dwt_data< int32_t > &horiz, dwt_data< int32_t > &vert, uint32_t rh, int32_t *bandL, const uint32_t strideL, int32_t *bandH, const uint32_t strideH, int32_t *dest, const uint32_t strideDest)
Definition: WaveletReverse.cpp:666
void grk_aligned_free(void *ptr)
Definition: MemManager.cpp:123
constexpr T getFilterWidth(bool lossless)
Definition: WaveletReverse.h:45
@ SPLIT_NUM_ORIENTATIONS
Definition: T1Structs.h:32
vec4f(float m)
Definition: WaveletReverse.h:32
size_t length
Definition: WaveletReverse.cpp:168
Definition: WaveletReverse.h:29
T height() const
Definition: util.h:165
static void decompress_step_97(dwt_data< vec4f > *GRK_RESTRICT dwt)
Definition: WaveletReverse.cpp:1069
bool decompress(TileProcessor *p_tcd, TileComponent *tilec, grk_rect_u32 window, uint32_t numres, uint8_t qmfbid)
Definition: WaveletReverse.cpp:2168
uint32_t len
Definition: WaveletReverse.cpp:918
uint32_t min_j
Definition: WaveletReverse.cpp:101
Definition: SparseBuffer.h:72
static void decompress_step2_97(Decompress97 d, float c)
Definition: WaveletReverse.cpp:1027
bool alloc(size_t len)
Definition: WaveletReverse.cpp:135
@ BAND_NUM_ORIENTATIONS
Definition: T1Structs.h:41
Tile compressor/decompressor.
Definition: TileProcessor.h:63
static ThreadPool * get()
Definition: ThreadPool.hpp:51
static void decompress_v_cas1_53(int32_t *buf, int32_t *bandL, const uint32_t hL, const uint32_t strideL, int32_t *bandH, const uint32_t hH, const uint32_t strideH, int32_t *dest, const uint32_t strideDest)
Vertical inverse 5x3 wavelet transform for one column, when top-most pixel is on odd coordinate.
Definition: WaveletReverse.cpp:506
grk_rectangle< T > pan(int64_t x, int64_t y) const
Definition: util.h:169
static bool SSE2()
Definition: CPUArch.cpp:363
void decompress_h(dwt_data< T > *horiz)
Definition: WaveletReverse.cpp:1587
static const float c13318
Definition: WaveletReverse.cpp:178
static bool decompress_tile_97(TileComponent *GRK_RESTRICT tilec, uint32_t numres)
Definition: WaveletReverse.cpp:1405
static const float K
Definition: WaveletReverse.cpp:177
T x1
Definition: util.h:76
uint32_t strideHL
Definition: WaveletReverse.cpp:93
static void decompress_h_strip_97(dwt_data< vec4f > *GRK_RESTRICT horiz, const uint32_t rh, float *GRK_RESTRICT bandL, const uint32_t strideL, float *GRK_RESTRICT bandH, const uint32_t strideH, float *dest, const size_t strideDest)
Definition: WaveletReverse.cpp:1177
T *GRK_RESTRICT dest
Definition: WaveletReverse.cpp:98
static void decompress_step1_97(vec4f *data, uint32_t end, const float c)
Definition: WaveletReverse.cpp:1015
TileComponentWindowBuffer< int32_t > * getBuffer() const
Definition: TileComponent.cpp:321
Definition: WaveletReverse.cpp:912
Definition: WaveletReverse.h:53
@ BAND_ORIENT_HL
Definition: T1Structs.h:38
static const float dwt_delta
Definition: WaveletReverse.cpp:175
static void decompress_v_strip_53(const dwt_data< int32_t > *vert, uint32_t wMin, uint32_t wMax, int32_t *bandL, const uint32_t strideL, int32_t *bandH, const uint32_t strideH, int32_t *dest, const uint32_t strideDest)
Definition: WaveletReverse.cpp:733
static bool AVX2()
Definition: CPUArch.cpp:351
vec4f * data
Definition: WaveletReverse.cpp:916
static const float dwt_beta
Definition: WaveletReverse.cpp:173
uint32_t sn
Definition: WaveletReverse.cpp:160
static bool decompress_v_mt_97(uint32_t num_threads, size_t data_size, dwt_data< vec4f > &GRK_RESTRICT vert, const uint32_t rw, const uint32_t rh, float *GRK_RESTRICT bandL, const uint32_t strideL, float *GRK_RESTRICT bandH, const uint32_t strideH, float *GRK_RESTRICT dest, const uint32_t strideDest)
Definition: WaveletReverse.cpp:1330
T *GRK_RESTRICT bandLH
Definition: WaveletReverse.cpp:94
dwt_data(const dwt_data &rhs)
Definition: WaveletReverse.cpp:122
uint32_t lenMax
Definition: WaveletReverse.cpp:919
#define DD_sgnd_off_(i, off)
@ BAND_ORIENT_LH
Definition: T1Structs.h:39
T *GRK_RESTRICT bandHH
Definition: WaveletReverse.cpp:96
uint32_t win_l_0
Definition: WaveletReverse.cpp:163
Definition: WaveletReverse.cpp:1585
static const float dwt_gamma
Definition: WaveletReverse.cpp:174
void * grk_aligned_malloc(size_t size)
Allocate memory aligned to a 16 byte boundary.
Definition: MemManager.cpp:119
bool decompress_partial_tile(TileComponent *GRK_RESTRICT tilec, grk_rect_u32 bounds, uint32_t numres, ISparseBuffer *sa)
Definition: WaveletReverse.cpp:1845
static void interleave_v_97(dwt_data< vec4f > *GRK_RESTRICT dwt, float *GRK_RESTRICT bandL, const uint32_t strideL, float *GRK_RESTRICT bandH, const uint32_t strideH, uint32_t nb_elts_read)
Definition: WaveletReverse.cpp:1276
size_t num_threads()
Definition: ThreadPool.hpp:49
static void decompress_v_cas0_53(int32_t *buf, int32_t *bandL, const uint32_t hL, const uint32_t strideL, int32_t *bandH, const uint32_t hH, const uint32_t strideH, int32_t *dest, const uint32_t strideDest)
Vertical inverse 5x3 wavelet transform for one column, when top-most pixel is on even coordinate.
Definition: WaveletReverse.cpp:454
bool decompress_53(TileProcessor *p_tcd, TileComponent *GRK_RESTRICT tilec, grk_rect_u32 window, uint32_t numres)
Inverse 5-3 wavelet transform in 2-D.
Definition: WaveletReverse.cpp:2134
static void decompress_h_cas1_53(int32_t *buf, int32_t *bandL, const uint32_t wL, int32_t *bandH, const uint32_t wH, int32_t *dest)
Definition: WaveletReverse.cpp:221
static void decompress_v_strip_97(dwt_data< vec4f > *GRK_RESTRICT vert, const uint32_t rw, const uint32_t rh, float *GRK_RESTRICT bandL, const uint32_t strideL, float *GRK_RESTRICT bandH, const uint32_t strideH, float *GRK_RESTRICT dest, const uint32_t strideDest)
Definition: WaveletReverse.cpp:1296
static void decompress_h_cas0_53(int32_t *buf, int32_t *bandL, const uint32_t wL, int32_t *bandH, const uint32_t wH, int32_t *dest)
Definition: WaveletReverse.cpp:180
Definition: WaveletReverse.cpp:1803
T width() const
Definition: util.h:162
S data
Definition: WaveletReverse.cpp:89
void decompress_v(dwt_data< T > *vert)
Definition: WaveletReverse.cpp:1669
const grk_buffer_2d< T > * getWindow(uint8_t resno, eBandOrientation orientation) const
Get non-LL band window.
Definition: TileComponentWindowBuffer.h:388
Definition: WaveletReverse.cpp:108
static void decompress_v_53(const dwt_data< int32_t > *dwt, int32_t *bandL, const uint32_t strideL, int32_t *bandH, const uint32_t strideH, int32_t *dest, const uint32_t strideDest, uint32_t nb_cols)
Definition: WaveletReverse.cpp:588
dwt_data()
Definition: WaveletReverse.cpp:109
void interleave_h(dwt_data< T > *dwt, ISparseBuffer *sa, uint32_t y_offset, uint32_t y_num_rows)
interleaved data is laid out in the dwt->mem buffer in increments of type T
Definition: WaveletReverse.cpp:1521
@ SPLIT_L
Definition: T1Structs.h:30
void release()
Definition: WaveletReverse.cpp:154
static void interleave_h_97(dwt_data< vec4f > *GRK_RESTRICT dwt, float *GRK_RESTRICT bandL, const uint32_t strideL, float *GRK_RESTRICT bandH, const uint32_t strideH, uint32_t remaining_height)
Definition: WaveletReverse.cpp:1125
constexpr T getHorizontalPassHeight(bool lossless)
Definition: WaveletReverse.h:49
virtual bool write(uint32_t x0, uint32_t y0, uint32_t x1, uint32_t y1, const int32_t *src, const uint32_t src_col_stride, const uint32_t src_line_stride, bool forgiving)=0
Write the content of a rectangular window into the sparse array from a user buffer.
uint32_t win_h_1
Definition: WaveletReverse.cpp:167
virtual bool alloc(grk_rect_u32 window)=0
Allocate all blocks for a rectangular window into the sparse array from a user buffer.
bool decompress_97(TileProcessor *p_tcd, TileComponent *GRK_RESTRICT tilec, grk_rect_u32 window, uint32_t numres)
Inverse 9-7 wavelet transform in 2-D.
Definition: WaveletReverse.cpp:2151
T * mem
Definition: WaveletReverse.cpp:158
#define D_sgnd_off_(i, off)
Copyright (C) 2016-2020 Grok Image Compression Inc.
Definition: BitIO.cpp:23
decompress_job(S data, uint32_t min_j, uint32_t max_j)
Definition: WaveletReverse.cpp:72
Definition: TileComponent.h:31
@ BAND_ORIENT_HH
Definition: T1Structs.h:40
uint32_t strideLL
Definition: WaveletReverse.cpp:91
static void decompress_h_53(const dwt_data< int32_t > *dwt, int32_t *bandL, int32_t *bandH, int32_t *dest)
Definition: WaveletReverse.cpp:557
uint32_t strideDest
Definition: WaveletReverse.cpp:99
uint32_t win_h_0
Definition: WaveletReverse.cpp:166
Definition: WaveletReverse.cpp:45
void interleave_v(dwt_data< T > *GRK_RESTRICT dwt, ISparseBuffer *sa, uint32_t x_offset, uint32_t x_num_elements)
Definition: WaveletReverse.cpp:1555
static bool decompress_v_mt_53(uint32_t num_threads, size_t data_size, dwt_data< int32_t > &horiz, dwt_data< int32_t > &vert, uint32_t rw, int32_t *bandL, const uint32_t strideL, int32_t *bandH, const uint32_t strideH, int32_t *dest, const uint32_t strideDest)
Definition: WaveletReverse.cpp:755
void decompress_h(dwt_data< T > *dwt)
Definition: WaveletReverse.cpp:1805
uint32_t dn
Definition: WaveletReverse.cpp:159
static bool decompress_tile_53(TileComponent *tilec, uint32_t numres)
Definition: WaveletReverse.cpp:828
float f[4]
Definition: WaveletReverse.h:40
T *GRK_RESTRICT bandHL
Definition: WaveletReverse.cpp:92
#define VREG_INT_COUNT
Number of int32 values in an SSE2 register.
Definition: simd.h:44
virtual bool read(uint32_t x0, uint32_t y0, uint32_t x1, uint32_t y1, int32_t *dest, const uint32_t dest_col_stride, const uint32_t dest_line_stride, bool forgiving)=0
Read the content of a rectangular window of the sparse array into a user buffer.
Definition: T1Structs.h:231
static void decompress_h_strip_53(const dwt_data< int32_t > *horiz, uint32_t hMin, uint32_t hMax, int32_t *bandL, const uint32_t strideL, int32_t *bandH, const uint32_t strideH, int32_t *dest, const uint32_t strideDest)
Definition: WaveletReverse.cpp:649
grk_rectangle< T > rectceildivpow2(uint32_t power) const
Definition: util.h:125
#define GRK_RESTRICT
Definition: grk_includes.h:101
#define GRK_UNUSED(x)
Definition: grk_includes.h:150
static Decompress97 makeDecompress97(dwt_data< vec4f > *dwt, bool low)
Definition: WaveletReverse.cpp:922
@ BAND_INDEX_HL
Definition: T1Structs.h:54
uint32_t strideLH
Definition: WaveletReverse.cpp:95
T x0
Definition: util.h:76
T y1
Definition: util.h:76
vec4f * boundaryData
Definition: WaveletReverse.cpp:915
uint32_t max_resolution(Resolution *GRK_RESTRICT r, uint32_t i)
Definition: WaveletReverse.cpp:32
uint32_t win_l_1
Definition: WaveletReverse.cpp:164
vec4f()
Definition: WaveletReverse.h:30
T *GRK_RESTRICT bandLL
Definition: WaveletReverse.cpp:90
Definition: WaveletReverse.cpp:1515
const grk_buffer_2d< T > * getSplitWindow(uint8_t resno, eSplitOrientation orientation) const
Definition: TileComponentWindowBuffer.h:403
uint32_t win_h_off
Definition: WaveletReverse.cpp:165
bool wholeTileDecompress
Definition: TileProcessor.h:152
uint32_t max_j
Definition: WaveletReverse.cpp:102
void decompress_v(dwt_data< T > *dwt)
Definition: WaveletReverse.cpp:1808
Definition: grk_exceptions.h:36
@ SPLIT_H
Definition: T1Structs.h:31
T y0
Definition: util.h:76
static bool decompress_h_mt_97(uint32_t num_threads, size_t data_size, dwt_data< vec4f > &GRK_RESTRICT horiz, const uint32_t rh, float *GRK_RESTRICT bandL, const uint32_t strideL, float *GRK_RESTRICT bandH, const uint32_t strideH, float *GRK_RESTRICT dest, const uint32_t strideDest)
Definition: WaveletReverse.cpp:1216
decompress_job(S data, T *GRK_RESTRICT LL, uint32_t sLL, T *GRK_RESTRICT HL, uint32_t sHL, T *GRK_RESTRICT LH, uint32_t sLH, T *GRK_RESTRICT HH, uint32_t sHH, T *GRK_RESTRICT destination, uint32_t strideDestination, uint32_t min_j, uint32_t max_j)
Definition: WaveletReverse.cpp:46
Decompress97()
Definition: WaveletReverse.cpp:913
#define SIZE_MAX
Definition: MemManager.cpp:33
void GRK_ERROR(const char *fmt,...)
Definition: logger.cpp:57
@ BAND_ORIENT_LL
Definition: T1Structs.h:37
static const float dwt_alpha
Definition: WaveletReverse.cpp:172
uint32_t absoluteStart
Definition: WaveletReverse.cpp:917
uint32_t win_l_off
Definition: WaveletReverse.cpp:162
uint32_t cas
Definition: WaveletReverse.cpp:161