public class ROIDeScaler extends MultiResImgDataAdapter implements CBlkQuantDataSrcDec
Default implementations of the methods in 'MultiResImgData' are provided through the 'MultiResImgDataAdapter' abstract class.
Sign magnitude representation is used (instead of two's complement) for the output 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.
Modifier and Type | Field and Description |
---|---|
static char |
OPT_PREFIX
The prefix for ROI decoder options: 'R'
|
mressrc, tIdx
Constructor and Description |
---|
ROIDeScaler(CBlkQuantDataSrcDec src,
MaxShiftSpec mss)
Constructor of the ROI descaler, takes EntropyDEcoder as source of data
to de-scale.
|
Modifier and Type | Method and Description |
---|---|
static ROIDeScaler |
createInstance(CBlkQuantDataSrcDec src,
J2KImageReadParamJava j2krparam,
DecoderSpecs decSpec)
Creates a ROIDeScaler object.
|
int |
getCbULX()
Returns the horizontal code-block partition origin.
|
int |
getCbULY()
Returns the vertical code-block partition origin.
|
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).
|
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).
|
static String[][] |
getParameterInfo()
Returns the parameters that are used in this class and implementing
classes.
|
SubbandSyn |
getSynSubbandTree(int t,
int c)
Returns the subband tree, for the specified tile-component.
|
getCompImgHeight, getCompImgWidth, getCompSubsX, getCompSubsY, getImgHeight, getImgULX, getImgULY, getImgWidth, getNomTileHeight, getNomTileWidth, getNumComps, getNumTiles, getNumTiles, getResULX, getResULY, getTile, getTileCompHeight, getTileCompWidth, getTileHeight, getTileIdx, getTilePartULX, getTilePartULY, getTileWidth, nextTile, setTile
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getCompImgHeight, getCompImgWidth, getCompSubsX, getCompSubsY, getImgHeight, getImgULX, getImgULY, getImgWidth, getNomTileHeight, getNomTileWidth, getNumComps, getNumTiles, getNumTiles, getResULX, getResULY, getTile, getTileCompHeight, getTileCompWidth, getTileHeight, getTileIdx, getTilePartULX, getTilePartULY, getTileWidth, nextTile, setTile
public static final char OPT_PREFIX
public ROIDeScaler(CBlkQuantDataSrcDec src, MaxShiftSpec mss)
src
- The EntropyDecoder that is the source of data.mss
- The MaxShiftSpec containing the scaling values for all
tile-componentspublic SubbandSyn getSynSubbandTree(int t, int c)
The number of magnitude bits ('magBits' member variable) for each subband is not initialized.
getSynSubbandTree
in interface InvWTData
getSynSubbandTree
in interface MultiResImgData
t
- The index of the tile, from 0 to T-1.c
- The index of the component, from 0 to C-1.public int getCbULX()
public int getCbULY()
public static String[][] getParameterInfo()
public DataBlk getCodeBlock(int c, int m, int n, SubbandSyn sb, DataBlk cblk)
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.
The 'ulx' and 'uly' members of the returned 'DataBlk' object contain the coordinates of the top-left corner of the block, with respect to the tile, not the subband.
getCodeBlock
in interface CBlkQuantDataSrcDec
c
- The component for which to return the next code-block.m
- The vertical index of the code-block to return, in the
specified subband.n
- The horizontal index of the code-block to return, in the
specified subband.sb
- The subband in which the code-block to return is.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.DataBlk
public DataBlk getInternCodeBlock(int c, int m, int n, SubbandSyn sb, DataBlk cblk)
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.
The 'ulx' and 'uly' members of the returned 'DataBlk' object contain the coordinates of the top-left corner of the block, with respect to the tile, not the subband.
getInternCodeBlock
in interface CBlkQuantDataSrcDec
c
- The component for which to return the next code-block.m
- The vertical index of the code-block to return, in the
specified subband.n
- The horizontal index of the code-block to return, in the
specified subband.sb
- The subband in which the code-block to return is.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.DataBlk
public static ROIDeScaler createInstance(CBlkQuantDataSrcDec src, J2KImageReadParamJava j2krparam, DecoderSpecs decSpec)
src
- The source of data that is to be descaledpl
- The parameter list (or options).decSpec
- The decoding specificationsIllegalArgumentException
- If an error occurs while parsing
the options in 'pl'Copyright © 2015–2022 SCIFIO. All rights reserved.