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 压缩

Download history 17/week @ 2024-04-02

每月 86 次下载
用于 preflate-rs

LGPL-3.0 或更新版

44KB
1K SLoC

Rust 中上下文自适应二进制算术编码(CABAC)编解码器

H.264/265 和 VP8 编码器的实现。

编码器设计用于高效地编码二进制值,考虑之前看到的比特。之前的状态存储在 Context 对象中,每次看到比特时都会更新。通常多比特符号转换为二进制形式,每个比特分配一个相应的 bin(它有自己的上下文)。预期为随机的比特可以使用“绕过”模式,这可以在不使用上下文的情况下非常高效地添加到比特流中。

为了解码比特流,必须使用完全相同的上下文以相同的顺序,否则你会得到垃圾数据。这也包括必须以相同的顺序读取的任何绕过比特。

包含两个编码器:使用 6 位状态跟踪之前看到的比特的 h264/h265 CABAC,以及使用 16 位状态跟踪它看到的 VP8 CABAC。

依赖项

~115KB