OpenJPEG 2.1.2

Data Structures | Macros | Typedefs | Functions | Variables
dwt.c File Reference
`#include "opj_includes.h"`

## Data Structures
struct | dwt_local
union | opj_v4_t
struct | v4dwt_local

## Macros
#define | OPJ_WS(i) v->mem[(i)*2]
#define | OPJ_WD(i) v->mem[(1+(i)*2)]
#define | OPJ_S(i) a[(i)*2]
#define | OPJ_D(i) a[(1+(i)*2)]
#define | OPJ_S_(i) ((i)<0?OPJ_S(0):((i)>=sn?OPJ_S(sn-1):OPJ_S(i)))
#define | OPJ_D_(i) ((i)<0?OPJ_D(0):((i)>=dn?OPJ_D(dn-1):OPJ_D(i)))
#define | OPJ_SS_(i) ((i)<0?OPJ_S(0):((i)>=dn?OPJ_S(dn-1):OPJ_S(i)))
#define | OPJ_DD_(i) ((i)<0?OPJ_D(0):((i)>=sn?OPJ_D(sn-1):OPJ_D(i)))

## Typedefs
typedef void(* | DWT1DFN) (opj_dwt_t *v)
| Virtual function type for wavelet transform in 1-D. More...

## Functions
OPJ_BOOL | opj_dwt_encode (opj_tcd_tilecomp_t *tilec)
| Forward 5-3 wavelet transform in 2-D. More...
OPJ_BOOL | opj_dwt_decode (opj_tcd_tilecomp_t *tilec, OPJ_UINT32 numres)
| Inverse 5-3 wavelet transform in 2-D. More...
OPJ_UINT32 | opj_dwt_getgain (OPJ_UINT32 orient)
| Get the gain of a subband for the reversible 5-3 DWT. More...
OPJ_FLOAT64 | opj_dwt_getnorm (OPJ_UINT32 level, OPJ_UINT32 orient)
| Get the norm of a wavelet function of a subband at a specified level for the reversible 5-3 DWT. More...
OPJ_BOOL | opj_dwt_encode_real (opj_tcd_tilecomp_t *tilec)
| Forward 9-7 wavelet transform in 2-D. More...
OPJ_UINT32 | opj_dwt_getgain_real (OPJ_UINT32 orient)
| Get the gain of a subband for the irreversible 9-7 DWT. More...
OPJ_FLOAT64 | opj_dwt_getnorm_real (OPJ_UINT32 level, OPJ_UINT32 orient)
| Get the norm of a wavelet function of a subband at a specified level for the irreversible 9-7 DWT. More...
void | opj_dwt_calc_explicit_stepsizes (opj_tccp_t *tccp, OPJ_UINT32 prec)
| Explicit calculation of the Quantization Stepsizes. More...
OPJ_BOOL | opj_dwt_decode_real (opj_tcd_tilecomp_t *OPJ_RESTRICT tilec, OPJ_UINT32 numres)
| Inverse 9-7 wavelet transform in 2-D. More...
Local static functions
static void | opj_dwt_deinterleave_h (OPJ_INT32 *a, OPJ_INT32 *b, OPJ_INT32 dn, OPJ_INT32 sn, OPJ_INT32 cas)
| Forward lazy transform (horizontal) More...
static void | opj_dwt_deinterleave_v (OPJ_INT32 *a, OPJ_INT32 *b, OPJ_INT32 dn, OPJ_INT32 sn, OPJ_INT32 x, OPJ_INT32 cas)
| Forward lazy transform (vertical) More...
static void | opj_dwt_interleave_h (opj_dwt_t *h, OPJ_INT32 *a)
| Inverse lazy transform (horizontal) More...
static void | opj_dwt_interleave_v (opj_dwt_t *v, OPJ_INT32 *a, OPJ_INT32 x)
| Inverse lazy transform (vertical) More...
static void | opj_dwt_encode_1 (OPJ_INT32 *a, OPJ_INT32 dn, OPJ_INT32 sn, OPJ_INT32 cas)
| Forward 5-3 wavelet transform in 1-D. More...
static void | opj_dwt_decode_1 (opj_dwt_t *v)
| Inverse 5-3 wavelet transform in 1-D. More...
static void | opj_dwt_decode_1_ (OPJ_INT32 *a, OPJ_INT32 dn, OPJ_INT32 sn, OPJ_INT32 cas)
static void | opj_dwt_encode_1_real (OPJ_INT32 *a, OPJ_INT32 dn, OPJ_INT32 sn, OPJ_INT32 cas)
| Forward 9-7 wavelet transform in 1-D. More...
static void | opj_dwt_encode_stepsize (OPJ_INT32 stepsize, OPJ_INT32 numbps, opj_stepsize_t *bandno_stepsize)
| Explicit calculation of the Quantization Stepsizes. More...
static OPJ_BOOL | opj_dwt_decode_tile (opj_tcd_tilecomp_t *tilec, OPJ_UINT32 i, DWT1DFN fn)
| Inverse wavelet transform in 2-D. More...
static OPJ_BOOL | opj_dwt_encode_procedure (opj_tcd_tilecomp_t *tilec, void(*p_function)(OPJ_INT32 *, OPJ_INT32, OPJ_INT32, OPJ_INT32))
static OPJ_UINT32 | opj_dwt_max_resolution (opj_tcd_resolution_t *OPJ_RESTRICT r, OPJ_UINT32 i)
static void | opj_v4dwt_decode (opj_v4dwt_t *OPJ_RESTRICT dwt)
static void | opj_v4dwt_interleave_h (opj_v4dwt_t *OPJ_RESTRICT w, OPJ_FLOAT32 *OPJ_RESTRICT a, OPJ_INT32 x, OPJ_INT32 size)
static void | opj_v4dwt_interleave_v (opj_v4dwt_t *OPJ_RESTRICT v, OPJ_FLOAT32 *OPJ_RESTRICT a, OPJ_INT32 x, OPJ_INT32 nb_elts_read)
static void | opj_v4dwt_decode_step1 (opj_v4_t *w, OPJ_INT32 count, const OPJ_FLOAT32 c)
static void | opj_v4dwt_decode_step2 (opj_v4_t *l, opj_v4_t *w, OPJ_INT32 k, OPJ_INT32 m, OPJ_FLOAT32 c)

