Utgivningen av SVT-AV1 2.0-biblioteket (Scalable Video Technology AV1) har publicerats med implementeringar av kodaren och avkodaren för AV1-videokodningsformatet, för acceleration av vilket medel för parallellberäkning av hårdvara som finns i moderna Intel-processorer används. Projektet skapades av Intel i samarbete med Netflix med målet att uppnå en prestandanivå som lämpar sig för on-the-fly videoomkodning och användning i video-on-demand (VOD)-tjänster. För närvarande genomförs utvecklingen under överinseende av Open Media Alliance (AOMedia), som övervakar utvecklingen av AV1-videokodningsformatet. Tidigare har projektet utvecklats inom ramen för projektet OpenVisualCloud, som även utvecklar kodarna SVT-HEVC och SVT-VP9. Koden distribueras under BSD-licensen.
SVT-AV1 kan kompileras för system baserade på vilken arkitektur som helst för vilken det finns en kompilator som stöder C99-standarden, men bäst prestanda uppnås på x86_64-system som använder assembleroptimeringar baserade på SIMD-instruktioner (AVX2-stöd i CPU:n är önskvärt, men SS2 är tillräckligt som ett minimum). Minnesförbrukningen beror på antalet processorkärnor som är involverade i kodningen, vilket styrs av alternativet "--lp". På grund av komplexiteten hos de algoritmer som används i AV1 kräver kodning av detta format betydligt mer resurser än andra format, vilket inte tillåter användning av standard AV1-kodaren för realtidskodning. Till exempel kräver standardkodaren från AV1-projektet 5721, 5869 och 658 gånger fler beräkningar jämfört med kodarna x264 (profil "main"), x264 (profil "high") och libvpx-vp9.
Bland ändringarna i den nya versionen av SVT-AV1:
- En övergång till en ny versionsnumrering har gjorts, enligt vilken den första siffran i versionen kommer att ändras vid varje ändring i API/ABI.
- Ändringar har gjorts i API:et relaterade till övergången till indikationen för slutet av strömmen (EOS) i den sista bildrutan istället för att använda en tom bildruta, vilket eliminerar fördröjningen på grund av att man väntar på en extra bildruta. API-ändringen återspeglas redan i FFmpeg-kodbasen.
- 3-pass variabel bitrate-läget (XNUMX-pass VBR) har tagits bort och ersatts med en flerpass VBR-mekanism. Multipass VBR-läge har reducerats till två pass för att möjliggöra integration med FFmpeg.
- Kodaren har förbättrats med optimeringar som ökade komprimeringseffektiviteten för förinställningarna M9-M13 med 1–4 % och minskade minnesförbrukningen i förinställningarna M5 med 20–35 % i LP 8-läge och med 1–5 % i andra lägen. Minnesförbrukningen i andra förinställningar har minskats med 1–5 %.
- Optimerade avvägningar mellan kvalitet och hastighet för förinställningar som ställer in höga kvalitetsnivåer. MR-förinställningen, som ger referenskvalitet, har accelererats med 100 %.
- ARM-arkitekturspecifika optimeringar har lagts till i endast C-funktioner.
Dessutom är det värt att notera lanseringen av dav1d 1.4.1-projektet, inom ramen för vilket VideoLAN- och FFmpeg-communities utvecklar ett bibliotek med implementeringen av en alternativ gratis avkodare för AV1-videokodningsformatet. dav1d-biblioteket stöder alla AV1-funktioner, inklusive avancerade subsamplingstyper och alla angivna alternativ för färgdjupskontroll (8, 10 och 12 bitar). Den viktigaste funktionen hos dav1d är dess fokus på att uppnå högsta möjliga avkodningsprestanda och säkerställa högkvalitativ drift i flertrådat läge. Projektkoden är skriven i C (C99) med assemblerinlägg (NASM/GAS) och distribueras under BSD-licensen. Stöd för arkitekturerna x86, x86_64, ARMv7 och ARMv8 samt operativsystemen FreeBSD, Linux, Windows, macOS, Android och iOS har implementerats.
dav1d 1.4 är känd för sitt stöd för de nya Loongarch- och RISC-V-arkitekturerna, såväl som ytterligare optimeringar baserade på AVX-512-instruktioner, acceleration av 6tap-filter på ARM-system, ökad effektivitet vid multitrådning och minskad binär datastorlek på ARM64-, ARM32- och RISC-V-system. Åtgärdade sårbarhet CVE-2024-1580, vilket resulterade i en skrivning utanför gränserna på grund av ett heltalsöversvämning vid hantering av mycket stora ramar.
Källa: opennet.ru
