OpenJPEG  2.5.3
Data Structures | Macros | Typedefs | Enumerations
JP2 - JPEG-2000 file format reader/writer

Data Structures

struct  opj_jp2_cdef_info
 
Channel description: channel index, type, association More...
 
struct  opj_jp2_cdef
 
Channel descriptions and number of descriptions More...
 
struct  opj_jp2_cmap_comp
 
Component mappings: channel index, mapping type, palette index More...
 
struct  opj_jp2_pclr
 
Palette data: table entries, palette columns More...
 
struct  opj_jp2_color
 
Collector for ICC profile, palette, component mapping, channel description More...
 
struct  opj_jp2_comps
 
JP2 component More...
 
struct  opj_jp2
 
JPEG-2000 file format reader/writer More...
 
struct  opj_jp2_box
 
JP2 Box More...
 
struct  opj_jp2_header_handler
 
struct  opj_jp2_img_header_writer_handler
 

Macros

#define OPJ_BOX_SIZE   1024
 
#define OPJ_UNUSED(x)   (void)x
 
#define JP2_JP   0x6a502020
 JPEG 2000 signature box. More...
 
#define JP2_FTYP   0x66747970
 File type box. More...
 
#define JP2_JP2H   0x6a703268
 JP2 header box (super-box) More...
 
#define JP2_IHDR   0x69686472
 Image header box. More...
 
#define JP2_COLR   0x636f6c72
 Colour specification box. More...
 
#define JP2_JP2C   0x6a703263
 Contiguous codestream box. More...
 
#define JP2_URL   0x75726c20
 Data entry URL box. More...
 
#define JP2_PCLR   0x70636c72
 Palette box. More...
 
#define JP2_CMAP   0x636d6170
 Component Mapping box. More...
 
#define JP2_CDEF   0x63646566
 Channel Definition box. More...
 
#define JP2_DTBL   0x6474626c
 Data Reference box. More...
 
#define JP2_BPCC   0x62706363
 Bits per component box. More...
 
#define JP2_JP2   0x6a703220
 File type fields. More...
 

Typedefs

typedef struct opj_jp2_cdef_info opj_jp2_cdef_info_t
 
Channel description: channel index, type, association More...
 
typedef struct opj_jp2_cdef opj_jp2_cdef_t
 
Channel descriptions and number of descriptions More...
 
typedef struct opj_jp2_cmap_comp opj_jp2_cmap_comp_t
 
Component mappings: channel index, mapping type, palette index More...
 
typedef struct opj_jp2_pclr opj_jp2_pclr_t
 
Palette data: table entries, palette columns More...
 
typedef struct opj_jp2_color opj_jp2_color_t
 
Collector for ICC profile, palette, component mapping, channel description More...
 
typedef struct opj_jp2_comps opj_jp2_comps_t
 
JP2 component More...
 
typedef struct opj_jp2 opj_jp2_t
 
JPEG-2000 file format reader/writer More...
 
typedef struct opj_jp2_box opj_jp2_box_t
 
JP2 Box More...
 
typedef struct opj_jp2_header_handler opj_jp2_header_handler_t
 
typedef struct opj_jp2_img_header_writer_handler opj_jp2_img_header_writer_handler_t
 

Enumerations

enum  JP2_STATE {
  JP2_STATE_NONE = 0x0, JP2_STATE_SIGNATURE = 0x1, JP2_STATE_FILE_TYPE = 0x2, JP2_STATE_HEADER = 0x4,
  JP2_STATE_CODESTREAM = 0x8, JP2_STATE_END_CODESTREAM = 0x10, JP2_STATE_UNKNOWN = 0x7fffffff
}
 < Resolution box (super-box) More...
 
enum  JP2_IMG_STATE { JP2_IMG_STATE_NONE = 0x0, JP2_IMG_STATE_UNKNOWN = 0x7fffffff }
 

Local static functions

static OPJ_BOOL opj_jp2_read_ihdr (opj_jp2_t *jp2, OPJ_BYTE *p_image_header_data, OPJ_UINT32 p_image_header_size, opj_event_mgr_t *p_manager)
 Reads a IHDR box - Image Header box. More...
 
static OPJ_BYTEopj_jp2_write_ihdr (opj_jp2_t *jp2, OPJ_UINT32 *p_nb_bytes_written)
 Writes the Image Header box - Image Header box. More...
 
static OPJ_BYTEopj_jp2_write_bpcc (opj_jp2_t *jp2, OPJ_UINT32 *p_nb_bytes_written)
 Writes the Bit per Component box. More...
 
static OPJ_BOOL opj_jp2_read_bpcc (opj_jp2_t *jp2, OPJ_BYTE *p_bpc_header_data, OPJ_UINT32 p_bpc_header_size, opj_event_mgr_t *p_manager)
 Reads a Bit per Component box. More...
 
static OPJ_BOOL opj_jp2_read_cdef (opj_jp2_t *jp2, OPJ_BYTE *p_cdef_header_data, OPJ_UINT32 p_cdef_header_size, opj_event_mgr_t *p_manager)
 
static void opj_jp2_apply_cdef (opj_image_t *image, opj_jp2_color_t *color, opj_event_mgr_t *)
 
static OPJ_BYTEopj_jp2_write_cdef (opj_jp2_t *jp2, OPJ_UINT32 *p_nb_bytes_written)
 Writes the Channel Definition box. More...
 
static OPJ_BYTEopj_jp2_write_colr (opj_jp2_t *jp2, OPJ_UINT32 *p_nb_bytes_written)
 Writes the Colour Specification box. More...
 
