jp2.c File Reference

#include "opj_includes.h"

Defines

#define OPJ_BOX_SIZE   1024

Functions

static void opj_jp2_setup_end_header_writing (opj_jp2_t *jp2)
 Sets up the procedures to do on writing header after the codestream.
static void opj_jp2_setup_end_header_reading (opj_jp2_t *jp2)
 Sets up the procedures to do on reading header after the codestream.
static OPJ_BOOL opj_jp2_read_header_procedure (opj_jp2_t *jp2, opj_stream_private_t *stream, opj_event_mgr_t *p_manager)
 Reads a jpeg2000 file header structure.
static OPJ_BOOL opj_jp2_exec (opj_jp2_t *jp2, opj_procedure_list_t *p_procedure_list, opj_stream_private_t *stream, opj_event_mgr_t *p_manager)
 Excutes the given procedures on the given codec.
static OPJ_BOOL opj_jp2_read_boxhdr (opj_jp2_box_t *box, OPJ_UINT32 *p_number_bytes_read, opj_stream_private_t *cio, opj_event_mgr_t *p_manager)
 Reads a box header.
static void opj_jp2_setup_encoding_validation (opj_jp2_t *jp2)
 Sets up the validation ,i.e.
static void opj_jp2_setup_header_writing (opj_jp2_t *jp2)
 Sets up the procedures to do on writing header.
OPJ_BOOL opj_jp2_default_validation (opj_jp2_t *jp2, opj_stream_private_t *cio, opj_event_mgr_t *p_manager)
static const
opj_jp2_header_handler_t
opj_jp2_img_find_handler (OPJ_UINT32 p_id)
 Finds the image execution function related to the given box id.
static const
opj_jp2_header_handler_t
opj_jp2_find_handler (OPJ_UINT32 p_id)
 Finds the execution function related to the given box id.
static OPJ_BOOL opj_jp2_read_boxhdr_char (opj_jp2_box_t *box, OPJ_BYTE *p_data, OPJ_UINT32 *p_number_bytes_read, OPJ_UINT32 p_box_max_size, opj_event_mgr_t *p_manager)
 Reads a box header.
static void opj_jp2_setup_decoding_validation (opj_jp2_t *jp2)
 Sets up the validation ,i.e.
static void opj_jp2_setup_header_reading (opj_jp2_t *jp2)
 Sets up the procedures to do on reading header.
static OPJ_BOOL opj_jp2_check_color (opj_image_t *image, opj_jp2_color_t *color, opj_event_mgr_t *p_manager)
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.
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).
void opj_jp2_setup_decoder (opj_jp2_t *jp2, opj_dparameters_t *parameters)
 Setup the decoder decoding parameters using user parameters.
void 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.
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.
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.
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.
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.
static OPJ_BOOL opj_jpip_skip_iptr (opj_jp2_t *jp2, opj_stream_private_t *stream, opj_event_mgr_t *p_manager)
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.
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.
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.
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.
void opj_jp2_destroy (opj_jp2_t *jp2)
 Destroy a JP2 decompressor handle.
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.
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_topj_jp2_create (OPJ_BOOL p_is_decoder)
 Creates a jpeg2000 file decompressor.
void jp2_dump (opj_jp2_t *p_jp2, OPJ_INT32 flag, FILE *out_stream)
 Dump some elements from the JP2 decompression structure .
opj_codestream_index_tjp2_get_cstr_index (opj_jp2_t *p_jp2)
 Get the codestream index from a JPEG2000 codec.
opj_codestream_info_v2_tjp2_get_cstr_info (opj_jp2_t *p_jp2)
 Get the codestream info from a JPEG2000 codec.
OPJ_BOOL opj_jp2_set_decoded_resolution_factor (opj_jp2_t *p_jp2, OPJ_UINT32 res_factor, opj_event_mgr_t *p_manager)
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.
static OPJ_BYTEopj_jp2_write_ihdr (opj_jp2_t *jp2, OPJ_UINT32 *p_nb_bytes_written)
 Writes the Image Header box - Image Header box.
