DWT - Implementation of a discrete wavelet transform


Data Structures

struct  dwt_local
union  v4
struct  v4dwt_local

Local data structures

typedef struct dwt_local dwt_t
typedef struct v4dwt_local v4dwt_t
static const float dwt_alpha = 1.586134342f
static const float dwt_beta = 0.052980118f
static const float dwt_gamma = -0.882911075f
static const float dwt_delta = -0.443506852f
static const float K = 1.230174105f
static const float c13318 = 1.625732422f

Local static functions

static void dwt_deinterleave_h (int *a, int *b, int dn, int sn, int cas)
 Forward lazy transform (horizontal).
static void dwt_deinterleave_v (int *a, int *b, int dn, int sn, int x, int cas)
 Forward lazy transform (vertical).
static void dwt_interleave_h (dwt_t *h, int *a)
 Inverse lazy transform (horizontal).
static void dwt_interleave_v (dwt_t *v, int *a, int x)
 Inverse lazy transform (vertical).
static void dwt_encode_1 (int *a, int dn, int sn, int cas)
 Forward 5-3 wavelet transform in 1-D.
static void dwt_decode_1 (dwt_t *v)
 Inverse 5-3 wavelet transform in 1-D.
static void dwt_encode_1_real (int *a, int dn, int sn, int cas)
 Forward 9-7 wavelet transform in 1-D.
static void dwt_encode_stepsize (int stepsize, int numbps, opj_stepsize_t *bandno_stepsize)
 Explicit calculation of the Quantization Stepsizes.
static void dwt_decode_tile (opj_tcd_tilecomp_t *tilec, int i, DWT1DFN fn)
 Inverse wavelet transform in 2-D.

Exported functions

void dwt_encode (opj_tcd_tilecomp_t *tilec)
 Forward 5-3 wavelet tranform in 2-D.
void dwt_decode (opj_tcd_tilecomp_t *tilec, int numres)
 Inverse 5-3 wavelet tranform in 2-D.
int dwt_getgain (int orient)
 Get the gain of a subband for the reversible 5-3 DWT.
double dwt_getnorm (int level, int orient)
 Get the norm of a wavelet function of a subband at a specified level for the reversible 5-3 DWT.
void dwt_encode_real (opj_tcd_tilecomp_t *tilec)
 Forward 9-7 wavelet transform in 2-D.
void dwt_decode_real (opj_tcd_tilecomp_t *tilec, int numres)
 Inverse 9-7 wavelet transform in 2-D.
int dwt_getgain_real (int orient)
 Get the gain of a subband for the irreversible 9-7 DWT.
double dwt_getnorm_real (int level, int orient)
 Get the norm of a wavelet function of a subband at a specified level for the irreversible 9-7 DWT.
void dwt_calc_explicit_stepsizes (opj_tccp_t *tccp, int prec)
 Explicit calculation of the Quantization Stepsizes.

Defines

#define WS(i)   v->mem[(i)*2]
#define WD(i)   v->mem[(1+(i)*2)]

Typedefs

typedef void(* DWT1DFN )(dwt_t *v)
 Virtual function type for wavelet transform in 1-D.

Define Documentation

#define WD (  )     v->mem[(1+(i)*2)]

#define WS (  )     v->mem[(i)*2]


Typedef Documentation

typedef void(* DWT1DFN)(dwt_t *v)

Virtual function type for wavelet transform in 1-D.

typedef struct dwt_local dwt_t

typedef struct v4dwt_local v4dwt_t


Function Documentation

void dwt_calc_explicit_stepsizes ( opj_tccp_t tccp,
int  prec 
)

Explicit calculation of the Quantization Stepsizes.

Parameters:
tccp Tile-component coding parameters
prec Precint analyzed

References dwt_encode_stepsize(), dwt_norms_real, J2K_CCP_QNTSTY_NOQNT, opj_tccp::numresolutions, opj_tccp::qmfbid, opj_tccp::qntsty, and opj_tccp::stepsizes.

Referenced by j2k_setup_encoder().

void dwt_decode ( opj_tcd_tilecomp_t tilec,
int  numres 
)

Inverse 5-3 wavelet tranform in 2-D.

Apply a reversible inverse DWT transform to a component of an image.

Parameters:
tilec Tile component information (current tile)
numres Number of resolution levels to decode

References dwt_decode_1(), and dwt_decode_tile().

Referenced by tcd_decode_tile().

static void dwt_decode_1 ( dwt_t v  )  [static]

Inverse 5-3 wavelet transform in 1-D.

References dwt_local::cas, dwt_local::dn, dwt_decode_1_(), dwt_local::mem, and dwt_local::sn.

Referenced by dwt_decode().

void dwt_decode_real ( opj_tcd_tilecomp_t tilec,
int  numres 
)

Inverse 9-7 wavelet transform in 2-D.

Apply an irreversible inverse DWT transform to a component of an image.

Parameters:
tilec Tile component information (current tile)
numres Number of resolution levels to decode

static void dwt_decode_tile ( opj_tcd_tilecomp_t tilec,
int  i,
DWT1DFN  fn 
) [static]

static void dwt_deinterleave_h ( int *  a,
int *  b,
int  dn,
int  sn,
int  cas 
) [static]

Forward lazy transform (horizontal).