static OPJ_BOOL opj_jp2_write_ftyp (opj_jp2_t *jp2, opj_stream_private_t *cio, opj_event_mgr_t *p_manager)
 Writes a FTYP box - File type box. More...
 
static OPJ_BOOL opj_jp2_read_ftyp (opj_jp2_t *jp2, OPJ_BYTE *p_header_data, OPJ_UINT32 p_header_size, opj_event_mgr_t *p_manager)
 Reads a a FTYP box - File type box. More...
 
static OPJ_BOOL opj_jp2_skip_jp2c (opj_jp2_t *jp2, opj_stream_private_t *stream, opj_event_mgr_t *p_manager)
 
static OPJ_BOOL opj_jp2_read_jp2h (opj_jp2_t *jp2, OPJ_BYTE *p_header_data, OPJ_UINT32 p_header_size, opj_event_mgr_t *p_manager)
 Reads the Jpeg2000 file Header box - JP2 Header box (warning, this is a super box). More...
 
static OPJ_BOOL opj_jp2_write_jp2h (opj_jp2_t *jp2, opj_stream_private_t *stream, opj_event_mgr_t *p_manager)
 Writes the Jpeg2000 file Header box - JP2 Header box (warning, this is a super box). More...
 
static OPJ_BOOL opj_jp2_write_jp2c (opj_jp2_t *jp2, opj_stream_private_t *cio, opj_event_mgr_t *p_manager)
 Writes the Jpeg2000 codestream Header box - JP2C Header box. More...
 
static OPJ_BOOL opj_jp2_read_jp (opj_jp2_t *jp2, OPJ_BYTE *p_header_data, OPJ_UINT32 p_header_size, opj_event_mgr_t *p_manager)
 Reads a jpeg2000 file signature box. More...
 
static OPJ_BOOL opj_jp2_write_jp (opj_jp2_t *jp2, opj_stream_private_t *cio, opj_event_mgr_t *p_manager)
 Writes a jpeg2000 file signature box. More...
 
static OPJ_BOOL opj_jp2_apply_pclr (opj_image_t *image, opj_jp2_color_t *color, opj_event_mgr_t *p_manager)
 
Apply collected palette data More...
 
static void opj_jp2_free_pclr (opj_jp2_color_t *color)
 
static OPJ_BOOL opj_jp2_read_pclr (opj_jp2_t *jp2, OPJ_BYTE *p_pclr_header_data, OPJ_UINT32 p_pclr_header_size, opj_event_mgr_t *p_manager)
 Collect palette data. More...
 
static OPJ_BOOL opj_jp2_read_cmap (opj_jp2_t *jp2, OPJ_BYTE *p_cmap_header_data, OPJ_UINT32 p_cmap_header_size, opj_event_mgr_t *p_manager)
 Collect component mapping data. More...
 
static OPJ_BOOL opj_jp2_read_colr (opj_jp2_t *jp2, OPJ_BYTE *p_colr_header_data, OPJ_UINT32 p_colr_header_size, opj_event_mgr_t *p_manager)
 Reads the Color Specification box. More...
 

Exported functions

void opj_jp2_setup_decoder (opj_jp2_t *jp2, opj_dparameters_t *parameters)
 
Setup the decoder decoding parameters using user parameters. More...
 
void opj_jp2_decoder_set_strict_mode (opj_jp2_t *jp2, OPJ_BOOL strict)
 
Set the strict mode parameter. More...
 
OPJ_BOOL opj_jp2_set_threads (opj_jp2_t *jp2, OPJ_UINT32 num_threads)
 Allocates worker threads for the compressor/decompressor. More...
 
OPJ_BOOL opj_jp2_decode (opj_jp2_t *jp2, opj_stream_private_t *p_stream, opj_image_t *p_image, opj_event_mgr_t *p_manager)
 Decode an image from a JPEG-2000 file stream. More...
 
OPJ_BOOL opj_jp2_setup_encoder (opj_jp2_t *jp2, opj_cparameters_t *parameters, opj_image_t *image, opj_event_mgr_t *p_manager)
 Setup the encoder parameters using the current image and using user parameters. More...
 
OPJ_BOOL opj_jp2_encode (opj_jp2_t *jp2, opj_stream_private_t *stream, opj_event_mgr_t *p_manager)
 
Encode an image into a JPEG-2000 file stream More...
 
OPJ_BOOL opj_jp2_start_compress (opj_jp2_t *jp2, opj_stream_private_t *stream, opj_image_t *p_image, opj_event_mgr_t *p_manager)
 Starts a compression scheme, i.e. More...
 
OPJ_BOOL opj_jp2_end_compress (opj_jp2_t *jp2, opj_stream_private_t *cio, opj_event_mgr_t *p_manager)
 Ends the compression procedures and possibiliy add data to be read after the codestream. More...
 
OPJ_BOOL opj_jp2_end_decompress (opj_jp2_t *jp2, opj_stream_private_t *cio, opj_event_mgr_t *p_manager)
 Ends the decompression procedures and possibiliy add data to be read after the codestream. More...
 
OPJ_BOOL opj_jp2_read_header (opj_stream_private_t *p_stream, opj_jp2_t *jp2, opj_image_t **p_image, opj_event_mgr_t *p_manager)
 Reads a jpeg2000 file header structure. More...
 
OPJ_BOOL opj_jp2_set_decoded_components (opj_jp2_t *jp2, OPJ_UINT32 numcomps, const OPJ_UINT32 *comps_indices, opj_event_mgr_t *p_manager)
 Sets the indices of the components to decode. More...
 
OPJ_BOOL opj_jp2_read_tile_header (opj_jp2_t *p_jp2, OPJ_UINT32 *p_tile_index, OPJ_UINT32 *p_data_size, OPJ_INT32 *p_tile_x0, OPJ_INT32 *p_tile_y0, OPJ_INT32 *p_tile_x1, OPJ_INT32 *p_tile_y1, OPJ_UINT32 *p_nb_comps, OPJ_BOOL *p_go_on, opj_stream_private_t *p_stream, opj_event_mgr_t *p_manager)
 Reads a tile header. More...
 
OPJ_BOOL opj_jp2_write_tile (opj_jp2_t *p_jp2, OPJ_UINT32 p_tile_index, OPJ_BYTE *p_data, OPJ_UINT32 p_data_size, opj_stream_private_t *p_stream, opj_event_mgr_t *p_manager)
 Writes a tile. More...
 
OPJ_BOOL opj_jp2_decode_tile (opj_jp2_t *p_jp2, OPJ_UINT32 p_tile_index, OPJ_BYTE *p_data, OPJ_UINT32 p_data_size, opj_stream_private_t *p_stream, opj_event_mgr_t *p_manager)
 Decode tile data. More...
 
opj_jp2_topj_jp2_create (OPJ_BOOL p_is_decoder)
 Creates a jpeg2000 file decompressor. More...
 
void opj_jp2_destroy (opj_jp2_t *jp2)
 
Destroy a JP2 decompressor handle More...
 
OPJ_BOOL opj_jp2_set_decode_area (opj_jp2_t *p_jp2, opj_image_t *p_image, OPJ_INT32 p_start_x, OPJ_INT32 p_start_y, OPJ_INT32 p_end_x, OPJ_INT32 p_end_y, opj_event_mgr_t *p_manager)
 Sets the given area to be decoded. More...
 
OPJ_BOOL opj_jp2_get_tile (opj_jp2_t *p_jp2, opj_stream_private_t *p_stream, opj_image_t *p_image, opj_event_mgr_t *p_manager, OPJ_UINT32 tile_index)
 
OPJ_BOOL opj_jp2_set_decoded_resolution_factor (opj_jp2_t *p_jp2, OPJ_UINT32 res_factor, opj_event_mgr_t *p_manager)
 
OPJ_BOOL opj_jp2_encoder_set_extra_options (opj_jp2_t *p_jp2, const char *const *p_options, opj_event_mgr_t *p_manager)
 Specify extra options for the encoder. More...
 
void jp2_dump (opj_jp2_t *p_jp2, OPJ_INT32 flag, FILE *out_stream)
 Dump some elements from the JP2 decompression structure . More...
 
opj_codestream_info_v2_tjp2_get_cstr_info (opj_jp2_t *p_jp2)
 Get the codestream info from a JPEG2000 codec. More...
 
opj_codestream_index_tjp2_get_cstr_index (opj_jp2_t *p_jp2)
 Get the codestream index from a JPEG2000 codec. More...
 

Detailed Description

Macro Definition Documentation

◆ JP2_BPCC

#define JP2_BPCC   0x62706363

Bits per component box.

Referenced by opj_jp2_write_bpcc().

◆ JP2_CDEF

#define JP2_CDEF   0x63646566

Channel Definition box.

Referenced by opj_jp2_write_cdef().

◆ JP2_CMAP

#define JP2_CMAP   0x636d6170

Component Mapping box.

◆ JP2_COLR

#define JP2_COLR   0x636f6c72

Colour specification box.

Referenced by opj_jp2_write_colr().

◆ JP2_DTBL

#define JP2_DTBL   0x6474626c

Data Reference box.

◆ JP2_FTYP

#define JP2_FTYP   0x66747970

File type box.

Referenced by opj_jp2_write_ftyp().

◆ JP2_IHDR

#define JP2_IHDR   0x69686472

Image header box.

Referenced by opj_jp2_read_jp2h(), and opj_jp2_write_ihdr().

◆ JP2_JP

#define JP2_JP   0x6a502020

JPEG 2000 signature box.

Referenced by opj_jp2_write_jp().

◆ JP2_JP2

#define JP2_JP2   0x6a703220

File type fields.

Referenced by opj_jp2_setup_encoder().

◆ JP2_JP2C

#define JP2_JP2C   0x6a703263

Contiguous codestream box.

Referenced by opj_jp2_read_header_procedure(), and opj_jp2_write_jp2c().

◆ JP2_JP2H

#define JP2_JP2H   0x6a703268

JP2 header box (super-box)

Referenced by opj_jp2_write_jp2h().

◆ JP2_PCLR

#define JP2_PCLR   0x70636c72

Palette box.

◆ JP2_URL

#define JP2_URL   0x75726c20

Data entry URL box.

◆ OPJ_BOX_SIZE

#define OPJ_BOX_SIZE   1024

◆ OPJ_UNUSED

#define OPJ_UNUSED (   x)    (void)x

Typedef Documentation

◆ opj_jp2_box_t

typedef struct opj_jp2_box opj_jp2_box_t


JP2 Box

◆ opj_jp2_cdef_info_t


Channel description: channel index, type, association

◆ opj_jp2_cdef_t

typedef struct opj_jp2_cdef opj_jp2_cdef_t


Channel descriptions and number of descriptions

◆ opj_jp2_cmap_comp_t


Component mappings: channel index, mapping type, palette index

◆ opj_jp2_color_t


Collector for ICC profile, palette, component mapping, channel description

◆ opj_jp2_comps_t


JP2 component

