public class ForwWTFull extends ForwardWT
Modifier and Type | Field and Description |
---|---|
private int |
cb0x
The horizontal coordinate of the code-block partition origin on the
reference grid
|
private int |
cb0y
The vertical coordinate of the code-block partition on the reference
grid
|
private CBlkSizeSpec |
cblks
The code-block size specifications
|
(package private) SubbandAn[] |
currentSubband
The subband being dealt with in each component
|
private DataBlk[] |
decomposedComps
Block storing the full band decomposition for each component.
|
private IntegerSpec |
dls
The number of decomposition levels specification
|
private AnWTFilterSpec |
filters
Wavelet filters for all components and tiles
|
private boolean |
intData
Boolean to know if one are currently dealing with int or float
data.
|
private int[] |
lastm
The vertical index of the last code-block "sent" in the current subband
in each component.
|
private int[] |
lastn
The horizontal index of the last code-block "sent" in the current
subband in each component.
|
(package private) Point |
ncblks
Cache object to avoid excessive allocation/deallocation.
|
private PrecinctSizeSpec |
pss
The precinct partition specifications
|
private BlkImgDataSrc |
src
The source of image data
|
private SubbandAn[][] |
subbTrees
The subband trees for each component, in each tile.
|
OPT_PREFIX, WT_DECOMP_DYADIC
imgdatasrc, tIdx
WT_IMPL_FULL, WT_IMPL_LINE
Constructor and Description |
---|
ForwWTFull(BlkImgDataSrc src,
J2KImageWriteParamJava wp,
int pox,
int poy)
Initializes this object with the given source of image data and with
all the decompositon parameters
|
Modifier and Type | Method and Description |
---|---|
SubbandAn |
getAnSubbandTree(int t,
int c)
Returns a reference to the subband tree structure representing the
subband decomposition for the specified tile-component of the source.
|
int |
getCbULX()
Returns the horizontal offset of the code-block partition.
|
int |
getCbULY()
Returns the vertical offset of the code-block partition.
|
int |
getDataType(int t,
int c)
Return the data type of this CBlkWTDataSrc.
|
int |
getDecomp(int t,
int c)
Returns the wavelet tree decomposition.
|
int |
getDecompLevels(int t,
int c)
Returns the number of decomposition levels that are applied to the LL
band, in the specified tile-component.
|
int |
getFixedPoint(int c)
Returns the position of the fixed point in the specified
component.
|
AnWTFilter[] |
getHorAnWaveletFilters(int t,
int c)
Returns the horizontal analysis wavelet filters used in each level, for
the specified component and tile.
|
int |
getImplementationType(int c)
Returns the implementation type of this wavelet transform, WT_IMPL_FULL
(full-page based transform).
|
CBlkWTData |
getNextCodeBlock(int c,
CBlkWTData cblk)
Returns the next code-block in the current tile for the specified
component, as a copy (see below).
|
CBlkWTData |
getNextInternCodeBlock(int c,
CBlkWTData cblk)
Returns the next code-block in the current tile for the specified
component.
|
private SubbandAn |
getNextSubband(int c)
Returns the next subband that will be used to get the next code-block
to return by the getNext[Intern]CodeBlock method.
|
AnWTFilter[] |
getVertAnWaveletFilters(int t,
int c)
Returns the vertical analysis wavelet filters used in each level, for
the specified component and tile.
|
private void |
initSubbandsFields(int t,
int c,
Subband sb)
Initialises subbands fields, such as number of code-blocks and
code-blocks dimension, in the subband tree.
|
boolean |
isReversible(int t,
int c)
Returns the reversibility of the wavelet transform for the specified
component and tile.
|
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 coordinates.
|
private void |
wavelet2DDecomposition(DataBlk band,
SubbandAn subband,
int c)
Performs the 2D forward wavelet transform on a subband of the initial
band.
|
private void |
waveletTreeDecomposition(DataBlk band,
SubbandAn subband,
int c)
Performs the forward wavelet transform on the whole band.
|
createInstance, getParameterInfo
getCompImgHeight, getCompImgWidth, getCompSubsX, getCompSubsY, getCompULX, getCompULY, getImgHeight, getImgULX, getImgULY, getImgWidth, getNomRangeBits, getNomTileHeight, getNomTileWidth, getNumComps, getNumTiles, getNumTiles, getTile, getTileCompHeight, getTileCompWidth, getTileHeight, getTileIdx, getTilePartULX, getTilePartULY, getTileWidth
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getCompImgHeight, getCompImgWidth, getCompSubsX, getCompSubsY, getCompULX, getCompULY, getImgHeight, getImgULX, getImgULY, getImgWidth, getNomRangeBits, getNomTileHeight, getNomTileWidth, getNumComps, getNumTiles, getNumTiles, getTile, getTileCompHeight, getTileCompWidth, getTileHeight, getTileIdx, getTilePartULX, getTilePartULY, getTileWidth
private boolean intData
private SubbandAn[][] subbTrees
The subband tree for a component in the current tile is created on the first call to getSubbandTree() for that component, in the current tile. Before that the element in 'subbTrees' is null.
private BlkImgDataSrc src
private int cb0x
private int cb0y
private IntegerSpec dls
private AnWTFilterSpec filters
private CBlkSizeSpec cblks
private PrecinctSizeSpec pss
private DataBlk[] decomposedComps
private int[] lastn
private int[] lastm
SubbandAn[] currentSubband
Point ncblks
public ForwWTFull(BlkImgDataSrc src, J2KImageWriteParamJava wp, int pox, int poy)
src
- From where the image data should be obtained.wp
- The writing parameterspox
- The horizontal coordinate of the cell and code-block
partition origin with respect to the canvas origin, on the reference
grid.poy
- The vertical coordinate of the cell and code-block partition
origin with respect to the canvas origin, on the reference grid.ForwardWT
public int getImplementationType(int c)
c
- The index of the component.public int getDecompLevels(int t, int c)
t
- The tile indexc
- The index of the component.public int getDecomp(int t, int c)
t
- The tile-indexc
- The index of the component.public AnWTFilter[] getHorAnWaveletFilters(int t, int c)
The returned filters are applicable only to the specified component and in the current tile.
The resolution level of a subband is the resolution level to which a subband contributes, which is different from its decomposition level.
t
- The index of the tile for which to return the filters.c
- The index of the component for which to return the filters.public AnWTFilter[] getVertAnWaveletFilters(int t, int c)
The returned filters are applicable only to the specified component and in the current tile.
The resolution level of a subband is the resolution level to which a subband contributes, which is different from its decomposition level.
t
- The index of the tile for which to return the filters.c
- The index of the component for which to return the filters.public boolean isReversible(int t, int c)
t
- The index of the tile.c
- The index of the component.public int getCbULX()
public int getCbULY()
public int getFixedPoint(int c)
c
- The index of the component.public CBlkWTData getNextInternCodeBlock(int c, CBlkWTData cblk)
When changing the current tile (through 'setTile()' or 'nextTile()') this method will always return the first code-block, as if this method was never called before for the new current tile.
The data returned by this method is the data in the internal buffer of this object, and thus can not be modified by the caller. The 'offset' and 'scanw' of the returned data have, in general, some non-zero value. The 'magbits' of the returned data is not set by this method and should be ignored. See the 'CBlkWTData' class.
The 'ulx' and 'uly' members of the returned 'CBlkWTData' object contain the coordinates of the top-left corner of the block, with respect to the tile, not the subband.
c
- The component for which to return the next code-block.cblk
- If non-null this object will be used to return the new
code-block. If null a new one will be allocated and returned.CBlkWTData
public CBlkWTData getNextCodeBlock(int c, CBlkWTData cblk)
When changing the current tile (through 'setTile()' or 'nextTile()') this method will always return the first code-block, as if this method was never called before for the new current tile.
The data returned by this method is always a copy of the internal data of this object, 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. The 'magbits' of the returned data is not set by this method and should be ignored. See the 'CBlkWTData' class.
The 'ulx' and 'uly' members of the returned 'CBlkWTData' object contain the coordinates of the top-left corner of the block, with respect to the tile, not the subband.
c
- The component for which to return the next code-block.cblk
- If non-null this object will be used to return the new
code-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.CBlkWTData
public int getDataType(int t, int c)
t
- The index of the tile for which to return the data type.c
- The index of the component for which to return the data type.private SubbandAn getNextSubband(int c)
c
- The componentprivate void waveletTreeDecomposition(DataBlk band, SubbandAn subband, int c)
band
- The band containing the float data to decomposesubband
- The structure containing the coordinates of the current
subband in the whole band to decompose.c
- The index of the current component to decomposeprivate void wavelet2DDecomposition(DataBlk band, SubbandAn subband, int c)
band
- The band containing the float data to decomposesubband
- The structure containing the coordinates of the subband
in the whole band to decompose.c
- The index of the current component to decomposepublic void setTile(int x, int y)
This method resets the 'subbTrees' array, and recalculates the values of the 'reversible' array. It also resets the decomposed component buffers.
setTile
in interface ImgData
setTile
in class ImgDataAdapter
x
- The horizontal coordinate of the tile.y
- The vertical coordinate of the new tile.public void nextTile()
This method resets the 'subbTrees' array, and recalculates the values of the 'reversible' array. It also resets the decomposed component buffers.
nextTile
in interface ImgData
nextTile
in class ImgDataAdapter
public SubbandAn getAnSubbandTree(int t, int c)
private void initSubbandsFields(int t, int c, Subband sb)
t
- The tile index of the subbandc
- The component indexsb
- The subband tree to be initialised.Copyright © 2017 Open Microscopy Environment