OpenJPEG 1.5.1
Data Structures | Macros | Typedefs
jp2.h File Reference

The JPEG-2000 file format Reader/Writer (JP2) More...

Go to the source code of this file.

Data Structures

struct  opj_jp2_cdef_info
 Channel description: channel index, type, assocation. 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...
 

Macros

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

Typedefs

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

Functions

Exported functions
void jp2_write_jp2h (opj_jp2_t *jp2, opj_cio_t *cio)
 Write the JP2H box - JP2 Header box (used in MJ2)
 
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)
 
opj_jp2_tjp2_create_decompress (opj_common_ptr cinfo)
 Creates a JP2 decompression structure.
 
void jp2_destroy_decompress (opj_jp2_t *jp2)
 Destroy a JP2 decompressor handle.
 
void jp2_setup_decoder (opj_jp2_t *jp2, opj_dparameters_t *parameters)
 Setup the decoder decoding parameters using user parameters.
 
opj_image_topj_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.
 
opj_jp2_tjp2_create_compress (opj_common_ptr cinfo)
 Creates a JP2 compression structure.
 
void jp2_destroy_compress (opj_jp2_t *jp2)
 Destroy a JP2 compressor handle.
 
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.
 
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.
 

Detailed Description

The JPEG-2000 file format Reader/Writer (JP2)

Macro Definition Documentation

◆ JP2_BPCC

#define JP2_BPCC   0x62706363

Bits per component box.

◆ JP2_CDEF

#define JP2_CDEF   0x63646566

Channel Definition box.

◆ JP2_CMAP

#define JP2_CMAP   0x636d6170

Component Mapping box.

◆ JP2_COLR

#define JP2_COLR   0x636f6c72

Colour specification box.

◆ JP2_DTBL

#define JP2_DTBL   0x6474626c

Data Reference box.

◆ JP2_FTYP

#define JP2_FTYP   0x66747970

File type box.

◆ JP2_IHDR

#define JP2_IHDR   0x69686472

Image header box.

◆ JP2_JP

#define JP2_JP   0x6a502020

JPEG 2000 signature box.

◆ JP2_JP2

#define JP2_JP2   0x6a703220

File type fields.

◆ JP2_JP2C

#define JP2_JP2C   0x6a703263

Contiguous codestream box.

◆ JP2_JP2H

#define JP2_JP2H   0x6a703268

JP2 header box.

◆ JP2_PCLR

#define JP2_PCLR   0x70636c72

Palette box.

◆ JP2_URL

#define JP2_URL   0x75726c20

URL box.

◆ JPIP_JPIP

#define JPIP_JPIP   0x6a706970

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, assocation.

◆ 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_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.

Function Documentation

◆ jp2_create_compress()

opj_jp2_t * jp2_create_compress ( opj_common_ptr  cinfo)

Creates a JP2 compression structure.

Parameters
cinfoCodec context info
Returns
Returns a handle to a JP2 compressor if successful, returns NULL otherwise

References opj_jp2::cinfo, opj_jp2::j2k, j2k_create_compress(), jp2_destroy_compress(), and opj_malloc.

Referenced by opj_create_compress().

◆ jp2_create_decompress()

opj_jp2_t * jp2_create_decompress ( opj_common_ptr  cinfo)

Creates a JP2 decompression structure.

Parameters
cinfoCodec context info
Returns
Returns a handle to a JP2 decompressor if successful, returns NULL otherwise

References opj_jp2::cinfo, opj_jp2::j2k, j2k_create_decompress(), jp2_destroy_decompress(), and opj_calloc.

Referenced by opj_create_decompress().

◆ jp2_destroy_compress()

void jp2_destroy_compress ( opj_jp2_t jp2)

Destroy a JP2 compressor handle.

Parameters
jp2JP2 compressor handle to destroy

References opj_jp2::cl, opj_jp2::comps, opj_jp2::j2k, j2k_destroy_compress(), and opj_free.

Referenced by jp2_create_compress(), and opj_destroy_compress().

◆ jp2_destroy_decompress()

void jp2_destroy_decompress ( opj_jp2_t jp2)

Destroy a JP2 decompressor handle.

Parameters
jp2JP2 decompressor handle to destroy

References opj_jp2::cl, opj_jp2::comps, opj_jp2::j2k, j2k_destroy_decompress(), and opj_free.

Referenced by jp2_create_decompress(), and opj_destroy_decompress().

◆ jp2_read_jp2h()

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)

Parameters
jp2JP2 handle
cioInput buffer stream
extCollector for profile, cdef and pclr data
Returns
Returns true if successful, returns false otherwise

References opj_cio::bp, opj_jp2::bpc, opj_jp2::cinfo, cio_seek(), cio_skip(), cio_tell(), opj_cio::end, EVT_ERROR, opj_jp2::ignore_pclr_cmap_cdef, opj_jp2_box::init_pos, JP2_CDEF, JP2_CMAP, JP2_COLR, opj_jp2_color::jp2_has_colr, JP2_JP2C, JP2_JP2H, JP2_PCLR, jp2_read_boxhdr(), jp2_read_bpcc(), jp2_read_cdef(), jp2_read_cmap(), jp2_read_colr(), jp2_read_ihdr(), jp2_read_pclr(), opj_jp2_box::length, opj_event_msg(), OPJ_FALSE, and opj_jp2_box::type.

Referenced by jp2_read_struct().

◆ jp2_setup_decoder()

void 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_dparameters::flags, opj_jp2::ignore_pclr_cmap_cdef, opj_jp2::j2k, j2k_setup_decoder(), and OPJ_DPARAMETERS_IGNORE_PCLR_CMAP_CDEF_FLAG.

Referenced by opj_setup_decoder().

◆ jp2_setup_encoder()

void jp2_setup_encoder ( opj_jp2_t jp2,
opj_cparameters_t parameters,
opj_image_t image 
)

◆ jp2_write_jp2h()

void jp2_write_jp2h ( opj_jp2_t jp2,
opj_cio_t cio 
)

Write the JP2H box - JP2 Header box (used in MJ2)

Parameters
jp2JP2 handle
cioOutput buffer stream

References opj_jp2::bpc, opj_jp2::cinfo, cio_seek(), cio_skip(), cio_tell(), cio_write(), EVT_ERROR, opj_jp2_box::init_pos, JP2_JP2H, jp2_write_bpcc(), jp2_write_colr(), jp2_write_ihdr(), opj_jp2_box::length, opj_event_msg(), and OPJ_FALSE.

Referenced by opj_jp2_encode().

◆ opj_jp2_decode()

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.

Parameters
jp2JP2 decompressor handle
cioInput buffer stream
cstr_infoCodestream information structure if required, NULL otherwise
Returns
Returns a decoded image if successful, returns NULL otherwise

References opj_jp2::cinfo, CLRSPC_GRAY, CLRSPC_SRGB, CLRSPC_SYCC, CLRSPC_UNKNOWN, opj_jp2_pclr::cmap, opj_image::color_space, opj_jp2::enumcs, EVT_ERROR, free_color_data(), opj_jp2_color::icc_profile_buf, opj_image::icc_profile_buf, opj_jp2_color::icc_profile_len, opj_image::icc_profile_len, opj_jp2::ignore_pclr_cmap_cdef, opj_jp2::j2k, j2k_decode(), jp2_apply_cdef(), jp2_apply_pclr(), opj_jp2_color::jp2_cdef, jp2_free_pclr(), opj_jp2_color::jp2_pclr, jp2_read_struct(), and opj_event_msg().

Referenced by opj_decode_with_info().

◆ opj_jp2_encode()

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.

Parameters
jp2JP2 compressor handle
cioOutput buffer stream
imageImage to encode
cstr_infoCodestream information structure if required, NULL otherwise
Returns
Returns true if successful, returns false otherwise

References opj_jp2::cinfo, cio_seek(), cio_skip(), cio_tell(), EVT_ERROR, jp2_write_ftyp(), jp2_write_jp(), jp2_write_jp2c(), jp2_write_jp2h(), opj_jp2::jpip_on, opj_event_msg(), OPJ_FALSE, OPJ_TRUE, write_cidx(), write_fidx(), and write_iptr().

Referenced by opj_encode_with_info().