◆ opj_jp2_header_handler_t

◆ opj_jp2_img_header_writer_handler_t

◆ opj_jp2_pclr_t

typedef struct opj_jp2_pclr opj_jp2_pclr_t


Palette data: table entries, palette columns

◆ opj_jp2_t

typedef struct opj_jp2 opj_jp2_t


JPEG-2000 file format reader/writer

Enumeration Type Documentation

◆ JP2_IMG_STATE

Enumerator
JP2_IMG_STATE_NONE 
JP2_IMG_STATE_UNKNOWN 

◆ JP2_STATE

enum JP2_STATE

< Resolution box (super-box)

< Intellectual property box < XML box < UUID box < UUID info box (super-box) < UUID list box

Enumerator
JP2_STATE_NONE 
JP2_STATE_SIGNATURE 
JP2_STATE_FILE_TYPE 
JP2_STATE_HEADER 
JP2_STATE_CODESTREAM 
JP2_STATE_END_CODESTREAM 
JP2_STATE_UNKNOWN 

Function Documentation

◆ jp2_dump()

void jp2_dump ( opj_jp2_t p_jp2,
OPJ_INT32  flag,
FILE *  out_stream 
)

Dump some elements from the JP2 decompression structure .

Parameters
p_jp2the jp2 codec.
flagflag to describe what elements are dump.
out_streamoutput stream where dump the elements.

References opj_jp2::j2k, and j2k_dump().

Referenced by opj_create_decompress().

◆ jp2_get_cstr_index()

opj_codestream_index_t* jp2_get_cstr_index ( opj_jp2_t p_jp2)

Get the codestream index from a JPEG2000 codec.

Parameters
p_jp2jp2 codec.
Returns
the codestream index extract from the jpg2000 codec

References opj_jp2::j2k, and j2k_get_cstr_index().

Referenced by opj_create_decompress().

◆ jp2_get_cstr_info()

opj_codestream_info_v2_t* jp2_get_cstr_info ( opj_jp2_t p_jp2)

Get the codestream info from a JPEG2000 codec.

Parameters
p_jp2jp2 codec.
Returns
the codestream information extract from the jpg2000 codec

References opj_jp2::j2k, and j2k_get_cstr_info().

Referenced by opj_create_decompress().

◆ opj_jp2_apply_cdef()

static void opj_jp2_apply_cdef ( opj_image_t image,
opj_jp2_color_t color,
opj_event_mgr_t manager 
)
static

◆ opj_jp2_apply_pclr()

static OPJ_BOOL opj_jp2_apply_pclr ( opj_image_t image,
opj_jp2_color_t color,
opj_event_mgr_t p_manager 
)
static

◆ opj_jp2_create()

opj_jp2_t* opj_jp2_create ( OPJ_BOOL  p_is_decoder)

◆ opj_jp2_decode()

OPJ_BOOL opj_jp2_decode ( opj_jp2_t jp2,
opj_stream_private_t p_stream,
opj_image_t p_image,
opj_event_mgr_t p_manager 
)

Decode an image from a JPEG-2000 file stream.

Parameters
jp2JP2 decompressor handle
p_streamFIXME DOC
p_imageFIXME DOC
p_managerFIXME DOC
Returns
Returns a decoded image if successful, returns NULL otherwise

References EVT_ERROR, opj_jp2::j2k, opj_event_msg(), OPJ_FALSE, opj_j2k_decode(), and opj_jp2_apply_color_postprocessing().

Referenced by opj_create_decompress().

◆ opj_jp2_decode_tile()

OPJ_BOOL opj_jp2_decode_tile ( opj_jp2_t p_jp2,
OPJ_UINT32  p_tile_index,
OPJ_BYTE p_data,
OPJ_UINT32  p_data_size,
opj_stream_private_t p_stream,
opj_event_mgr_t p_manager 
)

Decode tile data.

Parameters
p_jp2the jpeg2000 codec.
p_tile_indexFIXME DOC
p_dataFIXME DOC
p_data_sizeFIXME DOC
p_streamthe stream to write data to.
p_managerthe user event manager.
Returns
FIXME DOC

References opj_jp2::j2k, and opj_j2k_decode_tile().

Referenced by opj_create_decompress().

◆ opj_jp2_decoder_set_strict_mode()

void opj_jp2_decoder_set_strict_mode ( opj_jp2_t jp2,
OPJ_BOOL  strict 
)


Set the strict mode parameter.

When strict mode is enabled, the entire bitstream must be decoded or an error is returned. When it is disabled, the decoder will decode partial bitstreams.

Parameters
jp2JP2 decompressor handle
strictOPJ_TRUE for strict mode

References opj_jp2::j2k, and opj_j2k_decoder_set_strict_mode().

Referenced by opj_create_decompress().

◆ opj_jp2_destroy()

void opj_jp2_destroy ( opj_jp2_t jp2)

◆ opj_jp2_encode()

OPJ_BOOL opj_jp2_encode ( opj_jp2_t jp2,
opj_stream_private_t stream,
opj_event_mgr_t p_manager 
)


Encode an image into a JPEG-2000 file stream

Parameters
jp2JP2 compressor handle
streamOutput buffer stream
p_managerevent manager
Returns
Returns true if successful, returns false otherwise

References opj_jp2::j2k, and opj_j2k_encode().

Referenced by opj_create_compress().

◆ opj_jp2_encoder_set_extra_options()

OPJ_BOOL opj_jp2_encoder_set_extra_options ( opj_jp2_t p_jp2,
const char *const *  p_options,
opj_event_mgr_t p_manager 
)

