OpenJPEG 1.5.1
Data Structures | Macros | Typedefs
mqc.h File Reference

Implementation of an MQ-Coder (MQC) More...

Go to the source code of this file.

Data Structures

struct  opj_mqc_state
 This struct defines the state of a context. More...
 
struct  opj_mqc
 MQ coder. More...
 

Macros

#define MQC_NUMCTXS   19
 

Typedefs

typedef struct opj_mqc_state opj_mqc_state_t
 This struct defines the state of a context.
 
typedef struct opj_mqc opj_mqc_t
 MQ coder.
 

Exported functions

#define mqc_setcurctx(mqc, ctxno)   (mqc)->curctx = &(mqc)->ctxs[(int)(ctxno)]
 Set the current context used for coding/decoding.
 
opj_mqc_tmqc_create (void)
 Create a new MQC handle.
 
void mqc_destroy (opj_mqc_t *mqc)
 Destroy a previously created MQC handle.
 
int mqc_numbytes (opj_mqc_t *mqc)
 Return the number of bytes written/read since initialisation.
 
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 1 are more or less equiprobable)
 
void mqc_setstate (opj_mqc_t *mqc, int ctxno, int msb, int prob)
 Set the state of a particular context.
 
void mqc_init_enc (opj_mqc_t *mqc, unsigned char *bp)
 Initialize the encoder.
 
void mqc_encode (opj_mqc_t *mqc, int d)
 Encode a symbol using the MQ-coder.
 
void mqc_flush (opj_mqc_t *mqc)
 Flush the encoder, so that all remaining data is written.
 
void mqc_bypass_init_enc (opj_mqc_t *mqc)
 BYPASS mode switch, initialization operation.
 
void mqc_bypass_enc (opj_mqc_t *mqc, int d)
 BYPASS mode switch, coding operation.
 
int mqc_bypass_flush_enc (opj_mqc_t *mqc)
 BYPASS mode switch, flush operation.
 
void mqc_reset_enc (opj_mqc_t *mqc)
 RESET mode switch.
 
int mqc_restart_enc (opj_mqc_t *mqc)
 RESTART mode switch (TERMALL)
 
void mqc_restart_init_enc (opj_mqc_t *mqc)
 RESTART mode switch (TERMALL) reinitialisation.
 
void mqc_erterm_enc (opj_mqc_t *mqc)
 ERTERM mode switch (PTERM)
 
void mqc_segmark_enc (opj_mqc_t *mqc)
 SEGMARK mode switch (SEGSYM)
 
void mqc_init_dec (opj_mqc_t *mqc, unsigned char *bp, int len)
 Initialize the decoder.
 
int mqc_decode (opj_mqc_t *const mqc)
 Decode a symbol.
 

Detailed Description

Implementation of an MQ-Coder (MQC)

The functions in MQC.C have for goal to realize the MQ-coder operations. The functions in MQC.C are used by some function in T1.C.

Macro Definition Documentation

◆ MQC_NUMCTXS

#define MQC_NUMCTXS   19

◆ mqc_setcurctx

#define mqc_setcurctx (   mqc,
  ctxno 
)    (mqc)->curctx = &(mqc)->ctxs[(int)(ctxno)]

Set the current context used for coding/decoding.

Parameters
mqcMQC handle
ctxnoNumber that identifies the context

Typedef Documentation

◆ opj_mqc_state_t

This struct defines the state of a context.

◆ opj_mqc_t

typedef struct opj_mqc opj_mqc_t

MQ coder.

Function Documentation

◆ mqc_bypass_enc()

void mqc_bypass_enc ( opj_mqc_t mqc,
int  d 
)

BYPASS mode switch, coding operation.

JPEG 2000 p 505.

Not fully implemented and tested !!

Parameters
mqcMQC handle
dThe symbol to be encoded (0 or 1)

References opj_mqc::bp, opj_mqc::c, and opj_mqc::ct.

Referenced by t1_enc_refpass_step(), and t1_enc_sigpass_step().

◆ mqc_bypass_flush_enc()

int mqc_bypass_flush_enc ( opj_mqc_t mqc)

BYPASS mode switch, flush operation.

Not fully implemented and tested !!

Parameters
mqcMQC handle
Returns
Returns 1 (always)

References opj_mqc::bp, opj_mqc::c, and opj_mqc::ct.

◆ mqc_bypass_init_enc()

void mqc_bypass_init_enc ( opj_mqc_t mqc)

BYPASS mode switch, initialization operation.

JPEG 2000 p 505.

Not fully implemented and tested !!

Parameters
mqcMQC handle

References opj_mqc::c, and opj_mqc::ct.

Referenced by t1_encode_cblk().

◆ mqc_create()

opj_mqc_t * mqc_create ( void  )

Create a new MQC handle.

Returns
Returns a new MQC handle if successful, returns NULL otherwise

