ROHC compression/decompression library
|
Window-based Least Significant Bits (W-LSB) encoding. More...
Functions | |
static size_t | wlsb_get_minkp_32bits (const struct c_wlsb *const wlsb, const uint32_t value, const size_t min_k, const rohc_lsb_shift_t p) |
Find out the minimal number of bits of the to-be-encoded value required to be able to uniquely recreate it given the window. More... | |
static size_t | wlsb_get_next_older (const size_t entry, const size_t max) |
Get the next older entry. More... | |
static size_t | wlsb_ack_remove (struct c_wlsb *const wlsb, const size_t pos) |
Removes all W-LSB window entries prior to the given position. More... | |
void | wlsb_init (struct c_wlsb *const wlsb, const size_t bits, const size_t window_width, const rohc_lsb_shift_t p) |
Initialize the given W-LSB encoding object. More... | |
void | c_add_wlsb (struct c_wlsb *const wlsb, const uint32_t sn, const uint32_t value) |
Add a value into a W-LSB encoding object. More... | |
size_t | wlsb_get_k_8bits (const struct c_wlsb *const wlsb, const uint8_t value) |
Find out the minimal number of bits of the to-be-encoded value required to be able to uniquely recreate it given the window. More... | |
size_t | wlsb_get_kp_8bits (const struct c_wlsb *const wlsb, const uint8_t value, const rohc_lsb_shift_t p) |
Find out the minimal number of bits of the to-be-encoded value required to be able to uniquely recreate it given the window. More... | |
size_t | wlsb_get_k_16bits (const struct c_wlsb *const wlsb, const uint16_t value) |
Find out the minimal number of bits of the to-be-encoded value required to be able to uniquely recreate it given the window. More... | |
size_t | wlsb_get_mink_16bits (const struct c_wlsb *const wlsb, const uint16_t value, const size_t min_k) |
Find out the minimal number of bits of the to-be-encoded value required to be able to uniquely recreate it given the window. More... | |
size_t | wlsb_get_kp_16bits (const struct c_wlsb *const wlsb, const uint16_t value, const rohc_lsb_shift_t p) |
Find out the minimal number of bits of the to-be-encoded value required to be able to uniquely recreate it given the window. More... | |
size_t | wlsb_get_minkp_16bits (const struct c_wlsb *const wlsb, const uint16_t value, const size_t min_k, const rohc_lsb_shift_t p) |
Find out the minimal number of bits of the to-be-encoded value required to be able to uniquely recreate it given the window. More... | |
size_t | wlsb_get_k_32bits (const struct c_wlsb *const wlsb, const uint32_t value) |
Find out the minimal number of bits of the to-be-encoded value required to be able to uniquely recreate it given the window. More... | |
size_t | wlsb_get_mink_32bits (const struct c_wlsb *const wlsb, const uint32_t value, const size_t min_k) |
Find out the minimal number of bits of the to-be-encoded value required to be able to uniquely recreate it given the window. More... | |
size_t | wlsb_get_kp_32bits (const struct c_wlsb *const wlsb, const uint32_t value, const rohc_lsb_shift_t p) |
Find out the minimal number of bits of the to-be-encoded value required to be able to uniquely recreate it given the window. More... | |
size_t | wlsb_ack (struct c_wlsb *const wlsb, const uint32_t sn_bits, const size_t sn_bits_nr) |
Acknowledge based on the Sequence Number (SN) More... | |
bool | wlsb_is_sn_present (struct c_wlsb *const wlsb, const uint32_t sn) |
Whether the given SN is present in the given WLSB window. More... | |
Window-based Least Significant Bits (W-LSB) encoding.
void c_add_wlsb | ( | struct c_wlsb *const | wlsb, |
const uint32_t | sn, | ||
const uint32_t | value | ||
) |
Add a value into a W-LSB encoding object.
wlsb | The W-LSB object |
sn | The Sequence Number (SN) for the new entry |
value | The value to base the LSB coding on |
size_t wlsb_ack | ( | struct c_wlsb *const | wlsb, |
const uint32_t | sn_bits, | ||
const size_t | sn_bits_nr | ||
) |
Acknowledge based on the Sequence Number (SN)
Removes all window entries older (and including) than the one that matches the given SN bits.
wlsb | The W-LSB object |
sn_bits | The LSB of the SN to acknowledge |
sn_bits_nr | The number of LSB of the SN to acknowledge |
|
static |
Removes all W-LSB window entries prior to the given position.
wlsb | The W-LSB object |
pos | The position to set as the oldest |
size_t wlsb_get_k_16bits | ( | const struct c_wlsb *const | wlsb, |
const uint16_t | value | ||
) |
Find out the minimal number of bits of the to-be-encoded value required to be able to uniquely recreate it given the window.
The function is dedicated to 16-bit fields.
wlsb | The W-LSB object |
value | The value to encode using the LSB algorithm |
size_t wlsb_get_k_32bits | ( | const struct c_wlsb *const | wlsb, |
const uint32_t | value | ||
) |
Find out the minimal number of bits of the to-be-encoded value required to be able to uniquely recreate it given the window.
The function is dedicated to 32-bit fields.
wlsb | The W-LSB object |
value | The value to encode using the LSB algorithm |
size_t wlsb_get_k_8bits | ( | const struct c_wlsb *const | wlsb, |
const uint8_t | value | ||
) |
Find out the minimal number of bits of the to-be-encoded value required to be able to uniquely recreate it given the window.
The function is dedicated to 8-bit fields.
wlsb | The W-LSB object |
value | The value to encode using the LSB algorithm |
size_t wlsb_get_kp_16bits | ( | const struct c_wlsb *const | wlsb, |
const uint16_t | value, | ||
const rohc_lsb_shift_t | p | ||
) |
Find out the minimal number of bits of the to-be-encoded value required to be able to uniquely recreate it given the window.
The function is dedicated to 16-bit fields.
wlsb | The W-LSB object |
value | The value to encode using the LSB algorithm |
p | The shift parameter p |
size_t wlsb_get_kp_32bits | ( | const struct c_wlsb *const | wlsb, |
const uint32_t | value, | ||
const rohc_lsb_shift_t | p | ||
) |
Find out the minimal number of bits of the to-be-encoded value required to be able to uniquely recreate it given the window.
The function is dedicated to 32-bit fields.
wlsb | The W-LSB object |
value | The value to encode using the LSB algorithm |
p | The shift parameter p |
size_t wlsb_get_kp_8bits | ( | const struct c_wlsb *const | wlsb, |
const uint8_t | value, | ||
const rohc_lsb_shift_t | p | ||
) |
Find out the minimal number of bits of the to-be-encoded value required to be able to uniquely recreate it given the window.
The function is dedicated to 8-bit fields.
wlsb | The W-LSB object |
value | The value to encode using the LSB algorithm |
p | The shift parameter p |
size_t wlsb_get_mink_16bits | ( | const struct c_wlsb *const | wlsb, |
const uint16_t | value, | ||
const size_t | min_k | ||
) |
Find out the minimal number of bits of the to-be-encoded value required to be able to uniquely recreate it given the window.
The function is dedicated to 16-bit fields.
wlsb | The W-LSB object |
value | The value to encode using the LSB algorithm |
min_k | The minimum number of bits to find out |
size_t wlsb_get_mink_32bits | ( | const struct c_wlsb *const | wlsb, |
const uint32_t | value, | ||
const size_t | min_k | ||
) |
Find out the minimal number of bits of the to-be-encoded value required to be able to uniquely recreate it given the window.
The function is dedicated to 32-bit fields.
wlsb | The W-LSB object |
value | The value to encode using the LSB algorithm |
min_k | The minimum number of bits to find out |
size_t wlsb_get_minkp_16bits | ( | const struct c_wlsb *const | wlsb, |
const uint16_t | value, | ||
const size_t | min_k, | ||
const rohc_lsb_shift_t | p | ||
) |
Find out the minimal number of bits of the to-be-encoded value required to be able to uniquely recreate it given the window.
The function is dedicated to 16-bit fields.
wlsb | The W-LSB object |
value | The value to encode using the LSB algorithm |
min_k | The minimum number of bits to find out |
p | The shift parameter p |
|
static |
Find out the minimal number of bits of the to-be-encoded value required to be able to uniquely recreate it given the window.
The function is dedicated to 32-bit fields.
wlsb | The W-LSB object |
value | The value to encode using the LSB algorithm |
min_k | The minimum number of bits to find out |
p | The shift parameter p |
|
static |
Get the next older entry.
entry | The entry for which to get the next older entry |
max | The max entry value |
void wlsb_init | ( | struct c_wlsb *const | wlsb, |
const size_t | bits, | ||
const size_t | window_width, | ||
const rohc_lsb_shift_t | p | ||
) |
Initialize the given W-LSB encoding object.
[in,out] | wlsb | The W-LSB encoding object to initialize |
bits | The maximal number of bits for representing a value | |
window_width | The number of entries in the window (power of 2) | |
p | Shift parameter (see 4.5.2 in the RFC 3095) |
bool wlsb_is_sn_present | ( | struct c_wlsb *const | wlsb, |
const uint32_t | sn | ||
) |
Whether the given SN is present in the given WLSB window.
wlsb | The WLSB in which to search for the SN |
sn | The SN to search for |