Specify extra options for the encoder.

Parameters
p_jp2the jpeg2000 codec.
p_optionsoptions
p_managerthe user event manager
See also
opj_encoder_set_extra_options() for more details.

References opj_jp2::j2k, and opj_j2k_encoder_set_extra_options().

Referenced by opj_create_compress().

◆ opj_jp2_end_compress()

OPJ_BOOL opj_jp2_end_compress ( opj_jp2_t jp2,
opj_stream_private_t cio,
opj_event_mgr_t p_manager 
)

Ends the compression procedures and possibiliy add data to be read after the codestream.

References opj_jp2::j2k, opj_jp2::m_procedure_list, OPJ_FALSE, opj_j2k_end_compress(), opj_jp2_exec(), and opj_jp2_setup_end_header_writing().

Referenced by opj_create_compress().

◆ opj_jp2_end_decompress()

OPJ_BOOL opj_jp2_end_decompress ( opj_jp2_t jp2,
opj_stream_private_t cio,
opj_event_mgr_t p_manager 
)

Ends the decompression procedures and possibiliy add data to be read after the codestream.

References opj_jp2::j2k, opj_jp2::m_procedure_list, OPJ_FALSE, opj_j2k_end_decompress(), opj_jp2_exec(), and opj_jp2_setup_end_header_reading().

Referenced by opj_create_decompress().

◆ opj_jp2_free_pclr()

static void opj_jp2_free_pclr ( opj_jp2_color_t color)
static

◆ opj_jp2_get_tile()

OPJ_BOOL opj_jp2_get_tile ( opj_jp2_t p_jp2,
opj_stream_private_t p_stream,
opj_image_t p_image,
opj_event_mgr_t p_manager,
OPJ_UINT32  tile_index 
)

◆ opj_jp2_read_bpcc()

static OPJ_BOOL opj_jp2_read_bpcc ( opj_jp2_t jp2,
OPJ_BYTE p_bpc_header_data,
OPJ_UINT32  p_bpc_header_size,
opj_event_mgr_t p_manager 
)
static

Reads a Bit per Component box.

Parameters
p_bpc_header_datapointer to actual data (already read from file)
jp2the jpeg2000 file codec.
p_bpc_header_sizethe size of the bpc header
p_managerthe user event manager.
Returns
true if the bpc header is valid, false else.

References opj_jp2::bpc, opj_jp2_comps::bpcc, opj_jp2::comps, EVT_ERROR, EVT_WARNING, opj_jp2::numcomps, opj_event_msg(), OPJ_FALSE, opj_read_bytes, and OPJ_TRUE.

◆ opj_jp2_read_cdef()

static OPJ_BOOL opj_jp2_read_cdef ( opj_jp2_t jp2,
OPJ_BYTE p_cdef_header_data,
OPJ_UINT32  p_cdef_header_size,
opj_event_mgr_t p_manager 
)
static

◆ opj_jp2_read_cmap()

static OPJ_BOOL opj_jp2_read_cmap ( opj_jp2_t jp2,
OPJ_BYTE p_cmap_header_data,
OPJ_UINT32  p_cmap_header_size,
opj_event_mgr_t p_manager 
)
static

Collect component mapping data.

Parameters
jp2JP2 handle
p_cmap_header_dataFIXME DOC
p_cmap_header_sizeFIXME DOC
p_managerFIXME DOC
Returns
Returns true if successful, returns false otherwise

References opj_jp2_pclr::cmap, opj_jp2_cmap_comp::cmp, opj_jp2::color, EVT_ERROR, opj_jp2_color::jp2_pclr, opj_jp2_cmap_comp::mtyp, opj_jp2_pclr::nr_channels, opj_event_msg(), OPJ_FALSE, opj_malloc(), opj_read_bytes, OPJ_TRUE, and opj_jp2_cmap_comp::pcol.

◆ opj_jp2_read_colr()

static OPJ_BOOL opj_jp2_read_colr ( opj_jp2_t jp2,
OPJ_BYTE p_colr_header_data,
OPJ_UINT32  p_colr_header_size,
opj_event_mgr_t p_manager 
)
static

Reads the Color Specification box.

Parameters
p_colr_header_datapointer to actual data (already read from file)
jp2the jpeg2000 file codec.
p_colr_header_sizethe size of the color header
p_managerthe user event manager.
Returns
true if the bpc header is valid, false else.

References opj_jp2::approx, opj_jp2::color, opj_jp2::enumcs, EVT_ERROR, EVT_INFO, EVT_WARNING, opj_jp2_color::icc_profile_buf, opj_jp2_color::icc_profile_len, opj_jp2_color::jp2_has_colr, opj_jp2::meth, opj_calloc(), opj_event_msg(), OPJ_FALSE, opj_malloc(), opj_read_bytes, OPJ_TRUE, and opj_jp2::precedence.

◆ opj_jp2_read_ftyp()

static OPJ_BOOL opj_jp2_read_ftyp ( opj_jp2_t jp2,
OPJ_BYTE p_header_data,
OPJ_UINT32  p_header_size,
opj_event_mgr_t p_manager 
)
static

Reads a a FTYP box - File type box.

Parameters
p_header_datathe data contained in the FTYP box.
jp2the jpeg2000 file codec.
p_header_sizethe size of the data contained in the FTYP box.
p_managerthe user event manager.
Returns
true if the FTYP box is valid.

References opj_jp2::brand, opj_jp2::cl, EVT_ERROR, opj_jp2::jp2_state, JP2_STATE_FILE_TYPE, JP2_STATE_SIGNATURE, opj_jp2::minversion, opj_jp2::numcl, opj_calloc(), opj_event_msg(), OPJ_FALSE, opj_read_bytes, and OPJ_TRUE.

