34 #if defined(_MSC_VER) || defined(__MINGW64__)
36 #elif defined(__x86_64__)
37 #include <x86intrin.h>
41 0x00000000, 0x00000001, 0x00000003, 0x00000007, 0x0000000F, 0x0000001F, 0x0000003F, 0x0000007F,
42 0x000000FF, 0x000001FF, 0x000003FF, 0x000007FF, 0x00000FFF, 0x00001FFF, 0x00003FFF, 0x00007FFF,
43 0x0000FFFF, 0x0001FFFF, 0x0003FFFF, 0x0007FFFF, 0x000FFFFF, 0x001FFFFF, 0x003FFFFF, 0x007FFFFF,
44 0x00FFFFFF, 0x01FFFFFF, 0x03FFFFFF, 0x07FFFFFF, 0x0FFFFFFF, 0x1FFFFFFF, 0x3FFFFFFF, 0x7FFFFFFF};
68 void close(int32_t num_bits);
103 MEL_E{0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 4, 5},
110 #define getbitfunc getVLCbit()
112 #define getbitfunc importVLCBit()
134 :
pos((Lcup > 2) ? Lcup - 3 : 0),
135 last(*(Dcup + Lcup - 2)),
138 bits(((tmp & 0x07) < 7) ? 4 : 3),
141 uint8_t importVLCBit();
153 void close32(int32_t num_bits);
155 void decodeCxtVLC(
const uint16_t &context, uint8_t (&u_off)[2], uint8_t (&rho)[2], uint8_t (&emb_k)[2],
156 uint8_t (&emb_1)[2],
const uint8_t &first_or_second,
const uint16_t *dec_CxtVLC_table);
174 SP_dec(
const uint8_t *HT_magref_segment, uint32_t magref_length)
175 :
Lref(magref_length),
180 Dref((
Lref == 0) ? nullptr : HT_magref_segment) {}
197 MR_dec(
const uint8_t *HT_magref_segment, uint32_t magref_length)
198 :
Lref(magref_length),
202 pos((
Lref == 0) ? -1 : magref_length - 1),
203 Dref((
Lref == 0) ? nullptr : HT_magref_segment) {}
Definition: ht_block_decoding.hpp:187
uint8_t bits
Definition: ht_block_decoding.hpp:190
uint8_t last
Definition: ht_block_decoding.hpp:191
int32_t pos
Definition: ht_block_decoding.hpp:193
uint8_t tmp
Definition: ht_block_decoding.hpp:192
uint8_t importMagRefBit()
Definition: ht_block_decoding.cpp:376
const uint32_t Lref
Definition: ht_block_decoding.hpp:189
MR_dec(const uint8_t *HT_magref_segment, uint32_t magref_length)
Definition: ht_block_decoding.hpp:197
const uint8_t * Dref
Definition: ht_block_decoding.hpp:194
Definition: ht_block_decoding.hpp:164
uint8_t last
Definition: ht_block_decoding.hpp:169
const uint8_t * Dref
Definition: ht_block_decoding.hpp:171
const uint32_t Lref
Definition: ht_block_decoding.hpp:166
uint8_t importSigPropBit()
Definition: ht_block_decoding.cpp:351
uint8_t bits
Definition: ht_block_decoding.hpp:167
uint32_t pos
Definition: ht_block_decoding.hpp:170
SP_dec(const uint8_t *HT_magref_segment, uint32_t magref_length)
Definition: ht_block_decoding.hpp:174
uint8_t tmp
Definition: ht_block_decoding.hpp:168
Definition: coding_units.hpp:64
Definition: ht_block_decoding.hpp:90
uint8_t decodeMELSym()
Definition: ht_block_decoding.cpp:151
state_MEL_unPacker * MEL_unPacker
Definition: ht_block_decoding.hpp:96
state_MEL_decoder(state_MEL_unPacker &unpacker)
Definition: ht_block_decoding.hpp:99
uint8_t MEL_one
Definition: ht_block_decoding.hpp:94
uint8_t MEL_k
Definition: ht_block_decoding.hpp:92
uint8_t MEL_run
Definition: ht_block_decoding.hpp:93
const uint8_t MEL_E[13]
Definition: ht_block_decoding.hpp:95
Definition: ht_block_decoding.hpp:76
const uint8_t * buf
Definition: ht_block_decoding.hpp:81
int8_t bits
Definition: ht_block_decoding.hpp:79
uint8_t impoertMELbit()
Definition: ht_block_decoding.cpp:136
uint32_t length
Definition: ht_block_decoding.hpp:82
uint8_t tmp
Definition: ht_block_decoding.hpp:80
uint32_t pos
Definition: ht_block_decoding.hpp:78
state_MEL_unPacker(const uint8_t *Dcup, uint32_t Lcup, uint32_t Pcup)
Definition: ht_block_decoding.hpp:85
Definition: ht_block_decoding.hpp:49
void close(int32_t num_bits)
Definition: ht_block_decoding.cpp:83
uint8_t last
Definition: ht_block_decoding.hpp:54
uint8_t importMagSgnBit()
Definition: ht_block_decoding.cpp:91
uint8_t ctreg
Definition: ht_block_decoding.hpp:58
uint8_t tmp
Definition: ht_block_decoding.hpp:53
const uint8_t * buf
Definition: ht_block_decoding.hpp:55
uint8_t bits
Definition: ht_block_decoding.hpp:52
const uint32_t length
Definition: ht_block_decoding.hpp:56
uint32_t pos
Definition: ht_block_decoding.hpp:51
uint64_t Creg
Definition: ht_block_decoding.hpp:57
void loadByte()
Definition: ht_block_decoding.cpp:71
int32_t decodeMagSgnValue(int32_t m_n, int32_t i_n)
Definition: ht_block_decoding.cpp:116
state_MS_dec(const uint8_t *Dcup, uint32_t Pcup)
Definition: ht_block_decoding.hpp:61
Definition: ht_block_decoding.hpp:117
int32_t ctreg
Definition: ht_block_decoding.hpp:125
uint8_t decodeUExtension(const uint8_t &u_sfx)
Definition: ht_block_decoding.cpp:336
void load_bytes()
Definition: ht_block_decoding.cpp:209
uint8_t decodeUSuffix(const uint8_t &u_pfx)
Definition: ht_block_decoding.cpp:321
uint8_t getVLCbit()
Definition: ht_block_decoding.cpp:255
void decodeCxtVLC(const uint16_t &context, uint8_t(&u_off)[2], uint8_t(&rho)[2], uint8_t(&emb_k)[2], uint8_t(&emb_1)[2], const uint8_t &first_or_second, const uint16_t *dec_CxtVLC_table)
Definition: ht_block_decoding.cpp:271
int32_t pos
Definition: ht_block_decoding.hpp:119
uint8_t bits
Definition: ht_block_decoding.hpp:128
void close32(int32_t num_bits)
Definition: ht_block_decoding.cpp:262
uint64_t Creg
Definition: ht_block_decoding.hpp:126
state_VLC_dec(uint8_t *Dcup, uint32_t Lcup, uint32_t Pcup)
Definition: ht_block_decoding.hpp:132
uint8_t decodeUPrefix()
Definition: ht_block_decoding.cpp:307
uint8_t last
Definition: ht_block_decoding.hpp:120
uint8_t * buf
Definition: ht_block_decoding.hpp:129
const int32_t bitmask32[32]
Definition: ht_block_decoding.hpp:40
void htj2k_decode(j2k_codeblock *block, const uint8_t ROIshift)
Definition: ht_block_decoding.cpp:1076