Class GenericRefinementRegion

  • All Implemented Interfaces:
    Region, SegmentData

    public class GenericRefinementRegion
    extends java.lang.Object
    implements Region
    This class represents a generic refinement region and implements the procedure described in JBIG2 ISO standard, 6.3 and 7.4.7.
    • Field Detail

      • isTPGROn

        private boolean isTPGROn
        Generic refinement region segment flags, 7.4.7.2
      • templateID

        private short templateID
      • grAtX

        private short[] grAtX
        Generic refinement region segment AT flags, 7.4.7.3
      • grAtY

        private short[] grAtY
      • regionBitmap

        private Bitmap regionBitmap
        Decoded data as pixel values (use row stride/width to wrap line)
      • referenceBitmap

        private Bitmap referenceBitmap
        Variables for decoding
      • referenceDX

        private int referenceDX
      • referenceDY

        private int referenceDY
      • cx

        private CX cx
      • override

        private boolean override
        If true, AT pixels are not on their nominal location and have to be overridden.
      • grAtOverride

        private boolean[] grAtOverride
    • Constructor Detail

      • GenericRefinementRegion

        public GenericRefinementRegion()
      • GenericRefinementRegion

        public GenericRefinementRegion​(SubInputStream subInputStream)
    • Method Detail

      • parseHeader

        private void parseHeader()
                          throws java.io.IOException
        Parses the flags described in JBIG2 ISO standard:
        • 7.4.7.2 Generic refinement region segment flags
        • 7.4.7.3 Generic refinement refion segment AT flags
        Throws:
        java.io.IOException
      • readAtPixels

        private void readAtPixels()
                           throws java.io.IOException
        Throws:
        java.io.IOException
      • decodeSLTP

        private int decodeSLTP()
                        throws java.io.IOException
        Throws:
        java.io.IOException
      • decodeOptimized

        private void decodeOptimized​(int lineNumber,
                                     int width,
                                     int rowStride,
                                     int refRowStride,
                                     int paddedWidth,
                                     int deltaRefStride,
                                     int lineOffset)
                              throws java.io.IOException
        Throws:
        java.io.IOException
      • decodeTemplate

        private void decodeTemplate​(int lineNumber,
                                    int width,
                                    int rowStride,
                                    int refRowStride,
                                    int paddedWidth,
                                    int deltaRefStride,
                                    int lineOffset,
                                    int byteIndex,
                                    int currentLine,
                                    int refByteIndex,
                                    GenericRefinementRegion.Template templateFormation)
                             throws java.io.IOException
        Throws:
        java.io.IOException
      • updateOverride

        private void updateOverride()
      • decodeTypicalPredictedLine

        private void decodeTypicalPredictedLine​(int lineNumber,
                                                int width,
                                                int rowStride,
                                                int refRowStride,
                                                int paddedWidth,
                                                int deltaRefStride)
                                         throws java.io.IOException
        Throws:
        java.io.IOException
      • decodeTypicalPredictedLineTemplate0

        private void decodeTypicalPredictedLineTemplate0​(int lineNumber,
                                                         int width,
                                                         int rowStride,
                                                         int refRowStride,
                                                         int paddedWidth,
                                                         int deltaRefStride,
                                                         int byteIndex,
                                                         int currentLine,
                                                         int refByteIndex)
                                                  throws java.io.IOException
        Throws:
        java.io.IOException
      • decodeTypicalPredictedLineTemplate1

        private void decodeTypicalPredictedLineTemplate1​(int lineNumber,
                                                         int width,
                                                         int rowStride,
                                                         int refRowStride,
                                                         int paddedWidth,
                                                         int deltaRefStride,
                                                         int byteIndex,
                                                         int currentLine,
                                                         int refByteIndex)
                                                  throws java.io.IOException
        Throws:
        java.io.IOException
      • overrideAtTemplate0

        private int overrideAtTemplate0​(int context,
                                        int x,
                                        int y,
                                        int result,
                                        int minorX)
                                 throws java.io.IOException
        Throws:
        java.io.IOException
      • getPixel

        private byte getPixel​(Bitmap b,
                              int x,
                              int y)
                       throws java.io.IOException
        Throws:
        java.io.IOException
      • init

        public void init​(SegmentHeader header,
                         SubInputStream sis)
                  throws java.io.IOException
        Description copied from interface: SegmentData
        Parse the stream and read information of header.
        Specified by:
        init in interface SegmentData
        Parameters:
        header - - The segments' header (to make referred-to segments available in data part).
        sis - - Wrapped ImageInputStream into SubInputStream.
        Throws:
        java.io.IOException - if an underlying IO operation fails
      • setParameters

        protected void setParameters​(CX cx,
                                     ArithmeticDecoder arithmeticDecoder,
                                     short grTemplate,
                                     int regionWidth,
                                     int regionHeight,
                                     Bitmap grReference,
                                     int grReferenceDX,
                                     int grReferenceDY,
                                     boolean isTPGRon,
                                     short[] grAtX,
                                     short[] grAtY)