5 个版本
0.2.0 | 2020 年 8 月 26 日 |
---|---|
0.1.3 | 2020 年 8 月 25 日 |
0.1.2 | 2020 年 7 月 16 日 |
0.1.1 | 2020 年 6 月 7 日 |
0.1.0 | 2020 年 6 月 7 日 |
#147 在 视频
每月 29 次下载
2MB
20K SLoC
包含 (DOS exe, 1MB) tools/evca_encoder.exe, (DOS exe, 455KB) tools/evca_decoder.exe
最快的最安全的 EVC 编码器和解码器
概述
MPEG-5 基础视频编码 (EVC) 基线配置文件是免费的,它包括20年以上的技术或声明免费的提交的技术。与 H.264/AVC (JM19.0) 相比,MPEG-5 EVC (ETM基线) 在可比较的计算复杂度下提供了大约30%的 BD-rate 降低。
REVC 是一个基于 Rust 的 EVC (基线) 视频编解码器实现。
特性
- 编码结构
- 基于四叉树编码结构,最大块大小为 64x64
- 帧内预测
- DC、水平 (H)、垂直 (V)、左对角线 (DL)、右对角线 (DR) 用于帧内预测
- 帧间预测
- 单向和双向帧间预测
- 时间直接模式
- 三个空间相邻运动向量和一个时间共定位的运动向量
- 1/2 和 1/4 像素插值
- 变换和量化
- 4x4 到 64x64 DCT
- QP 范围:0 到 51
- 带之字形扫描的 Run/level 符号
- 环路滤波器
- H.263 附录 J 中的去块滤波器
- 熵编码
- JPEG 附录 D 中的二进制算术编码方案
路线图
- 0.1 翻译
- 将 ETM 基线解码器从 C 转换为 Rust
- 将 ETM 基线编码器从 C 转换为 Rust
- 0.2 优化
- 性能分析和基准测试
- Rust 安全代码优化
- 汇编优化
- armeabi-v7a
- arm64-v8a
- x86
- x86_64
- 多线程优化
- 0.3 现代化
- 速率控制
- 实际用例:RTC、实时流、VOD 等
使用方法
压缩视频
输入视频可以是原始 yuv (I420) 格式或 y4m 格式。目前不支持单色颜色格式。
cargo run --release --bin revce -- -i tools/foreman_qcif8.yuv -w 176 -h 144 -z 30 -f 8 -q 27 -r tools/tmp/rec.yuv --keyint 8 --ref_pic_gap_length 8 --skip 0 --disable_dbf --inter_slice_type 1 -o tools/tmp/test_ld_p.evc -v
cargo run --release --bin revce -- -i tools/foreman_qcif8.y4m -q 27 -r tools/tmp/rec.y4m --keyint 8 --ref_pic_gap_length 8 --skip 0 --inter_slice_type 0 -o tools/tmp/test_ld_b.evc -v
解压缩视频
解码器仅支持 MPEG-5 EVC 基线配置文件。输出视频可以是原始 yuv (I420) 格式或 y4m 格式
cargo run --release --bin revcd -- -i tools/tmp/test_ld_p.evc -o tools/tmp/test.yuv -v
cargo run --release --bin revcd -- -i tools/tmp/test_ld_b.evc -o tools/tmp/test.y4m -v
贡献
欢迎贡献者或拉取请求!!!