OpenJPEG 1.5.1
jp2.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) 2002-2003, Yannick Verschueren
5 * Copyright (c) 2005, Herve Drolon, FreeImage Team
6 * All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:
11 * 1. Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 * 2. Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in the
15 * documentation and/or other materials provided with the distribution.
16 *
17 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
18 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27 * POSSIBILITY OF SUCH DAMAGE.
28 */
29#ifndef __JP2_H
30#define __JP2_H
39
40#define JPIP_JPIP 0x6a706970
41
42#define JP2_JP 0x6a502020
43#define JP2_FTYP 0x66747970
44#define JP2_JP2H 0x6a703268
45#define JP2_IHDR 0x69686472
46#define JP2_COLR 0x636f6c72
47#define JP2_JP2C 0x6a703263
48#define JP2_URL 0x75726c20
49#define JP2_DTBL 0x6474626c
50#define JP2_BPCC 0x62706363
51#define JP2_JP2 0x6a703220
52#define JP2_PCLR 0x70636c72
53#define JP2_CMAP 0x636d6170
54#define JP2_CDEF 0x63646566
56/* ----------------------------------------------------------------------- */
60typedef struct opj_jp2_cdef_info
61{
62 unsigned short cn, typ, asoc;
64
68typedef struct opj_jp2_cdef
69{
71 unsigned short n;
73
77typedef struct opj_jp2_cmap_comp
78{
79 unsigned short cmp;
80 unsigned char mtyp, pcol;
82
86typedef struct opj_jp2_pclr
87{
88 unsigned int *entries;
89 unsigned char *channel_sign;
90 unsigned char *channel_size;
92 unsigned short nr_entries, nr_channels;
94
107
116
120typedef struct opj_jp2 {
125 unsigned int w;
126 unsigned int h;
127 unsigned int numcomps;
128 unsigned int bpc;
129 unsigned int C;
130 unsigned int UnkC;
131 unsigned int IPR;
132 unsigned int meth;
133 unsigned int approx;
134 unsigned int enumcs;
135 unsigned int precedence;
136 unsigned int brand;
137 unsigned int minversion;
138 unsigned int numcl;
139 unsigned int *cl;
146
155
158/* ----------------------------------------------------------------------- */
164void jp2_write_jp2h(opj_jp2_t *jp2, opj_cio_t *cio);
190void jp2_setup_decoder(opj_jp2_t *jp2, opj_dparameters_t *parameters);
217void jp2_setup_encoder(opj_jp2_t *jp2, opj_cparameters_t *parameters, opj_image_t *image);
227
228/* ----------------------------------------------------------------------- */
232
233#endif /* __JP2_H */
234
struct opj_jp2_cdef opj_jp2_cdef_t
Channel descriptions and number of descriptions.
void jp2_setup_decoder(opj_jp2_t *jp2, opj_dparameters_t *parameters)
Setup the decoder decoding parameters using user parameters.
Definition jp2.c:1105
void jp2_setup_encoder(opj_jp2_t *jp2, opj_cparameters_t *parameters, opj_image_t *image)
Setup the encoder parameters using the current image and using user parameters.
Definition jp2.c:1145
struct opj_jp2_cmap_comp opj_jp2_cmap_comp_t
Component mappings: channel index, mapping type, palette index.
opj_bool jp2_read_jp2h(opj_jp2_t *jp2, opj_cio_t *cio, opj_jp2_color_t *color)
Read the JP2H box - JP2 Header box (used in MJ2)
Definition jp2.c:648
struct opj_jp2_color opj_jp2_color_t
Collector for ICC profile, palette, component mapping, channel description.
struct opj_jp2 opj_jp2_t
JPEG-2000 file format reader/writer.
struct opj_jp2_comps opj_jp2_comps_t
JP2 component.
void jp2_destroy_compress(opj_jp2_t *jp2)
Destroy a JP2 compressor handle.
Definition jp2.c:1130
opj_jp2_t * jp2_create_decompress(opj_common_ptr cinfo)
Creates a JP2 decompression structure.
Definition jp2.c:1076
struct opj_jp2_pclr opj_jp2_pclr_t
Palette data: table entries, palette columns.
struct opj_jp2_cdef_info opj_jp2_cdef_info_t
Channel description: channel index, type, assocation.
void jp2_destroy_decompress(opj_jp2_t *jp2)
Destroy a JP2 decompressor handle.
Definition jp2.c:1090
opj_image_t * opj_jp2_decode(opj_jp2_t *jp2, opj_cio_t *cio, opj_codestream_info_t *cstr_info)
Decode an image from a JPEG-2000 file stream.
Definition jp2.c:744
opj_bool opj_jp2_encode(opj_jp2_t *jp2, opj_cio_t *cio, opj_image_t *image, opj_codestream_info_t *cstr_info)
Encode an image into a JPEG-2000 file stream.
Definition jp2.c:1212
opj_jp2_t * jp2_create_compress(opj_common_ptr cinfo)
Creates a JP2 compression structure.
Definition jp2.c:1116
void jp2_write_jp2h(opj_jp2_t *jp2, opj_cio_t *cio)
Write the JP2H box - JP2 Header box (used in MJ2)
Definition jp2.c:813
struct opj_jp2_box opj_jp2_box_t
JP2 Box.
int opj_bool
Definition openjpeg.h:63
Byte input-output stream (CIO)
Definition openjpeg.h:475
Index structure of the codestream.
Definition openjpeg.h:672
Definition openjpeg.h:430
Compression parameters.
Definition openjpeg.h:230
Decompression parameters.
Definition openjpeg.h:363
Defines image data and characteristics.
Definition openjpeg.h:533
JPEG-2000 codestream reader/writer.
Definition j2k.h:314
JP2 Box.
Definition jp2.h:150
int length
Definition jp2.h:151
int init_pos
Definition jp2.h:153
int type
Definition jp2.h:152
Channel description: channel index, type, assocation.
Definition jp2.h:61
unsigned short asoc
Definition jp2.h:62
unsigned short typ
Definition jp2.h:62
unsigned short cn
Definition jp2.h:62
Channel descriptions and number of descriptions.
Definition jp2.h:69
opj_jp2_cdef_info_t * info
Definition jp2.h:70
unsigned short n
Definition jp2.h:71
Component mappings: channel index, mapping type, palette index.
Definition jp2.h:78
unsigned char pcol
Definition jp2.h:80
unsigned char mtyp
Definition jp2.h:80
unsigned short cmp
Definition jp2.h:79
Collector for ICC profile, palette, component mapping, channel description.
Definition jp2.h:99
opj_jp2_cdef_t * jp2_cdef
Definition jp2.h:103
unsigned char jp2_has_colr
Definition jp2.h:105
int icc_profile_len
Definition jp2.h:101
opj_jp2_pclr_t * jp2_pclr
Definition jp2.h:104
unsigned char * icc_profile_buf
Definition jp2.h:100
JP2 component.
Definition jp2.h:111
int sgnd
Definition jp2.h:113
int bpcc
Definition jp2.h:114
int depth
Definition jp2.h:112
Palette data: table entries, palette columns.
Definition jp2.h:87
unsigned short nr_entries
Definition jp2.h:92
unsigned short nr_channels
Definition jp2.h:92
unsigned char * channel_sign
Definition jp2.h:89
unsigned char * channel_size
Definition jp2.h:90
unsigned int * entries
Definition jp2.h:88
opj_jp2_cmap_comp_t * cmap
Definition jp2.h:91
JPEG-2000 file format reader/writer.
Definition jp2.h:120
unsigned int j2k_codestream_offset
Definition jp2.h:141
unsigned int IPR
Definition jp2.h:131
unsigned int approx
Definition jp2.h:133
unsigned int * cl
Definition jp2.h:139
opj_bool ignore_pclr_cmap_cdef
Definition jp2.h:144
opj_bool jpip_on
Definition jp2.h:143
unsigned int bpc
Definition jp2.h:128
unsigned int precedence
Definition jp2.h:135
unsigned int UnkC
Definition jp2.h:130
unsigned int h
Definition jp2.h:126
unsigned int brand
Definition jp2.h:136
opj_j2k_t * j2k
handle to the J2K codec
Definition jp2.h:124
opj_jp2_comps_t * comps
Definition jp2.h:140
unsigned int numcomps
Definition jp2.h:127
unsigned int w
Definition jp2.h:125
unsigned int j2k_codestream_length
Definition jp2.h:142
opj_common_ptr cinfo
codec context
Definition jp2.h:122
unsigned int C
Definition jp2.h:129
unsigned int numcl
Definition jp2.h:138
unsigned int meth
Definition jp2.h:132
unsigned int enumcs
Definition jp2.h:134
unsigned int minversion
Definition jp2.h:137