Rilascio del codificatore SVT-AV1 2.0 e del decodificatore dav1d 1.4 per il formato video AV1

È stata pubblicata la versione 2.0 della libreria SVT-AV1 (Scalable Video Technology AV1) con implementazioni di codificatori e decodificatori del formato di codifica video AV1, per il cui acceleramento vengono utilizzati i meccanismi di parallelizzazione hardware presenti nei moderni CPU Intel. Il progetto è stato creato da Intel in collaborazione con Netflix con l'obiettivo di raggiungere un livello di prestazioni adeguato per la ricodifica video in tempo reale e per l'applicazione nei servizi di video on demand (VOD). Attualmente, lo sviluppo è gestito sotto l'egida dell'alleanza Open Media (AOMedia), che supervisiona l'evoluzione del formato di codifica video AV1. In precedenza, il progetto era parte di OpenVisualCloud, che sviluppa anche i codificatori SVT-HEVC e SVT-VP9. Il codice è distribuito sotto licenza BSD.

SVT-AV1 può essere compilato per sistemi basati su qualsiasi architettura per cui è disponibile un compilatore con supporto per lo standard C99, ma le migliori prestazioni si ottengono su sistemi x86_64, dove vengono utilizzate ottimizzazioni in assembly basate su istruzioni SIMD (è preferibile la presenza del supporto AVX2 nella CPU, ma come minimo è sufficiente SS2). Il consumo di memoria dipende dal numero di core del processore coinvolti nella codifica, regolabili tramite l'opzione "—lp". A causa della complessità degli algoritmi utilizzati in AV1, la codifica di questo formato richiede risorse significativamente maggiori rispetto ad altri formati, rendendo impossibile l'uso del codificatore AV1 standard per la transcodifica in tempo reale. Ad esempio, il codificatore standard del progetto AV1 richiede rispettivamente 5721, 5869 e 658 volte più calcoli rispetto ai codificatori x264 (profilo "main"), x264 (profilo "high") e libvpx-vp9.

Tra le novità della nuova versione di SVT-AV1:

  • È stato effettuato il passaggio a una nuova numerazione delle versioni, secondo la quale la prima cifra nella versione cambierà ogni volta che ci sarà una modifica dell'API/ABI.
  • Sono state apportate modifiche all'API relative al passaggio all'indicazione della fine del flusso (EOS - End Of Stream) nell'ultimo fotogramma anziché utilizzare un fotogramma vuoto, il che ha permesso di eliminare il ritardo nell'attesa di un fotogramma superfluo. La modifica dell'API è già riflessa nel codice sorgente di FFmpeg.
  • È stata rimossa la modalità di codifica a tre passaggi (3-pass VBR), sostituita ora con un meccanismo a più passaggi VBR. La modalità VBR multi-pass è ora limitata a due passaggi per garantire l'integrazione con FFmpeg.
  • Sono state aggiunte ottimizzazioni all'encoder, grazie alle quali l'efficienza di compressione dei preset M9-M13 è aumentata del 1-4%, mentre il consumo di memoria nel preset M5 è diminuito del 20-35% in modalità LP 8 e del 1-5% in altre modalità. Il consumo di memoria negli altri preset è diminuito dell'1-5%.
  • È stata ottimizzata la gestione dei compromessi qualità/velocità per i preset che offrono un alto livello di qualità. Il lavoro del preset MR, che fornisce una qualità di riferimento, è stato accelerato del 100%.
  • Sono state aggiunte ottimizzazioni specifiche per l'architettura ARM nelle funzioni scritte solo in linguaggio C.

Inoltre, si segnala il rilascio del progetto dav1d 1.4.1, nell'ambito del quale le comunità VideoLAN e FFmpeg sviluppano una libreria per un decoder alternativo libero del formato di codifica video AV1. La libreria dav1d supporta tutte le funzionalità di AV1, comprese le modalità avanzate di subsampling e tutti i parametri di controllo della profondità di colore dichiarati nelle specifiche (8, 10 e 12 bit). Una caratteristica chiave di dav1d è l'orientamento al raggiungimento delle massime prestazioni di decodifica e a garantire un buon funzionamento in modalità multithreading. Il codice del progetto è scritto in linguaggio C (C99) con inserimenti in assembly (NASM/GAS) ed è distribuito con licenza BSD. È supportata l'architettura x86, x86_64, ARMv7 e ARMv8, e i sistemi operativi FreeBSD, Linux, Windows, macOS, Android e iOS.

La versione dav1d 1.4 è notevole per il supporto delle nuove architetture Loongarch e RISC-V, così come per l'implementazione di ottimizzazioni aggiuntive basate sulle istruzioni AVX-512, l'accelerazione del funzionamento dei filtri 6tap sui sistemi ARM, il miglioramento dell'efficienza del lavoro multithreading e la riduzione delle dimensioni dei dati binari sui sistemi ARM64, ARM32 e RISC-V. È stata risolta la vulnerabilità CVE-2024-1580, che portava alla scrittura in aree al di fuori dei limiti del buffer a causa di un overflow intero durante l'elaborazione di frame di dimensioni molto grandi.

Fonte: opennet.ru

Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster