Vydání kodéru SVT-AV1 2.0 a dekodéru dav1d 1.4 pro video formát AV1

Bylo zveřejněno vydání knihovny SVT-AV1 2.0 (Scalable Video Technology AV1) s implementacemi kodéru a dekodéru formátu kódování videa AV1. Projekt vytvořila společnost Intel ve spolupráci se společností Netflix s cílem dosáhnout úrovně výkonu vhodné pro překódování videa za běhu a použití ve službách videa na vyžádání (VOD). V současné době vývoj probíhá pod záštitou Open Media Alliance (AOMedia), která dohlíží na vývoj formátu kódování videa AV1. Dříve byl projekt vyvíjen v rámci projektu OpenVisualCloud, který také vyvíjí kodéry SVT-HEVC a SVT-VP9. Kód je distribuován pod licencí BSD.

SVT-AV1 lze sestavit pro systémy založené na libovolné architektuře, pro kterou existuje kompilátor podporující standard C99, ale nejlepšího výkonu je dosaženo na systémech x86_64, pro které se používají optimalizace sestav na základě instrukcí SIMD (je žádoucí mít Podpora AVX2 v CPU, ale jako minimum je dostačující i SS2). Spotřeba paměti závisí na počtu procesorových jader použitých při kódování, regulovaném volbou „-lp“. Kvůli složitosti algoritmů používaných v AV1 vyžaduje kódování tohoto formátu výrazně více zdrojů než jiné formáty, což neumožňuje použití standardního kodéru AV1 pro překódování v reálném čase. Například akciový kodér z projektu AV1 vyžaduje 5721, 5869 a 658krát více výpočtů ve srovnání s kodéry x264 ("hlavní" profil), x264 ("vysoký" profil) a libvpx-vp9.

Mezi změny v nové verzi SVT-AV1:

  • Došlo k přechodu na nové číslování verzí, podle kterého se při každé změně API/ABI změní první číslice ve verzi.
  • Změny byly provedeny v API související s přechodem na indikaci konce streamu (EOS - End Of Stream) v posledním snímku namísto použití prázdného snímku, což eliminovalo zpoždění při čekání na další snímek. Změna API se již odráží v kódové základně FFmpeg.
  • Tříprůchodový režim proměnné bitové rychlosti (3průchodový VBR) byl odstraněn a nyní je nahrazen víceprůchodovým mechanismem VBR. Víceprůchodový režim VBR byl zredukován na dva průchody, aby byla zajištěna integrace s FFmpeg.
  • Do kodéru byly přidány optimalizace, v důsledku kterých se účinnost komprese presetů M9-M13 zvýšila o 1-4% a spotřeba paměti presetu M5 se snížila o 20-35% v režimu LP 8 a o 1-5 % v ostatních režimech. Spotřeba paměti v ostatních předvolbách se snížila o 1-5%.
  • Optimalizace kompromisů kvality/rychlosti byla provedena pro předvolby, které nastavují vysokou úroveň kvality. Předvolba referenční kvality MR byla zrychlena o 100 %.
  • Do funkcí pouze C byly přidány optimalizace specifické pro ARM.

Navíc si můžeme všimnout vydání projektu dav1d 1.4.1, v rámci kterého komunity VideoLAN a FFmpeg vyvíjejí knihovnu s implementací alternativního bezplatného dekodéru pro formát kódování videa AV1. Knihovna dav1d podporuje všechny funkce AV1, včetně pokročilých typů podvzorkování a všech parametrů řízení barevné hloubky uvedených ve specifikaci (8, 10 a 12 bitů). Klíčovým rysem dav1d je jeho zaměření na dosažení co nejvyššího dekódovacího výkonu a zajištění vysoce kvalitní práce ve vícevláknovém režimu. Kód projektu je napsán v C (C99) s montážními vložkami (NASM/GAS) a je distribuován pod licencí BSD. Byla implementována podpora pro architektury x86, x86_64, ARMv7 a ARMv8 a operační systémy FreeBSD, Linux, Windows, macOS, Android a iOS.

Verze dav1d 1.4 je pozoruhodná tím, že podporuje nové architektury Loongarch a RISC-V a také zavádí další optimalizace založené na instrukcích AVX-512, zrychluje provoz 6tap filtrů na systémech ARM, zvyšuje efektivitu vícevláknové práce a snižuje velikost binárních dat na systémech ARM64, ARM32 a RISC V. Opravena chyba zabezpečení CVE-2024-1580, která způsobovala zápis mimo hranice kvůli přetečení celého čísla při zpracování velmi velkých velikostí rámců.

Zdroj: opennet.ru

Přidat komentář