1个不稳定版本
0.1.0 | 2023年2月13日 |
---|
#452 在 压缩
17KB
302 代码行
最终状态压缩
这是一个FSE算法的完整Rust实现。
该库不包含任何外部工具,如直方图计算、数据迭代器、从文件创建块或启发式优化。
在没有仔细检查的情况下,不应在生产中使用该库。这主要是用于研究带有一些算术的数据压缩的仓库。
然而,这些公共函数似乎工作正常
/// Symbol index contains the position for each symbol in the histogram.
/// You should care about your alphabet outside the function.
pub fn encode(
hist: &mut [usize],
symbol_index: &HashMap<u16, usize>,
table_log: usize, // R
src: &[u16],
) -> (usize, Vec<u32>, Vec<u8>)
/// Hist is a 255 sized slice containing the symbol's index itself
pub fn encode_u8(
hist: &mut [usize],
table_log: usize, // R
src: &[u8],
) -> (usize, Vec<u32>, Vec<u8>);
pub fn decode(
mut state: usize,
mut bits: Vec<u32>,
str: Vec<u8>,
normalized_counter: &[usize],
symbols: &[u16],
table_log: usize,
) -> Vec<u16>;
pub fn decode_u8(
mut state: usize,
mut bits: Vec<u32>,
str: Vec<u8>,
normalized_counter: &[usize],
table_log: usize,
) -> Vec<u8>;
许可证
由于FSE算法是公开的,FB实现也是如此,当前的Rust解释应该遵循MIT许可证。
依赖关系
~175KB