ucar.jpeg.jj2000.j2k.wavelet.synthesis
Class SynWTFilterIntLift5x3

java.lang.Object
  extended by ucar.jpeg.jj2000.j2k.wavelet.synthesis.SynWTFilter
      extended by ucar.jpeg.jj2000.j2k.wavelet.synthesis.SynWTFilterInt
          extended by ucar.jpeg.jj2000.j2k.wavelet.synthesis.SynWTFilterIntLift5x3
All Implemented Interfaces:
Markers, WaveletFilter

public class SynWTFilterIntLift5x3
extends SynWTFilterInt

This class inherits from the synthesis wavelet filter definition for int data. It implements the inverse wavelet transform specifically for the 5x3 filter. The implementation is based on the lifting scheme.

See the SynWTFilter 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.

See Also:
SynWTFilter, SynWTFilterInt

Field Summary
 
Fields inherited from interface ucar.jpeg.jj2000.j2k.wavelet.WaveletFilter
WT_FILTER_FLOAT_CONVOL, WT_FILTER_FLOAT_LIFT, WT_FILTER_INT_LIFT
 
Fields inherited from interface ucar.jpeg.jj2000.j2k.codestream.Markers
COC, COD, COM, CRG, EOC, EPH, EPH_LENGTH, ERS_SEG_SYMBOLS, ERS_SOP, MAX_COMP_BITDEPTH, MAX_LPPM, MAX_LPPT, PLM, PLT, POC, PPM, PPT, PRECINCT_PARTITION_DEF_SIZE, QCC, QCD, RCOM_GEN_USE, RGN, RSIZ_BASELINE, RSIZ_ER_FLAG, RSIZ_ROI, SCOX_HOR_CB_PART, SCOX_PRECINCT_PARTITION, SCOX_USE_EPH, SCOX_USE_SOP, SCOX_VER_CB_PART, SIZ, SOC, SOD, SOP, SOP_LENGTH, SOT, SQCX_EXP_MASK, SQCX_EXP_SHIFT, SQCX_GB_MSK, SQCX_GB_SHIFT, SQCX_NO_QUANTIZATION, SQCX_SCALAR_DERIVED, SQCX_SCALAR_EXPOUNDED, SRGN_IMPLICIT, SSIZ_DEPTH_BITS, TLM
 
Constructor Summary
SynWTFilterIntLift5x3()
           
 
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 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.
 void synthetize_hpf(int[] lowSig, int lowOff, int lowLen, int lowStep, int[] highSig, int highOff, int highLen, int highStep, int[] outSig, int outOff, int outStep)
          An implementation of the synthetize_hpf() method that works on int data, for the inverse 5x3 wavelet transform using thelifting scheme.
 void synthetize_lpf(int[] lowSig, int lowOff, int lowLen, int lowStep, int[] highSig, int highOff, int highLen, int highStep, int[] outSig, int outOff, int outStep)
          An implementation of the synthetize_lpf() method that works on int data, for the inverse 5x3 wavelet transform using the lifting scheme.
 String toString()
          Returns a string of information about the synthesis wavelet filter
 
Methods inherited from class ucar.jpeg.jj2000.j2k.wavelet.synthesis.SynWTFilterInt
getDataType, synthetize_hpf, synthetize_lpf
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

SynWTFilterIntLift5x3

public SynWTFilterIntLift5x3()
Method Detail

synthetize_lpf

public void synthetize_lpf(int[] lowSig,
                           int lowOff,
                           int lowLen,
                           int lowStep,
                           int[] highSig,
                           int highOff,
                           int highLen,
                           int highStep,
                           int[] outSig,
                           int outOff,
                           int outStep)
An implementation of the synthetize_lpf() method that works on int data, for the inverse 5x3 wavelet transform using the lifting scheme. See the general description of the synthetize_lpf() method in the SynWTFilter class for more details.

The coefficients of the first lifting step are [-1/4 1 -1/4].

The coefficients of the second lifting step are [1/2 1 1/2].

Specified by:
synthetize_lpf in class SynWTFilterInt
Parameters:
lowSig - This is the array that contains the low-pass input signal.
lowOff - This is the index in lowSig of the first sample to filter.
lowLen - This is the number of samples in the low-pass input signal to filter.
lowStep - This is the step, or interleave factor, of the low-pass input signal samples in the lowSig array.
highSig - This is the array that contains the high-pass input signal.
highOff - This is the index in highSig of the first sample to filter.
highLen - This is the number of samples in the high-pass input signal to filter.
highStep - This is the step, or interleave factor, of the high-pass input signal samples in the highSig array.
outSig - This is the array where the output signal is placed. It should be long enough to contain the output signal.
outOff - This is the index in outSig of the element where to put the first output sample.
outStep - This is the step, or interleave factor, of the output samples in the outSig array.
See Also:
SynWTFilter.synthetize_lpf(java.lang.Object, int, int, int, java.lang.Object, int, int, int, java.lang.Object, int, int)

synthetize_hpf

public void synthetize_hpf(int[] lowSig,
                           int lowOff,
                           int lowLen,
                           int lowStep,
                           int[] highSig,
                           int highOff,
                           int highLen,
                           int highStep,
                           int[] outSig,
                           int outOff,
                           int outStep)
An implementation of the synthetize_hpf() method that works on int data, for the inverse 5x3 wavelet transform using thelifting scheme. See the general description of the synthetize_hpf() method in the SynWTFilter class for more details.

The coefficients of the first lifting step are [-1/4 1 -1/4].

The coefficients of the second lifting step are [1/2 1 1/2].

Specified by:
synthetize_hpf in class SynWTFilterInt
Parameters:
lowSig - This is the array that contains the low-pass input signal.
lowOff - This is the index in lowSig of the first sample to filter.
lowLen - This is the number of samples in the low-pass input signal to filter.
lowStep - This is the step, or interleave factor, of the low-pass input signal samples in the lowSig array.
highSig - This is the array that contains the high-pass input signal.
highOff - This is the index in highSig of the first sample to filter.
highLen - This is the number of samples in the high-pass input signal to filter.
highStep - This is the step, or interleave factor, of the high-pass input signal samples in the highSig array.
outSig - This is the array where the output signal is placed. It should be long enough to contain the output signal.
outOff - This is the index in outSig of the element where to put the first output sample.
outStep - This is the step, or interleave factor, of the output samples in the outSig array.
See Also:
SynWTFilter.synthetize_hpf(java.lang.Object, int, int, int, java.lang.Object, int, int, int, java.lang.Object, int, int)

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:
2

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:
WT_FILTER_INT_LIFT.

isReversible

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

Returns:
true since the 5x3 is reversible, provided the appropriate rounding is performed.

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 both overlaps are greater than 2, and correct processing is applied in the analyze() method.

toString

public String toString()
Returns a string of information about the synthesis wavelet filter

Overrides:
toString in class Object
Returns:
wavelet filter type.


Copyright © 1999-2011 UCAR/Unidata. All Rights Reserved.