Build decode lookup table: for each slot in [0, PROB_SCALE), which symbol?
(
cum_freqs: &[u32; 257],
_sym_freqs: &[u32; 256],
)
| 317 | |
| 318 | /// Build decode lookup table: for each slot in [0, PROB_SCALE), which symbol? |
| 319 | fn build_decode_table( |
| 320 | cum_freqs: &[u32; 257], |
| 321 | _sym_freqs: &[u32; 256], |
| 322 | ) -> [u8; PROB_SCALE as usize] { |
| 323 | let mut table = [0u8; PROB_SCALE as usize]; |
| 324 | for sym in 0..256u16 { |
| 325 | let start = cum_freqs[sym as usize] as usize; |
| 326 | let end = cum_freqs[sym as usize + 1] as usize; |
| 327 | for entry in table[start..end].iter_mut() { |
| 328 | *entry = sym as u8; |
| 329 | } |
| 330 | } |
| 331 | table |
| 332 | } |
| 333 | |
| 334 | #[cfg(test)] |
| 335 | mod tests { |