Go to the documentation of this file.
59 #define MQC_NUMCTXS 19
74 unsigned char *buffer;
122 #define mqc_setcurctx(mqc, ctxno) (mqc)->curctx = &(mqc)->ctxs[(int)(ctxno)]
unsigned char * end
Definition: mqc.h:70
struct opj_mqc_state opj_mqc_state_t
This struct defines the state of a context.
int mqc_bypass_flush_enc(opj_mqc_t *mqc)
BYPASS mode switch, flush operation.
Definition: mqc.c:432
unsigned int c
Definition: mqc.h:65
void mqc_init_enc(opj_mqc_t *mqc, unsigned char *bp)
Initialize the encoder.
Definition: mqc.c:378
void mqc_flush(opj_mqc_t *mqc)
Flush the encoder, so that all remaining data is written.
Definition: mqc.c:398
MQ coder.
Definition: mqc.h:64
#define opj_free(m)
Deallocates or frees a memory block.
Definition: opj_malloc.h:152
static INLINE int mqc_mpsexchange(opj_mqc_t *const mqc)
FIXME: documentation ???
Definition: mqc.c:273
#define opj_malloc(size)
Allocate an uninitialized memory block.
Definition: opj_malloc.h:51
#define T1_CTXNO_UNI
Definition: t1.h:78
void mqc_init_dec(opj_mqc_t *mqc, unsigned char *bp, int len)
Initialize the decoder.
Definition: mqc.c:511
struct opj_mqc_state * nmps
next state if the next encoded symbol is the MPS
Definition: mqc.h:54
void mqc_bypass_init_enc(opj_mqc_t *mqc)
BYPASS mode switch, initialization operation.
Definition: mqc.c:410
static INLINE void mqc_bytein(opj_mqc_t *const mqc)
Input a byte.
Definition: mqc.c:309
#define T1_CTXNO_AGG
Definition: t1.h:77
#define T1_CTXNO_ZC
Definition: t1.h:74
unsigned int a
Definition: mqc.h:66
void mqc_destroy(opj_mqc_t *mqc)
Destroy a previously created MQC handle.
Definition: mqc.c:363
void mqc_erterm_enc(opj_mqc_t *mqc)
ERTERM mode switch (PTERM)
Definition: mqc.c:487
int mqc_decode(opj_mqc_t *const mqc)
Decode a symbol.
Definition: mqc.c:562
opj_mqc_state_t ** curctx
Definition: mqc.h:72
void mqc_init_dec(opj_mqc_t *mqc, unsigned char *bp, int len)
Initialize the decoder.
Definition: mqc.c:511
int mqc_restart_enc(opj_mqc_t *mqc)
RESTART mode switch (TERMALL)
Definition: mqc.c:459
struct opj_mqc_state * nlps
next state if the next encoded symbol is the LPS
Definition: mqc.h:56
static INLINE int mqc_lpsexchange(opj_mqc_t *const mqc)
FIXME: documentation ???
Definition: mqc.c:286
void mqc_restart_init_enc(opj_mqc_t *mqc)
RESTART mode switch (TERMALL) reinitialisation.
Definition: mqc.c:475
void mqc_restart_init_enc(opj_mqc_t *mqc)
RESTART mode switch (TERMALL) reinitialisation.
Definition: mqc.c:475
#define opj_realloc(m, s)
Reallocate memory blocks.
Definition: opj_malloc.h:142
static opj_mqc_state_t mqc_states[47 *2]
Definition: mqc.c:95
int mqc_bypass_flush_enc(opj_mqc_t *mqc)
BYPASS mode switch, flush operation.
Definition: mqc.c:432
static INLINE void mqc_renormd(opj_mqc_t *const mqc)
Renormalize mqc->a and mqc->c while decoding.
Definition: mqc.c:338
static void mqc_codemps(opj_mqc_t *mqc)
Encode the most probable symbol.
Definition: mqc.c:239
opj_mqc_t * mqc_create(void)
Create a new MQC handle.
Definition: mqc.c:355
int mqc_restart_enc(opj_mqc_t *mqc)
RESTART mode switch (TERMALL)
Definition: mqc.c:459
void mqc_reset_enc(opj_mqc_t *mqc)
RESET mode switch.
Definition: mqc.c:452
void 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:581
void mqc_segmark_enc(opj_mqc_t *mqc)
SEGMARK mode switch (SEGSYM)
Definition: mqc.c:502
void mqc_destroy(opj_mqc_t *mqc)
Destroy a previously created MQC handle.
Definition: mqc.c:363
static void 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:228
void mqc_erterm_enc(opj_mqc_t *mqc)
ERTERM mode switch (PTERM)
Definition: mqc.c:487
int mqc_decode(opj_mqc_t *const mqc)
Decode a symbol.
Definition: mqc.c:562
void mqc_encode(opj_mqc_t *mqc, int d)
Encode a symbol using the MQ-coder.
Definition: mqc.c:390
opj_mqc_state_t * ctxs[MQC_NUMCTXS]
Definition: mqc.h:71
void mqc_setstate(opj_mqc_t *mqc, int ctxno, int msb, int prob)
Set the state of a particular context.
Definition: mqc.c:588
static void mqc_codelps(opj_mqc_t *mqc)
Encode the most least symbol.
Definition: mqc.c:254
int mqc_numbytes(opj_mqc_t *mqc)
Return the number of bytes written/read since initialisation.
Definition: mqc.c:374
void mqc_bypass_enc(opj_mqc_t *mqc, int d)
BYPASS mode switch, coding operation.
Definition: mqc.c:418
void mqc_encode(opj_mqc_t *mqc, int d)
Encode a symbol using the MQ-coder.
Definition: mqc.c:390
unsigned char * bp
Definition: mqc.h:68
void mqc_setstate(opj_mqc_t *mqc, int ctxno, int msb, int prob)
Set the state of a particular context.
Definition: mqc.c:588
opj_mqc_t * mqc_create(void)
Create a new MQC handle.
Definition: mqc.c:355
void mqc_bypass_init_enc(opj_mqc_t *mqc)
BYPASS mode switch, initialization operation.
Definition: mqc.c:410
void mqc_reset_enc(opj_mqc_t *mqc)
RESET mode switch.
Definition: mqc.c:452
void mqc_segmark_enc(opj_mqc_t *mqc)
SEGMARK mode switch (SEGSYM)
Definition: mqc.c:502
int mqc_numbytes(opj_mqc_t *mqc)
Return the number of bytes written/read since initialisation.
Definition: mqc.c:374
static void mqc_byteout(opj_mqc_t *mqc)
Output a byte, doing bit-stuffing if necessary.
Definition: mqc.c:198
#define INLINE
Definition: opj_includes.h:75
int mps
the Most Probable Symbol (0 or 1)
Definition: mqc.h:52
unsigned int ct
Definition: mqc.h:67
This struct defines the state of a context.
Definition: mqc.h:48
static void mqc_setbits(opj_mqc_t *mqc)
Fill mqc->c with 1's for flushing.
Definition: mqc.c:265
unsigned int qeval
the probability of the Least Probable Symbol (0.75->0x8000, 1.5->0xffff)
Definition: mqc.h:50
unsigned char * start
Definition: mqc.h:69
void mqc_bypass_enc(opj_mqc_t *mqc, int d)
BYPASS mode switch, coding operation.
Definition: mqc.c:418
struct opj_mqc opj_mqc_t
MQ coder.
void 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:581
#define mqc_setcurctx(mqc, ctxno)
Set the current context used for coding/decoding.
Definition: mqc.h:122
#define MQC_NUMCTXS
Definition: mqc.h:59
void mqc_init_enc(opj_mqc_t *mqc, unsigned char *bp)
Initialize the encoder.
Definition: mqc.c:378
void mqc_flush(opj_mqc_t *mqc)
Flush the encoder, so that all remaining data is written.
Definition: mqc.c:398