static OPJ_BYTEopj_jp2_write_bpcc (opj_jp2_t *jp2, OPJ_UINT32 *p_nb_bytes_written)
 Writes the Bit per Component box.
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.
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)
static OPJ_BYTEopj_jp2_write_colr (opj_jp2_t *jp2, OPJ_UINT32 *p_nb_bytes_written)
 Writes the Colour Specification box.
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.
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.
OPJ_BOOL opj_jp2_skip_jp2c (opj_jp2_t *jp2, opj_stream_private_t *cio, 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).
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.
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.
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.
static void opj_jp2_apply_pclr (opj_image_t *image, opj_jp2_color_t *color)
 Apply collected palette data.
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.
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.
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.

Variables

const opj_jp2_header_handler_t jp2_header []
const opj_jp2_header_handler_t jp2_img_header []

Function Documentation

static OPJ_BOOL opj_jp2_check_color ( opj_image_t image,
opj_jp2_color_t color,
opj_event_mgr_t p_manager 
) [static]

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

static OPJ_BOOL opj_jp2_exec ( opj_jp2_t jp2,
opj_procedure_list_t p_procedure_list,
opj_stream_private_t stream,
opj_event_mgr_t p_manager 
) [static]

Excutes the given procedures on the given codec.

Parameters:
p_procedure_list the list of procedures to execute
jp2 the jpeg2000 file codec to execute the procedures on.
stream the stream to execute the procedures on.
p_manager the user manager.
Returns:
true if all the procedures were successfully executed.

References opj_procedure_list_clear(), opj_procedure_list_get_first_procedure(), opj_procedure_list_get_nb_procedures(), and OPJ_TRUE.

Referenced by opj_jp2_end_compress(), opj_jp2_end_decompress(), opj_jp2_read_header(), and opj_jp2_start_compress().

const opj_jp2_header_handler_t * opj_jp2_find_handler ( OPJ_UINT32  p_id  )  [static]

Finds the execution function related to the given box id.

Parameters:
p_id the id of the handler to fetch.
Returns:
the given handler or NULL if it could not be found.

Referenced by opj_jp2_read_header_procedure().

static const opj_jp2_header_handler_t * opj_jp2_img_find_handler ( OPJ_UINT32  p_id  )  [static]

Finds the image execution function related to the given box id.

Parameters:
p_id the id of the handler to fetch.
Returns:
the given handler or NULL if it could not be found.
Parameters:
p_id the id of the handler to fetch.
Returns:
the given handler or 00 if it could not be found.

Referenced by opj_jp2_read_jp2h().

OPJ_BOOL opj_jp2_read_boxhdr ( opj_jp2_box_t box,
OPJ_UINT32 p_number_bytes_read,
opj_stream_private_t cio,
opj_event_mgr_t p_manager 
) [static]

Reads a box header.

The box is the way data is packed inside a jpeg2000 file structure.

Parameters:
cio the input stream to read data from.
box the box structure to fill.
p_number_bytes_read pointer to an int that will store the number of bytes read from the stream (shoul usually be 2).
p_manager user event manager.
Returns:
true if the box is reconized, false otherwise

References EVT_ERROR, opj_jp2_box::length, opj_event_msg(), OPJ_FALSE, opj_read_bytes, opj_stream_get_number_byte_left(), opj_stream_read_data(), OPJ_TRUE, and opj_jp2_box::type.

Referenced by opj_jp2_read_header_procedure().

OPJ_BOOL opj_jp2_read_boxhdr_char ( opj_jp2_box_t box,
OPJ_BYTE p_data,
OPJ_UINT32 p_number_bytes_read,
OPJ_UINT32  p_box_max_size,
opj_event_mgr_t p_manager 
) [static]

Reads a box header.

The box is the way data is packed inside a jpeg2000 file structure. Data is read from a character string

Parameters:
box the box structure to fill.
p_data the character string to read data from.
p_number_bytes_read pointer to an int that will store the number of bytes read from the stream (shoul usually be 2).
p_box_max_size the maximum number of bytes in the box.
p_manager FIXME DOC
Returns:
true if the box is reconized, false otherwise

