Class DecoderRAW

java.lang.Object
jj2000.j2k.decoder.Decoder
gov.nih.mipav.model.file.rawjp2.DecoderRAW
All Implemented Interfaces:
Runnable

public class DecoderRAW extends jj2000.j2k.decoder.Decoder
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:

  • BitstreamReaderAgent
  • EntropyDecoder
  • ROIDeScaler
  • Dequantizer
  • InverseWT
  • ImgDataConverter
  • EnumratedColorSpaceMapper, SyccColorSpaceMapper or ICCProfiler
  • ComponentDemixer (if needed)
  • ImgDataAdapter (if ComponentDemixer is needed)
  • ImgWriter
  • BlkImgDataSrcImageProducer

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

    Fields
    Modifier and Type
    Field
    Description
    private colorspace.ColorSpace
    Parses the inputstream to analyze the box structure of the JP2 file.
    private jj2000.j2k.util.ParameterList
    The default parameter list (arguments)
    private int
    The exit code of the run method
    private jj2000.j2k.codestream.HeaderInfo
    Information contained in the codestream's headers
    private boolean
    False if the DecoderRAW instance is self-contained process, false if thrown by another process (i.e by a GUI)
    private jj2000.disp.ImgScrollPane
    The component where the image is to be displayed
    private static final String[][]
    The parameter information for this class
    private jj2000.j2k.util.ParameterList
    The parameter list (arguments)
    (package private) jj2000.disp.TitleUpdater
    Reference to the TitleUpdater instance.
    private static final char[]
    The valid list of options prefixes
    private Frame
    Frame used to display decoded image
  • Constructor Summary

    Constructors
    Constructor
    Description
    DecoderRAW(jj2000.j2k.util.ParameterList pl)
    Instantiates a decoder object, with the ParameterList object given as argument.
    DecoderRAW(jj2000.j2k.util.ParameterList pl, jj2000.disp.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

    Modifier and Type
    Method
    Description
    private void
    error(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(String msg, int code, Throwable ex)
    Prints the error message 'msg' to standard err, prepending "ERROR" to it, and sets the exitCode to 'code'.
    void
    Exit the decoding process according to the isChildProcess variable
    static String[][]
    Returns all the parameters used in the decoding chain.
    Return the information found in the COM marker segments encountered in the decoded codestream.
    int
    Returns the exit code of the class.
    static String[][]
    Returns the parameters that are used in this class.
    private void
    printParamInfo(jj2000.j2k.util.MsgLogger out, String[][] pinfo)
    Prints the parameters in 'pinfo' to the provided output, 'out', showing the existing defaults.
    private void
    Prints the usage information to stdout.
    private void
    Prints version and copyright information to the logging facility returned by FacilityManager.getMsgLogger()
    void
    run()
    Runs the decoder.
    jj2000.j2k.image.BlkImgDataSrc
    run1Slice(jj2000.j2k.io.RandomAccessIO inBuff)
     
    void
     
    void
    setChildProcess(boolean b)
    Set isChildProcess variable.
    private void
    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 Details

    • csMap

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

      jj2000.disp.TitleUpdater title
      Reference to the TitleUpdater instance. Only used when decoded image is displayed
    • isChildProcess

      private boolean isChildProcess
      False if the DecoderRAW 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 jj2000.j2k.util.ParameterList pl
      The parameter list (arguments)
    • hi

      private jj2000.j2k.codestream.HeaderInfo hi
      Information contained in the codestream's headers
    • defpl

      private jj2000.j2k.util.ParameterList defpl
      The default parameter list (arguments)
    • vprfxs

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

      private Frame win
      Frame used to display decoded image
    • isp

      private jj2000.disp.ImgScrollPane isp
      The component where the image is to be displayed
    • pinfo

      private static final String[][] pinfo
      The parameter information for this class
  • Constructor Details

    • DecoderRAW

      public DecoderRAW(jj2000.j2k.util.ParameterList pl, jj2000.disp.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.
    • DecoderRAW

      public DecoderRAW(jj2000.j2k.util.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 Details

    • getExitCode

      public int getExitCode()
      Returns the exit code of the class. This is only initialized after the constructor and when the run method returns.
      Overrides:
      getExitCode in class jj2000.j2k.decoder.Decoder
      Returns:
      The exit code of the constructor and the run() method.
    • getParameterInfo

      public static 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 Runnable
      Overrides:
      run in class jj2000.j2k.decoder.Decoder
      See Also:
    • run1Slice

      public jj2000.j2k.image.BlkImgDataSrc run1Slice(jj2000.j2k.io.RandomAccessIO inBuff)
    • runAllSlices

      public void runAllSlices()
    • error

      private void error(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(String msg, int code, 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 String[] getCOMInfo()
      Return the information found in the COM marker segments encountered in the decoded codestream.
      Overrides:
      getCOMInfo in class jj2000.j2k.decoder.Decoder
    • getAllParameters

      public static 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:
    • warning

      private void warning(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(jj2000.j2k.util.MsgLogger out, 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
      Overrides:
      exit in class jj2000.j2k.decoder.Decoder
    • setChildProcess

      public void setChildProcess(boolean b)
      Set isChildProcess variable.
      Overrides:
      setChildProcess in class jj2000.j2k.decoder.Decoder
      Parameters:
      b - The boolean value