Vydanie kodéra SVT-AV1 2.0 a dekodéra dav1d 1.4 pre video formát AV1

Bolo zverejnené vydanie knižnice SVT-AV1 2.0 (Scalable Video Technology AV1) s implementáciou kódovača a dekodéra formátu kódovania videa AV1. Projekt vytvorila spoločnosť Intel v spolupráci so spoločnosťou Netflix s cieľom dosiahnuť úroveň výkonu vhodnú na prekódovanie videa za chodu a použitie v službách videa na požiadanie (VOD). V súčasnosti vývoj prebieha pod záštitou Open Media Alliance (AOMedia), ktorá zastrešuje vývoj formátu kódovania videa AV1. Predtým bol projekt vyvinutý v rámci projektu OpenVisualCloud, ktorý vyvíja aj kodéry SVT-HEVC a SVT-VP9. Kód je distribuovaný pod licenciou BSD.

SVT-AV1 je možné zostaviť pre systémy založené na akejkoľvek architektúre, pre ktorú existuje kompilátor podporujúci štandard C99, ale najlepší výkon sa dosahuje na systémoch x86_64, pre ktoré sa používajú optimalizácie zostavy založené na inštrukciách SIMD (je žiaduce mať Podpora AVX2 v CPU, ale ako minimum postačuje aj SS2). Spotreba pamäte závisí od počtu procesorových jadier použitých pri kódovaní, regulovaných voľbou „-lp“. Kvôli zložitosti algoritmov používaných v AV1 vyžaduje kódovanie tohto formátu podstatne viac zdrojov ako iné formáty, čo neumožňuje použitie štandardného kódovača AV1 na prekódovanie v reálnom čase. Napríklad akciový kodér z projektu AV1 vyžaduje 5721, 5869 a 658-krát viac výpočtov v porovnaní s kodérmi x264 („hlavný“ profil), x264 („vysoký“ profil) a libvpx-vp9.

Medzi zmeny v novom vydaní SVT-AV1:

  • Prešiel sa na nové číslovanie verzií, podľa ktorého sa pri každej zmene API/ABI zmení prvá číslica vo verzii.
  • Boli vykonané zmeny v rozhraní API súvisiace s prechodom na indikáciu konca toku (EOS – End Of Stream) v poslednej snímke namiesto použitia prázdnej snímky, čím sa eliminovalo oneskorenie pri čakaní na ďalšiu snímku. Zmena API sa už prejavila v kódovej základni FFmpeg.
  • Trojpriechodový režim variabilnej bitovej rýchlosti (3-priechodový VBR) bol odstránený a teraz je nahradený viacpriechodovým mechanizmom VBR. Viacpriechodový režim VBR bol zredukovaný na dva prechody, aby sa zabezpečila integrácia s FFmpeg.
  • Do enkodéra boli pridané optimalizácie, v dôsledku ktorých sa účinnosť kompresie predvolieb M9-M13 zvýšila o 1-4% a spotreba pamäte predvoľby M5 sa znížila o 20-35% v režime LP 8 resp. o 1-5% v iných režimoch. Spotreba pamäte v ostatných predvoľbách sa znížila o 1-5%.
  • Optimalizácia kompromisov medzi kvalitou a rýchlosťou bola vykonaná pre predvoľby, ktoré nastavujú vysokú úroveň kvality. Predvoľba referenčnej kvality MR bola zrýchlená o 100 %.
  • K funkciám typu C boli pridané optimalizácie špecifické pre ARM.

Okrem toho môžeme zaznamenať vydanie projektu dav1d 1.4.1, v rámci ktorého komunity VideoLAN a FFmpeg vyvíjajú knižnicu s implementáciou alternatívneho bezplatného dekodéra pre formát kódovania videa AV1. Knižnica dav1d podporuje všetky funkcie AV1, vrátane pokročilých typov podvzorkovania a všetkých parametrov riadenia farebnej hĺbky uvedených v špecifikácii (8, 10 a 12 bitov). Kľúčovou vlastnosťou dav1d je jeho zameranie na dosiahnutie najvyššieho možného dekódovacieho výkonu a zabezpečenie vysokokvalitnej práce vo viacvláknovom režime. Kód projektu je napísaný v jazyku C (C99) s montážnymi vložkami (NASM/GAS) a je distribuovaný pod licenciou BSD. Bola implementovaná podpora pre architektúry x86, x86_64, ARMv7 a ARMv8 a operačné systémy FreeBSD, Linux, Windows, macOS, Android a iOS.

Verzia dav1d 1.4 sa vyznačuje podporou nových architektúr Loongarch a RISC-V, ako aj zavedením dodatočných optimalizácií založených na inštrukciách AVX-512, zrýchľuje prevádzku 6tap filtrov na systémoch ARM, zvyšuje efektivitu práce s viacerými vláknami a znižuje veľkosť binárnych údajov na systémoch ARM64, ARM32 a RISC V. Opravená chyba zabezpečenia CVE-2024-1580, ktorá spôsobovala zápis mimo hraníc v dôsledku pretečenia celého čísla pri spracovaní veľmi veľkých veľkostí snímok.

Zdroj: opennet.ru

Pridať komentár