nag_wav_2d_coeff_ext (c09eyc) (PDF version)
c09 Chapter Contents
c09 Chapter Introduction
NAG Library Manual

NAG Library Function Document

nag_wav_2d_coeff_ext (c09eyc)

+ Contents

    1  Purpose
    7  Accuracy
    10  Example

1  Purpose

nag_wav_2d_coeff_ext (c09eyc) extracts a selected set of discrete wavelet transform (DWT) coefficients from the full set of coefficients stored in compact form, as computed by nag_mldwt_2d (c09ecc) (two-dimensional DWT).

2  Specification

#include <nag.h>
#include <nagc09.h>
void  nag_wav_2d_coeff_ext (Integer ilev, Integer cindex, Integer lenc, const double c[], double d[], Integer pdd, Integer icomm[], NagError *fail)

3  Description

nag_wav_2d_coeff_ext (c09eyc) is intended to be used after a call to nag_mldwt_2d (c09ecc) (two-dimensional DWT), which in turn should be preceded by a call to nag_wfilt_2d (c09abc) (two-dimensional wavelet filter initialization). Given an initial two-dimensional data set A, a prior call to nag_mldwt_2d (c09ecc) computes the approximation coefficients (at the highest requested level) and three sets of detail coeficients at all levels and stores these in compact form in a one-dimensional array c. nag_wav_2d_coeff_ext (c09eyc) can then extract either the approximation coefficients or one of the sets of detail coefficients at one of the levels into a matrix D. The dimensions of D depend on the level extracted and are available from the arrays dwtlvm and dwtlvn as returned by nag_mldwt_2d (c09ecc) which contain the first and second dimensions respectively. See Section 2.1 in the c09 Chapter Introduction for a discussion of the two-dimensional DWT.

4  References

None.

5  Arguments

Note: the following notation is used in this section:
1:     ilevIntegerInput
On entry: the level at which coefficients are to be extracted.
Constraints:
2:     cindexIntegerInput
On entry: identifies which coefficients to extract. The coefficients are identified as follows:
cindex=0
The approximation coefficients, produced by application of the low pass filter over columns and rows of the original matrix (LL). The approximation coefficients are available only for ilev=nwl, where nwl is the value used in a preceding call to nag_mldwt_2d (c09ecc).
cindex=1
The vertical detail coefficients produced by applying the low pass filter over columns of the original matrix and the high pass filter over rows (LH).
cindex=2
The horizontal detail coefficients produced by applying the high pass filter over columns of the original matrix and the low pass filter over rows (HL).
cindex=3
The diagonal detail coefficients produced by applying the high pass filter over columns and rows of the original matrix (HH).
Constraint: 0cindex3 when ilev=nwl as used in nag_mldwt_2d (c09ecc), otherwise 1cindex3.
3:     lencIntegerInput
On entry: the dimension of the array c.
Constraint: lenc must be unchanged from the value used in the preceding call to nag_mldwt_2d (c09ecc)..
4:     c[lenc]const doubleInput
On entry: DWT coefficients, as computed by a preceding call to nag_mldwt_2d (c09ecc).
5:     d[dim]doubleOutput
Note: the dimension, dim, of the array d must be at least pdd×ncn.
On exit: the requested coefficients.
If ilev=nwl (as used in nag_mldwt_2d (c09ecc)) and cindex=0, the ncm by ncn approximation coefficients aij are stored in d[j-1×pdd+i-1], for i=1,2,,ncm and j=1,2,,ncn.
Otherwise the ncm by ncn level ilev detail coefficients (of type specified by cindex) dij are stored in d[j-1×pdd+i-1], for i=1,2,,ncm and j=1,2,,ncn.
6:     pddIntegerInput
On entry: the stride separating row elements in the two-dimensional data stored in the array d.
Constraint: pdd>ncm.
7:     icomm[180]IntegerCommunication Array
On entry: contains details of the discrete wavelet transform and the problem dimension as setup in the call to the initialization function nag_wfilt_2d (c09abc).
8:     failNagError *Input/Output
The NAG error argument (see Section 3.6 in the Essential Introduction).

6  Error Indicators and Warnings

NE_ALLOC_FAIL
Dynamic memory allocation failed.
NE_BAD_PARAM
On entry, argument value had an illegal value.
NE_INITIALIZATION
Either the initialization function has not been called first or icomm has been corrupted.
Either the initialization function was called with wtrans=Nag_SingleLevel or icomm has been corrupted.
NE_INT
On entry, cindex=value.
Constraint: cindex3.
On entry, cindex=value.
Constraint: cindex0.
On entry, ilev=value.
Constraint: ilev1.
NE_INT_2
On entry, ilev=value and nwl=value.
Constraint: ilevnwl, where nwl is the number of levels used in the call to nag_mldwt_2d (c09ecc).
On entry, lenc=value and nct=value.
Constraint: lencnct, where nct is the number of DWT coefficients computed in a previous call to nag_mldwt_2d (c09ecc).
On entry, pdd=value and ncm=value.
Constraint: pddncm, where ncm is the number of DWT coefficients in the first dimension at the selected level ilev.
NE_INT_3
On entry, ilev=value and nwl=value, but cindex=0.
Constraint: cindex>0 when ilev<nwl in the preceding call to nag_mldwt_2d (c09ecc).
NE_INTERNAL_ERROR
An internal error has occurred in this function. Check the function call and any array sizes. If the call is correct then please contact NAG for assistance.

7  Accuracy

Not applicable.

8  Parallelism and Performance

Not applicable.

9  Further Comments

None.

10  Example

See Section 10 in nag_wfilt_2d (c09abc)nag_mldwt_2d (c09ecc) and nag_wav_2d_coeff_ins (c09ezc).

nag_wav_2d_coeff_ext (c09eyc) (PDF version)
c09 Chapter Contents
c09 Chapter Introduction
NAG Library Manual

© The Numerical Algorithms Group Ltd, Oxford, UK. 2014