ucar.jpeg.jj2000.j2k.entropy.encoder
Class LayersInfo

java.lang.Object
  extended by ucar.jpeg.jj2000.j2k.entropy.encoder.LayersInfo

public class LayersInfo
extends Object

This class stores the specification of a layer distribution in the bit stream. The specification is made of optimization points and a number of extra layers to add between the optimization points. Each optimization point creates a layer which is optimized by the rate allocator to the specified target bitrate. The extra layers are added by the rate allocator between the optimized layers, with the difference that they are not optimized (i.e. they have no precise target bitrate).

The overall target bitrate for the bit stream is always added as the last optimization point without any extra layers after it. If there are some optimization points whose target bitrate is larger than the overall target bitrate, the overall target bitrate will still appear as the last optimization point, even though it does not follow the increasing target bitrate order of the other optimization points. The rate allocator is responsible for eliminating layers that have target bitrates larger than the overall target bitrate.

Optimization points can be added with the addOptPoint() method. It takes the target bitrate for the optimized layer and the number of extra layers to add after it.

Information about the total number of layers, total number of optimization points, target bitrates, etc. can be obtained with the other methods.


Constructor Summary
LayersInfo(float brate)
          Creates a new LayersInfo object.
 
Method Summary
 void addOptPoint(float brate, int elyrs)
          Adds a new optimization point, with target bitrate 'brate' and with 'elyrs' (unoptimized) extra layers after it.
 int getExtraLayers(int n)
          Returns the number of extra layers to add after the optimization point 'n', but before optimization point 'n+1'.
 int getNOptPoints()
          Returns the number of layers to optimize, or optimization points, as specified by this object.
 float getTargetBitrate(int n)
          Returns the target bitrate of the optmimization point 'n'.
 float getTotBitrate()
          Returns the overall target bitrate for the entire bit stream.
 int getTotNumLayers()
          Returns the total number of layers, according to the layer specification of this object and the overall target bitrate.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LayersInfo

public LayersInfo(float brate)
Creates a new LayersInfo object. The overall target bitrate 'brate' is always an extra optimization point, with no extra layers are after it. Note that any optimization points that are added with addOptPoint() are always added before the overall target bitrate.

Parameters:
brate - The overall target bitrate for the bit stream
Method Detail

getTotBitrate

public float getTotBitrate()
Returns the overall target bitrate for the entire bit stream.

Returns:
The overall target bitrate

getTotNumLayers

public int getTotNumLayers()
Returns the total number of layers, according to the layer specification of this object and the overall target bitrate.

Returns:
The total number of layers, according to the layer spec.

getNOptPoints

public int getNOptPoints()
Returns the number of layers to optimize, or optimization points, as specified by this object.

Returns:
The number of optimization points

getTargetBitrate

public float getTargetBitrate(int n)
Returns the target bitrate of the optmimization point 'n'.

Parameters:
n - The optimization point index (starts at 0).
Returns:
The target bitrate (in bpp) for the optimization point 'n'.

getExtraLayers

public int getExtraLayers(int n)
Returns the number of extra layers to add after the optimization point 'n', but before optimization point 'n+1'. If there is no optimization point 'n+1' then they should be added before the overall target bitrate.

Parameters:
n - The optimization point index (starts at 0).
Returns:
The number of extra (unoptimized) layers to add after the optimization point 'n'

addOptPoint

public void addOptPoint(float brate,
                        int elyrs)
Adds a new optimization point, with target bitrate 'brate' and with 'elyrs' (unoptimized) extra layers after it. The target bitrate 'brate' must be larger than the previous optimization point. The arguments are checked and IllegalArgumentException is thrown if they are not correct.

Parameters:
brate - The target bitrate for the optimized layer.
elyrs - The number of extra (unoptimized) layers to add after the optimized layer.


Copyright © 1999-2011 UCAR/Unidata. All Rights Reserved.