A liberazione di a libreria SVT-AV1 2.0 (Scalable Video Technology AV1) cù implementazioni di l'encoder è decoder di u formatu di codificazione di video AV1 hè stata publicata. U prughjettu hè statu creatu da Intel in cullaburazione cù Netflix per ottene un livellu di rendiment adattatu per a transcodificazione di video in u volu è l'usu in i servizii di video-on-demand (VOD). Attualmente, u sviluppu hè realizatu sottu l'auspice di l'Alianza Open Media (AOMedia), chì supervise u sviluppu di u furmatu di codificazione di video AV1. Nanzu, u prugettu hè statu sviluppatu in u quadru di u prughjettu OpenVisualCloud, chì sviluppa ancu codificatori SVT-HEVC è SVT-VP9. U codice hè distribuitu sottu a licenza BSD.
SVT-AV1 pò esse assemblatu per sistemi basati nantu à qualsiasi architettura per quale ci hè un compilatore chì sustene u standard C99, ma u megliu rendimentu hè ottinutu nantu à i sistemi x86_64, per quale l'ottimisazioni di l'assemblea basate nantu à l'istruzzioni SIMD sò usate (hè desideratu avè AVX2 supportu in u CPU, ma cum'è u minimu hè abbastanza è SS2). U cunsumu di memoria dipende da u nùmeru di core di processore utilizati durante a codificazione, regulata da l'opzione "-lp". A causa di a cumplessità di l'algoritmi utilizati in AV1, a codificazione di stu formatu richiede assai più risorse chì altri formati, chì ùn permettenu micca l'usu di l'encoder AV1 standard per a transcodificazione in tempu reale. Per esempiu, u codificatore di stock da u prughjettu AV1 richiede 5721, 5869 è 658 volte più calculi paragunatu à l'encoder x264 ("profile principale"), x264 (profilu "altu") è libvpx-vp9.
Trà i cambiamenti in a nova versione SVT-AV1:
- Una transizione hè stata fatta à una nova numerazione di versione, secondu chì u primu cifru in a versione cambierà cù ogni cambiamentu API / ABI.
- I cambiamenti sò stati fatti à l'API in relazione à a transizione à a fine di l'indicazione di u flussu (EOS - End Of Stream) in l'ultimu quadru invece di utilizà un quadru viotu, chì eliminò u ritardu in aspittà per un quadru extra. U cambiamentu API hè digià riflessu in a basa di codice FFmpeg.
- U modu di bitrate variabile di trè passaghji (3-pass VBR) hè statu eliminatu, è hè avà rimpiazzatu da un mecanismu VBR multi-pass. U modu multi-pass VBR hè stata ridutta à dui passaggi per assicurà l'integrazione cù FFmpeg.
- L'ottimisazioni sò state aghjunte à l'encoder, per via di quale l'efficienza di compressione di i presets M9-M13 hà aumentatu da 1-4%, è u cunsumu di memoria di u preset M5 hè diminuitu da 20-35% in u modu LP 8 è da 1-5% in altri modi. U cunsumu di memoria in altri presets diminuite da 1-5%.
- L'ottimisazione di cumprumessi di qualità / velocità hè stata realizata per presets chì stabiliscenu un altu livellu di qualità. A qualità di riferimentu MR preset hè stata accelerata da 100%.
- Ottimisazioni specifiche ARM sò state aghjunte à e funzioni C-only.
Inoltre, pudemu nutà a liberazione di u prughjettu dav1d 1.4.1, in u quale e cumunità VideoLAN è FFmpeg sviluppanu una biblioteca cù l'implementazione di un decoder gratuitu alternativu per u formatu di codificazione di video AV1. A libreria dav1d supporta tutte e funzioni di AV1, cumpresi i tipi avanzati di sottocampionamentu è tutti i paràmetri di cuntrollu di a prufundità di culore dichjarati in a specificazione (8, 10 è 12 bit). A funzione chjave di dav1d hè u so focusu nantu à ottene u più altu rendimentu di decodificazione pussibule è assicurendu un travagliu di alta qualità in modu multi-threaded. U codice di u prughjettu hè scrittu in C (C99) cù inserti di assemblea (NASM / GAS) è hè distribuitu sottu a licenza BSD. U supportu per l'architetture x86, x86_64, ARMv7 è ARMv8, è i sistemi operativi FreeBSD, Linux, Windows, macOS, Android è iOS hè statu implementatu.
A versione dav1d 1.4 hè notevule per supportà e novi architetture Loongarch è RISC-V, è ancu per l'introduzione di ottimisazioni supplementari basate nantu à l'istruzzioni AVX-512, accelerà l'operazione di filtri 6tap in sistemi ARM, aumentendu l'efficienza di u travagliu multi-thread è riducendu dimensione di dati binari nantu à i sistemi ARM64, ARM32 è RISC V. Fixed a vulnerabilità CVE-2024-1580, chì hà causatu una scrittura fora di i limiti per via di un overflow integer quandu si trattava dimensioni di frames assai grandi.
Source: opennet.ru
