OpenJPEG
1.5.1
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
builddir
build
BUILD
openjpeg-1.5.1
libopenjpeg
mqc.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium
3
* Copyright (c) 2002-2007, Professor Benoit Macq
4
* Copyright (c) 2001-2003, David Janssens
5
* Copyright (c) 2002-2003, Yannick Verschueren
6
* Copyright (c) 2003-2007, Francois-Olivier Devaux and Antonin Descampe
7
* Copyright (c) 2005, Herve Drolon, FreeImage Team
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
#ifndef __MQC_H
33
#define __MQC_H
34
44
48
typedef
struct
opj_mqc_state
{
50
unsigned
int
qeval
;
52
int
mps
;
54
struct
opj_mqc_state
*
nmps
;
56
struct
opj_mqc_state
*
nlps
;
57
}
opj_mqc_state_t
;
58
59
#define MQC_NUMCTXS 19
60
64
typedef
struct
opj_mqc
{
65
unsigned
int
c
;
66
unsigned
int
a
;
67
unsigned
int
ct
;
68
unsigned
char
*
bp
;
69
unsigned
char
*
start
;
70
unsigned
char
*
end
;
71
opj_mqc_state_t
*
ctxs
[
MQC_NUMCTXS
];
72
opj_mqc_state_t
**
curctx
;
73
#ifdef MQC_PERF_OPT
74
unsigned
char
*buffer;
75
#endif
76
}
opj_mqc_t
;
77
80
/* ----------------------------------------------------------------------- */
85
opj_mqc_t
*
mqc_create
(
void
);
90
void
mqc_destroy
(
opj_mqc_t
*mqc);
96
int
mqc_numbytes
(
opj_mqc_t
*mqc);
102
void
mqc_resetstates
(
opj_mqc_t
*mqc);
110
void
mqc_setstate
(
opj_mqc_t
*mqc,
int
ctxno,
int
msb,
int
prob);
116
void
mqc_init_enc
(
opj_mqc_t
*mqc,
unsigned
char
*bp);
122
#define mqc_setcurctx(mqc, ctxno) (mqc)->curctx = &(mqc)->ctxs[(int)(ctxno)]
123
128
void
mqc_encode
(
opj_mqc_t
*mqc,
int
d);
133
void
mqc_flush
(
opj_mqc_t
*mqc);
140
void
mqc_bypass_init_enc
(
opj_mqc_t
*mqc);
148
void
mqc_bypass_enc
(
opj_mqc_t
*mqc,
int
d);
155
int
mqc_bypass_flush_enc
(
opj_mqc_t
*mqc);
160
void
mqc_reset_enc
(
opj_mqc_t
*mqc);
166
int
mqc_restart_enc
(
opj_mqc_t
*mqc);
171
void
mqc_restart_init_enc
(
opj_mqc_t
*mqc);
176
void
mqc_erterm_enc
(
opj_mqc_t
*mqc);
181
void
mqc_segmark_enc
(
opj_mqc_t
*mqc);
188
void
mqc_init_dec
(
opj_mqc_t
*mqc,
unsigned
char
*bp,
int
len);
194
int
mqc_decode
(
opj_mqc_t
*
const
mqc);
195
/* ----------------------------------------------------------------------- */
199
200
#endif
/* __MQC_H */
Generated by
1.8.1.2