1 个不稳定版本
| 0.1.0 | 2023年2月10日 |
|---|
#7 in #exp
每月 78 次下载
18KB
242 行
exp-golomb
用于指数 Golomb 编码的编码器/解码器。
使用维基百科示例
| 数字 | 比特模式 |
|---|---|
| 0 | 1 |
| 1 | 010 |
| 2 | 011 |
| 3 | 00100 |
| 4 | 00101 |
| 5 | 00110 |
| 6 | 00111 |
| 7 | 0001000 |
| 8 | 000100 |
use exp_golomb::{ExpGolombDecoder, ExpGolombEncoder};
let mut buf = [0u8; 6];
let mut writer = ExpGolombEncoder::new(&mut buf, 0).unwrap();
for i in 0..=8 {
writer.put_unsigned(i).unwrap();
}
writer.close();
assert_eq!(
buf,
[0b10100110, 0b01000010, 0b10011000, 0b11100010, 0b00000100, 0b10000000]
);
let mut reader = ExpGolombDecoder::new(&buf, 0).unwrap();
for i in 0..=8 {
assert_eq!(reader.next_unsigned(), Some(i));
}
lib.rs:
指数 Golomb 编码的实用工具。