public abstract class SynWTFilter extends Object implements WaveletFilter, Markers
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 first sample of the output corresponds to the low-pass one. As a consequence, if the output signal is of odd-length then the low-pass input signal is one sample longer than the high-pass input one. Therefore, if the length of output signal is N, the low-pass input signal is of length N/2 if N is even and N/2+1/2 if N is odd, while the high-pass input signal is of length N/2 if N is even and N/2-1/2 if N is odd.
- The normalization of the analysis filters is 1 for the DC gain and 2 for the Nyquist gain (Type I normalization), for both reversible and non-reversible filters. The normalization of the synthesis filters should ensure prefect reconstruction according to this normalization of the analysis wavelet filters.
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
WT_FILTER_FLOAT_CONVOL, WT_FILTER_FLOAT_LIFT, WT_FILTER_INT_LIFT
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 and Description |
---|
SynWTFilter() |
Modifier and Type | Method and Description |
---|---|
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.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getAnHighNegSupport, getAnHighPosSupport, getAnLowNegSupport, getAnLowPosSupport, getDataType, getImplType, getSynHighNegSupport, getSynHighPosSupport, getSynLowNegSupport, getSynLowPosSupport, isReversible, isSameAsFullWT
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.Copyright © 2015–2022 SCIFIO. All rights reserved.