Table of Contents

NAME

QccWAVWavelet - data structure QccWAVWavelet for storing a wavelet

SYNOPSIS

#include "libQccPack.h"

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);

DESCRIPTION

QccPack provides data structure QccWAVWavelet for representing a 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.

DATA STRUCTURE

The QccWAVWavelet data structure is defined as:

typedef struct
{
int implementation;
int boundary;
QccWAVLiftingScheme lifting_scheme;
QccWAVFilterBank filter_bank;
} QccWAVWavelet;

The fields of QccWAVWavelet are as follows:

implementation
The implementation of the wavelet, either QCCWAVWAVELET_IMPLEMENTATION_FILTERBANK or QCCWAVWAVELET_IMPLEMENTATION_LIFTED.
boundary
The type of processing to implement at signal boundaries (i.e., the type of extension to use past the boundary).
lifting_scheme
If the wavelet is of lifting implementation, lifting_scheme stores the lifting-scheme structure.
filter_bank
If the wavelet is of filter-bank implementation, filter_bank stores the filter-bank structure.

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.

ROUTINES

QccWAVWaveletInitialize() should be called before any use of a QccWAVWavelet structure. QccWAVWaveletInitialize() initializes the fields of wavelet to the following values:

implementation: -1 (undefined)
boundary: -1 (undefined)

In addition, QccWAVFilterBankInitialize(3) and QccWAVLiftingScheme(3) are called for filter_bank and lifting_scheme.

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.

RETURN VALUE

These routines return 0 on success, and 1 on failure.

SEE ALSO

QccPackWAV(3) , QccPack(3)

AUTHOR

Copyright (C) 1997-2021 James E. Fowler


Table of Contents



Get QccPack at SourceForge.net. Fast, secure and Free Open Source software downloads