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

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

public abstract class SynWTFilter
extends Object
implements WaveletFilter, Markers

This abstract class defines the methods of all synthesis 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 SynWTFilterInt and SynWTFilterFloat classes. Implementations of snythesis filters should inherit from one of those classes.

The length of the output signal is always the sum of the length of the low-pass and high-pass input signals.

All synthesis wavelet filters should follow the following conventions:

The synthetize 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.

See Also:
SynWTFilterInt, SynWTFilterFloat

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
SynWTFilter()
           
 
Method Summary
abstract  void synthetize_hpf(Object lowSig, int lowOff, int lowLen, int lowStep, Object highSig, int highOff, int highLen, int highStep, Object outSig, int outOff, int outStep)
          Reconstructs the output signal by the synthesis filter, recomposing the low-pass and high-pass input signals in one output signal.
abstract  void synthetize_lpf(Object lowSig, int lowOff, int lowLen, int lowStep, Object highSig, int highOff, int highLen, int highStep, Object outSig, int outOff, int outStep)
          Reconstructs the output signal by the synthesis filter, recomposing the low-pass and high-pass input signals in one output signal.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface ucar.jpeg.jj2000.j2k.wavelet.WaveletFilter
getAnHighNegSupport, getAnHighPosSupport, getAnLowNegSupport, getAnLowPosSupport, getDataType, getImplType, getSynHighNegSupport, getSynHighPosSupport, getSynLowNegSupport, getSynLowPosSupport, isReversible, isSameAsFullWT
 

Constructor Detail

SynWTFilter

public SynWTFilter()
Method Detail

synthetize_lpf

public abstract void synthetize_lpf(Object lowSig,
                                    int lowOff,
                                    int lowLen,
                                    int lowStep,
                                    Object highSig,
                                    int highOff,
                                    int highLen,
                                    int highStep,
                                    Object outSig,
                                    int outOff,
                                    int outStep)
Reconstructs the output signal by the synthesis filter, recomposing the low-pass and high-pass input signals in one output signal. This method performs the upsampling and fitering with the low pass first filtering convention.

The input low-pass (high-pass) signal resides in the lowSig array. The index of the first sample to filter (i.e. that will generate the first (second) output sample). is given by lowOff (highOff). This array must be of the same type as the one for which the particular implementation works with (which is returned by the getDataType() method).

The low-pass (high-pass) input signal can be interleaved with other signals in the same lowSig (highSig) array, and this is determined by the lowStep (highStep) argument. This means that the first sample of the low-pass (high-pass) input signal is lowSig[lowOff] (highSig[highOff]), the second is lowSig[lowOff+lowStep] (highSig[highOff+highStep]), the third is lowSig[lowOff+2*lowStep] (highSig[highOff+2*highStep]), and so on. Therefore if lowStep (highStep) is 1 there is no interleaving. This feature allows to filter columns of a 2-D signal, when it is stored in a line by line order in lowSig (highSig), without having to copy the data, in this case the lowStep (highStep) argument should be the line width of the low-pass (high-pass) signal.

The output signal is placed in the outSig array. The outOff and outStep arguments are analogous to the lowOff and lowStep ones, but they apply to the outSig array. The outSig array must be long enough to hold the low-pass output signal.

Parameters:
lowSig - This is the array that contains the low-pass input signal. It must be of the correct type (e.g., it must be int[] if getDataType() returns TYPE_INT).
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. See above.
highSig - This is the array that contains the high-pass input signal. It must be of the correct type (e.g., it must be int[] if getDataType() returns TYPE_INT).
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. See above.
outSig - This is the array where the output signal is placed. It must be of the same type as lowSig and 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 above.

synthetize_hpf

public abstract void synthetize_hpf(Object lowSig,
                                    int lowOff,
                                    int lowLen,
                                    int lowStep,
                                    Object highSig,
                                    int highOff,
                                    int highLen,
                                    int highStep,
                                    Object outSig,
                                    int outOff,
                                    int outStep)
Reconstructs the output signal by the synthesis filter, recomposing the low-pass and high-pass input signals in one output signal. This method performs the upsampling and fitering with the high pass first filtering convention.

The input low-pass (high-pass) signal resides in the lowSig array. The index of the first sample to filter (i.e. that will generate the first (second) output sample). is given by lowOff (highOff). This array must be of the same type as the one for which the particular implementation works with (which is returned by the getDataType() method).

The low-pass (high-pass) input signal can be interleaved with other signals in the same lowSig (highSig) array, and this is determined by the lowStep (highStep) argument. This means that the first sample of the low-pass (high-pass) input signal is lowSig[lowOff] (highSig[highOff]), the second is lowSig[lowOff+lowStep] (highSig[highOff+highStep]), the third is lowSig[lowOff+2*lowStep] (highSig[highOff+2*highStep]), and so on. Therefore if lowStep (highStep) is 1 there is no interleaving. This feature allows to filter columns of a 2-D signal, when it is stored in a line by line order in lowSig (highSig), without having to copy the data, in this case the lowStep (highStep) argument should be the line width of the low-pass (high-pass) signal.

The output signal is placed in the outSig array. The outOff and outStep arguments are analogous to the lowOff and lowStep ones, but they apply to the outSig array. The outSig array must be long enough to hold the low-pass output signal.

Parameters:
lowSig - This is the array that contains the low-pass input signal. It must be of the correct type (e.g., it must be int[] if getDataType() returns TYPE_INT).
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. See above.
highSig - This is the array that contains the high-pass input signal. It must be of the correct type (e.g., it must be int[] if getDataType() returns TYPE_INT).
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. See above.
outSig - This is the array where the output signal is placed. It must be of the same type as lowSig and 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 above.


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