rav1e
traits
Our great sponsors
rav1e | traits | |
---|---|---|
70 | 4 | |
3,568 | 533 | |
1.2% | 0.9% | |
9.2 | 9.2 | |
4 days ago | 1 day ago | |
Assembly | Rust | |
BSD 2-clause "Simplified" License | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
rav1e
-
Learn x86-64 assembly by writing a GUI from scratch
Sure. You'll see it very often in codec implementations. From rav1e, a fast AV1 encoder mostly written in Rust: https://github.com/xiph/rav1e/tree/master/src/x86
Large portions of the algorithm have been translated into assembly for ARM and x86. Shaving even a couple percent off something like motion compensation search will add up to meaningful gains.
Or the current reference implementation of JPEG: https://github.com/libjpeg-turbo/libjpeg-turbo/tree/main/sim...
-
SISVEL VP9/AV1 patent declared invalid in China
Again, if anything AOM would be the one restricting licenses to AV1 (if they chose to) except AOM has stated and also published AV1 in a way to allow license free access to development (which allows people to make forks of the official build like it's open source) and usage. (1)(2) I don't see why they would suddenly change this.
- Any new Opensource projects in (rust) looking for contributors. I want to start my journey as an OSS contributor.
- assembly from dav1d 1.1.0 now integrated into rav1e
-
A little script to parse large libraries to AV1, if you're interested
You can speed up the sampling process with --vmaf n_subsample=5, which in my experience works more accurately than either 2 or 4, possibly due to this bug/feature present in multiple encoders. You might also need to manually set the number of threads used for VMAF calculation with --vmaf n_threads=16, but YMMV.
-
rav1d: a Rust port of dav1d (currently experimental)
That remember me of https://github.com/xiph/rav1e which is an AV1 encoder
- A Safer High Performance AV1 Decoder
-
rav1e wrong mastering-display output?
I put in the request for ffmpeg passthrough mastering-display data a few years ago and haven't heard of any support yet.
-
HDR10, HDR10+, Dolby Vision with AV1?
It's getting there.. Initial steps for FFmepg: https://patchwork.ffmpeg.org/project/ffmpeg/list/?series=8444 rav1e: https://github.com/xiph/rav1e/pull/3000
-
Release Notes: Safari 16.4 Beta adds AV1 codec + hardware decode for WebRTC
It's entirely possible to re-use bits of other HW encoders for the first pass (motion estimation, etc).
traits
-
RustCrypto Release Announcements: `aead` v0.4, `cipher` v0.3, `crypto` v0.2, `elliptic-curve` v0.9, `ecdsa` v0.11
For ECIES that'd probably be something like HPKE. HPKE isn't specific to ECC though, and is defined in terms of a KEM, so the first step there would probably be defining KEM traits which would allow you to plug in ECDH or potentially a post-quantum algorithm or RSA.
-
The last and next year of image-rs
No need for eternal stability. It would be indeed nice to get the API right the first time, but in practice it's borderline impossible to do. It's fine for trait crates to introduce breaking changes from time to time, especially for pre-1.0 ones. For prior art you can take a look at rand_core or RustCrypto trait crates.
-
What’s everyone working on this week (8/2021)?
I finally dusted off my barely-working git hosting solution and added a basic user account system. It took me some time to understand how exactly I was supposed to use password-hash in combination with my hashing function of choice, as well as with the DB. Using sqlx together with Rocket turned out to be somewhat easy once I figured out that I should disregard the built-in database support, since it's seemingly incompatible with sqlx.
-
Go vs Rust for crypto implementations
The main difference between those two languages, I think you should look at, is power of type system. A good type system allows to encode various invariants checked at compile time, help with interoperability, and even improve performance a bit (e.g. by eliminating runtime-checks). In this regard Rust is far, far ahead of Go in my opinion and continues to improve in this regard (e.g. soon we will have const generics). For example, in RustCrypto we have trait crates which contain "interfaces" of several algorithm types. Almost all algorithm implementations in this org (and some third-party implementations) are implemented in terms of those traits, which means you can easily swap algorithms with each other and combine them like Lego blocks, without diving deep into source code. This property is especially important if you want to support less common algorithms (e.g. regional standards or newly developed algorithms).
What are some alternatives?
SVT-AV1
tink-rust - Rust port of Tink cryptography library
dav1d - A read-only mirror of dav1d source code repository. The origin is at https://code.videolan.org/videolan/dav1d/
nlprule - A fast, low-resource Natural Language Processing and Text Correction library written in Rust.
SVT-AV1 - Welcome to the GitHub repo for the SVT-AV1! This repo is set to read-only for archiving purposes. Please join us at https://gitlab.com/AOMediaCodec/SVT-AV1. We look forward to seeing you there
mos - An assembler, code formatter, language server and debug adapter for the MOS 6502 CPU.
ffmpeg-build-script - The FFmpeg build script provides an easy way to build a static FFmpeg on OSX and Linux with non-free codecs included.
google-hashcode-template - Google Hashcode Rust Template
obs-amd-encoder - AMD Advanced Media Framework Encoder Plugin for Open Broadcaster Studio
meta - Meta-crates of the RustCrypto project
libavif - libavif - Library for encoding and decoding .avif files
gbench