For få dage siden var det udgivet den nye version af Rav1e 0.3, som er en AV1-koder skrevet i Rust og at det er placeret som en højtydende. Rav1e er designet til at dække alle brugssager, skønt det i sin nuværende form er mere egnet til tilfælde, hvor libaom.
Det understøtter alle større AV1-funktioner, inklusive vnutrenne og eksternt kodede rammer (intra og inter-frames) 64 × 64 superblokke, 4: 2: 0, 4: 2: 2 og 4: 4: 4, 8 undersampling farve, 10 og 12-bit farvedybde kodning, RDO forvrængningsoptimering (Velocity Distortion Optimization), forskellige tilstande til at forudsige ændringer mellem rammer og detektere transformationer, styre strømningshastigheden og detektere scene-trunkering.
AV1-formatet ligger især foran H.264 og VP9 i komprimeringsfunktioner, men på grund af kompleksiteten af algoritmerne, der implementerer dem, kræver det betydeligt mere tid til kodning (med hensyn til kodningshastighed er libaom hundreder af gange bag libvpx-vp9 og tusinder af gange bag x264).
Rav1e-koderen leverer 11 ydelsesniveauer, hvoraf den højeste tillader hastigheder tæt på realtidskodning. Koderen er tilgængelig både som et kommandolinjeprogram og som et bibliotek.
Hvad er nyt Rav1e 0.3?
Med udgivelsen af denne nye version, en af de egenskaber, der skiller sig mest ud, er at kodningstilstanden blev forbedret, som den er meget hurtigere med end sine tidligere versioner.
udover det størrelsen af binærfiler er reduceret (på x86_64-platformen til Linux optager biblioteket cirka 3 MB), hvormed det udførte arbejde blev optimeret på en bedre måde.
For x86_64-arkitektur implementeres yderligere optimeringer ved hjælp af SIMD-instruktioner, og brugen af selvvektorering udvides.
En anden vigtig ændring er det tilføjet build support til wasm32-wasi platform (WebAssembly system interface) såvel som "-S" (–switch-frame-interval) mulighed for at bestemme intervallet mellem switch frames.
Af de andre ændringer, der skiller sig ud af denne nye version af Rav1e 0.3:
- Tilføjet et filter med flere gevind for at fjerne blokerende artefakter fra video.
- Der blev arbejdet for at reducere monteringstiden med ca. 14%.
- Der blev arbejdet for at reducere antallet af hukommelsesallokeringsoperationer med 1/6.
- I RDO (Rate Distortion Optimization) forbedres logikken for at undertrykke intraframe forvrængninger.
- Nogle operationer er blevet konverteret fra flydende aritmetik til heltalberegninger.
- 1-2% kodningskvalitet blev forbedret på det andet hastighedsniveau.
- Tilføjet et nyt filter for at forudsige bevægelsesretningen (Intra edge).
Hvordan installeres rav1e på Ubuntu og derivater?
For dem, der er interesseret i at kunne installere denne AV1-koderen i deres system, skal de vide det i øjeblikket er rav1e tilgængelig til kompilering på Linux selvom der for Windows er en exe tilgængelig.
I dette tilfælde er vi interesseret i at kunne installere det i Ubuntu og dets derivater, så for at gøre dette, de skal have rust installeret på deres system.
Hvis du ikke har det, skal du gøre det åbn en terminal på dit system (du kan gøre det med genvejen Ctrl + Alt + T) og i det skal du skrive følgende kommandoer:
sudo apt install curl curl https://sh.rustup.rs -sSf | sh
Senere behøver vi kun at skrive mulighed 1, og den installeres. Når dette er gjort, skal vi konfigurere miljøet til Rust-kompilatoren med:
source $HOME/.cargo/env
Nu for at installere rav1e skal vi skrive:
sudo apt -y install cargo git perl nasm cmake clang pkg-config
Vi kloner rav1e-koden:
git clone https://github.com/xiph/rav1e.git mv rav1e rav1e-git cd rav1e-git
Og vi starter med udarbejdelsen:
git submodule update –init cmake aom_build/aom -DAOM_TARGET_CPU=x86_64 -DCONFIG_AV1_ENCODER=0 -DENABLE_TESTS=0 -DENABLE_DOCS=0 -DCONFIG_LOWBITDEPTH=1 make -j$(nproc) cargo build --release cp target/
Og klar med det kan du arbejde med denne indkoder.
Hvis du vil vide mere om brugen af rav1e, kan du konsultere dem følgende link.