75 #include "jasper/jas_image.h"
76 #include "jasper/jas_seq.h"
77 #include "jasper/jas_stream.h"
79 #include "jpc_t2cod.h"
80 #include "jpc_mqenc.h"
81 #include "jpc_tagtree.h"
92 #define JPC_NUMEXTRABITS JPC_NMSEDEC_FRACBITS
95 #define JPC_BADRDSLOPE (-1)
106 uint_fast8_t sampgrdstepx;
109 uint_fast8_t sampgrdstepy;
112 uint_fast8_t sampgrdsubstepx;
115 uint_fast8_t sampgrdsubstepy;
124 uint_fast16_t numstepsizes;
127 uint_fast16_t stepsizes[JPC_MAXBANDS];
148 uint_fast16_t numlyrs;
152 jpc_fix_t *ilyrrates;
164 uint_fast8_t maxrlvls;
167 uint_fast16_t cblkwidthexpn;
170 uint_fast16_t cblkheightexpn;
174 uint_fast8_t cblksty;
180 uint_fast16_t prcwidthexpns[JPC_MAXRLVLS];
183 uint_fast16_t prcheightexpns[JPC_MAXRLVLS];
186 uint_fast8_t numgbits;
199 uint_fast32_t imgareatlx;
203 uint_fast32_t imgareatly;
207 uint_fast32_t refgrdwidth;
211 uint_fast32_t refgrdheight;
215 uint_fast32_t tilegrdoffx;
219 uint_fast32_t tilegrdoffy;
222 uint_fast32_t tilewidth;
225 uint_fast32_t tileheight;
229 uint_fast32_t numhtiles;
233 uint_fast32_t numvtiles;
236 uint_fast32_t numtiles;
239 uint_fast16_t numcmpts;
251 uint_fast32_t totalsize;
254 uint_fast32_t rawsize;
279 jpc_mqencstate_t mqencstate;
291 jpc_flt_t cumwmsedec;
306 jpc_enc_pass_t *passes;
318 jas_stream_t *stream;
333 jpc_enc_pass_t *curpass;
336 struct jpc_enc_prc_s *prc;
340 jpc_enc_pass_t *savedcurpass;
348 int savednumencpasses;
354 typedef struct jpc_enc_prc_s {
382 jpc_enc_cblk_t *cblks;
385 jpc_tagtree_t *incltree;
388 jpc_tagtree_t *nlibtree;
391 struct jpc_enc_band_s *band;
395 jpc_tagtree_t *savincltree;
399 jpc_tagtree_t *savnlibtree;
405 typedef struct jpc_enc_band_s {
420 jpc_fix_t absstepsize;
433 struct jpc_enc_rlvl_s *rlvl;
439 typedef struct jpc_enc_rlvl_s {
479 unsigned cbgwidthexpn;
484 unsigned cbgheightexpn;
487 uint_fast16_t cblkwidthexpn;
490 uint_fast16_t cblkheightexpn;
496 jpc_enc_band_t *bands;
499 struct jpc_enc_tcmpt_s *tcmpt;
505 typedef struct jpc_enc_tcmpt_s {
511 jpc_enc_rlvl_t *rlvls;
529 int prcwidthexpns[JPC_MAXRLVLS];
532 int prcheightexpns[JPC_MAXRLVLS];
550 uint_fast16_t stepsizes[JPC_MAXBANDS];
553 struct jpc_enc_tile_s *tile;
559 typedef struct jpc_enc_tile_s {
562 uint_fast32_t tileno;
600 uint_fast32_t *lyrsizes;
606 jpc_enc_tcmpt_t *tcmpts;
609 uint_fast32_t rawsize;
615 typedef struct jpc_enc_s {
627 jpc_enc_tile_t *curtile;
630 jpc_cstate_t *cstate;
637 uint_fast32_t mainbodysize;
644 jas_stream_t *tmpstream;