ComponentOne PdfViewer for WPF and Silverlight
C1.WPF.PdfViewer.4.6.2 Assembly / CSJ2K.j2k.wavelet.analysis Namespace
Inheritance Hierarchy
In This Topic
    CSJ2K.j2k.wavelet.analysis Namespace
    In This Topic
    Classes
     ClassDescription
    Class

    This abstract class defines the methods of all analysis wavelet filters. Specialized abstract classes that work on particular data types (int, float) provide more specific method calls while retaining the generality of this one. See the AnWTFilterInt and AnWTFilterFloat classes. Implementations of analysis filters should inherit from one of those classes.

    All analysis wavelet filters should follow the following conventions:
    • The first sample to filter is the low-pass one. As a consequence, if the input signal is of odd-length then the low-pass output signal is one sample longer than the high-pass output one. Therefore, if the length of input signal is N, the low-pass output signal is of length N/2 if N is even and N/2+1/2 if N is odd, while the high-pass output signal is of length N/2 if N is even and N/2-1/2 if N is odd.
    • The normalization is 1 for the DC gain and 2 for the Nyquist gain (Type I normalization), for both reversible and non-reversible filters.
    • If the length of input signal is N, the low-pass output signal is of length N/2 if N is even and N/2+1/2 if N is odd, while the high-pass output sample is of length N/2 if N is even and N/2-1/2 if N is odd.
    • The analyze method may seem very complicated, but is designed to minimize the amount of data copying and redundant calculations when used for block-based or line-based wavelet transform implementations, while being applicable to full-frame transforms as well.
    • All filters should implement the equals() method of the Object class. The call x.equals(y) should test if the 'x' and 'y' filters are the same or not, in what concerns the bit stream header syntax (two filters are the same if the same filter code should be output to the bit stream).
    Class 
    Class 
    Class 
    ClassThis class inherits from the analysis wavelet filter definition for int data. It implements the forward wavelet transform specifically for the 5x3 filter. The implementation is based on the lifting scheme.

    See the AnWTFilter class for details such as normalization, how to split odd-length signals, etc. In particular, this method assumes that the low-pass coefficient is computed first.

    ClassThis class extends ModuleSpec class for analysis filters specification holding purpose.
    ClassThis is a generic abstract class to store a code-block of wavelet data, quantized or not. This class does not have the notion of components. Therefore, it should be used for data from a single component. Subclasses should implement the different types of storage (int, float, etc.).

    The data is always stored in one array, of the type matching the data type (i.e. for 'int' it's an 'int[]'). The data should be stored in the array in standard scan-line order. That is the samples go from the top-left corner of the code-block to the lower-right corner by line and then column.

    The member variable 'offset' gives the index in the array of the first data element (i.e. the top-left coefficient). The member variable 'scanw' gives the width of the scan that is used to store the data, that can be different from the width of the block. Element '(x,y)' of the code-block (i.e. '(0,0)' is the top-left coefficient), will appear at position 'offset+y*scanw+x' in the array of data.

    The classes CBlkWTDataInt and CBlkWTDataFloat provide implementations for int and float types respectively.

    The types of data are the same as those defined by the 'DataBlk' class.

    ClassThis is an implementation of the 'CBlkWTData' abstract class for 32 bit floating point data (float).

    The methods in this class are declared final, so that they can be inlined by inlining compilers.

    ClassThis is an implementation of the 'CBlkWTData' abstract class for signed 32 bit integer data.

    The methods in this class are declared final, so that they can be inlined by inlining compilers.

    ClassThis abstract class represents the forward wavelet transform functional block. The functional block may actually be comprised of several classes linked together, but a subclass of this abstract class is the one that is returned as the functional block that performs the forward wavelet transform.

    This class assumes that data is transferred in code-blocks, as defined by the 'CBlkWTDataSrc' interface. The internal calculation of the wavelet transform may be done differently but a buffering class should convert to that type of transfer.

    ClassThis class implements the ForwardWT abstract class with the full-page approach to be used either with integer or floating-point filters
    ClassThis class represents a subband in a bidirectional tree structure that describes the subband decomposition for a wavelet transform, specifically for the analysis side.

    The element can be either a node or a leaf of the tree. If it is a node then ther are 4 descendants (LL, HL, LH and HH). If it is a leaf there are no descendants.

    The tree is bidirectional. Each element in the tree structure has a "parent", which is the subband from which the element was obtained by decomposition. The only exception is the root element which has no parent (i.e.it's null), for obvious reasons.

    Interfaces
     InterfaceDescription
    InterfaceThis abstract class defines methods to transfer wavelet data in a code-block by code-block basis. In each call to 'getNextCodeBlock()' or 'getNextInternCodeBlock()' a new code-block is returned. The code-blocks are returned in no specific order.

    This class is the source of data for the quantizer. See the 'Quantizer' class.

    Note that no more of one object may request data, otherwise one object would get some of the data and another one another part, in no defined manner.

    InterfaceThis interface extends the WaveletTransform with the specifics of forward wavelet transforms. Classes that implement forward wavelet transfoms should implement this interface.

    This class does not define the methods to transfer data, just the specifics to forward wavelet transform. Different data transfer methods are evisageable for different transforms.

    InterfaceThis interface extends the ImgData interface with methods that are necessary for forward wavelet data (i.e. data that is produced by a forward wavelet transform).
    See Also