ucar.jpeg.jj2000.j2k.roi.encoder
Class ArbROIMaskGenerator

java.lang.Object
  extended by ucar.jpeg.jj2000.j2k.roi.encoder.ROIMaskGenerator
      extended by ucar.jpeg.jj2000.j2k.roi.encoder.ArbROIMaskGenerator

public class ArbROIMaskGenerator
extends ROIMaskGenerator

This class generates the ROI bit-mask when, at least, one ROI is not rectangular. In this case, the fast ROI bit-mask algorithm generation can not be used.

The values are calculated from the scaling factors of the ROIs. The values with which to scale are equal to u-umin where umin is the lowest scaling factor within the block. The umin value is sent to the entropy coder to be used for scaling the distortion values.

See Also:
ROIMaskGenerator, ArbROIMaskGenerator

Field Summary
 
Fields inherited from class ucar.jpeg.jj2000.j2k.roi.encoder.ROIMaskGenerator
nrc, rois, tileMaskMade
 
Constructor Summary
ArbROIMaskGenerator(ROI[] rois, int nrc, Quantizer src)
          The constructor of the arbitrary mask generator
 
Method Summary
 boolean getROIMask(DataBlkInt db, Subband sb, int magbits, int c)
          This functions gets a DataBlk the size of the current code-block an fills this block with the ROI mask.
 void makeMask(Subband sb, int magbits, int c)
          This function generates the ROI mask for one tile-component.
 String toString()
          This function returns the relevant data of the mask generator
 
Methods inherited from class ucar.jpeg.jj2000.j2k.roi.encoder.ROIMaskGenerator
getROIs, tileChanged
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ArbROIMaskGenerator

public ArbROIMaskGenerator(ROI[] rois,
                           int nrc,
                           Quantizer src)
The constructor of the arbitrary mask generator

Parameters:
rois - The ROI info.
nrc - The number of components
src - The quantizer module
Method Detail

getROIMask

public boolean getROIMask(DataBlkInt db,
                          Subband sb,
                          int magbits,
                          int c)
This functions gets a DataBlk the size of the current code-block an fills this block with the ROI mask.

In order to get the mask for a particular Subband, the subband tree is traversed and at each decomposition, the ROI masks are computed.

The widths of the synthesis filters corresponding to the wavelet filters used in the wavelet transform are used to expand the ROI masks in the decompositions.

Specified by:
getROIMask in class ROIMaskGenerator
Parameters:
db - The data block that is to be filled with the mask
sb - The root of the subband tree to which db belongs
magbits - The max number of magnitude bits in any code-block
c - The number of the component
Returns:
Whether or not a mask was needed for this tile

toString

public String toString()
This function returns the relevant data of the mask generator

Overrides:
toString in class Object

makeMask

public void makeMask(Subband sb,
                     int magbits,
                     int c)
This function generates the ROI mask for one tile-component.

Once the mask is generated in the pixel domain. it is decomposed following the same decomposition scheme as the wavelet transform.

Specified by:
makeMask in class ROIMaskGenerator
Parameters:
sb - The root of the subband tree used in the decomposition
magbits - The max number of magnitude bits in any code-block
c - component number


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