OpenJPEG  1.5.1
Data Structures | Macros | Typedefs
T1 - Implementation of the tier-1 coding

Data Structures

struct  opj_t1
 Tier-1 coding (coding of code-block coefficients) More...
 

Macros

#define T1_NMSEDEC_BITS   7
 
#define T1_SIG_NE   0x0001
 Context orientation : North-East direction. More...
 
#define T1_SIG_SE   0x0002
 Context orientation : South-East direction. More...
 
#define T1_SIG_SW   0x0004
 Context orientation : South-West direction. More...
 
#define T1_SIG_NW   0x0008
 Context orientation : North-West direction. More...
 
#define T1_SIG_N   0x0010
 Context orientation : North direction. More...
 
#define T1_SIG_E   0x0020
 Context orientation : East direction. More...
 
#define T1_SIG_S   0x0040
 Context orientation : South direction. More...
 
#define T1_SIG_W   0x0080
 Context orientation : West direction. More...
 
#define T1_SIG_OTH   (T1_SIG_N|T1_SIG_NE|T1_SIG_E|T1_SIG_SE|T1_SIG_S|T1_SIG_SW|T1_SIG_W|T1_SIG_NW)
 
#define T1_SIG_PRIM   (T1_SIG_N|T1_SIG_E|T1_SIG_S|T1_SIG_W)
 
#define T1_SGN_N   0x0100
 
#define T1_SGN_E   0x0200
 
#define T1_SGN_S   0x0400
 
#define T1_SGN_W   0x0800
 
#define T1_SGN   (T1_SGN_N|T1_SGN_E|T1_SGN_S|T1_SGN_W)
 
#define T1_SIG   0x1000
 
#define T1_REFINE   0x2000
 
#define T1_VISIT   0x4000
 
#define T1_NUMCTXS_ZC   9
 
#define T1_NUMCTXS_SC   5
 
#define T1_NUMCTXS_MAG   3
 
#define T1_NUMCTXS_AGG   1
 
#define T1_NUMCTXS_UNI   1
 
#define T1_CTXNO_ZC   0
 
#define T1_CTXNO_SC   (T1_CTXNO_ZC+T1_NUMCTXS_ZC)
 
#define T1_CTXNO_MAG   (T1_CTXNO_SC+T1_NUMCTXS_SC)
 
#define T1_CTXNO_AGG   (T1_CTXNO_MAG+T1_NUMCTXS_MAG)
 
#define T1_CTXNO_UNI   (T1_CTXNO_AGG+T1_NUMCTXS_AGG)
 
#define T1_NUMCTXS   (T1_CTXNO_UNI+T1_NUMCTXS_UNI)
 
#define T1_NMSEDEC_FRACBITS   (T1_NMSEDEC_BITS-1)
 
#define T1_TYPE_MQ   0
 Normal coding using entropy coder. More...
 
#define T1_TYPE_RAW   1
 No encoding the information is store under raw format in codestream (mode switch RAW) More...
 
#define MACRO_t1_flags(x, y)   t1->flags[((x)*(t1->flags_stride))+(y)]
 

Typedefs

typedef short flag_t
 
typedef struct opj_t1 opj_t1_t
 Tier-1 coding (coding of code-block coefficients) More...
 

Local static functions

static INLINE char t1_getctxno_zc (int f, int orient)
 
static char t1_getctxno_sc (int f)
 
static INLINE int t1_getctxno_mag (int f)
 
static char t1_getspb (int f)
 
static short t1_getnmsedec_sig (int x, int bitpos)
 
static short t1_getnmsedec_ref (int x, int bitpos)
 
static void t1_updateflags (flag_t *flagsp, int s, int stride)
 
static void t1_enc_sigpass_step (opj_t1_t *t1, flag_t *flagsp, int *datap, int orient, int bpno, int one, int *nmsedec, char type, int vsc)
 Encode significant pass. More...
 
static INLINE void t1_dec_sigpass_step_raw (opj_t1_t *t1, flag_t *flagsp, int *datap, int orient, int oneplushalf, int vsc)
 Decode significant pass. More...
 
static INLINE void t1_dec_sigpass_step_mqc (opj_t1_t *t1, flag_t *flagsp, int *datap, int orient, int oneplushalf)
 
static INLINE void t1_dec_sigpass_step_mqc_vsc (opj_t1_t *t1, flag_t *flagsp, int *datap, int orient, int oneplushalf, int vsc)
 
static void t1_enc_sigpass (opj_t1_t *t1, int bpno, int orient, int *nmsedec, char type, int cblksty)
 Encode significant pass. More...
 
static void t1_dec_sigpass_raw (opj_t1_t *t1, int bpno, int orient, int cblksty)
 Decode significant pass. More...
 
static void t1_dec_sigpass_mqc (opj_t1_t *t1, int bpno, int orient)
 
static void t1_dec_sigpass_mqc_vsc (opj_t1_t *t1, int bpno, int orient)
 
static void t1_enc_refpass_step (opj_t1_t *t1, flag_t *flagsp, int *datap, int bpno, int one, int *nmsedec, char type, int vsc)
 Encode refinement pass. More...
 
static INLINE void t1_dec_refpass_step_raw (opj_t1_t *t1, flag_t *flagsp, int *datap, int poshalf, int neghalf, int vsc)
 Decode refinement pass. More...
 
static INLINE void t1_dec_refpass_step_mqc (opj_t1_t *t1, flag_t *flagsp, int *datap, int poshalf, int neghalf)
 
static INLINE void t1_dec_refpass_step_mqc_vsc (opj_t1_t *t1, flag_t *flagsp, int *datap, int poshalf, int neghalf, int vsc)
 
static void t1_enc_refpass (opj_t1_t *t1, int bpno, int *nmsedec, char type, int cblksty)
 Encode refinement pass. More...
 
static void t1_dec_refpass_raw (opj_t1_t *t1, int bpno, int cblksty)
 Decode refinement pass. More...
 
static void t1_dec_refpass_mqc (opj_t1_t *t1, int bpno)
 
static void t1_dec_refpass_mqc_vsc (opj_t1_t *t1, int bpno)
 
static void t1_enc_clnpass_step (opj_t1_t *t1, flag_t *flagsp, int *datap, int orient, int bpno, int one, int *nmsedec, int partial, int vsc)
 Encode clean-up pass. More...
 
static void t1_dec_clnpass_step_partial (opj_t1_t *t1, flag_t *flagsp, int *datap, int orient, int oneplushalf)
 Decode clean-up pass. More...
 
static void t1_dec_clnpass_step (opj_t1_t *t1, flag_t *flagsp, int *datap, int orient, int oneplushalf)
 
static void t1_dec_clnpass_step_vsc (opj_t1_t *t1, flag_t *flagsp, int *datap, int orient, int oneplushalf, int partial, int vsc)
 
static void t1_enc_clnpass (opj_t1_t *t1, int bpno, int orient, int *nmsedec, int cblksty)
 Encode clean-up pass. More...
 
static void t1_dec_clnpass (opj_t1_t *t1, int bpno, int orient, int cblksty)
 Decode clean-up pass. More...
 
static double t1_getwmsedec (int nmsedec, int compno, int level, int orient, int bpno, int qmfbid, double stepsize, int numcomps, int mct)
 mod fixed_quality More...
 
static void t1_encode_cblk (opj_t1_t *t1, opj_tcd_cblk_enc_t *cblk, int orient, int compno, int level, int qmfbid, double stepsize, int cblksty, int numcomps, int mct, opj_tcd_tile_t *tile)
 Encode 1 code-block. More...
 
static void t1_decode_cblk (opj_t1_t *t1, opj_tcd_cblk_dec_t *cblk, int orient, int roishift, int cblksty)
 Decode 1 code-block. More...
 

Exported functions

opj_t1_tt1_create (opj_common_ptr cinfo)
 Create a new T1 handle and initialize the look-up tables of the Tier-1 coder/decoder. More...
 
void t1_destroy (opj_t1_t *t1)
 Destroy a previously created T1 handle. More...
 
void t1_encode_cblks (opj_t1_t *t1, opj_tcd_tile_t *tile, opj_tcp_t *tcp)
 Encode the code-blocks of a tile. More...
 
void t1_decode_cblks (opj_t1_t *t1, opj_tcd_tilecomp_t *tilec, opj_tccp_t *tccp)
 Decode the code-blocks of a tile. More...
 

Detailed Description

Macro Definition Documentation

#define MACRO_t1_flags (   x,
 
)    t1->flags[((x)*(t1->flags_stride))+(y)]

Referenced by t1_dec_clnpass(), and t1_enc_clnpass().

#define T1_CTXNO_AGG   (T1_CTXNO_MAG+T1_NUMCTXS_MAG)
#define T1_CTXNO_MAG   (T1_CTXNO_SC+T1_NUMCTXS_SC)

Referenced by t1_getctxno_mag().

#define T1_CTXNO_SC   (T1_CTXNO_ZC+T1_NUMCTXS_ZC)

Referenced by t1_init_ctxno_sc().

#define T1_CTXNO_UNI   (T1_CTXNO_AGG+T1_NUMCTXS_AGG)
#define T1_CTXNO_ZC   0
#define T1_NMSEDEC_BITS   7
#define T1_NMSEDEC_FRACBITS   (T1_NMSEDEC_BITS-1)
#define T1_NUMCTXS   (T1_CTXNO_UNI+T1_NUMCTXS_UNI)
#define T1_NUMCTXS_AGG   1
#define T1_NUMCTXS_MAG   3
#define T1_NUMCTXS_SC   5
#define T1_NUMCTXS_UNI   1
#define T1_NUMCTXS_ZC   9
#define T1_REFINE   0x2000
#define T1_SGN   (T1_SGN_N|T1_SGN_E|T1_SGN_S|T1_SGN_W)

Referenced by t1_getctxno_sc(), and t1_getspb().

#define T1_SGN_E   0x0200
#define T1_SGN_N   0x0100
#define T1_SGN_S   0x0400
#define T1_SGN_W   0x0800
#define T1_SIG   0x1000
#define T1_SIG_E   0x0020

Context orientation : East direction.

Referenced by t1_init_ctxno_sc(), t1_init_ctxno_zc(), t1_init_spb(), and t1_updateflags().

#define T1_SIG_N   0x0010

Context orientation : North direction.

Referenced by t1_init_ctxno_sc(), t1_init_ctxno_zc(), t1_init_spb(), and t1_updateflags().

#define T1_SIG_NE   0x0001

Context orientation : North-East direction.

Referenced by t1_init_ctxno_zc(), and t1_updateflags().

#define T1_SIG_NW   0x0008

Context orientation : North-West direction.

Referenced by t1_init_ctxno_zc(), and t1_updateflags().

#define T1_SIG_PRIM   (T1_SIG_N|T1_SIG_E|T1_SIG_S|T1_SIG_W)

Referenced by t1_getctxno_sc(), and t1_getspb().

#define T1_SIG_S   0x0040
#define T1_SIG_SE   0x0002
#define T1_SIG_SW   0x0004
#define T1_SIG_W   0x0080

Context orientation : West direction.

Referenced by t1_init_ctxno_sc(), t1_init_ctxno_zc(), t1_init_spb(), and t1_updateflags().

#define T1_TYPE_MQ   0

Normal coding using entropy coder.

Referenced by t1_decode_cblk(), and t1_encode_cblk().

#define T1_TYPE_RAW   1

No encoding the information is store under raw format in codestream (mode switch RAW)

Referenced by t1_decode_cblk(), t1_enc_refpass_step(), t1_enc_sigpass_step(), and t1_encode_cblk().

#define T1_VISIT   0x4000

Typedef Documentation

typedef short flag_t
typedef struct opj_t1 opj_t1_t

Tier-1 coding (coding of code-block coefficients)

Function Documentation

opj_t1_t* t1_create ( opj_common_ptr  cinfo)

Create a new T1 handle and initialize the look-up tables of the Tier-1 coder/decoder.

Returns
Returns a new T1 handle if successful, returns NULL otherwise
See Also
t1_init_luts

References opj_t1::cinfo, opj_t1::data, opj_t1::datasize, opj_t1::flags, opj_t1::flagssize, opj_t1::mqc, mqc_create(), opj_malloc, opj_t1::raw, and raw_create().

Referenced by tcd_decode_tile(), and tcd_encode_tile().

static void t1_dec_clnpass ( opj_t1_t t1,
int  bpno,
int  orient,
int  cblksty 
)
static
static void t1_dec_clnpass_step ( opj_t1_t t1,
flag_t flagsp,
int *  datap,
int  orient,
int  oneplushalf 
)
static
static void t1_dec_clnpass_step_partial ( opj_t1_t t1,
flag_t flagsp,
int *  datap,
int  orient,
int  oneplushalf 
)
static
static void t1_dec_clnpass_step_vsc ( opj_t1_t t1,
flag_t flagsp,
int *  datap,
int  orient,
int  oneplushalf,
int  partial,
int  vsc 
)
static
static void t1_dec_refpass_mqc ( opj_t1_t t1,
int  bpno 
)
static
static void t1_dec_refpass_mqc_vsc ( opj_t1_t t1,
int  bpno 
)
static
static void t1_dec_refpass_raw ( opj_t1_t t1,
int  bpno,
int  cblksty 
)
static
static INLINE void t1_dec_refpass_step_mqc ( opj_t1_t t1,
flag_t flagsp,
int *  datap,
int  poshalf,
int  neghalf 
)
static
static INLINE void t1_dec_refpass_step_mqc_vsc ( opj_t1_t t1,
flag_t flagsp,
int *  datap,
int  poshalf,
int  neghalf,
int  vsc 
)
static
static INLINE void t1_dec_refpass_step_raw ( opj_t1_t t1,
flag_t flagsp,
int *  datap,
int  poshalf,
int  neghalf,
int  vsc 
)
static

Decode refinement pass.

References opj_t1::raw, raw_decode(), T1_REFINE, T1_SGN_S, T1_SIG, T1_SIG_S, T1_SIG_SE, T1_SIG_SW, and T1_VISIT.

Referenced by t1_dec_refpass_raw().

static void t1_dec_sigpass_mqc ( opj_t1_t t1,
int  bpno,
int  orient 
)
static
static void t1_dec_sigpass_mqc_vsc ( opj_t1_t t1,
int  bpno,
int  orient 
)
static
static void t1_dec_sigpass_raw ( opj_t1_t t1,
int  bpno,
int  orient,
int  cblksty 
)
static
static INLINE void t1_dec_sigpass_step_mqc ( opj_t1_t t1,
flag_t flagsp,
int *  datap,
int  orient,
int  oneplushalf 
)
static
static INLINE void t1_dec_sigpass_step_mqc_vsc ( opj_t1_t t1,
flag_t flagsp,
int *  datap,
int  orient,
int  oneplushalf,
int  vsc 
)
static
static INLINE void t1_dec_sigpass_step_raw ( opj_t1_t t1,
flag_t flagsp,
int *  datap,
int  orient,
int  oneplushalf,
int  vsc 
)
static
static void t1_decode_cblk ( opj_t1_t t1,
opj_tcd_cblk_dec_t cblk,
int  orient,
int  roishift,
int  cblksty 
)
static
void t1_decode_cblks ( opj_t1_t t1,
opj_tcd_tilecomp_t tilec,
opj_tccp_t tccp 
)
void t1_destroy ( opj_t1_t t1)

Destroy a previously created T1 handle.

Parameters
t1T1 handle to destroy

References opj_t1::data, opj_t1::flags, opj_t1::mqc, mqc_destroy(), opj_aligned_free, opj_free, opj_t1::raw, and raw_destroy().

Referenced by tcd_decode_tile(), and tcd_encode_tile().

static void t1_enc_clnpass ( opj_t1_t t1,
int  bpno,
int  orient,
int *  nmsedec,
int  cblksty 
)
static
static void t1_enc_clnpass_step ( opj_t1_t t1,
flag_t flagsp,
int *  datap,
int  orient,
int  bpno,
int  one,
int *  nmsedec,
int  partial,
int  vsc 
)
static
static void t1_enc_refpass ( opj_t1_t t1,
int  bpno,
int *  nmsedec,
char  type,
int  cblksty 
)
static
static void t1_enc_refpass_step ( opj_t1_t t1,
flag_t flagsp,
int *  datap,
int  bpno,
int  one,
int *  nmsedec,
char  type,
int  vsc 
)
static
static void t1_enc_sigpass ( opj_t1_t t1,
int  bpno,
int  orient,
int *  nmsedec,
char  type,
int  cblksty 
)
static
static void t1_enc_sigpass_step ( opj_t1_t t1,
flag_t flagsp,
int *  datap,
int  orient,
int  bpno,
int  one,
int *  nmsedec,
char  type,
int  vsc 
)
static
static void t1_encode_cblk ( opj_t1_t t1,
opj_tcd_cblk_enc_t cblk,
int  orient,
int  compno,
int  level,
int  qmfbid,
double  stepsize,
int  cblksty,
int  numcomps,
int  mct,
opj_tcd_tile_t tile 
)
static
void t1_encode_cblks ( opj_t1_t t1,
opj_tcd_tile_t tile,
opj_tcp_t tcp 
)
static int t1_getctxno_mag ( int  f)
static
static char t1_getctxno_sc ( int  f)
static
static char t1_getctxno_zc ( int  f,
int  orient 
)
static
static short t1_getnmsedec_ref ( int  x,
int  bitpos 
)
static
static short t1_getnmsedec_sig ( int  x,
int  bitpos 
)
static
static char t1_getspb ( int  f)
static
static double t1_getwmsedec ( int  nmsedec,
int  compno,
int  level,
int  orient,
int  bpno,
int  qmfbid,
double  stepsize,
int  numcomps,
int  mct 
)
static

mod fixed_quality

References dwt_getnorm(), dwt_getnorm_real(), mct_getnorm(), and mct_getnorm_real().

Referenced by t1_encode_cblk().

static void t1_updateflags ( flag_t flagsp,
int  s,
int  stride 
)
static