OpenJPEG
2.3.1
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
home
abuild
rpmbuild
BUILD
openjpeg-2.3.1
src
lib
openjp2
mqc.h
Go to the documentation of this file.
1
/*
2
* The copyright in this software is being made available under the 2-clauses
3
* BSD License, included below. This software may be subject to other third
4
* party and contributor rights, including patent rights, and no such rights
5
* are granted under this license.
6
*
7
* Copyright (c) 2002-2014, Universite catholique de Louvain (UCL), Belgium
8
* Copyright (c) 2002-2014, Professor Benoit Macq
9
* Copyright (c) 2001-2003, David Janssens
10
* Copyright (c) 2002-2003, Yannick Verschueren
11
* Copyright (c) 2003-2007, Francois-Olivier Devaux
12
* Copyright (c) 2003-2014, Antonin Descampe
13
* Copyright (c) 2005, Herve Drolon, FreeImage Team
14
* Copyright (c) 2008, Jerome Fimes, Communications & Systemes <jerome.fimes@c-s.fr>
15
* All rights reserved.
16
*
17
* Redistribution and use in source and binary forms, with or without
18
* modification, are permitted provided that the following conditions
19
* are met:
20
* 1. Redistributions of source code must retain the above copyright
21
* notice, this list of conditions and the following disclaimer.
22
* 2. Redistributions in binary form must reproduce the above copyright
23
* notice, this list of conditions and the following disclaimer in the
24
* documentation and/or other materials provided with the distribution.
25
*
26
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
27
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
29
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
30
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
32
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
33
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
34
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
35
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
36
* POSSIBILITY OF SUCH DAMAGE.
37
*/
38
39
#ifndef OPJ_MQC_H
40
#define OPJ_MQC_H
41
42
#include "
opj_common.h
"
43
54
58
typedef
struct
opj_mqc_state
{
60
OPJ_UINT32
qeval
;
62
OPJ_UINT32
mps
;
64
const
struct
opj_mqc_state
*
nmps
;
66
const
struct
opj_mqc_state
*
nlps
;
67
}
opj_mqc_state_t
;
68
69
#define MQC_NUMCTXS 19
70
74
typedef
struct
opj_mqc
{
76
OPJ_UINT32
c
;
78
OPJ_UINT32
a
;
80
OPJ_UINT32
ct
;
81
/* only used by decoder, to count the number of times a terminating 0xFF >0x8F marker is read */
82
OPJ_UINT32
end_of_byte_stream_counter
;
84
OPJ_BYTE
*
bp
;
86
OPJ_BYTE
*
start
;
88
OPJ_BYTE
*
end
;
90
const
opj_mqc_state_t
*
ctxs
[
MQC_NUMCTXS
];
92
const
opj_mqc_state_t
**
curctx
;
93
/* lut_ctxno_zc shifted by (1 << 9) * bandno */
94
const
OPJ_BYTE
*
lut_ctxno_zc_orient
;
96
OPJ_BYTE
backup
[
OPJ_COMMON_CBLK_DATA_EXTRA
];
97
}
opj_mqc_t
;
98
99
#include "
mqc_inl.h
"
100
103
/* ----------------------------------------------------------------------- */
104
110
OPJ_UINT32
opj_mqc_numbytes
(
opj_mqc_t
*mqc);
116
void
opj_mqc_resetstates
(
opj_mqc_t
*mqc);
124
void
opj_mqc_setstate
(
opj_mqc_t
*mqc,
OPJ_UINT32
ctxno,
OPJ_UINT32
msb,
125
OPJ_INT32
prob);
131
void
opj_mqc_init_enc
(
opj_mqc_t
*mqc,
OPJ_BYTE
*bp);
137
#define opj_mqc_setcurctx(mqc, ctxno) (mqc)->curctx = &(mqc)->ctxs[(OPJ_UINT32)(ctxno)]
138
143
void
opj_mqc_encode
(
opj_mqc_t
*mqc,
OPJ_UINT32
d);
148
void
opj_mqc_flush
(
opj_mqc_t
*mqc);
154
void
opj_mqc_bypass_init_enc
(
opj_mqc_t
*mqc);
155
161
OPJ_UINT32
opj_mqc_bypass_get_extra_bytes
(
opj_mqc_t
*mqc,
OPJ_BOOL
erterm);
162
169
void
opj_mqc_bypass_enc
(
opj_mqc_t
*mqc,
OPJ_UINT32
d);
175
void
opj_mqc_bypass_flush_enc
(
opj_mqc_t
*mqc,
OPJ_BOOL
erterm);
180
void
opj_mqc_reset_enc
(
opj_mqc_t
*mqc);
181
182
#ifdef notdef
183
188
OPJ_UINT32
opj_mqc_restart_enc(
opj_mqc_t
*mqc);
189
#endif
190
195
void
opj_mqc_restart_init_enc
(
opj_mqc_t
*mqc);
200
void
opj_mqc_erterm_enc
(
opj_mqc_t
*mqc);
205
void
opj_mqc_segmark_enc
(
opj_mqc_t
*mqc);
206
225
void
opj_mqc_init_dec
(
opj_mqc_t
*mqc,
OPJ_BYTE
*bp,
OPJ_UINT32
len,
226
OPJ_UINT32
extra_writable_bytes);
227
246
void
opj_mqc_raw_init_dec
(
opj_mqc_t
*mqc,
OPJ_BYTE
*bp,
OPJ_UINT32
len,
247
OPJ_UINT32
extra_writable_bytes);
248
249
258
void
opq_mqc_finish_dec
(
opj_mqc_t
*mqc);
259
265
/*static INLINE OPJ_UINT32 opj_mqc_decode(opj_mqc_t * const mqc);*/
266
/* ----------------------------------------------------------------------- */
270
271
#endif
/* OPJ_MQC_H */
Generated by
1.8.1