~ubuntu-branches/ubuntu/vivid/ghostscript/vivid-security

« back to all changes in this revision

Viewing changes to openjpeg/libopenjpeg/j2k.h

  • Committer: Package Import Robot
  • Author(s): Till Kamppeter
  • Date: 2013-08-09 20:01:36 UTC
  • mfrom: (1.1.37)
  • Revision ID: package-import@ubuntu.com-20130809200136-amb6zrr7hnjb5jq9
Tags: 9.08~rc1~dfsg-0ubuntu1
* New upstream release
   - Ghostscript 9.08rc1.
   - We are using the system's liblcms2 and libopenjpeg now.
* debian/patches/020130401-852e545-pxl-xl-driver-produced-drawing-commands-without-setting-color-space.patch:
  Removed patch backported from upstream.
* debian/patches/ojdk-8007925+8007926.patch,
  debian/patches/ojdk-8007927.patch,
  debian/patches/ojdk-8007929.patch,
  debian/patches/ojdk-8009654.patch: Removed patches on build in liblcms2, we
  use the system's liblcms2 now.
* debian/patches/2001_docdir_fix_for_debian.patch: Manually updated to new
  upstream source code.
* debian/patches/2003_support_multiarch.patch: Refreshed with quilt.
* debian/control: Added build dependencies on liblcms2-dev and
  libopenjpeg-dev.
* debian/rules: Check for removed lcms2/ and openjpeg/ subdirectories in
  the repackaging check again, also set build options for shared liblcms2
  and libopenjpeg libraries.
* debian/rules: Makefile.in and configure.ac are in the root directory of
  the source now and do not need to get linked from base/. Also there is no
  gstoraster and gstopxl CUPS filter in the package any more and no
  "install-cups" make target any more.
* debian/control, debian/rules, debian/ghostscript-cups.install,
  debian/ghostscript-cups.ppd-updater: Removed the ghostscript-cups binary
  package. The files are now provided by cups-filters.
* debian/symbols.common: Updated for new upstream source. Applied patch
  which dpkg-gensymbols generated for debian/libgs9.symbols to this file.

Show diffs side-by-side

added added

removed removed

Lines of Context:
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) 2006-2007, Parvatha Elangovan
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
 
#ifndef __J2K_H
33
 
#define __J2K_H
34
 
/**
35
 
@file j2k.h
36
 
@brief The JPEG-2000 Codestream Reader/Writer (J2K)
37
 
 
38
 
The functions in J2K.C have for goal to read/write the several parts of the codestream: markers and data.
39
 
*/
40
 
 
41
 
/** @defgroup J2K J2K - JPEG-2000 codestream reader/writer */
42
 
/*@{*/
43
 
 
44
 
#define J2K_CP_CSTY_PRT 0x01
45
 
#define J2K_CP_CSTY_SOP 0x02
46
 
#define J2K_CP_CSTY_EPH 0x04
47
 
#define J2K_CCP_CSTY_PRT 0x01
48
 
#define J2K_CCP_CBLKSTY_LAZY 0x01     /**< Selective arithmetic coding bypass */
49
 
#define J2K_CCP_CBLKSTY_RESET 0x02    /**< Reset context probabilities on coding pass boundaries */
50
 
#define J2K_CCP_CBLKSTY_TERMALL 0x04  /**< Termination on each coding pass */
51
 
#define J2K_CCP_CBLKSTY_VSC 0x08      /**< Vertically stripe causal context */
52
 
#define J2K_CCP_CBLKSTY_PTERM 0x10    /**< Predictable termination */
53
 
#define J2K_CCP_CBLKSTY_SEGSYM 0x20   /**< Segmentation symbols are used */
54
 
#define J2K_CCP_QNTSTY_NOQNT 0
55
 
#define J2K_CCP_QNTSTY_SIQNT 1
56
 
#define J2K_CCP_QNTSTY_SEQNT 2
57
 
 
58
 