## Variables
static const OPJ_FLOAT64 | opj_dwt_norms [4][10]
static const OPJ_FLOAT64 | opj_dwt_norms_real [4][10]

## Local data structures
typedef struct dwt_local | opj_dwt_t
typedef struct v4dwt_local | opj_v4dwt_t
static const OPJ_FLOAT32 | opj_dwt_alpha = 1.586134342f
static const OPJ_FLOAT32 | opj_dwt_beta = 0.052980118f
static const OPJ_FLOAT32 | opj_dwt_gamma = -0.882911075f
static const OPJ_FLOAT32 | opj_dwt_delta = -0.443506852f
static const OPJ_FLOAT32 | opj_K = 1.230174105f
static const OPJ_FLOAT32 | opj_c13318 = 1.625732422f

## Macro Definition Documentation

## § OPJ_D

#define OPJ_D | ( |  | i | ) | a[(1+(i)*2)]

Referenced by opj_dwt_decode_1_(), opj_dwt_encode_1(), and opj_dwt_encode_1_real().

## § OPJ_D_

#define OPJ_D_ | ( |  | i | ) | ((i)<0?OPJ_D(0):((i)>=dn?OPJ_D(dn-1):OPJ_D(i)))

Referenced by opj_dwt_decode_1_(), opj_dwt_encode_1(), and opj_dwt_encode_1_real().

## § OPJ_DD_

#define OPJ_DD_ | ( |  | i | ) | ((i)<0?OPJ_D(0):((i)>=sn?OPJ_D(sn-1):OPJ_D(i)))

Referenced by opj_dwt_decode_1_(), opj_dwt_encode_1(), and opj_dwt_encode_1_real().

## § OPJ_S

#define OPJ_S | ( |  | i | ) | a[(i)*2]

Referenced by opj_dwt_decode_1_(), opj_dwt_encode_1(), and opj_dwt_encode_1_real().

## § OPJ_S_

#define OPJ_S_ | ( |  | i | ) | ((i)<0?OPJ_S(0):((i)>=sn?OPJ_S(sn-1):OPJ_S(i)))

Referenced by opj_dwt_encode_1(), and opj_dwt_encode_1_real().

## § OPJ_SS_

#define OPJ_SS_ | ( |  | i | ) | ((i)<0?OPJ_S(0):((i)>=dn?OPJ_S(dn-1):OPJ_S(i)))

Referenced by opj_dwt_decode_1_(), and opj_dwt_encode_1_real().

## Variable Documentation

## § opj_dwt_norms

const OPJ_FLOAT64 opj_dwt_norms[4][10]
| static

Initial value:
= {
{1.000, 1.500, 2.750, 5.375, 10.68, 21.34, 42.67, 85.33, 170.7, 341.3},
{1.038, 1.592, 2.919, 5.703, 11.33, 22.64, 45.25, 90.48, 180.9},
{1.038, 1.592, 2.919, 5.703, 11.33, 22.64, 45.25, 90.48, 180.9},
{.7186, .9218, 1.586, 3.043, 6.019, 12.01, 24.00, 47.97, 95.93}
}

## § opj_dwt_norms_real

const OPJ_FLOAT64 opj_dwt_norms_real[4][10]
| static

Initial value:
= {
{1.000, 1.965, 4.177, 8.403, 16.90, 33.84, 67.69, 135.3, 270.6, 540.9},
{2.022, 3.989, 8.355, 17.04, 34.27, 68.63, 137.3, 274.6, 549.0},
{2.022, 3.989, 8.355, 17.04, 34.27, 68.63, 137.3, 274.6, 549.0},
{2.080, 3.865, 8.307, 17.18, 34.71, 69.59, 139.3, 278.6, 557.2}
}