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
int jpwl_markcomp (const void *arg1, const void *arg2)
 this function is used to compare two JPWL markers based on their relevant wishlist position
void jpwl_epb_write (opj_j2k_t *j2k, jpwl_epb_ms_t *epbmark, unsigned char *buf)
 write an EPB MS to a buffer
void jpwl_epc_write (opj_j2k_t *j2k, jpwl_epc_ms_t *epcmark, unsigned char *buf)
 write an EPC MS to a buffer
void jpwl_esd_write (opj_j2k_t *j2k, jpwl_esd_ms_t *esdmark, unsigned char *buf)
 write an ESD MS to a buffer
void jpwl_encode (opj_j2k_t *j2k, opj_cio_t *cio, opj_image_t *image)
 Encode according to JPWL specs.
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).
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.
void j2k_read_epc (opj_j2k_t *j2k)
 Read the EPC marker (Error Protection Capability).
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.
void j2k_read_epb (opj_j2k_t *j2k)
 Read the EPB marker (Error Protection Block).
void j2k_write_epb (opj_j2k_t *j2k)
 Write the EPB marker (Error Protection Block).
void j2k_read_esd (opj_j2k_t *j2k)
 Read the ESD marker (Error Sensitivity Descriptor).
void j2k_read_red (opj_j2k_t *j2k)
 Read the RED marker (Residual Error Descriptor).
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
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
Local static functions
void j2k_read_sec (opj_j2k_t *j2k)
 Read the SEC marker (SEcured Codestream).
void j2k_write_sec (opj_j2k_t *j2k)
 Write the SEC marker (SEcured Codestream).
void j2k_read_insec (opj_j2k_t *j2k)
 Read the INSEC marker (SEcured Codestream).

Variables

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

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:
j2k J2K compressor handle
epbmark pointer to the EPB MS
buf pointer 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:
j2k J2K compressor handle
esd_on true if ESD is activated
red_on true if RED is activated
epb_on true if EPB is activated
info_on true if informative techniques are activated
Returns:
returns the freshly created EPC

References opj_j2k::cinfo, opj_j2k::cp, jpwl_epc_ms::DL, opj_cp::epb_on, jpwl_epc_ms::epb_on, opj_cp::esd_on, jpwl_epc_ms::esd_on, EVT_ERROR, opj_cp::info_on, jpwl_epc_ms::info_on, jpwl_epc_ms::Lepc, opj_event_msg(), opj_malloc, jpwl_epc_ms::Pcrc, jpwl_epc_ms::Pepc, opj_cp::red_on, and jpwl_epc_ms::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:
j2k J2K compressor handle
epcmark pointer to the EPC MS
buf pointer 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:
j2k J2K compressor handle
comps considered component (-1=average, 0/1/2/...=component no.)
addrm addressing mode (0=packet, 1=byte range, 2=packet range, 3=reserved)
ad_size size of addresses (2/4 bytes)
senst sensitivity type
se_size sensitivity values size (1/2 bytes)
tileno tile where this ESD lies (-1 means MH)
svalnum number of sensitivity values (if 0, they will be automatically filled)
sensval pointer 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, opj_image::numcomps, jpwl_esd_ms::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:
j2k J2K compressor handle
esdmark pointer to the ESD MS
buf pointer 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:
arg1 pointer to first marker
arg2 pointer to second marker
Returns:
1 if arg1>arg2, 0 if arg1=arg2, -1 if arg1<arg2

Referenced by jpwl_dump_marks().


Generated on Mon Dec 19 12:34:13 2016 for OpenJPEG by  doxygen 1.5.6