References EVT_ERROR, opj_jp2_box::length, opj_event_msg(), OPJ_FALSE, opj_read_bytes, OPJ_TRUE, and opj_jp2_box::type.

Referenced by opj_jp2_read_jp2h().

OPJ_BOOL opj_jp2_read_header_procedure ( opj_jp2_t jp2,
opj_stream_private_t stream,
opj_event_mgr_t p_manager 
) [static]

Reads a jpeg2000 file header structure.

Parameters:
jp2 the jpeg2000 file header structure.
stream the stream to read data from.
p_manager the user event manager.
Returns:
true if the box is valid.

References EVT_ERROR, opj_jp2_header_handler::handler, JP2_JP2C, opj_jp2::jp2_state, JP2_STATE_CODESTREAM, JP2_STATE_HEADER, JP2_STATE_UNKNOWN, opj_jp2_box::length, OPJ_BOX_SIZE, opj_event_msg(), OPJ_FALSE, opj_free, opj_jp2_find_handler(), opj_jp2_read_boxhdr(), opj_malloc, opj_realloc, opj_stream_read_data(), opj_stream_skip(), OPJ_TRUE, and opj_jp2_box::type.

Referenced by opj_jp2_setup_end_header_reading(), and opj_jp2_setup_header_reading().

void opj_jp2_setup_decoding_validation ( opj_jp2_t jp2  )  [static]

Sets up the validation ,i.e.

adds the procedures to lauch to make sure the codec parameters are valid. Developpers wanting to extend the library can add their own validation procedures.

Referenced by opj_jp2_read_header().

void opj_jp2_setup_encoding_validation ( opj_jp2_t jp2  )  [static]

Sets up the validation ,i.e.

adds the procedures to lauch to make sure the codec parameters are valid. Developpers wanting to extend the library can add their own validation procedures.

References opj_jp2::m_validation_list, opj_jp2_default_validation(), and opj_procedure_list_add_procedure().

Referenced by opj_jp2_start_compress().

void opj_jp2_setup_end_header_reading ( opj_jp2_t jp2  )  [static]

Sets up the procedures to do on reading header after the codestream.

Developpers wanting to extend the library can add their own writing procedures.

References opj_jp2::m_procedure_list, opj_jp2_read_header_procedure(), and opj_procedure_list_add_procedure().

Referenced by opj_jp2_end_decompress().

void opj_jp2_setup_end_header_writing ( opj_jp2_t jp2  )  [static]

Sets up the procedures to do on writing header after the codestream.

Developpers wanting to extend the library can add their own writing procedures.

References opj_jp2::jpip_on, opj_jp2::m_procedure_list, opj_jp2_write_jp2c(), and opj_procedure_list_add_procedure().

Referenced by opj_jp2_end_compress().

void opj_jp2_setup_header_reading ( opj_jp2_t jp2  )  [static]

Sets up the procedures to do on reading header.

Developpers wanting to extend the library can add their own writing procedures.

References opj_jp2::m_procedure_list, opj_jp2_read_header_procedure(), and opj_procedure_list_add_procedure().

Referenced by opj_jp2_read_header().

void opj_jp2_setup_header_writing ( opj_jp2_t jp2  )  [static]

Sets up the procedures to do on writing header.

Developpers wanting to extend the library can add their own writing procedures.

References opj_jp2::jpip_on, opj_jp2::m_procedure_list, opj_jp2_skip_jp2c(), opj_jp2_write_ftyp(), opj_jp2_write_jp(), opj_jp2_write_jp2h(), opj_jpip_skip_iptr(), and opj_procedure_list_add_procedure().

Referenced by opj_jp2_start_compress().

static OPJ_BOOL opj_jpip_skip_iptr ( opj_jp2_t jp2,
opj_stream_private_t stream,
opj_event_mgr_t p_manager 
) [static]


Variable Documentation


Generated on Thu Jan 7 20:53:46 2016 for OpenJPEG by  doxygen 1.5.6