Grok 20.3.2
grk::t1_t2::BitIO Class Reference

#include <BitIO.h>

Public Member Functions

 BitIO (uint8_t *bp, uint64_t len, bool isCompressor)
 Constructs a t1::BitIO object.
 BitIO (IStreamWriter *stream, bool isCompressor)
 Constructs a t1::BitIO object.
size_t numBytes ()
 Gets number of bytes written.
bool write (uint32_t v, uint8_t n)
 Writes bits.
bool write (uint8_t v)
 Writes one bit.
template<typename T>
void read (T *bits, uint8_t n)
 Reads bits.
uint8_t read (void)
 Reads bit.
bool flush ()
 Flushes remaining bits.
void readFinalHeaderByte ()
 Reads bits at end of packet header.
bool putcommacode (uint8_t n)
 Writes comma code.
uint8_t getcommacode (void)
 Reads comma code.
bool putnumpasses (uint8_t n)
 Writes number of passes.
void getnumpasses (uint8_t *numpasses)
 Reads number of passes.

Private Member Functions

bool putbit (uint8_t b)
uint8_t getbit (void)
bool write8u (void)
void bytein (void)

Private Attributes

uint8_t * start
size_t offset
size_t buf_len
uint8_t buf
 Temporary buffer where bytes are read from or written to.
uint8_t ct
 Number of bits free to write for encoder or number of bits to read for decoder.
IStreamWriterstream
bool read0xFF

Constructor & Destructor Documentation

◆ BitIO() [1/2]

grk::t1_t2::BitIO::BitIO ( uint8_t * bp,
uint64_t len,
bool isCompressor )
inline

Constructs a t1::BitIO object.

Parameters
bpbit buffer
lenlength of bit buffer
isCompressorflag indicating compression or lack thereof

References buf, buf_len, ct, offset, read0xFF, start, and stream.

◆ BitIO() [2/2]

grk::t1_t2::BitIO::BitIO ( IStreamWriter * stream,
bool isCompressor )
inline

Constructs a t1::BitIO object.

Parameters
streamIStreamWriter
isCompressorflag indicating compression or lack thereof

References buf, buf_len, ct, offset, read0xFF, start, and stream.

Member Function Documentation

◆ bytein()

void grk::t1_t2::BitIO::bytein ( void )
inlineprivate

References buf, buf_len, ct, offset, read0xFF, and start.

Referenced by getbit(), read(), and readFinalHeaderByte().

◆ flush()

bool grk::t1_t2::BitIO::flush ( )
inline

Flushes remaining bits.

Returns
true if successful

References ct, and write8u().

Referenced by grk::T2Compress::compressHeader().

◆ getbit()

uint8_t grk::t1_t2::BitIO::getbit ( void )
inlineprivate

References buf, bytein(), and ct.

Referenced by read().

◆ getcommacode()

uint8_t grk::t1_t2::BitIO::getcommacode ( void )
inline

Reads comma code.

Returns
comma code

References read().

◆ getnumpasses()

void grk::t1_t2::BitIO::getnumpasses ( uint8_t * numpasses)
inline

Reads number of passes.

Parameters
numpassespointer to receive number of passes

References read().

◆ numBytes()

size_t grk::t1_t2::BitIO::numBytes ( )
inline

Gets number of bytes written.

Returns
number of bytes written

References offset.

Referenced by grk::T2Compress::compressPacketSimulate().

◆ putbit()

bool grk::t1_t2::BitIO::putbit ( uint8_t b)
inlineprivate

References buf, ct, and write8u().

Referenced by write(), and write().

◆ putcommacode()

bool grk::t1_t2::BitIO::putcommacode ( uint8_t n)
inline

Writes comma code.

Parameters
ncomma code
Returns
true if successful

References write().

Referenced by grk::T2Compress::compressHeader().

◆ putnumpasses()

bool grk::t1_t2::BitIO::putnumpasses ( uint8_t n)
inline

Writes number of passes.

Parameters
nnumber of passes

References write().

Referenced by grk::T2Compress::compressHeader().

◆ read() [1/2]

template<typename T>
void grk::t1_t2::BitIO::read ( T * bits,
uint8_t n )
inline

Reads bits.

Parameters
bitspointer to bits buffer
nnumber of bits to read (must be <= sizeof(T) << 3)

References buf, bytein(), and ct.

Referenced by grk::TagTree< uint8_t >::decode().

◆ read() [2/2]

uint8_t grk::t1_t2::BitIO::read ( void )
inline

Reads bit.

Returns
bit that was read

References getbit().

Referenced by getcommacode(), and getnumpasses().

◆ readFinalHeaderByte()

void grk::t1_t2::BitIO::readFinalHeaderByte ( )
inline

Reads bits at end of packet header.

References buf, bytein(), and ct.

◆ write() [1/2]

bool grk::t1_t2::BitIO::write ( uint32_t v,
uint8_t n )
inline

Writes bits.

Parameters
vbits to write
nnumber of bits to write (must be <= 32)
Returns
true if successful

References putbit().

Referenced by grk::T2Compress::compressHeader(), grk::TagTree< uint8_t >::encode(), putcommacode(), and putnumpasses().

◆ write() [2/2]

bool grk::t1_t2::BitIO::write ( uint8_t v)
inline

Writes one bit.

Parameters
vbit to write
Returns
true if successful

References putbit().

◆ write8u()

bool grk::t1_t2::BitIO::write8u ( void )
inlineprivate

References buf, buf_len, ct, offset, and stream.

Referenced by flush(), and putbit().

Member Data Documentation

◆ buf

uint8_t grk::t1_t2::BitIO::buf
private

Temporary buffer where bytes are read from or written to.

Referenced by BitIO(), BitIO(), bytein(), getbit(), putbit(), read(), readFinalHeaderByte(), and write8u().

◆ buf_len

size_t grk::t1_t2::BitIO::buf_len
private

Referenced by BitIO(), BitIO(), bytein(), and write8u().

◆ ct

uint8_t grk::t1_t2::BitIO::ct
private

Number of bits free to write for encoder or number of bits to read for decoder.

Referenced by BitIO(), BitIO(), bytein(), flush(), getbit(), putbit(), read(), readFinalHeaderByte(), and write8u().

◆ offset

size_t grk::t1_t2::BitIO::offset
private

Referenced by BitIO(), BitIO(), bytein(), numBytes(), and write8u().

◆ read0xFF

bool grk::t1_t2::BitIO::read0xFF
private

Referenced by BitIO(), BitIO(), and bytein().

◆ start

uint8_t* grk::t1_t2::BitIO::start
private

Referenced by BitIO(), BitIO(), and bytein().

◆ stream

IStreamWriter* grk::t1_t2::BitIO::stream
private

Referenced by BitIO(), BitIO(), and write8u().


The documentation for this class was generated from the following file: