1 /* Rubin encoder/decoder header */
2 /* work started at : aug 3, 1994 */
3 /* last modification : aug 15, 1994 */
4 /* $Id: compr_rubin.h,v 1.5 2001/02/26 13:50:01 dwmw2 Exp $ */
5
6 #include "pushpull.h"
7
8 #define RUBIN_REG_SIZE 16
9 #define UPPER_BIT_RUBIN (((long) 1)<<(RUBIN_REG_SIZE-1))
10 #define LOWER_BITS_RUBIN ((((long) 1)<<(RUBIN_REG_SIZE-1))-1)
11
12
13 struct rubin_state {
14 unsigned long p;
15 unsigned long q;
16 unsigned long rec_q;
17 long bit_number;
18 struct pushpull pp;
19 int bit_divider;
20 int bits[8];
21 };
22
23
24 void init_rubin (struct rubin_state *rs, int div, int *bits);
25 int encode (struct rubin_state *, long, long, int);
26 void end_rubin (struct rubin_state *);
27 void init_decode (struct rubin_state *, int div, int *bits);
28 int decode (struct rubin_state *, long, long);
Cache object: 9b933f46ac4a29d80b38b588e7d4ef35
|