jj2000.j2k.decoder
Class Decoder

java.lang.Object
  |
  +--jj2000.j2k.decoder.Decoder
All Implemented Interfaces:
java.lang.Runnable

public class Decoder
extends java.lang.Object
implements java.lang.Runnable

This class is the main class of JJ2000's decoder. It instantiates all objects and performs the decoding operations. It then writes the image to the output file or displays it.

First the decoder should be initialized with a ParameterList object given through the constructor. The when the run() method is invoked and the decoder executes. The exit code of the class can be obtained with the getExitCode() method, after the constructor and after the run method. A non-zero value indicates that an error has ocurred.

The decoding chain corresponds to the following sequence of modules:

The 2 last modules cannot be used at the same time and corresponds respectively to the writing of decoded image into a file or the graphical display of this same image.

The behaviour of each module may be modified according to the current tile-component. All the specifications are kept in modules extending ModuleSpec and accessible through an instance of DecoderSpecs class.

See Also:
BitstreamReaderAgent, EntropyDecoder, ROIDeScaler, Dequantizer, InverseWT, ImgDataConverter, InvCompTransf, ImgWriter, BlkImgDataSrcImageProducer, ModuleSpec, DecoderSpecs

Field Summary
private  ColorSpace csMap
          Parses the inputstream to analyze the box structure of the JP2 file.
private  ParameterList defpl
          The default parameter list (arguments)
private  int exitCode
          The exit code of the run method
private  HeaderInfo hi
          Information contained in the codestream's headers
private  boolean isChildProcess
          False if the Decoder instance is self-contained process, false if thrown by another process (i.e by a GUI)
private  ImgScrollPane isp
          The component where the image is to be displayed
private static java.lang.String[][] pinfo
          The parameter information for this class
private  ParameterList pl
          The parameter list (arguments)
(package private)  TitleUpdater title
          Reference to the TitleUpdater instance.
private static char[] vprfxs
          The valid list of options prefixes
private  java.awt.Frame win
          Frame used to display decoded image
 
Constructor Summary
Decoder(ParameterList pl)
          Instantiates a decoder object, with the ParameterList object given as argument.
Decoder(ParameterList pl, ImgScrollPane isp)
          Instantiates a decoder object, with the ParameterList object given as argument and a component where to display the image if no output file is specified.
 
Method Summary
private  void error(java.lang.String msg, int code)
          Prints the error message 'msg' to standard err, prepending "ERROR" to it, and sets the exitCode to 'code'.
private  void error(java.lang.String msg, int code, java.lang.Throwable ex)
          Prints the error message 'msg' to standard err, prepending "ERROR" to it, and sets the exitCode to 'code'.
 void exit()
          Exit the decoding process according to the isChildProcess variable
static java.lang.String[][] getAllParameters()
          Returns all the parameters used in the decoding chain.
 java.lang.String[] getCOMInfo()
          Return the information found in the COM marker segments encountered in the decoded codestream.
 int getExitCode()
          Returns the exit code of the class.
static java.lang.String[][] getParameterInfo()
          Returns the parameters that are used in this class.
private  void printParamInfo(MsgLogger out, java.lang.String[][] pinfo)
          Prints the parameters in 'pinfo' to the provided output, 'out', showing the existing defaults.
private  void printUsage()
          Prints the usage information to stdout.
private  void printVersionAndCopyright()
          Prints version and copyright information to the logging facility returned by FacilityManager.getMsgLogger()
 void run()
          Runs the decoder.
 void setChildProcess(boolean b)
          Set isChildProcess variable.
private  void warning(java.lang.String msg)
          Prints the warning message 'msg' to standard err, prepending "WARNING" to it.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

csMap

private ColorSpace csMap
Parses the inputstream to analyze the box structure of the JP2 file.


title

TitleUpdater title
Reference to the TitleUpdater instance. Only used when decoded image is displayed


isChildProcess

private boolean isChildProcess
False if the Decoder instance is self-contained process, false if thrown by another process (i.e by a GUI)


exitCode

private int exitCode
The exit code of the run method


pl

private ParameterList pl
The parameter list (arguments)


