SVT-AV1 2.0 (Scalable Video Technology AV1) teegi väljalase on avaldatud koos AV1 videokodeerimisvormingu kodeerija ja dekoodri rakendustega, mille kiirendamiseks kasutatakse kaasaegsetes Inteli protsessorites olemasolevaid riistvaralise paralleelarvutuse vahendeid. Projekti lõi Intel koostöös Netflixiga eesmärgiga saavutada jõudluse tase, mis sobib videote käigupealseks ümberkodeerimiseks ja kasutamiseks video-on-demand (VOD) teenustes. Praegu toimub arendus Open Media Alliance'i (AOMedia) egiidi all, mis jälgib AV1 videokodeerimisvormingu väljatöötamist. Varem töötati projekti välja OpenVisualCloud projekti raames, mis arendab ka SVT-HEVC ja SVT-VP9 kodeerijaid. Koodi levitatakse BSD litsentsi all.
SVT-AV1 saab kokku panna mis tahes arhitektuuril põhinevatele süsteemidele, mille jaoks on olemas C99 standardit toetav kompilaator, kuid parim jõudlus saavutatakse x86_64 süsteemidel, mille jaoks kasutatakse SIMD juhiste alusel koostamise optimeerimisi (soovitav on AVX2 tugi protsessoris, kuid miinimum on piisav ja SS2). Mälu tarbimine sõltub kodeerimisel kasutatud protsessori tuumade arvust, mida reguleerib suvand “-lp”. AV1-s kasutatavate algoritmide keerukuse tõttu nõuab selle formaadi kodeerimine oluliselt rohkem ressursse kui teistel formaatidel, mis ei võimalda reaalajas ümberkodeerimiseks kasutada standardset AV1 kodeerijat. Näiteks AV1 projekti varukooder nõuab 5721, 5869 ja 658 korda rohkem arvutusi võrreldes x264 ("põhiprofiil"), x264 ("kõrge" profiil) ja libvpx-vp9 kodeerijatega.
Uue SVT-AV1 versiooni muudatuste hulgas:
- Tehtud on üleminek uuele versiooni nummerdamisele, mille kohaselt muutub iga API/ABI muudatusega versioonis esimene number.
- API-s on tehtud muudatusi seoses üleminekuga voo lõpu indikaatorile (EOS – End Of Stream) viimases kaadris tühja kaadri kasutamise asemel, mis välistas lisakaadri ootamise viivituse. API muudatus kajastub juba FFmpegi koodibaasis.
- Kolmekäiguline muutuva bitikiirusega režiim (3-pass VBR) on eemaldatud ja on nüüd asendatud mitme läbipääsuga VBR-mehhanismiga. VBR-i mitmekäiguline režiim on vähendatud kahele käigule, et tagada integreerimine FFmpegiga.
- Kodeerijale on lisatud optimeeringuid, mille tulemusena on M9-M13 eelseadistuste tihendamise efektiivsus tõusnud 1-4% ja M5 eelseadistuse mälutarve LP 20 režiimis vähenenud 35-8% ning muudes režiimides 1-5%. Teiste eelseadete mälutarbimine vähenes 1-5%.
- Kvaliteedi/kiiruse kompromisside optimeerimine on tehtud eelseadistuste puhul, mis seavad kõrge kvaliteeditaseme. Võrdluskvaliteedi MR eelseadistus on kiirendatud 100%.
- Ainult C-s kirjutatud funktsioonidele on lisatud ARM-spetsiifilised optimeerimised.
Lisaks võime märkida dav1d 1.4.1 projekti väljaandmist, mille raames töötavad VideoLANi ja FFmpegi kogukonnad välja teeki, kus rakendatakse AV1 videokodeerimisvormingu jaoks alternatiivset tasuta dekoodrit. dav1d teek toetab kõiki AV1 funktsioone, sealhulgas täiustatud alamdiskreetimise tüüpe ja kõiki spetsifikatsioonis märgitud värvisügavuse reguleerimise parameetreid (8, 10 ja 12 bitti). dav1d põhiomadus on keskendumine kõrgeima võimaliku dekodeerimise jõudluse saavutamisele ja kvaliteetse töö tagamisele mitme lõimega režiimis. Projekti kood on kirjutatud C-keeles (C99) koos montaaži lisadega (NASM/GAS) ja seda levitatakse BSD litsentsi all. Rakendatud on x86, x86_64, ARMv7 ja ARMv8 arhitektuuride ning operatsioonisüsteemide FreeBSD, Linux, Windows, macOS, Android ja iOS tugi.
Versioon dav1d 1.4 on tähelepanuväärne selle poolest, et toetab uusi Loongarchi ja RISC-V arhitektuure, samuti lisab AVX-512 juhistel põhinevaid optimeerimisi, kiirendab 6tap filtrite tööd ARM-süsteemides, suurendab mitme lõimega töö efektiivsust ja vähendab binaarandmete suurus ARM64, ARM32 ja RISC-süsteemides V. Parandatud haavatavus CVE-2024-1580, mis põhjustas väga suurte kaadrisuuruste töötlemisel täisarvude ülevoolu tõttu piiridest väljakirjutamise.
Allikas: opennet.ru
