| java.lang.Object jj2000.j2k.wavelet.synthesis.InvWTAdapter jj2000.j2k.wavelet.synthesis.InverseWT jj2000.j2k.wavelet.synthesis.InvWTFull
InvWTFull | public class InvWTFull extends InverseWT (Code) | | This class implements the InverseWT with the full-page approach for int and
float data.
The image can be reconstructed at different (image) resolution levels
indexed from the lowest resolution available for each tile-component. This
is controlled by the setImgResLevel() method.
Note: Image resolution level indexes may differ from tile-component
resolution index. They are indeed indexed starting from the lowest number
of decomposition levels of each component of each tile.
Example: For an image (1 tile) with 2 components (component 0 having 2
decomposition levels and component 1 having 3 decomposition levels), the
first (tile-) component has 3 resolution levels and the second one has 4
resolution levels, whereas the image has only 3 resolution levels
available.
This implementation does not support progressive data, all data is
considered to be non-progressive (i.e. "final" data) and the 'progressive'
attribute of the 'DataBlk' class is always set to false, see the 'DataBlk'
class.
See Also: DataBlk |
Method Summary | |
public DataBlk | getCompData(DataBlk blk, int c) Returns a block of image data containing the specifed rectangular area,
in the specified component, as a copy (see below). | public int | getFixedPoint(int c) Returns the position of the fixed point in the specified
component. | public int | getImplementationType(int c) Returns the implementation type of this wavelet transform, WT_IMPL_FULL
(full-page based transform). | final public DataBlk | getInternCompData(DataBlk blk, int c) Returns a block of image data containing the specifed rectangular area,
in the specified component, as a reference to the internal buffer (see
below). | public int | getNomRangeBits(int c) Returns the number of bits, referred to as the "range bits",
corresponding to the nominal range of the data in the specified
component.
The returned value corresponds to the nominal dynamic range of the
reconstructed image data, as long as the getNomRangeBits() method of
the source returns a value corresponding to the nominal dynamic range
of the image data and not not of the wavelet coefficients.
If this number is b then for unsigned data the nominal range
is between 0 and 2^b-1, and for signed data it is between -2^(b-1) and
2^(b-1)-1.
Parameters: c - The index of the component. | public boolean | isReversible(int t, int c) Returns the reversibility of the wavelet transform for the specified
component, in the current tile. | public void | nextTile() Advances to the next tile, in standard scan-line order (by rows then
columns). | public void | setTile(int x, int y) Changes the current tile, given the new indexes. |
InvWTFull | public InvWTFull(CBlkWTDataSrcDec src, DecoderSpecs decSpec)(Code) | | Initializes this object with the given source of wavelet
coefficients. It initializes the resolution level for full resolutioin
reconstruction.
Parameters: src - from where the wavelet coefficinets should beobtained. Parameters: decSpec - The decoder specifications |
getCompData | public DataBlk getCompData(DataBlk blk, int c)(Code) | | Returns a block of image data containing the specifed rectangular area,
in the specified component, as a copy (see below). The rectangular area
is specified by the coordinates and dimensions of the 'blk' object.
The area to return is specified by the 'ulx', 'uly', 'w' and 'h'
members of the 'blk' argument. These members are not modified by this
method.
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 block's width. See the 'DataBlk'
class.
If the data array in 'blk' is null, then a new one is
created. If the data array is not null then it must be big
enough to contain the requested area.
The returned data always has its 'progressive' attribute unset (i.e
false)
Parameters: blk - Its coordinates and dimensions specify the area toreturn. If it contains a non-null data array, then it must be largeenough. If it contains a null data array a new one is created. Thefields in this object are modified to return the data. Parameters: c - The index of the component from which to get the data. The requested DataBlk See Also: InvWTFull.getCompData |
getFixedPoint | public int getFixedPoint(int c)(Code) | | Returns the position of the fixed point in 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.
This default implementation assumes that the wavelet transform does
not modify the fixed point. If that were the case this method should be
overriden.
Parameters: c - The index of the component. The position of the fixed-point, which is the same as thenumber of fractional bits. For floating-point data 0 is returned. |
getImplementationType | public int getImplementationType(int c)(Code) | | Returns the implementation type of this wavelet transform, WT_IMPL_FULL
(full-page based transform). All components return the same.
Parameters: c - The index of the component. WT_IMPL_FULL See Also: WaveletTransform.WT_IMPL_FULL |
getInternCompData | final public DataBlk getInternCompData(DataBlk blk, int c)(Code) | | Returns a block of image data containing the specifed rectangular area,
in the specified component, as a reference to the internal buffer (see
below). The rectangular area is specified by the coordinates and
dimensions of the 'blk' object.
The area to return is specified by the 'ulx', 'uly', 'w' and 'h'
members of the 'blk' argument. These members are not modified by this
method.
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.
The returned data has its 'progressive' attribute unset
(i.e. false).
Parameters: blk - Its coordinates and dimensions specify the area to return. Parameters: c - The index of the component from which to get the data. The requested DataBlk See Also: InvWTFull.getInternCompData |
getNomRangeBits | public int getNomRangeBits(int c)(Code) | | Returns the number of bits, referred to as the "range bits",
corresponding to the nominal range of the data in the specified
component.
The returned value corresponds to the nominal dynamic range of the
reconstructed image data, as long as the getNomRangeBits() method of
the source returns a value corresponding to the nominal dynamic range
of the image data and not not of the wavelet coefficients.
If this number is b then for unsigned data the nominal range
is between 0 and 2^b-1, and for signed data it is between -2^(b-1) and
2^(b-1)-1.
Parameters: c - The index of the component. The number of bits corresponding to the nominal range of thedata. |
isReversible | public boolean isReversible(int t, int c)(Code) | | Returns the reversibility of the wavelet transform for the specified
component, in the current tile. A wavelet transform is reversible when
it is suitable for lossless and lossy-to-lossless compression.
Parameters: t - The index of the tile. Parameters: c - The index of the component. true is the wavelet transform is reversible, false if not. |
nextTile | public void nextTile()(Code) | | Advances to the next tile, in standard scan-line order (by rows then
columns). An 'NoNextElementException' is thrown if the current tile is
the last one (i.e. there is no next tile).
|
setTile | public void setTile(int x, int y)(Code) | | Changes the current tile, given the new indexes. An
IllegalArgumentException is thrown if the indexes do not correspond to
a valid tile.
Parameters: x - The horizontal index of the tile. Parameters: y - The vertical index of the new tile. |
|
|