Class RunLengthDecodeFilter

  • All Implemented Interfaces:
    Filter

    public class RunLengthDecodeFilter
    extends java.lang.Object
    implements Filter
    This is a filter for the RunLength Decoder. From the PDF Reference
     The RunLengthDecode filter decodes data that has been encoded in a simple
     byte-oriented format based on run length. The encoded data is a sequence of
     runs, where each run consists of a length byte followed by 1 to 128 bytes of data. If
     the length byte is in the range 0 to 127, the following length + 1 (1 to 128) bytes
     are copied literally during decompression. If length is in the range 129 to 255, the
     following single byte is to be copied 257 ? length (2 to 128) times during decompression.
     A length value of 128 denotes EOD.
    
     The compression achieved by run-length encoding depends on the input data. In
     the best case (all zeros), a compression of approximately 64:1 is achieved for long
     files. The worst case (the hexadecimal sequence 00 alternating with FF) results in
     an expansion of 127:128.
     
    Version:
    $Revision: 1.6 $
    Author:
    Ben Litchfield
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void decode​(java.io.InputStream compressedData, java.io.OutputStream result, COSDictionary options, int filterIndex)
      This will decode some compressed data.
      void encode​(java.io.InputStream rawData, java.io.OutputStream result, COSDictionary options, int filterIndex)
      This will encode some data.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • RunLengthDecodeFilter

        public RunLengthDecodeFilter()
        Constructor.
    • Method Detail

      • decode

        public void decode​(java.io.InputStream compressedData,
                           java.io.OutputStream result,
                           COSDictionary options,
                           int filterIndex)
                    throws java.io.IOException
        This will decode some compressed data.
        Specified by:
        decode in interface Filter
        Parameters:
        compressedData - The compressed byte stream.
        result - The place to write the uncompressed byte stream.
        options - The options to use to encode the data.
        filterIndex - The index to the filter being decoded.
        Throws:
        java.io.IOException - If there is an error decompressing the stream.
      • encode

        public void encode​(java.io.InputStream rawData,
                           java.io.OutputStream result,
                           COSDictionary options,
                           int filterIndex)
                    throws java.io.IOException
        This will encode some data.
        Specified by:
        encode in interface Filter
        Parameters:
        rawData - The raw data to encode.
        result - The place to write to encoded results to.
        options - The options to use to encode the data.
        filterIndex - The index to the filter being encoded.
        Throws:
        java.io.IOException - If there is an error compressing the stream.