VAPoR  0.1
WaveletBlock1D.h
Go to the documentation of this file.
1 //
2 // $Id$
3 //
4 
5 #ifndef _WaveletBlock1D_h_
6 #define _WaveletBlock1D_h_
7 
8 #include <vapor/MyBase.h>
9 #include <vapor/EasyThreads.h>
10 
11 #include "Lifting1D.h"
12 
13 
14 namespace VAPoR {
15 
16 //
25 //
27 
28 public:
29 
40  //
42  unsigned int bs, // X,Y,Z coordinate block dimensions
43  unsigned int n, // # wavelet filter coefficents
44  unsigned int ntilde // # wavelet lifting coefficients
45  );
46  virtual ~WaveletBlock1D();
47 
48  void ForwardTransform(
49  const float *src_blk_ptr,
50  float *lambda_blk_ptr,
51  float *gamma_blk_ptr
52  );
53  void InverseTransform(
54  const float *lambda_blk_ptr,
55  const float *gamma_blk_ptr,
56  float *dst_blk_ptr
57  );
58 
59 private:
60  int _bs; // block dimensions in voxels
61  int _n; // # filter coefficients
62  int _ntilde; // # lifting coefficients
63 
64  Lifting1D <float> *_lift; // lifting method wavelet transform
65  float *_liftbuf; // scratch space for lifting method
66 
67 
68 
69  void forward_transform1d_haar(
70  const float *src_blk_ptr,
71  float *lambda_blk_ptr,
72  float *gamma_blk_ptr,
73  int size
74  );
75 
76 
77  void inverse_transform1d_haar(
78  const float *lambda_blk_ptr,
79  const float *gamma_blk_ptr,
80  float *src_blk_ptr,
81  int size
82  );
83 
84 };
85 
86 };
87 
88 #endif // _WaveletBlock1D_h_
void ForwardTransform(const float *src_blk_ptr, float *lambda_blk_ptr, float *gamma_blk_ptr)
void InverseTransform(const float *lambda_blk_ptr, const float *gamma_blk_ptr, float *dst_blk_ptr)
VetsUtil base class.
Definition: MyBase.h:68
WaveletBlock1D(unsigned int bs, unsigned int n, unsigned int ntilde)
A block-based, 1D wavelet transformer.