int QccWAVWaveletInitialize(QccWAVWavelet
*wavelet);
int QccWAVWaveletAlloc(QccWAVWavelet *wavelet);
void QccWAVWaveletFree(QccWAVWavelet
*wavelet);
int QccWAVWaveletPrint(const QccWAVWavelet *wavelet);
int
QccWAVWaveletCreate(QccWAVWavelet *wavelet, const QccString wavelet_filename,
const QccString boundary);
int QccWAVWaveletBiorthogonal(const QccWAVWavelet
*wavelet);
The components of a QccWAVWavelet structure are a field describing how the wavelet is implemented (filter bank or lifting) and the appropriate structures for this implementation.
typedef struct
{
int implementation;
int boundary;
QccWAVLiftingScheme lifting_scheme;
QccWAVFilterBank filter_bank;
} QccWAVWavelet;
The fields of QccWAVWavelet are as follows:
The boundary must be one of the following: QCCWAVWAVELET_BOUNDARY_SYMMETRIC_EXTENSION, QCCWAVWAVELET_BOUNDARY_PERIODIC_EXTENSION, or QCCWAVWAVELET_BOUNDARY_BOUNDARY_WAVELET, which call for symmetric-extension, periodic-extension, or boundary-wavelet handling, respectively, of the boundaries of the the signal. Not all boundary methods are permitted for all wavelets; check the comments at the start of filter-bank or lifting-scheme files for possible values for particular wavelets.
In addition, QccWAVFilterBankInitialize(3) and QccWAVLiftingScheme(3) are called for filter_bank and lifting_scheme.implementation: -1 (undefined)
boundary: -1 (undefined)
QccWAVWaveletAlloc() allocates the filter_bank structure of the wavelet by calling QccWAVFilterBankAlloc(3) .
QccWAVWaveletFree() frees the filter_bank structure of the wavelet by calling QccWAVFilterBankFree(3) .
QccWAVWaveletPrint() prints the contents of wavelet to stdout.
QccWAVWaveletCreate() searches the file path specified by the environment variable QCCPACK_WAVELET_PATH for the filename given by wavelet_filename. If found, the file, which must be of FBK or LFT format, is read. See QccPackWAV(3) for more information on the path search employed here. The appropriate filter-bank or lifting-scheme structures are allocated and data fields filed in according to the format of the file. boundary is a string (either "symmetric", "periodic", or "boundary") which indicates the boundary-handling method to be employed for the wavelet; the boundary field in wavelet is assigned the appropriate integer code.
QccWAVWaveletBiorthogonal() returns 1 if the underlying filter bank or lifting scheme of wavelet is biorthogonal, or 0 otherwise.