CCSDS 124.0-B-1 C 1.0.0
CCSDS 124.0-B-1 Lossless Compression
Loading...
Searching...
No Matches
Decoding API

CCSDS Section 5.2: Decoding primitives (inverse of encoding). More...

Functions

int ccsds124_count_decode (bitreader_t *reader, uint32_t *value)
 Counter decoding (inverse of ccsds124_count_encode).
 
int ccsds124_rle_decode (bitreader_t *reader, bitvector_t *result, size_t length)
 Run-length decoding (inverse of ccsds124_rle_encode).
 
int ccsds124_bit_insert (bitreader_t *reader, bitvector_t *data, const bitvector_t *mask)
 Bit insertion (inverse of ccsds124_bit_extract).
 

Detailed Description

CCSDS Section 5.2: Decoding primitives (inverse of encoding).

These functions decode the encoded formats back to original values.

Function Documentation

◆ ccsds124_bit_insert()

int ccsds124_bit_insert ( bitreader_t reader,
bitvector_t data,
const bitvector_t mask 
)

Bit insertion (inverse of ccsds124_bit_extract).

Inserts extracted bits back into a vector at mask positions.

Parameters
[in,out]readerBit reader (position advanced)
[out]dataDestination data vector
[in]maskMask indicating insertion positions
Returns
CCSDS124_OK on success, error code otherwise

Definition at line 287 of file decompress.c.

References bitreader_read_bit(), bitreader_remaining(), bitvector_get_set_positions(), bitvector_hamming_weight(), bitvector_set_bit(), CCSDS124_ERROR_INVALID_ARG, CCSDS124_ERROR_UNDERFLOW, CCSDS124_MAX_PACKET_LENGTH, CCSDS124_OK, and bitvector::length.

Referenced by ccsds124_decompress_packet_internal().

◆ ccsds124_count_decode()

int ccsds124_count_decode ( bitreader_t reader,
uint32_t *  value 
)

Counter decoding (inverse of ccsds124_count_encode).

Decodes a COUNT-encoded value from the bit stream.

  • '0' → 1
  • '10' → 0 (terminator)
  • '110' + 5 bits → value + 2
  • '111' + variable bits → larger values
Parameters
[in,out]readerBit reader (position advanced)
[out]valueDecoded value (0 = terminator)
Returns
CCSDS124_OK on success, error code otherwise

Definition at line 175 of file decompress.c.

References bitreader_t::bit_pos, bitreader_read_bit(), bitreader_read_bits(), bitreader_remaining(), CCSDS124_ERROR_INVALID_ARG, CCSDS124_ERROR_UNDERFLOW, and CCSDS124_OK.

Referenced by ccsds124_decompress_packet_internal(), ccsds124_discover_packet_length(), ccsds124_rle_decode(), and skip_rle_sequence_span().

◆ ccsds124_rle_decode()

int ccsds124_rle_decode ( bitreader_t reader,
bitvector_t result,
size_t  length 
)

Run-length decoding (inverse of ccsds124_rle_encode).

Decodes an RLE-encoded bit vector from the bit stream.

Parameters
[in,out]readerBit reader (position advanced)
[out]resultDecoded bit vector
[in]lengthExpected bit vector length
Returns
CCSDS124_OK on success, error code otherwise

Definition at line 251 of file decompress.c.

References bitvector_init(), bitvector_set_bit(), bitvector_zero(), ccsds124_count_decode(), CCSDS124_ERROR_INVALID_ARG, CCSDS124_ERROR_OVERFLOW, and CCSDS124_OK.

Referenced by ccsds124_decompress_packet_internal().