2
/*************************************************************************
3
** Copyright (C) 1993 by European Southern Observatory
4
**************************************************************************
10
** Author: Jean-Luc Starck
14
** File: Def_Wavelet.h
16
*******************************************************************************
18
** DESCRIPTION Data structures definitions for the wavelet package
20
******************************************************************************/
22
/* Wavelet transform algorithm number */
23
#define TO_PAVE_LINEAR 1
24
#define TO_PAVE_BSPLINE 2
25
#define TO_PAVE_BSPLINE_FFT 3
26
#define TO_PYR_LINEAR 4
27
#define TO_PYR_BSPLINE 5
28
#define TO_PYR_FFT_DIFF_RESOL 6
29
#define TO_PYR_FFT_DIFF_SQUARE_RESOL 7
30
#define TO_MALLAT_BARLAUD 8
32
#define MAX_SIZE_NAME_IMAG 100
33
#define MAX_PLAN_WAVELET 20
35
/* Function definitions for the algorithms using FFT */
36
#define SCALING_FUNCTION 1
38
#define FILTER_H_TILDE 3
40
#define FILTER_G_TILDE 5
43
/* Pyramid data structure */
45
int Tab_Nl[MAX_PLAN_WAVELET];
46
int Tab_Col[MAX_PLAN_WAVELET];
47
int Tab_Pos[MAX_PLAN_WAVELET];
53
/* Complex pyramid data structure */
55
int Tab_Nl[MAX_PLAN_WAVELET];
56
int Tab_Col[MAX_PLAN_WAVELET];
57
int Tab_Pos[MAX_PLAN_WAVELET];
59
float Freq_Coup; /* Frequency cutt-off */
63
/* Data structure for an algorithm without reduction of sampling */
66
float Freq_Coup; /* Frequency cutt-off */
70
/* Data structure for Mallat's algorithm */
71
struct mallat_plan_des {
77
struct mallat_plan_des *Smooth_Imag;
80
/* Data structure for a wavelet transform */
83
char Name_Imag [MAX_SIZE_NAME_IMAG];
84
/* Line and column number */
85
int Nbr_Ligne, Nbr_Col;
88
/* Transform algorithm choosen */
89
int Type_Wave_Transform;
90
/* Buffer for the data */
91
pyramid_f_des Pyramid;
93
struct mallat_plan_des Mallat;
96
/* Data structure for image information */
102
float Correl_Plan[MAX_PLAN_WAVELET];
108
#define FILTER_TRESHOLD 1
110
/* Adaptative thresholding */
111
#define FILTER_HIERARCHICAL_TRESHOLD 2
113
/* Hierarchical Wiener filtering */
114
#define FILTER_HIERARCHICAL 3
116
/* Multiresolution Wiener filtering */
117
#define FILTER_MULTI_RES_WIENER 4
122
#define TO1_B1SPLINE 4
123
#define TO1_B3SPLINE 5