Class JPEGHuffmanTable

public class JPEGHuffmanTable
extends Object

A class encapsulating a single JPEG Huffman table. Fields are provided for the "standard" tables taken from Annex K of the JPEG specification. These are the tables used as defaults.

For more information about the operation of the standard JPEG plug-in, see the JPEG metadata format specification and usage notes

Field Summary

Fields
Modifier and Type Field Description
static JPEGHuffmanTable StdACChrominance

The standard AC chrominance Huffman table.

static JPEGHuffmanTable StdACLuminance

The standard AC luminance Huffman table.

static JPEGHuffmanTable StdDCChrominance

The standard DC chrominance Huffman table.

static JPEGHuffmanTable StdDCLuminance

The standard DC luminance Huffman table.

Constructor Summary

Constructors
Constructor Description
JPEGHuffmanTable​(short[] lengths, short[] values)

Creates a Huffman table and initializes it.

Method Summary

All Methods Instance Methods Concrete Methods
Modifier and Type Method Description
short[] getLengths()

Returns an array of shorts containing the number of values for each length in the Huffman table.

short[] getValues()

Returns an array of shorts containing the values arranged by increasing length of their corresponding codes.

String toString()

Returns a String representing this Huffman table.

Methods declared in class java.lang.Object

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

Field Detail

StdDCLuminance

public static final JPEGHuffmanTable StdDCLuminance

The standard DC luminance Huffman table.

StdDCChrominance

public static final JPEGHuffmanTable StdDCChrominance

The standard DC chrominance Huffman table.

StdACLuminance

public static final JPEGHuffmanTable StdACLuminance

The standard AC luminance Huffman table.

StdACChrominance

public static final JPEGHuffmanTable StdACChrominance

The standard AC chrominance Huffman table.

Constructor Detail

JPEGHuffmanTable

public JPEGHuffmanTable​(short[] lengths,
                        short[] values)

Creates a Huffman table and initializes it. The input arrays are copied. The arrays must describe a possible Huffman table. For example, 3 codes cannot be expressed with a single bit.

Parameters:
lengths - an array of shorts where lengths[k] is equal to the number of values with corresponding codes of length k + 1 bits.
values - an array of shorts containing the values in order of increasing code length.
Throws:
IllegalArgumentException - if lengths or values are null, the length of lengths is greater than 16, the length of values is greater than 256, if any value in lengths or values is less than zero, or if the arrays do not describe a valid Huffman table.

Method Detail

getLengths

public short[] getLengths()

Returns an array of shorts containing the number of values for each length in the Huffman table. The returned array is a copy.

Returns:
a short array where array[k-1] is equal to the number of values in the table of length k.
See Also:
getValues()

getValues

public short[] getValues()

Returns an array of shorts containing the values arranged by increasing length of their corresponding codes. The interpretation of the array is dependent on the values returned from getLengths. The returned array is a copy.

Returns:
a short array of values.
See Also:
getLengths()

toString

public String toString()

Returns a String representing this Huffman table.

Overrides:
toString in class Object
Returns:
a String representing this Huffman table.