◆ opj_jp2_read_header()

OPJ_BOOL opj_jp2_read_header ( opj_stream_private_t p_stream,
opj_jp2_t jp2,
opj_image_t **  p_image,
opj_event_mgr_t p_manager 
)

◆ opj_jp2_read_ihdr()

static OPJ_BOOL opj_jp2_read_ihdr ( opj_jp2_t jp2,
OPJ_BYTE p_image_header_data,
OPJ_UINT32  p_image_header_size,
opj_event_mgr_t p_manager 
)
static

Reads a IHDR box - Image Header box.

Parameters
p_image_header_datapointer to actual data (already read from file)
jp2the jpeg2000 file codec.
p_image_header_sizethe size of the image header
p_managerthe user event manager.
Returns
true if the image header is valid, false else.

References opj_cp::allow_different_bit_depth_sign, opj_jp2::bpc, opj_jp2::C, opj_jp2::comps, EVT_ERROR, EVT_INFO, EVT_WARNING, opj_jp2::h, opj_jp2::has_ihdr, opj_j2k::ihdr_h, opj_j2k::ihdr_w, opj_jp2::IPR, opj_jp2::j2k, opj_j2k::m_cp, opj_jp2::numcomps, opj_calloc(), opj_event_msg(), OPJ_FALSE, opj_read_bytes, OPJ_TRUE, opj_jp2::UnkC, and opj_jp2::w.

◆ opj_jp2_read_jp()

static OPJ_BOOL opj_jp2_read_jp ( opj_jp2_t jp2,
OPJ_BYTE p_header_data,
OPJ_UINT32  p_header_size,
opj_event_mgr_t p_manager 
)
static

Reads a jpeg2000 file signature box.

Parameters
p_header_datathe data contained in the signature box.
jp2the jpeg2000 file codec.
p_header_sizethe size of the data contained in the signature box.
p_managerthe user event manager.
Returns
true if the file signature box is valid.

References EVT_ERROR, opj_jp2::jp2_state, JP2_STATE_NONE, JP2_STATE_SIGNATURE, opj_event_msg(), OPJ_FALSE, opj_read_bytes, and OPJ_TRUE.

◆ opj_jp2_read_jp2h()

static OPJ_BOOL opj_jp2_read_jp2h ( opj_jp2_t jp2,
OPJ_BYTE p_header_data,
OPJ_UINT32  p_header_size,
opj_event_mgr_t p_manager 
)
static

Reads the Jpeg2000 file Header box - JP2 Header box (warning, this is a super box).

Parameters
p_header_datathe data contained in the file header box.
jp2the jpeg2000 file codec.
p_header_sizethe size of the data contained in the file header box.
p_managerthe user event manager.
Returns
true if the JP2 Header box was successfully recognized.

References EVT_ERROR, opj_jp2_header_handler::handler, opj_jp2::has_jp2h, JP2_IHDR, opj_jp2::jp2_img_state, JP2_IMG_STATE_NONE, JP2_IMG_STATE_UNKNOWN, opj_jp2::jp2_state, JP2_STATE_FILE_TYPE, JP2_STATE_HEADER, opj_jp2_box::length, opj_event_msg(), OPJ_FALSE, opj_jp2_img_find_handler(), opj_jp2_read_boxhdr_char(), OPJ_TRUE, and opj_jp2_box::type.

◆ opj_jp2_read_pclr()

static OPJ_BOOL opj_jp2_read_pclr ( opj_jp2_t jp2,
OPJ_BYTE p_pclr_header_data,
OPJ_UINT32  p_pclr_header_size,
opj_event_mgr_t p_manager 
)
static

Collect palette data.

Parameters
jp2JP2 handle
p_pclr_header_dataFIXME DOC
p_pclr_header_sizeFIXME DOC
p_manager
Returns
Returns true if successful, returns false otherwise

References opj_jp2_pclr::channel_sign, opj_jp2_pclr::channel_size, opj_jp2_pclr::cmap, opj_jp2::color, opj_jp2_pclr::entries, EVT_ERROR, opj_jp2_color::jp2_pclr, opj_jp2_pclr::nr_channels, opj_jp2_pclr::nr_entries, opj_event_msg(), OPJ_FALSE, opj_free(), opj_malloc(), opj_read_bytes, and OPJ_TRUE.

◆ opj_jp2_read_tile_header()

OPJ_BOOL opj_jp2_read_tile_header ( opj_jp2_t p_jp2,
OPJ_UINT32 p_tile_index,
OPJ_UINT32 p_data_size,
OPJ_INT32 p_tile_x0,
OPJ_INT32 p_tile_y0,
OPJ_INT32 p_tile_x1,
OPJ_INT32 p_tile_y1,
OPJ_UINT32 p_nb_comps,
OPJ_BOOL p_go_on,
opj_stream_private_t p_stream,
opj_event_mgr_t p_manager 
)

Reads a tile header.

Parameters
p_jp2the jpeg2000 codec.
p_tile_indexFIXME DOC
p_data_sizeFIXME DOC
p_tile_x0FIXME DOC
p_tile_y0FIXME DOC
p_tile_x1FIXME DOC
p_tile_y1FIXME DOC
p_nb_compsFIXME DOC
p_go_onFIXME DOC
p_streamthe stream to write data to.
p_managerthe user event manager.

References opj_jp2::j2k, and opj_j2k_read_tile_header().

Referenced by opj_create_decompress().

