Table of Contents

NAME

QccWAVLiftingScheme - data structure QccWAVLiftingScheme and corresponding LFT file format for wavelet-based analysis/synthesis using a lifting implementation

SYNOPSIS

#include "libQccPack.h"

int QccWAVLiftingSchemeInitialize(QccWAVLiftingScheme *lifting_scheme);
int QccWAVLiftingSchemePrint(const QccWAVLiftingScheme *lifting_scheme);
int QccWAVLiftingSchemeBiorthogonal(const QccWAVLiftingScheme *lifting_scheme);
int QccWAVLiftingSchemeInteger(const QccWAVLiftingScheme *lifting_scheme);

DESCRIPTION

QccPack provides data structure QccWAVLiftingScheme for representing a lifting scheme for a two-band wavelet-based analysis and synthesis using lifting (as opposed to filtering; see QccWAVFilterBank(3) ). This lifting-scheme structure can be read from and written to LFT-format files, or a QccWAVLiftingScheme structure can be used without file input or output.

The only component of the lifting-scheme structure is an integer code indicating which lifting scheme to employ. This is due to the fact that the lifting implementations of wavelet analysis and synthesis are "hard-coded" into the QccPack library for purposes of execution speed and ease of implementation (this is opposed to the situation for filter-based analysis and synthesis which employ generic filter routines and read coefficients from files). As a consequence, only a limited number (see below) of wavelets are current supported, and this list cannot be extended by the user (without modifying the QccPack source code, or course).

DATA STRUCTURE

The QccWAVLiftingScheme data structure is defined as:

typedef struct
{
QccString filename;
QccString magic_num;
int major_version;
int minor_version;
int scheme;
} QccWAVLiftingScheme;

The fields of QccWAVLiftingScheme are as follows:

filename
The name of the file.
magic_num, major_version, minor_version
The magic number and version of the file.
scheme
The integer code denoting which lifting scheme to employ. The current possibilities are limited to QCCWAVLIFTINGSCHEME_LWT (Lazy Wavelet transform), QCCWAVLIFTINGSCHEME_Daubechies4 (Daubechies length-4 orthonormal wavelet), QCCWAVLIFTINGSCHEME_CohenDaubechiesFeauveau9_7 (Cohen-Daubechies-Feauveau length 9-7 biorothogonal wavelet), QCCWAVLIFTINGSCHEME_CohenDaubechiesFeauveau5_3 (Cohen-Daubechies-Feauveau length 5-3 biorthogonal wavelet, which is also known as "linear lifting"), QCCWAVLIFTINGSCHEME_IntLWT (integer-valued Lazy Wavelet transform), QCCWAVLIFTINGSCHEME_IntCohenDaubechiesFeauveau9_7 (integer-valued Cohen-Daubechies-Feauveau length 9-7 biorothogonal wavelet), and QCCWAVLIFTINGSCHEME_IntCohenDaubechiesFeauveau5_3 (integer-valued Cohen-Daubechies-Feauveau length 5-3 biorothogonal wavelet).

FILE FORMAT

For reading and writing structures of type QccWAVLiftingScheme, QccPack provides the LFT file format. This file format starts with an ASCII header followed by binary data. The ASCII header consists of magic-number/revision information followed by any amount of white space (space, `\t' (tab), `\n' (newline), `\r' (return)) and/or comments lines (lines starting with `#'). The ASCII integer corresponding to scheme is given following the header.

The LFT file format consists of the following information:

LFTX.X
<white space>
scheme

where LFT is the magic number, X.X is the version number, <white space> is white space and/or comment lines, and scheme is the lifting scheme.

ROUTINES

QccWAVLiftingSchemeInitialize() should be called before any use of a QccWAVLiftingScheme structure. QccWAVLiftingSchemeInitialize() initializes the fields of lifting_scheme to the following values:

filename: NULL string
magic_num: QCCLIFTINGSCHEME_MAGICNUM
major_version, minor_version: initialized to output of QccGetQccPackVersion(3)
scheme: -1 (undefined)

QccWAVLiftingSchemePrint() prints the contents of lifting_scheme to stdout.

QccWAVLiftingSchemeBiorthogonal() returns 1 if lifting_scheme is biorthogonal, 0 otherwise.

QccWAVLiftingSchemeInteger() returns 1 if lifting_scheme is integer-valued, 0 otherwise.

FILES

QccPack comes with the following LFT- format files for specifying certain lifting wavelets. The LFT files and their corresponding wavelets are

LWT.lft - Lazy Wavelet transform
CohenDaubechiesFeauveau.5-3.lft - length 9/5 biorthogonal wavelet
CohenDaubechiesFeauveau.9-7.lft - length 9/7 biorthogonal wavelet
Daubechies.4.lft - length 4 orthogonal wavelet
LWT.int.lft - integer-valued Lazy Wavelet transform
CohenDaubechiesFeauveau.9-7.int.lft - integer-valued length 9/7 biorthogonal wavelet
CohenDaubechiesFeauveau.5-3.int.lft - integer-valued length 5/3 biorthogonal wavelet

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