|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectucar.jpeg.jj2000.j2k.codestream.reader.HeaderDecoder
public class HeaderDecoder
This class reads main and tile-part headers from the codestream given a RandomAccessIO instance located at the beginning of the codestream (i.e just before the SOC marker) or at the beginning of a tile-part (i.e. just before a SOT marker segment) respectively.
A marker segment includes a marker and eventually marker segment parameters. It is designed by the three letters code of the marker associated with the marker segment. JPEG 2000 part 1 defines 6 types of markers segments:
The main header is read when the constructor is called whereas tile-part headers are read when the FileBitstreamReaderAgent instance is created. The reading is done in 2 passes:
Whenever a marker segment is not recognized a warning message is displayed and its length parameter is used to skip it.
The information found in this header is stored in HeaderInfo and DecoderSpecs instances.
DecoderSpecs
,
HeaderInfo
,
Decoder
,
FileBitstreamReaderAgent
Field Summary | |
---|---|
static int |
CRG_FOUND
Flag bit for CRG marker segment found |
int |
mainHeadOff
The offset of the main header in the input stream |
int[] |
nTileParts
The number of tile parts in each tile |
static char |
OPT_PREFIX
The prefix for header decoder options: 'H' |
static int |
PPM_FOUND
Flag bit for SOD marker segment found |
static int |
PPT_FOUND
Flag bit for SOD marker segment found |
static int |
SOD_FOUND
Flag bit for SOD marker segment found |
Vector |
tileOfTileParts
Vector containing info as to which tile each tilepart belong |
Fields inherited from interface ucar.jpeg.jj2000.j2k.codestream.ProgressionType |
---|
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 |
Fields inherited from interface ucar.jpeg.jj2000.j2k.codestream.Markers |
---|
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 |
Fields inherited from interface ucar.jpeg.jj2000.j2k.entropy.StdEntropyCoderOptions |
---|
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 Summary | |
---|---|
HeaderDecoder(RandomAccessIO ehs,
ParameterList pl,
HeaderInfo hi)
Creates a HeaderDecoder instance and read in two passes the main header of the codestream. |
Method Summary | |
---|---|
void |
checkMarkerLength(DataInputStream ehs,
String str)
Checks that the marker segment length is correct. |
BlkImgDataSrc |
createChannelDefinitionMapper(BlkImgDataSrc src,
ColorSpace csMap)
Creates and returns the ChannelDefinitonMapper which maps the input channels to the channel definition for the appropriate colorspace. |
BlkImgDataSrc |
createColorSpaceMapper(BlkImgDataSrc src,
ColorSpace csMap)
Creates and returns the EnumeratedColorSpaceMapper corresponding to the information read from the JP2 image file via the ColorSpace parameter. |
Dequantizer |
createDequantizer(CBlkQuantDataSrcDec src,
int[] rb,
DecoderSpecs decSpec2)
Returns the dequantizer parameters. |
EntropyDecoder |
createEntropyDecoder(CodedCBlkDataSrcDec src,
ParameterList pl)
Creates and returns the entropy decoder corresponding to the information read from the codestream header and with the special additional parameters from the parameter list. |
BlkImgDataSrc |
createPalettizedColorSpaceMapper(BlkImgDataSrc src,
ColorSpace csMap)
Creates and returns the PalettizedColorSpaceMapper which uses the input samples as indicies into a sample palette to construct the output. |
BlkImgDataSrc |
createResampler(BlkImgDataSrc src,
ColorSpace csMap)
Creates and returns the Resampler which converts the input source to one in which all channels have the same number of samples. |
ROIDeScaler |
createROIDeScaler(CBlkQuantDataSrcDec src,
ParameterList pl,
DecoderSpecs decSpec2)
Creates and returns the ROIDeScaler corresponding to the information read from the codestream header and with the special additional parameters from the parameter list. |
void |
extractTilePartMarkSeg(short marker,
RandomAccessIO ehs,
int tileIdx,
int tilePartIdx)
This method extracts a marker segment in a tile-part header and stores it into a byte buffer for the second pass. |
int |
getCbULX()
Returns the horizontal code-block partition origin.Allowable values are 0 and 1, nothing else. |
int |
getCbULY()
Returns the vertical code-block partition origin. |
int |
getCompSubsX(int c)
Returns the component sub-sampling factor, with respect to the reference grid, along the horizontal direction for the specified component. |
int |
getCompSubsY(int c)
Returns the component sub-sampling factor, with respect to the reference grid, along the vertical direction for the specified component. |
DecoderSpecs |
getDecoderSpecs()
Return the DecoderSpecs instance filled when reading the headers |
int |
getImgHeight()
Returns the image height in the reference grid. |
int |
getImgULX()
Return the horizontal upper-left coordinate of the image in the reference grid. |
int |
getImgULY()
Return the vertical upper-left coordinate of the image in the reference grid. |
int |
getImgWidth()
Returns the image width in the reference grid. |
int |
getMaxCompImgHeight()
Return the maximum height among all components |
int |
getMaxCompImgWidth()
Return the maximum width among all components |
int |
getNomTileHeight()
Returns the nominal width of the tiles in the reference grid. |
int |
getNomTileWidth()
Returns the nominal width of the tiles in the reference grid. |
int |
getNumComps()
Returns the number of components in the image. |
int |
getNumFoundMarkSeg()
Returns the number of found marker segments in the current header. |
int |
getNumTiles()
Return the number of tiles in the image |
int |
getOriginalBitDepth(int c)
Returns the original bitdepth of the specified component. |
ByteArrayInputStream |
getPackedPktHead(int tile)
Return the packed packet headers for a given tile. |
static String[][] |
getParameterInfo()
Returns the parameters that are used in this class. |
int |
getPPX(int t,
int c,
int rl)
Returns the precinct partition width for the specified tile-component and resolution level. |
int |
getPPY(int t,
int c,
int rl)
Returns the precinct partition height for the specified tile-component and resolution level. |
Coord |
getTilingOrigin(Coord co)
Returns the tiling origin, referred to as '(Px,Py)' in the 'ImgData' interface. |
boolean |
isOriginalSigned(int c)
Returns true if the original data of the specified component was signed. |
boolean |
precinctPartitionUsed()
Returns the boolean used to know if the precinct partition is used |
void |
readFoundTilePartMarkSeg(int tileIdx,
int tpIdx)
Retrieves and reads all marker segments previously found in the tile-part header. |
void |
resetHeaderMarkers()
Method that resets members indicating which markers have already been found |
void |
setTileOfTileParts(int tile)
Sets the tile of each tile part in order. |
String |
toString()
Print information about the current header. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final char OPT_PREFIX
public int[] nTileParts
public static final int SOD_FOUND
public static final int PPM_FOUND
public static final int PPT_FOUND
public static final int CRG_FOUND
public int mainHeadOff
public Vector tileOfTileParts
Constructor Detail |
---|
public HeaderDecoder(RandomAccessIO ehs, ParameterList pl, HeaderInfo hi) throws IOException
ehs
- The encoded header stream where marker segments are
extracted.pl
- The ParameterList object of the decoderhi
- The HeaderInfo holding information found in marker segments
IOException
- If an I/O error occurs while reading from the
encoded header stream.
EOFException
- If the end of the encoded header stream is
reached before getting all the data.
CorruptedCodestreamException
- If invalid data is found in the
codestream main header.Method Detail |
---|
public int getMaxCompImgHeight()
public int getMaxCompImgWidth()
public final int getImgWidth()
public final int getImgHeight()
public final int getImgULX()
public final int getImgULY()
public final int getNomTileWidth()
public final int getNomTileHeight()
public final Coord getTilingOrigin(Coord co)
co
- If not null this object is used to return the information. If
null a new one is created and returned.
jj2000.j2k.image.ImgData
public final boolean isOriginalSigned(int c)
c
- The index of the component
public final int getOriginalBitDepth(int c)
c
- The index of the component
public final int getNumComps()
public final int getCompSubsX(int c)
c
- The index of the component
public final int getCompSubsY(int c)
c
- The index of the component
public final Dequantizer createDequantizer(CBlkQuantDataSrcDec src, int[] rb, DecoderSpecs decSpec2)
src
- The source of data for the dequantizer.rb
- The number of range bits for each component. Must be
the number of range bits of the mixed components.decSpec2
- The DecoderSpecs instance after any image manipulation.
public final int getCbULX()
public final int getCbULY()
public final int getPPX(int t, int c, int rl)
c
- the component indext
- the tile indexrl
- the resolution level
public final int getPPY(int t, int c, int rl)
c
- the component indext
- the tile indexrl
- the resolution level
public final boolean precinctPartitionUsed()
public void checkMarkerLength(DataInputStream ehs, String str) throws IOException
ehs
- The encoded header streamstr
- The string identifying the marker, such as "SIZ marker"
IOException
- If an I/O error occurspublic void extractTilePartMarkSeg(short marker, RandomAccessIO ehs, int tileIdx, int tilePartIdx) throws IOException
marker
- The marker to processehs
- The encoded header streamtileIdx
- The index of the current tiletilePartIdx
- The index of the current tile part
IOException
public void readFoundTilePartMarkSeg(int tileIdx, int tpIdx) throws IOException
tileIdx
- The index of the current tiletpIdx
- Index of the current tile-part
IOException
public DecoderSpecs getDecoderSpecs()
public EntropyDecoder createEntropyDecoder(CodedCBlkDataSrcDec src, ParameterList pl)
src
- The bit stream reader agent where to get code-block data
from.pl
- The parameter list containing parameters applicable to the
entropy decoder (other parameters can also be present).
public BlkImgDataSrc createColorSpaceMapper(BlkImgDataSrc src, ColorSpace csMap) throws IOException, ICCProfileException, ColorSpaceException
src
- The bit stream reader agent where to get code-block
data from.csMap
- provides color space information from the image file
IOException
- image access exception
ICCProfileException
- if image contains a bad icc profile
ColorSpaceException
- if image contains a bad colorspace boxpublic BlkImgDataSrc createChannelDefinitionMapper(BlkImgDataSrc src, ColorSpace csMap) throws IOException, ColorSpaceException
src
- The bit stream reader agent where to get code-block
data from.csMap
- provides color space information from the image file
IOException
- image access exception
ColorSpaceException
- if image contains a bad colorspace boxpublic BlkImgDataSrc createPalettizedColorSpaceMapper(BlkImgDataSrc src, ColorSpace csMap) throws IOException, ColorSpaceException
src
- The bit stream reader agent where to get code-block
data from.csMap
- provides color space information from the image file
IOException
- image access exception
ColorSpaceException
- if image contains a bad colorspace boxpublic BlkImgDataSrc createResampler(BlkImgDataSrc src, ColorSpace csMap) throws IOException, ColorSpaceException
src
- The bit stream reader agent where to get code-block
data from.csMap
- provides color space information from the image file
IOException
- image access exception
ColorSpaceException
- if image contains a bad colorspace boxpublic ROIDeScaler createROIDeScaler(CBlkQuantDataSrcDec src, ParameterList pl, DecoderSpecs decSpec2)
src
- The bit stream reader agent where to get code-block data
from.pl
- The parameter list containing parameters applicable to the
entropy decoder (other parameters can also be present).decSpec2
- The DecoderSpecs instance after any image manipulation.
public void resetHeaderMarkers()
public String toString()
toString
in class Object
public static String[][] getParameterInfo()
public int getNumTiles()
public ByteArrayInputStream getPackedPktHead(int tile) throws IOException
IOException
- If an I/O error occurs while reading from the
encoder header streampublic void setTileOfTileParts(int tile)
tile
- The tile number that the present tile part belongs to.public int getNumFoundMarkSeg()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |