Table of Contents

NAME

QccWAVFilterBankMakeOrthogonal, QccWAVFilterBankMakeBiorthogonal - construct orthogonal and biorthogonal filter banks given a set of coefficient for the primary filter

SYNOPSIS

#include "libQccPack.h"

int QccWAVFilterBankMakeOrthogonal(QccWAVFilterBank *filter_bank, const QccFilter *primary_filter);
int QccWAVFilterBankMakeBiorthogonal(QccWAVFilterBank *filter_bank, const QccFilter *primary_filter, const QccFilter *dual_filter);
int QccWAVFilterBankBiorthogonal(const QccWAVFilterBank *filter_bank);

DESCRIPTION

QccWAVFilterBankMakeOrthogonal constructs an orthogonal wavelet filter bank using the set of coefficients given by primary_filter; that is, primary_filter is the lowpass synthesis filter (scaling filter), h[n], of the wavelet filter bank. The other three filters necessary for the filter bank are constructed from h[n]. Specifically, the lowpass analysis filter is h[-n], the highpass synthesis filter (wavelet filter) is g[n] = (-(-1)^n) * h[N - 1 - n], and the highpass analysis filter is g[-n]. Here, N is primary_filter->length, the length of the filters. Note that primary_filter must be causal (i.e., primary_filter->causality = QCCFILTER_CAUSAL) or an error will be returned.

QccWAVFilterBankMakeBiorthogonal() constructs a biorthogonal wavelet filter bank using the sets of coefficients given by primary_filter and dual_filter. primary_filter is the primary filter of the biorthogonal filter bank, i.e., the lowpass synthesis filter (primary scaling filter). dual_filter is the dual filter of the biorthogonal filter bank, i.e., the lowpass analysis filter (dual scaling filter). Both primary_filter and dual_filter must be symmetric (i.e., primary_filter->causality = QCCFILTER_SYMMETRIC and likewise for dual_filter) or an error will be returned. The highpass synthesis and highpass analysis filters and constructed using "alternate sign flip" from primary_filter and dual_filter.

For both of these routines, filter_bank is first allocated via a call to QccWAVFilterBankAlloc(3) and then the four filters are stored in the appropriate fields of filter_bank.

QccWAVFilterBankBiorthogonal() returns 1 if filter_bank is a biorthogonal filter bank, and 0 if it is not.

SEE ALSO

QccFilter(3) , QccWAVFilterBank(3) , QccPackWAV(3) , QccPack(3)

M. Antonini, M. Barlaud, P. Mathieu, and I. Daubechies, "Image Coding Using Wavelet Transform," IEEE Transactions on Image Processing, vol. 1, pp. 205-220, April 1992.

AUTHOR

Copyright (C) 1997-2021 James E. Fowler


Table of Contents



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