|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--jj2000.j2k.image.ImgDataAdapter | +--colorspace.ColorSpaceMapper
This is the base class for all modules in the colorspace and icc profiling steps of the decoding chain. It is responsible for the allocation and iniitialization of all working storage. It provides several utilities which are of generic use in preparing DataBlks for use and provides default implementations for the getCompData and getInternCompData methods.
jj2000.j2k.colorspace.ColorSpace
Nested Class Summary | |
protected class |
ColorSpaceMapper.ComputedComponents
|
Field Summary | |
protected ColorSpaceMapper.ComputedComponents |
computed
|
protected ColorSpace |
csMap
ColorSpace info |
protected float[][] |
dataFloat
|
protected int[][] |
dataInt
|
protected static java.lang.String |
eol
Platform dependant end of line String. |
protected int[] |
fixedPtBitsArray
|
protected DataBlkFloat[] |
inFloat
|
protected DataBlkInt[] |
inInt
|
protected int[] |
maxValueArray
|
protected int |
ncomps
Number of image components |
static char |
OPT_PREFIX
The prefix for ICC Profiler options |
private static java.lang.String[][] |
pinfo
The list of parameters that are accepted for ICC profiling. |
protected ParameterList |
pl
Parameter Specs |
protected int[] |
shiftValueArray
|
protected BlkImgDataSrc |
src
The image source. |
protected DataBlk[] |
srcBlk
The image source data per component. |
protected float[][] |
workDataFloat
|
protected int[][] |
workDataInt
|
protected DataBlkFloat[] |
workFloat
|
protected DataBlkInt[] |
workInt
|
Fields inherited from class jj2000.j2k.image.ImgDataAdapter |
imgdatasrc, tIdx |
Constructor Summary | |
protected |
ColorSpaceMapper(BlkImgDataSrc src,
ColorSpace csMap)
Ctor which creates an ICCProfile for the image and initializes all data objects (input, working, and output). |
Method Summary | |
protected static void |
copyGeometry(DataBlk tgt,
DataBlk src)
Copy the DataBlk geometry from source to target DataBlk and assure that the target has an appropriate data buffer. |
static BlkImgDataSrc |
createInstance(BlkImgDataSrc src,
ColorSpace csMap)
Factory method for creating instances of this class. |
DataBlk |
getCompData(DataBlk out,
int c)
Returns, in the blk argument, a block of image data containing the specifed rectangular area, in the specified component. |
int |
getFixedPoint(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. |
DataBlk |
getInternCompData(DataBlk out,
int c)
Returns, in the blk argument, a block of image data containing the specifed rectangular area, in the specified component. |
static java.lang.String[][] |
getParameterInfo()
Returns the parameters that are used in this class and implementing classes. |
private void |
initialize()
General utility used by ctors |
protected static void |
setInternalBuffer(DataBlk db)
Arrange for the input DataBlk to receive an appropriately sized and typed data buffer |
Methods inherited from class jj2000.j2k.image.ImgDataAdapter |
getCompImgHeight, getCompImgWidth, getCompSubsX, getCompSubsY, getCompULX, getCompULY, getImgHeight, getImgULX, getImgULY, getImgWidth, getNomRangeBits, getNomTileHeight, getNomTileWidth, getNumComps, getNumTiles, getNumTiles, getTile, getTileCompHeight, getTileCompWidth, getTileHeight, getTileIdx, getTilePartULX, getTilePartULY, getTileWidth, nextTile, setTile |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface jj2000.j2k.image.ImgData |
getCompImgHeight, getCompImgWidth, getCompSubsX, getCompSubsY, getCompULX, getCompULY, getImgHeight, getImgULX, getImgULY, getImgWidth, getNomRangeBits, getNomTileHeight, getNomTileWidth, getNumComps, getNumTiles, getNumTiles, getTile, getTileCompHeight, getTileCompWidth, getTileHeight, getTileIdx, getTilePartULX, getTilePartULY, getTileWidth, nextTile, setTile |
Field Detail |
public static final char OPT_PREFIX
protected static final java.lang.String eol
protected DataBlkInt[] inInt
protected DataBlkFloat[] inFloat
protected DataBlkInt[] workInt
protected DataBlkFloat[] workFloat
protected int[][] dataInt
protected float[][] dataFloat
protected float[][] workDataFloat
protected int[][] workDataInt
protected int[] shiftValueArray
protected int[] maxValueArray
protected int[] fixedPtBitsArray
private static final java.lang.String[][] pinfo
protected ParameterList pl
protected ColorSpace csMap
protected int ncomps
protected BlkImgDataSrc src
protected DataBlk[] srcBlk
protected ColorSpaceMapper.ComputedComponents computed
Constructor Detail |
protected ColorSpaceMapper(BlkImgDataSrc src, ColorSpace csMap) throws ColorSpaceException
src
- -- Source of image dataMethod Detail |
public static java.lang.String[][] getParameterInfo()
protected static void setInternalBuffer(DataBlk db)
db
- input DataBlkDataBlk
protected static void copyGeometry(DataBlk tgt, DataBlk src)
tgt
- has its geometry set.src
- used to get the new geometric parameters.public static BlkImgDataSrc createInstance(BlkImgDataSrc src, ColorSpace csMap) throws java.io.IOException, ColorSpaceException, ICCProfileException
src
- -- source of image datacsMap
- -- provides colorspace info
java.io.IOException
- profile access exception
ColorSpaceException
ICCProfileException
private void initialize() throws ColorSpaceException
ColorSpaceException
public int getFixedPoint(int c)
getFixedPoint
in interface BlkImgDataSrc
c
- The index of the component.
public DataBlk getCompData(DataBlk out, int c)
The rectangular area to return is specified by the 'ulx', 'uly', 'w' and 'h' members of the 'blk' argument, relative to the current tile. These members are not modified by this method. The 'offset' of the returned data is 0, and the 'scanw' is the same as the block's width. See the 'DataBlk' class.
This method, in general, is less efficient than the 'getInternCompData()' method since, in general, it copies the data. However if the array of returned data is to be modified by the caller then this method is preferable.
If the data array in 'blk' is 'null', then a new one is created. If the data array is not 'null' then it is reused, and it must be large enough to contain the block's data. Otherwise an 'ArrayStoreException' or an 'IndexOutOfBoundsException' is thrown by the Java system.
The returned data may have its 'progressive' attribute set. In this case the returned data is only an approximation of the "final" data.
getCompData
in interface BlkImgDataSrc
c
- The index of the component from which to get the data.out
- Its coordinates and dimensions specify the area to return,
relative to the current tile. 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. Some fields in this object are modified to return the
data.getInternCompData(jj2000.j2k.image.DataBlk, int)
public DataBlk getInternCompData(DataBlk out, int c)
The rectangular area to return is specified by the 'ulx', 'uly', 'w' and 'h' members of the 'blk' argument, relative to the current tile. These members are not modified by this method. The 'offset' and 'scanw' of the returned data can be arbitrary. See the 'DataBlk' class.
This method, in general, is more efficient than the 'getCompData()' method since it may not copy the data. However if the array of returned data is to be modified by the caller then the other method is probably preferable.
If possible, the data in the returned 'DataBlk' should be the internal data itself, instead of a copy, in order to increase the data transfer efficiency. However, this depends on the particular implementation (it may be more convenient to just return a copy of the data). This is the reason why the returned data should not be modified.
If the data array in blk is null, then a new one is created if necessary. The implementation of this interface may choose to return the same array or a new one, depending on what is more efficient. Therefore, the data array in blk prior to the method call should not be considered to contain the returned data, a new array may have been created. Instead, get the array from blk after the method has returned.
The returned data may have its 'progressive' attribute set. In this case the returned data is only an approximation of the "final" data.
getInternCompData
in interface BlkImgDataSrc
c
- The index of the component from which to get the data.out
- Its coordinates and dimensions specify the area to return,
relative to the current tile. Some fields in this object are modified
to return the data.
getCompData(jj2000.j2k.image.DataBlk, int)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |