Package net.sourceforge.jiu.codecs.tiff

# Class TIFFDecoderModifiedHuffman

java.lang.Object
net.sourceforge.jiu.codecs.tiff.TIFFDecoder
net.sourceforge.jiu.codecs.tiff.TIFFDecoderModifiedHuffman

public class TIFFDecoderModifiedHuffman extends TIFFDecoder
A TIFF decoder for files compresseed with the Modified Huffman method (also known as CCITT 1D Modified Huffman Run Length Encoding). This compression algorithm has the value `2` in the compression tag of an image file directory. Only bilevel images can be encoded with that method.

Since:
  0.9.0
Author:
  Marco Schmidt

## Field Summary

Fields
Modifier and Type
Field
Description
`private int`
`bitBuffer`
`private DataInput`
`in`
`private int`
`numBufferedBits`

## Constructor Summary

Constructors
Constructor
Description
`TIFFDecoderModifiedHuffman()`

## Method Summary

Modifier and Type
Method
Description
`void`
`decode()`
Decode data from input and write the decompressed pixel data to the image associated with this decoder.
`private int`
`decodeBlackRun()`
`private void`
`decodeRow(byte[] row)`
`private int`
`decodeRun(int[][][] codes, int minCodeSize)`
`private int`
`decodeWhiteRun()`
`Integer[]`
`getCompressionTypes()`
Returns an array with Integer values of all compression types supported by this decoder (see the COMPRESSION_xyz constants in `TIFFConstants`.
`void`
`initialize()`
Check if all necessary parameters have been given to this decoder and initialize several internal fields from them.
`private int`
`readBit()`
`private int`
`readBits(int number)`
`private void`
`reset()`

### Methods inherited from class net.sourceforge.jiu.codecs.tiff.TIFFDecoder

`getBytesPerRow, getCodec, getImageFileDirectory, getInput, getTileIndex, getX1, getX2, getY1, getY2, putBytes, setCodec, setImageFileDirectory, setTileIndex`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### in

private DataInput in

### bitBuffer

private int bitBuffer

### numBufferedBits

private int numBufferedBits

## Constructor Details

### TIFFDecoderModifiedHuffman

public TIFFDecoderModifiedHuffman()

## Method Details

### decode

public void decode() throws InvalidFileStructureException, IOException
Description copied from class: `TIFFDecoder`
Decode data from input and write the decompressed pixel data to the image associated with this decoder. Child classes must override this method to implement the decoding for a particular compression type.

Specified by:
  `decode` in class `TIFFDecoder`
Throws:
  `InvalidFileStructureException`
  `IOException`

### decodeBlackRun

private int decodeBlackRun() throws InvalidFileStructureException, IOException

Throws:
  `InvalidFileStructureException`
  `IOException`

### decodeRow

private void decodeRow(byte[] row) throws InvalidFileStructureException, IOException

Throws:
  `InvalidFileStructureException`
  `IOException`

### decodeRun

private int decodeRun(int[][][] codes, int minCodeSize) throws InvalidFileStructureException, IOException

Throws:
  `InvalidFileStructureException`
  `IOException`

### decodeWhiteRun

private int decodeWhiteRun() throws InvalidFileStructureException, IOException

Throws:
  `InvalidFileStructureException`
  `IOException`

### getCompressionTypes

public Integer[] getCompressionTypes()
Description copied from class: `TIFFDecoder`
Returns an array with Integer values of all compression types supported by this decoder (see the COMPRESSION_xyz constants in `TIFFConstants`. Normally, this is only one value, but some compression types got assigned more than one constant (e.g. deflated). Also, a decoder could be capable of dealing with more than one type of compression if the compression types are similar enough to justify that. However, typically a decoder can only deal with one type of compression.

Specified by:
  `getCompressionTypes` in class `TIFFDecoder`
Returns:
  array with Integer objects of all TIFF compression constants supported by this decoder

### initialize

public void initialize() throws IOException, MissingParameterException
Description copied from class: `TIFFDecoder`
Check if all necessary parameters have been given to this decoder and initialize several internal fields from them. Required parameters are a TIFFCodec object, a TIFFImageFileDirectory object and a tile index.

Overrides:
  `initialize` in class `TIFFDecoder`
Throws:
  `IOException`
  `MissingParameterException`

### readBit

private int readBit() throws IOException

Throws:
  `IOException`

### readBits

private int readBits(int number) throws IOException

Throws:
  `IOException`

### reset

private void reset()