◆ opj_jp2_set_decode_area()

OPJ_BOOL opj_jp2_set_decode_area ( opj_jp2_t p_jp2,
opj_image_t p_image,
OPJ_INT32  p_start_x,
OPJ_INT32  p_start_y,
OPJ_INT32  p_end_x,
OPJ_INT32  p_end_y,
opj_event_mgr_t p_manager 
)

Sets the given area to be decoded.

This function should be called right after opj_read_header and before any tile header reading.

Parameters
p_jp2the jpeg2000 codec.
p_imageFIXME DOC
p_start_xthe left position of the rectangle to decode (in image coordinates).
p_start_ythe up position of the rectangle to decode (in image coordinates).
p_end_xthe right position of the rectangle to decode (in image coordinates).
p_end_ythe bottom position of the rectangle to decode (in image coordinates).
p_managerthe user event manager
Returns
true if the area could be set.

References opj_jp2::j2k, and opj_j2k_set_decode_area().

Referenced by opj_create_decompress().

◆ opj_jp2_set_decoded_components()

OPJ_BOOL opj_jp2_set_decoded_components ( opj_jp2_t jp2,
OPJ_UINT32  numcomps,
const OPJ_UINT32 comps_indices,
opj_event_mgr_t p_manager 
)

Sets the indices of the components to decode.

Parameters
jp2JP2 decompressor handle
numcompsNumber of components to decode.
comps_indicesArray of num_compts indices (numbering starting at 0) corresponding to the components to decode.
p_managerEvent manager;
Returns
OPJ_TRUE in case of success.

References opj_jp2::j2k, and opj_j2k_set_decoded_components().

Referenced by opj_create_decompress().

◆ opj_jp2_set_decoded_resolution_factor()

OPJ_BOOL opj_jp2_set_decoded_resolution_factor ( opj_jp2_t p_jp2,
OPJ_UINT32  res_factor,
opj_event_mgr_t p_manager 
)

◆ opj_jp2_set_threads()

OPJ_BOOL opj_jp2_set_threads ( opj_jp2_t jp2,
OPJ_UINT32  num_threads 
)

Allocates worker threads for the compressor/decompressor.

Parameters
jp2JP2 decompressor handle
num_threadsNumber of threads.
Returns
OPJ_TRUE in case of success.

References opj_jp2::j2k, and opj_j2k_set_threads().

Referenced by opj_create_compress(), and opj_create_decompress().

◆ opj_jp2_setup_decoder()

void opj_jp2_setup_decoder ( opj_jp2_t jp2,
opj_dparameters_t parameters 
)


Setup the decoder decoding parameters using user parameters.

Decoding parameters are returned in jp2->j2k->cp.

Parameters
jp2JP2 decompressor handle
parametersdecompression parameters

References opj_jp2::color, opj_dparameters::flags, opj_jp2::ignore_pclr_cmap_cdef, opj_jp2::j2k, opj_jp2_color::jp2_has_colr, OPJ_DPARAMETERS_IGNORE_PCLR_CMAP_CDEF_FLAG, and opj_j2k_setup_decoder().

Referenced by opj_create_decompress().

◆ opj_jp2_setup_encoder()

OPJ_BOOL opj_jp2_setup_encoder ( opj_jp2_t jp2,
opj_cparameters_t parameters,
opj_image_t image,
opj_event_mgr_t p_manager 
)

◆ opj_jp2_skip_jp2c()

static OPJ_BOOL opj_jp2_skip_jp2c ( opj_jp2_t jp2,
opj_stream_private_t stream,
opj_event_mgr_t p_manager 
)
static

◆ opj_jp2_start_compress()

OPJ_BOOL opj_jp2_start_compress ( opj_jp2_t jp2,
opj_stream_private_t stream,
opj_image_t p_image,
opj_event_mgr_t p_manager 
)

Starts a compression scheme, i.e.

validates the codec parameters, writes the header.

Parameters
jp2the jpeg2000 file codec.
streamthe stream object.
p_imageFIXME DOC
p_managerFIXME DOC
Returns
true if the codec is valid.

References opj_jp2::j2k, opj_jp2::m_procedure_list, opj_jp2::m_validation_list, OPJ_FALSE, opj_j2k_start_compress(), opj_jp2_exec(), opj_jp2_setup_encoding_validation(), and opj_jp2_setup_header_writing().

Referenced by opj_create_compress().

◆ opj_jp2_write_bpcc()

static OPJ_BYTE * opj_jp2_write_bpcc ( opj_jp2_t jp2,
OPJ_UINT32 p_nb_bytes_written 
)
static

Writes the Bit per Component box.

Parameters
jp2jpeg2000 file codec.
p_nb_bytes_writtenpointer to store the nb of bytes written by the function.
Returns
the data being copied.

References opj_jp2_comps::bpcc, opj_jp2::comps, JP2_BPCC, opj_jp2::numcomps, opj_calloc(), and opj_write_bytes.

Referenced by opj_jp2_write_jp2h().

◆ opj_jp2_write_cdef()

static OPJ_BYTE * opj_jp2_write_cdef ( opj_jp2_t jp2,
OPJ_UINT32 p_nb_bytes_written 
)
static

Writes the Channel Definition box.

Parameters
jp2jpeg2000 file codec.
p_nb_bytes_writtenpointer to store the nb of bytes written by the function.
Returns
the data being copied.

References opj_jp2_cdef_info::asoc, opj_jp2_cdef_info::cn, opj_jp2::color, opj_jp2_cdef::info, JP2_CDEF, opj_jp2_color::jp2_cdef, opj_jp2_cdef::n, opj_malloc(), opj_write_bytes, and opj_jp2_cdef_info::typ.

