PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB` /* * Header file for the arithmetic encoder and decoder of * the portable JBIG compression library * * Markus Kuhn -- http://www.cl.cam.ac.uk/~mgk25/jbigkit/ * * $Id: jbig_ar.h 1291 2008-08-21 14:50:29Z mgk25 $ */ #ifndef JBG_AR_H #define JBG_AR_H /* * Status of arithmetic encoder */ struct jbg_arenc_state { unsigned char st[4096]; /* probability status for contexts, MSB = MPS */ unsigned long c; /* register C: base of coding intervall, * * layout as in Table 23 */ unsigned long a; /* register A: normalized size of coding interval */ long sc; /* number of buffered 0xff values that might still overflow */ int ct; /* bit shift counter, determines when next byte will be written */ int buffer; /* buffer for most recent output byte != 0xff */ void (*byte_out)(int, void *); /* function that receives all PSCD bytes */ void *file; /* parameter passed to byte_out */ }; /* * Status of arithmetic decoder */ struct jbg_ardec_state { unsigned char st[4096]; /* probability status for contexts, MSB = MPS */ unsigned long c; /* register C: base of coding intervall, * * layout as in Table 25 */ unsigned long a; /* register A: normalized size of coding interval */ unsigned char *pscd_ptr; /* pointer to next PSCD data byte */ unsigned char *pscd_end; /* pointer to byte after PSCD */ int ct; /* bit-shift counter, determines when next byte will be read; * special value -1 signals that zero-padding has started */ int startup; /* boolean flag that controls initial fill of s->c */ int nopadding; /* boolean flag that triggers return -2 between * reaching PSCD end and decoding the first symbol * that might never have been encoded in the first * place */ }; void arith_encode_init(struct jbg_arenc_state *s, int reuse_st); void arith_encode_flush(struct jbg_arenc_state *s); void arith_encode(struct jbg_arenc_state *s, int cx, int pix); void arith_decode_init(struct jbg_ardec_state *s, int reuse_st); int arith_decode(struct jbg_ardec_state *s, int cx); #endif /* JBG_AR_H */