Go to the documentation of this file.
69 #define MQC_NUMCTXS 19
99 #define BYPASS_CT_INIT 0xDEADBEEF
139 #define opj_mqc_setcurctx(mqc, ctxno) (mqc)->curctx = &(mqc)->ctxs[(OPJ_UINT32)(ctxno)]
struct opj_mqc_state opj_mqc_state_t
This struct defines the state of a context.
unsigned char OPJ_BYTE
Definition: openjpeg.h:123
void opj_mqc_raw_init_dec(opj_mqc_t *mqc, OPJ_BYTE *bp, OPJ_UINT32 len, OPJ_UINT32 extra_writable_bytes)
Initialize the decoder for RAW decoding.
Definition: mqc.c:463
void opj_mqc_init_enc(opj_mqc_t *mqc, OPJ_BYTE *bp)
Initialize the encoder.
Definition: mqc.c:188
void opj_mqc_reset_enc(opj_mqc_t *mqc)
RESET mode switch.
Definition: mqc.c:310
MQ coder.
Definition: mqc.h:74
OPJ_BYTE * bp
pointer to the current position in the buffer
Definition: mqc.h:84
void opj_mqc_erterm_enc(opj_mqc_t *mqc)
ERTERM mode switch (PTERM)
Definition: mqc.c:357
const opj_mqc_state_t ** curctx
Active context.
Definition: mqc.h:92
#define OPJ_COMMON_CBLK_DATA_EXTRA
Margin for a fake FFFF marker.
Definition: opj_common.h:39
#define T1_CTXNO_UNI
Definition: t1.h:65
void opj_mqc_bypass_init_enc(opj_mqc_t *mqc)
BYPASS mode switch, initialization operation.
Definition: mqc.c:229
void opj_mqc_segmark_enc(opj_mqc_t *mqc)
SEGMARK mode switch (SEGSYM)
Definition: mqc.c:410
void opj_mqc_erterm_enc(opj_mqc_t *mqc)
ERTERM mode switch (PTERM)
Definition: mqc.c:357
void opj_mqc_resetstates(opj_mqc_t *mqc)
Reset the states of all the context of the coder/decoder (each context is set to a state where 0 and ...
Definition: mqc.c:478
#define T1_CTXNO_AGG
Definition: t1.h:64
#define T1_CTXNO_ZC
Definition: t1.h:61
OPJ_UINT32 opj_mqc_bypass_get_extra_bytes(opj_mqc_t *mqc, OPJ_BOOL erterm)
Return number of extra bytes to add to opj_mqc_numbytes() for theĀ² size of a non-terminating BYPASS p...
Definition: mqc.c:266
void opj_mqc_bypass_enc(opj_mqc_t *mqc, OPJ_UINT32 d)
BYPASS mode switch, coding operation.
Definition: mqc.c:247
#define opj_mqc_codemps_macro(mqc, curctx, a, c, ct)
Definition: mqc_inl.h:225
const struct opj_mqc_state * nmps
next state if the next encoded symbol is the MPS
Definition: mqc.h:64
OPJ_UINT32 mps
the Most Probable Symbol (0 or 1)
Definition: mqc.h:62
void opj_mqc_restart_init_enc(opj_mqc_t *mqc)
RESTART mode switch (TERMALL) reinitialisation.
Definition: mqc.c:337
void opq_mqc_finish_dec(opj_mqc_t *mqc)
Terminate RAW/MQC decoding.
Definition: mqc.c:472
#define INLINE
Definition: openjpeg.h:65
#define BYPASS_CT_INIT
Definition: mqc.h:99
void opj_mqc_flush(opj_mqc_t *mqc)
Flush the encoder, so that all remaining data is written.
Definition: mqc.c:212
OPJ_UINT32 opj_mqc_numbytes(opj_mqc_t *mqc)
Return the number of bytes written/read since initialisation.
Definition: mqc.c:179
OPJ_UINT32 a
only used by MQ decoder
Definition: mqc.h:78
void opj_mqc_init_dec(opj_mqc_t *mqc, OPJ_BYTE *bp, OPJ_UINT32 len, OPJ_UINT32 extra_writable_bytes)
Initialize the decoder for MQ decoding.
Definition: mqc.c:439
void opj_mqc_bypass_enc(opj_mqc_t *mqc, OPJ_UINT32 d)
BYPASS mode switch, coding operation.
Definition: mqc.c:247
void opj_mqc_setstate(opj_mqc_t *mqc, OPJ_UINT32 ctxno, OPJ_UINT32 msb, OPJ_INT32 prob)
Set the state of a particular context.
Definition: mqc.c:486
int OPJ_BOOL
Definition: openjpeg.h:116
const opj_mqc_state_t * ctxs[MQC_NUMCTXS]
Array of contexts.
Definition: mqc.h:90
static const opj_mqc_state_t mqc_states[47 *2]
Definition: mqc.c:61
static INLINE void opj_mqc_codelps(opj_mqc_t *mqc)
Encode the most least symbol.
Definition: mqc.c:391
OPJ_UINT32 opj_mqc_numbytes(opj_mqc_t *mqc)
Return the number of bytes written/read since initialisation.
Definition: mqc.c:179
void opj_mqc_raw_init_dec(opj_mqc_t *mqc, OPJ_BYTE *bp, OPJ_UINT32 len, OPJ_UINT32 extra_writable_bytes)
Initialize the decoder for RAW decoding.
Definition: mqc.c:463
void opj_mqc_init_enc(opj_mqc_t *mqc, OPJ_BYTE *bp)
Initialize the encoder.
Definition: mqc.c:188
static INLINE void opj_mqc_codemps(opj_mqc_t *mqc)
Encode the most probable symbol.
Definition: mqc.c:382
void opj_mqc_init_dec(opj_mqc_t *mqc, OPJ_BYTE *bp, OPJ_UINT32 len, OPJ_UINT32 extra_writable_bytes)
Initialize the decoder for MQ decoding.
Definition: mqc.c:439
OPJ_BYTE * end
pointer to the end of the buffer
Definition: mqc.h:88
void opj_mqc_bypass_init_enc(opj_mqc_t *mqc)
BYPASS mode switch, initialization operation.
Definition: mqc.c:229
int32_t OPJ_INT32
Definition: openjpeg.h:131
#define opj_mqc_setcurctx(mqc, ctxno)
Set the current context used for coding/decoding.
Definition: mqc.h:139
void opj_mqc_flush(opj_mqc_t *mqc)
Flush the encoder, so that all remaining data is written.
Definition: mqc.c:212
const struct opj_mqc_state * nlps
next state if the next encoded symbol is the LPS
Definition: mqc.h:66
OPJ_BYTE * start
pointer to the start of the buffer
Definition: mqc.h:86
void opj_mqc_bypass_flush_enc(opj_mqc_t *mqc, OPJ_BOOL erterm)
BYPASS mode switch, flush operation.
Definition: mqc.c:272
static INLINE void opj_mqc_encode(opj_mqc_t *mqc, OPJ_UINT32 d)
Encode a symbol using the MQ-coder.
Definition: mqc.c:401
void opj_mqc_setstate(opj_mqc_t *mqc, OPJ_UINT32 ctxno, OPJ_UINT32 msb, OPJ_INT32 prob)
Set the state of a particular context.
Definition: mqc.c:486
static INLINE void opj_mqc_renorme(opj_mqc_t *mqc)
Definition: mqc.c:373
void opq_mqc_finish_dec(opj_mqc_t *mqc)
Terminate RAW/MQC decoding.
Definition: mqc.c:472
OPJ_UINT32 qeval
the probability of the Least Probable Symbol (0.75->0x8000, 1.5->0xffff)
Definition: mqc.h:60
void opj_mqc_segmark_enc(opj_mqc_t *mqc)
SEGMARK mode switch (SEGSYM)
Definition: mqc.c:410
void opj_mqc_resetstates(opj_mqc_t *mqc)
Reset the states of all the context of the coder/decoder (each context is set to a state where 0 and ...
Definition: mqc.c:478
void opj_mqc_bypass_flush_enc(opj_mqc_t *mqc, OPJ_BOOL erterm)
BYPASS mode switch, flush operation.
Definition: mqc.c:272
static void opj_mqc_init_dec_common(opj_mqc_t *mqc, OPJ_BYTE *bp, OPJ_UINT32 len, OPJ_UINT32 extra_writable_bytes)
Definition: mqc.c:420
void opj_mqc_byteout(opj_mqc_t *mqc)
Output a byte, doing bit-stuffing if necessary.
Definition: mqc.c:492
OPJ_UINT32 opj_mqc_bypass_get_extra_bytes(opj_mqc_t *mqc, OPJ_BOOL erterm)
Return number of extra bytes to add to opj_mqc_numbytes() for theĀ² size of a non-terminating BYPASS p...
Definition: mqc.c:266
OPJ_UINT32 c
temporary buffer where bits are coded or decoded
Definition: mqc.h:76
uint32_t OPJ_UINT32
Definition: openjpeg.h:132
void opj_mqc_reset_enc(opj_mqc_t *mqc)
RESET mode switch.
Definition: mqc.c:310
#define opj_mqc_renorme_macro(mqc, a_, c_, ct_)
Renormalize mqc->a and mqc->c while encoding, so that mqc->a stays between 0x8000 and 0x10000.
Definition: mqc_inl.h:210
#define opj_mqc_codelps_macro(mqc, curctx, a, c, ct)
Definition: mqc_inl.h:241
This struct defines the state of a context.
Definition: mqc.h:58
void opj_mqc_restart_init_enc(opj_mqc_t *mqc)
RESTART mode switch (TERMALL) reinitialisation.
Definition: mqc.c:337
OPJ_BYTE backup[OPJ_COMMON_CBLK_DATA_EXTRA]
Original value of the 2 bytes at end[0] and end[1].
Definition: mqc.h:96
static INLINE void opj_mqc_bytein(opj_mqc_t *const mqc)
Input a byte.
Definition: mqc_inl.h:175
static void opj_mqc_setbits(opj_mqc_t *mqc)
Fill mqc->c with 1's for flushing.
Definition: mqc.c:164
struct opj_mqc opj_mqc_t
MQ coder.
OPJ_UINT32 ct
number of bits already read or free to write
Definition: mqc.h:80
#define MQC_NUMCTXS
Definition: mqc.h:69
OPJ_UINT32 end_of_byte_stream_counter
Definition: mqc.h:82
const OPJ_BYTE * lut_ctxno_zc_orient
Definition: mqc.h:94