| java.lang.Object jj2000.j2k.wavelet.synthesis.MultiResImgDataAdapter jj2000.j2k.quantization.dequantizer.Dequantizer jj2000.j2k.quantization.dequantizer.StdDequantizer
StdDequantizer | public class StdDequantizer extends Dequantizer (Code) | | This class implements a scalar dequantizer with deadzone. The output can be
either integer ('int') or floating-point ('float') data. The dequantization
step sizes and other parameters are taken from a StdDequantizerParams
class, which inherits from DequantizerParams.
Sign magnitude representation is used (instead of two's complement) for
the input data. The most significant bit is used for the sign (0 if
positive, 1 if negative). Then the magnitude of the quantized coefficient
is stored in the next most significat bits. The most significant magnitude
bit corresponds to the most significant bit-plane and so on.
When reversible quantization is used, this class only converts between
the sign-magnitude representation and the integer (or eventually
fixed-point) output, since there is no true quantization.
The output data is fixed-point two's complement for 'int' output and
floating-point for 'float' output. The type of output and the number number
of fractional bits for 'int' output are defined at the constructor. Each
component may have a different number of fractional bits.
The reconstruction levels used by the dequantizer are exactly what is
received from the entropy decoder. It is assumed that the entropy decoder
always returns codewords that are midways in the decoded intervals. In this
way the dequantized values will always lie midways in the quantization
intervals.
|
Method Summary | |
final public DataBlk | getCodeBlock(int c, int m, int n, SubbandSyn sb, DataBlk cblk) Returns the specified code-block in the current tile for the specified
component, as a copy (see below).
The returned code-block may be progressive, which is indicated by
the 'progressive' variable of the returned 'DataBlk' object. | public int | getFixedPoint(int c) Returns the position of the fixed point in the output data for the
specified component. | final public DataBlk | getInternCodeBlock(int c, int m, int n, SubbandSyn sb, DataBlk cblk) Returns the specified code-block in the current tile for the specified
component (as a reference or copy).
The returned code-block may be progressive, which is indicated by
the 'progressive' variable of the returned 'DataBlk'
object. |
StdDequantizer | public StdDequantizer(CBlkQuantDataSrcDec src, int[] utrb, DecoderSpecs decSpec)(Code) | | Initializes the source of compressed data. And sets the number of range
bits and fraction bits and receives the parameters for the dequantizer.
Parameters: src - From where to obtain the quantized data. Parameters: rb - The number of "range bits" (bitdepth) for each component(must be the "range bits" of the un-transformed components). For adefinition of "range bits" see the getNomRangeBits() method. Parameters: qts - The quantizer type spec Parameters: qsss - The dequantizer step sizes spec See Also: Dequantizer.getNomRangeBits exception: IllegalArgumentException - Thrown if 'outdt' is neitherTYPE_FLOAT nor TYPE_INT, or if 'param' specify reversible quantizationand 'outdt' is not TYPE_INT or 'fp' has non-zero values, or if 'outdt'is TYPE_FLOAT and 'fp' has non-zero values. |
getCodeBlock | final public DataBlk getCodeBlock(int c, int m, int n, SubbandSyn sb, DataBlk cblk)(Code) | | Returns the specified code-block in the current tile for the specified
component, as a copy (see below).
The returned code-block may be progressive, which is indicated by
the 'progressive' variable of the returned 'DataBlk' object. If a
code-block is progressive it means that in a later request to this
method for the same code-block it is possible to retrieve data which is
a better approximation, since meanwhile more data to decode for the
code-block could have been received. If the code-block is not
progressive then later calls to this method for the same code-block
will return the exact same data values.
The data returned by this method is always a copy of the internal
data of this object, if any, and it can be modified "in place" without
any problems after being returned. The 'offset' of the returned data is
0, and the 'scanw' is the same as the code-block width. See the
'DataBlk' class.
Parameters: c - The component for which to return the next code-block. Parameters: m - The vertical index of the code-block to return, in thespecified subband. Parameters: n - The horizontal index of the code-block to return, in thespecified subband. Parameters: sb - The subband in which the code-block to return is. Parameters: cblk - If non-null this object will be used to return the newcode-block. If null a new one will be allocated and returned. If the"data" array of the object is non-null it will be reused, if possible,to return the data. The next code-block in the current tile for component 'n', ornull if all code-blocks for the current tile have been returned. See Also: DataBlk |
getFixedPoint | public int getFixedPoint(int c)(Code) | | Returns the position of the fixed point in the output data for the
specified component. This is the position of the least significant
integral (i.e. non-fractional) bit, which is equivalent to the number
of fractional bits. For instance, for fixed-point values with 2
fractional bits, 2 is returned. For floating-point data this value does
not apply and 0 should be returned. Position 0 is the position of the
least significant bit in the data. If the output data is 'float' then 0
is always returned.
Note: Fractional bits are no more supported by JJ2000.
Parameters: c - The index of the component. The position of the fixed-point, which is the same asthe number of fractional bits. For floating-point data 0 isreturned. |
getInternCodeBlock | final public DataBlk getInternCodeBlock(int c, int m, int n, SubbandSyn sb, DataBlk cblk)(Code) | | Returns the specified code-block in the current tile for the specified
component (as a reference or copy).
The returned code-block may be progressive, which is indicated by
the 'progressive' variable of the returned 'DataBlk'
object. If a code-block is progressive it means that in a later request
to this method for the same code-block it is possible to retrieve data
which is a better approximation, since meanwhile more data to decode
for the code-block could have been received. If the code-block is not
progressive then later calls to this method for the same code-block
will return the exact same data values.
The data returned by this method can be the data in the internal
buffer of this object, if any, and thus can not be modified by the
caller. The 'offset' and 'scanw' of the returned data can be
arbitrary. See the 'DataBlk' class.
Parameters: c - The component for which to return the next code-block. Parameters: m - The vertical index of the code-block to return, in thespecified subband. Parameters: n - The horizontal index of the code-block to return, in thespecified subband. Parameters: sb - The subband in which the code-block to return is. Parameters: cblk - If non-null this object will be used to return the newcode-block. If null a new one will be allocated and returned. If the"data" array of the object is non-null it will be reused, if possible,to return the data. The next code-block in the current tile for component 'n', ornull if all code-blocks for the current tile have been returned. See Also: DataBlk |
|
|