Go to the documentation of this file.
69 #define MQC_NUMCTXS 19
137 #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:117
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:531
void opj_mqc_init_enc(opj_mqc_t *mqc, OPJ_BYTE *bp)
Initialize the encoder.
Definition: mqc.c:283
void opj_mqc_reset_enc(opj_mqc_t *mqc)
RESET mode switch.
Definition: mqc.c:415
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:462
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:334
static void opj_mqc_codemps(opj_mqc_t *mqc)
Encode the most probable symbol.
Definition: mqc.c:231
void opj_mqc_segmark_enc(opj_mqc_t *mqc)
SEGMARK mode switch (SEGSYM)
Definition: mqc.c:478
void opj_mqc_erterm_enc(opj_mqc_t *mqc)
ERTERM mode switch (PTERM)
Definition: mqc.c:462
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:546
#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:371
void opj_mqc_bypass_enc(opj_mqc_t *mqc, OPJ_UINT32 d)
BYPASS mode switch, coding operation.
Definition: mqc.c:352
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:442
void opq_mqc_finish_dec(opj_mqc_t *mqc)
Terminate RAW/MQC decoding.
Definition: mqc.c:540
void opj_mqc_flush(opj_mqc_t *mqc)
Flush the encoder, so that all remaining data is written.
Definition: mqc.c:315
OPJ_UINT32 opj_mqc_numbytes(opj_mqc_t *mqc)
Return the number of bytes written/read since initialisation.
Definition: mqc.c:274
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:507
void opj_mqc_bypass_enc(opj_mqc_t *mqc, OPJ_UINT32 d)
BYPASS mode switch, coding operation.
Definition: mqc.c:352
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:554
int OPJ_BOOL
Definition: openjpeg.h:110
static void opj_mqc_codelps(opj_mqc_t *mqc)
Encode the most least symbol.
Definition: mqc.c:247
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:82
#define BYPASS_CT_INIT
Definition: mqc.c:332
OPJ_UINT32 opj_mqc_numbytes(opj_mqc_t *mqc)
Return the number of bytes written/read since initialisation.
Definition: mqc.c:274
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:531
void opj_mqc_init_enc(opj_mqc_t *mqc, OPJ_BYTE *bp)
Initialize the encoder.
Definition: mqc.c:283
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:507
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:334
int32_t OPJ_INT32
Definition: openjpeg.h:125
#define opj_mqc_setcurctx(mqc, ctxno)
Set the current context used for coding/decoding.
Definition: mqc.h:137
void opj_mqc_flush(opj_mqc_t *mqc)
Flush the encoder, so that all remaining data is written.
Definition: mqc.c:315
const struct opj_mqc_state * nlps
next state if the next encoded symbol is the LPS
Definition: mqc.h:66
static void opj_mqc_byteout(opj_mqc_t *mqc)
Output a byte, doing bit-stuffing if necessary.
Definition: mqc.c:185
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:377
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:554
void opq_mqc_finish_dec(opj_mqc_t *mqc)
Terminate RAW/MQC decoding.
Definition: mqc.c:540
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:478
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:546
void opj_mqc_bypass_flush_enc(opj_mqc_t *mqc, OPJ_BOOL erterm)
BYPASS mode switch, flush operation.
Definition: mqc.c:377
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:488
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:371
OPJ_UINT32 c
temporary buffer where bits are coded or decoded
Definition: mqc.h:76
uint32_t OPJ_UINT32
Definition: openjpeg.h:126
void opj_mqc_reset_enc(opj_mqc_t *mqc)
RESET mode switch.
Definition: mqc.c:415
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:442
void opj_mqc_encode(opj_mqc_t *mqc, OPJ_UINT32 d)
Encode a symbol using the MQ-coder.
Definition: mqc.c:306
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:259
void opj_mqc_encode(opj_mqc_t *mqc, OPJ_UINT32 d)
Encode a symbol using the MQ-coder.
Definition: mqc.c:306
struct opj_mqc opj_mqc_t
MQ coder.
OPJ_UINT32 ct
number of bits already read or free to write
Definition: mqc.h:80
static void opj_mqc_renorme(opj_mqc_t *mqc)
Renormalize mqc->a and mqc->c while encoding, so that mqc->a stays between 0x8000 and 0x10000.
Definition: mqc.c:219
#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