Referenced by opj_jp2_write_jp2h().

◆ opj_jp2_write_colr()

static OPJ_BYTE * opj_jp2_write_colr ( opj_jp2_t jp2,
OPJ_UINT32 p_nb_bytes_written 
)
static

Writes the Colour Specification box.

Parameters
jp2jpeg2000 file codec.
p_nb_bytes_writtenpointer to store the nb of bytes written by the function.
Returns
the data being copied.

References opj_jp2::approx, opj_jp2::color, opj_jp2::enumcs, opj_jp2_color::icc_profile_buf, opj_jp2_color::icc_profile_len, JP2_COLR, opj_jp2::meth, opj_calloc(), opj_write_bytes, and opj_jp2::precedence.

Referenced by opj_jp2_write_jp2h().

◆ opj_jp2_write_ftyp()

static OPJ_BOOL opj_jp2_write_ftyp ( opj_jp2_t jp2,
opj_stream_private_t cio,
opj_event_mgr_t p_manager 
)
static

Writes a FTYP box - File type box.

Parameters
ciothe stream to write data to.
jp2the jpeg2000 file codec.
p_managerthe user event manager.
Returns
true if writing was successful.

References opj_jp2::brand, opj_jp2::cl, EVT_ERROR, JP2_FTYP, opj_jp2::minversion, opj_jp2::numcl, opj_calloc(), opj_event_msg(), OPJ_FALSE, opj_free(), opj_stream_write_data(), and opj_write_bytes.

Referenced by opj_jp2_setup_header_writing().

◆ opj_jp2_write_ihdr()

static OPJ_BYTE * opj_jp2_write_ihdr ( opj_jp2_t jp2,
OPJ_UINT32 p_nb_bytes_written 
)
static

Writes the Image Header box - Image Header box.

Parameters
jp2jpeg2000 file codec.
p_nb_bytes_writtenpointer to store the nb of bytes written by the function.
Returns
the data being copied.

References opj_jp2::bpc, opj_jp2::C, opj_jp2::h, opj_jp2::IPR, JP2_IHDR, opj_jp2::numcomps, opj_calloc(), opj_write_bytes, opj_jp2::UnkC, and opj_jp2::w.

Referenced by opj_jp2_write_jp2h().

◆ opj_jp2_write_jp()

static OPJ_BOOL opj_jp2_write_jp ( opj_jp2_t jp2,
opj_stream_private_t cio,
opj_event_mgr_t p_manager 
)
static

Writes a jpeg2000 file signature box.

Parameters
ciothe stream to write data to.
jp2the jpeg2000 file codec.
p_managerthe user event manager.
Returns
true if writing was successful.

References JP2_JP, OPJ_FALSE, opj_stream_write_data(), OPJ_TRUE, OPJ_UNUSED, and opj_write_bytes.

Referenced by opj_jp2_setup_header_writing().

◆ opj_jp2_write_jp2c()

static OPJ_BOOL opj_jp2_write_jp2c ( opj_jp2_t jp2,
opj_stream_private_t cio,
opj_event_mgr_t p_manager 
)
static

Writes the Jpeg2000 codestream Header box - JP2C Header box.

This function must be called AFTER the coding has been done.

Parameters
ciothe stream to write data to.
jp2the jpeg2000 file codec.
p_manageruser event manager.
Returns
true if writing was successful.

References EVT_ERROR, opj_jp2::j2k_codestream_offset, JP2_JP2C, opj_event_msg(), OPJ_FALSE, opj_stream_has_seek(), opj_stream_seek(), opj_stream_tell(), opj_stream_write_data(), OPJ_TRUE, and opj_write_bytes.

Referenced by opj_jp2_setup_end_header_writing().

◆ opj_jp2_write_jp2h()

static OPJ_BOOL opj_jp2_write_jp2h ( opj_jp2_t jp2,
opj_stream_private_t stream,
opj_event_mgr_t p_manager 
)
static

Writes the Jpeg2000 file Header box - JP2 Header box (warning, this is a super box).

Parameters
jp2the jpeg2000 file codec.
streamthe stream to write data to.
p_manageruser event manager.
Returns
true if writing was successful.

References opj_jp2::bpc, opj_jp2::color, EVT_ERROR, opj_jp2_img_header_writer_handler::handler, opj_jp2_color::jp2_cdef, JP2_JP2H, opj_jp2_img_header_writer_handler::m_data, opj_jp2_img_header_writer_handler::m_size, opj_event_msg(), OPJ_FALSE, opj_free(), opj_jp2_write_bpcc(), opj_jp2_write_cdef(), opj_jp2_write_colr(), opj_jp2_write_ihdr(), opj_stream_write_data(), OPJ_TRUE, and opj_write_bytes.

Referenced by opj_jp2_setup_header_writing().

◆ opj_jp2_write_tile()

OPJ_BOOL opj_jp2_write_tile ( opj_jp2_t p_jp2,
OPJ_UINT32  p_tile_index,
OPJ_BYTE p_data,
OPJ_UINT32  p_data_size,
opj_stream_private_t p_stream,
opj_event_mgr_t p_manager 
)

Writes a tile.

Parameters
p_jp2the jpeg2000 codec.
p_tile_indexFIXME DOC
p_dataFIXME DOC
p_data_sizeFIXME DOC
p_streamthe stream to write data to.
p_managerthe user event manager.

References opj_jp2::j2k, and opj_j2k_write_tile().

Referenced by opj_create_compress().