Meyer Pyramid (Non-decimated Two-Dimensional Discrete Wavelet Transform)

DESCRIPTION:

Applies the Meyer Pyramid transform, a non-decimated (over-sampled) two dimensional discrete wavelet transform to an image or a matrix

USAGE:

meyer.pyramid(x, wavelet="s8", n.levels=NULL, boundary="periodic", 
          dual=F, analysis.filter=NULL, synthesis.filter=NULL) 

REQUIRED ARGUMENTS:

x
an image or a matrix (see details below for restrictions)

OPTIONAL ARGUMENTS:

wavelet
a character string giving the name of the wavelet, e.g. "d4", "s8", see wavelet for all available wavelet names. If the length of wavelet is one, the same wavelet is used for both row and column. See wavelet for details. For user-provided filter, input the values in analysis.filter below.
n.levels
a non-negative integer or a non-negative integer vector of length two.
boundary
a character string giving the boundary rules. If the length of boundary is one, the same boundary rule is used for both row and column. The only available rule currently is: `"periodic".
dual
logical flag indicating if dual filter is used for analysis instead of synthesis. This argument applies only for biorthogonal wavelets. See wavelet for details.
analysis.filter
a numerical vector or a list of two vectors for user-defined analysis filter, see filter argument in wave.filter for details.
synthesis.filter
a numerical vector or a list of two vectors for user-defined synthesis filter, see filter argument in wave.filter for details. When analysis.filter is provided, then the default synthesis.filter is also analysis.filter.

VALUE:

an object of class meyer.pyramid, inheriting from the classes dwt.2d , wpt.2d, and crystal.matrix. See crystal.matrix.object for details.

DETAILS:

This transform was develoed by Meyer and Coifman and used for motion estimation. This non-decimated two dimensional discrete wavelet transform is non-orthogonal variant of the classical 2-D DWT and also a variant of the highly oversampled non-decimated nd.dwt.2d. Unlike the dwt.2d or the nd.dwt.2d function, the low-pass coefficients are subsampled at each level while the high-pass coeficients are not. With the Meyer pyramid, starting with nr x nc sample values, you end up with 4.nr.nc coefficients. The non-decimated wavelet transform can be inverted using the reconstruct function. Refer to the section "Non-Decimated Wavelets" in the S+WAVELETS User's Manual for more details about the meyer.pyramid function. The forward and the inverse transform work only for image size that is multiple of 2^J where J is the number of levels. For other image sizes while the forward transform works, the inverse transform does not. All the default optional arguments can be reset using function wavelet.options . See wavelet.options for details. Under "periodic" boundary rule (the only boundary rule currently supported), matrix x is assumed to be periodic.

REFERENCES:

Meyer, F.G., Averbuch, A. Z., and Coifman, R.R. (1997). Motion Compenstaion of Wavelet Coeficients with Wavelet Packet Based Motion Residual Coding. IEEE Transactions on Circuits and Systems for Video Technology, October 1997. Mallat, S. and Hwang, W. L. (1992). Singularity Detection and Processing with Wavelets. IEEE Transactions on Information Theory, 38 (2), 617-643.

SEE ALSO:

, , , , , , .

EXAMPLES:

nd.brain <- meyer.pyramid(brain, n.levels=2) 
image(nd.brain[["s1-s1"]])