VAPoR  0.1
WaveletBlock2D.h
Go to the documentation of this file.
1 //
2 // $Id$
3 //
4 
5 #ifndef _WaveletBlock2D_h_
6 #define _WaveletBlock2D_h_
7 
8 #include <vapor/MyBase.h>
9 #include <vapor/EasyThreads.h>
10 #include <vapor/WaveletBlock1D.h>
11 
12 #include "Lifting1D.h"
13 
14 
15 namespace VAPoR {
16 
17 //
26 //
28 
29 public:
30 
44  //
46  size_t bs[2], // X,Y,Z coordinate tile dimensions
47  unsigned int n, // # wavelet filter coefficents
48  unsigned int ntilde // # wavelet lifting coefficients
49  );
50  virtual ~WaveletBlock2D();
51 
71  //
72  void ForwardTransform(
73  const float *src_super_tile[4],
74  float *dst_super_tile[4]
75  );
76 
88  //
89  void InverseTransform(
90  const float *src_super_tile[4],
91  float *dst_super_tile[4]
92  );
93 
94 private:
95  int _objInitialized; // has the obj successfully been initialized?
96  size_t _bs[2]; // tile dimensions in voxels
97  float **_temp_tiles1,
98  **_temp_tiles2;
99 
100  WaveletBlock1D *_wb1d0; // lifting method wavelet transform
101  WaveletBlock1D *_wb1d1; // lifting method wavelet transform
102 
103  WaveletBlock2D(WaveletBlock2D *X, int index);
104 
105  void forward_transform2D_tiles(
106  const float **src_tiles,
107  float **lambda_tiles,
108  float **gamma_tiles,
109  int ntiles,
110  size_t nx,
111  size_t ny,
112  WaveletBlock1D *wb1d
113  );
114 
115  void forward_transform2D(
116  const float *src_tileptr,
117  float *lambda_tileptr,
118  float *gamma_tileptr,
119  int lambda_offset,
120  int gamma_offset,
121  size_t nx,
122  size_t ny,
123  WaveletBlock1D *wb1d
124  );
125 
126  void inverse_transform2D_tiles(
127  const float **lambda_tiles,
128  const float **gamma_tiles,
129  float **dst_tiles,
130  int ntiles,
131  size_t nx,
132  size_t ny,
133  WaveletBlock1D *wb1d
134  );
135 
136  void inverse_transform2D(
137  const float *lambda_tileptr,
138  const float *gamma_tileptr,
139  float *dst_tileptr,
140  int lambda_offset,
141  int gamma_offset,
142  size_t nx,
143  size_t ny,
144  WaveletBlock1D *wb1d
145  );
146 
147 };
148 
149 };
150 
151 #endif // _WaveletBlock2D_h_
void InverseTransform(const float *src_super_tile[4], float *dst_super_tile[4])
A tile-based, 2D wavelet transformer.
VetsUtil base class.
Definition: MyBase.h:68
void ForwardTransform(const float *src_super_tile[4], float *dst_super_tile[4])
WaveletBlock2D(size_t bs[2], unsigned int n, unsigned int ntilde)
A block-based, 1D wavelet transformer.