com.twelvemonkeys.io.enc
Class PackBitsEncoder
java.lang.Object
com.twelvemonkeys.io.enc.PackBitsEncoder
- All Implemented Interfaces:
- Encoder
public final class PackBitsEncoder
- extends Object
- implements Encoder
Encoder implementation for Apple PackBits run-length encoding.
From Wikipedia, the free encyclopedia
PackBits is a fast, simple compression scheme for run-length encoding of
data.
Apple introduced the PackBits format with the release of MacPaint on the
Macintosh computer. This compression scheme is one of the types of
compression that can be used in TIFF-files.
A PackBits data stream consists of packets of one byte of header followed by
data. The header is a signed byte; the data can be signed, unsigned, or
packed (such as MacPaint pixels).
| Header byte | Data |
| 0 to 127 | 1 + n literal bytes of data |
| 0 to -127 | One byte of data, repeated 1 - n times in
the decompressed output |
| -128 | No operation |
Note that interpreting 0 as positive or negative makes no difference in the
output. Runs of two bytes adjacent to non-runs are typically written as
literal data.
See Understanding PackBits
- Version:
- $Id: //depot/branches/personal/haraldk/twelvemonkeys/release-2/twelvemonkeys-core/src/main/java/com/twelvemonkeys/io/enc/PackBitsEncoder.java#1 $
- Author:
- Harald Kuhr
|
Method Summary |
void |
encode(OutputStream stream,
ByteBuffer buffer)
Encodes up to buffer.remaining() bytes into the given input stream,
from the given buffer. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
PackBitsEncoder
public PackBitsEncoder()
- Creates a
PackBitsEncoder.
encode
public void encode(OutputStream stream,
ByteBuffer buffer)
throws IOException
- Description copied from interface:
Encoder
- Encodes up to
buffer.remaining() bytes into the given input stream,
from the given buffer.
- Specified by:
encode in interface Encoder
- Parameters:
stream - the output stream to encode data tobuffer - buffer to read data from
- Throws:
IOException - if an I/O error occurs
Copyright © 2015. All Rights Reserved.