Utgivelse av rav1e 0.3, en AV1-koder i Rust

fant sted problemet rav1e 0.3, en koder for videokodingsformater med høy ytelse AV1, utviklet av Xiph- og Mozilla-samfunnene. Koderen er skrevet i Rust og skiller seg fra referanse-libaom-koderen ved å øke kodehastigheten betydelig og økt oppmerksomhet på sikkerhet. Prosjektkode distribuert av under BSD-lisens.

Alle viktige AV1-funksjoner støttes, inkludert støtte
internt og eksternt kodede rammer (intra- и inter-rammer), 64x64 superblokker, 4:2:0, 4:2:2 og 4:4:4 chroma subsampling, 8-, 10- og 12-biters fargedybdekoding, RDO (Rate-Distortion Optimization) optimaliseringsforvrengning, ulike moduser for å forutsi interframe-endringer og identifisere transformasjoner, kontrollere strømningshastigheten og oppdage sceneavkorting.

AV1-formatet er merkbart overskridelser H.264 og VP9 når det gjelder komprimeringsevner, men på grunn av kompleksiteten til algoritmene som implementerer dem krever betydelig mer tid for koding (i kodingshastighet er libaom hundrevis av ganger bak libvpx-vp9, og tusenvis av ganger bak x264).
rav1e-koderen tilbyr 11 ytelsesnivåer, hvorav det høyeste gir nesten sanntids kodingshastigheter. Koderen er tilgjengelig både som et kommandolinjeverktøy og som et bibliotek.

I den nye versjonen:

  • Raskere kodingsmodus foreslått Hastighet 10;
  • Størrelsen på binære sammenstillinger er redusert (på x86_64/Linux-plattformen tar biblioteket opp ca. 3 MB);
  • Monteringstid redusert med ca. 14 %;
  • Lagt til flertrådsfilter for å fjerne blokkartefakter fra video (deblokkering);
  • For x86_64-arkitekturen er ytterligere optimaliseringer implementert ved hjelp av SIMD-instruksjoner og bruken av autovektorisering er utvidet;
  • Antall minneallokeringsoperasjoner er redusert med 1/6;
  • I RDO (Rate-Distortion Optimization) har logikken for å undertrykke intra-frame forvrengninger blitt forbedret;
  • Noen operasjoner har blitt flyttet fra å bruke flytepunktaritmetikk til heltallsberegninger;
  • Kodingskvaliteten på det andre hastighetsnivået er forbedret med 1-2 %;
  • La til nytt prediksjonsfilter for bevegelsesretning (Intrakant);
  • Lagt til alternativet "-S" (--switch-frame-interval) for å bestemme bytteintervallet mellom rammer;
  • Lagt til byggestøtte for wasm32-wasi-plattformen (WebAssembly systemgrensesnitt).

Kilde: opennet.ru

Legg til en kommentar