| java.lang.Object jj2000.j2k.codestream.writer.BitOutputBuffer
BitOutputBuffer | public class BitOutputBuffer (Code) | | This class implements a buffer for writing bits, with the required bit
stuffing policy for the packet headers. The bits are stored in a byte array
in the order in which they are written. The byte array is automatically
reallocated and enlarged whenever necessary. A BitOutputBuffer object may
be reused by calling its 'reset()' method.
NOTE: The methods implemented in this class are intended to be used only
in writing packet heads, since a special bit stuffing procedure is used, as
required for the packet heads.
|
Field Summary | |
final public static int | SZ_INCR The increment size for the buffer, 16 bytes. | final public static int | SZ_INIT The initial size for the buffer, 32 bytes. | int | avbits | byte | buf | int | curbyte |
Constructor Summary | |
public | BitOutputBuffer() Creates a new BitOutputBuffer width a buffer of length
'SZ_INIT'. |
Method Summary | |
final public byte[] | getBuffer() Returns the byte buffer. | final public int | getLength() Returns the current length of the buffer, in bytes. | public void | reset() Resets the buffer. | public byte[] | toByteArray(byte data) Returns the byte buffer data in a new array. | public String | toString() | final public void | writeBit(int bit) Writes a bit to the buffer at the current position. | final public void | writeBits(int bits, int n) Writes the n least significant bits of 'bits' to the buffer at the
current position. |
SZ_INCR | final public static int SZ_INCR(Code) | | The increment size for the buffer, 16 bytes. This is the
number of bytes that are added to the buffer each time it is
needed to enlarge it.
|
SZ_INIT | final public static int SZ_INIT(Code) | | The initial size for the buffer, 32 bytes.
|
avbits | int avbits(Code) | | The number of available bits in the current byte
|
buf | byte buf(Code) | | The buffer where we store the data
|
curbyte | int curbyte(Code) | | The position of the current byte to write
|
BitOutputBuffer | public BitOutputBuffer()(Code) | | Creates a new BitOutputBuffer width a buffer of length
'SZ_INIT'.
|
getBuffer | final public byte[] getBuffer()(Code) | | Returns the byte buffer. This is the internal byte buffer so it should
not be modified. Only the first N elements have valid data, where N is
the value returned by 'getLength()'
This method is declared final to increase performance.
The internal byte buffer. |
getLength | final public int getLength()(Code) | | Returns the current length of the buffer, in bytes.
This method is declared final to increase performance.
The currebt length of the buffer in bytes. |
reset | public void reset()(Code) | | Resets the buffer. This rewinds the current position to the start of
the buffer and sets all tha data to 0. Note that no new buffer is
allocated, so this will affect any data that was returned by the
'getBuffer()' method.
|
toByteArray | public byte[] toByteArray(byte data)(Code) | | Returns the byte buffer data in a new array. This is a copy of the
internal byte buffer. If 'data' is non-null it is used to return the
data. This array should be large enough to contain all the data,
otherwise a IndexOutOfBoundsException is thrown by the Java system. The
number of elements returned is what 'getLength()' returns.
Parameters: data - If non-null this array is used to return the data, whichmus be large enough. Otherwise a new one is created and returned. The byte buffer data. |
toString | public String toString()(Code) | | Prints information about this object for debugging purposes
Information about the object. |
writeBit | final public void writeBit(int bit)(Code) | | Writes a bit to the buffer at the current position. The value 'bit'
must be either 0 or 1, otherwise it corrupts the bits that have been
already written. The buffer is enlarged, by 'SZ_INCR' bytes, if
necessary.
This method is declared final to increase performance.
Parameters: bit - The bit to write, 0 or 1. |
writeBits | final public void writeBits(int bits, int n)(Code) | | Writes the n least significant bits of 'bits' to the buffer at the
current position. The least significant bit is written last. The 32-n
most significant bits of 'bits' must be 0, otherwise corruption of the
buffer will result. The buffer is enlarged, by 'SZ_INCR' bytes, if
necessary.
This method is declared final to increase performance.
Parameters: bits - The bits to write. Parameters: n - The number of LSBs in 'bits' to write. |
|
|