/* ----------------------------------------------------------------------- */
#define T1_NMSEDEC_BITS 7
-#define T1_MAXCBLKW 1024 /**< Maximum size of code-block (width) */
-#define T1_MAXCBLKH 1024 /**< Maximum size of code-block (heigth) */
-
#define T1_SIG_NE 0x0001 /**< Context orientation : North-East direction */
#define T1_SIG_SE 0x0002 /**< Context orientation : South-East direction */
#define T1_SIG_SW 0x0004 /**< Context orientation : South-West direction */
#define T1_REFINE 0x2000
#define T1_VISIT 0x4000
-#define T1_NUMCTXS_AGG 1
#define T1_NUMCTXS_ZC 9
-#define T1_NUMCTXS_MAG 3
#define T1_NUMCTXS_SC 5
+#define T1_NUMCTXS_MAG 3
+#define T1_NUMCTXS_AGG 1
#define T1_NUMCTXS_UNI 1
-#define T1_CTXNO_AGG 0
-#define T1_CTXNO_ZC (T1_CTXNO_AGG+T1_NUMCTXS_AGG)
-#define T1_CTXNO_MAG (T1_CTXNO_ZC+T1_NUMCTXS_ZC)
-#define T1_CTXNO_SC (T1_CTXNO_MAG+T1_NUMCTXS_MAG)
-#define T1_CTXNO_UNI (T1_CTXNO_SC+T1_NUMCTXS_SC)
+#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)
/* ----------------------------------------------------------------------- */
+typedef short flag_t;
+
/**
Tier-1 coding (coding of code-block coefficients)
*/
/** RAW component */
opj_raw_t *raw;
- int lut_ctxno_zc[1024];
- int lut_ctxno_sc[256];
- int lut_ctxno_mag[4096];
- int lut_spb[256];
- int lut_nmsedec_sig[1 << T1_NMSEDEC_BITS];
- int lut_nmsedec_sig0[1 << T1_NMSEDEC_BITS];
- int lut_nmsedec_ref[1 << T1_NMSEDEC_BITS];
- int lut_nmsedec_ref0[1 << T1_NMSEDEC_BITS];
-
- int data[T1_MAXCBLKH][T1_MAXCBLKW];
- int flags[T1_MAXCBLKH + 2][T1_MAXCBLKH + 2];
-
+ int *data;
+ flag_t *flags;
+ int w;
+ int h;
+ int datasize;
+ int flagssize;
+ int flags_stride;
} opj_t1_t;
+#define MACRO_t1_flags(x,y) t1->flags[((x)*(t1->flags_stride))+(y)]
+
/** @name Exported functions */
/*@{*/
/* ----------------------------------------------------------------------- */
/**
Decode the code-blocks of a tile
@param t1 T1 handle
-@param tile The tile to decode
-@param tcp Tile coding parameters
+@param tilec The tile to decode
+@param tccp Tile coding parameters
*/
-void t1_decode_cblks(opj_t1_t *t1, opj_tcd_tile_t *tile, opj_tcp_t *tcp);
+void t1_decode_cblks(opj_t1_t* t1, opj_tcd_tilecomp_t* tilec, opj_tccp_t* tccp);
/* ----------------------------------------------------------------------- */
/*@}*/