|
CCSDS 124.0-B-1 C 1.0.0
CCSDS 124.0-B-1 Lossless Compression
|
Sequential bit reading from compressed data. More...
Data Structures | |
| struct | bitreader_t |
| Bit reader structure for sequential reading. More... | |
Functions | |
| void | bitreader_init (bitreader_t *reader, const uint8_t *data, size_t num_bits) |
| Initialize bit reader. | |
| int | bitreader_read_bit (bitreader_t *reader) |
| Read a single bit. | |
| uint32_t | bitreader_read_bits (bitreader_t *reader, size_t num_bits) |
| Read multiple bits as unsigned value. | |
| size_t | bitreader_position (const bitreader_t *reader) |
| Get current bit position. | |
| size_t | bitreader_remaining (const bitreader_t *reader) |
| Get remaining bits. | |
| void | bitreader_align_byte (bitreader_t *reader) |
| Skip to next byte boundary. | |
Sequential bit reading from compressed data.
The bit reader provides stateful bit-level access to compressed packet data, reading MSB-first within each byte.
| void bitreader_align_byte | ( | bitreader_t * | reader | ) |
Skip to next byte boundary.
Advances position to start of next byte (for padding).
| [in,out] | reader | Bit reader (position advanced) |
Definition at line 158 of file decompress.c.
References bitreader_t::bit_pos.
Referenced by ccsds124_decompress().
| void bitreader_init | ( | bitreader_t * | reader, |
| const uint8_t * | data, | ||
| size_t | num_bits | ||
| ) |
Initialize bit reader.
| [out] | reader | Reader to initialize |
| [in] | data | Source byte buffer |
| [in] | num_bits | Number of valid bits in buffer |
Definition at line 88 of file decompress.c.
References bitreader_t::bit_pos, bitreader_t::data, and bitreader_t::num_bits.
Referenced by ccsds124_decompress(), ccsds124_decompress_packet_checked(), and ccsds124_discover_packet_length().
| size_t bitreader_position | ( | const bitreader_t * | reader | ) |
Get current bit position.
| [in] | reader | Bit reader |
Definition at line 136 of file decompress.c.
References bitreader_t::bit_pos.
| int bitreader_read_bit | ( | bitreader_t * | reader | ) |
Read a single bit.
| [in,out] | reader | Bit reader (position advanced) |
Definition at line 97 of file decompress.c.
References bitreader_t::bit_pos, bitreader_t::data, and bitreader_t::num_bits.
Referenced by bitreader_read_bits(), ccsds124_bit_insert(), ccsds124_count_decode(), ccsds124_decompress_packet_internal(), and ccsds124_discover_packet_length().
| uint32_t bitreader_read_bits | ( | bitreader_t * | reader, |
| size_t | num_bits | ||
| ) |
Read multiple bits as unsigned value.
Reads up to 32 bits MSB-first and returns as uint32_t.
| [in,out] | reader | Bit reader (position advanced) |
| [in] | num_bits | Number of bits to read (1-32) |
Definition at line 115 of file decompress.c.
References bitreader_read_bit(), and bitreader_remaining().
Referenced by ccsds124_count_decode(), ccsds124_decompress_packet_internal(), and ccsds124_discover_packet_length().
| size_t bitreader_remaining | ( | const bitreader_t * | reader | ) |
Get remaining bits.
| [in] | reader | Bit reader |
Definition at line 147 of file decompress.c.
References bitreader_t::bit_pos, and bitreader_t::num_bits.
Referenced by bitreader_read_bits(), ccsds124_bit_insert(), ccsds124_count_decode(), ccsds124_decompress(), ccsds124_decompress_packet_checked(), ccsds124_decompress_packet_internal(), and ccsds124_discover_packet_length().