jpwl_lib.c File Reference

#include "../libopenjpeg/opj_includes.h"
#include <limits.h>

Defines

#define MIN_V1   0.0
 Minimum and maximum values for the double->pfp conversion.
#define MAX_V1   17293822569102704640.0
#define MIN_V2   0.000030517578125
#define MAX_V2   131040.0

Functions

unsigned short int jpwl_double_to_pfp (double V, int bytes)
 conversion between a double precision floating point number and the corresponding pseudo-floating point used to represent sensitivity values
double jpwl_pfp_to_double (unsigned short int em, int bytes)
 conversion between a pseudo-floating point used to represent sensitivity values and the corresponding double precision floating point number
int jpwl_markcomp (const void *arg1, const void *arg2)
 this function is used to compare two JPWL markers based on their relevant wishlist position
int jpwl_epbs_add (opj_j2k_t *j2k, jpwl_marker_t *jwmarker, int *jwmarker_num, bool latest, bool packed, bool insideMH, int *idx, int hprot, double place_pos, int tileno, unsigned long int pre_len, unsigned long int post_len)
 add a number of EPB marker segments
jpwl_epb_ms_tjpwl_epb_create (opj_j2k_t *j2k, bool latest, bool packed, int tileno, int idx, int hprot, unsigned long int pre_len, unsigned long int post_len)
 create an EPB marker segment
void jpwl_epb_write (opj_j2k_t *j2k, jpwl_epb_ms_t *epb, unsigned char *buf)
 write an EPB MS to a buffer
jpwl_epc_ms_tjpwl_epc_create (opj_j2k_t *j2k, bool esd_on, bool red_on, bool epb_on, bool info_on)
 create an EPC marker segment
bool jpwl_epb_fill (opj_j2k_t *j2k, jpwl_epb_ms_t *epb, unsigned char *buf, unsigned char *post_buf)
bool jpwl_correct (opj_j2k_t *j2k)
 corrects the data in the JPWL codestream
bool jpwl_epb_correct (opj_j2k_t *j2k, unsigned char *buffer, int type, int pre_len, int post_len, int *conn, unsigned char **L4_bufp)
 corrects the data protected by an EPB
void jpwl_epc_write (opj_j2k_t *j2k, jpwl_epc_ms_t *epc, unsigned char *buf)
 write an EPC MS to a buffer
int jpwl_esds_add (opj_j2k_t *j2k, jpwl_marker_t *jwmarker, int *jwmarker_num, int comps, unsigned char addrm, unsigned char ad_size, unsigned char senst, unsigned char se_size, double place_pos, int tileno)
 add a number of ESD marker segments
jpwl_esd_ms_tjpwl_esd_create (opj_j2k_t *j2k, int comp, unsigned char addrm, unsigned char ad_size, unsigned char senst, unsigned char se_size, int tileno, unsigned long int svalnum, void *sensval)
bool jpwl_esd_fill (opj_j2k_t *j2k, jpwl_esd_ms_t *esd, unsigned char *buf)
void jpwl_esd_write (opj_j2k_t *j2k, jpwl_esd_ms_t *esd, unsigned char *buf)
 write an ESD MS to a buffer
bool jpwl_update_info (opj_j2k_t *j2k, jpwl_marker_t *jwmarker, int jwmarker_num)
 updates the information structure by modifying the positions and lengths

Define Documentation

#define MAX_V1   17293822569102704640.0
#define MAX_V2   131040.0

Referenced by jpwl_double_to_pfp().

#define MIN_V1   0.0

Minimum and maximum values for the double->pfp conversion.

Referenced by jpwl_double_to_pfp().

#define MIN_V2   0.000030517578125

Referenced by jpwl_double_to_pfp().


Function Documentation

unsigned short int jpwl_double_to_pfp ( double  V,
int  bytes 
)

conversion between a double precision floating point number and the corresponding pseudo-floating point used to represent sensitivity values

Parameters:
V the double precision value
Parameters:
bytes the number of bytes of the representation
Returns:
the pseudo-floating point value (cast accordingly)

References MAX_V1, MAX_V2, MIN_V1, and MIN_V2.

Referenced by jpwl_esd_fill().

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
Parameters:
epbmark pointer to the EPB MS
Parameters:
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,
bool  esd_on,
bool  red_on,
bool  epb_on,
bool  info_on 
)

create an EPC marker segment

Parameters:
j2k J2K compressor handle
Parameters:
esd_on true if ESD is activated
Parameters:
red_on true if RED is activated
Parameters:
epb_on true if EPB is activated
Parameters:
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(), 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
Parameters:
epcmark pointer to the EPC MS
Parameters:
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  comp,
unsigned char  addrm,
unsigned char  ad_size,
unsigned char  senst,
unsigned char  se_size,
int  tileno,
unsigned long int  svalnum,
void *  sensval 
)
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
Parameters:
esdmark pointer to the ESD MS
Parameters:
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
Parameters:
arg2 pointer to second marker
Returns:
1 if arg1>arg2, 0 if arg1=arg2, -1 if arg1<arg2

Referenced by jpwl_dump_marks().

double jpwl_pfp_to_double ( unsigned short int  em,
int  bytes 
)

conversion between a pseudo-floating point used to represent sensitivity values and the corresponding double precision floating point number

Parameters:
em the pseudo-floating point value (cast accordingly)
Parameters:
bytes the number of bytes of the representation
Returns:
the double precision value

Referenced by jpwl_esd_fill().

Generated on Sat Jan 22 13:12:11 2011 for OpenJPEG by  doxygen 1.6.3