SVT-AV1 2.0 kodavimo ir dav1d 1.4 dekoderio, skirto AV1 vaizdo formatui, išleidimas

Išleistas SVT-AV1 2.0 (Scalable Video Technology AV1) bibliotekos leidimas su AV1 vaizdo kodavimo formato kodavimo ir dekoderio diegimais, kurių paspartinimui naudojamos šiuolaikiniuose Intel procesoriuose esančios aparatinės įrangos lygiagretaus skaičiavimo priemonės. Projektą „Intel“ sukūrė bendradarbiaudama su „Netflix“, siekdama pasiekti tokį našumo lygį, kuris tinka tiesioginiam vaizdo perkodavimui ir naudojimui vaizdo įrašų užklausos (VOD) paslaugose. Šiuo metu kūrimas vykdomas globojant Open Media Alliance (AOMedia), kuri prižiūri AV1 vaizdo kodavimo formato kūrimą. Anksčiau projektas buvo plėtojamas pagal OpenVisualCloud projektą, kuris taip pat kuria SVT-HEVC ir SVT-VP9 kodavimo įrenginius. Kodas platinamas pagal BSD licenciją.

SVT-AV1 galima surinkti sistemoms, pagrįstoms bet kokia architektūra, kuriai yra C99 standartą palaikantis kompiliatorius, tačiau geriausias našumas pasiekiamas x86_64 sistemose, kurioms naudojami surinkimo optimizavimai pagal SIMD instrukcijas (pageidautina turėti AVX2 palaikymas CPU, bet kaip minimumo pakanka ir SS2). Atminties sąnaudos priklauso nuo kodavimo metu naudojamų procesoriaus branduolių skaičiaus, reguliuojamo „-lp“ parinktimi. Dėl AV1 naudojamų algoritmų sudėtingumo šio formato kodavimas reikalauja žymiai daugiau resursų nei kitų formatų, o tai neleidžia naudoti standartinio AV1 kodavimo perkodavimui realiuoju laiku. Pavyzdžiui, AV1 projekto atsargų koduotuvui reikia 5721, 5869 ir 658 kartus daugiau skaičiavimų, palyginti su x264 („pagrindinis“ profilis), x264 („aukštas“ profilis) ir libvpx-vp9 kodavimo įrenginiais.

Tarp naujojo SVT-AV1 leidimo pakeitimų:

  • Pereita prie naujos versijos numeracijos, pagal kurią pirmasis versijos skaitmuo keisis su kiekvienu API/ABI pakeitimu.
  • Buvo atlikti API pakeitimai, susiję su perėjimu prie srauto pabaigos indikacijos (EOS – End Of Stream) paskutiniame kadre, o ne naudojant tuščią kadrą, todėl nebereikėjo laukti papildomo kadro. API pakeitimas jau atsispindi FFmpeg kodų bazėje.
  • Trijų praėjimų kintamo pralaidumo režimas (3 žingsnių VBR) buvo pašalintas, o dabar jį pakeitė kelių praėjimų VBR mechanizmas. VBR kelių praėjimų režimas sumažintas iki dviejų, kad būtų užtikrintas integravimas su FFmpeg.
  • Koderis buvo papildytas optimizavimu, dėl kurio M9-M13 išankstinių nustatymų suspaudimo efektyvumas padidėjo 1-4%, o M5 išankstinio nustatymo atminties suvartojimas sumažėjo 20-35% LP 8 režimu ir 1-5 % kitais režimais. Atminties sąnaudos kituose išankstiniuose nustatymuose sumažėjo 1-5%.
  • Kokybės / greičio kompromisų optimizavimas buvo atliktas naudojant išankstinius nustatymus, kurie nustato aukštą kokybės lygį. Etaloninės kokybės MR iš anksto nustatytas pagreitintas 100%.
  • ARM specifinis optimizavimas buvo įtrauktas į tik C funkcijas.

Be to, galime atkreipti dėmesį į dav1d 1.4.1 projekto išleidimą, kurio metu „VideoLAN“ ir „FFmpeg“ bendruomenės kuria biblioteką, kurioje įdiegtas alternatyvus nemokamas AV1 vaizdo kodavimo formato dekoderis. dav1d biblioteka palaiko visas AV1 funkcijas, įskaitant pažangius subsampling tipus ir visus spalvų gylio valdymo parametrus, nurodytus specifikacijoje (8, 10 ir 12 bitų). Pagrindinis dav1d bruožas yra jo dėmesys siekiant aukščiausio įmanomo dekodavimo našumo ir užtikrinti aukštos kokybės darbą kelių gijų režimu. Projekto kodas parašytas C (C99) su surinkimo intarpais (NASM/GAS) ir platinamas pagal BSD licenciją. Įdiegtas x86, x86_64, ARMv7 ir ARMv8 architektūrų palaikymas bei operacinės sistemos FreeBSD, Linux, Windows, macOS, Android ir iOS.

dav1d 1.4 versija pasižymi tuo, kad palaiko naujas Loongarch ir RISC-V architektūras, taip pat įdiegė papildomus optimizavimus, pagrįstus AVX-512 instrukcijomis, pagreitina 6 tap filtrų veikimą ARM sistemose, padidina kelių gijų darbo efektyvumą ir sumažina dvejetainių duomenų dydis ARM64, ARM32 ir RISC sistemose V. Ištaisytas pažeidžiamumas CVE-2024-1580, dėl kurio apdorojant labai didelius kadrų dydžius buvo perpildytas sveikasis skaičius.

Šaltinis: opennet.ru

Добавить комментарий