OpenJPEG  1.5.1
Functions
jpwl.c File Reference
#include "opj_includes.h"

Functions

jpwl_esd_ms_tjpwl_esd_create (opj_j2k_t *j2k, int comps, unsigned char addrm, unsigned char ad_size, unsigned char senst, int se_size, int tileno, unsigned long int svalnum, void *sensval)
 create an EPC marker segment More...
 
int jpwl_markcomp (const void *arg1, const void *arg2)
 
this function is used to compare two JPWL markers based on

their relevant wishlist position More...

 
void jpwl_epb_write (opj_j2k_t *j2k, jpwl_epb_ms_t *epbmark, unsigned char *buf)
 write an EPB MS to a buffer More...
 
void jpwl_epc_write (opj_j2k_t *j2k, jpwl_epc_ms_t *epcmark, unsigned char *buf)
 write an EPC MS to a buffer More...
 
void jpwl_esd_write (opj_j2k_t *j2k, jpwl_esd_ms_t *esdmark, unsigned char *buf)
 write an ESD MS to a buffer More...
 
void jpwl_encode (opj_j2k_t *j2k, opj_cio_t *cio, opj_image_t *image)
 Encode according to JPWL specs. More...
 
void j2k_add_marker (opj_codestream_info_t *cstr_info, unsigned short int type, int pos, int len)
 
void jpwl_prepare_marks (opj_j2k_t *j2k, opj_cio_t *cio, opj_image_t *image)
 Prepare the list of JPWL markers, after the Part 1 codestream has been finalized (index struct is full) More...
 
void jpwl_dump_marks (opj_j2k_t *j2k, opj_cio_t *cio, opj_image_t *image)
 Dump the list of JPWL markers, after it has been prepared. More...
 
void j2k_read_epc (opj_j2k_t *j2k)
 Read the EPC marker (Error Protection Capability) More...
 
void j2k_write_epc (opj_j2k_t *j2k)
 Write the EPC marker (Error Protection Capability), BUT the DL field is always set to 0 (this simplifies the management of EPBs and it is openly stated in the standard as a possible value, mening that the information is not available) and the informative techniques are not yet implemented. More...
 
void j2k_read_epb (opj_j2k_t *j2k)
 Read the EPB marker (Error Protection Block) More...
 
void j2k_write_epb (opj_j2k_t *j2k)
 Write the EPB marker (Error Protection Block) More...
 
void j2k_read_esd (opj_j2k_t *j2k)
 Read the ESD marker (Error Sensitivity Descriptor) More...
 
void j2k_read_red (opj_j2k_t *j2k)
 Read the RED marker (Residual Error Descriptor) More...
 
opj_bool jpwl_check_tile (opj_j2k_t *j2k, opj_tcd_t *tcd, int tileno)
 check that a tile and its children have valid data More...
 
Local static functions
jpwl_epc_ms_tjpwl_epc_create (opj_j2k_t *j2k, opj_bool esd_on, opj_bool red_on, opj_bool epb_on, opj_bool info_on)
 create an EPC marker segment More...
 
void j2k_read_sec (opj_j2k_t *j2k)
 Read the SEC marker (SEcured Codestream) More...
 
void j2k_write_sec (opj_j2k_t *j2k)
 Write the SEC marker (SEcured Codestream) More...
 
void j2k_read_insec (opj_j2k_t *j2k)
 Read the INSEC marker (SEcured Codestream) More...
 

Variables

Local static variables
static int jwmarker_num
 number of JPWL prepared markers More...
 
static jpwl_marker_t jwmarker [JPWL_MAX_NO_MARKERS]
 properties of JPWL markers to insert More...
 

Function Documentation

void jpwl_epb_write ( opj_j2k_t j2k,
jpwl_epb_ms_t epbmark,
unsigned char *  buf 
)

write an EPB MS to a buffer

Parameters
j2kJ2K compressor handle
epbmarkpointer to the EPB MS
bufpointer to the memory buffer

References opj_j2k::cstr_info, jpwl_epb_ms::Depb, j2k_add_marker(), J2K_MS_EPB, jpwl_epb_ms::LDPepb, jpwl_epb_ms::Lepb, and jpwl_epb_ms::Pepb.

Referenced by jpwl_dump_marks().

