Rilascio di rav1e 0.3, un codificatore AV1 in Rust

ha avuto luogo problema rav1e 0.3, un codificatore di formati di codifica video ad alte prestazioni AV1, sviluppato dalle comunità Xiph e Mozilla. L'encoder è scritto in Rust e differisce dall'encoder di riferimento libaom aumentando significativamente la velocità di codifica e una maggiore attenzione alla sicurezza. Codice del progetto distribuito da sotto licenza BSD.

Sono supportate tutte le principali funzionalità AV1, incluso il supporto
frame codificati internamente ed esternamente (intra- и tra-frames), superblocchi 64x64, sottocampionamento della crominanza 4:2:0, 4:2:2 e 4:4:4, codifica della profondità di colore a 8, 10 e 12 bit, distorsione di ottimizzazione RDO (Rate-distortion optimization), varie modalità per prevedere i cambiamenti interframe e identificare le trasformazioni, controllare la portata e rilevare il troncamento della scena.

Il formato AV1 è evidente è avanti H.264 e VP9 in termini di capacità di compressione, ma a causa della complessità degli algoritmi che li implementano richiede molto più tempo per la codifica (nella velocità di codifica, libaom è centinaia di volte dietro libvpx-vp9 e migliaia di volte dietro x264).
L'encoder rav1e offre 11 livelli di prestazioni, il più alto dei quali offre velocità di codifica quasi in tempo reale. Il codificatore è disponibile sia come utilità della riga di comando che come libreria.

Nella nuova versione:

  • Proposta una modalità di codifica più veloce Velocità 10;
  • La dimensione degli assembly binari è stata ridotta (sulla piattaforma x86_64/Linux la libreria occupa circa 3MB);
  • Tempi di assemblaggio ridotti di circa il 14%;
  • Aggiunto filtro multi-thread per rimuovere gli artefatti di blocco dal video (deblocking);
  • Per l'architettura x86_64 sono state implementate ulteriori ottimizzazioni tramite istruzioni SIMD ed è stato ampliato l'utilizzo dell'autovettorializzazione;
  • Il numero di operazioni di allocazione della memoria è stato ridotto di 1/6;
  • In RDO (ottimizzazione della velocità di distorsione), la logica per la soppressione delle distorsioni intra-frame è stata migliorata;
  • Alcune operazioni sono state spostate dall'uso dell'aritmetica in virgola mobile ai calcoli con numeri interi;
  • La qualità della codifica al secondo livello di velocità è stata migliorata dell'1-2%;
  • Aggiunto nuovo filtro di previsione della direzione del movimento (Intra edge);
  • Aggiunta l'opzione "-S" (--switch-frame-interval) per determinare l'intervallo di commutazione tra i frame;
  • Aggiunto il supporto alla build per la piattaforma wasm32-wasi (Interfaccia di sistema WebAssembly).

Fonte: opennet.ru

Aggiungi un commento