Updates
This commit is contained in:
53
blender-deps/jbigkit-cmake/libjbig/jbig_ar.h
Normal file
53
blender-deps/jbigkit-cmake/libjbig/jbig_ar.h
Normal file
@@ -0,0 +1,53 @@
|
||||
/*
|
||||
* Header file for the arithmetic encoder and decoder of
|
||||
* the portable JBIG compression library
|
||||
*
|
||||
* Markus Kuhn -- http://www.cl.cam.ac.uk/~mgk25/jbigkit/
|
||||
*/
|
||||
|
||||
#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 */
|
||||
Reference in New Issue
Block a user