MCPcopy Create free account
hub / github.com/NodeDB-Lab/nodedb / rans_decode_symbol

Function rans_decode_symbol

nodedb-codec/src/rans.rs:237–250  ·  view source on GitHub ↗
(
    state: u32,
    lookup: &[u8; PROB_SCALE as usize],
    cum_freqs: &[u32; 257],
    sym_freqs: &[u32; 256],
)

Source from the content-addressed store, hash-verified

235}
236
237fn rans_decode_symbol(
238 state: u32,
239 lookup: &[u8; PROB_SCALE as usize],
240 cum_freqs: &[u32; 257],
241 sym_freqs: &[u32; 256],
242) -> (u8, u32) {
243 let slot = state & (PROB_SCALE - 1);
244 let sym = lookup[slot as usize];
245 let start = cum_freqs[sym as usize];
246 let freq = sym_freqs[sym as usize];
247
248 let new_state = freq * (state >> PROB_BITS) + slot - start;
249 (sym, new_state)
250}
251
252fn rans_decode_renorm(mut state: u32, stream: &[u8], pos: &mut usize) -> u32 {
253 while state < RANS_L && *pos > 0 {

Callers 1

decodeFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected