rav1e 0.5.0, AV1-videokoodausformaatin kooderi, on julkaistu. Tuote on Mozilla- ja Xiph-yhteisöjen kehittämä, ja se eroaa C/C++-kielellä kirjoitetusta libaom-referenssitoteutuksesta lisäämällä koodausnopeutta ja kiinnittämällä enemmän huomiota turvallisuuteen (pakkaustehokkuus on edelleen jäljessä). Tuote on kirjoitettu Rust-ohjelmointikielellä kokoonpanooptimoinneilla (72.2% - assembler, 27.5% - Rust), koodia jaetaan BSD-lisenssillä. Valmiit koontiversiot valmistellaan Windowsille ja macOS:lle (Linux-versiot ohitetaan väliaikaisesti jatkuvan integrointijärjestelmän ongelmien vuoksi).
rav1e tukee kaikkia AV1:n ydinominaisuuksia, mukaan lukien tuki sisäisille ja inter-frameille, 64x64-superlohkot, 4:2:0, 4:2:2 ja 4:4:4 värin alinäytteenotto. , 8-, 10- ja 12 -bitin värisyvyyskoodaus, RDO (Rate-distortion Optimation) vääristymien optimointi, erilaiset tilat kehysten välisten muutosten ennustamiseen ja muunnosten havaitsemiseen, bittinopeuden ohjaus ja kohtauksen katkaisun tunnistus.
AV1-muoto on huomattavasti edellä H.264:ää ja VP9:ää pakkausominaisuuksien suhteen, mutta ne toteuttavien algoritmien monimutkaisuuden vuoksi se vaatii huomattavasti enemmän aikaa koodaukseen (koodausnopeudessa libaom on satoja kertoja jäljessä libvpx- vp9 ja tuhansia kertoja x264:n takana). rav1e-kooderi tarjoaa 11 suorituskykytasoa, joista korkeimmat tarjoavat lähes reaaliaikaisia koodausnopeuksia. Enkooderi on saatavana sekä komentorivityökaluna että kirjastona.
Uusi versio sisältää seuraavat muutokset:
- Koodekin merkittävä kiihtyvyys;
- Korjattu virhe, joka aiheutti enkooderin kaatumisen tietyissä videokokoissa;
- AVX2-ohjeiden käyttäminen nopeuttaa merkittävästi Wiener-estimointia 13 bitillä kanavaa kohti (jopa 16 kertaa). Samoin lisättiin SIMD-ohjeiden käyttö, mikä mahdollisti laskelmien nopeuttamisen jopa 7 kertaa vastaavissa olosuhteissa;
- Paljon pieniä korjauksia ja optimointeja x86-, arm32- ja arm64-alustoille.
Lähde: opennet.ru