OpenJPEG  1.5.1
rs.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2001-2003, David Janssens
3  * Copyright (c) 2002-2003, Yannick Verschueren
4  * Copyright (c) 2003-2005, Francois Devaux and Antonin Descampe
5  * Copyright (c) 2005, Herve Drolon, FreeImage Team
6  * Copyright (c) 2002-2005, Communications and remote sensing Laboratory, Universite catholique de Louvain, Belgium
7  * Copyright (c) 2005-2006, Dept. of Electronic and Information Engineering, Universita' degli Studi di Perugia, Italy
8  * All rights reserved.
9  *
10  * Redistribution and use in source and binary forms, with or without
11  * modification, are permitted provided that the following conditions
12  * are met:
13  * 1. Redistributions of source code must retain the above copyright
14  * notice, this list of conditions and the following disclaimer.
15  * 2. Redistributions in binary form must reproduce the above copyright
16  * notice, this list of conditions and the following disclaimer in the
17  * documentation and/or other materials provided with the distribution.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
20  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
23  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29  * POSSIBILITY OF SUCH DAMAGE.
30  */
31 
32 #ifdef USE_JPWL
33 
40 #ifndef __RS_HEADER__
41 #define __RS_HEADER__
42 
57 #define MM 8 /* RS code over GF(2**MM) - change to suit */
58 
59 /* KK defined in rs.c */
60 
61 #define NN ((1 << MM) - 1)
62 
63 #if (MM <= 8)
64 typedef unsigned char dtype;
65 #else
66 typedef unsigned int dtype;
67 #endif
68 
70 void init_rs(int);
71 
75 void generate_gf(void); /* Generate Galois Field */
76 void gen_poly(void); /* Generate generator polynomial */
77 
83 int encode_rs(dtype data[], dtype bb[]);
84 
93 int eras_dec_rs(dtype data[], int eras_pos[], int no_eras);
94 
101 #ifndef min
102 #define min(a,b) (((a) < (b)) ? (a) : (b))
103 #endif /* min */
104 
105 #endif /* __RS_HEADER__ */
106 
107 
108 #endif /* USE_JPWL */
void generate_gf(void)
These two functions must be called in this order (e.g., by init_rs()) before any encoding/decoding.
Definition: rs.c:242
void init_rs(int k)
Initialization function.
Definition: rs.c:198
int eras_dec_rs(dtype *data, int *eras_pos, int no_eras)
Definition: rs.c:367
unsigned char dtype
Definition: rs.h:64
void gen_poly(void)
Definition: rs.c:289
int encode_rs(dtype *data, dtype *bb)
Definition: rs.c:324