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:385
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:360
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:81
Definition ht_block_decoding.hpp:90
uint8_t decodeMELSym()
Definition ht_block_decoding.cpp:160
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:145
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:92
uint8_t last
Definition ht_block_decoding.hpp:54
uint8_t importMagSgnBit()
Definition ht_block_decoding.cpp:100
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:80
int32_t decodeMagSgnValue(int32_t m_n, int32_t i_n)
Definition ht_block_decoding.cpp:125
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:345
void load_bytes()
Definition ht_block_decoding.cpp:218
uint8_t decodeUSuffix(const uint8_t &u_pfx)
Definition ht_block_decoding.cpp:330
uint8_t getVLCbit()
Definition ht_block_decoding.cpp:264
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:280
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:271
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:316
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:1085