Package org.terrier.compression.bit
Class BitInBase
- java.lang.Object
-
- org.terrier.compression.bit.BitInBase
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable,BitIn
- Direct Known Subclasses:
BitFileBuffered.BitInBuffered,BitInputStream
public abstract class BitInBase extends java.lang.Object implements BitIn
Base class for various BitIn implementations- Since:
- 3.6
- Author:
- Craig Macdonald
-
-
Field Summary
Fields Modifier and Type Field Description protected intbitOffsetbit offset in this byte, and in the larger fileprotected bytebyteReadcurrent byteprotected longoffsetoffset in the larger file-
Fields inherited from interface org.terrier.compression.bit.BitIn
USUAL_EXTENSION
-
-
Constructor Summary
Constructors Constructor Description BitInBase()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidalign()Aligns the stream to the next bytebytegetBitOffset()Returns the bit offset in the last byte.longgetByteOffset()Returns the byte offset of the stream.protected abstract voidincrByte()Move forward one byte.protected abstract voidincrByte(int i)Move forward i bytes.intreadBinary(int len)Reads a binary integer from the already read buffer.intreadDelta()Reads a delta encoded integer from the underlying streamintreadGamma()Reads a gamma encoded integer from the underlying streamintreadGolomb(int b)Reads a Golomb encoded integerprotected voidreadIn()Reads a new byte from the InputStream if we have finished with the current one.voidreadInterpolativeCoding(int[] data, int localoffset, int len, int lo, int hi)Reads a sequence of numbers from the stream interpolative coded.intreadMinimalBinary(int b)Reads a binary encoded integer, given an upper boundintreadMinimalBinaryZero(int b)Reads a minimal binary encoded number, when the upper bound can b zero.intreadSkewedGolomb(int b)Reads a skewed-golomb encoded integer from the underlying stream Consider a bucket-vectorv = <0, 2b, 4b, ...intreadUnary()Reads a unary encoded integer from the underlying streamvoidskipBits(int len)Skip a number of bits in the current input stream
-
-
-
Method Detail
-
getByteOffset
public long getByteOffset()
Returns the byte offset of the stream. It corresponds to the position of the byte in which the next bit will be written. Use only when writting- Specified by:
getByteOffsetin interfaceBitIn- Returns:
- the byte offset in the stream.
-
getBitOffset
public byte getBitOffset()
Returns the bit offset in the last byte. It corresponds to the position in which the next bit will be written. Use only when writting.- Specified by:
getBitOffsetin interfaceBitIn- Returns:
- the bit offset in the stream.
-
readUnary
public int readUnary() throws java.io.IOExceptionReads a unary encoded integer from the underlying stream
-
readBinary
public int readBinary(int len) throws java.io.IOExceptionReads a binary integer from the already read buffer.- Specified by:
readBinaryin interfaceBitIn- Parameters:
len- the number of binary bits to read- Returns:
- the decoded integer
- Throws:
java.io.IOException- if an I/O error occurs
-
readDelta
public int readDelta() throws java.io.IOExceptionReads a delta encoded integer from the underlying stream
-
readGamma
public int readGamma() throws java.io.IOExceptionReads a gamma encoded integer from the underlying stream
-
readSkewedGolomb
public int readSkewedGolomb(int b) throws java.io.IOExceptionReads a skewed-golomb encoded integer from the underlying stream Consider a bucket-vectorv = <0, 2b, 4b, ... , 2^i b, ...>The sum of the elements in the vector goesb, 3b, 7b, 2^(i-1)*b- Specified by:
readSkewedGolombin interfaceBitIn- Returns:
- the number read
- Throws:
java.io.IOException- if an I/O error occurs
-
readGolomb
public int readGolomb(int b) throws java.io.IOExceptionReads a Golomb encoded integer- Specified by:
readGolombin interfaceBitIn- Parameters:
b- the golomb modulus- Returns:
- the int read
- Throws:
java.io.IOException- if and I/O error occurs
-
readMinimalBinary
public int readMinimalBinary(int b) throws java.io.IOExceptionReads a binary encoded integer, given an upper bound- Specified by:
readMinimalBinaryin interfaceBitIn- Parameters:
b- the upper bound- Returns:
- the int read
- Throws:
java.io.IOException- if an I/O error occurs
-
readMinimalBinaryZero
public int readMinimalBinaryZero(int b) throws java.io.IOExceptionReads a minimal binary encoded number, when the upper bound can b zero. Used to interpolative code- Specified by:
readMinimalBinaryZeroin interfaceBitIn- Parameters:
b- the upper bound- Returns:
- the int read
- Throws:
java.io.IOException- if an I/O error occurs
-
readInterpolativeCoding
public void readInterpolativeCoding(int[] data, int localoffset, int len, int lo, int hi) throws java.io.IOExceptionReads a sequence of numbers from the stream interpolative coded.- Specified by:
readInterpolativeCodingin interfaceBitIn- Parameters:
data- the result vectorlocaloffset- 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)- Throws:
java.io.IOException- if an I/O error occurs
-
skipBits
public void skipBits(int len) throws java.io.IOExceptionSkip a number of bits in the current input stream
-
align
public void align() throws java.io.IOExceptionAligns the stream to the next byte
-
incrByte
protected abstract void incrByte() throws java.io.IOExceptionMove forward one byte. The newly read byte should appear in the byteRead variable.- Throws:
java.io.IOException
-
incrByte
protected abstract void incrByte(int i) throws java.io.IOExceptionMove forward i bytes. The newly read byte should appear in byteRead variable.- Throws:
java.io.IOException
-
readIn
protected void readIn() throws java.io.IOExceptionReads a new byte from the InputStream if we have finished with the current one.- Throws:
java.io.IOException
-
-