OpenJPEG
2.0.0
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
home
makerpm
rpmbuild
BUILD
openjp2-2.0.0.2354
src
lib
openjp2
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
* Copyright (c) 2008, Jerome Fimes, Communications & Systemes <jerome.fimes@c-s.fr>
9
* All rights reserved.
10
*
11
* Redistribution and use in source and binary forms, with or without
12
* modification, are permitted provided that the following conditions
13
* are met:
14
* 1. Redistributions of source code must retain the above copyright
15
* notice, this list of conditions and the following disclaimer.
16
* 2. Redistributions in binary form must reproduce the above copyright
17
* notice, this list of conditions and the following disclaimer in the
18
* documentation and/or other materials provided with the distribution.
19
*
20
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
21
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
24
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30
* POSSIBILITY OF SUCH DAMAGE.
31
*/
32
33
#ifndef __MQC_H
34
#define __MQC_H
35
45
49
typedef
struct
opj_mqc_state
{
51
OPJ_UINT32
qeval
;
53
OPJ_UINT32
mps
;
55
struct
opj_mqc_state
*
nmps
;
57
struct
opj_mqc_state
*
nlps
;
58
}
opj_mqc_state_t
;
59
60
#define MQC_NUMCTXS 19
61
65
typedef
struct
opj_mqc
{
66
OPJ_UINT32
c
;
67
OPJ_UINT32
a
;
68
OPJ_UINT32
ct
;
69
OPJ_BYTE
*
bp
;
70
OPJ_BYTE
*
start
;
71
OPJ_BYTE
*
end
;
72
opj_mqc_state_t
*
ctxs
[
MQC_NUMCTXS
];
73
opj_mqc_state_t
**
curctx
;
74
#ifdef MQC_PERF_OPT
75
unsigned
char
*buffer;
76
#endif
77
}
opj_mqc_t
;
78
81
/* ----------------------------------------------------------------------- */
86
opj_mqc_t
*
opj_mqc_create
(
void
);
91
void
opj_mqc_destroy
(
opj_mqc_t
*mqc);
97
OPJ_UINT32
opj_mqc_numbytes
(
opj_mqc_t
*mqc);
103
void
opj_mqc_resetstates
(
opj_mqc_t
*mqc);
111
void
opj_mqc_setstate
(
opj_mqc_t
*mqc,
OPJ_UINT32
ctxno,
OPJ_UINT32
msb,
OPJ_INT32
prob);
117
void
opj_mqc_init_enc
(
opj_mqc_t
*mqc,
OPJ_BYTE
*bp);
123
#define opj_mqc_setcurctx(mqc, ctxno) (mqc)->curctx = &(mqc)->ctxs[(OPJ_UINT32)(ctxno)]
124
129
void
opj_mqc_encode
(
opj_mqc_t
*mqc,
OPJ_UINT32
d);
134
void
opj_mqc_flush
(
opj_mqc_t
*mqc);
141
void
opj_mqc_bypass_init_enc
(
opj_mqc_t
*mqc);
149
void
opj_mqc_bypass_enc
(
opj_mqc_t
*mqc,
OPJ_UINT32
d);
156
OPJ_UINT32
opj_mqc_bypass_flush_enc
(
opj_mqc_t
*mqc);
161
void
opj_mqc_reset_enc
(
opj_mqc_t
*mqc);
167
OPJ_UINT32
opj_mqc_restart_enc
(
opj_mqc_t
*mqc);
172
void
opj_mqc_restart_init_enc
(
opj_mqc_t
*mqc);
177
void
opj_mqc_erterm_enc
(
opj_mqc_t
*mqc);
182
void
opj_mqc_segmark_enc
(
opj_mqc_t
*mqc);
189
OPJ_BOOL
opj_mqc_init_dec
(
opj_mqc_t
*mqc,
OPJ_BYTE
*bp,
OPJ_UINT32
len);
195
OPJ_INT32
opj_mqc_decode
(
opj_mqc_t
*
const
mqc);
196
/* ----------------------------------------------------------------------- */
200
201
#endif
/* __MQC_H */
Generated by
1.8.3.1