VAPoR
0.1
|
A block-based, 3D wavelet transformer. More...
#include <WaveletBlock3D.h>
Public Member Functions | |
WaveletBlock3D (unsigned int bs, unsigned int n, unsigned int ntilde, unsigned int nthreads) | |
virtual | ~WaveletBlock3D () |
void | ForwardTransform (const float *src_super_blk[8], float *dst_super_blk[8]) |
void | InverseTransform (const float *src_super_blk[8], float *dst_super_blk[8]) |
void | TransposeBlks (float *super_blk[8]) |
void | inverse_transform_thread () |
Public Member Functions inherited from VetsUtil::MyBase | |
MyBase () | |
const string & | getClassName () const |
Additional Inherited Members | |
Public Types inherited from VetsUtil::MyBase | |
typedef void(* | ErrMsgCB_T) (const char *msg, int err_code) |
typedef void(* | DiagMsgCB_T) (const char *msg) |
Static Public Member Functions inherited from VetsUtil::MyBase | |
static void | SetErrMsg (const char *format,...) |
Record a formatted error message. More... | |
static void | SetErrMsg (int errcode, const char *format,...) |
Record a formatted error message and an error code. More... | |
static const char * | GetErrMsg () |
static void | SetErrCode (int err_code) |
Record an error code. More... | |
static int | GetErrCode () |
Retrieve the current error code. More... | |
static void | SetErrMsgCB (ErrMsgCB_T cb) |
static ErrMsgCB_T | GetErrMsgCB () |
static void | SetErrMsgFilePtr (FILE *fp) |
static const FILE * | SetErrMsgFilePtr () |
static void | SetDiagMsg (const char *format,...) |
Record a formatted diagnostic message. More... | |
static const char * | GetDiagMsg () |
static void | SetDiagMsgCB (DiagMsgCB_T cb) |
static DiagMsgCB_T | GetDiagMsgCB () |
static void | SetDiagMsgFilePtr (FILE *fp) |
static bool | EnableErrMsg (bool enable) |
Static Public Attributes inherited from VetsUtil::MyBase | |
static char * | ErrMsg |
static int | ErrCode |
static int | ErrMsgSize |
static FILE * | ErrMsgFilePtr |
static ErrMsgCB_T | ErrMsgCB |
static char * | DiagMsg |
static int | DiagMsgSize |
static FILE * | DiagMsgFilePtr |
static DiagMsgCB_T | DiagMsgCB |
static bool | Enabled |
Protected Member Functions inherited from VetsUtil::MyBase | |
void | SetClassName (const string &name) |
A block-based, 3D wavelet transformer.
This class provides a 3D, block-based wavelet transform API based on Wim Swelden's Liftpack library.
Definition at line 27 of file WaveletBlock3D.h.
VAPoR::WaveletBlock3D::WaveletBlock3D | ( | unsigned int | bs, |
unsigned int | n, | ||
unsigned int | ntilde, | ||
unsigned int | nthreads | ||
) |
Constructor for the WaveletBlock3D class.
[in] | bs | Dimension of a block along X, Y, and Z coordinates axis |
[in] | Number | of wavelet filter coefficients. Valid values are from 1 to Lifting1D::MAX_FILTER_COEFF |
[in] | ntilde | Number of wavelet lifting coefficients. Valid values are from 1 to Lifting1D::MAX_FILTER_COEFF |
[in] | nthreads | Number of execution threads that may be used by the class for parallel execution. |
|
virtual |
void VAPoR::WaveletBlock3D::ForwardTransform | ( | const float * | src_super_blk[8], |
float * | dst_super_blk[8] | ||
) |
Perform a forward wavelet transform on a super block
Performs a forward, 3D wavelet transform on each of eight neighboring blocks contained in a super block, src_super_blk
. The resulting Lambda and Gamma coefficients are stored in a destination super block, dst_super_blk
. The distribution of coefficients stored in the space pointed to by dst_super_blk is as follows: block 0 contains the L (Lambda) subband, block 1 contains the Hz (Gamma) subband, blocks 2 & 3 contain the Hy subband, blocks 4 - 7 contain the Hx subband.
[in] | src_super_blk | An array of pointers to blocks. |
[out] | dst_super_blk | An array of pointers to blocks. |
Transpose()
method.void VAPoR::WaveletBlock3D::inverse_transform_thread | ( | ) |
void VAPoR::WaveletBlock3D::InverseTransform | ( | const float * | src_super_blk[8], |
float * | dst_super_blk[8] | ||
) |
Perform an inverse wavelet transform on a super block
Performs a inverse, 3D wavelet transform on each of eight neighboring blocks contained in a super block, src_super_blk
. The resulting coefficients are stored in a destination super block, dst_super_blk
.
[in] | src_super_blk | An array of pointers to blocks |
[out] | dst_super_blk | An array of pointers to blocks. |
void VAPoR::WaveletBlock3D::TransposeBlks | ( | float * | super_blk[8] | ) |
Transpose a super block created by ForwardTransform() to X, Y, Z order.
The gamma coefficient blocks returned by ForwardTransform() are tranposed. This method can be used to perform an in-place tranpose restoring gamma blocks to their natural, X, Y, Z order.
[in,out] | src_super_blk | An array of pointers to blocks |