Package jj2000.j2k.entropy.encoder
Class PostCompRateAllocator
java.lang.Object
jj2000.j2k.image.ImgDataAdapter
jj2000.j2k.entropy.encoder.PostCompRateAllocator
- All Implemented Interfaces:
ImgData
- Direct Known Subclasses:
EBCOTRateAllocator
This is the abstract class from which post-compression rate allocators
which generate layers should inherit. The source of data is a
'CodedCBlkDataSrcEnc' which delivers entropy coded blocks with
rate-distortion statistics.
The post compression rate allocator implementation should create the layers, according to a rate allocation policy, and send the packets to a CodestreamWriter. Since the rate allocator sends the packets to the bit stream then it should output the packets to the bit stream in the order imposed by the bit stream profiles.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected intThe number of layers.static final charThe prefix for rate allocation options: 'A'protected CodedCBlkDataSrcEncThe source of entropy coded dataprotected J2KImageWriteParamJavaThe source of entropy coded dataFields inherited from class jj2000.j2k.image.ImgDataAdapter
imgdatasrc, tIdx -
Constructor Summary
ConstructorsConstructorDescriptionPostCompRateAllocator(CodedCBlkDataSrcEnc src, int nl, CodestreamWriter bw, J2KImageWriteParamJava wp) Initializes the source of entropy coded data. -
Method Summary
Modifier and TypeMethodDescriptionstatic PostCompRateAllocatorcreateInstance(CodedCBlkDataSrcEnc src, float rate, CodestreamWriter bw, J2KImageWriteParamJava wp) Creates a PostCompRateAllocator object for the appropriate rate allocation parameters in the parameter list 'pl', having 'src' as the source of entropy coded data, 'rate' as the target bitrate and 'bw' as the bit stream writer object.intReturns the number of layers that are actually generated.static String[][]Returns the parameters that are used in this class and implementing classes.abstract voidInitializes the rate allocation points, taking into account header overhead and such.abstract voidRuns the rate allocation algorithm and writes the data to the bit stream.voidsetHeaderEncoder(HeaderEncoder headEnc) Keep a reference to the header encoder.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
-
Field Details
-
OPT_PREFIX
public static final char OPT_PREFIXThe prefix for rate allocation options: 'A'- See Also:
-
src
The source of entropy coded data -
wp
The source of entropy coded data -
numLayers
protected int numLayersThe number of layers.
-
-
Constructor Details
-
PostCompRateAllocator
public PostCompRateAllocator(CodedCBlkDataSrcEnc src, int nl, CodestreamWriter bw, J2KImageWriteParamJava wp) Initializes the source of entropy coded data.- Parameters:
src- The source of entropy coded data.nl- The number of layers to createbw- The packet bit stream writer.wp- The parameters list- See Also:
-
-
Method Details
-
setHeaderEncoder
Keep a reference to the header encoder.- Parameters:
headEnc- The header encoder
-
initialize
Initializes the rate allocation points, taking into account header overhead and such. This method must be called after the header has been simulated but before calling the runAndWrite() one. The header must be rewritten after a call to this method since the number of layers may change.- Throws:
IOException- See Also:
-
runAndWrite
Runs the rate allocation algorithm and writes the data to the bit stream. This must be called after the initialize() method.- Throws:
IOException- See Also:
-
getNumLayers
public int getNumLayers()Returns the number of layers that are actually generated.- Returns:
- The number of layers generated.
-
getParameterInfo
Returns the parameters that are used in this class and implementing classes. It returns a 2D String array. Each of the 1D arrays is for a different option, and they have 3 elements. The first element is the option name, the second one is the synopsis, the third one is a long description of what the parameter is and the fourth is its default value. The synopsis or description may be 'null', in which case it is assumed that there is no synopsis or description of the option, respectively. Null may be returned if no options are supported.- Returns:
- the options name, their synopsis and their explanation, or null if no options are supported.
-
createInstance
public static PostCompRateAllocator createInstance(CodedCBlkDataSrcEnc src, float rate, CodestreamWriter bw, J2KImageWriteParamJava wp) Creates a PostCompRateAllocator object for the appropriate rate allocation parameters in the parameter list 'pl', having 'src' as the source of entropy coded data, 'rate' as the target bitrate and 'bw' as the bit stream writer object.- Parameters:
src- The source of entropy coded data.rate- The target bitrate for the rate allocationbw- The bit stream writer object, where the bit stream data will be written.wp- The parameter list (or options).
-