static void t1_dec_refpass_step( opj_t1_t *t1, flag_t *flagsp, int *datap, int poshalf, int neghalf, char type, int vsc) { int v, t, flag; opj_mqc_t *mqc = t1->mqc; /* MQC component */ opj_raw_t *raw = t1->raw; /* RAW component */ flag = vsc ? ((*flagsp) & (~(T1_SIG_S | T1_SIG_SE | T1_SIG_SW | T1_SGN_S))) : (*flagsp); if ((flag & (T1_SIG | T1_VISIT)) == T1_SIG) { if (type == T1_TYPE_RAW) { mqc_setcurctx(mqc, t1_getctxno_mag(flag)); /* ESSAI */ v = raw_decode(raw); } else { mqc_setcurctx(mqc, t1_getctxno_mag(flag)); v = mqc_decode(mqc); } t = v ? poshalf : neghalf; *datap += *datap < 0 ? -t : t; *flagsp |= T1_REFINE; } } /* VSC and BYPASS by Antonin */
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) { int v, flag; opj_mqc_t *mqc = t1->mqc; /* MQC component */ flag = vsc ? ((*flagsp) & (~(T1_SIG_S | T1_SIG_SE | T1_SIG_SW | T1_SGN_S))) : (*flagsp); if ((flag & (T1_SIG | T1_VISIT)) == T1_SIG) { *nmsedec += t1_getnmsedec_ref(int_abs(*datap), bpno + T1_NMSEDEC_FRACBITS); v = int_abs(*datap) & one ? 1 : 0; if (type == T1_TYPE_RAW) { /* BYPASS/LAZY MODE */ mqc_setcurctx(mqc, t1_getctxno_mag(flag)); /* ESSAI */ mqc_bypass_enc(mqc, v); } else { mqc_setcurctx(mqc, t1_getctxno_mag(flag)); mqc_encode(mqc, v); } *flagsp |= T1_REFINE; } }
static INLINE void t1_dec_refpass_step_mqc( opj_t1_t *t1, flag_t *flagsp, int *datap, int poshalf, int neghalf) { int v, t, flag; opj_mqc_t *mqc = t1->mqc; /* MQC component */ flag = *flagsp; if ((flag & (T1_SIG | T1_VISIT)) == T1_SIG) { mqc_setcurctx(mqc, t1_getctxno_mag(flag)); /* ESSAI */ v = mqc_decode(mqc); t = v ? poshalf : neghalf; *datap += *datap < 0 ? -t : t; *flagsp |= T1_REFINE; } } /* VSC and BYPASS by Antonin */
static INLINE void t1_dec_refpass_step_mqc_vsc( opj_t1_t *t1, flag_t *flagsp, S32 *datap, S32 poshalf, S32 neghalf, S32 vsc) { S32 v, t, flag; opj_mqc_t *mqc = t1->mqc; /* MQC component */ flag = vsc ? ((*flagsp) & (~(T1_SIG_S | T1_SIG_SE | T1_SIG_SW | T1_SGN_S))) : (*flagsp); if ((flag & (T1_SIG | T1_VISIT)) == T1_SIG) { mqc_setcurctx(mqc, t1_getctxno_mag(flag)); /* ESSAI */ v = mqc_decode(mqc); t = v ? poshalf : neghalf; *datap += *datap < 0 ? -t : t; *flagsp |= T1_REFINE; } } /* VSC and BYPASS by Antonin */