|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectucar.jpeg.jj2000.j2k.wavelet.synthesis.SynWTFilter
public abstract class SynWTFilter
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.
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 |
---|
public SynWTFilter()
Method Detail |
---|
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)
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.
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.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)
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.
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.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |