org.tukaani.xz
Class DeltaOptions

java.lang.Object
  extended by org.tukaani.xz.FilterOptions
      extended by org.tukaani.xz.DeltaOptions
All Implemented Interfaces:
Cloneable

public class DeltaOptions
extends FilterOptions

Delta filter options. The Delta filter can be used only as a non-last filter in the chain, for example Delta + LZMA2.

Currently only simple byte-wise delta is supported. The only option is the delta distance, which you should set to match your data. It's not possible to provide a generic default value for it.

For example, with distance = 2 and eight-byte input A1 B1 A2 B3 A3 B5 A4 B7, the output will be A1 B1 01 02 01 02 01 02.

The Delta filter can be good with uncompressed bitmap images. It can also help with PCM audio, although special-purpose compressors like FLAC will give much smaller result at much better compression speed.


Field Summary
static int DISTANCE_MAX
          Largest supported delta calculation distance.
static int DISTANCE_MIN
          Smallest supported delta calculation distance.
 
Constructor Summary
DeltaOptions()
          Creates new Delta options and sets the delta distance to 1 byte.
DeltaOptions(int distance)
          Creates new Delta options and sets the distance to the given value.
 
Method Summary
 Object clone()
           
 int getDecoderMemoryUsage()
          Gets how much memory the decoder will need to decompress the data that was encoded with these options.
 int getDistance()
          Gets the delta distance.
 int getEncoderMemoryUsage()
          Gets how much memory the encoder will need with these options.
 InputStream getInputStream(InputStream in)
          Gets a raw (no XZ headers) decoder input stream using these options.
 FinishableOutputStream getOutputStream(FinishableOutputStream out)
          Gets a raw (no XZ headers) encoder output stream using these options.
 void setDistance(int distance)
          Sets the delta distance in bytes.
 
Methods inherited from class org.tukaani.xz.FilterOptions
getDecoderMemoryUsage, getEncoderMemoryUsage
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DISTANCE_MIN

public static final int DISTANCE_MIN
Smallest supported delta calculation distance.

See Also:
Constant Field Values

DISTANCE_MAX

public static final int DISTANCE_MAX
Largest supported delta calculation distance.

See Also:
Constant Field Values
Constructor Detail

DeltaOptions

public DeltaOptions()
Creates new Delta options and sets the delta distance to 1 byte.


DeltaOptions

public DeltaOptions(int distance)
             throws UnsupportedOptionsException
Creates new Delta options and sets the distance to the given value.

Throws:
UnsupportedOptionsException
Method Detail

setDistance

public void setDistance(int distance)
                 throws UnsupportedOptionsException
Sets the delta distance in bytes. The new distance must be in the range [DISTANCE_MIN, DISTANCE_MAX].

Throws:
UnsupportedOptionsException

getDistance

public int getDistance()
Gets the delta distance.


getEncoderMemoryUsage

public int getEncoderMemoryUsage()
Description copied from class: FilterOptions
Gets how much memory the encoder will need with these options.

Specified by:
getEncoderMemoryUsage in class FilterOptions

getOutputStream

public FinishableOutputStream getOutputStream(FinishableOutputStream out)
Description copied from class: FilterOptions
Gets a raw (no XZ headers) encoder output stream using these options. Raw streams are an advanced feature. In most cases you want to store the compressed data in the .xz container format instead of using a raw stream. To use this filter in a .xz file, pass this object to XZOutputStream.

Specified by:
getOutputStream in class FilterOptions

getDecoderMemoryUsage

public int getDecoderMemoryUsage()
Description copied from class: FilterOptions
Gets how much memory the decoder will need to decompress the data that was encoded with these options.

Specified by:
getDecoderMemoryUsage in class FilterOptions

getInputStream

public InputStream getInputStream(InputStream in)
Description copied from class: FilterOptions
Gets a raw (no XZ headers) decoder input stream using these options.

Specified by:
getInputStream in class FilterOptions

clone

public Object clone()
Overrides:
clone in class Object