Referenced by dwt_encode(), and dwt_encode_real().

static void dwt_deinterleave_v ( int *  a,
int *  b,
int  dn,
int  sn,
int  x,
int  cas 
) [static]

Forward lazy transform (vertical).

Referenced by dwt_encode(), and dwt_encode_real().

void dwt_encode ( opj_tcd_tilecomp_t tilec  ) 

Forward 5-3 wavelet tranform in 2-D.

Apply a reversible DWT transform to a component of an image.

Parameters:
tilec Tile component information (current tile)

References opj_tcd_tilecomp::data, dwt_deinterleave_h(), dwt_deinterleave_v(), dwt_encode_1(), opj_tcd_tilecomp::numresolutions, opj_free, opj_malloc, opj_tcd_tilecomp::resolutions, opj_tcd_resolution::x0, opj_tcd_tilecomp::x0, opj_tcd_resolution::x1, opj_tcd_tilecomp::x1, opj_tcd_resolution::y0, and opj_tcd_resolution::y1.

Referenced by tcd_encode_tile().

static void dwt_encode_1 ( int *  a,
int  dn,
int  sn,
int  cas 
) [static]

Forward 5-3 wavelet transform in 1-D.

References D, D_, DD_, S, and S_.

Referenced by dwt_encode().

static void dwt_encode_1_real ( int *  a,
int  dn,
int  sn,
int  cas 
) [static]

Forward 9-7 wavelet transform in 1-D.

References D, D_, DD_, fix_mul(), S, S_, and SS_.

Referenced by dwt_encode_real().

void dwt_encode_real ( opj_tcd_tilecomp_t tilec  ) 

Forward 9-7 wavelet transform in 2-D.

Apply an irreversible DWT transform to a component of an image.

Parameters:
tilec Tile component information (current tile)

References opj_tcd_tilecomp::data, dwt_deinterleave_h(), dwt_deinterleave_v(), dwt_encode_1_real(), opj_tcd_tilecomp::numresolutions, opj_free, opj_malloc, opj_tcd_tilecomp::resolutions, opj_tcd_resolution::x0, opj_tcd_tilecomp::x0, opj_tcd_resolution::x1, opj_tcd_tilecomp::x1, opj_tcd_resolution::y0, and opj_tcd_resolution::y1.

Referenced by tcd_encode_tile().

static void dwt_encode_stepsize ( int  stepsize,
int  numbps,
opj_stepsize_t bandno_stepsize 
) [static]

Explicit calculation of the Quantization Stepsizes.

References opj_stepsize::expn, int_floorlog2(), and opj_stepsize::mant.

Referenced by dwt_calc_explicit_stepsizes().

int dwt_getgain ( int  orient  ) 

Get the gain of a subband for the reversible 5-3 DWT.

Parameters:
orient Number that identifies the subband (0->LL, 1->HL, 2->LH, 3->HH)
Returns:
Returns 0 if orient = 0, returns 1 if orient = 1 or 2, returns 2 otherwise

Referenced by tcd_init_encode(), tcd_malloc_decode_tile(), and tcd_malloc_encode().

int dwt_getgain_real ( int  orient  ) 

Get the gain of a subband for the irreversible 9-7 DWT.

Parameters:
orient Number that identifies the subband (0->LL, 1->HL, 2->LH, 3->HH)
Returns:
Returns the gain of the 9-7 wavelet transform

Referenced by tcd_init_encode(), tcd_malloc_decode_tile(), and tcd_malloc_encode().

double dwt_getnorm ( int  level,
int  orient 
)

Get the norm of a wavelet function of a subband at a specified level for the reversible 5-3 DWT.

Parameters:
level Level of the wavelet function
orient Band of the wavelet function
Returns:
Returns the norm of the wavelet function

References dwt_norms.

Referenced by t1_getwmsedec().

double dwt_getnorm_real ( int  level,
int  orient 
)

Get the norm of a wavelet function of a subband at a specified level for the irreversible 9-7 DWT.

Parameters:
level Level of the wavelet function
orient Band of the wavelet function
Returns:
Returns the norm of the 9-7 wavelet

References dwt_norms_real.

Referenced by t1_getwmsedec().

static void dwt_interleave_h ( dwt_t h,
int *  a 
) [static]

Inverse lazy transform (horizontal).

References dwt_local::cas, dwt_local::dn, dwt_local::mem, and dwt_local::sn.

Referenced by dwt_decode_tile().

static void dwt_interleave_v ( dwt_t v,
int *  a,
int  x 
) [static]

Inverse lazy transform (vertical).

References dwt_local::cas, dwt_local::dn, dwt_local::mem, and dwt_local::sn.

Referenced by dwt_decode_tile().


Variable Documentation

const float c13318 = 1.625732422f [static]

Referenced by v4dwt_decode().

const float dwt_alpha = 1.586134342f [static]

Referenced by v4dwt_decode().

const float dwt_beta = 0.052980118f [static]

Referenced by v4dwt_decode().

const float dwt_delta = -0.443506852f [static]

Referenced by v4dwt_decode().

const float dwt_gamma = -0.882911075f [static]

Referenced by v4dwt_decode().

const float K = 1.230174105f [static]

Referenced by tcd_rateallocate(), and v4dwt_decode().


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