Byla vydána knihovna SVT-AV1 4.2.0 (Scalable Video Technology AV1), která obsahuje implementace kodéru a dekodéru formátu kódování videa AV1, akcelerované hardwarovými rozšířeními pro paralelní výpočetní techniku přítomnými v procesorech x86_64 a ARM. Projekt byl vytvořen společností Intel ve spolupráci s Netflixem s cílem dosáhnout úrovně výkonu vhodné pro okamžité překódování videa a použití ve službách videa na vyžádání (VOD). Vývoj v současné době probíhá pod záštitou Open Media Alliance (AOMedia), která dohlíží na vývoj formátu kódování videa AV1. Projekt byl dříve 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 kompilovat pro systémy založené na jakékoli architektuře s kompilátorem podporujícím standard C99, ale nejlepšího výkonu je dosaženo na systémech x86_64, které využívají optimalizace assembleru založené na instrukcích SIMD (v CPU je preferována podpora AVX2, ale SSE2 je postačující jako minimum). Spotřeba paměti závisí na počtu jader procesoru použitých pro kódování, což je řízeno parametrem „--lp“. Vzhledem ke složitosti algoritmů použitých v AV1 vyžaduje kódování tohoto formátu výrazně více zdrojů než jiné formáty.
Mezi změny v nové verzi SVT-AV1:
- Byl implementován nový optimalizační režim TUNE-VMAF, který umožňuje úsporu datového toku až o 15 % při zachování stejné úrovně vizuální kvality dle metriky VMAF, která hodnotí lidské vnímání, a mírné snížení kvality dle metriky PSNR, která hodnotí přesnost reprodukce původních dat na úrovni pixelů.
- Byl implementován režim kódování s jedním vláknem, který lze použít s režimem náhodného přístupu.
- V předvolbách M3-M5 byly optimalizovány kompromisy mezi kvalitou a rychlostí při kódování v režimu náhodného přístupu.
- Přidány nové volby příkazového řádku: --cqp, --enable-intrabc, --hbd-mds, --enable-kf-tf.
- Přidána podpora pro výstup v nezpracovaném formátu OBU, a to kromě dříve podporovaného formátu IVF.
- Byly optimalizovány kompromisy mezi kvalitou a rychlostí při kódování v režimu „—rtc“ (Real-Time Communications), zvýšena účinnost komprese a snížena spotřeba paměti při kódování v nízkých rozlišeních. Byly přidány parametry „—max-intra-bitrate-pct“ a „—max-inter-bitrate-pct“.
- Byl přidán režim kódování s konstantní bitovou rychlostí v reálném čase – CBR (Constant Bitrate), implementovaný pomocí Kalmanova filtru a podporující cyklickou aktualizaci s rozmazáním složitých změn v průběhu několika snímků a překódováním snímků s horší kvalitou, pokud se nevejdou do zadané bitové rychlosti.
- V režimu „--rtc“ byla přidána podpora pro dynamickou změnu nastavení datového toku a předvoleb za chodu.
- Přidáno API pro správu klíčových snímků, podpora LTR (dlouhodobá reference) a dvouúrovňové struktury referenčních obrázků (RPS).
- Implementace entropického kódování byla přepracována tak, aby umožňovala přímý zápis do vyrovnávací paměti dlaždic, zjednodušovala aritmetický kodér a implementovala ořezávání zbytkových dat po kvantizaci.
- Přidány nové optimalizace: CDEF (Constrained Directional Enhancement Filter) pro eliminaci rozmazání v oblastech se změnou kontrastu, MD (Mode Decision) a ME (Motion Estimation) pro rychlé zpracování statických objektů.
- Optimalizovaná detekce přítomnosti obrazu s obsahem obrazovky ve videu pro použití specifických metod kódování pro zachování srozumitelnosti textu.
- Přidána volba sestavení ENABLE_STACK_PROTECTOR pro zakázání příznaku „-fstack-protector“, což odstraňuje režii kontroly přetečení zásobníku.
- Přidány další optimalizace pro architekturu ARM a využity rozšířené instrukce NEON pro urychlení výpočtů.
Zdroj: opennet.ru