hi

private HeaderInfo hi
Information contained in the codestream's headers


defpl

private ParameterList defpl
The default parameter list (arguments)


vprfxs

private static final char[] vprfxs
The valid list of options prefixes


win

private java.awt.Frame win
Frame used to display decoded image


isp

private ImgScrollPane isp
The component where the image is to be displayed


pinfo

private static final java.lang.String[][] pinfo
The parameter information for this class

Constructor Detail

Decoder

public Decoder(ParameterList pl,
               ImgScrollPane isp)
Instantiates a decoder object, with the ParameterList object given as argument and a component where to display the image if no output file is specified. It also retrieves the default ParameterList.

Parameters:
pl - The ParameterList for this decoder (contains also defaults values).
isp - The component where the image is to be displayed if not output file is specified. If null a new frame will be created to display the image.

Decoder

public Decoder(ParameterList pl)
Instantiates a decoder object, with the ParameterList object given as argument. It also retrieves the default ParameterList.

Parameters:
pl - The ParameterList for this decoder (contains also defaults values).
Method Detail

getExitCode

public int getExitCode()
Returns the exit code of the class. This is only initialized after the constructor and when the run method returns.

Returns:
The exit code of the constructor and the run() method.

getParameterInfo

public static java.lang.String[][] getParameterInfo()
Returns the parameters that are used in this class. 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 and the third one is a long description of what the parameter is. The synopsis or description may be 'null', in which case it is assumed that there is no synopsis or description of the option, respectively.

Returns:
the options name, their synopsis and their explanation.

run

public void run()
Runs the decoder. After completion the exit code is set, a non-zero value indicates that an error ocurred.

Specified by:
run in interface java.lang.Runnable
See Also:
getExitCode()

error

private void error(java.lang.String msg,
                   int code)
Prints the error message 'msg' to standard err, prepending "ERROR" to it, and sets the exitCode to 'code'. An exit code different than 0 indicates that there where problems.

Parameters:
msg - The error message
code - The exit code to set

error

private void error(java.lang.String msg,
                   int code,
                   java.lang.Throwable ex)
Prints the error message 'msg' to standard err, prepending "ERROR" to it, and sets the exitCode to 'code'. An exit code different than 0 indicates that there where problems. Either the stacktrace or a "details" message is output depending on the data of the "debug" parameter.

Parameters:
msg - The error message
code - The exit code to set
ex - The exception associated with the call

getCOMInfo

public java.lang.String[] getCOMInfo()
Return the information found in the COM marker segments encountered in the decoded codestream.


getAllParameters

public static java.lang.String[][] getAllParameters()
Returns all the parameters used in the decoding chain. It calls parameter from each module and store them in one array (one row per parameter and 4 columns).

Returns:
All decoding parameters
See Also:
getParameterInfo()

warning

private void warning(java.lang.String msg)
Prints the warning message 'msg' to standard err, prepending "WARNING" to it.

Parameters:
msg - The error message

printVersionAndCopyright

private void printVersionAndCopyright()
Prints version and copyright information to the logging facility returned by FacilityManager.getMsgLogger()


printUsage

private void printUsage()
Prints the usage information to stdout. The usage information is written for all modules in the decoder.


printParamInfo

private void printParamInfo(MsgLogger out,
                            java.lang.String[][] pinfo)
Prints the parameters in 'pinfo' to the provided output, 'out', showing the existing defaults. The message is printed to the logging facility returned by FacilityManager.getMsgLogger(). The 'pinfo' argument is a 2D String array. The first dimension contains String arrays, 1 for each parameter. Each of these arrays has 3 elements, the first element is the parameter name, the second element is the synopsis for the parameter and the third one is a long description of the parameter. If the synopsis or description is 'null' then no synopsis or description is printed, respectively. If there is a default value for a parameter it is also printed.

Parameters:
out - Where to print.
pinfo - The parameter information to write.

exit

public void exit()
Exit the decoding process according to the isChildProcess variable


setChildProcess

public void setChildProcess(boolean b)
Set isChildProcess variable.

Parameters:
b - The boolean value