8 个版本 (重大更改)
0.8.0 | 2024年2月21日 |
---|---|
0.7.0 | 2024年2月21日 |
0.6.0 | 2023年11月18日 |
0.5.0 | 2023年11月17日 |
0.1.0 | 2023年2月3日 |
#248 in 压缩
每月 86 次下载
用于 preflate-rs
44KB
1K SLoC
Rust 中上下文自适应二进制算术编码(CABAC)编解码器
H.264/265 和 VP8 编码器的实现。
编码器设计用于高效地编码二进制值,考虑之前看到的比特。之前的状态存储在 Context 对象中,每次看到比特时都会更新。通常多比特符号转换为二进制形式,每个比特分配一个相应的 bin(它有自己的上下文)。预期为随机的比特可以使用“绕过”模式,这可以在不使用上下文的情况下非常高效地添加到比特流中。
为了解码比特流,必须使用完全相同的上下文以相同的顺序,否则你会得到垃圾数据。这也包括必须以相同的顺序读取的任何绕过比特。
包含两个编码器:使用 6 位状态跟踪之前看到的比特的 h264/h265 CABAC,以及使用 16 位状态跟踪它看到的 VP8 CABAC。
依赖项
~115KB