De uitgave van de SVT-AV1 2.0 bibliotheek (Scalable Video Technology AV1) is gepubliceerd, met implementaties van een encoder en decoder voor het AV1 videocodeerformaat, waarvoor gebruik wordt gemaakt van de hardwarematige parallelle rekencapaciteiten van moderne Intel CPU's. Het project is opgericht door Intel in samenwerking met Netflix, met als doel een prestatieniveau te bereiken dat geschikt is voor het on-the-fly hercoderen van video en voor toepassingen in video-on-demand (VOD) diensten. Op dit moment wordt de ontwikkeling uitgevoerd onder de auspiciƫn van de Open Media Alliance (AOMedia), die de ontwikkeling van het AV1 videocodeerformaat beheert. Voorheen werd het project ontwikkeld binnen het OpenVisualCloud project, dat ook de SVT-HEVC en SVT-VP9 encoders ontwikkelt. De code wordt verspreid onder de BSD-licentie.
SVT-AV1 kan worden opgebouwd voor systemen op basis van elke architectuur waarvoor een compiler met C99-ondersteuning beschikbaar is, maar de beste prestaties worden behaald op x86_64-systemen, waarvoor assemblage-optimalisaties met SIMD-instructies worden toegepast (bij voorkeur met ondersteuning voor AVX2 in de CPU, maar minimale ondersteuning voor SS2 is voldoende). Het geheugenverbruik is afhankelijk van het aantal processorcores dat betrokken is bij de codering, wat kan worden geregeld met de optie "ālp". Door de complexiteit van de algoritmen die in AV1 worden gebruikt, zijn substantieel meer middelen nodig voor de codering van dit formaat in vergelijking met andere formaten, wat het onmogelijk maakt om de standaard AV1-encoder te gebruiken voor real-time hercodering. Bijvoorbeeld, de standaard encoder van het AV1-project vereist 5721, 5869 en 658 keer meer berekeningen in vergelijking met de x264 encoders (profiel "main"), x264 (profiel "high") en libvpx-vp9.
Onder de wijzigingen in de nieuwe release van SVT-AV1:
- Er is overgestapt op een nieuwe versie-numerering, waarbij het eerste cijfer in de versie zal veranderen bij elke wijziging van de API/ABI.
- Wijzigingen zijn aangebracht in de API, die verband houden met de overstap naar het aangeven van het einde van de stream (EOS - End Of Stream) in het laatste frame in plaats van het gebruik van een leeg frame, waardoor de vertraging voor het wachten op een extra frame werd geƫlimineerd. De wijziging van de API is al weerspiegeld in de codebase van FFmpeg.
- De driepass-variable bitrate modus (3-pass VBR) is verwijderd, in plaats daarvan wordt nu een mechanisme voor multipass VBR gebruikt. De multipass VBR-modus is teruggebracht tot het uitvoeren van twee passes om integratie met FFmpeg te waarborgen.
- De encoder is geoptimaliseerd, waardoor de efficiƫntie van de compressie van de presets M9-M13 met 1-4% is toegenomen en het geheugenverbruik in preset M5 met 20-35% is verminderd in LP 8-modus en met 1-5% in andere modi. Het geheugenverbruik in de andere presets is met 1-5% verminderd.
- Er is een optimalisatie doorgevoerd van de kwaliteit/snelheid compromissen voor presets die een hoog kwaliteitsniveau bieden. De werking van preset MR, die referentiekwaliteit biedt, is met 100% versneld.
- In functies die alleen in de C-taal zijn geschreven, zijn architectuurspecifieke optimalisaties toegevoegd voor ARM.
Daarnaast kan de release van project dav1d 1.4.1 worden opgemerkt, waarin de gemeenschappen VideoLAN en FFmpeg de bibliotheek ontwikkelen met de implementatie van een alternatieve gratis decoder voor het AV1 video coding formaat. De dav1d bibliotheek ondersteunt alle mogelijkheden van AV1, inclusief geavanceerde subsampling-types en alle gespecificeerde parameters voor kleurdieptebeheer (8, 10 en 12 bits). Een sleuteleigenschap van dav1d is de focus op het bereiken van de maximaal mogelijke decodering prestatie en het waarborgen van een kwaliteitsvolle werking in multithreaded modus. De projectcode is geschreven in C (C99) met assembler-instructies (NASM/GAS) en wordt verspreid onder de BSD-licentie. Ondersteuning is geĆÆmplementeerd voor de architecturen x86, x86_64, ARMv7 en ARMv8, en de besturingssystemen FreeBSD, Linux, Windows, macOS, Android en iOS.
Versie dav1d 1.4 valt op door ondersteuning voor de nieuwe architecturen Loongarch en RISC-V, evenals door het gebruik van extra optimalisaties op basis van AVX-512 instructies, versnelde werking van 6tap filters op ARM-systemen, verbeterde efficiƫntie van multithreaded werking en vermindering van de grootte van binaire bestanden op ARM64, ARM32 en RISC-V-systemen. De kwetsbaarheid CVE-2024-1580, die leidde tot schrijfacties buiten buffergrenzen als gevolg van een integer overflow bij de verwerking van zeer grote frames, is verholpen.
Bron: opennet.ru
