public class BitInputStream extends Object
Constructor and Description |
---|
BitInputStream(InputStream is)
Constructs an instance of the class for a given stream
|
Modifier and Type | Method and Description |
---|---|
void |
align()
Aligns the stream to the next byte
|
void |
close()
Closes the stream.
|
byte |
getBitOffset()
Returns the bit offset in the last byte.
|
long |
getByteOffset()
Returns the byte offset of the stream.
|
int |
readBinary(int len)
Reads a binary integer from the already read buffer.
|
int |
readDelta()
Reads a delta encoded integer from the underlying stream
|
int |
readGamma()
Reads a gamma encoded integer from the underlying stream
|
int |
readGolomb(int b)
Reads a Golomb encoded integer
|
void |
readInterpolativeCoding(int[] data,
int offset,
int len,
int lo,
int hi)
Reads a sequence of numbers from the stream interpolative coded.
|
int |
readMinimalBinary(int b)
Reads a binary encoded integer, given an upper bound
|
int |
readMinimalBinaryZero(int b)
Reads a minimal binary encoded number, when the upper bound can b zero.
|
int |
readSkewedGolomb(int b)
Reads a skewed-golomb encoded integer from the underlying stream
Consider a bucket-vector v =
|
int |
readUnary()
Reads a unary encoded integer from the underlying stream
|
void |
skipBits(int len)
Skip a number of bits in the current input stream
|
public BitInputStream(InputStream is) throws IOException
is
- java.io.InputStream the underlying input streamIOException
- if an I/O error occurspublic void align() throws IOException
IOException
- if an I/O error occurspublic void close() throws IOException
IOException
- if an I/O error occurspublic byte getBitOffset()
public long getByteOffset()
public int readBinary(int len) throws IOException
len
- the number of binary bits to readIOException
- if an I/O error occurspublic int readDelta() throws IOException
IOException
- if an I/O error occurspublic int readGamma() throws IOException
IOException
- if an I/O error occurspublic int readGolomb(int b) throws IOException
b
- the golomb modulusIOException
- if and I/O error occurspublic void readInterpolativeCoding(int[] data, int offset, int len, int lo, int hi) throws IOException
data
- the result vectoroffset
- offset where to write in the vectorlen
- the number of integers to decode.lo
- a lower bound (the same one passed to writeInterpolativeCoding)hi
- an upper bound (the same one passed to writeInterpolativeCoding)IOException
- if an I/O error occurspublic int readMinimalBinary(int b) throws IOException
b
- the upper boundIOException
- if an I/O error occurspublic int readMinimalBinaryZero(int b) throws IOException
b
- the upper boundIOException
- if an I/O error occurspublic int readSkewedGolomb(int b) throws IOException
v =
The sum of the elements in the vector goes
b, 3b, 7b, 2^(i-1)*b
IOException
- if an I/O error occurspublic int readUnary() throws IOException
IOException
- if an I/O error occurspublic void skipBits(int len) throws IOException
len
- The number of bits to skipIOException
- if an I/O error occurs