/* ----------------------------------------------------------------------- */
59
 
 
60
 
#define J2K_MS_SOC 0xff4f       /**< SOC marker value */
61
 
#define J2K_MS_SOT 0xff90       /**< SOT marker value */
62
 
#define J2K_MS_SOD 0xff93       /**< SOD marker value */
63
 
#define J2K_MS_EOC 0xffd9       /**< EOC marker value */
64
 
#define J2K_MS_SIZ 0xff51       /**< SIZ marker value */
65
 
#define J2K_MS_COD 0xff52       /**< COD marker value */
66
 
#define J2K_MS_COC 0xff53       /**< COC marker value */
67
 
#define J2K_MS_RGN 0xff5e       /**< RGN marker value */
68
 
#define J2K_MS_QCD 0xff5c       /**< QCD marker value */
69
 
#define J2K_MS_QCC 0xff5d       /**< QCC marker value */
70
 
#define J2K_MS_POC 0xff5f       /**< POC marker value */
71
 
#define J2K_MS_TLM 0xff55       /**< TLM marker value */
72
 
#define J2K_MS_PLM 0xff57       /**< PLM marker value */
73
 
#define J2K_MS_PLT 0xff58       /**< PLT marker value */
74
 
#define J2K_MS_PPM 0xff60       /**< PPM marker value */
75
 
#define J2K_MS_PPT 0xff61       /**< PPT marker value */
76
 
#define J2K_MS_SOP 0xff91       /**< SOP marker value */
77
 
#define J2K_MS_EPH 0xff92       /**< EPH marker value */
78
 
#define J2K_MS_CRG 0xff63       /**< CRG marker value */
79
 
#define J2K_MS_COM 0xff64       /**< COM marker value */
80
 
/* UniPG>> */
81
 
#ifdef USE_JPWL
82
 
#define J2K_MS_EPC 0xff68       /**< EPC marker value (Part 11: JPEG 2000 for Wireless) */
83
 
#define J2K_MS_EPB 0xff66       /**< EPB marker value (Part 11: JPEG 2000 for Wireless) */ 
84
 
#define J2K_MS_ESD 0xff67       /**< ESD marker value (Part 11: JPEG 2000 for Wireless) */ 
85
 
#define J2K_MS_RED 0xff69       /**< RED marker value (Part 11: JPEG 2000 for Wireless) */
86
 
#endif /* USE_JPWL */
87
 
#ifdef USE_JPSEC
88
 
#define J2K_MS_SEC 0xff65    /**< SEC marker value (Part 8: Secure JPEG 2000) */
89
 
#define J2K_MS_INSEC 0xff94  /**< INSEC marker value (Part 8: Secure JPEG 2000) */
90
 
#endif /* USE_JPSEC */
91
 
/* <<UniPG */
92
 
 
93
 
 
94
 
/* ----------------------------------------------------------------------- */
95
 
 
96
 
/**
97
 
Values that specify the status of the decoding process when decoding the main header. 
98
 
These values may be combined with a | operator. 
99
 
*/
100
 
typedef enum J2K_STATUS {
101
 
        J2K_STATE_MHSOC  = 0x0001, /**< a SOC marker is expected */
102
 
        J2K_STATE_MHSIZ  = 0x0002, /**< a SIZ marker is expected */
103
 
        J2K_STATE_MH     = 0x0004, /**< the decoding process is in the main header */
104
 
        J2K_STATE_TPHSOT = 0x0008, /**< the decoding process is in a tile part header and expects a SOT marker */
105
 
        J2K_STATE_TPH    = 0x0010, /**< the decoding process is in a tile part header */
106
 
        J2K_STATE_MT     = 0x0020, /**< the EOC marker has just been read */
107
 
        J2K_STATE_NEOC   = 0x0040, /**< the decoding process must not expect a EOC marker because the codestream is truncated */
108
 
        J2K_STATE_ERR    = 0x0080  /**< the decoding process has encountered an error */
109
 
} J2K_STATUS;
110
 
 
111
 
/* ----------------------------------------------------------------------- */
112
 
 
113
 
/** 
114
 
T2 encoding mode 
115
 
*/
116
 
typedef enum T2_MODE {
117
 
        THRESH_CALC = 0,        /** Function called in Rate allocation process*/
118
 
        FINAL_PASS = 1          /** Function called in Tier 2 process*/
119
 
}J2K_T2_MODE;
120
 
 
121
 
/**
122
 
Quantization stepsize
123
 
*/
124
 
typedef struct opj_stepsize {
125
 
        /** exponent */
126
 
        int expn;
127
 
        /** mantissa */
128
 
        int mant;
129
 
} opj_stepsize_t;
130
 
 
131
 
/**
132
 
Tile-component coding parameters
133
 
*/
134
 
typedef struct opj_tccp {
135
 
        /** coding style */
136
 
        int csty;
137
 
        /** number of resolutions */
138
 
        int numresolutions;
139
 
        /** code-blocks width */
140
 
        int cblkw;
141
 
        /** code-blocks height */
142
 
        int cblkh;
143
 
        /** code-block coding style */
144
 
        int cblksty;
145
 
        /** discrete wavelet transform identifier */
146
 
        int qmfbid;
147
 
        /** quantisation style */
148
 
        int qntsty;
149
 
        /** stepsizes used for quantization */
150
 
        opj_stepsize_t stepsizes[J2K_MAXBANDS];
151
 
        /** number of guard bits */
152
 
        int numgbits;
153
 
        /** Region Of Interest shift */
154
 
        int roishift;
155
 
        /** precinct width */
156
 
        int prcw[J2K_MAXRLVLS];
157
 
        /** precinct height */
158
 
        int prch[J2K_MAXRLVLS]; 
159
 
} opj_tccp_t;
160
 
 
161
 
/**
162
 
Tile coding parameters : 
163
 
this structure is used to store coding/decoding parameters common to all
164
 
tiles (information like COD, COC in main header)
165
 
*/
166
 
typedef struct opj_tcp {
167
 
        /** 1 : first part-tile of a tile */
168
 
        int first;
169
 
        /** coding style */
170
 
        int csty;
171
 
        /** progression order */
172
 
        OPJ_PROG_ORDER prg;
173
 
        /** number of layers */
174
 
        int numlayers;
175
 
        /** multi-component transform identifier */
176
 
        int mct;
177
 
        /** rates of layers */
178
 
        float rates[100];
179
 
        /** number of progression order changes */
180
 
        int numpocs;
181
 
        /** indicates if a POC marker has been used O:NO, 1:YES */
182
 
        int POC;
183
 
        /** progression order changes */
184
 
        opj_poc_t pocs[32];
185
 
        /** packet header store there for futur use in t2_decode_packet */
186
 
        unsigned char *ppt_data;
187
 
        /** pointer remaining on the first byte of the first header if ppt is used */
188
 
        unsigned char *ppt_data_first;
189
 
        /** If ppt == 1 --> there was a PPT marker for the present tile */
190
 
        int ppt;
191
 
        /** used in case of multiple marker PPT (number of info already stored) */
192
 
        int ppt_store;
193
 
        /** ppmbug1 */
194
 
        int ppt_len;
195
 
        /** add fixed_quality */
196
 
        float distoratio[100];
197
 
        /** tile-component coding parameters */
198
 
        opj_tccp_t *tccps;
199
 
} opj_tcp_t;
200
 
 
201
 
/**
202
 
Coding parameters
203
 
*/
204
 
typedef struct opj_cp {
205
 
        /** Digital cinema profile*/
206
 
        OPJ_CINEMA_MODE cinema;
207
 
        /** Maximum rate for each component. If == 0, component size limitation is not considered */
208
 
        int max_comp_size;
209
 
        /** Size of the image in bits*/
210
 
        int img_size;
211
 
        /** Rsiz*/
212
 
        OPJ_RSIZ_CAPABILITIES rsiz;
213
 
        /** Enabling Tile part generation*/
214
 
        char tp_on;
215
 
        /** Flag determining tile part generation*/
216
 
        char tp_flag;
217
 
        /** Position of tile part flag in progression order*/
218
 
        int tp_pos;
219
 
        /** allocation by rate/distortion */
220
 
        int disto_alloc;
221
 
        /** allocation by fixed layer */
222
 
        int fixed_alloc;
223
 
        /** add fixed_quality */
224
 
        int fixed_quality;
225
 
        /** if != 0, then original dimension divided by 2^(reduce); if == 0 or not used, image is decoded to the full resolution */
226
 
        int reduce;
227
 
        /** if != 0, then only the first "layer" layers are decoded; if == 0 or not used, all the quality layers are decoded */
228
 
        int layer;
229
 
        /** if == NO_LIMITATION, decode entire codestream; if == LIMIT_TO_MAIN_HEADER then only decode the main header */
230
 
        OPJ_LIMIT_DECODING limit_decoding;
231
 
        /** XTOsiz */
232
 
        int tx0;
233
 
        /** YTOsiz */
234
 
        int ty0;
235
 
        /** XTsiz */
236
 
        int tdx;
237
 
        /** YTsiz */
238
 
        int tdy;
239
 
        /** comment for coding */
240
 
        char *comment;
241
 
        /** number of tiles in width */
242
 
        int tw;
243
 
        /** number of tiles in heigth */
244
 
        int th;
245
 
        /** ID number of the tiles present in the codestream */
246
 
        int *tileno;
247
 
        /** size of the vector tileno */
248
 
        int tileno_size;
249
 
        /** packet header store there for futur use in t2_decode_packet */
250
 
        unsigned char *ppm_data;
251
 
        /** pointer remaining on the first byte of the first header if ppm is used */
252
 
        unsigned char *ppm_data_first;
253
 
        /** if ppm == 1 --> there was a PPM marker for the present tile */
254
 
        int ppm;
255
 
        /** use in case of multiple marker PPM (number of info already store) */
256
 
        int ppm_store;
257
 
        /** use in case of multiple marker PPM (case on non-finished previous info) */
258
 
        int ppm_previous;
259
 
        /** ppmbug1 */
260
 
        int ppm_len;
261
 
        /** tile coding parameters */
262
 
        opj_tcp_t *tcps;
263
 
        /** fixed layer */
264
 
        int *matrice;
265
 
/* UniPG>> */
266
 
#ifdef USE_JPWL
267
 
        /** enables writing of EPC in MH, thus activating JPWL */
268
 
        opj_bool epc_on;
269
 
        /** enables writing of EPB, in case of activated JPWL */
270
 
        opj_bool epb_on;
271
 
        /** enables writing of ESD, in case of activated JPWL */
272
 
        opj_bool esd_on;
273
 
        /** enables writing of informative techniques of ESD, in case of activated JPWL */
274
 
        opj_bool info_on;
275
 
        /** enables writing of RED, in case of activated JPWL */
276
 
        opj_bool red_on;
277
 
        /** error protection method for MH (0,1,16,32,37-128) */
278
 
        int hprot_MH;
279
 
        /** tile number of header protection specification (>=0) */
280
 
        int hprot_TPH_tileno[JPWL_MAX_NO_TILESPECS];
281
 
        /** error protection methods for TPHs (0,1,16,32,37-128) */
282
 
        int hprot_TPH[JPWL_MAX_NO_TILESPECS];
283
 
        /** tile number of packet protection specification (>=0) */
284
 
        int pprot_tileno[JPWL_MAX_NO_PACKSPECS];
285
 
        /** packet number of packet protection specification (>=0) */
286
 
        int pprot_packno[JPWL_MAX_NO_PACKSPECS];
287
 
        /** error protection methods for packets (0,1,16,32,37-128) */
288
 
        int pprot[JPWL_MAX_NO_PACKSPECS];
289
 
        /** enables writing of ESD, (0/2/4 bytes) */
290
 
        int sens_size;
291
 
        /** sensitivity addressing size (0=auto/2/4 bytes) */
292
 
        int sens_addr;
293
 
        /** sensitivity range (0-3) */
294
 
        int sens_range;
295
 
        /** sensitivity method for MH (-1,0-7) */
296
 
        int sens_MH;
297
 
        /** tile number of sensitivity specification (>=0) */
298
 
        int sens_TPH_tileno[JPWL_MAX_NO_TILESPECS];
299
 
        /** sensitivity methods for TPHs (-1,0-7) */
300
 
        int sens_TPH[JPWL_MAX_NO_TILESPECS];
301
 
        /** enables JPWL correction at the decoder */
302
 
        opj_bool correct;
303
 
        /** expected number of components at the decoder */
304
 
        int exp_comps;
305
 
        /** maximum number of tiles at the decoder */
306
 
        int max_tiles;
307
 
#endif /* USE_JPWL */
308
 
/* <<UniPG */
309
 
} opj_cp_t;
310
 
 
311
 
/**
312
 
JPEG-2000 codestream reader/writer
313
 
*/
314
 
typedef struct opj_j2k {
315
 
        /** codec context */
316
 
        opj_common_ptr cinfo;
317
 
 
318
 
        /** locate in which part of the codestream the decoder is (main header, tile header, end) */
319
 
        int state;
320
 
        /** number of the tile curently concern by coding/decoding */
321
 
        int curtileno;
322
 
        /** Tile part number*/
323
 
        int tp_num;
324
 
        /** Tilepart number currently coding*/
325
 
        int cur_tp_num;
326
 
        /** Total number of tileparts of the current tile*/
327
 
        int *cur_totnum_tp;
328
 
        /**
329
 
        locate the start position of the TLM marker  
330
 
        after encoding the tilepart, a jump (in j2k_write_sod) is done to the TLM marker to store the value of its length. 
331
 
        */
332
 
        int tlm_start;
333
 
        /** Total num of tile parts in whole image = num tiles* num tileparts in each tile*/
334
 
        /** used in TLMmarker*/
335
 
        int totnum_tp;  
336
 
        /** 
337
 
        locate the position of the end of the tile in the codestream, 
338
 
        used to detect a truncated codestream (in j2k_read_sod)
339
 
        */
340
 
        unsigned char *eot;
341
 
        /**
342
 
        locate the start position of the SOT marker of the current coded tile:  
343
 
        after encoding the tile, a jump (in j2k_write_sod) is done to the SOT marker to store the value of its length. 
344
 
        */
345
 
        int sot_start;
346
 
        int sod_start;
347
 
        /**
348
 
        as the J2K-file is written in several parts during encoding, 
349
 
        it enables to make the right correction in position return by cio_tell
350
 
        */
351
 
        int pos_correction;
352
 
        /** array used to store the data of each tile */
353
 
        unsigned char **tile_data;
354
 
        /** array used to store the length of each tile */
355
 
        int *tile_len;
356
 
        /** 
357
 
        decompression only : 
358
 
        store decoding parameters common to all tiles (information like COD, COC in main header)
359
 
        */
360
 
        opj_tcp_t *default_tcp;
361
 
        /** pointer to the encoded / decoded image */
362
 
        opj_image_t *image;
363
 
        /** pointer to the coding parameters */
364
 
        opj_cp_t *cp;
365
 
        /** helper used to write the index file */
366
 
        opj_codestream_info_t *cstr_info;
367
 
        /** pointer to the byte i/o stream */
368
 
        opj_cio_t *cio;
369
 
} opj_j2k_t;
370
 
 
371
 
/** @name Exported functions */
372
 
/*@{*/
373
 
/* ----------------------------------------------------------------------- */
374
 
/**
375
 
Creates a J2K decompression structure
376
 
@param cinfo Codec context info
377
 
@return Returns a handle to a J2K decompressor if successful, returns NULL otherwise
378
 
*/
379
 
opj_j2k_t* j2k_create_decompress(opj_common_ptr cinfo);
380
 
/**
381
 
Destroy a J2K decompressor handle
382
 
@param j2k J2K decompressor handle to destroy
383
 
*/
384
 
void j2k_destroy_decompress(opj_j2k_t *j2k);
385
 
/**
386
 
Setup the decoder decoding parameters using user parameters.
387
 
Decoding parameters are returned in j2k->cp. 
388
 
@param j2k J2K decompressor handle
389
 
@param parameters decompression parameters
390
 
*/
391
 
void j2k_setup_decoder(opj_j2k_t *j2k, opj_dparameters_t *parameters);
392
 
/**
393
 
Decode an image from a JPEG-2000 codestream
394
 
@param j2k J2K decompressor handle
395
 
@param cio Input buffer stream
396
 
@param cstr_info Codestream information structure if required, NULL otherwise
397
 
@return Returns a decoded image if successful, returns NULL otherwise
398
 
*/
399
 
opj_image_t* j2k_decode(opj_j2k_t *j2k, opj_cio_t *cio, opj_codestream_info_t *cstr_info);
400
 
/**
401
 
Decode an image form a JPT-stream (JPEG 2000, JPIP)
402
 
@param j2k J2K decompressor handle
403
 
@param cio Input buffer stream
404
 
@param cstr_info Codestream information structure if required, NULL otherwise
405
 
@return Returns a decoded image if successful, returns NULL otherwise
406
 
*/
407
 
opj_image_t* j2k_decode_jpt_stream(opj_j2k_t *j2k, opj_cio_t *cio, opj_codestream_info_t *cstr_info);
408
 
/**
409
 
Creates a J2K compression structure
410
 
@param cinfo Codec context info
411
 
@return Returns a handle to a J2K compressor if successful, returns NULL otherwise
412
 
*/
413
 
opj_j2k_t* j2k_create_compress(opj_common_ptr cinfo);
414
 
/**
415
 
Destroy a J2K compressor handle
416
 
@param j2k J2K compressor handle to destroy
417
 
*/
418
 
void j2k_destroy_compress(opj_j2k_t *j2k);
419
 
/**
420
 
Setup the encoder parameters using the current image and using user parameters. 
421
 
Coding parameters are returned in j2k->cp. 
422
 
@param j2k J2K compressor handle
423
 
@param parameters compression parameters
424
 
@param image input filled image
425
 
*/
426
 
void j2k_setup_encoder(opj_j2k_t *j2k, opj_cparameters_t *parameters, opj_image_t *image);
427
 
/**
428
 
Converts an enum type progression order to string type
429
 
*/
430
 
char *j2k_convert_progression_order(OPJ_PROG_ORDER prg_order);
431
 
/**
432
 
Encode an image into a JPEG-2000 codestream
433
 
@param j2k J2K compressor handle
434
 
@param cio Output buffer stream
435
 
@param image Image to encode
436
 
@param cstr_info Codestream information structure if required, NULL otherwise
437
 
@return Returns true if successful, returns false otherwise
438
 
*/
439
 
opj_bool j2k_encode(opj_j2k_t *j2k, opj_cio_t *cio, opj_image_t *image, opj_codestream_info_t *cstr_info);
440
 
 
441
 
/* ----------------------------------------------------------------------- */
442
 
/*@}*/
443
 
 
444
 
/*@}*/
445
 
 
446
 
#endif /* __J2K_H */