SVT-AV1 2.0 -kooderin ja dav1d 1.4 -dekooderin julkaisu AV1-videoformaatille

SVT-AV1 2.0 -kirjaston (Scalable Video Technology AV1) julkaisu on julkaistu AV1-videokoodausformaatin kooderin ja dekooderin toteutuksilla, joiden nopeuttamiseen käytetään nykyaikaisissa Intel-suorittimissa olevia laitteiston rinnakkaislaskennan välineitä. Intel loi projektin yhteistyössä Netflixin kanssa tavoitteenaan saavuttaa suoritustaso, joka soveltuu lennossa tapahtuvaan videon transkoodaukseen ja käyttöön videoon-demand (VOD) -palveluissa. Tällä hetkellä kehitystyötä tehdään Open Media Alliancen (AOMedia) alaisuudessa, joka valvoo AV1-videokoodausformaatin kehitystä. Aikaisemmin projekti on kehitetty OpenVisualCloud-projektin puitteissa, joka kehittää myös SVT-HEVC- ja SVT-VP9-koodareita. Koodia jaetaan BSD-lisenssillä.

SVT-AV1 voidaan koota mihin tahansa arkkitehtuuriin perustuviin järjestelmiin, joille on olemassa C99-standardia tukeva kääntäjä, mutta paras suorituskyky saavutetaan x86_64-järjestelmissä, joissa käytetään SIMD-ohjeisiin perustuvia kokoonpanooptimointeja (toivottavaa on AVX2-tuki suorittimessa, mutta minimi on riittävä ja SS2). Muistin kulutus riippuu koodauksen aikana käytettyjen prosessoriytimien määrästä, jota säätelee "-lp"-vaihtoehto. AV1:ssä käytettävien algoritmien monimutkaisuuden vuoksi tämän muodon koodaus vaatii huomattavasti enemmän resursseja kuin muut formaatit, mikä ei salli standardin AV1-kooderin käyttöä reaaliaikaiseen transkoodaukseen. Esimerkiksi AV1-projektin varastoenkooderi vaatii 5721, 5869 ja 658 kertaa enemmän laskelmia verrattuna x264- ("pääprofiili"), x264- ("korkea" profiili) ja libvpx-vp9-kooderiin.

SVT-AV1:n uuden julkaisun muutoksista:

  • On siirrytty uuteen versionumerointiin, jonka mukaan version ensimmäinen numero muuttuu jokaisen API/ABI-muutoksen myötä.
  • API:aan on tehty muutoksia, jotka liittyvät siirtymiseen virran loppumisilmoitukseen (EOS - End Of Stream) viimeisessä kehyksessä tyhjän kehyksen sijaan, mikä eliminoi ylimääräisen kehyksen odottamisen viiveen. API-muutos näkyy jo FFmpeg-koodikannassa.
  • Kolmivaiheinen muuttuva bittinopeustila (3-pass VBR) on poistettu, ja se on nyt korvattu monipäästöisellä VBR-mekanismilla. VBR-monipäästötila on vähennetty kahteen kierrokseen FFmpeg-integroinnin varmistamiseksi.
  • Enkooderiin on lisätty optimointeja, joiden seurauksena M9-M13-esiasetusten pakkaustehokkuus on kasvanut 1-4 % ja M5-esiasetuksen muistinkulutus on laskenut 20-35 % LP 8 -tilassa ja 1-5 % muissa tiloissa. Muiden esiasetusten muistin kulutus laski 1-5 %.
  • Laadun/nopeuden kompromisseja on optimoitu esiasetuksissa, jotka asettavat korkean laatutason. Referenssilaadun MR-esiasetusta on nopeutettu 100 %.
  • ARM-kohtaisia ​​optimointeja on lisätty vain C-toimintoihin.

Lisäksi voimme huomioida dav1d 1.4.1 -projektin julkaisun, jossa VideoLAN- ja FFmpeg-yhteisöt kehittävät kirjastoa, jossa on toteutettu vaihtoehtoinen ilmainen dekooderi AV1-videokoodausformaatille. dav1d-kirjasto tukee kaikkia AV1:n ominaisuuksia, mukaan lukien edistyneet alinäytteenottotyypit ja kaikki spesifikaatiossa mainitut värisyvyyden ohjausparametrit (8, 10 ja 12 bittiä). dav1d:n keskeinen ominaisuus on keskittyminen parhaan mahdollisen dekoodaussuorituskyvyn saavuttamiseen ja korkealaatuisen työn varmistamiseen monisäikeisessä tilassa. Projektikoodi on kirjoitettu C-kielellä (C99) kokoonpanolisäkkeillä (NASM/GAS) ja sitä jaetaan BSD-lisenssillä. Tuki x86-, x86_64-, ARMv7- ja ARMv8-arkkitehtuureille ja käyttöjärjestelmille FreeBSD, Linux, Windows, macOS, Android ja iOS on otettu käyttöön.

Versio dav1d 1.4 on huomionarvoinen uusien Loongarch- ja RISC-V-arkkitehtuurien tukemisesta sekä AVX-512-ohjeisiin perustuvien lisäoptimointien käyttöönotosta, 6tap-suodattimien toiminnan nopeuttamisesta ARM-järjestelmissä, monisäikeisen työn tehostamisesta ja vähentämisestä. binääritietojen koko ARM64-, ARM32- ja RISC-järjestelmissä V. Korjattu haavoittuvuus CVE-2024-1580, joka aiheutti rajojen ylittävän kirjoituksen kokonaislukujen ylivuodon vuoksi, kun käsitellään erittäin suuria kehyskokoja.

Lähde: opennet.ru

Lisää kommentti