Utgivelsen av SVT-AV1 2.0 (Scalable Video Technology AV1)-biblioteket med implementeringer av koderen og dekoderen til AV1-videokodingsformatet har blitt publisert. Prosjektet ble opprettet av Intel i samarbeid med Netflix for å oppnå et ytelsesnivå som er egnet for videotranskoding og bruk i video-on-demand (VOD)-tjenester. For tiden utføres utviklingen i regi av Open Media Alliance (AOMedia), som fører tilsyn med utviklingen av AV1-videokodingsformatet. Tidligere ble prosjektet utviklet innenfor rammen av OpenVisualCloud-prosjektet, som også utvikler SVT-HEVC- og SVT-VP9-kodere. Koden distribueres under BSD-lisensen.
SVT-AV1 kan settes sammen for systemer basert på hvilken som helst arkitektur der det er en kompilator som støtter C99-standarden, men best ytelse oppnås på x86_64-systemer, hvor monteringsoptimaliseringer basert på SIMD-instruksjoner brukes (det er ønskelig å ha AVX2-støtte i CPU, men som minimum er tilstrekkelig og SS2). Minneforbruk avhenger av antall prosessorkjerner som brukes under koding, regulert av "-lp"-alternativet. På grunn av kompleksiteten til algoritmene som brukes i AV1, krever koding av dette formatet betydelig mer ressurser enn andre formater, noe som ikke tillater bruk av standard AV1-koder for sanntidstranskoding. For eksempel krever aksjekoderen fra AV1-prosjektet 5721, 5869 og 658 ganger flere beregninger sammenlignet med x264 ("hovedprofil"), x264 ("høy" profil) og libvpx-vp9-kodere.
Blant endringene i den nye SVT-AV1-utgivelsen:
- Det er foretatt en overgang til ny versjonsnummerering, hvor det første sifferet i versjonen vil endres ved hver API/ABI endring.
- Det er gjort endringer i API knyttet til overgangen til slutten av strøm-indikasjon (EOS - End Of Stream) i den siste rammen i stedet for å bruke en tom ramme, noe som eliminerte forsinkelsen i å vente på en ekstra ramme. API-endringen er allerede reflektert i FFmpeg-kodebasen.
- Tre-pass variabel bitrate-modus (3-pass VBR) er fjernet, og er nå erstattet av en multi-pass VBR-mekanisme. VBR multi-pass-modus er redusert til to pass for å sikre integrasjon med FFmpeg.
- Optimaliseringer er lagt til koderen, som et resultat av at komprimeringseffektiviteten til M9-M13-forhåndsinnstillingene har økt med 1-4%, og minneforbruket til M5-forhåndsinnstillingen har redusert med 20-35% i LP 8-modus og med 1-5 % i andre moduser. Minneforbruket i andre forhåndsinnstillinger gikk ned med 1-5 %.
- Optimalisering av kvalitet/hastighetskompromisser er utført for forhåndsinnstillinger som setter et høyt kvalitetsnivå. Referansekvaliteten MR forhåndsinnstilt har blitt akselerert med 100 %.
- ARM-spesifikke optimaliseringer er lagt til bare C-funksjoner.
I tillegg kan vi merke utgivelsen av dav1d 1.4.1-prosjektet, der VideoLAN- og FFmpeg-samfunnene utvikler et bibliotek med implementering av en alternativ gratis dekoder for AV1-videokodingsformatet. Dav1d-biblioteket støtter alle funksjonene til AV1, inkludert avanserte typer subsampling og alle fargedybdekontrollparametere angitt i spesifikasjonen (8, 10 og 12 bits). Nøkkelfunksjonen til dav1d er fokuset på å oppnå høyest mulig dekodingsytelse og sikre høykvalitetsarbeid i flertrådsmodus. Prosjektkoden er skrevet i C (C99) med monteringsinnsatser (NASM/GAS) og distribueres under BSD-lisensen. Støtte for x86, x86_64, ARMv7 og ARMv8 arkitekturer og operativsystemer FreeBSD, Linux, Windows, macOS, Android og iOS er implementert.
Versjon dav1d 1.4 er kjent for å støtte de nye Loongarch- og RISC-V-arkitekturene, i tillegg til å introdusere ytterligere optimaliseringer basert på AVX-512-instruksjoner, akselerere driften av 6tap-filtre på ARM-systemer, øke effektiviteten til flertrådsarbeid og redusere størrelsen på binære data på ARM64, ARM32 og RISC-systemer V. Fikset sårbarhet CVE-2024-1580, som forårsaket skriving utenfor grensene på grunn av heltallsoverflyt ved behandling av svært store rammestørrelser.
Kilde: opennet.ru