jpwl_epc_ms_t* jpwl_epc_create ( opj_j2k_t j2k,
opj_bool  esd_on,
opj_bool  red_on,
opj_bool  epb_on,
opj_bool  info_on 
)

create an EPC marker segment

Parameters
j2kJ2K compressor handle
esd_ontrue if ESD is activated
red_ontrue if RED is activated
epb_ontrue if EPB is activated
info_ontrue if informative techniques are activated
Returns
returns the freshly created EPC

References opj_j2k::cinfo, opj_j2k::cp, jpwl_epc_ms::DL, jpwl_epc_ms::epb_on, opj_cp::epb_on, jpwl_epc_ms::esd_on, opj_cp::esd_on, EVT_ERROR, jpwl_epc_ms::info_on, opj_cp::info_on, jpwl_epc_ms::Lepc, opj_event_msg(), opj_malloc, jpwl_epc_ms::Pcrc, jpwl_epc_ms::Pepc, jpwl_epc_ms::red_on, and opj_cp::red_on.

Referenced by jpwl_prepare_marks().

void jpwl_epc_write ( opj_j2k_t j2k,
jpwl_epc_ms_t epcmark,
unsigned char *  buf 
)

write an EPC MS to a buffer

Parameters
j2kJ2K compressor handle
epcmarkpointer to the EPC MS
bufpointer to the memory buffer

References opj_j2k::cstr_info, jpwl_epc_ms::DL, j2k_add_marker(), J2K_MS_EPC, jpwl_epc_ms::Lepc, jpwl_epc_ms::Pcrc, and jpwl_epc_ms::Pepc.

Referenced by jpwl_dump_marks().

jpwl_esd_ms_t* jpwl_esd_create ( opj_j2k_t j2k,
int  comps,
unsigned char  addrm,
unsigned char  ad_size,
unsigned char  senst,
int  se_size,
int  tileno,
unsigned long int  svalnum,
void *  sensval 
)

create an EPC marker segment

Parameters
j2kJ2K compressor handle
compsconsidered component (-1=average, 0/1/2/...=component no.)
addrmaddressing mode (0=packet, 1=byte range, 2=packet range, 3=reserved)
ad_sizesize of addresses (2/4 bytes)
senstsensitivity type
se_sizesensitivity values size (1/2 bytes)
tilenotile where this ESD lies (-1 means MH)
svalnumnumber of sensitivity values (if 0, they will be automatically filled)
sensvalpointer to an array of sensitivity values (if NULL, they will be automatically filled)
Returns
returns the freshly created ESD

References jpwl_esd_ms::ad_size, jpwl_esd_ms::addrm, jpwl_esd_ms::Cesd, opj_j2k::cinfo, opj_codestream_info::codestream_size, opj_j2k::cstr_info, jpwl_esd_ms::data, EVT_ERROR, opj_j2k::image, jpwl_esd_ms::Lesd, jpwl_esd_ms::numcomps, opj_image::numcomps, opj_event_msg(), opj_malloc, opj_codestream_info::packno, jpwl_esd_ms::Pesd, jpwl_esd_ms::se_size, jpwl_esd_ms::senst, jpwl_esd_ms::sensval_size, jpwl_esd_ms::svalnum, opj_codestream_info::th, jpwl_esd_ms::tileno, and opj_codestream_info::tw.

Referenced by jpwl_prepare_marks().

void jpwl_esd_write ( opj_j2k_t j2k,
jpwl_esd_ms_t esdmark,
unsigned char *  buf 
)

write an ESD MS to a buffer

Parameters
j2kJ2K compressor handle
esdmarkpointer to the ESD MS
bufpointer to the memory buffer

References jpwl_esd_ms::Cesd, opj_j2k::cstr_info, j2k_add_marker(), J2K_MS_ESD, jpwl_esd_ms::Lesd, jpwl_esd_ms::numcomps, and jpwl_esd_ms::Pesd.

Referenced by jpwl_dump_marks().

int jpwl_markcomp ( const void *  arg1,
const void *  arg2 
)

this function is used to compare two JPWL markers based on

their relevant wishlist position

Parameters
arg1pointer to first marker
arg2pointer to second marker
Returns
1 if arg1>arg2, 0 if arg1=arg2, -1 if arg1<arg2

Referenced by jpwl_dump_marks().