#include "opj_includes.h"
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 |
Defines | |
#define | WS(i) v->mem[(i)*2] |
#define | WD(i) v->mem[(1+(i)*2)] |
#define | S(i) a[(i)*2] |
#define | D(i) a[(1+(i)*2)] |
#define | S_(i) ((i)<0?S(0):((i)>=sn?S(sn-1):S(i))) |
#define | D_(i) ((i)<0?D(0):((i)>=dn?D(dn-1):D(i))) |
#define | SS_(i) ((i)<0?S(0):((i)>=dn?S(dn-1):S(i))) |
#define | DD_(i) ((i)<0?D(0):((i)>=sn?D(sn-1):D(i))) |
Typedefs | |
typedef void(* | DWT1DFN )(dwt_t *v) |
Virtual function type for wavelet transform in 1-D. | |
Functions | |
static void | dwt_decode_1_ (int *a, int dn, int sn, int cas) |
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. | |
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. | |
static int | dwt_decode_max_resolution (opj_tcd_resolution_t *restrict r, int i) |
static void | v4dwt_interleave_h (v4dwt_t *restrict w, float *restrict a, int x, int size) |
static void | v4dwt_interleave_v (v4dwt_t *restrict v, float *restrict a, int x) |
static void | v4dwt_decode_step1 (v4 *w, int count, const float c) |
static void | v4dwt_decode_step2 (v4 *l, v4 *w, int k, int m, float c) |
static void | v4dwt_decode (v4dwt_t *restrict dwt) |
void | dwt_decode_real (opj_tcd_tilecomp_t *restrict tilec, int numres) |
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. | |
Variables | |
static const double | dwt_norms [4][10] |
static const double | dwt_norms_real [4][10] |
#define D | ( | i | ) | a[(1+(i)*2)] |
Referenced by dwt_decode_1_(), dwt_encode_1(), and dwt_encode_1_real().
#define D_ | ( | i | ) | ((i)<0?D(0):((i)>=dn?D(dn-1):D(i))) |
Referenced by dwt_decode_1_(), dwt_encode_1(), and dwt_encode_1_real().
#define DD_ | ( | i | ) | ((i)<0?D(0):((i)>=sn?D(sn-1):D(i))) |
Referenced by dwt_decode_1_(), dwt_encode_1(), and dwt_encode_1_real().
#define S | ( | i | ) | a[(i)*2] |
Referenced by dwt_decode_1_(), dwt_encode_1(), and dwt_encode_1_real().
#define S_ | ( | i | ) | ((i)<0?S(0):((i)>=sn?S(sn-1):S(i))) |
Referenced by dwt_encode_1(), and dwt_encode_1_real().
#define SS_ | ( | i | ) | ((i)<0?S(0):((i)>=dn?S(dn-1):S(i))) |
Referenced by dwt_decode_1_(), and dwt_encode_1_real().
static void dwt_decode_1_ | ( | int * | a, | |
int | dn, | |||
int | sn, | |||
int | cas | |||
) | [static] |
static int dwt_decode_max_resolution | ( | opj_tcd_resolution_t *restrict | r, | |
int | i | |||
) | [static] |
Referenced by dwt_decode_real(), and dwt_decode_tile().
void dwt_decode_real | ( | opj_tcd_tilecomp_t *restrict | tilec, | |
int | numres | |||
) |
References v4dwt_local::cas, v4dwt_local::dn, dwt_decode_max_resolution(), v4::f, opj_aligned_free, opj_aligned_malloc, restrict, v4dwt_local::sn, v4dwt_decode(), v4dwt_interleave_h(), v4dwt_interleave_v(), v4dwt_local::wavelet, opj_tcd_resolution::x0, opj_tcd_resolution::x1, opj_tcd_resolution::y0, and opj_tcd_resolution::y1.
Referenced by tcd_decode_tile().
static void v4dwt_decode | ( | v4dwt_t *restrict | dwt | ) | [static] |
References c13318, dwt_alpha, dwt_beta, dwt_delta, dwt_gamma, int_min(), K, v4dwt_decode_step1(), and v4dwt_decode_step2().
Referenced by dwt_decode_real().
static void v4dwt_decode_step1 | ( | v4 * | w, | |
int | count, | |||
const float | c | |||
) | [static] |
static void v4dwt_interleave_h | ( | v4dwt_t *restrict | w, | |
float *restrict | a, | |||
int | x, | |||
int | size | |||
) | [static] |
static void v4dwt_interleave_v | ( | v4dwt_t *restrict | v, | |
float *restrict | a, | |||
int | x | |||
) | [static] |
const double 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} }
Referenced by dwt_getnorm().
const double 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} }
Referenced by dwt_calc_explicit_stepsizes(), and dwt_getnorm_real().