References opj_malloc.

Referenced by t1_create().

◆ mqc_decode()

int mqc_decode ( opj_mqc_t *const  mqc)

◆ mqc_destroy()

void mqc_destroy ( opj_mqc_t mqc)

Destroy a previously created MQC handle.

Parameters
mqcMQC handle to destroy

References opj_free.

Referenced by t1_destroy().

◆ mqc_encode()

void mqc_encode ( opj_mqc_t mqc,
int  d 
)

Encode a symbol using the MQ-coder.

Parameters
mqcMQC handle
dThe symbol to be encoded (0 or 1)

References opj_mqc::curctx, mqc_codelps(), and mqc_codemps().

Referenced by mqc_segmark_enc(), t1_enc_clnpass(), t1_enc_clnpass_step(), t1_enc_refpass_step(), and t1_enc_sigpass_step().

◆ mqc_erterm_enc()

void mqc_erterm_enc ( opj_mqc_t mqc)

ERTERM mode switch (PTERM)

Parameters
mqcMQC handle

References opj_mqc::bp, opj_mqc::c, opj_mqc::ct, and mqc_byteout().

Referenced by t1_encode_cblk().

◆ mqc_flush()

void mqc_flush ( opj_mqc_t mqc)

Flush the encoder, so that all remaining data is written.

Parameters
mqcMQC handle

References opj_mqc::bp, opj_mqc::c, opj_mqc::ct, mqc_byteout(), and mqc_setbits().

Referenced by t1_encode_cblk().

◆ mqc_init_dec()

void mqc_init_dec ( opj_mqc_t mqc,
unsigned char *  bp,
int  len 
)

Initialize the decoder.

Parameters
mqcMQC handle
bpPointer to the start of the buffer from which the bytes will be read
lenLength of the input buffer

References opj_mqc::a, opj_mqc::bp, opj_mqc::c, opj_mqc::ct, opj_mqc::end, mqc_bytein(), mqc_setcurctx, opj_realloc, and opj_mqc::start.

Referenced by t1_decode_cblk().

◆ mqc_init_enc()

void mqc_init_enc ( opj_mqc_t mqc,
unsigned char *  bp 
)

Initialize the encoder.

Parameters
mqcMQC handle
bpPointer to the start of the buffer where the bytes will be written

References opj_mqc::a, opj_mqc::bp, opj_mqc::c, opj_mqc::ct, mqc_setcurctx, and opj_mqc::start.

Referenced by t1_encode_cblk().

◆ mqc_numbytes()

int mqc_numbytes ( opj_mqc_t mqc)

Return the number of bytes written/read since initialisation.

Parameters
mqcMQC handle
Returns
Returns the number of bytes already encoded

References opj_mqc::bp, and opj_mqc::start.

Referenced by t1_encode_cblk().

◆ mqc_reset_enc()

void mqc_reset_enc ( opj_mqc_t mqc)

RESET mode switch.

Parameters
mqcMQC handle

References mqc_resetstates(), mqc_setstate(), T1_CTXNO_AGG, T1_CTXNO_UNI, and T1_CTXNO_ZC.

Referenced by t1_encode_cblk().

◆ mqc_resetstates()

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 1 are more or less equiprobable)

Parameters
mqcMQC handle

References opj_mqc::ctxs, MQC_NUMCTXS, and mqc_states.

Referenced by mqc_reset_enc(), t1_decode_cblk(), and t1_encode_cblk().

◆ mqc_restart_enc()

int mqc_restart_enc ( opj_mqc_t mqc)

RESTART mode switch (TERMALL)

Parameters
mqcMQC handle
Returns
Returns 1 (always)

References opj_mqc::c, opj_mqc::ct, and mqc_byteout().

◆ mqc_restart_init_enc()

void mqc_restart_init_enc ( opj_mqc_t mqc)

RESTART mode switch (TERMALL) reinitialisation.

Parameters
mqcMQC handle

References opj_mqc::a, opj_mqc::bp, opj_mqc::c, opj_mqc::ct, and mqc_setcurctx.

Referenced by t1_encode_cblk().

◆ mqc_segmark_enc()

void mqc_segmark_enc ( opj_mqc_t mqc)

SEGMARK mode switch (SEGSYM)

Parameters
mqcMQC handle

References mqc_encode(), and mqc_setcurctx.

Referenced by t1_encode_cblk().

◆ mqc_setstate()

void mqc_setstate ( opj_mqc_t mqc,
int  ctxno,
int  msb,
int  prob 
)

Set the state of a particular context.

Parameters
mqcMQC handle
ctxnoNumber that identifies the context
msbThe MSB of the new state of the context
probNumber that identifies the probability of the symbols for the new state of the context

References opj_mqc::ctxs, and mqc_states.

Referenced by mqc_reset_enc(), t1_decode_cblk(), and t1_encode_cblk().