Go to the documentation of this file.
35 T1(
bool isCompressor, uint32_t maxCblkW, uint32_t maxCblkH);
51 const double *mct_norms,
52 uint16_t mct_numcomps,
81 template <u
int32_t w, u
int32_t h,
bool vsc>
void dec_clnpass(int32_t bpno);
112 uint32_t flags_stride,
137 double getnorm_53(uint32_t level, uint8_t orientation);
144 double getnorm_97(uint32_t level, uint8_t orientation);
146 double getnorm(uint32_t level, uint8_t orientation,
bool reversible);
148 double getwmsedec(int32_t nmsedec, uint32_t compno, uint32_t level,
149 uint8_t orientation, int32_t bpno,
150 uint32_t qmfbid,
double stepsize,
151 const double *mct_norms,
152 uint32_t mct_numcomps);
uint32_t mqc_bypass_get_extra_bytes_enc(mqcoder *mqc, bool erterm)
Definition: mqc_enc.cpp:273
void dec_clnpass_check_segsym(int32_t cblksty)
Definition: T1.cpp:1016
#define T1_CHI_0_I
Definition: T1.cpp:67
void dec_refpass_raw(int32_t bpno)
Definition: T1.cpp:1237
void grk_aligned_free(void *ptr)
Definition: MemManager.cpp:123
uint32_t h
Definition: T1.h:60
double getnorm_53(uint32_t level, uint8_t orientation)
Get the norm of a wavelet function of a subband at a specified level for the reversible 5-3 DWT.
Definition: T1.cpp:268
void mqc_init_dec(mqcoder *mqc, uint8_t *bp, uint32_t len)
Initialize the decoder for MQ decoding.
Definition: mqc_dec.cpp:140
void mqc_erterm_enc(mqcoder *mqc)
Definition: mqc_enc.cpp:331
#define T1_CTXNO_UNI
Definition: t1_common.h:63
void dec_refpass_step_raw(grk_flag *flagsp, int32_t *datap, int32_t poshalf, uint32_t ci)
Definition: T1.cpp:1205
#define mqc_encode_macro(mqc, curctx, a, c, ct, d)
Definition: mqc_enc_inl.h:83
static INLINE uint8_t getctxno_sc(uint32_t lu)
Definition: T1.cpp:186
double getwmsedec(int32_t nmsedec, uint32_t compno, uint32_t level, uint8_t orientation, int32_t bpno, uint32_t qmfbid, double stepsize, const double *mct_norms, uint32_t mct_numcomps)
Definition: T1.cpp:409
pass_enc * passes
Definition: t1_common.h:81
#define T1_CTXNO_AGG
Definition: t1_common.h:62
void enc_clnpass(int32_t bpno, int32_t *nmsedec, uint32_t cblksty)
Definition: T1.cpp:597
Definition: t1_common.h:79
void mqc_raw_init_dec(mqcoder *mqc, uint8_t *bp, uint32_t len)
Initialize the decoder for RAW decoding.
Definition: mqc_dec.cpp:156
uint32_t y1
Definition: t1_common.h:100
#define GRK_CBLKSTY_VSC
Vertically stripe causal context.
Definition: grok.h:98
static INLINE uint32_t getctxno_mag(uint32_t f)
Definition: T1.cpp:190
#define mqc_decode(d, mqc)
Decompress a symbol.
Definition: mqc_dec_inl.h:153
seg_data_chunk * seg_buffers
Definition: t1_common.h:99
#define T1_SIGMA_NEIGHBOURS
Definition: T1.cpp:118
bool allocate_buffers(uint32_t w, uint32_t h)
Definition: T1.cpp:280
#define UPLOAD_MQC_VARIABLES(mqc, curctx)
Definition: mqc_inl.h:32
#define T1_TYPE_MQ
Definition: T1.cpp:135
void GRK_WARN(const char *fmt,...)
Definition: logger.cpp:49
static int16_t getnmsedec_ref(uint32_t x, uint32_t bitpos)
Definition: T1.cpp:205
void * grk_calloc(size_t num, size_t size)
Allocate a memory block with elements initialized to 0.
Definition: MemManager.cpp:111
uint32_t flagssize
Definition: T1.h:78
void mqc_init_enc(mqcoder *mqc, uint8_t *bp)
Definition: mqc_enc.cpp:210
void dec_sigpass_raw(int32_t bpno, int32_t cblksty)
Definition: T1.cpp:1105
#define T1_SIGMA_3
Definition: T1.cpp:51
#define dec_sigpass_mqc_internal(bpno, vsc, w, h, flags_stride)
Definition: T1.cpp:1146
uint32_t numbps
Definition: t1_common.h:101
uint32_t numSegments
Definition: t1_common.h:102
void mqc_resetstates(mqcoder *mqc)
Definition: mqc_dec.cpp:167
void grk_free(void *ptr)
Deallocates or frees a memory block.
Definition: MemManager.cpp:141
uint32_t cblkdatabuffersize
Definition: T1.h:65
static const int16_t lut_nmsedec_ref0[1U<< T1_NMSEDEC_BITS]
Definition: t1_luts.h:157
Definition: t1_common.h:92
#define T1_CHI_2_I
Definition: T1.cpp:73
#define T1_CHI_1_I
Definition: T1.cpp:69
#define T1_MU_0
Definition: T1.cpp:70
static INLINE uint8_t getctxno_zc(mqcoder *mqc, uint32_t f)
Definition: T1.cpp:155
#define T1_SIGMA_10
Definition: T1.cpp:58
static INLINE uint8_t getspb(uint32_t lu)
Definition: T1.cpp:196
#define GRK_CBLKSTY_PTERM
Predictable termination.
Definition: grok.h:99
#define T1_CTXNO_MAG
Definition: t1_common.h:61
#define T1_NMSEDEC_FRACBITS
Definition: t1_common.h:51
#define T1_SIGMA_13
Definition: T1.cpp:61
#define T1_SIGMA_1
Definition: T1.cpp:49
bool code_block_enc_allocate(cblk_enc *p_code_block)
Definition: T1.cpp:398
#define T1_PI_1
Definition: T1.cpp:76
static const int16_t lut_nmsedec_ref[1U<< T1_NMSEDEC_BITS]
Definition: t1_luts.h:138
#define enc_sigpass_step_macro(datap, ci, vsc)
Definition: T1.cpp:453
~T1()
Definition: T1.cpp:377
static const int16_t lut_nmsedec_sig[1U<< T1_NMSEDEC_BITS]
Definition: t1_luts.h:100
#define GRK_CBLKSTY_RESET
Reset context probabilities on coding pass boundaries.
Definition: grok.h:96
uint32_t data_stride
Definition: T1.h:61
uint32_t rate
Definition: t1_common.h:73
Definition: t1_common.h:72
void dec_sigpass_step_raw(grk_flag *flagsp, int32_t *datap, int32_t oneplushalf, uint32_t vsc, uint32_t ci)
Definition: T1.cpp:1052
#define T1_PI_0
Definition: T1.cpp:71
void * grk_aligned_malloc(size_t size)
Allocate memory aligned to a 16 byte boundary.
Definition: MemManager.cpp:119
#define smr_abs(x)
Definition: t1_common.h:107
double getnorm_97(uint32_t level, uint8_t orientation)
Get the norm of a wavelet function of a subband at a specified level for the irreversible 9-7 DWT.
Definition: T1.cpp:275
uint32_t datasize
Definition: T1.h:77
static INLINE uint32_t getctxtno_sc_or_spb_index(uint32_t fX, uint32_t pfX, uint32_t nfX, uint32_t ci)
Definition: T1.cpp:159
static INLINE void update_flags(grk_flag *flagsp, uint32_t ci, uint32_t s, uint32_t stride, uint32_t vsc)
Definition: T1.cpp:236
#define dec_clnpass_step_macro(check_flags, partial, flags, flagsp, flags_stride, data, data_stride, ciorig, ci, mqc, curctx, v, a, c, ct, oneplushalf, vsc)
Definition: T1.cpp:890
#define T1_SIGMA_5
Definition: T1.cpp:53
void dec_clnpass(int32_t bpno)
Definition: T1.cpp:1035
uint32_t x1
Definition: t1_common.h:100
int enc_is_term_pass(cblk_enc *cblk, uint32_t cblksty, int32_t bpno, uint32_t passtype)
Definition: T1.cpp:431
#define dec_sigpass_step_mqc_macro(flags, flagsp, flags_stride, data, data_stride, ciorig, ci, mqc, curctx, v, a, c, ct, oneplushalf, vsc)
Definition: T1.cpp:1068
#define T1_MU_THIS
Definition: T1.cpp:122
uint32_t grk_flag
Flags for 4 consecutive rows of a column.
Definition: T1.h:31
static const int16_t lut_nmsedec_sig0[1U<< T1_NMSEDEC_BITS]
Definition: t1_luts.h:119
#define dec_refpass_step_mqc_macro(flags, data, data_stride, ciorig, ci, mqc, curctx, v, a, c, ct, poshalf)
Definition: T1.cpp:1217
void enc_sigpass(int32_t bpno, int32_t *nmsedec, uint8_t type, uint32_t cblksty)
Definition: T1.cpp:486
#define mqc_setcurctx(mqc, ctxno)
Definition: mqc_inl.h:38
#define DOWNLOAD_MQC_VARIABLES(mqc)
Definition: mqc_inl.h:26
void dec_refpass_step_mqc(mqcoder *mqc, grk_flag *flagsp, int32_t *datap, int32_t poshalf, uint32_t ci)
Definition: T1.cpp:1230
uint32_t ct
number of bits already read or free to write
Definition: mqc.h:48
void mqc_restart_init_enc(mqcoder *mqc)
Definition: mqc_enc.cpp:314
#define GRK_CBLKSTY_SEGSYM
Segmentation symbols are used.
Definition: grok.h:100
const mqc_state ** curctx
Active context.
Definition: mqc.h:60
void dec_clnpass_step(grk_flag *flagsp, int32_t *datap, int32_t oneplushalf, uint32_t ciorig, uint32_t ci, uint32_t vsc)
Definition: T1.cpp:918
#define T1_CHI_THIS_I
Definition: T1.cpp:121
Copyright (C) 2016-2021 Grok Image Compression Inc.
Definition: BitIO.cpp:23
uint32_t c
temporary buffer where bits are coded or decoded
Definition: mqc.h:44
#define T1_NMSEDEC_BITS
Definition: t1_common.h:50
bool compressor
Definition: T1.h:79
uint32_t numbps
Definition: t1_common.h:83
seg * segs
Definition: t1_common.h:98
void dec_sigpass_step_mqc(grk_flag *flagsp, int32_t *datap, int32_t oneplushalf, uint32_t ci, uint32_t flags_stride, uint32_t vsc)
Definition: T1.cpp:1094
void * grk_malloc(size_t size)
Allocate an uninitialized memory block.
Definition: MemManager.cpp:105
void mqc_segmark_enc(mqcoder *mqc)
Definition: mqc_enc.cpp:344
uint32_t y0
Definition: t1_common.h:100
static INLINE uint32_t mqc_raw_decode(mqcoder *mqc)
Decompress a symbol using raw-decoder.
Definition: mqc_dec_inl.h:55
#define T1_PI_3
Definition: T1.cpp:83
Definition: t1_common.h:97
#define INLINE
Definition: t1_common.h:28
double getnorm(uint32_t level, uint8_t orientation, bool reversible)
Definition: T1.cpp:242
int32_t * data
Definition: T1.h:58
#define T1_PI_2
Definition: T1.cpp:80
uint8_t * data
Definition: t1_common.h:80
double compress_cblk(cblk_enc *cblk, uint32_t max, uint8_t orientation, uint16_t compno, uint8_t level, uint8_t qmfbid, double stepsize, uint32_t cblksty, const double *mct_norms, uint16_t mct_numcomps, bool doRateControl)
Definition: T1.cpp:740
void dec_refpass_mqc(int32_t bpno)
Definition: T1.cpp:1310
uint8_t * buf
Definition: t1_common.h:88
#define GRK_CBLKSTY_LAZY
Selective arithmetic coding bypass.
Definition: grok.h:95
bool decompress_cblk(cblk_dec *cblk, uint8_t orientation, uint32_t cblksty)
Definition: T1.cpp:1318
mqcoder coder
MQC component.
Definition: T1.h:56
#define T1_SIGMA_4
Definition: T1.cpp:52
void mqc_finish_dec(mqcoder *mqc)
Terminate RAW/MQC decoding.
Definition: mqc_dec.cpp:162
const uint8_t * lut_ctxno_zc_orient
Definition: mqc.h:62
void dec_sigpass_mqc(int32_t bpno, int32_t cblksty)
Definition: T1.cpp:1191
#define T1_PI_THIS
Definition: T1.cpp:123
#define T1_SIGMA_THIS
Definition: T1.cpp:113
#define dec_clnpass_internal(t1, bpno, vsc, w, h, flags_stride)
Definition: T1.cpp:928
#define T1_TYPE_RAW
Definition: T1.cpp:136
uint32_t mqc_numbytes_enc(mqcoder *mqc)
Definition: mqc_enc.cpp:206
#define enc_refpass_step_macro(datap, ci)
Definition: T1.cpp:533
#define update_flags_macro(flags, flagsp, ci, s, stride, vsc)
Definition: T1.cpp:212
uint8_t * cblkdatabuffer
Definition: T1.h:63
static const uint8_t lut_spb[256]
Definition: t1_luts.h:89
static int16_t getnmsedec_sig(uint32_t x, uint32_t bitpos)
Definition: T1.cpp:199
T1(bool isCompressor, uint32_t maxCblkW, uint32_t maxCblkH)
Definition: T1.cpp:358
uint32_t len
Definition: t1_common.h:93
uint32_t numpasses
Definition: t1_common.h:94
void code_block_enc_deallocate(cblk_enc *p_code_block)
ENCODE ////////////////////////////////////////////////////.
Definition: T1.cpp:394
#define GRK_CBLKSTY_TERMALL
Termination on each coding pass.
Definition: grok.h:97
#define dec_refpass_mqc_internal(bpno, w, h, flags_stride)
Definition: T1.cpp:1267
static const uint8_t lut_ctxno_zc[2048]
Definition: t1_luts.h:3
bool term
Definition: t1_common.h:76
#define smr_sign(x)
Definition: t1_common.h:108
void enc_refpass(int32_t bpno, int32_t *nmsedec, uint8_t type)
Definition: T1.cpp:552
uint32_t a
only used by MQ decoder
Definition: mqc.h:46
void mqc_bypass_flush_enc(mqcoder *mqc, bool erterm)
Definition: mqc_enc.cpp:278
uint32_t numPassesTotal
Definition: t1_common.h:84
grk_flag * flags
Flags used by decompressor and compressor.
Definition: T1.h:75
void mqc_flush_enc(mqcoder *mqc)
Definition: mqc_enc.cpp:239
const uint32_t k_max_bit_planes
Definition: t1_common.h:70
static const uint8_t lut_ctxno_sc[256]
Definition: t1_luts.h:70
uint32_t x0
Definition: t1_common.h:100
void GRK_ERROR(const char *fmt,...)
Definition: logger.cpp:57
void mqc_bypass_init_enc(mqcoder *mqc)
Definition: mqc_enc.cpp:256
#define T1_SIGMA_7
Definition: T1.cpp:55
uint32_t w
Definition: T1.h:59