| ROHC compression/decompression library
   
    | 
Window-based Least Significant Bits (W-LSB) encoding. More...
#include "wlsb.h"#include "interval.h"#include "rohc_traces.h"#include "rohc_debug.h"#include <string.h>#include <assert.h>
| Data Structures | |
| struct | c_window | 
| Define a W-LSB window entry.  More... | |
| struct | c_wlsb | 
| Defines a W-LSB encoding object.  More... | |
| Functions | |
| struct c_wlsb * | c_create_wlsb (const size_t bits, const size_t window_width, const rohc_lsb_shift_t p) | 
| Create a new Window-based Least Significant Bits (W-LSB) encoding object. | |
| void | c_destroy_wlsb (struct c_wlsb *const wlsb) | 
| Destroy a Window-based LSB (W-LSB) encoding object. | |
| 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. | |
| bool | wlsb_get_k_16bits (const struct c_wlsb *const wlsb, const uint16_t value, size_t *const bits_nr) | 
| Find out the minimal number of bits of the to-be-encoded value required to be able to uniquely recreate it given the window. | |
| bool | wlsb_get_k_32bits (const struct c_wlsb *const wlsb, const uint32_t value, size_t *const bits_nr) | 
| Find out the minimal number of bits of the to-be-encoded value required to be able to uniquely recreate it given the window. | |
| void | c_ack_sn_wlsb (struct c_wlsb *s, const uint32_t sn) | 
| Acknowledge based on the Sequence Number (SN) | |
| int | c_sum_wlsb (struct c_wlsb *s) | 
| Compute the sum of all the values stored in the W-LSB window. | |
| int | c_mean_wlsb (struct c_wlsb *s) | 
| Compute the mean of all the values stored in the W-LSB window. | |
Window-based Least Significant Bits (W-LSB) encoding.
| void c_ack_sn_wlsb | ( | struct c_wlsb * | s, | 
| const uint32_t | sn | ||
| ) | 
Acknowledge based on the Sequence Number (SN)
Removes all entries older than the given SN in the window.
| s | The W-LSB object | 
| sn | The SN to acknowledge | 
References c_wlsb::count, c_wlsb::oldest, c_window::sn, c_wlsb::window, and c_wlsb::window_mask.
Referenced by c_generic_feedback().
| 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 | 
References c_wlsb::count, c_wlsb::next, c_wlsb::oldest, sn, c_window::sn, c_window::value, c_wlsb::window, c_wlsb::window_mask, and c_wlsb::window_width.
Referenced by add_scaled(), rohc_compress(), and rohc_decompress().
| struct c_wlsb* c_create_wlsb | ( | const size_t | bits, | 
| const size_t | window_width, | ||
| const rohc_lsb_shift_t | p | ||
| ) |  [read] | 
Create a new Window-based Least Significant Bits (W-LSB) encoding object.
| 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) | 
References c_wlsb::bits, c_wlsb::count, c_wlsb::next, c_wlsb::oldest, c_wlsb::p, rohc_debugf, c_wlsb::window_mask, and c_wlsb::window_width.
Referenced by c_create_sc(), c_generic_create(), c_init_header_info(), and context_create().
| void c_destroy_wlsb | ( | struct c_wlsb *const | wlsb | ) | 
Destroy a Window-based LSB (W-LSB) encoding object.
| wlsb | The W-LSB object to destroy | 
Referenced by c_destroy_sc(), c_generic_destroy(), context_create(), and context_free().
| int c_mean_wlsb | ( | struct c_wlsb * | s | ) | 
Compute the mean of all the values stored in the W-LSB window.
This function is used for statistics.
| s | The W-LSB object | 
References c_wlsb::count, c_wlsb::oldest, c_window::value, c_wlsb::window, and c_wlsb::window_mask.
Referenced by rohc_c_context(), and rohc_d_context().
| int c_sum_wlsb | ( | struct c_wlsb * | s | ) | 
Compute the sum of all the values stored in the W-LSB window.
This function is used for statistics.
| s | The W-LSB object | 
References c_wlsb::count, c_wlsb::oldest, c_window::value, c_wlsb::window, and c_wlsb::window_mask.
Referenced by rohc_c_context(), and rohc_d_context().
| bool wlsb_get_k_16bits | ( | const struct c_wlsb *const | wlsb, | 
| const uint16_t | value, | ||
| size_t *const | bits_nr | ||
| ) | 
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 | 
| bits_nr | OUT: The number of bits required to uniquely recreate the value | 
References c_wlsb::bits, c_wlsb::count, c_wlsb::oldest, c_wlsb::p, c_window::value, c_wlsb::window, and c_wlsb::window_mask.
| bool wlsb_get_k_32bits | ( | const struct c_wlsb *const | wlsb, | 
| const uint32_t | value, | ||
| size_t *const | bits_nr | ||
| ) | 
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 | 
| bits_nr | OUT: The number of bits required to uniquely recreate the value | 
References c_wlsb::bits, c_wlsb::count, c_wlsb::oldest, c_wlsb::p, c_window::value, c_wlsb::window, and c_wlsb::window_mask.
Referenced by nb_bits_scaled().
 1.7.6.1
 1.7.6.1