1/* Copyright (C) 2001-2019 Artifex Software, Inc.
2 All Rights Reserved.
3
4 This software is provided AS-IS with no warranty, either express or
5 implied.
6
7 This software is distributed under license and may not be copied,
8 modified or distributed except as expressly authorized under the terms
9 of the license contained in the file LICENSE in this distribution.
10
11 Refer to licensing information at http://www.artifex.com or contact
12 Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato,
13 CA 94945, U.S.A., +1(415)492-9861, for further information.
14*/
15
16/*
17 jbig2dec
18*/
19
20#ifndef _JBIG2_ARITH_H
21#define _JBIG2_ARITH_H
22
23typedef struct _Jbig2ArithState Jbig2ArithState;
24
25/* An arithmetic coding context is stored as a single byte, with the
26 index in the low order 7 bits (actually only 6 are used), and the
27 MPS in the top bit. */
28typedef unsigned char Jbig2ArithCx;
29
30/* allocate and initialize a new arithmetic coding state */
31Jbig2ArithState *jbig2_arith_new(Jbig2Ctx *ctx, Jbig2WordStream *ws);
32
33/* decode a bit */
34bool jbig2_arith_decode(Jbig2ArithState *as, Jbig2ArithCx *pcx, int *code);
35
36/* returns true if the end of the data stream has been reached (for sanity checks) */
37bool jbig2_arith_has_reached_marker(Jbig2ArithState *as);
38
39#endif /* _JBIG2_ARITH_H */
40