public class InvWTFull extends InverseWT
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.
DataBlk
Modifier and Type | Field and Description |
---|---|
private int |
cblkToDecode
The total number of code-blocks to decode
|
private int |
dtype
Current data type
|
private int |
nDecCblk
The number of already decoded code-blocks
|
private int[] |
ndl
Number of decomposition levels in each component
|
private ProgressWatch |
pw
Reference to the ProgressWatch instance if any
|
private DataBlk[] |
reconstructedComps
block storing the reconstructed image for each component
|
private boolean[][] |
reversible
The reversible flag for each component in each tile.
|
private CBlkWTDataSrcDec |
src
the code-block buffer's source i.e.
|
decSpec, maxImgRes, mressrc, reslvl
WT_IMPL_FULL, WT_IMPL_LINE
Constructor and Description |
---|
InvWTFull(CBlkWTDataSrcDec src,
DecoderSpecs decSpec)
Initializes this object with the given source of wavelet
coefficients.
|
Modifier and Type | Method and Description |
---|---|
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).
|
int |
getFixedPoint(int c)
Returns the position of the fixed point in the specified
component.
|
int |
getImplementationType(int c)
Returns the implementation type of this wavelet transform, WT_IMPL_FULL
(full-page based transform).
|
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).
|
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.
|
boolean |
isReversible(int t,
int c)
Returns the reversibility of the wavelet transform for the specified
component, in the current tile.
|
private boolean |
isSubbandReversible(Subband subband)
Returns the reversibility of the current subband.
|
void |
nextTile()
Advances to the next tile, in standard scan-line order (by rows then
columns).
|
void |
setTile(int x,
int y)
Changes the current tile, given the new indexes.
|
private void |
wavelet2DReconstruction(DataBlk db,
SubbandSyn sb,
int c)
Performs the 2D inverse wavelet transform on a subband of the image, on
the specified component.
|
private void |
waveletTreeReconstruction(DataBlk img,
SubbandSyn sb,
int c)
Performs the inverse wavelet transform on the whole component.
|
createInstance
getCompImgHeight, getCompImgWidth, getCompSubsX, getCompSubsY, getCompULX, getCompULY, getImgHeight, getImgULX, getImgULY, getImgWidth, getNomTileHeight, getNomTileWidth, getNumComps, getNumTiles, getNumTiles, getSynSubbandTree, getTile, getTileCompHeight, getTileCompWidth, getTileHeight, getTileIdx, getTilePartULX, getTilePartULY, getTileWidth, setImgResLevel
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getCompImgHeight, getCompImgWidth, getCompSubsX, getCompSubsY, getCompULX, getCompULY, getImgHeight, getImgULX, getImgULY, getImgWidth, getNomTileHeight, getNomTileWidth, getNumComps, getNumTiles, getNumTiles, getTile, getTileCompHeight, getTileCompWidth, getTileHeight, getTileIdx, getTilePartULX, getTilePartULY, getTileWidth
private ProgressWatch pw
private int cblkToDecode
private int nDecCblk
private CBlkWTDataSrcDec src
private int dtype
private DataBlk[] reconstructedComps
private int[] ndl
private boolean[][] reversible
public InvWTFull(CBlkWTDataSrcDec src, DecoderSpecs decSpec)
src
- from where the wavelet coefficinets should be
obtained.decSpec
- The decoder specificationsprivate boolean isSubbandReversible(Subband subband)
subband
- The current subband.public boolean isReversible(int t, int c)
t
- The index of the tile.c
- The index of the component.public int getNomRangeBits(int c)
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.
c
- The index of the component.public int getFixedPoint(int c)
This default implementation assumes that the wavelet transform does not modify the fixed point. If that were the case this method should be overriden.
c
- The index of the component.public final DataBlk getInternCompData(DataBlk blk, int c)
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).
blk
- Its coordinates and dimensions specify the area to return.c
- The index of the component from which to get the data.getInternCompData(jj2000.j2k.image.DataBlk, int)
public DataBlk getCompData(DataBlk blk, int c)
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)
blk
- Its coordinates and dimensions specify the area to
return. If it contains a non-null data array, then it must be large
enough. If it contains a null data array a new one is created. The
fields in this object are modified to return the data.c
- The index of the component from which to get the data.getCompData(jj2000.j2k.image.DataBlk, int)
private void wavelet2DReconstruction(DataBlk db, SubbandSyn sb, int c)
db
- the buffer for the image/wavelet data.sb
- The subband to reconstruct.c
- The index of the component to reconstructprivate void waveletTreeReconstruction(DataBlk img, SubbandSyn sb, int c)
img
- The buffer for the image/wavelet data.sb
- The subband to reconstruct.c
- The index of the component to reconstructpublic int getImplementationType(int c)
c
- The index of the component.WaveletTransform.WT_IMPL_FULL
public void setTile(int x, int y)
setTile
in interface ImgData
setTile
in class InvWTAdapter
x
- The horizontal index of the tile.y
- The vertical index of the new tile.public void nextTile()
nextTile
in interface ImgData
nextTile
in class InvWTAdapter
Copyright © 2017 Open Microscopy Environment