public class FileBitstreamReaderAgent extends BitstreamReaderAgent implements Markers, ProgressionType, StdEntropyCoderOptions
Note: All tile-parts headers are read by the constructor whereas packets are processed when decoding related tile (when setTile method is called).
In parsing mode, the reader simulates a virtual layer-resolution progressive bit stream with the same truncation points in each code-block, whereas in truncation mode, only the first bytes are taken into account (it behaves like if it is a real truncated codestream).
HeaderDecoder
,
PktDecoder
Modifier and Type | Field and Description |
---|---|
PktDecoder |
pktDec
Reference to the PktDecoder instance
|
anbytes, arate, ax, ay, ctX, ctY, culx, culy, decSpec, derived, gb, hd, imgH, imgW, mdl, nc, ntH, ntW, ntX, ntY, offX, offY, OPT_PREFIX, params, px, py, subbTrees, targetRes, tnbytes, trate
COC, COD, COM, CRG, EOC, EPH, EPH_LENGTH, ERS_SEG_SYMBOLS, ERS_SOP, MAX_COMP_BITDEPTH, MAX_LPPM, MAX_LPPT, PLM, PLT, POC, PPM, PPT, PRECINCT_PARTITION_DEF_SIZE, QCC, QCD, RCOM_GEN_USE, RGN, RSIZ_BASELINE, RSIZ_ER_FLAG, RSIZ_ROI, SCOX_HOR_CB_PART, SCOX_PRECINCT_PARTITION, SCOX_USE_EPH, SCOX_USE_SOP, SCOX_VER_CB_PART, SIZ, SOC, SOD, SOP, SOP_LENGTH, SOT, SQCX_EXP_MASK, SQCX_EXP_SHIFT, SQCX_GB_MSK, SQCX_GB_SHIFT, SQCX_NO_QUANTIZATION, SQCX_SCALAR_DERIVED, SQCX_SCALAR_EXPOUNDED, SRGN_IMPLICIT, SSIZ_DEPTH_BITS, TLM
COMP_POS_RES_LY_PROG, LY_RES_COMP_POS_PROG, POS_COMP_RES_LY_PROG, RES_LY_COMP_POS_PROG, RES_POS_COMP_LY_PROG
FIRST_BYPASS_PASS_IDX, MAX_CB_AREA, MAX_CB_DIM, MIN_CB_DIM, NUM_EMPTY_PASSES_IN_MS_BP, NUM_NON_BYPASS_MS_BP, NUM_PASSES, OPT_BYPASS, OPT_PRED_TERM, OPT_RESET_MQ, OPT_SEG_SYMBOLS, OPT_TERM_PASS, OPT_VERT_STR_CAUSAL, STRIPE_HEIGHT
Constructor and Description |
---|
FileBitstreamReaderAgent(HeaderDecoder hd,
RandomAccessIO ehs,
DecoderSpecs decSpec,
J2KImageReadParamJava j2krparam,
boolean cdstrInfo,
HeaderInfo hi)
Reads all tiles headers and keep offset of their first
packet.
|
Modifier and Type | Method and Description |
---|---|
CBlkInfo[][][][][] |
getCBlkInfo()
Gets the reference to the CBlkInfo array
|
DecLyrdCBlk |
getCodeBlock(int c,
int m,
int n,
SubbandSyn sb,
int fl,
int nl,
DecLyrdCBlk ccb)
Returns the specified coded code-block, for the specified component, in
the current tile.
|
int |
getNumTileParts(int t)
Returns the number of tile-part found for a given 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 indexes.
|
createInstance, getActualNbytes, getActualRate, getCbULX, getCbULY, getCompImgHeight, getCompImgWidth, getCompSubsX, getCompSubsY, getImgHeight, getImgRes, getImgULX, getImgULY, getImgWidth, getNomTileHeight, getNomTileWidth, getNumComps, getNumTiles, getNumTiles, getParameterInfo, getPPX, getPPY, getResULX, getResULY, getSynSubbandTree, getTargetNbytes, getTargetRate, getTile, getTileCompHeight, getTileCompWidth, getTileHeight, getTileIdx, getTilePartULX, getTilePartULY, getTileWidth, initSubbandsFields
public PktDecoder pktDec
public FileBitstreamReaderAgent(HeaderDecoder hd, RandomAccessIO ehs, DecoderSpecs decSpec, J2KImageReadParamJava j2krparam, boolean cdstrInfo, HeaderInfo hi) throws IOException
hd
- HeaderDecoder of the codestream.ehs
- The input stream where to read bit-stream.decSpec
- The decoder specificationsj2krparam
- The J2KImageReadParam instance created from the
command-line arguments.cdstrInfo
- Whether or not to print information found in
codestream.IOException
allocateRate()
public int getNumTileParts(int t)
t
- Tile indexpublic CBlkInfo[][][][][] getCBlkInfo()
public void setTile(int x, int y)
setTile
in interface MultiResImgData
setTile
in class BitstreamReaderAgent
x
- The horizontal indexes the tile.y
- The vertical indexes of the new tile.public void nextTile()
nextTile
in interface MultiResImgData
nextTile
in class BitstreamReaderAgent
public DecLyrdCBlk getCodeBlock(int c, int m, int n, SubbandSyn sb, int fl, int nl, DecLyrdCBlk ccb)
The argument 'fl' is to be used by subsequent calls to this method for the same code-block. In this way supplemental data can be retrieved at a later time. The fact that data from more than one layer can be returned means that several packets from the same code-block, of the same component, and the same tile, have been concatenated.
The returned compressed code-block can have its progressive attribute set. If this attribute is set it means that more data can be obtained by subsequent calls to this method (subject to transmission delays, etc). If the progressive attribute is not set it means that the returned data is all the data that can be obtained for the specified code-block.
The compressed code-block is uniquely specified by the current tile, the component (identified by 'c'), the subband (indentified by 'sb') and the code-block vertical and horizontal indexes 'n' and 'm'.
The 'ulx' and 'uly' members of the returned 'DecLyrdCBlk' object contain the coordinates of the top-left corner of the block, with respect to the tile, not the subband.
getCodeBlock
in interface CodedCBlkDataSrcDec
c
- The index of the component, from 0 to N-1.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 whic the requested code-block is.fl
- The first layer to return.nl
- The number of layers to return, if negative all available
layers are returned, starting at 'fl'.ccb
- If not null this object is used to return the compressed
code-block. If null a new object is created and returned. If the data
array in ccb is not null then it can be reused to return the compressed
data.Copyright © 2014. All rights reserved.