示例#1
0
文件: t1.c 项目: AlfiyaZi/GDCM
static void t1_enc_sigpass_step(opj_t1_t *t1, int *fp, int *dp, int orient, int bpno, int one, int *nmsedec, char type, int vsc) {
	int v, flag;
	
	opj_mqc_t *mqc = t1->mqc;	/* MQC component */
	
	flag = vsc ? ((*fp) & (~(T1_SIG_S | T1_SIG_SE | T1_SIG_SW | T1_SGN_S))) : (*fp);
	if ((flag & T1_SIG_OTH) && !(flag & (T1_SIG | T1_VISIT))) {
		v = int_abs(*dp) & one ? 1 : 0;
		if (type == T1_TYPE_RAW) {	/* BYPASS/LAZY MODE */
			mqc_setcurctx(mqc, t1_getctxno_zc(t1, flag, orient));	/* ESSAI */
			mqc_bypass_enc(mqc, v);
		} else {
			mqc_setcurctx(mqc, t1_getctxno_zc(t1, flag, orient));
			mqc_encode(mqc, v);
		}
		if (v) {
			v = *dp < 0 ? 1 : 0;
			*nmsedec +=	t1_getnmsedec_sig(t1, int_abs(*dp), bpno + T1_NMSEDEC_FRACBITS);
			if (type == T1_TYPE_RAW) {	/* BYPASS/LAZY MODE */
				mqc_setcurctx(mqc, t1_getctxno_sc(t1, flag));	/* ESSAI */
				mqc_bypass_enc(mqc, v);
			} else {
				mqc_setcurctx(mqc, t1_getctxno_sc(t1, flag));
				mqc_encode(mqc, v ^ t1_getspb(t1, flag));
			}
			t1_updateflags(fp, v);
			*fp |= T1_SIG;
		}
		*fp |= T1_VISIT;
	}
}
示例#2
0
文件: t1.c 项目: RavenB/gridsearch
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)
{
	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 (partial) {
		goto LABEL_PARTIAL;
	}
	if (!(*flagsp & (T1_SIG | T1_VISIT))) {
		mqc_setcurctx(mqc, t1_getctxno_zc(flag, orient));
		v = int_abs(*datap) & one ? 1 : 0;
		mqc_encode(mqc, v);
		if (v) {
LABEL_PARTIAL:
			*nmsedec += t1_getnmsedec_sig(int_abs(*datap), bpno + T1_NMSEDEC_FRACBITS);
			mqc_setcurctx(mqc, t1_getctxno_sc(flag));
			v = *datap < 0 ? 1 : 0;
			mqc_encode(mqc, v ^ t1_getspb(flag));
			t1_updateflags(flagsp, v, t1->flags_stride);
		}
	}
	*flagsp &= ~T1_VISIT;
}
static void t1_enc_sigpass_step(
    opj_t1_t *t1,
    flag_t *flagsp,
    OPJ_INT32 *datap,
    OPJ_UINT32 orient,
    OPJ_INT32 bpno,
    OPJ_INT32 one,
    OPJ_INT32 *nmsedec,
    OPJ_BYTE type,
    OPJ_UINT32 vsc)
{
  OPJ_INT32 v;
  OPJ_UINT32 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_OTH) && !(flag & (T1_SIG | T1_VISIT))) {
    v = int_abs(*datap) & one ? 1 : 0;
    mqc_setcurctx(mqc, t1_getctxno_zc(flag, orient));  /* ESSAI */
    if (type == T1_TYPE_RAW) {  /* BYPASS/LAZY MODE */
      mqc_bypass_enc(mqc, v);
    } else {
      mqc_encode(mqc, v);
    }
    if (v) {
      v = *datap < 0 ? 1 : 0;
      *nmsedec +=  t1_getnmsedec_sig(int_abs(*datap), bpno + T1_NMSEDEC_FRACBITS);
      mqc_setcurctx(mqc, t1_getctxno_sc(flag));  /* ESSAI */
      if (type == T1_TYPE_RAW) {  /* BYPASS/LAZY MODE */
        mqc_bypass_enc(mqc, v);
      } else {
        mqc_encode(mqc, v ^ t1_getspb(flag));
      }
      t1_updateflags(flagsp, v, t1->flags_stride);
    }
    *flagsp |= T1_VISIT;
  }
}