jj2000.j2k.wavelet
Interface WaveletFilter

All Known Implementing Classes:
AnWTFilter, SynWTFilter

public interface WaveletFilter

This interface defines how a wavelet filter implementation should present itself. This interface defines only the commonalities between the analysis and synthesis filters. The AnWTFilter and SynWTFilter classes provide the specifics of analysis and synthesis filters.

Both analysis and filters must be able to return the extent of the negative and positive support for both synthesis and analysis sides. This simplifies the sue of some functionalities that need extra information about the filters.

See Also:
AnWTFilter, SynWTFilter

Field Summary
static int WT_FILTER_FLOAT_CONVOL
          The ID for floatring-poitn convolution implementations
static int WT_FILTER_FLOAT_LIFT
          The ID for floating-point lifting spteps implementations
static int WT_FILTER_INT_LIFT
          The ID for integer lifting spteps implementations
 
Method Summary
 int getAnHighNegSupport()
          Returns the negative support of the high-pass analysis filter.
 int getAnHighPosSupport()
          Returns the positive support of the high-pass analysis filter.
 int getAnLowNegSupport()
          Returns the negative support of the low-pass analysis filter.
 int getAnLowPosSupport()
          Returns the positive support of the low-pass analysis filter.
 int getDataType()
          Returns the type of data on which this filter works, as defined in the DataBlk interface.
 int getImplType()
          Returns the implementation type of this filter, as defined in this class, such as WT_FILTER_INT_LIFT, WT_FILTER_FLOAT_LIFT, WT_FILTER_FLOAT_CONVOL.
 int getSynHighNegSupport()
          Returns the negative support of the high-pass synthesis filter.
 int getSynHighPosSupport()
          Returns the positive support of the high-pass synthesis filter.
 int getSynLowNegSupport()
          Returns the negative support of the low-pass synthesis filter.
 int getSynLowPosSupport()
          Returns the positive support of the low-pass synthesis filter.
 boolean isReversible()
          Returns the reversibility of the filter.
 boolean isSameAsFullWT(int tailOvrlp, int headOvrlp, int inLen)
          Returns true if the wavelet filter computes or uses the same "inner" subband coefficient as the full frame wavelet transform, and false otherwise.
 

Field Detail

WT_FILTER_INT_LIFT

public static final int WT_FILTER_INT_LIFT
The ID for integer lifting spteps implementations

See Also:
Constant Field Values

WT_FILTER_FLOAT_LIFT

public static final int WT_FILTER_FLOAT_LIFT
The ID for floating-point lifting spteps implementations

See Also:
Constant Field Values

WT_FILTER_FLOAT_CONVOL

public static final int WT_FILTER_FLOAT_CONVOL
The ID for floatring-poitn convolution implementations

See Also:
Constant Field Values
Method Detail

getAnLowNegSupport

public int getAnLowNegSupport()
Returns the negative support of the low-pass analysis filter. That is the number of taps of the filter in the negative direction.

Returns:
The number of taps of the low-pass analysis filter in the negative direction

getAnLowPosSupport

public int getAnLowPosSupport()
Returns the positive support of the low-pass analysis filter. That is the number of taps of the filter in the negative direction.

Returns:
The number of taps of the low-pass analysis filter in the positive direction

getAnHighNegSupport

public int getAnHighNegSupport()
Returns the negative support of the high-pass analysis filter. That is the number of taps of the filter in the negative direction.

Returns:
The number of taps of the high-pass analysis filter in the negative direction

getAnHighPosSupport

public int getAnHighPosSupport()
Returns the positive support of the high-pass analysis filter. That is the number of taps of the filter in the negative direction.

Returns:
The number of taps of the high-pass analysis filter in the positive direction

getSynLowNegSupport

public int getSynLowNegSupport()
Returns the negative support of the low-pass synthesis filter. That is the number of taps of the filter in the negative direction.

Returns:
The number of taps of the low-pass synthesis filter in the negative direction

getSynLowPosSupport

public int getSynLowPosSupport()
Returns the positive support of the low-pass synthesis filter. That is the number of taps of the filter in the negative direction.

Returns:
The number of taps of the low-pass synthesis filter in the positive direction

getSynHighNegSupport

public int getSynHighNegSupport()
Returns the negative support of the high-pass synthesis filter. That is the number of taps of the filter in the negative direction.

Returns:
The number of taps of the high-pass synthesis filter in the negative direction

getSynHighPosSupport

public int getSynHighPosSupport()
Returns the positive support of the high-pass synthesis filter. That is the number of taps of the filter in the negative direction.

Returns:
The number of taps of the high-pass synthesis filter in the positive direction

getImplType

public int getImplType()
Returns the implementation type of this filter, as defined in this class, such as WT_FILTER_INT_LIFT, WT_FILTER_FLOAT_LIFT, WT_FILTER_FLOAT_CONVOL.

Returns:
The implementation type of this filter: WT_FILTER_INT_LIFT, WT_FILTER_FLOAT_LIFT, WT_FILTER_FLOAT_CONVOL.

getDataType

public int getDataType()
Returns the type of data on which this filter works, as defined in the DataBlk interface.

Returns:
The type of data as defined in the DataBlk interface.
See Also:
DataBlk

isReversible

public boolean isReversible()
Returns the reversibility of the filter. A filter is considered reversible if it is suitable for lossless coding.

Returns:
true if the filter is reversible, false otherwise.

isSameAsFullWT

public boolean isSameAsFullWT(int tailOvrlp,
                              int headOvrlp,
                              int inLen)
Returns true if the wavelet filter computes or uses the same "inner" subband coefficient as the full frame wavelet transform, and false otherwise. In particular, for block based transforms with reduced overlap, this method should return false. The term "inner" indicates that this applies only with respect to the coefficient that are not affected by image boundaries processings such as symmetric extension, since there is not reference method for this.

The result depends on the length of the allowed overlap when compared to the overlap required by the wavelet filter. It also depends on how overlap processing is implemented in the wavelet filter.

Parameters:
tailOvrlp - This is the number of samples in the input signal before the first sample to filter that can be used for overlap.
headOvrlp - This is the number of samples in the input signal after the last sample to filter that can be used for overlap.
inLen - This is the lenght of the input signal to filter.The required number of samples in the input signal after the last sample depends on the length of the input signal.
Returns:
true if the overlaps are large enough and correct processing is performed, false otherwise.