All Projects → revcx → revc

revcx / revc

Licence: MIT license
The fastest and safest EVC encoder and decoder

Programming Languages

rust
11053 projects
shell
77523 projects

Projects that are alternatives of or similar to revc

Gradle Baseline
A set of Gradle plugins that configure default code quality tools for developers.
Stars: ✭ 191 (+154.67%)
Mutual labels:  baseline
mujoco-benchmark
Provide full reinforcement learning benchmark on mujoco environments, including ddpg, sac, td3, pg, a2c, ppo, library
Stars: ✭ 101 (+34.67%)
Mutual labels:  baseline
nhwcodec
NHW : A Next-Generation Image Compression Codec
Stars: ✭ 56 (-25.33%)
Mutual labels:  codec
Recheck Web
recheck for web apps – change comparison tool with local Golden Masters, Git-like ignore syntax and "Unbreakable Selenium" tests.
Stars: ✭ 224 (+198.67%)
Mutual labels:  baseline
rasn
A Safe #[no_std] ASN.1 Codec Framework
Stars: ✭ 131 (+74.67%)
Mutual labels:  codec
SecureSnaps
Image Codec using Private-key cryptography
Stars: ✭ 13 (-82.67%)
Mutual labels:  codec
Windows Baseline
DevSec Windows Baseline - InSpec Profile
Stars: ✭ 160 (+113.33%)
Mutual labels:  baseline
libopenaptx
Open Source implementation of Audio Processing Technology codec (aptX)
Stars: ✭ 106 (+41.33%)
Mutual labels:  codec
GLUE-bert4keras
基于bert4keras的GLUE基准代码
Stars: ✭ 59 (-21.33%)
Mutual labels:  baseline
polymorphia
A very fast POJO codec for MongoDB (used in conjunction with the Mongo Java Driver) that handles generic types as well as polymorphic class hierarchies
Stars: ✭ 21 (-72%)
Mutual labels:  codec
Person reid baseline pytorch
Pytorch ReID: A tiny, friendly, strong pytorch implement of object re-identification baseline. Tutorial 👉https://github.com/layumi/Person_reID_baseline_pytorch/tree/master/tutorial
Stars: ✭ 2,963 (+3850.67%)
Mutual labels:  baseline
av1parser
AV1 video codec bitstream parser (not decoder!)
Stars: ✭ 27 (-64%)
Mutual labels:  codec
VideoCodecKit
iOS macOS 编解码库 脱离ffmpeg等外部依赖 支持H.264 H.265裸流播放 硬件编解码 rtmp推流等
Stars: ✭ 78 (+4%)
Mutual labels:  codec
Ssh Baseline
DevSec SSH Baseline - InSpec Profile
Stars: ✭ 192 (+156%)
Mutual labels:  baseline
Text-Classification-LSTMs-PyTorch
The aim of this repository is to show a baseline model for text classification by implementing a LSTM-based model coded in PyTorch. In order to provide a better understanding of the model, it will be used a Tweets dataset provided by Kaggle.
Stars: ✭ 45 (-40%)
Mutual labels:  baseline
Strong baseline of pedestrian attribute recognition
a solid and strong baseline of pedestrian attribute recognition
Stars: ✭ 176 (+134.67%)
Mutual labels:  baseline
redmine evm
Earned Value Management plugin for Redmine
Stars: ✭ 33 (-56%)
Mutual labels:  baseline
pyfixmsg
pyfixmsg is a library for parsing, manipulating and serialising FIX messages, primarily geared towards testing.
Stars: ✭ 50 (-33.33%)
Mutual labels:  codec
urlpack
Pure JavaScript toolkit for data URLs (MessagePack, Base58 and Base62)
Stars: ✭ 51 (-32%)
Mutual labels:  codec
Patched-AppleHDA-for-Mac-OS-Sierra-10.12
Patched AppleHDA for Realtek ALC ,VIA VT, IDT , Cirrus Logic Audio Codecs for Hackintosh's
Stars: ✭ 38 (-49.33%)
Mutual labels:  codec

revc Actions Status

The fastest and safest EVC encoder and decoder

Table of Content

Overview

MPEG-5 Essential Video Coding (EVC) baseline profile is royalty-free. It includes only technologies that are more than 20 years old or that were submitted with a royalty-free declaration. Compared to H.264/AVC High Profile (JM19.0), MPEG-5 EVC Baseline Profile (ETM 6.1) provides about 30% BD-rate reduction with reduced encoding computation complexity and comparable decoding computation complexity.

REVC is a Rust-based EVC (baseline) video codec implementation.

Features

  • Coding Structure
    • Quad-tree based coding structure up to 64x64 block size
  • Intra Prediction
    • DC, horizontal (H), vertical (V), diagonal left (DL), diagonal right (DR) for intra prediction
  • Inter Prediction
    • Un-directional and Bi-directional inter prediction
    • Temporal direct mode
    • Three spatial neighbouring motion vectors and one temporally co-located motion vector
    • 1/2 and 1/4-pel interpolation
  • Transform and Quantization
    • 4x4 to 64x64 DCT
    • QP range: 0 to 51
    • Run/level symbols with zig-zag scan
  • Loop Filter
    • Deblocking filter in H.263 Annex J
  • Entropy Coding
    • Binary arithmetic coding scheme in JPEG Annex D

Roadmap

  • 0.1 Translation:
    • Translate ETM baseline decoder from C to Rust
    • Translate ETM baseline encoder from C to Rust
  • 0.2 Optimization:
    • profiling and benchmarking
    • memory/cache optimization
    • assembly optimization
      • armeabi-v7a
      • arm64-v8a
      • x86
      • x86_64
    • multi-threading optimization
  • 0.3 Modernization
    • rate control
    • practical usecases: RTC, Live Streaming, VOD, etc

Usage

Compressing video

Input videos can be in raw yuv (I420) format or y4m format. The monochrome color format is not supported yet.

cargo run --release --bin revce -- -i scripts/foreman_qcif8.yuv -w 176 -h 144 -z 30 -f 8 -q 27 -r scripts/tmp/rec.yuv --keyint 8 --ref_pic_gap_length 8 --skip 0 --disable_dbf --inter_slice_type 1 -o scripts/tmp/test_ld_p.evc -v
cargo run --release --bin revce -- -i scripts/foreman_qcif8.y4m                     -f 8 -q 27 -r scripts/tmp/rec.y4m --keyint 8 --ref_pic_gap_length 8 --skip 0               --inter_slice_type 0 -o scripts/tmp/test_ld_b.evc -v

Decompressing video

Decoder only supports MPEG-5 EVC baseline profile. Output videos can be in raw yuv (I420) format or y4m format

cargo run --release --bin revcd -- -i scripts/tmp/test_ld_p.evc -o scripts/tmp/test.yuv -v
cargo run --release --bin revcd -- -i scripts/tmp/test_ld_b.evc -o scripts/tmp/test.y4m -v

Benchmark

Benchmark each component with Criterion.

cargo bench --features bench

Contributing

Contributors or Pull Requests are Welcome!!!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].